From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=unavailable autolearn_force=no version=3.4.2 Received: from inbox.vuxu.org (localhost [IPv6:::1]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id 27eac56b for ; Wed, 11 Sep 2019 20:36:05 +0000 (UTC) Content-Type: multipart/mixed; boundary="===============7453909706748153357==" MIME-Version: 1.0 Subject: Re: [PR PATCH] [Updated] Openjdk 11 To: ml@inbox.vuxu.org From: voidlinux-github@inbox.vuxu.org Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Wed, 11 Sep 2019 22:36:05 +0200 Message-ID: <20190911203605.8E7oNbEOG6QNloxMOWEDpGFFmeTCy-wMke1PR_rB8W0@z> GitHub notification mails are now in MIME to allow UTF8. --===============7453909706748153357== MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkga251c2JhdW0gYWdhaW5zdCBtYXN0 ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL2tu dXNiYXVtL3ZvaWQtcGFja2FnZXMgb3Blbmpkay0xMQpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1s aW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMTM3MjEKCk9wZW5qZGsgMTEKSSdkIG11Y2ggcmF0aGVy IGhhdmUgQHE2NidzIHNvbHV0aW9uICgjMzIzNykgYnV0IHRoaXMgc2VlbXMgdG8gYnVpbGQgZm9y IGF0IGxlYXN0IHg4Nl82NCwgaTY4NiwgYWFyY2g2NC4NCg0KVGhpcyBib290c3RyYXBzIG9wZW5q ZGstMTEgZnJvbSBvcGVuamRrLTExLWJpbiwgd2hpY2ggaXMgdGhlIGJpbmFyeSByZWZlcmVuY2Ug aW1wbGVtZW50YXRpb24uDQoNClRyYXZpcyB3aWxsIGZhaWwgYmVjYXVzZSB0aGUgYnVpbGRzIHRh a2UgdG9vIGxvbmcsIGJ1dCBJJ3ZlIHRlc3RlZCBvbiBteSBsb2NhbCBtYWNoaW5lIGFuZCB0aGV5 IGJ1aWxkLiAKCkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4 L3ZvaWQtcGFja2FnZXMvcHVsbC8xMzcyMS5wYXRjaCBpcyBhdHRhY2hlZA== --===============7453909706748153357== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-openjdk-11-13721.patch" RnJvbSA5YmQ0Y2Q1Yzk5NTNjNDNkNGVhMGJlYTg5MWI1OTZmN2Y0ODc5ZWZhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBLeWxlIE51c2JhdW0gPGt5bGVudXNiYXVtQGdyYW51bGFyLmFn PgpEYXRlOiBGcmksIDE2IEF1ZyAyMDE5IDE3OjIwOjEzIC0wNTAwClN1YmplY3Q6IFtQQVRDSCAx LzNdIE5ldyBwYWNrYWdlOiBvcGVuamRrLTExLWJpbi0xMSsyOAoKLS0tCiBzcmNwa2dzL29wZW5q ZGstMTEtYmluL3RlbXBsYXRlIHwgNzMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr CiAxIGZpbGUgY2hhbmdlZCwgNzMgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3Mvb3Blbmpkay0xMS1iaW4vdGVtcGxhdGUKCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5q ZGstMTEtYmluL3RlbXBsYXRlIGIvc3JjcGtncy9vcGVuamRrLTExLWJpbi90ZW1wbGF0ZQpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjRkZmFhZWYyMjkKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGstMTEtYmluL3RlbXBsYXRlCkBAIC0wLDAgKzEsNzMg QEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ29wZW5qZGstMTEtYmluJworcGtnbmFtZT1vcGVuamRr LTExLWJpbgordmVyc2lvbj0xMSsyOAorcmV2aXNpb249MQorYXJjaHM9Ing4Nl82NCIKK3dya3Ny Yz1qZGstMTEKK3Nob3J0X2Rlc2M9Ik9mZmljaWFsIFJlZmVyZW5jZSBJbXBsZW1lbnRhdGlvbiBm b3IgSmF2YSBTRSAxMSIKK21haW50YWluZXI9Ikt5bGUgTnVzYmF1bSA8a251c2JhdW0rdm9pZEBz ZGYub3JnPiIKK2xpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCitob21lcGFnZT0iaHR0cHM6Ly9q ZGsuamF2YS5uZXQvamF2YS1zZS1yaS8xMSIKK2Rpc3RmaWxlcz0iaHR0cHM6Ly9kb3dubG9hZC5q YXZhLm5ldC9vcGVuamRrL2pkazExL3JpL29wZW5qZGstJHt2ZXJzaW9ufV9saW51eC14NjRfYmlu LnRhci5neiIKK2NoZWNrc3VtPTM3ODRjZmM0NjcwZjBkNGM1NDgyNjA0YzdjNTEzYmViMWE5MmIw MDVmNTY5ZGY5YmYxMDBlOGJlZjY2MTBmMmUKK25vcGllPXRydWUKKworYWx0ZXJuYXRpdmVzPSIK KyBqYXZhOi91c3IvYmluL2phdmE6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9qYXZh CisgamF2YTovdXNyL2Jpbi9qYXZhd3M6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9q YXZhd3MKKyBqYXZhOi91c3IvYmluL2pjb250cm9sOi91c3IvbGliL2p2bS9vcGVuamRrLTExLWJp bi9iaW4vamNvbnRyb2wKKyBqYXZhOi91c3IvYmluL2pqczovdXNyL2xpYi9qdm0vb3Blbmpkay0x MS1iaW4vYmluL2pqcworIGphdmE6L3Vzci9iaW4va2V5dG9vbDovdXNyL2xpYi9qdm0vb3Blbmpk ay0xMS1iaW4vYmluL2tleXRvb2wKKyBqYXZhOi91c3IvYmluL29yYmQ6L3Vzci9saWIvanZtL29w ZW5qZGstMTEtYmluL2Jpbi9vcmJkCisgamF2YTovdXNyL2Jpbi9wYWNrMjAwOi91c3IvbGliL2p2 bS9vcGVuamRrLTExLWJpbi9iaW4vcGFjazIwMAorIGphdmE6L3Vzci9iaW4vcG9saWN5dG9vbDov dXNyL2xpYi9qdm0vb3Blbmpkay0xMS1iaW4vYmluL3BvbGljeXRvb2wKKyBqYXZhOi91c3IvYmlu L3JtaWQ6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9ybWlkCisgamF2YTovdXNyL2Jp bi9ybWlyZWdpc3RyeTovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS1iaW4vYmluL3JtaXJlZ2lzdHJ5 CisgamF2YTovdXNyL2Jpbi9zZXJ2ZXJ0b29sOi91c3IvbGliL2p2bS9vcGVuamRrLTExLWJpbi9i aW4vc2VydmVydG9vbAorIGphdmE6L3Vzci9iaW4vdG5hbWVzZXJ2Oi91c3IvbGliL2p2bS9vcGVu amRrLTExLWJpbi9iaW4vdG5hbWVzZXJ2CisgamF2YTovdXNyL2Jpbi91bnBhY2syMDA6L3Vzci9s aWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi91bnBhY2syMDAKKworIGpkazovdXNyL2Jpbi9Db250 cm9sUGFuZWw6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9Db250cm9sUGFuZWwKKyBq ZGs6L3Vzci9iaW4vYXBwbGV0dmlld2VyOi91c3IvbGliL2p2bS9vcGVuamRrLTExLWJpbi9iaW4v YXBwbGV0dmlld2VyCisgamRrOi91c3IvYmluL2V4dGNoZWNrOi91c3IvbGliL2p2bS9vcGVuamRr LTExLWJpbi9iaW4vZXh0Y2hlY2sKKyBqZGs6L3Vzci9iaW4vaWRsajovdXNyL2xpYi9qdm0vb3Bl bmpkay0xMS1iaW4vYmluL2lkbGoKKyBqZGs6L3Vzci9iaW4vamFyOi91c3IvbGliL2p2bS9vcGVu amRrLTExLWJpbi9iaW4vamFyCisgamRrOi91c3IvYmluL2phcnNpZ25lcjovdXNyL2xpYi9qdm0v b3Blbmpkay0xMS1iaW4vYmluL2phcnNpZ25lcgorIGpkazovdXNyL2Jpbi9qYXZhLXJtaS5jZ2k6 L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9qYXZhLXJtaS5jZ2kKKyBqZGs6L3Vzci9i aW4vamF2YWM6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9qYXZhYworIGpkazovdXNy L2Jpbi9qYXZhZG9jOi91c3IvbGliL2p2bS9vcGVuamRrLTExLWJpbi9iaW4vamF2YWRvYworIGpk azovdXNyL2Jpbi9qYXZhZnhwYWNrYWdlcjovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS1iaW4vYmlu L2phdmFmeHBhY2thZ2VyCisgamRrOi91c3IvYmluL2phdmFoOi91c3IvbGliL2p2bS9vcGVuamRr LTExLWJpbi9iaW4vamF2YWgKKyBqZGs6L3Vzci9iaW4vamF2YXA6L3Vzci9saWIvanZtL29wZW5q ZGstMTEtYmluL2Jpbi9qYXZhcAorIGpkazovdXNyL2Jpbi9qYXZhcGFja2FnZXI6L3Vzci9saWIv anZtL29wZW5qZGstMTEtYmluL2Jpbi9qYXZhcGFja2FnZXIKKyBqZGs6L3Vzci9iaW4vamNtZDov dXNyL2xpYi9qdm0vb3Blbmpkay0xMS1iaW4vYmluL2pjbWQKKyBqZGs6L3Vzci9iaW4vamNvbnNv bGU6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9qY29uc29sZQorIGpkazovdXNyL2Jp bi9qZGI6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9qZGIKKyBqZGs6L3Vzci9iaW4v amRlcHM6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9qZGVwcworIGpkazovdXNyL2Jp bi9qaGF0Oi91c3IvbGliL2p2bS9vcGVuamRrLTExLWJpbi9iaW4vamhhdAorIGpkazovdXNyL2Jp bi9qaW5mbzovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS1iaW4vYmluL2ppbmZvCisgamRrOi91c3Iv YmluL2ptYXA6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9qbWFwCisgamRrOi91c3Iv YmluL2ptYzovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS1iaW4vYmluL2ptYworIGpkazovdXNyL2Jp bi9qbWMuaW5pOi91c3IvbGliL2p2bS9vcGVuamRrLTExLWJpbi9iaW4vam1jLmluaQorIGpkazov dXNyL2Jpbi9qcHM6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9qcHMKKyBqZGs6L3Vz ci9iaW4vanJ1bnNjcmlwdDovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS1iaW4vYmluL2pydW5zY3Jp cHQKKyBqZGs6L3Vzci9iaW4vanNhZGVidWdkOi91c3IvbGliL2p2bS9vcGVuamRrLTExLWJpbi9i aW4vanNhZGVidWdkCisgamRrOi91c3IvYmluL2pzdGFjazovdXNyL2xpYi9qdm0vb3Blbmpkay0x MS1iaW4vYmluL2pzdGFjaworIGpkazovdXNyL2Jpbi9qc3RhdDovdXNyL2xpYi9qdm0vb3Blbmpk ay0xMS1iaW4vYmluL2pzdGF0CisgamRrOi91c3IvYmluL2pzdGF0ZDovdXNyL2xpYi9qdm0vb3Bl bmpkay0xMS1iaW4vYmluL2pzdGF0ZAorIGpkazovdXNyL2Jpbi9qdmlzdWFsdm06L3Vzci9saWIv anZtL29wZW5qZGstMTEtYmluL2Jpbi9qdmlzdWFsdm0KKyBqZGs6L3Vzci9iaW4vbmF0aXZlMmFz Y2lpOi91c3IvbGliL2p2bS9vcGVuamRrLTExLWJpbi9iaW4vbmF0aXZlMmFzY2lpCisgamRrOi91 c3IvYmluL3JtaWM6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9ybWljCisgamRrOi91 c3IvYmluL3NjaGVtYWdlbjovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS1iaW4vYmluL3NjaGVtYWdl bgorIGpkazovdXNyL2Jpbi9zZXJpYWx2ZXI6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jp bi9zZXJpYWx2ZXIKKyBqZGs6L3Vzci9iaW4vd3NnZW46L3Vzci9saWIvanZtL29wZW5qZGstMTEt YmluL2Jpbi93c2dlbgorIGpkazovdXNyL2Jpbi93c2ltcG9ydDovdXNyL2xpYi9qdm0vb3Blbmpk ay0xMS1iaW4vYmluL3dzaW1wb3J0CisgamRrOi91c3IvYmluL3hqYzovdXNyL2xpYi9qdm0vb3Bl bmpkay0xMS1iaW4vYmluL3hqYworCisgamF2YS1wbHVnaW46L3Vzci9saWIvbW96aWxsYS9wbHVn aW5zL2xpYm5wanAyLnNvOi91c3IvbGliL2p2bS9vcGVuamRrLTExLWJpbi9qcmUvbGliLyRfYXJj aC9saWJucGpwMi5zbworIgorCitkb19pbnN0YWxsKCkgeworCXZta2RpciAvdXNyL2xpYi9qdm0v b3Blbmpkay0xMS1iaW4KKwljcCAtUiAuLyogJHtERVNURElSfS91c3IvbGliL2p2bS9vcGVuamRr LTExLWJpbgorfQoKRnJvbSBmMjRmMjc3YmQ0ZmQyODJkNDQ1MWZlNzc0MTRiYWUwOTE2NzE1ZTJl IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLeWxlIE51c2JhdW0gPGt5bGVudXNiYXVt QGdyYW51bGFyLmFnPgpEYXRlOiBXZWQsIDQgU2VwIDIwMTkgMTU6MDU6MjYgLTA1MDAKU3ViamVj dDogW1BBVENIIDIvM10gTmV3IHBhY2thZ2U6IG1ha2UtY2EtMS41CgotLS0KIHNyY3BrZ3MvbWFr ZS1jYS90ZW1wbGF0ZSB8IDE0ICsrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTQgaW5z ZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbWFrZS1jYS90ZW1wbGF0ZQoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbWFrZS1jYS90ZW1wbGF0ZSBiL3NyY3BrZ3MvbWFrZS1jYS90 ZW1wbGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMGQ1YzAxOTgz NWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL21ha2UtY2EvdGVtcGxhdGUKQEAgLTAsMCAr MSwxNCBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAnbWFrZS1jYScKK3BrZ25hbWU9bWFrZS1jYQor dmVyc2lvbj0xLjUKK3JldmlzaW9uPTEKK3dya3NyYz0ibWFrZS1jYS0ke3ZlcnNpb259IgorYnVp bGRfc3R5bGU9Z251LW1ha2VmaWxlCittYWtlX2luc3RhbGxfYXJncz0iU0JJTkRJUj0vdXNyL2Jp biIKK2hvc3RtYWtlZGVwZW5kcz0iaGVscDJtYW4iCitzaG9ydF9kZXNjPSJQS0kgc2V0dXAgc2Ny aXB0IGZvciBMRlMgKGFuZCBvdGhlcnMpIgorbWFpbnRhaW5lcj0iS3lsZSBOdXNiYXVtIDxrbnVz YmF1bSt2b2lkQHNkZi5vcmc+IgorbGljZW5zZT0iR1BMLTMuMC1vci1sYXRlciIKK2hvbWVwYWdl PSJodHRwczovL2dpdGh1Yi5jb20vZGpsdWNhcy9tYWtlLWNhLyIKK2Rpc3RmaWxlcz0iaHR0cHM6 Ly9naXRodWIuY29tL2RqbHVjYXMvbWFrZS1jYS9yZWxlYXNlcy9kb3dubG9hZC92JHt2ZXJzaW9u fS9tYWtlLWNhLSR7dmVyc2lvbn0udGFyLnh6IgorY2hlY2tzdW09ZTc1NzcxZGQ3M2ViOTcxODkz MzkzNzk2MjZmYjQyMjQxZWU1NzkwNThjNmVhMjkwMGVjODUwZTdkOTYxNzlmNwoKRnJvbSBhYjA2 OGExMjI2N2VhMzM1ZjZjNjNjNWY0NGZkY2U0NmYxMjY2NjFiIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBLeWxlIE51c2JhdW0gPGt5bGVudXNiYXVtQGdyYW51bGFyLmFnPgpEYXRlOiBX ZWQsIDQgU2VwIDIwMTkgMTY6MDY6NTAgLTA1MDAKU3ViamVjdDogW1BBVENIIDMvM10gTmV3IHBh Y2thZ2U6IG9wZW5qZGstMTEtMTErMjgKCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICA2ICsKIHNyY3BrZ3Mvb3Blbmpkay0xMS1kb2MgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmNwa2dzL29wZW5qZGstMTEtc3JjICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDEgKwogLi4uL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBh dGNoICAgICAgICAgIHwgIDExICsKIC4uLi9vcGVuamRrLTExL2ZpbGVzL211c2xfcGF0Y2hlcy9h cm0ucGF0Y2ggICB8ICAzMCArCiAuLi4vb3Blbmpkay0xMS9maWxlcy9tdXNsX3BhdGNoZXMvYnVp bGQucGF0Y2ggfCA1MzcgKysrKysrKysrKysrKysrKysrCiAuLi4vZmlsZXMvbXVzbF9wYXRjaGVz L3BwYzY0bGUucGF0Y2ggICAgICAgICAgfCAyMjEgKysrKysrKwogLi4uL29wZW5qZGstMTEvZmls ZXMvbXVzbF9wYXRjaGVzL3g4Ni5wYXRjaCAgIHwgMTMwICsrKysrCiBzcmNwa2dzL29wZW5qZGst MTEvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgfCAxODEgKysrKysrCiA5IGZpbGVzIGNoYW5n ZWQsIDExMTggaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3Mvb3Blbmpk ay0xMS1kb2MKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL29wZW5qZGstMTEtc3JjCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrLTExL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJj aDY0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrLTExL2ZpbGVzL211 c2xfcGF0Y2hlcy9hcm0ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGst MTEvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9vcGVuamRrLTExL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGM2NGxlLnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrLTExL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGstMTEvdGVtcGxhdGUKCmRpZmYg LS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCAxMTQ0MmYxYjkzNi4u ZTg2YzkyYzc0ZDggMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGli cwpAQCAtMTc3NSw2ICsxNzc1LDEyIEBAIGxpYmF3dF94YXd0LnNvIG9wZW5qZGstanJlLTh1MjBf MQogbGliamF2YS5zbyBvcGVuamRrLWpyZS04dTIwXzEKIGxpYmpsaS5zbyBvcGVuamRrLWpyZS04 dTIwXzEKIGxpYmp2bS5zbyBvcGVuamRrLWpyZS04dTIwXzEKK2xpYmphd3Quc28gb3Blbmpkay0x MS0xMS4wLjQrMTFfMQorbGliYXd0LnNvIG9wZW5qZGstMTEtMTEuMC40KzExXzEKK2xpYmF3dF94 YXd0LnNvIG9wZW5qZGstMTEtMTEuMC40KzExXzEKK2xpYmphdmEuc28gb3Blbmpkay0xMS0xMS4w LjQrMTFfMQorbGliamxpLnNvIG9wZW5qZGstMTEtMTEuMC40KzExXzEKK2xpYmp2bS5zbyBvcGVu amRrLTExLTExLjAuNCsxMV8xCiBsaWJ1Y2wuc28uNSBsaWJ1Y2wtMC44LjFfMQogbGliaGFuZGxl LnNvLjEgeGZzcHJvZ3MtMy4yLjFfMQogbGlibmZuZXRsaW5rLnNvLjAgbGlibmZuZXRsaW5rLTEu MC4xXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3Blbmpkay0xMS1kb2MgYi9zcmNwa2dzL29wZW5q ZGstMTEtZG9jCm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwLi43ZmFiYTcx YjlhOAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3Blbmpkay0xMS1kb2MKQEAgLTAsMCAr MSBAQAorb3Blbmpkay0xMQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh L3NyY3BrZ3Mvb3Blbmpkay0xMS1zcmMgYi9zcmNwa2dzL29wZW5qZGstMTEtc3JjCm5ldyBmaWxl IG1vZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwLi43ZmFiYTcxYjlhOAotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3Mvb3Blbmpkay0xMS1zcmMKQEAgLTAsMCArMSBAQAorb3Blbmpkay0xMQpc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3Blbmpkay0x MS9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaCBiL3NyY3BrZ3Mvb3Blbmpkay0xMS9m aWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uYjk1ZjQ1NWU5MjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29w ZW5qZGstMTEvZmlsZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2gKQEAgLTAsMCArMSwxMSBA QAorUGF0Y2hlcyBmb3IgbXVzbCB0YWtlbiBmcm9tIEFscGluZSBsaW51eDogaHR0cHM6Ly9naXQu YWxwaW5lbGludXgub3JnL2Fwb3J0cy9jb21taXQvP2lkPThhMWFlMTdkNGE5YWY1NDI4NWM3ODkx YTY4MDYyMGU3ZTI0YzYyODAKKy0tLSBvbGQvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X2FhcmNo NjQvb3NfbGludXhfYWFyY2g2NC5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4 X2FhcmNoNjQvb3NfbGludXhfYWFyY2g2NC5jcHAKK0BAIC03Nyw3ICs3Nyw2IEBACisgIyBpbmNs dWRlIDxwd2QuaD4KKyAjIGluY2x1ZGUgPHBvbGwuaD4KKyAjIGluY2x1ZGUgPHVjb250ZXh0Lmg+ CistIyBpbmNsdWRlIDxmcHVfY29udHJvbC5oPgorCisgI2lmZGVmIEJVSUxUSU5fU0lNCisgI2Rl ZmluZSBSRUdfU1AgUkVHX1JTUApkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrLTExL2ZpbGVz L211c2xfcGF0Y2hlcy9hcm0ucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGstMTEvZmlsZXMvbXVzbF9w YXRjaGVzL2FybS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u MTJkMDAyMmMxNDkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGstMTEvZmlsZXMv bXVzbF9wYXRjaGVzL2FybS5wYXRjaApAQCAtMCwwICsxLDMwIEBACitQYXRjaGVzIGZvciBtdXNs IHRha2VuIGZyb20gQWxwaW5lIGxpbnV4OiBodHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcvYXBv cnRzL2NvbW1pdC8/aWQ9OGExYWUxN2Q0YTlhZjU0Mjg1Yzc4OTFhNjgwNjIwZTdlMjRjNjI4MAor LS0tIG9sZC9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfYXJtL29zX2xpbnV4X2FybS5jcHAKKysr KyBuZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X2FybS9vc19saW51eF9hcm0uY3BwCitAQCAt NzEsNyArNzEsNiBAQAorICMgaW5jbHVkZSA8cHdkLmg+CisgIyBpbmNsdWRlIDxwb2xsLmg+Cisg IyBpbmNsdWRlIDx1Y29udGV4dC5oPgorLSMgaW5jbHVkZSA8ZnB1X2NvbnRyb2wuaD4KKyAjIGlu Y2x1ZGUgPGFzbS9wdHJhY2UuaD4KKworICNkZWZpbmUgU1BFTExfUkVHX1NQICAic3AiCitAQCAt MTA0LDYgKzEwMywxOCBAQAorICNkZWZpbmUgQVJNX1JFR1NfSU5fQ09OVEVYVCAgMzEKKworICNl bHNlCisrCisrLy8gU3R1cGlkIGhhY2sgYXMgdGhlIG9yaWdpbiBpZiBiZWxvdyBkb2VzbnQgY29t cGlsZSB3aXRoIGdjYyA4LjIuMDoKKysvLworKy8vIG9zX2xpbnV4X2FybS5jcHA6MTE0OjU6IGVy cm9yOiBtaXNzaW5nIGJpbmFyeSBvcGVyYXRvciBiZWZvcmUgdG9rZW4gIigiCisrLy8gICNpZiBO R1JFRyA9PSAxNgorKy8vICAgICAgIF5+fn5+CisrLy8KKysvLyBUaGUgTkdSRUcgaXMgMTgsIHNv IGZvcmNlIGl0IHRvIHRoYXQgdmFsdWUuCisrI2lmZGVmIE5HUkVHCisrIyAgdW5kZWYgTkdSRUcK KysjZW5kaWYKKysjZGVmaW5lIE5HUkVHIDE4CisKKyAjaWYgTkdSRUcgPT0gMTYKKyAvLyBUaGVz ZSBkZWZpbml0aW9ucyBhcmUgYmFzZWQgb24gdGhlIG9ic2VydmF0aW9uIHRoYXQgdW50aWwKZGlm ZiAtLWdpdCBhL3NyY3BrZ3Mvb3Blbmpkay0xMS9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0 Y2ggYi9zcmNwa2dzL29wZW5qZGstMTEvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44MWVkMGY1M2IxZAotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3Mvb3Blbmpkay0xMS9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQu cGF0Y2gKQEAgLTAsMCArMSw1MzcgQEAKK1BhdGNoZXMgZm9yIG11c2wgdGFrZW4gZnJvbSBBbHBp bmUgbGludXg6IGh0dHBzOi8vZ2l0LmFscGluZWxpbnV4Lm9yZy9hcG9ydHMvY29tbWl0Lz9pZD04 YTFhZTE3ZDRhOWFmNTQyODVjNzg5MWE2ODA2MjBlN2UyNGM2MjgwCistLS0gb2xkL21ha2UvUmVs ZWFzZUZpbGUuZ21rCisrKysgbmV3L21ha2UvUmVsZWFzZUZpbGUuZ21rCitAQCAtNTMsNiArNTMs NyBAQAorICAgJChjYWxsIGluZm8tZmlsZS1pdGVtLCAiSkFWQV9WRVJTSU9OX0RBVEUiLCAiJChW RVJTSU9OX0RBVEUpIikKKyAgICQoY2FsbCBpbmZvLWZpbGUtaXRlbSwgIk9TX05BTUUiLCAiJChS RUxFQVNFX0ZJTEVfT1NfTkFNRSkiKQorICAgJChjYWxsIGluZm8tZmlsZS1pdGVtLCAiT1NfQVJD SCIsICIkKFJFTEVBU0VfRklMRV9PU19BUkNIKSIpCisrICAkKGNhbGwgaW5mby1maWxlLWl0ZW0s ICJMSUJDIiwgIm11c2wiKQorIGVuZGVmCisKKyAjIFBhcmFtIDEgLSBUaGUgZmlsZSBjb250YWlu aW5nIHRoZSBNT0RVTEVTIGxpc3QKKy0tLSBvbGQvbWFrZS9hdXRvY29uZi9idWlsZC1hdXgvY29u ZmlnLmd1ZXNzCisrKysgbmV3L21ha2UvYXV0b2NvbmYvYnVpbGQtYXV4L2NvbmZpZy5ndWVzcwor QEAgLTMwLDYgKzMwLDE3IEBACisgRElSPWBkaXJuYW1lICQwYAorIE9VVD1gLiAkRElSL2F1dG9j b25mLWNvbmZpZy5ndWVzc2AKKworKyMgY29uZmlnLmd1ZXNzIGRvZXNuJ3QgaWRlbnRpZnkgc3lz dGVtcyBydW5uaW5nIHRoZSBtdXNsIEMgbGlicmFyeSwgYW5kIHdpbGwKKysjIGluc3RlYWQgcmV0 dXJuIGEgc3RyaW5nIHdpdGggYSAtZ251IHN1ZmZpeC4gVGhpcyBibG9jayBkZXRlY3RzIG11c2wg YW5kCisrIyBtb2RpZmllcyB0aGUgc3RyaW5nIHRvIGhhdmUgYSAtbXVzbCBzdWZmaXggaW5zdGVh ZC4gCisrZWNobyAkT1VUIHwgZ3JlcCAtLSAtbGludXgtID4gL2Rldi9udWxsIDI+IC9kZXYvbnVs bAorK2lmIHRlc3QgJD8gPSAwOyB0aGVuCisrICBsZGRfdmVyc2lvbj1gbGRkIC0tdmVyc2lvbiAy PiYxIHwgaGVhZCAtMSB8IGN1dCAtZjEgLWQnICdgCisrICBpZiBbIHgiJHtsZGRfdmVyc2lvbn0i ID0geCJtdXNsIiBdOyB0aGVuCisrICAgIE9VVD1gZWNobyAkT1VUIHwgc2VkICdzLy1nbnUvLW11 c2wvJ2AKKysgIGZpCisrZmkKKysKKyAjIFRlc3QgYW5kIGZpeCBzb2xhcmlzIG9uIHg4Nl82NAor IGVjaG8gJE9VVCB8IGdyZXAgaTM4Ni1wYy1zb2xhcmlzID4gL2Rldi9udWxsIDI+IC9kZXYvbnVs bAorIGlmIHRlc3QgJD8gPSAwOyB0aGVuCistLS0gb2xkL21ha2UvaG90c3BvdC9saWIvQ29tcGls ZUp2bS5nbWsKKysrKyBuZXcvbWFrZS9ob3RzcG90L2xpYi9Db21waWxlSnZtLmdtaworQEAgLTc3 LDYgKzc3LDcgQEAKKyAgICAgLURIT1RTUE9UX0JVSUxEX1VTRVI9JyIkKFVTRVJOQU1FKSInIFwK KyAgICAgLURIT1RTUE9UX1ZNX0RJU1RSTz0nIiQoSE9UU1BPVF9WTV9ESVNUUk8pIicgXAorICAg ICAtRENQVT0nIiQoT1BFTkpES19UQVJHRVRfQ1BVX1ZNX1ZFUlNJT04pIicgXAorKyAgICAtRExJ QkM9JyJtdXNsIicgXAorICAgICAjCisKKyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworLS0tIG9s ZC9tYWtlL2xpYi9Db3JlTGlicmFyaWVzLmdtaworKysrIG5ldy9tYWtlL2xpYi9Db3JlTGlicmFy aWVzLmdtaworQEAgLTI0MSw2ICsyNDEsNyBAQAorIGVuZGlmCisKKyBMSUJKTElfQ0ZMQUdTICs9 ICQoTElCWl9DRkxBR1MpCisrTElCSkxJX0NGTEFHUyArPSAtRExJQkM9XCJtdXNsXCIKKworIGlm bmVxICgkKFVTRV9FWFRFUk5BTF9MSUJaKSwgdHJ1ZSkKKyAgIExJQkpMSV9FWFRSQV9GSUxFUyAr PSBcCistLS0gb2xkL3NyYy9ob3RzcG90L29zL2xpbnV4L29zX2xpbnV4LmNwcAorKysrIG5ldy9z cmMvaG90c3BvdC9vcy9saW51eC9vc19saW51eC5jcHAKK0BAIC05OSw3ICs5OSw2IEBACisgIyBp bmNsdWRlIDxzdHJpbmcuaD4KKyAjIGluY2x1ZGUgPHN5c2NhbGwuaD4KKyAjIGluY2x1ZGUgPHN5 cy9zeXNpbmZvLmg+CistIyBpbmNsdWRlIDxnbnUvbGliYy12ZXJzaW9uLmg+CisgIyBpbmNsdWRl IDxzeXMvaXBjLmg+CisgIyBpbmNsdWRlIDxzeXMvc2htLmg+CisgIyBpbmNsdWRlIDxsaW5rLmg+ CitAQCAtNTExLDYgKzUxMCwxMSBAQAorIC8vIGRldGVjdGluZyBwdGhyZWFkIGxpYnJhcnkKKwor IHZvaWQgb3M6OkxpbnV4OjpsaWJwdGhyZWFkX2luaXQoKSB7CisrI2lmICFkZWZpbmVkKF9fR0xJ QkNfXykgJiYgIWRlZmluZWQoX19VQ0xJQkNfXykKKysgIC8vIEhhcmQgY29kZSBBbHBpbmUgTGlu dXggc3VwcG9ydGVkIG11c2wgY29tcGF0aWJsZSBzZXR0aW5ncworKyAgb3M6OkxpbnV4OjpzZXRf Z2xpYmNfdmVyc2lvbigiZ2xpYmMgMi45Iik7CisrICBvczo6TGludXg6OnNldF9saWJwdGhyZWFk X3ZlcnNpb24oIk5QVEwiKTsKKysjZWxzZQorICAgLy8gU2F2ZSBnbGliYyBhbmQgcHRocmVhZCB2 ZXJzaW9uIHN0cmluZ3MuCisgI2lmICFkZWZpbmVkKF9DU19HTlVfTElCQ19WRVJTSU9OKSB8fCBc CisgICAgICFkZWZpbmVkKF9DU19HTlVfTElCUFRIUkVBRF9WRVJTSU9OKQorQEAgLTUyOCw2ICs1 MzIsNyBAQAorICAgc3RyID0gKGNoYXIgKiltYWxsb2MobiwgbXRJbnRlcm5hbCk7CisgICBjb25m c3RyKF9DU19HTlVfTElCUFRIUkVBRF9WRVJTSU9OLCBzdHIsIG4pOworICAgb3M6OkxpbnV4Ojpz ZXRfbGlicHRocmVhZF92ZXJzaW9uKHN0cik7CisrI2VuZGlmCisgfQorCisgLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8KK0BAIC0yOTE2LDIwICsyOTIxLDM2IEBACisgZXh0ZXJuICJDIiBKTklFWFBPUlQg dm9pZCBudW1hX3dhcm4oaW50IG51bWJlciwgY2hhciAqd2hlcmUsIC4uLikgeyB9CisgZXh0ZXJu ICJDIiBKTklFWFBPUlQgdm9pZCBudW1hX2Vycm9yKGNoYXIgKndoZXJlKSB7IH0KKworK3N0YXRp YyB2b2lkKiBkbHZzeW1faWZfYXZhaWxhYmxlKHZvaWQqIGhhbmRsZSwgY29uc3QgY2hhciogbmFt ZSwgY29uc3QgY2hhciogdmVyc2lvbikgeworKyAgdHlwZWRlZiB2b2lkKiAoKmRsdnN5bV9mdW5j X3R5cGUpKHZvaWQqIGhhbmRsZSwgY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogdmVyc2lv bik7CisrICBzdGF0aWMgZGx2c3ltX2Z1bmNfdHlwZSBkbHZzeW1fZnVuYzsKKysgIHN0YXRpYyBi b29sIGluaXRpYWxpemVkID0gZmFsc2U7CisrCisrICBpZiAoIWluaXRpYWxpemVkKSB7CisrICAg IGRsdnN5bV9mdW5jID0gKGRsdnN5bV9mdW5jX3R5cGUpZGxzeW0oUlRMRF9ORVhULCAiZGx2c3lt Iik7CisrICAgIGluaXRpYWxpemVkID0gdHJ1ZTsKKysgIH0KKysKKysgIGlmIChkbHZzeW1fZnVu YyAhPSBOVUxMKSB7CisrICAgIHZvaWQgKmYgPSBkbHZzeW1fZnVuYyhoYW5kbGUsIG5hbWUsIHZl cnNpb24pOworKyAgICBpZiAoZiAhPSBOVUxMKSB7CisrICAgICAgcmV0dXJuIGY7CisrICAgIH0K KysgIH0KKysKKysgIHJldHVybiBkbHN5bShoYW5kbGUsIG5hbWUpOworK30KKysKKyAvLyBIYW5k bGUgcmVxdWVzdCB0byBsb2FkIGxpYm51bWEgc3ltYm9sIHZlcnNpb24gMS4xIChBUEkgdjEpLiBJ ZiBpdCBmYWlscworIC8vIGxvYWQgc3ltYm9sIGZyb20gYmFzZSB2ZXJzaW9uIGluc3RlYWQuCisg dm9pZCogb3M6OkxpbnV4OjpsaWJudW1hX2Rsc3ltKHZvaWQqIGhhbmRsZSwgY29uc3QgY2hhciAq bmFtZSkgeworLSAgdm9pZCAqZiA9IGRsdnN5bShoYW5kbGUsIG5hbWUsICJsaWJudW1hXzEuMSIp OworLSAgaWYgKGYgPT0gTlVMTCkgeworLSAgICBmID0gZGxzeW0oaGFuZGxlLCBuYW1lKTsKKy0g IH0KKy0gIHJldHVybiBmOworKyAgcmV0dXJuIGRsdnN5bV9pZl9hdmFpbGFibGUoaGFuZGxlLCBu YW1lLCAibGlibnVtYV8xLjEiKTsKKyB9CisKKyAvLyBIYW5kbGUgcmVxdWVzdCB0byBsb2FkIGxp Ym51bWEgc3ltYm9sIHZlcnNpb24gMS4yIChBUEkgdjIpIG9ubHkuCisgLy8gUmV0dXJuIE5VTEwg aWYgdGhlIHN5bWJvbCBpcyBub3QgZGVmaW5lZCBpbiB0aGlzIHBhcnRpY3VsYXIgdmVyc2lvbi4K KyB2b2lkKiBvczo6TGludXg6OmxpYm51bWFfdjJfZGxzeW0odm9pZCogaGFuZGxlLCBjb25zdCBj aGFyKiBuYW1lKSB7CistICByZXR1cm4gZGx2c3ltKGhhbmRsZSwgbmFtZSwgImxpYm51bWFfMS4y Iik7CisrICByZXR1cm4gZGx2c3ltX2lmX2F2YWlsYWJsZShoYW5kbGUsIG5hbWUsICJsaWJudW1h XzEuMiIpOworIH0KKworIGJvb2wgb3M6OkxpbnV4OjpsaWJudW1hX2luaXQoKSB7CistLS0gb2xk L3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3NfbGludXhfeDg2LmNwcAorKysrIG5ldy9z cmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKK0BAIC03NSw5ICs3 NSw2IEBACisgIyBpbmNsdWRlIDxwd2QuaD4KKyAjIGluY2x1ZGUgPHBvbGwuaD4KKyAjIGluY2x1 ZGUgPHVjb250ZXh0Lmg+CistI2lmbmRlZiBBTUQ2NAorLSMgaW5jbHVkZSA8ZnB1X2NvbnRyb2wu aD4KKy0jZW5kaWYKKworICNpZmRlZiBBTUQ2NAorICNkZWZpbmUgUkVHX1NQIFJFR19SU1AKKy0t LSBvbGQvc3JjL2hvdHNwb3Qvc2hhcmUvZ2Mvc2hhcmVkL2dlbkNvbGxlY3RlZEhlYXAuY3BwCisr KysgbmV3L3NyYy9ob3RzcG90L3NoYXJlL2djL3NoYXJlZC9nZW5Db2xsZWN0ZWRIZWFwLmNwcAor QEAgLTExNDcsNyArMTE0Nyw3IEBACisgc3RhdGljIFNjcmF0Y2hCbG9jayAqcmVtb3ZlU21hbGxl c3RTY3JhdGNoKFNjcmF0Y2hCbG9jayAqKnByZXZfcHRyKSB7CisgICBib29sIGZpcnN0ID0gdHJ1 ZTsKKyAgIHNpemVfdCBtaW5fc2l6ZSA9IDA7ICAgLy8gImZpcnN0IiBtYWtlcyB0aGlzIGNvbmNl cHR1YWxseSBpbmZpbml0ZS4KKy0gIFNjcmF0Y2hCbG9jayAqKnNtYWxsZXN0X3B0ciwgKnNtYWxs ZXN0OworKyAgU2NyYXRjaEJsb2NrICoqc21hbGxlc3RfcHRyID0gTlVMTCwgKnNtYWxsZXN0Owor ICAgU2NyYXRjaEJsb2NrICAqY3VyID0gKnByZXZfcHRyOworICAgd2hpbGUgKGN1cikgeworICAg ICBhc3NlcnQoKnByZXZfcHRyID09IGN1ciwgImp1c3QgY2hlY2tpbmciKTsKKy0tLSBvbGQvc3Jj L2hvdHNwb3Qvc2hhcmUvcnVudGltZS92bV92ZXJzaW9uLmNwcAorKysrIG5ldy9zcmMvaG90c3Bv dC9zaGFyZS9ydW50aW1lL3ZtX3ZlcnNpb24uY3BwCitAQCAtMjcyLDcgKzI3Miw3IEBACisgICAj ZW5kaWYKKworICAgI2RlZmluZSBJTlRFUk5BTF9WRVJTSU9OX1NVRkZJWCBWTV9SRUxFQVNFICIp IiBcCistICAgICAgICAgIiBmb3IgIiBPUyAiLSIgQ1BVIEZMT0FUX0FSQ0hfU1RSIFwKKysgICAg ICAgICAiIGZvciAiIE9TICItIiBDUFUgRkxPQVRfQVJDSF9TVFIgTElCQyBcCisgICAgICAgICAg IiBKUkUgKCIgVkVSU0lPTl9TVFJJTkcgIiksIGJ1aWx0IG9uICIgX19EQVRFX18gIiAiIF9fVElN RV9fIFwKKyAgICAgICAgICAiIGJ5ICIgWFNUUihIT1RTUE9UX0JVSUxEX1VTRVIpICIgd2l0aCAi IEhPVFNQT1RfQlVJTERfQ09NUElMRVIKKworLS0tIG9sZC9zcmMvaG90c3BvdC9zaGFyZS91dGls aXRpZXMvZ2xvYmFsRGVmaW5pdGlvbnNfZ2NjLmhwcAorKysrIG5ldy9zcmMvaG90c3BvdC9zaGFy ZS91dGlsaXRpZXMvZ2xvYmFsRGVmaW5pdGlvbnNfZ2NjLmhwcAorQEAgLTIwNCw3ICsyMDQsNyBA QAorICNlbGlmIGRlZmluZWQoX19BUFBMRV9fKQorIGlubGluZSBpbnQgZ19pc25hbihkb3VibGUg ZikgeyByZXR1cm4gaXNuYW4oZik7IH0KKyAjZWxpZiBkZWZpbmVkKExJTlVYKSB8fCBkZWZpbmVk KF9BTExCU0RfU09VUkNFKQorLWlubGluZSBpbnQgZ19pc25hbihmbG9hdCAgZikgeyByZXR1cm4g aXNuYW5mKGYpOyB9CisraW5saW5lIGludCBnX2lzbmFuKGZsb2F0ICBmKSB7IHJldHVybiBpc25h bihmKTsgfQorIGlubGluZSBpbnQgZ19pc25hbihkb3VibGUgZikgeyByZXR1cm4gaXNuYW4oZik7 IH0KKyAjZWxzZQorICNlcnJvciAibWlzc2luZyBwbGF0Zm9ybS1zcGVjaWZpYyBkZWZpbml0aW9u IGhlcmUiCistLS0gb2xkL3NyYy9qYXZhLmJhc2UvbGludXgvbmF0aXZlL2xpYm5ldC9saW51eF9j bG9zZS5jCisrKysgbmV3L3NyYy9qYXZhLmJhc2UvbGludXgvbmF0aXZlL2xpYm5ldC9saW51eF9j bG9zZS5jCitAQCAtNjAsNyArNjAsNyBAQAorIC8qCisgICogU2lnbmFsIHRvIHVuYmxvY2sgdGhy ZWFkCisgICovCistc3RhdGljIGludCBzaWdXYWtldXAgPSAoX19TSUdSVE1BWCAtIDIpOworK3N0 YXRpYyBpbnQgc2lnV2FrZXVwOworCisgLyoKKyAgKiBmZFRhYmxlIGhvbGRzIG9uZSBlbnRyeSBw ZXIgZmlsZSBkZXNjcmlwdG9yLCB1cCB0byBhIGNlcnRhaW4KK0BAIC0xNDksNiArMTQ5LDcgQEAK KyAgICAgLyoKKyAgICAgICogU2V0dXAgdGhlIHNpZ25hbCBoYW5kbGVyCisgICAgICAqLworKyAg ICBzaWdXYWtldXAgPSBTSUdSVE1BWCAtIDI7CisgICAgIHNhLnNhX2hhbmRsZXIgPSBzaWdfd2Fr ZXVwOworICAgICBzYS5zYV9mbGFncyAgID0gMDsKKyAgICAgc2lnZW1wdHlzZXQoJnNhLnNhX21h c2spOworLS0tIG9sZC9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvY2hpbGRwcm9j LmMKKysrKyBuZXcvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2NoaWxkcHJvYy5j CitAQCAtMjM3LDcgKzIzNywxMyBAQAorIHsKKyAgICAgaWYgKGVudnAgPT0gTlVMTCB8fCAoY2hh ciAqKikgZW52cCA9PSBlbnZpcm9uKSB7CisgICAgICAgICBleGVjdnAoZmlsZSwgKGNoYXIgKiop IGFyZ3YpOworLSAgICAgICAgcmV0dXJuOworKyAgICAgICAgLy8gRU5PRVhFQyBpbmRpY2F0ZXMg dGhhdCB0aGUgZmlsZSBoZWFkZXIgd2FzIG5vdCByZWNvZ25pemVkLiBUaGUgbXVzbCBDCisrICAg ICAgICAvLyBsaWJyYXJ5IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZmFsbGJhY2sgdG8gL2Jpbi9z aCBmb3IgdGhhdCBjYXNlLCBzbyBmYWxsCisrICAgICAgICAvLyB0aHJvdWdoIHRvIHRoZSBjb2Rl IGJlbG93IHdoaWNoIGltcGxlbWVudHMgdGhhdCBmYWxsYmFjayB1c2luZworKyAgICAgICAgLy8g ZXhlY3ZlX3dpdGhfc2hlbGxfZmFsbGJhY2suCisrICAgICAgICBpZiAoZXJybm8gIT0gRU5PRVhF QykgeworKyAgICAgICAgICAgIHJldHVybjsKKysgICAgICAgIH0KKyAgICAgfQorCisgICAgIGlm ICgqZmlsZSA9PSAnXDAnKSB7CistLS0gb2xkL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGli amF2YS9qZGtfdXRpbF9tZC5oCisrKysgbmV3L3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGli amF2YS9qZGtfdXRpbF9tZC5oCitAQCAtMzcsNyArMzcsNyBAQAorICNkZWZpbmUgSVNOQU5EKGQp IGlzbmFuKGQpCisgI2VsaWYgZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX0FMTEJTRF9T T1VSQ0UpCisgI2luY2x1ZGUgPG1hdGguaD4KKy0jZGVmaW5lIElTTkFORihmKSBpc25hbmYoZikK KysjZGVmaW5lIElTTkFORihmKSBpc25hbihmKQorICNkZWZpbmUgSVNOQU5EKGQpIGlzbmFuKGQp CisgI2VsaWYgZGVmaW5lZChfQUlYKQorICNpbmNsdWRlIDxtYXRoLmg+CistLS0gb2xkL3NyYy9q YXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamxpL2phdmFfbWRfc29saW51eC5jCisrKysgbmV3L3Ny Yy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamxpL2phdmFfbWRfc29saW51eC5jCitAQCAtMjM1 LDYgKzIzNSwzOSBAQAorICAgICBjaGFyICpkbWxscCA9IE5VTEw7CisgICAgIGNoYXIgKnA7IC8q IGEgdXRpbGl0eSBwb2ludGVyICovCisKKysjaWZkZWYgX19saW51eAorKyNpZm5kZWYgTElCQwor KyNlcnJvciAiTElCQyBub3Qgc2V0IgorKyNlbmRpZgorKworKyAgICBpZiAoc3RyY21wKExJQkMs ICJtdXNsIikgPT0gMCkgeworKyAgICAgIC8qCisrICAgICAgICogVGhlIG11c2wgbGlicmFyeSBs b2FkZXIgcmVxdWlyZXMgTERfTElCUkFSWV9QQVRIIHRvIGJlIHNldCBpbgorKyAgICAgICAqIG9y ZGVyIHRvIGNvcnJlY3RseSByZXNvbHZlIHRoZSBkZXBlbmRlbmN5IGxpYmphdmEuc28gaGFzIG9u IGxpYmp2bS5zby4KKysgICAgICAgKgorKyAgICAgICAqIFNwZWNpZmljYWxseSwgaXQgZGlmZmVy cyBmcm9tIGdsaWJjIGluIHRoZSBzZW5zZSB0aGF0IGV2ZW4gaWYKKysgICAgICAgKiBsaWJqdm0u c28gaGFzIGFscmVhZHkgYmVlbiBsb2FkZWQgaXQgd2lsbCBub3QgYmUgY29uc2lkZXJlZCBhCisr ICAgICAgICogY2FuZGlkYXRlIGZvciByZXNvbHZpbmcgdGhlIGRlcGVuZGVuY3kgdW5sZXNzIHRo ZSAqZnVsbCogcGF0aAorKyAgICAgICAqIG9mIHRoZSBhbHJlYWR5IGxvYWRlZCBsaWJyYXJ5IG1h dGNoZXMgdGhlIGRlcGVuZGVuY3kgYmVpbmcgbG9hZGVkLgorKyAgICAgICAqCisrICAgICAgICog bGlianZtLnNvIGlzIGJlaW5nIGxvYWRlZCBieSB0aGUgbGF1bmNoZXIgdXNpbmcgYSBsb25nIHBh dGggdG8KKysgICAgICAgKiBkbG9wZW4sIG5vdCBqdXN0IHRoZSBiYXNlbmFtZSBvZiB0aGUgbGli cmFyeS4gVHlwaWNhbGx5IHRoaXMKKysgICAgICAgKiBpcyBzb21ldGhpbmcgbGlrZSAiLi4vbGli L3NlcnZlci9saWJqdm0uc28iLiBIb3dldmVyLCBpZi93aGVuCisrICAgICAgICogbGlianZtLnNv IGxhdGVyIHRyaWVzIHRvIGRsb3BlbiBsaWJqYXZhLnNvICh3aGljaCBpdCBkb2VzIGluCisrICAg ICAgICogb3JkZXIgdG8gZ2V0IGFjY2VzcyB0byBhIGZldyBmdW5jdGlvbnMgaW1wbGVtZW50ZWQg aW4KKysgICAgICAgKiBsaWJqYXZhLnNvKSB0aGUgbXVzbCBsb2FkZXIgd2lsbCwgYXMgcGFydCBv ZiBsb2FkaW5nCisrICAgICAgICogZGVwZW5kZW50IGxpYnJhcmllcywgdHJ5IHRvIGxvYWQgbGli anZtLnNvIHVzaW5nIG9ubHkgaXRzCisrICAgICAgICogYmFzZW5hbWUgImxpYmp2bS5zbyIuIFNp bmNlIHRoaXMgZG9lcyBub3QgbWF0Y2ggdGhlIGxvbmdlcgorKyAgICAgICAqIHBhdGggcGF0aCBp dCB3YXMgZmlyc3QgbG9hZGVkIHdpdGgsIHRoZSBhbHJlYWR5IGxvYWRlZAorKyAgICAgICAqIGxp YnJhcnkgaXMgbm90IGNvbnNpZGVyZWQgYSBjYW5kaWRhdGUsIGFuZCB0aGUgbG9hZGVyIHdpbGwK KysgICAgICAgKiBpbnN0ZWFkIGxvb2sgZm9yIGxpYmp2bS5zbyBlbHNld2hlcmUuIElmIGl0J3Mg bm90IGluCisrICAgICAgICogTERfTElCUkFSWV9QQVRIIHRoZSBkZXBlbmRlbmN5IGxvYWQgd2ls bCBmYWlsLCBhbmQgbGliamF2YS5zbworKyAgICAgICAqIHdpbGwgdGhlcmVmb3JlIGZhaWwgYXMg d2VsbC4KKysgICAgICAgKi8KKysgICAgICByZXR1cm4gSk5JX1RSVUU7CisrICAgIH0KKysjZW5k aWYKKysKKyAjaWZkZWYgQUlYCisgICAgIC8qIFdlIGFsd2F5cyBoYXZlIHRvIHNldCB0aGUgTElC UEFUSCBvbiBBSVggYmVjYXVzZSBsZCBkb2Vzbid0IHN1cHBvcnQgJE9SSUdJTi4gKi8KKyAgICAg cmV0dXJuIEpOSV9UUlVFOworLS0tIG9sZC9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYm5p by9jaC9OYXRpdmVUaHJlYWQuYworKysrIG5ldy9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xp Ym5pby9jaC9OYXRpdmVUaHJlYWQuYworQEAgLTM2LDcgKzM2LDcgQEAKKyAjaWZkZWYgX19saW51 eF9fCisgICAjaW5jbHVkZSA8cHRocmVhZC5oPgorICAgLyogQWxzbyBkZWZpbmVkIGluIG5ldC9s aW51eF9jbG9zZS5jICovCistICAjZGVmaW5lIElOVEVSUlVQVF9TSUdOQUwgKF9fU0lHUlRNQVgg LSAyKQorKyAgI2RlZmluZSBJTlRFUlJVUFRfU0lHTkFMIChTSUdSVE1BWCAtIDIpCisgI2VsaWYg X0FJWAorICAgI2luY2x1ZGUgPHB0aHJlYWQuaD4KKyAgIC8qIEFsc28gZGVmaW5lZCBpbiBuZXQv YWl4X2Nsb3NlLmMgKi8KKy0tLSBvbGQvc3JjL2phdmEuZGVza3RvcC91bml4L25hdGl2ZS9saWJh d3RfeGF3dC94YXd0L1hUb29sa2l0LmMKKysrKyBuZXcvc3JjL2phdmEuZGVza3RvcC91bml4L25h dGl2ZS9saWJhd3RfeGF3dC94YXd0L1hUb29sa2l0LmMKK0BAIC0yNyw5ICsyNyw2IEBACisgI2lu Y2x1ZGUgPFgxMS9YdXRpbC5oPgorICNpbmNsdWRlIDxYMTEvWG9zLmg+CisgI2luY2x1ZGUgPFgx MS9YYXRvbS5oPgorLSNpZmRlZiBfX2xpbnV4X18KKy0jaW5jbHVkZSA8ZXhlY2luZm8uaD4KKy0j ZW5kaWYKKworICNpbmNsdWRlIDxqdm0uaD4KKyAjaW5jbHVkZSA8am5pLmg+CitAQCAtNzg2LDI2 ICs3ODMsNiBAQAorICAgICB9CisgICAgIHJldHVybiByZXQ7CisgfQorLQorLSNpZmRlZiBfX2xp bnV4X18KKy12b2lkIHByaW50X3N0YWNrKHZvaWQpCisteworLSAgdm9pZCAqYXJyYXlbMTBdOwor LSAgc2l6ZV90IHNpemU7CistICBjaGFyICoqc3RyaW5nczsKKy0gIHNpemVfdCBpOworLQorLSAg c2l6ZSA9IGJhY2t0cmFjZSAoYXJyYXksIDEwKTsKKy0gIHN0cmluZ3MgPSBiYWNrdHJhY2Vfc3lt Ym9scyAoYXJyYXksIHNpemUpOworLQorLSAgZnByaW50ZiAoc3RkZXJyLCAiT2J0YWluZWQgJXpk IHN0YWNrIGZyYW1lcy5cbiIsIHNpemUpOworLQorLSAgZm9yIChpID0gMDsgaSA8IHNpemU7IGkr KykKKy0gICAgIGZwcmludGYgKHN0ZGVyciwgIiVzXG4iLCBzdHJpbmdzW2ldKTsKKy0KKy0gIGZy ZWUgKHN0cmluZ3MpOworLX0KKy0jZW5kaWYKKworIFdpbmRvdyBnZXRfeGF3dF9yb290X3NoZWxs KEpOSUVudiAqZW52KSB7CisgICBzdGF0aWMgamNsYXNzIGNsYXNzWFJvb3RXaW5kb3cgPSBOVUxM OworLS0tIG9sZC9zcmMvamRrLmpkd3AuYWdlbnQvc2hhcmUvbmF0aXZlL2xpYmpkd3AvdXRpbC5o CisrKysgbmV3L3NyYy9qZGsuamR3cC5hZ2VudC9zaGFyZS9uYXRpdmUvbGliamR3cC91dGlsLmgK K0BAIC0zNSwxNSArMzUsMTUgQEAKKyAjaWZkZWYgREVCVUcKKyAgICAgLyogSnVzdCB0byBtYWtl IHN1cmUgdGhlc2UgaW50ZXJmYWNlcyBhcmUgbm90IHVzZWQgaGVyZS4gKi8KKyAgICAgI3VuZGVm IGZyZWUKKy0gICAgI2RlZmluZSBmcmVlKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisr ICAgICNkZWZpbmUgZnJlZSBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX2ZyZWUKKyAgICAgI3Vu ZGVmIG1hbGxvYworLSAgICAjZGVmaW5lIG1hbGxvYyhwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJm YWNlLgorKyAgICAjZGVmaW5lIG1hbGxvYyBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX21hbGxv YworICAgICAjdW5kZWYgY2FsbG9jCistICAgICNkZWZpbmUgY2FsbG9jKHApIERvIG5vdCB1c2Ug dGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUgY2FsbG9jIGRvX25vdF91c2VfdGhpc19pbnRl cmZhY2VfY2FsbG9jCisgICAgICN1bmRlZiByZWFsbG9jCistICAgICNkZWZpbmUgcmVhbGxvYyhw KSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIHJlYWxsb2MgZG9fbm90 X3VzZV90aGlzX2ludGVyZmFjZV9yZWFsbG9jCisgICAgICN1bmRlZiBzdHJkdXAKKy0gICAgI2Rl ZmluZSBzdHJkdXAocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSBz dHJkdXAgZG9fbm90X3VzZV90aGlzX2ludGVyZmFjZV9zdHJkdXAKKyAjZW5kaWYKKworICNpbmNs dWRlICJsb2dfbWVzc2FnZXMuaCIKKy0tLSBvbGQvdGVzdC9ob3RzcG90L2p0cmVnL3J1bnRpbWUv U3RhY2tHdWFyZFBhZ2VzL2V4ZWludm9rZS5jCisrKysgbmV3L3Rlc3QvaG90c3BvdC9qdHJlZy9y dW50aW1lL1N0YWNrR3VhcmRQYWdlcy9leGVpbnZva2UuYworQEAgLTMzLDYgKzMzLDcgQEAKKwor ICNpbmNsdWRlIDxhc3NlcnQuaD4KKyAjaW5jbHVkZSA8am5pLmg+CisrI2luY2x1ZGUgPGp2bS5o PgorICNpbmNsdWRlIDxhbGxvY2EuaD4KKyAjaW5jbHVkZSA8c2lnbmFsLmg+CisgI2luY2x1ZGUg PHN0cmluZy5oPgorQEAgLTkxLDYgKzkyLDIwIEBACisgICB9CisgfQorCisraW50IGdldF9qYXZh X3N0YWNrc2l6ZSAoKSB7CisrICBzaXplX3Qgc3RhY2tzaXplOworKyAgcHRocmVhZF9hdHRyX3Qg YXR0cjsKKysgIEpESzFfMUluaXRBcmdzIGpka19hcmdzOworKworKyAgamRrX2FyZ3MudmVyc2lv biA9IEpOSV9WRVJTSU9OXzFfMTsKKysgIEpOSV9HZXREZWZhdWx0SmF2YVZNSW5pdEFyZ3MoJmpk a19hcmdzKTsKKysgIGlmIChqZGtfYXJncy5qYXZhU3RhY2tTaXplIDw9IDApIHsKKysgICAgZnBy aW50ZihzdGRlcnIsICJUZXN0IEVSUk9SLiBDYW4ndCBnZXQgYSB2YWxpZCB2YWx1ZSBmb3IgdGhl IGRlZmF1bHQgc3RhY2tzaXplLlxuIik7CisrICAgIGV4aXQoNyk7CisrICB9CisrICByZXR1cm4g amRrX2FyZ3MuamF2YVN0YWNrU2l6ZTsKKyt9CisrCisgdm9pZCAqcnVuX2phdmFfb3ZlcmZsb3cg KHZvaWQgKnApIHsKKyAgIEpOSUVudiAqZW52OworICAgamNsYXNzIGNsYXNzX2lkOworQEAgLTI1 NCwxMyArMjY5LDE5IEBACisgICAgIGV4aXQoNyk7CisgICB9CisKKysgIGludCBzdGFja19zaXpl ID0gZ2V0X2phdmFfc3RhY2tzaXplKCk7CisgICBwdGhyZWFkX3QgdGhyOworKyAgcHRocmVhZF9h dHRyX3QgdGhyZWFkX2F0dHI7CisKKysgIHB0aHJlYWRfYXR0cl9pbml0KCZ0aHJlYWRfYXR0cik7 CisrICBwdGhyZWFkX2F0dHJfc2V0c3RhY2tzaXplKCZ0aHJlYWRfYXR0ciwgc3RhY2tfc2l6ZSk7 CisrCisgICBpZiAoYXJnYyA+IDEgJiYgc3RyY21wKGFyZ3ZbMV0sICJ0ZXN0X2phdmFfb3ZlcmZs b3ciKSA9PSAwKSB7CisgICAgIHByaW50ZigiXG5UZXN0aW5nIEpBVkFfT1ZFUkZMT1dcbiIpOwor CisgICAgIHByaW50ZigiVGVzdGluZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2aW91ciBmb3Igb3Ro ZXIgdGhyZWFkXG4iKTsKKy0gICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsIE5VTEwsIHJ1bl9qYXZh X292ZXJmbG93LCBOVUxMKTsKKysKKysgICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsICZ0aHJlYWRf YXR0ciwgcnVuX2phdmFfb3ZlcmZsb3csIE5VTEwpOworICAgICBwdGhyZWFkX2pvaW4gKHRociwg TlVMTCk7CisKKyAgICAgcHJpbnRmKCJUZXN0aW5nIHN0YWNrIGd1YXJkIHBhZ2UgYmVoYXZpb3Vy IGZvciBpbml0aWFsIHRocmVhZFxuIik7CitAQCAtMjczLDcgKzI5NCw3IEBACisgICAgIHByaW50 ZigiXG5UZXN0aW5nIE5BVElWRV9PVkVSRkxPV1xuIik7CisKKyAgICAgcHJpbnRmKCJUZXN0aW5n IHN0YWNrIGd1YXJkIHBhZ2UgYmVoYXZpb3VyIGZvciBvdGhlciB0aHJlYWRcbiIpOworLSAgICBw dGhyZWFkX2NyZWF0ZSAoJnRociwgTlVMTCwgcnVuX25hdGl2ZV9vdmVyZmxvdywgTlVMTCk7Cisr ICAgIHB0aHJlYWRfY3JlYXRlICgmdGhyLCAmdGhyZWFkX2F0dHIsIHJ1bl9uYXRpdmVfb3ZlcmZs b3csIE5VTEwpOworICAgICBwdGhyZWFkX2pvaW4gKHRociwgTlVMTCk7CisKKyAgICAgcHJpbnRm KCJUZXN0aW5nIHN0YWNrIGd1YXJkIHBhZ2UgYmVoYXZpb3VyIGZvciBpbml0aWFsIHRocmVhZFxu Iik7CistLS0gb2xkL3Rlc3QvamRrL2phdmEvbGFuZy9Qcm9jZXNzQnVpbGRlci9CYXNpYy5qYXZh CisrKysgbmV3L3Rlc3QvamRrL2phdmEvbGFuZy9Qcm9jZXNzQnVpbGRlci9CYXNpYy5qYXZhCitA QCAtMzg5LDggKzM4OSw4IEBACisgICAgICAgICAgICAgICAgIGlmIChmYWlsZWQgIT0gMCkgdGhy b3cgbmV3IEVycm9yKCJudWxsIFBBVEgiKTsKKyAgICAgICAgICAgICB9IGVsc2UgaWYgKGFjdGlv bi5lcXVhbHMoIlBBVEggc2VhcmNoIGFsZ29yaXRobSIpKSB7CisgICAgICAgICAgICAgICAgIGVx dWFsKFN5c3RlbS5nZXRlbnYoIlBBVEgiKSwgImRpcjE6ZGlyMjoiKTsKKy0gICAgICAgICAgICAg ICAgY2hlY2sobmV3IEZpbGUoIi9iaW4vdHJ1ZSIpLmV4aXN0cygpKTsKKy0gICAgICAgICAgICAg ICAgY2hlY2sobmV3IEZpbGUoIi9iaW4vZmFsc2UiKS5leGlzdHMoKSk7CisrICAgICAgICAgICAg ICAgIGNoZWNrKG5ldyBGaWxlKFRydWVFeGUucGF0aCgpKS5leGlzdHMoKSk7CisrICAgICAgICAg ICAgICAgIGNoZWNrKG5ldyBGaWxlKEZhbHNlRXhlLnBhdGgoKSkuZXhpc3RzKCkpOworICAgICAg ICAgICAgICAgICBTdHJpbmdbXSBjbWQgPSB7InByb2cifTsKKyAgICAgICAgICAgICAgICAgUHJv Y2Vzc0J1aWxkZXIgcGIxID0gbmV3IFByb2Nlc3NCdWlsZGVyKGNtZCk7CisgICAgICAgICAgICAg ICAgIFByb2Nlc3NCdWlsZGVyIHBiMiA9IG5ldyBQcm9jZXNzQnVpbGRlcihjbWQpOworQEAgLTQz MSwxMyArNDMxLDEzIEBACisgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tQZXJtaXNzaW9u RGVuaWVkKHBiKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnRpbnVlIHNlYXJj aGluZyBpZiBFQUNDRVMKKy0gICAgICAgICAgICAgICAgICAgICAgICBjb3B5KCIvYmluL3RydWUi LCAiZGlyMi9wcm9nIik7CisrICAgICAgICAgICAgICAgICAgICAgICAgY29weShUcnVlRXhlLnBh dGgoKSwgImRpcjIvcHJvZyIpOworICAgICAgICAgICAgICAgICAgICAgICAgIGVxdWFsKHJ1bihw YikuZXhpdFZhbHVlKCksIFRydWUuZXhpdFZhbHVlKCkpOworICAgICAgICAgICAgICAgICAgICAg ICAgIG5ldyBGaWxlKCJkaXIxL3Byb2ciKS5kZWxldGUoKTsKKyAgICAgICAgICAgICAgICAgICAg ICAgICBuZXcgRmlsZSgiZGlyMi9wcm9nIikuZGVsZXRlKCk7CisKKyAgICAgICAgICAgICAgICAg ICAgICAgICBuZXcgRmlsZSgiZGlyMi9wcm9nIikubWtkaXJzKCk7CistICAgICAgICAgICAgICAg ICAgICAgICAgY29weSgiL2Jpbi90cnVlIiwgImRpcjEvcHJvZyIpOworKyAgICAgICAgICAgICAg ICAgICAgICAgIGNvcHkoVHJ1ZUV4ZS5wYXRoKCksICJkaXIxL3Byb2ciKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICBlcXVhbChydW4ocGIpLmV4aXRWYWx1ZSgpLCBUcnVlLmV4aXRWYWx1ZSgp KTsKKworICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGVtcHR5IFBBVEggY29tcG9u ZW50IG1lYW5zIGN1cnJlbnQgZGlyZWN0b3J5LgorQEAgLTQ1MywxMCArNDUzLDEwIEBACisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBiLmNvbW1hbmQoY29tbWFuZCk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEZpbGUgcHJvZyA9IG5ldyBGaWxlKCIuL3Byb2ciKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gIk5vcm1hbCIgYmluYXJpZXMKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29weSgiL2Jpbi90cnVlIiwgIi4vcHJvZyIpOworKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb3B5KFRydWVFeGUucGF0aCgpLCAiLi9wcm9nIik7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGVxdWFsKHJ1bihwYikuZXhpdFZhbHVlKCksCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRydWUuZXhpdFZhbHVlKCkpOworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb3B5KCIvYmluL2ZhbHNlIiwgIi4vcHJvZyIpOworKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B5KEZhbHNlRXhlLnBhdGgoKSwgIi4vcHJvZyIp OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcXVhbChydW4ocGIpLmV4aXRWYWx1ZSgp LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGYWxzZS5leGl0VmFsdWUoKSk7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2cuZGVsZXRlKCk7CitAQCAtNTExLDEy ICs1MTEsMTIgQEAKKyAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRmlsZSgiZGlyMi9wcm9n IikuZGVsZXRlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEZpbGUoInByb2ciKS5k ZWxldGUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRmlsZSgiZGlyMyIpLm1rZGly cygpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGNvcHkoIi9iaW4vdHJ1ZSIsICJkaXIxL3By b2ciKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBjb3B5KCIvYmluL2ZhbHNlIiwgImRpcjMv cHJvZyIpOworKyAgICAgICAgICAgICAgICAgICAgICAgIGNvcHkoVHJ1ZUV4ZS5wYXRoKCksICJk aXIxL3Byb2ciKTsKKysgICAgICAgICAgICAgICAgICAgICAgICBjb3B5KEZhbHNlRXhlLnBhdGgo KSwgImRpcjMvcHJvZyIpOworICAgICAgICAgICAgICAgICAgICAgICAgIHBiLmVudmlyb25tZW50 KCkucHV0KCJQQVRIIiwiZGlyMyIpOworICAgICAgICAgICAgICAgICAgICAgICAgIGVxdWFsKHJ1 bihwYikuZXhpdFZhbHVlKCksIFRydWUuZXhpdFZhbHVlKCkpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGNvcHkoIi9iaW4vdHJ1ZSIsICJkaXIzL3Byb2ciKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBjb3B5KCIvYmluL2ZhbHNlIiwgImRpcjEvcHJvZyIpOworKyAgICAgICAgICAgICAg ICAgICAgICAgIGNvcHkoVHJ1ZUV4ZS5wYXRoKCksICJkaXIzL3Byb2ciKTsKKysgICAgICAgICAg ICAgICAgICAgICAgICBjb3B5KEZhbHNlRXhlLnBhdGgoKSwgImRpcjEvcHJvZyIpOworICAgICAg ICAgICAgICAgICAgICAgICAgIGVxdWFsKHJ1bihwYikuZXhpdFZhbHVlKCksIEZhbHNlLmV4aXRW YWx1ZSgpKTsKKworICAgICAgICAgICAgICAgICAgICAgfSBmaW5hbGx5IHsKK0BAIC02MTMsNiAr NjEzLDEzIEBACisgICAgICAgICAgICAgIG5ldyBGaWxlKCIvYmluL2ZhbHNlIikuZXhpc3RzKCkp OworICAgICB9CisKKysgICAgc3RhdGljIGNsYXNzIEJ1c3lCb3ggeworKyAgICAgICAgcHVibGlj IHN0YXRpYyBib29sZWFuIGlzKCkgeyByZXR1cm4gaXM7IH0KKysgICAgICAgIHByaXZhdGUgc3Rh dGljIGZpbmFsIGJvb2xlYW4gaXMgPQorKyAgICAgICAgICAgICghIFdpbmRvd3MuaXMoKSAmJgor KyAgICAgICAgICAgICBuZXcgRmlsZSgiL2Jpbi9idXN5Ym94IikuZXhpc3RzKCkpOworKyAgICB9 CisrCisgICAgIHN0YXRpYyBjbGFzcyBVbmljb2RlT1MgeworICAgICAgICAgcHVibGljIHN0YXRp YyBib29sZWFuIGlzKCkgeyByZXR1cm4gaXM7IH0KKyAgICAgICAgIHByaXZhdGUgc3RhdGljIGZp bmFsIFN0cmluZyBvc05hbWUgPSBTeXN0ZW0uZ2V0UHJvcGVydHkoIm9zLm5hbWUiKTsKK0BAIC02 NTEsNiArNjU4LDQ1IEBACisgICAgICAgICB9CisgICAgIH0KKworKyAgICAvLyBPbiBhbHBpbmUg bGludXgsIC9iaW4vdHJ1ZSBhbmQgL2Jpbi9mYWxzZSBhcmUganVzdCBsaW5rcyB0byAvYmluL2J1 c3lib3guCisrICAgIC8vIFNvbWUgdGVzdHMgY29weSAvYmluL3RydWUgYW5kIC9iaW4vZmFsc2Ug dG8gZmlsZXMgd2l0aCBhIGRpZmZlcmVudCBmaWxlbmFtZS4KKysgICAgLy8gSG93ZXZlciwgY29w eWluZyB0aGUgYnVzYm94IGV4ZWN1dGFibGUgaW50byBhIGZpbGUgd2l0aCBhIGRpZmZlcmVudCBu YW1lCisrICAgIC8vIHdvbid0IHJlc3VsdCBpbiB0aGUgZXhwZWN0ZWQgcmV0dXJuIGNvZGVzLiBB cyB3b3JrYXJvdW5kLCB3ZSBjcmVhdGUKKysgICAgLy8gZXhlY3V0YWJsZSBmaWxlcyB0aGF0IGNh biBiZSBjb3BpZWQgYW5kIHByb2R1Y2UgdGhlIGV4ZXBlY3RlZCByZXR1cm4KKysgICAgLy8gdmFs dWVzLiBXZSB1c2UgdGhpcyB3b3JrYXJvdW5kLCBpZiB3ZSBmaW5kIHRoZSBidXN5Ym94IGV4ZWN1 dGFibGUuCisrCisrICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFRydWVFeGUgeworKyAgICAgICAg cHVibGljIHN0YXRpYyBTdHJpbmcgcGF0aCgpIHsgcmV0dXJuIHBhdGg7IH0KKysgICAgICAgIHBy aXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBwYXRoID0gcGF0aDAoKTsKKysgICAgICAgIHByaXZh dGUgc3RhdGljIFN0cmluZyBwYXRoMCgpeworKyAgICAgICAgICAgIGlmICghQnVzeUJveC5pcygp KSB7CisrICAgICAgICAgICAgICAgIHJldHVybiAiL2Jpbi90cnVlIjsKKysgICAgICAgICAgICB9 CisrICAgICAgICAgICAgZWxzZSB7CisrICAgICAgICAgICAgICAgIEZpbGUgdHJ1ZUV4ZSA9IG5l dyBGaWxlKCJ0cnVlIik7CisrICAgICAgICAgICAgICAgIHNldEZpbGVDb250ZW50cyh0cnVlRXhl LCAiIyEvYmluL3RydWVcbiIpOworKyAgICAgICAgICAgICAgICB0cnVlRXhlLnNldEV4ZWN1dGFi bGUodHJ1ZSk7CisrICAgICAgICAgICAgICAgIHJldHVybiB0cnVlRXhlLmdldEFic29sdXRlUGF0 aCgpOworKyAgICAgICAgICAgIH0KKysgICAgICAgIH0KKysgICAgfQorKworKyAgICBwcml2YXRl IHN0YXRpYyBjbGFzcyBGYWxzZUV4ZSB7CisrICAgICAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBw YXRoKCkgeyByZXR1cm4gcGF0aDsgfQorKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3Ry aW5nIHBhdGggPSBwYXRoMCgpOworKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIHBhdGgw KCl7CisrICAgICAgICAgICAgaWYgKCFCdXN5Qm94LmlzKCkpIHsKKysgICAgICAgICAgICAgICAg cmV0dXJuICIvYmluL2ZhbHNlIjsKKysgICAgICAgICAgICB9CisrICAgICAgICAgICAgZWxzZSB7 CisrICAgICAgICAgICAgICAgIEZpbGUgZmFsc2VFeGUgPSBuZXcgRmlsZSgiZmFsc2UiKTsKKysg ICAgICAgICAgICAgICAgc2V0RmlsZUNvbnRlbnRzKGZhbHNlRXhlLCAiIyEvYmluL2ZhbHNlXG4i KTsKKysgICAgICAgICAgICAgICAgZmFsc2VFeGUuc2V0RXhlY3V0YWJsZSh0cnVlKTsKKysgICAg ICAgICAgICAgICAgcmV0dXJuIGZhbHNlRXhlLmdldEFic29sdXRlUGF0aCgpOworKyAgICAgICAg ICAgIH0KKysgICAgICAgIH0KKysgICAgfQorKworICAgICBzdGF0aWMgY2xhc3MgRW5nbGlzaFVu aXggeworICAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQm9vbGVhbiBpcyA9CisgICAgICAg ICAgICAgKCEgV2luZG93cy5pcygpICYmIGlzRW5nbGlzaCgiTEFORyIpICYmIGlzRW5nbGlzaCgi TENfQUxMIikpOworQEAgLTE5NTQsNyArMjAwMCw3IEBACisgICAgICAgICAgICAgLy8tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgbmV3IEZpbGUoInN1QmRpUiIp Lm1rZGlycygpOworLSAgICAgICAgICAgICAgICBjb3B5KCIvYmluL3RydWUiLCAic3VCZGlSL3Vu bGlLZWx5Iik7CisrICAgICAgICAgICAgICAgIGNvcHkoVHJ1ZUV4ZS5wYXRoKCksICJzdUJkaVIv dW5saUtlbHkiKTsKKyAgICAgICAgICAgICAgICAgZmluYWwgUHJvY2Vzc0J1aWxkZXIgcGIgPQor ICAgICAgICAgICAgICAgICAgICAgbmV3IFByb2Nlc3NCdWlsZGVyKG5ldyBTdHJpbmdbXXsidW5s aUtlbHkifSk7CisgICAgICAgICAgICAgICAgIHBiLmVudmlyb25tZW50KCkucHV0KCJQQVRIIiwg InN1QmRpUiIpOworLS0tIG9sZC90ZXN0L2pkay9qYXZhL2xhbmcvUHJvY2Vzc0hhbmRsZS9JbmZv VGVzdC5qYXZhCisrKysgbmV3L3Rlc3QvamRrL2phdmEvbGFuZy9Qcm9jZXNzSGFuZGxlL0luZm9U ZXN0LmphdmEKK0BAIC0yOTgsNiArMjk4LDEzIEBACisgICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICAgICAgaWYgKGluZm8uY29tbWFuZCgpLmlzUHJlc2VudCgpKSB7CisgICAgICAgICAg ICAgICAgICAgICBTdHJpbmcgY29tbWFuZCA9IGluZm8uY29tbWFuZCgpLmdldCgpOworLSAgICAg ICAgICAgICAgICAgICAgU3RyaW5nIGV4cGVjdGVkID0gUGxhdGZvcm0uaXNXaW5kb3dzKCkgPyAi c2xlZXAuZXhlIiA6ICJzbGVlcCI7CisrICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZXhwZWN0 ZWQgPSAic2xlZXAiOworKyAgICAgICAgICAgICAgICAgICAgaWYgKFBsYXRmb3JtLmlzV2luZG93 cygpKSB7CisrICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSAic2xlZXAuZXhlIjsK KysgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobmV3IEZpbGUoIi9iaW4vYnVzeWJveCIp LmV4aXN0cygpKSB7CisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2l0aCBidXN5Ym94IHNs ZWVwIGlzIGp1c3QgYSBzeW0gbGluayB0byBidXN5Ym94LgorKyAgICAgICAgICAgICAgICAgICAg ICAgIC8vIFRoZSBidXNib3ggZXhlY3V0YWJsZSBpcyBzZWVuIGFzIFByb2Nlc3NIYW5kbGUuSW5m byBjb21tYW5kLgorKyAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gImJ1c3lib3gi OworKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgQXNzZXJ0LmFz c2VydFRydWUoY29tbWFuZC5lbmRzV2l0aChleHBlY3RlZCksICJDb21tYW5kOiBleHBlY3RlZDog XCciICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgKyAiXCcsIGFjdHVh bDogIiArIGNvbW1hbmQpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrLTExL2ZpbGVzL211 c2xfcGF0Y2hlcy9wcGM2NGxlLnBhdGNoIGIvc3JjcGtncy9vcGVuamRrLTExL2ZpbGVzL211c2xf cGF0Y2hlcy9wcGM2NGxlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi42N2Y2NjQyMTQyYwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3Blbmpkay0xMS9m aWxlcy9tdXNsX3BhdGNoZXMvcHBjNjRsZS5wYXRjaApAQCAtMCwwICsxLDIyMSBAQAorUGF0Y2hl cyBmb3IgbXVzbCB0YWtlbiBmcm9tIEFscGluZSBsaW51eDogaHR0cHM6Ly9naXQuYWxwaW5lbGlu dXgub3JnL2Fwb3J0cy9jb21taXQvP2lkPThhMWFlMTdkNGE5YWY1NDI4NWM3ODkxYTY4MDYyMGU3 ZTI0YzYyODAKKy0tLSBvbGQvc3JjL2hvdHNwb3QvY3B1L3BwYy9tYWNyb0Fzc2VtYmxlcl9wcGMu Y3BwCisrKysgbmV3L3NyYy9ob3RzcG90L2NwdS9wcGMvbWFjcm9Bc3NlbWJsZXJfcHBjLmNwcAor QEAgLTEyOTAsNyArMTI5MCwxMSBAQAorICAgLy8gdGhlIHNhZmVwb2luZyBwb2xsaW5nIHBhZ2Uu CisgICB1Y29udGV4dF90KiB1YyA9ICh1Y29udGV4dF90KikgdWNvbnRleHQ7CisgICAvLyBTZXQg cG9sbGluZyBhZGRyZXNzLgorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVmaW5lZChfX1VD TElCQ19fKQorICAgYWRkcmVzcyBhZGRyID0gKGFkZHJlc3MpdWMtPnVjX21jb250ZXh0LnJlZ3Mt PmdwcltyYV0gKyAoc3NpemVfdClkczsKKysjZWxzZSAvLyBNdXNsCisrICBhZGRyZXNzIGFkZHIg PSAoYWRkcmVzcyl1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tyYV0gKyAoc3NpemVfdCkgZHM7Cisr I2VuZGlmCisgICBpZiAocG9sbGluZ19hZGRyZXNzX3B0ciAhPSBOVUxMKSB7CisgICAgICpwb2xs aW5nX2FkZHJlc3NfcHRyID0gYWRkcjsKKyAgIH0KK0BAIC0xMzExLDE1ICsxMzE1LDI0IEBACisg ICAgIGludCByYiA9IGludl9yYl9maWVsZChpbnN0cnVjdGlvbik7CisKKyAgICAgLy8gbG9vayB1 cCBjb250ZW50IG9mIHJhIGFuZCByYiBpbiB1Y29udGV4dAorKyNpZiBkZWZpbmVkKF9fR0xJQkNf XykgfHwgZGVmaW5lZChfX1VDTElCQ19fKQorICAgICBhZGRyZXNzIHJhX3ZhbD0oYWRkcmVzcyl1 Yy0+dWNfbWNvbnRleHQucmVncy0+Z3ByW3JhXTsKKyAgICAgbG9uZyByYl92YWw9KGxvbmcpdWMt PnVjX21jb250ZXh0LnJlZ3MtPmdwcltyYl07CisrI2Vsc2UgLy8gTXVzbAorKyAgICBhZGRyZXNz IHJhX3ZhbD0oYWRkcmVzcyl1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tyYV07CisrICAgIGxvbmcg cmJfdmFsPShsb25nKXVjLT51Y19tY29udGV4dC5ncF9yZWdzW3JiXTsKKysjZW5kaWYKKyAgICAg cmV0dXJuIG9zOjppc19tZW1vcnlfc2VyaWFsaXplX3BhZ2UodGhyZWFkLCByYV92YWwrcmJfdmFs KTsKKyAgIH0gZWxzZSBpZiAoaXNfc3R3KGluc3RydWN0aW9uKSB8fCBpc19zdHd1KGluc3RydWN0 aW9uKSkgeworICAgICBpbnQgcmEgPSBpbnZfcmFfZmllbGQoaW5zdHJ1Y3Rpb24pOworICAgICBp bnQgZDEgPSBpbnZfZDFfZmllbGQoaW5zdHJ1Y3Rpb24pOworCisgICAgIC8vIGxvb2sgdXAgY29u dGVudCBvZiByYSBpbiB1Y29udGV4dAorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVmaW5l ZChfX1VDTElCQ19fKQorICAgICBhZGRyZXNzIHJhX3ZhbD0oYWRkcmVzcyl1Yy0+dWNfbWNvbnRl eHQucmVncy0+Z3ByW3JhXTsKKysjZWxzZSAvLyBNdXNsCisrICAgIGFkZHJlc3MgcmFfdmFsPShh ZGRyZXNzKXVjLT51Y19tY29udGV4dC5ncF9yZWdzW3JhXTsKKysjZW5kaWYKKyAgICAgcmV0dXJu IG9zOjppc19tZW1vcnlfc2VyaWFsaXplX3BhZ2UodGhyZWFkLCByYV92YWwrZDEpOworICAgfSBl bHNlIHsKKyAgICAgcmV0dXJuIGZhbHNlOworQEAgLTEzODIsMTEgKzEzOTUsMjAgQEAKKyAgICAg ICB8fCAoaXNfc3RkdShpbnN0cnVjdGlvbikgJiYgcnMgPT0gMSkpIHsKKyAgICAgaW50IGRzID0g aW52X2RzX2ZpZWxkKGluc3RydWN0aW9uKTsKKyAgICAgLy8gcmV0dXJuIGJhbmdlZCBhZGRyZXNz CisrI2lmIGRlZmluZWQoX19HTElCQ19fKSB8fCBkZWZpbmVkKF9fVUNMSUJDX18pCisgICAgIHJl dHVybiBkcysoYWRkcmVzcyl1Yy0+dWNfbWNvbnRleHQucmVncy0+Z3ByW3JhXTsKKysjZWxzZSAv LyBNdXNsCisrICAgIHJldHVybiBkcysoYWRkcmVzcyl1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1ty YV07CisrI2VuZGlmCisgICB9IGVsc2UgaWYgKGlzX3N0ZHV4KGluc3RydWN0aW9uKSAmJiBycyA9 PSAxKSB7CisgICAgIGludCByYiA9IGludl9yYl9maWVsZChpbnN0cnVjdGlvbik7CisrI2lmIGRl ZmluZWQoX19HTElCQ19fKSB8fCBkZWZpbmVkKF9fVUNMSUJDX18pCisgICAgIGFkZHJlc3Mgc3Ag PSAoYWRkcmVzcyl1Yy0+dWNfbWNvbnRleHQucmVncy0+Z3ByWzFdOworICAgICBsb25nIHJiX3Zh bCA9IChsb25nKXVjLT51Y19tY29udGV4dC5yZWdzLT5ncHJbcmJdOworKyNlbHNlIC8vIE11c2wK KysgICAgYWRkcmVzcyBzcCA9IChhZGRyZXNzKXVjLT51Y19tY29udGV4dC5ncF9yZWdzWzFdOwor KyAgICBsb25nIHJiX3ZhbCA9IChsb25nKXVjLT51Y19tY29udGV4dC5ncF9yZWdzW3JiXTsKKysj ZW5kaWYKKyAgICAgcmV0dXJuIHJhICE9IDEgfHwgcmJfdmFsID49IDAgPyBOVUxMICAgICAgICAg Ly8gbm90IGEgc3RhY2sgYmFuZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6 IHNwICsgcmJfdmFsOyAvLyBiYW5nZWQgYWRkcmVzcworICAgfQorLS0tIG9sZC9zcmMvaG90c3Bv dC9jcHUvcHBjL3ZtX3ZlcnNpb25fcHBjLmNwcAorKysrIG5ldy9zcmMvaG90c3BvdC9jcHUvcHBj L3ZtX3ZlcnNpb25fcHBjLmNwcAorQEAgLTc2OCw3ICs3NjgsNyBAQAorICAgdW5zaWduZWQgbG9u ZyBhdXh2ID0gZ2V0YXV4dmFsKEFUX0hXQ0FQMik7CisKKyAgIGlmIChhdXh2ICYgUFBDX0ZFQVRV UkUyX0hUTV9OT1NDKSB7CistICAgIGlmIChhdXh2ICYgUFBDX0ZFQVRVUkUyX0hBU19IVE0pIHsK KysgICAgaWYgKGF1eHYgJiBQUENfRkVBVFVSRTJfSFRNKSB7CisgICAgICAgLy8gVE0gb24gUE9X RVI4IGFuZCBQT1dFUjkgaW4gY29tcGF0IG1vZGUgKFZNKSBpcyBzdXBwb3J0ZWQgYnkgdGhlIEpW TS4KKyAgICAgICAvLyBUTSBvbiBQT1dFUjkgREQyLjEgTlYgKGJhcmVtZXRhbCkgaXMgbm90IHN1 cHBvcnRlZCBieSB0aGUgSlZNIChUTSBvbgorICAgICAgIC8vIFBPV0VSOSBERDIuMSBOViBoYXMg YSBmZXcgaXNzdWVzIHRoYXQgbmVlZCBhIGNvdXBsZSBvZiBmaXJtd2FyZQorLS0tIG9sZC9zcmMv aG90c3BvdC9vc19jcHUvbGludXhfcHBjL29zX2xpbnV4X3BwYy5jcHAKKysrKyBuZXcvc3JjL2hv dHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy9vc19saW51eF9wcGMuY3BwCitAQCAtMTA4LDI0ICsxMDgs NDIgQEAKKyAgIC8vIC0gaWYgdWMgd2FzIGZpbGxlZCBieSBnZXRjb250ZXh0KCksIGl0IGlzIHVu ZGVmaW5lZCAtIGdldGNvbnRleHQoKSBkb2VzIG5vdCBmaWxsCisgICAvLyAgIGl0IGJlY2F1c2Ug dGhlIHZvbGF0aWxlIHJlZ2lzdGVycyBhcmUgbm90IG5lZWRlZCB0byBtYWtlIHNldGNvbnRleHQo KSB3b3JrLgorICAgLy8gICBIb3BlZnVsbHkgaXQgd2FzIHplcm8nZCBvdXQgYmVmb3JlaGFuZC4K KysjaWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoX19VQ0xJQkNfXykKKyAgIGd1YXJh bnRlZSh1Yy0+dWNfbWNvbnRleHQucmVncyAhPSBOVUxMLCAib25seSB1c2UgdWNvbnRleHRfZ2V0 X3BjIGluIHNpZ2FjdGlvbiBjb250ZXh0Iik7CisgICByZXR1cm4gKGFkZHJlc3MpdWMtPnVjX21j b250ZXh0LnJlZ3MtPm5pcDsKKysjZWxzZSAvLyBNdXNsCisrICBndWFyYW50ZWUodWMtPnVjX21j b250ZXh0LmdwX3JlZ3MgIT0gTlVMTCwgIm9ubHkgdXNlIHVjb250ZXh0X2dldF9wYyBpbiBzaWdh Y3Rpb24gY29udGV4dCIpOworKyAgcmV0dXJuIChhZGRyZXNzKXVjLT51Y19tY29udGV4dC5ncF9y ZWdzWzMyXTsKKysjZW5kaWYKKyB9CisKKyAvLyBtb2RpZnkgUEMgaW4gdWNvbnRleHQuCisgLy8g Tm90ZTogT25seSB1c2UgdGhpcyBmb3IgYW4gdWNvbnRleHQgaGFuZGVkIGRvd24gdG8gYSBzaWdu YWwgaGFuZGxlci4gU2VlIGNvbW1lbnQKKyAvLyBpbiB1Y29udGV4dF9nZXRfcGMuCisgdm9pZCBv czo6TGludXg6OnVjb250ZXh0X3NldF9wYyh1Y29udGV4dF90ICogdWMsIGFkZHJlc3MgcGMpIHsK KysjaWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoX19VQ0xJQkNfXykKKyAgIGd1YXJh bnRlZSh1Yy0+dWNfbWNvbnRleHQucmVncyAhPSBOVUxMLCAib25seSB1c2UgdWNvbnRleHRfc2V0 X3BjIGluIHNpZ2FjdGlvbiBjb250ZXh0Iik7CisgICB1Yy0+dWNfbWNvbnRleHQucmVncy0+bmlw ID0gKHVuc2lnbmVkIGxvbmcpcGM7CisrI2Vsc2UgLy8gTXVzbAorKyAgZ3VhcmFudGVlKHVjLT51 Y19tY29udGV4dC5ncF9yZWdzICE9IE5VTEwsICJvbmx5IHVzZSB1Y29udGV4dF9zZXRfcGMgaW4g c2lnYWN0aW9uIGNvbnRleHQiKTsKKysgIHVjLT51Y19tY29udGV4dC5ncF9yZWdzWzMyXSA9ICh1 bnNpZ25lZCBsb25nKXBjOworKyNlbmRpZgorIH0KKworIHN0YXRpYyBhZGRyZXNzIHVjb250ZXh0 X2dldF9scihjb25zdCB1Y29udGV4dF90ICogdWMpIHsKKysjaWYgZGVmaW5lZChfX0dMSUJDX18p IHx8IGRlZmluZWQoX19VQ0xJQkNfXykKKyAgIHJldHVybiAoYWRkcmVzcyl1Yy0+dWNfbWNvbnRl eHQucmVncy0+bGluazsKKysjZWxzZSAvLyBNdXNsCisrICByZXR1cm4gKGFkZHJlc3MpdWMtPnVj X21jb250ZXh0LmdwX3JlZ3NbMzZdOworKyNlbmRpZgorIH0KKworIGludHB0cl90KiBvczo6TGlu dXg6OnVjb250ZXh0X2dldF9zcChjb25zdCB1Y29udGV4dF90ICogdWMpIHsKKysjaWYgZGVmaW5l ZChfX0dMSUJDX18pIHx8IGRlZmluZWQoX19VQ0xJQkNfXykKKyAgIHJldHVybiAoaW50cHRyX3Qq KXVjLT51Y19tY29udGV4dC5yZWdzLT5ncHJbMS8qUkVHX1NQKi9dOworKyNlbHNlIC8vIE11c2wK KysgIHJldHVybiAoaW50cHRyX3QqKXVjLT51Y19tY29udGV4dC5ncF9yZWdzWzEvKlJFR19TUCov XTsKKysjZW5kaWYKKyB9CisKKyBpbnRwdHJfdCogb3M6OkxpbnV4Ojp1Y29udGV4dF9nZXRfZnAo Y29uc3QgdWNvbnRleHRfdCAqIHVjKSB7CitAQCAtMTMzLDcgKzE1MSwxMSBAQAorIH0KKworIHN0 YXRpYyB1bnNpZ25lZCBsb25nIHVjb250ZXh0X2dldF90cmFwKGNvbnN0IHVjb250ZXh0X3QgKiB1 YykgeworKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVmaW5lZChfX1VDTElCQ19fKQorICAg cmV0dXJuIHVjLT51Y19tY29udGV4dC5yZWdzLT50cmFwOworKyNlbHNlIC8vIE11c2wKKysgIHJl dHVybiB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1s0MF07CisrI2VuZGlmCisgfQorCisgRXh0ZW5k ZWRQQyBvczo6ZmV0Y2hfZnJhbWVfZnJvbV9jb250ZXh0KGNvbnN0IHZvaWQqIHVjVm9pZCwKK0BA IC0yNTksNyArMjgxLDEzIEBACisgICAgIC8vIDMuMi4xICJNYWNoaW5lIFN0YXRlIFJlZ2lzdGVy IiksIGhvd2V2ZXIgbm90ZSB0aGF0IElTQSBub3RhdGlvbiBmb3IgYml0CisgICAgIC8vIG51bWJl cmluZyBpcyBNU0IgMCwgc28gZm9yIG5vcm1hbCBiaXQgbnVtYmVyaW5nIChMU0IgMCkgdGhleSBj b21lIHRvIGJlCisgICAgIC8vIGJpdHMgMzMgYW5kIDM0LiBJdCdzIG5vdCByZWxhdGVkIHRvIGVu ZGlhbm5lc3MsIGp1c3QgYSBub3RhdGlvbiBtYXR0ZXIuCisrI2lmIGRlZmluZWQoX19HTElCQ19f KSB8fCBkZWZpbmVkKF9fVUNMSUJDX18pCisgICAgIGlmIChzZWNvbmRfdWMtPnVjX21jb250ZXh0 LnJlZ3MtPm1zciAmIDB4NjAwMDAwMDAwKSB7CisrI2Vsc2UgLy8gTXVzbAorKyAgICAvLyB3aHkg MzM/CisrICAgIC8vIHNlZSBjb21tZW50IGZvciBnbGliYyBOR1JFRzogInIwLXIzMSwgbmlwLCBt c3IsIGxyLCBldGMuIgorKyAgICBpZiAoc2Vjb25kX3VjLT51Y19tY29udGV4dC5ncF9yZWdzWzMz XSAmIDB4NjAwMDAwMDAwKSB7CisrI2VuZGlmCisgICAgICAgaWYgKFRyYWNlVHJhcHMpIHsKKyAg ICAgICAgIHR0eS0+cHJpbnRfY3IoImNhdWdodCBzaWduYWwgaW4gdHJhbnNhY3Rpb24sICIKKyAg ICAgICAgICAgICAgICAgICAgICAgICAiaWdub3JpbmcgdG8ganVtcCB0byBhYm9ydCBoYW5kbGVy Iik7CitAQCAtNTg2LDYgKzYxNCw3IEBACisgICBjb25zdCB1Y29udGV4dF90KiB1YyA9IChjb25z dCB1Y29udGV4dF90Kiljb250ZXh0OworCisgICBzdC0+cHJpbnRfY3IoIlJlZ2lzdGVyczoiKTsK KysjaWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoX19VQ0xJQkNfXykKKyAgIHN0LT5w cmludCgicGMgPSIgSU5UUFRSX0ZPUk1BVCAiICAiLCB1Yy0+dWNfbWNvbnRleHQucmVncy0+bmlw KTsKKyAgIHN0LT5wcmludCgibHIgPSIgSU5UUFRSX0ZPUk1BVCAiICAiLCB1Yy0+dWNfbWNvbnRl eHQucmVncy0+bGluayk7CisgICBzdC0+cHJpbnQoImN0cj0iIElOVFBUUl9GT1JNQVQgIiAgIiwg dWMtPnVjX21jb250ZXh0LnJlZ3MtPmN0cik7CitAQCAtNTk0LDggKzYyMywxOCBAQAorICAgICBz dC0+cHJpbnQoInIlLTJkPSIgSU5UUFRSX0ZPUk1BVCAiICAiLCBpLCB1Yy0+dWNfbWNvbnRleHQu cmVncy0+Z3ByW2ldKTsKKyAgICAgaWYgKGkgJSAzID09IDIpIHN0LT5jcigpOworICAgfQorKyNl bHNlIC8vIE11c2wKKysgIHN0LT5wcmludCgicGMgPSIgSU5UUFRSX0ZPUk1BVCAiICAiLCB1Yy0+ dWNfbWNvbnRleHQuZ3BfcmVnc1szMl0pOworKyAgc3QtPnByaW50KCJsciA9IiBJTlRQVFJfRk9S TUFUICIgICIsIHVjLT51Y19tY29udGV4dC5ncF9yZWdzWzM2XSk7CisrICBzdC0+cHJpbnQoImN0 cj0iIElOVFBUUl9GT1JNQVQgIiAgIiwgdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbMzVdKTsKKyAg IHN0LT5jcigpOworKyAgZm9yIChpbnQgaSA9IDA7IGkgPCAzMjsgaSsrKSB7CisrICAgIHN0LT5w cmludCgiciUtMmQ9IiBJTlRQVFJfRk9STUFUICIgICIsIGksIHVjLT51Y19tY29udGV4dC5ncF9y ZWdzW2ldKTsKKysgICAgaWYgKGkgJSAzID09IDIpIHN0LT5jcigpOworKyAgfQorKyNlbmRpZgor ICAgc3QtPmNyKCk7CisrICBzdC0+Y3IoKTsKKworICAgaW50cHRyX3QgKnNwID0gKGludHB0cl90 ICopb3M6OkxpbnV4Ojp1Y29udGV4dF9nZXRfc3AodWMpOworICAgc3QtPnByaW50X2NyKCJUb3Ag b2YgU3RhY2s6IChzcD0iIFBUUl9GT1JNQVQgIikiLCBwMmkoc3ApKTsKK0BAIC02MTgsMTIgKzY1 NywyMiBAQAorICAgc3QtPnByaW50X2NyKCJSZWdpc3RlciB0byBtZW1vcnkgbWFwcGluZzoiKTsK KyAgIHN0LT5jcigpOworCisrI2lmIGRlZmluZWQoX19HTElCQ19fKSB8fCBkZWZpbmVkKF9fVUNM SUJDX18pCisgICBzdC0+cHJpbnQoInBjID0iKTsgcHJpbnRfbG9jYXRpb24oc3QsIChpbnRwdHJf dCl1Yy0+dWNfbWNvbnRleHQucmVncy0+bmlwKTsKKyAgIHN0LT5wcmludCgibHIgPSIpOyBwcmlu dF9sb2NhdGlvbihzdCwgKGludHB0cl90KXVjLT51Y19tY29udGV4dC5yZWdzLT5saW5rKTsKKyAg IHN0LT5wcmludCgiY3RyID0iKTsgcHJpbnRfbG9jYXRpb24oc3QsIChpbnRwdHJfdCl1Yy0+dWNf bWNvbnRleHQucmVncy0+Y3RyKTsKKysjZWxzZSAvLyBNdXNsCisrICBzdC0+cHJpbnQoInBjID0i KTsgcHJpbnRfbG9jYXRpb24oc3QsIChpbnRwdHJfdCl1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1sz Ml0pOworKyAgc3QtPnByaW50KCJsciA9Iik7IHByaW50X2xvY2F0aW9uKHN0LCAoaW50cHRyX3Qp dWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbMzZdKTsKKysgIHN0LT5wcmludCgiY3RyID0iKTsgcHJp bnRfbG9jYXRpb24oc3QsIChpbnRwdHJfdCl1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1szNV0pOwor KyNlbmRpZgorICAgZm9yIChpbnQgaSA9IDA7IGkgPCAzMjsgaSsrKSB7CisgICAgIHN0LT5wcmlu dCgiciUtMmQ9IiwgaSk7CisrI2lmIGRlZmluZWQoX19HTElCQ19fKSB8fCBkZWZpbmVkKF9fVUNM SUJDX18pCisgICAgIHByaW50X2xvY2F0aW9uKHN0LCB1Yy0+dWNfbWNvbnRleHQucmVncy0+Z3By W2ldKTsKKysjZWxzZSAvLyBNdXNsCisrICAgIHByaW50X2xvY2F0aW9uKHN0LCB1Yy0+dWNfbWNv bnRleHQuZ3BfcmVnc1tpXSk7CisrI2VuZGlmCisgICB9CisgICBzdC0+Y3IoKTsKKyB9CistLS0g b2xkL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9wcGMvdGhyZWFkX2xpbnV4X3BwYy5jcHAKKysr KyBuZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy90aHJlYWRfbGludXhfcHBjLmNwcAor QEAgLTU2LDggKzU2LDEzIEBACisgICAvLyBpZiB3ZSB3ZXJlIHJ1bm5pbmcgSmF2YSBjb2RlIHdo ZW4gU0lHUFJPRiBjYW1lIGluLgorICAgaWYgKGlzSW5KYXZhKSB7CisgICAgIHVjb250ZXh0X3Qq IHVjID0gKHVjb250ZXh0X3QqKSB1Y29udGV4dDsKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pIHx8 IGRlZmluZWQoX19VQ0xJQkNfXykKKyAgICAgZnJhbWUgcmV0X2ZyYW1lKChpbnRwdHJfdCopdWMt PnVjX21jb250ZXh0LnJlZ3MtPmdwclsxLypSRUdfU1AqL10sCisgICAgICAgICAgICAgICAgICAg ICAgKGFkZHJlc3MpdWMtPnVjX21jb250ZXh0LnJlZ3MtPm5pcCk7CisrI2Vsc2UgLy8gTXVzbAor KyAgICBmcmFtZSByZXRfZnJhbWUoKGludHB0cl90Kil1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1sx LypSRUdfU1AqL10sCisrICAgICAgICAgICAgICAgICAgICAgKGFkZHJlc3MpdWMtPnVjX21jb250 ZXh0LmdwX3JlZ3NbMzJdKTsKKysjZW5kaWYKKworICAgICBpZiAocmV0X2ZyYW1lLnBjKCkgPT0g TlVMTCkgeworICAgICAgIC8vIHVjb250ZXh0IHdhc24ndCB1c2VmdWwKK0BAIC02OSw3ICs3NCwx MSBAQAorICAgICAgICBpZiAoISgoTWV0aG9kKikoaXN0YXRlLT5tZXRob2QpKS0+aXNfbWV0YXNw YWNlX29iamVjdCgpKSB7CisgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisrI2lm IGRlZmluZWQoX19HTElCQ19fKSB8fCBkZWZpbmVkKF9fVUNMSUJDX18pCisgICAgICAgIHVpbnQ2 NF90IHJlZ19iY3AgPSB1Yy0+dWNfbWNvbnRleHQucmVncy0+Z3ByWzE0LypSMTRfYmNwKi9dOwor KyNlbHNlIC8vIE11c2wKKysgICAgICAgdWludDY0X3QgcmVnX2JjcCA9IHVjLT51Y19tY29udGV4 dC5ncF9yZWdzWzE0LypSMTRfYmNwKi9dOworKyNlbmRpZgorICAgICAgICB1aW50NjRfdCBpc3Rh dGVfYmNwID0gaXN0YXRlLT5iY3A7CisgICAgICAgIHVpbnQ2NF90IGNvZGVfc3RhcnQgPSAodWlu dDY0X3QpKCgoTWV0aG9kKikoaXN0YXRlLT5tZXRob2QpKS0+Y29kZV9iYXNlKCkpOworICAgICAg ICB1aW50NjRfdCBjb2RlX2VuZCA9ICh1aW50NjRfdCkoKChNZXRob2QqKWlzdGF0ZS0+bWV0aG9k KS0+Y29kZV9iYXNlKCkgKyAoKE1ldGhvZCopaXN0YXRlLT5tZXRob2QpLT5jb2RlX3NpemUoKSk7 CmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGstMTEvZmlsZXMvbXVzbF9wYXRjaGVzL3g4Ni5w YXRjaCBiL3NyY3BrZ3Mvb3Blbmpkay0xMS9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45YzY0YzE4OTAzNgotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3Mvb3Blbmpkay0xMS9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBh dGNoCkBAIC0wLDAgKzEsMTMwIEBACitQYXRjaGVzIGZvciBtdXNsIHRha2VuIGZyb20gQWxwaW5l IGxpbnV4OiBodHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcvYXBvcnRzL2NvbW1pdC8/aWQ9OGEx YWUxN2Q0YTlhZjU0Mjg1Yzc4OTFhNjgwNjIwZTdlMjRjNjI4MAorLS0tIG9sZC9zcmMvaG90c3Bv dC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qv b3NfY3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3BwCitAQCAtOTAsNiArOTAsMTI2IEBACisg I2RlZmluZSBTUEVMTF9SRUdfRlAgImVicCIKKyAjZW5kaWYgLy8gQU1ENjQKKworKy8vID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorKy8vIFRha2VuIGZyb20gZ2xpYmMgMi4yOAorKy8vIHNvdXJjZTog aHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9naXQvP3A9Z2xpYmMuZ2l0O2E9YmxvYjtmPXN5c2RlcHMv eDg2L2ZwdV9jb250cm9sLmg7aD00Y2I5OGM1Njc5YjI4OTdmZjRlNTgyNmQyMjhjYmE2YmU1ODll MjRkO2hiPTNjMDNiYWNhMzdmZGNiNTJjMzg4MWU2NTNjYTM5MmJiYTdhOTljMmIKKysvLyA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKysjaWZuZGVmIEFNRDY0CisrLyogRlBVIGNvbnRyb2wgd29yZCBi aXRzLiAgeDg2IHZlcnNpb24uCisrICAgQ29weXJpZ2h0IChDKSAxOTkzLTIwMTggRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBD IExpYnJhcnkuCisrICAgQ29udHJpYnV0ZWQgYnkgT2xhZiBGbGViYmUuCisrCisrICAgVGhlIEdO VSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yCisrICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l cmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlcgorKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAo YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoZSBHTlUgQyBMaWJy YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisr ICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYWxvbmcgd2l0 aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKysgICA8aHR0cDovL3d3dy5nbnUub3Jn L2xpY2Vuc2VzLz4uICAqLworKworKyNpZm5kZWYgX0ZQVV9DT05UUk9MX0gKKysjZGVmaW5lIF9G UFVfQ09OVFJPTF9ICTEKKysKKysvKiBOb3RlIHRoYXQgdGhpcyBmaWxlIHNldHMgb24geDg2LTY0 IG9ubHkgdGhlIHg4NyBGUFUsIGl0IGRvZXMgbm90CisrICAgdG91Y2ggdGhlIFNTRSB1bml0LiAg Ki8KKysKKysvKiBIZXJlIGlzIHRoZSBkaXJ0eSBwYXJ0LiBTZXQgdXAgeW91ciAzODcgdGhyb3Vn aCB0aGUgY29udHJvbCB3b3JkCisrICogKGN3KSByZWdpc3Rlci4KKysgKgorKyAqICAgICAxNS0x MyAgICAxMiAgMTEtMTAgIDktOCAgICAgNy02ICAgICA1ICAgIDQgICAgMyAgICAyICAgIDEgICAg MAorKyAqIHwgcmVzZXJ2ZWQgfCBJQyB8IFJDICB8IFBDIHwgcmVzZXJ2ZWQgfCBQTSB8IFVNIHwg T00gfCBaTSB8IERNIHwgSU0KKysgKgorKyAqIElNOiBJbnZhbGlkIG9wZXJhdGlvbiBtYXNrCisr ICogRE06IERlbm9ybWFsaXplZCBvcGVyYW5kIG1hc2sKKysgKiBaTTogWmVyby1kaXZpZGUgbWFz aworKyAqIE9NOiBPdmVyZmxvdyBtYXNrCisrICogVU06IFVuZGVyZmxvdyBtYXNrCisrICogUE06 IFByZWNpc2lvbiAoaW5leGFjdCByZXN1bHQpIG1hc2sKKysgKgorKyAqIE1hc2sgYml0IGlzIDEg bWVhbnMgbm8gaW50ZXJydXB0LgorKyAqCisrICogUEM6IFByZWNpc2lvbiBjb250cm9sCisrICog MTEgLSByb3VuZCB0byBleHRlbmRlZCBwcmVjaXNpb24KKysgKiAxMCAtIHJvdW5kIHRvIGRvdWJs ZSBwcmVjaXNpb24KKysgKiAwMCAtIHJvdW5kIHRvIHNpbmdsZSBwcmVjaXNpb24KKysgKgorKyAq IFJDOiBSb3VuZGluZyBjb250cm9sCisrICogMDAgLSByb3VuZGluZyB0byBuZWFyZXN0CisrICog MDEgLSByb3VuZGluZyBkb3duICh0b3dhcmQgLSBpbmZpbml0eSkKKysgKiAxMCAtIHJvdW5kaW5n IHVwICh0b3dhcmQgKyBpbmZpbml0eSkKKysgKiAxMSAtIHJvdW5kaW5nIHRvd2FyZCB6ZXJvCisr ICoKKysgKiBJQzogSW5maW5pdHkgY29udHJvbAorKyAqIFRoYXQgaXMgZm9yIDgwODcgYW5kIDgw Mjg3IG9ubHkuCisrICoKKysgKiBUaGUgaGFyZHdhcmUgZGVmYXVsdCBpcyAweDAzN2Ygd2hpY2gg d2UgdXNlLgorKyAqLworKworKyNpbmNsdWRlIDxmZWF0dXJlcy5oPgorKworKy8qIG1hc2tpbmcg b2YgaW50ZXJydXB0cyAqLworKyNkZWZpbmUgX0ZQVV9NQVNLX0lNICAweDAxCisrI2RlZmluZSBf RlBVX01BU0tfRE0gIDB4MDIKKysjZGVmaW5lIF9GUFVfTUFTS19aTSAgMHgwNAorKyNkZWZpbmUg X0ZQVV9NQVNLX09NICAweDA4CisrI2RlZmluZSBfRlBVX01BU0tfVU0gIDB4MTAKKysjZGVmaW5l IF9GUFVfTUFTS19QTSAgMHgyMAorKworKy8qIHByZWNpc2lvbiBjb250cm9sICovCisrI2RlZmlu ZSBfRlBVX0VYVEVOREVEIDB4MzAwCS8qIGxpYm0gcmVxdWlyZXMgZG91YmxlIGV4dGVuZGVkIHBy ZWNpc2lvbi4gICovCisrI2RlZmluZSBfRlBVX0RPVUJMRSAgIDB4MjAwCisrI2RlZmluZSBfRlBV X1NJTkdMRSAgIDB4MAorKworKy8qIHJvdW5kaW5nIGNvbnRyb2wgKi8KKysjZGVmaW5lIF9GUFVf UkNfTkVBUkVTVCAweDAgICAgLyogUkVDT01NRU5ERUQgKi8KKysjZGVmaW5lIF9GUFVfUkNfRE9X TiAgICAweDQwMAorKyNkZWZpbmUgX0ZQVV9SQ19VUCAgICAgIDB4ODAwCisrI2RlZmluZSBfRlBV X1JDX1pFUk8gICAgMHhDMDAKKysKKysjZGVmaW5lIF9GUFVfUkVTRVJWRUQgMHhGMEMwICAvKiBS ZXNlcnZlZCBiaXRzIGluIGN3ICovCisrCisrCisrLyogVGhlIGZkbGlibSBjb2RlIHJlcXVpcmVz IHN0cmljdCBJRUVFIGRvdWJsZSBwcmVjaXNpb24gYXJpdGhtZXRpYywKKysgICBhbmQgbm8gaW50 ZXJydXB0cyBmb3IgZXhjZXB0aW9ucywgcm91bmRpbmcgdG8gbmVhcmVzdC4gICovCisrCisrI2Rl ZmluZSBfRlBVX0RFRkFVTFQgIDB4MDM3ZgorKworKy8qIElFRUU6ICBzYW1lIGFzIGFib3ZlLiAg Ki8KKysjZGVmaW5lIF9GUFVfSUVFRSAgICAgMHgwMzdmCisrCisrLyogVHlwZSBvZiB0aGUgY29u dHJvbCB3b3JkLiAgKi8KKyt0eXBlZGVmIHVuc2lnbmVkIGludCBmcHVfY29udHJvbF90IF9fYXR0 cmlidXRlX18gKChfX21vZGVfXyAoX19ISV9fKSkpOworKworKy8qIE1hY3JvcyBmb3IgYWNjZXNz aW5nIHRoZSBoYXJkd2FyZSBjb250cm9sIHdvcmQuICAiKiYiIGlzIHVzZWQgdG8KKysgICB3b3Jr IGFyb3VuZCBhIGJ1ZyBpbiBvbGRlciB2ZXJzaW9ucyBvZiBHQ0MuICBfX3ZvbGF0aWxlX18gaXMg dXNlZAorKyAgIHRvIHN1cHBvcnQgY29tYmluYXRpb24gb2Ygd3JpdGluZyB0aGUgY29udHJvbCBy ZWdpc3RlciBhbmQgcmVhZGluZworKyAgIGl0IGJhY2suICBXaXRob3V0IF9fdm9sYXRpbGVfXywg dGhlIG9sZCB2YWx1ZSBtYXkgYmUgdXNlZCBmb3IgcmVhZGluZworKyAgIGJhY2sgdW5kZXIgY29t cGlsZXIgb3B0aW1pemF0aW9uLgorKworKyAgIE5vdGUgdGhhdCB0aGUgdXNlIG9mIHRoZXNlIG1h Y3JvcyBpcyBub3Qgc3VmZmljaWVudCBhbnltb3JlIHdpdGgKKysgICByZWNlbnQgaGFyZHdhcmUg bm9yIG9uIHg4Ni02NC4gIFNvbWUgZmxvYXRpbmcgcG9pbnQgb3BlcmF0aW9ucyBhcmUKKysgICBl eGVjdXRlZCBpbiB0aGUgU1NFL1NTRTIgZW5naW5lcyB3aGljaCBoYXZlIHRoZWlyIG93biBjb250 cm9sIGFuZAorKyAgIHN0YXR1cyByZWdpc3Rlci4gICovCisrI2RlZmluZSBfRlBVX0dFVENXKGN3 KSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoImZuc3RjdyAlMCIgOiAiPW0iICgqJmN3KSkKKysjZGVm aW5lIF9GUFVfU0VUQ1coY3cpIF9fYXNtX18gX192b2xhdGlsZV9fICgiZmxkY3cgJTAiIDogOiAi bSIgKComY3cpKQorKworKy8qIERlZmF1bHQgY29udHJvbCB3b3JkIHNldCBhdCBzdGFydHVwLiAg Ki8KKytleHRlcm4gZnB1X2NvbnRyb2xfdCBfX2ZwdV9jb250cm9sOworKworKyNlbmRpZgkvKiBm cHVfY29udHJvbC5oICovCisrCisrI2VuZGlmIC8vIEFNRDY0CisrLy8gPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrLy8gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CisrCisgYWRkcmVzcyBvczo6Y3VycmVudF9zdGFja19wb2ludGVyKCkgeworICNpZmRlZiBT UEFSQ19XT1JLUworICAgcmVnaXN0ZXIgdm9pZCAqZXNwOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9v cGVuamRrLTExL3RlbXBsYXRlIGIvc3JjcGtncy9vcGVuamRrLTExL3RlbXBsYXRlCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yMmE4N2Q0OTlmZAotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3Mvb3Blbmpkay0xMS90ZW1wbGF0ZQpAQCAtMCwwICsxLDE4MSBAQAorIyBU ZW1wbGF0ZSBmaWxlIGZvciAnb3Blbmpkay0xMScKK19qYXZhX3Zlcj0xMQorX2phdmFfbWluX3Zl cj0wCitfamF2YV9zZWNfdmVyPTQKK19qZGtfdXBkYXRlPTExCitfb3Blbmpka192ZXJzaW9uPSJv cGVuamRrLSR7X2phdmFfdmVyfSIKKworCitwa2duYW1lPW9wZW5qZGstMTEKK3ZlcnNpb249IiR7 X2phdmFfdmVyfS4ke19qYXZhX21pbl92ZXJ9LiR7X2phdmFfc2VjX3Zlcn0rJHtfamRrX3VwZGF0 ZX0iCityZXZpc2lvbj0xCit3cmtzcmM9ImpkayR7X2phdmFfdmVyfXUtamRrLSR7dmVyc2lvbn0i CitidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCitjb25maWd1cmVfYXJncz0iCisgLS1kaXNhYmxl LXdhcm5pbmdzLWFzLWVycm9ycworIC0tcHJlZml4PSR7WEJQU19ERVNURElSfS8ke1hCUFNfQ1JP U1NfVFJJUExFVH0vJHtwa2duYW1lfS0ke3ZlcnNpb259L3Vzci9saWIKKyAtLWVuYWJsZS11bmxp bWl0ZWQtY3J5cHRvCisgLS13aXRoLXpsaWI9c3lzdGVtCisgLS13aXRoLWxpYmpwZWc9c3lzdGVt CisgLS13aXRoLWdpZmxpYj1zeXN0ZW0KKyAtLXdpdGgtbGlicG5nPXN5c3RlbQorIC0td2l0aC1s Y21zPXN5c3RlbQorIC0td2l0aC1qdHJlZz1ubworIC0td2l0aC12ZXJzaW9uLWJ1aWxkPSR7dmVy c2lvbn0KKyAtLXdpdGgtdmVuZG9yLW5hbWU9IlZvaWQiCisgLS13aXRoLXZlbmRvci11cmw9Imh0 dHBzOi8vdm9pZGxpbnV4Lm9yZy8iCisgLS13aXRoLXZlbmRvci1idWctdXJsPSJodHRwczovL2dp dGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2lzc3VlcyIKKyAtLXdpdGgtdmVuZG9y LXZtLWJ1Zy11cmw9Imh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMv aXNzdWVzIgorIC0td2l0aC1ib290LWpkaz0vdXNyL2xpYi9qdm0vb3Blbmpkay0xMS1iaW4iCisK K21ha2VfYnVpbGRfYXJncz0iaW1hZ2VzICQodm9wdF9pZiBkb2NzIGRvY3MpIgorbWFrZV9jaGVj a190YXJnZXQ9InRlc3QtaG90c3BvdC1ndGVzdCIKK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZp ZyBhdXRvbWFrZSBhdXRvY29uZiBjcGlvIHVuemlwIHppcCBjYS1jZXJ0aWZpY2F0ZXMKKyBsaWJy ZXNzbCB6bGliLWRldmVsIG1ha2UtY2EiCittYWtlZGVwZW5kcz0ibGliWHJlbmRlci1kZXZlbCBs aWJYdHN0LWRldmVsIGxpYlh0LWRldmVsIGxpYlhyYW5kci1kZXZlbAorIGdpZmxpYi1kZXZlbCBs aWJqcGVnLXR1cmJvLWRldmVsIGN1cHMtZGV2ZWwgZnJlZXR5cGUtZGV2ZWwgYWxzYS1saWItZGV2 ZWwKKyBmb250Y29uZmlnLWRldmVsIHpsaWItZGV2ZWwgbGNtczItZGV2ZWwiCitwcm92aWRlcz0i amF2YS1lbnZpcm9ubWVudC0ke3ZlcnNpb259XzEgamF2YS1ydW50aW1lLSR7dmVyc2lvbn1fMSIK K3Nob3J0X2Rlc2M9Ik9wZW5KREsgSmF2YSBEZXZlbG9wbWVudCBLaXQiCittYWludGFpbmVyPSJL eWxlIE51c2JhdW0gPGtudXNiYXVtK3ZvaWRAc2RmLm9yZz4iCitsaWNlbnNlPSJHUEwtMi4wLW9y LWxhdGVyIgoraG9tZXBhZ2U9Imh0dHA6Ly9vcGVuamRrLmphdmEubmV0LyIKK2Rpc3RmaWxlcz0i aHR0cHM6Ly9oZy5vcGVuamRrLmphdmEubmV0L2pkay11cGRhdGVzL2pkayR7X2phdmFfdmVyfXUv YXJjaGl2ZS9qZGstJHt2ZXJzaW9ufS50YXIuZ3oiCitjaGVja3N1bT0yNzJhZWFiMGI2ODI2MmUy NzBiOWUyZjlhYWU5YTM3YTk3OTNiMTEwNDI4YzhkOTZkNDg2YzA5NGNjNmE2NDI5CitzaGxpYl9w cm92aWRlcz0ibGliYXd0LnNvIGxpYmF3dF94YXd0LnNvIGxpYmphdmEuc28gbGliamxpLnNvIGxp Ymp2bS5zbyBsaWJqYXd0LnNvIgorCisjIEJ1aWxkIGlzIHN0aWxsIHBhcmFsbGVsLCBidXQgZG9u J3QgdXNlIC1qTi4KK2Rpc2FibGVfcGFyYWxsZWxfYnVpbGQ9eWVzCitidWlsZF9vcHRpb25zPSJk b2NzIgorCitjYXNlICIkWEJQU19UQVJHRVRfTElCQyIgaW4KKwlnbGliYykgYnVpbGRfb3B0aW9u c19kZWZhdWx0Kz0iIGRvY3MiOzsKK2VzYWMKKworaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVu CisJaG9zdG1ha2VkZXBlbmRzKz0iIG9wZW5qZGstMTEiCisJY29uZmlndXJlX2FyZ3MrPSIgLS13 aXRoLWJvb3QtamRrPS91c3IvbGliL2p2bS9vcGVuamRrLTExIgorZWxzZQorCWhvc3RtYWtlZGVw ZW5kcys9IiBvcGVuamRrLTExLWJpbiIKKwljb25maWd1cmVfYXJncys9IiAtLXdpdGgtYm9vdC1q ZGs9L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluIgorZmkKKworYWx0ZXJuYXRpdmVzPSIKKyBq YXZhOi91c3IvYmluL2phdmE6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL2phdmEKKyBqYXZh Oi91c3IvYmluL2pqczovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vampzCisgamF2YTovdXNy L2Jpbi9rZXl0b29sOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9rZXl0b29sCisgamF2YTov dXNyL2Jpbi9vcmJkOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9vcmJkCisgamF2YTovdXNy L2Jpbi9wYWNrMjAwOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9wYWNrMjAwCisgamF2YTov dXNyL2Jpbi9wb2xpY3l0b29sOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9wb2xpY3l0b29s CisgamF2YTovdXNyL2Jpbi9ybWlkOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9ybWlkCisg amF2YTovdXNyL2Jpbi9ybWlyZWdpc3RyeTovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vcm1p cmVnaXN0cnkKKyBqYXZhOi91c3IvYmluL3NlcnZlcnRvb2w6L3Vzci9saWIvanZtL29wZW5qZGst MTEvYmluL3NlcnZlcnRvb2wKKyBqYXZhOi91c3IvYmluL3RuYW1lc2VydjovdXNyL2xpYi9qdm0v b3Blbmpkay0xMS9iaW4vdG5hbWVzZXJ2CisgamF2YTovdXNyL2Jpbi91bnBhY2syMDA6L3Vzci9s aWIvanZtL29wZW5qZGstMTEvYmluL3VucGFjazIwMAorCisgamRrOi91c3IvYmluL2FwcGxldHZp ZXdlcjovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vYXBwbGV0dmlld2VyCisgamRrOi91c3Iv YmluL2V4dGNoZWNrOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9leHRjaGVjaworIGpkazov dXNyL2Jpbi9pZGxqOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9pZGxqCisgamRrOi91c3Iv YmluL2phcjovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vamFyCisgamRrOi91c3IvYmluL2ph cnNpZ25lcjovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vamFyc2lnbmVyCisgamRrOi91c3Iv YmluL2phdmE6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL2phdmEKKyBqZGs6L3Vzci9iaW4v amF2YS1ybWkuY2dpOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9qYXZhLXJtaS5jZ2kKKyBq ZGs6L3Vzci9iaW4vamF2YWM6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL2phdmFjCisgamRr Oi91c3IvYmluL2phdmFkb2M6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL2phdmFkb2MKKyBq ZGs6L3Vzci9iaW4vamF2YWg6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL2phdmFoCisgamRr Oi91c3IvYmluL2phdmFwOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9qYXZhcAorIGpkazov dXNyL2Jpbi9qY21kOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9qY21kCisgamRrOi91c3Iv YmluL2pjb25zb2xlOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9qY29uc29sZQorIGpkazov dXNyL2Jpbi9qZGI6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL2pkYgorIGpkazovdXNyL2Jp bi9qZGVwczovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vamRlcHMKKyBqZGs6L3Vzci9iaW4v amhhdDovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vamhhdAorIGpkazovdXNyL2Jpbi9qaW5m bzovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vamluZm8KKyBqZGs6L3Vzci9iaW4vampzOi91 c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9qanMKKyBqZGs6L3Vzci9iaW4vam1hcDovdXNyL2xp Yi9qdm0vb3Blbmpkay0xMS9iaW4vam1hcAorIGpkazovdXNyL2Jpbi9qcHM6L3Vzci9saWIvanZt L29wZW5qZGstMTEvYmluL2pwcworIGpkazovdXNyL2Jpbi9qcnVuc2NyaXB0Oi91c3IvbGliL2p2 bS9vcGVuamRrLTExL2Jpbi9qcnVuc2NyaXB0CisgamRrOi91c3IvYmluL2pzYWRlYnVnZDovdXNy L2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vanNhZGVidWdkCisgamRrOi91c3IvYmluL2pzdGFjazov dXNyL2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vanN0YWNrCisgamRrOi91c3IvYmluL2pzdGF0Oi91 c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9qc3RhdAorIGpkazovdXNyL2Jpbi9qc3RhdGQ6L3Vz ci9saWIvanZtL29wZW5qZGstMTEvYmluL2pzdGF0ZAorIGpkazovdXNyL2Jpbi9rZXl0b29sOi91 c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9rZXl0b29sCisgamRrOi91c3IvYmluL25hdGl2ZTJh c2NpaTovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vbmF0aXZlMmFzY2lpCisgamRrOi91c3Iv YmluL29yYmQ6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL29yYmQKKyBqZGs6L3Vzci9iaW4v cGFjazIwMDovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vcGFjazIwMAorIGpkazovdXNyL2Jp bi9wb2xpY3l0b29sOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9wb2xpY3l0b29sCisgamRr Oi91c3IvYmluL3JtaWM6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL3JtaWMKKyBqZGs6L3Vz ci9iaW4vcm1pZDovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vcm1pZAorIGpkazovdXNyL2Jp bi9ybWlyZWdpc3RyeTovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vcm1pcmVnaXN0cnkKKyBq ZGs6L3Vzci9iaW4vc2NoZW1hZ2VuOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9zY2hlbWFn ZW4KKyBqZGs6L3Vzci9iaW4vc2VyaWFsdmVyOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9z ZXJpYWx2ZXIKKyBqZGs6L3Vzci9iaW4vc2VydmVydG9vbDovdXNyL2xpYi9qdm0vb3Blbmpkay0x MS9iaW4vc2VydmVydG9vbAorIGpkazovdXNyL2Jpbi90bmFtZXNlcnY6L3Vzci9saWIvanZtL29w ZW5qZGstMTEvYmluL3RuYW1lc2VydgorIGpkazovdXNyL2Jpbi91bnBhY2syMDA6L3Vzci9saWIv anZtL29wZW5qZGstMTEvYmluL3VucGFjazIwMAorIGpkazovdXNyL2Jpbi93c2dlbjovdXNyL2xp Yi9qdm0vb3Blbmpkay0xMS9iaW4vd3NnZW4KKyBqZGs6L3Vzci9iaW4vd3NpbXBvcnQ6L3Vzci9s aWIvanZtL29wZW5qZGstMTEvYmluL3dzaW1wb3J0CisgamRrOi91c3IvYmluL3hqYzovdXNyL2xp Yi9qdm0vb3Blbmpkay0xMS9iaW4veGpjCisiCisKK3Bvc3RfZXh0cmFjdCgpIHsKKwljaG1vZCAr eCBjb25maWd1cmUKKwlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgor CQlybSAtciBzcmMvamRrLmhvdHNwb3QuYWdlbnQKKwlmaQorfQorCitwb3N0X3BhdGNoKCkgewor CWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJCWZvciBmIGluICIk e0ZJTEVTRElSfSIvbXVzbF9wYXRjaGVzLyoucGF0Y2g7IGRvCisJCQllY2hvICJBcHBseWluZyAk ZiIKKwkJCXBhdGNoIC1OcDEgLWkgIiRmIgorCQlkb25lCisJZmkKK30KKworZG9fY29uZmlndXJl KCkgeworCUNGTEFHUz0ke0NGTEFHUy8tRF9GT1JUSUZZX1NPVVJDRT0yL30KKwlDWFhGTEFHUz0k e0NYWEZMQUdTLy1EX0ZPUlRJRllfU09VUkNFPTIvfQorCWNvbmZpZ3VyZV9hcmdzPSR7Y29uZmln dXJlX2FyZ3MvLS13aXRoLWxpYnRvb2wtc3lzcm9vdD1cL3VzclwvW2EtejAtOV0qLWxpbnV4LVth LXpdKi99CisJaWYgWyAiJFhCUFNfQ0NBQ0hFIiBdICYmIFsgLXogIiRDUk9TU19CVUlMRCIgXTsg dGhlbgorCQljb25maWd1cmVfYXJncys9IiAtLWVuYWJsZS1jY2FjaGUiCisJCUNDPSIvdXNyL2Jp bi9jYyIKKwkJQ1hYPSIvdXNyL2Jpbi9jKysiCisJZmkKKwkuL2NvbmZpZ3VyZSAke2NvbmZpZ3Vy ZV9hcmdzfSAtLXdpdGgtZXh0cmEtY2ZsYWdzPSIkQ0ZMQUdTIiAtLXdpdGgtZXh0cmEtY3h4Zmxh Z3M9IiRDWFhGTEFHUyIgLS13aXRoLWV4dHJhLWxkZmxhZ3M9IiRMREZMQUdTIgorfQorCitwb3N0 X2luc3RhbGwoKSB7CisJdm1rZGlyIC91c3IvbGliL2p2bQorCW12ICR7REVTVERJUn0vdXNyL2xp Yi9qdm0vb3Blbmpkay0ke19qYXZhX3Zlcn0uJHtfamF2YV9taW5fdmVyfS4ke19qYXZhX3NlY192 ZXJ9LWludGVybmFsICR7REVTVERJUn0vdXNyL2xpYi9qdm0vb3Blbmpkay0ke19qYXZhX3Zlcn0K KwlybSAtcmYgJHtERVNURElSfS91c3IvbGliL2JpbgorCXZta2RpciB1c3IvbGliL2p2bS8kX29w ZW5qZGtfdmVyc2lvbi9saWIvc2VjdXJpdHkKKwltYWtlLWNhIC1nIC1mIC0tZGVzdGRpciAiJHtQ V0R9L2NhIiAtayAiJHtERVNURElSfS91c3IvbGliL2p2bS8kX29wZW5qZGtfdmVyc2lvbi9iaW4v a2V5dG9vbCIKKwltdiAuL2NhL2V0Yy9wa2kvdGxzL2phdmEvY2FjZXJ0cyAke0RFU1RESVJ9L3Vz ci9saWIvanZtLyRfb3Blbmpka192ZXJzaW9uL2xpYi9zZWN1cml0eS8KKwl2bGljZW5zZSBBU1NF TUJMWV9FWENFUFRJT04KKwl2bGljZW5zZSBMSUNFTlNFCit9CisKK29wZW5qZGstMTEtZG9jX3Bh Y2thZ2UoKSB7CisJbm9zdHJpcD15ZXMKKwlub3ZlcmlmeXJkZXBzPXllcworCW5vc2hsaWJwcm92 aWRlcz15ZXMKKwlzaG9ydF9kZXNjKz0iIC0tIGRvY3VtZW50YXRpb24iCisJcGtnX2luc3RhbGwo KSB7CisJCWNkICR7d3Jrc3JjfQorCQlpZiBbICIkYnVpbGRfb3B0aW9uX2RvY3MiIF07IHRoZW4K KwkJCXZta2RpciB1c3Ivc2hhcmUvZG9jL29wZW5qZGstMTEKKwkJCWNwIC1hIGJ1aWxkL2xpbnV4 LSovaW1hZ2VzL2RvY3MvKiAke1BLR0RFU1RESVJ9L3Vzci9zaGFyZS9kb2Mvb3Blbmpkay0xMQor CQlmaQorCQl2bW92ZSB1c3IvbGliL2p2bS9vcGVuamRrLTExL21hbi9tYW4xLworCX0KK30KKwor b3Blbmpkay0xMS1zcmNfcGFja2FnZSgpIHsKKwlub3N0cmlwPXllcworCW5vdmVyaWZ5cmRlcHM9 eWVzCisJbm9zaGxpYnByb3ZpZGVzPXllcworCXNob3J0X2Rlc2MrPSIgLS0gc291cmNlcyIKKwlw a2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgInVzci9saWIvanZtL29wZW5qZGstMTEvbGliL3NyYy56 aXAiCisJfQorfQo= --===============7453909706748153357==--