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 9882AA2EEB for ; Tue, 10 Sep 2019 10:06:00 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 652E91EB3B; Tue, 10 Sep 2019 10:06:00 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 7A4881EB38 for ; Tue, 10 Sep 2019 10:05:59 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id x8A85CnW019323; Tue, 10 Sep 2019 01:05:47 -0700 Received: from pps.reinject (localhost [127.0.0.1]) by mx0b-0016f401.pphosted.com with ESMTP id 2uvc2jjn4j-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 10 Sep 2019 01:05:47 -0700 Received: from m0045851.ppops.net (m0045851.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.36/8.16.0.36) with SMTP id x8A85k3u019917; Tue, 10 Sep 2019 01:05:46 -0700 Received: from sc-exch01.marvell.com ([199.233.58.181]) by mx0b-0016f401.pphosted.com with ESMTP id 2uvc2jjn4e-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 10 Sep 2019 01:05:46 -0700 Received: from SC-EXCH02.marvell.com (10.93.176.82) by SC-EXCH01.marvell.com (10.93.176.81) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Tue, 10 Sep 2019 01:05:44 -0700 Received: from NAM01-BN3-obe.outbound.protection.outlook.com (104.47.33.57) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Tue, 10 Sep 2019 01:05:44 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MVbdWZoG1Izo8qY/kids79YZT6GYbZv6vYvQE44HUjoU3vFinNkPiSRSvc0Uw1JEu3CxFQ3IIXmizWmm9hPxFtAQLNq2zIOqXz0UCqnDpxjb4om5C5minHBB/MFE5d37u0jXy/5gj+FeCLnF2dIB8xvtWatYbe5HvkQMlMMM/XgQw26acHen3/klQYkqH0qFI6EaxH2SV2KLBavYSBGU7n2VVOAs8PV00D6+hi5qDnyI+evKD0wngxI3waPpmwQCHWpr5QTV0v12mbuRgTzYqI1khcC4EOEu+zg7D2wKT47PTx1DZL1qOcRPTT1183RSwGbh8VFTWqkjy56fZ5v6Ow== 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=TNvqhkLFNEEs0J5K7AUPOgs1FnoUCGdvuaZltmty9XY=; b=irtEluRKnGnWL4uPHGAIPMXduIEEn85ycs8N7ahmhiLxiEHOZ7Pa8Fk3W1JeNEZ/qS2U03cxDtqwiSmx9VSv4l6TOWPbyv+elL7j4NkiyUZSj7Ezv/bUPYDyn7mzsuLn+RN6gV6Z6m3Zke2pzpGPw8Rgv6IZdfJysbiXAfV5/sXfwEbhLgymcIzbY+wmVjzDQaivt/mboC5mUZ8VRvahJcgb2GBW/va4FlpqyHlotperlHCkxLvDvurW6jzQp0AgAL+AAuaHyaTdacjIzJ/ZwFf0yNmv/vVqCcjz4gMRqF5WlP0l/uDGy7wEZXeyX+P0TCvDZavYftAqj8XiW0NtCQ== 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=TNvqhkLFNEEs0J5K7AUPOgs1FnoUCGdvuaZltmty9XY=; b=ql+bMIJilQaxonaAU96Rqlg+P0luPg5sBFOtmuGiHUo2HxIra9yXNmeqvZK6gI4ByeEuPtg7m0gudjF5lu/awrDsNU448GNjcBA+Vjf/SmlhGsGHjDzGAcy+DK4SoRMUXaaMhn0eTzR+UDJePYNJMrqiYwq2Lsoz4h2mh2I5EcY= Received: from BYAPR18MB2424.namprd18.prod.outlook.com (20.179.91.149) by BYAPR18MB2952.namprd18.prod.outlook.com (20.179.59.156) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2241.18; Tue, 10 Sep 2019 08:05:40 +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.2241.018; Tue, 10 Sep 2019 08:05:39 +0000 From: Jerin Jacob Kollanukkaran To: "Wang, Xiang W" , Thomas Monjalon , "dev@dpdk.org" CC: Pavan Nikhilesh Bhagavatula , Shahaf Shuler , Hemant Agrawal , Opher Reviv , Alex Rosenbaum , Dovrat Zifroni , Prasun Kapoor , Nipun Gupta , "Richardson, Bruce" , "Hong, Yang A" , "Chang, Harry" , "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" , "Ni, Hongjun" , "j.bromhead@titan-ic.com" , "deri@ntop.org" , "fc@napatech.com" , "arthur.su@lionic.com" , Guy Kaneti , Smadar Fuks , Liron Himi Thread-Topic: [dpdk-dev] [RFC PATCH v1] regexdev: introduce regexdev subsystem Thread-Index: AQHVU11rzFGXGDb9TEWOWcBbu1ajBKcBxiXAgAGHqgCAIUB2UA== Date: Tue, 10 Sep 2019 08:05:39 +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-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [14.140.231.66] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: dee70b52-0a57-4a3d-cac0-08d735c5ab98 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600166)(711020)(4605104)(1401327)(2017052603328)(7193020); SRVR:BYAPR18MB2952; x-ms-traffictypediagnostic: BYAPR18MB2952: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6430; x-forefront-prvs: 01565FED4C x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(39860400002)(376002)(136003)(346002)(396003)(366004)(52084003)(199004)(189003)(53754006)(476003)(5660300002)(2906002)(66066001)(33656002)(3846002)(561944003)(6116002)(305945005)(11346002)(446003)(52536014)(486006)(71200400001)(86362001)(76116006)(74316002)(229853002)(71190400001)(6436002)(256004)(14444005)(7416002)(25786009)(4326008)(53936002)(107886003)(6246003)(478600001)(14454004)(2501003)(9686003)(316002)(102836004)(8936002)(55236004)(81166006)(8676002)(7736002)(186003)(6506007)(81156014)(54906003)(110136005)(99286004)(66476007)(66556008)(64756008)(66446008)(66946007)(26005)(7696005)(76176011)(55016002); DIR:OUT; SFP:1101; SCL:1; SRVR:BYAPR18MB2952; H:BYAPR18MB2424.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: marvell.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: l04Ca0jWUJgJoq1RCSXY89V3MKHMBrhm1p90dU0Mpp5uMOpY2NSNZfp0p3v9kA+zClaNdHf/5r3Db3AENRPU+NHxq5ldMjcn3GVVArzMZZ05PTbOtjk09QyhOk8Db32SAK+/6LkwsO5YoK13vvj3+wokjrXO8AiLLoZhTMbHI6vorHgOGPzRcCFO3pZWKFTSjOt++7iotlZQzpA5LS6aA3cAvQdwmVk79FHAaCuCZcYFZ+hudQZwN5rpU7OuhtRdJ1588Kogc1oyhkDGBnRRXjCyR2elFLaTtI3Gc+d5MYTs0PaR3s1WPPgZNqovUH1tLbNUx6exBv43VVv5ElkGcBtrt4kKDsx1oqS946coG0M/KPQObguuZjrO/s03tJ1Sp4rYGe6U0mYOqC+jPCzg+05KGd7m+mHsx+2K2CY5Qv4= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: dee70b52-0a57-4a3d-cac0-08d735c5ab98 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Sep 2019 08:05:39.7542 (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: VXmvU+jjKK5xXz2ApB6nfePIfAmiu9eY+yXKFFHxLCzC6JCDbQLaBrZTeEqSQJPrt38SYK2ucVIJ02nk4SixOw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR18MB2952 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.70,1.0.8 definitions=2019-09-10_06:2019-09-09,2019-09-10 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" SGkgWGlhbmcsDQoNClNvcnJ5IGZvciBkZWxheSBpbiByZXNwb25zZShXYXMgYnVzeSB3aXRoIDE5 LjExIHByb3Bvc2FsIGRlYWRsaW5lKS4gUGxlYXNlIHNlZSBpbmxpbmUuDQogDQo+IA0KPiBSZXBs eSB0byBYaWFuZydzIHF1ZXJpZXMgaW4gbWFpbiB0aHJlYWQ6DQo+IA0KPiBIaSBhbGwsDQo+IA0K PiBTb21lIHF1ZXN0aW9ucyByZWdhcmRpbmcgQVBJcy4gQ291bGQgeW91IHBsZWFzZSBnaXZlIG1v cmUgaW5zaWdodHM/DQo+IA0KPiAxKSBydGVfcmVnZXhfb3BzDQo+ICAgICAgIGEpIHJzcF9mbGFn cw0KPiAgICAgICBUaGVzZSB0d28gZmxhZ3MgUlRFX1JFR0VYX09QU19SU1BfUE1JX1NPSl9GIGFu ZA0KPiBSVEVfUkVHRVhfT1BTX1JTUF9QTUlfRU9KX0YgYXJlIHVzZWQgZm9yIGNyb3NzIGJ1ZmZl ciBzY2FuLg0KPiAgICAgICBSVEVfUkVHRVhfT1BTX1JTUF9QTUlfRU9KX0YgdGVsbHMgd2hldGhl ciB3ZSBoYXZlIGEgcGFydGlhbCBtYXRjaA0KPiBhdCB0aGUgZW5kIG9mIGN1cnJlbnQgYnVmZmVy IGFmdGVyIHNjYW4uDQo+ICAgICAgIFdoYXQncyB0aGUgcHVycG9zZSBvZiBoYXZpbmcgUlRFX1JF R0VYX09QU19SU1BfUE1JX1NPSl9GPw0KPiANCj4gW0plcmluXSBTaW5jZSB3ZSBuZWVkIHRocmVl IHN0YXRlcyB0byByZXByZXNlbnQgcGFydGlhbCBtYXRjaCBidWZmZXIsDQo+IFJURV9SRUdFWF9P UFNfUlNQX1BNSV9TT0pfRiB0bw0KPiByZXByZXNlbnQgc3RhcnQgb2YgdGhlIGJ1ZmZlciwgaW50 ZXJtZWRpYXRlIGJ1ZmZlcnMgd2l0aCBubyBmbGFnLCBhbmQgZW5kIG9mDQo+IHRoZSBidWZmZXIg d2l0aCBSVEVfUkVHRVhfT1BTX1JTUF9QTUlfRU9KDQoNCj4gW1hpYW5nXSBIb3cgY291bGQgYSB1 c2VyIGxldmVyYWdlIHRoZXNlIGZsYWdzIGZvciBtYXRjaGluZz8gU3VwcG9zZSBhIGxhcmdlDQo+ IGJ1ZmZlciBpcyBkaXZpZGVkIGludG8gbXVsdGlwbGUgY2h1bmtzLiBXaWxsIFJURV9SRUdFWF9P UFNfUlNQX1BNSV9TT0pfRg0KPiBjYXVzZSBhbiBlYXJseSBxdWl0IG9uY2UgaXQgaXNuJ3Qgc2V0 IGFmdGVyIHNjYW4gdGhlIGZpcnN0IGNodW5rLiBTaW1pbGFybHksDQo+IFJURV9SRUdFWF9PUFNf UlNQX1BNSV9FT0ogdGVsbHMgYSB1c2VyIHdoZXRoZXIgdG8gc3RvcCBtYXRjaGluZyBmdXR1cmUN Cj4gYnVmZmVycyBhZnRlciBmaW5pc2ggdGhlIGxhc3QgY2h1bms/DQoNCkxldCBtZSBkZXNjcmli ZSB3aXRoIGFuIGV4YW1wbGUsDQoNCkFzc3VtZSwNCjEpIHN0cnVjdCBydGVfcmVnZXhfZGV2X2lu Zm86OiBtYXhfcGF5bG9hZF9zaXplIHNldCB0byAxMDI0DQoyKSBydGVfcmVnZXhfZGV2X2NvbmZp Zzo6IGRldl9jZmdfZmxhZ3MgY29uZmlndXJlZCB3aXRoIFJURV9SRUdFWF9ERVZfQ0ZHX0NST1NT X0JVRkZFUl9TQ0FOX0YNCjMpIERldmljZSBwcm9ncmFtbWVkIHdpdGggbWF0Y2hpbmcgImhlbGxv XHMrd29ybGQiIHBhdHRlcm4NCjQpIHVzZXIgZW5xdWV1ZSBzdHJ1Y3QgcnRlX3JlZ2V4X29wczo6 IGJ1Zl9hZGRyIHBvaW50IGZvbGxvd2luZyAiZGF0YSIgYW5kIHN0cnVjdCBydGVfcmVnZXhfb3A6 OiBzY2FuX3NpemUgPSAxMDI0DQoNCmRhdGFbMC4uMTAyMV0gPSBkYXRhIGRvbuKAmXQgaGF2ZSBo ZWxsbyB3b3JsZCBwYXR0ZXJuDQpkYXRhWzEwMjJdID0gJ2gnDQpkYXRhWzEwMjNdID0gJ2UnDQoN CjUpIHVzZXIgZW5xdWV1ZSBzdHJ1Y3QgcnRlX3JlZ2V4X29wczo6IGJ1Zl9hZGRyIHBvaW50IGZv bGxvd2luZyAiZGF0YSIgYW5kIHN0cnVjdCBydGVfcmVnZXhfb3A6OiBzY2FuX3NpemUgPSA5DQoN CmRhdGFbMF0gPSAnbCcNCmRhdGFbMV0gPSAnbCcNCmRhdGFbMl0gPSAnbycNCmRhdGFbM10gPSAn ICcNCmRhdGFbNF0gPSAndycNCmRhdGFbNV0gPSAnbycNCmRhdGFbNl0gPSAncicNCmRhdGFbN10g PSAnbCcNCmRhdGFbOF0gPSAnZCcNCg0KSWYgc28sDQoNClJlc3BvbnNlIHRvIDQpIHdpbGwgYmUg UlRFX1JFR0VYX09QU19SU1BfUE1JX1NPSl9GIGluIHJ0ZV9yZWdleF9vcHM6OiByc3BfZmxhZ3Mg b24gZGVxdWV1ZQ0KV2hlcmUgcnRlX3JlZ2V4X21hdGNoOjogb2Zmc2V0IGlzIDEwMjIgYW5kIGxl biAyDQoNClJlc3BvbnNlIHRvIDUpIHdpbGwgYmUgUlRFX1JFR0VYX09QU19SU1BfUE1JX0VPSl9G IGluIHJ0ZV9yZWdleF9vcHM6OiByc3BfZmxhZ3Mgb24gZGVxdWV1ZQ0KV2hlcmUgcnRlX3JlZ2V4 X21hdGNoOjogb2Zmc2V0IGlzIDAgYW5kIGxlbiA5DQoNCg0KPiANCj4gICAgICAgUlRFX1JFR0VY X09QU19SU1BfTUFYX1BSRUZJWF9GOiBUaGlzIGxvb2tzIGxpa2UgYSBkZWZpbml0aW9uIGZvciBh DQo+IHNwZWNpZmljIGhhcmR3YXJlIGltcGxlbWVudGF0aW9uLiBJIGFtIHdvbmRlcmluZyB3aGF0 IHRoaXMgUFJFRklYIHJlZmVycw0KPiB0bzopPw0KPiANCj4gW0plcmluXSBZZXMuIExvb2tzIGxp a2UgaXQgaXMgZm9yIGhhcmR3YXJlIHNwZWNpZmljIGltcGxlbWVudGF0aW9uLiBJbnRyb2R1Y2Vk DQo+IHJ0ZV9yZWdleF9kZXZfYXR0cl9zZXQvZ2V0IGZ1bmN0aW9ucyB0byBtYWtlIGl0IHBvcnRh YmxlIGFuZA0KPiBUbyBhZGQgbmV3IGltcGxlbWVudGF0aW9uIHNwZWNpZmljIGZpZWxkcy4NCj4g Rm9yIGV4YW1wbGUsIGlmIGEgcnVsZSBpcw0KPiAvQUJDREVGLipYWVovLCBBQkNEIGlzIGNvbnNp ZGVyZWQgdGhlIHByZWZpeCwgYW5kIEVGLipYWVogaXMgY29uc2lkZXJlZCB0aGUNCj4gZmFjdG9y LiBUaGUgcHJlZml4IGlzIGEgbGl0ZXJhbA0KPiBzdHJpbmcsIHdoaWxlIHRoZSBmYWN0b3IgY2Fu IGNvbnRhaW4gY29tcGxleCByZWd1bGFyIGV4cHJlc3Npb24gY29uc3RydWN0cy4gQXMNCj4gYSBy ZXN1bHQsIHJ1bGUgbWF0Y2hpbmcgb2NjdXJzIGluDQo+IHR3byBzdGFnZXM6IHByZWZpeCBtYXRj aGluZyBhbmQgZmFjdG9yIG1hdGNoaW5nLg0KPiANCj4gICAgICAgYikgIHVzZXJfaWQgb3IgdXNl cl9wdHINCj4gICAgICAgVW5kZXIgd2hhdCBraW5kIG9mIGNpcmN1bXN0YW5jZXMgc2hvdWxkIGFu IGFwcGxpY2F0aW9uIHBhc3MgdmFsdWUgaW50bw0KPiB0aGVzZSB2YXJpYWJsZXMgZm9yIGVucXVl dWUgYW5kIGRlcXVldWVyIG9wZXJhdGlvbnM/DQo+IA0KPiBbSmVyaW5dIEp1c3QgbGlrZSBydGVf Y3J5cHRvX29wcywgc3RydWN0IHJ0ZV9yZWdleF9vcHMgYWxzbyBhbGxvY2F0ZWQgdXNpbmcNCj4g bWVtcG9vbCBub3JtYWxseSwgb24gZW5xdWV1ZSwgdXNlciBjYW4gc3BlY2lmeSB1c2VyX2lkDQo+ IElmIG5lZWRlZCB0byBpbiBvcmRlciBpZGVudGlmeSB0aGUgb3Agb24gZGVxdWV1ZSBpZiByZXF1 aXJlZC4gVGhlIHVzZSBjYXNlDQo+IGNvdWxkIGJlIHRvIHN0b3JlIHRoZSBzZXF1ZW5jZSBudW1i ZXIgZnJvbSBhcHBsaWNhdGlvbg0KPiBQT1Ygb3Igc3RvcmluZyB0aGUgbWJ1ZiBwdHIgaW4gd2hp Y2ggcGF0dGVybiBpcyByZXF1ZXN0ZWQgZXRjLg0KPiANCj4gDQo+ICAyKSBydGVfcmVnZXhfbWF0 Y2gNCj4gICAgICAgYSkgb2Zmc2V0OyAvKio8IFN0YXJ0aW5nIEJ5dGUgUG9zaXRpb24gZm9yIG1h dGNoZWQgcnVsZS4gKi8gYW5kICB1aW50MTZfdA0KPiBsZW47IC8qKjwgTGVuZ3RoIG9mIG1hdGNo IGluIGJ5dGVzICovDQo+ICAgICAgIExvb2tzIGxpa2UgdGhlIG1hdGNoaW5nIG9mZnNldCBpcyBk ZWZpbmVkIGFzICpzdGFydGluZyBtYXRjaGluZyBvZmZzZXQqDQo+IGluc3RlYWQgb2YgKmVuZCBt YXRjaGluZyBvZmZzZXQqLCBlLmcuIHJlcG9ydCB0aGUgb2Zmc2V0IG9mICJhIiBpbnN0ZWFkIG9m ICJjIg0KPiBmb3IgcGF0dGVybiAiYWJjIi4NCj4gICAgICAgSWYgc28sIHRoaXMgbWFrZXMgaXQg aGFyZCB0byBpbnRlZ3JhdGUgc29mdHdhcmUgcmVnZXggbGlicmFyaWVzIHN1Y2ggYXMNCj4gSHlw ZXJzY2FuIGFuZCBSRTIgYXMgdGhleSBvbmx5IHJlcG9ydCAqZW5kIG1hdGNoaW5nIG9mZnNldCog d2l0aG91dCBsZW5ndGgNCj4gb2YgbWF0Y2guDQo+ICAgICAgIEFsdGhvdWdoIEh5cGVyc2NhbiBo YXMgQVBJIGZvciAqc3RhcnRpbmcgbWF0Y2hpbmcgb2Zmc2V0KiwgaXQgb25seSBkZWxpdmVycw0K PiBwYXJ0aWFsIHN5bnRheCBzdXBwb3J0LiBTbyBJIHRoaW5rIHdlIGhhdmUgdG8gZGVmaW5lICpl bmQgb2YgbWF0Y2hpbmcgb2Zmc2V0Kg0KPiBmb3Igc29mdHdhcmUgc29sdXRpb25zLg0KPiANCj4g W0plcmluXSBJIHVuZGVyc3RhbmQgdGhlIGh5cGVyc2NhbidzIEhTX0ZMQUdfU09NX0xFRlRNT1NU IHRyYWRlb2Zmcy4gSQ0KPiB0aG91Z2h0IGFwcGxpY2F0aW9uIHdvdWxkIG5lZWQgYWx3YXlzIHRo ZSBsZW5ndGggb2YgdGhlIG1hdGNoLg0KPiBQcm9iYWJseSB3ZSB3aWxsIHNlZSBob3cgb3RoZXIg SFcgaW1wbGVtZW50YXRpb24gKGZyb20gTWVsbGFub3gpIGV0Yy4gV2UNCj4gd2lsbCB0cnkgdG8g YWJzdHJhY3QgaXQsIHByb2JhYmx5IHdlIGNhbiBtYWtlIGl0IGFzIGZ1bmN0aW9uIG9mICJ1c2Vy DQo+IHJlcXVlc3RlZCIuDQo+IFtYaWFuZ10gWWVzLCBpdCB3aWxsIGJlIGdvb2QgdG8gbWFrZSBp dCBwZXIgdXNlciByZXF1ZXN0LiBBdCBsZWFzdCBmcm9tDQo+IEh5cGVyc2NhbiB1c2VyJ3MgcG9p bnQgb2Ygdmlldywgc3RhcnQgb2YgbWF0Y2ggYW5kIG1hdGNoIGxlbmd0aCBhcmUgbm90DQo+IG1h bmRhdG9yeS4NCg0KT0suIEkgdGhpbmssIHdlIGNhbiBpbnRyb2R1Y2UgUlRFX1JFR0VYX0RFVl9D RkdfTUFUQ0hfQVNfU1RBUlQNCkluIGRldmljZSBjb25maWd1cmUuDQoNClNpbmNlIG9mZnNldCts ZW4gPT0gZW5kLCB3ZSBjYW4gaW50cm9kdWNlIGZvbGxvd2luZyBnZW5lcmljIGlubGluZSBmdW5j dGlvbi4NCg0Kc3RhdGljIGlubGluZSANCnJ0ZV9yZWdleF9tYXRjaF9lbmQodHJ1Y3QgcnRlX3Jl Z2V4X21hdGNoICptYXRjaCkNCnsNCgltYXRjaC0+b2Zmc2V0ICsgbWF0Y2gtPmxlbjsNCn0NCg0K RXhhbXBsZTogIHBhdHRlcm4gdG8gbWF0Y2ggaXMgICJoZWxsb1xzK3dvcmxkIiAgYW5kIGRhdGEg aXMgZm9sbG93aW5nDQpkYXRhWzRdID0gJ2gnDQpkYXRhWzVdID0gJ2UnDQpkYXRhWzZdID0gJ2wn DQpkYXRhWzddID0gJ2wnDQpkYXRhWzhdID0gJ28nDQpkYXRhWzldID0gJyAnDQpkYXRhWzEwXSA9 ICd3Jw0KZGF0YVsxMV0gPSAnbycNCmRhdGFbMTJdID0gJ3InDQpkYXRhWzEzXSA9ICdsJw0KZGF0 YVsxNF0gPSAnZCcNCg0KaWYgZGV2aWNlIGlzIGNvbmZpZ3VyZWQgd2l0aCBSVEVfUkVHRVhfREVW X0NGR19NQVRDSF9BU19TVEFSVA0KbWF0Y2gtPm9mZnNldCByZXR1cm5zIDQNCm1hdGNoLT5sZW4g cmV0dXJucyAxMQ0KDQppZiBkZXZpY2UgaXMgTk9UIGNvbmZpZ3VyZWQgd2l0aCBSVEVfUkVHRVhf REVWX0NGR19NQVRDSF9BU19TVEFSVA0KZHJpdmVyIE1BWSByZXR1cm4gdGhlIGZvbGxvd2luZyhp biBoeXBlcnNjYW4gY2FzZSkNCm1hdGNoLT5vZmZzZXQgcmV0dXJucyAwDQptYXRjaC0+bGVuIHJl dHVybnMgMTEgKyA0DQoNCkluIGJvdGggY2FzZShpcnJlc3BlY3RpdmUgb2YgZmxhZ3MsIHRvIG1h a2UgYXBwbGljYXRpb24gbGlmZSBlYXN5KSBydGVfcmVnZXhfbWF0Y2hfZW5kKCkgd291bGQgcmV0 dXJuIDE1Lg0KSWYgYXBwbGljYXRpb24gZGVtYW5kcyBmb3IgTUFUQ0hfQVNfU1RBUlQgdGhlbiBk cml2ZXIgY2FuIHJldHVybiBtYXRjaC0+b2Zmc2V0IHJldHVybnMgNCBhbmQgbWF0Y2gtPmxlbiBy ZXR1cm5zIDExDQpBa2Egc2V0IEhTX0ZMQUdfU09NX0xFRlRNT1NUIGluIGh5cGVyc2NhbiBkcml2 ZXIsIEJ1dCBhcHBsaWNhdGlvbiBzaG91bGQgdXNlIHJ0ZV9yZWdleF9tYXRjaF9lbmQoKQ0KZm9y IGZpbmRpbmcgdGhlIGVuZCBvZiB0aGUgbWF0Y2guIFRvIG1ha2UsIHdvcmsgaW4gYWxsIGNhc2Vz Lg0KDQpJcyBpdCBPSz8gDQoNCj4gDQo+IDMpICBydGVfcmVnZXhfcnVsZV9kYl91cGRhdGUoKQ0K PiAgICAgRG9lcyB0aGlzIG1lYW4gd2UgY2FuIGR5bmFtaWNhbGx5IGFkZCBvciBkZWxldGUgcnVs ZXMgZm9yIGFuIGFscmVhZHkNCj4gZ2VuZXJhdGVkIGRhdGFiYXNlIHdpdGhvdXQgcmVjb21waWxl IGZyb20gc2NyYXRjaCBmb3IgaGFyZHdhcmUgUmVnZXgNCj4gaW1wbGVtZW50YXRpb24/DQo+ICAg ICBJZiBzbywgdGhpcyBpc24ndCBwb3NzaWJsZSBmb3Igc29mdHdhcmUgc29sdXRpb25zIGFzIHRo ZXkgZG9uJ3Qgc3VwcG9ydA0KPiBkeW5hbWljIGRhdGFiYXNlIHVwZGF0ZSBhbmQgcmVxdWlyZSBy ZWNvbXBpbGUuDQo+IA0KPiBbSmVyaW5dIHJ0ZV9yZWdleF9ydWxlX2RiX3VwZGF0ZSgpIGludGVy bmFsbHkgaXQgd291bGQgY2FsbCByZWNvbXBpbGUNCj4gZnVuY3Rpb24gZm9yIGJvdGggSFcgYW5k IFNXLg0KPiBTZWUgcnRlX3JlZ2V4X2Rldl9jb25maWc6OnJ1bGVfZGIgaW4gcnRlX3JlZ2V4X2Rl dl9jb25maWd1cmUoKSBmb3INCj4gcHJlY29tcGlsZWQgcnVsZSBkYXRhYmFzZSBjYXNlLg0KPiBb WGlhbmddIE9LLCBzb3VuZHMgbGlrZSB3ZSBoYXZlIHRvIHNhdmUgdGhlIG9yaWdpbmFsIHJ1bGUt c2V0IGZvciB0aGUgZGV2aWNlIGluDQo+IG9yZGVyIHRvIGRvIHJlY29tcGlsZS4gSSBzZWUgYm90 aCBBREQgYW5kIFJFTU9WRSBvcGVyYXRvcnMgZnJvbQ0KPiBydGVfcmVnZXhfcnVsZS4NCj4gRm9y IHJ1bGVzIHdpdGggUkVNT1ZFIG9wZXJhdG9yLCB3aGF0J3MgdGhlIGV4cGVjdGVkIGJlaGF2aW9y IHRvIGhhbmRsZQ0KPiB0aGVtIGZvciB0aGUgb2xkIHJ1bGUtc2V0PyBEbyB3ZSBuZWVkIHRvIGdv IHRocm91Z2ggdGhlIG9sZCBydWxlLXNldCBhbmQNCj4gcmVtb3ZlIGNvcnJlc3BvbmRpbmcgcnVs ZXMgYmVmb3JlIGRvaW5nIHJlY29tcGlsZT8NCg0KWWVzLg0KDQo=