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 9055A42CFF; Tue, 20 Jun 2023 03:52:51 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1C1EA4068E; Tue, 20 Jun 2023 03:52:51 +0200 (CEST) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mails.dpdk.org (Postfix) with ESMTP id C2FF6400D6; Tue, 20 Jun 2023 03:52:48 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1687225969; x=1718761969; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=V7yWNlZlCQ0+zZ9fuubpyFULt0NdOQgDBfnax+iy2EM=; b=Ta/atky6TyvOZTMgZafsbppfb5x6oaVXSK7vrJYu2Da79FQr7kpEIqMa Uw/XAetE/0yG2PfOXyV0iDoxWM5FzEjojrAuQgNeIx2uT8XkjNCKjOsHv bibtFM1Zfte3oOv3gluheO7aekBUUl6fyXUmXWWt/Ob5sk3KSTaTUw8kw hAc8BLydkeCpYOtNcp4RA22zgnGLtYC1HVxolNfnXqtBAM6Fdgt+yJ21w Puc3Qj15ey5Ep9wT8j08KNGHcafEXBLn7TEIMr1c0Adpk0UxvlGEYmQFr 8wZvWEE2wp5j6lpOoNNJmXAA4T1ZX8rtbrCYjvUshkad80At3lVHFGfKZ Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10746"; a="425695358" X-IronPort-AV: E=Sophos;i="6.00,255,1681196400"; d="scan'208";a="425695358" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Jun 2023 18:52:47 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10746"; a="1044058181" X-IronPort-AV: E=Sophos;i="6.00,255,1681196400"; d="scan'208";a="1044058181" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga005.fm.intel.com with ESMTP; 19 Jun 2023 18:52:47 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Mon, 19 Jun 2023 18:52:46 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Mon, 19 Jun 2023 18:52:46 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.49) 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.2507.23; Mon, 19 Jun 2023 18:52:46 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CR0bg7LnzvC5SPeyYuk5ct6ydiMQj3+YHHRHUWDJJWUvEDZGMksFLHPFPM23HE4SS9GBBuzUpqsxbd1DkzHQ6ImTSN0E9awVFgAS/Zboa3xP3xPejKsFB4R9QnyYkZ65kz+lco0DNfHU5j43/xgD8HfjBxHvR1hZd//YxR6oj43AyhPptZzFerEs+N0AqkhI+nvxgXp91j75+CeJFfXVq0vnm9bV2CKrxZBja35vZzw3XGf3ptCvkwZRyWppWJDFnOmNpkLrGNt+xaAZoanCuhLJFet0hevIvRuvhMDik9jlJBSHPOViOThXMUykf+fyl0LB9Gwumjz40CQq1SSFPQ== 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=V7yWNlZlCQ0+zZ9fuubpyFULt0NdOQgDBfnax+iy2EM=; b=CckLtbSE2v1KpGMgOulmvsABANf7wJrzMPudoUf4O5a3bvTFBjbxH9gRH5KZrUw/c7jb8E41KUO3cVweCH+279CYsLTta29DR7CnraOyhg5v/y7DKHOjyqpkp3vnh7DrWfOTcU2Hez2JZu/smb84FZMk5lqRRhKcFeNSik/388/PywsSSOCG7xBtAfz1ehRpupMocznEdEVaIPKuQ6/UQ1Jt7VxIcossqrP2AogADQnssSUWLqbp5GkJ2Y3wXGu9Q+ay0cZoNUwFvHKf6uUJM3K2REs0KYweskMHTOZlwwL7UgHI/0EO4JYSr43n0S/sddKP5hFpLSZoBd6jGFUwfg== 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 Received: from DM4PR11MB5994.namprd11.prod.outlook.com (2603:10b6:8:5d::20) by DS0PR11MB7734.namprd11.prod.outlook.com (2603:10b6:8:df::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.33; Tue, 20 Jun 2023 01:52:39 +0000 Received: from DM4PR11MB5994.namprd11.prod.outlook.com ([fe80::e570:d9a7:df1b:1589]) by DM4PR11MB5994.namprd11.prod.outlook.com ([fe80::e570:d9a7:df1b:1589%6]) with mapi id 15.20.6500.036; Tue, 20 Jun 2023 01:52:39 +0000 From: "Zhang, Qi Z" To: Jerin Jacob CC: "Dumitrescu, Cristian" , Ori Kam , "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: AQHZnNl/YukvwyUJXUylZdiSr9fMFq+Kou2AgABcbMCAAFLcAIAACM5AgAAOhgCAAAXmIIAAIC8AgAA/bTCAANiYAIAEnf1AgACoIgCAAQfvAA== Date: Tue, 20 Jun 2023 01:52:39 +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=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM4PR11MB5994:EE_|DS0PR11MB7734:EE_ x-ms-office365-filtering-correlation-id: bd0413e8-a3e6-4e22-b04a-08db7131075c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: h/6fy2YezOB5qeVx8E/6tuTiGPWwdVrxkBCv6YI2vwL8Fs3HznvS1MC2VVkFdrUcII3SBqth8Lm00nPNvtIRYrF2Ozh+xgRHh/22BjL7l+UFU4L/3lVXPdZ9jA9Rv3xHYDtKCvoWKYuiFinfhI8nGMC2uY6IVSrFywVM36RMIv3PtUZISRriUblsd3p3LDcSIQ2gfgD7kkLe+I+9qY7hdrkigjPf/CAbnGsbl9VAdl/wHgaVMjYQW8mqWC5NqCechpGdnMp6BcMfS9k8lZTFDwdC8PCbMB8OY2PxtNShZ4+HxYpgCOaqMH6Zw9aB3ubDTiFrngSNThFj7eS0MS0JsERmaBWq8pRxIAlCd+oBQvFQXxwnBJ+SVZQHMyfXwsHlPJFNilabVTUx4aWQV08cmkLiCNeZvX9dGaMVKbjQQgRASCcYJbd5ORelV1fkJ5B2KWrpEQ7kAa0icvjdLMk2Et0MU+WLr18PEY15QIojtpfInN4OHwON0rJbJVvq/AYWuCGjFZ93lJhMJqOUpsEPcy7pI8K5Il7H9Ct5DiJOAR5vr2+HTMls1o01AJNqX2hxYXYhrrgkJVhZsORwG4SZk09ptaJ/29bS+R4pddQfNbk7Td6xijjBFxnXcjCWL9bRNuU93eIwcKNK9rdiEwNxtA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR11MB5994.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(396003)(366004)(346002)(376002)(39860400002)(136003)(451199021)(8936002)(2906002)(26005)(9686003)(83380400001)(82960400001)(966005)(6506007)(53546011)(122000001)(186003)(55016003)(41300700001)(5660300002)(33656002)(52536014)(8676002)(71200400001)(316002)(76116006)(66556008)(66476007)(7696005)(66946007)(478600001)(6916009)(4326008)(66446008)(38070700005)(64756008)(86362001)(38100700002)(54906003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UDRlZy9wQnUxMTc5WDVBYVVEenpIR0t0dEdJRVVIQnJYQ2cxNHhJWDdOaWhF?= =?utf-8?B?ZnlYaFk0SFBHN0Y0bXdyZnNFdUZscjYvNkl4Wjh5d0J5Q3NhV0xYS3hpNVda?= =?utf-8?B?S1JJUm5aNnB0bkhjYVlXc3Q0bzVnNVMyRnBvMUlmRVlYNWlSM3VCWEl2djN4?= =?utf-8?B?Z3NwUmxVR1BGbzdxS3pBcFBhMEpFelVQZmZ2UW1UWGhKQzBObzUwM08rL1VN?= =?utf-8?B?bExremlGdzN6azdSWlBqL1dIaTRSNkU4eEV4SnFqT2UybXVrUVlQeUVTSkZz?= =?utf-8?B?Y29TNFc3WDhYaUdweTYzenJIWXIyWG5aclozNlVEbGxURFc2aG9qblRibDEy?= =?utf-8?B?dXZzbGRPRzdTd0NUakZRenBKa3NHUlUwTzNpL3YzenVmb1N4SU53S3prazI4?= =?utf-8?B?Q3pBYnpRaDBGeWZzT3doK3J3RlczSHhBUWg0SzIrZDdyV1poSTlGTS9tY2Fy?= =?utf-8?B?b05uQ3BCRWJwVVQ0S1JkanpTY05nN0szdlc1ZEpGdFY1cGtXdEwzWG8xaTZi?= =?utf-8?B?QUVlS2tRY0xsWU4zMHdsQiszdVJibG9FRTJyTUxpZTAwUG9vSXpJQU1MMnVr?= =?utf-8?B?cURwNnlrWTBaK3lRWW13TnczUWhBSUZ3SW1qejZMYkF1eHFGT0dIaFhVVktv?= =?utf-8?B?dmR3Mi9sYTJETlRXdklqRkRVYXR5SDFaWDB5ZXdqdmRGNXI4eUZFT0JBVW1L?= =?utf-8?B?clRSY0RqRTZUNWRhL2VGUjl2cUgyc2wyRmpvNS9pemhXVUk1anpQaWlIZGJ6?= =?utf-8?B?Mk1NTU43WndmQSsvdkNjQTZxeWUvQlJjZVI4YWhhZ3R6RVlmY2ZEcEczSE10?= =?utf-8?B?QjdEME9nTzg2SmlYZE9xdjY2Zjl1WjdmdThzd0RMeVNONWFJbHQwb0FERW1h?= =?utf-8?B?MzZoNW9paGlHZGs1VXRQK3hBMk56bk44Vk5MK1B4N1M0aDZ3SmhVWHVrQVpw?= =?utf-8?B?Qmo5N3NQMG1DSUpLNUQwdjJvVitQOUZoTkUrUkdCY1lRRUxtSGlRUnF3RWVn?= =?utf-8?B?RHhGeXJaOGU5QVNEdzQ3VkNtaEFlR1RtMGZlcUJSRk1TLy9iQi9kUGRMSWNU?= =?utf-8?B?dWNvQWhLUkhnK2xCMXhPZlpMZ2JValZnOUQrMUhCc2xqcXRJY3Y2eTRxVmdx?= =?utf-8?B?V2dDL0t0K2VnZm1EdG9Lc0NjbWtWdXN0andnS2xYSEU2cEVSZFNsT0J0VHVG?= =?utf-8?B?Q2hvNmV0cXdpSkV2bkF0Z3lITGV3UzhSTnVwNE9jc3UrTGlVaHR6b204aFdh?= =?utf-8?B?Z0RCbi9ERGxGNVNOSXUyYW1RUG5nMGc2R0M2eXZ5d1JxVGl2cm41MWwzWTZz?= =?utf-8?B?MEdSUE5yazRMMEpQRURuWUROb3Y0UGdFUFJZaHpDQ1NyUFY0L1RVeU9KVExF?= =?utf-8?B?UkRuTGtoSHBiWHpOVUluR1dRQXpBeDYyOFVaY3MvYWtsaGlUQlV5NkEwaXNw?= =?utf-8?B?enFwanBGWUZxNzlmYXkzQUsrLzU4UE4xQjFFd2poc2JwVDlFR013T2RoQUZM?= =?utf-8?B?V1Fkdld2YnNhS2JwSjROWUExVDJhd3ZEMEtqUmhOb3IyUVFSbC9MV3RybVRF?= =?utf-8?B?cWZQdTZ5alNVWVMwb1Y3K3lnb1pVeDV2MUhjVjhKREl1cUNhTFAyM0MvYXhK?= =?utf-8?B?Vk5rSzhsOWIxZWJhdGt0SDhOV3Y5UVJsbVp5L2pETmFFMTlSL0ZQUnJNZXdi?= =?utf-8?B?M3BRazk1ZkNWKzJjZk9xR0RKNEI3enEzWDM5OWV1L3NYbDIwTkMrYkpOdlY2?= =?utf-8?B?MHVrQS9BVTRvUFliUFRSMmxwcm1UN1N2NHRzUExibGh1aEEwQUc0UUVkanE2?= =?utf-8?B?UCt5RFR1d2dqS1dORnlOMUQ5RkVNbXJXK1NPWDBLR1VQak9BMTlsUEhMOG5x?= =?utf-8?B?SU51SWFwTzNIT3FORlo3YlVHbWVzREhLSnlHVmtrN2lWcXhQYVcvcVNaVENx?= =?utf-8?B?NXU1RDNra1FEc3F0SWFOOTR4Qjlub2NsQm1NczJGejBOUmVYUHNHSWVUZXVH?= =?utf-8?B?QVA2NkRndnFGY3dqMVhib1pGeXFPT0tKMzN6U1d2eWlKNzdFTHZZaHFuZFU4?= =?utf-8?B?Mld4ZmczSEdwdHR2bElqeEJsWXRZU1lvdVhneW9RWDVwR1l4dWRjRCs2SjF3?= =?utf-8?Q?kLMIeu3Q3jsstaLG19TFpmWBe?= 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: DM4PR11MB5994.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: bd0413e8-a3e6-4e22-b04a-08db7131075c X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Jun 2023 01:52:39.3330 (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: WAzvSKHGTewAJuYUteXui0oK60Bfo++aFM5dKjM4LPE8x6KnIKHqyjzeC2mFzPtIXk7KqgHBZYSTLGrYtyYKJw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR11MB7734 X-OriginatorOrg: intel.com 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 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSmVyaW4gSmFjb2IgPGpl cmluamFjb2JrQGdtYWlsLmNvbT4NCj4gU2VudDogTW9uZGF5LCBKdW5lIDE5LCAyMDIzIDU6NTIg UE0NCj4gVG86IFpoYW5nLCBRaSBaIDxxaS56LnpoYW5nQGludGVsLmNvbT4NCj4gQ2M6IER1bWl0 cmVzY3UsIENyaXN0aWFuIDxjcmlzdGlhbi5kdW1pdHJlc2N1QGludGVsLmNvbT47IE9yaSBLYW0N Cj4gPG9yaWthQG52aWRpYS5jb20+OyBOQlUtQ29udGFjdC1UaG9tYXMgTW9uamFsb24gKEVYVEVS TkFMKQ0KPiA8dGhvbWFzQG1vbmphbG9uLm5ldD47IGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5jb207 IFJpY2hhcmRzb24sIEJydWNlDQo+IDxicnVjZS5yaWNoYXJkc29uQGludGVsLmNvbT47IGplcmlu akBtYXJ2ZWxsLmNvbTsgZmVycnVoLnlpZ2l0QGFtZC5jb207DQo+IE1jbmFtYXJhLCBKb2huIDxq b2huLm1jbmFtYXJhQGludGVsLmNvbT47IFpoYW5nLCBIZWxpbg0KPiA8aGVsaW4uemhhbmdAaW50 ZWwuY29tPjsgdGVjaGJvYXJkQGRwZGsub3JnOyBkZXZAZHBkay5vcmc7IEl2YW4gTWFsb3YNCj4g PGl2YW4ubWFsb3ZAYXJrbmV0d29ya3MuYW0+DQo+IFN1YmplY3Q6IFJlOiBbUkZDXSBsaWIvZXRo ZGV2OiBpbnRyb2R1Y2UgdGFibGUgZHJpdmVuIEFQSXMNCj4gDQo+IE9uIE1vbiwgSnVuIDE5LCAy MDIzIGF0IDU6NTPigK9BTSBaaGFuZywgUWkgWiA8cWkuei56aGFuZ0BpbnRlbC5jb20+IHdyb3Rl Og0KPiA+DQo+ID4NCj4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ IEZyb206IEplcmluIEphY29iIDxqZXJpbmphY29ia0BnbWFpbC5jb20+DQo+ID4gPiBTZW50OiBG cmlkYXksIEp1bmUgMTYsIDIwMjMgOToyMCBBTQ0KPiA+ID4gVG86IFpoYW5nLCBRaSBaIDxxaS56 LnpoYW5nQGludGVsLmNvbT47IER1bWl0cmVzY3UsIENyaXN0aWFuDQo+ID4gPiA8Y3Jpc3RpYW4u ZHVtaXRyZXNjdUBpbnRlbC5jb20+DQo+ID4gPiBDYzogT3JpIEthbSA8b3Jpa2FAbnZpZGlhLmNv bT47IE5CVS1Db250YWN0LVRob21hcyBNb25qYWxvbg0KPiA+ID4gKEVYVEVSTkFMKSA8dGhvbWFz QG1vbmphbG9uLm5ldD47IGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5jb207DQo+ID4gPiBSaWNoYXJk c29uLCBCcnVjZSA8YnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb20+OyBqZXJpbmpAbWFydmVsbC5j b207DQo+ID4gPiBmZXJydWgueWlnaXRAYW1kLmNvbTsgTWNuYW1hcmEsIEpvaG4gPGpvaG4ubWNu YW1hcmFAaW50ZWwuY29tPjsNCj4gPiA+IFpoYW5nLCBIZWxpbiA8aGVsaW4uemhhbmdAaW50ZWwu Y29tPjsgdGVjaGJvYXJkQGRwZGsub3JnOw0KPiA+ID4gZGV2QGRwZGsub3JnOyBJdmFuIE1hbG92 IDxpdmFuLm1hbG92QGFya25ldHdvcmtzLmFtPg0KPiA+ID4gU3ViamVjdDogUmU6IFtSRkNdIGxp Yi9ldGhkZXY6IGludHJvZHVjZSB0YWJsZSBkcml2ZW4gQVBJcw0KPiA+ID4NCj4gPiA+IE9uIFRo dSwgSnVuIDE1LCAyMDIzIGF0IDc6MzbigK9QTSBaaGFuZywgUWkgWiA8cWkuei56aGFuZ0BpbnRl bC5jb20+DQo+IHdyb3RlOg0KPiA+ID4gPg0KPiA+ID4NCj4gPiA+ID4gPiA+IElmIHdlIGFzc3Vt ZSB0aGF0IHRoZSBhcHBsaWNhdGlvbiBpcyBub3QgUDQtYXdhcmUsIGl0IHdpbGwNCj4gPiA+ID4g PiA+IGNvbnN1bWUgZXhpc3RpbmcNCj4gPiA+ID4gPiBydGVfZmxvdyBBUEkgZm9yIGZsb3cgb2Zm bG9hZGluZy4gSW4gdGhpcyBjYXNlLCBhbGwgd2UgbmVlZCB0bw0KPiA+ID4gPiA+IGRvIGlzIGlt cGxlbWVudCBpdCBpbiB0aGUgUE1ELCB3aGljaCB3aWxsIGJlIGEgaGlnaGx5DQo+ID4gPiA+ID4g aGFyZHdhcmUtc3BlY2lmaWMgdGFzay4gRG8geW91IHByb3Bvc2UgZ2VuZXJhbGl6aW5nIHRoaXMg Y29tbW9uDQo+IHBhcnQ/DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gT24gdGhlIG90aGVyIGhh bmQsIGlmIHRoZSBhcHBsaWNhdGlvbiBpcyBQNC1hd2FyZSwgd2UgY2FuDQo+ID4gPiA+ID4gPiBh c3N1bWUgdGhhdA0KPiA+ID4gPiA+IHRoZXJlIHdvbid0IGJlIGEgbmVlZCBmb3IgdHJhbnNsYXRp b24gYmV0d2VlbiBQNCB0b2tlbnMgYW5kDQo+ID4gPiA+ID4gcnRlX2Zsb3cgcHJvdG9jb2xzIGlu IHRoZSBQTUQuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBJIGFncmVlLCBUcmFuc2xhdGlvbiBpcyBC QUQuIFRoZXJlIGFyZSB0d28gZWxlbWVudHMgdG8gdGhhdC4NCj4gPiA+ID4gPiAxKWlmIGl0IGlz IHA0IGF3YXJlIGFwcGxpY2F0aW9uLCB3aHkgYm90aGVyIHdpdGggRFBESyBhYnN0cmFjdGlvbj8N Cj4gPiA+ID4gPiAyKUNhbiB3ZSB1c2UgY29tcGlsZXIgdGVjaG5pcXVlcyB0byBhdm9pZCB0aGUg Y29zdCBvZg0KPiA+ID4gPiA+IHRyYW5zbGF0aW9uIGlmDQo+ID4gPiA+ID4gUDQtIGF3YXJlIHBh dGggaXMgbmVlZGVkIGluIERQREsuIFJhdGhlciB0aGFuIGNyZWF0aW5nIHlldA0KPiA+ID4gPiA+ IGFub3RoZXIgbGlicmFyeS4gSW4gdGhpcyBjb250ZXh0LCB0aGF0IHdvdWxkIHRyYW5zbGF0ZSB0 byBzb21lDQo+ID4gPiA+ID4gb2YgeW91ciBjb21waWxlciBhbmQgRlcgd29yayBtYWtpbmcgYXMg Z2VuZXJpYyBzbyB0aGF0IF9hbnlfDQo+ID4gPiA+ID4gb3RoZXIgcnRlX2Zsb3cgYmFzZWQgZHJp dmVyIGNhbiB1c2UgYW5kIGltcHJvdmUgaXQuDQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IE9r LCBJIHdvdWxkIGxpa2UgdG8gZ2FpbiBhIGJldHRlciB1bmRlcnN0YW5kaW5nLiBCZWxvdyBpcyBt eQ0KPiA+ID4gPiBjdXJyZW50DQo+ID4gPiB1bmRlcnN0YW5kaW5nOg0KPiA+ID4gPg0KPiA+ID4g PiBUaGVyZSBhcmUgbm8gcGxhbnMgdG8gaW50cm9kdWNlIGFueSBuZXcgQVBJIGZyb20gRFBESy4g SG93ZXZlciwNCj4gPiA+ID4geW91cg0KPiA+ID4gcHJvcG9zYWwgc3VnZ2VzdHMgdGhlIGNyZWF0 aW9uIG9mIGEgdG9vbCwgc3VjaCBhcyBhIGNvbXBpbGVyLCB3aGljaA0KPiA+ID4gd291bGQgYXNz aXN0IGluIGdlbmVyYXRpbmcgYSB0cmFuc2xhdGlvbiBsYXllciBmcm9tIFA0IHRhYmxlL2FjdGlv bnMNCj4gPiA+IHRvIHJ0ZV9mbG93IGZvciB1c2VyIGFwcGxpY2F0aW9uIGxpa2UgcDQgcnVudGlt ZSBiYWNrZW5kIHRoYXQgYmFzZWQgb24NCj4gRFBESy4NCj4gPiA+ID4NCj4gPiA+ID4gQ291bGQg eW91IHByb3ZpZGUgbW9yZSBkZXRhaWxzIGFib3V0IHRoZSBkZXNpZ24/IFNwZWNpZmljYWxseSwg SQ0KPiA+ID4gPiB3b3VsZCBsaWtlDQo+ID4gPiB0byBrbm93IHdoYXQgdGhlIGlucHV0IGZvciB0 aGUgY29tcGlsZXIgaXMgYW5kIHdobyBpcyByZXNwb25zaWJsZQ0KPiA+ID4gZm9yIGdlbmVyYXRp bmcgdGhhdCBpbnB1dCwgYXMgd2VsbCBhcyB0aGUgcHJvY2VzcyBpbnZvbHZlZC4NCj4gPiA+ID4N Cj4gPiA+ID4gSSBhcG9sb2dpemUgaWYgSSBoYXZlIG5vdCBncmFzcGVkIHRoZSBjb21wbGV0ZSBw aWN0dXJlLCBidXQgSQ0KPiA+ID4gPiB3b3VsZA0KPiA+ID4gYXBwcmVjaWF0ZSB5b3VyIHBhdGll bmNlLg0KPiA+ID4NCj4gPiA+ICsgQENyaXN0aWFuIER1bWl0cmVzY3UNCj4gPiA+DQo+ID4gPiBU aGVyZSBpcyBhbHJlYWR5IGEgbG90IG9mIHA0KGp1c3QgYmFzZWQgb24gRFBESyBsaWIvcGlwZWxp bmUgU1csIG5vdA0KPiA+ID4gd2l0aCBhbnkgSFcgYWNjZWxlcmF0aW9uKSB3aXRoIERQREsuIE5v dCBzdXJlIGhvdyBtdWNoIGl0IG92ZXJsYXBzLA0KPiA+ID4gYW5kIGhvdyBjbGVhbiBpcyB0aGlz IHRvIGludGVncmF0ZSB3aXRoIGV4aXN0aW5nIFNXIG9yICJjcmVhdGUgbmV3IG9uZSI/DQo+ID4g PiBJIHdvdWxkIHRoaW5rLCBlbmhhbmNpbmcgdGhlIGN1cnJlbnQgcDQtZHBkayBzdXBwb3J0IGJ5 IHVzaW5nDQo+ID4gPiBydGVfZmxvdyBiYWNrZW5kLiBUaGF0IHdvdWxkIHRyYW5zbGF0ZSB0bw0K PiA+ID4gMSkgVXBkYXRlIGh0dHBzOi8vZ2l0aHViLmNvbS9wNGxhbmcvcDRjL3RyZWUvbWFpbi9i YWNrZW5kcy9kcGRrIHRvDQo+ID4gPiB1bmRlcnN0YW5kIGdlbmVyaWMgcDQgdGFibGUga2V5IHRv a2VuIHRvIHJ0ZV9mbG93IHRva2VuIGZvciBzcGVjDQo+ID4gPiBmaWxlIGdlbmVyYXRpb24uDQo+ ID4NCj4gPiBPSywgSSBhc3N1bWUgdGhhdCB0aGUgY29tcGlsZXIgc2hvdWxkIGhhdmUgdGhlIGNh cGFiaWxpdHkgdG8gY29tcHJlaGVuZA0KPiB0aGUgbG9naWMgb2YgdGhlIFA0IHBhcnNlciBhbmQg ZGV0ZXJtaW5lIHRoZSBhcHByb3ByaWF0ZSBtYXBwaW5nIG9mIGVhY2gNCj4ga2V5IGZpZWxkIGlu IHRoZSBQNCB0YWJsZSB0byBhbiBydGVfZmxvdyBoZWFkZXIuIFRoaXMgcHJvY2VzcyBzaG91bGQg YmUNCj4gaW5kZXBlbmRlbnQgb2YgYW55IHNwZWNpZmljIHZlbmRvci4NCj4gDQo+IFllcy4NCj4g DQo+ID4NCj4gPiBIb3dldmVyLCB0aGUgcXVlc3Rpb24gYXJpc2VzIHJlZ2FyZGluZyBob3cgdG8g aGFuZGxlIHZlbmRvci1zcGVjaWZpYyBkYXRhLA0KPiB3aGljaCBhbHNvIGNhbiBiZSBwYXJ0IG9m IHRoZSB0YWJsZSAvIGFjdGlvbiBrZXkgYW5kIGNvdWxkIHBvdGVudGlhbGx5IGJlDQo+IG1hcHBl ZCB0byBlaXRoZXIgcnRlX2Zsb3dfaXRlbV90YWcgb3IgcnRlX2Zsb3dfaXRlbV9tZXRhZGF0YS4g SSdtDQo+IHVuY2VydGFpbiBhYm91dCBob3cgdGhlIFA0LURQREsgY29tcGlsZXIgY2FuIG1hbmFn ZSB0aGlzIGFzcGVjdC4gUGVyaGFwcw0KPiB0aGlzIHBhcnRpY3VsYXIgYXNwZWN0IHNob3VsZCBi ZSBhZGRyZXNzZWQgYnkgZWFjaCB2ZW5kb3IncyBpbmRpdmlkdWFsDQo+IGJhY2tlbmQgY29tcGls ZXIsIHdoaWxlIHdlIGZvY3VzIG9uIGRlZmluaW5nIHRoZSBzcGVjaWZpY2F0aW9ucyBmb3IgdGhl DQo+IG91dHB1dCBhbmQgcHJvdmlkaW5nIHRoZSBjb21tb24gY29tcG9uZW50cyBmb3IgcGFyc2Vy IGFuYWx5c2lzLg0KPiANCj4gSWYgd2UgdGFrZSB0aGUgY29tcGlsZXIgcGF0aCwgV2h5IHdlIG5l ZWQgdmVuZG9yIHNwZWNpZmljIGRhdGE/DQoNCkxldCdzIGNvbnNpZGVyIHRoZSBmb2xsb3dpbmcg c2NlbmFyaW86DQoNCkFzc3VtZSB0aGF0IGEgaGFyZHdhcmUgZGV2aWNlIGNvbnRhaW5zIG1ldGFk YXRhIHRoYXQgY2FuIGJlIHBhc3NlZCBiZXR3ZWVuIGRpZmZlcmVudCBzdGFnZXMgb2YgYSBwaXBl bGluZS4NCg0KRm9yIGluc3RhbmNlLCBpbiBzdGFnZSBBLCBhIHJ1bGUgaXMgbWF0Y2hlZCwgYW5k IHRoZSBtZXRhZGF0YSBpcyBzZXQuIEluIHN0YWdlIEIsIHRoaXMgbWV0YWRhdGEgaXMgdXNlZCBh cyBhIG1hdGNoIGtleS4NCg0KVG8gZGVzaWduIHRoZSBBUEkgY2FsbHMgZm9yIHRoZSBhYm92ZSBz aXR1YXRpb24gdXNpbmcgcnRlX2Zsb3csIG15IHVuZGVyc3RhbmRpbmcgaXMgdGhhdCB3ZSBuZWVk IHRvIG1hcCBhIHJ0ZV9mbG93X2l0ZW1fdGFnIG9yIHJ0ZV9mbG93X2l0ZW1fbWV0YWRhdGEgdG8g dGhlIGNvcnJlc3BvbmRpbmcgbWV0YWRhdGEgcG9ydGlvbiAoaW5jbHVkaW5nIG9mZnNldCBhbmQg c2l6ZSkuIA0KVGhpcyB3YXksIHRoZSBkcml2ZXIgY2FuIHVuZGVyc3RhbmQgaG93IHRvIGNvbmZp Z3VyZSB0aGUgaGFyZHdhcmUgYWNjb3JkaW5nbHkuDQoNCkluIFA0LCB3ZSBkZWZpbmUgZGF0YSBz dHJ1Y3R1cmVzIHRvIGFic3RyYWN0IHRoZSBtZXRhZGF0YSwgYW5kIHRoZSB2ZW5kZXIgc3BlY2lm aWMtYmFja2VuZCBjb21waWxlciBkZXRlcm1pbmVzIHRoZSBhcnJhbmdlbWVudCBvZiB0aGUgbWV0 YWRhdGEgc3BhY2UuDQoNCkhvd2V2ZXIsIGluIG91ciBjYXNlLCBob3cgZG9lcyB0aGUgcHJvcG9z ZWQgY29tcGlsZXIgZXN0YWJsaXNoIHRoZSBtYXBwaW5nIGZyb20gdGhlIFA0IG1ldGFkYXRhIGtl eSB0byBydGVfZmxvdyB3aXRob3V0IHN1cHBvcnQgZnJvbSB0aGUgYmFja2VuZCBjb21waWxlcj8N Cg0KPiANCj4gDQo+ID4NCj4gPiA+IDIpIFVwZGF0ZSBodHRwczovL2dpdGh1Yi5jb20vcDRsYW5n L3A0LWRwZGstdGFyZ2V0IG9yIGludHJvZHVjZQ0KPiA+ID4gY29tbW9uIGxpYnJhcnkgaW4gRFBE SyB0byBtYXAgY29tcGlsZXIgb3V0cHV0IChzcGVjIGZpbGUpIHRvDQo+ID4gPiBydGVfZmxvdyBv YmplY3RzIGludm9jYXRpb25zLg0KPiA+DQo+ID4gSSdtIG5vdCBxdWl0ZSBzdXJlIHdoeSB3ZSBu ZWVkIHRvIHVwZGF0ZSB0aGUgcDQtZHBkay10YXJnZXQgcHJvamVjdCwgYXMNCj4gaXRzIHB1cnBv c2UgaXMgdG8gdXRpbGl6ZSBEUERLIGZvciBidWlsZGluZyBhIHNvZnR3YXJlIHBpcGVsaW5lIHVz aW5nIFA0Lg0KPiBIb3dldmVyLCBpZiB3ZSBkbyByZXF1aXJlIHRoZSBpbnRyb2R1Y3Rpb24gb2Yg YSBjb21tb24gbGlicmFyeSBpbiBEUERLLCB0aGUNCj4gZm9sbG93aW5nIHF1ZXN0aW9ucyBhcmlz ZToNCj4gPg0KPiA+IDEuIFdoYXQgd2lsbCB0aGUgQVBJIG9mIHRoZSBsaWJyYXJ5IGxvb2sgbGlr ZT8gV2lsbCBpdCBzdGlsbCBtYWludGFpbiBhIHRhYmxlLQ0KPiBkcml2ZW4gaW50ZXJmYWNlIHRo YXQgaXMgY29tcGF0aWJsZSB3aXRoIFA0IHJ1bnRpbWU/IFdoYXQgYXJlIHRoZSBrZXkNCj4gZGlm ZmVyZW5jZXMgY29tcGFyZWQgdG8gdGhlIGN1cnJlbnQgcHJvcG9zYWw/DQo+IA0KPiBOb3Qgc3Vy ZSB3aHkgd2UgcmVxdWlyZSB0YWJsZSBkcml2ZXIgaW50ZXJmYWNlLCBUaGUgY29tbW9uIGNvZGUg d2lsbCBwYXJzZQ0KPiB0aGUgY29tcGlsZXIgb3V0cHV0IGFuZCBjcmVhdGUgdGhlIHJ0ZV9mbG93 IG9iamVjdHMuDQoNCk9mIGNvdXJzZSwgdGhlIERQREsgbGlicmFyeSBwcm92aWRlcyBoZWxwZnVs IGZ1bmN0aW9ucyBmb3IgUDQgYXBwbGljYXRpb25zIHRvIGRldGVybWluZSBob3cgdG8gY2FsbCBy dGVfZmxvdy4NCg0KPiANCj4gPiAyLiBEdXJpbmcgcnVudGltZSwgd2lsbCB0aGUgbGlicmFyeSBs b2FkIHRoZSBzcGVjIGZpbGUgKG91dHB1dCBvZiB0aGUgY29tcGlsZXIpDQo+IGFuZCBjb25zdHJ1 Y3QgYSBtYXBwaW5nIGZyb20gUDQgdGFibGVzL2FjdGlvbnMgdG8gdGhlIHJ0ZV9mbG93IEFQST8g SXMgbXkNCj4gdW5kZXJzdGFuZGluZyBjb3JyZWN0Pw0KPiANCj4gMSkgRHVyaW5nIHRoZSBsaWJy YXJ5IGluaXQgdGltZSwgSXQgd2lsbCBwYXJzZSB0aGUgc3BlYyBmaWxlIGFuZCBjcmVhdGUgdGhl DQo+IHNwZWNpZmljIHJ0ZV9mbG93IG9iamVjdHMNCj4gMikgV2hlbiBwNCBydW50aW1lIGlzIGlu dm9rZWQsIGRhdGEgYW5kIHRhYmxlIG5hbWUgY29tZXMgb3ZlciBydW50aW1lDQo+IEFQSS4gVGhl IGxpYnJhcnkgY2FuIGRvIGEgbG9vay11cCB0byBmaW5kIHRoZSBydGVfZmxvdyBvYmplY3QgZnJv bSBuYW1lLCBhbmQNCj4gZG8gdGFibGUgb3BlcmF0aW9ucyBvbiB0aGF0IG9iamVjdCB3aXRoIGRh dGEgcHJvdmlkZWQgYnkgdGhlIHJ1bnRpbWUgQVBJLg0KPiANCj4gDQo+ID4gMy4gU29tZSBoYXJk d2FyZSB2ZW5kb3JzIGFscmVhZHkgaGF2ZSBiYWNrZW5kIFA0IGNvbXBpbGVycyB0aGF0IGFyZQ0K PiBjYXBhYmxlIG9mIGdlbmVyYXRpbmcgaGludHMgZm9yIGNvbmZpZ3VyaW5nIGhhcmR3YXJlIGJh c2VkIG9uIHRhYmxlcy9hY3Rpb25zLg0KPiBJcyBpdCBwb3NzaWJsZSB0byBpbmNvcnBvcmF0ZSBh ICJwYXNzLXRocm91Z2giIG1vZGUgd2l0aGluIHRoaXMgbGlicmFyeT8NCj4gDQo+IE5vdCBzdXJl LCB3aGF0IGlzIHRoZSBwdXJwb3NlIG9mIHRoaXMgbGlicmFyeSB0aGVuIGluIGZpcnN0IHBsYWNl LCBHb2luZyBiYWNrIHRvDQo+IG9yaWdpbmFsIHF1ZXN0aW9uPyBXaHkgRFBESyBhYnN0cmFjdGlv biBvZiBwNCB0YWJsZSBpcyBuZWVkZWQgaW4gRFBESyBhcw0KPiB0aGUgcDQgaXMgdGhlIEFQSSBj b250cmFjdD8gV2h5IG5vdCBhIHJhd2RldiBQTUQgIHRvIGxldmVyYWdlIEVBTCBzZXJ2aWNlcy4N Cg0KVGhpcyBpcyBub3QgYSB2YWxpZCBxdWVzdGlvbiB3aXRoIGFib3ZlIHVuZGVyc3RhbmRpbmcu DQoNCj4gDQo+IA0KPiA+DQo+ID4gVGhhbmtzDQo+ID4gUWkNCj4gPg0K