From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web10.262.1602271658901617740 for ; Fri, 09 Oct 2020 12:27:39 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=IAZKbksM; spf=pass (domain: intel.com, ip: 192.55.52.43, mailfrom: christopher.j.zurcher@intel.com) IronPort-SDR: HV2ng+V9pkGHT1T8yQYZ5d61qo5H1Az8EQ0ofExgs59QOSi4WyzHsCKsSLWRoS6nxgqDMUdUo9 8beq4jYrGRsQ== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="250224104" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="250224104" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:27:37 -0700 IronPort-SDR: gSZ18ZI5x+jaDbHSTtwbqNpt3ig1lGrWwPmQ9uIVHyPPoVj+GVTmL6fisQvwdMXtb8lN4yqPQL h4tnlbkOf7cw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="355855040" Received: from fmsmsx605.amr.corp.intel.com ([10.18.126.85]) by orsmga007.jf.intel.com with ESMTP; 09 Oct 2020 12:27:37 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 9 Oct 2020 12:27:36 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 9 Oct 2020 12:27:36 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Fri, 9 Oct 2020 12:27:35 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.101) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Fri, 9 Oct 2020 12:27:34 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AU+nx2V04ksO2NK/NGYpQ4EI5FxOpMZPmnHZDdRhUtPtqpPQPMukd3LbUagQ4Okltt6/u8hXt+L094pTBriaTPtLd39+9SEs9j/WzueSfu8+Hkou36M3xs4rR0VdTsQhvroeCGH3ewMyAMcGPeUewVIsuLo2JGEUOpTDO53HTC9EAjY/I6o5l/5gsk4ZNncotoHia5kQNSMqIaHdJTnGDXoIg87EeUP9WJrUBf8/C0PENeUzBbA3XlifYOwCBsaNxy2AhzT53DJuWYssbtn18sjnLBhHsw9VsaMCDgmC4HE0cZJWXLvgEy88fbGA8/J3x77A+O2qhZ64Hv6bBwinNw== 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=g/LvHPapjJdKZDyqZPqRP2+X3QSi/Qh5XnT9KJXRjH4=; b=N4/pi9ndB90KZGWJx3bEqbxMvsoTJNvNW7g/X/qr4RRK5sGCDDpi7N/xzbsdcOosBK6EBZQJCbaTfF27tgPyCA2m71FlPFA96jzwOiD+b4Tf1NE553qhq193onhjz4vD0wEs/45U96hlle9wY8hWwjr1B8DEsjdKUSMTZnTyFNwIIwHw+1aYhHY9T8oTdvgNHORP4U+d022ciO4qZaaArh2mXl3YuqGLnNlYl2AJud4UUEZ5JGRjXP12WfKz7Ou9v3SWy7i8klgna1gMYPDBRS+rpF8qG2gWIWrn+4yaBQPEDutpb4bmbtxCaLGHbSfVEAhsRuwhDjgHNfYWEFV44Q== 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=g/LvHPapjJdKZDyqZPqRP2+X3QSi/Qh5XnT9KJXRjH4=; b=IAZKbksMqGpfz6z+coN9O6bos4lnxSICdui/BgCkW/t29Z85tLhDf9Nxneb1fMQF474uGAx/Sx75buoywOoVhRWuZVbKTE+xgui39lR1FAvZLnK3kBEJMDelylCfOjTYQCU8a+7WUt02n+XzfoptDUK5nJN1c2xj/I9kBpRC61E= Received: from MWHPR1101MB2125.namprd11.prod.outlook.com (2603:10b6:301:4d::10) by CO1PR11MB4931.namprd11.prod.outlook.com (2603:10b6:303:9d::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3455.22; Fri, 9 Oct 2020 19:27:33 +0000 Received: from MWHPR1101MB2125.namprd11.prod.outlook.com ([fe80::6cbb:9c13:41f0:ce20]) by MWHPR1101MB2125.namprd11.prod.outlook.com ([fe80::6cbb:9c13:41f0:ce20%3]) with mapi id 15.20.3433.046; Fri, 9 Oct 2020 19:27:33 +0000 From: "Zurcher, Christopher J" To: "devel@edk2.groups.io" , "lersek@redhat.com" , "Yao, Jiewen" , "Jiang, Guomin" CC: "Wang, Jian J" , "Lu, XiaoyuX" , "Ard Biesheuvel (ARM address)" Subject: Re: [edk2-devel] [PATCH v2 1/2] CryptoPkg/OpensslLib: Add native instruction support for X64 Thread-Topic: [edk2-devel] [PATCH v2 1/2] CryptoPkg/OpensslLib: Add native instruction support for X64 Thread-Index: AQHWafWk4Fp7/vSvg0yxS46YX8nrdKk2MGcggAhJsvCACWVbYIAAKRzAgCM344CACdON8IAAvBfQgAki4UCABB4jAIAKAZgwgAJ6aQCAAHpTgA== Date: Fri, 9 Oct 2020 19:27:33 +0000 Message-ID: References: <20200804002429.3897-1-christopher.j.zurcher@intel.com> <20200804002429.3897-2-christopher.j.zurcher@intel.com> <162C7E6ED8CEF542.12673@groups.io> <1ce6123c-7616-30ad-07a0-30b6a5b51dec@redhat.com> <18e31a95-85e4-9c76-bdc1-5ffa0d32d9cd@redhat.com> In-Reply-To: <18e31a95-85e4-9c76-bdc1-5ffa0d32d9cd@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-reaction: no-action dlp-product: dlpe-windows authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-originating-ip: [50.53.185.44] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 5bec0120-3e59-4fb2-1a71-08d86c895f2b x-ms-traffictypediagnostic: CO1PR11MB4931: 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: Q8ocdfoxuJIQFfM+SVQgnvtlG45rc4WBfW1gaonL13GNECT/CzWxxGnLArvQPpuq9NdrGklJJBYV2TJmOGcvXG2w+1/ZYg0XCw1aN324L/EXOUQxEKtS4YCs/1coSMfwxXesvWJPaSYjFqXxHed/CTrzlkl93iDQVAsxTC8x4ZCPkJQE+x9OewZ0pWbU3gIKFWNO7bi6avUXF0EH4sIzLevSRqUYSC17B49isyAmLic4FHCRHNnRf4PDSva5qi42bD4X2h0Gr2ZPaNxT57E/hLlZeKY21letANhpE4g3eRb5CJaPu9Mj5gbQPzLpx4TpbrOIqxZoiD58ljVDKHGmEfK+BlCCUReQGfVLfStGMNZEEZ/2RS0WbzP7l1ZdGHEIuWnJzMeY2RhB2yQO+PYiwA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR1101MB2125.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(396003)(366004)(39860400002)(136003)(376002)(346002)(6636002)(54906003)(66556008)(66946007)(478600001)(64756008)(76116006)(83380400001)(7696005)(66446008)(4326008)(66476007)(83080400001)(53546011)(8936002)(186003)(966005)(2906002)(26005)(52536014)(33656002)(5660300002)(316002)(6506007)(55016002)(9686003)(86362001)(110136005)(8676002)(71200400001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: VMOcJ10Ho5eWogWQ5nQfw75BO8vB6uYJHL9kzbo25cJM7kbLHcEwhTwYVnckmpyrrOvRFU9Cw7eD1rLJuKnQ3aKxSEXCEEhsiBLaYje2EVT08mkMPaGQWs+UgWvcXSocr+wzrUpq7C/BeeQQIi3bXAZUjOk7JrbxjNWKKvGpbHPrXiR1I0ijkIrWAjAH7Zhlp+RXANv2E4+gUxroBjwiyhpzhbvKtfJGGIJ+dnHzLxe0Ozu9aRXkwGE/Nc3Yp1Bgr7ODBmbndlbEpMBaa+oX8FAnGOPZyL2lpc3794VfeE0RrEFtUQrcJjtg+U1k23mJoK30HA1wbV0UBA0y9Y3kZFuw509xLQboogt0/N/HR3Z0hCDK5MMc0k323gOksYgWsfp5iwirF6eHvyyUaAAaC88u452mkPkOKiVn/H8p8shCsQ9Rop2k12m9iC/d5dpfJ6NBMencX05Uk1i12dloSbj5zy6/3ZCbY6kRFCpMnvyN0kTH0mzswOk/j/D1x0XXUIgghBQ42CpNmJ9KnP3EeftZNyfkmb/xT/YTzATdqDDxqjmqTuVaEQVp4UNcZJWJocW9Eb8PZwFiJHFE/fRQZ8etWXL7TXndLI3rhEyd1wOJIFcYszn3qpSjgg1MpLkRiH/mVqf0MOEdy7gE4KFGPg== MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MWHPR1101MB2125.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5bec0120-3e59-4fb2-1a71-08d86c895f2b X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Oct 2020 19:27:33.4515 (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: BNoXXrYASMB6UM49khpVdLuhvnz0gCSxIxVFFkgdZ+IIWKIFKXC0d0NS6Ol5jE8ETuMR3KUbcbEMQfDQk2MgERgvb5v01hLrMlk2Xw0nink= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB4931 Return-Path: christopher.j.zurcher@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGVyZSBpcyB0aGUgZXJyb3IgbWVzc2FnZToNClsuLi5dL09wZW5zc2xMaWJYNjQvT1VUUFVUL1g2 NC9jcnlwdG8vYWVzL2Flc25pLW1iLXg4Nl82NC5paWk6MTc0NjogZXJyb3I6IHN5bWJvbCBgLi5p bWFnZWJhc2UnIHVuZGVmaW5lZA0KW2N1dCAxOCBsaW5lc10NClsuLi5dL09wZW5zc2xMaWJYNjQv T1VUUFVUL1g2NC9jcnlwdG8vYWVzL2Flc25pLW1iLXg4Nl82NC5paWk6MTc3NTogZXJyb3I6IHN5 bWJvbCBgLi5pbWFnZWJhc2UnIHVuZGVmaW5lZA0KR05VbWFrZWZpbGU6MzM5MDogcmVjaXBlIGZv ciB0YXJnZXQgJ1suLi5dT3BlbnNzbExpYlg2NC9PVVRQVVQvWDY0L2NyeXB0by9hZXMvYWVzbmkt bWIteDg2XzY0Lm9iaicgZmFpbGVkDQptYWtlOiAqKiogW1suLi5dL09wZW5zc2xMaWJYNjQvT1VU UFVUL1g2NC9jcnlwdG8vYWVzL2Flc25pLW1iLXg4Nl82NC5vYmpdIEVycm9yIDENCg0KVGhlIGZ1 bmN0aW9uYWxpdHkgaXMgZGVzY3JpYmVkIGhlcmUgaW4gIjcuNi4xIHdpbjY0OiBXcml0aW5nIFBv c2l0aW9uLUluZGVwZW5kZW50IENvZGUiIGFuZCAiNy42LjIgd2luNjQ6IFN0cnVjdHVyZWQgRXhj ZXB0aW9uIEhhbmRsaW5nIg0KaHR0cHM6Ly93d3cubmFzbS51cy94ZG9jLzIuMTMuMDJyYzMvaHRt bC9uYXNtZG9jNy5odG1sDQoNClRoZSB4ODZfNjQgaW1wbGVtZW50YXRpb24gaW4gT3BlblNTTCBz ZWVtcyB0byBhc3N1bWUgdGhhdCBidWlsZGluZyB3aXRoIE5BU00gZ3VhcmFudGVlcyBhIFdpbmRv d3MgdG9vbGNoYWluIGFuZCBXaW5kb3dzIGV4ZWN1dGlvbiBlbnZpcm9ubWVudC4NCg0KVGhhbmtz LA0KQ2hyaXN0b3BoZXIgWnVyY2hlcg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVo YWxmIE9mIExhc3psbyBFcnNlaw0KPiBTZW50OiBGcmlkYXksIE9jdG9iZXIgOSwgMjAyMCAwNDoz Nw0KPiBUbzogWnVyY2hlciwgQ2hyaXN0b3BoZXIgSiA8Y2hyaXN0b3BoZXIuai56dXJjaGVyQGlu dGVsLmNvbT47DQo+IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBZYW8sIEppZXdlbiA8amlld2VuLnlh b0BpbnRlbC5jb20+OyBKaWFuZywgR3VvbWluDQo+IDxndW9taW4uamlhbmdAaW50ZWwuY29tPg0K PiBDYzogV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBMdSwgWGlhb3l1WCA8 eGlhb3l1eC5sdUBpbnRlbC5jb20+Ow0KPiBBcmQgQmllc2hldXZlbCAoQVJNIGFkZHJlc3MpIDxh cmQuYmllc2hldXZlbEBhcm0uY29tPg0KPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRD SCB2MiAxLzJdIENyeXB0b1BrZy9PcGVuc3NsTGliOiBBZGQgbmF0aXZlDQo+IGluc3RydWN0aW9u IHN1cHBvcnQgZm9yIFg2NA0KPiANCj4gT24gMTAvMDgvMjAgMjE6NTYsIFp1cmNoZXIsIENocmlz dG9waGVyIEogd3JvdGU6DQo+ID4gTGFzemxvLCB0aGFua3MgZm9yIHNoYXJpbmcgdGhpcyBleHBs YW5hdGlvbiBhbmQgaGlzdG9yeS4gSSBoYXZlIGZvdW5kIHRoYXQNCj4gaW4gYWRkaXRpb24gdG8g dGhlICJjb21tb24iIGRlY2xhcmF0aW9uLCBPcGVuU1NMJ3MgU3RydWN0dXJlZCBFeGNlcHRpb24N Cj4gSGFuZGxpbmcgZnVuY3Rpb25hbGl0eSBhbHNvIGJyZWFrcyB0aGUgR0NDIGJ1aWxkIGJ5IGlu Y2x1ZGluZyAid3J0DQo+IC4uaW1hZ2ViYXNlIiBzdGF0ZW1lbnRzLiBTaW5jZSB3ZSBjYW5ub3Qg aW1wbGVtZW50IGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiB0aGUNCj4gY3VycmVudCAxLjEuMXggdmVy c2lvbnMgb2YgT3BlblNTTCwgbXkgcHJvcG9zYWwgaXMgdG8gZ28gYWhlYWQgd2l0aCB0aGlzDQo+ IHBhdGNoIG9ubHkgc3VwcG9ydGluZyBWUyBhbmQgTExWTSB0b29sY2hhaW5zIGZvciBub3cuDQo+ IA0KPiBDb3VsZCB5b3UgaW5jbHVkZSB0aGUgZXJyb3IgbWVzc2FnZSB3aXRoIHRoZSAid3J0IC4u aW1hZ2ViYXNlIiBzdHJpbmc/DQo+IA0KPiBJIGZvdW5kIHRoZSBzdHJpbmcgaW4gImNyeXB0by9w ZXJsYXNtL3g4Nl82NC14bGF0ZS5wbCIgYnV0IGRvbid0IHJlYWxseQ0KPiB1bmRlcnN0YW5kIHdo YXQgaXQncyBhYm91dC4NCj4gDQo+IEknZCBqdXN0IGxpa2UgdXMgdG8gbWFrZSBvbmUgYXR0ZW1w dCB0byByZXNvbHZlIHRoYXQgcHJvYmxlbTsgb3RoZXJ3aXNlDQo+IHBlcnNvbmFsbHkgSSdtIE9L IGlmIHRoaXMgbmV3IGZlYXR1cmUgaXMgbm90IGVuYWJsZWQgZm9yIEdDQyBhdCBmaXJzdC4NCj4g DQo+IFRoYW5rcw0KPiBMYXN6bG8NCj4gDQo+ID4NCj4gPiBUaGFua3MsDQo+ID4gQ2hyaXN0b3Bo ZXIgWnVyY2hlcg0KPiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZy b206IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQo+ID4+IFNlbnQ6IFRodXJzZGF5 LCBPY3RvYmVyIDEsIDIwMjAgMDU6NTgNCj4gPj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBa dXJjaGVyLCBDaHJpc3RvcGhlciBKDQo+ID4+IDxjaHJpc3RvcGhlci5qLnp1cmNoZXJAaW50ZWwu Y29tPjsgWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsNCj4gSmlhbmcsDQo+ID4+ IEd1b21pbiA8Z3VvbWluLmppYW5nQGludGVsLmNvbT4NCj4gPj4gQ2M6IFdhbmcsIEppYW4gSiA8 amlhbi5qLndhbmdAaW50ZWwuY29tPjsgTHUsIFhpYW95dVgNCj4gPHhpYW95dXgubHVAaW50ZWwu Y29tPjsNCj4gPj4gQXJkIEJpZXNoZXV2ZWwgKEFSTSBhZGRyZXNzKSA8YXJkLmJpZXNoZXV2ZWxA YXJtLmNvbT4NCj4gPj4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjIgMS8yXSBD cnlwdG9Qa2cvT3BlbnNzbExpYjogQWRkIG5hdGl2ZQ0KPiA+PiBpbnN0cnVjdGlvbiBzdXBwb3J0 IGZvciBYNjQNCj4gPj4NCj4gPj4gKHJlZnJlc2hpbmcgQXJkJ3MgYWRkcmVzcywgY29tbWVudHMg YmVsb3cpDQo+ID4+DQo+ID4+IE9uIDA5LzI5LzIwIDIzOjA4LCBadXJjaGVyLCBDaHJpc3RvcGhl ciBKIHdyb3RlOg0KPiA+Pj4gVGhlIEdDQyBidWlsZCBmYWlscyB3aXRoIHRoaXMgZXJyb3I6DQo+ ID4+Pg0KPiA+Pj4gYE9QRU5TU0xfaWEzMmNhcF9QJyByZWZlcmVuY2VkIGluIHNlY3Rpb24gYC50 ZXh0Lk9QRU5TU0xfY3B1aWRfc2V0dXAnDQo+ID4+PiBvZiAvdG1wL2NjSUlSQVlzLmx0cmFuczIw Lmx0cmFucy5vOiBkZWZpbmVkIGluIGRpc2NhcmRlZCBzZWN0aW9uDQo+ID4+PiBgQ09NTU9OJyBv Zg0KPiA+Pj4NCj4gPj4NCj4gL21udC9jL21zc3FsL3RpYW5vL0J1aWxkL092bWZYNjQvREVCVUdf R0NDNS9YNjQvQ3J5cHRvUGtnL0xpYnJhcnkvT3BlbnNzbExpYi8NCj4gPj4gT3BlbnNzbExpYlg2 NC9PVVRQVVQvT3BlbnNzbExpYlg2NC5saWIoeDg2XzY0Y3B1aWQub2JqKQ0KPiA+Pj4NCj4gPj4+ IFRoZSBjb2RlIGluIHF1ZXN0aW9uIGlzIGhlcmU6DQo+ID4+Pj4gc2VjdGlvbiAuQ1JUJFhDVSBy ZGF0YSBhbGlnbj04DQo+ID4+Pj4gICAgICAgICAgICAgICAgIERRICAgICAgT1BFTlNTTF9jcHVp ZF9zZXR1cA0KPiA+Pj4+DQo+ID4+Pj4gY29tbW9uICBPUEVOU1NMX2lhMzJjYXBfUCAxNg0KPiA+ Pg0KPiA+PiBGb3IgdGhlIFg2NCBhcmNoLCBPUEVOU1NMX2NwdWlkX3NldHVwKCkgaXMgaW1wbGVt ZW50ZWQgaW4NCj4gPj4NCj4gPj4gICBDcnlwdG9Qa2cvTGlicmFyeS9PcGVuc3NsTGliL29wZW5z c2wvY3J5cHRvL2NyeXB0bGliLmMNCj4gPj4NCj4gPj4gSXQgbWFrZXMgcmVmZXJlbmNlcyB0bzoN Cj4gPj4NCj4gPj4gICBleHRlcm4gdW5zaWduZWQgaW50IE9QRU5TU0xfaWEzMmNhcF9QWzRdOw0K PiA+Pg0KPiA+PiBUaGUgdmFyaWFibGUgaXMgZGVmaW5lZCBpbiBnZW5lcmF0ZWQgYXNzZW1ibHkg c291cmNlIGNvZGUuDQo+ID4+DQo+ID4+IFRoZXJlIHNlZW0gdG8gYmUgbXVsdGlwbGUgZ2VuZXJh dG9ycyAoZm9yIHZhcmlvdXMgYXNzZW1ibGVycyk6DQo+ID4+DQo+ID4+ICgxKSBjcnlwdG8vcGVy bGFzbS94ODZnYXMucGwgLS0gbGlrZWx5IGZvciB0aGUgR05VIGFzc2VtYmxlcjoNCj4gPj4NCj4g Pj4+ICAgICAgICBteSAkdG1wPSIuY29tbVx0JHtubWRlY29yfU9QRU5TU0xfaWEzMmNhcF9QLDE2 IjsNCj4gPj4NCj4gPj4gKDIpIGNyeXB0by9wZXJsYXNtL3g4Nm5hc20ucGwgLS0gbGlrZWx5IGZv ciBOQVNNOg0KPiA+Pg0KPiA+Pj4gJHtkcmRlY29yfWNvbW1vbiAgICAgICR7bm1kZWNvcn1PUEVO U1NMX2lhMzJjYXBfUCAxNg0KPiA+Pg0KPiA+PiAoMykgY3J5cHRvL3g4Nl82NGNwdWlkLnBsIC0t IGxpa2VseSBmb3IuLi4gPz8/DQo+ID4+DQo+ID4+PiAuY29tbSAgICAgT1BFTlNTTF9pYTMyY2Fw X1AsMTYsNA0KPiA+Pg0KPiA+PiBUaGV5IGFsbCBwdXQgdGhlIHZhcmlhYmxlIGluIHRoZSAiY29t bW9uIiBzZWN0aW9uLg0KPiA+Pg0KPiA+PiBUcmFja2luZyB0aGUgTkFTTSBnZW5lcmF0b3IgdGhy b3VnaCBhIG51bWJlciBvZiAiZ2l0IGJsYW1lIiBjb21tYW5kcywNCj4gPj4gSSd2ZSBlbmRlZCB1 cCBhdCBoaXN0b3JpY2FsIGNvbW1pdCAxMGU3ZDZkNTI2NTAgKCJTdXBwb3J0IGZvciBJQS0zMiBT U0UyDQo+ID4+IGluc3RydWN0aW9uIHNldC4iLCAyMDA0LTA1LTA2KS4gVGhpcyBjb21taXQgaW50 cm9kdWNlZCAiT1BFTlNTTF9pYTMyY2FwIg0KPiA+PiBhdCBvbmNlIGluIHRoZSBjb21tb24gc2Vj dGlvbiAtLSBzZWUgImNyeXB0by9wZXJsYXNtL3g4NnVuaXgucGwiLg0KPiA+Pg0KPiA+PiBOb3cs IHRoZSBOQVNNIG1hbnVhbCBzYXlzIHRoZSBmb2xsb3dpbmcgYWJvdXQgdGhlIGNvbW1vbiBzZWN0 aW9uOg0KPiA+Pg0KPiA+Pj4gNi43LiAnQ09NTU9OJzogRGVmaW5pbmcgQ29tbW9uIERhdGEgQXJl YXMNCj4gPj4+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ID4+ Pg0KPiA+Pj4gVGhlICdDT01NT04nIGRpcmVjdGl2ZSBpcyB1c2VkIHRvIGRlY2xhcmUgX2NvbW1v biB2YXJpYWJsZXNfLiAgQSBjb21tb24NCj4gPj4+IHZhcmlhYmxlIGlzIG11Y2ggbGlrZSBhIGds b2JhbCB2YXJpYWJsZSBkZWNsYXJlZCBpbiB0aGUgdW5pbml0aWFsaXplZA0KPiA+Pj4gZGF0YSBz ZWN0aW9uLCBzbyB0aGF0DQo+ID4+Pg0KPiA+Pj4gICAgICBjb21tb24gIGludHZhciAgNA0KPiA+ Pj4NCj4gPj4+ICAgIGlzIHNpbWlsYXIgaW4gZnVuY3Rpb24gdG8NCj4gPj4+DQo+ID4+PiAgICAg IGdsb2JhbCAgaW50dmFyDQo+ID4+PiAgICAgIHNlY3Rpb24gLmJzcw0KPiA+Pj4NCj4gPj4+ICAg ICAgaW50dmFyICByZXNkICAgIDENCj4gPj4+DQo+ID4+PiAgICBUaGUgZGlmZmVyZW5jZSBpcyB0 aGF0IGlmIG1vcmUgdGhhbiBvbmUgbW9kdWxlIGRlZmluZXMgdGhlIHNhbWUNCj4gPj4+IGNvbW1v biB2YXJpYWJsZSwgdGhlbiBhdCBsaW5rIHRpbWUgdGhvc2UgdmFyaWFibGVzIHdpbGwgYmUgX21l cmdlZF8sIGFuZA0KPiA+Pj4gcmVmZXJlbmNlcyB0byAnaW50dmFyJyBpbiBhbGwgbW9kdWxlcyB3 aWxsIHBvaW50IGF0IHRoZSBzYW1lIHBpZWNlIG9mDQo+ID4+PiBtZW1vcnkuDQo+ID4+DQo+ID4+ IFRoZSBjb21tb24gc2VjdGlvbiBpcyBhICpyZWFsbHkqIGJhZCBpZGVhIGZvciBDIGxhbmd1YWdl IHByb2plY3RzLA0KPiA+PiBiZWNhdXNlIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBleHRlcm5hbCBk ZWZpbml0aW9ucyBvZiBhbiBvYmplY3QgaW4gYQ0KPiA+PiBwcm9ncmFtLCB0aGVuIHRoYXQgc2hv dWxkIChwZXIgQyBsYW5ndWFnZSBzdGFuZGFyZCkgcHJldmVudCB0aGUNCj4gPj4gc3VjY2Vzc2Z1 bCBsaW5raW5nIG9mIHRoZSBwcm9ncmFtLCByYXRoZXIgdGhhbiB1bmRlcmdvIHNpbGVudCBkZWZp bml0aW9uDQo+ID4+IG1lcmdpbmcuDQo+ID4+DQo+ID4+IFRoaXMgaGFzIGNhdXNlZCBhY3R1YWws IGluZXhwbGljYWJsZSBidWdzIGluIGVkazIgLS0gaWRlbnRpY2FsbHkgbmFtZWQsDQo+ID4+IGJ1 dCBkaWZmZXJlbnRseSBzaXplZCwgYW5kIGVudGlyZWx5IGluZGVwZW5kZW50bHkgaW50ZWRlZCwg dmFyaWFibGVzDQo+ID4+IHdpdGggZXh0ZXJuYWwgbGlua2FnZSBhbmQgc3RhdGljIHN0b3JhZ2Ug ZHVyYXRpb24gZ290IHNpbGVudGx5IG1lcmdlZCwNCj4gPj4gcmF0aGVyIHRoYW4gYnJlYWtpbmcg dGhlIGJ1aWxkLiBJbiB0aGUgZW5kLCB3ZSB0cmFja2VkIHRob3NlIGRvd24gYW5kDQo+ID4+IG1h cmtlZCB0aGVtIGFsbCBTVEFUSUMuIEJ1dCBpbiBvcmRlciB0byBwcmV2ZW50IHN1Y2ggbm9uc2Vu c2UgaW4gdGhlDQo+ID4+IGZ1dHVyZSwgd2UgYWxzbyBmb3JiYWRlIHRoZSBjb21tb24gc2VjdGlv biBhbHRvZ2V0aGVyLiBMZXQgbWUgZmluZCB0aGF0DQo+ID4+IGNvbW1pdC4uLg0KPiA+Pg0KPiA+ PiBZZXMsIHBsZWFzZSBzZWUgMjE0YTNiNzk0MTdmICgiQmFzZVRvb2xzIEdDQzogYXZvaWQgdGhl IHVzZSBvZiBDT01NT04NCj4gPj4gc3ltYm9scyIsIDIwMTUtMTItMDgpLg0KPiA+Pg0KPiA+PiBT bywgbXkgZ3Vlc3MgaXMgdGhhdCB0aGlzIGludGVyZmVyZXMgd2l0aCBPcGVuU1NMJ3MgcGxhY2lu ZyBvZg0KPiA+PiAiT1BFTlNTTF9pYTMyY2FwX1AiIGluIHRoZSBjb21tb24gc2VjdGlvbi4NCj4g Pj4NCj4gPj4gV2l0aG91dCBrbm93aW5nIG1vcmUsIEknZCBoYXphcmQgdGhhdCB0aGlzIGlzIGEg YnVnIGluIE9wZW5TU0wuIFVubGVzcw0KPiA+PiB0aGV5IGhhdmUgYSBzdHJvbmcgcmVhc29uIGZv ciBpdCwgSSB0aGluayB3ZSBzaG91bGQgdHJ5IHRvIGNvbnRyaWJ1dGUgYQ0KPiA+PiBwYXRjaCB0 aGF0IHJlbW92ZXMgImNvbW1vbiIuDQo+ID4+DQo+ID4+IFRoZSBjb2RlIHNob3VsZCBwcm92aWRl IGV4YWN0bHkgb25lIGRlZmluaXRpb24gKGluIHRoZSBnZW5lcmF0ZWQNCj4gPj4gYXNzZW1ibHkg c291cmNlKSwgcHJvdmlkZSBvbmUgY2VudHJhbCAoZXh0ZXJuKSBkZWNsYXJhdGlvbiB0b28sIGlu IGENCj4gPj4gaGVhZGVyIGZpbGUsIHRoZW4gbGV0IGFsbCB1c2VycyBpbmNsdWRlIHRoZSBkZWNs YXJhdGlvbiB2aWEgdGhlIGhlYWRlcg0KPiA+PiBmaWxlLiBUaGUgb2JqZWN0IGZpbGUgYnVpbHQg ZnJvbSB0aGUgZ2VuZXJhdGVkIGFzc2VtYmx5IHNvdXJjZSBzaG91bGQgYmUNCj4gPj4gbGlua2Vk IGludG8gZWFjaCBmaW5hbCBleGVjdXRhYmxlLg0KPiA+Pg0KPiA+PiBGb3IgZXhhbXBsZSwgIkNy eXB0b1BrZy9MaWJyYXJ5L09wZW5zc2xMaWIvb3BlbnNzbC9jcnlwdG8vY3J5cHRsaWIuYyINCj4g Pj4gYWxyZWFkeSBjb3JyZWN0bHkgZGVjbGFyZXMgdGhlIHZhcmlhYmxlIGFzICJleHRlcm4iLg0K PiA+Pg0KPiA+PiBPdGhlcndpc2UsIGFzIGxhc3QgcmVzb3J0LCBJIGd1ZXNzIHdlIGNvdWxkIGF0 dGVtcHQgd29ya2luZyBpdCBhcm91bmQgYnkNCj4gPj4gYWRkaW5nIGJhY2sgIi1mY29tbW9uIiB0 byB0aGUgT3BlbnNzbExpYiBidWlsZCBmbGFncy4gOi8NCj4gPj4NCj4gPj4gVGhhbmtzLA0KPiA+ PiBMYXN6bG8NCj4gPg0KPiANCj4gDQo+IA0KPiANCj4gDQoNCg==