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 CA3F41FF17C
	for <inbox@lore.proxmox.com>; Wed,  2 Apr 2025 18:32:15 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 292021F3DB;
	Wed,  2 Apr 2025 18:32:05 +0200 (CEST)
Mime-Version: 1.0
Date: Wed, 02 Apr 2025 18:32:01 +0200
Message-Id: <D8WAP6RU0D56.1T3QC7BCQI5D7@proxmox.com>
To: "Proxmox VE development discussion" <pve-devel@lists.proxmox.com>
From: "Max Carrara" <m.carrara@proxmox.com>
X-Mailer: aerc 0.18.2-0-ge037c095a049
References: <20250326142059.261938-1-m.carrara@proxmox.com>
 <20250326142059.261938-7-m.carrara@proxmox.com>
 <1743430815.p3lidgbz0m.astroid@yuna.none>
In-Reply-To: <1743430815.p3lidgbz0m.astroid@yuna.none>
X-SPAM-LEVEL: Spam detection results:  0
 AWL -0.322 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 v1 pve-storage 6/8] pluginbase: document
 image operation methods
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-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: pve-devel-bounces@lists.proxmox.com
Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com>

T24gTW9uIE1hciAzMSwgMjAyNSBhdCA1OjEyIFBNIENFU1QsIEZhYmlhbiBHcsO8bmJpY2hsZXIg
d3JvdGU6Cj4gT24gTWFyY2ggMjYsIDIwMjUgMzoyMCBwbSwgTWF4IENhcnJhcmEgd3JvdGU6Cj4g
PiBBZGQgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGZvbGxvd2luZyBtZXRob2RzOgo+ID4gLSBsaXN0
X2ltYWdlcwo+ID4gLSBjcmVhdGVfYmFzZQo+ID4gLSBjbG9uZV9pbWFnZQo+ID4gLSBhbGxvY19p
bWFnZQo+ID4gLSBmcmVlX2ltYWdlCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6IE1heCBDYXJyYXJh
IDxtLmNhcnJhcmFAcHJveG1veC5jb20+Cj4gPiBDby1hdXRob3JlZC1ieTogTWF4aW1pbGlhbm8g
U2FuZG92YWwgPG0uc2FuZG92YWxAcHJveG1veC5jb20+Cj4gPiAtLS0KPiA+ICBzcmMvUFZFL1N0
b3JhZ2UvUGx1Z2luQmFzZS5wbSB8IDExMSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrCj4gPiAgMSBmaWxlIGNoYW5nZWQsIDExMSBpbnNlcnRpb25zKCspCj4gPiAKPiA+IGRpZmYg
LS1naXQgYS9zcmMvUFZFL1N0b3JhZ2UvUGx1Z2luQmFzZS5wbSBiL3NyYy9QVkUvU3RvcmFnZS9Q
bHVnaW5CYXNlLnBtCj4gPiBpbmRleCBiM2NlNjg0Li4zN2IxNDcxIDEwMDY0NAo+ID4gLS0tIGEv
c3JjL1BWRS9TdG9yYWdlL1BsdWdpbkJhc2UucG0KPiA+ICsrKyBiL3NyYy9QVkUvU3RvcmFnZS9Q
bHVnaW5CYXNlLnBtCj4gPiBAQCAtNzIxLDI2ICs3MjEsMTM3IEBAIHN1YiBvbl9kZWxldGVfaG9v
ayB7Cj4gPiAgCj4gPiAgPWN1dAo+ID4gIAo+ID4gKz1oZWFkMyAkcGx1Z2luLT5saXN0X2ltYWdl
cygkc3RvcmVpZCwgXCVzY2ZnIFssICR2bWlkLCBcQHZvbGxpc3QsIFwlY2FjaGVdKQo+ID4gKwo+
ID4gK0I8UkVRVUlSRUQ6PiBNdXN0IGJlIGltcGxlbWVudGVkIGluIGV2ZXJ5IHN0b3JhZ2UgcGx1
Z2luLgo+ID4gKwo+ID4gK1JldHVybnMgYSBsaXN0cmVmIG9mIGFsbCBkaXNrIGltYWdlcyBvZiBh
IHN0b3JhZ2UuIElmIHRoZSBzdG9yYWdlIGRvZXMgbm90Cj4gPiArc3VwcG9ydCBzdG9yaW5nIGRp
c2sgaW1hZ2VzLCByZXR1cm5zIGFuIGVtcHR5IGxpc3RyZWYuCj4gPiArCj4gPiArT3B0aW9uYWxs
eSwgaWYgQzxcQHZvbGxpc3Q+IGlzIHByb3ZpZGVkLCByZXR1cm4gb25seSBkaXNrcyB3aG9zZSB2
b2x1bWUgSUQgaXMKPiA+ICt3aXRoaW4gQzxcQHZvbGxpc3Q+LiBOb3RlIHRoYXQgdGhpcyB1c3Vh
bGx5IGhhcyBoaWdoZXIgcHJlY2VkZW5jZSB0aGFuCj4gPiArQzwkdm1pZD4uCgpVcGZyb250IG5v
dGU6IFVubGVzcyBJIG90aGVyd2lzZSBjb21tZW50IHNvbWV0aGluZywgSSBhZ3JlZSB3aXRoIHlv
dS4KSnVzdCBzcGFyaW5nIG15c2VsZiBmcm9tIHdyaXRpbmcgYW5kIHlvdSBmcm9tIHJlYWRpbmcg
dG9vIG1hbnkgQUNLcyA6UAoKPgo+IHdoYXQgZG9lcyB1c3VhbGx5IG1lYW4/IHdoYXQgZG9lcyAk
dm1pZCBkbz8KClNvcnJ5LCB0aGlzIGdvdCBsb3N0IHdoZW4gdG9zc2luZyBvdXQgc29tZSByZWR1
bmRhbnQgcGFyYWdyYXBocyBoZXJlLgoKVGhlICJ1c3VhbGx5IiBjYW4gYmUgZHJvcHBlZDsgQzwk
dm1pZD4gaXMgdGhlIGd1ZXN0J3MgSUQgKG1lbnRpb25lZCBpbgp0aGUgREVTQ1JJUFRJT04gaW4g
cGF0Y2ggMDEpIGFuZCB1bmxlc3MgQzxcQHZvbGxpc3Q+IGlzIHByb3ZpZGVkLCB0aGUKaW1hZ2Vz
IHRoYXQgdGhlIGdpdmVuIEM8JHZtaWQ+IG93bnMgd2lsbCBiZSByZXR1cm5lZC4KCj4KPiA+ICsK
PiA+ICtDPGRpZT5zIGluIGNhc2Ugb2YgZXJyb3JzLgo+ID4gKwo+ID4gK1RoaXMgbWV0aG9kIG1h
eSByZXVzZSBMPDwgY2FjaGVkIGluZm9ybWF0aW9uIHZpYSBDPFwlY2FjaGU+fC8iQ0FDSElORyBF
WFBFTlNJVkUgT1BFUkFUSU9OUyIgPj4uCj4gPiArCj4gPiArVGhlIHJldHVybmVkIGxpc3RyZWYg
aGFzIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlOgo+ID4gKwo+ID4gKyAgICBbCj4gPiArCXsKPiA+
ICsJICAgIGN0aW1lID0+ICIxNjg5MTYzMzIyIiwgIyBjcmVhdGlvbiB0aW1lIGFzIHVuaXggdGlt
ZXN0YW1wCj4gPiArCSAgICBmb3JtYXQgPT4gInJhdyIsCj4gPiArCSAgICBzaXplID0+IDg1ODk5
MzQ1OTIsICMgaW4gYnl0ZXMhCj4gPiArCSAgICB2bWlkID0+IDEwMSwKPiA+ICsJICAgIHZvbGlk
ID0+ICJsb2NhbC1sdm06YmFzZS0xMDEtZGlzay0wIiwgIyB2b2x1bWUgSUQsIHN0b3JhZ2Utc3Bl
Y2lmaWMKPiA+ICsJfSwKPiA+ICsJIyBbLi4uXQo+ID4gKyAgICBdCj4gPiArCj4gPiArPWN1dAo+
ID4gKwo+ID4gIHN1YiBsaXN0X2ltYWdlcyB7Cj4gPiAgICAgIG15ICgkY2xhc3MsICRzdG9yZWlk
LCAkc2NmZywgJHZtaWQsICR2b2xsaXN0LCAkY2FjaGUpID0gQF87Cj4gPiAgICAgIGNyb2FrICJp
bXBsZW1lbnQgbWUgaW4gc3ViLWNsYXNzXG4iOwo+ID4gIH0KPiA+ICAKPiA+ICs9aGVhZDMgJHBs
dWdpbi0+Y3JlYXRlX2Jhc2UoJHN0b3JlaWQsIFwlc2NmZywgJHZvbG5hbWUpCj4gPiArCj4gPiAr
QjxPUFRJT05BTDo+IE1heSBiZSBpbXBsZW1lbnRlZCBpbiBhIHN0b3JhZ2UgcGx1Z2luLgo+ID4g
Kwo+ID4gK0NyZWF0ZXMgYSBiYXNlIHZvbHVtZSBmcm9tIGFuIGV4aXN0aW5nIHZvbHVtZSwgYWxs
b3dpbmcgdGhlIHZvbHVtZSB0byBiZQo+Cj4gdGhpcyBpcyBtaXNsZWFkaW5nIC0gaXQgZG9lc24n
dCBjcmVhdGUgYSBiYXNlIHZvbHVtZSBmcm9tIGFuIGV4aXN0aW5nCj4gdm9sdW1lLCBpdCAqY29u
dmVydHMqIGFuIGV4aXN0aW5nIHZvbHVtZSBpbnRvIGEgYmFzZSB2b2x1bWUhCgpPaCBkYW5nLCB0
aGFua3MgZm9yIHBvaW50aW5nIHRoaXMgb3V0ISBTb3JyeSBmb3IgdGhlIG92ZXJzaWdodC4KCj4K
PiA+ICtMPDwgY2xvbmVkfC8iJHBsdWdpbi0+Y2xvbmVfaW1hZ2UoLi4uKSIgPj4uIFRoaXMgY2xv
bmVkIHZvbHVtZSAodXN1YWxseQo+ID4gK2EgZGlzayBpbWFnZSkgbWF5IHRoZW4gYmUgdXNlZCBh
cyBhIGJhc2UgZm9yIHRoZSBwdXJwb3NlIG9mIGNyZWF0aW5nIGxpbmtlZAo+Cj4gdGhpcyBpcyB3
cm9uZz8gdGhlcmUgaXMgbm8gY2xvbmVkIHZvbHVtZSB5ZXQ/IGFuZCBhbGwgb2YgdGhpcyBvbmx5
Cj4gYXBwbGllcyB0byBpbWFnZXMgYW5kIG5vdCBvdGhlciB2b2x1bWVzPwo+Cj4gPiArY2xvbmVz
LiBTZWUgTDxDPFBWRTo6U3RvcmFnZTo6THZtVGhpblBsdWdpbj4+IGFuZAo+ID4gK0w8QzxQVkU6
OlN0b3JhZ2U6OlpGU1Bvb2xQbHVnaW4+PiBmb3IgZXhhbXBsZSBpbXBsZW1lbnRhdGlvbnMuCj4g
PiArCj4gPiArT24gY29tcGxldGlvbiwgcmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgbmV3IGJhc2Ug
dm9sdW1lICh0aGUgbmV3IEM8JHZvbG5hbWU+KS4KPiA+ICsKPiA+ICtUaGlzIG1ldGhvZCBpcyBj
YWxsZWQgaW4gdGhlIGNvbnRleHQgb2YgQzxMPDwgY2x1c3Rlcl9sb2NrX3N0b3JhZ2UoKXwvImNs
dXN0ZXJfbG9ja19zdG9yYWdlKC4uLikiID4+PiwKPiA+ICtpLmUuIHdoZW4gdGhlIHN0b3JhZ2Ug
aXMgQjxsb2NrZWQ+Lgo+Cj4gU2hvdWxkbid0IHRoaXMgc2F5IHRoYXQgaXQgKnNob3VsZCogYmUg
Y2FsbGVkIGluIGEgbG9ja2VkIGNvbnRleHQ/Cj4KPiA+ICsKPiA+ICs9Y3V0Cj4gPiArCj4gPiAg
c3ViIGNyZWF0ZV9iYXNlIHsKPiA+ICAgICAgbXkgKCRjbGFzcywgJHN0b3JlaWQsICRzY2ZnLCAk
dm9sbmFtZSkgPSBAXzsKPiA+ICAgICAgY3JvYWsgImltcGxlbWVudCBtZSBpbiBzdWItY2xhc3Nc
biI7Cj4gPiAgfQo+ID4gIAo+ID4gKz1oZWFkMyAkcGx1Z2luLT5jbG9uZV9pbWFnZSgkc2NmZywg
JHN0b3JlaWQsICR2b2xuYW1lLCAkdm1pZCBbLCAkc25hcF0pCj4gPiArCj4gPiArPWhlYWQzICRw
bHVnaW4tPmNsb25lX2ltYWdlKC4uLikKPiA+ICsKPiA+ICtCPFJFUVVJUkVEOj4gTXVzdCBiZSBp
bXBsZW1lbnRlZCBpbiBldmVyeSBzdG9yYWdlIHBsdWdpbi4KPgo+IG5vdCByZWFsbHk/IHRoZXJl
J3MgYSBmZWF0dXJlIGd1YXJkIGZvciBpdCwgc28gb25seSBzdG9yYWdlIHBsdWdpbnMgdGhhdAo+
IHN1cHBvcnQgaXQgc2hvdWxkIGV2ZXIgZ2V0IGl0IGNhbGxlZCBhbnl3YXkuLgo+Cj4gd2hhdCBk
b2VzICR2bWlkIG1lYW4/CgpTZWUgYWJvdmU7IHRoZSBndWVzdCdzIElELiBTaW5jZSBpdCB3YXMg
dW5jbGVhciwgdGhlIHBhcmFtZXRlciBzaG91bGQKcHJvYmFibHkgYmUgZXhwbGFpbmVkIGhlcmUg
KGFuZCBhbHNvIGFib3ZlKSBpbnN0ZWFkIG9mIChqdXN0KSBpbiB0aGUKREVTQ1JJUFRJT04gc2Vj
dGlvbi4KCj4KPiA+ICsKPiA+ICtDbG9uZXMgYSBkaXNrIGltYWdlIG9yIGEgc25hcHNob3Qgb2Yg
YW4gaW1hZ2UsIHJldHVybmluZyB0aGUgbmFtZSBvZiB0aGUgbmV3Cj4gPiAraW1hZ2UgKHRoZSBu
ZXcgQzwkdm9sbmFtZT4pLiBOb3RlIHRoYXQgSTxjbG9uaW5nPiBoZXJlIG1lYW5zIHRvIGNyZWF0
ZSBhIGxpbmtlZAo+ID4gK2Nsb25lIGFuZCBub3QgZHVwbGljYXRpbmcgYW4gaW1hZ2UuIFNlZSBM
PEM8UFZFOjpTdG9yYWdlOjpMdm1UaGluUGx1Z2luPj4gYW5kCj4gPiArTDxDPFBWRTo6U3RvcmFn
ZTo6WkZTUG9vbFBsdWdpbj4+IGZvciBleGFtcGxlIGltcGxlbWVudGF0aW9ucy4KPgo+IHRoZW4g
d2h5IG5vdCBzdGFydCB3aXRoCj4KPiAiQ3JlYXRlcyBhIGxpbmtlZCBjbG9uZSBvZiBhbiBleGlz
dGluZyBkaXNrIGltYWdlIG9yIHNuYXBzaG90IG9mIGFuCj4gaW1hZ2UiCj4KPiA/IG1heWJlIGFs
c28gaW5jbHVkZSB0aGF0IHVubGVzcyB0aGUgbGlua2VkIGNsb25lIGlzIDEwMCUgaW5kZXBlbmRl
bnQKPiBmcm9tIHRoZSBiYXNlIChvbmx5IHRydWUgZm9yIExWTSB0aGluIGF0bT8pLCB0aGUgbmV3
IHZvbGlkIHNob3VsZCBlbmNvZGUKPiB0aGUgYmFzZS0+Y2xvbmUgcmVsYXRpb24gaW4gdGhlIHZv
bG5hbWU/Cj4KPiA+ICsKPiA+ICtDPGRpZT5zIGluIGNhc2Ugb2YgYW4gZXJyb3Igb2YgaWYgdGhl
IHVuZGVybHlpbmcgc3RvcmFnZSBkb2Vzbid0IHN1cHBvcnQKPgo+IHMvb2Yvb3IvCj4KPiA+ICtj
bG9uaW5nIGltYWdlcy4KPiA+ICsKPiA+ICtUaGlzIG1ldGhvZCBpcyBjYWxsZWQgaW4gdGhlIGNv
bnRleHQgb2YgQzxMPDwgY2x1c3Rlcl9sb2NrX3N0b3JhZ2UoKXwvImNsdXN0ZXJfbG9ja19zdG9y
YWdlKC4uLikiID4+PiwKPiA+ICtpLmUuIHdoZW4gdGhlIHN0b3JhZ2UgaXMgQjxsb2NrZWQ+Lgo+
Cj4gc2FtZSBhcyBhYm92ZQo+Cj4gPiArCj4gPiArPWN1dAo+ID4gKwo+ID4gIHN1YiBjbG9uZV9p
bWFnZSB7Cj4gPiAgICAgIG15ICgkY2xhc3MsICRzY2ZnLCAkc3RvcmVpZCwgJHZvbG5hbWUsICR2
bWlkLCAkc25hcCkgPSBAXzsKPiA+ICAgICAgY3JvYWsgImltcGxlbWVudCBtZSBpbiBzdWItY2xh
c3NcbiI7Cj4gPiAgfQo+ID4gIAo+ID4gKz1oZWFkMyAkcGx1Z2luLT5hbGxvY19pbWFnZSgkc3Rv
cmVpZCwgJHNjZmcsICR2bWlkLCAkZm10LCAkbmFtZSwgJHNpemUpCj4gPiArCj4gPiArQjxSRVFV
SVJFRDo+IE11c3QgYmUgaW1wbGVtZW50ZWQgaW4gZXZlcnkgc3RvcmFnZSBwbHVnaW4uCj4gPiAr
Cj4gPiArQWxsb2NhdGVzIGEgZGlzayBpbWFnZSB3aXRoIHRoZSBnaXZlbiBmb3JtYXQgQzwkZm10
PiBhbmQgQzwkc2l6ZT4gaW4gYnl0ZXMsCj4gPiArcmV0dXJuaW5nIHRoZSBuYW1lIG9mIHRoZSBu
ZXcgaW1hZ2UgKHRoZSBuZXcgQzwkdm9sbmFtZT4pLiBTZWUKPiA+ICtDPEw8PCBwbHVnaW5kYXRh
KCl8LyIkcGx1Z2luLT5wbHVnaW5kYXRhKCkiID4+PiBmb3IgYWxsIGRpc2sgZm9ybWF0cy4KPiA+
ICsKPiA+ICtPcHRpb25hbGx5LCBpZiBnaXZlbiwgc2V0IHRoZSBuYW1lIG9mIHRoZSBpbWFnZSB0
byBDPCRuYW1lPi4gSWYgQzwkbmFtZT4gaXNuJ3QKPiA+ICtwcm92aWRlZCwgdGhlIG5leHQgbmFt
ZSBzaG91bGQgYmUgZGV0ZXJtaW5lZCB2aWEgQzxMPDwgZmluZF9mcmVlX2Rpc2tuYW1lKCl8LyIk
cGx1Z2luLT5maW5kX2ZyZWVfZGlza25hbWUoLi4uKSIgPj4+Lgo+Cj4gYSBzdWl0YWJsZSBuYW1l
IHNob3VsZCBiZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCwgdW5sZXNzIHdlIHJlYWxseSB3YW50
Cj4gdG8gc3RhYmlsaXplIGZpbmRfZnJlZV9kaXNrbmFtZSBhcyBwYXJ0IG9mIHRoZSBBUEkuLgo+
Cj4gd2hhdCBkb2VzICR2bWlkIG1lYW4/Cj4KPiA+ICsKPiA+ICtDPGRpZT5zIGluIGNhc2Ugb2Yg
YW4gZXJyb3Igb2YgaWYgdGhlIHVuZGVybHlpbmcgc3RvcmFnZSBkb2Vzbid0IHN1cHBvcnQKPiA+
ICthbGxvY2F0aW5nIGltYWdlcy4KPiA+ICsKPiA+ICtUaGlzIG1ldGhvZCBpcyBjYWxsZWQgaW4g
dGhlIGNvbnRleHQgb2YgQzxMPDwgY2x1c3Rlcl9sb2NrX3N0b3JhZ2UoKXwvImNsdXN0ZXJfbG9j
a19zdG9yYWdlKC4uLikiID4+PiwKPiA+ICtpLmUuIHdoZW4gdGhlIHN0b3JhZ2UgaXMgQjxsb2Nr
ZWQ+Lgo+ID4gKwo+ID4gKz1jdXQKPiA+ICsKPiA+ICBzdWIgYWxsb2NfaW1hZ2Ugewo+ID4gICAg
ICBteSAoJGNsYXNzLCAkc3RvcmVpZCwgJHNjZmcsICR2bWlkLCAkZm10LCAkbmFtZSwgJHNpemUp
ID0gQF87Cj4gPiAgICAgIGNyb2FrICJpbXBsZW1lbnQgbWUgaW4gc3ViLWNsYXNzXG4iOwo+ID4g
IH0KPiA+ICAKPiA+ICs9aGVhZDMgJHBsdWdpbi0+ZnJlZV9pbWFnZSgkc3RvcmVpZCwgJHNjZmcs
ICR2b2xuYW1lIFssICRpc0Jhc2UsICRmb3JtYXRdKQo+ID4gKwo+ID4gKz1oZWFkMyAkcGx1Z2lu
LT5mcmVlX2ltYWdlKC4uLikKPiA+ICsKPiA+ICtCPFJFUVVJUkVEOj4gTXVzdCBiZSBpbXBsZW1l
bnRlZCBpbiBldmVyeSBzdG9yYWdlIHBsdWdpbi4KPiA+ICsKPiA+ICtGcmVlcyAoZGVsZXRlcykg
dGhlIGRpc2sgaW1hZ2UgZ2l2ZW4gYnkgQzwkdm9sbmFtZT4uIE9wdGlvbmFsbHksIHRoZSBpbWFn
ZSBtYXkKPiA+ICtiZSBhIGJhc2UgaW1hZ2UgKEM8JGlzQmFzZT4pIGFuZCBoYXZlIGEgY2VydGFp
biBDPCRmb3JtYXQ+LiBTZWUKPiA+ICtDPEw8PCBwbHVnaW5kYXRhKCl8LyIkcGx1Z2luLT5wbHVn
aW5kYXRhKCkiID4+PiBmb3IgYWxsIGRpc2sgZm9ybWF0cy4KPiA+ICsKPiA+ICtJZiBhIGNsZWFu
dXAgaXMgcmVxdWlyZWQgYWZ0ZXIgZnJlZWluZyB0aGUgaW1hZ2UsIHJldHVybnMgYSByZWZlcmVu
Y2UgdG8gYQo+ID4gK3N1YnJvdXRpbmUgdGhhdCBwZXJmb3JtcyB0aGUgY2xlYW51cCwgYW5kIEM8
dW5kZWY+IG90aGVyd2lzZS4KPgo+IG1pZ2h0IGJlIGEgZ29vZCBpZGVhIHRvIGV4cGxhaW4gd2h5
PyBhbHNvLCB3aGF0IGRvICRpc0Jhc2UgYW5kICRmb3JtYXQKPiBtZWFuPwo+Cj4gPiArCj4gPiAr
QzxkaWU+cyBpbiBjYXNlIG9mIGVycm9ycywgaWYgdGhlIGltYWdlIGhhcyBhIEw8PCBDPHByb3Rl
Y3RlZD4gYXR0cmlidXRlfC8iJHBsdWdpbi0+Z2V0X3ZvbHVtZV9hdHRyaWJ1dGUoLi4uKSIgPj4K
PiA+ICsoYW5kIG1heSB0aHVzIG5vdCBiZSBmcmVlZCksIG9yIGlmIHRoZSB1bmRlcmx5aW5nIHN0
b3JhZ2UgaW1wbGVtZW50YXRpb24KPiA+ICtkb2Vzbid0IHN1cHBvcnQgZnJlZWluZyBpbWFnZXMu
Cj4gPiArCj4gPiArVGhpcyBtZXRob2QgaXMgY2FsbGVkIGluIHRoZSBjb250ZXh0IG9mIEM8TDw8
IGNsdXN0ZXJfbG9ja19zdG9yYWdlKCl8LyJjbHVzdGVyX2xvY2tfc3RvcmFnZSguLi4pIiA+Pj4s
Cj4gPiAraS5lLiB3aGVuIHRoZSBzdG9yYWdlIGlzIEI8bG9ja2VkPi4KPiA+ICsKPiA+ICtCPE5P
VEU6PiBUaGUgcmV0dXJuZWQgY2xlYW51cCBzdWJyb3V0aW5lIGlzIGNhbGxlZCBpbiBhIHNlcGFy
YXRlIHdvcmtlciBhbmQKPiA+ICtzaG91bGQgTDw8IGxvY2t8LyIkcGx1Z2luLT5jbHVzdGVyX2xv
Y2tfc3RvcmFnZSguLi4pIiA+PiB0aGUgdW5kZXJseWluZyBzdG9yYWdlCj4gPiArc2VwYXJhdGVs
eS4KPgo+IGl0IHNob3VsZD8gb3IgaXQgbXVzdD8KPgo+ID4gKwo+ID4gKz1jdXQKPiA+ICsKPiA+
ICBzdWIgZnJlZV9pbWFnZSB7Cj4gPiAgICAgIG15ICgkY2xhc3MsICRzdG9yZWlkLCAkc2NmZywg
JHZvbG5hbWUsICRpc0Jhc2UsICRmb3JtYXQpID0gQF87Cj4gPiAgICAgIGNyb2FrICJpbXBsZW1l
bnQgbWUgaW4gc3ViLWNsYXNzXG4iOwo+ID4gLS0gCj4gPiAyLjM5LjUKPiA+IAo+ID4gCj4gPiAK
PiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiBw
dmUtZGV2ZWwgbWFpbGluZyBsaXN0Cj4gPiBwdmUtZGV2ZWxAbGlzdHMucHJveG1veC5jb20KPiA+
IGh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3B2ZS1k
ZXZlbAo+ID4gCj4gPiAKPiA+IAo+Cj4KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwo+IHB2ZS1kZXZlbCBtYWlsaW5nIGxpc3QKPiBwdmUtZGV2ZWxAbGlz
dHMucHJveG1veC5jb20KPiBodHRwczovL2xpc3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1h
bi9saXN0aW5mby9wdmUtZGV2ZWwKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KcHZlLWRldmVsIG1haWxpbmcgbGlzdApwdmUtZGV2ZWxAbGlzdHMucHJv
eG1veC5jb20KaHR0cHM6Ly9saXN0cy5wcm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGlu
Zm8vcHZlLWRldmVsCg==