From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 24B232B98 for ; Fri, 5 Aug 2016 04:29:08 +0200 (CEST) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga103.jf.intel.com with ESMTP; 04 Aug 2016 19:29:07 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.28,471,1464678000"; d="scan'208";a="1035438889" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga002.fm.intel.com with ESMTP; 04 Aug 2016 19:29:02 -0700 Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.248.2; Thu, 4 Aug 2016 19:29:00 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.181]) by shsmsx102.ccr.corp.intel.com ([169.254.2.147]) with mapi id 14.03.0248.002; Fri, 5 Aug 2016 10:28:25 +0800 From: "Liu, Yong" To: "Xu, Qian Q" , "dts@dpdk.org" CC: "Xu, Qian Q" Thread-Topic: [dts] [PATCH] update vhost-user live migration script and test plan Thread-Index: AQHR7r8oytBT964SvEGYwwdlx9BH6KA5os9w Date: Fri, 5 Aug 2016 02:28:24 +0000 Message-ID: <86228AFD5BCD8E4EBFD2B90117B5E81E22269A81@SHSMSX103.ccr.corp.intel.com> References: <1470363258-13027-1-git-send-email-qian.q.xu@intel.com> In-Reply-To: <1470363258-13027-1-git-send-email-qian.q.xu@intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZTgzZDRhN2UtMWM4NC00OWUzLWFmZjAtY2NmYmVkNDkzZmMzIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6IldIcW9CYStmRGNXTDdyTE50M0NkWGQ3M0NCcFoyakJNakdVK2kydnc4M0U9In0= x-ctpclassification: CTP_IC 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] update vhost-user live migration script and test plan 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: Fri, 05 Aug 2016 02:29:10 -0000 UWlhbiwgb25lIGNvbW1lbnQgYmVsb3cuDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4gRnJvbTogZHRzIFttYWlsdG86ZHRzLWJvdW5jZXNAZHBkay5vcmddIE9uIEJlaGFsZiBPZiBR aWFuIFh1DQo+IFNlbnQ6IEZyaWRheSwgQXVndXN0IDA1LCAyMDE2IDEwOjE0IEFNDQo+IFRvOiBk dHNAZHBkay5vcmcNCj4gQ2M6IFh1LCBRaWFuIFENCj4gU3ViamVjdDogW2R0c10gW1BBVENIXSB1 cGRhdGUgdmhvc3QtdXNlciBsaXZlIG1pZ3JhdGlvbiBzY3JpcHQgYW5kIHRlc3QNCj4gcGxhbg0K PiANCj4gVXBkYXRlIHZob3N0LXVzZXIgbGl2ZSBtaWdyYXRpb24gc2NyaXB0IGJhc2VkIG9uIHRl c3RwbWQgYXMNCj4gdmhvc3QgYmFja2VuZCBhcHBsaWNhdGlvbiBhbmQgc29tZSBtaW5vciBjaGFu Z2VzLg0KPiAxLiBVcGRhdGUgdGhlIGJhY2tlbmQgYXBwbGljYXRpb24gZnJvbSB2aG9zdC1zd2l0 Y2ggc2FtcGxlIHRvIHRlc3RwbWQNCj4gc2luY2UNCj4gc29tZSBzd2l0Y2ggd2lsbCBmaWx0ZXIg VkxBTiBwYWNrZXRzLiBUaGUgY29tbWFuZCBsaW5lIGFuZCB0aGUgb3V0cHV0DQo+IGNoZWNrDQo+ IGhhcyBiZWVuIHVwZGF0ZWQgYWNjb3JkaW5nIHRvIHRlc3RwbWQgYXBwbGljYXRpb24uDQo+IDIu IFNldCB0aGUgcWVtdSBwYXRoIGZvciB0aGlzIGNhc2UuDQo+IDMucmVtb3ZlIFZMQU4gdGFnIGlu IHRoZSB0cmFmZmljIHNldHRpbmdzLg0KPiA0LiBDaGVjayBpZiB0aGUgbWlncmF0aW9uIGlzIGZh aWxlZCBvciBub3QuDQo+IDUuIFVwZGF0ZSB0aGUgcWVtdSBtb25pdG9yIHF1aXQgY2hlY2sgcGFy dC4NCj4gDQo+IFVwZGF0ZSB2aG9zdC11c2VyIGxpdmUgbWlncmF0aW9uIHRlc3QgcGxhbg0KPiAx LiBBZGQgbW9yZSBkZXRhaWxzIGFib3V0IG5mcyBzZXR0aW5ncy4NCj4gMi4gQ2hhbmdlIHRoZSB2 aG9zdC11c2VyIGJhY2tlbmQgYXBwbGljYXRpb24gdG8gdGVzdHBtZCBhbmQgdGhlIGxhdW5jaA0K PiBzdGVwLg0KPiAzLiBBZGQgbW9yZSBkZXRhaWxzIGFib3V0IFZNIGFjY2Vzcywgc3VjaCBhcyB0 ZWxuZXQsIHNzaCwgc2NwLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogUWlhbiBYdSA8cWlhbi5xLnh1 QGludGVsLmNvbT4NCj4gDQo+IGRpZmYgLS1naXQgYS90ZXN0X3BsYW5zL3Zob3N0X3VzZXJfbGl2 ZV9taWdyYXRpb25fdGVzdF9wbGFuLnJzdA0KPiBiL3Rlc3RfcGxhbnMvdmhvc3RfdXNlcl9saXZl X21pZ3JhdGlvbl90ZXN0X3BsYW4ucnN0DQo+IGluZGV4IDhkNGI1YzkuLjQxMDUzZTkgMTAwNjQ0 DQo+IC0tLSBhL3Rlc3RfcGxhbnMvdmhvc3RfdXNlcl9saXZlX21pZ3JhdGlvbl90ZXN0X3BsYW4u cnN0DQo+ICsrKyBiL3Rlc3RfcGxhbnMvdmhvc3RfdXNlcl9saXZlX21pZ3JhdGlvbl90ZXN0X3Bs YW4ucnN0DQo+IEBAIC0zMywxMjIgKzMzLDE3NCBAQA0KPiAgPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09DQo+ICBEUERLIHZob3N0IHVzZXIgbGl2ZSBtaWdyYXRpb24NCj4gID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQ0KPiAtVGhpcyBmZWF0dXJlIGlzIHRvIG1ha2Ugc3VyZSB2 aG9zdCB1c2VyIGxpdmUgbWlncmF0aW9uIHdvcmtzIGJhc2VkIG9uDQo+IHZob3N0LXN3aXRjaC4N Cj4gK1RoaXMgZmVhdHVyZSBpcyB0byBtYWtlIHN1cmUgdmhvc3QgdXNlciBsaXZlIG1pZ3JhdGlv biB3b3JrcyBiYXNlZCBvbg0KPiB0ZXN0cG1kLg0KPiANCj4gIFByZXJlcXVpc2l0ZXMNCj4gIC0t LS0tLS0tLS0tLS0NCj4gLUNvbm5lY3QgdGhyZWUgcG9ydHMgdG8gb25lIHN3aXRjaCwgdGhlc2Ug dGhyZWUgcG9ydHMgYXJlIGZyb20gSG9zdCwNCj4gQmFja3VwDQo+IC1ob3N0IGFuZCB0ZXN0ZXIu DQo+ICtIVyBzZXR1cA0KPiANCj4gLVN0YXJ0IG5mcyBzZXJ2aWNlIGFuZCBleHBvcnQgbmZzIHRv IGJhY2t1cCBob3N0IElQOg0KPiArMS4gQ29ubmVjdCB0aHJlZSBwb3J0cyB0byBvbmUgc3dpdGNo LCB0aGVzZSB0aHJlZSBwb3J0cyBhcmUgZnJvbSBIb3N0LA0KPiBCYWNrdXANCj4gK2hvc3QgYW5k IHRlc3Rlci4gRW5zdXJlIHRoZSB0ZXN0ZXIgY2FuIHNlbmQgcGFja2V0cyBvdXQsIHRoZW4gaG9z dC9iYWNrdXANCj4gc2VydmVyIHBvcnRzDQo+ICtjYW4gcmVjZWl2ZSB0aGVzZSBwYWNrZXRzLg0K PiArMi4gQmV0dGVyIHRvIGhhdmUgMiBzaW1pbGFyIG1hY2hpbmUgd2l0aCB0aGUgc2FtZSBPUy4N Cj4gKw0KPiArTkZTIGNvbmZpZ3VyYXRpb24NCj4gKzEuIE1ha2Ugc3VyZSBob3N0IG5mc2QgbW9k dWxlIHVwZGF0ZWQgdG8gdjQgdmVyc2lvbih2MiBub3Qgc3VwcG9ydCBmaWxlID4NCj4gNEcpDQo+ ICsNCj4gKzIuIFN0YXJ0IG5mcyBzZXJ2aWNlIGFuZCBleHBvcnQgbmZzIHRvIGJhY2t1cCBob3N0 IElQOg0KPiAgICAgIGhvc3QjIHNlcnZpY2UgcnBjYmluZCBzdGFydA0KPiAtCWhvc3QjIHNlcnZp Y2UgbmZzIHN0YXJ0DQo+IC0JaG9zdCMgY2F0IC9ldGMvZXhwb3J0cw0KPiArCWhvc3QjIHNlcnZp Y2UgbmZzLXNlcnZlciBzdGFydA0KPiArCWhvc3QjIHNlcnZpY2UgbmZzLW1vdW50ZCBzdGFydA0K PiArCWhvc3QjIHN5c3RlbWN0cmwgc3RvcCBmaXJld2FsbGQuc2VydmljZQ0KPiArCWhvc3QjIHZp bSAvZXRjL2V4cG9ydHMNCj4gICAgICBob3N0IyAvaG9tZS92bS1pbWFnZSBiYWNrdXAtaG9zdC1p cChydyxzeW5jLG5vX3Jvb3Rfc3F1YXNoKQ0KPiArDQo+ICszLiBNb3VudCBob3N0IG5mcyBmb2xk ZXIgb24gYmFja3VwIGhvc3Q6DQo+ICsJYmFja3VwIyBtb3VudCAtdCBuZnMgLW8gbm9sb2NrLHZl cnM9NCAgaG9zdC1pcDovaG9tZS92bS1pbWFnZQ0KPiAvbW50L25mcw0KPiANCj4gLU1ha2Ugc3Vy ZSBob3N0IG5mc2QgbW9kdWxlIHVwZGF0ZWQgdG8gdjQgdmVyc2lvbih2MiBub3Qgc3VwcG9ydCBm aWxlID4gNEcpDQo+ICtPbiBob3N0IHNlcnZlciBzaWRlOg0KPiANCj4gLUNyZWF0ZSBlbm91Z2gg aHVnZXBhZ2VzIGZvciB2aG9zdC1zd2l0Y2ggYW5kIHFlbXUgYmFja2VuZCBtZW1vcnkuDQo+ICsx LiBDcmVhdGUgZW5vdWdoIGh1Z2VwYWdlcyBmb3Igdmhvc3Qtc3dpdGNoIGFuZCBxZW11IGJhY2tl bmQgbWVtb3J5Lg0KPiAgICAgIGhvc3QjIGVjaG8gNDA5NiA+IC9zeXMva2VybmVsL21tL2h1Z2Vw YWdlcy9odWdlcGFnZXMtDQo+IDIwNDhrQi9ucl9odWdlcGFnZXMNCj4gICAgICBob3N0IyBtb3Vu dCAtdCBodWdldGxiZnMgaHVnZXRsYmZzIC9tbnQvaHVnZQ0KPiANCj4gLUJpbmQgaG9zdCBwb3J0 IHRvIGlnYl91aW8gYW5kIHN0YXJ0IHZob3N0IHN3aXRjaDoNCj4gLSAgICBob3N0IyB2aG9zdC1z d2l0Y2ggLWMgZiAtbiA0IC0tc29ja2V0LW1lbSAxMDI0IC0tIC1wIDB4MQ0KPiAtDQo+IC1TdGFy dCBob3N0IHFlbXUgcHJvY2VzczoNCj4gLQlob3N0IyBxZW11LXN5c3RlbS14ODZfNjQgLW5hbWUg aG9zdCAtZW5hYmxlLWt2bSAtbSAyMDQ4IFwNCj4gLQktZHJpdmUgZmlsZT0vaG9tZS92bS1pbWFn ZS92bTAuaW1nLGZvcm1hdD1yYXcgXA0KPiAtCS1zZXJpYWwgdGVsbmV0OmxvY2FsaG9zdDo1NTU2 LHNlcnZlcixub3dhaXQgXA0KPiAtCS1jcHUgaG9zdCAtc21wIDQgXA0KPiAtCS1uZXQgbmljLG1v ZGVsPWUxMDAwIFwNCj4gLQktbmV0IHVzZXIsaG9zdGZ3ZD10Y3A6MTI3LjAuMC4xOjU1NTUtOjIy IFwNCj4gLQktY2hhcmRldiBzb2NrZXQsaWQ9Y2hhcjEscGF0aD0vcm9vdC9kcGRrX29yZy92aG9z dC1uZXQgXA0KPiAtCS1uZXRkZXYgdHlwZT12aG9zdC11c2VyLGlkPW15bmV0MSxjaGFyZGV2PWNo YXIxLHZob3N0Zm9yY2UgXA0KPiAtCS1kZXZpY2UgdmlydGlvLW5ldC1wY2ksbWFjPTAwOjAwOjAw OjAwOjAwOjAxLG5ldGRldj1teW5ldDEgXA0KPiAtCS1vYmplY3QgbWVtb3J5LWJhY2tlbmQtZmls ZSxpZD1tZW0sc2l6ZT0yMDQ4TSxtZW0tDQo+IHBhdGg9L21udC9odWdlLHNoYXJlPW9uIFwNCj4g LQktbnVtYSBub2RlLG1lbWRldj1tZW0gLW1lbS1wcmVhbGxvYyBcDQo+IC0JLW1vbml0b3IgdW5p eDovdG1wL2hvc3Quc29jayxzZXJ2ZXIsbm93YWl0IFwNCj4gLQktZGFlbW9uaXplDQo+IC0NCj4g LVdhaXQgZm9yIHZpcnR1YWwgbWFjaGluZSBzdGFydCB1cCBhbmQgdXAgdmlydElPIGludGVyZmFj ZToNCj4gLQlob3N0LXZtIyBpZmNvbmZpZyBldGgxIHVwDQo+IC0NCj4gLUNoZWNrIHZob3N0LXN3 aXRjaCBjb25uZWN0ZWQgYW5kIHNlbmQgcGFja2V0IHdpdGggbWFjK3ZsYW4gY2FuIHJlY2VpdmVk DQo+IGJ5DQo+IC12aXJ0SU8gaW50ZXJmYWNlIGluIFZNOg0KPiAtCVZIT1NUX0RBVEE6ICgwKSBt YWMgMDA6MDA6MDA6MDA6MDA6MDEgYW5kIHZsYW4gMTAwMCByZWdpc3RlcmVkDQo+IC0NCj4gLU1v dW50IGhvc3QgbmZzIGZvbGRlciBvbiBiYWNrdXAgaG9zdDoNCj4gLQliYWNrdXAjIG1vdW50IC10 IG5mcyAtbyBub2xvY2ssdmVycz00ICBob3N0LWlwOi9ob21lL3ZtLWltYWdlDQo+IC9tbnQvbmZz DQo+IC0NCj4gLUNyZWF0ZSBlbm91Z2ggaHVnZXBhZ2VzIGZvciB2aG9zdC1zd2l0Y2ggYW5kIHFl bXUgYmFja2VuZCBtZW1vcnkuDQo+IC0gICAgYmFja3VwIyBlY2hvIDQwOTYgPiAvc3lzL2tlcm5l bC9tbS9odWdlcGFnZXMvaHVnZXBhZ2VzLQ0KPiAyMDQ4a0IvbnJfaHVnZXBhZ2VzDQo+IC0gICAg YmFja3VwIyBtb3VudCAtdCBodWdldGxiZnMgaHVnZXRsYmZzIC9tbnQvaHVnZQ0KPiAtDQo+IC1C aW5kIGJhY2t1cCBob3N0IHBvcnQgdG8gaWdiX3VpbyBhbmQgc3RhcnQgdmhvc3Qgc3dpdGNoOg0K PiAtICAgIGJhY2t1cCMgdmhvc3Qtc3dpdGNoIC1jIGYgLW4gNCAtLXNvY2tldC1tZW0gMTAyNCAt LSAtcCAweDENCj4gLQ0KPiAtU3RhcnQgYmFja3VwIGhvc3QgcWVtdSB3aXRoIGFkZGl0aW9uYWwg cGFyYW1ldGVyOg0KPiAtCS1pbmNvbWluZyB0Y3A6MDo0NDQ0DQo+IC0NCj4gLVRlc3QgQ2FzZSAx OiBtaWdyYXRlIHdpdGgga2VybmVsIGRyaXZlcg0KPiAtPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09DQo+ICsyLiBCaW5kIGhvc3QgcG9ydCB0byBpZ2JfdWlvIGFuZCBzdGFy dCB0ZXN0cG1kIHdpdGggdmhvc3QgcG9ydDoNCj4gKyAgICAjLi90b29scy9kcGRrLWRldmJpbmQu cHkgLWIgaWdiX3VpbyA4MzowMC4xDQo+ICsgICAgIy4veDg2XzY0LW5hdGl2ZS1saW51eGFwcC1n Y2MvYXBwL3Rlc3RwbWQgLWMgMHhjMDAwMCAtbiA0IC0tdmRldg0KPiAnZXRoX3Zob3N0MCxpZmFj ZT0uL3Zob3N0LW5ldCxxdWV1ZXM9MScgLS1zb2NrZXQtbWVtIDEwMjQsMTAyNCAtLSAtaQ0KPiAr ICAgIHRlc3RwbWQ+c3RhcnQNCj4gKw0KPiArMy4gU3RhcnQgVk0gb24gaG9zdCwgaGVyZSB3ZSBz ZXQgNTQzMiBhcyB0aGUgc2VyaWFsIHBvcnQsIDMzMzMgYXMgdGhlDQo+IHFlbXUgbW9uaXRvciBw b3J0LCA1NTU1IGFzIHRoZSBTU0ggcG9ydC4NCj4gKyAgICB0YXNrc2V0IC1jIDIyLTIzIC9ob21l L3F4dTEwL3FlbXUtMi42LjAveDg2XzY0LXNvZnRtbXUvcWVtdS1zeXN0ZW0tDQo+IHg4Nl82NCAt bmFtZSB2bTFob3N0IFwNCj4gKyAgICAtZW5hYmxlLWt2bSAtbSAyMDQ4IC1vYmplY3QgbWVtb3J5 LWJhY2tlbmQtDQo+IGZpbGUsaWQ9bWVtLHNpemU9MjA0OE0sbWVtLXBhdGg9L21udC9odWdlLHNo YXJlPW9uIFwNCj4gKyAgICAtbnVtYSBub2RlLG1lbWRldj1tZW0gLW1lbS1wcmVhbGxvYyAtc21w IDIgLWNwdSBob3N0IC1kcml2ZQ0KPiBmaWxlPS9ob21lL3F4dTEwL2ltZy92bTEuaW1nIFwNCj4g KyAgICAtbmV0IG5pYyxtb2RlbD1lMTAwMCxhZGRyPTFmIC1uZXQgdXNlcixob3N0ZndkPXRjcDox MjcuMC4wLjE6NTU1NS06MjINCj4gXA0KPiArICAgIC1jaGFyZGV2IHNvY2tldCxpZD1jaGFyMCxw YXRoPS4vdmhvc3QtbmV0IFwNCj4gKyAgICAtbmV0ZGV2IHR5cGU9dmhvc3QtdXNlcixpZD1uZXRk ZXYwLGNoYXJkZXY9Y2hhcjAsdmhvc3Rmb3JjZSBcDQo+ICsgICAgLWRldmljZSB2aXJ0aW8tbmV0 LXBjaSxuZXRkZXY9bmV0ZGV2MCxtYWM9NTI6NTQ6MDA6MDA6MDA6MDEgXA0KPiArICAgIC1tb25p dG9yIHRlbG5ldDo6MzMzMyxzZXJ2ZXIsbm93YWl0IFwNCj4gKyAgICAtc2VyaWFsIHRlbG5ldDps b2NhbGhvc3Q6NTQzMixzZXJ2ZXIsbm93YWl0IFwNCj4gKyAgICAtZGFlbW9uaXplDQo+ICsNCj4g K09uIHRoZSBiYWNrdXAgc2VydmVyLCBydW4gdGhlIHZob3N0IHRlc3RwbWQgb24gdGhlIGhvc3Qg YW5kIGxhdW5jaCBWTToNCj4gKw0KPiArNC4gIFNldCBodWdlIHBhZ2UsIGJpbmQgb25lIHBvcnQg dG8gaWdiX3VpbyBhbmQgcnVuIHRlc3RwbWQgb24gdGhlIGJhY2t1cA0KPiBzZXJ2ZXIsIHRoZSBj b21tYW5kIGlzIHZlcnkgc2ltaWxhciB0byBob3N0Og0KPiArICAgIGJhY2t1cCBzZXJ2ZXIjIGVj aG8gNDA5NiA+IC9zeXMva2VybmVsL21tL2h1Z2VwYWdlcy9odWdlcGFnZXMtDQo+IDIwNDhrQi9u cl9odWdlcGFnZXMNCj4gKyAgICBiYWNrdXAgc2VydmVyIyBtb3VudCAtdCBodWdldGxiZnMgaHVn ZXRsYmZzIC9tbnQvaHVnZQ0KPiArICAgIGJhY2t1cCBzZXJ2ZXIjLi90b29scy9kcGRrLWRldmJp bmQucHkgLWIgaWdiX3VpbyA4MTowMC4xDQo+ICsgICAgYmFja3VwIHNlcnZlciMuL3g4Nl82NC1u YXRpdmUtbGludXhhcHAtZ2NjL2FwcC90ZXN0cG1kIC1jIDB4YzAwMDAgLW4NCj4gNCAtLXZkZXYg J2V0aF92aG9zdDAsaWZhY2U9Li92aG9zdC1uZXQscXVldWVzPTEnIC0tc29ja2V0LW1lbSAxMDI0 LDEwMjQgLS0NCj4gLWkNCj4gKyAgICB0ZXN0cG1kPnN0YXJ0DQo+ICsNCj4gKzUuIExhdW5jaCBW TSBvbiB0aGUgYmFja3VwIHNlcnZlciwgYW5kIHRoZSBzY3JpcHQgaXMgc2ltaWxhciB0byBob3N0 LCBidXQNCj4gbm90ZSB0aGUgMiBkaWZmZXJlbmNlczoNCj4gKyAgIDEuIG5lZWQgYWRkICIgLWlu Y29taW5nIHRjcDowOjQ0NDQgIiBmb3IgbGl2ZSBtaWdyYXRpb24uDQo+ICsgICAyLiBuZWVkIG1h a2Ugc3VyZSB0aGUgVk0gaW1hZ2UgaXMgdGhlIE5GUyBtb3VudGVkIGZvbGRlciwgVk0gaW1hZ2Ug aXMNCj4gdGhlIGV4YWN0IG9uZSBvbiBob3N0IHNlcnZlci4NCj4gKw0KPiArICAgQmFja3VwIHNl cnZlciAjDQo+ICsgICAvaG9tZS9xeHUxMC9xZW11LTIuNi4wL3g4Nl82NC1zb2Z0bW11L3FlbXUt c3lzdGVtLXg4Nl82NCAtbmFtZSB2bTIgXA0KPiArICAgLWVuYWJsZS1rdm0gLW0gMjA0OCAtb2Jq ZWN0IG1lbW9yeS1iYWNrZW5kLWZpbGUsaWQ9bWVtLHNpemU9MjA0OE0sbWVtLQ0KPiBwYXRoPS9t bnQvaHVnZSxzaGFyZT1vbiBcDQo+ICsgICAtbnVtYSBub2RlLG1lbWRldj1tZW0gLW1lbS1wcmVh bGxvYyAtc21wIDQgLWNwdSBob3N0IC1kcml2ZQ0KPiBmaWxlPS9tbnQvbmZzL3ZtMS5pbWcgXA0K PiArICAgLW5ldCBuaWMsbW9kZWw9ZTEwMDAsYWRkcj0xZiAtbmV0IHVzZXIsaG9zdGZ3ZD10Y3A6 MTI3LjAuMC4xOjU1NTUtOjIyDQo+IFwNCj4gKyAgIC1jaGFyZGV2IHNvY2tldCxpZD1jaGFyMCxw YXRoPS4vdmhvc3QtbmV0IFwNCj4gKyAgIC1uZXRkZXYgdHlwZT12aG9zdC11c2VyLGlkPW5ldGRl djAsY2hhcmRldj1jaGFyMCx2aG9zdGZvcmNlIFwNCj4gKyAgIC1kZXZpY2UgdmlydGlvLW5ldC1w Y2ksbmV0ZGV2PW5ldGRldjAsbWFjPTUyOjU0OjAwOjAwOjAwOjAxIFwNCj4gKyAgIC1tb25pdG9y IHRlbG5ldDo6MzMzMyxzZXJ2ZXIsbm93YWl0IFwNCj4gKyAgIC1zZXJpYWwgdGVsbmV0OmxvY2Fs aG9zdDo1NDMyLHNlcnZlcixub3dhaXQgXA0KPiArICAgLWluY29taW5nIHRjcDowOjQ0NDQgXA0K PiArICAgLWRhZW1vbml6ZQ0KPiArDQo+ICsNCj4gK1Rlc3QgQ2FzZSAxOiBtaWdyYXRlIHdpdGgg dmlydGlvLXBtZA0KPiArPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ICBN YWtlIHN1cmUgYWxsIFByZXJlcXVpc2l0ZXMgaGFzIGJlZW4gZG9uZQ0KPiAtMS4gTG9naW4gaW50 byBob3N0IHZpcnR1YWwgbWFjaGluZSBhbmQgY2FwdHVyZSBpbmNvbWluZyBwYWNrZXRzLg0KPiAt CWhvc3QjIHRlbG5ldCBsb2NhbGhvc3QgNTU1Ng0KPiAtCWhvc3Qgdm0jIGlmY29uZmlnIGV0aDEg dXANCj4gDQo+IC0yLiBTZW5kIGNvbnRpbm91cyBwYWNrZXRzIHdpdGggbWFjKDAwOjAwOjAwOjAw OjAwOjAxKSBhbmQgdmxhbigxMDAwKQ0KPiArNi4gU1NIIHRvIFZNIGFuZCBzY3AgdGhlIERQREsg Zm9sZGVyIGZyb20gaG9zdCB0byBWTToNCj4gKyAgICBob3N0ICMgc3NoIC1wIDU1NTUgbG9jYWxo b3N0LCB0aGVuIGlucHV0IHBhc3N3b3JkIHRvIGxvZyBpbi4NCj4gKwlob3N0ICMgc2NwICAtUCA1 NTU1IC1yIDxkcGRrX2ZvbGRlcj4vICBsb2NhbGhvc3Q6L3Jvb3QsIHRoZW4gaW5wdXQNCj4gcGFz c3dvcmQgdG8gbGV0IHRoZSBmaWxlIHRyYW5zZmVyLg0KPiArDQo+ICs3LiBUZWxuZXQgdGhlIHNl cmlhbCBwb3J0IGFuZCBydW4gdGVzdHBtZCBpbiBWTToNCj4gKw0KPiArICAgIGhvc3QgIyB0ZWxu ZXQgbG9jYWxob3N0IDU0MzINCj4gKwlJbnB1dCBFbnRlciwgdGhlbiBsb2cgaW4gdG8gVk0NCj4g KwlJZiBuZWVkIGxlYXZlIHRoZSBzZXNzaW9uLCBpbnB1dCAiQ1RSTCIgKyAiXSIsIHRoZW4gcXVp dCB0aGUgdGVsbmV0DQo+IHNlc3Npb24uDQo+ICsJT24gdGhlIEhvc3Qgc2VydmVyIFZNLCBydW4g YmVsb3cgY29tbWFuZHMgdG8gbGF1bmNoIHRlc3RwbWQNCj4gKwlob3N0IHZtICMNCj4gKwljZCAv cm9vdC9kcGRrDQo+ICsgICAgbW9kcHJvYmUgdWlvDQo+ICsgICAgaW5zbW9kIC4veDg2XzY0LW5h dGl2ZS1saW51eGFwcC1nY2Mva21vZC9pZ2JfdWlvLmtvDQo+ICsgICAgLi90b29scy9kcGRrX25p Y19iaW5kLnB5IC0tYmluZD1pZ2JfdWlvIDAwOjAzLjANCj4gKyAgICBlY2hvIDEwMjQgPiAvc3lz L2tlcm5lbC9tbS9odWdlcGFnZXMvaHVnZXBhZ2VzLTIwNDhrQi9ucl9odWdlcGFnZXMNCj4gKyAg ICAuL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2FwcC90ZXN0cG1kIC1jIDB4MyAtbiA0IC0t IC1pDQo+ICsJPnNldCBmd2Qgcnhvbmx5DQo+ICsJPnNldCB2ZXJib3NlIDENCj4gKwk+c3RhcnQg dHhfZmlyc3QNCj4gKw0KPiArOC4gIENoZWNrIGhvc3Qgdmhvc3QgcG1kIGNvbm5lY3Qgd2l0aCBW TeKAmXMgdmlydGlvIGRldmljZToNCj4gKyAgICB0ZXN0cG1kPiBob3N0IHRlc3RwbWQgbWVzc2Fn ZSBmb3IgY29ubmVjdGlvbg0KPiArDQo+ICs5LiAJU2VuZCBjb250aW51b3VzIHBhY2tldHMgd2l0 aCB0aGUgcGh5c2ljYWwgcG9ydCdzIG1hYyhlLmc6DQo+IDkwOkUyOkJBOjY5OkM5OkM5KQ0KPiAg ZnJvbSB0ZXN0ZXIgcG9ydDoNCj4gIAl0ZXN0ZXIjIHNjYXB5DQo+IC0JdGVzdGVyIyBwID0NCj4g RXRoZXIoZHN0PSIwMDowMDowMDowMDowMDowMSIpL0RvdDFRKHZsYW49MTAwMCkvSVAoKS9VRFAo KS8NCj4gKwl0ZXN0ZXIjIHAgPSBFdGhlcihkc3Q9IjkwOkUyOkJBOjY5OkM5OkM5IikvSVAoKS9V RFAoKS8NCj4gIAkgICAgICAgICAgICBSYXcoJ3gnKjIwKQ0KPiAgCXRlc3RlciMgc2VuZHAocCwg aWZhY2U9InA1cDEiLCBpbnRlcj0xLCBsb29wPTEpDQo+IC0NCj4gLTMuIENoZWNrIHBhY2tldCBu b3JtYWxseSByZWNldmllZCBieSB2aXJ0SU8gaW50ZXJmYWNlDQo+IC0JaG9zdCB2bSMgdGNwZHVt cCAtaSBldGgxIC14eHgNCj4gLQ0KPiAtNC4gQ29ubmVjdCB0byBxZW11IG1vbml0b3Igc2Vzc2lv biBhbmQgc3RhcnQgbWlncmF0aW9uDQo+IC0JaG9zdCMgbmMgLVUgL3RtcC9ob3N0LnNvY2sNCj4g LSAgICBob3N0IyAocWVtdSltaWdyYXRlIC1kIHRjcDpiYWNrdXAgaG9zdCBpcDo0NDQ0DQo+IC0N Cj4gLTUuIENoZWNrIGhvc3Qgdm0gY2FuIHJlY2VpdmUgcGFja2V0IGJlZm9yZSBtaWdyYXRpb24g ZG9uZQ0KPiAtDQo+IC02LiBRdWVyeSBzdGF0cyBvZiBtaWdyYXRlIGluIG1vbml0b3IsIGNoZWNr IHN0YXR1cyBvZiBtaWdyYXRpb24NCj4gKw0KPiArCVRoZW4gY2hlY2sgdGhlIGhvc3QgVk0gY2Fu IHJlY2VpdmUgdGhlIHBhY2tldDoNCj4gKwlob3N0IFZNIyB0ZXN0cG1kPiBwb3J0IDAvcXVldWUg MDogcmVjZWl2ZWQgMSBwYWNrZXRzDQo+ICsNCj4gKzEwLiBTdGFydCBMaXZlIG1pZ3JhdGlvbiwg ZW5zdXJlIHRoZSB0cmFmZmljIGlzIGNvbnRpbnVvdXMgYXQgdGhlIEhPU1QgVk0NCj4gc2lkZToN Cj4gKyAgICBob3N0IHNlcnZlciAjIHRlbG5ldCBsb2NhbGhvc3QgMzMzMw0KPiArCShxZW11KW1p Z3JhdGUgLWQgdGNwOmJhY2t1cCBzZXJ2ZXI6NDQ0NA0KPiArCWUuZzogbWlncmF0ZSAtZCB0Y3A6 MTAuMjM5LjEyOS4xNzY6NDQ0NA0KPiArCShxZW11KWluZm8gbWlncmF0ZQ0KPiArCUNoZWNrIGlm IHRoZSBtaWdyYXRlIGlzIGFjdGl2ZSBhbmQgbm90IGZhaWxlZC4NCj4gKw0KPiArMTEuIENoZWNr IGhvc3Qgdm0gY2FuIHJlY2VpdmUgcGFja2V0IGJlZm9yZSBtaWdyYXRpb24gZG9uZQ0KPiArDQo+ ICsxMi4gUXVlcnkgc3RhdHMgb2YgbWlncmF0ZSBpbiBtb25pdG9yLCBjaGVjayBzdGF0dXMgb2Yg bWlncmF0aW9uLCB3aGVuDQo+IHRoZSBzdGF0dXMgaXMgY29tcGxldGVkLCB0aGVuIHRoZSBtaWdy YXRpb24gaXMgZG9uZS4NCj4gICAgICBob3N0IyAocWVtdSlpbmZvIG1pZ3JhdGUNCj4gLSAgICBo b3N0IyBhZnRlciBmaW5pc2hlZDoNCj4gLQ0KPiAtNy4gQWZ0ZXIgbWlnYXJ0aW9uIGRvbmUsIGxv Z2luIGludG8gYmFja3VwIHZtIGFuZCByZS1lbmFibGUgdmlydElPDQo+IGludGVyZmFjZQ0KPiAt CWJhY2t1cCB2bSMgaWZjb25maWcgZXRoMSBkb3duDQo+IC0JYmFja3VwIHZtIyBpZmNvbmZpZyBl dGgxIHVwDQo+IC0NCj4gLTguIENoZWNrIGJhY2t1cCBob3N0IHJlY29ubmVjdGVkIGFuZCBwYWNr ZXQgbm9ybWFsbHkgcmVjZXZpZWQNCj4gLQ0KPiAtVGVzdCBDYXNlIDI6IG1pZ3JhdGUgd2l0aCBk cGRrDQo+IC09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gLU1ha2Ugc3VyZSBhbGwg UHJlcmVxdWlzaXRlcyBoYXMgYmVlbiBkb25lDQo+IC0xLiBTZW5kIGNvbnRpbm91cyBwYWNrZXRz IHdpdGggbWFjKDAwOjAwOjAwOjAwOjAwOjAxKSBhbmQgdmxhbigxMDAwKQ0KPiArICAgIGhvc3Qj IChxZW11KQ0KPiArICAgIE1pZ3JhdGlvbiBzdGF0dXM6IGNvbXBsZXRlZA0KPiArDQo+ICsxMy4g QWZ0ZXIgbGl2ZSBtaWdyYXRpb24sIGdvIHRvIHRoZSBiYWNrdXAgc2VydmVyIGFuZCBjaGVjayBp ZiB0aGUNCj4gdmlydGlvLXBtZCBjYW4gY29udGludWUgdG8gcmVjZWl2ZSBwYWNrZXRzLg0KPiAr ICAgIEJhY2t1cCBzZXJ2ZXIgIyB0ZWxuZXQgbG9jYWxob3N0IDU0MzINCj4gKwlsb2cgaW4gdGhl biBzZWUgdGhlIHNhbWUgc2NyZWVuIGZyb20gdGhlIGhvc3Qgc2VydmVyLCBhbmQgY2hlY2sgaWYN Cj4gdGhlIHZpcnRpby1wbWQgY2FuIGNvbnRpbnVlIHJlY2VpdmUgdGhlIHBhY2tldHMuDQo+ICsN Cj4gK1Rlc3QgQ2FzZSAyOiBtaWdyYXRlIHdpdGggdmlydGlvLW5ldA0KPiArPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09DQo+ICtNYWtlIHN1cmUgYWxsIFByZXJlcXVpc2l0ZXMg aGFzIGJlZW4gZG9uZS4NCj4gKzYuIFRlbG5ldCB0aGUgc2VyaWFsIHBvcnQgYW5kIHJ1biB0ZXN0 cG1kIGluIFZNOg0KPiArDQo+ICsgICAgaG9zdCAjIHRlbG5ldCBsb2NhbGhvc3QgNTQzMg0KPiAr CUlucHV0IEVudGVyLCB0aGVuIGxvZyBpbiB0byBWTQ0KPiArCUlmIG5lZWQgbGVhdmUgdGhlIHNl c3Npb24sIGlucHV0ICJDVFJMIiArICJdIiwgdGhlbiBxdWl0IHRoZSB0ZWxuZXQNCj4gc2Vzc2lv bi4NCj4gKw0KPiArNy4gTGV0IHRoZSB2aXJ0aW8tbmV0IGxpbmsgdXA6DQo+ICsJaG9zdCB2bSAj IGlmY29uZmlnIGV0aDEgdXANCj4gKw0KPiArOC4gU2VuZCBjb250aW51b3VzIHBhY2tldHMgd2l0 aCB0aGUgcGh5c2ljYWwgcG9ydCdzIG1hYyhlLmc6DQo+IDkwOkUyOkJBOjY5OkM5OkM5KQ0KPiAr ICAgZnJvbSB0ZXN0ZXIgcG9ydDoNCj4gIAl0ZXN0ZXIjIHNjYXB5DQo+IC0JdGVzdGVyIyBwID0N Cj4gRXRoZXIoZHN0PSIwMDowMDowMDowMDowMDowMSIpL0RvdDFRKHZsYW49MTAwMCkvSVAoKS9V RFAoKS8NCj4gKwl0ZXN0ZXIjIHAgPSBFdGhlcihkc3Q9IjkwOkUyOkJBOjY5OkM5OkM5IikvSVAo KS9VRFAoKS8NCj4gIAkgICAgICAgICAgICBSYXcoJ3gnKjIwKQ0KPiAgCXRlc3RlciMgc2VuZHAo cCwgaWZhY2U9InA1cDEiLCBpbnRlcj0xLCBsb29wPTEpDQo+IC0NCj4gLTIuIGJpbmQgdmlydElP IGludGVyZmFjZSB0byBpZ2JfdWlvIGFuZCBzdGFydCB0ZXN0cG1kDQo+IC0JaG9zdCB2bSMgdGVz dHBtZCAtYyAweDcgLW4gNA0KPiAtDQo+IC0zLiBDaGVjayBwYWNrZXQgbm9ybWFsbHkgcmVjZXZp ZWQgYnkgdGVzdHBtZDoNCj4gLQlob3N0IHZtIyB0ZXN0cG1kPiBzZXQgZndkIHJ4b25seQ0KPiAt CWhvc3Qgdm0jIHRlc3RwbWQ+IHNldCB2ZXJib3NlIDENCj4gLQlob3N0IHZtIyB0ZXN0cG1kPiBw b3J0IDAvcXVldWUgMDogcmVjZWl2ZWQgMSBwYWNrZXRzDQo+IC0NCj4gLTQuIENvbm5lY3QgdG8g cWVtdSBtb25pdG9yIHNlc3Npb24gYW5kIHN0YXJ0IG1pZ3JhdGlvbg0KPiAtCWhvc3QjIG5jIC1V IC90bXAvaG9zdC5zb2NrDQo+IC0gICAgaG9zdCMgKHFlbXUpbWlncmF0ZSAtZCB0Y3A6YmFja3Vw IGhvc3QgaXA6NDQ0NA0KPiAtDQo+IC01LiBDaGVjayBob3N0IHZtIGNhbiByZWNlaXZlIHBhY2tl dCBiZWZvcmUgbWlncmF0aW9uIGRvbmUNCj4gLQ0KPiAtNi4gUXVlcnkgc3RhdHMgb2YgbWlncmF0 ZSBpbiBtb25pdG9yLCBjaGVjayBzdGF0dXMgb2YgbWlncmF0aW9uDQo+ICsNCj4gKzkuIENoZWNr IHRoZSBob3N0IFZNIGNhbiByZWNlaXZlIHRoZSBwYWNrZXQ6DQo+ICsJaG9zdCBWTSMgdGNwZHVt cCAtaSBldGgxDQo+ICsNCj4gKzEwLiBTdGFydCBMaXZlIG1pZ3JhdGlvbiwgZW5zdXJlIHRoZSB0 cmFmZmljIGlzIGNvbnRpbnVvdXMgYXQgdGhlIEhPU1QgVk0NCj4gc2lkZToNCj4gKyAgICBob3N0 IHNlcnZlciAjIHRlbG5ldCBsb2NhbGhvc3QgMzMzMw0KPiArCShxZW11KW1pZ3JhdGUgLWQgdGNw OmJhY2t1cCBzZXJ2ZXI6NDQ0NA0KPiArCWUuZzogbWlncmF0ZSAtZCB0Y3A6MTAuMjM5LjEyOS4x NzY6NDQ0NA0KPiArCShxZW11KWluZm8gbWlncmF0ZQ0KPiArCUNoZWNrIGlmIHRoZSBtaWdyYXRl IGlzIGFjdGl2ZSBhbmQgbm90IGZhaWxlZC4NCj4gKw0KPiArMTEuIENoZWNrIGhvc3Qgdm0gY2Fu IHJlY2VpdmUgcGFja2V0IGJlZm9yZSBtaWdyYXRpb24gZG9uZQ0KPiArDQo+ICsxMi4gUXVlcnkg c3RhdHMgb2YgbWlncmF0ZSBpbiBtb25pdG9yLCBjaGVjayBzdGF0dXMgb2YgbWlncmF0aW9uLCB3 aGVuDQo+IHRoZSBzdGF0dXMgaXMgY29tcGxldGVkLCB0aGVuIHRoZSBtaWdyYXRpb24gaXMgZG9u ZS4NCj4gICAgICBob3N0IyAocWVtdSlpbmZvIG1pZ3JhdGUNCj4gLSAgICBob3N0IyBhZnRlciBm aW5pc2hlZDoNCj4gKyAgICBob3N0IyAocWVtdSkNCj4gKyAgICBNaWdyYXRpb24gc3RhdHVzOiBj b21wbGV0ZWQNCj4gKw0KPiArMTMuIEFmdGVyIGxpdmUgbWlncmF0aW9uLCBnbyB0byB0aGUgYmFj a3VwIHNlcnZlciBhbmQgY2hlY2sgaWYgdGhlDQo+IHZpcnRpby1wbWQgY2FuIGNvbnRpbnVlIHRv IHJlY2VpdmUgcGFja2V0cy4NCj4gKyAgICBCYWNrdXAgc2VydmVyICMgdGVsbmV0IGxvY2FsaG9z dCA1NDMyDQo+ICsJbG9nIGluIHRoZW4gc2VlIHRoZSBzYW1lIHNjcmVlbiBmcm9tIHRoZSBob3N0 IHNlcnZlciwgYW5kIGNoZWNrIGlmDQo+IHRoZSB2aXJ0aW8tbmV0IGNhbiBjb250aW51ZSByZWNl aXZlIHRoZSBwYWNrZXRzLg0KPiANCj4gLTcuIEFmdGVyIG1pZ2FydGlvbiBkb25lLCBsb2dpbiBp bnRvIGJhY2t1cCB2bSBhbmQgY2hlY2sgcGFja2V0cyByZWNldmllZA0KPiAtCWJhY2t1cCB2bSMg dGVzdHBtZD4gcG9ydCAwL3F1ZXVlIDA6IHJlY2VpdmVkIDEgcGFja2V0cw0KPiBcIE5vIG5ld2xp bmUgYXQgZW5kIG9mIGZpbGUNCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL1Rlc3RTdWl0ZV92aG9zdF91 c2VyX2xpdmVfbWlncmF0aW9uLnB5DQo+IGIvdGVzdHMvVGVzdFN1aXRlX3Zob3N0X3VzZXJfbGl2 ZV9taWdyYXRpb24ucHkNCj4gaW5kZXggOTVlMmZiMy4uZTFiOWNhYiAxMDA2NDQNCj4gLS0tIGEv dGVzdHMvVGVzdFN1aXRlX3Zob3N0X3VzZXJfbGl2ZV9taWdyYXRpb24ucHkNCj4gKysrIGIvdGVz dHMvVGVzdFN1aXRlX3Zob3N0X3VzZXJfbGl2ZV9taWdyYXRpb24ucHkNCj4gQEAgLTMzLDE5ICsz MywxMyBAQCBjbGFzcyBUZXN0Vmhvc3RVc2VyTGl2ZU1pZ3JhdGlvbihUZXN0Q2FzZSk6DQo+ICAg ICAgICAgIHNlbGYuYmFja3VwX3Rwb3J0ID0NCj4gc2VsZi50ZXN0ZXIuZ2V0X2xvY2FsX3BvcnRf YnlkdXQoc2VsZi5iYWNrdXBfcG9ydCwgc2VsZi5iYWNrdXBfZHV0aXApDQo+ICAgICAgICAgIHNl bGYuYmFja3VwX3RpbnRmID0gc2VsZi50ZXN0ZXIuZ2V0X2ludGVyZmFjZShzZWxmLmJhY2t1cF90 cG9ydCkNCj4gDQo+IC0gICAgICAgICMgYnVpbGQgYmFja3VwIHZob3N0LXN3aXRjaA0KPiAtICAg ICAgICBvdXQgPSBzZWxmLmR1dHNbMF0uc2VuZF9leHBlY3QoIm1ha2UgLUMgZXhhbXBsZXMvdmhv c3QiLCAiIyAiKQ0KPiAtICAgICAgICBzZWxmLnZlcmlmeSgiRXJyb3IiIG5vdCBpbiBvdXQsICJj b21waWxhdGlvbiBlcnJvciAxIikNCj4gLSAgICAgICAgc2VsZi52ZXJpZnkoIk5vIHN1Y2ggZmls ZSIgbm90IGluIG91dCwgImNvbXBpbGF0aW9uIGVycm9yIDIiKQ0KPiAtDQo+IC0gICAgICAgICMg YnVpbGQgYmFja3VwIHZob3N0LXN3aXRjaA0KPiAtICAgICAgICBvdXQgPSBzZWxmLmR1dHNbMV0u c2VuZF9leHBlY3QoIm1ha2UgLUMgZXhhbXBsZXMvdmhvc3QiLCAiIyAiKQ0KPiAtICAgICAgICBz ZWxmLnZlcmlmeSgiRXJyb3IiIG5vdCBpbiBvdXQsICJjb21waWxhdGlvbiBlcnJvciAxIikNCj4g LSAgICAgICAgc2VsZi52ZXJpZnkoIk5vIHN1Y2ggZmlsZSIgbm90IGluIG91dCwgImNvbXBpbGF0 aW9uIGVycm9yIDIiKQ0KPiAtDQo+IC0gICAgICAgIHNlbGYudmhvc3QgPSAiLi9leGFtcGxlcy92 aG9zdC9idWlsZC9hcHAvdmhvc3Qtc3dpdGNoIg0KPiArICAgICAgICAjIFVzZSB0ZXN0cG1kIGFz IHZob3N0LXVzZXIgYXBwbGljYXRpb24gb24gaG9zdC9iYWNrdXAgc2VydmVyDQo+ICsgICAgICAg IHNlbGYudmhvc3QgPSAiLi94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy9hcHAvdGVzdHBtZCIN Cj4gICAgICAgICAgc2VsZi52bV90ZXN0cG1kID0gIi4vJXMvYXBwL3Rlc3RwbWQgLWMgMHgzIC1u IDQgLS0gLWkiICUNCj4gc2VsZi50YXJnZXQNCj4gLSAgICAgICAgc2VsZi52aXJpb19tYWMgPSAi MDA6MDA6MDA6MDA6MDA6MDEiDQo+ICsgICAgICAgIHNlbGYudmlyaW9fbWFjID0gIjUyOjU0OjAw OjAwOjAwOjAxIg0KPiArDQo+ICsgICAgICAgICMgU2V0IHRoZSBxZW11X3BhdGggZm9yIHNwZWNp ZmljIGVudg0KPiArICAgICAgICBzZWxmLnFlbXVfcGF0aCA9ICIvaG9tZS9xeHUxMC9xZW11LTIu Ni4wL3g4Nl82NC1zb2Z0bW11L3FlbXUtDQo+IHN5c3RlbS14ODZfNjQiDQo+IA0KVGhpcyBsb2Nh bCBwYXRoIGNhbid0IHdvcmsgb24gb3RoZXIgaG9zdC4gSWYgdSBuZWVkIGNoYW5nZSBkZWZhdWx0 IHFlbXUgcGF0aCwgcGxlYXNlIHVzZSBxZW11IG9wdGlvbiBpbiB2aG9zdF91c2VyX2xpdmVfbWln cmF0aW9uLmNmZy4NClRoZSBmb3JtYXQgd2lsbCBiZSBsaWtlOg0KcWVtdT0gDQogICAgcGF0aD0v aG9tZS9xeHUxMC9xZW11LTIuNi4wL3g4Nl82NC1zb2Z0bW11L3FlbXUtc3lzdGVtLXg4Nl82NA0K DQo+ICAgICAgICAgICMgZmxhZyBmb3IgZW52aXJvbm1lbnQNCj4gICAgICAgICAgc2VsZi5lbnZf ZG9uZSA9IEZhbHNlDQo+IEBAIC05MywxMSArODcsMTMgQEAgY2xhc3MgVGVzdFZob3N0VXNlckxp dmVNaWdyYXRpb24oVGVzdENhc2UpOg0KPiAgICAgICAgICAgICAgIyBzdGFydCB2aG9zdC1zd2l0 Y2gsIHByZWRpY3QgaHVnZXBhZ2Ugb24gYm90aCBzb2NrZXRzDQo+ICAgICAgICAgICAgICBiYXNl X2RpciA9IGNyYi5iYXNlX2Rpci5yZXBsYWNlKCd+JywgJy9yb290JykNCj4gICAgICAgICAgICAg IGNyYi5zZW5kX2V4cGVjdCgicm0gLWYgJXMvdmhvc3QtbmV0IiAlIGJhc2VfZGlyLCAiIyAiKQ0K PiAtICAgICAgICAgICAgY3JiLnNlbmRfZXhwZWN0KCIlcyAtYyBmIC1uIDQgLS1zb2NrZXQtbWVt IDEwMjQgLS0gLXAgMHgxIiAlDQo+IHNlbGYudmhvc3QsICJiaW5kIHRvIHZob3N0LW5ldCIpDQo+ ICsgICAgICAgICAgICBjcmIuc2VuZF9leHBlY3QoIiVzIC1jIGYgLW4gNCAtLXNvY2tldC1tZW0g NTEyLDUxMiAtLXZkZXYNCj4gJ2V0aF92aG9zdDAsaWZhY2U9Li92aG9zdC1uZXQscXVldWVzPTEn IC0tIC1pIiAlIHNlbGYudmhvc3QsICJ0ZXN0cG1kPg0KPiAiLDYwKQ0KPiArICAgICAgICAgICAg Y3JiLnNlbmRfZXhwZWN0KCJzdGFydCIsICJ0ZXN0cG1kPiAiKQ0KPiANCj4gICAgICAgICAgdHJ5 Og0KPiAgICAgICAgICAgICAgIyBzZXQgdXAgaG9zdCB2aXJ0dWFsIG1hY2hpbmUNCj4gICAgICAg ICAgICAgIHNlbGYuaG9zdF92bSA9IFFFTVVLdm0oc2VsZi5kdXRzWzBdLCAnaG9zdCcsDQo+ICd2 aG9zdF91c2VyX2xpdmVfbWlncmF0aW9uJykNCj4gKyAgICAgICAgICAgIHNlbGYuaG9zdF92bS5z ZXRfcWVtdV9lbXVsYXRvcihzZWxmLnFlbXVfcGF0aCk7DQpObyBuZWVkIHRvIHRoaXMsIHBsZWFz ZSBjaGFuZ2UgY29uZmlndXJhdGlvbiBmaWxlLg0KPiAgICAgICAgICAgICAgdmhvc3RfcGFyYW1z ID0ge30NCj4gICAgICAgICAgICAgIHZob3N0X3BhcmFtc1snZHJpdmVyJ10gPSAndmhvc3QtdXNl cicNCj4gICAgICAgICAgICAgICMgcWVtdSBjb21tYW5kIGNhbid0IHVzZSB+DQo+IEBAIC0xMTks NiArMTE1LDcgQEAgY2xhc3MgVGVzdFZob3N0VXNlckxpdmVNaWdyYXRpb24oVGVzdENhc2UpOg0K PiAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiU3RhcnQgdmlydHVhbCBtYWNoaW5lIG9u IGJhY2t1cCBob3N0IikNCj4gICAgICAgICAgICAgICMgc2V0IHVwIGJhY2t1cCB2aXJ0dWFsIG1h Y2hpbmUNCj4gICAgICAgICAgICAgIHNlbGYuYmFja3VwX3ZtID0gUUVNVUt2bShzZWxmLmR1dHNb MV0sICdiYWNrdXAnLA0KPiAndmhvc3RfdXNlcl9saXZlX21pZ3JhdGlvbicpDQo+ICsgICAgICAg ICAgICBzZWxmLmJhY2t1cF92bS5zZXRfcWVtdV9lbXVsYXRvcihzZWxmLnFlbXVfcGF0aCk7DQpO byBuZWVkIHRvIHRoaXMsIHBsZWFzZSBjaGFuZ2UgY29uZmlndXJhdGlvbiBmaWxlLg0KDQo+ICAg ICAgICAgICAgICB2aG9zdF9wYXJhbXMgPSB7fQ0KPiAgICAgICAgICAgICAgdmhvc3RfcGFyYW1z Wydkcml2ZXInXSA9ICd2aG9zdC11c2VyJw0KPiAgICAgICAgICAgICAgIyBxZW11IGNvbW1hbmQg Y2FuJ3QgdXNlIH4NCj4gQEAgLTE1Niw3ICsxNTMsNyBAQCBjbGFzcyBUZXN0Vmhvc3RVc2VyTGl2 ZU1pZ3JhdGlvbihUZXN0Q2FzZSk6DQo+ICAgICAgICAgICAgICBpZiBzZWxmLmJhY2t1cF9zZXJp YWwgaXMgbm90IE5vbmUgYW5kIHNlbGYuYmFja3VwX3ZtIGlzIG5vdA0KPiBOb25lOg0KPiAgICAg ICAgICAgICAgICAgIHNlbGYuYmFja3VwX3ZtLmNsb3NlX3NlcmlhbF9wb3J0KCkNCj4gDQo+IC0g ICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIlN0b3AgdmlydHVhbCBtYWNoaW5lIG9uIGhvc3QiKQ0K PiArDQo+ICAgICAgICAgIGlmIGdldGF0dHIoc2VsZiwgJ3ZtX2hvc3QnLCBOb25lKToNCj4gICAg ICAgICAgICAgIGlmIHNlbGYudm1faG9zdCBpcyBub3QgTm9uZToNCj4gICAgICAgICAgICAgICAg ICBzZWxmLmhvc3Rfdm0uc3RvcCgpDQo+IEBAIC0xODksNyArMTg2LDcgQEAgY2xhc3MgVGVzdFZo b3N0VXNlckxpdmVNaWdyYXRpb24oVGVzdENhc2UpOg0KPiAgICAgICAgICAiIiINCj4gICAgICAg ICAgc2VuZCBwYWNrZXQgZnJvbSB0ZXN0ZXINCj4gICAgICAgICAgIiIiDQo+IC0gICAgICAgIHNl bmRwX2ZtdCA9DQo+ICJzZW5kcChbRXRoZXIoZHN0PSclKERNQUMpcycpL0RvdDFRKHZsYW49MTAw MCkvSVAoKS9VRFAoKS9SYXcoJ3gnKjE4KV0sDQo+IGlmYWNlPSclKElOVEYpcycsIGNvdW50PSUo Q09VTlQpZCkiDQo+ICsgICAgICAgIHNlbmRwX2ZtdCA9ICJzZW5kcChbRXRoZXIoZHN0PSclKERN QUMpcycpL0lQKCkvVURQKCkvUmF3KCd4JyoxOCldLA0KPiBpZmFjZT0nJShJTlRGKXMnLCBjb3Vu dD0lKENPVU5UKWQpIg0KPiAgICAgICAgICBzZW5kcF9jbWQgPSBzZW5kcF9mbXQgJSB7J0RNQUMn OiBzZWxmLnZpcmlvX21hYywgJ0lOVEYnOiBpbnRmLA0KPiAnQ09VTlQnOiBudW1iZXJ9DQo+ICAg ICAgICAgIHNlbGYudGVzdGVyLnNjYXB5X2FwcGVuZChzZW5kcF9jbWQpDQo+ICAgICAgICAgIHNl bGYudGVzdGVyLnNjYXB5X2V4ZWN1dGUoKQ0KPiBAQCAtMjU1LDcgKzI1Miw4IEBAIGNsYXNzIFRl c3RWaG9zdFVzZXJMaXZlTWlncmF0aW9uKFRlc3RDYXNlKToNCj4gDQo+ICAgICAgICAgIHNlbGYu bG9nZ2VyLmluZm8oIk1pZ3JhdGUgaG9zdCBWTSB0byBiYWNrdXAgaG9zdCIpDQo+ICAgICAgICAg ICMgc3RhcnQgbGl2ZSBtaWdyYXRpb24NCj4gLSAgICAgICAgc2VsZi5ob3N0X3ZtLnN0YXJ0X21p Z3JhdGlvbihzZWxmLmJhY2t1cF9kdXRpcCwNCj4gc2VsZi5iYWNrdXBfdm0ubWlncmF0ZV9wb3J0 KQ0KPiArICAgICAgICByZXQgPSBzZWxmLmhvc3Rfdm0uc3RhcnRfbWlncmF0aW9uKHNlbGYuYmFj a3VwX2R1dGlwLA0KPiBzZWxmLmJhY2t1cF92bS5taWdyYXRlX3BvcnQpDQo+ICsgICAgICAgIHNl bGYudmVyaWZ5KHJldCwgIkZhaWxlZCB0byBtaWdyYXRpb24sIHBsZWFzZSBjaGVjayBWTSBhbmQg cWVtdQ0KPiB2ZXJzaW9uIikNCj4gDQo+ICAgICAgICAgICMgbWFrZSBzdXJlIHN0aWxsIGNhbiBy ZWNlaXZlIHBhY2tldHMgaW4gbWlncmF0aW9uIHByb2Nlc3MNCj4gICAgICAgICAgc2VsZi52ZXJp Znlfa2VybmVsKHNlbGYuaG9zdF90cG9ydCwgc2VsZi52bV9ob3N0KQ0KPiBAQCAtMjY2LDExICsy NjQsMTEgQEAgY2xhc3MgVGVzdFZob3N0VXNlckxpdmVNaWdyYXRpb24oVGVzdENhc2UpOg0KPiAN Cj4gICAgICAgICAgIyBjaGVjayB2aG9zdC1zd2l0Y2ggbG9nIGFmdGVyIG1pZ3JhdGlvbg0KPiAg ICAgICAgICBvdXQgPSBzZWxmLmR1dHNbMF0uZ2V0X3Nlc3Npb25fb3V0cHV0KHRpbWVvdXQ9MSkN Cj4gLSAgICAgICAgc2VsZi52ZXJpZnkoImRldmljZSBoYXMgYmVlbiByZW1vdmVkIiBpbiBvdXQs ICJEZXZpY2Ugbm90IHJlbW92ZWQNCj4gZm9yIGhvc3QiKQ0KPiArICAgICAgICBzZWxmLnZlcmlm eSgiY2xvc2VkIiBpbiBvdXQsICJWaG9zdCBDb25uZWN0aW9uIE5PVCBjbG9zZWQgb24NCj4gaG9z dCIpDQo+ICAgICAgICAgIG91dCA9IHNlbGYuZHV0c1sxXS5nZXRfc2Vzc2lvbl9vdXRwdXQodGlt ZW91dD0xKQ0KPiAtICAgICAgICBzZWxmLnZlcmlmeSgidmlydGlvIGlzIG5vdyByZWFkeSIgaW4g b3V0LCAiRGV2aWNlIG5vdCByZWFkeSBvbg0KPiBiYWNrdXAgaG9zdCIpDQo+ICsgICAgICAgIHNl bGYudmVyaWZ5KCJlc3RhYmxpc2hlZCIgaW4gb3V0LCAiRGV2aWNlIG5vdCByZWFkeSBvbiBiYWNr dXANCj4gaG9zdCIpDQo+IA0KPiAtICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJNaWdyYXRpb24g cHJvY2VzcyBkb25lLCBpbml0IGJhY2t1cCBWTSIpDQo+ICsgICAgICAgIHNlbGYubG9nZ2VyLmlu Zm8oIk1pZ3JhdGlvbiBwcm9jZXNzIGRvbmUsIHRoZW4gZ28gdG8gYmFja3VwIFZNIikNCj4gICAg ICAgICAgIyBjb25uZWN0ZWQgYmFja3VwIFZNDQo+ICAgICAgICAgIHNlbGYudm1fYmFja3VwID0g c2VsZi5iYWNrdXBfdm0ubWlncmF0ZWRfc3RhcnQoKQ0KPiANCj4gQEAgLTI5MSw4ICsyODksMTAg QEAgY2xhc3MgVGVzdFZob3N0VXNlckxpdmVNaWdyYXRpb24oVGVzdENhc2UpOg0KPiANCj4gICAg ICAgICAgc2VsZi5sb2dnZXIuaW5mbygiTWlncmF0ZSBob3N0IFZNIHRvIGJhY2t1cCBob3N0IikN Cj4gICAgICAgICAgIyBzdGFydCBsaXZlIG1pZ3JhdGlvbg0KPiAtICAgICAgICBzZWxmLmhvc3Rf dm0uc3RhcnRfbWlncmF0aW9uKHNlbGYuYmFja3VwX2R1dGlwLA0KPiBzZWxmLmJhY2t1cF92bS5t aWdyYXRlX3BvcnQpDQo+IC0NCj4gKw0KPiArICAgICAgICByZXQgPSBzZWxmLmhvc3Rfdm0uc3Rh cnRfbWlncmF0aW9uKHNlbGYuYmFja3VwX2R1dGlwLA0KPiBzZWxmLmJhY2t1cF92bS5taWdyYXRl X3BvcnQpDQo+ICsgICAgICAgIHNlbGYudmVyaWZ5KHJldCwgIkZhaWxlZCB0byBtaWdyYXRpb24s IHBsZWFzZSBjaGVjayBWTSBhbmQgcWVtdQ0KPiB2ZXJzaW9uIikNCj4gKw0KPiAgICAgICAgICAj IG1ha2Ugc3VyZSBzdGlsbCBjYW4gcmVjZWl2ZSBwYWNrZXRzIGluIG1pZ3JhdGlvbiBwcm9jZXNz DQo+ICAgICAgICAgIHNlbGYudmVyaWZ5X2RwZGsoc2VsZi5ob3N0X3Rwb3J0LCBzZWxmLmhvc3Rf c2VyaWFsKQ0KPiANCj4gQEAgLTMwMiwxMSArMzAyLDExIEBAIGNsYXNzIFRlc3RWaG9zdFVzZXJM aXZlTWlncmF0aW9uKFRlc3RDYXNlKToNCj4gDQo+ICAgICAgICAgICMgY2hlY2sgdmhvc3Qtc3dp dGNoIGxvZyBhZnRlciBtaWdyYXRpb24NCj4gICAgICAgICAgb3V0ID0gc2VsZi5kdXRzWzBdLmdl dF9zZXNzaW9uX291dHB1dCh0aW1lb3V0PTEpDQo+IC0gICAgICAgIHNlbGYudmVyaWZ5KCJkZXZp Y2UgaGFzIGJlZW4gcmVtb3ZlZCIgaW4gb3V0LCAiRGV2aWNlIG5vdCByZW1vdmVkDQo+IGZvciBo b3N0IikNCj4gKyAgICAgICAgc2VsZi52ZXJpZnkoImNsb3NlZCIgaW4gb3V0LCAiVmhvc3QgQ29u bmVjdGlvbiBOT1QgY2xvc2VkIG9uDQo+IGhvc3QiKQ0KPiAgICAgICAgICBvdXQgPSBzZWxmLmR1 dHNbMV0uZ2V0X3Nlc3Npb25fb3V0cHV0KHRpbWVvdXQ9MSkNCj4gLSAgICAgICAgc2VsZi52ZXJp ZnkoInZpcnRpbyBpcyBub3cgcmVhZHkiIGluIG91dCwgIkRldmljZSBub3QgcmVhZHkgb24NCj4g YmFja3VwIGhvc3QiKQ0KPiArICAgICAgICBzZWxmLnZlcmlmeSgiZXN0YWJsaXNoZWQiIGluIG91 dCwgIkRldmljZSBub3QgcmVhZHkgb24gYmFja3VwDQo+IGhvc3QiKQ0KPiANCj4gLSAgICAgICAg c2VsZi5sb2dnZXIuaW5mbygiTWlncmF0aW9uIHByb2Nlc3MgZG9uZSwgaW5pdCBiYWNrdXAgVk0i KQ0KPiArICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJNaWdyYXRpb24gcHJvY2VzcyBkb25lLCB0 aGVuIGdvIHRvIGJhY2t1cCBWTSIpDQo+ICAgICAgICAgIHRpbWUuc2xlZXAoNSkNCj4gDQo+ICAg ICAgICAgICMgbWFrZSBzdXJlIHN0aWxsIGNhbiByZWNlaXZlIHBhY2tldHMNCj4gLS0NCj4gMi41 LjUNCg0K