From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from dpdk.org (dpdk.org [92.243.14.124])
	by inbox.dpdk.org (Postfix) with ESMTP id B4DBDA32A1
	for <public@inbox.dpdk.org>; Thu, 24 Oct 2019 10:30:53 +0200 (CEST)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id 6AB991E886;
	Thu, 24 Oct 2019 10:29:55 +0200 (CEST)
Received: from mga11.intel.com (mga11.intel.com [192.55.52.93])
 by dpdk.org (Postfix) with ESMTP id 512AB1E569
 for <dev@dpdk.org>; Thu, 24 Oct 2019 10:29:09 +0200 (CEST)
X-Amp-Result: SKIPPED(no attachment in message)
X-Amp-File-Uploaded: False
Received: from orsmga008.jf.intel.com ([10.7.209.65])
 by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;
 24 Oct 2019 01:29:08 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.68,224,1569308400"; d="scan'208";a="192115242"
Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201])
 by orsmga008.jf.intel.com with ESMTP; 24 Oct 2019 01:29:07 -0700
Received: from fmsmsx604.amr.corp.intel.com (10.18.126.84) by
 FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS)
 id 14.3.439.0; Thu, 24 Oct 2019 01:29:07 -0700
Received: from fmsmsx604.amr.corp.intel.com (10.18.126.84) by
 fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.1713.5; Thu, 24 Oct 2019 01:29:06 -0700
Received: from shsmsx105.ccr.corp.intel.com (10.239.4.158) by
 fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5
 via Frontend Transport; Thu, 24 Oct 2019 01:29:06 -0700
Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.165]) by
 SHSMSX105.ccr.corp.intel.com ([169.254.11.96]) with mapi id 14.03.0439.000;
 Thu, 24 Oct 2019 16:29:05 +0800
From: "Liu, Yong" <yong.liu@intel.com>
To: Maxime Coquelin <maxime.coquelin@redhat.com>, "Bie, Tiwei"
 <tiwei.bie@intel.com>, "Wang, Zhihong" <zhihong.wang@intel.com>,
 "stephen@networkplumber.org" <stephen@networkplumber.org>, "gavin.hu@arm.com"
 <gavin.hu@arm.com>
CC: "dev@dpdk.org" <dev@dpdk.org>
Thread-Topic: [PATCH v8 00/13] vhost packed ring performance optimization
Thread-Index: AQHViBvAbHihUQZSGU2jcX75qnfzeado2BWAgACMsPD//43fAIAAhk+w
Date: Thu, 24 Oct 2019 08:29:04 +0000
Message-ID: <86228AFD5BCD8E4EBFD2B90117B5E81E633DA8D0@SHSMSX103.ccr.corp.intel.com>
References: <20191021154016.16274-1-yong.liu@intel.com>
 <20191021220813.55236-1-yong.liu@intel.com>
 <e84032fc-ae95-a28f-d3d0-15209a0d1ac9@redhat.com>
 <86228AFD5BCD8E4EBFD2B90117B5E81E633DA664@SHSMSX103.ccr.corp.intel.com>
 <7007d6d7-ea4e-49df-57d6-b19507369d96@redhat.com>
In-Reply-To: <7007d6d7-ea4e-49df-57d6-b19507369d96@redhat.com>
Accept-Language: zh-CN, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMDQxNjdlZGQtYzQzOS00ZDY5LWIxZmEtMzliZjZmOWI0NTI5IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiUFZ2cVFoeHFkS1hkaEx1ZzZmTUZxZ2IrbnlCMk1sUktFU3d4TkxwZ282dnFEdmg1SUQ0U3RKWVVJa0NQUiszWSJ9
x-ctpclassification: CTP_NT
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: [dpdk-dev] [PATCH v8 00/13] vhost packed ring performance
	optimization
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>

VGhhbmtzLCBNYXhpbWUuIEp1c3Qgc2VudCBvdXQgdjkuIA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVz
c2FnZS0tLS0tDQo+IEZyb206IE1heGltZSBDb3F1ZWxpbiBbbWFpbHRvOm1heGltZS5jb3F1ZWxp
bkByZWRoYXQuY29tXQ0KPiBTZW50OiBUaHVyc2RheSwgT2N0b2JlciAyNCwgMjAxOSA0OjI1IFBN
DQo+IFRvOiBMaXUsIFlvbmcgPHlvbmcubGl1QGludGVsLmNvbT47IEJpZSwgVGl3ZWkgPHRpd2Vp
LmJpZUBpbnRlbC5jb20+OyBXYW5nLA0KPiBaaGlob25nIDx6aGlob25nLndhbmdAaW50ZWwuY29t
Pjsgc3RlcGhlbkBuZXR3b3JrcGx1bWJlci5vcmc7DQo+IGdhdmluLmh1QGFybS5jb20NCj4gQ2M6
IGRldkBkcGRrLm9yZw0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHY4IDAwLzEzXSB2aG9zdCBwYWNr
ZWQgcmluZyBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24NCj4gDQo+IA0KPiANCj4gT24gMTAvMjQv
MTkgOToxOCBBTSwgTGl1LCBZb25nIHdyb3RlOg0KPiA+DQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5h
bCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogTWF4aW1lIENvcXVlbGluIFttYWlsdG86bWF4aW1l
LmNvcXVlbGluQHJlZGhhdC5jb21dDQo+ID4+IFNlbnQ6IFRodXJzZGF5LCBPY3RvYmVyIDI0LCAy
MDE5IDI6NTAgUE0NCj4gPj4gVG86IExpdSwgWW9uZyA8eW9uZy5saXVAaW50ZWwuY29tPjsgQmll
LCBUaXdlaSA8dGl3ZWkuYmllQGludGVsLmNvbT47DQo+IFdhbmcsDQo+ID4+IFpoaWhvbmcgPHpo
aWhvbmcud2FuZ0BpbnRlbC5jb20+OyBzdGVwaGVuQG5ldHdvcmtwbHVtYmVyLm9yZzsNCj4gPj4g
Z2F2aW4uaHVAYXJtLmNvbQ0KPiA+PiBDYzogZGV2QGRwZGsub3JnDQo+ID4+IFN1YmplY3Q6IFJl
OiBbUEFUQ0ggdjggMDAvMTNdIHZob3N0IHBhY2tlZCByaW5nIHBlcmZvcm1hbmNlIG9wdGltaXph
dGlvbg0KPiA+Pg0KPiA+PiBJIGdldCBzb21lIGNoZWNrcGF0Y2ggd2FybmluZ3MsIGFuZCBidWls
ZCBmYWlscyB3aXRoIGNsYW5nLg0KPiA+PiBDb3VsZCB5b3UgcGxlYXNlIGZpeCB0aGVzZSBpc3N1
ZXMgYW5kIHNlbmQgdjk/DQo+ID4+DQo+ID4NCj4gPg0KPiA+IEhpIE1heGltZSwNCj4gPiBDbGFu
ZyBidWlsZCBmYWlscyB3aWxsIGJlIGZpeGVkIGluIHY5LiBGb3IgY2hlY2twYXRjaCB3YXJuaW5n
LCBpdCB3YXMgZHVlDQo+IHRvIHByYWdtYSBzdHJpbmcgaW5zaWRlLg0KPiA+IFByZXZpb3VzIHZl
cnNpb24gY2FuIGF2b2lkIHN1Y2ggd2FybmluZywgd2hpbGUgZm9ybWF0IGlzIGEgbGl0dGxlIG1l
c3N5DQo+IGFzIGJlbG93Lg0KPiA+IEkgcHJlZmVyIHRvIGtlZXAgY29kZSBjbGVhbiBhbmQgbW9y
ZSByZWFkYWJsZS4gSG93IGFib3V0IHlvdXIgaWRlYT8NCj4gPg0KPiA+ICsjaWZkZWYgVU5ST0xM
X1BSQUdNQV9QQVJBTQ0KPiA+ICsjZGVmaW5lIFZIT1NUX1VOUk9MTF9QUkFHTUEocGFyYW0pIF9Q
cmFnbWEocGFyYW0pDQo+ID4gKyNlbHNlDQo+ID4gKyNkZWZpbmUgVkhPU1RfVU5ST0xMX1BSQUdN
QShwYXJhbSkgZG8ge30gd2hpbGUgKDApOw0KPiA+ICsjZW5kaWYNCj4gPg0KPiA+ICsgICAgICAg
VkhPU1RfVU5ST0xMX1BSQUdNQShVTlJPTExfUFJBR01BX1BBUkFNKQ0KPiA+ICsgICAgICAgZm9y
IChpID0gMDsgaSA8IFBBQ0tFRF9CQVRDSF9TSVpFOyBpKyspDQo+IA0KPiBUaGF0J3MgbGVzcyBj
bGVhbiBpbmRlZWQuIEkgYWdyZWUgdG8gd2FpdmUgdGhlIGNoZWNrcGF0Y2ggZXJyb3JzLg0KPiBq
dXN0IGZpeCB0aGUgQ2xhbmcgYnVpbGQgZm9yIHBhdGNoIDggYW5kIHdlJ3JlIGdvb2QuDQo+IA0K
PiBUaGFua3MsDQo+IE1heGltZQ0KPiANCj4gPiBSZWdhcmRzLA0KPiA+IE1hcnZpbg0KPiA+DQo+
ID4+IFRoYW5rcywNCj4gPj4gTWF4aW1lDQo+ID4+DQo+ID4+ICMjIyBbUEFUQ0hdIHZob3N0OiB0
cnkgdG8gdW5yb2xsIGZvciBlYWNoIGxvb3ANCj4gPj4NCj4gPj4gV0FSTklORzpDQU1FTENBU0U6
IEF2b2lkIENhbWVsQ2FzZTogPF9QcmFnbWE+DQo+ID4+ICM3ODogRklMRTogbGliL2xpYnJ0ZV92
aG9zdC92aG9zdC5oOjQ3Og0KPiA+PiArI2RlZmluZSB2aG9zdF9mb3JfZWFjaF90cnlfdW5yb2xs
KGl0ZXIsIHZhbCwgc2l6ZSkgX1ByYWdtYSgiR0NDIHVucm9sbA0KPiA+PiA0IikgXA0KPiA+Pg0K
PiA+PiBFUlJPUjpDT01QTEVYX01BQ1JPOiBNYWNyb3Mgd2l0aCBjb21wbGV4IHZhbHVlcyBzaG91
bGQgYmUgZW5jbG9zZWQgaW4NCj4gPj4gcGFyZW50aGVzaXMNCj4gPj4gIzc4OiBGSUxFOiBsaWIv
bGlicnRlX3Zob3N0L3Zob3N0Lmg6NDc6DQo+ID4+ICsjZGVmaW5lIHZob3N0X2Zvcl9lYWNoX3Ry
eV91bnJvbGwoaXRlciwgdmFsLCBzaXplKSBfUHJhZ21hKCJHQ0MgdW5yb2xsDQo+ID4+IDQiKSBc
DQo+ID4+ICsJZm9yIChpdGVyID0gdmFsOyBpdGVyIDwgc2l6ZTsgaXRlcisrKQ0KPiA+Pg0KPiA+
PiBFUlJPUjpDT01QTEVYX01BQ1JPOiBNYWNyb3Mgd2l0aCBjb21wbGV4IHZhbHVlcyBzaG91bGQg
YmUgZW5jbG9zZWQgaW4NCj4gPj4gcGFyZW50aGVzaXMNCj4gPj4gIzgzOiBGSUxFOiBsaWIvbGli
cnRlX3Zob3N0L3Zob3N0Lmg6NTI6DQo+ID4+ICsjZGVmaW5lIHZob3N0X2Zvcl9lYWNoX3RyeV91
bnJvbGwoaXRlciwgdmFsLCBzaXplKSBfUHJhZ21hKCJ1bnJvbGwgNCIpDQo+IFwNCj4gPj4gKwlm
b3IgKGl0ZXIgPSB2YWw7IGl0ZXIgPCBzaXplOyBpdGVyKyspDQo+ID4+DQo+ID4+IEVSUk9SOkNP
TVBMRVhfTUFDUk86IE1hY3JvcyB3aXRoIGNvbXBsZXggdmFsdWVzIHNob3VsZCBiZSBlbmNsb3Nl
ZCBpbg0KPiA+PiBwYXJlbnRoZXNpcw0KPiA+PiAjODg6IEZJTEU6IGxpYi9saWJydGVfdmhvc3Qv
dmhvc3QuaDo1NzoNCj4gPj4gKyNkZWZpbmUgdmhvc3RfZm9yX2VhY2hfdHJ5X3Vucm9sbChpdGVy
LCB2YWwsIHNpemUpIF9QcmFnbWEoInVucm9sbCAoNCkiKQ0KPiBcDQo+ID4+ICsJZm9yIChpdGVy
ID0gdmFsOyBpdGVyIDwgc2l6ZTsgaXRlcisrKQ0KPiA+Pg0KPiA+PiB0b3RhbDogMyBlcnJvcnMs
IDEgd2FybmluZ3MsIDY3IGxpbmVzIGNoZWNrZWQNCj4gPj4NCj4gPj4gMC8xIHZhbGlkIHBhdGNo
L3RtcC9kcGRrX2J1aWxkL2xpYi9saWJydGVfdmhvc3QvdmlydGlvX25ldC5jOjIwNjU6MToNCj4g
Pj4gZXJyb3I6IHVudXNlZCBmdW5jdGlvbiAnZnJlZV96bWJ1ZicgWy1XZXJyb3IsLVd1bnVzZWQt
ZnVuY3Rpb25dDQo+ID4+IGZyZWVfem1idWYoc3RydWN0IHZob3N0X3ZpcnRxdWV1ZSAqdnEpDQo+
ID4+IF4NCj4gPj4gMSBlcnJvciBnZW5lcmF0ZWQuDQo+ID4+IG1ha2VbNV06ICoqKiBbdmlydGlv
X25ldC5vXSBFcnJvciAxDQo+ID4+IG1ha2VbNF06ICoqKiBbbGlicnRlX3Zob3N0XSBFcnJvciAy
DQo+ID4+IG1ha2VbNF06ICoqKiBXYWl0aW5nIGZvciB1bmZpbmlzaGVkIGpvYnMuLi4uDQo+ID4+
IG1ha2VbM106ICoqKiBbbGliXSBFcnJvciAyDQo+ID4+IG1ha2VbMl06ICoqKiBbYWxsXSBFcnJv
ciAyDQo+ID4+IG1ha2VbMV06ICoqKiBbcHJlX2luc3RhbGxdIEVycm9yIDINCj4gPj4gbWFrZTog
KioqIFtpbnN0YWxsXSBFcnJvciAyDQo+ID4+DQo+ID4+DQo+ID4+IE9uIDEwLzIyLzE5IDEyOjA4
IEFNLCBNYXJ2aW4gTGl1IHdyb3RlOg0KPiA+Pj4gUGFja2VkIHJpbmcgaGFzIG1vcmUgY29tcGFj
dCByaW5nIGZvcm1hdCBhbmQgdGh1cyBjYW4gc2lnbmlmaWNhbnRseQ0KPiA+Pj4gcmVkdWNlIHRo
ZSBudW1iZXIgb2YgY2FjaGUgbWlzcy4gSXQgY2FuIGxlYWQgdG8gYmV0dGVyIHBlcmZvcm1hbmNl
Lg0KPiA+Pj4gVGhpcyBoYXMgYmVlbiBhcHByb3ZlZCBpbiB2aXJ0aW8gdXNlciBkcml2ZXIsIG9u
IG5vcm1hbCBFNSBYZW9uIGNwdQ0KPiA+Pj4gc2luZ2xlIGNvcmUgcGVyZm9ybWFuY2UgY2FuIHJh
aXNlIDEyJS4NCj4gPj4+DQo+ID4+PiBodHRwOi8vbWFpbHMuZHBkay5vcmcvYXJjaGl2ZXMvZGV2
LzIwMTgtQXByaWwvMDk1NDcwLmh0bWwNCj4gPj4+DQo+ID4+PiBIb3dldmVyIHZob3N0IHBlcmZv
cm1hbmNlIHdpdGggcGFja2VkIHJpbmcgcGVyZm9ybWFuY2Ugd2FzIGRlY3JlYXNlZC4NCj4gPj4+
IFRocm91Z2ggYW5hbHlzaXMsIG1vc3RseSBleHRyYSBjb3N0IHdhcyBmcm9tIHRoZSBjYWxjdWxh
dGluZyBvZiBlYWNoDQo+ID4+PiBkZXNjcmlwdG9yIGZsYWcgd2hpY2ggZGVwZW5kZWQgb24gcmlu
ZyB3cmFwIGNvdW50ZXIuIE1vcmVvdmVyLCBib3RoDQo+ID4+PiBmcm9udGVuZCBhbmQgYmFja2Vu
ZCBuZWVkIHRvIHdyaXRlIHNhbWUgZGVzY3JpcHRvcnMgd2hpY2ggd2lsbCBjYXVzZQ0KPiA+Pj4g
Y2FjaGUgY29udGVudGlvbi4gRXNwZWNpYWxseSB3aGVuIGRvaW5nIHZob3N0IGVucXVldWUgZnVu
Y3Rpb24sIHZpcnRpbw0KPiA+Pj4gcmVmaWxsIHBhY2tlZCByaW5nIGZ1bmN0aW9uIG1heSB3cml0
ZSBzYW1lIGNhY2hlIGxpbmUgd2hlbiB2aG9zdCBkb2luZw0KPiA+Pj4gZW5xdWV1ZSBmdW5jdGlv
bi4gVGhpcyBraW5kIG9mIGV4dHJhIGNhY2hlIGNvc3Qgd2lsbCByZWR1Y2UgdGhlIGJlbmVmaXQN
Cj4gPj4+IG9mIHJlZHVjaW5nIGNhY2hlIG1pc3Nlcy4NCj4gPj4+DQo+ID4+PiBGb3Igb3B0aW1p
emluZyB2aG9zdCBwYWNrZWQgcmluZyBwZXJmb3JtYW5jZSwgdmhvc3QgZW5xdWV1ZSBhbmQgZGVx
dWV1ZQ0KPiA+Pj4gZnVuY3Rpb24gd2lsbCBiZSBzcGxpdHRlZCBpbnRvIGZhc3QgYW5kIG5vcm1h
bCBwYXRoLg0KPiA+Pj4NCj4gPj4+IFNldmVyYWwgbWV0aG9kcyB3aWxsIGJlIHRha2VuIGluIGZh
c3QgcGF0aDoNCj4gPj4+ICAgSGFuZGxlIGRlc2NyaXB0b3JzIGluIG9uZSBjYWNoZSBsaW5lIGJ5
IGJhdGNoLg0KPiA+Pj4gICBTcGxpdCBsb29wIGZ1bmN0aW9uIGludG8gbW9yZSBwaWVjZXMgYW5k
IHVucm9sbCB0aGVtLg0KPiA+Pj4gICBQcmVyZXF1aXNpdGUgY2hlY2sgdGhhdCB3aGV0aGVyIEkv
TyBzcGFjZSBjYW4gY29weSBkaXJlY3RseSBpbnRvIG1idWYNCj4gPj4+ICAgICBzcGFjZSBhbmQg
dmljZSB2ZXJzYS4NCj4gPj4+ICAgUHJlcmVxdWlzaXRlIGNoZWNrIHRoYXQgd2hldGhlciBkZXNj
cmlwdG9yIG1hcHBpbmcgaXMgc3VjY2Vzc2Z1bC4NCj4gPj4+ICAgRGlzdGluZ3Vpc2ggdmhvc3Qg
dXNlZCByaW5nIHVwZGF0ZSBmdW5jdGlvbiBieSBlbnF1ZXVlIGFuZCBkZXF1ZXVlDQo+ID4+PiAg
ICAgZnVuY3Rpb24uDQo+ID4+PiAgIEJ1ZmZlciBkZXF1ZXVlIHVzZWQgZGVzY3JpcHRvcnMgYXMg
bWFueSBhcyBwb3NzaWJsZS4NCj4gPj4+ICAgVXBkYXRlIGVucXVldWUgdXNlZCBkZXNjcmlwdG9y
cyBieSBjYWNoZSBsaW5lLg0KPiA+Pj4NCj4gPj4+IEFmdGVyIGFsbCB0aGVzZSBtZXRob2RzIGRv
bmUsIHNpbmdsZSBjb3JlIHZob3N0IFB2UCBwZXJmb3JtYW5jZSB3aXRoDQo+IDY0Qg0KPiA+Pj4g
cGFja2V0IG9uIFhlb24gODE4MCBjYW4gYm9vc3QgMzUlLg0KPiA+Pj4NCj4gPj4+IHY4Og0KPiA+
Pj4gLSBBbGxvY2F0ZSBtYnVmIGJ5IHZpcnRpb19kZXZfcGt0bWJ1Zl9hbGxvYw0KPiA+Pj4NCj4g
Pj4+IHY3Og0KPiA+Pj4gLSBSZWJhc2UgY29kZQ0KPiA+Pj4gLSBSZW5hbWUgdW5yb2xsIG1hY3Jv
IGFuZCBkZWZpbml0aW9ucw0KPiA+Pj4gLSBDYWxjdWxhdGUgZmxhZ3Mgd2hlbiBkb2luZyBzaW5n
bGUgZGVxdWV1ZQ0KPiA+Pj4NCj4gPj4+IHY2Og0KPiA+Pj4gLSBGaXggZGVxdWV1ZSB6Y29weSBy
ZXN1bHQgY2hlY2sNCj4gPj4+DQo+ID4+PiB2NToNCj4gPj4+IC0gUmVtb3ZlIGRpc2FibGUgc3cg
cHJlZmV0Y2ggYXMgcGVyZm9ybWFuY2UgaW1wYWN0IGlzIHNtYWxsDQo+ID4+PiAtIENoYW5nZSB1
bnJvbGwgcHJhZ21hIG1hY3JvIGZvcm1hdA0KPiA+Pj4gLSBSZW5hbWUgc2hhZG93IGNvdW50ZXIg
ZWxlbWVudHMgbmFtZXMNCj4gPj4+IC0gQ2xlYW4gZGVxdWV1ZSB1cGRhdGUgY2hlY2sgY29uZGl0
aW9uDQo+ID4+PiAtIEFkZCBpbmxpbmUgZnVuY3Rpb25zIHJlcGxhY2Ugb2YgZHVwbGljYXRlZCBj
b2RlDQo+ID4+PiAtIFVuaWZ5IGNvZGUgc3R5bGUNCj4gPj4+DQo+ID4+PiB2NDoNCj4gPj4+IC0g
U3VwcG9ydCBtZXNvbiBidWlsZA0KPiA+Pj4gLSBSZW1vdmUgbWVtb3J5IHJlZ2lvbiBjYWNoZSBm
b3Igbm8gY2xlYXIgcGVyZm9ybWFuY2UgZ2FpbiBhbmQgQUJJDQo+IGJyZWFrDQo+ID4+PiAtIE5v
dCBhc3N1bWUgcmluZyBzaXplIGlzIHBvd2VyIG9mIHR3bw0KPiA+Pj4NCj4gPj4+IHYzOg0KPiA+
Pj4gLSBDaGVjayBhdmFpbGFibGUgaW5kZXggb3ZlcmZsb3cNCj4gPj4+IC0gUmVtb3ZlIGRlcXVl
dWUgcmVtYWluZWQgZGVzY3MgbnVtYmVyIGNoZWNrDQo+ID4+PiAtIFJlbW92ZSBjaGFuZ2VzIGlu
IHNwbGl0IHJpbmcgZGF0YXBhdGgNCj4gPj4+IC0gQ2FsbCBtZW1vcnkgd3JpdGUgYmFycmllcnMg
b25jZSB3aGVuIHVwZGF0aW5nIHVzZWQgZmxhZ3MNCj4gPj4+IC0gUmVuYW1lIHNvbWUgZnVuY3Rp
b25zIGFuZCBtYWNyb3MNCj4gPj4+IC0gQ29kZSBzdHlsZSBvcHRpbWl6YXRpb24NCj4gPj4+DQo+
ID4+PiB2MjoNCj4gPj4+IC0gVXRpbGl6ZSBjb21waWxlcidzIHByYWdtYSB0byB1bnJvbGwgbG9v
cCwgZGlzdGluZ3Vpc2ggY2xhbmcvaWNjL2djYw0KPiA+Pj4gLSBCdWZmZXJlZCBkZXF1ZXVlIHVz
ZWQgZGVzYyBudW1iZXIgY2hhbmdlZCB0byAoUklOR19TWiAtIFBLVF9CVVJTVCkNCj4gPj4+IC0g
T3B0aW1pemUgZGVxdWV1ZSB1c2VkIHJpbmcgdXBkYXRlIHdoZW4gaW5fb3JkZXIgbmVnb3RpYXRl
ZA0KPiA+Pj4NCj4gPj4+DQo+ID4+PiBNYXJ2aW4gTGl1ICgxMyk6DQo+ID4+PiAgIHZob3N0OiBh
ZGQgcGFja2VkIHJpbmcgaW5kZXhlcyBpbmNyZWFzaW5nIGZ1bmN0aW9uDQo+ID4+PiAgIHZob3N0
OiBhZGQgcGFja2VkIHJpbmcgc2luZ2xlIGVucXVldWUNCj4gPj4+ICAgdmhvc3Q6IHRyeSB0byB1
bnJvbGwgZm9yIGVhY2ggbG9vcA0KPiA+Pj4gICB2aG9zdDogYWRkIHBhY2tlZCByaW5nIGJhdGNo
IGVucXVldWUNCj4gPj4+ICAgdmhvc3Q6IGFkZCBwYWNrZWQgcmluZyBzaW5nbGUgZGVxdWV1ZQ0K
PiA+Pj4gICB2aG9zdDogYWRkIHBhY2tlZCByaW5nIGJhdGNoIGRlcXVldWUNCj4gPj4+ICAgdmhv
c3Q6IGZsdXNoIGVucXVldWUgdXBkYXRlcyBieSBjYWNoZWxpbmUNCj4gPj4+ICAgdmhvc3Q6IGZs
dXNoIGJhdGNoZWQgZW5xdWV1ZSBkZXNjcyBkaXJlY3RseQ0KPiA+Pj4gICB2aG9zdDogYnVmZmVy
IHBhY2tlZCByaW5nIGRlcXVldWUgdXBkYXRlcw0KPiA+Pj4gICB2aG9zdDogb3B0aW1pemUgcGFj
a2VkIHJpbmcgZW5xdWV1ZQ0KPiA+Pj4gICB2aG9zdDogYWRkIHBhY2tlZCByaW5nIHpjb3B5IGJh
dGNoIGFuZCBzaW5nbGUgZGVxdWV1ZQ0KPiA+Pj4gICB2aG9zdDogb3B0aW1pemUgcGFja2VkIHJp
bmcgZGVxdWV1ZQ0KPiA+Pj4gICB2aG9zdDogb3B0aW1pemUgcGFja2VkIHJpbmcgZGVxdWV1ZSB3
aGVuIGluLW9yZGVyDQo+ID4+Pg0KPiA+Pj4gIGxpYi9saWJydGVfdmhvc3QvTWFrZWZpbGUgICAg
IHwgIDE4ICsNCj4gPj4+ICBsaWIvbGlicnRlX3Zob3N0L21lc29uLmJ1aWxkICB8ICAgNyArDQo+
ID4+PiAgbGliL2xpYnJ0ZV92aG9zdC92aG9zdC5oICAgICAgfCAgNTcgKysNCj4gPj4+ICBsaWIv
bGlicnRlX3Zob3N0L3ZpcnRpb19uZXQuYyB8IDk0OCArKysrKysrKysrKysrKysrKysrKysrKysr
KystLS0tLS0tDQo+ID4+PiAgNCBmaWxlcyBjaGFuZ2VkLCA4MzcgaW5zZXJ0aW9ucygrKSwgMTkz
IGRlbGV0aW9ucygtKQ0KPiA+Pj4NCj4gPg0KDQo=