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.151; helo=mga17.intel.com; envelope-from=jiewen.yao@intel.com; receiver=edk2-devel@lists.01.org Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) (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 8442E210C998C for ; Mon, 17 Dec 2018 00:24:54 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 17 Dec 2018 00:24:53 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,364,1539673200"; d="scan'208";a="110039206" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by fmsmga008.fm.intel.com with ESMTP; 17 Dec 2018 00:24:53 -0800 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.408.0; Mon, 17 Dec 2018 00:24:53 -0800 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.182]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.59]) with mapi id 14.03.0415.000; Mon, 17 Dec 2018 16:24:51 +0800 From: "Yao, Jiewen" To: Ard Biesheuvel , Leif Lindholm CC: "Gao, Liming" , Jagadeesh Ujja , "edk2-devel@lists.01.org" , "Zhang, Chao B" Thread-Topic: [PATCH 05/13] MdePkg/Library/BaseLib/AArch64: Add AsmLfence function Thread-Index: AQHUlazh9asijuz/jUi0/lqlY+s7lKWCOEig///PW4CAAAbjAIAAidDA Date: Mon, 17 Dec 2018 08:24:50 +0000 Message-ID: <74D8A39837DF1E4DA445A8C0B3885C503F457F55@shsmsx102.ccr.corp.intel.com> References: <1544789607-11316-1-git-send-email-jagadeesh.ujja@arm.com> <1544789607-11316-6-git-send-email-jagadeesh.ujja@arm.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14E38D42E@SHSMSX104.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503F457847@shsmsx102.ccr.corp.intel.com> In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNWFmZmNmZDItMzgzYi00ZDVhLTg5OWItOGQzMjBjNWU1OTVmIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiMlZQakNPMFNpd2hJUUoxWkxEYnlBWDJocUlPYUdkMjdJZGZjaEtsdnlRUXpnSTdSRmQwOWxnVDNOTjdpdTZDbSJ9 x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.400.15 dlp-reaction: request-justification,no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH 05/13] MdePkg/Library/BaseLib/AArch64: Add AsmLfence function X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Dec 2018 08:24:54 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgQXJkDQpJIGFtIE9LIHRvIHJlZmluZSBpdCBub3cuDQoNCkRvIHlvdSBoYXZlIGFueSBwcm9w b3NhbCBvbiB0aGUgbmFtaW5nIGZyb20gQVJNIHNpZGU/DQoNClRoYW5rIHlvdQ0KWWFvIEppZXdl bg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEFyZCBCaWVzaGV1dmVs IFttYWlsdG86YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZ10NCj4gU2VudDogTW9uZGF5LCBEZWNl bWJlciAxNywgMjAxOCA0OjExIFBNDQo+IFRvOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRl bC5jb20+OyBMZWlmIExpbmRob2xtDQo+IDxsZWlmLmxpbmRob2xtQGxpbmFyby5vcmc+DQo+IENj OiBHYW8sIExpbWluZyA8bGltaW5nLmdhb0BpbnRlbC5jb20+OyBKYWdhZGVlc2ggVWpqYQ0KPiA8 amFnYWRlZXNoLnVqamFAYXJtLmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnOyBaaGFuZywg Q2hhbyBCDQo+IDxjaGFvLmIuemhhbmdAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW1BBVENI IDA1LzEzXSBNZGVQa2cvTGlicmFyeS9CYXNlTGliL0FBcmNoNjQ6IEFkZA0KPiBBc21MZmVuY2Ug ZnVuY3Rpb24NCj4gDQo+IE9uIE1vbiwgMTcgRGVjIDIwMTggYXQgMDg6NDUsIEFyZCBCaWVzaGV1 dmVsIDxhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPg0KPiB3cm90ZToNCj4gPg0KPiA+IE9uIE1v biwgMTcgRGVjIDIwMTggYXQgMDQ6MjksIFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNv bT4NCj4gd3JvdGU6DQo+ID4gPg0KPiA+ID4gSSB0aGluayB3ZSBoYXZlIGJlbG93IGRlZmluaXRp b24uDQo+ID4gPiAtLSBNZW1vcnlGZW5jZTogU2VyaWFsaXplIGxvYWQgYW5kIHN0b3JlIG9wZXJh dGlvbnMuDQo+ID4gPiAtLSBMb2FkRmVuY2U6IFNlcmlhbGl6ZSBsb2FkIG9wZXJhdGlvbnMuDQo+ ID4gPiAtLSBTdG9yZUZlbmNlOiBTZXJpYWxpemUgc3RvcmUgb3BlcmF0aW9ucy4NCj4gPiA+DQo+ ID4gPiBBY2NvcmRpbmcgdG8gSUEzMiBTRE0sIEludGVsIGhhcyBNRkVOQ0UsIExGRU5DRSBhbmQg U0ZFTkNFLg0KPiA+ID4gSWYgQVJNIG9ubHkgaGFzIERNQiwgaXQgaXMgcG9zc2libGUgdG8gdXNl IERNQiBmb3IgTWVtb3J5RmVuY2UsDQo+IExvYWRGZW5jZSBvciBTdG9yZUZlbmNlLg0KPiA+ID4N Cj4gPiA+IE1heWJlIGl0IGlzIGJldHRlciB0byB1c2UgTG9hZEZlbmNlLCBpbnN0ZWFkIG9mIEFz bUxGZW5jZT8NCj4gPiA+IFRoZW4gd2UgY2FuIGFsaWduIHdpdGggTWVtb3J5RmVuY2UuDQo+ID4g Pg0KPiA+DQo+ID4gSSB0aGluayB1c2luZyBBc21MZmVuY2UoKSBhbGwgb3ZlciB0aGUgY29kZSB0 byBsaW1pdCBzcGVjdWxhdGlvbiB3YXMgYQ0KPiA+IG1pc3Rha2UsIGFuZCBJIGFtIGRpc2FwcG9p bnRlZCBub2JvZHkgZnJvbSB0aGUgQVJNIHNpZGUgd2FzIGludm9sdmVkDQo+ID4gYXQgYWxsIHdo ZW4gdGhlc2UgY2hhbmdlcyB3ZXJlIHByb3Bvc2VkLg0KPiA+DQo+IA0KPiBPSywgSSBoYXZlIHRv IGFwb2xvZ2l6ZSBoZXJlLiBIYW8gZGlkIGNjIHVzIG9uIHRoZXNlIHBhdGNoZXMsIGFuZCBzbw0K PiB3ZSBkaWQgaGF2ZSB0aGUgb3Bwb3J0dW5pdHkgdG8gcmVzcG9uZCBhdCB0aGUgdGltZS4NCj4g DQo+IEJ1dCB0aGF0IGRvZXNuJ3QgY2hhbmdlIHRoZSBmYWN0IHRoYXQgQXNtTGZlbmNlKCkgc2hv dWxkIGJlIHJlcGxhY2VkDQo+IGJ5IGFuIGFic3RyYWN0aW9uIHRoYXQgZGVzY3JpYmVzIHRoZSBz cGVjaWZpYyBzZW1hbnRpY3Mgb2YgdGhlIHg4Ng0KPiBMZmVuY2UgaW1wbGVtZXRhdGlvbiBiZXlv bmQgbWVtb3J5IG9yZGVyaW5nIHRoYXQgd2UgYXJlIHJlbHlpbmcgb24NCj4gaGVyZS4NCj4gDQo+ IA0KPiANCj4gPiBUaGUgY29kZSBjaGFuZ2VzIHJlbHkgb24gc3BlY2lmaWMgc2VtYW50aWNzIG9m IHRoZSB4ODYgTGZlbmNlDQo+ID4gaW5zdHJ1Y3Rpb25zLCBpLmUuLCB0aGF0IGJleW9uZCBsb2Fk IHNlcmlhbGl6YXRpb24sIHRoZXkgZW5zdXJlIHRoYXQNCj4gPiBhbGwgaW5zdHJ1Y3Rpb25zIChu b3QganVzdCBsb2FkcykgY29tcGxldGUgYmVmb3JlIHRoZSBsZmVuY2UNCj4gPiBjb21wbGV0ZXMu IFRoaXMgaXMgYSBtdWNoIHN0cm9uZ2VyIG5vdGlvbiB0aGFuIGEgbG9hZCBiYXJyaWVyLCBhbmQg c28NCj4gPiB0aGUgYWJzdHJhY3Rpb24gc2hvdWxkIGhhdmUgYmVlbiBkZWZpbmVkIGFzIHNvbWV0 aGluZyBsaWtlIGENCj4gPiBFeGVjRmVuY2UoKSBvciBwaXBlbGluZSBiYXJyaWVyIGV0YywgYW5k IHRoZSB4ODYgc3BlY2lmaWMNCj4gPiBpbXBsZW1lbnRhdGlvbiB3b3VsZCBoYXZlIGJlZW4gbWFw cGVkIG9udG8gTGZlbmNlLiBGb3IgdGhlIEFSTSBzaWRlLA0KPiA+IHdlIHByb2JhYmx5IG5lZWQg YW4gSVNCIGluc3RydWN0aW9uIGhlcmUgYXMgd2VsbCBhcyBzb21lIGtpbmQgb2Ygb3RoZXINCj4g PiBiYXJyaWVyLiBDYWxsaW5nIGl0IExvYWRGZW5jZSgpIG1ha2VzIG5vIHNlbnNlIHdoYXRzb2V2 ZXIuDQo+ID4NCj4gPg0KPiA+DQo+ID4NCj4gPg0KPiA+ID4NCj4gPiA+ID4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gRnJvbTogZWRrMi1kZXZlbCBbbWFpbHRvOmVkazItZGV2 ZWwtYm91bmNlc0BsaXN0cy4wMS5vcmddIE9uIEJlaGFsZg0KPiBPZg0KPiA+ID4gPiBHYW8sIExp bWluZw0KPiA+ID4gPiBTZW50OiBNb25kYXksIERlY2VtYmVyIDE3LCAyMDE4IDEwOjA0IEFNDQo+ ID4gPiA+IFRvOiBBcmQgQmllc2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz47IEph Z2FkZWVzaCBVamphDQo+ID4gPiA+IDxqYWdhZGVlc2gudWpqYUBhcm0uY29tPjsgTGVpZiBMaW5k aG9sbSA8bGVpZi5saW5kaG9sbUBsaW5hcm8ub3JnPg0KPiA+ID4gPiBDYzogZWRrMi1kZXZlbEBs aXN0cy4wMS5vcmc7IFpoYW5nLCBDaGFvIEINCj4gPGNoYW8uYi56aGFuZ0BpbnRlbC5jb20+DQo+ ID4gPiA+IFN1YmplY3Q6IFJlOiBbZWRrMl0gW1BBVENIIDA1LzEzXSBNZGVQa2cvTGlicmFyeS9C YXNlTGliL0FBcmNoNjQ6DQo+IEFkZA0KPiA+ID4gPiBBc21MZmVuY2UgZnVuY3Rpb24NCj4gPiA+ ID4NCj4gPiA+ID4gQXJkOg0KPiA+ID4gPiAgIE15IGZpcnN0IGNvbW1lbnQgaXMgdG8gc3VnZ2Vz dCB1cGRhdGluZyB0aGUgY2FsbGVyIGNvZGUgZm9yIHRoZSBhcmNoDQo+ID4gPiA+IHNwZWNpZmlj IGNvZGUuICBCdXQsIHRoZXJlIGFyZSB0d28gZHJpdmVycyB0aGF0IGhhdmUgdGhlIHNhbWUgdXNh Z2UuDQo+IFRoaXMNCj4gPiA+ID4gd2F5IHdpbGwgaW50cm9kdWNlIHRoZSBkdXBsaWNhdGVkIGNv ZGUgbG9naWMuIFNvLCBJIHN1Z2dlc3QgYW5vdGhlciB3YXkNCj4gdG8NCj4gPiA+ID4gZXh0ZW5k ICBBc21MZmVuY2UoKSBBUEkgc2NvcGUgZm9yIHRoZSBkaWZmZXJlbnQgQVJDSHMuIElmIHlvdSB0 aGluayBpdA0KPiBicmluZ3MNCj4gPiA+ID4gdGhlIGNvbmZ1c2UsIEkganVzdCB0aGluayBhbm90 aGVyIHdheSB0byByZXNvbHZlIHRoaXMgY2FzZSBpbiB0aGUgY2FsbGVyDQo+IGNvZGUuDQo+ID4g PiA+DQo+ID4gPiA+ICNpZiBkZWZpbmVkIChNREVfQ1BVX0lBMzIpIHx8IGRlZmluZWQgKE1ERV9D UFVfWDY0KQ0KPiA+ID4gPiBBc21MZmVuY2UoKTsNCj4gPiA+ID4gI2Vsc2UNCj4gPiA+ID4gTWVt b3J5RmVuY2UoKQ0KPiA+ID4gPiAjZW5kaWYNCj4gPiA+ID4NCj4gPiA+ID4gVGhhbmtzDQo+ID4g PiA+IExpbWluZw0KPiA+ID4gPiA+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4g PkZyb206IEFyZCBCaWVzaGV1dmVsIFttYWlsdG86YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZ10N Cj4gPiA+ID4gPlNlbnQ6IEZyaWRheSwgRGVjZW1iZXIgMTQsIDIwMTggOTo1NCBQTQ0KPiA+ID4g PiA+VG86IEphZ2FkZWVzaCBVamphIDxqYWdhZGVlc2gudWpqYUBhcm0uY29tPjsgTGVpZiBMaW5k aG9sbQ0KPiA+ID4gPiA+PGxlaWYubGluZGhvbG1AbGluYXJvLm9yZz4NCj4gPiA+ID4gPkNjOiBl ZGsyLWRldmVsQGxpc3RzLjAxLm9yZzsgR2FvLCBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29t PjsNCj4gWmhhbmcsDQo+ID4gPiA+ID5DaGFvIEIgPGNoYW8uYi56aGFuZ0BpbnRlbC5jb20+DQo+ ID4gPiA+ID5TdWJqZWN0OiBSZTogW1BBVENIIDA1LzEzXSBNZGVQa2cvTGlicmFyeS9CYXNlTGli L0FBcmNoNjQ6IEFkZA0KPiA+ID4gPiA+QXNtTGZlbmNlIGZ1bmN0aW9uDQo+ID4gPiA+ID4NCj4g PiA+ID4gPk9uIEZyaSwgMTQgRGVjIDIwMTggYXQgMTM6MTMsIEphZ2FkZWVzaCBVamphDQo+IDxq YWdhZGVlc2gudWpqYUBhcm0uY29tPg0KPiA+ID4gPiA+d3JvdGU6DQo+ID4gPiA+ID4+DQo+ID4g PiA+ID4+IFZhcmlhYmxlIHNlcnZpY2UgZHJpdmVyIGluY2x1ZGVzIGEgY2FsbCB0byBBc21MZmVu Y2UuIFRvIHJldXNlIHRoaXMNCj4gPiA+ID4gPj4gZHJpdmVyIG9uIEFBcmNoNjQgYmFzZWQgcGxh dGZvcm1zLCBhZGQgYW4gaW1wbGVtZW50YXRpb24gb2YNCj4gQXNtTGZlbmNlDQo+ID4gPiA+ID4+ IHRoYXQgYWN0cyBhcyBhIHdyYXBwZXIgb24gdGhlIEFBcmNoNjQgc3BlY2lmaWMgTWVtb3J5RmVu Y2UNCj4gZnVuY3Rpb24uDQo+ID4gPiA+ID4+DQo+ID4gPiA+ID4+IENvbnRyaWJ1dGVkLXVuZGVy OiBUaWFub0NvcmUgQ29udHJpYnV0aW9uIEFncmVlbWVudCAxLjENCj4gPiA+ID4gPj4gU2lnbmVk LW9mZi1ieTogSmFnYWRlZXNoIFVqamEgPGphZ2FkZWVzaC51amphQGFybS5jb20+DQo+ID4gPiA+ ID4+IC0tLQ0KPiA+ID4gPiA+PiAgTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9CYXNlTGliLmggICAg ICAgICAgICAgfCAzMw0KPiArKysrKysrKystLS0tLS0NCj4gPiA+ID4gPj4gIE1kZVBrZy9MaWJy YXJ5L0Jhc2VMaWIvQUFyY2g2NC9Bc21MZmVuY2UuUyAgIHwgNDINCj4gPiA+ID4gPisrKysrKysr KysrKysrKysrKysrDQo+ID4gPiA+ID4+ICBNZGVQa2cvTGlicmFyeS9CYXNlTGliL0FBcmNoNjQv QXNtTGZlbmNlLmFzbSB8IDQxDQo+ID4gPiA+ID4rKysrKysrKysrKysrKysrKysrDQo+ID4gPiA+ ID4+ICBNZGVQa2cvTGlicmFyeS9CYXNlTGliL0Jhc2VMaWIuaW5mICAgICAgICAgICB8ICAyICsN Cj4gPiA+ID4gPj4gIDQgZmlsZXMgY2hhbmdlZCwgMTA1IGluc2VydGlvbnMoKyksIDEzIGRlbGV0 aW9ucygtKQ0KPiA+ID4gPiA+Pg0KPiA+ID4gPiA+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0luY2x1 ZGUvTGlicmFyeS9CYXNlTGliLmgNCj4gPiA+ID4gPmIvTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9C YXNlTGliLmgNCj4gPiA+ID4gPj4gaW5kZXggOGNjMDg2OS4uY2E5NjFlZSAxMDA2NDQNCj4gPiA+ ID4gPj4gLS0tIGEvTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9CYXNlTGliLmgNCj4gPiA+ID4gPj4g KysrIGIvTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9CYXNlTGliLmgNCj4gPiA+ID4gPj4gQEAgLTc2 OTcsMTkgKzc2OTcsNiBAQCBBc21Xcml0ZVRyICgNCj4gPiA+ID4gPj4gICAgKTsNCj4gPiA+ID4g Pj4NCj4gPiA+ID4gPj4gIC8qKg0KPiA+ID4gPiA+PiAtICBQZXJmb3JtcyBhIHNlcmlhbGl6aW5n IG9wZXJhdGlvbiBvbiBhbGwgbG9hZC1mcm9tLW1lbW9yeQ0KPiBpbnN0cnVjdGlvbnMNCj4gPiA+ ID4gdGhhdA0KPiA+ID4gPiA+PiAtICB3ZXJlIGlzc3VlZCBwcmlvciB0aGUgQXNtTGZlbmNlIGZ1 bmN0aW9uLg0KPiA+ID4gPiA+PiAtDQo+ID4gPiA+ID4+IC0gIEV4ZWN1dGVzIGEgTEZFTkNFIGlu c3RydWN0aW9uLiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgYXZhaWxhYmxlIG9uDQo+IElBLTMyDQo+ ID4gPiA+IGFuZA0KPiA+ID4gPiA+eDY0Lg0KPiA+ID4gPiA+PiAtDQo+ID4gPiA+ID4+IC0qKi8N Cj4gPiA+ID4gPj4gLVZPSUQNCj4gPiA+ID4gPj4gLUVGSUFQSQ0KPiA+ID4gPiA+PiAtQXNtTGZl bmNlICgNCj4gPiA+ID4gPj4gLSAgVk9JRA0KPiA+ID4gPiA+PiAtICApOw0KPiA+ID4gPiA+PiAt DQo+ID4gPiA+ID4+IC0vKioNCj4gPiA+ID4gPj4gICAgUGF0Y2ggdGhlIGltbWVkaWF0ZSBvcGVy YW5kIG9mIGFuIElBMzIgb3IgWDY0IGluc3RydWN0aW9uIHN1Y2gNCj4gdGhhdA0KPiA+ID4gPiB0 aGUNCj4gPiA+ID4gPmJ5dGUsDQo+ID4gPiA+ID4+ICAgIHdvcmQsIGR3b3JkIG9yIHF3b3JkIG9w ZXJhbmQgaXMgZW5jb2RlZCBhdCB0aGUgZW5kIG9mIHRoZQ0KPiA+ID4gPiBpbnN0cnVjdGlvbidz DQo+ID4gPiA+ID4+ICAgIGJpbmFyeSByZXByZXNlbnRhdGlvbi4NCj4gPiA+ID4gPj4gQEAgLTc3 NTIsNCArNzczOSwyNCBAQCBQYXRjaEluc3RydWN0aW9uWDg2ICgNCj4gPiA+ID4gPj4gICAgKTsN Cj4gPiA+ID4gPj4NCj4gPiA+ID4gPj4gICNlbmRpZiAvLyBkZWZpbmVkIChNREVfQ1BVX0lBMzIp IHx8IGRlZmluZWQgKE1ERV9DUFVfWDY0KQ0KPiA+ID4gPiA+PiArDQo+ID4gPiA+ID4+ICsjaWYg ZGVmaW5lZCAoTURFX0NQVV9JQTMyKSB8fCBkZWZpbmVkIChNREVfQ1BVX1g2NCkgfHwNCj4gZGVm aW5lZA0KPiA+ID4gPiA+KE1ERV9DUFVfQUFSQ0g2NCkNCj4gPiA+ID4gPj4gKw0KPiA+ID4gPiA+ PiArLyoqDQo+ID4gPiA+ID4+ICsgIFBlcmZvcm1zIGEgc2VyaWFsaXppbmcgb3BlcmF0aW9uIG9u IGFsbCBsb2FkLWZyb20tbWVtb3J5DQo+IGluc3RydWN0aW9ucw0KPiA+ID4gPiB0aGF0DQo+ID4g PiA+ID4+ICsgIHdlcmUgaXNzdWVkIHByaW9yIHRoZSBBc21MZmVuY2UgZnVuY3Rpb24uDQo+ID4g PiA+ID4+ICsNCj4gPiA+ID4gPj4gKyAgSW4gY2FzZSBvZiBJQS0zMiBhbmQgeDY0LCBFeGVjdXRl cyBhIExGRU5DRSBpbnN0cnVjdGlvbi4NCj4gPiA+ID4gPj4gKw0KPiA+ID4gPiA+PiArICBJbiBj YXNlIG9mIEFBcmNoNjQgdGhpcyBhY3RzIGFzIGEgd3JhcHBlciBvbiB0aGUgQUFyY2g2NA0KPiA+ ID4gPiA+PiArICBzcGVjaWZpYyBNZW1vcnlGZW5jZSBmdW5jdGlvbg0KPiA+ID4gPiA+PiArDQo+ ID4gPiA+ID4+ICsqKi8NCj4gPiA+ID4gPj4gK1ZPSUQNCj4gPiA+ID4gPj4gK0VGSUFQSQ0KPiA+ ID4gPiA+PiArQXNtTGZlbmNlICgNCj4gPiA+ID4gPj4gKyAgVk9JRA0KPiA+ID4gPiA+PiArICAp Ow0KPiA+ID4gPiA+PiArDQo+ID4gPiA+ID4+ICsjZW5kaWYgIC8vIGRlZmluZWQgKE1ERV9DUFVf SUEzMikgfHwgZGVmaW5lZCAoTURFX0NQVV9YNjQpDQo+IHx8DQo+ID4gPiA+ID5kZWZpbmVkIChN REVfQ1BVX0FBUkNINjQpDQo+ID4gPiA+ID4+ICAjZW5kaWYgLy8gIWRlZmluZWQgKF9fQkFTRV9M SUJfXykNCj4gPiA+ID4gPj4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvQUFy Y2g2NC9Bc21MZmVuY2UuUw0KPiA+ID4gPiA+Yi9NZGVQa2cvTGlicmFyeS9CYXNlTGliL0FBcmNo NjQvQXNtTGZlbmNlLlMNCj4gPiA+ID4gPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiA+ID4g Pj4gaW5kZXggMDAwMDAwMC4uMmZkODA0Yg0KPiA+ID4gPiA+PiAtLS0gL2Rldi9udWxsDQo+ID4g PiA+ID4+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvQUFyY2g2NC9Bc21MZmVuY2UuUw0K PiA+ID4gPiA+PiBAQCAtMCwwICsxLDQyIEBADQo+ID4gPiA+ID4+ICsjIy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KPiA+ID4gPiA+PiArIw0KPiA+ID4gPiA+PiArIyBBc21MZmVuY2UoKSBmb3IgQUFy Y2g2NA0KPiA+ID4gPiA+PiArIw0KPiA+ID4gPiA+PiArIyBDb3B5cmlnaHQgKGMpIDIwMTMtMjAx OCwgQVJNIEx0ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCj4gPiA+ID4gPj4gKyMNCj4gPiA+ID4g Pj4gKyMgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KPiA+ID4g PiA+PiArIyBhcmUgbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBh bmQgY29uZGl0aW9ucw0KPiBvZiB0aGUNCj4gPiA+ID4gPkJTRCBMaWNlbnNlDQo+ID4gPiA+ID4+ ICsjIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBv ZiB0aGUgbGljZW5zZQ0KPiBtYXkNCj4gPiA+ID4gYmUNCj4gPiA+ID4gPmZvdW5kIGF0DQo+ID4g PiA+ID4+ICsjIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHAu DQo+ID4gPiA+ID4+ICsjDQo+ID4gPiA+ID4+ICsjIFRIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVE IFVOREVSIFRIRSBCU0QgTElDRU5TRSBPTiBBTg0KPiAiQVMNCj4gPiA+ID4gSVMiDQo+ID4gPiA+ ID5CQVNJUywNCj4gPiA+ID4gPj4gKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFU SU9OUyBPRiBBTlkgS0lORCwNCj4gRUlUSEVSDQo+ID4gPiA+ID5FWFBSRVNTIE9SIElNUExJRUQu DQo+ID4gPiA+ID4+ICsjDQo+ID4gPiA+ID4+ICsjIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ ID4gPiA+PiArDQo+ID4gPiA+ID4+ICsudGV4dA0KPiA+ID4gPiA+PiArLnAyYWxpZ24gMg0KPiA+ ID4gPiA+PiArDQo+ID4gPiA+ID4+ICtHQ0NfQVNNX0VYUE9SVChBc21MZmVuY2UpDQo+ID4gPiA+ ID4+ICsNCj4gPiA+ID4gPj4gKyMgSU1QT1JUDQo+ID4gPiA+ID4+ICtHQ0NfQVNNX0lNUE9SVChN ZW1vcnlGZW5jZSkNCj4gPiA+ID4gPj4gKw0KPiA+ID4gPiA+PiArIy8qKg0KPiA+ID4gPiA+PiAr IyAgVXNlZCB0byBzZXJpYWxpemUgbG9hZCBhbmQgc3RvcmUgb3BlcmF0aW9ucy4NCj4gPiA+ID4g Pj4gKyMNCj4gPiA+ID4gPj4gKyMgIEFsbCBsb2FkcyBhbmQgc3RvcmVzIHRoYXQgcHJvY2VlZCBj YWxscyB0byB0aGlzIGZ1bmN0aW9uIGFyZQ0KPiA+ID4gPiBndWFyYW50ZWVkIHRvDQo+ID4gPiA+ ID5iZQ0KPiA+ID4gPiA+PiArIyAgZ2xvYmFsbHkgdmlzaWJsZSB3aGVuIHRoaXMgZnVuY3Rpb24g cmV0dXJucy4NCj4gPiA+ID4gPj4gKyMNCj4gPiA+ID4gPj4gKyMqKi8NCj4gPiA+ID4gPj4gKyNW T0lEDQo+ID4gPiA+ID4+ICsjRUZJQVBJDQo+ID4gPiA+ID4+ICsjQXNtTGZlbmNlICgNCj4gPiA+ ID4gPj4gKyMgIFZPSUQNCj4gPiA+ID4gPj4gKyMgICk7DQo+ID4gPiA+ID4+ICsjDQo+ID4gPiA+ ID4+ICtBU01fUEZYKEFzbUxmZW5jZSk6DQo+ID4gPiA+ID4+ICsgICAgc3RwICAgeDI5LCB4MzAs IFtzcCwgIy0xNl0hDQo+ID4gPiA+ID4+ICsgICAgYmwgTWVtb3J5RmVuY2UNCj4gPiA+ID4gPj4g KyAgICBsZHAgICB4MjksIHgzMCwgW3NwXSwgIzB4MTANCj4gPiA+ID4gPj4gKyAgICByZXQNCj4g PiA+ID4gPg0KPiA+ID4gPiA+QW55IHJlYXNvbiB3ZSBjYW4ndCBzaW1wbHkgZG8NCj4gPiA+ID4g Pg0KPiA+ID4gPiA+YiBNZW1vcnlGZW5jZQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID5oZXJlPw0KPiA+ ID4gPiA+DQo+ID4gPiA+ID5BbHNvLCB3aHkgSSB1bmRlcnN0YW5kIHRoZSByYXRpb25hbGUsIEkg c3RpbGwgdGhpbmsgaXQgd291bGQgYmUgYmV0dGVyDQo+ID4gPiA+ID50byBjaGFuZ2UgY2FsbGVy cyBvZiB0aGUgW3g4NiBzcGVjaWZpY10gQXNtTGZlbmNlKCkgdGhhbiB0byBpbnRyb2R1Y2UNCj4g PiA+ID4gPmFuIGFsaWFzIG9mIE1lbW9yeUZlbmNlKCkgZm9yIGFyY2hpdGVjdHVyZXMgd2hlcmUg TGZlbmNlIGlzIG5vdA0KPiA+ID4gPiA+ZGVmaW5lZC4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+VGhp cyBpcyBub3Qgb25seSBhYm91dCB0aWRpbmVzcywgYnV0IGFsc28gYWJvdXQgcG90ZW50aWFsbHkg aGF2aW5nDQo+ID4gPiA+ID5kaWZmZXJlbnQgc2VtYW50aWNzLCB3aGljaCB3ZSBjYW4ndCBwcm92 aWRlIGluIGdlbmVyYWwgb24gQVJNLCBidXQNCj4gPiA+ID4gPm9ubHkgaW4gcGFydGljdWxhciBj YXNlcyBbc3VjaCBhcyB0aGUgY29kZSB0aGF0IGlzIG1vZGlmaWVkIGluIHRoaXMNCj4gPiA+ID4g PnNlcmllc10NCj4gPiA+ID4gPg0KPiA+ID4gPiA+SW4gb3RoZXIgd29yZHMsIG5ld2x5IGludHJv ZHVjZWQgb2NjdXJyZW5jZXMgb2YgQXNtTGZlbmNlKCkgbm93DQo+IGhhdmUNCj4gPiA+ID4gPnRv IGJlIGF1ZGl0ZWQgZm9yIGJlaW5nIGFwcHJvcHJpYXRlIG9uIEFBcmM2NCBpZiB0aGV5IGFyZSBh ZGRlZCB0bw0KPiA+ID4gPiA+Z2VuZXJpYyBjb2RlLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4g PiA+ID4gPj4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvQUFyY2g2NC9Bc21M ZmVuY2UuYXNtDQo+ID4gPiA+ID5iL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvQUFyY2g2NC9Bc21M ZmVuY2UuYXNtDQo+ID4gPiA+ID4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gPiA+ID4+IGlu ZGV4IDAwMDAwMDAuLjdkZDU2NTkNCj4gPiA+ID4gPj4gLS0tIC9kZXYvbnVsbA0KPiA+ID4gPiA+ PiArKysgYi9NZGVQa2cvTGlicmFyeS9CYXNlTGliL0FBcmNoNjQvQXNtTGZlbmNlLmFzbQ0KPiA+ ID4gPiA+PiBAQCAtMCwwICsxLDQxIEBADQo+ID4gPiA+ID4+ICs7LS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQo+ID4gPiA+ID4+ICs7DQo+ID4gPiA+ID4+ICs7IEFzbUxmZW5jZSgpIGZvciBBQXJjaDY0 DQo+ID4gPiA+ID4+ICs7DQo+ID4gPiA+ID4+ICs7IENvcHlyaWdodCAoYykgMjAxMy0yMDE4LCBB Uk0gTHRkLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KPiA+ID4gPiA+PiArOw0KPiA+ID4gPiA+PiAr OyBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQo+ID4gPiA+ID4+ ICs7IGFyZSBsaWNlbnNlZCBhbmQgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBj b25kaXRpb25zDQo+IG9mIHRoZQ0KPiA+ID4gPiA+QlNEIExpY2Vuc2UNCj4gPiA+ID4gPj4gKzsg d2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0IG9mIHRo ZSBsaWNlbnNlDQo+IG1heQ0KPiA+ID4gPiBiZQ0KPiA+ID4gPiA+Zm91bmQgYXQNCj4gPiA+ID4g Pj4gKzsgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocC4NCj4g PiA+ID4gPj4gKzsNCj4gPiA+ID4gPj4gKzsgVEhFIFBST0dSQU0gSVMgRElTVFJJQlVURUQgVU5E RVIgVEhFIEJTRCBMSUNFTlNFIE9OIEFODQo+ICJBUw0KPiA+ID4gPiBJUyINCj4gPiA+ID4gPkJB U0lTLA0KPiA+ID4gPiA+PiArOyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05T IE9GIEFOWSBLSU5ELA0KPiBFSVRIRVINCj4gPiA+ID4gPkVYUFJFU1MgT1IgSU1QTElFRC4NCj4g PiA+ID4gPj4gKzsNCj4gPiA+ID4gPj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiA+ID4g Pj4gKw0KPiA+ID4gPiA+PiArICBFWFBPUlQgQXNtTGZlbmNlDQo+ID4gPiA+ID4+ICsgIEFSRUEg QmFzZUxpYl9Mb3dMZXZlbCwgQ09ERSwgUkVBRE9OTFkNCj4gPiA+ID4gPj4gKyAgIyBJTVBPUlQN Cj4gPiA+ID4gPj4gKyAgR0NDX0FTTV9JTVBPUlQoTWVtb3J5RmVuY2UpDQo+ID4gPiA+ID4+ICsN Cj4gPiA+ID4gPj4gKzsvKioNCj4gPiA+ID4gPj4gKzsgIFVzZWQgdG8gc2VyaWFsaXplIGxvYWQg YW5kIHN0b3JlIG9wZXJhdGlvbnMuDQo+ID4gPiA+ID4+ICs7DQo+ID4gPiA+ID4+ICs7ICBBbGwg bG9hZHMgYW5kIHN0b3JlcyB0aGF0IHByb2NlZWQgY2FsbHMgdG8gdGhpcyBmdW5jdGlvbiBhcmUN Cj4gZ3VhcmFudGVlZA0KPiA+ID4gPiB0bw0KPiA+ID4gPiA+YmUNCj4gPiA+ID4gPj4gKzsgIGds b2JhbGx5IHZpc2libGUgd2hlbiB0aGlzIGZ1bmN0aW9uIHJldHVybnMuDQo+ID4gPiA+ID4+ICs7 DQo+ID4gPiA+ID4+ICs7KiovDQo+ID4gPiA+ID4+ICs7Vk9JRA0KPiA+ID4gPiA+PiArO0VGSUFQ SQ0KPiA+ID4gPiA+PiArO0FzbUxmZW5jZSAoDQo+ID4gPiA+ID4+ICs7ICBWT0lEDQo+ID4gPiA+ ID4+ICs7ICApOw0KPiA+ID4gPiA+PiArOw0KPiA+ID4gPiA+PiArQXNtTGZlbmNlDQo+ID4gPiA+ ID4+ICsgICAgc3RwICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hDQo+ID4gPiA+ID4+ICsgICAgYmwg TWVtb3J5RmVuY2UNCj4gPiA+ID4gPj4gKyAgICBsZHAgICB4MjksIHgzMCwgW3NwXSwgIzB4MTAN Cj4gPiA+ID4gPj4gKyAgICByZXQNCj4gPiA+ID4gPj4gKw0KPiA+ID4gPiA+PiArICBFTkQNCj4g PiA+ID4gPj4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvQmFzZUxpYi5pbmYN Cj4gPiA+ID4gPmIvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9CYXNlTGliLmluZg0KPiA+ID4gPiA+ PiBpbmRleCBiODRlNTgzLi5iN2Q3YmNiIDEwMDY0NA0KPiA+ID4gPiA+PiAtLS0gYS9NZGVQa2cv TGlicmFyeS9CYXNlTGliL0Jhc2VMaWIuaW5mDQo+ID4gPiA+ID4+ICsrKyBiL01kZVBrZy9MaWJy YXJ5L0Jhc2VMaWIvQmFzZUxpYi5pbmYNCj4gPiA+ID4gPj4gQEAgLTU4NSw2ICs1ODUsNyBAQA0K PiA+ID4gPiA+PiAgICBNYXRoNjQuYw0KPiA+ID4gPiA+Pg0KPiA+ID4gPiA+PiAgICBBQXJjaDY0 L01lbW9yeUZlbmNlLlMgICAgICAgICAgICAgfCBHQ0MNCj4gPiA+ID4gPj4gKyAgQUFyY2g2NC9B c21MZmVuY2UuUyAgICAgICAgICAgICAgIHwgR0NDDQo+ID4gPiA+ID4+ICAgIEFBcmNoNjQvU3dp dGNoU3RhY2suUyAgICAgICAgICAgICB8IEdDQw0KPiA+ID4gPiA+PiAgICBBQXJjaDY0L0VuYWJs ZUludGVycnVwdHMuUyAgICAgICAgfCBHQ0MNCj4gPiA+ID4gPj4gICAgQUFyY2g2NC9EaXNhYmxl SW50ZXJydXB0cy5TICAgICAgIHwgR0NDDQo+ID4gPiA+ID4+IEBAIC01OTMsNiArNTk0LDcgQEAN Cj4gPiA+ID4gPj4gICAgQUFyY2g2NC9DcHVCcmVha3BvaW50LlMgICAgICAgICAgIHwgR0NDDQo+ ID4gPiA+ID4+DQo+ID4gPiA+ID4+ICAgIEFBcmNoNjQvTWVtb3J5RmVuY2UuYXNtICAgICAgICAg ICB8IE1TRlQNCj4gPiA+ID4gPj4gKyAgQUFyY2g2NC9Bc21MZmVuY2UuYXNtICAgICAgICAgICAg IHwgTVNGVA0KPiA+ID4gPiA+PiAgICBBQXJjaDY0L1N3aXRjaFN0YWNrLmFzbSAgICAgICAgICAg fCBNU0ZUDQo+ID4gPiA+ID4+ICAgIEFBcmNoNjQvRW5hYmxlSW50ZXJydXB0cy5hc20gICAgICB8 IE1TRlQNCj4gPiA+ID4gPj4gICAgQUFyY2g2NC9EaXNhYmxlSW50ZXJydXB0cy5hc20gICAgIHwg TVNGVA0KPiA+ID4gPiA+PiAtLQ0KPiA+ID4gPiA+PiAyLjcuNA0KPiA+ID4gPiA+Pg0KPiA+ID4g PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+ID4g PiBlZGsyLWRldmVsIG1haWxpbmcgbGlzdA0KPiA+ID4gPiBlZGsyLWRldmVsQGxpc3RzLjAxLm9y Zw0KPiA+ID4gPiBodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2VkazItZGV2 ZWwNCg==