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 3EDB6A0C4B; Fri, 15 Oct 2021 12:55:24 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 26E80411CB; Fri, 15 Oct 2021 12:55:24 +0200 (CEST) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mails.dpdk.org (Postfix) with ESMTP id BEE02410F1 for ; Fri, 15 Oct 2021 12:55:21 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10137"; a="225356730" X-IronPort-AV: E=Sophos;i="5.85,375,1624345200"; d="scan'208";a="225356730" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Oct 2021 03:55:19 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,375,1624345200"; d="scan'208";a="492440145" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by orsmga008.jf.intel.com with ESMTP; 15 Oct 2021 03:55:14 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Fri, 15 Oct 2021 03:55:13 -0700 Received: from fmsmsx606.amr.corp.intel.com (10.18.126.86) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Fri, 15 Oct 2021 03:55:13 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Fri, 15 Oct 2021 03:55:13 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.177) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Fri, 15 Oct 2021 03:55:11 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=W5MRecQSSHKcmR45mpBFIPPqrzcDfEkcYxOqlW5rNPP1T6Swm5kcnYnZdgQsQxfu5KQb2JitiDOJ4QMn9qGSzulR695mqHcC/3QniP9LdXc5d6qLCCABwZTsGdDyMGUZU39towWQQ5RyLoP70556NOOBIvOYqkNMc5csGXofMM8peCldGrUhuSnAOOI4Iau+l33x5JcuNELj/FeK7JmbF0t84FzS9znXML6vjBPy0R4PycWb9F+cgm3AREJ/4pDKr+1wJ79nedV5jpi+Qp+Gi53I+aDwx5kmNPzy1kb23ycC1e1f+5bitV+Qpx8wUZ4vDPeCuVizC/ypVjWOcoAeCg== 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=kSVLmgCMgulvlY9q4VUmaMQL1+dqjhYEsmOcePlNd9Y=; b=Hd+yNUuRe0JUrkOUccmerPs9KUmPT4DHeyXoTyZ9AgD8f2oPfizqjNOHtxg8Onc6ZJU0fAxycr9Ug+riqPxYJbtcx5atIhwDlQLKoSDS8KcIka+AySV+A7Sd3rJdg/uZeyIG3k5FaScJZbqAOS4wK0H9SkF/h1BoPNltJdYZ1L9VmU5F69lBh0Bkh9nMzLC99kKspKvmbXG54Qse2hsv/xmjeZrKIKWMmQ02STfWL6tIakQYSBdadcuF+ZGj7xLqyyAPz0uBKL+d+M9wCl5fy5Bny16WyInSm1KQBLKyxM2jMuTwuVk8tz78aAp645U6LSJKdrwcCOuVWKNA03nFRg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kSVLmgCMgulvlY9q4VUmaMQL1+dqjhYEsmOcePlNd9Y=; b=aEKaTg7qbdebl5McENiPKaeEZDYGEWLO9LbZne6olEeFi8HzPzg1aH7/OCqPTCqQZ+epS3P4k+HVG5y2eikqHaf32snzIaKp0vsELG3F6Eq2MdQ1lirmEqGjWj8FuJT/h2GlW40KotLtbGS6W5/6z8jNw5R7xEXizRmqKIkTR1A= Received: from DM6PR11MB4491.namprd11.prod.outlook.com (2603:10b6:5:204::19) by DM6PR11MB4364.namprd11.prod.outlook.com (2603:10b6:5:201::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4608.16; Fri, 15 Oct 2021 10:55:09 +0000 Received: from DM6PR11MB4491.namprd11.prod.outlook.com ([fe80::740e:126e:c785:c8fd]) by DM6PR11MB4491.namprd11.prod.outlook.com ([fe80::740e:126e:c785:c8fd%4]) with mapi id 15.20.4608.017; Fri, 15 Oct 2021 10:55:09 +0000 From: "Ananyev, Konstantin" To: "Medvedkin, Vladimir" , "dev@dpdk.org" CC: "Chilikin, Andrey" , "Wang, Yipeng1" , "Gobriel, Sameh" , "Richardson, Bruce" , "Mcnamara, John" Thread-Topic: [PATCH 1/5] hash: add new toeplitz hash implementation Thread-Index: AQHXozjeXpSedpKkskK1iuEvx5T/hKvIAo3ggAwAVwCAABpFwA== Date: Fri, 15 Oct 2021 10:55:09 +0000 Message-ID: References: <1630944239-363648-1-git-send-email-vladimir.medvedkin@intel.com> <1630944239-363648-2-git-send-email-vladimir.medvedkin@intel.com> In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.200.16 authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 801241c4-f8bf-4860-fd5f-08d98fca419b x-ms-traffictypediagnostic: DM6PR11MB4364: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7691; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: IJRweXY6+iKEvohRdXRuvX88HzPZ1FhFdetZcuZUfhHXXcyU8vLa9L7BjELzhwCImtfCINcZPPfn+B5WV1Ol6CMY8rF4LXXzkCDznEpRS5OVajhS331cE800fcYlQlQ3FvVuA1hDl7QeJzICY5PIu5837s14arnnmr8ztR5vRkCR5EA+x5o2Km276IRmEF8Pn2Hjo3ZzryjQKXg5KkDzcClBhnd5KtuXmoAAWeApt2Pt4ns70Wf0UxXp367CpyPOyEe0WywIhv79aPHvpWtKqV23e+7AejKSxGVYoaTHwfe363oklM/QOw1CKu2K1NTLJjqb3GdTePMbatL18N03OrTx8qneM/n8flzx6icj3s45eTEylbmww/aKeTYFbxxCajVUsxOKO+mxDUq3l/oeaOXQmsbTG44Y7ybFoHo/M57NKr9wsxpkT86RptyQathcldNW5FltXmFQKZVdab03n30ujAk3j1f4SHBZDb6bR+BXZuskgh2a25tZCVrmN9sUaArXJ8m6dfI6Xp0i2X1uIF94Ct3XMqx1Z+T/hMpCXuy2jULP0X3LWS62SH/60huGsdigUWJBrsTN/Q1yjpZkzmGg5/xC9cQiO1wKv2YTdnKFcQfkxu5/yG8hypPITVnb4N5ycISJENZVc3nzHdWinAQAqsoAQYGARt8eOdhlmisMOREa4H9HyylD/Xlbq2dItqJgwlCUjpgVd8r6t7m+gQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB4491.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(4326008)(38070700005)(5660300002)(33656002)(76116006)(55236004)(52536014)(55016002)(66556008)(508600001)(122000001)(66446008)(26005)(107886003)(86362001)(82960400001)(8936002)(7696005)(316002)(71200400001)(110136005)(186003)(38100700002)(6506007)(8676002)(66946007)(2906002)(54906003)(66476007)(9686003)(64756008)(83380400001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?N05RemdYS1lSL205MHZ6cU5US0NnNEpCRmxWanVtUC82SWZ4S0tHL3BBZitM?= =?utf-8?B?L1k3RWg1ZnZIWDhOVlVSalVmVEhWQ2ZpTUxJUm9lTk9ibkFiWE9vdTR4anNK?= =?utf-8?B?UVhseHpCOEpkRE9icHdMczVKY3VyNE1MVytGVE9JYmduUzRZZld3SUYvMjR3?= =?utf-8?B?alllYkpPZ2lCWVRIYjZ6cnlVR2F3UVUrREIxZW1SbUFnbDJJbXg5Mmt2c2w5?= =?utf-8?B?TDJGWGZuV0NkNzlLbWF6TXJVMm5vMnpqOHJUTXFnUjBNZHV2c00vU1FaeVdt?= =?utf-8?B?clpqRXYvNGt0VG1IUFNJSnI1WFpmQUVrbHBHTjFQTWsxRUlIU2xwZmtzdlUz?= =?utf-8?B?S20xU2RIOXRuMTRpOTEyL2s1Q3R4dzA0OFlRcjJZalNHaXgrQkFlRVZpUHNU?= =?utf-8?B?SWlVZEJEOVF3enZmYzVwbjJuMDdOVVBkK1MzRCt1eFV1djNxbVpUUCtiSkln?= =?utf-8?B?UWJ6d3NDTVJ1bjNQMDNRV09QR0VMMmdaOVR5c2kxQmpyMmRaUzdxMS9pUDJk?= =?utf-8?B?U2Npa2FIQStKVXFmL29EWFJHQXBXQnpVNnNOMk8vc1pCbUFWZzlwaGhjNWhW?= =?utf-8?B?aTdsUjRmeERXRlRtdVJTdW9PMHRoUEx0WTRXODEraUE1TVp3cW15QUdPeWha?= =?utf-8?B?USt4R1NkSlFpbUx2OU14Mms1K1l3a3B5b0U4Y1ZiQWpmbVpDdUZibmFodjEv?= =?utf-8?B?TnZKelVIblM3TGw2eVRqcWZRMTU0djVHSWhVS0E0N2RlSXJra3dRc2ZGd3ZY?= =?utf-8?B?amFQWTBIWGY1em5JTllBK3Q0VDN5T285SDhxbTgvVkJKSEZ5Mzl6S1VnS3Nv?= =?utf-8?B?bEpoVS9zbzhuR2xvYlJaeXQzbzVzZW4rYmVLTjRmaU1CMHo1NXhab0xlbDk3?= =?utf-8?B?TWlsdjBRQkloaU9ZRGJkSU1KcENyVnNmTWQxa3g1Qk4rc2hQYkd0QXJzcnRx?= =?utf-8?B?R05PZjBIS3JRR0V4ZVZVUE9kS0Q3dEtaNkJtbVVMWkJFVFBPOXVjNGJVUm1P?= =?utf-8?B?T2FGaUlTNW9QK1JmcU41RkFZRE1JV0dNYStDUXZMeVdNU2JPaDRXekRmdTl3?= =?utf-8?B?WHUxWWlmVStPazRKcHQxUlNmRGFQNGtJZU55TU5UYmJpMkIrcWZuM1ltQzhE?= =?utf-8?B?YUtJekVaWlFLbzlWUm9xVWNtelYydkJ3dXdOYWt1eWh4aWNxUzdQWXdTejlq?= =?utf-8?B?eXphK1FQYjhmeEhpNXI5bEd3T0lrTDFhZEtYLzUvd0w4YWJjWDVzZk9UNVBQ?= =?utf-8?B?TWlVM2JtL3EvRjF5T2lWalJuQXdXYXJjZGhvT2lxaFRwS2lBRnBRQmgyU3F6?= =?utf-8?B?YlJjOWRwenZhc2FIc2QwK2VidTRKd1E5OE9yNUNUQS9ydWsxY3gvL3JZQzQ5?= =?utf-8?B?Tk9ZYXFLb0tqYVA2cUszTFUrbzZVWVUvR3VTRk9qb0J5eTAyTWJ1THRJR3Q2?= =?utf-8?B?WHMrdGE2UHEyN1RwR016eHdSdEhmd3dleDVFVFBvRHkweEQ3eW9PZm9qWStH?= =?utf-8?B?eUcwUHVQSytuVFlhZ0VnR1BiL3NjY3BFUGN5M2d0b3VlVHh6bW5yelBoRUk2?= =?utf-8?B?TTdSQzlYQXBJa09PdisybWllaU5RejMwOU5xMFc4TWtaMDYwT04wRTVPak5y?= =?utf-8?B?T3RBL2k3ZTNRR3RrZFRuSFgzNnFORXRGV3Z4a2VvdzI0WVlJMUVyS2N5dklN?= =?utf-8?B?QWdyd1NaOWFXMTFKNjNrRFArM2FaMWkxdzliU2o5M21WUDBQRVdLUkViY21h?= =?utf-8?Q?d4eai6LzgjP1NR02BfUqNHqr5hNHTXFmANwK2ja?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4491.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 801241c4-f8bf-4860-fd5f-08d98fca419b X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Oct 2021 10:55:09.5384 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: U2yawCDrz3VLSsEZ7CYKY3TeDE7BkKmbkNRxeX8KhFkcp9n9zPYACJ8/z8i2OEa9Nuh5BL3uAQznBqw1cJrRJ3mysM7MiwJzj1lCcDbLldg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4364 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH 1/5] hash: add new toeplitz hash implementation 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 Sender: "dev" DQo+ID4+ICsvKioNCj4gPj4gKyAqIENhbGN1bGF0ZSBUb2VwbGl0eiBoYXNoLg0KPiA+PiArICoN Cj4gPj4gKyAqIEB3YXJuaW5nDQo+ID4+ICsgKiBAYiBFWFBFUklNRU5UQUw6IHRoaXMgQVBJIG1h eSBjaGFuZ2Ugd2l0aG91dCBwcmlvciBub3RpY2UuDQo+ID4+ICsgKg0KPiA+PiArICogQHBhcmFt IG0NCj4gPj4gKyAqICBQb2ludGVyIHRvIHRoZSBtYXRyaWNlcyBnZW5lcmF0ZWQgZnJvbSB0aGUg Y29ycmVzcG9uZGluZw0KPiA+PiArICogIFJTUyBoYXNoIGtleSB1c2luZyBydGVfdGhhc2hfY29t cGxldGVfbWF0cml4KCkuDQo+ID4+ICsgKiBAcGFyYW0gdHVwbGUNCj4gPj4gKyAqICBQb2ludGVy IHRvIHRoZSBkYXRhIHRvIGJlIGhhc2hlZC4gRGF0YSBtdXN0IGJlIGluIG5ldHdvcmsgYnl0ZSBv cmRlci4NCj4gPj4gKyAqIEBwYXJhbSBsZW4NCj4gPj4gKyAqICBMZW5ndGggb2YgdGhlIGRhdGEg dG8gYmUgaGFzaGVkLg0KPiA+PiArICogQHJldHVybg0KPiA+PiArICogIENhbGN1bGF0ZWQgVG9l cGxpdHogaGFzaCB2YWx1ZS4NCj4gPj4gKyAqLw0KPiA+PiArX19ydGVfZXhwZXJpbWVudGFsDQo+ ID4+ICtzdGF0aWMgaW5saW5lIHVpbnQzMl90DQo+ID4+ICtydGVfdGhhc2hfZ2ZuaSh1aW50NjRf dCAqbSwgdWludDhfdCAqdHVwbGUsIGludCBsZW4pDQo+ID4+ICt7DQo+ID4+ICsJdWludDMyX3Qg dmFsLCB2YWxfemVybzsNCj4gPj4gKw0KPiA+PiArCV9fbTUxMmkgeG9yX2FjYyA9IF9fcnRlX3Ro YXNoX2dmbmkobSwgdHVwbGUsIE5VTEwsIGxlbik7DQo+ID4+ICsJX19ydGVfdGhhc2hfeG9yX3Jl ZHVjZSh4b3JfYWNjLCAmdmFsLCAmdmFsX3plcm8pOw0KPiA+PiArDQo+ID4+ICsJcmV0dXJuIHZh bDsNCj4gPj4gK30NCj4gPj4gKw0KPiA+PiArLyoqDQo+ID4+ICsgKiBDYWxjdWxhdGUgVG9lcGxp dHogaGFzaCBmb3IgdHdvIGluZGVwZW5kZW50IGRhdGEgYnVmZmVycy4NCj4gPj4gKyAqDQo+ID4+ ICsgKiBAd2FybmluZw0KPiA+PiArICogQGIgRVhQRVJJTUVOVEFMOiB0aGlzIEFQSSBtYXkgY2hh bmdlIHdpdGhvdXQgcHJpb3Igbm90aWNlLg0KPiA+PiArICoNCj4gPj4gKyAqIEBwYXJhbSBtDQo+ ID4+ICsgKiAgUG9pbnRlciB0byB0aGUgbWF0cmljZXMgZ2VuZXJhdGVkIGZyb20gdGhlIGNvcnJl c3BvbmRpbmcNCj4gPj4gKyAqICBSU1MgaGFzaCBrZXkgdXNpbmcgcnRlX3RoYXNoX2NvbXBsZXRl X21hdHJpeCgpLg0KPiA+PiArICogQHBhcmFtIHR1cGxlXzENCj4gPj4gKyAqICBQb2ludGVyIHRv IHRoZSBkYXRhIHRvIGJlIGhhc2hlZC4gRGF0YSBtdXN0IGJlIGluIG5ldHdvcmsgYnl0ZSBvcmRl ci4NCj4gPj4gKyAqIEBwYXJhbSB0dXBsZV8yDQo+ID4+ICsgKiAgUG9pbnRlciB0byB0aGUgZGF0 YSB0byBiZSBoYXNoZWQuIERhdGEgbXVzdCBiZSBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuDQo+ID4+ ICsgKiBAcGFyYW0gbGVuDQo+ID4+ICsgKiAgTGVuZ3RoIG9mIHRoZSBsYXJnZXN0IGRhdGEgYnVm ZmVyIHRvIGJlIGhhc2hlZC4NCj4gPj4gKyAqIEBwYXJhbSB2YWxfMQ0KPiA+PiArICogIFBvaW50 ZXIgdG8gdWludDMyX3Qgd2hlcmUgdG8gcHV0IGNhbGN1bGF0ZWQgVG9lcGxpdHogaGFzaCB2YWx1 ZSBmb3INCj4gPj4gKyAqICB0aGUgZmlyc3QgdHVwbGUuDQo+ID4+ICsgKiBAcGFyYW0gdmFsXzIN Cj4gPj4gKyAqICBQb2ludGVyIHRvIHVpbnQzMl90IHdoZXJlIHRvIHB1dCBjYWxjdWxhdGVkIFRv ZXBsaXR6IGhhc2ggdmFsdWUgZm9yDQo+ID4+ICsgKiAgdGhlIHNlY29uZCB0dXBsZS4NCj4gPj4g KyAqLw0KPiA+PiArX19ydGVfZXhwZXJpbWVudGFsDQo+ID4+ICtzdGF0aWMgaW5saW5lIHZvaWQN Cj4gPj4gK3J0ZV90aGFzaF9nZm5pX3gyKHVpbnQ2NF90ICptdHJ4LCB1aW50OF90ICp0dXBsZV8x LCB1aW50OF90ICp0dXBsZV8yLCBpbnQgbGVuLA0KPiA+PiArCXVpbnQzMl90ICp2YWxfMSwgdWlu dDMyX3QgKnZhbF8yKQ0KPiA+DQo+ID4gV2h5IGp1c3QgdHdvPw0KPiA+IFdoeSBub3QgdWludDhf dCAqdHVwbGVbXQ0KPiA+ID8NCj4gPg0KPiANCj4geDIgdmVyc2lvbiB3YXMgYWRkZWQgYmVjYXVz ZSB0aGVyZSB3YXMgdW51c2VkIHNwYWNlIGluc2lkZSB0aGUgWk1NIHdoaWNoDQo+IGhvbGRzIGlu cHV0IGtleSAoaW5wdXQgdHVwbGUpIGJ5dGVzIGZvciBhIHNlY29uZCBpbnB1dCBrZXksIHNvIGl0 IGhlbHBzDQo+IHRvIGltcHJvdmUgcGVyZm9ybWFuY2UgaW4gc29tZSBjYXNlcy4NCj4gQnVsayB2 ZXJzaW9uIHdhc24ndCBhZGRlZCBiZWNhdXNlIGZvciB0aGUgdmFzdCBtYWpvcml0eSBvZiBjYXNl cyBpdCB3aWxsDQo+IGJlIHVzZWQgd2l0aCBhIHNpbmdsZSBpbnB1dCBrZXkuDQo+IEhpZGluZyB0 aGlzIGZ1bmN0aW9uIGluc2lkZSAuYyB3aWxsIGdyZWF0bHkgYWZmZWN0IHBlcmZvcm1hbmNlLCBi ZWNhdXNlDQo+IGl0IHRha2VzIGp1c3QgYSBmZXcgY3ljbGVzIHRvIGNhbGN1bGF0ZSB0aGUgaGFz aCBmb3IgdGhlIG1vc3QgcG9wdWxhcg0KPiBrZXkgc2l6ZXMuDQoNCk9rLCBidXQgaXQgc3RpbGwg dW5jbGVhciB0byBtZSB3aHkgZm9yIDIgb25seT8NCldoYXQgc3RvcHMgeW91IGZyb20gZG9pbmc6 DQpzdGF0aWMgaW5saW5lIHZvaWQNCnJ0ZV90aGFzaF9nZm5pX2J1bGsoY29uc3QgdWludDY0X3Qg Km10cngsIHVpbnQzMl90IGxlbiwgdWludDhfdCAqdHVwbGVbXSwgdWludDMyX3QgdmFsW10sIHVp bnQzMl90IG51bSkNCnsNCglmb3IgKGkgPSAwOyBpICE9IChudW0gJiB+MSk7IGkgKz0gMikgew0K ICAgICAgICAgICAgICAgICAgICB4b3JfYWNjID0gX19ydGVfdGhhc2hfZ2ZuaShtdHJ4LCB0dXBs ZVtpXSwgdHVwbGVbaSsgMV0sIGxlbik7DQogICAgICAgICAgICAgICAgICAgIF9fcnRlX3RoYXNo X3hvcl9yZWR1Y2UoeG9yX2FjYywgdmFsICsgaSwgdmFsICsgaSArIDEpOw0KCX0NCglJZiAobnVt ICYgMSkgew0KCQl4b3JfYWNjID0gX19ydGVfdGhhc2hfZ2ZuaShtdHJ4LCB0dXBsZVtpXSwgTlVM TCwgbGVuKTsNCiAgICAgICAgICAgICAgICAgICAgCV9fcnRlX3RoYXNoX3hvcl9yZWR1Y2UoeG9y X2FjYywgdmFsICsgaSwgJnZhbF96ZXJvKTsNCgl9ICANCn0NCj8NCg0K