From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.20, mailfrom: christian.rodriguez@intel.com) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by groups.io with SMTP; Mon, 13 May 2019 12:39:17 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 May 2019 12:39:16 -0700 X-ExtLoop1: 1 Received: from orsmsx106.amr.corp.intel.com ([10.22.225.133]) by orsmga006.jf.intel.com with ESMTP; 13 May 2019 12:39:16 -0700 Received: from orsmsx121.amr.corp.intel.com (10.22.225.226) by ORSMSX106.amr.corp.intel.com (10.22.225.133) with Microsoft SMTP Server (TLS) id 14.3.408.0; Mon, 13 May 2019 12:39:15 -0700 Received: from orsmsx112.amr.corp.intel.com ([169.254.3.79]) by ORSMSX121.amr.corp.intel.com ([169.254.10.64]) with mapi id 14.03.0415.000; Mon, 13 May 2019 12:39:15 -0700 From: "Christian Rodriguez" To: "devel@edk2.groups.io" , "Rodriguez, Christian" , Laszlo Ersek , "felixp@ami.com" CC: "Feng, Bob C" , "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//i5RAgASnUoCAAACgIIAADc6g Date: Mon, 13 May 2019 19:39:14 +0000 Message-ID: <3A7DCC9A944C6149BF832E1C9B718ABC01F1B9F8@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> <159E52DAFBF01090.24406@groups.io> In-Reply-To: <159E52DAFBF01090.24406@groups.io> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMzlhNDIxNjItOTI1NS00ZDE0LWE1NjktYTNjNzM4OGVlYzgyIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoid0VDNmFiS2ZHQTBlZE1GQVhqXC8xVWdwOU1odFBJd2pDQnhEbk0yc0RabFIrc1p5cWlwNXNLM2Y5QVZINEtZdU4ifQ== 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 Return-Path: christian.rodriguez@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 U28gdGhlIGRpcmVjdGlvbiBwdXQgZm9yd2FyZCBieSBteSB0ZWFtIGlzIHRoYXQgd2Ugc2hvdWxk IHJhaXNlIGFuIGVycm9yIGluc3RlYWQgb2YgYSB3YXJuaW5nIGJlY2F1c2UgYSBmYWxzZSBwb3Np dGl2ZSBzdWNjZXNzZnVsIGJ1aWxkIHdvdWxkIGJlIGRldHJpbWVudGFsIHRvIGEgY29udGludW91 cyBpbnRlZ3JhdGlvbiBlbnZpcm9ubWVudC4gQW5kIGl0IHdvdWxkIGFsc28gZW5mb3JjZSB0aGUg U3BlYyByZXF1aXJlbWVudHMuDQoNClRoZSBwb2ludCB0aGV5IGFyZSBtYWtpbmcgaXMgdGhhdCBh IHdhcm5pbmcgZG9lcyBub3QgZW1waGFzaXplcyB0aGF0IHRoZXJlIGlzIGEgZmFsc2Ugc3VjY2Vz c2Z1bCBidWlsZCBhcyBtdWNoIGFzIGJyZWFraW5nIHRoZSBidWlsZC4gQW5kIGZvciBub3cgaXQg d2lsbCBiZSBhdCBhIGxpbWl0ZWQgc2NvcGUgb25seSB3aXRoIHRoZSBoYXNoaW5nIGZlYXR1cmUg ZW5hYmxlZCBzbyBpdCB3b24ndCBjYXRjaCBwZW9wbGUgZG9pbmcgYSBub3JtYWwgYnVpbGQgYnkg c3VycHJpc2UuDQoNClRoYW5rcywNCkNocmlzdGlhbg0KDQo+LS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj5Gcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyBbbWFpbHRvOmRldmVsQGVkazIuZ3Jv dXBzLmlvXSBPbiBCZWhhbGYgT2YNCj5DaHJpc3RpYW4gUm9kcmlndWV6DQo+U2VudDogTW9uZGF5 LCBNYXkgMTMsIDIwMTkgMTE6NTQgQU0NCj5UbzogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0 LmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvOw0KPmZlbGl4cEBhbWkuY29tDQo+Q2M6IEZlbmcs IEJvYiBDIDxib2IuYy5mZW5nQGludGVsLmNvbT47IEdhbywgTGltaW5nDQo+PGxpbWluZy5nYW9A aW50ZWwuY29tPjsgWmh1LCBZb25naG9uZyA8eW9uZ2hvbmcuemh1QGludGVsLmNvbT4NCj5TdWJq ZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSF0gQmFzZVRvb2xzOiBJbmNsdWRlIGhlYWRlcnMg bm90IG1lbnRpb25lZA0KPmluIGluZiBhcmUgbm90IGhhc2hlZA0KPg0KPkkgdGhpbmsgYSB3YXJu aW5nIHdvdWxkIGJlIHJlYXNvbmFibGUuDQo+DQo+SSBvbmx5IG1lbnRpb24gdGhlIHNwZWMgYmVj YXVzZSBpdCByZXF1aXJlcyBhbGwgaGVhZGVycyB0byBiZSBpbiB0aGUgc291cmNlcw0KPnNlY3Rp b24gb2YgdGhlIGluZiwgYnV0IGl0J3Mgbm90IGVuZm9yY2VkIHN0cmljdGx5IGJ5IEJhc2VUb29s cy4gVGhvdWdoIHRoZQ0KPmhhc2hpbmcgZmVhdHVyZSByZWxpZXMgb24gdGhpcyByZXF1aXJlbWVu dC4gSXQgbm90IGEgYmlnIGRlYWwsIEkganVzdCB3YW50ZWQgdG8NCj5tYWtlIHN1cmUgZmFsc2Ug cG9zaXRpdmUgYnVpbGQgc3VjY2Vzc2VzIHdlcmUgYWRkcmVzc2VkLg0KPg0KPlRoYW5rcywNCj5D aHJpc3RpYW4NCj4NCj4+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+RnJvbTogTGFzemxv IEVyc2VrIFttYWlsdG86bGVyc2VrQHJlZGhhdC5jb21dDQo+PlNlbnQ6IE1vbmRheSwgTWF5IDEz LCAyMDE5IDQ6MzkgQU0NCj4+VG86IFJvZHJpZ3VleiwgQ2hyaXN0aWFuIDxjaHJpc3RpYW4ucm9k cmlndWV6QGludGVsLmNvbT47DQo+PmRldmVsQGVkazIuZ3JvdXBzLmlvOyBmZWxpeHBAYW1pLmNv bQ0KPj5DYzogRmVuZywgQm9iIEMgPGJvYi5jLmZlbmdAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcN Cj4+PGxpbWluZy5nYW9AaW50ZWwuY29tPjsgWmh1LCBZb25naG9uZyA8eW9uZ2hvbmcuemh1QGlu dGVsLmNvbT4NCj4+U3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0hdIEJhc2VUb29sczog SW5jbHVkZSBoZWFkZXJzIG5vdA0KPj5tZW50aW9uZWQgaW4gaW5mIGFyZSBub3QgaGFzaGVkDQo+ Pg0KPj5PbiAwNS8xMC8xOSAyMTo0NSwgUm9kcmlndWV6LCBDaHJpc3RpYW4gd3JvdGU6DQo+Pj4g SGFzaGluZyBpcyBub3QgY2hhbmdpbmcgZmlsZSBmb3JtYXQgcmVxdWlyZW1lbnRzIGFzIEJhc2V0 b29scyBoYXMgbm8NCj4+cmVxdWlyZW1lbnQgb24gdGhpcyBldmVuIHRob3VnaCB0aGUgc3BlYyBk b2VzIGhhdmUgZmlsZSByZXF1aXJlbWVudHMuDQo+PlRoYXQncyB3aHkgdGhlIGluaXRpYWwgcGF0 Y2ggd2FzIGEgd29ya2Fyb3VuZCBvZiBzb3J0cyBiZWNhdXNlIGl0IGlzDQo+PmFsbG93ZWQgYnkg QmFzZXRvb2xzIHRvIGhhdmUgbG9jYWwgaGVhZGVycyBub3QgaW4gdGhlIHNvdXJjZXMgc2VjdGlv biBvZiB0aGUNCj5tZXRhIGZpbGUuDQo+Pj4NCj4+PiBBbHdheXMgYnJlYWtpbmcgdGhlIGJ1aWxk IGlzIG91dHNpZGUgb2YgdGhlIHNjb3BlIG9mIHRoaXMgQlogYW5kIG15DQo+Pj4gcHJvamVjdA0K Pj5wcmlvcml0aWVzLiBJIGFncmVlIGl0IHNob3VsZCBiZSBkb25lLCBidXQgaXQncyBvdXQgb2Yg bXkgc2NvcGUuDQo+Pj4NCj4+PiBJIGFtIHNwZWNpZmljYWxseSB0YXJnZXRpbmcgdGhlIGhhc2hp bmcgZmVhdHVyZSwgd2hpY2ggcmVsaWVzIG9uIFVFRkkNCj4+PiBTcGVjDQo+PnJlcXVpcmVtZW50 cy4NCj4+DQo+PkkgdGhpbmsgYnJlYWtpbmcgdGhlIGJ1aWxkIGltbWVkaWF0ZWx5IChhbmQgdW5j b25kaXRpb25hbGx5KSBjb3VsZA0KPj5jYXRjaCBwbGF0Zm9ybXMgYnkgc3VycHJpc2UuIENhbiB3 ZSBtYWtlIHRoaXMgYSB3YXJuaW5nIHZzLiBhbiBlcnJvcj8NCj4+QW5kLCBJJ20gdG90YWxseSBP SyBpZiBpdCdzIGF2YWlsYWJsZSBvbmx5IHdpdGggLS1oYXNoLCBmb3Igbm93Lg0KPj4NCj4+QlRX IC0tIEknbSBub3Qgc3VyZSB3aHkgdGhlIFVFRkkgc3BlYyBpcyByZWxldmFudCBoZXJlLg0KPj4N Cj4+VGhhbmtzDQo+Pkxhc3psbw0KPj4NCj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4+Pj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gW21haWx0bzpkZXZlbEBlZGsyLmdyb3Vw cy5pb10gT24gQmVoYWxmDQo+Pj4+IE9mIEZlbGl4IFBvbHl1ZG92DQo+Pj4+IFNlbnQ6IEZyaWRh eSwgTWF5IDEwLCAyMDE5IDEyOjMyIFBNDQo+Pj4+IFRvOiBSb2RyaWd1ZXosIENocmlzdGlhbiA8 Y2hyaXN0aWFuLnJvZHJpZ3VlekBpbnRlbC5jb20+Ow0KPj4+PiBkZXZlbEBlZGsyLmdyb3Vwcy5p bzsgJ2xlcnNla0ByZWRoYXQuY29tJyA8bGVyc2VrQHJlZGhhdC5jb20+DQo+Pj4+IENjOiBGZW5n LCBCb2IgQyA8Ym9iLmMuZmVuZ0BpbnRlbC5jb20+OyBHYW8sIExpbWluZw0KPj4+PiA8bGltaW5n Lmdhb0BpbnRlbC5jb20+OyBaaHUsIFlvbmdob25nIDx5b25naG9uZy56aHVAaW50ZWwuY29tPg0K Pj4+PiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSF0gQmFzZVRvb2xzOiBJbmNsdWRl IGhlYWRlcnMgbm90DQo+Pj4+IG1lbnRpb25lZCBpbiBpbmYgYXJlIG5vdCBoYXNoZWQNCj4+Pj4N Cj4+Pj4gTXkgc3VnZ2VzdGlvbiB3b3VsZCBiZSB0byBhbHdheXMgYnJlYWsgYSBidWlsZCAobm8g bWF0dGVyIHdoYXQgdGhlDQo+Pj4+IGhhc2hpbmcgc2V0dGluZ3MgYXJlKS4NCj4+Pj4gSGFzaGlu ZyBpcyBqdXN0IGFuIG9wdGltaXphdGlvbiB0ZWNobmlxdWUsIHVzYWdlIG9mIHdoaWNoIHNob3Vs ZCBub3QNCj4+Pj4gYmUgY2hhbmdpbmcgc291cmNlIGZpbGUgZm9ybWF0dGluZyByZXF1aXJlbWVu dHMuDQo+Pj4+DQo+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPj4+Pj4gRnJvbTog Um9kcmlndWV6LCBDaHJpc3RpYW4gW21haWx0bzpjaHJpc3RpYW4ucm9kcmlndWV6QGludGVsLmNv bV0NCj4+Pj4+IFNlbnQ6IEZyaWRheSwgTWF5IDEwLCAyMDE5IDM6MTQgUE0NCj4+Pj4+IFRvOiBk ZXZlbEBlZGsyLmdyb3Vwcy5pbzsgRmVsaXggUG9seXVkb3Y7ICdsZXJzZWtAcmVkaGF0LmNvbScN Cj4+Pj4+IENjOiBGZW5nLCBCb2IgQzsgR2FvLCBMaW1pbmc7IFpodSwgWW9uZ2hvbmcNCj4+Pj4+ IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBCYXNlVG9vbHM6IEluY2x1ZGUgaGVh ZGVycyBub3QNCj4+Pj4+IG1lbnRpb25lZCBpbiBpbmYgYXJlIG5vdCBoYXNoZWQNCj4+Pj4+DQo+ Pj4+PiBBZnRlciB0YWxraW5nIHRvIG15IGNvbGxlYWd1ZXMgYWJvdXQgdGhpcywgdGhlIGRpcmVj dGlvbiBzZWVtcyB0bw0KPj4+Pj4gYmUgdG8gZnVuZGFtZW50YWxseSBjaGFuZ2UgdGhpcyBCWi4g SW5zdGVhZCBvZiBidWlsZGluZyB0aGlzIHNvcnQNCj4+Pj4+IG9mIHdvcmthcm91bmQgZmVhdHVy ZSwgd2Ugc2hvdWxkIHVzZSB0aGUgaW5mb3JtYXRpb24gZ2F0aGVyZWQgZnJvbQ0KPj4+Pj4gdGhp cw0KPj4+PiBmZWF0dXJlIHRvIGNhdXNlIHRoZSBidWlsZCB0byBicmVhayB3aGVuIHRoZSBoYXNo IGZlYXR1cmUgaXMgZW5hYmxlZC4NCj4+Pj4gVGhpcyB3b3VsZCBmb3JjZSB1c2VycyBvZiB0aGUg aGFzaCBmZWF0dXJlIHRvIGJlIFVFRkkgc3BlYyBjb21wbGFpbnQuDQo+Pj4+Pg0KPj4+Pj4gV2hh dCBkbyB5b3UgZ3V5cyB0aGluazsgTGFzemxvIGFuZCBGZWxpeD8NCj4+Pj4+DQo+Pj4+PiBJJ2xs IHVwZGF0ZSB0aGUgQlogd2hlbiBJIGdldCB5b3VyIGlucHV0Lg0KPj4+Pj4NCj4+Pj4+IFRoYW5r cywNCj4+Pj4+IENocmlzdGlhbiBSb2RyaWd1ZXoNCj4+Pj4+DQo+Pj4+Pj4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4+Pj4+PiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyBbbWFpbHRv OmRldmVsQGVkazIuZ3JvdXBzLmlvXSBPbiBCZWhhbGYNCj4+Pj4+PiBPZiBGZWxpeCBQb2x5dWRv dg0KPj4+Pj4+IFNlbnQ6IEZyaWRheSwgTWF5IDEwLCAyMDE5IDY6NDEgQU0NCj4+Pj4+PiBUbzog ZGV2ZWxAZWRrMi5ncm91cHMuaW87ICdsZXJzZWtAcmVkaGF0LmNvbScNCj48bGVyc2VrQHJlZGhh dC5jb20+Ow0KPj4+Pj4+IFJvZHJpZ3VleiwgQ2hyaXN0aWFuIDxjaHJpc3RpYW4ucm9kcmlndWV6 QGludGVsLmNvbT4NCj4+Pj4+PiBDYzogRmVuZywgQm9iIEMgPGJvYi5jLmZlbmdAaW50ZWwuY29t PjsgR2FvLCBMaW1pbmcNCj4+Pj4+PiA8bGltaW5nLmdhb0BpbnRlbC5jb20+OyBaaHUsIFlvbmdo b25nIDx5b25naG9uZy56aHVAaW50ZWwuY29tPg0KPj4+Pj4+IFN1YmplY3Q6IFJlOiBbZWRrMi1k ZXZlbF0gW1BBVENIXSBCYXNlVG9vbHM6IEluY2x1ZGUgaGVhZGVycyBub3QNCj4+Pj4+PiBtZW50 aW9uZWQgaW4gaW5mIGFyZSBub3QgaGFzaGVkDQo+Pj4+Pj4NCj4+Pj4+Pj4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4+Pj4+Pj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gW21haWx0 bzpkZXZlbEBlZGsyLmdyb3Vwcy5pb10gT24NCj4+Pj4+Pj4gQmVoYWxmIE9mIExhc3psbyBFcnNl aw0KPj4+Pj4+PiBTZW50OiBUaHVyc2RheSwgTWF5IDA5LCAyMDE5IDc6NTMgUE0NCj4+Pj4+Pj4N Cj4+Pj4+Pj4gSGVsbG8gQ2hyaXN0aWFuLA0KPj4+Pj4+Pg0KPj4+Pj4+PiBPbiAwNS8wOS8xOSAy MzoyNywgQ2hyaXN0aWFuIFJvZHJpZ3VleiB3cm90ZToNCj4+Pj4+Pj4+IEJaOiBodHRwczovL2J1 Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODcNCj4+Pj4+Pj4+DQo+Pj4+ Pj4+PiBHZXQgYSBsaXN0IG9mIGxvY2FsIGhlYWRlciBmaWxlcyB0aGF0IGFyZSBub3QgcHJlc2Vu dCBpbiB0aGUNCj4+Pj4+Pj4+IE1ldGFGaWxlIGZvciB0aGlzIG1vZHVsZS4gQWRkIHRob3NlIGxv Y2FsIGhlYWRlciBmaWxlcyBpbnRvIHRoZQ0KPj4+Pj4+Pj4gaGFzaGluZyBhbGdvcml0aG0gZm9y IGEgbW9kdWxlLiBJZiBhIGxvY2FsIGhlYWRlciBmaWxlIGlzIG5vdA0KPj4+Pj4+Pj4gcHJlc2Vu dCBpbiB0aGUgTWV0YUZpbGUsIHRoZSBtb2R1bGUgd2lsbCBzdGlsbCBidWlsZCBjb3JyZWN0bHkN Cj4+Pj4+Pj4+IHRob3VnaCB0aGUgaGFzaGluZyBzeXN0ZW0gZGlkbid0IGtub3cgYWJvdXQgaXQg YmVmb3JlLg0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IENocmlzdGlhbiBSb2Ry aWd1ZXoNCj4+Pj4+Pj4+IDxjaHJpc3RpYW4ucm9kcmlndWV6QGludGVsLmNvbT4NCj4+Pj4+Pj4+ IENjOiBCb2IgRmVuZyA8Ym9iLmMuZmVuZ0BpbnRlbC5jb20+DQo+Pj4+Pj4+PiBDYzogTGltaW5n IEdhbyA8bGltaW5nLmdhb0BpbnRlbC5jb20+DQo+Pj4+Pj4+PiBDYzogWW9uZ2hvbmcgWmh1IDx5 b25naG9uZy56aHVAaW50ZWwuY29tPg0KPj4+Pj4+Pj4gLS0tDQo+Pj4+Pj4+PiAgQmFzZVRvb2xz L1NvdXJjZS9QeXRob24vQXV0b0dlbi9BdXRvR2VuLnB5IHwgMjQNCj4+Pj4+Pj4+ICsrKysrKysr KysrKysrKysrKysrKysrKw0KPj4+Pj4+Pj4gIDEgZmlsZSBjaGFuZ2VkLCAyNCBpbnNlcnRpb25z KCspDQo+Pj4+Pj4+DQo+Pj4+Pj4+IEkgc2F3IHRoZSBCWiBzb29uIGFmdGVyIGl0IHdhcyByZXBv cnRlZC4gSSBhbG1vc3QgY29tbWVudGVkLCBidXQNCj4+Pj4+Pj4gdWx0aW1hdGVseSBJIGNvdWxk bid0IGRlY2lkZSB3aGF0IHRoZSByZWFsIHVzZSBjYXNlIHdhcy4NCj4+Pj4+Pj4NCj4+Pj4+Pj4g V2l0aCB0aGlzIHBhcnRpY3VsYXIgdXNlIGNhc2UgKGkuZS4gSU5GIGZpbGUgaXMgbWlzc2luZyBz b21lDQo+Pj4+Pj4+IG1vZHVsZS1zcGVjaWZpYyBoZWFkZXIgZmlsZXMgdGhhdCBpdCBjb3VsZCBl YXNpbHkgbGlzdCksIEkgdGhpbmsNCj4+Pj4+Pj4gSSBkaXNhZ3JlZSwgbWlsZGx5IChub3QgdG9v IHN0cm9uZ2x5KS4gRS5nLiwgd2UgZml4ZWQgc3VjaA0KPj4+Pj4+PiBvbWlzc2lvbnMgaW4gYSBi dW5jaCBvZiBJTkYgZmlsZXMsIGxhc3QgTWFyY2gsIGluIHRoZSBzZXJpZXMNCj4+Pj4+Pg0KPj4+ Pj4+IEkgYWdyZWUgd2l0aCBMYXpsby4NCj4+Pj4+PiBBY2NvcmRpbmcgdG8gc2VjdGlvbiAzLjkg b2YgdGhlIElORiBzcGVjaWZpY2F0aW9uIChodHRwczovL2VkazItDQo+Pj4+Pj4gZG9jcy5naXRi b29rcy5pby9lZGstaWktaW5mLQ0KPj4+Pj4+IHNwZWNpZmljYXRpb24vM19lZGtfaWlfaW5mX2Zp bGVfZm9ybWF0LzM5X1tzb3VyY2VzXV9zZWN0aW9ucy5odG1sKQ0KPj4+Pj4+ICwgYWxsIHNvdXJj ZSBmaWxlcyAoaW5jbHVkaW5nIG1vZHVsZSBoZWFkZXIgZmlsZXMpIG11c3QgYmUgbGlzdGVkDQo+ Pj4+Pj4gaW4gdGhlIFtTb3VyY2VzXSBzZWN0aW9uLg0KPj4+Pj4+IEhlcmUgaXMgdGhlIHF1b3Rl Og0KPj4+Pj4+ICJBbGwgSElJIFVuaWNvZGUgZm9ybWF0IGZpbGVzIG11c3QgYmUgbGlzdGVkIGlu IHRoaXMgc2VjdGlvbiBhcw0KPj4+Pj4+IHdlbGwgYXMgYW55IG90aGVyICJzb3VyY2UiIHR5cGUg ZmlsZSwgc3VjaCBhcyBsb2NhbCBtb2R1bGUgaGVhZGVyDQo+Pj4+Pj4gZmlsZXMsIFZmciBmaWxl cywNCj4+Pj4gZXRjLiAiDQo+Pj4+Pj4NCj4+Pj4+PiBTbywgaWYgZmlsZSBYIGlzIHVzZWQgYnkg bW9kdWxlIFksIGJ1dCBpcyBub3QgbGlzdGVkIGluIFkuaW5mLA0KPj4+Pj4+IGl0J3MgYSB2aW9s YXRpb24gb2YgdGhlIElORiBzcGVjLiwgd2hpY2ggbWFrZXMgaXQgYSBidWcgdGhhdCBoYXMgdG8g YmUNCj5maXhlZC4NCj4+Pj4+Pg0KPj4+Pj4+DQo+Pj4+Pj4gUGxlYXNlIGNvbnNpZGVyIHRoZSBl bnZpcm9ubWVudCBiZWZvcmUgcHJpbnRpbmcgdGhpcyBlbWFpbC4NCj4+Pj4+Pg0KPj4+Pj4+IFRo ZSBpbmZvcm1hdGlvbiBjb250YWluZWQgaW4gdGhpcyBtZXNzYWdlIG1heSBiZSBjb25maWRlbnRp YWwgYW5kDQo+Pj4+Pj4gcHJvcHJpZXRhcnkgdG8gQW1lcmljYW4gTWVnYXRyZW5kcywgSW5jLiAg VGhpcyBjb21tdW5pY2F0aW9uIGlzDQo+Pj4+Pj4gaW50ZW5kZWQgdG8gYmUgcmVhZCBvbmx5IGJ5 IHRoZSBpbmRpdmlkdWFsIG9yIGVudGl0eSB0byB3aG9tIGl0IGlzDQo+Pj4+Pj4gYWRkcmVzc2Vk IG9yIGJ5IHRoZWlyIGRlc2lnbmVlLiBJZiB0aGUgcmVhZGVyIG9mIHRoaXMgbWVzc2FnZSBpcw0K Pj4+Pj4+IG5vdCB0aGUgaW50ZW5kZWQgcmVjaXBpZW50LCB5b3UgYXJlIG9uIG5vdGljZSB0aGF0 IGFueQ0KPj4+Pj4+IGRpc3RyaWJ1dGlvbiBvZiB0aGlzIG1lc3NhZ2UsIGluIGFueSBmb3JtLCBp cyBzdHJpY3RseSBwcm9oaWJpdGVkLg0KPj4+Pj4+IFBsZWFzZSBwcm9tcHRseSBub3RpZnkgdGhl IHNlbmRlciBieSByZXBseSBlLW1haWwgb3IgYnkgdGVsZXBob25lDQo+Pj4+Pj4gYXQgNzcwLTI0 Ni04NjAwLCBhbmQNCj4+Pj4gdGhlbiBkZWxldGUgb3IgZGVzdHJveSBhbGwgY29waWVzIG9mIHRo ZSB0cmFuc21pc3Npb24uDQo+Pj4+Pj4gASAgIGwgICBLGCAgIHEgeSBlICAsaiAgICAgIGEgICsg IFUgID9FIGUgICB3INONICAgaSAgIHZNICAgICAqPyAgXiAgfyAgLGogICBONiDLrXk4YiA6KSAg bQ0KPj8NCj4+Pj4+PiDoupsiICAgIH15IE01ICB7IN63IGroupMgICAgeiAgICAneiAgIGgrICBs ICAnICAgciAgehttICAgeSA2ICAuIMioIA8geiAgICDsubchICstICAgICDns4p7XiAgJg0KPj4+ Pg0KPj4+PiBQbGVhc2UgY29uc2lkZXIgdGhlIGVudmlyb25tZW50IGJlZm9yZSBwcmludGluZyB0 aGlzIGVtYWlsLg0KPj4+Pg0KPj4+PiBUaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGluIHRoaXMg bWVzc2FnZSBtYXkgYmUgY29uZmlkZW50aWFsIGFuZA0KPj4+PiBwcm9wcmlldGFyeSB0byBBbWVy aWNhbiBNZWdhdHJlbmRzLCBJbmMuICBUaGlzIGNvbW11bmljYXRpb24gaXMNCj4+Pj4gaW50ZW5k ZWQgdG8gYmUgcmVhZCBvbmx5IGJ5IHRoZSBpbmRpdmlkdWFsIG9yIGVudGl0eSB0byB3aG9tIGl0 IGlzDQo+Pj4+IGFkZHJlc3NlZCBvciBieSB0aGVpciBkZXNpZ25lZS4gSWYgdGhlIHJlYWRlciBv ZiB0aGlzIG1lc3NhZ2UgaXMgbm90DQo+Pj4+IHRoZSBpbnRlbmRlZCByZWNpcGllbnQsIHlvdSBh cmUgb24gbm90aWNlIHRoYXQgYW55IGRpc3RyaWJ1dGlvbiBvZg0KPj4+PiB0aGlzIG1lc3NhZ2Us IGluIGFueSBmb3JtLCBpcyBzdHJpY3RseSBwcm9oaWJpdGVkLiAgUGxlYXNlIHByb21wdGx5DQo+ Pj4+IG5vdGlmeSB0aGUgc2VuZGVyIGJ5IHJlcGx5IGUtbWFpbCBvciBieSB0ZWxlcGhvbmUgYXQg NzcwLTI0Ni04NjAwLA0KPj4+PiBhbmQNCj4+dGhlbiBkZWxldGUgb3IgZGVzdHJveSBhbGwgY29w aWVzIG9mIHRoZSB0cmFuc21pc3Npb24uDQo+Pj4+IAEgICBsICAgSxggICBxIHkgZSAgLGogICAg ICBhICArICBVICA/RSBlICAgdyDTjnsgIGkgICB2TSAgICAgKj8gIF4gIH8gICxqICAgTjkgy615 OGIgOikgIG0gID8NCj4+Pj4g6LqbIiAgICB9eSBNNSAgeyDetyBq6LqTICAgIHogICAgJ3ogICBo KyAgbCAgJyAgIHIgIHobbSAgIHkgNiAgLiDIqCAPIHogICAg7Lm3ISArLSAgICAg57OKe14gICYN Cj4NCj4NCj4NCg0K