From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.24; helo=mga09.intel.com; envelope-from=jian.j.wang@intel.com; receiver=edk2-devel@lists.01.org Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) (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 F04822236BA8E for ; Thu, 4 Jan 2018 19:01:43 -0800 (PST) X-Amp-Result: UNSCANNABLE X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 04 Jan 2018 19:06:49 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.46,317,1511856000"; d="png'150?scan'150,208,217,150";a="192392381" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by fmsmga005.fm.intel.com with ESMTP; 04 Jan 2018 19:06:49 -0800 Received: from fmsmsx112.amr.corp.intel.com (10.18.116.6) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 4 Jan 2018 19:06:48 -0800 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by FMSMSX112.amr.corp.intel.com (10.18.116.6) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 4 Jan 2018 19:06:47 -0800 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.213]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.218]) with mapi id 14.03.0319.002; Fri, 5 Jan 2018 11:06:46 +0800 From: "Wang, Jian J" To: Fan Jeff , "Yao, Jiewen" , Laszlo Ersek , "edk2-devel@lists.01.org" CC: "Dong, Eric" Thread-Topic: [edk2] [PATCH] UefiCpuPkg/MpInitLib: fix wrong base address set as Stack Guard Thread-Index: AQHTgIBBAhUXNh3QfEei4ASfd+cM3KNh6soAgAD5yACAAAkXYIAACzOQgAAtIwCAAN8zAIAAinSg//+IrQCAAAA2gIAAh7tg//96mYCAAAHygIAAhlQA Date: Fri, 5 Jan 2018 03:06:45 +0000 Message-ID: References: <20171229083631.16652-1-jian.j.wang@intel.com> , , , , <74D8A39837DF1E4DA445A8C0B3885C503AA70D2C@shsmsx102.ccr.corp.intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNWE3MTg2MzktODEzMS00MDc1LTkxM2ItNzNiNGViYzBhNDM1IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiI3WERLeVNocXIyOWV0VWdcL1I5b0Z2VHBya1ZYOXlRTHRnT3Fwc29FT3lEXC84d2lrRTdvdFlsblJ6c2c1d2JvNDEifQ== x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 X-Content-Filtered-By: Mailman/MimeDel 2.1.23 Subject: Re: [PATCH] UefiCpuPkg/MpInitLib: fix wrong base address set as Stack Guard X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Jan 2018 03:01:44 -0000 Content-Language: en-US Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 R2xhZCB0byBrbm93LiBUaGF0IHNhdmVzIG1lIHRpbWUgdG8gd3JpdGUgbXkgb3duIGNhc2U6KQ0K DQpSZWdhcmRzLA0KSmlhbg0KDQpGcm9tOiBGYW4gSmVmZiBbbWFpbHRvOnZhbmplZmZfOTE5QGhv dG1haWwuY29tXQ0KU2VudDogRnJpZGF5LCBKYW51YXJ5IDA1LCAyMDE4IDExOjA1IEFNDQpUbzog WWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsgV2FuZywgSmlhbiBKIDxqaWFuLmou d2FuZ0BpbnRlbC5jb20+OyBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPjsgZWRrMi1k ZXZlbEBsaXN0cy4wMS5vcmcNCkNjOiBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPg0K U3ViamVjdDogtPC4tDogW2VkazJdIFtQQVRDSF0gVWVmaUNwdVBrZy9NcEluaXRMaWI6IGZpeCB3 cm9uZyBiYXNlIGFkZHJlc3Mgc2V0IGFzIFN0YWNrIEd1YXJkDQoNCkNvb2wuIFBJIFNDVCBpcyBi ZXR0ZXIgYW5kIGVhc2llci4NCg0KSmVmZg0KDQq3orz+yMs6IFlhbywgSmlld2VuPG1haWx0bzpq aWV3ZW4ueWFvQGludGVsLmNvbT4NCreiy83KsbzkOiAyMDE4xOox1MI1yNUgMTA6NTgNCsrVvP7I yzogV2FuZywgSmlhbiBKPG1haWx0bzpqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBGYW4gSmVmZjxt YWlsdG86dmFuamVmZl85MTlAaG90bWFpbC5jb20+OyBMYXN6bG8gRXJzZWs8bWFpbHRvOmxlcnNl a0ByZWRoYXQuY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc8bWFpbHRvOmVkazItZGV2ZWxA bGlzdHMuMDEub3JnPg0Ks63LzTogRG9uZywgRXJpYzxtYWlsdG86ZXJpYy5kb25nQGludGVsLmNv bT4NCtb3zOI6IFJFOiBbZWRrMl0gW1BBVENIXSBVZWZpQ3B1UGtnL01wSW5pdExpYjogZml4IHdy b25nIGJhc2UgYWRkcmVzcyBzZXQgYXMgU3RhY2sgR3VhcmQNCg0KR29vZC4gSSBhbHNvIHN1Z2dl c3Qgd2UgcnVuIFBJLVNDVCB0byBtYWtlIHN1cmUgaXQgaXMgd2VsbCB0ZXN0ZWQuDQoNClRoYW5r IHlvdQ0KWWFvIEppZXdlbg0KDQpGcm9tOiBXYW5nLCBKaWFuIEoNClNlbnQ6IEZyaWRheSwgSmFu dWFyeSA1LCAyMDE4IDEwOjU2IEFNDQpUbzogRmFuIEplZmYgPHZhbmplZmZfOTE5QGhvdG1haWwu Y29tPG1haWx0bzp2YW5qZWZmXzkxOUBob3RtYWlsLmNvbT4+OyBMYXN6bG8gRXJzZWsgPGxlcnNl a0ByZWRoYXQuY29tPG1haWx0bzpsZXJzZWtAcmVkaGF0LmNvbT4+OyBlZGsyLWRldmVsQGxpc3Rz LjAxLm9yZzxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc+DQpDYzogWWFvLCBKaWV3ZW4g PGppZXdlbi55YW9AaW50ZWwuY29tPG1haWx0bzpqaWV3ZW4ueWFvQGludGVsLmNvbT4+OyBEb25n LCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPG1haWx0bzplcmljLmRvbmdAaW50ZWwuY29tPj4N ClN1YmplY3Q6IFJFOiBbZWRrMl0gW1BBVENIXSBVZWZpQ3B1UGtnL01wSW5pdExpYjogZml4IHdy b25nIGJhc2UgYWRkcmVzcyBzZXQgYXMgU3RhY2sgR3VhcmQNCg0KR290IGl0LiBNYW55IHRoYW5r cyENCg0KUmVnYXJkcywNCkppYW4NCg0KRnJvbTogRmFuIEplZmYgW21haWx0bzp2YW5qZWZmXzkx OUBob3RtYWlsLmNvbV0NClNlbnQ6IEZyaWRheSwgSmFudWFyeSAwNSwgMjAxOCAxMDo1MCBBTQ0K VG86IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPG1haWx0bzpqaWFuLmoud2Fu Z0BpbnRlbC5jb20+PjsgTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbTxtYWlsdG86bGVy c2VrQHJlZGhhdC5jb20+PjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc8bWFpbHRvOmVkazItZGV2 ZWxAbGlzdHMuMDEub3JnPg0KQ2M6IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbTxt YWlsdG86amlld2VuLnlhb0BpbnRlbC5jb20+PjsgRG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVs LmNvbTxtYWlsdG86ZXJpYy5kb25nQGludGVsLmNvbT4+DQpTdWJqZWN0OiC08Li0OiBbZWRrMl0g W1BBVENIXSBVZWZpQ3B1UGtnL01wSW5pdExpYjogZml4IHdyb25nIGJhc2UgYWRkcmVzcyBzZXQg YXMgU3RhY2sgR3VhcmQNCg0KU29ycnksIER1bXAgdGhlIEFQSUNJRCwgbm90IENQVUlELg0KDQpK ZWZmDQoNCreivP7IyzogRmFuIEplZmY8bWFpbHRvOnZhbmplZmZfOTE5QGhvdG1haWwuY29tPg0K t6LLzcqxvOQ6IDIwMTjE6jHUwjXI1SAxMDo0OA0KytW8/sjLOiBXYW5nLCBKaWFuIEo8bWFpbHRv OmppYW4uai53YW5nQGludGVsLmNvbT47IExhc3psbyBFcnNlazxtYWlsdG86bGVyc2VrQHJlZGhh dC5jb20+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4w MS5vcmc+DQqzrcvNOiBZYW8sIEppZXdlbjxtYWlsdG86amlld2VuLnlhb0BpbnRlbC5jb20+OyBE b25nLCBFcmljPG1haWx0bzplcmljLmRvbmdAaW50ZWwuY29tPg0K1vfM4jogtPC4tDogW2VkazJd IFtQQVRDSF0gVWVmaUNwdVBrZy9NcEluaXRMaWI6IGZpeCB3cm9uZyBiYXNlIGFkZHJlc3Mgc2V0 IGFzIFN0YWNrIEd1YXJkDQoNCllvdSBtYXkgdXNlIE1QLT5Td2l0Y2hCU1AoKSB0byBkbyBCU1Ag c3dpdGNoIGFuZCB0aGVuIGR1bXAgQlNQoa9zIENQVUlEIHRvIGtub3cgaWYgdGhlIHN3aXRjaCBp cyBzdWNjZXNzZnVsbHkuDQoNCkplZmYNCg0KDQpGcm9tOiBXYW5nLCBKaWFuIEogPGppYW4uai53 YW5nQGludGVsLmNvbTxtYWlsdG86amlhbi5qLndhbmdAaW50ZWwuY29tPj4NClNlbnQ6IEZyaWRh eSwgSmFudWFyeSA1LCAyMDE4IDk6NTc6MzEgQU0NClRvOiBGYW4gSmVmZjsgTGFzemxvIEVyc2Vr OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc+ DQpDYzogWWFvLCBKaWV3ZW47IERvbmcsIEVyaWMNClN1YmplY3Q6IFJFOiBbZWRrMl0gW1BBVENI XSBVZWZpQ3B1UGtnL01wSW5pdExpYjogZml4IHdyb25nIGJhc2UgYWRkcmVzcyBzZXQgYXMgU3Rh Y2sgR3VhcmQNCg0KSGkgSmVmZiwNCg0KRG8geW91IHRoaW5rIHRoZSBjaGFuZ2UgaXMgT0s/IERv IHlvdSBrbm93IGhvdyB0byB0ZXN0IHN3aXRjaGluZyBCU1A/DQoNClJlZ2FyZHMsDQpKaWFuDQoN CkZyb206IEZhbiBKZWZmIFttYWlsdG86dmFuamVmZl85MTlAaG90bWFpbC5jb21dDQpTZW50OiBG cmlkYXksIEphbnVhcnkgMDUsIDIwMTggOTo0MCBBTQ0KVG86IExhc3psbyBFcnNlayA8bGVyc2Vr QHJlZGhhdC5jb208bWFpbHRvOmxlcnNla0ByZWRoYXQuY29tPj47IFdhbmcsIEppYW4gSiA8amlh bi5qLndhbmdAaW50ZWwuY29tPG1haWx0bzpqaWFuLmoud2FuZ0BpbnRlbC5jb20+PjsgZWRrMi1k ZXZlbEBsaXN0cy4wMS5vcmc8bWFpbHRvOmVkazItZGV2ZWxAbGlzdHMuMDEub3JnPg0KQ2M6IFlh bywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbTxtYWlsdG86amlld2VuLnlhb0BpbnRlbC5j b20+PjsgRG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVsLmNvbTxtYWlsdG86ZXJpYy5kb25nQGlu dGVsLmNvbT4+DQpTdWJqZWN0OiC08Li0OiBbZWRrMl0gW1BBVENIXSBVZWZpQ3B1UGtnL01wSW5p dExpYjogZml4IHdyb25nIGJhc2UgYWRkcmVzcyBzZXQgYXMgU3RhY2sgR3VhcmQNCg0KTGFzemxv LA0KDQpGaXJzdGx5LCBTd2l0Y2hCU1AoKSBpcyBvbmUgc2VydmljZSBvZiBNUCBkZWZpbmVkIGlu IFBJIHNwZWMuDQoNCkZvciByZWFsIGNhc2UsIEkgdGhpbmsgbXVsdGlwbGUgc29ja2V0IHN5c3Rl bSh3aXRoIGRpZmZlcmVudCBwcm9jZXNzb3Igc3RlcHBpbmcpIG1heSB1c2UgdGhpcyBzZXJ2aWNl IGZvciBwdXJwb3NlLg0KDQpUaGFua3MhDQpKZWZmDQoNCreivP7IyzogTGFzemxvIEVyc2VrPG1h aWx0bzpsZXJzZWtAcmVkaGF0LmNvbT4NCreiy83KsbzkOiAyMDE4xOox1MI0yNUgMjA6MjENCsrV vP7IyzogV2FuZywgSmlhbiBKPG1haWx0bzpqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBlZGsyLWRl dmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc+DQqzrcvNOiBZ YW8sIEppZXdlbjxtYWlsdG86amlld2VuLnlhb0BpbnRlbC5jb20+OyBEb25nLCBFcmljPG1haWx0 bzplcmljLmRvbmdAaW50ZWwuY29tPg0K1vfM4jogUmU6IFtlZGsyXSBbUEFUQ0hdIFVlZmlDcHVQ a2cvTXBJbml0TGliOiBmaXggd3JvbmcgYmFzZSBhZGRyZXNzIHNldCBhcyBTdGFjayBHdWFyZA0K DQpPbiAwMS8wNC8xOCAwMjo0NSwgV2FuZywgSmlhbiBKIHdyb3RlOg0KPiBBIGNvcnJlY3Rpb246 IGFsdGhvdWdoIEJTUCBkb2Vzbid0IG5lZWQgaXQsIHdlIHN0aWxsIG5lZWQgdG8gaW5pdGlhbGl6 ZSBpdHMgQXBUb3BPZlN0YWNrDQo+IGNvcnJlY3RseSBiZWNhdXNlIHRoZSBNUCBzZXJ2aWNlIHN1 cHBvcnRzIEJTUC9BUCBleGNoYW5nZS4gU28gSSB0aGluayB0aGUgbGluZSAxNTAxDQo+IHNob3Vs ZCBiZSBjaGFuZ2VkIHRvDQo+DQo+ICAgSW5pdGlhbGl6ZUFwRGF0YSAoQ3B1TXBEYXRhLCAwLCAw LCBDcHVNcERhdGEtPkJ1ZmZlciArIENwdU1wRGF0YS0+Q3B1QXBTdGFja1NpemUpOw0KPg0KPiBp bnN0ZWFkIG9mDQo+DQo+ICAgSW5pdGlhbGl6ZUFwRGF0YSAoQ3B1TXBEYXRhLCAwLCAwLCBOVUxM KTsNCg0KSG1tLi4uIEFsdGhvdWdoIEkgZG9uJ3QgaW1tZWRpYXRlbHkgc2VlIGFsbCBwb3NzaWJs ZSBjb25zZXF1ZW5jZXMgb2YNCnN1Y2ggYSBjaGFuZ2UsIGl0IGxvb2tzIGxpa2UgYSBjb3JyZWN0 IGZpeC4NCg0KVW5mb3J0dW5hdGVseSwgSSBkb24ndCBrbm93IG9mIGFueSBjb2RlIHRoYXQgYWN0 dWFsbHkgZXhlcmNpc2VzIHRoZQ0KQlNQL0FQIGV4Y2hhbmdlIHNlcnZpY2UuIEkgdGhpbmsgSW50 ZWwgbXVzdCBoYXZlIGFjY2VzcyB0byBzb21lIGNsaWVudA0KY29kZSBsaWtlIHRoaXMsIGJlY2F1 c2UgSSB2YWd1ZWx5IHJlY2FsbCBzb21lIHBhdGNoZXMgb3ZlciB0aW1lIHRoYXQNCmltcHJvdmVk IEJTUC9BUCBleGNoYW5nZS4NCg0KSWYgeW91IG1vZGlmeSB0aGUgSW5pdGlhbGl6ZUFwRGF0YSgp IGNhbGwgaW4gcXVlc3Rpb24gbGlrZSBzdWdnZXN0ZWQNCmFib3ZlLCBjYW4geW91IHBlcmhhcHMg bG9jYXRlIHRoYXQgY2xpZW50IGNvZGUsIGFuZCB0ZXN0IHRoZSBjaGFuZ2Ugd2l0aCBpdD8NCg0K VGhhbmtzIQ0KTGFzemxvDQoNCg0KPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+IEZy b206IFdhbmcsIEppYW4gSg0KPj4gU2VudDogVGh1cnNkYXksIEphbnVhcnkgMDQsIDIwMTggOTow OSBBTQ0KPj4gVG86IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPG1haWx0bzpq aWFuLmoud2FuZ0BpbnRlbC5jb20+PjsgTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbTxt YWlsdG86bGVyc2VrQHJlZGhhdC5jb20+PjsNCj4+IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnPG1h aWx0bzplZGsyLWRldmVsQGxpc3RzLjAxLm9yZz4NCj4+IENjOiBZYW8sIEppZXdlbiA8amlld2Vu Lnlhb0BpbnRlbC5jb208bWFpbHRvOmppZXdlbi55YW9AaW50ZWwuY29tPj47IERvbmcsIEVyaWMg PGVyaWMuZG9uZ0BpbnRlbC5jb208bWFpbHRvOmVyaWMuZG9uZ0BpbnRlbC5jb20+Pg0KPj4gU3Vi amVjdDogUkU6IFtlZGsyXSBbUEFUQ0hdIFVlZmlDcHVQa2cvTXBJbml0TGliOiBmaXggd3Jvbmcg YmFzZSBhZGRyZXNzIHNldA0KPj4gYXMgU3RhY2sgR3VhcmQNCj4+DQo+PiBMYXN6bG8sDQo+Pg0K Pj4gTW9yZSBleHBsYW5hdGlvbnM6DQo+Pg0KPj4gW1VlZmlDcHVQa2dcTGlicmFyeVxNcEluaXRM aWJcTXBMaWIuY10NCj4+IEFjY29yZGluZyB0byB0aGUgY29kZSwgdGhlIEJTUCdzIChDcHVJbmZv SW5Ib2JbMF0uQXBUb3BPZlN0YWNrKSBpcyBpbml0aWFsaXplZA0KPj4gdG8NCj4+IHRoZSBib3R0 b20gb2YgdGhlIHN0YWNrIChsaW5lIDE1MDEpIGJ1dCBBUCdzIEFwVG9wT2ZTdGFjayBpcyBjb3Jy ZWN0bHkgaW5pdGlhbGl6ZWQNCj4+IChsaW5lIDU5OCkuIEFsdGhvdWdoIG15IGNhbGN1bGF0aW9u IGlzIGNvcnJlY3QsIEkgdGhpbmsgaXQnZCBiZSBiZXR0ZXIgdG8gdXNlIEFQJ3MNCj4+IEFwVG9w T2ZTdGFjayBkaXJlY3RseS4gRnJvbSB0aGlzIHBlcnNwZWN0aXZlLCB5b3UncmUgcmlnaHQuDQo+ Pg0KPj4gTWF5YmUgaXQnZCBiZSBiZXR0ZXIgdG8gcGFzcyBhIE5VTEwgcG9pbnRlciBhdCBsaW5l IDE1MDEgYmVjYXVzZSBCU1AgZG9lc24ndA0KPj4gbmVlZA0KPj4gaXQgYW55d2F5Lg0KPj4NCj4+ IFJlZ2FyZHMsDQo+PiBKaWFuDQo+Pg0KPj4NCj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPj4+IEZyb206IGVkazItZGV2ZWwgW21haWx0bzplZGsyLWRldmVsLWJvdW5jZXNAbGlzdHMu MDEub3JnXSBPbiBCZWhhbGYgT2YNCj4+IFdhbmcsDQo+Pj4gSmlhbiBKDQo+Pj4gU2VudDogVGh1 cnNkYXksIEphbnVhcnkgMDQsIDIwMTggODo0MiBBTQ0KPj4+IFRvOiBMYXN6bG8gRXJzZWsgPGxl cnNla0ByZWRoYXQuY29tPG1haWx0bzpsZXJzZWtAcmVkaGF0LmNvbT4+OyBlZGsyLWRldmVsQGxp c3RzLjAxLm9yZzxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc+DQo+Pj4gQ2M6IFlhbywg Smlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbTxtYWlsdG86amlld2VuLnlhb0BpbnRlbC5jb20+ PjsgRG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVsLmNvbTxtYWlsdG86ZXJpYy5kb25nQGludGVs LmNvbT4+DQo+Pj4gU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0hdIFVlZmlDcHVQa2cvTXBJbml0 TGliOiBmaXggd3JvbmcgYmFzZSBhZGRyZXNzIHNldA0KPj4+IGFzIFN0YWNrIEd1YXJkDQo+Pj4N Cj4+PiBMYXN6bG8sDQo+Pj4NCj4+PiBJIHJldmlzaXRlZCBjb2RlIG9mIE1wSW5pdExpYi4gSSBm b3VuZCB0aGF0IENQVV9JTkZPX0lOX0hPQi5BcFRvcE9mU3RhY2sNCj4+PiB3YXMgYXNzaWduZWQg dG8gQ3B1TXBEYXRhLT5CdWZmZXIgaW4gTXBJbml0TGliSW5pdGlhbGl6ZSgpDQo+Pj4NCj4+PiAo bGluZTE1MDEpICBJbml0aWFsaXplQXBEYXRhIChDcHVNcERhdGEsIDAsIDAsIENwdU1wRGF0YS0+ QnVmZmVyKTsNCj4+Pg0KPj4+IGJ1dCBpbg0KPj4+DQo+Pj4gKGxpbmU1OTgpICBBcFRvcE9mU3Rh Y2sgID0gQ3B1TXBEYXRhLT5CdWZmZXIgKyAoUHJvY2Vzc29yTnVtYmVyICsgMSkgKg0KPj4+IENw dU1wRGF0YS0+Q3B1QXBTdGFja1NpemU7DQo+Pj4gKGxpbmU2MDgpICBJbml0aWFsaXplQXBEYXRh IChDcHVNcERhdGEsIFByb2Nlc3Nvck51bWJlciwgQmlzdERhdGEsDQo+Pj4gQXBUb3BPZlN0YWNr KTsNCj4+Pg0KPj4+IFNpbmNlIEluaXRNcEdsb2JhbERhdGEoKSBpcyBjYWxsZWQganVzdCBhZnRl ciBmaXJzdCBzaXR1YXRpb24sIG15IHBhdGNoIGlzIGNvcnJlY3QuDQo+Pj4NCj4+PiBJIHRoaW5r IHRoZSBwcm9ibGVtIGhlcmUgaXMgdGhhdCBBcFRvcE9mU3RhY2sgaW5pdGlhbGl6ZWQgYXQgbGlu ZSAxNTAxIGlzIG5vdA0KPj4+IGNvcnJlY3QuDQo+Pj4NCj4+Pg0KPj4+IFJlZ2FyZHMsDQo+Pj4g Smlhbg0KPj4+DQo+Pj4NCj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+Pj4gRnJv bTogTGFzemxvIEVyc2VrIFttYWlsdG86bGVyc2VrQHJlZGhhdC5jb21dDQo+Pj4+IFNlbnQ6IFRo dXJzZGF5LCBKYW51YXJ5IDA0LCAyMDE4IDE6MzMgQU0NCj4+Pj4gVG86IFdhbmcsIEppYW4gSiA8 amlhbi5qLndhbmdAaW50ZWwuY29tPG1haWx0bzpqaWFuLmoud2FuZ0BpbnRlbC5jb20+PjsgZWRr Mi1kZXZlbEBsaXN0cy4wMS5vcmc8bWFpbHRvOmVkazItZGV2ZWxAbGlzdHMuMDEub3JnPg0KPj4+ PiBDYzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPG1haWx0bzpqaWV3ZW4ueWFv QGludGVsLmNvbT4+OyBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPG1haWx0bzplcmlj LmRvbmdAaW50ZWwuY29tPj47DQo+Pj4+IEplZmYgRmFuIDx2YW5qZWZmXzkxOUBob3RtYWlsLmNv bTxtYWlsdG86dmFuamVmZl85MTlAaG90bWFpbC5jb20+Pg0KPj4+PiBTdWJqZWN0OiBSZTogW2Vk azJdIFtQQVRDSF0gVWVmaUNwdVBrZy9NcEluaXRMaWI6IGZpeCB3cm9uZyBiYXNlIGFkZHJlc3MN Cj4+IHNldA0KPj4+PiBhcyBTdGFjayBHdWFyZA0KPj4+Pg0KPj4+PiAoQ0MgSmVmZikNCj4+Pj4N Cj4+Pj4gU29ycnkgYWJvdXQgdGhlIGRlbGF5Lg0KPj4+Pg0KPj4+PiBJIGhhdmUgc29tZSBsaWdo dCBjb21tZW50cyBiZWxvdzsgSSBleHBlY3QgYXQgbGVhc3QgYSBmZXcgb2YgdGhlbSB0byBiZQ0K Pj4+PiBpbmNvcnJlY3QgOikNCj4+Pj4NCj4+Pj4gT24gMTIvMjkvMTcgMDk6MzYsIEppYW4gSiBX YW5nIHdyb3RlOg0KPj4+Pj4gVGhlIHJlYXNvbiBpcyB0aGF0IERYRSBwYXJ0IGluaXRpYWxpemF0 aW9uIHdpbGwgcmV1c2UgdGhlIHN0YWNrIGFsbG9jYXRlZA0KPj4+Pj4gYXQgUEVJIHBoYXNlLCBp ZiBNUCB3YXMgaW5pdGlhbGl6ZWQgYmVmb3JlLiBTb21lIGNvZGUgYWRkZWQgdG8gY2hlY2sgdGhp cw0KPj4+Pj4gc2l0dWF0aW9uIGFuZCB1c2Ugc3RhY2sgYmFzZSBhZGRyZXNzIHNhdmVkIGluIEhP QiBwYXNzZWQgZnJvbSBQRUkuDQo+Pj4+Pg0KPj4+Pj4gQ2M6IEppZXdlbiBZYW8gPGppZXdlbi55 YW9AaW50ZWwuY29tPG1haWx0bzpqaWV3ZW4ueWFvQGludGVsLmNvbT4+DQo+Pj4+PiBDYzogRXJp YyBEb25nIDxlcmljLmRvbmdAaW50ZWwuY29tPG1haWx0bzplcmljLmRvbmdAaW50ZWwuY29tPj4N Cj4+Pj4+IENjOiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPG1haWx0bzpsZXJzZWtA cmVkaGF0LmNvbT4+DQo+Pj4+PiBDb250cmlidXRlZC11bmRlcjogVGlhbm9Db3JlIENvbnRyaWJ1 dGlvbiBBZ3JlZW1lbnQgMS4xDQo+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBKaWFuIEogV2FuZyA8amlh bi5qLndhbmdAaW50ZWwuY29tPG1haWx0bzpqaWFuLmoud2FuZ0BpbnRlbC5jb20+Pg0KPj4+Pj4g LS0tDQo+Pj4+PiAgVWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5pdExpYi9EeGVNcExpYi5jIHwgMTcg KysrKysrKysrKysrKysrLS0NCj4+Pj4+ICAxIGZpbGUgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygr KSwgMiBkZWxldGlvbnMoLSkNCj4+Pj4+DQo+Pj4+PiBkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9M aWJyYXJ5L01wSW5pdExpYi9EeGVNcExpYi5jDQo+Pj4+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L01w SW5pdExpYi9EeGVNcExpYi5jDQo+Pj4+PiBpbmRleCA0MGMxYmY0MDdhLi4wNTQ4NGM5ZmYzIDEw MDY0NA0KPj4+Pj4gLS0tIGEvVWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5pdExpYi9EeGVNcExpYi5j DQo+Pj4+PiArKysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbml0TGliL0R4ZU1wTGliLmMNCj4+ Pj4+IEBAIC0yOTUsNiArMjk1LDcgQEAgSW5pdE1wR2xvYmFsRGF0YSAoDQo+Pj4+PiAgICBVSU5U TiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleDsNCj4+Pj4+ICAgIEVGSV9HQ0Rf TUVNT1JZX1NQQUNFX0RFU0NSSVBUT1IgICAgIE1lbURlc2M7DQo+Pj4+PiAgICBVSU5UTiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFja0Jhc2U7DQo+Pj4+PiArICBDUFVfSU5GT19J Tl9IT0IgICAgICAgICAgICAgICAgICAgICAqQ3B1SW5mb0luSG9iOw0KPj4+Pj4NCj4+Pj4+ICAg IFNhdmVDcHVNcERhdGEgKENwdU1wRGF0YSk7DQo+Pj4+Pg0KPj4+Pj4gQEAgLTMxNCw5ICszMTUs MTggQEAgSW5pdE1wR2xvYmFsRGF0YSAoDQo+Pj4+PiAgICAgICAgQVNTRVJUIChGQUxTRSk7DQo+ Pj4+PiAgICAgIH0NCj4+Pj4+DQo+Pj4+PiAtICAgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IENw dU1wRGF0YS0+Q3B1Q291bnQ7ICsrSW5kZXgpIHsNCj4+Pj4+IC0gICAgICBTdGFja0Jhc2UgPSBD cHVNcERhdGEtPkJ1ZmZlciArIEluZGV4ICogQ3B1TXBEYXRhLQ0KPj4+IENwdUFwU3RhY2tTaXpl Ow0KPj4+Pj4gKyAgICAvLw0KPj4+Pj4gKyAgICAvLyBEWEUgd2lsbCByZXVzZSBzdGFjayBhbGxv Y2F0ZWQgZm9yIEFQcyBhdCBQRUkgcGhhc2UgaWYgaXQncyBhdmFpbGFibGUuDQo+Pj4+PiArICAg IC8vIExldCdzIGNoZWNrIGl0IGhlcmUuDQo+Pj4+PiArICAgIC8vDQo+Pj4+PiArICAgIENwdUlu Zm9JbkhvYiA9IChDUFVfSU5GT19JTl9IT0IgKikoVUlOVE4pQ3B1TXBEYXRhLQ0KPj4+Pj4gQ3B1 SW5mb0luSG9iOw0KPj4+Pj4gKyAgICBpZiAoQ3B1SW5mb0luSG9iICE9IE5VTEwgJiYgQ3B1SW5m b0luSG9iLT5BcFRvcE9mU3RhY2sgIT0gMCkgew0KPj4+Pj4gKyAgICAgIFN0YWNrQmFzZSA9IENw dUluZm9JbkhvYi0+QXBUb3BPZlN0YWNrOw0KPj4+Pj4gKyAgICB9IGVsc2Ugew0KPj4+Pj4gKyAg ICAgIFN0YWNrQmFzZSA9IENwdU1wRGF0YS0+QnVmZmVyOw0KPj4+Pj4gKyAgICB9DQo+Pj4+DQo+ Pj4+IFNvLCBpZiB0aGUgSE9CIGlzIG5vdCBmb3VuZCwgdGhlbiBTdGFja0Jhc2UgaXMgc2V0IG9r YXkuDQo+Pj4+DQo+Pj4+IEhvd2V2ZXIsIEknbSB1bnN1cmUgYWJvdXQgdGhlIG90aGVyIGNhc2Uu IFRoZQ0KPj4+PiBDUFVfSU5GT19JTl9IT0IuQXBUb3BPZlN0YWNrIGZpZWxkIGlkZW50aWZpZXMg dGhlICp0b3AqIG9mIHRoZSBzdGFjaw0KPj4+PiAoaGlnaGVzdCBhZGRyZXNzLCBhbmQgdGhlIHN0 YWNrIGdyb3dzIGRvd24pOyBob3dldmVyIHRoZSBsb29wIGJlbG93DQo+Pj4+ICppbmNyZW1lbnRz KiBTdGFja0Jhc2UuIEdpdmVuIHRoZSBpbmNyZW1lbnRpbmcgbmF0dXJlIG9mIHRoZSBsb29wLA0K Pj4+PiBzaG91bGRuJ3Qgd2UgZmlyc3QgY2FsY3VsYXRlIHRoZSBhY3R1YWwgYmFzZSAoPSBsb3dl c3QgYWRkcmVzcykgZnJvbSB0aGUNCj4+Pj4gQ1BVX0lORk9fSU5fSE9CLkFwVG9wT2ZTdGFjayBm aWVsZD8NCj4+Pj4NCj4+Pj4gQWN0dWFsbHkuLi4gSSdtIGV2ZW4gbW9yZSBjb25mdXNlZC4gVGhl IENwdU1wRGF0YS0+Q3B1SW5mb0luSG9iIGZpZWxkDQo+Pj4+IHBvaW50cyB0byBhbiAqYXJyYXkq IG9mIENQVV9JTkZPX0lOX0hPQiBzdHJ1Y3R1cmVzLiBUaGVyZWZvcmUsIGZvciBhbnkNCj4+Pj4g Z2l2ZW4gcHJvY2Vzc29yICNOLCB3ZSBzaG91bGQgbm90IGNhbGN1bGF0ZSB0aGUgc3RhY2sgYmFz ZSBhcw0KPj4+Pg0KPj4+PiAgIENwdU1wRGF0YS0+Q3B1SW5mb0luSG9iLT5BcFRvcE9mU3RhY2sg KyBOICogQ3B1TXBEYXRhLQ0KPj4+Pj4gQ3B1QXBTdGFja1NpemUNCj4+Pj4NCj4+Pj4gaW5zdGVh ZCB3ZSBzaG91bGQgY2FsY3VsYXRlIHRoZSBzdGFjayBiYXNlIGFzIHNvbWV0aGluZyBsaWtlOg0K Pj4+Pg0KPj4+PiAgIENwdU1wRGF0YS0+Q3B1SW5mb0luSG9iW05dLkFwVG9wT2ZTdGFjayAtIENw dU1wRGF0YS0NCj4+PiBDcHVBcFN0YWNrU2l6ZQ0KPj4+Pg0KPj4+PiBTZWUNCj4+Pj4gLSB0aGUg SW5pdGlhbGl6ZUFwRGF0YSgpIGZ1bmN0aW9uLA0KPj4+PiAtIGFuZCBpdHMgY2FsbCBzaXRlIGlu IHRoZSBBcFdha2V1cEZ1bmN0aW9uKCkgZnVuY3Rpb24uDQo+Pj4+DQo+Pj4+IChUbyBteSBzdXJw cmlzZSwgSSBwZXJzb25hbGx5IG1vZGlmaWVkIEluaXRpYWxpemVBcERhdGEoKSBlYXJsaWVyLCBp bg0KPj4+PiBjb21taXQgZGQzZmEwY2Q3MmRlICgiVWVmaUNwdVBrZy9NcEluaXRMaWI6IHN1cHBv cnQgNjQtYml0IEFQIHN0YWNrDQo+Pj4+IGFkZHJlc3NlcyIsIDIwMTYtMTEtMTcpIC0tIEkndmUg dG90YWxseSBmb3Jnb3R0ZW4gYWJvdXQgdGhhdCBieSBub3chKQ0KPj4+Pg0KPj4+PiBXaGF0IGRv IHlvdSB0aGluaz8NCj4+Pj4NCj4+Pj4+DQo+Pj4+PiArICAgIGZvciAoSW5kZXggPSAwOyBJbmRl eCA8IENwdU1wRGF0YS0+Q3B1Q291bnQ7ICsrSW5kZXgpIHsNCj4+Pj4+ICAgICAgICBTdGF0dXMg PSBnRFMtPkdldE1lbW9yeVNwYWNlRGVzY3JpcHRvciAoU3RhY2tCYXNlLCAmTWVtRGVzYyk7DQo+ Pj4+PiAgICAgICAgQVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVzKTsNCj4+Pj4+DQo+Pj4+PiBAQCAt MzI2LDYgKzMzNiw5IEBAIEluaXRNcEdsb2JhbERhdGEgKA0KPj4+Pj4gICAgICAgICAgICAgICAg ICAgICAgICBNZW1EZXNjLkF0dHJpYnV0ZXMgfCBFRklfTUVNT1JZX1JQDQo+Pj4+PiAgICAgICAg ICAgICAgICAgICAgICAgICk7DQo+Pj4+PiAgICAgICAgQVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVz KTsNCj4+Pj4+ICsNCj4+Pj4+ICsgICAgICBERUJVRyAoKERFQlVHX1ZFUkJPU0UsICJTdGFjayBH dWFyZCBzZXQgYXQgJXggW2NwdSVkXSFcbiIsDQo+Pj4+IFN0YWNrQmFzZSwgSW5kZXgpKTsNCj4+ Pj4NCj4+Pj4gU3RhY2tCYXNlIGhhcyB0eXBlIFVJTlROLCBhbmQgc28gaXQgc2hvdWxkIG5vdCBi ZSBwcmludGVkIHdpdGggJXguIEl0DQo+Pj4+IHNob3VsZCBiZSBjYXN0IHRvIChVSU5UNjQpLCBh bmQgdGhlbiBwcmludGVkIHdpdGggJUx4Lg0KPj4+Pg0KPj4+PiBTaW1pbGFybHksIEluZGV4IGhh cyB0eXBlIFVJTlROLiBJdCBzaG91bGQgbm90IGJlIHByaW50ZWQgd2l0aCAlZC4gSXQNCj4+Pj4g c2hvdWxkIGJlIGNhc3QgdG8gKFVJTlQ2NCkgYW5kIHByaW50ZWQgd2l0aCAlTHUuDQo+Pj4+DQo+ Pj4+DQo+Pj4+PiArICAgICAgU3RhY2tCYXNlICs9IENwdU1wRGF0YS0+Q3B1QXBTdGFja1NpemU7 DQo+Pj4+DQo+Pj4+IEFnYWluLCBJIGRvbid0IHRoaW5rIHRoZSBzaW1wbGUgaW5jcmVtZW50IGFw cGxpZXMgd2hlbiB0aGUNCj4+Pj4gQ3B1TXBEYXRhLT5DcHVJbmZvSW5Ib2IgYXJyYXkgZXhpc3Rz Lg0KPj4+Pg0KPj4+Pj4gICAgICB9DQo+Pj4+PiAgICB9DQo+Pj4+Pg0KPj4+Pj4NCj4+Pj4NCj4+ Pj4gVGhhbmtzLA0KPj4+PiBMYXN6bG8NCj4+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXw0KPj4+IGVkazItZGV2ZWwgbWFpbGluZyBsaXN0DQo+Pj4gZWRr Mi1kZXZlbEBsaXN0cy4wMS5vcmc8bWFpbHRvOmVkazItZGV2ZWxAbGlzdHMuMDEub3JnPg0KPj4+ IGh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8vZWRrMi1kZXZlbA0KDQpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KZWRrMi1kZXZlbCBt YWlsaW5nIGxpc3QNCmVkazItZGV2ZWxAbGlzdHMuMDEub3JnPG1haWx0bzplZGsyLWRldmVsQGxp c3RzLjAxLm9yZz4NCmh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8vZWRrMi1k ZXZlbA0KDQoNCg0K