From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.136; helo=mga12.intel.com; envelope-from=eric.dong@intel.com; receiver=edk2-devel@lists.01.org Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 49595210E129A for ; Thu, 9 Aug 2018 20:42:47 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Aug 2018 20:42:47 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,218,1531810800"; d="scan'208";a="79101535" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by fmsmga004.fm.intel.com with ESMTP; 09 Aug 2018 20:39:22 -0700 Received: from fmsmsx101.amr.corp.intel.com (10.18.124.199) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 9 Aug 2018 20:39:21 -0700 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by fmsmsx101.amr.corp.intel.com (10.18.124.199) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 9 Aug 2018 20:39:21 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.226]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.240]) with mapi id 14.03.0319.002; Fri, 10 Aug 2018 11:39:17 +0800 From: "Dong, Eric" To: 'Laszlo Ersek' CC: "Ni, Ruiyu" , "Kinney, Michael D" , "edk2-devel@lists.01.org" Thread-Topic: [edk2] [Patch v2 2/2] UefiCpuPkg/CpuS3DataDxe: Change Memory Type and address limitation. Thread-Index: AQHULusgcvDa4a1yAEi7+fQ9v2ItkqS1jUAAgAGL1JA= Date: Fri, 10 Aug 2018 03:39:16 +0000 Message-ID: References: <20180808074006.21360-1-eric.dong@intel.com> <20180808074006.21360-2-eric.dong@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [Patch v2 2/2] UefiCpuPkg/CpuS3DataDxe: Change Memory Type and address limitation. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Aug 2018 03:42:48 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTGFzemxvLA0KDQoNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBl ZGsyLWRldmVsIFttYWlsdG86ZWRrMi1kZXZlbC1ib3VuY2VzQGxpc3RzLjAxLm9yZ10gT24gQmVo YWxmIE9mDQo+IExhc3psbyBFcnNlaw0KPiBTZW50OiBUaHVyc2RheSwgQXVndXN0IDksIDIwMTgg MTI6NTUgQU0NCj4gVG86IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5jb20+DQo+IENjOiBO aSwgUnVpeXUgPHJ1aXl1Lm5pQGludGVsLmNvbT47IEtpbm5leSwgTWljaGFlbCBEDQo+IDxtaWNo YWVsLmQua2lubmV5QGludGVsLmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+IFN1Ympl Y3Q6IFJlOiBbZWRrMl0gW1BhdGNoIHYyIDIvMl0gVWVmaUNwdVBrZy9DcHVTM0RhdGFEeGU6IENo YW5nZQ0KPiBNZW1vcnkgVHlwZSBhbmQgYWRkcmVzcyBsaW1pdGF0aW9uLg0KPiANCj4gSGVsbG8g RXJpYywNCj4gDQo+IE9uIDA4LzA4LzE4IDA5OjQwLCBFcmljIERvbmcgd3JvdGU6DQo+ID4gQmVj YXVzZSBDcHVTM0RhdGEgbWVtb3J5IHdpbGwgYmUgY29weSB0byBzbXJhbSBhdCBTbW1SZWFkVG9M b2NrDQo+IHBvaW50LA0KPiA+IHNvIHRoZSBtZW1vcnkgdHlwZSBubyBuZWVkIHRvIGJlIEFDUEkg TlZTIHR5cGUsIGFsc28gdGhlIGFkZHJlc3Mgbm90DQo+ID4gbGltaXQgdG8gYmVsb3cgNEcuDQo+ ID4gVGhpcyBjaGFuZ2UgcmVtb3ZlIHRoZSBsaW1pdCBvZiBBQ1BJIE5WUyBtZW1vcnkgdHlwZSBh bmQgYmVsb3cgNEcuDQo+ID4NCj4gPiBQYXNzIE9TIGJvb3QgYW5kIHJlc3VtZSBmcm9tIFMzIHRl c3QuDQo+ID4NCj4gPiBCdWd6OiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19i dWcuY2dpP2lkPTk1OQ0KPiA+DQo+ID4gUmVwb3J0ZWQtYnk6IE1hcnZpbiBIw6R1c2VyIDxNYXJ2 aW4uSGFldXNlckBvdXRsb29rLmNvbT4NCj4gPiBTdWdnZXN0ZWQtYnk6IEZhbiBKZWZmIDx2YW5q ZWZmXzkxOUBob3RtYWlsLmNvbT4NCj4gDQo+ICgxKSBJIGJlbGlldmUgdGhlc2UgdGFncyBkb24n dCBhcHBseSB0byB0aGlzIHBhdGNoIC0tIHRoaXMgcGF0Y2ggc2VlbXMgdG8gYmUgYQ0KPiBuZXcg aWRlYSAvIGFkZGl0aW9uLg0KPiANCg0KWWVzLCB3aWxsIHJlbW92ZSBpdCBpbiBteSBuZXh0IHZl cnNpb24gcGF0Y2guDQoNCj4gDQo+ID4gQ2M6IE1hcnZpbiBIw6R1c2VyIDxNYXJ2aW4uSGFldXNl ckBvdXRsb29rLmNvbT4NCj4gPiBDYzogRmFuIEplZmYgPHZhbmplZmZfOTE5QGhvdG1haWwuY29t Pg0KPiA+IENjOiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPg0KPiA+IENjOiBSdWl5 dSBOaSA8cnVpeXUubmlAaW50ZWwuY29tPg0KPiA+IENvbnRyaWJ1dGVkLXVuZGVyOiBUaWFub0Nv cmUgQ29udHJpYnV0aW9uIEFncmVlbWVudCAxLjENCj4gPiBTaWduZWQtb2ZmLWJ5OiBFcmljIERv bmcgPGVyaWMuZG9uZ0BpbnRlbC5jb20+DQo+ID4gLS0tDQo+ID4gIFVlZmlDcHVQa2cvQ3B1UzNE YXRhRHhlL0NwdVMzRGF0YS5jICAgICAgfCA2MCArKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCj4gLS0NCj4gPiAgVWVmaUNwdVBrZy9DcHVTM0RhdGFEeGUvQ3B1UzNEYXRhRHhlLmluZiB8 ICAxICsNCj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCA0NyBkZWxldGlv bnMoLSkNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0NwdVMzRGF0YUR4ZS9DcHVT M0RhdGEuYw0KPiA+IGIvVWVmaUNwdVBrZy9DcHVTM0RhdGFEeGUvQ3B1UzNEYXRhLmMNCj4gPiBp bmRleCBkY2NiNDA2YjhkLi5kOGViOGM5NzZmIDEwMDY0NA0KPiA+IC0tLSBhL1VlZmlDcHVQa2cv Q3B1UzNEYXRhRHhlL0NwdVMzRGF0YS5jDQo+ID4gKysrIGIvVWVmaUNwdVBrZy9DcHVTM0RhdGFE eGUvQ3B1UzNEYXRhLmMNCj4gPiBAQCAtMzEsNiArMzEsNyBAQCBXSVRIT1VUIFdBUlJBTlRJRVMg T1IgUkVQUkVTRU5UQVRJT05TIE9GDQo+IEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBM SUVELg0KPiA+ICAjaW5jbHVkZSA8TGlicmFyeS9VZWZpQm9vdFNlcnZpY2VzVGFibGVMaWIuaD4N Cj4gPiAgI2luY2x1ZGUgPExpYnJhcnkvRGVidWdMaWIuaD4NCj4gPiAgI2luY2x1ZGUgPExpYnJh cnkvTXRyckxpYi5oPg0KPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9NZW1vcnlBbGxvY2F0aW9uTGli Lmg+DQo+ID4NCj4gPiAgI2luY2x1ZGUgPFByb3RvY29sL01wU2VydmljZS5oPg0KPiA+ICAjaW5j bHVkZSA8R3VpZC9FdmVudEdyb3VwLmg+DQo+ID4gQEAgLTQ1LDQyICs0Niw2IEBAIHR5cGVkZWYg c3RydWN0IHsNCj4gPiAgICBJQTMyX0RFU0NSSVBUT1IgICAgICAgICAgIElkdHJQcm9maWxlOw0K PiA+ICB9IEFDUElfQ1BVX0RBVEFfRVg7DQo+ID4NCj4gPiAtLyoqDQo+ID4gLSAgQWxsb2NhdGUg RWZpQUNQSU1lbW9yeU5WUyBiZWxvdyA0RyBtZW1vcnkgYWRkcmVzcy4NCj4gPiAtDQo+ID4gLSAg VGhpcyBmdW5jdGlvbiBhbGxvY2F0ZXMgRWZpQUNQSU1lbW9yeU5WUyBiZWxvdyA0RyBtZW1vcnkg YWRkcmVzcy4NCj4gPiAtDQo+ID4gLSAgQHBhcmFtW2luXSBTaXplICAgU2l6ZSBvZiBtZW1vcnkg dG8gYWxsb2NhdGUuDQo+ID4gLQ0KPiA+IC0gIEByZXR1cm4gICAgICAgQWxsb2NhdGVkIGFkZHJl c3MgZm9yIG91dHB1dC4NCj4gPiAtDQo+ID4gLSoqLw0KPiA+IC1WT0lEICoNCj4gPiAtQWxsb2Nh dGVBY3BpTnZzTWVtb3J5QmVsb3c0RyAoDQo+ID4gLSAgSU4gVUlOVE4gIFNpemUNCj4gPiAtICAp DQo+ID4gLXsNCj4gPiAtICBFRklfUEhZU0lDQUxfQUREUkVTUyAgQWRkcmVzczsNCj4gPiAtICBF RklfU1RBVFVTICAgICAgICAgICAgU3RhdHVzOw0KPiA+IC0gIFZPSUQgICAgICAgICAgICAgICAg ICAqQnVmZmVyOw0KPiA+IC0NCj4gPiAtICBBZGRyZXNzID0gQkFTRV80R0IgLSAxOw0KPiA+IC0g IFN0YXR1cyAgPSBnQlMtPkFsbG9jYXRlUGFnZXMgKA0KPiA+IC0gICAgICAgICAgICAgICAgICAg QWxsb2NhdGVNYXhBZGRyZXNzLA0KPiA+IC0gICAgICAgICAgICAgICAgICAgRWZpQUNQSU1lbW9y eU5WUywNCj4gPiAtICAgICAgICAgICAgICAgICAgIEVGSV9TSVpFX1RPX1BBR0VTIChTaXplKSwN Cj4gPiAtICAgICAgICAgICAgICAgICAgICZBZGRyZXNzDQo+ID4gLSAgICAgICAgICAgICAgICAg ICApOw0KPiA+IC0gIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gPiAtICAgIHJldHVybiBO VUxMOw0KPiA+IC0gIH0NCj4gPiAtDQo+ID4gLSAgQnVmZmVyID0gKFZPSUQgKikoVUlOVE4pQWRk cmVzczsNCj4gPiAtICBaZXJvTWVtIChCdWZmZXIsIFNpemUpOw0KPiA+IC0NCj4gPiAtICByZXR1 cm4gQnVmZmVyOw0KPiA+IC19DQo+ID4gLQ0KPiA+ICAvKioNCj4gPiAgICBDYWxsYmFjayBmdW5j dGlvbiBleGVjdXRlZCB3aGVuIHRoZSBFbmRPZkR4ZSBldmVudCBncm91cCBpcyBzaWduYWxlZC4N Cj4gPg0KPiA+IEBAIC0xNTAsNyArMTE1LDYgQEAgQ3B1UzNEYXRhSW5pdGlhbGl6ZSAoDQo+ID4g ICAgRUZJX01QX1NFUlZJQ0VTX1BST1RPQ09MICAgKk1wU2VydmljZXM7DQo+ID4gICAgVUlOVE4g ICAgICAgICAgICAgICAgICAgICAgTnVtYmVyT2ZDcHVzOw0KPiA+ICAgIFVJTlROICAgICAgICAg ICAgICAgICAgICAgIE51bWJlck9mRW5hYmxlZFByb2Nlc3NvcnM7DQo+ID4gLSAgVk9JRCAgICAg ICAgICAgICAgICAgICAgICAgKlN0YWNrOw0KPiA+ICAgIFVJTlROICAgICAgICAgICAgICAgICAg ICAgIFRhYmxlU2l6ZTsNCj4gPiAgICBDUFVfUkVHSVNURVJfVEFCTEUgICAgICAgICAqUmVnaXN0 ZXJUYWJsZTsNCj4gPiAgICBVSU5UTiAgICAgICAgICAgICAgICAgICAgICBJbmRleDsNCj4gPiBA QCAtMTcxLDEwICsxMzUsNyBAQCBDcHVTM0RhdGFJbml0aWFsaXplICgNCj4gPiAgICAvLw0KPiA+ ICAgIE9sZEFjcGlDcHVEYXRhID0gKEFDUElfQ1BVX0RBVEEgKikgKFVJTlROKSBQY2RHZXQ2NA0K PiA+IChQY2RDcHVTM0RhdGFBZGRyZXNzKTsNCj4gPg0KPiA+IC0gIC8vDQo+ID4gLSAgLy8gQWxs b2NhdGUgQUNQSSBOVlMgbWVtb3J5IGJlbG93IDRHIG1lbW9yeSBmb3IgdXNlIG9uIEFDUEkgUzMN Cj4gcmVzdW1lLg0KPiA+IC0gIC8vDQo+ID4gLSAgQWNwaUNwdURhdGFFeCA9IEFsbG9jYXRlQWNw aU52c01lbW9yeUJlbG93NEcgKHNpemVvZg0KPiA+IChBQ1BJX0NQVV9EQVRBX0VYKSk7DQo+ID4g KyAgQWNwaUNwdURhdGFFeCA9IEFsbG9jYXRlUGFnZXMgKEVGSV9TSVpFX1RPX1BBR0VTIChzaXpl b2YNCj4gPiArIChBQ1BJX0NQVV9EQVRBX0VYKSkpOw0KPiANCj4gKDIpIEluIHRoZSBvcmlnaW5h bCBBbGxvY2F0ZUFjcGlOdnNNZW1vcnlCZWxvdzRHKCkgZnVuY3Rpb24sIHdlIGhhdmUgYQ0KPiBa ZXJvTWVtKCkgY2FsbC4gRm9yIGNvbXBhdGliaWxpdHksIEkgdGhpbmsgd2Ugc2hvdWxkIGNhbGwN Cj4gQWxsb2NhdGVaZXJvUGFnZXMoKSBoZXJlLg0KPiANCj4gKFByZXZpb3VzbHksIHRoZSB0cmFp bGluZyBwb3J0aW9uIG9mIHRoZSBsYXN0IHBhZ2UgbWF5IG5vdCBoYXZlIGJlZW4gemVyb2VkLA0K PiBidXQgaXQncyBub3QgYSBwcm9ibGVtIHRvIHplcm8gbW9yZSB0aGFuIGJlZm9yZS4pDQo+IA0K DQpBZ3JlZSwgd2lsbCB1c2UgQWxsb2NhdGVaZXJvUGFnZXMuDQoNCj4gDQo+ICgzKSBUaGUgIlVl ZmlDcHVQa2cvSW5jbHVkZS9BY3BpQ3B1RGF0YS5oIiBoZWFkZXIgc3RhdGVzIHRoYXQNCj4gQUNQ SV9DUFVfREFUQSAodGhlIHN0cnVjdHVyZSBpdHNlbGYpICJtdXN0IGJlIGFsbG9jYXRlZCBiZWxv dyA0R0IgZnJvbQ0KPiBtZW1vcnkgb2YgdHlwZSBFZmlBQ1BJTWVtb3J5TlZTIi4NCj4gDQo+IElm IHdlIGhhdmUgZGV0ZXJtaW5lZCB0aGF0IHRoaXMgaXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeSwgdGhl bjoNCj4gLSB3ZSBzaG91bGQgZmlyc3QgdXBkYXRlIHRoZSBkb2N1bWVudGF0aW9uIGluICJBY3Bp Q3B1RGF0YS5oIiBmaXJzdCwNCj4gLSB0aGUgY29tbWl0IG1lc3NhZ2Ugc2hvdWxkIGNhcmVmdWxs eSBleHBsYWluIHdoeSB0aGUgY2hhbmdlIGlzIHZhbGlkLg0KPiANCg0KQWdyZWUsIHdpbGwgZG8g aXQuDQoNCj4gSW4gcGFydGljdWxhciwgbXkgY29uY2VybiBpcyBub3QgYWJvdXQgdGhlIG5vcm1h bCBib290IHBhdGguIChUaGUgbm9ybWFsIGJvb3QNCj4gcGF0aCBpcyBleHBsYWluZWQgZm9yIGV4 YW1wbGUgaW4gdGhlIG1lc3NhZ2Ugb2YgY29tbWl0IDkyYjg3ZjFjOGMwYiwNCj4gIk92bWZQa2c6 IGJ1aWxkIENwdVMzRGF0YUR4ZSBmb3IgLUQgU01NX1JFUVVJUkUiLA0KPiAyMDE1LTExLTMwLikg SSBhZ3JlZSB0aGF0IGNvcHlpbmcgZnJvbSBCb290U2VydmljZXNEYXRhIHR5cGUgbWVtb3J5IGlu dG8NCj4gU01SQU0gaXMgZmluZSwgZHVyaW5nIG5vcm1hbCBib290Lg0KPiANCj4gSW5zdGVhZCwg bXkgY29uY2VybiBpcyB3aXRoIHRoZSBTMyByZXN1bWUgcGF0aCwgd2hlbiB0aGUgZGF0YSBmcm9t IHRoZQ0KPiBTTVJBTSBidWZmZXIgaXMgKnJlc3RvcmVkKi4gSSBzZWVtIHRvIHJlY2FsbCBhIGNh c2Ugd2hlbiB0aGUgZGF0YSB3YXMgZmlyc3QNCj4gcmVzdG9yZWQgZnJvbSBTTVJBTSB0byB0aGUg b3JpZ2luYWwgQWNwaU5WUyBhbGxvY2F0aW9uLiANCg0KSSBzZWFyY2hlZCB0aGUgY29kZSBiYXNl IGFuZCBub3QgZm91bmQgYW55IGNvZGUgbmVlZHMgdG8gcmVzdG9yZSB0aGUgb3JpZ2luYWwgQWNw aU5WUyBtZW1vcnkuDQoNCj4gSWYgd2UgbWFrZSB0aGF0DQo+IGFyZWEgQm9vdFNlcnZpY2VzRGF0 YSBub3csIHRoZW4gdGhlIE9TIHdpbGwgcmV1c2UgaXQsIGFuZCB0aGVuIGF0DQo+IFMzIHJlc3Vt ZSwgd2Ugb3ZlcndyaXRlIE9TIGRhdGEuDQo+IA0KDQo+IC4uLiBBZnRlciByZXZpZXdpbmcgdGhl IEdldEFjcGlDcHVEYXRhKCkgZnVuY3Rpb24gaW4NCj4gIlVlZmlDcHVQa2cvUGlTbW1DcHVEeGVT bW0vQ3B1UzMuYyIsIEkgKnRoaW5rKiB0aGlzIGlzIGEgdmFsaWQgY2hhbmdlLA0KPiBiZWNhdXNl IEdldEFjcGlDcHVEYXRhKCkgbmV2ZXIgcmVtZW1iZXJzIHRoZSBhZGRyZXNzIG9mIHRoZQ0KPiBB Q1BJX0NQVV9EQVRBIHN0cnVjdHVyZSwgb3IgdGhlIGFkZHJlc3NlcyBvZiBpdHMgZmllbGRzLg0K PiANCj4gSG93ZXZlciwgSSB3b3VsZCBsaWtlIE1pa2UgdG8gcmV2aWV3IHRoaXMgYXMgd2VsbCAo Q0MnaW5nIGhpbSkuDQo+IA0KPiANCj4gKDQpIEJlY2F1c2UgQUNQSV9DUFVfREFUQV9FWCBjb250 YWlucyBNdHJyVGFibGUsIEdkdHJQcm9maWxlIGFuZA0KPiBJZHRyUHJvZmlsZSB0b28sIG5vdCBq dXN0IEFDUElfQ1BVX0RBVEEsIHRoZSBhYm92ZSBjaGFuZ2UgbW92ZXMgYWxsIG9mIHRob3NlDQo+ IGZpZWxkcyBpbnRvIEJvb3RTZXJ2aWNlc0RhdGEgdHlwZSBtZW1vcnkuIEluIHR1cm4sIHRoZQ0K PiBFRklfUEhZU0lDQUxfQUREUkVTUyBmaWVsZHMgaW4gQUNQSV9DUFVfREFUQSB0aGF0IGhhdmUg dGhlIHNhbWUgbmFtZXMNCj4gd2lsbCBwb2ludCBpbnRvIEJvb3RTZXJ2aWNlc0RhdGEgdHlwZSBt ZW1vcnkuDQo+IA0KPiBUaGlzIGNvbmZsaWN0cyB3aXRoIHRoZSByZXF1aXJlbWVudHMgdGhhdCBh cmUgZG9jdW1lbnRlZCBpbg0KPiAiVWVmaUNwdVBrZy9JbmNsdWRlL0FjcGlDcHVEYXRhLmgiIGZv ciBhbGwgdGhyZWUgZmllbGRzOiBNdHJyVGFibGUsDQo+IEdkdHJQcm9maWxlIGFuZCBJZHRyUHJv ZmlsZS4NCj4gDQoNCkkgd2lsbCBhZGQgYSBzZXBhcmF0ZSBwYXRjaCB0byByZW1vdmUgdGhlIG1l bW9yeSB0eXBlIGFuZCBiZWxvdyA0RyBsaW1pdGF0aW9uIGluIHRoZSBoZWFkZXIgZmlsZS4NCg0K PiBJZiB3ZSB3YW50IHRvIGNoYW5nZSB0aGUgYWxsb2NhdGlvbiBvZiB0aGVzZSBvYmplY3RzIChv ZiB0eXBlIE1UUlJfU0VUVElOR1MsDQo+IElBMzJfREVTQ1JJUFRPUiBhbmQgSUEzMl9ERVNDUklQ VE9SLCByZXNwZWN0aXZlbHkpLCB0aGVuIHdlIHNob3VsZCBhdWRpdA0KPiB0aGVpciB1c2UgZHVy aW5nIFMzIHJlc3VtZSBpbiB0aGUgUGlTbW1DcHVEeGVTbW0gZHJpdmVyLCBhbmQgZG9jdW1lbnQN Cj4gdGhlbSBvbmUtYnktb25lLg0KPiANCj4gLi4uIEJhc2VkIG9uIEdldEFjcGlDcHVEYXRhKCkg YWdhaW4sIEkgKnRoaW5rKiB0aGlzIGlzIHZhbGlkIGNoYW5nZSwNCj4gZnVuY3Rpb25hbGx5IHNw ZWFraW5nLCBidXQgSSdkIGxpa2UgTWlrZSB0byByZXZpZXcgYXMgd2VsbC4NCj4gDQo+IA0KPiA+ ICAgIEFTU0VSVCAoQWNwaUNwdURhdGFFeCAhPSBOVUxMKTsNCj4gPiAgICBBY3BpQ3B1RGF0YSA9 ICZBY3BpQ3B1RGF0YUV4LT5BY3BpQ3B1RGF0YTsNCj4gPg0KPiA+IEBAIC0yMTAsMTEgKzE3MSwx NiBAQCBDcHVTM0RhdGFJbml0aWFsaXplICgNCj4gPiAgICBBY3BpQ3B1RGF0YS0+TXRyclRhYmxl ICAgID0NCj4gKEVGSV9QSFlTSUNBTF9BRERSRVNTKShVSU5UTikmQWNwaUNwdURhdGFFeC0+TXRy clRhYmxlOw0KPiA+DQo+ID4gICAgLy8NCj4gPiAtICAvLyBBbGxvY2F0ZSBzdGFjayBzcGFjZSBm b3IgYWxsIENQVXMNCj4gPiArICAvLyBBbGxvY2F0ZSBzdGFjayBzcGFjZSBmb3IgYWxsIENQVXMs IHVzZSBBQ1BJIE5WUyBtZW1vcnkgdHlwZQ0KPiA+ICsgYmVjYXVzZSBpdCB3aWxsICAvLyBub3Qg Y29weSB0byBzbXJhbSBhdCBTbW0gcmVhZHkgdG8gbG9jayBwb2ludC4NCj4gPiAgICAvLw0KPiA+ IC0gIFN0YWNrID0gQWxsb2NhdGVBY3BpTnZzTWVtb3J5QmVsb3c0RyAoTnVtYmVyT2ZDcHVzICoN Cj4gPiBBY3BpQ3B1RGF0YS0+U3RhY2tTaXplKTsNCj4gPiAtICBBU1NFUlQgKFN0YWNrICE9IE5V TEwpOw0KPiA+IC0gIEFjcGlDcHVEYXRhLT5TdGFja0FkZHJlc3MgPSAoRUZJX1BIWVNJQ0FMX0FE RFJFU1MpKFVJTlROKVN0YWNrOw0KPiA+ICsgIFN0YXR1cyAgPSBnQlMtPkFsbG9jYXRlUGFnZXMg KA0KPiA+ICsgICAgICAgICAgICAgICAgICAgQWxsb2NhdGVBbnlQYWdlcywNCj4gPiArICAgICAg ICAgICAgICAgICAgIEVmaUFDUElNZW1vcnlOVlMsDQo+ID4gKyAgICAgICAgICAgICAgICAgICBF RklfU0laRV9UT19QQUdFUyAoTnVtYmVyT2ZDcHVzICogQWNwaUNwdURhdGEtDQo+ID5TdGFja1Np emUpLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgJkFjcGlDcHVEYXRhLT5TdGFja0FkZHJlc3MN Cj4gPiArICAgICAgICAgICAgICAgICAgICk7DQo+ID4gKyAgQVNTRVJUX0VGSV9FUlJPUiAoU3Rh dHVzKTsNCj4gDQo+ICg1KSBUaGUgbGVhZGluZyBjb21tZW50IHNob3VsZCBiZSBjbGFyaWZpZWQu IFdlIHNob3VsZCBzdGF0ZSB0aGF0IGR1cmluZw0KPiBTMyByZXN1bWUsIHRoZSBzdGFjayB3aWxs IG9ubHkgYmUgdXNlZCBhcyBzY3JhdGNoIHNwYWNlLCBpLmUuIHdlIHdvbid0IHJlYWQNCj4gYW55 dGhpbmcgZnJvbSBpdCBiZWZvcmUgd2Ugd3JpdGUgdG8gaXQsIGluIFBpU21tQ3B1RHhlU2VtbS4N Cj4gT3RoZXJ3aXNlLCBpdCB3b3VsZCBiZSBhIHNlY3VyaXR5IGJ1ZyB0byBrZWVwIHRoZSBhcmVh IGluIEFjcGlOVlMgYW5kIG5vdCBpbg0KPiBTTVJBTS4NCg0KQWdyZWUsIHdpbGwgdXBkYXRlIHRo ZSBjb21tZW50cy4NCg0KPiANCj4gDQo+ICg2KSBUaGlzIGNoYW5nZSByZXF1aXJlcyBhIHNlcGFy YXRlIGludmVzdGlnYXRpb24gZnJvbSB0aGUgcmVzdCBvZiB0aGUgcGF0Y2gsDQo+IHNvIGl0IHNo b3VsZCBiZSBpbiBhIHNlcGFyYXRlIHBhdGNoLg0KPiANCj4gVGhhdCBpbXBsaWVzIHdlIHNob3Vs ZCBmaXJzdCBjaGFuZ2UgdGhpcyBjYWxsIHNpdGUsIGFuZCB0aGVuIHJlbW92ZQ0KPiBBbGxvY2F0 ZUFjcGlOdnNNZW1vcnlCZWxvdzRHKCkgaW4gYSBmaW5hbCBwYXRjaC4NCg0KQWdyZWUsIHdpbGwg Y3JlYXRlIGEgc2VwYXJhdGUgcGF0Y2ggZm9yIHRoaXMgaXNzdWUuDQoNCj4gDQo+IA0KPiAoNykg V2h5IGlzIGl0IE9LIHRvIGxpZnQgdGhlIDRHQiBsaW1pdGF0aW9uPyAuLi4gSSB0aGluayBpdCBt YXkgYmUgdmFsaWQgaW5kZWVkLA0KPiBiZWNhdXNlIFByZXBhcmVBcFN0YXJ0dXBWZWN0b3IoKSBz dG9yZXMgU3RhY2tBZGRyZXNzIHRvICJtRXhjaGFuZ2VJbmZvLQ0KPiA+U3RhY2tTdGFydCIgKHdo aWNoIGhhcyB0eXBlIChWT0lEKikpLCBhbmQgYmVjYXVzZQ0KPiAiVWVmaUNwdVBrZy9QaVNtbUNw dUR4ZVNtbS9YNjQvTXBGdW5jcy5uYXNtIiByZWFkcyB0aGUgbGF0dGVyIHdpdGg6DQo+IA0KPiAg ICAgICAgIGFkZCAgZWRpLCBTdGFja1N0YXJ0QWRkcmVzc0xvY2F0aW9uDQo+ICAgICAgICAgYWRk ICByYXgsIHF3b3JkIFtlZGldDQo+ICAgICAgICAgbW92ICByc3AsIHJheA0KPiAgICAgICAgIG1v diAgcXdvcmQgW2VkaV0sIHJheA0KPiANCj4gaW4gbG9uZy1tb2RlIGNvZGUuIEJ1dCwgYWdhaW4s IHRoaXMgc2hvdWxkIGJlIGRvY3VtZW50ZWQgaW4gdGhlDQo+IChzZXBhcmF0ZSkgcGF0Y2gncyBj b21taXQgbWVzc2FnZS4NCj4gDQo+IA0KPiAoOCkgVGhlIGNoYW5nZSBicmVha3MgdGhlIGRvY3Vt ZW50YXRpb24gb24gIkFDUElfQ1BVX0RBVEEuU3RhY2tBZGRyZXNzIiwNCj4gaW4gIlVlZmlDcHVQ a2cvSW5jbHVkZS9BY3BpQ3B1RGF0YS5oIi4gVGhlIGRvY3VtZW50YXRpb24gc2hvdWxkIGJlDQo+ IHVwZGF0ZWQuDQo+IA0KPiANCj4gPg0KPiA+ICAgIC8vDQo+ID4gICAgLy8gR2V0IHRoZSBib290 IHByb2Nlc3NvcidzIEdEVCBhbmQgSURUIEBAIC0yMjcsNyArMTkzLDcgQEANCj4gPiBDcHVTM0Rh dGFJbml0aWFsaXplICgNCj4gPiAgICAvLw0KPiA+ICAgIEdkdFNpemUgPSBBY3BpQ3B1RGF0YUV4 LT5HZHRyUHJvZmlsZS5MaW1pdCArIDE7DQo+ID4gICAgSWR0U2l6ZSA9IEFjcGlDcHVEYXRhRXgt PklkdHJQcm9maWxlLkxpbWl0ICsgMTsNCj4gPiAtICBHZHQgPSBBbGxvY2F0ZUFjcGlOdnNNZW1v cnlCZWxvdzRHIChHZHRTaXplICsgSWR0U2l6ZSk7DQo+ID4gKyAgR2R0ID0gQWxsb2NhdGVQYWdl cyAoRUZJX1NJWkVfVE9fUEFHRVMgKEdkdFNpemUgKyBJZHRTaXplKSk7DQo+ID4gICAgQVNTRVJU IChHZHQgIT0gTlVMTCk7DQo+ID4gICAgSWR0ID0gKFZPSUQgKikoKFVJTlROKUdkdCArIEdkdFNp emUpOw0KPiA+ICAgIENvcHlNZW0gKEdkdCwgKFZPSUQgKilBY3BpQ3B1RGF0YUV4LT5HZHRyUHJv ZmlsZS5CYXNlLCBHZHRTaXplKTsNCj4gDQo+ICg5KSBUaGlzIGNoYW5nZSBicmVha3MgdGhlIHJl cXVpcmVtZW50cyBpbg0KPiAiVWVmaUNwdVBrZy9JbmNsdWRlL0FjcGlDcHVEYXRhLmgiIHRoYXQg Ym90aCAiQUNQSV9DUFVfREFUQS5HZHRyUHJvZmlsZS0NCj4gPkJhc2UiIGFuZCAiQUNQSV9DUFVf REFUQS5JZHRyUHJvZmlsZS0+QmFzZSINCj4gcG9pbnQgaW50byBBY3BpTlZTIGRhdGEuDQo+IA0K PiAoIlRoZSBidWZmZXIgZm9yIEdEVCBtdXN0IGFsc28gYmUgYWxsb2NhdGVkIGJlbG93IDRHQiBm cm9tIG1lbW9yeSBvZiB0eXBlDQo+IEVmaUFDUElNZW1vcnlOVlMiIC8gIlRoZSBidWZmZXIgZm9y IElEVCBtdXN0IGFsc28gYmUgYWxsb2NhdGVkIGJlbG93IDRHQg0KPiBmcm9tIG1lbW9yeSBvZiB0 eXBlIEVmaUFDUElNZW1vcnlOVlMiLikNCj4gDQo+IA0KPiAoMTApIEFuZCwgaW5kZWVkLCB0aGlz IGlzIHRoZSBidWcgdGhhdCBJIHN1c3BlY3RlZCBpbiBwb2ludCAoMyksIHdpdGggcmVnYXJkIHRv DQo+IHRoZSBTMyByZXN1bWUgcGF0aC4gTmFtZWx5Og0KPiANCj4gDQo+IFBsZWFzZSBjb25zaWRl ciB0aGUgR2V0QWNwaUNwdURhdGEoKSBmdW5jdGlvbiBpbg0KPiAiVWVmaUNwdVBrZy9QaVNtbUNw dUR4ZVNtbS9DcHVTMy5jIi4gVGhpcyBmdW5jdGlvbjoNCj4gDQo+ICgxMGEpIGNvcGllcyB0aGUg SURUIGFuZCBHRFQgKmRlc2NyaXB0b3JzKiBpbnRvIGR5bmFtaWNhbGx5IGFsbG9jYXRlZA0KPiBT TVJBTSwgcG9pbnRlZC10byBieSB0aGUgIm1BY3BpQ3B1RGF0YS5HZHRyUHJvZmlsZSIgYW5kDQo+ ICJtQWNwaUNwdURhdGEuSWR0clByb2ZpbGUiIGZpZWxkczsNCj4gDQo+ICgxMGIpIGNvcGllcyB0 aGUgSURUIGFuZCBHRFQgdGhlbXNlbHZlcyBpbnRvIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCBTTVJB TSwNCj4gcG9pbnRlZC10byBieSB0aGUgIm1HZHRGb3JBcCIgYW5kICJtSWR0Rm9yQXAiIGdsb2Jh bCB2YXJpYWJsZXMsDQo+IA0KPiAoMTBjKSAqZG9lcyBub3QqIHVwZGF0ZSB0aGUgIkJhc2UiIG1l bWJlcnMgb2YgdGhlIElEVCBhbmQgR0RUIGRlc2NyaXB0b3JzDQo+IHRoYXQgYXJlIHNhdmVkIGlu IFNNUkFNIGluIHN0ZXAgKDEwYSkuIFRob3NlIGNvbnRpbnVlIHRvIHBvaW50IHRvIG1lbW9yeQ0K PiB0aGF0IHdhcyBhbGxvY2F0ZWQgYnkgQ3B1UzNEYXRhRHhlIGluIHRoZQ0KPiBDcHVTM0RhdGFJ bml0aWFsaXplKCkgZnVuY3Rpb24uDQoNCkFncmVlIHRoaXMgaXMgYSBidWcsIHdpbGwgY3JlYXRl IGEgc2VwYXJhdGUgcGF0Y2ggdG8gZml4IHRoaXMgaXNzdWUuDQoNCj4gDQo+IA0KPiBOb3csIGNv bnNpZGVyIHRoZSBQcmVwYXJlQXBTdGFydHVwVmVjdG9yKCkgZnVuY3Rpb24gaW4NCj4gIlVlZmlD cHVQa2cvUGlTbW1DcHVEeGVTbW0vQ3B1UzMuYyIsIHdoaWNoIHJ1bnMgZHVyaW5nIFMzIHJlc3Vt ZS4NCj4gVGhhdA0KPiBmdW5jdGlvbjoNCj4gDQo+ICgxMGQpIGNvcGllcyB0aGUgSURUIGFuZCBH RFQgZGVzY3JpcHRvcnMgdGhhdCB3ZXJlIHNhdmVkIGluICgxMGEpIGludG8NCj4gIm1FeGNoYW5n ZUluZm8iIC0tIHRoaXMgaXMganVzdCBhbiBTTVJBTS10by1TTVJBTSBjb3B5LCBob3dldmVyIHRo ZSBCYXNlDQo+IG1lbWJlcnMgb2YgdGhlIGRlc2NyaXB0b3JzIHBvaW50IHRvIHRoZSBvcmlnaW5h bCBDcHVTM0RhdGFEeGUgYWxsb2NhdGlvbiwNCj4gDQo+ICgxMGUpIHRoZSBJRFQgYW5kIHRoZSBH RFQgYXJlIHRoZW1zZWx2ZXMgcmVzdG9yZWQgZnJvbSBzdGVwICgxMGIpLCBpLmUuDQo+IGZyb20g dGhlICJtR2R0Rm9yQXAiIGFuZCAibUlkdEZvckFwIiBTTVJBTSBnbG9iYWwgdmFyaWFibGVzLCB0 byB0aGUNCj4gb3JpZ2luYWwgQ3B1UzNEYXRhRHhlIGFsbG9jYXRpb24gYWRkcmVzcy4gVGhlIGNv bW1lbnQgc2F5czoNCj4gDQo+ID4gICAvLw0KPiA+ICAgLy8gQ29weSBBUCdzIEdEVCwgSURUIGFu ZCBNYWNoaW5lIENoZWNrIGhhbmRsZXIgZnJvbSBTTVJBTSB0byBBQ1BJDQo+IE5WUyBtZW1vcnkN Cj4gPiAgIC8vDQo+IA0KPiBJbiBvdGhlciB3b3Jkcywgd2hpbGUgdGhlIElEVCBhbmQgR0RUICpk ZXNjcmlwdG9ycyogYXJlbid0IHJlc3RvcmVkIGluLXBsYWNlLA0KPiB0aGUgSURUIGFuZCBHRFQg dGhlbXNlbHZlcyBhcmUuDQo+IA0KPiBUaGlzIG1lYW5zIHRoYXQgdGhlIGFib3ZlIGNvZGUgY2hh bmdlIGNhdXNlcyBQaVNtbUNwdUR4ZVNtbSB0bw0KPiBvdmVyd3JpdGUgT1MgbWVtb3J5IGF0IFMz IHJlc3VtZS4NCj4gDQo+IA0KPiBDb250aW51aW5nOg0KPiANCj4gT24gMDgvMDgvMTggMDk6NDAs IEVyaWMgRG9uZyB3cm90ZToNCj4gPiBAQCAtMjQzLDcgKzIwOSw3IEBAIENwdVMzRGF0YUluaXRp YWxpemUgKA0KPiA+ICAgICAgLy8gQWxsb2NhdGUgYnVmZmVyIGZvciBlbXB0eSBSZWdpc3RlclRh YmxlIGFuZCBQcmVTbW1Jbml0UmVnaXN0ZXJUYWJsZQ0KPiBmb3IgYWxsIENQVXMNCj4gPiAgICAg IC8vDQo+ID4gICAgICBUYWJsZVNpemUgPSAyICogTnVtYmVyT2ZDcHVzICogc2l6ZW9mIChDUFVf UkVHSVNURVJfVEFCTEUpOw0KPiA+IC0gICAgUmVnaXN0ZXJUYWJsZSA9IChDUFVfUkVHSVNURVJf VEFCTEUNCj4gKilBbGxvY2F0ZUFjcGlOdnNNZW1vcnlCZWxvdzRHIChUYWJsZVNpemUpOw0KPiA+ ICsgICAgUmVnaXN0ZXJUYWJsZSA9IEFsbG9jYXRlUGFnZXMgKEVGSV9TSVpFX1RPX1BBR0VTIChU YWJsZVNpemUpKTsNCj4gPiAgICAgIEFTU0VSVCAoUmVnaXN0ZXJUYWJsZSAhPSBOVUxMKTsNCj4g Pg0KPiA+ICAgICAgZm9yIChJbmRleCA9IDA7IEluZGV4IDwgTnVtYmVyT2ZDcHVzOyBJbmRleCsr KSB7DQo+IA0KPiAoMTEpIFRoaXMgbG9va3MgdmFsaWQsIGJleW9uZCBicmVha2luZyB0aGUgZG9j dW1lbnRhdGlvbiBpbg0KPiAiVWVmaUNwdVBrZy9JbmNsdWRlL0FjcGlDcHVEYXRhLmgiLCBvZiB0 aGUgbWVtYmVycw0KPiAiUHJlU21tSW5pdFJlZ2lzdGVyVGFibGUiIGFuZCAiUmVnaXN0ZXJUYWJs ZSIuDQo+IA0KPiANCj4gPiBkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9DcHVTM0RhdGFEeGUvQ3B1 UzNEYXRhRHhlLmluZg0KPiA+IGIvVWVmaUNwdVBrZy9DcHVTM0RhdGFEeGUvQ3B1UzNEYXRhRHhl LmluZg0KPiA+IGluZGV4IDQ4MGM5OGViY2QuLmMxNjczMTUyOWMgMTAwNjQ0DQo+ID4gLS0tIGEv VWVmaUNwdVBrZy9DcHVTM0RhdGFEeGUvQ3B1UzNEYXRhRHhlLmluZg0KPiA+ICsrKyBiL1VlZmlD cHVQa2cvQ3B1UzNEYXRhRHhlL0NwdVMzRGF0YUR4ZS5pbmYNCj4gPiBAQCAtNTEsNiArNTEsNyBA QA0KPiA+ICAgIERlYnVnTGliDQo+ID4gICAgQmFzZUxpYg0KPiA+ICAgIE10cnJMaWINCj4gPiAr ICBNZW1vcnlBbGxvY2F0aW9uTGliDQo+ID4NCj4gPiAgW0d1aWRzXQ0KPiA+ICAgIGdFZmlFbmRP ZkR4ZUV2ZW50R3JvdXBHdWlkICAgICAgICAgIyMgQ09OU1VNRVMgICAjIyBFdmVudA0KPiA+DQo+ IA0KPiBJIGZlZWwgdW5jb21mb3J0YWJsZSBhYm91dCB0aGlzIHBhdGNoLiBJdCBpcyB2ZXJ5IHRy aWNreSB0byByZXZpZXcsIGFuZCBpZiB3ZQ0KPiBtYWtlIG1pc3Rha2VzLCB3ZSBjb3VsZCBjb3Jy dXB0IE9TIGRhdGEsIG9yICh3b3JzZSkgcGVyaGFwcyBldmVuDQo+IGNvbXByb21pc2UgU01SQU0u DQo+IA0KPiBBbmQsIGFsbCB0aGUgZ2FpbnMgdGhhdCBJIGNhbiBpbWFnaW5lIGFyZSwgInNhdmUg YSBmZXcgMzItYml0IEFjcGlOVlMgcGFnZXMiLiBJDQo+IGhhdmVuJ3QgbWVhc3VyZWQsIGJ1dCBp dCBkb2Vzbid0IGxvb2sgbGlrZSBhbiBhdHRyYWN0aXZlIHRyYWRlLW9mZiB0byBtZS4gQW5kLA0K PiBwbGF0Zm9ybXMgdGhhdCBkaXNhYmxlIFMzIHZpYSAiUGNkQWNwaVMzRW5hYmxlIg0KPiBkb24n dCBhbGxvY2F0ZSB0aGlzIG1lbW9yeSBhbnl3YXkuDQo+IA0KPiBGdXJ0aGVybW9yZSwgdGhlIG1l bW9yeSBmb290cHJpbnQgb3B0aW1pemF0aW9uIGRvZXMgbm90IHNlZW0gcmVsYXRlZCB0byB0aGUN Cj4gQ3B1UzNEYXRhRHhlIC8gRHhlUmVnaXN0ZXJDcHVGZWF0dXJlc0xpYiBkZXBlbmRlbmN5IGlz c3VlIHRoYXQgTWFydmluDQo+IHJlcG9ydGVkIChhbmQgdGhhdCBpcyB0cmFja2VkIGluIGJ1ZyAj OTU5KS4NCj4gDQo+IEkgc3VnZ2VzdCB0aGF0IHdlIGRyb3AgdGhpcyBwYXRjaC4NCg0KV2UgaGF2 ZSByZWFjaCB0aGUgYWdyZWVtZW50IHRoYXQgdGhpcyBpcyBhICJOb3QgYSBjb3JyZWN0bHkgdXNl ZCIgY29kZSBidWcsIGFuZCBpdCBpcyBjYXVzZWQgYnkgbm90IGRvIHRoZSByZWxhdGVkIGNvZGUg Y2xlYW4gd2hlbiBlbmFibGUgbmV3IGZlYXR1cmVzLiAgU28gSSBwcmVmZXIgdG8gZG8gdGhpcyBj bGVhbiB1cCB0byBtYWtlIGNvZGUgbW9yZSBjbGVhbi4NCg0KPiANCj4gVGhhbmtzLA0KPiBMYXN6 bG8NCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4g ZWRrMi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gaHR0 cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9lZGsyLWRldmVsDQo=