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 45A58A00C5; Wed, 16 Feb 2022 15:18:48 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2B1814115A; Wed, 16 Feb 2022 15:18:48 +0100 (CET) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1anam02on2086.outbound.protection.outlook.com [40.107.96.86]) by mails.dpdk.org (Postfix) with ESMTP id 0441640150 for ; Wed, 16 Feb 2022 15:18:47 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JQXjltG45s7IA3j7i0nLJ9dYG5CHRf0TiaQsudYqcn3jadPcDngWDZyLSvP/J+TH1AJQUvirSYWS5fisqNMOKd4rwdHDf7AMKuLiNVZn4MhROFf+8igGF7Gvn/6vBV7+bviAxewiZde58aYKE/IaiFXlcHSSg3/AHclkYcPDPI51VyGJXaCt0DpzDYAYe+0S4w3LiiTA4ZE98D0aiqpPwMQDxhnKvDuyRfFcijE4b2Y2BLhpN0imQZWWjX1ZCUNq2NbUDEGcj4TNXjwcTb5i3If+MaVZUm1b7T0ZBxY4iyEdfYbLgDN763focF7n+ikopwdd+R0cg2X2lZTzY4/Y3Q== 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=U33Q/fZOjOVe0iLnScXR7UA5koCTAJiVNkov7zi1Lyg=; b=VAnFuaTyAMv2xaNt6XoImagWa8n/pB3XoRGuqSj7sGRXkbTYQmFZiyFFqbbOV0dd7F+qh2KpIiO/13pYi6YkwDnD16cc8jQ3/F5xmvUO363rSg3j1xJ7uyYx/fIwssNg6c0xmbI5eOW3uTqfqL4Cdo+GPEfBeMagVbs2qOxhQZoaYlQysgeEYSTY4q6Iw54x04Nk5YEsfSPS4+JAWBqd9YOXMBo7veIjwcmNa2SM5E6sPskgRpkQRqBJ8RZ6hSb6Ry9OWU4zVw6JSCi/zoArZa+yhxpKr2V8D/9DuHsRbgNzA7LUNe5uYEUgxFdznfQXtSaZ6tHYjiDNnpS/eepHfw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; 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=U33Q/fZOjOVe0iLnScXR7UA5koCTAJiVNkov7zi1Lyg=; b=HggDFNzdDVYxWQznEooDD8JIUNnJk0H3B4yRH3PDTMdQSJYt+iOPRrz2xfhCBCyvLVZPN8bUkNSMouwcLVzxws5ay0KqqQX0KInEWfzh/gU6WUBbpiW3M3ZEmB3TJyngIO0u58n5T/mnUfnRuSfhE24pthmdVwP3WFnZz5m6RdfZL+7pslo9TPRHkU6GDD53R4FzF0LcFSDydxFPlKVrRV2p5Ep4OPHIXPXAXNPbO6cR85YfuYKOjam9qEpkjbnudTYcxpGSTh5mtjewgcq1Ue4/O8c0+mRfjiqZzO18N+RgHXozYt2JgkUdxFyiJstQEn563KmoCE19eY77+eWaAg== Received: from DM6PR12MB4108.namprd12.prod.outlook.com (2603:10b6:5:220::18) by BY5PR12MB3649.namprd12.prod.outlook.com (2603:10b6:a03:1ad::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4975.15; Wed, 16 Feb 2022 14:18:43 +0000 Received: from MW2PR12MB4666.namprd12.prod.outlook.com (2603:10b6:302:13::22) by DM6PR12MB4108.namprd12.prod.outlook.com (2603:10b6:5:220::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4975.17; Wed, 16 Feb 2022 14:18:42 +0000 Received: from MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::9d4e:649c:c6b8:b353]) by MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::9d4e:649c:c6b8:b353%5]) with mapi id 15.20.4975.017; Wed, 16 Feb 2022 14:18:42 +0000 From: Ori Kam To: Andrew Rybchenko , Alexander Kozyrev , "dev@dpdk.org" CC: "NBU-Contact-Thomas Monjalon (EXTERNAL)" , "ivan.malov@oktetlabs.ru" , "ferruh.yigit@intel.com" , "mohammad.abdul.awal@intel.com" , "qi.z.zhang@intel.com" , "jerinj@marvell.com" , "ajit.khaparde@broadcom.com" , "bruce.richardson@intel.com" Subject: RE: [PATCH v5 02/10] ethdev: add flow item/action templates Thread-Topic: [PATCH v5 02/10] ethdev: add flow item/action templates Thread-Index: AQHYHu7ugEqPN/FQi0aZfBJ6rJYJR6yONtMAgAC39YCAB0GLgIAAEGzQ Date: Wed, 16 Feb 2022 14:18:41 +0000 Message-ID: References: <20220209213809.1208269-1-akozyrev@nvidia.com> <20220211022653.1372318-1-akozyrev@nvidia.com> <20220211022653.1372318-3-akozyrev@nvidia.com> <0a823087-2421-9716-9f66-70be7b774ecd@oktetlabs.ru> 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-office365-filtering-correlation-id: ba6cde5d-9ec6-4919-3161-08d9f1573c00 x-ms-traffictypediagnostic: DM6PR12MB4108:EE_|BY5PR12MB3649:EE_ x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 4p3MBgc0RUqgRqrV9j5Lj+J/wtyyoGzXrm23j/CMObwxU//AJ+zcS3SxiOAVOioLIEd612mtDdKAoaSUFen+QsPqQFircXLafvXUkAwCLl23hXTjvU1JiVLik9BFV0cY6ttrpOxcVaBuHt7zheesrjhlCB38HTPyvE64l4rUft7YYeb+RZNeviAq7PkWynwy/iGL39DYxmVAoFw8H5hAueFct4i/2ptfwTEugmQTsl/WvlsPIgFRzZsRJ4cQOOEWxgnUS0BTO0JE/ZSZy5AnYDiCy2DgrdDjMRVRD9gJMXcjSSxp0bsbzduzOaf7ZyDxPA50K6YA0+GCEJYeU5QvJRjPKGehGGa3vbcfjC5dcr5VUzrqMcqyJeylvoB5fcONnmKBkzeb4YsmmiBAdillfRIN0/9mcH7g0s29NGjA+mv+Ktco2ao+fOekVwGCG3lGe7ZHk6ZJkCzFtn2t4L9tEKyj5yx5mQLg8/v1YHM3H4hSU3BA4M58msrmVoATwmJW4PBz8EN2uv3JqjnKlpdEm07z/Ru0xnj056ErShMY2nWiyk3RiNr8TM6iP1bWPS217VCotw6Jyc3ez8XDTOeJvuo7C0iPREG6CUSdi65xcc0u6g+4OSpjEKDvP0krLe0OiFU1ptuDs7nEh6ifgQHmdGRnfH+JVQad8pb6XKDUnokhBa8prK8X7y68sl5y/X8Uypv405RijyXDC1PDFqB2zg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR12MB4108.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(508600001)(7696005)(53546011)(6506007)(55016003)(9686003)(71200400001)(110136005)(54906003)(33656002)(316002)(83380400001)(38100700002)(66556008)(8936002)(66476007)(66946007)(76116006)(4326008)(8676002)(64756008)(66446008)(2906002)(52536014)(26005)(186003)(5660300002)(122000001)(7416002)(38070700005)(86362001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZzNHSTNnRVRBeHgybmQ1QzY2aXRUQVdmMUhyK3ZXbTY4YXpvSnA4V0ViQWlV?= =?utf-8?B?RWdtdzRsK1B6ZVlnc0xOM0RUQm5sYk5RVTNjNU5Nek55SlBoSlJ6SHhXMUZZ?= =?utf-8?B?UkYzRUNZOTdpWEZqTGZ1c2VHK0RiNGRFYkhEVFVYUEdpWFBXaWdyZGRmL1d0?= =?utf-8?B?c081VSt5WWkrSnl6cUpKb0ZzZ09pRTF3WlNmbXozZVF5ZC9pWVVqMWp0bmxL?= =?utf-8?B?NVBwYjVRbWlVdmcybURmR1JFMnMvVHlaYlQ5eGxtZWNTYXlCMlludlg1U1Z5?= =?utf-8?B?WVBHZTg4M2UwWUUyRnFzdk42ZFdLYnRjYlBkNlZmYXFid1MrOUFaTzRPM1BY?= =?utf-8?B?bitRQjhLZjIvdTgxei9TV1gxS1pJRjdDd1hKN0xCbExOaWRWZm4vcVZPeUFF?= =?utf-8?B?cG13clhTNWk5WitVQm5SR3d3R1RoNm12cHJCcTRKaWs4dHV0TjF1eGxKTmxw?= =?utf-8?B?RkFHYkk4QnAzOC91SHJDVmMwN015S2VKZ3Q1bGRMa0plUHh4MnFNbUEzMmpK?= =?utf-8?B?ci9ZYWpFenk1RjlhNGlhZm03SEdRUjhqL0RUdll4cDUwc1BVMzhPWEZJTit3?= =?utf-8?B?ZFoxTWhmQUFFajlUcVJCZEx0dVJHWDdpWlQwbkplOWFRRHJ5RmY1VUFUbWow?= =?utf-8?B?alZOOVdRcXpsUkthUWg3Ni9RQXErME9OU1BhaHp5QWpKdy9GTTRPbUgxbmlD?= =?utf-8?B?dnZ2TEpNd2g4Z2FEKzdJU2x3L3NIbFFTK1NnaG5nM1crY2NSeG1ObDROOUZ1?= =?utf-8?B?SGloSmlDcW8yVWJEa1BPSG1nRy9DeHl3WDlUQ3VPWGFVWWRQTUVxa2R0OXFS?= =?utf-8?B?bHZ3VWRFTXJMZ3BFcVFiVzZKeXN4TC81ZDZmZ1h6VE1SYU14M0EzdVUrR0VY?= =?utf-8?B?WGtpOW1HNWJUbjBUUGJmWm1zVlN6bVkrS2h2SzZkTlNibkVoeG0xcDZLUk5T?= =?utf-8?B?bXMrSkluYmdEN1RRZktoaXFnaG83c2Fsak9VbmYvZ2pnUXdEWHFmdXVEZUtI?= =?utf-8?B?UlVSaTV6RHRNK0ZKSGF1N1NTM1drcDVhOWQ1SlhqV2pTUDhKSng1ZXBDT2VP?= =?utf-8?B?WGtsMGNFMldoUGZaU0xOT1hiT2VrTXVSWVl1TFIwWXBzNit5Y0U1d0k4R2Jv?= =?utf-8?B?aUlVMmY2ZVFlVnl6dVlkUDlPSVpvTFFaczgwa2NlYlVQNDVqU1dVSFN5Z2N3?= =?utf-8?B?cW43K3NJTkhRUVhGOURUVXp2NXNteEE4RndnalA1Smo3c2Z4bGwwRER4bkdj?= =?utf-8?B?dUlSQzRQWXFxd25Td2s4S3hJUXJFYTRTaUxXZzN1ZzhRdFh5dHVoVytJYXRZ?= =?utf-8?B?TWVlbVp4NXg5RXZ0a0tIdDBLcCtPVS9XRSsyd2UyZGYyMG02by9lekVoYmIy?= =?utf-8?B?MjhRUnZPREw0T0tQOXZTZjFOYklzNnI2dDdBSWE2ZEJpTFJ1eHFIK1ova3RZ?= =?utf-8?B?SVdaNkRKQjZZd1pUazAwRGpGbk9GZmsyNHJ1b0JITzFJVG1UZzNCWGJIR2Nn?= =?utf-8?B?eGVpdlpvd3FnVlo4bkVtUjQ5VmkzemhOeVlZTGxocXZXV2NxMTZYZzJQNUhM?= =?utf-8?B?cEcwampGenZPa0RhSjNvT1JoMExOOHRyRzFrMnpZRG9qVitpVjFpOGdDRW5Q?= =?utf-8?B?MVdLWm15VmYreGJFR1lDclV1TGQrQUdiaXRCWWxKaEtCQnFETjIxcE50UEMv?= =?utf-8?B?VGF2enV5R1NjaEJ6Y08zR3RiK2lqd0xIRldmZlBEK1dKNEFtSlFKYlQ3NTk0?= =?utf-8?B?TTBWaCtkVjg3QzBIT1FFVWVxb2xOdndQT3QwOE5XU0t0cGdLNkd0encydGdP?= =?utf-8?B?WVhoZjlNZzc4WTBUbWN4bGtiVGJDZDlzMTdWb0NLZTJ1Z21Ub2RQbzlEYTA3?= =?utf-8?B?bjFUdEJCakpIVU1TdXpVVTVEamdyMjhlcFRNS3QrMlRFRGU4V2lCMGs5T2xU?= =?utf-8?B?VFIwd2hTb2VUUWhqaXhIZnJxb0E0dmZwbE5LZ2pXaWxVaTRnRUM2WGlFRHdF?= =?utf-8?B?VVhBeFZicUFxV3VXdUErcW9RMzVTWGNyS2M0UEJ3bDlReTNDdmlrUVoxdXpa?= =?utf-8?B?YitKMm1ScGxQRDV0NW80SXVGRWpyTXlqQmJzVzY1dktJVGJGRjV3eEwvL2s4?= =?utf-8?B?NmlTc043ems3R3kxT3JDN2ZxSDMzVnNhdEVqbzNCZzZxcGE5eXpuSHg4QXB2?= =?utf-8?B?R3c9PQ==?= 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: ba6cde5d-9ec6-4919-3161-08d9f1573c00 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Feb 2022 14:18:41.9480 (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: F0zRfV6dV7h5iPvpMdukVAand9aWqciO6fMZmg0mlqeQoXnDqPx/ZXermgiph4qK0GFISJ0flnsxxCryfIgukw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB3649 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 SGkgQW5kcmV3LA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEFuZHJl dyBSeWJjaGVua28gPGFuZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJzLnJ1Pg0KPiBTdWJqZWN0OiBS ZTogW1BBVENIIHY1IDAyLzEwXSBldGhkZXY6IGFkZCBmbG93IGl0ZW0vYWN0aW9uIHRlbXBsYXRl cw0KPiANCj4gT24gMi8xMi8yMiAwMToyNSwgQWxleGFuZGVyIEtvenlyZXYgd3JvdGU6DQo+ID4g T24gRnJpLCBGZWIgMTEsIDIwMjIgNjoyNyBBbmRyZXcgUnliY2hlbmtvIDxhbmRyZXcucnliY2hl bmtvQG9rdGV0bGFicy5ydT4gd3JvdGU6DQo+ID4+IE9uIDIvMTEvMjIgMDU6MjYsIEFsZXhhbmRl ciBLb3p5cmV2IHdyb3RlOg0KPiA+Pj4gVHJlYXRpbmcgZXZlcnkgc2luZ2xlIGZsb3cgcnVsZSBh cyBhIGNvbXBsZXRlbHkgaW5kZXBlbmRlbnQgYW5kIHNlcGFyYXRlDQo+ID4+PiBlbnRpdHkgbmVn YXRpdmVseSBpbXBhY3RzIHRoZSBmbG93IHJ1bGVzIGluc2VydGlvbiByYXRlLiBPZnRlbnRpbWVz IGluIGFuDQo+ID4+PiBhcHBsaWNhdGlvbiwgbWFueSBmbG93IHJ1bGVzIHNoYXJlIGEgY29tbW9u IHN0cnVjdHVyZSAodGhlIHNhbWUgaXRlbSBtYXNrDQo+ID4+PiBhbmQvb3IgYWN0aW9uIGxpc3Qp IHNvIHRoZXkgY2FuIGJlIGdyb3VwZWQgYW5kIGNsYXNzaWZpZWQgdG9nZXRoZXIuDQo+ID4+PiBU aGlzIGtub3dsZWRnZSBtYXkgYmUgdXNlZCBhcyBhIHNvdXJjZSBvZiBvcHRpbWl6YXRpb24gYnkg YSBQTUQvSFcuDQo+ID4+Pg0KPiA+Pj4gVGhlIHBhdHRlcm4gdGVtcGxhdGUgZGVmaW5lcyBjb21t b24gbWF0Y2hpbmcgZmllbGRzICh0aGUgaXRlbSBtYXNrKSB3aXRob3V0DQo+ID4+PiB2YWx1ZXMu IFRoZSBhY3Rpb25zIHRlbXBsYXRlIGhvbGRzIGEgbGlzdCBvZiBhY3Rpb24gdHlwZXMgdGhhdCB3 aWxsIGJlIHVzZWQNCj4gPj4+IHRvZ2V0aGVyIGluIHRoZSBzYW1lIHJ1bGUuIFRoZSBzcGVjaWZp YyB2YWx1ZXMgZm9yIGl0ZW1zIGFuZCBhY3Rpb25zIHdpbGwNCj4gPj4+IGJlIGdpdmVuIG9ubHkg ZHVyaW5nIHRoZSBydWxlIGNyZWF0aW9uLg0KPiA+Pj4NCj4gPj4+IEEgdGFibGUgY29tYmluZXMg cGF0dGVybiBhbmQgYWN0aW9ucyB0ZW1wbGF0ZXMgYWxvbmcgd2l0aCBzaGFyZWQgZmxvdyBydWxl DQo+ID4+PiBhdHRyaWJ1dGVzIChncm91cCBJRCwgcHJpb3JpdHkgYW5kIHRyYWZmaWMgZGlyZWN0 aW9uKS4gVGhpcyB3YXkgYSBQTUQvSFcNCj4gPj4+IGNhbiBwcmVwYXJlIGFsbCB0aGUgcmVzb3Vy Y2VzIG5lZWRlZCBmb3IgZWZmaWNpZW50IGZsb3cgcnVsZXMgY3JlYXRpb24gaW4NCj4gPj4+IHRo ZSBkYXRhcGF0aC4gVG8gYXZvaWQgYW55IGhpY2N1cHMgZHVlIHRvIG1lbW9yeSByZWFsbG9jYXRp b24sIHRoZSBtYXhpbXVtDQo+ID4+PiBudW1iZXIgb2YgZmxvdyBydWxlcyBpcyBkZWZpbmVkIGF0 IHRoZSB0YWJsZSBjcmVhdGlvbiB0aW1lLg0KPiA+Pj4NCj4gPj4+IFRoZSBmbG93IHJ1bGUgY3Jl YXRpb24gaXMgZG9uZSBieSBzZWxlY3RpbmcgYSB0YWJsZSwgYSBwYXR0ZXJuIHRlbXBsYXRlDQo+ ID4+PiBhbmQgYW4gYWN0aW9ucyB0ZW1wbGF0ZSAod2hpY2ggYXJlIGJvdW5kIHRvIHRoZSB0YWJs ZSksIGFuZCBzZXR0aW5nIHVuaXF1ZQ0KPiA+Pj4gdmFsdWVzIGZvciB0aGUgaXRlbXMgYW5kIGFj dGlvbnMuDQo+ID4+Pg0KPiA+Pj4gU2lnbmVkLW9mZi1ieTogQWxleGFuZGVyIEtvenlyZXYgPGFr b3p5cmV2QG52aWRpYS5jb20+DQo+ID4+PiBBY2tlZC1ieTogT3JpIEthbSA8b3Jpa2FAbnZpZGlh LmNvbT4NCj4gDQo+IFtzbmlwXQ0KPiANCg0KW1NuaXBdDQoNCj4gPj4+ICsgKg0KPiA+Pj4gKyAq IFRoZSBwYXR0ZXJuIHRlbXBsYXRlIGRlZmluZXMgY29tbW9uIG1hdGNoaW5nIGZpZWxkcyB3aXRo b3V0IHZhbHVlcy4NCj4gPj4+ICsgKiBGb3IgZXhhbXBsZSwgbWF0Y2hpbmcgb24gNSB0dXBsZSBU Q1AgZmxvdywgdGhlIHRlbXBsYXRlIHdpbGwgYmUNCj4gPj4+ICsgKiBldGgobnVsbCkgKyBJUHY0 KHNvdXJjZSArIGRlc3QpICsgVENQKHNfcG9ydCArIGRfcG9ydCksDQo+ID4+PiArICogd2hpbGUg dmFsdWVzIGZvciBlYWNoIHJ1bGUgd2lsbCBiZSBzZXQgZHVyaW5nIHRoZSBmbG93IHJ1bGUgY3Jl YXRpb24uDQo+ID4+PiArICogVGhlIG51bWJlciBhbmQgb3JkZXIgb2YgaXRlbXMgaW4gdGhlIHRl bXBsYXRlIG11c3QgYmUgdGhlIHNhbWUNCj4gPj4+ICsgKiBhdCB0aGUgcnVsZSBjcmVhdGlvbi4N Cj4gPj4+ICsgKg0KPiA+Pj4gKyAqIEBwYXJhbSBwb3J0X2lkDQo+ID4+PiArICogICBQb3J0IGlk ZW50aWZpZXIgb2YgRXRoZXJuZXQgZGV2aWNlLg0KPiA+Pj4gKyAqIEBwYXJhbVtpbl0gdGVtcGxh dGVfYXR0cg0KPiA+Pj4gKyAqICAgUGF0dGVybiB0ZW1wbGF0ZSBhdHRyaWJ1dGVzLg0KPiA+Pj4g KyAqIEBwYXJhbVtpbl0gcGF0dGVybg0KPiA+Pj4gKyAqICAgUGF0dGVybiBzcGVjaWZpY2F0aW9u IChsaXN0IHRlcm1pbmF0ZWQgYnkgdGhlIEVORCBwYXR0ZXJuIGl0ZW0pLg0KPiA+Pj4gKyAqICAg VGhlIHNwZWMgbWVtYmVyIG9mIGFuIGl0ZW0gaXMgbm90IHVzZWQgdW5sZXNzIHRoZSBlbmQgbWVt YmVyIGlzIHVzZWQuDQo+ID4+DQo+ID4+IEludGVycHJldGF0aW9uIG9mIHRoZSBwYXR0ZXJuIG1h eSBkZXBlbmQgb24gdHJhbnNmZXIgdnMgbm9uLXRyYW5zZmVyDQo+ID4+IHJ1bGUgdG8gYmUgdXNl ZC4gSXQgaXMgZXNzZW50aWFsIGluZm9ybWF0aW9uIGFuZCB3ZSBzaG91bGQgcHJvdmlkZSBpdA0K PiA+PiB3aGVuIHBhdHRlcm4gdGVtcGxhdGUgaXMgY3JlYXRlZC4NCj4gPj4NCj4gPj4gVGhlIGlu Zm9ybWF0aW9uIGlzIHByb3ZpZGVkIG9uIHRhYmxlIHN0YWdlLCBidXQgaXQgaXMgdG9vIGxhdGUu DQo+ID4NCj4gPiBXaHkgaXMgaXQgdG9vIGxhdGU/IEFwcGxpY2F0aW9uIGtub3dzIHdoaWNoIHRl bXBsYXRlIGdvZXMgdG8gd2hpY2ggdGFibGUuDQo+ID4gQW5kIHRoZSBwYXR0ZXJuIGlzIGdlbmVy aWMgdG8gYWNjb21tb2RhdGUgYW55dGhpbmcsIHVzZXIganVzdCBuZWVkIHRvIHB1dCBpdA0KPiA+ IGludG8gdGhlIHJpZ2h0IHRhYmxlLg0KPiANCj4gQmVjYXVzZSBpdCBpcyBtb3JlIGNvbnZlbmll bnQgdG8gaGFuZGxlIGl0IHdoZW4gaW5kaXZpZHVhbA0KPiB0ZW1wbGF0ZSBpcyBwcm9jZXNzZWQu IE90aGVyd2lzZSBlcnJvciByZXBvcnRpbmcgd2lsbCBiZQ0KPiBjb21wbGljYXRlZCBzaW5jZSBp dCBjb3VsZCBiZSBqdXN0IG9uZSB0ZW1wbGF0ZSB3aGljaCBpcw0KPiB3cm9uZy4NCj4gDQo+IE90 aGVyd2lzZSwgSSBzZWUgbm8gcG9pbnQgdG8gaGF2ZSBkcml2ZXIgY2FsbGJhY2tzDQo+IHRlbXBs YXRlIGNyZWF0aW9uIEFQSS4gSSBjYW4gZG8gbm90aGluZyBoZXJlIHNpbmNlDQo+IEkgaGF2ZSBu byBlbm91Z2ggY29udGV4dC4gV2hhdCdzIHRoZSBwcm9ibGVtIHRvIGFkZA0KPiB0aGUgY29udGV4 dD8NCj4gDQoNClRoZSBpZGVhIGlzIHRoYXQgdGhlIHNhbWUgdGVtcGxhdGUgY2FuIGJlIHVzZWQg aW4gZGlmZmVyZW50DQpkb21haW5zIChpbmdyZXNzL2VncmVzcyBhbmQgdHJhbnNmZXIpDQpNYXkg YmUgd2UgY2FuIGFkZCBvbiB3aGljaCBkb21haW5zIHRoaXMgdGVtcGxhdGUgaXMgZXhwZWN0ZWQg dG8gYmUgdXNlZC4NCldoYXQgZG8geW91IHRoaW5rPw0KDQo+ID4NCj4gPj4NCj4gPj4+ICsgKiBA cGFyYW1bb3V0XSBlcnJvcg0KPiA+Pj4gKyAqICAgUGVyZm9ybSB2ZXJib3NlIGVycm9yIHJlcG9y dGluZyBpZiBub3QgTlVMTC4NCj4gPj4+ICsgKiAgIFBNRHMgaW5pdGlhbGl6ZSB0aGlzIHN0cnVj dHVyZSBpbiBjYXNlIG9mIGVycm9yIG9ubHkuDQo+ID4+PiArICoNCj4gPj4+ICsgKiBAcmV0dXJu DQo+ID4+PiArICogICBIYW5kbGUgb24gc3VjY2VzcywgTlVMTCBvdGhlcndpc2UgYW5kIHJ0ZV9l cnJubyBpcyBzZXQuDQo+ID4+PiArICovDQo+ID4+PiArX19ydGVfZXhwZXJpbWVudGFsDQo+ID4+ PiArc3RydWN0IHJ0ZV9mbG93X3BhdHRlcm5fdGVtcGxhdGUgKg0KPiA+Pj4gK3J0ZV9mbG93X3Bh dHRlcm5fdGVtcGxhdGVfY3JlYXRlKHVpbnQxNl90IHBvcnRfaWQsDQo+ID4+PiArCQljb25zdCBz dHJ1Y3QgcnRlX2Zsb3dfcGF0dGVybl90ZW1wbGF0ZV9hdHRyICp0ZW1wbGF0ZV9hdHRyLA0KPiA+ Pj4gKwkJY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2l0ZW0gcGF0dGVybltdLA0KPiA+Pj4gKwkJc3Ry dWN0IHJ0ZV9mbG93X2Vycm9yICplcnJvcik7DQo+ID4+PiArDQo+ID4+PiArLyoqDQo+ID4+PiAr ICogQHdhcm5pbmcNCj4gPj4+ICsgKiBAYiBFWFBFUklNRU5UQUw6IHRoaXMgQVBJIG1heSBjaGFu Z2Ugd2l0aG91dCBwcmlvciBub3RpY2UuDQo+ID4+PiArICoNCj4gPj4+ICsgKiBEZXN0cm95IHBh dHRlcm4gdGVtcGxhdGUuDQo+ID4+DQo+ID4+IERlc3Ryb3kgZmxvdyBwYXR0ZXJuIHRlbXBsYXRl Lg0KPiA+DQo+ID4gT2suDQo+ID4NCj4gPj4+ICsgKg0KPiA+Pj4gKyAqIFRoaXMgZnVuY3Rpb24g bWF5IGJlIGNhbGxlZCBvbmx5IHdoZW4NCj4gPj4+ICsgKiB0aGVyZSBhcmUgbm8gbW9yZSB0YWJs ZXMgcmVmZXJlbmNpbmcgdGhpcyB0ZW1wbGF0ZS4NCj4gPj4+ICsgKg0KPiA+Pj4gKyAqIEBwYXJh bSBwb3J0X2lkDQo+ID4+PiArICogICBQb3J0IGlkZW50aWZpZXIgb2YgRXRoZXJuZXQgZGV2aWNl Lg0KPiA+Pj4gKyAqIEBwYXJhbVtpbl0gcGF0dGVybl90ZW1wbGF0ZQ0KPiA+Pj4gKyAqICAgSGFu ZGxlIG9mIHRoZSB0ZW1wbGF0ZSB0byBiZSBkZXN0cm95ZWQuDQo+ID4+PiArICogQHBhcmFtW291 dF0gZXJyb3INCj4gPj4+ICsgKiAgIFBlcmZvcm0gdmVyYm9zZSBlcnJvciByZXBvcnRpbmcgaWYg bm90IE5VTEwuDQo+ID4+PiArICogICBQTURzIGluaXRpYWxpemUgdGhpcyBzdHJ1Y3R1cmUgaW4g Y2FzZSBvZiBlcnJvciBvbmx5Lg0KPiA+Pj4gKyAqDQo+ID4+PiArICogQHJldHVybg0KPiA+Pj4g KyAqICAgMCBvbiBzdWNjZXNzLCBhIG5lZ2F0aXZlIGVycm5vIHZhbHVlIG90aGVyd2lzZSBhbmQg cnRlX2Vycm5vIGlzIHNldC4NCj4gPj4+ICsgKi8NCj4gPj4+ICtfX3J0ZV9leHBlcmltZW50YWwN Cj4gPj4+ICtpbnQNCj4gPj4+ICtydGVfZmxvd19wYXR0ZXJuX3RlbXBsYXRlX2Rlc3Ryb3kodWlu dDE2X3QgcG9ydF9pZCwNCj4gPj4+ICsJCXN0cnVjdCBydGVfZmxvd19wYXR0ZXJuX3RlbXBsYXRl ICpwYXR0ZXJuX3RlbXBsYXRlLA0KPiA+Pj4gKwkJc3RydWN0IHJ0ZV9mbG93X2Vycm9yICplcnJv cik7DQo+ID4+PiArDQo+ID4+PiArLyoqDQo+ID4+PiArICogT3BhcXVlIHR5cGUgcmV0dXJuZWQg YWZ0ZXIgc3VjY2Vzc2Z1bCBjcmVhdGlvbiBvZiBhY3Rpb25zIHRlbXBsYXRlLg0KPiA+Pj4gKyAq IFRoaXMgaGFuZGxlIGNhbiBiZSB1c2VkIHRvIG1hbmFnZSB0aGUgY3JlYXRlZCBhY3Rpb25zIHRl bXBsYXRlLg0KPiA+Pj4gKyAqLw0KPiA+Pj4gK3N0cnVjdCBydGVfZmxvd19hY3Rpb25zX3RlbXBs YXRlOw0KPiA+Pj4gKw0KPiA+Pj4gKy8qKg0KPiA+Pj4gKyAqIEB3YXJuaW5nDQo+ID4+PiArICog QGIgRVhQRVJJTUVOVEFMOiB0aGlzIEFQSSBtYXkgY2hhbmdlIHdpdGhvdXQgcHJpb3Igbm90aWNl Lg0KPiA+Pj4gKyAqDQo+ID4+PiArICogRmxvdyBhY3Rpb25zIHRlbXBsYXRlIGF0dHJpYnV0ZXMu DQo+ID4+PiArICovDQo+ID4+PiArc3RydWN0IHJ0ZV9mbG93X2FjdGlvbnNfdGVtcGxhdGVfYXR0 cjsNCj4gPj4+ICsNCj4gPj4+ICsvKioNCj4gPj4+ICsgKiBAd2FybmluZw0KPiA+Pj4gKyAqIEBi IEVYUEVSSU1FTlRBTDogdGhpcyBBUEkgbWF5IGNoYW5nZSB3aXRob3V0IHByaW9yIG5vdGljZS4N Cj4gPj4+ICsgKg0KPiA+Pj4gKyAqIENyZWF0ZSBhY3Rpb25zIHRlbXBsYXRlLg0KPiA+Pg0KPiA+ PiBDcmVhdGUgZmxvdyBydWxlIGFjdGlvbnMgdGVtcGxhdGUuDQo+ID4NCj4gPiBZZXMsIGZpbmFs bHkgY29tcGVuc2F0aW5nIGZvciBtdWx0aXBsZSBubydzLg0KPiA+DQo+ID4+PiArICoNCj4gPj4+ ICsgKiBUaGUgYWN0aW9ucyB0ZW1wbGF0ZSBob2xkcyBhIGxpc3Qgb2YgYWN0aW9uIHR5cGVzIHdp dGhvdXQgdmFsdWVzLg0KPiA+Pj4gKyAqIEZvciBleGFtcGxlLCB0aGUgdGVtcGxhdGUgdG8gY2hh bmdlIFRDUCBwb3J0cyBpcyBUQ1Aoc19wb3J0ICsgZF9wb3J0KSwNCj4gPj4+ICsgKiB3aGlsZSB2 YWx1ZXMgZm9yIGVhY2ggcnVsZSB3aWxsIGJlIHNldCBkdXJpbmcgdGhlIGZsb3cgcnVsZSBjcmVh dGlvbi4NCj4gPj4+ICsgKiBUaGUgbnVtYmVyIGFuZCBvcmRlciBvZiBhY3Rpb25zIGluIHRoZSB0 ZW1wbGF0ZSBtdXN0IGJlIHRoZSBzYW1lDQo+ID4+PiArICogYXQgdGhlIHJ1bGUgY3JlYXRpb24u DQo+ID4+DQo+ID4+IEFnYWluLCBpdCBoaWdobHkgZGVwZW5kcyBvbiB0cmFuc2ZlciB2cyBub24t dHJhbnNmZXIuIE1vcmVvdmVyLA0KPiA+PiBhcHBsaWNhdGlvbiBkZWZpbml0ZWx5IGtub3cgaXQu IFNvLCBpdCBzaG91bGQgc2F5IGlmIHRoZSBhY3Rpb24NCj4gPj4gaXMgaW50ZW5kZWQgZm9yIHRy YW5zZmVyIG9yIG5vbi10cmFuc2ZlciBmbG93IHJ1bGUuDQo+ID4NCj4gPiBJdCBpcyB1cCB0byBh cHBsaWNhdGlvbiB0byBkZWZpbmUgd2hpY2ggcGF0dGVybiBpdCBpcyBnb2luZyB0byB1c2UgaW4g ZGlmZmVyZW50IHRhYmxlcy4NCj4gDQo+IFNhbWUgYXMgYWJvdmUuDQo+IA0KU2FtZSBjb21tZW50 IGFzIGFib3ZlLCB3aGF0IGRvIHlvdSB0aGluaz8NCg0KPiA+DQo+ID4+PiArICoNCj4gPj4+ICsg KiBAcGFyYW0gcG9ydF9pZA0KPiA+Pj4gKyAqICAgUG9ydCBpZGVudGlmaWVyIG9mIEV0aGVybmV0 IGRldmljZS4NCj4gPj4+ICsgKiBAcGFyYW1baW5dIHRlbXBsYXRlX2F0dHINCj4gPj4+ICsgKiAg IFRlbXBsYXRlIGF0dHJpYnV0ZXMuDQo+ID4+PiArICogQHBhcmFtW2luXSBhY3Rpb25zDQo+ID4+ PiArICogICBBc3NvY2lhdGVkIGFjdGlvbnMgKGxpc3QgdGVybWluYXRlZCBieSB0aGUgRU5EIGFj dGlvbikuDQo+ID4+PiArICogICBUaGUgc3BlYyBtZW1iZXIgaXMgb25seSB1c2VkIGlmIEBwIG1h c2tzIHNwZWMgaXMgbm9uLXplcm8uDQo+ID4+PiArICogQHBhcmFtW2luXSBtYXNrcw0KPiA+Pj4g KyAqICAgTGlzdCBvZiBhY3Rpb25zIHRoYXQgbWFya3Mgd2hpY2ggb2YgdGhlIGFjdGlvbidzIG1l bWJlciBpcyBjb25zdGFudC4NCj4gPj4+ICsgKiAgIEEgbWFzayBoYXMgdGhlIHNhbWUgZm9ybWF0 IGFzIHRoZSBjb3JyZXNwb25kaW5nIGFjdGlvbi4NCj4gPj4+ICsgKiAgIElmIHRoZSBhY3Rpb24g ZmllbGQgaW4gQHAgbWFza3MgaXMgbm90IDAsDQo+ID4+PiArICogICB0aGUgY29ycmVzcG9uZGlu ZyB2YWx1ZSBpbiBhbiBhY3Rpb24gZnJvbSBAcCBhY3Rpb25zIHdpbGwgYmUgdGhlIHBhcnQNCj4g Pj4+ICsgKiAgIG9mIHRoZSB0ZW1wbGF0ZSBhbmQgdXNlZCBpbiBhbGwgZmxvdyBydWxlcy4NCj4g Pj4+ICsgKiAgIFRoZSBvcmRlciBvZiBhY3Rpb25zIGluIEBwIG1hc2tzIGlzIHRoZSBzYW1lIGFz IGluIEBwIGFjdGlvbnMuDQo+ID4+PiArICogICBJbiBjYXNlIG9mIGluZGlyZWN0IGFjdGlvbnMg cHJlc2VudCBpbiBAcCBhY3Rpb25zLA0KPiA+Pj4gKyAqICAgdGhlIGFjdHVhbCBhY3Rpb24gdHlw ZSBzaG91bGQgYmUgcHJlc2VudCBpbiBAcCBtYXNrLg0KPiA+Pj4gKyAqIEBwYXJhbVtvdXRdIGVy cm9yDQo+ID4+PiArICogICBQZXJmb3JtIHZlcmJvc2UgZXJyb3IgcmVwb3J0aW5nIGlmIG5vdCBO VUxMLg0KPiA+Pj4gKyAqICAgUE1EcyBpbml0aWFsaXplIHRoaXMgc3RydWN0dXJlIGluIGNhc2Ug b2YgZXJyb3Igb25seS4NCj4gPj4+ICsgKg0KPiA+Pj4gKyAqIEByZXR1cm4NCj4gPj4+ICsgKiAg IEhhbmRsZSBvbiBzdWNjZXNzLCBOVUxMIG90aGVyd2lzZSBhbmQgcnRlX2Vycm5vIGlzIHNldC4N Cj4gPj4+ICsgKi8NCj4gPj4+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4gPj4+ICtzdHJ1Y3QgcnRl X2Zsb3dfYWN0aW9uc190ZW1wbGF0ZSAqDQo+ID4+PiArcnRlX2Zsb3dfYWN0aW9uc190ZW1wbGF0 ZV9jcmVhdGUodWludDE2X3QgcG9ydF9pZCwNCj4gPj4+ICsJCWNvbnN0IHN0cnVjdCBydGVfZmxv d19hY3Rpb25zX3RlbXBsYXRlX2F0dHIgKnRlbXBsYXRlX2F0dHIsDQo+ID4+PiArCQljb25zdCBz dHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uIGFjdGlvbnNbXSwNCj4gPj4+ICsJCWNvbnN0IHN0cnVjdCBy dGVfZmxvd19hY3Rpb24gbWFza3NbXSwNCj4gPj4+ICsJCXN0cnVjdCBydGVfZmxvd19lcnJvciAq ZXJyb3IpOw0KPiANCj4gW3NuaXBdDQoNCkJlc3QsDQpPcmkNCg==