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 02FE71FF189
	for <inbox@lore.proxmox.com>; Fri, 21 Mar 2025 14:34:09 +0100 (CET)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 5BF841E919;
	Fri, 21 Mar 2025 14:34:07 +0100 (CET)
From: Alexander Zeidler <a.zeidler@proxmox.com>
To: pve-devel@lists.proxmox.com
Date: Fri, 21 Mar 2025 14:33:41 +0100
Message-Id: <20250321133341.151340-1-a.zeidler@proxmox.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
X-SPAM-LEVEL: Spam detection results:  0
 AWL 0.085 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
 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
 URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more
 information. [test.rs, proxmox.com, pve.rs, pbs.rs, mod.rs]
Subject: [pve-devel] [PATCH proxmox] fix #6143: notify: allow overriding
 notification templates
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>

UHJldmlvdXNseSwgbm90aWZpY2F0aW9uIHRlbXBsYXRlcyBjb3VsZCBiZSBtb2RpZmllZCBieSB0
aGUgdXNlciwgYnV0CnRoZXNlIHdlcmUgb3ZlcndyaXR0ZW4gYWdhaW4gd2l0aCBpbnN0YWxsaW5n
IG5ld2VyIHBhY2thZ2UgdmVyc2lvbnMgb2YKcHZlLW1hbmFnZXIgYW5kIHByb3htb3gtYmFja3Vw
LgoKTm93IG92ZXJyaWRlIHRlbXBsYXRlcyBjYW4gYmUgY3JlYXRlZCBjbHVzdGVyLXdpZGUgaW4g
dGhlIHBhdGgK4oCcL2V0Yy97cHZlLHByb3htb3gtYmFja3VwfS9ub3RpZmljYXRpb24tdGVtcGxh
dGVzL3tuYW1lc3BhY2V94oCdLCB3aGljaAphcmUgdXNlZCB3aXRoIHByaW9yaXR5LiBUaGUgZm9s
ZGVyIHN0cnVjdHVyZSBoYXMgdG8gYmUgY3JlYXRlZCBhbmQKcG9wdWxhdGVkIG1hbnVhbGx5IChl
LmcuIC9ldGMvcHZlL25vdGlmaWNhdGlvbi10ZW1wbGF0ZXMvZGVmYXVsdCkuCgpJZiBvdmVycmlk
ZSB0ZW1wbGF0ZXMgYXJlIG5vdCBleGlzdGluZyBvciB0aGVpciByZW5kZXJpbmcgZmFpbHMsIHRo
ZQp2ZW5kb3IgdGVtcGxhdGVzIGluCiIvdXNyL3NoYXJlL3twdmUtbWFuYWdlcixwcm94bW94LWJh
Y2t1cH0vdGVtcGxhdGVzL2RlZmF1bHQvIiBhcmUgdXNlZC4KClNlcXVlbmNlOiBbb3ZlcnJpZGUg
aHRtbCAtPiB2ZW5kb3IgaHRtbCAtPl0gb3ZlcnJpZGUgdHh0IC0+IHZlbmRvciB0eHQKCkFuIGVy
cm9yIGlzIG9ubHkgcmV0dXJuZWQgaWYgbm9uZSBvZiB0aGUgdGVtcGxhdGUgY2FuZGlkYXRlcyBj
b3VsZCBiZQp1c2VkLiBVc2luZyBhbiBvdmVycmlkZSB0ZW1wbGF0ZSBnZXRzIG5vdCBsb2dnZWQu
CgpTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kZXIgWmVpZGxlciA8YS56ZWlkbGVyQHByb3htb3guY29t
PgotLS0KVGhpcyBwYXRjaCB3YXMgcHJldmlvdXNseSBzZW50IGFzIFJGQyBhbmQgaGFzIG5vdyBh
bGwgc3VnZ2VzdGlvbnMgZnJvbQpMdWthcyBXYWduZXIgaW1wbGVtZW50ZWQ6Cmh0dHBzOi8vbG9y
ZS5wcm94bW94LmNvbS9wdmUtZGV2ZWwvMjAyNTAzMTMxNTE3MzQuMjU4MzM3LTEtYS56ZWlkbGVy
QHByb3htb3guY29tLwoKVGhpcyBwYXRjaCBzaG91bGQgbm90IGJlIG1lcmdlZCB1bnRpbCB0aGUg
ZXhpc3RpbmcgUFZFIGFuZCBQQlMKdGVtcGxhdGVzIGhhdmUgYmVlbiBhdWRpdGVkLiBGb3IgUFZF
IHRoaXMgaXMgY3VycmVudGx5IGJlaW5nIGRvbmUsIGZvcgpQQlMgYSBwYXRjaCBpcyBhbHJlYWR5
IHNlbnQ6Cmh0dHBzOi8vbG9yZS5wcm94bW94LmNvbS9wYnMtZGV2ZWwvMjAyNTAzMjExMjI1MjEu
MTk4NzI1LTEtbC53YWduZXJAcHJveG1veC5jb20vCgpUaGUgZG9jdW1lbnRhdGlvbiBjaGFuZ2Vz
IGZvciBQVkUgYW5kIFBCUyAoc3RlcHMgZm9yIG92ZXJyaWRlIHRlbXBsYXRlCmNyZWF0aW9uLCBs
aXN0IG9mIHZhcmlhYmxlcyBhbmQgaGVscGVycykgd2lsbCBiZSBzZW50IGluIHNlcGFyYXRlCnBh
dGNoZXMgYWZ0ZXIgdGhlIGFib3ZlIG1lbnRpb25lZCBhdWRpdCBpcyBjb21wbGV0ZWQuCgoKIHBy
b3htb3gtbm90aWZ5L3NyYy9jb250ZXh0L21vZC5ycyAgfCAgIDQgKy0KIHByb3htb3gtbm90aWZ5
L3NyYy9jb250ZXh0L3Bicy5ycyAgfCAgIDkgKy0KIHByb3htb3gtbm90aWZ5L3NyYy9jb250ZXh0
L3B2ZS5ycyAgfCAgMTAgKy0KIHByb3htb3gtbm90aWZ5L3NyYy9jb250ZXh0L3Rlc3QucnMgfCAg
IDIgKwogcHJveG1veC1ub3RpZnkvc3JjL3JlbmRlcmVyL21vZC5ycyB8IDE1NCArKysrKysrKysr
KysrKysrKysrKy0tLS0tLS0tLQogNSBmaWxlcyBjaGFuZ2VkLCAxMjkgaW5zZXJ0aW9ucygrKSwg
NTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvcHJveG1veC1ub3RpZnkvc3JjL2NvbnRleHQv
bW9kLnJzIGIvcHJveG1veC1ub3RpZnkvc3JjL2NvbnRleHQvbW9kLnJzCmluZGV4IGMwYTVhMTNi
Li44YjZlMmM0MyAxMDA2NDQKLS0tIGEvcHJveG1veC1ub3RpZnkvc3JjL2NvbnRleHQvbW9kLnJz
CisrKyBiL3Byb3htb3gtbm90aWZ5L3NyYy9jb250ZXh0L21vZC5ycwpAQCAtMSw2ICsxLDcgQEAK
IHVzZSBzdGQ6OmZtdDo6RGVidWc7CiB1c2Ugc3RkOjpzeW5jOjpNdXRleDsKIAordXNlIGNyYXRl
OjpyZW5kZXJlcjo6VGVtcGxhdGVTb3VyY2U7CiB1c2UgY3JhdGU6OkVycm9yOwogCiAjW2NmZyhh
bnkoZmVhdHVyZSA9ICJwdmUtY29udGV4dCIsIGZlYXR1cmUgPSAicGJzLWNvbnRleHQiKSldCkBA
IC0yNCwxMSArMjUsMTIgQEAgcHViIHRyYWl0IENvbnRleHQ6IFNlbmQgKyBTeW5jICsgRGVidWcg
ewogICAgIGZuIGh0dHBfcHJveHlfY29uZmlnKCZzZWxmKSAtPiBPcHRpb248U3RyaW5nPjsKICAg
ICAvLy8gUmV0dXJuIGRlZmF1bHQgY29uZmlnIGZvciBidWlsdC1pbiB0YXJnZXRzL21hdGNoZXJz
LgogICAgIGZuIGRlZmF1bHRfY29uZmlnKCZzZWxmKSAtPiAmJ3N0YXRpYyBzdHI7Ci0gICAgLy8v
IExvb2t1cCBhIHRlbXBsYXRlIGluIGEgY2VydGFpbiAob3B0aW9uYWwpIG5hbWVzcGFjZQorICAg
IC8vLyBSZXR1cm4gdGhlIHBhdGggb2YgYGZpbGVuYW1lYCBmcm9tIGBzb3VyY2VgIGFuZCBhIGNl
cnRhaW4gKG9wdGlvbmFsKSBgbmFtZXNwYWNlYAogICAgIGZuIGxvb2t1cF90ZW1wbGF0ZSgKICAg
ICAgICAgJnNlbGYsCiAgICAgICAgIGZpbGVuYW1lOiAmc3RyLAogICAgICAgICBuYW1lc3BhY2U6
IE9wdGlvbjwmc3RyPiwKKyAgICAgICAgc291cmNlOiBUZW1wbGF0ZVNvdXJjZSwKICAgICApIC0+
IFJlc3VsdDxPcHRpb248U3RyaW5nPiwgRXJyb3I+OwogfQogCmRpZmYgLS1naXQgYS9wcm94bW94
LW5vdGlmeS9zcmMvY29udGV4dC9wYnMucnMgYi9wcm94bW94LW5vdGlmeS9zcmMvY29udGV4dC9w
YnMucnMKaW5kZXggZTgxMDZjNTcuLjNlNWRhNTljIDEwMDY0NAotLS0gYS9wcm94bW94LW5vdGlm
eS9zcmMvY29udGV4dC9wYnMucnMKKysrIGIvcHJveG1veC1ub3RpZnkvc3JjL2NvbnRleHQvcGJz
LnJzCkBAIC03LDYgKzcsNyBAQCB1c2UgcHJveG1veF9zY2hlbWE6OntPYmplY3RTY2hlbWEsIFNj
aGVtYSwgU3RyaW5nU2NoZW1hfTsKIHVzZSBwcm94bW94X3NlY3Rpb25fY29uZmlnOjp7U2VjdGlv
bkNvbmZpZywgU2VjdGlvbkNvbmZpZ1BsdWdpbn07CiAKIHVzZSBjcmF0ZTo6Y29udGV4dDo6e2Nv
bW1vbiwgQ29udGV4dH07Cit1c2UgY3JhdGU6OnJlbmRlcmVyOjpUZW1wbGF0ZVNvdXJjZTsKIHVz
ZSBjcmF0ZTo6RXJyb3I7CiAKIGNvbnN0IFBCU19VU0VSX0NGR19GSUxFTkFNRTogJnN0ciA9ICIv
ZXRjL3Byb3htb3gtYmFja3VwL3VzZXIuY2ZnIjsKQEAgLTEwOSw4ICsxMTAsMTQgQEAgaW1wbCBD
b250ZXh0IGZvciBQQlNDb250ZXh0IHsKICAgICAgICAgJnNlbGYsCiAgICAgICAgIGZpbGVuYW1l
OiAmc3RyLAogICAgICAgICBuYW1lc3BhY2U6IE9wdGlvbjwmc3RyPiwKKyAgICAgICAgc291cmNl
OiBUZW1wbGF0ZVNvdXJjZSwKICAgICApIC0+IFJlc3VsdDxPcHRpb248U3RyaW5nPiwgRXJyb3I+
IHsKLSAgICAgICAgbGV0IHBhdGggPSBQYXRoOjpuZXcoIi91c3Ivc2hhcmUvcHJveG1veC1iYWNr
dXAvdGVtcGxhdGVzIikKKyAgICAgICAgbGV0IHBhdGggPSBtYXRjaCBzb3VyY2UgeworICAgICAg
ICAgICAgVGVtcGxhdGVTb3VyY2U6OlZlbmRvciA9PiAiL3Vzci9zaGFyZS9wcm94bW94LWJhY2t1
cC90ZW1wbGF0ZXMiLAorICAgICAgICAgICAgVGVtcGxhdGVTb3VyY2U6Ok92ZXJyaWRlID0+ICIv
ZXRjL3Byb3htb3gtYmFja3VwL25vdGlmaWNhdGlvbi10ZW1wbGF0ZXMiLAorICAgICAgICB9Owor
CisgICAgICAgIGxldCBwYXRoID0gUGF0aDo6bmV3KCZwYXRoKQogICAgICAgICAgICAgLmpvaW4o
bmFtZXNwYWNlLnVud3JhcF9vcigiZGVmYXVsdCIpKQogICAgICAgICAgICAgLmpvaW4oZmlsZW5h
bWUpOwogCmRpZmYgLS1naXQgYS9wcm94bW94LW5vdGlmeS9zcmMvY29udGV4dC9wdmUucnMgYi9w
cm94bW94LW5vdGlmeS9zcmMvY29udGV4dC9wdmUucnMKaW5kZXggZDQ5YWIyN2MuLmE5N2NjZTI2
IDEwMDY0NAotLS0gYS9wcm94bW94LW5vdGlmeS9zcmMvY29udGV4dC9wdmUucnMKKysrIGIvcHJv
eG1veC1ub3RpZnkvc3JjL2NvbnRleHQvcHZlLnJzCkBAIC0xLDQgKzEsNSBAQAogdXNlIGNyYXRl
Ojpjb250ZXh0Ojp7Y29tbW9uLCBDb250ZXh0fTsKK3VzZSBjcmF0ZTo6cmVuZGVyZXI6OlRlbXBs
YXRlU291cmNlOwogdXNlIGNyYXRlOjpFcnJvcjsKIHVzZSBzdGQ6OnBhdGg6OlBhdGg7CiAKQEAg
LTU4LDEwICs1OSwxNyBAQCBpbXBsIENvbnRleHQgZm9yIFBWRUNvbnRleHQgewogICAgICAgICAm
c2VsZiwKICAgICAgICAgZmlsZW5hbWU6ICZzdHIsCiAgICAgICAgIG5hbWVzcGFjZTogT3B0aW9u
PCZzdHI+LAorICAgICAgICBzb3VyY2U6IFRlbXBsYXRlU291cmNlLAogICAgICkgLT4gUmVzdWx0
PE9wdGlvbjxTdHJpbmc+LCBFcnJvcj4gewotICAgICAgICBsZXQgcGF0aCA9IFBhdGg6Om5ldygi
L3Vzci9zaGFyZS9wdmUtbWFuYWdlci90ZW1wbGF0ZXMiKQorICAgICAgICBsZXQgcGF0aCA9IG1h
dGNoIHNvdXJjZSB7CisgICAgICAgICAgICBUZW1wbGF0ZVNvdXJjZTo6VmVuZG9yID0+ICIvdXNy
L3NoYXJlL3B2ZS1tYW5hZ2VyL3RlbXBsYXRlcyIsCisgICAgICAgICAgICBUZW1wbGF0ZVNvdXJj
ZTo6T3ZlcnJpZGUgPT4gIi9ldGMvcHZlL25vdGlmaWNhdGlvbi10ZW1wbGF0ZXMiLAorICAgICAg
ICB9OworCisgICAgICAgIGxldCBwYXRoID0gUGF0aDo6bmV3KCZwYXRoKQogICAgICAgICAgICAg
LmpvaW4obmFtZXNwYWNlLnVud3JhcF9vcigiZGVmYXVsdCIpKQogICAgICAgICAgICAgLmpvaW4o
ZmlsZW5hbWUpOworCiAgICAgICAgIGxldCB0ZW1wbGF0ZV9zdHJpbmcgPSBwcm94bW94X3N5czo6
ZnM6OmZpbGVfcmVhZF9vcHRpb25hbF9zdHJpbmcocGF0aCkKICAgICAgICAgICAgIC5tYXBfZXJy
KHxlcnJ8IEVycm9yOjpHZW5lcmljKGZvcm1hdCEoImNvdWxkIG5vdCBsb2FkIHRlbXBsYXRlOiB7
ZXJyfSIpKSk/OwogICAgICAgICBPayh0ZW1wbGF0ZV9zdHJpbmcpCmRpZmYgLS1naXQgYS9wcm94
bW94LW5vdGlmeS9zcmMvY29udGV4dC90ZXN0LnJzIGIvcHJveG1veC1ub3RpZnkvc3JjL2NvbnRl
eHQvdGVzdC5ycwppbmRleCA1ZGYyNWQwNS4uMTNlZjZlYWUgMTAwNjQ0Ci0tLSBhL3Byb3htb3gt
bm90aWZ5L3NyYy9jb250ZXh0L3Rlc3QucnMKKysrIGIvcHJveG1veC1ub3RpZnkvc3JjL2NvbnRl
eHQvdGVzdC5ycwpAQCAtMSw0ICsxLDUgQEAKIHVzZSBjcmF0ZTo6Y29udGV4dDo6Q29udGV4dDsK
K3VzZSBjcmF0ZTo6cmVuZGVyZXI6OlRlbXBsYXRlU291cmNlOwogdXNlIGNyYXRlOjpFcnJvcjsK
IAogI1tkZXJpdmUoRGVidWcpXQpAQCAtMjksNiArMzAsNyBAQCBpbXBsIENvbnRleHQgZm9yIFRl
c3RDb250ZXh0IHsKICAgICAgICAgJnNlbGYsCiAgICAgICAgIF9maWxlbmFtZTogJnN0ciwKICAg
ICAgICAgX25hbWVzcGFjZTogT3B0aW9uPCZzdHI+LAorICAgICAgICBfc291cmNlOiBUZW1wbGF0
ZVNvdXJjZSwKICAgICApIC0+IFJlc3VsdDxPcHRpb248U3RyaW5nPiwgRXJyb3I+IHsKICAgICAg
ICAgT2soU29tZShTdHJpbmc6Om5ldygpKSkKICAgICB9CmRpZmYgLS1naXQgYS9wcm94bW94LW5v
dGlmeS9zcmMvcmVuZGVyZXIvbW9kLnJzIGIvcHJveG1veC1ub3RpZnkvc3JjL3JlbmRlcmVyL21v
ZC5ycwppbmRleCBlMDU4ZWEyMi4uYjM3Y2Y0MzggMTAwNjQ0Ci0tLSBhL3Byb3htb3gtbm90aWZ5
L3NyYy9yZW5kZXJlci9tb2QucnMKKysrIGIvcHJveG1veC1ub3RpZnkvc3JjL3JlbmRlcmVyL21v
ZC5ycwpAQCAtMSw2ICsxLDYgQEAKIC8vISBNb2R1bGUgZm9yIHJlbmRlcmluZyBub3RpZmljYXRp
b24gdGVtcGxhdGVzLgogCi11c2Ugc3RkOjp0aW1lOjpEdXJhdGlvbjsKK3VzZSBzdGQ6OntmbXQ6
OkRpc3BsYXksIHRpbWU6OkR1cmF0aW9ufTsKIAogdXNlIGhhbmRsZWJhcnM6OnsKICAgICBDb250
ZXh0LCBIYW5kbGViYXJzLCBIZWxwZXIsIEhlbHBlckRlZiwgSGVscGVyUmVzdWx0LCBPdXRwdXQs
IFJlbmRlckNvbnRleHQsCkBAIC0xOTAsMTEgKzE5MCwyOSBAQCBpbXBsIFZhbHVlUmVuZGVyRnVu
Y3Rpb24gewogICAgIH0KIH0KIAotLy8vIEF2YWlsYWJsZSB0ZW1wbGF0ZSB0eXBlcworLy8vIENo
b29zZSBiZXR3ZWVuIHRoZSBwcm92aWRlZCBgdmVuZG9yYCB0ZW1wbGF0ZSBvciBpdHMgYnkgdGhl
IHVzZXIgb3B0aW9uYWxseSBjcmVhdGVkIGBvdmVycmlkZWAKICNbZGVyaXZlKENvcHksIENsb25l
KV0KK3B1YiBlbnVtIFRlbXBsYXRlU291cmNlIHsKKyAgICBWZW5kb3IsCisgICAgT3ZlcnJpZGUs
Cit9CisKK2ltcGwgRGlzcGxheSBmb3IgVGVtcGxhdGVTb3VyY2UgeworICAgIGZuIGZtdCgmc2Vs
ZiwgZjogJm11dCBzdGQ6OmZtdDo6Rm9ybWF0dGVyPCdfPikgLT4gc3RkOjpmbXQ6OlJlc3VsdCB7
CisgICAgICAgIG1hdGNoIHNlbGYgeworICAgICAgICAgICAgVGVtcGxhdGVTb3VyY2U6OlZlbmRv
ciA9PiBmLndyaXRlX3N0cigidmVuZG9yIiksCisgICAgICAgICAgICBUZW1wbGF0ZVNvdXJjZTo6
T3ZlcnJpZGUgPT4gZi53cml0ZV9zdHIoIm92ZXJyaWRlIiksCisgICAgICAgIH0KKyAgICB9Cit9
CisKKy8vLyBBdmFpbGFibGUgdGVtcGxhdGUgdHlwZXMKKyNbZGVyaXZlKENvcHksIENsb25lLCBQ
YXJ0aWFsRXEpXQogcHViIGVudW0gVGVtcGxhdGVUeXBlIHsKICAgICAvLy8gSFRNTCBib2R5IHRl
bXBsYXRlCiAgICAgSHRtbEJvZHksCisgICAgLy8vIEZhbGxiYWNrIEhUTUwgYm9keSwgYmFzZWQg
b24gdGhlIGBQbGFpbnRleHRCb2R5YCB0ZW1wbGF0ZQorICAgIEh0bWxCb2R5RnJvbVBsYWludGV4
dCwKICAgICAvLy8gUGxhaW50ZXh0IGJvZHkgdGVtcGxhdGUKICAgICBQbGFpbnRleHRCb2R5LAog
ICAgIC8vLyBTdWJqZWN0IHRlbXBsYXRlCkBAIC0yMDUsMTQgKzIyMywyNCBAQCBpbXBsIFRlbXBs
YXRlVHlwZSB7CiAgICAgZm4gZmlsZV9zdWZmaXgoJnNlbGYpIC0+ICYnc3RhdGljIHN0ciB7CiAg
ICAgICAgIG1hdGNoIHNlbGYgewogICAgICAgICAgICAgVGVtcGxhdGVUeXBlOjpIdG1sQm9keSA9
PiAiYm9keS5odG1sLmhicyIsCisgICAgICAgICAgICBUZW1wbGF0ZVR5cGU6Okh0bWxCb2R5RnJv
bVBsYWludGV4dCA9PiAiYm9keS50eHQuaGJzIiwKICAgICAgICAgICAgIFRlbXBsYXRlVHlwZTo6
UGxhaW50ZXh0Qm9keSA9PiAiYm9keS50eHQuaGJzIiwKICAgICAgICAgICAgIFRlbXBsYXRlVHlw
ZTo6U3ViamVjdCA9PiAic3ViamVjdC50eHQuaGJzIiwKICAgICAgICAgfQogICAgIH0KIAogICAg
IGZuIHBvc3Rwcm9jZXNzKCZzZWxmLCBtdXQgcmVuZGVyZWQ6IFN0cmluZykgLT4gU3RyaW5nIHsK
LSAgICAgICAgaWYgbGV0IFNlbGY6OlN1YmplY3QgPSBzZWxmIHsKLSAgICAgICAgICAgIHJlbmRl
cmVkID0gcmVuZGVyZWQucmVwbGFjZSgnXG4nLCAiICIpOworICAgICAgICBtYXRjaCBzZWxmIHsK
KyAgICAgICAgICAgIFRlbXBsYXRlVHlwZTo6SHRtbEJvZHlGcm9tUGxhaW50ZXh0ID0+IHsKKyAg
ICAgICAgICAgICAgICByZW5kZXJlZCA9IGZvcm1hdCEoCisgICAgICAgICAgICAgICAgICAgICI8
aHRtbD48Ym9keT48cHJlPnt9PC9wcmU+PC9ib2R5PjwvaHRtbD4iLAorICAgICAgICAgICAgICAg
ICAgICBoYW5kbGViYXJzOjpodG1sX2VzY2FwZSgmcmVuZGVyZWQpCisgICAgICAgICAgICAgICAg
KQorICAgICAgICAgICAgfQorICAgICAgICAgICAgVGVtcGxhdGVUeXBlOjpTdWJqZWN0ID0+IHsK
KyAgICAgICAgICAgICAgICByZW5kZXJlZCA9IHJlbmRlcmVkLnJlcGxhY2UoJ1xuJywgIiAiKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF8gPT4ge30KICAgICAgICAgfQogCiAgICAgICAg
IHJlbmRlcmVkCkBAIC0yMjEsNiArMjQ5LDcgQEAgaW1wbCBUZW1wbGF0ZVR5cGUgewogICAgIGZu
IGJsb2NrX3JlbmRlcl9mbnMoJnNlbGYpIC0+IEJsb2NrUmVuZGVyRnVuY3Rpb25zIHsKICAgICAg
ICAgbWF0Y2ggc2VsZiB7CiAgICAgICAgICAgICBUZW1wbGF0ZVR5cGU6Okh0bWxCb2R5ID0+IGh0
bWw6OmJsb2NrX3JlbmRlcl9mdW5jdGlvbnMoKSwKKyAgICAgICAgICAgIFRlbXBsYXRlVHlwZTo6
SHRtbEJvZHlGcm9tUGxhaW50ZXh0ID0+IHBsYWludGV4dDo6YmxvY2tfcmVuZGVyX2Z1bmN0aW9u
cygpLAogICAgICAgICAgICAgVGVtcGxhdGVUeXBlOjpTdWJqZWN0ID0+IHBsYWludGV4dDo6Ymxv
Y2tfcmVuZGVyX2Z1bmN0aW9ucygpLAogICAgICAgICAgICAgVGVtcGxhdGVUeXBlOjpQbGFpbnRl
eHRCb2R5ID0+IHBsYWludGV4dDo6YmxvY2tfcmVuZGVyX2Z1bmN0aW9ucygpLAogICAgICAgICB9
CkBAIC0yMzEsNiArMjYwLDcgQEAgaW1wbCBUZW1wbGF0ZVR5cGUgewogICAgICAgICAgICAgVGVt
cGxhdGVUeXBlOjpQbGFpbnRleHRCb2R5ID0+IGhhbmRsZWJhcnM6Om5vX2VzY2FwZSwKICAgICAg
ICAgICAgIFRlbXBsYXRlVHlwZTo6U3ViamVjdCA9PiBoYW5kbGViYXJzOjpub19lc2NhcGUsCiAg
ICAgICAgICAgICBUZW1wbGF0ZVR5cGU6Okh0bWxCb2R5ID0+IGhhbmRsZWJhcnM6Omh0bWxfZXNj
YXBlLAorICAgICAgICAgICAgVGVtcGxhdGVUeXBlOjpIdG1sQm9keUZyb21QbGFpbnRleHQgPT4g
aGFuZGxlYmFyczo6bm9fZXNjYXBlLAogICAgICAgICB9CiAgICAgfQogfQpAQCAtMjUwLDcwICsy
ODAsMTAwIEBAIGltcGwgQmxvY2tSZW5kZXJGdW5jdGlvbnMgewogfQogCiBmbiByZW5kZXJfdGVt
cGxhdGVfaW1wbCgKLSAgICB0ZW1wbGF0ZTogJnN0ciwKICAgICBkYXRhOiAmVmFsdWUsCiAgICAg
cmVuZGVyZXI6IFRlbXBsYXRlVHlwZSwKLSkgLT4gUmVzdWx0PFN0cmluZywgRXJyb3I+IHsKLSAg
ICBsZXQgbXV0IGhhbmRsZWJhcnMgPSBIYW5kbGViYXJzOjpuZXcoKTsKLSAgICBoYW5kbGViYXJz
LnJlZ2lzdGVyX2VzY2FwZV9mbihyZW5kZXJlci5lc2NhcGVfZm4oKSk7CisgICAgZmlsZW5hbWU6
ICZzdHIsCisgICAgc291cmNlOiBUZW1wbGF0ZVNvdXJjZSwKKykgLT4gUmVzdWx0PE9wdGlvbjxT
dHJpbmc+LCBFcnJvcj4geworICAgIGxldCB0ZW1wbGF0ZV9zdHJpbmcgPSBjb250ZXh0Ojpjb250
ZXh0KCkubG9va3VwX3RlbXBsYXRlKCZmaWxlbmFtZSwgTm9uZSwgc291cmNlKT87CiAKLSAgICBs
ZXQgYmxvY2tfcmVuZGVyX2ZucyA9IHJlbmRlcmVyLmJsb2NrX3JlbmRlcl9mbnMoKTsKLSAgICBi
bG9ja19yZW5kZXJfZm5zLnJlZ2lzdGVyX2hlbHBlcnMoJm11dCBoYW5kbGViYXJzKTsKKyAgICBp
ZiBsZXQgU29tZSh0ZW1wbGF0ZV9zdHJpbmcpID0gdGVtcGxhdGVfc3RyaW5nIHsKKyAgICAgICAg
bGV0IG11dCBoYW5kbGViYXJzID0gSGFuZGxlYmFyczo6bmV3KCk7CisgICAgICAgIGhhbmRsZWJh
cnMucmVnaXN0ZXJfZXNjYXBlX2ZuKHJlbmRlcmVyLmVzY2FwZV9mbigpKTsKIAotICAgIFZhbHVl
UmVuZGVyRnVuY3Rpb246OnJlZ2lzdGVyX2hlbHBlcnMoJm11dCBoYW5kbGViYXJzKTsKKyAgICAg
ICAgbGV0IGJsb2NrX3JlbmRlcl9mbnMgPSByZW5kZXJlci5ibG9ja19yZW5kZXJfZm5zKCk7Cisg
ICAgICAgIGJsb2NrX3JlbmRlcl9mbnMucmVnaXN0ZXJfaGVscGVycygmbXV0IGhhbmRsZWJhcnMp
OwogCi0gICAgaGFuZGxlYmFycy5yZWdpc3Rlcl9oZWxwZXIoCi0gICAgICAgICJyZWxhdGl2ZS1w
ZXJjZW50YWdlIiwKLSAgICAgICAgQm94OjpuZXcoaGFuZGxlYmFyc19yZWxhdGl2ZV9wZXJjZW50
YWdlX2hlbHBlciksCi0gICAgKTsKKyAgICAgICAgVmFsdWVSZW5kZXJGdW5jdGlvbjo6cmVnaXN0
ZXJfaGVscGVycygmbXV0IGhhbmRsZWJhcnMpOwogCi0gICAgbGV0IHJlbmRlcmVkX3RlbXBsYXRl
ID0gaGFuZGxlYmFycwotICAgICAgICAucmVuZGVyX3RlbXBsYXRlKHRlbXBsYXRlLCBkYXRhKQot
ICAgICAgICAubWFwX2Vycih8ZXJyfCBFcnJvcjo6UmVuZGVyRXJyb3IoZXJyLmludG8oKSkpPzsK
KyAgICAgICAgaGFuZGxlYmFycy5yZWdpc3Rlcl9oZWxwZXIoCisgICAgICAgICAgICAicmVsYXRp
dmUtcGVyY2VudGFnZSIsCisgICAgICAgICAgICBCb3g6Om5ldyhoYW5kbGViYXJzX3JlbGF0aXZl
X3BlcmNlbnRhZ2VfaGVscGVyKSwKKyAgICAgICAgKTsKKworICAgICAgICBsZXQgcmVuZGVyZWRf
dGVtcGxhdGUgPSBoYW5kbGViYXJzCisgICAgICAgICAgICAucmVuZGVyX3RlbXBsYXRlKCZ0ZW1w
bGF0ZV9zdHJpbmcsIGRhdGEpCisgICAgICAgICAgICAubWFwX2Vycih8ZXJyfCBFcnJvcjo6UmVu
ZGVyRXJyb3IoZXJyLmludG8oKSkpPzsKKworICAgICAgICBsZXQgcmVuZGVyZWRfdGVtcGxhdGUg
PSByZW5kZXJlci5wb3N0cHJvY2VzcyhyZW5kZXJlZF90ZW1wbGF0ZSk7CiAKLSAgICBPayhyZW5k
ZXJlZF90ZW1wbGF0ZSkKKyAgICAgICAgT2soU29tZShyZW5kZXJlZF90ZW1wbGF0ZSkpCisgICAg
fSBlbHNlIHsKKyAgICAgICAgT2soTm9uZSkKKyAgICB9CiB9CiAKIC8vLyBSZW5kZXIgYSB0ZW1w
bGF0ZSBzdHJpbmcuCiAvLy8KLS8vLyBUaGUgb3V0cHV0IGZvcm1hdCBjYW4gYmUgY2hvc2VuIHZp
YSB0aGUgYHJlbmRlcmVyYCBwYXJhbWV0ZXIgKHNlZSBbVGVtcGxhdGVUeXBlXQotLy8vIGZvciBh
dmFpbGFibGUgb3B0aW9ucykuCisvLy8gVGhlIG91dHB1dCBmb3JtYXQgaXMgY2hvc2VuIHZpYSB0
aGUgYHR5YCBwYXJhbWV0ZXIgKHNlZSBbVGVtcGxhdGVUeXBlXSBmb3IKKy8vLyBhdmFpbGFibGUg
b3B0aW9ucykuIElmIGFuIG92ZXJyaWRlIHRlbXBsYXRlIGlzIGZvdW5kIGFuZCByZW5kZXJhYmxl
LCBpdCBpcworLy8vIHVzZWQgaW5zdGVhZCBvZiB0aGUgdmVuZG9yIG9uZS4gSWYgdGhlIFtUZW1w
bGF0ZVR5cGVdIGlzIGBIdG1sQm9keWAgYnV0IG5vCisvLy8gSFRNTCB0ZW1wbGF0ZSBpcyBmb3Vu
ZCBvciByZW5kZXJhYmxlLCBpdCBmYWxscyBiYWNrIHRvIHVzZSBhIHBsYWludGV4dAorLy8vIHRl
bXBsYXRlIGVuY2Fwc3VsYXRlZCBpbiBhIHByZS1mb3JtYXR0ZWQgSFRNTCBibG9jayAoPHByZT4p
LgogcHViIGZuIHJlbmRlcl90ZW1wbGF0ZSgKICAgICBtdXQgdHk6IFRlbXBsYXRlVHlwZSwKICAg
ICB0ZW1wbGF0ZTogJnN0ciwKICAgICBkYXRhOiAmVmFsdWUsCiApIC0+IFJlc3VsdDxTdHJpbmcs
IEVycm9yPiB7Ci0gICAgbGV0IGZpbGVuYW1lID0gZm9ybWF0ISgie3RlbXBsYXRlfS17c3VmZml4
fSIsIHN1ZmZpeCA9IHR5LmZpbGVfc3VmZml4KCkpOwotCi0gICAgbGV0IHRlbXBsYXRlX3N0cmlu
ZyA9IGNvbnRleHQ6OmNvbnRleHQoKS5sb29rdXBfdGVtcGxhdGUoJmZpbGVuYW1lLCBOb25lKT87
CisgICAgbGV0IG11dCBzb3VyY2UgPSBUZW1wbGF0ZVNvdXJjZTo6T3ZlcnJpZGU7CisKKyAgICBs
b29wIHsKKyAgICAgICAgbGV0IGZpbGVuYW1lID0gZm9ybWF0ISgie3RlbXBsYXRlfS17c3VmZml4
fSIsIHN1ZmZpeCA9IHR5LmZpbGVfc3VmZml4KCkpOworICAgICAgICBsZXQgcmVzdWx0ID0gcmVu
ZGVyX3RlbXBsYXRlX2ltcGwoZGF0YSwgdHksICZmaWxlbmFtZSwgc291cmNlKTsKKworICAgICAg
ICBtYXRjaCByZXN1bHQgeworICAgICAgICAgICAgT2soU29tZShzKSkgPT4geworICAgICAgICAg
ICAgICAgIHJldHVybiBPayhzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIE9rKE5vbmUp
ID0+IHt9CisgICAgICAgICAgICBFcnIoZXJyKSA9PiB7CisgICAgICAgICAgICAgICAgdHJhY2lu
Zzo6ZXJyb3IhKCJmYWlsZWQgdG8gcmVuZGVyIHtzb3VyY2V9IHRlbXBsYXRlICd7ZmlsZW5hbWV9
Jzoge2Vycn0iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogCi0gICAgbGV0ICh0ZW1wbGF0
ZV9zdHJpbmcsIGZhbGxiYWNrKSA9IG1hdGNoICh0ZW1wbGF0ZV9zdHJpbmcsIHR5KSB7Ci0gICAg
ICAgIChOb25lLCBUZW1wbGF0ZVR5cGU6Okh0bWxCb2R5KSA9PiB7Ci0gICAgICAgICAgICB0eSA9
IFRlbXBsYXRlVHlwZTo6UGxhaW50ZXh0Qm9keTsKLSAgICAgICAgICAgIGxldCBwbGFpbnRleHRf
ZmlsZW5hbWUgPSBmb3JtYXQhKCJ7dGVtcGxhdGV9LXtzdWZmaXh9Iiwgc3VmZml4ID0gdHkuZmls
ZV9zdWZmaXgoKSk7CisgICAgICAgIG1hdGNoICh0eSwgc291cmNlKSB7CisgICAgICAgICAgICAo
CisgICAgICAgICAgICAgICAgVGVtcGxhdGVUeXBlOjpIdG1sQm9keQorICAgICAgICAgICAgICAg
IHwgVGVtcGxhdGVUeXBlOjpIdG1sQm9keUZyb21QbGFpbnRleHQKKyAgICAgICAgICAgICAgICB8
IFRlbXBsYXRlVHlwZTo6UGxhaW50ZXh0Qm9keQorICAgICAgICAgICAgICAgIHwgVGVtcGxhdGVU
eXBlOjpTdWJqZWN0LAorICAgICAgICAgICAgICAgIFRlbXBsYXRlU291cmNlOjpPdmVycmlkZSwK
KyAgICAgICAgICAgICkgPT4geworICAgICAgICAgICAgICAgIC8vIE92ZXJyaWRlIHRlbXBsYXRl
IG5vdCBmb3VuZCBvciByZW5kZXJhYmxlLCB0cnkgdGhlIHZlbmRvciBvbmUgaW5zdGVhZAorICAg
ICAgICAgICAgICAgIHNvdXJjZSA9IFRlbXBsYXRlU291cmNlOjpWZW5kb3I7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICAoVGVtcGxhdGVUeXBlOjpIdG1sQm9keSwgVGVtcGxhdGVTb3VyY2U6
OlZlbmRvcikgPT4geworICAgICAgICAgICAgICAgIC8vIE92ZXJyaWRlIGFuZCB2ZW5kb3IgSFRN
TCB0ZW1wbGF0ZXMgbm90IGZvdW5kIG9yIHJlbmRlcmFibGUsCisgICAgICAgICAgICAgICAgLy8g
dHJ5IG5leHQgdGhlIG92ZXJyaWRlIHBsYWludGV4dCBhcyBmYWxsYmFjaworICAgICAgICAgICAg
ICAgIHR5ID0gVGVtcGxhdGVUeXBlOjpIdG1sQm9keUZyb21QbGFpbnRleHQ7CisgICAgICAgICAg
ICAgICAgc291cmNlID0gVGVtcGxhdGVTb3VyY2U6Ok92ZXJyaWRlOworICAgICAgICAgICAgfQog
ICAgICAgICAgICAgKAotICAgICAgICAgICAgICAgIGNvbnRleHQ6OmNvbnRleHQoKS5sb29rdXBf
dGVtcGxhdGUoJnBsYWludGV4dF9maWxlbmFtZSwgTm9uZSk/LAotICAgICAgICAgICAgICAgIHRy
dWUsCi0gICAgICAgICAgICApCisgICAgICAgICAgICAgICAgVGVtcGxhdGVUeXBlOjpIdG1sQm9k
eUZyb21QbGFpbnRleHQKKyAgICAgICAgICAgICAgICB8IFRlbXBsYXRlVHlwZTo6UGxhaW50ZXh0
Qm9keQorICAgICAgICAgICAgICAgIHwgVGVtcGxhdGVUeXBlOjpTdWJqZWN0LAorICAgICAgICAg
ICAgICAgIFRlbXBsYXRlU291cmNlOjpWZW5kb3IsCisgICAgICAgICAgICApID0+IHsKKyAgICAg
ICAgICAgICAgICAvLyBSZXR1cm4gZXJyb3IsIG5vIHN1aXRhYmxlIHRlbXBsYXRlcyBmb3VuZCBv
ciByZW5kZXJhYmxlCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAg
ICAgIH0KLSAgICAgICAgKHRlbXBsYXRlX3N0cmluZywgXykgPT4gKHRlbXBsYXRlX3N0cmluZywg
ZmFsc2UpLAotICAgIH07Ci0KLSAgICBsZXQgdGVtcGxhdGVfc3RyaW5nID0gdGVtcGxhdGVfc3Ry
aW5nLm9rX29yKEVycm9yOjpHZW5lcmljKGZvcm1hdCEoCi0gICAgICAgICJjb3VsZCBub3QgbG9h
ZCB0ZW1wbGF0ZSAne3RlbXBsYXRlfSciCi0gICAgKSkpPzsKLQotICAgIGxldCBtdXQgcmVuZGVy
ZWQgPSByZW5kZXJfdGVtcGxhdGVfaW1wbCgmdGVtcGxhdGVfc3RyaW5nLCBkYXRhLCB0eSk/Owot
ICAgIHJlbmRlcmVkID0gdHkucG9zdHByb2Nlc3MocmVuZGVyZWQpOwotCi0gICAgaWYgZmFsbGJh
Y2sgewotICAgICAgICByZW5kZXJlZCA9IGZvcm1hdCEoCi0gICAgICAgICAgICAiPGh0bWw+PGJv
ZHk+PHByZT57fTwvcHJlPjwvYm9keT48L2h0bWw+IiwKLSAgICAgICAgICAgIGhhbmRsZWJhcnM6
Omh0bWxfZXNjYXBlKCZyZW5kZXJlZCkKLSAgICAgICAgKTsKICAgICB9CiAKLSAgICBPayhyZW5k
ZXJlZCkKKyAgICBFcnIoRXJyb3I6OkdlbmVyaWMoCisgICAgICAgICJmYWlsZWQgdG8gcmVuZGVy
IG5vdGlmaWNhdGlvbiB0ZW1wbGF0ZSwgYWxsIHRlbXBsYXRlIGNhbmRpZGF0ZXMgYXJlIGVycm9u
ZW91cyBvciBtaXNzaW5nIgorICAgICAgICAgICAgLmludG8oKSwKKyAgICApKQogfQogCiAjW2Nm
Zyh0ZXN0KV0KLS0gCjIuMzkuNQoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpwdmUtZGV2ZWwgbWFpbGluZyBsaXN0CnB2ZS1kZXZlbEBsaXN0cy5wcm94
bW94LmNvbQpodHRwczovL2xpc3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5m
by9wdmUtZGV2ZWwK