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 BF9D5A04A9; Wed, 26 Jan 2022 16:12:46 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 525C942743; Wed, 26 Jan 2022 16:12:46 +0100 (CET) Received: from NAM04-DM6-obe.outbound.protection.outlook.com (mail-dm6nam08on2050.outbound.protection.outlook.com [40.107.102.50]) by mails.dpdk.org (Postfix) with ESMTP id 7405442716 for ; Wed, 26 Jan 2022 16:12:45 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Wv5kGCxso9HPvzy7WIiYGwmUAdegv50g7eWZBz2nS1PrmMiseUqTAKZ7/YWVq43VXX9hanYt4mPfpdp90H1QuzRdJRbPLKmHuPqLNJjSwGyTSC4r4zjcY5TFwpHmRgMz8mPL2Mi0xlPR2vQq84eTeZ1XEa86t6ri4/1ZHCuH7W8Ve0UDZtrz31vQLvb0ecYaMsocFWtzw0FS6I1jWR+B/S30F52kqnM1XA9lXpgwDGzskM9IVALPOErgfUDtVRF9UnMR03nD001o8LiBZj3t3QcQp03Dz7dEK3m9ieamRPz+cPbKar9hAfKaPSKF8qF3QtjN2Rc+wnZqm24A1KJaAA== 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=/37sKt2MG13JYf11hybzJm657I8afl08DTW9YyQ+XLk=; b=JOlO7lqDHpaG4Pv8ZcyQxHouS7n44AZ18TFfCzNqPyyiRu4kextgsHtZL5kaSvEDT+806XsEv1Y4yUey/Uljb6W3iR5XH3TzMWCfvi6c2ADlw7V5w8E+3GbJwmBrqE5xgAN0idCt7QopaCKiE9Y4koPI7j0oB1TGU+c0u3N5PJOxytkxdqc+ukE2SMgXHHw6JTUDY9JffE8OJcXqNf6PR3zOvGLht6CzU2tMOi1to2RzaBgJ+apWvEkVEhK81BUBL4b9bnato7IKXsa0cpvxqFJAxSMtl3h7NxopyJJLtRpyWeos4QwpIvXUwVc6RyDu8eSgG2LqthqshbxO/72+/g== 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=/37sKt2MG13JYf11hybzJm657I8afl08DTW9YyQ+XLk=; b=ECt3Z3MJ1JUvlQS6ZPD/u8UHHUTcWrtkcxh6Xc8z1gTV91kS5udoo0g70bh+Jk73aLPCLzl3Ud8IxGu3Zr+GttwAwwiI0uOyOS7HanpXEOStb6gVmjooV0oth+f09/W0+LB2sQ6VoDXDVXjtRMVolQeDfoWHJ2Fi97JNlsoI2rSfzCIveEy66eLMiI5iCiREOy3xA5L6W5LBL3kAu24DTNeCCiOFIBbUoi1FqJkGt3AIU9kGgvpRI3lxIcSc9iRutCSMjr9Dm9Vv48axk3Bz5+2B7E91DONggkbj9L0OWXYDQfhmqTuA+4Y8fgMmj+FnaCayDGP+sg3iY8JO2KJGyA== Received: from MWHPR1201MB0272.namprd12.prod.outlook.com (2603:10b6:301:52::13) by DM6PR12MB3705.namprd12.prod.outlook.com (2603:10b6:5:14a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4930.15; Wed, 26 Jan 2022 15:12:43 +0000 Received: from MW2PR12MB4666.namprd12.prod.outlook.com (2603:10b6:302:13::22) by MWHPR1201MB0272.namprd12.prod.outlook.com (2603:10b6:301:52::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.14; Wed, 26 Jan 2022 15:12:42 +0000 Received: from MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::78:438a:c6b7:1cc1]) by MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::78:438a:c6b7:1cc1%3]) with mapi id 15.20.4909.019; Wed, 26 Jan 2022 15:12:42 +0000 From: Ori Kam To: Bruce Richardson CC: "NBU-Contact-Thomas Monjalon (EXTERNAL)" , Jerin Jacob , Alexander Kozyrev , dpdk-dev , Ivan Malov , Andrew Rybchenko , Ferruh Yigit , "mohammad.abdul.awal@intel.com" , Qi Zhang , Jerin Jacob , Ajit Khaparde , David Marchand , Olivier Matz , Stephen Hemminger Subject: RE: [PATCH v2 01/10] ethdev: introduce flow pre-configuration hints Thread-Topic: [PATCH v2 01/10] ethdev: introduce flow pre-configuration hints Thread-Index: AQHYDIBlr97eIE8EiUKphVVj8UOlEqxyRq0AgAAx7gCAAAL1gIAABlkAgAFK2cCAAEewAIAAAT0AgAAGo/CAARAvAIAACDqAgAAP0ACAABc2gIAAGKtA Date: Wed, 26 Jan 2022 15:12:41 +0000 Message-ID: References: <20211006044835.3936226-1-akozyrev@nvidia.com> <8883807.CDJkKcVGEf@thomas> 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: 3dd92237-dccc-48f7-3572-08d9e0de4c7c x-ms-traffictypediagnostic: MWHPR1201MB0272:EE_|DM6PR12MB3705:EE_ x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 0xKZbUXjEsEv1CLwM95ewChVdBwfdLcdHeYMlrzvs9uh84PPQMUBEHGej4z/y54NNMpWDTHSGHY70m+cJRpOlUKgDVx4j7r8HLULQEQC3CMKyysGeBIzD1smRLqkOXsMhymYffowdtAM3Fr5g6EsERViAULd/FgCx9Nc5qRNt5zi334yD3USA7BzcsUdOjXvVugDXIi5/2RO+37z3S78dL3rC5XLJwN55OxFIkdgRNgEjoganO/LQnr/Ps6N0wtTOdGbssw3ZYbSbIPdEDPXcwloloxIHZgKKaBtqLkB+pP8i86ObkbEJhSjB26n2Kw/+8xPOIodGgdXOGZqSv4y+NdFWnVkSwK75HeEVh6gcMNzfD/n5OLPSuCVvPF+Fh5AtEibD5lrIzvGyf5652PXWU0xhJJbzzzAQRZCi8I5Ifru/sBf6viMnB12ER9OiyDqEVj38QX67P1KiQiw9oWSEKOlCWET4bN63bwojISmHPR3E+7mVNxL/WKtMswcu79+sMp7QdjuTztAMDy8itpxbHjf8EgL+5FGlYz4bkTZE1d/bPyFLJ0XMstqaVUmf12z4vEGS5C+8orjDT/mfL0IejI27OwFRoIrxWh33I7ZtFGmUNVhEpwTfWuTLL1AQCNk5CdNjM/vuSPiQXJ+hBUmODKjFUIjXOCPXyC9N1AaTOkStaKcyY+Ys/UFCf2LWXlhDsDv+7qnVK5Lo/Uq61NGeQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MWHPR1201MB0272.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(83380400001)(508600001)(54906003)(64756008)(316002)(26005)(71200400001)(186003)(66556008)(66446008)(66476007)(33656002)(66946007)(6916009)(76116006)(52536014)(5660300002)(7696005)(6506007)(9686003)(53546011)(86362001)(7416002)(122000001)(38070700005)(8676002)(4326008)(38100700002)(8936002)(55016003)(2906002)(20210929001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZTZXSlZNdGxmeVhvVXBHM2t6bVBWL1dCMmVvVGhwaUdwQ1Z4aEpVS3pKMjYz?= =?utf-8?B?TWR5T1dteUFXY2YrRktWUmovNHZqVjBzWmxGWW81NU55SkRBdHJpcHhVWUI3?= =?utf-8?B?aW04dEZYOTE2SCt1dVlQZWpDbmkrMS9hTHpieG84YmdGQ1VraGxwWHhEajMx?= =?utf-8?B?SU5FYWtBZkVYSGFZQ3pFTDJxbjNRLzM2bjQvdHVMVDBmNTc0c0s3cEFpVnFq?= =?utf-8?B?RjFEaU1ZWk9qcCtGMWIwYWhvaXZGWTFUK0grQ2d2VVk4VWdZWG9yQkxOdFg1?= =?utf-8?B?ZWJ5NDBNUnBobzgxZGt1S2lLaTN0YmdDaURsVG1ubWhScmg0SlFGTy9TVnJy?= =?utf-8?B?dGdQTWxVbDVyaEJXemVmUm9EYVdxNlorb25HQzdtdGpvN2xwTHFUU3Jua2Nt?= =?utf-8?B?OVB0WWdpbmZObm9FKzF3aE1vRWVUU21QWHg5UmZ5Sk52SDFLT0Znd3dSNDZl?= =?utf-8?B?Vks1U0E4enNFL21PQjBBR0E5ZklOeHA4SzJKZmhsNGQyY2dLdllKaEdBY0R0?= =?utf-8?B?WS84R2dqbDVna3BnLzJvNGtGa05iYmo1NFl1aWhZd1dSRVJDK1ZjVEFuL0ZF?= =?utf-8?B?TzNFeUIwUzV4dEZQdXVMYkNlSnVWZUN4T28xdm9RaU9HVG9iYTVLbXpldU1w?= =?utf-8?B?V2Q2dk9FVWl0Rkc4alRuQW0xWWRRUUtUNk1nd2ZZQTJweGN6SlFFem42bSt6?= =?utf-8?B?Q0ZpN0RodSswWmdtbDFwNHZOT3puRzZQUTJKdFdQQ1BaajIvWDRnQ3VPcTJy?= =?utf-8?B?cHRUN09VbnpRNUwraGVnd0lwNDFjbUtodkZpYTRpS1dGRTlIUnoyc3Bnc3VW?= =?utf-8?B?T2RhZXRuWmdzdVd4Wkw0ZnpDR2wrVEs5NG1nM3YveitCWXdUV1BPTHd0ZXgv?= =?utf-8?B?NFhPaVZWNzJ3RHFCSGs5L09CVjY2dDBDcllsdldrTjBnTjF3aXVnUlExWVYx?= =?utf-8?B?Z1E1alE5RGVHZUtuUUxFMld2MFZxbU1oaU9QUXB6MGNSdkV6RFBCbmhVaTNy?= =?utf-8?B?UlVyaE5iQ2diL2lwZWtyV3NJQkNnM3hFeG9mMVhleTV1czcvWUJaSDNaOEI2?= =?utf-8?B?SmJCOFZZSWR2MFdoUDZJcG9UbXZoajB3T2d4eEtWT1JkTWZFaVhxNFB3K2Nv?= =?utf-8?B?clVDa2FVc3I4QTZnTW9Bckx4dmlmcDdPbTFUTmNkTVgwb3o0eXduTXZqZ3k1?= =?utf-8?B?Q1ZwTDRWWVNleExHZGQrb0pLSlRqOStzb1pYT3lFUVg4bzhVanprOEdybHhz?= =?utf-8?B?QjZnUHdpVlNqbENERVlNNjFvQzNpRWo2TDdjMVVGUDRwZTI2SmFUNUNHUWdL?= =?utf-8?B?SzBHdVhVYzh4SDQ0ZDgzRlhiY3YwMUFZMVJ3NTB0dzRzaC85R3N2UW5ZNTBB?= =?utf-8?B?NEh0VlIzREcvejFVNGhqSjllZ0swaDhuQ28xMEN2Z0NReUpPbnBxd1BOelNY?= =?utf-8?B?QXVDdFJ6ODZHLzAxeGkwYitYNGVTR3BTS2U2VWJQM2VGN1BHQ3hIZDl5bGZa?= =?utf-8?B?TEpPeldWRHQrbWlBM2ZhNnIrVkh2L2VocXd5THF6ZEtBazQ4NFB3U05HRUZS?= =?utf-8?B?ai9HWmhZTUMwNXRIelFyU2tBUy9XVVdycXYvRFE0QVY4ZGtmMUJMZDdBUXJn?= =?utf-8?B?eHgvK1huM2hrRG5Db0g2NXZDVmprRkt2d1AxRGFxWUtIekR5QXFVeDhJYkpq?= =?utf-8?B?eHM2TUVYRGcxY0tyUGwxTVovQXJKRU43ZUY1YnBQWkY0RWNZRTVrN3M1YVBD?= =?utf-8?B?QTN6eEFHc2FjUEpTRlFPYmE4T3htMUFobHdXOXYyLy9tUjR1MzRaSHB0WGZY?= =?utf-8?B?ZVZGWm00bE5Md1d4b2dBSkZlUThzaXFSL0JnRitZL0tMRUhGLzJialgyeWlK?= =?utf-8?B?T3lCSG9Ybjl3OE1nNjI0Z0cxMWtkTTV6b3NiUXJVcVlndW8venlJNXJsQlJD?= =?utf-8?B?Z2VwakQzRm5mYlZmd0c3dTAxekg0R2U5bE1KQnN2WHg5SWFoUURPbE1yVWV0?= =?utf-8?B?TERnb2RmWE9scGZJemErZDlpdjJOU2hEVHlYY01DRGN5eHY1UHQ1cHZRa0RT?= =?utf-8?B?VjdRNGtmNmRZd0NwaDlTTjVGUmYvVytQY3I0NzNGdXVidGJUR1ZYQ2d4eXdH?= =?utf-8?B?WDFqVTUxZzZLWVdEdy9EdWxHT3JtWEhSc2JKQTdtM2Q0U2dxK3pQSkZ5bXhG?= =?utf-8?Q?vF0UlXqZR2bDxUSKtY0puMo=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: 3dd92237-dccc-48f7-3572-08d9e0de4c7c X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Jan 2022 15:12:41.8956 (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: llVAD/RPXn/2AdwsmMSCwf5frdgxnfrTFMblzkIm9CDNU0AACPEDVDskFRa/yTaJhvj1wM2S1GI3ARpjhllHWg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB3705 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 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQnJ1Y2UgUmljaGFyZHNv biA8YnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgSmFudWFy eSAyNiwgMjAyMiAzOjQxIFBNDQo+IFRvOiBPcmkgS2FtIDxvcmlrYUBudmlkaWEuY29tPg0KPiBT dWJqZWN0OiBSZTogW1BBVENIIHYyIDAxLzEwXSBldGhkZXY6IGludHJvZHVjZSBmbG93IHByZS1j b25maWd1cmF0aW9uIGhpbnRzDQo+IA0KPiBPbiBXZWQsIEphbiAyNiwgMjAyMiBhdCAxMjoxOTo0 M1BNICswMDAwLCBPcmkgS2FtIHdyb3RlOg0KPiA+DQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBUaG9tYXMgTW9uamFsb24gPHRob21hc0Btb25qYWxv bi5uZXQ+DQo+ID4gPiBTZW50OiBXZWRuZXNkYXksIEphbnVhcnkgMjYsIDIwMjIgMToyMiBQTQ0K PiA+ID4gU3ViamVjdDogUmU6IFtQQVRDSCB2MiAwMS8xMF0gZXRoZGV2OiBpbnRyb2R1Y2UgZmxv dyBwcmUtY29uZmlndXJhdGlvbiBoaW50cw0KPiA+ID4NCj4gPiA+IDI2LzAxLzIwMjIgMTE6NTIs IEJydWNlIFJpY2hhcmRzb246DQo+ID4gPiA+IFRoZSBzY2VuYXJpbyBpcyBhcyBmb2xsb3dzLiBT dXBwb3NlIHdlIGhhdmUgdGhlIGluaXRpYWwgc3RhdGUgYXMgYmVsb3c6DQo+ID4gPiA+DQo+ID4g PiA+IHN0cnVjdCB4X2Rldl9jZmcgew0KPiA+ID4gPiAgICBpbnQgeDsNCj4gPiA+ID4gfTsNCj4g PiA+ID4NCj4gPiA+ID4gaW50DQo+ID4gPiA+IHhfZGV2X2NmZyhpbnQgZGV2X2lkLCBzdHJ1Y3Qg eF9kZXZfY2ZnICpjZmcpDQo+ID4gPiA+IHsNCj4gPiA+ID4gICAgc3RydWN0IHhfZGV2ICpkZXYg PSB4X2RldnNbaWRdOw0KPiA+ID4gPiAgICAvLyBzb21lIHNldHVwL2NvbmZpZyBtYXkgZ28gaGVy ZQ0KPiA+ID4gPiAgICByZXR1cm4gZGV2LT5jb25maWd1cmUoY2ZnLCBzaXplb2YoY2ZnKSk7IC8v IHNpemVvZihjZmcpID09IDQNCj4gPiA+ID4gfQ0KPiA+ID4gPg0KPiA+ID4gPiBOb3csIHN1cHBv c2luZyB3ZSBuZWVkIHRvIGFkZCBpbiBhIG5ldyBmaWVsZCBpbnRvIHRoZSBjb25maWcgc3RydWN0 dXJlLCBhDQo+ID4gPiA+IHZlcnkgY29tbW9uIG9jY3VyYW5jZS4gVGhpcyB3aWxsIGluZGVlZCBi cmVhayB0aGUgQUJJLCBzbyB3ZSBuZWVkIHRvIHVzZQ0KPiA+ID4gPiBBQkkgdmVyc2lvbmluZywg dG8gZW5zdXJlIHRoYXQgYXBwcyBwYXNzaW5nIGluIHRoZSBvbGQgc3RydWN0dXJlLCBvbmx5IGNh bGwNCj4gPiA+ID4gYSBmdW5jdGlvbiB3aGljaCBleHBlY3RzIHRoZSBvbGQgc3RydWN0dXJlLiBU aGVyZWZvcmUsIHdlIG5lZWQgYSBjb3B5IG9mDQo+ID4gPiA+IHRoZSBvbGQgc3RydWN0dXJlLCBh bmQgYSBmdW5jdGlvbiB0byB3b3JrIG9uIGl0LiBUaGlzIGdpdmVzIHRoaXMgcmVzdWx0Og0KPiA+ ID4gPg0KPiA+ID4gPiBzdHJ1Y3QgeF9kZXZfY2ZnIHsNCj4gPiA+ID4gCWludCB4Ow0KPiA+ID4g PiAJYm9vbCBmbGFnOyAvLyBuZXcgZmllbGQ7DQo+ID4gPiA+IH07DQo+ID4gPiA+DQo+ID4gPiA+ IHN0cnVjdCB4X2Rldl9jZmdfdjIyIHsgLy8gbmVlZGVkIGZvciBBQkktdmVyc2lvbmVkIGZ1bmN0 aW9uDQo+ID4gPiA+IAlpbnQgeDsNCj4gPiA+ID4gfTsNCj4gPiA+ID4NCj4gPiA+ID4gLyogdGhp cyBmdW5jdGlvbiB3aWxsIG9ubHkgYmUgY2FsbGVkIGJ5ICpuZXdseS1saW5rZWQqIGNvZGUsIHdo aWNoIHVzZXMNCj4gPiA+ID4gICogdGhlIG5ldyBzdHJ1Y3R1cmUgKi8NCj4gPiA+ID4gaW50DQo+ ID4gPiA+IHhfZGV2X2NmZyhpbnQgZGV2X2lkLCBzdHJ1Y3QgeF9kZXZfY2ZnICpjZmcpDQo+ID4g PiA+IHsNCj4gPiA+ID4gICAgc3RydWN0IHhfZGV2ICpkZXYgPSB4X2RldnNbaWRdOw0KPiA+ID4g PiAgICAvLyBzb21lIHNldHVwL2NvbmZpZyBtYXkgZ28gaGVyZQ0KPiA+ID4gPiAgICByZXR1cm4g ZGV2LT5jb25maWd1cmUoY2ZnLCBzaXplb2YoY2ZnKSk7IC8vIHNpemVvZihjZmcpIGlzIG5vdyA4 DQo+ID4gPiA+IH0NCj4gPiA+ID4NCj4gPiA+ID4gLyogdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQg YnkgYXBwcyBsaW5rZWQgYWdhaW5zdCBvbGQgdmVyc2lvbiAqLw0KPiA+ID4gPiBpbnQNCj4gPiA+ ID4geF9kZXZfY2ZnX3YyMihpbnQgZGV2X2lkLCBzdHJ1Y3QgeF9kZXZfY2ZnX3YyMiAqY2ZnKQ0K PiA+ID4gPiB7DQo+ID4gPiA+ICAgIHN0cnVjdCB4X2RldiAqZGV2ID0geF9kZXZzW2lkXTsNCj4g PiA+ID4gICAgLy8gc29tZSBzZXR1cC9jb25maWcgbWF5IGdvIGhlcmUNCj4gPiA+ID4gICAgcmV0 dXJuIGRldi0+Y29uZmlndXJlKCh2b2lkICopY2ZnLCBzaXplb2YoY2ZnKSk7IC8vIHNpemVvZihj ZmcpIGlzIHN0aWxsIDQNCj4gPiA+ID4gfQ0KPiA+ID4gPg0KPiA+ID4gPiBXaXRoIHRoZSBhYm92 ZSBsaWJyYXJ5IGNvZGUsIHdlIGhhdmUgZGlmZmVyZW50IGZ1bmN0aW9ucyB1c2luZyB0aGUNCj4g PiA+ID4gZGlmZmVyZW50IHN0cnVjdHVyZXMsIHNvIEFCSSBjb21wYXRpYmlsaXR5IGlzIHByZXNl cnZlZCAtIGFwcHMgcGFzc2luZyBpbiBhDQo+ID4gPiA+IDQtYnl0ZSBzdHJ1Y3QgY2FsbCBhIGZ1 bmN0aW9uIHVzaW5nIHRoZSA0LWJ5dGUgc3RydWN0LCB3aGlsZSBuZXdlciBhcHBzIGNhbg0KPiA+ ID4gPiB1c2UgdGhlIDgtYnl0ZSB2ZXJzaW9uLg0KPiA+ID4gPg0KPiA+ID4gPiBUaGUgZmluYWwg cGFydCBvZiB0aGUgcHV6emxlIGlzIHRoZW4gaG93IGRyaXZlcnMgcmVhY3QgdG8gdGhpcyBjaGFu Z2UuDQo+ID4gPiA+IE9yaWdpbmFsbHksIGFsbCBkcml2ZXJzIG9ubHkgdXNlICJ4IiBpbiB0aGUg Y29uZmlnIHN0cnVjdHVyZSBiZWNhdXNlIHRoYXQNCj4gPiA+ID4gaXMgYWxsIHRoYXQgdGhlcmUg aXMuIFRoYXQgd2lsbCBzdGlsbCBjb250aW51ZSB0byB3b3JrIGZpbmUgaW4gdGhlIGFib3ZlDQo+ ID4gPiA+IGNhc2UsIGFzIGJvdGggNC1ieXRlIGFuZCA4LWJ5dGUgc3RydWN0cyBoYXZlIHRoZSBz YW1lIHggdmFsdWUgYXQgdGhlIHNhbWUNCj4gPiA+ID4gb2Zmc2V0LiBpLmUuIG5vIGRyaXZlciB1 cGRhdGVzIGZvciB4X2RldiBpcyBuZWVkZWQuDQo+ID4gPiA+DQo+ID4gPiA+IE9uIHRoZSBvdGhl ciBoYW5kLCBpZiB0aGVyZSBhcmUgZHJpdmVycyB0aGF0IGRvIHdhbnQvbmVlZCB0aGUgbmV3IGZp ZWxkLA0KPiA+ID4gPiB0aGV5IGNhbiBhbHNvIGdldCB0byB1c2UgaXQsIGJ1dCB0aGV5IGRvIG5l ZWQgdG8gY2hlY2sgZm9yIGl0cyBwcmVzZW5jZQ0KPiA+ID4gPiBiZWZvcmUgdGhleSBkbyBzbywg aS5lIHRoZXkgd291bGQgd29yayBhcyBiZWxvdzoNCj4gPiA+ID4NCj4gPiA+ID4gCWlmIChzaXpl X3BhcmFtID4gc3RydWN0KHhfZGV2X2NmZ192MjIpKSB7IC8vIG9yICI9PSBzdHJ1Y3QoeF9kZXZf Y2ZnKSINCj4gPiA+ID4gCQkvLyB1c2UgZmxhZ3MgZmllbGQNCj4gPiA+ID4gCX0NCj4gPiA+ID4N Cj4gPiA+ID4gSG9wZSB0aGlzIGlzIGNsZWFyIG5vdy4NCj4gPiA+DQo+ID4gPiBZZXMsIHRoaXMg aXMgdGhlIGtpbmQgb2YgZXhwbGFuYXRpb24gd2UgbmVlZCBpbiBvdXIgZ3VpZGVsaW5lIGRvYy4N Cj4gPiA+IEFsdGVybmF0aXZlcyBjYW4gYmUgZG9jdW1lbnRlZCBhcyB3ZWxsLg0KPiA+ID4gSWYg d2UgY2FuIGxpc3QgcHJvcy9jb25zIGluIHRoZSBkb2MsIGl0IHdpbGwgYmUgZWFzaWVyIHRvIGNo b29zZQ0KPiA+ID4gdGhlIGJlc3QgYXBwcm9hY2ggYW5kIHRvIGV4cGxhaW4gdGhlIGNob2ljZSBk dXJpbmcgY29kZSByZXZpZXcuDQo+ID4gPg0KPiA+ID4NCj4gPiBUaGFua3MgeW91IHZlcnkgbXVj aCBmb3IgdGhlIGNsZWFyIGV4cGxhbmF0aW9uLg0KPiA+DQo+ID4gVGhlIGRyYXcgYmFjayBpcyB0 aGF0IHdlIG5lZWQgYWxzbyB0byBkdXBsaWNhdGUgdGhlIGZ1bmN0aW9ucy4NCj4gPiBVc2luZyB0 aGUgZmxhZ3MvdmVyc2lvbiB3ZSBvbmx5IG5lZWQgdG8gY3JlYXRlIG5ldyBzdHJ1Y3R1cmVzDQo+ ID4gYW5kIGZyb20gYXBwbGljYXRpb24gcG9pbnQgb2YgdmlldyBpdCBrbm93cyB3aGF0IGV4dGEg ZmllbGRzIGl0IGdldHMuDQo+ID4gKEkgYWdyZWUgdGhhdCBhcHBsaWNhdGlvbiBrbm93bGVkZ2Ug aGFzIGRvd25zaWRlcyBidXQgYWxzbyBhZHZhbnRhZ2VzKQ0KPiA+DQo+ID4gSW4gdGhlIGNhc2Ug b2YgZmxhZ3MvdmVyc2lvbiB5b3VyIGV4YW1wbGUgd2lsbCBsb29rIGxpa2UgdGhpcyAodGhpcyBp cyBmb3IgdGhlIHJlY29yZCBhbmQgbWF5IG90aGVyDQo+ID4gZGV2ZWxvcGVycyBhcmUgaW50cmVz dGVkKToNCj4gPg0KPiA+IHN0cnVjdCB4X2Rldl9jZmcgeyAgLy9vcmlnaW5hbCBzdHJ1Y3QNCj4g PiAJaW50IHZlcjsNCj4gPiAJaW50IHg7DQo+ID4gfTsNCj4gPg0KPiA+IHN0cnVjdCB4X2Rldl9j ZmdfdjIgeyAvLyBuZXcgc3RydWN0DQo+ID4gCWludCB2ZXI7DQo+ID4gIAlpbnQgeDsNCj4gPiAJ Ym9vbCBmbGFnOyAvLyBuZXcgZmllbGQ7DQo+ID4gIH07DQo+ID4NCj4gPg0KPiA+IFRoZSBmdW5j dGlvbiBpcyBhbHdheXMgdGhlIHNhbWUgZnVuY3Rpb246DQo+ID4gIHhfZGV2X2NmZyhpbnQgZGV2 X2lkLCBzdHJ1Y3QgeF9kZXZfY2ZnICpjZmcpDQo+ID4gIHsNCj4gPiAgICAgc3RydWN0IHhfZGV2 ICpkZXYgPSB4X2RldnNbaWRdOw0KPiA+ICAgICAvLyBzb21lIHNldHVwL2NvbmZpZyBtYXkgZ28g aGVyZQ0KPiA+ICAgICByZXR1cm4gZGV2LT5jb25maWd1cmUoY2ZnKTsNCj4gPiAgfQ0KPiA+DQo+ ID4gV2hlbiBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gd2l0aCBvbGQgc3RydWN0Og0KPiA+IFhfZGV2 X2NmZyhpZCwgKHN0cnVjdCB4X2Rldl9jZmcgKiljZmcpDQo+ID4NCj4gPiBXaGVuIGNhbGxpbmcg dGhpcyBmdW5jdGlvbiB3aXRoIG5ldyBzdHJ1Y3Q6DQo+ID4gWF9kZXZfY2ZnKGlkLCAoc3RydWN0 IHhfZGV2X2NmZyAqKWNmZ192MikNCj4gPg0KPiA+IEluIFBNRDoNCj4gPiBJZiAoY2ZnLT52ZXIg Pj0gMikNCj4gPiAJLy8gdmVyc2lvbiAyIGxvZ2ljDQo+ID4gRWxzZSBJZiAoY2ZnLT52ID49MCkN Cj4gPiAJLy8gYmFzZSB2ZXJzaW9uIGxvZ2ljDQo+ID4NCj4gPg0KPiA+IFdoZW4gdXNpbmcgZmxh Z3MgaXQgZ2l2ZXMgZXZlbiBtb3JlIGNvbnRyb2wgc2luY2UgcG1kIGNhbiB0ZWxsIGV4YWN0bHkg d2hhdA0KPiA+IGZlYXR1cmVzIGFyZSByZXF1aXJlZC4NCj4gPg0KPiA+IEFsbCBvcHRpb25zIGhh dmUgcHJvbnMvY29ucw0KPiA+IEkgdm90ZSBmb3IgdGhlIHZlcnNpb24gb25lLg0KPiA+DQo+ID4g V2UgY2FuIGhhdmUgYSBwb2xsIPCfmIoNCj4gPiBPciBsaWtlIFRob21hcyBzYWlkIGxpc3QgcHJv cyBhbmQgY29ucyBhbmQgZWFjaCBzdWJzeXN0ZW0gY2FuDQo+ID4gaGF2ZSBpdCBvd24gc2VsZWN0 aW9uLg0KPiANCj4gVGhlIGJpZ2dlc3QgaXNzdWUgSSBoYXZlIHdpdGggdGhpcyB2ZXJzaW9uIGFw cHJvYWNoIGlzIGhvdyBpcyB0aGUgdXNlcg0KPiBtZWFudCB0byBrbm93IHdoYXQgdmVyc2lvbiBu dW1iZXIgdG8gcHV0IGludG8gdGhlIHN0cnVjdHVyZT8gV2hlbiB0aGUgdXNlcg0KPiB1cGdyYWRl cyBmcm9tIG9uZSB2ZXJzaW9uIG9mIERQREsgdG8gdGhlIG5leHQsIGFyZSB0aGV5IG1hbnVhbGx5 IHRvIHVwZGF0ZQ0KPiB0aGVpciB2ZXJzaW9uIG51bWJlcnMgaW4gYWxsIHRoZWlyIHN0cnVjdHVy ZXM/IElmIHRoZXkgZG9uJ3QsIHRoZXkgdGhlbiBtYXkNCj4gYmUgbWlzdGlmaWVkIGlmIHRoZXkg dXNlIHRoZSBuZXdlciBmaWVsZHMgYW5kIGZpbmQgdGhhdCB0aGV5ICJkb24ndCB3b3JrIg0KPiBi ZWNhdXNlIHRoZXkgZm9yZ290IHRoYXQgdGhleSBuZWVkIHRvIHVwZGF0ZSB0aGUgdmVyc2lvbiBm aWVsZCB0byB0aGUgbmV3ZXINCj4gdmVyc2lvbiBhdCB0aGUgc2FtZSB0aW1lLiBUaGUgcmVhc29u IEkgcHJlZmVyIHRoZSBzaXplIGZpZWxkIGlzIHRoYXQgaXQgaXMNCj4gaW1wb3NzaWJsZSBmb3Ig dGhlIGVuZCB1c2VyIHRvIG1lc3MgdGhpbmdzIHVwLCBhbmQgdGhlIGVudGlyaXR5IG9mIHRoZQ0K PiBtZWNoYW5pc20gaXMgaW50ZXJuYWwsIGFuZCBoaWRkZW4gZnJvbSB0aGUgdXNlci4NCj4gDQoN ClRoZSBzb2x1dGlvbiBpcyBzaW1wbGUgd2hlbiB5b3UgZGVmaW5lIG5ldyBzdHJ1Y3QgaW4gdGhl IHN0cnVjdCB5b3Ugd3JpdGUgd2hhdA0Kc2hvdWxkIGJlIHRoZSB2ZXJzaW9uIG51bWJlci4NCllv dSBjYW4gYWxzbyBkZWZpbmUgdGhhdCAwIGlzIHRoZSBsYXRlc3Qgb25lLCBzbyBhcHBsaWNhdGlv biB0aGF0IGFyZSBhcmUgd3JpdGluZyBjb2RlIHdoaWNoDQppcyBzaXplIGFnbm9zdGljIHdpbGwg anVzdCBzZXQgMCBhbGwgdGhlIHRpbWUuDQoNCiANCj4gUmVnYXJkcywNCj4gL0JydWNlDQo=