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 8C4B81FF396
	for <inbox@lore.proxmox.com>; Tue,  7 May 2024 18:01:20 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id AF57912FC5;
	Tue,  7 May 2024 18:01:25 +0200 (CEST)
From: Christian Ebner <c.ebner@proxmox.com>
To: pbs-devel@lists.proxmox.com
Date: Tue,  7 May 2024 17:52:36 +0200
Message-Id: <20240507155244.793819-55-c.ebner@proxmox.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20240507155244.793819-1-c.ebner@proxmox.com>
References: <20240507155244.793819-1-c.ebner@proxmox.com>
MIME-Version: 1.0
X-SPAM-LEVEL: Spam detection results:  0
 AWL 0.027 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: [pbs-devel] [PATCH v5 proxmox-backup 54/62] test-suite: add
 detection mode change benchmark
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>

SW50cm9kdWNlcyB0aGUgcHJveG1veC1iYWNrdXAtdGVzdC1zdWl0ZSBjcmVhdGUgaW50ZW5kZWQg
Zm9yCmJlbmNobWFya2luZyBhbmQgaGlnaCBsZXZlbCB1c2VyIGZhY2luZyB0ZXN0aW5nLgoKVGhl
IGluaXRpYWwgY29kZSBpbmNsdWRlcyBhIGJlbmNobWFyayBpbnRlbmRlZCBmb3IgcmVncmVzc2lv
biB0ZXN0aW5nIG9mCnRoZSBwcm94bW94LWJhY2t1cC1jbGllbnQgd2hlbiB1c2luZyBkaWZmZXJl
bnQgZmlsZSBkZXRlY3Rpb24gbW9kZXMKZHVyaW5nIGJhY2t1cC4KClNpZ25lZC1vZmYtYnk6IENo
cmlzdGlhbiBFYm5lciA8Yy5lYm5lckBwcm94bW94LmNvbT4KLS0tCmNoYW5nZXMgc2luY2UgdmVy
c2lvbiA0OgotIG5vIGNoYW5nZXMKCiBDYXJnby50b21sICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgIDEgKwogcHJveG1veC1iYWNrdXAtdGVzdC1zdWl0ZS9DYXJnby50b21s
ICAgICAgICAgIHwgIDE4ICsrCiAuLi4vc3JjL2RldGVjdGlvbl9tb2RlX2JlbmNoLnJzICAgICAg
ICAgICAgICAgfCAyOTQgKysrKysrKysrKysrKysrKysrCiBwcm94bW94LWJhY2t1cC10ZXN0LXN1
aXRlL3NyYy9tYWluLnJzICAgICAgICAgfCAgMTcgKwogNCBmaWxlcyBjaGFuZ2VkLCAzMzAgaW5z
ZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHByb3htb3gtYmFja3VwLXRlc3Qtc3VpdGUv
Q2FyZ28udG9tbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHByb3htb3gtYmFja3VwLXRlc3Qtc3VpdGUv
c3JjL2RldGVjdGlvbl9tb2RlX2JlbmNoLnJzCiBjcmVhdGUgbW9kZSAxMDA2NDQgcHJveG1veC1i
YWNrdXAtdGVzdC1zdWl0ZS9zcmMvbWFpbi5ycwoKZGlmZiAtLWdpdCBhL0NhcmdvLnRvbWwgYi9D
YXJnby50b21sCmluZGV4IDU3NThiMzdiYy4uOTUwZGQ5NjcxIDEwMDY0NAotLS0gYS9DYXJnby50
b21sCisrKyBiL0NhcmdvLnRvbWwKQEAgLTQ1LDYgKzQ1LDcgQEAgbWVtYmVycyA9IFsKICAgICAi
cHJveG1veC1yZXN0b3JlLWRhZW1vbiIsCiAKICAgICAicHhhci1iaW4iLAorICAgICJwcm94bW94
LWJhY2t1cC10ZXN0LXN1aXRlIiwKIF0KIAogW2xpYl0KZGlmZiAtLWdpdCBhL3Byb3htb3gtYmFj
a3VwLXRlc3Qtc3VpdGUvQ2FyZ28udG9tbCBiL3Byb3htb3gtYmFja3VwLXRlc3Qtc3VpdGUvQ2Fy
Z28udG9tbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjNmODk5ZTliYwot
LS0gL2Rldi9udWxsCisrKyBiL3Byb3htb3gtYmFja3VwLXRlc3Qtc3VpdGUvQ2FyZ28udG9tbApA
QCAtMCwwICsxLDE4IEBACitbcGFja2FnZV0KK25hbWUgPSAicHJveG1veC1iYWNrdXAtdGVzdC1z
dWl0ZSIKK3ZlcnNpb24gPSAiMC4xLjAiCithdXRob3JzLndvcmtzcGFjZSA9IHRydWUKK2VkaXRp
b24ud29ya3NwYWNlID0gdHJ1ZQorCitbZGVwZW5kZW5jaWVzXQorYW55aG93LndvcmtzcGFjZSA9
IHRydWUKK2Z1dHVyZXMud29ya3NwYWNlID0gdHJ1ZQorc2VyZGUud29ya3NwYWNlID0gdHJ1ZQor
c2VyZGVfanNvbi53b3Jrc3BhY2UgPSB0cnVlCisKK3Bicy1jbGllbnQud29ya3NwYWNlID0gdHJ1
ZQorcGJzLWtleS1jb25maWcud29ya3NwYWNlID0gdHJ1ZQorcGJzLXRvb2xzLndvcmtzcGFjZSA9
IHRydWUKK3Byb3htb3gtYXN5bmMud29ya3NwYWNlID0gdHJ1ZQorcHJveG1veC1yb3V0ZXIgPSB7
IHdvcmtzcGFjZSA9IHRydWUsIGZlYXR1cmVzID0gWyJjbGkiXSB9Citwcm94bW94LXNjaGVtYSA9
IHsgd29ya3NwYWNlID0gdHJ1ZSwgZmVhdHVyZXMgPSBbICJhcGktbWFjcm8iIF0gfQpkaWZmIC0t
Z2l0IGEvcHJveG1veC1iYWNrdXAtdGVzdC1zdWl0ZS9zcmMvZGV0ZWN0aW9uX21vZGVfYmVuY2gu
cnMgYi9wcm94bW94LWJhY2t1cC10ZXN0LXN1aXRlL3NyYy9kZXRlY3Rpb25fbW9kZV9iZW5jaC5y
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjlhM2M3NjgwMgotLS0gL2Rl
di9udWxsCisrKyBiL3Byb3htb3gtYmFja3VwLXRlc3Qtc3VpdGUvc3JjL2RldGVjdGlvbl9tb2Rl
X2JlbmNoLnJzCkBAIC0wLDAgKzEsMjk0IEBACit1c2Ugc3RkOjpwYXRoOjpQYXRoOwordXNlIHN0
ZDo6cHJvY2Vzczo6Q29tbWFuZDsKK3VzZSBzdGQ6Ont0aHJlYWQsIHRpbWV9OworCit1c2UgYW55
aG93Ojp7YmFpbCwgZm9ybWF0X2VyciwgRXJyb3J9OwordXNlIHNlcmRlX2pzb246OlZhbHVlOwor
Cit1c2UgcGJzX2NsaWVudDo6eworICAgIHRvb2xzOjp7Y29tcGxldGVfcmVwb3NpdG9yeSwga2V5
X3NvdXJjZTo6S0VZRklMRV9TQ0hFTUEsIFJFUE9fVVJMX1NDSEVNQX0sCisgICAgQkFDS1VQX1NP
VVJDRV9TQ0hFTUEsCit9OwordXNlIHBic190b29sczo6anNvbjsKK3VzZSBwcm94bW94X3JvdXRl
cjo6Y2xpOjoqOwordXNlIHByb3htb3hfc2NoZW1hOjphcGk7CisKK2NvbnN0IERFRkFVTFRfTlVN
QkVSX09GX1JVTlM6IHU2NCA9IDU7CisvLyBIb21lcGFnZSBodHRwczovL2NvY29kYXRhc2V0Lm9y
Zy8KK2NvbnN0IENPQ09fREFUQVNFVF9TUkNfVVJMOiAmJ3N0YXRpYyBzdHIgPSAiaHR0cDovL2lt
YWdlcy5jb2NvZGF0YXNldC5vcmcvemlwcy91bmxhYmVsZWQyMDE3LnppcCI7CisvLyBIb21lcGFn
ZSBodHRwczovL2tlcm5lbC5vcmcvCitjb25zdCBMSU5VWF9HSVRfUkVQT1NJVE9SWTogJidzdGF0
aWMgc3RyID0KKyAgICAiZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwv
Z2l0L3N0YWJsZS9saW51eC5naXQiOworY29uc3QgTElOVVhfR0lUX1RBRzogJidzdGF0aWMgc3Ry
ID0gInY2LjUuNSI7CisKK3B1YihjcmF0ZSkgZm4gZGV0ZWN0aW9uX21vZGVfYmVuY2hfbWd0bV9j
bGkoKSAtPiBDbGlDb21tYW5kTWFwIHsKKyAgICBsZXQgcnVuX2NtZF9kZWYgPSBDbGlDb21tYW5k
OjpuZXcoJkFQSV9NRVRIT0RfREVURUNUSU9OX01PREVfQkVOQ0hfUlVOKQorICAgICAgICAuYXJn
X3BhcmFtKCZbImJhY2t1cHNwZWMiXSkKKyAgICAgICAgLmNvbXBsZXRpb25fY2IoInJlcG9zaXRv
cnkiLCBjb21wbGV0ZV9yZXBvc2l0b3J5KQorICAgICAgICAuY29tcGxldGlvbl9jYigia2V5Zmls
ZSIsIGNvbXBsZXRlX2ZpbGVfbmFtZSk7CisKKyAgICBsZXQgcHJlcGFyZV9jbWRfZGVmID0gQ2xp
Q29tbWFuZDo6bmV3KCZBUElfTUVUSE9EX0RFVEVDVElPTl9NT0RFX0JFTkNIX1BSRVBBUkUpOwor
ICAgIENsaUNvbW1hbmRNYXA6Om5ldygpCisgICAgICAgIC5pbnNlcnQoInByZXBhcmUiLCBwcmVw
YXJlX2NtZF9kZWYpCisgICAgICAgIC5pbnNlcnQoInJ1biIsIHJ1bl9jbWRfZGVmKQorfQorCisj
W2FwaSgKKyAgIGlucHV0OiB7CisgICAgICAgcHJvcGVydGllczogeworICAgICAgICAgICBiYWNr
dXBzcGVjOiB7CisgICAgICAgICAgICAgICB0eXBlOiBBcnJheSwKKyAgICAgICAgICAgICAgIGRl
c2NyaXB0aW9uOiAiTGlzdCBvZiBiYWNrdXAgc291cmNlIHNwZWNpZmljYXRpb25zIChbPGxhYmVs
LmV4dD46PHBhdGg+XSAuLi4pIiwKKyAgICAgICAgICAgICAgIGl0ZW1zOiB7CisgICAgICAgICAg
ICAgICAgICAgc2NoZW1hOiBCQUNLVVBfU09VUkNFX1NDSEVNQSwKKyAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgfSwKKyAgICAgICAgICAgcmVwb3NpdG9yeTogeworICAgICAgICAgICAgICAg
c2NoZW1hOiBSRVBPX1VSTF9TQ0hFTUEsCisgICAgICAgICAgICAgICBvcHRpb25hbDogdHJ1ZSwK
KyAgICAgICAgICAgfSwKKyAgICAgICAgICAga2V5ZmlsZTogeworICAgICAgICAgICAgICAgc2No
ZW1hOiBLRVlGSUxFX1NDSEVNQSwKKyAgICAgICAgICAgICAgIG9wdGlvbmFsOiB0cnVlLAorICAg
ICAgICAgICB9LAorICAgICAgICAgICAibnVtYmVyLW9mLXJ1bnMiOiB7CisgICAgICAgICAgICAg
ICBkZXNjcmlwdGlvbjogIk51bWJlciBvZiB0aW1lcyB0byByZXBlYXQgdGhlIHJ1biIsCisgICAg
ICAgICAgICAgICB0eXBlOiBJbnRlZ2VyLAorICAgICAgICAgICAgICAgb3B0aW9uYWw6IHRydWUs
CisgICAgICAgICAgIH0sCisgICAgICAgfQorICAgfQorKV0KKy8vLyBSdW4gYmVuY2htYXJrIHRv
IGNvbXBhcmUgcGVyZm9ybWFuY2UgZm9yIGJhY2t1cHMgdXNpbmcgZGlmZmVyZW50IGNoYW5nZSBk
ZXRlY3Rpb24gbW9kZXMuCitmbiBkZXRlY3Rpb25fbW9kZV9iZW5jaF9ydW4ocGFyYW06IFZhbHVl
KSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7CisgICAgbGV0IG11dCBwYmMgPSBDb21tYW5kOjpuZXco
InByb3htb3gtYmFja3VwLWNsaWVudCIpOworICAgIHBiYy5hcmcoImJhY2t1cCIpOworCisgICAg
bGV0IGJhY2t1cHNwZWNfbGlzdCA9IGpzb246OnJlcXVpcmVkX2FycmF5X3BhcmFtKCZwYXJhbSwg
ImJhY2t1cHNwZWMiKT87CisgICAgZm9yIGJhY2t1cHNwZWMgaW4gYmFja3Vwc3BlY19saXN0IHsK
KyAgICAgICAgbGV0IGFyZyA9IGJhY2t1cHNwZWMKKyAgICAgICAgICAgIC5hc19zdHIoKQorICAg
ICAgICAgICAgLm9rX29yX2Vsc2UofHwgZm9ybWF0X2VyciEoImZhaWxlZCB0byBwYXJzZSBiYWNr
dXBzcGVjIikpPzsKKyAgICAgICAgcGJjLmFyZyhhcmcpOworICAgIH0KKworICAgIGlmIGxldCBT
b21lKHJlcG8pID0gcGFyYW1bInJlcG9zaXRvcnkiXS5hc19zdHIoKSB7CisgICAgICAgIHBiYy5h
cmcoIi0tcmVwb3NpdG9yeSIpOworICAgICAgICBwYmMuYXJnOjo8JnN0cj4ocmVwbyk7CisgICAg
fQorCisgICAgaWYgbGV0IFNvbWUoa2V5ZmlsZSkgPSBwYXJhbVsia2V5ZmlsZSJdLmFzX3N0cigp
IHsKKyAgICAgICAgcGJjLmFyZygiLS1rZXlmaWxlIik7CisgICAgICAgIHBiYy5hcmc6Ojwmc3Ry
PihrZXlmaWxlKTsKKyAgICB9CisKKyAgICBsZXQgbnVtYmVyX29mX3J1bnMgPSBtYXRjaCBwYXJh
bVsibnVtYmVyX29mX3J1bnMiXS5hc191NjQoKSB7CisgICAgICAgIFNvbWUobikgPT4gbiwKKyAg
ICAgICAgTm9uZSA9PiBERUZBVUxUX05VTUJFUl9PRl9SVU5TLAorICAgIH07CisgICAgaWYgbnVt
YmVyX29mX3J1bnMgPCAxIHsKKyAgICAgICAgYmFpbCEoIk51bWJlciBvZiBydW5zIG11c3QgYmUg
Z3JlYXRlciB0aGFuIDEsIGFib3J0aW5nLiIpOworICAgIH0KKworICAgIC8vIEZpcnN0IHJ1biBp
cyBhbiBpbml0aWFsIHJ1biB0byBtYWtlIHN1cmUgYWxsIGNodW5rcyBhcmUgcHJlc2VudCBhbHJl
YWR5LCByZWR1Y2Ugc2lkZSBlZmZlY3RzCisgICAgLy8gYnkgZmlsZXN5c3RlbSBjYWNoZXMgZWNj
LgorICAgIGxldCBfc3RhdHNfaW5pdGlhbCA9IGRvX3J1bigmbXV0IHBiYywgMSk/OworCisgICAg
cHJpbnRsbiEoIlxuU3RhcnRpbmcgYmVuY2htYXJraW5nIGJhY2t1cHMgd2l0aCByZWd1bGFyIGRl
dGVjdGlvbiBtb2RlLi4uXG4iKTsKKyAgICBsZXQgc3RhdHNfcmVnID0gZG9fcnVuKCZtdXQgcGJj
LCBudW1iZXJfb2ZfcnVucyk/OworCisgICAgLy8gTWFrZSBzdXJlIHRvIGhhdmUgYSB2YWxpZCBy
ZWZlcmVuY2Ugd2l0aCBjYXRhbG9nIGZyb21hdCB2ZXJzaW9uIDIKKyAgICBwYmMuYXJnKCItLWNo
YW5nZS1kZXRlY3Rpb24tbW9kZT1tZXRhZGF0YSIpOworICAgIGxldCBfc3RhdHNfaW5pdGlhbCA9
IGRvX3J1bigmbXV0IHBiYywgMSk/OworCisgICAgcHJpbnRsbiEoIlxuU3RhcnRpbmcgYmVuY2ht
YXJraW5nIGJhY2t1cHMgd2l0aCBtZXRhZGF0YSBkZXRlY3Rpb24gbW9kZS4uLlxuIik7CisgICAg
bGV0IHN0YXRzX21ldGEgPSBkb19ydW4oJm11dCBwYmMsIG51bWJlcl9vZl9ydW5zKT87CisKKyAg
ICBwcmludGxuISgiXG5Db21wbGV0ZWQgYmVuY2htYXJrIHdpdGgge251bWJlcl9vZl9ydW5zfSBy
dW5zIGZvciBlYWNoIHRlc3RlZCBtb2RlLiIpOworICAgIHByaW50bG4hKCJcbkNvbXBsZXRlZCBy
ZWd1bGFyIGJhY2t1cCB3aXRoOiIpOworICAgIHByaW50bG4hKCJUb3RhbCBydW50aW1lOiB7Oi4y
fSBzIiwgc3RhdHNfcmVnLnRvdGFsKTsKKyAgICBwcmludGxuISgiQXZlcmFnZTogezouMn0gwrEg
ezouMn0gcyIsIHN0YXRzX3JlZy5hdmcsIHN0YXRzX3JlZy5zdGRkZXYpOworICAgIHByaW50bG4h
KCJNaW46IHs6LjJ9IHMiLCBzdGF0c19yZWcubWluKTsKKyAgICBwcmludGxuISgiTWF4OiB7Oi4y
fSBzIiwgc3RhdHNfcmVnLm1heCk7CisKKyAgICBwcmludGxuISgiXG5Db21wbGV0ZWQgbWV0YWRh
dGEgZGV0ZWN0aW9uIG1vZGUgYmFja3VwIHdpdGg6Iik7CisgICAgcHJpbnRsbiEoIlRvdGFsIHJ1
bnRpbWU6IHs6LjJ9IHMiLCBzdGF0c19tZXRhLnRvdGFsKTsKKyAgICBwcmludGxuISgKKyAgICAg
ICAgIkF2ZXJhZ2U6IHs6LjJ9IMKxIHs6LjJ9IHMiLAorICAgICAgICBzdGF0c19tZXRhLmF2Zywg
c3RhdHNfbWV0YS5zdGRkZXYKKyAgICApOworICAgIHByaW50bG4hKCJNaW46IHs6LjJ9IHMiLCBz
dGF0c19tZXRhLm1pbik7CisgICAgcHJpbnRsbiEoIk1heDogezouMn0gcyIsIHN0YXRzX21ldGEu
bWF4KTsKKworICAgIGxldCBkaWZmX3N0ZGRldiA9CisgICAgICAgICgoc3RhdHNfbWV0YS5zdGRk
ZXYgKiBzdGF0c19tZXRhLnN0ZGRldikgKyAoc3RhdHNfcmVnLnN0ZGRldiAqIHN0YXRzX3JlZy5z
dGRkZXYpKS5zcXJ0KCk7CisgICAgcHJpbnRsbiEoIlxuRGlmZmVyZW5jZXMgKG1ldGFkYXRhIGJh
c2VkIC0gcmVndWxhcik6Iik7CisgICAgcHJpbnRsbiEoCisgICAgICAgICJEZWx0YSB0b3RhbCBy
dW50aW1lOiB7Oi4yfSBzICh7Oi4yfSAlKSIsCisgICAgICAgIHN0YXRzX21ldGEudG90YWwgLSBz
dGF0c19yZWcudG90YWwsCisgICAgICAgIDEwMC4wICogKHN0YXRzX21ldGEudG90YWwgLyBzdGF0
c19yZWcudG90YWwgLSAxLjApLAorICAgICk7CisgICAgcHJpbnRsbiEoCisgICAgICAgICJEZWx0
YSBhdmVyYWdlOiB7Oi4yfSDCsSB7Oi4yfSBzICh7Oi4yfSAlKSIsCisgICAgICAgIHN0YXRzX21l
dGEuYXZnIC0gc3RhdHNfcmVnLmF2ZywKKyAgICAgICAgZGlmZl9zdGRkZXYsCisgICAgICAgIDEw
MC4wICogKHN0YXRzX21ldGEuYXZnIC8gc3RhdHNfcmVnLmF2ZyAtIDEuMCksCisgICAgKTsKKyAg
ICBwcmludGxuISgKKyAgICAgICAgIkRlbHRhIG1pbjogezouMn0gcyAoezouMn0gJSkiLAorICAg
ICAgICBzdGF0c19tZXRhLm1pbiAtIHN0YXRzX3JlZy5taW4sCisgICAgICAgIDEwMC4wICogKHN0
YXRzX21ldGEubWluIC8gc3RhdHNfcmVnLm1pbiAtIDEuMCksCisgICAgKTsKKyAgICBwcmludGxu
ISgKKyAgICAgICAgIkRlbHRhIG1heDogezouMn0gcyAoezouMn0gJSkiLAorICAgICAgICBzdGF0
c19tZXRhLm1heCAtIHN0YXRzX3JlZy5tYXgsCisgICAgICAgIDEwMC4wICogKHN0YXRzX21ldGEu
bWF4IC8gc3RhdHNfcmVnLm1heCAtIDEuMCksCisgICAgKTsKKworICAgIE9rKCgpKQorfQorCitm
biBkb19ydW4oY21kOiAmbXV0IENvbW1hbmQsIG5fcnVuczogdTY0KSAtPiBSZXN1bHQ8U3RhdGlz
dGljcywgRXJyb3I+IHsKKyAgICAvLyBBdm9pZCBjb25zZWN1dGl2ZSBzbmFwc2hvdCB0aW1lc3Rh
bXBzIGNvbGxpc2lvbgorICAgIHRocmVhZDo6c2xlZXAodGltZTo6RHVyYXRpb246OmZyb21fbWls
bGlzKDEwMDApKTsKKyAgICBsZXQgbXV0IHRpbWluZ3MgPSBWZWM6OndpdGhfY2FwYWNpdHkobl9y
dW5zIGFzIHVzaXplKTsKKyAgICBmb3IgaXRlcmF0aW9uIGluIDEuLm5fcnVucyArIDEgeworICAg
ICAgICBsZXQgc3RhcnQgPSBzdGQ6OnRpbWU6OlN5c3RlbVRpbWU6Om5vdygpOworICAgICAgICBs
ZXQgbXV0IGNoaWxkID0gY21kLnNwYXduKCk/OworICAgICAgICBsZXQgZXhpdF9jb2RlID0gY2hp
bGQud2FpdCgpPzsKKyAgICAgICAgbGV0IGVsYXBzZWQgPSBzdGFydC5lbGFwc2VkKCk/OworICAg
ICAgICB0aW1pbmdzLnB1c2goZWxhcHNlZCk7CisgICAgICAgIGlmICFleGl0X2NvZGUuc3VjY2Vz
cygpIHsKKyAgICAgICAgICAgIGJhaWwhKCJSdW4gbnVtYmVyIHtpdGVyYXRpb259IG9mIHtuX3J1
bnN9IGZhaWxlZCwgYWJvcnRpbmcuIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBPayhzdGF0
aXN0aWNzKHRpbWluZ3MpKQorfQorCitzdHJ1Y3QgU3RhdGlzdGljcyB7CisgICAgdG90YWw6IGY2
NCwKKyAgICBhdmc6IGY2NCwKKyAgICBzdGRkZXY6IGY2NCwKKyAgICBtaW46IGY2NCwKKyAgICBt
YXg6IGY2NCwKK30KKworZm4gc3RhdGlzdGljcyh0aW1pbmdzOiBWZWM8c3RkOjp0aW1lOjpEdXJh
dGlvbj4pIC0+IFN0YXRpc3RpY3MgeworICAgIGxldCB0b3RhbCA9IHRpbWluZ3MKKyAgICAgICAg
Lml0ZXIoKQorICAgICAgICAuZm9sZCgwZjY0LCB8c3VtLCB0aW1lfCBzdW0gKyB0aW1lLmFzX3Nl
Y3NfZjY0KCkpOworICAgIGxldCBhdmcgPSB0b3RhbCAvIHRpbWluZ3MubGVuKCkgYXMgZjY0Owor
ICAgIGxldCB2YXIgPSAxZjY0IC8gKHRpbWluZ3MubGVuKCkgLSAxKSBhcyBmNjQKKyAgICAgICAg
KiB0aW1pbmdzLml0ZXIoKS5mb2xkKDBmNjQsIHxzcV9zdW0sIHRpbWV8IHsKKyAgICAgICAgICAg
IGxldCBkaWZmID0gdGltZS5hc19zZWNzX2Y2NCgpIC0gYXZnOworICAgICAgICAgICAgc3Ffc3Vt
ICsgZGlmZiAqIGRpZmYKKyAgICAgICAgfSk7CisgICAgbGV0IHN0ZGRldiA9IHZhci5zcXJ0KCk7
CisgICAgbGV0IG1pbiA9IHRpbWluZ3MuaXRlcigpLm1pbigpLnVud3JhcCgpLmFzX3NlY3NfZjY0
KCk7CisgICAgbGV0IG1heCA9IHRpbWluZ3MuaXRlcigpLm1heCgpLnVud3JhcCgpLmFzX3NlY3Nf
ZjY0KCk7CisKKyAgICBTdGF0aXN0aWNzIHsKKyAgICAgICAgdG90YWwsCisgICAgICAgIGF2ZywK
KyAgICAgICAgc3RkZGV2LAorICAgICAgICBtaW4sCisgICAgICAgIG1heCwKKyAgICB9Cit9CisK
KyNbYXBpKAorICAgIGlucHV0OiB7CisgICAgICAgIHByb3BlcnRpZXM6IHsKKyAgICAgICAgICAg
IHRhcmdldDogeworICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAidGFyZ2V0IHBhdGggdG8g
cHJlcGFyZSB0ZXN0IGRhdGEuIiwKKyAgICAgICAgICAgIH0sCisgICAgICAgIH0sCisgICAgfSwK
KyldCisvLy8gUHJlcGFyZSBmaWxlcyByZXF1aXJlZCBmb3IgZGV0ZWN0aW9uIG1vZGUgYmFja3Vw
IGJlbmNobWFya3MuCitmbiBkZXRlY3Rpb25fbW9kZV9iZW5jaF9wcmVwYXJlKHRhcmdldDogU3Ry
aW5nKSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7CisgICAgbGV0IGxpbnV4X3JlcG9fdGFyZ2V0ID0g
Zm9ybWF0ISgie3RhcmdldH0vbGludXgiKTsKKyAgICBsZXQgY29jb19kYXRhc2V0X3RhcmdldCA9
IGZvcm1hdCEoInt0YXJnZXR9L2NvY28iKTsKKyAgICBnaXRfY2xvbmUoTElOVVhfR0lUX1JFUE9T
SVRPUlksIGxpbnV4X3JlcG9fdGFyZ2V0LmFzX3N0cigpKT87CisgICAgZ2l0X2NoZWNrb3V0KExJ
TlVYX0dJVF9UQUcsIGxpbnV4X3JlcG9fdGFyZ2V0LmFzX3N0cigpKT87CisgICAgd2dldF9kb3du
bG9hZChDT0NPX0RBVEFTRVRfU1JDX1VSTCwgY29jb19kYXRhc2V0X3RhcmdldC5hc19zdHIoKSk/
OworCisgICAgT2soKCkpCit9CisKK2ZuIGdpdF9jbG9uZShyZXBvOiAmc3RyLCB0YXJnZXQ6ICZz
dHIpIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKKyAgICBwcmludGxuISgiQ2FsbGluZyBnaXQgY2xv
bmUgZm9yICd7cmVwb30nLiIpOworICAgIGxldCB0YXJnZXRfZ2l0ID0gZm9ybWF0ISgie3Rhcmdl
dH0vLmdpdCIpOworICAgIGxldCBwYXRoID0gUGF0aDo6bmV3KCZ0YXJnZXRfZ2l0KTsKKyAgICBp
ZiBsZXQgT2sodHJ1ZSkgPSBwYXRoLnRyeV9leGlzdHMoKSB7CisgICAgICAgIHByaW50bG4hKCJU
YXJnZXQgJ3t0YXJnZXR9JyBhbHJlYWR5IGNvbnRhaW5zIGEgZ2l0IHJlcG9zaXRvcnksIHNraXAu
Iik7CisgICAgICAgIHJldHVybiBPaygoKSk7CisgICAgfQorCisgICAgbGV0IG11dCBnaXQgPSBD
b21tYW5kOjpuZXcoImdpdCIpOworICAgIGdpdC5hcmdzKFsiY2xvbmUiLCByZXBvLCB0YXJnZXRd
KTsKKworICAgIGxldCBtdXQgY2hpbGQgPSBnaXQuc3Bhd24oKT87CisgICAgbGV0IGV4aXRfY29k
ZSA9IGNoaWxkLndhaXQoKT87CisgICAgaWYgZXhpdF9jb2RlLnN1Y2Nlc3MoKSB7CisgICAgICAg
IHByaW50bG4hKCJnaXQgY2xvbmUgZmluaXNoZWQgd2l0aCBzdWNjZXNzLiIpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIGJhaWwhKCJnaXQgY2xvbmUgZmFpbGVkIGZvciAne3RhcmdldH0nLiIpOwor
ICAgIH0KKworICAgIE9rKCgpKQorfQorCitmbiBnaXRfY2hlY2tvdXQoY2hlY2tvdXRfdGFyZ2V0
OiAmc3RyLCB0YXJnZXQ6ICZzdHIpIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKKyAgICBwcmludGxu
ISgiQ2FsbGluZyBnaXQgY2hlY2tvdXQgJ3tjaGVja291dF90YXJnZXR9Jy4iKTsKKyAgICBsZXQg
bXV0IGdpdCA9IENvbW1hbmQ6Om5ldygiZ2l0Iik7CisgICAgZ2l0LmFyZ3MoWyItQyIsIHRhcmdl
dCwgImNoZWNrb3V0IiwgY2hlY2tvdXRfdGFyZ2V0XSk7CisKKyAgICBsZXQgbXV0IGNoaWxkID0g
Z2l0LnNwYXduKCk/OworICAgIGxldCBleGl0X2NvZGUgPSBjaGlsZC53YWl0KCk/OworICAgIGlm
IGV4aXRfY29kZS5zdWNjZXNzKCkgeworICAgICAgICBwcmludGxuISgiZ2l0IGNoZWNrb3V0IGZp
bmlzaGVkIHdpdGggc3VjY2Vzcy4iKTsKKyAgICB9IGVsc2UgeworICAgICAgICBiYWlsISgiZ2l0
IGNoZWNrb3V0ICd7Y2hlY2tvdXRfdGFyZ2V0fScgZmFpbGVkIGZvciAne3RhcmdldH0nLiIpOwor
ICAgIH0KKyAgICBPaygoKSkKK30KKworZm4gd2dldF9kb3dubG9hZChzb3VyY2VfdXJsOiAmc3Ry
LCB0YXJnZXQ6ICZzdHIpIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKKyAgICBsZXQgcGF0aCA9IFBh
dGg6Om5ldygmdGFyZ2V0KTsKKyAgICBpZiBsZXQgT2sodHJ1ZSkgPSBwYXRoLnRyeV9leGlzdHMo
KSB7CisgICAgICAgIHByaW50bG4hKCJUYXJnZXQgJ3t0YXJnZXR9JyBhbHJlYWR5IGV4aXN0cywg
c2tpcC4iKTsKKyAgICAgICAgcmV0dXJuIE9rKCgpKTsKKyAgICB9CisgICAgbGV0IHppcCA9IGZv
cm1hdCEoInt9L3VubGFiZWxlZDIwMTcuemlwIiwgdGFyZ2V0KTsKKyAgICBsZXQgcGF0aCA9IFBh
dGg6Om5ldygmemlwKTsKKyAgICBpZiAhcGF0aC50cnlfZXhpc3RzKCk/IHsKKyAgICAgICAgcHJp
bnRsbiEoIkRvd25sb2FkIGFyY2hpdmUgdXNpbmcgd2dldCBmcm9tICd7c291cmNlX3VybH0nIHRv
ICd7dGFyZ2V0fScuIik7CisgICAgICAgIGxldCBtdXQgd2dldCA9IENvbW1hbmQ6Om5ldygid2dl
dCIpOworICAgICAgICB3Z2V0LmFyZ3MoWyItUCIsIHRhcmdldCwgc291cmNlX3VybF0pOworCisg
ICAgICAgIGxldCBtdXQgY2hpbGQgPSB3Z2V0LnNwYXduKCk/OworICAgICAgICBsZXQgZXhpdF9j
b2RlID0gY2hpbGQud2FpdCgpPzsKKyAgICAgICAgaWYgZXhpdF9jb2RlLnN1Y2Nlc3MoKSB7Cisg
ICAgICAgICAgICBwcmludGxuISgiRG93bmxvYWQgZmluaXNoZWQgd2l0aCBzdWNjZXNzLiIpOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYmFpbCEoIkZhaWxlZCB0byBkb3dubG9hZCAn
e3NvdXJjZV91cmx9JyB0byAne3RhcmdldH0nLiIpOworICAgICAgICB9CisgICAgICAgIHJldHVy
biBPaygoKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcHJpbnRsbiEoIlRhcmdldCAne3Rhcmdl
dH0nIGFscmVhZHkgY29udGFpbnMgZG93bmxvYWQsIHNraXAgZG93bmxvYWQuIik7CisgICAgfQor
CisgICAgbGV0IG11dCB1bnppcCA9IENvbW1hbmQ6Om5ldygidW56aXAiKTsKKyAgICB1bnppcC5h
cmdzKFsmemlwLCAiLWQiLCB0YXJnZXRdKTsKKworICAgIGxldCBtdXQgY2hpbGQgPSB1bnppcC5z
cGF3bigpPzsKKyAgICBsZXQgZXhpdF9jb2RlID0gY2hpbGQud2FpdCgpPzsKKyAgICBpZiBleGl0
X2NvZGUuc3VjY2VzcygpIHsKKyAgICAgICAgcHJpbnRsbiEoIkV4dHJhY3RpbmcgemlwIGFyY2hp
dmUgZmluaXNoZWQgd2l0aCBzdWNjZXNzLiIpOworICAgIH0gZWxzZSB7CisgICAgICAgIGJhaWwh
KCJGYWlsZWQgdG8gZXh0cmFjdCB6aXAgYXJjaGl2ZSAne3ppcH0nIHRvICd7dGFyZ2V0fScuIik7
CisgICAgfQorICAgIE9rKCgpKQorfQpkaWZmIC0tZ2l0IGEvcHJveG1veC1iYWNrdXAtdGVzdC1z
dWl0ZS9zcmMvbWFpbi5ycyBiL3Byb3htb3gtYmFja3VwLXRlc3Qtc3VpdGUvc3JjL21haW4ucnMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi4wYTViNDM2YTgKLS0tIC9kZXYv
bnVsbAorKysgYi9wcm94bW94LWJhY2t1cC10ZXN0LXN1aXRlL3NyYy9tYWluLnJzCkBAIC0wLDAg
KzEsMTcgQEAKK3VzZSBwcm94bW94X3JvdXRlcjo6Y2xpOjoqOworCittb2QgZGV0ZWN0aW9uX21v
ZGVfYmVuY2g7CisKK2ZuIG1haW4oKSB7CisgICAgbGV0IGNtZF9kZWYgPSBDbGlDb21tYW5kTWFw
OjpuZXcoKS5pbnNlcnQoCisgICAgICAgICJkZXRlY3Rpb24tbW9kZS1iZW5jaCIsCisgICAgICAg
IGRldGVjdGlvbl9tb2RlX2JlbmNoOjpkZXRlY3Rpb25fbW9kZV9iZW5jaF9tZ3RtX2NsaSgpLAor
ICAgICk7CisKKyAgICBsZXQgcnBjZW52ID0gQ2xpRW52aXJvbm1lbnQ6Om5ldygpOworICAgIHJ1
bl9jbGlfY29tbWFuZCgKKyAgICAgICAgY21kX2RlZiwKKyAgICAgICAgcnBjZW52LAorICAgICAg
ICBTb21lKHxmdXR1cmV8IHByb3htb3hfYXN5bmM6OnJ1bnRpbWU6Om1haW4oZnV0dXJlKSksCisg
ICAgKTsKK30KLS0gCjIuMzkuMgoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpwYnMtZGV2ZWwgbWFpbGluZyBsaXN0CnBicy1kZXZlbEBsaXN0cy5wcm94
bW94LmNvbQpodHRwczovL2xpc3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5m
by9wYnMtZGV2ZWwK