From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.151, mailfrom: donald.kuo@intel.com) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by groups.io with SMTP; Wed, 21 Aug 2019 07:54:45 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 21 Aug 2019 07:54:45 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,412,1559545200"; d="scan'208";a="186251852" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by FMSMGA003.fm.intel.com with ESMTP; 21 Aug 2019 07:54:44 -0700 Received: from fmsmsx151.amr.corp.intel.com (10.18.125.4) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 21 Aug 2019 07:54:44 -0700 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by FMSMSX151.amr.corp.intel.com (10.18.125.4) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 21 Aug 2019 07:54:44 -0700 Received: from shsmsx108.ccr.corp.intel.com ([169.254.8.163]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.250]) with mapi id 14.03.0439.000; Wed, 21 Aug 2019 22:54:41 +0800 From: "Donald Kuo" To: "Gao, Liming" , "Zeng, Star" , "devel@edk2.groups.io" , "lersek@redhat.com" , "Dong, Eric" CC: "Ni, Ray" , "Chan, Amy" , "Chaganty, Rangasai V" , "Lai, Luke" , "Li, Kevin Y" , "leif.lindholm@linaro.org" , "afish@apple.com" , "Kinney, Michael D" Subject: Re: [edk2-devel] [PATCH] UefiCpuPkg: Adding a new TSC library by using CPUID(0x15) TSC leaf Thread-Topic: [edk2-devel] [PATCH] UefiCpuPkg: Adding a new TSC library by using CPUID(0x15) TSC leaf Thread-Index: AQHVUcVZCm3GdlbNj0yDbGEaEq9XIKb7g3SwgAAAyPD//46ugIACX1WAgABJuwCABZuRkP//xhUAgACNbTD//8fmgAAEUuOAADHHeYAAEsLD8A== Date: Wed, 21 Aug 2019 14:54:41 +0000 Message-ID: References: <20190813105312.14836-1-donald.kuo@intel.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14E4D15C2@SHSMSX104.ccr.corp.intel.com> <305e8729-d681-6eef-fcd6-023bb53755a9@redhat.com> <30b8f129-6e89-7a1e-8821-c38a6c70a4bf@redhat.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14E4D6C73@SHSMSX104.ccr.corp.intel.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14E4D7D9D@SHSMSX104.ccr.corp.intel.com> <0C09AFA07DD0434D9E2A0C6AEB0483104039FD67@shsmsx102.ccr.corp.intel.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14E4D9517@SHSMSX104.ccr.corp.intel.com> In-Reply-To: <4A89E2EF3DFEDB4C8BFDE51014F606A14E4D9517@SHSMSX104.ccr.corp.intel.com> Accept-Language: zh-TW, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMWViZjBhM2UtNmZjNy00ZWY3LTg5YWQtYTUxZmFlMzdhY2I5IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoidkhIQlVVXC9IdDZMdUtlOG53MnB3MmF0R0RZRE1mSnBkUVVmNFVNNDhwUCtsclllakpiVGpMam9ZV0pYYktGbTIifQ== x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: donald.kuo@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhhbmtzIExpbWluZyBoZWxwIDopDQoNCkRvbmFsZA0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPiBGcm9tOiBHYW8sIExpbWluZw0KPiBTZW50OiBXZWRuZXNkYXksIEF1Z3VzdCAyMSwg MjAxOSA5OjQ2IFBNDQo+IFRvOiBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPjsgS3Vv LCBEb25hbGQgPGRvbmFsZC5rdW9AaW50ZWwuY29tPjsNCj4gZGV2ZWxAZWRrMi5ncm91cHMuaW87 IGxlcnNla0ByZWRoYXQuY29tOyBEb25nLCBFcmljDQo+IDxlcmljLmRvbmdAaW50ZWwuY29tPg0K PiBDYzogTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT47IENoYW4sIEFteSA8YW15LmNoYW5AaW50 ZWwuY29tPjsNCj4gQ2hhZ2FudHksIFJhbmdhc2FpIFYgPHJhbmdhc2FpLnYuY2hhZ2FudHlAaW50 ZWwuY29tPjsgTGFpLCBMdWtlDQo+IDxsdWtlLmxhaUBpbnRlbC5jb20+OyBMaSwgS2V2aW4gWSA8 a2V2aW4ueS5saUBpbnRlbC5jb20+Ow0KPiBsZWlmLmxpbmRob2xtQGxpbmFyby5vcmc7IGFmaXNo QGFwcGxlLmNvbTsgS2lubmV5LCBNaWNoYWVsIEQNCj4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwu Y29tPg0KPiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSF0gVWVmaUNwdVBrZzogQWRk aW5nIGEgbmV3IFRTQyBsaWJyYXJ5IGJ5DQo+IHVzaW5nIENQVUlEKDB4MTUpIFRTQyBsZWFmDQo+ IA0KPiBEb25lLiBBbmQsIHB1c2ggQDMwNzgxZmViZTIxMDZjYzBkNzE4NmU3MDEzNjEyMDM1M2Nk NjdkZjINCj4gDQo+IFRoYW5rcw0KPiBMaW1pbmcNCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPiA+IEZyb206IFplbmcsIFN0YXINCj4gPiBTZW50OiBUdWVzZGF5LCBBdWd1c3QgMjAs IDIwMTkgMTA6MDAgUE0NCj4gPiBUbzogR2FvLCBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29t PjsgS3VvLCBEb25hbGQNCj4gPiA8ZG9uYWxkLmt1b0BpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdy b3Vwcy5pbzsgbGVyc2VrQHJlZGhhdC5jb207DQo+IERvbmcsDQo+ID4gRXJpYyA8ZXJpYy5kb25n QGludGVsLmNvbT4NCj4gPiBDYzogTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT47IENoYW4sIEFt eSA8YW15LmNoYW5AaW50ZWwuY29tPjsNCj4gPiBDaGFnYW50eSwgUmFuZ2FzYWkgViA8cmFuZ2Fz YWkudi5jaGFnYW50eUBpbnRlbC5jb20+OyBMYWksIEx1a2UNCj4gPiA8bHVrZS5sYWlAaW50ZWwu Y29tPjsgTGksIEtldmluIFkgPGtldmluLnkubGlAaW50ZWwuY29tPjsNCj4gPiBsZWlmLmxpbmRo b2xtQGxpbmFyby5vcmc7IGFmaXNoQGFwcGxlLmNvbTsgS2lubmV5LCBNaWNoYWVsIEQNCj4gPiA8 bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwu Y29tPg0KPiA+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBVZWZpQ3B1UGtnOiBB ZGRpbmcgYSBuZXcgVFNDIGxpYnJhcnkNCj4gPiBieSB1c2luZyBDUFVJRCgweDE1KSBUU0MgbGVh Zg0KPiA+DQo+ID4gUmVtZW1iZXIgdG8gYWRkIGVudHJ5IGZvciBpdCBhdA0KPiBodHRwczovL2dp dGh1Yi5jb20vdGlhbm9jb3JlL3RpYW5vY29yZS5naXRodWIuaW8vd2lraS9FREstSUktUmVsZWFz ZS0NCj4gUGxhbm5pbmcuDQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ ID4gPiBGcm9tOiBHYW8sIExpbWluZw0KPiA+ID4gU2VudDogVHVlc2RheSwgQXVndXN0IDIwLCAy MDE5IDc6NTYgUE0NCj4gPiA+IFRvOiBLdW8sIERvbmFsZCA8ZG9uYWxkLmt1b0BpbnRlbC5jb20+ OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsNCj4gPiA+IGxlcnNla0ByZWRoYXQuY29tOyBEb25nLCBF cmljIDxlcmljLmRvbmdAaW50ZWwuY29tPg0KPiA+ID4gQ2M6IE5pLCBSYXkgPHJheS5uaUBpbnRl bC5jb20+OyBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPjsNCj4gPiA+IENoYW4sIEFt eSA8YW15LmNoYW5AaW50ZWwuY29tPjsgQ2hhZ2FudHksIFJhbmdhc2FpIFYNCj4gPiA+IDxyYW5n YXNhaS52LmNoYWdhbnR5QGludGVsLmNvbT47IExhaSwgTHVrZSA8bHVrZS5sYWlAaW50ZWwuY29t PjsgTGksDQo+ID4gPiBLZXZpbiBZIDxrZXZpbi55LmxpQGludGVsLmNvbT47IGxlaWYubGluZGhv bG1AbGluYXJvLm9yZzsNCj4gPiA+IGFmaXNoQGFwcGxlLmNvbTsgS2lubmV5LCBNaWNoYWVsIEQg PG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4gU3ViamVjdDogUkU6IFtlZGsyLWRl dmVsXSBbUEFUQ0hdIFVlZmlDcHVQa2c6IEFkZGluZyBhIG5ldyBUU0MNCj4gPiA+IGxpYnJhcnkg YnkgdXNpbmcgQ1BVSUQoMHgxNSkgVFNDIGxlYWYNCj4gPiA+DQo+ID4gPiBEb25hbGQ6DQo+ID4g PiAgIFRoYW5rcyBmb3IgeW91ciB1cGRhdGUuIElmIG5vIG90aGVyIGNvbW1lbnQsIEkgd2lsbCBo ZWxwIHB1c2ggdGhpcw0KPiA+ID4gcGF0Y2ggdG9tb3Jyb3cuDQo+ID4gPg0KPiA+ID4gVGhhbmtz DQo+ID4gPiBMaW1pbmcNCj4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ ID4gRnJvbTogS3VvLCBEb25hbGQNCj4gPiA+ID4gU2VudDogVHVlc2RheSwgQXVndXN0IDIwLCAy MDE5IDM6MjIgUE0NCj4gPiA+ID4gVG86IEdhbywgTGltaW5nIDxsaW1pbmcuZ2FvQGludGVsLmNv bT47IGRldmVsQGVkazIuZ3JvdXBzLmlvOw0KPiA+ID4gPiBsZXJzZWtAcmVkaGF0LmNvbTsgRG9u ZywgRXJpYyA8ZXJpYy5kb25nQGludGVsLmNvbT4NCj4gPiA+ID4gQ2M6IE5pLCBSYXkgPHJheS5u aUBpbnRlbC5jb20+OyBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPjsNCj4gPiA+ID4g Q2hhbiwgQW15IDxhbXkuY2hhbkBpbnRlbC5jb20+OyBDaGFnYW50eSwgUmFuZ2FzYWkgVg0KPiA+ ID4gPiA8cmFuZ2FzYWkudi5jaGFnYW50eUBpbnRlbC5jb20+OyBMYWksIEx1a2UgPGx1a2UubGFp QGludGVsLmNvbT47DQo+ID4gPiA+IExpLCBLZXZpbiBZIDxrZXZpbi55LmxpQGludGVsLmNvbT47 IGxlaWYubGluZGhvbG1AbGluYXJvLm9yZzsNCj4gPiA+ID4gYWZpc2hAYXBwbGUuY29tOyBLaW5u ZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4gPiA+IFN1Ympl Y3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBVZWZpQ3B1UGtnOiBBZGRpbmcgYSBuZXcgVFND DQo+ID4gPiA+IGxpYnJhcnkgYnkgdXNpbmcgQ1BVSUQoMHgxNSkgVFNDIGxlYWYNCj4gPiA+ID4N Cj4gPiA+ID4gSGkgTGltaW5nLA0KPiA+ID4gPg0KPiA+ID4gPiBEb25lLg0KPiA+ID4gPg0KPiA+ ID4gPiBQYXRjaCBpcyBhdHRhY2hlZCB0bw0KPiA+ID4gPiBodHRwczovL2J1Z3ppbGxhLnRpYW5v Y29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDkNCj4gPiA+ID4NCj4gPiA+ID4gQW5vdGhlciBC WiB0byBhcHBseSBDcHVUaW1lckxpYiB3aWxsIGJlIHRyYWNraW5nIG9uOg0KPiA+ID4gPiBodHRw czovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTYNCj4gPiA+ID4N Cj4gPiA+ID4gVGhhbmtzLA0KPiA+ID4gPiBEb25hbGQNCj4gPiA+ID4NCj4gPiA+ID4gPiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+IEZyb206IEdhbywgTGltaW5nDQo+ID4g PiA+ID4gU2VudDogVHVlc2RheSwgQXVndXN0IDIwLCAyMDE5IDI6NTEgUE0NCj4gPiA+ID4gPiBU bzogS3VvLCBEb25hbGQgPGRvbmFsZC5rdW9AaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMu aW87DQo+ID4gPiA+ID4gbGVyc2VrQHJlZGhhdC5jb207IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0Bp bnRlbC5jb20+DQo+ID4gPiA+ID4gQ2M6IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+OyBaZW5n LCBTdGFyDQo+ID4gPiA+ID4gPHN0YXIuemVuZ0BpbnRlbC5jb20+OyBDaGFuLCBBbXkgPGFteS5j aGFuQGludGVsLmNvbT47DQo+IENoYWdhbnR5LA0KPiA+ID4gPiA+IFJhbmdhc2FpIFYgPHJhbmdh c2FpLnYuY2hhZ2FudHlAaW50ZWwuY29tPjsgTGFpLCBMdWtlDQo+ID4gPiA+ID4gPGx1a2UubGFp QGludGVsLmNvbT47IExpLCBLZXZpbiBZIDxrZXZpbi55LmxpQGludGVsLmNvbT47DQo+ID4gPiA+ ID4gbGVpZi5saW5kaG9sbUBsaW5hcm8ub3JnOyBhZmlzaEBhcHBsZS5jb207IEtpbm5leSwgTWlj aGFlbCBEDQo+ID4gPiA+ID4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4gPiA+ IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBVZWZpQ3B1UGtnOiBBZGRpbmcgYSBu ZXcgVFNDDQo+ID4gPiA+ID4gbGlicmFyeSBieSB1c2luZyBDUFVJRCgweDE1KSBUU0MgbGVhZg0K PiA+ID4gPiA+DQo+ID4gPiA+ID4gRG9uYWxkOg0KPiA+ID4gPiA+ICAgUGxlYXNlIGFsc28gYXR0 YWNoIHRoZSBwYXRjaCBsaW5rZXIgaW4gQlpzLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gICBBbmQs IHBsZWFzZSBzdWJtaXQgYW5vdGhlciBCWiBmb3IgZWRrMi0NCj4gPiA+ID4gPiBwbGF0Zm9ybXNc UGxhdGZvcm1cSW50ZWxcS2FieWxha2VPcGVuQm9hcmRQa2cgdG8gYXBwbHkgdGhpcyBuZXcNCj4g PiA+ID4gPiBsaWJyYXJ5IGluc3RhbmNlLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gVGhhbmtzDQo+ ID4gPiA+ID4gTGltaW5nDQo+ID4gPiA+ID4gPi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ ID4gPiA+ID4gPkZyb206IEt1bywgRG9uYWxkDQo+ID4gPiA+ID4gPlNlbnQ6IFR1ZXNkYXksIEF1 Z3VzdCAyMCwgMjAxOSAxMDo0NCBBTQ0KPiA+ID4gPiA+ID5UbzogZGV2ZWxAZWRrMi5ncm91cHMu aW87IGxlcnNla0ByZWRoYXQuY29tOyBHYW8sIExpbWluZw0KPiA+ID4gPiA+ID48bGltaW5nLmdh b0BpbnRlbC5jb20+OyBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPg0KPiA+ID4gPiA+ ID5DYzogTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT47IFplbmcsIFN0YXINCj4gPiA+ID4gPiA+ PHN0YXIuemVuZ0BpbnRlbC5jb20+OyBDaGFuLCBBbXkgPGFteS5jaGFuQGludGVsLmNvbT47DQo+ ID4gPiA+ID4gPkNoYWdhbnR5LCBSYW5nYXNhaSBWIDxyYW5nYXNhaS52LmNoYWdhbnR5QGludGVs LmNvbT47IExhaSwgTHVrZQ0KPiA+ID4gPiA+ID48bHVrZS5sYWlAaW50ZWwuY29tPjsgTGksIEtl dmluIFkgPGtldmluLnkubGlAaW50ZWwuY29tPjsNCj4gPiA+ID4gPiA+bGVpZi5saW5kaG9sbUBs aW5hcm8ub3JnOyBhZmlzaEBhcHBsZS5jb207IEtpbm5leSwgTWljaGFlbCBEDQo+ID4gPiA+ID4g PjxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiA+ID4gPiA+U3ViamVjdDogUkU6IFtl ZGsyLWRldmVsXSBbUEFUQ0hdIFVlZmlDcHVQa2c6IEFkZGluZyBhIG5ldyBUU0MNCj4gPiA+ID4g PiA+bGlicmFyeSBieSB1c2luZyBDUFVJRCgweDE1KSBUU0MgbGVhZg0KPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+VGhhbmtzIExhc3psbyBoZWxwIHRvIHJldmlldyBhbmQgZ3JlYXQgZmVlZGJhY2tz LiBUaGF0IHdlIGRpZA0KPiA+ID4gPiA+ID5taXNzIHRvIGZ1bGZpbA0KPiA+ID4gPiA+IEJaLg0K PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+SSBoYWQgdXBkYXRlZCBCdWd6aWxsYQ0KPiA+ID4gPiA+ ID5odHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDkNCj4g PiA+ID4gPiA+Zm9yIG1vcmUgZG9jdW1lbnRhdGlvbi4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PkFzIEkga25vdyBmb3IgdGhlIGVkazItcGxhdGZvcm1zIHNob3VsZCBiZSBjb25zdW1lZCBhcyBL QkwgKDd0aA0KPiA+ID4gPiA+ID5HZW5lcmF0aW9uKSBwbGF0Zm9ybSBpbiBDbGllbnQsIGFuZCB0 aGlzIGZlYXR1cmUgYmFzZWQgb24gU0RNDQo+ID4gPiA+ID4gPmlzIHN1cHBvcnRlZCBvbiBTS0wg KDZ0aCBHZW5lcmF0aW9uLCBGYW1pbHkgMDZoKSBvbndhcmRzLiBTbw0KPiA+ID4gPiA+ID5pdCdz IG9rIHRvIHVzZSBhcyBUaW1lckxpYiBpbnN0YW5jZXMgZm9yIGVkazItcGxhdGZvcm1zLg0KPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+QW5kIEkgdGhpbmsgdGhlIGxpYnJhcnkgaXMgbmV3IGluc3Rh bmNlcyBmb3IgVGltZXJMaWIgZm9yDQo+ID4gPiA+ID4gPnN1cHBvcnRlZCBDUFUsIGFuZCB0aG9z ZSBub24tc3VwcG9ydGVkIENQVSB3aWxsIHN0aWxsIGtlZXANCj4gPiA+ID4gPiA+dXNpbmcgQWNw aVRpbWVybGliIGFzIFRpbWVyTGliIGluc3RhbmNlcy4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PlRoYW5rcywNCj4gPiA+ID4gPiA+RG9uYWxkDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4+IC0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gPj4gRnJvbTogZGV2ZWxAZWRrMi5n cm91cHMuaW8gW21haWx0bzpkZXZlbEBlZGsyLmdyb3Vwcy5pb10gT24NCj4gPiA+ID4gPiA+PiBC ZWhhbGYgT2YgTGFzemxvIEVyc2VrDQo+ID4gPiA+ID4gPj4gU2VudDogU2F0dXJkYXksIEF1Z3Vz dCAxNywgMjAxOSA0OjQwIEFNDQo+ID4gPiA+ID4gPj4gVG86IEdhbywgTGltaW5nIDxsaW1pbmcu Z2FvQGludGVsLmNvbT47IEt1bywgRG9uYWxkDQo+ID4gPiA+ID4gPj4gPGRvbmFsZC5rdW9AaW50 ZWwuY29tPjsgRG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVsLmNvbT47DQo+ID4gPiA+ID4gPj4g ZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiA+ID4gPiA+PiBDYzogTmksIFJheSA8cmF5Lm5pQGlu dGVsLmNvbT47IFplbmcsIFN0YXINCj4gPiA+ID4gPiA+PiA8c3Rhci56ZW5nQGludGVsLmNvbT47 IENoYW4sIEFteSA8YW15LmNoYW5AaW50ZWwuY29tPjsNCj4gPiA+ID4gPiA+PiBDaGFnYW50eSwg UmFuZ2FzYWkgViA8cmFuZ2FzYWkudi5jaGFnYW50eUBpbnRlbC5jb20+OyBMYWksDQo+ID4gPiA+ ID4gPj4gTHVrZSA8bHVrZS5sYWlAaW50ZWwuY29tPjsgTGksIEtldmluIFkNCj4gPiA+ID4gPiA+ PiA8a2V2aW4ueS5saUBpbnRlbC5jb20+OyBsZWlmLmxpbmRob2xtQGxpbmFyby5vcmc7DQo+ID4g PiA+ID4gPj4gYWZpc2hAYXBwbGUuY29tOw0KPiA+ID4gPiA+ID5LaW5uZXksDQo+ID4gPiA+ID4g Pj4gTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiA+ID4gPiA+PiBT dWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSF0gVWVmaUNwdVBrZzogQWRkaW5nIGEgbmV3 DQo+ID4gPiA+ID4gPj4gVFNDIGxpYnJhcnkgYnkgdXNpbmcgQ1BVSUQoMHgxNSkgVFNDIGxlYWYN Cj4gPiA+ID4gPiA+Pg0KPiA+ID4gPiA+ID4+IE9uIDA4LzE2LzE5IDE4OjE2LCBMYXN6bG8gRXJz ZWsgd3JvdGU6DQo+ID4gPiA+ID4gPj4gPiBPbiAwOC8xNS8xOSAwNjowMiwgR2FvLCBMaW1pbmcg d3JvdGU6DQo+ID4gPiA+ID4gPj4gPj4gRG9uYWxkOiBUaGlzIGNoYW5nZSBpcyBhIG5ldyBmZWF0 dXJlLiBOb3csIGl0IGlzIG5vdCBpbg0KPiA+ID4gPiA+ID4+ID4+IGVkazIgZmVhdHVyZSBwbGFu bmluZyBsaXN0LiBJZiB5b3Ugd2FudCB0byBjYXRjaCBpdCBpbnRvDQo+ID4gPiA+ID4gPj4gPj4g MjAxOTA4IHN0YWJsZSB0YWcsIHBsZWFzZSBnZXQgYXBwcm92ZSBmcm9tIFN0ZXdhcmRzIGZpcnN0 Lg0KPiA+ID4gPiA+ID4+ID4+IEkgaGF2ZSBjYyB0aGlzIG1haWwgdG8gYWxsDQo+ID4gPiA+ID4g U3Rld2FyZHMuDQo+ID4gPiA+ID4gPj4gPiAtIEkgZG9uJ3QgbWluZCBhZGRpbmcgYSBuZXcgZmVh dHVyZSwgYXMgbG9uZyBhcyBpdCBnZXRzDQo+ID4gPiA+ID4gPj4gPiBwcm9wZXJseSByZXZpZXdl ZCBieSBwYWNrYWdlIG93bmVycyBiZWZvcmUgd2UgZW50ZXIgdGhlDQo+ID4gPiA+ID4gPj4gPiBz b2Z0DQo+ID4gPiBmZWF0dXJlIGZyZWV6ZS4NCj4gPiA+ID4gPiA+PiA+DQo+ID4gPiA+ID4gPj4g PiAtIExvb2tpbmcgYXQgdGhlIEJaDQo+ID4gPiA+ID4gPj4gPiA8aHR0cHM6Ly9idWd6aWxsYS50 aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA5PiwgYQ0KPiA+ID4gPiA+ID4+ID4gYml0 IG1vcmUgZG9jdW1lbnRhdGlvbiB3b3VsZCBiZSBuaWNlLg0KPiA+ID4gPiA+ID4+ID4NCj4gPiA+ ID4gPiA+PiA+IC0gT24gdGhlIG5lZ2F0aXZlIHNpZGUsIEknbSB2ZXJ5IG11Y2ggKm5vdCogYSBm YW4gb2YgYWRkaW5nDQo+ID4gPiA+ID4gPj4gPiBmZWF0dXJlcyB0byB0aGUgb3BlbiBzb3VyY2Ug ZWRrMiB0cmVlIHdpdGhvdXQgYWN0dWFsbHkNCj4gPiA+ID4gPiA+PiA+ICpjb25zdW1pbmcqIHRo ZSBmZWF0dXJlIGluIGFuIG9wZW4gc291cmNlIHRyZWUuIEFyZSB0aGUgbmV3DQo+ID4gPiA+ID4g Pj4gPiBsaWJyYXJ5IGluc3RhbmNlcyBnb2luZyB0byBiZSBwdXQgdG8gdXNlIGluIGVkazItcGxh dGZvcm1zLA0KPiBwZXJoYXBzPw0KPiA+ID4gPiA+ID4+ID4NCj4gPiA+ID4gPiA+PiA+IFdlIGRp c2N1c3NlZCB0aGlzIHRvcGljIGVhcmxpZXIgb24gc29tZSBvZiB0aGUgc3Rld2FyZHMnIGNhbGxz Lg0KPiA+ID4gPiA+ID4+ID4gT24gb25lIGhhbmQsIGl0J3Mgbm90IHVuY29tbW9uIHRvIHNlZSBs aWJyYXJ5IGluc3RhbmNlcw0KPiA+ID4gPiA+ID4+ID4gZnJvbSBJbnRlbCBlbnRlciBjb3JlDQo+ ID4gPiA+ID4gPj4gPiBlZGsyIHBhY2thZ2VzIHdpdGhvdXQgYW55IGRlcGVuZGVudCBwbGF0Zm9y bSBjb2RlLCBvciBldmVuDQo+ID4gPiA+ID4gPj4gPiBhIGRldGFpbGVkIHByb2JsZW0gc3RhdGVt ZW50IC8gcHVycG9zZSBkZXNjcmlwdGlvbiAoc2VlIGUuZy4NCj4gPiA+ID4gPiA+PiA+IGNvbW1p dCA1YzliYjg2ZjE3MWMgYW5kIGl0cyBzdXJyb3VuZGluZyBjb21taXRzKS4gT24gdGhlDQo+ID4g PiA+ID4gPj4gPiBvdGhlciBoYW5kLCBhdHRlbXB0cyBpbiB0aGUgcGFzdCwgdG8gYWRkIGxpYnJh cmllcyB3aXRoDQo+ID4gPiA+ID4gPj4gPiB3ZWxsIGRlbW9uc3RyYXRlZCBhbmQgZGlyZWN0IGlu LXRyZWUgdXNlIGNhc2VzLCB0bw0KPiA+ID4gPiA+ID4+ID4gZWRrMiBjb3JlLCBoYXZlIGJlZW4g cmVqZWN0ZWQsIGZyb20gb3RoZXIgc3VibWl0dGVycy4NCj4gPiA+ID4gPiA+PiA+IChIZXJlJ3Mg b25lDQo+ID4gPiA+ID4gPj4gPiBleGFtcGxlOg0KPiA+ID4gPiA+ID4+ID4gPGh0dHBzOi8vYnVn emlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU3Pi4pDQo+ID4gPiA+ID4gPj4g PiBJJ20gbm90IHByeWluZyBhdCBwcm9wcmlldGFyeSBwbGF0Zm9ybSBpbmZvcm1hdGlvbiwgYnV0 IGENCj4gPiA+ID4gPiA+PiA+IG5ldyBsaWJyYXJ5IGFkZGVkIHRvDQo+ID4gPiA+ID4gPj4gPiBl ZGsyIGNvcmUgKnNob3VsZCogYmUgd2VsbC1qdXN0aWZpZWQuDQo+ID4gPiA+ID4gPj4gPg0KPiA+ ID4gPiA+ID4+ID4gVGhlIGNvbW1pdCBtZXNzYWdlIG9uIHRoaXMgcGF0Y2ggaXMgZW1wdHkuIEl0 IG9ubHkNCj4gPiA+ID4gPiA+PiA+IHJlZmVyZW5jZXMNCj4gPiA+ID4gPiA+PiA+IDxodHRwczov L2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDk+LiBBbmQgaWYgSQ0K PiBvcGVuIHRoZSBCWiwgdGhpcyBpcyBhbGwgSSBnZXQ6DQo+ID4gPiA+ID4gPj4gPg0KPiA+ID4g PiA+ID4+ID4gICAgIE5lZWQgYSBuZXcgVFNDIGxpYnJhcnkgdG8gY2hlY2sgdGhlIENQVUlEIGxl YWYgKEVBWD0weDE1KSBmb3INCj4gVFNDLg0KPiA+ID4gPiA+ID4+ID4gICAgIEZvciBuZXcgcGxh dGZvcm0gKHN0YXJ0IGZyb20gU0tMKSBjYW4gdXNlIENQVUlEIGFuZA0KPiA+ID4gcmV0aXJlL3Jl bW92ZQ0KPiA+ID4gPiA+ID4+ID4gICAgIHRoZSBjdXJyZW50IG92ZXJyaWRlIGZyb20gQWNwaVRp bWVyTGliLg0KPiA+ID4gPiA+ID4+ID4NCj4gPiA+ID4gPiA+PiA+IERvZXMgdGhpcyByZWFkIGxp a2UgYW4gYWN0dWFsIGZlYXR1cmUgcmVxdWVzdD8gKFRpbWVyTGliIGlzDQo+ID4gPiA+ID4gPj4g PiBhbiBNZGVQa2cgbGlicmFyeSBjbGFzcywgc28gbm90IGV4YWN0bHkgIm5pY2hlIi4pDQo+ID4g PiA+ID4gPj4NCj4gPiA+ID4gPiA+PiBJbiBjb21wYXJpc29uLCB0aGUgZm9sbG93aW5nIGVtYWls IGRvZXMgcmVhZCBsaWtlIGEgZmVhdHVyZSByZXF1ZXN0Og0KPiA+ID4gPiA+ID4+DQo+ID4gPiA+ ID4gPj4gW2VkazItZGV2ZWxdIERldGVybWluaW5nIFRTQyBmcmVxdWVuY3kgcHJvZ3JhbW1hdGlj YWxseQ0KPiA+ID4gPiA+ID4+IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC9tZXNzYWdl LzQ1NzUwDQo+ID4gPiA+ID4gPj4gaHR0cDovL21pZC5tYWlsLWFyY2hpdmUuY29tLzhFQzE0RDBE LURGQTUtNDEyRC1BNEUxLQ0KPiA+ID4gPiA+ID4+IDRENjQxNTc2RDU4RUBwcm90b25tYWlsLmNv bQ0KPiA+ID4gPiA+ID4+DQo+ID4gPiA+ID4gPj4gSWYgdGhlIHBvc3RpbmcgaXMgcmVsYXRlZCB0 byBUaWFub0NvcmUjMTkwOSwgdGhlbiBJIHVyZ2UgdGhlDQo+ID4gPiA+ID4gPj4gQlogYXNzaWdu ZWUgdG8gcGxlYXNlIHJlZmVyZW5jZSB0aGUgbWVzc2FnZSBpbiB0aGUgVGlhbm9Db3JlIEJaLg0K PiA+ID4gPiA+ID4+DQo+ID4gPiA+ID4gPj4gVGhhbmtzDQo+ID4gPiA+ID4gPj4gTGFzemxvDQo+ ID4gPiA+ID4gPj4NCj4gPiA+ID4gPiA+PiANCg0K