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, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 19278 invoked from network); 3 Feb 2022 16:24:43 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 3 Feb 2022 16:24:43 -0000 Content-Type: multipart/mixed; boundary="===============4520493379866636038==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_New_package=3A_frescobaldi-3=2E1=2E3?= To: ml@inbox.vuxu.org From: chili-b Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Thu, 03 Feb 2022 17:24:43 +0100 List-Id: Message-ID: <20220203162443.UV0Aza6haEIYK_PhN3Tk_3Mp7I9yoBYMmx67ujDEQK4@z> GitHub notification mails are now in MIME to allow UTF8. --===============4520493379866636038== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgY2hpbGktYiBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vY2hp bGktYi92b2lkLXBhY2thZ2VzIG1hc3RlcgpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92 b2lkLXBhY2thZ2VzL3B1bGwvMzMyNzkKCk5ldyBwYWNrYWdlOiBmcmVzY29iYWxkaS0zLjEuMwo8 IS0tIE1hcmsgaXRlbXMgd2l0aCBbeF0gd2hlcmUgYXBwbGljYWJsZSAtLT4NCg0KIyMjIyBHZW5l cmFsDQotIFt4XSBUaGlzIGlzIGEgbmV3IHBhY2thZ2UgYW5kIGl0IGNvbmZvcm1zIHRvIHRoZSBb cXVhbGl0eSByZXF1aXJlbWVudHNdKGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQt cGFja2FnZXMvYmxvYi9tYXN0ZXIvTWFudWFsLm1kI3F1YWxpdHktcmVxdWlyZW1lbnRzKQ0KDQoj IyMjIEhhdmUgdGhlIHJlc3VsdHMgb2YgdGhlIHByb3Bvc2VkIGNoYW5nZXMgYmVlbiB0ZXN0ZWQ/ DQotIFsgXSBJIHVzZSB0aGUgcGFja2FnZXMgYWZmZWN0ZWQgYnkgdGhlIHByb3Bvc2VkIGNoYW5n ZXMgb24gYSByZWd1bGFyIGJhc2lzIGFuZCBjb25maXJtIHRoaXMgUFIgd29ya3MgZm9yIG1lDQot IFt4XSBJIGdlbmVyYWxseSBkb24ndCB1c2UgdGhlIGFmZmVjdGVkIHBhY2thZ2VzIGJ1dCBicmll Zmx5IHRlc3RlZCB0aGlzIFBSDQoNCjwhLS0NCklmIEdpdEh1YiBDSSBjYW5ub3QgYmUgdXNlZCB0 byB2YWxpZGF0ZSB0aGUgYnVpbGQgcmVzdWx0IChmb3IgZXhhbXBsZSwgaWYgdGhlDQpidWlsZCBp cyBsaWtlbHkgdG8gdGFrZSBzZXZlcmFsIGhvdXJzKSwgbWFrZSBzdXJlIHRvDQpbc2tpcCBDSV0o aHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9ibG9iL21hc3Rlci9D T05UUklCVVRJTkcubWQjY29udGludW91cy1pbnRlZ3JhdGlvbikuDQpXaGVuIHNraXBwaW5nIENJ LCB1bmNvbW1lbnQgYW5kIGZpbGwgb3V0IHRoZSBmb2xsb3dpbmcgc2VjdGlvbi4NCk5vdGU6IGZv ciBidWlsZHMgdGhhdCBhcmUgbGlrZWx5IHRvIGNvbXBsZXRlIGluIGxlc3MgdGhhbiAyIGhvdXJz LCBpdCBpcyBub3QNCmFjY2VwdGFibGUgdG8gc2tpcCBDSS4NCi0tPg0KPCEtLSANCiMjIyMgRG9l cyBpdCBidWlsZCBhbmQgcnVuIHN1Y2Nlc3NmdWxseT8gDQooUGxlYXNlIGNob29zZSBhdCBsZWFz dCBvbmUgbmF0aXZlIGJ1aWxkIGFuZCwgaWYgc3VwcG9ydGVkLCBhdCBsZWFzdCBvbmUgY3Jvc3Mg YnVpbGQuIE1vcmUgYXJlIGJldHRlci4pDQotIFt4XSBJIGJ1aWx0IHRoaXMgUFIgbG9jYWxseSBm b3IgbXkgbmF0aXZlIGFyY2hpdGVjdHVyZSwgKHg4Nl82NC1nbGliYykNCi0gWyBdIEkgYnVpbHQg dGhpcyBQUiBsb2NhbGx5IGZvciB0aGVzZSBhcmNoaXRlY3R1cmVzIChpZiBzdXBwb3J0ZWQuIG1h cmsgY3Jvc3NidWlsZHMpOg0KICAtIFsgXSBhYXJjaDY0LW11c2wNCiAgLSBbIF0gYXJtdjdsDQog IC0gWyBdIGFybXY2bC1tdXNsDQotLT4NCg0KVGhpcyBQUiBhbHNvIGluY2x1ZGVzIHRoZSBuZXcg cGFja2FnZXMsIGBweXRob24zLWx5LTAuOS43YCBhbmQgYHB5dGhvbjMtcG9wcGxlci1xdDUtMC43 NS4wYCwgd2hpY2ggYXJlIGRlcGVuZGVuY2llcyBmb3IgZnJlc2NvYmFsZGkuDQoKCkEgcGF0Y2gg ZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVs bC8zMzI3OS5wYXRjaCBpcyBhdHRhY2hlZA== --===============4520493379866636038== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-master-33279.patch" RnJvbSBmNmEwNmEzMmY1MWE4ZDUzNDJlNjlhN2Y3ZDFkNWJhZDk1OTMxNGZiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBjaGlsaS1iIDxkZXh0ZXIuZ2FvbnNoYXRmb3JkQGdtYWlsLmNv bT4KRGF0ZTogU2F0LCAyIE9jdCAyMDIxIDIxOjA3OjU2IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAx LzNdIE5ldyBwYWNrYWdlOiBweXRob24zLWx5LTAuOS43CgpQeXRob24gbW9kdWxlcyBwYXJzZSwg bWFuaXB1bGF0ZSBvciBjcmVhdGUgZG9jdW1lbnRzIGluIExpbHlQb25kIGZvcm1hdC4KRGVwZW5k ZWQgdXBvbiBieSB0aGUgRnJlc2NvYmFsZGkgTGlseVBvbmQgZWRpdG9yLgotLS0KIHNyY3BrZ3Mv cHl0aG9uMy1seS90ZW1wbGF0ZSB8IDE0ICsrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwg MTQgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcHl0aG9uMy1seS90 ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcHl0aG9uMy1seS90ZW1wbGF0ZSBiL3NyY3Br Z3MvcHl0aG9uMy1seS90ZW1wbGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAuLmE3OTUwMTMwOTZkYgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcHl0aG9uMy1s eS90ZW1wbGF0ZQpAQCAtMCwwICsxLDE0IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdweXRob24z LWx5JworcGtnbmFtZT1weXRob24zLWx5Cit2ZXJzaW9uPTAuOS43CityZXZpc2lvbj0xCit3cmtz cmM9InB5dGhvbi1seS0ke3ZlcnNpb259IgorYnVpbGRfc3R5bGU9cHl0aG9uMy1tb2R1bGUKK2hv c3RtYWtlZGVwZW5kcz0icHl0aG9uMy1zZXR1cHRvb2xzIgorc2hvcnRfZGVzYz0iTW9kdWxlcyB0 byBwYXJzZSwgbWFuaXB1bGF0ZSBvciBjcmVhdGUgZG9jdW1lbnRzIGluIExpbHlQb25kIGZvcm1h dCIKK21haW50YWluZXI9ImNoaWxpLWIgPGRleHRlci5nYW9uc2hhdGZvcmRAZ21haWwuY29tPiIK K2xpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCitob21lcGFnZT0iaHR0cHM6Ly9naXRodWIuY29t L2ZyZXNjb2JhbGRpL3B5dGhvbi1seSIKK2NoYW5nZWxvZz0iaHR0cHM6Ly9naXRodWIuY29tL2Zy ZXNjb2JhbGRpL3B5dGhvbi1seS9ibG9iL3Yke3ZlcnNpb259L0NoYW5nZUxvZyIKK2Rpc3RmaWxl cz0iJHtQWVBJX1NJVEV9L3AvcHl0aG9uLWx5L3B5dGhvbi1seS0ke3ZlcnNpb259LnRhci5neiIK K2NoZWNrc3VtPWQ0ZDJiNjhlYjBlZjgwNzMyMDAxNTQyNDdjYzliZDkxZWQ3ZmIyNjcxYWM5NjZl ZjNkMjg1MzI4MWMxNWQ3YTgKCkZyb20gYzA4YjA1NTYwNmU2NDY0ZWJkOWY1MzEwNzhiY2RiODA1 MDhmZGYwMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogY2hpbGktYiA8ZGV4dGVyLmdh b25zaGF0Zm9yZEBnbWFpbC5jb20+CkRhdGU6IFN1biwgMTAgT2N0IDIwMjEgMTU6MjA6NTMgLTA0 MDAKU3ViamVjdDogW1BBVENIIDIvM10gTmV3IHBhY2thZ2U6IHB5dGhvbjMtcG9wcGxlci1xdDUt MC43NS4wCgotLS0KIHNyY3BrZ3MvcHl0aG9uMy1wb3BwbGVyLXF0NS90ZW1wbGF0ZSB8IDI4ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAyOCBpbnNlcnRpb25z KCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9weXRob24zLXBvcHBsZXItcXQ1L3RlbXBs YXRlCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9weXRob24zLXBvcHBsZXItcXQ1L3RlbXBsYXRlIGIv c3JjcGtncy9weXRob24zLXBvcHBsZXItcXQ1L3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uNGVkMDMzZDdlOTAxCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9weXRob24zLXBvcHBsZXItcXQ1L3RlbXBsYXRlCkBAIC0wLDAgKzEsMjggQEAKKyMgVGVt cGxhdGUgZmlsZSBmb3IgJ3B5dGhvbjMtcG9wcGxlci1xdDUnCitwa2duYW1lPXB5dGhvbjMtcG9w cGxlci1xdDUKK3ZlcnNpb249MC43NS4wCityZXZpc2lvbj0xCit3cmtzcmM9InB5dGhvbi1wb3Bw bGVyLXF0NS0ke3ZlcnNpb259IgorYnVpbGRfc3R5bGU9cHl0aG9uMy1tb2R1bGUKK2hvc3RtYWtl ZGVwZW5kcz0icHl0aG9uMy1zaXAtZGV2ZWwgcGtnLWNvbmZpZyBxdDUtZGV2ZWwgcG9wcGxlci1x dDUtZGV2ZWwKKyBweXRob24zLVB5UXQ1LWRldmVsIHB5dGhvbjMtZGV2ZWwiCittYWtlZGVwZW5k cz0icHl0aG9uMy1zaXAtZGV2ZWwgcGtnLWNvbmZpZyBxdDUtZGV2ZWwgcG9wcGxlci1xdDUtZGV2 ZWwKKyBweXRob24zLVB5UXQ1LWRldmVsIHB5dGhvbjMtZGV2ZWwiCitkZXBlbmRzPSJwb3BwbGVy LXF0NSBweXRob24zLVB5UXQ1Igorc2hvcnRfZGVzYz0iUHl0aG9uIGJpbmRpbmdzIGZvciBsaWJw b3BwbGVyLXF0NSIKK21haW50YWluZXI9ImNoaWxpLWIgPGRleHRlci5nYW9uc2hhdGZvcmRAZ21h aWwuY29tPiIKK2xpY2Vuc2U9IkxHUEwtMy4wLW9yLWxhdGVyIgoraG9tZXBhZ2U9Imh0dHBzOi8v Z2l0aHViLmNvbS9mcmVzY29iYWxkaS9weXRob24tcG9wcGxlci1xdDUiCitjaGFuZ2Vsb2c9Imh0 dHBzOi8vZ2l0aHViLmNvbS9mcmVzY29iYWxkaS9weXRob24tcG9wcGxlci1xdDUvYmxvYi92JHt2 ZXJzaW9ufS9DaGFuZ2VMb2ciCitkaXN0ZmlsZXM9IiR7UFlQSV9TSVRFfS9wL3B5dGhvbi1wb3Bw bGVyLXF0NS9weXRob24tcG9wcGxlci1xdDUtJHt2ZXJzaW9ufS50YXIuZ3oiCitjaGVja3N1bT1l YTBlYzllYmU5OTU3MDVhYjE5YTMwMTI5MDM2NTY1MmU2MmJhYjVjOWIwNWRiNTY5N2M3YmYyMTcz MzM1MTA3CisKK2RvX2J1aWxkKCkgeworCSMgQ2x1ZGdlIHRvIGZpeCBidWlsZCB1bmRlciBhcm12 N2wsIGFybXY2bAorCSMgaWYgW1sgJFhCUFNfVEFSR0VUX01BQ0hJTkUgPT0gYXJtKiBdXTsgdGhl bgorCSMJICBleHBvcnQgQ0ZMQUdTPSItbXR1bmU9Z2VuZXJpYy1hcm12Ny1hICIKKwkjIGZpCisJ ZXhwb3J0IENGTEFHUz0iLUkke1hCUFNfQ1JPU1NfQkFTRX0vJHtweTNfaW5jfSIKKworCXB5dGhv biBzZXR1cC5weSBidWlsZF9leHQgLS1weXF0LXNpcC1kaXI9LyR7cHkzX3NpdGVsaWJ9L1B5UXQ1 L2JpbmRpbmdzCit9CgpGcm9tIDNlMTExOTg5YzQzMjc2ZjRhNTU2MjY4ZDZkZGIxNjYwZTJhMWE2 ZjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IGNoaWxpLWIgPGRleHRlci5nYW9uc2hh dGZvcmRAZ21haWwuY29tPgpEYXRlOiBTdW4sIDEwIE9jdCAyMDIxIDE1OjMzOjM2IC0wNDAwClN1 YmplY3Q6IFtQQVRDSCAzLzNdIE5ldyBwYWNrYWdlOiBmcmVzY29iYWxkaS0zLjEuMwoKLS0tCiAu Li5mLXB5LTMuMTAtZmxvYXQtaW50LWZpeGVzLWlzc3VlLTEzOTgucGF0Y2ggfCA1MzAgKysrKysr KysrKysrKysrKysrCiAuLi5lLXB5LTMuMTAtZmxvYXQtaW50LWZpeGVzLWlzc3VlLTEzOTgucGF0 Y2ggfCAyMDkgKysrKysrKwogLi4ubmdlcy10by1maXgtZXJyb3JzLXVuZGVyLVB5dGhvbi0zLjEw LnBhdGNoIHwgIDUwICsrCiBzcmNwa2dzL2ZyZXNjb2JhbGRpL3RlbXBsYXRlICAgICAgICAgICAg ICAgICAgfCAgMjAgKwogNCBmaWxlcyBjaGFuZ2VkLCA4MDkgaW5zZXJ0aW9ucygrKQogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZnJlc2NvYmFsZGkvcGF0Y2hlcy8wMDAxLWZpcnN0LWJhdGNo LW9mLXB5LTMuMTAtZmxvYXQtaW50LWZpeGVzLWlzc3VlLTEzOTgucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL2ZyZXNjb2JhbGRpL3BhdGNoZXMvMDAwMi1tb3JlLXB5LTMuMTAtZmxv YXQtaW50LWZpeGVzLWlzc3VlLTEzOTgucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2ZyZXNjb2JhbGRpL3BhdGNoZXMvMDAwMy1Nb3JlLWNoYW5nZXMtdG8tZml4LWVycm9ycy11bmRl ci1QeXRob24tMy4xMC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZnJlc2NvYmFs ZGkvdGVtcGxhdGUKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZyZXNjb2JhbGRpL3BhdGNoZXMvMDAw MS1maXJzdC1iYXRjaC1vZi1weS0zLjEwLWZsb2F0LWludC1maXhlcy1pc3N1ZS0xMzk4LnBhdGNo IGIvc3JjcGtncy9mcmVzY29iYWxkaS9wYXRjaGVzLzAwMDEtZmlyc3QtYmF0Y2gtb2YtcHktMy4x MC1mbG9hdC1pbnQtZml4ZXMtaXNzdWUtMTM5OC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAuLjFiODBlZDg3OWY5MwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvZnJlc2NvYmFsZGkvcGF0Y2hlcy8wMDAxLWZpcnN0LWJhdGNoLW9mLXB5LTMuMTAtZmxvYXQt aW50LWZpeGVzLWlzc3VlLTEzOTgucGF0Y2gKQEAgLTAsMCArMSw1MzAgQEAKK0Zyb20gNTE4ODZk YmE4YTNjYjNkYjZlYmE5YTZjZjFkNjViZDhlYWY4NzdhYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKK0Zyb206IFdpbGJlcnQgQmVyZW5kc2VuIDx3YnNvZnRAeHM0YWxsLm5sPgorRGF0ZTogU3Vu LCA3IE5vdiAyMDIxIDE0OjUzOjMzICswMTAwCitTdWJqZWN0OiBbUEFUQ0ggMS8yXSBmaXJzdCBi YXRjaCBvZiBweSAzLjEwIGZsb2F0LT5pbnQgZml4ZXMsIGlzc3VlICMxMzk4CisKKy0tLQorIGZy ZXNjb2JhbGRpX2FwcC9xcGFnZXZpZXcvbWFnbmlmaWVyLnB5ICAgIHwgMTAgKysrLS0tCisgZnJl c2NvYmFsZGlfYXBwL3FwYWdldmlldy9wb3BwbGVyLnB5ICAgICAgfCAxOCArKysrKy0tLS0tLQor IGZyZXNjb2JhbGRpX2FwcC9xcGFnZXZpZXcvcmVuZGVyLnB5ICAgICAgIHwgMTggKysrKystLS0t LS0KKyBmcmVzY29iYWxkaV9hcHAvcXBhZ2V2aWV3L3J1YmJlcmJhbmQucHkgICB8IDM4ICsrKysr KysrKysrLS0tLS0tLS0tLS0tCisgZnJlc2NvYmFsZGlfYXBwL3FwYWdldmlldy9zY3JvbGxhcmVh LnB5ICAgfCAzNCArKysrKysrKysrLS0tLS0tLS0tLQorIGZyZXNjb2JhbGRpX2FwcC9xcGFnZXZp ZXcvc2hhZG93LnB5ICAgICAgIHwgMTIgKysrLS0tLQorIGZyZXNjb2JhbGRpX2FwcC93aWRnZXRz L2xpbmVudW1iZXJhcmVhLnB5IHwgIDQgKy0tCisgZnJlc2NvYmFsZGlfYXBwL3dpZGdldHMvcHJv Z3Jlc3NiYXIucHkgICAgfCAgNCArLS0KKyA4IGZpbGVzIGNoYW5nZWQsIDY5IGluc2VydGlvbnMo KyksIDY5IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZnJlc2NvYmFsZGlfYXBwL3FwYWdl dmlldy9tYWduaWZpZXIucHkgYi9mcmVzY29iYWxkaV9hcHAvcXBhZ2V2aWV3L21hZ25pZmllci5w eQoraW5kZXggM2EyNzU5ZmIuLmI5M2QwNWJlIDEwMDY0NAorLS0tIGEvZnJlc2NvYmFsZGlfYXBw L3FwYWdldmlldy9tYWduaWZpZXIucHkKKysrKyBiL2ZyZXNjb2JhbGRpX2FwcC9xcGFnZXZpZXcv bWFnbmlmaWVyLnB5CitAQCAtMTU2LDcgKzE1Niw3IEBAIGNsYXNzIE1hZ25pZmllcihRV2lkZ2V0 KToKKyAKKyAgICAgZGVmIG1vdmVFdmVudChzZWxmLCBldik6CisgICAgICAgICAiIiJDYWxsZWQg b24gbW92ZSwgdXBkYXRlcyB0aGUgY29udGVudHMuIiIiCistICAgICAgICAjIHdlIGFsc28gdXBk YXRlIG9uIHBhaW50IGV2ZW50cywgYnV0IHRoZXkgYXJlIG5vdCBnZW5lcmF0ZWQgaWYgdGhlIAor KyAgICAgICAgIyB3ZSBhbHNvIHVwZGF0ZSBvbiBwYWludCBldmVudHMsIGJ1dCB0aGV5IGFyZSBu b3QgZ2VuZXJhdGVkIGlmIHRoZQorICAgICAgICAgIyBtYWduaWZpZXJzIGZ1bGx5IGNvdmVycyB0 aGUgdmlld3BvcnQKKyAgICAgICAgIHNlbGYudXBkYXRlKCkKKyAKK0BAIC0yNDAsOCArMjQwLDgg QEAgY2xhc3MgTWFnbmlmaWVyKFFXaWRnZXQpOgorICAgICAgICAgICAgICAgICBmYWN0b3IgPSAx LjEgKiogKGV2LmFuZ2xlRGVsdGEoKS55KCkgLyAxMjApCisgICAgICAgICAgICAgICAgIGcgPSBz ZWxmLmdlb21ldHJ5KCkKKyAgICAgICAgICAgICAgICAgYyA9IGcuY2VudGVyKCkKKy0gICAgICAg ICAgICAgICAgZy5zZXRXaWR0aChtaW4obWF4KGcud2lkdGgoKSAqIGZhY3Rvciwgc2VsZi5NSU5f U0laRSksIHNlbGYuTUFYX1NJWkUpKQorLSAgICAgICAgICAgICAgICBnLnNldEhlaWdodChtaW4o bWF4KGcuaGVpZ2h0KCkgKiBmYWN0b3IsIHNlbGYuTUlOX1NJWkUpLCBzZWxmLk1BWF9TSVpFKSkK KysgICAgICAgICAgICAgICAgZy5zZXRXaWR0aChpbnQobWluKG1heChnLndpZHRoKCkgKiBmYWN0 b3IsIHNlbGYuTUlOX1NJWkUpLCBzZWxmLk1BWF9TSVpFKSkpCisrICAgICAgICAgICAgICAgIGcu c2V0SGVpZ2h0KGludChtaW4obWF4KGcuaGVpZ2h0KCkgKiBmYWN0b3IsIHNlbGYuTUlOX1NJWkUp LCBzZWxmLk1BWF9TSVpFKSkpCisgICAgICAgICAgICAgICAgIGcubW92ZUNlbnRlcihjKQorICAg ICAgICAgICAgICAgICBzZWxmLnNldEdlb21ldHJ5KGcpCisgICAgICAgICAgICAgZWxzZToKK0BA IC0yNzgsMTMgKzI3OCwxMyBAQCBjbGFzcyBNYWduaWZpZXIoUVdpZGdldCk6CisgCisgICAgICAg ICAjIHRoZSB2aXJ0dWFsIHBvc2l0aW9uIG9mIHRoZSB3aG9sZSBzY2FsZWQtdXAgbGF5b3V0Cisg ICAgICAgICBldl9yZWN0ID0gZXYucmVjdCgpLnRyYW5zbGF0ZWQob3VyX3JlY3QudG9wTGVmdCgp KQorLSAgICAgICAgCisrCisgICAgICAgICAjIGRyYXcgc2hhZG93IGJvcmRlcj8KKyAgICAgICAg IHNoYWRvdyA9IEZhbHNlCisgICAgICAgICBpZiBoYXNhdHRyKHZpZXcsICJkcmF3RHJvcFNoYWRv dyIpIGFuZCB2aWV3LmRyb3BTaGFkb3dFbmFibGVkOgorICAgICAgICAgICAgIHNoYWRvdyA9IFRy dWUKKyAgICAgICAgICAgICBzaGFkb3dfd2lkdGggPSBsYXlvdXQuc3BhY2luZyAqIHNjYWxlIC8v IDIKKy0gICAgICAgIAorKworICAgICAgICAgcGFpbnRlciA9IFFQYWludGVyKHNlbGYpCisgICAg ICAgICBmb3IgcCBpbiBsYXlvdXQucGFnZXNBdChyZWdpb24uYm91bmRpbmdSZWN0KCkpOgorICAg ICAgICAgICAgICMgZ2V0IGEgKHJldXNlZCkgdGhlIGNvcHkgb2YgdGhlIHBhZ2UKK2RpZmYgLS1n aXQgYS9mcmVzY29iYWxkaV9hcHAvcXBhZ2V2aWV3L3BvcHBsZXIucHkgYi9mcmVzY29iYWxkaV9h cHAvcXBhZ2V2aWV3L3BvcHBsZXIucHkKK2luZGV4IDE3MzEyZDc4Li4yNjc2ODM1NiAxMDA2NDQK Ky0tLSBhL2ZyZXNjb2JhbGRpX2FwcC9xcGFnZXZpZXcvcG9wcGxlci5weQorKysrIGIvZnJlc2Nv YmFsZGlfYXBwL3FwYWdldmlldy9wb3BwbGVyLnB5CitAQCAtNjIsNyArNjIsNyBAQCBjbGFzcyBM aW5rKGxpbmsuTGluayk6CisgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsaW5rb2JqKToKKyAgICAg ICAgIHNlbGYubGlua29iaiA9IGxpbmtvYmoKKyAgICAgICAgIHNlbGYuYXJlYSA9IGxpbmsuQXJl YSgqbGlua29iai5saW5rQXJlYSgpLm5vcm1hbGl6ZWQoKS5nZXRDb29yZHMoKSkKKy0gICAgCisr CisgICAgIEBwcm9wZXJ0eQorICAgICBkZWYgdXJsKHNlbGYpOgorICAgICAgICAgaWYgaXNpbnN0 YW5jZShzZWxmLmxpbmtvYmosIHBvcHBsZXJxdDUuUG9wcGxlci5MaW5rQnJvd3NlKToKK0BAIC0x MDUsOCArMTA1LDggQEAgY2xhc3MgUG9wcGxlclBhZ2UocGFnZS5BYnN0cmFjdFJlbmRlcmVkUGFn ZSk6CisgICAgIGRlZiBsb2FkKGNscywgZmlsZW5hbWUsIHJlbmRlcmVyPU5vbmUpOgorICAgICAg ICAgIiIiTG9hZCBhIFBvcHBsZXIgZG9jdW1lbnQsIGFuZCB5aWVsZCBvZiBpbnN0YW5jZXMgb2Yg dGhpcyBjbGFzcy4KKyAKKy0gICAgICAgIFRoZSBmaWxlbmFtZSBjYW4gYWxzbyBiZSBhIFFCeXRl QXJyYXkgb3IgYSBwb3BwbGVycXQ1LlBvcHBsZXIuRG9jdW1lbnQgCistICAgICAgICBpbnN0YW5j ZS4gVGhlIHNwZWNpZmllZCBSZW5kZXJlciBpcyB1c2VkLCBvciBlbHNlIHRoZSBnbG9iYWwgcG9w cGxlciAKKysgICAgICAgIFRoZSBmaWxlbmFtZSBjYW4gYWxzbyBiZSBhIFFCeXRlQXJyYXkgb3Ig YSBwb3BwbGVycXQ1LlBvcHBsZXIuRG9jdW1lbnQKKysgICAgICAgIGluc3RhbmNlLiBUaGUgc3Bl Y2lmaWVkIFJlbmRlcmVyIGlzIHVzZWQsIG9yIGVsc2UgdGhlIGdsb2JhbCBwb3BwbGVyCisgICAg ICAgICByZW5kZXJlci4KKyAKKyAgICAgICAgICIiIgorQEAgLTExNiwxMSArMTE2LDExIEBAIGNs YXNzIFBvcHBsZXJQYWdlKHBhZ2UuQWJzdHJhY3RSZW5kZXJlZFBhZ2UpOgorICAgICBkZWYgbXV0 ZXgoc2VsZik6CisgICAgICAgICAiIiJObyB0d28gcGFnZXMgb2Ygc2FtZSBQb3BwbGVyIGRvY3Vt ZW50IGFyZSByZW5kZXJlZCBhdCB0aGUgc2FtZSB0aW1lLiIiIgorICAgICAgICAgcmV0dXJuIHNl bGYuZG9jdW1lbnQKKy0gICAgCisrCisgICAgIGRlZiBncm91cChzZWxmKToKKyAgICAgICAgICIi IlJlaW1wbGVtZW50ZWQgdG8gcmV0dXJuIHRoZSBQb3BwbGVyIGRvY3VtZW50IG91ciBwYWdlIGRp c3BsYXlzIGEgcGFnZSBmcm9tLiIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuZG9jdW1lbnQKKy0g ICAgCisrCisgICAgIGRlZiBpZGVudChzZWxmKToKKyAgICAgICAgICIiIlJlaW1wbGVtZW50ZWQg dG8gcmV0dXJuIHRoZSBwYWdlIG51bWJlciBvZiB0aGlzIHBhZ2UuIiIiCisgICAgICAgICByZXR1 cm4gc2VsZi5wYWdlTnVtYmVyCitAQCAtMTMxLDcgKzEzMSw3IEBAIGNsYXNzIFBvcHBsZXJQYWdl KHBhZ2UuQWJzdHJhY3RSZW5kZXJlZFBhZ2UpOgorICAgICAgICAgd2l0aCBsb2NraW5nLmxvY2so c2VsZi5kb2N1bWVudCk6CisgICAgICAgICAgICAgcGFnZSA9IHNlbGYuZG9jdW1lbnQucGFnZShz ZWxmLnBhZ2VOdW1iZXIpCisgICAgICAgICAgICAgcmV0dXJuIHBhZ2UudGV4dChyZWN0KQorLSAg ICAKKysKKyAgICAgZGVmIGxpbmtzKHNlbGYpOgorICAgICAgICAgIiIiUmVpbXBsZW1lbnRlZCB0 byB1c2UgYSBkaWZmZXJlbnQgY2FjaGluZyBtZWNoYW5pc20uIiIiCisgICAgICAgICBkb2N1bWVu dCwgcGFnZU51bWJlciA9IHNlbGYuZG9jdW1lbnQsIHNlbGYucGFnZU51bWJlcgorQEAgLTE4NCw3 ICsxODQsNyBAQCBjbGFzcyBQb3BwbGVyUmVuZGVyZXIocmVuZGVyLkFic3RyYWN0UmVuZGVyZXIp OgorICAgICAgICAgcmVuZGVyQmFja2VuZCA9IHByaW50UmVuZGVyQmFja2VuZCA9IDAKKyAKKyAg ICAgb3ZlcnNhbXBsZVRocmVzaG9sZCA9IDk2CistICAgIAorKworICAgICBkZWYgcmVuZGVyKHNl bGYsIHBhZ2UsIGtleSwgdGlsZSwgcGFwZXJDb2xvcj1Ob25lKToKKyAgICAgICAgICIiIkdlbmVy YXRlIGFuIGltYWdlIGZvciB0aGUgUGFnZSByZWZlcnJlZCB0byBieSBrZXkuIiIiCisgICAgICAg ICBpZiBwYXBlckNvbG9yIGlzIE5vbmU6CitAQCAtMjA1LDggKzIwNSw4IEBAIGNsYXNzIFBvcHBs ZXJSZW5kZXJlcihyZW5kZXIuQWJzdHJhY3RSZW5kZXJlcik6CisgICAgICAgICAgICAga2V5LnJv dGF0aW9uLCBwYXBlckNvbG9yKQorICAgICAgICAgaWYgbXVsdGlwbGllciA9PSAyOgorICAgICAg ICAgICAgIGltYWdlID0gaW1hZ2Uuc2NhbGVkVG9XaWR0aCh0aWxlLncsIFF0LlNtb290aFRyYW5z Zm9ybWF0aW9uKQorLSAgICAgICAgaW1hZ2Uuc2V0RG90c1Blck1ldGVyWCh4cmVzICogMzkuMzcp CistICAgICAgICBpbWFnZS5zZXREb3RzUGVyTWV0ZXJZKHlyZXMgKiAzOS4zNykKKysgICAgICAg IGltYWdlLnNldERvdHNQZXJNZXRlclgoaW50KHhyZXMgKiAzOS4zNykpCisrICAgICAgICBpbWFn ZS5zZXREb3RzUGVyTWV0ZXJZKGludCh5cmVzICogMzkuMzcpKQorICAgICAgICAgcmV0dXJuIGlt YWdlCisgCisgICAgIGRlZiBzZXRSZW5kZXJIaW50cyhzZWxmLCBkb2MpOgorZGlmZiAtLWdpdCBh L2ZyZXNjb2JhbGRpX2FwcC9xcGFnZXZpZXcvcmVuZGVyLnB5IGIvZnJlc2NvYmFsZGlfYXBwL3Fw YWdldmlldy9yZW5kZXIucHkKK2luZGV4IGE4YzAwZGUxLi41NTYwZmEyZiAxMDA2NDQKKy0tLSBh L2ZyZXNjb2JhbGRpX2FwcC9xcGFnZXZpZXcvcmVuZGVyLnB5CisrKysgYi9mcmVzY29iYWxkaV9h cHAvcXBhZ2V2aWV3L3JlbmRlci5weQorQEAgLTE0NiwxMSArMTQ2LDExIEBAIGNsYXNzIEFic3Ry YWN0UmVuZGVyZXI6CisgCisgICAgIGRlZiBtYXAoc2VsZiwga2V5LCBib3gpOgorICAgICAgICAg IiIiUmV0dXJuIGEgUVRyYW5zZm9ybSBjb252ZXJ0aW5nIGZyb20gS2V5IGNvb3JkaW5hdGVzIHRv IGEgYm94LgorLSAgICAgICAgCisrCisgICAgICAgICBUaGUgYm94IHNob3VsZCBiZSBhIFFSZWN0 RiBvciBRUmVjdCwgYW5kIGRlc2NyaWJlcyB0aGUgb3JpZ2luYWwgYXJlYSBvZgorICAgICAgICAg dGhlIHBhZ2UuICBUaGUgcmV0dXJuZWQgbWF0cml4IGNhbiBiZSB1c2VkIHRvIGNvbnZlcnQgZS5n LiB0aWxlCisgICAgICAgICBjb29yZGluYXRlcyB0byB0aGUgcG9zaXRpb24gb24gdGhlIG9yaWdp bmFsIHBhZ2UuCistICAgICAgICAKKysKKyAgICAgICAgICIiIgorICAgICAgICAgdCA9IFFUcmFu c2Zvcm0oKQorICAgICAgICAgdC50cmFuc2xhdGUoYm94LngoKSwgYm94LnkoKSkKK0BAIC0xODIs MTcgKzE4MiwxNyBAQCBjbGFzcyBBYnN0cmFjdFJlbmRlcmVyOgorIAorICAgICBkZWYgcmVuZGVy KHNlbGYsIHBhZ2UsIGtleSwgdGlsZSwgcGFwZXJDb2xvcj1Ob25lKToKKyAgICAgICAgICIiIkdl bmVyYXRlIGEgUUltYWdlIGZvciB0aWxlIG9mIHRoZSBQYWdlLgorLSAgICAgICAgCisrCisgICAg ICAgICBUaGUgd2lkdGgsIGhlaWdodCBhbmQgcm90YXRpb24gdG8gcmVuZGVyIGF0IHNob3VsZCBi ZSB0YWtlbiBmcm9tIHRoZQorICAgICAgICAga2V5LCBhcyB0aGUgcGFnZSBjb3VsZCBiZSByZXNp emVkIG9yIHJvdGF0ZWQgaW4gdGhlIG1lYW4gdGltZS4KKy0gICAgICAgIAorKworICAgICAgICAg VGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gcHJlcGFyZXMgdGhlIGltYWdlLCBhIHBhaW50ZXIg YW5kIHRoZW4KKyAgICAgICAgIGNhbGxzIGRyYXcoKSB0byBhY3R1YWxseSBkcmF3IHRoZSBjb250 ZW50cy4KKy0gICAgICAgIAorKworICAgICAgICAgSWYgdGhlIHBhcGVyQ29sb3IgaXMgbm90IHNw ZWNpZmllZCwgaXQgd2lsbCBiZSByZWFkIGZyb20gdGhlIFBhZ2UncworICAgICAgICAgcGFwZXJD b2xvciBhdHRyaWJ1dGUgKGlmIG5vdCBOb25lKSBvciBlbHNlIGZyb20gdGhlIHJlbmRlcmVyJ3MK KyAgICAgICAgIHBhcGVyQ29sb3IgYXR0cmlidXRlLgorLSAgICAgICAgCisrCisgICAgICAgICAi IiIKKyAgICAgICAgIGlmIHBhcGVyQ29sb3IgaXMgTm9uZToKKyAgICAgICAgICAgICBwYXBlckNv bG9yID0gcGFnZS5wYXBlckNvbG9yIG9yIHNlbGYucGFwZXJDb2xvcgorQEAgLTIwMCw3ICsyMDAs NyBAQCBjbGFzcyBBYnN0cmFjdFJlbmRlcmVyOgorICAgICAgICAgaSA9IFFJbWFnZSh0aWxlLncs IHRpbGUuaCwgc2VsZi5pbWFnZUZvcm1hdCkKKyAgICAgICAgIGkuZmlsbChwYXBlckNvbG9yKQor ICAgICAgICAgcGFpbnRlciA9IFFQYWludGVyKGkpCistICAgICAgICAKKysKKyAgICAgICAgICMg cm90YXRlIHRoZSBwYWludGVyIGFjY29yZGluZ2x5CisgICAgICAgICB1dGlsLnJvdGF0ZShwYWlu dGVyLCBrZXkucm90YXRpb24sIHRpbGUudywgdGlsZS5oLCBUcnVlKQorIAorQEAgLTI0MSw3ICsy NDEsNyBAQCBjbGFzcyBBYnN0cmFjdFJlbmRlcmVyOgorICAgICAgICAga2V5ID0gc2VsZi5rZXko cGFnZSwgcmF0aW8pCisgCisgICAgICAgICAjIHBhaW50IHJlY3QgaW4gdGlsZSBjb29yZGluYXRl cworLSAgICAgICAgdGFyZ2V0ID0gUVJlY3QocmVjdC54KCkgKiByYXRpbywgcmVjdC55KCkgKiBy YXRpbywgcmVjdC53aWR0aCgpICogcmF0aW8sIHJlY3QuaGVpZ2h0KCkgKiByYXRpbykKKysgICAg ICAgIHRhcmdldCA9IFFSZWN0KGludChyZWN0LngoKSAqIHJhdGlvKSwgaW50KHJlY3QueSgpICog cmF0aW8pLCBpbnQocmVjdC53aWR0aCgpICogcmF0aW8pLCBpbnQocmVjdC5oZWlnaHQoKSAqIHJh dGlvKSkKKyAKKyAgICAgICAgICMgdGlsZXMgdG8gcGFpbnQKKyAgICAgICAgIHRpbGVzID0gW3Qg Zm9yIHQgaW4gc2VsZi50aWxlcyhrZXkud2lkdGgsIGtleS5oZWlnaHQpIGlmIFFSZWN0KCp0KSAm IHRhcmdldF0KK0BAIC0zMTQsNyArMzE0LDcgQEAgY2xhc3MgQWJzdHJhY3RSZW5kZXJlcjoKKyAg ICAgICAgICAgICAgICAgdnNjYWxlID0ga2V5LmhlaWdodCAvIGhlaWdodAorICAgICAgICAgICAg ICAgICBmb3IgdCBpbiB0aWxlc2V0OgorICAgICAgICAgICAgICAgICAgICAgIyBzY2FsZSB0byBv dXIgaW1hZ2Ugc2l6ZQorLSAgICAgICAgICAgICAgICAgICAgciA9IFFSZWN0KHQueCAqIGhzY2Fs ZSwgdC55ICogdnNjYWxlLCB0LncgKiBoc2NhbGUsIHQuaCAqIHZzY2FsZSkgJiB0YXJnZXQKKysg ICAgICAgICAgICAgICAgICAgIHIgPSBRUmVjdChpbnQodC54ICogaHNjYWxlKSwgaW50KHQueSAq IHZzY2FsZSksIGludCh0LncgKiBoc2NhbGUpLCBpbnQodC5oICogdnNjYWxlKSkgJiB0YXJnZXQK KyAgICAgICAgICAgICAgICAgICAgIGlmIHIgYW5kIFFSZWdpb24ocikuc3VidHJhY3RlZChyZWdp b24pOgorICAgICAgICAgICAgICAgICAgICAgICAgICMgd2UgaGF2ZSBhbiBpbWFnZSB0aGF0IGNh biBiZSBkcmF3biBpbiByZWN0IHIKKyAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UgPSBR UmVjdEYoci54KCkgLyBoc2NhbGUgLSB0LngsIHIueSgpIC8gdnNjYWxlIC0gdC55LAorZGlmZiAt LWdpdCBhL2ZyZXNjb2JhbGRpX2FwcC9xcGFnZXZpZXcvcnViYmVyYmFuZC5weSBiL2ZyZXNjb2Jh bGRpX2FwcC9xcGFnZXZpZXcvcnViYmVyYmFuZC5weQoraW5kZXggZGJhYjc3MmEuLjRhMDczYmM4 IDEwMDY0NAorLS0tIGEvZnJlc2NvYmFsZGlfYXBwL3FwYWdldmlldy9ydWJiZXJiYW5kLnB5Cisr KysgYi9mcmVzY29iYWxkaV9hcHAvcXBhZ2V2aWV3L3J1YmJlcmJhbmQucHkKK0BAIC00MSw3ICs0 MSw3IEBAIGNsYXNzIFJ1YmJlcmJhbmQoUVdpZGdldCk6CisgICAgICIiIkEgUnViYmVyYmFuZCB0 byBzZWxlY3QgYSByZWN0YW5ndWxhciByZWdpb24uCisgCisgICAgIEEgUnViYmVyYmFuZCBpcyBh ZGRlZCB0byBhIFZpZXcgd2l0aCB2aWV3LnNldFJ1YmJlcmJhbmQoKS4KKy0gICAgCisrCisgICAg IFRoZSBSdWJiZXJiYW5kIGxldHMgdGhlIHVzZXIgc2VsZWN0IGEgcmVjdGFuZ3VsYXIgcmVnaW9u LiBXaGVuIHRoZQorICAgICBzZWxlY3Rpb24gaXMgY2hhbmdlZCwgdGhlIGBzZWxlY3Rpb25DaGFu Z2VkYCBzaWduYWwgaXMgZW1pdHRlZCwgaGF2aW5nIHRoZQorICAgICBzZWxlY3Rpb24gcmVjdGFu Z2xlIGluIGxheW91dCBjb29yZGluYXRlcyBhcyBhcmd1bWVudC4KK0BAIC01MSw3ICs1MSw3IEBA IGNsYXNzIFJ1YmJlcmJhbmQoUVdpZGdldCk6CisgICAgICAgICBzaG93YnV0dG9uIChRdC5SaWdo dEJ1dHRvbiksIHRoZSBidXR0b24gdXNlZCB0byBkcmFnIGEgbmV3IHJlY3RhbmdsZQorIAorICAg ICAgICAgZHJhZ2J1dHRvbiAoUXQuTGVmdEJ1dHRvbiksIHRoZSBidXR0b24gdG8gYWx0ZXIgYW4g ZXhpc3RpbmcgcmVjdGFuZ2xlCistICAgICAgICAKKysKKyAgICAgICAgIHRyYWNrU2VsZWN0aW9u IChGYWxzZSksIHdoZXRoZXIgdG8gY29udGludW91c2x5IGVtaXQgc2VsZWN0aW9uQ2hhbmdlZCgp LgorICAgICAgICAgICAgICAgICBXaGVuIFRydWUsIHNlbGVjdGlvbkNoYW5nZWQoKSBpcyBlbWl0 dGVkIG9uIGV2ZXJ5IGNoYW5nZSwgd2hlbgorICAgICAgICAgICAgICAgICBGYWxzZSwgdGhlIHNp Z25hbCBpcyBvbmx5IGVtaXR0ZWQgd2hlbiB0aGUgbW91c2UgYnV0dG9uIGlzCitAQCAtOTMsNyAr OTMsNyBAQCBjbGFzcyBSdWJiZXJiYW5kKFFXaWRnZXQpOgorICAgICAgICAgY29sb3Iuc2V0QWxw aGEoMTUwKQorICAgICAgICAgcGFpbnRlci5zZXRQZW4oY29sb3IpCisgICAgICAgICAjIFhYWCBj YW4gdGhpcyBhZGp1c3RtZW50IGJlIGRvbmUgc21hcnRlcj8KKy0gICAgICAgIGFkanVzdCA9IC0x IC8gc2VsZi5kZXZpY2VQaXhlbFJhdGlvKCkKKysgICAgICAgIGFkanVzdCA9IGludCgtMSAvIHNl bGYuZGV2aWNlUGl4ZWxSYXRpbygpKQorICAgICAgICAgcGFpbnRlci5kcmF3UmVjdChzZWxmLnJl Y3QoKS5hZGp1c3RlZCgwLCAwLCBhZGp1c3QsIGFkanVzdCkpCisgCisgICAgICAgICAjIFBzZXVk by1oYW5kbGVzIGF0IHRoZSBjb3JuZXJzIGFuZCBzaWRlcworQEAgLTE0OCwyMSArMTQ4LDIxIEBA IGNsYXNzIFJ1YmJlcmJhbmQoUVdpZGdldCk6CisgICAgICAgICAgICAgc2VsZi5zZXRDdXJzb3Io Y3Vyc29yKQorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBzZWxmLnVuc2V0Q3Vyc29yKCkK Ky0gICAgCisrCisgICAgIGRlZiBoYXNTZWxlY3Rpb24oc2VsZik6CisgICAgICAgICAiIiJSZXR1 cm4gVHJ1ZSB3aGVuIHRoZXJlIGlzIGEgc2VsZWN0aW9uLiIiIgorICAgICAgICAgcmV0dXJuIGJv b2woc2VsZi5fc2VsZWN0aW9uKQorLSAgICAKKysKKyAgICAgZGVmIHNlbGVjdGlvbihzZWxmKToK KyAgICAgICAgICIiIlJldHVybiBvdXIgc2VsZWN0aW9uIHJlY3RhbmdsZSwgcmVsYXRpdmUgdG8g dGhlIHZpZXcncyBsYXlvdXQgcG9zaXRpb24uIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fc2Vs ZWN0aW9uCistICAgIAorKworICAgICBkZWYgc2VsZWN0ZWRQYWdlcyhzZWxmKToKKyAgICAgICAg ICIiIllpZWxkIHR1cGxlcyAocGFnZSwgcmVjdCkgZGVzY3JpYmluZyB0aGUgc2VsZWN0aW9uLgor LSAgICAgICAgCisrCisgICAgICAgICBFdmVyeSByZWN0IGlzIGludGVyc2VjdGVkIHdpdGggdGhl IHBhZ2UgcmVjdCBhbmQgdHJhbnNsYXRlZCB0byB0aGUKKyAgICAgICAgIHBhZ2UncyBwb3NpdGlv bi4KKy0gICAgICAgIAorKworICAgICAgICAgIiIiCisgICAgICAgICByZWN0ID0gc2VsZi5zZWxl Y3Rpb24oKQorICAgICAgICAgaWYgcmVjdDoKK0BAIC0xNzAsNyArMTcwLDcgQEAgY2xhc3MgUnVi YmVyYmFuZChRV2lkZ2V0KToKKyAgICAgICAgICAgICBsYXlvdXQgPSB2aWV3LnBhZ2VMYXlvdXQo KQorICAgICAgICAgICAgIGZvciBwYWdlIGluIGxheW91dC5wYWdlc0F0KHJlY3QpOgorICAgICAg ICAgICAgICAgICB5aWVsZCBwYWdlLCByZWN0LmludGVyc2VjdGVkKHBhZ2UuZ2VvbWV0cnkoKSku dHJhbnNsYXRlZCgtcGFnZS5wb3MoKSkKKy0gICAgCisrCisgICAgIGRlZiBzZWxlY3RlZFBhZ2Uo c2VsZik6CisgICAgICAgICAiIiJSZXR1cm5zIChwYWdlLCByZWN0KSBpZiB0aGVyZSBpcyBhIHNl bGVjdGlvbi4KKyAKK0BAIC0yMTEsMTAgKzIxMSwxMCBAQCBjbGFzcyBSdWJiZXJiYW5kKFFXaWRn ZXQpOgorIAorICAgICBkZWYgc2VsZWN0ZWRMaW5rcyhzZWxmKToKKyAgICAgICAgICIiIllpZWxk IHR1cGxlcyAocGFnZSwgbGlua3MpIGZvciBldmVyeSBwYWdlIGluIHRoZSBzZWxlY3Rpb24uCist ICAgICAgICAKKysKKyAgICAgICAgIGxpbmtzIGlzIGEgbm9uLWVtcHR5IHNldCgpIG9mIExpbmsg aW5zdGFuY2VzIG9uIHRoYXQgcGFnZSB0aGF0IGludGVyc2VjdAorICAgICAgICAgd2l0aCB0aGUg c2VsZWN0aW9uLgorLSAgICAgICAgCisrCisgICAgICAgICAiIiIKKyAgICAgICAgIGZvciBwYWdl LCByZWN0IGluIHNlbGYuc2VsZWN0ZWRQYWdlcygpOgorICAgICAgICAgICAgIGxpbmtzID0gcGFn ZS5saW5rc0luKHJlY3QpCitAQCAtMjM0LDE5ICsyMzQsMTkgQEAgY2xhc3MgUnViYmVyYmFuZChR V2lkZ2V0KToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgc2VsZi5oaWRlKCkKKyAgICAg ICAgICAgICBzZWxmLl9zZXRTZWxlY3Rpb25Gcm9tR2VvbWV0cnkoUVJlY3QoKSkKKy0gICAgCisr CisgICAgIGRlZiBjbGVhclNlbGVjdGlvbihzZWxmKToKKyAgICAgICAgICIiIkhpZGUgb3Vyc2Vs dmVzIGFuZCBjbGVhciB0aGUgc2VsZWN0aW9uLiIiIgorICAgICAgICAgc2VsZi5oaWRlKCkKKyAg ICAgICAgIHNlbGYuX2RyYWdnaW5nID0gRmFsc2UKKyAgICAgICAgIHNlbGYuX3NldFNlbGVjdGlv bkZyb21HZW9tZXRyeShRUmVjdCgpKQorLSAgICAgICAgCisrCisgICAgIGRlZiBfc2V0U2VsZWN0 aW9uRnJvbUdlb21ldHJ5KHNlbGYsIHJlY3QpOgorICAgICAgICAgIiIiKEludGVybmFsKSBDYWxs ZWQgdG8gZW1pdCB0aGUgc2VsZWN0aW9uQ2hhbmdlZCBzaWduYWwuCistICAgICAgICAKKysKKyAg ICAgICAgIE9ubHkgZW1pdHMgdGhlIHNpZ25hbCB3aGVuIHRoZSBzZWxlY3Rpb24gcmVhbGx5IGNo YW5nZWQuCisgICAgICAgICBUaGUgcmVjdCBzaG91bGQgYmUgb3VyIGdlb21ldHJ5IG9yIGFuIGVt cHR5IFFSZWN0KCkuCistICAgICAgICAKKysKKyAgICAgICAgICIiIgorICAgICAgICAgaWYgcmVj dDoKKyAgICAgICAgICAgICB2aWV3ID0gc2VsZi5wYXJlbnQoKS5wYXJlbnQoKQorQEAgLTI1NCwx NiArMjU0LDE2IEBAIGNsYXNzIFJ1YmJlcmJhbmQoUVdpZGdldCk6CisgICAgICAgICBvbGQsIHNl bGYuX3NlbGVjdGlvbiA9IHNlbGYuX3NlbGVjdGlvbiwgcmVjdAorICAgICAgICAgaWYgcmVjdCAh PSBvbGQ6CisgICAgICAgICAgICAgc2VsZi5zZWxlY3Rpb25DaGFuZ2VkLmVtaXQocmVjdCkKKy0g ICAgCisrCisgICAgIGRlZiBfc2V0TGF5b3V0T2Zmc2V0KHNlbGYsIHBvcyk6CisgICAgICAgICAi IiJTdG9yZSB0aGUgcG9zaXRpb24gYXMgb2Zmc2V0IGZyb20gdGhlIGxheW91dCwgYW5kIGFsc28g ZnJvbSB0aGUgcGFnZQorICAgICAgICAgYXQgdGhhdCBwb3NpdGlvbi4gVXNlZCBmb3Iga2VlcGlu ZyB0aGUgc2FtZSBzcG90IG9uIHpvb20gY2hhbmdlLgorLSAgICAgICAgCisrCisgICAgICAgICAi IiIKKyAgICAgICAgIHZpZXcgPSBzZWxmLnBhcmVudCgpLnBhcmVudCgpCisgICAgICAgICBwb3Mg PSBwb3MgLSB2aWV3LmxheW91dFBvc2l0aW9uKCkKKyAgICAgICAgIHNlbGYuX2xheW91dE9mZnNl dCA9IHZpZXcucGFnZUxheW91dCgpLnBvczJvZmZzZXQocG9zKQorLSAgICAKKysKKyAgICAgZGVm IF9nZXRMYXlvdXRPZmZzZXQoc2VsZik6CisgICAgICAgICAiIiJHZXQgdGhlIHN0b3JlZCBsYXlv dXQgb2Zmc2V0IHBvc2l0aW9uIGJhY2ssIGFmdGVyIHpvb20gb3IgbW92ZS4iIiIKKyAgICAgICAg IHZpZXcgPSBzZWxmLnBhcmVudCgpLnBhcmVudCgpCitAQCAtMzQwLDcgKzM0MCw3IEBAIGNsYXNz IFJ1YmJlcmJhbmQoUVdpZGdldCk6CisgICAgICAgICAgICAgZ2VvbSA9IFFSZWN0KHNlbGYuX2dl dExheW91dE9mZnNldCgpLCBzZWxmLnNpemUoKSAqIGZhY3RvcikKKyAgICAgICAgICAgICBzZWxm LnNldEdlb21ldHJ5KGdlb20pCisgICAgICAgICAgICAgc2VsZi5fc2V0U2VsZWN0aW9uRnJvbUdl b21ldHJ5KGdlb20pCistICAgIAorKworICAgICBkZWYgZXZlbnRGaWx0ZXIoc2VsZiwgdmlld3Bv cnQsIGV2KToKKyAgICAgICAgICIiIkFjdCBvbiBldmVudHMgaW4gdGhlIHZpZXdwb3J0OgorIAor ZGlmZiAtLWdpdCBhL2ZyZXNjb2JhbGRpX2FwcC9xcGFnZXZpZXcvc2Nyb2xsYXJlYS5weSBiL2Zy ZXNjb2JhbGRpX2FwcC9xcGFnZXZpZXcvc2Nyb2xsYXJlYS5weQoraW5kZXggNmY0ZGNhZjEuLjVh MGM1NjMxIDEwMDY0NAorLS0tIGEvZnJlc2NvYmFsZGlfYXBwL3FwYWdldmlldy9zY3JvbGxhcmVh LnB5CisrKysgYi9mcmVzY29iYWxkaV9hcHAvcXBhZ2V2aWV3L3Njcm9sbGFyZWEucHkKK0BAIC00 Niw3ICs0Niw3IEBAIGNsYXNzIFNjcm9sbEFyZWEoUUFic3RyYWN0U2Nyb2xsQXJlYSk6CisgICAg ICAgICBkcmFnZ2luZ0VuYWJsZWQgKFRydWUpOgorICAgICAgICAgICAgIElmIGVuYWJsZWQsIHRo ZSB1c2VyIGNhbiBkcmFnIHRoZSBjb250ZW50cyBvZiB0aGUgc2Nyb2xsYXJlYSB0bworICAgICAg ICAgICAgIG1vdmUgaXQgd2l0aCB0aGUgbW91c2UuCistICAgICAgICAgICAgCisrCisgICAgICIi IgorIAorICAgICBhbGlnbm1lbnQgPSBRdC5BbGlnbkNlbnRlcgorQEAgLTEwOSwxMCArMTA5LDEw IEBAIGNsYXNzIFNjcm9sbEFyZWEoUUFic3RyYWN0U2Nyb2xsQXJlYSk6CisgCisgICAgIGRlZiBh cmVhUG9zKHNlbGYpOgorICAgICAgICAgIiIiUmV0dXJuIHRoZSBwb3NpdGlvbiBvZiB0aGUgYXJl YSByZWxhdGl2ZSB0byB0aGUgdmlld3BvcnQuCistICAgICAgICAKKysKKyAgICAgICAgIFRoZSBh bGlnbm1lbnQgYXR0cmlidXRlIGlzIHRha2VuIGludG8gYWNjb3VudCB3aGVuIHRoZSBhcmVhIGlz IHNtYWxsZXIKKyAgICAgICAgIHRoYW4gdGhlIHZpZXdwb3J0IChob3Jpem9udGFsbHkgYW5kL29y IHZlcnRpY2FsbHkpLgorLSAgICAgICAgCisrCisgICAgICAgICAiIiIKKyAgICAgICAgIHcsIGgg PSBzZWxmLl9hcmVhU2l6ZQorICAgICAgICAgdncgPSBzZWxmLnZpZXdwb3J0KCkud2lkdGgoKQor QEAgLTEyMywxMyArMTIzLDEzIEBAIGNsYXNzIFNjcm9sbEFyZWEoUUFic3RyYWN0U2Nyb2xsQXJl YSk6CisgICAgICAgICBpZiB0b3AgPCAwOgorICAgICAgICAgICAgIHRvcCA9IC1zZWxmLnZlcnRp Y2FsU2Nyb2xsQmFyKCkudmFsdWUoKQorICAgICAgICAgcmV0dXJuIFFQb2ludChsZWZ0LCB0b3Ap CistICAgIAorKworICAgICBkZWYgdmlzaWJsZUFyZWEoc2VsZik6CisgICAgICAgICAiIiJSZXR1 cm4gYSByZWN0YW5nbGUgZGVzY3JpYmluZyB0aGUgcGFydCBvZiB0aGUgYXJlYSB0aGF0IGlzIHZp c2libGUuIiIiCisgICAgICAgICBwb3MgPSBzZWxmLmFyZWFQb3MoKQorICAgICAgICAgciA9IHNl bGYudmlld3BvcnQoKS5yZWN0KCkgJiBRUmVjdChwb3MsIHNlbGYuYXJlYVNpemUoKSkKKyAgICAg ICAgIHJldHVybiByLnRyYW5zbGF0ZWQoLXBvcykKKy0gICAgICAgIAorKworICAgICBkZWYgb2Zm c2V0VG9FbnN1cmVWaXNpYmxlKHNlbGYsIHJlY3QpOgorICAgICAgICAgIiIiUmV0dXJuIGFuIG9m ZnNldCBRUG9pbnQgd2l0aCB0aGUgbWluaW1hbCBzY3JvbGwgdG8gbWFrZSByZWN0IHZpc2libGUu CisgCitAQCAtMTUzLDEyICsxNTMsMTIgQEAgY2xhc3MgU2Nyb2xsQXJlYShRQWJzdHJhY3RTY3Jv bGxBcmVhKToKKyAKKyAgICAgZGVmIGVuc3VyZVZpc2libGUoc2VsZiwgcmVjdCwgbWFyZ2lucz1O b25lLCBhbGxvd0tpbmV0aWM9VHJ1ZSk6CisgICAgICAgICAiIiJQZXJmb3JtcyB0aGUgbWluaW1h bCBzY3JvbGwgdG8gbWFrZSByZWN0IHZpc2libGUuCistICAgICAgICAKKysKKyAgICAgICAgIElm IHRoZSByZWN0IGlzIG5vdCBjb21wbGV0ZWx5IHZpc2libGUgaXQgaXMgc2Nyb2xsZWQgaW50byB2 aWV3LCBhZGRpbmcKKyAgICAgICAgIHRoZSBtYXJnaW5zIGlmIGdpdmVuIChhIFFNYXJnaW5zIGlu c3RhbmNlKS4gSWYgYWxsb3dLaW5ldGljIGlzIEZhbHNlLAorICAgICAgICAgaW1tZWRpYXRlbHkg anVtcHMgdG8gdGhlIHBvc2l0aW9uLCBvdGhlcndpc2Ugc2Nyb2xscyBzbW9vdGhseSAoaWYKKyAg ICAgICAgIGtpbmV0aWMgc2Nyb2xsaW5nIGlzIGVuYWJsZWQpLgorLSAgICAgICAgCisrCisgICAg ICAgICAiIiIKKyAgICAgICAgIGlmIHJlY3Qgbm90IGluIHNlbGYudmlzaWJsZUFyZWEoKToKKyAg ICAgICAgICAgICBpZiBtYXJnaW5zIGlzIG5vdCBOb25lOgorQEAgLTE3MSw5ICsxNzEsOSBAQCBj bGFzcyBTY3JvbGxBcmVhKFFBYnN0cmFjdFNjcm9sbEFyZWEpOgorIAorICAgICBkZWYgX3VwZGF0 ZVNjcm9sbEJhcnMoc2VsZik6CisgICAgICAgICAiIiJJbnRlcm5hbC4gQWRqdXN0IHRoZSByYW5n ZSBvZiB0aGUgc2Nyb2xsYmFycyB0byB0aGUgYXJlYSBzaXplLgorLSAgICAgICAgCisrCisgICAg ICAgICBDYWxsZWQgaW4gc2V0QXJlYVNpemUoKSBhbmQgcmVzaXplRXZlbnQoKS4KKy0gICAgICAg IAorKworICAgICAgICAgIiIiCisgICAgICAgICB3LCBoID0gc2VsZi5fYXJlYVNpemUKKyAgICAg ICAgIG1heHNpemUgPSBzZWxmLm1heGltdW1WaWV3cG9ydFNpemUoKQorQEAgLTE4NiwxMCArMTg2 LDEwIEBAIGNsYXNzIFNjcm9sbEFyZWEoUUFic3RyYWN0U2Nyb2xsQXJlYSk6CisgICAgICAgICBl bHNlOgorICAgICAgICAgICAgIHZpZXdwb3J0ID0gc2VsZi52aWV3cG9ydCgpCisgICAgICAgICAg ICAgdmJhci5zZXRSYW5nZSgwLCBoIC0gdmlld3BvcnQuaGVpZ2h0KCkpCistICAgICAgICAgICAg dmJhci5zZXRQYWdlU3RlcCh2aWV3cG9ydC5oZWlnaHQoKSAqIC45KQorKyAgICAgICAgICAgIHZi YXIuc2V0UGFnZVN0ZXAoaW50KHZpZXdwb3J0LmhlaWdodCgpICogLjkpKQorICAgICAgICAgICAg IGhiYXIuc2V0UmFuZ2UoMCwgdyAtIHZpZXdwb3J0LndpZHRoKCkpCistICAgICAgICAgICAgaGJh ci5zZXRQYWdlU3RlcCh2aWV3cG9ydC53aWR0aCgpICogLjkpCistICAgICAgICAKKysgICAgICAg ICAgICBoYmFyLnNldFBhZ2VTdGVwKGludCh2aWV3cG9ydC53aWR0aCgpICogLjkpKQorKworICAg ICBkZWYgc2Nyb2xsT2Zmc2V0KHNlbGYpOgorICAgICAgICAgIiIiUmV0dXJuIHRoZSBjdXJyZW50 IHNjcm9sbCBvZmZzZXQuIiIiCisgICAgICAgICB4ID0gc2VsZi5ob3Jpem9udGFsU2Nyb2xsQmFy KCkudmFsdWUoKQorQEAgLTI5NSw3ICsyOTUsNyBAQCBjbGFzcyBTY3JvbGxBcmVhKFFBYnN0cmFj dFNjcm9sbEFyZWEpOgorICAgICAgICAgIiIiQmVnaW4gYSBzY3JvbGxpbmcgb3BlcmF0aW9uIHVz aW5nIHRoZSBzcGVjaWZpZWQgc2Nyb2xsZXIuIiIiCisgICAgICAgICBzZWxmLl9zY3JvbGxlciA9 IHNjcm9sbGVyCisgICAgICAgICBpZiBzZWxmLl9zY3JvbGxUaW1lciBpcyBOb25lOgorLSAgICAg ICAgICAgIHNlbGYuX3Njcm9sbFRpbWVyID0gc2VsZi5zdGFydFRpbWVyKDEwMDAgLyBzZWxmLnNj cm9sbHVwZGF0ZXNwZXJzZWMpCisrICAgICAgICAgICAgc2VsZi5fc2Nyb2xsVGltZXIgPSBzZWxm LnN0YXJ0VGltZXIoaW50KDEwMDAgLy8gc2VsZi5zY3JvbGx1cGRhdGVzcGVyc2VjKSkKKyAKKyAg ICAgZGVmIHN0b3BTY3JvbGxpbmcoc2VsZik6CisgICAgICAgICAiIiJTdG9wIHNjcm9sbGluZy4i IiIKK0BAIC0zMDcsNyArMzA3LDcgQEAgY2xhc3MgU2Nyb2xsQXJlYShRQWJzdHJhY3RTY3JvbGxB cmVhKToKKyAgICAgZGVmIGlzU2Nyb2xsaW5nKHNlbGYpOgorICAgICAgICAgIiIiUmV0dXJuIFRy dWUgaWYgYSBzY3JvbGxpbmcgbW92ZW1lbnQgaXMgYWN0aXZlLiIiIgorICAgICAgICAgcmV0dXJu IHNlbGYuX3Njcm9sbGVyIGlzIG5vdCBOb25lCistICAgIAorKworICAgICBkZWYgcmVtYWluaW5n U2Nyb2xsVGltZShzZWxmKToKKyAgICAgICAgICIiIklmIGEga2luZXRpYyBzY3JvbGwgaXMgYWN0 aXZlLCByZXR1cm4gaG93IG1hbnkgbXNlY3MgdGhlIHNjcm9sbCB3aWwgbGFzdC4KKyAKK0BAIC0z NzUsNyArMzc1LDcgQEAgY2xhc3MgU2Nyb2xsQXJlYShRQWJzdHJhY3RTY3JvbGxBcmVhKToKKyAg ICAgICAgICAgICBzZWxmLl9kcmFnVGltZSA9IE5vbmUKKyAgICAgICAgICAgICBzZWxmLl9kcmFn U3BlZWQgPSBOb25lCisgICAgICAgICBzdXBlcigpLm1vdXNlUmVsZWFzZUV2ZW50KGV2KQorLSAg ICAgICAgCisrCisgCisgY2xhc3MgU2Nyb2xsZXI6CisgICAgICIiIkFic3RyYWN0IGJhc2UgY2xh c3MsIGVuY2Fwc3VsYXRlcyBzY3JvbGxpbmcgYmVoYXZpb3VyLgorQEAgLTQ1MywxMyArNDUzLDEz IEBAIGNsYXNzIEtpbmV0aWNTY3JvbGxlcihTY3JvbGxlcik6CisgICAgICAgICAjIChUT0RPOiBh ZGFwdCBmb3Igb3RoZXIgdGlja2VyIHNwZWVkcz8gV0IpCisgICAgICAgICBpZiBzeSA+IDEwMDoK KyAgICAgICAgICAgICBzeSA9IDEwMAorLSAgICAgICAgb2ZmeSA9IGFicyhkeSkgLSBzeSAqIChz eSArIDEpIC8vIDIKKysgICAgICAgIG9mZnkgPSBpbnQoYWJzKGR5KSAtIHN5ICogKHN5ICsgMSkg Ly8gMikKKyAKKyAgICAgICAgICMgQWx0aG91Z2ggaXQgaXMgbGVzcyBsaWtlbHkgdG8gZ28gYmV5 b25kIHRoYXQgbGltaXQgZm9yIGhvcml6b250YWwgc2Nyb2xsaW5nLAorICAgICAgICAgIyBkbyBp dCBmb3IgeCBhcyB3ZWxsLgorICAgICAgICAgaWYgc3ggPiAxMDA6CisgICAgICAgICAgICAgc3gg PSAxMDAKKy0gICAgICAgIG9mZnggPSBhYnMoZHgpIC0gc3ggKiAoc3ggKyAxKSAvLyAyCisrICAg ICAgICBvZmZ4ID0gaW50KGFicyhkeCkgLSBzeCAqIChzeCArIDEpIC8vIDIpCisgCisgICAgICAg ICAjIGFkanVzdCBkaXJlY3Rpb25zCisgICAgICAgICBpZiBkeCA8IDA6CitkaWZmIC0tZ2l0IGEv ZnJlc2NvYmFsZGlfYXBwL3FwYWdldmlldy9zaGFkb3cucHkgYi9mcmVzY29iYWxkaV9hcHAvcXBh Z2V2aWV3L3NoYWRvdy5weQoraW5kZXggYzdkMWM4ZDUuLjViMGNkMTdiIDEwMDY0NAorLS0tIGEv ZnJlc2NvYmFsZGlfYXBwL3FwYWdldmlldy9zaGFkb3cucHkKKysrKyBiL2ZyZXNjb2JhbGRpX2Fw cC9xcGFnZXZpZXcvc2hhZG93LnB5CitAQCAtMzcsMTAgKzM3LDEwIEBAIGNsYXNzIFNoYWRvd1Zp ZXdNaXhpbjoKKyAKKyAgICAgZGVmIHBhaW50RXZlbnQoc2VsZiwgZXYpOgorICAgICAgICAgaWYg c2VsZi5kcm9wU2hhZG93RW5hYmxlZDoKKy0gICAgICAgICAgICB3aWR0aCA9IHNlbGYuX3BhZ2VM YXlvdXQuc3BhY2luZyAvIDIKKysgICAgICAgICAgICB3aWR0aCA9IHJvdW5kKHNlbGYuX3BhZ2VM YXlvdXQuc3BhY2luZyAvIDIuMCkKKyAgICAgICAgICAgICAjIG1ha2UgdGhlIHJlY3Qgc2xpZ2h0 bHkgbGFyZ2VyLCBzbyB3ZSAic2VlIiBzaGFkb3cgb2YgcGFnZXMgdGhhdAorICAgICAgICAgICAg ICMgd291bGQgYmUgb3V0c2lkZSB2aWV3IG5vcm1hbGx5LgorLSAgICAgICAgICAgIHJlY3QgPSBl di5yZWN0KCkuYWRqdXN0ZWQoLXdpZHRoLCAtd2lkdGgsIHdpZHRoIC8gMiwgd2lkdGggLyAyKQor KyAgICAgICAgICAgIHJlY3QgPSBldi5yZWN0KCkuYWRqdXN0ZWQoLXdpZHRoLCAtd2lkdGgsIGlu dCh3aWR0aCAvLyAyKSwgaW50KHdpZHRoIC8vIDIpKQorICAgICAgICAgICAgIHBhaW50ZXIgPSBR UGFpbnRlcihzZWxmLnZpZXdwb3J0KCkpCisgICAgICAgICAgICAgZm9yIHBhZ2UsIHJlY3QgaW4g c2VsZi5wYWdlc1RvUGFpbnQocmVjdCwgcGFpbnRlcik6CisgICAgICAgICAgICAgICAgIHNlbGYu ZHJhd0Ryb3BTaGFkb3cocGFnZSwgcGFpbnRlciwgd2lkdGgpCitAQCAtNDgsMTkgKzQ4LDE5IEBA IGNsYXNzIFNoYWRvd1ZpZXdNaXhpbjoKKyAKKyAgICAgZGVmIGRyYXdEcm9wU2hhZG93KHNlbGYs IHBhZ2UsIHBhaW50ZXIsIHdpZHRoKToKKyAgICAgICAgICIiIkRyYXcgYSBkcm9wIHNoYWRvdyBv ZiB3aWR0aCBwaXhlbHMgYXJvdW5kIHRoZSBQYWdlLgorLSAgICAgICAgCisrCisgICAgICAgICBU aGUgcGFpbnRlciBpcyBhbHJlYWR5IHRyYW5zbGF0ZWQgdG8gdGhlIHRvcGxlZnQgY29ybmVyIG9m IHRoZSBQYWdlLgorLSAgICAgICAgCisrCisgICAgICAgICAiIiIKKyAgICAgICAgIHdpZHRoID0g cm91bmQod2lkdGgpCistICAgICAgICByZWN0ID0gcGFnZS5yZWN0KCkuYWRqdXN0ZWQod2lkdGgg LyAyLCB3aWR0aCAvIDIsIDAsIDApCisrICAgICAgICByZWN0ID0gcGFnZS5yZWN0KCkuYWRqdXN0 ZWQoaW50KHdpZHRoIC8vIDIpLCBpbnQod2lkdGggLy8gMiksIDAsIDApCisgICAgICAgICBjb2xv ciA9IFFDb2xvcihRdC5ibGFjaykKKyAgICAgICAgIHBlbiA9IFFQZW4oKQorICAgICAgICAgcGVu LnNldFdpZHRoKDEpCisgICAgICAgICBwZW4uc2V0Sm9pblN0eWxlKFF0Lk1pdGVySm9pbikKKyAg ICAgICAgIGZvciBpIGluIHJhbmdlKHdpZHRoKToKKyAgICAgICAgICAgICBmID0gKHdpZHRoLWkp L3dpZHRoCistICAgICAgICAgICAgY29sb3Iuc2V0QWxwaGEoMjAwKipmICsgNTUqZikKKysgICAg ICAgICAgICBjb2xvci5zZXRBbHBoYShpbnQoMjAwKipmICsgNTUqZikpCisgICAgICAgICAgICAg cGVuLnNldENvbG9yKGNvbG9yKQorICAgICAgICAgICAgIHBhaW50ZXIuc2V0UGVuKHBlbikKKyAg ICAgICAgICAgICBwYWludGVyLmRyYXdSZWN0KHJlY3QuYWRqdXN0ZWQoLWksIC1pLCBpLCBpKSkK K2RpZmYgLS1naXQgYS9mcmVzY29iYWxkaV9hcHAvd2lkZ2V0cy9saW5lbnVtYmVyYXJlYS5weSBi L2ZyZXNjb2JhbGRpX2FwcC93aWRnZXRzL2xpbmVudW1iZXJhcmVhLnB5CitpbmRleCBmMDk3NzI2 Yy4uZmYzOGJjYzYgMTAwNjQ0CistLS0gYS9mcmVzY29iYWxkaV9hcHAvd2lkZ2V0cy9saW5lbnVt YmVyYXJlYS5weQorKysrIGIvZnJlc2NvYmFsZGlfYXBwL3dpZGdldHMvbGluZW51bWJlcmFyZWEu cHkKK0BAIC0yMSw3ICsyMSw3IEBACisgQSBsaW5lIG51bWJlciBhcmVhIHRvIGJlIHVzZWQgaW4g YSBRUGxhaW5UZXh0RWRpdC4KKyAiIiIKKyAKKy1mcm9tIFB5UXQ1LlF0Q29yZSBpbXBvcnQgUUV2 ZW50LCBRUG9pbnQsIFFSZWN0LCBRU2l6ZSwgUXQKKytmcm9tIFB5UXQ1LlF0Q29yZSBpbXBvcnQg UUV2ZW50LCBRUG9pbnQsIFFSZWN0RiwgUVNpemUsIFF0CisgZnJvbSBQeVF0NS5RdEd1aSBpbXBv cnQgUUZvbnRNZXRyaWNzLCBRTW91c2VFdmVudCwgUVBhaW50ZXIKKyBmcm9tIFB5UXQ1LlF0V2lk Z2V0cyBpbXBvcnQgUUFwcGxpY2F0aW9uLCBRV2lkZ2V0CisgCitAQCAtNzIsNyArNzIsNyBAQCBj bGFzcyBMaW5lTnVtYmVyQXJlYShRV2lkZ2V0KToKKyAgICAgICAgICAgICByZXR1cm4KKyAgICAg ICAgIHBhaW50ZXIgPSBRUGFpbnRlcihzZWxmKQorICAgICAgICAgcGFpbnRlci5zZXRGb250KGVk aXQuZm9udCgpKQorLSAgICAgICAgcmVjdCA9IFFSZWN0KDAsIDAsIHNlbGYud2lkdGgoKSAtIDIs IFFGb250TWV0cmljcyhlZGl0LmZvbnQoKSkuaGVpZ2h0KCkpCisrICAgICAgICByZWN0ID0gUVJl Y3RGKDAsIDAsIHNlbGYud2lkdGgoKSAtIDIsIFFGb250TWV0cmljcyhlZGl0LmZvbnQoKSkuaGVp Z2h0KCkpCisgICAgICAgICBibG9jayA9IGVkaXQuZmlyc3RWaXNpYmxlQmxvY2soKQorICAgICAg ICAgd2hpbGUgYmxvY2suaXNWYWxpZCgpOgorICAgICAgICAgICAgIGdlb20gPSBlZGl0LmJsb2Nr Qm91bmRpbmdHZW9tZXRyeShibG9jaykKK2RpZmYgLS1naXQgYS9mcmVzY29iYWxkaV9hcHAvd2lk Z2V0cy9wcm9ncmVzc2Jhci5weSBiL2ZyZXNjb2JhbGRpX2FwcC93aWRnZXRzL3Byb2dyZXNzYmFy LnB5CitpbmRleCA2NzBiZjBmNS4uMTgzYWI2MjUgMTAwNjQ0CistLS0gYS9mcmVzY29iYWxkaV9h cHAvd2lkZ2V0cy9wcm9ncmVzc2Jhci5weQorKysrIGIvZnJlc2NvYmFsZGlfYXBwL3dpZGdldHMv cHJvZ3Jlc3NiYXIucHkKK0BAIC03MSw4ICs3MSw4IEBAIGNsYXNzIFRpbWVkUHJvZ3Jlc3NCYXIo UVByb2dyZXNzQmFyKToKKyAgICAgICAgICIiIgorICAgICAgICAgc2VsZi5faGlkZVRpbWVyLnN0 b3AoKQorICAgICAgICAgc2VsZi5fdGltZWxpbmUuc3RvcCgpCistICAgICAgICBzZWxmLl90aW1l bGluZS5zZXREdXJhdGlvbih0b3RhbCAqIDEwMDApCistICAgICAgICBzZWxmLl90aW1lbGluZS5z ZXRDdXJyZW50VGltZShlbGFwc2VkICogMTAwMCkKKysgICAgICAgIHNlbGYuX3RpbWVsaW5lLnNl dER1cmF0aW9uKGludCh0b3RhbCAqIDEwMDApKQorKyAgICAgICAgc2VsZi5fdGltZWxpbmUuc2V0 Q3VycmVudFRpbWUoaW50KGVsYXBzZWQgKiAxMDAwKSkKKyAgICAgICAgIHNlbGYuc2V0VmFsdWUo c2VsZi5fdGltZWxpbmUuY3VycmVudEZyYW1lKCkpCisgICAgICAgICBzZWxmLl90aW1lbGluZS5y ZXN1bWUoKQorICAgICAgICAgaWYgc2VsZi5faGlkZVdoaWxlSWRsZSBhbmQgbm90IHNlbGYuX2hp ZGRlbjoKKy0tIAorMi4zMy4xCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZnJlc2NvYmFsZGkvcGF0 Y2hlcy8wMDAyLW1vcmUtcHktMy4xMC1mbG9hdC1pbnQtZml4ZXMtaXNzdWUtMTM5OC5wYXRjaCBi L3NyY3BrZ3MvZnJlc2NvYmFsZGkvcGF0Y2hlcy8wMDAyLW1vcmUtcHktMy4xMC1mbG9hdC1pbnQt Zml4ZXMtaXNzdWUtMTM5OC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAuLjgzMzhjYTJhMzYyYwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZnJlc2NvYmFs ZGkvcGF0Y2hlcy8wMDAyLW1vcmUtcHktMy4xMC1mbG9hdC1pbnQtZml4ZXMtaXNzdWUtMTM5OC5w YXRjaApAQCAtMCwwICsxLDIwOSBAQAorRnJvbSBiZDRkZmUwMzZiOGRiYzVkNzU1NTJmZTZiNmIw ODFjMDI0ZTViZWVhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogV2lsYmVydCBCZXJl bmRzZW4gPHdic29mdEB4czRhbGwubmw+CitEYXRlOiBNb24sIDggTm92IDIwMjEgMDk6MzU6NTkg KzAxMDAKK1N1YmplY3Q6IFtQQVRDSCAyLzJdIG1vcmUgcHkgMy4xMCBmbG9hdC0+aW50IGZpeGVz LCBpc3N1ZSAjMTM5OAorCistLS0KKyBmcmVzY29iYWxkaV9hcHAvcXBhZ2V2aWV3L3BhZ2UucHkg ICAgICAgfCA1MCArKysrKysrKysrKystLS0tLS0tLS0tLS0tCisgZnJlc2NvYmFsZGlfYXBwL3Fw YWdldmlldy9wb3BwbGVyLnB5ICAgIHwgIDIgKy0KKyBmcmVzY29iYWxkaV9hcHAvcXBhZ2V2aWV3 L3Njcm9sbGFyZWEucHkgfCAgOCArKy0tCisgMyBmaWxlcyBjaGFuZ2VkLCAzMCBpbnNlcnRpb25z KCspLCAzMCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2ZyZXNjb2JhbGRpX2FwcC9xcGFn ZXZpZXcvcGFnZS5weSBiL2ZyZXNjb2JhbGRpX2FwcC9xcGFnZXZpZXcvcGFnZS5weQoraW5kZXgg ZjkzZmE5ZTIuLjc1NGQyNzM2IDEwMDY0NAorLS0tIGEvZnJlc2NvYmFsZGlfYXBwL3FwYWdldmll dy9wYWdlLnB5CisrKysgYi9mcmVzY29iYWxkaV9hcHAvcXBhZ2V2aWV3L3BhZ2UucHkKK0BAIC00 OCw3ICs0OCw3IEBAIGNsYXNzIEFic3RyYWN0UGFnZSh1dGlsLlJlY3Rhbmd1bGFyKToKKyAKKyAg ICAgLi4udGhhdCBub3JtYWxseSBkbyBub3QgY2hhbmdlIGR1cmluZyBpdHMgbGlmZXRpbWU6Cisg CistICAgICAgICBgcGFnZVdpZHRoYCAgICAgdGhlIG9yaWdpbmFsIHdpZHRoICAoYnkgZGVmYXVs dCBpbiBwb2ludHMsIGBkcGlgIGlzIDcyLjAgCisrICAgICAgICBgcGFnZVdpZHRoYCAgICAgdGhl IG9yaWdpbmFsIHdpZHRoICAoYnkgZGVmYXVsdCBpbiBwb2ludHMsIGBkcGlgIGlzIDcyLjAKKyAg ICAgICAgIGBwYWdlSGVpZ2h0YCAgICB0aGUgb3JpZ2luYWwgaGVpZ2h0ICAgYnV0IGNhbiBiZSBj aGFuZ2VkIGF0IGNsYXNzIGxldmVsKQorIAorICAgICAuLi4gdGhhdCBjYW4gYmUgbW9kaWZpZWQg YnkgdGhlIHVzZXIgKGhhdmluZyBkZWZhdWx0cyBhdCB0aGUgY2xhc3MgbGV2ZWwpOgorQEAgLTE3 NCwxNSArMTc0LDE1IEBAIGNsYXNzIEFic3RyYWN0UGFnZSh1dGlsLlJlY3Rhbmd1bGFyKToKKyAK KyAgICAgZGVmIGRlZmF1bHRTaXplKHNlbGYpOgorICAgICAgICAgIiIiUmV0dXJuIHRoZSBwYWdl U2l6ZSgpIHNjYWxlZCBhbmQgcm90YXRlZCAoaWYgbmVlZGVkKS4KKy0gICAgICAgIAorKworICAg ICAgICAgQmFzZWQgb24gc2NhbGVYLCBzY2FsZVksIGFuZCBjb21wdXRlZFJvdGF0aW9uIGF0dHJp YnV0ZXMuCistICAgICAgICAKKysKKyAgICAgICAgICIiIgorICAgICAgICAgcyA9IFFTaXplRihz ZWxmLnBhZ2VXaWR0aCAqIHNlbGYuc2NhbGVYLCBzZWxmLnBhZ2VIZWlnaHQgKiBzZWxmLnNjYWxl WSkKKyAgICAgICAgIGlmIHNlbGYuY29tcHV0ZWRSb3RhdGlvbiAmIDE6CisgICAgICAgICAgICAg cy50cmFuc3Bvc2UoKQorICAgICAgICAgcmV0dXJuIHMKKy0gICAgICAgIAorKworICAgICBkZWYg dXBkYXRlU2l6ZShzZWxmLCBkcGlYLCBkcGlZLCB6b29tRmFjdG9yKToKKyAgICAgICAgICIiIlNl dCB0aGUgd2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzIG9mIHRoZSBwYWdlLgorIAorQEAgLTI4 Niw3ICsyODYsNyBAQCBjbGFzcyBBYnN0cmFjdFBhZ2UodXRpbC5SZWN0YW5ndWxhcik6CisgCisg ICAgICAgICBwZGYgPSBRUGRmV3JpdGVyKGZpbGVuYW1lKQorICAgICAgICAgcGRmLnNldENyZWF0 b3IoInFwYWdldmlldyIpCistICAgICAgICBwZGYuc2V0UmVzb2x1dGlvbihyZXNvbHV0aW9uKQor KyAgICAgICAgcGRmLnNldFJlc29sdXRpb24oaW50KHJlc29sdXRpb24pKQorIAorICAgICAgICAg bGF5b3V0ID0gcGRmLnBhZ2VMYXlvdXQoKQorICAgICAgICAgbGF5b3V0LnNldE1vZGUobGF5b3V0 LkZ1bGxQYWdlTW9kZSkKK0BAIC0zNTAsNyArMzUwLDcgQEAgY2xhc3MgQWJzdHJhY3RQYWdlKHV0 aWwuUmVjdGFuZ3VsYXIpOgorICAgICAgICAgICAgIHN2Zy5zZXRGaWxlTmFtZShmaWxlbmFtZSkK KyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgc3ZnLnNldE91dHB1dERldmljZShmaWxlbmFt ZSkKKy0gICAgICAgIHN2Zy5zZXRSZXNvbHV0aW9uKHJlc29sdXRpb24pCisrICAgICAgICBzdmcu c2V0UmVzb2x1dGlvbihpbnQocmVzb2x1dGlvbikpCisgICAgICAgICBzdmcuc2V0U2l6ZSh0YXJn ZXRTaXplLnRvU2l6ZSgpKQorICAgICAgICAgc3ZnLnNldFZpZXdCb3goUVJlY3RGKDAsIDAsIHRh cmdldFNpemUud2lkdGgoKSwgdGFyZ2V0U2l6ZS5oZWlnaHQoKSkpCisgICAgICAgICByZXR1cm4g c2VsZi5vdXRwdXQoc3ZnLCBzb3VyY2UsIHBhcGVyQ29sb3IpCitAQCAtMzgxLDMxICszODEsMzEg QEAgY2xhc3MgQWJzdHJhY3RQYWdlKHV0aWwuUmVjdGFuZ3VsYXIpOgorIAorICAgICBkZWYgZ3Jv dXAoc2VsZik6CisgICAgICAgICAiIiJSZXR1cm4gdGhlIGdyb3VwIHRoZSBwYWdlIGJlbG9uZ3Mg dG8uCistICAgICAgICAKKysKKyAgICAgICAgIFRoaXMgY291bGQgYmUgc29tZSBkb2N1bWVudCBz dHJ1Y3R1cmUsIHNvIHRoYXQgZGlmZmVyZW50IFBhZ2Ugb2JqZWN0cworICAgICAgICAgY291bGQg cmVmZXIgdG8gdGhlIHNhbWUgZ3JhcGhpY2FsIGNvbnRlbnRzLCBwcmV2ZW50aW5nIGRvdWJsZSBj YWNoaW5nLgorLSAgICAgICAgCisrCisgICAgICAgICBUaGlzIG9iamVjdCBpcyB1c2VkIHRvZ2V0 aGVyIHdpdGggdGhlIHZhbHVlIHJldHVybmVkIGJ5IGlkZW50KCkgYXMgYSBrZXkKKyAgICAgICAg IHRvIGNhY2hlIHRoZSBwYWdlLiBUaGUgaWRlYSBpcyB0aGF0IHRoZSBjb250ZW50cyBvZiB0aGUg cGFnZSBhcmUKKyAgICAgICAgIHVuaXF1ZWx5IGlkZW50aWZpZWQgYnkgdGhlIG9iamVjdHMgcmV0 dXJuZWQgYnkgZ3JvdXAoKSBhbmQgaWRlbnQoKS4KKy0gICAgICAgIAorKworICAgICAgICAgVGhp cyB3YXksIHdoZW4gdGhlIHNhbWUgZG9jdW1lbnQgaXMgb3BlbmVkIGluIG11bHRpcGxlIHBhZ2Ug aW5zdGFuY2VzLAorICAgICAgICAgb25seSBvbmUgY29weSByZXNpZGVzIGluIHRoZSAoZ2xvYmFs KSBjYWNoZS4KKy0gICAgICAgIAorKworICAgICAgICAgQnkgZGVmYXVsdCwgdGhlIHBhZ2Ugb2Jq ZWN0IGl0c2VsZiBpcyByZXR1cm5lZC4KKy0gICAgICAgIAorKworICAgICAgICAgIiIiCisgICAg ICAgICByZXR1cm4gc2VsZgorLSAgICAgICAgCisrCisgICAgIGRlZiBpZGVudChzZWxmKToKKyAg ICAgICAgICIiIlJldHVybiBhIHZhbHVlIHRoYXQgaWRlbnRpZmllcyB0aGUgcGFnZSB3aXRoaW4g dGhlIGdyb3VwIHJldHVybmVkCisgICAgICAgICBieSBncm91cCgpLgorLSAgICAgICAgCisrCisg ICAgICAgICBCeSBkZWZhdWx0LCBOb25lIGlzIHJldHVybmVkLgorLSAgICAgICAgCisrCisgICAg ICAgICAiIiIKKyAgICAgICAgIHJldHVybiBOb25lCistICAgIAorKworICAgICBkZWYgbWFwVG9Q YWdlKHNlbGYsIHdpZHRoPU5vbmUsIGhlaWdodD1Ob25lKToKKyAgICAgICAgICIiIlJldHVybiBh IE1hcFRvUGFnZSBvYmplY3QsIHRoYXQgY2FuIG1hcCBvcmlnaW5hbCB0byBQYWdlIGNvb3JkaW5h dGVzLgorIAorQEAgLTQyNiwxMCArNDI2LDEwIEBAIGNsYXNzIEFic3RyYWN0UGFnZSh1dGlsLlJl Y3Rhbmd1bGFyKToKKyAKKyAgICAgZGVmIHRleHQoc2VsZiwgcmVjdCk6CisgICAgICAgICAiIiJJ bXBsZW1lbnQgdGhpcyBtZXRob2QgdG8gZ2V0IHRoZSB0ZXh0IGF0IHRoZSBzcGVjaWZpZWQgcmVj dGFuZ2xlLgorLSAgICAgICAgCisrCisgICAgICAgICBUaGUgcmVjdGFuZ2xlIHNob3VsZCBiZSBp biBwYWdlIGNvb3JkaW5hdGVzLiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbgorICAgICAgICAg c2ltcGx5IHJldHVybnMgYW4gZW1wdHkgc3RyaW5nLgorLSAgICAgICAgCisrCisgICAgICAgICAi IiIKKyAgICAgICAgIHJldHVybiAiIgorIAorQEAgLTQzNywyMiArNDM3LDIyIEBAIGNsYXNzIEFi c3RyYWN0UGFnZSh1dGlsLlJlY3Rhbmd1bGFyKToKKyAgICAgICAgICIiIkltcGxlbWVudCB0aGlz IG1ldGhvZCB0byBsb2FkIG91ciBsaW5rcy4iIiIKKyAgICAgICAgIGZyb20gLiBpbXBvcnQgbGlu aworICAgICAgICAgcmV0dXJuIGxpbmsuTGlua3MoKQorLSAgICAKKysKKyAgICAgZGVmIGxpbmtz KHNlbGYpOgorICAgICAgICAgIiIiUmV0dXJuIHRoZSBMaW5rcyBvYmplY3QsIGNvbnRhaW5pbmcg TGluayBvYmplY3RzLgorLSAgICAgICAgCisrCisgICAgICAgICBFdmVyeSBMaW5rIGRlbm90ZXMg YSBjbGlja2FibGUgYXJlYSBvbiBhIFBhZ2UsIGluIGNvb3JkaW5hdGVzIDAuMC0xLjAuCisgICAg ICAgICBUaGUgTGlua3Mgb2JqZWN0IG1ha2VzIGl0IHBvc3NpYmxlIHRvIHF1aWNrbHkgZmluZCBh IGxpbmsgb24gYSBQYWdlLgorICAgICAgICAgVGhpcyBpcyBjYWNoZWQgYWZ0ZXIgdGhlIGZpcnN0 IHJlcXVlc3QsIHlvdSBzaG91bGQgaW1wbGVtZW50IHRoZQorICAgICAgICAgZ2V0TGlua3MoKSBt ZXRob2QgdG8gbG9hZCB0aGUgbGlua3MuCistICAgICAgICAKKysKKyAgICAgICAgICIiIgorICAg ICAgICAgdHJ5OgorICAgICAgICAgICAgIHJldHVybiBzZWxmLl9saW5rcworICAgICAgICAgZXhj ZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgIGxpbmtzID0gc2VsZi5fbGlua3MgPSBz ZWxmLmdldExpbmtzKCkKKyAgICAgICAgIHJldHVybiBsaW5rcworLSAgICAKKysKKyAgICAgZGVm IGxpbmtzQXQoc2VsZiwgcG9pbnQpOgorICAgICAgICAgIiIiUmV0dXJuIGEgbGlzdCgpIG9mIHpl cm8gb3IgbW9yZSBsaW5rcyB0b3VjaGVkIGJ5IFFQb2ludCBwb2ludC4KKyAKK0BAIC00NjgsOSAr NDY4LDkgQEAgY2xhc3MgQWJzdHJhY3RQYWdlKHV0aWwuUmVjdGFuZ3VsYXIpOgorIAorICAgICBk ZWYgbGlua3NJbihzZWxmLCByZWN0KToKKyAgICAgICAgICIiIlJldHVybiBhbiB1bm9yZGVyZWQg c2V0IG9mIGxpbmtzIGVuY2xvc2VkIGluIHJlY3RhbmdsZS4KKy0gICAgICAgIAorKworICAgICAg ICAgVGhlIHJlY3RhbmdsZSBpcyBpbiBwYWdlIGNvb3JkaW5hdGVzLgorLSAgICAgICAgCisrCisg ICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLmxpbmtzKCkuaW5zaWRlKCpzZWxmLm1h cEZyb21QYWdlKDEsIDEpLnJlY3QocmVjdCkuZ2V0Q29vcmRzKCkpCisgCitAQCAtNDgxLDkgKzQ4 MSw5IEBAIGNsYXNzIEFic3RyYWN0UGFnZSh1dGlsLlJlY3Rhbmd1bGFyKToKKyAKKyBjbGFzcyBB YnN0cmFjdFJlbmRlcmVkUGFnZShBYnN0cmFjdFBhZ2UpOgorICAgICAiIiJBIFBhZ2UgdGhhdCBo YXMgYSByZW5kZXJlciB0aGF0IHBlcmZvcm1zIGNhY2hpbmcgYW5kIHBhaW50aW5nLgorLSAgICAK KysKKyAgICAgVGhlIHJlbmRlcmVyIGxpdmVzIGluIHRoZSByZW5kZXJlciBhdHRyaWJ1dGUuCist ICAgIAorKworICAgICAiIiIKKyAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlbmRlcmVyPU5vbmUp OgorICAgICAgICAgaWYgcmVuZGVyZXIgaXMgbm90IE5vbmU6CitkaWZmIC0tZ2l0IGEvZnJlc2Nv YmFsZGlfYXBwL3FwYWdldmlldy9wb3BwbGVyLnB5IGIvZnJlc2NvYmFsZGlfYXBwL3FwYWdldmll dy9wb3BwbGVyLnB5CitpbmRleCAyNjc2ODM1Ni4uODEwZGJjYTUgMTAwNjQ0CistLS0gYS9mcmVz Y29iYWxkaV9hcHAvcXBhZ2V2aWV3L3BvcHBsZXIucHkKKysrKyBiL2ZyZXNjb2JhbGRpX2FwcC9x cGFnZXZpZXcvcG9wcGxlci5weQorQEAgLTI1OSw3ICsyNTksNyBAQCBjbGFzcyBQb3BwbGVyUmVu ZGVyZXIocmVuZGVyLkFic3RyYWN0UmVuZGVyZXIpOgorICAgICAgICAgKFNlZSBBYnN0cmFjdFBh Z2UucHJpbnQoKS4pCisgCisgICAgICAgICAiIiIKKy0gICAgICAgIHNvdXJjZSA9IHNlbGYubWFw KGtleSwgcGFnZS5wYWdlUmVjdCgpKS5tYXBSZWN0KFFSZWN0RigqdGlsZSkpCisrICAgICAgICBz b3VyY2UgPSBzZWxmLm1hcChrZXksIHBhZ2UucGFnZVJlY3QoKSkubWFwUmVjdChRUmVjdEYoKnRp bGUpKS50b1JlY3QoKSAgICMgcm91bmRlZAorICAgICAgICAgdGFyZ2V0ID0gUVJlY3RGKDAsIDAs IHRpbGUudywgdGlsZS5oKQorICAgICAgICAgaWYga2V5LnJvdGF0aW9uICYgMToKKyAgICAgICAg ICAgICB0YXJnZXQuc2V0U2l6ZSh0YXJnZXQuc2l6ZSgpLnRyYW5zcG9zZWQoKSkKK2RpZmYgLS1n aXQgYS9mcmVzY29iYWxkaV9hcHAvcXBhZ2V2aWV3L3Njcm9sbGFyZWEucHkgYi9mcmVzY29iYWxk aV9hcHAvcXBhZ2V2aWV3L3Njcm9sbGFyZWEucHkKK2luZGV4IDVhMGM1NjMxLi42NzIyYTZkYiAx MDA2NDQKKy0tLSBhL2ZyZXNjb2JhbGRpX2FwcC9xcGFnZXZpZXcvc2Nyb2xsYXJlYS5weQorKysr IGIvZnJlc2NvYmFsZGlfYXBwL3FwYWdldmlldy9zY3JvbGxhcmVhLnB5CitAQCAtMzY1LDkgKzM2 NSw5IEBAIGNsYXNzIFNjcm9sbEFyZWEoUUFic3RyYWN0U2Nyb2xsQXJlYSk6CisgICAgICAgICAg ICAgICAgIHNwZWVkID0gc3BlZWQgKiAxMDAwIC8gc2VsZi5zY3JvbGx1cGRhdGVzcGVyc2VjIC8g dGltZQorICAgICAgICAgICAgICAgICAjIGNvbXB1dGUgZGlmZiB0byBzY3JvbGwKKyAgICAgICAg ICAgICAgICAgc3ggPSBhYnMoc3BlZWQueCgpKQorLSAgICAgICAgICAgICAgICBkaWZmeCA9IHN4 ICogKHN4ICsgMSkgLyAyCisrICAgICAgICAgICAgICAgIGRpZmZ4ID0gaW50KHN4ICogKHN4ICsg MSkgLyAyKQorICAgICAgICAgICAgICAgICBzeSA9IGFicyhzcGVlZC55KCkpCistICAgICAgICAg ICAgICAgIGRpZmZ5ID0gc3kgKiAoc3kgKyAxKSAvIDIKKysgICAgICAgICAgICAgICAgZGlmZnkg PSBpbnQoc3kgKiAoc3kgKyAxKSAvIDIpCisgICAgICAgICAgICAgICAgIGlmIHNwZWVkLngoKSA8 IDA6IGRpZmZ4ID0gLWRpZmZ4CisgICAgICAgICAgICAgICAgIGlmIHNwZWVkLnkoKSA8IDA6IGRp ZmZ5ID0gLWRpZmZ5CisgICAgICAgICAgICAgICAgIHNlbGYua2luZXRpY1Njcm9sbEJ5KFFQb2lu dChkaWZmeCwgZGlmZnkpKQorQEAgLTQ0NCw4ICs0NDQsOCBAQCBjbGFzcyBLaW5ldGljU2Nyb2xs ZXIoU2Nyb2xsZXIpOgorICAgICAgICAgZHkgPSBkaWZmLnkoKQorIAorICAgICAgICAgIyBzb2x2 ZSBzcGVlZCooc3BlZWQrMSkvMiA9IGRlbHRhIHRvIGVuc3VyZSAxKzIrMysuLi4rc3BlZWQgaXMg YXMgY2xvc2UgYXMgcG9zc2libGUgdW5kZXIgZGVsdGEuLgorLSAgICAgICAgc3ggPSAobWF0aC5z cXJ0KDEgKyA4ICogYWJzKGR4KSkgLSAxKSAvLyAyCistICAgICAgICBzeSA9IChtYXRoLnNxcnQo MSArIDggKiBhYnMoZHkpKSAtIDEpIC8vIDIKKysgICAgICAgIHN4ID0gaW50KG1hdGguc3FydCgx ICsgOCAqIGFicyhkeCkpIC0gMSkgLy8gMgorKyAgICAgICAgc3kgPSBpbnQobWF0aC5zcXJ0KDEg KyA4ICogYWJzKGR5KSkgLSAxKSAvLyAyCisgCisgICAgICAgICAjIGNvbXB1dGUgdGhlIGFtb3Vu dCBvZiBkaXNwbGFjZW1lbnQgc3RpbGwgbmVlZGVkIGJlY2F1c2Ugd2UncmUgZGVhbGluZyB3aXRo IGludGVnZXIgdmFsdWVzLgorICAgICAgICAgIyBTaW5jZSB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxl ZCBmb3IgZXhhY3QgbW92ZXMgKG5vdCBmcmVlIHNjcm9sbGluZykKKy0tIAorMi4zMy4xCisKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvZnJlc2NvYmFsZGkvcGF0Y2hlcy8wMDAzLU1vcmUtY2hhbmdlcy10 by1maXgtZXJyb3JzLXVuZGVyLVB5dGhvbi0zLjEwLnBhdGNoIGIvc3JjcGtncy9mcmVzY29iYWxk aS9wYXRjaGVzLzAwMDMtTW9yZS1jaGFuZ2VzLXRvLWZpeC1lcnJvcnMtdW5kZXItUHl0aG9uLTMu MTAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iMjEyYjUx NWU4YWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2ZyZXNjb2JhbGRpL3BhdGNoZXMvMDAw My1Nb3JlLWNoYW5nZXMtdG8tZml4LWVycm9ycy11bmRlci1QeXRob24tMy4xMC5wYXRjaApAQCAt MCwwICsxLDUwIEBACitGcm9tIDRlOTEwZTU1ZjY3MDBmYWZlMTY4M2FmNzcwZTRiYzI5OWNkZDcx YTIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBEZXh0ZXIgR2Fvbi1TaGF0Zm9yZCA8 ZGV4dGVyQGdhb25zaGF0Zm9yZC5jYT4KK0RhdGU6IFdlZCwgMTAgTm92IDIwMjEgMTc6MDQ6MzQg LTA1MDAKK1N1YmplY3Q6IFtQQVRDSF0gTW9yZSBjaGFuZ2VzIHRvIGZpeCBlcnJvcnMgdW5kZXIg UHl0aG9uIDMuMTAKKworVGhlcmUgYXJlIGEgZmV3IGVycm9ycyB0aGF0IGFyZSBlbmNvdW50ZXJl ZCB3aGVuIGVuZ3JhdmluZyBhIHNjb3JlIGluCit0aGUgZWRpdG9yIHRoYXQgd2VyZSBub3QgYWRk cmVzc2VkIGluIHRoZSBjaGFuZ2VzIG1hZGUgYnkgd2Jzb2Z0CistLS0KKyBmcmVzY29iYWxkaV9h cHAvdmlld21hbmFnZXIucHkgICAgICAgICAgICB8IDQgKystLQorIGZyZXNjb2JhbGRpX2FwcC93 aWRnZXRzL2xpbmVudW1iZXJhcmVhLnB5IHwgMiArLQorIDIgZmlsZXMgY2hhbmdlZCwgMyBpbnNl cnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZnJlc2NvYmFsZGlfYXBw L3ZpZXdtYW5hZ2VyLnB5IGIvZnJlc2NvYmFsZGlfYXBwL3ZpZXdtYW5hZ2VyLnB5CitpbmRleCBl MTI5NGM5MS4uMDQ2YzcwZGYgMTAwNjQ0CistLS0gYS9mcmVzY29iYWxkaV9hcHAvdmlld21hbmFn ZXIucHkKKysrKyBiL2ZyZXNjb2JhbGRpX2FwcC92aWV3bWFuYWdlci5weQorQEAgLTMzMiw3ICsz MzIsNyBAQCBjbGFzcyBWaWV3TWFuYWdlcihRU3BsaXR0ZXIpOgorICAgICAgICAgICAgIHNwbGl0 dGVyLnNldE9yaWVudGF0aW9uKG9yaWVudGF0aW9uKQorICAgICAgICAgICAgIHNpemUgPSBzcGxp dHRlci5zaXplcygpWzBdCisgICAgICAgICAgICAgc3BsaXR0ZXIuYWRkV2lkZ2V0KG5ld3NwYWNl KQorLSAgICAgICAgICAgIHNwbGl0dGVyLnNldFNpemVzKFtzaXplIC8gMiwgc2l6ZSAvIDJdKQor KyAgICAgICAgICAgIHNwbGl0dGVyLnNldFNpemVzKFtzaXplIC8vIDIsIHNpemUgLy8gMl0pCisg ICAgICAgICBlbGlmIHNwbGl0dGVyLm9yaWVudGF0aW9uKCkgPT0gb3JpZW50YXRpb246CisgICAg ICAgICAgICAgaW5kZXggPSBzcGxpdHRlci5pbmRleE9mKHZpZXdzcGFjZSkKKyAgICAgICAgICAg ICBzcGxpdHRlci5pbnNlcnRXaWRnZXQoaW5kZXggKyAxLCBuZXdzcGFjZSkKK0BAIC0zNDYsNyAr MzQ2LDcgQEAgY2xhc3MgVmlld01hbmFnZXIoUVNwbGl0dGVyKToKKyAgICAgICAgICAgICBzcGxp dHRlci5zZXRTaXplcyhzaXplcykKKyAgICAgICAgICAgICBzaXplID0gbmV3c3BsaXR0ZXIuc2l6 ZXMoKVswXQorICAgICAgICAgICAgIG5ld3NwbGl0dGVyLmFkZFdpZGdldChuZXdzcGFjZSkKKy0g ICAgICAgICAgICBuZXdzcGxpdHRlci5zZXRTaXplcyhbc2l6ZSAvIDIsIHNpemUgLyAyXSkKKysg ICAgICAgICAgICBuZXdzcGxpdHRlci5zZXRTaXplcyhbc2l6ZSAvLyAyLCBzaXplIC8vIDJdKQor ICAgICAgICAgc2VsZi5fdmlld1NwYWNlcy5pbnNlcnQoMCwgbmV3c3BhY2UpCisgICAgICAgICBu ZXdzcGFjZS5zaG93RG9jdW1lbnQodmlld3NwYWNlLmRvY3VtZW50KCkpCisgICAgICAgICBpZiBh Y3RpdmU6CitkaWZmIC0tZ2l0IGEvZnJlc2NvYmFsZGlfYXBwL3dpZGdldHMvbGluZW51bWJlcmFy ZWEucHkgYi9mcmVzY29iYWxkaV9hcHAvd2lkZ2V0cy9saW5lbnVtYmVyYXJlYS5weQoraW5kZXgg ZmYzOGJjYzYuLmFhMTMzYWM3IDEwMDY0NAorLS0tIGEvZnJlc2NvYmFsZGlfYXBwL3dpZGdldHMv bGluZW51bWJlcmFyZWEucHkKKysrKyBiL2ZyZXNjb2JhbGRpX2FwcC93aWRnZXRzL2xpbmVudW1i ZXJhcmVhLnB5CitAQCAtODAsNyArODAsNyBAQCBjbGFzcyBMaW5lTnVtYmVyQXJlYShRV2lkZ2V0 KToKKyAgICAgICAgICAgICBpZiBnZW9tLnRvcCgpID49IGV2LnJlY3QoKS5ib3R0b20oKToKKyAg ICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICBpZiBibG9jay5pc1Zpc2libGUoKSBh bmQgZ2VvbS5ib3R0b20oKSA+IGV2LnJlY3QoKS50b3AoKSArIDE6CistICAgICAgICAgICAgICAg IHJlY3QubW92ZVRvcChnZW9tLnRvcCgpKQorKyAgICAgICAgICAgICAgICByZWN0Lm1vdmVUb3Ao aW50KGdlb20udG9wKCkpKQorICAgICAgICAgICAgICAgICB0ZXh0ID0gZm9ybWF0KGJsb2NrLmJs b2NrTnVtYmVyKCkgKyAxLCAnZCcpCisgICAgICAgICAgICAgICAgIHBhaW50ZXIuZHJhd1RleHQo cmVjdCwgUXQuQWxpZ25SaWdodCwgdGV4dCkKKyAgICAgICAgICAgICBibG9jayA9IGJsb2NrLm5l eHQoKQorLS0gCisyLjMzLjEKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mcmVzY29iYWxkaS90ZW1w bGF0ZSBiL3NyY3BrZ3MvZnJlc2NvYmFsZGkvdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi5iZjYxY2YxMTU1YzYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL2ZyZXNjb2JhbGRpL3RlbXBsYXRlCkBAIC0wLDAgKzEsMjAgQEAKKyMgVGVtcGxhdGUgZmls ZSBmb3IgJ2ZyZXNjb2JhbGRpJworcGtnbmFtZT1mcmVzY29iYWxkaQordmVyc2lvbj0zLjEuMwor cmV2aXNpb249MQorYnVpbGRfc3R5bGU9cHl0aG9uMy1tb2R1bGUKK21ha2VfY2hlY2tfdGFyZ2V0 PSJjaGVjayIKK2hvc3RtYWtlZGVwZW5kcz0icHl0aG9uMy1zZXR1cHRvb2xzIGdldHRleHQiCitk ZXBlbmRzPSJweXRob24zLVB5UXQ1IHB5dGhvbjMtUHlRdDUtc3ZnIHBvcHBsZXItcXQ1IHBvcnRt aWRpCisgcHl0aG9uMy1jdXBzIHB5dGhvbjMtbHkgbGlseXBvbmQgcHl0aG9uMy1wb3BwbGVyLXF0 NSIKK3Nob3J0X2Rlc2M9IlBvd2VyZnVsLCBsaWdodHdlaWdodCBhbmQgZWFzeSB0byB1c2UgTGls eVBvbmQgc2hlZXQgbXVzaWMgdGV4dCBlZGl0b3IiCittYWludGFpbmVyPSJjaGlsaS1iIDxkZXh0 ZXIuZ2FvbnNoYXRmb3JkQGdtYWlsLmNvbT4iCitsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgor aG9tZXBhZ2U9Imh0dHBzOi8vZnJlc2NvYmFsZGkub3JnLyIKK2NoYW5nZWxvZz0iaHR0cHM6Ly9n aXRodWIuY29tL2ZyZXNjb2JhbGRpL2ZyZXNjb2JhbGRpL2Jsb2IvdiR7dmVyc2lvbn0vQ2hhbmdl TG9nIgorZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vZnJlc2NvYmFsZGkvZnJlc2NvYmFs ZGkvYXJjaGl2ZS92JHt2ZXJzaW9ufS50YXIuZ3oiCitjaGVja3N1bT1mOTcyNTZjZTE1YWI2MjE1 OTM1MzZlMjE5NTg0YTJlZDc0NGMxOTMzMTQ4YWM3ZWQ5OGZjZWY2YTNhOTUxMGE2CisKK3ByZV9i dWlsZCgpIHsKKwltYWtlIC1DIGxpbnV4Cit9Cg== --===============4520493379866636038==--