From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <pbs-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 42FFD1FF15C
	for <inbox@lore.proxmox.com>; Wed, 13 Nov 2024 14:46:00 +0100 (CET)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 029D516336;
	Wed, 13 Nov 2024 14:46:01 +0100 (CET)
Message-ID: <39def709-3df0-4182-8179-8be4022f0f9e@proxmox.com>
Date: Wed, 13 Nov 2024 14:45:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
To: Proxmox Backup Server development discussion <pbs-devel@lists.proxmox.com>,
 =?UTF-8?Q?Fabian_Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com>
References: <20241105140153.282980-1-c.ebner@proxmox.com>
 <20241105140153.282980-5-c.ebner@proxmox.com>
 <1731330267.220wgkqhtc.astroid@yuna.none>
Content-Language: en-US, de-DE
From: Christian Ebner <c.ebner@proxmox.com>
In-Reply-To: <1731330267.220wgkqhtc.astroid@yuna.none>
X-SPAM-LEVEL: Spam detection results:  0
 AWL -0.370 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
 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to
 Validity was blocked. See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more
 information.
 RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to
 Validity was blocked. See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more
 information.
 RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to
 Validity was blocked. See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more
 information.
 SPF_HELO_NONE           0.001 SPF: HELO does not publish an SPF Record
 SPF_PASS               -0.001 SPF: sender matches SPF record
Subject: Re: [pbs-devel] [PATCH proxmox-backup 4/4] fix #5853: client: pxar:
 exclude stale files on metadata read
X-BeenThere: pbs-devel@lists.proxmox.com
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Proxmox Backup Server development discussion
 <pbs-devel.lists.proxmox.com>
List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pbs-devel>, 
 <mailto:pbs-devel-request@lists.proxmox.com?subject=unsubscribe>
List-Archive: <http://lists.proxmox.com/pipermail/pbs-devel/>
List-Post: <mailto:pbs-devel@lists.proxmox.com>
List-Help: <mailto:pbs-devel-request@lists.proxmox.com?subject=help>
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel>, 
 <mailto:pbs-devel-request@lists.proxmox.com?subject=subscribe>
Reply-To: Proxmox Backup Server development discussion
 <pbs-devel@lists.proxmox.com>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: pbs-devel-bounces@lists.proxmox.com
Sender: "pbs-devel" <pbs-devel-bounces@lists.proxmox.com>

T24gMTEvMTEvMjQgMTQ6MzcsIEZhYmlhbiBHcsO8bmJpY2hsZXIgd3JvdGU6Cj4gYmVoYXZpb3Vy
IHdpc2UgdGhpcyBzZWVtcyBva2F5IHRvIG1lLCBidXQgaWYgcG9zc2libGUsIEknZCBhdm9pZCBh
bGwgdGhlCj4gcmV0dXJuIHZhbHVlIHR1cGxlcywgc2VlIGRldGFpbGVkIGNvbW1lbnRzIGJlbG93
Li4KCkFncmVlZCwgSSBhbSBub3QgYSBmYW4gb2YgcGFzc2luZyB0aGUgc3RhbGUgZmlsZSBoYW5k
bGUgZXJyb3IgaW5mbyBhbG9uZyAKYSB0aGUgYm9vbGVhbiBpbiB0aGUgcmV0dXJuIHZhbHVlIGFz
IHdlbGwuCgpCdXQgdW5mb3J0dW5hdGVseSBwYXNzaW5nIGFsb25nIHRoZSBlcnJvciB3aXRob3V0
IGxvb3NpbmcgcHJlLWV4aXN0aW5nIAplcnJvciBjb250ZXh0IGFuZCBzd2l0Y2hpbmcgYWxsIHRo
ZSBgZ2V0X21ldGFkYXRhYCByZWxhdGVkIGZ1bmN0aW9ucyB0byAKcmV0dXJuIGFuIGBFcnJub2Ag
aXMgbm90IHBvc3NpYmxlIGFzIGlzLgoKRS5nLiBgcHJvY2Vzc19hY2xgIHJldHVybnMgYW4gYGFu
eWhvdzo6RXJyb3JgIChjb3VsZCBiZSBkZWZpbmVkIHRvIApyZXR1cm4gYW4gZS5nLiBgRXJybm86
OkVJTlZBTElEYCBpbnN0ZWFkPyksIHNwZWNpYWwgaGFuZGxpbmcgb2YgCmBFcnJubzo6RTJCSUdg
IGZvciB0aGUgeGF0dHIgY2FzZSBvbmx5LCAuLi4KClRoZSBjdXJyZW50IGFwcHJvYWNoIHdhcyBj
aG9vc2VuIHRvIGtlZXAgdGhlIGN1cnJlbnQgYW55aG93IGVycm9yIApjb250ZXh0IGNsb3NlIHRv
IHRoZSBhY3R1YWwgZXJyb3JzIHdoZW4gdGhleSBvY2N1ci4KICA+IE9uIE5vdmVtYmVyIDUsIDIw
MjQgMzowMSBwbSwgQ2hyaXN0aWFuIEVibmVyIHdyb3RlOgo+PiBTa2lwIGFuZCB3YXJuIHRoZSB1
c2VyIGZvciBmaWxlcyB3aGljaCByZXR1cm5lZCBhIHN0YWxlIGZpbGUgaGFuZGxlCj4+IGVycm9y
IHdoaWxlIHJlYWRpbmcgdGhlIG1ldGFkYXRhIGFzc29jaWF0ZWQgdG8gdGhhdCBmaWxlLgo+Pgo+
PiBJbnN0ZWFkIG9mIHJldHVybmluZyB3aXRoIGFuIGVycm9yIHdoZW4gZ2V0dGluZyB0aGUgbWV0
YWRhdGEsIHJldHVybgo+PiBhIGJvb2xlYW4gZmxhZyBzaWduYWxpbmcgaWYgYSBzdGFsZSBmaWxl
IGhhbmRsZSBoYXMgYmVlbiBlbmNvdW50ZXJlZC4KPj4KPj4gTGluayB0byBpc3N1ZSBpbiBidWd0
cmFja2VyOgo+PiBodHRwczovL2J1Z3ppbGxhLnByb3htb3guY29tL3Nob3dfYnVnLmNnaT9pZD01
ODUzCj4+Cj4+IExpbmsgdG8gdGhyZWFkIGluIGNvbW11bml0eSBmb3J1bToKPj4gaHR0cHM6Ly9m
b3J1bS5wcm94bW94LmNvbS90aHJlYWRzLzE1NjgyMi8KPj4KPj4gU2lnbmVkLW9mZi1ieTogQ2hy
aXN0aWFuIEVibmVyIDxjLmVibmVyQHByb3htb3guY29tPgo+PiAtLS0KPj4gICBwYnMtY2xpZW50
L3NyYy9weGFyL2NyZWF0ZS5ycyB8IDEwMCArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t
LS0tCj4+ICAgMSBmaWxlIGNoYW5nZWQsIDY2IGluc2VydGlvbnMoKyksIDM0IGRlbGV0aW9ucygt
KQo+Pgo+PiBkaWZmIC0tZ2l0IGEvcGJzLWNsaWVudC9zcmMvcHhhci9jcmVhdGUucnMgYi9wYnMt
Y2xpZW50L3NyYy9weGFyL2NyZWF0ZS5ycwo+PiBpbmRleCAyYTg0NDkyMmMuLjg1YmUwMGRiNCAx
MDA2NDQKPj4gLS0tIGEvcGJzLWNsaWVudC9zcmMvcHhhci9jcmVhdGUucnMKPj4gKysrIGIvcGJz
LWNsaWVudC9zcmMvcHhhci9jcmVhdGUucnMKPj4gQEAgLTIyOCw3ICsyMjgsNyBAQCB3aGVyZQo+
PiAgICAgICBsZXQgbXV0IGZzX2ZlYXR1cmVfZmxhZ3MgPSBGbGFnczo6ZnJvbV9tYWdpYyhmc19t
YWdpYyk7Cj4+ICAgCj4+ICAgICAgIGxldCBzdGF0ID0gbml4OjpzeXM6OnN0YXQ6OmZzdGF0KHNv
dXJjZV9kaXIuYXNfcmF3X2ZkKCkpPzsKPj4gLSAgICBsZXQgbWV0YWRhdGEgPSBnZXRfbWV0YWRh
dGEoCj4+ICsgICAgbGV0IChtZXRhZGF0YSwgc3RhbGVfZmQpID0gZ2V0X21ldGFkYXRhKAo+IAo+
IHN0YWxlX2ZkIGhlcmUgaXMgbm90IHVzZWQgYXQgYWxsLi4KClllcywgdGhhdCBvbmUgc2hvdWxk
IGxlYWQgdG8gYSBoYXJkIGVycm9yIGFzIHlvdSBtZW50aW9uZWQsIHNvIHNob3VsZCBiZSAKaGFu
ZGxlZCBhY2NvcmRpbmdseS4gSSB3aWxsIGFkYXB0IHRoaXMgdG8gYmUgYSBoYXJkIGVycm9yLgoK
PiAKPj4gICAgICAgICAgIHNvdXJjZV9kaXIuYXNfcmF3X2ZkKCksCj4+ICAgICAgICAgICAmc3Rh
dCwKPj4gICAgICAgICAgIGZlYXR1cmVfZmxhZ3MgJiBmc19mZWF0dXJlX2ZsYWdzLAo+PiBAQCAt
NzQ0LDcgKzc0NCw3IEBAIGltcGwgQXJjaGl2ZXIgewo+PiAgICAgICAgICAgICAgIHJldHVybiBP
aygoKSk7Cj4+ICAgICAgICAgICB9Cj4+ICAgCj4+IC0gICAgICAgIGxldCBtZXRhZGF0YSA9IGdl
dF9tZXRhZGF0YSgKPj4gKyAgICAgICAgbGV0IChtZXRhZGF0YSwgc3RhbGVfZmQpID0gZ2V0X21l
dGFkYXRhKAo+IAo+IHRoaXMgb25lIGlzIHVzZWQKPiAKPj4gICAgICAgICAgICAgICBmZC5hc19y
YXdfZmQoKSwKPj4gICAgICAgICAgICAgICBzdGF0LAo+PiAgICAgICAgICAgICAgIHNlbGYuZmxh
Z3MoKSwKPj4gQEAgLTc1Myw2ICs3NTMsMTEgQEAgaW1wbCBBcmNoaXZlciB7Cj4+ICAgICAgICAg
ICAgICAgc2VsZi5za2lwX2UyYmlnX3hhdHRyLAo+PiAgICAgICAgICAgKT87Cj4+ICAgCj4+ICsg
ICAgICAgIGlmIHN0YWxlX2ZkIHsKPj4gKyAgICAgICAgICAgIGxvZzo6d2FybiEoIlN0YWxlIGZp
bGVoYW5kbGUgZW5jb3VudGVyZWQsIHNraXAgezo/fSIsIHNlbGYucGF0aCk7Cj4+ICsgICAgICAg
ICAgICByZXR1cm4gT2soKCkpOwo+PiArICAgICAgICB9Cj4gCj4gZm9yIHRoaXMgd2FybmluZy4u
IGJ1dCBnZXRfbWV0YWRhdGEgYWxyZWFkeSBsb2dzIChwb3RlbnRpYWxseSBtdWx0aXBsZQo+IHRp
bWVzIDspKSB0aGF0IHRoaW5ncyBhcmUgaW5jb21wbGV0ZSBjYXVzZSBvZiB0aGUgc3RhbGUgZmls
ZWhhbmRsZSwgdGhpcwo+IG9ubHkgYWRkcyB0aGUgcGF0aCBjb250ZXh0Li4KCmJ1dCBoZXJlIHRo
ZXJlIGlzIGFsc28gYW4gZWFybHkgcmV0dXJuLCBub3QganVzdCB0aGUgbG9nLi4uIHRoaXMgc2tp
cHMgCm92ZXIgYWRkaW5nIHRoaXMgZW50cnksIGFuZCBhbnkgc3ViIGVudHJpZXMgaWYgdGhlIGVu
dHJ5IGlzIGEgZGlyZWN0b3J5LgoKVGhlIGxvZ2dpbmcgY291bGQgaG93ZXZlciBiZSBtb3ZlZCB0
byB0aGUgZ2V0X21ldGFkYXRhIGNhbGwgYW5kIG9ubHkgYmUgCmxvZ2dlZCBvbmNlLCBhZ3JlZWQu
Cgo+IAo+PiArCj4+ICAgICAgICAgICBpZiBzZWxmLnByZXZpb3VzX3BheWxvYWRfaW5kZXguaXNf
bm9uZSgpIHsKPj4gICAgICAgICAgICAgICByZXR1cm4gc2VsZgo+PiAgICAgICAgICAgICAgICAg
ICAuYWRkX2VudHJ5X3RvX2FyY2hpdmUoZW5jb2RlciwgJm11dCBOb25lLCBjX2ZpbGVfbmFtZSwg
c3RhdCwgZmQsICZtZXRhZGF0YSwgTm9uZSkKPj4gQEAgLTEzMDEsNyArMTMwNiwxNCBAQCBpbXBs
IEFyY2hpdmVyIHsKPj4gICAgICAgICAgIGZpbGVfbmFtZTogJlBhdGgsCj4+ICAgICAgICAgICBt
ZXRhZGF0YTogJk1ldGFkYXRhLAo+PiAgICAgICApIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKPj4g
LSAgICAgICAgbGV0IGRlc3QgPSBuaXg6OmZjbnRsOjpyZWFkbGlua2F0KGZkLmFzX3Jhd19mZCgp
LCAmYiIiWy4uXSk/Owo+PiArICAgICAgICBsZXQgZGVzdCA9IG1hdGNoIG5peDo6ZmNudGw6OnJl
YWRsaW5rYXQoZmQuYXNfcmF3X2ZkKCksICZiIiJbLi5dKSB7Cj4+ICsgICAgICAgICAgICBPayhk
ZXN0KSA9PiBkZXN0LAo+PiArICAgICAgICAgICAgRXJyKEVycm5vOjpFU1RBTEUpID0+IHsKPj4g
KyAgICAgICAgICAgICAgICBsb2c6Ondhcm4hKCJTdGFsZSBmaWxlIGhhbmRsZSBlbmNvdW50ZXJl
ZCwgc2tpcCB7ZmlsZV9uYW1lOj99Iik7Cj4+ICsgICAgICAgICAgICAgICAgcmV0dXJuIE9rKCgp
KTsKPj4gKyAgICAgICAgICAgIH0KPj4gKyAgICAgICAgICAgIEVycihlcnIpID0+IHJldHVybiBF
cnIoZXJyLmludG8oKSksCj4+ICsgICAgICAgIH07Cj4+ICAgICAgICAgICBlbmNvZGVyLmFkZF9z
eW1saW5rKG1ldGFkYXRhLCBmaWxlX25hbWUsIGRlc3QpLmF3YWl0PzsKPj4gICAgICAgICAgIE9r
KCgpKQo+PiAgICAgICB9Cj4+IEBAIC0xMzk3LDkgKzE0MDksMTAgQEAgZm4gZ2V0X21ldGFkYXRh
KAo+PiAgICAgICBmc19tYWdpYzogaTY0LAo+PiAgICAgICBmc19mZWF0dXJlX2ZsYWdzOiAmbXV0
IEZsYWdzLAo+PiAgICAgICBza2lwX2UyYmlnX3hhdHRyOiBib29sLAo+PiAtKSAtPiBSZXN1bHQ8
TWV0YWRhdGEsIEVycm9yPiB7Cj4+ICspIC0+IFJlc3VsdDwoTWV0YWRhdGEsIGJvb2wpLCBFcnJv
cj4gewo+PiAgICAgICAvLyByZXF1aXJlZCBmb3Igc29tZSBvZiB0aGVzZQo+PiAgICAgICBsZXQg
cHJvY19wYXRoID0gUGF0aDo6bmV3KCIvcHJvYy9zZWxmL2ZkLyIpLmpvaW4oZmQudG9fc3RyaW5n
KCkpOwo+PiArICAgIGxldCBtdXQgc3RhbGVfZmQgPSBmYWxzZTsKPj4gICAKPj4gICAgICAgbGV0
IG11dCBtZXRhID0gTWV0YWRhdGEgewo+PiAgICAgICAgICAgc3RhdDogcHhhcjo6U3RhdCB7Cj4+
IEBAIC0xNDEyLDE4ICsxNDI1LDI3IEBAIGZuIGdldF9tZXRhZGF0YSgKPj4gICAgICAgICAgIC4u
RGVmYXVsdDo6ZGVmYXVsdCgpCj4+ICAgICAgIH07Cj4+ICAgCj4+IC0gICAgZ2V0X3hhdHRyX2Zj
YXBzX2FjbCgKPj4gKyAgICBpZiBnZXRfeGF0dHJfZmNhcHNfYWNsKAo+IAo+IG9ubHkgY2FsbCBz
aXRlLCBjb3VsZCBqdXN0IGJ1YmJsZSB1cCBFU1RBTEUKCkFzIG1lbnRpb25lZCwgdGhpcyBoYXMg
MiBpc3N1ZXM6IExvc3Mgb2YgYW55aG93IGVycm9yIGNvbnRleHQgZm9yIHdoaWNoIApzdWItZnVu
Y3Rpb24gdGhlIEVycm5vIG9jY3VycmVkIGFuZCBzdWItZnVuY3Rpb25zIGxpa2UgYHByb2Nlc3Nf
YWNsYCAKd2hpY2ggZG8gbm90IHJlbHkgb24gZmZpIGNhbGxzIGF0IGFsbCwgcmV0dXJuaW5nIHBs
YWluIGBhbnlob3c6OkVycm9yYCwgCndoaWNoIGdyYW50ZWQgY291bGQgYmUgcmVkZWZpbmVkIHRv
IHJldHVybiBhbiBFcnJuby4KCj4gCj4+ICAgICAgICAgICAmbXV0IG1ldGEsCj4+ICAgICAgICAg
ICBmZCwKPj4gICAgICAgICAgICZwcm9jX3BhdGgsCj4+ICAgICAgICAgICBmbGFncywKPj4gICAg
ICAgICAgIGZzX2ZlYXR1cmVfZmxhZ3MsCj4+ICAgICAgICAgICBza2lwX2UyYmlnX3hhdHRyLAo+
PiAtICAgICk/Owo+PiAtICAgIGdldF9jaGF0dHIoJm11dCBtZXRhLCBmZCk/Owo+PiArICAgICk/
IHsKPj4gKyAgICAgICAgc3RhbGVfZmQgPSB0cnVlOwo+PiArICAgICAgICBsb2c6Ondhcm4hKCJT
dGFsZSBmaWxlaGFuZGxlLCB4YXR0cnMgaW5jb21wbGV0ZSIpOwo+PiArICAgIH0KPj4gKyAgICBp
ZiBnZXRfY2hhdHRyKCZtdXQgbWV0YSwgZmQpPyB7Cj4gCj4gc2FtZQo+IAo+PiArICAgICAgICBz
dGFsZV9mZCA9IHRydWU7Cj4+ICsgICAgICAgIGxvZzo6d2FybiEoIlN0YWxlIGZpbGVoYW5kbGUs
IGNoYXR0ciBpbmNvbXBsZXRlIik7Cj4+ICsgICAgfQo+PiAgICAgICBnZXRfZmF0X2F0dHIoJm11
dCBtZXRhLCBmZCwgZnNfbWFnaWMpPzsKPj4gLSAgICBnZXRfcXVvdGFfcHJvamVjdF9pZCgmbXV0
IG1ldGEsIGZkLCBmbGFncywgZnNfbWFnaWMpPzsKPj4gLSAgICBPayhtZXRhKQo+PiArICAgIGlm
IGdldF9xdW90YV9wcm9qZWN0X2lkKCZtdXQgbWV0YSwgZmQsIGZsYWdzLCBmc19tYWdpYyk/IHsK
PiAKPiBzYW1lCj4gCj4+ICsgICAgICAgIHN0YWxlX2ZkID0gdHJ1ZTsKPj4gKyAgICAgICAgbG9n
Ojp3YXJuISgiU3RhbGUgZmlsZWhhbmRsZSwgcXVvdGEgIHByb2plY3QgaWQgaW5jb21wbGV0ZSIp
Owo+PiArICAgIH0KPiAKPiBzZWUgYWJvdmUgYW5kIHdheSBkb3duIGJlbG93LCBJTUhPIGFsbCBv
ZiB0aGVzZSBjb3VsZCBqdXN0IGJ1YmJsZSB1cCB0aGUgZXJyb3IuLgo+IAo+PiArICAgIE9rKCht
ZXRhLCBzdGFsZV9mZCkpCj4+ICAgfQo+PiAgIAo+PiAgIGZuIGdldF9mY2FwcygKPj4gQEAgLTE0
MzEsMjIgKzE0NTMsMjMgQEAgZm4gZ2V0X2ZjYXBzKAo+PiAgICAgICBmZDogUmF3RmQsCj4+ICAg
ICAgIGZsYWdzOiBGbGFncywKPj4gICAgICAgZnNfZmVhdHVyZV9mbGFnczogJm11dCBGbGFncywK
Pj4gLSkgLT4gUmVzdWx0PCgpLCBFcnJvcj4gewo+PiArKSAtPiBSZXN1bHQ8Ym9vbCwgRXJyb3I+
IHsKPiAKPiB0aGlzIGlzIG9ubHkgY2FsbGVkIGJ5IGdldF94YXR0cl9mY2Fwc19hY2wsIHNvIGNv
dWxkIGp1c3QgYnViYmxlIHVwCj4gRVNUQUxFIGFzIHdlbGwuLgo+IAo+PiAgICAgICBpZiAhZmxh
Z3MuY29udGFpbnMoRmxhZ3M6OldJVEhfRkNBUFMpIHsKPj4gLSAgICAgICAgcmV0dXJuIE9rKCgp
KTsKPj4gKyAgICAgICAgcmV0dXJuIE9rKGZhbHNlKTsKPj4gICAgICAgfQo+PiAgIAo+PiAgICAg
ICBtYXRjaCB4YXR0cjo6ZmdldHhhdHRyKGZkLCB4YXR0cjo6WEFUVFJfTkFNRV9GQ0FQUykgewo+
PiAgICAgICAgICAgT2soZGF0YSkgPT4gewo+PiAgICAgICAgICAgICAgIG1ldGEuZmNhcHMgPSBT
b21lKHB4YXI6OmZvcm1hdDo6RkNhcHMgeyBkYXRhIH0pOwo+PiAtICAgICAgICAgICAgT2soKCkp
Cj4+ICsgICAgICAgICAgICBPayhmYWxzZSkKPj4gICAgICAgICAgIH0KPj4gLSAgICAgICAgRXJy
KEVycm5vOjpFTk9EQVRBKSA9PiBPaygoKSksCj4+ICsgICAgICAgIEVycihFcnJubzo6RU5PREFU
QSkgPT4gT2soZmFsc2UpLAo+PiAgICAgICAgICAgRXJyKEVycm5vOjpFT1BOT1RTVVBQKSA9PiB7
Cj4+ICAgICAgICAgICAgICAgZnNfZmVhdHVyZV9mbGFncy5yZW1vdmUoRmxhZ3M6OldJVEhfRkNB
UFMpOwo+PiAtICAgICAgICAgICAgT2soKCkpCj4+ICsgICAgICAgICAgICBPayhmYWxzZSkKPj4g
ICAgICAgICAgIH0KPj4gLSAgICAgICAgRXJyKEVycm5vOjpFQkFERikgPT4gT2soKCkpLCAvLyBz
eW1saW5rcwo+PiArICAgICAgICBFcnIoRXJybm86OkVCQURGKSA9PiBPayhmYWxzZSksIC8vIHN5
bWxpbmtzCj4+ICsgICAgICAgIEVycihFcnJubzo6RVNUQUxFKSA9PiBPayh0cnVlKSwKPj4gICAg
ICAgICAgIEVycihlcnIpID0+IEVycihlcnIpLmNvbnRleHQoImZhaWxlZCB0byByZWFkIGZpbGUg
Y2FwYWJpbGl0aWVzIiksCj4+ICAgICAgIH0KPj4gICB9Cj4+IEBAIC0xNDU4LDMyICsxNDgxLDM1
IEBAIGZuIGdldF94YXR0cl9mY2Fwc19hY2woCj4+ICAgICAgIGZsYWdzOiBGbGFncywKPj4gICAg
ICAgZnNfZmVhdHVyZV9mbGFnczogJm11dCBGbGFncywKPj4gICAgICAgc2tpcF9lMmJpZ194YXR0
cjogYm9vbCwKPj4gLSkgLT4gUmVzdWx0PCgpLCBFcnJvcj4gewo+PiArKSAtPiBSZXN1bHQ8Ym9v
bCwgRXJyb3I+IHsKPj4gICAgICAgaWYgIWZsYWdzLmNvbnRhaW5zKEZsYWdzOjpXSVRIX1hBVFRS
Uykgewo+PiAtICAgICAgICByZXR1cm4gT2soKCkpOwo+PiArICAgICAgICByZXR1cm4gT2soZmFs
c2UpOwo+PiAgICAgICB9Cj4+ICAgCj4+ICAgICAgIGxldCB4YXR0cnMgPSBtYXRjaCB4YXR0cjo6
Zmxpc3R4YXR0cihmZCkgewo+PiAgICAgICAgICAgT2sobmFtZXMpID0+IG5hbWVzLAo+PiAgICAg
ICAgICAgRXJyKEVycm5vOjpFT1BOT1RTVVBQKSA9PiB7Cj4+ICAgICAgICAgICAgICAgZnNfZmVh
dHVyZV9mbGFncy5yZW1vdmUoRmxhZ3M6OldJVEhfWEFUVFJTKTsKPj4gLSAgICAgICAgICAgIHJl
dHVybiBPaygoKSk7Cj4+ICsgICAgICAgICAgICByZXR1cm4gT2soZmFsc2UpOwo+PiAgICAgICAg
ICAgfQo+PiAgICAgICAgICAgRXJyKEVycm5vOjpFMkJJRykgPT4gewo+PiAgICAgICAgICAgICAg
IG1hdGNoIHNraXBfZTJiaWdfeGF0dHIgewo+PiAtICAgICAgICAgICAgICAgIHRydWUgPT4gcmV0
dXJuIE9rKCgpKSwKPj4gKyAgICAgICAgICAgICAgICB0cnVlID0+IHJldHVybiBPayhmYWxzZSks
Cj4+ICAgICAgICAgICAgICAgICAgIGZhbHNlID0+IHsKPj4gICAgICAgICAgICAgICAgICAgICAg
IGJhaWwhKCJ7fSAodHJ5IC0tc2tpcC1lMmJpZy14YXR0cikiLCBFcnJubzo6RTJCSUcudG9fc3Ry
aW5nKCkpOwo+PiAgICAgICAgICAgICAgICAgICB9Cj4+ICAgICAgICAgICAgICAgfTsKPj4gICAg
ICAgICAgIH0KPj4gLSAgICAgICAgRXJyKEVycm5vOjpFQkFERikgPT4gcmV0dXJuIE9rKCgpKSwg
Ly8gc3ltbGlua3MKPj4gKyAgICAgICAgRXJyKEVycm5vOjpFQkFERikgPT4gcmV0dXJuIE9rKGZh
bHNlKSwgLy8gc3ltbGlua3MKPj4gKyAgICAgICAgRXJyKEVycm5vOjpFU1RBTEUpID0+IHJldHVy
biBPayh0cnVlKSwKPiAKPiBzZWUgYWJvdmUKPiAKPj4gICAgICAgICAgIEVycihlcnIpID0+IHJl
dHVybiBFcnIoZXJyKS5jb250ZXh0KCJmYWlsZWQgdG8gcmVhZCB4YXR0cnMiKSwKPj4gICAgICAg
fTsKPj4gICAKPj4gICAgICAgZm9yIGF0dHIgaW4gJnhhdHRycyB7Cj4+ICAgICAgICAgICBpZiB4
YXR0cjo6aXNfc2VjdXJpdHlfY2FwYWJpbGl0eShhdHRyKSB7Cj4+IC0gICAgICAgICAgICBnZXRf
ZmNhcHMobWV0YSwgZmQsIGZsYWdzLCBmc19mZWF0dXJlX2ZsYWdzKT87Cj4+ICsgICAgICAgICAg
ICBpZiBnZXRfZmNhcHMobWV0YSwgZmQsIGZsYWdzLCBmc19mZWF0dXJlX2ZsYWdzKT8gewo+PiAr
ICAgICAgICAgICAgICAgIHJldHVybiBPayh0cnVlKTsKPiAKPiBzZWUgYWJvdmUKPiAKPj4gKyAg
ICAgICAgICAgIH0KPj4gICAgICAgICAgICAgICBjb250aW51ZTsKPj4gICAgICAgICAgIH0KPj4g
ICAKPj4gQEAgLTE1MDUsMzUgKzE1MzEsMzcgQEAgZm4gZ2V0X3hhdHRyX2ZjYXBzX2FjbCgKPj4g
ICAgICAgICAgICAgICBFcnIoRXJybm86OkVCQURGKSA9PiAoKSwgICAvLyBzeW1saW5rcywgc2hv
dWxkbid0IGJlIGFibGUgdG8gcmVhY2ggdGhpcyBlaXRoZXIKPj4gICAgICAgICAgICAgICBFcnIo
RXJybm86OkUyQklHKSA9PiB7Cj4+ICAgICAgICAgICAgICAgICAgIG1hdGNoIHNraXBfZTJiaWdf
eGF0dHIgewo+PiAtICAgICAgICAgICAgICAgICAgICB0cnVlID0+IHJldHVybiBPaygoKSksCj4+
ICsgICAgICAgICAgICAgICAgICAgIHRydWUgPT4gcmV0dXJuIE9rKGZhbHNlKSwKPj4gICAgICAg
ICAgICAgICAgICAgICAgIGZhbHNlID0+IHsKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICBi
YWlsISgie30gKHRyeSAtLXNraXAtZTJiaWcteGF0dHIpIiwgRXJybm86OkUyQklHLnRvX3N0cmlu
ZygpKTsKPj4gICAgICAgICAgICAgICAgICAgICAgIH0KPj4gICAgICAgICAgICAgICAgICAgfTsK
Pj4gICAgICAgICAgICAgICB9Cj4+ICsgICAgICAgICAgICBFcnIoRXJybm86OkVTVEFMRSkgPT4g
cmV0dXJuIE9rKHRydWUpLCAvLyBzeW1saW5rcwo+IAo+IHNhbWUgaGVyZSAoYW5kIHN0cmF5IGNv
cHktcGFzdGUgY29tbWVudCBJIGd1ZXNzPykKPiAKPj4gICAgICAgICAgICAgICBFcnIoZXJyKSA9
PiB7Cj4+ICAgICAgICAgICAgICAgICAgIHJldHVybiBFcnIoZXJyKS5jb250ZXh0KGZvcm1hdCEo
ImVycm9yIHJlYWRpbmcgZXh0ZW5kZWQgYXR0cmlidXRlIHthdHRyOj99IikpCj4+ICAgICAgICAg
ICAgICAgfQo+PiAgICAgICAgICAgfQo+PiAgICAgICB9Cj4+ICAgCj4+IC0gICAgT2soKCkpCj4+
ICsgICAgT2soZmFsc2UpCj4+ICAgfQo+PiAgIAo+PiAtZm4gZ2V0X2NoYXR0cihtZXRhZGF0YTog
Jm11dCBNZXRhZGF0YSwgZmQ6IFJhd0ZkKSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7Cj4+ICtmbiBn
ZXRfY2hhdHRyKG1ldGFkYXRhOiAmbXV0IE1ldGFkYXRhLCBmZDogUmF3RmQpIC0+IFJlc3VsdDxi
b29sLCBFcnJvcj4gewo+PiAgICAgICBsZXQgbXV0IGF0dHI6IGxpYmM6OmNfbG9uZyA9IDA7Cj4+
ICAgCj4+ICAgICAgIG1hdGNoIHVuc2FmZSB7IGZzOjpyZWFkX2F0dHJfZmQoZmQsICZtdXQgYXR0
cikgfSB7Cj4+ICAgICAgICAgICBPayhfKSA9PiAoKSwKPj4gKyAgICAgICAgRXJyKEVycm5vOjpF
U1RBTEUpID0+IHJldHVybiBPayh0cnVlKSwKPj4gICAgICAgICAgIEVycihlcnJubykgaWYgZXJy
bm9faXNfdW5zdXBwb3J0ZWQoZXJybm8pID0+IHsKPj4gLSAgICAgICAgICAgIHJldHVybiBPaygo
KSk7Cj4+ICsgICAgICAgICAgICByZXR1cm4gT2soZmFsc2UpOwo+PiAgICAgICAgICAgfQo+PiAg
ICAgICAgICAgRXJyKGVycikgPT4gcmV0dXJuIEVycihlcnIpLmNvbnRleHQoImZhaWxlZCB0byBy
ZWFkIGZpbGUgYXR0cmlidXRlcyIpLAo+PiAgICAgICB9Cj4+ICAgCj4+ICAgICAgIG1ldGFkYXRh
LnN0YXQuZmxhZ3MgfD0gRmxhZ3M6OmZyb21fY2hhdHRyKGF0dHIpLmJpdHMoKTsKPj4gICAKPj4g
LSAgICBPaygoKSkKPj4gKyAgICBPayhmYWxzZSkKPj4gICB9Cj4+ICAgCj4+ICAgZm4gZ2V0X2Zh
dF9hdHRyKG1ldGFkYXRhOiAmbXV0IE1ldGFkYXRhLCBmZDogUmF3RmQsIGZzX21hZ2ljOiBpNjQp
IC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKPj4gQEAgLTE1NjQsMzAgKzE1OTIsMzQgQEAgZm4gZ2V0
X3F1b3RhX3Byb2plY3RfaWQoCj4+ICAgICAgIGZkOiBSYXdGZCwKPj4gICAgICAgZmxhZ3M6IEZs
YWdzLAo+PiAgICAgICBtYWdpYzogaTY0LAo+PiAtKSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7Cj4+
ICspIC0+IFJlc3VsdDxib29sLCBFcnJvcj4gewo+IAo+IHNlZSBhYm92ZQo+IAo+PiAgICAgICBp
ZiAhKG1ldGFkYXRhLmlzX2RpcigpIHx8IG1ldGFkYXRhLmlzX3JlZ3VsYXJfZmlsZSgpKSB7Cj4+
IC0gICAgICAgIHJldHVybiBPaygoKSk7Cj4+ICsgICAgICAgIHJldHVybiBPayhmYWxzZSk7Cj4+
ICAgICAgIH0KPj4gICAKPj4gICAgICAgaWYgIWZsYWdzLmNvbnRhaW5zKEZsYWdzOjpXSVRIX1FV
T1RBX1BST0pJRCkgewo+PiAtICAgICAgICByZXR1cm4gT2soKCkpOwo+PiArICAgICAgICByZXR1
cm4gT2soZmFsc2UpOwo+PiAgICAgICB9Cj4+ICAgCj4+ICAgICAgIHVzZSBwcm94bW94X3N5czo6
bGludXg6Om1hZ2ljOjoqOwo+PiAgIAo+PiAgICAgICBtYXRjaCBtYWdpYyB7Cj4+ICAgICAgICAg
ICBFWFQ0X1NVUEVSX01BR0lDIHwgWEZTX1NVUEVSX01BR0lDIHwgRlVTRV9TVVBFUl9NQUdJQyB8
IFpGU19TVVBFUl9NQUdJQyA9PiAoKSwKPj4gLSAgICAgICAgXyA9PiByZXR1cm4gT2soKCkpLAo+
PiArICAgICAgICBfID0+IHJldHVybiBPayhmYWxzZSksCj4+ICAgICAgIH0KPj4gICAKPj4gICAg
ICAgbGV0IG11dCBmc3hhdHRyID0gZnM6OkZTWEF0dHI6OmRlZmF1bHQoKTsKPj4gICAgICAgbGV0
IHJlcyA9IHVuc2FmZSB7IGZzOjpmc19pb2NfZnNnZXR4YXR0cihmZCwgJm11dCBmc3hhdHRyKSB9
Owo+PiAgIAo+PiArICAgIGlmIGxldCBFcnIoRXJybm86OkVTVEFMRSkgPSByZXMgewo+PiArICAg
ICAgICByZXR1cm4gT2sodHJ1ZSk7Cj4+ICsgICAgfQo+PiArCj4+ICAgICAgIC8vIE9uIHNvbWUg
RlVTRSBmaWxlc3lzdGVtcyBpdCBjYW4gaGFwcGVuIHRoYXQgaW9jdGwgaXMgbm90IHN1cHBvcnRl
ZC4KPj4gICAgICAgLy8gRm9yIHRoZXNlIGNhc2VzIHByb2ppZCBpcyBzZXQgdG8gMCB3aGlsZSB0
aGUgZXJyb3IgaXMgaWdub3JlZC4KPj4gICAgICAgaWYgbGV0IEVycihlcnJubykgPSByZXMgewo+
PiAgICAgICAgICAgaWYgZXJybm9faXNfdW5zdXBwb3J0ZWQoZXJybm8pIHsKPj4gLSAgICAgICAg
ICAgIHJldHVybiBPaygoKSk7Cj4+ICsgICAgICAgICAgICByZXR1cm4gT2soZmFsc2UpOwo+PiAg
ICAgICAgICAgfSBlbHNlIHsKPj4gICAgICAgICAgICAgICByZXR1cm4gRXJyKGVycm5vKS5jb250
ZXh0KCJlcnJvciB3aGlsZSByZWFkaW5nIHF1b3RhIHByb2plY3QgaWQiKTsKPj4gICAgICAgICAg
IH0KPj4gQEAgLTE1OTcsNyArMTYyOSw3IEBAIGZuIGdldF9xdW90YV9wcm9qZWN0X2lkKAo+PiAg
ICAgICBpZiBwcm9qaWQgIT0gMCB7Cj4+ICAgICAgICAgICBtZXRhZGF0YS5xdW90YV9wcm9qZWN0
X2lkID0gU29tZShweGFyOjpmb3JtYXQ6OlF1b3RhUHJvamVjdElkIHsgcHJvamlkIH0pOwo+PiAg
ICAgICB9Cj4+IC0gICAgT2soKCkpCj4+ICsgICAgT2soZmFsc2UpCj4+ICAgfQo+PiAgIAo+PiAg
IGZuIGdldF9hY2woCj4+IEBAIC0xODQwLDcgKzE4NzIsNyBAQCBtb2QgdGVzdHMgewo+PiAgICAg
ICAgICAgbGV0IGZzX21hZ2ljID0gZGV0ZWN0X2ZzX3R5cGUoZGlyLmFzX3Jhd19mZCgpKS51bndy
YXAoKTsKPj4gICAgICAgICAgIGxldCBzdGF0ID0gbml4OjpzeXM6OnN0YXQ6OmZzdGF0KGRpci5h
c19yYXdfZmQoKSkudW53cmFwKCk7Cj4+ICAgICAgICAgICBsZXQgbXV0IGZzX2ZlYXR1cmVfZmxh
Z3MgPSBGbGFnczo6ZnJvbV9tYWdpYyhmc19tYWdpYyk7Cj4+IC0gICAgICAgIGxldCBtZXRhZGF0
YSA9IGdldF9tZXRhZGF0YSgKPj4gKyAgICAgICAgbGV0IChtZXRhZGF0YSwgXykgPSBnZXRfbWV0
YWRhdGEoCj4gCj4gbm8gdXNlIG9mIHRoZSBuZXcgcmV0dXJuIHZhbHVlCj4gCj4+ICAgICAgICAg
ICAgICAgZGlyLmFzX3Jhd19mZCgpLAo+PiAgICAgICAgICAgICAgICZzdGF0LAo+PiAgICAgICAg
ICAgICAgIGZzX2ZlYXR1cmVfZmxhZ3MsCj4+IEBAIC0xOTM3LDcgKzE5NjksNyBAQCBtb2QgdGVz
dHMgewo+PiAgICAgICAgICAgICAgIGxldCBzdGF0ID0gbml4OjpzeXM6OnN0YXQ6OmZzdGF0KHNv
dXJjZV9kaXIuYXNfcmF3X2ZkKCkpLnVud3JhcCgpOwo+PiAgICAgICAgICAgICAgIGxldCBtdXQg
ZnNfZmVhdHVyZV9mbGFncyA9IEZsYWdzOjpmcm9tX21hZ2ljKGZzX21hZ2ljKTsKPj4gICAKPj4g
LSAgICAgICAgICAgIGxldCBtZXRhZGF0YSA9IGdldF9tZXRhZGF0YSgKPj4gKyAgICAgICAgICAg
IGxldCAobWV0YWRhdGEsIF8pID0gZ2V0X21ldGFkYXRhKAo+IAo+IG5vIHVzZSBlaXRoZXIuLiBz
byB3b3VsZG4ndCBpdCBtYWtlIG1vcmUgc2Vuc2UgdG8gcGFzcyBpbiBhIHBhdGggYW5kIGxvZwo+
IHRoZSBjb250ZXh0IHJpZ2h0IGluIGdldF9tZXRhZGF0YT8gb3IgdHJlYXQgdGhlIHN0YWxlIEZE
IGFzIGFuIGVycm9yLAo+IGFuZCBhZGQgdGhlIGNvbnRleHQvcGF0aCBhcyBwYXJ0IG9mIGVycm9y
IGhhbmRsaW5nPwoKVGhlIGZpcnN0IGFwcHJvYWNoIHNlZW1zIGJldHRlciwgd2lsbCBob3dldmVy
IG5vdCBoZWxwIHRvIGRpZmZlcmVudGlhdGUgCnRoZSAoaGFyZCkgZXJyb3JzIGZyb20gdGhlIHNv
ZnQgZXJyb3IgRVNUQUxFLCB3aGljaCByZXF1aXJlcyB0byBza2lwIApvdmVyIGVudHJpZXMgYXQg
dGhlIGBnZXRfbWV0YWRhdGFgIGNhbGwgc2lkZSBjb25kaXRpb25hbGx5LgoKUmV0dXJuaW5nIHRo
ZSBzdGFsZSBmaWxlIGhhbmRsZSBlcnJvciBhcyBgQW55aG93OjpFcnJvcmAgYWxzbyBkb2VzIG5v
dCAKYWxsb3cgdG8gZGlzdGluZ3Vpc2ggZnJvbSBvdGhlciAoaGFyZCkgZXJyb3JzLCBzbyBhZ2Fp
biBpdCBjYW5ub3QgYmUgCmhhbmRsZWQgYXMgc29mdCBlcnJvciBhdCB0aGUgY2FsbCBzaXRlLgoK
QW5kIHJldHVybmluZyBhbGwgZXJyb3JzIGFzIGBFcnJub2AgaGFzIHRoZSBsb3NzIG9mIGVycm9y
IGNvbnRleHQgaXNzdWUgCmFzIGRlc2NyaWJlZCBhYm92ZS4KCkkgd2lsbCBzZWUgaWYgSSBjYW4g
Y292ZXIgdGhpcyBiZXR0ZXIgYnkgcmVmYWN0b3JpbmcgdGhlIGNvZGUsIGFzIG1vc3QgCm9mIHRo
ZSBoZWxwZXJzIGhhdmUgYSBzaW5nbGUgY2FsbCBzaWRlLCBzbyBpdCBzaG91bGQgYmUgcG9zc2li
bGUgdG8gCnJlb3JnYW5pemUgd2l0aG91dCBtdWNoIHNpZGUgZWZmZWN0cy4KCj4gCj4gdGhlIGZv
dXIgY2FsbCBzaXRlcyBhcmU6Cj4gLSB0d28gcmVsYXRlZCB0byB0ZXN0cywgd2UgY2FuIHByb2Jh
Ymx5IHRyZWF0IEVTVEFMRSBhcyBoYXJkIGVycm9yIHRoZXJlCj4gLSB0aGUgb25lIGZvciBvYnRh
aW5pbmcgdGhlIG1ldGFkYXRhIG9mIHRoZSBzb3VyY2UgZGlyIG9mIHRoZSBhcmNoaXZlLAo+ICAg
IGlmIHRoYXQgaXMgc3RhbGUgd2UgY2FuJ3QgY3JlYXRlIGFuIGFyY2hpdmUgLT4gaGFyZCBlcnJv
ciBhcyB3ZWxsCj4gLSBhZGRpbmcgYW4gZW50cnk6IGZvciB0aGUgc3RhbGUgY2FzZSwgd2UgYWxy
ZWFkeSBsb2cgYSB3YXJuaW5nIGFuZAo+ICAgIHByb2NlZWQgd2l0aCB0aGUgbmV4dCBlbnRyeSwg
c28gd2UgZG9uJ3QgYmVuZWZpdCBmcm9tIHRoZSBmYWN0IHRoYXQKPiAgICAoaW5jb21wbGV0ZSkg
bWV0YWRhdGEgYW5kIHRoZSBzdGFsZW5lc3MgaXMgcmV0dXJuZWQsIGFzIG9wcG9zZWQgdG8KPiAg
ICBqdXN0IHRyZWF0aW5nIEVTVEFMRSBhcyBhbiBlcnJvciB0aGF0IHdlIGNhbiAiY2F0Y2giIGFu
ZCBoYW5kbGUuLgo+IAo+PiAgICAgICAgICAgICAgICAgICBzb3VyY2VfZGlyLmFzX3Jhd19mZCgp
LAo+PiAgICAgICAgICAgICAgICAgICAmc3RhdCwKPj4gICAgICAgICAgICAgICAgICAgZnNfZmVh
dHVyZV9mbGFncywKPj4gLS0gCj4+IDIuMzkuNQo+Pgo+Pgo+Pgo+PiBfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBwYnMtZGV2ZWwgbWFpbGluZyBsaXN0
Cj4+IHBicy1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQo+PiBodHRwczovL2xpc3RzLnByb3htb3gu
Y29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wYnMtZGV2ZWwKPj4KPj4KPj4KPiAKPiAKPiBf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IHBicy1kZXZl
bCBtYWlsaW5nIGxpc3QKPiBwYnMtZGV2ZWxAbGlzdHMucHJveG1veC5jb20KPiBodHRwczovL2xp
c3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wYnMtZGV2ZWwKPiAKPiAK
CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KcGJzLWRl
dmVsIG1haWxpbmcgbGlzdApwYnMtZGV2ZWxAbGlzdHMucHJveG1veC5jb20KaHR0cHM6Ly9saXN0
cy5wcm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vcGJzLWRldmVsCg==