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 [IPv6:2a01:7e0:0:424::9])
	by lore.proxmox.com (Postfix) with ESMTPS id 3D9891FF16B
	for <inbox@lore.proxmox.com>; Thu,  3 Apr 2025 16:05:40 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 826DA3674;
	Thu,  3 Apr 2025 16:05:26 +0200 (CEST)
Mime-Version: 1.0
Date: Thu, 03 Apr 2025 16:05:21 +0200
Message-Id: <D8X27G1FDP6J.1QVHV5BNCVU2L@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>
 <D8WAP6RU0D56.1T3QC7BCQI5D7@proxmox.com>
 <1743664476.2gt96bhyxx.astroid@yuna.none>
In-Reply-To: <1743664476.2gt96bhyxx.astroid@yuna.none>
X-SPAM-LEVEL: Spam detection results:  0
 AWL 0.081 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
 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>

T24gVGh1IEFwciAzLCAyMDI1IGF0IDk6MjMgQU0gQ0VTVCwgRmFiaWFuIEdyw7xuYmljaGxlciB3
cm90ZToKPiBPbiBBcHJpbCAyLCAyMDI1IDY6MzIgcG0sIE1heCBDYXJyYXJhIHdyb3RlOgo+ID4g
T24gTW9uIE1hciAzMSwgMjAyNSBhdCA1OjEyIFBNIENFU1QsIEZhYmlhbiBHcsO8bmJpY2hsZXIg
d3JvdGU6Cj4gPj4gT24gTWFyY2ggMjYsIDIwMjUgMzoyMCBwbSwgTWF4IENhcnJhcmEgd3JvdGU6
Cj4gPj4gPiBBZGQgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGZvbGxvd2luZyBtZXRob2RzOgo+ID4+
ID4gLSBsaXN0X2ltYWdlcwo+ID4+ID4gLSBjcmVhdGVfYmFzZQo+ID4+ID4gLSBjbG9uZV9pbWFn
ZQo+ID4+ID4gLSBhbGxvY19pbWFnZQo+ID4+ID4gLSBmcmVlX2ltYWdlCj4gPj4gPiAKPiA+PiA+
IFNpZ25lZC1vZmYtYnk6IE1heCBDYXJyYXJhIDxtLmNhcnJhcmFAcHJveG1veC5jb20+Cj4gPj4g
PiBDby1hdXRob3JlZC1ieTogTWF4aW1pbGlhbm8gU2FuZG92YWwgPG0uc2FuZG92YWxAcHJveG1v
eC5jb20+Cj4gPj4gPiAtLS0KPiA+PiA+ICBzcmMvUFZFL1N0b3JhZ2UvUGx1Z2luQmFzZS5wbSB8
IDExMSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPj4gPiAgMSBmaWxlIGNo
YW5nZWQsIDExMSBpbnNlcnRpb25zKCspCj4gPj4gPiAKPiA+PiA+IGRpZmYgLS1naXQgYS9zcmMv
UFZFL1N0b3JhZ2UvUGx1Z2luQmFzZS5wbSBiL3NyYy9QVkUvU3RvcmFnZS9QbHVnaW5CYXNlLnBt
Cj4gPj4gPiBpbmRleCBiM2NlNjg0Li4zN2IxNDcxIDEwMDY0NAo+ID4+ID4gLS0tIGEvc3JjL1BW
RS9TdG9yYWdlL1BsdWdpbkJhc2UucG0KPiA+PiA+ICsrKyBiL3NyYy9QVkUvU3RvcmFnZS9QbHVn
aW5CYXNlLnBtCj4gPj4gPiBAQCAtNzIxLDI2ICs3MjEsMTM3IEBAIHN1YiBvbl9kZWxldGVfaG9v
ayB7Cj4gPj4gPiAgCj4gPj4gPiAgPWN1dAo+ID4+ID4gIAo+ID4+ID4gKz1oZWFkMyAkcGx1Z2lu
LT5saXN0X2ltYWdlcygkc3RvcmVpZCwgXCVzY2ZnIFssICR2bWlkLCBcQHZvbGxpc3QsIFwlY2Fj
aGVdKQo+ID4+ID4gKwo+ID4+ID4gK0I8UkVRVUlSRUQ6PiBNdXN0IGJlIGltcGxlbWVudGVkIGlu
IGV2ZXJ5IHN0b3JhZ2UgcGx1Z2luLgo+ID4+ID4gKwo+ID4+ID4gK1JldHVybnMgYSBsaXN0cmVm
IG9mIGFsbCBkaXNrIGltYWdlcyBvZiBhIHN0b3JhZ2UuIElmIHRoZSBzdG9yYWdlIGRvZXMgbm90
Cj4gPj4gPiArc3VwcG9ydCBzdG9yaW5nIGRpc2sgaW1hZ2VzLCByZXR1cm5zIGFuIGVtcHR5IGxp
c3RyZWYuCj4gPj4gPiArCj4gPj4gPiArT3B0aW9uYWxseSwgaWYgQzxcQHZvbGxpc3Q+IGlzIHBy
b3ZpZGVkLCByZXR1cm4gb25seSBkaXNrcyB3aG9zZSB2b2x1bWUgSUQgaXMKPiA+PiA+ICt3aXRo
aW4gQzxcQHZvbGxpc3Q+LiBOb3RlIHRoYXQgdGhpcyB1c3VhbGx5IGhhcyBoaWdoZXIgcHJlY2Vk
ZW5jZSB0aGFuCj4gPj4gPiArQzwkdm1pZD4uCj4gPiAKPiA+IFVwZnJvbnQgbm90ZTogVW5sZXNz
IEkgb3RoZXJ3aXNlIGNvbW1lbnQgc29tZXRoaW5nLCBJIGFncmVlIHdpdGggeW91Lgo+ID4gSnVz
dCBzcGFyaW5nIG15c2VsZiBmcm9tIHdyaXRpbmcgYW5kIHlvdSBmcm9tIHJlYWRpbmcgdG9vIG1h
bnkgQUNLcyA6UAo+ID4gCj4gPj4KPiA+PiB3aGF0IGRvZXMgdXN1YWxseSBtZWFuPyB3aGF0IGRv
ZXMgJHZtaWQgZG8/Cj4gPiAKPiA+IFNvcnJ5LCB0aGlzIGdvdCBsb3N0IHdoZW4gdG9zc2luZyBv
dXQgc29tZSByZWR1bmRhbnQgcGFyYWdyYXBocyBoZXJlLgo+ID4gCj4gPiBUaGUgInVzdWFsbHki
IGNhbiBiZSBkcm9wcGVkOyBDPCR2bWlkPiBpcyB0aGUgZ3Vlc3QncyBJRCAobWVudGlvbmVkIGlu
Cj4gPiB0aGUgREVTQ1JJUFRJT04gaW4gcGF0Y2ggMDEpIGFuZCB1bmxlc3MgQzxcQHZvbGxpc3Q+
IGlzIHByb3ZpZGVkLCB0aGUKPiA+IGltYWdlcyB0aGF0IHRoZSBnaXZlbiBDPCR2bWlkPiBvd25z
IHdpbGwgYmUgcmV0dXJuZWQuCj4KPiBpbiBjYXNlIHRoYXQgd2Fzbid0IG9idmlvdXMgLSBJIGtu
b3cgd2hhdCAkdm1pZCBpcyAoYW5kIGFsc28gd2hhdCBpdAo+IGRvZXMpIC0gaXQgc2hvdWxkIGJl
IGV4cGxhaW5lZCB0byByZWFkZXJzIHRoYXQgZG9uJ3QgKHlldCkuCj4KPiBTbyBJIHRoaW5rIHRo
aXMgc2hvdWxkIHNheSBzb21ldGhpbmcgbGlrZToKPgo+IElmIEM8JHZtaWQ+IGlzIHNldCwgb25s
eSBpbWFnZXMgb3duZWQgYnkgdGhhdCBWTUlEIG11c3QgYmUgaW5jbHVkZWQgaW4KPiB0aGUgcmV0
dXJuIHZhbHVlLgo+Cj4gSWYgQzxcQHZvbGxpc3Q+IGlzIHNldCBhbmQgbm90IGVtcHR5LCB0aGUg
cmV0dXJuIHZhbHVlIG11c3QgYmUgZmlsdGVyZWQKPiB1c2luZyB0aGUgY29udGFpbmVkIHZvbGlk
cy4KPgo+IElmIGJvdGggQzwkdm1pZD4gYW5kIEM8XEB2b2xsaXN0PiBhcmUgc2V0LCBvbmx5IEM8
XEB2b2xsaXN0PiBzaG91bGQgYmUKPiBob25vcmVkLgoKVGhhbmtzIGZvciB0aGUgc3VnZ2VzdGlv
biwgdGhhdCdzIGFjdHVhbGx5IG11Y2ggYmV0dGVyLiBJIGFsc28gYWdyZWUKd2l0aCB0aGUgb3Ro
ZXIgc3VnZ2VzdGlvbnMgZnVydGhlciBiZWxvdy4KCj4KPiBhbmQgYWJvdXQgdGhhdCBsYXN0IHBh
cnQgLSBkbyB3ZSBhY3R1YWxseSBoYXZlIGNhbGxlcnMgdGhhdCBzZXQgYm90aD8gaWYKPiBub3Qs
IHNob3VsZCB3ZSBpbnN0ZWFkIHJlY29tbWVuZCB0cmVhdGluZyBpdCBhcyBhbiBlcnJvciBhbmQg
ZG9jdW1lbnQgaXQKPiBhcyBzdWNoPwoKSSdsbCByZXZpc2l0IHRoZSBjYWxsIHNpdGVzIGFnYWlu
IGFuZCBzZWUgd2hldGhlciB3ZSBhY3R1YWxseSBkbywganVzdAp0byBiZSBzdXJlLiBUaGUgY3Vy
cmVudCBjb2RlIGF0IGxlYXN0IGRvZXNuJ3QgdHJlYXQgaXQgYXMgYW4gZXJyb3IuCgo+Cj4gPj4g
PiArCj4gPj4gPiArQzxkaWU+cyBpbiBjYXNlIG9mIGVycm9ycy4KPiA+PiA+ICsKPiA+PiA+ICtU
aGlzIG1ldGhvZCBtYXkgcmV1c2UgTDw8IGNhY2hlZCBpbmZvcm1hdGlvbiB2aWEgQzxcJWNhY2hl
PnwvIkNBQ0hJTkcgRVhQRU5TSVZFIE9QRVJBVElPTlMiID4+Lgo+ID4+ID4gKwo+ID4+ID4gK1Ro
ZSByZXR1cm5lZCBsaXN0cmVmIGhhcyB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZToKPiA+PiA+ICsK
PiA+PiA+ICsgICAgWwo+ID4+ID4gKwl7Cj4gPj4gPiArCSAgICBjdGltZSA9PiAiMTY4OTE2MzMy
MiIsICMgY3JlYXRpb24gdGltZSBhcyB1bml4IHRpbWVzdGFtcAo+ID4+ID4gKwkgICAgZm9ybWF0
ID0+ICJyYXciLAo+ID4+ID4gKwkgICAgc2l6ZSA9PiA4NTg5OTM0NTkyLCAjIGluIGJ5dGVzIQo+
ID4+ID4gKwkgICAgdm1pZCA9PiAxMDEsCj4gPj4gPiArCSAgICB2b2xpZCA9PiAibG9jYWwtbHZt
OmJhc2UtMTAxLWRpc2stMCIsICMgdm9sdW1lIElELCBzdG9yYWdlLXNwZWNpZmljCj4gPj4gPiAr
CX0sCj4gPj4gPiArCSMgWy4uLl0KPiA+PiA+ICsgICAgXQo+ID4+ID4gKwo+ID4+ID4gKz1jdXQK
PiA+PiA+ICsKPiA+PiA+ICBzdWIgbGlzdF9pbWFnZXMgewo+ID4+ID4gICAgICBteSAoJGNsYXNz
LCAkc3RvcmVpZCwgJHNjZmcsICR2bWlkLCAkdm9sbGlzdCwgJGNhY2hlKSA9IEBfOwo+ID4+ID4g
ICAgICBjcm9hayAiaW1wbGVtZW50IG1lIGluIHN1Yi1jbGFzc1xuIjsKPiA+PiA+ICB9Cj4gPj4g
PiAgCj4gPj4gPiArPWhlYWQzICRwbHVnaW4tPmNyZWF0ZV9iYXNlKCRzdG9yZWlkLCBcJXNjZmcs
ICR2b2xuYW1lKQo+ID4+ID4gKwo+ID4+ID4gK0I8T1BUSU9OQUw6PiBNYXkgYmUgaW1wbGVtZW50
ZWQgaW4gYSBzdG9yYWdlIHBsdWdpbi4KPiA+PiA+ICsKPiA+PiA+ICtDcmVhdGVzIGEgYmFzZSB2
b2x1bWUgZnJvbSBhbiBleGlzdGluZyB2b2x1bWUsIGFsbG93aW5nIHRoZSB2b2x1bWUgdG8gYmUK
PiA+Pgo+ID4+IHRoaXMgaXMgbWlzbGVhZGluZyAtIGl0IGRvZXNuJ3QgY3JlYXRlIGEgYmFzZSB2
b2x1bWUgZnJvbSBhbiBleGlzdGluZwo+ID4+IHZvbHVtZSwgaXQgKmNvbnZlcnRzKiBhbiBleGlz
dGluZyB2b2x1bWUgaW50byBhIGJhc2Ugdm9sdW1lIQo+ID4gCj4gPiBPaCBkYW5nLCB0aGFua3Mg
Zm9yIHBvaW50aW5nIHRoaXMgb3V0ISBTb3JyeSBmb3IgdGhlIG92ZXJzaWdodC4KPiA+IAo+ID4+
Cj4gPj4gPiArTDw8IGNsb25lZHwvIiRwbHVnaW4tPmNsb25lX2ltYWdlKC4uLikiID4+LiBUaGlz
IGNsb25lZCB2b2x1bWUgKHVzdWFsbHkKPiA+PiA+ICthIGRpc2sgaW1hZ2UpIG1heSB0aGVuIGJl
IHVzZWQgYXMgYSBiYXNlIGZvciB0aGUgcHVycG9zZSBvZiBjcmVhdGluZyBsaW5rZWQKPiA+Pgo+
ID4+IHRoaXMgaXMgd3Jvbmc/IHRoZXJlIGlzIG5vIGNsb25lZCB2b2x1bWUgeWV0PyBhbmQgYWxs
IG9mIHRoaXMgb25seQo+ID4+IGFwcGxpZXMgdG8gaW1hZ2VzIGFuZCBub3Qgb3RoZXIgdm9sdW1l
cz8KPiA+Pgo+ID4+ID4gK2Nsb25lcy4gU2VlIEw8QzxQVkU6OlN0b3JhZ2U6Okx2bVRoaW5QbHVn
aW4+PiBhbmQKPiA+PiA+ICtMPEM8UFZFOjpTdG9yYWdlOjpaRlNQb29sUGx1Z2luPj4gZm9yIGV4
YW1wbGUgaW1wbGVtZW50YXRpb25zLgo+ID4+ID4gKwo+ID4+ID4gK09uIGNvbXBsZXRpb24sIHJl
dHVybnMgdGhlIG5hbWUgb2YgdGhlIG5ldyBiYXNlIHZvbHVtZSAodGhlIG5ldyBDPCR2b2xuYW1l
PikuCj4gPj4gPiArCj4gPj4gPiArVGhpcyBtZXRob2QgaXMgY2FsbGVkIGluIHRoZSBjb250ZXh0
IG9mIEM8TDw8IGNsdXN0ZXJfbG9ja19zdG9yYWdlKCl8LyJjbHVzdGVyX2xvY2tfc3RvcmFnZSgu
Li4pIiA+Pj4sCj4gPj4gPiAraS5lLiB3aGVuIHRoZSBzdG9yYWdlIGlzIEI8bG9ja2VkPi4KPiA+
Pgo+ID4+IFNob3VsZG4ndCB0aGlzIHNheSB0aGF0IGl0ICpzaG91bGQqIGJlIGNhbGxlZCBpbiBh
IGxvY2tlZCBjb250ZXh0Pwo+ID4+Cj4gPj4gPiArCj4gPj4gPiArPWN1dAo+ID4+ID4gKwo+ID4+
ID4gIHN1YiBjcmVhdGVfYmFzZSB7Cj4gPj4gPiAgICAgIG15ICgkY2xhc3MsICRzdG9yZWlkLCAk
c2NmZywgJHZvbG5hbWUpID0gQF87Cj4gPj4gPiAgICAgIGNyb2FrICJpbXBsZW1lbnQgbWUgaW4g
c3ViLWNsYXNzXG4iOwo+ID4+ID4gIH0KPiA+PiA+ICAKPiA+PiA+ICs9aGVhZDMgJHBsdWdpbi0+
Y2xvbmVfaW1hZ2UoJHNjZmcsICRzdG9yZWlkLCAkdm9sbmFtZSwgJHZtaWQgWywgJHNuYXBdKQo+
ID4+ID4gKwo+ID4+ID4gKz1oZWFkMyAkcGx1Z2luLT5jbG9uZV9pbWFnZSguLi4pCj4gPj4gPiAr
Cj4gPj4gPiArQjxSRVFVSVJFRDo+IE11c3QgYmUgaW1wbGVtZW50ZWQgaW4gZXZlcnkgc3RvcmFn
ZSBwbHVnaW4uCj4gPj4KPiA+PiBub3QgcmVhbGx5PyB0aGVyZSdzIGEgZmVhdHVyZSBndWFyZCBm
b3IgaXQsIHNvIG9ubHkgc3RvcmFnZSBwbHVnaW5zIHRoYXQKPiA+PiBzdXBwb3J0IGl0IHNob3Vs
ZCBldmVyIGdldCBpdCBjYWxsZWQgYW55d2F5Li4KPiA+Pgo+ID4+IHdoYXQgZG9lcyAkdm1pZCBt
ZWFuPwo+ID4gCj4gPiBTZWUgYWJvdmU7IHRoZSBndWVzdCdzIElELiBTaW5jZSBpdCB3YXMgdW5j
bGVhciwgdGhlIHBhcmFtZXRlciBzaG91bGQKPiA+IHByb2JhYmx5IGJlIGV4cGxhaW5lZCBoZXJl
IChhbmQgYWxzbyBhYm92ZSkgaW5zdGVhZCBvZiAoanVzdCkgaW4gdGhlCj4gPiBERVNDUklQVElP
TiBzZWN0aW9uLgo+Cj4gSSBrbm93IHdoYXQgYSB2bWlkIGlzIDspIHRoZSBxdWVzdGlvbiBpcyB3
aGF0IGRvZXMgdGhpcyBwYXJhbWV0ZXIgKm1lYW4qCj4gZm9yIHRoaXMgcGFydGljdWxhciBtZXRo
b2Q/Cj4KPiBDPCR2bWlkPiBjb250YWlucyB0aGUgb3duZXIgb2YgdGhlIG5ldyB2b2x1bWUsIHdo
aWNoIG11c3QgYmUgZW5jb2RlZCBpbgo+IHRoZSByZXR1cm5lZCB2b2xpZC4KPgo+IG9yIHNvbWV0
aGluZyBsaWtlIHRoYXQ/Cj4KPiA+PiA+ICsKPiA+PiA+ICtDbG9uZXMgYSBkaXNrIGltYWdlIG9y
IGEgc25hcHNob3Qgb2YgYW4gaW1hZ2UsIHJldHVybmluZyB0aGUgbmFtZSBvZiB0aGUgbmV3Cj4g
Pj4gPiAraW1hZ2UgKHRoZSBuZXcgQzwkdm9sbmFtZT4pLiBOb3RlIHRoYXQgSTxjbG9uaW5nPiBo
ZXJlIG1lYW5zIHRvIGNyZWF0ZSBhIGxpbmtlZAo+ID4+ID4gK2Nsb25lIGFuZCBub3QgZHVwbGlj
YXRpbmcgYW4gaW1hZ2UuIFNlZSBMPEM8UFZFOjpTdG9yYWdlOjpMdm1UaGluUGx1Z2luPj4gYW5k
Cj4gPj4gPiArTDxDPFBWRTo6U3RvcmFnZTo6WkZTUG9vbFBsdWdpbj4+IGZvciBleGFtcGxlIGlt
cGxlbWVudGF0aW9ucy4KPiA+Pgo+ID4+IHRoZW4gd2h5IG5vdCBzdGFydCB3aXRoCj4gPj4KPiA+
PiAiQ3JlYXRlcyBhIGxpbmtlZCBjbG9uZSBvZiBhbiBleGlzdGluZyBkaXNrIGltYWdlIG9yIHNu
YXBzaG90IG9mIGFuCj4gPj4gaW1hZ2UiCj4gPj4KPiA+PiA/IG1heWJlIGFsc28gaW5jbHVkZSB0
aGF0IHVubGVzcyB0aGUgbGlua2VkIGNsb25lIGlzIDEwMCUgaW5kZXBlbmRlbnQKPiA+PiBmcm9t
IHRoZSBiYXNlIChvbmx5IHRydWUgZm9yIExWTSB0aGluIGF0bT8pLCB0aGUgbmV3IHZvbGlkIHNo
b3VsZCBlbmNvZGUKPiA+PiB0aGUgYmFzZS0+Y2xvbmUgcmVsYXRpb24gaW4gdGhlIHZvbG5hbWU/
Cj4gPj4KPiA+PiA+ICsKPiA+PiA+ICtDPGRpZT5zIGluIGNhc2Ugb2YgYW4gZXJyb3Igb2YgaWYg
dGhlIHVuZGVybHlpbmcgc3RvcmFnZSBkb2Vzbid0IHN1cHBvcnQKPiA+Pgo+ID4+IHMvb2Yvb3Iv
Cj4gPj4KPiA+PiA+ICtjbG9uaW5nIGltYWdlcy4KPiA+PiA+ICsKPiA+PiA+ICtUaGlzIG1ldGhv
ZCBpcyBjYWxsZWQgaW4gdGhlIGNvbnRleHQgb2YgQzxMPDwgY2x1c3Rlcl9sb2NrX3N0b3JhZ2Uo
KXwvImNsdXN0ZXJfbG9ja19zdG9yYWdlKC4uLikiID4+PiwKPiA+PiA+ICtpLmUuIHdoZW4gdGhl
IHN0b3JhZ2UgaXMgQjxsb2NrZWQ+Lgo+ID4+Cj4gPj4gc2FtZSBhcyBhYm92ZQo+ID4+Cj4gPj4g
PiArCj4gPj4gPiArPWN1dAo+ID4+ID4gKwo+ID4+ID4gIHN1YiBjbG9uZV9pbWFnZSB7Cj4gPj4g
PiAgICAgIG15ICgkY2xhc3MsICRzY2ZnLCAkc3RvcmVpZCwgJHZvbG5hbWUsICR2bWlkLCAkc25h
cCkgPSBAXzsKPiA+PiA+ICAgICAgY3JvYWsgImltcGxlbWVudCBtZSBpbiBzdWItY2xhc3NcbiI7
Cj4gPj4gPiAgfQo+ID4+ID4gIAo+ID4+ID4gKz1oZWFkMyAkcGx1Z2luLT5hbGxvY19pbWFnZSgk
c3RvcmVpZCwgJHNjZmcsICR2bWlkLCAkZm10LCAkbmFtZSwgJHNpemUpCj4gPj4gPiArCj4gPj4g
PiArQjxSRVFVSVJFRDo+IE11c3QgYmUgaW1wbGVtZW50ZWQgaW4gZXZlcnkgc3RvcmFnZSBwbHVn
aW4uCj4gPj4gPiArCj4gPj4gPiArQWxsb2NhdGVzIGEgZGlzayBpbWFnZSB3aXRoIHRoZSBnaXZl
biBmb3JtYXQgQzwkZm10PiBhbmQgQzwkc2l6ZT4gaW4gYnl0ZXMsCj4gPj4gPiArcmV0dXJuaW5n
IHRoZSBuYW1lIG9mIHRoZSBuZXcgaW1hZ2UgKHRoZSBuZXcgQzwkdm9sbmFtZT4pLiBTZWUKPiA+
PiA+ICtDPEw8PCBwbHVnaW5kYXRhKCl8LyIkcGx1Z2luLT5wbHVnaW5kYXRhKCkiID4+PiBmb3Ig
YWxsIGRpc2sgZm9ybWF0cy4KPiA+PiA+ICsKPiA+PiA+ICtPcHRpb25hbGx5LCBpZiBnaXZlbiwg
c2V0IHRoZSBuYW1lIG9mIHRoZSBpbWFnZSB0byBDPCRuYW1lPi4gSWYgQzwkbmFtZT4gaXNuJ3QK
PiA+PiA+ICtwcm92aWRlZCwgdGhlIG5leHQgbmFtZSBzaG91bGQgYmUgZGV0ZXJtaW5lZCB2aWEg
QzxMPDwgZmluZF9mcmVlX2Rpc2tuYW1lKCl8LyIkcGx1Z2luLT5maW5kX2ZyZWVfZGlza25hbWUo
Li4uKSIgPj4+Lgo+ID4+Cj4gPj4gYSBzdWl0YWJsZSBuYW1lIHNob3VsZCBiZSBhdXRvbWF0aWNh
bGx5IGdlbmVyYXRlZCwgdW5sZXNzIHdlIHJlYWxseSB3YW50Cj4gPj4gdG8gc3RhYmlsaXplIGZp
bmRfZnJlZV9kaXNrbmFtZSBhcyBwYXJ0IG9mIHRoZSBBUEkuLgo+ID4+Cj4gPj4gd2hhdCBkb2Vz
ICR2bWlkIG1lYW4/Cj4KPiBoZXJlIGFzIHdlbGwsIHNpbWlsYXIgdG8gY2xvbmVfaW1hZ2UgYWJv
dmUKPgo+Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
PiBwdmUtZGV2ZWwgbWFpbGluZyBsaXN0Cj4gcHZlLWRldmVsQGxpc3RzLnByb3htb3guY29tCj4g
aHR0cHM6Ly9saXN0cy5wcm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vcHZlLWRl
dmVsCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCnB2
ZS1kZXZlbCBtYWlsaW5nIGxpc3QKcHZlLWRldmVsQGxpc3RzLnByb3htb3guY29tCmh0dHBzOi8v
bGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3B2ZS1kZXZlbAo=