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 99C7AA04A4; Thu, 30 Apr 2020 23:38:36 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 79D091DAD9; Thu, 30 Apr 2020 23:38:36 +0200 (CEST) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2040.outbound.protection.outlook.com [40.107.21.40]) by dpdk.org (Postfix) with ESMTP id CC9391DAD2 for ; Thu, 30 Apr 2020 23:38:34 +0200 (CEST) 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=FKUVeNj40cor9PpJlt6tw+CmCpQow2+uqstpzgg4Mo8=; b=ycADMXR+W+YMdCCwuN6V7XiG76HGFO+5Fy0plkgdGJQzQksxKfcGybMra59ikw2Jn3+64pcWy+4Jrs/VvwutriDuoTZulC3um0XQZ5TRZbcssza+ka6UInz35oYegVLELpWt43SiFP19N6RXtRVrlXloGEMTSoNFjLfjt6k2+Q8= Received: from AM6PR0202CA0053.eurprd02.prod.outlook.com (2603:10a6:20b:3a::30) by VE1SPR01MB0013.eurprd08.prod.outlook.com (2603:10a6:803:10e::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2958.19; Thu, 30 Apr 2020 21:38:33 +0000 Received: from VE1EUR03FT043.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:3a:cafe::e4) by AM6PR0202CA0053.outlook.office365.com (2603:10a6:20b:3a::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2958.20 via Frontend Transport; Thu, 30 Apr 2020 21:38:33 +0000 Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dpdk.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dpdk.org; dmarc=bestguesspass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VE1EUR03FT043.mail.protection.outlook.com (10.152.19.122) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2958.20 via Frontend Transport; Thu, 30 Apr 2020 21:38:32 +0000 Received: ("Tessian outbound fb9de21a7e90:v54"); Thu, 30 Apr 2020 21:38:32 +0000 X-CR-MTA-TID: 64aa7808 Received: from ab1d3073d1e0.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 862C40BC-F280-4B69-840E-E6AF6D8A6DA0.1; Thu, 30 Apr 2020 21:38:27 +0000 Received: from EUR03-VE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id ab1d3073d1e0.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 30 Apr 2020 21:38:27 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QTRPhyqJvYk2GDsJ6eyygAbuBokzXtWhYaVe0dHRz33VFUjBMosVUeZ3nN0TbWmlGA8bM36VRey7aoWuOGPwykHxF0XsTts3hsjxoT3Xqoua2n+F94GJ3dAcKTVK2/BLynSu+5dCgu47Yxsx4cEKLDLTxGWmad8L6hMIs4Vh0THkBzBoCAnVHAPviu+F3C5S41bOPuClUYuIHGsly+jy08Blr/srQmOfrRrz+Y69pz71n/Ey50L2OsjscWjNBXw0wnTrtRQjJxgJLXHJpcNaxKJUScvlN0o/AWIiobaN/J32r0dyY0SQYnYlZHpvnDQngFQI+sctwZM7TGhmuots4g== 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-SenderADCheck; bh=FKUVeNj40cor9PpJlt6tw+CmCpQow2+uqstpzgg4Mo8=; b=BldI2jN1DGJByAfBqvq4Qk5J8ILqaGt0DHpu1ohwoeD/2Onm+tb3aLE/siWx3hP1GTqpQ8bbokoc0nb9i8K4vB3EV8epcAIorp6KsyR35rRQ5TZJe1E0f1IOa3E8hIRhBN1jbirq/1AEF7RJpoFMFcjW/vPkNK5d9WTOb6nEviZOQbjnZxRVtHbXjnc4Zh8VuXB+/4TUUQ5DaI6DapbTzxNgt1IbahCrzqhWjoDb1ktgRfKkPbp2hu9PL6p4DNVBzw65JYz4qCqkcgb4SXg6P1OGpS6AW/SpqgI8C8pJEkpedg6oyWFYY4KN9G2SdMObBMvW64MRszMu/INDTA4NUQ== 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=FKUVeNj40cor9PpJlt6tw+CmCpQow2+uqstpzgg4Mo8=; b=ycADMXR+W+YMdCCwuN6V7XiG76HGFO+5Fy0plkgdGJQzQksxKfcGybMra59ikw2Jn3+64pcWy+4Jrs/VvwutriDuoTZulC3um0XQZ5TRZbcssza+ka6UInz35oYegVLELpWt43SiFP19N6RXtRVrlXloGEMTSoNFjLfjt6k2+Q8= Received: from DBBPR08MB4646.eurprd08.prod.outlook.com (2603:10a6:10:f5::16) by DBBPR08MB4872.eurprd08.prod.outlook.com (2603:10a6:10:d9::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2958.20; Thu, 30 Apr 2020 21:38:25 +0000 Received: from DBBPR08MB4646.eurprd08.prod.outlook.com ([fe80::1870:afc4:b90f:609d]) by DBBPR08MB4646.eurprd08.prod.outlook.com ([fe80::1870:afc4:b90f:609d%5]) with mapi id 15.20.2958.020; Thu, 30 Apr 2020 21:38:25 +0000 From: Honnappa Nagarahalli To: "Ananyev, Konstantin" , =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , Olivier Matz CC: "dev@dpdk.org" , nd , Honnappa Nagarahalli , nd Thread-Topic: [RFC] ring: count and empty optimizations Thread-Index: AQHWHit+xWqi/EWuOEaPe4IgVQQmAaiQ2hpQgAB6q+CAAHkFgIAAXeKA Date: Thu, 30 Apr 2020 21:38:25 +0000 Message-ID: References: <98CBD80474FA8B44BF855DF32C47DC35C60F96@smartserver.smartshare.dk> <20200429133837.GY6327@platinum> <98CBD80474FA8B44BF855DF32C47DC35C60F98@smartserver.smartshare.dk> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: b11fc542-76ab-4c6c-ad8e-735e5f85cdc8.0 x-checkrecipientchecked: true Authentication-Results-Original: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=arm.com; x-originating-ip: [217.140.111.135] x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: ebb56ba2-33d2-4c75-2f0e-08d7ed4ed48e x-ms-traffictypediagnostic: DBBPR08MB4872:|DBBPR08MB4872:|VE1SPR01MB0013: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:10000;OLM:10000; x-forefront-prvs: 0389EDA07F X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: HtfhulG29SB4fa0nYjEISc0JPfBqtmGQGnt5yQH2+1xTXFGXO096Cgn1snNbi1cz7z8L2kQ91KJ2xoBrpMNH7Fg/NM3A3yyJWR+pXAKJ39n1WZU5VYyxyk9nyD7keMaOfE85ikdqYzkHqJnjc/pUje+3U2E2Htm/nANlOfI4irA+ONqT3TmyEjwkBqtOD5DJqHjY7j8B9m7DtmRfsUe7RSud1s923wCRaeu2DFDdnDHLPw4oqsAnTTyfFXGnbHjvb9Y1JEo53DysCox2Yba00s4bxkBgR7CtiqcvPpeRYp0lAdozgtr26sq1UwJ89TFOyRCPo2+pmcJMlGx9jqWtIpK9eXqVmmyxXfLAWXUuj23JVoSqWa7sRrsbyFQB5Ykz8URfO+f0JYaFAxdcKZ5Vb7EptLFmWW6ws/t2lNjWSCyWJGZVzBq2p9AWOxG2h3qHygiMuv3MHWKkSGc/5lDVjPV/gTEQ8VXfnKISp5wPbU7V2+uXbbAerxN1izmD4xszPUU4Wias++xVaveb6ghaJQ== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DBBPR08MB4646.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(396003)(366004)(376002)(346002)(39860400002)(136003)(54906003)(316002)(110136005)(2906002)(478600001)(4326008)(966005)(76116006)(52536014)(86362001)(66476007)(66556008)(64756008)(66446008)(66946007)(66574012)(71200400001)(186003)(33656002)(26005)(8936002)(9686003)(7696005)(8676002)(55016002)(6506007)(5660300002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: 0TQAGwze0mxbvJ7k2haZRLb3aiypjy0GtWxmFB4+PZ7VmgR6ADV4BmX5Lc6kDuTn+gFVKCtx8L0Itj5qKswAVUfCRVuOU7Sjnj6KDgwLCtJF6v9uD0KQdrkXTbqt8g1K015wgygUSs14V9o9nDTXs+DXOHe8zkRLPa27L9vU6yxuSbEZPPmk5yPhrO905jxbo/+hrt39mFUkYKLMdkriybhVBxL8WFfxFBHHHzfb+jYp3TvQHVy12noECiIwVSpHA4f32XVqJUlIjeQ3IESv6X+NnGF38NR7sCgfoF2dXSFesYiIrpnqYsj2NKFeupwC0bLPuD7dk8MFMQVhj5B6PoOn3kfYj7j715N0xZB51R3ubXCyhVjBbyvGFRfWB64hRwfVae2RiLjWSWOg4HgesB5ehX43njBYUnS3A8zUqlsKiitI4wCspLsWcjUE75QvlSstLbnfBZQ5Z++kAiue/84Qxvh8u4KjsVgkgQO2eeDaep/Tbo5KN5dXIs3Ht7FcssvYa9pZsWFjbw3oawCclPKGMobnClIdVyboXjB7LSpB5GYRTYrXMt9RjT5ItGhI3PwnMWulTAMD6E8RdNmtlfyO+6ZlTBHh2u64GWNh00gFIqkLzVz50E8oU0DCDUk/gCiorGL1LknWQSoCfwjdGoA8eI9XXCUgPsllf/9MloxxI7xbifSdnwNt1KPQvRHQ34kP5ahiSmTUPWWEaR2hxKU4ptvZlxdCSF6RCHgrA1fZ1AkoKMS9Gak6oEqEtLzdl3RRVaJ+I+fwcqA/0DKt/6fdkGWU1AGvz7kiosTCO1rTfAPArGDVxhol9IZ75uiI Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB4872 Original-Authentication-Results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT043.eop-EUR03.prod.protection.outlook.com X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFTY:; SFS:(4636009)(39860400002)(376002)(136003)(346002)(396003)(46966005)(5660300002)(26005)(186003)(336012)(2906002)(33656002)(316002)(36906005)(66574012)(478600001)(82740400003)(55016002)(7696005)(9686003)(47076004)(81166007)(54906003)(86362001)(110136005)(356005)(52536014)(82310400002)(70586007)(966005)(4326008)(8936002)(6506007)(8676002)(70206006); DIR:OUT; SFP:1101; X-MS-Office365-Filtering-Correlation-Id-Prvs: 81a75aa0-92a3-4e5a-fc57-08d7ed4ed041 X-Forefront-PRVS: 0389EDA07F X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: iJGpacADk8muVyltnLF4Wxj/YwftAdG2O9klHgpadURP6BnJV6F12ZobRa656VXrHqWgw5Xh/vd5Z7j5l9kJ2qukxRUZYoP72eP/+nHTS/ChKkYYwHEuCploHgTNevL8wIxrqvdojqmG1Fu2aNnuMjS+kc2rEmwUq/SmI7LIRExryOp7n2YVjocJdKLaoavoRj99xNxzR1hJomNCuYRsJu9o2AC+qAlGNv6FTIyB+Tcz8EGYF4bjsYgvk0JU9stq1p7037YH0ujz3riB38zzO7qlstGRjiAERnCiWIOL3GVBol5gMNIDZla7kUm5WRQU2aVWHAwZQO6lWi9sQmZ6pbPQtcf9b34bapVIvXMBeLYwX9+BTNgyEgn1mlhpXRoPojhKh96bbmUr9FEMC5pxvohbhAH8StOR+VVqB67pMh0gJcESDvl1rXrSly8Q9O2YY4iI347JKOwQD0Ws3p+5KBg3hbme0W8zekHevjuir1AnA4iuPglGVI9roOBWtvA8Av+9+V2AZzPhgj3Aht33zvyBvca9O09Q/grVSTq7m38Uq1E8U8AE5j4m1VbFWEi325DU/KPZpAWH7fIexwm8tg== X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Apr 2020 21:38:32.4534 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ebb56ba2-33d2-4c75-2f0e-08d7ed4ed48e X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1SPR01MB0013 Subject: Re: [dpdk-dev] [RFC] ring: count and empty optimizations 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" PiA+ID4gPHNuaXA+DQo+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiBIaSBNb3J0ZW4sDQo+ID4gPiA+ DQo+ID4gPiA+IE9uIFR1ZSwgQXByIDI4LCAyMDIwIGF0IDAzOjUzOjE1UE0gKzAyMDAsIE1vcnRl biBCcsO4cnVwIHdyb3RlOg0KPiA+ID4gPiA+IE9saXZpZXIgKG1haW50YWluZXIgb2YgdGhlIFJp bmcpLA0KPiA+ID4gPg0KPiA+ID4gPiBJJ20gbm90IGFueW1vcmUsIENDJ2luZyBLb25zdGFudGlu IGFuZCBIb25uYXBwYS4NCj4gPiA+ID4NCj4gPiA+ID4gPiBJIHdvdWxkIGxpa2UgdG8gc3VnZ2Vz dCBhIGNvdXBsZSBvZiBtaW5vciBvcHRpbWl6YXRpb25zIHRvIHRoZQ0KPiA+ID4gPiA+IHJpbmcN Cj4gPiA+IGxpYnJhcnkuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IDEuIFRlc3Rp bmcgaWYgdGhlIHJpbmcgaXMgZW1wdHkgaXMgYXMgc2ltcGxlIGFzIGNvbXBhcmluZyB0aGUNCj4g PiA+IHByb2R1Y2VyIGFuZA0KPiA+ID4gPiBjb25zdW1lciBwb2ludGVyczoNCj4gPiA+ID4gPg0K PiA+ID4gPiA+IHN0YXRpYyBpbmxpbmUgaW50DQo+ID4gPiA+ID4gcnRlX3JpbmdfZW1wdHkoY29u c3Qgc3RydWN0IHJ0ZV9yaW5nICpyKSB7DQo+ID4gPiA+ID4gLQlyZXR1cm4gcnRlX3JpbmdfY291 bnQocikgPT0gMDsNCj4gPiA+ID4gPiArCXVpbnQzMl90IHByb2RfdGFpbCA9IHItPnByb2QudGFp bDsNCj4gPiA+ID4gPiArCXVpbnQzMl90IGNvbnNfdGFpbCA9IHItPmNvbnMudGFpbDsNCj4gPiA+ ID4gPiArCXJldHVybiBjb25zX3RhaWwgPT0gcHJvZF90YWlsOw0KPiA+ID4gPiA+IH0NCj4gPiA+ ID4gPg0KPiA+ID4gPiA+IEluIHRoZW9yeSwgdGhpcyBvcHRpbWl6YXRpb24gcmVkdWNlcyB0aGUg bnVtYmVyIG9mIHBvdGVudGlhbA0KPiA+ID4gPiA+IGNhY2hlDQo+ID4gPiBtaXNzZXMNCj4gPiA+ ID4gZnJvbSAzIHRvIDIgYnkgbm90IGhhdmluZyB0byByZWFkIHItPm1hc2sgaW4gcnRlX3Jpbmdf Y291bnQoKS4NCj4gPiA+ID4NCj4gPiA+ID4gVGhpcyBvbmUgbG9va3MgY29ycmVjdCB0byBtZS4N Cj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiAyLiBJdCBpcyBub3QgcG9zc2libGUgdG8gZW5x dWV1ZSBtb3JlIGVsZW1lbnRzIHRoYW4gdGhlIGNhcGFjaXR5DQo+ID4gPiA+ID4gb2YNCj4gPiA+ IGEgcmluZywNCj4gPiA+ID4gc28gdGhlIGNvdW50IGZ1bmN0aW9uIGRvZXMgbm90IG5lZWQgdG8g dGVzdCBpZiB0aGUgY2FwYWNpdHkgaXMNCj4gPiA+IGV4Y2VlZGVkOg0KPiA+ID4gPiA+DQo+ID4g PiA+ID4gc3RhdGljIGlubGluZSB1bnNpZ25lZA0KPiA+ID4gPiA+IHJ0ZV9yaW5nX2NvdW50KGNv bnN0IHN0cnVjdCBydGVfcmluZyAqcikgew0KPiA+ID4gPiA+IAl1aW50MzJfdCBwcm9kX3RhaWwg PSByLT5wcm9kLnRhaWw7DQo+ID4gPiA+ID4gCXVpbnQzMl90IGNvbnNfdGFpbCA9IHItPmNvbnMu dGFpbDsNCj4gPiA+ID4gPiAJdWludDMyX3QgY291bnQgPSAocHJvZF90YWlsIC0gY29uc190YWls KSAmIHItPm1hc2s7DQo+ID4gPiA+ID4gLQlyZXR1cm4gKGNvdW50ID4gci0+Y2FwYWNpdHkpID8g ci0+Y2FwYWNpdHkgOiBjb3VudDsNCj4gPiA+ID4gPiArIAlyZXR1cm4gY291bnQ7DQo+ID4gPiA+ ID4gfQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gSSBjYW5ub3QgZXZlbiBjb21lIHVwIHdpdGggYSBy YWNlIGNvbmRpdGlvbiBpbiB0aGlzIGZ1bmN0aW9uDQo+ID4gPiA+ID4gd2hlcmUNCj4gPiA+IHRo ZQ0KPiA+ID4gPiBjb3VudCB3b3VsZCBleGNlZWQgdGhlIGNhcGFjaXR5LiBNYXliZSBJIG1pc3Nl ZCBzb21ldGhpbmc/DQo+ID4gPiA+DQo+ID4gPiA+IFNpbmNlIHRoZXJlIGlzIG5vIG1lbW9yeSBi YXJyaWVyLCB0aGUgb3JkZXIgaW4gd2hpY2ggcHJvZF90YWlsIGFuZA0KPiA+ID4gY29uc190YWls DQo+ID4gPiA+IGFyZSBmZXRjaGVkIGlzIG5vdCBndWFyYW50ZWVkLiBPciB0aGUgdGhyZWFkIGNv dWxkIGJlIGludGVycnVwdGVkDQo+ID4gPiA+IGJ5DQo+ID4gPiB0aGUNCj4gPiA+ID4ga2VybmVs IGluIGJldHdlZW4uDQo+ID4gPiBUaGUgJ19fcnRlX3JpbmdfbW92ZV9wcm9kX2hlYWQnIGZ1bmN0 aW9uIGVuc3VyZXMgdGhhdCB0aGUgZGlzdGFuY2UNCj4gPiA+IGJldHdlZW4gcHJvZC5oZWFkIGFu ZCBjb25zLnRhaWwgaXMgYWx3YXlzIHdpdGhpbiB0aGUgY2FwYWNpdHkNCj4gPiA+IGlycmVzcGVj dGl2ZSBvZiB3aGV0aGVyIHRoZSBjb25zdW1lcnMvcHJvZHVjZXJzIGFyZSBzbGVlcGluZy4NCj4g Pg0KPiA+IFllcywgdGhpcyBpcyBleGFjdGx5IHdoYXQgSSB3YXMgdGhpbmtpbmcuDQo+ID4NCj4g PiBUaGUgdGFpbHMgYXJlIHRoZSBwb2ludGVycyBhZnRlciBhbnkgdXBkYXRlcywgd2hpY2ggaXMg c2hvd24gdmVyeSBuaWNlbHkgaW4NCj4gdGhlIGRvY3VtZW50YXRpb24uDQo+ID4gQW5kIGNlcnRh aW5seSBwcm9kLnRhaWwgd2lsbCBub3QgbW92ZSBmdXJ0aGVyIGFoZWFkIHRoYW4gcHJvZC5oZWFk Lg0KPiA+DQo+ID4gU28gaXQgbWFrZXMgc2Vuc2UgdXNpbmcgdGhlIHRhaWxzIG91dHNpZGUgdGhl IGZ1bmN0aW9ucyB0aGF0IG1vdmUgdGhlDQo+IHBvaW50ZXJzLg0KPiA+DQo+ID4gT2xpdmllciBm b3VuZCB0aGUgcmFjZSBJIGNvdWxkbid0IGZpbmQ6DQo+ID4gMS4gVGhlIHRocmVhZCBjYWxscyBy dGVfcmluZ19jb3VudCgpLCBhbmQgc2luY2UgdGhlcmUgaXMgbm8gbWVtb3J5IGJhcnJpZXIgaXQN Cj4gcmVhZHMgY29ucy50YWlsLCBhbmQgaGFzIG5vdCB5ZXQgcmVhZCBwcm9kLnRhaWwuDQo+ID4g Mi4gT3RoZXIgdGhyZWFkcyB1c2UgdGhlIHJpbmcgc2ltdWx0YW5lb3VzbHkuIEEgY29uc3VtZXIg dGhyZWFkIG1vdmVzDQo+IGNvbnMudGFpbCBhaGVhZCBhbmQgYSBwcm9kdWNlciB0aHJlYWQgdGhl biBtb3ZlcyBwcm9kLnRhaWwgYWhlYWQuDQo+ID4gTm90ZTogV2l0aG91dCBmaXJzdCBtb3Zpbmcg Y29ucy50YWlsIGFoZWFkLCBwcm9kLnRhaWwgY2Fubm90IG1vdmUgdG9vIGZhcg0KPiBhaGVhZC4N Cj4gPiAzLiBUaGUgdGhyZWFkIHByb2NlZWRzIHRvIHJlYWQgcHJvZC50YWlsLiBOb3cgdGhlIGNv dW50IGlzIGNvbXBsZXRlbHkNCj4gaW5jb3JyZWN0LCBhbmQgbWF5IGV2ZW4gZXhjZWVkIHRoZSBj YXBhY2l0eS4NCj4gPg0KPiA+IE9saXZpZXIgcG9pbnRlZCBvdXQgdGhhdCB0aGlzIGNvdWxkIGhh cHBlbiBpZiB0aGUgcnRlX3JpbmdfY291bnQNCj4gPiB0aHJlYWQgaXMgaW50ZXJydXB0ZWQgYnkg dGhlIGtlcm5lbCwgYW5kIEkgYWdyZWUuIEhvd2V2ZXIsIGludHVpdGl2ZWx5DQo+ID4gSSBkb24n dCB0aGluayB0aGF0IGl0IGNhbiBoYXBwZW4gaW4gYSBub24tRUFMIHRocmVhZCwgYmVjYXVzZSB0 aGUgY29uc3VtZXINCj4gdGhyZWFkIG5lZWRzIHRvIGZpbmlzaCBtb3ZpbmcgY29ucy50YWlsIGJl Zm9yZSB0aGUgcHJvZHVjZXIgdGhyZWFkIGNhbiBtb3ZlDQo+IHByb2QudGFpbCB0b28gZmFyIGFo ZWFkLiBBbmQgYnkgdGhlbiB0aGUgcnRlX3JpbmdfY291bnQgdGhyZWFkIGhhcyBoYWQgcGxlbnR5 DQo+IG9mIHRpbWUgdG8gcmVhZCBwcm9kLnRhaWwuIEJ1dCBpdCBjb3VsZCBoYXBwZW4gaW4gdGhl b3J5Lg0KVGhlIGlzc3VlcyBhc3NvY2lhdGVkIHdpdGggdXNpbmcgcnRlX3Jpbmcgb24gbm9uLUVB TCB0aHJlYWRzIGFyZSBkb2N1bWVudGVkIGF0IFsxXS4gS25vd2luZyB0aGVzZSBpc3N1ZXMsIEkg dGhpbmsgdGhlc2UgZnVuY3Rpb25zIHNob3VsZCBub3QgcHJldGVuZCB0byBrZWVwIHRoZSB2YWx1 ZXMgY29ycmVjdCB3aGljaCB3aWxsIHNhdmUgc29tZSBjeWNsZXMuDQoNClsxXSBodHRwczovL2Rv Yy5kcGRrLm9yZy9ndWlkZXMvcHJvZ19ndWlkZS9lbnZfYWJzdHJhY3Rpb25fbGF5ZXIuaHRtbCNr bm93bi1pc3N1ZXMNCg0KPiA+DQo+ID4gPiA+IFRoaXMgZnVuY3Rpb24gbWF5IHByb2JhYmx5IHJl dHVybiBpbnZhbGlkIHJlc3VsdHMgaW4gTUMvTVAgY2FzZXMuDQo+ID4gPiA+IFdlIGp1c3QgZW5z dXJlIHRoYXQgdGhlIHJlc3VsdCBpcyBiZXR3ZWVuIDAgYW5kIHItPmNhcGFjaXR5Lg0KPiA+DQo+ ID4gU28gc2hvdWxkIHdlIHVwZGF0ZSB0aGUgZG9jdW1lbnRhdGlvbiB0byBzYXkgdGhhdCBpdCBt aWdodCByZXR1cm4gYW4NCj4gPiBpbmNvcnJlY3QgY291bnQgKGlmIHRoZXJlIGlzIGEgcmFjZSks IG9yIHNob3VsZCB3ZSBmaXggdGhlIGZ1bmN0aW9uIHRvIGFsd2F5cw0KPiBwcm92aWRlIGEgY29y cmVjdCB2YWx1ZT8NCkkgY2Fubm90IHRoaW5rIG9mIGEgd2F5IHRvIGZpeCB0aGVzZSBmdW5jdGlv bnMgZm9yIG5vbi1FQUwgb2JzZXJ2ZXIgdGhyZWFkcyAodGhyZWFkcyBmcm9tIHdoZXJlIHRoZXNl IGZ1bmN0aW9ucyBhcmUgY2FsbGVkKS4NCkZvciBFQUwgb2JzZXJ2ZXIgdGhyZWFkcywgdGhlIGRh dGEgaXMgY29ycmVjdCBhdCB0aGUgcG9pbnQgb2Ygb2JzZXJ2YXRpb24gaW4gdGhlIGNvZGUgKG1h eSBiZSBub3QgYXQgdGhlIHBvaW50IG9mIHVzZSBvZiB0aGlzIGRhdGEpDQoNCj4gDQo+IEFzIGxv bmcgYXMgeW91IGludm9rZSBydGVfcmluZ19jb3VudCgpIHdoaWxlIHRoZXJlIGFyZSBvdGhlciBh Y3RpdmUNCj4gcHJvZHVjZXJzL2NvbnN1bWVycyBmb3IgdGhhdCByaW5nIC0gaXQncyByZXR1cm4g dmFsdWUgY2FuIGFsd2F5cyBiZSBvdXRkYXRlZCwNCj4gYW5kIG5vdCByZWZsZWN0IGN1cnJlbnQg cmluZyBzdGF0ZS4NCj4gU28gSSB0aGluayBqdXN0IHVwZGF0aW5nIHRoZSBkb2MgaXMgZW5vdWdo Lg0KPiANCj4gPg0KPiA+IEZ1cnRoZXJtb3JlLCB0aGUgc2FtZSByYWNlIGNvbmRpdGlvbiBwcm9i YWJseSBhZmZlY3RzIHJ0ZV9yaW5nX2VtcHR5KCkNCj4gc2ltaWxhcmx5LCBldmVuIGluIG15IGlt cHJvdmVkIHZlcnNpb24uDQpZZXMNCg0KPiA+DQo+ID4gQW5kIGRvIHRoZXNlIGZ1bmN0aW9ucyBu ZWVkIHRvIHN1cHBvcnQgbm9uLUVBTCB0aHJlYWRzPyBJIGRvbid0IHRoaW5rIHNvLg0KPiBXaGF0 IGRvIHlvdSB0aGluaz8NCj4gDQo+IE5vdCBzdXJlIHdoeSB5b3UgZGlmZmVyIEVBTCBhbmQgbm9u IEVBTCB0aHJlYWRzIGhlcmUuDQo+IFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGVtIGZy b20gc2NoZWR1bGVyIHBvaW50IG9mIHZpZXcgLSBFQUwgdGhyZWFkcw0KPiBoYXZlIGNwdSBhZmZp bml0eSBzZXQgYnkgcnRlX2VhbF9pbml0KCkuDQo+IEJ1dCBub3RoaW5nIHByZXZlbnRzIHVzZXIg ZnJvbSBzZXR0aW5nL3VwZGF0aW5nIGNwdSBhZmZpbml0eSBmb3IgYW55IHRocmVhZCBpbg0KPiBo aXMgcHJvY2VzcyBpbiBhIHdheSBoZSBsaWtlcy4NCg==