From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mx.groups.io with SMTP id smtpd.web10.4401.1610518345789367983 for ; Tue, 12 Jan 2021 22:12:26 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=E1raBJWY; spf=pass (domain: intel.com, ip: 192.55.52.136, mailfrom: ray.ni@intel.com) IronPort-SDR: sKIbfp66WmuiIjkY9WkAYI7jjT2pn1Tx6jX00tfEZTYgVVNUjjLFCzAOI1GwkOHzEwfFukvIa9 aYCWuRiMuWfg== X-IronPort-AV: E=McAfee;i="6000,8403,9862"; a="157337710" X-IronPort-AV: E=Sophos;i="5.79,343,1602572400"; d="scan'208";a="157337710" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Jan 2021 22:12:24 -0800 IronPort-SDR: ImBW9sDl3S7q4/EuMZCrFnQRcxVd5D2SX8ZcSnCkGUu7UhwTAeP36pECNr5V0p3WsQIUDrqOOD 2WaJ8DL0PqVw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,343,1602572400"; d="scan'208";a="499165342" Received: from orsmsx604.amr.corp.intel.com ([10.22.229.17]) by orsmga004.jf.intel.com with ESMTP; 12 Jan 2021 22:12:24 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 12 Jan 2021 22:12:24 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Tue, 12 Jan 2021 22:12:24 -0800 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.104) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Tue, 12 Jan 2021 22:12:23 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LRIvGy4GDBkg0+dcLGuQa3uDbIaWdTZhMpr70hkMSikZRzwzjuMQe1CMbVASJfFke9l72s9eYefotdrVtYOf2YfDrJ3CsXVxZtB4J9u+JUc/VlcOaPt3aKvR/s7TUXKlV5BWKVmYOd/Er5DydXgip9+PN3r6mlRX4vXNuyvcfSCs7/N/ZPw4X41tY4uqd3iT/psd2J2bgEfJyUH8jw0OYRuBLXBaqJOSArfubRPghNCIsXwU/QV3HfdqRoD2tH2ozoeBGyIWk6Pnw3sA/AsGMtDrmTtBpWzEpTU1s2e9yOFNuuoBzPBvug2VJVj4b7EQbHaIuiaU5YNtHOOQ4DfIQw== 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-SenderADCheck; bh=Jn/e1rOx2CrUCDDLB1o5w8addX+Rqqni7qGOhXpyw00=; b=L1z9qecSuGbJ9+mPHApzPc8o0XznIibeSXixUAiR45EA6RU0jcwoNytsfE+O/8h3O+YW/rByGrP8Q6sjBbmu5LxpXbjtQIe4PWvl0CjByDhBXd3oNJTL3atMd3wT5M/7NqpBpzRB7SDmvyfsFUgBf+pDDNNgyjV1fPpAUbOPLDtvyAq9WXC9+i4mmqBZuYHKx/GWlt9V1C4vPvSUKneMI+LYKHv79uo8D4YARMp844316eRLIeigNIdbj6OZnALxeaTmQSZwXYEhhEV95C0OOKEZ1+5nwEV8rzj5ucJuyR9FmXm1+wqm/c8g3x5YpXEJw4It1StYP3PhfNcacLWKDg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Jn/e1rOx2CrUCDDLB1o5w8addX+Rqqni7qGOhXpyw00=; b=E1raBJWYmlk3CmdSWUEs4pb4hLIeMoFzbOsAXxSRcqsZLEBda2pXgIsW5X+FaKS/DLVKb8Zn7LRshnj5Q5idVFW3SC2MKVLGkQBzCGiOOmUiW38XBlz3/BZBM9BW7XH6Yx1QYB9iH+ugFKNFEbBEvrebBTHHDlAvIwt6d79kY6E= Received: from CO1PR11MB4930.namprd11.prod.outlook.com (2603:10b6:303:9b::11) by MW3PR11MB4570.namprd11.prod.outlook.com (2603:10b6:303:5f::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3742.6; Wed, 13 Jan 2021 06:12:22 +0000 Received: from CO1PR11MB4930.namprd11.prod.outlook.com ([fe80::d18:1234:c1d6:5936]) by CO1PR11MB4930.namprd11.prod.outlook.com ([fe80::d18:1234:c1d6:5936%7]) with mapi id 15.20.3763.010; Wed, 13 Jan 2021 06:12:22 +0000 From: "Ni, Ray" To: Laszlo Ersek , "devel@edk2.groups.io" CC: "Dong, Eric" , =?utf-8?B?UGhpbGlwcGUgTWF0aGlldS1EYXVkw6k=?= , "Kumar, Rahul1" , "Zeng, Star" Subject: Re: [PATCH 2/3] UefiCpuPkg/CpuS3DataDxe: do not allocate useless register tables Thread-Topic: [PATCH 2/3] UefiCpuPkg/CpuS3DataDxe: do not allocate useless register tables Thread-Index: AQHW6RfpxmvHHIqjTk2NaiA87EFz+qolEmSg Date: Wed, 13 Jan 2021 06:12:22 +0000 Message-ID: References: <20210112191934.12459-1-lersek@redhat.com> <20210112191934.12459-3-lersek@redhat.com> In-Reply-To: <20210112191934.12459-3-lersek@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.147.194] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c3f51a66-b7e0-475b-ff7c-08d8b78a30f0 x-ms-traffictypediagnostic: MW3PR11MB4570: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:361; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: twPbZIw8xGE2DUUEkn/H1HNCSXBaWIybHTrTliDVUUp6UuVvAGqoTxSB0TFCRdnEeo2UVSUPGtyH9kV+7KXA4N7nEtMO/H7Pt4BroM3zpRJQiEGOX9/XdBw0BygyswdHk1GuvUabcFwcTenTCfDhlYXgGHa8OfrsUQgJmA0gOmwMmj0RU3hpEcaaL0Qx/YRS3K3sf/OQny/HwwrHpdk7KdaFceorlUlf9GR2MX2GR7nz4SEkySuJuqbYwUWrqfHWvJJAn1vToc6ZQO1Q5WFs/gkOt8hIVfxzhQlCt3HwAXSsqcoWDBJa1A8ElNy56bdsnNIK9y8ILPtnpj91eHL/iGbAxXtxjVn0LegLYkl/vdqObjl+c87+AP9XJOeZ7Y/9umCvjdqz4xQ95GvF5AMtt7kNtk0V4uL2BqPVAYAq+0n88f0WB7SkeyerCBDP2Lbj5TZ8QO0j1M8gzYKsrY80/A== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4930.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(396003)(136003)(346002)(39860400002)(376002)(366004)(110136005)(64756008)(54906003)(5660300002)(76116006)(66946007)(26005)(478600001)(71200400001)(2906002)(66446008)(53546011)(66556008)(66476007)(6506007)(316002)(107886003)(83380400001)(86362001)(186003)(7696005)(8676002)(52536014)(55016002)(33656002)(9686003)(966005)(19627235002)(8936002)(4326008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?UTgyK0VBWVVGRUlMRWFJaWtHY2ltTktmdDgzWmNOd2NrSUZhN0Q2VTBCdG8r?= =?utf-8?B?WWlFOStFMzQ2T0VFUG5JQXl0bGxjcUhKK3Y4K1hKc2VoY1BpbGtmNEVobWtv?= =?utf-8?B?UHpuMVQwY3U2eVAvSlBCU00vdCsrWXNKWEwveE9peUM3cEdlWGdOY29BY29W?= =?utf-8?B?akUxczhoWFgyMlkyWG9OSGhIYUxmd2tmamFVQkhKUXZ3cVVMSlZjSTQxNTcy?= =?utf-8?B?V0VJUVQ2T3M5SGVjSUU4YXlPL1FCc3NSOC9oS25TVER5QlhjUEVUZVo0bGdt?= =?utf-8?B?Q3d2TU9tVjQxbEVLaFdUcmMwcElLYVJBWTNlWkxZWFUvbHhyaHN2SHBtcE1k?= =?utf-8?B?bjl0QS9hdHhNUkMzWTZiTFNVeHhhbjFsa2lmRXNKWi9xaDFmUEEzbU40Mmor?= =?utf-8?B?UFl2azVDOFBRZGkxaWlNK3pTcWRQV1E1cmFuZGtQT3RlWHJheW5JRlFsQmVl?= =?utf-8?B?NjdnajRoU0RwSlpsbkRrK2Q1aDJaSzM4dEpTWFhZS050aFA0L1Y2Y2o2Q1M4?= =?utf-8?B?eFdVR3dHMWFoTUlzV0R6YmVHTWlXeUIweG5XZ0RGM0JHaC9pY3daWXdNOExG?= =?utf-8?B?VUU3Q0lIQWpSTkt3cU1GRW1xZmlESm5QRVNTaUUvRDNJcGNhc2s5Wm9hNnpj?= =?utf-8?B?QWludVdzY3Z3YkNoSDhXUUxLRDlCeVBJeGNZeGdKQ3AwNDlzTHFYOXkxZllZ?= =?utf-8?B?MVJSL0U5andOd25vL3lhOTNXMnJwVFRyZUtPNG1yYzBPZ3FMVm0vNk1qWERx?= =?utf-8?B?QUYzL3o1UEo2dXpOZGRHaUdrOThSS1dhaUdWaWVCb0szb1diK05BNkpGYy80?= =?utf-8?B?eGdQUDdJc2E4RWZOZTBLUEFSNGJpWDhRM1pHR1FhU21VZGkxMXNzaTYzZnhw?= =?utf-8?B?b1RBZ01yR2hMajA4UU8vNmVqbEJuYjRLM1krTENHRTVhcXJsWlNCVFphSmRl?= =?utf-8?B?Z2lKSWRuY2VWcXd0dnIwSVlUd29lRXNQZ0NNbjg2R2w4Mzd4RHk1VjVLZVlI?= =?utf-8?B?WGR1NE53eFVMOUhwTCs0ZG5DSW5RdDZVVnFaT2FNSTI5YXFqT2tUd0FGZFFt?= =?utf-8?B?STF5alAzcmJsVk5lVTUrMEJWNEU2ZGE5ME9mRGN3MFI5NnNBZEpaZnJCdElt?= =?utf-8?B?MjdVaUthWFd4SkVCQ0gwUDBvQlUrVHJ0MkExUzErVnd5aGFhMjdxbHI3d3ha?= =?utf-8?B?Y1NWSnJMNTMxejc0Ry9Dc1lLczYwSHNwK2lrKzRHclZDQXZsc01lS0c4bmJY?= =?utf-8?B?elp5R0pNbWRKWkhZeFJYRUVhWXp2a1ZMZGVVeVh6bjhvV0hKbVVQTHphSURp?= =?utf-8?Q?6IMesIhaEHKYMIQAWVSN8Af/eB7uFT/my9?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4930.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c3f51a66-b7e0-475b-ff7c-08d8b78a30f0 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Jan 2021 06:12:22.6140 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: xGpq0jed61OfHI3tihYkxO6GY5nVMJtMuAUvBzn4lkhX1hC7sIHTk7Pu5xWaHs2VrCjWlOmWyVrRV0FpSlz5/A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR11MB4570 Return-Path: ray.ni@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 UmV2aWV3ZWQtYnk6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4NCg0KKEkgZ3Vlc3MgeW91IGRv bid0IHdhbnQgdG8gcHV0IFJlZGhhdCBjb3B5cmlnaHQgaW4gdGhlIHBhdGNoIDEmMiBzbyB0aGUg Y29weXJpZ2h0IHllYXIgaXMgbm90IHVwZGF0ZWQuDQpTaW5jZSBpdCdzIGEgc2ltcGxlIGNoYW5n ZSB0aGF0IG1ha2UgdGhlIGxvZ2ljIG1vcmUgbmVhdCwgSSBhbSBvayB3aXRoIHRoYXQuKQ0KDQpX aWxsIHlvdSBjcmVhdGUgYSBwdWxsIHJlcXVlc3QgdG8gbWVyZ2UgYWxsIDMgcGF0Y2hlcyB0b2dl dGhlcj8NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBMYXN6bG8gRXJz ZWsgPGxlcnNla0ByZWRoYXQuY29tPg0KPiBTZW50OiBXZWRuZXNkYXksIEphbnVhcnkgMTMsIDIw MjEgMzoyMCBBTQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gQ2M6IERvbmcsIEVyaWMg PGVyaWMuZG9uZ0BpbnRlbC5jb20+OyBQaGlsaXBwZSBNYXRoaWV1LURhdWTDqQ0KPiA8cGhpbG1k QHJlZGhhdC5jb20+OyBLdW1hciwgUmFodWwxIDxyYWh1bDEua3VtYXJAaW50ZWwuY29tPjsgTmks IFJheQ0KPiA8cmF5Lm5pQGludGVsLmNvbT47IFplbmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5j b20+DQo+IFN1YmplY3Q6IFtQQVRDSCAyLzNdIFVlZmlDcHVQa2cvQ3B1UzNEYXRhRHhlOiBkbyBu b3QgYWxsb2NhdGUgdXNlbGVzcw0KPiByZWdpc3RlciB0YWJsZXMNCj4gDQo+IENwdVMzRGF0YUR4 ZSBhbGxvY2F0ZXMgdGhlICJSZWdpc3RlclRhYmxlIiBhbmQgIlByZVNtbUluaXRSZWdpc3RlclRh YmxlIg0KPiBhcnJheXMgaW4gQUNQSV9DUFVfREFUQSBqdXN0IHNvIGV2ZXJ5IHByb2Nlc3NvciBp biB0aGUgc3lzdGVtIGNhbiBoYXZlIGl0cw0KPiBvd24gZW1wdHkgcmVnaXN0ZXIgdGFibGUsIG1h dGNoZWQgYnkgQVBJQyBJRC4gVGhpcyBoYXMgbmV2ZXIgYmVlbiB1c2VmdWwNCj4gaW4gcHJhY3Rp Y2UuDQo+IA0KPiBHaXZlbiBjb21taXQgZTk5MmNjM2Y0ODU5ICgiVWVmaUNwdVBrZyBQaVNtbUNw dUR4ZVNtbTogUmVkdWNlDQo+IFNNUkFNDQo+IGNvbnN1bXB0aW9uIGluIENwdVMzLmMiLCAyMDIx LTAxLTExKSwgc2ltcGx5IGxlYXZlIGJvdGgNCj4gIkFjcGlDcHVEYXRhLT5SZWdpc3RlclRhYmxl IiBhbmQgIkFjcGlDcHVEYXRhLT5QcmVTbW1Jbml0UmVnaXN0ZXJUYWJsZSINCj4gaW5pdGlhbGl6 ZWQgdG8gdGhlIHplcm8gYWRkcmVzcy4gVGhpcyBzaW1wbGlmaWVzIHRoZSBkcml2ZXIsIGFuZCBz YXZlcw0KPiBib3RoIG5vcm1hbCBSQU0gKGJvb3Qgc2VydmljZXMgZGF0YSB0eXBlIG1lbW9yeSkg YW5kIC0tIGluDQo+IFBpU21tQ3B1RHhlU21tDQo+IC0tIFNNUkFNLg0KPiANCj4gQ2M6IEVyaWMg RG9uZyA8ZXJpYy5kb25nQGludGVsLmNvbT4NCj4gQ2M6IFBoaWxpcHBlIE1hdGhpZXUtRGF1ZMOp IDxwaGlsbWRAcmVkaGF0LmNvbT4NCj4gQ2M6IFJhaHVsIEt1bWFyIDxyYWh1bDEua3VtYXJAaW50 ZWwuY29tPg0KPiBDYzogUmF5IE5pIDxyYXkubmlAaW50ZWwuY29tPg0KPiBDYzogU3RhciBaZW5n IDxzdGFyLnplbmdAaW50ZWwuY29tPg0KPiBSZWY6IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3Jl Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE1OQ0KPiBTaWduZWQtb2ZmLWJ5OiBMYXN6bG8gRXJzZWsg PGxlcnNla0ByZWRoYXQuY29tPg0KPiAtLS0NCj4gDQo+IE5vdGVzOg0KPiAgICAgVGVzdGVkIGJ5 IHRlbXBvcmFyaWx5IHJlcGxhY2luZyBPdm1mUGtnUGtnL0NwdVMzRGF0YUR4ZSBpbiB0aGUgT1ZN Rg0KPiBJQTMyDQo+ICAgICBhbmQgSUEzMlg2NCBwbGF0Zm9ybXMgd2l0aCB0aGlzIGRyaXZlciAt LSB0aGlzIGRyaXZlciB3b3JrcyBPSyBpbiBPVk1GDQo+ICAgICBhcyBsb25nIGFzIG5vIENQVXMg YXJlIGhvdC1wbHVnZ2VkLg0KPiANCj4gIFVlZmlDcHVQa2cvQ3B1UzNEYXRhRHhlL0NwdVMzRGF0 YS5jIHwgMzIgLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gIDEgZmlsZSBjaGFuZ2VkLCAzMiBkZWxl dGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0NwdVMzRGF0YUR4ZS9DcHVT M0RhdGEuYw0KPiBiL1VlZmlDcHVQa2cvQ3B1UzNEYXRhRHhlL0NwdVMzRGF0YS5jDQo+IGluZGV4 IDJiZTMzNWQ5MTkwMy4uMDc4YWYzNmNmYjQxIDEwMDY0NA0KPiAtLS0gYS9VZWZpQ3B1UGtnL0Nw dVMzRGF0YUR4ZS9DcHVTM0RhdGEuYw0KPiArKysgYi9VZWZpQ3B1UGtnL0NwdVMzRGF0YUR4ZS9D cHVTM0RhdGEuYw0KPiBAQCAtMTY1LDEwICsxNjUsNiBAQCBDcHVTM0RhdGFJbml0aWFsaXplICgN Cj4gICAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAgTnVtYmVyT2ZDcHVzOw0KPiAgICBVSU5U TiAgICAgICAgICAgICAgICAgICAgICBOdW1iZXJPZkVuYWJsZWRQcm9jZXNzb3JzOw0KPiAgICBW T0lEICAgICAgICAgICAgICAgICAgICAgICAqU3RhY2s7DQo+IC0gIFVJTlROICAgICAgICAgICAg ICAgICAgICAgIFRhYmxlU2l6ZTsNCj4gLSAgQ1BVX1JFR0lTVEVSX1RBQkxFICAgICAgICAgKlJl Z2lzdGVyVGFibGU7DQo+IC0gIFVJTlROICAgICAgICAgICAgICAgICAgICAgIEluZGV4Ow0KPiAt ICBFRklfUFJPQ0VTU09SX0lORk9STUFUSU9OICBQcm9jZXNzb3JJbmZvQnVmZmVyOw0KPiAgICBV SU5UTiAgICAgICAgICAgICAgICAgICAgICBHZHRTaXplOw0KPiAgICBVSU5UTiAgICAgICAgICAg ICAgICAgICAgICBJZHRTaXplOw0KPiAgICBWT0lEICAgICAgICAgICAgICAgICAgICAgICAqR2R0 Ow0KPiBAQCAtMjU1LDM0ICsyNTEsNiBAQCBDcHVTM0RhdGFJbml0aWFsaXplICgNCj4gICAgICBB Y3BpQ3B1RGF0YS0+UHJlU21tSW5pdFJlZ2lzdGVyVGFibGUgPSBPbGRBY3BpQ3B1RGF0YS0NCj4g PlByZVNtbUluaXRSZWdpc3RlclRhYmxlOw0KPiAgICAgIEFjcGlDcHVEYXRhLT5BcExvY2F0aW9u ICAgICAgICAgICAgICA9IE9sZEFjcGlDcHVEYXRhLT5BcExvY2F0aW9uOw0KPiAgICAgIENvcHlN ZW0gKCZBY3BpQ3B1RGF0YS0+Q3B1U3RhdHVzLCAmT2xkQWNwaUNwdURhdGEtPkNwdVN0YXR1cywg c2l6ZW9mDQo+IChDUFVfU1RBVFVTX0lORk9STUFUSU9OKSk7DQo+IC0gIH0gZWxzZSB7DQo+IC0g ICAgLy8NCj4gLSAgICAvLyBBbGxvY2F0ZSBidWZmZXIgZm9yIGVtcHR5IFJlZ2lzdGVyVGFibGUg YW5kIFByZVNtbUluaXRSZWdpc3RlclRhYmxlIGZvcg0KPiBhbGwgQ1BVcw0KPiAtICAgIC8vDQo+ IC0gICAgVGFibGVTaXplID0gMiAqIE51bWJlck9mQ3B1cyAqIHNpemVvZiAoQ1BVX1JFR0lTVEVS X1RBQkxFKTsNCj4gLSAgICBSZWdpc3RlclRhYmxlID0gKENQVV9SRUdJU1RFUl9UQUJMRSAqKUFs bG9jYXRlWmVyb1BhZ2VzIChUYWJsZVNpemUpOw0KPiAtICAgIEFTU0VSVCAoUmVnaXN0ZXJUYWJs ZSAhPSBOVUxMKTsNCj4gLQ0KPiAtICAgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IE51bWJlck9m Q3B1czsgSW5kZXgrKykgew0KPiAtICAgICAgU3RhdHVzID0gTXBTZXJ2aWNlcy0+R2V0UHJvY2Vz c29ySW5mbyAoDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICBNcFNlcnZpY2VzLA0KPiAt ICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXgsDQo+IC0gICAgICAgICAgICAgICAgICAg ICAgICAgICAmUHJvY2Vzc29ySW5mb0J1ZmZlcg0KPiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgKTsNCj4gLSAgICAgIEFTU0VSVF9FRklfRVJST1IgKFN0YXR1cyk7DQo+IC0NCj4gLSAgICAg IFJlZ2lzdGVyVGFibGVbSW5kZXhdLkluaXRpYWxBcGljSWQgICAgICA9DQo+IChVSU5UMzIpUHJv Y2Vzc29ySW5mb0J1ZmZlci5Qcm9jZXNzb3JJZDsNCj4gLSAgICAgIFJlZ2lzdGVyVGFibGVbSW5k ZXhdLlRhYmxlTGVuZ3RoICAgICAgICA9IDA7DQo+IC0gICAgICBSZWdpc3RlclRhYmxlW0luZGV4 XS5BbGxvY2F0ZWRTaXplICAgICAgPSAwOw0KPiAtICAgICAgUmVnaXN0ZXJUYWJsZVtJbmRleF0u UmVnaXN0ZXJUYWJsZUVudHJ5ID0gMDsNCj4gLQ0KPiAtICAgICAgUmVnaXN0ZXJUYWJsZVtOdW1i ZXJPZkNwdXMgKyBJbmRleF0uSW5pdGlhbEFwaWNJZCAgICAgID0NCj4gKFVJTlQzMilQcm9jZXNz b3JJbmZvQnVmZmVyLlByb2Nlc3NvcklkOw0KPiAtICAgICAgUmVnaXN0ZXJUYWJsZVtOdW1iZXJP ZkNwdXMgKyBJbmRleF0uVGFibGVMZW5ndGggICAgICAgID0gMDsNCj4gLSAgICAgIFJlZ2lzdGVy VGFibGVbTnVtYmVyT2ZDcHVzICsgSW5kZXhdLkFsbG9jYXRlZFNpemUgICAgICA9IDA7DQo+IC0g ICAgICBSZWdpc3RlclRhYmxlW051bWJlck9mQ3B1cyArIEluZGV4XS5SZWdpc3RlclRhYmxlRW50 cnkgPSAwOw0KPiAtICAgIH0NCj4gLSAgICBBY3BpQ3B1RGF0YS0+UmVnaXN0ZXJUYWJsZSAgICAg ICAgICAgPQ0KPiAoRUZJX1BIWVNJQ0FMX0FERFJFU1MpKFVJTlROKVJlZ2lzdGVyVGFibGU7DQo+ IC0gICAgQWNwaUNwdURhdGEtPlByZVNtbUluaXRSZWdpc3RlclRhYmxlID0NCj4gKEVGSV9QSFlT SUNBTF9BRERSRVNTKShVSU5UTikoUmVnaXN0ZXJUYWJsZSArIE51bWJlck9mQ3B1cyk7DQo+ICAg IH0NCj4gDQo+ICAgIC8vDQo+IC0tDQo+IDIuMTkuMS4zLmczMDI0N2FhNWQyMDENCj4gDQoNCg==