From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <pdm-devel-bounces@lists.proxmox.com>
Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9])
	by lore.proxmox.com (Postfix) with ESMTPS id 797891FF165
	for <inbox@lore.proxmox.com>; Thu,  3 Jul 2025 10:05:38 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 4602ADBF9;
	Thu,  3 Jul 2025 10:06:19 +0200 (CEST)
Message-ID: <eb6cbbb0-fe4b-4c33-a044-aacab59c2c19@proxmox.com>
Date: Thu, 3 Jul 2025 10:05:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Lukas Wagner <l.wagner@proxmox.com>
To: Proxmox Datacenter Manager development discussion
 <pdm-devel@lists.proxmox.com>, Dominik Csapak <d.csapak@proxmox.com>
References: <20250512114144.118545-1-l.wagner@proxmox.com>
 <20250512114144.118545-2-l.wagner@proxmox.com>
 <1df410bd-badc-45db-8a9e-a1292d8532d5@proxmox.com>
Content-Language: de-AT, en-US
In-Reply-To: <1df410bd-badc-45db-8a9e-a1292d8532d5@proxmox.com>
X-SPAM-LEVEL: Spam detection results:  0
 AWL -0.250 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
 POISEN_SPAM_PILL          0.1 Meta: its spam
 POISEN_SPAM_PILL_1        0.1 random spam to be learned in bayes
 POISEN_SPAM_PILL_3        0.1 random spam to be learned in bayes
 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.237 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
Subject: Re: [pdm-devel] [PATCH proxmox-datacenter-manager v5 1/6] remote
 tasks: implement improved cache for remote tasks
X-BeenThere: pdm-devel@lists.proxmox.com
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Proxmox Datacenter Manager development discussion
 <pdm-devel.lists.proxmox.com>
List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pdm-devel>, 
 <mailto:pdm-devel-request@lists.proxmox.com?subject=unsubscribe>
List-Archive: <http://lists.proxmox.com/pipermail/pdm-devel/>
List-Post: <mailto:pdm-devel@lists.proxmox.com>
List-Help: <mailto:pdm-devel-request@lists.proxmox.com?subject=help>
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel>, 
 <mailto:pdm-devel-request@lists.proxmox.com?subject=subscribe>
Reply-To: Proxmox Datacenter Manager development discussion
 <pdm-devel@lists.proxmox.com>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: pdm-devel-bounces@lists.proxmox.com
Sender: "pdm-devel" <pdm-devel-bounces@lists.proxmox.com>

T24gIDIwMjUtMDUtMTQgMTY6MDgsIERvbWluaWsgQ3NhcGFrIHdyb3RlOgo+IHlvdSB3cml0ZSBi
ZWxvdyB0aGF0IHlvdSB1c2UgdGhlIG9sZGVzdCBhY3RpdmUgdGFzayBhcyBhIGN1dG9mZgo+IChp
IGd1ZXNzIGluIGEgbGF0ZXIgcGF0Y2gpLCBidXQgdGhhdCBoYXMgbWF5YmUgc29tZSBiYWQgY29u
c2VxdWVuY2VzOgo+IAo+IGlmIHRoZXJlIGlzIGEgbG9uZyBydW5uaW5nIHRhc2sgKGUuZy4gbXVs
dGlwbGUgZGF5czsgbm90IHRoYXQgdW5jb21tb24KPiBmb3IgZS5nLiBwYnMpLCB3ZSdkIHJldmlz
aXQgb2xkIHRhc2tzIG92ZXIgYW5kIG92ZXIgYWdhaW4gZm9yIHRoYXQKPiByZW1vdGUsIGhpdHRp
bmcgdGhlIHRhc2sgYXJjaGl2ZSBvbiBkaXNrIGFnYWluIGV2ZXJ5IHRpbWUuCj4gCgpZZXMsIEkg
dGhpbmsgeW91IGFyZSByaWdodCwgbXkgYXBwcm9hY2ggaXMgYSBiaXQgZmxhd2VkIGZvciB0YXNr
cyBydW5uaW5nIGZvciBhIHZlcnkgbG9uZyB0aW1lLgpJIGNob3NlIHRoaXMgYXBwcm9hY2ggYmVj
YXVzZSBpdCBzaW1wbGlmaWVzIHRoZSBvdmVyYWxsIGZldGNoaW5nIG9mIGZpbmlzaGVkIGFuZCBw
b2xsaW5nIG9mIHRyYWNrZWQKdGFza3MuIEJ1dCBub3cgd2l0aCB5b3VyIGlucHV0IGFuZCBzb21l
IHRpbWUgcGFzc2VkIHNpbmNlIEkgaW1wbGVtZW50ZWQgdGhpcywgSSBjYW4gc2VlCndoeSB0aGlz
IG1pZ2h0IGJlIHByb2JsZW1hdGljLgpJIGd1ZXNzIEknbGwgZ28gYmFjayB0byBwb2xsaW5nIHRy
YWNrZWQgdGFza3MgaW5kaXZpZHVhbGx5LiBJIGp1c3Qgbm93IGR1ZyB0aHJvdWdoCnRoZSAvbm9k
ZXMvPG5vZGU+L3Rhc2tzLzx1cGlkPi9zdGF0dXMgQVBJIGltcGxlbWVudGF0aW9uIGFuZCB3YXMg
cGxlYXNlbnRseSBzdXByaXNlZApob3cgZWZmaWNpZW50IHRoYXQgZW5kcG9pbnQgaXMgLSBzbyBJ
IGd1ZXNzIGl0IHNob3VsZCBiZSBubyBwcm9ibGVtIGF0IGFsbCB0bwprZWVwIGhpdHRpbmcgdGhh
dCBvbmUgcmVwZWF0ZWRseSwgZXZlbiBpZiB0aGVyZSBpcyBhIGxhcmdlciBudW1iZXIgb2YgcnVu
bmluZywgdHJhY2tlZCB0YXNrcyBmb3IgYQpzaW5nbGUgbm9kZS4KCj4gY291bGQgaXQgbWF5YmUg
bWFrZSBtb3JlIHNlbnNlIHRvIGVpdGhlcjoKPiAqIGp1c3QgcmVxdWVzdCBmaW5pc2hlZCB0YXNr
cyBzbyB3ZSBkb24ndCBoYXZlIHRvIGRlYWwgd2l0aCBydW5uaW5nCj4gwqAgdGFza3Mgd2UgZGlk
IG5vdCB0cmFjawo+ICogdHJhY2sgdGhlIGFjdGl2ZSB0YXNrcyB0aGF0IGdvdCBzeW5jZWQsIG1h
eWJlIHdpdGggYSBsb3dlcgo+IMKgIGludGVydmFsIHRoYW4gdGhlIG9uZXMgd2Ugc3RhcnRlZD8K
PiAKPiBUaGlzIHdheSB3ZSBjYW4gYXZvaWQgaGl0dGluZyB0aGUgb24gZGlzayB0YXNrIGxpc3Qg
KGV2ZW4gaWYKPiBpdCdzIGp1c3QgcmVhZCBjYWxscykgZm9yIHJlbW90ZXMgd2l0aCBsb25nIHJ1
bm5pbmcgdGFza3MuCj4gCj4gV2hhdCBkbyB5b3UgdGhpbms/Cj4gCgpJIHRoaW5rIGZvciBub3cg
SSdkIHRlbmQgdG93YXJkcyB0aGUgZmlyc3Qgb3B0aW9uLCBvbmx5IHJlcXVlc3RpbmcgZmluaXNo
ZWQgdGFza3MuClRoZSBzZWNvbmQgb25lLCB0cmFja2luZyAnZm9yZWlnbicgYWN0aXZlIHRhc2tz
IHdpdGggc29tZSBpbnRlcm1lZGlhdGUgcG9sbGluZwppbnRlcnZhbCBjYW4gYWx3YXlzIGJlIGFk
ZGVkIGxhdGVyLgoKPiAKPiBBbHNvIHNvbWUgY29tbWVudHMgaW5saW5lCj4gCj4gT24gNS8xMi8y
NSAxMzo0MSwgTHVrYXMgV2FnbmVyIHdyb3RlOgo+PiBUaGlzIGNvbW1pdCBhZGRzIGEgbmV3IGlt
cGxlbWVudGF0aW9uIGZvciBhIGNhY2hlIGZvciByZW1vdGUgdGFza3MsIG9uZQo+PiB0aGF0IHNo
b3VsZCBpbXByb3ZlIHBlcmZvcm1hbmNlIGNoYXJhY3RlcmlzdGljcyBpbiBmb3IgcHJldHR5IG11
Y2ggYWxsCj4+IHVzZSBjYXNlcy4KPj4KPj4gSW4gZ2VuZXJhbCBzdG9yYWdlIHdvcmtzIHByZXR0
eSBzaW1pbGFyIHRvIHRoZSB0YXNrIGFyY2hpdmUgd2UgYWxyZWFkeQo+PiBoYXZlIGZvciAobG9j
YWwpIFBETSB0YXNrcy4KPj4KPj4gcm9vdEBwZG0tZGV2Oi92YXIvY2FjaGUvcHJveG1veC1kYXRh
Y2VudGVyLW1hbmFnZXIvcmVtb3RlLXRhc2tzIyBscyAtbAo+PiB0b3RhbCA0MAo+PiAtcnctci0t
ci0tIDEgd3d3LWRhdGEgd3d3LWRhdGHCoMKgwqDCoCAwIE1hciAxMyAxMzoxOCBhY3RpdmUKPj4g
LXJ3LXItLXItLSAxIHd3dy1kYXRhIHd3dy1kYXRhwqAgMTY3NiBNYXIgMTEgMTQ6NTEgYXJjaGl2
ZS4xNzQxMzU1NDYyCj4+IC1ydy1yLS1yLS0gMSB3d3ctZGF0YSB3d3ctZGF0YcKgwqDCoMKgIDAg
TWFyIDExIDE0OjUxIGFyY2hpdmUuMTc0MTQ0MTg2Mgo+PiAtcnctci0tci0tIDEgd3d3LWRhdGEg
d3d3LWRhdGHCoCAyNTM4IE1hciAxMSAxNDo1MSBhcmNoaXZlLjE3NDE1MjgyNjIKPj4gLXJ3LXIt
LXItLSAxIHd3dy1kYXRhIHd3dy1kYXRhwqAgODQyOCBNYXIgMTEgMTU6MDcgYXJjaGl2ZS4xNzQx
NjE0NjYyCj4+IC1ydy1yLS1yLS0gMSB3d3ctZGF0YSB3d3ctZGF0YSAxMTc0MCBNYXIgMTMgMTA6
MTggYXJjaGl2ZS4xNzQxNzAxMDYyCj4+IC1ydy1yLS1yLS0gMSB3d3ctZGF0YSB3d3ctZGF0YcKg
IDMzNjQgTWFyIDEzIDEzOjE4IGFyY2hpdmUuMTc0MTc4ODI3MAo+PiAtcnctci0tci0tIDEgd3d3
LWRhdGEgd3d3LWRhdGHCoMKgIDI4NyBNYXIgMTMgMTM6MTggc3RhdGUKPj4KPj4gVGFza3MgYXJl
IHN0b3JlZCBpbiB0aGUgJ2FjdGl2ZScgYW5kIG11bHRpcGxlICdhcmNoaXZlJyBmaWxlcy4gUnVu
bmluZwo+PiB0YXNrcyBhcmUgcGxhY2VkIGludG8gdGhlICdhY3RpdmUnIGZpbGUsIHRhc2tzIHRo
YXQgYXJlIGZpbmlzaGVkIGFyZQo+PiBwZXJzaXN0ZWQgaW50byBvbmUgb2YgdGhlIGFyY2hpdmUg
ZmlsZXMuIFRoZSBhcmNoaXZlIGZpbGVzIGFyZSBzdWZmaXhlZAo+PiB3aXRoIGEgVU5JWCB0aW1l
c3RhbXAgd2hpY2ggc2VydmVzIGFzIGEgbG93ZXItYm91bmQgZm9yIHN0YXJ0IHRpbWVzIGZvcgo+
PiB0YXNrcyBzdG9yZWQgaW4gdGhpcyBmaWxlLiBFbmNvZGluZyB0aGlzIGxvd2VyLWJvdW5kIGlu
IHRoZSBmaWxlIG5hbWUKPj4gaW5zdGVhZCBvZiB1c2luZyBhIG1vcmUgdHJhZGl0aW9uYWwgaW5j
cmVhc2luZyBmaWxlIGluZGV4ICguMSwgLjIsIC4zKQo+PiBnaXZlcyB1cyB0aGUgYmVuZWZpdCB0
aGF0IHdlIGNhbiBkZWNpZGUgaW4gd2hpY2ggZmlsZSBhIG5ld2x5IGFycml2ZWQKPj4gdGFza3Mg
YmVsb25ncyBmcm9tIGEgc2luZ2xlIHJlYWRkaXIgY2FsbCwgd2l0aG91dCBldmVuIHJlYWRpbmcg
dGhlIGZpbGUKPj4gaXRzZWxmLgo+Pgo+PiBUaGUgc2l6ZSBvZiB0aGUgZW50aXJlIGFyY2hpdmUg
Y2FuIGJlIGNvbnRyb2xsZWQgYnkgZG9pbmcgZmlsZQo+PiAncm90YXRpb24nLCB3aGVyZSB0aGUg
YXJjaGl2ZSBmaWxlIHdpdGggdGhlIG9sZGVzdCB0aW1lc3RhbXAgaXMgZGVsZXRlZAo+PiBhbmQg
YSBuZXcgZmlsZSB3aXRoIHRoZSBjdXJyZW50IHRpbWVzdGFtcCBpcyBhZGRlZC4gSWYgJ3JvdGF0
aW9uJwo+PiBoYXBwZW5zIGF0IGZpeGVkIGludGVydmFscyAoZS5nLiBvbmNlIGRhaWx5KSwgdGhp
cyBnaXZlcyB1cyBhCj4+IGNvbmZpZ3VyYWJsZSBudW1iZXIgb2YgZGF5cyBvZiB0YXNrIGhpc3Rv
cnkuIFRoZXJlIGlzIG5vIGRpcmVjdCBjYXAgZm9yCj4+IHRoZSB0b3RhbCBudW1iZXIgb2YgdGFz
a3MsIGJ1dCB0aGlzIGNvdWxkIGJlIGVhc2lseSBhZGRlZCBieSBjaGVja2luZwo+PiB0aGUgc2l6
ZSBvZiB0aGUgbW9zdCByZWNlbnQgYXJjaGl2ZSBmaWxlIGFuZCBieSByb3RhdGluZyBlYXJseSBp
ZiBhCj4+IHRocmVzaG9sZCBpcyBleGNlZWRlZC4KPj4KPj4gVGhlIGZvcm1hdCBpbnNpZGUgdGhl
IGZpbGVzIGlzIGFsc28gc2ltaWxhciB0byB0aGUgbG9jYWwgdGFzayBhcmNoaXZlLAo+PiB3aXRo
IG9uZSB0YXNrIGNvcnJlc3BvbmRpbmcgdG8gb25lIGxpbmUgaW4gdGhlIGZpbGUuIE9uZSBrZXkg
ZGlmZmVyZW5jZQo+PiBpcyB0aGF0IGhlcmUgZWFjaCBsaW5lIGlzIGEgSlNPTiBvYmplY3QsIHRo
YXQgaXMgdG8gbWFrZSBpdCBlYXNpZXIgdG8KPj4gYWRkIGFkZGl0aW9uYWwgZGF0YSBsYXRlciwg
aWYgbmVlZGVkLiBUaGUgSlNPTiBvYmplY3QgY29udGFpbnMgdGhlIHRhc2tzCj4+IFVQSUQsIHN0
YXR1cywgZW5kdGltZSBhbmQgc3RhcnR0aW1lICh0aGUgc3RhcnR0aW1lIGlzIHRlY2huaWNhbGx5
IGFsc28KPj4gZW5jb2RlZCBpbiB0aGUgVVBJRCwgYnV0IGhhdmluZyBpdCBhcyBhIHNlcGFyYXRl
IHZhbHVlIHNpbXBsaWZpZWQgYQo+PiBjb3VwbGUgb2YgdGhpbmdzKSBFYWNoIGZpbGUgaXMgc29y
dGVkIGJ5IHRoZSB0YXNrJ3Mgc3RhcnQgdGltZSwgdGhlCj4+IHlvdW5nZXN0IHRhc2sgY29taW5n
IGZpcnN0Lgo+Pgo+PiBPbmUga2V5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIHRhc2sgY2FjaGUg
YW5kIHRoZSBsb2NhbCB0YXNrIGFyY2hpdmUgaXMKPj4gdGhhdCB3ZSBuZWVkIHRvIGhhbmRsZSB0
YXNrcyBjb21pbmcgaW4gb3V0LW9mLW9yZGVyLCBlLmcuIGlmIHJlbW90ZXMKPj4gd2VyZSBub3Qg
cmVhY2hhYmxlIGZvciBhIGNlcnRhaW4gdGltZS4gVG8gbWFpbnRhaW4gdGhlIG9yZGVyaW5nIGlu
IHRoZQo+PiBmaWxlLCB3ZSBoYXZlIHRvIG1lcmdlIHRoZSBuZXdseSBhcnJpdmVkIHRhc2tzIGlu
dG8gdGhlIGV4aXN0aW5nIHRhc2sKPj4gZmlsZS4gVGhpcyB3YXMgaW1wbGVtZW50ZWQgaW4gYSB3
YXkgdGhhdCBhdm9pZHMgcmVhZGluZyB0aGUgZW50aXJlIGZpbGUKPj4gaW50byBtZW1vcnkgYXQg
b25jZSwgZXhwbG9pdGluZyB0aGUgZmFjdCB0aGF0IHRoZSBjb250ZW50cyBvZiB0aGUKPj4gZXhp
c3RpbmcgZmlsZSBhcmUgYWxyZWFkeSBzb3J0ZWQuIFRoaXMgYWxsb3dzIHRvIGRvIGEgemlwcGVy
L21lcmdlLXNvcnQKPj4gbGlrZSBhcHByb2FjaCAoc2VlIE1lcmdlVGFza0l0ZXJhdG9yIGZvciBk
ZXRhaWxzKS4gVGhlIGV4aXN0aW5nIGZpbGUgaXMKPj4gb25seSByZWFkIGxpbmUtYnktbGluZSBh
bmQgZmluYWxseSByZXBsYWNlZCBhdG9taWNhbGx5Lgo+Pgo+PiBUaGUgY2FjaGUgYWxzbyBoYXMg
YSBzZXBhcmF0ZSBzdGF0ZSBmaWxlLCBjb250YWluaW5nIGFkZGl0aW9uYWwKPj4gaW5mb3JtYXRp
b24sIGUuZy4gY3V0LW9mZiB0aW1lc3RhbXBzIGZvciB0aGUgcG9sbGluZyB0YXNrLiBTb21lIG9m
IHRoZQo+PiBkYXRhIGluIHRoZSBzdGF0ZWZpbGUgaXMgdGVjaG5pY2FsbHkgYWxzbyBjb250YWlu
ZWQgaW4gdGhlIGFyY2hpdmUKPj4gZmlsZXMsIGJ1dCByZWFkaW5nIHRoZSBzdGF0ZSBmaWxlIGlz
IG11Y2ggZmFzdGVyLgo+Pgo+PiBUaGlzIGNvbW1pdCBhbHNvIGFkZHMgYW4gZWxhYm9yYXRlIHN1
aXRlIG9mIHVuaXQgdGVzdHMgZm9yIHRoaXMgbmV3Cj4+IGNhY2hlLiBXaGlsZSBhZGRpbmcgc29t
ZSBhZGRpdGlvbmFsIHdvcmsgdXAgZnJvbnQsIHRoZXkgcGFpZCBvZmYKPj4gdGhlbXNlbHZlcyBk
dXJpbmcgZGV2ZWxvcG1lbnQgcXVpdGUgcXVpY2tseSwgc2luY2UgdGhlIG92ZXJhbGwgYXBwcm9h
Y2gKPj4gZm9yIHRoZSBjYWNoZSBjaGFuZ2VkIGEgY291cGxlIG9mIHRpbWVzLiBUaGUgdGVzdCBz
dWl0ZSBnYXZlIG1lCj4+IGNvbmZpZGVuY2UgdGhhdCB0aGUgZGVzaWduIGNoYW5nZXMgZGlkbid0
IHNjcmV3IGFueXRoaW5nIHVwLCBjYXRjaGluZyBhCj4+IGNvdXBsZSBvZiBidWdzIGluIHRoZSBw
cm9jZXNzLgo+Pgo+PiBGaW5hbGx5LCBzb21lIGNvbmNyZXRlIG51bWJlcnMgYWJvdXQgdGhlIHBl
cmZvcm1hbmNlIGltcHJvdm1lbnRzLgo+PiBCZW5jaG1hcmtpbmcgd2FzIGRvbmUgdXNpbmcgdGhl
ICdmYWtlLXJlbW90ZScgZmVhdHVyZS4gVGhlcmUgd2VyZSAxMDAKPj4gcmVtb3RlcywgMTAgUFZF
IG5vZGVzIHBlciByZW1vdGUuIFRoZSB0YXNrIGNhY2hlIGNvbnRhaW5lZAo+PiBhYm91dCAxLjUg
bWlsbGlvbiB0YXNrcy4KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYmVm
b3JlwqDCoMKgwqDCoMKgwqDCoCBhZnRlcgo+PiBsaXN0IG9mIGFjdGl2ZSB0YXNrcyAoKik6wqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB+MS4zc8KgwqDCoMKgwqDCoMKg
wqAgfjMwMMK1cwo+PiBsaXN0IG9mIDUwMCB0YXNrcywgb2Zmc2V0IDAgKCoqKTrCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqAgfjEuM3PCoMKgwqDCoMKgwqDCoCB+MTQ1MMK1cwo+PiBsaXN0IG9mIDUw
MCB0YXNrcywgb2Zmc2V0IDEgbWlsbGlvbiAoKioqKTrCoMKgwqAgfjEuM3PCoMKgwqDCoMKgwqDC
oMKgIH4xNzVtcwo+PiBTaXplIG9uIGRpc2s6wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB+NTAwTULCoMKgwqDCoMKgwqDCoCB+
MjAwTUIKPj4KPj4gKCopOsKgIFJlcXVlc3RlZCBieSB0aGUgVUkgZXZlcnkgM3MKPj4gKCoqKTog
UmVxdWVzdGVkIGJ5IHRoZSBVSSB3aGVuIHZpc2l0aW5nIFJlbW90ZXMgPiBUYXNrcwo+PiAoKioq
KTogRS5nLiB3aGVuIHNjcm9sbGluZyB0b3dhcmRzIHRoZSBib3R0b20gb2YgJ1JlbW90ZXMgPiBU
YXNrcycKPj4KPj4gSW4gdGhlIG9sZCBpbXBsZW1lbnRhdGlvbiwgdGhlIGFyY2hpdmUgZmlsZSB3
YXMgKmFsd2F5cyogZnVsbHkKPj4gZGVzZXJpYWxpemVkIGFuZCBsb2FkZWQgaW50byBSQU0sIHRo
aXMgaXMgdGhlIHJlYXNvbiB3aHkgdGhlIHRpbWUgbmVlZGVkCj4+IGlzIHByZXR0eSBpZGVudGlh
bCBmb3IgYWxsIHNjZW5hcmlvcy4gVGhlIG5ldyBpbXBsZW1lbnRhdGlvbiByZWFkcyB0aGUKPj4g
YXJjaGl2ZSBmaWxlcyBvbmx5IGxpbmUgYnkgbGluZSwgYW5kIG9ubHkgNTAwIHRhc2tzIHdlcmUg
bG9hZGVkIGludG8gUkFNCj4+IGF0IHRoZSBzYW1lIHRpbWUuIFRoZSBoaWdoZXIgdGhlIG9mZnNl
dCwgdGhlIG1vcmUgYXJjaGl2ZSBsaW5lcy9maWxlcyB3ZQo+PiBoYXZlIHRvIHNjYW4sIHdoaWNo
IGluY3JlYXNlcyB0aGUgdGltZSBuZWVkZWQgdG8gYWNjZXNzIHRoZSBkYXRhLiBUaGUKPj4gdGFz
a3MgYXJlIHNvcnRlZCBkZXNjZW5kaW5nIGJ5IHN0YXJ0dGltZSwgYXMgYSByZXN1bHQgdGhlIHJl
cXVlc3RzIGdldAo+PiBzbG93ZXIgdGhlIGZ1cnRoZXIgeW91IGdvIGJhY2sgaW4gaGlzdG9yeS4K
Pj4KPj4gU2lnbmVkLW9mZi1ieTogTHVrYXMgV2FnbmVyIDxsLndhZ25lckBwcm94bW94LmNvbT4K
Pj4gLS0tCj4+Cj4+IE5vdGVzOgo+PiDCoMKgwqDCoCBDaGFuZ2VzIHNpbmNlIHYzOgo+PiDCoMKg
wqDCoMKgwqAgLSBJbmNsdWRlZCBiZW5jaG1hcmsgcmVzdWx0cyBpbiB0aGUgY29tbWl0IG1lc3Nh
Z2UKPj4gwqDCoMKgwqDCoMKgIC0gRHJvcCBgcHViYCBmb3IgVGFza0NhY2hlOjp3cml0ZV9zdGF0
ZQo+PiDCoMKgwqDCoCDCoMKgwqDCoCBDaGFuZ2VzIHNpbmNlIHYyOgo+PiDCoMKgwqDCoMKgwqAg
LSBJbmNvcnBvcmF0ZSBmZWVkYmFjayBmcm9tIFdvbGZhbmcgKHRoeCEpCj4+IMKgwqDCoMKgwqDC
oMKgwqDCoCAtIGVsaW1pbmF0ZSBvbmUgLmNsb25lKCkKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC0g
Z2V0X3Rhc2tzX3dpdGhfbG9jazogZGlyZWN0bHkgY3JlYXRlIGl0ZXJhdG9yIG92ZXIgUGF0aEJ1
Zgo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGluc3RlYWQgb2YgZmlyc3QgY3JlYXRpbmcgQXJj
aGl2ZUZpbGUgdmVjIGFuZCB0aGUgbWFwcGluZwo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLSBGaXhl
ZCBUT0NUT1UgcmFjZSBjb25kaXRpb24gKGNoZWNrZWQgUGF0aDo6ZXhpc3RzIGluc3RlYWQgb2YK
Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0cnlpbmcgdGhlIGFjdHVhbCBvcGVyYXRpb24gYW5k
IHJlYWN0aW5nIHRvIEVycm9yS2luZDo6Tm90Rm91bmQpCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAt
IGhhbmRsZSBlcnJvciB3aGVuIHJlcGxhY2luZyAnYWN0aXZlJyBmaWxlCj4+IMKgwqDCoMKgwqDC
oMKgwqDCoCAtIHVubGluayB0ZW1wIGZpbGUgd2hlbiByZXBsYWNpbmcgdGhlIGFyY2hpdmUgZmls
ZSBkaWQgbm90IHdvcmsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC0gYXZvaWQgVVRGOCBkZWNvZGlu
ZyB3aGVyZSBub3QgcmVhbGx5IG5lY2Vzc2FyeQo+PiDCoMKgwqDCoMKgwqAgLSBBZGRlZCBhIGNv
dXBsZSBvZiAuY29udGV4dCgpLy53aXRoX2NvbnRleHQoKSBmb3IgYmV0dGVyIGVycm9yCj4+IMKg
wqDCoMKgwqDCoMKgwqAgbWVzc2FnZXMKPj4gwqDCoMKgwqDCoMKgIC0gRXh0cmFjdGVkIHRoZSBm
aWxlIG5hbWVzIGludG8gY29uc3RzCj4+IMKgwqDCoMKgwqDCoCAtIEZpeGVkIHNvbWUgY2xpcHB5
IGlzc3VlcyAoLmNsb25lKCkgZm9yIENyZWF0ZU9wdGlvbnMgLSB3aGVuCj4+IMKgwqDCoMKgwqDC
oMKgwqAgdGhpcyBzZXJpZXMgd2FzIHdyaXR0ZW4sIENyZWF0ZU9wdGlvbnMgd2VyZSBub3QgQ29w
eSB5ZXQpCj4+Cj4+IMKgIHNlcnZlci9zcmMvcmVtb3RlX3Rhc2tzL21vZC5yc8KgwqDCoMKgwqDC
oMKgIHzCoMKgwqAgMiArCj4+IMKgIHNlcnZlci9zcmMvcmVtb3RlX3Rhc2tzL3Rhc2tfY2FjaGUu
cnMgfCAxMDIyICsrKysrKysrKysrKysrKysrKysrKysrKysKPj4gwqAgMiBmaWxlcyBjaGFuZ2Vk
LCAxMDI0IGluc2VydGlvbnMoKykKPj4gwqAgY3JlYXRlIG1vZGUgMTAwNjQ0IHNlcnZlci9zcmMv
cmVtb3RlX3Rhc2tzL3Rhc2tfY2FjaGUucnMKPj4KPj4gZGlmZiAtLWdpdCBhL3NlcnZlci9zcmMv
cmVtb3RlX3Rhc2tzL21vZC5ycyBiL3NlcnZlci9zcmMvcmVtb3RlX3Rhc2tzL21vZC5ycwo+PiBp
bmRleCAyMzRmZmE3Ni4uN2M4ZTMxZWYgMTAwNjQ0Cj4+IC0tLSBhL3NlcnZlci9zcmMvcmVtb3Rl
X3Rhc2tzL21vZC5ycwo+PiArKysgYi9zZXJ2ZXIvc3JjL3JlbW90ZV90YXNrcy9tb2QucnMKPj4g
QEAgLTE4LDYgKzE4LDggQEAgdXNlIHRva2lvOjp0YXNrOjpKb2luSGFuZGxlOwo+PiDCoCDCoCB1
c2UgY3JhdGU6OnthcGk6OnB2ZSwgdGFza191dGlsc307Cj4+IMKgICttb2QgdGFza19jYWNoZTsK
Pj4gKwo+PiDCoCAvLy8gR2V0IHRhc2tzIGZvciBhbGwgcmVtb3Rlcwo+PiDCoCAvLyBGSVhNRTog
ZmlsdGVyIGZvciBwcml2aWxlZ2VzCj4+IMKgIHB1YiBhc3luYyBmbiBnZXRfdGFza3MobWF4X2Fn
ZTogaTY0LCBmaWx0ZXJzOiBUYXNrRmlsdGVycykgLT4gUmVzdWx0PFZlYzxUYXNrTGlzdEl0ZW0+
LCBFcnJvcj4gewo+PiBkaWZmIC0tZ2l0IGEvc2VydmVyL3NyYy9yZW1vdGVfdGFza3MvdGFza19j
YWNoZS5ycyBiL3NlcnZlci9zcmMvcmVtb3RlX3Rhc2tzL3Rhc2tfY2FjaGUucnMKPj4gbmV3IGZp
bGUgbW9kZSAxMDA2NDQKPj4gaW5kZXggMDAwMDAwMDAuLmY4ZGQ4MjFlCj4+IC0tLSAvZGV2L251
bGwKPj4gKysrIGIvc2VydmVyL3NyYy9yZW1vdGVfdGFza3MvdGFza19jYWNoZS5ycwo+PiBAQCAt
MCwwICsxLDEwMjIgQEAKPj4gKy8vISBUYXNrIGNhY2hlIGltcGxlbWVudGF0aW9uLCBiYXNlZCBv
biByb3RhdGluZyBmaWxlcy4KPj4gKwo+PiArdXNlIHN0ZDo6ewo+PiArwqDCoMKgIGNtcDo6T3Jk
ZXJpbmcsCj4+ICvCoMKgwqAgY29sbGVjdGlvbnM6OntIYXNoTWFwLCBIYXNoU2V0fSwKPj4gK8Kg
wqDCoCBmczo6RmlsZSwKPj4gK8KgwqDCoCBpbzo6e0J1ZlJlYWQsIEJ1ZlJlYWRlciwgQnVmV3Jp
dGVyLCBFcnJvcktpbmQsIExpbmVzLCBXcml0ZX0sCj4+ICvCoMKgwqAgaXRlcjo6UGVla2FibGUs
Cj4+ICvCoMKgwqAgcGF0aDo6e1BhdGgsIFBhdGhCdWZ9LAo+PiArwqDCoMKgIHRpbWU6OkR1cmF0
aW9uLAo+PiArfTsKPj4gKwo+PiArdXNlIGFueWhvdzo6e0NvbnRleHQsIEVycm9yfTsKPj4gK3Vz
ZSBwcm94bW94X3N5czo6ZnM6OkNyZWF0ZU9wdGlvbnM7Cj4+ICt1c2Ugc2VyZGU6OntEZXNlcmlh
bGl6ZSwgU2VyaWFsaXplfTsKPj4gKwo+PiArdXNlIHBkbV9hcGlfdHlwZXM6OlJlbW90ZVVwaWQ7
Cj4+ICsKPj4gKy8vLyBGaWxlbmFtZSBmb3IgdGhlIGZpbGUgY29udGFpbmluZyBydW5uaW5nIHRh
c2tzLgo+PiArY29uc3QgQUNUSVZFX0ZJTEVOQU1FOiAmc3RyID0gImFjdGl2ZSI7Cj4+ICsvLy8g
RmlsZW5hbWUgcHJlZml4IGZvciBhcmNoaXZlIGZpbGVzLgo+PiArY29uc3QgQVJDSElWRV9GSUxF
TkFNRV9QUkVGSVg6ICZzdHIgPSAiYXJjaGl2ZS4iOwo+PiArLy8vIEZpbGVuYW1lIGZvciB0aGUg
c3RhdGUgZmlsZS4KPj4gK2NvbnN0IFNUQVRFX0ZJTEVOQU1FOiAmc3RyID0gInN0YXRlIjsKPj4g
Ky8vLyBGaWxlbmFtZSBvZiB0aGUgYXJjaGl2ZSBsb2NrZmlsZS4KPj4gK2NvbnN0IExPQ0tGSUxF
X0ZJTEVOQU1FOiAmc3RyID0gIi5sb2NrIjsKPj4gKwo+PiArLy8vIEl0ZW0gd2hpY2ggY2FuIGJl
IHB1dCBpbnRvIHRoZSB0YXNrIGNhY2hlLgo+PiArI1tkZXJpdmUoQ2xvbmUsIERlYnVnLCBTZXJp
YWxpemUsIERlc2VyaWFsaXplLCBIYXNoLCBQYXJ0aWFsRXEsIEVxKV0KPj4gK3B1YiBzdHJ1Y3Qg
VGFza0NhY2hlSXRlbSB7Cj4+ICvCoMKgwqAgLy8vIFRoZSB0YXNrJ3MgVVBJRAo+PiArwqDCoMKg
IHB1YiB1cGlkOiBSZW1vdGVVcGlkLAo+PiArwqDCoMKgIC8vLyBUaGUgdGltZSBhdCB3aGljaCB0
aGUgdGFzayB3YXMgc3RhcnRlZCAoc2Vjb25kcyBzaW5jZSB0aGUgVU5JWCBlcG9jaCkuCj4+ICvC
oMKgwqAgLy8vIFRlY2huaWNhbGx5IHRoaXMgaXMgYWxzbyBjb250YWluZWQgd2l0aGluIHRoZSBV
UElELCBkdXBsaWNhdGluZyBpdCBoZXJlCj4+ICvCoMKgwqAgLy8vIGFsbG93cyB1cyB0byBkaXJl
Y3RseSBhY2Nlc3MgaXQgd2hlbiBzb3J0aW5nIGluIG5ldyB0YXNrcywgd2l0aG91dCBoYXZpbmcK
Pj4gK8KgwqDCoCAvLy8gdG8gcGFyc2UgdGhlIFVQSUQuCj4+ICvCoMKgwqAgcHViIHN0YXJ0dGlt
ZTogaTY0LAo+IAo+IGluc3RlYWQgb2Ygc2F2aW5nIHRoZSBzdGFydHRpbWUgaGVyZSwgY291bGRu
J3Qgd2UgYWxzbyB1c2UgdGhlIHBhcnNlZAo+IFVQSUQgc3RydWN0ICsgcmVtb3RlIGluc3RlYWQ/
Cj4gCj4gbm90IHN1cmUgYWJvdXQgdGhlIG1lbW9yeSBpbXBsaWNhdGlvbnMsIGJ1dCB0aGVuIHdl
IGNvdWxkIGF2b2lkIHRoaW5ncwo+IGxpa2UgeW91IGhhdmluZyB0byBwYXJ0aWFsbHkgbW92ZSB0
aGUgdXBpZCBvdXQgb2YgYSBzdHJ1Y3QgYW5kIGJhY2sgYWdhaW4KPiBmb3IgcmVtb3Zpbmcgb3V0
IG9mIGEgaGFzaHNldAo+IAo+ICh0aG91Z2ggaXQncyBhbHNvIGZpbmUgYXMgaXQgaXMgZm9yIG1l
KQoKSSdkIHJhdGhlciBrZWVwIHRoaXMgYXMgaXMsIGFzIGl0IGtlZXBzIHRoZSBhcmNoaXZlIGZp
bGVzIHNtYWxsZXIuCgo+IAo+PiArwqDCoMKgICNbc2VyZGUoc2tpcF9zZXJpYWxpemluZ19pZiA9
ICJPcHRpb246OmlzX25vbmUiKV0KPj4gK8KgwqDCoCAvLy8gVGhlIHRhc2sncyBzdGF0dXMuCj4+
ICvCoMKgwqAgcHViIHN0YXR1czogT3B0aW9uPFN0cmluZz4sCj4+ICvCoMKgwqAgI1tzZXJkZShz
a2lwX3NlcmlhbGl6aW5nX2lmID0gIk9wdGlvbjo6aXNfbm9uZSIpXQo+PiArwqDCoMKgIC8vLyBU
aGUgdGFzaydzIGVuZHRpbWUgKHNlY29uZHMgc2luY2UgdGhlIFVOSVggZXBvY2gpLgo+PiArwqDC
oMKgIHB1YiBlbmR0aW1lOiBPcHRpb248aTY0PiwKPj4gK30KPj4gKwo+PiArLy8vIFN0YXRlIG5l
ZWRlZCBmb3IgdGFzayBwb2xsaW5nLgo+PiArI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6
ZSwgRGVmYXVsdCldCj4+ICsjW3NlcmRlKHJlbmFtZV9hbGwgPSAia2ViYWItY2FzZSIpXQo+PiAr
cHViIHN0cnVjdCBTdGF0ZSB7Cj4+ICvCoMKgwqAgLy8vIE1hcCBvZiByZW1vdGUgLT4gbW9zdCBy
ZWNlbnQgdGFzayBzdGFydHRpbWUgKFVOSVggZXBvY2gpIGluIHRoZSBhcmNoaXZlLgo+PiArwqDC
oMKgIC8vLyBUaGlzIGNhbiBiZSB1c2VkIGFzIGEgY3V0LW9mZiB3aGVuIHJlcXVlc3RpbmcgbmV3
IHRhc2sgZGF0YS4KPj4gK8KgwqDCoCBwdWIgbW9zdF9yZWNlbnRfYXJjaGl2ZV9zdGFydHRpbWU6
IEhhc2hNYXA8U3RyaW5nLCBpNjQ+LAo+PiArwqDCoMKgIC8vLyBPbGRlc3QgcnVubmluZyB0YXNr
LiBVc2VmdWwgYXMgYW5vdGhlciBjdXQtb2ZmIGZvciBmZXRjaGluZyB0YXNrcy4KPj4gK8KgwqDC
oCAvLy8gVGhlIHRpbWVzdGFtcCBpcyBiYXNlZCBvbiBzZWNvbmRzIHNpbmNlIHRoZSBVTklYIGVw
b2NoLgo+PiArwqDCoMKgIHB1YiBvbGRlc3RfYWN0aXZlX3Rhc2s6IEhhc2hNYXA8U3RyaW5nLCBp
NjQ+LD4gK8KgwqDCoCAvLy8gVHJhY2tlZCB0YXNrcyBwZXIgcmVtb3RlLgo+PiArwqDCoMKgIHB1
YiB0cmFja2VkX3Rhc2tzOiBIYXNoTWFwPFN0cmluZywgSGFzaFNldDxSZW1vdGVVcGlkPj4sCj4+
ICt9Cj4gCj4gd291bGRuJ3QgaXQgYmUgcG9zc2libGUgdG8ganVzdCBzYXZlIHRoZSBjdXRvZmYg
dGltZT8KPiB3ZSBqdXN0IGhhdmUgdG8gZmlyc3QgaW5jcmVhdGUgdGhlIHRpbWUgZm9yIHRoZSBm
aW5pc2hlZCB0YXNrcwo+IGFuZCBhZnRlcndhcmRzIHJlZHVjZSBpdCBhZ2FpbiBpZiB0aGVyZSBp
cyBzdGlsbCBhbiBhY3RpdmUgdGFzaz8KPiAKPiBhbHNvIHdvdWxkIGl0IGJlIHBvc3NpYmxlIHRv
IGNvbWJpbmUgdGggaGFzaG1hcHMgaW50byBvbmU/Cj4gZS5nLiBIYXNoTWFwPFN0cmluZywgKGk2
NCwgSGFzaFNldDxTdHJpbmc+KT4gPwo+IAo+IHRoYXQgd2F5IHdlIHdvdWxkIHJlZHVjZSB0aGUg
bnVtYmVyIG9mIHRpbWVzIHdlIHNhdmUgdGhlIHJlbW90ZSBpbiB0aGUgZmlsZQo+IHdoaWNoIGNh
biBhZGQgdXAgaWYgd2UgaGF2ZSBtYW55IHJlbW90ZXMgKGUuZy4gaHVuZHJlZHMpCj4gCj4gc28g
aW5zdGVhZCBvZgo+IAo+IHsKPiDCoMKgwqDCoCJtb3N0LXJlY2VudC1hcmNoaXZlLXN0YXJ0dGlt
ZSI6IHsKPiDCoMKgwqDCoMKgwqDCoCAicmVtb3RlLTEiOiAxMjMxMjMsCj4gwqDCoMKgwqDCoMKg
wqAgInJlbW90ZS0yIjogMTIzMTIzLAo+IMKgwqDCoMKgfSwKPiDCoMKgwqDCoCAib2xkZXN0X2Fj
dGl2ZV90YXNrIiA6IHsKPiDCoMKgwqDCoMKgwqDCoCAicmVtb3RlLTEiOiAyMzIzMjMsCj4gwqDC
oMKgwqDCoMKgwqAgInJlbW90ZS0yIjogMjMyMzIzLAo+IMKgwqDCoMKgfSwKPiDCoMKgwqDCoCJ0
cmFja2VkLXRhc2tzIjogewo+IMKgwqDCoMKgwqDCoMKgICJyZW1vdGUtMSI6IFsKPiDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgICJyZW1vdGUtMSE8VVBJRDE+IiwKPiDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgICJyZW1vdGUtMSE8VVBJRDI+Igo+IMKgwqDCoMKgwqDCoMKgIF0KPiDCoMKgwqDCoH0KPiB9
Cj4gCj4gaXQgd291bGQgYmU6Cj4gCj4gewo+IMKgwqDCoMKgInN0YXRlIjogewo+IMKgwqDCoMKg
wqDCoMKgICJyZW1vdGUtMSI6IFsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDEyMzEyMywKPiDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgIFsiPFVQSUQxPiIsICI8VVBJRDI+Il0KPiDCoMKgwqDCoMKg
wqDCoCBdLAo+IMKgwqDCoMKgwqDCoMKgICJyZW1vdGUtMiI6IFsKPiDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgIDEyMzEyMywKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFtdCj4gwqDCoMKgwqDCoMKg
wqAgXQo+IMKgwqDCoMKgfQo+IH0KClNvbWUgb2YgeW91ciBwb2ludHMgd2lsbCBub3QgYmUgcmVs
ZXZhbnQgYW55IG1vcmUgb25jZSBJIGNoYW5nZSB0aGUgcG9sbGluZyBhcHByb2FjaCBhcyBkZXNj
cmliZWQgYWJvdmUsCmJ1dCBJJ2xsIHNlZSBpZiBJIGNhbiBtYWtlIHRoZSBzdGF0ZSBmaWxlIGEg
Yml0IG1vcmUgJ2NvbXBhY3QnIHdpdGggdGhlIG5ldyBhcHByb2FjaC4KCj4gCj4+ICsKPj4gKy8v
LyBDYWNoZSBmb3IgcmVtb3RlIHRhc2tzLgo+PiArI1tkZXJpdmUoQ2xvbmUpXQo+PiArcHViIHN0
cnVjdCBUYXNrQ2FjaGUgewo+PiArwqDCoMKgIC8vLyBQYXRoIHdoZXJlIHRoZSBjYWNoZSdzIGZp
bGVzIHNob3VsZCBiZSBwbGFjZWQuCj4+ICvCoMKgwqAgYmFzZV9wYXRoOiBQYXRoQnVmLAo+PiAr
wqDCoMKgIC8vLyBGaWxlIHBlcm1pc3Npb25zIGZvciB0aGUgY2FjaGUncyBmaWxlcy4KPj4gK8Kg
wqDCoCBjcmVhdGVfb3B0aW9uczogQ3JlYXRlT3B0aW9ucywKPj4gK30KPj4gKwo+PiArLy8vIFRh
c2tzIHRoYXQgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBjYWNoZSB2aWEgW2BUYXNrQ2FjaGU6OmFk
ZF90YXNrc2BdLgo+PiArcHViIHN0cnVjdCBBZGRUYXNrcyB7Cj4+ICvCoMKgwqAgLy8vIFVwZGF0
ZSB0aGUgcmVtb3RlJ3MgZW50cnkgaW4gdGhlIHN0YXRlZmlsZSB3aGljaCBjb250YWlucyB0aGUK
Pj4gK8KgwqDCoCAvLy8gdGltZXN0YW1wIG9mIHRoZSBtb3N0IHJlY2VudCAqZmluaXNoZWQqIHRh
c2sgZnJvbSB0aGUgdGFzayBhcmNoaXZlLgo+PiArwqDCoMKgIHB1YiB1cGRhdGVfbW9zdF9yZWNl
bnRfYXJjaGl2ZV90aW1lc3RhbXA6IGJvb2wsCj4+ICvCoMKgwqAgLy8vIFRoZSB0YXNrcyB0byBh
ZGQuCj4+ICvCoMKgwqAgcHViIHRhc2tzOiBWZWM8VGFza0NhY2hlSXRlbT4sCj4+ICt9Cj4+ICsK
Pj4gKy8vLyBMb2NrIGZvciB0aGUgY2FjaGUuCj4+ICsjW2FsbG93KGRlYWRfY29kZSldCj4+ICtw
dWIgc3RydWN0IFRhc2tDYWNoZUxvY2soRmlsZSk7Cj4+ICsKPj4gKy8vLyBXaGljaCB0YXNrcyB0
byBmZXRjaCBmcm9tIHRoZSBhcmNoaXZlLgo+PiArcHViIGVudW0gR2V0VGFza3Mgewo+PiArwqDC
oMKgIC8vLyBHZXQgYWxsIHRhc2tzLCBmaW5pc2hlZCBhbmQgcnVubmluZy4KPj4gK8KgwqDCoCBB
bGwsCj4+ICvCoMKgwqAgLy8vIE9ubHkgZ2V0IHJ1bm5pbmcgKGFjdGl2ZSkgdGFza3MuCj4+ICvC
oMKgwqAgQWN0aXZlLAo+PiArwqDCoMKgICNbY2ZnKHRlc3QpXSAvLyBVc2VkIGJ5IHRlc3RzLCBt
aWdodCBiZSB1c2VkIGJ5IHByb2R1Y3Rpb24gY29kZSBpbiB0aGUgZnV0dXJlCj4+ICvCoMKgwqAg
Ly8vIE9ubHkgZ2V0IGZpbmlzaGVkIChhcmNoaXZlZCkgdGFza3MuCj4+ICvCoMKgwqAgQXJjaGl2
ZWQsCj4+ICt9Cj4+ICsKPj4gK2ltcGwgVGFza0NhY2hlIHsKPj4gK8KgwqDCoCAvLy8gQ3JlYXRl
IGEgbmV3IHRhc2sgY2FjaGUgaW5zdGFuY2UuCj4+ICvCoMKgwqAgLy8vCj4+ICvCoMKgwqAgLy8v
IFJlbWVtYmVyIHRvIGNhbGwgYGluaXRgIG9yIGBuZXdfZmlsZWAgdG8gY3JlYXRlIGluaXRpYWwg
YXJjaGl2ZSBmaWxlcyBiZWZvcmUKPj4gK8KgwqDCoCAvLy8gYWRkaW5nIGFueSB0YXNrcy4KPiAK
PiBOb3Qgc3VyZSBpZiB3ZSB1c2UgdGhpcyBraW5kIG9mIHBhdHRlcm4gc29tZXdoZXJlIGFscmVh
ZHksIGJ1dCBpZiB5b3UgdXNlIGRpZmZlcmVudAo+IHR5cGVzIGZvciBkaWZmZXJlbnQgbWV0aG9k
cz8KPiAKPiAKPiBlLmcuIGhhdmluZyBhIFRhc2tDYWNoZSBhbmQgYW4gV3JpdGFibGVUYXNrQ2Fj
aGUgd2hlcmUgb25seSB0aGUgc2Vjb25kIGhhcwo+IGFkZF90YXNrcyBhbmQgeW91IGNhbiBvbmx5
IHJlYWNoIGl0IGJ5IHVzaW5nIGluaXQvbmV3X2ZpbGUgPwo+IAo+IHRoZW4gaXQgY2Fubm90IGhh
cHBlbiB0aGF0IGFkZCBpcyBjYWxsZWQgZmFsc2VseQo+IAo+IFNhbWUgd2l0aCB0aGUgLmxvY2so
KSBjYWxscwo+IAo+IElmIHRoZXJlIHdvdWxkIGJlIGEgTG9ja2VkVGFza0NhY2hlIHRoYXQgY2Fu
IGRvIGV2ZXJ5dGhpbmcgdGhhdCB5b3UgY2FuIGRvIHdpdGggYSBsb2NrCj4gdGhlcmUgaXMgbm8g
bmVlZCB0byBtYW51YWxseSBoYW5kbGUgdGhlIGxvY2sgYW55d2hlcmUgb3V0c2lkZSB0aGlzIG1v
ZHVsZQo+IChwcm9iYWJseSBuZWVkcyB0d28gdmFyaWFudHMsIG9uZSBmb3IgcmVhZGluZyBhbmQg
b25lIGZvciB3cml0aW5nKQo+IAoKTWlnaHQgYmUgYSBnb29kIGlkZWEsIHRoYW5rcy4gSSdkIHBy
ZWZlciB0byBkbyB0aGF0IGluIGEgZm9sbG93LXVwIHNlcmllcyBvbmNlIHRoaXMgaXMgYXBwbGll
ZCwgc2luY2UgdGhpcyBpcyBtb3N0bHkKYSBzdHlsaXN0aWMgY2hvaWNlLgoKPiAKPj4gK8KgwqDC
oCBwdWIgZm4gbmV3PFA6IEFzUmVmPFBhdGg+PihwYXRoOiBQLCBjcmVhdGVfb3B0aW9uczogQ3Jl
YXRlT3B0aW9ucykgLT4gUmVzdWx0PFNlbGYsIEVycm9yPiB7Cj4+ICvCoMKgwqDCoMKgwqDCoCBP
ayhTZWxmIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYmFzZV9wYXRoOiBwYXRoLmFzX3Jl
ZigpLmludG8oKSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY3JlYXRlX29wdGlvbnMsCj4+
ICvCoMKgwqDCoMKgwqDCoCB9KQo+PiArwqDCoMKgIH0KPj4gKwo+PiArwqDCoMKgIC8vLyBDcmVh
dGUgaW5pdGlhbCB0YXNrIGFyY2hpdmVzIHRoYXQgY2FuIGJlIGJhY2tmaWxsZWQgd2l0aCB0aGUK
Pj4gK8KgwqDCoCAvLy8gcmVjZW50IHRhc2sgaGlzdG9yeSBmcm9tIGEgcmVtb3RlLgo+PiArwqDC
oMKgIC8vLwo+PiArwqDCoMKgIC8vLyBUaGlzIGZ1bmN0aW9uIG9ubHkgaGFzIGFuIGVmZmVjdCBp
ZiB0aGVyZSBhcmUgbm8gYXJjaGl2ZSBmaWxlcyB5ZXQuCj4+ICvCoMKgwqAgcHViIGZuIGluaXQo
JnNlbGYsIG5vdzogaTY0LCBudW1iZXJfb2ZfZmlsZXM6IHU2NCwgcGVyaW9kX3Blcl9maWxlOiB1
NjQpIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKPj4gK8KgwqDCoMKgwqDCoMKgIGxldCBfbG9jayA9
IHNlbGYubG9jayh0cnVlKS5jb250ZXh0KCJmYWlsZWQgdG8gbG9jayBhcmNoaXZlIik/Owo+PiAr
Cj4+ICvCoMKgwqDCoMKgwqDCoCBpZiBzZWxmLmFyY2hpdmVfZmlsZXMoKT8uaXNfZW1wdHkoKSB7
Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZvciBpIGluIDAuLm51bWJlcl9vZl9maWxlcyB7
Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2VsZi5uZXdfZmlsZShub3cgLSAo
aSAqIHBlcmlvZF9wZXJfZmlsZSkgYXMgaTY0KT87Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
IH0KPj4gK8KgwqDCoMKgwqDCoMKgIH0KPj4gKwo+PiArwqDCoMKgwqDCoMKgwqAgT2soKCkpCj4+
ICvCoMKgwqAgfQo+PiArCj4+ICvCoMKgwqAgLy8vIFN0YXJ0IGEgbmV3IGFyY2hpdmUgZmlsZSB3
aXRoIGEgZ2l2ZW4gdGltZXN0YW1wLgo+PiArwqDCoMKgIC8vLyBgbm93YCBpcyBzdXBwb3NlZCB0
byBiZSBhIFVOSVggdGltZXN0YW1wIChzZWNvbmRzKS4KPj4gK8KgwqDCoCBmbiBuZXdfZmlsZSgm
c2VsZiwgbm93OiBpNjQpIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKPj4gK8KgwqDCoMKgwqDCoMKg
IGxldCBuZXdfcGF0aCA9IHNlbGYKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLmJhc2VfcGF0
aAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAuam9pbihmb3JtYXQhKCJ7QVJDSElWRV9GSUxF
TkFNRV9QUkVGSVh9e25vd30iKSk7Cj4+ICvCoMKgwqDCoMKgwqDCoCBsZXQgbXV0IGZpbGUgPSBG
aWxlOjpjcmVhdGUoJm5ld19wYXRoKT87Cj4+ICvCoMKgwqDCoMKgwqDCoCBzZWxmLmNyZWF0ZV9v
cHRpb25zLmFwcGx5X3RvKCZtdXQgZmlsZSwgJm5ld19wYXRoKT87Cj4+ICsKPj4gK8KgwqDCoMKg
wqDCoMKgIE9rKCgpKQo+PiArwqDCoMKgIH0KPj4gKwo+PiArwqDCoMKgIC8vLyBMb2NrIHRoZSBj
YWNoZS4KPj4gK8KgwqDCoCBmbiBsb2NrKCZzZWxmLCBleGNsdXNpdmU6IGJvb2wpIC0+IFJlc3Vs
dDxUYXNrQ2FjaGVMb2NrLCBFcnJvcj4gewo+PiArwqDCoMKgwqDCoMKgwqAgbGV0IGxvY2tmaWxl
ID0gc2VsZi5iYXNlX3BhdGguam9pbihMT0NLRklMRV9GSUxFTkFNRSk7Cj4+ICsKPj4gK8KgwqDC
oMKgwqDCoMKgIGxldCBmZCA9IHByb3htb3hfc3lzOjpmczo6b3Blbl9maWxlX2xvY2tlZCgKPj4g
K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbG9ja2ZpbGUsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIER1cmF0aW9uOjpmcm9tX3NlY3MoMTUpLAo+IAo+IAo+IGp1c3QgZm9yIG15IGN1cmlvc2l0
eSAobm90IGEgY3JpdGlxdWUpOiBpcyB0aGVyZSBhIHNwZWNpYWwgcmVhc29uCj4gd2h5IHlvdSBz
ZXQgdGhlIHRpbWVvdXQgbWFudWFsbHkgdG8gMTUgc2Vjb25kcyBpbnN0ZWFkIG9mIGxlYXZpbmcg
aXQgdG8KPiB0aGUgZnVuY3Rpb24gdG8gdXNlIHRoZSBkZWZhdWx0Pwo+IAo+IHJlYXNvbiBmb3Ig
bXkgcXVlc3Rpb24gaXM6IGlmIHlvdSBvZnRlbiByYW4gaW50byB0aW1lb3V0cyB3aXRoIGp1c3Qg
MTAgc2Vjb25kcyAoYWZhaXIgdGhlIGRlZmF1bHQpLAo+IGNoYW5jZXMgYXJlIHVzZXJzIGluIHRo
ZSB3aWxkIHdpbGwgcnVuIGludG8gaXQgd2l0aCAxNSBzZWNvbmRzIHRvbywgc28gd2UgbWlnaHQg
d2FudCB0byBlaXRoZXIgdXNlCj4gYSAqbXVjaCogYmlnZ2VyIHRpbWVvdXQsIG9yIG1ha2UgaXQg
c29tZWhvdyBjb25maWd1cmFibGUuCgpObyBnb29kIHJlYXNvbiBhY3R1YWxseSwgSSBtaWdodCBo
YXZlIGNvcGllZCB0aGF0IGxpbmUgZnJvbSBzb21ld2hlcmUgYW5kIHRoZW4gZGlkbid0IGNoYW5n
ZSBpdC4gQXQgbGVhc3QgSSBjYW5ub3QKcmVtZW1iZXIgYW55IHJlYXNvbiB3aHkgSSBjaG9zZSAx
NSBzZWNvbmRzLiBJJ2xsIGNoYW5nZSBpdCB0byB0aGUgZGVmYXVsdC4gVGhhbmtzIQo+IAo+PiAr
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBleGNsdXNpdmUsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIHNlbGYuY3JlYXRlX29wdGlvbnMsCj4+ICvCoMKgwqDCoMKgwqDCoCApPzsKPj4gKwo+PiAr
wqDCoMKgwqDCoMKgwqAgT2soVGFza0NhY2hlTG9jayhmZCkpCj4+ICvCoMKgwqAgfQo+PiArCj4+
ICvCoMKgwqAgLy8vIFJvdGF0ZSB0YXNrIGFyY2hpdmUgaWYgdGhlIHRoZSBuZXdlc3QgYXJjaGl2
ZSBmaWxlIGlzIG9sZGVyIHRoYW4gYHJvdGF0ZV9hZnRlcmAuCj4+ICvCoMKgwqAgLy8vCj4+ICvC
oMKgwqAgLy8vIFRoZSBvbGRlc3QgYXJjaGl2ZSBmaWxlcyBhcmUgcmVtb3ZlZCBpZiB0aGUgdG90
YWwgbnVtYmVyIG9mIGFyY2hpdmUgZmlsZXMgZXhjZWVkcwo+PiArwqDCoMKgIC8vLyBgbWF4X2Zp
bGVzYC4gYG5vd2AgaXMgc3VwcG9zZWQgdG8gYmUgYSBVTklYIHRpbWVzdGFtcCAoc2Vjb25kcyku
Cj4+ICvCoMKgwqAgLy8vCj4+ICvCoMKgwqAgLy8vIFRoaXMgZnVuY3Rpb24gcmVxdWVzdHMgYW4g
ZXhjbHVzaXZlIGxvY2ssIGRvbid0IGNhbGwgaWYgeW91IGFscmVhZHkgaG9sZCBhIGxvY2suCj4+
ICvCoMKgwqAgcHViIGZuIHJvdGF0ZSgmc2VsZiwgbm93OiBpNjQsIHJvdGF0ZV9hZnRlcjogdTY0
LCBtYXhfZmlsZXM6IHU2NCkgLT4gUmVzdWx0PGJvb2wsIEVycm9yPiB7Cj4+ICvCoMKgwqDCoMKg
wqDCoCBsZXQgX2xvY2sgPSBzZWxmLmxvY2sodHJ1ZSkuY29udGV4dCgiZmFpbGVkIHRvIGxvY2sg
YXJjaGl2ZSIpPzsKPj4gK8KgwqDCoMKgwqDCoMKgIGxldCBtdXQgZGlkX3JvdGF0ZSA9IGZhbHNl
Owo+PiArCj4+ICvCoMKgwqDCoMKgwqDCoCBsZXQgbXV0IGJvdW5kcyA9IHNlbGYuYXJjaGl2ZV9m
aWxlcygpPzsKPj4gKwo+PiArwqDCoMKgwqDCoMKgwqAgbWF0Y2ggYm91bmRzLmZpcnN0KCkgewo+
PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBTb21lKGJvdW5kKSA9PiB7Cj4+ICvCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgbm93ID4gYm91bmQuc3RhcnR0aW1lICYmIG5vdyAtIGJv
dW5kLnN0YXJ0dGltZSA+IHJvdGF0ZV9hZnRlciBhcyBpNjQgewo+PiArwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2VsZi5uZXdfZmlsZShub3cpPzsKPj4gK8KgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRpZF9yb3RhdGUgPSB0cnVlOwo+PiArwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
fQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBOb25lID0+IHsKPj4gK8KgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoCBzZWxmLm5ld19maWxlKG5vdyk/Owo+PiArwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgIGRpZF9yb3RhdGUgPSB0cnVlOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoCB9Cj4+ICvCoMKgwqDCoMKgwqDCoCB9Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoMKgIHdoaWxl
IGJvdW5kcy5sZW4oKSA+PSBtYXhfZmlsZXMgYXMgdXNpemUgewo+PiArwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCAvLyBVbndyYXAgaXMgc2FmZSBiZWNhdXNlIG9mIHRoZSBsZW5ndGggY2hlY2sgYWJv
dmUKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbGV0IHRvX3JlbW92ZSA9IGJvdW5kcy5wb3Ao
KS51bndyYXAoKTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RkOjpmczo6cmVtb3ZlX2Zp
bGUoJnRvX3JlbW92ZS5maWxlKQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC53
aXRoX2NvbnRleHQofHwgZm9ybWF0ISgiZmFpbGVkIHRvIHJlbW92ZSB7fSIsIHRvX3JlbW92ZS5m
aWxlLmRpc3BsYXkoKSkpPzsKPj4gK8KgwqDCoMKgwqDCoMKgIH0KPj4gKwo+PiArwqDCoMKgwqDC
oMKgwqAgT2soZGlkX3JvdGF0ZSkKPj4gK8KgwqDCoCB9Cj4+ICsKPj4gK8KgwqDCoCAvLy8gQWRk
IG5ldyB0YXNrcyB0byB0aGUgdGFzayBhcmNoaXZlLgo+PiArwqDCoMKgIC8vLwo+PiArwqDCoMKg
IC8vLyBSdW5uaW5nIHRhc2tzICh0YXNrcyB3aXRob3V0IGFuIGVuZHRpbWUpIGFyZSBwbGFjZWQg
aW50byB0aGUgJ2FjdGl2ZScgZmlsZSBpbiB0aGUKPj4gK8KgwqDCoCAvLy8gdGFzayBjYWNoZSBi
YXNlIGRpcmVjdG9yeS4gRmluaXNoZWQgdGFza3MgYXJlIHNvcnRlZCBpbnRvIGBhcmNoaXZlLjxz
dGFydGltZT5gIGFyY2hpdmUKPj4gK8KgwqDCoCAvLy8gZmlsZXMsIHdoZXJlIGA8c3RhcnR0aW1l
cz5gIGRlbm90ZXMgdGhlIGxvd2VzdCBwZXJtaXR0ZWQgc3RhcnQgdGltZSB0aW1lc3RhbXAgZm9y
IGEgZ2l2ZW4KPj4gK8KgwqDCoCAvLy8gYXJjaGl2ZSBmaWxlLiBJZiBhIHRhc2sgd2hpY2ggd2Fz
IGFkZGVkIGFzIHJ1bm5pbmcgcHJldmlvdXNseSBpcyBhZGRlZCBhZ2FpbiwgdGhpcyB0aW1lIGlu
Cj4+ICvCoMKgwqAgLy8vIGEgZmluaXNoZWQgc3RhdGUsIGl0IHdpbGwgYmUgcmVtb3ZlZCBmcm9t
IHRoZSBgYWN0aXZlYCBmaWxlIGFuZCBhbHNvIHNvcnRlZCBpbnRvCj4+ICvCoMKgwqAgLy8vIG9u
ZSBvZiB0aGUgYXJjaGl2ZSBmaWxlcy4KPj4gK8KgwqDCoCAvLy8gU2FtZSBnb2VzIGZvciB0aGUg
bGlzdCBvZiB0cmFja2VkIHRhc2tzOyB0aGUgZW50cnkgaW4gdGhlIHN0YXRlIGZpbGUgd2lsbCBi
ZSByZW1vdmVkLgo+PiArwqDCoMKgIC8vLwo+PiArwqDCoMKgIC8vLyBDcmFzaCBjb25zaXN0ZW5j
eToKPj4gK8KgwqDCoCAvLy8KPj4gK8KgwqDCoCAvLy8gVGhlIHN0YXRlIGZpbGUsIHdoaWNoIGNv
bnRhaW5zIHRoZSBjdXQtb2ZmIHRpbWVzdGFtcHMgZm9yIGZ1dHVyZSB0YXNrIGZldGNoaW5nLCBp
cyB1cGRhdGVkIGF0IHRoZQo+PiArwqDCoMKgIC8vLyBlbmQgYWZ0ZXIgYWxsIHRhc2tzIGhhdmUg
YmVlbiBhZGRlZCBpbnRvIHRoZSBhcmNoaXZlLiBBZGRpbmcgdGFza3MgaXMgYW4gaWRlbXBvdGVu
dAo+PiArwqDCoMKgIC8vLyBvcGVyYXRpb247IGFkZGluZyB0aGUgKnNhbWUqIHRhc2sgbXVsdGlw
bGUgdGltZXMgZG9lcyBub3QgbGVhZCB0byBkdXBsaWNhdGVkIGVudHJpZXMgaW4gdGhlCj4+ICvC
oMKgwqAgLy8vIHRhc2sgYXJjaGl2ZS4gSW5kaXZpZHVhbCBhcmNoaXZlIGZpbGVzIGFyZSB1cGRh
dGVkIGF0b21pY2FsbHksIGJ1dCBzaW5jZQo+PiArwqDCoMKgIC8vLyBhZGRpbmcgdGFza3MgY2Fu
IGludm9sdmUgdXBkYXRpbmcgbXVsdGlwbGUgYXJjaGl2ZSBmaWxlcywgdGhlIGFyY2hpdmUgY291
bGQgZW5kIHVwCj4+ICvCoMKgwqAgLy8vIGluIGEgcGFydGlhbGx5LXVwZGF0ZWQsIGluY29uc2lz
dGVudCBzdGF0ZSBpbiBjYXNlIG9mIGEgY3Jhc2guCj4+ICvCoMKgwqAgLy8vIEhvd2V2ZXIsIHNp
bmNlIHRoZSBzdGF0ZSBmaWxlIHdpdGggdGhlIGN1dC1vZmYgdGltZXN0YW1wcyBpcyB1cGRhdGVk
IGxhc3QsCj4+ICvCoMKgwqAgLy8vIHRoZSBjb25zaXN0ZW5jeSBvZiB0aGUgYXJjaGl2ZSBzaG91
bGQgYmUgcmVzdG9yZWQgYXQgdGhlIG5leHQgdXBkYXRlIGN5Y2xlIG9mIHRoZSBhcmNoaXZlLgo+
PiArwqDCoMKgIHB1YiBmbiBhZGRfdGFza3MoJnNlbGYsIG11dCBhZGRlZDogSGFzaE1hcDxTdHJp
bmcsIEFkZFRhc2tzPikgLT4gUmVzdWx0PCgpLCBFcnJvcj4gewo+PiArwqDCoMKgwqDCoMKgwqAg
bGV0IGxvY2sgPSBzZWxmLmxvY2sodHJ1ZSkuY29udGV4dCgiZmFpbGVkIHRvIGxvY2sgYXJjaGl2
ZSIpPzsKPj4gKwo+PiArwqDCoMKgwqDCoMKgwqAgLy8gR2V0IGEgZmxhdCBgVmVjYCBvZiBhbGwg
bmV3IHRhc2tzCj4+ICvCoMKgwqDCoMKgwqDCoCBsZXQgdGFza3M6IFZlYzxfPiA9IGFkZGVkCj4+
ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC5pdGVyX211dCgpCj4+ICvCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgIC5mbGF0X21hcCh8KF8sIHRhc2tzKXwgc3RkOjptZW06OnRha2UoJm11dCB0YXNrcy50
YXNrcykpCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC5jb2xsZWN0KCk7Cj4+ICsKPj4gK8Kg
wqDCoMKgwqDCoMKgIGxldCB1cGRhdGVfc3RhdGVfZm9yX3JlbW90ZTogSGFzaE1hcDxTdHJpbmcs
IGJvb2w+ID0gYWRkZWQKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLmludG9faXRlcigpCj4+
ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC5tYXAofChyZW1vdGUsIGFkZF90YXNrcyl8IChyZW1v
dGUsIGFkZF90YXNrcy51cGRhdGVfbW9zdF9yZWNlbnRfYXJjaGl2ZV90aW1lc3RhbXApKQo+PiAr
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAuY29sbGVjdCgpOwo+PiArCj4+ICvCoMKgwqDCoMKgwqDC
oCBsZXQgbXV0IHRhc2tfaXRlciA9IHNlbGYKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLmdl
dF90YXNrc193aXRoX2xvY2soR2V0VGFza3M6OkFjdGl2ZSwgbG9jaykKPj4gK8KgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgLmNvbnRleHQoImZhaWxlZCB0byBjcmVhdGUgYXJjaGl2ZSBpdGVyYXRvciBm
b3IgYWN0aXZlIHRhc2tzIik/Owo+PiArCj4+ICvCoMKgwqDCoMKgwqDCoCBsZXQgbXV0IGFjdGl2
ZV90YXNrcyA9Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEhhc2hTZXQ6OmZyb21faXRlcih0
YXNrX2l0ZXIuZmxhdF9tYXAofGFjdGl2ZV90YXNrfCBtYXRjaCBhY3RpdmVfdGFzayB7Cj4gCj4g
aSB0aGluayB5b3Ugd2FudCB0byB1c2UgJ2ZpbHRlcl9tYXAnIGhlcmU/IGV2ZW4gdGhvdWdoIGl0
IHNlZW1zIHRvIGRvIHRoZSBzYW1lIHRoaW5nIGluCj4gdGhpcyBpbnN0YW5jZSwgaSB0aGluayAn
ZmlsdGVyX21hcCcgYmV0dGVyIGV4cHJlc3NlcyB3aGF0IHlvdSB3YW50IHRvIGRvCgpUcnVlLCBm
aWx0ZXJfbWFwIGlzIGEgYmV0dGVyIGZpdC4gVGhhbmtzIQoKPiAKPj4gK8KgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoCBPayh0YXNrKSA9PiBTb21lKCh0YXNrLnVwaWQsIHRhc2suc3RhcnR0
aW1lKSksCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgRXJyKGVycikgPT4gewo+
PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbG9nOjplcnJvciEoImZh
aWxlZCB0byByZWFkIHRhc2sgY2FjaGUgZW50cnkgZnJvbSBhY3RpdmUgZmlsZToge2Vycn0iKTsK
Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIE5vbmUKPj4gK8KgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0p
KTsKPiAKPiBkb2VzIGl0IG1ha2UgYSBiaWcgZGlmZmVyZW5jZSB0aGF0IHlvdSBzYXZlIHRoZSBz
dGFydHRpbWUgc2VwZXJhdGVseSBoZXJlPwo+IAo+IEZXSUNULCB0aGlzIG1ha2VzIHRoZSByZW1v
dmUgY29kZSBsYXRlciBhIGJpdCBtb3JlIGNvbXBsaWNhdGVkLCBhbmQKPiB3b3VsZCBvbmx5IG5l
ZWQgdG8gYmUgcGFyc2VkIGluIGB1cGRhdGVfb2xkZXN0X2FjdGl2ZWAuIFNpbmNlIGkgZG9uJ3Qg
YXNzdW1lIHRvbyBtYW55IGNvbmN1cnJlbnQKPiBhY3RpdmUgdGFza3MgaW4gb25lIHNldCBvZiB1
cGRhdGVzLCBpIGRvbid0IHRoaW5rIHRoZSBwYXJzaW5nIHNob3VsZCBiZSB2ZXJ5IGJhZCBoZXJl
Li4uCgpXZWxsLCB0aGUgcmF0aW9uYWxlIGZvciBoYXZpbmcgdGhlIHN0YXJ0aW1lIGluIFRhc2tD
YWNoZUl0ZW0gYXMgYSBzZXBhcmF0ZSBmaWVsZCBzbyB0aGF0IEkgY2FuIHNvcnQgdGFza3MgaW4g
dGhlIE1lcmdlVGFza0l0ZXJhdG9yIHdpdGhvdXQKcGFyc2luZyB0aGUgVVBJRC4KSSB0aGlzIGZ1
bmN0aW9uIGhlcmUsIEkgZGVzZXIgVGFza0NhY2hlSXRlbXMgYW5kIGdldCB0aGUgc3RhcnR0aW1l
IGZyb20gdGhhdCwgSSBkb24ndCBzZWUgd2h5IEkgc2hvdWxkCmRpc2NhcmQgdGhlIGluZm8gSSBh
bHJlYWR5IGhhdmUgdG8gcGFyc2UgaXQgYWdhaW4gZnJvbSB0aGUgVVBJRD8KQnV0IG1heWJlIHRo
ZXJlIGlzIHNvbWUgbWlzdW5kZXJzdGFuZGluZyBoZXJlLgoKPiAKPj4gKwo+PiArwqDCoMKgwqDC
oMKgwqAgLy8gQ29uc3VtZSB0aGUgaXRlcmF0b3IgdG8gZ2V0IGJhY2sgdGhlIGxvY2suIFRoZSBs
b2NrIGlzIGhlbGQKPj4gK8KgwqDCoMKgwqDCoMKgIC8vIHVudGlsIF9sb2NrIGlzIGZpbmFsbHkg
ZHJvcHBlZCBhdCB0aGUgZW5kIG9mIHRoZSBmdW5jdGlvbi4KPj4gK8KgwqDCoMKgwqDCoMKgIGxl
dCBfbG9jayA9IHRhc2tfaXRlci5pbnRvX2xvY2soKTsKPj4gKwo+PiArwqDCoMKgwqDCoMKgwqAg
bGV0IG11dCBuZXdfZmluaXNoZWRfdGFza3MgPSBWZWM6Om5ldygpOwo+PiArCj4+ICvCoMKgwqDC
oMKgwqDCoCBmb3IgdGFzayBpbiB0YXNrcyB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlm
IHRhc2suZW5kdGltZS5pc19ub25lKCkgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIGFjdGl2ZV90YXNrcy5pbnNlcnQoKHRhc2sudXBpZCwgdGFzay5zdGFydHRpbWUpKTsKPj4g
K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfSBlbHNlIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoCBuZXdfZmluaXNoZWRfdGFza3MucHVzaCh0YXNrKTsKPj4gK8KgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgfQo+PiArwqDCoMKgwqDCoMKgwqAgfQo+PiArCgoKLS0gCi0gTHVrYXMKCgoK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KcGRtLWRldmVs
IG1haWxpbmcgbGlzdApwZG0tZGV2ZWxAbGlzdHMucHJveG1veC5jb20KaHR0cHM6Ly9saXN0cy5w
cm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vcGRtLWRldmVsCg==