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 7635DA0613 for ; Fri, 27 Sep 2019 16:45:59 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 425DB1BF2C; Fri, 27 Sep 2019 16:45:59 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by dpdk.org (Postfix) with ESMTP id 49FF61BF0F for ; Fri, 27 Sep 2019 16:45:58 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id x8REj5s1016024; Fri, 27 Sep 2019 07:45:46 -0700 Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-0016f401.pphosted.com with ESMTP id 2v8vdwp39b-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 27 Sep 2019 07:45:45 -0700 Received: from m0045849.ppops.net (m0045849.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.36/8.16.0.36) with SMTP id x8REjjfI016594; Fri, 27 Sep 2019 07:45:45 -0700 Received: from sc-exch03.marvell.com ([199.233.58.183]) by mx0a-0016f401.pphosted.com with ESMTP id 2v8vdwp395-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Fri, 27 Sep 2019 07:45:45 -0700 Received: from SC-EXCH03.marvell.com (10.93.176.83) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Fri, 27 Sep 2019 07:45:44 -0700 Received: from NAM03-BY2-obe.outbound.protection.outlook.com (104.47.42.53) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Fri, 27 Sep 2019 07:45:44 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iKf2IiQZzmCG+4uLpsyray4F/FntQdxK9f8Ar8mz/afwGYKvnU4+sKWC6uzXrTvCFC6KU8Rgmj59O41kCNVbQrvJ0+k3S31wJ8T6nFwt4c1tOEvxq8J+6CnVeyVMbT32QWZbpEbQJ4NWWpbwHiiheI9Oc2EHUWRiH2grsMJ3m4jQJb8PoLjkSC0VJIpbiQ53UTO/O5WnwkeFLZ+mLQgF0/itIRTtmT87PkRLtOvGgPYnZMG+iYQuWHQ0SKKYT9PaZ32xi+o+RbhBl6J7xbkojOexfnewJx/uOJZY9pREBEPDlJCNTyhqBZWJWh8kETR0GMPpwk63N8mYTpU9oH+NRA== 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=8oSgxSpw/tfdvACo9zNK2cYhYV+64rD4jferaFLa8IY=; b=KnIMpimhMENtEt8KC4SQPXEp7vcDLkKFfuL7/IC0OkUb+zFODSeCZhxX+ZHq0NpyeR4rOhQpnx82Xjzsv2vh9ywsuQYcJqGFyknPE4yIdkVO989L6dQqLgkezSMc5HNdjRkgrOV6HAT8d7faX4rUs+7FvQ+StbOUlxEmKgab95USvhB7k9Pib+XAZ8AV+8eoPB62nFkTEiE0nplbwMSpZQqrd0oiWbgovGCMe0Zy0vvOrt0tGoXk2AoS4D6CtpmEh26fBIi96GU24Bqx7T99HeTFzev8b7A6nmcPyNEmQa7jGzC+Wp7lu7nukj2BsoFHk3XYRor56JNloCM+gcG4qw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector2-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8oSgxSpw/tfdvACo9zNK2cYhYV+64rD4jferaFLa8IY=; b=VfPoX/uCfpsYuvlE7uzt6gTp7nPafs3ybFaZWyL4LS1VUut5JnQXqIsbUfxWYj83TblXSqVEa8UR/dISP0BSVAZBC4FAs3qVSJozwT2WFXsRejJTjy09to/G1M9f8ebWNPnad01cpCQgLqU+GYUyuQjNAMV7VL6UHh+xQ9WkPSA= Received: from BYAPR18MB2424.namprd18.prod.outlook.com (20.179.91.149) by BYAPR18MB2728.namprd18.prod.outlook.com (20.179.56.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2305.20; Fri, 27 Sep 2019 14:45:43 +0000 Received: from BYAPR18MB2424.namprd18.prod.outlook.com ([fe80::1d8b:430f:c74a:33]) by BYAPR18MB2424.namprd18.prod.outlook.com ([fe80::1d8b:430f:c74a:33%6]) with mapi id 15.20.2284.023; Fri, 27 Sep 2019 14:45:43 +0000 From: Jerin Jacob Kollanukkaran To: 'Shahaf Shuler' , 'Thomas Monjalon' , "'dev@dpdk.org'" CC: Pavan Nikhilesh Bhagavatula , 'Hemant Agrawal' , 'Opher Reviv' , "'Alex Rosenbaum'" , Dovrat Zifroni , "Prasun Kapoor" , 'Nipun Gupta' , "'Wang, Xiang W'" , "'Richardson, Bruce'" , "'yang.a.hong@intel.com'" , "'harry.chang@intel.com'" , "'gu.jian1@zte.com.cn'" , "'shanjiangh@chinatelecom.cn'" , "'zhangy.yun@chinatelecom.cn'" , "'lixingfu@huachentel.com'" , "'wushuai@inspur.com'" , "'yuyingxia@yxlink.com'" , "'fanchenggang@sunyainfo.com'" , "'davidfgao@tencent.com'" , "'liuzhong1@chinaunicom.cn'" , "'zhaoyong11@huawei.com'" , "'oc@yunify.com'" , "'jim@netgate.com'" , "'hongjun.ni@intel.com'" , "'j.bromhead@titan-ic.com'" , "'deri@ntop.org'" , "'fc@napatech.com'" , "'arthur.su@lionic.com'" Thread-Topic: [dpdk-dev] [RFC PATCH v1] regexdev: introduce regexdev subsystem Thread-Index: AQHVU11rzFGXGDb9TEWOWcBbu1ajBKcFHPIAgB/DLLCAGv0/kA== Date: Fri, 27 Sep 2019 14:45:42 +0000 Message-ID: References: <20190627155036.56940-1-jerinj@marvell.com> <8285913.8xKIzI91KM@xps> <1922242.dABWq9CbNQ@xps> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-Mentions: shahafs@mellanox.com X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [122.182.211.31] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: d7001c1e-f465-420c-0a72-08d743595f87 x-ms-traffictypediagnostic: BYAPR18MB2728: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 0173C6D4D5 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(136003)(346002)(376002)(366004)(396003)(39860400002)(13464003)(189003)(199004)(74316002)(9686003)(2906002)(66946007)(66556008)(476003)(66476007)(446003)(11346002)(64756008)(486006)(76116006)(5660300002)(52536014)(561944003)(33656002)(81166006)(229853002)(4326008)(55016002)(6436002)(71200400001)(66066001)(71190400001)(7416002)(8676002)(81156014)(66446008)(8936002)(14444005)(256004)(53546011)(6506007)(102836004)(76176011)(110136005)(186003)(26005)(54906003)(99286004)(86362001)(316002)(7696005)(6246003)(478600001)(6116002)(7736002)(25786009)(14454004)(3846002)(305945005)(491001); DIR:OUT; SFP:1101; SCL:1; SRVR:BYAPR18MB2728; H:BYAPR18MB2424.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: marvell.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 0UL6NArjmkS8H8JBiVBM7DgcESzPXuFZkN/ow6dluTnGlu7hJeSFHGdeEO4LgazNrp6VNpkDQJqc9qarpy3XmHAG+PnsTYMqDuyzZrAExSGoTkFbU/A2bY4UNYCS9fVyJkw/BkBLacJSWQlTKN7GqUWXeGIkPHMHZ6KKWt6uxFuCGReLqRjSRc544Uo/IB5AqL/dQl1fXvXdiZg2kyGvftIdmLQgP2hGGfZ/HQyo/UmGL4wTvBxeOg67yILqLUyDX4/CIZqkRWrVcPjQq/gUSl89JHmsOcCC1QPwzu6/vQqo+adcR4pEu2wyFkWA92NFoggTrnagnKHAc0JM/O4dwgAqQ0S4brpZRYQri5GzKu7sIQbmL1k7mAo82UpP9BuykUiUTo/BHtWr2FdNSqAk4/RP0540rHkGrAmpaAaaGBw= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: d7001c1e-f465-420c-0a72-08d743595f87 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Sep 2019 14:45:42.7541 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Oy+PhVQo11qyKo3RUiFi0Y5I+znjr1TRtPraQNL+gDHitYZrjwjLY4WTU6Xz1Z1ex0TriZSgZaA6CNim+yn7BQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR18MB2728 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95,1.0.8 definitions=2019-09-27_06:2019-09-25,2019-09-27 signatures=0 Subject: Re: [dpdk-dev] [RFC PATCH v1] regexdev: introduce regexdev subsystem 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" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKZXJpbiBKYWNvYiBLb2xsYW51 a2thcmFuDQo+IFNlbnQ6IFR1ZXNkYXksIFNlcHRlbWJlciAxMCwgMjAxOSA0OjMzIFBNDQo+IFRv OiBTaGFoYWYgU2h1bGVyIDxzaGFoYWZzQG1lbGxhbm94LmNvbT47IFRob21hcyBNb25qYWxvbg0K PiA8dGhvbWFzQG1vbmphbG9uLm5ldD47IGRldkBkcGRrLm9yZw0KPiBDYzogUGF2YW4gTmlraGls ZXNoIEJoYWdhdmF0dWxhIDxwYmhhZ2F2YXR1bGFAbWFydmVsbC5jb20+OyBIZW1hbnQNCj4gQWdy YXdhbCA8aGVtYW50LmFncmF3YWxAbnhwLmNvbT47IE9waGVyIFJldml2IDxvcGhlckBtZWxsYW5v eC5jb20+Ow0KPiBBbGV4IFJvc2VuYmF1bSA8YWxleHJAbWVsbGFub3guY29tPjsgRG92cmF0IFpp ZnJvbmkNCj4gPGRvdnJhdEBtYXJ2ZWxsLmNvbT47IFByYXN1biBLYXBvb3IgPHBrYXBvb3JAbWFy dmVsbC5jb20+OyBOaXB1biBHdXB0YQ0KPiA8bmlwdW4uZ3VwdGFAbnhwLmNvbT47IFdhbmcsIFhp YW5nIFcgPHhpYW5nLncud2FuZ0BpbnRlbC5jb20+Ow0KPiBSaWNoYXJkc29uLCBCcnVjZSA8YnJ1 Y2UucmljaGFyZHNvbkBpbnRlbC5jb20+OyB5YW5nLmEuaG9uZ0BpbnRlbC5jb207DQo+IGhhcnJ5 LmNoYW5nQGludGVsLmNvbTsgZ3UuamlhbjFAenRlLmNvbS5jbjsgc2hhbmppYW5naEBjaGluYXRl bGVjb20uY247DQo+IHpoYW5neS55dW5AY2hpbmF0ZWxlY29tLmNuOyBsaXhpbmdmdUBodWFjaGVu dGVsLmNvbTsNCj4gd3VzaHVhaUBpbnNwdXIuY29tOyB5dXlpbmd4aWFAeXhsaW5rLmNvbTsgZmFu Y2hlbmdnYW5nQHN1bnlhaW5mby5jb207DQo+IGRhdmlkZmdhb0B0ZW5jZW50LmNvbTsgbGl1emhv bmcxQGNoaW5hdW5pY29tLmNuOw0KPiB6aGFveW9uZzExQGh1YXdlaS5jb207IG9jQHl1bmlmeS5j b207IGppbUBuZXRnYXRlLmNvbTsNCj4gaG9uZ2p1bi5uaUBpbnRlbC5jb207IGouYnJvbWhlYWRA dGl0YW4taWMuY29tOyBkZXJpQG50b3Aub3JnOw0KPiBmY0BuYXBhdGVjaC5jb207IGFydGh1ci5z dUBsaW9uaWMuY29tDQo+IFN1YmplY3Q6IFJFOiBbZHBkay1kZXZdIFtSRkMgUEFUQ0ggdjFdIHJl Z2V4ZGV2OiBpbnRyb2R1Y2UgcmVnZXhkZXYNCj4gc3Vic3lzdGVtDQo+IA0KPiA+IEhpIEplcmlu LA0KPiANCj4gSGkgU2hhaGFmLA0KPiANCj4gU29ycnkgZm9yIGRlbGF5IGluIHJlc3BvbnNlKFdh cyBidXN5IHdpdGggMTkuMTEgcHJvcG9zYWwgZGVhZGxpbmUpLiBQbGVhc2Ugc2VlDQo+IGlubGlu ZS4NCj4gDQo+ID4gPg0KPiA+ID4gUmVnRXggcGF0dGVybiBtYXRjaGluZyBhcHBsaWNhdGlvbnM6 DQo+ID4gPiDigKIgTmV4dCBHZW5lcmF0aW9uIEZpcmV3YWxscyAoTkdGVykNCj4gPiA+IOKAoiBE ZWVwIFBhY2tldCBhbmQgRmxvdyBJbnNwZWN0aW9uIChEUEkpIOKAoiBJbnRydXNpb24gUHJldmVu dGlvbg0KPiA+ID4gU3lzdGVtcyAoSVBTKSDigKIgRERvUyBNaXRpZ2F0aW9uIOKAoiBOZXR3b3Jr IE1vbml0b3Jpbmcg4oCiIERhdGEgTG9zcw0KPiA+ID4gUHJldmVudGlvbiAoRExQKSDigKIgU21h cnQgTklDcyDigKIgR3JhbW1hciBiYXNlZCBjb250ZW50IHByb2Nlc3Npbmcg4oCiDQo+ID4gPiBV UkwsIHNwYW0gYW5kIGFkd2FyZSBmaWx0ZXJpbmcg4oCiIEFkdmFuY2VkIGF1ZGl0aW5nIGFuZCBw b2xpY2luZyBvZg0KPiA+ID4gdXNlci9hcHBsaWNhdGlvbiBzZWN1cml0eSBwb2xpY2llcyDigKIg RmluYW5jaWFsIGRhdGEgbWluaW5nIC0gcGFyc2luZw0KPiA+ID4gb2Ygc3RyZWFtZWQgZmluYW5j aWFsIGZlZWRzDQo+ID4NCj4gPiBJIHRoaW5rIHR3byBtb3JlIGltcG9ydGFudCB1c2UgY2FzZSB0 byBhZGQgKGF0IGxlYXN0IG9uIHRoZSBkb2Mgb2YNCj4gPiB0aGlzDQo+ID4gc3Vic3lzdGVtKSBh cmU6DQo+ID4gKiBhcHBsaWNhdGlvbiByZWNvZ25pdGlvbg0KPiA+ICogbWVtb3J5IGludHJvc3Bl Y3Rpb24NCj4gDQo+IFN1cmUuIFdpbGwgYWRkIHRoZSBmb2xsb3dpbmcgZnJvbSBKb2huIGFzIHdl bGwuDQo+IA0KPiAjIE5hdHVyYWwgTGFuZ3VhZ2UgUHJvY2Vzc2luZyAoTkxQKQ0KPiAjIFNlbnRp bWVudCBBbmFseXNpcw0KPiAjIEJpZyBEYXRhIGRhdGFiYXNlIGFjY2VsZXJhdGlvbiAoU3Bhcmss IEhhZG9vcCBldGMuKSAjIENvbXB1dGF0aW9uYWwgU3RvcmFnZQ0KPiANCj4gPg0KPiA+DQo+ID4g PiArLyoqDQo+ID4gPiArICogVXBkYXRlIHRoZSBydWxlIGRhdGFiYXNlIG9mIGEgUmVnRXggZGV2 aWNlLg0KPiA+ID4gKyAqDQo+ID4gPiArICogQHBhcmFtIGRldl9pZCBSZWdFeCBkZXZpY2UgaWRl bnRpZmllcg0KPiA+ID4gKyAqIEBwYXJhbSBydWxlcw0KPiA+ID4gKyAqICAgUG9pbnRzIHRvIGFu IGFycmF5IG9mICpuYl9ydWxlcyogb2JqZWN0cyBvZiB0eXBlICpydGVfcmVnZXhfcnVsZSoNCj4g PiA+IHN0cnVjdHVyZQ0KPiA+ID4gKyAqICAgd2hpY2ggY29udGFpbiB0aGUgcmVnZXggcnVsZXMg YXR0cmlidXRlcyB0byBiZSB1cGRhdGVkIGluIHJ1bGUNCj4gZGF0YWJhc2UuDQo+ID4gPiArICog QHBhcmFtIG5iX3J1bGVzDQo+ID4gPiArICogICBUaGUgbnVtYmVyIG9mIFBDUkUgcnVsZXMgdG8g dXBkYXRlIHRoZSBydWxlIGRhdGFiYXNlLg0KPiA+ID4gKyAqDQo+ID4gPiArICogQHJldHVybg0K PiA+ID4gKyAqICAgVGhlIG51bWJlciBvZiByZWdleCBydWxlcyBhY3R1YWxseSB1cGRhdGVkIG9u IHRoZSByZWdleCBkZXZpY2UncyBydWxlDQo+ID4gPiArICogICBkYXRhYmFzZS4gVGhlIHJldHVy biB2YWx1ZSBjYW4gYmUgbGVzcyB0aGFuIHRoZSB2YWx1ZSBvZiB0aGUgKm5iX3J1bGVzKg0KPiA+ ID4gKyAqICAgcGFyYW1ldGVyIHdoZW4gdGhlIHJlZ2V4IGRldmljZXMgZmFpbHMgdG8gdXBkYXRl IHRoZSBydWxlIGRhdGFiYXNlIG9yDQo+ID4gPiArICogICBpZiBpbnZhbGlkIHBhcmFtZXRlcnMg YXJlIHNwZWNpZmllZCBpbiBhICpydGVfcmVnZXhfcnVsZSouDQo+ID4gPiArICogICBJZiB0aGUg cmV0dXJuIHZhbHVlIGlzIGxlc3MgdGhhbiAqbmJfcnVsZXMqLCB0aGUgcmVtYWluaW5nIFBDUkUg cnVsZXMNCj4gPiA+ICsgKiAgIGF0IHRoZSBlbmQgb2YgKnJ1bGVzKiBhcmUgbm90IGNvbnN1bWVk IGFuZCB0aGUgY2FsbGVyIGhhcyB0byB0YWtlDQo+ID4gPiArICogICBjYXJlIG9mIHRoZW0gYW5k IHJ0ZV9lcnJubyBpcyBzZXQgYWNjb3JkaW5nbHkuDQo+ID4gPiArICogICBQb3NzaWJsZSBlcnJu byB2YWx1ZXMgaW5jbHVkZToNCj4gPiA+ICsgKiAgIC0gLUVJTlZBTDogIEludmFsaWQgZGV2aWNl IElEIG9yIHJ1bGVzIGlzIE5VTEwNCj4gPiA+ICsgKiAgIC0gLUVOT1RTVVA6IFRoZSBsYXN0IHBy b2Nlc3NlZCBydWxlIGlzIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBkZXZpY2UuDQo+ID4gPiArICog ICAtIC1FTk9TUEM6IE5vIHNwYWNlIGF2YWlsYWJsZSBpbiBydWxlIGRhdGFiYXNlLg0KPiA+ID4g KyAqDQo+ID4gPiArICogQHNlZSBydGVfcmVnZXhfcnVsZV9kYl9pbXBvcnQoKSwgcnRlX3JlZ2V4 X3J1bGVfZGJfZXhwb3J0KCkgICovDQo+ID4gPiArdWludDE2X3QgcnRlX3JlZ2V4X3J1bGVfZGJf dXBkYXRlKHVpbnQ4X3QgZGV2X2lkLCBjb25zdCBzdHJ1Y3QNCj4gPiA+ICtydGVfcmVnZXhfcnVs ZQ0KPiA+ID4gKnJ1bGVzLA0KPiA+ID4gKwkJCSB1aW50MTZfdCBuYl9ydWxlcyk7DQo+ID4NCj4g PiBJIHRoaW5rIHRoZSBmdW5jdGlvbiBuYW1lIGlzIG5vdCB0b28gaW5mb3JtYXRpdmUuIElmIHRo aXMgZnVuY3Rpb24NCj4gPiBtZWFudCB0byBjb21waWxlIHRoZSBydWxlIHRoZW4gaXQgc2hvdWxk IGJlIGV4cGxpY2l0IG9uIHRoZSBmdW5jdGlvbiBuYW1lLg0KPiANCj4gSXQgaXMgbWVhbnQgdG8g YmUgY29tcGlsZSB0aGUgcnVsZXMgYW5kIHRoZW4gIHVwZGF0ZSB0aGUgcnVsZSBkYXRhYmFzZS4N Cj4gDQo+IEkgdGhpbmssIHdlIGNhbiBoYXZlIGVpdGhlciAxIG9yIDIuIExldCBtZSBrbm93IHlv dXIgcHJlZmVyZW5jZSBvciBJZiB5b3UgaGF2ZQ0KPiBhbnkgbmFtZSBzdWdnZXN0aW9uLiBJIHdp bGwgY2hhbmdlIGl0IGFjY29yZGluZ2x5Lg0KPiANCj4gMS4gcnRlX3JlZ2V4X3J1bGVfZGJfY29t cGlsZSgpDQo+IDIuIHJ0ZV9yZWdleF9ydWxlX2RiX2NvbXBpbGVfdXBkYXRlKCkNCg0KDQpAU2hh aGFmIFNodWxlciwgVGhvdWdodHM/DQoNCg0KPiANCj4gDQo+ID4gPiArDQo+ID4gPiArICovDQo+ ID4gPiArc3RydWN0IHJ0ZV9yZWdleF9vcHMgew0KPiA+ID4gKw0KPiA+ID4gKwkvKiBXNCAqLw0K PiA+ID4gKwlSVEVfU1REX0MxMQ0KPiA+ID4gKwl1bmlvbiB7DQo+ID4gPiArCQl1aW50NjRfdCB1 c2VyX2lkOw0KPiA+ID4gKwkJLyoqPCBBcHBsaWNhdGlvbiBzcGVjaWZpYyBvcGFxdWUgdmFsdWUu IEFuIGFwcGxpY2F0aW9uIG1heQ0KPiA+ID4gdXNlDQo+ID4gPiArCQkgKiB0aGlzIGZpZWxkIHRv IGhvbGQgYXBwbGljYXRpb24gc3BlY2lmaWMgdmFsdWUgdG8gc2hhcmUNCj4gPiA+ICsJCSAqIGJl dHdlZW4gZGVxdWV1ZSBhbmQgZW5xdWV1ZSBvcGVyYXRpb24uDQo+ID4gPiArCQkgKiBJbXBsZW1l bnRhdGlvbiBzaG91bGQgbm90IG1vZGlmeSB0aGlzIGZpZWxkLg0KPiA+ID4gKwkJICovDQo+ID4g PiArCQl2b2lkICp1c2VyX3B0cjsNCj4gPiA+ICsJCS8qKjwgUG9pbnRlciByZXByZXNlbnRhdGlv biBvZiAqdXNlcl9pZCogKi8NCj4gPiA+ICsJfTsNCj4gPg0KPiA+IFNpbmNlIHdlIHRhcmdldCB0 aGUgcmVnZXggc3Vic3lzdGVtIGZvciBib3RoIHJlZ2V4IGFuZCBEUEkgSSB0aGluayBpdA0KPiA+ IHdpbGwgYmUgZ29vZCB0byBhZGQgYW5vdGhlciB1aW50NjRfdCBmaWVsZCBjYWxsZWQgY29ubmVj dGlvbl9pZC4NCj4gPiBEZXZpY2UgdGhhdCBzdXBwb3J0IERQSSBjYW4gcmVmZXIgdG8gaXQgYXMg YW5vdGhlciBtYXRjaCBhYmxlIGZpZWxkDQo+ID4gd2hlbiBsb29raW5nIHVwIGZvciBtYXRjaGVz IG9uIHRoZSBnaXZlbiBidWZmZXIuDQo+ID4NCj4gPiBUaGlzIGZpZWxkIGlzIGRpZmZlcmVudCBm cm9tIHRoZSB1c2VyX2lkLCBhcyBpdCBpcyBub3Qgb3BhcXVlIGZvciB0aGUgZGV2aWNlLg0KPiAN Cj4gSXMgdGhpcyBkcml2ZXIgc3BlY2lmaWMgc3RvcmFnZSBwbGFjZSB3aGVyZSBhcHBsaWNhdGlv biBzaG91bGQgbm90IHRvdWNoIGl0Pw0KPiANCj4gSWYgbm90LCBDb3VsZCB5b3Ugc2hhcmUgdGhl IGRhdGEgZmxvdyBvZiB0aGlzIGZpZWxkPyBJZS4gV2hvICJ3cml0ZSIgdGhpcyBGaWVsZCBhbmQN Cj4gd2hvICJyZWFkIiB0aGlzIGZpZWxkLg0KDQpAU2hhaGFmIFNodWxlciBUaG91Z2h0cz8NCg0K QmFzZWQgb24geW91ciBpbnB1dCwgSSB3aWxsIHVwZGF0ZSB0aGUgbmV4dCB2ZXJzaW9uLg0KDQo+ IA0KPiBUaGlzIGlzIGp1c3QgZm9yIGRvY3VtZW50YXRpb24sIEluIGFueSBldmVudCB3ZSBjYW4g YWRkIG5ldyBmaWVsZHMuDQo+IA0KPiBJZiBpdCBpcyBvbmx5IGZvciBkcml2ZXIgdXNhZ2UgdGhl biBJIHRoaW5rLCBzb21lIGRyaXZlciBtYXkgbmVlZCBtb3JlIDhCDQo+IFN0b3JhZ2UuIEluIHRo YXQgY2FzZSBJIHRoaW5rLCBlYWNoIGRyaXZlciBjYW4gYWRkIGl0cyBvbiBmaWVsZCBBZnRlciBX NChpLmUNCj4gZXhpc3RpbmcgdXNlcl9pZCkgYW5kIGludHJvZHVjZSBuZXcgZmllbGQgY2FsbGVk IG1hdGNoX29mZnNldCBpbiBzdHJ1Y3QNCj4gcnRlX3JlZ2V4X29wcw0KPiANCj4gaWUuIHN0cnVj dCBydGVfcmVnZXhfbWF0Y2ggKm1hdGNoZXMgPT0gb3BzICsgb3BzLT4gbWF0Y2hfb2Zmc2V0OyBz byB0aGF0LCBFYWNoDQo+IGRyaXZlciBjYW4gYWRkIGVub3VnaCBkcml2ZXIgc3BlY2lmaWMgbWV0 YWRhdGEuDQo+IA0KPiANCj4gDQoNCg==