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 4998E1FF191 for ; Tue, 9 Sep 2025 15:57:54 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 67F9EB3A7; Tue, 9 Sep 2025 15:57:57 +0200 (CEST) Message-ID: Date: Tue, 9 Sep 2025 15:57:23 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: Dominik Csapak , Proxmox Datacenter Manager development discussion References: <20250909100838.234778-1-s.hanreich@proxmox.com> <20250909100838.234778-7-s.hanreich@proxmox.com> <78de94a6-ee2b-41e9-b53f-d2019f9a98db@proxmox.com> Content-Language: en-US From: Stefan Hanreich In-Reply-To: <78de94a6-ee2b-41e9-b53f-d2019f9a98db@proxmox.com> X-SPAM-LEVEL: Spam detection results: 0 AWL 0.713 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 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. [mod.rs] Subject: Re: [pdm-devel] [PATCH proxmox-datacenter-manager 5/5] ui: sdn: add zone tree X-BeenThere: pdm-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Datacenter Manager development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Datacenter Manager development discussion Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pdm-devel-bounces@lists.proxmox.com Sender: "pdm-devel" T24gOS85LzI1IDM6NDEgUE0sIERvbWluaWsgQ3NhcGFrIHdyb3RlOgo+IGxvb2tzIG1vc3RseSBm aW5lIHRvIG1lIChzZWUgc29tZSBjb21tZW50cyBpbmxpbmUpCj4gCj4gYnV0IHRoZSB0b29sYmFy IGxvb2tzIHdlaXJkIGlmIGl0J3MgZW1wdHkgdGhpcyB3YXkKPiAKPiBpIGtub3cgd2UgYWx3YXlz IGhhdmUgdGhlIHJlZnJlc2ggYnV0dG9uIG9uIHRoZSByaWdodCwgYnV0Cj4gbWF5YmUgcHV0dGlu ZyBpdCBvbiB0aGUgbGVmdCBmb3IgdGhpcyBzaW5nbGUgcGFuZWwgY291bGQgbWFrZQo+IHNlbnNl LCBqdXN0IHNvIHRoZSB0b29sYmFyIGlzbid0IGVtcHR5IG9uIHRoZSBsZWZ0IGhhbmQgc2lkZT8+ IGFsdGVybmF0aXZlbHkgd2UgY291bGQgcHV0IGEgc2hvcnQgdGl0bGUgdGhlcmU/CgpJIHRob3Vn aHQgYWJvdXQgaXQgdG9vLCBidXQgZ2VuZXJhbGx5IHdlIHRhbGtlZCBvbmNlIHRoYXQgd2UgdXN1 YWxseQpkb24ndCB1c2UgdGl0bGVzIGFuZCBpdCBzZWVtcyB3ZWlyZCB0byBicmVhayB0aGF0IGhl cmUgLSBhcyBkb2VzCmJyZWFraW5nIHRoZSBwb3NpdGlvbiBvZiB0aGUgcmVmcmVzaCBidXR0b24g aW1vLiBCdXQgSSBhZ3JlZSB0aGF0IGl0CmRvZXMgbG9vayBiYXJyZW4gYXRtLgoKPiBPbiA5Lzkv MjUgMTI6MDggUE0sIFN0ZWZhbiBIYW5yZWljaCB3cm90ZToKPj4gVGhpcyBzaG93cyBhbiBvdmVy dmlldyBvZiB0aGUgc3RhdGUgb2YgYWxsIHpvbmVzIGFjcm9zcyBhbGwgcmVtb3RlcywKPj4gc2lt aWxhciB0byB0aGUgY3VycmVudCBvdmVydmlldyBpbiBQcm94bW94IFZFLCBpbiB0aGUgU0ROIHRh Yi4gQWRkIGl0Cj4+IGFzIGEgdG9wLWxldmVsIGNvbnRhaW5lciBhbmQgbW92ZSB0aGUgRVZQTiBz ZWN0aW9uIGJlbG93IHRoYXQsIHRvCj4+IG1pbWljIHRoZSBtZW51IHN0cnVjdHVyZSBmcm9tIFBy b3htb3ggVkUuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBIYW5yZWljaCA8cy5oYW5yZWlj aEBwcm94bW94LmNvbT4KPj4gLS0tCj4+IMKgIHVpL3NyYy9tYWluX21lbnUucnPCoMKgwqDCoCB8 wqAgMTUgKy0KPj4gwqAgdWkvc3JjL3Nkbi9tb2QucnPCoMKgwqDCoMKgwqAgfMKgwqAgMyArCj4+ IMKgIHVpL3NyYy9zZG4vem9uZV90cmVlLnJzIHwgMjk5ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKPj4gwqAgMyBmaWxlcyBjaGFuZ2VkLCAzMTYgaW5zZXJ0aW9ucygr KSwgMSBkZWxldGlvbigtKQo+PiDCoCBjcmVhdGUgbW9kZSAxMDA2NDQgdWkvc3JjL3Nkbi96b25l X3RyZWUucnMKPj4KPj4gZGlmZiAtLWdpdCBhL3VpL3NyYy9tYWluX21lbnUucnMgYi91aS9zcmMv bWFpbl9tZW51LnJzCj4+IGluZGV4IDdlYWM3NzUuLmY0NDBiZTggMTAwNjQ0Cj4+IC0tLSBhL3Vp L3NyYy9tYWluX21lbnUucnMKPj4gKysrIGIvdWkvc3JjL21haW5fbWVudS5ycwo+PiBAQCAtMTgs NiArMTgsNyBAQCB1c2UgcGRtX2FwaV90eXBlczo6cmVtb3Rlczo6UmVtb3RlVHlwZTsKPj4gwqAg wqAgdXNlIGNyYXRlOjpyZW1vdGVzOjpSZW1vdGVzUGFuZWw7Cj4+IMKgIHVzZSBjcmF0ZTo6c2Ru OjpldnBuOjpFdnBuUGFuZWw7Cj4+ICt1c2UgY3JhdGU6OnNkbjo6Wm9uZVRyZWU7Cj4+IMKgIHVz ZSBjcmF0ZTo6ewo+PiDCoMKgwqDCoMKgIEFjY2Vzc0NvbnRyb2wsIENlcnRpZmljYXRlc1BhbmVs LCBEYXNoYm9hcmQsIFJlbW90ZUxpc3QsCj4+IFNlcnZlckFkbWluaXN0cmF0aW9uLAo+PiDCoMKg wqDCoMKgIFN5c3RlbUNvbmZpZ3VyYXRpb24sCj4+IEBAIC0yNDgsOCArMjQ5LDEwIEBAIGltcGwg Q29tcG9uZW50IGZvciBQZG1NYWluTWVudSB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IGFkbWluX3N1Ym1lbnUsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCApOwo+PiDCoCArwqDCoMKgwqDC oMKgwqAgbGV0IG11dCBzZG5fc3VibWVudSA9IE1lbnU6Om5ldygpOwo+PiArCj4+IMKgwqDCoMKg wqDCoMKgwqDCoCByZWdpc3Rlcl92aWV3KAo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAmbXV0 IG1lbnUsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICZtdXQgc2RuX3N1Ym1lbnUsCj4+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICZtdXQgY29udGVudCwKPj4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgdHIhKCJFVlBOIiksCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJl dnBuIiwKPj4gQEAgLTI1Nyw2ICsyNjAsMTYgQEAgaW1wbCBDb21wb25lbnQgZm9yIFBkbU1haW5N ZW51IHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfF98IEV2cG5QYW5lbDo6bmV3KCku aW50bygpLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgKTsKPj4gwqAgK8KgwqDCoMKgwqDCoMKgIHJl Z2lzdGVyX3N1Ym1lbnUoCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICZtdXQgbWVudSwKPj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJm11dCBjb250ZW50LAo+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCB0ciEoIlNETiIpLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAic2RuIiwKPj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgU29tZSgiZmEgZmEtc2RuIiksCj4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHxffCBab25lVHJlZTo6bmV3KCkuaW50bygpLAo+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBzZG5fc3VibWVudSwKPj4gK8KgwqDCoMKgwqDCoMKgICk7Cj4+ICsKPj4gwqDC oMKgwqDCoMKgwqDCoMKgIGxldCBtdXQgcmVtb3RlX3N1Ym1lbnUgPSBNZW51OjpuZXcoKTsKPj4g wqAgwqDCoMKgwqDCoMKgwqDCoMKgIGZvciByZW1vdGUgaW4gc2VsZi5yZW1vdGVfbGlzdF9jYWNo ZS5pdGVyKCkgewo+PiBkaWZmIC0tZ2l0IGEvdWkvc3JjL3Nkbi9tb2QucnMgYi91aS9zcmMvc2Ru L21vZC5ycwo+PiBpbmRleCBlZjJlYWI5Li5iNmFiOGFkIDEwMDY0NAo+PiAtLS0gYS91aS9zcmMv c2RuL21vZC5ycwo+PiArKysgYi91aS9zcmMvc2RuL21vZC5ycwo+PiBAQCAtMSArMSw0IEBACj4+ IMKgIHB1YiBtb2QgZXZwbjsKPj4gKwo+PiArbW9kIHpvbmVfdHJlZTsKPj4gK3B1YiB1c2Ugem9u ZV90cmVlOjpab25lVHJlZTsKPj4gZGlmZiAtLWdpdCBhL3VpL3NyYy9zZG4vem9uZV90cmVlLnJz IGIvdWkvc3JjL3Nkbi96b25lX3RyZWUucnMKPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5k ZXggMDAwMDAwMC4uNTVhNTg4OQo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL3VpL3NyYy9zZG4v em9uZV90cmVlLnJzCj4+IEBAIC0wLDAgKzEsMjk5IEBACj4+ICt1c2UgZnV0dXJlczo6RnV0dXJl Owo+PiArdXNlIHN0ZDo6Y21wOjpPcmRlcmluZzsKPj4gK3VzZSBzdGQ6OnBpbjo6UGluOwo+PiAr dXNlIHN0ZDo6cmM6OlJjOwo+PiArCj4+ICt1c2UgeWV3Ojp2aXJ0dWFsX2RvbTo6e0tleSwgVkNv bXAsIFZOb2RlfTsKPj4gK3VzZSB5ZXc6OntIdG1sLCBQcm9wZXJ0aWVzfTsKPj4gKwo+PiArdXNl IHBkbV9hcGlfdHlwZXM6OnJlc291cmNlOjp7Cj4+ICvCoMKgwqAgUHZlU2RuUmVzb3VyY2UsIFJl bW90ZVJlc291cmNlcywgUmVzb3VyY2VUeXBlLCBTZG5TdGF0dXMsCj4+IFNkblpvbmVSZXNvdXJj ZSwKPj4gK307Cj4+ICt1c2UgcGRtX2NsaWVudDo6dHlwZXM6OlJlc291cmNlOwo+PiArdXNlIHBy b3htb3hfeWV3X2NvbXA6OntMb2FkYWJsZUNvbXBvbmVudCwgTG9hZGFibGVDb21wb25lbnRDb250 ZXh0LAo+PiBMb2FkYWJsZUNvbXBvbmVudE1hc3Rlcn07Cj4+ICt1c2UgcHd0Ojpwcm9wczo6RXZl bnRTdWJzY3JpYmVyOwo+PiArdXNlIHB3dDo6d2lkZ2V0Ojp7QnV0dG9uLCBUb29sYmFyfTsKPj4g K3VzZSBwd3Q6OnsKPj4gK8KgwqDCoCBjc3MsCj4+ICvCoMKgwqAgY3NzOjpGb250Q29sb3IsCj4+ ICvCoMKgwqAgcHJvcHM6OntDb250YWluZXJCdWlsZGVyLCBFeHRyYWN0UHJpbWFyeUtleSwgV2lk Z2V0QnVpbGRlcn0sCj4+ICvCoMKgwqAgc3RhdGU6OntTZWxlY3Rpb24sIFNsYWJUcmVlLCBUcmVl U3RvcmV9LAo+PiArwqDCoMKgIHRyLAo+PiArwqDCoMKgIHdpZGdldDo6ewo+PiArwqDCoMKgwqDC oMKgwqAgZGF0YV90YWJsZTo6e0RhdGFUYWJsZSwgRGF0YVRhYmxlQ29sdW1uLCBEYXRhVGFibGVI ZWFkZXJ9LAo+PiArwqDCoMKgwqDCoMKgwqAgZXJyb3JfbWVzc2FnZSwgQ29sdW1uLCBGYSwgUm93 LAo+PiArwqDCoMKgIH0sCj4+ICt9Owo+PiArCj4+ICt1c2UgY3JhdGU6OnBkbV9jbGllbnQ7Cj4+ ICsKPj4gKyNbZGVyaXZlKFBhcnRpYWxFcSwgUHJvcGVydGllcyldCj4+ICtwdWIgc3RydWN0IFpv bmVUcmVlIHt9Cj4+ICsKPj4gK2ltcGwgWm9uZVRyZWUgewo+PiArwqDCoMKgIHB1YiBmbiBuZXco KSAtPiBTZWxmIHsKPj4gK8KgwqDCoMKgwqDCoMKgIHlldzo6cHJvcHMhKFNlbGYge30pCj4+ICvC oMKgwqAgfQo+PiArfQo+PiArCj4+ICtpbXBsIEZyb208Wm9uZVRyZWU+IGZvciBWTm9kZSB7Cj4+ ICvCoMKgwqAgZm4gZnJvbSh2YWx1ZTogWm9uZVRyZWUpIC0+IFNlbGYgewo+PiArwqDCoMKgwqDC oMKgwqAgbGV0IGNvbXAgPQo+PiBWQ29tcDo6bmV3Ojo8TG9hZGFibGVDb21wb25lbnRNYXN0ZXI8 Wm9uZVRyZWVDb21wb25lbnQ+PihSYzo6bmV3KHZhbHVlKSwgTm9uZSk7Cj4+ICvCoMKgwqDCoMKg wqDCoCBWTm9kZTo6ZnJvbShjb21wKQo+PiArwqDCoMKgIH0KPj4gK30KPj4gKwo+PiArI1tkZXJp dmUoQ2xvbmUsIFBhcnRpYWxFcSwgRGVidWcpXQo+PiArc3RydWN0IFpvbmVEYXRhIHsKPj4gK8Kg wqDCoCByZW1vdGU6IFN0cmluZywKPj4gK8KgwqDCoCBub2RlOiBTdHJpbmcsCj4+ICvCoMKgwqAg bmFtZTogU3RyaW5nLAo+PiArwqDCoMKgIHN0YXR1czogU2RuU3RhdHVzLAo+PiArfQo+PiArCj4+ ICsjW2Rlcml2ZShDbG9uZSwgUGFydGlhbEVxLCBEZWJ1ZyldCj4+ICtlbnVtIFpvbmVUcmVlRW50 cnkgewo+PiArwqDCoMKgIFJvb3QsCj4+ICvCoMKgwqAgUmVtb3RlKFN0cmluZyksCj4+ICvCoMKg wqAgTm9kZShTdHJpbmcsIFN0cmluZyksCj4+ICvCoMKgwqAgWm9uZShab25lRGF0YSksCj4+ICt9 Cj4+ICsKPj4gK2ltcGwgWm9uZVRyZWVFbnRyeSB7Cj4+ICvCoMKgwqAgZm4gZnJvbV96b25lX3Jl c291cmNlKHJlbW90ZTogU3RyaW5nLCB2YWx1ZTogU2RuWm9uZVJlc291cmNlKSAtPgo+PiBTZWxm IHsKPj4gK8KgwqDCoMKgwqDCoMKgIFNlbGY6OlpvbmUoWm9uZURhdGEgewo+PiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCByZW1vdGUsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG5vZGU6IHZh bHVlLm5vZGUuY2xvbmUoKSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbmFtZTogdmFsdWUu bmFtZS5jbG9uZSgpLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdGF0dXM6IHZhbHVlLnN0 YXR1cywKPj4gK8KgwqDCoMKgwqDCoMKgIH0pCj4+ICvCoMKgwqAgfQo+PiArCj4+ICvCoMKgwqAg Zm4gbmFtZSgmc2VsZikgLT4gJnN0ciB7Cj4+ICvCoMKgwqDCoMKgwqDCoCBtYXRjaCAmc2VsZiB7 Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFNlbGY6OlJvb3QgPT4gIiIsCj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIFNlbGY6OlJlbW90ZShuYW1lKSA9PiBuYW1lLAo+PiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBTZWxmOjpOb2RlKF8sIG5hbWUpID0+IG5hbWUsCj4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIFNlbGY6OlpvbmUoem9uZSkgPT4gJnpvbmUubmFtZSwKPj4gK8KgwqDCoMKg wqDCoMKgIH0KPj4gK8KgwqDCoCB9Cj4+ICt9Cj4+ICsKPj4gK2ltcGwgRXh0cmFjdFByaW1hcnlL ZXkgZm9yIFpvbmVUcmVlRW50cnkgewo+PiArwqDCoMKgIGZuIGV4dHJhY3Rfa2V5KCZzZWxmKSAt PiB5ZXc6OnZpcnR1YWxfZG9tOjpLZXkgewo+PiArwqDCoMKgwqDCoMKgwqAgS2V5Ojpmcm9tKG1h dGNoIHNlbGYgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBab25lVHJlZUVudHJ5OjpSb290 ID0+ICIvIi50b19zdHJpbmcoKSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgWm9uZVRyZWVF bnRyeTo6UmVtb3RlKG5hbWUpID0+IGZvcm1hdCEoIi97bmFtZX0iKSwKPj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqAgWm9uZVRyZWVFbnRyeTo6Tm9kZShyZW1vdGVfbmFtZSwgbmFtZSkgPT4gZm9y bWF0ISgiLwo+PiB7cmVtb3RlX25hbWV9L3tuYW1lfSIpLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBab25lVHJlZUVudHJ5Ojpab25lKHpvbmUpID0+IGZvcm1hdCEoIi97fS97fS97fSIsCj4+ IHpvbmUucmVtb3RlLCB6b25lLm5vZGUsIHpvbmUubmFtZSksCj4+ICvCoMKgwqDCoMKgwqDCoCB9 KQo+PiArwqDCoMKgIH0KPj4gK30KPj4gKwo+PiArcHViIGVudW0gWm9uZVRyZWVNc2cgewo+PiAr wqDCoMKgIExvYWRGaW5pc2hlZChWZWM8UmVtb3RlUmVzb3VyY2VzPiksCj4+ICvCoMKgwqAgUmVs b2FkLAo+PiArfQo+PiArCj4+ICtwdWIgc3RydWN0IFpvbmVUcmVlQ29tcG9uZW50IHsKPj4gK8Kg wqDCoCBzdG9yZTogVHJlZVN0b3JlPFpvbmVUcmVlRW50cnk+LAo+PiArwqDCoMKgIHNlbGVjdGlv bjogU2VsZWN0aW9uLAo+PiArwqDCoMKgIHJlbW90ZV9lcnJvcnM6IFZlYzxTdHJpbmc+LAo+PiAr wqDCoMKgIGNvbHVtbnM6IFJjPFZlYzxEYXRhVGFibGVIZWFkZXI8Wm9uZVRyZWVFbnRyeT4+PiwK Pj4gK30KPj4gKwo+PiArZm4gZGVmYXVsdF9zb3J0ZXIoYTogJlpvbmVUcmVlRW50cnksIGI6ICZa b25lVHJlZUVudHJ5KSAtPiBPcmRlcmluZyB7Cj4+ICvCoMKgwqAgYS5uYW1lKCkuY21wKGIubmFt ZSgpKQo+PiArfQo+PiArCj4+ICtpbXBsIFpvbmVUcmVlQ29tcG9uZW50IHsKPj4gK8KgwqDCoCBm biBjb2x1bW5zKHN0b3JlOiBUcmVlU3RvcmU8Wm9uZVRyZWVFbnRyeT4pIC0+Cj4+IFJjPFZlYzxE YXRhVGFibGVIZWFkZXI8Wm9uZVRyZWVFbnRyeT4+PiB7Cj4+ICvCoMKgwqDCoMKgwqDCoCBSYzo6 bmV3KHZlYyFbCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIERhdGFUYWJsZUNvbHVtbjo6bmV3 KHRyISgiTmFtZSIpKQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC50cmVlX2Nv bHVtbihzdG9yZSkKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAucmVuZGVyKHxl bnRyeTogJlpvbmVUcmVlRW50cnl8IHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGxldCBtdXQgcm93ID0KPj4gUm93OjpuZXcoKS5jbGFzcyhjc3M6OkFsaWduSXRl bXM6OkJhc2VsaW5lKS5nYXAoMik7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBsZXQgbmFtZSA9IGVudHJ5Lm5hbWUoKTsKPj4gKwo+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcm93ID0gbWF0Y2ggZW50cnkgewo+PiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBab25lVHJlZUVudHJ5OjpSZW1v dGUoXykgPT4KPj4gcm93LndpdGhfY2hpbGQoRmE6Om5ldygic2VydmVyIikpLAo+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBab25lVHJlZUVudHJ5OjpO b2RlKF8sIF8pID0+Cj4+IHJvdy53aXRoX2NoaWxkKEZhOjpuZXcoImJ1aWxkaW5nIikpLAo+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBab25lVHJlZUVu dHJ5Ojpab25lKF8pID0+Cj4+IHJvdy53aXRoX2NoaWxkKEZhOjpuZXcoInRoIikpLAo+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBfID0+IHJvdywKPj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH07Cj4+ICsKPj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJvdy53aXRoX2NoaWxkKG5hbWUpLmlu dG8oKQo+IAo+IGkgbWVhbiBpdCB3b3JrcywgYnV0IGknZCBwcm9iYWJseSB3cml0ZSB0aGlzIHBh cnQgYSBiaXQgZGlmZmVyZW50bHk6Cj4gCj4gbGV0IGljb24gPSBtYXRjaCBlbnRyeSB7Cj4gwqDC oMKgIC4uLiA9PiBTb21lKCJzZXJ2ZXIiKSwKPiDCoMKgwqAgLi4uID0+IFNvbWUoImJ1aWxkaW5n IiksCj4gwqDCoMKgIC4uLiA9PiBTb21lKCJ0aCIpLAo+IMKgwqDCoMKgIF8gPT4gTm9uZSwKPiB9 Owo+IAo+IFJvdzo6bmV3KCkKPiDCoMKgwqAgLmNsYXNzKC4uLikKPiDCoMKgwqAgLmdhcCguLi4p Cj4gwqDCoMKgIC53aXRoX29wdGlvbmFsX2NoaWxkKGljb24ubWFwKHxpY29ufEZhOjpuZXcoaWNv bikpCj4gwqDCoMKgIC53aXRoX2NoaWxkKG5hbWUpLmludG8oKQo+IAo+IAo+IHdvdWxkIHRoYXQg dG9vIHdvcms/Cj4gCgp5ZWFoLCB0aGF0IHNlZW1zIGEgbG90IGJldHRlci4KCj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfSkKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAuc29ydGVyKGRlZmF1bHRfc29ydGVyKQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIC5pbnRvKCksCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIERhdGFUYWJsZUNvbHVt bjo6bmV3KHRyISgiU3RhdHVzIikpCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg LnJlbmRlcih8ZW50cnk6ICZab25lVHJlZUVudHJ5fCB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBsZXQgbXV0IHJvdyA9Cj4+IFJvdzo6bmV3KCkuY2xhc3MoY3Nz OjpBbGlnbkl0ZW1zOjpCYXNlbGluZSkuZ2FwKDIpOwo+PiArCj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiBsZXQgWm9uZVRyZWVFbnRyeTo6Wm9uZSh6b25lKSA9 IGVudHJ5IHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgcm93ID0gbWF0Y2ggem9uZS5zdGF0dXMgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFNkblN0YXR1czo6QXZhaWxhYmxlID0+IHsK Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgCj4+IHJvdy53aXRoX2NoaWxkKEZhOjpuZXcoImNoZWNrIikuY2xhc3MoRm9udENv bG9yOjpTdWNjZXNzKSkKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB9Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgU2RuU3RhdHVzOjpFcnJvciA9PiB7Cj4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByb3cu d2l0aF9jaGlsZChGYTo6bmV3KCJ0aW1lcy0KPj4gY2lyY2xlIikuY2xhc3MoRm9udENvbG9yOjpF cnJvcikpCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgfQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIF8gPT4gcm93LAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB9Owo+PiArCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHJvdyA9IHJvdy53aXRoX2NoaWxkKHpvbmUuc3RhdHVzKTsKPj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0gZWxzZSB7Cj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJvdyA9IHJvdy53aXRo X2NoaWxkKCIiKTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0K Pj4gKwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcm93LmludG8o KQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0pCj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgLmludG8oKSwKPj4gK8KgwqDCoMKgwqDCoMKgIF0pCj4+ICvCoMKg wqAgfQo+PiArfQo+PiArCj4+ICtmbiBidWlsZF9zdG9yZV9mcm9tX3Jlc3BvbnNlKAo+PiArwqDC oMKgIHJlbW90ZV9yZXNvdXJjZXM6IFZlYzxSZW1vdGVSZXNvdXJjZXM+LAo+PiArKSAtPiAoU2xh YlRyZWU8Wm9uZVRyZWVFbnRyeT4sIFZlYzxTdHJpbmc+KSB7Cj4+ICvCoMKgwqAgbGV0IG11dCB0 cmVlID0gU2xhYlRyZWU6Om5ldygpOwo+PiArCj4+ICvCoMKgwqAgbGV0IG11dCByb290ID0gdHJl ZS5zZXRfcm9vdChab25lVHJlZUVudHJ5OjpSb290KTsKPj4gK8KgwqDCoCByb290LnNldF9leHBh bmRlZCh0cnVlKTsKPj4gKwo+PiArwqDCoMKgIGxldCBtdXQgcmVtb3RlX2Vycm9ycyA9IFZlYzo6 bmV3KCk7Cj4+ICsKPj4gK8KgwqDCoCBmb3IgcmVzb3VyY2VzIGluIHJlbW90ZV9yZXNvdXJjZXMg ewo+PiArwqDCoMKgwqDCoMKgwqAgaWYgbGV0IFNvbWUoZXJyb3IpID0gcmVzb3VyY2VzLmVycm9y IHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmVtb3RlX2Vycm9ycy5wdXNoKGZvcm1hdCEo Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgImNvdWxkIG5vdCBmZXRjaCByZXNv dXJjZXMgZnJvbSByZW1vdGUge306IHtlcnJvcn0iLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHJlc291cmNlcy5yZW1vdGUsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICkp Owo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb250aW51ZTsKPj4gK8KgwqDCoMKgwqDCoMKg IH0KPj4gKwo+PiArwqDCoMKgwqDCoMKgwqAgbGV0IG11dCByZW1vdGUgPQo+PiByb290LmFwcGVu ZChab25lVHJlZUVudHJ5OjpSZW1vdGUocmVzb3VyY2VzLnJlbW90ZS5jbG9uZSgpKSk7Cj4+ICvC oMKgwqDCoMKgwqDCoCByZW1vdGUuc2V0X2V4cGFuZGVkKHRydWUpOwo+PiArCj4+ICvCoMKgwqDC oMKgwqDCoCBmb3IgcmVzb3VyY2UgaW4gcmVzb3VyY2VzLnJlc291cmNlcyB7Cj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGlmIGxldAo+PiBSZXNvdXJjZTo6UHZlU2RuKFB2ZVNkblJlc291cmNl Ojpab25lKHpvbmVfcmVzb3VyY2UpKSA9IHJlc291cmNlIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBsZXQgbm9kZV9lbnRyeSA9IHJlbW90ZS5jaGlsZHJlbl9tdXQoKS5maW5k KHxlbnRyeXwgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYg bGV0IFpvbmVUcmVlRW50cnk6Ok5vZGUoXywgbmFtZSkgPQo+PiBlbnRyeS5yZWNvcmQoKSB7Cj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIG5hbWUg PT0gJnpvbmVfcmVzb3VyY2Uubm9kZSB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHRydWU7Cj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4gKwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgZmFsc2UKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9 KTsKPj4gKwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGxldCBub2RlX25hbWUg PSB6b25lX3Jlc291cmNlLm5vZGUuY2xvbmUoKTsKPj4gKwo+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGxldCBlbnRyeSA9Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoAo+PiBab25lVHJlZUVudHJ5Ojpmcm9tX3pvbmVfcmVzb3VyY2UocmVzb3VyY2Vz LnJlbW90ZS5jbG9uZSgpLAo+PiB6b25lX3Jlc291cmNlKTsKPj4gKwo+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIG1hdGNoIG5vZGVfZW50cnkgewo+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgU29tZShtdXQgbm9kZV9lbnRyeSkgPT4gewo+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBub2RlX2VudHJ5LmFw cGVuZChlbnRyeSk7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9 Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBOb25lID0+IHsKPj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbGV0IG11dCBu b2RlX2VudHJ5ID0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoAo+PiByZW1vdGUuYXBwZW5kKFpvbmVUcmVlRW50cnk6Ok5vZGUocmVzb3Vy Y2VzLnJlbW90ZS5jbG9uZSgpLCBub2RlX25hbWUpKTsKPj4gKwo+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBub2RlX2VudHJ5LnNldF9leHBhbmRlZCh0 cnVlKTsKPj4gKwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBub2RlX2VudHJ5LmFwcGVuZChlbnRyeSk7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB9Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfTsK Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+PiArwqDCoMKgwqDCoMKgwqAgfQo+PiArwqDC oMKgIH0KPj4gKwo+PiArwqDCoMKgICh0cmVlLCByZW1vdGVfZXJyb3JzKQo+PiArfQo+PiArCj4+ ICtpbXBsIExvYWRhYmxlQ29tcG9uZW50IGZvciBab25lVHJlZUNvbXBvbmVudCB7Cj4+ICvCoMKg wqAgdHlwZSBQcm9wZXJ0aWVzID0gWm9uZVRyZWU7Cj4+ICvCoMKgwqAgdHlwZSBNZXNzYWdlID0g Wm9uZVRyZWVNc2c7Cj4+ICvCoMKgwqAgdHlwZSBWaWV3U3RhdGUgPSAoKTsKPj4gKwo+PiArwqDC oMKgIGZuIGNyZWF0ZShfY3R4OiAmTG9hZGFibGVDb21wb25lbnRDb250ZXh0PFNlbGY+KSAtPiBT ZWxmIHsKPj4gK8KgwqDCoMKgwqDCoMKgIGxldCBzdG9yZSA9IFRyZWVTdG9yZTo6bmV3KCkudmll d19yb290KGZhbHNlKTsKPj4gK8KgwqDCoMKgwqDCoMKgIHN0b3JlLnNldF9zb3J0ZXIoZGVmYXVs dF9zb3J0ZXIpOwo+PiArCj4+ICvCoMKgwqDCoMKgwqDCoCBsZXQgc2VsZWN0aW9uID0gU2VsZWN0 aW9uOjpuZXcoKTsKPj4gKwo+PiArwqDCoMKgwqDCoMKgwqAgU2VsZiB7Cj4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHN0b3JlOiBzdG9yZS5jbG9uZSgpLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBzZWxlY3Rpb24sCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJlbW90ZV9lcnJvcnM6 IFZlYzo6bmV3KCksCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbHVtbnM6IFNlbGY6OmNv bHVtbnMoc3RvcmUpLAo+PiArwqDCoMKgwqDCoMKgwqAgfQo+PiArwqDCoMKgIH0KPj4gKwo+PiAr wqDCoMKgIGZuIGxvYWQoCj4+ICvCoMKgwqDCoMKgwqDCoCAmc2VsZiwKPj4gK8KgwqDCoMKgwqDC oMKgIGN0eDogJkxvYWRhYmxlQ29tcG9uZW50Q29udGV4dDxTZWxmPiwKPj4gK8KgwqDCoCApIC0+ IFBpbjxCb3g8ZHluIEZ1dHVyZTxPdXRwdXQgPSBSZXN1bHQ8KCksIGFueWhvdzo6RXJyb3I+Pj4+ IHsKPj4gK8KgwqDCoMKgwqDCoMKgIGxldCBsaW5rID0gY3R4LmxpbmsoKS5jbG9uZSgpOwo+PiAr Cj4+ICvCoMKgwqDCoMKgwqDCoCBCb3g6OnBpbihhc3luYyBtb3ZlIHsKPj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqAgbGV0IGNsaWVudCA9IHBkbV9jbGllbnQoKTsKPj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqAgbGV0IHJlbW90ZV9yZXNvdXJjZXMgPSBjbGllbnQKPj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAucmVzb3VyY2VzX2J5X3R5cGUoTm9uZSwgUmVzb3VyY2VUeXBlOjpQ dmVTZG5ab25lKQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC5hd2FpdD87Cj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgCj4+IGxpbmsuc2VuZF9tZXNzYWdlKFNlbGY6Ok1lc3Nh Z2U6OkxvYWRGaW5pc2hlZChyZW1vdGVfcmVzb3VyY2VzKSk7Cj4+ICsKPj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqAgT2soKCkpCj4+ICvCoMKgwqDCoMKgwqDCoCB9KQo+PiArwqDCoMKgIH0KPj4g Kwo+PiArwqDCoMKgIGZuIHVwZGF0ZSgmbXV0IHNlbGYsIGN0eDogJkxvYWRhYmxlQ29tcG9uZW50 Q29udGV4dDxTZWxmPiwgbXNnOgo+PiBTZWxmOjpNZXNzYWdlKSAtPiBib29sIHsKPj4gK8KgwqDC oMKgwqDCoMKgIG1hdGNoIG1zZyB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFNlbGY6Ok1l c3NhZ2U6OkxvYWRGaW5pc2hlZChyZW1vdGVfcmVzb3VyY2VzKSA9PiB7Cj4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgbGV0IChkYXRhLCByZW1vdGVfZXJyb3JzKSA9Cj4+IGJ1aWxk X3N0b3JlX2Zyb21fcmVzcG9uc2UocmVtb3RlX3Jlc291cmNlcyk7Cj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgc2VsZi5zdG9yZS53cml0ZSgpLnVwZGF0ZV9yb290X3RyZWUoZGF0 YSk7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2VsZi5zdG9yZS5zZXRfc29y dGVyKGRlZmF1bHRfc29ydGVyKTsKPj4gKwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHNlbGYucmVtb3RlX2Vycm9ycyA9IHJlbW90ZV9lcnJvcnM7Cj4+ICsKPj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gdHJ1ZTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqAgfQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBTZWxmOjpNZXNzYWdlOjpSZWxvYWQg PT4gewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGN0eC5saW5rKCkuc2VuZF9y ZWxvYWQoKTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+PiArwqDCoMKgwqDCoMKgwqAg fQo+PiArCj4+ICvCoMKgwqDCoMKgwqDCoCBmYWxzZQo+PiArwqDCoMKgIH0KPj4gKwo+PiArwqDC oMKgICNbYWxsb3codW51c2VkX3ZhcmlhYmxlcyldCj4gCj4gaXMgdGhpcyBuZWNlc3Nhcnk/IG9y IGlzIHRoZXJlIHNvbWUgY2xpcHB5IHdlaXJkbmVzcyBnb2luZyBvbj8KCndpbGwgZG91YmxlLWNo ZWNrCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCnBk bS1kZXZlbCBtYWlsaW5nIGxpc3QKcGRtLWRldmVsQGxpc3RzLnByb3htb3guY29tCmh0dHBzOi8v bGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3BkbS1kZXZlbAo=