From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50081.outbound.protection.outlook.com [40.107.5.81]) by dpdk.org (Postfix) with ESMTP id 7F5B42C37; Fri, 5 Oct 2018 17:11:46 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector1-arm-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Z9GP4gZ9Y/TIXLBSBcJ17Vf7JAvG8QBI5ZfI/R8lkQc=; b=QxMJvTbor+U43LZteRtPoUQJm5hMs3+fnkrFZzRF1GU8k9gWKrr+g3KVHLF7QXv1skMCwvULTvMKUt3MMOoxIt/4yK607BS61kwwGOwIRvcgyPFEz1lN418q14ZTDcHMWjybzSsOdFD/L8ZBQESh4wwt3kRQFH5ziqqTKjXbgvw= Received: from AM6PR08MB3672.eurprd08.prod.outlook.com (20.177.115.29) by AM6PR08MB3464.eurprd08.prod.outlook.com (20.177.113.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1207.22; Fri, 5 Oct 2018 15:11:45 +0000 Received: from AM6PR08MB3672.eurprd08.prod.outlook.com ([fe80::f423:e46a:a03c:e928]) by AM6PR08MB3672.eurprd08.prod.outlook.com ([fe80::f423:e46a:a03c:e928%2]) with mapi id 15.20.1185.027; Fri, 5 Oct 2018 15:11:45 +0000 From: Honnappa Nagarahalli To: "Ananyev, Konstantin" , Ola Liljedahl , "Gavin Hu (Arm Technology China)" , Jerin Jacob CC: "dev@dpdk.org" , Steve Capper , nd , "stable@dpdk.org" Thread-Topic: [PATCH v3 1/3] ring: read tail using atomic load Thread-Index: AQHUXIR8HYDms5kGFkyaw4kWx/U6y6UQgHYAgAAF34CAACPDgIAAFyZA Date: Fri, 5 Oct 2018 15:11:44 +0000 Message-ID: References: <20180807031943.5331-1-gavin.hu@arm.com> <1537172244-64874-1-git-send-email-gavin.hu@arm.com> <20180929104857.GA30457@jerin> <2601191342CEEE43887BDE71AB9772580102FE261A@IRSMSX106.ger.corp.intel.com> <621E373E-048D-4808-8CE8-84373EA98D2F@arm.com> <2601191342CEEE43887BDE71AB9772580102FE2951@IRSMSX106.ger.corp.intel.com> In-Reply-To: <2601191342CEEE43887BDE71AB9772580102FE2951@IRSMSX106.ger.corp.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Honnappa.Nagarahalli@arm.com; x-originating-ip: [217.140.111.135] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM6PR08MB3464; 6:sjF050cAK6ilimZh8g0BqEEgLnHFGdhjd4dTeJnYPulHR/X4O1HZXHbeb1Zwvm2UxqpPAeoS6MKs/yNpMp9phRDikRklgHI8SqGhb6RyvazlbS0WmuMlH3bdDmjlfFPiSjndET475PviIFiwg8k4MrjxFyG4g6qLRzWMBkwjnSfjFhoUn/MB9A0wn7nxnA2Qdk/nLfPC77nisYeFYUikdjVSdnqUYbkr8Pbb0gVA2WaLRDIhta6AV7cP0+z82eqmn79DNqincIna8TbmgUOTP9q/Au0M/+DLaTkR5OQba7w3X1UckZQykeF80eKNN6TYnGSjeni8b9DhOz/m5tzt9CW/zbNTyRnbc7FeOMGY6Dl4w4hqWjw2w9LnULAyNrVvtnLxceqfAL0x5M2c0TQHX610/+4is40zk3awf+8YO8+FcmZRxDsVRG67++KS1w08HlqzhNlvb/GOm/CXe+Uu6A==; 5:Esg6F6Z14XUIruQlBWIQIEDTg2Ldz2X2F4UzHNzvwXBzJhC2wK2F3iL44o1VnYRvUPPj8u1n0CZ0O65dlok3UDaU/mb3HO3Kg2aomMGxsDEQSlmOds5WUZmWRC1jd2fOeQVs6RGZTsRzaiuWUwDV3ZssVHBojHWjahowTDeJSzg=; 7:MGaWVfrQD5lmScl9sbT0n7tW+2ar70ktLhrE4lEjMik59lj+vLlU+o0g1xYG+dm1V4submA2cQn78RsJaG5iblYfh+g66Ocw6AlDwHw8El2awvX6FsANEPhjLw6DRnyGplCeIgng0/hqZMpu5r8CnYKa1ADMEVA2N++giRdWJK2T6ZpPbIR2llSLzmIOdemY7QBo1+9u7FeK2yscQa3t46TpEkK83gOyBi6q4scZfWdlDbJe0z8Qk0NxJTvQXJpq x-ms-exchange-antispam-srfa-diagnostics: SOS;SOR; x-ms-office365-filtering-correlation-id: f9132a00-ed48-48a4-1e95-08d62ad4dd1d x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(5600074)(711020)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020); SRVR:AM6PR08MB3464; x-ms-traffictypediagnostic: AM6PR08MB3464: nodisclaimer: True x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(180628864354917)(100405760836317); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3002001)(10201501046)(3231355)(944501410)(52105095)(93006095)(93001095)(6055026)(149066)(150057)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123558120)(20161123562045)(20161123560045)(201708071742011)(7699051); SRVR:AM6PR08MB3464; BCL:0; PCL:0; RULEID:; SRVR:AM6PR08MB3464; x-forefront-prvs: 0816F1D86E x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(346002)(366004)(396003)(376002)(39860400002)(136003)(13464003)(189003)(199004)(446003)(6246003)(71190400001)(478600001)(71200400001)(476003)(97736004)(486006)(14454004)(11346002)(72206003)(256004)(106356001)(8936002)(14444005)(105586002)(81166006)(81156014)(68736007)(8676002)(2900100001)(86362001)(229853002)(316002)(2906002)(25786009)(6436002)(76176011)(6116002)(5250100002)(53546011)(9686003)(7736002)(66066001)(6506007)(53936002)(305945005)(99286004)(55016002)(186003)(4326008)(74316002)(3846002)(7696005)(110136005)(33656002)(26005)(5660300001)(93886005)(54906003)(102836004); DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR08MB3464; H:AM6PR08MB3672.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: QmvgdJkvfQCaxGWYHyP8fEUnqG6SciKxfnk6gVcohKyP3Y60lAF7A+tA875aq9TcXFujL3dhhcClPnuAS25FdtmYiFYHmtiz80lR7A2tTtlY13PHRfBnLgCNvKR3Z9xloRGuHQ5XBhUAvuey1WmsN9qmlcQXi44SzQpnCxwDNH1kWVW5l/G6lWDB2epw1HHv3fKeK0KQUClWX0Z6PGnHt2kfPqhHa7JfcS79rzWHZcbkUCmY2rpvyaO6RUjQMCAljy6xgM8ku1kaK1Aoc7EH7YITODl7M6f5X/BU2ZTMf/NCSP7wR6ME3AZhV2QDaW9Gp8NyN+8SgymN67yudiSf+wTDzPBQL1LjDvPUsvcUMd4= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: f9132a00-ed48-48a4-1e95-08d62ad4dd1d X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Oct 2018 15:11:44.9204 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3464 Subject: Re: [dpdk-dev] [PATCH v3 1/3] ring: read tail using atomic load X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Oct 2018 15:11:46 -0000 PiA+ICAgICAgICAgPg0KPiA+ICAgICAgICAgPiBIaSBKZXJpbiwNCj4gPiAgICAgICAgID4NCj4g PiAgICAgICAgID4gVGhhbmtzIGZvciB5b3VyIHJldmlldywgaW5saW5lIGNvbW1lbnRzIGZyb20g b3VyIGludGVybmFsDQo+IGRpc2N1c3Npb25zLg0KPiA+ICAgICAgICAgPg0KPiA+ICAgICAgICAg PiBCUi4gR2F2aW4NCj4gPiAgICAgICAgID4NCj4gPiAgICAgICAgID4gPiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiA+ICAgICAgICAgPiA+IEZyb206IEplcmluIEphY29iIDxqZXJpbi5q YWNvYkBjYXZpdW1uZXR3b3Jrcy5jb20+DQo+ID4gICAgICAgICA+ID4gU2VudDogU2F0dXJkYXks IFNlcHRlbWJlciAyOSwgMjAxOCA2OjQ5IFBNDQo+ID4gICAgICAgICA+ID4gVG86IEdhdmluIEh1 IChBcm0gVGVjaG5vbG9neSBDaGluYSkgPEdhdmluLkh1QGFybS5jb20+DQo+ID4gICAgICAgICA+ ID4gQ2M6IGRldkBkcGRrLm9yZzsgSG9ubmFwcGEgTmFnYXJhaGFsbGkNCj4gPiAgICAgICAgID4g PiA8SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT47IFN0ZXZlIENhcHBlcg0KPiA+ICAgICAg ICAgPiA+IDxTdGV2ZS5DYXBwZXJAYXJtLmNvbT47IE9sYSBMaWxqZWRhaGwgPE9sYS5MaWxqZWRh aGxAYXJtLmNvbT47DQo+IG5kDQo+ID4gICAgICAgICA+ID4gPG5kQGFybS5jb20+OyBzdGFibGVA ZHBkay5vcmcNCj4gPiAgICAgICAgID4gPiBTdWJqZWN0OiBSZTogW1BBVENIIHYzIDEvM10gcmlu ZzogcmVhZCB0YWlsIHVzaW5nIGF0b21pYyBsb2FkDQo+ID4gICAgICAgICA+ID4NCj4gPiAgICAg ICAgID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ICAgICAgICAgPiA+ID4gRGF0 ZTogTW9uLCAxNyBTZXAgMjAxOCAxNjoxNzoyMiArMDgwMA0KPiA+ICAgICAgICAgPiA+ID4gRnJv bTogR2F2aW4gSHUgPGdhdmluLmh1QGFybS5jb20+DQo+ID4gICAgICAgICA+ID4gPiBUbzogZGV2 QGRwZGsub3JnDQo+ID4gICAgICAgICA+ID4gPiBDQzogZ2F2aW4uaHVAYXJtLmNvbSwgSG9ubmFw cGEuTmFnYXJhaGFsbGlAYXJtLmNvbSwNCj4gPiAgICAgICAgID4gPiA+IHN0ZXZlLmNhcHBlckBh cm0uY29tLCAgT2xhLkxpbGplZGFobEBhcm0uY29tLA0KPiA+ICAgICAgICAgPiA+ID4gamVyaW4u amFjb2JAY2F2aXVtbmV0d29ya3MuY29tLCBuZEBhcm0uY29tLA0KPiBzdGFibGVAZHBkay5vcmcN Cj4gPiAgICAgICAgID4gPiA+IFN1YmplY3Q6IFtQQVRDSCB2MyAxLzNdIHJpbmc6IHJlYWQgdGFp bCB1c2luZyBhdG9taWMgbG9hZA0KPiA+ICAgICAgICAgPiA+ID4gWC1NYWlsZXI6IGdpdC1zZW5k LWVtYWlsIDIuNy40DQo+ID4gICAgICAgICA+ID4gPg0KPiA+ICAgICAgICAgPiA+ID4gRXh0ZXJu YWwgRW1haWwNCj4gPiAgICAgICAgID4gPiA+DQo+ID4gICAgICAgICA+ID4gPiBJbiB1cGRhdGVf dGFpbCwgcmVhZCBodC0+dGFpbCB1c2luZyBfX2F0b21pY19sb2FkLkFsdGhvdWdoIHRoZQ0KPiA+ ICAgICAgICAgPiA+ID4gY29tcGlsZXIgY3VycmVudGx5IHNlZW1zIHRvIGJlIGRvaW5nIHRoZSBy aWdodCB0aGluZyBldmVuIHdpdGhvdXQNCj4gPiAgICAgICAgID4gPiA+IF9hdG9taWNfbG9hZCwg d2UgZG9uJ3Qgd2FudCB0byBnaXZlIHRoZSBjb21waWxlciBmcmVlZG9tIHRvDQo+IG9wdGltaXNl DQo+ID4gICAgICAgICA+ID4gPiB3aGF0IHNob3VsZCBiZSBhbiBhdG9taWMgbG9hZCwgaXQgc2hv dWxkIG5vdCBiZSBhcmJpdGFyaWx5IG1vdmVkDQo+ID4gICAgICAgICA+ID4gPiBhcm91bmQuDQo+ ID4gICAgICAgICA+ID4gPg0KPiA+ICAgICAgICAgPiA+ID4gRml4ZXM6IDM5MzY4ZWJmYzYgKCJy aW5nOiBpbnRyb2R1Y2UgQzExIG1lbW9yeSBtb2RlbCBiYXJyaWVyDQo+IG9wdGlvbiIpDQo+ID4g ICAgICAgICA+ID4gPiBDYzogc3RhYmxlQGRwZGsub3JnDQo+ID4gICAgICAgICA+ID4gPg0KPiA+ ICAgICAgICAgPiA+ID4gU2lnbmVkLW9mZi1ieTogR2F2aW4gSHUgPGdhdmluLmh1QGFybS5jb20+ DQo+ID4gICAgICAgICA+ID4gPiBSZXZpZXdlZC1ieTogSG9ubmFwcGEgTmFnYXJhaGFsbGkNCj4g PEhvbm5hcHBhLk5hZ2FyYWhhbGxpQGFybS5jb20+DQo+ID4gICAgICAgICA+ID4gPiBSZXZpZXdl ZC1ieTogU3RldmUgQ2FwcGVyIDxzdGV2ZS5jYXBwZXJAYXJtLmNvbT4NCj4gPiAgICAgICAgID4g PiA+IFJldmlld2VkLWJ5OiBPbGEgTGlsamVkYWhsIDxPbGEuTGlsamVkYWhsQGFybS5jb20+DQo+ ID4gICAgICAgICA+ID4gPiAtLS0NCj4gPiAgICAgICAgID4gPiA+ICBsaWIvbGlicnRlX3Jpbmcv cnRlX3JpbmdfYzExX21lbS5oIHwgMyArKy0NCj4gPiAgICAgICAgID4gPiA+ICAxIGZpbGUgY2hh bmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+ID4gICAgICAgICA+ID4gPg0K PiA+ICAgICAgICAgPiBUaGUgcmVhZCBvZiBodC0+dGFpbCBuZWVkcyB0byBiZSBhdG9taWMsIGEg bm9uLWF0b21pYyByZWFkIHdvdWxkIG5vdA0KPiBiZSBjb3JyZWN0Lg0KPiA+DQo+ID4gICAgICAg ICBUaGF0J3MgYSAzMmJpdCB2YWx1ZSBsb2FkLg0KPiA+ICAgICAgICAgQUZBSUsgb24gYWxsIENQ VXMgdGhhdCB3ZSBzdXBwb3J0IGl0IGlzIGFuIGF0b21pYyBvcGVyYXRpb24uDQo+ID4gICAgIFtP bGFdIEJ1dCB0aGF0IHRoZSBvcmRpbmFyeSBDIGxvYWQgaXMgdHJhbnNsYXRlZCB0byBhbiBhdG9t aWMgbG9hZCBmb3IgdGhlDQo+IHRhcmdldCBhcmNoaXRlY3R1cmUgaXMgaW5jaWRlbnRhbC4NCj4g Pg0KPiA+ICAgICBJZiB0aGUgZGVzaWduIHJlcXVpcmVzIGFuIGF0b21pYyBsb2FkICh3aGljaCBp cyB0aGUgY2FzZSBoZXJlKSwgd2UNCj4gPiBzaG91bGQgdXNlIGFuIGF0b21pYyBsb2FkIG9uIHRo ZSBsYW5ndWFnZSBsZXZlbC4gVGhlbiB3ZSBjYW4gYmUgc3VyZSBpdCB3aWxsDQo+IGFsd2F5cyBi ZSB0cmFuc2xhdGVkIHRvIGFuIGF0b21pYyBsb2FkIGZvciB0aGUgdGFyZ2V0IGluIHF1ZXN0aW9u IG9yDQo+IGNvbXBpbGF0aW9uIHdpbGwgZmFpbC4gV2UgZG9uJ3QgaGF2ZSB0byBkZXBlbmQgb24g YXNzdW1wdGlvbnMuDQo+IA0KPiBXZSBhbGwga25vdyB0aGF0IDMyYml0IGxvYWQvc3RvcmUgb24g Y3B1IHdlIHN1cHBvcnQgLSBhcmUgYXRvbWljLg0KPiBJZiBpdCB3b3VsZG4ndCBiZSB0aGUgY2Fz ZSAtIERQREsgd291bGQgYmUgYnJva2VuIGluIGRvemVuIHBsYWNlcy4NCj4gU28gd2hhdCB0aGUg cG9pbnQgdG8gcHJldGVuZCB0aGF0ICJpdCBtaWdodCBiZSBub3QgYXRvbWljIiBpZiB3ZSBkbyBr bm93IGZvcg0KPiBzdXJlIHRoYXQgaXQgaXM/DQo+IEkgZG8gdW5kZXJzdGFuZCB0aGF0IHlvdSB3 YW50IHRvIHVzZSBhdG9taWNfbG9hZChyZWxheGVkKSBoZXJlIGZvcg0KPiBjb25zaXN0ZW5jeSwg YW5kIHRvIGNvbmZvcm0gd2l0aCBDMTEgbWVtLW1vZGVsIGFuZCBJIGRvbid0IHNlZSBhbnkgaGFy bSBpbg0KPiB0aGF0Lg0KV2UgY2FuIGNvbnRpbnVlIHRvIGRpc2N1c3MgdGhlIHRvcGljLCBpdCBp cyBhIGdvb2QgZGlzY3Vzc2lvbi4gQnV0LCBhcyBmYXIgdGhpcyBwYXRjaCBpcyBjb25jZXJuZWQs IGNhbiBJIGNvbnNpZGVyIHRoaXMgYXMgdXMgaGF2aW5nIGEgY29uc2Vuc3VzPyBUaGUgZmlsZSBy dGVfcmluZ19jMTFfbWVtLmggaXMgc3BlY2lmaWNhbGx5IGZvciBDMTEgbWVtb3J5IG1vZGVsIGFu ZCBJIGFsc28gZG8gbm90IHNlZSBhbnkgaGFybSBpbiBoYXZpbmcgY29kZSB0aGF0IGNvbXBsZXRl bHkgY29uZm9ybXMgdG8gQzExIG1lbW9yeSBtb2RlbC4NCg0KPiBCdXQgYXJndW1lbnQgdGhhdCB3 ZSBzaG91bGRuJ3QgYXNzdW1lIDMyYml0IGxvYWQvc3RvcmUgb3BzIGFzIGF0b21pYw0KPiBzb3Vu ZHMgYSBiaXQgZmxha3kgdG8gbWUuDQo+IEtvbnN0YW50aW4NCj4gDQo+IA0KPiA+DQo+ID4NCj4g Pg0KPiA+ICAgICAgICAgPiBCdXQgdGhlcmUgYXJlIG5vIG1lbW9yeSBvcmRlcmluZyByZXF1aXJl bWVudHMgKHdpdGgNCj4gPiAgICAgICAgID4gcmVnYXJkcyB0byBvdGhlciBsb2FkcyBhbmQvb3Ig c3RvcmVzIGJ5IHRoaXMgdGhyZWFkKSBzbyByZWxheGVkDQo+IG1lbW9yeSBvcmRlciBpcyBzdWZm aWNpZW50Lg0KPiA+ICAgICAgICAgPiBBbm90aGVyIGFzcGVjdCBvZiB1c2luZyBfX2F0b21pY19s b2FkX24oKSBpcyB0aGF0IHRoZQ0KPiA+IGNvbXBpbGVyIGNhbm5vdCAib3B0aW1pc2UiIHRoaXMg bG9hZCAoZS5nLiBjb21iaW5lLCBob2lzdCBldGMpLCBpdCBoYXMgdG8gYmUNCj4gZG9uZSBhcw0K PiA+ICAgICAgICAgPiBzcGVjaWZpZWQgaW4gdGhlIHNvdXJjZSBjb2RlIHdoaWNoIGlzIGFsc28g d2hhdCB3ZSBuZWVkIGhlcmUuDQo+ID4NCj4gPiAgICAgICAgIEkgdGhpbmsgSmVyaW4gcG9pbnRz IHRoYXQgcnRlX3BhdXNlKCkgYWN0cyBoZXJlIGFzIGNvbXBpbGVyIGJhcnJpZXIgdG9vLA0KPiA+ ICAgICAgICAgc28gbm8gbmVlZCB0byB3b3JyeSB0aGF0IGNvbXBpbGVyIHdvdWxkIG9wdGltaXpl IG91dCB0aGUgbG9vcC4NCj4gPiAgICAgW09sYV0gU29ycnkgbWlzc2VkIHRoYXQuIEJ1dCB0aGUg YmFycmllciBiZWhhdmlvdXIgb2YgcnRlX3BhdXNlKCkNCj4gPiBpcyBub3QgcGFydCBvZiBDMTEs IGlzIGl0IGVzc2VudGlhbGx5IGEgaGFuZC1tYWRlIGZlYXR1cmUgdG8gc3VwcG9ydA0KPiA+IHRo ZSBsZWdhY3kgbXVsdGl0aHJlYWRlZCBtZW1vcnkgbW9kZWwgKHdoaWNoIHVzZXMgZXhwbGljaXQg SFcgYW5kDQo+IGNvbXBpbGVyIGJhcnJpZXJzKS4gSSdkIHByZWZlciBjb2RlIHVzaW5nIHRoZSBD MTEgbWVtb3J5IG1vZGVsIG5vdCB0bw0KPiBkZXBlbmQgb24gc3VjaCBsZWdhY3kgZmVhdHVyZXMu DQo+ID4NCj4gPg0KPiA+DQo+ID4gICAgICAgICBLb25zdGFudGluDQo+ID4NCj4gPiAgICAgICAg ID4NCj4gPiAgICAgICAgID4gT25lIHBvaW50IHdvcnRoIG1lbnRpb25pbmcgdGhvdWdoIGlzIHRo YXQgdGhpcyBjaGFuZ2UgaXMgZm9yDQo+ID4gdGhlIHJ0ZV9yaW5nX2MxMV9tZW0uaCBmaWxlLCBu b3QgdGhlIGxlZ2FjeSByaW5nLiBJdCBtYXkgYmUgd29ydGggcGVyc2lzdGluZw0KPiA+ICAgICAg ICAgPiB3aXRoIGdldHRpbmcgdGhlIEMxMSBjb2RlIHJpZ2h0IHdoZW4gcGVvcGxlIGFyZSBsZXNz IGV4Y2l0ZWQgYWJvdXQNCj4gc2VuZGluZyBhIHJlbGVhc2Ugb3V0Pw0KPiA+ICAgICAgICAgPg0K PiA+ICAgICAgICAgPiBXZSBjYW4gZXhwbGFpbiB0aGF0IGZvciBDMTEgd2Ugd291bGQgcHJlZmVy IHRvIGRvIGxvYWRzIGFuZCBzdG9yZXMNCj4gYXMgcGVyIHRoZSBDMTEgbWVtb3J5IG1vZGVsLiBJ biB0aGUgY2FzZSBvZiBydGVfcmluZywgdGhlIGNvZGUgaXMNCj4gPiAgICAgICAgID4gc2VwYXJh dGVkIGNsZWFubHkgaW50byBDMTEgc3BlY2lmaWMgZmlsZXMgYW55d2F5Lg0KPiA+ICAgICAgICAg Pg0KPiA+ICAgICAgICAgPiBJIHRoaW5rIHJlYWRpbmcgaHQtPnRhaWwgdXNpbmcgX19hdG9taWNf bG9hZF9uKCkgaXMgdGhlIG1vc3QNCj4gYXBwcm9wcmlhdGUgd2F5LiBXZSBzaG93IHRoYXQgaHQt PnRhaWwgaXMgdXNlZCBmb3Igc3luY2hyb25pemF0aW9uLCB3ZQ0KPiA+ICAgICAgICAgPiBhY2tu b3dsZWRnZSB0aGF0IGh0LT50YWlsIG1heSBiZSB3cml0dGVuIGJ5IG90aGVyIHRocmVhZHMNCj4g PiB3aXRob3V0IGFueSBvdGhlciBraW5kIG9mIHN5bmNocm9uaXphdGlvbiAoZS5nLiBubyBsb2Nr IGludm9sdmVkKSBhbmQgd2UNCj4gcmVxdWlyZQ0KPiA+ICAgICAgICAgPiBhbiBhdG9taWMgbG9h ZCAoYW55IHdyaXRlIHRvIGh0LT50YWlsIG11c3QgYWxzbyBiZSBhdG9taWMpLg0KPiA+ICAgICAg ICAgPg0KPiA+ICAgICAgICAgPiBVc2luZyB2b2xhdGlsZSBhbmQgZXhwbGljaXQgY29tcGlsZXIg KG9yIHByb2Nlc3NvcikgbWVtb3J5IGJhcnJpZXJzDQo+IChmZW5jZXMpIGlzIHRoZSBsZWdhY3kg cHJlLUMxMSB3YXkgb2YgYWNjb21wbGlzaGluZyB0aGVzZSB0aGluZ3MuDQo+ID4gVGhlcmUncw0K PiA+ICAgICAgICAgPiBhIHJlYXNvbiB3aHkgQzExL0MrKzExIG1vdmVkIGF3YXkgZnJvbSB0aGUg b2xkIHdheXMuDQo+ID4gICAgICAgICA+ID4gPg0KPiA+ICAgICAgICAgPiA+ID4gICAgICAgICBf X2F0b21pY19zdG9yZV9uKCZodC0+dGFpbCwgbmV3X3ZhbCwgX19BVE9NSUNfUkVMRUFTRSk7DQo+ ID4gICAgICAgICA+ID4gPiAtLQ0KPiA+ICAgICAgICAgPiA+ID4gMi43LjQNCj4gPiAgICAgICAg ID4gPiA+DQo+ID4NCj4gPg0KPiA+DQoNCg==