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 AC1A41FF15E
	for <inbox@lore.proxmox.com>; Tue,  6 May 2025 11:11:08 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 0887B53CB;
	Tue,  6 May 2025 11:11:24 +0200 (CEST)
From: =?UTF-8?q?Lauren=C8=9Biu=20Leahu-Vl=C4=83ducu?=
 <l.leahu-vladucu@proxmox.com>
To: pve-devel@lists.proxmox.com
Date: Tue,  6 May 2025 11:09:26 +0200
Message-Id: <20250506090926.71508-1-l.leahu-vladucu@proxmox.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
X-SPAM-LEVEL: Spam detection results:  0
 AWL 0.109 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: [pve-devel] [PATCH proxmox-offline-mirror] Add possibility to
 create named snapshots
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>

SW4gYWRkaXRpb24gdG8gdGhlIGV4aXN0aW5nIHRpbWVkIHNuYXBzaG90cywgaXQgaXMgbm93IHBv
c3NpYmxlIHRvCmNyZWF0ZSBuYW1lZCBzbmFwc2hvdHMuIEZvciBzb21lIHVzZSBjYXNlcywgaXQg
bWFrZXMgc2Vuc2UgdG8gZ2l2ZQpzbmFwc2hvdHMgYSBzcGVjaWZpYyBuYW1lLCBlLmcuIHRvIHNw
ZWNpZnkgdGhlIHB1cnBvc2Ugb2YgdGhlIHNuYXBzaG90CihpbnN0ZWFkIG9mIGEgdGltZXN0YW1w
KS4gVGhpcyBjYW4gYmUgdXNlZnVsIHdoZW4gZGVwbG95aW5nIHNuYXBzaG90cwpjcmVhdGVkIGZv
ciBhIGNlcnRhaW4gcHVycG9zZSAoZm9yIGV4YW1wbGUsIGZ1cnRoZXIgdGVzdGluZykuCgpQYXJ0
aWFsbHkgZml4ZXMgIzYyNTIKClNpZ25lZC1vZmYtYnk6IExhdXJlbsibaXUgTGVhaHUtVmzEg2R1
Y3UgPGwubGVhaHUtdmxhZHVjdUBwcm94bW94LmNvbT4KLS0tCiBzcmMvYmluL3Byb3htb3gtb2Zm
bGluZS1taXJyb3ItaGVscGVyLnJzICAgICAgfCAgNiArLQogc3JjL2Jpbi9wcm94bW94X29mZmxp
bmVfbWlycm9yX2NtZHMvbWlycm9yLnJzIHwgMzIgKysrKysrKystLS0KIHNyYy9tZWRpdW0ucnMg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBzcmMvbWlycm9yLnJzICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA1NiArKysrKysrKysrKysrKystLS0tCiBz
cmMvdHlwZXMucnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA1MiArKysrKysr
KysrKysrLS0tLQogNSBmaWxlcyBjaGFuZ2VkLCAxMTcgaW5zZXJ0aW9ucygrKSwgMzMgZGVsZXRp
b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wcm94bW94LW9mZmxpbmUtbWlycm9yLWhlbHBl
ci5ycyBiL3NyYy9iaW4vcHJveG1veC1vZmZsaW5lLW1pcnJvci1oZWxwZXIucnMKaW5kZXggNzkx
MWQ1Mi4uYTAwZDI2ZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wcm94bW94LW9mZmxpbmUtbWlycm9y
LWhlbHBlci5ycworKysgYi9zcmMvYmluL3Byb3htb3gtb2ZmbGluZS1taXJyb3ItaGVscGVyLnJz
CkBAIC0xNTEsOCArMTUxLDggQEAgYXN5bmMgZm4gc2V0dXAoX3BhcmFtOiBWYWx1ZSkgLT4gUmVz
dWx0PCgpLCBFcnJvcj4gewogICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZF9taXJyb3IgPSBy
ZWFkX3NlbGVjdGlvbl9mcm9tX3R0eSgiU2VsZWN0IG1pcnJvciIsICZtaXJyb3JzLCBOb25lKT87
CiAgICAgICAgICAgICAgICAgbGV0IHNuYXBzaG90czogVmVjPChTbmFwc2hvdCwgU3RyaW5nKT4g
PQogICAgICAgICAgICAgICAgICAgICBtZWRpdW06Omxpc3Rfc25hcHNob3RzKG1vdW50cG9pbnQs
IHNlbGVjdGVkX21pcnJvcik/Ci0gICAgICAgICAgICAgICAgICAgICAgICAuaW50b19pdGVyKCkK
LSAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAofHN8IChzLCBzLnRvX3N0cmluZygpKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIC5pdGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgIC5t
YXAofHN8IChzLmNsb25lKCksIHMudG9fc3RyaW5nKCkpKQogICAgICAgICAgICAgICAgICAgICAg
ICAgLmNvbGxlY3QoKTsKICAgICAgICAgICAgICAgICBpZiBzbmFwc2hvdHMuaXNfZW1wdHkoKSB7
CiAgICAgICAgICAgICAgICAgICAgIHByaW50bG4hKCJNaXJyb3IgZG9lc24ndCBoYXZlIGFueSBz
eW5jZWQgc25hcHNob3RzLiIpOwpAQCAtMTczLDcgKzE3Myw3IEBAIGFzeW5jIGZuIHNldHVwKF9w
YXJhbTogVmFsdWUpIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKICAgICAgICAgICAgICAgICAgICAg
c2VsZWN0ZWRfbWlycm9yLnRvX3N0cmluZygpLAogICAgICAgICAgICAgICAgICAgICAoCiAgICAg
ICAgICAgICAgICAgICAgICAgICBzdGF0ZS5taXJyb3JzLmdldCgqc2VsZWN0ZWRfbWlycm9yKS51
bndyYXAoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICoqc2VsZWN0ZWRfc25hcHNob3QsCisg
ICAgICAgICAgICAgICAgICAgICAgICAoKipzZWxlY3RlZF9zbmFwc2hvdCkuY2xvbmUoKSwKICAg
ICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvc3JjL2Jpbi9wcm94bW94X29mZmxpbmVfbWlycm9yX2NtZHMvbWlycm9yLnJz
IGIvc3JjL2Jpbi9wcm94bW94X29mZmxpbmVfbWlycm9yX2NtZHMvbWlycm9yLnJzCmluZGV4IDMx
YTU2NWUuLjdlYmEwNGQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHJveG1veF9vZmZsaW5lX21pcnJv
cl9jbWRzL21pcnJvci5ycworKysgYi9zcmMvYmluL3Byb3htb3hfb2ZmbGluZV9taXJyb3JfY21k
cy9taXJyb3IucnMKQEAgLTE3LDcgKzE3LDcgQEAgdXNlIHByb3htb3hfc2NoZW1hOjphcGk7CiB1
c2UgcHJveG1veF9vZmZsaW5lX21pcnJvcjo6ewogICAgIGNvbmZpZzo6e01pcnJvckNvbmZpZywg
U3Vic2NyaXB0aW9uS2V5fSwKICAgICBtaXJyb3IsCi0gICAgdHlwZXM6OntNSVJST1JfSURfU0NI
RU1BLCBTbmFwc2hvdH0sCisgICAgdHlwZXM6OntNSVJST1JfSURfU0NIRU1BLCBOQU1FRF9TTkFQ
U0hPVF9TQ0hFTUEsIFNuYXBzaG90fSwKIH07CiAKIHVzZSBzdXBlcjo6Z2V0X2NvbmZpZ19wYXRo
OwpAQCAtNjAsNiArNjAsMTAgQEAgZm4gZ2V0X3N1YnNjcmlwdGlvbl9rZXkoCiAgICAgICAgICAg
ICBpZDogewogICAgICAgICAgICAgICAgIHNjaGVtYTogTUlSUk9SX0lEX1NDSEVNQSwKICAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICBuYW1lOiB7CisgICAgICAgICAgICAgICAgc2NoZW1hOiBO
QU1FRF9TTkFQU0hPVF9TQ0hFTUEsCisgICAgICAgICAgICAgICAgb3B0aW9uYWw6IHRydWUsCisg
ICAgICAgICAgICB9LAogICAgICAgICAgICAgImRyeS1ydW4iOiB7CiAgICAgICAgICAgICAgICAg
dHlwZTogYm9vbCwKICAgICAgICAgICAgICAgICBvcHRpb25hbDogdHJ1ZSwKQEAgLTczLDYgKzc3
LDcgQEAgZm4gZ2V0X3N1YnNjcmlwdGlvbl9rZXkoCiBhc3luYyBmbiBjcmVhdGVfc25hcHNob3Qo
CiAgICAgY29uZmlnOiBPcHRpb248U3RyaW5nPiwKICAgICBpZDogU3RyaW5nLAorICAgIG5hbWU6
IE9wdGlvbjxTdHJpbmc+LAogICAgIGRyeV9ydW46IGJvb2wsCiAgICAgX3BhcmFtOiBWYWx1ZSwK
ICkgLT4gUmVzdWx0PCgpLCBFcnJvcj4gewpAQCAtODMsMTIgKzg4LDEyIEBAIGFzeW5jIGZuIGNy
ZWF0ZV9zbmFwc2hvdCgKIAogICAgIGxldCBzdWJzY3JpcHRpb24gPSBnZXRfc3Vic2NyaXB0aW9u
X2tleSgmc2VjdGlvbl9jb25maWcsICZjb25maWcpPzsKIAotICAgIHByb3htb3hfb2ZmbGluZV9t
aXJyb3I6Om1pcnJvcjo6Y3JlYXRlX3NuYXBzaG90KAotICAgICAgICBjb25maWcsCi0gICAgICAg
ICZTbmFwc2hvdDo6bm93KCksCi0gICAgICAgIHN1YnNjcmlwdGlvbiwKLSAgICAgICAgZHJ5X3J1
biwKLSAgICApPzsKKyAgICBsZXQgc25hcHNob3QgPSBtYXRjaCAmbmFtZSB7CisgICAgICAgIFNv
bWUobmFtZSkgPT4gU25hcHNob3Q6OndpdGhfbmFtZSgmbmFtZSksCisgICAgICAgIE5vbmUgPT4g
U25hcHNob3Q6Om5vdygpLAorICAgIH07CisKKyAgICBwcm94bW94X29mZmxpbmVfbWlycm9yOjpt
aXJyb3I6OmNyZWF0ZV9zbmFwc2hvdChjb25maWcsICZzbmFwc2hvdCwgc3Vic2NyaXB0aW9uLCBk
cnlfcnVuKT87CiAKICAgICBPaygoKSkKIH0KQEAgLTEwMSw2ICsxMDYsMTAgQEAgYXN5bmMgZm4g
Y3JlYXRlX3NuYXBzaG90KAogICAgICAgICAgICAgICAgIG9wdGlvbmFsOiB0cnVlLAogICAgICAg
ICAgICAgICAgIGRlc2NyaXB0aW9uOiAiUGF0aCB0byBtaXJyb3JpbmcgY29uZmlnIGZpbGUuIiwK
ICAgICAgICAgICAgIH0sCisgICAgICAgICAgICBuYW1lOiB7CisgICAgICAgICAgICAgICAgc2No
ZW1hOiBOQU1FRF9TTkFQU0hPVF9TQ0hFTUEsCisgICAgICAgICAgICAgICAgb3B0aW9uYWw6IHRy
dWUsCisgICAgICAgICAgICB9LAogICAgICAgICAgICAgImRyeS1ydW4iOiB7CiAgICAgICAgICAg
ICAgICAgdHlwZTogYm9vbCwKICAgICAgICAgICAgICAgICBvcHRpb25hbDogdHJ1ZSwKQEAgLTEx
NCw2ICsxMjMsNyBAQCBhc3luYyBmbiBjcmVhdGVfc25hcHNob3QoCiAvLy8gZnJvbSBvcmlnaW5h
bCByZXBvc2l0b3J5LgogYXN5bmMgZm4gY3JlYXRlX3NuYXBzaG90cygKICAgICBjb25maWc6IE9w
dGlvbjxTdHJpbmc+LAorICAgIG5hbWU6IE9wdGlvbjxTdHJpbmc+LAogICAgIGRyeV9ydW46IGJv
b2wsCiAgICAgX3BhcmFtOiBWYWx1ZSwKICkgLT4gUmVzdWx0PCgpLCBFcnJvcj4gewpAQCAtMTM1
LDkgKzE0NSwxNSBAQCBhc3luYyBmbiBjcmVhdGVfc25hcHNob3RzKAogICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICAgICAgfQogICAgICAgICB9OworCisgICAgICAgIGxldCBzbmFw
c2hvdCA9IG1hdGNoICZuYW1lIHsKKyAgICAgICAgICAgIFNvbWUobmFtZSkgPT4gU25hcHNob3Q6
OndpdGhfbmFtZSgmbmFtZSksCisgICAgICAgICAgICBOb25lID0+IFNuYXBzaG90Ojpub3coKSwK
KyAgICAgICAgfTsKKwogICAgICAgICBsZXQgcmVzID0gcHJveG1veF9vZmZsaW5lX21pcnJvcjo6
bWlycm9yOjpjcmVhdGVfc25hcHNob3QoCiAgICAgICAgICAgICBtaXJyb3IsCi0gICAgICAgICAg
ICAmU25hcHNob3Q6Om5vdygpLAorICAgICAgICAgICAgJnNuYXBzaG90LAogICAgICAgICAgICAg
c3Vic2NyaXB0aW9uLAogICAgICAgICAgICAgZHJ5X3J1biwKICAgICAgICAgKTsKZGlmZiAtLWdp
dCBhL3NyYy9tZWRpdW0ucnMgYi9zcmMvbWVkaXVtLnJzCmluZGV4IGJlZjZjYzcuLmEyZTJlZTQg
MTAwNjQ0Ci0tLSBhL3NyYy9tZWRpdW0ucnMKKysrIGIvc3JjL21lZGl1bS5ycwpAQCAtMTgsNyAr
MTgsNyBAQCB1c2UgY3JhdGU6OnsKICAgICBnZW5lcmF0ZV9yZXBvX2ZpbGVfbGluZSwKICAgICBt
aXJyb3I6OnBvb2wsCiAgICAgcG9vbDo6UG9vbCwKLSAgICB0eXBlczo6e0RpZmYsIFNOQVBTSE9U
X1JFR0VYLCBTbmFwc2hvdH0sCisgICAgdHlwZXM6OntDT01CSU5FRF9TTkFQU0hPVF9SRUdFWCwg
RGlmZiwgU25hcHNob3R9LAogfTsKICNbZGVyaXZlKENsb25lLCBEZWJ1ZywgU2VyaWFsaXplLCBE
ZXNlcmlhbGl6ZSldCiAjW3NlcmRlKHJlbmFtZV9hbGwgPSAia2ViYWItY2FzZSIpXQpAQCAtMTYy
LDcgKzE2Miw3IEBAIHB1YiBmbiBsaXN0X3NuYXBzaG90cyhtZWRpdW1fYmFzZTogJlBhdGgsIG1p
cnJvcjogJnN0cikgLT4gUmVzdWx0PFZlYzxTbmFwc2hvdD4sCiAgICAgcHJveG1veF9zeXM6OmZz
OjpzY2FuZGlyKAogICAgICAgICBsaWJjOjpBVF9GRENXRCwKICAgICAgICAgJm1pcnJvcl9iYXNl
LAotICAgICAgICAmU05BUFNIT1RfUkVHRVgsCisgICAgICAgICZDT01CSU5FRF9TTkFQU0hPVF9S
RUdFWCwKICAgICAgICAgfF9sMl9mZCwgc25hcHNob3QsIGZpbGVfdHlwZXwgewogICAgICAgICAg
ICAgaWYgZmlsZV90eXBlICE9IG5peDo6ZGlyOjpUeXBlOjpEaXJlY3RvcnkgewogICAgICAgICAg
ICAgICAgIHJldHVybiBPaygoKSk7CmRpZmYgLS1naXQgYS9zcmMvbWlycm9yLnJzIGIvc3JjL21p
cnJvci5ycwppbmRleCBjODhmODFkLi4yYWVmNjkxIDEwMDY0NAotLS0gYS9zcmMvbWlycm9yLnJz
CisrKyBiL3NyYy9taXJyb3IucnMKQEAgLTExLDE0ICsxMSwxNCBAQCB1c2UgZ2xvYnNldDo6e0ds
b2IsIEdsb2JTZXQsIEdsb2JTZXRCdWlsZGVyfTsKIHVzZSBuaXg6OmxpYmM7CiB1c2UgcHJveG1v
eF9odHRwOjp7SHR0cENsaWVudCwgSHR0cE9wdGlvbnMsIFByb3h5Q29uZmlnLCBjbGllbnQ6OnN5
bmM6OkNsaWVudH07CiB1c2UgcHJveG1veF9zY2hlbWE6OntBcGlUeXBlLCBTY2hlbWF9OwotdXNl
IHByb3htb3hfc3lzOjpmczo6ZmlsZV9nZXRfY29udGVudHM7Cit1c2UgcHJveG1veF9zeXM6OmZz
Ojp7Q3JlYXRlT3B0aW9ucywgZmlsZV9nZXRfY29udGVudHN9OwogCiB1c2UgY3JhdGU6OnsKICAg
ICBGZXRjaFJlc3VsdCwgUHJvZ3Jlc3MsCiAgICAgY29uZmlnOjp7TWlycm9yQ29uZmlnLCBTa2lw
Q29uZmlnLCBTdWJzY3JpcHRpb25LZXksIFdlYWtDcnlwdG9Db25maWd9LAogICAgIGNvbnZlcnRf
cmVwb19saW5lLAogICAgIHBvb2w6OlBvb2wsCi0gICAgdHlwZXM6OntEaWZmLCBTTkFQU0hPVF9S
RUdFWCwgU25hcHNob3R9LAorICAgIHR5cGVzOjp7Q09NQklORURfU05BUFNIT1RfUkVHRVgsIERp
ZmYsIFNuYXBzaG90fSwKIH07CiAKIHVzZSBwcm94bW94X2FwdDo6ZGViODIyOjp7CkBAIC00NzYs
NyArNDc2LDcgQEAgcHViIGZuIGxpc3Rfc25hcHNob3RzKGNvbmZpZzogJk1pcnJvckNvbmZpZykg
LT4gUmVzdWx0PFZlYzxTbmFwc2hvdD4sIEVycm9yPiB7CiAgICAgcHJveG1veF9zeXM6OmZzOjpz
Y2FuZGlyKAogICAgICAgICBsaWJjOjpBVF9GRENXRCwKICAgICAgICAgJnBhdGgsCi0gICAgICAg
ICZTTkFQU0hPVF9SRUdFWCwKKyAgICAgICAgJkNPTUJJTkVEX1NOQVBTSE9UX1JFR0VYLAogICAg
ICAgICB8X2wyX2ZkLCBzbmFwc2hvdCwgZmlsZV90eXBlfCB7CiAgICAgICAgICAgICBpZiBmaWxl
X3R5cGUgIT0gbml4OjpkaXI6OlR5cGU6OkRpcmVjdG9yeSB7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIE9rKCgpKTsKQEAgLTc5MywxMiArNzkzLDYgQEAgcHViIGZuIGNyZWF0ZV9zbmFwc2hvdCgK
ICAgICAgICAgTm9uZQogICAgIH07CiAKLSAgICBsZXQgbXV0IGNvbmZpZzogUGFyc2VkTWlycm9y
Q29uZmlnID0gY29uZmlnLnRyeV9pbnRvKCk/OwotICAgIGNvbmZpZy5hdXRoID0gYXV0aDsKLQot
ICAgIGxldCBwcmVmaXggPSBmb3JtYXQhKCJ7c25hcHNob3R9LnRtcCIpOwotICAgIGxldCBwcmVm
aXggPSBQYXRoOjpuZXcoJnByZWZpeCk7Ci0KICAgICBsZXQgbXV0IHByb2dyZXNzID0gTWlycm9y
UHJvZ3Jlc3MgewogICAgICAgICB3YXJuaW5nczogVmVjOjpuZXcoKSwKICAgICAgICAgc2tpcF9j
b3VudDogMCwKQEAgLTgwNyw2ICs4MDEsNDIgQEAgcHViIGZuIGNyZWF0ZV9zbmFwc2hvdCgKICAg
ICAgICAgdG90YWw6IFByb2dyZXNzOjpuZXcoKSwKICAgICB9OwogCisgICAgbGV0IG11dCBjb25m
aWc6IFBhcnNlZE1pcnJvckNvbmZpZyA9IGNvbmZpZy50cnlfaW50bygpPzsKKyAgICBjb25maWcu
YXV0aCA9IGF1dGg7CisKKyAgICBsZXQgc25hcHNob3RfcmVsYXRpdmVfcGF0aCA9IHNuYXBzaG90
LnRvX3N0cmluZygpOworICAgIGxldCBzbmFwc2hvdF9yZWxhdGl2ZV9wYXRoID0gUGF0aDo6bmV3
KCZzbmFwc2hvdF9yZWxhdGl2ZV9wYXRoKTsKKyAgICBsZXQgc25hcHNob3RfYWJzb2x1dGVfcGF0
aCA9IGNvbmZpZy5wb29sLmdldF9wYXRoKHNuYXBzaG90X3JlbGF0aXZlX3BhdGgpOworCisgICAg
aWYgc25hcHNob3RfYWJzb2x1dGVfcGF0aC5pc19va19hbmQofHBhdGh8IHBhdGguZXhpc3RzKCkp
IHsKKyAgICAgICAgaWYgZHJ5X3J1biB7CisgICAgICAgICAgICBsZXQgbXNnID0gIldBUk5JTkc6
IHNuYXBzaG90IHtzbmFwc2hvdH0gYWxyZWFkeSBleGlzdHMhIENvbnRpbnVpbmcgZHVlIHRvIGRy
eSBydW4uLi4iOworICAgICAgICAgICAgZXByaW50bG4hKCJ7bXNnfSIpOworICAgICAgICAgICAg
cHJvZ3Jlc3Mud2FybmluZ3MucHVzaChtc2cuaW50bygpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIGJhaWwhKCJTbmFwc2hvdCB7c25hcHNob3R9IGFscmVhZHkgZXhpc3RzISIpOwor
ICAgICAgICB9CisgICAgfQorCisgICAgbGV0IGxvY2tmaWxlX3BhdGggPSBjb25maWcKKyAgICAg
ICAgLnBvb2wKKyAgICAgICAgLmdldF9wYXRoKFBhdGg6Om5ldygmZm9ybWF0ISgiLntzbmFwc2hv
dH0ubG9jayIpKSk7CisKKyAgICBpZiBsZXQgRXJyKGxvY2tmaWxlX2VycikgPSBsb2NrZmlsZV9w
YXRoIHsKKyAgICAgICAgYmFpbCEoImNhbm5vdCBjcmVhdGUgbG9ja2ZpbGUgZm9yIHNuYXBzaG90
IHtzbmFwc2hvdH06IHtsb2NrZmlsZV9lcnJ9Iik7CisgICAgfQorICAgIGxldCBsb2NrZmlsZV9w
YXRoID0gbG9ja2ZpbGVfcGF0aC51bndyYXAoKTsKKworICAgIGxldCBfc25hcHNob3RfbG9jayA9
IHByb3htb3hfc3lzOjpmczo6b3Blbl9maWxlX2xvY2tlZCgKKyAgICAgICAgJmxvY2tmaWxlX3Bh
dGgsCisgICAgICAgIHN0ZDo6dGltZTo6RHVyYXRpb246Om5ldygxMCwgMCksCisgICAgICAgIHRy
dWUsCisgICAgICAgIENyZWF0ZU9wdGlvbnM6OmRlZmF1bHQoKSwKKyAgICApPzsKKworICAgIGxl
dCBwcmVmaXggPSBmb3JtYXQhKCJ7c25hcHNob3R9LnRtcCIpOworICAgIGxldCBwcmVmaXggPSBQ
YXRoOjpuZXcoJnByZWZpeCk7CisKICAgICBsZXQgcGFyc2VfcmVsZWFzZSA9IHxyZXM6IEZldGNo
UmVzdWx0LCBuYW1lOiAmc3RyfCAtPiBSZXN1bHQ8UmVsZWFzZUZpbGUsIEVycm9yPiB7CiAgICAg
ICAgIHByaW50bG4hKCJQYXJzaW5nIHtuYW1lfS4uIik7CiAgICAgICAgIGxldCBwYXJzZWQ6IFJl
bGVhc2VGaWxlID0gcmVzLmRhdGFbLi5dLnRyeV9pbnRvKCk/OwpAQCAtMTA3OCw5ICsxMTA4LDE1
IEBAIHB1YiBmbiBjcmVhdGVfc25hcHNob3QoCiAgICAgaWYgIWRyeV9ydW4gewogICAgICAgICBw
cmludGxuISgiXG5Sb3RhdGluZyB0ZW1wLiBzbmFwc2hvdCBpbi1wbGFjZToge3ByZWZpeDo/fSAt
PiBcIntzbmFwc2hvdH1cIiIpOwogICAgICAgICBsZXQgbG9ja2VkID0gY29uZmlnLnBvb2wubG9j
aygpPzsKLSAgICAgICAgbG9ja2VkLnJlbmFtZShwcmVmaXgsIFBhdGg6Om5ldygmZm9ybWF0ISgi
e3NuYXBzaG90fSIpKSk/OworCisgICAgICAgIGlmIHNuYXBzaG90X3JlbGF0aXZlX3BhdGguZXhp
c3RzKCkgeworICAgICAgICAgICAgYmFpbCEoIlNuYXBzaG90IHtzbmFwc2hvdH0gYWxyZWFkeSBl
eGlzdHMhIik7CisgICAgICAgIH0KKyAgICAgICAgbG9ja2VkLnJlbmFtZShwcmVmaXgsIHNuYXBz
aG90X3JlbGF0aXZlX3BhdGgpPzsKICAgICB9CiAKKyAgICBzdGQ6OmZzOjpyZW1vdmVfZmlsZShs
b2NrZmlsZV9wYXRoKT87CisKICAgICBPaygoKSkKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL3R5cGVz
LnJzIGIvc3JjL3R5cGVzLnJzCmluZGV4IDEwZGRlNjUuLjQ5ZGMzNzQgMTAwNjQ0Ci0tLSBhL3Ny
Yy90eXBlcy5ycworKysgYi9zcmMvdHlwZXMucnMKQEAgLTEsNiArMSw2IEBACiB1c2Ugc3RkOjp7
Zm10OjpEaXNwbGF5LCBwYXRoOjpQYXRoQnVmLCBzdHI6OkZyb21TdHJ9OwogCi11c2UgYW55aG93
OjpFcnJvcjsKK3VzZSBhbnlob3c6OntFcnJvciwgYmFpbH07CiB1c2UgcHJveG1veF9zY2hlbWE6
OntBcGlTdHJpbmdGb3JtYXQsIFNjaGVtYSwgU3RyaW5nU2NoZW1hLCBhcGksIGNvbnN0X3JlZ2V4
fTsKIHVzZSBwcm94bW94X3NlcmRlOjp7Zm9yd2FyZF9kZXNlcmlhbGl6ZV90b19mcm9tX3N0ciwg
Zm9yd2FyZF9zZXJpYWxpemVfdG9fZGlzcGxheX07CiB1c2UgcHJveG1veF90aW1lOjp7ZXBvY2hf
aTY0LCBlcG9jaF90b19yZmMzMzM5X3V0YywgcGFyc2VfcmZjMzMzOX07CkBAIC0zMiw2ICszMiwx
MyBAQCBwdWIgY29uc3QgTUVESUFfSURfU0NIRU1BOiBTY2hlbWEgPSBTdHJpbmdTY2hlbWE6Om5l
dygiTWVkaXVtIG5hbWUuIikKICAgICAubWF4X2xlbmd0aCgzMikKICAgICAuc2NoZW1hKCk7CiAK
Ky8vLyBTY2hlbWEgZm9yIG5hbWVkIHNuYXBzaG90cworcHViIGNvbnN0IE5BTUVEX1NOQVBTSE9U
X1NDSEVNQTogU2NoZW1hID0gU3RyaW5nU2NoZW1hOjpuZXcoIkN1c3RvbSBuYW1lIGZvciBzbmFw
c2hvdC4iKQorICAgIC5mb3JtYXQoJlBST1hNT1hfU0FGRV9JRF9GT1JNQVQpCisgICAgLm1pbl9s
ZW5ndGgoMykKKyAgICAubWF4X2xlbmd0aCgzMikKKyAgICAuc2NoZW1hKCk7CisKICNbcnVzdGZt
dDo6c2tpcF0KICNbbWFjcm9fZXhwb3J0XQogbWFjcm9fcnVsZXMhIFBST1hNT1hfU1VCU0NSSVBU
SU9OX0tFWV9SRUdFWF9TVFIgeyAoKSA9PiB7IHIiKD86cG9tLXxwdmVcZCtbYS16XS18cGJzW2Et
el0tfHBtZ1thLXpdLSkuKiIgfTsgfQpAQCAtNjIsMzIgKzY5LDUxIEBAIHB1YiBjb25zdCBQUk9Y
TU9YX1NFUlZFUl9JRF9TQ0hFTUE6IFNjaGVtYSA9IFN0cmluZ1NjaGVtYTo6bmV3KCJTZXJ2ZXIg
SUQuIikKIAogI1tydXN0Zm10Ojpza2lwXQogI1ttYWNyb19leHBvcnRdCi1tYWNyb19ydWxlcyEg
U05BUFNIT1RfUkUgeyAoKSA9PiAociJbMC05XXs0fS1bMC05XXsyfS1bMC05XXsyfVRbMC05XXsy
fTpbMC05XXsyfTpbMC05XXsyfVoiKSB9CittYWNyb19ydWxlcyEgVElNRURfU05BUFNIT1RfUkUg
eyAoKSA9PiAociJbMC05XXs0fS1bMC05XXsyfS1bMC05XXsyfVRbMC05XXsyfTpbMC05XXsyfTpb
MC05XXsyfVoiKSB9CiBjb25zdF9yZWdleCEgewotICAgIHB1YihjcmF0ZSkgU05BUFNIT1RfUkVH
RVggPSBjb25jYXQhKHIiXiIsIFNOQVBTSE9UX1JFISgpICxyIiQiKTsKKyAgICBwdWIoY3JhdGUp
IFRJTUVEX1NOQVBTSE9UX1JFR0VYID0gY29uY2F0IShyIl4iLCBUSU1FRF9TTkFQU0hPVF9SRSEo
KSAsciIkIik7Cit9CisKKyNbcnVzdGZtdDo6c2tpcF0KK2NvbnN0X3JlZ2V4ISB7CisgICAgcHVi
KGNyYXRlKSBDT01CSU5FRF9TTkFQU0hPVF9SRUdFWCA9IGNvbmNhdCEociJeKCgiLCBUSU1FRF9T
TkFQU0hPVF9SRSEoKSAsciIpfCIsIFBST1hNT1hfU0FGRV9JRF9SRUdFWF9TVFIhKCksICIpJCIp
OworfQorCisjW2Rlcml2ZShEZWJ1ZywgQ2xvbmUsIFBhcnRpYWxFcSwgUGFydGlhbE9yZCwgRXEs
IE9yZCldCitlbnVtIFNuYXBzaG90VHlwZSB7CisgICAgVGltZWRTbmFwc2hvdChpNjQpLAorICAg
IE5hbWVkU25hcHNob3QoU3RyaW5nKSwKIH0KIAogI1thcGkoCiAgICAgdHlwZTogU3RyaW5nLAot
ICAgIGZvcm1hdDogJkFwaVN0cmluZ0Zvcm1hdDo6UGF0dGVybigmU05BUFNIT1RfUkVHRVgpLAog
KV0KLSNbZGVyaXZlKERlYnVnLCBDbG9uZSwgQ29weSwgUGFydGlhbEVxLCBQYXJ0aWFsT3JkLCBF
cSwgT3JkKV0KKyNbZGVyaXZlKERlYnVnLCBDbG9uZSwgUGFydGlhbEVxLCBQYXJ0aWFsT3JkLCBF
cSwgT3JkKV0KIC8vLyBNaXJyb3Igc25hcHNob3QKLXB1YiBzdHJ1Y3QgU25hcHNob3QoaTY0KTsK
K3B1YiBzdHJ1Y3QgU25hcHNob3QoU25hcHNob3RUeXBlKTsKIAogZm9yd2FyZF9zZXJpYWxpemVf
dG9fZGlzcGxheSEoU25hcHNob3QpOwogZm9yd2FyZF9kZXNlcmlhbGl6ZV90b19mcm9tX3N0ciEo
U25hcHNob3QpOwogCiBpbXBsIFNuYXBzaG90IHsKICAgICBwdWIgZm4gbm93KCkgLT4gU2VsZiB7
Ci0gICAgICAgIFNlbGYoZXBvY2hfaTY0KCkpCisgICAgICAgIFNlbGYoU25hcHNob3RUeXBlOjpU
aW1lZFNuYXBzaG90KGVwb2NoX2k2NCgpKSkKKyAgICB9CisKKyAgICBwdWIgZm4gd2l0aF9uYW1l
KG5hbWU6ICZzdHIpIC0+IFNlbGYgeworICAgICAgICBTZWxmKFNuYXBzaG90VHlwZTo6TmFtZWRT
bmFwc2hvdChuYW1lLmludG8oKSkpCiAgICAgfQogfQogCiBpbXBsIERpc3BsYXkgZm9yIFNuYXBz
aG90IHsKICAgICBmbiBmbXQoJnNlbGYsIGY6ICZtdXQgc3RkOjpmbXQ6OkZvcm1hdHRlcjwnXz4p
IC0+IHN0ZDo6Zm10OjpSZXN1bHQgewotICAgICAgICBsZXQgZm9ybWF0dGVkID0gZXBvY2hfdG9f
cmZjMzMzOV91dGMoc2VsZi4wKS5tYXBfZXJyKHxffCBzdGQ6OmZtdDo6RXJyb3IpPzsKLSAgICAg
ICAgZi53cml0ZV9zdHIoJmZvcm1hdHRlZCkKKyAgICAgICAgbWF0Y2ggJnNlbGYuMCB7CisgICAg
ICAgICAgICBTbmFwc2hvdFR5cGU6OlRpbWVkU25hcHNob3QodGltZSkgPT4geworICAgICAgICAg
ICAgICAgIGxldCBmb3JtYXR0ZWQgPSBlcG9jaF90b19yZmMzMzM5X3V0YygqdGltZSkubWFwX2Vy
cih8X3wgc3RkOjpmbXQ6OkVycm9yKT87CisgICAgICAgICAgICAgICAgZi53cml0ZV9zdHIoJmZv
cm1hdHRlZCkKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFNuYXBzaG90VHlwZTo6TmFtZWRT
bmFwc2hvdChuYW1lKSA9PiBmLndyaXRlX3N0cigmbmFtZSksCisgICAgICAgIH0KICAgICB9CiB9
CiAKQEAgLTk1LDcgKzEyMSwxMyBAQCBpbXBsIEZyb21TdHIgZm9yIFNuYXBzaG90IHsKICAgICB0
eXBlIEVyciA9IEVycm9yOwogCiAgICAgZm4gZnJvbV9zdHIoczogJnN0cikgLT4gUmVzdWx0PFNl
bGYsIFNlbGY6OkVycj4gewotICAgICAgICBPayhTZWxmKHBhcnNlX3JmYzMzMzkocyk/KSkKKyAg
ICAgICAgaWYgVElNRURfU05BUFNIT1RfUkVHRVguaXNfbWF0Y2gocykgeworICAgICAgICAgICAg
T2soU2VsZihTbmFwc2hvdFR5cGU6OlRpbWVkU25hcHNob3QocGFyc2VfcmZjMzMzOShzKT8pKSkK
KyAgICAgICAgfSBlbHNlIGlmIFBST1hNT1hfU0FGRV9JRF9SRUdFWC5pc19tYXRjaChzKSB7Cisg
ICAgICAgICAgICBPayhTZWxmKFNuYXBzaG90VHlwZTo6TmFtZWRTbmFwc2hvdChzLmludG8oKSkp
KQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYmFpbCEoImludmFsaWQgc25hcHNob3Qg
bmFtZSIpCisgICAgICAgIH0KICAgICB9CiB9CiAKLS0gCjIuMzkuNQoKCgpfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpwdmUtZGV2ZWwgbWFpbGluZyBsaXN0
CnB2ZS1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQpodHRwczovL2xpc3RzLnByb3htb3guY29tL2Nn
aS1iaW4vbWFpbG1hbi9saXN0aW5mby9wdmUtZGV2ZWwK