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 402D7A0350; Mon, 29 Jun 2020 16:29:47 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id A90B81BF5C; Mon, 29 Jun 2020 16:29:46 +0200 (CEST) Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2081.outbound.protection.outlook.com [40.107.22.81]) by dpdk.org (Postfix) with ESMTP id DF9481BEDD for ; Mon, 29 Jun 2020 16:29:44 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MdH18zGloOSsj4qXi7ABKtPNog3E7e/3Im8bGG49K6wMh5PcmLFSAqfmXhyVN6CuDbMfSpL5EjrX2P6ZAaVsHoFr4yvdBguaKqwbwpcEjujOzlqYqpeIVMop7gnegqknRRuLCMcSihKim5HigsZ+X5n9l7f2r9fvc780/8YWs/O23LXWq2j8jOouiEZBD8T4wJfLq25YyoWUBGpPnh5JcDRQ5Oj5WxOflDhbc1IWX3y3Q4PWoxwWHfwhFHQHQWBVIg0hAp23bVuqOFzGP7AhgPVe7ekR242b0Jg4onab6ZF36uDlt0UAK/OmD49jUTwukvZxkn7vS8AhhkbEyC0svQ== 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=7auNxCXoOfrlNIj4L4L+8vdqKYZnUG8rJrc4xJqHJ6k=; b=UwFTZcvkTE6M0nrAkg/r0cdXO6ECKaCvGh37/NUmKwbT7Rd+WNdhzDOuUl9R9d6EMaOTLcpb0+SRwY05v8c7FMKcHpDufaoKyTspNuIEdRRSQWX7A4k3jDwV3dTLf8Xo9Y/tJ9F5ZalxlBrOEoQjeB1Hu3HsMpRxmW1Gueb3MuQR9Sb84BbZ1mdgjOI1A6fpf16wZlduAQu5Km0yikIDZrQGLa692hRri5NPSN2dadj0n0TDQArRn9H9raWqtwcC7DkHtBgHDUwAVtldQwNbzR9juTEiPagWuMtCa0aiHUTGOgjNbXUE6pTrdUtE0K8XNeOrU5a4S6ikYaWnriZl+g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7auNxCXoOfrlNIj4L4L+8vdqKYZnUG8rJrc4xJqHJ6k=; b=sxlnFnWkMz2UedphnsH/HOSklPt394qp809f++CWAfd84eulfWPKN/kZ6rznENBmswsa0PcPiYODrU/Wj44Di/BxdcxpGeETVQh9kOmw9RpI4xicJ/vno0/1glxGYMDLm7Ypo59KgHyEpRBUS1NcnlgZ33eUIl8EzVTJEWc82Xg= Received: from AM6PR05MB5176.eurprd05.prod.outlook.com (2603:10a6:20b:63::30) by AM7PR05MB7010.eurprd05.prod.outlook.com (2603:10a6:20b:1a5::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.25; Mon, 29 Jun 2020 14:29:43 +0000 Received: from AM6PR05MB5176.eurprd05.prod.outlook.com ([fe80::9024:accb:4d6b:805f]) by AM6PR05MB5176.eurprd05.prod.outlook.com ([fe80::9024:accb:4d6b:805f%3]) with mapi id 15.20.3131.027; Mon, 29 Jun 2020 14:29:43 +0000 From: Ori Kam To: Andrew Rybchenko , "Jiawei(Jonny) Wang" , Slava Ovsiienko , Matan Azrad CC: "dev@dpdk.org" , Thomas Monjalon , Raslan Darawsheh , "ian.stokes@intel.com" , "fbl@redhat.com" , Adrien Mazarguil Thread-Topic: [dpdk-dev] [PATCH 1/8] ethdev: introduce sample action for rte flow Thread-Index: AQHWSxDCyLojAHjlU0ugMUl3sJ+yrajttbMAgACDIICAAACggIABDHEwgABRp4CAAA/bIA== Date: Mon, 29 Jun 2020 14:29:43 +0000 Message-ID: References: <1593102379-400132-1-git-send-email-jiaweiw@mellanox.com> <1593102379-400132-2-git-send-email-jiaweiw@mellanox.com> <58ad214a-652e-a40f-d602-c035df7bcfa7@solarflare.com> <48fa20a4-2288-bbda-a8aa-0e0e83ec527d@solarflare.com> In-Reply-To: <48fa20a4-2288-bbda-a8aa-0e0e83ec527d@solarflare.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: solarflare.com; dkim=none (message not signed) header.d=none;solarflare.com; dmarc=none action=none header.from=mellanox.com; x-originating-ip: [147.236.152.129] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: f8a697c8-5f73-48ba-f846-08d81c38ddd8 x-ms-traffictypediagnostic: AM7PR05MB7010: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr,ExtFwd x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 044968D9E1 x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: gZX+QlY0zoMEm7INymNXzrlu26aC/Fh4zL6z3TdB10z0BPTx5+vklRQ/E5wOEQgR94jLO7CwuLqJAXTPCFtWZFCcowXndY7LnskUF7PB/jadrVmCzhHMFWK6UpAWkeOMut3gkxE8lQ5s7SbXb2SgpTsr7dp46u6IuzfS9ir/Sopin2+6TJ8o5bh8A4fUiXOqZjjmlKt0uQ+58t4eEkvqhDQZfZx1ohQLnafg1Bj+lNxhaSySOvyErapk1CF3CadvfD4TM0bY624TG3WgD0pi5lg6z3J7bH8k4J/lXdLD3PuZ0OGH/19dFcNmm3PC+fpQLMEPmml3NCAhO5XLQXDCDw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM6PR05MB5176.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(376002)(366004)(136003)(396003)(346002)(39860400002)(9686003)(55016002)(64756008)(66446008)(66476007)(66946007)(66556008)(4326008)(76116006)(53546011)(26005)(478600001)(186003)(6506007)(83380400001)(33656002)(7696005)(71200400001)(5660300002)(52536014)(8676002)(8936002)(86362001)(2906002)(110136005)(54906003)(6636002)(316002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: IHhP3kPlV2skqo7uWkiGqmO/JTXnYRaAtSi3zSEu9DwGUOurUSS7LNYg4DGF1dsrpzd1AZoUVD+ZxbB0ZcpA1iXwkHBg8fbTaPaNO3ckSRPtKXjPKvZOCoLTYoJunYub5zxpL8L0kJfzmkIia6rCscezptbLFvEI63ZTUH/x54np8reip6YTASxsPf0Glo7nOb5Q+b3hK6/MYqoGaOhrWGP8moqjH513NpNoJ6A5ShkDHmNzf4Dm3HWwKftSBfxHqhqnFotxvB20QSsci0ys+R4McnovJQaI2EaqXbOLnUSTGSWzS5BjaAfsPiaf/vF/wWeG6R6DGnHCdBzt4JPn6XgEThEAA97SITyB/LRrbAcEtV6ZIrpFZ7yI4FopQWe5ED5RDoJvmxWZtRg8Qa0s4qOHKJMHorni2CUXjpiTORoMlcs+VOm/25klzAYZcQZiQ/GN5iQG3tiZ6ILagd+UCVZ/w0Y0L8msQzmjdJsQt8psCD4tr/K4WkDOJ6Awvd7O Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM6PR05MB5176.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f8a697c8-5f73-48ba-f846-08d81c38ddd8 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Jun 2020 14:29:43.7626 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: z0WxbjmrSei7V+dTW/t1P7rg9Z7mPSi9zUKoUI/pykcpg5efHItoYkCb/9ARqTO4TrQTHkm/vxlzVxBHk82NZA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR05MB7010 Subject: Re: [dpdk-dev] [PATCH 1/8] ethdev: introduce sample action for rte flow 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" SGkgQWxsLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEFuZHJldyBS eWJjaGVua28gPGFyeWJjaGVua29Ac29sYXJmbGFyZS5jb20+DQo+IFNlbnQ6IE1vbmRheSwgSnVu ZSAyOSwgMjAyMCA0OjEyIFBNDQo+IFRvOiBPcmkgS2FtIDxvcmlrYUBtZWxsYW5veC5jb20+OyBK aWF3ZWkoSm9ubnkpIFdhbmcNCj4gPGppYXdlaXdAbWVsbGFub3guY29tPjsgU2xhdmEgT3ZzaWll bmtvIDx2aWFjaGVzbGF2b0BtZWxsYW5veC5jb20+Ow0KPiBNYXRhbiBBenJhZCA8bWF0YW5AbWVs bGFub3guY29tPg0KPiBDYzogZGV2QGRwZGsub3JnOyBUaG9tYXMgTW9uamFsb24gPHRob21hc0Bt b25qYWxvbi5uZXQ+OyBSYXNsYW4NCj4gRGFyYXdzaGVoIDxyYXNsYW5kQG1lbGxhbm94LmNvbT47 IGlhbi5zdG9rZXNAaW50ZWwuY29tOyBmYmxAcmVkaGF0LmNvbTsNCj4gQWRyaWVuIE1hemFyZ3Vp bCA8YWRyaWVuLm1hemFyZ3VpbEA2d2luZC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZd IFtQQVRDSCAxLzhdIGV0aGRldjogaW50cm9kdWNlIHNhbXBsZSBhY3Rpb24gZm9yIHJ0ZQ0KPiBm bG93DQo+IA0KPiBIaSBhbGwsDQo+IA0KPiBDQyBBZHJpZW4NCj4gDQo+IChJIGFwb2xvZ2l6ZSBm b3IgcHVsbGluZyB5b3UgdG8gdGhlIHJ0ZV9mbG93IEFQSSBkaXNjdXNzaW9ucw0KPiBvbmNlIGFn YWluLCBidXQgbWF5IGJlIHlvdSBjYW4gZmluZCBzcGFyZSB0aW1lIGFuZCBzaGFyZSB5b3VyDQo+ IHRob3VnaHRzLiBZb3VyIG9waW5pb24gYXMgYW4gYXV0aG9yIGFuZCBhcmNoaXRlY3Qgb2YgdGhl DQo+IHJ0ZV9mbG93IEFQSSB3b3VsZCBiZSB2ZXJ5IHVzZWZ1bCBhbmQgaGlnaGx5IGFwcHJlY2lh dGVkLikNCj4gDQo+IE9uIDYvMjkvMjAgMjo0MCBQTSwgT3JpIEthbSB3cm90ZToNCj4gPiBIaSBh bGwsDQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogQW5k cmV3IFJ5YmNoZW5rbyA8YXJ5YmNoZW5rb0Bzb2xhcmZsYXJlLmNvbT4NCj4gPj4gU2VudDogU3Vu ZGF5LCBKdW5lIDI4LCAyMDIwIDc6MTkgUE0NCj4gPj4gVG86IEppYXdlaShKb25ueSkgV2FuZyA8 amlhd2Vpd0BtZWxsYW5veC5jb20+OyBPcmkgS2FtDQo+ID4+IDxvcmlrYUBtZWxsYW5veC5jb20+ OyBTbGF2YSBPdnNpaWVua28gPHZpYWNoZXNsYXZvQG1lbGxhbm94LmNvbT47DQo+IE1hdGFuDQo+ ID4+IEF6cmFkIDxtYXRhbkBtZWxsYW5veC5jb20+DQo+ID4+IENjOiBkZXZAZHBkay5vcmc7IFRo b21hcyBNb25qYWxvbiA8dGhvbWFzQG1vbmphbG9uLm5ldD47IFJhc2xhbg0KPiA+PiBEYXJhd3No ZWggPHJhc2xhbmRAbWVsbGFub3guY29tPjsgaWFuLnN0b2tlc0BpbnRlbC5jb207DQo+IGZibEBy ZWRoYXQuY29tDQo+ID4+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCAxLzhdIGV0aGRl djogaW50cm9kdWNlIHNhbXBsZSBhY3Rpb24gZm9yIHJ0ZQ0KPiA+PiBmbG93DQo+ID4+DQo+ID4+ IE9uIDYvMjgvMjAgNzoxNiBQTSwgSmlhd2VpKEpvbm55KSBXYW5nIHdyb3RlOg0KPiA+Pj4NCj4g Pj4+IE9uIFN1bmRheSwgSnVuZSAyOCwgMjAyMCA0OjI3IFBNLCBBbmRyZXcgUnliY2hlbmtvDQo+ ID4+IDxhcnliY2hlbmtvQHNvbGFyZmxhcmUuY29tPiB3cm90ZToNCj4gPj4+Pg0KPiA+Pj4+IE9u IDYvMjUvMjAgNzoyNiBQTSwgSmlhd2VpIFdhbmcgd3JvdGU6DQo+ID4+Pj4+IFdoZW4gdXNpbmcg ZnVsbCBvZmZsb2FkLCBhbGwgdHJhZmZpYyB3aWxsIGJlIGhhbmRsZWQgYnkgdGhlIEhXLCBhbmQN Cj4gPj4+Pj4gZGlyZWN0ZWQgdG8gdGhlIHJlcXVlc3RlZCB2ZiBvciB3aXJlLCB0aGUgY29udHJv bCBhcHBsaWNhdGlvbiBsb3Nlcw0KPiA+Pj4+PiB2aXNpYmlsaXR5IG9uIHRoZSB0cmFmZmljLg0K PiA+Pj4+PiBTbyB0aGVyZSdzIGEgbmVlZCBmb3IgYW4gYWN0aW9uIHRoYXQgd2lsbCBlbmFibGUg dGhlIGNvbnRyb2wNCj4gPj4+Pj4gYXBwbGljYXRpb24gc29tZSB2aXNpYmlsaXR5Lg0KPiA+Pj4+ Pg0KPiA+Pj4+PiBUaGUgc29sdXRpb24gaXMgaW50cm9kdWNlZCBhIG5ldyBhY3Rpb24gdGhhdCB3 aWxsIHNhbXBsZSB0aGUgaW5jb21pbmcNCj4gPj4+Pj4gdHJhZmZpYyBhbmQgc2VuZCBhIGR1cGxp Y2F0ZWQgdHJhZmZpYyBpbiBzb21lIHByZWRlZmluZWQgcmF0aW8gdG8gdGhlDQo+ID4+Pj4+IGFw cGxpY2F0aW9uLCB3aGlsZSB0aGUgb3JpZ2luYWwgcGFja2V0IHdpbGwgY29udGludWUgdG8gdGhl IHRhcmdldA0KPiA+Pj4+PiBkZXN0aW5hdGlvbi4NCj4gPj4+Pj4NCj4gPj4+Pj4gVGhlIHBhY2tl dHMgc2FtcGxlZCBlcXVhbHMgaXMgJzEvcmF0aW8nLCBpZiB0aGUgcmF0aW8gdmFsdWUgYmUgc2V0 IHRvDQo+ID4+Pj4+IDEgLCBtZWFucyB0aGF0IHRoZSBwYWNrZXRzIHdvdWxkIGJlIGNvbXBsZXRl bHkgbWlycm9yZWQuIFRoZSBzYW1wbGUNCj4gPj4+Pj4gcGFja2V0IGNhbiBiZSBhc3NpZ25lZCB3 aXRoIGRpZmZlcmVudCBzZXQgb2YgYWN0aW9ucyBmcm9tIHRoZSBvcmlnaW5hbA0KPiA+Pj4+IHBh Y2tldC4NCj4gPj4+Pj4NCj4gPj4+Pj4gSW4gb3JkZXIgdG8gc3VwcG9ydCB0aGUgc2FtcGxlIHBh Y2tldCBpbiBydGVfZmxvdywgbmV3IHJ0ZV9mbG93IGFjdGlvbg0KPiA+Pj4+PiBkZWZpbml0aW9u IFJURV9GTE9XX0FDVElPTl9UWVBFX1NBTVBMRSBhbmQgc3RydWN0dXJlDQo+ID4+Pj4+IHJ0ZV9m bG93X2FjdGlvbl9zYW1wbGUgd2lsbCBiZSBpbnRyb2R1Y2VkLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBT aWduZWQtb2ZmLWJ5OiBKaWF3ZWkgV2FuZyA8amlhd2Vpd0BtZWxsYW5veC5jb20+DQo+ID4+Pj4N Cj4gPj4+PiBbc25pcF0NCj4gPj4+Pg0KPiA+Pj4+PiBAQCAtMjcwOSw2ICsyNzE2LDI4IEBAIHN0 cnVjdCBydGVfZmxvd19hY3Rpb24geyAgc3RydWN0IHJ0ZV9mbG93Ow0KPiA+Pj4+Pg0KPiA+Pj4+ PiAgLyoqDQo+ID4+Pj4+ICsgKiBAd2FybmluZw0KPiA+Pj4+PiArICogQGIgRVhQRVJJTUVOVEFM OiB0aGlzIHN0cnVjdHVyZSBtYXkgY2hhbmdlIHdpdGhvdXQgcHJpb3Igbm90aWNlDQo+ID4+Pj4+ ICsgKg0KPiA+Pj4+PiArICogUlRFX0ZMT1dfQUNUSU9OX1RZUEVfU0FNUExFDQo+ID4+Pj4+ICsg Kg0KPiA+Pj4+PiArICogQWRkcyBhIHNhbXBsZSBhY3Rpb24gdG8gYSBtYXRjaGVkIGZsb3cuDQo+ ID4+Pj4+ICsgKg0KPiA+Pj4+PiArICogVGhlIG1hdGNoaW5nIHBhY2tldHMgd2lsbCBiZSBkdXBs aWNhdGVkIHRvIGEgc3BlY2lhbCBxdWV1ZSBvcg0KPiA+Pj4+PiArdnBvcnQNCj4gPj4+Pj4gKyAq IGluIHRoZSBwcmVkZWZpbmVkIHByb2JhYmlpbHR5LCBBbGwgdGhlIHBhY2tldHMgY29udGludWVz DQo+ID4+Pj4+ICtwcm9jZXNzaW5nDQo+ID4+Pj4+ICsgKiBvbiB0aGUgZGVmYXVsdCBmbG93IHBh dGguDQo+ID4+Pj4+ICsgKg0KPiA+Pj4+PiArICogV2hlbiB0aGUgc2FtcGxlIHJhdGlvIGlzIHNl dCB0byAxIHRoZW4gdGhlIHBhY2tldHMgd2lsbCBiZSAxMDAlDQo+ID4+Pj4gbWlycm9yZWQuDQo+ ID4+Pj4+ICsgKiBBZGRpdGlvbmFsIGFjdGlvbiBsaXN0IGJlIHN1cHBvcnRlZCB0byBhZGQgZm9y IHNhbXBsZWQgb3IgbWlycm9yZWQNCj4gPj4+PiBwYWNrZXRzLg0KPiA+Pj4+PiArICovDQo+ID4+ Pj4+ICtzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3NhbXBsZSB7DQo+ID4+Pj4+ICsJLyogcGFja2V0 cyBzYW1wbGVkIGVxdWFscyB0byAnMS9yYXRpbycgKi8NCj4gPj4+Pj4gKwljb25zdCB1aW50MzJf dCByYXRpbzsNCj4gPj4+Pj4gKwkvKiBzdWItYWN0aW9uIGxpc3Qgc3BlY2lmaWMgZm9yIHRoZSBz YW1wbGluZyBoaXQgY2FzZXMgKi8NCj4gPj4+Pj4gKwljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0 aW9uICphY3Rpb25zOw0KPiA+Pj4+DQo+ID4+Pj4gVGhpcyBkZXNpZ24gaWRlYSBkb2VzIG5vdCBs b29rIGdvb2QgdG8gbWUgZnJvbSB0aGUgdmVyeSBiZWdpbm5pbmcuIElNSE8NCj4gaXQNCj4gPj4+ PiBkb2VzIG5vdCBmaXQgZmxvdyBBUEkgb3ZlcmFsbCBkZXNpZ24uDQo+ID4+Pj4gSSBtZWFuIHN1 Yi1hY3Rpb24gbGlzdC4NCj4gPj4+Pg0KPiA+Pj4+IEFzIEkgdW5kZXJzdGFuZCBMaW51eCBpcHRh YmxlcyBzb2x2ZXMgaXQgb24gbWF0Y2ggbGV2ZWwgKGkuZS4gaW4gcGF0dGVybikuIEUuZy4NCj4g Pj4+PiAibGltaXQiIGV4dGVuc2lvbiB3aGljaCBpcyBiYXNpY2FsbHkgc2FtcGxpbmcuIFNhbXBs aW5nIHVzaW5nIG1ldGEgcGF0dGVybg0KPiA+Pj4+IGl0ZW0gaW4gY29tYmluYXRpb24gd2l0aCBQ QVNTVEhSVSBhY3Rpb24gKHRvIG1ha2Ugc2FtcGxpbmcgYWN0aW9ucw0KPiBub24tDQo+ID4+Pj4g dGVybWluYXRpbmcgaWYgcmVxdWlyZWQpIGlzIGEgYmV0dGVyIHNvbHV0aW9uIGZyb20gZGVzaWdu IHBvaW50IG9mIHZpZXcuDQo+ID4+Pg0KPiA+Pj4gT24gb3VyIGRlc2lnbiwgdGhlcmUncmUgc2Ft cGxlIGZsb3cgcGF0aCBhbmQgbm9ybWFsIGZsb3cgcGF0aCwgZWFjaCBwYXRoDQo+ID4+IGNhbiBo YXZlIGRpZmZlcmVudCBhY3Rpb25zLg0KPiA+Pj4gVGhlIGRlZmluZWQgc3ViLWFjdGlvbnMgbGlz dCBvbmx5IGFwcGxpZWQgZm9yIHNhbXBsZWQgcGFja2V0cyBpbiB0aGUgc2FtcGxlDQo+ID4+IGZs b3cgcGF0aDsNCj4gPj4+IEZvciBub3JtYWwgcGF0aCwgYWxsIHBhY2tldHMgd2lsbCBjb250aW51 ZSB0byBnbyB3aXRoIHRoZSBvcmlnaW5hbCBhY3Rpb25zLg0KPiA+Pj4NCj4gPj4NCj4gPj4gSW4g bXkgdG9vLg0KPiA+DQo+ID4gRmlyc3QgYXMgZmFyIGFzIEkga25vdyBUQyB3b3JrcyBjbG9zZSB0 byB0aGUgc3VnZ2VzdCBhcHByb2FjaCAodGhhdCBieSBpdHNlbGYNCj4gZG9lc27igJl0IG1lYW4g YW55dGhpbmcpDQo+ID4gVGhlIGNvbmNlcHQgb2YgYSBQQVNTVEhSVSBpcyBhIGdvb2Qgb25lIGJ1 dCBpdCBoYXMgc29tZSBpc3N1ZSB0byBjb25zaWRlcjoNCj4gPiAxLiBXaGVuIHVzaW5nIFBBU1NU SFJVIGl0IHdpbGwgbWVhbiB0aGF0IHRoZSBtYXRjaGluZyBwYXJ0IHdpbGwgYmUgbmVlZGVkDQo+ IHRvIGJlIGNoZWNrZWQNCj4gPiBtb3JlIHRpbWVzIHRoaXMgd2lsbCBoYXZlIHBlcmZvcm1hbmNl IHBlbmFsdHkgLCBhbHNvIG51bWJlciBvZiBIVyBoYXZlDQo+IGxpbWl0ZWQgbnVtYmVyIG9mIGZs b3cgdGhhdCBjYW4gYmUgb2ZmbG9hZA0KPiA+IHRoaXMgd2lsbCBhcHByb2FjaCB3aWxsIHdhc3Rl IHJlc291cmNlcy4NCj4gDQo+IE1hcmtpbmcgb3IgdGFnZ2luZyBjb3VsZCBiZSB1c2VkIHRvIGFk ZHJlc3MgaXQuIEUuZy4gdGFyZ2V0DQo+IHRyYWZmaWMgY291bGQgYmUgdGFnZ2VkIGZpcnN0LCB0 aGVuIG1hdGNoaW5nIGJ5IHRhZyBzaG91bGQgYmUNCj4gdXNlZCB0byBzYW1wbGUgYW5kIHRvIGRv IEhXIG9mZmxvYWRzLg0KPiANCkluIHRoaXMgY2FzZSB5b3UgYXJlIGZvcmNpbmcgYXQgbGVhc3Qg dHdvIHN0ZXBzLCB0aGlzIHdpbGwgaHVydCBwZXJmb3JtYW5jZS4NCk1hdGNoaW5nIG9uIG1hcmsg aXMgdGhlIHNhbWUgYXMgbWF0Y2hpbmcgb24gb3RoZXIgaXRlbXMuIFdoaWxlIGl0IG1heSBoYXZl IGV4dHJhDQpwZW5hbHR5IHRvIGFkZCB0aGUgZXh0cmEgbWFyayBhY3Rpb24uICh0aGlzIGlzIGdl bmVyYWwgSFcgaXNzdWUgSSBhc3N1bWUgbnVtYmVyIG9mIA0KbWFudWZhY3R1cmVzIGhhdmUgdGhl IHNhbWUgbGltaXRhdGlvbikNCg0KPiBNb3Jlb3ZlciwgbWFwcGluZyBvZiBydGVfZmxvdyBBUEkg cnVsZXMgaW50byBIVyBydWxlIGlzIG5vdA0KPiByZXF1aXJlZCB0byBiZSAxLXRvLTEuIFllcywg MS10by0xIGlzIHNpbXBsZSwgYnV0IGl0IGNvdWxkIGJlDQo+IG1vcmUgY29tcGxpY2F0ZWQgMS10 by1OICh3aGVuIG9uZSBydGVfZmxvdyBBUEkgcnVsZSBpcw0KPiByZXByZXNlbnRlZCBieSBtYW55 IEhXIHJ1bGVzKSBvciBOLXRvLTEgKHdoZW4gZmV3IGZsb3cgQVBJDQo+IHJ1bGVzIGFyZSByZXBy ZXNlbnRlZCBhcyBvbmUgSFcgcnVsZSkgb3IgZXZlbiBOLXRvLU0uDQo+IEZvciBleGFtcGxlLCB0 YWdnaW5nIHdoaWNoIGlzIG5vdCB2aXNpYmxlIG91dHNpZGUsIGNvdWxkIGJlDQo+IHB1cmVseSBT VyBhbmQgdXNlZCB0byBidWlsZCBzdWNoIGNvbnN0cnVjdGlvbnMgaW4gU1cuDQo+IEl0IGlzIGFu IGltcGxlbWVudGF0aW9uIGRldGFpbCBpcyBvdXQgb2Ygc2NvcGUgb2YgdGhlIGdlbmVyaWMNCj4g QVBJIGRlZmluaXRpb24uDQo+IA0KSSBkb27igJl0IHVuZGVyc3RhbmQgdGhpcyBwYXJ0LiBJIG5l dmVyIHNhaWQgdGhhdCAxIHRvIDEgaXMgbmVlZGVkDQpidXQgaWYgeW91IHRyeSB0byBjb21iaW5l IGZsb3dzIGluIFNXIGl0IG1lYW5zIHRoYXQgeW91IG11c3Qga2VlcCBhbGwgZmxvd3MNCmluIHRo ZSBQTUQgaW4gb3JkZXIgdG8gY29tYmluZSB0aGVtLiBJIG5vdyBzb21lIEhXIG11c3QgZG8gdGhh dCwgYnV0IG5vdCANCmFsbCBvZiB0aGVtIGFuZCBpZiB0aGV5IGRvbuKAmXQgaXQgaXMganVzdCBh IGh1Z2UgbWVtb3J5IHdhc3RlLg0KDQo+IFllcywgaXQgc291bmRzIGxpa2Ugb3Zlci1jb21wbGlj YXRpbmcsIGJ1dCBJIHJlYWxseSBkaXNsaWtlDQo+IGFib3ZlIHN1Yi1hY3Rpb24gbGlzdCBmcm9t IGRlc2lnbiBwb2ludCBvZiB2aWV3IGFuZCB0aGF0J3MNCj4gd2h5IEkibSB0cnlpbmcgdG8gdGhp bmsgaW4gZGlmZmVyZW50IGRpcmVjdGlvbnMuDQo+IA0KVGhpbmtpbmcgaW4gZGlmZmVyZW50IGRp cmVjdGlvbiBpcyBhbHdheXMgZ29vZC4gDQpJIGp1c3QgdGhpbmsgdGhhdCBiZXR3ZWVuIHRoZSB0 d28gYXBwcm9hY2hlcyBJIGxpa2UgdGhlIG9yaWdpbmFsIGJldHRlci4NCk1heSBiZSB5b3UgY2Fu IGV4cGxhaW4geW91ciByZWFzb24gZm9yIHlvdXIgb3BpbmlvbiBhbmQgd2UgY2FuIGZpbmQgdGhl IGJlc3QNCnNvbHV0aW9uIHRvZ2V0aGVyPw0KDQoNCg0KPiA+IDIuIFVzaW5nIFBBU1NUSFJVIHdp bGwgZm9yY2UgdGhlIG9yZGVyIG9mIGZsb3dzIChzdXJlIGl0IGNhbiBiZSBkb25lIHVzaW5nDQo+ IHByaW9yaXRpZXMgYnV0IGl0IGlzIG1vcmUgY29tcGxleCB0bw0KPiA+IHRoZSBhcHBsaWNhdGlv biB0byBpbXBsZW1lbnQpDQo+IA0KPiBTZWUgYWJvdmUuDQo+IA0KDQpTZWUgYWJvdmUg8J+Yig0K DQo+ID4gMy4gUEFTU1RIUlUgd2lsbCBtZWFuIHRoYXQgdGhlcmUgd2lsbCBiZSAyIHRlcm1pbmFs IGFjdGlvbiBmb3IgZWFjaCBmbG93IChmb3INCj4gZXhhbXBsZSBxdWV1ZSBpbmRleCAyIC8gcGFz c3RocnUpDQo+ID4gdGhpcyBhbHNvIGlzIG5vdCBuYXRpdmUgdG8gUlRFIGZsb3cuDQo+IA0KPiBT b3JyeSwgYnV0IHRoZXJlIGFyZSB0d28gYnJhbmNoZXMgZm9yIHRlcm1pbmF0aW5nIGFjdGlvbnMg aW4NCj4gdGhlIHNhbXBsaW5nIGFjdGlvbiBkZXNpZ24gYW55d2F5ICh5ZXMsIGludGVybmFsL2hp ZGRlbikuDQo+IFlvdSBuZWVkIHR3byBjb3BpZXMgb2YgdGhlIHBhY2tldCwgc28gd2hhdGV2ZXIg eW91IGRvIGl0DQo+IHdpbGwgYmUgdHdvIHRlcm1pbmF0aW5nIGFjdGlvbnMuDQo+IA0KWWVzIGJ1 dCB5b3UgY2FuIGxvb2sgYXQgaXQgYXMgMSBmbG93IHdpdGggMiBzZXRzIG9mIGFjdGlvbnMgYW5k IG5vdCB0d28gZmxvd3MuIA0KDQo+ID4gNC4gc2luY2Ugd2Ugd2FudCB0byBzZWxlY3Qgb25seSBw YXJ0IG9mIHRoZSBwYWNrZXRzLCBhbmQgd2Ugd2FudCB0byBoYXZlIHNvbWUNCj4gb2YgdGhlIGFj dGlvbnMgZG9uZSBvbiBib3RoDQo+ID4gcGFja2V0cyAodGhlIHNhbXBsZWQgYW5kIHRoZSBzdGFu ZGFyZCBvbmUpIGFuZCB0aGVuIHdlIHdhbnQgICBvbiB0aGUNCj4gc2FtcGxlZCBwYWNrZXQgZG8g c29tZSBzcGVjaWZpYyBhY3Rpb25zDQo+ID4gd2hpbGUgb24gdGhlIHN0YW5kYXJkIHBhY2tldCBk byBkaWZmZXJlbnQgYWN0aW9ucy4NCj4gDQo+IFllcywgaXQgaXMgbm90IGEgcHJvYmxlbSB3aXRo IFBBU1NUSFJVLg0KPiANCj4gPiBMZXN0IGNoZWNrIHRoZSBmb2xsb3dpbmcgdXNlIGNhc2U6DQo+ ID4gQXBwbGljYXRpb24gaXMgdXNpbmcgZnVsbCBvZmZsb2FkIHRyYWZmaWMgZnJvbSB0aGUgd2ly ZSB0byBhIFZNLCB3aGljaCBzaG91bGQNCj4gZGVjYXBlZA0KPiA+IFNvIHRoZSBiYXNpYyBmbG93 IGlzOg0KPiA+IEZsb3cgY3JlYXRlIDAgIHRyYW5zZmVyIGluZ3Jlc3MgcGF0dGVybiBldGggLyBv dXRlci5pcCA9eCAvIGVuZCAgYWN0aW9ucyBkZWNhcCAvDQo+IHBvcnQgaWQgMw0KPiA+IFNpbmNl IGFmdGVyIHRoZSBvZmZsb2FkIHRoZSBhcHBsaWNhdGlvbiBsb3NlcyB2aXNpYmlsaXR5IG9mIHRo ZSB0cmFmZmljLiBpdCBzdGlsbA0KPiB3YW50cyB0byBzYW1wbGUgc29tZSBvZiB0aGUgdHJhZmZp Yw0KPiA+IGluIG9yZGVyIHRvIHZlcmlmeSB0aGF0IHRoZSB0cmFmZmljIGlzIHZhbGlkLiBTbyB0 aGUgYXBwbGljYXRpb24gcmVxdWVzdCB0byByZWNlaXZlDQo+IHNvbWUgb2YgdGhlIG9yaWdpbmFs IHRyYWZmaWMgYW5kDQo+ID4gbWFyayBpdCB3aXRoIGlkLg0KPiA+DQo+ID4gSWYgd2UgdXNlIHRo ZSBvcmlnaW5hbCBhcHByb2FjaCAodGhlIG9uZSBpbiB0aGUgcGF0Y2gpIHdlIHdpbGwgbmVlZCBz b21ldGhpbmcNCj4gbGlrZSB0aGlzOg0KPiA+IEZsb3cgMTogZmxvdyBjcmVhdGUgMCB0cmFuc2Zl ciBpbmdyZXNzIHBhdHRlcm4gZXRoIC8gb3V0ZXIuaXA9eCAvIGVuZCBhY3Rpb25zDQo+IHNhbXBs ZShyYXRpbyAyLCAgYWN0aW9ucyBtYXJrIGlkIDMgLyBwb3J0IHBmKSkgLyBkZWNhcCAvIHBvcnQg Mw0KPiA+DQo+ID4gSW4gdGhlIFBBU1NUSFJVIGNvbmNlcHQgKEknbSBub3Qgc3VyZSBJIGNhbiBl dmVuIGNyZWF0ZSBzdWNoIGZsb3dzKQ0KPiA+IEZsb3cgMTogZmxvdyBjcmVhdGUgMCB0cmFuc2Zl ciBpbmdyZXNzIHBhdHRlcm4gZXRoIC8gb3V0ZXIuaXAgPXggLyBlbmQgIGFjdGlvbnMNCj4gZGVj YXAgLyBwb3J0IDIgIC9wYXNzdHRocnUgLy8gb3JpZ2luYWwgcmVxdWVzdA0KPiA+IEZsb3cgMjog ZmxvdyBjcmVhdGUgMCB0cmFuc2ZlciBpbmdyZXNzIHBhdHRlcm4gZXRoLyBvdXRlci5pcD14IC8g c2hvdWxkIHNhbXBsZQ0KPiAobmV3IGl0ZW0gdGhhdCBzZWxlY3RzIGlmIHRoZSBwYWNrZXQgaXMg c2VsZWN0ZWQgYmFzZWQgb24gdGhlIHJhdGlvKWVuZCBhY3QgLw0KPiBtYXJrIC8gcG9ydCBwZg0K PiA+DQo+ID4gVGhlIG1haW4gaXNzdWUgd2l0aCB0aGlzIGNhc2UgdGhlIGRlY2FwIGlzIGJlZm9y ZSB0aGUgc2FtcGxlIHNvIHRoZSBzYW1wbGUNCj4gd2lsbCBnZXQgZGVjYXAgcGFja2V0Lg0KPiAN Cj4gT3JkZXIgc2hvdWxkIGJlIHNpbXBseSBkaWZmZXJlbnQ6IGZpcnN0IHNhbXBsaW5nIHdpdGgg cGFzcy0NCj4gdGhyb3VnaCwgc2Vjb25kIGRlY2FwIGFuZCBkZWxpdmVyIHRvIFZNLg0KPg0KVGhl biBpbiB5b3VyIGNhc2UgdGhlIHBhY2tldCB3aWxsIGJlIG1hcmtlZC4gV2hpY2ggaXMgbm90IHdo YXQgdGhlIA0KYXBwbGljYXRpb24gcmVxdWVzdGVkLg0KIA0KPiBZZXMsIEkgcmVhbGl6ZSB0aGF0 IHR3byBhY3Rpb25zIHdpdGggYmFzaWNhbGx5IHRoZSBzYW1lIG1hdGNoDQo+IChtb2R1bG8gc2Ft cGxpbmcgbWF0Y2gpIGlzIG5vdCBpZGVhbCBmb3IgbWFwcGluZyB0byBIVyAoZXZlbg0KPiBpZiBp dCBjb2xsYXBzZWQgaW50byB0cml2aWFsIHRhZyBtYXRjaCB3aGljaCBwcmUtcnVsZSB0byBtYWtl DQo+IHRhZ2dpbmcpLiBJJ20gbm90IDEwMCUgaGFwcHkgd2l0aCBpdCwgYnV0IEknbSBldmVuIGxl c3MgaGFwcHkNCj4gd2l0aCBzdWItYWN0aW9uIGxpc3QgZGVzaWduIGFuZCBqdXN0IHRyeWluZyB0 byBmaW5kIGJldHRlcg0KPiBhbHRlcm5hdGl2ZSBzb2x1dGlvbi4NCj4gDQpQbGVhc2Ugc2VlIGFi b3ZlLCBtYXliZSB3ZSBjYW4gZmluZCB0aGUgYmVzdCBzb2x1dGlvbiB0b2dldGhlci4gDQoNCj4g PiBTbyB3aGVuIGxvb2tpbmcgYXQgZXZlcnl0aGluZyBJIHRoaW5rIHRoZSBvcmlnaW5hbCBBUEkg aXMgdGhlIGJlc3QgYXBwcm9hY2guDQo+ID4gRm9yIHRoZSByZWNvcmQgSSB0aGluayB0aGF0IHBh c3N0aHJ1IGFjdGlvbiBpcyB2ZXJ5IGltcG9ydGFudCBhbmQgc2hvdWxkIGJlDQo+IHN1cHBvcnRl ZCBidXQgbm90IHRoZSBiZXN0IG9uZSBmb3IgdGhpcyBmZWF0dXJlLg0KPiA+DQo+ID4gVGhhbmtz LA0KPiA+IE9yaQ0KPiA+DQpCZXN0LA0KT3JpDQo=