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 3D8B042D07; Tue, 20 Jun 2023 13:11:02 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2C99142C4D; Tue, 20 Jun 2023 13:11:02 +0200 (CEST) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2040.outbound.protection.outlook.com [40.107.236.40]) by mails.dpdk.org (Postfix) with ESMTP id 705584113F; Tue, 20 Jun 2023 13:11:00 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=W5druJadLXOTKm2gcdpjP2+1XI34qHlhqN4WupDQBvyUqoHau3yc/ATgOrJaC1ttCnb0HE4rsPZIdC5ZQS4gvvJW8EHFZcMDJujA8RK6gwgKfBIReCE/Ne6TArb+6leZKusqyCqREMYJCLxEFM68HY6HRAvTIB/kMgxuMRHQzkk2ux5mk0h7awrxxtRuOGChtVremOTZ6VD9CW3ua+pAtj82Whj/7ZQ256bvmTavNjCSPK/RiafQaIoPjAvQ3BEe/rJNLsc2UGKAgZiSs2Is1Iiyg+8my7O8iWdZWTOVIfZ+H3UfUqjxXUiSBvKa8hOsyUFukls5BYpgzRk1xuMOFA== 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=sDsDDSFosLYw69Pg41ZDOw0s4Q7+P9bhHrr79viNEGw=; b=eDZ09u5xJNVcPspCCGjJnVkpYINmCGVuLfmfTT31gPgCQK/Jejs+GH4eOJZCdGzTU2CXmQfh1IFpvfVHIqSuvJZQDewF/4Bid2+Q5dOpFJzChxklPuDxuWlXTHw9eh3KVv+fnWH/RCjMmKxt82+ZZrKDLTtw1X4yYlsfh5fI9fD2BhkIN7n80aS56m6jbflW0OYQ3zBPqwEIR3F16G9L9uWPEetL2UIXMS0hbgYVitXZv77N5SLsg2TfW3rMbGuswVpnC3mSGurfQ0MeoUaskE+QdsVBGtjbBJJyFLv+jt+J9eqG7dUJVlCuurIxXJIobzAyHCP45sS5YUKb7hPJCQ== 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=sDsDDSFosLYw69Pg41ZDOw0s4Q7+P9bhHrr79viNEGw=; b=iW5wjWUdARoqxRbl4qBgtJjaMFWXIuUNCNKe5y7Uq1gA8Ks9qVJ7zFjYc62iVLExqqn3FWqD8ntnX3oKXCEJ4/DXtztXatrP62VD4YpntrVDg2NPDRTMNe1919b3Hog53DkSpoccM31a4Qb/hgIKkxeIUy+RLnx+nZSIsTJYBymGpmIWcdEQ8TZpzXadOBpK4L4scaW367q3yX3m4lDY7l6YFNPfOrVkglChkKQBQlUEv1IvUjAxpEvZKT9P53HK7EWjEm4VqtcVmDg9Mi9XOIOYIpmyMKdKhftXkdjkVQvzOypH3/20bAr1MvtzCcNvni6GvzGiz5tl0me8pOeNNA== Received: from MW2PR12MB4666.namprd12.prod.outlook.com (2603:10b6:302:13::22) by PH7PR12MB6419.namprd12.prod.outlook.com (2603:10b6:510:1fd::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6500.37; Tue, 20 Jun 2023 11:10:58 +0000 Received: from MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::2283:65bb:1559:9dcf]) by MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::2283:65bb:1559:9dcf%4]) with mapi id 15.20.6500.036; Tue, 20 Jun 2023 11:10:58 +0000 From: Ori Kam To: Jerin Jacob , "Zhang, Qi Z" CC: "Dumitrescu, Cristian" , "NBU-Contact-Thomas Monjalon (EXTERNAL)" , "david.marchand@redhat.com" , "Richardson, Bruce" , "jerinj@marvell.com" , "ferruh.yigit@amd.com" , "Mcnamara, John" , "Zhang, Helin" , "techboard@dpdk.org" , "dev@dpdk.org" , Ivan Malov Subject: RE: [RFC] lib/ethdev: introduce table driven APIs Thread-Topic: [RFC] lib/ethdev: introduce table driven APIs Thread-Index: AQHZnNl7QaukXs71V0i1hjoK2jupA6+Kkc0wgACVrICAACq8AIAAEj2AgAAFFwCAABaPAIAAD4YAgABQaoCAAMebAIAEpxGAgACfDgCAAQxUgIAANkmAgAAP3aA= Date: Tue, 20 Jun 2023 11:10:57 +0000 Message-ID: References: <20230612111539.462084-1-qi.z.zhang@intel.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_|PH7PR12MB6419:EE_ x-ms-office365-filtering-correlation-id: 892f04c9-5eee-43bf-8edc-08db717f0618 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: pEovB0i05ptZZNp8FCMa4DIqrAg0Ad32VK548duLgOSCB6XBTa2Xrctg0JtUstgKtD8/7qHlN4367BIqZW/QInpHAE7mB1+i3H7n+7SyKDjkyyyPDMqfoSJhFnMmY1L/Z1aoApV+jbNnZwRYq6xzw7JrHD4+guzoEXJc6zWfzXuzW0TWl1xZWE/Ig1kyvO1fnspxbpVZZPywI2DK7xpOf5MLBTKE+mRVXvI/lGoynePx9D/hrYOdPzl+WF+91GYk2FO9p3U4VH3rg0rD+v2aXZJdpvZvGVT9zFUNncO8EIzGvOK9+iLtD7dZ3mln6oWH3680b5VJNIl+oyDOjrtalLS6awzM4waK+oijIc1m4gNjXHy7wTQ+QfopqXvUccKpoT7MKNs4doXZpMtxjTqduV42e4BWLVphSAh1w+NLgbKdEbAkdHdsCYnBOJbteX6wGLvKpBVuVO5E98fuvBEhspb9c/NJuQ0vTqeZWZDFk8bOFNfPnoDKJUkfznLlR3VkOa0923Eogm2xUJBPxO75UtC6QLmKEH580qcbhLqxEAbE+zU/7P8lVztKJfsJbtYbkXFqV5Z1ESh1UNvaVD8yoo4zY18pXdT0Vl3qAEUaERPnFkzOIOoDqkxGHFzzHJyU 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:(13230028)(4636009)(396003)(136003)(39860400002)(346002)(376002)(366004)(451199021)(122000001)(53546011)(6506007)(38100700002)(33656002)(26005)(83380400001)(55016003)(9686003)(186003)(86362001)(110136005)(54906003)(5660300002)(7416002)(2906002)(8936002)(316002)(8676002)(41300700001)(52536014)(4326008)(76116006)(66556008)(66476007)(66946007)(66446008)(7696005)(71200400001)(64756008)(38070700005)(478600001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NllkRW5SSXpMTkZ2UFM3TDJ0N0NlQUcyaWNEUTJ4YTN2R3RhaTd6bkpxRnpu?= =?utf-8?B?TTVqem8yemJBZHRGOHZCZFBXRHZxSmtOOEVFeEdqV3VralpZK3JPWXlTRkEv?= =?utf-8?B?eFp3TFJWenQ0dk40eGdlWEVQK2IvZ1hES0dQTGFHQ2RkKzRrK3dMRFh3cXQ3?= =?utf-8?B?REJYTTZ6V3YyVE53emNJcE50aDhhZDEzR0FoNkhlSmZnNnlEVWtJZ09RaXpj?= =?utf-8?B?YlYxVGdJWDFTOVQxTVJtUXZzQ3d2dUhiakprNVV3U3hhaktrWXVTU2h5MDRj?= =?utf-8?B?Z1lCaG1SbjIwQTN0dURkQzRwVTNaSTF6Um1xZlluanROQkVlZGgvTHh5R2or?= =?utf-8?B?eEl6eTRHeG9id25MVHBsTGNuRGxlekZjdXFsQUczUkdFWlFTeFB3Y1Y2NEhU?= =?utf-8?B?bUQxQVFHNkJZdStna3VhRDBKMytRTFMrb3hQOExkaGM0RExqeHMvYS9EUmVT?= =?utf-8?B?YkJMWmE2YUNzUktnUys5NWFDN0IwaXdpSkNZdmREMEcrUmtZVW1kbHA5OG5U?= =?utf-8?B?RFJtVmhBWTdVM2dwMVhqRlhZanMyN01KcmRIWFJDeWpUM2FDQ0xqOENQbWJB?= =?utf-8?B?ZDdNeXozKzJ2b1o2Qk9EU2xIR3kxc0loTjR1a0ZVQUlVeFdybVNYaElUQmRD?= =?utf-8?B?cFpVYk5qbnJ4VkRmYWFOMG9MSzhXS2hpZXZUZklnSG8xNEJ3SHplWlVFb2lo?= =?utf-8?B?NEdBUXJpZ3NwaVNXenpTbXdxT1kyNlZYaDdFSDRVanB5OUt3OE13YkRiZXpO?= =?utf-8?B?aTkzck41bXJJSyt1UThRTG0xM05hRkc0eDM2eUlqUDFmR1ZEb3pFN2FBSDVV?= =?utf-8?B?TWF4Z0dhZTEvMGcwVnhRRFV6RWEwa0c4NGpKNlYzNlBNZTVxTll3S05JQ3g4?= =?utf-8?B?NWwxTXcreUtDL0ZrVEtXNTNsQU1ablBEeWtzTHlwYnpGSGRETHhla2tiem56?= =?utf-8?B?QjF3L0xuTUl4R3N0UW1FVkNqSHZWZ1hSMjZRem5KMEZxVDRJdG4zUjhLaXN0?= =?utf-8?B?T3F5N3JvQXZoRGk4QWpjSVNLamlCM1hSN2d0czk1cGw0VTNVNXZJQmlIaTJC?= =?utf-8?B?L21weDh2SnpCNjZsR0RUZUtFMzliVUNHbURGa0J4Z0RkZ2IzaCt2MUltdmZW?= =?utf-8?B?YU1nMTY1d0psRWR0QkpMSzFXNDlZM2laR215OFNkWDVMOU5SMDJuRFh4R2JU?= =?utf-8?B?UGsxMllNVkRBd3hlTkFQSzhvTEZEMnMrZSs2ZStZS0JGeS9nRkZBYW94UzdF?= =?utf-8?B?M1YrZ25NK3ZqRnlVOEdBNFRoWnU3ODIzSHl3QU53NkZhRlZUVGZteE5jd1cx?= =?utf-8?B?aTdSWVFQckROTTJGZ0NSM2xiTExneC9qQm10SzE3ZjV4VTZiYnF4ODFmZVZH?= =?utf-8?B?MTNLK1pFV3dPVkZwSStLd3d2MWJTSG9NMm10Vm4vUUoxNEJlZDNKQWNzYkxu?= =?utf-8?B?WkpwUVkxMklWS0JDcXFMUkdvakp0WU1VbW1MUVB5ZTA2aXlJUjd1WkU4aCtU?= =?utf-8?B?SHJGYlloNEFpU3RkZ2lSVm14V1Nua3BaczJvVFVRaXZZN3pxWnJ0cExpcXVR?= =?utf-8?B?TUV6NDN4amE0S2dQd3FWa3cvdWVpWmFVVnBJb0dha3JuSERGSmxMY0g1dlQ1?= =?utf-8?B?cGI5bmtXUStBVWgwa050anRTc055dDdoVXVBQW9UM3FjcGhFYjBWL1dxd2Fh?= =?utf-8?B?eDk1OG1WVHAxQlZMNGx4dGl6YS9wS3lXeVRyemp3WHZraVdQOVB1bThtcGI2?= =?utf-8?B?U0hIYmpmUVBvZzM3STllY0JRaHpNQ1dobDRKbFFxMGkvQ21lZ0NHZDR0Mmk3?= =?utf-8?B?TVJyVENBVk45a0hOR0xuWDVLQStTc0F2b3pkY3hxcnhwUG4wWnJJeWZ6a0ZE?= =?utf-8?B?ekdCU243MjlDWFFxTEVvY3FUODFldEFPbDlaYVBxNThxNU5VZVl6UDFGMGZL?= =?utf-8?B?MDJvU2s2VklVTzJwMmozeFJwMjN4M1MrcjZ4QUJxSXBwMTZNcW1uMkllUHlF?= =?utf-8?B?UGlwWER5S0dsZGJKcTR0T3VaQXhVWHNHd0N0bjlob0k0QTd1ejhFTFBCeGZF?= =?utf-8?B?S0lGVUJuQlAwek9Ia21Wa0hJR0NieE9VTG5YeDlia1IxUVlVSVp1N3hRVHl2?= =?utf-8?Q?vAas=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: 892f04c9-5eee-43bf-8edc-08db717f0618 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Jun 2023 11:10:57.9853 (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: FY9OsLU2oMyNvjvH0JRkZ3Ef9FIvIq3u8sV9NhOHPT20AIgVRxzAfTwZg1mREW6zBVCuKdgDqqthphzPRikuFw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6419 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 SGkNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKZXJpbiBKYWNvYiA8 amVyaW5qYWNvYmtAZ21haWwuY29tPg0KPiBTZW50OiBUdWVzZGF5LCBKdW5lIDIwLCAyMDIzIDg6 MDcgQU0NCj4gDQo+IE9uIFR1ZSwgSnVuIDIwLCAyMDIzIGF0IDc6MjLigK9BTSBaaGFuZywgUWkg WiA8cWkuei56aGFuZ0BpbnRlbC5jb20+IHdyb3RlOg0KPiA+DQo+ID4NCj4gPg0KPiA+ID4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IEplcmluIEphY29iIDxqZXJpbmph Y29ia0BnbWFpbC5jb20+DQo+ID4gPiBTZW50OiBNb25kYXksIEp1bmUgMTksIDIwMjMgNTo1MiBQ TQ0KPiA+ID4gVG86IFpoYW5nLCBRaSBaIDxxaS56LnpoYW5nQGludGVsLmNvbT4NCj4gPiA+IENj OiBEdW1pdHJlc2N1LCBDcmlzdGlhbiA8Y3Jpc3RpYW4uZHVtaXRyZXNjdUBpbnRlbC5jb20+OyBP cmkgS2FtDQo+ID4gPiA8b3Jpa2FAbnZpZGlhLmNvbT47IE5CVS1Db250YWN0LVRob21hcyBNb25q YWxvbiAoRVhURVJOQUwpDQo+ID4gPiA8dGhvbWFzQG1vbmphbG9uLm5ldD47IGRhdmlkLm1hcmNo YW5kQHJlZGhhdC5jb207IFJpY2hhcmRzb24sDQo+IEJydWNlDQo+ID4gPiA8YnJ1Y2UucmljaGFy ZHNvbkBpbnRlbC5jb20+OyBqZXJpbmpAbWFydmVsbC5jb207DQo+IGZlcnJ1aC55aWdpdEBhbWQu Y29tOw0KPiA+ID4gTWNuYW1hcmEsIEpvaG4gPGpvaG4ubWNuYW1hcmFAaW50ZWwuY29tPjsgWmhh bmcsIEhlbGluDQo+ID4gPiA8aGVsaW4uemhhbmdAaW50ZWwuY29tPjsgdGVjaGJvYXJkQGRwZGsu b3JnOyBkZXZAZHBkay5vcmc7IEl2YW4NCj4gTWFsb3YNCj4gPiA+IDxpdmFuLm1hbG92QGFya25l dHdvcmtzLmFtPg0KPiA+ID4gU3ViamVjdDogUmU6IFtSRkNdIGxpYi9ldGhkZXY6IGludHJvZHVj ZSB0YWJsZSBkcml2ZW4gQVBJcw0KPiA+ID4NCj4gPiA+IE9uIE1vbiwgSnVuIDE5LCAyMDIzIGF0 IDU6NTPigK9BTSBaaGFuZywgUWkgWiA8cWkuei56aGFuZ0BpbnRlbC5jb20+DQo+IHdyb3RlOg0K PiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQo+ID4gPiA+ID4gRnJvbTogSmVyaW4gSmFjb2IgPGplcmluamFjb2JrQGdtYWlsLmNv bT4NCj4gPiA+ID4gPiBTZW50OiBGcmlkYXksIEp1bmUgMTYsIDIwMjMgOToyMCBBTQ0KPiA+ID4g PiA+IFRvOiBaaGFuZywgUWkgWiA8cWkuei56aGFuZ0BpbnRlbC5jb20+OyBEdW1pdHJlc2N1LCBD cmlzdGlhbg0KPiA+ID4gPiA+IDxjcmlzdGlhbi5kdW1pdHJlc2N1QGludGVsLmNvbT4NCj4gPiA+ ID4gPiBDYzogT3JpIEthbSA8b3Jpa2FAbnZpZGlhLmNvbT47IE5CVS1Db250YWN0LVRob21hcyBN b25qYWxvbg0KPiA+ID4gPiA+IChFWFRFUk5BTCkgPHRob21hc0Btb25qYWxvbi5uZXQ+OyBkYXZp ZC5tYXJjaGFuZEByZWRoYXQuY29tOw0KPiA+ID4gPiA+IFJpY2hhcmRzb24sIEJydWNlIDxicnVj ZS5yaWNoYXJkc29uQGludGVsLmNvbT47IGplcmluakBtYXJ2ZWxsLmNvbTsNCj4gPiA+ID4gPiBm ZXJydWgueWlnaXRAYW1kLmNvbTsgTWNuYW1hcmEsIEpvaG4gPGpvaG4ubWNuYW1hcmFAaW50ZWwu Y29tPjsNCj4gPiA+ID4gPiBaaGFuZywgSGVsaW4gPGhlbGluLnpoYW5nQGludGVsLmNvbT47IHRl Y2hib2FyZEBkcGRrLm9yZzsNCj4gPiA+ID4gPiBkZXZAZHBkay5vcmc7IEl2YW4gTWFsb3YgPGl2 YW4ubWFsb3ZAYXJrbmV0d29ya3MuYW0+DQo+ID4gPiA+ID4gU3ViamVjdDogUmU6IFtSRkNdIGxp Yi9ldGhkZXY6IGludHJvZHVjZSB0YWJsZSBkcml2ZW4gQVBJcw0KPiA+ID4gPiA+DQo+IA0KPiA+ ID4NCj4gPiA+ID4NCj4gPiA+ID4gSG93ZXZlciwgdGhlIHF1ZXN0aW9uIGFyaXNlcyByZWdhcmRp bmcgaG93IHRvIGhhbmRsZSB2ZW5kb3Itc3BlY2lmaWMNCj4gZGF0YSwNCj4gPiA+IHdoaWNoIGFs c28gY2FuIGJlIHBhcnQgb2YgdGhlIHRhYmxlIC8gYWN0aW9uIGtleSBhbmQgY291bGQgcG90ZW50 aWFsbHkgYmUNCj4gPiA+IG1hcHBlZCB0byBlaXRoZXIgcnRlX2Zsb3dfaXRlbV90YWcgb3IgcnRl X2Zsb3dfaXRlbV9tZXRhZGF0YS4gSSdtDQo+ID4gPiB1bmNlcnRhaW4gYWJvdXQgaG93IHRoZSBQ NC1EUERLIGNvbXBpbGVyIGNhbiBtYW5hZ2UgdGhpcyBhc3BlY3QuDQo+IFBlcmhhcHMNCj4gPiA+ IHRoaXMgcGFydGljdWxhciBhc3BlY3Qgc2hvdWxkIGJlIGFkZHJlc3NlZCBieSBlYWNoIHZlbmRv cidzIGluZGl2aWR1YWwNCj4gPiA+IGJhY2tlbmQgY29tcGlsZXIsIHdoaWxlIHdlIGZvY3VzIG9u IGRlZmluaW5nIHRoZSBzcGVjaWZpY2F0aW9ucyBmb3IgdGhlDQo+ID4gPiBvdXRwdXQgYW5kIHBy b3ZpZGluZyB0aGUgY29tbW9uIGNvbXBvbmVudHMgZm9yIHBhcnNlciBhbmFseXNpcy4NCj4gPiA+ DQo+ID4gPiBJZiB3ZSB0YWtlIHRoZSBjb21waWxlciBwYXRoLCBXaHkgd2UgbmVlZCB2ZW5kb3Ig c3BlY2lmaWMgZGF0YT8NCj4gPg0KPiA+IExldCdzIGNvbnNpZGVyIHRoZSBmb2xsb3dpbmcgc2Nl bmFyaW86DQo+ID4NCj4gPiBBc3N1bWUgdGhhdCBhIGhhcmR3YXJlIGRldmljZSBjb250YWlucyBt ZXRhZGF0YSB0aGF0IGNhbiBiZSBwYXNzZWQNCj4gYmV0d2VlbiBkaWZmZXJlbnQgc3RhZ2VzIG9m IGEgcGlwZWxpbmUuDQo+ID4NCj4gPiBGb3IgaW5zdGFuY2UsIGluIHN0YWdlIEEsIGEgcnVsZSBp cyBtYXRjaGVkLCBhbmQgdGhlIG1ldGFkYXRhIGlzIHNldC4gSW4gc3RhZ2UNCj4gQiwgdGhpcyBt ZXRhZGF0YSBpcyB1c2VkIGFzIGEgbWF0Y2gga2V5Lg0KPiA+DQo+ID4gVG8gZGVzaWduIHRoZSBB UEkgY2FsbHMgZm9yIHRoZSBhYm92ZSBzaXR1YXRpb24gdXNpbmcgcnRlX2Zsb3csIG15DQo+IHVu ZGVyc3RhbmRpbmcgaXMgdGhhdCB3ZSBuZWVkIHRvIG1hcCBhIHJ0ZV9mbG93X2l0ZW1fdGFnIG9y DQo+IHJ0ZV9mbG93X2l0ZW1fbWV0YWRhdGEgdG8gdGhlIGNvcnJlc3BvbmRpbmcgbWV0YWRhdGEg cG9ydGlvbiAoaW5jbHVkaW5nDQo+IG9mZnNldCBhbmQgc2l6ZSkuDQo+ID4gVGhpcyB3YXksIHRo ZSBkcml2ZXIgY2FuIHVuZGVyc3RhbmQgaG93IHRvIGNvbmZpZ3VyZSB0aGUgaGFyZHdhcmUNCj4g YWNjb3JkaW5nbHkuDQo+ID4NCj4gPiBJbiBQNCwgd2UgZGVmaW5lIGRhdGEgc3RydWN0dXJlcyB0 byBhYnN0cmFjdCB0aGUgbWV0YWRhdGEsIGFuZCB0aGUgdmVuZGVyDQo+IHNwZWNpZmljLWJhY2tl bmQgY29tcGlsZXIgZGV0ZXJtaW5lcyB0aGUgYXJyYW5nZW1lbnQgb2YgdGhlIG1ldGFkYXRhDQo+ IHNwYWNlLg0KPiA+DQo+ID4gSG93ZXZlciwgaW4gb3VyIGNhc2UsIGhvdyBkb2VzIHRoZSBwcm9w b3NlZCBjb21waWxlciBlc3RhYmxpc2ggdGhlDQo+IG1hcHBpbmcgZnJvbSB0aGUgUDQgbWV0YWRh dGEga2V5IHRvIHJ0ZV9mbG93IHdpdGhvdXQgc3VwcG9ydCBmcm9tIHRoZQ0KPiBiYWNrZW5kIGNv bXBpbGVyPw0KPiANCj4gWWVzLiBXZSBuZWVkIHRvIGNoYW5nZSB0aGUgYmFja2VuZCBjb21waWxl ciB0byB1bmRlcnN0YW5kIHRoZSBydGVfZmxvdw0KPiBtYXBwaW5nIHRvIHA0IHRvIGF2b2lkIGFu eSB0cmFuc2xhdGlvbiBjb3N0Lg0KKzENCkkgdGhpbmsgdGhlIGlkZWEgaXMgdGhhdCB0aGUgY29t cGxpZXIgd2lsbCBjb252ZXJ0IHRvIHJ0ZV9mbG93IGFuZCBzdXBwbHkgc29tZQ0KbWFwcGluZyBm aWxlIHNvIHdoZW4gYXBwbGljYXRpb24gdXNlcyBzb21lIG5hbWUgaXQgd2lsbCBiZSB0cmFuc2xh dGVkIHRvIHRoZSBjb3JyZWN0DQpwcmVjb25maWd1cmVkIHJ0ZV9mbG93IGFjdGlvbg0KDQo=