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 9B77EA0503; Sun, 3 Apr 2022 00:02:39 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 41303410E7; Sun, 3 Apr 2022 00:02:39 +0200 (CEST) Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80044.outbound.protection.outlook.com [40.107.8.44]) by mails.dpdk.org (Postfix) with ESMTP id 06F174069F for ; Sun, 3 Apr 2022 00:02:37 +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=Ka/XAmGBQozGcg43cT35XXGAmu5J1HMDNm6xHHeribY=; b=QtnrEm9wxKXRuUKLLRCXcT5BaH8Azq6PRGLsgH7l9mWqpEW9SBSu8+PvqlTH5OCbp62Fooe4xC47sBwNwRlULAEfcNf7NJKpYNfd7Dm+8un3XbeQAkOZCUVUNrrUJDJBSyIRIy9+n+3ye5ulp8FP6SBUApk5RWrwl0dueb+kybY= Received: from AS9PR06CA0159.eurprd06.prod.outlook.com (2603:10a6:20b:45c::26) by DB6PR08MB2872.eurprd08.prod.outlook.com (2603:10a6:6:24::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.30; Sat, 2 Apr 2022 22:02:11 +0000 Received: from VE1EUR03FT029.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:45c:cafe::9b) by AS9PR06CA0159.outlook.office365.com (2603:10a6:20b:45c::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.30 via Frontend Transport; Sat, 2 Apr 2022 22:02:11 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass 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 VE1EUR03FT029.mail.protection.outlook.com (10.152.18.107) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.19 via Frontend Transport; Sat, 2 Apr 2022 22:02:10 +0000 Received: ("Tessian outbound ab7864ef57f2:v118"); Sat, 02 Apr 2022 22:02:10 +0000 X-CR-MTA-TID: 64aa7808 Received: from 02e3f3521e3b.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 1ED5DEFA-2371-436F-961F-E4C4A61D3AC1.1; Sat, 02 Apr 2022 22:02:00 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 02e3f3521e3b.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Sat, 02 Apr 2022 22:02:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VEMsk5Pjl+YX7qSMrTggyDY82C17E/3WBRTikND6N14e41DOJxgfI+T/+VqyGnVXtUAEIS75ymwYzkgct649Foie8OQoMKif2Nj+8WfD4kPzSLhC4OiFsqjtt0cz/Z9WxC6eoCExZodhq0ZJrIioPBDGv4hZHwRY548qG620FRoqRkJmSpxde0pSTREiaYWgVMEVvMBFF57hpfMyya3A4k/+iCLZ/3f9Y/xqxWUAjeoDbfZNajsI1mJDgy0jBLbRxAgZSSkYX8Mp6AakwgiMX5g/hLMj63Zvch6FXF0VgptsAIdSo98SxKpsRnOYsryHleHIQ1LVMVEaMujzDeL5tQ== 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=Ka/XAmGBQozGcg43cT35XXGAmu5J1HMDNm6xHHeribY=; b=Eu8+iuewaCO5ZaWKzpxTbtkn34ghS/XTylddWYJQIcaOFR6KD1B0S3RfKX2Rb6OJSr/kU1Txj3PZnQ+p9tauLl4J7y5HnAXOzji319K+xWkjCOgUTBec/yyhunpW+7W1IjdVEurd8+z9sdedYvBx8Zru6xrTs+un2yt5en0DEvbrWXFGj6horxTIFpZhk//rDdUq9K167UJN72kGxG/JRTB4B3hBy/xFvobxlgs9r5MFCuFNZRKSb3rM1u66+H8SGna75J+kirn6hXAKkTcHt2l/ZeUZJw+/ZJXbyZXRjQ7fdjdW/48T0FJ2hjxn5zfuXJBxInZu4NG1ASHJbgTFRg== 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=Ka/XAmGBQozGcg43cT35XXGAmu5J1HMDNm6xHHeribY=; b=QtnrEm9wxKXRuUKLLRCXcT5BaH8Azq6PRGLsgH7l9mWqpEW9SBSu8+PvqlTH5OCbp62Fooe4xC47sBwNwRlULAEfcNf7NJKpYNfd7Dm+8un3XbeQAkOZCUVUNrrUJDJBSyIRIy9+n+3ye5ulp8FP6SBUApk5RWrwl0dueb+kybY= Received: from DBAPR08MB5814.eurprd08.prod.outlook.com (2603:10a6:10:1b1::6) by VI1PR08MB4319.eurprd08.prod.outlook.com (2603:10a6:803:f9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.30; Sat, 2 Apr 2022 22:01:57 +0000 Received: from DBAPR08MB5814.eurprd08.prod.outlook.com ([fe80::bdab:41f9:79b1:be0d]) by DBAPR08MB5814.eurprd08.prod.outlook.com ([fe80::bdab:41f9:79b1:be0d%4]) with mapi id 15.20.5123.030; Sat, 2 Apr 2022 22:01:56 +0000 From: Honnappa Nagarahalli To: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , Ola Liljedahl , =?utf-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= , "dev@dpdk.org" CC: "thomas@monjalon.net" , David Marchand , "onar.olsen@ericsson.com" , nd , "konstantin.ananyev@intel.com" , "stephen@networkplumber.org" , nd , nd Subject: RE: [PATCH v3] eal: add seqlock Thread-Topic: [PATCH v3] eal: add seqlock Thread-Index: AQHYRr2zyd0NqRrCTky+5vY5RMVxBKzc9NYwgAAPjaCAACbgIA== Date: Sat, 2 Apr 2022 22:01:56 +0000 Message-ID: References: <20220401150749.136921-1-mattias.ronnblom@ericsson.com> <3efba44b-1a2e-831e-1e2c-782639d83c24@arm.com> <98CBD80474FA8B44BF855DF32C47DC35D86F9A@smartserver.smartshare.dk> In-Reply-To: <98CBD80474FA8B44BF855DF32C47DC35D86F9A@smartserver.smartshare.dk> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 92D03B1A700F9240A90717758E09479C.0 x-checkrecipientchecked: true Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-MS-Office365-Filtering-Correlation-Id: 3419b1b4-6ce3-4223-3507-08da14f47010 x-ms-traffictypediagnostic: VI1PR08MB4319:EE_|VE1EUR03FT029:EE_|DB6PR08MB2872:EE_ x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: mH7LpJiDqz/XJ7jWq0fWtSqCsj0bwJBIVOaLcLJSKAJRFQVa4DSX2XVID2PR/jj95CXBwINqsY4GaGHD8kQ/PQRtfOpqt0sqawblqSjDrXJ364GwO++cZ7EKpvj2IcEYr4fIBnMcVOBYuhtLry/P32AkJyyW8pTiz784YO0gI2r/9+tONiVzjNUd2lu8HVYkhl9kGhB8s/UF6+5/G9MIA6yuXr4pHxr48VWsNQh3j+WeKVTHcc/eV+doeKJgroOTha7i3WacgYoO8Jqqw9h+fmSk1mZxkH1gqwLCOsLolF63B0mF1xrDvpvjvuYFs2sU1+IJkwSOu/KH1lPCq8ZYSPec9ryGDS2b1mIe5u+DfioGIFR95EtUoU4UdIEc3E47JyVpDrmva9hM5iI6LrZiXp5gJ684lNtoJ+MVgomrsI6fj5YK4blLvB659IPxS08JzEm5z+juExiGiXu0tQVmDh91IeucxRgFKQkFNqphJqUmBzcJ7Ok1DHCboVgaiRLo+SBcwd5HVqnBuyY+J+BlWvO49paRYm0pfUPIDheomQChw3tEEiOqojCHS7TeSjIsXGf6L/02rm+7laEzwJ5zUGfQo+WPtGdV++fpJlXKHNgLptq1gehVatvyCG/7nT4Y/vuxk4W5c0MvQ5qb1qeb7td1ft5idvrtcnvSnpvPNZcmgWg/2zdWy3Mh6dRoilSiTH/U6XkMXYhKOxiiTE5LLw== X-Forefront-Antispam-Report-Untrusted: 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:(13230001)(4636009)(366004)(2906002)(8936002)(52536014)(7696005)(6506007)(26005)(55016003)(71200400001)(8676002)(76116006)(66946007)(4326008)(38100700002)(64756008)(66446008)(66476007)(66556008)(122000001)(33656002)(186003)(110136005)(86362001)(54906003)(9686003)(508600001)(316002)(5660300002)(38070700005)(83380400001); DIR:OUT; SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB4319 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT029.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: b743efd5-66c7-49a7-660b-08da14f467a5 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: w0w2U0DJZR0ykStNev+f2DcjlqONZTvGIDP/noygAgTgfTIIG1o9DVdnP9HBftz+ogoPwPip/09oMj+FCm8uCJjRRujEyH3SdSQqD1IDmvP+TLwvvj3BoN7qSoSPgaexfXvvuAtMWX+cIV6dK4L58I3BCYmjQ2sdHhJtT4g3vjlXdRvugpNYp0rDJv9OQs16H49cYYCqXHB2ICnTizS/WfiqenvoP8GXxb4w1YzWAqjXHR3j25k7wTX3JjG1GmupOZh0ILk9DiEodqNS4EvWsrfOrRcBQ8cUklv1/+OYQLPHeuSxYDqI3ngjtHhbqD6RyjXxSZheawPhNJWm/i4aRJ3FkXMMLSKd/6QJoV9dm+TlNKrAWCZP16jInoQmZ0pvDLwnbCcNWn7c6qQB2iwTS+kfyuPc03hc1tF/2XjgRoMjimg8PyquOJspBFy9j33OaC6TeiQCvzqnniMK+wwLBlHq/ngreJ1RSjB/+gf4iYdGRdVdKEtv6QY3uSyeyd/7TSbEYd5f9HHrBqnJSnNk2/98MfMu6n6/bIsUfQ8fvx1w3A5bqeb3unMHyS5OiJckTwcW7Wv3FLaOdCCXyCzY1YCfoOvGpf+kF97Y0csQr3+0dQsyTB562DJ8xiNL7eadJgcjl3/X4wPiG3hWJ/p1tw== 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; SFS:(13230001)(4636009)(36840700001)(46966006)(54906003)(316002)(2906002)(5660300002)(110136005)(8936002)(52536014)(81166007)(356005)(4326008)(86362001)(82310400004)(70206006)(70586007)(8676002)(7696005)(6506007)(508600001)(83380400001)(33656002)(336012)(36860700001)(9686003)(26005)(55016003)(186003)(47076005); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2022 22:02:10.9626 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3419b1b4-6ce3-4223-3507-08da14f47010 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-AuthSource: VE1EUR03FT029.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR08MB2872 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+DQo+ID4NCj4gPiA+ID4gK19fcnRlX2V4cGVyaW1lbnRhbA0KPiA+ID4gPiArc3RhdGlj IGlubGluZSBib29sDQo+ID4gPiA+ICtydGVfc2VxbG9ja19yZWFkX3RyeXVubG9jayhjb25zdCBy dGVfc2VxbG9ja190ICpzZXFsb2NrLCB1aW50MzJfdA0KPiA+ID4gPiArKmJlZ2luX3NuKSB7DQo+ ID4gPiA+ICsJdWludDMyX3QgZW5kX3NuOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsJLyogbWFrZSBz dXJlIHRoZSBkYXRhIGxvYWRzIGhhcHBlbnMgYmVmb3JlIHRoZSBzbiBsb2FkICovDQo+ID4gPiA+ ICsJcnRlX2F0b21pY190aHJlYWRfZmVuY2UoX19BVE9NSUNfQUNRVUlSRSk7DQo+ID4gPiA+ICsN Cj4gPiA+ID4gKwllbmRfc24gPSBfX2F0b21pY19sb2FkX24oJnNlcWxvY2stPnNuLCBfX0FUT01J Q19SRUxBWEVEKTsNCj4gPiA+DQo+ID4gPiBTaW5jZSB3ZSBhcmUgcmVhZGluZyBhbmQgcG90ZW50 aWFsbHkgcmV0dXJuaW5nIHRoZSBzZXF1ZW5jZSBudW1iZXINCj4gPiBoZXJlDQo+ID4gPiAocmVw ZWF0aW5nIHRoZSByZWFkIG9mIHRoZSBwcm90ZWN0ZWQgZGF0YSksIHdlIG5lZWQgdG8gdXNlIGxv YWQtDQo+ID4gYWNxdWlyZS4NCj4gPiA+IEkgYXNzdW1lIGl0IGlzIG5vdCBleHBlY3RlZCB0aGF0 IHRoZSB1c2VyIHdpbGwgY2FsbA0KPiA+ID4gcnRlX3NlcWxvY2tfcmVhZF9sb2NrKCkgYWdhaW4u DQo+ID4gR29vZCBwb2ludCwgd2UgbmVlZCBhIGxvYWQtYWNxdWlyZSAoZHVlIHRvIGNoYW5nZXMg ZG9uZSBpbiB2MykuDQo+ID4NCj4gPiA+DQo+ID4gPiBTZWVpbmcgdGhpcyBpbXBsZW1lbnRhdGlv biwgSSBtaWdodCBhY3R1YWxseSBwcmVmZXIgdGhlIG9yaWdpbmFsDQo+ID4gPiBpbXBsZW1lbnRh dGlvbiwgSSB0aGluayBpdCBpcyBjbGVhbmVyLiBCdXQgSSB3b3VsZCBsaWtlIGZvciB0aGUNCj4g PiA+IGJlZ2luDQo+ID4gZnVuY3Rpb24NCj4gPiA+IGFsc28gdG8gd2FpdCBmb3IgYW4gZXZlbiBz ZXF1ZW5jZSBudW1iZXIsIHRoZSBlbmQgZnVuY3Rpb24gd291bGQNCj4gPiA+IG9ubHkNCj4gPiBo YXZlDQo+ID4gPiB0byBjaGVjayBmb3Igc2FtZSBzZXF1ZW5jZSBudW1iZXIsIHRoaXMgbWlnaHQg aW1wcm92ZSBwZXJmb3JtYW5jZSBhDQo+ID4gbGl0dGxlDQo+ID4gPiBiaXQgYXMgcmVhZGVycyB3 b24ndCBwZXJmb3JtIG9uZSBvciBzZXZlcmFsIGJyb2tlbiByZWFkcyB3aGlsZSBhDQo+ID4gd3Jp dGUgaXMgaW4NCj4gPiA+IHByb2dyZXNzLiBUaGUgZnVuY3Rpb24gbmFtZXMgYXJlIGEgZGlmZmVy ZW50IHRoaW5nIHRob3VnaC4NCj4gPiBJIHRoaW5rIHdlIG5lZWQgdG8gYmUgb3B0aW1pemluZyBm b3IgdGhlIGNhc2Ugd2hlcmUgdGhlcmUgaXMgbm8NCj4gPiBjb250ZW50aW9uIGJldHdlZW4gcmVh ZGVycyBhbmQgd3JpdGVycyAoYXMgdGhhdCBoYXBwZW5zIG1vc3Qgb2YgdGhlDQo+ID4gdGltZSku IEZyb20gdGhpcyBwZXJzcGVjdGl2ZSwgbm90IGNoZWNraW5nIGZvciBhbiBldmVuIHNlcSBudW1i ZXIgaW4NCj4gPiB0aGUgYmVnaW4gZnVuY3Rpb24gd291bGQgcmVkdWNlIG9uZSAnaWYnIHN0YXRl bWVudC4NCj4gDQo+IEkgbWlnaHQgYmUgc2lkaW5nIHdpdGggT2xhIG9uIHRoaXMsIGJ1dCB3aXRo IGEgdHdpc3Q6IFRoZSByZWFkX2xvY2soKSBzaG91bGQgbm90DQo+IHdhaXQsIGJ1dCB0ZXN0LiAo T3IgYm90aCB2YXJpYW50cyBjb3VsZCBiZSBhdmFpbGFibGUuIE9yIGFsbCB0aHJlZSwgaW5jbHVk aW5nIHRoZQ0KPiB2YXJpYW50IHdpdGhvdXQgY2hlY2tpbmcgZm9yIGFuIGV2ZW4gc2VxdWVuY2Ug bnVtYmVyLikNCj4gDQo+IE15IGFyZ3VtZW50IGZvciB0aGlzIGlzOiBUaGUgd3JpdGUgb3BlcmF0 aW9uIGNvdWxkIHRha2UgYSBsb25nIHRpbWUgdG8NCj4gY29tcGxldGUsIGFuZCB3aGlsZSB0aGlz IGdvZXMgb24sIGl0IGlzIGdvb2QgZm9yIHRoZSByZWFkaW5nIHRocmVhZHMgdG8ga25vdyBhdA0K PiBlbnRyeSBvZiB0aGVpciBjcml0aWNhbCByZWFkIHNlY3Rpb24gdGhhdCB0aGUgcmVhZCBvcGVy YXRpb24gd2lsbCBmYWlsLCBzbyB0aGV5IGNhbg0KPiB0YWtlIHRoZSBhbHRlcm5hdGl2ZSBjb2Rl IHBhdGggaW5zdGVhZCBvZiBwcm9jZWVkaW5nIGludG8gdGhlIGNyaXRpY2FsIHJlYWQNCj4gc2Vj dGlvbi4gT3RoZXJ3aXNlLCB0aGUgcmVhZGluZyB0aHJlYWRzIGhhdmUgdG8gd2FzdGUgdGltZSBy ZWFkaW5nIHRoZQ0KPiBwcm90ZWN0ZWQgZGF0YSwgb25seSB0byBkaXNjYXJkIHRoZW0gYXQgdGhl IGVuZC4gSXQncyBhbiBvcHRpbWl6YXRpb24gYmFzZWQgb24NCj4gdGhlIGFzc3VtcHRpb24gdGhh dCByZWFkaW5nIHRoZSBwcm90ZWN0ZWQgZGF0YSBoYXMgc29tZSBzbWFsbCBjb3N0LCBiZWNhdXNl DQo+IHRoaXMgc21hbGwgY29zdCBhZGRzIHVwIGlmIGRvbmUgbWFueSB0aW1lcyBkdXJpbmcgYSBs b25nd2luZGVkIHdyaXRlDQo+IG9wZXJhdGlvbi4NCj4gDQo+IEFuZCwgYWx0aG91Z2ggY2hlY2tp bmcgZm9yIHRoZSBzZXF1ZW5jZSBudW1iZXIgaW4gcmVhZF90cnlsb2NrKCkgYWRkcyBhbiAnaWYn DQo+IHN0YXRlbWVudCB0byBpdCwgdGhhdCAnaWYnIHN0YXRlbWVudCBzaG91bGQgYmUgc3Vycm91 bmRlZCBieSBsaWtlbHkoKSB0byByZWR1Y2UNCj4gaXRzIGNvc3QgaW4gdGhlIGNhc2Ugd2UgYXJl IG9wdGltaXppbmcgZm9yLCBpLmUuIHdoZW4gbm8gd3JpdGUgb3BlcmF0aW9uIGlzDQo+IG9uZ29p bmcuDQpUaGlzICdpZicgc3RhdGVtZW50IGNhbiBiZSBwYXJ0IG9mIHRoZSBhcHBsaWNhdGlvbiBj b2RlIGFzIHdlbGwuIFRoaXMgd291bGQgYWxsb3cgZm9yIG11bHRpcGxlIG1vZGVscyB0byBleGlz dC4NCg0KPiANCj4gVGhpcyBtZWFucyB0aGF0IHJlYWRfdHJ5bG9jaygpIHJldHVybnMgYSBib29s ZWFuLCBhbmQgdGhlIHNlcXVlbmNlIG51bWJlciBpcw0KPiByZXR1cm5lZCBpbiBhbiBvdXRwdXQg cGFyYW1ldGVyLg0KPiANCj4gUGxlYXNlIG5vdGUgdGhhdCBpdCBkb2Vzbid0IGNoYW5nZSB0aGUg ZmFjdCB0aGF0IHJlYWRfdHJ5dW5sb2NrKCkgY2FuIHN0aWxsIGZhaWwsDQo+IGV2ZW4gdGhvdWdo IHJlYWRfdHJ5bG9jaygpIGdhdmUgdGhlIGdvLWFoZWFkLg0KPiANCj4gSSdtIHRyeWluZyB0byBo aWdobGlnaHQgdGhhdCB3aGlsZSB3ZSBhbGwgYWdyZWUgdG8gb3B0aW1pemUgZm9yIHRoZSBjYXNl IG9mDQo+IHJlYWRpbmcgd2hpbGUgbm8gd3JpdGluZyBpcyBvbmdvaW5nLCB0aGVyZSBtaWdodCBi ZSBvcHBvcnR1bml0eSBmb3Igb3B0aW1pemluZw0KPiBmb3IgdGhlIG9wcG9zaXRlIGNhc2UgKGku ZS4gdHJ5aW5nIHRvIHJlYWQgd2hpbGUgd3JpdGluZyBpcyBvbmdvaW5nKSBhdCB0aGUgc2FtZQ0K PiB0aW1lLg0KPiANCj4gSSBvbmx5IGhvcGUgaXQgY2FuIGJlIGRvbmUgd2l0aCBuZWdsaWdlbnQg cGVyZm9ybWFuY2UgY29zdCBmb3IgdGhlIHByaW1hcnkNCj4gY2FzZS4NCj4gDQo+IEknbGwgcmVz cGVjdGZ1bGx5IGxlYXZlIHRoZSBoYXJkY29yZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIGFuZCBw ZXJmb3JtYW5jZQ0KPiBjb25zaWRlcmF0aW9ucyB0byB5b3UgZXhwZXJ0cyBpbiB0aGlzIGFyZWEu IDotKQ0KDQo=