From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mx.groups.io with SMTP id smtpd.web09.1318.1605061169010719924 for ; Tue, 10 Nov 2020 18:19:29 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=Hb37zZ8c; spf=pass (domain: intel.com, ip: 134.134.136.126, mailfrom: jiewen.yao@intel.com) IronPort-SDR: YSxostu38GbCZa4W3wRYF4h+R5bkZtvkWU+dQy7kIi2Y1on4Lp+aT2NySWcMb6xcrMH/Aa1jLQ V/SlxWq+2epQ== X-IronPort-AV: E=McAfee;i="6000,8403,9801"; a="157862547" X-IronPort-AV: E=Sophos;i="5.77,468,1596524400"; d="scan'208";a="157862547" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Nov 2020 18:19:28 -0800 IronPort-SDR: uTCbz/sznpGT6xP1nLQxV3dvyaKio9w4YtP+dO6D2JEFAV49oKbJL6Ke2JVOk7o57SfalTm6I5 jGGIaUph6tBg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,468,1596524400"; d="scan'208";a="323109638" Received: from orsmsx605.amr.corp.intel.com ([10.22.229.18]) by orsmga003.jf.intel.com with ESMTP; 10 Nov 2020 18:19:28 -0800 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 10 Nov 2020 18:19:27 -0800 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 10 Nov 2020 18:19:27 -0800 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx601.amr.corp.intel.com (10.22.229.14) 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, 10 Nov 2020 18:19:27 -0800 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.101) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Tue, 10 Nov 2020 18:19:25 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PfQbjQJdxh3hTLRNcMc4Izd4pliRFIpr1DATMIpABKc3F+dwjc4jJB+YVRjkiPbvx1euuTqNhQf5nou/jBt13mrMTs3f90P7moPTq2focsOOZR1PE7H06exn0Fj2tiYR9Dqa+tdasR32beR8fMOQNxOqeud5p8ux4CQjejwd0PT2VF5swSLuh75RfhDTBSRZMOae3F/gqpmeODk7Uj916qo8EbwT4RGrYOex/FKkEGt9FOQ7C3PkkGwDqF0Lkh+dsxZilqpT/Pna8zNF6XP22eE/Ty4nY0KXIW99aGP0zT9tHRalu0iV/ebWxkdHQvWRGHvbaGvHIeKiqd59F0hjlw== 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=C/brgv8Zx2IFA1dlXFHeIS68c7mZ3ZOsL+rOnqtdpn4=; b=WBM/2RVE8iwPAwEa/z7OkV+g5KzoFWwu3FJVMD09mGQZBZ16moLQMEBEwFPyPWnkje6lKzEaFUSmFl2At2ayOWRq2fc8hrj+kkbwh1zs1PiWHIXJ/yTWZPZwm4ZZarhDfvjs/4oO7fv/KfDt1I2vfIsFw/hBkCR0FM3RaMCrG7oAq54/E062BLj9o3kos1V5/7fIe6PKXIX316fCkGwU6r+htMQBQpuwubkjSM/nTOZhsDuhxeqA/W9kQPgd91NcY+pLSYcXcXukUand/eiKIWPZOG3lkcaTIhVhxaa2VTkkSxabpixz5mlscnGQ3J1vFOygM8wB0TWXwZM/p1Gt5g== 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=C/brgv8Zx2IFA1dlXFHeIS68c7mZ3ZOsL+rOnqtdpn4=; b=Hb37zZ8cZctle0ZZ+kk9jUuFfWdn/d2spgUJn7mBiIlJ94bWvGlejUZG64Pioqm9aEpapVFZS9X4DXjiuRiAXiiwyaqu5r9lRs2FguJt6FIhkYwAUAXRo0ER81ap5ktlokwhxfIn/QN8ktJp8la5S+M9AnEIhzkUyUIvrVSL6A4= Received: from CY4PR11MB1288.namprd11.prod.outlook.com (2603:10b6:903:23::8) by CY4PR11MB1509.namprd11.prod.outlook.com (2603:10b6:910:11::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3541.21; Wed, 11 Nov 2020 02:19:24 +0000 Received: from CY4PR11MB1288.namprd11.prod.outlook.com ([fe80::a188:2994:6c14:aad7]) by CY4PR11MB1288.namprd11.prod.outlook.com ([fe80::a188:2994:6c14:aad7%12]) with mapi id 15.20.3541.025; Wed, 11 Nov 2020 02:19:24 +0000 From: "Yao, Jiewen" To: "Zurcher, Christopher J" , Laszlo Ersek CC: "devel@edk2.groups.io" , gaoliming , "Wang, Jian J" , "Lu, XiaoyuX" , "Kinney, Michael D" , Ard Biesheuvel Subject: Re: [edk2-devel] [PATCH v5 0/2] CryptoPkg/OpensslLib: Add native instruction support for X64 Thread-Topic: [edk2-devel] [PATCH v5 0/2] CryptoPkg/OpensslLib: Add native instruction support for X64 Thread-Index: AQHWsiyB4+1/v20uXEu0lqu2S9yUHqm6nppAgAAEk9CAADbo4IAADdPggACSlmCAAEPtsIAALsgwgAAIqxqABWCHgIAATSdAgACOvzCAAAN9IA== Date: Wed, 11 Nov 2020 02:19:24 +0000 Message-ID: References: <20201103215834.7533-1-christopher.j.zurcher@intel.com> <1644D590FF4B7423.25549@groups.io> <7D73B5FD-CBCA-4E8C-B73B-930722C9FCF7@intel.com> <903654d9-f903-734c-1d07-2f83a8c40099@redhat.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [101.80.124.211] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 569322f2-3840-4f90-3739-08d885e83544 x-ms-traffictypediagnostic: CY4PR11MB1509: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: GyPpXM621XZU4H+unIRommb+HmiA5USU40yO83gg7KPDhXAWvCOSe/qI85vx+BQclf1mfyT5ergR075cyKK1/vqzVtsSX0ZUuUQItse+FQOfP21L6pWlCFrD0jp2yF/PjdH6FzbJqjjL2R4eL0pYs2+wbI0hf1eDHhbbJQt38aokrCRHXC0TLDqSZJkCJfsPu+1i/PrA79FEsAnF9LKWkD/7A8y/BBmg2WlU5CG8sCkhmxXLJjaZEywTVkbZE8yKEkmOOQHzsFI8zpNZxieoroxZiqrfGfSRLQjeBDasrmMkr47y958OrLyMXpj7FNIfxXjiSWFYSj1YFfg1BQ5IWUxWMhybF9bg6UIjXqbyIiXUwk0JeqKaaxzum5hhQxNB3f8HzgX4gvWDZtPkYGTY1w== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY4PR11MB1288.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(376002)(366004)(346002)(39860400002)(136003)(396003)(53546011)(86362001)(33656002)(8936002)(6506007)(478600001)(110136005)(186003)(2906002)(966005)(55016002)(316002)(9686003)(52536014)(8676002)(7696005)(4326008)(54906003)(66556008)(64756008)(76116006)(5660300002)(66476007)(66446008)(66946007)(83380400001)(26005)(71200400001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: oIIUFgbqJ50oRoj+8xEd0ZP6ocevOsS5EFFo2XICgHEP6CA4H9Owwt90Tpq+NOawD7IhxIdmAFf8FDUvhs8izprJ2FKp1YL4qY92LXpgj5rrK41KNgOIGhk8zKC/kAfeu1Ov5IV2HdvB+DwTxorhc9NdgFhR3DYnMsZgyK70LKjiot00GBir90zPKZVsMKXCkNblaHaxMQ3bDk0qf1Y2NEIfO05UbJBcWelZzUqmdtHXWSApbI3nXJdaII0/vKTIb+lFp+L37dzbuXWLwzIyYJBX3dwd9dmdo7XoyK+UUajKJKW7BHmdHBgbPSYBkJG5kFw75atOeKtHo9Br7nqmGyb7640eANYF26fydcz6nUVcR58j5M55XeYm4LklpbWi0k0NBgDmVnVg4AH/NXvL99AoVUKKCCGYWJnsif5dAvXf576z1X5DoI138+Zz296TTRvBUdAK7SVQE6+y3YbcjfWUgUHB8c3AIZZ/Ti0hwt66XIDw0a1MyVGV249vLHTHtG3gvrnQHGDBK2U7TCnESeZNYkZ2WWuzsZ22Yw4sdYjK3Co/lfull6MKM0b2cLpYp0HtCI5gWYnowvawZpHFu7tmPnHCOOlPTO5Yv0jM3n9b2kQKVlhjREQj0c2wHnz9cL8g6yTbppvPvxnDl5QhDA== MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CY4PR11MB1288.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 569322f2-3840-4f90-3739-08d885e83544 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Nov 2020 02:19:24.4115 (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: AUqCJIEYcs+dPGrcXD7+6nWOhRWvBWxKikmkm5ZL23S88l6XNNd1/5SorCYxQ/UUMrMWDEK18yCW+gaBdqLpAQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR11MB1509 Return-Path: jiewen.yao@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SSBmdWxsIGFncmVlIHdpdGggbG9uZyB0ZXJtIHBsYW4uIEUuZy4gd2UgbmVlZCByZW1vdmUgQXBp SG9vay5jIGFzIHdlbGwuDQoNCkkgbW9yZSBjb25jZXJuIGFib3V0IHRoZSBzaG9ydCB0ZXJtIHBs YW4sIGlmIHlvdSB3YW50IHRvIGNoZWNrIGluIHRoaXMgYW5kIGdldCB0aGUgY2FwYWJpbGl0eS4N Cg0KSSB0aGluayB3ZSBuZWVkIHRoaXMgY2FwYWJpbGl0eSBmb3IgR0NDIHRvb2wgY2hhaW4gYXMg d2VsbCwgc28gSSBhbSBPSyB0byBjaGVjayBpbiAuUy4NClRoaXMgaXMgYXV0byBnZW5lcmF0ZWQu IEkgZG8gbm90IHRoaW5rIGl0IGlzIGEgc3RlcCBiYWNrLg0KDQpXZSBjYW4gcmVtb3ZlIHRoZW0g dG9nZXRoZXIgd2l0aCBBcGlIb29rIGxhdGVyLCBpbiB0aGUgbG9uZyB0ZXJtLg0KDQpUaGFuayB5 b3UNCllhbyBKaWV3ZW4NCg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206 IFp1cmNoZXIsIENocmlzdG9waGVyIEogPGNocmlzdG9waGVyLmouenVyY2hlckBpbnRlbC5jb20+ DQo+IFNlbnQ6IFdlZG5lc2RheSwgTm92ZW1iZXIgMTEsIDIwMjAgOTo0MyBBTQ0KPiBUbzogWWFv LCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsgTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVk aGF0LmNvbT4NCj4gQ2M6IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBnYW9saW1pbmcgPGdhb2xpbWlu Z0BieW9zb2Z0LmNvbS5jbj47IFdhbmcsDQo+IEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29t PjsgTHUsIFhpYW95dVggPHhpYW95dXgubHVAaW50ZWwuY29tPjsgS2lubmV5LA0KPiBNaWNoYWVs IEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgQXJkIEJpZXNoZXV2ZWwNCj4gPGFyZC5i aWVzaGV1dmVsQGFybS5jb20+DQo+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIIHY1 IDAvMl0gQ3J5cHRvUGtnL09wZW5zc2xMaWI6IEFkZCBuYXRpdmUNCj4gaW5zdHJ1Y3Rpb24gc3Vw cG9ydCBmb3IgWDY0DQo+IA0KPiBJIGRvbid0IHdhbnQgdG8gc3BlYWsgZm9yIExhc3psbyBidXQg SSBmaWxlZCBhbiBpc3N1ZSBhZ2FpbnN0IE9wZW5TU0wgdGhhdCB0aGUNCj4gTkFTTSBidWlsZCBz aG91bGQgbm90IGFzc3VtZSB3aW42NDoNCj4gaHR0cHM6Ly9naXRodWIuY29tL29wZW5zc2wvb3Bl bnNzbC9pc3N1ZXMvMTI3MTINCj4gDQo+IFRoZSBpc3N1ZSB3YXMgdHJpYWdlZCBhcyBhIGJ1ZyBi eSBPcGVuU1NMLCBzbyBJIHRoaW5rIHRoZSBsb25nLXRlcm0gcGxhbg0KPiB3b3VsZCBiZSB0byBm aXggT3BlblNTTCB0byBub3Qgc2V0IHdpbjY0IGZsYWcgYnkgZGVmYXVsdCBvbiBhbGwgTkFTTSBi dWlsZHMsDQo+IGF0IHdoaWNoIHBvaW50IEkgdGhpbmsgd2Ugc2hvdWxkIGJlIGFibGUgdG8gdXNl IHRoZSBzYW1lIE5BU00gZmlsZXMgZm9yIFZTDQo+IGFuZCBHQ0MuIEknbSBub3Qgc3VyZSBpZiB0 aGUgY2xhc3NpZmljYXRpb24gYXMgYSBidWcgbWVhbnMgdGhlIGZpeCBjb3VsZCBiZQ0KPiBtYWRl IGluIDEuMS4xeCBidWlsZHMgb3IgaWYgaXQgY291bGQgb25seSBnbyBpbnRvIDMueC4NCj4gDQo+ IFRoYW5rcywNCj4gQ2hyaXN0b3BoZXIgWnVyY2hlcg0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQ0KPiA+IEZyb206IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4N Cj4gPiBTZW50OiBUdWVzZGF5LCBOb3ZlbWJlciAxMCwgMjAyMCAwOTowOA0KPiA+IFRvOiBMYXN6 bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPjsgWnVyY2hlciwgQ2hyaXN0b3BoZXIgSg0KPiA+ IDxjaHJpc3RvcGhlci5qLnp1cmNoZXJAaW50ZWwuY29tPg0KPiA+IENjOiBkZXZlbEBlZGsyLmdy b3Vwcy5pbzsgZ2FvbGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBXYW5nLA0KPiBK aWFuIEoNCj4gPiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgTHUsIFhpYW95dVggPHhpYW95dXgu bHVAaW50ZWwuY29tPjsgS2lubmV5LA0KPiBNaWNoYWVsDQo+ID4gRCA8bWljaGFlbC5kLmtpbm5l eUBpbnRlbC5jb20+OyBBcmQgQmllc2hldXZlbA0KPiA8YXJkLmJpZXNoZXV2ZWxAYXJtLmNvbT4N Cj4gPiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSCB2NSAwLzJdIENyeXB0b1BrZy9P cGVuc3NsTGliOiBBZGQgbmF0aXZlDQo+ID4gaW5zdHJ1Y3Rpb24gc3VwcG9ydCBmb3IgWDY0DQo+ ID4NCj4gPiBMYXN6bG8uDQo+ID4gSWYgeW91IGRpc2FncmVlLCB3aGF0IGlzIHlvdXIgcHJvcG9z YWw/DQo+ID4NCj4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZy b206IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQo+ID4gPiBTZW50OiBUdWVzZGF5 LCBOb3ZlbWJlciAxMCwgMjAyMCA4OjMxIFBNDQo+ID4gPiBUbzogWWFvLCBKaWV3ZW4gPGppZXdl bi55YW9AaW50ZWwuY29tPjsgWnVyY2hlciwgQ2hyaXN0b3BoZXIgSg0KPiA+ID4gPGNocmlzdG9w aGVyLmouenVyY2hlckBpbnRlbC5jb20+DQo+ID4gPiBDYzogZGV2ZWxAZWRrMi5ncm91cHMuaW87 IGdhb2xpbWluZyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsNCj4gV2FuZywNCj4gPiA+IEpp YW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgTHUsIFhpYW95dVggPHhpYW95dXgubHVAaW50 ZWwuY29tPjsNCj4gS2lubmV5LA0KPiA+ID4gTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGlu dGVsLmNvbT47IEFyZCBCaWVzaGV1dmVsDQo+ID4gPiA8YXJkLmJpZXNoZXV2ZWxAYXJtLmNvbT4N Cj4gPiA+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIHY1IDAvMl0gQ3J5cHRvUGtn L09wZW5zc2xMaWI6IEFkZA0KPiBuYXRpdmUNCj4gPiA+IGluc3RydWN0aW9uIHN1cHBvcnQgZm9y IFg2NA0KPiA+ID4NCj4gPiA+IE9uIDExLzA3LzIwIDAzOjI0LCBZYW8sIEppZXdlbiB3cm90ZToN Cj4gPiA+ID4gVGhlIHJlYXNvbiB3ZSBjaG9vc2UgTkFTTSBpcyB0aGF0IHdlIGNhbiB1c2Ugc2Ft ZSBhc3NlbWJseSBpbg0KPiB3aW5kb3dzDQo+ID4gPiBidWlsZCBhbmQgTGludXggYnVpbGQuIEhv d2V2ZXIgaWYgdGhpcyBOQVNNIGNhbm5vdCBiZSB1c2VkIGluIExpbnV4LCB0aGVuDQo+ID4gPiB0 aGUgYmVuZWZpdCBkb2VzIG5vdCBleGlzdCBhbnkgbW9yZS4gWW91IGNhbiBnZW5lcmF0ZSBHQVMg dG8gc3VwcG9ydA0KPiBHQ0MNCj4gPiA+IGJ1aWxkLCBhbmQgY2hlY2sgaW4gLlMgZmlsZS4NCj4g PiA+DQo+ID4gPiBJIGRpc2FncmVlIHdpdGggdGhpcyBpZGVhLiBUbyBtZSAoYXMgYW4gZXhjbHVz aXZlIEdDQyB1c2VyKSwgdW5pZm9ybWl0eQ0KPiA+ID4gb2YgYXNzZW1ibHkgZmlsZXMgaXMgKm11 Y2gqIG1vcmUgaW1wb3J0YW50IHRoYW4gZ2V0dGluZyBuYXRpdmUNCj4gPiA+IGluc3RydWN0aW9u IHN1cHBvcnQgaW4gT3BlblNTTCB3aXRoIGFsbCB0b29sY2hhaW5zIGF0IHRoZSBleGFjdCBzYW1l IHRpbWUuDQo+ID4gPg0KPiA+ID4gSWYgd2UgZW5hYmxlIG5hdGl2ZSBpbnN0cnVjdGlvbiBzdXBw b3J0IGZvciAoYSkgVlMgYW5kIENMQU5HUERCIG5vdywNCj4gYW5kDQo+ID4gPiAoYikgZm9yIEdD QyBsYXRlciwgdGhlbiB0aGF0J3MgdHdvIHN0ZXBzLCB3aXRoIGVhY2ggc3RlcCBiZWluZyBpbiB0 aGUNCj4gPiA+IGZvcndhcmQgZGlyZWN0aW9uLiBQZXJmb3JtaW5nIGp1c3QgKGEpIGZvciBub3cg Y3JlYXRlcyBubyB0ZWNobmljYWwNCj4gPiA+IGRlYnQuIEEgZmVhdHVyZSBnYXAgaXMgbm90IHRl Y2huaWNhbCBkZWJ0OyB5b3UgY2Fubm90IG1pc3Rha2UgYSBtaXNzaW5nDQo+ID4gPiBmZWF0dXJl IGZvciBhIHdvcmtpbmcgZmVhdHVyZS4NCj4gPiA+DQo+ID4gPiBJZiB3ZSByZS1hZGQgLlMgZmls ZXMgbm93LCBmb3Igd2hhdGV2ZXIgcHVycG9zZSwgdGhhdCdzIGEgc3RlcCAqYmFjayosDQo+ID4g PiBob3dldmVyLiBJdCBjcmVhdGVzIHRlY2huaWNhbCBkZWJ0LiBBIHdvcmtpbmcgZmVhdHVyZSBv biBhbiBpbnZhbGlkDQo+ID4gPiBiYXNpcyAqY2FuKiBiZSBtaXN0YWtlbiBmb3IgYSB3b3JraW5n IGZlYXR1cmUsIGFuZCB3ZSBzaG91bGRuJ3QgZG8gdGhhdA0KPiA+ID4gKHVubGVzcyB0aGVyZSBh cmUgc3Ryb25nIGJ1c2luZXNzIG5lZWRzIGZvciBzb21lIHBhcnRpY2lwYW50cywgKkFORCogd2UN Cj4gPiA+IGhhdmUgYSAqdmVyeSBzcGVjaWZpYyogcGxhbiBhbmQgdGltZWxpbmUgZm9yIGJhY2tp bmcgb3V0IHRoZSBoYWNrKS4gSQ0KPiA+ID4gcmVhbGx5IGRvbid0IGhhdmUgYW55IHRydXN0IGlu IHRlY2huaWNhbCBkZWJ0IGJlaW5nICJwYWlkIiBpbiBlZGsyDQo+ID4gPiBhbnl0aW1lIHNvb24s IHRob3VnaC4NCj4gPiA+DQo+ID4gPiBUaGFua3MNCj4gPiA+IExhc3psbw0KDQo=