From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 5BB9F1FF178 for ; Mon, 1 Dec 2025 14:17:12 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id EDFD41C947; Mon, 1 Dec 2025 14:15:01 +0100 (CET) From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= To: pdm-devel@lists.proxmox.com Date: Mon, 1 Dec 2025 14:14:45 +0100 Message-ID: <20251201131453.711514-4-f.gruenbichler@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251201131453.711514-1-f.gruenbichler@proxmox.com> References: <20251201131453.711514-1-f.gruenbichler@proxmox.com> MIME-Version: 1.0 X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1764594854344 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.046 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: [pdm-devel] [RFC v2 datacenter-manager 3/3] api: add subscription endpoints X-BeenThere: pdm-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Datacenter Manager development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Datacenter Manager development discussion Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pdm-devel-bounces@lists.proxmox.com Sender: "pdm-devel" Zm9yIHRoZSBQRE0gc3lzdGVtIGl0c2VsZiwgYnkgcHJveHkgb2YgaG93IG1hbnkgb2YgdGhlIHJl bW90ZSBub2RlcyBoYXZlIHZhbGlkCnN1YnNjcmlwdGlvbnMgYWJvdmUgYSBjZXJ0YWluIGxldmVs LgoKU2lnbmVkLW9mZi1ieTogRmFiaWFuIEdyw7xuYmljaGxlciA8Zi5ncnVlbmJpY2hsZXJAcHJv eG1veC5jb20+Ci0tLQp2MjogZml4IHR5cG8sIGFkYXB0IEFQVCBoYW5kbGluZyB0byBvbmx5IGFs bG93IEJhc2ljKyBQVkUvUEJTCnN1YnNjcmlwdGlvbnMKCiBzZXJ2ZXIvc3JjL2FwaS9ub2Rlcy9t b2QucnMgICAgICAgICAgfCAgIDIgKwogc2VydmVyL3NyYy9hcGkvbm9kZXMvc3Vic2NyaXB0aW9u LnJzIHwgMTk0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKwogc2VydmVyL3NyYy9hcGkvcmVz b3VyY2VzLnJzICAgICAgICAgIHwgICAyICstCiAzIGZpbGVzIGNoYW5nZWQsIDE5NyBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc2VydmVyL3NyYy9hcGkv bm9kZXMvc3Vic2NyaXB0aW9uLnJzCgpkaWZmIC0tZ2l0IGEvc2VydmVyL3NyYy9hcGkvbm9kZXMv bW9kLnJzIGIvc2VydmVyL3NyYy9hcGkvbm9kZXMvbW9kLnJzCmluZGV4IGEwZmUxNGEuLjNhNzk1 ZDYgMTAwNjQ0Ci0tLSBhL3NlcnZlci9zcmMvYXBpL25vZGVzL21vZC5ycworKysgYi9zZXJ2ZXIv c3JjL2FwaS9ub2Rlcy9tb2QucnMKQEAgLTExLDYgKzExLDcgQEAgcHViIG1vZCBqb3VybmFsOwog cHViIG1vZCBuZXR3b3JrOwogcHViIG1vZCBycmRkYXRhOwogcHViIG1vZCBzdGF0dXM7CitwdWIg bW9kIHN1YnNjcmlwdGlvbjsKIHB1YiBtb2Qgc3lzbG9nOwogcHViIG1vZCB0YXNrczsKIHB1YiBt b2QgdGVybXByb3h5OwpAQCAtNDUsNiArNDYsNyBAQCBwdWIgY29uc3QgU1VCRElSUzogU3ViZGly TWFwID0gJnNvcnRlZCEoWwogICAgICgiam91cm5hbCIsICZqb3VybmFsOjpST1VURVIpLAogICAg ICgibmV0d29yayIsICZuZXR3b3JrOjpST1VURVIpLAogICAgICgicnJkYXRhIiwgJnJyZGRhdGE6 OlJPVVRFUiksCisgICAgKCJzdWJzY3JpcHRpb24iLCAmc3Vic2NyaXB0aW9uOjpST1VURVIpLAog ICAgICgic3RhdHVzIiwgJnN0YXR1czo6Uk9VVEVSKSwKICAgICAoInN5c2xvZyIsICZzeXNsb2c6 OlJPVVRFUiksCiAgICAgKCJ0YXNrcyIsICZ0YXNrczo6Uk9VVEVSKSwKZGlmZiAtLWdpdCBhL3Nl cnZlci9zcmMvYXBpL25vZGVzL3N1YnNjcmlwdGlvbi5ycyBiL3NlcnZlci9zcmMvYXBpL25vZGVz L3N1YnNjcmlwdGlvbi5ycwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOWI0 NGQ1Ci0tLSAvZGV2L251bGwKKysrIGIvc2VydmVyL3NyYy9hcGkvbm9kZXMvc3Vic2NyaXB0aW9u LnJzCkBAIC0wLDAgKzEsMTk0IEBACit1c2Ugc3RkOjpjb2xsZWN0aW9uczo6SGFzaE1hcDsKKwor dXNlIGFueWhvdzo6e2JhaWwsIEVycm9yfTsKKwordXNlIHByb3htb3hfcm91dGVyOjp7UGVybWlz c2lvbiwgUm91dGVyfTsKK3VzZSBwcm94bW94X3NjaGVtYTo6YXBpOwordXNlIHByb3htb3hfc2No ZW1hOjphcGlfdHlwZXM6Ok5PREVfU0NIRU1BOwordXNlIHByb3htb3hfc3Vic2NyaXB0aW9uOjpm aWxlczo6dXBkYXRlX2FwdF9hdXRoOwordXNlIHByb3htb3hfc3Vic2NyaXB0aW9uOjp7U3Vic2Ny aXB0aW9uSW5mbywgU3Vic2NyaXB0aW9uU3RhdHVzfTsKK3VzZSBwcm94bW94X3N5czo6ZnM6OkNy ZWF0ZU9wdGlvbnM7CisKK3VzZSBwZG1fYXBpX3R5cGVzOjpyZW1vdGVzOjpSZW1vdGVUeXBlOwor dXNlIHBkbV9hcGlfdHlwZXM6OnN1YnNjcmlwdGlvbjo6eworICAgIE5vZGVTdWJzY3JpcHRpb25J bmZvLCBTdWJzY3JpcHRpb25MZXZlbCwgU3Vic2NyaXB0aW9uU3RhdGlzdGljcywKK307Cit1c2Ug cGRtX2FwaV90eXBlczo6UFJJVl9TWVNfTU9ESUZZOworCit1c2UgY3JhdGU6OmFwaTo6cmVzb3Vy Y2VzOjpnZXRfc3Vic2NyaXB0aW9uX2luZm9fZm9yX3JlbW90ZTsKKworY29uc3QgUFJPRFVDVF9V Ukw6ICZzdHIgPSAiaHR0cHM6Ly93d3cucHJveG1veC5jb20vZW4vcHJveG1veC1kYXRhY2VudGVy LW1hbmFnZXIvcHJpY2luZyI7Citjb25zdCBBUFRfQVVUSF9GTjogJnN0ciA9ICIvZXRjL2FwdC9h dXRoLmNvbmYuZC9wZG0uY29uZiI7Citjb25zdCBBUFRfQVVUSF9VUkw6ICZzdHIgPSAiZW50ZXJw cmlzZS5wcm94bW94LmNvbS9kZWJpYW4vcGRtIjsKKworLy8gbWluaW11bSByYXRpbyBvZiBub2Rl cyB3aXRoIGFjdGl2ZSBzdWJzY3JpcHRpb25zCitjb25zdCBTVUJTQ1JJUFRJT05fVEhSRVNIT0xE OiBmNjQgPSAwLjk7CisvLyBtYXggcmF0aW8gb2Ygbm9kZXMgd2l0aCBjb21tdW5pdHkgc3Vic2Ny aXB0aW9ucywgYW1vbmcgbm9kZXMgd2l0aCBzdWJzY3JpcHRpb25zCitjb25zdCBDT01NVU5JVFlf VEhSRVNIT0xEOiBmNjQgPSAwLjQ7CisKK2ZuIGFwdF9hdXRoX2ZpbGVfb3B0cygpIC0+IENyZWF0 ZU9wdGlvbnMgeworICAgIGxldCBtb2RlID0gbml4OjpzeXM6OnN0YXQ6Ok1vZGU6OmZyb21fYml0 c190cnVuY2F0ZSgwbzA2MDApOworICAgIENyZWF0ZU9wdGlvbnM6Om5ldygpLnBlcm0obW9kZSku b3duZXIobml4Ojp1bmlzdGQ6OlJPT1QpCit9CisKK2FzeW5jIGZuIGdldF9hbGxfc3Vic2NyaXB0 aW9uX2luZm9zKAorKSAtPiBSZXN1bHQ8SGFzaE1hcDxTdHJpbmcsIChSZW1vdGVUeXBlLCBIYXNo TWFwPFN0cmluZywgT3B0aW9uPE5vZGVTdWJzY3JpcHRpb25JbmZvPj4pPiwgRXJyb3I+IHsKKyAg ICBsZXQgKHJlbW90ZXNfY29uZmlnLCBfZGlnZXN0KSA9IHBkbV9jb25maWc6OnJlbW90ZXM6OmNv bmZpZygpPzsKKworICAgIGxldCBtdXQgc3Vic2NyaXB0aW9uX2luZm8gPSBIYXNoTWFwOjpuZXco KTsKKyAgICBmb3IgKHJlbW90ZV9uYW1lLCByZW1vdGUpIGluIHJlbW90ZXNfY29uZmlnLml0ZXIo KSB7CisgICAgICAgIG1hdGNoIGdldF9zdWJzY3JpcHRpb25faW5mb19mb3JfcmVtb3RlKHJlbW90 ZSwgMjQgKiA2MCAqIDYwKS5hd2FpdCB7CisgICAgICAgICAgICBPayhpbmZvKSA9PiB7CisgICAg ICAgICAgICAgICAgc3Vic2NyaXB0aW9uX2luZm8uaW5zZXJ0KHJlbW90ZV9uYW1lLnRvX3N0cmlu ZygpLCAocmVtb3RlLnR5LCBpbmZvKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBFcnIo ZXJyKSA9PiB7CisgICAgICAgICAgICAgICAgbG9nOjpkZWJ1ZyEoIkZhaWxlZCB0byBnZXQgc3Vi c2NyaXB0aW9uIGluZm8gZm9yIHJlbW90ZSB7cmVtb3RlX25hbWV9IC0ge2Vycn0iKTsKKyAgICAg ICAgICAgICAgICBzdWJzY3JpcHRpb25faW5mby5pbnNlcnQocmVtb3RlX25hbWUudG9fc3RyaW5n KCksIChyZW1vdGUudHksIEhhc2hNYXA6Om5ldygpKSk7CisgICAgICAgICAgICB9CisgICAgICAg IH0KKyAgICB9CisgICAgT2soc3Vic2NyaXB0aW9uX2luZm8pCit9CisKK2ZuIGNvdW50X3N1YnNj cmlwdGlvbnMoCisgICAgc3Vic2NyaXB0aW9uX2luZm9zOiAmSGFzaE1hcDwKKyAgICAgICAgU3Ry aW5nLAorICAgICAgICAoUmVtb3RlVHlwZSwgSGFzaE1hcDxTdHJpbmcsIE9wdGlvbjxOb2RlU3Vi c2NyaXB0aW9uSW5mbz4+KSwKKyAgICA+LAorKSAtPiBTdWJzY3JpcHRpb25TdGF0aXN0aWNzIHsK KyAgICBsZXQgbXV0IHN0YXRzID0gU3Vic2NyaXB0aW9uU3RhdGlzdGljczo6ZGVmYXVsdCgpOwor ICAgIGZvciAoX3JlbW90ZSwgKF9yZW1vdGVfdHlwZSwgcmVtb3RlX2luZm9zKSkgaW4gc3Vic2Ny aXB0aW9uX2luZm9zLml0ZXIoKSB7CisgICAgICAgIGlmIHJlbW90ZV9pbmZvcy5pc19lbXB0eSgp IHsKKyAgICAgICAgICAgIC8vIGNvdW50IHJlbW90ZXMgd2l0aG91dCBpbmZvIGFzIGF0IGxlYXN0 IG9uZSBub2RlCisgICAgICAgICAgICBzdGF0cy50b3RhbF9ub2RlcyArPSAxOworICAgICAgICAg ICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChfbm9kZSwgbm9kZV9pbmZvKSBp biByZW1vdGVfaW5mb3MuaXRlcigpIHsKKyAgICAgICAgICAgIHN0YXRzLnRvdGFsX25vZGVzICs9 IDE7CisgICAgICAgICAgICBpZiBsZXQgU29tZShpbmZvKSA9IG5vZGVfaW5mbyB7CisgICAgICAg ICAgICAgICAgaWYgaW5mby5zdGF0dXMgPT0gU3Vic2NyaXB0aW9uU3RhdHVzOjpBY3RpdmUgewor ICAgICAgICAgICAgICAgICAgICBzdGF0cy5hY3RpdmVfc3Vic2NyaXB0aW9ucyArPSAxOworICAg ICAgICAgICAgICAgICAgICBpZiBpbmZvLmxldmVsID09IFN1YnNjcmlwdGlvbkxldmVsOjpDb21t dW5pdHkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHMuY29tbXVuaXR5ICs9IDE7Cisg ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Cisg ICAgICAgIH0KKyAgICB9CisgICAgc3RhdHMKK30KKworZm4gY2hlY2tfY291bnRzKHN0YXRzOiBT dWJzY3JpcHRpb25TdGF0aXN0aWNzKSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7CisgICAgbGV0IHN1 YnNjcmliZWRfcmF0aW8gPSBzdGF0cy5hY3RpdmVfc3Vic2NyaXB0aW9ucyBhcyBmNjQgLyBzdGF0 cy50b3RhbF9ub2RlcyBhcyBmNjQ7CisgICAgbGV0IGNvbW11bml0eV9yYXRpbyA9IHN0YXRzLmNv bW11bml0eSBhcyBmNjQgLyBzdGF0cy5hY3RpdmVfc3Vic2NyaXB0aW9ucyBhcyBmNjQ7CisKKyAg ICBpZiBzdWJzY3JpYmVkX3JhdGlvID4gU1VCU0NSSVBUSU9OX1RIUkVTSE9MRCB7CisgICAgICAg IGlmIGNvbW11bml0eV9yYXRpbyA8IENPTU1VTklUWV9USFJFU0hPTEQgeworICAgICAgICAgICAg cmV0dXJuIE9rKCgpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGJhaWwhKCJUb28g bWFueSByZW1vdGUgbm9kZXMgd2l0aCBjb21tdW5pdHkgbGV2ZWwgc3Vic2NyaXB0aW9uISIpOwor ICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgYmFpbCEoIlRvbyBtYW55IHJlbW90ZSBu b2RlcyB3aXRob3V0IGFjdGl2ZSBzdWJzY3JpcHRpb24hIik7CisgICAgfQorfQorCisjW2FwaSgK KyAgICBhY2Nlc3M6IHsgcGVybWlzc2lvbjogJlBlcm1pc3Npb246OkFueWJvZHksIH0sCisgICAg aW5wdXQ6IHsKKyAgICAgICAgcHJvcGVydGllczogeworICAgICAgICAgICAgbm9kZTogeworICAg ICAgICAgICAgICAgIHNjaGVtYTogTk9ERV9TQ0hFTUEsCisgICAgICAgICAgICB9LAorICAgICAg ICB9LAorICAgIH0sCisgICAgcmV0dXJuczogeworICAgICAgICB0eXBlOiBTdWJzY3JpcHRpb25J bmZvLAorICAgIH0KKyldCisvLy8gUmV0dXJuIHN1YnNjcmlwdGlvbiBzdGF0dXMKK3B1YiBhc3lu YyBmbiBnZXRfc3Vic2NyaXB0aW9uKCkgLT4gUmVzdWx0PFN1YnNjcmlwdGlvbkluZm8sIEVycm9y PiB7CisgICAgbGV0IGluZm9zID0gZ2V0X2FsbF9zdWJzY3JpcHRpb25faW5mb3MoKS5hd2FpdD87 CisKKyAgICBsZXQgc3RhdHMgPSBjb3VudF9zdWJzY3JpcHRpb25zKCZpbmZvcyk7CisKKyAgICBp ZiBsZXQgRXJyKGVycikgPSBjaGVja19jb3VudHMoc3RhdHMpIHsKKyAgICAgICAgT2soU3Vic2Ny aXB0aW9uSW5mbyB7CisgICAgICAgICAgICBzdGF0dXM6IFN1YnNjcmlwdGlvblN0YXR1czo6SW52 YWxpZCwKKyAgICAgICAgICAgIG1lc3NhZ2U6IFNvbWUoZm9ybWF0ISgie2Vycn0iKSksCisgICAg ICAgICAgICBzZXJ2ZXJpZDogTm9uZSwKKyAgICAgICAgICAgIHVybDogU29tZShQUk9EVUNUX1VS TC5pbnRvKCkpLAorICAgICAgICAgICAgLi5EZWZhdWx0OjpkZWZhdWx0KCkKKyAgICAgICAgfSkK KyAgICB9IGVsc2UgeworICAgICAgICBPayhTdWJzY3JpcHRpb25JbmZvIHsKKyAgICAgICAgICAg IHN0YXR1czogU3Vic2NyaXB0aW9uU3RhdHVzOjpBY3RpdmUsCisgICAgICAgICAgICB1cmw6IFNv bWUoUFJPRFVDVF9VUkwuaW50bygpKSwKKyAgICAgICAgICAgIC4uRGVmYXVsdDo6ZGVmYXVsdCgp CisgICAgICAgIH0pCisgICAgfQorfQorCisjW2FwaSgKKyAgICBpbnB1dDogeworICAgICAgICBw cm9wZXJ0aWVzOiB7CisgICAgICAgICAgICBub2RlOiB7CisgICAgICAgICAgICAgICAgc2NoZW1h OiBOT0RFX1NDSEVNQSwKKyAgICAgICAgICAgIH0sCisgICAgICAgIH0sCisgICAgfSwKKyAgICBw cm90ZWN0ZWQ6IHRydWUsCisgICAgYWNjZXNzOiB7CisgICAgICAgIHBlcm1pc3Npb246ICZQZXJt aXNzaW9uOjpQcml2aWxlZ2UoJlsic3lzdGVtIl0sIFBSSVZfU1lTX01PRElGWSwgZmFsc2UpLAor ICAgIH0sCispXQorLy8vIFVwZGF0ZSBzdWJzY3JpcHRpb24gaW5mb3JtYXRpb24KK3B1YiBhc3lu YyBmbiBjaGVja19zdWJzY3JpcHRpb24oKSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7CisgICAgbGV0 IGluZm9zID0gZ2V0X2FsbF9zdWJzY3JpcHRpb25faW5mb3MoKS5hd2FpdD87CisgICAgbGV0IHN0 YXRzID0gY291bnRfc3Vic2NyaXB0aW9ucygmaW5mb3MpOworCisgICAgaWYgbGV0IEVycihlcnIp ID0gY2hlY2tfY291bnRzKHN0YXRzKSB7CisgICAgICAgIHVwZGF0ZV9hcHRfYXV0aChBUFRfQVVU SF9GTiwgYXB0X2F1dGhfZmlsZV9vcHRzKCksIEFQVF9BVVRIX1VSTCwgTm9uZSwgTm9uZSk/Owor ICAgICAgICByZXR1cm4gRXJyKGVycik7CisgICAgfQorCisgICAgbGV0IG11dCBmb3VuZCA9IGZh bHNlOworICAgICdvdXRlcjogZm9yIChyZW1vdGUsIChyZW1vdGVfdHlwZSwgcmVtb3RlX2luZm8p KSBpbiBpbmZvcy5pdGVyKCkgeworICAgICAgICBpZiAqcmVtb3RlX3R5cGUgIT0gUmVtb3RlVHlw ZTo6UHZlIHx8ICpyZW1vdGVfdHlwZSAhPSBSZW1vdGVUeXBlOjpQYnMgeworICAgICAgICAgICAg Y29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChub2RlLCBub2RlX2luZm8pIGluIHJl bW90ZV9pbmZvLml0ZXIoKSB7CisgICAgICAgICAgICBpZiBsZXQgU29tZShpbmZvKSA9IG5vZGVf aW5mbyB7CisgICAgICAgICAgICAgICAgaWYgaW5mby5zdGF0dXMgPT0gU3Vic2NyaXB0aW9uU3Rh dHVzOjpBY3RpdmUKKyAgICAgICAgICAgICAgICAgICAgJiYgaW5mby5sZXZlbCA+PSBTdWJzY3Jp cHRpb25MZXZlbDo6QmFzaWMKKyAgICAgICAgICAgICAgICAgICAgJiYgaW5mby5rZXkuaXNfc29t ZSgpCisgICAgICAgICAgICAgICAgICAgICYmIGluZm8uc2VydmVyaWQuaXNfc29tZSgpCisgICAg ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBsb2c6OmluZm8hKCJVc2luZyBzdWJz Y3JpcHRpb24gb2Ygbm9kZSAne25vZGV9JyBvZiByZW1vdGUgJ3tyZW1vdGV9JyBmb3IgZW50ZXJw cmlzZSByZXBvc2l0b3J5IGFjY2VzcyIpOworICAgICAgICAgICAgICAgICAgICB1cGRhdGVfYXB0 X2F1dGgoCisgICAgICAgICAgICAgICAgICAgICAgICBBUFRfQVVUSF9GTiwKKyAgICAgICAgICAg ICAgICAgICAgICAgIGFwdF9hdXRoX2ZpbGVfb3B0cygpLAorICAgICAgICAgICAgICAgICAgICAg ICAgQVBUX0FVVEhfVVJMLAorICAgICAgICAgICAgICAgICAgICAgICAgaW5mby5rZXkuY2xvbmUo KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZm8uc2VydmVyaWQuY2xvbmUoKSwKKyAgICAg ICAgICAgICAgICAgICAgKT87CisgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKKyAg ICAgICAgICAgICAgICAgICAgYnJlYWsgJ291dGVyOworICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICFmb3VuZCB7CisgICAgICAgIGxv Zzo6d2FybiEoCisgICAgICAgICAgICAiTm8gdmFsaWQgQmFzaWMrIHN1YnNjcmlwdGlvbiBmb3Vu ZCBmb3IgY29uZmlndXJpbmcgZW50ZXJwcmlzZSByZXBvc2l0b3J5IGFjY2Vzcy4uIgorICAgICAg ICApOworICAgICAgICB1cGRhdGVfYXB0X2F1dGgoQVBUX0FVVEhfRk4sIGFwdF9hdXRoX2ZpbGVf b3B0cygpLCBBUFRfQVVUSF9VUkwsIE5vbmUsIE5vbmUpPzsKKyAgICB9CisKKyAgICBPaygoKSkK K30KKworcHViIGNvbnN0IFJPVVRFUjogUm91dGVyID0gUm91dGVyOjpuZXcoKQorICAgIC5nZXQo JkFQSV9NRVRIT0RfR0VUX1NVQlNDUklQVElPTikKKyAgICAucG9zdCgmQVBJX01FVEhPRF9DSEVD S19TVUJTQ1JJUFRJT04pOwpkaWZmIC0tZ2l0IGEvc2VydmVyL3NyYy9hcGkvcmVzb3VyY2VzLnJz IGIvc2VydmVyL3NyYy9hcGkvcmVzb3VyY2VzLnJzCmluZGV4IDRiZWFhNTQuLmFkYWIwMjEgMTAw NjQ0Ci0tLSBhL3NlcnZlci9zcmMvYXBpL3Jlc291cmNlcy5ycworKysgYi9zZXJ2ZXIvc3JjL2Fw aS9yZXNvdXJjZXMucnMKQEAgLTc2Nyw3ICs3NjcsNyBAQCBzdGF0aWMgU1VCU0NSSVBUSU9OX0NB Q0hFOiBMYXp5TG9jazxSd0xvY2s8SGFzaE1hcDxTdHJpbmcsIENhY2hlZFN1YnNjcmlwdGlvblN0 YQogLy8vCiAvLy8gSWYgcmVjZW50IGVub3VnaCBjYWNoZWQgZGF0YSBpcyBhdmFpbGFibGUsIGl0 IGlzIHJldHVybmVkCiAvLy8gaW5zdGVhZCBvZiBjYWxsaW5nIG91dCB0byB0aGUgcmVtb3RlLgot YXN5bmMgZm4gZ2V0X3N1YnNjcmlwdGlvbl9pbmZvX2Zvcl9yZW1vdGUoCitwdWIgYXN5bmMgZm4g Z2V0X3N1YnNjcmlwdGlvbl9pbmZvX2Zvcl9yZW1vdGUoCiAgICAgcmVtb3RlOiAmUmVtb3RlLAog ICAgIG1heF9hZ2U6IHU2NCwKICkgLT4gUmVzdWx0PEhhc2hNYXA8U3RyaW5nLCBPcHRpb248Tm9k ZVN1YnNjcmlwdGlvbkluZm8+PiwgRXJyb3I+IHsKLS0gCjIuNDcuMwoKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpwZG0tZGV2ZWwgbWFpbGluZyBsaXN0 CnBkbS1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQpodHRwczovL2xpc3RzLnByb3htb3guY29tL2Nn aS1iaW4vbWFpbG1hbi9saXN0aW5mby9wZG0tZGV2ZWwK