From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from atlmailgw2.ami.com (atlmailgw2.ami.com [63.147.10.42]) by mx.groups.io with SMTP id smtpd.web11.13818.1589209482411519578 for ; Mon, 11 May 2020 08:04:42 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: ami.com, ip: 63.147.10.42, mailfrom: oleksiyy@ami.com) X-AuditID: ac10606f-05fff70000001b62-24-5eb969887305 Received: from atlms2.us.megatrends.com (atlms2.us.megatrends.com [172.16.96.152]) (using TLS with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (Client did not present a certificate) by atlmailgw2.ami.com (Symantec Messaging Gateway) with SMTP id 1F.7F.07010.88969BE5; Mon, 11 May 2020 11:04:41 -0400 (EDT) Received: from ATLMS1.us.megatrends.com ([fe80::8c55:daf0:ef05:5605]) by atlms2.us.megatrends.com ([fe80::29dc:a91e:ea0c:cdeb%12]) with mapi id 14.03.0468.000; Mon, 11 May 2020 11:04:05 -0400 From: "Oleksiy Yakovlev" To: "Gao, Liming" , "devel@edk2.groups.io" , "Liu, Zhiguang" CC: "Feng, Bob C" , "Kinney, Michael D" , Felix Polyudov Subject: Re: [edk2-devel] [PATCH v4 7/7] MdePkg: UEFI JSON Capsule Support Thread-Topic: [edk2-devel] [PATCH v4 7/7] MdePkg: UEFI JSON Capsule Support Thread-Index: AQHWJYIczQWC3FC/80W5OjBCNxdGRKifCZOAgAPoCNCAAAmRAIAABApg Date: Mon, 11 May 2020 15:04:04 +0000 Message-ID: <6BD875C24FFE2A4E8D6EFC142C67836F03FFFF9DEF@atlms1.us.megatrends.com> References: <20200508214611.70592-1-oleksiyy@ami.com> <20200508214611.70592-8-oleksiyy@ami.com> <160DFEDDA3DFE660.21511@groups.io> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [172.16.97.158] MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprJKsWRmVeSWpSXmKPExsWyRiBhhm5n5s44g8W/eCx+HZ3HZtE+YTab xYp7G9gtOjr+MVnsmv+EyYHVY/v3C4wei/e8ZApgimpgtEnMy8svSSxJVUhJLU62VQooyixL TK5UUshMsVUyVFIoyElMTs1NzSuxVUosKEjNS1Gy41LAADZAZZl5Cql5yfkpmXnptkqewf66 FhamlrqGSnYhGakKmXlp+UW5iSWZ+XkKyfl5JUDVqSlAUYWEbs6MjucrmAs+1VWsXjuHtYHx QnUXIyeHhICJxKWemaxdjFwcQgK7mCSOTbjCAuEcZpTon3aTBaSKTUBT4s25F2AJEYFmRolF r+6xgSSYBWoleh98ZAaxhQW8JPa87mQEsUUEvCU6m76yQ9huEn/7L7GC2CwCqhLfNk4Bi/MK BErMXb4FrF5IYA2TxMH3giA2p0CsxP1ZK8FmMgqISXw/tYYJYpe4xK0n85kgzhaQWLLnPDOE LSrx8vE/VghbUeLphxdA8zmA6jUl1u/Sh2hVlJjS/RBqraDEyZlPWCYwis5CMnUWQscsJB2z kHQsYGRZxSiUWJKTm5iZk15upJeYm6mXnJ+7iRGSLvJ3MH78aH6IkYmD8RCjBAezkgivx70d cUK8KYmVValF+fFFpTmpxYcYnYDBMJFZihsUQcAYjzc2MJAShXEMTcxMzI3MDS1NzI2NlcR5 J61dEyckkA5MOdmpqQWpRTBDmDg4pRoY68Jnd8lsMNssbDHn+PFUvdijFr1/Ch88yPL4W5C8 +nL2vcnBmrO3pL2UX9kZw52989218zuiMudnh89faDFNISqBU8RR/8rnq7evlUtvYF6W7lf8 7efH5Ptbkxmlaj06o76ebNY3Fvm5yDttKrvGDIXgaVcXGri7P1uRvUgl89FpiW3xKhO2KLEU ZyQaajEXFScCABOXeQgsAwAA Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTGltaW5nLg0KDQpUYWtpbmcgdG8gYWNjb3VudCwgdGhhdCBib3RoIDMgYW5kIDcgcGF0Y2gg YWZmZWN0cyBNZGVQa2cuZGVjLCBzaG91bGQgcGF0Y2ggNyBiZSBiYXNlZCBvbiBNZGVQa2cgYWxy ZWFkeSB1cGRhdGVkIGJ5IHBhdGNoIDMsIG9yIG9yaWdpbmFsPw0KDQpSZWdhcmRzLCBPbGVrc2l5 Lg0KDQoNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IEdhbywgTGltaW5nIFtt YWlsdG86bGltaW5nLmdhb0BpbnRlbC5jb21dIA0KU2VudDogTW9uZGF5LCBNYXkgMTEsIDIwMjAg MTA6NDkgQU0NClRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgR2FvLCBMaW1pbmc7IExpdSwgWmhp Z3Vhbmc7IE9sZWtzaXkgWWFrb3ZsZXYNCkNjOiBGZW5nLCBCb2IgQzsgS2lubmV5LCBNaWNoYWVs IEQ7IEZlbGl4IFBvbHl1ZG92DQpTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSCB2NCA3 LzddIE1kZVBrZzogVUVGSSBKU09OIENhcHN1bGUgU3VwcG9ydA0KDQpPbGVrc2l5Og0KICBJIHJl dmlldyB0aGUgZnVsbCBwYXRjaCBzZXQuIFRoaXMgY2hhbmdlIHNob3VsZCBiZSBpbiBwYXRjaCAz LzcuIFBsZWFzZSB1cGRhdGUgaXQuIFdpdGggdGhpcyBjaGFuZ2UsIHlvdSBjYW4gYWRkIG15IFJC IFJldmlld2VkLWJ5OiBMaW1pbmcgR2FvIDxsaW1pbmcuZ2FvQGludGVsLmNvbT4uDQoNClRoYW5r cw0KTGltaW5nDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGRldmVsQGVk azIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIExpbWluZyBH YW8NCj4gU2VudDogTW9uZGF5LCBNYXkgMTEsIDIwMjAgMTA6MTQgUE0NCj4gVG86IExpdSwgWmhp Z3VhbmcgPHpoaWd1YW5nLmxpdUBpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgb2xl a3NpeXlAYW1pLmNvbQ0KPiBDYzogRmVuZywgQm9iIEMgPGJvYi5jLmZlbmdAaW50ZWwuY29tPjsg S2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgRmVsaXhwQGFt aS5jb20NCj4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjQgNy83XSBNZGVQa2c6 IFVFRkkgSlNPTiBDYXBzdWxlIFN1cHBvcnQNCj4gDQo+IE9sZWtzaXk6DQo+ICAgSSBkb24ndCBm aW5kIHRoaXMgR1VJRCBDIG1hY3JvIGRlZmluaXRpb24uIElzIGl0IGludHJvZHVjZWQgYnkgVUVG SSBKU09OPw0KPiANCj4gPiArICAjIyBJbmNsdWRlXEd1aWRcSGlpUGxhdGZvcm1TZXR1cEZvcm1z ZXQuaA0KPiA+ICsgIGdFZmlIaWlSZXNldFN0eWxlRm9ybXNldEd1aWQgICAgID0geyAweDc5MDIx N2JkLCAweGJlY2YsIDB4NDg1YiwgeyAweDkxLA0KPiA+IDB4NzAsIDB4NWYsIDB4ZjcsIDB4MTEs IDB4MzEsIDB4OGIsIDB4MjcgfX0NCj4gDQo+IFRoYW5rcw0KPiBMaW1pbmcNCj4gPiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IExpdSwgWmhpZ3VhbmcgPHpoaWd1YW5nLmxp dUBpbnRlbC5jb20+DQo+ID4gU2VudDogU2F0dXJkYXksIE1heSA5LCAyMDIwIDEwOjM0IEFNDQo+ ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBvbGVrc2l5eUBhbWkuY29tDQo+ID4gQ2M6IEZl bmcsIEJvYiBDIDxib2IuYy5mZW5nQGludGVsLmNvbT47IEdhbywgTGltaW5nIDxsaW1pbmcuZ2Fv QGludGVsLmNvbT47IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNv bT47DQo+ID4gRmVsaXhwQGFtaS5jb20NCj4gPiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQ QVRDSCB2NCA3LzddIE1kZVBrZzogVUVGSSBKU09OIENhcHN1bGUgU3VwcG9ydA0KPiA+DQo+ID4g SGkgT2xla3NpeS4NCj4gPg0KPiA+IEkgdGhpbmsgd2UgYWxsIGFncmVlIHRvIHJlbW92ZSB0aGUg Y29tbWVudCBtYXJrZXIgYmVmb3JlIHRoZSBmaW5hbCBwYXJhbWV0ZXIgaW4gc3RydWN0Lg0KPiA+ IFBsZWFzZSBzZWUgdGhpcyBtYWlsIGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC9tZXNz YWdlLzU3ODk1DQo+ID4gTGV0IG1lIGtub3cgaWYgeW91IGhhdmUgYW55IGNvbmNlcm4uDQo+ID4N Cj4gPiBBbmQgb25lIGxpdHRsZSBzdWdnZXN0aW9uLg0KPiA+IElmIHlvdSBzZW5kIGEgbmV3ZXIg dmVyc2lvbiBidXQgZG9uJ3QgY2hhbmdlIGFueXRoaW5nLCB5b3UgY2FuIHRha2UgdGhlIFJldmll d2VkLWJ5IGluIHlvdXIgY29tbWl0IG1lc3NhZ2UgaWYgeW91IGdldCBvbmUuDQo+ID4gU28sIHRo ZSByZXZpZXdlciBkb2Vzbid0IGhhdmUgdG8gcmV2aWV3IHRoZSBzYW1lIHBhdGNoIGFnYWluIPCf mIoNCj4gPg0KPiA+IFRoYW5rcw0KPiA+IFpoaWd1YW5nDQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxA ZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiBPbGVrc2l5DQo+ID4gPiBZYWtvdmxldg0KPiA+ ID4gU2VudDogU2F0dXJkYXksIE1heSA5LCAyMDIwIDU6NDYgQU0NCj4gPiA+IFRvOiBkZXZlbEBl ZGsyLmdyb3Vwcy5pbw0KPiA+ID4gQ2M6IEZlbmcsIEJvYiBDIDxib2IuYy5mZW5nQGludGVsLmNv bT47IEdhbywgTGltaW5nDQo+ID4gPiA8bGltaW5nLmdhb0BpbnRlbC5jb20+OyBLaW5uZXksIE1p Y2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+Ow0KPiA+ID4gRmVsaXhwQGFtaS5j b207IG9sZWtzaXl5QGFtaS5jb20NCj4gPiA+IFN1YmplY3Q6IFtlZGsyLWRldmVsXSBbUEFUQ0gg djQgNy83XSBNZGVQa2c6IFVFRkkgSlNPTiBDYXBzdWxlIFN1cHBvcnQNCj4gPiA+DQo+ID4gPiBB ZGRlZCBHdWlkcyBhbmQgc3RydWN0dXJlcywgdGhhdCBkZWZpbmVzIHRoZSB3b3JrIGZsb3cgdG8g cGVyZm9ybSBjYXBzdWxlDQo+ID4gPiB1cGRhdGUgdXNpbmcgSlNPTiBvYmplY3RzLg0KPiA+ID4g KFVFRkkgMi44IG1hbnRpcyAxOTM1KQ0KPiA+ID4NCj4gPiA+IFNpZ25lZC1vZmYtYnk6IE9sZWtz aXkgWWFrb3ZsZXYgPG9sZWtzaXl5QGFtaS5jb20+DQo+ID4gPiAtLS0NCj4gPiA+ICBNZGVQa2cv SW5jbHVkZS9HdWlkL0NhcHN1bGVSZXBvcnQuaCB8IDI5ICsrKysrKysrKysrDQo+ID4gPiAgTWRl UGtnL0luY2x1ZGUvR3VpZC9Kc29uQ2Fwc3VsZS5oICAgfCA5Nw0KPiA+ID4gKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ID4gIE1kZVBrZy9JbmNsdWRlL1VlZmkvVWVm aVNwZWMuaCAgICAgIHwgIDEgKw0KPiA+ID4gIE1kZVBrZy9NZGVQa2cuZGVjICAgICAgICAgICAg ICAgICAgIHwgMTEgKysrKysNCj4gPiA+ICA0IGZpbGVzIGNoYW5nZWQsIDEzOCBpbnNlcnRpb25z KCspDQo+ID4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IE1kZVBrZy9JbmNsdWRlL0d1aWQvSnNvbkNh cHN1bGUuaA0KPiA+ID4NCj4gPiA+IGRpZmYgLS1naXQgYS9NZGVQa2cvSW5jbHVkZS9HdWlkL0Nh cHN1bGVSZXBvcnQuaA0KPiA+ID4gYi9NZGVQa2cvSW5jbHVkZS9HdWlkL0NhcHN1bGVSZXBvcnQu aA0KPiA+ID4gaW5kZXggOTNkMmJiNy4uYWIwZjU1MiAxMDA2NDQNCj4gPiA+IC0tLSBhL01kZVBr Zy9JbmNsdWRlL0d1aWQvQ2Fwc3VsZVJlcG9ydC5oDQo+ID4gPiArKysgYi9NZGVQa2cvSW5jbHVk ZS9HdWlkL0NhcHN1bGVSZXBvcnQuaA0KPiA+ID4gQEAgLTkzLDYgKzkzLDM1IEBAIHR5cGVkZWYg c3RydWN0IHsNCj4gPiA+ICAgIC8vLw0KPiA+ID4gIH0gRUZJX0NBUFNVTEVfUkVTVUxUX1ZBUklB QkxFX0ZNUDsNCj4gPiA+DQo+ID4gPiArdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ID4gKw0KPiA+ID4g KyAgLy8vDQo+ID4gPiArICAvLy8gVmVyc2lvbiBvZiB0aGlzIHN0cnVjdHVyZSwgY3VycmVudGx5 IDB4MDAwMDAwMDEgIC8vLw0KPiA+ID4gKyAgVUlOVDMyICAgIFZlcnNpb247DQo+ID4gPiArDQo+ ID4gPiArICAvLy8NCj4gPiA+ICsgIC8vLyBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNh cHN1bGUgd2hvc2UgcHJvY2Vzc2luZyByZXN1bHQgaXMNCj4gPiA+IHJlY29yZGVkIGluIHRoaXMg dmFyaWFibGUuDQo+ID4gPiArICAvLy8gMHgwMDAwMDAwMCBiICAweEVGRkZGRkZGIGIgIEltcGxl bWVudGF0aW9uIFJlc2VydmVkICAvLy8NCj4gPiA+ICsgMHhGMDAwMDAwMCBiICAweEZGRkZGRkZG IGIgIFNwZWNpZmljYXRpb24gUmVzZXJ2ZWQgIC8vLyAjZGVmaW5lDQo+ID4gPiArIFJFREZJU0hf REVGSU5FRF9KU09OX1NDSEVNQSAweEYwMDAwMDAgIC8vLyBUaGUgSlNPTiBwYXlsb2FkIHNoYWxs DQo+ID4gPiArIGNvbmZvcm0gdG8gYSBSZWRmaXNoLWRlZmluZWQgSlNPTiBzY2hlbWEsIHNlZSBE TVRGLVJlZGZpc2ggIC8vLw0KPiA+ID4gKyBTcGVjaWZpY2F0aW9uLg0KPiA+ID4gKyAgLy8vDQo+ ID4gPiArICBVSU5UMzIgQ2Fwc3VsZUlkOw0KPiA+ID4gKw0KPiA+ID4gKyAgLy8vDQo+ID4gPiAr ICAvLy8gVGhlIGxlbmd0aCBvZiBSZXNwIGluIGJ5dGVzLg0KPiA+ID4gKyAgLy8vDQo+ID4gPiAr ICBVSU5UMzIgUmVzcExlbmd0aDsNCj4gPiA+ICsNCj4gPiA+ICsgIC8vLw0KPiA+ID4gKyAgLy8v IFZhcmlhYmxlIGxlbmd0aCBidWZmZXIgY29udGFpbmluZyB0aGUgcmVwbGllZCBKU09OIHBheWxv YWQgdG8gdGhlDQo+ID4gPiArIGNhbGxlciB3aG8gZGVsaXZlcmVkIEpTT04gIC8vLyBjYXBzdWxl IHRvIHN5c3RlbS4gVGhlIGRlZmluaXRpb24gb2YNCj4gPiA+ICsgdGhlIEpTT04gc2NoZW1hIHVz ZWQgaW4gdGhlIHJlcGxpZWQgcGF5bG9hZCBpcyBiZXlvbmQgIC8vLyB0aGUgc2NvcGUgb2YNCj4g PiA+IHRoaXMgc3BlY2lmaWNhdGlvbi4NCj4gPiA+ICsgIC8vLw0KPiA+ID4gKyAgLy8vIFVJTlQ4 IFJlc3BbXTsNCj4gPiA+ICsgfSBFRklfQ0FQU1VMRV9SRVNVTFRfVkFSSUFCTEVfSlNPTjsNCj4g PiA+DQo+ID4gPiAgZXh0ZXJuIEVGSV9HVUlEIGdFZmlDYXBzdWxlUmVwb3J0R3VpZDsNCj4gPiA+ DQo+ID4gPiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0luY2x1ZGUvR3VpZC9Kc29uQ2Fwc3VsZS5oDQo+ ID4gPiBiL01kZVBrZy9JbmNsdWRlL0d1aWQvSnNvbkNhcHN1bGUuaA0KPiA+ID4gbmV3IGZpbGUg bW9kZSAxMDA2NDQNCj4gPiA+IGluZGV4IDAwMDAwMDAuLjcyMTYzNmYNCj4gPiA+IC0tLSAvZGV2 L251bGwNCj4gPiA+ICsrKyBiL01kZVBrZy9JbmNsdWRlL0d1aWQvSnNvbkNhcHN1bGUuaA0KPiA+ ID4gQEAgLTAsMCArMSw5NyBAQA0KPiA+ID4gKy8qKiBAZmlsZQ0KPiA+ID4gK0d1aWQgJiBkYXRh IHN0cnVjdHVyZSBmb3IgdGFibGVzIGRlZmluZWQgZm9yIHJlcG9ydGluZyBmaXJtd2FyZQ0KPiA+ ID4gK2NvbmZpZ3VyYXRpb24gZGF0YSB0byBFRkkgQ29uZmlndXJhdGlvbiBUYWJsZXMgYW5kIGFs c28gZm9yIHByb2Nlc3NpbmcgSlNPTg0KPiA+ID4gcGF5bG9hZCBjYXBzdWxlLg0KPiA+ID4gKw0K PiA+ID4gKw0KPiA+ID4gK0NvcHlyaWdodCAoYykgMjAyMCwgQW1lcmljYW4gTWVnYXRyZW5kcyBJ bnRlcm5hdGlvbmFsIExMQy4gQWxsIHJpZ2h0cw0KPiA+ID4gK3Jlc2VydmVkLjxCUj4NCj4gPiA+ ICtTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ID4gKw0K PiA+ID4gKyoqLw0KPiA+ID4gKw0KPiA+ID4gKyNpZm5kZWYgX0pTT05fQ0FQU1VMRV9HVUlEX0hf Xw0KPiA+ID4gKyNkZWZpbmUgX0pTT05fQ0FQU1VMRV9HVUlEX0hfXw0KPiA+ID4gKw0KPiA+ID4g Ky8vDQo+ID4gPiArLy8gVGhlIGFkZHJlc3MgcmVwb3J0ZWQgaW4gdGhlIHRhYmxlIGVudHJ5IGlk ZW50aWZpZWQgYnkNCj4gPiA+ICtFRklfSlNPTl9DQVBTVUxFX0RBVEFfVEFCTEVfR1VJRCB3aWxs IGJlIC8vIHJlZmVyZW5jZWQgYXMgcGh5c2ljYWwNCj4gPiA+IGFuZA0KPiA+ID4gK3dpbGwgbm90 IGJlIGZpeGVkIHVwIHdoZW4gdHJhbnNpdGlvbiBmcm9tIHByZWJvb3QgdG8gcnVudGltZSBwaGFz ZS4gVGhlDQo+ID4gPiArLy8gYWRkcmVzc2VzIHJlcG9ydGVkIGluIHRoZXNlIHRhYmxlIGVudHJp ZXMgaWRlbnRpZmllZCBieQ0KPiA+ID4gK0VGSV9KU09OX0NPTkZJR19EQVRBX1RBQkxFX0dVSUQg YW5kIC8vDQo+ID4gPiBFRklfSlNPTl9DQVBTVUxFX1JFU1VMVF9UQUJMRV9HVUlEIHdpbGwgYmUg cmVmZXJlbmNlZCBhcyB2aXJ0dWFsIGFuZA0KPiA+ID4gd2lsbCBiZSBmaXhlZCB1cCB3aGVuIC8v IHRyYW5zaXRpb24gZnJvbSBwcmVib290IHRvIHJ1bnRpbWUgcGhhc2UuDQo+ID4gPiArLy8NCj4g PiA+ICsjZGVmaW5lIEVGSV9KU09OX0NPTkZJR19EQVRBX1RBQkxFX0dVSUQgXA0KPiA+ID4gKyAg ICB7MHg4NzM2N2Y4NywgMHgxMTE5LCAweDQxY2UsIFwNCj4gPiA+ICsgICAgezB4YWEsIDB4ZWMs IDB4OGIsIDB4ZTAsIDB4MTEsIDB4MWYsIDB4NTUsIDB4OGEgfX0gI2RlZmluZQ0KPiA+ID4gK0VG SV9KU09OX0NBUFNVTEVfREFUQV9UQUJMRV9HVUlEIFwNCj4gPiA+ICsgICAgezB4MzVlN2E3MjUs IDB4OGRkMiwgMHg0Y2FjLCBcDQo+ID4gPiArICAgIHsweDgwLCAweDExLCAweDMzLCAweGNkLCAw eGE4LCAweDEwLCAweDkwLCAweDU2IH19ICNkZWZpbmUNCj4gPiA+ICtFRklfSlNPTl9DQVBTVUxF X1JFU1VMVF9UQUJMRV9HVUlEIFwNCj4gPiA+ICsgICAgezB4ZGJjNDYxYzMsIDB4YjNkZSwgMHg0 MjJhLFwNCj4gPiA+ICsgICAgezB4YjksIDB4YjQsIDB4OTgsIDB4ODYsIDB4ZmQsIDB4NDksIDB4 YTEsIDB4ZTUgfX0gI2RlZmluZQ0KPiA+ID4gK0VGSV9KU09OX0NBUFNVTEVfSURfR1VJRCBcDQo+ ID4gPiArICAgIHsweDY3ZDZmNGNkLCAweGQ2YjgsICAweDQ1NzMsIFwNCj4gPiA+ICsgICAgezB4 YmYsIDB4NGEsIDB4ZGUsIDB4NWUsIDB4MjUsIDB4MmQsIDB4NjEsIDB4YWUgfX0NCj4gPiA+ICsN Cj4gPiA+ICsNCj4gPiA+ICsjcHJhZ21hIHBhY2soMSkNCj4gPiA+ICsNCj4gPiA+ICt0eXBlZGVm IHN0cnVjdCB7DQo+ID4gPiArICAvLy8NCj4gPiA+ICsgIC8vLyBWZXJzaW9uIG9mIHRoZSBzdHJ1 Y3R1cmUsIGluaXRpYWxseSAweDAwMDAwMDAxLg0KPiA+ID4gKyAgLy8vDQo+ID4gPiArICBVSU5U MzIgVmVyc2lvbjsNCj4gPiA+ICsNCj4gPiA+ICsgIC8vLw0KPiA+ID4gKyAgLy8vIFRoZSB1bmlx dWUgaWRlbnRpZmllciBvZiB0aGlzIGNhcHN1bGUuDQo+ID4gPiArICAvLy8NCj4gPiA+ICsgIFVJ TlQzMiBDYXBzdWxlSWQ7DQo+ID4gPiArDQo+ID4gPiArICAvLy8NCj4gPiA+ICsgIC8vLyBUaGUg bGVuZ3RoIG9mIHRoZSBKU09OIHBheWxvYWQgaW1tZWRpYXRlbHkgZm9sbG93aW5nIHRoaXMgaGVh ZGVyLCBpbg0KPiA+ID4gYnl0ZXMuDQo+ID4gPiArICAvLy8NCj4gPiA+ICsgIFVJTlQzMiBQYXls b2FkTGVuZ3RoOw0KPiA+ID4gKw0KPiA+ID4gKyAgLy8vDQo+ID4gPiArICAvLy8gVmFyaWFibGUg bGVuZ3RoIGJ1ZmZlciBjb250YWluaW5nIHRoZSBKU09OIHBheWxvYWQgdGhhdCBzaG91bGQgYmUN Cj4gPiA+ICtwYXJzZWQgYW5kIGFwcGxpZWQgdG8gdGhlIHN5c3RlbS4gVGhlDQo+ID4gPiArICAv Ly8gZGVmaW5pdGlvbiBvZiB0aGUgSlNPTiBzY2hlbWEgdXNlZCBpbiB0aGUgcGF5bG9hZCBpcyBi ZXlvbmQgdGhlIHNjb3BlDQo+ID4gPiBvZiB0aGlzIHNwZWNpZmljYXRpb24uDQo+ID4gPiArICAv Ly8gVUlOVDggUGF5bG9hZFtdOw0KPiA+ID4gK30gRUZJX0pTT05fQ0FQU1VMRV9IRUFERVI7DQo+ ID4gPiArDQo+ID4gPiArdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ID4gKyAgLy8vDQo+ID4gPiArICAv Ly8gVGhlIGxlbmd0aCBvZiB0aGUgZm9sbG93aW5nIENvbmZpZ0RhdGEsIGluIGJ5dGVzLg0KPiA+ ID4gKyAgLy8vDQo+ID4gPiArICBVSU5UMzIgQ29uZmlnRGF0YUxlbmd0aDsNCj4gPiA+ICsNCj4g PiA+ICsgIC8vLw0KPiA+ID4gKyAgLy8vIFZhcmlhYmxlIGxlbmd0aCBidWZmZXIgY29udGFpbmlu ZyB0aGUgSlNPTiBwYXlsb2FkIHRoYXQgZGVzY3JpYmVzDQo+ID4gPiArb25lIGdyb3VwIG9mIGNv bmZpZ3VyYXRpb24gZGF0YSB3aXRoaW4NCj4gPiA+ICsgIC8vLyBjdXJyZW50IHN5c3RlbS4gVGhl IGRlZmluaXRpb24gb2YgdGhlIEpTT04gc2NoZW1hIHVzZWQgaW4gdGhpcyBwYXlsb2FkDQo+ID4g PiBpcyBiZXlvbmQgdGhlIHNjb3BlIG9mIHRoaXMgc3BlY2lmaWNhdGlvbi4NCj4gPiA+ICsgIC8v Lw0KPiA+ID4gKyAgLy8vVUlOVDggQ29uZmlnRGF0YVtDb25maWdEYXRhTGVuZ3RoXTsgfSBFRklf SlNPTl9DT05GSUdfREFUQV9JVEVNOw0KPiA+ID4gKw0KPiA+ID4gK3R5cGVkZWYgc3RydWN0IHsN Cj4gPiA+ICsgIC8vLw0KPiA+ID4gKyAgLy8vIFZlcnNpb24gb2YgdGhlIHN0cnVjdHVyZSwgaW5p dGlhbGx5IDB4MDAwMDAwMDEuDQo+ID4gPiArICAvLy8NCj4gPiA+ICsgIFVJTlQzMiBWZXJzaW9u Ow0KPiA+ID4gKw0KPiA+ID4gKyAgLy8vDQo+ID4gPiArICAvLy8vVGhlIHRvdGFsIGxlbmd0aCBv ZiBFRklfSlNPTl9DQVBTVUxFX0NPTkZJR19EQVRBLCBpbiBieXRlcy4NCj4gPiA+ICsgIC8vLw0K PiA+ID4gKyAgVUlOVDMyIFRvdGFsTGVuZ3RoOw0KPiA+ID4gKw0KPiA+ID4gKyAgLy8vDQo+ID4g PiArICAvLy8gQXJyYXkgb2YgY29uZmlndXJhdGlvbiBkYXRhIGdyb3Vwcy4NCj4gPiA+ICsgIC8v Lw0KPiA+ID4gKyAgLy8vIEVGSV9KU09OX0NPTkZJR19EQVRBX0lURU0gQ29uZmlnRGF0YUxpc3Rb XTsgfQ0KPiA+ID4gK0VGSV9KU09OX0NBUFNVTEVfQ09ORklHX0RBVEE7DQo+ID4gPiArDQo+ID4g PiArI3ByYWdtYSBwYWNrKCkNCj4gPiA+ICsNCj4gPiA+ICtleHRlcm4gRUZJX0dVSUQgZ0VmaUpz b25Db25maWdEYXRhVGFibGVHdWlkOyBleHRlcm4gRUZJX0dVSUQNCj4gPiA+ICtnRWZpSnNvbkNh cHN1bGVEYXRhVGFibGVHdWlkOyBleHRlcm4gRUZJX0dVSUQNCj4gPiA+ICtnRWZpSnNvbkNhcHN1 bGVSZXN1bHRUYWJsZUd1aWQ7IGV4dGVybiBFRklfR1VJRCBnRWZpSnNvbkNhcHN1bGVJZEd1aWQ7 DQo+ID4gPiArDQo+ID4gPiArDQo+ID4gPiArI2VuZGlmDQo+ID4gPiBkaWZmIC0tZ2l0IGEvTWRl UGtnL0luY2x1ZGUvVWVmaS9VZWZpU3BlYy5oDQo+ID4gPiBiL01kZVBrZy9JbmNsdWRlL1VlZmkv VWVmaVNwZWMuaCBpbmRleCBiOTI4MmNjLi4zNTQ3MzQ1IDEwMDY0NA0KPiA+ID4gLS0tIGEvTWRl UGtnL0luY2x1ZGUvVWVmaS9VZWZpU3BlYy5oDQo+ID4gPiArKysgYi9NZGVQa2cvSW5jbHVkZS9V ZWZpL1VlZmlTcGVjLmgNCj4gPiA+IEBAIC0xNzgzLDYgKzE3ODMsNyBAQCBFRklfU1RBVFVTDQo+ ID4gPiAgI2RlZmluZSBFRklfT1NfSU5ESUNBVElPTlNfRk1QX0NBUFNVTEVfU1VQUE9SVEVEDQo+ ID4gPiAweDAwMDAwMDAwMDAwMDAwMDgNCj4gPiA+ICAjZGVmaW5lIEVGSV9PU19JTkRJQ0FUSU9O U19DQVBTVUxFX1JFU1VMVF9WQVJfU1VQUE9SVEVEDQo+ID4gPiAweDAwMDAwMDAwMDAwMDAwMTAN Cj4gPiA+ICAjZGVmaW5lIEVGSV9PU19JTkRJQ0FUSU9OU19TVEFSVF9QTEFURk9STV9SRUNPVkVS WQ0KPiA+ID4gMHgwMDAwMDAwMDAwMDAwMDQwDQo+ID4gPiArI2RlZmluZSBFRklfT1NfSU5ESUNB VElPTlNfSlNPTl9DT05GSUdfREFUQV9SRUZSRVNIDQo+ID4gPiAweDAwMDAwMDAwMDAwMDAwODAN Cj4gPiA+DQo+ID4gPiAgLy8NCj4gPiA+ICAvLyBFRkkgUnVudGltZSBTZXJ2aWNlcyBUYWJsZQ0K PiA+ID4gZGlmZiAtLWdpdCBhL01kZVBrZy9NZGVQa2cuZGVjIGIvTWRlUGtnL01kZVBrZy5kZWMg aW5kZXgNCj4gPiA+IDBiOWM0YmMuLjVkYzAyZjIgMTAwNjQ0DQo+ID4gPiAtLS0gYS9NZGVQa2cv TWRlUGtnLmRlYw0KPiA+ID4gKysrIGIvTWRlUGtnL01kZVBrZy5kZWMNCj4gPiA+IEBAIC02NDUs NiArNjQ1LDE3IEBADQo+ID4gPiAgICAjIyBJbmNsdWRlL0d1aWQvQnR0LmgNCj4gPiA+ICAgIGdF ZmlCdHRBYnN0cmFjdGlvbkd1aWQgICAgICAgICA9IHsgMHgxODYzM2JmYywgMHgxNzM1LCAweDQy MTcsIHsgMHg4YSwgMHhjOSwNCj4gPiA+IDB4MTcsIDB4MjMsIDB4OTIsIDB4ODIsIDB4ZDMsIDB4 ZjggfX0NCj4gPiA+DQo+ID4gPiArICAjIEdVSURzIGRlZmluZWQgaW4gVUVGSTIuOA0KPiA+ID4g KyAgIw0KPiA+ID4gKyAgIyMgSW5jbHVkZS9HdWlkL0pzb25DYXBzdWxlLmgNCj4gPiA+ICsgIGdF ZmlKc29uQ29uZmlnRGF0YVRhYmxlR3VpZCAgICAgID0geyAweDg3MzY3Zjg3LCAweDExMTksIDB4 NDFjZSwgeyAweGFhLA0KPiA+ID4gMHhlYywgMHg4YiwgMHhlMCwgMHgxMSwgMHgxZiwgMHg1NSwg MHg4YSB9fQ0KPiA+ID4gKyAgZ0VmaUpzb25DYXBzdWxlRGF0YVRhYmxlR3VpZCAgICAgPSB7IDB4 MzVlN2E3MjUsIDB4OGRkMiwgMHg0Y2FjLCB7IDB4ODAsDQo+ID4gPiAweDExLCAweDMzLCAweGNk LCAweGE4LCAweDEwLCAweDkwLCAweDU2IH19DQo+ID4gPiArICBnRWZpSnNvbkNhcHN1bGVSZXN1 bHRUYWJsZUd1aWQgICA9IHsgMHhkYmM0NjFjMywgMHhiM2RlLCAweDQyMmEsIHsgMHhiOSwNCj4g PiA+IDB4YjQsIDB4OTgsIDB4ODYsIDB4ZmQsIDB4NDksIDB4YTEsIDB4ZTUgfX0NCj4gPiA+ICsg IGdFZmlKc29uQ2Fwc3VsZUlkR3VpZCAgICAgICAgICAgID0geyAweDY3ZDZmNGNkLCAweGQ2Yjgs IDB4NDU3MywgeyAweGJmLCAweDRhLA0KPiA+ID4gMHhkZSwgMHg1ZSwgMHgyNSwgMHgyZCwgMHg2 MSwgMHhhZSB9fQ0KPiA+ID4gKw0KPiA+ID4gKyAgIyMgSW5jbHVkZVxHdWlkXEhpaVBsYXRmb3Jt U2V0dXBGb3Jtc2V0LmgNCj4gPiA+ICsgIGdFZmlIaWlSZXNldFN0eWxlRm9ybXNldEd1aWQgICAg ID0geyAweDc5MDIxN2JkLCAweGJlY2YsIDB4NDg1YiwgeyAweDkxLA0KPiA+ID4gMHg3MCwgMHg1 ZiwgMHhmNywgMHgxMSwgMHgzMSwgMHg4YiwgMHgyNyB9fQ0KPiA+ID4gKw0KPiA+ID4gICAgIw0K PiA+ID4gICAgIyBHVUlEIGRlZmluZWQgaW4gUEkxLjANCj4gPiA+ICAgICMNCj4gPiA+IC0tDQo+ ID4gPiAyLjkuMC53aW5kb3dzLjENCj4gPiA+DQo+ID4gPg0KPiA+ID4gUGxlYXNlIGNvbnNpZGVy IHRoZSBlbnZpcm9ubWVudCBiZWZvcmUgcHJpbnRpbmcgdGhpcyBlbWFpbC4NCj4gPiA+DQo+ID4g PiBUaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGluIHRoaXMgbWVzc2FnZSBtYXkgYmUgY29uZmlk ZW50aWFsIGFuZA0KPiA+ID4gcHJvcHJpZXRhcnkgdG8gQW1lcmljYW4gTWVnYXRyZW5kcyAoQU1J KS4gIFRoaXMgY29tbXVuaWNhdGlvbiBpcyBpbnRlbmRlZA0KPiA+ID4gdG8gYmUgcmVhZCBvbmx5 IGJ5IHRoZSBpbmRpdmlkdWFsIG9yIGVudGl0eSB0byB3aG9tIGl0IGlzIGFkZHJlc3NlZCBvciBi eSB0aGVpcg0KPiA+ID4gZGVzaWduZWUuIElmIHRoZSByZWFkZXIgb2YgdGhpcyBtZXNzYWdlIGlz IG5vdCB0aGUgaW50ZW5kZWQgcmVjaXBpZW50LCB5b3UgYXJlDQo+ID4gPiBvbiBub3RpY2UgdGhh dCBhbnkgZGlzdHJpYnV0aW9uIG9mIHRoaXMgbWVzc2FnZSwgaW4gYW55IGZvcm0sIGlzIHN0cmlj dGx5DQo+ID4gPiBwcm9oaWJpdGVkLiAgUGxlYXNlIHByb21wdGx5IG5vdGlmeSB0aGUgc2VuZGVy IGJ5IHJlcGx5IGUtbWFpbCBvciBieQ0KPiA+ID4gdGVsZXBob25lIGF0IDc3MC0yNDYtODYwMCwg YW5kIHRoZW4gZGVsZXRlIG9yIGRlc3Ryb3kgYWxsIGNvcGllcyBvZiB0aGUNCj4gPiA+IHRyYW5z bWlzc2lvbi4NCj4gPiA+DQo+ID4gPg0KPiANCj4gDQo+IA0KDQoNClBsZWFzZSBjb25zaWRlciB0 aGUgZW52aXJvbm1lbnQgYmVmb3JlIHByaW50aW5nIHRoaXMgZW1haWwuDQoNClRoZSBpbmZvcm1h dGlvbiBjb250YWluZWQgaW4gdGhpcyBtZXNzYWdlIG1heSBiZSBjb25maWRlbnRpYWwgYW5kIHBy b3ByaWV0YXJ5IHRvIEFtZXJpY2FuIE1lZ2F0cmVuZHMgKEFNSSkuICBUaGlzIGNvbW11bmljYXRp b24gaXMgaW50ZW5kZWQgdG8gYmUgcmVhZCBvbmx5IGJ5IHRoZSBpbmRpdmlkdWFsIG9yIGVudGl0 eSB0byB3aG9tIGl0IGlzIGFkZHJlc3NlZCBvciBieSB0aGVpciBkZXNpZ25lZS4gSWYgdGhlIHJl YWRlciBvZiB0aGlzIG1lc3NhZ2UgaXMgbm90IHRoZSBpbnRlbmRlZCByZWNpcGllbnQsIHlvdSBh cmUgb24gbm90aWNlIHRoYXQgYW55IGRpc3RyaWJ1dGlvbiBvZiB0aGlzIG1lc3NhZ2UsIGluIGFu eSBmb3JtLCBpcyBzdHJpY3RseSBwcm9oaWJpdGVkLiAgUGxlYXNlIHByb21wdGx5IG5vdGlmeSB0 aGUgc2VuZGVyIGJ5IHJlcGx5IGUtbWFpbCBvciBieSB0ZWxlcGhvbmUgYXQgNzcwLTI0Ni04NjAw LCBhbmQgdGhlbiBkZWxldGUgb3IgZGVzdHJveSBhbGwgY29waWVzIG9mIHRoZSB0cmFuc21pc3Np b24uDQo=