From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id B2D3F1FF13E for ; Fri, 23 Jan 2026 09:18:48 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 93EF05269; Fri, 23 Jan 2026 09:19:06 +0100 (CET) Mime-Version: 1.0 Date: Fri, 23 Jan 2026 16:18:52 +0800 Message-Id: From: "Kefu Chai" To: "Kefu Chai" , , =?utf-8?b?RmFiaWFuLkdyw7xuYmljaGxlcg==?= , "Thomas Lamprecht" X-Mailer: aerc 0.20.0 References: <20260123075619.2731724-3-k.chai@proxmox.com> In-Reply-To: <20260123075619.2731724-3-k.chai@proxmox.com> X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1769156278924 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.020 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment KAM_LOTSOFHASH 0.25 Emails with lots of hash-like gibberish KAM_SHORT 0.001 Use of a URL Shortener for very short URL RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [quay.io, build.py, parent.name, cephadm.py, ppath.name, docker.io] Subject: Re: [pve-devel] [PATCH ceph 1/4 v5] cherry-pick changes to use system packages for bundled deps X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox VE development discussion Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" SGkgRmFiaWFuLAoKQ291bGQgeW91IGhlbHAgcmV2aWV3IHRoaXMgY29tbWl0PyBUaGlzIGlzIHRo ZSBvbmUgd2Ugd2VyZSB0ZXN0aW5nIHRocmVlCm1vbnRocyBhZ286IGh0dHBzOi8vZ2l0aHViLmNv bS9jZXBoL2NlcGgvcHVsbC82NTkzNQpJIGhhZCBob3BlZCB0aGF0IHRoZSBiYWNrcG9ydCBvZiBo dHRwczovL2dpdGh1Yi5jb20vY2VwaC9jZXBoL3B1bGwvNjYyNDgKd291bGQgYWxsb3cgdXMgdG8g ZGlzcGVuc2Ugd2l0aCB0aGlzIGNoYW5nZSBieSBpbXBvcnRpbmcgdGhlIG5ldyByZWxlYXNlCm9m IHRlbnRhY2xlLiBVbmZvcnR1bmF0ZWx5LCB0aGUgQ2VwaCB1cHN0cmVhbSBsYWIgbWlncmF0aW9u IGRlbGF5ZWQKZXZlcnl0aGluZywgc28gd2UgbmVlZCB0byBoYW5kbGUgdGhpcyBvdXJzZWx2ZXMu IEhlbmNlIHRoaXMgcGF0Y2guCgpIaSBUaG9tYXMsCgpDb3VsZCB5b3UgcGxlYXNlIGhlbHAgcmV2 aWV3IHRoaXMgY2hhbmdlc2V0PyBJIHNob3VsZCBoYXZlIHNwbGl0IGl0IGludG8Kc21hbGxlciBi YXRjaGVzIHNpbmNlIHRoZXkgc2VydmUgZGlmZmVyZW50IHB1cnBvc2VzLCBidXQgSSB3YXMgY29u Y2VybmVkCmFib3V0IHBvdGVudGlhbCBjb25mbGljdHMgYmV0d2VlbiB0aGVtLCBzbyBJJ3ZlIHNl bnQgdGhlbSBpbiB0aGUgc2FtZQpzZXJpZXMgaW5zdGVhZC4KCk9uIEZyaSBKYW4gMjMsIDIwMjYg YXQgMzo1NiBQTSBDU1QsIEtlZnUgQ2hhaSB3cm90ZToKPiBQcmV2aW91c2x5LCBjZXBoYWRtJ3Mg YnVpbGQgcHJvY2VzcyBwdWxsZWQgZGVwZW5kZW5jaWVzIGZyb20gUHlQSSwKPiB3aGljaCBmYWls ZWQgaW4gZW52aXJvbm1lbnRzIHdpdGggcmVzdHJpY3RlZCBuZXR3b3JrIGFjY2Vzcy4gVGhpcwo+ IGNoYW5nZSBiYWNrcG9ydHMgdXBzdHJlYW0gaW1wcm92ZW1lbnRzIHRoYXQgZW5hYmxlIGJ1aWxk aW5nIGNlcGhhZG0KPiB1c2luZyBzeXN0ZW0gcGFja2FnZXMgaW5zdGVhZCwgbWlycm9yaW5nIHRo ZSBleGlzdGluZyBSUE0gcGFja2FnaW5nCj4gd29ya2Zsb3cuCj4KPiBBbmQgdGhlIHZlbmRvcmVk IEFycm93IHB1bGxlZCB4c2ltZCBmcm9tIEdpdEh1YiwgdGhpcyBhbHNvIGZhaWxlZCBpbgo+IGJ1 aWxkaW5nIGVudmlyb25tZW50IHdpdGhvdXQgbmV0d29yayBhY2Nlc3MuIFRoaXMgY2hhbmdlIGJh Y2twb3J0cwo+IHVwc3RyZWFtIGltcHJvdmVtZW50cyBlbmFibGluZyB0aGUgYnVpbGQgdG8gdXNl IGxpYnhzaW1kLWRldiBwYWNrYWdlCj4gd2hlbiBidWlsZGluZyBkZWJpYW4gcGFja2FnZXMuCj4K PiBCYWNrcG9ydGVkIGNoYW5nZXM6Cj4gLSBodHRwczovL2dpdGh1Yi5jb20vY2VwaC9jZXBoL3B1 bGwvNjYyNTYgLSBVc2Ugc3lzdGVtIHBhY2thZ2VzIGZvcgo+ICAgY2VwaGFkbSBidW5kbGVkIGRl cGVuZGVuY2llcwo+IC0gaHR0cHM6Ly9naXRodWIuY29tL2NlcGgvY2VwaC9wdWxsLzY2MjQ4IC0g QWRkIGxpYnhzaW1kLWRldiBidWlsZAo+ICAgZGVwZW5kZW5jeSBmb3IgdmVuZG9yZWQgQXJyb3cK PiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9jZXBoL2NlcGgvcHVsbC82NTI5MiAtIGNlcGhhZG06IGZp eCBidWlsZGluZwo+ICAgcnBtLXNvdXJjZWQgY2VwaGFkbSB6aXBwYXBwIG9uIGVsMTAKPgo+IE5v dGU6IFRlc3QgY29tbWl0cyBmcm9tIHRoZXNlIFBScyBhcmUgZXhjbHVkZWQgZnJvbSB0aGlzIGJh Y2twb3J0Lgo+Cj4gU2lnbmVkLW9mZi1ieTogS2VmdSBDaGFpIDxrLmNoYWlAcHJveG1veC5jb20+ Cj4gLS0tCj4gIC4uLi1pc3N1ZXMtcnVubmluZy1leGlzdGluZy1jZXBoYWRtLWJ1aS5wYXRjaCB8 ICA2NiArKysrKwo+ICAuLi5yb290X2VudHJpZXMtcG9wdWxhdGlvbi1pbi12ZXJzaW9uLWMucGF0 Y2ggfCAgNjIgKysrKysKPiAgLi4uY2VwaGFkbS1ycG0tYmFzZWQtYnVpbGRzLXdpdGhvdXQtdG9w LnBhdGNoIHwgIDg5ICsrKysrKwo+ICAuLi5kLURlYmlhbi1wYWNrYWdlLXN1cHBvcnQtZm9yLWJ1 bmRsZWQucGF0Y2ggfCAyNjEgKysrKysrKysrKysrKysrKysrCj4gIC4uLm0tcGFja2FnZXMtZm9y LWNlcGhhZG0tYnVuZGxlZC1kZXBlbi5wYXRjaCB8ICA1NCArKysrCj4gIC4uLi1Vc2UtQVVUTy1t b2RlLWZvci14c2ltZC1kZXBlbmRlbmN5LS5wYXRjaCB8ICA1NSArKysrCj4gIC4uLmRkLWxpYnhz aW1kLWRldi1idWlsZC1kZXBlbmRlbmN5LWZvci5wYXRjaCB8ICA0MSArKysKPiAgcGF0Y2hlcy9z ZXJpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA4ICsKPiAgOCBmaWxlcyBj aGFuZ2VkLCA2MzYgaW5zZXJ0aW9ucygrKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy8w MDQyLWNlcGhhZG0tZml4LXNvbWUtaXNzdWVzLXJ1bm5pbmctZXhpc3RpbmctY2VwaGFkbS1idWku cGF0Y2gKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvMDA0My1jZXBoYWRtLWZpeC16aXBf cm9vdF9lbnRyaWVzLXBvcHVsYXRpb24taW4tdmVyc2lvbi1jLnBhdGNoCj4gIGNyZWF0ZSBtb2Rl IDEwMDY0NCBwYXRjaGVzLzAwNDQtY2VwaGFkbS1zdXBwb3J0LWNlcGhhZG0tcnBtLWJhc2VkLWJ1 aWxkcy13aXRob3V0LXRvcC5wYXRjaAo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy8wMDQ1 LWNlcGhhZG0tYnVpbGQtQWRkLURlYmlhbi1wYWNrYWdlLXN1cHBvcnQtZm9yLWJ1bmRsZWQucGF0 Y2gKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvMDA0Ni1kZWJpYW4tVXNlLXN5c3RlbS1w YWNrYWdlcy1mb3ItY2VwaGFkbS1idW5kbGVkLWRlcGVuLnBhdGNoCj4gIGNyZWF0ZSBtb2RlIDEw MDY0NCBwYXRjaGVzLzAwNDctY21ha2UtQnVpbGRBcnJvdy1Vc2UtQVVUTy1tb2RlLWZvci14c2lt ZC1kZXBlbmRlbmN5LS5wYXRjaAo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy8wMDQ4LWRl Ymlhbi1jb250cm9sLUFkZC1saWJ4c2ltZC1kZXYtYnVpbGQtZGVwZW5kZW5jeS1mb3IucGF0Y2gK Pgo+IGRpZmYgLS1naXQgYS9wYXRjaGVzLzAwNDItY2VwaGFkbS1maXgtc29tZS1pc3N1ZXMtcnVu bmluZy1leGlzdGluZy1jZXBoYWRtLWJ1aS5wYXRjaCBiL3BhdGNoZXMvMDA0Mi1jZXBoYWRtLWZp eC1zb21lLWlzc3Vlcy1ydW5uaW5nLWV4aXN0aW5nLWNlcGhhZG0tYnVpLnBhdGNoCj4gbmV3IGZp bGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMC4uYzYyMDhiMGRiMmEKPiAtLS0gL2Rl di9udWxsCj4gKysrIGIvcGF0Y2hlcy8wMDQyLWNlcGhhZG0tZml4LXNvbWUtaXNzdWVzLXJ1bm5p bmctZXhpc3RpbmctY2VwaGFkbS1idWkucGF0Y2gKPiBAQCAtMCwwICsxLDY2IEBACj4gK0Zyb20g MjY4NWY2YzM1MjQ1ZDAzM2U3M2UxNmVjZTNlMzU2ZmNlYWQ0NGNlYSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKPiArRnJvbTogSm9obiBNdWxsaWdhbiA8am11bGxpZ2FuQHJlZGhhdC5jb20+Cj4g K0RhdGU6IFRodSwgMjEgQXVnIDIwMjUgMTI6MzA6NTUgLTA0MDAKPiArU3ViamVjdDogW1BBVENI IDQyLzQ2XSBjZXBoYWRtOiBmaXggc29tZSBpc3N1ZXMgcnVubmluZyBleGlzdGluZyBjZXBoYWRt IGJ1aWxkCj4gKyB0ZXN0cwo+ICsKPiArQXMgdGltZSBoYXMgbWFyY2hlZCBvbiBhbmQgcGVvcGxl IGNoYW5nZWQgdGhpbmdzIG91ciB0ZXN0cyBubyBsb25nZXIKPiArbWF0Y2ggdGhlIGV4cGVjdGVk IGlucHV0cy4KPiArCj4gK1NpZ25lZC1vZmYtYnk6IEpvaG4gTXVsbGlnYW4gPGptdWxsaWdhbkBy ZWRoYXQuY29tPgo+ICsoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAzMWM4MDEwZmFhNDE3Y2E1 MzYxNGJkMzAzNzlhOWI5YzBjOTE5OWRlKQo+ICstLS0KPiArIHNyYy9jZXBoYWRtL3Rlc3RzL2J1 aWxkL3Rlc3RfY2VwaGFkbV9idWlsZC5weSB8IDE4ICsrKysrKysrKysrKy0tLS0tLQo+ICsgMSBm aWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCj4gKwo+ICtkaWZm IC0tZ2l0IGEvc3JjL2NlcGhhZG0vdGVzdHMvYnVpbGQvdGVzdF9jZXBoYWRtX2J1aWxkLnB5IGIv c3JjL2NlcGhhZG0vdGVzdHMvYnVpbGQvdGVzdF9jZXBoYWRtX2J1aWxkLnB5Cj4gK2luZGV4IGMy OTk1YTc2ZDRiLi45YmVlZjY3ZmZlMCAxMDA2NDQKPiArLS0tIGEvc3JjL2NlcGhhZG0vdGVzdHMv YnVpbGQvdGVzdF9jZXBoYWRtX2J1aWxkLnB5Cj4gKysrKyBiL3NyYy9jZXBoYWRtL3Rlc3RzL2J1 aWxkL3Rlc3RfY2VwaGFkbV9idWlsZC5weQo+ICtAQCAtMzQsMTIgKzM0LDEyIEBAIENPTlRBSU5F UlMgPSB7Cj4gKyAgICAgfSwKPiArICAgICAndWJ1bnR1LTIwLjA0Jzogewo+ICsgICAgICAgICAn bmFtZSc6ICdjZXBoYWRtLWJ1aWxkLXRlc3Q6dWJ1bnR1LTIwLTA0LXB5MycsCj4gKy0gICAgICAg ICdiYXNlX2ltYWdlJzogJ3F1YXkuaW8vbGlicmFyeS91YnVudHU6MjAuMDQnLAo+ICsrICAgICAg ICAnYmFzZV9pbWFnZSc6ICdkb2NrZXIuaW8vbGlicmFyeS91YnVudHU6MjAuMDQnLAo+ICsgICAg ICAgICAnc2NyaXB0JzogJ2FwdCB1cGRhdGUgJiYgYXB0IGluc3RhbGwgLXkgcHl0aG9uMy12ZW52 JywKPiArICAgICB9LAo+ICsgICAgICd1YnVudHUtMjIuMDQnOiB7Cj4gKyAgICAgICAgICduYW1l JzogJ2NlcGhhZG0tYnVpbGQtdGVzdDp1YnVudHUtMjItMDQtcHkzJywKPiArLSAgICAgICAgJ2Jh c2VfaW1hZ2UnOiAncXVheS5pby9saWJyYXJ5L3VidW50dToyMi4wNCcsCj4gKysgICAgICAgICdi YXNlX2ltYWdlJzogJ2RvY2tlci5pby9saWJyYXJ5L3VidW50dToyMi4wNCcsCj4gKyAgICAgICAg ICdzY3JpcHQnOiAnYXB0IHVwZGF0ZSAmJiBhcHQgaW5zdGFsbCAteSBweXRob24zLXZlbnYnLAo+ ICsgICAgIH0sCj4gKyB9Cj4gK0BAIC0xMjgsOCArMTI4LDggQEAgZGVmIHRlc3RfY2VwaGFkbV9i dWlsZChlbnYsIHNvdXJjZV9kaXIsIHRtcF9wYXRoKToKPiArICAgICBhc3NlcnQgYWxsKCdyZXF1 aXJlbWVudHNfZW50cnknIGluIHYgZm9yIHYgaW4gZGF0YVsnYnVuZGxlZF9wYWNrYWdlcyddKQo+ ICsgICAgIGFzc2VydCAnemlwX3Jvb3RfZW50cmllcycgaW4gZGF0YQo+ICsgICAgIHpyZSA9IGRh dGFbJ3ppcF9yb290X2VudHJpZXMnXQo+ICstICAgIGFzc2VydCBhbnkoZS5zdGFydHN3aXRoKCdK aW5qYTInKSBmb3IgZSBpbiB6cmUpCj4gKy0gICAgYXNzZXJ0IGFueShlLnN0YXJ0c3dpdGgoJ01h cmt1cFNhZmUnKSBmb3IgZSBpbiB6cmUpCj4gKysgICAgYXNzZXJ0IGFueShfZGlzdF9pbmZvKGUs ICdKaW5qYTInKSBmb3IgZSBpbiB6cmUpCj4gKysgICAgYXNzZXJ0IGFueShfZGlzdF9pbmZvKGUs ICdNYXJrdXBTYWZlJykgZm9yIGUgaW4genJlKQo+ICsgICAgIGFzc2VydCBhbnkoZS5zdGFydHN3 aXRoKCdqaW5qYTInKSBmb3IgZSBpbiB6cmUpCj4gKyAgICAgYXNzZXJ0IGFueShlLnN0YXJ0c3dp dGgoJ21hcmt1cHNhZmUnKSBmb3IgZSBpbiB6cmUpCj4gKyAgICAgYXNzZXJ0IGFueShlLnN0YXJ0 c3dpdGgoJ2NlcGhhZG1saWInKSBmb3IgZSBpbiB6cmUpCj4gK0BAIC0xODQsOSArMTg0LDE1IEBA IGRlZiB0ZXN0X2NlcGhhZG1fYnVpbGRfZnJvbV9ycG1zKGVudiwgc291cmNlX2RpciwgdG1wX3Bh dGgpOgo+ICsgICAgIGFzc2VydCBhbGwoJ3JlcXVpcmVtZW50c19lbnRyeScgaW4gdiBmb3IgdiBp biBkYXRhWydidW5kbGVkX3BhY2thZ2VzJ10pCj4gKyAgICAgYXNzZXJ0ICd6aXBfcm9vdF9lbnRy aWVzJyBpbiBkYXRhCj4gKyAgICAgenJlID0gZGF0YVsnemlwX3Jvb3RfZW50cmllcyddCj4gKy0g ICAgYXNzZXJ0IGFueShlLnN0YXJ0c3dpdGgoJ0ppbmphMicpIGZvciBlIGluIHpyZSkKPiArLSAg ICBhc3NlcnQgYW55KGUuc3RhcnRzd2l0aCgnTWFya3VwU2FmZScpIGZvciBlIGluIHpyZSkKPiAr KyAgICBhc3NlcnQgYW55KF9kaXN0X2luZm8oZSwgJ0ppbmphMicpIGZvciBlIGluIHpyZSkKPiAr KyAgICBhc3NlcnQgYW55KF9kaXN0X2luZm8oZSwgJ01hcmt1cFNhZmUnKSBmb3IgZSBpbiB6cmUp Cj4gKyAgICAgYXNzZXJ0IGFueShlLnN0YXJ0c3dpdGgoJ2ppbmphMicpIGZvciBlIGluIHpyZSkK PiArICAgICBhc3NlcnQgYW55KGUuc3RhcnRzd2l0aCgnbWFya3Vwc2FmZScpIGZvciBlIGluIHpy ZSkKPiArICAgICBhc3NlcnQgYW55KGUuc3RhcnRzd2l0aCgnY2VwaGFkbWxpYicpIGZvciBlIGlu IHpyZSkKPiArICAgICBhc3NlcnQgYW55KGUuc3RhcnRzd2l0aCgnX2NlcGhhZG1tZXRhJykgZm9y IGUgaW4genJlKQo+ICsrCj4gKysKPiArK2RlZiBfZGlzdF9pbmZvKGVudHJ5LCBuYW1lKToKPiAr KyAgICByZXR1cm4gKAo+ICsrICAgICAgICBlbnRyeS5zdGFydHN3aXRoKGVudHJ5KSBvciBlbnRy eS5zdGFydHN3aXRoKGVudHJ5Lmxvd2VyKCkpCj4gKysgICAgKSBhbmQgKGVudHJ5LmVuZHN3aXRo KCcuZGlzdC1pbmZvJykgb3IgZW50cnkuZW5kc3dpdGgoJy5lZ2ctaW5mbycpKQo+ICstLSAKPiAr Mi40Ny4zCj4gKwo+IGRpZmYgLS1naXQgYS9wYXRjaGVzLzAwNDMtY2VwaGFkbS1maXgtemlwX3Jv b3RfZW50cmllcy1wb3B1bGF0aW9uLWluLXZlcnNpb24tYy5wYXRjaCBiL3BhdGNoZXMvMDA0My1j ZXBoYWRtLWZpeC16aXBfcm9vdF9lbnRyaWVzLXBvcHVsYXRpb24taW4tdmVyc2lvbi1jLnBhdGNo Cj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMC4uN2EwYjFhMThkNjgK PiAtLS0gL2Rldi9udWxsCj4gKysrIGIvcGF0Y2hlcy8wMDQzLWNlcGhhZG0tZml4LXppcF9yb290 X2VudHJpZXMtcG9wdWxhdGlvbi1pbi12ZXJzaW9uLWMucGF0Y2gKPiBAQCAtMCwwICsxLDYyIEBA Cj4gK0Zyb20gMmMyMGFlOTVmMzJhMmJkZjc4NTc2MjUyZjFjOTE3MWYwMGEyNzkwZSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKPiArRnJvbTogS2VmdSBDaGFpIDxrLmNoYWlAcHJveG1veC5jb20+ Cj4gK0RhdGU6IE1vbiwgMTAgTm92IDIwMjUgMTI6MTE6MDggKzA4MDAKPiArU3ViamVjdDogW1BB VENIIDQzLzQ2XSBjZXBoYWRtOiBmaXggemlwX3Jvb3RfZW50cmllcyBwb3B1bGF0aW9uIGluIHZl cnNpb24KPiArIGNvbW1hbmQKPiArCj4gK1RoZSAnY2VwaGFkbSB2ZXJzaW9uIC0tdmVyYm9zZScg Y29tbWFuZCB3YXMgcmV0dXJuaW5nIGFuIGVtcHR5Cj4gK3ppcF9yb290X2VudHJpZXMgbGlzdCBi ZWNhdXNlIGl0IHJlbGllZCBvbiB0aGUgcHJpdmF0ZSAnX2ZpbGVzJwo+ICthdHRyaWJ1dGUgb2Yg emlwaW1wb3J0LnppcGltcG9ydGVyLCB3aGljaCBpcyBub3QgcmVsaWFibHkgcG9wdWxhdGVkCj4g K2Fjcm9zcyBQeXRob24gdmVyc2lvbnMuCj4gKwo+ICtUaGlzIGNvbW1pdCBmaXhlcyB0aGUgaXNz dWUgYnkgdXNpbmcgdGhlIHppcGZpbGUgbW9kdWxlIHRvIHByb3Blcmx5Cj4gK3JlYWQgdGhlIGFy Y2hpdmUgY29udGVudHMgdmlhIHRoZSBsb2FkZXIuYXJjaGl2ZSBwYXRoLiBUaGlzIGVuc3VyZXMK PiArdGhhdCB6aXBfcm9vdF9lbnRyaWVzIGlzIGNvcnJlY3RseSBwb3B1bGF0ZWQgd2l0aCB0aGUg cm9vdC1sZXZlbAo+ICtkaXJlY3RvcmllcyBpbiB0aGUgemlwYXBwLgo+ICsKPiArVGhpcyBmaXgg aXMgbmVjZXNzYXJ5IGZvciB0aGUgY2VwaGFkbSBidWlsZCB0ZXN0cyB0byBwcm9wZXJseSB2YWxp ZGF0ZQo+ICt0aGF0IGFsbCBleHBlY3RlZCBwYWNrYWdlcyBhbmQgbW9kdWxlcyBhcmUgaW5jbHVk ZWQgaW4gdGhlIGJ1aWx0IHppcGFwcC4KPiArCj4gK1NpZ25lZC1vZmYtYnk6IEtlZnUgQ2hhaSA8 ay5jaGFpQHByb3htb3guY29tPgo+ICsoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAyYzY4YzE0 OTZkYmI3Y2QwMWJmNzgzZTMxNTEwOTQwNDQ1MDQwYTM0KQo+ICstLS0KPiArIHNyYy9jZXBoYWRt L2NlcGhhZG0ucHkgfCAxNiArKysrKysrKysrKystLS0tCj4gKyAxIGZpbGUgY2hhbmdlZCwgMTIg aW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKPiArCj4gK2RpZmYgLS1naXQgYS9zcmMvY2Vw aGFkbS9jZXBoYWRtLnB5IGIvc3JjL2NlcGhhZG0vY2VwaGFkbS5weQo+ICtpbmRleCBmNzVhYWE4 NmRhYy4uOGQwOGM3MDA4NjggMTAwNzU1Cj4gKy0tLSBhL3NyYy9jZXBoYWRtL2NlcGhhZG0ucHkK PiArKysrIGIvc3JjL2NlcGhhZG0vY2VwaGFkbS5weQo+ICtAQCAtMTY4OCw2ICsxNjg4LDcgQEAg ZGVmIGNvbW1hbmRfdmVyc2lvbihjdHgpOgo+ICsgICAgICMgdHlwZTogKENlcGhhZG1Db250ZXh0 KSAtPiBpbnQKPiArICAgICBpbXBvcnQgaW1wb3J0bGliCj4gKyAgICAgaW1wb3J0IHppcGltcG9y dAo+ICsrICAgIGltcG9ydCB6aXBmaWxlCj4gKyAgICAgaW1wb3J0IHR5cGVzCj4gKyAKPiArICAg ICB2bW9kOiBPcHRpb25hbFt0eXBlcy5Nb2R1bGVUeXBlXQo+ICtAQCAtMTc0NCwxMCArMTc0NSwx NyBAQCBkZWYgY29tbWFuZF92ZXJzaW9uKGN0eCk6Cj4gKyAgICAgICAgICAgICBvdXRbJ2J1bmRs ZWRfcGFja2FnZXMnXSA9IGRlcHNfaW5mbwo+ICsgICAgICAgICBleGNlcHQgT1NFcnJvcjoKPiAr ICAgICAgICAgICAgIHBhc3MKPiArLSAgICAgICAgZmlsZXMgPSBnZXRhdHRyKGxvYWRlciwgJ19m aWxlcycsIHt9KQo+ICstICAgICAgICBvdXRbJ3ppcF9yb290X2VudHJpZXMnXSA9IHNvcnRlZCgK PiArLSAgICAgICAgICAgIHtwLnNwbGl0KCcvJylbMF0gZm9yIHAgaW4gZmlsZXMua2V5cygpfQo+ ICstICAgICAgICApCj4gKysgICAgICAgICMgVXNlIHppcGZpbGUgbW9kdWxlIHRvIHByb3Blcmx5 IHJlYWQgdGhlIGFyY2hpdmUgY29udGVudHMKPiArKyAgICAgICAgIyBsb2FkZXIuYXJjaGl2ZSBj b250YWlucyB0aGUgcGF0aCB0byB0aGUgemlwIGZpbGUKPiArKyAgICAgICAgdHJ5Ogo+ICsrICAg ICAgICAgICAgd2l0aCB6aXBmaWxlLlppcEZpbGUobG9hZGVyLmFyY2hpdmUsICdyJykgYXMgemY6 Cj4gKysgICAgICAgICAgICAgICAgZmlsZXMgPSB6Zi5uYW1lbGlzdCgpCj4gKysgICAgICAgICAg ICAgICAgb3V0Wyd6aXBfcm9vdF9lbnRyaWVzJ10gPSBzb3J0ZWQoCj4gKysgICAgICAgICAgICAg ICAgICAgIHtwLnNwbGl0KCcvJylbMF0gZm9yIHAgaW4gZmlsZXMgaWYgcH0KPiArKyAgICAgICAg ICAgICAgICApCj4gKysgICAgICAgIGV4Y2VwdCAoT1NFcnJvciwgemlwZmlsZS5CYWRaaXBGaWxl KToKPiArKyAgICAgICAgICAgICMgRmFsbGJhY2sgdG8gZW1wdHkgbGlzdCBpZiB3ZSBjYW4ndCBy ZWFkIHRoZSB6aXAKPiArKyAgICAgICAgICAgIG91dFsnemlwX3Jvb3RfZW50cmllcyddID0gW10K PiArIAo+ICsgICAgIGpzb24uZHVtcChvdXQsIHN5cy5zdGRvdXQsIGluZGVudD0yKQo+ICsgICAg IHByaW50KCkKPiArLS0gCj4gKzIuNDcuMwo+ICsKPiBkaWZmIC0tZ2l0IGEvcGF0Y2hlcy8wMDQ0 LWNlcGhhZG0tc3VwcG9ydC1jZXBoYWRtLXJwbS1iYXNlZC1idWlsZHMtd2l0aG91dC10b3AucGF0 Y2ggYi9wYXRjaGVzLzAwNDQtY2VwaGFkbS1zdXBwb3J0LWNlcGhhZG0tcnBtLWJhc2VkLWJ1aWxk cy13aXRob3V0LXRvcC5wYXRjaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAw MDAwMDAuLjZlMWI0ZGQyZTBlCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL3BhdGNoZXMvMDA0NC1j ZXBoYWRtLXN1cHBvcnQtY2VwaGFkbS1ycG0tYmFzZWQtYnVpbGRzLXdpdGhvdXQtdG9wLnBhdGNo Cj4gQEAgLTAsMCArMSw4OSBAQAo+ICtGcm9tIDVjZTcyMTc4YTc4MmRmZTJlODA2NDgwNjNiMDI1 YmEyM2Q5NmQ1ZDggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCj4gK0Zyb206IEpvaG4gTXVsbGln YW4gPGptdWxsaWdhbkByZWRoYXQuY29tPgo+ICtEYXRlOiBUaHUsIDIxIEF1ZyAyMDI1IDEyOjQ0 OjE3IC0wNDAwCj4gK1N1YmplY3Q6IFtQQVRDSCA0NC80Nl0gY2VwaGFkbTogc3VwcG9ydCBjZXBo YWRtIHJwbSBiYXNlZCBidWlsZHMgd2l0aG91dAo+ICsgdG9wX2xldmVsLnR4dAo+ICsKPiArU2ln bmVkLW9mZi1ieTogSm9obiBNdWxsaWdhbiA8am11bGxpZ2FuQHJlZGhhdC5jb20+Cj4gKyhjaGVy cnkgcGlja2VkIGZyb20gY29tbWl0IDI2YTQ5OWE4ZGEzMzlkODcwYWYxOTNlYTk2NDM2OGFmYmM4 NGM2OTQpCj4gKy0tLQo+ICsgc3JjL2NlcGhhZG0vYnVpbGQucHkgfCA1NiArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQo+ICsgMSBmaWxlIGNoYW5nZWQsIDQyIGlu c2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQo+ICsKPiArZGlmZiAtLWdpdCBhL3NyYy9jZXBo YWRtL2J1aWxkLnB5IGIvc3JjL2NlcGhhZG0vYnVpbGQucHkKPiAraW5kZXggNDNiYzU4YTQwMDMu LjAxYzkxZmMxNjgwIDEwMDc1NQo+ICstLS0gYS9zcmMvY2VwaGFkbS9idWlsZC5weQo+ICsrKysg Yi9zcmMvY2VwaGFkbS9idWlsZC5weQo+ICtAQCAtNDM0LDYgKzQzNCw0NyBAQCBkZWYgX2luc3Rh bGxfcnBtX2RlcHModGVtcGRpciwgY29uZmlnKToKPiArICAgICByZXR1cm4gZGluZm8KPiArIAo+ ICsgCj4gKytkZWYgX2dhdGhlcl9ycG1fcGFja2FnZV9kaXJzKHBhdGhzKToKPiArKyAgICAjID0g VGhlIGVhc3kgd2F5ID0KPiArKyAgICAjIHRoZSB0b3BfbGV2ZWwudHh0IGZpbGUgY2FuIGJlIHVz ZWQgdG8gZGV0ZXJtaW5lIHdoZXJlIHRoZSBweXRob24gcGFja2FnZXMKPiArKyAgICAjIGFjdHVh bGx5IGFyZS4gV2UgbmVlZCBhbGwgb2YgdGhvc2UgYW5kIHRoZSBtZXRhLWRhdGEgZGlyIChwYXJl bnQgb2YKPiArKyAgICAjIHRvcF9sZXZlbC50eHQpIHRvIGJlIGluY2x1ZGVkIGluIG91ciB6aXBh cHAKPiArKyAgICB0b3BfbGV2ZWwgPSBOb25lCj4gKysgICAgZm9yIHBhdGggaW4gcGF0aHM6Cj4g KysgICAgICAgIGlmIHBhdGguZW5kc3dpdGgoJ3RvcF9sZXZlbC50eHQnKToKPiArKyAgICAgICAg ICAgIHRvcF9sZXZlbCA9IHBhdGhsaWIuUGF0aChwYXRoKQo+ICsrICAgIGlmIHRvcF9sZXZlbDoK PiArKyAgICAgICAgbWV0YV9kaXIgPSB0b3BfbGV2ZWwucGFyZW50Cj4gKysgICAgICAgIHBrZ19k aXJzID0gWwo+ICsrICAgICAgICAgICAgdG9wX2xldmVsLnBhcmVudC5wYXJlbnQgLyBwCj4gKysg ICAgICAgICAgICBmb3IgcCBpbiB0b3BfbGV2ZWwucmVhZF90ZXh0KCkuc3BsaXRsaW5lcygpCj4g KysgICAgICAgIF0KPiArKyAgICAgICAgcmV0dXJuIG1ldGFfZGlyLCBwa2dfZGlycwo+ICsrICAg ICMgPSBUaGUgaGFyZCB3YXkgPQo+ICsrICAgICMgbG9vcCB0aHJvdWdoIHRoZSBkaXJlY3Rvcmll cyB0byBmaW5kIHRoZSAuZGlzdC1pbmZvIGRpciAoY29udGFpbmluZyB0aGUKPiArKyAgICAjIG1h bmRhdG9yeSBNRVRBREFUQSBmaWxlLCBhY2NvcmRpbmcgdG8gdGhlIHNwZWMpIGFuZCBvbmNlIHdl IGtub3cgdGhlCj4gKysgICAgIyBsb2NhdGlvbiBvZiBkaXN0IGluZm8gd2UgZmluZCB0aGUgc2li bGluZyBwYXRocyBmcm9tIHRoZSBycG0gbGlzdGluZwo+ICsrICAgIGRpc3RfaW5mbyA9IE5vbmUK PiArKyAgICBwcGF0aHMgPSBbXQo+ICsrICAgIGZvciBwYXRoIGluIHBhdGhzOgo+ICsrICAgICAg ICBwcGF0aCA9IHBhdGhsaWIuUGF0aChwYXRoKQo+ICsrICAgICAgICBwcGF0aHMuYXBwZW5kKHBw YXRoKQo+ICsrICAgICAgICBpZiBwcGF0aC5uYW1lID09ICdNRVRBREFUQScgYW5kIHBwYXRoLnBh cmVudC5uYW1lLmVuZHN3aXRoKCcuZGlzdC1pbmZvJyk6Cj4gKysgICAgICAgICAgICBkaXN0X2lu Zm8gPSBwcGF0aC5wYXJlbnQKPiArKyAgICAgICAgICAgIGJyZWFrCj4gKysgICAgaWYgbm90IGRp c3RfaW5mbzoKPiArKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignbm8gLmRpc3QtaW5mbyBNRVRB REFUQSBmb3VuZCcpCj4gKysgICAgaWYgbm90IGRpc3RfaW5mby5wYXJlbnQubmFtZSA9PSAnc2l0 ZS1wYWNrYWdlcyc6Cj4gKysgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCj4gKysgICAgICAgICAg ICAndW5leHBlY3RlZCBwYXJlbnQgZGlyZWN0b3J5IChub3Qgc2l0ZS1wYWNrYWdlcyk6Jwo+ICsr ICAgICAgICAgICAgZicge2Rpc3RfaW5mby5wYXJlbnQubmFtZX0nCj4gKysgICAgICAgICkKPiAr KyAgICBzaWJsaW5ncyA9IFsKPiArKyAgICAgICAgcCBmb3IgcCBpbiBwcGF0aHMgaWYgcC5wYXJl bnQgPT0gZGlzdF9pbmZvLnBhcmVudCBhbmQgcCAhPSBkaXN0X2luZm8KPiArKyAgICBdCj4gKysg ICAgcmV0dXJuIGRpc3RfaW5mbywgc2libGluZ3MKPiArKwo+ICsrCj4gKyBkZWYgX2RlcHNfZnJv bV9ycG0odGVtcGRpciwgY29uZmlnLCBkaW5mbywgcGtnKToKPiArICAgICAjIGZpcnN0LCBmaWd1 cmUgb3V0IHdoYXQgcnBtIHByb3ZpZGVzIGEgcGFydGljdWxhciBweXRob24gbGliCj4gKyAgICAg ZGlzdCA9IGYncHl0aG9uMy57c3lzLnZlcnNpb25faW5mby5taW5vcn1kaXN0KHtwa2d9KScubG93 ZXIoKQo+ICtAQCAtNDY5LDIwICs1MTAsNyBAQCBkZWYgX2RlcHNfZnJvbV9ycG0odGVtcGRpciwg Y29uZmlnLCBkaW5mbywgcGtnKToKPiArICAgICAgICAgWydycG0nLCAnLXFsJywgcnBtbmFtZV0s IGNoZWNrPVRydWUsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUKPiArICAgICApCj4gKyAgICAgcGF0 aHMgPSBbbC5kZWNvZGUoJ3V0ZjgnKSBmb3IgbCBpbiByZXMuc3Rkb3V0LnNwbGl0bGluZXMoKV0K PiArLSAgICAjIHRoZSB0b3BfbGV2ZWwudHh0IGZpbGUgY2FuIGJlIHVzZWQgdG8gZGV0ZXJtaW5l IHdoZXJlIHRoZSBweXRob24gcGFja2FnZXMKPiArLSAgICAjIGFjdHVhbGx5IGFyZS4gV2UgbmVl ZCBhbGwgb2YgdGhvc2UgYW5kIHRoZSBtZXRhLWRhdGEgZGlyIChwYXJlbnQgb2YKPiArLSAgICAj IHRvcF9sZXZlbC50eHQpIHRvIGJlIGluY2x1ZGVkIGluIG91ciB6aXBhcHAKPiArLSAgICB0b3Bf bGV2ZWwgPSBOb25lCj4gKy0gICAgZm9yIHBhdGggaW4gcGF0aHM6Cj4gKy0gICAgICAgIGlmIHBh dGguZW5kc3dpdGgoJ3RvcF9sZXZlbC50eHQnKToKPiArLSAgICAgICAgICAgIHRvcF9sZXZlbCA9 IHBhdGhsaWIuUGF0aChwYXRoKQo+ICstICAgIGlmIG5vdCB0b3BfbGV2ZWw6Cj4gKy0gICAgICAg IHJhaXNlIFZhbHVlRXJyb3IoJ3RvcF9sZXZlbCBub3QgZm91bmQnKQo+ICstICAgIG1ldGFfZGly ID0gdG9wX2xldmVsLnBhcmVudAo+ICstICAgIHBrZ19kaXJzID0gWwo+ICstICAgICAgICB0b3Bf bGV2ZWwucGFyZW50LnBhcmVudCAvIHAKPiArLSAgICAgICAgZm9yIHAgaW4gdG9wX2xldmVsLnJl YWRfdGV4dCgpLnNwbGl0bGluZXMoKQo+ICstICAgIF0KPiArKyAgICBtZXRhX2RpciwgcGtnX2Rp cnMgPSBfZ2F0aGVyX3JwbV9wYWNrYWdlX2RpcnMocGF0aHMpCj4gKyAgICAgbWV0YV9kZXN0ID0g dGVtcGRpciAvIG1ldGFfZGlyLm5hbWUKPiArICAgICBsb2cuaW5mbyhmIkNvcHlpbmcge21ldGFf ZGlyfSB0byB7bWV0YV9kZXN0fSIpCj4gKyAgICAgIyBjb3B5IHRoZSBtZXRhIGRhdGEgZGlyZWN0 b3J5Cj4gKy0tIAo+ICsyLjQ3LjMKPiArCj4gZGlmZiAtLWdpdCBhL3BhdGNoZXMvMDA0NS1jZXBo YWRtLWJ1aWxkLUFkZC1EZWJpYW4tcGFja2FnZS1zdXBwb3J0LWZvci1idW5kbGVkLnBhdGNoIGIv cGF0Y2hlcy8wMDQ1LWNlcGhhZG0tYnVpbGQtQWRkLURlYmlhbi1wYWNrYWdlLXN1cHBvcnQtZm9y LWJ1bmRsZWQucGF0Y2gKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAw Li45NDI0MTQ5MGI2NAo+IC0tLSAvZGV2L251bGwKPiArKysgYi9wYXRjaGVzLzAwNDUtY2VwaGFk bS1idWlsZC1BZGQtRGViaWFuLXBhY2thZ2Utc3VwcG9ydC1mb3ItYnVuZGxlZC5wYXRjaAo+IEBA IC0wLDAgKzEsMjYxIEBACj4gK0Zyb20gYTQ3NDRmZWIxNDU3YWE3ZmIzZjQ3YjQyZjI5MTM4Njgy Y2M3ZDQxYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKPiArRnJvbTogS2VmdSBDaGFpIDxrLmNo YWlAcHJveG1veC5jb20+Cj4gK0RhdGU6IFR1ZSwgMTQgT2N0IDIwMjUgMjE6MDQ6NDIgKzA4MDAK PiArU3ViamVjdDogW1BBVENIIDQ1LzQ2XSBjZXBoYWRtL2J1aWxkOiBBZGQgRGViaWFuIHBhY2th Z2Ugc3VwcG9ydCBmb3IgYnVuZGxlZAo+ICsgZGVwZW5kZW5jaWVzCj4gKwo+ICtFeHRlbmRzIHRo ZSBjZXBoYWRtIGJ1aWxkIHNjcmlwdCB0byBzdXBwb3J0IGJ1bmRsaW5nIGRlcGVuZGVuY2llcyBm cm9tCj4gK0RlYmlhbiBwYWNrYWdlcyBpbiBhZGRpdGlvbiB0byBwaXAgYW5kIFJQTSBwYWNrYWdl cy4gVGhpcyBhbGxvd3MgYnVpbGRpbmcKPiArY2VwaGFkbSBvbiBEZWJpYW4tYmFzZWQgZGlzdHJp YnV0aW9ucyB1c2luZyBzeXN0ZW0gcGFja2FnZXMuCj4gKwo+ICtLZXkgY2hhbmdlczoKPiArLSBB ZGQgJ2RlYicgdG8gRGVwZW5kZW5jeU1vZGUgZW51bSB0byBlbmFibGUgRGViaWFuIHBhY2thZ2Ug bW9kZQo+ICstIEltcGxlbWVudCBfc2V0dXBfZGViKCkgdG8gY29uZmlndXJlIERlYmlhbiBkZXBl bmRlbmN5IHJlcXVpcmVtZW50cwo+ICstIEFkZCBfaW5zdGFsbF9kZWJfZGVwcygpIHRvIG9yY2hl c3RyYXRlIERlYmlhbiBwYWNrYWdlIGluc3RhbGxhdGlvbgo+ICstIEFkZCBfZ2F0aGVyX2RlYl9w YWNrYWdlX2RpcnMoKSB0byBwYXJzZSBEZWJpYW4gcGFja2FnZSBmaWxlIGxpc3RpbmdzCj4gKyAg YW5kIGxvY2F0ZSBQeXRob24gcGFja2FnZSBkaXJlY3RvcmllcyAoaGFuZGxlcyBib3RoIHNpdGUt cGFja2FnZXMgYW5kCj4gKyAgZGlzdC1wYWNrYWdlcyBkaXJlY3RvcmllcyB1c2VkIGJ5IERlYmlh bikKPiArLSBBZGQgX2RlcHNfZnJvbV9kZWIoKSB0byBleHRyYWN0IFB5dGhvbiBkZXBlbmRlbmNp ZXMgZnJvbSBpbnN0YWxsZWQKPiArICBEZWJpYW4gcGFja2FnZXMgdXNpbmcgZHBrZy9hcHQtY2Fj aGUgdG9vbHMKPiArLSBGaXggdmFyaWFibGUgcmVmZXJlbmNlIGJ1ZyBpbiBfaW5zdGFsbF9kZXBz KCkgKGRlcHMubW9kZSAtPiBjb25maWcuZGVwc19tb2RlKQo+ICsKPiArVGhlIERlYmlhbiBpbXBs ZW1lbnRhdGlvbiBmb2xsb3dzIGEgc2ltaWxhciBwYXR0ZXJuIHRvIHRoZSBleGlzdGluZyBSUE0K PiArc3VwcG9ydCwgdXNpbmcgZHBrZy1xdWVyeSBhbmQgZHBrZyAtTCB0byBsb2NhdGUgaW5zdGFs bGVkIHBhY2thZ2VzIGFuZAo+ICt0aGVpciBmaWxlcywgd2l0aCBzcGVjaWFsIGhhbmRsaW5nIGZv ciBEZWJpYW4gbmFtaW5nIGNvbnZlbnRpb25zCj4gKyhlLmcuLCBQeVlBTUwgLT4gcHl0aG9uMy15 YW1sKS4KPiArCj4gK1NpZ25lZC1vZmYtYnk6IEtlZnUgQ2hhaSA8ay5jaGFpQHByb3htb3guY29t Pgo+ICsoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAzZmY5YjBjMjRlMzNkZWJlOTVhMGEwYzZi NDJkYTMwYmU3ODg4NzFjKQo+ICstLS0KPiArIHNyYy9jZXBoYWRtL2J1aWxkLnB5IHwgMTU4ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KPiArIDEgZmlsZSBjaGFu Z2VkLCAxNDMgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCj4gKwo+ICtkaWZmIC0tZ2l0 IGEvc3JjL2NlcGhhZG0vYnVpbGQucHkgYi9zcmMvY2VwaGFkbS9idWlsZC5weQo+ICtpbmRleCAw MWM5MWZjMTY4MC4uNTNkMzk4M2RlODkgMTAwNzU1Cj4gKy0tLSBhL3NyYy9jZXBoYWRtL2J1aWxk LnB5Cj4gKysrKyBiL3NyYy9jZXBoYWRtL2J1aWxkLnB5Cj4gK0BAIC0xNTQsNiArMTU0LDcgQEAg Y2xhc3MgUGlwRW52KGVudW0uRW51bSk6Cj4gKyBjbGFzcyBEZXBlbmRlbmN5TW9kZShlbnVtLkVu dW0pOgo+ICsgICAgIHBpcCA9IGVudW0uYXV0bygpCj4gKyAgICAgcnBtID0gZW51bS5hdXRvKCkK PiArKyAgICBkZWIgPSBlbnVtLmF1dG8oKQo+ICsgICAgIG5vbmUgPSBlbnVtLmF1dG8oKQo+ICsg Cj4gKyAKPiArQEAgLTE2OSw2ICsxNzAsOCBAQCBjbGFzcyBDb25maWc6Cj4gKyAgICAgICAgICAg ICBzZWxmLl9zZXR1cF9waXAoKQo+ICsgICAgICAgICBlbGlmIHNlbGYuZGVwc19tb2RlID09IERl cGVuZGVuY3lNb2RlLnJwbToKPiArICAgICAgICAgICAgIHNlbGYuX3NldHVwX3JwbSgpCj4gKysg ICAgICAgIGVsaWYgc2VsZi5kZXBzX21vZGUgPT0gRGVwZW5kZW5jeU1vZGUuZGViOgo+ICsrICAg ICAgICAgICAgc2VsZi5fc2V0dXBfZGViKCkKPiArIAo+ICsgICAgIGRlZiBfc2V0dXBfcGlwKHNl bGYpOgo+ICsgICAgICAgICBpZiBzZWxmLl9tYWpfbWluID09ICgzLCA2KToKPiArQEAgLTE4MCw2 ICsxODMsOSBAQCBjbGFzcyBDb25maWc6Cj4gKyAgICAgZGVmIF9zZXR1cF9ycG0oc2VsZik6Cj4g KyAgICAgICAgIHNlbGYucmVxdWlyZW1lbnRzID0gW0luc3RhbGxTcGVjKCoqdikgZm9yIHYgaW4g UFlfUkVRVUlSRU1FTlRTXQo+ICsgCj4gKysgICAgZGVmIF9zZXR1cF9kZWIoc2VsZik6Cj4gKysg ICAgICAgIHNlbGYucmVxdWlyZW1lbnRzID0gW0luc3RhbGxTcGVjKCoqdikgZm9yIHYgaW4gUFlf UkVRVUlSRU1FTlRTXQo+ICsrCj4gKyAKPiArIGNsYXNzIERlcGVuZGVuY3lJbmZvOgo+ICsgICAg ICIiIlR5cGUgZm9yIHRyYWNraW5nIGJ1bmRsZWQgZGVwZW5kZW5jaWVzLiIiIgo+ICtAQCAtMzMz LDcgKzMzOSw5IEBAIGRlZiBfaW5zdGFsbF9kZXBzKHRlbXBkaXIsIGNvbmZpZyk6Cj4gKyAgICAg ICAgIHJldHVybiBfaW5zdGFsbF9waXBfZGVwcyh0ZW1wZGlyLCBjb25maWcpCj4gKyAgICAgaWYg Y29uZmlnLmRlcHNfbW9kZSA9PSBEZXBlbmRlbmN5TW9kZS5ycG06Cj4gKyAgICAgICAgIHJldHVy biBfaW5zdGFsbF9ycG1fZGVwcyh0ZW1wZGlyLCBjb25maWcpCj4gKy0gICAgcmFpc2UgVmFsdWVF cnJvcihmJ3VuZXhwZWN0ZWQgZGVwcyBtb2RlOiB7ZGVwcy5tb2RlfScpCj4gKysgICAgaWYgY29u ZmlnLmRlcHNfbW9kZSA9PSBEZXBlbmRlbmN5TW9kZS5kZWI6Cj4gKysgICAgICAgIHJldHVybiBf aW5zdGFsbF9kZWJfZGVwcyh0ZW1wZGlyLCBjb25maWcpCj4gKysgICAgcmFpc2UgVmFsdWVFcnJv cihmJ3VuZXhwZWN0ZWQgZGVwcyBtb2RlOiB7Y29uZmlnLmRlcHNfbW9kZX0nKQo+ICsgCj4gKyAK PiArIGRlZiBfaW5zdGFsbF9waXBfZGVwcyh0ZW1wZGlyLCBjb25maWcpOgo+ICtAQCAtNDM0LDcg KzQ0MiwyNiBAQCBkZWYgX2luc3RhbGxfcnBtX2RlcHModGVtcGRpciwgY29uZmlnKToKPiArICAg ICByZXR1cm4gZGluZm8KPiArIAo+ICsgCj4gKy1kZWYgX2dhdGhlcl9ycG1fcGFja2FnZV9kaXJz KHBhdGhzKToKPiArK2RlZiBfaW5zdGFsbF9kZWJfZGVwcyh0ZW1wZGlyLCBjb25maWcpOgo+ICsr ICAgIGxvZy5pbmZvKCJJbnN0YWxsaW5nIGRlcGVuZGVuY2llcyB1c2luZyBEZWJpYW4gcGFja2Fn ZXMiKQo+ICsrICAgIGRpbmZvID0gRGVwZW5kZW5jeUluZm8oY29uZmlnKQo+ICsrICAgIGZvciBw a2cgaW4gY29uZmlnLnJlcXVpcmVtZW50czoKPiArKyAgICAgICAgbG9nLmluZm8oZiJMb29raW5n IGZvciBkZWJpYW4gcGFja2FnZSBmb3I6IHtwa2cubmFtZSFyfSIpCj4gKysgICAgICAgIF9kZXBz X2Zyb21fZGViKHRlbXBkaXIsIGNvbmZpZywgZGluZm8sIHBrZy5uYW1lKQo+ICsrICAgIHJldHVy biBkaW5mbwo+ICsrCj4gKysKPiArK2RlZiBfZ2F0aGVyX3BhY2thZ2VfZGlycyhwYXRocywgZXhw ZWN0ZWRfcGFyZW50X2Rpcik6Cj4gKysgICAgIiIiUGFyc2UgcGFja2FnZSBmaWxlIGxpc3Rpbmcg dG8gZmluZCBQeXRob24gcGFja2FnZSBkaXJlY3Rvcmllcy4KPiArKwo+ICsrICAgIEFyZ3M6Cj4g KysgICAgICAgIHBhdGhzOiBMaXN0IG9mIGZpbGUgcGF0aHMgZnJvbSBwYWNrYWdlIGxpc3RpbmcK PiArKyAgICAgICAgZXhwZWN0ZWRfcGFyZW50X2RpcjogRXhwZWN0ZWQgcGFyZW50IGRpcmVjdG9y eSBuYW1lIChlLmcuLCAnc2l0ZS1wYWNrYWdlcycgZm9yIFJQTSwKPiArKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICdkaXN0LXBhY2thZ2VzJyBmb3IgRGViaWFuKQo+ICsrCj4gKysgICAgUmV0 dXJuczoKPiArKyAgICAgICAgVHVwbGUgb2YgKG1ldGFkYXRhX2RpciwgcGFja2FnZV9kaXJzKQo+ ICsrICAgICIiIgo+ICsgICAgICMgPSBUaGUgZWFzeSB3YXkgPQo+ICsgICAgICMgdGhlIHRvcF9s ZXZlbC50eHQgZmlsZSBjYW4gYmUgdXNlZCB0byBkZXRlcm1pbmUgd2hlcmUgdGhlIHB5dGhvbiBw YWNrYWdlcwo+ICsgICAgICMgYWN0dWFsbHkgYXJlLiBXZSBuZWVkIGFsbCBvZiB0aG9zZSBhbmQg dGhlIG1ldGEtZGF0YSBkaXIgKHBhcmVudCBvZgo+ICtAQCAtNDUzLDcgKzQ4MCw3IEBAIGRlZiBf Z2F0aGVyX3JwbV9wYWNrYWdlX2RpcnMocGF0aHMpOgo+ICsgICAgICMgPSBUaGUgaGFyZCB3YXkg PQo+ICsgICAgICMgbG9vcCB0aHJvdWdoIHRoZSBkaXJlY3RvcmllcyB0byBmaW5kIHRoZSAuZGlz dC1pbmZvIGRpciAoY29udGFpbmluZyB0aGUKPiArICAgICAjIG1hbmRhdG9yeSBNRVRBREFUQSBm aWxlLCBhY2NvcmRpbmcgdG8gdGhlIHNwZWMpIGFuZCBvbmNlIHdlIGtub3cgdGhlCj4gKy0gICAg IyBsb2NhdGlvbiBvZiBkaXN0IGluZm8gd2UgZmluZCB0aGUgc2libGluZyBwYXRocyBmcm9tIHRo ZSBycG0gbGlzdGluZwo+ICsrICAgICMgbG9jYXRpb24gb2YgZGlzdCBpbmZvIHdlIGZpbmQgdGhl IHNpYmxpbmcgcGF0aHMgZnJvbSB0aGUgcGFja2FnZSBsaXN0aW5nCj4gKyAgICAgZGlzdF9pbmZv ID0gTm9uZQo+ICsgICAgIHBwYXRocyA9IFtdCj4gKyAgICAgZm9yIHBhdGggaW4gcGF0aHM6Cj4g K0BAIC00NjQsOSArNDkxLDkgQEAgZGVmIF9nYXRoZXJfcnBtX3BhY2thZ2VfZGlycyhwYXRocyk6 Cj4gKyAgICAgICAgICAgICBicmVhawo+ICsgICAgIGlmIG5vdCBkaXN0X2luZm86Cj4gKyAgICAg ICAgIHJhaXNlIFZhbHVlRXJyb3IoJ25vIC5kaXN0LWluZm8gTUVUQURBVEEgZm91bmQnKQo+ICst ICAgIGlmIG5vdCBkaXN0X2luZm8ucGFyZW50Lm5hbWUgPT0gJ3NpdGUtcGFja2FnZXMnOgo+ICsr ICAgIGlmIGRpc3RfaW5mby5wYXJlbnQubmFtZSAhPSBleHBlY3RlZF9wYXJlbnRfZGlyOgo+ICsg ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAo+ICstICAgICAgICAgICAgJ3VuZXhwZWN0ZWQgcGFy ZW50IGRpcmVjdG9yeSAobm90IHNpdGUtcGFja2FnZXMpOicKPiArKyAgICAgICAgICAgIGYndW5l eHBlY3RlZCBwYXJlbnQgZGlyZWN0b3J5IChub3Qge2V4cGVjdGVkX3BhcmVudF9kaXJ9KTonCj4g KyAgICAgICAgICAgICBmJyB7ZGlzdF9pbmZvLnBhcmVudC5uYW1lfScKPiArICAgICAgICAgKQo+ ICsgICAgIHNpYmxpbmdzID0gWwo+ICtAQCAtNDc1LDYgKzUwMiwzMSBAQCBkZWYgX2dhdGhlcl9y cG1fcGFja2FnZV9kaXJzKHBhdGhzKToKPiArICAgICByZXR1cm4gZGlzdF9pbmZvLCBzaWJsaW5n cwo+ICsgCj4gKyAKPiArK2RlZiBfY29weV9wYWNrYWdlX2ZpbGVzKHRlbXBkaXIsIHBhdGhzLCBl eHBlY3RlZF9wYXJlbnRfZGlyKToKPiArKyAgICAiIiJDb3B5IHBhY2thZ2UgZmlsZXMgdG8gdGhl IGJ1aWxkIGRpcmVjdG9yeS4KPiArKwo+ICsrICAgIEFyZ3M6Cj4gKysgICAgICAgIHRlbXBkaXI6 IFRlbXBvcmFyeSBkaXJlY3RvcnkgdG8gY29weSBmaWxlcyB0bwo+ICsrICAgICAgICBwYXRoczog TGlzdCBvZiBmaWxlIHBhdGhzIGZyb20gcGFja2FnZSBsaXN0aW5nCj4gKysgICAgICAgIGV4cGVj dGVkX3BhcmVudF9kaXI6IEV4cGVjdGVkIHBhcmVudCBkaXJlY3RvcnkgbmFtZSBwZXIgcGFja2Fn aW5nIGNvbnZlbnRpb246Cj4gKysgICAgICAgICAgICAtICdzaXRlLXBhY2thZ2VzJyBmb3IgUlBN LWJhc2VkIGRpc3RyaWJ1dGlvbnMKPiArKyAgICAgICAgICAgIC0gJ2Rpc3QtcGFja2FnZXMnIGZv ciBEZWJpYW4tYmFzZWQgZGlzdHJpYnV0aW9ucwo+ICsrCj4gKysgICAgUmV0dXJuczoKPiArKyAg ICAgICAgTm9uZQo+ICsrICAgICIiIgo+ICsrICAgIG1ldGFfZGlyLCBwa2dfZGlycyA9IF9nYXRo ZXJfcGFja2FnZV9kaXJzKHBhdGhzLCBleHBlY3RlZF9wYXJlbnRfZGlyKQo+ICsrICAgIG1ldGFf ZGVzdCA9IHRlbXBkaXIgLyBtZXRhX2Rpci5uYW1lCj4gKysgICAgbG9nLmluZm8oZiJDb3B5aW5n IHttZXRhX2Rpcn0gdG8ge21ldGFfZGVzdH0iKQo+ICsrICAgICMgY29weSB0aGUgbWV0YSBkYXRh IGRpcmVjdG9yeQo+ICsrICAgIHNodXRpbC5jb3B5dHJlZShtZXRhX2RpciwgbWV0YV9kZXN0LCBp Z25vcmU9X2lnbm9yZV9jZXBoYWRtbGliKQo+ICsrICAgICMgY29weSBhbGwgdGhlIHBhY2thZ2Ug ZGlyZWN0b3JpZXMKPiArKyAgICBmb3IgcGtnX2RpciBpbiBwa2dfZGlyczoKPiArKyAgICAgICAg cGtnX2Rlc3QgPSB0ZW1wZGlyIC8gcGtnX2Rpci5uYW1lCj4gKysgICAgICAgIGxvZy5pbmZvKGYi Q29weWluZyB7cGtnX2Rpcn0gdG8ge3BrZ19kZXN0fSIpCj4gKysgICAgICAgIHNodXRpbC5jb3B5 dHJlZShwa2dfZGlyLCBwa2dfZGVzdCwgaWdub3JlPV9pZ25vcmVfY2VwaGFkbWxpYikKPiArKwo+ ICsrCj4gKyBkZWYgX2RlcHNfZnJvbV9ycG0odGVtcGRpciwgY29uZmlnLCBkaW5mbywgcGtnKToK PiArICAgICAjIGZpcnN0LCBmaWd1cmUgb3V0IHdoYXQgcnBtIHByb3ZpZGVzIGEgcGFydGljdWxh ciBweXRob24gbGliCj4gKyAgICAgZGlzdCA9IGYncHl0aG9uMy57c3lzLnZlcnNpb25faW5mby5t aW5vcn1kaXN0KHtwa2d9KScubG93ZXIoKQo+ICtAQCAtNTEwLDE2ICs1NjIsOTIgQEAgZGVmIF9k ZXBzX2Zyb21fcnBtKHRlbXBkaXIsIGNvbmZpZywgZGluZm8sIHBrZyk6Cj4gKyAgICAgICAgIFsn cnBtJywgJy1xbCcsIHJwbW5hbWVdLCBjaGVjaz1UcnVlLCBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBF Cj4gKyAgICAgKQo+ICsgICAgIHBhdGhzID0gW2wuZGVjb2RlKCd1dGY4JykgZm9yIGwgaW4gcmVz LnN0ZG91dC5zcGxpdGxpbmVzKCldCj4gKy0gICAgbWV0YV9kaXIsIHBrZ19kaXJzID0gX2dhdGhl cl9ycG1fcGFja2FnZV9kaXJzKHBhdGhzKQo+ICstICAgIG1ldGFfZGVzdCA9IHRlbXBkaXIgLyBt ZXRhX2Rpci5uYW1lCj4gKy0gICAgbG9nLmluZm8oZiJDb3B5aW5nIHttZXRhX2Rpcn0gdG8ge21l dGFfZGVzdH0iKQo+ICstICAgICMgY29weSB0aGUgbWV0YSBkYXRhIGRpcmVjdG9yeQo+ICstICAg IHNodXRpbC5jb3B5dHJlZShtZXRhX2RpciwgbWV0YV9kZXN0LCBpZ25vcmU9X2lnbm9yZV9jZXBo YWRtbGliKQo+ICstICAgICMgY29weSBhbGwgdGhlIHBhY2thZ2UgZGlyZWN0b3JpZXMKPiArLSAg ICBmb3IgcGtnX2RpciBpbiBwa2dfZGlyczoKPiArLSAgICAgICAgcGtnX2Rlc3QgPSB0ZW1wZGly IC8gcGtnX2Rpci5uYW1lCj4gKy0gICAgICAgIGxvZy5pbmZvKGYiQ29weWluZyB7cGtnX2Rpcn0g dG8ge3BrZ19kZXN0fSIpCj4gKy0gICAgICAgIHNodXRpbC5jb3B5dHJlZShwa2dfZGlyLCBwa2df ZGVzdCwgaWdub3JlPV9pZ25vcmVfY2VwaGFkbWxpYikKPiArKyAgICAjIFJQTS1iYXNlZCBkaXN0 cmlidXRpb25zIHVzZSAnc2l0ZS1wYWNrYWdlcycgZm9yIFB5dGhvbiBwYWNrYWdlcwo+ICsrICAg IF9jb3B5X3BhY2thZ2VfZmlsZXModGVtcGRpciwgcGF0aHMsICdzaXRlLXBhY2thZ2VzJykKPiAr Kwo+ICsrCj4gKytkZWYgX2RlcHNfZnJvbV9kZWIodGVtcGRpciwgY29uZmlnLCBkaW5mbywgcGtn KToKPiArKyAgICAiIiJFeHRyYWN0IFB5dGhvbiBkZXBlbmRlbmNpZXMgZnJvbSBEZWJpYW4gcGFj a2FnZXMuCj4gKysKPiArKyAgICBBcmdzOgo+ICsrICAgICAgICB0ZW1wZGlyOiBUZW1wb3Jhcnkg ZGlyZWN0b3J5IHRvIGNvcHkgcGFja2FnZSBmaWxlcyB0bwo+ICsrICAgICAgICBjb25maWc6IEJ1 aWxkIGNvbmZpZ3VyYXRpb24KPiArKyAgICAgICAgZGluZm86IERlcGVuZGVuY3lJbmZvIGluc3Rh bmNlIHRvIHRyYWNrIGRlcGVuZGVuY2llcwo+ICsrICAgICAgICBwa2c6IFB5dGhvbiBwYWNrYWdl IG5hbWUgKGUuZy4sICdNYXJrdXBTYWZlJywgJ0ppbmphMicsICdQeVlBTUwnKQo+ICsrICAgICIi Igo+ICsrICAgICMgQ29udmVydCBQeXRob24gcGFja2FnZSBuYW1lIHRvIERlYmlhbiBwYWNrYWdl IG5hbWUKPiArKyAgICAjIFB5dGhvbiBwYWNrYWdlcyBhcmUgdHlwaWNhbGx5IG5hbWVkIHB5dGhv bjMtPGxvd2VyY2FzZS1uYW1lPgo+ICsrICAgICMgSGFuZGxlIHNwZWNpYWwgY2FzZXM6IFB5WUFN TCAtPiBweXRob24zLXlhbWwsIE1hcmt1cFNhZmUgLT4gcHl0aG9uMy1tYXJrdXBzYWZlCj4gKysg ICAgcGtnX2xvd2VyID0gcGtnLmxvd2VyKCkKPiArKyAgICBpZiBwa2dfbG93ZXIgPT0gJ3B5eWFt bCc6Cj4gKysgICAgICAgIGRlYl9wa2dfbmFtZSA9ICdweXRob24zLXlhbWwnCj4gKysgICAgZWxz ZToKPiArKyAgICAgICAgZGViX3BrZ19uYW1lID0gZidweXRob24zLXtwa2dfbG93ZXJ9Jwo+ICsr Cj4gKysgICAgIyBGaXJzdCwgdHJ5IHRvIGZpbmQgdGhlIHBhY2thZ2UgdXNpbmcgYXB0LWNhY2hl Cj4gKysgICAgIyBUaGlzIGhlbHBzIHZlcmlmeSB0aGUgcGFja2FnZSBleGlzdHMgYmVmb3JlIHRy eWluZyB0byBsaXN0IGl0cyBmaWxlcwo+ICsrICAgIHRyeToKPiArKyAgICAgICAgcmVzID0gc3Vi cHJvY2Vzcy5ydW4oCj4gKysgICAgICAgICAgICBbJ2FwdC1jYWNoZScsICdzaG93JywgZGViX3Br Z19uYW1lXSwKPiArKyAgICAgICAgICAgIGNoZWNrPVRydWUsCj4gKysgICAgICAgICAgICBzdGRv dXQ9c3VicHJvY2Vzcy5QSVBFLAo+ICsrICAgICAgICAgICAgc3RkZXJyPXN1YnByb2Nlc3MuUElQ RSwKPiArKyAgICAgICAgKQo+ICsrICAgIGV4Y2VwdCBzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NF cnJvcjoKPiArKyAgICAgICAgIyBQYWNrYWdlIG5vdCBmb3VuZCwgdHJ5IGFsdGVybmF0aXZlIG5h bWluZwo+ICsrICAgICAgICBsb2cud2FybmluZyhmIlBhY2thZ2Uge2RlYl9wa2dfbmFtZX0gbm90 IGZvdW5kIHZpYSBhcHQtY2FjaGUsIHRyeWluZyBkcGtnIC1TIikKPiArKyAgICAgICAgIyBUcnkg dG8gc2VhcmNoIGZvciBmaWxlcyB0aGF0IG1pZ2h0IGJlbG9uZyB0byB0aGlzIHBhY2thZ2UKPiAr KyAgICAgICAgIyBTZWFyY2ggZm9yIHRoZSBQeXRob24gbW9kdWxlIGluIHNpdGUtcGFja2FnZXMK PiArKyAgICAgICAgc2VhcmNoX3BhdHRlcm4gPSBmJy91c3IvbGliL3B5dGhvbjMqL2Rpc3QtcGFj a2FnZXMve3BrZy5sb3dlcigpfSonCj4gKysgICAgICAgIHRyeToKPiArKyAgICAgICAgICAgIHJl cyA9IHN1YnByb2Nlc3MucnVuKAo+ICsrICAgICAgICAgICAgICAgIFsnZHBrZycsICctUycsIHNl YXJjaF9wYXR0ZXJuXSwKPiArKyAgICAgICAgICAgICAgICBjaGVjaz1UcnVlLAo+ICsrICAgICAg ICAgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsCj4gKysgICAgICAgICAgICAgICAgc3Rk ZXJyPXN1YnByb2Nlc3MuUElQRSwKPiArKyAgICAgICAgICAgICkKPiArKyAgICAgICAgICAgICMg ZHBrZyAtUyBvdXRwdXQgZm9ybWF0OiAicGFja2FnZTogL3BhdGgvdG8vZmlsZSIKPiArKyAgICAg ICAgICAgIGRlYl9wa2dfbmFtZSA9IHJlcy5zdGRvdXQuZGVjb2RlKCd1dGY4Jykuc3BsaXQoJzon KVswXS5zdHJpcCgpCj4gKysgICAgICAgIGV4Y2VwdCBzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NF cnJvciBhcyBlcnI6Cj4gKysgICAgICAgICAgICBsb2cuZXJyb3IoZiJDb3VsZCBub3QgZmluZCBE ZWJpYW4gcGFja2FnZSBmb3Ige3BrZ30iKQo+ICsrICAgICAgICAgICAgbG9nLmVycm9yKGYiVHJp ZWQ6IHtkZWJfcGtnX25hbWV9IGFuZCBwYXR0ZXJuIHNlYXJjaCIpCj4gKysgICAgICAgICAgICBz eXMuZXhpdCgxKQo+ICsrCj4gKysgICAgIyBHZXQgdmVyc2lvbiBpbmZvcm1hdGlvbiB1c2luZyBk cGtnLXF1ZXJ5Cj4gKysgICAgdHJ5Ogo+ICsrICAgICAgICByZXMgPSBzdWJwcm9jZXNzLnJ1bigK PiArKyAgICAgICAgICAgIFsnZHBrZy1xdWVyeScsICctVycsICctZj0ke1ZlcnNpb259XFxuJywg ZGViX3BrZ19uYW1lXSwKPiArKyAgICAgICAgICAgIGNoZWNrPVRydWUsCj4gKysgICAgICAgICAg ICBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLAo+ICsrICAgICAgICApCj4gKysgICAgICAgIHZlcnNp b24gPSByZXMuc3Rkb3V0LmRlY29kZSgndXRmOCcpLnN0cmlwKCkKPiArKyAgICBleGNlcHQgc3Vi cHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3IgYXMgZXJyOgo+ICsrICAgICAgICBsb2cuZXJyb3Io ZiJDb3VsZCBub3QgcXVlcnkgdmVyc2lvbiBmb3IgcGFja2FnZSB7ZGViX3BrZ19uYW1lfToge2Vy cn0iKQo+ICsrICAgICAgICBzeXMuZXhpdCgxKQo+ICsrCj4gKysgICAgbG9nLmluZm8oZiJEZWJp YW4gUGFja2FnZToge2RlYl9wa2dfbmFtZX0gKHZlcnNpb246IHt2ZXJzaW9ufSkiKQo+ICsrICAg IGRpbmZvLmFkZCgKPiArKyAgICAgICAgcGtnLAo+ICsrICAgICAgICBkZWJfbmFtZT1kZWJfcGtn X25hbWUsCj4gKysgICAgICAgIHZlcnNpb249dmVyc2lvbiwKPiArKyAgICAgICAgcGFja2FnZV9z b3VyY2U9J2RlYicsCj4gKysgICAgKQo+ICsrCj4gKysgICAgIyBHZXQgdGhlIGxpc3Qgb2YgZmls ZXMgcHJvdmlkZWQgYnkgdGhlIERlYmlhbiBwYWNrYWdlCj4gKysgICAgdHJ5Ogo+ICsrICAgICAg ICByZXMgPSBzdWJwcm9jZXNzLnJ1bigKPiArKyAgICAgICAgICAgIFsnZHBrZycsICctTCcsIGRl Yl9wa2dfbmFtZV0sCj4gKysgICAgICAgICAgICBjaGVjaz1UcnVlLAo+ICsrICAgICAgICAgICAg c3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwKPiArKyAgICAgICAgKQo+ICsrICAgIGV4Y2VwdCBzdWJw cm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvciBhcyBlcnI6Cj4gKysgICAgICAgIGxvZy5lcnJvcihm IkNvdWxkIG5vdCBsaXN0IGZpbGVzIGZvciBwYWNrYWdlIHtkZWJfcGtnX25hbWV9OiB7ZXJyfSIp Cj4gKysgICAgICAgIHN5cy5leGl0KDEpCj4gKysKPiArKyAgICBwYXRocyA9IFtsLmRlY29kZSgn dXRmOCcpIGZvciBsIGluIHJlcy5zdGRvdXQuc3BsaXRsaW5lcygpXQo+ICsrICAgICMgRGViaWFu LWJhc2VkIGRpc3RyaWJ1dGlvbnMgdXNlICdkaXN0LXBhY2thZ2VzJyBmb3Igc3lzdGVtLW1hbmFn ZWQgUHl0aG9uIHBhY2thZ2VzCj4gKysgICAgIyBwZXIgRGViaWFuIFB5dGhvbiBQb2xpY3k6IGh0 dHBzOi8vd3d3LmRlYmlhbi5vcmcvZG9jL3BhY2thZ2luZy1tYW51YWxzL3B5dGhvbi1wb2xpY3kv Cj4gKysgICAgX2NvcHlfcGFja2FnZV9maWxlcyh0ZW1wZGlyLCBwYXRocywgJ2Rpc3QtcGFja2Fn ZXMnKQo+ICsgCj4gKyAKPiArIGRlZiBnZW5lcmF0ZV92ZXJzaW9uX2ZpbGUodmVyc2lvbmluZ192 YXJzLCBkZXN0KToKPiArLS0gCj4gKzIuNDcuMwo+ICsKPiBkaWZmIC0tZ2l0IGEvcGF0Y2hlcy8w MDQ2LWRlYmlhbi1Vc2Utc3lzdGVtLXBhY2thZ2VzLWZvci1jZXBoYWRtLWJ1bmRsZWQtZGVwZW4u cGF0Y2ggYi9wYXRjaGVzLzAwNDYtZGViaWFuLVVzZS1zeXN0ZW0tcGFja2FnZXMtZm9yLWNlcGhh ZG0tYnVuZGxlZC1kZXBlbi5wYXRjaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAw MDAwMDAwMDAuLjBiNGRhYTYzZjc5Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL3BhdGNoZXMvMDA0 Ni1kZWJpYW4tVXNlLXN5c3RlbS1wYWNrYWdlcy1mb3ItY2VwaGFkbS1idW5kbGVkLWRlcGVuLnBh dGNoCj4gQEAgLTAsMCArMSw1NCBAQAo+ICtGcm9tIDc3OWM5MjUxNjY5YjY1YjdlZDc3YTg0MWYy ODFlMmQ5NTcxNzRkYjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCj4gK0Zyb206IEtlZnUgQ2hh aSA8ay5jaGFpQHByb3htb3guY29tPgo+ICtEYXRlOiBUdWUsIDIxIE9jdCAyMDI1IDExOjI1OjAw ICswODAwCj4gK1N1YmplY3Q6IFtQQVRDSCA0Ni80Nl0gZGViaWFuOiBVc2Ugc3lzdGVtIHBhY2th Z2VzIGZvciBjZXBoYWRtIGJ1bmRsZWQKPiArIGRlcGVuZGVuY2llcwo+ICsKPiArQ29uZmlndXJl IHRoZSBEZWJpYW4gYnVpbGQgdG8gdXNlIENFUEhBRE1fQlVORExFRF9ERVBFTkRFTkNJRVM9ZGVi LAo+ICt3aGljaCBpbnN0cnVjdHMgdGhlIGNlcGhhZG0gYnVpbGQgc2NyaXB0IHRvIGJ1bmRsZSBk ZXBlbmRlbmNpZXMgZnJvbQo+ICtzeXN0ZW0taW5zdGFsbGVkIERlYmlhbiBwYWNrYWdlcyBpbnN0 ZWFkIG9mIGRvd25sb2FkaW5nIGZyb20gUHlQSS4KPiArCj4gK1RoaXMgY2hhbmdlIGFkZHJlc3Nl cyBidWlsZCBmYWlsdXJlcyBpbiByZXN0cmljdGVkIG5ldHdvcmsgZW52aXJvbm1lbnRzCj4gK3do ZXJlIERlYmlhbiBidWlsZCB0b29scyBkbyBub3QgcGVybWl0IGludGVybmV0IGFjY2Vzcy4gQnkg bGV2ZXJhZ2luZwo+ICt0aGUgRGViaWFuIHBhY2thZ2Ugc3VwcG9ydCBhZGRlZCBpbiBjb21taXQg OTM3OGEyOTg4ZTEsIHRoZSBidWlsZCBub3cKPiArdXNlcyBweXRob24zLW1hcmt1cHNhZmUsIHB5 dGhvbjMtamluamEyLCBhbmQgcHl0aG9uMy15YW1sIHBhY2thZ2VzCj4gK3RoYXQgYXJlIGFscmVh ZHkgaW5zdGFsbGVkIGFzIGJ1aWxkIGRlcGVuZGVuY2llcy4KPiArCj4gK1RoaXMgYXBwcm9hY2gg bWlycm9ycyB0aGUgZXhpc3RpbmcgUlBNIHBhY2thZ2luZyB3b3JrZmxvdywgZW5zdXJpbmcKPiAr Y29uc2lzdGVudCBiZWhhdmlvciBhY3Jvc3MgZGlmZmVyZW50IGRpc3RyaWJ1dGlvbiBwYWNrYWdl IGZvcm1hdHMuCj4gKwo+ICtTaWduZWQtb2ZmLWJ5OiBLZWZ1IENoYWkgPGsuY2hhaUBwcm94bW94 LmNvbT4KPiArKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMjU2ODAwMjFlZTI0MjJmOGI4YjQw NzViM2FiNzdhZjM5MTI2ZWVjYykKPiArLS0tCj4gKyBkZWJpYW4vY29udHJvbCB8IDIgKysKPiAr IGRlYmlhbi9ydWxlcyAgIHwgMSArCj4gKyAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygr KQo+ICsKPiArZGlmZiAtLWdpdCBhL2RlYmlhbi9jb250cm9sIGIvZGViaWFuL2NvbnRyb2wKPiAr aW5kZXggMzVjMWRiZTViZDIuLjk0OTk3ODI3YmQyIDEwMDY0NAo+ICstLS0gYS9kZWJpYW4vY29u dHJvbAo+ICsrKysgYi9kZWJpYW4vY29udHJvbAo+ICtAQCAtMTA2LDYgKzEwNiw4IEBAIEJ1aWxk LURlcGVuZHM6IGF1dG9tYWtlLAo+ICsgICAgICAgICAgICAgICAgcHl0aG9uMy1yZXF1ZXN0cyA8 cGtnLmNlcGguY2hlY2s+LAo+ICsgICAgICAgICAgICAgICAgcHl0aG9uMy1zY2lweSA8cGtnLmNl cGguY2hlY2s+LAo+ICsgICAgICAgICAgICAgICAgcHl0aG9uMy1vbmVsb2dpbi1zYW1sMiA8cGtn LmNlcGguY2hlY2s+LAo+ICsrICAgICAgICAgICAgICAgcHl0aG9uMy1qaW5qYTIsCj4gKysgICAg ICAgICAgICAgICBweXRob24zLW1hcmt1cHNhZmUsCj4gKyAgICAgICAgICAgICAgICBweXRob24z LXNldHVwdG9vbHMsCj4gKyAgICAgICAgICAgICAgICBweXRob24zLXNwaGlueCwKPiArICAgICAg ICAgICAgICAgIHB5dGhvbjMtdmVudiwKPiArZGlmZiAtLWdpdCBhL2RlYmlhbi9ydWxlcyBiL2Rl Ymlhbi9ydWxlcwo+ICtpbmRleCBiOTM1ZWZhYThjZC4uZWU0ZWZmMmJkYzUgMTAwNzU1Cj4gKy0t LSBhL2RlYmlhbi9ydWxlcwo+ICsrKysgYi9kZWJpYW4vcnVsZXMKPiArQEAgLTMwLDYgKzMwLDcg QEAgZXh0cmFvcHRzICs9IC1EV0lUSF9DRVBIRlNfSkFWQT1PTgo+ICsgZXh0cmFvcHRzICs9IC1E V0lUSF9DRVBIRlNfU0hFTEw9T04KPiArIGV4dHJhb3B0cyArPSAtRFdJVEhfU1lTVEVNRD1PTiAt RENFUEhfU1lTVEVNRF9FTlZfRElSPS9ldGMvZGVmYXVsdAo+ICsgZXh0cmFvcHRzICs9IC1EV0lU SF9HUkFGQU5BPU9OCj4gKytleHRyYW9wdHMgKz0gLURDRVBIQURNX0JVTkRMRURfREVQRU5ERU5D SUVTPWRlYgo+ICsgaWZlcSAoJChERUJfSE9TVF9BUkNIKSwgYW1kNjQpCj4gKyAgIGV4dHJhb3B0 cyArPSAtRFdJVEhfUkJEX1JXTD1PTgo+ICsgZWxzZQo+ICstLSAKPiArMi40Ny4zCj4gKwo+IGRp ZmYgLS1naXQgYS9wYXRjaGVzLzAwNDctY21ha2UtQnVpbGRBcnJvdy1Vc2UtQVVUTy1tb2RlLWZv ci14c2ltZC1kZXBlbmRlbmN5LS5wYXRjaCBiL3BhdGNoZXMvMDA0Ny1jbWFrZS1CdWlsZEFycm93 LVVzZS1BVVRPLW1vZGUtZm9yLXhzaW1kLWRlcGVuZGVuY3ktLnBhdGNoCj4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMC4uYWI1NjgxYmVjZTAKPiAtLS0gL2Rldi9udWxs Cj4gKysrIGIvcGF0Y2hlcy8wMDQ3LWNtYWtlLUJ1aWxkQXJyb3ctVXNlLUFVVE8tbW9kZS1mb3It eHNpbWQtZGVwZW5kZW5jeS0ucGF0Y2gKPiBAQCAtMCwwICsxLDU1IEBACj4gK0Zyb20gNDY4MDNm Y2FhM2IyYjRmMTQzMThiMTMyMGU4ZTNiZWI5Y2YzZWVjNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKPiArRnJvbTogS2VmdSBDaGFpIDxrLmNoYWlAcHJveG1veC5jb20+Cj4gK0RhdGU6IFdlZCwg MTUgT2N0IDIwMjUgMTU6NDY6MjIgKzA4MDAKPiArU3ViamVjdDogW1BBVENIIDQ3LzQ4XSBjbWFr ZS9CdWlsZEFycm93OiBVc2UgQVVUTyBtb2RlIGZvciB4c2ltZCBkZXBlbmRlbmN5Cj4gKyBkZXRl Y3Rpb24KPiArTUlNRS1WZXJzaW9uOiAxLjAKPiArQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBj aGFyc2V0PVVURi04Cj4gK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKPiArCj4gK0Fy cm93IHJlcXVpcmVzIHhzaW1kID49IDkuMC4xIGFjY29yZGluZyB0byBhcnJvdy9jcHAvdGhpcmRw YXJ0eS92ZXJzaW9ucy50eHQuCj4gK1ByZXZpb3VzbHksIHdlIHVuY29uZGl0aW9uYWxseSBzZXQg LUR4c2ltZF9TT1VSQ0U9QlVORExFRCwgZm9yY2luZyB0aGUgdXNlCj4gK29mIEFycm93J3MgdmVu ZG9yZWQgeHNpbWQgcmVnYXJkbGVzcyBvZiBzeXN0ZW0gcGFja2FnZSBhdmFpbGFiaWxpdHkuCj4g Kwo+ICtUaGlzIGNvbW1pdCBjaGFuZ2VzIHRvIC1EeHNpbWRfU09VUkNFPUFVVE8sIHdoaWNoIGFs bG93cyBBcnJvdydzCj4gK3Jlc29sdmVfZGVwZW5kZW5jeSBtZWNoYW5pc20gdG8gYXV0b21hdGlj YWxseToKPiArMS4gVHJ5IHRvIGZpbmQgc3lzdGVtIHhzaW1kIHBhY2thZ2UKPiArMi4gQ2hlY2sg aWYgdmVyc2lvbiA+PSA5LjAuMQo+ICszLiBVc2Ugc3lzdGVtIHZlcnNpb24gaWYgZm91bmQgYW5k IHN1ZmZpY2llbnQKPiArNC4gRmFsbCBiYWNrIHRvIGJ1bmRsZWQgdmVyc2lvbiBvdGhlcndpc2UK PiArCj4gK1RoaXMgcmVkdWNlcyBidWlsZCB0aW1lIGFuZCBkZXBlbmRlbmNpZXMgb24gc3lzdGVt cyB3aXRoIHN1ZmZpY2llbnQgeHNpbWQsCj4gK3doaWxlIG1haW50YWluaW5nIGNvbXBhdGliaWxp dHkgd2l0aCBvbGRlciBkaXN0cmlidXRpb25zLgo+ICsKPiArRGlzdHJpYnV0aW9uIGF2YWlsYWJp bGl0eToKPiArLSBVYnVudHUgTm9ibGUgKDI0LjA0KTogbGlieHNpbWQtZGV2IDEyLjEuMSAo4pyT IHdpbGwgdXNlIHN5c3RlbSkKPiArLSBVYnVudHUgSmFtbXkgKDIyLjA0KTogbGlieHNpbWQtZGV2 IDcuNi4wICjinJcgd2lsbCB1c2UgYnVuZGxlZCkKPiArLSBEZWJpYW4gVHJpeGllICgxMyk6IGxp YnhzaW1kLWRldiAxMy4yLjAgKOKckyB3aWxsIHVzZSBzeXN0ZW0pCj4gKy0gQ2VudE9TIFN0cmVh bSA5OiB4c2ltZC1kZXZlbCA3LjQuOSAo4pyXIHdpbGwgdXNlIGJ1bmRsZWQpCj4gKwo+ICtTaWdu ZWQtb2ZmLWJ5OiBLZWZ1IENoYWkgPGsuY2hhaUBwcm94bW94LmNvbT4KPiArKGNoZXJyeSBwaWNr ZWQgZnJvbSBjb21taXQgMmRlZmRlMzBlNGM2MWNkOWYzMzE5NmI5MWFjMTY1MDU5MjhjZTc3NCkK PiArLS0tCj4gKyBjbWFrZS9tb2R1bGVzL0J1aWxkQXJyb3cuY21ha2UgfCA2ICsrKy0tLQo+ICsg MSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKPiArCj4gK2Rp ZmYgLS1naXQgYS9jbWFrZS9tb2R1bGVzL0J1aWxkQXJyb3cuY21ha2UgYi9jbWFrZS9tb2R1bGVz L0J1aWxkQXJyb3cuY21ha2UKPiAraW5kZXggMGVlMWQ4NWI0OWYuLmNhZGMyOTA5ZmE0IDEwMDY0 NAo+ICstLS0gYS9jbWFrZS9tb2R1bGVzL0J1aWxkQXJyb3cuY21ha2UKPiArKysrIGIvY21ha2Uv bW9kdWxlcy9CdWlsZEFycm93LmNtYWtlCj4gK0BAIC02OSw5ICs2OSw5IEBAIGZ1bmN0aW9uKGJ1 aWxkX2Fycm93KQo+ICsgICAgIGxpc3QoQVBQRU5EIGFycm93X0RFUEVORFMgQm9vc3QpCj4gKyAg IGVuZGlmKCkKPiArIAo+ICstICAjIHNpbmNlIEFycm93IDE1LjAuMCBuZWVkcyB4c2ltZD49OC4x LjAgYW5kIHNpbmNlIFVidW50dSBKYW1teQo+ICstICAjIEplbGx5ZmlzaCBvbmx5IHByb3ZpZGVz IDcuNi4wLCB3ZSdsbCBoYXZlIGFycm93IGJ1aWxkIGl0IGFzIHNvdXJjZQo+ICstICBsaXN0KEFQ UEVORCBhcnJvd19DTUFLRV9BUkdTIC1EeHNpbWRfU09VUkNFPUJVTkRMRUQpCj4gKysgICMgQXJy b3cgcmVxdWlyZXMgeHNpbWQgPj0gOS4wLjEgKHNlZSBhcnJvdy9jcHAvdGhpcmRwYXJ0eS92ZXJz aW9ucy50eHQpLgo+ICsrICAjIFVzZSBBVVRPIHRvIGxldCBBcnJvdyBkZXRlY3Qgc3lzdGVtIHhz aW1kIGFuZCBmYWxsIGJhY2sgdG8gYnVuZGxlZCBpZiBuZWVkZWQuCj4gKysgIGxpc3QoQVBQRU5E IGFycm93X0NNQUtFX0FSR1MgLUR4c2ltZF9TT1VSQ0U9QVVUTykKPiArIAo+ICsgICAjIGNtYWtl IGRvZXNuJ3QgcHJvcGVybHkgaGFuZGxlIGFyZ3VtZW50cyBjb250YWluaW5nICI7Iiwgc3VjaCBh cwo+ICsgICAjIENNQUtFX1BSRUZJWF9QQVRILCBmb3Igd2hpY2ggcmVhc29uIHdlJ2xsIGhhdmUg dG8gdXNlIHNvbWUgb3RoZXIgc2VwYXJhdG9yLgo+ICstLSAKPiArMi40Ny4zCj4gKwo+IGRpZmYg LS1naXQgYS9wYXRjaGVzLzAwNDgtZGViaWFuLWNvbnRyb2wtQWRkLWxpYnhzaW1kLWRldi1idWls ZC1kZXBlbmRlbmN5LWZvci5wYXRjaCBiL3BhdGNoZXMvMDA0OC1kZWJpYW4tY29udHJvbC1BZGQt bGlieHNpbWQtZGV2LWJ1aWxkLWRlcGVuZGVuY3ktZm9yLnBhdGNoCj4gbmV3IGZpbGUgbW9kZSAx MDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMC4uYzQzMWZiNmVkYzEKPiAtLS0gL2Rldi9udWxsCj4g KysrIGIvcGF0Y2hlcy8wMDQ4LWRlYmlhbi1jb250cm9sLUFkZC1saWJ4c2ltZC1kZXYtYnVpbGQt ZGVwZW5kZW5jeS1mb3IucGF0Y2gKPiBAQCAtMCwwICsxLDQxIEBACj4gK0Zyb20gMjBmYjFiOGVm ZjlkOWI0ZTY4M2MzM2U1NTY3NTIwODViNDA4YzI0YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK PiArRnJvbTogS2VmdSBDaGFpIDxrLmNoYWlAcHJveG1veC5jb20+Cj4gK0RhdGU6IFdlZCwgMTUg T2N0IDIwMjUgMTU6NDY6MjYgKzA4MDAKPiArU3ViamVjdDogW1BBVENIIDQ4LzQ4XSBkZWJpYW4v Y29udHJvbDogQWRkIGxpYnhzaW1kLWRldiBidWlsZCBkZXBlbmRlbmN5IGZvcgo+ICsgdmVuZG9y ZWQgQXJyb3cKPiArCj4gK0luIGNvbW1pdCBlODQ2MGNiZCwgd2UgaW50cm9kdWNlZCB0aGUgInBr Zy5jZXBoLmFycm93IiBidWlsZCBwcm9maWxlIHRvCj4gK3N1cHBvcnQgYnVpbGRpbmcgd2l0aCBz eXN0ZW0gQXJyb3cgcGFja2FnZXMuIEhvd2V2ZXIsIG5laXRoZXIgRGViaWFuIG5vcgo+ICtVYnVu dHUgY3VycmVudGx5IHNoaXBzIEFycm93IHBhY2thZ2VzLgo+ICsKPiArU2luY2UgV0lUSF9SQURP U0dXX1NFTEVDVF9QQVJRVUVUIGlzIGFsd2F5cyBlbmFibGVkIGluIGRlYmlhbi9ydWxlcywKPiAr QXJyb3cgc3VwcG9ydCBpcyByZXF1aXJlZCBmb3IgYWxsIGJ1aWxkcy4gV2hlbiB0aGUgcGtnLmNl cGguYXJyb3cgcHJvZmlsZQo+ICtpcyBub3Qgc2VsZWN0ZWQsIHRoZSBidWlsZCB1c2VzIHZlbmRv cmVkIEFycm93LiBXaXRoIHRoZSByZWNlbnQgY2hhbmdlIHRvCj4gK3VzZSBBVVRPIG1vZGUgZm9y IHhzaW1kIGRldGVjdGlvbiwgQXJyb3cgd2lsbCBhdHRlbXB0IHRvIGZpbmQgc3lzdGVtIHhzaW1k Cj4gKz49IDkuMC4xLiBBZGRpbmcgbGlieHNpbWQtZGV2IGFzIGEgYnVpbGQgZGVwZW5kZW5jeSBl bnN1cmVzIGl0J3MgYXZhaWxhYmxlCj4gK2ZvciBBcnJvdyB0byBkZXRlY3QgYW5kIHVzZSwgcmVk dWNpbmcgYnVpbGQgdGltZSBvbiBzdXBwb3J0ZWQgZGlzdHJpYnV0aW9ucy4KPiArCj4gK09uIGRp c3RyaWJ1dGlvbnMgd2l0aCBpbnN1ZmZpY2llbnQgeHNpbWQgdmVyc2lvbnMgKDwgOS4wLjEpLCBB cnJvdyB3aWxsCj4gK2F1dG9tYXRpY2FsbHkgZmFsbCBiYWNrIHRvIGl0cyBidW5kbGVkIHZlcnNp b24uCj4gKwo+ICtTaWduZWQtb2ZmLWJ5OiBLZWZ1IENoYWkgPGsuY2hhaUBwcm94bW94LmNvbT4K PiArKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgOTI5YjQ3ZjgzODgwNjgzYjM3NmI5ZGNjMDA2 MDkzODQ0N2YxMWM4OCkKPiArLS0tCj4gKyBkZWJpYW4vY29udHJvbCB8IDEgKwo+ICsgMSBmaWxl IGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCj4gKwo+ICtkaWZmIC0tZ2l0IGEvZGViaWFuL2NvbnRy b2wgYi9kZWJpYW4vY29udHJvbAo+ICtpbmRleCA5NDk5NzgyN2JkMi4uN2QzMGUxZmFhNzAgMTAw NjQ0Cj4gKy0tLSBhL2RlYmlhbi9jb250cm9sCj4gKysrKyBiL2RlYmlhbi9jb250cm9sCj4gK0BA IC04NSw2ICs4NSw3IEBAIEJ1aWxkLURlcGVuZHM6IGF1dG9tYWtlLAo+ICsgICAgICAgICAgICAg ICAgbGlicG1lbS1kZXYgPHBrZy5jZXBoLnBtZGs+LAo+ICsgICAgICAgICAgICAgICAgbGlicG1l bW9iai1kZXYgKD49IDEuOCkgPHBrZy5jZXBoLnBtZGs+LAo+ICsgICAgICAgICAgICAgICAgbGli cHJvdG9idWYtZGV2IDxwa2cuY2VwaC5jcmltc29uPiwKPiArKyAgICAgICAgICAgICAgIGxpYnhz aW1kLWRldiA8IXBrZy5jZXBoLmFycm93PiwKPiArICAgICAgICAgICAgICAgIG5pbmphLWJ1aWxk LAo+ICsgICAgICAgICAgICAgICAgbmxvaG1hbm4tanNvbjMtZGV2LAo+ICsgICAgICAgICAgICAg ICAgcGF0Y2gsCj4gKy0tIAo+ICsyLjQ3LjMKPiArCj4gZGlmZiAtLWdpdCBhL3BhdGNoZXMvc2Vy aWVzIGIvcGF0Y2hlcy9zZXJpZXMKPiBpbmRleCBkNzc1YThhMDY4ZC4uZjJiZmVkMWI5MzkgMTAw NjQ0Cj4gLS0tIGEvcGF0Y2hlcy9zZXJpZXMKPiArKysgYi9wYXRjaGVzL3Nlcmllcwo+IEBAIC0z OSwzICszOSwxMSBAQAo+ICAwMDM5LW1nci1maXgtbW9kdWxlLWltcG9ydC1ieS1tYWtpbmctTk9U SUZZX1RZUEVTLWluLXB5LW0ucGF0Y2gKPiAgMDA0MC1weWJpbmQtcmJkLWRpc2FibGUtb25fcHJv Z3Jlc3MtY2FsbGJhY2tzLXRvLXByZXZlbnQtLnBhdGNoCj4gIDAwNDEtc3lzdGVtZC1zZXJ2aWNl cy1maXgtaW5zdGFsbGluZy1jZXBoLXZvbHVtZS5wYXRjaAo+ICswMDQyLWNlcGhhZG0tZml4LXNv bWUtaXNzdWVzLXJ1bm5pbmctZXhpc3RpbmctY2VwaGFkbS1idWkucGF0Y2gKPiArMDA0My1jZXBo YWRtLWZpeC16aXBfcm9vdF9lbnRyaWVzLXBvcHVsYXRpb24taW4tdmVyc2lvbi1jLnBhdGNoCj4g KzAwNDQtY2VwaGFkbS1zdXBwb3J0LWNlcGhhZG0tcnBtLWJhc2VkLWJ1aWxkcy13aXRob3V0LXRv cC5wYXRjaAo+ICswMDQ1LWNlcGhhZG0tYnVpbGQtQWRkLURlYmlhbi1wYWNrYWdlLXN1cHBvcnQt Zm9yLWJ1bmRsZWQucGF0Y2gKPiArMDA0Ni1kZWJpYW4tVXNlLXN5c3RlbS1wYWNrYWdlcy1mb3It Y2VwaGFkbS1idW5kbGVkLWRlcGVuLnBhdGNoCj4gKzAwNDctY21ha2UtQnVpbGRBcnJvdy1Vc2Ut QVVUTy1tb2RlLWZvci14c2ltZC1kZXBlbmRlbmN5LS5wYXRjaAo+ICswMDQ4LWRlYmlhbi1jb250 cm9sLUFkZC1saWJ4c2ltZC1kZXYtYnVpbGQtZGVwZW5kZW5jeS1mb3IucGF0Y2gKPiArICAKCgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KcHZlLWRldmVs IG1haWxpbmcgbGlzdApwdmUtZGV2ZWxAbGlzdHMucHJveG1veC5jb20KaHR0cHM6Ly9saXN0cy5w cm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vcHZlLWRldmVsCg==