From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <prvs=9931b74f87=jerinj@marvell.com>
Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com
 [67.231.148.174]) by dpdk.org (Postfix) with ESMTP id 904164C93
 for <dev@dpdk.org>; Mon, 28 Jan 2019 15:04:34 +0100 (CET)
Received: from pps.filterd (m0045849.ppops.net [127.0.0.1])
 by mx0a-0016f401.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id
 x0SE2Kj9021718; Mon, 28 Jan 2019 06:04:28 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com;
 h=from : to : cc :
 subject : date : message-id : references : in-reply-to : content-type :
 content-id : content-transfer-encoding : mime-version; s=pfpt0818;
 bh=90pjVvxPUwdTqls02njm6OGE9JSZdy3MxEDtl3DnN/A=;
 b=uhqhnD+cMNiuW1wmEzA+5b02MUwxrKDnl5fQp9XlJoEy5wUFqzin+ntchklSqdg709Vx
 MJqswJq6mGCaObdVom/Ltx5AgAFNY+gTyzCFCHCsqB8mMDsVhcqvnCjZd8eZB7lGyiz0
 mSykQnqpOYmJWl4gqOKFRJKepvm6Nt741hdXQFJeyen+F5ZB6Dz5cnRb7N/isE5o1UOq
 x0mCmCqt+8FyACpbidHdLx0C0jv8q9yIUfOO5ntjqU0XdAZY0b+AikmfavBhVxp1+BWx
 9uHv5p7xE/q5k7WO+4R3nRgw1V9BdliDacmtrW8GZJio1QkLAQgtcylmbylQ83+j/dLX DA== 
Received: from sc-exch04.marvell.com ([199.233.58.184])
 by mx0a-0016f401.pphosted.com with ESMTP id 2q9yr1rp6b-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT);
 Mon, 28 Jan 2019 06:04:28 -0800
Received: from SC-EXCH03.marvell.com (10.93.176.83) by SC-EXCH04.marvell.com
 (10.93.176.84) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Mon, 28 Jan
 2019 06:04:27 -0800
Received: from NAM04-BN3-obe.outbound.protection.outlook.com (104.47.46.54) by
 SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server
 (TLS) id
 15.0.1367.3 via Frontend Transport; Mon, 28 Jan 2019 06:04:27 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=marvell.onmicrosoft.com; s=selector1-marvell-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=90pjVvxPUwdTqls02njm6OGE9JSZdy3MxEDtl3DnN/A=;
 b=m/FdYq0FCUjXsP+TgkvRv0ES5enGzCo0xKjy3Wk8CbI9UjCV6MpNJ8zXKGXPRdW7rmNXjUrnEC2eJuNi/zv3bIrVXkb6jfZuMjc3xe7vZMZQrQR6nhKkr4tDP7HHy0+Dfy6PDNCluzAgxDLpq3Q3K5kqYL+kN528Zz35TINE//s=
Received: from BYAPR18MB2424.namprd18.prod.outlook.com (20.179.91.149) by
 BYAPR18MB2853.namprd18.prod.outlook.com (20.179.58.79) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.1558.16; Mon, 28 Jan 2019 14:04:25 +0000
Received: from BYAPR18MB2424.namprd18.prod.outlook.com
 ([fe80::6deb:2bc0:4c72:7688]) by BYAPR18MB2424.namprd18.prod.outlook.com
 ([fe80::6deb:2bc0:4c72:7688%4]) with mapi id 15.20.1558.023; Mon, 28 Jan 2019
 14:04:25 +0000
From: Jerin Jacob Kollanukkaran <jerinj@marvell.com>
To: "Ola.Liljedahl@arm.com" <Ola.Liljedahl@arm.com>, Maciej Czekaj
 <mczekaj@marvell.com>, "gage.eads@intel.com" <gage.eads@intel.com>,
 "dev@dpdk.org" <dev@dpdk.org>
CC: "olivier.matz@6wind.com" <olivier.matz@6wind.com>,
 "stephen@networkplumber.org" <stephen@networkplumber.org>, "nd@arm.com"
 <nd@arm.com>, "bruce.richardson@intel.com" <bruce.richardson@intel.com>,
 "arybchenko@solarflare.com" <arybchenko@solarflare.com>,
 "konstantin.ananyev@intel.com" <konstantin.ananyev@intel.com>
Thread-Topic: [dpdk-dev] [PATCH v3 2/5] ring: add a non-blocking implementation
Thread-Index: AQHUtNJvj+PI1ABSX0y4E/cXSQUsbqXEsrgAgAACeACAAAXqAA==
Date: Mon, 28 Jan 2019 14:04:25 +0000
Message-ID: <771482dadd14a93dbbc2a0c2b993cd2ba9b4a77d.camel@marvell.com>
References: <20190115235227.14013-1-gage.eads@intel.com>
 <20190118152326.22686-1-gage.eads@intel.com>
 <20190118152326.22686-3-gage.eads@intel.com>
 <1548168583.31150.32.camel@arm.com>
 <9184057F7FC11744A2107296B6B8EB1E541CA46E@FMSMSX108.amr.corp.intel.com>
 <1548238575.31150.73.camel@arm.com>
 <9184057F7FC11744A2107296B6B8EB1E541CB6FE@FMSMSX108.amr.corp.intel.com>
 <c66a846926d27aed53e6cf176bfd9967add7cb3d.camel@marvell.com>
 <1548683004.11472.15.camel@arm.com>
In-Reply-To: <1548683004.11472.15.camel@arm.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [122.178.215.44]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; BYAPR18MB2853;
 20:Un7qVRCswfwxJ7ciFoMgpigJrm1UlFqrqMtRxvL80cXOl50OJgf7dVAYLtU+bDOQep8ZvinhSRw802Hu6Mm9Z81XiiShRv5HqMx/KOE2A/1bbFnxcvQ9r2xwssJMBVd1dmb90THb76waCQOtIKFXaCxXezLet7jxb4Vin4grnX4=
x-ms-office365-filtering-correlation-id: e6c5c3fb-7e74-4b64-2654-08d6852982ea
x-microsoft-antispam: BCL:0; PCL:0;
 RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600110)(711020)(4605077)(2017052603328)(7153060)(7193020);
 SRVR:BYAPR18MB2853; 
x-ms-traffictypediagnostic: BYAPR18MB2853:
x-microsoft-antispam-prvs: <BYAPR18MB28535A1188D3080537E7ECE8C8960@BYAPR18MB2853.namprd18.prod.outlook.com>
x-forefront-prvs: 0931CB1479
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(136003)(396003)(39850400004)(366004)(346002)(376002)(13464003)(199004)(189003)(229853002)(6436002)(256004)(14444005)(6486002)(966005)(14454004)(186003)(2906002)(6116002)(2201001)(110136005)(71200400001)(71190400001)(26005)(3846002)(2501003)(66066001)(25786009)(478600001)(86362001)(54906003)(99286004)(53936002)(118296001)(8676002)(81166006)(81156014)(6512007)(6306002)(316002)(53546011)(97736004)(68736007)(4326008)(2616005)(6246003)(476003)(76176011)(446003)(8936002)(11346002)(93886005)(106356001)(105586002)(36756003)(305945005)(7736002)(486006)(6506007)(102836004);
 DIR:OUT; SFP:1101; SCL:1; SRVR:BYAPR18MB2853;
 H:BYAPR18MB2424.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: marvell.com does not designate
 permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: 1EcdiSUV858CZZNdIYKTQXexLnuB12hSykXARuZApl7odi58zrS9kAvw+HbogOn00imqC/4wrBeZkb+kivWe5IYgMsrQg5lgP/w0zDzsBW8Oq9esEh39xd389PVClsR+ag07p1qeYSSYbFfvBQx/fVpWLTt8W862ndiOogLBJ8yhpruQxm+H+r9uuH6PzcgsiiKPPrvUyfqOvEUalZhYwKyF7aQDKSZpld+2MHPoWp/zlbBXwi3WAQDVgR9iqjobPj2aSmTRw1XTghkbjXcjymMC0OadjvrmTN2b/kzCO/lkO0RWQhG8vg78JSGGFVKtgIri0iUh/ejlVGSQZUOV6u7FdNB5WWhShE+itJ/ueTW9B9CYMFJH0730dzOqrj8yOCi5knS5YPABYv9jevDlcUc7+t8ODv6EMiOOhf1q0YQ=
Content-Type: text/plain; charset="utf-8"
Content-ID: <19D0DFD6B423E641935413E90571E248@namprd18.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: e6c5c3fb-7e74-4b64-2654-08d6852982ea
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Jan 2019 14:04:25.5029 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR18MB2853
X-OriginatorOrg: marvell.com
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, ,
 definitions=2019-01-28_08:, , signatures=0
X-Proofpoint-Details: rule=outbound_notspam policy=outbound score=0
 priorityscore=1501
 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0
 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0
 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx
 scancount=1 engine=8.0.1-1810050000 definitions=main-1901280109
Subject: Re: [dpdk-dev] [PATCH v3 2/5] ring: add a non-blocking
	implementation
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>
X-List-Received-Date: Mon, 28 Jan 2019 14:04:34 -0000

T24gTW9uLCAyMDE5LTAxLTI4IGF0IDEzOjQzICswMDAwLCBPbGEgTGlsamVkYWhsIHdyb3RlOg0K
PiBPbiBNb24sIDIwMTktMDEtMjggYXQgMTM6MzQgKzAwMDAsIEplcmluIEphY29iIEtvbGxhbnVr
a2FyYW4gd3JvdGU6DQo+ID4gT24gRnJpLCAyMDE5LTAxLTI1IGF0IDE3OjIxICswMDAwLCBFYWRz
LCBHYWdlIHdyb3RlOg0KPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4g
PiBGcm9tOiBPbGEgTGlsamVkYWhsIFttYWlsdG86T2xhLkxpbGplZGFobEBhcm0uY29tXQ0KPiA+
ID4gPiBTZW50OiBXZWRuZXNkYXksIEphbnVhcnkgMjMsIDIwMTkgNDoxNiBBTQ0KPiA+ID4gPiBU
bzogRWFkcywgR2FnZSA8Z2FnZS5lYWRzQGludGVsLmNvbT47IGRldkBkcGRrLm9yZw0KPiA+ID4g
PiBDYzogb2xpdmllci5tYXR6QDZ3aW5kLmNvbTsgc3RlcGhlbkBuZXR3b3JrcGx1bWJlci5vcmc7
IG5kDQo+ID4gPiA+IDxuZEBhcm0uY29tPjsgUmljaGFyZHNvbiwgQnJ1Y2UgPGJydWNlLnJpY2hh
cmRzb25AaW50ZWwuY29tPjsNCj4gPiA+ID4gYXJ5YmNoZW5rb0Bzb2xhcmZsYXJlLmNvbTsgQW5h
bnlldiwgS29uc3RhbnRpbg0KPiA+ID4gPiA8a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNvbT4N
Cj4gPiA+ID4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIIHYzIDIvNV0gcmluZzogYWRk
IGEgbm9uLWJsb2NraW5nDQo+ID4gPiA+IGltcGxlbWVudGF0aW9uDQo+ID4gPiA+IA0KPiA+ID4g
PiBzLg0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gWW91IGNhbiB0ZWxsIHRoaXMgY29kZSB3YXMg
d3JpdHRlbiB3aGVuIEkgdGhvdWdodCB4ODYtNjQgd2FzDQo+ID4gPiA+ID4gdGhlDQo+ID4gPiA+
ID4gb25seQ0KPiA+ID4gPiA+IHZpYWJsZSB0YXJnZXQgOikuIFllcywgeW91IGFyZSBjb3JyZWN0
Lg0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IFdpdGggcmVnYXJkcyB0byB1c2luZyBfX2F0b21pYyBp
bnRyaW5zaWNzLCBJJ20gcGxhbm5pbmcgb24NCj4gPiA+ID4gPiB0YWtpbmcNCj4gPiA+ID4gPiBh
DQo+ID4gPiA+ID4gc2ltaWxhciBhcHByb2FjaCB0byB0aGUgZnVuY3Rpb25zIGR1cGxpY2F0ZWQg
aW4NCj4gPiA+ID4gPiBydGVfcmluZ19nZW5lcmljLmggYW5kDQo+ID4gPiA+ID4gcnRlX3Jpbmdf
YzExX21lbS5oOiBvbmUgdmVyc2lvbiB0aGF0IHVzZXMgcnRlX2F0b21pYw0KPiA+ID4gPiA+IGZ1
bmN0aW9ucw0KPiA+ID4gPiA+IChhbmQNCj4gPiA+ID4gPiB0aHVzIHN0cmljdGVyIG1lbW9yeSBv
cmRlcmluZykgYW5kIG9uZSB0aGF0IHVzZXMgX19hdG9taWMNCj4gPiA+ID4gPiBpbnRyaW5zaWNz
DQo+ID4gPiA+ID4gKGFuZCB0aHVzIGNhbiBiZW5lZml0IGZyb20gbW9yZSByZWxheGVkIG1lbW9y
eSBvcmRlcmluZykuDQo+ID4gPiA+IFdoYXQncyB0aGUgYWR2YW50YWdlIG9mIGhhdmluZyB0d28g
ZGlmZmVyZW50IGltcGxlbWVudGF0aW9ucz8NCj4gPiA+ID4gV2hhdA0KPiA+ID4gPiBpcyB0aGUN
Cj4gPiA+ID4gZGlzYWR2YW50YWdlPw0KPiA+ID4gPiANCj4gPiA+ID4gVGhlIGV4aXN0aW5nIHJp
bmcgYnVmZmVyIGNvZGUgb3JpZ2luYWxseSBoYWQgb25seSB0aGUgImxlZ2FjeSINCj4gPiA+ID4g
aW1wbGVtZW50YXRpb24NCj4gPiA+ID4gd2hpY2ggd2FzIGtlcHQgd2hlbiB0aGUgX19hdG9taWMg
aW1wbGVtZW50YXRpb24gd2FzIGFkZGVkLiBUaGUNCj4gPiA+ID4gcmVhc29uDQo+ID4gPiA+IGNs
YWltZWQgd2FzIHRoYXQgc29tZSBvbGRlciBjb21waWxlcnMgZm9yIHg4NiBkbyBub3Qgc3VwcG9y
dA0KPiA+ID4gPiBHQ0MNCj4gPiA+ID4gX19hdG9taWMNCj4gPiA+ID4gYnVpbHRpbnMuIEJ1dCBJ
IHRob3VnaHQgdGhlcmUgd2FzIGNvbnNlbnN1cyB0aGF0IG5ldw0KPiA+ID4gPiBmdW5jdGlvbmFs
aXR5DQo+ID4gPiA+IGNvdWxkIGhhdmUNCj4gPiA+ID4gb25seSBfX2F0b21pYyBpbXBsZW1lbnRh
dGlvbnMuDQo+ID4gPiA+IA0KPiA+ID4gV2hlbiBDT05GSUdfUlRFX1JJTkdfVVNFX0MxMV9NRU1f
TU9ERUwgd2FzIGludHJvZHVjZWQsIGl0IHdhcw0KPiA+ID4gbGVmdA0KPiA+ID4gZGlzYWJsZWQg
Zm9yIHRodW5kZXJ4WzFdIGZvciBwZXJmb3JtYW5jZSByZWFzb25zLiBBc3N1bWluZyB0aGF0DQo+
ID4gPiBoYXNuJ3QgY2hhbmdlZCwgdGhlIGFkdmFudGFnZSB0byBoYXZpbmcgdHdvIHZlcnNpb25z
IGlzIHRvIGJlc3QNCj4gPiA+IHN1cHBvcnQgYWxsIG9mIERQREsncyBwbGF0Zm9ybXMuIFRoZSBk
aXNhZHZhbnRhZ2UgaXMgb2YgY291cnNlDQo+ID4gPiBkdXBsaWNhdGVkIGNvZGUgYW5kIHRoZSBh
ZGRpdGlvbmFsIG1haW50ZW5hbmNlIGJ1cmRlbi4NCj4gPiA+IA0KPiA+ID4gVGhhdCBzYWlkLCBp
ZiB0aGUgdGh1bmRlcnggbWFpbnRhaW5lcnMgYXJlIG9rIHdpdGggaXQsIEknbQ0KPiA+ID4gY2Vy
dGFpbmx5IA0KPiA+IFRoZSByaW5nIGNvZGUgd2FzIHNvIGZ1bmRhbWVudGFsIGJ1aWxkaW5nIGJs
b2NrIGZvciBEUERLLCB0aGVyZQ0KPiA+IHdhcyANCj4gPiBkaWZmZXJlbmNlIGluIHBlcmZvcm1h
bmNlIGFuZCB0aGVyZSB3YXMgYWxyZWFkeSBsZWdhY3kgY29kZSBzbw0KPiA+IGludHJvZHVjaW5n
IEMxMV9NRU1fTU9ERUwgd2FzIGp1c3RpZmllZCBJTU8uIA0KPiA+IA0KPiA+IEZvciB0aGUgbm9u
YmxvY2tpbmcgaW1wbGVtZW50YXRpb24sIEkgYW0gaGFwcHkgdG8gdGVzdCB3aXRoDQo+ID4gdGhy
ZWUgQVJNNjQgbWljcm9hcmNoaXRlY3R1cmVzIGFuZCBzaGFyZSB0aGUgcmVzdWx0IHdpdGgNCj4g
PiBDMTFfTUVNX01PREVMDQo+ID4gdnMgbm9uIEMxMV9NRU1fTU9ETEUgcGVyZm9ybWFuY2UuDQo+
IFdlIHNob3VsZCBlbnN1cmUgdGhlIEMxMSBtZW1vcnkgbW9kZWwgdmVyc2lvbiBlbmZvcmNlcyBt
aW5pbWFsDQo+IG9yZGVyaW5nDQo+IHJlcXVpcmVtZW50czoNCg0KSSBhZ3JlZS4NCg0KSSB0aGlu
aywgV2Ugc2hvdWxkIGhhdmUgZW5vdWdoIHRlc3QgY2FzZSBmb3IgcGVyZm9ybWFuY2UgbWVhc3Vy
ZW1lbnQgaW4NCm9yZGVyIHRvIGNob29zZSBhbGdvcml0aG1zIGFuZCBxdWFudGlmeSB0aGUgb3Ro
ZXIgdmFyaWFibGVzIGxpa2UgQzExIHZzDQpub24gQzExLCBMRFhQL1NUWFAgdnMgQ0FTUCBldGMu
DQoNCg0KPiAxKSB3aGVuIGNvbXB1dGluZyBudW1iZXIgb2YgYXZhaWxhYmxlIHNsb3RzLCBhbGxv
dyBmb3IgdW5kZXJmbG93DQo+IChoZWFkIGFuZCB0YWlsDQo+IG9ic2VydmVkIGluIHVuZXhwZWN0
ZWQgb3JkZXIpIGluc3RlYWQgb2YgaW1wb3NpbmcgcmVhZCBvcmRlciB3aXRoIGFuDQo+IGFkZGl0
aW9uYWwNCj4gcmVhZCBiYXJyaWVyLg0KPiAyKSBXZSBjb3VsZCBjaGVhdCBhIGxpdHRsZSBhbmQg
dXNlIGFuIGV4cGxpY2l0IExvYWRTdG9yZSBiYXJyaWVyDQo+IGluc3RlYWQgb2YNCj4gIHN0b3Jl
LXJlbGVhc2UvY2FzLXJlbGVhc2UgaW4gZGVxdWV1ZSAod2hpY2ggb25seSByZWFkcyB0aGUgcmlu
ZykuIEF0DQo+IGxlYXN0IHNlZQ0KPiBpZiB0aGlzIGltcHJvdmVzIHBlcmZvcm1hbmNlLiBTZWUg
c3VjaCBhIHBhdGNoIGhlcmU6DQo+IGh0dHBzOi8vZ2l0aHViLmNvbS9BUk0tc29mdHdhcmUvcHJv
Z3Jlc3M2NC9jb21taXQvODRjNDhlOWM4NDEwMGViNWIyZDE1ZTU0ZjBkYmY3DQo+IDhkZmE0Njg4
MDUNCj4gDQo+IElkZWFsbHksIEMvQysrIHdvdWxkIGhhdmUgYW4gX19BVE9NSUNfUkVMRUFTRV9S
RUFEU09OTFkgbWVtb3J5IG1vZGVsDQo+IHRvIHVzZSBpbg0KPiBzaXR1YXRpb25zIHdoZXJlIHRo
ZSBzaGFyZWQgZGF0YSB3YXMgb25seSByZWFkIGJlZm9yZSBiZWluZyByZWxlYXNlZC4NCj4gDQo+
ID4gIFdlIG1heSBuZWVkIHRvIGNvbnNpZGVyIFBQQyBhbHNvDQo+ID4gaGVyZS4gU28gSU1PLCBi
YXNlZCBvbiB0aGUgb3ZlcmFsbCBwZXJmb3JtYW5jZSByZXN1bHQgbWF5IGJlIGNhbg0KPiA+IGRl
Y2lkZQ0KPiA+IHRoZSBuZXcgY29kZSBkaXJlY3Rpb24uDQo+IERvZXMgUFBDICg2NC1iaXQgUE9X
RVI/KSBoYXZlIHN1cHBvcnQgZm9yIGRvdWJsZS13b3JkICgxMjgtYml0KSBDQVM/DQoNCkkgZG9u
dCBrbm93LCBJIHdhcyB0ZWxsaW5nIHdydCBpbiBnZW5lcmFsIEMxMSBtZW0gbW9kZWwgZm9yIFBQ
Qy4NCg0KPiANCj4gLS0gDQo+IE9sYSBMaWxqZWRhaGwsIE5ldHdvcmtpbmcgU3lzdGVtIEFyY2hp
dGVjdCwgQXJtDQo+IFBob25lICs0NjcwNjg2NjM3MywgU2t5cGUgb2xhLmxpbGplZGFobA0KPiAN
Cg==