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 389D21FF162 for <inbox@lore.proxmox.com>; Mon, 7 Apr 2025 15:51:34 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 3B4093FCBD; Mon, 7 Apr 2025 15:50:57 +0200 (CEST) From: Markus Frank <m.frank@proxmox.com> To: pve-devel@lists.proxmox.com Date: Mon, 7 Apr 2025 15:49:46 +0200 Message-Id: <20250407134950.265270-7-m.frank@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250407134950.265270-1-m.frank@proxmox.com> References: <20250407134950.265270-1-m.frank@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL -1.001 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 KAM_MAILER 2 Automated Mailer Tag Left in Email 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 manager v17 06/10] api: add resource map api endpoints for directories 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> U2lnbmVkLW9mZi1ieTogTWFya3VzIEZyYW5rIDxtLmZyYW5rQHByb3htb3guY29tPgpSZXZpZXdl ZC1ieTogRmlvbmEgRWJuZXIgPGYuZWJuZXJAcHJveG1veC5jb20+ClJldmlld2VkLWJ5OiBMYXVy ZW7Im2l1IExlYWh1LVZsxINkdWN1IDxsLmxlYWh1LXZsYWR1Y3VAcHJveG1veC5jb20KUmV2aWV3 ZWQtYnk6IERhbmllbCBLcmFsIDxkLmtyYWxAcHJveG1veC5jb20+ClRlc3RlZC1ieTogTGF1cmVu yJtpdSBMZWFodS1WbMSDZHVjdSA8bC5sZWFodS12bGFkdWN1QHByb3htb3guY29tPgpUZXN0ZWQt Ynk6IERhbmllbCBLcmFsIDxkLmtyYWxAcHJveG1veC5jb20+ClRlc3RlZC1ieTogTHVrYXMgV2Fn bmVyIDxsLndhZ25lckBwcm94bW94LmNvbT4KLS0tCm5vdGhpbmcgY2hhbmdlZCBpbiB2MTcKCiBQ VkUvQVBJMi9DbHVzdGVyL01hcHBpbmcucG0gICAgICAgfCAgIDcgKwogUFZFL0FQSTIvQ2x1c3Rl ci9NYXBwaW5nL0Rpci5wbSAgIHwgMzA4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog UFZFL0FQSTIvQ2x1c3Rlci9NYXBwaW5nL01ha2VmaWxlIHwgICAxICsKIDMgZmlsZXMgY2hhbmdl ZCwgMzE2IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBQVkUvQVBJMi9DbHVzdGVy L01hcHBpbmcvRGlyLnBtCgpkaWZmIC0tZ2l0IGEvUFZFL0FQSTIvQ2x1c3Rlci9NYXBwaW5nLnBt IGIvUFZFL0FQSTIvQ2x1c3Rlci9NYXBwaW5nLnBtCmluZGV4IDQwMzg2NTc5Li45ZjBkY2QyYiAx MDA2NDQKLS0tIGEvUFZFL0FQSTIvQ2x1c3Rlci9NYXBwaW5nLnBtCisrKyBiL1BWRS9BUEkyL0Ns dXN0ZXIvTWFwcGluZy5wbQpAQCAtMywxMSArMywxNyBAQCBwYWNrYWdlIFBWRTo6QVBJMjo6Q2x1 c3Rlcjo6TWFwcGluZzsKIHVzZSBzdHJpY3Q7CiB1c2Ugd2FybmluZ3M7CiAKK3VzZSBQVkU6OkFQ STI6OkNsdXN0ZXI6Ok1hcHBpbmc6OkRpcjsKIHVzZSBQVkU6OkFQSTI6OkNsdXN0ZXI6Ok1hcHBp bmc6OlBDSTsKIHVzZSBQVkU6OkFQSTI6OkNsdXN0ZXI6Ok1hcHBpbmc6OlVTQjsKIAogdXNlIGJh c2UgcXcoUFZFOjpSRVNUSGFuZGxlcik7CiAKK19fUEFDS0FHRV9fLT5yZWdpc3Rlcl9tZXRob2Qg KHsKKyAgICBzdWJjbGFzcyA9PiAiUFZFOjpBUEkyOjpDbHVzdGVyOjpNYXBwaW5nOjpEaXIiLAor ICAgIHBhdGggPT4gJ2RpcicsCit9KTsKKwogX19QQUNLQUdFX18tPnJlZ2lzdGVyX21ldGhvZCAo ewogICAgIHN1YmNsYXNzID0+ICJQVkU6OkFQSTI6OkNsdXN0ZXI6Ok1hcHBpbmc6OlBDSSIsCiAg ICAgcGF0aCA9PiAncGNpJywKQEAgLTQxLDYgKzQ3LDcgQEAgX19QQUNLQUdFX18tPnJlZ2lzdGVy X21ldGhvZCAoewogCW15ICgkcGFyYW0pID0gQF87CiAKIAlteSAkcmVzdWx0ID0gWworCSAgICB7 IG5hbWUgPT4gJ2RpcicgfSwKIAkgICAgeyBuYW1lID0+ICdwY2knIH0sCiAJICAgIHsgbmFtZSA9 PiAndXNiJyB9LAogCV07CmRpZmYgLS1naXQgYS9QVkUvQVBJMi9DbHVzdGVyL01hcHBpbmcvRGly LnBtIGIvUFZFL0FQSTIvQ2x1c3Rlci9NYXBwaW5nL0Rpci5wbQpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMC4uZjkwNWNlZjMKLS0tIC9kZXYvbnVsbAorKysgYi9QVkUvQVBJMi9D bHVzdGVyL01hcHBpbmcvRGlyLnBtCkBAIC0wLDAgKzEsMzA4IEBACitwYWNrYWdlIFBWRTo6QVBJ Mjo6Q2x1c3Rlcjo6TWFwcGluZzo6RGlyOworCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOwor Cit1c2UgU3RvcmFibGUgcXcoZGNsb25lKTsKKwordXNlIFBWRTo6SU5vdGlmeTsKK3VzZSBQVkU6 OkpTT05TY2hlbWEgcXcoZ2V0X3N0YW5kYXJkX29wdGlvbik7Cit1c2UgUFZFOjpNYXBwaW5nOjpE aXIgKCk7Cit1c2UgUFZFOjpSUENFbnZpcm9ubWVudDsKK3VzZSBQVkU6OlNlY3Rpb25Db25maWc7 Cit1c2UgUFZFOjpUb29scyBxdyhleHRyYWN0X3BhcmFtKTsKKwordXNlIGJhc2UgcXcoUFZFOjpS RVNUSGFuZGxlcik7CisKK19fUEFDS0FHRV9fLT5yZWdpc3Rlcl9tZXRob2QgKHsKKyAgICBuYW1l ID0+ICdpbmRleCcsCisgICAgcGF0aCA9PiAnJywKKyAgICBtZXRob2QgPT4gJ0dFVCcsCisgICAg IyBvbmx5IHByb3h5IGlmIHdlIGdpdmUgdGhlICdjaGVjay1ub2RlJyBwYXJhbWV0ZXIKKyAgICBw cm94eXRvX2NhbGxiYWNrID0+IHN1YiB7CisJbXkgKCRycGNlbnYsICRwcm94eXRvLCAkcGFyYW0p ID0gQF87CisJcmV0dXJuICRwYXJhbS0+eydjaGVjay1ub2RlJ30gLy8gJ2xvY2FsaG9zdCc7Cisg ICAgfSwKKyAgICBkZXNjcmlwdGlvbiA9PiAiTGlzdCBkaXJlY3RvcnkgbWFwcGluZyIsCisgICAg cGVybWlzc2lvbnMgPT4geworCWRlc2NyaXB0aW9uID0+ICJPbmx5IGxpc3RzIGVudHJpZXMgd2hl cmUgeW91IGhhdmUgJ01hcHBpbmcuTW9kaWZ5JywgJ01hcHBpbmcuVXNlJyBvciIKKwkgICAgLiIg J01hcHBpbmcuQXVkaXQnIHBlcm1pc3Npb25zIG9uICcvbWFwcGluZy9kaXIvPGlkPicuIiwKKwl1 c2VyID0+ICdhbGwnLAorICAgIH0sCisgICAgcGFyYW1ldGVycyA9PiB7CisJYWRkaXRpb25hbFBy b3BlcnRpZXMgPT4gMCwKKwlwcm9wZXJ0aWVzID0+IHsKKwkgICAgJ2NoZWNrLW5vZGUnID0+IGdl dF9zdGFuZGFyZF9vcHRpb24oJ3B2ZS1ub2RlJywgeworCQlkZXNjcmlwdGlvbiA9PiAiSWYgZ2l2 ZW4sIGNoZWNrcyB0aGUgY29uZmlndXJhdGlvbnMgb24gdGhlIGdpdmVuIG5vZGUgZm9yIgorCQkg ICAgLiIgY29ycmVjdG5lc3MsIGFuZCBhZGRzIHJlbGV2YW50IGRpYWdub3N0aWNzIGZvciB0aGUg ZGlyZWN0b3J5IHRvIHRoZSByZXNwb25zZS4iLAorCQlvcHRpb25hbCA9PiAxLAorCSAgICB9KSwK Kwl9LAorICAgIH0sCisgICAgcmV0dXJucyA9PiB7CisJdHlwZSA9PiAnYXJyYXknLAorCWl0ZW1z ID0+IHsKKwkgICAgdHlwZSA9PiAib2JqZWN0IiwKKwkgICAgcHJvcGVydGllcyA9PiB7CisJCWlk ID0+IHsKKwkJICAgIHR5cGUgPT4gJ3N0cmluZycsCisJCSAgICBkZXNjcmlwdGlvbiA9PiAiVGhl IGxvZ2ljYWwgSUQgb2YgdGhlIG1hcHBpbmcuIgorCQl9LAorCQltYXAgPT4geworCQkgICAgdHlw ZSA9PiAnYXJyYXknLAorCQkgICAgZGVzY3JpcHRpb24gPT4gIlRoZSBlbnRyaWVzIG9mIHRoZSBt YXBwaW5nLiIsCisJCSAgICBpdGVtcyA9PiB7CisJCQl0eXBlID0+ICdzdHJpbmcnLAorCQkJZGVz Y3JpcHRpb24gPT4gIkEgbWFwcGluZyBmb3IgYSBub2RlLiIsCisJCSAgICB9LAorCQl9LAorCQlk ZXNjcmlwdGlvbiA9PiB7CisJCSAgICB0eXBlID0+ICdzdHJpbmcnLAorCQkgICAgZGVzY3JpcHRp b24gPT4gIkEgZGVzY3JpcHRpb24gb2YgdGhlIGxvZ2ljYWwgbWFwcGluZy4iLAorCQl9LAorCQlj aGVja3MgPT4geworCQkgICAgdHlwZSA9PiAiYXJyYXkiLAorCQkgICAgb3B0aW9uYWwgPT4gMSwK KwkJICAgIGRlc2NyaXB0aW9uID0+ICJBIGxpc3Qgb2YgY2hlY2tzLCBvbmx5IHByZXNlbnQgaWYg J2NoZWNrLW5vZGUnIGlzIHNldC4iLAorCQkgICAgaXRlbXMgPT4geworCQkJdHlwZSA9PiAnb2Jq ZWN0JywKKwkJCXByb3BlcnRpZXMgPT4geworCQkJICAgIHNldmVyaXR5ID0+IHsKKwkJCQl0eXBl ID0+ICJzdHJpbmciLAorCQkJCWVudW0gPT4gWyd3YXJuaW5nJywgJ2Vycm9yJ10sCisJCQkJZGVz Y3JpcHRpb24gPT4gIlRoZSBzZXZlcml0eSBvZiB0aGUgZXJyb3IiLAorCQkJICAgIH0sCisJCQkg ICAgbWVzc2FnZSA9PiB7CisJCQkJdHlwZSA9PiAic3RyaW5nIiwKKwkJCQlkZXNjcmlwdGlvbiA9 PiAiVGhlIG1lc3NhZ2Ugb2YgdGhlIGVycm9yIiwKKwkJCSAgICB9LAorCQkJfSwKKwkJICAgIH0K KwkJfSwKKwkgICAgfSwKKwl9LAorCWxpbmtzID0+IFsgeyByZWwgPT4gJ2NoaWxkJywgaHJlZiA9 PiAie2lkfSIgfSBdLAorICAgIH0sCisgICAgY29kZSA9PiBzdWIgeworCW15ICgkcGFyYW0pID0g QF87CisKKwlteSAkcnBjZW52ID0gUFZFOjpSUENFbnZpcm9ubWVudDo6Z2V0KCk7CisJbXkgJGF1 dGh1c2VyID0gJHJwY2Vudi0+Z2V0X3VzZXIoKTsKKworCW15ICRjaGVja19ub2RlID0gJHBhcmFt LT57J2NoZWNrLW5vZGUnfTsKKwlteSAkbG9jYWxfbm9kZSA9IFBWRTo6SU5vdGlmeTo6bm9kZW5h bWUoKTsKKworCWRpZSAid3Jvbmcgbm9kZSB0byBjaGVjayAtICRjaGVja19ub2RlICE9ICRsb2Nh bF9ub2RlXG4iCisJICAgIGlmIGRlZmluZWQoJGNoZWNrX25vZGUpICYmICRjaGVja19ub2RlIG5l ICdsb2NhbGhvc3QnICYmICRjaGVja19ub2RlIG5lICRsb2NhbF9ub2RlOworCisJbXkgJGNmZyA9 IFBWRTo6TWFwcGluZzo6RGlyOjpjb25maWcoKTsKKworCW15ICRjYW5fc2VlX21hcHBpbmdfcHJp dnMgPSBbJ01hcHBpbmcuTW9kaWZ5JywgJ01hcHBpbmcuVXNlJywgJ01hcHBpbmcuQXVkaXQnXTsK KworCW15ICRyZXMgPSBbXTsKKwlmb3IgbXkgJGlkIChrZXlzICRjZmctPntpZHN9LT4lKikgewor CSAgICBuZXh0IGlmICEkcnBjZW52LT5jaGVja19hbnkoJGF1dGh1c2VyLCAiL21hcHBpbmcvZGly LyRpZCIsICRjYW5fc2VlX21hcHBpbmdfcHJpdnMsIDEpOworCSAgICBuZXh0IGlmICEkY2ZnLT57 aWRzfS0+eyRpZH07CisKKwkgICAgbXkgJGVudHJ5ID0gZGNsb25lKCRjZmctPntpZHN9LT57JGlk fSk7CisJICAgICRlbnRyeS0+e2lkfSA9ICRpZDsKKwkgICAgJGVudHJ5LT57ZGlnZXN0fSA9ICRj ZmctPntkaWdlc3R9OworCisJICAgIGlmIChkZWZpbmVkKCRjaGVja19ub2RlKSkgeworCQkkZW50 cnktPntjaGVja3N9ID0gW107CisJCWlmIChteSAkbWFwcGluZ3MgPSBQVkU6Ok1hcHBpbmc6OkRp cjo6Z2V0X25vZGVfbWFwcGluZygkY2ZnLCAkaWQsICRjaGVja19ub2RlKSkgeworCQkgICAgaWYg KCFzY2FsYXIoJG1hcHBpbmdzLT5AKikpIHsKKwkJCXB1c2ggJGVudHJ5LT57Y2hlY2tzfS0+QCos IHsKKwkJCSAgICBzZXZlcml0eSA9PiAnd2FybmluZycsCisJCQkgICAgbWVzc2FnZSA9PiAiTm8g bWFwcGluZyBmb3Igbm9kZSAkY2hlY2tfbm9kZS4iLAorCQkJfTsKKwkJICAgIH0KKwkJICAgIGZv ciBteSAkbWFwcGluZyAoJG1hcHBpbmdzLT5AKikgeworCQkJZXZhbCB7IFBWRTo6TWFwcGluZzo6 RGlyOjphc3NlcnRfdmFsaWQoJG1hcHBpbmcpIH07CisJCQlpZiAobXkgJGVyciA9ICRAKSB7CisJ CQkgICAgcHVzaCAkZW50cnktPntjaGVja3N9LT5AKiwgeworCQkJCXNldmVyaXR5ID0+ICdlcnJv cicsCisJCQkJbWVzc2FnZSA9PiAiSW52YWxpZCBjb25maWd1cmF0aW9uOiAkZXJyIiwKKwkJCSAg ICB9OworCQkJfQorCQkgICAgfQorCQl9CisJICAgIH0KKworCSAgICBwdXNoIEAkcmVzLCAkZW50 cnk7CisJfQorCisJcmV0dXJuICRyZXM7CisgICAgfSwKK30pOworCitfX1BBQ0tBR0VfXy0+cmVn aXN0ZXJfbWV0aG9kICh7CisgICAgbmFtZSA9PiAnZ2V0JywKKyAgICBwcm90ZWN0ZWQgPT4gMSwK KyAgICBwYXRoID0+ICd7aWR9JywKKyAgICBtZXRob2QgPT4gJ0dFVCcsCisgICAgZGVzY3JpcHRp b24gPT4gIkdldCBkaXJlY3RvcnkgbWFwcGluZy4iLAorICAgIHBlcm1pc3Npb25zID0+IHsKKwlj aGVjayA9Plsnb3InLAorCSAgICBbJ3Blcm0nLCAnL21hcHBpbmcvZGlyL3tpZH0nLCBbJ01hcHBp bmcuVXNlJ11dLAorCSAgICBbJ3Blcm0nLCAnL21hcHBpbmcvZGlyL3tpZH0nLCBbJ01hcHBpbmcu TW9kaWZ5J11dLAorCSAgICBbJ3Blcm0nLCAnL21hcHBpbmcvZGlyL3tpZH0nLCBbJ01hcHBpbmcu QXVkaXQnXV0sCisJXSwKKyAgICB9LAorICAgIHBhcmFtZXRlcnMgPT4geworCWFkZGl0aW9uYWxQ cm9wZXJ0aWVzID0+IDAsCisJcHJvcGVydGllcyA9PiB7CisJICAgIGlkID0+IHsKKwkJdHlwZSA9 PiAnc3RyaW5nJywKKwkJZm9ybWF0ID0+ICdwdmUtY29uZmlnaWQnLAorCSAgICB9LAorCX0KKyAg ICB9LAorICAgIHJldHVybnMgPT4geyB0eXBlID0+ICdvYmplY3QnIH0sCisgICAgY29kZSA9PiBz dWIgeworCW15ICgkcGFyYW0pID0gQF87CisKKwlteSAkY2ZnID0gUFZFOjpNYXBwaW5nOjpEaXI6 OmNvbmZpZygpOworCW15ICRpZCA9ICRwYXJhbS0+e2lkfTsKKworCW15ICRlbnRyeSA9ICRjZmct PntpZHN9LT57JGlkfTsKKwlkaWUgIm1hcHBpbmcgJyRwYXJhbS0+e2lkfScgbm90IGZvdW5kXG4i IGlmICFkZWZpbmVkKCRlbnRyeSk7CisKKwlteSAkZGF0YSA9IGRjbG9uZSgkZW50cnkpOworCisJ JGRhdGEtPntkaWdlc3R9ID0gJGNmZy0+e2RpZ2VzdH07CisKKwlyZXR1cm4gJGRhdGE7CisgICAg fX0pOworCitfX1BBQ0tBR0VfXy0+cmVnaXN0ZXJfbWV0aG9kICh7CisgICAgbmFtZSA9PiAnY3Jl YXRlJywKKyAgICBwcm90ZWN0ZWQgPT4gMSwKKyAgICBwYXRoID0+ICcnLAorICAgIG1ldGhvZCA9 PiAnUE9TVCcsCisgICAgZGVzY3JpcHRpb24gPT4gIkNyZWF0ZSBhIG5ldyBkaXJlY3RvcnkgbWFw cGluZy4iLAorICAgIHBlcm1pc3Npb25zID0+IHsKKwljaGVjayA9PiBbJ3Blcm0nLCAnL21hcHBp bmcvZGlyJywgWydNYXBwaW5nLk1vZGlmeSddXSwKKyAgICB9LAorICAgIHBhcmFtZXRlcnMgPT4g UFZFOjpNYXBwaW5nOjpEaXItPmNyZWF0ZVNjaGVtYSgxKSwKKyAgICByZXR1cm5zID0+IHsKKwl0 eXBlID0+ICdudWxsJywKKyAgICB9LAorICAgIGNvZGUgPT4gc3ViIHsKKwlteSAoJHBhcmFtKSA9 IEBfOworCisJbXkgJGlkID0gZXh0cmFjdF9wYXJhbSgkcGFyYW0sICdpZCcpOworCisJbXkgJHBs dWdpbiA9IFBWRTo6TWFwcGluZzo6RGlyLT5sb29rdXAoJ2RpcicpOworCW15ICRvcHRzID0gJHBs dWdpbi0+Y2hlY2tfY29uZmlnKCRpZCwgJHBhcmFtLCAxLCAxKTsKKworCW15ICRtYXBfbGlzdCA9 ICRvcHRzLT57bWFwfTsKKwlQVkU6Ok1hcHBpbmc6OkRpcjo6YXNzZXJ0X3ZhbGlkX21hcF9saXN0 KCRtYXBfbGlzdCk7CisKKwlQVkU6Ok1hcHBpbmc6OkRpcjo6bG9ja19kaXJfY29uZmlnKHN1YiB7 CisJICAgIG15ICRjZmcgPSBQVkU6Ok1hcHBpbmc6OkRpcjo6Y29uZmlnKCk7CisKKwkgICAgZGll ICJkaXIgSUQgJyRpZCcgYWxyZWFkeSBkZWZpbmVkXG4iIGlmIGRlZmluZWQoJGNmZy0+e2lkc30t PnskaWR9KTsKKworCSAgICAkY2ZnLT57aWRzfS0+eyRpZH0gPSAkb3B0czsKKworCSAgICBQVkU6 Ok1hcHBpbmc6OkRpcjo6d3JpdGVfZGlyX2NvbmZpZygkY2ZnKTsKKworCX0sICJjcmVhdGUgZGly ZWN0b3J5IG1hcHBpbmcgZmFpbGVkIik7CisKKwlyZXR1cm47CisgICAgfSwKK30pOworCitfX1BB Q0tBR0VfXy0+cmVnaXN0ZXJfbWV0aG9kICh7CisgICAgbmFtZSA9PiAndXBkYXRlJywKKyAgICBw cm90ZWN0ZWQgPT4gMSwKKyAgICBwYXRoID0+ICd7aWR9JywKKyAgICBtZXRob2QgPT4gJ1BVVCcs CisgICAgZGVzY3JpcHRpb24gPT4gIlVwZGF0ZSBhIGRpcmVjdG9yeSBtYXBwaW5nLiIsCisgICAg cGVybWlzc2lvbnMgPT4geworCWNoZWNrID0+IFsncGVybScsICcvbWFwcGluZy9kaXIve2lkfScs IFsnTWFwcGluZy5Nb2RpZnknXV0sCisgICAgfSwKKyAgICBwYXJhbWV0ZXJzID0+IFBWRTo6TWFw cGluZzo6RGlyLT51cGRhdGVTY2hlbWEoKSwKKyAgICByZXR1cm5zID0+IHsKKwl0eXBlID0+ICdu dWxsJywKKyAgICB9LAorICAgIGNvZGUgPT4gc3ViIHsKKwlteSAoJHBhcmFtKSA9IEBfOworCisJ bXkgJGRpZ2VzdCA9IGV4dHJhY3RfcGFyYW0oJHBhcmFtLCAnZGlnZXN0Jyk7CisJbXkgJGRlbGV0 ZSA9IGV4dHJhY3RfcGFyYW0oJHBhcmFtLCAnZGVsZXRlJyk7CisJbXkgJGlkID0gZXh0cmFjdF9w YXJhbSgkcGFyYW0sICdpZCcpOworCisJaWYgKCRkZWxldGUpIHsKKwkgICAgJGRlbGV0ZSA9IFsg UFZFOjpUb29sczo6c3BsaXRfbGlzdCgkZGVsZXRlKSBdOworCX0KKworCVBWRTo6TWFwcGluZzo6 RGlyOjpsb2NrX2Rpcl9jb25maWcoc3ViIHsKKwkgICAgbXkgJGNmZyA9IFBWRTo6TWFwcGluZzo6 RGlyOjpjb25maWcoKTsKKworCSAgICBQVkU6OlRvb2xzOjphc3NlcnRfaWZfbW9kaWZpZWQoJGNm Zy0+e2RpZ2VzdH0sICRkaWdlc3QpIGlmIGRlZmluZWQoJGRpZ2VzdCk7CisKKwkgICAgZGllICJk aXIgSUQgJyRpZCcgZG9lcyBub3QgZXhpc3RcbiIgaWYgIWRlZmluZWQoJGNmZy0+e2lkc30tPnsk aWR9KTsKKworCSAgICBteSAkcGx1Z2luID0gUFZFOjpNYXBwaW5nOjpEaXItPmxvb2t1cCgnZGly Jyk7CisJICAgIG15ICRvcHRzID0gJHBsdWdpbi0+Y2hlY2tfY29uZmlnKCRpZCwgJHBhcmFtLCAx LCAxKTsKKworCSAgICBteSAkbWFwX2xpc3QgPSAkb3B0cy0+e21hcH07CisJICAgIFBWRTo6TWFw cGluZzo6RGlyOjphc3NlcnRfdmFsaWRfbWFwX2xpc3QoJG1hcF9saXN0KTsKKworCSAgICBteSAk ZGF0YSA9ICRjZmctPntpZHN9LT57JGlkfTsKKworCSAgICBteSAkb3B0aW9ucyA9ICRwbHVnaW4t PnByaXZhdGUoKS0+e29wdGlvbnN9LT57ZGlyfTsKKwkgICAgUFZFOjpTZWN0aW9uQ29uZmlnOjpk ZWxldGVfZnJvbV9jb25maWcoJGRhdGEsICRvcHRpb25zLCAkb3B0cywgJGRlbGV0ZSk7CisKKwkg ICAgJGRhdGEtPnskX30gPSAkb3B0cy0+eyRffSBmb3Iga2V5cyAkb3B0cy0+JSo7CisKKwkgICAg UFZFOjpNYXBwaW5nOjpEaXI6OndyaXRlX2Rpcl9jb25maWcoJGNmZyk7CisKKwl9LCAidXBkYXRl IGRpcmVjdG9yeSBtYXBwaW5nIGZhaWxlZCIpOworCisJcmV0dXJuOworICAgIH0sCit9KTsKKwor X19QQUNLQUdFX18tPnJlZ2lzdGVyX21ldGhvZCAoeworICAgIG5hbWUgPT4gJ2RlbGV0ZScsCisg ICAgcHJvdGVjdGVkID0+IDEsCisgICAgcGF0aCA9PiAne2lkfScsCisgICAgbWV0aG9kID0+ICdE RUxFVEUnLAorICAgIGRlc2NyaXB0aW9uID0+ICJSZW1vdmUgZGlyZWN0b3J5IG1hcHBpbmcuIiwK KyAgICBwZXJtaXNzaW9ucyA9PiB7CisJY2hlY2sgPT4gWyAncGVybScsICcvbWFwcGluZy9kaXIn LCBbJ01hcHBpbmcuTW9kaWZ5J11dLAorICAgIH0sCisgICAgcGFyYW1ldGVycyA9PiB7CisJYWRk aXRpb25hbFByb3BlcnRpZXMgPT4gMCwKKwlwcm9wZXJ0aWVzID0+IHsKKwkgICAgaWQgPT4gewor CQl0eXBlID0+ICdzdHJpbmcnLAorCQlmb3JtYXQgPT4gJ3B2ZS1jb25maWdpZCcsCisJICAgIH0s CisJfQorICAgIH0sCisgICAgcmV0dXJucyA9PiB7IHR5cGUgPT4gJ251bGwnIH0sCisgICAgY29k ZSA9PiBzdWIgeworCW15ICgkcGFyYW0pID0gQF87CisKKwlteSAkaWQgPSAkcGFyYW0tPntpZH07 CisKKwlQVkU6Ok1hcHBpbmc6OkRpcjo6bG9ja19kaXJfY29uZmlnKHN1YiB7CisJICAgIG15ICRj ZmcgPSBQVkU6Ok1hcHBpbmc6OkRpcjo6Y29uZmlnKCk7CisKKwkgICAgaWYgKCRjZmctPntpZHN9 LT57JGlkfSkgeworCQlkZWxldGUgJGNmZy0+e2lkc30tPnskaWR9OworCSAgICB9CisKKwkgICAg UFZFOjpNYXBwaW5nOjpEaXI6OndyaXRlX2Rpcl9jb25maWcoJGNmZyk7CisKKwl9LCAiZGVsZXRl IGRpciBtYXBwaW5nIGZhaWxlZCIpOworCisJcmV0dXJuOworICAgIH0KK30pOworCisxOwpkaWZm IC0tZ2l0IGEvUFZFL0FQSTIvQ2x1c3Rlci9NYXBwaW5nL01ha2VmaWxlIGIvUFZFL0FQSTIvQ2x1 c3Rlci9NYXBwaW5nL01ha2VmaWxlCmluZGV4IGU3MzQ1YWI0Li41ZGJiM2Y1YyAxMDA2NDQKLS0t IGEvUFZFL0FQSTIvQ2x1c3Rlci9NYXBwaW5nL01ha2VmaWxlCisrKyBiL1BWRS9BUEkyL0NsdXN0 ZXIvTWFwcGluZy9NYWtlZmlsZQpAQCAtMyw2ICszLDcgQEAgaW5jbHVkZSAuLi8uLi8uLi8uLi9k ZWZpbmVzLm1rCiAjIGZvciBub2RlIGluZGVwZW5kZW50LCBjbHVzdGVyLXdpZGUgYXBwbGljYWJs ZSwgQVBJIGVuZHBvaW50cwogIyBlbnN1cmUgd2UgZG8gbm90IGNvbmZsaWN0IHdpdGggZmlsZXMg c2hpcHBlZCBieSBwdmUtY2x1c3RlciEhCiBQRVJMU09VUkNFPSAJXAorCURpci5wbSAgXAogCVBD SS5wbQlcCiAJVVNCLnBtCiAKLS0gCjIuMzkuNQoKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpwdmUtZGV2ZWwgbWFpbGluZyBsaXN0CnB2ZS1kZXZlbEBs aXN0cy5wcm94bW94LmNvbQpodHRwczovL2xpc3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1h bi9saXN0aW5mby9wdmUtZGV2ZWwK