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.115, mailfrom: christian.rodriguez@intel.com) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by groups.io with SMTP; Mon, 13 May 2019 11:41:26 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 May 2019 11:41:25 -0700 X-ExtLoop1: 1 Received: from orsmsx110.amr.corp.intel.com ([10.22.240.8]) by fmsmga007.fm.intel.com with ESMTP; 13 May 2019 11:41:25 -0700 Received: from orsmsx112.amr.corp.intel.com ([169.254.3.79]) by ORSMSX110.amr.corp.intel.com ([169.254.10.7]) with mapi id 14.03.0415.000; Mon, 13 May 2019 11:41:25 -0700 From: "Christian Rodriguez" To: "Feng, Bob C" , Laszlo Ersek , "devel@edk2.groups.io" , "felixp@ami.com" CC: "Gao, Liming" , "Zhu, Yonghong" Subject: Re: [edk2-devel] [PATCH] BaseTools: Include headers not mentioned in inf are not hashed Thread-Topic: [edk2-devel] [PATCH] BaseTools: Include headers not mentioned in inf are not hashed Thread-Index: AQHVBsJiRL7Y+aN3pkyXMseGtKl8F6Zk09wA///kGCCAAH34gP//i5RAgASnUoCAAAw7AP//8wDA Date: Mon, 13 May 2019 18:41:25 +0000 Message-ID: <3A7DCC9A944C6149BF832E1C9B718ABC01F1B960@ORSMSX112.amr.corp.intel.com> References: <20190509212719.6156-1-christian.rodriguez@intel.com> <9333E191E0D52B4999CE63A99BA663A00302C89341@atlms1.us.megatrends.com> <3A7DCC9A944C6149BF832E1C9B718ABC01EDA3B3@ORSMSX112.amr.corp.intel.com> <9333E191E0D52B4999CE63A99BA663A00302C89592@atlms1.us.megatrends.com> <3A7DCC9A944C6149BF832E1C9B718ABC01EDA3F1@ORSMSX112.amr.corp.intel.com> <08650203BA1BD64D8AD9B6D5D74A85D16010CE58@SHSMSX101.ccr.corp.intel.com> In-Reply-To: <08650203BA1BD64D8AD9B6D5D74A85D16010CE58@SHSMSX101.ccr.corp.intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMjQzNTY2ZTItZDQ0ZC00ZjVkLWI1NDgtNjBjY2M0NWEwNTU0IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiYTJHMXB0bUN1bjVHbkFxb2cwMlhiSFoxVUkybFdxc3hzSXdIbW5vcmZWbm1VXC9nVVdlRGlOMEFuWnZcLzk4VFplIn0= dlp-product: dlpe-windows dlp-version: 11.0.600.7 dlp-reaction: no-action x-originating-ip: [10.22.254.138] MIME-Version: 1.0 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 WWVzIHRoZXJlIGNvdWxkIGJlIGEgcGVyZm9ybWFuY2UgaGl0LiBJdCBtaWdodCBiZSBiZXR0ZXIg dG8gbWFrZSBpdCBhIHNjcmlwdC4NCkJ1dCB0aGlzIGlzIG9ubHkgZ29pbmcgdG8gaGFwcGVuIHdo ZW4gdGhlIGhhc2ggZmVhdHVyZSBpcyBlbmFibGVkLCBub3QgZXZlciBidWlsZC4gQWxzbyB3ZSBj YW4gbWluaW1pemUgdGhlIHBlcmZvcm1hbmNlIGhpdCBieSBzYXZpbmcgdGhlIGRhdGEgZnJvbSBN b2R1bGVNYWtlZmlsZS5HZXRGaWxlRGVwZW5kZW5jeSgpIHRvIG1lbW9yeSBhbmQgcmV1c2UgaXQg bGF0ZXIgaW4gR2VuTWFrZSB0byBzYXZlIG9uIElPIGFuZCBzZWFyY2guDQoNClRoYW5rcywNCkNo cmlzdGlhbg0KDQo+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj5Gcm9tOiBGZW5nLCBCb2Ig Qw0KPlNlbnQ6IE1vbmRheSwgTWF5IDEzLCAyMDE5IDU6MjMgQU0NCj5UbzogTGFzemxvIEVyc2Vr IDxsZXJzZWtAcmVkaGF0LmNvbT47IFJvZHJpZ3VleiwgQ2hyaXN0aWFuDQo+PGNocmlzdGlhbi5y b2RyaWd1ZXpAaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW87IGZlbGl4cEBhbWkuY29t DQo+Q2M6IEdhbywgTGltaW5nIDxsaW1pbmcuZ2FvQGludGVsLmNvbT47IFpodSwgWW9uZ2hvbmcN Cj48eW9uZ2hvbmcuemh1QGludGVsLmNvbT4NCj5TdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQ QVRDSF0gQmFzZVRvb2xzOiBJbmNsdWRlIGhlYWRlcnMgbm90IG1lbnRpb25lZA0KPmluIGluZiBh cmUgbm90IGhhc2hlZA0KPg0KPkkgdGhpbmsgY2hlY2tpbmcgaWYgW1NvdXJjZV0gaW5jbHVkZXMg YWxsIHRoZSAic291cmNlIiBmaWxlIHVuZGVyIG1vZHVsZSdzIGZvbGRlcg0KPmZvciBlYWNoIG1v ZHVsZSBkdXJpbmcgYnVpbGQgd291bGQgbWFrZSBidWlsZCBzbG93IGRvd24sIHdlIGhhdmUgYmVl bg0KPmRvaW5nIGEgbG90IHRvIGltcHJvdmUgdGhlIGJ1aWxkIHBlcmZvcm1hbmNlLg0KPk1heWJl IHdlIGNvdWxkIGNyZWF0ZSBhIG5ldyBweXRob24gc2NyaXB0IHVuZGVyIEJhc2VUb29scy9TY3Jp cHRzIGZvbGRlciB0bw0KPmRvIHRoaXMgY2hlY2suDQo+DQo+VGhhbmtzLA0KPkJvYg0KPg0KPi0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+RnJvbTogTGFzemxvIEVyc2VrIFttYWlsdG86bGVy c2VrQHJlZGhhdC5jb21dDQo+U2VudDogTW9uZGF5LCBNYXkgMTMsIDIwMTkgNzozOSBQTQ0KPlRv OiBSb2RyaWd1ZXosIENocmlzdGlhbiA8Y2hyaXN0aWFuLnJvZHJpZ3VlekBpbnRlbC5jb20+Ow0K PmRldmVsQGVkazIuZ3JvdXBzLmlvOyBmZWxpeHBAYW1pLmNvbQ0KPkNjOiBGZW5nLCBCb2IgQyA8 Ym9iLmMuZmVuZ0BpbnRlbC5jb20+OyBHYW8sIExpbWluZw0KPjxsaW1pbmcuZ2FvQGludGVsLmNv bT47IFpodSwgWW9uZ2hvbmcgPHlvbmdob25nLnpodUBpbnRlbC5jb20+DQo+U3ViamVjdDogUmU6 IFtlZGsyLWRldmVsXSBbUEFUQ0hdIEJhc2VUb29sczogSW5jbHVkZSBoZWFkZXJzIG5vdCBtZW50 aW9uZWQNCj5pbiBpbmYgYXJlIG5vdCBoYXNoZWQNCj4NCj5PbiAwNS8xMC8xOSAyMTo0NSwgUm9k cmlndWV6LCBDaHJpc3RpYW4gd3JvdGU6DQo+PiBIYXNoaW5nIGlzIG5vdCBjaGFuZ2luZyBmaWxl IGZvcm1hdCByZXF1aXJlbWVudHMgYXMgQmFzZXRvb2xzIGhhcyBubw0KPnJlcXVpcmVtZW50IG9u IHRoaXMgZXZlbiB0aG91Z2ggdGhlIHNwZWMgZG9lcyBoYXZlIGZpbGUgcmVxdWlyZW1lbnRzLiBU aGF0J3MNCj53aHkgdGhlIGluaXRpYWwgcGF0Y2ggd2FzIGEgd29ya2Fyb3VuZCBvZiBzb3J0cyBi ZWNhdXNlIGl0IGlzIGFsbG93ZWQgYnkNCj5CYXNldG9vbHMgdG8gaGF2ZSBsb2NhbCBoZWFkZXJz IG5vdCBpbiB0aGUgc291cmNlcyBzZWN0aW9uIG9mIHRoZSBtZXRhIGZpbGUuDQo+Pg0KPj4gQWx3 YXlzIGJyZWFraW5nIHRoZSBidWlsZCBpcyBvdXRzaWRlIG9mIHRoZSBzY29wZSBvZiB0aGlzIEJa IGFuZCBteSBwcm9qZWN0DQo+cHJpb3JpdGllcy4gSSBhZ3JlZSBpdCBzaG91bGQgYmUgZG9uZSwg YnV0IGl0J3Mgb3V0IG9mIG15IHNjb3BlLg0KPj4NCj4+IEkgYW0gc3BlY2lmaWNhbGx5IHRhcmdl dGluZyB0aGUgaGFzaGluZyBmZWF0dXJlLCB3aGljaCByZWxpZXMgb24gVUVGSSBTcGVjDQo+cmVx dWlyZW1lbnRzLg0KPg0KPkkgdGhpbmsgYnJlYWtpbmcgdGhlIGJ1aWxkIGltbWVkaWF0ZWx5IChh bmQgdW5jb25kaXRpb25hbGx5KSBjb3VsZCBjYXRjaA0KPnBsYXRmb3JtcyBieSBzdXJwcmlzZS4g Q2FuIHdlIG1ha2UgdGhpcyBhIHdhcm5pbmcgdnMuIGFuIGVycm9yPyBBbmQsIEknbQ0KPnRvdGFs bHkgT0sgaWYgaXQncyBhdmFpbGFibGUgb25seSB3aXRoIC0taGFzaCwgZm9yIG5vdy4NCj4NCj5C VFcgLS0gSSdtIG5vdCBzdXJlIHdoeSB0aGUgVUVGSSBzcGVjIGlzIHJlbGV2YW50IGhlcmUuDQo+ DQo+VGhhbmtzDQo+TGFzemxvDQo+DQo+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+ PiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyBbbWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlv XSBPbiBCZWhhbGYgT2YNCj4+PiBGZWxpeCBQb2x5dWRvdg0KPj4+IFNlbnQ6IEZyaWRheSwgTWF5 IDEwLCAyMDE5IDEyOjMyIFBNDQo+Pj4gVG86IFJvZHJpZ3VleiwgQ2hyaXN0aWFuIDxjaHJpc3Rp YW4ucm9kcmlndWV6QGludGVsLmNvbT47DQo+Pj4gZGV2ZWxAZWRrMi5ncm91cHMuaW87ICdsZXJz ZWtAcmVkaGF0LmNvbScgPGxlcnNla0ByZWRoYXQuY29tPg0KPj4+IENjOiBGZW5nLCBCb2IgQyA8 Ym9iLmMuZmVuZ0BpbnRlbC5jb20+OyBHYW8sIExpbWluZw0KPj4+IDxsaW1pbmcuZ2FvQGludGVs LmNvbT47IFpodSwgWW9uZ2hvbmcgPHlvbmdob25nLnpodUBpbnRlbC5jb20+DQo+Pj4gU3ViamVj dDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0hdIEJhc2VUb29sczogSW5jbHVkZSBoZWFkZXJzIG5v dA0KPj4+IG1lbnRpb25lZCBpbiBpbmYgYXJlIG5vdCBoYXNoZWQNCj4+Pg0KPj4+IE15IHN1Z2dl c3Rpb24gd291bGQgYmUgdG8gYWx3YXlzIGJyZWFrIGEgYnVpbGQgKG5vIG1hdHRlciB3aGF0IHRo ZQ0KPj4+IGhhc2hpbmcgc2V0dGluZ3MgYXJlKS4NCj4+PiBIYXNoaW5nIGlzIGp1c3QgYW4gb3B0 aW1pemF0aW9uIHRlY2huaXF1ZSwgdXNhZ2Ugb2Ygd2hpY2ggc2hvdWxkIG5vdA0KPj4+IGJlIGNo YW5naW5nIHNvdXJjZSBmaWxlIGZvcm1hdHRpbmcgcmVxdWlyZW1lbnRzLg0KPj4+DQo+Pj4+IC0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+Pj4+IEZyb206IFJvZHJpZ3VleiwgQ2hyaXN0aWFu IFttYWlsdG86Y2hyaXN0aWFuLnJvZHJpZ3VlekBpbnRlbC5jb21dDQo+Pj4+IFNlbnQ6IEZyaWRh eSwgTWF5IDEwLCAyMDE5IDM6MTQgUE0NCj4+Pj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBG ZWxpeCBQb2x5dWRvdjsgJ2xlcnNla0ByZWRoYXQuY29tJw0KPj4+PiBDYzogRmVuZywgQm9iIEM7 IEdhbywgTGltaW5nOyBaaHUsIFlvbmdob25nDQo+Pj4+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZl bF0gW1BBVENIXSBCYXNlVG9vbHM6IEluY2x1ZGUgaGVhZGVycyBub3QNCj4+Pj4gbWVudGlvbmVk IGluIGluZiBhcmUgbm90IGhhc2hlZA0KPj4+Pg0KPj4+PiBBZnRlciB0YWxraW5nIHRvIG15IGNv bGxlYWd1ZXMgYWJvdXQgdGhpcywgdGhlIGRpcmVjdGlvbiBzZWVtcyB0byBiZQ0KPj4+PiB0byBm dW5kYW1lbnRhbGx5IGNoYW5nZSB0aGlzIEJaLiBJbnN0ZWFkIG9mIGJ1aWxkaW5nIHRoaXMgc29y dCBvZg0KPj4+PiB3b3JrYXJvdW5kIGZlYXR1cmUsIHdlIHNob3VsZCB1c2UgdGhlIGluZm9ybWF0 aW9uIGdhdGhlcmVkIGZyb20gdGhpcw0KPj4+IGZlYXR1cmUgdG8gY2F1c2UgdGhlIGJ1aWxkIHRv IGJyZWFrIHdoZW4gdGhlIGhhc2ggZmVhdHVyZSBpcyBlbmFibGVkLg0KPj4+IFRoaXMgd291bGQg Zm9yY2UgdXNlcnMgb2YgdGhlIGhhc2ggZmVhdHVyZSB0byBiZSBVRUZJIHNwZWMgY29tcGxhaW50 Lg0KPj4+Pg0KPj4+PiBXaGF0IGRvIHlvdSBndXlzIHRoaW5rOyBMYXN6bG8gYW5kIEZlbGl4Pw0K Pj4+Pg0KPj4+PiBJJ2xsIHVwZGF0ZSB0aGUgQlogd2hlbiBJIGdldCB5b3VyIGlucHV0Lg0KPj4+ Pg0KPj4+PiBUaGFua3MsDQo+Pj4+IENocmlzdGlhbiBSb2RyaWd1ZXoNCj4+Pj4NCj4+Pj4+IC0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+Pj4+PiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5p byBbbWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvXSBPbiBCZWhhbGYNCj4+Pj4+IE9mIEZlbGl4 IFBvbHl1ZG92DQo+Pj4+PiBTZW50OiBGcmlkYXksIE1heSAxMCwgMjAxOSA2OjQxIEFNDQo+Pj4+ PiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87ICdsZXJzZWtAcmVkaGF0LmNvbScgPGxlcnNla0By ZWRoYXQuY29tPjsNCj4+Pj4+IFJvZHJpZ3VleiwgQ2hyaXN0aWFuIDxjaHJpc3RpYW4ucm9kcmln dWV6QGludGVsLmNvbT4NCj4+Pj4+IENjOiBGZW5nLCBCb2IgQyA8Ym9iLmMuZmVuZ0BpbnRlbC5j b20+OyBHYW8sIExpbWluZw0KPj4+Pj4gPGxpbWluZy5nYW9AaW50ZWwuY29tPjsgWmh1LCBZb25n aG9uZyA8eW9uZ2hvbmcuemh1QGludGVsLmNvbT4NCj4+Pj4+IFN1YmplY3Q6IFJlOiBbZWRrMi1k ZXZlbF0gW1BBVENIXSBCYXNlVG9vbHM6IEluY2x1ZGUgaGVhZGVycyBub3QNCj4+Pj4+IG1lbnRp b25lZCBpbiBpbmYgYXJlIG5vdCBoYXNoZWQNCj4+Pj4+DQo+Pj4+Pj4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4+Pj4+PiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyBbbWFpbHRvOmRl dmVsQGVkazIuZ3JvdXBzLmlvXSBPbiBCZWhhbGYNCj4+Pj4+PiBPZiBMYXN6bG8gRXJzZWsNCj4+ Pj4+PiBTZW50OiBUaHVyc2RheSwgTWF5IDA5LCAyMDE5IDc6NTMgUE0NCj4+Pj4+Pg0KPj4+Pj4+ IEhlbGxvIENocmlzdGlhbiwNCj4+Pj4+Pg0KPj4+Pj4+IE9uIDA1LzA5LzE5IDIzOjI3LCBDaHJp c3RpYW4gUm9kcmlndWV6IHdyb3RlOg0KPj4+Pj4+PiBCWjogaHR0cHM6Ly9idWd6aWxsYS50aWFu b2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg3DQo+Pj4+Pj4+DQo+Pj4+Pj4+IEdldCBhIGxp c3Qgb2YgbG9jYWwgaGVhZGVyIGZpbGVzIHRoYXQgYXJlIG5vdCBwcmVzZW50IGluIHRoZQ0KPj4+ Pj4+PiBNZXRhRmlsZSBmb3IgdGhpcyBtb2R1bGUuIEFkZCB0aG9zZSBsb2NhbCBoZWFkZXIgZmls ZXMgaW50byB0aGUNCj4+Pj4+Pj4gaGFzaGluZyBhbGdvcml0aG0gZm9yIGEgbW9kdWxlLiBJZiBh IGxvY2FsIGhlYWRlciBmaWxlIGlzIG5vdA0KPj4+Pj4+PiBwcmVzZW50IGluIHRoZSBNZXRhRmls ZSwgdGhlIG1vZHVsZSB3aWxsIHN0aWxsIGJ1aWxkIGNvcnJlY3RseQ0KPj4+Pj4+PiB0aG91Z2gg dGhlIGhhc2hpbmcgc3lzdGVtIGRpZG4ndCBrbm93IGFib3V0IGl0IGJlZm9yZS4NCj4+Pj4+Pj4N Cj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIFJvZHJpZ3Vleg0KPj4+Pj4+PiA8Y2hy aXN0aWFuLnJvZHJpZ3VlekBpbnRlbC5jb20+DQo+Pj4+Pj4+IENjOiBCb2IgRmVuZyA8Ym9iLmMu ZmVuZ0BpbnRlbC5jb20+DQo+Pj4+Pj4+IENjOiBMaW1pbmcgR2FvIDxsaW1pbmcuZ2FvQGludGVs LmNvbT4NCj4+Pj4+Pj4gQ2M6IFlvbmdob25nIFpodSA8eW9uZ2hvbmcuemh1QGludGVsLmNvbT4N Cj4+Pj4+Pj4gLS0tDQo+Pj4+Pj4+ICBCYXNlVG9vbHMvU291cmNlL1B5dGhvbi9BdXRvR2VuL0F1 dG9HZW4ucHkgfCAyNA0KPj4+Pj4+PiArKysrKysrKysrKysrKysrKysrKysrKysNCj4+Pj4+Pj4g IDEgZmlsZSBjaGFuZ2VkLCAyNCBpbnNlcnRpb25zKCspDQo+Pj4+Pj4NCj4+Pj4+PiBJIHNhdyB0 aGUgQlogc29vbiBhZnRlciBpdCB3YXMgcmVwb3J0ZWQuIEkgYWxtb3N0IGNvbW1lbnRlZCwgYnV0 DQo+Pj4+Pj4gdWx0aW1hdGVseSBJIGNvdWxkbid0IGRlY2lkZSB3aGF0IHRoZSByZWFsIHVzZSBj YXNlIHdhcy4NCj4+Pj4+Pg0KPj4+Pj4+IFdpdGggdGhpcyBwYXJ0aWN1bGFyIHVzZSBjYXNlIChp LmUuIElORiBmaWxlIGlzIG1pc3Npbmcgc29tZQ0KPj4+Pj4+IG1vZHVsZS1zcGVjaWZpYyBoZWFk ZXIgZmlsZXMgdGhhdCBpdCBjb3VsZCBlYXNpbHkgbGlzdCksIEkgdGhpbmsgSQ0KPj4+Pj4+IGRp c2FncmVlLCBtaWxkbHkgKG5vdCB0b28gc3Ryb25nbHkpLiBFLmcuLCB3ZSBmaXhlZCBzdWNoIG9t aXNzaW9ucw0KPj4+Pj4+IGluIGEgYnVuY2ggb2YgSU5GIGZpbGVzLCBsYXN0IE1hcmNoLCBpbiB0 aGUgc2VyaWVzDQo+Pj4+Pg0KPj4+Pj4gSSBhZ3JlZSB3aXRoIExhemxvLg0KPj4+Pj4gQWNjb3Jk aW5nIHRvIHNlY3Rpb24gMy45IG9mIHRoZSBJTkYgc3BlY2lmaWNhdGlvbiAoaHR0cHM6Ly9lZGsy LQ0KPj4+Pj4gZG9jcy5naXRib29rcy5pby9lZGstaWktaW5mLQ0KPj4+Pj4gc3BlY2lmaWNhdGlv bi8zX2Vka19paV9pbmZfZmlsZV9mb3JtYXQvMzlfW3NvdXJjZXNdX3NlY3Rpb25zLmh0bWwpLA0K Pj4+Pj4gYWxsIHNvdXJjZSBmaWxlcyAoaW5jbHVkaW5nIG1vZHVsZSBoZWFkZXIgZmlsZXMpIG11 c3QgYmUgbGlzdGVkIGluDQo+Pj4+PiB0aGUgW1NvdXJjZXNdIHNlY3Rpb24uDQo+Pj4+PiBIZXJl IGlzIHRoZSBxdW90ZToNCj4+Pj4+ICJBbGwgSElJIFVuaWNvZGUgZm9ybWF0IGZpbGVzIG11c3Qg YmUgbGlzdGVkIGluIHRoaXMgc2VjdGlvbiBhcw0KPj4+Pj4gd2VsbCBhcyBhbnkgb3RoZXIgInNv dXJjZSIgdHlwZSBmaWxlLCBzdWNoIGFzIGxvY2FsIG1vZHVsZSBoZWFkZXINCj4+Pj4+IGZpbGVz LCBWZnIgZmlsZXMsDQo+Pj4gZXRjLiAiDQo+Pj4+Pg0KPj4+Pj4gU28sIGlmIGZpbGUgWCBpcyB1 c2VkIGJ5IG1vZHVsZSBZLCBidXQgaXMgbm90IGxpc3RlZCBpbiBZLmluZiwgaXQncw0KPj4+Pj4g YSB2aW9sYXRpb24gb2YgdGhlIElORiBzcGVjLiwgd2hpY2ggbWFrZXMgaXQgYSBidWcgdGhhdCBo YXMgdG8gYmUgZml4ZWQuDQo+Pj4+Pg0KPj4+Pj4NCj4+Pj4+IFBsZWFzZSBjb25zaWRlciB0aGUg ZW52aXJvbm1lbnQgYmVmb3JlIHByaW50aW5nIHRoaXMgZW1haWwuDQo+Pj4+Pg0KPj4+Pj4gVGhl IGluZm9ybWF0aW9uIGNvbnRhaW5lZCBpbiB0aGlzIG1lc3NhZ2UgbWF5IGJlIGNvbmZpZGVudGlh bCBhbmQNCj4+Pj4+IHByb3ByaWV0YXJ5IHRvIEFtZXJpY2FuIE1lZ2F0cmVuZHMsIEluYy4gIFRo aXMgY29tbXVuaWNhdGlvbiBpcw0KPj4+Pj4gaW50ZW5kZWQgdG8gYmUgcmVhZCBvbmx5IGJ5IHRo ZSBpbmRpdmlkdWFsIG9yIGVudGl0eSB0byB3aG9tIGl0IGlzDQo+Pj4+PiBhZGRyZXNzZWQgb3Ig YnkgdGhlaXIgZGVzaWduZWUuIElmIHRoZSByZWFkZXIgb2YgdGhpcyBtZXNzYWdlIGlzDQo+Pj4+ PiBub3QgdGhlIGludGVuZGVkIHJlY2lwaWVudCwgeW91IGFyZSBvbiBub3RpY2UgdGhhdCBhbnkg ZGlzdHJpYnV0aW9uDQo+Pj4+PiBvZiB0aGlzIG1lc3NhZ2UsIGluIGFueSBmb3JtLCBpcyBzdHJp Y3RseSBwcm9oaWJpdGVkLiAgUGxlYXNlDQo+Pj4+PiBwcm9tcHRseSBub3RpZnkgdGhlIHNlbmRl ciBieSByZXBseSBlLW1haWwgb3IgYnkgdGVsZXBob25lIGF0DQo+Pj4+PiA3NzAtMjQ2LTg2MDAs IGFuZA0KPj4+IHRoZW4gZGVsZXRlIG9yIGRlc3Ryb3kgYWxsIGNvcGllcyBvZiB0aGUgdHJhbnNt aXNzaW9uLg0KPj4+Pj4gASAgIGwgICBLGCAgIHEgeSBlICAsaiAgICAgIGEgICsgIFUgID9FIGUg ICB3INONICAgaSAgIHZNICAgICAqPyAgXiAgfyAgLGogICBONiDLrXk4YiA6KSAgbSAgPw0KPj4+ Pj4g6LqbIiAgICB9eSBNNSAgeyDetyBq6LqTICAgIHogICAgJ3ogICBoKyAgbCAgJyAgIHIgIHob bSAgIHkgNiAgLiDIqCAPIHogICAg7Lm3ISArLSAgICAg57OKe14gICYNCj4+Pg0KPj4+IFBsZWFz ZSBjb25zaWRlciB0aGUgZW52aXJvbm1lbnQgYmVmb3JlIHByaW50aW5nIHRoaXMgZW1haWwuDQo+ Pj4NCj4+PiBUaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGluIHRoaXMgbWVzc2FnZSBtYXkgYmUg Y29uZmlkZW50aWFsIGFuZA0KPj4+IHByb3ByaWV0YXJ5IHRvIEFtZXJpY2FuIE1lZ2F0cmVuZHMs IEluYy4gIFRoaXMgY29tbXVuaWNhdGlvbiBpcw0KPj4+IGludGVuZGVkIHRvIGJlIHJlYWQgb25s eSBieSB0aGUgaW5kaXZpZHVhbCBvciBlbnRpdHkgdG8gd2hvbSBpdCBpcw0KPj4+IGFkZHJlc3Nl ZCBvciBieSB0aGVpciBkZXNpZ25lZS4gSWYgdGhlIHJlYWRlciBvZiB0aGlzIG1lc3NhZ2UgaXMg bm90DQo+Pj4gdGhlIGludGVuZGVkIHJlY2lwaWVudCwgeW91IGFyZSBvbiBub3RpY2UgdGhhdCBh bnkgZGlzdHJpYnV0aW9uIG9mDQo+Pj4gdGhpcyBtZXNzYWdlLCBpbiBhbnkgZm9ybSwgaXMgc3Ry aWN0bHkgcHJvaGliaXRlZC4gIFBsZWFzZSBwcm9tcHRseQ0KPj4+IG5vdGlmeSB0aGUgc2VuZGVy IGJ5IHJlcGx5IGUtbWFpbCBvciBieSB0ZWxlcGhvbmUgYXQgNzcwLTI0Ni04NjAwLCBhbmQNCj50 aGVuIGRlbGV0ZSBvciBkZXN0cm95IGFsbCBjb3BpZXMgb2YgdGhlIHRyYW5zbWlzc2lvbi4NCj4+ PiABICAgbCAgIEsYICAgcSB5IGUgICxqICAgICAgYSAgKyAgVSAgP0UgZSAgIHcg0457ICBpICAg dk0gICAgICo/ICBeICB/ICAsaiAgIE45IMuteThiIDopICBtICA/DQo+Pj4g6LqbIiAgICB9eSBN NSAgeyDetyBq6LqTICAgIHogICAgJ3ogICBoKyAgbCAgJyAgIHIgIHobbSAgIHkgNiAgLiDIqCAP IHogICAg7Lm3ISArLSAgICAg57OKe14gICYNCg0K