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 64DA5C678D4 for ; Wed, 1 Mar 2023 21:14:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C57956B0074; Wed, 1 Mar 2023 16:14:46 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C06C86B0075; Wed, 1 Mar 2023 16:14:46 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id ACF056B0078; Wed, 1 Mar 2023 16:14:46 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 9BB456B0074 for ; Wed, 1 Mar 2023 16:14:46 -0500 (EST) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 5F343AB1EB for ; Wed, 1 Mar 2023 21:14:46 +0000 (UTC) X-FDA: 80521583772.15.59C131E Received: from smtp-fw-33001.amazon.com (smtp-fw-33001.amazon.com [207.171.190.10]) by imf08.hostedemail.com (Postfix) with ESMTP id 382B9160013 for ; Wed, 1 Mar 2023 21:14:44 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=amazon.com header.s=amazon201209 header.b=WaDVnGbV; dmarc=pass (policy=quarantine) header.from=amazon.com; spf=pass (imf08.hostedemail.com: domain of "prvs=417ff8b36=graf@amazon.de" designates 207.171.190.10 as permitted sender) smtp.mailfrom="prvs=417ff8b36=graf@amazon.de" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1677705284; 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=jn0NFpqmDGIanynN4GD/qfXPDtGGr3jlNzNJqzI0Z7E=; b=1krOKBfQVED/JXOpKJ7K+frpHWOG75hqWL9SfQ1gBBnhVRoG9wsD1IKt7Z3c/r0BWZzAJO mBYWlRk42ycRgH42ieTyav0rlo1RlX0PEnWo+s2KtKGxYUaM/4nFG8GADbOZlwmqEucH85 LC/omtqMqRNsrPS/I68yq8IletMMx6s= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=amazon.com header.s=amazon201209 header.b=WaDVnGbV; dmarc=pass (policy=quarantine) header.from=amazon.com; spf=pass (imf08.hostedemail.com: domain of "prvs=417ff8b36=graf@amazon.de" designates 207.171.190.10 as permitted sender) smtp.mailfrom="prvs=417ff8b36=graf@amazon.de" ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1677705284; a=rsa-sha256; cv=none; b=US4QPpTuCiJhq9jyp3qRDlkfKr3e17umbJMHG2T0fob8BUebJI7vQsFoFvMv5coQFgzNXg Cd+fLmetTaD9GvWI+X3wF6sQs6aMOlTZJpzvm6JWfSzbIyqRExdlWRIjnyVC/opaDegOCB rVgjO5OloZps1luHBEKEIhBqhPCnaDY= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1677705285; x=1709241285; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to:content-transfer-encoding; bh=jn0NFpqmDGIanynN4GD/qfXPDtGGr3jlNzNJqzI0Z7E=; b=WaDVnGbVgsm/WeRIygLETlB5aL+flfmvkoeGQqoqcjn8J2L9jXeXKyhV FCHXQOHf9/ICel7qd+TR80GdTkIQ8dajbL9DqA2C8l8NR/itMg+m61EW9 s561dJHtRdjZ4JpEYItLfntFJTgjICmxTdAXHPuZvXvzPTByp3TW6rzPp 8=; X-IronPort-AV: E=Sophos;i="5.98,225,1673913600"; d="scan'208";a="266376608" Received: from iad12-co-svc-p1-lb1-vlan3.amazon.com (HELO email-inbound-relay-pdx-2b-m6i4x-f323d91c.us-west-2.amazon.com) ([10.43.8.6]) by smtp-border-fw-33001.sea14.amazon.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Mar 2023 21:14:34 +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-2b-m6i4x-f323d91c.us-west-2.amazon.com (Postfix) with ESMTPS id 3091440DA6; Wed, 1 Mar 2023 21:14:30 +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; Wed, 1 Mar 2023 21:14:29 +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; Wed, 1 Mar 2023 21:14:21 +0000 Message-ID: <7eed5a32-6e68-6690-ac45-cec0868b8f5d@amazon.com> Date: Wed, 1 Mar 2023 22:14:19 +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: Zhi Wang CC: Michael Roth , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Brijesh Singh References: <20230220183847.59159-1-michael.roth@amd.com> <20230220183847.59159-48-michael.roth@amd.com> <09696af0-b72d-29e7-862b-22ae4a630299@amazon.com> <20230228224730.00007d21@intel.com> From: Alexander Graf In-Reply-To: <20230228224730.00007d21@intel.com> X-Originating-IP: [10.253.83.51] X-ClientProxiedBy: EX19D040UWB002.ant.amazon.com (10.13.138.89) To EX19D020UWC004.ant.amazon.com (10.13.138.149) Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 382B9160013 X-Stat-Signature: 8qcxw8jnfxhgo7j4h8nia1siosok5oh9 X-HE-Tag: 1677705284-780863 X-HE-Meta: U2FsdGVkX198mWcAaAqnyJvY43FiBNyUe6wBusyVMGmvEN/PUJU8ZA2R3XQ9B3hZeFowXjSOQ8EboJORmEPQj65qSyYetKSWXodbFLeMlepS4yvCbSTB6pU9RduWya1koSm0ABh41LuHEBwUkBJCrZZbRqUNyHU1Ad/ToXMhbgRSV4VLOcBBgZFtuO+HbvthUmW1b47H6DznYtF6MJiC18Tu3SSHC4fvbmit/LRIkHpuM1lI+3QrvIPPLD8l8KUGrNd/Xh/X/+TMIfeM80eGMJPKs5+ujz3s8MTTzO6uHWm+ZtObuj7O9kX2aT7DVn1lAYD5FY+oOZQfTnmJotmWd1E7Y/eZKgdJZn3xPOqJ/HhEkKLR54K/MIlqAEBau3O1ACKz27DDkeWgKGP93S72wHIAmy0bH5FIMW3j6BmZwiqc453C/WRreGhifPf7vbUy8D+0r4vdhfdKu5QSsoTyMXY/8Rn8wapo7qYCa7Hot2Q6P8HcHOybke0E2e5qc4L9sP2RR/1HF6n/AFmcFLNXLp33buk16GGNi866Hh3h6guulwtCADiqRsGQe59IPslOENgN/IRDO+mpRepA/ROFglP6SUMV9Vsxy6WhPzEI+4gqjWthtp73vrLvHqP71CnBLS+g7EgtY8/Zks5BQo+H3v8FgAbhq7gOxcUxwUT6kzjfUyrXhN8mWIMnYx6h8ZV9VZUugOjuUGkcXsK3gw++6ub0G7PjfTHkHMGN3db7GI1QvE68ySgaIS4J1UWxZ5HkpdakqaVcsxQvqZ9kIEJrN7WarHsrYSzHazaOTzN/9V5e7Z+lkZUEm/XM6n+IGUo0sKcrEne8aqnnv791qsqXFHUdUe6FZ09dNQi7XNaDtT+sAlEGaxOIvS3CnlbyOD9yK53SW011f5bRtiGcsjxPrT6vQbGrY64EfeJLC3t696hj7N3PedKne/U2cW1XC/ebr0pGjFtgb0soP33//Qd /KhpirfY gVwS5rjGy1xjlYTjSXaSW5OIFJCSTjeFyoUrtsGRlTxVj/+DmU04Mc0Eme0ADWneEfWNlvOUSOR39t70+log4FZ8ngo9P73Y2H6OLSlCUe3QV27Hytvc4bwCrai2DaQXlFA0KwNi6Whia76qpsaFSS6RLLgSyPELGJAZZHdB3qRv/YWPsmMWACMoF7DgiBjiVGVlNdOd0Sbc3uJqFg/2ltAMcDv9iLs4GlEGmuQmx2PRkV6CKD6gnrlRbWPoyJ1AoI1+Ha6h/DYShsJnV2wXMgfvXcS3y1IslC800XuVp7jBy828Sdgub2qKk/r851rQkBvZJxMHxlQsbnzoBvPMjVq+Z2njW4nRzl3z+TrRkcxiuWYzvtxM4GvMwle3UmvmiXodBX6Du3OVThTN5fQDtCa9Q5xMtSvLoRMhxc0PrSIS1Upudz2JDQ+URsHqAuJJlSqTrYc7ptLP/hFHKMqMQWX87yIpaF432Nxjr5+fy/K8dAYzJ6xyQEH+zYa8bTN3rVZaIP2dx+Q8WTcTKbIVtDmYFedUxC7GWK2T0jv31lhWSfuqvN/bDOFlB2DnTz6FKbFgbLc82CBESx9MCfqf+MdIR/l8WmGWtBCOoCpM4KEGokhRsRIIlzNMk44zw2RUD6gALxBsXH03YVRXX1DYefYGtCTnGk7L9cNFjyOC/ZFTSYbvJue8ZpbfwhwI8PyUgC1JH 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: Ck9uIDI4LjAyLjIzIDIxOjQ3LCBaaGkgV2FuZyB3cm90ZToKPiBPbiBGcmksIDI0IEZlYiAyMDIz IDEzOjM3OjQ4ICswMTAwCj4gQWxleGFuZGVyIEdyYWYgPGdyYWZAYW1hem9uLmNvbT4gd3JvdGU6 Cj4KPj4gT24gMjAuMDIuMjMgMTk6MzgsIE1pY2hhZWwgUm90aCB3cm90ZToKPj4+IEZyb206IFRv bSBMZW5kYWNreSA8dGhvbWFzLmxlbmRhY2t5QGFtZC5jb20+Cj4+Pgo+Pj4gQWRkIHN1cHBvcnQg Zm9yIHRoZSBTRVYtU05QIEFQIENyZWF0aW9uIE5BRSBldmVudC4gVGhpcyBhbGxvd3MgU0VWLVNO UAo+Pj4gZ3Vlc3RzIHRvIGFsdGVyIHRoZSByZWdpc3RlciBzdGF0ZSBvZiB0aGUgQVBzIG9uIHRo ZWlyIG93bi4gVGhpcyBhbGxvd3MKPj4+IHRoZSBndWVzdCBhIHdheSBvZiBzaW11bGF0aW5nIElO SVQtU0lQSS4KPj4+Cj4+PiBBIG5ldyBldmVudCwgS1ZNX1JFUV9VUERBVEVfUFJPVEVDVEVEX0dV RVNUX1NUQVRFLCBpcyBjcmVhdGVkIGFuZCB1c2VkCj4+PiBzbyBhcyB0byBhdm9pZCB1cGRhdGlu ZyB0aGUgVk1TQSBwb2ludGVyIHdoaWxlIHRoZSB2Q1BVIGlzIHJ1bm5pbmcuCj4+Pgo+Pj4gRm9y IENSRUFURQo+Pj4gICAgIFRoZSBndWVzdCBzdXBwbGllcyB0aGUgR1BBIG9mIHRoZSBWTVNBIHRv IGJlIHVzZWQgZm9yIHRoZSB2Q1BVIHdpdGgKPj4+ICAgICB0aGUgc3BlY2lmaWVkIEFQSUMgSUQu IFRoZSBHUEEgaXMgc2F2ZWQgaW4gdGhlIHN2bSBzdHJ1Y3Qgb2YgdGhlCj4+PiAgICAgdGFyZ2V0 IHZDUFUsIHRoZSBLVk1fUkVRX1VQREFURV9QUk9URUNURURfR1VFU1RfU1RBVEUgZXZlbnQgaXMg YWRkZWQKPj4+ICAgICB0byB0aGUgdkNQVSBhbmQgdGhlbiB0aGUgdkNQVSBpcyBraWNrZWQuCj4+ Pgo+Pj4gRm9yIENSRUFURV9PTl9JTklUOgo+Pj4gICAgIFRoZSBndWVzdCBzdXBwbGllcyB0aGUg R1BBIG9mIHRoZSBWTVNBIHRvIGJlIHVzZWQgZm9yIHRoZSB2Q1BVIHdpdGgKPj4+ICAgICB0aGUg c3BlY2lmaWVkIEFQSUMgSUQgdGhlIG5leHQgdGltZSBhbiBJTklUIGlzIHBlcmZvcm1lZC4gVGhl IEdQQSBpcwo+Pj4gICAgIHNhdmVkIGluIHRoZSBzdm0gc3RydWN0IG9mIHRoZSB0YXJnZXQgdkNQ VS4KPj4+Cj4+PiBGb3IgREVTVFJPWToKPj4+ICAgICBUaGUgZ3Vlc3QgaW5kaWNhdGVzIGl0IHdp c2hlcyB0byBzdG9wIHRoZSB2Q1BVLiBUaGUgR1BBIGlzIGNsZWFyZWQKPj4+ICAgICBmcm9tIHRo ZSBzdm0gc3RydWN0LCB0aGUgS1ZNX1JFUV9VUERBVEVfUFJPVEVDVEVEX0dVRVNUX1NUQVRFIGV2 ZW50IGlzCj4+PiAgICAgYWRkZWQgdG8gdkNQVSBhbmQgdGhlbiB0aGUgdkNQVSBpcyBraWNrZWQu Cj4+Pgo+Pj4gVGhlIEtWTV9SRVFfVVBEQVRFX1BST1RFQ1RFRF9HVUVTVF9TVEFURSBldmVudCBo YW5kbGVyIHdpbGwgYmUgaW52b2tlZAo+Pj4gYXMgYSByZXN1bHQgb2YgdGhlIGV2ZW50IG9yIGFz IGEgcmVzdWx0IG9mIGFuIElOSVQuIFRoZSBoYW5kbGVyIHNldHMgdGhlCj4+PiB2Q1BVIHRvIHRo ZSBLVk1fTVBfU1RBVEVfVU5JTklUSUFMSVpFRCBzdGF0ZSwgc28gdGhhdCBhbnkgZXJyb3JzIHdp bGwKPj4+IGxlYXZlIHRoZSB2Q1BVIGFzIG5vdCBydW5uYWJsZS4gQW55IHByZXZpb3VzIFZNU0Eg cGFnZXMgdGhhdCB3ZXJlCj4+PiBpbnN0YWxsZWQgYXMgcGFydCBvZiBhbiBTRVYtU05QIEFQIENy ZWF0aW9uIE5BRSBldmVudCBhcmUgdW4tcGlubmVkLiBJZgo+Pj4gYSBuZXcgVk1TQSBpcyB0byBi ZSBpbnN0YWxsZWQsIHRoZSBWTVNBIGd1ZXN0IHBhZ2UgaXMgcGlubmVkIGFuZCBzZXQgYXMKPj4+ IHRoZSBWTVNBIGluIHRoZSB2Q1BVIFZNQ0IgYW5kIHRoZSB2Q1BVIHN0YXRlIGlzIHNldCB0bwo+ Pj4gS1ZNX01QX1NUQVRFX1JVTk5BQkxFLiBJZiBhIG5ldyBWTVNBIGlzIG5vdCB0byBiZSBpbnN0 YWxsZWQsIHRoZSBWTVNBIGlzCj4+PiBjbGVhcmVkIGluIHRoZSB2Q1BVIFZNQ0IgYW5kIHRoZSB2 Q1BVIHN0YXRlIGlzIGxlZnQgYXMKPj4+IEtWTV9NUF9TVEFURV9VTklOSVRJQUxJWkVEIHRvIHBy ZXZlbnQgaXQgZnJvbSBiZWluZyBydW4uCj4+Pgo+Pj4gU2lnbmVkLW9mZi1ieTogVG9tIExlbmRh Y2t5IDx0aG9tYXMubGVuZGFja3lAYW1kLmNvbT4KPj4+IFNpZ25lZC1vZmYtYnk6IEJyaWplc2gg U2luZ2ggPGJyaWplc2guc2luZ2hAYW1kLmNvbT4KPj4+IFNpZ25lZC1vZmYtYnk6IEFzaGlzaCBL YWxyYSA8YXNoaXNoLmthbHJhQGFtZC5jb20+Cj4+PiBbbWRyOiBhZGQgaGFuZGxpbmcgZm9yIHJl c3RyaWN0ZWRtZW1dCj4+PiBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIFJvdGggPG1pY2hhZWwucm90 aEBhbWQuY29tPgo+Pgo+PiBXaGF0IGlzIHRoZSBpbnRlbmRlZCBib290IHNlcXVlbmNlIGZvciBT RVYtU05QIGd1ZXN0cz8gRldJVyB3aXRoIHRoaXMKPj4gaW50ZXJmYWNlIGluIHBsYWNlLCBndWVz dHMgd2lsbCB0eXBpY2FsbHkgdXNlIGluLWd1ZXN0IFZNU0EgcGFnZXMgdG8KPj4gaG9sZCBzZWNv bmRhcnkgdmNwdSBzdGF0ZS4gQnV0IHRoYXQgbWVhbnMgd2UncmUgbm93IGFsbG9jYXRpbmcgNGti IG9mCj4+IG1lbW9yeSBmb3IgZXZlcnkgdmNwdSB0aGF0IHdlIGNyZWF0ZSB0aGF0IHdpbGwgYmUg Zm9yIG1vc3Qgb2YgdGhlCj4+IGd1ZXN0J3MgbGlmZXRpbWUgc3VwZXJmbHVvdXMuCj4+Cj4+IFdv dWxkbid0IGl0IG1ha2UgbW9yZSBzZW5zZSB0byBoYXZlIGEgbW9kZWwgd2hlcmUgd2Ugb25seSBh bGxvY2F0ZSB0aGUKPj4gVk1TQSBmb3IgdGhlIGJvb3QgQ1BVIGFuZCBsZWF2ZSBzZWNvbmRhcnkg YWxsb2NhdGlvbiB0byB0aGUgZ3Vlc3Q/IFdlCj4+IGFscmVhZHkgbmVlZCBmaXJtd2FyZSBjaGFu Z2VzIGZvciBTRVYtU05QIC0gbWF5IGFzIHdlbGwgbWFrZSB0aGlzIG9uZSBtb3JlLgo+Pgo+PiBb Li4uXQo+Pgo+Pj4gKwo+Pj4gK3N0YXRpYyBpbnQgc2V2X3NucF9hcF9jcmVhdGlvbihzdHJ1Y3Qg dmNwdV9zdm0gKnN2bSkKPj4+ICt7Cj4+PiArICAgICAgIHN0cnVjdCBrdm1fc2V2X2luZm8gKnNl diA9ICZ0b19rdm1fc3ZtKHN2bS0+dmNwdS5rdm0pLT5zZXZfaW5mbzsKPj4+ICsgICAgICAgc3Ry dWN0IGt2bV92Y3B1ICp2Y3B1ID0gJnN2bS0+dmNwdTsKPj4+ICsgICAgICAgc3RydWN0IGt2bV92 Y3B1ICp0YXJnZXRfdmNwdTsKPj4+ICsgICAgICAgc3RydWN0IHZjcHVfc3ZtICp0YXJnZXRfc3Zt Owo+Pj4gKyAgICAgICB1bnNpZ25lZCBpbnQgcmVxdWVzdDsKPj4+ICsgICAgICAgdW5zaWduZWQg aW50IGFwaWNfaWQ7Cj4+PiArICAgICAgIGJvb2wga2ljazsKPj4+ICsgICAgICAgaW50IHJldDsK Pj4+ICsKPj4+ICsgICAgICAgcmVxdWVzdCA9IGxvd2VyXzMyX2JpdHMoc3ZtLT52bWNiLT5jb250 cm9sLmV4aXRfaW5mb18xKTsKPj4+ICsgICAgICAgYXBpY19pZCA9IHVwcGVyXzMyX2JpdHMoc3Zt LT52bWNiLT5jb250cm9sLmV4aXRfaW5mb18xKTsKPj4+ICsKPj4+ICsgICAgICAgLyogVmFsaWRh dGUgdGhlIEFQSUMgSUQgKi8KPj4+ICsgICAgICAgdGFyZ2V0X3ZjcHUgPSBrdm1fZ2V0X3ZjcHVf YnlfaWQodmNwdS0+a3ZtLCBhcGljX2lkKTsKPj4KPj4gT3V0IG9mIGN1cmlvc2l0eTogVGhlIHRh cmdldCBDUFUgY2FuIGJlIG15IG93biB2Q1BVLCByaWdodD8KPj4KPj4KPj4+ICsgICAgICAgaWYg KCF0YXJnZXRfdmNwdSkgewo+Pj4gKyAgICAgICAgICAgICAgIHZjcHVfdW5pbXBsKHZjcHUsICJ2 bWdleGl0OiBpbnZhbGlkIEFQIEFQSUMgSUQgWyUjeF0gZnJvbSBndWVzdFxuIiwKPj4+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICBhcGljX2lkKTsKPj4+ICsgICAgICAgICAgICAgICByZXR1 cm4gLUVJTlZBTDsKPj4+ICsgICAgICAgfQo+Pj4gKwo+Pj4gKyAgICAgICByZXQgPSAwOwo+Pj4g Kwo+Pj4gKyAgICAgICB0YXJnZXRfc3ZtID0gdG9fc3ZtKHRhcmdldF92Y3B1KTsKPj4+ICsKPj4+ ICsgICAgICAgLyoKPj4+ICsgICAgICAgICogVGhlIHRhcmdldCB2Q1BVIGlzIHZhbGlkLCBzbyB0 aGUgdkNQVSB3aWxsIGJlIGtpY2tlZCB1bmxlc3MgdGhlCj4+PiArICAgICAgICAqIHJlcXVlc3Qg aXMgZm9yIENSRUFURV9PTl9JTklULiBGb3IgYW55IGVycm9ycyBhdCB0aGlzIHN0YWdlLCB0aGUK Pj4+ICsgICAgICAgICoga2ljayB3aWxsIHBsYWNlIHRoZSB2Q1BVIGluIGFuIG5vbi1ydW5uYWJs ZSBzdGF0ZS4KPj4+ICsgICAgICAgICovCj4+PiArICAgICAgIGtpY2sgPSB0cnVlOwo+Pj4gKwo+ Pj4gKyAgICAgICBtdXRleF9sb2NrKCZ0YXJnZXRfc3ZtLT5zZXZfZXMuc25wX3Ztc2FfbXV0ZXgp Owo+Pj4gKwo+Pj4gKyAgICAgICB0YXJnZXRfc3ZtLT5zZXZfZXMuc25wX3Ztc2FfZ3BhID0gSU5W QUxJRF9QQUdFOwo+Pj4gKyAgICAgICB0YXJnZXRfc3ZtLT5zZXZfZXMuc25wX2FwX2NyZWF0ZSA9 IHRydWU7Cj4+PiArCj4+PiArICAgICAgIC8qIEludGVycnVwdCBpbmplY3Rpb24gbW9kZSBzaG91 bGRuJ3QgY2hhbmdlIGZvciBBUCBjcmVhdGlvbiAqLwo+Pj4gKyAgICAgICBpZiAocmVxdWVzdCA8 IFNWTV9WTUdFWElUX0FQX0RFU1RST1kpIHsKPj4+ICsgICAgICAgICAgICAgICB1NjQgc2V2X2Zl YXR1cmVzOwo+Pj4gKwo+Pj4gKyAgICAgICAgICAgICAgIHNldl9mZWF0dXJlcyA9IHZjcHUtPmFy Y2gucmVnc1tWQ1BVX1JFR1NfUkFYXTsKPj4+ICsgICAgICAgICAgICAgICBzZXZfZmVhdHVyZXMg Xj0gc2V2LT5zZXZfZmVhdHVyZXM7Cj4+PiArICAgICAgICAgICAgICAgaWYgKHNldl9mZWF0dXJl cyAmIFNWTV9TRVZfRkVBVF9JTlRfSU5KX01PREVTKSB7Cj4+PiArICAgICAgICAgICAgICAgICAg ICAgICB2Y3B1X3VuaW1wbCh2Y3B1LCAidm1nZXhpdDogaW52YWxpZCBBUCBpbmplY3Rpb24gbW9k ZSBbJSNseF0gZnJvbSBndWVzdFxuIiwKPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHZjcHUtPmFyY2gucmVnc1tWQ1BVX1JFR1NfUkFYXSk7Cj4+PiArICAgICAgICAgICAg ICAgICAgICAgICByZXQgPSAtRUlOVkFMOwo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgZ290 byBvdXQ7Cj4+PiArICAgICAgICAgICAgICAgfQo+Pj4gKyAgICAgICB9Cj4+PiArCj4+PiArICAg ICAgIHN3aXRjaCAocmVxdWVzdCkgewo+Pj4gKyAgICAgICBjYXNlIFNWTV9WTUdFWElUX0FQX0NS RUFURV9PTl9JTklUOgo+Pj4gKyAgICAgICAgICAgICAgIGtpY2sgPSBmYWxzZTsKPj4+ICsgICAg ICAgICAgICAgICBmYWxsdGhyb3VnaDsKPj4+ICsgICAgICAgY2FzZSBTVk1fVk1HRVhJVF9BUF9D UkVBVEU6Cj4+PiArICAgICAgICAgICAgICAgaWYgKCFwYWdlX2FkZHJlc3NfdmFsaWQodmNwdSwg c3ZtLT52bWNiLT5jb250cm9sLmV4aXRfaW5mb18yKSkgewo+Pj4gKyAgICAgICAgICAgICAgICAg ICAgICAgdmNwdV91bmltcGwodmNwdSwgInZtZ2V4aXQ6IGludmFsaWQgQVAgVk1TQSBhZGRyZXNz IFslI2xseF0gZnJvbSBndWVzdFxuIiwKPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN2bS0+dm1jYi0+Y29udHJvbC5leGl0X2luZm9fMik7Cj4+PiArICAgICAgICAgICAg ICAgICAgICAgICByZXQgPSAtRUlOVkFMOwo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgZ290 byBvdXQ7Cj4+PiArICAgICAgICAgICAgICAgfQo+Pj4gKwo+Pj4gKyAgICAgICAgICAgICAgIC8q Cj4+PiArICAgICAgICAgICAgICAgICogTWFsaWNpb3VzIGd1ZXN0IGNhbiBSTVBBREpVU1QgYSBs YXJnZSBwYWdlIGludG8gVk1TQSB3aGljaAo+Pj4gKyAgICAgICAgICAgICAgICAqIHdpbGwgaGl0 IHRoZSBTTlAgZXJyYXR1bSB3aGVyZSB0aGUgQ1BVIHdpbGwgaW5jb3JyZWN0bHkgc2lnbmFsCj4+ PiArICAgICAgICAgICAgICAgICogYW4gUk1QIHZpb2xhdGlvbiAjUEYgaWYgYSBodWdlcGFnZSBj b2xsaWRlcyB3aXRoIHRoZSBSTVAgZW50cnkKPj4+ICsgICAgICAgICAgICAgICAgKiBvZiBWTVNB IHBhZ2UsIHJlamVjdCB0aGUgQVAgQ1JFQVRFIHJlcXVlc3QgaWYgVk1TQSBhZGRyZXNzIGZyb20K Pj4+ICsgICAgICAgICAgICAgICAgKiBndWVzdCBpcyAyTSBhbGlnbmVkLgo+Pgo+PiBUaGlzIHdp bGwgYnJlYWsgZ2VudWluZSBjdXJyZW50IExpbnV4IGtlcm5lbHMgdGhhdCBqdXN0IGhhcHBlbiB0 bwo+PiBhbGxvY2F0ZSBhIGd1ZXN0IHBhZ2UsIG5vPyBJbiBmYWN0LCBnaXZlbiBlbm91Z2ggdkNQ VXMgeW91J3JlIGFsbW9zdAo+PiBndWFyYW50ZWVkIHRvIGhpdCBhbiBhbGlnbmVkIHN0cnVjdHVy ZSBzb21ld2hlcmUuIFdoYXQgaXMgdGhlIGd1ZXN0Cj4+IHN1cHBvc2VkIHRvIGRvIGluIHRoYXQg c2l0dWF0aW9uPwo+Pgo+Pgo+Pj4gKyAgICAgICAgICAgICAgICAqLwo+Pj4gKyAgICAgICAgICAg ICAgIGlmIChJU19BTElHTkVEKHN2bS0+dm1jYi0+Y29udHJvbC5leGl0X2luZm9fMiwgUE1EX1NJ WkUpKSB7Cj4+PiArICAgICAgICAgICAgICAgICAgICAgICB2Y3B1X3VuaW1wbCh2Y3B1LAo+Pj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZtZ2V4aXQ6IEFQIFZNU0EgYWRk cmVzcyBbJWxseF0gZnJvbSBndWVzdCBpcyB1bnNhZmUgYXMgaXQgaXMgMk0gYWxpZ25lZFxuIiwK Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN2bS0+dm1jYi0+Y29udHJv bC5leGl0X2luZm9fMik7Cj4+PiArICAgICAgICAgICAgICAgICAgICAgICByZXQgPSAtRUlOVkFM Owo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgZ290byBvdXQ7Cj4+PiArICAgICAgICAgICAg ICAgfQo+Pj4gKwo+Pj4gKyAgICAgICAgICAgICAgIHRhcmdldF9zdm0tPnNldl9lcy5zbnBfdm1z YV9ncGEgPSBzdm0tPnZtY2ItPmNvbnRyb2wuZXhpdF9pbmZvXzI7Cj4+PiArICAgICAgICAgICAg ICAgYnJlYWs7Cj4+PiArICAgICAgIGNhc2UgU1ZNX1ZNR0VYSVRfQVBfREVTVFJPWToKPj4KPj4g SSBkb24ndCB1bmRlcnN0YW5kIHRoZSBkZXN0cm95IHBhdGguIFdoeSBkb2VzIHRoaXMgY2FzZSBk ZXN0cm95IGFueXRoaW5nPwo+Pgo+Pgo+Pj4gKyAgICAgICAgICAgICAgIGJyZWFrOwo+Pj4gKyAg ICAgICBkZWZhdWx0Ogo+Pj4gKyAgICAgICAgICAgICAgIHZjcHVfdW5pbXBsKHZjcHUsICJ2bWdl eGl0OiBpbnZhbGlkIEFQIGNyZWF0aW9uIHJlcXVlc3QgWyUjeF0gZnJvbSBndWVzdFxuIiwKPj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0KTsKPj4+ICsgICAgICAgICAgICAg ICByZXQgPSAtRUlOVkFMOwo+Pj4gKyAgICAgICAgICAgICAgIGJyZWFrOwo+Pj4gKyAgICAgICB9 Cj4+PiArCj4+PiArb3V0Ogo+Pj4gKyAgICAgICBpZiAoa2ljaykgewo+Pj4gKyAgICAgICAgICAg ICAgIGlmICh0YXJnZXRfdmNwdS0+YXJjaC5tcF9zdGF0ZSA9PSBLVk1fTVBfU1RBVEVfVU5JTklU SUFMSVpFRCkKPj4+ICsgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF92Y3B1LT5hcmNoLm1w X3N0YXRlID0gS1ZNX01QX1NUQVRFX1JVTk5BQkxFOwo+Pgo+PiBXaGF0IGlmIHRoZSBndWVzdCBB UCBnb2VzIHRocm91Z2ggYSBjcmVhdGUgLT4gZGVzdHJveSAtPiBjcmVhdGUgY3ljbGU/Cj4+IFdp bGwgaXQgc3RheSBydW5uYWJsZSB3aGlsZSBkZXN0cm95ZWQ/Cj4gVGhlIGNvZGUgaXMgbm90IHZl cnkgc3RyYWlnaHRmb3J3YXJkLgo+Cj4gMSkgdGFyZ2V0X3N2bS0+c2V2X2VzLnNucF92bXNhX2dw YSBpcyBzZXQgYXMgSU5WQUxJRF9QQUdFIGluIHRoZSBiZWdpbm5pbmcgb2YgdGhpcyBmdW5jdGlv bi4KPgo+IDIpIElmIGEgREVTVFJPWSBpcyBoaXQgaW4gdGhpcyBmdW5jdGlvbiwgdGFyZ2V0X3N2 bS0+c2V2X2VzLnNucF92bXNhX2dwYSB3aWxsIGJlCj4gbGVmdCBhcyBJTlZBTElEX1BBR0UuCj4K PiAzKSBBdCB0aGUgZW5kIG9mIHRoaXMgZnVuY3Rpb24sIGl0IGNhbGxzIGt2bV9tYWtlX3JlcXVl c3QoS1ZNX1JFUV9VUERBVEVfUFJPVEVDVEVEX0dVRVNUX1NUQVRFKS4KPgo+IDQpIEluIHRoZSB2 Y3B1X2VudGVyX2d1ZXN0KCksIHRoZSBrdm1fdmNwdV9yZXNldCgpLT5zZXZfc25wX2luaXRfcHJv dGVjdGVkX2d1ZXN0X3N0YXRlKCkKPiAtPl9fc2V2X3NucF9pbml0X3Byb3RlY3RlZF9ndWVzdF9z dGF0ZSgpIGlzIGNhbGxlZC4KPgo+IDUpIFRoZSBtcF9zdGF0ZSBpcyBzZXQgdG8gS1ZNX01QX1NU QVRFX1NUT1BQRUQgYnkgZGVmYXVsdCBhbmQgdGhlIHJ1bnRpbWUgVk1TQSBpcwo+IGNsZWFyZWQu IFRoZW4gdGhlIGl0IHdpbGwgYmUgaW5pdGlhbGl6ZWQgYWNjb3JkaW5nIHRvIHRoZSBndWVzdCdz Cj4gY29uZmlndXJhdGlvbi4KPgo+IDYpIEFzIHRoZSBzbnBfdm1zYV9ncGEgaXMgc2V0IGFzIElO VkFMSURfUEFHRSBpbiAxLCB0aGUgbXBfc3RhdGUgd2lsbCBiZSBsZWZ0IGFzCj4gS1ZNX01QX1NU QVRFX1NUT1BQRUQuCj4KPiA3KSBXaXRoIHRoaXMgY29kZSBwaWVjZToKPgo+ICsgICAgICAgICAg ICAgICAgICAgICAgIGt2bV92Y3B1X3Jlc2V0KHZjcHUsIHRydWUpOwo+ICsgICAgICAgICAgICAg ICAgICAgICAgIGlmICh2Y3B1LT5hcmNoLm1wX3N0YXRlICE9IEtWTV9NUF9TVEFURV9SVU5OQUJM RSkKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+Cj4gdmNwdV9l bnRlcl9ndWVzdCgpIGJhaWxzIG91dC4KCgpUaGFua3MgYSBsb3QgWmhpIGZvciB0aGUgZGV0YWls ZWQgZXhwbGFuYXRpb24hIEkgdGhpbmsgdGhpcyBjb2RlIGZsb3cgCndhbnRzIHRvIGJlY29tZSBz bGlnaHRseSBtb3JlIG9idmlvdXMuIEZvciBleGFtcGxlLCBpZiB3ZSBqdXN0IHNhaWQKCiDCoCBj YXNlIFNWTV9WTUdFWElUX0FQX0RFU1RST1k6CiDCoMKgwqAgLyogVGhpcyB3aWxsIHRlbGwgX19z ZXZfc25wX3VwZGF0ZV9wcm90ZWN0ZWRfZ3Vlc3Rfc3RhdGUgdG8gdW5tYXAgCnRoZSBWTVNBICov CiDCoMKgwqAgdGFyZ2V0X3N2bS0+c2V2X2VzLnNucF92bXNhX2dwYSA9IElOVkFMSURfUEFHRTsK IMKgwqDCoCBicmVhazsKCldlJ2QgZ2V0IGEgYmlnIHdpbiBpbiByZWFkYWJpbGl0eSB3aXRoIGxp dHRsZSBlZmZvcnQuIEl0IG1ha2VzIGl0IAppbW1lZGlhdGVseSBvYnZpb3VzIHdoZXJlIHRvIGxv b2sgZm9yIHRoZSBkZXN0cm95IG9wZXJhdGlvbi4KCgpBbGV4CgoKCgoKQW1hem9uIERldmVsb3Bt ZW50IENlbnRlciBHZXJtYW55IEdtYkgKS3JhdXNlbnN0ci4gMzgKMTAxMTcgQmVybGluCkdlc2No YWVmdHNmdWVocnVuZzogQ2hyaXN0aWFuIFNjaGxhZWdlciwgSm9uYXRoYW4gV2Vpc3MKRWluZ2V0 cmFnZW4gYW0gQW10c2dlcmljaHQgQ2hhcmxvdHRlbmJ1cmcgdW50ZXIgSFJCIDE0OTE3MyBCClNp dHo6IEJlcmxpbgpVc3QtSUQ6IERFIDI4OSAyMzcgODc5CgoK