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 2B4E6A2EEB for ; Fri, 13 Sep 2019 09:39:10 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 7DD3A1F086; Fri, 13 Sep 2019 09:39:09 +0200 (CEST) Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80079.outbound.protection.outlook.com [40.107.8.79]) by dpdk.org (Postfix) with ESMTP id A394D1E537 for ; Thu, 12 Sep 2019 07:41:16 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QsZd/5mIybok1mLbg6xSgspxoh2t/l24epmvAmHZt4MbttPCAbaOOJjYDraE9xqdYTLoX8fGE5r4EqbsSUNN9vuEzFKe9nGuD335uy4mF9vfUB1LFnqFNL71OnckAujQ6RtPGBceWTqVmO9lMuF76GyuDzTCHz7GxM3C6pYP6bZiDtU3yC4H8E3ejFDhkSv7+nXNqXq9KWSP2ew6o4X2Nfxl6RJwmTwV48Zad5wwvE87krObnalmnGPHEns4/23iYZuAAiKaSzAUABH4zsOYrbXMIAONq8blFbOhH+TXjH6T/Dx2KNFoXcD2eUhHo1QbMqrdlfZ/FFIBeZtJ22D3Pg== 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=KQ2ukTBhfV9xxaurQKlyJDPkh5kHcIgDjrcN3DABCf8=; b=k6Xc81p1wMMZY5U34CZEWMsHExCysmxdCb2kJIo4VchSYBzYOSe9FTOtDrjJxzQ4OSr5w7JL1o7iwO6eH+NpUvTu51JvtPd/PHYWqpk6JzXsY9tnr/C5lGE5lusJvmVaKttTjvp8d3RJu9rgbYC0aqS/7Yb58RC5WpOWTxEDSBSYYQyELe9/z6Tv08swQUpGK/Ta1XNyla0IRaI5VT2wKmeDKzCdlfAX+GVa29ogofyqQ73GYGMY9itwOa43eYoctsb9U0fdziZTkvXko2U7sS+CvPZZzs16+WfFB+H0hIiHfJZKD1XN1klkac1/EtdsWo0UVw9hxC7ypan+JEHy3g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KQ2ukTBhfV9xxaurQKlyJDPkh5kHcIgDjrcN3DABCf8=; b=gEaVfBjOBvGV3S+8HNRcEBhw3y8YmexrlA1b+EImWlewNMPzT2qqzVFT3UIIxFrvqkwa9bwCIIkbRSw5cBAlCT/chrDwgiTS2Vm2lOzYAHqZFO8Q+ZrvZgZpGEGuhpvDOnWgMAn50/dBo/Xkp7EVx6QfWmSy8CDBdPs8egXn7Os= Received: from VI1PR05MB4192.eurprd05.prod.outlook.com (10.171.183.18) by VI1PR05MB4270.eurprd05.prod.outlook.com (52.133.12.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2263.15; Thu, 12 Sep 2019 05:41:14 +0000 Received: from VI1PR05MB4192.eurprd05.prod.outlook.com ([fe80::f09d:115d:b92b:909c]) by VI1PR05MB4192.eurprd05.prod.outlook.com ([fe80::f09d:115d:b92b:909c%4]) with mapi id 15.20.2241.018; Thu, 12 Sep 2019 05:41:14 +0000 From: Bing Zhao To: "Wang, Yipeng1" , "Gobriel, Sameh" , "Richardson, Bruce" , "De Lara Guarch, Pablo" CC: "dev@dpdk.org" Thread-Topic: [RFC] hash: introduce resizable hash list Thread-Index: AQHVXW0ZliKZwJq2RE6CvkzoeSNmvqcdhJsAgAoRI4A= Date: Thu, 12 Sep 2019 05:41:14 +0000 Message-ID: References: <1566975109-318949-1-git-send-email-bingz@mellanox.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=bingz@mellanox.com; x-originating-ip: [112.10.107.220] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 7318a864-4c9b-4b21-5cfb-08d73743d39f x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600166)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:VI1PR05MB4270; x-ms-traffictypediagnostic: VI1PR05MB4270: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 01583E185C x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(396003)(366004)(376002)(136003)(39860400002)(346002)(13464003)(45074003)(199004)(189003)(54094003)(102836004)(7736002)(26005)(64756008)(2906002)(110136005)(71200400001)(14454004)(71190400001)(74316002)(8676002)(33656002)(3846002)(256004)(14444005)(305945005)(66556008)(66946007)(7696005)(81156014)(4326008)(81166006)(6116002)(478600001)(76116006)(66476007)(6436002)(53546011)(9686003)(55016002)(6506007)(52536014)(5660300002)(25786009)(66446008)(66574012)(8936002)(316002)(6246003)(446003)(476003)(76176011)(66066001)(53936002)(86362001)(486006)(11346002)(186003)(99286004)(229853002); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR05MB4270; H:VI1PR05MB4192.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: 06AoFkxjh8lRnb/6kziWPEL2a9dtR9VodKFnR5u+puKgrJV+9M+inJTIFKxm69juq2IgXq6M0MzFeGc74bGxRLnh7FJ0ezFda1kLmMlofYbthjSAHu2QWXkrpNGiqA/bwj8fTDM7wSiTmmGzx7fUCE35lJO3uNkOtGlmoWmMLUoeHnQ0/azykm/PeUYRpH6yQqdHYtfXTjK61oavyysopm//kxTu11Lyu9U8IYa6/8qItOSImMn1yCPTYW11de0x8rbfZR2WfSIfPKiab8BJYbFH8nwBmRbrdTCTeXyXMrywhZuLMNqasQkoRsnO77TLE2inz8v04MznSOxarvH5eNrtYnepSrUnUjeZf9FYLwOJJ2BGX/EnIQVxzU4AUqfmk/IEw6yRAOOpxUIqLqZCDQCTxPQ4zxilW1ATBQVfcGI= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7318a864-4c9b-4b21-5cfb-08d73743d39f X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Sep 2019 05:41:14.7998 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: VrZyRohH/dg1Lx05f9tsp3fDZ7/+KAW6p0XvhK7q9zYJCvlIBBDi9MStHvKIGl3qP1yQxP79wBI59DyUKdUIJw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB4270 X-Mailman-Approved-At: Fri, 13 Sep 2019 09:39:08 +0200 Subject: Re: [dpdk-dev] [RFC] hash: introduce resizable hash list 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" SGkgWWlwZW5nLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFdhbmcs IFlpcGVuZzEgPHlpcGVuZzEud2FuZ0BpbnRlbC5jb20+DQo+IFNlbnQ6IEZyaWRheSwgU2VwdGVt YmVyIDYsIDIwMTkgMzoyNiBBTQ0KPiBUbzogQmluZyBaaGFvIDxiaW5nekBtZWxsYW5veC5jb20+ OyBHb2JyaWVsLCBTYW1laA0KPiA8c2FtZWguZ29icmllbEBpbnRlbC5jb20+OyBSaWNoYXJkc29u LCBCcnVjZQ0KPiA8YnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb20+OyBEZSBMYXJhIEd1YXJjaCwg UGFibG8NCj4gPHBhYmxvLmRlLmxhcmEuZ3VhcmNoQGludGVsLmNvbT4NCj4gQ2M6IGRldkBkcGRr Lm9yZw0KPiBTdWJqZWN0OiBSRTogW1JGQ10gaGFzaDogaW50cm9kdWNlIHJlc2l6YWJsZSBoYXNo IGxpc3QNCj4gDQo+ID4tLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+RnJvbTogQmluZyBa aGFvIFttYWlsdG86YmluZ3pAbWVsbGFub3guY29tXQ0KPiA+U2VudDogVHVlc2RheSwgQXVndXN0 IDI3LCAyMDE5IDExOjUyIFBNDQo+ID5UbzogV2FuZywgWWlwZW5nMSA8eWlwZW5nMS53YW5nQGlu dGVsLmNvbT47IEdvYnJpZWwsIFNhbWVoDQo+ID48c2FtZWguZ29icmllbEBpbnRlbC5jb20+OyBS aWNoYXJkc29uLCBCcnVjZQ0KPiA+PGJydWNlLnJpY2hhcmRzb25AaW50ZWwuY29tPjsgRGUgTGFy YSBHdWFyY2gsIFBhYmxvDQo+ID48cGFibG8uZGUubGFyYS5ndWFyY2hAaW50ZWwuY29tPg0KPiA+ Q2M6IGRldkBkcGRrLm9yZzsgYmluZ3pAbWVsbGFub3guY29tDQo+ID5TdWJqZWN0OiBbUkZDXSBo YXNoOiBpbnRyb2R1Y2UgcmVzaXphYmxlIGhhc2ggbGlzdA0KPiA+DQo+ID5JbiB0aGUgY3VycmVu dCBoYXNoIGxpYnJhcnksIHRoZXJlIGFyZSBhbHJlYWR5IHR3byBoYXNoIHRhYmxlcyBhbmQNCj4g PnNldmVyYWwgaGFzaCBjYWxjdWxhdGlvbiBmdW5jdGlvbnMuDQo+ID4NCj4gPkZCSyBoYXNoIHRh YmxlIGlzIHZlcnkgbGlnaHR3ZWlnaHQsIGJ1dCB0aGUga2V5IGxlbmd0aCBpcyBsaW1pdGVkIHRv DQo+ID40IGJ5dGVzIGFuZCB0aGUgc2l6ZSBvZiB0aGUgdGFibGUgaXMgZml4ZWQgZHVyaW5nIHN0 YXJ0dXAuDQo+ID4NCj4gPkN1Y2tvbyBoYXNoIHRhYmxlIGlzIGEgcXVpdGUgZ3JlYXQgaWRlYSBh bmQgbmljZSBpbXBsZW1lbnRhdGlvbiBpbg0KPiB0aGUNCj4gPmxpYnJhcnksIGl0IGlzIGVmZmlj aWVudCBhbmQgZmxleGlibGUuIEFmdGVyIHNvbWUgc3R1ZHkgb2YgdGhlIGNvZGUgYW5kDQo+ID5p bmZvcm1hdGlvbiBmcm9tIGludGVybmV0LCBJIGZpbmQgdGhhdCB0aGUgdGFibGUgZXh0ZW5zaW9u IGlzIHNvbWUgcGFpbg0KPiA+cG9pbnQgKGNvcnJlY3QgbWUgaWYgYW55dGhpbmcgd3JvbmcpLiBJ dCBtZWFucyB0aGF0IHdlIG5lZWQgdG8NCj4gYWxsb2NhdGUNCj4gPnRoZSB0YWJsZXMgaW4gYWR2 YW5jZSBieSBkZWZpbmluZyBhIG1heGltdW0gc2l6ZS4NCj4gPlNvIHRoZXJlIGlzIGEgY2hhbmNl IHRoYXQgd2Ugd2FzdGUgc29tZSB1bnVzZWQgbWVtb3J5LiBSaWdodCBub3cNCj4gdGhlcmUNCj4g PmlzIGFuIGV4dGVuZGFibGUgYnVja2V0cyB0YWJsZSwgYnV0IGl0IHNlZW1zIHRoYXQgdGhlIG51 bWJlciBpcyBhbHNvDQo+ID5maXhlZCBhbmQgdGhlIHNhbWUgYXMgdGhlIHByaW1hcnkgdGFibGUu DQo+ID5UYWtlIHRoZSBmbG93cyBpbmZvcm1hdGlvbiBmb3IgZXhhbXBsZSwgd2UgbWF5IHN1cHBv cnQgYXMgbWFueSBhcw0KPiA+c2V2ZXJhbCBtaWxsaW9ucyBvZiBmbG93cy4gSW4gc29tZSBjYXNl LCBvbmx5IHNldmVyYWwgaHVuZHJlZHMgb2YNCj4gZmxvd3MNCj4gPndpbGwgYmUgY3JlYXRlZCBi dXQgaW4gdGhlIG90aGVyIGNhc2UsIG1pbGxpb25zIG9mIGZsb3dzIGFyZSBuZWVkZWQuIFNvDQo+ ID50aGlzIG1lYW5zIHRoYXQgd2UgbmVlZCB0byBjcmVhdGUgdGhlIGhhc2ggdGFibGUgdG8gc3Vw cG9ydCBtaWxsaW9ucw0KPiBvZg0KPiA+ZWxlbWVudHMgaW4gYWR2YW5jZSBkdXJpbmcgdGhlIHN0 YXJ0dXAgdGltZS4gSWYgb25lIGtleSBvZiBmbG93DQo+ID5pbmZvcm1hdGlvbiB3aWxsIGNvbnN1 bWUgNjRCIGFuZCAxTSBmbG93cywgc28gaXQgd2lsbCBvY2N1cHkgbW9yZQ0KPiB0aGFuDQo+ID5v bmUgaHVuZHJlZCBNQiBtZW1vcnkgKHRoZSB0YWJsZSBmaWVsZHMgaW5jbHVkZWQpLiBXaGF0IGlz IHdvcnNlIGlmDQo+ID50aGVyZSBpcyBvbmx5IDJNICsgc2V2ZXJhbCBlbGVtZW50cywgaXQgbmVl ZHMgdG8gY3JlYXRlIGEgdGFibGUgb2YgNE0NCj4gPihvciBtb3JlOiBkZXBlbmRzIG9uIHRoZSBo YXNoIGNvbGxpc2lvbiByYXRlKSBhbmQgaXQgaXMgc29tZSB3YXN0aW5nDQo+IG9mDQo+ID50aGUg bWVtb3J5Lg0KPiA+DQo+ID5JbiBvcmRlciB0byBoYW5kbGUgdGhpcywgYW4gcmVzaXphYmxlIGhh c2ggbGlzdCBpcyBpbnRyb2R1Y2VkLg0KPiA+VGhlIHRhYmxlIGNvdWxkIHN0YXJ0IHdpdGggYSBz bWFsbCBudW1iZXIgb2YgdGhlIGVsZW1lbnRzIGFuZCBiZQ0KPiA+YWxsb2NhdGVkIGR5bmFtaWNh bGx5IGR1cmluZyB0aGUgcnVudGltZS4gSW4gdGhlIG1lYW53aGlsZSwgYW4NCj4gPm9uLWRlbWFu ZCBsaXN0IHNwbGl0dGluZyBtZWNoYW5pc20gaXMgdXNlZCBpbiBvcmRlciBub3QgdG8gbWFrZSBh DQo+ID5zaWduaWZpY2FudCBwZXJmb3JtYW5jZSBkZWdyYWRhdGlvbi4gVGhlbiB0aGVyZSBpcyBu byBuZWVkIHRvIHJlLQ0KPiBoYXNoDQo+ID5hbmQgcmVsb2NhdGUgYWxsIHRoZSBleGlzdGluZyBl bGVtZW50cyBpbiB0aGUgdGFibGUgd2hlbiB0aGUgdGFibGUgaXMNCj4gPmV4dGVuZGVkLg0KPiA+ DQo+ID5UaGUgYnJpZWYgZGVzaWduIGlzIGFzIGJlbG93Og0KPiA+MS4gVGhlIHRhYmxlIGlzIGNv bnNpc3RlZCBvZiBMSVNUIGhlYWRlciBhcnJheSBhbmQgdGhlIExJU1QgZW50cmllcy4NCj4gPiAg IEluIGVhY2ggZW50cnksIGEgcHJlLWNhbGN1bGF0ZWQgaGFzaCBzaWduYXR1cmUgaXMgc3RvcmVk IGFuZCBpcw0KPiA+ICAgdXNlZCB0byBkZWNpZGUgd2hpY2ggaGVhZGVyIHNob3VsZCBpdCBiZSBs aW5rZWQgdG8sIGJ5IHVzaW5nDQo+ID4gICAiQU5EIiB3aXRoIHRoZSBtYXNrIHRvIHNlbGVjdCB0 aGUgTFNCcyBvZiB0aGUgc2lnbmF0dXJlLg0KPiA+Mi4gVGhlIGhlYWRlciBhcnJheSBzaXplIGNv dWxkIHN0YXJ0IHdpdGggYSB2ZXJ5IHNtYWxsIG51bWJlciwgYW5kIGENCj4gPiAgIHNwZWNpZmll ZCBtYXggbnVtYmVyIG9mIGVhY2ggbGlzdCBpcyB1c2VkIHRvIGNoZWNrIGlmIGEgdGFibGUNCj4g PiAgIGV4dGVuc2lvbiBpcyBuZWVkZWQuDQo+ID4zLiBXaGVuIHRoZSBtYXggbnVtYmVyIG9uIGFu eSBvZiBsaXN0IGlzIHJlYWNoZWQsIHRoZSBoZWFkZXIgYXJyYXkNCj4gPiAgIHNpemUgd2lsbCBi ZSBkb3VibGVkLiBUaGVuIGVhY2ggZW50cmllcyBsaW5rZWQgdG8gdGhpcyBsaXN0IHdpbGwNCj4g PiAgIGJlIHNwbGl0IGludG8gdHdvIGxpc3RzIHdpdGggdGhlIG5ldyBtYXNrIChvbmUgbW9yZSBi aXQgMSBpbg0KPiA+ICAgdGhlIG1hc2ssIGUuZy4gMHhmZmYgLT4gMHgxZmZmKS4gQW5kIGEgZ2xv YmFsIHNoaWZ0IG51bWJlciBhbmQNCj4gPiAgIGxvY2FsIHNoaWZ0IG51bWJlciBvZiBlYWNoIGxp c3QgaXMgdXNlZCBmb3IgdGhlIGZ1cnRoZXIgY2hlY2tpbmcuDQo+ID40LiBXaGVuIHNvbWUgb3Ro ZXIgbGlzdCBpcyBiZWluZyBhY2Nlc3NlZCwgYSBjb21wYXJpc29uIGZvciB0aGUgc2hpZnQNCj4g PiAgIG51bWJlcnMgaXMgdXNlZCB0byBjaGVjayBpZiB0aGUgc3BsaXR0aW5nIG9mIHRoaXMgbGlz dCBpcyBuZWVkZWQuDQo+ID4gICBJZiBzbywgdGhlbiB0aGVyZSB3aWxsIGJlIHR3byBjb25kaXRp b25zOg0KPiA+ICAgYS4gSWYgdGhlIGxvY2FsIHNoaWZ0IG51bWJlciBpcyBvbmx5IDEgbGVzcyB0 aGFuIGdsb2JhbCBvcg0KPiA+ICAgICAgbm9uLXplcm8sIHRoZW4gdGhpcyBsaXN0IGlzIHRoZSBv bmUgdGhhdCBuZWVkcyB0byBiZSBzcGxpdC4NCj4gPiAgIGIuIElmIG1vcmUgdGhhbiAxLCB0aGVu IGl0IG1lYW5zIHRoYXQgdGhlIHRhYmxlIGlzIGV4dGVuZGVkIG1vcmUNCj4gPiAgICAgIHRoYW4g b25jZS4gQW5kIElmIHRoZSBsb2NhbCBzaGlmdCBpcyB6ZXJvLCBhIG1lY2hhbmlzbSBpcyB1c2Vk DQo+ID4gICAgICB0byBmaW5kIHRoZSBsYXN0IHVuc3BsaXQgbGlzdC4NCj4gPiAgIEFuZCB0aGVu IHRoZSBsaXN0IHdpbGwgYmUgc3BsaXQgaW50byAyLzQvOC4uLiBsaXN0cyBkZXBlbmRzIG9uDQo+ ID4gICB0aGUgZ2FwLiBBbGwgdGhlIGVudHJpZXMgdGhlbiB3aWxsIGxpbmtlZCB0byB0aGUgcHJv cGVyIGhlYWRlci4NCj4gPlNvLCBlYWNoIHRpbWUgd2hlbiB0aGUgaGxpc3QgQVBJcyBhcmUgY2Fs bGVkLCBvbmx5IG9uZSBsaXN0IHdpbGwgYmUNCj4gPnRyYXZlcnNlZCBidXQgbm90IGFsbCB0aGUg bGlzdHMuIEFuZCBzaW5jZSB0aGVyZSBpcyBwYXJhbWV0ZXIgdG8gc2V0IGENCj4gPm1heCBudW1i ZXIgb2YgZW50cmllcyBpbiBhIGxpc3QuIFRoZSB0cmF2ZXJzYWwgdGltZSBpcyBwcmVkaWN0YWJs ZSBhbmQNCj4gPnRoZXNlIHdpbGwgbm90IGNhdXNlIGEgc2lnbmlmaWNhbnQgcGVyZm9ybWFuY2Ug ZGVncmFkYXRpb24uDQo+ID4NCj4gPkJSLiBCaW5nDQo+ID4NCj4gPg0KPiA+QmluZyBaaGFvICgx KToNCj4gPiAgcnRlX2hhc2g6IGludHJvZHVjZSBoYXNoIGxpc3QgaW50byBoYXNoIGxpYg0KPiA+ DQo+ID4gbGliL2xpYnJ0ZV9oYXNoL01ha2VmaWxlICAgICAgICAgICAgIHwgICAyICsNCj4gPiBs aWIvbGlicnRlX2hhc2gvcnRlX2hhc2hfdmVyc2lvbi5tYXAgfCAgMTUgKw0KPiA+IGxpYi9saWJy dGVfaGFzaC9ydGVfaGxpc3QuYyAgICAgICAgICB8IDY4Nw0KPiArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKw0KPiA+IGxpYi9saWJydGVfaGFzaC9ydGVfaGxpc3QuaCAgICAgICAg ICB8IDU2Mw0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ID4gNCBmaWxlcyBjaGFu Z2VkLCAxMjY3IGluc2VydGlvbnMoKykNCj4gPiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2xpYnJ0 ZV9oYXNoL3J0ZV9obGlzdC5jIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+IGxpYi9saWJydGVfaGFz aC9ydGVfaGxpc3QuaA0KPiA+DQo+ID4tLQ0KPiA+MS44LjMuMQ0KPiANCj4gW1dhbmcsIFlpcGVu Z10NCj4gDQo+IEhpLCBCaW5nLA0KPiANCj4gVGFibGUgcmVzaXppbmcgaXMgdmVyeSBpbXBvcnRh bnQgYW5kIEkgdGhpbmsgaXQgaXMgYSBjcml0aWNhbCBmZWF0dXJlIHRvIGhhdmUNCj4gaW4gRFBE SydzIGhhc2ggbGlicmFyeS4gVGhhbmtzIGEgbG90IGZvciBwdXR0aW5nIGVmZm9ydCBvbiB0aGlz IGFuZCBJIGhvcGUNCj4gd2UgY291bGQgd29yayBvdXQgYSBzb2x1dGlvbiBiYXNlZCBvbiB5b3Vy IHBhdGNoLg0KPiANCg0KVGhhbmtzLiBUbyBteSB1bmRlcnN0YW5kaW5nLCB5ZXMgaXQgaXMgdmVy eSBpbXBvcnRhbnQuIEVzcGVjaWFsbHksIHRoZXJlIGlzDQpzb21lIGNhc2UgdGhhdCB0aGUgbWF4 aW11bSBjYXBhY2l0eSBpcyBxdWl0ZSBsYXJnZSBidXQgZWxlbWVudHMgY291bGQNCmJlIGp1c3Qg YSBmZXcgZHVyaW5nIG9uZSBydW4gdGltZSBsaWZlIGN5Y2xlLg0KDQo+IE15IG1ham9yIGNvbmNl cm4gb2YgdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gaXMgYXMgZm9sbG93aW5nOg0KPiANCj4g QWx0aG91Z2ggd2Ugc3RpbGwgaGF2ZSB0aGUgZmJrIGhhc2ggdGFibGUgaW1wbGVtZW50YXRpb24s IEkgdGhpbmsgdGhlDQo+IGdvYWwgaGVyZSBpcyB0byBoYXZlIHRoZSB1c2VycyB0byBtb3ZlIHRv IHRoZSBtYWluIGhhc2ggdGFibGUNCj4gaW1wbGVtZW50YXRpb24gKHRoZSBjdWNrb28gYWxnb3Jp dGhtKSwgc2luY2UgaXQgaXMgdGhlIGJldHRlciBvbmUgaW4NCj4gbW9zdCB1c2UgY2FzZXMuIFRo ZXJlIGhhdmUgYmVlbiBtYW55IG9wdGltaXphdGlvbnMgZG9uZSBvbiB0aGUNCj4gY3VycmVudCBj b2RlIGJhc2Ugc2luY2UgdGhlIGN1Y2tvbyBoYXNoIHdhcyBpbnRyb2R1Y2VkLCB3ZSBkbyBub3QN Cj4gd2FudCB0byByZWludmVudCB0aGUgd2hlZWwgc3VjaCBhcyB0aGUgbXVsdGktdGhyZWFkaW5n IHN1cHBvcnQsIG5vbi0NCj4gVFNPIG1hY2hpbmUgc3VwcG9ydCwgU0lNRCBvcHRpbWl6YXRpb25z LCBldGMuIEFsc28sIGNvbXBhcmluZyB0bw0KPiBsaW5rZWQgbGlzdCwgdGhlIGN1cnJlbnQgYnVj a2V0aXplZCB0YWJsZSBzaG91bGQgcHJvdmlkZSBiZXR0ZXIgbG9va3VwDQo+IHBlcmZvcm1hbmNl LiBMYXN0IGJ1dCBub3QgbGVhc3QsIHdlIHByb2JhYmx5IGRvbid0IHdhbnQgZnJhZ21lbnRlZA0K PiBoYXNoIHRhYmxlIEFQSXMuDQo+IA0KDQpZZXMsIEkgc2VlIGFuZCBJIGFncmVlLiBJIGhhdmUg c29tZSBiYXNpYyBzdHVkeSBvZiB0aGUgY3Vja29vIGFuZCBpdCBpcw0KcXVpdGUgYSBuaWNlIGlt cGxlbWVudGF0aW9uIGZyb20gdGhlIHBhcGVyIHRvIHRoZSBlbmdpbmVlcmluZy4gQW5kIGENCmxv dCBvZiBvcHRpbWl6YXRpb25zIGJvdGggb24gWDg2XzY0IGFuZCBhYXJjaDY0IHdlcmUgZG9uZS4g QW5kIHVuaXF1ZQ0Kc29sdXRpb24gd2lsbCBiZSBtdWNoIGVhc2llciBhbmQgbGVzcyBwcm9ibGVt YXRpYyBmb3IgdGhlIHVzZXJzIGFuZA0KbWFpbnRhaW5lcnMuDQoNCj4gSSB3b3VsZCBzdWdnZXN0 IHRvIHNlZSBpZiB3ZSBjb3VsZCBhZGQgcmVzaXppbmcgZmVhdHVyZSB0byB0aGUgY3VycmVudA0K PiBoYXNoIHRhYmxlIGltcGxlbWVudGF0aW9uIGZpcnN0Lg0KPiBGb3IgZXhhbXBsZSwgd2UgY2Fu IHVzZSB0aGUgY3VycmVudCBidWNrZXRpemVkIGRlc2lnbiB0byBkbyB0aGUNCj4gcmVzaXppbmcg cmF0aGVyIHRoYW4gdGhlIG5ldyBsaW5rZWQgbGlzdC1iYXNlZCBkYXRhIHN0cnVjdHVyZS4NCj4g V2UgZG8gbmVlZCBzb21lIG1vZGlmaWNhdGlvbnMgc3VjaCBhcyBoYXZpbmcgYSBsb2NhbCAgYnVj a2V0X3NoaWZ0DQo+IHZhcmlhYmxlIGVhY2ggYnVja2V0LCBidXQgSSB0aGluayBpdCBpcyBmZWFz aWJsZS4gV2UgY291bGQgYWxzbyB0dXJuIG9mZg0KPiB0aGUgY3Vja29vIHBhdGgvZXh0ZW5kYWJs ZSBsaW5rZWQgbGlzdCBvZiB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbg0KPiB3aGVuIHJlc2l6 aW5nIGlzIG5lZWRlZCwgc28gdGhhdCBpdCB3b3VsZCBiZSBzaW1wbGVyIGZvciB0aGUNCj4gaW1w bGVtZW50YXRpb24uDQo+IEluIHN1Y2ggd2F5LCB3ZSBrZWVwIHRoZSBjdXJyZW50IEFQSSBhbmQg YWxzbyByZXVzZSBtYW55IG9mIHRoZQ0KPiBleGlzdGluZyBjb2RlLg0KPiANCg0KVGhhdCB3aWxs IGJlIHF1aXRlIGdyZWF0IGlmIHRoZSByZXNpemUgd2l0aCBjdWNrb28gaGFzaCBjb3VsZCBiZSBy ZWFsaXplZC4NCkkgYW0gbm90IHF1aXRlIGZhbWlsaWFyIHdpdGggdGhlIGN1cnJlbnQgc3RhdHVz IG9mIHRoZSByZXNlYXJjaGluZy4gSXMgdGhlcmUNCmFueSBwYXBlciBvciBpZGVhcyB0aGVzZSB5 ZWFycyBmb3IgdGhlIGN1Y2tvbyBoYXNoIGFsZ29yaXRobSBhbHJlYWR5Pw0KDQo+IEFsc28sIEkg d29uZGVyIGlmIHlvdSBoYXZlIGEgc3BlY2lmaWMgdXNlIGNhc2UgdGhhdCBiZW5lZml0IGZyb20g dGhlDQo+IGdyYWR1YWxseSBicmVhay1kb3duIGFwcHJvYWNoPyBTaW5jZSB3ZSBjb3VsZCBhbHdh eXMgc3RvcCB0aGUgd29ybGQNCj4gYW5kIHJlc2l6ZSB0aGUgdGFibGUgYXQgb25jZS4NCg0KRG8g eW91IG1lYW4gdGhlIG9uLWRlbWFuZCAod2hlbiBiZWluZyBhY2Nlc3NlZCkgc3BsaXQ/IFRoZW9y ZXRpY2FsbHksDQpubyBmb3IgdGhlIHRvdGFsIHRpbWUsIG9yIGV2ZW4gbW9yZSBiZWNhdXNlIG9m IHRoZSBjYWxjdWxhdGlvbiBhbmQgZXh0cmENCmNoZWNraW5nLiBBbmQgdGhpcyBpcyBvbmx5IHRv IHNtb290aGVuIHRoZSByYXRlIHdoZW4gdGhlcmUgaXMgYWxyZWFkeSBhDQpsb3Qgb2YgZWxlbWVu dHMgaW4gdGhlIHRhYmxlLCBlLmcuIDFNLiBUcmF2ZXJzaW5nIDFNIGVsZW1lbnRzIGFuZCByZWxv Y2F0ZQ0KdGhlbSBpbnRvIHRoZSByaWdodCBwb3NpdGlvbiB3aWxsIGJlIHZlcnkgdGltZSBjb25z dW1pbmcuIEVzcGVjaWFsbHkgdGhlDQptZW1vcnkgaXMgZHluYW1pY2FsbHkgYWxsb2NhdGVkIGJ1 dCBub3QgY29udGludW91cywgdGhlIGNhY2hlIG1heSBiZQ0KYWxzbyBhIHByb2JsZW0gd2l0aCB0 aGUgbGlua2VkIGxpc3QuIEkgdGVzdGVkIHdpdGggYSBzaW1wbGUgY2FzZSBhbmQgdGhlDQpyYXRl IHNlZW1lZCB0byBiZSBzbW9vdGggKG5vIGJpZyBqaXR0ZXIpIC0gdGhlcmUgaXMgYWxzbyBzb21l IG90aGVyIGFjdGlvbnMNCmluIHRoZSBjYXNlIGFuZCB0aGUgaGFzaCBhY3Rpb24gb2NjdXB5IGFi b3V0IDE1JSBvZiB0aGUgQ1BVLg0KQW5kIHRoaXMgaXMgb25seSBmb3IgdGhlIGxpc3QgY2FzZS4g SSB0aGluayB3aGVuIHVzaW5nIGN1Y2tvbyBoYXNoLCBtYXliZQ0KdGhlcmUgaXMgbm8gbmVlZCBv ZiBzdWNoIHRyaWNrIPCfmIoNCg0KVGhhbmtzIGEgbG90DQoNCkJSLiBCaW5nDQo=