From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by smtp.lore.kernel.org (Postfix) with ESMTP id CDC2FC77B7A for ; Tue, 30 May 2023 11:37:30 +0000 (UTC) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 84C6240A82; Tue, 30 May 2023 13:37:29 +0200 (CEST) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2075.outbound.protection.outlook.com [40.107.244.75]) by mails.dpdk.org (Postfix) with ESMTP id 8E80A406BC for ; Tue, 30 May 2023 13:37:27 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=O7caSdDqYkVvZxyrl2Y1D6Cs+IqUvh92wakm0UJqmzq472GkxMx6Ds8BK6qOk0gk4nR7MqTl3AsyDs+B9ZF03i2bHLrbDzChr0ptC9/leXfW4/8anYR+BtU0Hov2a8wJYA6BMSRqgemdXTaTTmRwsyKs0xWnWKX3xb0Z5bvA0l7ChY8lGTVY2NDjr3WTgTqOiNjSR5CbQ+FEKe0WW5TQvkVusUkZ8R0MGmReOHCEHEJAZPy/j7l6wZAqQlbPUBENaETVlMzWQM3j6u/MPFVmiSSac+1A8+tZqHbahJL5uf1CuwVo8oaCqn3FSAgSuoWyFmNXahRCrRTWhnZIz7VT7g== 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=iVwCNf79HQdGn1Sl2KU6gCwQ4gD/p7cdEKptPVHfXdQ=; b=jBLZ5HyV1GBoc8POWyaTGb6JW7qGTpBkvqPep6UYhdCUGwQQf+Fmsk2r8X0EcfpsfOdCIS3Z3qD1VliflVzT1Um1Ea1oevPMSW7vRnDabxFeUerASPx9UiClCab7kKatOKWAFTcxfg1eeVyTimdjiK7PXzH0sJ/PSAdMzmvutO3l72R3AQBPBYYvVWPgJ2/GUvRJY0ck7zSKq0EVBe6qCCAAVc6f6QQDiqa8ovF/KPD4sVM6lAwjshqk7I2S9e0qnFZIC8ztH3/71jpk1WJsDZx3vds7wb7Br0m0HtEqLkfxYd4CQMSVxpuMF6toxy5ot4plMc+3YlfwksBvqLyJKg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iVwCNf79HQdGn1Sl2KU6gCwQ4gD/p7cdEKptPVHfXdQ=; b=jpdSqrQHyri1hAc2K1poHAeTelmiXrj+sc5lBrdzAjXAiBSIfQjgkzpBM5ozNBEl/H7zzTrMLv8xr7zG0guiIaxVQlOnaHrejtPMdG2pXUVQN/ka6MWYM3OC3mAmIcsTQB49pFqogj9i/ocGAirrMSlv7YmYY60vIRgx/WiLYtcHW/WyCUnR12eFFmEtcosc28vHe/yZ5Vvv944RL4mW3wMcNoXYLnKF+weZ4Bk8KG1jiiojGCyA8lVPMsTE9+7EgsDGapxiKcBfLmq8JMY7ayjmKU0sdH3DPplF/AicHzb0bo+VRZs9iV1P9+MFP+xWB4On9cyEQZmU4ZSqWfocKg== Received: from CO6PR12MB5490.namprd12.prod.outlook.com (2603:10b6:303:13d::9) by SA1PR12MB6847.namprd12.prod.outlook.com (2603:10b6:806:25e::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6433.19; Tue, 30 May 2023 11:37:25 +0000 Received: from CO6PR12MB5490.namprd12.prod.outlook.com ([fe80::1567:c49f:53a:22ce]) by CO6PR12MB5490.namprd12.prod.outlook.com ([fe80::1567:c49f:53a:22ce%4]) with mapi id 15.20.6455.020; Tue, 30 May 2023 11:37:25 +0000 From: Ophir Munk To: "Burakov, Anatoly" , "dev@dpdk.org" , Bruce Richardson , Devendra Singh Rawat , Alok Prasad CC: Matan Azrad , "NBU-Contact-Thomas Monjalon (EXTERNAL)" , Lior Margalit , Asaf Penso , Ophir Munk Subject: RE: [PATCH v4] lib: set/get max memzone segments Thread-Topic: [PATCH v4] lib: set/get max memzone segments Thread-Index: AQHZjo7IG5RK3BUIYE+ENX/sNuXiNa9rFE2AgAXmpTA= Date: Tue, 30 May 2023 11:37:25 +0000 Message-ID: References: <20230503072641.474600-1-ophirmu@nvidia.com> <20230524222550.3538819-1-ophirmu@nvidia.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CO6PR12MB5490:EE_|SA1PR12MB6847:EE_ x-ms-office365-filtering-correlation-id: a23e4cb1-370e-4843-01b7-08db61023d6e x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: noZGSVxftTcX3JLIchEOLe7sK3UxX4rXK8Q++WQCNBABB+hIZjxnmBMOM4Av49oG0LhDkX3X7aTIMVMVhBhKSaTRH6u1vKCcwRKuIdeQquJzclP0RA1poOLrXPu3wKBvVBMtXkORwBI9Ev7m+m2dpHhz0CgQ//xTZZk4cI+wAIvHMCySo/7nVk/3+NeTX1VIyqUA7RFWE7ZlbM9hTNvT/arpB5ZvKBINzT9qNG3qwoQIn/JMaU2jcdULrRw+mJ2ZyGSaLskW7XYp7rQsBBsgsueSa1bB4VqljCC/rHEX3zw+ae0lOxz4N5a3lUrrbVQ62m6sVuP27BBvQmjLCvfxoudsFJUrz+m1AdmKfxMBKXZUPMf/BeG/cdfLALYAcrvZkWwylzVtb4oD42QtX9VdHb6auICJ3KlXPMB8g8p9M5DnStiyAfpH6qgy60AQoD3jpZYokVsd4rjeYVXeAOQ/0rvWcHM3Wp3qvqUnuNLcEhM9ZDtRF1B/Gipmzfc+Uv61+4Bbvxh+KcNI82LS3WGS5DdfZv6G80Gmi0PuqJmnw25WIwFLIxq1wpQZOkQ1fYdBfySHoio60y0qRFRzqp7NPoMmbqzx18VCyv3CGxzOMOZr006FXdtEWQgoILBK/IZN x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO6PR12MB5490.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(376002)(346002)(366004)(136003)(39860400002)(396003)(451199021)(55016003)(9686003)(107886003)(8936002)(53546011)(83380400001)(6506007)(26005)(186003)(41300700001)(8676002)(4326008)(86362001)(33656002)(66574015)(2906002)(316002)(66556008)(64756008)(66446008)(66476007)(52536014)(66946007)(478600001)(7696005)(110136005)(76116006)(54906003)(38070700005)(38100700002)(71200400001)(5660300002)(122000001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TW5weHZCc3hBYnZ6NGVzOWY5ZlI5N20xbmpPVjF2aTE5eTZVa3d2YnMyanNj?= =?utf-8?B?d2RuVDBCTElUOFJMekxqZDFWc2VxZXF4OXFQSHk1Tkp2UEhJYXZ0bzN1WkNK?= =?utf-8?B?YUc0b2FDZSt2SSthNUpRbzZ4NUdOZzJQcWVPbXNVUFdyaXNKWWNYSmNsTEk1?= =?utf-8?B?dFRydmJiMzl6QUdSYVVnTHNBNHlKa3R0KzBkOHQ2MTU2K25QaWR3SytBUE1C?= =?utf-8?B?MVBkYUhhbDRYN1lFWVlLOW9xd0NOTERWWit0dWxaSHpVd0dCRnFrV3ZiaEdm?= =?utf-8?B?OGN5UEtLeGdkanNHcVU0RE1WdEZ6Z25WZnMrZjJlK05ReCs2ZWxGSFRYZzJ1?= =?utf-8?B?UEVCcU9XZVpUMHBaKy9ueDV6V0JFYWFlcHljcUpYUDNGUU91UHJWUjJuRE02?= =?utf-8?B?TldmSnBBTnF2TEkxSXRRQWFjRDd0UHNkSFZza0l4SnVHZW5LZmNNSjVLdWhw?= =?utf-8?B?Y2tKN1cyN0puNHlRSWdTQ3dUY1dNTlozY2JPQUR2UG0zWEMzVVV2RjN3SXF4?= =?utf-8?B?cTJ4V3I4V0s1NVhtMTZqalBtOW5pMnpvV1Z5MDFjSEdJdW82Y1ZCTVRBdlhp?= =?utf-8?B?aGlURytvRE1yQ24ya0FFR0xqQk5MRVNSYUpHY285NXpYM2o0QkNmQlpEWmZE?= =?utf-8?B?YUpDL0RMN3grYURQT1BYektCbzZJaTFFbmEwaVRSQ2w0Qnk2cEpnQjZjc2o3?= =?utf-8?B?UmRxS3czNVlPc3VkMU1OcVRrbDIvTnJnVXZta05qSXFVZjU4V0JTUjR5Y3hk?= =?utf-8?B?NXB4TFBXVjh0QkVseVlNV0xRdTVaRldLYVVZV09rYzQ0OCt4b2M2REpacE43?= =?utf-8?B?MHpjWFdlOTRlYm1HMVJlZVM0SGE1SW1lWDd1Ry9wblZUUlVrYTh5M0E0NjRO?= =?utf-8?B?VVRBZm5xeWRyVm8veDkvNEcvRDcvNEVwTTFQSDczMVVFVmxSdlRQT1BEdVZq?= =?utf-8?B?TTVzYjdFQmZjSjRvZXA2SzNiZm0xT2lsUnpLTlJYbDFCUCtxbWRmNTYvc0dS?= =?utf-8?B?OEtDR0wxcVRnRWNheHpXaVpGKzI1dHdiVzhNQis2Z0hZcUdtZXYzcXdRUFhY?= =?utf-8?B?QkZtVEk5eldQYm9TRnRabmVhZjQ4eER0QWg1R2kzS05TeUlPeWZzb3ZDTGw2?= =?utf-8?B?VWJydW00RldxKzBBYWZlcDc4RldWMHN2cDJGdStERVNoeWpRdXFmZDlvTzZx?= =?utf-8?B?WVBidkRJUThsdVlJZ3BMbkVRdWxqMjlwL05xVmE3cUJGOEx0U1dyRWpwcDdr?= =?utf-8?B?U0JCaE05cGFEVGJqLzduK3lSRGF2Vy9Kc3BCZlp4bUsrVStWd0g1bUt0U2s4?= =?utf-8?B?aWtzcXBmUSs3UFByellobm16RzJzRVlWa0daMHV0bFlEU2c4TWJOb3lIM0h2?= =?utf-8?B?TjBJamdUdHNJQ2Mwdng4MGZFZnJTR0pkSjVqb3FYbnNxZFBxUlE3eDRPbGpF?= =?utf-8?B?MCtvTWNXS3BSYXRqQ0w4YVJtVXJDc0dwNWR2VXVSNCtOQTNYdEtOYVdESkx1?= =?utf-8?B?dEVTb3JkekRYNnZadTAzMW1kMWk3R1hnMGlVbWxUS0NMVDBDYU9KWVYxcC9C?= =?utf-8?B?aURORmhXNHZ5ZFVKRWhkeEFCb2VkVURneG9xUVFlVzR5U0VtK0pRWnFnUUlh?= =?utf-8?B?TCt3L0tZZ3RGblJvdUwwN094d2o0MURnMEM0c0M2b09KZDROMXFKY0pKZHla?= =?utf-8?B?by9PSGRlQnV1cFVFVkxHVlJ6TzZaVmdvZmY0a2I1Ymd2b2JRQWoxMUZpYzY1?= =?utf-8?B?UEE3S0pjZkNZMWZQU01JUWhDbnhCaWg0UU1Cb0s5OEg4SkxOaTM2V25ydjI4?= =?utf-8?B?ZlFpQXByaW50NFp2RTRRSExFOXBjVDI1YXFUQ0FFZCtIcEw2U3U3SG5sY0Qw?= =?utf-8?B?dlZWcmZjbklhRmNpSUZUWW01ZnFBbDV0cFo0NmxFQURiQVp5bHdBa2M5Wkt6?= =?utf-8?B?M1NUMXNaVlRMd3JFUXllTEZKbVRCcDcySytFcjIrS2FEOVNNdWk1T1YwSUov?= =?utf-8?B?MFZUbURBM3hWSS9CZFE3UEZRMk4wb3Z4MzV6L3I2Qi9QUXVHZEpOek1Md0hM?= =?utf-8?B?WExZdFRZZ25FQzlvR3pDeFJXZmgvVVNOU1A0RTNYQytUWWRqSE9QdG9WSUNh?= =?utf-8?Q?eT51xi9ZYV8H8v+4xSVp0NIdq?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO6PR12MB5490.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a23e4cb1-370e-4843-01b7-08db61023d6e X-MS-Exchange-CrossTenant-originalarrivaltime: 30 May 2023 11:37:25.1294 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: V+b89yLWvFCJqZRpBrV7fHqsrF3OiD4zvC24DVwh8E4fIjUNMoCoPVU1ZXyTjAvxQgG7wsOF1+VrkBBZlLGCbg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB6847 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 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2 NF0gbGliOiBzZXQvZ2V0IG1heCBtZW16b25lIHNlZ21lbnRzDQo+IA0KPiBPbiA1LzI0LzIwMjMg MTE6MjUgUE0sIE9waGlyIE11bmsgd3JvdGU6DQo+ID4gQ3VycmVudGx5LCB0aGUgbWF4IG1lbXpv bmVzIGNvdW50IGNvbnN0YXQgKFJURV9NQVhfTUVNWk9ORSkgaXMgdXNlZA0KPiB0bw0KPiA+IGRl Y2lkZSBob3cgbWFueSBtZW16b25lcyBhIERQREsgYXBwbGljYXRpb24gY2FuIGhhdmUuIFRoaXMg dmFsdWUgY291bGQNCj4gPiB0ZWNobmljYWxseSBiZSBjaGFuZ2VkIGJ5IG1hbnVhbGx5IGVkaXRp bmcgYHJ0ZV9jb25maWcuaGAgYmVmb3JlDQo+ID4gY29tcGlsYXRpb24sIGJ1dCBpZiBEUERLIGlz IGFscmVhZHkgY29tcGlsZWQsIHRoYXQgb3B0aW9uIGlzIG5vdCB1c2VmdWwuDQo+ID4gVGhlcmUg YXJlIGNlcnRhaW4gdXNlIGNhc2VzIHRoYXQgd291bGQgYmVuZWZpdCBmcm9tIG1ha2luZyB0aGlz IHZhbHVlDQo+ID4gY29uZmlndXJhYmxlLg0KPiA+DQo+ID4gVGhpcyBjb21taXQgYWRkcmVzc2Vz IHRoZSBpc3N1ZSBieSBhZGRpbmcgYSBuZXcgQVBJIHRvIHNldCB0aGUgbWF4DQo+ID4gbnVtYmVy IG9mIG1lbXpvbmVzIGJlZm9yZSBFQUwgaW5pdGlhbGl6YXRpb24gKHdoaWxlIHVzaW5nIHRoZSBv bGQNCj4gPiBjb25zdGFudCBhcyBkZWZhdWx0IHZhbHVlKSwgYXMgd2VsbCBhcyBhbiBBUEkgdG8g Z2V0IGN1cnJlbnQgbWF4aW11bQ0KPiA+IG51bWJlciBvZiBtZW16b25lcy4NCj4gPg0KPiA+IFNp Z25lZC1vZmYtYnk6IE9waGlyIE11bmsgPG9waGlybXVAbnZpZGlhLmNvbT4NCj4gPiBBY2tlZC1i eTogTW9ydGVuIEJyw7hydXAgPG1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbT4NCj4gPiAtLS0NCj4g DQo+ID4gKw0KPiA+ICtpbnQNCj4gPiArcnRlX21lbXpvbmVfbWF4X3NldChzaXplX3QgbWF4KQ0K PiA+ICt7DQo+ID4gKwlzdHJ1Y3QgcnRlX21lbV9jb25maWcgKm1jZmc7DQo+ID4gKw0KPiA+ICsJ aWYgKGVhbF9nZXRfaW50ZXJuYWxfY29uZmlndXJhdGlvbigpLT5pbml0X2NvbXBsZXRlID4gMCkN Cj4gPiArCQlyZXR1cm4gLTE7DQo+ID4gKw0KPiA+ICsJbWNmZyA9IHJ0ZV9lYWxfZ2V0X2NvbmZp Z3VyYXRpb24oKS0+bWVtX2NvbmZpZzsNCj4gPiArCWlmICghbWNmZykNCj4gPiArCQlyZXR1cm4g LTE7DQo+ID4gKw0KPiA+ICsJbWNmZy0+bWF4X21lbXpvbmUgPSBtYXg7DQo+ID4gKw0KPiA+ICsJ cmV0dXJuIDA7DQo+ID4gK30NCj4gDQo+IFdvdWxkIHRoaXMgZXZlbiB3b3JrPyANCg0KWWVzLiBJ dCdzIHdvcmtpbmcuIA0KSSBzdWNjZXNzZnVsbHkgcmFuIHRoZSBmb2xsb3dpbmcgdGVzdDoNCg0K aW50IG1heCA9IHJ0ZV9tZW16b25lX21heF9nZXQoKTsgDQpwcmludGYoIk1heCBtZW16b25lIGJl Zm9yZSBlYWxfaW5pdDogJWRcbiIsIG1heCk7ICAgICAgLy8gUHJpbnRpbmcgdGhlIGRlZmF1bHQg bWF4IHZhbHVlIG9mIDI1NjANCnJ0ZV9tZW16b25lX21heF9zZXQoMTAwMCk7DQptYXggPSBydGVf bWVtem9uZV9tYXhfZ2V0KCk7DQpwcmludGYoIk1heCBtZW16b25lIGJlZm9yZSBlYWxfaW5pdCBh ZnRlciBzZXQgdG8gMTAwMDogJWRcbiIsIG1heCk7ICAgIC8vIFByaW50aW5nIHRoZSBuZXcgbWF4 IHZhbHVlIG9mIDEwMDANCnJ0ZV9lYWxfaW5pdChhcmdjLCBhcmd2KTsgDQpydGVfbWVtem9uZV9t YXhfc2V0KDIwMDApOyAvLyBIZXJlIHdlIGZhaWwgd2l0aCAtMSBzaW5jZSB3ZSBzZXQgYWZ0ZXIg ZWFsIGluaXQNCm1heCA9IHJ0ZV9tZW16b25lX21heF9nZXQoKTsNCnByaW50ZigiTWF4IG1lbXpv bmUgYWZ0ZXIgZWFsX2luaXQgYW5kIGFmdGVyIHNldCB0byAyMDAwOiAlZFxuIiwgbWF4KTsgICAv LyBQcmludGluZyB0aGUgY29ycmVjdCBtYXggdmFsdWUgb2YgMTAwMA0KDQo+IEFGQUlSIG1lbV9j b25maWcgaXMgb25seSBhdmFpbGFibGUgc29tZSB0aW1lIGR1cmluZw0KPiBFQUwgaW5pdCwgbm90 IGJlZm9yZSAobWVtX2NvbmZpZyBwb2ludGVyIHdpbGwgYmUgTlVMTCBhdCB0aGF0IHBvaW50KS4N Cj4gDQoNClBsZWFzZSBub3RlIHRoYXQgRFBESyBzdXBwb3J0cyBlYXJseSBtZW1vcnkgY29uZmln IChsaWIvZWFsL2NvbW1vbi9lYWxfY29tbW9uX2NvbmZpZy5jKToNCg0KLyogZWFybHkgY29uZmln dXJhdGlvbiBzdHJ1Y3R1cmUsIHdoZW4gbWVtb3J5IGNvbmZpZyBpcyBub3QgbW1hcHBlZCAqLyAg ICAgICAgICAgICANCnN0YXRpYyBzdHJ1Y3QgcnRlX21lbV9jb25maWcgZWFybHlfbWVtX2NvbmZp ZzsgIA0KDQpTbyBtYXggbWVtem9uZSBpcyBzYXZlZCBpbiB0aGUgZWFybHkgbWVtb3J5IGFuZCBs YXRlciB0aGlzIG1lbW9yeSBiZWNvbWVzIG1hcHBlZCAoc2hhcmVkKS4NCg0KSGF2aW5nIHNhaWQg dGhhdCAtIEkgdGhpbmsgdGhlIGN1cnJlbnQgcGF0Y2ggaXMgY29ycmVjdC4NClBsZWFzZSBjb25m aXJtLg0KDQo+IEkgc3VnZ2VzdCB0aGUgZm9sbG93aW5nIGZsb3c6DQo+IA0KPiBzZXQoKToNCj4g DQo+IGlmIGluaXRfY29tcGxldGUgPT4gcmV0dXJuIC0xDQoNCkFsc28gaWYgbWVtX2NvbmZpZyBp cyBOVUxMID0+IHJldHVybiAtMQ0KDQo+IGVsc2UgPT4gc2V0IGxvY2FsIHN0YXRpYyB2YWx1ZQ0K PiANCg0KPiBnZXQoKToNCj4gDQo+IGlmIGluaXRfY29tcGxldGUgPT4gcmV0dXJuIG1lbXpvbmVz LmNvdW50IGVsc2UgPT4gcmV0dXJuIGxvY2FsIHN0YXRpYyB2YWx1ZSAoc2V0DQo+IHRvIG91ciBk ZWZhdWx0KQ0KPiANCj4gVGhhdCB3YXkgd2UgZG9uJ3QgYWN0dWFsbHkgbmVlZCB0aGUgbWVtY29u ZmlnLCBhbmQgbXVsdGlwcm9jZXNzIHdpbGwgd29yaw0KPiBiZWNhdXNlIG1lbXpvbmVzLmNvdW50 IGlzIHNoYXJlZCBiZXR3ZWVuIHByaW1hcnkgYW5kIHNlY29uZGFyeSBhbnl3YXkuDQo+IA0KPiAt LQ0KPiBUaGFua3MsDQo+IEFuYXRvbHkNCg0K