From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=helo; client-ip=104.47.34.86; helo=nam01-by2-obe.outbound.protection.outlook.com; envelope-from=leo.duran@amd.com; receiver=edk2-devel@lists.01.org Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0086.outbound.protection.outlook.com [104.47.34.86]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 0CE1F21154139 for ; Fri, 21 Sep 2018 09:52:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IZxEZvDqsCUpXSZlDN7RBpcOoxEqRQ6ckjbKpuvpbq0=; b=0kH5QRzL1kK0t74xJUqBxzEpIb1ju+0wUgN2MTaOgnAQKNHIVQtpbLUpsw8sjHWw7cSen2qh9oH818uJzDV7dME+TMNThretg40qKSohUwrwL0+ujukoNmVHmRuoexiKGeh2pte1IMZOLx5+CaAlx8necz6OEKVTAxeJkRLpoew= Received: from CY4PR12MB1815.namprd12.prod.outlook.com (10.175.63.21) by CY4PR12MB1143.namprd12.prod.outlook.com (10.168.164.135) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1143.18; Fri, 21 Sep 2018 16:52:52 +0000 Received: from CY4PR12MB1815.namprd12.prod.outlook.com ([fe80::ecd7:135f:4e1b:2d82]) by CY4PR12MB1815.namprd12.prod.outlook.com ([fe80::ecd7:135f:4e1b:2d82%3]) with mapi id 15.20.1143.019; Fri, 21 Sep 2018 16:52:52 +0000 From: "Duran, Leo" To: "Ni, Ruiyu" , Laszlo Ersek , "edk2-devel@lists.01.org" CC: "Dong, Eric" Thread-Topic: [edk2] [PATCH] UefiCpuPkg/MtrrLib: Add flag to skip disabling MTRRs prior to MTRR change. Thread-Index: AQHUSeX3EbC17fDvXkWWIRAmwJTcUaTrbK6AgAANLJCAAO+ogIAAVCzAgAAzL4CAAAHbwIAAj1YAgAEZC8CAAJxFAIAFdsQggAAHwQCAAQskAIAAaJZwgAEwkgCAA6cmAA== Date: Fri, 21 Sep 2018 16:52:52 +0000 Message-ID: References: <1536680498-6554-1-git-send-email-leo.duran@amd.com> <1536680498-6554-2-git-send-email-leo.duran@amd.com> <17c6d6d1-2655-fe06-a8b9-f48141bfb0d7@redhat.com> <610eaa55-c87b-5e0c-4f87-5c1e79ffc5ba@redhat.com> <12abd990-3b08-9159-e7a9-ffd7eb7282b3@redhat.com> <734D49CCEBEEF84792F5B80ED585239D5BE07168@SHSMSX104.ccr.corp.intel.com> <981751ac-68a0-ea2c-7985-2562d1916560@Intel.com> <85b907c0-1d7d-98f1-6e86-6bb3a3f86ffb@redhat.com> <5349de2c-8a15-c599-f966-84b87a517453@Intel.com> <698c833c-163d-ccde-8f4e-eae083997895@Intel.com> In-Reply-To: <698c833c-163d-ccde-8f4e-eae083997895@Intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=leo.duran@amd.com; x-originating-ip: [165.204.77.1] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; CY4PR12MB1143; 20:4kM1r9BPQR0nbZJ4bc149dY0uAHNpvSp+UEmgJjtKZwg+o2k08349Q2QGDjFcDPQ54jBTjxQj8IBFkUlCEyi38iaLNlhOUWDTw88FRcjfcM+Lsff2PBKiICG96J9za4BrzzmPhUwTWxbPzcl5UR0pO7zITOVLu1uWW/msZZirC7k5j+lrDS9V4E19HHTZKdiqYhjvLcX9tmXNsKZyzxwNO8TIyXRxOC3uVCUNRP0O8Hx3EI3CE7VMOn/OmVH5o3O x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: 3579439b-accf-43cf-152a-08d61fe2abbb x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534165)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:CY4PR12MB1143; x-ms-traffictypediagnostic: CY4PR12MB1143: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(767451399110)(162533806227266)(228905959029699)(17755550239193); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231355)(944501410)(52105095)(3002001)(10201501046)(93006095)(93001095)(6055026)(149027)(150027)(6041310)(20161123564045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(201708071742011)(7699051); SRVR:CY4PR12MB1143; BCL:0; PCL:0; RULEID:; SRVR:CY4PR12MB1143; x-forefront-prvs: 0802ADD973 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(346002)(366004)(376002)(396003)(136003)(199004)(189003)(13464003)(7696005)(4326008)(106356001)(26005)(76176011)(316002)(86362001)(6436002)(66066001)(110136005)(8936002)(99286004)(53546011)(81166006)(966005)(81156014)(8676002)(74316002)(478600001)(105586002)(229853002)(186003)(6506007)(68736007)(2906002)(305945005)(11346002)(486006)(6116002)(3846002)(6246003)(446003)(93886005)(476003)(7736002)(14454004)(5660300001)(256004)(33656002)(2900100001)(55016002)(6306002)(53936002)(25786009)(2501003)(9686003)(5250100002)(102836004)(97736004)(71200400001)(71190400001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR12MB1143; H:CY4PR12MB1815.namprd12.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: amd.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: F3AglAFArf2HcLSwf8KPWr0IzyoUwE6m0hW16p8NOuulHMLXZCR1X/Fgx8RD/zsNwgpmExU2cG1XtJvECE55rfqX1kaiuFdf2uGupn15bNsEYjWdL4L9PGjk83k+YDI27obRPgfIF8C2Kue3ULTHxJEDK5Ru1YETkI9xUilQW0mSc4cLRnRlgpTze1qblqjg5U63FSzURay8eF0shy73p+0dbGvwJwh6AjyHuuJwyf2ppWfky+OP/RBPt2OykNX1GE/Y/waqystlOhNlOvhPkN4vD8K6ZOf9GAs0yvDq+0TbzH4KSCxmSgtPo477JDlW9anXxXSSv8LbLkBismHJYRTtFtyaFm3tiF2r7C/bAls= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3579439b-accf-43cf-152a-08d61fe2abbb X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Sep 2018 16:52:52.1956 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1143 Subject: Re: [PATCH] UefiCpuPkg/MtrrLib: Add flag to skip disabling MTRRs prior to MTRR change. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Sep 2018 16:52:54 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTmksIFJ1aXl1IDxydWl5 dS5uaUBJbnRlbC5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgU2VwdGVtYmVyIDE5LCAyMDE4IDM6 NTkgQU0NCj4gVG86IER1cmFuLCBMZW8gPGxlby5kdXJhbkBhbWQuY29tPjsgTGFzemxvIEVyc2Vr IDxsZXJzZWtAcmVkaGF0LmNvbT47DQo+IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+IENjOiBE b25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW2VkazJdIFtQ QVRDSF0gVWVmaUNwdVBrZy9NdHJyTGliOiBBZGQgZmxhZyB0byBza2lwIGRpc2FibGluZw0KPiBN VFJScyBwcmlvciB0byBNVFJSIGNoYW5nZS4NCj4gDQo+IE9uIDkvMTgvMjAxOCAxMDo1NyBQTSwg RHVyYW4sIExlbyB3cm90ZToNCj4gPg0KPiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQo+ID4+IEZyb206IE5pLCBSdWl5dSBbbWFpbHRvOnJ1aXl1Lm5pQEludGVsLmNvbV0NCj4g Pj4gU2VudDogVHVlc2RheSwgU2VwdGVtYmVyIDE4LCAyMDE4IDM6MzQgQU0NCj4gPj4gVG86IExh c3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+OyBEdXJhbiwgTGVvDQo+IDxsZW8uZHVyYW5A YW1kLmNvbT47DQo+ID4+IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4+IENjOiBEb25nLCBF cmljIDxlcmljLmRvbmdAaW50ZWwuY29tPg0KPiA+PiBTdWJqZWN0OiBSZTogW2VkazJdIFtQQVRD SF0gVWVmaUNwdVBrZy9NdHJyTGliOiBBZGQgZmxhZyB0byBza2lwDQo+ID4+IGRpc2FibGluZyBN VFJScyBwcmlvciB0byBNVFJSIGNoYW5nZS4NCj4gPj4NCj4gPj4gT24gOS8xOC8yMDE4IDEyOjM4 IEFNLCBMYXN6bG8gRXJzZWsgd3JvdGU6DQo+ID4+PiBPbiAwOS8xNy8xOCAxODoyMCwgRHVyYW4s IExlbyB3cm90ZToNCj4gPj4+Pg0KPiA+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K PiA+Pj4+PiBGcm9tOiBOaSwgUnVpeXUgPHJ1aXl1Lm5pQEludGVsLmNvbT4NCj4gPj4+Pj4gU2Vu dDogVGh1cnNkYXksIFNlcHRlbWJlciAxMywgMjAxOCAxMTo0NCBQTQ0KPiA+Pj4+PiBUbzogRHVy YW4sIExlbyA8bGVvLmR1cmFuQGFtZC5jb20+OyBMYXN6bG8gRXJzZWsNCj4gPj4+Pj4gPGxlcnNl a0ByZWRoYXQuY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gPj4+Pj4gQ2M6IERvbmcs IEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5jb20+DQo+ID4+Pj4+IFN1YmplY3Q6IFJlOiBbZWRrMl0g W1BBVENIXSBVZWZpQ3B1UGtnL010cnJMaWI6IEFkZCBmbGFnIHRvIHNraXANCj4gPj4+Pj4gZGlz YWJsaW5nIE1UUlJzIHByaW9yIHRvIE1UUlIgY2hhbmdlLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBPbiA5 LzE0LzIwMTggMzozMSBBTSwgRHVyYW4sIExlbyB3cm90ZToNCj4gPj4+Pj4+DQo+ID4+Pj4+Pg0K PiA+Pj4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4+Pj4gRnJvbTogTmks IFJ1aXl1IDxydWl5dS5uaUBpbnRlbC5jb20+DQo+ID4+Pj4+Pj4gU2VudDogV2VkbmVzZGF5LCBT ZXB0ZW1iZXIgMTIsIDIwMTggOTozOSBQTQ0KPiA+Pj4+Pj4+IFRvOiBEdXJhbiwgTGVvIDxsZW8u ZHVyYW5AYW1kLmNvbT47IExhc3psbyBFcnNlaw0KPiA+Pj4+PiA8bGVyc2VrQHJlZGhhdC5jb20+ Ow0KPiA+Pj4+Pj4+IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4+Pj4+Pj4gQ2M6IERvbmcs IEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5jb20+DQo+ID4+Pj4+Pj4gU3ViamVjdDogUkU6IFtQQVRD SF0gVWVmaUNwdVBrZy9NdHJyTGliOiBBZGQgZmxhZyB0byBza2lwDQo+ID4+Pj4+Pj4gZGlzYWJs aW5nIE1UUlJzIHByaW9yIHRvIE1UUlIgY2hhbmdlLg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gTGVv LA0KPiA+Pj4+Pj4+IFNvcnJ5IEkgd2FzIGluIGxlYXZlIHllc3RlcmRheSBzbyBkaWRuJ3Qgc2Vl IHRoZSBtYWlsLg0KPiA+Pj4+Pj4+IFdoaWNoIE1TUnMgYXJlIHNoYXJlZD8gT25seSB0aGUNCj4g Pj4+Pj4gTVNSX0lBMzJfTVRSUl9ERUZfVFlQRV9SRUdJU1RFUj8NCj4gPj4+Pj4+PiBPciBhbGwg dGhlIE1TUnMgdGhhdCBjb25maWd1cmVzIHRoZSBDUFUgTVRSUiBzZXR0aW5nPw0KPiA+Pj4+Pj4+ DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gSGkgUmF5LA0KPiA+Pj4+Pj4gVGhlIE1UVFIgY29uZmlnIE1T UnMgYXJlIGFsc28gc2hhcmVkIGJ5IHRocmVhZHMgd2l0aGluIGEgY29yZS4NCj4gPj4+Pj4+DQo+ ID4+Pj4+DQo+ID4+Pj4+IEhpIExlbywNCj4gPj4+Pj4gRG8geW91IHRoaW5rIHRoYXQgZml4aW5n IHRoZSBjYWxsZXIgaXMgbW9yZSBwcm9wZXI/DQo+ID4+Pj4NCj4gPj4+PiBIaSBSYXksDQo+ID4+ Pj4gQWN0dWFsbHksDQo+ID4+Pj4gVGhlIHByb3Bvc2VkIFBDRCBpcyB0aGUgc2ltcGxlc3Qgc29s dXRpb24sIGFzIHRoYXQgd29ya3MgZm9yIHVzIGFuZA0KPiA+Pj4+IGRvZXMNCj4gPj4gbm90IGNo YW5nZSB0aGUgZXhpc3RpbmcgKGRlZmF1bHQpIGZsb3cuDQo+ID4+Pj4NCj4gPj4+PiBUaGF0IGlz LA0KPiA+Pj4+IEknZCBwcmVmZXIgbWFraW5nIGEgZGVjaXNpb24gYWJvdXQgdGhlIFBDRCBpbiBw bGF0Zm9ybS1zcGVjaWZpYw0KPiA+Pj4+IGNvZGUsDQo+ID4+IHJhdGhlciB0aGFuIGludHJvZHVj aW5nIGNvbXBsZXggZGV0ZWN0aW9uIGFuZCBoZXVyaXN0aWNzIGF0IHRoZQ0KPiA+PiBjYWxsZXIg bGV2ZWwgaW4NCj4gPj4gRURLMiAoanVzdCBmb3IgQU1EKS4NCj4gPj4+Pg0KPiA+Pj4+IFNvLCBw bGVhc2UgYXBwcm92ZSB0aGUgUENELg0KPiA+Pg0KPiA+PiBMZW8sDQo+ID4+IEkgYWdyZWUgd2l0 aCB5b3Ugb24gdGhlIGZpcnN0IHBhcnQgInRoZSBQQ0QgaXMgdGhlIHNpbXBsZXN0IHNvbHV0aW9u Ii4NCj4gPj4gQnV0IHRoaXMgcmVhbGx5IGxvb2tzIGxpa2UgYSB3b3JrYXJvdW5kIG9mIHRoZSBy ZWFsIGlzc3VlLg0KPiA+PiBGb3IgYSBtdWx0aXBsZS1zb2NrZXQgc3lzdGVtLCBpdCBtYXkgY29u dGFpbiBTIHNvY2tldHMsIGVhY2ggc29ja2V0DQo+ID4+IGNvbnRhaW5zIEMgY29yZXMgYW5kIGVh Y2ggY29yZSBjb250YWlucyBUIHRocmVhZHMuIEluIHN1bW1hcnkgdGhlDQo+ID4+IHN5c3RlbSBj b250YWlucyBTICogQyAqIFQgdGhyZWFkcy4NCj4gPj4gQXMgeW91IHNhaWQgYWxsIHRocmVhZHMg aW5zaWRlIGEgY29yZSBzaGFyZSB0aGUgTVRSUiBzZXR0aW5nLg0KPiA+PiBEbyBhbGwgY29yZXMg aW5zaWRlIGEgc29ja2V0IHNoYXJlIHRoZSBNVFJSIHNldHRpbmc/DQo+ID4+IERvIGFsbCBzb2Nr ZXRzIHNoYXJlIHRoZSBNVFJSIHNldHRpbmc/DQo+ID4+DQo+ID4+IElmIG9uZSBvZiB0aGUgYW5z d2VyIG9mIGFib3ZlIHF1ZXN0aW9ucyBpcyAibm8iLCBob3cgY2FuIHdlIGNvbmZpZ3VyZQ0KPiA+ PiB0aGUgUENEPw0KPiA+Pg0KPiA+IFtEdXJhbiwgTGVvXQ0KPiA+IEhpIFJheSwNCj4gPiBUaGUg TVRUUiBzZXR0aW5ncyBhcmUgc2hhcmUgYnkgdGhyZWFkcyB3aXRoaW4gYSBjb3JlIChidXQgZWFj aCBjb3JlDQo+ID4gaGFzIGl0cyBvd24sIGV0Yy4pIFRoZSBQQ0Qgd291bGQgYmUgc2V0IGluIG91 ciBwbGF0Zm9ybS1zcGVjaWZpYyBjb2RlIChlLmcuLA0KPiBpdCBjYW4gYmUgc2V0IGF0IGJ1aWxk LXRpbWUgaW4gdGhlIC5EU0MgZmlsZSkuDQo+ID4NCj4gPiBBcyBJIG1lbnRpb25lZCwNCj4gPiBX ZSBkb24ndCBuZWVkIChNdHJyLkVuYWJsZT0wKSB0byBjaGFuZ2UgTVRSUiBzZXR0aW5ncywgc28g aGF2aW5nIHRoZQ0KPiBQQ0QgdG8gc2tpcCAoTXRyci5FbmFibGU9MCkgaXMgcmVhc29uYWJsZSBm b3IgdXMuDQo+ID4NCj4gPiBMZW8uDQo+ID4NCj4gDQo+IElmIHRoZSBQQ0QgaXMgZmFsc2UsIG5v IHRocmVhZCBkaXNhYmxlcyB0aGUgTVRSUiBiZWZvcmUgcHJvZ3JhbW1pbmcgaXQuDQo+IElzIGl0 IHNhZmU/IFBlciBJbnRlbCdzIFNETSwgaXQncyBub3QuDQo+IA0KPiBNYXliZSBpdCB3b3JrcyBp biBBTUQncyBjYXNlLiBCdXQgSSBzdGlsbCBzdWdnZXN0IHdlIGNoYW5nZSB0aGUgY2FsbGVyLCB3 aGljaA0KPiBpcyBtb3JlIG5hdHVyYWwuDQo+IEF0IGxlYXN0IEknZCBsaWtlIHRvIHNlZSBob3cg cG90ZW50aWFsLXVnbHkgdGhlIGNoYW5nZSBjYW4gYmUuDQo+IFdlIGNhbiB0aGVuIGRpc2N1c3Mg aG93IHRvIG1ha2UgdGhlIHVnbHkgY2hhbmdlIGJldHRlciBsb29raW5nLg0KPiANCg0KSGkgUmF5 LA0KUGxlYXNlIHBhcmRvbiB0aGUgbGF0ZSByZXBseS4NClRoZSBtYWluIHByb2JsZW0gd2l0aCBj aGFuZ2VzIHRvICJjYWxsZXIiIGNvZGUgaXMgdGhhdCBkZXBlbmRlbmNpZXMgYXJlIFNvQy1zcGVj aWZpYywgc28gdGhlIGRldGVjdGlvbiBjb2RlIHdvdWxkIG5vdCBzY2FsZSBvdmVyIHRpbWUuDQpB Z2FpbiwgdGhlIHByb3Bvc2VkIFBDRCBkb2VzIG5vdCBhbHRlciBleGlzdGluZyBmbG93IChzbyBl eGlzdGluZyBjb2RlIHdpbGwgY29udGludWUgdG8gd29yayBhcy1pcyksDQphbmQgd291bGQgZ2l2 ZSB1cyBhIGxldmVyIHdlIGNhbiB1c2UgaW4gcGxhdGZvcm0tc3BlY2lmaWMgY29kZSAgKHdpdGhv dXQgcmVxdWlyaW5nIHN1cmdlcnkgaW4gRURLMiAiY2FsbGVyIiBjb2RlKS4NCg0KVGhhbmtzLA0K TGVvLg0KDQo+ID4+Pg0KPiA+Pj4gLSBGcm9tIG15IHNpZGUsIGlmIGl0IHdvcmtzIGZvciB5b3Us IGl0IHdvcmtzIGZvciBtZS4gKFRoZSBnZW5lcmFsDQo+ID4+PiB0cmVuZCBoYXMgYmVlbiB0byBh dm9pZCBhZGRpbmcgbW9yZSBQQ0RzIHRvIHRoZSAiY29yZSIgcGFja2FnZSBERUMNCj4gPj4+IGZp bGVzLCBidXQgSSdtIDEwMCUgbmV1dHJhbCBvbiB0aGF0LikNCj4gPj4+DQo+ID4+PiBMYXN6bG8N Cj4gPj4+DQo+ID4+DQo+ID4+IExhc3psbywNCj4gPj4gVGhhbmtzIGZvciBwb2ludGluZyBvdXQg dGhlIGdlbmVyYWwgdHJlbmQuIFllcyBsZXNzIFBDRHMgYXJlIHZlcnkNCj4gd2VsY29tZWQuDQo+ ID4+IFRvIG1lLCBQQ0QgaXMgbm8gZGlmZmVyZW50IGZyb20gcHJvdG9jb2wuIEFuZCBldmVuIHdv cnNlLCBiZWNhdXNlDQo+ID4+IGl0J3MgdmVyeSBlYXNpbHkgdG8gYmUgb3Zlci11c2VkLg0KPiA+ PiBCdXQgSSBhbSBub3Qgc3VyZSB3aGV0aGVyIGEgUENEIGhhcyB0byBiZSBpbnRyb2R1Y2VkIGZv ciB0aGlzIGlzc3VlLg0KPiA+PiBNYXliZSBldmVuIHdlIGNob29zZSB0byBmaXggdGhlIGNhbGxl ciwgdGhlIFBDRCBpcyBzdGlsbCBuZWVkZWQuIEkgYW0NCj4gPj4gbm90IHN1cmUuDQo+ID4+DQo+ ID4+IC0tDQo+ID4+IFRoYW5rcywNCj4gPj4gUmF5DQo+ID4gX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gPiBlZGsyLWRldmVsIG1haWxpbmcgbGlzdA0K PiA+IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4gaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFp bG1hbi9saXN0aW5mby9lZGsyLWRldmVsDQo+ID4NCj4gDQo+IA0KPiAtLQ0KPiBUaGFua3MsDQo+ IFJheQ0K