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 [IPv6:2a01:7e0:0:424::9])
	by lore.proxmox.com (Postfix) with ESMTPS id BDCA41FF183
	for <inbox@lore.proxmox.com>; Wed, 21 May 2025 16:23:49 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 5187A1A5E0;
	Wed, 21 May 2025 16:23:49 +0200 (CEST)
From: Lukas Wagner <l.wagner@proxmox.com>
To: pbs-devel@lists.proxmox.com
Date: Wed, 21 May 2025 16:23:07 +0200
Message-Id: <20250521142309.264719-3-l.wagner@proxmox.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250521142309.264719-1-l.wagner@proxmox.com>
References: <20250521142309.264719-1-l.wagner@proxmox.com>
MIME-Version: 1.0
X-SPAM-LEVEL: Spam detection results:  0
 AWL 0.018 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
Subject: [pbs-devel] [PATCH proxmox 2/2] notify: matcher: API: update
 methods for nested matcher support
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-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: pbs-devel-bounces@lists.proxmox.com
Sender: "pbs-devel" <pbs-devel-bounces@lists.proxmox.com>

VGhpcyBjb21taXQgYWRkcyBzdXBwb3J0IGZvciBzZXR0aW5nIHRoZSB0d28gbmV3IGNvbmZpZ3Vy
YXRpb24ga2V5cyBmb3IKbWF0Y2hlcnMsIGBldmFsLW1hdGNoZXJgIGFuZCBgbmVzdGVkYC4gU29t
ZSBjaGVja3MgYXJlIGFkZGVkIHRvIHByZXZlbnQKaW52YWxpZCBjb25maWdzIHdoaWNoIHdvdWxk
IGxlYWQgdG8gYW4gZXJyb3Igd2hlbiBhIG1hdGNoZXIgaXMgZXZhbHVhdGVkCihlLmcuIHJlY3Vy
c2lvbikuCgpTaWduZWQtb2ZmLWJ5OiBMdWthcyBXYWduZXIgPGwud2FnbmVyQHByb3htb3guY29t
PgotLS0KIHByb3htb3gtbm90aWZ5L3NyYy9hcGkvbWF0Y2hlci5ycyB8IDIyOSArKysrKysrKysr
KysrKysrKysrKysrKysrKysrLS0KIHByb3htb3gtbm90aWZ5L3NyYy9hcGkvbW9kLnJzICAgICB8
ICAgNCArCiBwcm94bW94LW5vdGlmeS9zcmMvbWF0Y2hlci5ycyAgICAgfCAgIDQgKwogMyBmaWxl
cyBjaGFuZ2VkLCAyMjggaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg
YS9wcm94bW94LW5vdGlmeS9zcmMvYXBpL21hdGNoZXIucnMgYi9wcm94bW94LW5vdGlmeS9zcmMv
YXBpL21hdGNoZXIucnMKaW5kZXggZjU2MDVhY2IuLjRhYjgzN2M1IDEwMDY0NAotLS0gYS9wcm94
bW94LW5vdGlmeS9zcmMvYXBpL21hdGNoZXIucnMKKysrIGIvcHJveG1veC1ub3RpZnkvc3JjL2Fw
aS9tYXRjaGVyLnJzCkBAIC0xLDEwICsxLDEzIEBACit1c2Ugc3RkOjpjb2xsZWN0aW9uczo6SGFz
aE1hcDsKK3VzZSBzdGQ6Om9wczo6RGVyZWY7CisKIHVzZSBwcm94bW94X2h0dHBfZXJyb3I6Okh0
dHBFcnJvcjsKIAogdXNlIGNyYXRlOjphcGk6Omh0dHBfZXJyOwogdXNlIGNyYXRlOjptYXRjaGVy
Ojp7CiAgICAgRGVsZXRlYWJsZU1hdGNoZXJQcm9wZXJ0eSwgTWF0Y2hlckNvbmZpZywgTWF0Y2hl
ckNvbmZpZ1VwZGF0ZXIsIE1BVENIRVJfVFlQRU5BTUUsCiB9OwotdXNlIGNyYXRlOjpDb25maWc7
Cit1c2UgY3JhdGU6OntodHRwX2JhaWwsIENvbmZpZ307CiAKIC8vLyBHZXQgYSBsaXN0IG9mIGFs
bCBtYXRjaGVycwogLy8vCkBAIC0zOSw2ICs0Miw3IEBAIHB1YiBmbiBnZXRfbWF0Y2hlcihjb25m
aWc6ICZDb25maWcsIG5hbWU6ICZzdHIpIC0+IFJlc3VsdDxNYXRjaGVyQ29uZmlnLCBIdHRwRXJy
CiBwdWIgZm4gYWRkX21hdGNoZXIoY29uZmlnOiAmbXV0IENvbmZpZywgbWF0Y2hlcl9jb25maWc6
IE1hdGNoZXJDb25maWcpIC0+IFJlc3VsdDwoKSwgSHR0cEVycm9yPiB7CiAgICAgc3VwZXI6OmVu
c3VyZV91bmlxdWUoY29uZmlnLCAmbWF0Y2hlcl9jb25maWcubmFtZSk/OwogICAgIHN1cGVyOjpl
bnN1cmVfZW5kcG9pbnRzX2V4aXN0KGNvbmZpZywgJm1hdGNoZXJfY29uZmlnLnRhcmdldCk/Owor
ICAgIGVuc3VyZV9ub19yZWN1cnNpb24oY29uZmlnLCAmbWF0Y2hlcl9jb25maWcpPzsKIAogICAg
IGNvbmZpZwogICAgICAgICAuY29uZmlnCkBAIC04Myw0MyArODcsNzMgQEAgcHViIGZuIHVwZGF0
ZV9tYXRjaGVyKAogICAgICAgICAgICAgICAgIERlbGV0ZWFibGVNYXRjaGVyUHJvcGVydHk6Oklu
dmVydE1hdGNoID0+IG1hdGNoZXIuaW52ZXJ0X21hdGNoID0gTm9uZSwKICAgICAgICAgICAgICAg
ICBEZWxldGVhYmxlTWF0Y2hlclByb3BlcnR5OjpDb21tZW50ID0+IG1hdGNoZXIuY29tbWVudCA9
IE5vbmUsCiAgICAgICAgICAgICAgICAgRGVsZXRlYWJsZU1hdGNoZXJQcm9wZXJ0eTo6RGlzYWJs
ZSA9PiBtYXRjaGVyLmRpc2FibGUgPSBOb25lLAorICAgICAgICAgICAgICAgIERlbGV0ZWFibGVN
YXRjaGVyUHJvcGVydHk6OkV2YWxNYXRjaGVyID0+IG1hdGNoZXIuZXZhbF9tYXRjaGVyLmNsZWFy
KCksCisgICAgICAgICAgICAgICAgRGVsZXRlYWJsZU1hdGNoZXJQcm9wZXJ0eTo6TmVzdGVkID0+
IG1hdGNoZXIubmVzdGVkID0gTm9uZSwKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0K
IAotICAgIGlmIGxldCBTb21lKG1hdGNoX3NldmVyaXR5KSA9IG1hdGNoZXJfdXBkYXRlci5tYXRj
aF9zZXZlcml0eSB7CisgICAgbGV0IE1hdGNoZXJDb25maWdVcGRhdGVyIHsKKyAgICAgICAgbWF0
Y2hfc2V2ZXJpdHksCisgICAgICAgIG1hdGNoX2ZpZWxkLAorICAgICAgICBtYXRjaF9jYWxlbmRh
ciwKKyAgICAgICAgbW9kZSwKKyAgICAgICAgaW52ZXJ0X21hdGNoLAorICAgICAgICBuZXN0ZWQs
CisgICAgICAgIGV2YWxfbWF0Y2hlciwKKyAgICAgICAgY29tbWVudCwKKyAgICAgICAgZGlzYWJs
ZSwKKyAgICAgICAgdGFyZ2V0LAorICAgIH0gPSBtYXRjaGVyX3VwZGF0ZXI7CisKKyAgICBpZiBs
ZXQgU29tZShtYXRjaF9zZXZlcml0eSkgPSBtYXRjaF9zZXZlcml0eSB7CiAgICAgICAgIG1hdGNo
ZXIubWF0Y2hfc2V2ZXJpdHkgPSBtYXRjaF9zZXZlcml0eTsKICAgICB9CiAKLSAgICBpZiBsZXQg
U29tZShtYXRjaF9maWVsZCkgPSBtYXRjaGVyX3VwZGF0ZXIubWF0Y2hfZmllbGQgeworICAgIGlm
IGxldCBTb21lKG1hdGNoX2ZpZWxkKSA9IG1hdGNoX2ZpZWxkIHsKICAgICAgICAgbWF0Y2hlci5t
YXRjaF9maWVsZCA9IG1hdGNoX2ZpZWxkOwogICAgIH0KIAotICAgIGlmIGxldCBTb21lKG1hdGNo
X2NhbGVuZGFyKSA9IG1hdGNoZXJfdXBkYXRlci5tYXRjaF9jYWxlbmRhciB7CisgICAgaWYgbGV0
IFNvbWUobWF0Y2hfY2FsZW5kYXIpID0gbWF0Y2hfY2FsZW5kYXIgewogICAgICAgICBtYXRjaGVy
Lm1hdGNoX2NhbGVuZGFyID0gbWF0Y2hfY2FsZW5kYXI7CiAgICAgfQogCi0gICAgaWYgbGV0IFNv
bWUobW9kZSkgPSBtYXRjaGVyX3VwZGF0ZXIubW9kZSB7CisgICAgaWYgbGV0IFNvbWUobW9kZSkg
PSBtb2RlIHsKICAgICAgICAgbWF0Y2hlci5tb2RlID0gU29tZShtb2RlKTsKICAgICB9CiAKLSAg
ICBpZiBsZXQgU29tZShpbnZlcnRfbWF0Y2gpID0gbWF0Y2hlcl91cGRhdGVyLmludmVydF9tYXRj
aCB7CisgICAgaWYgbGV0IFNvbWUoaW52ZXJ0X21hdGNoKSA9IGludmVydF9tYXRjaCB7CiAgICAg
ICAgIG1hdGNoZXIuaW52ZXJ0X21hdGNoID0gU29tZShpbnZlcnRfbWF0Y2gpOwogICAgIH0KIAot
ICAgIGlmIGxldCBTb21lKGNvbW1lbnQpID0gbWF0Y2hlcl91cGRhdGVyLmNvbW1lbnQgeworICAg
IGlmIGxldCBTb21lKGNvbW1lbnQpID0gY29tbWVudCB7CiAgICAgICAgIG1hdGNoZXIuY29tbWVu
dCA9IFNvbWUoY29tbWVudCk7CiAgICAgfQogCi0gICAgaWYgbGV0IFNvbWUoZGlzYWJsZSkgPSBt
YXRjaGVyX3VwZGF0ZXIuZGlzYWJsZSB7CisgICAgaWYgbGV0IFNvbWUoZGlzYWJsZSkgPSBkaXNh
YmxlIHsKICAgICAgICAgbWF0Y2hlci5kaXNhYmxlID0gU29tZShkaXNhYmxlKTsKICAgICB9CiAK
LSAgICBpZiBsZXQgU29tZSh0YXJnZXQpID0gbWF0Y2hlcl91cGRhdGVyLnRhcmdldCB7CisgICAg
aWYgbGV0IFNvbWUobmVzdGVkKSA9IG5lc3RlZCB7CisgICAgICAgIG1hdGNoZXIubmVzdGVkID0g
U29tZShuZXN0ZWQpOworICAgIH0KKworICAgIGlmIGxldCBTb21lKGV2YWxfbWF0Y2hlcikgPSBl
dmFsX21hdGNoZXIgeworICAgICAgICBlbnN1cmVfbWF0Y2hlcnNfZXhpc3QoY29uZmlnLCBldmFs
X21hdGNoZXIuaXRlcigpLm1hcChEZXJlZjo6ZGVyZWYpKT87CisgICAgICAgIG1hdGNoZXIuZXZh
bF9tYXRjaGVyID0gZXZhbF9tYXRjaGVyOworICAgIH0KKworICAgIGlmIGxldCBTb21lKHRhcmdl
dCkgPSB0YXJnZXQgewogICAgICAgICBzdXBlcjo6ZW5zdXJlX2VuZHBvaW50c19leGlzdChjb25m
aWcsIHRhcmdldC5hc19zbGljZSgpKT87CiAgICAgICAgIG1hdGNoZXIudGFyZ2V0ID0gdGFyZ2V0
OwogICAgIH0KIAorICAgIGVuc3VyZV9ub19yZWN1cnNpb24oY29uZmlnLCAmbWF0Y2hlcik/Owor
CisgICAgaWYgIW1hdGNoZXIubmVzdGVkLnVud3JhcF9vcl9kZWZhdWx0KCkgeworICAgICAgICBl
bnN1cmVfbm90X3JlZmVyZW5jZWRfYnlfb3RoZXJfbWF0Y2hlcihjb25maWcsICZtYXRjaGVyLm5h
bWUpPzsKKyAgICB9CisKICAgICBjb25maWcKICAgICAgICAgLmNvbmZpZwogICAgICAgICAuc2V0
X2RhdGEobmFtZSwgTUFUQ0hFUl9UWVBFTkFNRSwgJm1hdGNoZXIpCkBAIC0xNDIsMTIgKzE3Niw5
MiBAQCBwdWIgZm4gdXBkYXRlX21hdGNoZXIoCiBwdWIgZm4gZGVsZXRlX21hdGNoZXIoY29uZmln
OiAmbXV0IENvbmZpZywgbmFtZTogJnN0cikgLT4gUmVzdWx0PCgpLCBIdHRwRXJyb3I+IHsKICAg
ICAvLyBDaGVjayBpZiB0aGUgbWF0Y2hlciBleGlzdHMKICAgICBsZXQgXyA9IGdldF9tYXRjaGVy
KGNvbmZpZywgbmFtZSk/OworICAgIHN1cGVyOjplbnN1cmVfc2FmZV90b19kZWxldGUoY29uZmln
LCBuYW1lKT87CiAKICAgICBjb25maWcuY29uZmlnLnNlY3Rpb25zLnJlbW92ZShuYW1lKTsKIAog
ICAgIE9rKCgpKQogfQogCisvLy8gRW5zdXJlIHRoYXQgYSBtYXRjaGVyLCBpZGVudGlmaWVkIGJ5
IGl0J3MgbmFtZSwgaXMgbm90IHJlZmVyZW5jZWQgYnkgYW5vdGhlciBtYXRjaGVyJ3MKKy8vLyBg
ZXZhbC1tYXRjaGVyYCBzdGF0ZW1lbnQuCitmbiBlbnN1cmVfbm90X3JlZmVyZW5jZWRfYnlfb3Ro
ZXJfbWF0Y2hlcihjb25maWc6ICZDb25maWcsIG5hbWU6ICZzdHIpIC0+IFJlc3VsdDwoKSwgSHR0
cEVycm9yPiB7CisgICAgbGV0IHJlZmVycmVycyA9IHN1cGVyOjpnZXRfcmVmZXJyZXJzKGNvbmZp
ZywgbmFtZSk/OworCisgICAgaWYgIXJlZmVycmVycy5pc19lbXB0eSgpIHsKKyAgICAgICAgbGV0
IHVzZWRfYnkgPSByZWZlcnJlcnMuaW50b19pdGVyKCkuY29sbGVjdDo6PFZlYzxfPj4oKS5qb2lu
KCIsICIpOworICAgICAgICBodHRwX2JhaWwhKAorICAgICAgICAgICAgQkFEX1JFUVVFU1QsCisg
ICAgICAgICAgICAiY2FuJ3QgcmVtb3ZlICduZXN0ZWQnIGZsYWcsIG1hdGNoZXIgaXMgcmVmZXJl
bmNlZCBieToge3VzZWRfYnl9IgorICAgICAgICApOworICAgIH0KKworICAgIE9rKCgpKQorfQor
CisvLy8gRW5zdXJlIHRoYXQgYWRkaW5nIHRoZSBtYXRjaGVyIGluIGBuZXdfZW50cnlgIHRvIGBj
b25maWdgIHdvdWxkIG5vdCBjcmVhdGUKKy8vLyBhbnkgZGlyZWN0IG9yIGluZGlyZWN0IHJlY3Vy
c2lvbi4KK2ZuIGVuc3VyZV9ub19yZWN1cnNpb24oY29uZmlnOiAmQ29uZmlnLCBuZXdfZW50cnk6
ICZNYXRjaGVyQ29uZmlnKSAtPiBSZXN1bHQ8KCksIEh0dHBFcnJvcj4geworICAgIGxldCBhbGxf
bWF0Y2hlcnMgPSBnZXRfbWF0Y2hlcnMoY29uZmlnKT87CisKKyAgICBsZXQgbXV0IG1hcDogSGFz
aE1hcDxTdHJpbmcsICZNYXRjaGVyQ29uZmlnPiA9CisgICAgICAgIEhhc2hNYXA6OmZyb21faXRl
cihhbGxfbWF0Y2hlcnMuaXRlcigpLm1hcCh8aXwgKGkubmFtZS5jbG9uZSgpLCBpKSkpOworICAg
IG1hcC5pbnNlcnQobmV3X2VudHJ5Lm5hbWUuY2xvbmUoKSwgbmV3X2VudHJ5KTsKKworICAgIGZv
ciBtYXRjaGVyIGluIG1hcC52YWx1ZXMoKSB7CisgICAgICAgIGxldCBtdXQgdHJhY2UgPSBWZWM6
Om5ldygpOworICAgICAgICB0cmF2ZXJzZShtYXRjaGVyLCAmbWFwLCAmbXV0IHRyYWNlKT87Cisg
ICAgfQorCisgICAgT2soKCkpCit9CisKKy8vLyBUcmF2ZXJzZSBtYXRjaGVyIGdyYXBoIGFuZCBj
aGVjayBmb3IgYW55IHJlY3Vyc2lvbi4KK2ZuIHRyYXZlcnNlPCdhPigKKyAgICBtYXRjaGVyOiAm
J2EgTWF0Y2hlckNvbmZpZywKKyAgICBtYXRjaGVyczogJidhIEhhc2hNYXA8U3RyaW5nLCAmTWF0
Y2hlckNvbmZpZz4sCisgICAgdHJhY2U6ICZtdXQgVmVjPCYnYSBTdHJpbmc+LAorKSAtPiBSZXN1
bHQ8KCksIEh0dHBFcnJvcj4geworICAgIC8vIFJlY3Vyc2lvbiBzYWZldHk6IEVpdGhlciB3ZSBo
YXZlIGEgREFHIGFuZCB3aWxsIHRlcm1pbmF0ZSBhZnRlciB2aXNpdGluZyBhbGwKKyAgICAvLyBu
b2RlcyBpbiB0aGUgZ3JhcGgsIG9yIHdlIHF1aXQgZWFybHkgYmVjYXVzZSB3ZSBkZXRlY3RlZCBh
IGxvb3AgYnkgaGF2aW5nIHRoZSBzYW1lCisgICAgLy8gbWF0Y2hlciBuYW1lIHR3aWNlIGluIHRo
ZSB0cmFjZS4KKworICAgIGlmIHRyYWNlLmNvbnRhaW5zKCYmbWF0Y2hlci5uYW1lKSB7CisgICAg
ICAgIGxldCBtdXQgdHJhY2Vfc3RyID0gU3RyaW5nOjpuZXcoKTsKKyAgICAgICAgZm9yIGl0ZW0g
aW4gdHJhY2UgeworICAgICAgICAgICAgdHJhY2Vfc3RyLnB1c2hfc3RyKGl0ZW0pOworICAgICAg
ICAgICAgdHJhY2Vfc3RyLnB1c2hfc3RyKCIg4oaSICIpOworICAgICAgICB9CisKKyAgICAgICAg
dHJhY2Vfc3RyLnB1c2hfc3RyKCZtYXRjaGVyLm5hbWUpOworICAgICAgICBodHRwX2JhaWwhKEJB
RF9SRVFVRVNULCAibWF0Y2hlciByZWN1cnNpb24gZGV0ZWN0ZWQ6IHt0cmFjZV9zdHJ9Iik7Cisg
ICAgfQorCisgICAgdHJhY2UucHVzaCgmbWF0Y2hlci5uYW1lKTsKKworICAgIGZvciBuZXh0X25h
bWUgaW4gJm1hdGNoZXIuZXZhbF9tYXRjaGVyIHsKKyAgICAgICAgaWYgbGV0IFNvbWUobmV4dCkg
PSBtYXRjaGVycy5nZXQobmV4dF9uYW1lKSB7CisgICAgICAgICAgICB0cmF2ZXJzZShuZXh0LCBt
YXRjaGVycywgdHJhY2UpPzsKKyAgICAgICAgfQorICAgIH0KKworICAgIHRyYWNlLnBvcCgpOwor
CisgICAgT2soKCkpCit9CisKKy8vLyBFbnN1cmUgdGhhdCBgY29uZmlnYCBjb250YWlucyBhbGwg
bWF0Y2hlcnMgaW4gYG1hdGNoZXJzYC4KK2ZuIGVuc3VyZV9tYXRjaGVyc19leGlzdDwnYT4oCisg
ICAgY29uZmlnOiAmJ2EgQ29uZmlnLAorICAgIG1hdGNoZXJzOiBpbXBsIEl0ZXJhdG9yPEl0ZW0g
PSAmJ2Egc3RyPiwKKykgLT4gUmVzdWx0PCgpLCBIdHRwRXJyb3I+IHsKKyAgICBmb3IgbmFtZSBp
biBtYXRjaGVycyB7CisgICAgICAgIGdldF9tYXRjaGVyKGNvbmZpZywgbmFtZSk/OworICAgIH0K
KworICAgIE9rKCgpKQorfQorCiAjW2NmZyhhbGwodGVzdCwgZmVhdHVyZSA9ICJzZW5kbWFpbCIp
KV0KIG1vZCB0ZXN0cyB7CiAgICAgdXNlIHN1cGVyOjoqOwpAQCAtMjU5LDQgKzM3MywxMDEgQEAg
bWF0Y2hlcjogbWF0Y2hlcjIKIAogICAgICAgICBPaygoKSkKICAgICB9CisKKyAgICAjW3Rlc3Rd
CisgICAgZm4gdGVzdF9tYXRjaGVyX2RlbGV0ZV9yZWZlcmVuY2VkX21hdGNoZXJfZmFpbHMoKSB7
CisgICAgICAgIGxldCBtdXQgY29uZmlnID0gQ29uZmlnOjpuZXcoCisgICAgICAgICAgICAiCitt
YXRjaGVyOiBtYXRjaGVyMQorICAgIGV2YWwtbWF0Y2hlciBtYXRjaGVyMgorCittYXRjaGVyOiBt
YXRjaGVyMgorICAgIG5lc3RlZCB0cnVlCisiLAorICAgICAgICAgICAgIiIsCisgICAgICAgICkK
KyAgICAgICAgLnVud3JhcCgpOworCisgICAgICAgIGFzc2VydCEoZGVsZXRlX21hdGNoZXIoJm11
dCBjb25maWcsICJtYXRjaGVyMiIpLmlzX2VycigpKTsKKyAgICB9CisKKyAgICAjW3Rlc3RdCisg
ICAgZm4gdGVzdF9tYXRjaGVyX3VwZGF0ZV93b3VsZF9jcmVhdGVfaW5kaXJlY3RfcmVjdXJzaW9u
KCkgeworICAgICAgICBsZXQgbXV0IGNvbmZpZyA9IENvbmZpZzo6bmV3KAorICAgICAgICAgICAg
IgorbWF0Y2hlcjogbWF0Y2hlcjEKKyAgICBuZXN0ZWQgdHJ1ZQorICAgIGV2YWwtbWF0Y2hlciBt
YXRjaGVyMgorCittYXRjaGVyOiBtYXRjaGVyMgorICAgIG5lc3RlZCB0cnVlCisiLAorICAgICAg
ICAgICAgIiIsCisgICAgICAgICkKKyAgICAgICAgLnVud3JhcCgpOworCisgICAgICAgIGFzc2Vy
dCEodXBkYXRlX21hdGNoZXIoCisgICAgICAgICAgICAmbXV0IGNvbmZpZywKKyAgICAgICAgICAg
ICJtYXRjaGVyMiIsCisgICAgICAgICAgICBNYXRjaGVyQ29uZmlnVXBkYXRlciB7CisgICAgICAg
ICAgICAgICAgZXZhbF9tYXRjaGVyOiBTb21lKHZlYyFbIm1hdGNoZXIxIi5pbnRvKCldKSwKKyAg
ICAgICAgICAgICAgICAuLkRlZmF1bHQ6OmRlZmF1bHQoKQorICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgIE5vbmUsCisgICAgICAgICAgICBOb25lLAorICAgICAgICApCisgICAgICAgIC5pc19l
cnIoKSk7CisgICAgfQorCisgICAgI1t0ZXN0XQorICAgIGZuIHRlc3RfbWF0Y2hlcl91cGRhdGVf
d291bGRfY3JlYXRlX2RpcmVjdF9yZWN1cnNpb24oKSB7CisgICAgICAgIGxldCBtdXQgY29uZmln
ID0gQ29uZmlnOjpuZXcoCisgICAgICAgICAgICAiCittYXRjaGVyOiBtYXRjaGVyMQorICAgIG5l
c3RlZCB0cnVlCisiLAorICAgICAgICAgICAgIiIsCisgICAgICAgICkKKyAgICAgICAgLnVud3Jh
cCgpOworCisgICAgICAgIGFzc2VydCEodXBkYXRlX21hdGNoZXIoCisgICAgICAgICAgICAmbXV0
IGNvbmZpZywKKyAgICAgICAgICAgICJtYXRjaGVyMSIsCisgICAgICAgICAgICBNYXRjaGVyQ29u
ZmlnVXBkYXRlciB7CisgICAgICAgICAgICAgICAgZXZhbF9tYXRjaGVyOiBTb21lKHZlYyFbIm1h
dGNoZXIxIi5pbnRvKCldKSwKKyAgICAgICAgICAgICAgICAuLkRlZmF1bHQ6OmRlZmF1bHQoKQor
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIE5vbmUsCisgICAgICAgICAgICBOb25lLAorICAg
ICAgICApCisgICAgICAgIC5pc19lcnIoKSk7CisgICAgfQorCisgICAgI1t0ZXN0XQorICAgIGZu
IHRlc3RfcmVtb3ZlX25lc3RlZF9mb3JfcmVmZXJlbmNlZF9tYXRjaGVyKCkgeworICAgICAgICBs
ZXQgbXV0IGNvbmZpZyA9IENvbmZpZzo6bmV3KAorICAgICAgICAgICAgIgorbWF0Y2hlcjogbWF0
Y2hlcjEKKyAgICBuZXN0ZWQgdHJ1ZQorICAgIGV2YWwtbWF0Y2hlciBtYXRjaGVyMgorCittYXRj
aGVyOiBtYXRjaGVyMgorICAgIG5lc3RlZCB0cnVlCisiLAorICAgICAgICAgICAgIiIsCisgICAg
ICAgICkKKyAgICAgICAgLnVud3JhcCgpOworCisgICAgICAgIGFzc2VydCEodXBkYXRlX21hdGNo
ZXIoCisgICAgICAgICAgICAmbXV0IGNvbmZpZywKKyAgICAgICAgICAgICJtYXRjaGVyMiIsCisg
ICAgICAgICAgICBNYXRjaGVyQ29uZmlnVXBkYXRlciB7CisgICAgICAgICAgICAgICAgbmVzdGVk
OiBTb21lKGZhbHNlKSwKKyAgICAgICAgICAgICAgICAuLkRlZmF1bHQ6OmRlZmF1bHQoKQorICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgIE5vbmUsCisgICAgICAgICAgICBOb25lLAorICAgICAg
ICApCisgICAgICAgIC5pc19lcnIoKSk7CisgICAgfQogfQpkaWZmIC0tZ2l0IGEvcHJveG1veC1u
b3RpZnkvc3JjL2FwaS9tb2QucnMgYi9wcm94bW94LW5vdGlmeS9zcmMvYXBpL21vZC5ycwppbmRl
eCA3ZjgyM2JjNy4uZWU5YmIyYjkgMTAwNjQ0Ci0tLSBhL3Byb3htb3gtbm90aWZ5L3NyYy9hcGkv
bW9kLnJzCisrKyBiL3Byb3htb3gtbm90aWZ5L3NyYy9hcGkvbW9kLnJzCkBAIC0yMDIsNiArMjAy
LDEwIEBAIGZuIGdldF9yZWZlcnJlcnMoY29uZmlnOiAmQ29uZmlnLCBlbnRpdHk6ICZzdHIpIC0+
IFJlc3VsdDxIYXNoU2V0PFN0cmluZz4sIEh0dHBFCiAgICAgICAgIGlmIG1hdGNoZXIudGFyZ2V0
Lml0ZXIoKS5hbnkofHRhcmdldHwgdGFyZ2V0ID09IGVudGl0eSkgewogICAgICAgICAgICAgcmVm
ZXJyZXJzLmluc2VydChtYXRjaGVyLm5hbWUuY2xvbmUoKSk7CiAgICAgICAgIH0KKworICAgICAg
ICBpZiBtYXRjaGVyLmV2YWxfbWF0Y2hlci5pdGVyKCkuYW55KHx0YXJnZXR8IHRhcmdldCA9PSBl
bnRpdHkpIHsKKyAgICAgICAgICAgIHJlZmVycmVycy5pbnNlcnQobWF0Y2hlci5uYW1lLmNsb25l
KCkpOworICAgICAgICB9CiAgICAgfQogCiAgICAgT2socmVmZXJyZXJzKQpkaWZmIC0tZ2l0IGEv
cHJveG1veC1ub3RpZnkvc3JjL21hdGNoZXIucnMgYi9wcm94bW94LW5vdGlmeS9zcmMvbWF0Y2hl
ci5ycwppbmRleCAzY2MwMTg5YS4uNDA4NjdhYjkgMTAwNjQ0Ci0tLSBhL3Byb3htb3gtbm90aWZ5
L3NyYy9tYXRjaGVyLnJzCisrKyBiL3Byb3htb3gtbm90aWZ5L3NyYy9tYXRjaGVyLnJzCkBAIC01
MTYsNiArNTE2LDEwIEBAIHB1YiBlbnVtIERlbGV0ZWFibGVNYXRjaGVyUHJvcGVydHkgewogICAg
IE1vZGUsCiAgICAgLy8vIERlbGV0ZSBgdGFyZ2V0YAogICAgIFRhcmdldCwKKyAgICAvLy8gRGVs
ZXRlIGBuZXN0ZWRgLgorICAgIE5lc3RlZCwKKyAgICAvLy8gRGVsZXRlIGBldmFsLW1hdGNoZXJg
LgorICAgIEV2YWxNYXRjaGVyLAogfQogCiBwdWIgZm4gY2hlY2tfbWF0Y2hlczwnYT4oCi0tIAoy
LjM5LjUKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
cGJzLWRldmVsIG1haWxpbmcgbGlzdApwYnMtZGV2ZWxAbGlzdHMucHJveG1veC5jb20KaHR0cHM6
Ly9saXN0cy5wcm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vcGJzLWRldmVsCg==