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 7EA8843A30; Thu, 1 Feb 2024 07:51:08 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 53F204028A; Thu, 1 Feb 2024 07:51:08 +0100 (CET) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2051.outbound.protection.outlook.com [40.107.243.51]) by mails.dpdk.org (Postfix) with ESMTP id 8D54840275 for ; Thu, 1 Feb 2024 07:51:07 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DDK6rcJP/ZE20beF9yYIRq71UV3MvJDvODxpvi7TqBvzhrak06xodHsVqe8GvVliquEuhocfijeuVw7tzPwyyeKZBZ/V1kgxJ4kIOlIfCbGKSWqolPBSpB2T6/uMUvSDyJoSXMusALEvZnM9oktzRC813o1wgYrcjT8vQCW5DSARW93z/VERrFqsgkfvuzQoE3kkFQ1QDWb/kpeTpMD7n+ETGUPuKGaf0mWd5uOqf+Jwdwm9EyKqeuLXSuzI2xhmG0glaOlj0HlAo3Z+Ogx3Cw0B3r7wlqVwEi1rLB1VtXaDM1vqVhexLQidjd191S0zvFJRR82cc0No6YfzyhvqQQ== 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=PmVvC3qPl/ZZc9O3yunI5I9U3jGkRZwq2CG3XBe1rXY=; b=obdWezx5YEK0sITXDryzQaxOUeD7ktRXLkPMvqZci00/edVZTBvRZj6lfm15TjjtMKV4gh9UxF7z0ukgB6wPz6kadcIfj7aD1JYMv2d66WFvBMqRexJwTL0IuzNvVwSS11MJG9LBbdRChAM+JSmwYJjEPQBCPQqjf3SyyaTRM2XGZrQ4qOdD6llno75VtBAy8e80CMwQ1WMqdtKg32MZ4n2/C73wavsz7WmfU3qGBRJYDbRNXBgdk/rAP3pM2j32WW2Qnad7CfvQgcuoiTL+PmFBAL2cUwA3xbb8kAQlNuM+Wmt4VCIS0ABNY+Ko0GUsxyzRF7MD5V7KyefEdHJK7g== 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=PmVvC3qPl/ZZc9O3yunI5I9U3jGkRZwq2CG3XBe1rXY=; b=CuIB+Y8ETQryasnyxYxb6HG/6Bvhc6uAin+Hx7yYBPVNF2SUAP/ZYdxaGeNSjWK4DrxZ7MZgcoNrTSWu3hIrVWD/18L8ykxwLKX2Cx9TcZb0W7ayKpxM80U9HE8FbrCFUqtcMhg3nX84V/xuEpSKGAcWqm6q6vIaNyXxlGURJEEW73iY3x0UpIv9/slC8jSm8W1+2Yf4Od+wIwGKquOrziIMUnAaPV22DSFm7KjaTRgGJdiWs0kTLFsRFC61MCI/RunqmcQ43x8x+4JPn6qDDPeYRj6tMlr7WQEkUrM21fBArtgzKpEYPidCLwi70NRRF5AzI4BbIkMGf1dWIMFKVw== Received: from MW2PR12MB4666.namprd12.prod.outlook.com (2603:10b6:302:13::22) by PH7PR12MB8038.namprd12.prod.outlook.com (2603:10b6:510:27c::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.27; Thu, 1 Feb 2024 06:51:04 +0000 Received: from MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::4b7d:c23d:42aa:3f9e]) by MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::4b7d:c23d:42aa:3f9e%7]) with mapi id 15.20.7228.029; Thu, 1 Feb 2024 06:51:03 +0000 From: Ori Kam To: Ferruh Yigit , Suanming Mou , Aman Singh , Yuying Zhang , "NBU-Contact-Thomas Monjalon (EXTERNAL)" , Andrew Rybchenko CC: "dev@dpdk.org" Subject: RE: [PATCH v3 2/3] ethdev: add compare item Thread-Topic: [PATCH v3 2/3] ethdev: add compare item Thread-Index: AQHaR5MtMzvaTjP4o02/zMw+SYvjsrDytboAgACa2YCAANoq4IAAEBqAgAAPPNCAAAO5AIAA2O0A Date: Thu, 1 Feb 2024 06:51:03 +0000 Message-ID: References: <20231219013337.531548-1-suanmingm@nvidia.com> <20240115091318.1053433-1-suanmingm@nvidia.com> <20240115091318.1053433-3-suanmingm@nvidia.com> <2594409d-5c8d-4347-b724-eece2b775376@amd.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: MW2PR12MB4666:EE_|PH7PR12MB8038:EE_ x-ms-office365-filtering-correlation-id: b14e7435-cd58-4edb-d31c-08dc22f2283f 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: xneMpEHIcu5GftWyBgDl97xm0w0IFXHuzV1eTLg0xzrijaGSuujVNL/dPyMP49PbHBAkE6xgugTUY7+e8jXw9hYwTaUNaCqX3OZDcZwSv0CpOps0aDTg1DRQ7AaCqzJOfjoeevokge8UQvV5y9inPbXnttM1fL8t3/l0WpovbuCtZhAQZoTeK/ZuaL+FVF5TH5aLLlraqOL62yF/G90R6JYx0SGbcfzBDvtDmuUvLOjd5zU5cGyp+eihVEAGiA5/HBpAMwDCDjw09gxzp6vQOGmoL83/VYK7KCN6CLMXnzJaaKDOEerBv/H78KPCTs1K+3LoG/nRg1ipCHpUudOznA7mOU9DlKF2HZbPPTNiRjfE7THEdyzfVya6icwZ7FVr07lomhRfqnaA7y5fDUoJ9YrOXnEtSf2u+fG3KtLxo7rRAovime/ahxOcPPcrG9MFPua3K9rmqCcqyLIjg9gzioQHChrUf/IUR1a6f6HL07KtBCrqzGgIdKXJMG2qqwKCxKrZSx//fNpmQDF9EJ8TB9FX+6lTsWfaZ972Q3INDYkwVg3SWWkmLD2HZOpugvLTT68UEkdiL/T9HaC6c/a5DZx9W6FZAcswYWufx7OS9aMu7XOhHmQ/l1yYAyy2sEJ8Kg47fDEhOrdTrKVGX3Xm3KopL81p6dDNIHC1iBpOCl9Ue3wDeb78far8BRM7Gif+ x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MW2PR12MB4666.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(366004)(376002)(346002)(39860400002)(396003)(136003)(230173577357003)(230273577357003)(230922051799003)(64100799003)(1800799012)(451199024)(186009)(52536014)(26005)(9686003)(5660300002)(7696005)(38100700002)(122000001)(41300700001)(76116006)(8936002)(71200400001)(2906002)(66946007)(4326008)(478600001)(66476007)(64756008)(6506007)(53546011)(8676002)(316002)(66446008)(66556008)(110136005)(38070700009)(86362001)(33656002)(55016003)(83380400001)(21314003); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SzI3TG10clg3eGV4a09vYXN3V014aXJiTVBuays5R0lmc0dYUEtVeENGNVhY?= =?utf-8?B?UVRNL283a1F1SUw2T0tUaDh3Nk1hMzk0U1pwTEluUElHOUtUYUVKVEdTaHYr?= =?utf-8?B?T1FwNTVuRVNKWFpSMDRRMmtGOEVPZGZQRDgvQ2VRWEcwTUZUTFVid0pjNTh3?= =?utf-8?B?TFJUTG45SVk1eXJIK1N4U0hLckd2a0VMNzR1eWlDNzNxenMrUUR1U2hVa1E5?= =?utf-8?B?NjdGbjlIQ2t0aEZGR2J6ckpmSXFDcWJqdGNRQUdDU0puVVpSWUlVVzdjSndk?= =?utf-8?B?NVlERHZNd08vNDJKWHZtdUc2WlY3bnBGMVVFbkM3U0psenlLdis2dDBGWTdp?= =?utf-8?B?Vkw5M0RpSFhYcGlUaEFQYmcrTVNwUCs1Rlo0OFNqajF5Q09HVkdQRGhSWjdo?= =?utf-8?B?UjM0YnFtS0N4RDZoUXpWc3BYYzZ2YW9HM0owUXNNM1VNcndwQWV4TVVqdzlS?= =?utf-8?B?NFhKM2s3ZDRQTWY3WTQ0TWg1OHREVjRJSnd5OGkvajZncFlta3RIY3NHZVdw?= =?utf-8?B?aDl2RXB1eEVzMGlTN1VVTWt3WG4yVHdzZTJoVy8wV1diV1h4bGZ6d0YzY2NS?= =?utf-8?B?Tm4zYXphbmxyMHdoZHdUM1ROWUd2RFhwcFNsbG8veDh0ZzVtN2dNYVpGV3hV?= =?utf-8?B?WCtla1BBeWtyalpkOWdNK2xtWW1xUmZxL3BueVVRa2tLbWFVTjBtMjVWUW5p?= =?utf-8?B?UVY4TWRvbE5QdTBzbWFjVit6b1MzQUkxRTFyaXdKUmQrNkNUemJJRklPTkFr?= =?utf-8?B?KzlueUhycGx3SmQ2S1k4aDdDS3hyaUt1dFlqZUdaUUxhNmxYUE1mNDZSVm1B?= =?utf-8?B?YzY5UStEeEh5SGR4N29ObWF2Z3Y1a0E0eWkzclBkc3krUEVhWFMyb0tIYWNX?= =?utf-8?B?NnZ2WkM0clVmdWlZSU9nNHhzWXJPazFNZTNLYVM1T1JBeGpHWVlXK0lnOUVi?= =?utf-8?B?RHRubDY0NnJSN1laWEM4cEpOVXZDb3VFeHpwRklGWnN5aHRpT1JINEQ2ZVo1?= =?utf-8?B?c0wwNkpiWUkwVTZidUVWTis5VC9XNWhaeWdYQWJhL0tWaUZMQWRvRmFhZkRU?= =?utf-8?B?bDVoMTc4NmVjYUo1bCtJcWxSdUQ3V2hFNmhZbjZURGJoc0dGTTcxcHl4RFdz?= =?utf-8?B?dG1haUlUL2hKZ2IzVGNicDBBVDJ4dEQzWGNIQTN5SThGN09iNnVmMG13YmNy?= =?utf-8?B?aktXZ1BCUXU4b1I0bHlaay9heU5zM3Q1c0tNN0ZhZWlydlJORjFXYVM3Si9S?= =?utf-8?B?ZlZvdkNHQm5NeC8xdHVZZWRYUVNSR2lVdS9VZXdMT1N6WTJSWUNVdk1xa3dO?= =?utf-8?B?YXpKZVVaZDFEL1BZWGZ5UzUxTGRMaVpRVUtUa0lsTXhueTlJUFpNSHg3Z21Z?= =?utf-8?B?RCt2ZTlqQ2xIQStrMTRwN2JjbEJpZkJCMUd1bHBpR0xjMGpPamJLUFlraEts?= =?utf-8?B?NnNFUm5qdlZ6MVZpeXJ4SzM2b0M3eWp6eWJVNllDcXJCbVRmakJMMG1JdnFa?= =?utf-8?B?dTZFRzZQbjZFeWVkR0ZyeHBQUG1HeW1Ic0IwZkg5eWFSZFVEWHR1Rmgzbm9N?= =?utf-8?B?Tm5vT3RlWXBKaEpXRm43d1lWSHdjUlNiUmtlZFpIaXhuNnBoU2c5NEVMTzFO?= =?utf-8?B?N3pTbSs5ZldXejlhTEdsRFFFc1lJM0VLbXVITzRQS3FZSlF6emVaeXpYbTNu?= =?utf-8?B?eDBpV0dOSkliUThQSE0vTzgxNkVUejVxalhtSGpDZlVxYnlvVEYvU2s0cXM3?= =?utf-8?B?Zk1QYjAxbHdLL2x0SGV3aUxmVm9wS2pZck90OExnYXRPMFIzN0lkNkpWdTZH?= =?utf-8?B?dm9VenJzb0poZ0cvcElYYTEwalJrV0JsU0hTMXBGVDA1U2hYcFJ2aE1sRjRt?= =?utf-8?B?Y2sraHBUSUEzaDgzcWJ0SXE0OHZyalBrbjVuZ2J5MWZsbTFWZHkxdm5oVFYr?= =?utf-8?B?WjFOT1RJd2dDMnBuajIrU1lSZzd0L0tSQ0VwWU1zNnF3aWJLVXpRcnFTOUdj?= =?utf-8?B?NFo4YWlmTVh5NU45YXBJRVpJaHp1eGJTVVV2dGJrVCtEVnlzYUVQNlJKejdh?= =?utf-8?B?cmNueWdQM2pjOEY5Ti9vclNxb0VnVDE5WmF0T1pad25IZGNmU05oUkZMRG00?= =?utf-8?Q?xMPY=3D?= 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: MW2PR12MB4666.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b14e7435-cd58-4edb-d31c-08dc22f2283f X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Feb 2024 06:51:03.1845 (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: ngbNOPHDCbHhfnxwQ6lYe6Lr6rkpiT0HkomUoUYj9dbtbukQQCM7YNKGZhNDhVOMUBSTbNoRef4ci3/v7KeTwg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB8038 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 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRmVycnVoIFlpZ2l0IDxm ZXJydWgueWlnaXRAYW1kLmNvbT4NCj4gU2VudDogV2VkbmVzZGF5LCBKYW51YXJ5IDMxLCAyMDI0 IDc6NTQgUE0NCj4gDQo+IE9uIDEvMzEvMjAyNCA1OjQzIFBNLCBPcmkgS2FtIHdyb3RlOg0KPiA+ DQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogRmVycnVo IFlpZ2l0IDxmZXJydWgueWlnaXRAYW1kLmNvbT4NCj4gPj4gU2VudDogV2VkbmVzZGF5LCBKYW51 YXJ5IDMxLCAyMDI0IDY6NDYgUE0NCj4gPj4gU3ViamVjdDogUmU6IFtQQVRDSCB2MyAyLzNdIGV0 aGRldjogYWRkIGNvbXBhcmUgaXRlbQ0KPiA+Pg0KPiA+PiBPbiAxLzMxLzIwMjQgMzo1NiBQTSwg T3JpIEthbSB3cm90ZToNCj4gPj4+IEhpDQo+ID4+Pg0KPiA+Pj4+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+ID4+Pj4gRnJvbTogU3Vhbm1pbmcgTW91IDxzdWFubWluZ21AbnZpZGlhLmNv bT4NCj4gPj4+PiBTZW50OiBXZWRuZXNkYXksIEphbnVhcnkgMzEsIDIwMjQgNDo0OCBBTQ0KPiA+ Pj4+DQo+ID4+Pj4gSGksDQo+ID4+Pj4NCj4gPj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCj4gPj4+Pj4gRnJvbTogRmVycnVoIFlpZ2l0IDxmZXJydWgueWlnaXRAYW1kLmNvbT4NCj4g Pj4+Pj4gU2VudDogV2VkbmVzZGF5LCBKYW51YXJ5IDMxLCAyMDI0IDE6MzQgQU0NCj4gPj4+Pj4g VG86IFN1YW5taW5nIE1vdSA8c3Vhbm1pbmdtQG52aWRpYS5jb20+OyBPcmkgS2FtDQo+ID4+Pj4g PG9yaWthQG52aWRpYS5jb20+Ow0KPiA+Pj4+PiBBbWFuIFNpbmdoIDxhbWFuLmRlZXAuc2luZ2hA aW50ZWwuY29tPjsgWXV5aW5nIFpoYW5nDQo+ID4+Pj4+IDx5dXlpbmcuemhhbmdAaW50ZWwuY29t PjsgTkJVLUNvbnRhY3QtVGhvbWFzIE1vbmphbG9uDQo+IChFWFRFUk5BTCkNCj4gPj4+Pj4gPHRo b21hc0Btb25qYWxvbi5uZXQ+OyBBbmRyZXcgUnliY2hlbmtvDQo+ID4+Pj4+IDxhbmRyZXcucnli Y2hlbmtvQG9rdGV0bGFicy5ydT4NCj4gPj4+Pj4gQ2M6IGRldkBkcGRrLm9yZw0KPiA+Pj4+PiBT dWJqZWN0OiBSZTogW1BBVENIIHYzIDIvM10gZXRoZGV2OiBhZGQgY29tcGFyZSBpdGVtDQo+ID4+ Pj4+DQo+ID4+Pj4+IE9uIDEvMTUvMjAyNCA5OjEzIEFNLCBTdWFubWluZyBNb3Ugd3JvdGU6DQo+ ID4+Pj4+PiBUaGUgbmV3IGl0ZW0gdHlwZSBpcyBhZGRlZCBmb3IgdGhlIGNhc2UgdXNlciB3YW50 cyB0byBtYXRjaCB0cmFmZmljDQo+ID4+Pj4+PiBiYXNlZCBvbiBwYWNrZXQgZmllbGQgY29tcGFy ZSByZXN1bHQgd2l0aCBvdGhlciBmaWVsZHMgb3IgaW1tZWRpYXRlDQo+ID4+Pj4+PiB2YWx1ZS4N Cj4gPj4+Pj4+DQo+ID4+Pj4+PiBlLmcuIHRha2UgYWR2YW50YWdlIHRoZSBjb21wYXJlIGl0ZW0g dXNlciB3aWxsIGJlIGFibGUgdG8gYWNjdW11bGF0ZQ0KPiBhDQo+ID4+Pj4+PiBJUHY0L1RDUCBw YWNrZXQncyBUQ1AgZGF0YV9vZmZzZXQgYW5kIElQdjQgSUhMIGZpZWxkIHRvIGEgdGFnDQo+ID4+ Pj4+PiByZWdpc3RlciwgdGhlbiBjb21wYXJlIHRoZSB0YWcgcmVnaXN0ZXIgd2l0aCBJUHY0IGhl YWRlciB0b3RhbCBsZW5ndGgNCj4gPj4+Pj4+IHRvIHVuZGVyc3RhbmQgdGhlIHBhY2tldCBoYXMg cGF5bG9hZCBvciBub3QuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+PiBhY2ssIGFib3ZlIHNh bXBsZSBtYWtlcyBpdCBlYXNpZXIgdG8gdW5kZXJzdGFuZC4NCj4gPj4+Pj4NCj4gPj4+Pj4gVGhp cyBwYXRjaCBpcyBhZGRpbmcgdGVzdHBtZCBjb21tYW5kcywgY2FuIHlvdSBwbGVhc2UgcHJvdmlk ZSBzb21lDQo+ID4+Pj4gc2FtcGxlDQo+ID4+Pj4+IGNvbW1hbmRzIGluIGNvbW1pdCBsb2c/DQo+ ID4+Pj4+IFRoZSBtb3JlIHNhbXBsZXMgYXJlIGJldHRlciwgYXMgZmFyIGFzIEkgcmVtZW1iZXIg dGhlcmUgd2FzIGENCj4gdGVzdHBtZA0KPiA+Pj4+PiBkb2N1bWVudGF0aW9uIHRoYXQgZG9jdW1l bnRzIHRoZSBzYW1wbGUgdXNhZ2VzLCBjYW4geW91IHBsZWFzZQ0KPiBjaGVjaw0KPiA+Pj4+IGZv ciBpdD8NCj4gPj4+DQo+ID4+PiBbU25pcCAuLl0NCj4gPj4+DQo+ID4+Pj4+DQo+ID4+Pj4+PiAr LyoqDQo+ID4+Pj4+PiArICogQHdhcm5pbmcNCj4gPj4+Pj4+ICsgKiBAYiBFWFBFUklNRU5UQUw6 IHRoaXMgc3RydWN0dXJlIG1heSBjaGFuZ2Ugd2l0aG91dCBwcmlvcg0KPiBub3RpY2UNCj4gPj4+ Pj4+ICsgKg0KPiA+Pj4+Pj4gKyAqIEZpZWxkIGRlc2NyaXB0aW9uIGZvciBwYWNrZXQgZmllbGQu DQo+ID4+Pj4+PiArICovDQo+ID4+Pj4+PiArc3RydWN0IHJ0ZV9mbG93X2ZpZWxkX2RhdGEgew0K PiA+Pj4+Pj4gKwllbnVtIHJ0ZV9mbG93X2ZpZWxkX2lkIGZpZWxkOyAvKio8IEZpZWxkIG9yIG1l bW9yeSB0eXBlIElELg0KPiAqLw0KPiA+Pj4+Pj4gKwl1bmlvbiB7DQo+ID4+Pj4+PiArCQlzdHJ1 Y3Qgew0KPiA+Pj4+Pj4gKwkJCS8qKiBFbmNhcHN1bGF0aW9uIGxldmVsIGFuZCB0YWcgaW5kZXgg b3IgZmxleA0KPiBpdGVtDQo+ID4+Pj4+IGhhbmRsZS4gKi8NCj4gPj4+Pj4+ICsJCQl1bmlvbiB7 DQo+ID4+Pj4+PiArCQkJCXN0cnVjdCB7DQo+ID4+Pj4+PiArCQkJCQkvKioNCj4gPj4+Pj4+ICsJ CQkJCSAqIFBhY2tldCBlbmNhcHN1bGF0aW9uIGxldmVsDQo+ID4+Pj4gY29udGFpbmluZw0KPiA+ Pj4+Pj4gKwkJCQkJICogdGhlIGZpZWxkIHRvIG1vZGlmeS4NCj4gPj4+Pj4+ICsJCQkJCSAqDQo+ ID4+Pj4+PiArCQkJCQkgKiAtIEBwIDAgcmVxdWVzdHMgdGhlIGRlZmF1bHQNCj4gPj4+PiBiZWhh dmlvci4NCj4gPj4+Pj4+ICsJCQkJCSAqICAgRGVwZW5kaW5nIG9uIHRoZSBwYWNrZXQNCj4gdHlw ZSwgaXQNCj4gPj4+Pj4+ICsJCQkJCSAqICAgY2FuIG1lYW4gb3V0ZXJtb3N0LA0KPiBpbm5lcm1v c3QNCj4gPj4+PiBvcg0KPiA+Pj4+Pj4gKwkJCQkJICogICBhbnl0aGluZyBpbiBiZXR3ZWVuLg0K PiA+Pj4+Pj4gKwkJCQkJICoNCj4gPj4+Pj4+ICsJCQkJCSAqICAgSXQgYmFzaWNhbGx5IHN0YW5k cyBmb3IgdGhlDQo+ID4+Pj4+PiArCQkJCQkgKiAgIGlubmVybW9zdCBlbmNhcHN1bGF0aW9uDQo+ IGxldmVsLg0KPiA+Pj4+Pj4gKwkJCQkJICogICBNb2RpZmljYXRpb24gY2FuIGJlDQo+IHBlcmZv cm1lZA0KPiA+Pj4+Pj4gKwkJCQkJICogICBhY2NvcmRpbmcgdG8gUE1EIGFuZA0KPiBkZXZpY2UN Cj4gPj4+Pj4+ICsJCQkJCSAqICAgY2FwYWJpbGl0aWVzLg0KPiA+Pj4+Pj4gKwkJCQkJICoNCj4g Pj4+Pj4+ICsJCQkJCSAqIC0gQHAgMSByZXF1ZXN0cw0KPiBtb2RpZmljYXRpb24gdG8gYmUNCj4g Pj4+Pj4+ICsJCQkJCSAqICAgcGVyZm9ybWVkIG9uIHRoZQ0KPiBvdXRlcm1vc3QNCj4gPj4+PiBw YWNrZXQNCj4gPj4+Pj4+ICsJCQkJCSAqICAgZW5jYXBzdWxhdGlvbiBsZXZlbC4NCj4gPj4+Pj4+ ICsJCQkJCSAqDQo+ID4+Pj4+PiArCQkJCQkgKiAtIEBwIDIgYW5kIHN1YnNlcXVlbnQNCj4gdmFs dWVzDQo+ID4+Pj4+IHJlcXVlc3QNCj4gPj4+Pj4+ICsJCQkJCSAqICAgbW9kaWZpY2F0aW9uIHRv IGJlDQo+IHBlcmZvcm1lZCBvbg0KPiA+Pj4+Pj4gKwkJCQkJICogICB0aGUgc3BlY2lmaWVkIGlu bmVyIHBhY2tldA0KPiA+Pj4+Pj4gKwkJCQkJICogICBlbmNhcHN1bGF0aW9uIGxldmVsLCBmcm9t DQo+ID4+Pj4+PiArCQkJCQkgKiAgIG91dGVybW9zdCB0byBpbm5lcm1vc3QNCj4gKGxvd2VyIHRv DQo+ID4+Pj4+PiArCQkJCQkgKiAgIGhpZ2hlciB2YWx1ZXMpLg0KPiA+Pj4+Pj4gKwkJCQkJICoN Cj4gPj4+Pj4+ICsJCQkJCSAqIFZhbHVlcyBvdGhlciB0aGFuIEBwIDAgYXJlDQo+IG5vdA0KPiA+ Pj4+Pj4gKwkJCQkJICogbmVjZXNzYXJpbHkgc3VwcG9ydGVkLg0KPiA+Pj4+Pj4gKwkJCQkJICoN Cj4gPj4+Pj4+ICsJCQkJCSAqIEBub3RlIHRoYXQgZm9yIE1QTFMgZmllbGQsDQo+ID4+Pj4+PiAr CQkJCQkgKiBlbmNhcHN1bGF0aW9uIGxldmVsIGFsc28NCj4gaW5jbHVkZQ0KPiA+Pj4+Pj4gKwkJ CQkJICogdHVubmVsIHNpbmNlIE1QTFMgbWF5DQo+IGFwcGVhciBpbg0KPiA+Pj4+Pj4gKwkJCQkJ ICogb3V0ZXIsIGlubmVyIG9yIHR1bm5lbC4NCj4gPj4+Pj4+ICsJCQkJCSAqLw0KPiA+Pj4+Pj4g KwkJCQkJdWludDhfdCBsZXZlbDsNCj4gPj4+Pj4+ICsJCQkJCXVuaW9uIHsNCj4gPj4+Pj4+ICsJ CQkJCQkvKioNCj4gPj4+Pj4+ICsJCQkJCQkgKiBUYWcgaW5kZXggYXJyYXkNCj4gaW5zaWRlDQo+ ID4+Pj4+PiArCQkJCQkJICogZW5jYXBzdWxhdGlvbiBsZXZlbC4NCj4gPj4+Pj4+ICsJCQkJCQkg KiBVc2VkIGZvciBWTEFOLA0KPiBNUExTIG9yDQo+ID4+Pj4gVEFHDQo+ID4+Pj4+IHR5cGVzLg0K PiA+Pj4+Pj4gKwkJCQkJCSAqLw0KPiA+Pj4+Pj4gKwkJCQkJCXVpbnQ4X3QgdGFnX2luZGV4Ow0K PiA+Pj4+Pj4gKwkJCQkJCS8qKg0KPiA+Pj4+Pj4gKwkJCQkJCSAqIEdlbmV2ZSBvcHRpb24NCj4g aWRlbnRpZmllci4NCj4gPj4+Pj4+ICsJCQkJCQkgKiBSZWxldmFudCBvbmx5IGZvcg0KPiA+Pj4+ Pj4gKwkJCQkJCSAqDQo+ID4+Pj4+IFJURV9GTE9XX0ZJRUxEX0dFTkVWRV9PUFRfWFhYWA0KPiA+ Pj4+Pj4gKwkJCQkJCSAqIG1vZGlmaWNhdGlvbiB0eXBlLg0KPiA+Pj4+Pj4gKwkJCQkJCSAqLw0K PiA+Pj4+Pj4gKwkJCQkJCXN0cnVjdCB7DQo+ID4+Pj4+PiArCQkJCQkJCS8qKg0KPiA+Pj4+Pj4g KwkJCQkJCQkgKiBHZW5ldmUNCj4gb3B0aW9uDQo+ID4+Pj4gdHlwZS4NCj4gPj4+Pj4+ICsJCQkJ CQkJICovDQo+ID4+Pj4+PiArCQkJCQkJCXVpbnQ4X3QgdHlwZTsNCj4gPj4+Pj4+ICsJCQkJCQkJ LyoqDQo+ID4+Pj4+PiArCQkJCQkJCSAqIEdlbmV2ZQ0KPiBvcHRpb24NCj4gPj4+PiBjbGFzcy4N Cj4gPj4+Pj4+ICsJCQkJCQkJICovDQo+ID4+Pj4+PiArCQkJCQkJCXJ0ZV9iZTE2X3QNCj4gY2xh c3NfaWQ7DQo+ID4+Pj4+PiArCQkJCQkJfTsNCj4gPj4+Pj4+ICsJCQkJCX07DQo+ID4+Pj4+PiAr CQkJCX07DQo+ID4+Pj4+PiArCQkJCXN0cnVjdCBydGVfZmxvd19pdGVtX2ZsZXhfaGFuZGxlDQo+ ID4+Pj4gKmZsZXhfaGFuZGxlOw0KPiA+Pj4+Pj4gKwkJCX07DQo+ID4+Pj4+PiArCQkJLyoqIE51 bWJlciBvZiBiaXRzIHRvIHNraXAgZnJvbSBhIGZpZWxkLiAqLw0KPiA+Pj4+Pj4gKwkJCXVpbnQz Ml90IG9mZnNldDsNCj4gPj4+Pj4+ICsJCX07DQo+ID4+Pj4+PiArCQkvKioNCj4gPj4+Pj4+ICsJ CSAqIEltbWVkaWF0ZSB2YWx1ZSBmb3IgUlRFX0ZMT1dfRklFTERfVkFMVUUsDQo+IHByZXNlbnRl ZA0KPiA+Pj4+IGluDQo+ID4+Pj4+IHRoZQ0KPiA+Pj4+Pj4gKwkJICogc2FtZSBieXRlIG9yZGVy IGFuZCBsZW5ndGggYXMgaW4gcmVsZXZhbnQNCj4gPj4+PiBydGVfZmxvd19pdGVtX3h4eC4NCj4g Pj4+Pj4+ICsJCSAqIFRoZSBpbW1lZGlhdGUgc291cmNlIGJpdGZpZWxkIG9mZnNldCBpcyBpbmhl cml0ZWQNCj4gZnJvbQ0KPiA+Pj4+Pj4gKwkJICogdGhlIGRlc3RpbmF0aW9uJ3Mgb25lLg0KPiA+ Pj4+Pj4gKwkJICovDQo+ID4+Pj4+PiArCQl1aW50OF90IHZhbHVlWzE2XTsNCj4gPj4+Pj4+ICsJ CS8qKg0KPiA+Pj4+Pj4gKwkJICogTWVtb3J5IGFkZHJlc3MgZm9yIFJURV9GTE9XX0ZJRUxEX1BP SU5URVIsDQo+IG1lbW9yeQ0KPiA+Pj4+PiBsYXlvdXQNCj4gPj4+Pj4+ICsJCSAqIHNob3VsZCBi ZSB0aGUgc2FtZSBhcyBmb3IgcmVsZXZhbnQgZmllbGQgaW4gdGhlDQo+ID4+Pj4+PiArCQkgKiBy dGVfZmxvd19pdGVtX3h4eCBzdHJ1Y3R1cmUuDQo+ID4+Pj4+PiArCQkgKi8NCj4gPj4+Pj4+ICsJ CXZvaWQgKnB2YWx1ZTsNCj4gPj4+Pj4+ICsJfTsNCj4gPj4+Pj4+ICt9Ow0KPiA+Pj4+Pj4gKw0K PiA+Pj4+Pj4NCj4gPj4+Pj4NCj4gPj4+Pj4gSSBhbSBhd2FyZSB0aGF0IHlvdSBhcmUganVzdCBt b3ZpbmcgdGhlIGFib3ZlIHN0cnVjdCwgYnV0IGl0IGlzIG5lc3RlZA0KPiB0b28NCj4gPj4+PiBt dWNoDQo+ID4+Pj4+IHdoaWNoIGlzIG1ha2luZyBpdCBoYXJkIHRvIHJlYWQuDQo+ID4+Pj4+DQo+ ID4+Pj4+IEFzIHlvdSBhcmUgdG91Y2hpbmcgaXQsIGNhbiB3ZSBleHRyYWN0IHNvbWUgc3RydWN0 cyBhbmQgbWFrZSB0aGlzDQo+IHN0cnVjdA0KPiA+PiBsZXNzDQo+ID4+Pj4+IG5lc3RlZCwgd2hh dCBkbyB5b3UgdGhpbms/DQo+ID4+Pj4+IE9mIGNvdXJzZSBpdCBuZWVkcyB0byBiZSBkb25lIGlu IHNlcGFyYXRlIHBhdGNoLCBhcyBhDQo+IHByZXBlcmF0aW9uL2NsZWFuLQ0KPiA+PiB1cA0KPiA+ Pj4+IHBhdGNoDQo+ID4+Pj4+IGJlZm9yZSBtb3ZpbmcgaXQgYXJvdW5kLg0KPiA+Pj4+DQo+ID4+ Pj4gQWdyZWUgdGhlIHN0cnVjdCBtYXliZSBhIGJpdCBuZXN0ZWQuIEJ1dCBub3Qgc3VyZSBob3cg aXQgd2FzIGRpc2N1c3NlZA0KPiA+Pj4+IGJlZm9yZSBkdXJpbmcgdGhlIGxhc3QgbmV3IG1lbWJl ciB3YXMgYWRkZWQuLi4gQE9yaSwgRG8geW91IGhhdmUNCj4gYW55DQo+ID4+IGlkZWENCj4gPj4+ PiBhYm91dCB0aGlzPw0KPiA+Pj4+DQo+ID4+Pg0KPiA+Pj4gQXMgZmFyIGFzIEkgcmVtZW1iZXIs IGl0IHdhcyBuZXZlciBkaXNjdXNzZWQsDQo+ID4+Pg0KPiA+Pj4gSSB0aGluayBmb3IgdGhpcyBz ZXJpZXMgd2Ugc2hvdWxkIGtlZXAgaXQgYXMgaXMsIGFuZCByZXZpc2UgaXQgbGF0ZXIuDQo+ID4+ Pg0KPiA+Pg0KPiA+PiBJZiB5b3UgZG9uJ3Qgd2FudCB0byBtYWtlIHRoaXMgc2V0IG1vcmUgY29t cGxleCB3aXRoIHRoaXMsIHRoYXQgaXMgT0sgYXMNCj4gPj4gbG9uZyBhcyBpdCBpcyBhZGRyZXNz ZWQgYXQgc29tZSBwb2ludC4NCj4gPg0KPiA+IEFncmVlLA0KPiA+IElmIHlvdSBoYXZlIHN1Z2dl c3Rpb25zLCBJIHdpbGwgYmUgbW9yZSB0aGFuIGhhcHB5IHRvIGhlYXIuDQo+ID4NCj4gDQo+IEZv ciB0aGUgc3RydWN0Pw0KPiBTaW1wbHkgZXh0cmFjdGluZyB0aGUgaW5uZXIgc3RydWN0cyBhcyBu YW1lZCBzdHJ1Y3RzIHRvIHJlZHVjZSB0aGUNCj4gbmVzdGVkIHN0cnVjdHMsIGRvZXMgdGhpcyBt YWtlIHNlbnNlPw0KPiANClllcyB0aGF0IG1ha2Ugc2Vuc2UuDQo=