From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) (using TLSv1 with cipher CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id BEC8A1A1E29 for ; Sun, 16 Oct 2016 23:43:53 -0700 (PDT) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga101.jf.intel.com with ESMTP; 16 Oct 2016 23:43:53 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,356,1473145200"; d="scan'208";a="180504649" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by fmsmga004.fm.intel.com with ESMTP; 16 Oct 2016 23:43:53 -0700 Received: from fmsmsx154.amr.corp.intel.com (10.18.116.70) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.248.2; Sun, 16 Oct 2016 23:43:53 -0700 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by FMSMSX154.amr.corp.intel.com (10.18.116.70) with Microsoft SMTP Server (TLS) id 14.3.248.2; Sun, 16 Oct 2016 23:43:52 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.139]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.209]) with mapi id 14.03.0248.002; Mon, 17 Oct 2016 14:43:27 +0800 From: "Zhu, Yonghong" To: "Justen, Jordan L" , "edk2-devel@lists.01.org" CC: "Gao, Liming" , "Zhu, Yonghong" Thread-Topic: [edk2] [Patch] BaseTools: PatchCheck to align with wiki and report error for EFI_D_* Thread-Index: AQHSJTRj7xp1cnJakEKmcTUrQ0ynQ6CpcLaAgAGnKPCAAI3lAIAAkqJA Date: Mon, 17 Oct 2016 06:43:27 +0000 Message-ID: References: <1476350987-11628-1-git-send-email-yonghong.zhu@intel.com> <147656241940.18236.15576249978641536178@jljusten-ivb> <147668376217.29755.4387465662965357425@jljusten-ivb> In-Reply-To: <147668376217.29755.4387465662965357425@jljusten-ivb> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNzc0YmNiN2QtZjI0MC00ZWY0LTgzNGEtMmY0MDJmYmZlMjMyIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6Ik95N0ltM05sTlwvQXhvUjlBbTZUako5MmFYMzBRTTBqbmtNaVVvd1BzZFlzPSJ9 x-ctpclassification: CTP_IC x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [Patch] BaseTools: PatchCheck to align with wiki and report error for EFI_D_* X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Oct 2016 06:43:53 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 U3VyZSwgSSB3aWxsIGFkZCB0aGlzIGluZm8uDQoNClllcywgYWRkIHRoaXMgc3VnZ2VzdGlvbiBp cyBnb29kLg0KDQpCZXN0IFJlZ2FyZHMsDQpaaHUgWW9uZ2hvbmcNCg0KLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCkZyb206IEp1c3RlbiwgSm9yZGFuIEwgDQpTZW50OiBNb25kYXksIE9jdG9i ZXIgMTcsIDIwMTYgMTo1NiBQTQ0KVG86IFpodSwgWW9uZ2hvbmcgPHlvbmdob25nLnpodUBpbnRl bC5jb20+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KQ2M6IEdhbywgTGltaW5nIDxsaW1pbmcu Z2FvQGludGVsLmNvbT47IFpodSwgWW9uZ2hvbmcgPHlvbmdob25nLnpodUBpbnRlbC5jb20+DQpT dWJqZWN0OiBSRTogW2VkazJdIFtQYXRjaF0gQmFzZVRvb2xzOiBQYXRjaENoZWNrIHRvIGFsaWdu IHdpdGggd2lraSBhbmQgcmVwb3J0IGVycm9yIGZvciBFRklfRF8qDQoNCk9uIDIwMTYtMTAtMTYg MDY6MzI6MzIsIFpodSwgWW9uZ2hvbmcgd3JvdGU6DQo+IFRoYW5rcyBKb3JkYW4uIEkgd2lsbCBz ZXBhcmF0ZSB0aGUgcGF0Y2hlcyBhbmQgc2VuZCBvdXQgdGhlIHVwZGF0ZWQgdmVyc2lvbi4NCj4g DQoNCk9uZSBvdGhlciBzdWdnZXN0aW9uIGZvciB0aGUgY29tbWl0IG1lc3NhZ2Ugb24geW91ciBw YXRjaC4gQ2FuIHlvdSBhZGQgdGhpcyBhdCB0aGUgYm90dG9tIGJlZm9yZSB0aGUgQ29udHJpYnV0 ZWQtdW5kZXI/DQoNCkZpeGVzOiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19i dWcuY2dpP2lkPTExMw0KDQpXaGF0IGRvIHlvdSB0aGluaz8NCg0KTWF5YmUgd2Ugc2hvdWxkIHVw ZGF0ZSB0aGUgY29tbWl0IG1lc3NhZ2Ugd2lraSBwYWdlIHRvIHN1Z2dlc3QgdGhpcyBhcyB3ZWxs Pw0KDQotSm9yZGFuDQoNCj4NCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTog SnVzdGVuLCBKb3JkYW4gTA0KPiBTZW50OiBTdW5kYXksIE9jdG9iZXIgMTYsIDIwMTYgNDoxNCBB TQ0KPiBUbzogWmh1LCBZb25naG9uZyA8eW9uZ2hvbmcuemh1QGludGVsLmNvbT47IGVkazItZGV2 ZWxAbGlzdHMuMDEub3JnDQo+IENjOiBHYW8sIExpbWluZyA8bGltaW5nLmdhb0BpbnRlbC5jb20+ DQo+IFN1YmplY3Q6IFJlOiBbZWRrMl0gW1BhdGNoXSBCYXNlVG9vbHM6IFBhdGNoQ2hlY2sgdG8g YWxpZ24gd2l0aCB3aWtpIA0KPiBhbmQgcmVwb3J0IGVycm9yIGZvciBFRklfRF8qDQo+IA0KPiBP biAyMDE2LTEwLTEzIDAyOjI5OjQ2LCBZb25naG9uZyBaaHUgd3JvdGU6DQo+ID4gVGhpcyBwYXRj aCB1cGRhdGVzIFBhdGNoQ2hlY2sucHnvvJoNCj4gDQo+IENhbiB5b3Ugc3BsaXQgdGhpcyBpbnRv IDMgc2VwYXJhdGUgcGF0Y2hlcz8NCj4gDQo+ID4gMS5VcGRhdGUgbWF4IGxpbmUgbGVuZ3RoIHRv IDcwIHRoYXQgZGVzY3JpYmUgaW4gd2lraQ0KPiANCj4gSSB0aGluayB3ZSBzaG91bGQgdXBkYXRl IFBhdGNoQ2hlY2sucHkgYW5kIHRoZSB3aWtpIHRvIHNheSB0aGF0Og0KPiANCj4gMS4gVGhlIHN1 YmplY3QgbGluZSBvZiB0aGUgY29tbWl0IG1lc3NhZ2Ugc2hvdWxkIGJlIDwgNzIgY2hhcmFjdGVy cy4NCj4gDQo+IFRoaXMgd29ya3Mgd2VsbCB3aXRoIGdpdCBsb2cgLS1vbmVsaW5lIHRvIHN0aWxs IHByb2R1Y2Ugb3V0cHV0IGxlc3MgdGhhbiA4MCBjaGFyYWN0ZXJzLg0KPiANCj4gMi4gVGhlIG90 aGVyIGxpbmVzIG9mIHRoZSBjb21taXQgbWVzc2FnZSBzaG91bGQgYmUgPCA3NiBjaGFyYWN0ZXJz Lg0KPiANCj4gV2hlbiB1c2luZyBnaXQgbG9nLCB0aGVzZSBsaW5lcyBhcmUgaW5kZW50ZWQgNCBj aGFyYWN0ZXJzLCBzbyBvbmNlIGFnYWluIHRoaXMgd2lsbCBrZWVwIHRoZSBsb2cgbWVzc2FnZSBy ZWFkYWJsZSBhbmQgdW5kZXIgODAgY29sdW1ucy4NCj4gDQo+ID4gMi5yZW1vdmUgdGhlIHR3byBb XSB3aGVuIGRvIHRoZSBjaGFyIGNvdW50IGNhbGN1bGF0aW9uDQo+IA0KPiBIb3cgYWJvdXQgaW5z dGVhZCB3ZSBhZGQgYSBuZXcgcmVnZXggdG8gdGhlIGNsYXNzOg0KPiANCj4gICAgIHN1YmplY3Rf cHJlZml4X3JlID0gXA0KPiAgICAgICAgIHJlLmNvbXBpbGUocicnJ14NCj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgXHMqIChcWw0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg W15cW1xdXSogIyBBbGxvdyBhbGwgbm9uLWJyYWNrZXRzDQo+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFxdKT8gXHMqDQo+ICAgICAgICAgICAgICAgICAgICAnJycsDQo+ICAgICAgICAgICAg ICAgICAgICByZS5WRVJCT1NFKQ0KPiANCj4gDQo+IFRoZW4geW91IGNhbiB1c2UgaXQgbGluZSB0 aGlzOg0KPiANCj4gICAgICAgICAgIHNlbGYuY29tbWl0X3N1YmplY3QgPSBcDQo+ICAgICAgICAg ICAgICAgc2VsZi5zdWJqZWN0X3ByZWZpeF9yZS5zdWIoJycsIHNlbGYuY29tbWl0X3N1YmplY3Qs IDEpDQo+IA0KPiBUaGlzIHdpbGwgY2hhbmdlOg0KPiANCj4gICAnIGEnID0+ICdhJw0KPiAgICcg W3BhdGNoIDFdIGEnID0+ICdhJw0KPiANCj4gQnV0LCBpdCB3aWxsIGlnbm9yZSB0aGlzLCBiZWNh dXNlIEkgZG9uJ3QgdGhpbmsgd2Ugc2hvdWxkIHRyeSB0byBtYXRjaCBicmFja2V0cyBoZXJlOg0K PiANCj4gICAnIFthIFtiXV0gYScNCj4gDQo+ID4gMy5yZXBvcnQgZXJyb3IgZm9yIEVGSV9EXyog bWFjcm8gaWYgaXQgaXMgdXNlZCwgcmVjb21tZW5kIHRvIHVzZQ0KPiA+IERFQlVHXyogZm9ybWF0 Lg0KPiANCj4gVGhpcyBzaG91bGQgZGVmaW5pdGVseSBiZSBhIHNlcGFyYXRlIHBhdGNoIHNpbmNl IHdlIGFyZSBzdGFydGluZyB0byBsb29rIGF0IGNvZGUuDQo+IA0KPiAtSm9yZGFuDQo+IA0KPiA+ IA0KPiA+IENjOiBMaW1pbmcgR2FvIDxsaW1pbmcuZ2FvQGludGVsLmNvbT4NCj4gPiBDb250cmli dXRlZC11bmRlcjogVGlhbm9Db3JlIENvbnRyaWJ1dGlvbiBBZ3JlZW1lbnQgMS4wDQo+ID4gU2ln bmVkLW9mZi1ieTogWW9uZ2hvbmcgWmh1IDx5b25naG9uZy56aHVAaW50ZWwuY29tPg0KPiA+IC0t LQ0KPiA+ICBCYXNlVG9vbHMvU2NyaXB0cy9QYXRjaENoZWNrLnB5IHwgMjEgKysrKysrKysrKysr KysrKy0tLS0tDQo+ID4gIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCA1IGRlbGV0 aW9ucygtKQ0KPiA+IA0KPiA+IGRpZmYgLS1naXQgYS9CYXNlVG9vbHMvU2NyaXB0cy9QYXRjaENo ZWNrLnB5IA0KPiA+IGIvQmFzZVRvb2xzL1NjcmlwdHMvUGF0Y2hDaGVjay5weSBpbmRleCA0NTVj MTMwLi5kNDIzMjIwIDEwMDc1NQ0KPiA+IC0tLSBhL0Jhc2VUb29scy9TY3JpcHRzL1BhdGNoQ2hl Y2sucHkNCj4gPiArKysgYi9CYXNlVG9vbHMvU2NyaXB0cy9QYXRjaENoZWNrLnB5DQo+ID4gQEAg LTEsOSArMSw5IEBADQo+ID4gICMjIEBmaWxlDQo+ID4gICMgIENoZWNrIGEgcGF0Y2ggZm9yIHZh cmlvdXMgZm9ybWF0IGlzc3VlcyAgIyAtIyAgQ29weXJpZ2h0IChjKSANCj4gPiAyMDE1LCBJbnRl bCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4gKyMgIENvcHlyaWdo dCAoYykgMjAxNSAtIDIwMTYsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIA0KPiA+ICty ZXNlcnZlZC48QlI+DQo+ID4gICMNCj4gPiAgIyAgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21w YW55aW5nIG1hdGVyaWFscyBhcmUgbGljZW5zZWQgYW5kIA0KPiA+IG1hZGUgIyAgYXZhaWxhYmxl IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQlNEIExpY2Vuc2UgDQo+ID4g d2hpY2ggIyAgYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uIFRoZSBmdWxsIHRleHQgb2Yg dGhlIGxpY2Vuc2UgDQo+ID4gbWF5IGJlICMgIGZvdW5kIGF0IGh0dHA6Ly9vcGVuc291cmNlLm9y Zy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHANCj4gPiBAQCAtMTQsMTEgKzE0LDExIEBADQo+ID4g ICMNCj4gPiAgDQo+ID4gIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24NCj4g PiAgDQo+ID4gIFZlcnNpb25OdW1iZXIgPSAnMC4xJw0KPiA+IC1fX2NvcHlyaWdodF9fID0gIkNv cHlyaWdodCAoYykgMjAxNSwgSW50ZWwgQ29ycG9yYXRpb24gIEFsbCByaWdodHMgcmVzZXJ2ZWQu Ig0KPiA+ICtfX2NvcHlyaWdodF9fID0gIkNvcHlyaWdodCAoYykgMjAxNSAtIDIwMTYsIEludGVs IENvcnBvcmF0aW9uICBBbGwgcmlnaHRzIHJlc2VydmVkLiINCj4gPiAgDQo+ID4gIGltcG9ydCBl bWFpbA0KPiA+ICBpbXBvcnQgYXJncGFyc2UNCj4gPiAgaW1wb3J0IG9zDQo+ID4gIGltcG9ydCBy ZQ0KPiA+IEBAIC0xOTUsMTEgKzE5NSwxMSBAQCBjbGFzcyBDb21taXRNZXNzYWdlQ2hlY2s6DQo+ ID4gIA0KPiA+ICAgICAgICAgIGlmIGNvdW50IDw9IDA6DQo+ID4gICAgICAgICAgICAgIHNlbGYu ZXJyb3IoJ0VtcHR5IGNvbW1pdCBtZXNzYWdlIScpDQo+ID4gICAgICAgICAgICAgIHJldHVybg0K PiA+ICANCj4gPiAtICAgICAgICBpZiBjb3VudCA+PSAxIGFuZCBsZW4obGluZXNbMF0pID4gNzY6 DQo+ID4gKyAgICAgICAgaWYgY291bnQgPj0gMSBhbmQgbGVuKGxpbmVzWzBdKSA+IDcwOg0KPiA+ ICAgICAgICAgICAgICBzZWxmLmVycm9yKCdGaXJzdCBsaW5lIG9mIGNvbW1pdCBtZXNzYWdlIChz dWJqZWN0IGxpbmUpICcgKw0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICdpcyB0b28gbG9u Zy4nKQ0KPiA+ICANCj4gPiAgICAgICAgICBpZiBjb3VudCA+PSAxIGFuZCBsZW4obGluZXNbMF0u c3RyaXAoKSkgPT0gMDoNCj4gPiAgICAgICAgICAgICAgc2VsZi5lcnJvcignRmlyc3QgbGluZSBv ZiBjb21taXQgbWVzc2FnZSAoc3ViamVjdCBsaW5lKSAnIA0KPiA+ICsgQEAgLTIwOCwxMSArMjA4 LDExIEBAIGNsYXNzIENvbW1pdE1lc3NhZ2VDaGVjazoNCj4gPiAgICAgICAgICBpZiBjb3VudCA+ PSAyIGFuZCBsaW5lc1sxXS5zdHJpcCgpICE9ICcnOg0KPiA+ICAgICAgICAgICAgICBzZWxmLmVy cm9yKCdTZWNvbmQgbGluZSBvZiBjb21taXQgbWVzc2FnZSBzaG91bGQgYmUgJyArDQo+ID4gICAg ICAgICAgICAgICAgICAgICAgICAgJ2VtcHR5LicpDQo+ID4gIA0KPiA+ICAgICAgICAgIGZvciBp IGluIHJhbmdlKDIsIGNvdW50KToNCj4gPiAtICAgICAgICAgICAgaWYgKGxlbihsaW5lc1tpXSkg PiA3NiBhbmQNCj4gPiArICAgICAgICAgICAgaWYgKGxlbihsaW5lc1tpXSkgPiA3MCBhbmQNCj4g PiAgICAgICAgICAgICAgICAgIGxlbihsaW5lc1tpXS5zcGxpdCgpKSA+IDEgYW5kDQo+ID4gICAg ICAgICAgICAgICAgICBub3QgbGluZXNbaV0uc3RhcnRzd2l0aCgnZ2l0LXN2bi1pZDonKSk6DQo+ ID4gICAgICAgICAgICAgICAgICBzZWxmLmVycm9yKCdMaW5lICVkIG9mIGNvbW1pdCBtZXNzYWdl IGlzIHRvbyBsb25nLicgDQo+ID4gJSAoaSArIDEpKQ0KPiA+ICANCj4gPiAgICAgICAgICBsYXN0 X3NpZ19saW5lID0gTm9uZQ0KPiA+IEBAIC0zNTQsMTAgKzM1NCwxMiBAQCBjbGFzcyBHaXREaWZm Q2hlY2s6DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lKQ0KPiA+ ICAgICAgICAgIGlmICcgICAgJyBpbiBsaW5lOg0KPiA+ICAgICAgICAgICAgICBzZWxmLmFkZGVk X2xpbmVfZXJyb3IoJ1RhYiBjaGFyYWN0ZXIgdXNlZCcsIGxpbmUpDQo+ID4gICAgICAgICAgaWYg bGVuKHN0cmlwcGVkKSA8IGxlbihsaW5lKToNCj4gPiAgICAgICAgICAgICAgc2VsZi5hZGRlZF9s aW5lX2Vycm9yKCdUcmFpbGluZyB3aGl0ZXNwYWNlIGZvdW5kJywgDQo+ID4gbGluZSkNCj4gPiAr ICAgICAgICBpZiAnRUZJX0RfJyBpbiBsaW5lOg0KPiA+ICsgICAgICAgICAgICBzZWxmLmFkZGVk X2xpbmVfZXJyb3IoJ0VGSV9EXyogdXNlZCwgUGxlYXNlIHVzZSBERUJVR18qIA0KPiA+ICsgZm9y bWF0JywgbGluZSkNCj4gPiAgDQo+ID4gICAgICBzcGxpdF9kaWZmX3JlID0gcmUuY29tcGlsZShy JycnDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKD9QPGNtZD4NCj4g PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiBkaWZmIFxzKyAtLWdp dCBccysgYS8uKyBccysgYi8uKyAkDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKSBAQCAtNDcxLDExICs0NzMsMjAgQEAgY2xhc3MgDQo+ID4gQ2hlY2tPbmVQYXRjaDoN Cj4gPiAgICAgICAgICAgICAgc2VsZi5jb21taXRfbXNnID0gbW8uZ3JvdXAoJ2NvbW1pdF9tZXNz YWdlJykNCj4gPiAgDQo+ID4gICAgICAgICAgc2VsZi5jb21taXRfc3ViamVjdCA9IHBtYWlsWydz dWJqZWN0J10ucmVwbGFjZSgnXHJcbicsICcnKQ0KPiA+ICAgICAgICAgIHNlbGYuY29tbWl0X3N1 YmplY3QgPSBzZWxmLmNvbW1pdF9zdWJqZWN0LnJlcGxhY2UoJ1xuJywgJycpDQo+ID4gIA0KPiA+ IC0gICAgICAgIHBmeF9zdGFydCA9IHNlbGYuY29tbWl0X3N1YmplY3QuZmluZCgnWycpDQo+ID4g KyAgICAgICAgcGZ4X3N0YXJ0X3RtcCA9IHNlbGYuY29tbWl0X3N1YmplY3QuZmluZCgnWycpDQo+ ID4gKyAgICAgICAgcGZ4X2VuZCA9IHNlbGYuY29tbWl0X3N1YmplY3QuZmluZCgnXScsIHBmeF9z dGFydF90bXApDQo+ID4gKyAgICAgICAgcGZ4X3N0YXJ0ID0gcGZ4X3N0YXJ0X3RtcA0KPiA+ICsg ICAgICAgIHdoaWxlIChwZnhfZW5kID4gcGZ4X3N0YXJ0X3RtcCk6DQo+ID4gKyAgICAgICAgICAg IHBmeF9zdGFydF90bXAgPSBzZWxmLmNvbW1pdF9zdWJqZWN0LmZpbmQoJ1snLCBwZnhfZW5kKQ0K PiA+ICsgICAgICAgICAgICBpZiBwZnhfc3RhcnRfdG1wID49IDA6DQo+ID4gKyAgICAgICAgICAg ICAgICBwZnhfZW5kID0gc2VsZi5jb21taXRfc3ViamVjdC5maW5kKCddJyxwZnhfc3RhcnRfdG1w KQ0KPiA+ICsgICAgICAgICAgICBlbHNlOg0KPiA+ICsgICAgICAgICAgICAgICAgYnJlYWsNCj4g PiArDQo+ID4gICAgICAgICAgaWYgcGZ4X3N0YXJ0ID49IDA6DQo+ID4gICAgICAgICAgICAgIHBm eF9lbmQgPSBzZWxmLmNvbW1pdF9zdWJqZWN0LmZpbmQoJ10nKQ0KPiA+ICAgICAgICAgICAgICBp ZiBwZnhfZW5kID4gcGZ4X3N0YXJ0Og0KPiA+ICAgICAgICAgICAgICAgICAgc2VsZi5jb21taXRf cHJlZml4ID0gc2VsZi5jb21taXRfc3ViamVjdFtwZnhfc3RhcnQgKyAxIDogcGZ4X2VuZF0NCj4g PiAgICAgICAgICAgICAgICAgIHNlbGYuY29tbWl0X3N1YmplY3QgPSBzZWxmLmNvbW1pdF9zdWJq ZWN0W3BmeF9lbmQgKyANCj4gPiAxDQo+ID4gOl0ubHN0cmlwKCkNCj4gPiAtLQ0KPiA+IDIuNi4x LndpbmRvd3MuMQ0KPiA+IA0KPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fDQo+ID4gZWRrMi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gPiBlZGsyLWRldmVs QGxpc3RzLjAxLm9yZw0KPiA+IGh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8v ZWRrMi1kZXZlbA0K