From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id EED07A04F7; Fri, 20 Dec 2019 09:13:13 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E58AB374C; Fri, 20 Dec 2019 09:13:13 +0100 (CET) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id 82C5DF90 for ; Fri, 20 Dec 2019 09:13:11 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 20 Dec 2019 00:13:10 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,335,1571727600"; d="scan'208";a="417885311" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by fmsmga006.fm.intel.com with ESMTP; 20 Dec 2019 00:13:11 -0800 Received: from fmsmsx163.amr.corp.intel.com (10.18.125.72) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 20 Dec 2019 00:13:10 -0800 Received: from shsmsx154.ccr.corp.intel.com (10.239.6.54) by fmsmsx163.amr.corp.intel.com (10.18.125.72) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 20 Dec 2019 00:13:10 -0800 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.19]) by SHSMSX154.ccr.corp.intel.com ([169.254.7.71]) with mapi id 14.03.0439.000; Fri, 20 Dec 2019 16:13:08 +0800 From: "Tu, Lijuan" To: "Wang, Yinan" , "dts@dpdk.org" CC: "Wang, Yinan" Thread-Topic: [dts] [PATCH v1] test_plans: add packed virtqueue test with vhost dequeue zero copy Thread-Index: AQHVtuD7AN+Nq/fw8kuPa7wLSZyQSKfCrNpA Date: Fri, 20 Dec 2019 08:13:08 +0000 Message-ID: <8CE3E05A3F976642AAB0F4675D0AD20E0BB8A28E@SHSMSX101.ccr.corp.intel.com> References: <20191219195051.77729-1-yinan.wang@intel.com> In-Reply-To: <20191219195051.77729-1-yinan.wang@intel.com> 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.2.0.6 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 v1] test_plans: add packed virtqueue test with vhost dequeue zero copy 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: , Errors-To: dts-bounces@dpdk.org Sender: "dts" YXBwbGllZA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGR0cyBbbWFp bHRvOmR0cy1ib3VuY2VzQGRwZGsub3JnXSBPbiBCZWhhbGYgT2YgWWluYW4NCj4gU2VudDogRnJp ZGF5LCBEZWNlbWJlciAyMCwgMjAxOSAzOjUxIEFNDQo+IFRvOiBkdHNAZHBkay5vcmcNCj4gQ2M6 IFdhbmcsIFlpbmFuIDx5aW5hbi53YW5nQGludGVsLmNvbT4NCj4gU3ViamVjdDogW2R0c10gW1BB VENIIHYxXSB0ZXN0X3BsYW5zOiBhZGQgcGFja2VkIHZpcnRxdWV1ZSB0ZXN0IHdpdGggdmhvc3QN Cj4gZGVxdWV1ZSB6ZXJvIGNvcHkNCj4gDQo+IEZyb206IFdhbmcgWWluYW4gPHlpbmFuLndhbmdA aW50ZWwuY29tPg0KPiANCj4gQWRkIHBhY2tlZCB2aXJ0cXVldWUgdGVzdCBpbiB2aG9zdF9kZXF1 ZXVlX3plcm9fY29weV90ZXN0X3BsYW4ucnN0DQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBXYW5nIFlp bmFuIDx5aW5hbi53YW5nQGludGVsLmNvbT4NCj4gLS0tDQo+ICAuLi4vdmhvc3RfZGVxdWV1ZV96 ZXJvX2NvcHlfdGVzdF9wbGFuLnJzdCAgICAgfCAyOTkgKysrKysrKysrKy0tLS0tLS0tDQo+ICAx IGZpbGUgY2hhbmdlZCwgMTY3IGluc2VydGlvbnMoKyksIDEzMiBkZWxldGlvbnMoLSkNCj4gDQo+ IGRpZmYgLS1naXQgYS90ZXN0X3BsYW5zL3Zob3N0X2RlcXVldWVfemVyb19jb3B5X3Rlc3RfcGxh bi5yc3QNCj4gYi90ZXN0X3BsYW5zL3Zob3N0X2RlcXVldWVfemVyb19jb3B5X3Rlc3RfcGxhbi5y c3QNCj4gaW5kZXggM2M3NGM3Ny4uMTAwYWZjYSAxMDA2NDQNCj4gLS0tIGEvdGVzdF9wbGFucy92 aG9zdF9kZXF1ZXVlX3plcm9fY29weV90ZXN0X3BsYW4ucnN0DQo+ICsrKyBiL3Rlc3RfcGxhbnMv dmhvc3RfZGVxdWV1ZV96ZXJvX2NvcHlfdGVzdF9wbGFuLnJzdA0KPiBAQCAtMzcsMTYgKzM3LDE5 IEBAIHZob3N0IGRlcXVldWUgemVyby1jb3B5IHRlc3QgcGxhbiAgRGVzY3JpcHRpb24NCj4gPT09 PT09PT09PT0NCj4gDQo+IC1WaG9zdCBkZXF1ZXVlIHplcm8tY29weSBpcyBhIHBlcmZvcm1hbmNl IG9wdGltaXphdGlvbiBmb3Igdmhvc3QsIHRoZSBjb3B5DQo+IGluIHRoZSBkZXF1ZXVlIHBhdGgg aXMgYXZvaWRlZCBpbiBvcmRlciB0byBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZS4NCj4gLVRoZXJl IGFyZSB0aHJlZSB0b3BvbG9neSB0ZXN0IChQVlAvVk0yVk0vVk0yTklDKSBmb3IgdGhpcyBmZWF0 dXJlLCB0aGUNCj4gYXV0b21hdGlvbiBvZiBkaWZmZXJlbnQgdG9wb2xvZ3kgY2FzZXMgYXJlIGlu IHRocmVlIGRpZmZlcmVudCB0ZXN0IHN1aXRlLg0KPiAtMS4gSW4gdGhlIFBWUCBjYXNlLCB3aGVu IHBhY2tldCBzaXplIGlzIDE1MThCLCAxMEcgbmljIGNvdWxkIGJlIHRoZQ0KPiBwZXJmb3JtYW5j ZSBib3R0bGVuZWNrLCBzbyB3ZSB1c2UgNDBHIHRyYWZmaWMgZ2VuYXJhdG9yIGFuZCA0MEcgbmlj Lg0KPiAtQWxzbyBhcyB2aG9zdCB6ZXJvIGNvcHkgbWJ1ZnMgc2hvdWxkIGJlIGNvbnN1bWVkIGFz IHNvb24gYXMgcG9zc2libGUsDQo+IGRvbid0IHN0YXJ0IHNlbmQgcGFja2V0cyBhdCB2aG9zdCBz aWRlIGJlZm9yZSBWTSBhbmQgdmlydGlvLXBtZCBsYXVuY2hlZC4NCj4gLTIuIEluIHRoZSBWTTJW TSBjYXNlLCB0aGUgYm9vc3QgaXMgcXVpdGUgaW1wcmVzc2l2ZS4gVGhlIGJpZ2dlciB0aGUgcGFj a2V0DQo+IHNpemUsIHRoZSBiaWdnZXIgcGVyZm9ybWFuY2UgYm9vc3QgeW91IG1heSBnZXQuDQo+ IC0zLiBJbiB0aGUgVk0yTklDIGNhc2UsIHRoZXJlIGFyZSBzb21lIGxpbWl0YXRpb25zLCBzbyB0 aGUgYm9vc3QgaXMgbm90IGFzDQo+IGltcHJlc3NpdmUgYXMgdGhlIFZNMlZNIGNhc2UuIEl0IG1h eSBldmVuIGRyb3AgcXVpdGUgYSBiaXQgZm9yIHNtYWxsDQo+IHBhY2tldHMuRm9yIHRoYXQgcmVh c29uLCB0aGlzIGZlYXR1cmUgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdCwgaXQgY2FuIGJlIGVuYWJs ZWQNCj4gd2hlbiB0aGUgUlRFX1ZIT1NUX1VTRVJfREVRVUVVRV9aRVJPX0NPUFkgZmxhZyBpcyBz ZXQuDQo+ICtWaG9zdCBkZXF1ZXVlIHplcm8tY29weSBpcyBhIHBlcmZvcm1hbmNlIG9wdGltaXph dGlvbiBmb3Igdmhvc3QsIHRoZSBjb3B5DQo+IGluIHRoZSBkZXF1ZXVlIHBhdGggaXMgYXZvaWRl ZCBpbiBvcmRlciB0byBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZS4gVGhlDQo+IHRlc3QgY2FzZXMg Y292ZXIgc3BsaXQgcmluZyBhbmQgcGFja2VkIHJpbmcuDQo+ICtOb3RpY2U6DQo+ICsqQWxsIHBh Y2tlZCByaW5nIGNhc2UgbmVlZCBzcGVjaWFsIHFlbXUgdmVyc2lvbi4NCj4gKypJbiB0aGUgUFZQ IGNhc2UsIHdoZW4gcGFja2V0IHNpemUgaXMgMTUxOEIsIDEwRyBuaWMgY291bGQgYmUgdGhlDQo+ IHBlcmZvcm1hbmNlIGJvdHRsZW5lY2ssIHNvIHdlIHVzZSA0MEcgdHJhZmZpYyBnZW5hcmF0b3Ig YW5kIDQwRyBuaWMuDQo+ICsqQWxzbyBhcyB2aG9zdCB6ZXJvIGNvcHkgbWJ1ZnMgc2hvdWxkIGJl IGNvbnN1bWVkIGFzIHNvb24gYXMgcG9zc2libGUsDQo+IGRvbid0IHN0YXJ0IHNlbmQgcGFja2V0 cyBhdCB2aG9zdCBzaWRlIGJlZm9yZSBWTSBhbmQgdmlydGlvLXBtZCBsYXVuY2hlZC4NCj4gDQo+ IC1UZXN0IENhc2UgMTogcHZwIGRlcXVldWUgemVyby1jb3B5IHRlc3Qgd2l0aCBkaWZmZXJlbnQg cGFja2V0IHNpemVzIC0NCj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA9PT0NCj4gLVRlc3QgdG9wb2xvZ3k6IFRHIC0t PiBOSUMgLS0+IFZob3N0IC0tPiBWaXJ0aW8gLS0+IFZob3N0IC0tPiBOSUMgLS0+IFRHDQo+ICtU ZXN0IGZsb3cNCj4gKz09PT09PT09PQ0KPiArDQo+ICtURyAtLT4gTklDIC0tPiBWaG9zdCAtLT4g VmlydGlvIC0tPiBWaG9zdCAtLT4gTklDIC0tPiBURw0KPiArDQo+ICtUZXN0IENhc2UgMTogcHZw IHNwbGl0IHJpbmcgZGVxdWV1ZSB6ZXJvLWNvcHkgdGVzdA0KPiArPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gDQo+ICAxLiBCaW5kIG9uZSA0MEcg cG9ydCB0byBpZ2JfdWlvLCB0aGVuIGxhdW5jaCB0ZXN0cG1kIGJ5IGJlbG93IGNvbW1hbmQ6Og0K PiANCj4gQEAgLTg1LDkgKzg4LDggQEAgVGVzdCB0b3BvbG9neTogVEcgLS0+IE5JQyAtLT4gVmhv c3QgLS0+IFZpcnRpbyAtLT4gVmhvc3QgLS0+DQo+IE5JQyAtLT4gVEcNCj4gDQo+ICA2LiBSZXBl YXQgdGhlIHRlc3Qgd2l0aCBkZXF1ZXVlLXplcm8tY29weT0wLCBjb21wYXJlIHRoZSBwZXJmb3Jt YW5jZQ0KPiBnYWlucyBvciBkZWdyYWRhdGlvbi4gRm9yIHNtYWxsIHBhY2tldCwgd2UgbWF5IGV4 cGVjdCB+MjAlIHBlcmZvcm1hbmNlDQo+IGRyb3AsIGJ1dCBmb3IgYmlnIHBhY2tldCwgd2UgZXhw ZWN0IH4yMCUgcGVyZm9ybWFuY2UgZ2FpbnMuDQo+IA0KPiAtVGVzdCBDYXNlIDI6IHB2cCBkZXF1 ZXVlIHplcm8tY29weSB0ZXN0IHdpdGggMiBxdWV1ZXMgLQ0KPiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiAtVGVzdCB0b3BvbG9neTogVEcg LS0+IE5JQyAtLT4gVmhvc3QgLS0+IFZpcnRpbyAtLT4gVmhvc3QgLS0+IE5JQyAtLT4gVEcNCj4g K1Rlc3QgQ2FzZSAyOiBwdnAgc3BsaXQgcmluZyBkZXF1ZXVlIHplcm8tY29weSB0ZXN0IHdpdGgg MiBxdWV1ZXMNCj4gKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQ0KPiA9DQo+IA0KPiAgMS4gQmluZCBvbmUgNDBHIHBvcnQgdG8g aWdiX3VpbywgdGhlbiBsYXVuY2ggdGVzdHBtZCBieSBiZWxvdyBjb21tYW5kOjoNCj4gDQo+IEBA IC0xMjksOSArMTMxLDggQEAgVGVzdCB0b3BvbG9neTogVEcgLS0+IE5JQyAtLT4gVmhvc3QgLS0+ IFZpcnRpbyAtLT4gVmhvc3QNCj4gLS0+IE5JQyAtLT4gVEcNCj4gDQo+ICAgICAgdGVzdHBtZD5z dG9wDQo+IA0KPiAtVGVzdCBDYXNlIDM6IHB2cCBkZXF1ZXVlIHplcm8tY29weSB0ZXN0IHdpdGgg ZHJpdmVyIHVubG9hZCB0ZXN0IC0NCj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+IC1UZXN0IHRvcG9sb2d5OiBURyAtLT4g TklDIC0tPiBWaG9zdCAtLT4gVmlydGlvIC0tPiBWaG9zdCAtLT4gTklDIC0tPiBURw0KPiArVGVz dCBDYXNlIDM6IHB2cCBzcGxpdCByaW5nIGRlcXVldWUgemVyby1jb3B5IHRlc3Qgd2l0aCBkcml2 ZXIgcmVsb2FkDQo+ICt0ZXN0DQo+ICs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gPT09PT09PT0NCj4gKz09PQ0KPiANCj4g IDEuIEJpbmQgb25lIDQwRyBwb3J0IHRvIGlnYl91aW8sIHRoZW4gbGF1bmNoIHRlc3RwbWQgYnkg YmVsb3cgY29tbWFuZDo6DQo+IA0KPiBAQCAtMTgzLDE5ICsxODQsMTcgQEAgVGVzdCB0b3BvbG9n eTogVEcgLS0+IE5JQyAtLT4gVmhvc3QgLS0+IFZpcnRpbyAtLT4NCj4gVmhvc3QgLS0+IE5JQyAt LT4gVEcNCj4gDQo+ICAgICAgdGVzdHBtZD5zdG9wDQo+IA0KPiAtVGVzdCBDYXNlIDQ6IHB2cCBk ZXF1ZXVlIHplcm8tY29weSB0ZXN0IHdpdGggbWF4aW11bSB0eGZyZWV0IC0NCj4gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+IC1U ZXN0IHRvcG9sb2d5OiBURyAtLT4gTklDIC0tPiBWaG9zdCAtLT4gVmlydGlvIC0tPiBWaG9zdCAt LT4gTklDIC0tPiBURw0KPiArVGVzdCBDYXNlIDQ6IHB2cCBzcGxpdCByaW5nIGRlcXVldWUgemVy by1jb3B5IHRlc3Qgd2l0aCBtYXhpbXVtIHR4ZnJlZXQNCj4gKz09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA9PT09PT09PQ0K PiANCj4gIDEuIEJpbmQgb25lIDQwRyBwb3J0IHRvIGlnYl91aW8sIHRoZW4gbGF1bmNoIHRlc3Rw bWQgYnkgYmVsb3cgY29tbWFuZDo6DQo+IA0KPiAtICAgIHJtIC1yZiB2aG9zdC1uZXQqDQo+IC0g ICAgLi90ZXN0cG1kIC1sIDEtNSAtbiA0IC0tc29ja2V0LW1lbSAxMDI0LDEwMjQgXA0KPiArICAg ICAuL3Rlc3RwbWQgLWwgMS01IC1uIDQgLS1zb2NrZXQtbWVtIDEwMjQsMTAyNCBcDQo+ICAgICAg LS12ZGV2ICdldGhfdmhvc3QwLGlmYWNlPXZob3N0LW5ldCxxdWV1ZXM9MTYsZGVxdWV1ZS16ZXJv LQ0KPiBjb3B5PTEsY2xpZW50PTEnIC0tIFwNCj4gLSAgICAtaSAtLW5iLWNvcmVzPTQgLS1yeHE9 MTYgLS10eHE9MTYgLS10eGQ9MTAyNCAtLXJ4ZD0xMDI0IC0tdHhmcmVldD0xMDIwIC0tDQo+IHR4 cnM9NA0KPiArICAgIC1pIC0tbmItY29yZXM9NCAtLXJ4cT0xNiAtLXR4cT0xNiAgLS10eGZyZWV0 PTk4OCAtLXR4cnM9NCAtLXR4ZD05OTINCj4gKyAtLXJ4ZD05OTINCj4gICAgICB0ZXN0cG1kPnNl dCBmd2QgbWFjDQo+IA0KPiAtMi4gTGF1bmNoIFZNIHdpdGggdmVjdG9ycz0yKnF1ZXVlX251bSsy IGFuZCBtcmdfcnhidWYvbXEgZmVhdHVyZSBvbiwNCj4gbm90ZSB0aGF0IHFlbXVfdmVyc2lvbiBu ZWVkID4gcWVtdV8yLjEwIGZvciBzdXBwb3J0IGFkanVzdGluZyBwYXJhbWV0ZXINCj4gcnhfcXVl dWVfc2l6ZTo6DQo+ICsyLiBMYXVuY2ggVk0gd2l0aCB2ZWN0b3JzPTIqcXVldWVfbnVtKzIgYW5k IG1yZ19yeGJ1Zi9tcSBmZWF0dXJlIG9uLA0KPiBub3RlIHRoYXQgcWVtdV92ZXJzaW9uIG5lZWQ+ cWVtdV8yLjEwIGZvciBzdXBwb3J0IGFkanVzdGluZyBwYXJhbWV0ZXINCj4gcnhfcXVldWVfc2l6 ZTo6DQo+IA0KPiAgICAgIHFlbXUtc3lzdGVtLXg4Nl82NCAtbmFtZSB2bTEgXA0KPiAgICAgICAt Y3B1IGhvc3QgLWVuYWJsZS1rdm0gLW0gNDA5NiAtb2JqZWN0IG1lbW9yeS1iYWNrZW5kLQ0KPiBm aWxlLGlkPW1lbSxzaXplPTQwOTZNLG1lbS1wYXRoPS9tbnQvaHVnZSxzaGFyZT1vbiAtbnVtYQ0K PiBub2RlLG1lbWRldj1tZW0gLW1lbS1wcmVhbGxvYyBcIEBAIC0yMjYsMTI5ICsyMjUsMTY1IEBA IFRlc3QNCj4gdG9wb2xvZ3k6IFRHIC0tPiBOSUMgLS0+IFZob3N0IC0tPiBWaXJ0aW8gLS0+IFZo b3N0IC0tPiBOSUMgLS0+IFRHDQo+IA0KPiAgICAgIHRlc3RwbWQ+c3RvcA0KPiANCj4gLVRlc3Qg Q2FzZSA1OiB2aG9zdC11c2VyICsgdmlydGlvLW5ldCBWTTJWTSBkZXF1ZXVlIHplcm8tY29weSB0 ZXN0DQo+ICtUZXN0IENhc2UgNTogcHZwIHNwbGl0IHJpbmcgZGVxdWV1ZSB6ZXJvLWNvcHkgdGVz dCB3aXRoIHZlY3Rvcl9yeCBwYXRoDQo+ICs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gPT09PT09PQ0KPiArDQo+ICsxLiBC aW5kIG9uZSBwb3J0IHRvIGlnYl91aW8sIHRoZW4gbGF1bmNoIHZob3N0IGJ5IGJlbG93IGNvbW1h bmQ6Og0KPiArDQo+ICsgICAgcm0gLXJmIHZob3N0LW5ldCoNCj4gKyAgICAuL3g4Nl82NC1uYXRp dmUtbGludXhhcHAtZ2NjL2FwcC90ZXN0cG1kIC1uIDQgLWwgMi00ICAtLXNvY2tldC1tZW0NCj4g MTAyNCwxMDI0IC0tbGVnYWN5LW1lbSBcDQo+ICsgICAgLS1maWxlLXByZWZpeD12aG9zdCAtLXZk ZXYgJ25ldF92aG9zdDAsaWZhY2U9dmhvc3QtDQo+IG5ldCxxdWV1ZXM9MSxjbGllbnQ9MCxkZXF1 ZXVlLXplcm8tY29weT0xJyBcDQo+ICsgICAgLS0gLWkgLS1uYi1jb3Jlcz0xIC0tdHhkPTEwMjQg LS1yeGQ9MTAyNCAtLXR4ZnJlZXQ9OTkyIC0tdHhycz0zMg0KPiArICAgIHRlc3RwbWQ+c2V0IGZ3 ZCBtYWMNCj4gKyAgICB0ZXN0cG1kPnN0YXJ0DQo+ICsNCj4gKzIuIExhdW5jaCB2aXJ0aW8tdXNl ciBieSBiZWxvdyBjb21tYW5kOjoNCj4gKw0KPiArICAgIC4veDg2XzY0LW5hdGl2ZS1saW51eGFw cC1nY2MvYXBwL3Rlc3RwbWQgLW4gNCAtbCA1LTYgLS1zb2NrZXQtbWVtDQo+IDEwMjQsMTAyNCBc DQo+ICsgICAgLS1sZWdhY3ktbWVtIC0tbm8tcGNpIC0tZmlsZS1wcmVmaXg9dmlydGlvIFwNCj4g KyAgICAtLXZkZXY9bmV0X3ZpcnRpb191c2VyMCxtYWM9MDA6MDE6MDI6MDM6MDQ6MDUscGF0aD0u L3Zob3N0LQ0KPiBuZXQsaW5fb3JkZXI9MCxtcmdfcnhidWY9MCxxdWV1ZV9zaXplPTEwMjQgXA0K PiArICAgIC0tIC1pIC0tdHgtb2ZmbG9hZHM9MHgwIC0tbmItY29yZXM9MSAtLXR4ZD0xMDI0IC0t cnhkPTEwMjQNCj4gKyAgICA+c2V0IGZ3ZCBtYWMNCj4gKyAgICA+c3RhcnQNCj4gKw0KPiArMy4g U2VuZCBwYWNrZXQgd2l0aCBwYWNrZXQgZ2VuZXJhdG9yIHdpdGggZGlmZmVyZW50IHBhY2tldCBz aXplLGluY2x1ZGVzIFs2NCwNCj4gMTI4LCAyNTYsIDUxMiwgMTAyNCwgMTUxOF0sIGNoZWNrIHRo ZSB0aHJvdWdocHV0IHdpdGggYmVsb3cgY29tbWFuZDo6DQo+ICsNCj4gKyAgICB0ZXN0cG1kPnNo b3cgcG9ydCBzdGF0cyBhbGwNCj4gKw0KPiArNC4gUmVwZWF0IHRoZSB0ZXN0IHdpdGggZGVxdWV1 ZS16ZXJvLWNvcHk9MCwgY29tcGFyZSB0aGUgcGVyZm9ybWFuY2UNCj4gZ2FpbnMgb3IgZGVncmFk YXRpb24uIEZvciBzbWFsbCBwYWNrZXQsIHdlIG1heSBleHBlY3QgfjIwJSBwZXJmb3JtYW5jZQ0K PiBkcm9wLCBidXQgZm9yIGJpZyBwYWNrZXQsIHdlIGV4cGVjdCB+MjAlIHBlcmZvcm1hbmNlIGdh aW5zLg0KPiArDQo+ICtUZXN0IENhc2UgNjogcHZwIHBhY2tlZCByaW5nIGRlcXVldWUgemVyby1j b3B5IHRlc3QNCj4gKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQ0KPiArDQo+ICsxLiBCaW5kIG9uZSA0MEcgcG9ydCB0byBpZ2JfdWlvLCB0aGVuIGxh dW5jaCB0ZXN0cG1kIGJ5IGJlbG93IGNvbW1hbmQ6Og0KPiArDQo+ICsgICAgcm0gLXJmIHZob3N0 LW5ldCoNCj4gKyAgICAuL3Rlc3RwbWQgLWMgMHhlIC1uIDQgLS1zb2NrZXQtbWVtIDEwMjQsMTAy NCBcDQo+ICsgICAgLS12ZGV2ICdldGhfdmhvc3QwLGlmYWNlPXZob3N0LW5ldCxxdWV1ZXM9MSxk ZXF1ZXVlLXplcm8tY29weT0xJyAtLSBcDQo+ICsgICAgLWkgLS1uYi1jb3Jlcz0xIC0tdHhkPTEw MjQgLS1yeGQ9MTAyNCAtLXR4ZnJlZXQ9OTkyDQo+ICsgICAgdGVzdHBtZD5zZXQgZndkIG1hYw0K PiArDQo+ICsyLiBMYXVuY2ggVk0gd2l0aCBtcmdfcnhidWYgZmVhdHVyZSBvbiwgbm90ZSB0aGF0 IHFlbXVfdmVyc2lvbiBuZWVkID4NCj4gcWVtdV8yLjEwIGZvciBzdXBwb3J0IGFkanVzdGluZyBw YXJhbWV0ZXIgcnhfcXVldWVfc2l6ZTo6DQo+ICsNCj4gKyAgICBxZW11LXN5c3RlbS14ODZfNjQg LW5hbWUgdm0xIFwNCj4gKyAgICAgLWNwdSBob3N0IC1lbmFibGUta3ZtIC1tIDQwOTYgLW9iamVj dCBtZW1vcnktYmFja2VuZC0NCj4gZmlsZSxpZD1tZW0sc2l6ZT00MDk2TSxtZW0tcGF0aD0vbW50 L2h1Z2Usc2hhcmU9b24gLW51bWENCj4gbm9kZSxtZW1kZXY9bWVtIC1tZW0tcHJlYWxsb2MgXA0K PiArICAgICAtc21wIGNvcmVzPTUsc29ja2V0cz0xIC1kcml2ZSBmaWxlPS9ob21lL29zaW1nL3Vi dW50dTE2LmltZyAgXA0KPiArICAgICAtbW9uaXRvciB1bml4Oi90bXAvdm0yX21vbml0b3Iuc29j ayxzZXJ2ZXIsbm93YWl0IC1uZXQNCj4gbmljLHZsYW49MixtYWNhZGRyPTAwOjAwOjAwOjA4OmU4 OmFhLGFkZHI9MWYgXA0KPiArICAgICAtbmV0IHVzZXIsdmxhbj0yLGhvc3Rmd2Q9dGNwOjEyNy4w LjAuMTo2MDAyLToyMiBcDQo+ICsgICAgIC1jaGFyZGV2IHNvY2tldCxpZD1jaGFyMCxwYXRoPS4v dmhvc3QtbmV0IFwNCj4gKyAgICAgLW5ldGRldiB0eXBlPXZob3N0LXVzZXIsaWQ9bXluZXQxLGNo YXJkZXY9Y2hhcjAsdmhvc3Rmb3JjZSBcDQo+ICsgICAgIC1kZXZpY2UgdmlydGlvLW5ldC0NCj4g cGNpLG1hYz01Mjo1NDowMDowMDowMDowMSxuZXRkZXY9bXluZXQxLG1yZ19yeGJ1Zj1vbixyeF9x dWV1ZV9zaXplPTEwDQo+IDI0LHR4X3F1ZXVlX3NpemU9MTAyNCxwYWNrZWQ9b24gXA0KPiArICAg ICAtdm5jIDoxMA0KPiArDQo+ICszLiBPbiBWTSwgYmluZCB2aXJ0aW8gbmV0IHRvIGlnYl91aW8g YW5kIHJ1biB0ZXN0cG1kOjoNCj4gKw0KPiArICAgIC4vZHBkay1kZXZiaW5kLnB5IC0tYmluZD1p Z2JfdWlvIHh4Onh4LngNCj4gKyAgICAuL3Rlc3RwbWQgLWMgMHgzIC1uIDQgLS0gLWkgLS1uYi1j b3Jlcz0xIC0tdHhkPTEwMjQgLS1yeGQ9MTAyNA0KPiArICAgIHRlc3RwbWQ+c2V0IGZ3ZCBtYWMN Cj4gKyAgICB0ZXN0cG1kPnN0YXJ0DQo+ICsNCj4gKzQuIFN0YXJ0IHRlc3RwbWQgYXQgaG9zdCBz aWRlIGFmdGVyIFZNIGFuZCB2aXJ0aW8tcG1kIGxhdW5jaGVkOjoNCj4gKw0KPiArICAgIHRlc3Rw bWQ+c3RhcnQNCj4gKw0KPiArNS4gU2VuZCBwYWNrZXRzIGJ5IHBhY2tldCBnZW5lcmF0b3Igd2l0 aCBkaWZmZXJlbnQgcGFja2V0IHNpemVzDQo+ICg2NCwxMjgsMjU2LDUxMiwxMDI0LDE1MTgpLCBz aG93IHRocm91Z2hwdXQgd2l0aCBiZWxvdyBjb21tYW5kOjoNCj4gKw0KPiArICAgIHRlc3RwbWQ+ c2hvdyBwb3J0IHN0YXRzIGFsbA0KPiArDQo+ICs2LiBSZXBlYXQgdGhlIHRlc3Qgd2l0aCBkZXF1 ZXVlLXplcm8tY29weT0wLCBjb21wYXJlIHRoZSBwZXJmb3JtYW5jZQ0KPiBnYWlucyBvciBkZWdy YWRhdGlvbi4gRm9yIHNtYWxsIHBhY2tldCwgd2UgbWF5IGV4cGVjdCB+MjAlIHBlcmZvcm1hbmNl DQo+IGRyb3AsIGJ1dCBmb3IgYmlnIHBhY2tldCwgd2UgZXhwZWN0IH4yMCUgcGVyZm9ybWFuY2Ug Z2FpbnMuDQo+ICsNCj4gK1Rlc3QgQ2FzZSA3OiBwdnAgcGFja2VkIHJpbmcgZGVxdWV1ZSB6ZXJv LWNvcHkgdGVzdCB3aXRoIDIgcXVldWVzDQo+IA0KPiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ID0NCj4gLVRlc3QgdG9w b2xvZ3k6IFZpcnRpby1uZXQgPC0+IFZob3N0IDwtPiBUZXN0cG1kIDwtPiBWaG9zdCA8LT4gVmly dGlvLW5ldA0KPiANCj4gLTEuIExhdW5jaCB0aGUgVmhvc3Qgc2FtcGxlIGJ5IGJlbG93IGNvbW1h bmRzOjoNCj4gKzEuIEJpbmQgb25lIDQwRyBwb3J0IHRvIGlnYl91aW8sIHRoZW4gbGF1bmNoIHRl c3RwbWQgYnkgYmVsb3cgY29tbWFuZDo6DQo+IA0KPiAgICAgIHJtIC1yZiB2aG9zdC1uZXQqDQo+ IC0gICAgdGVzdHBtZD4uL3Rlc3RwbWQgLWMgMHhGMDAwMDAwMCAtbiA0IC0tc29ja2V0LW1lbSAy MDQ4LDIwNDggLS1sZWdhY3ktDQo+IG1lbSAtLW5vLXBjaSAtLWZpbGUtcHJlZml4PXZob3N0IC0t dmRldiAnbmV0X3Zob3N0MCxpZmFjZT12aG9zdC0NCj4gbmV0MCxxdWV1ZXM9MSxkZXF1ZXVlLXpl cm8tY29weT0xJyAtLXZkZXYgJ25ldF92aG9zdDEsaWZhY2U9dmhvc3QtDQo+IG5ldDEscXVldWVz PTEsZGVxdWV1ZS16ZXJvLWNvcHk9MScgIC0tIC1pIC0tbmItY29yZXM9MSAtLXR4ZD0xMDI0IC0t DQo+IHJ4ZD0xMDI0IC0tdHhmcmVldD05OTINCj4gKyAgICAuL3Rlc3RwbWQgLWwgMi00IC1uIDQg LS1zb2NrZXQtbWVtIDEwMjQsMTAyNCBcDQo+ICsgICAgLS12ZGV2ICdldGhfdmhvc3QwLGlmYWNl PXZob3N0LW5ldCxxdWV1ZXM9MixkZXF1ZXVlLXplcm8tY29weT0xJyAtLSBcDQo+ICsgICAgLWkg LS1uYi1jb3Jlcz0yIC0tcnhxPTIgLS10eHE9MiAtLXR4ZD0xMDI0IC0tcnhkPTEwMjQgLS10eGZy ZWV0PTk5Mg0KPiArICAgIHRlc3RwbWQ+c2V0IGZ3ZCBtYWMNCj4gKw0KPiArMi4gTGF1bmNoIFZN IHdpdGggdmVjdG9ycz0yKnF1ZXVlX251bSsyIGFuZCBtcmdfcnhidWYvbXEgZmVhdHVyZSBvbiwN Cj4gbm90ZSB0aGF0IHFlbXVfdmVyc2lvbiBuZWVkID4gcWVtdV8yLjEwIGZvciBzdXBwb3J0IGFk anVzdGluZyBwYXJhbWV0ZXINCj4gcnhfcXVldWVfc2l6ZTo6DQo+ICsNCj4gKyAgICBxZW11LXN5 c3RlbS14ODZfNjQgLW5hbWUgdm0xIFwNCj4gKyAgICAgLWNwdSBob3N0IC1lbmFibGUta3ZtIC1t IDQwOTYgLW9iamVjdCBtZW1vcnktYmFja2VuZC0NCj4gZmlsZSxpZD1tZW0sc2l6ZT00MDk2TSxt ZW0tcGF0aD0vbW50L2h1Z2Usc2hhcmU9b24gLW51bWENCj4gbm9kZSxtZW1kZXY9bWVtIC1tZW0t cHJlYWxsb2MgXA0KPiArICAgICAtc21wIGNvcmVzPTUsc29ja2V0cz0xIC1kcml2ZSBmaWxlPS9o b21lL29zaW1nL3VidW50dTE2LmltZyAgXA0KPiArICAgICAtbW9uaXRvciB1bml4Oi90bXAvdm0y X21vbml0b3Iuc29jayxzZXJ2ZXIsbm93YWl0IC1uZXQNCj4gbmljLHZsYW49MixtYWNhZGRyPTAw OjAwOjAwOjA4OmU4OmFhLGFkZHI9MWYgXA0KPiArICAgICAtbmV0IHVzZXIsdmxhbj0yLGhvc3Rm d2Q9dGNwOjEyNy4wLjAuMTo2MDAyLToyMiBcDQo+ICsgICAgIC1jaGFyZGV2IHNvY2tldCxpZD1j aGFyMCxwYXRoPS4vdmhvc3QtbmV0IFwNCj4gKyAgICAgLW5ldGRldiB0eXBlPXZob3N0LXVzZXIs aWQ9bXluZXQxLGNoYXJkZXY9Y2hhcjAsdmhvc3Rmb3JjZSxxdWV1ZXM9Mg0KPiBcDQo+ICsgICAg IC1kZXZpY2UgdmlydGlvLW5ldC0NCj4gcGNpLG1hYz01Mjo1NDowMDowMDowMDowMSxuZXRkZXY9 bXluZXQxLG1yZ19yeGJ1Zj1vbixtcT1vbix2ZWN0b3JzPTgsDQo+IHJ4X3F1ZXVlX3NpemU9MTAy NCx0eF9xdWV1ZV9zaXplPTEwMjQscGFja2VkPW9uIFwNCj4gKyAgICAgLXZuYyA6MTANCj4gKw0K PiArMy4gT24gVk0sIGJpbmQgdmRldiB0byBpZ2JfdWlvIGFuZCBydW4gdGVzdHBtZDo6DQo+ICsN Cj4gKyAgICAuL3VzZXJ0b29scy9kcGRrLWRldmJpbmQucHkgLS1iaW5kPWlnYl91aW8geHg6eHgu eA0KPiArICAgIC4vdGVzdHBtZCAtYyAweDA3IC1uIDQgLS0gLWkgXA0KPiArICAgIC0tcnhxPTIg LS10eHE9MiAtLXR4ZD0xMDI0IC0tcnhkPTEwMjQgLS1uYi1jb3Jlcz0yDQo+ICsgICAgdGVzdHBt ZD5zZXQgZndkIG1hYw0KPiAgICAgIHRlc3RwbWQ+c3RhcnQNCj4gDQo+IC0yLiBMYXVuY2ggVk0x IGFuZCBWTTI6Og0KPiAtDQo+IC0gICAgdGFza3NldCAtYyAzMi0zMyBcDQo+IC0gICAgcWVtdS1z eXN0ZW0teDg2XzY0IC1uYW1lIHVzLXZob3N0LXZtMSBcDQo+IC0gICAgIC1jcHUgaG9zdCAtZW5h YmxlLWt2bSAtbSAyMDQ4IC1vYmplY3QgbWVtb3J5LWJhY2tlbmQtDQo+IGZpbGUsaWQ9bWVtLHNp emU9MjA0OE0sbWVtLXBhdGg9L21udC9odWdlLHNoYXJlPW9uIC1udW1hDQo+IG5vZGUsbWVtZGV2 PW1lbSAtbWVtLXByZWFsbG9jIFwNCj4gLSAgICAgLXNtcCBjb3Jlcz0yLHNvY2tldHM9MSAtZHJp dmUgZmlsZT0vaG9tZS9vc2ltZy91YnVudHUxNi0xLmltZyAgXA0KPiAtICAgICAtbW9uaXRvciB1 bml4Oi90bXAvdm0yX21vbml0b3Iuc29jayxzZXJ2ZXIsbm93YWl0IC1uZXQNCj4gbmljLHZsYW49 MixtYWNhZGRyPTAwOjAwOjAwOjA4OmU4OmFhLGFkZHI9MWYgLW5ldA0KPiB1c2VyLHZsYW49Mixo b3N0ZndkPXRjcDoxMjcuMC4wLjE6NjAwNC06MjIgXA0KPiAtICAgICAtY2hhcmRldiBzb2NrZXQs aWQ9Y2hhcjAscGF0aD0uL3Zob3N0LW5ldDAgLW5ldGRldiB0eXBlPXZob3N0LQ0KPiB1c2VyLGlk PW15bmV0MSxjaGFyZGV2PWNoYXIwLHZob3N0Zm9yY2UgXA0KPiAtICAgICAtZGV2aWNlIHZpcnRp by1uZXQtDQo+IHBjaSxtYWM9NTI6NTQ6MDA6MDA6MDA6MDEsbmV0ZGV2PW15bmV0MSxtcmdfcnhi dWY9b24sY3N1bT1vbixnc289b24sDQo+IGd1ZXN0X2NzdW09b24saG9zdF90c280PW9uLGd1ZXN0 X3RzbzQ9b24sZ3Vlc3RfZWNuPW9uIFwNCj4gLSAgICAgLXZuYyA6MTAgLWRhZW1vbml6ZQ0KPiAt DQo+IC0gICAgdGFza3NldCAtYyAzNC0zNSBcDQo+IC0gICAgcWVtdS1zeXN0ZW0teDg2XzY0IC1u YW1lIHVzLXZob3N0LXZtMiBcDQo+IC0gICAgIC1jcHUgaG9zdCAtZW5hYmxlLWt2bSAtbSAyMDQ4 IC1vYmplY3QgbWVtb3J5LWJhY2tlbmQtDQo+IGZpbGUsaWQ9bWVtLHNpemU9MjA0OE0sbWVtLXBh dGg9L21udC9odWdlLHNoYXJlPW9uIC1udW1hDQo+IG5vZGUsbWVtZGV2PW1lbSAtbWVtLXByZWFs bG9jIFwNCj4gLSAgICAgLXNtcCBjb3Jlcz0yLHNvY2tldHM9MSAtZHJpdmUgZmlsZT0vaG9tZS9v c2ltZy91YnVudHUxNi0yLmltZyBcDQo+IC0gICAgIC1tb25pdG9yIHVuaXg6L3RtcC92bTJfbW9u aXRvci5zb2NrLHNlcnZlcixub3dhaXQgLW5ldA0KPiBuaWMsdmxhbj0yLG1hY2FkZHI9MDA6MDA6 MDA6MDg6ZTg6YWEsYWRkcj0xZiAtbmV0DQo+IHVzZXIsdmxhbj0yLGhvc3Rmd2Q9dGNwOjEyNy4w LjAuMTo2MDA1LToyMiBcDQo+IC0gICAgIC1jaGFyZGV2IHNvY2tldCxpZD1jaGFyMSxwYXRoPS4v dmhvc3QtbmV0MSAtbmV0ZGV2IHR5cGU9dmhvc3QtDQo+IHVzZXIsaWQ9bXluZXQyLGNoYXJkZXY9 Y2hhcjEsdmhvc3Rmb3JjZSBcDQo+IC0gICAgIC1kZXZpY2UgdmlydGlvLW5ldC0NCj4gcGNpLG1h Yz01Mjo1NDowMDowMDowMDowMixuZXRkZXY9bXluZXQyLG1yZ19yeGJ1Zj1vbixjc3VtPW9uLGdz bz1vbiwNCj4gZ3Vlc3RfY3N1bT1vbixob3N0X3RzbzQ9b24sZ3Vlc3RfdHNvND1vbixndWVzdF9l Y249b24gIFwNCj4gLSAgICAgLXZuYyA6MTEgLWRhZW1vbml6ZQ0KPiAtDQo+IC0zLiBPbiBWTTEs IHNldCB2aXJ0aW8gZGV2aWNlIElQIGFuZCBydW4gYXJwIHByb3RvY2FsOjoNCj4gLQ0KPiAtICAg IGlmY29uZmlnIGVuczMgMS4xLjEuMg0KPiAtICAgIGFycCAtcyAxLjEuMS44IDUyOjU0OjAwOjAw OjAwOjAyDQo+IC0NCj4gLTQuIE9uIFZNMiwgc2V0IHZpcnRpbyBkZXZpY2UgSVAgYW5kIHJ1biBh cnAgcHJvdG9jYWw6Og0KPiAtDQo+IC0gICAgaWZjb25maWcgZW5zMyAxLjEuMS44DQo+IC0gICAg YXJwIC1zIDEuMS4xLjIgNTI6NTQ6MDA6MDA6MDA6MDENCj4gLQ0KPiAtNS4gQ2hlY2sgdGhlIGlw ZXJmIHBlcmZvcm1hbmNlIGJldHdlZW4gdHdvIFZNcyBieSBiZWxvdyBjb21tYW5kczo6DQo+IC0N Cj4gLSAgICBVbmRlciBWTTEsIHJ1bjogYGlwZXJmIC1zIC1pIDFgDQo+IC0gICAgVW5kZXIgVk0y LCBydW46IGBpcGVyZiAtYyAxLjEuMS4yIC1pIDEgLXQgMzBgDQo+IC0NCj4gLTYuIENoZWNrIGJv dGggMlZNIGNhbiByZWNlaXZlIGFuZCBzZW5kIGJpZyBwYWNrZXRzIHRvIGVhY2ggb3RoZXI6Og0K PiAtDQo+IC0gICAgdGVzdHBtZD5zaG93IHBvcnQgeHN0YXRzIGFsbA0KPiAtICAgIFBvcnQgMCBz aG91bGQgaGF2ZSB0eCBwYWNrZXRzIGFib3ZlIDE1MjINCj4gLSAgICBQb3J0IDEgc2hvdWxkIGhh dmUgcnggcGFja2V0cyBhYm92ZSAxNTIyDQo+IC0NCj4gLVByZXJlcXVpc2l0ZXMNCj4gLT09PT09 PT09PT09PT0NCj4gLQ0KPiAtTW9kaWZ5IHRoZSB0ZXN0cG1kIGNvZGUgYXMgZm9sbG93aW5nOjoN Cj4gLQ0KPiAtICAgIC0tLSBhL2FwcC90ZXN0LXBtZC9jc3Vtb25seS5jDQo+IC0gICAgKysrIGIv YXBwL3Rlc3QtcG1kL2NzdW1vbmx5LmMNCj4gLSAgICBAQCAtNjkzLDEwICs2OTMsMTIgQEAgcGt0 X2J1cnN0X2NoZWNrc3VtX2ZvcndhcmQoc3RydWN0DQo+IGZ3ZF9zdHJlYW0gKmZzKQ0KPiAtICAg IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICogYW5kIGlubmVyIGhlYWRlcnMgKi8N Cj4gLQ0KPiAtICAgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBldGhfaGRyID0gcnRl X3BrdG1idWZfbXRvZChtLCBzdHJ1Y3QgZXRoZXJfaGRyICopOw0KPiAtICAgICsjaWYgMA0KPiAt ICAgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBldGhlcl9hZGRyX2NvcHkoJnBlZXJf ZXRoX2FkZHJzW2ZzLT5wZWVyX2FkZHJdLA0KPiAtICAgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICZldGhfaGRyLT5kX2FkZHIp Ow0KPiAtICAgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBldGhlcl9hZGRyX2NvcHko JnBvcnRzW2ZzLT50eF9wb3J0XS5ldGhfYWRkciwNCj4gLSAgICDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAmZXRoX2hkci0+c19h ZGRyKTsNCj4gLSAgICArI2VuZGlmDQo+IC0gICAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHBhcnNlX2V0aGVybmV0KGV0aF9oZHIsICZpbmZvKTsNCj4gLSAgICDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgbDNfaGRyID0gKGNoYXIgKilldGhfaGRyICsgaW5mby5sMl9sZW47 DQo+IC0NCj4gLVRlc3QgQ2FzZSA2OiBWTTJOaWMgZGVxdWV1ZSB6ZXJvIGNvcHkgdGVzdCB3aXRo IHRzbyBvZmZsb2FkIGVuYWJsZWQgLQ0KPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ID09PQ0KPiAtVGVzdCB0b3BvbG9n eTogTklDMihJbiBrZXJuZWwpIDwtIE5JQzEoRFBESykgPC0gdGVzdHBtZChjc3VtIGZ3ZCkgPC0g Vmhvc3QNCj4gPC0gVmlydGlvLW5ldA0KPiAtDQo+IC0xLiBDb25uZWN0IHR3byBuaWMgcG9ydCBk aXJlY3RseSwgcHV0IG5pYzIgaW50byBhbm90aGVyIG5hbWVzYXBjZSBhbmQgdHVybg0KPiBvbiB0 aGUgZ3JvIG9mIHRoaXMgbmljIHBvcnQgYnkgYmVsb3cgY21kczo6DQo+IC0NCj4gLSAgICBpcCBu ZXRucyBkZWwgbnMxDQo+IC0gICAgaXAgbmV0bnMgYWRkIG5zMQ0KPiAtICAgIGlwIGxpbmsgc2V0 IFtlbnAyMTZzMGYwXSBuZXRucyBuczEgICAgICAgICAgICAgICAgICAgIyBbZW5wMjE2czBmMF0g aXMgdGhlIG5hbWUgb2YNCj4gbmljMg0KPiAtICAgIGlwIG5ldG5zIGV4ZWMgbnMxIGlmY29uZmln IFtlbnAyMTZzMGYwXSAxLjEuMS44IHVwDQo+IC0gICAgaXAgbmV0bnMgZXhlYyBuczEgZXRodG9v bCAtSyBbZW5wMjE2czBmMF0gZ3JvIG9uDQo+IC0NCj4gLTIuIEJpbmQgbmljMSB0byBpZ2JfdWlv LCBsYXVuY2ggdmhvc3QtdXNlciB3aXRoIHRlc3RwbWQ6Og0KPiAtDQo+IC0gICAgLi9kcGRrLWRl dmJpbmQucHkgLWIgaWdiX3VpbyB4eDp4eC54ICAgICAgICMgeHg6eHgueCBpcyB0aGUgcGNpIGFk ZHIgb2YgbmljMQ0KPiAtICAgIC4vdGVzdHBtZCAtbCAyLTQgLW4gNCAtLXNvY2tldC1tZW0gMTAy NCwxMDI0IMKgLS1sZWdhY3ktbWVtIFwNCj4gLSAgICAtLWZpbGUtcHJlZml4PXZob3N0IC0tdmRl diAnbmV0X3Zob3N0MCxpZmFjZT12aG9zdC1uZXQscXVldWVzPTEsY2xpZW50PTAnIC0NCj4gLSAt aSAtLXR4ZD0xMDI0IC0tcnhkPTEwMjQNCj4gLSAgICB0ZXN0cG1kPnNldCBmd2QgY3N1bQ0KPiAt ICAgIHRlc3RwbWQ+cG9ydCBzdG9wIDANCj4gLSAgICB0ZXN0cG1kPmNzdW0gc2V0IHRjcCBodyAw DQo+IC0gICAgdGVzdHBtZD5jc3VtIHNldCBpcCBodyAwDQo+IC0gICAgdGVzdHBtZD5zZXQgcG9y dCAwIGdzbyBvZmYNCj4gLSAgICB0ZXN0cG1kPnRzbyBzZXQgMTQ2MCAwDQo+IC0gICAgdGVzdHBt ZD5wb3J0IHN0YXJ0IDANCj4gKzQuIFN0YXJ0IHRlc3RwbWQgYXQgaG9zdCBzaWRlIGFmdGVyIFZN IGFuZCB2aXJ0aW8tcG1kIGxhdW5jaGVkOjoNCj4gKw0KPiAgICAgIHRlc3RwbWQ+c3RhcnQNCj4g DQo+IC0zLiAgU2V0IHVwIHZtIHdpdGggdmlydG8gZGV2aWNlIGFuZCB1c2luZyBrZXJuZWwgdmly dGlvLW5ldCBkcml2ZXI6DQo+ICs1LiBTZW5kIHBhY2tldHMgYnkgcGFja2V0IGdlbmVyYXRvciB3 aXRoIGRpZmZlcmVudCBwYWNrZXQgc2l6ZXMNCj4gKDY0LDEyOCwyNTYsNTEyLDEwMjQsMTUxOCks IHNob3cgdGhyb3VnaHB1dCB3aXRoIGJlbG93IGNvbW1hbmQ6Og0KPiArDQo+ICsgICAgdGVzdHBt ZD5zaG93IHBvcnQgc3RhdHMgYWxsDQo+IA0KPiAtICA6Og0KPiArNi4gQ2hlY2sgZWFjaCBxdWV1 ZSdzIHJ4L3R4IHBhY2tldCBudW1iZXJzIGF0IHZob3N0IHNpZGU6Og0KPiANCj4gLSAgICB0YXNr c2V0IC1jIDEzIFwNCj4gLSAgICBxZW11LXN5c3RlbS14ODZfNjQgLW5hbWUgdXMtdmhvc3Qtdm0x IFwNCj4gLSAgICAgICAtY3B1IGhvc3QgLWVuYWJsZS1rdm0gLW0gMjA0OCAtb2JqZWN0IG1lbW9y eS1iYWNrZW5kLQ0KPiBmaWxlLGlkPW1lbSxzaXplPTIwNDhNLG1lbS1wYXRoPS9tbnQvaHVnZSxz aGFyZT1vbiBcDQo+IC0gICAgICAgLW51bWEgbm9kZSxtZW1kZXY9bWVtIFwNCj4gLSAgICAgICAt bWVtLXByZWFsbG9jIC1tb25pdG9yIHVuaXg6L3RtcC92bTJfbW9uaXRvci5zb2NrLHNlcnZlcixu b3dhaXQgLQ0KPiBuZXQgbmljLHZsYW49MixtYWNhZGRyPTAwOjAwOjAwOjA4OmU4OmFhLGFkZHI9 MWYgLW5ldA0KPiB1c2VyLHZsYW49Mixob3N0ZndkPXRjcDoxMjcuMC4wLjE6NjAwMS06MjIgXA0K PiAtICAgICAgIC1zbXAgY29yZXM9MSxzb2NrZXRzPTEgLWRyaXZlIGZpbGU9L2hvbWUvb3NpbWcv dWJ1bnR1MTYuaW1nICBcDQo+IC0gICAgICAgLWNoYXJkZXYgc29ja2V0LGlkPWNoYXIwLHBhdGg9 Li92aG9zdC1uZXQgXA0KPiAtICAgICAgIC1uZXRkZXYgdHlwZT12aG9zdC11c2VyLGlkPW15bmV0 MSxjaGFyZGV2PWNoYXIwLHZob3N0Zm9yY2UgXA0KPiAtICAgICAgIC1kZXZpY2UgdmlydGlvLW5l dC0NCj4gcGNpLG1hYz01Mjo1NDowMDowMDowMDowMSxuZXRkZXY9bXluZXQxLG1yZ19yeGJ1Zj1v bixjc3VtPW9uLGdzbz1vbiwNCj4gaG9zdF90c280PW9uLGd1ZXN0X3RzbzQ9b24scnhfcXVldWVf c2l6ZT0xMDI0LHR4X3F1ZXVlX3NpemU9MTAyNCAtDQo+IHZuYyA6MTAgLWRhZW1vbml6ZQ0KPiAr ICAgIHRlc3RwbWQ+c3RvcA0KPiANCj4gLTQuIEluIHZtLCBjb25maWcgdGhlIHZpcnRpby1uZXQg ZGV2aWNlIHdpdGggaXA6Og0KPiArVGVzdCBDYXNlIDg6IHB2cCBwYWNrZWQgcmluZyBkZXF1ZXVl IHplcm8tY29weSB0ZXN0IHdpdGggZHJpdmVyIHJlbG9hZA0KPiArdGVzdA0KPiArPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ ID09PT09PT09DQo+ICs9PT09DQo+IA0KPiAtICAgIGlmY29uZmlnIFtlbnMzXSAxLjEuMS4yIHVw ICAjIFtlbnMzXSBpcyB0aGUgbmFtZSBvZiB2aXJ0aW8tbmV0DQo+ICsxLiBCaW5kIG9uZSA0MEcg cG9ydCB0byBpZ2JfdWlvLCB0aGVuIGxhdW5jaCB0ZXN0cG1kIGJ5IGJlbG93IGNvbW1hbmQ6Og0K PiANCj4gLTUuIFN0YXJ0IGlwZXJmIHRlc3QsIHJ1biBpcGVyZiBzZXJ2ZXIgYXQgaG9zdCBzaWRl IGFuZCBpcGVyZiBjbGllbnQgYXQgdm0gc2lkZSwNCj4gY2hlY2sgdGhyb3VnaHB1dCBpbiBsb2c6 Og0KPiArICAgIHJtIC1yZiB2aG9zdC1uZXQqDQo+ICsgICAgLi90ZXN0cG1kIC1sIDEtNSAtbiA0 IC0tc29ja2V0LW1lbSAxMDI0LDEwMjQgXA0KPiArICAgIC0tdmRldiAnZXRoX3Zob3N0MCxpZmFj ZT12aG9zdC1uZXQscXVldWVzPTE2LGRlcXVldWUtemVyby0NCj4gY29weT0xLGNsaWVudD0xJyAt LSBcDQo+ICsgICAgLWkgLS1uYi1jb3Jlcz00IC0tcnhxPTE2IC0tdHhxPTE2IC0tdHhkPTEwMjQg LS1yeGQ9MTAyNCAtLXR4ZnJlZXQ9OTkyDQo+ICsgICAgdGVzdHBtZD5zZXQgZndkIG1hYw0KPiAN Cj4gLSAgICBIb3N0IHNpZGUgOiAgaXAgbmV0bnMgZXhlYyBuczEgaXBlcmYgLXMNCj4gLSAgICBW TSBzaWRlOiAgICAgaXBlcmYgLWMgMS4xLjEuOCAtaSAxIC10IDYwDQo+ICsyLiBMYXVuY2ggVk0g d2l0aCB2ZWN0b3JzPTIqcXVldWVfbnVtKzIgYW5kIG1yZ19yeGJ1Zi9tcSBmZWF0dXJlIG9uLA0K PiBub3RlIHRoYXQgcWVtdV92ZXJzaW9uIG5lZWQgPiBxZW11XzIuMTAgZm9yIHN1cHBvcnQgYWRq dXN0aW5nIHBhcmFtZXRlcg0KPiByeF9xdWV1ZV9zaXplOjoNCj4gDQo+IC02LiBTdGFydCBuZXRw ZXJmIHRlc3QsIHJ1biBuZXRwZXJmIHNlcnZlciBhdCBob3N0IHNpZGUgYW5kIG5ldHBlcmYgY2xp ZW50IGF0IHZtDQo+IHNpZGUsIGNoZWNrIHRocm91Z2hwdXQgaW4gbG9nOjoNCj4gKyAgICBxZW11 LXN5c3RlbS14ODZfNjQgLW5hbWUgdm0xIFwNCj4gKyAgICAgLWNwdSBob3N0IC1lbmFibGUta3Zt IC1tIDQwOTYgLW9iamVjdCBtZW1vcnktYmFja2VuZC0NCj4gZmlsZSxpZD1tZW0sc2l6ZT00MDk2 TSxtZW0tcGF0aD0vbW50L2h1Z2Usc2hhcmU9b24gLW51bWENCj4gbm9kZSxtZW1kZXY9bWVtIC1t ZW0tcHJlYWxsb2MgXA0KPiArICAgICAtc21wIGNvcmVzPTUsc29ja2V0cz0xIC1kcml2ZSBmaWxl PS9ob21lL29zaW1nL3VidW50dTE2LmltZyAgXA0KPiArICAgICAtbW9uaXRvciB1bml4Oi90bXAv dm0yX21vbml0b3Iuc29jayxzZXJ2ZXIsbm93YWl0IC1uZXQNCj4gbmljLHZsYW49MixtYWNhZGRy PTAwOjAwOjAwOjA4OmU4OmFhLGFkZHI9MWYgXA0KPiArICAgICAtbmV0IHVzZXIsdmxhbj0yLGhv c3Rmd2Q9dGNwOjEyNy4wLjAuMTo2MDAyLToyMiBcDQo+ICsgICAgIC1jaGFyZGV2IHNvY2tldCxp ZD1jaGFyMCxwYXRoPS4vdmhvc3QtbmV0LHNlcnZlciBcDQo+ICsgICAgIC1uZXRkZXYgdHlwZT12 aG9zdC0NCj4gdXNlcixpZD1teW5ldDEsY2hhcmRldj1jaGFyMCx2aG9zdGZvcmNlLHF1ZXVlcz0x NiBcDQo+ICsgICAgIC1kZXZpY2UgdmlydGlvLW5ldC0NCj4gcGNpLG1hYz01Mjo1NDowMDowMDow MDowMSxuZXRkZXY9bXluZXQxLG1yZ19yeGJ1Zj1vbixtcT1vbix2ZWN0b3JzPTQwDQo+ICxyeF9x dWV1ZV9zaXplPTEwMjQsdHhfcXVldWVfc2l6ZT0xMDI0LHBhY2tlZD1vbiBcDQo+ICsgICAgIC12 bmMgOjEwDQo+ICsNCj4gKzMuIE9uIFZNLCBiaW5kIHZpcnRpbyBuZXQgdG8gaWdiX3VpbyBhbmQg cnVuIHRlc3RwbWQ6Og0KPiArDQo+ICsgICAgLi91c2VydG9vbHMvZHBkay1kZXZiaW5kLnB5IC0t YmluZD1pZ2JfdWlvIHh4Onh4LngNCj4gKyAgICAuL3Rlc3RwbWQgLWwgMC00IC1uIDQgLS1zb2Nr ZXQtbWVtIDEwMjQsMCAtLSAtaSAtLW5iLWNvcmVzPTQgLS1yeHE9MTYgLS0NCj4gdHhxPTE2IC0t dHhkPTEwMjQgLS1yeGQ9MTAyNA0KPiArICAgIHRlc3RwbWQ+c2V0IGZ3ZCByeG9ubHkNCj4gKyAg ICB0ZXN0cG1kPnN0YXJ0DQo+ICsNCj4gKzQuIFN0YXJ0IHRlc3RwbWQgYXQgaG9zdCBzaWRlIGFm dGVyIFZNIGxhdW5jaGVkOjoNCj4gKw0KPiArICAgIHRlc3RwbWQ+c3RhcnQNCj4gKw0KPiArNS4g U2VuZCBwYWNrZXRzIGJ5IHBhY2tldCBnZW5lcmF0b3Igd2l0aCBkaWZmZXJlbnQgcGFja2V0DQo+ IHNpemVzKDY0LDEyOCwyNTYsNTEyLDEwMjQsMTUxOCksIHNob3cgdGhyb3VnaHB1dCB3aXRoIGJl bG93IGNvbW1hbmQ6Og0KPiArDQo+ICsgICAgdGVzdHBtZD5zaG93IHBvcnQgc3RhdHMgYWxsDQo+ ICsNCj4gKzYuIFJlbGF1bmNoIHRlc3RwbWQgYXQgdmlydGlvIHNpZGUgaW4gVk0gZm9yIGRyaXZl ciByZWxvYWRpbmc6Og0KPiArDQo+ICsgICAgdGVzdHBtZD5xdWl0DQo+ICsgICAgLi90ZXN0cG1k IC1sIDAtNCAtbiA0IC0tc29ja2V0LW1lbSAxMDI0LDAgLS0gLWkgLS1uYi1jb3Jlcz00IC0tcnhx PTE2IC0tDQo+IHR4cT0xNiAtLXR4ZD0xMDI0IC0tcnhkPTEwMjQNCj4gKyAgICB0ZXN0cG1kPnNl dCBmd2QgbWFjDQo+ICsgICAgdGVzdHBtZD5zdGFydA0KPiArDQo+ICs3LiBTZW5kIHBhY2tldHMg YnkgcGFja2V0IGdlbmVyYXRvciB3aXRoIGRpZmZlcmVudCBwYWNrZXQgc2l6ZXMNCj4gKDY0LDEy OCwyNTYsNTEyLDEwMjQsMTUxOCksIHNob3cgdGhyb3VnaHB1dCB3aXRoIGJlbG93IGNvbW1hbmQ6 Og0KPiArDQo+ICsgICAgdGVzdHBtZD5zaG93IHBvcnQgc3RhdHMgYWxsDQo+ICsNCj4gKzguIENo ZWNrIGVhY2ggcXVldWUncyByeC90eCBwYWNrZXQgbnVtYmVycyBhdCB2aG9zdCBzaWRlOjoNCj4g DQo+IC0gICAgSG9zdCBzaWRlIDogIGlwIG5ldG5zIGV4ZWMgbnMxIG5ldHNlcnZlcg0KPiAtICAg IFZNIHNpZGU6ICBuZXRwZXJmIC10IFRDUF9TVFJFQU0gLUggMS4xLjEuOCAtLSAtbSAgICAgICAg IyBieWRlZmF1bHQNCj4gY29uZmlndXJhdGlvbg0KPiAtICAgICAgICAgICAgICBuZXRwZXJmIC10 IFRDUF9TVFJFQU0gLUggMS4xLjEuOCAtLSAtbSAxNDQwICAgIyBwYWNrZXQgc2l6ZSA8IG10dQ0K PiAtICAgICAgICAgICAgICBuZXRwZXJmIC10IFRDUF9TVFJFQU0gLUggMS4xLjEuOCAtLSAtbSAy MTAwICAgIyBjaGFpbiBtb2RlDQo+IFwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQ0KPiArICAg IHRlc3RwbWQ+c3RvcA0KPiBcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUNCj4gLS0NCj4gMi4x Ny4xDQoNCg==