From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5D618430C0; Sun, 27 Aug 2023 01:34:49 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D62B140F17; Sun, 27 Aug 2023 01:34:48 +0200 (CEST) Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2074.outbound.protection.outlook.com [40.107.22.74]) by mails.dpdk.org (Postfix) with ESMTP id C4D9B40A8B for ; Sun, 27 Aug 2023 01:34:46 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=V955pqdzW5XodW7Tg35LyLbzNejkunOGBin3ianrc1E20+1iOwaNRkE/mgMwGjZc9AXfyiHA1amv44yFZ9Gt3SHI40/H2roAU9VxaWhHxsNLAP88Hp9a8SxZTds/zgNaLBqxE+JFfqniuXiyslpCa0wRkSMsD0qc14NnY2xACmXy24uFB4EYCfFXcWPwJdgLHQKaWALDB1duSyZxtl5cI907/SRHm4T7svKT482K3KysB1JuVD4chJh040quXlgzojAi8e5AzizKqUj5gUMh1CAcIRPPv3iLbvRIkyNYASU46l/NH362U4Sgyg46JhQRQCA9Tt9D/c+dBQJUntqBKA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=3LqeXiWBcjbj6bX0zdLu9K+djw7lpd9URL9+sDod8ko=; b=lL9WOvQ2vexe9hSC5FMWBMiX3MnnTv9pZWZKM7cPXljcXk6oHKUVmzLycXudCv212oGzunpuFPfIPNAWrqFfAQuYep5PkXvqb2NhD96qY3Wy8NQMD1AvrCtl7n1bLer3ntpAx9P+EXPwBVMjVs6/3lFvrVLjvb6aBLOJqolPjN4BIxKvRf1hIxONuwjOaa7MMD1jl79uVBlQNsGPp8ysOLdyS/g+dS3phP1OItjpZTe7C6yQUot4/jj/6DY132tfmdHWXwAiNIYBoFyNymHdCBcMrnTwseBMQl0oRxrc26OEhMIVhAPlMM6zYJOBJVbPTZYHm5xraZMow9QaE1CK6A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3LqeXiWBcjbj6bX0zdLu9K+djw7lpd9URL9+sDod8ko=; b=H3eOpXY5t2UfH7SkM996s7xAuyVhzgc/UN/YHkj2c8vHZ/tsqSZjDoj7oQQpi+28SQcZIUHuGdskF9Wu40e5bf24AfpJal8Cl92lqxWIpzrh9vIomFZN8/KMe0Nq8hFRPihAA86HxvcAwE37Ax0EQIKaztzvCe6U8izKxUjgPPI= Received: from DBAPR08MB5814.eurprd08.prod.outlook.com (2603:10a6:10:1b1::6) by DB9PR08MB7584.eurprd08.prod.outlook.com (2603:10a6:10:308::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6699.34; Sat, 26 Aug 2023 23:34:43 +0000 Received: from DBAPR08MB5814.eurprd08.prod.outlook.com ([fe80::b3a3:eb56:481f:99c2]) by DBAPR08MB5814.eurprd08.prod.outlook.com ([fe80::b3a3:eb56:481f:99c2%4]) with mapi id 15.20.6699.034; Sat, 26 Aug 2023 23:34:43 +0000 From: Honnappa Nagarahalli To: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , =?utf-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= , "jackmin@nvidia.com" , "konstantin.v.ananyev@yandex.ru" CC: "dev@dpdk.org" , Ruifeng Wang , Aditya Ambadipudi , Wathsala Wathawana Vithanage , nd , nd Subject: RE: [RFC] lib/st_ring: add single thread ring Thread-Topic: [RFC] lib/st_ring: add single thread ring Thread-Index: AQHZ1AJIj5UOZIDmtU+IXup+eth44a/1vMRwgANPOHCAAD45gIAACDMAgAPxLfA= Date: Sat, 26 Aug 2023 23:34:42 +0000 Message-ID: References: <20230821060420.3509667-1-honnappa.nagarahalli@arm.com> <98CBD80474FA8B44BF855DF32C47DC35D87B22@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC35D87B2B@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC35D87B2D@smartserver.smartshare.dk> In-Reply-To: <98CBD80474FA8B44BF855DF32C47DC35D87B2D@smartserver.smartshare.dk> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 1D364F88E0B7D940857F5F8A10533A05.0 x-checkrecipientchecked: true authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DBAPR08MB5814:EE_|DB9PR08MB7584:EE_ x-ms-office365-filtering-correlation-id: c05849ab-ad86-4d09-b9d6-08dba68d0621 nodisclaimer: true x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: UX0JxWI3pbVx328nCjbo+Co2XU+ClvWr1O8nO0E6imTFp7al2UTVQcI4lQ4l/v14QPBdNKq/J27j3HpzPaC1jTf7A4qLjptLLHVL9q1yeZq8rYGRVHLZ6chM9Fh9RwPXijKdea/wj8sVvE1tK7r1wj9rvW6IMlbxeQdl2oUbcW0vIDqmrIuGbEHV5gP62nEWP+dS3zh+gPrjdlI5I70Sg1qPSLQhhYgGDWRIs4VFduOSIHhSxh7b4hy4KuuWHpFt/dzNryugHlh1cAbpwDMdJJVx5/CZLtC9luWpiavxCbwedd/f4OVnsGoSgsRfrS1GrYJ/mw4secx5BFusMyEWMuodMOxN0VaC/KIR9gqmWFcRlBD5L05B0Xdq8iEFeIiBYwAhLTsx3GpRcamrLkPdE1FNvXJT860eYe+VcZeq1we6v61/hd4DXjfx6qbYGaVToVdSJ3cpR71uPwkDswAbgiIHUP92TEU8gv+SgdX0FDLplyJW3li0rpa9jE4ilssJBdhrpacxatuqWZR3vvQMvUBrITzA6qAsi4TrO70983RL1OALo1XVJjNOV+FRq9crBjLasg1cFcXK9A3R/ES2u3I5nE6dzwGvixcSgcCBl/Dj4XqvgmdosFrQsdhpfFuwalZuYlOYd8E9hxDrhhYQ9A== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DBAPR08MB5814.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(39850400004)(136003)(366004)(376002)(396003)(346002)(451199024)(186009)(1800799009)(9686003)(7696005)(6506007)(71200400001)(53546011)(478600001)(83380400001)(2906002)(54906003)(316002)(64756008)(66446008)(66946007)(66476007)(52536014)(41300700001)(76116006)(110136005)(5660300002)(66556008)(4326008)(8676002)(8936002)(66574015)(33656002)(55016003)(38070700005)(38100700002)(86362001)(122000001)(66899024)(21314003); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Y3VuaUVRUmtweXV1c1FDRkduSlVTYzFiMEJuSnI3SHdmeE1JMjNPSGd3aklV?= =?utf-8?B?Nm5TZGNINEc0eVlvK3lkSno3Q1U4cFd0Z2cwVnFDVU1pR2ovWVdyQWhUUXpF?= =?utf-8?B?c2wyN2xTdlVKVDAzUW5wdmptdDA5ditCQS9yWDFUeUUxMkxSL0psWDNvcENy?= =?utf-8?B?UlhVOVFQUW15eWgvUU1qYndlQUVuRU02MHRqeVZEQ1lsV21PUjBtVkJNdXk5?= =?utf-8?B?RnBWZTlyWW40WTRKSjkrRitvTUNtVVVBTW94bkxhOWdTUzdVVWtQOTJ3UC9N?= =?utf-8?B?UU0yTXFHbTlneGxRU1dFMm1lVU40QWpOcHVmbkZCZ01HamVIbStwS2IyRzN5?= =?utf-8?B?Ry8xV3BFbFE2WGZTaERDSGpqd2llallzb1dLdWo2UTFFTWJKMENGdk1KVUli?= =?utf-8?B?eHM4ODRjYjYwU2RVdW9oeWcrZHRWKy9zdDlNbmE5N1dDaVRmUFFHM0RMaExP?= =?utf-8?B?RlJQS2JnNTQ4RFh1SzR2NnBQNzFBVTdnOVlRL3NDSXc3Q1NmRzhOM1pBYk5S?= =?utf-8?B?d0JvVWF3MWlZcGZkNkR6T1liVmFkQ3V5TWtDYVlqU3d4VVc1OUp3MThsN3Fv?= =?utf-8?B?bUs1NjhST0FoUElyYlRZays0UUtuSjFEN3ErMHB3Zjk2bXhRL3h5UXNlbW5v?= =?utf-8?B?MnFVY2ZORE42aFFhZ05UYU5rWGZpNlhUK05SS1pZNENYQU40QjROWHlZcWU5?= =?utf-8?B?NHZSb0dFZTlvRXNLSmZ5a05wbnorVER2MEZuWFhvOHZ0TVdJMWdHcmFJcitw?= =?utf-8?B?NE9qY0Y4UkxtSjZPU2dwTExYQlg0WXgwMS83ckZsbmg0aGRhSGcwWmlRa2VS?= =?utf-8?B?VU42N0ZOZ3l3QkVSU0M2NVg0WlFNaStudDQ3aFRiT1AydTZYZkRFOWhHL3ZU?= =?utf-8?B?b25iNHI1UjYwdm4ycW01cTQxNmlYdzdsdm5Ubzh3VmEyK0c5VllGYkpIdnhX?= =?utf-8?B?enBpVEc3MmVLc2QvMWtLUXFaaDRQMjlkNDN3M3dJaW1rZVZGWlBuOGFzVGRN?= =?utf-8?B?V28yWVUraWg3MTFtSVoyMzF6MUNaVno5NzRXNk5XOVY2ZWI5dHFzUDllMFJM?= =?utf-8?B?KzJqYXM0ZDBZQkxoSkcreHdmZFcrbUgyejN1d1VPVXJvUGFldmgvNG9DUzBJ?= =?utf-8?B?QnhhY0J0bGpZS3JuQTJaLzNqbEYwU29uTXhDVWZRTG9Fay9RUTVMaTF3TXQy?= =?utf-8?B?RlJyUVpJdHdOQzhXaHJGYkFML2h1UW5ZNS9VUnQ5RGFrMDVoT25BajBwOVhu?= =?utf-8?B?OTBkVDJ4OFZEOXoydHd3UnBmbWorenU3SjRPaUZZbFRHRE04UEkwTEh5UFdZ?= =?utf-8?B?MjQxQTFPOCt5UTEwaVNTMEF3MWtDcUthcnlkUklTMVVaOGwyaDdsdTdjMy9n?= =?utf-8?B?WTFXeDFJWnpMT1FzdXlJWVY4T3ZPa1U2OXFDVmxQMVIrT3dyanduOWdlOS9z?= =?utf-8?B?SDRKaUgwRW8zNG01dGR5aWtKbWltaGJVSUE2aHIyN2RweFRLVzc0M2lHb1Br?= =?utf-8?B?cGhnM0FWalVQRit0VXpGY3VBZ21CMDF2QXo5N2sycmZsVlJXWGNqQVRhc085?= =?utf-8?B?L3o5YVFvVUdxYy9lbVVxL3BwZ0FzR01zZDMrRGZzcVRWcEx1NiswZGpCZEJk?= =?utf-8?B?cFVhMVhLaW5EYkJid3MyNFM5N0ZKSks5blVqSjJ0OXlNWkwzWWdMUmtKU0Rv?= =?utf-8?B?cWFRNDN0UGQ4R0FiaGV2UGhWRklGQ0pic1AxMG5ubnF6NzJBMWZHYmo0bDhG?= =?utf-8?B?Q2xHR0ppTmVwMWswUTdYRWNOaEFPWmZsNmpDc0FWUWg0bHR2YTQzalBBVWtK?= =?utf-8?B?ZjNhbVcrcDRJdndXd0FEMVpuaEtCcy9zUTd4bXo5bURNS3RZQ09aV21zc05F?= =?utf-8?B?YTYxcTFMcHZxMUwwSTlQOXdZcjI1QUNYLzk3L0VEVnNmZmdLRDRXWE8vZmZH?= =?utf-8?B?QjlESlI1TlEyNW9ZRzVQeWhkcGVsVDk4L0JMTFkxRC95bHE3Y01NYUJXazJM?= =?utf-8?B?Vm0rZm9wNWt2V3pGZUZUOCszZnU5azBFQld6NnJXUFlzWXdMdkFxWnJmeDVq?= =?utf-8?B?L1dsT1RrWmIwdktYcW1hVms0Yk5ZWEY0M2hWTUt5OC9LK1g0WU1lUEhHcHlG?= =?utf-8?B?SkhoTEFCSWJnZTRyRHdDY2wrOFptUlZHUERaWGpsUlArSFEvWE4yN3hHU2xQ?= =?utf-8?B?ODVxa2hlUFNNTVA4a1JGRjRHdlpkYVlRdVpYSlZkdE02dzFJaU9PamRLV0hU?= =?utf-8?B?VXdnTXFKZVU3ZWFVV3doYkhUYWVnPT0=?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DBAPR08MB5814.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c05849ab-ad86-4d09-b9d6-08dba68d0621 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2023 23:34:42.6163 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: OoOPQSVeNEYRFPRt6JlBr04wfkdLlYafmBZWgVNxRUPyDdbTgLj01ZwYxAUdtW0hzTeiahLzxJgSRhaJbf33ENqrbCH4mCSmI3Ej6NpQmPk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB7584 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org PHNuaXA+DQoNCj4gDQo+ID4gRnJvbTogTWF0dGlhcyBSw7ZubmJsb20gW21haWx0bzpob2ZvcnNA bHlzYXRvci5saXUuc2VdDQo+ID4gU2VudDogVGh1cnNkYXksIDI0IEF1Z3VzdCAyMDIzIDEyLjUz DQo+ID4NCj4gPiBPbiAyMDIzLTA4LTI0IDEwOjA1LCBNb3J0ZW4gQnLDuHJ1cCB3cm90ZToNCj4g PiA+PiBGcm9tOiBIb25uYXBwYSBOYWdhcmFoYWxsaSBbbWFpbHRvOkhvbm5hcHBhLk5hZ2FyYWhh bGxpQGFybS5jb21dDQo+ID4gPj4gU2VudDogVHVlc2RheSwgMjIgQXVndXN0IDIwMjMgMDcuNDcN Cj4gPiA+Pg0KPiA+ID4+PiBGcm9tOiBNb3J0ZW4gQnLDuHJ1cCA8bWJAc21hcnRzaGFyZXN5c3Rl bXMuY29tPg0KPiA+ID4+PiBTZW50OiBNb25kYXksIEF1Z3VzdCAyMSwgMjAyMyAyOjM3IEFNDQo+ ID4gPj4+DQo+ID4gPj4+PiBGcm9tOiBIb25uYXBwYSBOYWdhcmFoYWxsaQ0KPiBbbWFpbHRvOmhv bm5hcHBhLm5hZ2FyYWhhbGxpQGFybS5jb21dDQo+ID4gPj4+PiBTZW50OiBNb25kYXksIDIxIEF1 Z3VzdCAyMDIzIDA4LjA0DQo+ID4gPj4+Pg0KPiA+ID4+Pj4gQWRkIGEgc2luZ2xlIHRocmVhZCBz YWZlIGFuZCBtdWx0aS10aHJlYWQgdW5zYWZlIHJpbmcgZGF0YSBzdHJ1Y3R1cmUuDQo+ID4gPj4+ PiBUaGlzIGxpYnJhcnkgcHJvdmlkZXMgYW4gc2ltcGxlIGFuZCBlZmZpY2llbnQgYWx0ZXJuYXRp dmUgdG8NCj4gPiA+Pj4+IG11bHRpLSB0aHJlYWQgc2FmZSByaW5nIHdoZW4gbXVsdGktdGhyZWFk IHNhZmV0eSBpcyBub3QgcmVxdWlyZWQuDQo+ID4gPj4+Pg0KPiA+ID4+Pj4gU2lnbmVkLW9mZi1i eTogSG9ubmFwcGEgTmFnYXJhaGFsbGkNCj4gPiA+Pj4+IDxob25uYXBwYS5uYWdhcmFoYWxsaUBh cm0uY29tPg0KPiA+ID4+Pj4gLS0tDQo+ID4gPj4+DQo+ID4gPj4+IEdvb2QgaWRlYS4NCj4gPiA+ Pj4NCj4gPiA+Pj4gSG93ZXZlciwgSSBwcmVmZXIgaXQgdG8gYmUgaW1wbGVtZW50ZWQgaW4gdGhl IHJpbmcgbGliIGFzIG9uZSBtb3JlDQo+ID4gPj4+IHJpbmcNCj4gPiA+PiB0eXBlLg0KPiA+ID4+ PiBUaGF0IHdvdWxkIGFsc28gZ2l2ZSB1cyBhIGxvdCBvZiB0aGUgaW5mcmFzdHJ1Y3R1cmUgKG1h bmFnZW1lbnQNCj4gPiA+Pj4gZnVuY3Rpb25zLCBkb2N1bWVudGF0aW9uIGFuZCB0ZXN0cykgZm9y IGZyZWUuDQo+ID4gPj4gSU1PLCB0aGUgY3VycmVudCBjb2RlIGZvciBydGVfcmluZyBzZWVtcyBj b21wbGV4IHdpdGggQzExIGFuZA0KPiA+ID4+IGdlbmVyaWMgaW1wbGVtZW50YXRpb25zLCBBUElz IGZvciBwb2ludGVyIG9iamVjdHMgdnMgQVBJcyBmb3INCj4gPiA+PiBmbGV4aWJsZSBlbGVtZW50 IHNpemUgZXRjLiBJIGRpZCBub3Qgd2FudCB0byBpbnRyb2R1Y2Ugb25lIG1vcmUgZmxhdm9yIGFu ZA0KPiBtYWtlIGl0IG1vcmUgY29tcGxleC4NCj4gPiA+DQo+ID4gPiAgRnJvbSB0aGUgdXNlciBw ZXJzcGVjdGl2ZSwgSSB0aGluayBvbmUgbW9yZSByaW5nIGZsYXZvciBpcyBsZXNzDQo+ID4gPiBj b21wbGV4DQo+ID4gdGhhbiBhbiBlbnRpcmVseSBzZXBhcmF0ZSAodmVyeSBzaW1pbGFyKSBsaWJy YXJ5IHdpdGggaXRzIG93biBzZXQgb2YNCj4gPiAodmVyeQ0KPiA+IHNpbWlsYXIpIEFQSXMuDQo+ ID4gPg0KPiA+ID4gSSBhZ3JlZSB0aGF0IHRoZSByaW5nIGxpYiBoYXMgZ3Jvd24gc29tZXdoYXQg b3Zlci1lbmdpbmVlcmVkLCBidXQNCj4gPiA+IHBsZWFzZQ0KPiA+IGRvbid0IHVzZSB0aGF0IGFz IGFuIGFyZ3VtZW50IGZvciBtYWtpbmcgdGhlIHNhbWUtdGhyZWFkIHJpbmcgYSBzZXBhcmF0ZQ0K PiBsaWIuDQo+ID4gPg0KPiA+DQo+ID4gV2hhdCdzIGJlaW5nIHByb3Bvc2VkIGlzIGEgZG91Ymxl LWVuZGVkIHF1ZXVlLCBub3QgYSByaW5nIChpbiB0aGUgRFBESw0KPiA+IHNlbnNlKS4NCj4gPg0K PiA+IElmIHlvdSB3YW50IHRvIFN3aXNzIGFybXkga25pZmlmeSB0aGUgcnRlX3JpbmcgZnVydGhl ciBhbmQgbWFrZSBpdCBhDQo+ID4gZGVxdWUsIHRoZW4gcnRlX3N0YWNrIHNob3VsZCBzY3JhcHBl ZCBhcyB3ZWxsLCBzaW5jZSBpdCdzIHdpbGwgYmVjb21lDQo+ID4ganVzdCBhIHN1YnNldCBvZiB0 aGUgbmV3IHJ0ZV9yaW5nX25vd19yZWFsbHlfYV9kZXF1ZS4NCj4gDQo+IE9LLiBJIGFjY2VwdCB0 aGF0IGFyZ3VtZW50IGZvciBub3QgaGFja2luZyBpdCBpbnRvIHRoZSByaW5nIGxpYi4NCj4gDQo+ IFRoZW4gSSB3aWxsIHN1Z2dlc3QgdGhhdCB0aGUgbmV3ICJkZXF1ZSIgbGlicmFyeSBzaG91bGQg YmUgZGVzaWduZWQgd2l0aA0KPiBtdWx0aS10aHJlYWRpbmcgaW4gbWluZCwgbGlrZSBpdHMgdHdv IHNpYmxpbmcgbGlicyAocmluZyBhbmQgc3RhY2spLiBUaGlzIG1ha2VzIGl0DQo+IGVhc2llciB0 byB1c2UsIGFuZCBsZWF2ZXMgaXQgb3BlbiBmb3IgZXhwYW5zaW9uIHRvIG90aGVyIGZsYXZvcnMg aW4gdGhlIGZ1dHVyZS4NCj4gDQo+IEl0IGlzIHBlcmZlY3RseSBhY2NlcHRhYmxlIHRoYXQgdGhl IGZpcnN0IHZlcnNpb24gb25seSBzdXBwb3J0cyB0aGUgc2FtZS10aHJlYWQNCj4gZGVxdWUgZmxh dm9yLCBhbmQgb25seSB0aGUgc2FtZS10aHJlYWQgc3BlY2lhbGl6ZWQgQVBJcyBhcmUgZXhwb3Nl ZC4gSSBkb24ndA0KPiByZXF1aXJlIGFueSBBUElzIG9yIGltcGxlbWVudGF0aW9ucyBzdXBwb3J0 aW5nIHNpbmdsZS10aHJlYWRlZCAoaW5kaXZpZHVhbA0KPiBwcm9kdWNlci9jb25zdW1lciB0aHJl YWRzKSBvciBtdWx0aS10aHJlYWRlZCBmbGF2b3JzLCBJIG9ubHkgcmVxdWVzdCB0aGF0IHRoZQ0K PiBkZXNpZ24gYW5kIEFQSSByZXNlbWJsZSB0aG9zZSBvZiBpdHMgdHdvIHNpYmxpbmcgbGlicmFy aWVzLiAoQW5kIGlmIHRoZXJlIGFyZSBubw0KPiB1c2UgY2FzZXMgZm9yIG11bHRpLXRocmVhZGlu ZyBmbGF2b3JzLCB0aGV5IG1pZ2h0IG5ldmVyIGJlIGFkZGVkIHRvIHRoaXMgbGliLikNCisxLCB3 aWxsIGFpbSBmb3IgdGhpcw0KDQo+IA0KPiA+DQo+ID4gPiBPbiB0aGUgb3RoZXIgaGFuZDogSWYg dGhlIGFkZGl0aW9uIG9mIGFuIG9wdGltaXplZCBzYW1lLXRocmVhZCByaW5nDQo+ID4gPiBmbGF2 b3INCj4gPiB3b3VsZCByZXF1aXJlIHRvbyBtYW55IGludmFzaXZlIG1vZGlmaWNhdGlvbnMgb2Yg dGhlIGV4aXN0aW5nIHJpbmcNCj4gPiBsaWIsIEkgd291bGQgYWNjZXB0IHRoYXQgYXMgYW4gYXJn dW1lbnQgZm9yIG5vdCBhZGRpbmcgaXQgYXMgYW5vdGhlcg0KPiA+IHJpbmcgZmxhdm9yIHRvIHRo ZSBleGlzdGluZyByaW5nIGxpYi4NCj4gPiA+DQo+ID4gPj4gVGhlIHJlcXVpcmVtZW50cyBhcmUg ZGlmZmVyZW50IGFzIHdlbGwuIEZvciBleDogc2luZ2xlIHRocmVhZCByaW5nDQo+ID4gPj4gbmVl ZHMNCj4gPiBBUElzDQo+ID4gPj4gZm9yIGRlcXVldWluZyBhbmQgZW5xdWV1aW5nIGF0IGJvdGgg ZW5kcyBvZiB0aGUgcmluZyB3aGljaCBpcyBub3QNCj4gPiBhcHBsaWNhYmxlDQo+ID4gPj4gdG8g ZXhpc3RpbmcgUlRFIHJpbmcuDQo+ID4gPg0KPiA+ID4gWWVzLCBJIHdpbGwgYWRkcmVzcyB0aGlz IHRvcGljIGF0IHRoZSBlbmQgb2YgdGhpcyBtYWlsLg0KPiA+ID4NCj4gPiA+Pg0KPiA+ID4+IEJ1 dCwgSSBzZWUgaG93IHRoZSBleGlzdGluZyBpbmZyYSBjYW4gYmUgcmV1c2VkIGVhc2lseS4NCj4g PiA+DQo+ID4gPiBUaGlzIGFsc28gZ29lcyBmb3IgZnV0dXJlIGluZnJhc3RydWN0dXJlLiBJIGRv dWJ0IHRoYXQgbmV3DQo+ID4gPiBpbmZyYXN0cnVjdHVyZQ0KPiA+IGFkZGVkIHRvIHRoZSByaW5n IGxpYiB3aWxsIGFsc28gYmUgYWRkZWQgdG8gdGhlIHNhbWUtdGhyZWFkIHJpbmcNCj4gPiBsaWIu Li4gZm9yIHJlZmVyZW5jZSwgY29uc2lkZXIgdGhlIFBNRHMgY29udGFpbmluZyBjb3B5LXBhc3Rl ZCBjb2RlDQo+ID4gZnJvbSB0aGUgbWVtcG9vbCBsaWIuLi4gbm9uZSBvZiB0aGUgbGF0ZXIgaW1w cm92ZW1lbnRzIG9mIHRoZSBtZW1wb29sDQo+ID4gbGliIHdlcmUgaW1wbGVtZW50ZWQgaW4gdGhv c2UgUE1Ecy4NCj4gPiA+DQo+ID4gPiBJbiBlc3NlbmNlLCBJIHRoaW5rIHRoaXMgbGliIG92ZXJs YXBzIHRoZSBleGlzdGluZyByaW5nIGxpYiB0b28gbXVjaA0KPiA+ID4gdG8NCj4gPiBqdXN0aWZ5 IG1ha2luZyBpdCBhIHNlcGFyYXRlIGxpYi4NCj4gPiA+DQo+ID4gPj4NCj4gPiA+Pj4NCj4gPiA+ Pj4gVGhlIHJpbmcgbGliIGFscmVhZHkgaGFzIHBlcmZvcm1hbmNlLW9wdGltaXplZCBBUElzIGZv cg0KPiA+ID4+PiBzaW5nbGUtY29uc3VtZXINCj4gPiBhbmQNCj4gPiA+Pj4gc2luZ2xlLXByb2R1 Y2VyIHVzZSwgcnRlX3Jpbmdfc2NfZGVxdWV1ZV9idWxrKCkgYW5kDQo+ID4gPj4+IHJ0ZV9yaW5n X3NwX2VucXVldWVfYnVyc3QoKS4gU2ltaWxhciBwZXJmb3JtYW5jZS1vcHRpbWl6ZWQgQVBJcw0K PiA+ID4+PiBmb3INCj4gPiBzaW5nbGUtDQo+ID4gPj4+IHRocmVhZCB1c2UgY291bGQgYmUgYWRk ZWQ6IHJ0ZV9yaW5nX3N0X2RlcXVldWVfYnVsaygpIGFuZA0KPiA+ID4+PiBydGVfcmluZ19zdF9l bnF1ZXVlX2J1cnN0KCkuDQo+ID4gPj4gWWVzLCB0aGUgbmFtZXMgbG9vayBmaW5lLg0KPiA+ID4+ IExvb2tpbmcgdGhyb3VnaCB0aGUgY29kZS4gV2UgaGF2ZSB0aGUgc3luYyB0eXBlIGVudW06DQo+ ID4gPj4NCj4gPiA+PiAvKiogcHJvZC9jb25zIHN5bmMgdHlwZXMgKi8NCj4gPiA+PiBlbnVtIHJ0 ZV9yaW5nX3N5bmNfdHlwZSB7DQo+ID4gPj4gICAgICAgICAgUlRFX1JJTkdfU1lOQ19NVCwgICAg IC8qKjwgbXVsdGktdGhyZWFkIHNhZmUgKGRlZmF1bHQgbW9kZSkgKi8NCj4gPiA+PiAgICAgICAg ICBSVEVfUklOR19TWU5DX1NULCAgICAgLyoqPCBzaW5nbGUgdGhyZWFkIG9ubHkgKi8NCj4gPiA+ PiAgICAgICAgICBSVEVfUklOR19TWU5DX01UX1JUUywgLyoqPCBtdWx0aS10aHJlYWQgcmVsYXhl ZCB0YWlsIHN5bmMgKi8NCj4gPiA+PiAgICAgICAgICBSVEVfUklOR19TWU5DX01UX0hUUywgLyoq PCBtdWx0aS10aHJlYWQgaGVhZC90YWlsIHN5bmMgKi8NCj4gPiA+PiB9Ow0KPiA+ID4+DQo+ID4g Pj4gVGhlIHR5cGUgUlRFX1JJTkdfU1lOQ19TVCBuZWVkcyBiZXR0ZXIgZXhwbGFuYXRpb24gKG5v dCBhIHByb2JsZW0pLg0KPiA+ID4+IEJ1dCwNCj4gPiB0aGlzDQo+ID4gPj4gbmFtZSB3b3VsZCBo YXZlIGJlZW4gaWRlYWwgdG8gdXNlIGZvciBzaW5nbGUgdGhyZWFkIHJpbmcuDQo+ID4gPj4gVGhp cyBlbnVtIGRvZXMgbm90IG5lZWQgdG8gYmUgZXhwb3NlZCB0byB0aGUgdXNlcnMuIEhvd2V2ZXIs IHRoZXJlDQo+ID4gPj4gYXJlIHJ0ZV9yaW5nX2dldF9wcm9kL2NvbnNfc3luY190eXBlIGV0YyB3 aGljaCBzZWVtIHRvIGJlIGV4cG9zZWQgdG8NCj4gdGhlIHVzZXIuDQo+ID4gPj4gVGhpcyBhbGwg bWVhbnMsIHdlIG5lZWQgdG8gaGF2ZSBhIHN5bmMgdHlwZSBuYW1lDQo+ID4gPj4gUlRFX1JJTkdf U1lOQ19NVF9VTlNBRkUNCj4gPiAoYW55DQo+ID4gPj4gb3RoZXIgYmV0dGVyIG5hbWU/KSB3aGlj aCB0aGVuIGFmZmVjdHMgQVBJIG5hbWluZy4NCj4gPiA+PiBydGVfcmluZ19tdF91bnNhZmVfZGVx dWV1ZV9idWxrPw0KPiA+ID4NCj4gPiA+IEFzIGFsd2F5cywgbmFtaW5nIGlzIGRpZmZpY3VsdC4N Cj4gPiA+IFRoZSBlbnVtIHJ0ZV9yaW5nX3N5bmNfdHlwZSBkZXNjcmliZXMgdGhlIHByb2R1Y2Vy IGFuZCBjb25zdW1lcg0KPiA+IGluZGVwZW5kZW50bHksIHdoZXJlYXMgdGhpcyByaW5nIHR5cGUg dXNlcyB0aGUgc2FtZSB0aHJlYWQgZm9yIGJvdGgNCj4gPiBwcm9kdWNlciBhbmQgY29uc3VtZXIu DQo+ID4gPiBJIHRoaW5rIHdlIHNob3VsZCBhdm9pZCBNVCBpbiB0aGUgbmFtZXMgZm9yIHRoaXMg dmFyaWFudC4gSG93IGFib3V0Og0KPiA+ID4NCj4gPiA+IFJURV9SSU5HX1NZTkNfU1RQQyAvKio8 IHNhbWUgdGhyZWFkIGZvciBib3RoIHByb2R1Y2VyIGFuZCBjb25zdW1lcg0KPiA+ID4gKi8NCj4g PiA+DQo+ID4gPiBBbmQ6DQo+ID4gPg0KPiA+ID4gcnRlX3Jpbmdfc3BjX2RlcXVldWVfYnVsaygp IGFuZCBydGVfcmluZ19zcGNfZW5xdWV1ZV9idXJzdCgpDQo+ID4gPg0KPiA+ID4+DQo+ID4gPj4+ DQo+ID4gPj4+IFJlZ2FyZGxlc3MgaWYgYWRkZWQgdG8gdGhlIHJpbmcgbGliIG9yIGFzIGEgc2Vw YXJhdGUgbGliLA0KPiA+ID4+PiAicmV2ZXJzZSIgQVBJcw0KPiA+ID4+IChmb3Igc2luZ2xlLQ0K PiA+ID4+PiB0aHJlYWQgdXNlIG9ubHkpIGFuZCB6ZXJvLWNvcHkgQVBJcyBjYW4gYmUgYWRkZWQg YXQgYW55IHRpbWUgbGF0ZXIuDQo+ID4gPg0KPiA+ID4gQXMgdGhlIG9ubHkgY3VycmVudCB1c2Ug Y2FzZSBmb3IgInJldmVyc2UiIChpLmUuIGRlcXVldWUgYXQgdGFpbCwNCj4gPiA+IGVucXVldWUg YXQNCj4gPiBoZWFkKSBBUElzIGlzIGZvciB0aGUgc2FtZS10aHJlYWQgcmluZyBmbGF2b3IsIHdl IGNvdWxkIHN0YXJ0IGJ5DQo+ID4gYWRkaW5nIG9ubHkgdGhlIHNwZWNpYWxpemVkIHZhcmlhbnRz IG9mIHRoZSAicmV2ZXJzZSIgQVBJcywNCj4gPiBydGVfcmluZ19zcGNfcmV2ZXJzZV94eHgoKSwg YW5kIGluaXRpYWxseSBvbWl0IHRoZSBnZW5lcmljDQo+ID4gcnRlX3JpbmdfcmV2ZXJzZV94eHgo KSBBUElzLiAoV2UgbmVlZCBiZXR0ZXIgbmFtZXM7IEkgdXNlZCAicmV2ZXJzZSINCj4gPiBmb3Ig ZXhwbGFuYXRpb24gb25seS4pDQo+ID4gPg0K