Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp5307168pxb; Sun, 7 Nov 2021 09:24:42 -0800 (PST) X-Google-Smtp-Source: ABdhPJy9Xqroj7V0eCcA9InkF/coNs5mGoMRwxOfxjUbvZswMmvB9dVZnap6G675uJA7Xaa95S35 X-Received: by 2002:a05:6e02:1b88:: with SMTP id h8mr35522233ili.124.1636305882502; Sun, 07 Nov 2021 09:24:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1636305882; cv=none; d=google.com; s=arc-20160816; b=jFajp8SlwmLjNFqBI0q08cArm1IFGQttkviPt0fT9HcAO4nCak2vYPTeHX4jRrIpsS kzUAf7PjyuElUgbwbIqEjLw2zP4Of5zSy8PiguxSxDNR83PLkomB5NKn6GV4QmdpMXtu oD6NSiEIXKCQzqkn8EwWkw4K4JC9vU5R1l/XodpD1Z3GSFUUkZttBzJySMR4fPvuWaAu I1JHJY7vfnar/iFB7fOP/4MQY+XzGUDXMnPWG9y7UTqX/1G1XPlsX49XpND2hzD+0B2w Oe1hjN51zsTI6Vcxr78A80eNKfunch0Ul6qkcvPVFXi0X7n89vBp+X03yj1aCnDY56ik 5aJg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from; bh=/ahIbQ6MLMrrlsDuHBVhxGq8IMaOraa8Ca14SfeFhvs=; b=Yd/4qgvcPiblQ5YZgTTfS6jhwrmKEBGlm7/h75ing3td5n6ThAGT+tJ+CEhO3ztxgu 6oDYpttoZ0BJS1TiJBb1hOIxmhdTdwSshZbDZAcUUWozPsd2tRjNGWqyyywwG7gr+yOf /182Awa+l2OsnHzqTZ9c1F793zFejD82ykCRRaxRQq3ySjpbpw7xQloWi9LKwly66rpW +5/E1dwFSCDoZ34t1+cgdLj06wHemyq3rf9f9pPVg4RRuQm133DkEcRJ4zdFcG0OSUTs CxLdUu3Ls4ekUlkUbEDNrUIyQYzQ0XWgnbXGpv/+QsqoO+XzCxPcvQW+xOVfNX9wTE9C 1fvQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=huawei.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f23si3198286jav.41.2021.11.07.09.24.20; Sun, 07 Nov 2021 09:24:42 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232626AbhKGNZ0 (ORCPT + 99 others); Sun, 7 Nov 2021 08:25:26 -0500 Received: from szxga08-in.huawei.com ([45.249.212.255]:27116 "EHLO szxga08-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232562AbhKGNZZ (ORCPT ); Sun, 7 Nov 2021 08:25:25 -0500 Received: from dggemv703-chm.china.huawei.com (unknown [172.30.72.56]) by szxga08-in.huawei.com (SkyGuard) with ESMTP id 4HnFGx1JK6z1DDCw; Sun, 7 Nov 2021 21:20:25 +0800 (CST) Received: from dggpemm500008.china.huawei.com (7.185.36.136) by dggemv703-chm.china.huawei.com (10.3.19.46) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.15; Sun, 7 Nov 2021 21:22:35 +0800 Received: from dggpeml100016.china.huawei.com (7.185.36.216) by dggpemm500008.china.huawei.com (7.185.36.136) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.15; Sun, 7 Nov 2021 21:22:35 +0800 Received: from dggpeml100016.china.huawei.com ([7.185.36.216]) by dggpeml100016.china.huawei.com ([7.185.36.216]) with mapi id 15.01.2308.015; Sun, 7 Nov 2021 21:22:34 +0800 From: "Longpeng (Mike, Cloud Infrastructure Service Product Dept.)" To: "Paraschiv, Andra-Irina" CC: "Gonglei (Arei)" , "gregkh@linuxfoundation.org" , "kamal@canonical.com" , "pbonzini@redhat.com" , "sgarzare@redhat.com" , "stefanha@redhat.com" , "vkuznets@redhat.com" , "linux-kernel@vger.kernel.org" , "ne-devel-upstream@amazon.com" , "lexnv@amazon.com" , "alcioa@amazon.com" Subject: RE: [PATCH v4 4/4] nitro_enclaves: Add KUnit tests for contiguous physical memory regions merging Thread-Topic: [PATCH v4 4/4] nitro_enclaves: Add KUnit tests for contiguous physical memory regions merging Thread-Index: AQHX0LswsWjXeLFGeUelxtGIRV95Xav3jKaAgACGpVA= Date: Sun, 7 Nov 2021 13:22:34 +0000 Message-ID: <8351e0a0e6554e68b1f3d2f9190625aa@huawei.com> References: <20211103140035.2001-1-longpeng2@huawei.com> <20211103140035.2001-5-longpeng2@huawei.com> <30adfb11-36e1-3bc2-13f5-824ced78fcd1@amazon.com> In-Reply-To: <30adfb11-36e1-3bc2-13f5-824ced78fcd1@amazon.com> Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.174.148.223] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogUGFyYXNjaGl2LCBBbmRy YS1JcmluYSBbbWFpbHRvOmFuZHJhcHJzQGFtYXpvbi5jb21dDQo+IFNlbnQ6IFN1bmRheSwgTm92 ZW1iZXIgNywgMjAyMSA5OjIwIFBNDQo+IFRvOiBMb25ncGVuZyAoTWlrZSwgQ2xvdWQgSW5mcmFz dHJ1Y3R1cmUgU2VydmljZSBQcm9kdWN0IERlcHQuKQ0KPiA8bG9uZ3BlbmcyQGh1YXdlaS5jb20+ DQo+IENjOiBHb25nbGVpIChBcmVpKSA8YXJlaS5nb25nbGVpQGh1YXdlaS5jb20+OyBncmVna2hA bGludXhmb3VuZGF0aW9uLm9yZzsNCj4ga2FtYWxAY2Fub25pY2FsLmNvbTsgcGJvbnppbmlAcmVk aGF0LmNvbTsgc2dhcnphcmVAcmVkaGF0LmNvbTsNCj4gc3RlZmFuaGFAcmVkaGF0LmNvbTsgdmt1 em5ldHNAcmVkaGF0LmNvbTsgbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsNCj4gbmUtZGV2 ZWwtdXBzdHJlYW1AYW1hem9uLmNvbTsgbGV4bnZAYW1hem9uLmNvbTsgYWxjaW9hQGFtYXpvbi5j b20NCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2NCA0LzRdIG5pdHJvX2VuY2xhdmVzOiBBZGQgS1Vu aXQgdGVzdHMgZm9yIGNvbnRpZ3VvdXMNCj4gcGh5c2ljYWwgbWVtb3J5IHJlZ2lvbnMgbWVyZ2lu Zw0KPiANCj4gDQo+IA0KPiBPbiAwMy8xMS8yMDIxIDE2OjAwLCBMb25ncGVuZyhNaWtlKSB3cm90 ZToNCj4gPiBGcm9tOiBMb25ncGVuZyA8bG9uZ3BlbmcyQGh1YXdlaS5jb20+DQo+ID4NCj4gPiBB ZGQgS1VuaXQgdGVzdHMgZm9yIHRoZSBjb250aWd1b3VzIHBoeXNpY2FsIG1lbW9yeSByZWdpb25z IG1lcmdpbmcNCj4gPiBmdW5jdGlvbmFsaXR5IGZyb20gdGhlIE5pdHJvIEVuY2xhdmVzIG1pc2Mg ZGV2aWNlIGxvZ2ljLg0KPiA+DQo+ID4gV2UgY2FuIGJ1aWxkIHRoZSB0ZXN0IGJpbmFyeSB3aXRo IHRoZSBmb2xsb3dpbmcgY29uZmlndXJhdGlvbjoNCj4gPiAgICBDT05GSUdfS1VOSVQ9eQ0KPiA+ ICAgIENPTkZJR19OSVRST19FTkNMQVZFUz1tDQo+ID4gICAgQ09ORklHX05JVFJPX0VOQ0xBVkVT X01JU0NfREVWX1RFU1Q9eQ0KPiA+IGFuZCBpbnN0YWxsIHRoZSBuaXRyb19lbmNsYXZlcyBtb2R1 bGUgdG8gcnVuIHRoZSB0ZXN0Y2FzZXMuDQo+ID4NCj4gPiBXZSdsbCBzZWUgdGhlIGZvbGxvd2lu ZyBtZXNzYWdlIHVzaW5nIGRtZXNnIGlmIGV2ZXJ5dGhpbmcgZ29lcyB3ZWxsOg0KPiA+DQo+ID4g Wy4uLl0gICAgICMgU3VidGVzdDogbmVfbWlzY19kZXZfdGVzdA0KPiA+IFsuLi5dICAgICAxLi4x DQo+ID4gWy4uLl0gKE5VTEwgZGV2aWNlICopOiBQaHlzaWNhbCBtZW0gcmVnaW9uIGFkZHJlc3Mg aXMgbm90IDIgTWlCIGFsaWduZWQNCj4gPiBbLi4uXSAoTlVMTCBkZXZpY2UgKik6IFBoeXNpY2Fs IG1lbSByZWdpb24gc2l6ZSBpcyBub3QgbXVsdGlwbGUgb2YgMiBNaUINCj4gPiBbLi4uXSAoTlVM TCBkZXZpY2UgKik6IFBoeXNpY2FsIG1lbSByZWdpb24gYWRkcmVzcyBpcyBub3QgMiBNaUIgYWxp Z25lZA0KPiA+IFsuLi5dICAgICBvayAxIC0gbmVfbWlzY19kZXZfdGVzdF9tZXJnZV9waHlzX2Nv bnRpZ19tZW1vcnlfcmVnaW9ucw0KPiA+IFsuLi5dIG9rIDEgLSBuZV9taXNjX2Rldl90ZXN0DQo+ ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBMb25ncGVuZyA8bG9uZ3BlbmcyQGh1YXdlaS5jb20+DQo+ ID4gLS0tDQo+ID4gQ2hhbmdlcyB2MyAtPiB2NDoNCj4gPiAgICAtICJpbnQgZXhwZWN0X251bSIg LT4gInVuc2lnbmVkIGxvbmcgIGV4cGVjdF9udW0iICBbQW5kcmFdDQo+ID4gICAgLSByZW5hbWUg c2V2ZXJhbCB2YXJpYWJsZXMgYW5kIHN0cnVjdHVyZXMgIFtBbmRyYV0NCj4gPiAgICAtIGludm9r ZSAia3VuaXRfa2ZyZWUiIHRvIGZyZWUgdGhlICJyZWdpb25zIiAgW0FuZHJhXQ0KPiA+DQo+ID4g Q2hhbmdlcyB2MiAtPiB2MzoNCj4gPiAgICAtIHVwZGF0ZSB0aGUgY29tbWl0IHRpdGxlIGFuZCBj b21taXQgbWVzc2FnZS4gIFtBbmRyYV0NCj4gPiAgICAtIGFsaWduIHRoZSBmaWxlZHMgaW4gJ3N0 cnVjdCBwaHlzX3JlZ2lvbnNfdGVzdCcuICBbQW5kcmFdDQo+ID4gICAgLSByZW5hbWUgJ3BoeXNf cmVnaW9uc190ZXN0Y2FzZXMnIHRvICdwaHlzX3JlZ2lvbnNfdGVzdF9jYXNlcycuICBbQW5kcmFd DQo+ID4gICAgLSBhZGQgY29tbWVudHMgYmVmb3JlIGVhY2ggdGVzdCBjYXNlcy4gIFtBbmRyYV0N Cj4gPiAgICAtIGluaXRpYWxpemUgdGhlIHZhcmlhYmxlcyBpbg0KPiBuZV9taXNjX2Rldl90ZXN0 X21lcmdlX3BoeXNfY29udGlnX21lbW9yeV9yZWdpb25zLiAgW0FuZHJhXQ0KPiA+IC0tLQ0KPiA+ ICAgZHJpdmVycy92aXJ0L25pdHJvX2VuY2xhdmVzL25lX21pc2NfZGV2X3Rlc3QuYyB8IDEzOQ0K PiArKysrKysrKysrKysrKysrKysrKysrKysrDQo+ID4gICAxIGZpbGUgY2hhbmdlZCwgMTM5IGlu c2VydGlvbnMoKykNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpcnQvbml0cm9fZW5j bGF2ZXMvbmVfbWlzY19kZXZfdGVzdC5jDQo+IGIvZHJpdmVycy92aXJ0L25pdHJvX2VuY2xhdmVz L25lX21pc2NfZGV2X3Rlc3QuYw0KPiA+IGluZGV4IDY4NjJlOTkuLjQ2NDhlYzAyIDEwMDY0NA0K PiA+IC0tLSBhL2RyaXZlcnMvdmlydC9uaXRyb19lbmNsYXZlcy9uZV9taXNjX2Rldl90ZXN0LmMN Cj4gPiArKysgYi9kcml2ZXJzL3ZpcnQvbml0cm9fZW5jbGF2ZXMvbmVfbWlzY19kZXZfdGVzdC5j DQo+ID4gQEAgLTIsNyArMiwxNDYgQEANCj4gPg0KPiA+ICAgI2luY2x1ZGUgPGt1bml0L3Rlc3Qu aD4NCj4gPg0KPiA+ICsjZGVmaW5lIE1BWF9QSFlTX1JFR0lPTlMJMTYNCj4gPiArI2RlZmluZSBJ TlZBTElEX1ZBTFVFCQkofjB1bGwpDQo+ID4gKw0KPiA+ICtzdHJ1Y3QgbmVfcGh5c19yZWdpb25z X3Rlc3Qgew0KPiA+ICsJdTY0ICAgICAgICAgICBwYWRkcjsNCj4gPiArCXU2NCAgICAgICAgICAg c2l6ZTsNCj4gPiArCWludCAgICAgICAgICAgZXhwZWN0X3JjOw0KPiA+ICsJdW5zaWduZWQgbG9u ZyBleHBlY3RfbnVtOw0KPiA+ICsJdTY0ICAgICAgICAgICBleHBlY3RfbGFzdF9wYWRkcjsNCj4g PiArCXU2NCAgICAgICAgICAgZXhwZWN0X2xhc3Rfc2l6ZTsNCj4gPiArfSBwaHlzX3JlZ2lvbnNf dGVzdF9jYXNlc1tdID0gew0KPiA+ICsJLyoNCj4gPiArCSAqIEFkZCB0aGUgcmVnaW9uIGZyb20g MHgxMDAwIHRvICgweDEwMDAgKyAweDIwMDAwMCAtIDEpOg0KPiA+ICsJICogICBFeHBlY3RlZCBy ZXN1bHQ6DQo+ID4gKwkgKiAgICAgICBGYWlsZWQsIHN0YXJ0IGFkZHJlc3MgaXMgbm90IDJNLWFs aWduZWQNCj4gPiArCSAqDQo+ID4gKwkgKiBOb3cgdGhlIGluc3RhbmNlIG9mIHN0cnVjdCBuZV9w aHlzX2NvbnRpZ19tZW1fcmVnaW9ucyBpczoNCj4gPiArCSAqICAgbnVtID0gMA0KPiA+ICsJICog ICByZWdpb25zID0ge30NCj4gPiArCSAqLw0KPiA+ICsJezB4MTAwMCwgMHgyMDAwMDAsIC1FSU5W QUwsIDAsIElOVkFMSURfVkFMVUUsIElOVkFMSURfVkFMVUV9LA0KPiA+ICsNCj4gPiArCS8qDQo+ ID4gKwkgKiBBZGQgdGhlIHJlZ2lvbiBmcm9tIDB4MjAwMDAwIHRvICgweDIwMDAwMCArIDB4MTAw MCAtIDEpOg0KPiA+ICsJICogICBFeHBlY3RlZCByZXN1bHQ6DQo+ID4gKwkgKiAgICAgICBGYWls ZWQsIHNpemUgaXMgbm90IDJNLWFsaWduZWQNCj4gPiArCSAqDQo+ID4gKwkgKiBOb3cgdGhlIGlu c3RhbmNlIG9mIHN0cnVjdCBuZV9waHlzX2NvbnRpZ19tZW1fcmVnaW9ucyBpczoNCj4gPiArCSAq ICAgbnVtID0gMA0KPiA+ICsJICogICByZWdpb25zID0ge30NCj4gPiArCSAqLw0KPiA+ICsJezB4 MjAwMDAwLCAweDEwMDAsIC1FSU5WQUwsIDAsIElOVkFMSURfVkFMVUUsIElOVkFMSURfVkFMVUV9 LA0KPiA+ICsNCj4gPiArCS8qDQo+ID4gKwkgKiBBZGQgdGhlIHJlZ2lvbiBmcm9tIDB4MjAwMDAw IHRvICgweDIwMDAwMCArIDB4MjAwMDAwIC0gMSk6DQo+ID4gKwkgKiAgIEV4cGVjdGVkIHJlc3Vs dDoNCj4gPiArCSAqICAgICAgIFN1Y2Nlc3NmdWwNCj4gPiArCSAqDQo+ID4gKwkgKiBOb3cgdGhl IGluc3RhbmNlIG9mIHN0cnVjdCBuZV9waHlzX2NvbnRpZ19tZW1fcmVnaW9ucyBpczoNCj4gPiAr CSAqICAgbnVtID0gMQ0KPiA+ICsJICogICByZWdpb25zID0gew0KPiA+ICsJICogICAgICAge3N0 YXJ0PTB4MjAwMDAwLCBlbmQ9MHgzZmZmZmZ9LCAvLyBsZW49MHgyMDAwMDANCj4gPiArCSAqICAg fQ0KPiA+ICsJICovDQo+ID4gKwl7MHgyMDAwMDAsIDB4MjAwMDAwLCAwLCAxLCAweDIwMDAwMCwg MHgyMDAwMDB9LA0KPiA+ICsNCj4gPiArCS8qDQo+ID4gKwkgKiBBZGQgdGhlIHJlZ2lvbiBmcm9t IDB4MCB0byAoMHgwICsgMHgyMDAwMDAgLSAxKToNCj4gPiArCSAqICAgRXhwZWN0ZWQgcmVzdWx0 Og0KPiA+ICsJICogICAgICAgU3VjY2Vzc2Z1bA0KPiA+ICsJICoNCj4gPiArCSAqIE5vdyB0aGUg aW5zdGFuY2Ugb2Ygc3RydWN0IG5lX3BoeXNfY29udGlnX21lbV9yZWdpb25zIGlzOg0KPiA+ICsJ ICogICBudW0gPSAyDQo+ID4gKwkgKiAgIHJlZ2lvbnMgPSB7DQo+ID4gKwkgKiAgICAgICB7c3Rh cnQ9MHgyMDAwMDAsIGVuZD0weDNmZmZmZn0sIC8vIGxlbj0weDIwMDAwMA0KPiA+ICsJICogICAg ICAge3N0YXJ0PTB4MCwgICAgICBlbmQ9MHgxZmZmZmZ9LCAvLyBsZW49MHgyMDAwMDANCj4gPiAr CSAqICAgfQ0KPiA+ICsJICovDQo+ID4gKwl7MHgwLCAweDIwMDAwMCwgMCwgMiwgMHgwLCAweDIw MDAwMH0sDQo+ID4gKw0KPiA+ICsJLyoNCj4gPiArCSAqIEFkZCB0aGUgcmVnaW9uIGZyb20gMHg2 MDAwMDAgdG8gKDB4NjAwMDAwICsgMHg0MDAwMDAgLSAxKToNCj4gPiArCSAqICAgRXhwZWN0ZWQg cmVzdWx0Og0KPiA+ICsJICogICAgICAgU3VjY2Vzc2Z1bA0KPiA+ICsJICoNCj4gPiArCSAqIE5v dyB0aGUgaW5zdGFuY2Ugb2Ygc3RydWN0IG5lX3BoeXNfY29udGlnX21lbV9yZWdpb25zIGlzOg0K PiA+ICsJICogICBudW0gPSAzDQo+ID4gKwkgKiAgIHJlZ2lvbnMgPSB7DQo+ID4gKwkgKiAgICAg ICB7c3RhcnQ9MHgyMDAwMDAsIGVuZD0weDNmZmZmZn0sIC8vIGxlbj0weDIwMDAwMA0KPiA+ICsJ ICogICAgICAge3N0YXJ0PTB4MCwgICAgICBlbmQ9MHgxZmZmZmZ9LCAvLyBsZW49MHgyMDAwMDAN Cj4gPiArCSAqICAgICAgIHtzdGFydD0weDYwMDAwMCwgZW5kPTB4OWZmZmZmfSwgLy8gbGVuPTB4 NDAwMDAwDQo+ID4gKwkgKiAgIH0NCj4gPiArCSAqLw0KPiA+ICsJezB4NjAwMDAwLCAweDQwMDAw MCwgMCwgMywgMHg2MDAwMDAsIDB4NDAwMDAwfSwNCj4gPiArDQo+ID4gKwkvKg0KPiA+ICsJICog QWRkIHRoZSByZWdpb24gZnJvbSAweGEwMDAwMCB0byAoMHhhMDAwMDAgKyAweDQwMDAwMCAtIDEp Og0KPiA+ICsJICogICBFeHBlY3RlZCByZXN1bHQ6DQo+ID4gKwkgKiAgICAgICBTdWNjZXNzZnVs LCBtZXJnaW5nIGNhc2UhDQo+ID4gKwkgKg0KPiA+ICsJICogTm93IHRoZSBpbnN0YW5jZSBvZiBz dHJ1Y3QgbmVfcGh5c19jb250aWdfbWVtX3JlZ2lvbnMgaXM6DQo+ID4gKwkgKiAgIG51bSA9IDMN Cj4gPiArCSAqICAgcmVnaW9ucyA9IHsNCj4gPiArCSAqICAgICAgIHtzdGFydD0weDIwMDAwMCwg ZW5kPTB4M2ZmZmZmfSwgLy8gbGVuPTB4MjAwMDAwDQo+ID4gKwkgKiAgICAgICB7c3RhcnQ9MHgw LCAgICAgIGVuZD0weDFmZmZmZn0sIC8vIGxlbj0weDIwMDAwMA0KPiA+ICsJICogICAgICAge3N0 YXJ0PTB4NjAwMDAwLCBlbmQ9MHhkZmZmZmZ9LCAvLyBsZW49MHg4MDAwMDANCj4gPiArCSAqICAg fQ0KPiA+ICsJICovDQo+ID4gKwl7MHhhMDAwMDAsIDB4NDAwMDAwLCAwLCAzLCAweDYwMDAwMCwg MHg4MDAwMDB9LA0KPiA+ICsNCj4gPiArCS8qDQo+ID4gKwkgKiBBZGQgdGhlIHJlZ2lvbiBmcm9t IDB4MTAwMCB0byAoMHgxMDAwICsgMHgyMDAwMDAgLSAxKToNCj4gPiArCSAqICAgRXhwZWN0ZWQg cmVzdWx0Og0KPiA+ICsJICogICAgICAgRmFpbGVkLCBzdGFydCBhZGRyZXNzIGlzIG5vdCAyTS1h bGlnbmVkDQo+ID4gKwkgKg0KPiA+ICsJICogTm93IHRoZSBpbnN0YW5jZSBvZiBzdHJ1Y3QgbmVf cGh5c19jb250aWdfbWVtX3JlZ2lvbnMgaXM6DQo+ID4gKwkgKiAgIG51bSA9IDMNCj4gPiArCSAq ICAgcmVnaW9ucyA9IHsNCj4gPiArCSAqICAgICAgIHtzdGFydD0weDIwMDAwMCwgZW5kPTB4M2Zm ZmZmfSwgLy8gbGVuPTB4MjAwMDAwDQo+ID4gKwkgKiAgICAgICB7c3RhcnQ9MHgwLCAgICAgIGVu ZD0weDFmZmZmZn0sIC8vIGxlbj0weDIwMDAwMA0KPiA+ICsJICogICAgICAge3N0YXJ0PTB4NjAw MDAwLCBlbmQ9MHhkZmZmZmZ9LCAvLyBsZW49MHg4MDAwMDANCj4gPiArCSAqICAgfQ0KPiA+ICsJ ICovDQo+ID4gKwl7MHgxMDAwLCAweDIwMDAwMCwgLUVJTlZBTCwgMywgMHg2MDAwMDAsIDB4ODAw MDAwfSwNCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0YXRpYyB2b2lkIG5lX21pc2NfZGV2X3Rlc3Rf bWVyZ2VfcGh5c19jb250aWdfbWVtb3J5X3JlZ2lvbnMoc3RydWN0IGt1bml0DQo+ICp0ZXN0KQ0K PiA+ICt7DQo+ID4gKwlzdHJ1Y3QgbmVfcGh5c19jb250aWdfbWVtX3JlZ2lvbnMgcGh5c19jb250 aWdfbWVtX3JlZ2lvbnMgPSB7fTsNCj4gPiArCWludCByYyA9IDA7DQo+ID4gKwlpbnQgaSA9IDA7 DQo+ID4gKw0KPiA+ICsJcGh5c19jb250aWdfbWVtX3JlZ2lvbnMucmVnaW9ucyA9IGt1bml0X2tj YWxsb2ModGVzdCwgTUFYX1BIWVNfUkVHSU9OUywNCj4gPiArCQkJCQlzaXplb2YoKnBoeXNfY29u dGlnX21lbV9yZWdpb25zLnJlZ2lvbnMpLCBHRlBfS0VSTkVMKTsNCj4gPiArCUtVTklUX0FTU0VS VF9UUlVFKHRlc3QsIHBoeXNfY29udGlnX21lbV9yZWdpb25zLnJlZ2lvbnMgIT0gTlVMTCk7DQo+ IA0KPiBQbGVhc2UgdXBkYXRlIHRoZSBjb2RlYmFzZSBhcyBwZXIgdGhlc2UgdHdvICJjaGVja3Bh dGNoIiBtZXNzYWdlczoNCj4gDQo+IENIRUNLOiBBbGlnbm1lbnQgc2hvdWxkIG1hdGNoIG9wZW4g cGFyZW50aGVzaXMNCj4gIzExODogRklMRToNCj4gL2hvbWUvdWJ1bnR1L2xpbnV4L2RyaXZlcnMv dmlydC9uaXRyb19lbmNsYXZlcy9uZV9taXNjX2Rldl90ZXN0LmM6MTE4Og0KPiArCXBoeXNfY29u dGlnX21lbV9yZWdpb25zLnJlZ2lvbnMgPSBrdW5pdF9rY2FsbG9jKHRlc3QsIE1BWF9QSFlTX1JF R0lPTlMsDQo+ICsJCQkJCXNpemVvZigqcGh5c19jb250aWdfbWVtX3JlZ2lvbnMucmVnaW9ucyks IEdGUF9LRVJORUwpOw0KPiANCj4gDQo+IENIRUNLOiBDb21wYXJpc29uIHRvIE5VTEwgY291bGQg YmUgd3JpdHRlbiAicGh5c19jb250aWdfbWVtX3JlZ2lvbnMucmVnaW9ucyINCj4gIzExOTogRklM RToNCj4gL2hvbWUvdWJ1bnR1L2xpbnV4L2RyaXZlcnMvdmlydC9uaXRyb19lbmNsYXZlcy9uZV9t aXNjX2Rldl90ZXN0LmM6MTE5Og0KPiArCUtVTklUX0FTU0VSVF9UUlVFKHRlc3QsIHBoeXNfY29u dGlnX21lbV9yZWdpb25zLnJlZ2lvbnMgIT0gTlVMTCk7DQo+IA0KPiBUaGUgZmlyc3Qgb25lIGlz IHNpbWlsYXIgdG8gdGhlIGFsaWdubWVudCBjaGVjayBmcm9tIHRoZSBmaXJzdCBwYXRjaCBpbg0K PiB0aGlzIHNlcmllcy4gVGhlIHNlY29uZCBvbmUgaXMganVzdCAiS1VOSVRfQVNTRVJUX1RSVUUo dGVzdCwNCj4gcGh5c19jb250aWdfbWVtX3JlZ2lvbnMucmVnaW9ucyk7Ii4NCj4gDQoNCk9LLCB3 aWxsIGZpeCB0aGVtIChpbmNsdWRpbmcgdGhlIGZpcnN0IHBhdGNoKSBpbiB0aGUgbmV4dCB2ZXJz aW9uLCBUaGFua3MuDQoNCj4gT3RoZXIgdGhhbiB0aGF0LCBsb29rcyBnb29kIHRvIG1lLg0KPiAN Cj4gVGhhbmtzLA0KPiBBbmRyYQ0KPiANCj4gPiArDQo+ID4gKwlmb3IgKGkgPSAwOyBpIDwgQVJS QVlfU0laRShwaHlzX3JlZ2lvbnNfdGVzdF9jYXNlcyk7IGkrKykgew0KPiA+ICsJCXN0cnVjdCBu ZV9waHlzX3JlZ2lvbnNfdGVzdCAqdGVzdF9jYXNlID0gJnBoeXNfcmVnaW9uc190ZXN0X2Nhc2Vz W2ldOw0KPiA+ICsJCXVuc2lnbmVkIGxvbmcgbnVtID0gMDsNCj4gPiArDQo+ID4gKwkJcmMgPSBu ZV9tZXJnZV9waHlzX2NvbnRpZ19tZW1vcnlfcmVnaW9ucygmcGh5c19jb250aWdfbWVtX3JlZ2lv bnMsDQo+ID4gKwkJCQkJCQkgdGVzdF9jYXNlLT5wYWRkciwgdGVzdF9jYXNlLT5zaXplKTsNCj4g PiArCQlLVU5JVF9FWFBFQ1RfRVEodGVzdCwgcmMsIHRlc3RfY2FzZS0+ZXhwZWN0X3JjKTsNCj4g PiArCQlLVU5JVF9FWFBFQ1RfRVEodGVzdCwgcGh5c19jb250aWdfbWVtX3JlZ2lvbnMubnVtLA0K PiB0ZXN0X2Nhc2UtPmV4cGVjdF9udW0pOw0KPiA+ICsNCj4gPiArCQlpZiAodGVzdF9jYXNlLT5l eHBlY3RfbGFzdF9wYWRkciA9PSBJTlZBTElEX1ZBTFVFKQ0KPiA+ICsJCQljb250aW51ZTsNCj4g PiArDQo+ID4gKwkJbnVtID0gcGh5c19jb250aWdfbWVtX3JlZ2lvbnMubnVtOw0KPiA+ICsJCUtV TklUX0VYUEVDVF9FUSh0ZXN0LCBwaHlzX2NvbnRpZ19tZW1fcmVnaW9ucy5yZWdpb25zW251bSAt IDFdLnN0YXJ0LA0KPiA+ICsJCQkJdGVzdF9jYXNlLT5leHBlY3RfbGFzdF9wYWRkcik7DQo+ID4g KwkJS1VOSVRfRVhQRUNUX0VRKHRlc3QsIHJhbmdlX2xlbigmcGh5c19jb250aWdfbWVtX3JlZ2lv bnMucmVnaW9uc1tudW0NCj4gLSAxXSksDQo+ID4gKwkJCQl0ZXN0X2Nhc2UtPmV4cGVjdF9sYXN0 X3NpemUpOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCWt1bml0X2tmcmVlKHRlc3QsIHBoeXNfY29u dGlnX21lbV9yZWdpb25zLnJlZ2lvbnMpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICAgc3RhdGljIHN0 cnVjdCBrdW5pdF9jYXNlIG5lX21pc2NfZGV2X3Rlc3RfY2FzZXNbXSA9IHsNCj4gPiArCUtVTklU X0NBU0UobmVfbWlzY19kZXZfdGVzdF9tZXJnZV9waHlzX2NvbnRpZ19tZW1vcnlfcmVnaW9ucyks DQo+ID4gICAJe30NCj4gPiAgIH07DQo+ID4NCj4gPg0KPiANCj4gDQo+IA0KPiBBbWF6b24gRGV2 ZWxvcG1lbnQgQ2VudGVyIChSb21hbmlhKSBTLlIuTC4gcmVnaXN0ZXJlZCBvZmZpY2U6IDI3QSBT Zi4gTGF6YXINCj4gU3RyZWV0LCBVQkM1LCBmbG9vciAyLCBJYXNpLCBJYXNpIENvdW50eSwgNzAw MDQ1LCBSb21hbmlhLiBSZWdpc3RlcmVkIGluIFJvbWFuaWEuDQo+IFJlZ2lzdHJhdGlvbiBudW1i ZXIgSjIyLzI2MjEvMjAwNS4NCg==