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 [212.224.123.68])
	by lore.proxmox.com (Postfix) with ESMTPS id 40DCD1FF165
	for <inbox@lore.proxmox.com>; Wed, 26 Mar 2025 16:23:44 +0100 (CET)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 214713B357;
	Wed, 26 Mar 2025 16:23:39 +0100 (CET)
From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com>
To: pbs-devel@lists.proxmox.com
Date: Wed, 26 Mar 2025 16:23:10 +0100
Message-Id: <20250326152327.332179-7-f.gruenbichler@proxmox.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250326152327.332179-1-f.gruenbichler@proxmox.com>
References: <20250326152327.332179-1-f.gruenbichler@proxmox.com>
MIME-Version: 1.0
X-SPAM-LEVEL: Spam detection results:  0
 AWL 0.044 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 proxmox 06/17] http: adapt simple client to
 hyper 1.x
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>

dGhlIG1haW4gY2hhbmdlIHJlcXVpcmluZyBhZGFwdGF0aW9ucyBoZXJlIGlzIHRoYXQgaHlwZXIg
bm8gbG9uZ2VyCnByb3ZpZGVzIGEgQm9keSBzdHJ1Y3QsIGJ1dCBzd2l0Y2hlZCB0byBhIHRyYWl0
LCBzbyB3ZSB1c2Ugb3VyIG93biBCb2R5CnR5cGUgaW50cm9kdWNlZCBieSB0aGUgcHJldmlvdXMg
Y29tbWl0LgoKU2lnbmVkLW9mZi1ieTogRmFiaWFuIEdyw7xuYmljaGxlciA8Zi5ncnVlbmJpY2hs
ZXJAcHJveG1veC5jb20+Ci0tLQogQ2FyZ28udG9tbCAgICAgICAgICAgICAgICAgICAgICAgIHwg
IDggKystCiBwcm94bW94LWh0dHAvQ2FyZ28udG9tbCAgICAgICAgICAgfCAgOCArKy0KIHByb3ht
b3gtaHR0cC9zcmMvY2xpZW50L3NpbXBsZS5ycyB8IDkzICsrKysrKysrKysrKysrKysrKysrKyst
LS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgODEgaW5zZXJ0aW9ucygrKSwgMjggZGVsZXRpb25z
KC0pCgpkaWZmIC0tZ2l0IGEvQ2FyZ28udG9tbCBiL0NhcmdvLnRvbWwKaW5kZXggMjY4YjM5ZWIu
LjIwMmNmZDFlIDEwMDY0NAotLS0gYS9DYXJnby50b21sCisrKyBiL0NhcmdvLnRvbWwKQEAgLTg0
LDggKzg0LDExIEBAIGZvcm1fdXJsZW5jb2RlZCA9ICIxLjEiCiBmdXR1cmVzID0gIjAuMyIKIGhh
bmRsZWJhcnMgPSAiMy4wIgogaGV4ID0gIjAuNCIKLWh0dHAgPSAiMC4yIgotaHlwZXIgPSAiMC4x
NC41IgoraHR0cCA9ICIxIgoraHR0cC1ib2R5ID0gIjEiCitodHRwLWJvZHktdXRpbCA9ICIwLjEi
CitoeXBlci11dGlsID0gIjAuMSIKK2h5cGVyID0gIjEiCiBsZGFwMyA9IHsgdmVyc2lvbiA9ICIw
LjExIiwgZGVmYXVsdC1mZWF0dXJlcyA9IGZhbHNlIH0KIGxldHRyZSA9ICIwLjExLjEiCiBsaWJj
ID0gIjAuMi4xMDciCkBAIC0xMDUsNiArMTA4LDcgQEAgc2VyZGVfY2JvciA9ICIwLjExLjEiCiBz
ZXJkZV9qc29uID0gIjEuMCIKIHNlcmRlX3BsYWluID0gIjEuMCIKIHN5biA9IHsgdmVyc2lvbiA9
ICIyIiwgZmVhdHVyZXMgPSBbICJmdWxsIiwgInZpc2l0LW11dCIgXSB9CitzeW5jX3dyYXBwZXIg
PSAiMS4wLjIiCiB0YXIgPSAiMC40IgogdG9raW8gPSAiMS42IgogdG9raW8tb3BlbnNzbCA9ICIw
LjYuMSIKZGlmZiAtLWdpdCBhL3Byb3htb3gtaHR0cC9DYXJnby50b21sIGIvcHJveG1veC1odHRw
L0NhcmdvLnRvbWwKaW5kZXggMWZiYzcwYTguLjc2NjhjNmVlIDEwMDY0NAotLS0gYS9wcm94bW94
LWh0dHAvQ2FyZ28udG9tbAorKysgYi9wcm94bW94LWh0dHAvQ2FyZ28udG9tbApAQCAtMTQsMTMg
KzE0LDE3IEBAIHJ1c3QtdmVyc2lvbi53b3Jrc3BhY2UgPSB0cnVlCiBbZGVwZW5kZW5jaWVzXQog
YW55aG93LndvcmtzcGFjZSA9IHRydWUKIGJhc2U2NCA9IHsgd29ya3NwYWNlID0gdHJ1ZSwgb3B0
aW9uYWwgPSB0cnVlIH0KK2J5dGVzID0geyB3b3Jrc3BhY2UgPSB0cnVlLCBvcHRpb25hbCA9IHRy
dWUgfQogZnV0dXJlcyA9IHsgd29ya3NwYWNlID0gdHJ1ZSwgb3B0aW9uYWwgPSB0cnVlIH0KIGh0
dHAgPSB7IHdvcmtzcGFjZSA9IHRydWUsIG9wdGlvbmFsID0gdHJ1ZSB9CitodHRwLWJvZHkgPSB7
IHdvcmtzcGFjZSA9IHRydWUsIG9wdGlvbmFsID0gdHJ1ZSB9CitodHRwLWJvZHktdXRpbCA9IHsg
d29ya3NwYWNlID0gdHJ1ZSwgb3B0aW9uYWwgPSB0cnVlIH0KIGh5cGVyID0geyB3b3Jrc3BhY2Ug
PSB0cnVlLCBvcHRpb25hbCA9IHRydWUgfQogaHlwZXItdXRpbCA9IHsgd29ya3NwYWNlID0gdHJ1
ZSwgb3B0aW9uYWwgPSB0cnVlIH0KIG5hdGl2ZS10bHMgPSB7IHdvcmtzcGFjZSA9IHRydWUsIG9w
dGlvbmFsID0gdHJ1ZSB9CiBvcGVuc3NsID0gIHsgdmVyc2lvbiA9ICIwLjEwIiwgb3B0aW9uYWwg
PSB0cnVlIH0KIHNlcmRlX2pzb24gPSB7IHdvcmtzcGFjZSA9IHRydWUsIG9wdGlvbmFsID0gdHJ1
ZSB9CitzeW5jX3dyYXBwZXIgPSB7IHdvcmtzcGFjZSA9IHRydWUsIG9wdGlvbmFsID0gdHJ1ZSB9
CiB0b2tpbyA9IHsgd29ya3NwYWNlID0gdHJ1ZSwgZmVhdHVyZXMgPSBbXSwgb3B0aW9uYWwgPSB0
cnVlIH0KIHRva2lvLW9wZW5zc2wgPSB7IHdvcmtzcGFjZSA9IHRydWUsIG9wdGlvbmFsID0gdHJ1
ZSB9CiB1cmVxID0geyB2ZXJzaW9uID0gIjIuNCIsIGZlYXR1cmVzID0gWyJuYXRpdmUtY2VydHMi
LCAibmF0aXZlLXRscyJdLCBvcHRpb25hbCA9IHRydWUsIGRlZmF1bHQtZmVhdHVyZXMgPSBmYWxz
ZSB9CkBAIC02MCw4ICs2NCwxMCBAQCByYXRlLWxpbWl0ZWQtc3RyZWFtID0gWwogICAgICJyYXRl
LWxpbWl0ZXIiLAogXQogY2xpZW50ID0gWworICAgICJkZXA6Ynl0ZXMiLAogICAgICJkZXA6ZnV0
dXJlcyIsCi0gICAgImRlcDpoeXBlciIsCisgICAgImRlcDpodHRwLWJvZHkiLAorICAgICJkZXA6
aHR0cC1ib2R5LXV0aWwiLAogICAgICJkZXA6aHlwZXItdXRpbCIsCiAgICAgImRlcDpvcGVuc3Ns
IiwKICAgICAiZGVwOnByb3htb3gtY29tcHJlc3Npb24iLApkaWZmIC0tZ2l0IGEvcHJveG1veC1o
dHRwL3NyYy9jbGllbnQvc2ltcGxlLnJzIGIvcHJveG1veC1odHRwL3NyYy9jbGllbnQvc2ltcGxl
LnJzCmluZGV4IDA2Mjg4OWFjLi5iNTMxOGYxOSAxMDA2NDQKLS0tIGEvcHJveG1veC1odHRwL3Ny
Yy9jbGllbnQvc2ltcGxlLnJzCisrKyBiL3Byb3htb3gtaHR0cC9zcmMvY2xpZW50L3NpbXBsZS5y
cwpAQCAtMSwxOSArMSwyNCBAQAogdXNlIGFueWhvdzo6e2JhaWwsIGZvcm1hdF9lcnIsIEVycm9y
fTsKIHVzZSBzdGQ6OmNvbGxlY3Rpb25zOjpIYXNoTWFwOwogCit1c2Ugc3RkOjpmbXQ6OkRpc3Bs
YXk7CisKKyNbY2ZnKGFsbChmZWF0dXJlID0gImNsaWVudC10cmFpdCIsIGZlYXR1cmUgPSAicHJv
eG1veC1hc3luYyIpKV0KK3VzZSBodHRwOjpoZWFkZXI6OkhlYWRlck5hbWU7CiAjW2NmZyhhbGwo
ZmVhdHVyZSA9ICJjbGllbnQtdHJhaXQiLCBmZWF0dXJlID0gInByb3htb3gtYXN5bmMiKSldCiB1
c2Ugc3RkOjpzdHI6OkZyb21TdHI7CiAKIHVzZSBmdXR1cmVzOjoqOwotI1tjZmcoYWxsKGZlYXR1
cmUgPSAiY2xpZW50LXRyYWl0IiwgZmVhdHVyZSA9ICJwcm94bW94LWFzeW5jIikpXQotdXNlIGh0
dHA6OmhlYWRlcjo6SGVhZGVyTmFtZTsKKwogdXNlIGh0dHA6OntIZWFkZXJWYWx1ZSwgUmVxdWVz
dCwgUmVzcG9uc2V9OwotdXNlIGh5cGVyOjpjbGllbnQ6OkNsaWVudCBhcyBIeXBlckNsaWVudDsK
LXVzZSBoeXBlcjo6Y2xpZW50OjpIdHRwQ29ubmVjdG9yOwotdXNlIGh5cGVyOjpCb2R5OwordXNl
IGh0dHBfYm9keV91dGlsOjp7Qm9keURhdGFTdHJlYW0sIEJvZHlFeHR9OwordXNlIGh5cGVyX3V0
aWw6OmNsaWVudDo6bGVnYWN5Ojpjb25uZWN0OjpIdHRwQ29ubmVjdG9yOwordXNlIGh5cGVyX3V0
aWw6OmNsaWVudDo6bGVnYWN5OjpDbGllbnQgYXMgSHlwZXJDbGllbnQ7Cit1c2UgaHlwZXJfdXRp
bDo6cnQ6OlRva2lvRXhlY3V0b3I7CiB1c2Ugb3BlbnNzbDo6c3NsOjp7U3NsQ29ubmVjdG9yLCBT
c2xNZXRob2R9OwogCiB1c2UgY3JhdGU6OmNsaWVudDo6SHR0cHNDb25uZWN0b3I7Cit1c2UgY3Jh
dGU6OkJvZHk7CiB1c2UgY3JhdGU6Okh0dHBPcHRpb25zOwogCiAvLy8gQXN5bmNocm9ub3VzIEhU
VFAgY2xpZW50IGltcGxlbWVudGF0aW9uCkBAIC00NCw3ICs0OSw5IEBAIGltcGwgQ2xpZW50IHsK
ICAgICAgICAgaWYgbGV0IFNvbWUocmVmIHByb3h5X2NvbmZpZykgPSBvcHRpb25zLnByb3h5X2Nv
bmZpZyB7CiAgICAgICAgICAgICBodHRwcy5zZXRfcHJveHkocHJveHlfY29uZmlnLmNsb25lKCkp
OwogICAgICAgICB9Ci0gICAgICAgIGxldCBjbGllbnQgPSBIeXBlckNsaWVudDo6YnVpbGRlcigp
LmJ1aWxkKGh0dHBzKTsKKworICAgICAgICBsZXQgY2xpZW50ID0KKyAgICAgICAgICAgIEh5cGVy
Q2xpZW50OjpidWlsZGVyKFRva2lvRXhlY3V0b3I6Om5ldygpKS5idWlsZDo6PEh0dHBzQ29ubmVj
dG9yLCBCb2R5PihodHRwcyk7CiAgICAgICAgIFNlbGYgeyBjbGllbnQsIG9wdGlvbnMgfQogICAg
IH0KIApAQCAtNzQsNyArODEsNyBAQCBpbXBsIENsaWVudCB7CiAKICAgICAgICAgcmVxdWVzdAog
ICAgICAgICAgICAgLmhlYWRlcnNfbXV0KCkKLSAgICAgICAgICAgIC5pbnNlcnQoaHlwZXI6Omhl
YWRlcjo6VVNFUl9BR0VOVCwgdXNlcl9hZ2VudCk7CisgICAgICAgICAgICAuaW5zZXJ0KGh0dHA6
OmhlYWRlcjo6VVNFUl9BR0VOVCwgdXNlcl9hZ2VudCk7CiAKICAgICAgICAgc2VsZi5hZGRfcHJv
eHlfaGVhZGVycygmbXV0IHJlcXVlc3QpPzsKIApAQCAtOTQsNyArMTAxLDcgQEAgaW1wbCBDbGll
bnQgewogICAgICAgICBsZXQgbXV0IHJlcXVlc3QgPSBSZXF1ZXN0OjpidWlsZGVyKCkKICAgICAg
ICAgICAgIC5tZXRob2QoIlBPU1QiKQogICAgICAgICAgICAgLnVyaSh1cmkpCi0gICAgICAgICAg
ICAuaGVhZGVyKGh5cGVyOjpoZWFkZXI6OkNPTlRFTlRfVFlQRSwgY29udGVudF90eXBlKTsKKyAg
ICAgICAgICAgIC5oZWFkZXIoaHR0cDo6aGVhZGVyOjpDT05URU5UX1RZUEUsIGNvbnRlbnRfdHlw
ZSk7CiAKICAgICAgICAgaWYgbGV0IFNvbWUoZXh0cmFfaGVhZGVycykgPSBleHRyYV9oZWFkZXJz
IHsKICAgICAgICAgICAgIGZvciAoaGVhZGVyLCB2YWx1ZSkgaW4gZXh0cmFfaGVhZGVycyB7CkBA
IC0xMDIsOSArMTA5LDggQEAgaW1wbCBDbGllbnQgewogICAgICAgICAgICAgfQogICAgICAgICB9
CiAKLSAgICAgICAgbGV0IHJlcXVlc3QgPSByZXF1ZXN0LmJvZHkoYm9keS51bndyYXBfb3JfZGVm
YXVsdCgpKT87Ci0KLSAgICAgICAgc2VsZi5yZXF1ZXN0KHJlcXVlc3QpLmF3YWl0CisgICAgICAg
IGxldCBib2R5ID0gYm9keS51bndyYXBfb3IoQm9keTo6ZW1wdHkoKSk7CisgICAgICAgIHNlbGYu
cmVxdWVzdChyZXF1ZXN0LmJvZHkoYm9keSk/KS5hd2FpdAogICAgIH0KIAogICAgIHB1YiBhc3lu
YyBmbiBnZXRfc3RyaW5nKApAQCAtMTQ1LDcgKzE1MSw3IEBAIGltcGwgQ2xpZW50IHsKICAgICAg
ICAgICAgIE9rKHJlcykgPT4gewogICAgICAgICAgICAgICAgIGxldCAocGFydHMsIGJvZHkpID0g
cmVzLmludG9fcGFydHMoKTsKIAotICAgICAgICAgICAgICAgIGxldCBidWYgPSBoeXBlcjo6Ym9k
eTo6dG9fYnl0ZXMoYm9keSkuYXdhaXQ/OworICAgICAgICAgICAgICAgIGxldCBidWYgPSBib2R5
LmNvbGxlY3QoKS5hd2FpdD8udG9fYnl0ZXMoKTsKICAgICAgICAgICAgICAgICBsZXQgbmV3X2Jv
ZHkgPSBTdHJpbmc6OmZyb21fdXRmOChidWYudG9fdmVjKCkpCiAgICAgICAgICAgICAgICAgICAg
IC5tYXBfZXJyKHxlcnJ8IGZvcm1hdF9lcnIhKCJFcnJvciBjb252ZXJ0aW5nIEhUVFAgcmVzdWx0
IGRhdGE6IHt9IiwgZXJyKSk/OwogCkBAIC0xNTQsNiArMTYwLDI1IEBAIGltcGwgQ2xpZW50IHsK
ICAgICAgICAgICAgIEVycihlcnIpID0+IEVycihlcnIpLAogICAgICAgICB9CiAgICAgfQorCisg
ICAgcHViIGFzeW5jIGZuIHJlc3BvbnNlX2JvZHlfYnl0ZXMocmVzOiBSZXNwb25zZTxCb2R5Pikg
LT4gUmVzdWx0PEJvZHksIEVycm9yPiB7CisgICAgICAgIFNlbGY6OmNvbnZlcnRfYm9keV90b19i
eXRlcyhPayhyZXMpKQorICAgICAgICAgICAgLmF3YWl0CisgICAgICAgICAgICAubWFwKHxyZXN8
IHJlcy5pbnRvX2JvZHkoKSkKKyAgICB9CisKKyAgICBhc3luYyBmbiBjb252ZXJ0X2JvZHlfdG9f
Ynl0ZXMoCisgICAgICAgIHJlc3BvbnNlOiBSZXN1bHQ8UmVzcG9uc2U8Qm9keT4sIEVycm9yPiwK
KyAgICApIC0+IFJlc3VsdDxSZXNwb25zZTxCb2R5PiwgRXJyb3I+IHsKKyAgICAgICAgbWF0Y2gg
cmVzcG9uc2UgeworICAgICAgICAgICAgT2socmVzKSA9PiB7CisgICAgICAgICAgICAgICAgbGV0
IChwYXJ0cywgYm9keSkgPSByZXMuaW50b19wYXJ0cygpOworICAgICAgICAgICAgICAgIGxldCBi
dWYgPSBib2R5LmNvbGxlY3QoKS5hd2FpdD8udG9fYnl0ZXMoKTsKKyAgICAgICAgICAgICAgICBP
ayhSZXNwb25zZTo6ZnJvbV9wYXJ0cyhwYXJ0cywgYnVmLmludG8oKSkpCisgICAgICAgICAgICB9
CisgICAgICAgICAgICBFcnIoZXJyKSA9PiBFcnIoZXJyKSwKKyAgICAgICAgfQorICAgIH0KIH0K
IAogaW1wbCBEZWZhdWx0IGZvciBDbGllbnQgewpAQCAtMTgxLDcgKzIwNiw5IEBAIGltcGwgY3Jh
dGU6Okh0dHBDbGllbnQ8Qm9keSwgQm9keT4gZm9yIENsaWVudCB7CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KIAotICAgICAgICBwcm94bW94X2FzeW5jOjpydW50aW1lOjpibG9ja19vbihzZWxm
LnJlcXVlc3QocmVxKSkKKyAgICAgICAgcHJveG1veF9hc3luYzo6cnVudGltZTo6YmxvY2tfb24o
YXN5bmMgbW92ZSB7CisgICAgICAgICAgICBTZWxmOjpjb252ZXJ0X2JvZHlfdG9fYnl0ZXMoc2Vs
Zi5yZXF1ZXN0KHJlcSkuYXdhaXQpLmF3YWl0CisgICAgICAgIH0pCiAgICAgfQogCiAgICAgZm4g
cG9zdCgKQEAgLTE5MSwxMSArMjE4LDE2IEBAIGltcGwgY3JhdGU6Okh0dHBDbGllbnQ8Qm9keSwg
Qm9keT4gZm9yIENsaWVudCB7CiAgICAgICAgIGNvbnRlbnRfdHlwZTogT3B0aW9uPCZzdHI+LAog
ICAgICAgICBleHRyYV9oZWFkZXJzOiBPcHRpb248Jkhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+PiwK
ICAgICApIC0+IFJlc3VsdDxSZXNwb25zZTxCb2R5PiwgRXJyb3I+IHsKLSAgICAgICAgcHJveG1v
eF9hc3luYzo6cnVudGltZTo6YmxvY2tfb24oc2VsZi5wb3N0KHVyaSwgYm9keSwgY29udGVudF90
eXBlLCBleHRyYV9oZWFkZXJzKSkKKyAgICAgICAgcHJveG1veF9hc3luYzo6cnVudGltZTo6Ymxv
Y2tfb24oYXN5bmMgbW92ZSB7CisgICAgICAgICAgICBTZWxmOjpjb252ZXJ0X2JvZHlfdG9fYnl0
ZXMoc2VsZi5wb3N0KHVyaSwgYm9keSwgY29udGVudF90eXBlLCBleHRyYV9oZWFkZXJzKS5hd2Fp
dCkKKyAgICAgICAgICAgICAgICAuYXdhaXQKKyAgICAgICAgfSkKICAgICB9CiAKICAgICBmbiBy
ZXF1ZXN0KCZzZWxmLCByZXF1ZXN0OiBSZXF1ZXN0PEJvZHk+KSAtPiBSZXN1bHQ8UmVzcG9uc2U8
Qm9keT4sIEVycm9yPiB7Ci0gICAgICAgIHByb3htb3hfYXN5bmM6OnJ1bnRpbWU6OmJsb2NrX29u
KGFzeW5jIG1vdmUgeyBzZWxmLnJlcXVlc3QocmVxdWVzdCkuYXdhaXQgfSkKKyAgICAgICAgcHJv
eG1veF9hc3luYzo6cnVudGltZTo6YmxvY2tfb24oYXN5bmMgbW92ZSB7CisgICAgICAgICAgICBT
ZWxmOjpjb252ZXJ0X2JvZHlfdG9fYnl0ZXMoc2VsZi5yZXF1ZXN0KHJlcXVlc3QpLmF3YWl0KS5h
d2FpdAorICAgICAgICB9KQogICAgIH0KIH0KIApAQCAtMjMxLDcgKzI2Myw3IEBAIGltcGwgY3Jh
dGU6Okh0dHBDbGllbnQ8U3RyaW5nLCBTdHJpbmc+IGZvciBDbGllbnQgewogICAgICAgICBleHRy
YV9oZWFkZXJzOiBPcHRpb248Jkhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+PiwKICAgICApIC0+IFJl
c3VsdDxSZXNwb25zZTxTdHJpbmc+LCBFcnJvcj4gewogICAgICAgICBwcm94bW94X2FzeW5jOjpy
dW50aW1lOjpibG9ja19vbihhc3luYyBtb3ZlIHsKLSAgICAgICAgICAgIGxldCBib2R5ID0gYm9k
eS5tYXAofHN8IEJvZHk6OmZyb20ocy5pbnRvX2J5dGVzKCkpKTsKKyAgICAgICAgICAgIGxldCBi
b2R5ID0gYm9keS5tYXAofHN8IHMuaW50bygpKTsKICAgICAgICAgICAgIFNlbGY6OmNvbnZlcnRf
Ym9keV90b19zdHJpbmcoc2VsZi5wb3N0KHVyaSwgYm9keSwgY29udGVudF90eXBlLCBleHRyYV9o
ZWFkZXJzKS5hd2FpdCkKICAgICAgICAgICAgICAgICAuYXdhaXQKICAgICAgICAgfSkKQEAgLTI0
MCwyNSArMjcyLDM0IEBAIGltcGwgY3JhdGU6Okh0dHBDbGllbnQ8U3RyaW5nLCBTdHJpbmc+IGZv
ciBDbGllbnQgewogICAgIGZuIHJlcXVlc3QoJnNlbGYsIHJlcXVlc3Q6IFJlcXVlc3Q8U3RyaW5n
PikgLT4gUmVzdWx0PFJlc3BvbnNlPFN0cmluZz4sIEVycm9yPiB7CiAgICAgICAgIHByb3htb3hf
YXN5bmM6OnJ1bnRpbWU6OmJsb2NrX29uKGFzeW5jIG1vdmUgewogICAgICAgICAgICAgbGV0IChw
YXJ0cywgYm9keSkgPSByZXF1ZXN0LmludG9fcGFydHMoKTsKLSAgICAgICAgICAgIGxldCBib2R5
ID0gQm9keTo6ZnJvbShib2R5KTsKKyAgICAgICAgICAgIGxldCBib2R5ID0gYm9keS5pbnRvKCk7
CiAgICAgICAgICAgICBsZXQgcmVxdWVzdCA9IFJlcXVlc3Q6OmZyb21fcGFydHMocGFydHMsIGJv
ZHkpOwogICAgICAgICAgICAgU2VsZjo6Y29udmVydF9ib2R5X3RvX3N0cmluZyhzZWxmLnJlcXVl
c3QocmVxdWVzdCkuYXdhaXQpLmF3YWl0CiAgICAgICAgIH0pCiAgICAgfQogfQogCi0vLy8gV3Jh
cHMgdGhlIGBCb2R5YCBzdHJlYW0gaW4gYSBEZWZsYXRlRGVjb2RlciBzdHJlYW0gaWYgdGhlIGBD
b250ZW50LUVuY29kaW5nYAorLy8vIFdyYXBzIHRoZSBgUmVzcG9uc2VgIGNvbnRlbnRzIGluIGEg
RGVmbGF0ZURlY29kZXIgc3RyZWFtIGlmIHRoZSBgQ29udGVudC1FbmNvZGluZ2AKIC8vLyBoZWFk
ZXIgb2YgdGhlIHJlc3BvbnNlIGlzIGBkZWZsYXRlYCwgb3RoZXJ3aXNlIHJldHVybnMgdGhlIG9y
aWdpbmFsCiAvLy8gcmVzcG9uc2UuCi1hc3luYyBmbiBkZWNvZGVfcmVzcG9uc2UobXV0IHJlczog
UmVzcG9uc2U8Qm9keT4pIC0+IFJlc3VsdDxSZXNwb25zZTxCb2R5PiwgRXJyb3I+IHsKLSAgICBs
ZXQgU29tZShjb250ZW50X2VuY29kaW5nKSA9IHJlcy5oZWFkZXJzX211dCgpLnJlbW92ZSgmaHlw
ZXI6OmhlYWRlcjo6Q09OVEVOVF9FTkNPRElORykgZWxzZSB7Ci0gICAgICAgIHJldHVybiBPayhy
ZXMpOworYXN5bmMgZm4gZGVjb2RlX3Jlc3BvbnNlPEI+KG11dCByZXM6IFJlc3BvbnNlPEI+KSAt
PiBSZXN1bHQ8UmVzcG9uc2U8Qm9keT4sIEVycm9yPgord2hlcmUKKyAgICBCOiBodHRwX2JvZHk6
OkJvZHk8RGF0YSA9IGJ5dGVzOjpCeXRlcz4gKyBTZW5kICsgVW5waW4gKyAnc3RhdGljLAorICAg
IDxCIGFzIGh0dHBfYm9keTo6Qm9keT46OkVycm9yOiBJbnRvPEVycm9yPiArIERpc3BsYXksCit7
CisgICAgbGV0IFNvbWUoY29udGVudF9lbmNvZGluZykgPSByZXMuaGVhZGVyc19tdXQoKS5yZW1v
dmUoJmh0dHA6OmhlYWRlcjo6Q09OVEVOVF9FTkNPRElORykgZWxzZSB7CisgICAgICAgIGxldCAo
cGFydHMsIGJvZHkpID0gcmVzLmludG9fcGFydHMoKTsKKyAgICAgICAgbGV0IHN0cmVhbSA9IEJv
ZHlEYXRhU3RyZWFtOjpuZXcoYm9keSk7CisgICAgICAgIGxldCBib2R5ID0gQm9keTo6d3JhcF9z
dHJlYW0oc3RyZWFtKTsKKyAgICAgICAgcmV0dXJuIE9rKFJlc3BvbnNlOjpmcm9tX3BhcnRzKHBh
cnRzLCBib2R5KSk7CiAgICAgfTsKIAogICAgIGxldCBlbmNvZGluZ3MgPSBjb250ZW50X2VuY29k
aW5nLnRvX3N0cigpPzsKICAgICBpZiBlbmNvZGluZ3MgPT0gImRlZmxhdGUiIHsKICAgICAgICAg
bGV0IChwYXJ0cywgYm9keSkgPSByZXMuaW50b19wYXJ0cygpOwotICAgICAgICBsZXQgZGVjb2Rl
ciA9IHByb3htb3hfY29tcHJlc3Npb246OkRlZmxhdGVEZWNvZGVyOjpidWlsZGVyKGJvZHkpCisK
KyAgICAgICAgbGV0IHN0cmVhbSA9IEJvZHlEYXRhU3RyZWFtOjpuZXcoYm9keSk7CisgICAgICAg
IGxldCBkZWNvZGVyID0gcHJveG1veF9jb21wcmVzc2lvbjo6RGVmbGF0ZURlY29kZXI6OmJ1aWxk
ZXIoc3RyZWFtKQogICAgICAgICAgICAgLnpsaWIodHJ1ZSkKICAgICAgICAgICAgIC5idWlsZCgp
OwogICAgICAgICBsZXQgZGVjb2RlZF9ib2R5ID0gQm9keTo6d3JhcF9zdHJlYW0oZGVjb2Rlcik7
CkBAIC0yNzAsNiArMzExLDggQEAgYXN5bmMgZm4gZGVjb2RlX3Jlc3BvbnNlKG11dCByZXM6IFJl
c3BvbnNlPEJvZHk+KSAtPiBSZXN1bHQ8UmVzcG9uc2U8Qm9keT4sIEVycm8KIAogI1tjZmcodGVz
dCldCiBtb2QgdGVzdCB7CisgICAgdXNlIGJ5dGVzOjpCeXRlczsKKwogICAgIHVzZSBzdXBlcjo6
KjsKIAogICAgIHVzZSBzdGQ6OmlvOjpXcml0ZTsKQEAgLTI4MiwxMCArMzI1LDEwIEBAIHNpIGFs
aXF1b2QgYWV0ZXJudW0gZXQgaW5maW5pdHVtIGltcGVuZGVyZS4iIzsKICAgICAjW3Rva2lvOjp0
ZXN0XQogICAgIGFzeW5jIGZuIHRlc3RfcGFyc2VfcmVzcG9uc2VfZGVmbGF0ZSgpIHsKICAgICAg
ICAgbGV0IGVuY29kZWQgPSBlbmNvZGVfZGVmbGF0ZShCT0RZLmFzX2J5dGVzKCkpLnVud3JhcCgp
OwotICAgICAgICBsZXQgZW5jb2RlZF9ib2R5ID0gQm9keTo6ZnJvbShlbmNvZGVkKTsKKyAgICAg
ICAgbGV0IGVuY29kZWRfYm9keSA9IEJvZHk6OmZyb20oQnl0ZXM6OmZyb20oZW5jb2RlZCkpOwog
ICAgICAgICBsZXQgZW5jb2RlZF9yZXNwb25zZSA9IFJlc3BvbnNlOjpidWlsZGVyKCkKLSAgICAg
ICAgICAgIC5oZWFkZXIoaHlwZXI6OmhlYWRlcjo6Q09OVEVOVF9FTkNPRElORywgImRlZmxhdGUi
KQotICAgICAgICAgICAgLmJvZHkoZW5jb2RlZF9ib2R5KQorICAgICAgICAgICAgLmhlYWRlciho
dHRwOjpoZWFkZXI6OkNPTlRFTlRfRU5DT0RJTkcsICJkZWZsYXRlIikKKyAgICAgICAgICAgIC5i
b2R5Ojo8Qm9keT4oZW5jb2RlZF9ib2R5KQogICAgICAgICAgICAgLnVud3JhcCgpOwogCiAgICAg
ICAgIGxldCBkZWNvZGVkX3Jlc3BvbnNlID0gZGVjb2RlX3Jlc3BvbnNlKGVuY29kZWRfcmVzcG9u
c2UpLmF3YWl0LnVud3JhcCgpOwotLSAKMi4zOS41CgoKCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCnBicy1kZXZlbCBtYWlsaW5nIGxpc3QKcGJzLWRldmVs
QGxpc3RzLnByb3htb3guY29tCmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWls
bWFuL2xpc3RpbmZvL3Bicy1kZXZlbAo=