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