From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mx.groups.io with SMTP id smtpd.web12.184.1587605634936360721 for ; Wed, 22 Apr 2020 18:33:55 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=oZneLYqZ; spf=pass (domain: intel.com, ip: 192.55.52.88, mailfrom: guomin.jiang@intel.com) IronPort-SDR: V9UpTcUEp8Q5R2xB6oYrNnDB60WWAAwf6Re5D53GCnIxHjj0ick1F9fal84qCwUYohQBEvQTWY mBaENN1z9TNw== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2020 18:33:53 -0700 IronPort-SDR: wGFi9YKDl8azpY3oX3IYZ0rsCUQ5kpJa0RP03JZepCrQsyDSNiGevEBLHJOKhJ/7yQR5E5RUwl V5ZkpRKuO5IQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,305,1583222400"; d="scan'208";a="334810010" Received: from orsmsx101.amr.corp.intel.com ([10.22.225.128]) by orsmga001.jf.intel.com with ESMTP; 22 Apr 2020 18:33:53 -0700 Received: from orsmsx151.amr.corp.intel.com (10.22.226.38) by ORSMSX101.amr.corp.intel.com (10.22.225.128) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 22 Apr 2020 18:33:53 -0700 Received: from ORSEDG001.ED.cps.intel.com (10.7.248.4) by ORSMSX151.amr.corp.intel.com (10.22.226.38) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 22 Apr 2020 18:33:53 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.42) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 22 Apr 2020 18:33:53 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IDGKdhWRZy0tNBJzoI9TA5Xo7xNYPKDRDNo1iuKpzpoPox8HGUTfWZ6Je4jofDGFuh5wlDs0Y1dvHC3VSWl3NK+u70+olKvHTYaRNd6ibhpgEV4phngxteObp7iFcgBjb1Det6eT4/tO9pG1gutnAbRstVueKP3HdnnjL+g6tBi95KqvZ2N5A0uBnDmvmLw3h52PkyTu1DCWow5T9vN9IlW2VExmwMIVtDmVp8YE3/gRksYl8+T2goq5+LUgbo7JJMNv/ZotUIwOq0jHiy149Dy414w8QTKMuyTfZ+XSzuK7MXIDLYKMr+owQTbPEQ6eff/EECKXl+8togKGRcjIxw== 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=x2RNGxmL/ydiwzPAtXX9YbnfRu87kFcofFSfI5SaJtU=; b=L0bsBF05XVS2O0SIa7UnkuLGrVz+yf7yDOzCGkMDTe/ISGam6L91x7rno87ip3aLHSpBjA+0XckjxfoMItZomeW2OoUkmgD5fT+NnChxEGTkl1I/BAKJJ1ETQu4JtDouu4BeLz8PbegY0gio5PZe63ItfL/ZMZNyF9Be67+sPKVe3yDffRf0UBXmPx4HkETEXpEFKTEUYBeBAQohBCs2L0TsgI+L8fV899bafjCPszkISu6gBgF5a/0OTa0vy0s2MmFsLh+SzkDPfhAfSdq7cDWJlC3Ip6KIGsS5/EI6h5RZZS3Oso5LLJoi5HgeZ+AO1gOyg+U294wHizZ1W7O6/w== 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=x2RNGxmL/ydiwzPAtXX9YbnfRu87kFcofFSfI5SaJtU=; b=oZneLYqZP6fRc/Db2fyKLj2aTOGKJVP55u/JvUddG1czjmDO4hvZWOLH+P2BsKNprBU9M1XUyhYGI6WYhveJAlUMxsBgBf3/RJBR7gmFNRZwdWuZ7O+aYXRA+fR5mXt6G6XnxOveXjeKNlc8trj+U059kKIm89eyaZyBB4zX6I4= Received: from DM6PR11MB2955.namprd11.prod.outlook.com (2603:10b6:5:65::31) by DM6PR11MB3115.namprd11.prod.outlook.com (2603:10b6:5:66::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2921.29; Thu, 23 Apr 2020 01:33:51 +0000 Received: from DM6PR11MB2955.namprd11.prod.outlook.com ([fe80::ccd4:4b0d:535a:58be]) by DM6PR11MB2955.namprd11.prod.outlook.com ([fe80::ccd4:4b0d:535a:58be%7]) with mapi id 15.20.2921.030; Thu, 23 Apr 2020 01:33:51 +0000 From: "Guomin Jiang" To: "devel@edk2.groups.io" , "Jiang, Guomin" , "Ni, Ray" , "Kinney, Michael D" , "ard.biesheuvel@linaro.org" CC: "lersek@redhat.com" , "macarl@microsoft.com" Subject: Re: [edk2-devel] [PATCH] CryptoPkg/FltUsedLib: Add FltUsedLib for float. Thread-Topic: [edk2-devel] [PATCH] CryptoPkg/FltUsedLib: Add FltUsedLib for float. Thread-Index: AQHWBnIBaSdKR2Z4c0ubFoK9cqOLU6hg+RYAgAAoAACAAAPHgIAA+7QAgAAgDACAAQ3WgIAApm0AgBQyHQCAABynoIANyA8w Date: Thu, 23 Apr 2020 01:33:51 +0000 Message-ID: References: <03f18a49-6bd6-e753-e1bf-7e061d13f200@redhat.com> <14537.1585603662366515487@groups.io> <276d435b-4d94-0899-9710-1584d7baeb3c@redhat.com> <734D49CCEBEEF84792F5B80ED585239D5C4FC746@SHSMSX104.ccr.corp.intel.com> <16059D94172527B2.17445@groups.io> In-Reply-To: <16059D94172527B2.17445@groups.io> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.2.0.6 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: spf=none (sender IP is ) smtp.mailfrom=guomin.jiang@intel.com; x-originating-ip: [134.134.136.205] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 97b52d40-aa91-4c0f-3e2f-08d7e72660e7 x-ms-traffictypediagnostic: DM6PR11MB3115: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6430; x-forefront-prvs: 03827AF76E x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB2955.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(10019020)(366004)(39860400002)(346002)(396003)(376002)(136003)(478600001)(316002)(66446008)(186003)(2906002)(5660300002)(52536014)(4326008)(71200400001)(76116006)(110136005)(966005)(66946007)(45080400002)(54906003)(26005)(6506007)(7696005)(53546011)(8936002)(55016002)(86362001)(33656002)(66556008)(30864003)(9686003)(66476007)(81156014)(19627235002)(8676002)(64756008);DIR:OUT;SFP:1102; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: dth0MDWhPpYhXjX03PUrungj/xxlqJQZuWf62GLS/e/rkSYVruuE/fEEUSPRl/2pRoCeYc6zEHpQhSAyB7qc2IBkP+SfJCm8ucLGvWRdun+bDYdLT470/24/WSKWoLyJds0EygT9Nnk6Eo0r68MNJMAq/XJCd4LPfvQji59IxiUKGO/wFj/+FvsO63vMa4X3kdd8z9ui6n1rTCGZ8W3rBFAc4LRuqP6Vs94dxiWC4VTjRbm6tHEOT9VYdiM5j3xCSyO9B2zfU7ylVDCoukfpG//mSj2uj/VEnrVTAJuKImYGwTFJpIESizK6fVPhFew51plngBVoMeOzHRVOCAjUGWiUj2rgU8gZgBCZfLzQOBvEb8lX0C1foxDGdvpSJM/kleqPN5LWpYXV5Vuk7UIzb69eCimoHxOodR86ZWNZoXQZrraCF1LfYZMjzMMfUcNq5X5ftxP+JQ7xa5DymH7H0rrXTwTxFnkl6qzbkdVF0Pw0nzlncN3zia7xYG7Q2/dC4ORXzGH0NkJGCFnKaqRfdw== x-ms-exchange-antispam-messagedata: kQXd2vMe2MampKlntiPBNZTMwYDhfmsG9rHxEdKTUsY8B7vDWFH2zTRPronSlpVvWFTM8UsqVfs/3VdBRcraoQWjXvRj1IY6//eIIKyJh3/aG/tQ9QxeL3eUGwHZQZPv3RiJBX1vVC+IpPPc05/bpg== MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 97b52d40-aa91-4c0f-3e2f-08d7e72660e7 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Apr 2020 01:33:51.5006 (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: hp3phPETMmNRsN9guCVfwKzqlJ6gq2IaVpX4BZ/VGeFZoMvALPJeErFf+AoQO3Xo1KvPEOmhLF/7FpzwhUjSBg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB3115 Return-Path: guomin.jiang@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhlIHNpemUgY29tcGFyYXRpb24gYmV0d2VlbiB3aXRoIF9mbHR1c2VkIGFuZCB3aXRob3V0IF9m bHR1c2VkLCB1c2UgT3ZtZlBrZ1g2NCBhcyBidWlsZCB0YXJnZXQNCk92bWZYNjQgIEVGSV9GVl9U QUtFTl9TSVpFICB8ICAgV2l0aG91dCBfZmx0dXNlZCAgICAgICB8IFdpdGggX2ZsdHVzZWQNCkRY RUZWICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMHg0NmJi ZTAgICAgICAgICAgICAgICAgICAgICB8IDB4NDZiYmMwDQpGVk1BSU5fQ09NUEFDVCAgICAgICAg ICAgICAgICAgICAgIHwgIDB4MTJjOGEwICAgICAgICAgICAgICAgICAgICAgIHwgMHgxMmM3ZjAN ClBFSUZWICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDB4 NGNhZTggICAgICAgICAgICAgICAgICAgICAgICAgfCAweDRjYTY4DQpGcm9tIHRoZSByZXN1bHQs IGl0IHdpbGwgb2NjdXB5IGxlc3Mgc2l6ZSByYXRoZXIgdGhhbiBtb3JlIHNpemUuDQoNCkNvZGUg Q2hhbmdlIGFzIGJlbG93IGFuZCBidWlsZCBjb21tYW5kIGlzIGBgYGJ1aWxkIC1wIE92bWZQa2cv T3ZtZlBrZ1g2NCAtYiBERUJVRyAtdCBWUzIwMTkgLWEgWDY0IC1EVFBNX0VOQUJMRT1UUlVFYGBg DQoNCmRpZmYgLS1naXQgYS9DcnlwdG9Qa2cvTGlicmFyeS9JbnRyaW5zaWNMaWIvTWVtb3J5SW50 cmluc2ljcy5jIGIvQ3J5cHRvUGtnL0xpYnJhcnkvSW50cmluc2ljTGliL01lbW9yeUludHJpbnNp Y3MuYw0KaW5kZXggOTRmZTM0MWJlYy4uYzQxMzY5MTZkMCAxMDA2NDQNCi0tLSBhL0NyeXB0b1Br Zy9MaWJyYXJ5L0ludHJpbnNpY0xpYi9NZW1vcnlJbnRyaW5zaWNzLmMNCisrKyBiL0NyeXB0b1Br Zy9MaWJyYXJ5L0ludHJpbnNpY0xpYi9NZW1vcnlJbnRyaW5zaWNzLmMNCkBAIC0yLDcgKzIsNyBA QA0KICAgSW50cmluc2ljIE1lbW9yeSBSb3V0aW5lcyBXcmFwcGVyIEltcGxlbWVudGF0aW9uIGZv ciBPcGVuU1NMLWJhc2VkDQogICBDcnlwdG9ncmFwaGljIExpYnJhcnkuDQoNCi1Db3B5cmlnaHQg KGMpIDIwMTAgLSAyMDE5LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48 QlI+DQorQ29weXJpZ2h0IChjKSAyMDEwIC0gMjAyMCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCBy aWdodHMgcmVzZXJ2ZWQuPEJSPg0KIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1 c2UtUGF0ZW50DQoNCiAqKi8NCkBAIC0xMywxNiArMTMsNiBAQCBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KDQogdHlwZWRlZiBVSU5UTiAgc2l6ZV90Ow0KDQot I2lmIGRlZmluZWQoX19HTlVDX18pIHx8IGRlZmluZWQoX19jbGFuZ19fKQ0KLSAgI2RlZmluZSBH TE9CQUxfVVNFRCBfX2F0dHJpYnV0ZV9fKCh1c2VkKSkNCi0jZWxzZQ0KLSAgI2RlZmluZSBHTE9C QUxfVVNFRA0KLSNlbmRpZg0KLQ0KLS8qIE9wZW5TU0wgd2lsbCB1c2UgZmxvYXRpbmcgcG9pbnQg c3VwcG9ydCwgYW5kIEMgY29tcGlsZXIgcHJvZHVjZXMgdGhlIF9mbHR1c2VkDQotICAgc3ltYm9s IGJ5IGRlZmF1bHQuIFNpbXBseSBkZWZpbmUgdGhpcyBzeW1ib2wgaGVyZSB0byBzYXRpc2Z5IHRo ZSBsaW5rZXIuICovDQotaW50ICBHTE9CQUxfVVNFRCBfZmx0dXNlZCA9IDE7DQotDQogLyogU2V0 cyBidWZmZXJzIHRvIGEgc3BlY2lmaWVkIGNoYXJhY3RlciAqLw0KIHZvaWQgKiBtZW1zZXQgKHZv aWQgKmRlc3QsIGludCBjaCwgc2l6ZV90IGNvdW50KQ0KIHsNCmRpZmYgLS1naXQgYS9NZGVQa2cv TGlicmFyeS9CYXNlTGliL0Jhc2VMaWIuaW5mIGIvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9CYXNl TGliLmluZg0KaW5kZXggMzU4NmJlYjBhYi4uYmFiMzFjMDdjNyAxMDA2NDQNCi0tLSBhL01kZVBr Zy9MaWJyYXJ5L0Jhc2VMaWIvQmFzZUxpYi5pbmYNCisrKyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VM aWIvQmFzZUxpYi5pbmYNCkBAIC0xLDcgKzEsNyBAQA0KICMjIEBmaWxlDQogIyAgQmFzZSBMaWJy YXJ5IGltcGxlbWVudGF0aW9uLg0KICMNCi0jICBDb3B5cmlnaHQgKGMpIDIwMDcgLSAyMDE5LCBJ bnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQorIyAgQ29weXJpZ2h0 IChjKSAyMDA3IC0gMjAyMCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQu PEJSPg0KICMgIFBvcnRpb25zIGNvcHlyaWdodCAoYykgMjAwOCAtIDIwMDksIEFwcGxlIEluYy4g QWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQogIyAgUG9ydGlvbnMgY29weXJpZ2h0IChjKSAyMDEx IC0gMjAxMywgQVJNIEx0ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQogIw0KQEAgLTYwLDYg KzYwLDcgQEANCiAgIFN0cmluZy5jDQogICBGaWxlUGF0aHMuYw0KICAgQmFzZUxpYkludGVybmFs cy5oDQorICBGbHRVc2VkLmMgICAgICAgICAgICAgICB8IE1TRlQNCg0KIFtTb3VyY2VzLklhMzJd DQogICBJYTMyL1dyaXRlVHIubmFzbQ0KZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VM aWIvRmx0VXNlZC5jIGIvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9GbHRVc2VkLmMNCm5ldyBmaWxl IG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwLi5jMDY1NTk0MjY2DQotLS0gL2Rldi9udWxs DQorKysgYi9NZGVQa2cvTGlicmFyeS9CYXNlTGliL0ZsdFVzZWQuYw0KQEAgLTAsMCArMSwxNCBA QA0KKy8qKiBAZmlsZQ0KKyAgRGVjbGFyZSBfZmx0dXNlZCBzeW1ib2wgZm9yIE1TVkMNCisNCisg IE1TVkMgbmVlZCB0aGlzIHN5bWJvbCBmb3IgZmxvYXQsIGFuZGQgaXQgaGVyZSB0byBmZWVkIE1T VkMuIGl0IG1heSByZW1vdmUNCisgIGlmIE1TVkMgbm90IG5lZWQgaXQgYW55IG1vcmUuDQorDQor ICBDb3B5cmlnaHQgKGMpIDIwMjAgLSAyMDIwLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0 cyByZXNlcnZlZC48QlI+DQorICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNl LVBhdGVudA0KKyoqLw0KKw0KKy8vDQorLy8gSnVzdCBmb3IgTVNWQyBmbG9hdA0KKy8vDQoraW50 IF9mbHR1c2VkID0gMHgxOw0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206 IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9m IEd1b21pbg0KPiBKaWFuZw0KPiBTZW50OiBUdWVzZGF5LCBBcHJpbCAxNCwgMjAyMCAzOjAxIFBN DQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT47 IEtpbm5leSwgTWljaGFlbCBEDQo+IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IGFyZC5i aWVzaGV1dmVsQGxpbmFyby5vcmcNCj4gQ2M6IGxlcnNla0ByZWRoYXQuY29tOyBtYWNhcmxAbWlj cm9zb2Z0LmNvbQ0KPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSF0gQ3J5cHRvUGtn L0ZsdFVzZWRMaWI6IEFkZCBGbHRVc2VkTGliIGZvcg0KPiBmbG9hdC4NCj4gDQo+IFN1bW1hcml6 ZSBjdXJyZW50IHN0YXR1czoNCj4gDQo+IFByb2JsZW0gU3RhdGVtZW50Og0KPiBPcGVuc3NsIHJl cXVpcmUgX2ZsdHVzZWQgdG8gYmUgZGVmaW5lZCBhcyBhIGNvbnN0YW50IGFueXdoZXJlIGZsb2F0 aW5nIHBvaW50DQo+IGlzIHVzZWQuDQo+IEl0IG1heSB1c2UgZmxvYXQgb3V0IG9mIGVkazIgdHJl ZSBhbmQgbmVlZCBfZmx0dXNlZCwgZm9yIGV4YW1wbGUsIE1pY3Jvc29mdOKAmXMNCj4gT25TY3Jl ZW5LZXlib2FyZCBhbmQgVWlUb29sS2l0Lg0KPiANCj4gQ3VycmVudCBQcm9wb3NhbCBhcyBiZWxv dzoNCj4gDQo+IFByb3Bvc2FsIDE6IEFkZCBGbHRVc2VkLmMgaW50byBleGlzdCBsaWJyYXJ5DQo+ IERldGFpbDogQWRkIEZsdFVzZWQuYyBpbnRvIEVudHJ5UG9pbnRMaWIoUEVJTSwgRFhFKS4NCj4g UmVjb21tZW5kOiBBcmQgQmllc2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz4NCj4g QXBwcm92ZTogTGFzemxvIEVyc2VrIGxlcnNla0ByZWRoYXQuY29tDQo+IE5ldHVhbDogTWljaGFl bCBEIEtpbm5leSA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+IEJlbmVmaXQ6IERvZXNu 4oCZdCBuZWVkIG1vZGlmeSBldmVyeSAuZHNjIGRlc2NyaXB0aW9uIGZpbGUuDQo+IERlZmVjdGlv bjogSSB0ZXN0IHRoYXQgaXQgd2lsbCBmYWlsIGJlY2F1c2Ugb2YgL0dMIG9wdGlvbiwgdGhlIGVy cm9yIHNob3cgZmF0YWwNCj4gZXJyb3IgTE5LMTIzNzogZHVyaW5nIGNvZGUgZ2VuZXJhdGlvbiwg Y29tcGlsZXIgaW50cm9kdWNlZCByZWZlcmVuY2UgdG8NCj4gc3ltYm9sICdfZmx0dXNlZCcgZGVm aW5lZCBpbiBtb2R1bGUNCj4gJ1VlZmlBcHBsaWNhdGlvbkVudHJ5UG9pbnQubGliKEZsdFVzZWQu b2JqKScgY29tcGlsZWQgd2l0aCAvR0wNCj4gDQo+IFByb3Bvc2FsIDI6IERlZmluZSBOVUxMIGxp YnJhcnkNCj4gUmVjb21tZW5kOiBNaWNoYWVsIEQgS2lubmV5IG1pY2hhZWwuZC5raW5uZXlAaW50 ZWwuY29tDQo+IE9wcG9zZTogU2VhbiBzZWFuLmJyb2dhbj1taWNyb3NvZnQuY29tQGdyb3Vwcy5p byAsIEFyZCBCaWVzaGV1dmVsDQo+IDxhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPg0KPiBCZW5l Zml0OiBJIHRlc3QgaXQgYW5kIHByb3ZlIHRoYXQgaXQgaXMgZXhlY3V0YWJsZS4NCj4gRGVmZWN0 aW9uOiBJdCBpcyByZXF1aXJlZCB0aGF0IG1vZGlmeSBldmVyeSBkZXNjcmlwdGlvbiBmaWxlLg0K PiBEZWZlY3Rpb246IEl0IG5lZWQgYmUgdmVyeSBjYXJlZnVsIHRoYXQgaXQgc2hvdWxkIG9ubHkg YXBwbHkgc29tZSBtb2R1bGUNCj4gdHlwZShQRUlNLCBEWEVfRFJJVkVSLCBVRUZJX0FQUExJQ0FU SU9OKSByYXRoZXIgdGhhbiBhbGwuDQo+IERlZmVjdGlvbjogQnVpbGQgYnJlYWsgdXAuDQo+IEFj dGlvbiBSZXF1aXJlZDogTmVlZCBldmFsdWF0ZSB0aGUgYWZmZWN0aW9uIG9uIHNpemUuDQo+IENv bnNpZGVyYXRpb246IEFkZCBQQ0QgdG8gY29udHJvbCB0aGUgZmVhdHVyZQ0KPiANCj4gUHJvcG9z YWwgMzogRGVmaW5lIEZsdFVzZWRMaWINCj4gRGV0YWlsOiBEZWZpbmUgRmx0VXNlZExpYiBhbmQg YWRkIGRlcGVuZGVuY2UNCj4gT3Bwb3NlOiBBcmQgQmllc2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxA bGluYXJvLm9yZz4NCj4gQmVuZWZpdDogRG9lc27igJl0IG5lZWQgY2FyZSB0aGF0IHdoaWNoIG1v ZHVsZSB3aWxsIHVzZSBpdCwgd2Ugd2lsbCBleHBsaWNpdGx5DQo+IHBvaW50IGl0IGluIGNvbXBv bmVudCBmaWxlLg0KPiBEZWZlY3Rpb246IE1vcmUgY29tcGxleCwgSXQgaXMgcmVxdWlyZWQgdGhh dCBtb2RpZnkgZXZlcnkgZGVzY3JpcHRpb24gZmlsZQ0KPiBhbmQgbW9kaWZ5IGNvbXBvbmVudCBt ZWFud2hpbGUuDQo+IERlZmVjdGlvbjogQnVpbGQgYnJlYWt1cA0KPiANCj4gVGhhbmtzDQo+IGd1 b21pbg0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IGRldmVs QGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIE5pLA0K PiBSYXkNCj4gPiBTZW50OiBUdWVzZGF5LCBBcHJpbCAxNCwgMjAyMCAxOjAzIFBNDQo+ID4gVG86 IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBLaW5uZXksIE1pY2hhZWwgRA0KPiA+IDxtaWNoYWVsLmQu a2lubmV5QGludGVsLmNvbT47IGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc7IEtpbm5leSwNCj4g PiBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+IENjOiBsZXJzZWtA cmVkaGF0LmNvbTsgbWFjYXJsQG1pY3Jvc29mdC5jb20NCj4gPiBTdWJqZWN0OiBSZTogW2VkazIt ZGV2ZWxdIFtQQVRDSF0gQ3J5cHRvUGtnL0ZsdFVzZWRMaWI6IEFkZCBGbHRVc2VkTGliDQo+ID4g Zm9yIGZsb2F0Lg0KPiA+DQo+ID4gVUVGSSBzcGVjIGFsbG93cyB1c2luZyBmbG9hdCBvcGVyYXRp b24gc28gYXNraW5nIG1vZHVsZSBkZXZlbG9wZXJzDQo+ID4gYXZvaWQgdXNpbmcgZmxvYXQgbWF5 IG5vdCBtYWtlIHNlbnNlLiBFdmVuDQo+ID4gVWVmaUNwdVBrZ1xMaWJyYXJ5XEJhc2VVZWZpQ3B1 TGliXA0KPiA+IHByb3ZpZGVzIHJvdXRpbmUgdG8gaW5pdGlhbGl6ZSBmbG9hdCBzdXBwb3J0IGZv ciBYODYuDQo+ID4NCj4gPiBHaXZlbiBBUk0gYWxyZWFkeSB1c2VzIE5VTEwgbGlicmFyeSBjbGFz cyBtZWNoYW5pc20gdG8gc3VwcGx5IHRoZQ0KPiA+IGNvbXBpbGVyIHN0dWIsIEkgcHJlZmVyIFg4 NiBhbGlnbnMgdG8gdGhlIEFSTSBzdHlsZS4NCj4gPg0KPiA+IFRoZSBvbmx5IHVuc3VyZSB0aGlu ZyBpcyB0aGUgc2l6ZSBpbXBhY3Qgd2hlbiBhIG1vZHVsZSBpcyBub3QgdXNpbmcNCj4gPiBmbG9h dC4gV2UgZXhwZWN0IHRoZXJlIGlzIG5vIHNpemUgaW1wYWN0IHdoZW4gYSBtb2R1bGUgaXMgbm90 IHVzaW5nIGZsb2F0Lg0KPiA+DQo+ID4gVGhhbmtzLA0KPiA+IFJheQ0KPiA+DQo+ID4gPiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8g PGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YNCj4gPiBNaWNoYWVsDQo+ID4gPiBE IEtpbm5leQ0KPiA+ID4gU2VudDogVGh1cnNkYXksIEFwcmlsIDIsIDIwMjAgMTI6MzggQU0NCj4g PiA+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgYXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZzsg S2lubmV5LCBNaWNoYWVsDQo+ID4gPiBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4g PiA+IENjOiBsZXJzZWtAcmVkaGF0LmNvbTsgbWFjYXJsQG1pY3Jvc29mdC5jb20NCj4gPiA+IFN1 YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBDcnlwdG9Qa2cvRmx0VXNlZExpYjogQWRk DQo+ID4gPiBGbHRVc2VkTGliIGZvciBmbG9hdC4NCj4gPiA+DQo+ID4gPiBIaSBBcmQsDQo+ID4g Pg0KPiA+ID4gSSB0aGluayBhZGRpbmcgYSBkZXBlbmRlbmN5IGluIHRoZSBtb2R1bGUgZW50cnkg cG9pbnQgbGlicyBpcyBhbHNvDQo+ID4gPiBnb29kIHdheSB0byBndWFyYW50ZWUgYW4gaW50cmlu c2ljIGxpYiBpcyBhdmFpbGFibGUuICBJIGFncmVlIHRoYXQNCj4gPiA+IGl0IGNhbiBwcm92aWRl IG1vZHVsZSB0eXBlIGFuZCBhcmNoIHNwZWNpZmljIG1hcHBpbmdzLiAgVGhlIE5VTEwgbGliDQo+ ID4gPiBpbnN0YW5jZSBjYW4gZG8gdGhlIHNhbWUgaWYgdGhlIE5VTEwgaW5zdGFuY2UgaXMgbGlz dGVkIGluIHRoZQ0KPiA+ID4gbW9kdWxlL2FyY2ggc3BlY2lmaWMgbGlicmFyeSBjbGFzc2VzIHNl Y3Rpb25zLiBhIGZldyBleGFtcGxlIHNlY3Rpb24NCj4gPiA+IG5hbWVzLg0KPiA+ID4NCj4gPiA+ IFtMaWJyYXJ5Q2xhc3Nlcy5BUk0uUEVJTSwgTGlicmFyeUNsYXNzZXMuQUFSQ0g2NC5QRUlNXQ0K PiA+ID4NCj4gPiA+IFtMaWJyYXJ5Q2xhc3Nlcy5JQTMyLlVFRklfRFJJVkVSXQ0KPiA+ID4NCj4g PiA+IFtMaWJyYXJ5Q2xhc3Nlcy5YNjQuRFhFX0RSSVZFUl0NCj4gPiA+DQo+ID4gPiBTbyBlaXRo ZXIgd2F5LCB0aGUgRFNDIGZpbGVzIG5lZWQgdG8gcHJvdmlkZSB0aGUgbGlicmFyeSBtYXBwaW5n Lg0KPiA+ID4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZXNlDQo+ID4gPiAyIGFwcHJv YWNoZXMgaXMgdGhhdCBhZGRpbmcgYSBkZXBlbmRlbmN5IHRvIHRoZSBtb2R1bGUgZW50cnkgcG9p bnQNCj4gPiA+IGxpYnMgdXNlcyBhIGZvcm1hbGx5IGRlZmluZWQgbGlicmFyeSBjbGFzcyBuYW1l IGZvciB0aGUgaW50cmluc2ljDQo+ID4gPiBmdW5jdGlvbnMgdnMuDQo+ID4gPiB0aGUgdW4tbmFt ZWQgTlVMTCBsaWJyYXJ5IGluc3RhbmNlLiAgQSBmb3JtYWxseSBkZWZpbmVkIGxpYnJhcnkNCj4g PiA+IGNsYXNzIG5hbWUgaXMgYmV0dGVyIHN1cHBvcnRlZCBmb3IgdGhpbmdzIGxpa2UgdW5pdCB0 ZXN0cyBmcm9tIHRoZQ0KPiA+ID4gVW5pdFRlc3RGcmFtZXdvcmtQa2cuDQo+ID4gPg0KPiA+ID4g VGhlIGZsdHVzZWQgaXNzdWUgd291bGQgbm90IGdvIGF3YXkgb2Ygd2UgcmVtb3ZlZCB0aGUgZmxv YXQgdXNhZ2UNCj4gPiA+IGZvciBPcGVuU1NMLiAgT25lIG9yIG1vcmUgb3RoZXIgbGlicyBvciB0 aGUgbW9kdWxlIGNvdWxkIHVzZQ0KPiA+ID4gZmxvYXQvZG91YmxlIHR5cGVzIGFuZCB0aGlzIGlz c3VlIHdvdWxkIHBvcCB1cCBhZ2Fpbi4gIEkgZG8gYWdyZWUgaXQNCj4gPiA+IHdvdWxkIGJlIGNs ZWFuZXIgaWYgd2UgY291bGQgdXNlIE9wZW5TU0wgd2l0aG91dCBmbG9hdGluZyBwb2ludC4NCj4g PiA+DQo+ID4gPiBJIHRoaW5rIGFkZGluZyBhbiBpbnRyaW5zaWMgbGliIGZvciBJQTMyL1g2NCBm b3IgVlMyMHh4IGdlbmVyYXRpb24NCj4gPiA+IG9mIGludHJpbnNpYyBmdW5jdGlvbnMgd291bGQg YWRkcmVzcyBmbHR1c2VkIGFuZCBvdGhlciBjb21tb24gQw0KPiA+ID4gaW1wbGVtZW50YXRpb24g c3R5bGVzIHRoYXQgZ2VuZXJhdGUgaW50cmluc2ljIGZ1bmN0aW9ucyAoZS5nLiA2NC1iaXQNCj4g PiA+IGludCBtYXRoIG9uIDMyLWJpdCwgc3RydWN0dXJlIHZhcmlhYmxlIGFzc2lnbm1lbnRzLCBh bmQgbG9vcHMgdGhhdA0KPiA+ID4gZmlsbCBhIGJ1ZmZlciB3aXRoIGEgY29uc3QgdmFsdWUpIGJ5 IFZTMjB4eCBjb21waWxlcnMuICBBbiBpbnRyaW5zaWMNCj4gPiA+IGxpYiBmb3IgR0NDIHdvdWxk IGFsc28gaGVscCB3aXRoIHRoZXNlIHNhbWUgY29tbW9uIEMgaW1wbGVtZW50YXRpb24NCj4gPiA+ IHN0eWxlcyB0aGF0IGdlbmVyYXRlIGludHJpbnNpYyBmdW5jdGlvbnMuDQo+ID4gPg0KPiA+ID4g TWlrZQ0KPiA+ID4NCj4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4g RnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhh bGYgT2YNCj4gQXJkDQo+ID4gPiA+IEJpZXNoZXV2ZWwNCj4gPiA+ID4gU2VudDogVHVlc2RheSwg TWFyY2ggMzEsIDIwMjAgMTE6NDMgUE0NCj4gPiA+ID4gVG86IEtpbm5leSwgTWljaGFlbCBEIDxt aWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiA+ID4gQ2M6IGRldmVsQGVkazIuZ3JvdXBz LmlvOyBsZXJzZWtAcmVkaGF0LmNvbTsgbWFjYXJsQG1pY3Jvc29mdC5jb20NCj4gPiA+ID4gU3Vi amVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0hdIENyeXB0b1BrZy9GbHRVc2VkTGliOg0KPiA+ ID4gPiBBZGQgRmx0VXNlZExpYiBmb3IgZmxvYXQuDQo+ID4gPiA+DQo+ID4gPiA+IE9uIFR1ZSwg MzEgTWFyIDIwMjAgYXQgMTY6MzYsIEtpbm5leSwgTWljaGFlbCBEDQo+ID4gPiA+IDxtaWNoYWVs LmQua2lubmV5QGludGVsLmNvbT4gd3JvdGU6DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBBUk0gYW5k IEFBUkNINjQgaGF2ZSBhIGNvbXBpbGVyIGludHJpbnNpYyBsaWIgdGhhdCBpcw0KPiA+ID4gPiBs aW5rZWQgYWdhaW5zdCBhbGwgbW9kdWxlcy4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFtMaWJyYXJ5 Q2xhc3Nlcy5BUk0sIExpYnJhcnlDbGFzc2VzLkFBUkNINjRdDQo+ID4gPiA+ID4gICAjDQo+ID4g PiA+ID4gICAjIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBwcmV2ZW50IEFSTSBjb21waWxlciBjYWxs cyB0bw0KPiA+ID4gPiBnZW5lcmljIGludHJpbnNpYyBmdW5jdGlvbnMuDQo+ID4gPiA+ID4gICAj IFRoaXMgbGlicmFyeSBwcm92aWRlcyB0aGUgaW5zdHJpbnNpYyBmdW5jdGlvbnMNCj4gPiA+ID4g Z2VuZXJhdGVkIGJ5IGEgZ2l2ZW4gY29tcGlsZXIuDQo+ID4gPiA+ID4gICAjIFtMaWJyYXJ5Q2xh c3Nlcy5BUk1dIGFuZCBOVUxMIG1lYW4gbGluayB0aGlzDQo+ID4gPiA+IGxpYnJhcnkgaW50byBh bGwgQVJNIGltYWdlcy4NCj4gPiA+ID4gPiAgICMNCj4gPiA+ID4gPg0KPiA+ID4gPiBOVUxMfEFy bVBrZy9MaWJyYXJ5L0NvbXBpbGVySW50cmluc2ljc0xpYi9Db21waWxlckludHJpbnMNCj4gPiA+ ID4gaWNzTGliLmluZg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gQ2FuIHdlIHVzZSB0aGlzIHNhbWUg dGVjaG5pcXVlIGZvciBJQTMyL1g2NCBWUyBidWlsZHM/DQo+ID4gPiA+ID4NCj4gPiA+ID4NCj4g PiA+ID4gSW4gbXkgb3BpbmlvbiwgaGF2aW5nIHRoZXNlIGludHJpbnNpY3MgbGlicmFyaWVzIGFk ZGVkIHZpYSBOVUxMDQo+ID4gPiA+IGxpYnJhcnkgY2xhc3MgcmVzb2x1dGlvbiB3YXMgYSBtaXN0 YWtlIHRvIGJlZ2luIHdpdGguDQo+ID4gPiA+DQo+ID4gPiA+IEV2ZXJ5IGNvbXBvbmVudCB0aGF0 IHdlIGJ1aWxkIGluY29ycG9yYXRlcyBzb21lIGtpbmQgb2Ygc3RhcnR1cA0KPiA+ID4gPiBjb2Rl IGxpYnJhcnkgdGhhdCBkZWZpbmVzIHRoZSBfTW9kdWxlRW50cnlQb2ludCBzeW1ib2wsIGFuZCBp dA0KPiA+ID4gPiB3b3VsZCBiZSBtdWNoIGJldHRlciB0byBtYWtlIHRob3NlIGxpYnJhcmllcyBp bmNsdWRlIGFuDQo+ID4gPiA+IEludHJpbnNpY3NMaWJyYXJ5IGRlcGVuZGVuY3kgdGhhdCBjYW4g YmUgc2F0aXNmaWVkIGJ5IGFyY2gNCj4gPiA+ID4gc3BlY2lmaWMgdmVyc2lvbnMgdGhhdCBhbHNv IGVuY2Fwc3VsYXRlIHRoZSB0b29sY2hhaW4gZGVwZW5kZW5jaWVzDQo+ID4gPiA+IChzdWNoIGFz IHRoaXMgX2ZsdHVzZWQgc3ltYm9sLCBvciBtZW1jcHkvbWVtc2V0IG9uIEFSTS9HQ0MpLg0KPiA+ ID4gPg0KPiA+ID4gPiBPbiBhbm90aGVyIG5vdGUsIGl0IGlzIHN0aWxsIGRlZXBseSBkaXNhcHBv aW50aW5nIHRoYXQgd2UgbmVlZCB0bw0KPiA+ID4gPiBqdW1wIHRocm91Z2ggYWxsIG9mIHRoZXNl IGhvb3BzIGJlY2F1c2UgdGhlICpvbmx5KiBzaW5nbGUgdXNlIG9mDQo+ID4gPiA+IGZsb2F0aW5n IHBvaW50IGluIE9wZW5TU0wgaXMgdGhlIGVudHJvcHkgZXN0aW1hdGUgb2YgYW4gUk5HLCB3aGlj aA0KPiA+ID4gPiBpcyBpbiB0aGUgcmFuZ2Ugb2YgMC4uMTAyMyB0byBiZWdpbiB3aXRoIFtJSVJD KS4gUmVtZW1iZXIgdGhhdCB3ZQ0KPiA+ID4gPiBhbHNvIGhhdmUgYSBzb2Z0ZmxvYXQgc3VibW9k dWxlIGZvciAzMi1iaXQgQVJNLCBmb3IgdGhlIHNhbWUNCj4gPiA+ID4gc3R1cGlkIHJlYXNvbi4g SWYgd2UgY291bGQgc3RvcCBwdWxsaW5nIGluIHRoYXQgcGFydCBvZiB0aGUgY29kZQ0KPiA+ID4g PiAob3IgcmVwbGFjZSBpdCB3aXRoIGFuDQo+ID4gPiA+IFVJTlQxNiB3aGVuIGJ1aWxkaW5nIGZv ciB0aGUgVUVGSSB0YXJnZXQpLCB0aGUgd2hvbGUgZmxvYXRpbmcNCj4gPiA+ID4gcG9pbnQgaXNz dWUgd291bGQgbW9zdGx5IGdvIGF3YXkgQUZBSUNULg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4N Cj4gPiA+DQo+ID4gPg0KPiA+DQo+ID4NCj4gPg0KPiANCj4gDQo+IA0KDQo=