From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-002e3701.pphosted.com (mx0a-002e3701.pphosted.com [148.163.147.86]) by mx.groups.io with SMTP id smtpd.web12.20690.1574322020468472050 for ; Wed, 20 Nov 2019 23:40:20 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: hpe.com, ip: 148.163.147.86, mailfrom: prvs=0228f25e43=abner.chang@hpe.com) Received: from pps.filterd (m0134421.ppops.net [127.0.0.1]) by mx0b-002e3701.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id xAL7ajCY032467; Thu, 21 Nov 2019 07:40:19 GMT Received: from g9t5008.houston.hpe.com (g9t5008.houston.hpe.com [15.241.48.72]) by mx0b-002e3701.pphosted.com with ESMTP id 2wdaqdn192-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 21 Nov 2019 07:40:19 +0000 Received: from G1W8107.americas.hpqcorp.net (g1w8107.austin.hp.com [16.193.72.59]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by g9t5008.houston.hpe.com (Postfix) with ESMTPS id 04E2D64; Thu, 21 Nov 2019 07:40:18 +0000 (UTC) Received: from G2W6309.americas.hpqcorp.net (2002:10c5:4033::10c5:4033) by G1W8107.americas.hpqcorp.net (2002:10c1:483b::10c1:483b) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Thu, 21 Nov 2019 07:40:17 +0000 Received: from NAM01-SN1-obe.outbound.protection.outlook.com (15.241.52.11) by G2W6309.americas.hpqcorp.net (16.197.64.51) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Thu, 21 Nov 2019 07:40:17 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=l8gIDWeH7LJhz/qucJzpWsdHmY+6wx/j54Tx1DSnlmNy0CyYpEIno7Ut+y4JILdS8155mnm547EIl3w8ytJs9J/LT2ElxS7E/cg5eTaTsDz8+dA7WSPlIrLnaGg0+CflSopctFnO3bG1GLSMudi3jKXYaVL37Y+mC+usrnTk2ri15ItB+CqTrcYARlB3aS4IMgTpcxS521SctYyuamtufs8w8LFtNCndvGkVc2+JAQhRKBnZGYaMX7zNWT/yE3WzU2ZMNf/6rRKGOfqrnpZ2eNKqgNMzMLXfUrHlXpU15mVFdAFKi86AzIAu1l18Ju8SzLbSFQnrPIrkpedVdrVjZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LW2AffFL1//A/0y1AAK03VgWSxsX6WxU5XiI96DBnyk=; b=RRPUO3coQtm5+0b2MwQs4Y36oDRWassdQnMwhtbw/RjEFXzAKebOhG/38eaYUdqmGdpqYLxnTLTSizN3pblCPMC6o06HA0ZcfI/R7AjjnAabLeQtP3oVFxNr3uskKP6HiqK9eSHaY2UIN9DyI4AaVU+TQSCTcPvlNwn55N6vXMD8waYjIvNB5WBCbI9ehTdyMo5qsa3C5fWB936GSkMYtKeyx4NYlYTBjdA1adTozmvDwbraQU2xupPpZs6hVZvmTv2Ux1Xkm/TLQtvhsbjdim/Nj6QhWOB9PtGpLKYlYRiUzU+dS4tiwW4pOia4tDWjEVSu88CvidwXWp6vY5WqOA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=hpe.com; dmarc=pass action=none header.from=hpe.com; dkim=pass header.d=hpe.com; arc=none Received: from CS1PR8401MB1192.NAMPRD84.PROD.OUTLOOK.COM (10.169.12.151) by CS1PR8401MB0325.NAMPRD84.PROD.OUTLOOK.COM (10.169.98.13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2474.19; Thu, 21 Nov 2019 07:40:16 +0000 Received: from CS1PR8401MB1192.NAMPRD84.PROD.OUTLOOK.COM ([fe80::b49a:cecb:54b0:29ac]) by CS1PR8401MB1192.NAMPRD84.PROD.OUTLOOK.COM ([fe80::b49a:cecb:54b0:29ac%7]) with mapi id 15.20.2474.018; Thu, 21 Nov 2019 07:40:16 +0000 From: "Abner Chang" To: "devel@edk2.groups.io" , "msalter@redhat.com" CC: Bob Feng , Liming Gao , "Leif Lindholm" , "Chen, Gilbert" Subject: Re: [edk2-devel] [edk2-staging/RISC-V-V2 PATCH v3 25/39] BaseTools/Scripts Thread-Topic: [edk2-devel] [edk2-staging/RISC-V-V2 PATCH v3 25/39] BaseTools/Scripts Thread-Index: AQHVjTfqOJkIQsNY10SEQz/YRpN2nqeS8N0AgADoonCAAYj+wA== Date: Thu, 21 Nov 2019 07:40:16 +0000 Message-ID: References: <1572227957-13169-1-git-send-email-abner.chang@hpe.com> <1572227957-13169-26-git-send-email-abner.chang@hpe.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [16.242.247.131] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 6272cc9b-7287-47da-b416-08d76e560d19 x-ms-traffictypediagnostic: CS1PR8401MB0325: x-ms-exchange-purlcount: 1 x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7691; x-forefront-prvs: 0228DDDDD7 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(136003)(346002)(396003)(366004)(376002)(39860400002)(199004)(189003)(13464003)(2501003)(186003)(55016002)(6306002)(9686003)(26005)(229853002)(8676002)(6436002)(3846002)(81156014)(8936002)(53546011)(6506007)(6246003)(7696005)(76176011)(81166006)(6116002)(102836004)(33656002)(2906002)(4326008)(966005)(52536014)(74316002)(478600001)(110136005)(54906003)(305945005)(7736002)(316002)(66066001)(66476007)(99286004)(66446008)(64756008)(66556008)(66946007)(76116006)(14444005)(4001150100001)(256004)(14454004)(19627235002)(25786009)(71190400001)(71200400001)(554214002)(446003)(11346002)(86362001)(5660300002);DIR:OUT;SFP:1102;SCL:1;SRVR:CS1PR8401MB0325;H:CS1PR8401MB1192.NAMPRD84.PROD.OUTLOOK.COM;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: hpe.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ++4IcWGGEYuyfLrIdvgEnpjFX5JZMvet+M9jqzLF01Ir3Fj17YqryoYvAmquuCrUeyZUAcBTtb10O6atAo99j0i9F8/BKxj4dcGWvqMuy2mk2dbRfE7Yb2pLzsAasqt86txR70KUCbMEecArHtyDjUc6bl1su1ukSszImXkkkrtosFn64jEoefnM4cFB9aE6o8L16/O+Ek2M1fFXw4zjzRXj8YYy9XCSDRJ23UZEIJWi5dIdwaiKZWa+yutlouC/78sAgU/Df5oeq3yFtZ8u/EdOsrpGEYfz8syYH+0NJ3WSMjrqOCY8A3YebltIh1q4t0V5ziWech7VePkAiCYr6ZcdC/gUijBixN27wj+llNqAOy5dX51IWO8AZiTXtoj3GRLZfk8oHF+MJPoytAhTKYzs9vX6f2DNnjj+ZSidlJrkI8ZGicKBV5diWxkD51aPnsERznc+Y3aVTP7D7tcI5htyLdPliArvV7ONYFFKCsU= X-MS-Exchange-CrossTenant-Network-Message-Id: 6272cc9b-7287-47da-b416-08d76e560d19 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Nov 2019 07:40:16.0956 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 105b2061-b669-4b31-92ac-24d304d195dc X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: aMNpDF4z4YwprSnU7z1WcaqdwFTB12u2Ct5/u7F6jUT58tvWOGroQFMLREwwGfT1jWBzKZD7p/Wvu+Kf3OjiTg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CS1PR8401MB0325 X-OriginatorOrg: hpe.com X-Proofpoint-UnRewURL: 0 URL was un-rewritten MIME-Version: 1.0 X-HPE-SCL: -1 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95,18.0.572 definitions=2019-11-20_08:2019-11-20,2019-11-20 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 bulkscore=0 phishscore=0 impostorscore=0 clxscore=1015 priorityscore=1501 malwarescore=0 lowpriorityscore=0 spamscore=0 mlxlogscore=999 mlxscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-1910280000 definitions=main-1911210067 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TWFyaywgdGhlcmUgaXMgYW4gb3B0aW9uIGZvciBSSVNDLVYgdG8gbGltaXQgdGhlIHNtYWxsIGRh dGEgYmUgcGxhY2VkIGluIC5zZGF0YTIgc2VjdGlvbi4gV2l0aCB0aGUgb3B0aW9uIC1tc21hbGwt ZGF0YS1saW1pdCBzZXQgdG8gMCwgdGhlIHNtYWxsIGRhdGEgd2lsbCBiZSBwdXQgaW50byAudGV4 dC4gVGh1cyB3ZSBjYW4gbGV2ZXJhZ2UgR2NjYmFzZS5sZHMgd2l0aG91dCBSSVNDLVYgc3BlY2lm aWMgb25lLg0KSSBzZW50IHRoZSBwYXRjaGVzIHRvIGRldmVsIGZvciByZXZpZXcuIFRoYW5rcyBm b3IgZmluZGluZyB0aGUgcm9vdCBjYXVzZS4NCg0KQWJuZXINCg0KPiAtLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQ0KPiBGcm9tOiBDaGFuZywgQWJuZXIgKEhQUyBTVy9GVyBUZWNobm9sb2dpc3Qp DQo+IFNlbnQ6IFdlZG5lc2RheSwgTm92ZW1iZXIgMjAsIDIwMTkgNDoyMyBQTQ0KPiBUbzogZGV2 ZWxAZWRrMi5ncm91cHMuaW87IG1zYWx0ZXJAcmVkaGF0LmNvbQ0KPiBDYzogQm9iIEZlbmcgPGJv Yi5jLmZlbmdAaW50ZWwuY29tPjsgTGltaW5nIEdhbyA8bGltaW5nLmdhb0BpbnRlbC5jb20+Ow0K PiBMZWlmIExpbmRob2xtIDxsZWlmLmxpbmRob2xtQGxpbmFyby5vcmc+OyBDaGVuLCBHaWxiZXJ0 DQo+IDxnaWxiZXJ0LmNoZW5AaHBlLmNvbT4NCj4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBb ZWRrMi1zdGFnaW5nL1JJU0MtVi1WMiBQQVRDSCB2MyAyNS8zOV0NCj4gQmFzZVRvb2xzL1Njcmlw dHMNCj4gDQo+IFRoYW5rcyBNYXJrIQ0KPiBUaGlzIGlzIGFjdHVhbGx5IHRoZSBwcm9ibGVtIG9m IHVzaW5nIGxhdGVzdCBSSVNDLVYgZ251IHRvb2xjaGFpbiB3aGljaCBjYXVzZXMNCj4gc3lzdGVt IGhhbmdzIGluIHRoZSBlYXJseSBQT1NULiBHTlUgdG9vbGNoYWluIGF0IGNvbW1pdCA2NDg3OWIy NCBkb2Vzbid0DQo+IGhhdmUgdGhpcyBwcm9ibGVtLiBUaGFua3MgZm9yIGNhdGNoaW5nIHRoaXMg YW5kIEkgYW0gbG9va2luZyBmb3IgdGhlIHNvbHV0aW9uDQo+IGluIGVkazIgYnVpbGQgdG9vbCB0 byBmaXggdGhpcyBpc3N1ZSBpbnN0ZWFkIG9mIGNoYW5naW5nIGxkcyBmaWxlLiBXZSB3b3VsZCBs aWtlIHRvDQo+IHVzZSB0aGUgY29tbW9uIGxkcyBpbnN0ZWFkIG9mIGNyZWF0aW5nIHNwZWNpZmlj IG9uZSBmb3IgUklTQy1WLg0KPiANCj4gT3IgZG8geW91IGtub3cgaXMgdGhlcmUgYW55IGxpbmsg b3B0aW9ucyBjb3VsZCBhdm9pZCB0aG9zZSBzcGVjaWFsIHNlY3Rpb25zPw0KPiANCj4gYnINCj4g QWJuZXINCj4gDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTog ZGV2ZWxAZWRrMi5ncm91cHMuaW8gW21haWx0bzpkZXZlbEBlZGsyLmdyb3Vwcy5pb10gT24gQmVo YWxmIE9mDQo+ID4gTWFyayBTYWx0ZXINCj4gPiBTZW50OiBXZWRuZXNkYXksIE5vdmVtYmVyIDIw LCAyMDE5IDI6MTggQU0NCj4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IENoYW5nLCBBYm5l ciAoSFBTIFNXL0ZXIFRlY2hub2xvZ2lzdCkNCj4gPiA8YWJuZXIuY2hhbmdAaHBlLmNvbT4NCj4g PiBDYzogQm9iIEZlbmcgPGJvYi5jLmZlbmdAaW50ZWwuY29tPjsgTGltaW5nIEdhbw0KPiA+IDxs aW1pbmcuZ2FvQGludGVsLmNvbT47IExlaWYgTGluZGhvbG0gPGxlaWYubGluZGhvbG1AbGluYXJv Lm9yZz47DQo+ID4gQ2hlbiwgR2lsYmVydCA8Z2lsYmVydC5jaGVuQGhwZS5jb20+DQo+ID4gU3Vi amVjdDogUmU6IFtlZGsyLWRldmVsXSBbZWRrMi1zdGFnaW5nL1JJU0MtVi1WMiBQQVRDSCB2MyAy NS8zOV0NCj4gPiBCYXNlVG9vbHMvU2NyaXB0cw0KPiA+DQo+ID4gT24gTW9uLCAyMDE5LTEwLTI4 IGF0IDA5OjU5ICswODAwLCBBYm5lciBDaGFuZyB3cm90ZToNCj4gPiA+IEFkZCBSSVNDLVYgc3Bl Y2lmaWMgTEQgc2NyaXB0cy4gLiJyZWxhKElORk8pIiBpbiB0aGUgbGF0ZXN0DQo+ID4gPiBHY2NC YXNlLmxkcyBjYXVzZXMgUEUzMiByZWxvY2F0aW9uIGVycm9yLg0KPiA+ID4gVGhpcyBpcyB0aGUg dGVtcG9yYXR5IHNvbHV0aW9uIHVudGlsbCB3ZSBmaW5kIHRoZSByb290IGNhc3VlLg0KPiA+ID4N Cj4gPiA+IFNpZ25lZC1vZmYtYnk6IEFibmVyIENoYW5nIDxhYm5lci5jaGFuZ0BocGUuY29tPg0K PiA+ID4NCj4gPiA+IENjOiBCb2IgRmVuZyA8Ym9iLmMuZmVuZ0BpbnRlbC5jb20+DQo+ID4gPiBD YzogTGltaW5nIEdhbyA8bGltaW5nLmdhb0BpbnRlbC5jb20+DQo+ID4gPiBDYzogTGVpZiBMaW5k aG9sbSA8bGVpZi5saW5kaG9sbUBsaW5hcm8ub3JnPg0KPiA+ID4gQ2M6IEdpbGJlcnQgQ2hlbiA8 Z2lsYmVydC5jaGVuQGhwZS5jb20+DQo+ID4gPiAtLS0NCj4gPiA+ICBCYXNlVG9vbHMvU2NyaXB0 cy9HY2NCYXNlUmlzY1YubGRzIHwgNzkNCj4gPiA+ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrDQo+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDc5IGluc2VydGlvbnMoKykNCj4g PiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgQmFzZVRvb2xzL1NjcmlwdHMvR2NjQmFzZVJpc2NWLmxk cw0KPiA+ID4NCj4gPiA+IGRpZmYgLS1naXQgYS9CYXNlVG9vbHMvU2NyaXB0cy9HY2NCYXNlUmlz Y1YubGRzDQo+ID4gPiBiL0Jhc2VUb29scy9TY3JpcHRzL0djY0Jhc2VSaXNjVi5sZHMNCj4gPiA+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gPiBpbmRleCAwMDAwMDAwLi45MTkzN2FhDQo+ID4g PiAtLS0gL2Rldi9udWxsDQo+ID4gPiArKysgYi9CYXNlVG9vbHMvU2NyaXB0cy9HY2NCYXNlUmlz Y1YubGRzDQo+ID4gPiBAQCAtMCwwICsxLDc5IEBADQo+ID4gPiArLyoqIEBmaWxlDQo+ID4gPiAr DQo+ID4gPiArICBVbmlmaWVkIGxpbmtlciBzY3JpcHQgZm9yIEdDQyBiYXNlZCBidWlsZHMNCj4g PiA+ICsNCj4gPiA+ICsgIENvcHlyaWdodCAoYykgMjAxMCAtIDIwMTUsIEludGVsIENvcnBvcmF0 aW9uLiBBbGwgcmlnaHRzDQo+ID4gPiArIHJlc2VydmVkLjxCUj4gIENvcHlyaWdodCAoYykgMjAx NSwgTGluYXJvIEx0ZC4gQWxsIHJpZ2h0cw0KPiA+ID4gKyByZXNlcnZlZC48QlI+ICBDb3B5cmln aHQgKGMpIDIwMTksIEhld2xldHQgUGFja2FyZCBFbnRlcnByaXNlDQo+ID4gPiArIERldmVsb3Bt ZW50IExQLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPiA+ICsNCj4gPiA+ICsgIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4gPiArDQo+ID4gPiAr KiovDQo+ID4gPiArDQo+ID4gPiArU0VDVElPTlMgew0KPiA+ID4gKw0KPiA+ID4gKyAgLyoNCj4g PiA+ICsgICAqIFRoZSBQRS9DT0ZGIGJpbmFyeSBjb25zaXN0cyBvZiBET1MgYW5kIFBFL0NPRkYg aGVhZGVycywgYW5kIGENCj4gPiBzZXF1ZW5jZSBvZg0KPiA+ID4gKyAgICogc2VjdGlvbiBoZWFk ZXJzIGFkZGluZyB1cCB0byBQRUNPRkZfSEVBREVSX1NJWkUgYnl0ZXMgKHdoaWNoDQo+ID4gZGlm ZmVycw0KPiA+ID4gKyAgICogYmV0d2VlbiAzMi1iaXQgYW5kIDY0LWJpdCBidWlsZHMpLiBUaGUg YWN0dWFsIHN0YXJ0IG9mIHRoZSAudGV4dA0KPiBzZWN0aW9uDQo+ID4gPiArICAgKiB3aWxsIGJl IHJvdW5kZWQgdXAgYmFzZWQgb24gaXRzIGFjdHVhbCBhbGlnbm1lbnQuDQo+ID4gPiArICAgKi8N Cj4gPiA+ICsgIC4gPSBQRUNPRkZfSEVBREVSX1NJWkU7DQo+ID4gPiArDQo+ID4gPiArICAudGV4 dCA6IEFMSUdOKENPTlNUQU5UKENPTU1PTlBBR0VTSVpFKSkgew0KPiA+ID4gKyAgICAqKC50ZXh0 IC50ZXh0LiogLnN0dWIgLmdudS5saW5rb25jZS50LiopDQo+ID4gPiArICAgICooLnJvZGF0YSAu cm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopDQo+ID4NCj4gPiBTbywgSSB0cmllZCBydW5uaW5n IHRoaXMgcmlzYy12IHBvcnQgb24gYSBIaUZpdmUgVW5sZWFzaGVkIGJvYXJkIGJ1dA0KPiA+IGl0 IGNyYXNoZWQgcHJldHR5IGVhcmx5IG9uLiBJdCB0dXJuZWQgb3V0IHRoYXQgdGhlIGxpbmtlciB3 YXMgcGxhY2luZw0KPiA+IHNvbWUgY29uc3QgZGF0YSBhdCB0aGUgc3RhcnQgb2YgLnRleHQgYmVm b3JlIGFueSBhY3R1YWwgY29kZS4gVGhhdA0KPiA+IGRpZG4ndCB3b3JrIG91dCB3ZWxsLiBJIGdv dCBhcm91bmQgdGhhdCBhbmQgd2FzIGFibGUgdG8gYm9vdCBpbnRvIHRoZQ0KPiA+IGVmaSBzaGVs bCBieSBhZGRpbmcgdGhpcyB0byB0ZWxsIHRoZSBsaW5rZXIgZXhwbGljaXRseSB3aGVyZSB0byBw dXQgdGhhdCBkYXRhOg0KPiA+DQo+ID4gICAgICooLnNkYXRhMiAuc2RhdGEyLiogLmdudS5saW5r b25jZS5zMi4qKQ0KPiA+ICAgICAqKC5zYnNzMiAuc2JzczIuKiAuZ251LmxpbmtvbmNlLnNiMi4q KQ0KPiA+DQo+ID4gPiArICAgICooLmdvdCAuZ290LiopDQo+ID4gPiArDQo+ID4gPiArICAgIC8q DQo+ID4gPiArICAgICAqIFRoZSBjb250ZW50cyBvZiBBdXRvR2VuLmMgZmlsZXMgYXJlIG1vc3Rs eSBjb25zdGFudCBmcm9tIHRoZQ0KPiA+ID4gKyBQT1Ygb2YNCj4gPiB0aGUNCj4gPiA+ICsgICAg ICogcHJvZ3JhbSwgYnV0IG1vc3Qgb2YgaXQgZW5kcyB1cCBpbiAuZGF0YSBvciAuYnNzIGJ5IGRl ZmF1bHQNCj4gPiA+ICsgc2luY2UgZmV3DQo+ID4gb2YNCj4gPiA+ICsgICAgICogdGhlIHZhcmlh YmxlIGRlZmluaXRpb25zIHRoYXQgZ2V0IGVtaXR0ZWQgYXJlIGRlY2xhcmVkIGFzIENPTlNULg0K PiA+ID4gKyAgICAgKiBVbmZvcnR1bmF0ZWx5LCB3ZSBjYW5ub3QgcHVsbCBpdCBpbnRvIHRoZSAu dGV4dCBzZWN0aW9uIGVudGlyZWx5LCBzaW5jZQ0KPiA+ID4gKyAgICAgKiBwYXRjaGFibGUgUENE cyBhcmUgYWxzbyBlbWl0dGVkIGhlcmUsIGJ1dCB3ZSBjYW4gYXQgbGVhc3QNCj4gPiA+ICsgbW92 ZSBhbGwgb2YNCj4gPiB0aGUNCj4gPiA+ICsgICAgICogZW1pdHRlZCBHVUlEcyBoZXJlLg0KPiA+ ID4gKyAgICAgKi8NCj4gPiA+ICsgICAgKjpBdXRvR2VuLm9iaiguZGF0YS5nKkd1aWQpDQo+ID4g PiArICB9DQo+ID4gPiArDQo+ID4gPiArICAvKg0KPiA+ID4gKyAgICogVGhlIGFsaWdubWVudCBv ZiB0aGUgLmRhdGEgc2VjdGlvbiBzaG91bGQgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvDQo+IHRo ZQ0KPiA+ID4gKyAgICogYWxpZ25tZW50IG9mIHRoZSAudGV4dCBzZWN0aW9uLiBUaGlzIGVuc3Vy ZXMgdGhhdCB0aGUgcmVsYXRpdmUgb2Zmc2V0DQo+ID4gPiArICAgKiBiZXR3ZWVuIHRoZXNlIHNl Y3Rpb25zIGlzIHRoZSBzYW1lIGluIHRoZSBFTEYgYW5kIHRoZSBQRS9DT0ZGDQo+ID4gdmVyc2lv bnMgb2YNCj4gPiA+ICsgICAqIHRoaXMgYmluYXJ5Lg0KPiA+ID4gKyAgICovDQo+ID4gPiArICAu ZGF0YSBBTElHTihBTElHTk9GKC50ZXh0KSkgOiBBTElHTihDT05TVEFOVChDT01NT05QQUdFU0la RSkpDQo+ID4gew0KPiA+ID4gKyAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiop DQo+ID4gPiArICAgICooLmJzcyAuYnNzLiopDQo+ID4gPiArICB9DQo+ID4gPiArDQo+ID4gPiAr ICAuZWhfZnJhbWUgQUxJR04oQ09OU1RBTlQoQ09NTU9OUEFHRVNJWkUpKSA6IHsNCj4gPiA+ICsg ICAgS0VFUCAoKiguZWhfZnJhbWUpKQ0KPiA+ID4gKyAgfQ0KPiA+ID4gKw0KPiA+ID4gKyAgLnJl bGEgQUxJR04oQ09OU1RBTlQoQ09NTU9OUEFHRVNJWkUpKSA6IHsNCj4gPiA+ICsgICAgKigucmVs YSAucmVsYS4qKQ0KPiA+ID4gKyAgfQ0KPiA+ID4gKw0KPiA+ID4gKyAgLmhpaSA6IEFMSUdOKENP TlNUQU5UKENPTU1PTlBBR0VTSVpFKSkgew0KPiA+ID4gKyAgICBLRUVQICgqKC5oaWkpKQ0KPiA+ ID4gKyAgfQ0KPiA+ID4gKw0KPiA+ID4gKyAgLyoNCj4gPiA+ICsgICAqIFJldGFpbiB0aGUgR05V IGJ1aWxkIGlkIGJ1dCBpbiBhIG5vbi1hbGxvY2F0YWJsZSBzZWN0aW9uIHNvIEdlbkZ3DQo+ID4g PiArICAgKiBkb2VzIG5vdCBjb3B5IGl0IGludG8gdGhlIFBFL0NPRkYgaW1hZ2UuDQo+ID4gPiAr ICAgKi8NCj4gPiA+ICsgIC5idWlsZC1pZCAoSU5GTykgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlk KSB9DQo+ID4gPiArDQo+ID4gPiArICAvRElTQ0FSRC8gOiB7DQo+ID4gPiArICAgICooLm5vdGUu R05VLXN0YWNrKQ0KPiA+ID4gKyAgICAqKC5nbnVfZGVidWdsaW5rKQ0KPiA+ID4gKyAgICAqKC5p bnRlcnApDQo+ID4gPiArICAgICooLmR5bnN5bSkNCj4gPiA+ICsgICAgKiguZHluc3RyKQ0KPiA+ ID4gKyAgICAqKC5keW5hbWljKQ0KPiA+ID4gKyAgICAqKC5oYXNoIC5nbnUuaGFzaCkNCj4gPiA+ ICsgICAgKiguY29tbWVudCkNCj4gPiA+ICsgICAgKihDT01NT04pDQo+ID4gPiArICB9DQo+ID4g PiArfQ0KPiA+DQo+ID4NCj4gPg0KPiA+IA0KDQo=