From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) (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 077761A1E29 for ; Sun, 16 Oct 2016 23:54:10 -0700 (PDT) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga105.jf.intel.com with ESMTP; 16 Oct 2016 23:54:10 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,356,1473145200"; d="scan'208";a="1054825410" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga001.fm.intel.com with ESMTP; 16 Oct 2016 23:54:07 -0700 Received: from fmsmsx156.amr.corp.intel.com (10.18.116.74) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.248.2; Sun, 16 Oct 2016 23:54:02 -0700 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by fmsmsx156.amr.corp.intel.com (10.18.116.74) with Microsoft SMTP Server (TLS) id 14.3.248.2; Sun, 16 Oct 2016 23:54:00 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.139]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.2]) with mapi id 14.03.0248.002; Mon, 17 Oct 2016 14:53:19 +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: AQHSJTRj7xp1cnJakEKmcTUrQ0ynQ6CpcLaAgAGnKPCAAIwhgIAAl6FA Date: Mon, 17 Oct 2016 06:53:19 +0000 Message-ID: References: <1476350987-11628-1-git-send-email-yonghong.zhu@intel.com> <147656241940.18236.15576249978641536178@jljusten-ivb> <147668338371.29755.14142746503023629788@jljusten-ivb> In-Reply-To: <147668338371.29755.14142746503023629788@jljusten-ivb> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZGVmYzM5MWMtNjVlZi00MDY3LTgwODktZTA4ZDRjMDM5ODFmIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6IjB0V3NmclVRN0RYR0toTkQxMjhcL0Jzb0hnRlhidFJjMlYzcDJcL2dJZUl4OD0ifQ== 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:54:11 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SXQncyBnb29kIHRvIG1lLiBJIHdpbGwgc2VuZCBwYXRjaCB0byBhbGlnbiB3aXRoIHRoaXMgd2lr aS4NCg0KQmVzdCBSZWdhcmRzLA0KWmh1IFlvbmdob25nDQoNCg0KLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCkZyb206IEp1c3RlbiwgSm9yZGFuIEwgDQpTZW50OiBNb25kYXksIE9jdG9iZXIg MTcsIDIwMTYgMTo1MCBQTQ0KVG86IFpodSwgWW9uZ2hvbmcgPHlvbmdob25nLnpodUBpbnRlbC5j b20+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KQ2M6IEdhbywgTGltaW5nIDxsaW1pbmcuZ2Fv QGludGVsLmNvbT47IFpodSwgWW9uZ2hvbmcgPHlvbmdob25nLnpodUBpbnRlbC5jb20+DQpTdWJq ZWN0OiBSRTogW2VkazJdIFtQYXRjaF0gQmFzZVRvb2xzOiBQYXRjaENoZWNrIHRvIGFsaWduIHdp dGggd2lraSBhbmQgcmVwb3J0IGVycm9yIGZvciBFRklfRF8qDQoNCk9uIDIwMTYtMTAtMTYgMDY6 MzI6MzIsIFpodSwgWW9uZ2hvbmcgd3JvdGU6DQo+IFRoYW5rcyBKb3JkYW4uIEkgd2lsbCBzZXBh cmF0ZSB0aGUgcGF0Y2hlcyBhbmQgc2VuZCBvdXQgdGhlIHVwZGF0ZWQgdmVyc2lvbi4NCj4gDQo+ IEJlc2lkZXMgY2FuIHlvdSBoZWxwIHRvIHVwZGF0ZSB0aGUgd2lraSA/IA0KPiANCg0KSG93IGRv ZXMgaXQgbG9vaz8NCg0KaHR0cHM6Ly9naXRodWIuY29tL3RpYW5vY29yZS90aWFub2NvcmUuZ2l0 aHViLmlvL3dpa2kvQ29tbWl0LU1lc3NhZ2UtRm9ybWF0DQoNCi1Kb3JkYW4NCg0KPiANCj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSnVzdGVuLCBKb3JkYW4gTA0KPiBTZW50 OiBTdW5kYXksIE9jdG9iZXIgMTYsIDIwMTYgNDoxNCBBTQ0KPiBUbzogWmh1LCBZb25naG9uZyA8 eW9uZ2hvbmcuemh1QGludGVsLmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+IENjOiBH YW8sIExpbWluZyA8bGltaW5nLmdhb0BpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbZWRrMl0g W1BhdGNoXSBCYXNlVG9vbHM6IFBhdGNoQ2hlY2sgdG8gYWxpZ24gd2l0aCB3aWtpIA0KPiBhbmQg cmVwb3J0IGVycm9yIGZvciBFRklfRF8qDQo+IA0KPiBPbiAyMDE2LTEwLTEzIDAyOjI5OjQ2LCBZ b25naG9uZyBaaHUgd3JvdGU6DQo+ID4gVGhpcyBwYXRjaCB1cGRhdGVzIFBhdGNoQ2hlY2sucHnv vJoNCj4gDQo+IENhbiB5b3Ugc3BsaXQgdGhpcyBpbnRvIDMgc2VwYXJhdGUgcGF0Y2hlcz8NCj4g DQo+ID4gMS5VcGRhdGUgbWF4IGxpbmUgbGVuZ3RoIHRvIDcwIHRoYXQgZGVzY3JpYmUgaW4gd2lr aQ0KPiANCj4gSSB0aGluayB3ZSBzaG91bGQgdXBkYXRlIFBhdGNoQ2hlY2sucHkgYW5kIHRoZSB3 aWtpIHRvIHNheSB0aGF0Og0KPiANCj4gMS4gVGhlIHN1YmplY3QgbGluZSBvZiB0aGUgY29tbWl0 IG1lc3NhZ2Ugc2hvdWxkIGJlIDwgNzIgY2hhcmFjdGVycy4NCj4gDQo+IFRoaXMgd29ya3Mgd2Vs bCB3aXRoIGdpdCBsb2cgLS1vbmVsaW5lIHRvIHN0aWxsIHByb2R1Y2Ugb3V0cHV0IGxlc3MgdGhh biA4MCBjaGFyYWN0ZXJzLg0KPiANCj4gMi4gVGhlIG90aGVyIGxpbmVzIG9mIHRoZSBjb21taXQg bWVzc2FnZSBzaG91bGQgYmUgPCA3NiBjaGFyYWN0ZXJzLg0KPiANCj4gV2hlbiB1c2luZyBnaXQg bG9nLCB0aGVzZSBsaW5lcyBhcmUgaW5kZW50ZWQgNCBjaGFyYWN0ZXJzLCBzbyBvbmNlIGFnYWlu IHRoaXMgd2lsbCBrZWVwIHRoZSBsb2cgbWVzc2FnZSByZWFkYWJsZSBhbmQgdW5kZXIgODAgY29s dW1ucy4NCj4gDQo+ID4gMi5yZW1vdmUgdGhlIHR3byBbXSB3aGVuIGRvIHRoZSBjaGFyIGNvdW50 IGNhbGN1bGF0aW9uDQo+IA0KPiBIb3cgYWJvdXQgaW5zdGVhZCB3ZSBhZGQgYSBuZXcgcmVnZXgg dG8gdGhlIGNsYXNzOg0KPiANCj4gICAgIHN1YmplY3RfcHJlZml4X3JlID0gXA0KPiAgICAgICAg IHJlLmNvbXBpbGUocicnJ14NCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXHMqIChcWw0K PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW15cW1xdXSogIyBBbGxvdyBhbGwgbm9u LWJyYWNrZXRzDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxdKT8gXHMqDQo+ICAgICAg ICAgICAgICAgICAgICAnJycsDQo+ICAgICAgICAgICAgICAgICAgICByZS5WRVJCT1NFKQ0KPiAN Cj4gDQo+IFRoZW4geW91IGNhbiB1c2UgaXQgbGluZSB0aGlzOg0KPiANCj4gICAgICAgICAgIHNl bGYuY29tbWl0X3N1YmplY3QgPSBcDQo+ICAgICAgICAgICAgICAgc2VsZi5zdWJqZWN0X3ByZWZp eF9yZS5zdWIoJycsIHNlbGYuY29tbWl0X3N1YmplY3QsIDEpDQo+IA0KPiBUaGlzIHdpbGwgY2hh bmdlOg0KPiANCj4gICAnIGEnID0+ICdhJw0KPiAgICcgW3BhdGNoIDFdIGEnID0+ICdhJw0KPiAN Cj4gQnV0LCBpdCB3aWxsIGlnbm9yZSB0aGlzLCBiZWNhdXNlIEkgZG9uJ3QgdGhpbmsgd2Ugc2hv dWxkIHRyeSB0byBtYXRjaCBicmFja2V0cyBoZXJlOg0KPiANCj4gICAnIFthIFtiXV0gYScNCj4g DQo+ID4gMy5yZXBvcnQgZXJyb3IgZm9yIEVGSV9EXyogbWFjcm8gaWYgaXQgaXMgdXNlZCwgcmVj b21tZW5kIHRvIHVzZQ0KPiA+IERFQlVHXyogZm9ybWF0Lg0KPiANCj4gVGhpcyBzaG91bGQgZGVm aW5pdGVseSBiZSBhIHNlcGFyYXRlIHBhdGNoIHNpbmNlIHdlIGFyZSBzdGFydGluZyB0byBsb29r IGF0IGNvZGUuDQo+IA0KPiAtSm9yZGFuDQo+IA0KPiA+IA0KPiA+IENjOiBMaW1pbmcgR2FvIDxs aW1pbmcuZ2FvQGludGVsLmNvbT4NCj4gPiBDb250cmlidXRlZC11bmRlcjogVGlhbm9Db3JlIENv bnRyaWJ1dGlvbiBBZ3JlZW1lbnQgMS4wDQo+ID4gU2lnbmVkLW9mZi1ieTogWW9uZ2hvbmcgWmh1 IDx5b25naG9uZy56aHVAaW50ZWwuY29tPg0KPiA+IC0tLQ0KPiA+ICBCYXNlVG9vbHMvU2NyaXB0 cy9QYXRjaENoZWNrLnB5IHwgMjEgKysrKysrKysrKysrKysrKy0tLS0tDQo+ID4gIDEgZmlsZSBj aGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQ0KPiA+IA0KPiA+IGRpZmYg LS1naXQgYS9CYXNlVG9vbHMvU2NyaXB0cy9QYXRjaENoZWNrLnB5IA0KPiA+IGIvQmFzZVRvb2xz L1NjcmlwdHMvUGF0Y2hDaGVjay5weSBpbmRleCA0NTVjMTMwLi5kNDIzMjIwIDEwMDc1NQ0KPiA+ IC0tLSBhL0Jhc2VUb29scy9TY3JpcHRzL1BhdGNoQ2hlY2sucHkNCj4gPiArKysgYi9CYXNlVG9v bHMvU2NyaXB0cy9QYXRjaENoZWNrLnB5DQo+ID4gQEAgLTEsOSArMSw5IEBADQo+ID4gICMjIEBm aWxlDQo+ID4gICMgIENoZWNrIGEgcGF0Y2ggZm9yIHZhcmlvdXMgZm9ybWF0IGlzc3VlcyAgIyAt IyAgQ29weXJpZ2h0IChjKSANCj4gPiAyMDE1LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0 cyByZXNlcnZlZC48QlI+DQo+ID4gKyMgIENvcHlyaWdodCAoYykgMjAxNSAtIDIwMTYsIEludGVs IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIA0KPiA+ICtyZXNlcnZlZC48QlI+DQo+ID4gICMNCj4g PiAgIyAgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbGlj ZW5zZWQgYW5kIA0KPiA+IG1hZGUgIyAgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29u ZGl0aW9ucyBvZiB0aGUgQlNEIExpY2Vuc2UgDQo+ID4gd2hpY2ggIyAgYWNjb21wYW5pZXMgdGhp cyBkaXN0cmlidXRpb24uIFRoZSBmdWxsIHRleHQgb2YgdGhlIGxpY2Vuc2UgDQo+ID4gbWF5IGJl ICMgIGZvdW5kIGF0IGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5w aHANCj4gPiBAQCAtMTQsMTEgKzE0LDExIEBADQo+ID4gICMNCj4gPiAgDQo+ID4gIGZyb20gX19m dXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24NCj4gPiAgDQo+ID4gIFZlcnNpb25OdW1iZXIg PSAnMC4xJw0KPiA+IC1fX2NvcHlyaWdodF9fID0gIkNvcHlyaWdodCAoYykgMjAxNSwgSW50ZWwg Q29ycG9yYXRpb24gIEFsbCByaWdodHMgcmVzZXJ2ZWQuIg0KPiA+ICtfX2NvcHlyaWdodF9fID0g IkNvcHlyaWdodCAoYykgMjAxNSAtIDIwMTYsIEludGVsIENvcnBvcmF0aW9uICBBbGwgcmlnaHRz IHJlc2VydmVkLiINCj4gPiAgDQo+ID4gIGltcG9ydCBlbWFpbA0KPiA+ICBpbXBvcnQgYXJncGFy c2UNCj4gPiAgaW1wb3J0IG9zDQo+ID4gIGltcG9ydCByZQ0KPiA+IEBAIC0xOTUsMTEgKzE5NSwx MSBAQCBjbGFzcyBDb21taXRNZXNzYWdlQ2hlY2s6DQo+ID4gIA0KPiA+ICAgICAgICAgIGlmIGNv dW50IDw9IDA6DQo+ID4gICAgICAgICAgICAgIHNlbGYuZXJyb3IoJ0VtcHR5IGNvbW1pdCBtZXNz YWdlIScpDQo+ID4gICAgICAgICAgICAgIHJldHVybg0KPiA+ICANCj4gPiAtICAgICAgICBpZiBj b3VudCA+PSAxIGFuZCBsZW4obGluZXNbMF0pID4gNzY6DQo+ID4gKyAgICAgICAgaWYgY291bnQg Pj0gMSBhbmQgbGVuKGxpbmVzWzBdKSA+IDcwOg0KPiA+ICAgICAgICAgICAgICBzZWxmLmVycm9y KCdGaXJzdCBsaW5lIG9mIGNvbW1pdCBtZXNzYWdlIChzdWJqZWN0IGxpbmUpICcgKw0KPiA+ICAg ICAgICAgICAgICAgICAgICAgICAgICdpcyB0b28gbG9uZy4nKQ0KPiA+ICANCj4gPiAgICAgICAg ICBpZiBjb3VudCA+PSAxIGFuZCBsZW4obGluZXNbMF0uc3RyaXAoKSkgPT0gMDoNCj4gPiAgICAg ICAgICAgICAgc2VsZi5lcnJvcignRmlyc3QgbGluZSBvZiBjb21taXQgbWVzc2FnZSAoc3ViamVj dCBsaW5lKSAnIA0KPiA+ICsgQEAgLTIwOCwxMSArMjA4LDExIEBAIGNsYXNzIENvbW1pdE1lc3Nh Z2VDaGVjazoNCj4gPiAgICAgICAgICBpZiBjb3VudCA+PSAyIGFuZCBsaW5lc1sxXS5zdHJpcCgp ICE9ICcnOg0KPiA+ICAgICAgICAgICAgICBzZWxmLmVycm9yKCdTZWNvbmQgbGluZSBvZiBjb21t aXQgbWVzc2FnZSBzaG91bGQgYmUgJyArDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgJ2Vt cHR5LicpDQo+ID4gIA0KPiA+ICAgICAgICAgIGZvciBpIGluIHJhbmdlKDIsIGNvdW50KToNCj4g PiAtICAgICAgICAgICAgaWYgKGxlbihsaW5lc1tpXSkgPiA3NiBhbmQNCj4gPiArICAgICAgICAg ICAgaWYgKGxlbihsaW5lc1tpXSkgPiA3MCBhbmQNCj4gPiAgICAgICAgICAgICAgICAgIGxlbihs aW5lc1tpXS5zcGxpdCgpKSA+IDEgYW5kDQo+ID4gICAgICAgICAgICAgICAgICBub3QgbGluZXNb aV0uc3RhcnRzd2l0aCgnZ2l0LXN2bi1pZDonKSk6DQo+ID4gICAgICAgICAgICAgICAgICBzZWxm LmVycm9yKCdMaW5lICVkIG9mIGNvbW1pdCBtZXNzYWdlIGlzIHRvbyBsb25nLicgDQo+ID4gJSAo aSArIDEpKQ0KPiA+ICANCj4gPiAgICAgICAgICBsYXN0X3NpZ19saW5lID0gTm9uZQ0KPiA+IEBA IC0zNTQsMTAgKzM1NCwxMiBAQCBjbGFzcyBHaXREaWZmQ2hlY2s6DQo+ID4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsaW5lKQ0KPiA+ICAgICAgICAgIGlmICcgICAgJyBpbiBs aW5lOg0KPiA+ICAgICAgICAgICAgICBzZWxmLmFkZGVkX2xpbmVfZXJyb3IoJ1RhYiBjaGFyYWN0 ZXIgdXNlZCcsIGxpbmUpDQo+ID4gICAgICAgICAgaWYgbGVuKHN0cmlwcGVkKSA8IGxlbihsaW5l KToNCj4gPiAgICAgICAgICAgICAgc2VsZi5hZGRlZF9saW5lX2Vycm9yKCdUcmFpbGluZyB3aGl0 ZXNwYWNlIGZvdW5kJywgDQo+ID4gbGluZSkNCj4gPiArICAgICAgICBpZiAnRUZJX0RfJyBpbiBs aW5lOg0KPiA+ICsgICAgICAgICAgICBzZWxmLmFkZGVkX2xpbmVfZXJyb3IoJ0VGSV9EXyogdXNl ZCwgUGxlYXNlIHVzZSBERUJVR18qIA0KPiA+ICsgZm9ybWF0JywgbGluZSkNCj4gPiAgDQo+ID4g ICAgICBzcGxpdF9kaWZmX3JlID0gcmUuY29tcGlsZShyJycnDQo+ID4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKD9QPGNtZD4NCj4gPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXiBkaWZmIFxzKyAtLWdpdCBccysgYS8uKyBccysgYi8uKyAkDQo+ ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSBAQCAtNDcxLDExICs0NzMs MjAgQEAgY2xhc3MgDQo+ID4gQ2hlY2tPbmVQYXRjaDoNCj4gPiAgICAgICAgICAgICAgc2VsZi5j b21taXRfbXNnID0gbW8uZ3JvdXAoJ2NvbW1pdF9tZXNzYWdlJykNCj4gPiAgDQo+ID4gICAgICAg ICAgc2VsZi5jb21taXRfc3ViamVjdCA9IHBtYWlsWydzdWJqZWN0J10ucmVwbGFjZSgnXHJcbics ICcnKQ0KPiA+ICAgICAgICAgIHNlbGYuY29tbWl0X3N1YmplY3QgPSBzZWxmLmNvbW1pdF9zdWJq ZWN0LnJlcGxhY2UoJ1xuJywgJycpDQo+ID4gIA0KPiA+IC0gICAgICAgIHBmeF9zdGFydCA9IHNl bGYuY29tbWl0X3N1YmplY3QuZmluZCgnWycpDQo+ID4gKyAgICAgICAgcGZ4X3N0YXJ0X3RtcCA9 IHNlbGYuY29tbWl0X3N1YmplY3QuZmluZCgnWycpDQo+ID4gKyAgICAgICAgcGZ4X2VuZCA9IHNl bGYuY29tbWl0X3N1YmplY3QuZmluZCgnXScsIHBmeF9zdGFydF90bXApDQo+ID4gKyAgICAgICAg cGZ4X3N0YXJ0ID0gcGZ4X3N0YXJ0X3RtcA0KPiA+ICsgICAgICAgIHdoaWxlIChwZnhfZW5kID4g cGZ4X3N0YXJ0X3RtcCk6DQo+ID4gKyAgICAgICAgICAgIHBmeF9zdGFydF90bXAgPSBzZWxmLmNv bW1pdF9zdWJqZWN0LmZpbmQoJ1snLCBwZnhfZW5kKQ0KPiA+ICsgICAgICAgICAgICBpZiBwZnhf c3RhcnRfdG1wID49IDA6DQo+ID4gKyAgICAgICAgICAgICAgICBwZnhfZW5kID0gc2VsZi5jb21t aXRfc3ViamVjdC5maW5kKCddJyxwZnhfc3RhcnRfdG1wKQ0KPiA+ICsgICAgICAgICAgICBlbHNl Og0KPiA+ICsgICAgICAgICAgICAgICAgYnJlYWsNCj4gPiArDQo+ID4gICAgICAgICAgaWYgcGZ4 X3N0YXJ0ID49IDA6DQo+ID4gICAgICAgICAgICAgIHBmeF9lbmQgPSBzZWxmLmNvbW1pdF9zdWJq ZWN0LmZpbmQoJ10nKQ0KPiA+ICAgICAgICAgICAgICBpZiBwZnhfZW5kID4gcGZ4X3N0YXJ0Og0K PiA+ICAgICAgICAgICAgICAgICAgc2VsZi5jb21taXRfcHJlZml4ID0gc2VsZi5jb21taXRfc3Vi amVjdFtwZnhfc3RhcnQgKyAxIDogcGZ4X2VuZF0NCj4gPiAgICAgICAgICAgICAgICAgIHNlbGYu Y29tbWl0X3N1YmplY3QgPSBzZWxmLmNvbW1pdF9zdWJqZWN0W3BmeF9lbmQgKyANCj4gPiAxDQo+ ID4gOl0ubHN0cmlwKCkNCj4gPiAtLQ0KPiA+IDIuNi4xLndpbmRvd3MuMQ0KPiA+IA0KPiA+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+ID4gZWRrMi1k ZXZlbCBtYWlsaW5nIGxpc3QNCj4gPiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+IGh0dHBz Oi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8vZWRrMi1kZXZlbA0K