From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mx.groups.io with SMTP id smtpd.web11.5519.1600306420467495065 for ; Wed, 16 Sep 2020 18:33:40 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=rbg4vak5; spf=pass (domain: intel.com, ip: 134.134.136.20, mailfrom: jiewen.yao@intel.com) IronPort-SDR: qWLRbWPU7u9DIdTPZXbWmy7FICpfAnJyU75h9n4HgdnSOGOeyb71gft8vMskRD74g2Z9XlANs8 WYta2j9lYvOg== X-IronPort-AV: E=McAfee;i="6000,8403,9746"; a="147288839" X-IronPort-AV: E=Sophos;i="5.76,434,1592895600"; d="scan'208";a="147288839" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Sep 2020 18:33:39 -0700 IronPort-SDR: /3tInE6kTI62grHQwwVfWAWMmgOj2+fUPFwlpofEP8mg0v3apURMeis3DcyPw2KIY8hX+d51tW Q5r6YGFg3i1g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.76,434,1592895600"; d="scan'208";a="288561158" Received: from orsmsx604.amr.corp.intel.com ([10.22.229.17]) by fmsmga008.fm.intel.com with ESMTP; 16 Sep 2020 18:33:39 -0700 Received: from orsmsx603.amr.corp.intel.com (10.22.229.16) 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; Wed, 16 Sep 2020 18:33:39 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Wed, 16 Sep 2020 18:33:39 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.176) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Wed, 16 Sep 2020 18:33:38 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VVz34oCIlPmKn1BXzyWg7qGYdv79jgPL0yFpEAHzVwHmo77bIhtLf00GKPJiy/G5ZYxNldW2H2FHyKplSFeMUbrwTnLYVaoZtzF8jwt0v5tvcEQGOshhYomGSzyrlChq7KAyJPyDpU6SfGz/KULxirybb1qyssIbMCkobzK+eKRLbcIa6N2yswer9iRfnASBqxDt68SDSeavh+UH59eZC9inaoCjbRqqvHbRfW9xdyq9+Yrw1Ln1cr12r9ddLiziPdpkj1J0CkNU+yexcuRT48VwhF5AQ6kAQpcIWbarTJO784uAZEP1VYuuwYAajUEjKEzi/067jymwEGGFggZVeQ== 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=9b96yHiYkU0lxlhBvR8pkPjcOblb9AG+kGoU4gXTIZs=; b=InM/obrXi+igCaySmWIlZQPL3Qq/wmSuBEIi4yVJTmz+kZ+8biRg9+GzsaB0ACz14kOCje1DERG+pezMVpveVA/gZoijN2R2yVdvt86cDA0+JB/K61pkmy5TINBtOA7ZcjzlPNRx+TRj6C0cMRdiGolzHRcLYEGX1yQIDhGIGdHh/hCyNLwE1Pvs8CdNMz3ja8ZDzJ+oZCCxKhnKGkWKgbEwJmsxjpINdNZ6HkKBhdqSRkn67Yp5OhfKLCY3pNcXMezG6A9YJlGepGHY1ITYXEQppx/pM3VNtmt8WddBzTodw6YTvhcA3cbGVq3UCJM+8XxuX6pUCooFm3lPdz64kQ== 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=9b96yHiYkU0lxlhBvR8pkPjcOblb9AG+kGoU4gXTIZs=; b=rbg4vak5N5SmVjBfVSXj98KGXGlKpXarsMFvR6ORtDEwEK2n39QweIZjJpoxyNVyHcrv5IpKkRatzVnyzFpBTIFLdOnfYmPSGeamHpDyXS3S4AWPJLclnCOYigkwwKauam1U8DiUxs1HavOPIFzNc3tBx/xqW3Uc8BJTeF0RAqM= Received: from CY4PR11MB1288.namprd11.prod.outlook.com (2603:10b6:903:23::8) by CY4PR11MB1606.namprd11.prod.outlook.com (2603:10b6:910:d::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3370.18; Thu, 17 Sep 2020 01:33:37 +0000 Received: from CY4PR11MB1288.namprd11.prod.outlook.com ([fe80::163:9209:a92d:812]) by CY4PR11MB1288.namprd11.prod.outlook.com ([fe80::163:9209:a92d:812%6]) with mapi id 15.20.3391.011; Thu, 17 Sep 2020 01:33:37 +0000 From: "Yao, Jiewen" To: "Zurcher, Christopher J" , Laszlo Ersek , "devel@edk2.groups.io" CC: "Wang, Jian J" , "Lu, XiaoyuX" Subject: Re: [edk2-devel] [PATCH v3 1/3] CryptoPkg/BaseCryptLib: Add EVP (Envelope) Digest interface Thread-Topic: [edk2-devel] [PATCH v3 1/3] CryptoPkg/BaseCryptLib: Add EVP (Envelope) Digest interface Thread-Index: AQHWi8SZwaiPIBpx1UiYpbHmn+hJ4qlrG12AgAAJ7mCAAB+9gIAABF+QgAAlQwCAAJtogIAAAPMQ Date: Thu, 17 Sep 2020 01:33:36 +0000 Message-ID: References: <20200916005902.6114-1-christopher.j.zurcher@intel.com> <20200916005902.6114-2-christopher.j.zurcher@intel.com> <6ffd9a53-0fde-cf4b-240a-6703a3dfd48e@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: [192.198.147.202] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 68bb9558-7fa1-453f-112a-08d85aa9b2e3 x-ms-traffictypediagnostic: CY4PR11MB1606: 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: /Y2Cy7j7eOeJ49z4/mG1ZJaPQfDSyIWsyQJewl/+8JV4sRy+z89pNaVgz48xB5Wrtk5CR6KVsNk9tmBkIjEIK3zEgGwautcTqrEtIx2WIpY84ssmzBxhuAI8qEyoBtas2dZYHvyDL1yXT5gLuDoJ4PSrtj9mmPKJaLX9u145Oh6CiRbmATj10ZOWb5QACcBDf4/9rmKgVzdgwqPG7tB7VlrsY85rediWyoMcRyYI7SdBkfshKZulEC0gp3v3YKweD3I5gkxD8EsRQD5AeY1LRmAJXa6gNvSCTy3XpW3Iim/T9wLiDlN9EFA3W/FSZlKYk3AaeZLfv3u1z7xDigoLAITGbnuxJLi6DU4beW4YNPY0yXVplw0D32xMX8iUqzmhTh7oRrobXAsD9EjyGuYZlg== 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)(39860400002)(366004)(396003)(136003)(346002)(376002)(86362001)(8676002)(52536014)(55016002)(66556008)(110136005)(5660300002)(66476007)(33656002)(66946007)(64756008)(66446008)(83380400001)(2906002)(8936002)(4326008)(76116006)(54906003)(9686003)(26005)(186003)(6506007)(107886003)(53546011)(478600001)(7696005)(71200400001)(316002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: WabWixZYpiqw3THgfQIt+SJFX7pUp/VJQqH2TBKqxuEyTCeeUK39uFGdS9usqpNAUg+RiyqE3c/amfS51SnVLgh3iJ1Wm362ZnMVUDQRqiaq8MBAwdZlW1agms/xWzAdIMRaSduJS4r+67hoyYl+9fFco6EIn/TEzPZs8H6TnrSxuRVLKwCTHOwqf/21k4orWedWyIdtMQG3Awud/WjzdVFZz8LXea5xhCnzNExL4PtwrV3n3KsX3OPZUNXAW3ihdAMleRpOS24TKScLuiDe42QCT6D008Npq5N+xfDNNQq3xLb8KiXa4V6oChsCTZQ0pLOMeK8bKQKFDYVw3DSI0ghtIZZGkaGoJI1sHV6/A60kLNo/abvlkYSGZNeDnNI9Z33bh+kk3FjbIVKcj4KxKkxPdb4lveTNVsBk27JjiiQPhd/+ixSIluhz6vOZ9pXkJ7nX8jEANYuUYMmFHjGm/qYewkajqIGAkGU2m0gl+JTx3KO6Q6m7pIyN9jmBO6cgc5YIGWDqRmhP0q9GhHDVEE9G6wApW0epM/y4lgCENsxV4L1chtA7MP2FhUkSwZ8o6hGqRQE1OamDpldKhqNcLc+CAFsnTaOA16jHEZEm/N5LVgI+iaLsAnw6ivqsN84eaxUd28cmZr1rcwVC+M+DsA== 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: 68bb9558-7fa1-453f-112a-08d85aa9b2e3 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Sep 2020 01:33:36.9373 (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: 1U35fWUhAW6vxLV4oTQtg5KFXDETMCjc83neM9N9Us8oJyfsQUU1SijY8dBSZo6o+NwruYrMxzXlRyJYbCv5LQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR11MB1606 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 VGhhbmtzIHRvIGFzayB0aGlzIHF1ZXN0aW9uIENocmlzdG9waGVyLg0KDQpXaGVuIHdlIGNyZWF0 ZSB0aGUgQ3J5cHRvUGtnLCBvdXIgZ29hbCBpcyB0byBwaWNrIG9wZW5zc2wgYXMgaW1wbGVtZW50 YXRpb24gY2hvaWNlLiBXZSBkb27igJl0IHdhbnQgdG8gbWFuZGF0ZSBhbnkgRURLSUkgY29uc3Vt ZXIgdXNlIG9wZW5zc2wuDQoNClRoZSBFREtJSSBjb25zdW1lciBzaGFsbCBoYXZlIGZyZWVkb20g dG8gY2hvb3NlIHdoYXRldmVyIGNyeXB0byBsaWJyYXJ5IHRoZXkgd2FudCB0byB1c2UuIEV2ZW4g SW50ZWwgSVBQIGFuZCBtZWJkVExTIGFyZSBvcHRpb25zLiBBIHZlbmRvciBtYXkgY2hvb3NlIGEg R1BMIHdvbGZzc2wsIG9yIHZlbmRvciBwcm9wcmlldGFyeSBjbG9zZSBzb3VyY2UgaW1wbGVtZW50 YXRpb24uIFdlIGNob29zZSBvcGVuc3NsIGp1c3QgYmVjYXVzZSBpdCBpcyB0aGUgQlNEIGxpY2Vu c2UgYW5kIGl0IGlzIHVzZWQgd2lkZWx5IHdoZW4gd2UgbWFrZSBkZWNpc2lvbi4NCg0KVGhhdCBp cyB3aHkgd2Ugc3BlbmQgZWZmb3J0IHRvIGRlc2lnbiBCYXNlQ3J5cHRvTGliIEFQSSB0byBhYnN0 cmFjdCB0aGUgY3J5cHRvIGFjdGlvbiwgaW5zdGVhZCBvZiBjYWxsaW5nIG9wZW5zc2wgZnVuY3Rp b24gZGlyZWN0bHkgaW4gb3VyIGNvZGUuDQpXaGVuZXZlciB3ZSBhZGQgbmV3IEFQSSwgd2UgbmVl ZCBldmFsdWF0ZSBpZiBpdCBpcyBhcHBsaWNhYmxlIGZvciBhbnkgb3RoZXIgY3J5cHRvIGltcGxh bnRhdGlvbiBhbmQgaGF2ZSBuZWdhdGl2ZSBpbXBhY3QuDQoNClRoYXQgYXNzdW1wdGlvbiB0aGF0 IEVES0lJIG11c3QgbGluayBvcGVuc3NsIGlzIE5PVCBvdXIgb3JpZ2luYWwgaW50ZW50Lg0KRmVl bCBmcmVlIHRvIGRyb3AgdGhlIHBhdGNoIG9yIHJlamVjdCB0aGUgQnVnemlsbGEsIGlmIHlvdSB3 YW50Lg0KDQpUaGFuayB5b3UNCllhbyBKaWV3ZW4NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPiBGcm9tOiBadXJjaGVyLCBDaHJpc3RvcGhlciBKIDxjaHJpc3RvcGhlci5qLnp1cmNo ZXJAaW50ZWwuY29tPg0KPiBTZW50OiBUaHVyc2RheSwgU2VwdGVtYmVyIDE3LCAyMDIwIDk6MjEg QU0NCj4gVG86IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+OyBZYW8sIEppZXdlbiA8 amlld2VuLnlhb0BpbnRlbC5jb20+Ow0KPiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiBDYzogV2Fu ZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBMdSwgWGlhb3l1WCA8eGlhb3l1eC5s dUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIIHYzIDEvM10g Q3J5cHRvUGtnL0Jhc2VDcnlwdExpYjogQWRkIEVWUA0KPiAoRW52ZWxvcGUpIERpZ2VzdCBpbnRl cmZhY2UNCj4gDQo+IEppZXdlbiwNCj4gDQo+IFRoaXMgcGF0Y2ggc2V0IGFzc3VtZXMgdGhhdCBF REsyIGlzIGxpbmtlZCB3aXRoIE9wZW5TU0wgZm9yIHRoZSBmb3Jlc2VlYWJsZQ0KPiBmdXR1cmUu IFRoZSBlbmQgZ29hbCB3b3VsZCBiZSB0byBtb3ZlIGFsbCBhcHBsaWNhYmxlIENyeXB0byBhY2Nl c3MgdG8gdGhlIEVWUA0KPiBpbnRlcmZhY2UgYW5kIHJlbW92ZSB0aGUgaW5kaXZpZHVhbCBtb2R1 bGVzIHdlIG1haW50YWluIGZvciBlYWNoIGFsZ29yaXRobS4NCj4gVGhlIHByaW1hcnkgYmVuZWZp dCBoZXJlIGlzIHJlZHVjaW5nIGNvbXBsZXhpdHkgYW5kIGNvZGUgZHVwbGljYXRpb24uIFdpdGhv dXQNCj4gdGhpcyBlbmQgZ29hbCwgdGhpcyBwYXRjaCBzZXQgd2lsbCBub3QgYmUgcGFydGljdWxh cmx5IHVzZWZ1bC4NCj4gDQo+IElmIHRoZSBkZXNpZ24gZ29hbCBvZiBCYXNlQ3J5cHRMaWIgaXMg dG8gYWxsb3cgT3BlblNTTCB0byBiZSByZXBsYWNlZCBieSBvdGhlcg0KPiBjcnlwdG8gcHJvdmlk ZXJzLCBJIHNob3VsZCBhYmFuZG9uIHRoaXMgcGF0Y2ggc2V0LCBhbmQgd2UgY2FuIHNhdmUgdGhl IEVWUA0KPiB0cmFuc2l0aW9uIGZvciB3aGVuIG1vdmluZyB0byBPcGVuU1NMIDMgYmVjb21lcyBt YW5kYXRvcnkuIEF0IHRoYXQgdGltZSwgdGhlDQo+IENyeXB0WC5jIGZhbWlseSBjYW4gYmUgbW9k aWZpZWQgdG8gY2FsbCBFVlAgZnVuY3Rpb25zLg0KPiAoVGhpcyBjb3VsZCBldmVuIGJlIGRvbmUg dHJhbnNwYXJlbnRseSwgYnkgcmV0dXJuaW5nIFVJTlROIGZyb20gR2V0Q29udGV4dFNpemUNCj4g YW5kIHVzaW5nIHRoZSB1c2VyLXN1cHBsaWVkICJjb250ZXh0IiB0byBzdG9yZSB0aGUgT3BlblNT TC1zdXBwbGllZCBjb250ZXh0DQo+IHBvaW50ZXIuKQ0KPiBEZWxheWluZyBFVlAgYWRvcHRpb24g aW4gdGhpcyBjYXNlIHdvdWxkIGFsc28gYWxsb3cgbW9yZSB0aW1lIGZvciBwbGF0Zm9ybXMgdG8N Cj4gYWRvcHQgdGhlIENyeXB0byBTZXJ2aWNlcyBtb2RlbCwgd2hpY2ggc2hvdWxkIGhlbHAgb2Zm c2V0IHRoZSBzaXplIGltcGFjdC4NCj4gDQo+IFBsZWFzZSBsZXQgbWUga25vdyB3aGljaCBwYXRo IHNob3VsZCBiZSB0YWtlbi4NCj4gDQo+IFRoYW5rcywNCj4gQ2hyaXN0b3BoZXIgWnVyY2hlcg0K PiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IExhc3psbyBFcnNl ayA8bGVyc2VrQHJlZGhhdC5jb20+DQo+ID4gU2VudDogV2VkbmVzZGF5LCBTZXB0ZW1iZXIgMTYs IDIwMjAgMDk6MDUNCj4gPiBUbzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsg ZGV2ZWxAZWRrMi5ncm91cHMuaW87IFp1cmNoZXIsDQo+IENocmlzdG9waGVyIEoNCj4gPiA8Y2hy aXN0b3BoZXIuai56dXJjaGVyQGludGVsLmNvbT4NCj4gPiBDYzogV2FuZywgSmlhbiBKIDxqaWFu Lmoud2FuZ0BpbnRlbC5jb20+OyBMdSwgWGlhb3l1WCA8eGlhb3l1eC5sdUBpbnRlbC5jb20+DQo+ ID4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjMgMS8zXSBDcnlwdG9Qa2cvQmFz ZUNyeXB0TGliOiBBZGQgRVZQDQo+IChFbnZlbG9wZSkgRGlnZXN0IGludGVyZmFjZQ0KPiA+DQo+ ID4gT24gMDkvMTYvMjAgMTY6MTcsIFlhbywgSmlld2VuIHdyb3RlOg0KPiA+ID4gVGhhbmsgeW91 IExhc3psby4NCj4gPiA+IFlvdSBmb3JjZWQgbWUgdG8gcmVhZCB0aGUgY29kZSBhZ2FpbiBhbmQg bW9yZSBjYXJlZnVsbHkuIDotKQ0KPiA+ID4NCj4gPiA+IEkgYmVsaWV2ZSBJIHVuZGVyc3RhbmQg d2h5IHlvdSB1c2UgTlVMTCB0byBmcmVlIHRoZSBjb250ZXh0IG5vdyAtIHRvIHN1cHBvcnQNCj4g ZXJyb3IgcGF0aC4NCj4gPiA+DQo+ID4gPiBGaXJzdCwgSSBkaWQgaGF2ZSBzb21lIG5ldyB0aG91 Z2h0IGZvciBFVlAgQVBJLiBMZXTigJlzIGNvbnNpZGVyIDMgY2FzZXMsIDEpDQo+IEhhc2ggYWxs IGRhdGEgb25lIHRpbWUsIDIpIEhhc2ggdXBkYXRlDQo+ID4gZGF0YSBtdWx0aXBsZSB0aW1lcywg MykgRXJyb3IgZHVyaW5nIHVwZGF0ZS4NCj4gPiA+DQo+ID4gPiBBLiBJbiBjdXJyZW50IGRlc2ln biwgdGhlIEFQSSBzZXF1ZW5jZSBpczoNCj4gPiA+IDEpIEV2cE1kSGFzaEFsbCAoRGlnZXN0KQ0K PiA+ID4gMikgRXZwTWRJbml0LCBFdnBNZFVwZGF0ZSwgRXZwTWRVcGRhdGUsIC4uLiAsIEV2cE1k RmluYWwgKERpZ2VzdCkNCj4gPiA+IDMpIEV2cE1kSW5pdCwgRXZwTWRVcGRhdGUtPkVSUk9SLCBF dnBNZEZpbmFsIChOVUxMKQ0KPiA+ID4NCj4gPiA+IEIuIFdlIGNhbiBhdXRvIGZyZWUgY29udGV4 dCBpbiBFdnBNZFVwZGF0ZSBpbiBlcnJvciBwYXRoICAtIHRoZSBBUEkNCj4gc2VxdWVuY2UgaXM6 DQo+ID4gPiAxKSBFdnBNZEhhc2hBbGwgKERpZ2VzdCkNCj4gPiA+IDIpIEV2cE1kSW5pdCwgRXZw TWRVcGRhdGUsIEV2cE1kVXBkYXRlLCAuLi4gLCBFdnBNZEZpbmFsIChEaWdlc3QpDQo+ID4gPiAz KSBFdnBNZEluaXQsIEV2cE1kVXBkYXRlLT5FUlJPUg0KPiA+DQo+ID4gSSBkb24ndCBsaWtlICJC IiBiZWNhdXNlIGluIHRoZSBsb29wIGJvZHkgd2hlcmUgeW91IGNhbGwgRXZwTWRVcGRhdGUoKSwN Cj4gPiB5b3UgbWF5IGVuY291bnRlciBhbiBlcnJvciBmcm9tIGEgZGlmZmVyZW50IHNvdXJjZSB0 aGFuIEV2cE1kVXBkYXRlKCkNCj4gPiBpdHNlbGYuIEZvciBleGFtcGxlLCB5b3UgbWF5IGJlIHJl YWRpbmcgZGF0YSBmcm9tIHRoZSBuZXR3b3JrIG9yIGEgZGlzaw0KPiA+IGZpbGUuIElmIGZldGNo aW5nIHRoZSBuZXh0IGNodW5rIGZhaWxzLCB3ZSdkIHN0aWxsIHdhbnQgdG8gY2xlYW4gdXAgdGhl DQo+ID4gRVZQIE1EIGNvbnRleHQuIFRoZXJlZm9yZSwgaWYgRXZwTWRVcGRhdGUoKSB3b3VsZCBp dHNlbGYgaW52YWxpZGF0ZSB0aGUNCj4gPiBjb250ZXh0LCBpZiBpdCBmYWlsZWQsIHRoZW4gdGhh dCB3b3VsZCAqY29tcGxpY2F0ZSogdGhlIGVycm9yIHBhdGguICg9DQo+ID4gQ2xlYW4gdXAgdGhl IGNvbnRleHQgYWZ0ZXIgdGhlIGxvb3AgYm9keSAqb25seSogaWYgc29tZXRoaW5nIGRpZmZlcmVu dA0KPiA+IGZyb20gRXZwTWRVcGRhdGUoKSBmYWlsZWQuKQ0KPiA+DQo+ID4gPg0KPiA+ID4gQzog V2UgY2FuIHVzZSBOZXcvRnJlZSBzdHlsZSAtIHNpbWlsYXIgdG8gSE1BQw0KPiA+ID4gMSkgRXZw TWRIYXNoQWxsIChEaWdlc3QpDQo+ID4gPiAyKSBFdnBNZE5ldywgRXZwTWRJbml0LCBFdnBNZFVw ZGF0ZSwgRXZwTWRVcGRhdGUsIC4uLiAsIEV2cE1kRmluYWwNCj4gKERpZ2VzdCksIEV2cE1kRnJl ZQ0KPiA+ID4gMykgRXZwTWROZXcsIEV2cE1kSW5pdCwgRXZwTWRVcGRhdGUtPkVSUk9SLCBFdnBN ZEZyZWUNCj4gPg0KPiA+IFllcywgdGhpcyB3YXMgdGhlIGZpcnN0IHBhdHRlcm4sIHRoZSBvbmUg dGhhdCBjYXVzZWQgbWUgdG8gc2F5ICJwbGVhc2UNCj4gPiBkb24ndCBkbyB0aGlzIi4gSW4gdGhp cyBwYXR0ZXJuLCB0aGUgY29udGV4dCBtYXkgZXhpc3QgYmV0d2VlbiAiTmV3IiBhbmQNCj4gPiAi SW5pdCIsIGFuZCBhbHNvIGJldHdlZW4gIkZpbmFsIiBhbmQgIkZyZWUiLiBUaG9zZSB0d28gc3Rh dGVzIGFyZQ0KPiA+IHVzZWxlc3MgYW5kIG9ubHkgZ29vZCBmb3IgY2F1c2luZyBjb25mdXNpb24u DQo+ID4NCj4gPiBGb3IgZXhhbXBsZSwgYXJlIHlvdSBhbGxvd2VkIHRvIER1cGxpY2F0ZSBhIGNv bnRleHQgaW4gdGhvc2Ugc3RhdGVzPw0KPiA+IEl0J3MgYmVzdCB0byBwcmV2ZW50IGV2ZW4gdGhl ICphc2tpbmcqIG9mIHRoYXQgcXVlc3Rpb24uDQo+ID4NCj4gPiA+DQo+ID4gPiBJIGNoZWNrZWQg YmVsb3cgQVBJczoNCj4gPiA+IDEpIG9wZW5zc2wgKEVWUF9NRF9DVFhfbmV3LCBFVlBfRGlnZXN0 SW5pdF9leCwgRVZQX0RpZ2VzdFVwZGF0ZSwNCj4gRVZQX0RpZ2VzdEZpbmFsX2V4LCBFVlBfTURf Q1RYX2ZyZWUpDQo+ID4gPiAyKSBtYmVkdGxzIChtYmVkdGxzX3NoYTI1Nl9pbml0LCBtYmVkdGxz X3NoYTI1Nl9zdGFydHNfcmV0LA0KPiBtYmVkdGxzX3NoYTI1Nl91cGRhdGVfcmV0LCBtYmVkdGxz X3NoYTI1Nl9maW5pc2hfcmV0LA0KPiA+IG1iZWR0bHNfc2hhMjU2X2ZyZWUpDQo+ID4gPiAzKSBC YXNlQ3J5cHRvTGliIEhNQUMgKEhtYWNTaGEyNTZOZXcsIEhtYWNTaGEyNTZTZXRLZXksDQo+IEht YWNTaGEyNTZVcGRhdGUsIEhtYWNTaGEyNTZGaW5hbCwgSG1hY1NoYTI1NkZyZWUpDQo+ID4gPg0K PiA+ID4gQWxsIEFQSXMgaW5jbHVkZSBmcmVlIGZ1bmN0aW9uIHRvIGZyZWUgdGhlIGNvbnRleHQs IEkgZG9u4oCZdCB0aGluayBpdCBpcyBhIGJhZCBpZGVhDQo+IHRvIGhhdmUgRXZwTWRGcmVlKCkg QVBJLg0KPiA+ID4gSSB3b3VsZCBsaWtlIHRvIHByb3Bvc2Ugb3B0aW9uIC0gQy4NCj4gPg0KPiA+ IC0gSSBjYW5ub3QgY29tbWVudCBvbiBtYmVkdGxzICgyKS4NCj4gPg0KPiA+IC0gSSB0aGluayB0 aGUgY3VycmVudCBCYXNlQ3J5cHRMaWIgSE1BQyBBUElzICgzKSBhcmUgbm90IGdyZWF0LCBhbmQg d2UNCj4gPiBzaG91bGQgdXNlIHRoaXMgb3Bwb3J0dW5pdHkgdG8gaW1wcm92ZSB1cG9uIHRoZW0u DQo+ID4NCj4gPiAtIFJlZ2FyZGluZyBvcGVuc3NsICgxKSwgYXMgSSB1bmRlcnN0YW5kIGl0LCB0 aGUgc2l0dWF0aW9uIGlzIGRpZmZlcmVudA0KPiA+IGZyb20gZWRrMi4gSW4gT3BlblNTTCwgRVZQ X01EX0NUWCBpcyAqbm90KiBhbiBvcGFxdWUgdHlwZSAoZXhwcmVzc2VkIGluDQo+ID4gQyBsYW5n dWFnZSB0ZXJtcywgaXQgaXMgbm90IGFuICJpbmNvbXBsZXRlIiB0eXBlLCBidXQgYSAiY29tcGxl dGUiDQo+ID4gdHlwZSkuIFRoZXJlZm9yZSwgYW4gZXhwcmVzc2lvbiBzdWNoIGFzIHNpemVvZihF VlBfTURfQ1RYKSB3b3Jrcy4NCj4gPg0KPiA+IFRoZSBjb25zZXF1ZW5jZSBpcyB0aGF0IE9wZW5T U0wgY29kZSBpdHNlbGYgY2FuIHVzZSB0aGUgZm9sbG93aW5nIHN0eWxlOg0KPiA+DQo+ID4gdm9p ZCBmdW5jKHZvaWQpDQo+ID4gew0KPiA+ICAgRVZQX01EX0NUWCBjdHg7DQo+ID4NCj4gPiAgIEVW UF9EaWdlc3RJbml0X2V4KCZjdHgsIC4uLik7DQo+ID4gICAuLi4NCj4gPiAgIEVWUF9EaWdlc3RG aW5hbF9leCgmY3R4LCAuLi4pDQo+ID4gfQ0KPiA+DQo+ID4gSW4gb3RoZXIgd29yZHMsIE9wZW5T U0wtbmF0aXZlIGNvZGUgaXMgcGVybWl0dGVkIHRvIGtub3cgdGhlIGludGVybmFscw0KPiA+IG9m IEVWUF9NRF9DVFgsIHRoZXJlZm9yZSB0aGUgT3BlblNTTC1pbnRlcm5hbCBjb2RlIG1heSBhbGxv Y2F0ZQ0KPiA+IEVWUF9NRF9DVFggd2l0aCBtZWFucyB0aGF0IGFyZSAqZGlmZmVyZW50KiBmcm9t IEVWUF9NRF9DVFhfbmV3KCkgYW5kDQo+ID4gRVZQX01EX0NUWF9mcmVlKCkuDQo+ID4NCj4gPiBU aGUgY2FsbGVyIG9mIChJbml0LCBGaW5hbCkgbWF5IHVzZSAoTmV3LCBGcmVlKSBmb3IgbWVtb3J5 IG1hbmFnZW1lbnQsDQo+ID4gb3IgbWF5IHVzZSBzb21ldGhpbmcgY29tcGxldGVseSBkaWZmZXJl bnQgKGZvciBleGFtcGxlLCBsb2NhbCB2YXJpYWJsZXMpLg0KPiA+DQo+ID4gVGhlcmVmb3JlLCBv ZmZlcmluZyB0aGUgKEluaXQsIEZpbmFsKSBBUElzIHNlcGFyYXRlbHkgZnJvbSAoTmV3LCBGcmVl KQ0KPiA+IGlzIG1lYW5pbmdmdWwuDQo+ID4NCj4gPiBCdXQgdGhlIHNpdHVhdGlvbiBpbiBlZGsy IC0tIG9yIGFueSBvdGhlciBPcGVuU1NMICpjb25zdW1lciogLS0gaXMNCj4gPiBkaWZmZXJlbnQu IEluIGVkazIsIEVWUF9NRF9DVFggaXMgYW4gb3BhcXVlIHR5cGUgLS0gaW4gQyBsYW5ndWFnZSB0 ZXJtczoNCj4gPiBhbiAiaW5jb21wbGV0ZSIgdHlwZS4gT3BlblNTTCBkZWxpYmVyYXRlbHkgaGlk ZXMgdGhlIGludGVybmFscyBvZg0KPiA+IEVWUF9NRF9DVFguDQo+ID4NCj4gPiBTZWUgIkNyeXB0 b1BrZy9MaWJyYXJ5L09wZW5zc2xMaWIvb3BlbnNzbC9pbmNsdWRlL29wZW5zc2wvb3NzbF90eXAu aCI6DQo+ID4NCj4gPiA+IHR5cGVkZWYgc3RydWN0IGV2cF9tZF9jdHhfc3QgRVZQX01EX0NUWDsN Cj4gPg0KPiA+IGFuZCB0aGUgImV2cF9tZF9jdHhfc3QiIHN0cnVjdHVyZSB0eXBlIGlzIG9ubHkg ZGVmaW5lZCBpbg0KPiA+ICJDcnlwdG9Qa2cvTGlicmFyeS9PcGVuc3NsTGliL29wZW5zc2wvY3J5 cHRvL2V2cC9ldnBfbG9jYWwuaCIsIHdob3NlDQo+ID4gY29udGVudHMgLS0gSSB0aGluayEgLS0g T3BlblNTTCBjbGllbnQgY29kZSBjYW5ub3QsIG9yICpzaG91bGQgbm90KiwNCj4gPiByZWZlciB0 by4NCj4gPg0KPiA+IFRoaXMgbWVhbnMgdGhhdCBPcGVuU1NMIGNvbnN1bWVyIGNvZGUgY2FuICpv bmx5KiByZWx5IG9uDQo+ID4gRVZQX01EX0NUWF9uZXcoKSBhbmQgRVZQX01EX0NUWF9mcmVlKCks IGZvciBhbGxvY2F0aW5nIGFuZCByZWxlYXNpbmcgdGhlDQo+ID4gY29udGV4dCwgcmVzcGVjdGl2 ZWx5LiAic2l6ZW9mKEVWUF9NRF9DVFgpIiBpcyBub3QgcGVybWl0dGVkLCBhbmQNCj4gPiBkZWZp bmluZyBhIGxvY2FsIG9yIGdsb2JhbCB2YXJpYWJsZSBvZiB0eXBlIEVWUF9NRF9DVFggaXMgYWxz byBub3QgdmFsaWQuDQo+ID4NCj4gPiBUaGlzIG1lYW5zIHRoYXQgdGhlIG9ubHkgcmVhc29uIGZv ciBzZXBhcmF0aW5nIChJbml0LCBGaW5hbCkgZnJvbSAoTmV3LA0KPiA+IEZyZWUpIGZhbGxzIGF3 YXksIGluIE9wZW5TU0wgY29uc3VtZXIgY29kZS4gSW4gT3BlblNTTCBjb25zdW1lciBjb2RlLA0K PiA+IHRoZXJlIGlzIG5vIHJlYXNvbiB0byBrZWVwICpib3RoKiBwYWlycyBvZiBBUElzLg0KPiA+ DQo+ID4NCj4gPiBQbGVhc2Ugbm90ZSB0aGF0LCB0aGlzICh2ZXJ5IHBydWRlbnQpIGluZm9ybWF0 aW9uIGhpZGluZyAvIGVuY2Fwc3VsYXRpb24NCj4gPiBpbiBPcGVuU1NMIHVzZWQgdG8gYmUgdmlv bGF0ZWQgYnkgZWRrMiBpbiB0aGUgcGFzdCwgaW50ZW50aW9uYWxseS4NCj4gPiBUaGF0J3Mgd2hh dCB0aGUgSG1hY1h4eEdldENvbnRleHRTaXplKCkgQVBJcyB3ZXJlIGFib3V0IC0tIHRob3NlIEFQ SXMNCj4gPiBmb3JjZWZ1bGx5IGxlYWtlZCB0aGUgY29udGV4dCBzaXplcyB0byBjbGllbnQgY29k ZSwgc28gdGhhdCBjbGllbnQgY29kZQ0KPiA+IGluIGVkazIgY291bGQgcGVyZm9ybSBpdHMgb3du IGFsbG9jYXRpb24uDQo+ID4NCj4gPiBCdXQgaW4gPGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3Jl Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5Mj4sIHdlIGZpbmFsbHkNCj4gPiBlbGltaW5hdGVkIEht YWNYeHhHZXRDb250ZXh0U2l6ZSgpLiBBcyBhIHBhcnQgb2YgdGhhdCwgd2UgYWxzbw0KPiA+IHNp bXBsaWZpZWQgdGhlIEhNQUMgQVBJIC0tIG5vdGUgdGhhdCBJbml0IHdhcyByZXBsYWNlZCBieSBT ZXRLZXkuIEFuZA0KPiA+IGJlY2F1c2Ugd2Ugd2VyZSByZXdvcmtpbmcgYW4gZXhpc3RlbnQgQVBJ LCBJIGRpZG4ndCBwcm9wb3NlIHZlcnkNCj4gPiBpbnRydXNpdmUgY2hhbmdlcyAtLSBJIGRpZG4n dCBwcm9wb3NlIGZ1c2luZyBGaW5hbCBhbmQgRnJlZSwgZm9yIGV4YW1wbGUuDQo+ID4NCj4gPiBO b3csIHRoZSBFVlAgTUQgQVBJcyBhcmUganVzdCBiZWluZyBpbnRyb2R1Y2VkIHRvIGVkazIuIFNv IHdlIGhhdmUgYQ0KPiA+IGNoYW5jZSBhdCBnZXR0aW5nIHRoZW0gcmlnaHQsIGFuZCBtYWtpbmcg dGhlbSBtaW5pbWFsLg0KPiA+DQo+ID4gPiBTZWNvbmQsIEkgYmVsaWV2ZSBFVlAgaXMganVzdCBz b21ldGhpbmcgaW4gb3BlbnNzbC4gSXQgZG9lcyBub3QgbWVhbiB0aGF0IHdlDQo+ICpoYXZlIHRv KiBkZXNpZ24gQVBJIHRvIGZvbGxvdw0KPiA+IG9wZW5zc2wuDQo+ID4gPiBBZnRlciByZXRoaW5r IHRoZSBzaXplIGltcGFjdCwgSSBkbyBoYXZlIGNvbmNlcm4gdG8gbWVyZ2UgYWxsIEhhc2gNCj4g aW1wbGVtZW50YXRpb24gdG9nZXRoZXIgaW4gb25lIGZ1bmN0aW9uLg0KPiA+ID4gSXQgbWlnaHQg bWVhbnMgbm90aGluZyBpZiB0aGUgY3J5cHRvIGxpYnJhcnkgaXMgYmFzZWQgdXBvbiBvcGVuc3Ns Lg0KPiA+ID4gQnV0IGlmIHRoZSBjcnlwdG9saWIgaW1wbGVtZW50YXRpb24gaXMgYmFzZWQgdXBv biBvdGhlciBjcnlwdG8sIHN1Y2ggYXMgSW50ZWwNCj4gSVBQDQo+ID4NCj4gKGh0dHBzOi8vZ2l0 aHViLmNvbS9zbGltYm9vdGxvYWRlci9zbGltYm9vdGxvYWRlci90cmVlL21hc3Rlci9Cb290bG9h ZGVyQ28NCj4gbW1vblBrZy9MaWJyYXJ5L0lwcENyeXB0b0xpYikgb3IgbWJlZFRscw0KPiA+ICho dHRwczovL2dpdGh1Yi5jb20vanlhbzEvZWRrMi90cmVlL0RldmljZVNlY3VyaXR5L0NyeXB0b01i ZWRUbHNQa2cpLCB0aGVuDQo+IHdlIGNhbiBOT1QgZ2V0IHNpemUgYmVuZWZpdCBieSBzZXBhcmF0 aW5nDQo+ID4gdGhlIGhhc2ggYWxnb3JpdGhtLg0KPiA+ID4NCj4gPiA+DQo+ID4gPiBJIHdvdWxk IGxpa2UgdG8gcHJvcG9zZSBzZXBhcmF0ZSBFdnBNZHh4eC4NCj4gPiA+IEV2cE1kTmV3IC0+IFNo YTI1Nk5ldywgU2hhMzg0TmV3DQo+ID4gPiBFdnBNZEluaXQgLT4gU2hhMjU2SW5pdCwgU2hhMzg0 SW5pdA0KPiA+ID4gRXZwTWRVcGRhdGUgLT4gU2hhMjU2VXBkYXRlLCBTaGEzODRVcGRhdGUNCj4g PiA+IEV2cE1kRmluYWwgLT4gU2hhMjU2RmluYWwsIFNoYTM4NEZpbmFsDQo+ID4gPiBFdnBNZEZy ZWUgLT4gU2hhMjU2RnJlZSwgU2hhMzg0RnJlZQ0KPiA+DQo+ID4gSSBoYXZlIG5vIGNvbW1lbnQg b24gdGhpcy4NCj4gPg0KPiA+ID4gV2UgY2FuIGRvIHNpbWlsYXIgdGhpbmcgd2l0aCBIbWFjLCB0 byBkZXByZWNhdGUgU2hhMjU2R2V0Q29udGV4dFNpemUoKQ0KPiBBUEksDQo+ID4NCj4gPiBZZXMs IGdvb2QgaWRlYS4NCj4gPg0KPiA+ID4gYW5kIHJlcGxhY2UgY2FsbGVyIHdpdGggU2hhMjU2TmV3 KCkgLyBTaGEzODRGcmVlKCkNCj4gPg0KPiA+IEluZGVlZC4NCj4gPg0KPiA+IEJ1dCB0aGVuIC0t IHRoZXJlJ3Mgbm8gcmVhc29uIGxlZnQgZm9yIGtlZXBpbmcgKE5ldywgRnJlZSkgc2VwYXJhdGUg ZnJvbQ0KPiA+IChJbml0LCBGaW5hbCkuDQo+ID4NCj4gPiBUaGFua3MNCj4gPiBMYXN6bG8NCg0K