From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <pve-devel-bounces@lists.proxmox.com>
Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68])
	by lore.proxmox.com (Postfix) with ESMTPS id 6F50A1FF164
	for <inbox@lore.proxmox.com>; Fri, 11 Apr 2025 13:05:05 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 09E92F7C0;
	Fri, 11 Apr 2025 13:04:59 +0200 (CEST)
Message-ID: <123e823b-c283-4090-9bf0-9bce777eb670@proxmox.com>
Date: Fri, 11 Apr 2025 13:04:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Daniel Kral <d.kral@proxmox.com>
To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>,
 =?UTF-8?Q?Fabian_Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com>
References: <20250325151254.193177-1-d.kral@proxmox.com>
 <20250325151254.193177-7-d.kral@proxmox.com>
 <1743672047.yfgqapvf7h.astroid@yuna.none>
Content-Language: en-US
In-Reply-To: <1743672047.yfgqapvf7h.astroid@yuna.none>
X-SPAM-LEVEL: Spam detection results:  0
 AWL -0.389 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_ASCII_DIVIDERS 0.8 Email that uses ascii formatting dividers and possible
 spam tricks
 KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment
 SPF_HELO_NONE           0.001 SPF: HELO does not publish an SPF Record
 SPF_PASS               -0.001 SPF: sender matches SPF record
Subject: Re: [pve-devel] [PATCH ha-manager 05/15] rules: add colocation rule
 plugin
X-BeenThere: pve-devel@lists.proxmox.com
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com>
List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe>
List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/>
List-Post: <mailto:pve-devel@lists.proxmox.com>
List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help>
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe>
Reply-To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: pve-devel-bounces@lists.proxmox.com
Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com>

VGhhbmtzIGZvciB0aGUgcmV2aWV3LCBGYWJpYW4hCgpTb3JyeSBmb3IgdGhlIHdhaXQsIEkgd2Fz
IG1vcmUgZm9jdXNlZCBvbiB0ZXN0aW5nIG90aGVyIHBhdGNoIHNlcmllcyAKd2hpY2ggd2VyZSBh
bHJlYWR5IHJlYWR5IHRvIG1lcmdlIGZvciBQVkUgOC40IDspLiBCdXQgSSdtIGdvaW5nIHRvIGJl
IAp3b3JraW5nIG9uIHRoaXMgYWdhaW4gbm93LCBzbyB0aGF0IGl0IHdpbGwgYmUgcmVhZHkgZm9y
IHRoZSBuZXh0IHJlbGVhc2UgCm9yIGV2ZW4gYmVmb3JlIHRoYXQgOikKClRoYW5rcyBmb3IgdGhl
IHN1Z2dlc3Rpb25zLCBJJ2xsIGltcGxlbWVudCB0aGVtIHNob3J0bHkuIEkgc3RpbGwgaGF2ZSBh
IApmZXcgcXVlc3Rpb25zL2Rpc2N1c3Npb24gcG9pbnRzIGJlbG93LgoKT24gNC8zLzI1IDE0OjE2
LCBGYWJpYW4gR3LDvG5iaWNobGVyIHdyb3RlOgo+IE9uIE1hcmNoIDI1LCAyMDI1IDQ6MTIgcG0s
IERhbmllbCBLcmFsIHdyb3RlOgo+PiBBZGQgdGhlIGNvbG9jYXRpb24gcnVsZSBwbHVnaW4gdG8g
YWxsb3cgdXNlcnMgdG8gc3BlY2lmeSBpbnRlci1zZXJ2aWNlCj4+IGFmZmluaXR5IGNvbnN0cmFp
bnRzLgo+Pgo+PiBUaGVzZSBjb2xvY2F0aW9uIHJ1bGVzIGNhbiBlaXRoZXIgYmUgcG9zaXRpdmUg
KGtlZXBpbmcgc2VydmljZXMKPj4gdG9nZXRoZXIpIG9yIG5lZ2F0aXZlIChrZWVwaW5nIHNlcnZp
Y2Ugc2VwYXJhdGUpLiBUaGVpciBzdHJpY3RuZXNzIGNhbgo+PiBhbHNvIGJlIHNwZWNpZmllZCBh
cyBlaXRoZXIgYSBNVVNUIG9yIGEgU0hPVUxELCB3aGVyZSB0aGUgZmlyc3QKPj4gc3BlY2lmaWVz
IHRoYXQgYW55IHNlcnZpY2UgdGhlIGNvbnN0cmFpbnQgY2Fubm90IGJlIGFwcGxpZWQgZm9yIHN0
YXlzIGluCj4+IHJlY292ZXJ5LCB3aGlsZSB0aGUgbGF0dGVyIHNwZWNpZmllcyB0aGF0IHRoYXQg
YW55IHNlcnZpY2UgdGhlCj4+IGNvbnN0cmFpbnQgY2Fubm90IGJlIGFwcGxpZWQgZm9yIGlzIGxp
ZnRlZCBmcm9tIHRoZSBjb25zdHJhaW50Lgo+Pgo+PiBUaGUgaW5pdGlhbCBpbXBsZW1lbnRhdGlv
biBhbHNvIGltcGxlbWVudHMgZm91ciBiYXNpYyB0cmFuc2Zvcm1hdGlvbnMsCj4+IHdoZXJlIGNv
bG9jYXRpb24gcnVsZXMgd2l0aCBub3QgZW5vdWdoIHNlcnZpY2VzIGFyZSBkcm9wcGVkLCB0cmFu
c2l0aXZlCj4+IHBvc2l0aXZlIGNvbG9jYXRpb24gcnVsZXMgYXJlIG1lcmdlZCwgYW5kIGludGVy
LWNvbG9jYXRpb24gcnVsZQo+PiBpbmNvbnNpc3RlbmNpZXMgYXMgd2VsbCBhcyBjb2xvY2F0aW9u
IHJ1bGUgaW5jb25zaXN0ZW5jaWVzIHdpdGggcmVzcGVjdAo+PiB0byB0aGUgbG9jYXRpb24gY29u
c3RyYWludHMgc3BlY2lmaWVkIGluIEhBIGdyb3VwcyBhcmUgZHJvcHBlZC4KPiAKPiBhIGhpZ2gg
bGV2ZWwgcXVlc3Rpb246IHRoZXJlcyBhIGxvdCBvZiBsb29wcyBhbmQgc29ydHMgb3ZlciBydWxl
cywKPiBzZXJ2aWNlcywgZ3JvdXBzIGhlcmUgLSBncmFudGVkIHRoYXQgaXMgYWxsIGluIG1lbW9y
eSwgc28gc2hvdWxkIGJlCj4gcmVhc29uYWJseSBmYXN0LCBkbyB3ZSBoYXZlIGNvbmNlcm5zIGhl
cmUvc2hvdWxkIHdlIGxvb2sgZm9yIGZ1cnRoZXIKPiBvcHRpbWl6YXRpb24gcG90ZW50aWFsPwo+
IAo+IGUuZy4gcmlnaHQgbm93IEkgY291bnQgKGNvbWluZyBpbiB2aWEgY2Fub25pY2FsaXplKToK
PiAKPiAtIGNoZWNrX3NlcnZpY2VzX2NvdW50Cj4gLS0gc29ydCBvZiBydWxlaWRzIChmb3JlYWNo
X2NvbG9jYXRpb25fcnVsZSkKPiAtLSBsb29wIG92ZXIgcnVsZXMgKGZvcmVhY2hfY29sb2NhdGlv
bl9ydWxlKQo+IC0tLSBrZXlzIG9uIHNlcnZpY2VzIG9mIGVhY2ggcnVsZQo+IC0gbG9vcCBvdmVy
IHRoZSByZXN1bHRzIChzaG91bGQgYmUgZW1wdHkpCj4gLSBjaGVja19wb3NpdGl2ZV9pbnRyYW5z
aXRpdml0eQo+IC0tIHNvcnQgb2YgcnVsZWlkcywgMXggbG9vcCBvdmVyIHJ1bGVzIChmb3JlYWNo
X2NvbG9jYXRpb25fcnVsZSB2aWEgc3BsaXRfY29sb2NhdGlvbl9ydWxlcykKPiAtLSBsb29wIG92
ZXIgZWFjaCB1bmlxdWUgcGFpciBvZiBydWxlaWRzCj4gLS0tIGlzX2Rpc2pvaW50IG9uIHNlcnZp
Y2VzIG9mIGVhY2ggcGFpciAobG9vcCBvdmVyIHNlcnZpY2Uga2V5cykKPiAtIGxvb3Agb3ZlciBy
ZXN1bHRpbmcgcnVsZWlkcyAobWlnaHQgYmUgbWFueSEpCj4gLS0gbG9vcCBvdmVyIG1lcmdlYWJs
ZSBydWxlcyBmb3IgZWFjaCBtZXJnZSB0YXJnZXQKPiAtLS0gbG9vcCBvdmVyIHNlcnZpY2VzIG9m
IGVhY2ggbWVyZ2VhYmxlIHJ1bGUKPiAtIGNoZWNrX2lubmVyX2NvbnNpc3RlbmN5Cj4gLS0gc29y
dCBvZiBydWxlaWRzLCAxeCBsb29wIG92ZXIgcnVsZXMgKGZvcmVhY2hfY29sb2NhdGlvbl9ydWxl
IHZpYSBzcGxpdF9jb2xvY2F0aW9uX3J1bGVzKQo+IC0tIGxvb3Agb3ZlciBwb3NpdGl2ZSBydWxl
cwo+IC0tLSBmb3IgZXZlcnkgcG9zaXRpdmUgcnVsZSwgbG9vcCBvdmVyIG5lZ2F0aXZlIHJ1bGVz
Cj4gLS0tLSBmb3IgZWFjaCBwYWlyIG9mIHBvc2l0aXZlK25lZ2F0aXZlIHJ1bGUsIGNoZWNrIHNl
cnZpY2UKPiBpbnRlcnNlY3Rpb25zCj4gLSBsb29wIG92ZXIgcmVzdWx0aW5nIGNvbmZsaWN0cyAo
c2hvdWxkIGJlIGVtcHR5KQo+IC0gY2hlY2tfY29uc2lzdGVuY3lfd2l0aF9ncm91cHMKPiAtLSBz
b3J0IG9mIHJ1bGVpZHMsIDF4IGxvb3Agb3ZlciBydWxlcyAoZm9yZWFjaF9jb2xvY2F0aW9uX3J1
bGUgdmlhIHNwbGl0X2NvbG9jYXRpb25fcnVsZXMpCj4gLS0gbG9vcCBvdmVyIHBvc2l0aXZlIHJ1
bGVzCj4gLS0tIGxvb3Agb3ZlciBzZXJ2aWNlcwo+IC0tLS0gbG9vcCBvdmVyIG5vZGVzIG9mIHNl
cnZpY2UncyBncm91cAo+IC0tIGxvb3Agb3ZlciBuZWdhdGl2ZSBydWxlcwo+IC0tLSBsb29wIG92
ZXIgc2VydmljZXMKPiAtLS0tIGxvb3Agb3ZlciBub2RlcyBvZiBzZXJ2aWNlJ3MgZ3JvdXAKPiAt
IGxvb3Agb3ZlciByZXN1bHRpbmcgY29uZmxpY3RzIChzaG91bGQgYmUgZW1wdHkpCj4gCj4gcG9z
c2libHkgc3BsaXR0aW5nIHRoZSBydWxlcyAoaW5zdGVhZCBvZiBqdXN0IHRoZSBJRHMpIG9uY2Ug
YW5kIGtlZXBpbmcKPiBhIGxpc3Qgb2Ygc29ydGVkIHJ1bGUgSURzIHdlIGNvdWxkIHNhdmUgc29t
ZSBvdmVyaGVhZD8KPiAKPiBtaWdodCBub3QgYmUgd29ydGggaXQgKHlldCkgdGhvdWdoLCBidXQg
c29tZXRoaW5nIHRvIGtlZXAgaW4gbWluZCBpZiB0aGUKPiBydWxlcyBhcmUgZ2V0dGluZyBtb3Jl
IGNvbXBsaWNhdGVkIG92ZXIgdGltZS4uCgpUaGFua3MgZm9yIHRoZSBuaWNlIGNhbGwgZ3JhcGgh
CgpJIHRoaW5rIGl0IHdvdWxkIGJlIHJlYXNvbmFibGUgdG8gZG8gdGhpcyBhbHJlYWR5LCBlc3Bl
Y2lhbGx5IHRvIHJlZHVjZSAKdGhlIGNvZGUgZHVwbGljYXRpb24gYmV0d2VlbiBjYW5vbmljYWxp
emUoKSBhbmQgYXJlX3NhdGlzZmlhYmxlKCkgeW91IAphbHJlYWR5IG1lbnRpb25lZCBiZWxvdy4K
Ckkgd2FzIHRoaW5raW5nIGFib3V0IHNvbWV0aGluZyBsaWtlICRjbWRkZWYgb3IgYW5vdGhlciBy
ZWdpc3RyeS10eXBlIApzdHJ1Y3R1cmUsIHdoaWNoIGhhcyBhbiBlbnRyeSBmb3IgZWFjaCBjaGVj
a2luZyBzdWJyb3V0aW5lIGFuZCBhbHNvIGEgCmhhbmRsZXIgZm9yIHdoYXQgdG8gcHJpbnQvZG8g
Zm9yIGJvdGggY2Fub25pY2FsaXplKCkgYXMgd2VsbCBhcyAKYXJlX3NhdGlzZmlhYmxlKCkuIFRo
ZW4gdGhvc2Ugd291bGQgaGF2ZSB0byBvbmx5IGl0ZXJhdGUgb3ZlciB0aGUgbGlzdCAKYW5kIGNh
bGwgdGhlIHN1YnJvdXRpbmVzLgoKRm9yIGV2ZXJ5IGNoZWNraW5nIHN1YnJvdXRpbmUsIHdlIGNv
dWxkIHBhc3MgdGhlIHdob2xlIG9mICRydWxlcywgYW5kIGEgCnJ1bGUgdHlwZS1zcGVjaWZpYyB2
YXJpYWJsZSwgZS5nLiBbJHBvc2l0aXZlX2lkcywgJG5lZ2F0aXZlX2lkc10gaGVyZSwgCm9yIGFz
IHlvdSBhbHJlYWR5IHN1Z2dlc3RlZCBiZWxvdyBbJHBvc2l0aXZlX3J1bGVzLCAkbmVnYXRpdmVf
cnVsZXNdLgoKT25lIHNtYWxsIHRoaW5nIEkgaGF2ZW4ndCBleHBsaWNpdGx5IG1lbnRpb25lZCBo
ZXJlIGJlZm9yZSBpcyB0aGF0IGF0IApsZWFzdCB0aGUgY2hlY2sgZm9yIG1lcmdlYWJsZSBwb3Np
dGl2ZSBjb2xvY2F0aW9uIHJ1bGVzIAooYGNoZWNrX3Bvc2l0aXZlX2ludHJhbnNpdGl2aXR5YCkg
YW5kIHRoZSBjaGVjayBmb3IgaW5jb25zaXN0ZW5jeSAKYmV0d2VlbiBwb3NpdGl2ZSBhbmQgbmVn
YXRpdmUgY29sb2NhdGlvbiBydWxlcyAKKGBjaGVja19pbm5lcl9jb25zaXN0ZW5jeWApIGRvIGRl
cGVuZCBvbiBlYWNoIG90aGVyIHNvbWV3aGF0LCBzbyBvcmRlciAKZm9yIHRoZXNlIHJ1bGVzIHN0
YXlzIGltcG9ydGFudCBoZXJlIGFzIHdlbGwgYXMgdGhhdCBtb2RpZmljYXRpb25zIHRvIAokcnVs
ZXMgYXJlIHdyaXR0ZW4gY29ycmVjdGx5IGJlZm9yZSB0aGUgbmV4dCBjaGVjayBoYW5kbGVyIGlz
IGNhbGxlZC4KCkkndmUgd3JpdHRlbiBhYm91dCBhbiBleGFtcGxlIHdoeSB0aGlzIGlzIG5lY2Vz
c2FyeSBpbiBhIGNvbW1lbnQgYmVsb3cgCmBjaGVja19wb3NpdGl2ZV9pbnRyYW5zaXRpdml0eWAg
YW5kIHdpbGwgZG9jdW1lbnQgdGhpcyBtb3JlIGNsZWFybHkgaW4gCnRoZSB2MS4KClRoZSBvbmx5
IHNlbWktYmxvY2tlciBoZXJlIGlzIHRoYXQgY2hlY2tfY29uc2lzdGVuY3lfd2l0aF9ncm91cHMo
Li4uKSAKYWxzbyBuZWVkcyBhY2Nlc3MgdG8gJGdyb3VwcyBhbmQgJHNlcnZpY2VzLCBidXQgZm9y
IHRoZSB0aW1lIGJlaW5nIHdlIApjb3VsZCBqdXN0IHBhc3MgdGhvc2UgdHdvIHRvIGV2ZXJ5IHN1
YnJvdXRpbmUgYW5kIGlnbm9yZSBpdCwgd2hlcmUgaXQgCmlzbid0IG5lZWRlZC4KCkFub3RoZXIg
YXBwcm9hY2ggY291bGQgYmUgdG8gd3JpdGUgYW55IHNlcnZpY2UgZ3JvdXAgbWVtYmVyc2hpcCBp
bnRvIAokcnVsZXMgaW50ZXJuYWxseSBhbHJlYWR5IGFuZCBqdXN0IHdvcmsgd2l0aCB0aGUgZGF0
YSBmcm9tIHRoZXJlLCBzbyAKdGhhdCB0cmFuc2l0aW9uaW5nIHRvIHJlcGxhY2luZyAiSEEgR3Jv
dXBzIiB3aXRoICJIQSBMb2NhdGlvbiBSdWxlcyIgCmNvdWxkIGdvIG1vcmUgc21vb3RobHkgaW4g
YSBmdXR1cmUgbWFqb3IgdmVyc2lvbiwgaWYgd2Ugd2FudCB0byBkbyB0aGlzIAppbiB0aGUgZW5k
LiBPciB3ZSdsbCBhbHJlYWR5IGFsbG93IGNyZWF0aW5nIGxvY2F0aW9uIHJ1bGVzIGV4cGxpY2l0
bHksIAp3aGljaCBhcmUgc3luY2hyb25pemVkIHdpdGggSEEgZ3JvdXBzLgoKPiAKPj4KPj4gU2ln
bmVkLW9mZi1ieTogRGFuaWVsIEtyYWwgPGQua3JhbEBwcm94bW94LmNvbT4KPj4gLS0tCj4+ICAg
ZGViaWFuL3B2ZS1oYS1tYW5hZ2VyLmluc3RhbGwgIHwgICAxICsKPj4gICBzcmMvUFZFL0hBL01h
a2VmaWxlICAgICAgICAgICAgfCAgIDEgKwo+PiAgIHNyYy9QVkUvSEEvUnVsZXMvQ29sb2NhdGlv
bi5wbSB8IDM5MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4gICBzcmMvUFZF
L0hBL1J1bGVzL01ha2VmaWxlICAgICAgfCAgIDYgKwo+PiAgIHNyYy9QVkUvSEEvVG9vbHMucG0g
ICAgICAgICAgICB8ICAgNiArCj4+ICAgNSBmaWxlcyBjaGFuZ2VkLCA0MDUgaW5zZXJ0aW9ucygr
KQo+PiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvUFZFL0hBL1J1bGVzL0NvbG9jYXRpb24ucG0K
Pj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL1BWRS9IQS9SdWxlcy9NYWtlZmlsZQo+Pgo+PiBk
aWZmIC0tZ2l0IGEvZGViaWFuL3B2ZS1oYS1tYW5hZ2VyLmluc3RhbGwgYi9kZWJpYW4vcHZlLWhh
LW1hbmFnZXIuaW5zdGFsbAo+PiBpbmRleCA5YmJkMzc1Li44OWY5MTQ0IDEwMDY0NAo+PiAtLS0g
YS9kZWJpYW4vcHZlLWhhLW1hbmFnZXIuaW5zdGFsbAo+PiArKysgYi9kZWJpYW4vcHZlLWhhLW1h
bmFnZXIuaW5zdGFsbAo+PiBAQCAtMzMsNiArMzMsNyBAQAo+PiAgIC91c3Ivc2hhcmUvcGVybDUv
UFZFL0hBL1Jlc291cmNlcy9QVkVDVC5wbQo+PiAgIC91c3Ivc2hhcmUvcGVybDUvUFZFL0hBL1Jl
c291cmNlcy9QVkVWTS5wbQo+PiAgIC91c3Ivc2hhcmUvcGVybDUvUFZFL0hBL1J1bGVzLnBtCj4+
ICsvdXNyL3NoYXJlL3Blcmw1L1BWRS9IQS9SdWxlcy9Db2xvY2F0aW9uLnBtCj4+ICAgL3Vzci9z
aGFyZS9wZXJsNS9QVkUvSEEvVG9vbHMucG0KPj4gICAvdXNyL3NoYXJlL3Blcmw1L1BWRS9IQS9V
c2FnZS5wbQo+PiAgIC91c3Ivc2hhcmUvcGVybDUvUFZFL0hBL1VzYWdlL0Jhc2ljLnBtCj4+IGRp
ZmYgLS1naXQgYS9zcmMvUFZFL0hBL01ha2VmaWxlIGIvc3JjL1BWRS9IQS9NYWtlZmlsZQo+PiBp
bmRleCA0ODljYmMwLi5lMzg2Y2JmIDEwMDY0NAo+PiAtLS0gYS9zcmMvUFZFL0hBL01ha2VmaWxl
Cj4+ICsrKyBiL3NyYy9QVkUvSEEvTWFrZWZpbGUKPj4gQEAgLTgsNiArOCw3IEBAIGluc3RhbGw6
Cj4+ICAgCWluc3RhbGwgLWQgLW0gMDc1NSAke0RFU1RESVJ9JHtQRVJMRElSfS9QVkUvSEEKPj4g
ICAJZm9yIGkgaW4gJHtTT1VSQ0VTfTsgZG8gaW5zdGFsbCAtRCAtbSAwNjQ0ICQkaSAke0RFU1RE
SVJ9JHtQRVJMRElSfS9QVkUvSEEvJCRpOyBkb25lCj4+ICAgCW1ha2UgLUMgUmVzb3VyY2VzIGlu
c3RhbGwKPj4gKwltYWtlIC1DIFJ1bGVzIGluc3RhbGwKPj4gICAJbWFrZSAtQyBVc2FnZSBpbnN0
YWxsCj4+ICAgCW1ha2UgLUMgRW52IGluc3RhbGwKPj4gICAKPj4gZGlmZiAtLWdpdCBhL3NyYy9Q
VkUvSEEvUnVsZXMvQ29sb2NhdGlvbi5wbSBiL3NyYy9QVkUvSEEvUnVsZXMvQ29sb2NhdGlvbi5w
bQo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwLi44MDhkNDhlCj4+IC0t
LSAvZGV2L251bGwKPj4gKysrIGIvc3JjL1BWRS9IQS9SdWxlcy9Db2xvY2F0aW9uLnBtCj4+IEBA
IC0wLDAgKzEsMzkxIEBACj4+ICtwYWNrYWdlIFBWRTo6SEE6OlJ1bGVzOjpDb2xvY2F0aW9uOwo+
PiArCj4+ICt1c2Ugc3RyaWN0Owo+PiArdXNlIHdhcm5pbmdzOwo+PiArCj4+ICt1c2UgRGF0YTo6
RHVtcGVyOwo+IAo+IGxlZnRvdmVyIGR1bXBlciA7KQo+IAo+PiArCj4+ICt1c2UgUFZFOjpKU09O
U2NoZW1hIHF3KGdldF9zdGFuZGFyZF9vcHRpb24pOwo+PiArdXNlIFBWRTo6SEE6OlRvb2xzOwo+
PiArCj4+ICt1c2UgYmFzZSBxdyhQVkU6OkhBOjpSdWxlcyk7Cj4+ICsKPj4gK3N1YiB0eXBlIHsK
Pj4gKyAgICByZXR1cm4gJ2NvbG9jYXRpb24nOwo+PiArfQo+PiArCj4+ICtzdWIgcHJvcGVydGll
cyB7Cj4+ICsgICAgcmV0dXJuIHsKPj4gKwlzZXJ2aWNlcyA9PiBnZXRfc3RhbmRhcmRfb3B0aW9u
KCdwdmUtaGEtcmVzb3VyY2UtaWQtbGlzdCcpLAo+PiArCWFmZmluaXR5ID0+IHsKPj4gKwkgICAg
ZGVzY3JpcHRpb24gPT4gIkRlc2NyaWJlcyB3aGV0aGVyIHRoZSBzZXJ2aWNlcyBhcmUgc3VwcG9z
ZWQgdG8gYmUga2VwdCBvbiBzZXBhcmF0ZSIKPj4gKwkJLiAiIG5vZGVzLCBvciBhcmUgc3VwcG9z
ZWQgdG8gYmUga2VwdCB0b2dldGhlciBvbiB0aGUgc2FtZSBub2RlLiIsCj4+ICsJICAgIHR5cGUg
PT4gJ3N0cmluZycsCj4+ICsJICAgIGVudW0gPT4gWydzZXBhcmF0ZScsICd0b2dldGhlciddLAo+
PiArCSAgICBvcHRpb25hbCA9PiAwLAo+PiArCX0sCj4+ICsJc3RyaWN0ID0+IHsKPj4gKwkgICAg
ZGVzY3JpcHRpb24gPT4gIkRlc2NyaWJlcyB3aGV0aGVyIHRoZSBjb2xvY2F0aW9uIHJ1bGUgaXMg
bWFuZGF0b3J5IG9yIG9wdGlvbmFsLiIsCj4+ICsJICAgIHR5cGUgPT4gJ2Jvb2xlYW4nLAo+PiAr
CSAgICBvcHRpb25hbCA9PiAwLAo+PiArCX0sCj4+ICsgICAgfQo+PiArfQo+PiArCj4+ICtzdWIg
b3B0aW9ucyB7Cj4+ICsgICAgcmV0dXJuIHsKPj4gKwlzZXJ2aWNlcyA9PiB7IG9wdGlvbmFsID0+
IDAgfSwKPj4gKwlzdHJpY3QgPT4geyBvcHRpb25hbCA9PiAwIH0sCj4+ICsJYWZmaW5pdHkgPT4g
eyBvcHRpb25hbCA9PiAwIH0sCj4+ICsJY29tbWVudCA9PiB7IG9wdGlvbmFsID0+IDEgfSwKPj4g
KyAgICB9Owo+PiArfTsKPj4gKwo+PiArc3ViIGRlY29kZV92YWx1ZSB7Cj4+ICsgICAgbXkgKCRj
bGFzcywgJHR5cGUsICRrZXksICR2YWx1ZSkgPSBAXzsKPj4gKwo+PiArICAgIGlmICgka2V5IGVx
ICdzZXJ2aWNlcycpIHsKPj4gKwlteSAkcmVzID0ge307Cj4+ICsKPj4gKwlmb3IgbXkgJHNlcnZp
Y2UgKFBWRTo6VG9vbHM6OnNwbGl0X2xpc3QoJHZhbHVlKSkgewo+PiArCSAgICBpZiAoUFZFOjpI
QTo6VG9vbHM6OnB2ZV92ZXJpZnlfaGFfcmVzb3VyY2VfaWQoJHNlcnZpY2UpKSB7Cj4+ICsJCSRy
ZXMtPnskc2VydmljZX0gPSAxOwo+PiArCSAgICB9Cj4+ICsJfQo+PiArCj4+ICsJcmV0dXJuICRy
ZXM7Cj4+ICsgICAgfQo+PiArCj4+ICsgICAgcmV0dXJuICR2YWx1ZTsKPj4gK30KPj4gKwo+PiAr
c3ViIGVuY29kZV92YWx1ZSB7Cj4+ICsgICAgbXkgKCRjbGFzcywgJHR5cGUsICRrZXksICR2YWx1
ZSkgPSBAXzsKPj4gKwo+PiArICAgIGlmICgka2V5IGVxICdzZXJ2aWNlcycpIHsKPj4gKwlQVkU6
OkhBOjpUb29sczo6cHZlX3ZlcmlmeV9oYV9yZXNvdXJjZV9pZCgkXykgZm9yIChrZXlzICUkdmFs
dWUpOwo+PiArCj4+ICsJcmV0dXJuIGpvaW4oJywnLCBrZXlzICUkdmFsdWUpOwo+PiArICAgIH0K
Pj4gKwo+PiArICAgIHJldHVybiAkdmFsdWU7Cj4+ICt9Cj4+ICsKPj4gK3N1YiBmb3JlYWNoX2Nv
bG9jYXRpb25fcnVsZSB7Cj4+ICsgICAgbXkgKCRydWxlcywgJGZ1bmMsICRvcHRzKSA9IEBfOwo+
PiArCj4+ICsgICAgbXkgJG15X29wdHMgPSB7IG1hcCB7ICRfID0+ICRvcHRzLT57JF99IH0ga2V5
cyAlJG9wdHMgfTsKPiAKPiB3aHk/IGlmIHRoZSBjYWxsZXIgZG9lc24ndCB3YW50ICRvcHRzIHRv
IGJlIG1vZGlmaWVkLCB0aGV5IGNvdWxkIGp1c3QKPiBwYXNzIGluIGEgY29weSAob3IgeW91IGNv
dWxkIHJlcXVpcmUgaXQgdG8gYmUgcGFzc2VkIGJ5IHZhbHVlIGluc3RlYWQgb2YKPiBieSByZWZl
cmVuY2U/KS4KPiAKPiB0aGVyZSdzIG9ubHkgYSBzaW5nbGUgY2FsbGVyIHRoYXQgZG9lcyAoaW50
cm9kdWNlZCBieSBhIGxhdGVyIHBhdGNoKSBhbmQKPiB0aGF0IG9uZSBjb25zdHJ1Y3RzIHRoZSBo
YXNoIHJlZmVyZW5jZSByaWdodCBhdCB0aGUgY2FsbCBzaXRlLCBzbyB1bmxlc3MKPiBJIGFtIG1p
c3Npbmcgc29tZXRoaW5nIHRoaXMgc2VlbXMgYSBiaXQgb3ZlcmtpbGwuLgoKUmlnaHQsIEkgZGlk
bid0IHRoaW5rIGFib3V0IHRoaXMgY2xlYXJseSBlbm91Z2ggYW5kIHRoaXMgY291bGQgdmVyeSB3
ZWxsIApiZSBqdXN0IGEgZGlyZWN0IHdyaXRlIHRvIHRoZSBwYXNzZWQgaGFzaCBoZXJlLgoKV2ls
bCBjaGFuZ2UgdGhhdCBpbiB0aGUgdjEhCgo+IAo+PiArICAgICRteV9vcHRzLT57dHlwZX0gPSAn
Y29sb2NhdGlvbic7Cj4+ICsKPj4gKyAgICBQVkU6OkhBOjpSdWxlczo6Zm9yZWFjaF9zZXJ2aWNl
X3J1bGUoJHJ1bGVzLCAkZnVuYywgJG15X29wdHMpOwo+PiArfQo+PiArCj4+ICtzdWIgc3BsaXRf
Y29sb2NhdGlvbl9ydWxlcyB7Cj4+ICsgICAgbXkgKCRydWxlcykgPSBAXzsKPj4gKwo+PiArICAg
IG15ICRwb3NpdGl2ZV9ydWxlaWRzID0gW107Cj4+ICsgICAgbXkgJG5lZ2F0aXZlX3J1bGVpZHMg
PSBbXTsKPj4gKwo+PiArICAgIGZvcmVhY2hfY29sb2NhdGlvbl9ydWxlKCRydWxlcywgc3ViIHsK
Pj4gKwlteSAoJHJ1bGUsICRydWxlaWQpID0gQF87Cj4+ICsKPj4gKwlteSAkcnVsZWlkX3NldCA9
ICRydWxlLT57YWZmaW5pdHl9IGVxICd0b2dldGhlcicgPyAkcG9zaXRpdmVfcnVsZWlkcyA6ICRu
ZWdhdGl2ZV9ydWxlaWRzOwo+PiArCXB1c2ggQCRydWxlaWRfc2V0LCAkcnVsZWlkOwo+PiArICAg
IH0pOwo+PiArCj4+ICsgICAgcmV0dXJuICgkcG9zaXRpdmVfcnVsZWlkcywgJG5lZ2F0aXZlX3J1
bGVpZHMpOwo+PiArfQo+PiArCj4+ICs9aGVhZDMgY2hlY2tfc2VydmljZV9jb3VudCgkcnVsZXMp
Cj4+ICsKPj4gK1JldHVybnMgYSBsaXN0IG9mIGNvbmZsaWN0cyBjYXVzZWQgYnkgY29sb2NhdGlv
biBydWxlcywgd2hpY2ggZG8gbm90IGhhdmUKPj4gK2Vub3VnaCBzZXJ2aWNlcyBpbiB0aGVtLCBk
ZWZpbmVkIGluIEM8JHJ1bGVzPi4KPj4gKwo+PiArSWYgdGhlcmUgYXJlIG5vIGNvbmZsaWN0cywg
dGhlIHJldHVybmVkIGxpc3QgaXMgZW1wdHkuCj4+ICsKPj4gKz1jdXQKPj4gKwo+PiArc3ViIGNo
ZWNrX3NlcnZpY2VzX2NvdW50IHsKPj4gKyAgICBteSAoJHJ1bGVzKSA9IEBfOwo+PiArCj4+ICsg
ICAgbXkgJGNvbmZsaWN0cyA9IFtdOwo+PiArCj4+ICsgICAgZm9yZWFjaF9jb2xvY2F0aW9uX3J1
bGUoJHJ1bGVzLCBzdWIgewo+PiArCW15ICgkcnVsZSwgJHJ1bGVpZCkgPSBAXzsKPj4gKwo+PiAr
CXB1c2ggQCRjb25mbGljdHMsICRydWxlaWQgaWYgKHNjYWxhcihrZXlzICV7JHJ1bGUtPntzZXJ2
aWNlc319KSA8IDIpOwo+PiArICAgIH0pOwo+PiArCj4+ICsgICAgcmV0dXJuICRjb25mbGljdHM7
Cj4+ICt9Cj4gCj4gaXMgdGhpcyByZWFsbHkgYW4gaXNzdWU/IGEgY29sb2NhdGlvbiBydWxlIHdp
dGggYSBzaW5nbGUgc2VydmljZSBpcyBqdXN0Cj4gYSBub3A/IHRoZXJlJ3MgY3VycmVudGx5IG5v
IGNsZWFudXAgQUZBSUNUIGlmIGEgcmVzb3VyY2UgaXMgcmVtb3ZlZCwgYnV0CgpZb3UncmUgcmln
aHQsIEFGQUlDUyB0aG9zZSBhcmUgYSBub29wIHdoZW4gc2VsZWN0aW5nIHRoZSBzZXJ2aWNlIG5v
ZGUuIEkgCmd1ZXNzIEkgd2FzIGEgbGl0dGxlIHBlZGFudGljIC8gb3ZlcnByb3RlY3RpdmUgaGVy
ZSBhYm91dCB3aGljaCBydWxlcyAKbWFrZSBzZW5zZSBpbiBnZW5lcmFsIGluc3RlYWQgb2Ygd2hh
dCB0aGUgYWxnb3JpdGhtIGRvZXMgaW4gdGhlIGVuZC4KCkFuZCBnb29kIHBvaW50IGFib3V0IGhh
bmRsaW5nIHdoZW4gcmVzb3VyY2VzIGFyZSByZW1vdmVkLCBhZGRpbmcgdGhhdCB0byAKZGVsZXRl
X3NlcnZpY2VfZnJvbV9jb25maWcgY29tZXMgcmlnaHQgb24gbXkgVE9ETyBsaXN0IGZvciB0aGUg
djEhCgo+IGlmIHdlIGFkZCB0aGF0IHBhcnQgKHdlIG1heWJlIHNob3VsZD8pIHRoZW4gb25lIGNh
biBlYXNpbHkgZW5kIHVwIGluIGEKPiBzaXR1YXRpb24gd2hlcmUgYSBydWxlIHRlbXBvcmFyaWx5
IGNvbnRhaW5zIGEgc2luZ2xlIG9yIG5vIHNlcnZpY2U/CgpIbSwgeWVzLCBlc3BlY2lhbGx5IGlm
IHdlIGFkZCBwb29scy90YWdzIGF0IGEgbGF0ZXIgcG9pbnQgdG8gc2VsZWN0IApzZXJ2aWNlcyBm
b3IgdGhlIHJ1bGUsIHRoZW4gdGhpcyBjb3VsZCBoYXBwZW4gdmVyeSBlYXNpbHkuIEJ1dCBhcyB5
b3UgCmFscmVhZHkgbWVudGlvbmVkLCB0aG9zZSB0d28gY2FzZXMgd291bGQgYmUgbm9vcHMgdG9v
LgoKTmV2ZXJ0aGVsZXNzLCBzaG91bGQgd2UgZHJvcCB0aGlzPyBJIHRoaW5rIGl0IGNvdWxkIGJl
bmVmaXQgdXNlcnMgaW4gCmlkZW50aWZ5aW5nIHRoYXQgc29tZSBydWxlcyBtaWdodCBub3QgZG8g
c29tZXRoaW5nIHRoZXkgd2FudGVkIGFuZCBnaXZlIAp0aGVtIGEgcmVhc29uIHdoeSwgaS5lLiB0
aGVyZSdzIG9ubHkgb25lIHNlcnZpY2UgaW4gdGhlcmUsIGJ1dCBhdCB0aGUgCnNhbWUgdGltZSBp
dCBjb3VsZCBiZSBhIGxpdHRsZSBub2lzeSBpZiB0aGVyZSBhcmUgYSBsb3Qgb2YgYWZmZWN0ZWQg
cnVsZXMuCgo+IAo+PiArCj4+ICs9aGVhZDMgY2hlY2tfcG9zaXRpdmVfaW50cmFuc2l0aXZpdHko
JHJ1bGVzKQo+PiArCj4+ICtSZXR1cm5zIGEgbGlzdCBvZiBjb25mbGljdHMgY2F1c2VkIGJ5IHRy
YW5zaXRpdmUgcG9zaXRpdmUgY29sb2NhdGlvbiBydWxlcwo+PiArZGVmaW5lZCBpbiBDPCRydWxl
cz4uCj4+ICsKPj4gK1RyYW5zaXRpdmUgcG9zaXRpdmUgY29sb2NhdGlvbiBydWxlcyBleGlzdCwg
aWYgdGhlcmUgYXJlIGF0IGxlYXN0IHR3byBwb3NpdGl2ZQo+PiArY29sb2NhdGlvbiBydWxlcyB3
aXRoIHRoZSBzYW1lIHN0cmljdG5lc3MsIHdoaWNoIHB1dCBhdCBsZWFzdCB0aGUgc2FtZSB0d28K
Pj4gK3NlcnZpY2VzIGluIHJlbGF0aW9uLiBUaGlzIG1lYW5zLCB0aGF0IHRoZXNlIHJ1bGVzIGNh
biBiZSBtZXJnZWQgdG9nZXRoZXIuCj4+ICsKPj4gK0lmIHRoZXJlIGFyZSBubyBjb25mbGljdHMs
IHRoZSByZXR1cm5lZCBsaXN0IGlzIGVtcHR5Lgo+IAo+IFRoZSB0ZXJtaW5vbG9neSBoZXJlIGlz
IHF1aXQgY29uZnVzaW5nIC0gY29uZmxpY3QgbWVhbmluZyB0aGF0IHR3byBydWxlcwo+IGFyZSAi
dHJhbnNpdGl2ZSIgYW5kIHRodXMgbWVyZ2VhYmxlICh3aGljaCBpcyBnb29kLCBjYXVzZSBpdCBt
YWtlcwo+IHRoaW5ncyBlYXNpZXIgdG8gaGFuZGxlPykgaXMgcXVpdGUgd2VpcmQsIGFzICJjb25m
bGljdCIgaXMgYSByYXRoZXIKPiBuZWdhdGl2ZSB0ZXJtLi4KPiAKPiB0aGVyZSdzIG9ubHkgYSBz
aW5nbGUgY2FsbCBzaXRlIGluIHRoZSBzYW1lIG1vZHVsZSwgbWF5YmUgd2UgY291bGQganVzdAo+
IHJlbmFtZSB0aGlzIGludG8gImZpbmRfbWVyZ2VhYmxlX3Bvc2l0aXZlX3J1bGVpZHMiLCBzaW1p
bGFyIHRvIHRoZQo+IHZhcmlhYmxlIHdoZXJlIHRoZSByZXN1bHQgaXMgc3RvcmVkPwoKWWVhaCwg
SSB3YXMgcHJvYmFibHkgdG8ga2VlbiBvbiB0aGUgYCRjb25mbGljdCA9IGNoZWNrX3NvbWV0aGlu
ZyguLi4pYCAKcGF0dGVybiBoZXJlLCBidXQgaXQgd291bGQgYmUgbXVjaCBtb3JlIHJlYWRhYmxl
IHdpdGggYSBzaW1wbGVyIG5hbWUsIApJJ2xsIGNoYW5nZSB0aGF0IGZvciB0aGUgdjEhCgotLS0t
LQoKQWQgd2h5OiBJJ2xsIGFsc28gYWRkIHNvbWUgZG9jdW1lbnRhdGlvbiBhYm91dCB0aGUgcmF0
aW9uYWxlIHdoeSB0aGlzIGlzIApuZWVkZWQgaW4gdGhlIGZpcnN0IHBsYWNlLgoKVGhlIG1haW4g
cmVhc29uIHdhcyBiZWNhdXNlIHRoZSBsYXR0ZXIgcnVsZSBjaGVjayAKJ2NoZWNrX2lubmVyX2Nv
bnNpc3RlbmN5JyBkZXBlbmRzIG9uIHRoZSBmYWN0IHRoYXQgdGhlIHBvc2l0aXZlIApjb2xvY2F0
aW9uIHJ1bGVzIGhhdmUgYmVlbiBtZXJnZWQgYWxyZWFkeSwgYXMgaXQgYXNzdW1lcyB0aGF0IGVh
Y2ggCnBvc2l0aXZlIGNvbG9jYXRpb24gcnVsZSBoYXMgYWxsIG9mIHRoZSBzZXJ2aWNlcyBpbiB0
aGVyZSwgd2hpY2ggYXJlIApwb3NpdGl2ZWx5IGNvbG9jYXRlZC4gSWYgaXQgd2VyZW4ndCBzbywg
aXQgd291bGRuJ3QgZGV0ZWN0IHRoYXQgdGhlIApmb2xsb3dpbmcgdGhyZWUgcnVsZXMgYXJlIGlu
Y29uc2lzdGVudCB3aXRoIGVhY2ggb3RoZXI6Cgpjb2xvY2F0aW9uOiBzdGljay10b2dldGhlcjEK
ICAgICBzZXJ2aWNlcyB2bToxMDEsdm06MTA0CiAgICAgYWZmaW5pdHkgdG9nZXRoZXIKICAgICBz
dHJpY3QgMQoKY29sb2NhdGlvbjogc3RpY2stdG9nZXRoZXIyCiAgICAgc2VydmljZXMgdm06MTA0
LHZtOjEwMgogICAgIGFmZmluaXR5IHRvZ2V0aGVyCiAgICAgc3RyaWN0IDEKCmNvbG9jYXRpb246
IGtlZXAtYXBhcnQKICAgICBzZXJ2aWNlcyB2bToxMDEsdm06MTAyLHZtOjEwMwogICAgIGFmZmlu
aXR5IHNlcGFyYXRlCiAgICAgc3RyaWN0IDEKClRoaXMgcmVkdWNlcyB0aGUgY29tcGxleGl0eSBv
ZiB0aGUgbG9naWMgYSBsaXR0bGUgaW4gCidjaGVja19pbm5lcl9jb25zaXN0ZW5jeScgYXMgdGhl
cmUgaXQgZG9lc24ndCBoYXZlIHRvIGhhbmRsZSB0aGlzIApzcGVjaWFsIGNhc2UgYXMgJ3N0aWNr
LXRvZ2V0aGVyMScgYW5kICdzdGljay10b2dldGhlcjInIGFyZSBhbHJlYWR5IAptZXJnZWQgaW4g
dG8gb25lIGFuZCBpdCBpcyBlYXNpbHkgYXBwYXJlbnQgdGhhdCB2bSAxMDEgYW5kIHZtIDEwMiBj
YW5ub3QgCmJlIGNvbG9jYXRlZCBhbmQgbm9uLWNvbG9jYXRlZCBhdCB0aGUgc2FtZSB0aW1lLgoK
LS0tLS0KCkFsc28sIEkgd2FzIGN1cmlvdXMgYWJvdXQgaG93IHRoYXQgd291bGQgd29yayBvdXQg
Zm9yIHRoZSBjYXNlIHdoZXJlIGEgCm5lZ2F0aXZlIGNvbG9jYXRpb24gcnVsZSB3YXMgZGVmaW5l
ZCBmb3IgdGhyZWUgbm9kZXMgd2l0aCB0aG9zZSBydWxlcyAKc3BsaXQgaW50byB0aHJlZSBydWxl
cyAoZXNzZW50aWFsbHkgYSBjeWNsZSBkZXBlbmRlbmNlKS4gVGhpcyBzaG91bGQgaW4gCnRoZW9y
eSBoYXZlIHRoZSBzYW1lIHNlbWFudGljcyBhcyB0aGUgYWJvdmUgcnVsZSBzZXQ6Cgpjb2xvY2F0
aW9uOiBzdGljay10b2dldGhlcjEKICAgICBzZXJ2aWNlcyB2bToxMDEsdm06MTA0CiAgICAgYWZm
aW5pdHkgdG9nZXRoZXIKICAgICBzdHJpY3QgMQoKY29sb2NhdGlvbjogc3RpY2stdG9nZXRoZXIy
CiAgICAgc2VydmljZXMgdm06MTA0LHZtOjEwMgogICAgIGFmZmluaXR5IHRvZ2V0aGVyCiAgICAg
c3RyaWN0IDEKCmNvbG9jYXRpb246IHZlcnktbG9uZWx5LXNlcnZpY2VzMQogICAgIHNlcnZpY2Vz
IHZtOjEwMSx2bToxMDIKICAgICBhZmZpbml0eSBzZXBhcmF0ZQogICAgIHN0cmljdCAxCgpjb2xv
Y2F0aW9uOiB2ZXJ5LWxvbmVseS1zZXJ2aWNlczIKICAgICBzZXJ2aWNlcyB2bToxMDIsdm06MTAz
CiAgICAgYWZmaW5pdHkgc2VwYXJhdGUKICAgICBzdHJpY3QgMQoKY29sb2NhdGlvbjogdmVyeS1s
b25lbHktc2VydmljZXMzCiAgICAgc2VydmljZXMgdm06MTAxLHZtOjEwMwogICAgIGFmZmluaXR5
IHNlcGFyYXRlCiAgICAgc3RyaWN0IDEKCldpdGhvdXQgdGhlIG1lcmdlIG9mIHBvc2l0aXZlIHJ1
bGVzLCAnY2hlY2tfaW5uZXJfY29uc2lzdGVuY3knIHdvdWxkIAphZ2FpbiBub3QgZGV0ZWN0IHRo
ZSBpbmNvbnNpc3RlbmN5IGhlcmUuIEJ1dCB3aXRoIHRoZSBtZXJnZSBjb3JyZWN0bHkgCmFwcGxp
ZWQgYmVmb3JlIGNoZWNraW5nIHRoZSBjb25zaXN0ZW5jeSwgdGhpcyB3b3VsZCBiZSByZXNvbHZl
ZCBhbmQgdGhlIAplZmZlY3RpdmUgcnVsZSBzZXQgd291bGQgYmU6Cgpjb2xvY2F0aW9uOiB2ZXJ5
LWxvbmVseS1zZXJ2aWNlczIKICAgICBzZXJ2aWNlcyB2bToxMDIsdm06MTAzCiAgICAgYWZmaW5p
dHkgc2VwYXJhdGUKICAgICBzdHJpY3QgMQoKY29sb2NhdGlvbjogdmVyeS1sb25lbHktc2Vydmlj
ZXMzCiAgICAgc2VydmljZXMgdm06MTAxLHZtOjEwMwogICAgIGFmZmluaXR5IHNlcGFyYXRlCiAg
ICAgc3RyaWN0IDEKCkl0IGNvdWxkIGJlIGFyZ3VlZCwgdGhhdCB0aGUgbmVnYXRpdmUgY29sb2Nh
dGlvbiBydWxlcyBzaG91bGQgYmUgbWVyZ2VkIAppbiBhIHNpbWlsYXIgbWFubmVyIGhlcmUsIGFz
IHRoZXJlJ3Mgbm93IGEgImVmZmVjdGl2ZSIgZGlmZmVyZW5jZSBpbiB0aGUgCnNlbWFudGljcyBv
ZiB0aGUgYWJvdmUgcnVsZSBzZXRzLCBhcyB0aGUgbmVnYXRpdmUgY29sb2NhdGlvbiBydWxlIApi
ZXR3ZWVuIHZtIDEwMSBhbmQgdm0gMTAzIGFuZCB2bSAxMDIgYW5kIHZtIDEwMyByZW1haW5zLgoK
V2hhdCBkbyB5b3UgdGhpbms/Cgo+IAo+PiArCj4+ICs9Y3V0Cj4+ICsKPj4gK3N1YiBjaGVja19w
b3NpdGl2ZV9pbnRyYW5zaXRpdml0eSB7Cj4+ICsgICAgbXkgKCRydWxlcykgPSBAXzsKPj4gKwo+
PiArICAgIG15ICRjb25mbGljdHMgPSB7fTsKPj4gKyAgICBteSAoJHBvc2l0aXZlX3J1bGVpZHMp
ID0gc3BsaXRfY29sb2NhdGlvbl9ydWxlcygkcnVsZXMpOwo+PiArCj4+ICsgICAgd2hpbGUgKG15
ICRvdXRlcmlkID0gc2hpZnQoQCRwb3NpdGl2ZV9ydWxlaWRzKSkgewo+PiArCW15ICRvdXRlciA9
ICRydWxlcy0+e2lkc30tPnskb3V0ZXJpZH07Cj4+ICsKPj4gKwlmb3IgbXkgJGlubmVyaWQgKEAk
cG9zaXRpdmVfcnVsZWlkcykgewo+IAo+IHNvIHRoaXMgaXMgaW4gcHJhY3RpY2UgYSBzb3J0IG9m
ICJvcHRpbWl6ZWQiIGxvb3Agb3ZlciBhbGwgcGFpcnMgb2YKPiBydWxlcyAtIGl0ZXJhdGluZyBv
dmVyIHRoZSBwb3NpdGl2ZSBydWxlcyB0d2ljZSwgYnV0IHNraXBwaW5nIHBhaXJzIHRoYXQKPiB3
ZXJlIGFscmVhZHkgdmlzaXRlZCBieSB2aXJ0dWUgb2YgdGhlIHNoaWZ0IG9uIHRoZSBvdXRlciBs
b29wLi4KPiAKPiBtaWdodCBiZSB3b3J0aCBhIHNob3J0IG5vdGUsIHRvZ2V0aGVyIHdpdGggdGhl
ICRpbm5lciBhbmQgJG91dGVyCj4gdGVybWlub2xvZ3kgSSB3YXMgYSBiaXQgY29uZnVzZWQgYXQg
Zmlyc3QuLgoKU29ycnksIEknbGwgbWFrZSB0aGF0IGNsZWFyZXIgaW4gYSBjb21tZW50IGFib3Zl
IG9yIHdpdGggYmV0dGVyIG5hbWluZyAKb2YgdGhlIHZhcmlhYmxlcyEKClRoZSBgd2hpbGUoc2hp
ZnQgLi4uKWAgd2FzIG1vdGl2YXRlZCBieSBub3QgaGF2aW5nIHRvIHBydW5lIGR1cGxpY2F0ZXMg
CmFmdGVyd2FyZHMgYW5kIG9mIGNvdXJzZSBub3QgaGF2aW5nIHRvIGNoZWNrIHRoZSBzYW1lIHJ1
bGVzIGFnYWluLCBidXQgCmxhY2tzIGEgbGl0dGxlIGluIHJlYWRhYmlsaXR5IGhlcmUuCgo+IAo+
PiArCSAgICBteSAkaW5uZXIgPSAkcnVsZXMtPntpZHN9LT57JGlubmVyaWR9Owo+PiArCj4+ICsJ
ICAgIG5leHQgaWYgJG91dGVyaWQgZXEgJGlubmVyaWQ7Cj4+ICsJICAgIG5leHQgaWYgJG91dGVy
LT57c3RyaWN0fSAhPSAkaW5uZXItPntzdHJpY3R9Owo+PiArCSAgICBuZXh0IGlmIFBWRTo6SEE6
OlRvb2xzOjppc19kaXNqb2ludCgkb3V0ZXItPntzZXJ2aWNlc30sICRpbm5lci0+e3NlcnZpY2Vz
fSk7Cj4+ICsKPj4gKwkgICAgcHVzaCBAeyRjb25mbGljdHMtPnskb3V0ZXJpZH19LCAkaW5uZXJp
ZDsKPj4gKwl9Cj4+ICsgICAgfQo+PiArCj4+ICsgICAgcmV0dXJuICRjb25mbGljdHM7Cj4+ICt9
Cj4+ICsKPj4gKz1oZWFkMyBjaGVja19pbm5lcl9jb25zaXN0ZW5jeSgkcnVsZXMpCj4+ICsKPj4g
K1JldHVybnMgYSBsaXN0IG9mIGNvbmZsaWN0cyBjYXVzZWQgYnkgaW5jb25zaXN0ZW5jaWVzIGJl
dHdlZW4gcG9zaXRpdmUgYW5kCj4+ICtuZWdhdGl2ZSBjb2xvY2F0aW9uIHJ1bGVzIGRlZmluZWQg
aW4gQzwkcnVsZXM+Lgo+PiArCj4+ICtJbm5lciBpbmNvbnNpc3RlbnQgY29sb2NhdGlvbiBydWxl
cyBleGlzdCwgaWYgdGhlcmUgYXJlIGF0IGxlYXN0IHRoZSBzYW1lIHR3bwo+PiArc2VydmljZXMg
aW4gYSBwb3NpdGl2ZSBhbmQgYSBuZWdhdGl2ZSBjb2xvY2F0aW9uIHJlbGF0aW9uLCB3aGljaCBp
cyBhbgo+PiAraW1wb3NzaWJsZSBjb25zdHJhaW50IGFzIHRoZXkgYXJlIG9wcG9zaXRlcyBvZiBl
YWNoIG90aGVyLgo+PiArCj4+ICtJZiB0aGVyZSBhcmUgbm8gY29uZmxpY3RzLCB0aGUgcmV0dXJu
ZWQgbGlzdCBpcyBlbXB0eS4KPiAKPiBoZXJlIHRoZSBjb25mbGljdHMgYW5kIGNoZWNrIHRlcm1p
bm9sb2d5IG1ha2VzIHNlbnNlIC0gd2UgYXJlIGNoZWNraW5nCj4gYW4gaW52YXJpYW50IHRoYXQg
bXVzdCBiZSBzYXRpc2ZpZWQgYWZ0ZXIgYWxsIDopCj4gCj4+ICsKPj4gKz1jdXQKPj4gKwo+PiAr
c3ViIGNoZWNrX2lubmVyX2NvbnNpc3RlbmN5IHsKPiAKPiBidXQgJ2lubmVyJyBpcyBhIHdlaXJk
IHRlcm0gc2luY2UgdGhpcyBpcyBjb25zaXN0ZW5jeSBiZXR3ZWVuIHJ1bGVzPwo+IAo+IGl0IGJh
c2ljYWxseSBjaGVja3MgdGhhdCBubyBwYWlyIG9mIHNlcnZpY2VzIHNob3VsZCBib3RoIGJlIGNv
bG9jYXRlZAo+IGFuZCBub3QgYmUgY29sb2NhdGVkIGF0IHRoZSBzYW1lIHRpbWUsIGJ1dCBub3Qg
c3VyZSBob3cgdG8gZW5jb2RlIHRoYXQKPiBjb25jaXNlbHkuLgoKSG0gcmlnaHQsICdpbnRyYScg
d291bGRuJ3QgbWFrZSB0aGlzIGFueSBzaW1wbGVyLiBJJ2xsIGNvbWUgdXAgd2l0aCBhIApiZXR0
ZXIgbmFtZSBmb3IgdGhlIG5leHQgcmV2aXNpb24hCgo+IAo+PiArICAgIG15ICgkcnVsZXMpID0g
QF87Cj4+ICsKPj4gKyAgICBteSAkY29uZmxpY3RzID0gW107Cj4+ICsgICAgbXkgKCRwb3NpdGl2
ZV9ydWxlaWRzLCAkbmVnYXRpdmVfcnVsZWlkcykgPSBzcGxpdF9jb2xvY2F0aW9uX3J1bGVzKCRy
dWxlcyk7Cj4+ICsKPj4gKyAgICBmb3IgbXkgJG91dGVyaWQgKEAkcG9zaXRpdmVfcnVsZWlkcykg
ewo+PiArCW15ICRvdXRlciA9ICRydWxlcy0+e2lkc30tPnskb3V0ZXJpZH0tPntzZXJ2aWNlc307
Cj4gCj4gcy9vdXRlci9wb3NpdGl2ZSA/CgpBQ0sgZm9yIHRoaXMgYW5kIGFsbCB0aGUgZm9sbG93
aW5nIGluc3RhbmNlcyA7KQoKPiAKPj4gKwo+PiArCWZvciBteSAkaW5uZXJpZCAoQCRuZWdhdGl2
ZV9ydWxlaWRzKSB7Cj4+ICsJICAgIG15ICRpbm5lciA9ICRydWxlcy0+e2lkc30tPnskaW5uZXJp
ZH0tPntzZXJ2aWNlc307Cj4gCj4gcy9pbm5lci9uZWdhdGl2ZSA/Cj4gCj4+ICsKPj4gKwkgICAg
bXkgJGludGVyc2VjdGlvbiA9IFBWRTo6SEE6OlRvb2xzOjppbnRlcnNlY3QoJG91dGVyLCAkaW5u
ZXIpOwo+PiArCSAgICBuZXh0IGlmIHNjYWxhcihrZXlzICUkaW50ZXJzZWN0aW9uIDwgMik7Cj4g
Cj4gdGhlIGtleXMgdGhlcmUgaXMgbm90IG5lZWRlZCwgYnV0IHRoZSBwYXJlbnRoZXNlcyBhcmUg
aW4gdGhlIHdyb25nIHBsYWNlCj4gaW5zdGVhZCA7KSBpdCBkb2VzIHdvcmsgYnkgYWNjaWRlbnQg
dGhvdWdoLCBiZWNhdXNlIHRoZSByZXN1bHQgb2Yga2V5cwo+IHdpbGwgYmUgY29lcmNlZCB0byBh
IHNjYWxhciBhbnl3YXksIHNvIHlvdSBnZXQgdGhlIHJlc3VsdCBvZiB5b3VyCj4gY29tcGFyaXNv
biB3cmFwcGVkIGJ5IGFub3RoZXIgY2FsbCB0byBzY2FsYXIsIHNvIHlvdSBlbmQgdXAgd2l0aCBl
aXRoZXIKPiAxIG9yICcnIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBjaGVjayB3YXMgdHJ1ZSBv
ciBmYWxzZS4uCgpPaCwgd2hhdCBhIGx1Y2sgY29pbmNpZGVuY2UgOykhIFRoYW5rcyBmb3IgY2F0
Y2hpbmcgdGhhdCwgSSdsbCBmaXggdGhhdCEKCj4gCj4+ICsKPj4gKwkgICAgcHVzaCBAJGNvbmZs
aWN0cywgWyRvdXRlcmlkLCAkaW5uZXJpZF07Cj4+ICsJfQo+PiArICAgIH0KPj4gKwo+PiArICAg
IHJldHVybiAkY29uZmxpY3RzOwo+PiArfQo+PiArCj4+ICs9aGVhZDMgY2hlY2tfcG9zaXRpdmVf
Z3JvdXBfY29uc2lzdGVuY3koLi4uKQo+PiArCj4+ICtSZXR1cm5zIGEgbGlzdCBvZiBjb25mbGlj
dHMgY2F1c2VkIGJ5IGluY29uc2lzdGVuY2llcyBiZXR3ZWVuIHBvc2l0aXZlCj4+ICtjb2xvY2F0
aW9uIHJ1bGVzIGRlZmluZWQgaW4gQzwkcnVsZXM+IGFuZCBub2RlIHJlc3RyaWN0aW9ucyBkZWZp
bmVkIGluCj4+ICtDPCRncm91cHM+IGFuZCBDPCRzZXJ2aWNlPi4KPiAKPiBzZXJ2aWNlcz8KCkFD
Sy4KCj4gCj4+ICsKPj4gK0EgcG9zaXRpdmUgY29sb2NhdGlvbiBydWxlIGluY29uc2lzdGVuY3kg
d2l0aCBncm91cHMgZXhpc3RzLCBpZiBhdCBsZWFzdCB0d28KPj4gK3NlcnZpY2VzIGluIGEgcG9z
aXRpdmUgY29sb2NhdGlvbiBydWxlIGFyZSByZXN0cmljdGVkIHRvIGRpc2pvaW50IHNldHMgb2YK
Pj4gK25vZGVzLCBpLmUuIHRoZXkgYXJlIGluIHJlc3RyaWN0ZWQgSEEgZ3JvdXBzLCB3aGljaCBo
YXZlIGEgZGlzam9pbnQgc2V0IG9mCj4+ICtub2Rlcy4KPj4gKwo+PiArSWYgdGhlcmUgYXJlIG5v
IGNvbmZsaWN0cywgdGhlIHJldHVybmVkIGxpc3QgaXMgZW1wdHkuCj4+ICsKPj4gKz1jdXQKPj4g
Kwo+PiArc3ViIGNoZWNrX3Bvc2l0aXZlX2dyb3VwX2NvbnNpc3RlbmN5IHsKPj4gKyAgICBteSAo
JHJ1bGVzLCAkZ3JvdXBzLCAkc2VydmljZXMsICRwb3NpdGl2ZV9ydWxlaWRzLCAkY29uZmxpY3Rz
KSA9IEBfOwo+IAo+IHRoaXMgY291bGQganVzdCBnZXQgJHBvc2l0aXZlX3J1bGVzIChmaWx0ZXJl
ZCB2aWEgZ3JlcCkgaW5zdGVhZD8KPiAKPj4gKwo+PiArICAgIGZvciBteSAkcnVsZWlkIChAJHBv
c2l0aXZlX3J1bGVpZHMpIHsKPj4gKwlteSAkcnVsZV9zZXJ2aWNlcyA9ICRydWxlcy0+e2lkc30t
PnskcnVsZWlkfS0+e3NlcnZpY2VzfTsKPiAKPiBhbmQgdGhpcyBjb3VsZCBiZQo+IAo+IHdoaWxl
IChteSAoJHJ1bGVpZCwgJHJ1bGUpID0gZWFjaCAlJHBvc2l0aXZlX3J1bGVzKSB7Cj4gICAgbXkg
JG5vZGVzOwo+ICAgIC4uCj4gfQoKVGhhbmtzIGZvciB0aGUgc3VnZ2VzdGlvbiBoZXJlIGFuZCBh
Ym92ZSwgd2lsbCB1c2UgdGhhdCBmb3IgdGhlIHYxIQoKPiAKPj4gKwlteSAkbm9kZXM7Cj4+ICsK
Pj4gKwlmb3IgbXkgJHNpZCAoa2V5cyAlJHJ1bGVfc2VydmljZXMpIHsKPj4gKwkgICAgbXkgJGdy
b3VwaWQgPSAkc2VydmljZXMtPnskc2lkfS0+e2dyb3VwfTsKPj4gKwkgICAgcmV0dXJuIGlmICEk
Z3JvdXBpZDsKPiAKPiBzaG91bGQgdGhpcyByZWFsbHkgYmUgYSByZXR1cm4/CgpPb3BzLCBubyB0
aGF0IHNob3VsZG4ndCBiZSBhIHJldHVybiwgYnV0IGEgbmV4dCBvYnZpb3VzbHkuIEZvcmdvdCB0
byAKY2hhbmdlIHRoZW0gYmFjayBhZnRlciBJIG1vdmVkIHRoZW0gYmFjayBmcm9tIGEgaGFuZGxl
ciAoc2luY2UgdGhlcmUncyAKbWluaW1hbCBkdXBsaWNhdGVkIGNvZGUgd2l0aCB0aGUgbmV4dCBz
dWJyb3V0aW5lKS4gSSdsbCBjaGFuZ2UgdGhpcyBhbmQgCmFsbCB0aGUgb3RoZXIgaW5zdGFuY2Vz
IGZvciB0aGUgdjEuCgo+IAo+PiArCj4+ICsJICAgIG15ICRncm91cCA9ICRncm91cHMtPntpZHN9
LT57JGdyb3VwaWR9Owo+PiArCSAgICByZXR1cm4gaWYgISRncm91cDsKPj4gKwkgICAgcmV0dXJu
IGlmICEkZ3JvdXAtPntyZXN0cmljdGVkfTsKPiAKPiBzYW1lIGhlcmU/Cj4gCj4+ICsKPj4gKwkg
ICAgJG5vZGVzID0geyBtYXAgeyAkXyA9PiAxIH0ga2V5cyAleyRncm91cC0+e25vZGVzfX0gfSBp
ZiAhZGVmaW5lZCgkbm9kZXMpOwo+IAo+IGlzbid0ICRncm91cC0+e25vZGVzfSBhbHJlYWR5IGEg
aGFzaCBzZXQgb2YgdGhlIGRlc2lyZWQgZm9ybWF0PyBzbyB0aGlzIGNvdWxkIGJlCj4gCj4gJG5v
ZGVzID0geyAkZ3JvdXAtPntub2Rlc30tPiUqIH07Cj4gCj4gPwoKUmlnaHQsIHllcyBpdCBpcyEK
Ckkgd2FzIHN0aWxsIHNvbWV3aGF0IGNvbmZ1c2VkIGFib3V0IHdoYXQgdGhlIC0+JSogb3BlcmF0
aW9uIGV4YWN0bHkgZGlkIApvciBkaWQgbm90IHJlYWxseSBrbm93IHRoYXQgaXQgZXhpc3RlZCBi
ZWZvcmUsIGJ1dCBJIG5vdyBJIGZpbmFsbHkgCmxvb2tlZCB1cCBhYm91dCBwb3N0Zml4IGRlcmVm
ZXJlbmNpbmcgOykuCgo+IAo+PiArCSAgICAkbm9kZXMgPSBQVkU6OkhBOjpUb29sczo6aW50ZXJz
ZWN0KCRub2RlcywgJGdyb3VwLT57bm9kZXN9KTsKPiAKPiBjb3VsZCBhZGQgYSBicmVhayBoZXJl
IHdpdGggdGhlIHNhbWUgY29uZGl0aW9uIGFzIGJlbG93PwoKUmlnaHQgZm9yIHRoaXMgYW5kIHRo
ZSBzYW1lIGNvbW1lbnQgZm9yIApgY2hlY2tfbmVnYXRpdmVfZ3JvdXBfY29uc2lzdGVuY3lgLCBJ
J2xsIGRlZmluaXRlbHkgYWxzbyBhZGQgYSBjb21tZW50IAphYm92ZSB0aGF0IHRvIG1ha2UgaXQg
Y2xlYXIgd2h5LiBUaGFua3MgZm9yIHRoZSBzdWdnZXN0aW9uIQoKPiAKPj4gKwl9Cj4+ICsKPj4g
KwlpZiAoZGVmaW5lZCgkbm9kZXMpICYmIHNjYWxhciBrZXlzICUkbm9kZXMgPCAxKSB7Cj4+ICsJ
ICAgIHB1c2ggQCRjb25mbGljdHMsIFsncG9zaXRpdmUnLCAkcnVsZWlkXTsKPj4gKwl9Cj4+ICsg
ICAgfQo+PiArfQo+PiArCj4+ICs9aGVhZDMgY2hlY2tfbmVnYXRpdmVfZ3JvdXBfY29uc2lzdGVu
Y3koLi4uKQo+PiArCj4+ICtSZXR1cm5zIGEgbGlzdCBvZiBjb25mbGljdHMgY2F1c2VkIGJ5IGlu
Y29uc2lzdGVuY2llcyBiZXR3ZWVuIG5lZ2F0aXZlCj4+ICtjb2xvY2F0aW9uIHJ1bGVzIGRlZmlu
ZWQgaW4gQzwkcnVsZXM+IGFuZCBub2RlIHJlc3RyaWN0aW9ucyBkZWZpbmVkIGluCj4+ICtDPCRn
cm91cHM+IGFuZCBDPCRzZXJ2aWNlPi4KPj4gKwo+PiArQSBuZWdhdGl2ZSBjb2xvY2F0aW9uIHJ1
bGUgaW5jb25zaXN0ZW5jeSB3aXRoIGdyb3VwcyBleGlzdHMsIGlmIGF0IGxlYXN0IHR3bwo+PiAr
c2VydmljZXMgaW4gYSBuZWdhdGl2ZSBjb2xvY2F0aW9uIHJ1bGUgYXJlIHJlc3RyaWN0ZWQgdG8g
bGVzcyBub2RlcyBpbiB0b3RhbAo+PiArdGhhbiBzZXJ2aWNlcyBpbiB0aGUgcnVsZSwgaS5lLiB0
aGV5IGFyZSBpbiByZXN0cmljdGVkIEhBIGdyb3Vwcywgd2hlcmUgdGhlCj4+ICt1bmlvbiBvZiBh
bGwgcmVzdHJpY3RlZCBub2RlIHNldHMgaGF2ZSBsZXNzIGVsZW1lbnRzIHRoYW4gcmVzdHJpY3Rl
ZCBzZXJ2aWNlcy4KPj4gKwo+PiArSWYgdGhlcmUgYXJlIG5vIGNvbmZsaWN0cywgdGhlIHJldHVy
bmVkIGxpc3QgaXMgZW1wdHkuCj4+ICsKPj4gKz1jdXQKPj4gKwo+PiArc3ViIGNoZWNrX25lZ2F0
aXZlX2dyb3VwX2NvbnNpc3RlbmN5IHsKPj4gKyAgICBteSAoJHJ1bGVzLCAkZ3JvdXBzLCAkc2Vy
dmljZXMsICRuZWdhdGl2ZV9ydWxlaWRzLCAkY29uZmxpY3RzKSA9IEBfOwo+IAo+IHNhbWUgcXVl
c3Rpb24gaGVyZQo+IAo+PiArCj4+ICsgICAgZm9yIG15ICRydWxlaWQgKEAkbmVnYXRpdmVfcnVs
ZWlkcykgewo+PiArCW15ICRydWxlX3NlcnZpY2VzID0gJHJ1bGVzLT57aWRzfS0+eyRydWxlaWR9
LT57c2VydmljZXN9Owo+PiArCW15ICRyZXN0cmljdGVkX3NlcnZpY2VzID0gMDsKPj4gKwlteSAk
cmVzdHJpY3RlZF9ub2RlczsKPj4gKwo+PiArCWZvciBteSAkc2lkIChrZXlzICUkcnVsZV9zZXJ2
aWNlcykgewo+PiArCSAgICBteSAkZ3JvdXBpZCA9ICRzZXJ2aWNlcy0+eyRzaWR9LT57Z3JvdXB9
Owo+PiArCSAgICByZXR1cm4gaWYgISRncm91cGlkOwo+IAo+IHNhbWUgcXVlc3Rpb24gYXMgYWJv
dmUgOykKPiAKPj4gKwo+PiArCSAgICBteSAkZ3JvdXAgPSAkZ3JvdXBzLT57aWRzfS0+eyRncm91
cGlkfTsKPj4gKwkgICAgcmV0dXJuIGlmICEkZ3JvdXA7Cj4+ICsJICAgIHJldHVybiBpZiAhJGdy
b3VwLT57cmVzdHJpY3RlZH07Cj4gCj4gc2FtZSBoZXJlCj4gCj4+ICsKPj4gKwkgICAgJHJlc3Ry
aWN0ZWRfc2VydmljZXMrKzsKPj4gKwo+PiArCSAgICAkcmVzdHJpY3RlZF9ub2RlcyA9IHt9IGlm
ICFkZWZpbmVkKCRyZXN0cmljdGVkX25vZGVzKTsKPj4gKwkgICAgJHJlc3RyaWN0ZWRfbm9kZXMg
PSBQVkU6OkhBOjpUb29sczo6dW5pb24oJHJlc3RyaWN0ZWRfbm9kZXMsICRncm91cC0+e25vZGVz
fSk7Cj4gCj4gaGVyZSBhcyB3ZWxsIC0gaWYgcmVzdHJpY3RlZF9zZXJ2aWNlcyA+IHJlc3RyaWN0
ZWRfbm9kZXMsIGhhdmVuJ3Qgd2UKPiBhbHJlYWR5IGZvdW5kIGEgdmlvbGF0aW9uIG9mIHRoZSBp
bnZhcmlhbnQgYW5kIHNob3VsZCBicmVhayBldmVuIGlmCj4gYW5vdGhlciBzZXJ2aWNlIHdvdWxk
IHRoZW4gYmUgYWRkZWQgaW4gdGhlIG5leHQgaXRlcmF0aW9uIHRoYXQgY2FuIHJ1bgo+IG9uIDUg
bW92ZSBuZXcgbm9kZXMuLgoKVGhhbmtzIGZvciBjYXRjaGluZyB0aGlzLCB3aWxsIGRvIHRoYXQg
YXMgYWxyZWFkeSBzYWlkIGluIHRoZSBhYm92ZSBjb21tZW50IQoKPiAKPj4gKwl9Cj4+ICsKPj4g
KwlpZiAoZGVmaW5lZCgkcmVzdHJpY3RlZF9ub2RlcykKPj4gKwkgICAgJiYgc2NhbGFyIGtleXMg
JSRyZXN0cmljdGVkX25vZGVzIDwgJHJlc3RyaWN0ZWRfc2VydmljZXMpIHsKPj4gKwkgICAgcHVz
aCBAJGNvbmZsaWN0cywgWyduZWdhdGl2ZScsICRydWxlaWRdOwo+PiArCX0KPj4gKyAgICB9Cj4+
ICt9Cj4+ICsKPj4gK3N1YiBjaGVja19jb25zaXN0ZW5jeV93aXRoX2dyb3VwcyB7Cj4+ICsgICAg
bXkgKCRydWxlcywgJGdyb3VwcywgJHNlcnZpY2VzKSA9IEBfOwo+PiArCj4+ICsgICAgbXkgJGNv
bmZsaWN0cyA9IFtdOwo+PiArICAgIG15ICgkcG9zaXRpdmVfcnVsZWlkcywgJG5lZ2F0aXZlX3J1
bGVpZHMpID0gc3BsaXRfY29sb2NhdGlvbl9ydWxlcygkcnVsZXMpOwo+PiArCj4+ICsgICAgY2hl
Y2tfcG9zaXRpdmVfZ3JvdXBfY29uc2lzdGVuY3koJHJ1bGVzLCAkZ3JvdXBzLCAkc2VydmljZXMs
ICRwb3NpdGl2ZV9ydWxlaWRzLCAkY29uZmxpY3RzKTsKPj4gKyAgICBjaGVja19uZWdhdGl2ZV9n
cm91cF9jb25zaXN0ZW5jeSgkcnVsZXMsICRncm91cHMsICRzZXJ2aWNlcywgJG5lZ2F0aXZlX3J1
bGVpZHMsICRjb25mbGljdHMpOwo+PiArCj4+ICsgICAgcmV0dXJuICRjb25mbGljdHM7Cj4+ICt9
Cj4+ICsKPj4gK3N1YiBjYW5vbmljYWxpemUgewo+PiArICAgIG15ICgkY2xhc3MsICRydWxlcywg
JGdyb3VwcywgJHNlcnZpY2VzKSA9IEBfOwo+IAo+IHNob3VsZCB0aGlzIG5vdGUgdGhhdCBpdCB3
aWxsIG1vZGlmeSAkcnVsZXMgaW4tcGxhY2U/IHRoaXMgaXMgb25seQo+IGNhbGxlZCBieSBQVkU6
OkhBOjpSdWxlczo6Y2hlY2tlZF9jb25maWcgd2hpY2ggYWxzbyBkb2VzIG5vdCBub3RlIHRoYXQK
PiBhbmQgY291bGQgYmUgaW50ZXJwcmV0ZWQgYXMgImNvbmZpZyBpcyBjaGVja2VkIG5vdyIgOykK
ClllcywgaXQgc2hvdWxkIHJlYWxseSBiZSBwb2ludGVkIG91dCBieSBjaGVja2VkX2NvbmZpZywg
YnV0IGl0IGRvZXNuJ3QgCmh1cnQgYXQgYWxsIHRvIGRvY3VtZW50IGl0IGZvciBib3RoLiBjaGVj
a2VkX2NvbmZpZyBjb3VsZCBhbHNvIGhhdmUgYSAKYmV0dGVyIG5hbWUuCgo+IAo+PiArCj4+ICsg
ICAgbXkgJGlsbGRlZmluZWRfcnVsZWlkcyA9IGNoZWNrX3NlcnZpY2VzX2NvdW50KCRydWxlcyk7
Cj4+ICsKPj4gKyAgICBmb3IgbXkgJHJ1bGVpZCAoQCRpbGxkZWZpbmVkX3J1bGVpZHMpIHsKPj4g
KwlwcmludCAiRHJvcCBjb2xvY2F0aW9uIHJ1bGUgJyRydWxlaWQnLCBiZWNhdXNlIGl0IGRvZXMg
bm90IGhhdmUgZW5vdWdoIHNlcnZpY2VzIGRlZmluZWQuXG4iOwo+PiArCj4+ICsJZGVsZXRlICRy
dWxlcy0+e2lkc30tPnskcnVsZWlkfTsKPj4gKyAgICB9Cj4+ICsKPj4gKyAgICBteSAkbWVyZ2Vh
YmxlX3Bvc2l0aXZlX3J1bGVpZHMgPSBjaGVja19wb3NpdGl2ZV9pbnRyYW5zaXRpdml0eSgkcnVs
ZXMpOwo+PiArCj4+ICsgICAgZm9yIG15ICRvdXRlcmlkIChzb3J0IGtleXMgJSRtZXJnZWFibGVf
cG9zaXRpdmVfcnVsZWlkcykgewo+PiArCW15ICRvdXRlciA9ICRydWxlcy0+e2lkc30tPnskb3V0
ZXJpZH07Cj4+ICsJbXkgJGlubmVyaWRzID0gJG1lcmdlYWJsZV9wb3NpdGl2ZV9ydWxlaWRzLT57
JG91dGVyaWR9Owo+PiArCj4+ICsJZm9yIG15ICRpbm5lcmlkIChAJGlubmVyaWRzKSB7Cj4+ICsJ
ICAgIG15ICRpbm5lciA9ICRydWxlcy0+e2lkc30tPnskaW5uZXJpZH07Cj4+ICsKPj4gKwkgICAg
JG91dGVyLT57c2VydmljZXN9LT57JF99ID0gMSBmb3IgKGtleXMgJXskaW5uZXItPntzZXJ2aWNl
c319KTsKPj4gKwo+PiArCSAgICBwcmludCAiTWVyZ2Ugc2VydmljZXMgb2YgcG9zaXRpdmUgY29s
b2NhdGlvbiBydWxlICckaW5uZXJpZCcgaW50byBwb3NpdGl2ZSBjb2xvY2F0aW9uIgo+PiArCQku
ICIgcnVsZSAnJG91dGVyaWQnLCBiZWNhdXNlIHRoZXkgc2hhcmUgYXQgbGVhc3Qgb25lIHNlcnZp
Y2UuXG4iOwo+IAo+IHRoaXMgaXMgYSBiaXQgY29uZnVzaW5nIGJlY2F1c2UgaXQgbW9kaWZpZXMg
dGhlIHJ1bGUgd2hpbGUgY29udGludWluZyB0bwo+IHJlZmVyIHRvIGl0IHVzaW5nIHRoZSBvbGQg
bmFtZSBhZnRlcndhcmRzLi4gc2hvdWxkIHdlIG1lcmdlIHRoZW0gYW5kCj4gZ2l2ZSB0aGVtIGEg
bmV3IG5hbWU/CgpHb29kIGNhbGwsIEkgd291bGQgZ28gZm9yIGp1c3QgYXBwZW5kaW5nIHRoZSBu
YW1lLCBidXQgZGVwZW5kaW5nIG9uIGhvdyAKbWFueSBydWxlcyB0aGF0IGFyZSBhZmZlY3RlZCB0
aGlzIGNvdWxkIGdldCByYXRoZXIgbG9uZy4uLiBXZSBjb3VsZCBhbHNvIApqdXN0IGRvIHNvbWUg
dGVtcG9yYXJ5IG5hbWUgYXQgZWFjaCBuZXcgbWVyZ2UsIGJ1dCB0aGlzIGNvdWxkIGhhcmRlciB0
byAKZm9sbG93IGlmIHRoZXJlIGFyZSBtb3JlIHRoYW4gdHdvIG1lcmdlIGFjdGlvbnMuCgpJIHRo
aW5rIEknbGwgcHJlZmVyIGp1c3QgYXBwZW5kaW5nIGl0IHNpbmNlIGl0IHNlZW1zIHRoYXQgUGVy
bCBjYW4gCmhhbmRsZSBoYXNoIGtleXMgb2YgMioqMzEgImZpbmUiIGFueXdheSA6UCBhbmQgaG9w
ZSBmb3IgdGhlIGJldHRlciB0aGF0IAp0aGVyZSB3b24ndCBiZSB0b28gbWFueSBhZmZlY3RlZCBy
dWxlcyBmb3IgdXNlcnMgc28gdGhhdCB0aGUga2V5IGRvZXNuJ3QgCmdyb3cgdGhhdCBsb25nLiBP
ciB3aGF0IGRvIHlvdSB0aGluaz8KCj4gCj4+ICsKPj4gKwkgICAgZGVsZXRlICRydWxlcy0+e2lk
c30tPnskaW5uZXJpZH07Cj4+ICsJfQo+PiArICAgIH0KPj4gKwo+PiArICAgIG15ICRpbm5lcl9j
b25mbGljdHMgPSBjaGVja19pbm5lcl9jb25zaXN0ZW5jeSgkcnVsZXMpOwo+PiArCj4+ICsgICAg
Zm9yIG15ICRjb25mbGljdCAoQCRpbm5lcl9jb25mbGljdHMpIHsKPj4gKwlteSAoJHBvc2l0aXZl
aWQsICRuZWdhdGl2ZWlkKSA9IEAkY29uZmxpY3Q7Cj4+ICsKPj4gKwlwcmludCAiRHJvcCBwb3Np
dGl2ZSBjb2xvY2F0aW9uIHJ1bGUgJyRwb3NpdGl2ZWlkJyBhbmQgbmVnYXRpdmUgY29sb2NhdGlv
biBydWxlIgo+PiArCSAgICAuICIgJyRuZWdhdGl2ZWlkJywgYmVjYXVzZSB0aGV5IHNoYXJlIHR3
byBvciBtb3JlIHNlcnZpY2VzLlxuIjsKPj4gKwo+PiArCWRlbGV0ZSAkcnVsZXMtPntpZHN9LT57
JHBvc2l0aXZlaWR9Owo+PiArCWRlbGV0ZSAkcnVsZXMtPntpZHN9LT57JG5lZ2F0aXZlaWR9Owo+
PiArICAgIH0KPj4gKwo+PiArICAgIG15ICRncm91cF9jb25mbGljdHMgPSBjaGVja19jb25zaXN0
ZW5jeV93aXRoX2dyb3VwcygkcnVsZXMsICRncm91cHMsICRzZXJ2aWNlcyk7Cj4+ICsKPj4gKyAg
ICBmb3IgbXkgJGNvbmZsaWN0IChAJGdyb3VwX2NvbmZsaWN0cykgewo+PiArCW15ICgkdHlwZSwg
JHJ1bGVpZCkgPSBAJGNvbmZsaWN0Owo+PiArCj4+ICsJaWYgKCR0eXBlIGVxICdwb3NpdGl2ZScp
IHsKPj4gKwkgICAgcHJpbnQgIkRyb3AgcG9zaXRpdmUgY29sb2NhdGlvbiBydWxlICckcnVsZWlk
JywgYmVjYXVzZSB0d28gb3IgbW9yZSBzZXJ2aWNlcyBhcmUiCj4+ICsJCS4gIiByZXN0cmljdGVk
IHRvIGRpZmZlcmVudCBub2Rlcy5cbiI7Cj4+ICsJfSBlbHNpZiAoJHR5cGUgZXEgJ25lZ2F0aXZl
Jykgewo+PiArCSAgICBwcmludCAiRHJvcCBuZWdhdGl2ZSBjb2xvY2F0aW9uIHJ1bGUgJyRydWxl
aWQnLCBiZWNhdXNlIHR3byBvciBtb3JlIHNlcnZpY2VzIGFyZSIKPj4gKwkJLiAiIHJlc3RyaWN0
ZWQgdG8gbGVzcyBub2RlcyB0aGFuIHNlcnZpY2VzLlxuIjsKPj4gKwl9IGVsc2Ugewo+PiArCSAg
ICBkaWUgIkludmFsaWQgZ3JvdXAgY29uZmxpY3QgdHlwZSAkdHlwZVxuIjsKPj4gKwl9Cj4+ICsK
Pj4gKwlkZWxldGUgJHJ1bGVzLT57aWRzfS0+eyRydWxlaWR9Owo+PiArICAgIH0KPj4gK30KPj4g
Kwo+PiArIyBUT0RPIFRoaXMgd2lsbCBiZSB1c2VkIHRvIHZlcmlmeSBtb2RpZmljYXRpb25zIHRv
IHRoZSBydWxlcyBjb25maWcgb3ZlciB0aGUgQVBJCj4+ICtzdWIgYXJlX3NhdGlzZmlhYmxlIHsK
PiAKPiB0aGlzIGlzIGJhc2ljYWxseSBjYW5vbmljYWxpemUsIGJ1dAo+IC0gd2l0aG91dCBkZWxl
dGluZyBydWxlcwo+IC0gd2l0aG91dCB0aGUgdHJhbnNpdGl2aXR5IGNoZWNrCj4gLSB3aXRoIHNs
aWdodGx5IGFkYXB0ZWQgbWVzc2FnZXMKPiAKPiBzaG91bGQgdGhleSBiZSBjb21iaW5lZCBzbyB0
aGF0IHdlIGhhdmUgcm91Z2hseSB0aGUgc2FtZSBsb2dpYyB3aGVuCj4gZG9pbmcgY2hhbmdlcyB2
aWEgdGhlIEFQSSBhbmQgd2hlbiBsb2FkaW5nIHRoZSBydWxlcyBmb3Igb3BlcmF0aW9ucz8KClRo
YXQgd291bGQgYmUgbXVjaCBiZXR0ZXIsIHllcywgYXMgaXQncyBlYXN5IHRvIG1pc3MgYWRkaW5n
IGl0IHRvIGJvdGggCmFuZCBjb3VsZCBiZWNvbWUgY3VtYmVyc29tZSBpZiB0aGVyZSBhcmUgbW9y
ZSBjaGVja3MgbmVlZGVkIGluIHRoZSBmdXR1cmUuCgpJZiB0aGVyZSdzIG5vdGhpbmcgc3BlYWtp
bmcgYWdhaW5zdCB0aGF0LCBJIHdvdWxkIGdvIGZvciB0aGUgc3RydWN0dXJlIEkgCmhhdmUgbWVu
dGlvbmVkIGluIHRoZSBmaXJzdCBpbmxpbmUgY29tbWVudCB0byBpbXByb3ZlIHRoaXMsIHNvIHRo
YXQgdGhlIApjaGVjayByb3V0aW5lIGFuZCBoYW5kbGVycyBmb3IgY2Fub25pY2FsaXplKCkgYW5k
IGFyZV9zYXRpc2ZpYWJsZSgpIGFyZSAKY2xvc2VyIHRvZ2V0aGVyLgoKPiAKPj4gKyAgICBteSAo
JGNsYXNzLCAkcnVsZXMsICRncm91cHMsICRzZXJ2aWNlcykgPSBAXzsKPj4gKwo+PiArICAgIG15
ICRpbGxkZWZpbmVkX3J1bGVpZHMgPSBjaGVja19zZXJ2aWNlc19jb3VudCgkcnVsZXMpOwo+PiAr
Cj4+ICsgICAgZm9yIG15ICRydWxlaWQgKEAkaWxsZGVmaW5lZF9ydWxlaWRzKSB7Cj4+ICsJcHJp
bnQgIkNvbG9jYXRpb24gcnVsZSAnJHJ1bGVpZCcgZG9lcyBub3QgaGF2ZSBlbm91Z2ggc2Vydmlj
ZXMgZGVmaW5lZC5cbiI7Cj4+ICsgICAgfQo+PiArCj4+ICsgICAgbXkgJGlubmVyX2NvbmZsaWN0
cyA9IGNoZWNrX2lubmVyX2NvbnNpc3RlbmN5KCRydWxlcyk7Cj4+ICsKPj4gKyAgICBmb3IgbXkg
JGNvbmZsaWN0IChAJGlubmVyX2NvbmZsaWN0cykgewo+PiArCW15ICgkcG9zaXRpdmVpZCwgJG5l
Z2F0aXZlaWQpID0gQCRjb25mbGljdDsKPj4gKwo+PiArCXByaW50ICJQb3NpdGl2ZSBjb2xvY2F0
aW9uIHJ1bGUgJyRwb3NpdGl2ZWlkJyBpcyBpbmNvbnNpc3RlbnQgd2l0aCBuZWdhdGl2ZSBjb2xv
Y2F0aW9uIHJ1bGUiCj4+ICsJICAgIC4gIiAnJG5lZ2F0aXZlaWQnLCBiZWNhdXNlIHRoZXkgc2hh
cmUgdHdvIG9yIG1vcmUgc2VydmljZXMgYmV0d2VlbiB0aGVtLlxuIjsKPj4gKyAgICB9Cj4+ICsK
Pj4gKyAgICBteSAkZ3JvdXBfY29uZmxpY3RzID0gY2hlY2tfY29uc2lzdGVuY3lfd2l0aF9ncm91
cHMoJHJ1bGVzLCAkZ3JvdXBzLCAkc2VydmljZXMpOwo+PiArCj4+ICsgICAgZm9yIG15ICRjb25m
bGljdCAoQCRncm91cF9jb25mbGljdHMpIHsKPj4gKwlteSAoJHR5cGUsICRydWxlaWQpID0gQCRj
b25mbGljdDsKPj4gKwo+PiArCWlmICgkdHlwZSBlcSAncG9zaXRpdmUnKSB7Cj4+ICsJICAgIHBy
aW50ICJQb3NpdGl2ZSBjb2xvY2F0aW9uIHJ1bGUgJyRydWxlaWQnIGlzIHVuYXBwbGljYWJsZSwg
YmVjYXVzZSB0d28gb3IgbW9yZSBzZXJ2aWNlcyIKPj4gKwkJLiAiIGFyZSByZXN0cmljdGVkIHRv
IGRpZmZlcmVudCBub2Rlcy5cbiI7Cj4+ICsJfSBlbHNpZiAoJHR5cGUgZXEgJ25lZ2F0aXZlJykg
ewo+PiArCSAgICBwcmludCAiTmVnYXRpdmUgY29sb2NhdGlvbiBydWxlICckcnVsZWlkJyBpcyB1
bmFwcGxpY2FibGUsIGJlY2F1c2UgdHdvIG9yIG1vcmUgc2VydmljZXMiCj4+ICsJCS4gIiBhcmUg
cmVzdHJpY3RlZCB0byBsZXNzIG5vZGVzIHRoYW4gc2VydmljZXMuXG4iOwo+PiArCX0gZWxzZSB7
Cj4+ICsJICAgIGRpZSAiSW52YWxpZCBncm91cCBjb25mbGljdCB0eXBlICR0eXBlXG4iOwo+PiAr
CX0KPj4gKyAgICB9Cj4+ICsKPj4gKyAgICBpZiAoc2NhbGFyKEAkaW5uZXJfY29uZmxpY3RzKSB8
fCBzY2FsYXIoQCRncm91cF9jb25mbGljdHMpKSB7Cj4+ICsJcmV0dXJuIDA7Cj4+ICsgICAgfQo+
PiArCj4+ICsgICAgcmV0dXJuIDE7Cj4+ICt9Cj4+ICsKPj4gKzE7Cj4+IGRpZmYgLS1naXQgYS9z
cmMvUFZFL0hBL1J1bGVzL01ha2VmaWxlIGIvc3JjL1BWRS9IQS9SdWxlcy9NYWtlZmlsZQo+PiBu
ZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwLi44Y2I5MWFjCj4+IC0tLSAvZGV2
L251bGwKPj4gKysrIGIvc3JjL1BWRS9IQS9SdWxlcy9NYWtlZmlsZQo+PiBAQCAtMCwwICsxLDYg
QEAKPj4gK1NPVVJDRVM9Q29sb2NhdGlvbi5wbQo+PiArCj4+ICsuUEhPTlk6IGluc3RhbGwKPj4g
K2luc3RhbGw6Cj4+ICsJaW5zdGFsbCAtZCAtbSAwNzU1ICR7REVTVERJUn0ke1BFUkxESVJ9L1BW
RS9IQS9SdWxlcwo+PiArCWZvciBpIGluICR7U09VUkNFU307IGRvIGluc3RhbGwgLUQgLW0gMDY0
NCAkJGkgJHtERVNURElSfSR7UEVSTERJUn0vUFZFL0hBL1J1bGVzLyQkaTsgZG9uZQo+PiBkaWZm
IC0tZ2l0IGEvc3JjL1BWRS9IQS9Ub29scy5wbSBiL3NyYy9QVkUvSEEvVG9vbHMucG0KPj4gaW5k
ZXggMzUxMDdjOS4uNTIyNTFkNyAxMDA2NDQKPj4gLS0tIGEvc3JjL1BWRS9IQS9Ub29scy5wbQo+
PiArKysgYi9zcmMvUFZFL0hBL1Rvb2xzLnBtCj4+IEBAIC00Niw2ICs0NiwxMiBAQCBQVkU6OkpT
T05TY2hlbWE6OnJlZ2lzdGVyX3N0YW5kYXJkX29wdGlvbigncHZlLWhhLXJlc291cmNlLWlkJywg
ewo+PiAgICAgICB0eXBlID0+ICdzdHJpbmcnLCBmb3JtYXQgPT4gJ3B2ZS1oYS1yZXNvdXJjZS1p
ZCcsCj4+ICAgfSk7Cj4+ICAgCj4+ICtQVkU6OkpTT05TY2hlbWE6OnJlZ2lzdGVyX3N0YW5kYXJk
X29wdGlvbigncHZlLWhhLXJlc291cmNlLWlkLWxpc3QnLCB7Cj4+ICsgICAgZGVzY3JpcHRpb24g
PT4gIkxpc3Qgb2YgSEEgcmVzb3VyY2UgSURzLiIsCj4+ICsgICAgdHlwZXRleHQgPT4gIjx0eXBl
Pjo8bmFtZT57LDx0eXBlPjo8bmFtZT59KiIsCj4+ICsgICAgdHlwZSA9PiAnc3RyaW5nJywgZm9y
bWF0ID0+ICdwdmUtaGEtcmVzb3VyY2UtaWQtbGlzdCcsCj4+ICt9KTsKPj4gKwo+PiAgIFBWRTo6
SlNPTlNjaGVtYTo6cmVnaXN0ZXJfZm9ybWF0KCdwdmUtaGEtcmVzb3VyY2Utb3Itdm0taWQnLCBc
JnB2ZV92ZXJpZnlfaGFfcmVzb3VyY2Vfb3Jfdm1faWQpOwo+PiAgIHN1YiBwdmVfdmVyaWZ5X2hh
X3Jlc291cmNlX29yX3ZtX2lkIHsKPj4gICAgICAgbXkgKCRzaWQsICRub2VycikgPSBAXzsKPj4g
LS0gCj4+IDIuMzkuNQo+Pgo+Pgo+Pgo+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwo+PiBwdmUtZGV2ZWwgbWFpbGluZyBsaXN0Cj4+IHB2ZS1kZXZlbEBs
aXN0cy5wcm94bW94LmNvbQo+PiBodHRwczovL2xpc3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFp
bG1hbi9saXN0aW5mby9wdmUtZGV2ZWwKPj4KPj4KPj4KPiAKPiAKPiBfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IHB2ZS1kZXZlbCBtYWlsaW5nIGxpc3QK
PiBwdmUtZGV2ZWxAbGlzdHMucHJveG1veC5jb20KPiBodHRwczovL2xpc3RzLnByb3htb3guY29t
L2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wdmUtZGV2ZWwKPiAKPiAKCgoKX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KcHZlLWRldmVsIG1haWxpbmcgbGlz
dApwdmUtZGV2ZWxAbGlzdHMucHJveG1veC5jb20KaHR0cHM6Ly9saXN0cy5wcm94bW94LmNvbS9j
Z2ktYmluL21haWxtYW4vbGlzdGluZm8vcHZlLWRldmVsCg==