From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id E5DB7C61DA4 for ; Fri, 24 Feb 2023 12:38:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 682776B0074; Fri, 24 Feb 2023 07:38:18 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 632466B0075; Fri, 24 Feb 2023 07:38:18 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4D2DA6B0078; Fri, 24 Feb 2023 07:38:18 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 3E9796B0074 for ; Fri, 24 Feb 2023 07:38:18 -0500 (EST) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id C558AA0BD7 for ; Fri, 24 Feb 2023 12:38:17 +0000 (UTC) X-FDA: 80502138234.24.3550E8F Received: from smtp-fw-6002.amazon.com (smtp-fw-6002.amazon.com [52.95.49.90]) by imf30.hostedemail.com (Postfix) with ESMTP id C05C880004 for ; Fri, 24 Feb 2023 12:38:15 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=amazon.com header.s=amazon201209 header.b=NtYuGn9X; spf=pass (imf30.hostedemail.com: domain of "prvs=412abbc8a=graf@amazon.de" designates 52.95.49.90 as permitted sender) smtp.mailfrom="prvs=412abbc8a=graf@amazon.de"; dmarc=pass (policy=quarantine) header.from=amazon.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1677242295; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=D/FBueQOSeZs/t1qYgq9kYXAa0p8/ZhQl/Zmd0tLZC0=; b=FLH+MT6v9UmJqyKBNWx38B0+dgBAxfRkgnKUMhqoUeekqCn0nPkTEUi9kMT7HrMs5AsSr3 Fk/BM+1zSj9RgQVTBqaG+mYSE7liATw8qhxAFHIUTghlKeqwOt4aZ9ZdRjf4ZEmb6gC+Z0 ZEdt/eaBQWANEZzp6u9tnOsVWGWzP7A= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=amazon.com header.s=amazon201209 header.b=NtYuGn9X; spf=pass (imf30.hostedemail.com: domain of "prvs=412abbc8a=graf@amazon.de" designates 52.95.49.90 as permitted sender) smtp.mailfrom="prvs=412abbc8a=graf@amazon.de"; dmarc=pass (policy=quarantine) header.from=amazon.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1677242295; a=rsa-sha256; cv=none; b=oukxnIJgArgWfg2LcpHw54M5PLdAfuVw5Xt+ltwH734Y2X6Fq4zlj3mIJv3xGDqNWvS+4x 3nYtSomPe/F3PKnEmYWNsH3BtPsqlpjmZ4/FgO57dwehcDyp17aIbA2a/CBi/fKWzf7Lsa M3oEwWaENI/9oX+bgusI7F3tBQiLWSs= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1677242297; x=1708778297; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to:content-transfer-encoding; bh=D/FBueQOSeZs/t1qYgq9kYXAa0p8/ZhQl/Zmd0tLZC0=; b=NtYuGn9XeowvyG+kr6alFCY1+VkI568xB6w7V5VZoIFhoPf/Ln9m0vLO 07NGZb1Le8eY5dgRzMTp/6t0bVlv+eYKN237HTbVaFFiKp78TBadAW34L im2LM71eFADnvuVJAJYDIBnBMFTx3Qj58+5g27fx6vXf++fY47LP7O4+d c=; X-IronPort-AV: E=Sophos;i="5.97,324,1669075200"; d="scan'208";a="300736811" Received: from iad12-co-svc-p1-lb1-vlan3.amazon.com (HELO email-inbound-relay-pdx-2a-m6i4x-44b6fc51.us-west-2.amazon.com) ([10.43.8.6]) by smtp-border-fw-6002.iad6.amazon.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Feb 2023 12:38:11 +0000 Received: from EX13MTAUWC001.ant.amazon.com (pdx1-ws-svc-p6-lb9-vlan2.pdx.amazon.com [10.236.137.194]) by email-inbound-relay-pdx-2a-m6i4x-44b6fc51.us-west-2.amazon.com (Postfix) with ESMTPS id 55BC2A2AB0; Fri, 24 Feb 2023 12:37:59 +0000 (UTC) Received: from EX19D020UWC004.ant.amazon.com (10.13.138.149) by EX13MTAUWC001.ant.amazon.com (10.43.162.135) with Microsoft SMTP Server (TLS) id 15.0.1497.45; Fri, 24 Feb 2023 12:37:58 +0000 Received: from [0.0.0.0] (10.253.83.51) by EX19D020UWC004.ant.amazon.com (10.13.138.149) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.24; Fri, 24 Feb 2023 12:37:51 +0000 Message-ID: <09696af0-b72d-29e7-862b-22ae4a630299@amazon.com> Date: Fri, 24 Feb 2023 13:37:48 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: [PATCH RFC v8 47/56] KVM: SVM: Support SEV-SNP AP Creation NAE event Content-Language: en-US To: Michael Roth , CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Brijesh Singh References: <20230220183847.59159-1-michael.roth@amd.com> <20230220183847.59159-48-michael.roth@amd.com> From: Alexander Graf In-Reply-To: <20230220183847.59159-48-michael.roth@amd.com> X-Originating-IP: [10.253.83.51] X-ClientProxiedBy: EX19D041UWA004.ant.amazon.com (10.13.139.9) To EX19D020UWC004.ant.amazon.com (10.13.138.149) Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 X-Rspamd-Queue-Id: C05C880004 X-Stat-Signature: jt61w31jrwtuamfhgiryy7jip1ixyftm X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1677242295-882575 X-HE-Meta: U2FsdGVkX18T7BJb/BrGrJuyU69cGSfs/U/WZhXQ3lacKeRYXqvrhnyfoIS0jYg8jkp9u4hnov8Mk/wL/j2ktYnjgOcEoYzx64fREP5f37cYvHf5l0DJYhFWde3rAnHgK+s9kpu1hCUIUEbEaGVQyx+ut8SYFSXVM6sQmjmReO4oKmGl5BIqlJ60K58o3157h5JLBs514pgFnZbl2hF60uNJ9IY5/UioOCFlWA6lIBp0W2q2cy8EoYW1a8hZQ5P3+mLGOBNtKUlt2MPTOuFVGqmLdNNHE4PCII/MdEz6RN8+sIk19c/XjPqkzSOyKCwnma5FY8nhKIWvSg5Zw9XUYr0Ixk/nT3FOCjWYwRl0LuAWhuiWKSqkazEfZGo4H1WpD8nNjpmTd2TpkI4xb5Najn3P4ilHor7N3p35PoEWFqcl9eGlOziPAMue11k6zwS+EPP84Z14keWw+G9aHIEUxnXGfKENcoFbvPN9UAxoh4P7om+Fl2bVhO9P/IkkIFbsuN1dXmNt4aHl5iFGCNmb5dQf2WthjjspqN2nVGVKn4hozmSoAjW9sU33SRe/dC9iex25F55zGkUoCM5VYxVHSuZFz4tBJnLzkKgKvqTGwHGq9kiuP56i7g3sIA+EQELTZOXRx6xUHLbrsO8CQl64irhmmp9thqCoX8VlR9kKwJvfywjrxMSzT+mW6JoaJtKLbkovd/dcyuJHgKyhb+lkRc9I+JQmyqLhxVwD4+EhzxfonCxaNWeUM4aPJPWI9MHfuWlTYEErGGWJ6yPNEM8QyfC4tEvkCo/RgRQm94t43sk9puL3rS/AU0f0hKb3B5irvQ4/PNglUXpJTYti5OtG6RnevVTJ+GMZ2MBB7f0muf/UGYS6wNfKZhWacpB9+igQPEbdIRv4tbjc5O89ZmeO5kR25Sftstl47VgoPlUbuBP3hMSRrHSY/NOclwy00uJeRkmnWNg9TxuRrd3M/Te JiBfeyvH Y39e2Rl02HXLQWJT3WSkXKB6BXVmqTafDWRU7g/gTY/3t6PG1wVDR+2ANo35ii+zm3FMG4iuKhI6vFZqSzzBVwlhiGL/1sMQ8doX684z1AEF1Xmf1sdR+X7TZCKfMOvG1DOs4GeaRjD56dhhRHdxYIxdM18tDUqvNe9URZj9FNAUFOAx9R/xTB91MqvKAvycNUvwO6adx82LPzwoZNkOSSxrLzAPJGgEZdM/91aM7KaAGtXDPFShhNDdmqx6GIkrGs8AGWjNioo4CNA47b3tsvQIGtK1omOs4uwj6GdKHHR8FMiuQjMcyRoni8mtuXFN67YsJFErv3VxutTA6CFCQvRaGL6Vs3XfyfxVZcVXHK7/YEW2YdUzMY5oW51eK/IF5FIu5aY2eMujAUmLX60Ays57J+5CbqcraNcOfZkBuJS5p78YKI4zL7Oll1dgMA3OWHEIp7adt8sl7NFi+7E+TScr8JCRYA9n1KOdV/oiAsV5mz0u/uTTX/gkJb8bkEHHn1dKQUZLxfeBUD90YTq5+H6P2EGCCxnPz+YHCLMyGvUk0qg6gdtxdxF92ZXpY4n2ewJyyouRxO7pcUBNJbFGe4ia92Do+0GGfyWqH+Efr9BueSMDLaEUumMXGp+oOfaJQ6NsmG2U7kRBVfyNBM18t6ZFBxSBSRVEyt7dJky4oTW/hL20= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Ck9uIDIwLjAyLjIzIDE5OjM4LCBNaWNoYWVsIFJvdGggd3JvdGU6Cj4gRnJvbTogVG9tIExlbmRh Y2t5IDx0aG9tYXMubGVuZGFja3lAYW1kLmNvbT4KPgo+IEFkZCBzdXBwb3J0IGZvciB0aGUgU0VW LVNOUCBBUCBDcmVhdGlvbiBOQUUgZXZlbnQuIFRoaXMgYWxsb3dzIFNFVi1TTlAKPiBndWVzdHMg dG8gYWx0ZXIgdGhlIHJlZ2lzdGVyIHN0YXRlIG9mIHRoZSBBUHMgb24gdGhlaXIgb3duLiBUaGlz IGFsbG93cwo+IHRoZSBndWVzdCBhIHdheSBvZiBzaW11bGF0aW5nIElOSVQtU0lQSS4KPgo+IEEg bmV3IGV2ZW50LCBLVk1fUkVRX1VQREFURV9QUk9URUNURURfR1VFU1RfU1RBVEUsIGlzIGNyZWF0 ZWQgYW5kIHVzZWQKPiBzbyBhcyB0byBhdm9pZCB1cGRhdGluZyB0aGUgVk1TQSBwb2ludGVyIHdo aWxlIHRoZSB2Q1BVIGlzIHJ1bm5pbmcuCj4KPiBGb3IgQ1JFQVRFCj4gICAgVGhlIGd1ZXN0IHN1 cHBsaWVzIHRoZSBHUEEgb2YgdGhlIFZNU0EgdG8gYmUgdXNlZCBmb3IgdGhlIHZDUFUgd2l0aAo+ ICAgIHRoZSBzcGVjaWZpZWQgQVBJQyBJRC4gVGhlIEdQQSBpcyBzYXZlZCBpbiB0aGUgc3ZtIHN0 cnVjdCBvZiB0aGUKPiAgICB0YXJnZXQgdkNQVSwgdGhlIEtWTV9SRVFfVVBEQVRFX1BST1RFQ1RF RF9HVUVTVF9TVEFURSBldmVudCBpcyBhZGRlZAo+ICAgIHRvIHRoZSB2Q1BVIGFuZCB0aGVuIHRo ZSB2Q1BVIGlzIGtpY2tlZC4KPgo+IEZvciBDUkVBVEVfT05fSU5JVDoKPiAgICBUaGUgZ3Vlc3Qg c3VwcGxpZXMgdGhlIEdQQSBvZiB0aGUgVk1TQSB0byBiZSB1c2VkIGZvciB0aGUgdkNQVSB3aXRo Cj4gICAgdGhlIHNwZWNpZmllZCBBUElDIElEIHRoZSBuZXh0IHRpbWUgYW4gSU5JVCBpcyBwZXJm b3JtZWQuIFRoZSBHUEEgaXMKPiAgICBzYXZlZCBpbiB0aGUgc3ZtIHN0cnVjdCBvZiB0aGUgdGFy Z2V0IHZDUFUuCj4KPiBGb3IgREVTVFJPWToKPiAgICBUaGUgZ3Vlc3QgaW5kaWNhdGVzIGl0IHdp c2hlcyB0byBzdG9wIHRoZSB2Q1BVLiBUaGUgR1BBIGlzIGNsZWFyZWQKPiAgICBmcm9tIHRoZSBz dm0gc3RydWN0LCB0aGUgS1ZNX1JFUV9VUERBVEVfUFJPVEVDVEVEX0dVRVNUX1NUQVRFIGV2ZW50 IGlzCj4gICAgYWRkZWQgdG8gdkNQVSBhbmQgdGhlbiB0aGUgdkNQVSBpcyBraWNrZWQuCj4KPiBU aGUgS1ZNX1JFUV9VUERBVEVfUFJPVEVDVEVEX0dVRVNUX1NUQVRFIGV2ZW50IGhhbmRsZXIgd2ls bCBiZSBpbnZva2VkCj4gYXMgYSByZXN1bHQgb2YgdGhlIGV2ZW50IG9yIGFzIGEgcmVzdWx0IG9m IGFuIElOSVQuIFRoZSBoYW5kbGVyIHNldHMgdGhlCj4gdkNQVSB0byB0aGUgS1ZNX01QX1NUQVRF X1VOSU5JVElBTElaRUQgc3RhdGUsIHNvIHRoYXQgYW55IGVycm9ycyB3aWxsCj4gbGVhdmUgdGhl IHZDUFUgYXMgbm90IHJ1bm5hYmxlLiBBbnkgcHJldmlvdXMgVk1TQSBwYWdlcyB0aGF0IHdlcmUK PiBpbnN0YWxsZWQgYXMgcGFydCBvZiBhbiBTRVYtU05QIEFQIENyZWF0aW9uIE5BRSBldmVudCBh cmUgdW4tcGlubmVkLiBJZgo+IGEgbmV3IFZNU0EgaXMgdG8gYmUgaW5zdGFsbGVkLCB0aGUgVk1T QSBndWVzdCBwYWdlIGlzIHBpbm5lZCBhbmQgc2V0IGFzCj4gdGhlIFZNU0EgaW4gdGhlIHZDUFUg Vk1DQiBhbmQgdGhlIHZDUFUgc3RhdGUgaXMgc2V0IHRvCj4gS1ZNX01QX1NUQVRFX1JVTk5BQkxF LiBJZiBhIG5ldyBWTVNBIGlzIG5vdCB0byBiZSBpbnN0YWxsZWQsIHRoZSBWTVNBIGlzCj4gY2xl YXJlZCBpbiB0aGUgdkNQVSBWTUNCIGFuZCB0aGUgdkNQVSBzdGF0ZSBpcyBsZWZ0IGFzCj4gS1ZN X01QX1NUQVRFX1VOSU5JVElBTElaRUQgdG8gcHJldmVudCBpdCBmcm9tIGJlaW5nIHJ1bi4KPgo+ IFNpZ25lZC1vZmYtYnk6IFRvbSBMZW5kYWNreSA8dGhvbWFzLmxlbmRhY2t5QGFtZC5jb20+Cj4g U2lnbmVkLW9mZi1ieTogQnJpamVzaCBTaW5naCA8YnJpamVzaC5zaW5naEBhbWQuY29tPgo+IFNp Z25lZC1vZmYtYnk6IEFzaGlzaCBLYWxyYSA8YXNoaXNoLmthbHJhQGFtZC5jb20+Cj4gW21kcjog YWRkIGhhbmRsaW5nIGZvciByZXN0cmljdGVkbWVtXQo+IFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwg Um90aCA8bWljaGFlbC5yb3RoQGFtZC5jb20+CgoKV2hhdCBpcyB0aGUgaW50ZW5kZWQgYm9vdCBz ZXF1ZW5jZSBmb3IgU0VWLVNOUCBndWVzdHM/IEZXSVcgd2l0aCB0aGlzIAppbnRlcmZhY2UgaW4g cGxhY2UsIGd1ZXN0cyB3aWxsIHR5cGljYWxseSB1c2UgaW4tZ3Vlc3QgVk1TQSBwYWdlcyB0byAK aG9sZCBzZWNvbmRhcnkgdmNwdSBzdGF0ZS4gQnV0IHRoYXQgbWVhbnMgd2UncmUgbm93IGFsbG9j YXRpbmcgNGtiIG9mIAptZW1vcnkgZm9yIGV2ZXJ5IHZjcHUgdGhhdCB3ZSBjcmVhdGUgdGhhdCB3 aWxsIGJlIGZvciBtb3N0IG9mIHRoZSAKZ3Vlc3QncyBsaWZldGltZSBzdXBlcmZsdW91cy4KCldv dWxkbid0IGl0IG1ha2UgbW9yZSBzZW5zZSB0byBoYXZlIGEgbW9kZWwgd2hlcmUgd2Ugb25seSBh bGxvY2F0ZSB0aGUgClZNU0EgZm9yIHRoZSBib290IENQVSBhbmQgbGVhdmUgc2Vjb25kYXJ5IGFs bG9jYXRpb24gdG8gdGhlIGd1ZXN0PyBXZSAKYWxyZWFkeSBuZWVkIGZpcm13YXJlIGNoYW5nZXMg Zm9yIFNFVi1TTlAgLSBtYXkgYXMgd2VsbCBtYWtlIHRoaXMgb25lIG1vcmUuCgpbLi4uXQoKPiAr Cj4gK3N0YXRpYyBpbnQgc2V2X3NucF9hcF9jcmVhdGlvbihzdHJ1Y3QgdmNwdV9zdm0gKnN2bSkK PiArewo+ICsgICAgICAgc3RydWN0IGt2bV9zZXZfaW5mbyAqc2V2ID0gJnRvX2t2bV9zdm0oc3Zt LT52Y3B1Lmt2bSktPnNldl9pbmZvOwo+ICsgICAgICAgc3RydWN0IGt2bV92Y3B1ICp2Y3B1ID0g JnN2bS0+dmNwdTsKPiArICAgICAgIHN0cnVjdCBrdm1fdmNwdSAqdGFyZ2V0X3ZjcHU7Cj4gKyAg ICAgICBzdHJ1Y3QgdmNwdV9zdm0gKnRhcmdldF9zdm07Cj4gKyAgICAgICB1bnNpZ25lZCBpbnQg cmVxdWVzdDsKPiArICAgICAgIHVuc2lnbmVkIGludCBhcGljX2lkOwo+ICsgICAgICAgYm9vbCBr aWNrOwo+ICsgICAgICAgaW50IHJldDsKPiArCj4gKyAgICAgICByZXF1ZXN0ID0gbG93ZXJfMzJf Yml0cyhzdm0tPnZtY2ItPmNvbnRyb2wuZXhpdF9pbmZvXzEpOwo+ICsgICAgICAgYXBpY19pZCA9 IHVwcGVyXzMyX2JpdHMoc3ZtLT52bWNiLT5jb250cm9sLmV4aXRfaW5mb18xKTsKPiArCj4gKyAg ICAgICAvKiBWYWxpZGF0ZSB0aGUgQVBJQyBJRCAqLwo+ICsgICAgICAgdGFyZ2V0X3ZjcHUgPSBr dm1fZ2V0X3ZjcHVfYnlfaWQodmNwdS0+a3ZtLCBhcGljX2lkKTsKCgpPdXQgb2YgY3VyaW9zaXR5 OiBUaGUgdGFyZ2V0IENQVSBjYW4gYmUgbXkgb3duIHZDUFUsIHJpZ2h0PwoKCj4gKyAgICAgICBp ZiAoIXRhcmdldF92Y3B1KSB7Cj4gKyAgICAgICAgICAgICAgIHZjcHVfdW5pbXBsKHZjcHUsICJ2 bWdleGl0OiBpbnZhbGlkIEFQIEFQSUMgSUQgWyUjeF0gZnJvbSBndWVzdFxuIiwKPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXBpY19pZCk7Cj4gKyAgICAgICAgICAgICAgIHJldHVybiAt RUlOVkFMOwo+ICsgICAgICAgfQo+ICsKPiArICAgICAgIHJldCA9IDA7Cj4gKwo+ICsgICAgICAg dGFyZ2V0X3N2bSA9IHRvX3N2bSh0YXJnZXRfdmNwdSk7Cj4gKwo+ICsgICAgICAgLyoKPiArICAg ICAgICAqIFRoZSB0YXJnZXQgdkNQVSBpcyB2YWxpZCwgc28gdGhlIHZDUFUgd2lsbCBiZSBraWNr ZWQgdW5sZXNzIHRoZQo+ICsgICAgICAgICogcmVxdWVzdCBpcyBmb3IgQ1JFQVRFX09OX0lOSVQu IEZvciBhbnkgZXJyb3JzIGF0IHRoaXMgc3RhZ2UsIHRoZQo+ICsgICAgICAgICoga2ljayB3aWxs IHBsYWNlIHRoZSB2Q1BVIGluIGFuIG5vbi1ydW5uYWJsZSBzdGF0ZS4KPiArICAgICAgICAqLwo+ ICsgICAgICAga2ljayA9IHRydWU7Cj4gKwo+ICsgICAgICAgbXV0ZXhfbG9jaygmdGFyZ2V0X3N2 bS0+c2V2X2VzLnNucF92bXNhX211dGV4KTsKPiArCj4gKyAgICAgICB0YXJnZXRfc3ZtLT5zZXZf ZXMuc25wX3Ztc2FfZ3BhID0gSU5WQUxJRF9QQUdFOwo+ICsgICAgICAgdGFyZ2V0X3N2bS0+c2V2 X2VzLnNucF9hcF9jcmVhdGUgPSB0cnVlOwo+ICsKPiArICAgICAgIC8qIEludGVycnVwdCBpbmpl Y3Rpb24gbW9kZSBzaG91bGRuJ3QgY2hhbmdlIGZvciBBUCBjcmVhdGlvbiAqLwo+ICsgICAgICAg aWYgKHJlcXVlc3QgPCBTVk1fVk1HRVhJVF9BUF9ERVNUUk9ZKSB7Cj4gKyAgICAgICAgICAgICAg IHU2NCBzZXZfZmVhdHVyZXM7Cj4gKwo+ICsgICAgICAgICAgICAgICBzZXZfZmVhdHVyZXMgPSB2 Y3B1LT5hcmNoLnJlZ3NbVkNQVV9SRUdTX1JBWF07Cj4gKyAgICAgICAgICAgICAgIHNldl9mZWF0 dXJlcyBePSBzZXYtPnNldl9mZWF0dXJlczsKPiArICAgICAgICAgICAgICAgaWYgKHNldl9mZWF0 dXJlcyAmIFNWTV9TRVZfRkVBVF9JTlRfSU5KX01PREVTKSB7Cj4gKyAgICAgICAgICAgICAgICAg ICAgICAgdmNwdV91bmltcGwodmNwdSwgInZtZ2V4aXQ6IGludmFsaWQgQVAgaW5qZWN0aW9uIG1v ZGUgWyUjbHhdIGZyb20gZ3Vlc3RcbiIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdmNwdS0+YXJjaC5yZWdzW1ZDUFVfUkVHU19SQVhdKTsKPiArICAgICAgICAgICAgICAg ICAgICAgICByZXQgPSAtRUlOVkFMOwo+ICsgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0 Owo+ICsgICAgICAgICAgICAgICB9Cj4gKyAgICAgICB9Cj4gKwo+ICsgICAgICAgc3dpdGNoIChy ZXF1ZXN0KSB7Cj4gKyAgICAgICBjYXNlIFNWTV9WTUdFWElUX0FQX0NSRUFURV9PTl9JTklUOgo+ ICsgICAgICAgICAgICAgICBraWNrID0gZmFsc2U7Cj4gKyAgICAgICAgICAgICAgIGZhbGx0aHJv dWdoOwo+ICsgICAgICAgY2FzZSBTVk1fVk1HRVhJVF9BUF9DUkVBVEU6Cj4gKyAgICAgICAgICAg ICAgIGlmICghcGFnZV9hZGRyZXNzX3ZhbGlkKHZjcHUsIHN2bS0+dm1jYi0+Y29udHJvbC5leGl0 X2luZm9fMikpIHsKPiArICAgICAgICAgICAgICAgICAgICAgICB2Y3B1X3VuaW1wbCh2Y3B1LCAi dm1nZXhpdDogaW52YWxpZCBBUCBWTVNBIGFkZHJlc3MgWyUjbGx4XSBmcm9tIGd1ZXN0XG4iLAo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN2bS0+dm1jYi0+Y29udHJvbC5l eGl0X2luZm9fMik7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gLUVJTlZBTDsKPiAr ICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG91dDsKPiArICAgICAgICAgICAgICAgfQo+ICsK PiArICAgICAgICAgICAgICAgLyoKPiArICAgICAgICAgICAgICAgICogTWFsaWNpb3VzIGd1ZXN0 IGNhbiBSTVBBREpVU1QgYSBsYXJnZSBwYWdlIGludG8gVk1TQSB3aGljaAo+ICsgICAgICAgICAg ICAgICAgKiB3aWxsIGhpdCB0aGUgU05QIGVycmF0dW0gd2hlcmUgdGhlIENQVSB3aWxsIGluY29y cmVjdGx5IHNpZ25hbAo+ICsgICAgICAgICAgICAgICAgKiBhbiBSTVAgdmlvbGF0aW9uICNQRiBp ZiBhIGh1Z2VwYWdlIGNvbGxpZGVzIHdpdGggdGhlIFJNUCBlbnRyeQo+ICsgICAgICAgICAgICAg ICAgKiBvZiBWTVNBIHBhZ2UsIHJlamVjdCB0aGUgQVAgQ1JFQVRFIHJlcXVlc3QgaWYgVk1TQSBh ZGRyZXNzIGZyb20KPiArICAgICAgICAgICAgICAgICogZ3Vlc3QgaXMgMk0gYWxpZ25lZC4KCgpU aGlzIHdpbGwgYnJlYWsgZ2VudWluZSBjdXJyZW50IExpbnV4IGtlcm5lbHMgdGhhdCBqdXN0IGhh cHBlbiB0byAKYWxsb2NhdGUgYSBndWVzdCBwYWdlLCBubz8gSW4gZmFjdCwgZ2l2ZW4gZW5vdWdo IHZDUFVzIHlvdSdyZSBhbG1vc3QgCmd1YXJhbnRlZWQgdG8gaGl0IGFuIGFsaWduZWQgc3RydWN0 dXJlIHNvbWV3aGVyZS4gV2hhdCBpcyB0aGUgZ3Vlc3QgCnN1cHBvc2VkIHRvIGRvIGluIHRoYXQg c2l0dWF0aW9uPwoKCj4gKyAgICAgICAgICAgICAgICAqLwo+ICsgICAgICAgICAgICAgICBpZiAo SVNfQUxJR05FRChzdm0tPnZtY2ItPmNvbnRyb2wuZXhpdF9pbmZvXzIsIFBNRF9TSVpFKSkgewo+ ICsgICAgICAgICAgICAgICAgICAgICAgIHZjcHVfdW5pbXBsKHZjcHUsCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgInZtZ2V4aXQ6IEFQIFZNU0EgYWRkcmVzcyBbJWxseF0g ZnJvbSBndWVzdCBpcyB1bnNhZmUgYXMgaXQgaXMgMk0gYWxpZ25lZFxuIiwKPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdm0tPnZtY2ItPmNvbnRyb2wuZXhpdF9pbmZvXzIp Owo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IC1FSU5WQUw7Cj4gKyAgICAgICAgICAg ICAgICAgICAgICAgZ290byBvdXQ7Cj4gKyAgICAgICAgICAgICAgIH0KPiArCj4gKyAgICAgICAg ICAgICAgIHRhcmdldF9zdm0tPnNldl9lcy5zbnBfdm1zYV9ncGEgPSBzdm0tPnZtY2ItPmNvbnRy b2wuZXhpdF9pbmZvXzI7Cj4gKyAgICAgICAgICAgICAgIGJyZWFrOwo+ICsgICAgICAgY2FzZSBT Vk1fVk1HRVhJVF9BUF9ERVNUUk9ZOgoKCkkgZG9uJ3QgdW5kZXJzdGFuZCB0aGUgZGVzdHJveSBw YXRoLiBXaHkgZG9lcyB0aGlzIGNhc2UgZGVzdHJveSBhbnl0aGluZz8KCgo+ICsgICAgICAgICAg ICAgICBicmVhazsKPiArICAgICAgIGRlZmF1bHQ6Cj4gKyAgICAgICAgICAgICAgIHZjcHVfdW5p bXBsKHZjcHUsICJ2bWdleGl0OiBpbnZhbGlkIEFQIGNyZWF0aW9uIHJlcXVlc3QgWyUjeF0gZnJv bSBndWVzdFxuIiwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdCk7Cj4gKyAg ICAgICAgICAgICAgIHJldCA9IC1FSU5WQUw7Cj4gKyAgICAgICAgICAgICAgIGJyZWFrOwo+ICsg ICAgICAgfQo+ICsKPiArb3V0Ogo+ICsgICAgICAgaWYgKGtpY2spIHsKPiArICAgICAgICAgICAg ICAgaWYgKHRhcmdldF92Y3B1LT5hcmNoLm1wX3N0YXRlID09IEtWTV9NUF9TVEFURV9VTklOSVRJ QUxJWkVEKQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF92Y3B1LT5hcmNoLm1wX3N0 YXRlID0gS1ZNX01QX1NUQVRFX1JVTk5BQkxFOwoKCldoYXQgaWYgdGhlIGd1ZXN0IEFQIGdvZXMg dGhyb3VnaCBhIGNyZWF0ZSAtPiBkZXN0cm95IC0+IGNyZWF0ZSBjeWNsZT8gCldpbGwgaXQgc3Rh eSBydW5uYWJsZSB3aGlsZSBkZXN0cm95ZWQ/CgoKQWxleAoKPiArCj4gKyAgICAgICAgICAgICAg IGt2bV9tYWtlX3JlcXVlc3QoS1ZNX1JFUV9VUERBVEVfUFJPVEVDVEVEX0dVRVNUX1NUQVRFLCB0 YXJnZXRfdmNwdSk7Cj4gKyAgICAgICAgICAgICAgIGt2bV92Y3B1X2tpY2sodGFyZ2V0X3ZjcHUp Owo+ICsgICAgICAgfQo+ICsKPiArICAgICAgIG11dGV4X3VubG9jaygmdGFyZ2V0X3N2bS0+c2V2 X2VzLnNucF92bXNhX211dGV4KTsKPiArCj4gKyAgICAgICByZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ ICAgc3RhdGljIGludCBzZXZfaGFuZGxlX3ZtZ2V4aXRfbXNyX3Byb3RvY29sKHN0cnVjdCB2Y3B1 X3N2bSAqc3ZtKQo+ICAgewo+ICAgICAgICAgIHN0cnVjdCB2bWNiX2NvbnRyb2xfYXJlYSAqY29u dHJvbCA9ICZzdm0tPnZtY2ItPmNvbnRyb2w7CgoKCkFtYXpvbiBEZXZlbG9wbWVudCBDZW50ZXIg R2VybWFueSBHbWJICktyYXVzZW5zdHIuIDM4CjEwMTE3IEJlcmxpbgpHZXNjaGFlZnRzZnVlaHJ1 bmc6IENocmlzdGlhbiBTY2hsYWVnZXIsIEpvbmF0aGFuIFdlaXNzCkVpbmdldHJhZ2VuIGFtIEFt dHNnZXJpY2h0IENoYXJsb3R0ZW5idXJnIHVudGVyIEhSQiAxNDkxNzMgQgpTaXR6OiBCZXJsaW4K VXN0LUlEOiBERSAyODkgMjM3IDg3OQoKCg==