From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id D1F147CB6 for ; Mon, 11 Sep 2017 09:15:01 +0200 (CEST) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga105.fm.intel.com with ESMTP; 11 Sep 2017 00:15:00 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.42,376,1500966000"; d="scan'208";a="310211000" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by fmsmga004.fm.intel.com with ESMTP; 11 Sep 2017 00:15:00 -0700 Received: from fmsmsx112.amr.corp.intel.com (10.18.116.6) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 11 Sep 2017 00:15:00 -0700 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by FMSMSX112.amr.corp.intel.com (10.18.116.6) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 11 Sep 2017 00:14:59 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.219]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.117]) with mapi id 14.03.0319.002; Mon, 11 Sep 2017 15:14:58 +0800 From: "Liu, Yong" To: Jianbo Liu , "dts@dpdk.org" Thread-Topic: [dts] [PATCH v2] tests/ip_pipeline: fix test failures Thread-Index: AQHTJeoMpIezDmvAT0mL75i93L1fsqKuhhEAgADG4ZA= Date: Mon, 11 Sep 2017 07:14:57 +0000 Message-ID: <86228AFD5BCD8E4EBFD2B90117B5E81E62EA0CFD@SHSMSX103.ccr.corp.intel.com> References: <1503311443-26858-1-git-send-email-jianbo.liu@linaro.org> <1504576460-32098-1-git-send-email-jianbo.liu@linaro.org> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dts] [PATCH v2] tests/ip_pipeline: fix test failures X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Sep 2017 07:15:02 -0000 SmlhbmJvLA0KT25lIGlzc3VlIG9jY3VycmVkIHdoZW4gSSdtIHJ1bm5pbmcgdGhpcyBzdWl0ZS4g UGxlYXNlIGNoZWNrIHdpdGggbXkgY29tbWVudC4NCg0KVGhhbmtzLA0KTWFydmluDQoNCj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZHRzIFttYWlsdG86ZHRzLWJvdW5jZXNA ZHBkay5vcmddIE9uIEJlaGFsZiBPZiBKaWFuYm8gTGl1DQo+IFNlbnQ6IE1vbmRheSwgU2VwdGVt YmVyIDExLCAyMDE3IDExOjE0IEFNDQo+IFRvOiBkdHNAZHBkay5vcmcNCj4gQ2M6IEppYW5ibyBM aXUgPGppYW5iby5saXVAbGluYXJvLm9yZz4NCj4gU3ViamVjdDogUmU6IFtkdHNdIFtQQVRDSCB2 Ml0gdGVzdHMvaXBfcGlwZWxpbmU6IGZpeCB0ZXN0IGZhaWx1cmVzDQo+IA0KPiBBbnkgY29tbWVu dCBhYm91dCB2MiA/DQo+IA0KPiBPbiA1IFNlcHRlbWJlciAyMDE3IGF0IDA5OjU0LCBKaWFuYm8g TGl1IDxqaWFuYm8ubGl1QGxpbmFyby5vcmc+IHdyb3RlOg0KPiA+IFRoZSBpcF9waXBlbGluZSB3 YXMgY2hhbmdlZCBhIGxvdCwgYW5kIHRoZSBjb25maWd1cmF0aW9uIGFuZCBjb21tYW5kcw0KPiA+ IGFyZSBkaWZmZXJlbnQgZnJvbSB0aG9zZSBpbiB0aGlzIHRlc3RpbmcgY2FzZS4NCj4gPg0KPiA+ IFNpZ25lZC1vZmYtYnk6IEppYW5ibyBMaXUgPGppYW5iby5saXVAbGluYXJvLm9yZz4NCj4gPiAt LS0NCj4gPiAgdGVzdHMvVGVzdFN1aXRlX2lwX3BpcGVsaW5lLnB5IHwgMTU3ICsrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0NCj4gLS0tLS0tLQ0KPiA+ICAxIGZpbGUgY2hhbmdlZCwg OTAgaW5zZXJ0aW9ucygrKSwgNjcgZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEv dGVzdHMvVGVzdFN1aXRlX2lwX3BpcGVsaW5lLnB5DQo+IGIvdGVzdHMvVGVzdFN1aXRlX2lwX3Bp cGVsaW5lLnB5DQo+ID4gaW5kZXggOTBkYmEzMS4uMDAzY2QwMyAxMDA2NDQNCj4gPiAtLS0gYS90 ZXN0cy9UZXN0U3VpdGVfaXBfcGlwZWxpbmUucHkNCj4gPiArKysgYi90ZXN0cy9UZXN0U3VpdGVf aXBfcGlwZWxpbmUucHkNCj4gPiBAQCAtMTI0LDExICsxMjQsNDcgQEAgY2xhc3MgVGVzdElQUGlw ZWxpbmUoVGVzdENhc2UpOg0KPiA+DQo+ID4gICAgICAgICAgd3JpdGVyLmNsb3NlKCkNCj4gPg0K PiA+ICsgICAgZGVmIGNyZWF0ZV9wYXNzdGhyb3VnaF9jZmdmaWxlKHNlbGYpOg0KPiA+ICsgICAg ICAgIHNlbGYuZHV0LnNlbmRfZXhwZWN0KCdlY2hvIFtQSVBFTElORTBdID4gL3RtcC9pcF9waXBl bGluZS5jZmcnLA0KPiAnIycpDQo+ID4gKyAgICAgICAgc2VsZi5kdXQuc2VuZF9leHBlY3QoJ2Vj aG8gdHlwZSA9IE1BU1RFUiA+Pg0KPiAvdG1wL2lwX3BpcGVsaW5lLmNmZycsICcjJykNCj4gPiAr ICAgICAgICBzZWxmLmR1dC5zZW5kX2V4cGVjdCgnZWNobyBjb3JlID0gMCA+PiAvdG1wL2lwX3Bp cGVsaW5lLmNmZycsDQo+ICcjJykNCj4gPiArICAgICAgICBzZWxmLmR1dC5zZW5kX2V4cGVjdCgn ZWNobyBbUElQRUxJTkUxXSA+PiAvdG1wL2lwX3BpcGVsaW5lLmNmZycsDQo+ICcjJykNCj4gPiAr ICAgICAgICBzZWxmLmR1dC5zZW5kX2V4cGVjdCgnZWNobyB0eXBlID0gUEFTUy1USFJPVUdIID4+ DQo+IC90bXAvaXBfcGlwZWxpbmUuY2ZnJywgJyMnKQ0KPiA+ICsgICAgICAgIHNlbGYuZHV0LnNl bmRfZXhwZWN0KCdlY2hvIGNvcmUgPSAxID4+IC90bXAvaXBfcGlwZWxpbmUuY2ZnJywNCj4gJyMn KQ0KPiA+ICsgICAgICAgIHNlbGYuZHV0LnNlbmRfZXhwZWN0KCdlY2hvIHBrdHFfaW4gPSBSWFEw LjAgUlhRMS4wID4+DQo+IC90bXAvaXBfcGlwZWxpbmUuY2ZnJywgJyMnKQ0KPiA+ICsgICAgICAg IHNlbGYuZHV0LnNlbmRfZXhwZWN0KCdlY2hvIHBrdHFfb3V0ID0gVFhRMS4wIFRYUTAuMCA+Pg0K PiAvdG1wL2lwX3BpcGVsaW5lLmNmZycsICcjJykNCj4gPiArDQo+ID4gKyAgICBkZWYgY3JlYXRl X3JvdXRpbmdfY2ZnZmlsZShzZWxmKToNCg0KUGxlYXNlIGFkZCBzb21lIGRlc2NyaXB0aW9ucyBm b3IgbGlrZSBmdW5jdGlvbi4NCg0KPiA+ICsgICAgICAgIHNlbGYuZHV0LnNlbmRfZXhwZWN0KCdl Y2hvIFtQSVBFTElORTBdID4gL3RtcC9pcF9waXBlbGluZS5jZmcnLA0KPiAnIycpDQo+ID4gKyAg ICAgICAgc2VsZi5kdXQuc2VuZF9leHBlY3QoJ2VjaG8gdHlwZSA9IE1BU1RFUiA+Pg0KPiAvdG1w L2lwX3BpcGVsaW5lLmNmZycsICcjJykNCj4gPiArICAgICAgICBzZWxmLmR1dC5zZW5kX2V4cGVj dCgnZWNobyBjb3JlID0gMCA+PiAvdG1wL2lwX3BpcGVsaW5lLmNmZycsDQo+ICcjJykNCj4gPiAr ICAgICAgICBzZWxmLmR1dC5zZW5kX2V4cGVjdCgnZWNobyBbUElQRUxJTkUxXSA+PiAvdG1wL2lw X3BpcGVsaW5lLmNmZycsDQo+ICcjJykNCj4gPiArICAgICAgICBzZWxmLmR1dC5zZW5kX2V4cGVj dCgnZWNobyB0eXBlID0gUk9VVElORyA+Pg0KPiAvdG1wL2lwX3BpcGVsaW5lLmNmZycsICcjJykN Cj4gPiArICAgICAgICBzZWxmLmR1dC5zZW5kX2V4cGVjdCgnZWNobyBjb3JlID0gMSA+PiAvdG1w L2lwX3BpcGVsaW5lLmNmZycsDQo+ICcjJykNCj4gPiArICAgICAgICBzZWxmLmR1dC5zZW5kX2V4 cGVjdCgnZWNobyBwa3RxX2luID0gUlhRMC4wIFJYUTEuMCA+Pg0KPiAvdG1wL2lwX3BpcGVsaW5l LmNmZycsICcjJykNCj4gPiArICAgICAgICBzZWxmLmR1dC5zZW5kX2V4cGVjdCgnZWNobyBwa3Rx X291dCA9IFRYUTAuMCBUWFExLjAgPj4NCj4gL3RtcC9pcF9waXBlbGluZS5jZmcnLCAnIycpDQo+ ID4gKyAgICAgICAgc2VsZi5kdXQuc2VuZF9leHBlY3QoJ2VjaG8gZW5jYXAgPSBldGhlcm5ldCA+ Pg0KPiAvdG1wL2lwX3BpcGVsaW5lLmNmZycsICcjJykNCj4gPiArICAgICAgICBzZWxmLmR1dC5z ZW5kX2V4cGVjdCgnZWNobyBpcF9oZHJfb2Zmc2V0ID0gMjcwID4+DQo+IC90bXAvaXBfcGlwZWxp bmUuY2ZnJywgJyMnKQ0KPiA+ICsgICAgICAgIHNlbGYuZHV0LnNlbmRfZXhwZWN0KCdlY2hvIGFy cF9rZXlfb2Zmc2V0ID0gMTI4ID4+DQo+IC90bXAvaXBfcGlwZWxpbmUuY2ZnJywgJyMnKQ0KPiA+ ICsgICAgICAgIHNlbGYuZHV0LnNlbmRfZXhwZWN0KCdlY2hvIG5fYXJwX2VudHJpZXMgPSAxMDAw ID4+DQo+IC90bXAvaXBfcGlwZWxpbmUuY2ZnJywgJyMnKQ0KPiA+ICsNCj4gPiArICAgIGRlZiBj cmVhdGVfZmxvd19jZmdmaWxlKHNlbGYpOg0KDQpQbGVhc2UgYWRkIHNvbWUgZGVzY3JpcHRpb25z IGZvciBsaWtlIGZ1bmN0aW9uLiANCg0KPiA+ICsgICAgICAgIHNlbGYuZHV0LnNlbmRfZXhwZWN0 KCdlY2hvIFtQSVBFTElORTBdID4gL3RtcC9pcF9waXBlbGluZS5jZmcnLA0KPiAnIycpDQo+ID4g KyAgICAgICAgc2VsZi5kdXQuc2VuZF9leHBlY3QoJ2VjaG8gdHlwZSA9IE1BU1RFUiA+Pg0KPiAv dG1wL2lwX3BpcGVsaW5lLmNmZycsICcjJykNCj4gPiArICAgICAgICBzZWxmLmR1dC5zZW5kX2V4 cGVjdCgnZWNobyBjb3JlID0gMCA+PiAvdG1wL2lwX3BpcGVsaW5lLmNmZycsDQo+ICcjJykNCj4g PiArICAgICAgICBzZWxmLmR1dC5zZW5kX2V4cGVjdCgnZWNobyBbUElQRUxJTkUxXSA+PiAvdG1w L2lwX3BpcGVsaW5lLmNmZycsDQo+ICcjJykNCj4gPiArICAgICAgICBzZWxmLmR1dC5zZW5kX2V4 cGVjdCgnZWNobyB0eXBlID0gRkxPV19DTEFTU0lGSUNBVElPTiA+Pg0KPiAvdG1wL2lwX3BpcGVs aW5lLmNmZycsICcjJykNCj4gPiArICAgICAgICBzZWxmLmR1dC5zZW5kX2V4cGVjdCgnZWNobyBj b3JlID0gMSA+PiAvdG1wL2lwX3BpcGVsaW5lLmNmZycsDQo+ICcjJykNCj4gPiArICAgICAgICBz ZWxmLmR1dC5zZW5kX2V4cGVjdCgnZWNobyBwa3RxX2luID0gUlhRMC4wIFJYUTEuMCA+Pg0KPiAv dG1wL2lwX3BpcGVsaW5lLmNmZycsICcjJykNCj4gPiArICAgICAgICBzZWxmLmR1dC5zZW5kX2V4 cGVjdCgnZWNobyBwa3RxX291dCA9IFRYUTAuMCBUWFExLjAgU0lOSzAgPj4NCj4gL3RtcC9pcF9w aXBlbGluZS5jZmcnLCAnIycpDQo+ID4gKyAgICAgICAgc2VsZi5kdXQuc2VuZF9leHBlY3QoJ2Vj aG8gbl9mbG93cyA9IDY1NTM2ID4+DQo+IC90bXAvaXBfcGlwZWxpbmUuY2ZnJywgJyMnKQ0KPiA+ ICsgICAgICAgIHNlbGYuZHV0LnNlbmRfZXhwZWN0KCdlY2hvIGtleV9zaXplID0gMTYgPj4NCj4g L3RtcC9pcF9waXBlbGluZS5jZmcnLCAnIycpDQo+ID4gKyAgICAgICAgc2VsZi5kdXQuc2VuZF9l eHBlY3QoJ2VjaG8ga2V5X29mZnNldCA9IDI3OCA+Pg0KPiAvdG1wL2lwX3BpcGVsaW5lLmNmZycs ICcjJykNCj4gPiArICAgICAgICBzZWxmLmR1dC5zZW5kX2V4cGVjdCgnZWNobyBrZXlfbWFzayA9 DQo+IDAwRkYwMDAwRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGID4+IC90bXAvaXBfcGlwZWxpbmUu Y2ZnJywgJyMnKQ0KPiA+ICsgICAgICAgIHNlbGYuZHV0LnNlbmRfZXhwZWN0KCdlY2hvIGZsb3dp ZF9vZmZzZXQgPSAxMjggPj4NCj4gL3RtcC9pcF9waXBlbGluZS5jZmcnLCAnIycpDQo+ID4gKw0K PiA+ICAgICAgZGVmIHN0YXJ0X2lwX3BpcGVsaW5lKHNlbGYsIHBvcnRzKToNCj4gPiAtICAgICAg ICBjb21tYW5kX2xpbmUgPSAiLi9leGFtcGxlcy9pcF9waXBlbGluZS9idWlsZC9pcF9waXBlbGlu ZSAtYyAlcw0KPiAtbiAlZCAtLSAtcCAlcyIgJSBcDQo+ID4gLSAgICAgICAgICAgIChzZWxmLmNv cmVtYXNrLA0KPiA+IC0gICAgICAgICAgICAgc2VsZi5kdXQuZ2V0X21lbW9yeV9jaGFubmVscygp LA0KPiA+IC0gICAgICAgICAgICAgcG9ydHMpDQo+ID4gKyAgICAgICAgY29tbWFuZF9saW5lID0g Ii4vZXhhbXBsZXMvaXBfcGlwZWxpbmUvYnVpbGQvaXBfcGlwZWxpbmUgLXAgJXMNCj4gLWYgL3Rt cC9pcF9waXBlbGluZS5jZmciICUgcG9ydHMNCj4gPg0KPiA+ICAgICAgICAgIG91dCA9IHNlbGYu ZHV0LnNlbmRfZXhwZWN0KGNvbW1hbmRfbGluZSwgJ3BpcGVsaW5lPicsIDYwKQ0KPiA+ICAgICAg ICAgIHNsZWVwKDUpICAgICMgJ0luaXRpYWxpemF0aW9uIGNvbXBsZXRlZCcgaXMgbm90IHRoZSBs YXN0IG91dHB1dCwNCj4gc29tZQ0KPiA+IEBAIC0xNTAsMTAgKzE4NiwxMCBAQCBjbGFzcyBUZXN0 SVBQaXBlbGluZShUZXN0Q2FzZSk6DQo+ID4gICAgICAgICAgIiIiDQo+ID4NCj4gPiAgICAgICAg ICBmb3IgaWZhY2UgaW4gaWZhY2VzOg0KPiA+ICsgICAgICAgICAgICBjb21tYW5kID0gKCdybSAt ZiB0Y3BkdW1wX3swfS5wY2FwJykuZm9ybWF0KGlmYWNlKQ0KPiA+ICsgICAgICAgICAgICBzZWxm LnRlc3Rlci5zZW5kX2V4cGVjdChjb21tYW5kLCAnIycpDQo+ID4gICAgICAgICAgICAgIGNvbW1h bmQgPSAoDQo+ID4gICAgICAgICAgICAgICAgICAndGNwZHVtcCAtdyB0Y3BkdW1wX3swfS5wY2Fw IC1pIHswfSAyPnRjcGR1bXBfezB9Lm91dA0KPiAmJykuZm9ybWF0KGlmYWNlKQ0KPiA+IC0gICAg ICAgICAgICBzZWxmLnRlc3Rlci5zZW5kX2V4cGVjdCgNCj4gPiAtICAgICAgICAgICAgICAgICdy bSAtZiB0Y3BkdW1wX3swfS5wY2FwJywgJyMnKS5mb3JtYXQoaWZhY2UpDQo+ID4gICAgICAgICAg ICAgIHNlbGYudGVzdGVyLnNlbmRfZXhwZWN0KGNvbW1hbmQsICcjJykNCj4gPg0KPiA+ICAgICAg ZGVmIHRjcGR1bXBfc3RvcF9zbmlmZihzZWxmKToNCj4gPiBAQCAtMjAwLDE1ICsyMzYsMTMgQEAg Y2xhc3MgVGVzdElQUGlwZWxpbmUoVGVzdENhc2UpOg0KPiA+DQo+ID4gICAgICAgICAgdHhfcG9y dCA9IHNlbGYudGVzdGVyLmdldF9sb2NhbF9wb3J0KHNlbGYuZHV0X3BvcnRzW2Zyb21fcG9ydF0p DQo+ID4gICAgICAgICAgcnhfcG9ydCA9IHNlbGYudGVzdGVyLmdldF9sb2NhbF9wb3J0KHNlbGYu ZHV0X3BvcnRzW3RvX3BvcnRdKQ0KPiA+ICsgICAgICAgIHBvcnQwID0gc2VsZi50ZXN0ZXIuZ2V0 X2xvY2FsX3BvcnQoc2VsZi5kdXRfcG9ydHNbMF0pDQo+ID4NCj4gPiAgICAgICAgICB0eF9pbnRl cmZhY2UgPSBzZWxmLnRlc3Rlci5nZXRfaW50ZXJmYWNlKHR4X3BvcnQpDQo+ID4gICAgICAgICAg cnhfaW50ZXJmYWNlID0gc2VsZi50ZXN0ZXIuZ2V0X2ludGVyZmFjZShyeF9wb3J0KQ0KPiA+DQo+ ID4gICAgICAgICAgc2VsZi50Y3BkdW1wX3N0YXJ0X3NuaWZmaW5nKFt0eF9pbnRlcmZhY2UsIHJ4 X2ludGVyZmFjZV0pDQo+ID4NCj4gPiAtICAgICAgICBzZWxmLmR1dC5zZW5kX2V4cGVjdCgnbGlu ayAwIHVwJywgJ3BpcGVsaW5lPicpDQo+ID4gLSAgICAgICAgc2VsZi5kdXQuc2VuZF9leHBlY3Qo J2xpbmsgMSB1cCcsICdwaXBlbGluZT4nKQ0KPiA+IC0NCj4gPiAgICAgICAgICB0aW1lb3V0ID0g ZnJhbWVzX251bWJlciAqIGludGVyICsgMg0KPiA+ICAgICAgICAgIGludGVyID0gIiwgaW50ZXI9 JWQiICUgaW50ZXINCj4gPg0KPiA+IEBAIC0yMjUsNjQgKzI1OSw1OCBAQCBjbGFzcyBUZXN0SVBQ aXBlbGluZShUZXN0Q2FzZSk6DQo+ID4NCj4gPiAgICAgICAgICBzZWxmLnRjcGR1bXBfc3RvcF9z bmlmZigpDQo+ID4NCj4gPiAtICAgICAgICBzZWxmLmR1dC5zZW5kX2V4cGVjdCgnbGluayAwIGRv d24nLCAncGlwZWxpbmU+JykNCj4gPiAtICAgICAgICBzZWxmLmR1dC5zZW5kX2V4cGVjdCgnbGlu ayAxIGRvd24nLCAncGlwZWxpbmU+JykNCj4gPiAtDQo+ID4gICAgICAgICAgcnhfc3RhdHMgPSBz ZWxmLm51bWJlcl9vZl9wYWNrZXRzKCd0Y3BkdW1wXyVzLnBjYXAnICUNCj4gcnhfaW50ZXJmYWNl KQ0KPiA+ICAgICAgICAgIHR4X3N0YXRzID0gc2VsZi5udW1iZXJfb2ZfcGFja2V0cygndGNwZHVt cF8lcy5wY2FwJyAlDQo+IHR4X2ludGVyZmFjZSkNCj4gPg0KPiA+ICAgICAgICAgICMgRG8gbm90 IGNvdW50IHRoZSBzZW50IGZyYW1lcyBpbiB0aGUgdHhfaW50ZXJmYWNlDQo+ID4gICAgICAgICAg dHhfc3RhdHMgPSB0eF9zdGF0cyAtIGZyYW1lc19udW1iZXINCj4gPg0KPiA+IC0gICAgICAgIHJl dHVybiB7J3J4Jzogcnhfc3RhdHMsICd0eCc6IHR4X3N0YXRzfQ0KPiA+ICsgICAgICAgIGlmIHBv cnQwID09IHR4X3BvcnQ6DQo+ID4gKyAgICAgICAgICAgIHJldHVybiB7J3J4MCc6IHR4X3N0YXRz LCAncngxJzogcnhfc3RhdHN9DQo+ID4gKyAgICAgICAgZWxzZToNCj4gPiArICAgICAgICAgICAg cmV0dXJuIHsncngwJzogcnhfc3RhdHMsICdyeDEnOiB0eF9zdGF0c30NCj4gPg0KPiA+ICAgICAg ZGVmIGNoZWNrX3Jlc3VsdHMoc2VsZiwgc3RhdHMsIGV4cGVjdGVkKToNCj4gPiAgICAgICAgICAi IiINCj4gPiAtICAgICAgICBUaGlzIGZ1bmN0aW9uIGNoZWNrIHRoYXQgdGhlIFJ4IGFuZCBUeCBz dGF0cyBtYXRjaGVzIHRoZQ0KPiBleHBlY3RlZC4NCj4gPiAtICAgICAgICBleHBlY3RlZCA9IFtS eCwgVHhdDQo+ID4gKyAgICAgICAgVGhpcyBmdW5jdGlvbiBjaGVjayB0aGF0IHRoZSByZWNlaXZl ZCBwYWNrZXQgbnVtYmVycyBvZiBwb3J0MA0KPiBhbmQgcG9ydDEgbWF0Y2ggdGhlIGV4cGVjdGVk Lg0KPiA+ICsgICAgICAgIGV4cGVjdGVkID0gW1J4MCwgUngxXQ0KPiA+ICAgICAgICAgICIiIg0K PiA+DQo+ID4gLSAgICAgICAgZm9yIHBvcnQgaW4gWydyeCcsICd0eCddOg0KPiA+ICsgICAgICAg IGZvciBwb3J0IGluIFsncngwJywgJ3J4MSddOg0KPiA+ICAgICAgICAgICAgICBzZWxmLnZlcmlm eShzdGF0c1twb3J0XSA9PSBleHBlY3RlZFtwb3J0XSwNCj4gPiAgICAgICAgICAgICAgICAgICAg ICAgICAgJ0ZyYW1lcyBleHBlY3RlZCAoJXMpIGFuZCByZWNlaXZlZCAoJXMpDQo+IG1pc21hdGNo IG9uICVzIHBvcnQnICUgKA0KPiA+ICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRbcG9ydF0sIHN0 YXRzW3BvcnRdLCBwb3J0KSkNCj4gPg0KPiA+ICAgICAgZGVmIHBpcGVsaW5lX2NvbW1hbmQoc2Vs ZiwgY29tbWFuZCk6DQo+ID4gICAgICAgICAgb3V0ID0gc2VsZi5kdXQuc2VuZF9leHBlY3QoY29t bWFuZCwgJ3BpcGVsaW5lPicpDQo+ID4gLSAgICAgICAgc2VsZi52ZXJpZnkoIklsbGVnYWwiIG5v dCBpbiBvdXQsICJQaXBlbGluZSBjb21tYW5kIGVycm9yIDE6DQo+ICclcyciICUgY29tbWFuZCkN Cj4gPiAtICAgICAgICBzZWxmLnZlcmlmeSgiQmFkIiBub3QgaW4gb3V0LCAiUGlwZWxpbmUgY29t bWFuZCBlcnJvciAyOiAnJXMnIiAlDQo+IGNvbW1hbmQpDQo+ID4gKyAgICAgICAgc2VsZi52ZXJp ZnkoImFyZ3VtZW50cyIgbm90IGluIG91dCwgIkluY29ycmVjdCBhcmd1bWVudHM6DQo+ICclcyci ICUgY29tbWFuZCkNCj4gPiArICAgICAgICBzZWxmLnZlcmlmeSgiSW52YWxpZCIgbm90IGluIG91 dCwgIkludmFsaWQgYXJndW1lbnQ6ICclcyciICUNCj4gY29tbWFuZCkNCj4gPiArICAgICAgICBz ZWxmLnZlcmlmeSgiU3ludGF4IGVycm9yIiBub3QgaW4gb3V0LCAiU3ludGF4IGVycm9yOiAnJXMn IiAlDQo+IGNvbW1hbmQpDQo+ID4gICAgICAgICAgcmV0dXJuIG91dA0KPiA+DQo+ID4gLSAgICBk ZWYgcGlwZWxpbmVfYWRkX2Zsb3coc2VsZiwgcG9ydCwgc3JjX2lwLCBkc3RfaXAsIHNyY19wb3J0 LA0KPiBkc3RfcG9ydCwNCj4gPiArICAgIGRlZiBwaXBlbGluZV9hZGRfZmxvdyhzZWxmLCBwb3J0 LCBzcmNfaXAsIGRzdF9pcCwgc3JjX3BvcnQsDQo+IGRzdF9wb3J0LCBmbG93aWQsDQo+ID4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgcHJvdG9jb2w9Nik6DQo+ID4gLSAgICAgICAgY29tbWFu ZCA9ICdmbG93IGFkZCAlcyAlcyAlZCAlZCAlZCAlZCcgJSAoc3JjX2lwLCBkc3RfaXAsDQo+IHNy Y19wb3J0LA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRzdF9wb3J0LCBwcm90b2NvbCwNCj4gcG9ydCkNCj4gPiArICAgICAgICBjb21tYW5k ID0gJ3AgMSBmbG93IGFkZCBpcHY0ICVzICVzICVkICVkICVkIHBvcnQgJWQgaWQgJWQnICUNCj4g KHNyY19pcCwgZHN0X2lwLCBzcmNfcG9ydCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkc3RfcG9ydCwgcHJvdG9jb2wsDQo+IHBvcnQsIGZs b3dpZCkNCj4gPiAgICAgICAgICBvdXQgPSBzZWxmLnBpcGVsaW5lX2NvbW1hbmQoY29tbWFuZCkN Cj4gPiAtICAgICAgICBzZWxmLnZlcmlmeSgiQWRkaW5nIGZsb3ciIGluIG91dCwgIkFkZCBmbG93 IGVycm9yIikNCj4gPiArICAgICAgICBzZWxmLnZlcmlmeSgiZmFpbGVkIiBub3QgaW4gb3V0LCAi QWRkIGZsb3cgZXJyb3IiKQ0KPiA+DQo+ID4gICAgICBkZWYgcGlwZWxpbmVfZGVsX2Zsb3coc2Vs Ziwgc3JjX2lwLCBkc3RfaXAsIHNyY19wb3J0LCBkc3RfcG9ydCwNCj4gPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwcm90b2NvbD02KToNCj4gPiAtICAgICAgICBjb21tYW5kID0gJ2Zsb3cg ZGVsICVzICVzICVkICVkICVkJyAlIChzcmNfaXAsIGRzdF9pcCwgc3JjX3BvcnQsDQo+ID4gKyAg ICAgICAgY29tbWFuZCA9ICdwIDEgZmxvdyBkZWwgaXB2NCAlcyAlcyAlZCAlZCAlZCcgJSAoc3Jj X2lwLCBkc3RfaXAsDQo+IHNyY19wb3J0LA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRzdF9wb3J0LCBwcm90b2NvbCkNCj4gPiAgICAgICAgICBv dXQgPSBzZWxmLnBpcGVsaW5lX2NvbW1hbmQoY29tbWFuZCkNCj4gPiAtICAgICAgICBzZWxmLnZl cmlmeSgiRGVsZXRpbmcgZmxvdyIgaW4gb3V0LCAiRGVsIGZsb3cgZXJyb3IiKQ0KPiA+ICsgICAg ICAgIHNlbGYudmVyaWZ5KCJmYWlsZWQiIG5vdCBpbiBvdXQsICJEZWwgZmxvdyBlcnJvciIpDQo+ ID4NCj4gPiAgICAgIGRlZiBwaXBlbGluZV9hZGRfcm91dGUoc2VsZiwgcG9ydCwgc3JjX2lwLCBu ZXRtYXNrLCBnd19pcCk6DQo+ID4gLSAgICAgICAgY29tbWFuZCA9ICdyb3V0ZSBhZGQgJXMgJWQg JWQgJXMnICUgKHNyY19pcCwgbmV0bWFzaywgcG9ydCwNCj4gZ3dfaXApDQo+ID4gKyAgICAgICAg Y29tbWFuZCA9ICdwIDEgcm91dGUgYWRkICVzICVkIHBvcnQgJWQgZXRoZXIgJXMnICUgKHNyY19p cCwNCj4gbmV0bWFzaywgcG9ydCwgZ3dfaXApDQo+ID4gICAgICAgICAgb3V0ID0gc2VsZi5waXBl bGluZV9jb21tYW5kKGNvbW1hbmQpDQo+ID4gLSAgICAgICAgc2VsZi52ZXJpZnkoIkFkZGluZyBy b3V0ZSIgaW4gb3V0LCAiQWRkIHJvdXRlIGVycm9yIikNCj4gPiArICAgICAgICBzZWxmLnZlcmlm eSgiZmFpbGVkIiBub3QgaW4gb3V0LCAiQWRkIHJvdXRlIGVycm9yIikNCj4gPg0KPiA+ICAgICAg ZGVmIHBpcGVsaW5lX2RlbF9yb3V0ZShzZWxmLCBzcmNfaXAsIG5ldG1hc2spOg0KPiA+IC0gICAg ICAgIGNvbW1hbmQgPSAncm91dGUgZGVsICVzICVkJyAlIChzcmNfaXAsIG5ldG1hc2spDQo+ID4g KyAgICAgICAgY29tbWFuZCA9ICdwIDEgcm91dGUgZGVsICVzICVkJyAlIChzcmNfaXAsIG5ldG1h c2spDQo+ID4gICAgICAgICAgb3V0ID0gc2VsZi5waXBlbGluZV9jb21tYW5kKGNvbW1hbmQpDQo+ ID4gLSAgICAgICAgc2VsZi52ZXJpZnkoIkRlbGV0aW5nIHJvdXRlIiBpbiBvdXQsICJEZWwgcm91 dGUgZXJyb3IiKQ0KPiA+IC0NCj4gPiAtICAgIGRlZiBwaXBlbGluZV90cmFmZmljX2J1cnN0KHNl bGYpOg0KPiA+IC0gICAgICAgIHNlbGYuZHV0LnNlbmRfZXhwZWN0KCdsaW5rIDAgdXAnLCAncGlw ZWxpbmU+JykNCj4gPiAtICAgICAgICBzZWxmLmR1dC5zZW5kX2V4cGVjdCgnbGluayAxIHVwJywg J3BpcGVsaW5lPicpDQo+ID4gLSAgICAgICAgc2xlZXAoMC4xKQ0KPiA+IC0gICAgICAgIHNlbGYu ZHV0LnNlbmRfZXhwZWN0KCdsaW5rIDAgZG93bicsICdwaXBlbGluZT4nKQ0KPiA+IC0gICAgICAg IHNlbGYuZHV0LnNlbmRfZXhwZWN0KCdsaW5rIDEgZG93bicsICdwaXBlbGluZT4nKQ0KPiA+ICsg ICAgICAgIHNlbGYudmVyaWZ5KCJmYWlsZWQiIG5vdCBpbiBvdXQsICJEZWwgcm91dGUgZXJyb3Ii KQ0KPiA+DQo+ID4gICAgICBkZWYgc2V0X3VwX2FsbChzZWxmKToNCj4gPiAgICAgICAgICAiIiIN Cj4gPiBAQCAtMjkxLDE0ICszMTksOCBAQCBjbGFzcyBUZXN0SVBQaXBlbGluZShUZXN0Q2FzZSk6 DQo+ID4gICAgICAgICAgUE1EIHByZXJlcXVpc2l0ZXMuDQo+ID4gICAgICAgICAgIiIiDQo+ID4N Cj4gPiAtICAgICAgICAjIENoZWNrIGZvciBwb3J0IGF2YWlsYWJpbGl0eQ0KPiA+IC0gICAgICAg IHNlbGYubmVlZGVkX3BvcnRzID0geyJuaWFudGljIjogMiwNCj4gPiAtICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiSTIxN1YiOiAxLA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJJMjE3TE0iOiAxLA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJMjE4 ViI6IDEsDQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkkyMThMTSI6IDF9DQo+ ID4gICAgICAgICAgc2VsZi5kdXRfcG9ydHMgPSBzZWxmLmR1dC5nZXRfcG9ydHMoKQ0KPiA+IC0g ICAgICAgIHNlbGYudmVyaWZ5KGxlbihzZWxmLmR1dF9wb3J0cykgPj0gc2VsZi5uZWVkZWRfcG9y dHNbc2VsZi5uaWNdLA0KPiA+ICsgICAgICAgIHNlbGYudmVyaWZ5KGxlbihzZWxmLmR1dF9wb3J0 cykgPj0gMiwNCj4gPiAgICAgICAgICAgICAgICAgICAgICAiSW5zdWZmaWNpZW50IHBvcnRzIGZv ciBzcGVlZCB0ZXN0aW5nIikNCj4gPg0KPiA+ICAgICAgICAgIG91dCA9IHNlbGYuZHV0LmJ1aWxk X2RwZGtfYXBwcygiLi9leGFtcGxlcy9pcF9waXBlbGluZSIpDQo+ID4gQEAgLTMyNCw5ICszNDYs MTAgQEAgY2xhc3MgVGVzdElQUGlwZWxpbmUoVGVzdENhc2UpOg0KPiA+ICAgICAgICAgIHBjYXBf ZmlsZSA9ICdpcF9waXBlbGluZS5wY2FwJw0KPiA+ICAgICAgICAgIGZyYW1lX3NpemUgPSA2NA0K PiA+DQo+ID4gKyAgICAgICAgc2VsZi5jcmVhdGVfcGFzc3Rocm91Z2hfY2ZnZmlsZSgpDQo+ID4g ICAgICAgICAgc2VsZi5zdGFydF9pcF9waXBlbGluZShwb3J0cz1zZWxmLnBvcnRzX21hc2spDQo+ ID4gICAgICAgICAgc2VsZi5kdXQuc2VuZF9leHBlY3QoDQo+ID4gLSAgICAgICAgICAgICdydW4g ZXhhbXBsZXMvaXBfcGlwZWxpbmUvaXBfcGlwZWxpbmUuc2gnLCAncGlwZWxpbmU+JywgMTApDQo+ ID4gKyAgICAgICAgICAgICdydW4gZXhhbXBsZXMvaXBfcGlwZWxpbmUvY29uZmlnL2lwX3BpcGVs aW5lLnNoJywNCj4gJ3BpcGVsaW5lPicsIDEwKQ0KPiA+DQo+ID4gICAgICAgICAgIyBDcmVhdGUg YSBQQ0FQIGZpbGUgY29udGFpbmluZyB0aGUgbWF4aW11bSBmcmFtZXNfbnVtYmVyIG9mDQo+IGZy YW1lcyBuZWVkZWQNCj4gPiAgICAgICAgICAjIHdpdGggZml4ZWQgc2l6ZSBhbmQgaW5jcmVtZW50 YWwgSVANCj4gPiBAQCAtMzQyLDEzICszNjUsMTMgQEAgY2xhc3MgVGVzdElQUGlwZWxpbmUoVGVz dENhc2UpOg0KPiA+ICAgICAgICAgICAgICAgICAgc3RhdHMgPSBzZWxmLnNlbmRfYW5kX3NuaWZm X3BjYXBfZmlsZShwY2FwX2ZpbGUsDQo+IGZyYW1lc19udW1iZXIsDQo+ID4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsIDAsIGludGVyKQ0K PiA+DQo+ID4gLSAgICAgICAgICAgICAgICBleHBlY3RlZCA9IHsndHgnOiAwLCAncngnOiBmcmFt ZXNfbnVtYmVyfQ0KPiA+ICsgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSB7J3J4MCc6IGZyYW1l c19udW1iZXIsICdyeDEnOiAwfQ0KPiA+ICAgICAgICAgICAgICAgICAgc2VsZi5jaGVja19yZXN1 bHRzKHN0YXRzLCBleHBlY3RlZCkNCj4gPg0KPiA+ICAgICAgICAgICAgICAgICAgc3RhdHMgPSBz ZWxmLnNlbmRfYW5kX3NuaWZmX3BjYXBfZmlsZShwY2FwX2ZpbGUsDQo+IGZyYW1lc19udW1iZXIs DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDAsIDEsIGludGVyKQ0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICBleHBlY3RlZCA9IHsn dHgnOiBmcmFtZXNfbnVtYmVyLCAncngnOiAwfQ0KPiA+ICsgICAgICAgICAgICAgICAgZXhwZWN0 ZWQgPSB7J3J4MCc6IDAsICdyeDEnOiBmcmFtZXNfbnVtYmVyfQ0KPiA+ICAgICAgICAgICAgICAg ICAgc2VsZi5jaGVja19yZXN1bHRzKHN0YXRzLCBleHBlY3RlZCkNCj4gPg0KPiA+ICAgICAgZGVm IHRlc3RfZnJhbWVfc2l6ZXMoc2VsZik6DQo+ID4gQEAgLTM1OSw5ICszODIsMTAgQEAgY2xhc3Mg VGVzdElQUGlwZWxpbmUoVGVzdENhc2UpOg0KPiA+ICAgICAgICAgIGZyYW1lc19udW1iZXIgPSAx MDANCj4gPiAgICAgICAgICBpbnRlciA9IDAuNQ0KPiA+DQo+ID4gKyAgICAgICAgc2VsZi5jcmVh dGVfcGFzc3Rocm91Z2hfY2ZnZmlsZSgpDQo+ID4gICAgICAgICAgc2VsZi5zdGFydF9pcF9waXBl bGluZShwb3J0cz1zZWxmLnBvcnRzX21hc2spDQo+ID4gICAgICAgICAgc2VsZi5kdXQuc2VuZF9l eHBlY3QoDQo+ID4gLSAgICAgICAgICAgICdydW4gZXhhbXBsZXMvaXBfcGlwZWxpbmUvaXBfcGlw ZWxpbmUuc2gnLCAncGlwZWxpbmU+JywgMTApDQo+ID4gKyAgICAgICAgICAgICdydW4gZXhhbXBs ZXMvaXBfcGlwZWxpbmUvY29uZmlnL2lwX3BpcGVsaW5lLnNoJywNCj4gJ3BpcGVsaW5lPicsIDEw KQ0KPiA+DQo+ID4gICAgICAgICAgZm9yIGZyYW1lX3NpemUgaW4gVGVzdElQUGlwZWxpbmUuZnJh bWVfc2l6ZXM6DQo+ID4NCj4gPiBAQCAtMzc2LDEzICs0MDAsMTMgQEAgY2xhc3MgVGVzdElQUGlw ZWxpbmUoVGVzdENhc2UpOg0KPiA+ICAgICAgICAgICAgICBzdGF0cyA9IHNlbGYuc2VuZF9hbmRf c25pZmZfcGNhcF9maWxlKHBjYXBfZmlsZSwNCj4gZnJhbWVzX251bWJlciwNCj4gPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLCAwLCBpbnRlcikN Cj4gPg0KPiA+IC0gICAgICAgICAgICBleHBlY3RlZCA9IHsndHgnOiAwLCAncngnOiBmcmFtZXNf bnVtYmVyfQ0KPiA+ICsgICAgICAgICAgICBleHBlY3RlZCA9IHsncngwJzogZnJhbWVzX251bWJl ciwgJ3J4MSc6IDB9DQo+ID4gICAgICAgICAgICAgIHNlbGYuY2hlY2tfcmVzdWx0cyhzdGF0cywg ZXhwZWN0ZWQpDQo+ID4NCj4gPiAgICAgICAgICAgICAgc3RhdHMgPSBzZWxmLnNlbmRfYW5kX3Nu aWZmX3BjYXBfZmlsZShwY2FwX2ZpbGUsDQo+IGZyYW1lc19udW1iZXIsDQo+ID4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMSwgaW50ZXIpDQo+ ID4NCj4gPiAtICAgICAgICAgICAgZXhwZWN0ZWQgPSB7J3R4JzogZnJhbWVzX251bWJlciwgJ3J4 JzogMH0NCj4gPiArICAgICAgICAgICAgZXhwZWN0ZWQgPSB7J3J4MCc6IDAsICdyeDEnOiBmcmFt ZXNfbnVtYmVyfQ0KPiA+ICAgICAgICAgICAgICBzZWxmLmNoZWNrX3Jlc3VsdHMoc3RhdHMsIGV4 cGVjdGVkKQ0KPiA+DQo+ID4gICAgICBkZWYgdGVzdF9mbG93X21hbmFnZW1lbnQoc2VsZik6DQo+ ID4gQEAgLTM5MiwxMSArNDE2LDYgQEAgY2xhc3MgVGVzdElQUGlwZWxpbmUoVGVzdENhc2UpOg0K PiA+ICAgICAgICAgIHBjYXBfZmlsZSA9ICdpcF9waXBlbGluZS5wY2FwJw0KPiA+ICAgICAgICAg IGZyYW1lX3NpemUgPSA2NA0KPiA+DQo+ID4gLSAgICAgICAgZGVmYXVsdF9zZXR1cCA9IFsnYXJw IGFkZCAwIDAuMC4wLjEgMGE6MGI6MGM6MGQ6MGU6MGYnLA0KPiA+IC0gICAgICAgICAgICAgICAg ICAgICAgICAgJ2FycCBhZGQgMSAwLjEyOC4wLjEgMWE6MWI6MWM6MWQ6MWU6MWYnLA0KPiA+IC0g ICAgICAgICAgICAgICAgICAgICAgICAgJ3JvdXRlIGFkZCAwLjAuMC4wIDkgMCAwLjAuMC4xJywN Cj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICdyb3V0ZSBhZGQgMC4xMjguMC4wIDkgMSAw LjEyOC4wLjEnXQ0KPiA+IC0NCj4gPiAgICAgICAgICBpcF9hZGRycyA9IFsNCj4gPiAgICAgICAg ICAgICAgJzAuMC4wLjAnLCAnMC4wLjAuMScsICcwLjAuMC4xMjcnLCAnMC4wLjAuMTI4JywgJzAu MC4wLjI1NScsDQo+ID4gICAgICAgICAgICAgICcwLjAuMS4wJywgJzAuMC4xMjcuMCcsICcwLjAu MTI4LjAnLCAnMC4wLjEyOS4wJywNCj4gJzAuMC4yNTUuMCcsDQo+ID4gQEAgLTQwOSwzMCArNDI4 LDMyIEBAIGNsYXNzIFRlc3RJUFBpcGVsaW5lKFRlc3RDYXNlKToNCj4gPiAgICAgICAgICAgICAg ZnJhbWVzLmFwcGVuZChzZWxmLmNyZWF0ZV90Y3BfaXB2NF9mcmFtZSgwLCAnMC4wLjAuMCcsIGFk ZHIsDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZnJhbWVfc2l6ZSkpDQo+ID4NCj4gPiArICAgICAgICBzZWxmLmNyZWF0ZV9mbG93X2Nm Z2ZpbGUoKQ0KPiA+ICAgICAgICAgIHNlbGYuY3JlYXRlX3BjYXBfZmlsZV9mcm9tX2ZyYW1lcyhw Y2FwX2ZpbGUsIGZyYW1lcykNCj4gPiAgICAgICAgICBzZWxmLnRlc3Rlci5zZXNzaW9uLmNvcHlf ZmlsZV90byhwY2FwX2ZpbGUpDQo+ID4NCj4gPiAgICAgICAgICAjIFN0YXJ0IGlwX3BpcGVsaW5l IGFwcCBhbmQgc2V0dXAgZGVmYXVsdHMNCj4gPiAgICAgICAgICBzZWxmLnN0YXJ0X2lwX3BpcGVs aW5lKHBvcnRzPXNlbGYucG9ydHNfbWFzaykNCj4gPiAtICAgICAgICBmb3IgY29tbWFuZCBpbiBk ZWZhdWx0X3NldHVwOg0KPiA+IC0gICAgICAgICAgICBzZWxmLnBpcGVsaW5lX2NvbW1hbmQoY29t bWFuZCkNCj4gPiArDQo+ID4gKyAgICAgICAgIyBkZWZhdWx0IHRvIFNJTkswDQo+ID4gKyAgICAg ICAgc2VsZi5waXBlbGluZV9jb21tYW5kKCdwIDEgZmxvdyBhZGQgZGVmYXVsdCAyJykNCj4gPg0K PiA+ICAgICAgICAgICMgQ2hlY2sgdGhhdCBubyB0cmFmZmljIHBhc3MgdGhvdWdoDQo+ID4gICAg ICAgICAgc3RhdHMgPSBzZWxmLnNlbmRfYW5kX3NuaWZmX3BjYXBfZmlsZShwY2FwX2ZpbGUsIGxl bihmcmFtZXMpLA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMSwgMCwgMC4yKQ0KPiA+IC0gICAgICAgIGV4cGVjdGVkID0geyd0eCc6IDAsICdyeCc6 IDB9DQo+ID4gKyAgICAgICAgZXhwZWN0ZWQgPSB7J3J4MCc6IDAsICdyeDEnOiAwfQ0KPiA+ICAg ICAgICAgIHNlbGYuY2hlY2tfcmVzdWx0cyhzdGF0cywgZXhwZWN0ZWQpDQo+ID4NCj4gPiAgICAg ICAgICAjIEFkZCB0aGUgZmxvd3MNCj4gPiAgICAgICAgICBmbG93c19hZGRlZCA9IDANCj4gPiAg ICAgICAgICBmb3IgYWRkcnMgaW4gaXBfYWRkcnM6DQo+ID4gLSAgICAgICAgICAgIHNlbGYucGlw ZWxpbmVfYWRkX2Zsb3coMSwgJzAuMC4wLjAnLCBhZGRycywgMCwgMCkNCj4gPiArICAgICAgICAg ICAgc2VsZi5waXBlbGluZV9hZGRfZmxvdygwLCAnMC4wLjAuMCcsIGFkZHJzLCAwLCAwLA0KPiBm bG93c19hZGRlZCkNCj4gPiAgICAgICAgICAgICAgZmxvd3NfYWRkZWQgKz0gMQ0KPiA+DQo+ID4g ICAgICAgICAgICAgICMgQ2hlY2sgdGhhdCB0cmFmZmljIG1hdGNoaW5nIGZsb3dzIHBhc3MgdGhv dWdoDQo+ID4gICAgICAgICAgICAgIHN0YXRzID0gc2VsZi5zZW5kX2FuZF9zbmlmZl9wY2FwX2Zp bGUocGNhcF9maWxlLA0KPiBsZW4oZnJhbWVzKSwNCj4gPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLCAwLCAwLjIpDQo+ID4gLSAgICAgICAgICAg IGV4cGVjdGVkID0geyd0eCc6IDAsICdyeCc6IGZsb3dzX2FkZGVkfQ0KPiA+ICsgICAgICAgICAg ICBleHBlY3RlZCA9IHsncngwJzogZmxvd3NfYWRkZWQsICdyeDEnOiAwfQ0KPiA+ICAgICAgICAg ICAgICBzZWxmLmNoZWNrX3Jlc3VsdHMoc3RhdHMsIGV4cGVjdGVkKQ0KPiA+DQo+ID4gICAgICAg ICAgIyBSZW1vdmUgZmxvd3MNCj4gPiBAQCAtNDQzLDcgKzQ2NCw3IEBAIGNsYXNzIFRlc3RJUFBp cGVsaW5lKFRlc3RDYXNlKToNCj4gPiAgICAgICAgICAgICAgIyBDaGVjayB0aGF0IHRyYWZmaWMg bWF0Y2hpbmcgZmxvd3MgcGFzcyB0aG91Z2gNCj4gPiAgICAgICAgICAgICAgc3RhdHMgPSBzZWxm LnNlbmRfYW5kX3NuaWZmX3BjYXBfZmlsZShwY2FwX2ZpbGUsDQo+IGxlbihmcmFtZXMpLA0KPiA+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsIDAs IDAuMikNCj4gPiAtICAgICAgICAgICAgZXhwZWN0ZWQgPSB7J3R4JzogMCwgJ3J4JzogZmxvd3Nf YWRkZWR9DQo+ID4gKyAgICAgICAgICAgIGV4cGVjdGVkID0geydyeDAnOiBmbG93c19hZGRlZCwg J3J4MSc6IDB9DQo+ID4gICAgICAgICAgICAgIHNlbGYuY2hlY2tfcmVzdWx0cyhzdGF0cywgZXhw ZWN0ZWQpDQo+ID4NCj4gPiAgICAgICAgICBvdXQgPSBzZWxmLmR1dC5zZW5kX2V4cGVjdCgnZmxv dyBwcmludCcsICdwaXBlbGluZT4nKQ0KPiA+IEBAIC00NTIsNyArNDczLDcgQEAgY2xhc3MgVGVz dElQUGlwZWxpbmUoVGVzdENhc2UpOg0KPiA+ICAgICAgICAgICMgQ2hlY2sgdGhhdCBhZ2FpbiBu byB0cmFmZmljIHBhc3MgdGhvdWdoDQo+ID4gICAgICAgICAgc3RhdHMgPSBzZWxmLnNlbmRfYW5k X3NuaWZmX3BjYXBfZmlsZShwY2FwX2ZpbGUsIGxlbihmcmFtZXMpLA0KPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwgMCwgMC4yKQ0KPiA+IC0gICAg ICAgIGV4cGVjdGVkID0geyd0eCc6IDAsICdyeCc6IDB9DQo+ID4gKyAgICAgICAgZXhwZWN0ZWQg PSB7J3J4MCc6IDAsICdyeDEnOiAwfQ0KPiA+ICAgICAgICAgIHNlbGYuY2hlY2tfcmVzdWx0cyhz dGF0cywgZXhwZWN0ZWQpDQo+ID4NCj4gPiAgICAgICAgICBzZWxmLnF1aXRfaXBfcGlwZWxpbmUo KQ0KPiA+IEBAIC00NjQsOSArNDg1LDggQEAgY2xhc3MgVGVzdElQUGlwZWxpbmUoVGVzdENhc2Up Og0KPiA+ICAgICAgICAgIHBjYXBfZmlsZSA9ICdpcF9waXBlbGluZS5wY2FwJw0KPiA+ICAgICAg ICAgIGZyYW1lX3NpemUgPSA2NA0KPiA+DQo+ID4gLSAgICAgICAgZGVmYXVsdF9zZXR1cCA9IFsn YXJwIGFkZCAwIDAuMC4wLjEgMGE6MGI6MGM6MGQ6MGU6MGYnLA0KPiA+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgJ2FycCBhZGQgMSAwLjEyOC4wLjEgMWE6MWI6MWM6MWQ6MWU6MWYnLA0KPiA+ IC0gICAgICAgICAgICAgICAgICAgICAgICAgJ2Zsb3cgYWRkIGFsbCddDQo+ID4gKyAgICAgICAg ZGVmYXVsdF9zZXR1cCA9IFsncCAxIGFycCBhZGQgMCAwLjAuMC4xIDBhOjBiOjBjOjBkOjBlOjBm JywNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICdwIDEgYXJwIGFkZCAxIDAuMTI4LjAu MSAxYToxYjoxYzoxZDoxZToxZiddDQo+ID4NCj4gPiAgICAgICAgICBpcF9hZGRycyA9IFsNCj4g PiAgICAgICAgICAgICAgJzAuMC4wLjAnLCAnMC4wLjAuMScsICcwLjAuMC4xMjcnLCAnMC4wLjAu MTI4JywgJzAuMC4wLjI1NScsDQo+ID4gQEAgLTQ4Myw2ICs1MDMsNyBAQCBjbGFzcyBUZXN0SVBQ aXBlbGluZShUZXN0Q2FzZSk6DQo+ID4gICAgICAgICAgc2VsZi5jcmVhdGVfcGNhcF9maWxlX2Zy b21fZnJhbWVzKHBjYXBfZmlsZSwgZnJhbWVzKQ0KPiA+ICAgICAgICAgIHNlbGYudGVzdGVyLnNl c3Npb24uY29weV9maWxlX3RvKHBjYXBfZmlsZSkNCj4gPg0KPiA+ICsgICAgICAgIHNlbGYuY3Jl YXRlX3JvdXRpbmdfY2ZnZmlsZSgpDQo+ID4gICAgICAgICAgIyBTdGFydCBpcF9waXBlbGluZSBh cHAgYW5kIHNldHVwIGRlZmF1bHRzDQo+ID4gICAgICAgICAgc2VsZi5zdGFydF9pcF9waXBlbGlu ZShwb3J0cz1zZWxmLnBvcnRzX21hc2spDQo+ID4gICAgICAgICAgZm9yIGNvbW1hbmQgaW4gZGVm YXVsdF9zZXR1cDoNCj4gPiBAQCAtNDkxLDcgKzUxMiw3IEBAIGNsYXNzIFRlc3RJUFBpcGVsaW5l KFRlc3RDYXNlKToNCj4gPiAgICAgICAgICAjIENoZWNrIHRoYXQgbm8gdHJhZmZpYyBwYXNzIHRo b3VnaA0KPiA+ICAgICAgICAgIHN0YXRzID0gc2VsZi5zZW5kX2FuZF9zbmlmZl9wY2FwX2ZpbGUo cGNhcF9maWxlLCBsZW4oZnJhbWVzKSwNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDEsIDAsIDAuMikNCj4gPiAtICAgICAgICBleHBlY3RlZCA9IHsn dHgnOiAwLCAncngnOiAwfQ0KPiA+ICsgICAgICAgIGV4cGVjdGVkID0geydyeDAnOiAwLCAncngx JzogMH0NCj4gPiAgICAgICAgICBzZWxmLmNoZWNrX3Jlc3VsdHMoc3RhdHMsIGV4cGVjdGVkKQ0K PiA+DQo+ID4gICAgICAgICAgIyBBZGQgdGhlIHJvdXRlcw0KPiA+IEBAIC01MDQsNyArNTI1LDcg QEAgY2xhc3MgVGVzdElQUGlwZWxpbmUoVGVzdENhc2UpOg0KPiA+ICAgICAgICAgICAgICBzdGF0 cyA9IHNlbGYuc2VuZF9hbmRfc25pZmZfcGNhcF9maWxlKHBjYXBfZmlsZSwNCj4gbGVuKGZyYW1l cyksDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMSwgMCwgMC4yKQ0KPiA+DQo+ID4gLSAgICAgICAgICAgIGV4cGVjdGVkID0geyd0eCc6IDAs ICdyeCc6IHJvdXRlc19hZGRlZH0NCj4gPiArICAgICAgICAgICAgZXhwZWN0ZWQgPSB7J3J4MCc6 IHJvdXRlc19hZGRlZCwgJ3J4MSc6IDB9DQo+ID4gICAgICAgICAgICAgIHNlbGYuY2hlY2tfcmVz dWx0cyhzdGF0cywgZXhwZWN0ZWQpDQo+ID4NCj4gPiAgICAgICAgICAjIFJlbW92ZSByb3V0ZXMN Cj4gPiBAQCAtNTE1LDcgKzUzNiw3IEBAIGNsYXNzIFRlc3RJUFBpcGVsaW5lKFRlc3RDYXNlKToN Cj4gPiAgICAgICAgICAgICAgIyBDaGVjayB0aGF0IHRyYWZmaWMgbWF0Y2hpbmcgZmxvd3MgcGFz cyB0aG91Z2gNCj4gPiAgICAgICAgICAgICAgc3RhdHMgPSBzZWxmLnNlbmRfYW5kX3NuaWZmX3Bj YXBfZmlsZShwY2FwX2ZpbGUsDQo+IGxlbihmcmFtZXMpLA0KPiA+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsIDAsIDAuMikNCj4gPiAtICAgICAg ICAgICAgZXhwZWN0ZWQgPSB7J3R4JzogMCwgJ3J4Jzogcm91dGVzX2FkZGVkfQ0KPiA+ICsgICAg ICAgICAgICBleHBlY3RlZCA9IHsncngwJzogcm91dGVzX2FkZGVkLCAncngxJzogMH0NCj4gPiAg ICAgICAgICAgICAgc2VsZi5jaGVja19yZXN1bHRzKHN0YXRzLCBleHBlY3RlZCkNCj4gPg0KPiA+ ICAgICAgICAgIG91dCA9IHNlbGYuZHV0LnNlbmRfZXhwZWN0KCdyb3V0ZSBwcmludCcsICdwaXBl bGluZT4nKQ0KPiA+IEBAIC01MjQsNyArNTQ1LDcgQEAgY2xhc3MgVGVzdElQUGlwZWxpbmUoVGVz dENhc2UpOg0KPiA+ICAgICAgICAgICMgQ2hlY2sgdGhhdCBhZ2FpbiBubyB0cmFmZmljIHBhc3Mg dGhvdWdoDQo+ID4gICAgICAgICAgc3RhdHMgPSBzZWxmLnNlbmRfYW5kX3NuaWZmX3BjYXBfZmls ZShwY2FwX2ZpbGUsIGxlbihmcmFtZXMpLA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMSwgMCwgMC4yKQ0KPiA+IC0gICAgICAgIGV4cGVjdGVkID0g eyd0eCc6IDAsICdyeCc6IDB9DQo+ID4gKyAgICAgICAgZXhwZWN0ZWQgPSB7J3J4MCc6IDAsICdy eDEnOiAwfQ0KPiA+ICAgICAgICAgIHNlbGYuY2hlY2tfcmVzdWx0cyhzdGF0cywgZXhwZWN0ZWQp DQo+ID4NCj4gPiAgICAgICAgICBzZWxmLnF1aXRfaXBfcGlwZWxpbmUoKQ0KPiA+IEBAIC01Mzks NSArNTYwLDcgQEAgY2xhc3MgVGVzdElQUGlwZWxpbmUoVGVzdENhc2UpOg0KPiA+ICAgICAgICAg ICIiIg0KPiA+ICAgICAgICAgIFJ1biBhZnRlciBlYWNoIHRlc3Qgc3VpdGUuDQo+ID4gICAgICAg ICAgIiIiDQo+ID4gKyAgICAgICAgc2VsZi5kdXQuc2VuZF9leHBlY3QoInJtIC90bXAvaXBfcGlw ZWxpbmUuY2ZnIiwgIiMiKQ0KPiA+ICsgICAgICAgIHNlbGYuZHV0LnNlbmRfZXhwZWN0KCJybSAv dG1wL2lwX3BpcGVsaW5lLmNmZy5vdXQiLCAiIyIpDQoNCkNhbid0IHdvcmsgb24gbXkgcGxhdGZv cm0sIHBsZWFzZSBhZGQgZm9yY2Ugb3B0aW9uLiANCg0KPiA+ICAgICAgICAgIG91dCA9IHNlbGYu ZHV0LmJ1aWxkX2RwZGtfYXBwcygiLi9leGFtcGxlcy9pcF9waXBlbGluZSIpDQo+ID4gICAgICAg ICAgc2VsZi52ZXJpZnkoIkVycm9yIiBub3QgaW4gb3V0LCAiQ29tcGlsYXRpb24gZXJyb3IiKQ0K PiA+IC0tDQo+ID4gMS44LjMuMQ0KPiA+DQo=