From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mx.groups.io with SMTP id smtpd.web11.35567.1683770396458360874 for ; Wed, 10 May 2023 18:59:56 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=CNH3X4xe; spf=pass (domain: intel.com, ip: 134.134.136.100, mailfrom: gua.guo@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1683770396; x=1715306396; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=dWgOYi+eWrYXUoRHNwvq66BStlZpvmVLAw0DWlXEJ7A=; b=CNH3X4xet9KfTTbPLOzUsKwwU7T6xaPfCnl0VY5l6nBoW1oTIzULgbRO MzVyWPi6yk/1gzVLuLn47nslxwVpIh7eXfc6+r2wT99zddBV6BGIZfxxE /Oj6aePrOibjmMEFC9B2eFUwW2H0n7iwoKZWmA/q/5FltJa3LnXpGjD54 oL6mIgS49xs8VxWu/oQ4FxqO9GVV4ZLmbkMn1KNGZiOD2cR9gqcYKscNB /S2modwQUfwRKyXcVOzsCfuQgQsMPM78dKchftBZUpkNbVc4Kk8iETxE0 +qQWa1CtltWqjfZL7z7Lw/TujxByDY6yHJXYf+U5NYzy9x88jiksw9hTg A==; X-IronPort-AV: E=McAfee;i="6600,9927,10706"; a="415955857" X-IronPort-AV: E=Sophos;i="5.99,266,1677571200"; d="scan'208";a="415955857" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 May 2023 18:59:54 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10706"; a="945947242" X-IronPort-AV: E=Sophos;i="5.99,266,1677571200"; d="scan'208";a="945947242" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by fmsmga006.fm.intel.com with ESMTP; 10 May 2023 18:59:54 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Wed, 10 May 2023 18:59:54 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Wed, 10 May 2023 18:59:53 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Wed, 10 May 2023 18:59:53 -0700 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (104.47.51.47) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Wed, 10 May 2023 18:59:53 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DFQVBRl4FUkenKAXmlB/rRBz4V7RSW861B+8VJoY0CbIAwDjfroNGbJ50ywTvqdMy0GXJW+W8isxYybPWc5uyziFjDm5tjwREcfSeK0BHbzeTAxGAy/+kLMkG7m9tTvbamP0swybs768UQ37FGRLH1EQJyvrtD9/KWovbBZRZ68hnmOovjjdpR1qqVWB6FcIlm+l2efi85BKl2IDRlseSLxzfiuN7A8YW+ft4VFJYk6+3XNOj1O3PIgtznHHKM1B66DugqImLqHq+7wCTK23xSLcjlVpQYZGmUqVZo7nhLqAywfG+MLHFsOB1KoMzNN7nTYSsd83zVNEydeg+SeVPQ== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=dWgOYi+eWrYXUoRHNwvq66BStlZpvmVLAw0DWlXEJ7A=; b=OKwMWxIaI876rUyt5fQFcnEZK2KxxqMOOgVUFn8WghB6O8bkKIN7XenImUz8h7H96t26O/zqj6eva7zz50SQmy+vxRioYHV5q/mgoo4aL3P77EVakQUclS3vfDhGDVr7YHxRRsuPVnQt4mPGlS8bh13B1bX2o+YbAhfDl/6aMGYlqA5FA39pbQkXe9WfW7HUfH8wm3Fq/faTfK6GMlw2Dn87kq7DkKl0vlZKe9h1AE+RAMgReCanLYA3T5yt/2eD8BuEXqX4psdWnVO9aUsQH512VjBNMz3zyWcU0q9NbFAEJS+5ShrKV2uLfk129wHL3TS3nAytw0iWNX0Swr0uaQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from BL1PR11MB5478.namprd11.prod.outlook.com (2603:10b6:208:31d::12) by LV3PR11MB8554.namprd11.prod.outlook.com (2603:10b6:408:1bb::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.33; Thu, 11 May 2023 01:59:51 +0000 Received: from BL1PR11MB5478.namprd11.prod.outlook.com ([fe80::f50b:35fe:b26f:ec5d]) by BL1PR11MB5478.namprd11.prod.outlook.com ([fe80::f50b:35fe:b26f:ec5d%6]) with mapi id 15.20.6387.018; Thu, 11 May 2023 01:59:51 +0000 From: "Guo, Gua" To: "Kinney, Michael D" , "devel@edk2.groups.io" , "Gao, Liming" , "'Michael Kubacki'" CC: 'Sean Brogan' Subject: Re: [edk2-devel] [PATCH v4 1/1] BaseTools/Plugin: Too many execute files cause "cmd too long" failure Thread-Topic: [edk2-devel] [PATCH v4 1/1] BaseTools/Plugin: Too many execute files cause "cmd too long" failure Thread-Index: AQHZgv5mcfJqwkI5nEisdHt/rnBqt69UCjGAgAAFBuCAAD6rAIAAAqMAgAABsPA= Date: Thu, 11 May 2023 01:59:50 +0000 Message-ID: References: <20230510051457.1063-1-gua.guo@intel.com> <20230510051457.1063-2-gua.guo@intel.com> <2b81670d-d116-9c34-9704-a19e74a38fea@linux.microsoft.com> <009901d983a9$f0006650$d00132f0$@byosoft.com.cn> In-Reply-To: Accept-Language: en-US X-Mentions: gaoliming@byosoft.com.cn X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BL1PR11MB5478:EE_|LV3PR11MB8554:EE_ x-ms-office365-filtering-correlation-id: 54da65f5-5700-4a22-bac3-08db51c367db x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: nI9Aa9/IGKY3S3lWUUbOh+GNP+GvrdzVP2Qxsu2eyjl8tEmERveNv0WI9Ot5zbSPY+9l5HqxULAMQXKzryGALggnVR7AOkwkX5pdd7amnSS+BGkcOtCJasIgb29ZHPPROe6etGvjlTqVcoxicsPqOuYKq/nMdWl5MHpcX+gf9rfsW9OxN2HEn0GzELjfsOUKTGKCykl3tQTWbjvj/RRHrN7/FfhHtK0pVPZVr96ywyIuhNiDDOmibtlOfUV9vgS/VunG0EzRgU8ESY5hL1PPyXrW/ooYiqItXxupWDrgKNcRSAvVC3sXU1ig+LZoJYBdXgrhvkx/ORc1ADE3tPZ03XpD0FnqtTFVKeHjfrFR4BNy6lnxf2T0zgl0koiVxKfoY73gEQrc7GyslpAXbnGEdK2LQ5NxofQXXDFv/TfUf78Z73ixR23j0ixUrpOHwcKU7Hd7SAPd7NAl67OAtYjG3xnf5xNdg2U0Qlqa6OW5fsjOQTh3AjHaBfu5YqQGrv9LrxISunYxb6qFDA7G8rosMsQ5VeIaYygqOPUU4GYBUCfkXEUcLvAsA/CNA9FNMQkvWWQ5E2Iid7VoGD0CRqa0XoxzW/9CLxHkAjqcDCahNBxuBec1mnxUaiy5BJMyGAz/eanj9tujxE/Zb6v95V6jKNIF7fElH2Bz5slDF/uPvC8= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR11MB5478.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(346002)(366004)(136003)(396003)(39860400002)(376002)(451199021)(52536014)(5660300002)(4326008)(38070700005)(26005)(316002)(110136005)(41300700001)(82960400001)(64756008)(86362001)(66446008)(66556008)(38100700002)(71200400001)(6506007)(9686003)(66476007)(66946007)(122000001)(53546011)(33656002)(8676002)(76116006)(8936002)(66899021)(2906002)(186003)(7696005)(478600001)(966005)(83380400001)(55016003)(460985005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NitSanh0RWw3TW5VRVlXaUlzcDZQUHVDKzdDc2E2aHRWd2VQbjZqei9KS2FQ?= =?utf-8?B?Y3VlNG9lcC80UHFIclhxMVoreG91cDhQd1ZteWlrT3U2eG4rSktpZ2pIQitU?= =?utf-8?B?QTRJYTQvVzZWVHFONUtDMzQwYlJMWFBHWHhkZWloUXU3UnJVVmpqdGhIdWVO?= =?utf-8?B?bkpSYThwVzR0UFlEaDBtVGZKSTJIdmZoSEtKYjNDalpSaS8rMHNNd3Q3Wk1X?= =?utf-8?B?VkptT25QRjI1bkNYNCtiOFpMQ1B5UFFVbDlXV000V3YwM1o1eEt5UGlmcTZh?= =?utf-8?B?QlNOYTBELzh0Q1VRY2V5VkhSelQ5Y0tvZFcyNDltOER5Mkp6Q05QZmhIVE1u?= =?utf-8?B?MG5yVE8zcHY3MW1FZ0hTalRmWHkxaEhPMnVEczNZMTdnalQ4d0N1bVhEd1J5?= =?utf-8?B?M09vbTQrTkdwdTB2TGUxSDZxOGpJUWFLNFdiWG1KU2ZJKzROakVTSE5Sa0R4?= =?utf-8?B?MSt2a2g0T0dBRnpONzlXVWJFK1BjV3VId2xUUnNDV0Y1aXhCSFBoTnRRQTgr?= =?utf-8?B?a0FoMVRiMjh4Y1lKS0lBTWdSaW9RZ244bzh3UStpdE1zU3RHWC8xL1FzaWNV?= =?utf-8?B?VGJhU2RESDdub3NWV085OTlkVFo5WHduTkNjQyt5aDVvK0l6eklNdEVrZTFC?= =?utf-8?B?TERzTy9lR2NjOVYyN05Eb0VsdmxOVDlPYUdpREt5aVRiVTdTTkNINXF6VEhX?= =?utf-8?B?R3RiKzgzVzR1eXRnVTI2TlZVUjV3QUVXWlZMQUlJQTV0bUo0NEVvWE5zRjVS?= =?utf-8?B?YkxSalpSWFhvSGVLUEpKMTVPbjc5cFBwZ2ppVW5NUVpBMUN3MlcrUVUwSUw0?= =?utf-8?B?eWh3WGRpRkRuZFQweTZ2ZEdYZFRnNWh1VDMvS2hXWmhTWC9xd3VOaGFzRXJH?= =?utf-8?B?aDIwOGZvWWloQnJ6SVBGWm12ZVJPaWs1MXg4cS9EUG1HcVFLamljYmlKTU9X?= =?utf-8?B?ZXJHQ25tZi9CVjZVL0VyMDhIZnhKQjFtRE9HcjUzTDgyNHJMY0tBeFpkYlJW?= =?utf-8?B?RHVLMHluTEFYRFNyQ1JTVFRPVXNodE1GOGk1MG1ZYTZXc0Fwa2gxeDN5WnVY?= =?utf-8?B?M2VkSWdmZTVMSkV2YVQvclRRcFBuS3lyUHVFNGFIWDJJdDZ3UHkvSGFsczZP?= =?utf-8?B?RUxOY3RxV2RwbGQrNVNWbzFqVkxiZlBGV3lrUG9WQXJkNHh0cEFPbkF6bDBt?= =?utf-8?B?bWRGeGV0N280RDdqVFZyV2oyUHJTbzcrZmdWaTc1c1JEbHozNExORVhpK0xL?= =?utf-8?B?akZCb1BqYjIvMjJJTzlVVkIzYkRwbVUzU2E5dVNTSkxXRFI2RXI2SUZ2SVo2?= =?utf-8?B?WCtxV2l3YUFUbzhjUVdXMG9PWkN2VC85SmVaUnJUcVhqVU9JRk1ldTg1MDRI?= =?utf-8?B?MlU2NlJXTHZFaDl3QVpmZ3hqaTd2R09jb1RhK1haS0hRNzBnem9aMStoYWpW?= =?utf-8?B?TmNjWDEyYUhpSldvU0htMk5BNGhraWRUVzNuRHYxdEZESjJKaGlLdW1FSTdV?= =?utf-8?B?Tlg0MkNvcUdPTTFNcWpTTnlsNjdiS00xdWhGTlM3LzB4bHg3bHlBR01hdldS?= =?utf-8?B?S2dHRXJBVnNrZzRuMjhHczRoWStyTmdzSVltS3YvdElhTjduR21qN3dRMXdq?= =?utf-8?B?d28wN0c3Y0FWTU8vbTAwa0ZrMTRBWGhSck9xSTVqZGNXWnNjR25aazZSZnpp?= =?utf-8?B?b2gzemt6OUt1ZW80VS84ak8vMkZHMXhNZWtZRG81dTJJV21HSlhKRmFSSXVY?= =?utf-8?B?S3BwR25BQ3VRd2NyNWFHR09wSHFEaFdMSHVPczVCemFuYWVkS2pORzd6cDB3?= =?utf-8?B?NmZuNkdGbTRReHVJbGlLakpHb3BGVitrWTVMTzh0NHNKNDBvRGlON2ZNNy8y?= =?utf-8?B?QjV4RUZVMHh1TGR2VEtqK0QzVG5pYnovU2FNbnNXTGtMbXZOdmc4ZmRmbUgv?= =?utf-8?B?QkJlbXhqTFJCcm1aaVA1S3pFUFZmdC9hS0Z3bVNyOVQvbkExNjJzZnd0Vkx2?= =?utf-8?B?eHM1cGFsWGg3OThMMndINkgvSDRORm00TjJ2ZHQ5T0NBbmxZUTd0KzhKVFFB?= =?utf-8?B?eGNRNE5HRGhEN3hlVVFYMWZpN1RlcUF6aWtrek4rUFpZakZBS2xTN2g3R3dJ?= =?utf-8?Q?Ho+E=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL1PR11MB5478.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 54da65f5-5700-4a22-bac3-08db51c367db X-MS-Exchange-CrossTenant-originalarrivaltime: 11 May 2023 01:59:50.5904 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: /+7hyxlKmEmgfASnFwghPo78V3hYCG8IEmwgcwDonQD/eeV6vhy4bjDIN6rZNFNEG4bkAqt+C6WTC/JW7bgavQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR11MB8554 Return-Path: gua.guo@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QEdhbywgTGltaW5nDQoNClRoYW5rIGZvciB0aGUgcmVwbHkuDQpJdCdzIFBSIGZvciB0aGUgcGF0 Y2guDQpodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazIvcHVsbC80MzU3DQoNCg0KVGhh bmtzDQpHdWENCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBLaW5uZXksIE1pY2hh ZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+IA0KU2VudDogVGh1cnNkYXksIE1heSAx MSwgMjAyMyA5OjUzIEFNDQpUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IEdhbywgTGltaW5nIDxn YW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBHdW8sIEd1YSA8Z3VhLmd1b0BpbnRlbC5jb20+OyAn TWljaGFlbCBLdWJhY2tpJyA8bWlrdWJhY2tAbGludXgubWljcm9zb2Z0LmNvbT4NCkNjOiAnU2Vh biBCcm9nYW4nIDxzZWFuLmJyb2dhbkBtaWNyb3NvZnQuY29tPjsgS2lubmV5LCBNaWNoYWVsIEQg PG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBb UEFUQ0ggdjQgMS8xXSBCYXNlVG9vbHMvUGx1Z2luOiBUb28gbWFueSBleGVjdXRlIGZpbGVzIGNh dXNlICJjbWQgdG9vIGxvbmciIGZhaWx1cmUNCg0KSGkgTGltaW5nLA0KDQpJIGFncmVlIGl0IGlz IGJ1ZyBmaXguICBDYW4geW91IGRvIHJldmlldyBhbmQgaWYgcGFzcyBoZWxwIHdpdGggcHVzaCBs YWJlbD8NCg0KVGhhbmtzLA0KDQpNaWtlIA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t DQo+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24g QmVoYWxmIE9mIA0KPiBnYW9saW1pbmcgdmlhIGdyb3Vwcy5pbw0KPiBTZW50OiBXZWRuZXNkYXks IE1heSAxMCwgMjAyMyA2OjQzIFBNDQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgR3VvLCBH dWEgPGd1YS5ndW9AaW50ZWwuY29tPjsgJ01pY2hhZWwgS3ViYWNraScNCj4gPG1pa3ViYWNrQGxp bnV4Lm1pY3Jvc29mdC5jb20+OyBLaW5uZXksIE1pY2hhZWwgRCANCj4gPG1pY2hhZWwuZC5raW5u ZXlAaW50ZWwuY29tPg0KPiBDYzogJ1NlYW4gQnJvZ2FuJyA8c2Vhbi5icm9nYW5AbWljcm9zb2Z0 LmNvbT4NCj4gU3ViamVjdDog5Zue5aSNOiBbZWRrMi1kZXZlbF0gW1BBVENIIHY0IDEvMV0gQmFz ZVRvb2xzL1BsdWdpbjogVG9vIG1hbnkgDQo+IGV4ZWN1dGUgZmlsZXMgY2F1c2UgImNtZCB0b28g bG9uZyIgZmFpbHVyZQ0KPiANCj4gR3VhOg0KPiANCj4gVGhpcyBpcyBsaWtlIGEgYnVnIGZpeC4g SSBhbSBPSyB0byBtZXJnZSBpdCBmb3IgdGhpcyBzdGFibGUgdGFnLg0KPiANCj4gVGhhbmtzDQo+ IExpbWluZw0KPiA+IC0tLS0t6YKu5Lu25Y6f5Lu2LS0tLS0NCj4gPiDlj5Hku7bkuro6IGRldmVs QGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4g5Luj6KGoIEd1bywgR3VhDQo+ ID4g5Y+R6YCB5pe26Ze0OiAyMDIz5bm0NeaciDEx5pelIDY6MDENCj4gPiDmlLbku7bkuro6IE1p Y2hhZWwgS3ViYWNraSA8bWlrdWJhY2tAbGludXgubWljcm9zb2Z0LmNvbT47IA0KPiA+IGRldmVs QGVkazIuZ3JvdXBzLmlvOyBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRl bC5jb20+DQo+ID4g5oqE6YCBOiBTZWFuIEJyb2dhbiA8c2Vhbi5icm9nYW5AbWljcm9zb2Z0LmNv bT4NCj4gPiDkuLvpopg6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIHY0IDEvMV0gQmFzZVRvb2xz L1BsdWdpbjogVG9vIG1hbnkgDQo+ID4gZXhlY3V0ZSBmaWxlcyBjYXVzZSAiY21kIHRvbyBsb25n IiBmYWlsdXJlDQo+ID4NCj4gPiBAS2lubmV5LCBNaWNoYWVsIEQNCj4gPg0KPiA+IENvdWxkIHdl IG1lcmdlIHRoZSBidWcgcGF0Y2ggYmVmb3JlIGNvZGUgZnJlZXplID8gVGhlIHBhdGNoIGNhbiBo ZWxwDQo+IHVubG9jaw0KPiA+IGNvbW1hbmQgdG9vIGxvbmcgaXNzdWUgb24gV2luZG93cyBjb21t YW5kIHByb21wdC4NCj4gPg0KPiA+IFRoYW5rcywNCj4gPiBHdWENCj4gPg0KPiA+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogTWljaGFlbCBLdWJhY2tpIDxtaWt1YmFja0Bs aW51eC5taWNyb3NvZnQuY29tPg0KPiA+IFNlbnQ6IFRodXJzZGF5LCBNYXkgMTEsIDIwMjMgNTo0 MSBBTQ0KPiA+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgR3VvLCBHdWEgPGd1YS5ndW9AaW50 ZWwuY29tPg0KPiA+IENjOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRl bC5jb20+OyBTZWFuIEJyb2dhbiANCj4gPiA8c2Vhbi5icm9nYW5AbWljcm9zb2Z0LmNvbT4NCj4g PiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCB2NCAxLzFdIEJhc2VUb29scy9QbHVn aW46IFRvbyBtYW55DQo+IGV4ZWN1dGUNCj4gPiBmaWxlcyBjYXVzZSAiY21kIHRvbyBsb25nIiBm YWlsdXJlDQo+ID4NCj4gPiBSZXZpZXdlZC1ieTogTWljaGFlbCBLdWJhY2tpIDxtaWNoYWVsLmt1 YmFja2lAbWljcm9zb2Z0LmNvbT4NCj4gPg0KPiA+IE9uIDUvMTAvMjAyMyAxOjE0IEFNLCBHdW8s IEd1YSB3cm90ZToNCj4gPiA+IEZyb206IEd1YSBHdW8gPGd1YS5ndW9AaW50ZWwuY29tPg0KPiA+ ID4NCj4gPiA+IFdpbmRvd3MgY29tbWFuZCBwcm9tcHQgaGF2ZSA4MTkxIGNoYXJhY3RlcnMgbGlt aXRhdGlvbiwgZW5oYW5jZSBpdCANCj4gPiA+IHRvIG1ha2UgY29tbWFuZCB0b28gbG9uZyBjYW4g YmUgcmVzbG92ZWQuDQo+ID4gPg0KPiA+ID4gUHJvdmlkZSBhbiBleGFtcGxlLCBpZiBoYXZlIHRv byBtYW55IGNvdiBmaWxlcywgaXQgY2F1c2VzIHRvIHJ1biANCj4gPiA+IHNpbmdsZSBjb21tYW5k IG92ZXIgdGhlIDgxOTEgY2hhcmFjdGVycyBsaW1pdGF0aW9uLg0KPiA+ID4+IE9wZW5DcHBDb3Zl cmFnZQ0KPiA+ID4+ICAgLS1leHBvcnRfdHlwZSBiaW5hcnk6Y292ZXJhZ2UuY292DQo+ID4gPj4g ICAtLXdvcmtpbmdfZGlyPXt3b3Jrc3BhY2V9QnVpbGQNCj4gPiA+PiAgIC0taW5wdXRfY292ZXJh Z2U9QUFBLmNvdg0KPiA+ID4+ICAgLi4uDQo+ID4gPj4gICAtLWlucHV0X2NvdmVyYWdlPU5OTi5j b3YNCj4gPiA+DQo+ID4gPiBUaGUgc29sdXRpb24gaXMgcGFzc2luZyBtYW55IGNvdmVyYWdlIGZp bGVzIGluIHNpbmdsZSBjb21tYW5kIGxpbmUgDQo+ID4gPiB0byBicmVha2luZyBpdCB1cCBpbnRv IG1hbnkgY29tbWFuZCBsaW5lcyB3aXRoIG9uZSBjb3ZlcmFnZSBmaWxlIA0KPiA+ID4gcGVyIGNv bW1hbmQgbGluZSBpbiBvcmRlciB0byBwcmV2ZW50IHNpbmdsZSBsaW5lIGlzIG92ZXIgdG8gODE5 MSBjaGFyYWN0ZXJzLg0KPiA+ID4NCj4gPiA+IC0gQ29tbWFuZCBMaW5lIDENCj4gPiA+PiBPcGVu Q3BwQ292ZXJhZ2UNCj4gPiA+PiAgIC0tZXhwb3J0X3R5cGUgYmluYXJ5OmNvdmVyYWdlLmNvdg0K PiA+ID4+ICAgLS13b3JraW5nX2Rpcj17d29ya3NwYWNlfUJ1aWxkDQo+ID4gPj4gICAtLWlucHV0 X2NvdmVyYWdlPUFBQS5jb3YNCj4gPiA+PiAgIC0taW5wdXRfY292ZXJhZ2U9Y292ZXJhZ2UuY292 DQo+ID4gPiAuLi4NCj4gPiA+DQo+ID4gPiAtIENvbW1hbmQgTGluZSBODQo+ID4gPj4gT3BlbkNw cENvdmVyYWdlDQo+ID4gPj4gICAtLWV4cG9ydF90eXBlIGJpbmFyeTpjb3ZlcmFnZS5jb3YNCj4g PiA+PiAgIC0td29ya2luZ19kaXI9e3dvcmtzcGFjZX1CdWlsZA0KPiA+ID4+ICAgLS1pbnB1dF9j b3ZlcmFnZT1OTk4uY292DQo+ID4gPj4gICAtLWlucHV0X2NvdmVyYWdlPWNvdmVyYWdlLmNvdg0K PiA+ID4NCj4gPiA+IENjOiBNaWNoYWVsIEQgS2lubmV5IDxtaWNoYWVsLmQua2lubmV5QGludGVs LmNvbT4NCj4gPiA+IENjOiBTZWFuIEJyb2dhbiA8c2Vhbi5icm9nYW5AbWljcm9zb2Z0LmNvbT4N Cj4gPiA+IENjOiBNaWNoYWVsIEt1YmFja2kgPG1pa3ViYWNrQGxpbnV4Lm1pY3Jvc29mdC5jb20+ DQo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBHdWEgR3VvIDxndWEuZ3VvQGludGVsLmNvbT4NCj4gPiA+ IC0tLQ0KPiA+ID4gICAuLi4vSG9zdEJhc2VkVW5pdFRlc3RSdW5uZXIucHkgICAgICAgICAgICAg ICAgfCA0Ng0KPiA+ICsrKysrKysrKysrKysrKysrLS0NCj4gPiA+ICAgMSBmaWxlIGNoYW5nZWQs IDQxIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pDQo+ID4gPg0KPiA+ID4gZGlmZiAtLWdp dA0KPiA+ID4NCj4gPg0KPiBhL0Jhc2VUb29scy9QbHVnaW4vSG9zdEJhc2VkVW5pdFRlc3RSdW5u ZXIvSG9zdEJhc2VkVW5pdFRlc3RSdW5uZXIucHkNCj4gPiA+DQo+ID4NCj4gYi9CYXNlVG9vbHMv UGx1Z2luL0hvc3RCYXNlZFVuaXRUZXN0UnVubmVyL0hvc3RCYXNlZFVuaXRUZXN0UnVubmVyLnB5 DQo+ID4gPiBpbmRleCBkOTkzZGU5NDEyLi4yZTVjNDYyY2QyIDEwMDY0NA0KPiA+ID4gLS0tDQo+ ID4gPg0KPiA+DQo+IGEvQmFzZVRvb2xzL1BsdWdpbi9Ib3N0QmFzZWRVbml0VGVzdFJ1bm5lci9I b3N0QmFzZWRVbml0VGVzdFJ1bm5lci5weQ0KPiA+ID4gKysrDQo+ID4gYi9CYXNlVG9vbHMvUGx1 Z2luL0hvc3RCYXNlZFVuaXRUZXN0UnVubmVyL0hvc3RCYXNlZFVuaXRUZXN0UnVubmVyDQo+ID4g PiArKysgLnB5DQo+ID4gPiBAQCAtMjA1LDI4ICsyMDUsNjQgQEAgY2xhc3MNCj4gPiBIb3N0QmFz ZWRVbml0VGVzdFJ1bm5lcihJVWVmaUJ1aWxkUGx1Z2luKToNCj4gPiA+ICAgICAgICAgICB0ZXN0 TGlzdCA9IGdsb2IuZ2xvYihvcy5wYXRoLmpvaW4oYnVpbGRPdXRwdXRCYXNlLA0KPiA+ID4gIioq IiwiKlRlc3QqLmV4ZSIpLCByZWN1cnNpdmU9VHJ1ZSkNCj4gPiA+DQo+ID4gPiAgICAgICAgICAg d29ya3NwYWNlID0gdGhlYnVpbGRlci5lbnYuR2V0VmFsdWUoIldPUktTUEFDRSIpDQo+ID4gPg0K PiA+ID4gICAgICAgICAgIHdvcmtzcGFjZSA9ICh3b3Jrc3BhY2UgKyBvcy5zZXApIGlmIHdvcmtz cGFjZVstMV0gIT0gDQo+ID4gPiBvcy5zZXAgZWxzZSB3b3Jrc3BhY2UNCj4gPiA+DQo+ID4gPiAr ICAgICAgICB3b3Jrc3BhY2VCdWlsZCA9IG9zLnBhdGguam9pbih3b3Jrc3BhY2UsICdCdWlsZCcp DQo+ID4gPg0KPiA+ID4gICAgICAgICAgICMgR2VuZXJhdGUgY292ZXJhZ2UgZmlsZQ0KPiA+ID4N Cj4gPiA+ICAgICAgICAgICBjb3ZlcmFnZUZpbGUgPSAiIg0KPiA+ID4NCj4gPiA+ICAgICAgICAg ICBmb3IgdGVzdEZpbGUgaW4gdGVzdExpc3Q6DQo+ID4gPg0KPiA+ID4gICAgICAgICAgICAgICBy ZXQgPSBSdW5DbWQoIk9wZW5DcHBDb3ZlcmFnZSIsIGYiLS1zb3VyY2UNCj4gPiB7d29ya3NwYWNl fQ0KPiA+ID4gLS1leHBvcnRfdHlwZSBiaW5hcnk6e3Rlc3RGaWxlfS5jb3YgLS0ge3Rlc3RGaWxl fSIpDQo+ID4gPg0KPiA+ID4gLSAgICAgICAgICAgIGNvdmVyYWdlRmlsZSArPSAiIC0taW5wdXRf Y292ZXJhZ2U9IiArIHRlc3RGaWxlICsgIi5jb3YiDQo+ID4gPg0KPiA+ID4gKyAgICAgICAgICAg IGlmIHJldCAhPSAwOg0KPiA+ID4NCj4gPiA+ICsgICAgICAgICAgICAgICAgbG9nZ2luZy5lcnJv cigiVW5pdFRlc3QgQ292ZXJhZ2U6IEZhaWxlZCB0byANCj4gPiA+ICsgY29sbGVjdCBjb3ZlcmFn ZSBkYXRhLiIpDQo+ID4gPg0KPiA+ID4gKyAgICAgICAgICAgICAgICByZXR1cm4gMQ0KPiA+ID4N Cj4gPiA+ICsNCj4gPiA+DQo+ID4gPiArICAgICAgICAgICAgY292ZXJhZ2VGaWxlICA9IGYiIC0t aW5wdXRfY292ZXJhZ2U9e3Rlc3RGaWxlfS5jb3YiDQo+ID4gPg0KPiA+ID4gKyAgICAgICAgICAg IHRvdGFsQ292ZXJhZ2VGaWxlID0gb3MucGF0aC5qb2luKGJ1aWxkT3V0cHV0QmFzZSwNCj4gPiA+ ICsgJ2NvdmVyYWdlLmNvdicpDQo+ID4gPg0KPiA+ID4gKyAgICAgICAgICAgIGlmIG9zLnBhdGgu aXNmaWxlKHRvdGFsQ292ZXJhZ2VGaWxlKToNCj4gPiA+DQo+ID4gPiArICAgICAgICAgICAgICAg IGNvdmVyYWdlRmlsZSArPSBmIg0KPiA+IC0taW5wdXRfY292ZXJhZ2U9e3RvdGFsQ292ZXJhZ2VG aWxlfSINCj4gPiA+DQo+ID4gPiArICAgICAgICAgICAgcmV0ID0gUnVuQ21kKA0KPiA+ID4NCj4g PiA+ICsgICAgICAgICAgICAgICAgIk9wZW5DcHBDb3ZlcmFnZSIsDQo+ID4gPg0KPiA+ID4gKyAg ICAgICAgICAgICAgICBmIi0tZXhwb3J0X3R5cGUgYmluYXJ5Ont0b3RhbENvdmVyYWdlRmlsZX0g IiArDQo+ID4gPg0KPiA+ID4gKyAgICAgICAgICAgICAgICBmIi0td29ya2luZ19kaXI9e3dvcmtz cGFjZUJ1aWxkfSAiICsNCj4gPiA+DQo+ID4gPiArICAgICAgICAgICAgICAgIGYie2NvdmVyYWdl RmlsZX0iDQo+ID4gPg0KPiA+ID4gKyAgICAgICAgICAgICAgICApDQo+ID4gPg0KPiA+ID4gICAg ICAgICAgICAgICBpZiByZXQgIT0gMDoNCj4gPiA+DQo+ID4gPiAgICAgICAgICAgICAgICAgICBs b2dnaW5nLmVycm9yKCJVbml0VGVzdCBDb3ZlcmFnZTogRmFpbGVkIHRvIA0KPiA+ID4gY29sbGVj dCBjb3ZlcmFnZSBkYXRhLiIpDQo+ID4gPg0KPiA+ID4gICAgICAgICAgICAgICAgICAgcmV0dXJu IDENCj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+ICAgICAgICAgICAjIEdlbmVyYXRlIGFuZCBY TUwgZmlsZSBpZiByZXF1ZXN0ZWQuYnkgZWFjaCBwYWNrYWdlDQo+ID4gPg0KPiA+ID4gLSAgICAg ICAgcmV0ID0gUnVuQ21kKCJPcGVuQ3BwQ292ZXJhZ2UiLCBmIi0tZXhwb3J0X3R5cGUNCj4gPiBj b2JlcnR1cmE6e29zLnBhdGguam9pbihidWlsZE91dHB1dEJhc2UsICdjb3ZlcmFnZS54bWwnKX0g DQo+ID4gLS13b3JraW5nX2Rpcj17d29ya3NwYWNlfUJ1aWxkIHtjb3ZlcmFnZUZpbGV9IikNCj4g PiA+DQo+ID4gPiArICAgICAgICByZXQgPSBSdW5DbWQoDQo+ID4gPg0KPiA+ID4gKyAgICAgICAg ICAgICJPcGVuQ3BwQ292ZXJhZ2UiLA0KPiA+ID4NCj4gPiA+ICsgICAgICAgICAgICBmIi0tZXhw b3J0X3R5cGUgDQo+ID4gPiArIGNvYmVydHVyYTp7b3MucGF0aC5qb2luKGJ1aWxkT3V0cHV0QmFz ZSwNCj4gPiA+ICsgJ2NvdmVyYWdlLnhtbCcpfSAiICsNCj4gPiA+DQo+ID4gPiArICAgICAgICAg ICAgZiItLXdvcmtpbmdfZGlyPXt3b3Jrc3BhY2VCdWlsZH0gIiArDQo+ID4gPg0KPiA+ID4gKyAg ICAgICAgICAgIGYiLS1pbnB1dF9jb3ZlcmFnZT17dG90YWxDb3ZlcmFnZUZpbGV9ICINCj4gPiA+ DQo+ID4gPiArICAgICAgICAgICAgKQ0KPiA+ID4NCj4gPiA+ICAgICAgICAgICBpZiByZXQgIT0g MDoNCj4gPiA+DQo+ID4gPiAgICAgICAgICAgICAgIGxvZ2dpbmcuZXJyb3IoIlVuaXRUZXN0IENv dmVyYWdlOiBGYWlsZWQgdG8gZ2VuZXJhdGUgDQo+ID4gPiBjb2JlcnR1cmEgZm9ybWF0IHhtbCBp biBzaW5nbGUgcGFja2FnZS4iKQ0KPiA+ID4NCj4gPiA+ICAgICAgICAgICAgICAgcmV0dXJuIDEN Cj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+ICAgICAgICAgICAjIEdlbmVyYXRlIHRvdGFsIHJl cG9ydCBYTUwgZmlsZSBmb3IgYWxsIHBhY2thZ2UNCj4gPiA+DQo+ID4gPiAtICAgICAgICB0ZXN0 Q292ZXJhZ2VMaXN0ID0gZ2xvYi5nbG9iKG9zLnBhdGguam9pbih3b3Jrc3BhY2UsICJCdWlsZCIs DQo+ID4gIioqIiwiKlRlc3QqLmV4ZS5jb3YiKSwgcmVjdXJzaXZlPVRydWUpDQo+ID4gPg0KPiA+ ID4gKyAgICAgICAgdGVzdENvdmVyYWdlTGlzdCA9IGdsb2IuZ2xvYihvcy5wYXRoLmpvaW4od29y a3NwYWNlLCANCj4gPiA+ICsgIkJ1aWxkIiwgIioqIiwgIipUZXN0Ki5leGUuY292IiksIHJlY3Vy c2l2ZT1UcnVlKQ0KPiA+ID4NCj4gPiA+ICAgICAgICAgICBjb3ZlcmFnZUZpbGUgPSAiIg0KPiA+ ID4NCj4gPiA+ICsgICAgICAgIHRvdGFsQ292ZXJhZ2VGaWxlID0gb3MucGF0aC5qb2luKHdvcmtz cGFjZUJ1aWxkLA0KPiA+ID4gKyAnY292ZXJhZ2UuY292JykNCj4gPiA+DQo+ID4gPiAgICAgICAg ICAgZm9yIHRlc3RDb3ZlcmFnZSBpbiB0ZXN0Q292ZXJhZ2VMaXN0Og0KPiA+ID4NCj4gPiA+IC0g ICAgICAgICAgICBjb3ZlcmFnZUZpbGUgKz0gIiAtLWlucHV0X2NvdmVyYWdlPSIgKyB0ZXN0Q292 ZXJhZ2UNCj4gPiA+DQo+ID4gPiArICAgICAgICAgICAgY292ZXJhZ2VGaWxlICA9IGYiIC0taW5w dXRfY292ZXJhZ2U9e3Rlc3RDb3ZlcmFnZX0iDQo+ID4gPg0KPiA+ID4gKyAgICAgICAgICAgIGlm IG9zLnBhdGguaXNmaWxlKHRvdGFsQ292ZXJhZ2VGaWxlKToNCj4gPiA+DQo+ID4gPiArICAgICAg ICAgICAgICAgIGNvdmVyYWdlRmlsZSArPSBmIg0KPiA+IC0taW5wdXRfY292ZXJhZ2U9e3RvdGFs Q292ZXJhZ2VGaWxlfSINCj4gPiA+DQo+ID4gPiArICAgICAgICAgICAgcmV0ID0gUnVuQ21kKA0K PiA+ID4NCj4gPiA+ICsgICAgICAgICAgICAgICAgIk9wZW5DcHBDb3ZlcmFnZSIsDQo+ID4gPg0K PiA+ID4gKyAgICAgICAgICAgICAgICBmIi0tZXhwb3J0X3R5cGUgYmluYXJ5Ont0b3RhbENvdmVy YWdlRmlsZX0gIiArDQo+ID4gPg0KPiA+ID4gKyAgICAgICAgICAgICAgICBmIi0td29ya2luZ19k aXI9e3dvcmtzcGFjZUJ1aWxkfSAiICsNCj4gPiA+DQo+ID4gPiArICAgICAgICAgICAgICAgIGYi e2NvdmVyYWdlRmlsZX0iDQo+ID4gPg0KPiA+ID4gKyAgICAgICAgICAgICAgICApDQo+ID4gPg0K PiA+ID4gKyAgICAgICAgICAgIGlmIHJldCAhPSAwOg0KPiA+ID4NCj4gPiA+ICsgICAgICAgICAg ICAgICAgbG9nZ2luZy5lcnJvcigiVW5pdFRlc3QgQ292ZXJhZ2U6IEZhaWxlZCB0byANCj4gPiA+ ICsgY29sbGVjdCBjb3ZlcmFnZSBkYXRhLiIpDQo+ID4gPg0KPiA+ID4gKyAgICAgICAgICAgICAg ICByZXR1cm4gMQ0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4gLSAgICAgICAgcmV0ID0gUnVu Q21kKCJPcGVuQ3BwQ292ZXJhZ2UiLCBmIi0tZXhwb3J0X3R5cGUNCj4gPiBjb2JlcnR1cmE6e3dv cmtzcGFjZX1CdWlsZC9jb3ZlcmFnZS54bWwgDQo+ID4gLS13b3JraW5nX2Rpcj17d29ya3NwYWNl fUJ1aWxkDQo+ID4ge2NvdmVyYWdlRmlsZX0iKQ0KPiA+ID4NCj4gPiA+ICsgICAgICAgIHJldCA9 IFJ1bkNtZCgNCj4gPiA+DQo+ID4gPiArICAgICAgICAgICAgIk9wZW5DcHBDb3ZlcmFnZSIsDQo+ ID4gPg0KPiA+ID4gKyAgICAgICAgICAgIGYiLS1leHBvcnRfdHlwZSANCj4gPiA+ICsgY29iZXJ0 dXJhOntvcy5wYXRoLmpvaW4od29ya3NwYWNlQnVpbGQsDQo+ID4gPiArICdjb3ZlcmFnZS54bWwn KX0gIiArDQo+ID4gPg0KPiA+ID4gKyAgICAgICAgICAgIGYiLS13b3JraW5nX2Rpcj17d29ya3Nw YWNlQnVpbGR9ICIgKw0KPiA+ID4NCj4gPiA+ICsgICAgICAgICAgICBmIi0taW5wdXRfY292ZXJh Z2U9e3RvdGFsQ292ZXJhZ2VGaWxlfSINCj4gPiA+DQo+ID4gPiArICAgICAgICAgICAgKQ0KPiA+ ID4NCj4gPiA+ICAgICAgICAgICBpZiByZXQgIT0gMDoNCj4gPiA+DQo+ID4gPiAgICAgICAgICAg ICAgIGxvZ2dpbmcuZXJyb3IoIlVuaXRUZXN0IENvdmVyYWdlOiBGYWlsZWQgdG8gZ2VuZXJhdGUg DQo+ID4gPiBjb2JlcnR1cmEgZm9ybWF0IHhtbC4iKQ0KPiA+ID4NCj4gPiA+ICAgICAgICAgICAg ICAgcmV0dXJuIDENCj4gPiA+DQo+ID4NCj4gPg0KPiA+DQo+ID4NCj4gDQo+IA0KPiANCj4gDQo+ IA0KPiANCj4gDQoNCg==