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 [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id A45271FF15E for <inbox@lore.proxmox.com>; Tue, 11 Mar 2025 14:56:55 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id DBF47119AD; Tue, 11 Mar 2025 14:56:46 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1741701397; x=1742306197; d=canarybit.eu; s=rsa2; h=in-reply-to:content-transfer-encoding:content-type:mime-version:references: message-id:subject:cc:to:from:date:from; bh=0C1jVB6lDz5UaTz6SQDqhlxb1kcszNcCd/bGiR0Tfd8=; b=lqwDwYXjRJ9e5jSWMclnwR1ofzNwAYa8ZV+5PrUaZzuzboicEBNBFNJPS4s13ltt1vHsA9PNRxPYo 8Fib7tJrIjXPdGIAeIniXX+Eb9x/IDoWo4qRp2gZi+CiDhHmy8cOsgS0FAqmLwJHOyCwLFetR0Hwir Yu1Qx2Oe0QM1NW67F1z0vIa8e/iWwxHaQvGvMEZ8BNOTzscCNODBLwk/EBxF0nv1V/kty0ocOpkL1I RgdZyGCWWAoEppu4ZJZJ+LTRIwD2yNnMU5ZW/ClD0lkiu/8sWlDVLYSm+4a1h8No5h/SMoLwLrmodf 4bZmD7RjrzLMSETQ4bLUEXtFp5Nq/vw== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1741701397; x=1742306197; d=canarybit.eu; s=ed2; h=in-reply-to:content-transfer-encoding:content-type:mime-version:references: message-id:subject:cc:to:from:date:from; bh=0C1jVB6lDz5UaTz6SQDqhlxb1kcszNcCd/bGiR0Tfd8=; b=sjoul28akBeOmZNoY3jk99082E2x7Gz09sqk0Pq2ugnXXR6M9N8hkveZgyZfZaiS49K9LaXLyHGj/ Svl9pCeAA== X-HalOne-ID: a5a720b7-fe80-11ef-b074-471e5e6299d9 Date: Tue, 11 Mar 2025 14:56:36 +0100 From: Philipp Giersfeld <philipp.giersfeld@canarybit.eu> To: Fiona Ebner <f.ebner@proxmox.com> Message-ID: <ohu7nlfsnj7efw3sirwuckk5zeuuykhfs3jkui5r4txahavfwr@sgdqd3vzcntc> References: <20250224123714.2662460-1-philipp.giersfeld@canarybit.eu> <20250224123714.2662460-5-philipp.giersfeld@canarybit.eu> <e51497ff-4ec0-4e4e-904e-c8cf75b96edc@proxmox.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <e51497ff-4ec0-4e4e-904e-c8cf75b96edc@proxmox.com> X-SPAM-LEVEL: Spam detection results: 0 AWL -0.001 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain DMARC_MISSING 0.1 Missing DMARC policy KAM_SHORT 0.001 Use of a URL Shortener for very short URL RCVD_IN_DNSWL_NONE -0.0001 Sender listed at https://www.dnswl.org/, no trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_NONE 0.001 SPF: sender does not publish an SPF Record Subject: Re: [pve-devel] [PATCH qemu-server v3 4/5] config: add AMD SEV-SNP support. 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> Cc: 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> T24gMjUvMDMvMDUgMDQ6MzVQTSwgRmlvbmEgRWJuZXIgd3JvdGU6Cj4gQW0gMjQuMDIuMjUgdW0g MTM6Mzcgc2NocmllYiBQaGlsaXBwIEdpZXJzZmVsZDoKPiA+IFRoaXMgcGF0Y2ggaXMgZm9yIGVu YWJsaW5nIEFNRCBTRVYtU05QIHN1cHBvcnQuCj4gPiAKPiA+IFdoZXJlIGFwcGxpY2FibGUsIGl0 IGV4dGVuZHMgc3VwcG9ydCBmb3IgZXhpc3RpbmcgU0VWKC1FUykgdmFyaWFibGVzCj4gPiB0byBT RVYtU05QLiBUaGlzIG1lYW5zIHRoYXQgaXQgcmV0YWlucyBuby1kZWJ1ZyBhbmQga2VybmVsLWhh c2hlcwo+ID4gb3B0aW9ucywgYnV0IHRoZSBuby1rZXktc2hhcmluZyBvcHRpb24gaXMgcmVtb3Zl ZC4KPiA+IAo+ID4gVGhlIGRlZmF1bHQgcG9saWN5IHZhbHVlIGlzIGlkZW50aWNhbCB0byBRRU1V 4oCZcywgYW5kIHRoZSB0aGVyZWZvcmUKPiA+IHJlcXVpcmVkIG9wdGlvbiBoYXMgYmVlbiBhZGRl ZCB0byBjb25maWd1cmUgU01UIHN1cHBvcnQuCj4gPiAKPiA+IFRoZSBjb2RlIHdhcyB0ZXN0ZWQg YnkgcnVubmluZyBhIFZNIHdpdGhvdXQgU0VWLCB3aXRoIFNFViwgU0VWLUVTLAo+ID4gU0VWLVNO UC4gRWFjaCBjb25maWd1cmF0aW9uIHdhcyB0ZXN0ZWQgd2l0aCBhbmQgd2l0aG91dCBhbiBFRkkg ZGlzawo+ID4gYXR0YWNoZWQuIEZvciBTRVYtZW5hYmxlZCBjb25maWd1cmF0aW9ucyBpdCB3YXMg YWxzbyB2ZXJpZmllZCB0aGF0IHRoZQo+ID4ga2VybmVsIGFjdHVhbGx5IHVzZWQgdGhlIHJlc3Bl Y3RpdmUgZmVhdHVyZS4KPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogUGhpbGlwcCBHaWVyc2ZlbGQg PHBoaWxpcHAuZ2llcnNmZWxkQGNhbmFyeWJpdC5ldT4KPiA+IFJldmlld2VkLWJ5OiBEYW5pZWwg S3JhbCA8ZC5rcmFsQHByb3htb3guY29tPgo+ID4gVGVzdGVkLWJ5OiBNYXJrdXMgRnJhbmsgPG0u ZnJhbmtAcHJveG1veC5jb20+Cj4gPiAtLS0KPiA+IAo+ID4gIG5vIGNoYW5nZXMgc2luY2UgbGFz dCB2ZXJzaW9uCj4gPiAKPiA+ICBQVkUvQVBJMi9RZW11LnBtICAgICAgICAgICAgfCAgNyArKyst Cj4gPiAgUFZFL1FlbXVTZXJ2ZXIucG0gICAgICAgICAgIHwgNDkgKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tCj4gPiAgUFZFL1FlbXVTZXJ2ZXIvQ1BVQ29uZmlnLnBtIHwgNjYgKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQo+ID4gIDMgZmlsZXMgY2hhbmdlZCwgOTIgaW5z ZXJ0aW9ucygrKSwgMzAgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9QVkUvQVBJ Mi9RZW11LnBtIGIvUFZFL0FQSTIvUWVtdS5wbQo+ID4gaW5kZXggMjk1MjYwZTcuLjRmNDhjZjg1 IDEwMDY0NAo+ID4gLS0tIGEvUFZFL0FQSTIvUWVtdS5wbQo+ID4gKysrIGIvUFZFL0FQSTIvUWVt dS5wbQo+ID4gQEAgLTU0OCw4ICs1NDgsMTMgQEAgbXkgc3ViIGNyZWF0ZV9kaXNrcyA6IHByb3Rv dHlwZSgkJCQkJCQkJCQkJCkgewo+ID4gIAkJbXkgJHZvbGlkOwo+ID4gIAkJaWYgKCRkcyBlcSAn ZWZpZGlzazAnKSB7Cj4gPiAgCQkgICAgbXkgJHNtbSA9IFBWRTo6UWVtdVNlcnZlcjo6TWFjaGlu ZTo6bWFjaGluZV90eXBlX2lzX3EzNSgkY29uZik7Cj4gPiArCj4gPiArCQkgICAgbXkgJGFtZF9z ZXZfdHlwZSA9IFBWRTo6UWVtdVNlcnZlcjo6Q1BVQ29uZmlnOjpnZXRfYW1kX3Nldl90eXBlKCRj b25mKTsKPiA+ICsJCSAgICBkaWUgIlNFVi1TTlAgdXNlcyBjb25zb2xpZGF0ZWQgcmVhZC1vbmx5 IGZpcm13YXJlIgo+IAo+IE1pc3NpbmcgbmV3bGluZSBhdCB0aGUgZW5kIG9mIGVycm9yIG1lc3Nh Z2UuIFBlcmwgd2lsbCBhdXRvbWF0aWNhbGx5Cj4gYXR0YWNoIHRoZSBmaWxlbmFtZSBhbmQgbGlu ZSBudW1iZXIgdGhlbiwgd2hpY2ggaXMgcmF0aGVyIHVnbHkgaGVyZS4gSSdkCj4gYWxzbyBtZW50 aW9uICJhbmQgZG9lc24ndCBuZWVkIGFuIEVGSSBkaXNrIiB0byBjbGFyaWZ5IHRoaXMgYSBiaXQg bW9yZQo+IGZvciB1c2Vycy4KCkRvZXMgIlNFVi1TTlAgdXNlcyBjb25zb2xpZGF0ZWQgcmVhZC1v bmx5IGZpcm13YXJlIGluc3RlYWQgb2YgYSBzZXBlcmF0ZQpub24tdm9sYXRpbGUgdmFyaWFibGUg c3RvcmVcbiIgd29yaz8KCj4gCj4gPiArCQkJaWYgJGFtZF9zZXZfdHlwZSAmJiAkYW1kX3Nldl90 eXBlIGVxICdzbnAnOwo+ID4gKwo+ID4gIAkJICAgICgkdm9saWQsICRzaXplKSA9IFBWRTo6UWVt dVNlcnZlcjo6Y3JlYXRlX2VmaWRpc2soCj4gPiAtCQkJJHN0b3JlY2ZnLCAkc3RvcmVpZCwgJHZt aWQsICRmbXQsICRhcmNoLCAkZGlzaywgJHNtbSk7Cj4gPiArCQkJJHN0b3JlY2ZnLCAkc3RvcmVp ZCwgJHZtaWQsICRmbXQsICRhcmNoLCAkZGlzaywgJHNtbSwgJGFtZF9zZXZfdHlwZSk7Cj4gPiAg CQl9IGVsc2lmICgkZHMgZXEgJ3RwbXN0YXRlMCcpIHsKPiA+ICAJCSAgICAjIHN3dHBtIGNhbiBv bmx5IHVzZSByYXcgdm9sdW1lcywgYW5kIHVzZXMgYSBmaXhlZCBzaXplCj4gPiAgCQkgICAgJHNp emUgPSBQVkU6OlRvb2xzOjpjb252ZXJ0X3NpemUoUFZFOjpRZW11U2VydmVyOjpEcml2ZTo6VFBN U1RBVEVfRElTS19TSVpFLCAnYicgPT4gJ2tiJyk7Cj4gPiBkaWZmIC0tZ2l0IGEvUFZFL1FlbXVT ZXJ2ZXIucG0gYi9QVkUvUWVtdVNlcnZlci5wbQo+ID4gaW5kZXggODA4YzBlMWMuLjUxZTU1MWI4 IDEwMDY0NAo+ID4gLS0tIGEvUFZFL1FlbXVTZXJ2ZXIucG0KPiA+ICsrKyBiL1BWRS9RZW11U2Vy dmVyLnBtCj4gPiBAQCAtNTIsNyArNTIsNyBAQCB1c2UgUFZFOjpRZW11Q29uZmlnOwo+ID4gIHVz ZSBQVkU6OlFlbXVTZXJ2ZXI6OkhlbHBlcnMgcXcoY29uZmlnX2F3YXJlX3RpbWVvdXQgbWluX3Zl cnNpb24ga3ZtX3VzZXJfdmVyc2lvbiB3aW5kb3dzX3ZlcnNpb24pOwo+ID4gIHVzZSBQVkU6OlFl bXVTZXJ2ZXI6OkNsb3VkaW5pdDsKPiA+ICB1c2UgUFZFOjpRZW11U2VydmVyOjpDR3JvdXA7Cj4g PiAtdXNlIFBWRTo6UWVtdVNlcnZlcjo6Q1BVQ29uZmlnIHF3KHByaW50X2NwdV9kZXZpY2UgZ2V0 X2NwdV9vcHRpb25zIGdldF9jcHVfYml0bmVzcyBpc19uYXRpdmVfYXJjaCBnZXRfYW1kX3Nldl9v YmplY3QpOwo+ID4gK3VzZSBQVkU6OlFlbXVTZXJ2ZXI6OkNQVUNvbmZpZyBxdyhwcmludF9jcHVf ZGV2aWNlIGdldF9jcHVfb3B0aW9ucyBnZXRfY3B1X2JpdG5lc3MgaXNfbmF0aXZlX2FyY2ggZ2V0 X2FtZF9zZXZfb2JqZWN0IGdldF9hbWRfc2V2X3R5cGUpOwo+ID4gIHVzZSBQVkU6OlFlbXVTZXJ2 ZXI6OkRyaXZlIHF3KGlzX3ZhbGlkX2RyaXZlbmFtZSBjaGVja2VkX3ZvbHVtZV9mb3JtYXQgZHJp dmVfaXNfY2xvdWRpbml0IGRyaXZlX2lzX2Nkcm9tIGRyaXZlX2lzX3JlYWRfb25seSBwYXJzZV9k cml2ZSBwcmludF9kcml2ZSk7Cj4gPiAgdXNlIFBWRTo6UWVtdVNlcnZlcjo6TWFjaGluZTsKPiA+ ICB1c2UgUFZFOjpRZW11U2VydmVyOjpNZW1vcnkgcXcoZ2V0X2N1cnJlbnRfbWVtb3J5KTsKPiA+ IEBAIC04OCw2ICs4OCwxMyBAQCBteSAkT1ZNRiA9IHsKPiA+ICAJICAgICIkRURLMl9GV19CQVNF L09WTUZfQ09ERV80TS5zZWNib290LmZkIiwKPiA+ICAJICAgICIkRURLMl9GV19CQVNFL09WTUZf VkFSU180TS5tcy5mZCIsCj4gPiAgCV0sCj4gPiArCSc0bS1zZXYnID0+IFsKPiA+ICsJICAgICIk RURLMl9GV19CQVNFL09WTUZfQ1ZNX0NPREVfNE0uZmQiLAo+ID4gKwkgICAgIiRFREsyX0ZXX0JB U0UvT1ZNRl9DVk1fVkFSU180TS5mZCIsIAo+IAo+IFN0eWxlIG5pdDogdHJhaWxpbmcgd2hpdGVz cGFjZSBhYm92ZQo+IAo+IElzIHN3aXRjaGluZyBvdmVyIGZvciB0aGUgc3RkK0VTIFNFViBzY2Vu YXJpb3Mgc3RpbGwKPiByZXF1aXJlZC9hZHZhbnRhZ2VvdXMgaWYgd2UgZ28gZm9yIGVkazItc3Rh YmxlMjAyNTAyPwoKRnJvbSBteSB0ZXN0aW5nIHRoaXMgaXMgc3RpbGwgdGhlIGNhc2UuCklJVUMs IHRoaXMgaXMgYmVjYXVzZSB0aGUgZXhpc3RpbmcgZmlybXdhcmUgaXMgYnVpbHQgdGFyZ2V0aW5n Ck9tdmZQa2cvT3ZtZlBrZ0kzMlg2NC5kc2Mgd2hpY2ggZG9lcyBub3Qgc3VwcG9ydCBTRVYuCgo+ IAo+ID4gKwldLAo+ID4gKwknNG0tc25wJyA9PiBbCj4gPiArCSAgICAiJEVESzJfRldfQkFTRS9P Vk1GX0NWTV80TS5mZCIsCj4gPiArCV0sCj4gPiAgCSMgRklYTUU6IFRoZXNlIGFyZSBsZWdhY3kg Mk1CLXNpemVkIGltYWdlcyB0aGF0IG1vZGVybiBPVk1GIGRvZXNuJ3Qgc3VwcG9ydHMgdG8gYnVp bGQKPiA+ICAJIyBhbnltb3JlLiBob3cgY2FuIHdlIGRlcGVyYWNhdGUgdGhpcyBzYW5lbHkgd2l0 aG91dCBicmVha2luZyBleGlzdGluZyBpbnN0YW5jZXMsIG9yIHVzaW5nCj4gPiAgCSMgb2xkZXIg YmFja3VwcyBhbmQgc25hcHNob3Q/Cj4gPiBAQCAtMzE3MiwxNSArMzE3OSwyMiBAQCBzdWIgdmdh X2NvbmZfaGFzX3NwaWNlIHsKPiA+ICAgICAgcmV0dXJuICQxIHx8IDE7Cj4gPiAgfQo+ID4gIAo+ ID4gLXN1YiBnZXRfb3ZtZl9maWxlcygkJCQpIHsKPiA+IC0gICAgbXkgKCRhcmNoLCAkZWZpZGlz aywgJHNtbSkgPSBAXzsKPiA+ICtzdWIgZ2V0X292bWZfZmlsZXMoJCQkJCkgewo+ID4gKyAgICBt eSAoJGFyY2gsICRlZmlkaXNrLCAkc21tLCAkYW1kX3Nldl90eXBlKSA9IEBfOwo+ID4gIAo+ID4g ICAgICBteSAkdHlwZXMgPSAkT1ZNRi0+eyRhcmNofQo+ID4gIAlvciBkaWUgIm5vIE9WTUYgaW1h Z2VzIGtub3duIGZvciBhcmNoaXRlY3R1cmUgJyRhcmNoJ1xuIjsKPiA+ICAKPiA+ICAgICAgbXkg JHR5cGUgPSAnZGVmYXVsdCc7Cj4gPiAgICAgIGlmICgkYXJjaCBlcSAneDg2XzY0Jykgewo+ID4g LQlpZiAoZGVmaW5lZCgkZWZpZGlzay0+e2VmaXR5cGV9KSAmJiAkZWZpZGlzay0+e2VmaXR5cGV9 IGVxICc0bScpIHsKPiA+ICsJaWYgKCRhbWRfc2V2X3R5cGUgJiYgJGFtZF9zZXZfdHlwZSBlcSAn c25wJykgewo+ID4gKwkgICAgJHR5cGUgPSAiNG0tc25wIjsKPiA+ICsJICAgIG15ICgkb3ZtZikg PSAkdHlwZXMtPnskdHlwZX0tPkAqOwo+ID4gKwkgICAgZGllICJFRkkgYmFzZSBpbWFnZSAnJG92 bWYnIG5vdCBmb3VuZFxuIiBpZiAhIC1mICRvdm1mOwo+ID4gKwkgICAgcmV0dXJuICgkb3ZtZik7 Cj4gPiArCX0gZWxzaWYgKCRhbWRfc2V2X3R5cGUpIHsKPiA+ICsJICAgICR0eXBlID0gIjRtLXNl diI7Cj4gPiArCX0gZWxzaWYgKGRlZmluZWQoJGVmaWRpc2stPntlZml0eXBlfSkgJiYgJGVmaWRp c2stPntlZml0eXBlfSBlcSAnNG0nKSB7Cj4gPiAgCSAgICAkdHlwZSA9ICRzbW0gPyAiNG0iIDog IjRtLW5vLXNtbSI7Cj4gPiAgCSAgICAkdHlwZSAuPSAnLW1zJyBpZiAkZWZpZGlzay0+eydwcmUt ZW5yb2xsZWQta2V5cyd9Owo+ID4gIAl9IGVsc2Ugewo+ID4gQEAgLTMzMjksNyArMzM0Myw4IEBA IG15IHN1YiBwcmludF9vdm1mX2RyaXZlX2NvbW1hbmRsaW5lcyB7Cj4gPiAgCj4gPiAgICAgIG15 ICRkID0gJGNvbmYtPntlZmlkaXNrMH0gPyBwYXJzZV9kcml2ZSgnZWZpZGlzazAnLCAkY29uZi0+ e2VmaWRpc2swfSkgOiB1bmRlZjsKPiA+ICAKPiA+IC0gICAgbXkgKCRvdm1mX2NvZGUsICRvdm1m X3ZhcnMpID0gZ2V0X292bWZfZmlsZXMoJGFyY2gsICRkLCAkcTM1KTsKPiA+ICsgICAgbXkgJGFt ZF9zZXZfdHlwZSA9IGdldF9hbWRfc2V2X3R5cGUoJGNvbmYpOwo+IAo+IEknZCBkaWUgaGVyZSBp ZiB0aGUgdHlwZSBpcyAnc25wJyBqdXN0IHRvIGJlIHN1cmUsIHNvIHRoYXQgd2UgaGF2ZSBhCj4g Y2xlYXIgZXJyb3Igc2hvdWxkIHRoYXQgZXZlciBoYXBwZW4gYnkgYWNjaWRlbnQuCgpBY2sKCj4g Cj4gPiArICAgIG15ICgkb3ZtZl9jb2RlLCAkb3ZtZl92YXJzKSA9IGdldF9vdm1mX2ZpbGVzKCRh cmNoLCAkZCwgJHEzNSwgJGFtZF9zZXZfdHlwZSk7Cj4gPiAgCj4gPiAgICAgIG15ICR2YXJfZHJp dmVfc3RyID0gImlmPXBmbGFzaCx1bml0PTEsaWQ9ZHJpdmUtZWZpZGlzazAiOwo+ID4gICAgICBp ZiAoJGQpIHsKPiA+IEBAIC0zNTI2LDEwICszNTQxLDE3IEBAIHN1YiBjb25maWdfdG9fY29tbWFu ZCB7Cj4gPiAgCWRpZSAiT1ZNRiAoVUVGSSkgQklPUyBpcyBub3Qgc3VwcG9ydGVkIG9uIDMyLWJp dCBDUFUgdHlwZXNcbiIKPiA+ICAJICAgIGlmICEkZm9yY2VjcHUgJiYgZ2V0X2NwdV9iaXRuZXNz KCRjb25mLT57Y3B1fSwgJGFyY2gpID09IDMyOwo+ID4gIAo+ID4gLQlteSAoJGNvZGVfZHJpdmVf c3RyLCAkdmFyX2RyaXZlX3N0cikgPQo+ID4gLQkgICAgcHJpbnRfb3ZtZl9kcml2ZV9jb21tYW5k bGluZXMoJGNvbmYsICRzdG9yZWNmZywgJHZtaWQsICRhcmNoLCAkcTM1LCAkdmVyc2lvbl9ndWFy ZCk7Cj4gPiAtCXB1c2ggJGNtZC0+QCosICctZHJpdmUnLCAkY29kZV9kcml2ZV9zdHI7Cj4gPiAt CXB1c2ggJGNtZC0+QCosICctZHJpdmUnLCAkdmFyX2RyaXZlX3N0cjsKPiA+ICsJbXkgJGFtZF9z ZXZfdHlwZSA9IGdldF9hbWRfc2V2X3R5cGUoJGNvbmYpOwo+ID4gKwlpZiAoJGFtZF9zZXZfdHlw ZSAmJiAkYW1kX3Nldl90eXBlIGVxICdzbnAnKSB7Cj4gPiArCSAgIG15ICRhcmNoID0gUFZFOjpR ZW11U2VydmVyOjpIZWxwZXJzOjpnZXRfdm1fYXJjaCgkY29uZik7Cj4gPiArCSAgIG15ICRkID0g JGNvbmYtPntlZmlkaXNrMH0gPyBwYXJzZV9kcml2ZSgnZWZpZGlzazAnLCAkY29uZi0+e2VmaWRp c2swfSkgOiB1bmRlZjsKPiAKPiBTaW5jZSB0aGUgRUZJIGRpc2sgaXMgbm90IHVzZWQgaW4gdGhp cyBjYXNlLCB3ZSBzaG91bGQgYWx3YXlzIHBhc3MgdW5kZWYKPiB0byBiZSBleHBsaWNpdC4gV2Ug Y2FuIHByaW50IGFuIGluZm9ybWF0aW9uYWwgbWVzc2FnZSB0aGF0IGl0IHdpbGwgYmUKPiBpZ25v cmVkIGlmIHByZXNlbnQuCj4gCj4gPiArCSAgIHB1c2ggJGNtZC0+QCosICctYmlvcycsIGdldF9v dm1mX2ZpbGVzKCRhcmNoLCAkZCwgdW5kZWYsICRhbWRfc2V2X3R5cGUpOwo+ID4gKwl9IGVsc2Ug ewo+ID4gKwkgICAgbXkgKCRjb2RlX2RyaXZlX3N0ciwgJHZhcl9kcml2ZV9zdHIpID0gcHJpbnRf b3ZtZl9kcml2ZV9jb21tYW5kbGluZXMoCj4gPiArCQkkY29uZiwgJHN0b3JlY2ZnLCAkdm1pZCwg JGFyY2gsICRxMzUsICR2ZXJzaW9uX2d1YXJkKTsKPiA+ICsJICAgIHB1c2ggJGNtZC0+QCosICct ZHJpdmUnLCAkY29kZV9kcml2ZV9zdHI7Cj4gPiArCSAgICBwdXNoICRjbWQtPkAqLCAnLWRyaXZl JywgJHZhcl9kcml2ZV9zdHI7Cj4gPiArCX0KPiA+ICAgICAgfQo+ID4gIAo+ID4gICAgICBpZiAo JHEzNSkgeyAjIHRlbGwgUUVNVSB0byBsb2FkIHEzNSBjb25maWcgZWFybHkKPiAKPiAtLS1zbmlw IDg8LS0tCj4gCj4gPiBAQCAtMjMxLDI1ICsyMzIsMzIgQEAgbXkgJGNwdV9mbXQgPSB7Cj4gPiAg bXkgJHNldl9mbXQgPSB7Cj4gPiAgICAgIHR5cGUgPT4gewo+ID4gIAlkZXNjcmlwdGlvbiA9PiAi RW5hYmxlIHN0YW5kYXJkIFNFViB3aXRoIHR5cGU9J3N0ZCcgb3IgZW5hYmxlIgo+ID4gLQkgICAg LiIgZXhwZXJpbWVudGFsIFNFVi1FUyB3aXRoIHRoZSAnZXMnIG9wdGlvbi4iLAo+ID4gKwkgICAg LiIgZXhwZXJpbWVudGFsIFNFVi1FUyB3aXRoIHRoZSAnZXMnIG9wdGlvbiBvciBlbmFibGUgIgo+ ID4gKwkgICAgLiJleHBlcmltZW50YWwgU0VWLVNOUCB3aXRoIHRoZSAnc25wJyBvcHRpb24uIiwK PiAKPiBTdHlsZSBuaXQ6IGl0J3MgcHJlZmVycmVkIHRvIHVzZSB0aGUgc3BhY2UgYXQgdGhlIGJl Z2lubmluZyBvZiB0aGUgbmV4dAo+IGxpbmU6IGh0dHBzOi8vcHZlLnByb3htb3guY29tL3dpa2kv UGVybF9TdHlsZV9HdWlkZSNXcmFwcGluZ19TdHJpbmdzCj4gCkFjay4KPiA+ICAJdHlwZSA9PiAn c3RyaW5nJywKPiA+ICAJZGVmYXVsdF9rZXkgPT4gMSwKPiA+ICAJZm9ybWF0X2Rlc2NyaXB0aW9u ID0+ICJzZXYtdHlwZSIsCj4gPiAtCWVudW0gPT4gWydzdGQnLCAnZXMnXSwKPiA+ICsJZW51bSA9 PiBbJ3N0ZCcsICdlcycsICdzbnAnXSwKPiA+ICAJbWF4TGVuZ3RoID0+IDMsCj4gPiAgICAgIH0s Cj4gPiAgICAgICduby1kZWJ1ZycgPT4gewo+ID4gLQlkZXNjcmlwdGlvbiA9PiAiU2V0cyBwb2xp Y3kgYml0IDAgdG8gMSB0byBkaXNhbGxvdyBkZWJ1Z2dpbmcgb2YgZ3Vlc3QiLAo+ID4gKwlkZXNj cmlwdGlvbiA9PiAiU2V0cyBwb2xpY3kgYml0IHRvIGRpc2FsbG93IGRlYnVnZ2luZyBvZiBndWVz dCIsCj4gPiAgCXR5cGUgPT4gJ2Jvb2xlYW4nLAo+ID4gIAlkZWZhdWx0ID0+IDAsCj4gPiAgCW9w dGlvbmFsID0+IDEsCj4gPiAgICAgIH0sCj4gPiAgICAgICduby1rZXktc2hhcmluZycgPT4gewo+ ID4gLQlkZXNjcmlwdGlvbiA9PiAiU2V0cyBwb2xpY3kgYml0IDEgdG8gMSB0byBkaXNhbGxvdyBr ZXkgc2hhcmluZyB3aXRoIG90aGVyIGd1ZXN0cyIsCj4gPiArCWRlc2NyaXB0aW9uID0+ICJTZXRz IHBvbGljeSBiaXQgdG8gZGlzYWxsb3cga2V5IHNoYXJpbmcgd2l0aCBvdGhlciBndWVzdHMiLAo+ IAo+IEknZCBhbHNvIG1lbnRpb24gdGhhdCBpdCBpcyBpZ25vcmVkIGlmIHVzaW5nIFNOUAo+IApB Y2sKPiA+ICAJdHlwZSA9PiAnYm9vbGVhbicsCj4gPiAgCWRlZmF1bHQgPT4gMCwKPiA+ICAJb3B0 aW9uYWwgPT4gMSwKPiA+ICAgICAgfSwKPiA+ICsgICAgJ2FsbG93LXNtdCcgPT4gewo+ID4gKwlk ZXNjcmlwdGlvbiA9PiAiU2V0cyBwb2xpY3kgYml0IHRvIGFsbG93IFNpbXVsdGFuZW91cyBNdWx0 aSBUaHJlYWRpbmcgKFNNVCkiLAo+IAo+IEknZCBhbHNvIG1lbnRpb24gdGhhdCBpdCBpcyBpZ25v cmVkIGlmIG5vdCB1c2luZyBTTlAKPiAKQWNrCj4gPiArCXR5cGUgPT4gJ2Jvb2xlYW4nLAo+ID4g KwlkZWZhdWx0ID0+IDEsCj4gPiArCW9wdGlvbmFsID0+IDEsCj4gPiArICAgIH0sCj4gPiAgICAg ICJrZXJuZWwtaGFzaGVzIiA9PiB7Cj4gPiAgCWRlc2NyaXB0aW9uID0+ICJBZGQga2VybmVsIGhh c2hlcyB0byBndWVzdCBmaXJtd2FyZSBmb3IgbWVhc3VyZWQgbGludXgga2VybmVsIGxhdW5jaCIs Cj4gPiAgCXR5cGUgPT4gJ2Jvb2xlYW4nLAo+ID4gQEAgLTgyMyw2ICs4MzEsMTMgQEAgc3ViIGdl dF9od19jYXBhYmlsaXRpZXMgewo+ID4gICAgICB9Cj4gPiAgICAgIHJldHVybiAkaHdfY2FwYWJp bGl0aWVzOwo+ID4gIH0KPiA+ICtzdWIgZ2V0X2FtZF9zZXZfdHlwZSB7Cj4gPiArICAgIG15ICgk Y29uZikgPSBAXzsKPiA+ICsKPiA+ICsgICAgcmV0dXJuIHVuZGVmIGlmICEkY29uZi0+eydhbWQt c2V2J307Cj4gPiArCj4gPiArICAgIHJldHVybiBQVkU6OkpTT05TY2hlbWE6OnBhcnNlX3Byb3Bl cnR5X3N0cmluZygkc2V2X2ZtdCwgJGNvbmYtPnsnYW1kLXNldid9KS0+e3R5cGV9Owo+ID4gK30K PiA+ICAKPiA+ICBzdWIgZ2V0X2FtZF9zZXZfb2JqZWN0IHsKPiA+ICAgICAgbXkgKCRhbWRfc2V2 LCAkYmlvcykgPSBAXzsKPiA+IEBAIC04MzYsMjIgKzg1MSw0MSBAQCBzdWIgZ2V0X2FtZF9zZXZf b2JqZWN0IHsKPiA+ICAgICAgaWYgKCRhbWRfc2V2X2NvbmYtPnt0eXBlfSBlcSAnZXMnICYmICEk c2V2X2h3X2NhcHMtPnsnc2V2LXN1cHBvcnQtZXMnfSkgewo+ID4gIAlkaWUgIllvdXIgQ1BVIGRv ZXMgbm90IHN1cHBvcnQgQU1EIFNFVi1FUy5cbiI7Cj4gPiAgICAgIH0KPiA+ICsgICAgaWYgKCRh bWRfc2V2X2NvbmYtPnt0eXBlfSBlcSAnc25wJyAmJiAhJHNldl9od19jYXBzLT57J3Nldi1zdXBw b3J0LXNucCd9KSB7Cj4gPiArCWRpZSAiWW91ciBDUFUgZG9lcyBub3Qgc3VwcG9ydCBBTUQgU0VW LVNOUC5cbiI7Cj4gPiArICAgIH0KPiA+ICAgICAgaWYgKCEkYmlvcyB8fCAkYmlvcyBuZSAnb3Zt ZicpIHsKPiA+ICAJZGllICJUbyB1c2UgQU1EIFNFViwgeW91IG5lZWQgdG8gY2hhbmdlIHRoZSBC SU9TIHRvIE9WTUYuXG4iOwo+ID4gICAgICB9Cj4gPiAgCj4gPiAtICAgIG15ICRzZXZfbWVtX29i amVjdCA9ICdzZXYtZ3Vlc3QsaWQ9c2V2MCc7Cj4gPiAtICAgICRzZXZfbWVtX29iamVjdCAuPSAn LGNiaXRwb3M9Jy4kc2V2X2h3X2NhcHMtPntjYml0cG9zfTsKPiA+IC0gICAgJHNldl9tZW1fb2Jq ZWN0IC49ICcscmVkdWNlZC1waHlzLWJpdHM9Jy4kc2V2X2h3X2NhcHMtPnsncmVkdWNlZC1waHlz LWJpdHMnfTsKPiA+IC0KPiA+IC0gICAgIyBndWVzdCBwb2xpY3kgYml0IGNhbGN1bGF0aW9uIGFz IGRlc2NyaWJlZCBoZXJlOgo+ID4gLSAgICAjIGh0dHBzOi8vZG9jdW1lbnRhdGlvbi5zdXNlLmNv bS9zbGVzLzE1LVNQNS9odG1sL1NMRVMtYW1kLXNldi9hcnRpY2xlLWFtZC1zZXYuaHRtbCN0YWJs ZS1ndWVzdHBvbGljeQo+ID4gLSAgICBteSAkcG9saWN5ID0gMDsKPiA+IC0gICAgJHBvbGljeSB8 PSAxIDw8IDAgaWYgJGFtZF9zZXZfY29uZi0+eyduby1kZWJ1Zyd9Owo+ID4gLSAgICAkcG9saWN5 IHw9IDEgPDwgMSBpZiAkYW1kX3Nldl9jb25mLT57J25vLWtleS1zaGFyaW5nJ307Cj4gPiAtICAg ICRwb2xpY3kgfD0gMSA8PCAyIGlmICRhbWRfc2V2X2NvbmYtPnt0eXBlfSBlcSAnZXMnOwo+ID4g LSAgICAjIGRpc2FibGUgbWlncmF0aW9uIHdpdGggYml0IDMgbm9zZW5kIHRvIHByZXZlbnQgYW1k LXNldi1taWdyYXRpb24tYXR0YWNrCj4gPiAtICAgICRwb2xpY3kgfD0gMSA8PCAzOwo+ID4gKyAg ICBteSAkc2V2X21lbV9vYmplY3QgPSAnJzsKPiA+ICsgICAgbXkgJHBvbGljeTsKPiA+ICsgICAg aWYgKCRhbWRfc2V2X2NvbmYtPnt0eXBlfSBlcSAnZXMnIHx8ICRhbWRfc2V2X2NvbmYtPnt0eXBl fSBlcSAnc3RkJykgewo+ID4gKwkkc2V2X21lbV9vYmplY3QgLj0gJ3Nldi1ndWVzdCxpZD1zZXYw JzsKPiA+ICsJJHNldl9tZW1fb2JqZWN0IC49ICcsY2JpdHBvcz0nLiRzZXZfaHdfY2Fwcy0+e2Ni aXRwb3N9Owo+ID4gKwkkc2V2X21lbV9vYmplY3QgLj0gJyxyZWR1Y2VkLXBoeXMtYml0cz0nLiRz ZXZfaHdfY2Fwcy0+eydyZWR1Y2VkLXBoeXMtYml0cyd9Owo+ID4gKwo+ID4gKwkjIGd1ZXN0IHBv bGljeSBiaXQgY2FsY3VsYXRpb24gYXMgZGVzY3JpYmVkIGhlcmU6Cj4gPiArCSMgaHR0cHM6Ly9k b2N1bWVudGF0aW9uLnN1c2UuY29tL3NsZXMvMTUtU1A1L2h0bWwvU0xFUy1hbWQtc2V2L2FydGlj bGUtYW1kLXNldi5odG1sI3RhYmxlLWd1ZXN0cG9saWN5Cj4gPiArCSRwb2xpY3kgPSAwOwo+ID4g KwkkcG9saWN5IHw9IDEgPDwgMCBpZiAkYW1kX3Nldl9jb25mLT57J25vLWRlYnVnJ307Cj4gPiAr CSRwb2xpY3kgfD0gMSA8PCAxIGlmICRhbWRfc2V2X2NvbmYtPnsnbm8ta2V5LXNoYXJpbmcnfTsK PiA+ICsJJHBvbGljeSB8PSAxIDw8IDIgaWYgJGFtZF9zZXZfY29uZi0+e3R5cGV9IGVxICdlcyc7 Cj4gPiArCSMgZGlzYWJsZSBtaWdyYXRpb24gd2l0aCBiaXQgMyBub3NlbmQgdG8gcHJldmVudCBh bWQtc2V2LW1pZ3JhdGlvbi1hdHRhY2sKPiA+ICsJJHBvbGljeSB8PSAxIDw8IDM7Cj4gPiArICAg IH0gZWxzaWYgKCRhbWRfc2V2X2NvbmYtPnt0eXBlfSBlcSAnc25wJykgewo+ID4gKwkkc2V2X21l bV9vYmplY3QgLj0gJ3Nldi1zbnAtZ3Vlc3QsaWQ9c2V2MCc7Cj4gPiArCSRzZXZfbWVtX29iamVj dCAuPSAnLGNiaXRwb3M9Jy4kc2V2X2h3X2NhcHMtPntjYml0cG9zfTsKPiA+ICsJJHNldl9tZW1f b2JqZWN0IC49ICcscmVkdWNlZC1waHlzLWJpdHM9Jy4kc2V2X2h3X2NhcHMtPnsncmVkdWNlZC1w aHlzLWJpdHMnfTsKPiA+ICsKPiA+ICsJIyBndWVzdCBwb2xpY3kgYml0IGNhbGN1bGF0aW9uIGFz IGRlc2NyaWJlZCBpbiBjaGFwdGVyIDQuMzoKPiA+ICsJIyBodHRwczovL3d3dy5hbWQuY29tL3N5 c3RlbS9maWxlcy9UZWNoRG9jcy81Njg2MC5wZGYKPiA+ICsJIyBSZXNlcnZlZCBiaXQgbXVzdCBi ZSBvbmUKPiA+ICsJJHBvbGljeSA9IDEgPDwgMTc7Cj4gPiArCSRwb2xpY3kgfD0gMSA8PCAxNiBp ZiAkYW1kX3Nldl9jb25mLT57J2FsbG93LXNtdCd9Owo+IAo+IEluIHRoZSBzY2hlbWEsIHRoZSBk ZWZhdWx0IGlzIHNldCB0byAxLiBOb3RlIHRoYXQgdGhpcyBpcyBvbmx5Cj4gaW5mb3JtYXRpb25h bCB1bmZvcnR1bmF0ZWx5LCBpLmUuIHBhcnNlX3Byb3BlcnR5X3N0cmluZygpIHdpbGwgbm90IGZp bGwKPiBpbiBhIGRlZmF1bHQuIFlvdSBuZWVkIHRvIGFwcGx5IHRoZSBkZWZhdWx0IHlvdXJzZWxm IGhlcmUgdXNpbmcKPiAKPiA+IGlmICFkZWZpbmVkKCRhbWRfc2V2X2NvbmYtPnsnYWxsb3ctc210 J30pIHx8ICRhbWRfc2V2X2NvbmYtPnsnYWxsb3ctc210J307Cj4gCkFjawo+IAo+ID4gKwkkcG9s aWN5IHw9IDEgPDwgMTkgaWYgISRhbWRfc2V2X2NvbmYtPnsnbm8tZGVidWcnfTsKPiAKPiBOb3Rl IHRoYXQgaGVyZSwgaXQgYWxyZWFkeSB3b3JrcyBhdXRvbWF0aWNhbGx5LCBiZWNhdXNlIHRoZSBk ZWZhdWx0IGlzIDAuCj4gCj4gPiArICAgIH0KPiA+ICsKPiA+ICAKPiA+ICAgICAgJHNldl9tZW1f b2JqZWN0IC49ICcscG9saWN5PScuc3ByaW50ZigiJSN4IiwgJHBvbGljeSk7Cj4gPiAgICAgICRz ZXZfbWVtX29iamVjdCAuPSAnLGtlcm5lbC1oYXNoZXM9b24nIGlmICgkYW1kX3Nldl9jb25mLT57 J2tlcm5lbC1oYXNoZXMnfSk7Cj4gCj4gCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpwdmUtZGV2ZWwgbWFpbGluZyBsaXN0CnB2ZS1kZXZlbEBsaXN0cy5w cm94bW94LmNvbQpodHRwczovL2xpc3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0 aW5mby9wdmUtZGV2ZWwK