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 F06CFA0567; Tue, 9 Mar 2021 20:21:20 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9FF3A22A510; Tue, 9 Mar 2021 20:21:20 +0100 (CET) Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2062.outbound.protection.outlook.com [40.107.92.62]) by mails.dpdk.org (Postfix) with ESMTP id 74B704069D for ; Tue, 9 Mar 2021 20:21:19 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=G6THXO9qsffLGTKpOUjoBre+utZ/eT2LUoDmDJxPon2H7T2oG/93UlhW4krFuIz0O/XaMQ9jlNs6IRnrxelOVPwDsyRU78orxj9YT0NhkgkF4nYGJVifxmTINl+7pdzFeW1N9hkLBxuudtE3CrQrjJt8zUFFuUlCr1K17n/kl3ImMwNAqXQfsCn90HxWPKVf9HYYhw8J/XrHYMq8RGsZ18dU8h0IXXrX+Hdmz1DRfeapDtv7RCYh/plut8XkT0GfiPfl1naWX32Ix3XVPIadmMlef2fhABiYkP4y4P+PfOOf1rO2IdZtytLbsqG4u5TGmLEaYpSPxjA/mj9KU97wwQ== 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=44cCVBkTiMz9yRBgMw6m4dt0G8QIZTo4JcRoU1dHxBc=; b=Dw2Y0rd7VZrp2zVXd2U51tkFseY3mnKayP0Jd7hIN7wYZlpW6BRbPTNiHYmPFNGXHRGujOo2iyjQKQOBMAS4jEAJRyx5ugTeADEUbWCho60G6btYfzmB8SaO1+iG6k1o2108mBdKZi8UIcH4PlrdlCEYcdkrEQ2R22FjhYP+4PCPEoXS1QFxuKrINPVodO8UXFZRCA6B7InMk8MOczcNA9t/dbHVRiAzeF8Gw7K4TSIty3zHxz2Rm/5l11mQjV1ffirlKgMSrBl1tciW6jSVHPKQdEfUtc/mRlUwcL2jQjckQM3FfdTuCvTSyd8i4DKBRfm7mLNVsWRqW4/XRtrjbg== 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=44cCVBkTiMz9yRBgMw6m4dt0G8QIZTo4JcRoU1dHxBc=; b=i7EMrvBc8ZbTVlWFwUGQKHrmtBWjxNrVCMpi7rilYBS7V3N2mHHI3gBW3rndWBzYCnAdAyM5n99PPSInPCvemkBNYVOkJlptlr5KESDPwUes7vOON/VhcBJAhrXCa5RnjywSfZSOVOo7Doce/kQdlAtwlBUxsXB5gII6ycmbYx94wu+k1jAlKgXqV5wWX3IISGlEoUlfuTqaYYE4+vH/WsaW3kfxn8avRVtmn8wo68j4PpCRPG23XsJcXNljjZgRN/stIlHqI6qp3GwA4IgvKBwwQ5jttfK+UD807I7W58FgvVLwQIvIzsFF7Y83JEgfmXE29tkOFEG1C8m87gSyNw== Received: from DM6PR12MB4987.namprd12.prod.outlook.com (2603:10b6:5:163::31) by DM5PR1201MB0219.namprd12.prod.outlook.com (2603:10b6:4:56::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3763.9; Tue, 9 Mar 2021 19:21:17 +0000 Received: from DM6PR12MB4987.namprd12.prod.outlook.com ([fe80::f5ce:c5a8:6aec:e308]) by DM6PR12MB4987.namprd12.prod.outlook.com ([fe80::f5ce:c5a8:6aec:e308%7]) with mapi id 15.20.3912.030; Tue, 9 Mar 2021 19:21:17 +0000 From: Ori Kam To: Ajit Khaparde CC: NBU-Contact-Thomas Monjalon , Slava Ovsiienko , "ferruh.yigit@intel.com" , Andrew Rybchenko , "dev@dpdk.org" , "jerinj@marvell.com" , Ori Kam Thread-Topic: [dpdk-dev] [RFC] ethdev: add sanity packet checks Thread-Index: AQHXDgrGaABS+2Q53EeIxjHe/6avDqpuAH0AgARgq6CAAUn1gIAEjvWQgAKI8oCAAQye4A== Date: Tue, 9 Mar 2021 19:21:17 +0000 Message-ID: References: <1614541699-99345-1-git-send-email-orika@nvidia.com> <1769565.OWqOAu9aEJ@thomas> <7146547.nIQmEXas8S@thomas> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: broadcom.com; dkim=none (message not signed) header.d=none;broadcom.com; dmarc=none action=none header.from=nvidia.com; x-originating-ip: [147.236.145.126] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 7c15dbe9-c9be-4157-1803-08d8e3308360 x-ms-traffictypediagnostic: DM5PR1201MB0219: 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: 8maZE44J7LfhEMfn72xbZAlUP/QJDg5STmTtqiGHurVNJiRTcW0WIAk4Ujee53UDYT4jrVUm40apmMazveS5ixbFeXeAyo0ae4t7ZaDc+8BAIvw6xKq/aWvrtDn/G6GqFrhG77YbS9g7JBsfxqDBNGS4SPxOY+kGtjPHQW0hH+891niO7GnYbv46rYCv2Dhne2yCrZE8ixBdibn2C40nnr7UiRJcXr9n3HnA3TNrJgi4iHucwgHvSu6cLGBnzA7O+0X3GZey3lwkM8pIwBh/xqNrooj4s9KyyCShOY3fim+PJG67VuNaVTWeFcPdtsLmlchLEonS8v8OnSlFnpH9TalE8erPbbIfP1ed6BcYfEY1QgBXeClb/h8ITDGFGhwd2OhKvzANkvIR3N4BEF4gs5X4WjOXwoEXX2B90oTmDoa3PAmYiv4jeJ/UTP/oqSNnSUqstU7rE9M2cCqA6AI20UyIaAGsNGvxMcH5dLd27Z2GBWsX2o46sKJmMhAo1pkAOkDJWmdi7N64pcghmwcNhw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR12MB4987.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39860400002)(396003)(136003)(376002)(346002)(366004)(55016002)(186003)(26005)(107886003)(71200400001)(76116006)(86362001)(8676002)(2906002)(4326008)(66946007)(6916009)(52536014)(66476007)(66446008)(64756008)(83380400001)(7696005)(6506007)(54906003)(8936002)(66556008)(316002)(5660300002)(53546011)(478600001)(9686003)(33656002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?VWhEMTI4OXFnbEpKRmJJSkczbktBeVJ0amlQSmUxcngzMWptYXVXVmxVZFZQ?= =?utf-8?B?c2gzQjBFV1hkK2ZESkVHTGdXeWp4Y1Ura05UM1BUS3k3YTFYZVdJZFFBblVo?= =?utf-8?B?cEUxV04yTExaMktHWUtXWTB5L2lLWHZLRHZqQ2V2eGZnYWFiV0lVTTlBL3hj?= =?utf-8?B?SXRvRVk4d3ltbTRZNzJCem9SMmVBZUZRZEkrUGVoSEhra2dlVlBjM1ppbzFE?= =?utf-8?B?R2hId0VDMXErMXZJdGVQUDNDL3hZd3I1b2VwaG5JcXNrUS9VNkNlQ3lBa0ZS?= =?utf-8?B?M1hsVzVpaStyVnBxblRmZHBaZ2lVcTBvbitWZGNvUEp0NUtnN3RVTk1BcVZL?= =?utf-8?B?TW1yR0FjYzBpT3JRaXZWbEFlRXcyNmhVWlpHcVBub2YzZXcvWTQycGFXSyt5?= =?utf-8?B?eE8zRTNCN1U1UHhJTE4vZXZtc3NxazNWYmJuQzAvSUZhaGorbWZndkQvZkNx?= =?utf-8?B?T0pJS3VHZUZCQzVqalEyKzZOb3FGRmRFQkUrNVFzRFovRnVGQ1gyYnpyL2s4?= =?utf-8?B?THVWV0h5Q04zOU5wQzZ1bHN1TVNSVFdkQVI3Q2xGN24xR1gvMlU0OHBRekpK?= =?utf-8?B?ekZDTlBiUHFyWFJDVm1TMnJ3NE5KV3N6bi92aGhHNkIrTExJMTBiRzVTSkxS?= =?utf-8?B?OUM1dDVmYU5UbUF6OEFmY1hTVm1ZNWVCSDc4RE9taXdtdWdueVJwTTZIRkpi?= =?utf-8?B?NFpMOVQzamNsRTdyVUdzaVJaYmpXd2h6M3RMZnpFNmZ3cjNMYW5ReVhaWm1z?= =?utf-8?B?UnJtRUg2TmdsdXh0VEFjblVmMUwwN1V2UG5BSkJPVGRpWHpYNVloVklHVGF2?= =?utf-8?B?aTdITVRROVpHMXZ5Yll4MW45NjhMM1ArU1RObkZScjEvL25uMmhsMmhFRGc2?= =?utf-8?B?THh1QkJSRGtld0tscWNLeGxVMHV5eURlekk1c29YU3llVU1vUUh3cHVLVmZZ?= =?utf-8?B?Qlk3RkQ5bHNTUEtIMDd3bWRibksxSHpEcUF6RTdEYTNVWVZlWHg3VHRQVXc5?= =?utf-8?B?cnA4TVpTQkxmZ28wODdiRllsUDBnM2F1ekdjZ0VwY2RwUC85VFIvMHEwdStT?= =?utf-8?B?RERTNXpqb3d5NUR0QWFWdUxValc0MG9NdlZZQzhHZEtWdGRhTndYTTZObUJW?= =?utf-8?B?SFhnYktYcmlVeEVmUGtPRktnNVMzdjBtM3BaT21udlc0NGZkZVdSaVZnMGN5?= =?utf-8?B?bEwxRk5YZWh2bzNaRzhkYTZyQ21FWUpqQ1l1TjN2UmJoQW1tYnduTldlSEgz?= =?utf-8?B?akptdTVXR2ZaRDVjK1lKQzkzQXJCNVhPaUJ2N1BUM3dMdUk4bzhKTDExNFFE?= =?utf-8?B?SGN3YlpzY0E1ZEFTeWVZaHZ1V25TemJkNm5IVGN4dzF0VUxNWk5UQ21mTGl6?= =?utf-8?B?aW9CUGFRNjB2U2p5Y0ZMeU5NRWVLcW5TYlp0eHpSanlhNXpLeHFCdEdxYVRF?= =?utf-8?B?TDlnWmFWWG1KNWFvTWpqNlJvQVA3eTh5T0xtVGJOTUdsQ1A0RWdySVpVeTBm?= =?utf-8?B?NVdicGZjRDNkS3lwMlRZc3p3RUQrank0eEFyQVA4RVZkTkVsMTdwOHhaYVZV?= =?utf-8?B?cU1iSkZ0eXFQQ3Q4SlNtWHVKNFRUOXNXemJJNk9LNStYL1ZUQ1FwUFg5aFR3?= =?utf-8?B?VG9yLzREeTN0WjcwclNHWGtURVRkNUh0cG5NQWRqZFIyRnlhNEQ2UTVMTGla?= =?utf-8?B?MTgzdVdYSFIrUU92eHdObHo5Zmt5ZitQbFZvWTY0WHBqNHJhT21SR0pPYnph?= =?utf-8?Q?58honH5hCRZZ+Uyt0dXLE2ENWoSizUj+KUBy8Tp?= 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: DM6PR12MB4987.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7c15dbe9-c9be-4157-1803-08d8e3308360 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Mar 2021 19:21:17.3994 (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: mSSuukN2BohVoKIQY/f960wtVR5L+uYOoAJU7WZ547OV0UfEnoVC6IJX8jsLQMwUnodhrmi4V8290MLh4iq53w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR1201MB0219 Subject: Re: [dpdk-dev] [RFC] ethdev: add sanity packet checks 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 Sender: "dev" SGkNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBBaml0IEtoYXBhcmRl IDxhaml0LmtoYXBhcmRlQGJyb2FkY29tLmNvbT4NCj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0g W1JGQ10gZXRoZGV2OiBhZGQgc2FuaXR5IHBhY2tldCBjaGVja3MNCj4gDQo+IE9uIFN1biwgTWFy IDcsIDIwMjEgYXQgMTA6NDYgQU0gT3JpIEthbSA8b3Jpa2FAbnZpZGlhLmNvbT4gd3JvdGU6DQo+ ID4NCj4gPiBIaQ0KPiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4g RnJvbTogVGhvbWFzIE1vbmphbG9uIDx0aG9tYXNAbW9uamFsb24ubmV0Pg0KPiA+ID4gU2VudDog VGh1cnNkYXksIE1hcmNoIDQsIDIwMjEgMTI6NDYgUE0NCj4gPiA+IFN1YmplY3Q6IFJlOiBbZHBk ay1kZXZdIFtSRkNdIGV0aGRldjogYWRkIHNhbml0eSBwYWNrZXQgY2hlY2tzDQo+ID4gPg0KPiA+ ID4gMDQvMDMvMjAyMSAxMTowMCwgT3JpIEthbToNCj4gPiA+ID4gRnJvbTogVGhvbWFzIE1vbmph bG9uDQo+ID4gPiA+ID4gMjgvMDIvMjAyMSAyMDo0OCwgT3JpIEthbToNCj4gPiA+ID4gPiA+IEN1 cnJlbnRseSwgRFBESyBhcHBsaWNhdGlvbiBjYW4gb2ZmbG9hZCB0aGUgY2hlY2tzdW0gY2hlY2ss DQo+ID4gPiA+ID4gPiBhbmQgcmVwb3J0IGl0IGluIHRoZSBtYnVmLg0KPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+IEhvd2V2ZXIsIHRoaXMgYXBwcm9hY2ggZG9lc24ndCB3b3JrIGlmIHRoZSB0cmFm ZmljDQo+ID4gPiA+ID4gPiBpcyBvZmZsb2FkZWQgYW5kIHNob3VsZCBub3QgYXJyaXZlIHRvIHRo ZSBhcHBsaWNhdGlvbi4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBUaGlzIGNvbW1pdCBpbnRy b2R1Y2VzIHJ0ZSBmbG93IGl0ZW0gdGhhdCBlbmFibGVzDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBz L3J0ZSBmbG93L3J0ZV9mbG93Lw0KPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IFN1cmUNCj4g PiA+ID4NCj4gPiA+ID4gPiA+IG1hdGNoaW5nIG9uIHRoZSBjaGVja3N1bSBvZiB0aGUgTDMgYW5k IEw0IGxheWVycywNCj4gPiA+ID4gPiA+IGluIGFkZGl0aW9uIHRvIG90aGVyIGNoZWNrcyB0aGF0 IGNhbiBkZXRlcm1pbmUgaWYNCj4gPiA+ID4gPiA+IHRoZSBwYWNrZXQgaXMgdmFsaWQuDQo+ID4g PiA+ID4gPiBzb21lIG9mIHRob3NlIHRlc3RzIGNhbiBiZSBwYWNrZXQgbGVuLCBkYXRhIGxlbiwN Cj4gPiA+ID4gPiA+IHVuc3VwcG9ydGVkIGZsYWdzLCBhbmQgc28gb24uDQo+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gVGhlIGZ1bGwgY2hlY2sgaXMgSFcgZGVwZW5kZW50Lg0KPiA+ID4gPiA+DQo+ ID4gPiA+ID4gV2hhdCBpcyB0aGUgImZ1bGwgY2hlY2siPw0KPiA+ID4gPiA+IEhvdyBtdWNoIGl0 IGlzIEhXIGRlcGVuZGVudD8NCj4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiBUaGlzIGFsc28g cmVsYXRlcyB0byB5b3VyIG90aGVyIGNvbW1lbnRzLA0KPiA+ID4gPiBFYWNoIEhXIG1heSBydW4g ZGlmZmVyZW50IHNldCBvZiBjaGVja3Mgb24gdGhlIHBhY2tldCwNCj4gPiA+ID4gZm9yIGV4YW1w bGUgb25lIFBNRCBjYW4ganVzdCBjaGVjayB0aGUgdGNwIGZsYWdzIHdoaWxlDQo+ID4gPiA+IGEg ZGlmZmVyZW50IFBNRCB3aWxsIGFsc28gY2hlY2sgdGhlIG9wdGlvbi4NCj4gPiA+DQo+ID4gPiBJ J20gbm90IHN1cmUgaG93IGFuIGFwcGxpY2F0aW9uIGNhbiByZWx5IG9uDQo+ID4gPiBzdWNoIGEg dmFndWUgZGVmaW5pdGlvbi4NCj4gPiA+DQo+ID4gRXZlbiBub3cgd2UgYXJlIG1hcmtpbmcgYSBw YWNrZXQgaW4gdGhlIG1idWYgd2l0aCB1bmtub3duDQo+ID4gaW4gY2FzZSBvZiBzb21lIGVycm9y Lg0KPiA+IFdvdWxkIGEgYmV0dGVyIHdvcmRpbmcgYmUgIiBUaGUgSFcgZGV0ZWN0ZWQgZXJyb3Jz IGluIHRoZSBwYWNrZXQiDQo+ID4gaW4gYW55IGNhc2UgaWYgdGhlIGFwcCB3aWxsIG5lZWQgdG8g a25vdyB3aGF0IGlzIHRoZSBlcnJvciBpdCBpcyBoaXMNCj4gPiByZXNwb25zaWJpbGl0eSwgdGhp cyBpdGVtIGlzIGp1c3QgdmVyaWZpY2F0aW9uIGZvciBmYXN0IHBhdGguDQo+ID4gSWYgeW91IGhh dmUgYmV0dGVyIHN1Z2dlc3Rpb24sIEkgd2lsbCBiZSB2ZXJ5IGhhcHB5IHRvIGhlYXIuDQo+ID4N Cj4gPiA+DQo+ID4gPiA+ID4gPiArICogUlRFX0ZMT1dfSVRFTV9UWVBFX1NBTklUWV9DSEVDS1MN Cj4gPiA+ID4gPiA+ICsgKg0KPiA+ID4gPiA+ID4gKyAqIEVuYWJsZSBtYXRjaGluZyBvbiBwYWNr ZXQgdmFsaWRpdHkgYmFzZWQgb24gSFcgY2hlY2tzIGZvciB0aGUgTDMNCj4gYW5kDQo+ID4gPiBM NA0KPiA+ID4gPiA+ID4gKyAqIGxheWVycy4NCj4gPiA+ID4gPiA+ICsgKi8NCj4gPiA+ID4gPiA+ ICtzdHJ1Y3QgcnRlX2Zsb3dfaXRlbV9zYW5pdHlfY2hlY2tzIHsNCj4gPiA+ID4gPiA+ICsgICAg ICAgdWludDMyX3QgbGV2ZWw7DQo+ID4gPiA+ID4gPiArICAgICAgIC8qKjwgUGFja2V0IGVuY2Fw c3VsYXRpb24gbGV2ZWwgdGhlIGl0ZW0gc2hvdWxkIGFwcGx5IHRvLg0KPiA+ID4gPiA+ID4gKyAg ICAgICAgKiBAc2VlIHJ0ZV9mbG93X2FjdGlvbl9yc3MNCj4gPiA+ID4gPiA+ICsgICAgICAgICov DQo+ID4gPiA+ID4gPiArUlRFX1NURF9DMTENCj4gPiA+ID4gPiA+ICsgICAgICAgdW5pb24gew0K PiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIHN0cnVjdCB7DQo+ID4gPiA+ID4NCj4gPiA+ID4g PiBXaHkgdGhlcmUgaXMgbm8gTDIgY2hlY2s/DQo+ID4gPiA+ID4NCj4gPiA+ID4gT3VyIEhXIGRv ZXNuJ3Qgc3VwcG9ydCBpdC4NCj4gPiA+ID4gSWYgb3RoZXIgSFcgc3VwcG9ydCBpdCwgaXQgc2hv dWxkIGJlIGFkZGVkLg0KPiA+ID4NCj4gPiA+IEl0IHdvdWxkIGJlIGFuIEFCSSBicmVha2FnZS4g Q2FuIHdlIGFkZCBpdCBkYXkgb25lPw0KPiA+ID4NCj4gPiBXaWxsIGFkZCByZXNlcnZlLCBzaW5j ZSB0aGlzIGlzIGJpdCBmaWVsZCB0aGVyZSBzaG91bGRuJ3QgYmUgYW55DQo+ID4gQUJJIGJyZWFr Lg0KPiA+DQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBsM19v azoxOw0KPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgLyoqPCBMMyBsYXllciBp cyB2YWxpZCBhZnRlciBwYXNzaW5nIGFsbCBIVyBjaGVja2luZy4gKi8NCj4gPiA+ID4gPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGw0X29rOjE7DQo+ID4gPiA+ID4gPiArICAg ICAgICAgICAgICAgICAgICAgICAvKio8IEw0IGxheWVyIGlzIHZhbGlkIGFmdGVyIHBhc3Npbmcg YWxsIEhXIGNoZWNraW5nLiAqLw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gbDNfb2sgYW5kIGw0X29r IGxvb2tzIHZhZ3VlLg0KPiA+ID4gPiA+IFdoYXQgZG9lcyBpdCBjb3ZlciBleGFjdGx5Pw0KPiA+ ID4gPiA+DQo+ID4gPiA+IEl0IGRlcGVuZHMgb24gdGhlIEhXIGluIHF1ZXN0aW9uLg0KPiA+ID4g PiBJbiBvdXIgY2FzZSBpdCBjaGVja3MgaW4gY2FzZSBvZiBMMw0KPiA+ID4gPiB0aGUgaGVhZGVy IGxlbiwgYW5kIHRoZSB2ZXJzaW9uLg0KPiA+ID4gPiBGb3IgTDQgY2hlY2tpbmcgdGhlIGxlbi4N Cj4gPiA+DQo+ID4gPiBJZiB3ZSBkb24ndCBrbm93IGV4YWN0bHkgd2hhdCBpcyBjaGVja2VkLA0K PiA+ID4gaG93IGFuIGFwcGxpY2F0aW9uIGNhbiByZWx5IG9uIGl0Pw0KPiA+ID4gSXMgaXQgYSBi ZXN0IGVmZm9ydCBjaGVjaz8gV2hhdCBpcyB0aGUgdXNlIGNhc2U/DQo+ID4gPg0KPiA+IEZyb20g YXBwbGljYXRpb24gcG9pbnQgb2YgdmlldyB0aGF0IHBhY2tldCBpcyBpbnZhbGlkLg0KPiA+IGl0 IGlzIHRoZSBhcHAgcmVzcG9uc2liaWxpdHkgdG8gdW5kZXJzdGFuZCB3aHkuDQo+IA0KPiBBbmQg dGhhdCBpdCBjYW4gZGV0ZXJtaW5lIGJhc2VkIG9uIHRoZSBhdmFpbGFibGUgZmllbGRzIGluIG9s X2ZsYWdzLiByaWdodD8NCg0KUmlnaHQuDQoNCj4gSWYgSFcgY2FuIGluZGljYXRlIHRoYXQgdGhl IHBhY2tldCBpbnRlZ3JpdHkgaXMgaW4gcXVlc3Rpb24sDQo+IGEgUE1EIHNob3VsZCBiZSBhYmxl IHRvIHNldCB0aGUgYml0cyBpbiBvbF9mbGFncy4gQWZ0ZXIgdGhhdA0KPiB0aGUgYXBwbGljYXRp b24gc2hvdWxkIGRlY2lkZSB3aGF0IHRvIGRyb3AgYW5kIHdoYXQgdG8gcGFzcy4NCj4gDQo+IFdo YXQgaXMgbWlzc2luZyBpcyB0aGUgYWJpbGl0eSBmb3IgdGhlIGFwcGxpY2F0aW9uIHRvIHRlbGwg dGhlIEhXL1BNRCB0bw0KPiBkcm9wIGFueSBwYWNrZXQgd2hpY2ggZmFpbHMgcGFja2V0IGludGVn cml0eSBjaGVja3MuDQo+IA0KVGhpcyBpcyB0aGUgZHJvcCBhY3Rpb24uDQpPciBhbSBJIG1pc3Np bmcgc29tZXRoaW5nPw0KDQo+IEkgYmVsaWV2ZSBnZW5lcmFsbHkgZHJvcCBwYWNrZXRzIHdoZW4g RXRoZXJuZXQgQ1JDIGNoZWNrIGZhaWxzLg0KPiBCdXQgbDMgYW5kIGw0IGVycm9ycyBhcmUgbGVm dCB0byB0aGUgYXBwbGljYXRpb24gdG8gZGVhbCB3aXRoLg0KPiBJZiBhbiBhcHBsaWNhdGlvbiB3 YW50cyB0byBzYXZlIHNvbWUgQ1BVIGN5Y2xlcywgaXQgY291bGQgYXNrIHRoZQ0KPiBoYXJkd2Fy ZSB0byBkcm9wIHRob3NlIHBhY2tldHMgYXMgd2VsbC4gU28gb25lIGJpdCB0byBlbmFibGUvZGlz YWJsZQ0KPiB0aGlzIGZvciBhbGwgcGFja2V0cyBzaG91bGQgYmUgZ29vZC4NCj4gDQo+IEluIGNh c2Ugd2Ugc3RpbGwgd2FudCB0byBwdXJzdWUgdGhpcyBwZXIgZmxvdywgaG93IGFib3V0DQo+IFJU RV9GTE9XX0lURU1fVFlQRV9QQUNLRVRfSU5URUdSSVRZX0NIRUNLUyBpbnN0ZWFkIG9mDQo+IFJU RV9GTE9XX0lURU1fVFlQRV9TQU5JVFlfQ0hFQ0tTDQo+IA0KU3VyZSBJIGxpa2UgeW91ciBuYW1l IGJldHRlci4NCg0KQmVzdCwNCk9yaQ0K