Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp5319731iog; Wed, 22 Jun 2022 17:22:38 -0700 (PDT) X-Google-Smtp-Source: AGRyM1tzttC40q9+6wq1SPV3LOyROgCpOEJnB/KQ9XZkEDjQYlDMtXENfiVBquZEniW7UBrWt7o2 X-Received: by 2002:a17:906:519b:b0:722:e857:1a90 with SMTP id y27-20020a170906519b00b00722e8571a90mr5679863ejk.212.1655943757917; Wed, 22 Jun 2022 17:22:37 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1655943757; cv=pass; d=google.com; s=arc-20160816; b=xbSko2oOM7wW0E/hpsKmseOM34qSSAKMNCgppvyomkqKUSwTUqv1Cye+MDoxjRzmL4 Q8KgNDx81851HSB0EkTbmcCOsLbXVN2L9uAEZqJHo1e5XrQIiF7mvr+za2JYTgzM5e/M S22uR44WRfVd3r1oQC4k/cDP12vjG1P+nUo0tU+BQGUDyJCF+KS3FCHTgcncIL1GHZsI Ej+pclLJAfwre7T03L5CbguobOnvaQ0atyqG0IQuVzZDWH0lUMXF7G0HqKTI+jyMbGoB zJEPWbf3JIXRRJsKNrSJUXLJn1i3wCF3tOAM9UHK7eMPhWBUXWj/94DbwgHu8P3cZY4i wysg== ARC-Message-Signature: i=2; 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:dkim-signature; bh=UIUnsrf6BMKyYvRAGyE6m8gIKTkgW2aohrKw6SnXABY=; b=v5f58+Q7nkR676zJR+hBmKK6nNosDwH51cLKHsiDZf4QySCtN0a4+tQyBkFi7AGG1F 2uUvVCra7rrRXmMEzeqUz9c9vDpcRLKV2h584V5l5otx7maqojgA3RDNdEuR4YK64gHo vFj1qwMMMXJDvNSd75lj/hSEnFivzBZDlOKY79uZpbbPlQ2Foh78jK6rSC1eDgPWfibI C7Dy3g5v2hSXj48d6nFNNoKk0g/nQklrIxK02YrvTtTwcDDXdTTVlQqb09+4z14tkU3U uoJWCjhdtVxfUtrrOQ2rPdqvybZaQ6I019Yu0OaUQiUSW06QIlyLVCjQecqEHDFlII6K bmng== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@Nvidia.com header.s=selector2 header.b=Bws9+wYh; arc=pass (i=1 spf=pass spfdomain=nvidia.com dkim=pass dkdomain=nvidia.com dmarc=pass fromdomain=nvidia.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=nvidia.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id jg20-20020a170907971400b006fcad948d58si3948868ejc.822.2022.06.22.17.22.12; Wed, 22 Jun 2022 17:22:37 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@Nvidia.com header.s=selector2 header.b=Bws9+wYh; arc=pass (i=1 spf=pass spfdomain=nvidia.com dkim=pass dkdomain=nvidia.com dmarc=pass fromdomain=nvidia.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=nvidia.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241681AbiFVXak (ORCPT + 99 others); Wed, 22 Jun 2022 19:30:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43742 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1377263AbiFVXaY (ORCPT ); Wed, 22 Jun 2022 19:30:24 -0400 Received: from NAM02-DM3-obe.outbound.protection.outlook.com (mail-dm3nam02on2054.outbound.protection.outlook.com [40.107.95.54]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D8E86424BC; Wed, 22 Jun 2022 16:30:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RGpq6merEDC4OUPgXOyzAiQav37BeYf+NpVaZPAon985sYeLgS6ay3UsGlE1bdO1gu2UujSY1qJDcCXDZw8i71xiG2STPwy9Jq/cubYp654k0/YiXSTH492mcwZVCM3BijCT2Oo4xBUQilNX0EKZUQNW69GIrN5Kn+i496yliEUR2JAtlHQ2xhL+dfPfZkK5rcB0L0TJMW3I6zLa4RsGCAkI9hJBJc3460FOq/L4E8bQVQGZf92j1VNl5WFDYzw4tRqHk3SEe27GLCHnF72F6hxPQQLv6/TnCynxj+ZusK2fYSSrE+9PSC1PPK1ZxpXcBmGCOOwuKmUNIJt2qD9S+w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=UIUnsrf6BMKyYvRAGyE6m8gIKTkgW2aohrKw6SnXABY=; b=cGeC4p5y/k/qy6TCzfcyREKbiOdBfivIpOrtYAotjB3pwSbgT1qqhRuPwwK1VguALDHsvK/zaB1dcBxK86Ge0dSb0UJf9GfnhlJiZx7MeM4dVMXVXQvkTGy93aLnuIy+1M/tC4J82LtXvEjXM23FYspWLMRaIRyXMctq3CK36SGkXgGpVvFWWNNljNcwYNm0Rja7sOY/klDWrN1LY8J8z015sdKhPLcaxDjBjHj0JoVyZbAKsBS8wd/6y4lUZNqKG01v4Fm6+BHPecZIFpaBUSy5ZZ6UyqFrDyYydEylaK1o9drgGshAFE5UxAcYr2DloYwphXexonMdE6Utsifi0w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UIUnsrf6BMKyYvRAGyE6m8gIKTkgW2aohrKw6SnXABY=; b=Bws9+wYhid+DLeaMo5iJM1hP6Nn6+8UGV0n6EqpqwsnqgVMQqDAnDcGS+B8ljuPtcAo57gC/WKpkWgzyCTf74Yjz13/MNl1Qxlj1yUA58LwBtqKJZBZhlMHgXX9Lb8iUl/YEoHpodKiHOGI6Pewvquruinpj1TNHvjB/dLR6obbI5psPNJOquFrqxXAcfbbW7jQ6Ecxs0cXNmg3WQy29JdLk61gsgSliI4hK7xegWqk6Q5iQ/MyJrJK80Ah7tM0c5lj6wJ2m7zVJySn3vrKfnYowR4zDBz97y3VhnUEFHhB1VWrKs8/29Qe0wGkN9mEKoflFZKBRj5XaWMiBBhxLDw== Received: from DM6PR12MB3500.namprd12.prod.outlook.com (2603:10b6:5:11d::16) by MN0PR12MB6296.namprd12.prod.outlook.com (2603:10b6:208:3d3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5353.22; Wed, 22 Jun 2022 23:30:21 +0000 Received: from DM6PR12MB3500.namprd12.prod.outlook.com ([fe80::11ba:815b:5900:2f3f]) by DM6PR12MB3500.namprd12.prod.outlook.com ([fe80::11ba:815b:5900:2f3f%5]) with mapi id 15.20.5353.022; Wed, 22 Jun 2022 23:30:21 +0000 From: Kechen Lu To: "Huang, Shaoqin" , "kvm@vger.kernel.org" , "pbonzini@redhat.com" CC: "seanjc@google.com" , "chao.gao@intel.com" , "vkuznets@redhat.com" , Somdutta Roy , "linux-kernel@vger.kernel.org" Subject: RE: [RFC PATCH v4 7/7] KVM: selftests: Add tests for VM and vCPU cap KVM_CAP_X86_DISABLE_EXITS Thread-Topic: [RFC PATCH v4 7/7] KVM: selftests: Add tests for VM and vCPU cap KVM_CAP_X86_DISABLE_EXITS Thread-Index: AQHYhdK5vs/AEkfyIU6OJlo22PCKTa1a+1gAgAEXn6A= Date: Wed, 22 Jun 2022 23:30:21 +0000 Message-ID: References: <20220622004924.155191-1-kechenl@nvidia.com> <20220622004924.155191-8-kechenl@nvidia.com> <025806b0-7f62-6ae4-241b-7c084739b01c@intel.com> In-Reply-To: <025806b0-7f62-6ae4-241b-7c084739b01c@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 00924eb0-3820-4af4-d1f9-08da54a72cb0 x-ms-traffictypediagnostic: MN0PR12MB6296:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: /XkVsz1rfqVEOwboR6MIksozdI94+S2fcghM4K/stqs1qBDf3Ltp/MwCisNpJ4u/kE8u898lkpL2X8UUq9LpncAUyr67goV62L2jCSo57vwcXAuihLDpSofQDxa7ho4k6cGUzA15tUhHxNGcW8XRSoyKW90Hkbgi6lGI/0lPUp5NGvNr0FEZHU5vVtf7CX6+JcAvKUSm1HRbVJpCxWfoePDHa7m+yx1wjxR7fJUcYy/Dc5JQFneli1hCO1EwLmu8m/0Zxqd2FzFbVTYMX4c4SFiC3GJAKNaJOhpJ9OGtwXrBPY7w+G1dBI2bNAbegWDLgvZMOAoABwHAJT47+ugScYj7OjWVvTF5TaD7WrzBB2/YH+K3ISzgGFK//kOVcJLl5OMFpYOoa8yBa2ag7Tjhf6PalA4qZZEZ41YAqQlMdHnY5zwFNby7F2h9pvjnCIkPi1ggRNUd3Hq+qdh9uZfa5EOuLkXt35G8s3St6h1SA/7QOwQuL7h8QdifT5/BvOgFqsBk8jJ85D/vVM29NaK2gAezF+wG/TPRH5o8TdiQJ4Q8fXfbpqnpVFdBC8wq27oygtu98AxeXyCIk451m8HtxmEyNokW+h3gvcm6ZRJMFhGDTgVvYPtcLBwG5woOhmSF5/ynvzB46xpCgQSd+cgbbOSVkByJhzzi4EQvGN9WXwfghw2LgiatFpXSr5ShXOPSsrEt6E0220jvCAF21PPH6ldDaEcyBs88J0kNHjk3GlnPC0GHtfMTBJfMPRnXpRlNWMw/Zvew/MoBL0yT6pjcBA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR12MB3500.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(4636009)(396003)(376002)(366004)(346002)(39860400002)(136003)(86362001)(54906003)(8676002)(2906002)(8936002)(66946007)(38070700005)(71200400001)(41300700001)(110136005)(52536014)(9686003)(55016003)(478600001)(66446008)(64756008)(83380400001)(66556008)(38100700002)(5660300002)(6506007)(186003)(53546011)(316002)(33656002)(26005)(7696005)(122000001)(76116006)(66476007)(4326008);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bmkvZkEwaUNVK1NaZTlQZzUzU3FScTJ0R1R2M2hyY0dQcDEzaGI0TzhpaUJ4?= =?utf-8?B?Y2htcUw3NVZPa3dpTFMyY1NWY2pFNTZscWUyY0FPTlE5ZWtjN2FDcjNEVDZy?= =?utf-8?B?OVdXdGJKQ3N4eW5NUXkwWDZlc3pVRTVHeWEzTGJtVlk0Y1pZd1hGeFUyT0ZS?= =?utf-8?B?SDVLcnVnOUdpSXRzd2lJNUl1R2VSOGdYY2RSTkcydFRXTm8vTmZOUi90TXRM?= =?utf-8?B?UEtGUVBFWFR6aVdtRjF6S0ZBVUJQZHhKSDZjUHlhWVJNOW5La0gyUW5DcUFj?= =?utf-8?B?WG5MOVNzZVdtR1BxdnJBSnhFa05PeW9BUVNKZFBxMnBhWUpQYkQ2OGVpb01y?= =?utf-8?B?UmZjdG5EQ0UwNGg1NS80VFNtdlNiMmEwU2hTRzQ2VjBMRnEyMTFuMUJWRzhs?= =?utf-8?B?SzVvc3dVMUh0ejY0SXh6YXJLVHZ5MHpQNUxDaXZQZDkweDBiakJHZmNpL3hR?= =?utf-8?B?aHVuV3NsY2owMmFwR3BFYW9neGFhNGVVZ2wrYVVMbUd5eHVCeUliV041NmVF?= =?utf-8?B?dFNLNHUySHlJZC9UQ0pSelhDT2lPNk04MldZTHpld05vQjRaVjR6L0pHUHA1?= =?utf-8?B?YlR2VnNGVGVxVFdobnl2YzdiNDVSeVpGZVJwTHJXRVJJSDk0aUNOZmU4ek1C?= =?utf-8?B?eVhRakJqcVJpTXdpTmtiM2lZTDV3YmlrV2VwdWVWUTBqVUtyWnh6S1JLaytV?= =?utf-8?B?N0lIZDlWLzV5aWkrUG1TOFBhWXJsYkdYWFh3MFR4MjJOWFV1ZThzcmFuSUNz?= =?utf-8?B?L0psZ1YvNm5hdUE4OXNYVXdwSXFpVFZlaXo3Mi9lSG1FZVRxNWt4N0hxYnVj?= =?utf-8?B?bVIvM3ZyTzhHalVRdlF6NlZnYkR6U1c3YWNJVU1nZ00xMWxQbVAxV1daemUy?= =?utf-8?B?bExNMzczbXlXSUdTZHVLT28vRGROdExjR2xrVzU1aFJNV3F3UGphN3FqdWlX?= =?utf-8?B?aHhDdmZLMWVVamVDVnNmYWRzUFpGNjY1QXZNRU1UVEFiUHFsSXRmYTl0cWJN?= =?utf-8?B?MjlSN3g1VXNNUTBoeXNhZVI0V1kwbUt6Vm8vSzlxMmVOWGVnZXBiQUQrTXZS?= =?utf-8?B?WDZ1djk4MVF1bFI4QnR2TFBKK0VSSkpSVXRFM3YyZ2RFN2pBV0JZMllIOWsx?= =?utf-8?B?aXM0ckFYSlBWTWJvTGw3YWJGMVdmdUMyZHAxYTIwWEMxOTZ3Y3BBTUJZd0NQ?= =?utf-8?B?aysvYXBuTHdFQ3FQaXplbkxyVC8xRGZKaTZ2MUFTWXZKNDY5dlVaZDZ6bGdM?= =?utf-8?B?eDBUL0pBaVRucThocWxpWHgwMldTNWVzRkxDa0p1YWI3UkNZK3VxSEE5amg3?= =?utf-8?B?VFJPVmpjanhlbzdLTnArQ050ZytYdEhmYm1yblJnano0WmhRWkhTL2M4MlA4?= =?utf-8?B?MVlFaWgrU0VWSUY3YzlvVnVOeC9zZlF5amM0SCthQTYwNXFFYjFvRG5NdkFY?= =?utf-8?B?SFRhMXduUjJyN0ZoVnlIU3IvYlprdHNPVUhrckplN2pCWkRqUzVDS3I2cTZv?= =?utf-8?B?cnJVU255eVlYVVE4K21MWlVZVHpqbzNZR0YvS2xUTlF1VENoLzlBMlhjd25y?= =?utf-8?B?OTNMWFFTb3EwSGRXMDh4NkZLaFVLckVmQWovbnFrRE9sYVFJTVh3ajlkb2xD?= =?utf-8?B?SVUrazBQSHFsMnFRR2F0QndRWDRpbEhrdFowaVIrVUtkUWhEN0JSY2Ird05R?= =?utf-8?B?VVZtelQvU0FxYVFzdktZbzZzc1VsNytKd2laVHQrWkh0ZC9oaVBoRG1DNGp4?= =?utf-8?B?aWgvN1RVSEVXMTJSWi9wd3VEdStRT3R5WXpQaFNmOVFtNGtzdUhKS2NrL25X?= =?utf-8?B?aC9FcytCb3ZZMWJ5c2JkajkzOXJuMExDYndTTktRVElvckhIL2ZxU05wTUpB?= =?utf-8?B?SDhuSHByR1pMaWFOWU1pS3IwTW0vOFI3SSszQVp5TVNHbVBLTWRaaGJNTjc1?= =?utf-8?B?Y3habDA4Q2thcUhXK1NSeFI4aGR0L2JncXRvZ0M3VkM5YnpJR1JmZGhoWlN6?= =?utf-8?B?bGMydTBJVXJLU0dKSmVkSGttZDkrbk5xTzZ5RitpRkttM2hRSFl5Smg3Ulhx?= =?utf-8?B?OTI4cTMrajNmVVU1dVgwMkxBaUkvZ2tuRDhNSmJpL2RaeVhNYkxpQjRPL2hn?= =?utf-8?Q?B28fZagOMX2Cq+mzDXUF9GCAb?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB3500.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 00924eb0-3820-4af4-d1f9-08da54a72cb0 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Jun 2022 23:30:21.2247 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: PjK9vxKgwDMDS/kE0kTydibtWt7pcmGabCtFMc5c1plhGwp7cpKpShu6FpyvJHv4NJ3/b/lxgC67fA7VYh5KfA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6296 X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSHVhbmcsIFNoYW9xaW4g PHNoYW9xaW4uaHVhbmdAaW50ZWwuY29tPg0KPiBTZW50OiBUdWVzZGF5LCBKdW5lIDIxLCAyMDIy IDExOjQ0IFBNDQo+IFRvOiBLZWNoZW4gTHUgPGtlY2hlbmxAbnZpZGlhLmNvbT47IGt2bUB2Z2Vy Lmtlcm5lbC5vcmc7DQo+IHBib256aW5pQHJlZGhhdC5jb20NCj4gQ2M6IHNlYW5qY0Bnb29nbGUu Y29tOyBjaGFvLmdhb0BpbnRlbC5jb207IHZrdXpuZXRzQHJlZGhhdC5jb207DQo+IFNvbWR1dHRh IFJveSA8c29tZHV0dGFyQG52aWRpYS5jb20+OyBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3Jn DQo+IFN1YmplY3Q6IFJlOiBbUkZDIFBBVENIIHY0IDcvN10gS1ZNOiBzZWxmdGVzdHM6IEFkZCB0 ZXN0cyBmb3IgVk0gYW5kIHZDUFUNCj4gY2FwIEtWTV9DQVBfWDg2X0RJU0FCTEVfRVhJVFMNCj4g DQo+IEV4dGVybmFsIGVtYWlsOiBVc2UgY2F1dGlvbiBvcGVuaW5nIGxpbmtzIG9yIGF0dGFjaG1l bnRzDQo+IA0KPiANCj4gT24gNi8yMi8yMDIyIDg6NDkgQU0sIEtlY2hlbiBMdSB3cm90ZToNCj4g PiBBZGQgdGVzdHMgZm9yIEtWTSBjYXAgS1ZNX0NBUF9YODZfRElTQUJMRV9FWElUUyBvdmVycmlk aW5nIGZsYWdzIGluDQo+IFZNDQo+ID4gYW5kIHZDUFUgc2NvcGUgYm90aCB3b3JrcyBhcyBleHBl Y3RlZC4NCj4gPg0KPiA+IFN1Z2dlc3RlZC1ieTogQ2hhbyBHYW8gPGNoYW8uZ2FvQGludGVsLmNv bT4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBLZWNoZW4gTHUgPGtlY2hlbmxAbnZpZGlhLmNvbT4NCj4g PiAtLS0NCj4gPiAgIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS8uZ2l0aWdub3JlICAgICAg ICB8ICAgMSArDQo+ID4gICB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vTWFrZWZpbGUgICAg ICAgICAgfCAgIDEgKw0KPiA+ICAgLi4uL3NlbGZ0ZXN0cy9rdm0vaW5jbHVkZS94ODZfNjQvc3Zt X3V0aWwuaCAgIHwgICAxICsNCj4gPiAgIC4uLi9zZWxmdGVzdHMva3ZtL3g4Nl82NC9kaXNhYmxl X2V4aXRzX3Rlc3QuYyB8IDE0NSArKysrKysrKysrKysrKysrKysNCj4gPiAgIDQgZmlsZXMgY2hh bmdlZCwgMTQ4IGluc2VydGlvbnMoKykNCj4gPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+IHRv b2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94ODZfNjQvZGlzYWJsZV9leGl0c190ZXN0LmMNCj4g Pg0KPiA+IGRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vLmdpdGlnbm9y ZQ0KPiA+IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtLy5naXRpZ25vcmUNCj4gPiBpbmRl eCA0NTA5YTNhN2VlYWUuLjJiNTAxNzBkYjliMiAxMDA2NDQNCj4gPiAtLS0gYS90b29scy90ZXN0 aW5nL3NlbGZ0ZXN0cy9rdm0vLmdpdGlnbm9yZQ0KPiA+ICsrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2Vs ZnRlc3RzL2t2bS8uZ2l0aWdub3JlDQo+ID4gQEAgLTE1LDYgKzE1LDcgQEANCj4gPiAgIC94ODZf NjQvY3B1aWRfdGVzdA0KPiA+ICAgL3g4Nl82NC9jcjRfY3B1aWRfc3luY190ZXN0DQo+ID4gICAv eDg2XzY0L2RlYnVnX3JlZ3MNCj4gPiArL3g4Nl82NC9kaXNhYmxlX2V4aXRzX3Rlc3QNCj4gPiAg IC94ODZfNjQvZXZtY3NfdGVzdA0KPiA+ICAgL3g4Nl82NC9lbXVsYXRvcl9lcnJvcl90ZXN0DQo+ ID4gICAveDg2XzY0L2ZpeF9oeXBlcmNhbGxfdGVzdA0KPiA+IGRpZmYgLS1naXQgYS90b29scy90 ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vTWFrZWZpbGUNCj4gPiBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRl c3RzL2t2bS9NYWtlZmlsZQ0KPiA+IGluZGV4IDIyNDIzYzg3MWVkNi4uZGUxMWQxZjk1NzAwIDEw MDY0NA0KPiA+IC0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9NYWtlZmlsZQ0KPiA+ ICsrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9NYWtlZmlsZQ0KPiA+IEBAIC0xMTUs NiArMTE1LDcgQEAgVEVTVF9HRU5fUFJPR1NfeDg2XzY0ICs9DQo+IHg4Nl82NC94ZW5fc2hpbmZv X3Rlc3QNCj4gPiAgIFRFU1RfR0VOX1BST0dTX3g4Nl82NCArPSB4ODZfNjQveGVuX3ZtY2FsbF90 ZXN0DQo+ID4gICBURVNUX0dFTl9QUk9HU194ODZfNjQgKz0geDg2XzY0L3Nldl9taWdyYXRlX3Rl c3RzDQo+ID4gICBURVNUX0dFTl9QUk9HU194ODZfNjQgKz0geDg2XzY0L2FteF90ZXN0DQo+ID4g K1RFU1RfR0VOX1BST0dTX3g4Nl82NCArPSB4ODZfNjQvZGlzYWJsZV9leGl0c190ZXN0DQo+ID4g ICBURVNUX0dFTl9QUk9HU194ODZfNjQgKz0gYWNjZXNzX3RyYWNraW5nX3BlcmZfdGVzdA0KPiA+ ICAgVEVTVF9HRU5fUFJPR1NfeDg2XzY0ICs9IGRlbWFuZF9wYWdpbmdfdGVzdA0KPiA+ICAgVEVT VF9HRU5fUFJPR1NfeDg2XzY0ICs9IGRpcnR5X2xvZ190ZXN0IGRpZmYgLS1naXQNCj4gPiBhL3Rv b2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9pbmNsdWRlL3g4Nl82NC9zdm1fdXRpbC5oDQo+ID4g Yi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vaW5jbHVkZS94ODZfNjQvc3ZtX3V0aWwuaA0K PiA+IGluZGV4IGEyNWFhYmQ4ZjVlNy4uZDhjYWQxY2ZmNTc4IDEwMDY0NA0KPiA+IC0tLSBhL3Rv b2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9pbmNsdWRlL3g4Nl82NC9zdm1fdXRpbC5oDQo+ID4g KysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2luY2x1ZGUveDg2XzY0L3N2bV91dGls LmgNCj4gPiBAQCAtMTcsNiArMTcsNyBAQA0KPiA+ICAgI2RlZmluZSBDUFVJRF9TVk0gICAgICAg ICAgIEJJVF9VTEwoQ1BVSURfU1ZNX0JJVCkNCj4gPg0KPiA+ICAgI2RlZmluZSBTVk1fRVhJVF9N U1IgICAgICAgICAgICAgICAgMHgwN2MNCj4gPiArI2RlZmluZSBTVk1fRVhJVF9ITFQgICAgICAg ICAweDA3OA0KPiANCj4gVGhlcmUgaGFzIG90aGVyIHBlb3BsZSBhZGQgdGhlIFNWTV9FWElUX0hM VCBpbiB0aGUga3ZtL3F1ZXVlLCBzbyB5b3UNCj4gbWF5IG5vdCBuZWVkIHRvIGFkZCBpdCBoZXJl Lg0KPiANCg0KQWNrLiBUaGFua3MhDQoNCj4gPiAgICNkZWZpbmUgU1ZNX0VYSVRfVk1NQ0FMTCAg ICAweDA4MQ0KPiA+DQo+ID4gICBzdHJ1Y3Qgc3ZtX3Rlc3RfZGF0YSB7DQo+ID4gZGlmZiAtLWdp dCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94ODZfNjQvZGlzYWJsZV9leGl0c190ZXN0 LmMNCj4gPiBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94ODZfNjQvZGlzYWJsZV9leGl0 c190ZXN0LmMNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAwMDAw MC4uMjgxMWIwN2U4ODg1DQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL3Rvb2xzL3Rlc3Rp bmcvc2VsZnRlc3RzL2t2bS94ODZfNjQvZGlzYWJsZV9leGl0c190ZXN0LmMNCj4gPiBAQCAtMCww ICsxLDE0NSBAQA0KPiA+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5 DQo+ID4gKy8qDQo+ID4gKyAqIFRlc3QgcGVyLVZNIGFuZCBwZXItdkNQVSBkaXNhYmxlIGV4aXRz IGNhcA0KPiA+ICsgKg0KPiA+ICsgKi8NCj4gPiArDQo+ID4gKyNkZWZpbmUgX0dOVV9TT1VSQ0Ug LyogZm9yIHByb2dyYW1faW52b2NhdGlvbl9zaG9ydF9uYW1lICovDQo+ICNpbmNsdWRlDQo+ID4g KzxzeXMvaW9jdGwuaD4NCj4gPiArDQo+ID4gKyNpbmNsdWRlICJ0ZXN0X3V0aWwuaCINCj4gPiAr I2luY2x1ZGUgImt2bV91dGlsLmgiDQo+ID4gKyNpbmNsdWRlICJzdm1fdXRpbC5oIg0KPiA+ICsj aW5jbHVkZSAidm14LmgiDQo+ID4gKyNpbmNsdWRlICJwcm9jZXNzb3IuaCINCj4gPiArDQo+ID4g KyNkZWZpbmUgVkNQVV9JRF8xIDANCj4gPiArI2RlZmluZSBWQ1BVX0lEXzIgMQ0KPiA+ICsNCj4g PiArc3RhdGljIHZvaWQgZ3Vlc3RfY29kZV9leGl0cyh2b2lkKSB7DQo+ID4gKyAgICAgYXNtIHZv bGF0aWxlKCJzdGk7IGhsdDsgY2xpIik7DQo+ID4gK30NCj4gPiArDQo+ID4gKy8qIFNldCBkZWJ1 ZyBjb250cm9sIGZvciB0cmFwcGVkIGluc3RydWN0aW9uIGV4aXRpbmcgdG8gdXNlcnNwYWNlICov DQo+ID4gK3N0YXRpYyB2b2lkIHZjcHVfc2V0X2RlYnVnX2V4aXRfdXNlcnNwYWNlKHN0cnVjdCBr dm1fdm0gKnZtLCBpbnQNCj4gPiArdmNwdV9pZCkgew0KPiANCj4gbml0OiB5b3Ugc2hvdWxkIG1h a2UgdGhlIGNvZGUgc3R5bGUgY29uc2lzdGVudCwgcGxlYXNlIHVzZSB0aGUgZm9ybWF0Og0KPiBm dW5jdGlvbigpDQo+IHsNCj4gDQo+IH0NCj4gDQoNCk5vdGVkLg0KDQo+ID4gKyAgICAgc3RydWN0 IGt2bV9ndWVzdF9kZWJ1ZyBkZWJ1ZzsNCj4gPiArICAgICBtZW1zZXQoJmRlYnVnLCAwLCBzaXpl b2YoZGVidWcpKTsNCj4gPiArICAgICBkZWJ1Zy5jb250cm9sID0gS1ZNX0dVRVNUREJHX0VOQUJM RSB8DQo+IEtWTV9HVUVTVERCR19FWElUX1VTRVJTUEFDRTsNCj4gPiArICAgICB2Y3B1X3NldF9n dWVzdF9kZWJ1Zyh2bSwgdmNwdV9pZCwgJmRlYnVnKTsgfQ0KPiA+ICsNCj4gPiArc3RhdGljIHZv aWQgdGVzdF92bV9jYXBfZGlzYWJsZV9leGl0cyh2b2lkKSB7DQo+ID4gKyAgICAgc3RydWN0IGt2 bV9lbmFibGVfY2FwIGNhcCA9IHsNCj4gPiArICAgICAgICAgICAgIC5jYXAgPSBLVk1fQ0FQX1g4 Nl9ESVNBQkxFX0VYSVRTLA0KPiA+ICsgICAgICAgICAgICAgLmFyZ3NbMF0gPQ0KPiA+ICtLVk1f WDg2X0RJU0FCTEVfRVhJVFNfSExUfEtWTV9YODZfRElTQUJMRV9FWElUU19PVkVSUklERSwNCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4NCj4g ICAgICAgICAgICAgICAgICAgICAgICAgbml0OiBhIHNwYWNlIGlzIG11Y2ggbW9yZSBjbGVhciBo ZXJlDQo+IA0KDQpOb3RlZC4NCg0KPiA+ICsgICAgIH07DQo+ID4gKyAgICAgc3RydWN0IGt2bV92 bSAqdm07DQo+ID4gKyAgICAgc3RydWN0IGt2bV9ydW4gKnJ1bjsNCj4gPiArDQo+ID4gKyAgICAg LyogQ3JlYXRlIFZNICovDQo+ID4gKyAgICAgdm0gPSB2bV9jcmVhdGVfd2l0aG91dF92Y3B1cyhW TV9NT0RFX0RFRkFVTFQsDQo+ID4gKyBERUZBVUxUX0dVRVNUX1BIWV9QQUdFUyk7DQo+ID4gKw0K PiA+ICsgICAgIC8qIFRlc3QgQ2FzZSAjMQ0KPiA+ICsgICAgICAqIERlZmF1bHQgd2l0aG91dCBk aXNhYmxpbmcgSExUIGV4aXRzIGluIFZNIHNjb3BlDQo+ID4gKyAgICAgICovDQo+ID4gKyAgICAg dm1fdmNwdV9hZGRfZGVmYXVsdCh2bSwgVkNQVV9JRF8xLCAodm9pZCAqKWd1ZXN0X2NvZGVfZXhp dHMpOw0KPiA+ICsgICAgIHZjcHVfc2V0X2RlYnVnX2V4aXRfdXNlcnNwYWNlKHZtLCBWQ1BVX0lE XzEpOw0KPiA+ICsgICAgIHJ1biA9IHZjcHVfc3RhdGUodm0sIFZDUFVfSURfMSk7DQo+ID4gKyAg ICAgdmNwdV9ydW4odm0sIFZDUFVfSURfMSk7DQo+ID4gKyAgICAgLyogRXhpdCByZWFzb24gc2hv dWxkIGJlIEhMVCAqLw0KPiA+ICsgICAgIGlmIChpc19hbWRfY3B1KCkpDQo+ID4gKyAgICAgICAg ICAgICBURVNUX0FTU0VSVChydW4tPmh3LmhhcmR3YXJlX2V4aXRfcmVhc29uID09IFNWTV9FWElU X0hMVCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgIkdvdCBleGl0X3JlYXNvbiBvdGhlciB0 aGFuIEhMVDogMHglbGx4XG4iLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICBydW4tPmh3Lmhh cmR3YXJlX2V4aXRfcmVhc29uKTsNCj4gPiArICAgICBlbHNlDQo+ID4gKyAgICAgICAgICAgICBU RVNUX0FTU0VSVChydW4tPmh3LmhhcmR3YXJlX2V4aXRfcmVhc29uID09DQo+IEVYSVRfUkVBU09O X0hMVCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgIkdvdCBleGl0X3JlYXNvbiBvdGhlciB0 aGFuIEhMVDogMHglbGx4XG4iLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICBydW4tPmh3Lmhh cmR3YXJlX2V4aXRfcmVhc29uKTsNCj4gPiArDQo+ID4gKyAgICAgLyogVGVzdCBDYXNlICMyDQo+ ID4gKyAgICAgICogRGlzYWJsaW5nIEhMVCBleGl0cyBpbiBWTSBzY29wZQ0KPiA+ICsgICAgICAq Lw0KPiA+ICsgICAgIHZtX3ZjcHVfYWRkX2RlZmF1bHQodm0sIFZDUFVfSURfMiwgKHZvaWQgKiln dWVzdF9jb2RlX2V4aXRzKTsNCj4gPiArICAgICB2Y3B1X3NldF9kZWJ1Z19leGl0X3VzZXJzcGFj ZSh2bSwgVkNQVV9JRF8yKTsNCj4gPiArICAgICBydW4gPSB2Y3B1X3N0YXRlKHZtLCBWQ1BVX0lE XzIpOw0KPiANCj4gSSB0aGluayB5b3UgY2FuIGFkZCBtb3JlIHZjcHUgaGVyZSB0byBtYWtlIHN1 cmUgYWZ0ZXIgZGlzYWJsaW5nIEhMVCBleGl0cyBpbg0KPiBWTSBzY29wZSBoZXJlLCBldmVyeSB2 Y3B1IHdpbGwgbm90IGV4aXQgZHVlIHRvIHRoZSBITFQuDQo+IA0KDQpNYWtlcyBzZW5zZS4gV2ls bCByZWZpbmUgdGhlIGNhc2UgZGVzaWduLiBUaGFua3MuDQoNCkJSLA0KS2VjaGVuDQoNCj4gPiAr ICAgICAvKiBTZXQgVk0gc2NvcGVkIGNhcCBhcmcNCj4gPiArICAgICAgKiBLVk1fWDg2X0RJU0FC TEVfRVhJVFNfSExUfEtWTV9YODZfRElTQUJMRV9FWElUU19PVkVSUklERQ0KPiA+ICsgICAgICAq IGFmdGVyIHZDUFVzIGNyZWF0aW9uIHNvIHJlcXVpcmluZyBvdmVycmlkZSBmbGFnDQo+ID4gKyAg ICAgICovDQo+ID4gKyAgICAgVEVTVF9BU1NFUlQoIXZtX2VuYWJsZV9jYXAodm0sICZjYXApLCAi RmFpbGVkIHRvIHNldA0KPiBLVk1fQ0FQX1g4Nl9ESVNBQkxFX0VYSVRTIik7DQo+ID4gKyAgICAg dmNwdV9ydW4odm0sIFZDUFVfSURfMik7DQo+ID4gKyAgICAgLyogRXhpdCByZWFzb24gc2hvdWxk IG5vdCBiZSBITFQsIHdvdWxkIGZpbmlzaCB0aGUgZ3Vlc3QNCj4gPiArICAgICAgKiBydW5uaW5n IGFuZCBleGl0IChlLmcuIFNWTV9FWElUX1NIVVRET1dOKQ0KPiA+ICsgICAgICAqLw0KPiA+ICsg ICAgIGlmIChpc19hbWRfY3B1KCkpDQo+ID4gKyAgICAgICAgICAgICBURVNUX0FTU0VSVChydW4t Pmh3LmhhcmR3YXJlX2V4aXRfcmVhc29uICE9IFNWTV9FWElUX0hMVCwNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgIkdvdCBleGl0X3JlYXNvbiBhcyBITFQ6IDB4JWxseFxuIiwNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgcnVuLT5ody5oYXJkd2FyZV9leGl0X3JlYXNvbik7DQo+ID4gKyAg ICAgZWxzZQ0KPiA+ICsgICAgICAgICAgICAgVEVTVF9BU1NFUlQocnVuLT5ody5oYXJkd2FyZV9l eGl0X3JlYXNvbiAhPQ0KPiBFWElUX1JFQVNPTl9ITFQsDQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICJHb3QgZXhpdF9yZWFzb24gYXMgSExUOiAweCVsbHhcbiIsDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgIHJ1bi0+aHcuaGFyZHdhcmVfZXhpdF9yZWFzb24pOw0KPiA+ICsNCj4gPiArICAg ICBrdm1fdm1fZnJlZSh2bSk7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyB2b2lkIHRlc3Rf dmNwdV9jYXBfZGlzYWJsZV9leGl0cyh2b2lkKSB7DQo+ID4gKyAgICAgc3RydWN0IGt2bV9lbmFi bGVfY2FwIGNhcCA9IHsNCj4gPiArICAgICAgICAgICAgIC5jYXAgPSBLVk1fQ0FQX1g4Nl9ESVNB QkxFX0VYSVRTLA0KPiA+ICsgICAgICAgICAgICAgLmFyZ3NbMF0gPQ0KPiBLVk1fWDg2X0RJU0FC TEVfRVhJVFNfSExUfEtWTV9YODZfRElTQUJMRV9FWElUU19PVkVSUklERSwNCj4gPiArICAgICB9 Ow0KPiA+ICsgICAgIHN0cnVjdCBrdm1fdm0gKnZtOw0KPiA+ICsgICAgIHN0cnVjdCBrdm1fcnVu ICpydW47DQo+ID4gKw0KPiA+ICsgICAgIC8qIENyZWF0ZSBWTSAqLw0KPiA+ICsgICAgIHZtID0g dm1fY3JlYXRlX3dpdGhvdXRfdmNwdXMoVk1fTU9ERV9ERUZBVUxULA0KPiBERUZBVUxUX0dVRVNU X1BIWV9QQUdFUyk7DQo+ID4gKyAgICAgdm1fdmNwdV9hZGRfZGVmYXVsdCh2bSwgVkNQVV9JRF8x LCAodm9pZCAqKWd1ZXN0X2NvZGVfZXhpdHMpOw0KPiA+ICsgICAgIHZjcHVfc2V0X2RlYnVnX2V4 aXRfdXNlcnNwYWNlKHZtLCBWQ1BVX0lEXzEpOw0KPiA+ICsgICAgIHZtX3ZjcHVfYWRkX2RlZmF1 bHQodm0sIFZDUFVfSURfMiwgKHZvaWQgKilndWVzdF9jb2RlX2V4aXRzKTsNCj4gPiArICAgICB2 Y3B1X3NldF9kZWJ1Z19leGl0X3VzZXJzcGFjZSh2bSwgVkNQVV9JRF8yKTsNCj4gPiArICAgICAv KiBTZXQgdkNQVSAyIHNjb3BlZCBjYXAgYXJnDQo+ID4gKyAgICAgICogS1ZNX1g4Nl9ESVNBQkxF X0VYSVRTX0hMVHxLVk1fWDg2X0RJU0FCTEVfRVhJVFNfT1ZFUlJJREUNCj4gPiArICAgICAgKi8N Cj4gPiArICAgICBURVNUX0FTU0VSVCghdmNwdV9lbmFibGVfY2FwKHZtLCBWQ1BVX0lEXzIsICZj YXApLCAiRmFpbGVkIHRvDQo+ID4gKyBzZXQgS1ZNX0NBUF9YODZfRElTQUJMRV9FWElUUyIpOw0K PiA+ICsNCj4gPiArICAgICAvKiBUZXN0IENhc2UgIzMNCj4gPiArICAgICAgKiBEZWZhdWx0IHdp dGhvdXQgZGlzYWJsaW5nIEhMVCBleGl0cyBpbiB0aGlzIHZDUFUgMQ0KPiA+ICsgICAgICAqLw0K PiA+ICsgICAgIHJ1biA9IHZjcHVfc3RhdGUodm0sIFZDUFVfSURfMSk7DQo+ID4gKyAgICAgdmNw dV9ydW4odm0sIFZDUFVfSURfMSk7DQo+ID4gKyAgICAgLyogRXhpdCByZWFzb24gc2hvdWxkIGJl IEhMVCAqLw0KPiA+ICsgICAgIGlmIChpc19hbWRfY3B1KCkpDQo+ID4gKyAgICAgICAgICAgICBU RVNUX0FTU0VSVChydW4tPmh3LmhhcmR3YXJlX2V4aXRfcmVhc29uID09IFNWTV9FWElUX0hMVCwN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgIkdvdCBleGl0X3JlYXNvbiBvdGhlciB0aGFuIEhM VDogMHglbGx4XG4iLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICBydW4tPmh3LmhhcmR3YXJl X2V4aXRfcmVhc29uKTsNCj4gPiArICAgICBlbHNlDQo+ID4gKyAgICAgICAgICAgICBURVNUX0FT U0VSVChydW4tPmh3LmhhcmR3YXJlX2V4aXRfcmVhc29uID09DQo+IEVYSVRfUkVBU09OX0hMVCwN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgIkdvdCBleGl0X3JlYXNvbiBvdGhlciB0aGFuIEhM VDogMHglbGx4XG4iLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICBydW4tPmh3LmhhcmR3YXJl X2V4aXRfcmVhc29uKTsNCj4gPiArDQo+ID4gKyAgICAgLyogVGVzdCBDYXNlICM0DQo+ID4gKyAg ICAgICogRGlzYWJsaW5nIEhMVCBleGl0cyBpbiB2Q1BVIDINCj4gPiArICAgICAgKi8NCj4gPiAr ICAgICBydW4gPSB2Y3B1X3N0YXRlKHZtLCBWQ1BVX0lEXzIpOw0KPiA+ICsgICAgIHZjcHVfcnVu KHZtLCBWQ1BVX0lEXzIpOw0KPiA+ICsgICAgIC8qIEV4aXQgcmVhc29uIHNob3VsZCBub3QgYmUg SExULCB3b3VsZCBmaW5pc2ggdGhlIGd1ZXN0DQo+ID4gKyAgICAgICogcnVubmluZyBhbmQgZXhp dCAoZS5nLiBTVk1fRVhJVF9TSFVURE9XTikNCj4gPiArICAgICAgKi8NCj4gPiArICAgICBpZiAo aXNfYW1kX2NwdSgpKQ0KPiA+ICsgICAgICAgICAgICAgVEVTVF9BU1NFUlQocnVuLT5ody5oYXJk d2FyZV9leGl0X3JlYXNvbiAhPSBTVk1fRVhJVF9ITFQsDQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICJHb3QgZXhpdF9yZWFzb24gYXMgSExUOiAweCVsbHhcbiIsDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgIHJ1bi0+aHcuaGFyZHdhcmVfZXhpdF9yZWFzb24pOw0KPiA+ICsgICAgIGVsc2UN Cj4gPiArICAgICAgICAgICAgIFRFU1RfQVNTRVJUKHJ1bi0+aHcuaGFyZHdhcmVfZXhpdF9yZWFz b24gIT0NCj4gRVhJVF9SRUFTT05fSExULA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAiR290 IGV4aXRfcmVhc29uIGFzIEhMVDogMHglbGx4XG4iLA0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICBydW4tPmh3LmhhcmR3YXJlX2V4aXRfcmVhc29uKTsNCj4gPiArDQo+ID4gKyAgICAga3ZtX3Zt X2ZyZWUodm0pOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtpbnQgbWFpbihpbnQgYXJnYywgY2hhciAq YXJndltdKQ0KPiA+ICt7DQo+ID4gKyAgICAgdGVzdF92bV9jYXBfZGlzYWJsZV9leGl0cygpOw0K PiA+ICsgICAgIHRlc3RfdmNwdV9jYXBfZGlzYWJsZV9leGl0cygpOw0KPiA+ICsgICAgIHJldHVy biAwOw0KPiA+ICt9DQo=