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 0B71BA04B0; Wed, 19 Jan 2022 16:33:15 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7A91D41160; Wed, 19 Jan 2022 16:33:14 +0100 (CET) Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50080.outbound.protection.outlook.com [40.107.5.80]) by mails.dpdk.org (Postfix) with ESMTP id B23E541147 for ; Wed, 19 Jan 2022 16:33:13 +0100 (CET) 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=NH4CH1bWslh7ZU4C7hl7LGFQnbKXlN+WU5ETBn+5ql0=; b=i5sEb92U2JsDPSOqBMwLxKTLyMZQkq+/bpRtVhVc975GaW/0c2bwKu+ClyMuuzumTBPKIjGOUzTW+eB2wJCLoWntHOWm+4bHgaWSJm5Aby8FR8oc9jIk/tf7FKakPuXWB8lLLsJ/gCSbW0DF4MYX785waVmKNgNQT340hQXaNbI= Received: from DB6PR0402CA0015.eurprd04.prod.outlook.com (2603:10a6:4:91::25) by VI1PR08MB2879.eurprd08.prod.outlook.com (2603:10a6:802:20::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4888.12; Wed, 19 Jan 2022 15:33:11 +0000 Received: from DB5EUR03FT016.eop-EUR03.prod.protection.outlook.com (2603:10a6:4:91:cafe::86) by DB6PR0402CA0015.outlook.office365.com (2603:10a6:4:91::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.7 via Frontend Transport; Wed, 19 Jan 2022 15:33: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 DB5EUR03FT016.mail.protection.outlook.com (10.152.20.141) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.7 via Frontend Transport; Wed, 19 Jan 2022 15:33:11 +0000 Received: ("Tessian outbound 1f399c739551:v113"); Wed, 19 Jan 2022 15:33:10 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: a53b16773cdb4185 X-CR-MTA-TID: 64aa7808 Received: from d3e91930d9c3.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 578A40A4-074F-4150-8F7E-5110AFA7F858.1; Wed, 19 Jan 2022 15:33:02 +0000 Received: from EUR01-DB5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id d3e91930d9c3.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 19 Jan 2022 15:33:02 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Vg1CqQfXSMVB6jN37b+LFGFKJE+fOH6bGrnensKuRAGp7uJvGfOZl66EomQmvEvAN+8eV4kO9pZJXKtjaAZFCP9MWil96AWZd+o7Re3Zth8je2Vd1r4lyAf+rWQ30816XPAaUCH/Cd3Ps9vp3k/ZaZ65VF0eCqCLxzC/85JPi88NcduWIzf69yP6wewV9CGIRA/tZnkpv7ActenrjAnddPDUmiQQOa6rovOLx6S09UvSf0hGGFVO62uQ7S2kFVfGB1jNxv82VbdL26k+QB2FPGzrOaDy1hUN5E9QpxxjxjYLpglOR1gTcxI47WJoeCVpYgZ0QVEmukS3lQ9NiII/Ng== 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=NH4CH1bWslh7ZU4C7hl7LGFQnbKXlN+WU5ETBn+5ql0=; b=His75Nvc8GaCfhceWFn3LHGR7qbiikfkSo7GHmkiYSUxYYz6FqQAXs3det6ilaq+vqwoBL2QT3nTke/tbvPHRDaW3vByTLMQP4GSakEtTL43vgEOge0w/GT3HPaOm6Qzvu6o9yqiPqljiJyiy7mWXgysy5EQDUEp2W3Ot0ucOyevZNv7wuITXIMY1t0ZYFjenGw0dAZQPyG7/35dTOb0yifCQU0Y5Jg5ezsT+ueN/vW2+fJb+mV7gT7qaWYBGZ2o9vURJMIc8HldQkml/2E+SvLubhcA/l6UdQvcacZsKW888hAZFgNDfH9FX09aZIvmcPAbwFJRwqtYZXsVM0tLBA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; 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=NH4CH1bWslh7ZU4C7hl7LGFQnbKXlN+WU5ETBn+5ql0=; b=i5sEb92U2JsDPSOqBMwLxKTLyMZQkq+/bpRtVhVc975GaW/0c2bwKu+ClyMuuzumTBPKIjGOUzTW+eB2wJCLoWntHOWm+4bHgaWSJm5Aby8FR8oc9jIk/tf7FKakPuXWB8lLLsJ/gCSbW0DF4MYX785waVmKNgNQT340hQXaNbI= Received: from AM6PR08MB4614.eurprd08.prod.outlook.com (2603:10a6:20b:85::17) by AM8PR08MB6548.eurprd08.prod.outlook.com (2603:10a6:20b:314::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.7; Wed, 19 Jan 2022 15:32:57 +0000 Received: from AM6PR08MB4614.eurprd08.prod.outlook.com ([fe80::6564:8c08:99cc:d7ce]) by AM6PR08MB4614.eurprd08.prod.outlook.com ([fe80::6564:8c08:99cc:d7ce%5]) with mapi id 15.20.4909.007; Wed, 19 Jan 2022 15:32:57 +0000 From: Dharmik Thakkar To: "Ananyev, Konstantin" CC: Olivier Matz , Andrew Rybchenko , "dev@dpdk.org" , nd , Honnappa Nagarahalli , Ruifeng Wang Subject: Re: [PATCH 1/1] mempool: implement index-based per core cache Thread-Topic: [PATCH 1/1] mempool: implement index-based per core cache Thread-Index: AQHX+RoGDk3+4penq0a+Je4y+m9W36xdMyaAgANUVQCAAFlxgIAJwIkA Date: Wed, 19 Jan 2022 15:32:57 +0000 Message-ID: <278A6D2F-B5B5-4D4E-B8BE-C5A9BFE8C1C7@arm.com> References: <20210930172735.2675627-1-dharmik.thakkar@arm.com> <20211224225923.806498-1-dharmik.thakkar@arm.com> <20211224225923.806498-2-dharmik.thakkar@arm.com> <8F6CF7E6-BD3D-424B-A7E1-DB6E53276DFE@arm.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: 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: d2109aa5-02d1-4d9a-4c67-08d9db610021 x-ms-traffictypediagnostic: AM8PR08MB6548:EE_|DB5EUR03FT016:EE_|VI1PR08MB2879:EE_ X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:9508;OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: o4+B6PJl1SdM+REs+krzCmChiMYpKb7Am31dEElD3I8RNDkReUaCyJ+mporaU7VUQvWjb8tB3EnjkJCzkZqwABvGX1Q9qSS2vLVIHeN3jGK/SZPt9+tUG/X5A41XUjXIGRey2tufMoNepkK37pWyNpQckco3vJf3c3pLu51WtbQsCW3mj5N86k0kvjAp3qqhR5qQDpRp/B8fDSVZwwwFzLJ8HZWtVW+xIEunVZU2Pw6tdrBV6uQX+/jowuVZYbHN+6M7reS9WxjLNaHbGpV+pg0l1VjH/ew1TZ7fy/DpYuRE/aHcdSt9qNq4GYQL80dK/xdyz6Sls1IXQWLmt0fYlUJIUsjdO40TbouWd582XtoXdwzQWGYfRQoYG7fd5PjGKfiSKOyiaMU3wdXdZH/Jgxwr4oeOlYaJJEl6SF+rtCY52v6u7iyLwEcv6OhT0hOF+GskIxwRCuynbLYQujj/Gi/ue3bG6+VngsziwKWfIdWuBTlhbKl3XLSjUh+EsTX3aStuKVNkuYE8wF2gDRwwfU4O+QHfANNEFsUbRk9rlYc6TXqY6nssrlc+iGq/gmF8VwfIKLEYuTwpIKEqSkZpVfbV7oTZJnopWjLr/2eG2AX+R4CANYA4yEDve7QyneOk9cMUXxFKXkHhG1Gd/AhozzOOi9hRvvyyApf9KItqIsJlG+zCmETG9h8UW/IzNYoADUZ3qQWBBe/JkMFlWtmxGl/GBb+ie/oQYelslUbgPS2y5u6PRkHkSXP5d3ERvBQW X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM6PR08MB4614.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(66556008)(66446008)(64756008)(186003)(66476007)(8936002)(86362001)(26005)(6916009)(54906003)(6506007)(53546011)(33656002)(6486002)(66946007)(2906002)(76116006)(71200400001)(316002)(91956017)(2616005)(38100700002)(4326008)(5660300002)(122000001)(8676002)(6512007)(83380400001)(36756003)(508600001)(38070700005)(45980500001); DIR:OUT; SFP:1101; Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB6548 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: DB5EUR03FT016.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 9afbfc54-7c6b-4a4e-cbf5-08d9db60f823 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: OAHLqFh5WnCSozpR5zxID4fZUqFkgRQj3iY2u7u/WZliRoNci3C9KNqgHu0PlsY5lBOBZpNRiilZ9uuEmQCiypSMCOtJmMSbbB0cJCoMwy/19AAwxdFQSHRCv8hBAH2EBAB09OR8y4bu7rB5RXHMmg/3Hvr/5UXndBavFiYzs43/Kqth4wtUZSkvzvnKI/aKID0MzG+zM8nhh9e2JZKiRQohmgt0cmhLEcrgois54bIdFcF58gL/bcF4tOWSmn9/EjVYTScQR756rnwepRYxoWuXI2Yp+dUOgD8H42mTVlFJsuGEmKU0+kdGrZLQs4ueHJCgTAPXjuD/t7tu9ZaO/2Po6/sggtE7mlA680NshU/PrQgZTk+ErxF23ySosHml08Pzof+umL3sczBgXuuxjriUV4r92bb7Ujfm4O7zN+gRaTOs05mxw3CGrGc6FteBqBSozap+VtZEYmRpZ+3NF+XLS4/QVUEUmir2Cfzp3UBk49YmjmvuYhu9WYdY8zm+DmEe4clbetsg5J7/BzPeMpQ4mUc3nBQnu3PSJU2zXz/YByetT+Lxnw2JYbrXAETr73r3iBqKm28wDd0rjsnD60u7vdwlK4veGhuMWe10qmGxzajnNr15lnS+JDrF2oqYLdO0jBrO1M/mXUL5/PGwGI7PbnnkGMdAmnu9QxWMYSTcDyaPKY+GQKFmNqASPQdg62xyiv9QZkNMDSvu4SZsZhKNvXh/cKgsOZekBcU/2uut5485kZ3AQX7+UIpBiDgRlFlnq1ualkR17UlUMf7qCw== 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:(4636009)(40470700002)(36840700001)(46966006)(82310400004)(70586007)(4326008)(54906003)(8676002)(336012)(6862004)(6486002)(316002)(356005)(86362001)(5660300002)(36860700001)(53546011)(508600001)(6506007)(8936002)(2616005)(26005)(47076005)(83380400001)(33656002)(40460700001)(70206006)(2906002)(186003)(36756003)(6512007)(81166007); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jan 2022 15:33:11.0043 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d2109aa5-02d1-4d9a-4c67-08d9db610021 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: DB5EUR03FT016.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB2879 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 SGkgS29uc3RhdGluLA0KDQo+IE9uIEphbiAxMywgMjAyMiwgYXQgNDozNyBBTSwgQW5hbnlldiwg S29uc3RhbnRpbiA8a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNvbT4gd3JvdGU6DQo+IA0KPiAN Cj4gSGkgRGhhcm1paywNCj4gDQo+Pj4gDQo+Pj4+IEN1cnJlbnQgbWVtcG9vbCBwZXIgY29yZSBj YWNoZSBpbXBsZW1lbnRhdGlvbiBzdG9yZXMgcG9pbnRlcnMgdG8gbWJ1ZnMNCj4+Pj4gT24gNjRi IGFyY2hpdGVjdHVyZXMsIGVhY2ggcG9pbnRlciBjb25zdW1lcyA4Qg0KPj4+PiBUaGlzIHBhdGNo IHJlcGxhY2VzIGl0IHdpdGggaW5kZXgtYmFzZWQgaW1wbGVtZW50YXRpb24sDQo+Pj4+IHdoZXJl IGluIGVhY2ggYnVmZmVyIGlzIGFkZHJlc3NlZCBieSAocG9vbCBiYXNlIGFkZHJlc3MgKyBpbmRl eCkNCj4+Pj4gSXQgcmVkdWNlcyB0aGUgYW1vdW50IG9mIG1lbW9yeS9jYWNoZSByZXF1aXJlZCBm b3IgcGVyIGNvcmUgY2FjaGUNCj4+Pj4gDQo+Pj4+IEwzRndkIHBlcmZvcm1hbmNlIHRlc3Rpbmcg cmV2ZWFscyBtaW5vciBpbXByb3ZlbWVudHMgaW4gdGhlIGNhY2hlDQo+Pj4+IHBlcmZvcm1hbmNl IChMMSBhbmQgTDIgbWlzc2VzIHJlZHVjZWQgYnkgMC42MCUpDQo+Pj4+IHdpdGggbm8gY2hhbmdl IGluIHRocm91Z2hwdXQNCj4+PiANCj4+PiBJIGZlZWwgcmVhbGx5IHNjZXB0aWNhbCBhYm91dCB0 aGF0IHBhdGNoIGFuZCB0aGUgd2hvbGUgaWRlYSBpbiBnZW5lcmFsOg0KPj4+IC0gRnJvbSB3aGF0 IEkgcmVhZCBhYm92ZSB0aGVyZSBpcyBubyByZWFsIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50IG9i c2VydmVkLg0KPj4+IChJbiBmYWN0IG9uIG15IElBIGJveGVzIG1lbXBvb2xfcGVyZl9hdXRvdGVz dCByZXBvcnRzIH4yMCUgc2xvd2Rvd24sDQo+Pj4gc2VlIGJlbG93IGZvciBtb3JlIGRldGFpbHMp Lg0KPj4gDQo+PiBDdXJyZW50bHksIHRoZSBvcHRpbWl6YXRpb25zIChsb29wIHVucm9sbCBhbmQg dmVjdG9yaXphdGlvbikgYXJlIG9ubHkgaW1wbGVtZW50ZWQgZm9yIEFSTTY0Lg0KPj4gU2ltaWxh ciBvcHRpbWl6YXRpb25zIGNhbiBiZSBpbXBsZW1lbnRlZCBmb3IgeDg2IHBsYXRmb3JtcyB3aGlj aCBzaG91bGQgY2xvc2UgdGhlIHBlcmZvcm1hbmNlIGdhcA0KPj4gYW5kIGluIG15IHVuZGVyc3Rh bmRpbmcgc2hvdWxkIGdpdmUgYmV0dGVyIHBlcmZvcm1hbmNlIGZvciBhIGJ1bGsgc2l6ZSBvZiAz Mi4NCj4gDQo+IE1pZ2h0IGJlLCBidXQgSSBzdGlsbCBkb24ndCBzZWUgdGhlIHJlYXNvbiBmb3Ig c3VjaCBlZmZvcnQuDQo+IEFzIHlvdSBtZW50aW9uZWQgdGhlcmUgaXMgbm8gcGVyZm9ybWFuY2Ug aW1wcm92ZW1lbnQgaW4gJ3JlYWwnIGFwcHM6IGwzZndkLCBldGMuDQo+IG9uIEFSTTY0IGV2ZW4g d2l0aCB2ZWN0b3JpemVkIHZlcnNpb24gb2YgdGhlIGNvZGUuDQo+IA0KDQpJTU8sIGV2ZW4gd2l0 aG91dCBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCwgaXQgaXMgYWR2YW50YWdlb3VzIGJlY2F1c2Ug dGhlIHNhbWUgcGVyZm9ybWFuY2UgaXMgYmVpbmcgYWNoaWV2ZWQNCndpdGggbGVzcyBtZW1vcnkg YW5kIGNhY2hlIHV0aWxpemF0aW9uIHVzaW5nIHRoZSBwYXRjaC4NCg0KPj4+IC0gU3BhY2UgdXRp bGl6YXRpb24gZGlmZmVyZW5jZSBsb29rcyBuZWdsZWN0YWJsZSB0b28uDQo+PiANCj4+IFNvcnJ5 LCBJIGRpZCBub3QgdW5kZXJzdGFuZCB0aGlzIHBvaW50Lg0KPiANCj4gQXMgSSB1bmRlcnN0YW5k IG9uZSBvZiB0aGUgZXhwZWN0YXRpb25zIGZyb20gdGhhdCBwYXRjaCB3YXM6DQo+IHJlZHVjZSBt ZW1vcnkvY2FjaGUgcmVxdWlyZWQsIHdoaWNoIHNob3VsZCBpbXByb3ZlIGNhY2hlIHV0aWxpemF0 aW9uDQo+IChsZXNzIG1pc3NlcywgZXRjLikuDQo+IFRob3VnaCBJIHRoaW5rIHN1Y2ggaW1wcm92 ZW1lbnRzIHdvdWxkIGJlIG5lZ2xlY3RhYmxlIGFuZCB3b3VsZG4ndA0KPiBjYXVzZSBhbnkgcmVh bCBwZXJmb3JtYW5jZSBnYWluLg0KDQpUaGUgY2FjaGUgdXRpbGl6YXRpb24gcGVyZm9ybWFuY2Ug bnVtYmVycyBhcmUgZm9yIHRoZSBsM2Z3ZCBhcHAsIHdoaWNoIG1pZ2h0IG5vdCBiZSBib3R0bGVu ZWNrZWQgYXQgdGhlIG1lbXBvb2wgcGVyIGNvcmUgY2FjaGUuDQpUaGVvcmV0aWNhbGx5LCB0aGlz IHBhdGNoIGVuYWJsZXMgc3RvcmluZyB0d2ljZSB0aGUgbnVtYmVyIG9mIG9iamVjdHMgaW4gdGhl IGNhY2hlIGFzIGNvbXBhcmVkIHRvIHRoZSBvcmlnaW5hbCBpbXBsZW1lbnRhdGlvbi4NCg0KPiAN Cj4+PiAtIFRoZSBjaGFuZ2UgaW50cm9kdWNlcyBhIG5ldyBidWlsZCB0aW1lIGNvbmZpZyBvcHRp b24gd2l0aCBhIG1ham9yIGxpbWl0YXRpb246DQo+Pj4gIEFsbCBtZW16b25lcyBpbiBhIHBvb2wg aGF2ZSB0byBiZSB3aXRoaW4gdGhlIHNhbWUgNEdCIGJvdW5kYXJ5Lg0KPj4+ICBUbyBhZGRyZXNz IGl0IHByb3Blcmx5LCBleHRyYSBjaGFuZ2VzIHdpbGwgYmUgcmVxdWlyZWQgaW4gaW5pdCgvcG9w dWxhdGUpIHBhcnQgb2YgdGhlIGNvZGUuDQo+PiANCj4+IEkgYWdyZWUgdG8gdGhlIGFib3ZlIG1l bnRpb25lZCBjaGFsbGVuZ2VzIGFuZCBJIGFtIGN1cnJlbnRseSB3b3JraW5nIG9uIHJlc29sdmlu ZyB0aGVzZSBpc3N1ZXMuDQo+IA0KPiBJIHN0aWxsIHRoaW5rIHRoYXQgdG8ganVzdGlmeSBzdWNo IGNoYW5nZXMgc29tZSByZWFsbHkgbm90aWNlYWJsZSBwZXJmb3JtYW5jZQ0KPiBpbXByb3ZlbWVu dCBuZWVkcyB0byBiZSBkZW1vbnN0cmF0ZWQ6IGRvdWJsZS1kaWdpdCBzcGVlZHVwIGZvciBsM2Z3 ZC9pcHNlYy1zZWNndy8uLi4gIA0KPiBPdGhlcndpc2UgaXQganVzdCBub3Qgd29ydGggdGhlIGhh c3NsZS4gDQo+IA0KDQpMaWtlIEkgbWVudGlvbmVkIGVhcmxpZXIsIHRoZSBhcHAgbWlnaHQgbm90 IGJlIGJvdHRsZW5lY2tlZCBhdCB0aGUgbWVtcG9vbCBwZXIgY29yZSBjYWNoZS4NClRoYXQgY291 bGQgYmUgdGhlIHJlYXNvbiB0aGUgbnVtYmVycyB3aXRoIGwzZndkIGRvbuKAmXQgZnVsbHkgc2hv dyB0aGUgYWR2YW50YWdlIG9mIHRoZSBwYXRjaC4NCknigJltIHNlZWluZyBkb3VibGUtZGlnaXQg aW1wcm92ZW1lbnQgd2l0aCBtZW1wb29sX3BlcmZfYXV0b3Rlc3Qgd2hpY2ggc2hvdWxkIG5vdCBi ZSBpZ25vcmVkLg0KDQo+Pj4gIEFsbCB0aGF0IHdpbGwgY29tcGxpY2F0ZSBtZW1wb29sIGNvZGUs IHdpbGwgbWFrZSBpdCBtb3JlIGVycm9yIHByb25lDQo+Pj4gIGFuZCBoYXJkZXIgdG8gbWFpbnRh aW4uDQo+Pj4gQnV0LCBhcyB0aGVyZSBpcyBubyByZWFsIGdhaW4gaW4gcmV0dXJuIC0gbm8gcG9p bnQgdG8gYWRkIHN1Y2ggZXh0cmEgY29tcGxleGl0eSBhdCBhbGwuDQo+Pj4gDQo+Pj4gS29uc3Rh bnRpbg0KPj4+IA0KDQo=