Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp5391535pxb; Sun, 7 Nov 2021 11:15:21 -0800 (PST) X-Google-Smtp-Source: ABdhPJxK3QKlrRMy++hxqnrsFzTnlhlAwdioDJN+wOCmQ0PSLZ5OAd5lD8XD9l3oz0/rGnkyv5Ao X-Received: by 2002:a05:6602:3281:: with SMTP id d1mr10043537ioz.84.1636312521167; Sun, 07 Nov 2021 11:15:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1636312521; cv=none; d=google.com; s=arc-20160816; b=hpBeiry0JeWWbe5lAQP6jCmRVHaEMHoIqLwEi+ZkTcHo6ls+N4e4qTEpDT3LAho+Y5 QgsSbLLQnYiz3Gpsvo7/fHoag+EsXRASfVHlKYeQTqhW30XGdbHbKXTzJsPmYwzHTA4s Ro/ZA4NMWA+i1/KIzEHTnK52ix1D8yUYhn8qfJl/LFJUN5fhEtBMVIHTzVNqsC1o+jf1 B55D44TK5ddq1IJAKtybS/6Bq83A+37NN4atCD2OqjxG9vhRt+4suKwgP5COdhJ5hKl3 4W/m/3qf9JbWWIZ4S4vDoDxiWj5JIL1Bu2itq9PxX2KHITG734FjIvsgkCoUvKKGKcny /c+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:dkim-signature; bh=eXUFrbFjZ6TEOZwamqaTbKLXbdhHt42rmtnkMGhqjnU=; b=tCdmSr9aTcwqLDAavBJa5zI7TDIaQztTMGLEkRu9/I1BnulPXnvsvUV73G5HGY8ZoD VUJfjTToLelcUxX+wBUyRY/L+3ZFvaJMkRFKZhlIsZTMTxMGxRRcgDHXS/6gC/K+TelB 4eQEIQPwPuzpI3dF5caktuIjKfl1u+pha9kFs7pKRo1l09P5seG3+uyp4bUcfBPy2mcu afbs7j998XJzSXLamqKJlTJrl84eK383tq88MFT46jCcC7AV4OhEKCEM3iax69XbYwm0 BkS1kzGhrnzuNlN7Y1pc1Vz/Waqd49zkwwNhP8wPtfI2bG5wniJtnaVMtKDaS58D+wyI Saqw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amazon.com header.s=amazon201209 header.b=T54ycewb; 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=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amazon.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id x11si31728074iov.52.2021.11.07.11.15.07; Sun, 07 Nov 2021 11:15:21 -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; dkim=pass header.i=@amazon.com header.s=amazon201209 header.b=T54ycewb; 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=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amazon.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232511AbhKGNWr (ORCPT + 99 others); Sun, 7 Nov 2021 08:22:47 -0500 Received: from smtp-fw-6002.amazon.com ([52.95.49.90]:7553 "EHLO smtp-fw-6002.amazon.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231618AbhKGNWp (ORCPT ); Sun, 7 Nov 2021 08:22:45 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1636291203; x=1667827203; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to:content-transfer-encoding; bh=eXUFrbFjZ6TEOZwamqaTbKLXbdhHt42rmtnkMGhqjnU=; b=T54ycewbA7g+wvJg1EjspuJOmHHRkxd1wijUXLndZ5rOHab8Q5wFSfv0 xsuGQW+U+h4xqWZbJqZpYJ9ecNtKVCOq1N7V26ZYTJlpROR0K9CZ4IyHf zxd/3HKmuhJqHmV333Ivx1+2E4396fnlFgvXgaF1mfYnn2iSNkRT/CnQB k=; X-IronPort-AV: E=Sophos;i="5.87,216,1631577600"; d="scan'208";a="153301440" Received: from iad12-co-svc-p1-lb1-vlan2.amazon.com (HELO email-inbound-relay-pdx-2c-7d0c7241.us-west-2.amazon.com) ([10.43.8.2]) by smtp-border-fw-6002.iad6.amazon.com with ESMTP; 07 Nov 2021 13:19:51 +0000 Received: from EX13D16EUB003.ant.amazon.com (pdx1-ws-svc-p6-lb9-vlan2.pdx.amazon.com [10.236.137.194]) by email-inbound-relay-pdx-2c-7d0c7241.us-west-2.amazon.com (Postfix) with ESMTPS id 0E925417B3; Sun, 7 Nov 2021 13:19:50 +0000 (UTC) Received: from [192.168.0.248] (10.43.162.100) by EX13D16EUB003.ant.amazon.com (10.43.166.99) with Microsoft SMTP Server (TLS) id 15.0.1497.24; Sun, 7 Nov 2021 13:19:42 +0000 Message-ID: <30adfb11-36e1-3bc2-13f5-824ced78fcd1@amazon.com> Date: Sun, 7 Nov 2021 15:19:37 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:91.0) Gecko/20100101 Thunderbird/91.2.1 Subject: Re: [PATCH v4 4/4] nitro_enclaves: Add KUnit tests for contiguous physical memory regions merging Content-Language: en-US To: "Longpeng(Mike)" CC: , , , , , , , , , , References: <20211103140035.2001-1-longpeng2@huawei.com> <20211103140035.2001-5-longpeng2@huawei.com> From: "Paraschiv, Andra-Irina" In-Reply-To: <20211103140035.2001-5-longpeng2@huawei.com> X-Originating-IP: [10.43.162.100] X-ClientProxiedBy: EX13D37UWA004.ant.amazon.com (10.43.160.23) To EX13D16EUB003.ant.amazon.com (10.43.166.99) Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org CgpPbiAwMy8xMS8yMDIxIDE2OjAwLCBMb25ncGVuZyhNaWtlKSB3cm90ZToKPiBGcm9tOiBMb25n cGVuZyA8bG9uZ3BlbmcyQGh1YXdlaS5jb20+Cj4gCj4gQWRkIEtVbml0IHRlc3RzIGZvciB0aGUg Y29udGlndW91cyBwaHlzaWNhbCBtZW1vcnkgcmVnaW9ucyBtZXJnaW5nCj4gZnVuY3Rpb25hbGl0 eSBmcm9tIHRoZSBOaXRybyBFbmNsYXZlcyBtaXNjIGRldmljZSBsb2dpYy4KPiAKPiBXZSBjYW4g YnVpbGQgdGhlIHRlc3QgYmluYXJ5IHdpdGggdGhlIGZvbGxvd2luZyBjb25maWd1cmF0aW9uOgo+ ICAgIENPTkZJR19LVU5JVD15Cj4gICAgQ09ORklHX05JVFJPX0VOQ0xBVkVTPW0KPiAgICBDT05G SUdfTklUUk9fRU5DTEFWRVNfTUlTQ19ERVZfVEVTVD15Cj4gYW5kIGluc3RhbGwgdGhlIG5pdHJv X2VuY2xhdmVzIG1vZHVsZSB0byBydW4gdGhlIHRlc3RjYXNlcy4KPiAKPiBXZSdsbCBzZWUgdGhl IGZvbGxvd2luZyBtZXNzYWdlIHVzaW5nIGRtZXNnIGlmIGV2ZXJ5dGhpbmcgZ29lcyB3ZWxsOgo+ IAo+IFsuLi5dICAgICAjIFN1YnRlc3Q6IG5lX21pc2NfZGV2X3Rlc3QKPiBbLi4uXSAgICAgMS4u MQo+IFsuLi5dIChOVUxMIGRldmljZSAqKTogUGh5c2ljYWwgbWVtIHJlZ2lvbiBhZGRyZXNzIGlz IG5vdCAyIE1pQiBhbGlnbmVkCj4gWy4uLl0gKE5VTEwgZGV2aWNlICopOiBQaHlzaWNhbCBtZW0g cmVnaW9uIHNpemUgaXMgbm90IG11bHRpcGxlIG9mIDIgTWlCCj4gWy4uLl0gKE5VTEwgZGV2aWNl ICopOiBQaHlzaWNhbCBtZW0gcmVnaW9uIGFkZHJlc3MgaXMgbm90IDIgTWlCIGFsaWduZWQKPiBb Li4uXSAgICAgb2sgMSAtIG5lX21pc2NfZGV2X3Rlc3RfbWVyZ2VfcGh5c19jb250aWdfbWVtb3J5 X3JlZ2lvbnMKPiBbLi4uXSBvayAxIC0gbmVfbWlzY19kZXZfdGVzdAo+IAo+IFNpZ25lZC1vZmYt Ynk6IExvbmdwZW5nIDxsb25ncGVuZzJAaHVhd2VpLmNvbT4KPiAtLS0KPiBDaGFuZ2VzIHYzIC0+ IHY0Ogo+ICAgIC0gImludCBleHBlY3RfbnVtIiAtPiAidW5zaWduZWQgbG9uZyAgZXhwZWN0X251 bSIgIFtBbmRyYV0KPiAgICAtIHJlbmFtZSBzZXZlcmFsIHZhcmlhYmxlcyBhbmQgc3RydWN0dXJl cyAgW0FuZHJhXQo+ICAgIC0gaW52b2tlICJrdW5pdF9rZnJlZSIgdG8gZnJlZSB0aGUgInJlZ2lv bnMiICBbQW5kcmFdCj4gCj4gQ2hhbmdlcyB2MiAtPiB2MzoKPiAgICAtIHVwZGF0ZSB0aGUgY29t bWl0IHRpdGxlIGFuZCBjb21taXQgbWVzc2FnZS4gIFtBbmRyYV0KPiAgICAtIGFsaWduIHRoZSBm aWxlZHMgaW4gJ3N0cnVjdCBwaHlzX3JlZ2lvbnNfdGVzdCcuICBbQW5kcmFdCj4gICAgLSByZW5h bWUgJ3BoeXNfcmVnaW9uc190ZXN0Y2FzZXMnIHRvICdwaHlzX3JlZ2lvbnNfdGVzdF9jYXNlcycu ICBbQW5kcmFdCj4gICAgLSBhZGQgY29tbWVudHMgYmVmb3JlIGVhY2ggdGVzdCBjYXNlcy4gIFtB bmRyYV0KPiAgICAtIGluaXRpYWxpemUgdGhlIHZhcmlhYmxlcyBpbiBuZV9taXNjX2Rldl90ZXN0 X21lcmdlX3BoeXNfY29udGlnX21lbW9yeV9yZWdpb25zLiAgW0FuZHJhXQo+IC0tLQo+ICAgZHJp dmVycy92aXJ0L25pdHJvX2VuY2xhdmVzL25lX21pc2NfZGV2X3Rlc3QuYyB8IDEzOSArKysrKysr KysrKysrKysrKysrKysrKysrCj4gICAxIGZpbGUgY2hhbmdlZCwgMTM5IGluc2VydGlvbnMoKykK PiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy92aXJ0L25pdHJvX2VuY2xhdmVzL25lX21pc2NfZGV2 X3Rlc3QuYyBiL2RyaXZlcnMvdmlydC9uaXRyb19lbmNsYXZlcy9uZV9taXNjX2Rldl90ZXN0LmMK PiBpbmRleCA2ODYyZTk5Li40NjQ4ZWMwMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3ZpcnQvbml0 cm9fZW5jbGF2ZXMvbmVfbWlzY19kZXZfdGVzdC5jCj4gKysrIGIvZHJpdmVycy92aXJ0L25pdHJv X2VuY2xhdmVzL25lX21pc2NfZGV2X3Rlc3QuYwo+IEBAIC0yLDcgKzIsMTQ2IEBACj4gICAKPiAg ICNpbmNsdWRlIDxrdW5pdC90ZXN0Lmg+Cj4gICAKPiArI2RlZmluZSBNQVhfUEhZU19SRUdJT05T CTE2Cj4gKyNkZWZpbmUgSU5WQUxJRF9WQUxVRQkJKH4wdWxsKQo+ICsKPiArc3RydWN0IG5lX3Bo eXNfcmVnaW9uc190ZXN0IHsKPiArCXU2NCAgICAgICAgICAgcGFkZHI7Cj4gKwl1NjQgICAgICAg ICAgIHNpemU7Cj4gKwlpbnQgICAgICAgICAgIGV4cGVjdF9yYzsKPiArCXVuc2lnbmVkIGxvbmcg ZXhwZWN0X251bTsKPiArCXU2NCAgICAgICAgICAgZXhwZWN0X2xhc3RfcGFkZHI7Cj4gKwl1NjQg ICAgICAgICAgIGV4cGVjdF9sYXN0X3NpemU7Cj4gK30gcGh5c19yZWdpb25zX3Rlc3RfY2FzZXNb XSA9IHsKPiArCS8qCj4gKwkgKiBBZGQgdGhlIHJlZ2lvbiBmcm9tIDB4MTAwMCB0byAoMHgxMDAw ICsgMHgyMDAwMDAgLSAxKToKPiArCSAqICAgRXhwZWN0ZWQgcmVzdWx0Ogo+ICsJICogICAgICAg RmFpbGVkLCBzdGFydCBhZGRyZXNzIGlzIG5vdCAyTS1hbGlnbmVkCj4gKwkgKgo+ICsJICogTm93 IHRoZSBpbnN0YW5jZSBvZiBzdHJ1Y3QgbmVfcGh5c19jb250aWdfbWVtX3JlZ2lvbnMgaXM6Cj4g KwkgKiAgIG51bSA9IDAKPiArCSAqICAgcmVnaW9ucyA9IHt9Cj4gKwkgKi8KPiArCXsweDEwMDAs IDB4MjAwMDAwLCAtRUlOVkFMLCAwLCBJTlZBTElEX1ZBTFVFLCBJTlZBTElEX1ZBTFVFfSwKPiAr Cj4gKwkvKgo+ICsJICogQWRkIHRoZSByZWdpb24gZnJvbSAweDIwMDAwMCB0byAoMHgyMDAwMDAg KyAweDEwMDAgLSAxKToKPiArCSAqICAgRXhwZWN0ZWQgcmVzdWx0Ogo+ICsJICogICAgICAgRmFp bGVkLCBzaXplIGlzIG5vdCAyTS1hbGlnbmVkCj4gKwkgKgo+ICsJICogTm93IHRoZSBpbnN0YW5j ZSBvZiBzdHJ1Y3QgbmVfcGh5c19jb250aWdfbWVtX3JlZ2lvbnMgaXM6Cj4gKwkgKiAgIG51bSA9 IDAKPiArCSAqICAgcmVnaW9ucyA9IHt9Cj4gKwkgKi8KPiArCXsweDIwMDAwMCwgMHgxMDAwLCAt RUlOVkFMLCAwLCBJTlZBTElEX1ZBTFVFLCBJTlZBTElEX1ZBTFVFfSwKPiArCj4gKwkvKgo+ICsJ ICogQWRkIHRoZSByZWdpb24gZnJvbSAweDIwMDAwMCB0byAoMHgyMDAwMDAgKyAweDIwMDAwMCAt IDEpOgo+ICsJICogICBFeHBlY3RlZCByZXN1bHQ6Cj4gKwkgKiAgICAgICBTdWNjZXNzZnVsCj4g KwkgKgo+ICsJICogTm93IHRoZSBpbnN0YW5jZSBvZiBzdHJ1Y3QgbmVfcGh5c19jb250aWdfbWVt X3JlZ2lvbnMgaXM6Cj4gKwkgKiAgIG51bSA9IDEKPiArCSAqICAgcmVnaW9ucyA9IHsKPiArCSAq ICAgICAgIHtzdGFydD0weDIwMDAwMCwgZW5kPTB4M2ZmZmZmfSwgLy8gbGVuPTB4MjAwMDAwCj4g KwkgKiAgIH0KPiArCSAqLwo+ICsJezB4MjAwMDAwLCAweDIwMDAwMCwgMCwgMSwgMHgyMDAwMDAs IDB4MjAwMDAwfSwKPiArCj4gKwkvKgo+ICsJICogQWRkIHRoZSByZWdpb24gZnJvbSAweDAgdG8g KDB4MCArIDB4MjAwMDAwIC0gMSk6Cj4gKwkgKiAgIEV4cGVjdGVkIHJlc3VsdDoKPiArCSAqICAg ICAgIFN1Y2Nlc3NmdWwKPiArCSAqCj4gKwkgKiBOb3cgdGhlIGluc3RhbmNlIG9mIHN0cnVjdCBu ZV9waHlzX2NvbnRpZ19tZW1fcmVnaW9ucyBpczoKPiArCSAqICAgbnVtID0gMgo+ICsJICogICBy ZWdpb25zID0gewo+ICsJICogICAgICAge3N0YXJ0PTB4MjAwMDAwLCBlbmQ9MHgzZmZmZmZ9LCAv LyBsZW49MHgyMDAwMDAKPiArCSAqICAgICAgIHtzdGFydD0weDAsICAgICAgZW5kPTB4MWZmZmZm fSwgLy8gbGVuPTB4MjAwMDAwCj4gKwkgKiAgIH0KPiArCSAqLwo+ICsJezB4MCwgMHgyMDAwMDAs IDAsIDIsIDB4MCwgMHgyMDAwMDB9LAo+ICsKPiArCS8qCj4gKwkgKiBBZGQgdGhlIHJlZ2lvbiBm cm9tIDB4NjAwMDAwIHRvICgweDYwMDAwMCArIDB4NDAwMDAwIC0gMSk6Cj4gKwkgKiAgIEV4cGVj dGVkIHJlc3VsdDoKPiArCSAqICAgICAgIFN1Y2Nlc3NmdWwKPiArCSAqCj4gKwkgKiBOb3cgdGhl IGluc3RhbmNlIG9mIHN0cnVjdCBuZV9waHlzX2NvbnRpZ19tZW1fcmVnaW9ucyBpczoKPiArCSAq ICAgbnVtID0gMwo+ICsJICogICByZWdpb25zID0gewo+ICsJICogICAgICAge3N0YXJ0PTB4MjAw MDAwLCBlbmQ9MHgzZmZmZmZ9LCAvLyBsZW49MHgyMDAwMDAKPiArCSAqICAgICAgIHtzdGFydD0w eDAsICAgICAgZW5kPTB4MWZmZmZmfSwgLy8gbGVuPTB4MjAwMDAwCj4gKwkgKiAgICAgICB7c3Rh cnQ9MHg2MDAwMDAsIGVuZD0weDlmZmZmZn0sIC8vIGxlbj0weDQwMDAwMAo+ICsJICogICB9Cj4g KwkgKi8KPiArCXsweDYwMDAwMCwgMHg0MDAwMDAsIDAsIDMsIDB4NjAwMDAwLCAweDQwMDAwMH0s Cj4gKwo+ICsJLyoKPiArCSAqIEFkZCB0aGUgcmVnaW9uIGZyb20gMHhhMDAwMDAgdG8gKDB4YTAw MDAwICsgMHg0MDAwMDAgLSAxKToKPiArCSAqICAgRXhwZWN0ZWQgcmVzdWx0Ogo+ICsJICogICAg ICAgU3VjY2Vzc2Z1bCwgbWVyZ2luZyBjYXNlIQo+ICsJICoKPiArCSAqIE5vdyB0aGUgaW5zdGFu Y2Ugb2Ygc3RydWN0IG5lX3BoeXNfY29udGlnX21lbV9yZWdpb25zIGlzOgo+ICsJICogICBudW0g PSAzCj4gKwkgKiAgIHJlZ2lvbnMgPSB7Cj4gKwkgKiAgICAgICB7c3RhcnQ9MHgyMDAwMDAsIGVu ZD0weDNmZmZmZn0sIC8vIGxlbj0weDIwMDAwMAo+ICsJICogICAgICAge3N0YXJ0PTB4MCwgICAg ICBlbmQ9MHgxZmZmZmZ9LCAvLyBsZW49MHgyMDAwMDAKPiArCSAqICAgICAgIHtzdGFydD0weDYw MDAwMCwgZW5kPTB4ZGZmZmZmfSwgLy8gbGVuPTB4ODAwMDAwCj4gKwkgKiAgIH0KPiArCSAqLwo+ ICsJezB4YTAwMDAwLCAweDQwMDAwMCwgMCwgMywgMHg2MDAwMDAsIDB4ODAwMDAwfSwKPiArCj4g KwkvKgo+ICsJICogQWRkIHRoZSByZWdpb24gZnJvbSAweDEwMDAgdG8gKDB4MTAwMCArIDB4MjAw MDAwIC0gMSk6Cj4gKwkgKiAgIEV4cGVjdGVkIHJlc3VsdDoKPiArCSAqICAgICAgIEZhaWxlZCwg c3RhcnQgYWRkcmVzcyBpcyBub3QgMk0tYWxpZ25lZAo+ICsJICoKPiArCSAqIE5vdyB0aGUgaW5z dGFuY2Ugb2Ygc3RydWN0IG5lX3BoeXNfY29udGlnX21lbV9yZWdpb25zIGlzOgo+ICsJICogICBu dW0gPSAzCj4gKwkgKiAgIHJlZ2lvbnMgPSB7Cj4gKwkgKiAgICAgICB7c3RhcnQ9MHgyMDAwMDAs IGVuZD0weDNmZmZmZn0sIC8vIGxlbj0weDIwMDAwMAo+ICsJICogICAgICAge3N0YXJ0PTB4MCwg ICAgICBlbmQ9MHgxZmZmZmZ9LCAvLyBsZW49MHgyMDAwMDAKPiArCSAqICAgICAgIHtzdGFydD0w eDYwMDAwMCwgZW5kPTB4ZGZmZmZmfSwgLy8gbGVuPTB4ODAwMDAwCj4gKwkgKiAgIH0KPiArCSAq Lwo+ICsJezB4MTAwMCwgMHgyMDAwMDAsIC1FSU5WQUwsIDMsIDB4NjAwMDAwLCAweDgwMDAwMH0s Cj4gK307Cj4gKwo+ICtzdGF0aWMgdm9pZCBuZV9taXNjX2Rldl90ZXN0X21lcmdlX3BoeXNfY29u dGlnX21lbW9yeV9yZWdpb25zKHN0cnVjdCBrdW5pdCAqdGVzdCkKPiArewo+ICsJc3RydWN0IG5l X3BoeXNfY29udGlnX21lbV9yZWdpb25zIHBoeXNfY29udGlnX21lbV9yZWdpb25zID0ge307Cj4g KwlpbnQgcmMgPSAwOwo+ICsJaW50IGkgPSAwOwo+ICsKPiArCXBoeXNfY29udGlnX21lbV9yZWdp b25zLnJlZ2lvbnMgPSBrdW5pdF9rY2FsbG9jKHRlc3QsIE1BWF9QSFlTX1JFR0lPTlMsCj4gKwkJ CQkJc2l6ZW9mKCpwaHlzX2NvbnRpZ19tZW1fcmVnaW9ucy5yZWdpb25zKSwgR0ZQX0tFUk5FTCk7 Cj4gKwlLVU5JVF9BU1NFUlRfVFJVRSh0ZXN0LCBwaHlzX2NvbnRpZ19tZW1fcmVnaW9ucy5yZWdp b25zICE9IE5VTEwpOwoKUGxlYXNlIHVwZGF0ZSB0aGUgY29kZWJhc2UgYXMgcGVyIHRoZXNlIHR3 byAiY2hlY2twYXRjaCIgbWVzc2FnZXM6CgpDSEVDSzogQWxpZ25tZW50IHNob3VsZCBtYXRjaCBv cGVuIHBhcmVudGhlc2lzCiMxMTg6IEZJTEU6IAovaG9tZS91YnVudHUvbGludXgvZHJpdmVycy92 aXJ0L25pdHJvX2VuY2xhdmVzL25lX21pc2NfZGV2X3Rlc3QuYzoxMTg6CisJcGh5c19jb250aWdf bWVtX3JlZ2lvbnMucmVnaW9ucyA9IGt1bml0X2tjYWxsb2ModGVzdCwgTUFYX1BIWVNfUkVHSU9O UywKKwkJCQkJc2l6ZW9mKCpwaHlzX2NvbnRpZ19tZW1fcmVnaW9ucy5yZWdpb25zKSwgR0ZQX0tF Uk5FTCk7CgoKQ0hFQ0s6IENvbXBhcmlzb24gdG8gTlVMTCBjb3VsZCBiZSB3cml0dGVuICJwaHlz X2NvbnRpZ19tZW1fcmVnaW9ucy5yZWdpb25zIgojMTE5OiBGSUxFOiAKL2hvbWUvdWJ1bnR1L2xp bnV4L2RyaXZlcnMvdmlydC9uaXRyb19lbmNsYXZlcy9uZV9taXNjX2Rldl90ZXN0LmM6MTE5Ogor CUtVTklUX0FTU0VSVF9UUlVFKHRlc3QsIHBoeXNfY29udGlnX21lbV9yZWdpb25zLnJlZ2lvbnMg IT0gTlVMTCk7CgpUaGUgZmlyc3Qgb25lIGlzIHNpbWlsYXIgdG8gdGhlIGFsaWdubWVudCBjaGVj ayBmcm9tIHRoZSBmaXJzdCBwYXRjaCBpbiAKdGhpcyBzZXJpZXMuIFRoZSBzZWNvbmQgb25lIGlz IGp1c3QgIktVTklUX0FTU0VSVF9UUlVFKHRlc3QsIApwaHlzX2NvbnRpZ19tZW1fcmVnaW9ucy5y ZWdpb25zKTsiLgoKT3RoZXIgdGhhbiB0aGF0LCBsb29rcyBnb29kIHRvIG1lLgoKVGhhbmtzLApB bmRyYQoKPiArCj4gKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShwaHlzX3JlZ2lvbnNfdGVz dF9jYXNlcyk7IGkrKykgewo+ICsJCXN0cnVjdCBuZV9waHlzX3JlZ2lvbnNfdGVzdCAqdGVzdF9j YXNlID0gJnBoeXNfcmVnaW9uc190ZXN0X2Nhc2VzW2ldOwo+ICsJCXVuc2lnbmVkIGxvbmcgbnVt ID0gMDsKPiArCj4gKwkJcmMgPSBuZV9tZXJnZV9waHlzX2NvbnRpZ19tZW1vcnlfcmVnaW9ucygm cGh5c19jb250aWdfbWVtX3JlZ2lvbnMsCj4gKwkJCQkJCQkgdGVzdF9jYXNlLT5wYWRkciwgdGVz dF9jYXNlLT5zaXplKTsKPiArCQlLVU5JVF9FWFBFQ1RfRVEodGVzdCwgcmMsIHRlc3RfY2FzZS0+ ZXhwZWN0X3JjKTsKPiArCQlLVU5JVF9FWFBFQ1RfRVEodGVzdCwgcGh5c19jb250aWdfbWVtX3Jl Z2lvbnMubnVtLCB0ZXN0X2Nhc2UtPmV4cGVjdF9udW0pOwo+ICsKPiArCQlpZiAodGVzdF9jYXNl LT5leHBlY3RfbGFzdF9wYWRkciA9PSBJTlZBTElEX1ZBTFVFKQo+ICsJCQljb250aW51ZTsKPiAr Cj4gKwkJbnVtID0gcGh5c19jb250aWdfbWVtX3JlZ2lvbnMubnVtOwo+ICsJCUtVTklUX0VYUEVD VF9FUSh0ZXN0LCBwaHlzX2NvbnRpZ19tZW1fcmVnaW9ucy5yZWdpb25zW251bSAtIDFdLnN0YXJ0 LAo+ICsJCQkJdGVzdF9jYXNlLT5leHBlY3RfbGFzdF9wYWRkcik7Cj4gKwkJS1VOSVRfRVhQRUNU X0VRKHRlc3QsIHJhbmdlX2xlbigmcGh5c19jb250aWdfbWVtX3JlZ2lvbnMucmVnaW9uc1tudW0g LSAxXSksCj4gKwkJCQl0ZXN0X2Nhc2UtPmV4cGVjdF9sYXN0X3NpemUpOwo+ICsJfQo+ICsKPiAr CWt1bml0X2tmcmVlKHRlc3QsIHBoeXNfY29udGlnX21lbV9yZWdpb25zLnJlZ2lvbnMpOwo+ICt9 Cj4gKwo+ICAgc3RhdGljIHN0cnVjdCBrdW5pdF9jYXNlIG5lX21pc2NfZGV2X3Rlc3RfY2FzZXNb XSA9IHsKPiArCUtVTklUX0NBU0UobmVfbWlzY19kZXZfdGVzdF9tZXJnZV9waHlzX2NvbnRpZ19t ZW1vcnlfcmVnaW9ucyksCj4gICAJe30KPiAgIH07Cj4gICAKPiAKCgoKQW1hem9uIERldmVsb3Bt ZW50IENlbnRlciAoUm9tYW5pYSkgUy5SLkwuIHJlZ2lzdGVyZWQgb2ZmaWNlOiAyN0EgU2YuIExh emFyIFN0cmVldCwgVUJDNSwgZmxvb3IgMiwgSWFzaSwgSWFzaSBDb3VudHksIDcwMDA0NSwgUm9t YW5pYS4gUmVnaXN0ZXJlZCBpbiBSb21hbmlhLiBSZWdpc3RyYXRpb24gbnVtYmVyIEoyMi8yNjIx LzIwMDUuCg==