From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 23E08A04BA; Wed, 7 Oct 2020 14:14:11 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id C04821B9EE; Wed, 7 Oct 2020 14:14:08 +0200 (CEST) Received: from nat-hk.nvidia.com (nat-hk.nvidia.com [203.18.50.4]) by dpdk.org (Postfix) with ESMTP id 719BE1B9E0 for ; Wed, 7 Oct 2020 14:14:06 +0200 (CEST) Received: from HKMAIL102.nvidia.com (Not Verified[10.18.92.100]) by nat-hk.nvidia.com (using TLS: TLSv1.2, AES256-SHA) id ; Wed, 07 Oct 2020 20:14:04 +0800 Received: from HKMAIL102.nvidia.com (10.18.16.11) by HKMAIL102.nvidia.com (10.18.16.11) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Wed, 7 Oct 2020 12:13:59 +0000 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.176) by HKMAIL102.nvidia.com (10.18.16.11) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Wed, 7 Oct 2020 12:13:59 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WYN0+bEPAP9fRgkAqr/Jzit9TCXEPdobWcvD9G4BAMFfSjd8v19dGOG0SlibDdsCm2/xifUSMpsMdDOLtAQ3q2TEiJReU9X99BiL7o5Yyv/j3HeBIBkdt9n1Bwl5+ggelKSJpEv23XQhRxPqgkKedcf/ARxu5nrZjRplTL2spFz+bUtyFY32JrxnQDGF/SNVMeppIDIU7mrTTc1EDDmrBvrUjtaTDkx7VKllufvPbN8BHMp3yZ2Y9EiFZWQISXs8YQry3YPRIU8VsO62oF2y9uFirVOxFAE9+2/AJ4ge5cf+wYX00z9UJVT7vAwJNN1rn4/VMMK4U0xCq+5iG09bkQ== 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-SenderADCheck; bh=onrojducTjai2uMsqlXH0Zlu1SiXSqGhMxmex1yzrAE=; b=n5a2BNDN7DrV3yvMky7FJHVjcWudSScx3oSceN53+QKlP7ErBCD27RtMFq27E4SkGZyvVbFuVIH1vNZqrXoCb/lPOhdAcBLsnNGM544TlGpeocqAKCVqZXhYW6Cjc2L+A/JJJrdP4LdsykFo8vukZI5JsEOSOybpVZvDQunvC0Ciuvu+N5JVrUaLK6J4bkUDH0XbI9MCmjA0RkHqnhNAnJe3TA03qMYpatd06L3iC0XmiNrcdR6o7u0IiL8JhF6gcjXBsLcqRRGoQNpfrSFW0ptEuUu1J2jJKMhnevZe3Qlo67Kj7OVti/iy/UE9c6i8mVYE7C1By4oblrfv/ck5xA== 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 Received: from MN2PR12MB4286.namprd12.prod.outlook.com (2603:10b6:208:199::22) by BL0PR12MB4994.namprd12.prod.outlook.com (2603:10b6:208:1ca::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3455.22; Wed, 7 Oct 2020 12:13:57 +0000 Received: from MN2PR12MB4286.namprd12.prod.outlook.com ([fe80::61fd:a36e:cf4f:2d3f]) by MN2PR12MB4286.namprd12.prod.outlook.com ([fe80::61fd:a36e:cf4f:2d3f%9]) with mapi id 15.20.3455.023; Wed, 7 Oct 2020 12:13:57 +0000 From: Ori Kam To: Maxime Leroy , Dekel Peled , NBU-Contact-Thomas Monjalon CC: "ferruh.yigit@intel.com" , "arybchenko@solarflare.com" , "dev@dpdk.org" Thread-Topic: [PATCH] ethdev: add VLAN attributes to ETH and VLAN items Thread-Index: AQHWmCOs9wKFtRABzkCRn+Neu+mfAqmEQcgAgASELYCAA0pZAIAAAUnw Date: Wed, 7 Oct 2020 12:13:56 +0000 Message-ID: References: <209f5087596180d7866a43f0a0f12c9a032eb7ce.1601577847.git.dekelp@nvidia.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: 6wind.com; dkim=none (message not signed) header.d=none;6wind.com; dmarc=none action=none header.from=nvidia.com; x-originating-ip: [147.236.152.129] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9217b88b-f2aa-4b2b-45a0-08d86aba7749 x-ms-traffictypediagnostic: BL0PR12MB4994: x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: hLnyr5NGT5OsDTHA7OlaGlxvnncOIXednJXox9GzFcQzkI9zfW1M1vCBJaxSQq7CRIRAB8kfzUNOtkHHwVgHM7wzjc8+KCbdWUrc9DaQxxso2oor99rkgNaS/nWpLvX3ZUU7SqXaTQcqsrq7cM7o25rnpNlyRnu5xQdmKXGpRmGKUOutkwYJdwMB0IC/Z+l23bHdlQwbuy5qficMt/hFeX5jLNA8RxiQVCc0pnRYH5/z/o0lKV6F1zfQ61HkvYveJNBrMZ4CYdsBr+eDnpTMabsT1I7b9XrMRjGOm59yTqxEiDSHUFhdDgyAVay+3hzXwUCs+KkhiFuwrCSrEzEqYRu64nX8ffft1woobGPgomIp3JCAXqZe1yEmlgfFWQm80PSC7XTaAFW3Ch37Fe+e7MGobzgfM3ePung7tEGVldaJKUGiWX9BhX+Oy9kbrkyjUURjIobtyLySDVL0+PJbNA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR12MB4286.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(396003)(39860400002)(346002)(376002)(136003)(4326008)(186003)(5660300002)(9686003)(55016002)(8936002)(110136005)(316002)(54906003)(2906002)(33656002)(83380400001)(86362001)(83080400001)(53546011)(6506007)(7696005)(26005)(52536014)(966005)(76116006)(45080400002)(8676002)(66556008)(66946007)(66446008)(64756008)(71200400001)(66476007)(478600001)(21314003); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: 00WESQd2xd9ogWiwVMd4UJuJYsQJ3EtuGTxf7rw5EBMTk5RyAGrgvFNrJL+7sDj+WNNpHVYsNifv0u/Ug0sSOcXX16OqMsrnvJP4ExVZAWubTmzO4cUhxOgbWXiNnPDwqUHu2iOXkl03c6dznZj0Zd2Ghe2eKoujslhnEGI+Aaa4kubpIYvPSGII6lSh2VQJYiZ31YA/0+Xmia6dSbtBRJYPtoXToMGNBl9WIL7AG1WjLw0ChptUnC8y0sJGxode7tXLyQqn3GV9VC0HuBRg24cXGd6BflfqBKboedf0dpz/0q3ahkTG7mQZY7KseIMm2hLX+q/JYIpiAYVkpoyboS0FgOWjJ0ystvN5lEP/QL63ttwhRfzygxTfMgt9GpAXXr1kSh8K2Fal8CX+XiqQhp2zdtJW17nRkfha4mSYfhwGSbj+M1QLe5UrDPuMkq+u67KGGh25LvadaDqogHNYb3amej4VhFiYC+FeHkShqYasOYHObHpDbARmpW4xqoFKUk8QEYycjCsHkMDkAQtbcZcY3nt679ako7rozFj7J5Y21jCVZxPE8OzPsrz0krFMeae6ZemIy0JMuYRfYKoqQC5Kp152676r0eUnt6oiacCvfT/GeLT6hEoPhw89z7CiYfwzfq2+UTL/0xzifzxFsw== 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: MN2PR12MB4286.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9217b88b-f2aa-4b2b-45a0-08d86aba7749 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Oct 2020 12:13:56.8964 (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: tsH5RkuEy+BicJP+Om4I7DdxXuFm63sBLfwm2FjUJaZSLKWe+zCM1ufVq+Y6Yw/Yn9iTXMLhB6p9miwlnZUBXA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR12MB4994 X-OriginatorOrg: Nvidia.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1602072844; bh=onrojducTjai2uMsqlXH0Zlu1SiXSqGhMxmex1yzrAE=; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To: CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References: In-Reply-To:Accept-Language:Content-Language:X-MS-Has-Attach: X-MS-TNEF-Correlator:authentication-results:x-originating-ip: x-ms-publictraffictype:x-ms-office365-filtering-correlation-id: x-ms-traffictypediagnostic:x-ld-processed: x-ms-exchange-transport-forked:x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers:x-ms-exchange-senderadcheck: x-microsoft-antispam:x-microsoft-antispam-message-info: x-forefront-antispam-report:x-ms-exchange-antispam-messagedata: Content-Type:Content-Transfer-Encoding:MIME-Version: X-MS-Exchange-CrossTenant-AuthAs: X-MS-Exchange-CrossTenant-AuthSource: X-MS-Exchange-CrossTenant-Network-Message-Id: X-MS-Exchange-CrossTenant-originalarrivaltime: X-MS-Exchange-CrossTenant-fromentityheader: X-MS-Exchange-CrossTenant-id:X-MS-Exchange-CrossTenant-mailboxtype: X-MS-Exchange-CrossTenant-userprincipalname: X-MS-Exchange-Transport-CrossTenantHeadersStamped:X-OriginatorOrg; b=FS2BvP/GhqX58QcipNXRLZ1EsCZ7ASQJsjazfskhLFWonGWbSRby3VkJwQpYqWKgV 0v9qeVu2ySx/ea1LJQ+Rf7G9yNEll2AgnGkmFpkRXVjr0jM9coC4NLKcJ70Wop2/Ch m5OrbOMRWA3YlwZCz8EQvM0/vBvF4SnCesuXk4s9MBbcUY8WWoylPD7akQ+p7b2VZg 1cgpwlppWHGJgzVs9uA83DHQat5YPN4NWnC248DyGr0IjfCnqUks+6WIdEZKAd6pGG 1x9SpOgdBCKZ7t0Mp6Hok/zdHXgh6eLNGkJUHPGMxxw/FusNTx56kBK+bPAKphpHBO ui9nFNqeMM4Ng== Subject: Re: [dpdk-dev] [PATCH] ethdev: add VLAN attributes to ETH and VLAN items X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" U29ycnkgZm9yIGp1bXBpbmcgbGF0ZSwNCg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t DQo+IEZyb206IE1heGltZSBMZXJveSA8bWF4aW1lLmxlcm95QDZ3aW5kLmNvbT4NCj4gU2VudDog V2VkbmVzZGF5LCBPY3RvYmVyIDcsIDIwMjAgMjo1MiBQTQ0KPiBTdWJqZWN0OiBSZTogW1BBVENI XSBldGhkZXY6IGFkZCBWTEFOIGF0dHJpYnV0ZXMgdG8gRVRIIGFuZCBWTEFOIGl0ZW1zDQo+IA0K PiBPbiBNb24sIE9jdCA1LCAyMDIwIGF0IDExOjM3IEFNIERla2VsIFBlbGVkIDxkZWtlbHBAbnZp ZGlhLmNvbT4gd3JvdGU6DQo+ID4NCj4gPiBUaGFua3MsIFBTQi4NCj4gPg0KPiA+ID4gLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IE1heGltZSBMZXJveSA8bWF4aW1lLmxl cm95QDZ3aW5kLmNvbT4NCj4gPiA+IFNlbnQ6IEZyaWRheSwgT2N0b2JlciAyLCAyMDIwIDM6Mzkg UE0NCj4gPiA+IFRvOiBEZWtlbCBQZWxlZCA8ZGVrZWxwQG52aWRpYS5jb20+DQo+ID4gPiBDYzog T3JpIEthbSA8b3Jpa2FAbnZpZGlhLmNvbT47IE5CVS1Db250YWN0LVRob21hcyBNb25qYWxvbg0K PiA+ID4gPHRob21hc0Btb25qYWxvbi5uZXQ+OyBmZXJydWgueWlnaXRAaW50ZWwuY29tOw0KPiA+ ID4gYXJ5YmNoZW5rb0Bzb2xhcmZsYXJlLmNvbTsgZGV2QGRwZGsub3JnOyBEZWtlbCBQZWxlZA0K PiA+ID4gPGRla2VscEBtZWxsYW5veC5jb20+DQo+ID4gPiBTdWJqZWN0OiBSZTogW1BBVENIXSBl dGhkZXY6IGFkZCBWTEFOIGF0dHJpYnV0ZXMgdG8gRVRIIGFuZCBWTEFOIGl0ZW1zDQo+ID4gPg0K PiA+ID4gSGkgRGVrZWwsDQo+ID4gPg0KPiA+ID4gT24gVGh1LCBPY3QgMSwgMjAyMCBhdCA4OjQ5 IFBNIERla2VsIFBlbGVkIDxkZWtlbHBAbnZpZGlhLmNvbT4gd3JvdGU6DQo+ID4gPiA+DQo+ID4g PiA+IEZyb206IERla2VsIFBlbGVkIDxkZWtlbHBAbWVsbGFub3guY29tPg0KPiA+ID4gPg0KPiA+ ID4gPiBUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhlIGNoYW5nZSBwcm9wb3NlcyBpbiBSRkMgWzFd LCBhZGRpbmcgZGVkaWNhdGVkDQo+ID4gPiA+IGZpZWxkcyB0byBFVEggYW5kIFZMQU4gaXRlbXMg c3RydWN0cywgdG8gY2xlYXJseSBkZWZpbmUgdGhlIHJlcXVpcmVkDQo+ID4gPiA+IGNoYXJhY3Rl cmlzdGljIG9mIGEgcGFja2V0LCBhbmQgZW5hYmxlIHByZWNpc2UgbWF0Y2ggY3JpdGVyaWEuDQo+ ID4gPiA+DQo+ID4gPiA+IFsxXQ0KPiA+ID4gPg0KPiA+ID4gaHR0cHM6Ly9uYW0xMS5zYWZlbGlu a3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGbWFpbA0KPiA+ID4g PiBzLmRwZGsub3JnJTJGYXJjaGl2ZXMlMkZkZXYlMkYyMDIwLQ0KPiA+ID4gQXVndXN0JTJGMTc3 NTM2Lmh0bWwmYW1wO2RhdGE9MDIlN0MNCj4gPiA+ID4NCj4gPiA+DQo+IDAxJTdDZGVrZWxwJTQw bnZpZGlhLmNvbSU3Q2MxMmJmZDNmNjYyNzQ3ZjdiN2M0MDhkODY2ZDAzNzZmJTdDNDMwDQo+ID4g PiA4M2QxNQ0KPiA+ID4gPg0KPiA+ID4NCj4gNzI3MzQwYzFiN2RiMzllZmQ5Y2NjMTdhJTdDMCU3 QzAlN0M2MzczNzIzOTE3NzkwOTI0MTEmYW1wO3NkYXRhPQ0KPiA+ID4geWVPS3ZjDQo+ID4gPiA+ IDRyMGRMMDlVWjY1JTJCdDRxV0pxSm1jcDIxVnlQU0slMkZoYmFibEtJJTNEJmFtcDtyZXNlcnZl ZD0wDQo+ID4gPiA+DQo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IERla2VsIFBlbGVkIDxkZWtlbHBA bWVsbGFub3guY29tPg0KPiA+ID4gPiAtLS0NCj4gPiA+ID4gIGRvYy9ndWlkZXMvcmVsX25vdGVz L3JlbGVhc2VfMjBfMTEucnN0IHwgIDcgKysrKysrKw0KPiA+ID4gPiAgbGliL2xpYnJ0ZV9ldGhk ZXYvcnRlX2Zsb3cuaCAgICAgICAgICAgfCAxNiArKysrKysrKysrKysrLS0tDQo+ID4gPiA+ICAy IGZpbGVzIGNoYW5nZWQsIDIwIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pDQo+ID4gPiA+ DQo+ID4gPiA+IGRpZmYgLS1naXQgYS9kb2MvZ3VpZGVzL3JlbF9ub3Rlcy9yZWxlYXNlXzIwXzEx LnJzdA0KPiA+ID4gPiBiL2RvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMjBfMTEucnN0DQo+ ID4gPiA+IGluZGV4IDdmOWQwZGQuLjE5OWM2MGIgMTAwNjQ0DQo+ID4gPiA+IC0tLSBhL2RvYy9n dWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMjBfMTEucnN0DQo+ID4gPiA+ICsrKyBiL2RvYy9ndWlk ZXMvcmVsX25vdGVzL3JlbGVhc2VfMjBfMTEucnN0DQo+ID4gPiA+IEBAIC0xNzMsNiArMTczLDEz IEBAIEFQSSBDaGFuZ2VzDQo+ID4gPiA+ICAgICogYGBfcnRlX2V0aF9kZXZfY2FsbGJhY2tfcHJv Y2VzcygpYGAgLT4NCj4gPiA+IGBgcnRlX2V0aF9kZXZfY2FsbGJhY2tfcHJvY2VzcygpYGANCj4g PiA+ID4gICAgKiBgYF9ydGVfZXRoX2Rldl9yZXNldGBgIC0+IGBgcnRlX2V0aF9kZXZfaW50ZXJu YWxfcmVzZXQoKWBgDQo+ID4gPiA+DQo+ID4gPiA+ICsqIGV0aGRldjogQWRkZWQgbmV3IGZpZWxk IGBgdmxhbl9leGlzdGBgIHRvIHN0cnVjdHVyZQ0KPiA+ID4gPiArYGBydGVfZmxvd19pdGVtX2V0 aGBgLA0KPiA+ID4gPiArICBpbmRpY2F0aW5nIHRoYXQgYXQgbGVhc3Qgb25lIFZMQU4gZXhpc3Rz IGluIHRoZSBwYWNrZXQgaGVhZGVyLg0KPiA+ID4gPiArDQo+ID4gPiA+ICsqIGV0aGRldjogQWRk ZWQgbmV3IGZpZWxkIGBgbW9yZV92bGFuc19leGlzdGBgIHRvIHN0cnVjdHVyZQ0KPiA+ID4gPiAr ICBgYHJ0ZV9mbG93X2l0ZW1fdmxhbmBgLCBpbmRpY2F0aW5nIHRoYXQgYXQgbGVhc3Qgb25lIG1v cmUgVkxBTg0KPiA+ID4gPiArZXhpc3RzIGluDQo+ID4gPiA+ICsgIHBhY2tldCBoZWFkZXIsIGZv bGxvd2luZyB0aGlzIFZMQU4uDQo+ID4gPiA+ICsNCj4gPiA+ID4gICogcmF3ZGV2OiBBZGRlZCBh IHN0cnVjdHVyZSBzaXplIHBhcmFtZXRlciB0byB0aGUgZnVuY3Rpb25zDQo+ID4gPiA+ICAgIGBg cnRlX3Jhd2Rldl9xdWV1ZV9zZXR1cCgpYGAsIGBgcnRlX3Jhd2Rldl9xdWV1ZV9jb25mX2dldCgp YGAsDQo+ID4gPiA+ICAgIGBgcnRlX3Jhd2Rldl9pbmZvX2dldCgpYGAgYW5kIGBgcnRlX3Jhd2Rl dl9jb25maWd1cmUoKWBgLCBkaWZmDQo+ID4gPiA+IC0tZ2l0IGEvbGliL2xpYnJ0ZV9ldGhkZXYv cnRlX2Zsb3cuaCBiL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9mbG93LmgNCj4gPiA+ID4gaW5kZXgg ZGE4YmZhNS4uMzlkMDRlZiAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvbGliL2xpYnJ0ZV9ldGhkZXYv cnRlX2Zsb3cuaA0KPiA+ID4gPiArKysgYi9saWIvbGlicnRlX2V0aGRldi9ydGVfZmxvdy5oDQo+ ID4gPiA+IEBAIC03MjMsMTQgKzcyMywxOCBAQCBzdHJ1Y3QgcnRlX2Zsb3dfaXRlbV9yYXcgew0K PiA+ID4gPiAgICogSWYgdGhlIEBwIHR5cGUgZmllbGQgY29udGFpbnMgYSBUUElEIHZhbHVlLCB0 aGVuIG9ubHkgdGFnZ2VkIHBhY2tldHMNCj4gd2l0aA0KPiA+ID4gdGhlDQo+ID4gPiA+ICAgKiBz cGVjaWZpZWQgVFBJRCB3aWxsIG1hdGNoIHRoZSBwYXR0ZXJuLg0KPiA+ID4gPiAgICogT3RoZXJ3 aXNlLCBvbmx5IHVudGFnZ2VkIHBhY2tldHMgd2lsbCBtYXRjaCB0aGUgcGF0dGVybi4NCj4gPiA+ ID4gLSAqIElmIHRoZSBAcCBFVEggaXRlbSBpcyB0aGUgb25seSBpdGVtIGluIHRoZSBwYXR0ZXJu LCBhbmQgdGhlIEBwDQo+ID4gPiA+IHR5cGUgZmllbGQNCj4gPiA+ID4gLSAqIGlzIG5vdCBzcGVj aWZpZWQsIHRoZW4gYm90aCB0YWdnZWQgYW5kIHVudGFnZ2VkIHBhY2tldHMgd2lsbCBtYXRjaA0K PiA+ID4gPiB0aGUNCj4gPiA+ID4gLSAqIHBhdHRlcm4uDQo+ID4gPiA+ICsgKiBUaGUgZmllbGQg QHAgdmxhbl9leGlzdCBjYW4gYmUgdXNlZCB0byBtYXRjaCBzcGVjaWZpYyBwYWNrZXQNCj4gPiA+ ID4gKyB0eXBlcywgaW5zdGVhZA0KPiA+ID4gPiArICogb2YgdXNpbmcgdGhlIEBwIHR5cGUgZmll bGQuDQo+ID4gPiA+ICsgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIG1hdGNoIGFueSB0eXBlIG9mIHRh Z2dlZCBwYWNrZXRzLg0KPiA+ID4gPiArICogSWYgdGhlIEBwIHR5cGUgYW5kIEBwIHZsYW5fZXhp c3QgZmllbGRzIGFyZSBub3Qgc3BlY2lmaWVkLCB0aGVuDQo+ID4gPiA+ICsgYm90aCB0YWdnZWQN Cj4gPiA+ID4gKyAqIGFuZCB1bnRhZ2dlZCBwYWNrZXRzIHdpbGwgbWF0Y2ggdGhlIHBhdHRlcm4u DQo+ID4gPiA+ICAgKi8NCj4gPiA+ID4gIHN0cnVjdCBydGVfZmxvd19pdGVtX2V0aCB7DQo+ID4g PiA+ICAgICAgICAgc3RydWN0IHJ0ZV9ldGhlcl9hZGRyIGRzdDsgLyoqPCBEZXN0aW5hdGlvbiBN QUMuICovDQo+ID4gPiA+ICAgICAgICAgc3RydWN0IHJ0ZV9ldGhlcl9hZGRyIHNyYzsgLyoqPCBT b3VyY2UgTUFDLiAqLw0KPiA+ID4gPiAgICAgICAgIHJ0ZV9iZTE2X3QgdHlwZTsgLyoqPCBFdGhl clR5cGUgb3IgVFBJRC4gKi8NCj4gPiA+ID4gKyAgICAgICB1aW50MzJfdCB2bGFuX2V4aXN0OjE7 IC8qKjwgQXQgbGVhc3Qgb25lIFZMQU4gZXhpc3QgaW4gaGVhZGVyLiAqLw0KPiA+ID4gPiArICAg ICAgIHVpbnQzMl90IHJlc2VydmVkOjMxOyAvKio8IFJlc2VydmVkLCBtdXN0IGJlIHplcm8uICov DQo+ID4gPiA+ICB9Ow0KPiA+ID4NCj4gPiA+IFRvIHJlc3VtZToNCj4gPiA+IC0gdHlwZSBhbmQg dmxhbl9leGlzdHMgZmllbGRzIG5vdCBzcGVjaWZpZWQ6ICB0YWcgYW5kIHVudGFnZ2VkIG1hdGNo ZWQNCj4gPiA+IC0gd2l0aCB2bGFuX2V4aXN0cywgbWF0Y2ggb25seSB0YWcgb3IgdW50YWdnZWQN Cj4gPiA+IC0gd2l0aCB0eXBlIG1hdGNoaW5nIHNwZWNpZmljIGV0aGVybmV0IHR5cGUNCj4gPiA+ IC0gdmxhbl9leGlzdHMgYW5kIHR5cGUgc2hvdWxkIG5vdCBzZXR0ZWQgYXQgdGhlIHNhbWUgdGlt ZSA/DQo+ID4NCj4gPiBQTUQgc2hvdWxkIHZhbGlkYXRlIHRoZXkgZG9uJ3QgY29uZmxpY3QuDQo+ ID4NCj4gPiA+DQo+ID4gPiBXaXRoIHRoaXMgbmV3IHNwZWNpZmljYXRpb24sIEkgdGhpbmsgeW91 IGFkZHJlc3MgYWxsIHRoZSB1c2UgY2FzZXMuDQo+ID4gPiBUaGF0J3MgZ3JlYXQgIQ0KPiA+ID4N Cj4gPg0KPiA+IEdsYWQgdG8gc2VlIHdlIGFncmVlIG9uIHRoaXMuDQo+ID4NCj4gPiA+ID4NCj4g PiA+ID4gIC8qKiBEZWZhdWx0IG1hc2sgZm9yIFJURV9GTE9XX0lURU1fVFlQRV9FVEguICovIEBA IC03NTIsMTANCj4gKzc1NiwxNg0KPiA+ID4gQEANCj4gPiA+ID4gc3RydWN0IHJ0ZV9mbG93X2l0 ZW1fZXRoIHsNCj4gPiA+ID4gICAqIHRoZSBwcmVjZWRpbmcgcGF0dGVybiBpdGVtLg0KPiA+ID4g PiAgICogSWYgYSBAcCBWTEFOIGl0ZW0gaXMgcHJlc2VudCBpbiB0aGUgcGF0dGVybiwgdGhlbiBv bmx5IHRhZ2dlZCBwYWNrZXRzDQo+ID4gPiB3aWxsDQo+ID4gPiA+ICAgKiBtYXRjaCB0aGUgcGF0 dGVybi4NCj4gPiA+ID4gKyAqIFRoZSBmaWVsZCBAcCBtb3JlX3ZsYW5zX2V4aXN0IGNhbiBiZSB1 c2VkIHRvIG1hdGNoIHNwZWNpZmljIHBhY2tldA0KPiA+ID4gPiArIHR5cGVzLA0KPiA+ID4gPiAr ICogaW5zdGVhZCBvZiB1c2luZyB0aGUgQHAgaW5uZXJfdHlwZSBmaWVsZC4NCj4gPiA+ID4gKyAq IFRoaXMgY2FuIGJlIHVzZWQgdG8gbWF0Y2ggYW55IHR5cGUgb2YgdGFnZ2VkIHBhY2tldHMuDQo+ ID4gPiA+ICAgKi8NCj4gPiA+DQo+ID4gPiBDb3VsZCB5b3UgcGxlYXNlIHNwZWNpZnkgd2hhdCB0 aGUgZXhwZWN0ZWQgYmVoYXZpb3Igd2hlbiBpbm5lcl90eXBlIGFuZA0KPiA+ID4gbW9yZV92bGFu c19leGlzdCBhcmUgbm90IHNwZWNpZmllZCAuDQo+ID4gPiBXaGF0IGlzIHRoZSBkZWZhdWx0IGJl aGF2aW9yID8NCj4gPiA+DQo+ID4NCj4gPiBZb3Ugd3JvdGUgYWJvdmUgZm9yIHRoZSBldGggaXRl bSwgaWYgdGhlIHVzZXIgZGlkbid0IHNwZWNpZnkgaXQgbWVhbnMgZG9uJ3QtDQo+IGNhcmUuDQo+ IENvdWxkIHlvdSBwbGVhc2UgYWRkIHRoZSBzYW1lIGNvbW1lbnQgZm9yIHRoZSB2bGFuIHBhdHRl cm4gPw0KPiANCj4gPg0KPiA+ID4gPiAgc3RydWN0IHJ0ZV9mbG93X2l0ZW1fdmxhbiB7DQo+ID4g PiA+ICAgICAgICAgcnRlX2JlMTZfdCB0Y2k7IC8qKjwgVGFnIGNvbnRyb2wgaW5mb3JtYXRpb24u ICovDQo+ID4gPiA+ICAgICAgICAgcnRlX2JlMTZfdCBpbm5lcl90eXBlOyAvKio8IElubmVyIEV0 aGVyVHlwZSBvciBUUElELiAqLw0KPiA+ID4gPiArICAgICAgIHVpbnQzMl90IG1vcmVfdmxhbnNf ZXhpc3Q6MTsNCj4gPiA+ID4gKyAgICAgICAvKio8IEF0IGxlYXN0IG9uZSBtb3JlIFZMQU4gZXhp c3QgaW4gaGVhZGVyLCBmb2xsb3dpbmcgdGhpcyBWTEFOLiAqLw0KPiA+ID4gPiArICAgICAgIHVp bnQzMl90IHJlc2VydmVkOjMxOyAvKio8IFJlc2VydmVkLCBtdXN0IGJlIHplcm8uICovDQo+ID4g PiA+ICB9Ow0KPiA+ID4gPg0KPiA+ID4gPiAgLyoqIERlZmF1bHQgbWFzayBmb3IgUlRFX0ZMT1df SVRFTV9UWVBFX1ZMQU4uICovDQo+ID4gPiA+IC0tDQo+ID4gPiA+IDEuOC4zLjENCj4gPiA+ID4N Cj4gPiA+DQo+ID4gPiBJIGFtIHN0aWxsIHdvbmRlcmluZywgd2h5IG5vdCB1c2luZyBhIG5ldyBp dGVtICdOT1QnIGZvciBleGFtcGxlIHRvIG1hdGNoDQo+ID4gPiBvbmx5IGV0aCBwYWNrZXQgbm90 IHRhZ2dlZCA/DQo+ID4gPiBleGFtcGxlOiBldGggLyBub3Qgdmxhbi4gSXQncyBhIG1vcmUgZ2Vu ZXJpYyBzb2x1dGlvbi4NCj4gPiA+DQo+ID4gPiBIZXJlIGluIHRoaXMgY29tbWl0LCB3ZSBhZGQg YSByZWZlcmVuY2Ugb24gVkxBTiBmaWVsZHMgb24gZXRoZXJuZXQNCj4gaGVhZGVyLg0KPiA+ID4g QnV0IHRvbW9ycm93LCB3ZSBjb3VsZCBkbyB0aGUgc2FtZSBmb3IgbXBscyBieSBhZGRpbmcgbXBs c19leGlzdHMgaW4gdGhlDQo+ID4gPiBldGggaXRlbSBhbmQgc28gb24uDQo+ID4gPg0KPiA+ID4g SW4gZmFjdCwgd2UgIGhhdmUgdGhlIHNhbWUgbmVlZHMgZm9yIElQdjYgb3B0aW9ucy4gVG8gbWF0 Y2ggZm9yIGV4YW1wbGUsDQo+ID4gPiBpcHY2IHBhY2tldCB3aXRoIG5vIGZyYWdtZW50IG9wdGlv bi4NCj4gPiA+IFdpdGggYSBOT1QgZmllbGQsIGl0IGNhbiBiZSBlYXNpbHkgZG9uZTogPiBldGgg LyBpcHY2IC8gbm8gaXB2Nl9mcmFnLg0KPiA+ID4NCj4gPiA+IEFkZGluZyBuZXcgZmllbGRzICdp dGVtJ19leGlzdHMgaW50byBldGggYW5kIGlwdjYgZG8gdGhlIGpvYnMsIGJ1dCBoYXZpbmcgYQ0K PiA+ID4gTk9UIGF0dHJpYnV0ZSBpcyBhIG1vcmUgZ2VuZXJpYyBzb2x1dGlvbi4NCj4gPiA+DQo+ ID4gPiBJdCBjb3VsZCBhZGRyZXNzIG1hbnkgb3RoZXIgdXNlIGNhc2VzIGxpa2UgbWF0Y2hpbmcg YW55IHVkcCBwYWNrZXRzIHRoYXQNCj4gYXJlDQo+ID4gPiBub3QgdnhsYW4gKCBldGggLyBpcHY0 IC8gdnhsYW4gLyBub3QgdWRwKSwNCj4gPiA+DQo+ID4gPiBMZXQgbWUga25vdyB3aGF0IHlvdSB0 aGluayBhYm91dCB0aGF0Lg0KPiA+DQo+ID4gSSBhZ3JlZSB3aXRoIFRob21hcyBNb25qYWxvbiBy ZXNwb25zZSBvbiB0aGlzLg0KPiANCj4gUlRFX0ZMT1cgcGF0dGVybiBpcyBoZXJlIHRvIGhhdmUg YSBnZW5lcmljIHdheSB0byBkZXNjcmliZSBhIGZsb3cuDQo+IA0KPiBPZiBjb3Vyc2UsIGhhcmR3 YXJlIG5pY3MgZG9uJ3QgbmVlZCB0byBzdXBwb3J0IGFueSB0eXBlIG9mIHBhdHRlcm4uDQo+IEl0 J3Mgd2h5IHdlIGhhdmUgcnRlX2Zsb3dfdmFsaWRhdGUgZnVuY3Rpb25zIHRvIGJlIHN1cmUgdGhh dCB0aGUNCj4gaGFyZHdhcmUgY2FuIG1hdGNoIHRoaXMgdHlwZSBvZiBwYXR0ZXJuLg0KPiANCj4g Rm9yIGV4YW1wbGUsIHRoZSBub3QgYXR0cmlidXRlIGNvdWxkIGJlIG9ubHkgc3VwcG9ydGVkIGZv ciB2bGFuIGl0ZW0NCj4gd2l0aCBtbHg1IG5pY3MuIChpLmUuIGV0aCAvIG5vdCB2bGFuKS4NCj4g DQo+IFdoZW4gYSB1c2VyIGFkZHMgYSBmbG93IHdpdGggYSBwYXR0ZXJuIGluY2x1ZGluZyBhIG5v dCBhdHRyaWJ1dGUsIGlmDQo+IHRoZSBwbWQgZG9lc24ndCBzdXBwb3J0IGl0LCBpdCBzaG91bGQg cmV0dXJuIC1FTk9UU1VQLg0KPiANCj4gTGF0ZXIsIGlmIHdlIGFkZCBzdXBwb3J0IG9mIG5vdCBh dHRyaWJ1dGUgd2l0aCBtcGxzIChpLmUuIGV0aCAvIG5vdA0KPiBtcGxzKSBpbiBtbHg1IHBtZCwg bW9kaWZpY2F0aW9uIGNhbiBiZSBkb25lIG9uIHRoZSBwbWQgc2lkZSwgd2l0aG91dA0KPiBhbnkg QVBJIGNoYW5nZXMuDQo+IA0KPiBZb3UgYXJlIGFscmVhZHkgYWRkaW5nIG5ldyAnX2V4aXRzJyBm aWVsZHMgaW4gSVB2NiBpdGVtLiBJdCdzIHdoeSBJDQo+IHRoaW5rIGhhdmluZyBhIGdlbmVyaWMg c29sdXRpb24gbGlrZSBhIE5PVCBhdHRyaWJ1dGUsIGl0J3MgYSBiZXR0ZXINCj4gc29sdXRpb24u DQo+IA0KPiBJZiB3ZSBjb250aW51ZSB0byBhZGQgJ19leGlzdHMnIGZpZWxkcyBpbiBlYWNoIGl0 ZW0gKGxpa2UgeW91IGFyZQ0KPiBkb2luZyB3aXRoIElQdjYgaXRlbSksIEkgdGhpbmsgd2Ugd2ls bCBuZWVkIHRvIGRvIGFuIEFQSSByZXdvcmsgdG8NCj4gaGF2ZSBhIGdlbmVyaWMgc29sdXRpb24u DQo+IA0KPiBSZWdhcmRzLA0KPiANCj4gTWF4aW1lDQoNCkZpcnN0IEknbSBhbGwgaW4gZmF2b3Ig b2YgYWRkaW5nIGEgbm90IGl0ZW0sIGJ1dCBpdCBpcyB2ZXJ5IHRyaWNreSBhbmQgc2hvdWxkIGJl IGRlc2lnbmVkIHZlcnkgY2FyZWZ1bGx5Lg0KQWxzbyB1c2luZyBhIG5vdCB3aWxsIGdldCB0aGUg cnVsZXMgdG8gYmUgdmVyeSBjb21wbGljYXRlZC4NCkZvciBleGFtcGxlIHRoaW5rIGFib3V0IHRo ZSBmb2xsb3dpbmcgY2FzZToNCkFwcGxpY2F0aW9uIHdhbnQgb25seSBwYWNrZXRzIHdpdGhvdXQg YW55IGV4dGVuc2lvbnMsIHVzaW5nIHRoZSBzdWdnZXN0ZWQgQVBJIGl0IGlzIHZlcnkgc2ltcGxl DQpqdXN0IHNldCBleGl0cyA9IDAgd2l0aCBtYXNrID0gMS4NCldoaWxlIGlmIHdlIHVzZSB0aGUg bm90IEknbSBub3Qgc3VyZSBob3cgaXQgc2hvdWxkIGxvb2ssIHNpbmNlIHdlIG5lZWQgbnVtYmVy IG9mIG5vdCwNCml0IGlzIG5vdCBqdXN0IGVub3VnaCB0byBzYXkgbmV4dCBwcm90byBpcyBub3Qg WFhYIHNpbmNlIHdlIG5lZWQgdG8gY292ZXIgYWxsIHBvc3NpYmxlDQpleHRlbnNpb25zLCBhbHNv IHRoZXJlIG1pZ2h0IGJlIG9yZGVyaW5nIGlzc3VlIHdoaWNoIHRoZSBub3QgY2FuJ3Qgc3VwcG9y dC4NCg0KU28gbXkgdGhpbmtpbmcgaXMgdGhhdCB3ZSBzaG91bGQgZ28gd2l0aCB0aGUgc3VnZ2Vz dGVkIGFwcHJvYWNoIGFuZCByZWdhcmRsZXNzIHNlZQ0KaG93IGNhbiB3ZSBhZGQgdGhlIG5vdC4N Cg0KSW4gYW55IGNhc2UgdGhlIGV4aXQgc2hvdWxkIG5vdCBiZSB0aGUgZ290byBzb2x1dGlvbiBi dXQgYWdhaW4gaW4gY2FzZSBvZiBleHRlbnNpb24gaXQgbWFrZQ0Kc2Vuc2Ugc2luY2Ugb3JkZXIg aXMgbm90IGd1YXJhbnRlZWQuDQoNCldoYXQgZG8geW91IHRoaW5rPw0KDQpCZXN0LA0KT3JpDQoN Cg0K