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 C378145A7C; Fri, 4 Oct 2024 19:46:44 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C7E1C42EF8; Fri, 4 Oct 2024 19:45:40 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id 6641F42F2F for ; Fri, 4 Oct 2024 19:45:38 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 494E9Eg5021852; Fri, 4 Oct 2024 10:45:26 -0700 Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2173.outbound.protection.outlook.com [104.47.59.173]) by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 42204tjf20-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 04 Oct 2024 10:45:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Op2Dq22k8tfurrauV1QKN6VWpiYCJcNXiZamvFNTXlW2jpb6q6Optr2EZhibgxSnGZngGMc19TtynApgzmMVMOyuFCmFBDyfZ7IixUUFUg/SPJSRWFgAAY4gwm+UmEeVZkD8M6hJh06dCjWMOof9zgIMGs5mStgjGIgcpf1HMP/7p/Xtvw1oiOQD1J9qfkPURwbmD7V4SzAmNJMlLu1q97N23w49VwjgZuXkbyHTKj0191Ju7h1frAZZjQPFXGbkH0ZX8UG3RO8eEqKCqTUlNCI59JLD/SI/nec0dqUL6rMgAvOeELgRcwzTD4eqzQ4eT6VKt1S9pwYSMm1A0rXjkg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=1AEUPmNogeob7XEgHD/lf+Fl0zT+Z42fS++hWCkEYxA=; b=aRqMlLkmF/E25eAVm7DXgfxwjiN5upm6Te5LYqA76iP2mdUF3XRsIyUD6WHt7W4Bf5jFDxUhYCP3x3AD/A/n6FgZ5ApTqpX8STG8AasIl29gWtDfa4pr139SQnB0kCavMOMwOTKFbctHqajbZpFxpsJcGH04pOKHovAFooT3SX3S58ZuzFjsio5vvHBQ1ksfi8Y89LU/txJgvjlQj5flLAvt/mbS9suY67ZvCkpZS50JcvqnjKY5vgy2T/GARfb1fdauSdfvWexfIASTNwYXiTzjuk9yvN8IlZaW63KW4bnHoFkROYEv1SSSkryUcdG/8fMyD5e1rnYy3ddBDIUg6A== 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.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1AEUPmNogeob7XEgHD/lf+Fl0zT+Z42fS++hWCkEYxA=; b=g+Q0KfdOccvIPt0RHl8qQsXiWYAcdIwh21UMVJyTYlskw9XAOsVEYCwa9cORFkE25DYqFCWvtlWJ084SDyfjZk5cphns5z07pr76552Jtr3jC1InVsedt2YrrSL2vhcFG3sY794bi6u8/M3P6sbmbn3lCV+Vf2RZkhkSWF/IK9I= Received: from CO6PR18MB4484.namprd18.prod.outlook.com (2603:10b6:5:359::9) by CO1PR18MB4681.namprd18.prod.outlook.com (2603:10b6:303:e4::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8026.16; Fri, 4 Oct 2024 17:45:23 +0000 Received: from CO6PR18MB4484.namprd18.prod.outlook.com ([fe80::3c98:dd36:4897:a51d]) by CO6PR18MB4484.namprd18.prod.outlook.com ([fe80::3c98:dd36:4897:a51d%5]) with mapi id 15.20.8026.019; Fri, 4 Oct 2024 17:45:23 +0000 From: Akhil Goyal To: Dodji Seketeli , Ferruh Yigit CC: "dev@dpdk.org" , "thomas@monjalon.net" , "david.marchand@redhat.com" , "hemant.agrawal@nxp.com" , Anoob Joseph , "pablo.de.lara.guarch@intel.com" , "fiona.trahe@intel.com" , "declan.doherty@intel.com" , "matan@nvidia.com" , "g.singh@nxp.com" , "fanzhang.oss@gmail.com" , "jianjay.zhou@huawei.com" , "asomalap@amd.com" , "ruifeng.wang@arm.com" , "konstantin.v.ananyev@yandex.ru" , "radu.nicolau@intel.com" , "ajit.khaparde@broadcom.com" , Nagadheeraj Rottela , "mdr@ashroe.eu" Subject: RE: [EXTERNAL] Re: [PATCH] [RFC] cryptodev: replace LIST_END enumerators with APIs Thread-Topic: [EXTERNAL] Re: [PATCH] [RFC] cryptodev: replace LIST_END enumerators with APIs Thread-Index: AQHa/3xz3C/WnIkI0UiW36ApTq9rd7J2I0sAgABgID6AAIPzcA== Date: Fri, 4 Oct 2024 17:45:23 +0000 Message-ID: References: <20240905101438.3888274-1-gakhil@marvell.com> <10591cfb-d78e-4d50-9bb5-f6d1246662b3@amd.com> <87msjkdx7x.fsf@redhat.com> In-Reply-To: <87msjkdx7x.fsf@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CO6PR18MB4484:EE_|CO1PR18MB4681:EE_ x-ms-office365-filtering-correlation-id: bcbae906-836a-4c7e-2d62-08dce49c52ba x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|1800799024|7416014|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?N2MvREc5WThiRlNWZ3V0Z05CNmVUY1UwbGx5K3VDbE5rWkgzOVpwSFdKVGN3?= =?utf-8?B?OFZObDRWU0hTSlBBckV2bGNMa3QwTEpLT2RZK0VxL1ZFWG83Z1owOHpVb0ti?= =?utf-8?B?QTZGdnFLck9JRVJvRDdxTmlaOTNDVjk4Q2NiTnV3WS9OclJsOEVOQzU2NkpN?= =?utf-8?B?U3dKcy9uUXRLc3cvUzVMWjUzTVM5NzNScitsUHc2aTllMjUvUXBUQXFmYkZq?= =?utf-8?B?T3JnYVZKRzNoMkE0enB5NHRGL3VvMHdXdTg3VGRWMXRkb1ZIR2I4NXdYYlJU?= =?utf-8?B?YTI2cGExcFNQSVNKN3hoM09kTWJwNEthN25UY3NOSjhjUEZrMjhDTkVzNkY5?= =?utf-8?B?bE1qRG5XdThaVzZGN1NEUW5rTnZZR0EvNXRCemFpRFEwY2Y4QkRkMXUwUkQ3?= =?utf-8?B?SnJLZWtONVlFZmg3VzBBdHR4TGFOYkhRTHkvTmE2V2hDZkJ4dHBtajBLMVIv?= =?utf-8?B?azFMbVROVDFvNCtXNmdoOGRsUVh4QjhMdkE2NnBoRnJLZ1ZCTEtRc1g1QkI2?= =?utf-8?B?aUphWGwwZlM1TXNJeDFsRDJaQ1o2VlQ3b1kvQll5b3ROODY4M0o3Vm5vNmx1?= =?utf-8?B?MlV6Q2FKNWdrUVFaOXlZVkJTb1M3RnpLb1YrME5OdFZ2c2dJaDI4MHlLUXMx?= =?utf-8?B?NkZxUlhEenFHWXhYYmZnMUYrYk55MS9LSVNZLzV1T2I1dWlLWmdsYVN0a0xH?= =?utf-8?B?L2lPTytEandaQmJYdXJvaTBVWWQxaU40am9HUlFHTUdtbU9BdmZjeDZhM1JK?= =?utf-8?B?aVpEelkycjVMK090YTdhQW13aU90Qmpzem81ZjlveDJYUzZCQWpQS2E1TnZn?= =?utf-8?B?S2VEZ3o5NzBrOXFTajBqTjQ1elM3RkdNRmpoT1hLUmJDT0QwUmJiSHRlb2Fp?= =?utf-8?B?SVRBSjQ4RjVCQ0JZZ2thZ2l1NXFHem15eVFIN1pkbUJNZ3dTOTg1b0ZDRjh2?= =?utf-8?B?WkhoTmNoV2wxQ2Jzb0RFVHZGN2VDNVV6djNqYkZTWEZXeWVCOWpkMStHOER1?= =?utf-8?B?dllXWGF1WXBrVHVaV3RHbGM4eDB1eit4aUNlTVB6b3hjVEN0Z0d6emUzbytp?= =?utf-8?B?cVU3UnJtRHJLMURLVUprZEszUUtPQUFmOVUzUHV4N0o2b2x0Smg4WUFyNXhQ?= =?utf-8?B?R0gyN2NWbTg1V2FYSStHd2VDWjlzT3dnOVZkbWdFdjhhcTRnVUZXSnYzOVdN?= =?utf-8?B?Y2hBVzlJOVQ2dHFyVEd0YjhoQ1dvcm52R2pDTkkrME5JOEl2Ym5NQVZvLzlz?= =?utf-8?B?L1JobWZ5VlRjVEs2bWhrZVVvaDZkUEpnYThHL1UwU3h1bGNrdjhadmJGclZi?= =?utf-8?B?clRSa2xyTGo1SjVhOSt5aE1lYURpK0tBNG5IVUllYVF3RjFwTGRMMmlWYWE1?= =?utf-8?B?ckpLdWFURzhrM1VmS1RWNTBYNDR6SnkwV2s1by9NWHNKdmlQWGNLME92SzBv?= =?utf-8?B?QnNjbTJ6Rnc3elE0TW5JQS9hMkFBcjMrWEpIcFRqcE1sK0NaNGRWVFpHRHpV?= =?utf-8?B?cGJHV2xoYk56UWo4VFh5NFd0NGZmUzBRV3VSRjF0OGZpK1BrUW15dnY2Qk1P?= =?utf-8?B?OGVwUUF1MjN4SS9HYTRsRnptUjlEV1FyZXlyQUVCU1FZeGVuUkppcktYN1dN?= =?utf-8?B?L3J5WmxmdW02dDJ2WFRnOEdZcytEVDloSlJkNFRIa1huMnByVCt4dm9jRWpn?= =?utf-8?B?dkpQTU95R1NhMWhmV29LTFdoSTdTWHlYbi9OcWNYbS9MV0RtZUIxYms5K2w0?= =?utf-8?B?b0RPK3pNMUxnNUk0cEtLRE1ueWg3cG5RTzY4bUNrMDNJajJZaERNWFRXTFcv?= =?utf-8?B?QlJHTDlzMERYaU05UUZkZz09?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO6PR18MB4484.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(1800799024)(7416014)(376014)(38070700018); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?b3BxWDlFWEtQOFU1QWw5V0luWnRRY0wyMFBUVU1XT0huc2VVTHY5ZVlWNVAz?= =?utf-8?B?b0xHeUJQK1czcEJMejQvbEphV29RS240V0locVg0eUxmL25qQkhEeDRJSVYz?= =?utf-8?B?aEx4cm9iUFFVdGVEVEF2SGRnWGlGVEx2bm8wVlh6UDRHWTk1R2dTUm1ta0pF?= =?utf-8?B?SFdEUVJQczI4R21SenViRTlUSHo2ME54aWZQSjZyN0RLVnA3QVBsRDRHWVZp?= =?utf-8?B?OUhZMHVVU1hTbGlKRzZJaThwTm9ONFE1SVVvWTllUC84Q3I4Rkg0NWh0TnlR?= =?utf-8?B?R3BMbytoVU0vZkU4V2VBdzgra2ZkYTM0dlBySHJFK2tWbkhINUppcFFrY01y?= =?utf-8?B?YlR4dkNySUJCWTd0c3c4dHZ5ZUJ2L0NFRm9xSS92SWlBQVUyYXpzWkdmSUsr?= =?utf-8?B?SlNoTElXenhmZ21PaGM0MXU1Y1JaNTZOcnpWMldvdktRNlY3U1FJazVvWUoy?= =?utf-8?B?VHdub2pOQUpWSXB3RHBBMmluZ1A3NGZNTXRCblFPTlhYaEhTSW1kM0dxTzYz?= =?utf-8?B?MkRSalQ0bzU2QWtmbkVmdHRIOGJ6STJCVDJCRzI5UzBzTXVUbTBWMDV3V0hV?= =?utf-8?B?NC9xNVVGQm04NTBkaklaWE1mcmVJTnZ1MGlTNk1BMWZiZzBxNlRoTGtqcmhp?= =?utf-8?B?SUtKOGt0cGRWdmlNdjQzM1NpR2hlV2p2NU5mQVk4ZXpJUXcyWEdsbTJCN0hZ?= =?utf-8?B?QWN6QnFGcnY5aEhXczV3SjV2T2JISjhGa3pQdSswSXB5d3l2RVR1RU14UGc0?= =?utf-8?B?aGgydU93emtLeWJXdHN3VElFQm9QKzQ4cFkrczMrNGw0bno0amx0d1pIZStV?= =?utf-8?B?N0hia25LdFVoclZIWE1SajNCVndOTUJuQlFwZGM5enc5RHZjVkRHNThmamEw?= =?utf-8?B?V2sxTXFldVJ5V0JQVUhHNm1mRUpqSXZkdmdxQlJuT0NzT1ZBZVNlL0lDdjNJ?= =?utf-8?B?N0d4aERkMWIxekExNFpwQXN4RHVZZlM0OTBuVENZcXhKNmFrdHhRMFd3WWJy?= =?utf-8?B?bTAyMGFXMzhncEE5bTRlVkRYWlh6aFAwUm9kOGVEMzE5SkRPem9FNjhhdTZC?= =?utf-8?B?TjJnWkFPMWFFYVE2ZzFqR1dRMkY0MVZSYlBWVXdyWi8yTzBzU0wrRnpscnFV?= =?utf-8?B?S2dzcmlNRWo5YzZ2NlZRcDJqRHIxUEVNZTZNNUdDaVByNXlLaDNhNThjQzdD?= =?utf-8?B?UDBjUmc5QXVvelA4SElkVU1Ncmc2S1RxWUpGMHZsc1BDR1orWmlLeEljUy9Q?= =?utf-8?B?RE1qb1BFSk0yNFpGb3FoMzlSV3M0QUV3T1h6TXFMdVNWUWFrSDhNeUhYbFI2?= =?utf-8?B?YTlGU0d2V2NYcXBkOGU3K3ZhUUN0MzZJZUhpRmNLblJyeFAwYWtyZTJ1Y0kr?= =?utf-8?B?b291R1FYMC9WYkQxT3d3aWZpV0NGYXZmK0JzdnIxTGdYN0t6VFJGR1FFRlYx?= =?utf-8?B?cDd3L2luckd2MmVrTWFCK0cyZzJ6eG1TbHFtSEhFYWFPUTg5MnJlVlUrampy?= =?utf-8?B?b2xsZ0wwNlovWDhUT3NaMUI5WG53MjNWZ1dIWWlzVkczc0I1NDhvMXRIc1Iy?= =?utf-8?B?VDhGRmdJemo1ck55a0NjRW9ZMWFrb0FPWkJYMVY2dU9UdDJ5SEs4NHJMVDJp?= =?utf-8?B?NVJFczVUZ29nSkNPZ2pFT0dvWHU0UTZLc0pmbDhPRXZqRENIZGdaSjRtY0Ir?= =?utf-8?B?SGxUSXBvN1RxTHNMdi9oejBndGJQaHVQaElEL3c2a2VoWmFvK1RpSmRnL0dj?= =?utf-8?B?dXB4MUtKeVdwZyt0OXVNNkd5QjJDaFJ6Ky9CTGdrazE0cUVVTlJsSkJESVpy?= =?utf-8?B?czMxTThuT1p4K044K0h2ZVZCNCszTEJwbmpYUkJpZC9aMTlWUjBZMEp0anN0?= =?utf-8?B?STc3Y0hZak4rdlAvNjNZWmxlRzBzcE1DdVVlZm50amg2S1prTHdOMzdyMlBa?= =?utf-8?B?TjFWdm1xTG9xdnVGRG5FOUZmR1QrYVF2ZW9NWWdVUTdWRFlpR3NyTGIwRUVO?= =?utf-8?B?ZUE4dHozaHg2T2VzQzJ3Y0V5SnJCZUJyMDMwSk1ab0lnMHZRS1ppSTE1eUli?= =?utf-8?B?bHBxQ0JJMkd1N0tUd2lLbXBMY2F5cWwvemdXTmlyb05zNE9JNzdvZ1RaY3RX?= =?utf-8?Q?iiGU=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: marvell.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO6PR18MB4484.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: bcbae906-836a-4c7e-2d62-08dce49c52ba X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Oct 2024 17:45:23.3715 (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: jAifAQY21eyHvA0itRMzmthbPvvdYdZv6Ws1yCqpw3SM3kXYw9y8/T8G8W6Fu7yBkvoz9Y5gklclnEbd3z3ehA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR18MB4681 X-Proofpoint-ORIG-GUID: E7_D38vlmX8kCS-Tl1Lkz2sYCWFXRjy2 X-Proofpoint-GUID: E7_D38vlmX8kCS-Tl1Lkz2sYCWFXRjy2 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.60.29 definitions=2024-09-06_09,2024-09-06_01,2024-09-02_01 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 PiBIZWxsbywNCj4gDQo+IEZlcnJ1aCBZaWdpdCA8ZmVycnVoLnlpZ2l0QGFtZC5jb20+IHdyaXRl czoNCj4gDQo+ID4gT24gOS81LzIwMjQgMTE6MTQgQU0sIEFraGlsIEdveWFsIHdyb3RlOg0KPiA+ PiBSZXBsYWNlICpfTElTVF9FTkQgZW51bWVyYXRvcnMgZnJvbSBhc3ltbWV0cmljIGNyeXB0bw0K PiA+PiBsaWIgdG8gYXZvaWQgQUJJIGJyZWFrYWdlIGZvciBldmVyeSBuZXcgYWRkaXRpb24gaW4N Cj4gPj4gZW51bXMgd2l0aCBpbmxpbmUgQVBJcy4NCj4gPj4NCj4gPj4gU2lnbmVkLW9mZi1ieTog QWtoaWwgR295YWwgPGdha2hpbEBtYXJ2ZWxsLmNvbT4NCj4gPj4gLS0tDQo+ID4+IFRoaXMgcGF0 Y2ggd2FzIGRpc2N1c3NlZCBpbiBNTCBsb25nIHRpbWUgYmFjay4NCj4gPj4gaHR0cHM6Ly9wYXRj aGVzLmRwZGsub3JnL3Byb2plY3QvZHBkay9wYXRjaC8yMDIxMTAwODIwNDUxNi4zNDk3MDYwLTEt Z2FraGlsQG1hcnZlbGwuY29tLw0KPiA+PiBOb3cgYWRkZWQgaW5saW5lIEFQSXMgZm9yIGdldHRp bmcgdGhlIGxpc3QgZW5kIHdoaWNoIG5lZWQgdG8gYmUgdXBkYXRlZA0KPiA+PiBmb3IgZWFjaCBu ZXcgZW50cnkgdG8gdGhlIGVudW0uIFRoaXMgc2hhbGwgaGVscCBpbiBhdm9pZGluZyBBQkkgYnJl YWsNCj4gPj4gZm9yIGFkZGluZyBuZXcgYWxnby4NCj4gPj4NCj4gPg0KPiA+IEhpIEFraGlsLA0K PiA+DQo+ID4gKkkgdGhpbmsqIHRoaXMgaGlkZXMgdGhlIHByb2JsZW0gaW5zdGVhZCBvZiBmaXhp bmcgaXQsIGFuZCB0aGlzIG1heSBiZQ0KPiA+IHBhcnRpYWxseSBiZWNhdXNlIG9mIHRoZSB0b29s aW5nIChsaWJhYmlnYWlsKSBsaW1pdGF0aW9uLg0KPiANCj4gU28sIEkgYW0gbm90IHN1cmUgdG8g dW5kZXJzdGFuZCBob3cgdGhpcyB3b3VsZCBiZSBhIGxpYmFiaWdhaWwNCj4gbGltaXRhdGlvbiBp biBnZW5lcmFsLiAgTGV0IG1lIGV4cGxhaW4uDQo+IA0KPiBUaGUgYWJpZGlmZiB0b29sIHRoYXQg Y29tcGFyZXMgdHdvIGJpbmFyaWVzIGFuZCBlbWl0cyByZXBvcnRzIGFib3V0DQo+IHRoZWlyIEFC SSBjaGFuZ2VzIGNhbiBiZSBnaXZlbiBhIHN1cHByZXNzaW9uIHNwZWNpZmljYXRpb24gZmlsZSB3 aGljaA0KPiBpbnN0cnVjdHMgdGhlIHRvb2wgYWJvdXQgd2hhdCB0eXBlIG9mIGNoYW5nZSB0byBh dm9pZCBlbWl0dGluZyByZXBvcnRzDQo+IGFib3V0Lg0KPiANCj4gSXQgdHVybnMgb3V0IHRoZXJl IGlzIGEgY29uc3RydWN0IHNwZWNpZmljYWxseSBkZXNpZ25lZCB0byBoYW5kbGUgdGhlDQo+IGNh c2Ugd2hlcmUgYW4gZW51bWVyYXRvciBpcyBhZGRlZCByaWdodCBiZWZvcmUgdGhlIGxhc3QgZW51 bWVyYXRvciBvZiBhDQo+IGVudW0uICBTdWNoIGEgY2hhbmdlIGNhdXNlcyB0aGUgdmFsdWUgb2Yg dGhlIGxhc3QgZW51bWVyYXRvciB0bw0KPiBpbmNyZWFzZS4NCj4gDQo+IEZvciBpbnN0YW5jZSwg Y29uc2lkZXIgdGhpcyBlbnVtOg0KPiANCj4gICAgIGVudW0gZm9vX2VudW0NCj4gICAgIHsNCj4g ICAgICBGT09fRklSU1QsDQo+ICAgICAgRk9PX1NFQ09ORCwNCj4gICAgICBGT09fRU5EDQo+ICAg ICB9Ow0KPiANCj4gSWYgSSBhZGQgYSBuZXcgZW51bWVyYXRvciByaWdodCBiZWZvcmUgdGhlIGxh c3QgZW51bWVyYXRvciwgSSB3b3VsZCBnZXQNCj4gdGhpczoNCj4gDQo+ICAgICBlbnVtIGZvb19l bnVtDQo+ICAgICB7DQo+ICAgICAgRk9PX0ZJUlNULA0KPiAgICAgIEZPT19TRUNPTkQsDQo+ICAg ICAgRk9PX1RISVJELA0KPiAgICAgIEZPT19FTkQNCj4gICAgIH07DQo+IA0KPiBUaGlzIGNoYW5n ZSBjYXVzZSB0aGUgdmFsdWUgb2YgdGhlIHRoZSBGT09EX0VORCBlbnVtZXJhdG9yIHRvIGluY3Jl YXNlLg0KPiBBbmQgdGhhdCBpbmNyZWFzZSBtaWdodCBiZSBwcm9ibGVtYXRpYy4gIEF0IHRoZSBt b21lbnQsIGZvciBpdCBiZWluZw0KPiBwcm9ibGVtYXRpYyBvciBub3QgaGFzIHRvIGJlIHRoZSBy ZXN1bHQgb2YgYSBjYXJlZnVsIHJldmlldy4NCj4gDQo+IFNvLCBieSBkZWZhdWx0LCBhYmlkaWZm IHdpbGwgY29tcGxhaW4gYnkgc2F5aW5nIHRoYXQgdGhlIHZhbHVlIG9mDQo+IEZPT19FTkQgd2Fz IGNoYW5nZWQuDQo+IA0KPiBCdXQgeW91LCBhcyBhIGNvbW11bml0eSBvZiBwcmFjdGljZSwgY2Fu IGRlY2lkZSB0aGF0IHRoaXMga2luZCBvZiBjaGFuZ2UNCj4gdG8gdGhlIHZhbHVlIG9mIHRoZSBs YXN0IGVudW1lcmF0b3IgaXMgbm90IGEgcHJvYmxlbWF0aWMgY2hhbmdlLCBhZnRlcg0KPiBjYXJl ZnVsIHJldmlldyBvZiB5b3VyIGNvZGUgYW5kIHByYWN0aWNlLiAgWW91IHRodXMgY2FuIHNwZWNp ZnkgdGhhdA0KPiB0aGUgdG9vbCB1c2luZyBhIHN1cHByZXNzaW9uIHNwZWNpZmljYXRpb24gd2hp Y2ggaGFzIHRoZSBmb2xsb3dpbmcNCj4gc3ludGF4Og0KPiANCj4gICAgIFtzdXBwcmVzc190eXBl XQ0KPiAgICAgICB0eXBlX2tpbmQgPSBlbnVtDQo+ICAgICAgIGNoYW5nZWRfZW51bWVyYXRvcnMg PSBGT09fRU5ELCBBTk9USEVSX0VOVU1fRU5ELA0KPiBBTkRfQU5PVEhFUl9FTlVNX0VORA0KPiAN Cj4gb3IsIGFsdGVybmF0aXZlbHksIHlvdSBjYW4gc3BlY2lmeSB0aGUgZW51bWVyYXRvcnMgeW91 IHdhbnQgdG8gc3VwcHJlc3MNCj4gdGhlIGNoYW5nZXMgZm9yIGFzIGEgbGlzdCBvZiByZWd1bGFy IGV4cHJlc3Npb25zOg0KPiANCj4gICAgIFtzdXBwcmVzc190eXBlXQ0KPiAgICAgICB0eXBlX2tp bmQgPSBlbnVtDQo+ICAgICAgIGNoYW5nZWRfZW51bWVyYXRvcnNfcmVnZXhwID0gLipfRU5EJCwg LipfTEFTVCQsIC4qX0xJU1RfRU5EJA0KPiANCj4gV291bGRuJ3QgdGhhdCBiZSBlbm91Z2ggdG8g YWRkcmVzcyB5b3VyIHVzZSBjYXNlIGhlcmUgKGhvbmVzdCBxdWVzdGlvbik/DQo+IA0KPiA+IFRo aXMgcGF0Y2ggcHJldmVudHMgdGhlIGxpYmFiaWdhaWwgd2FybmluZywgdHJ1ZSwgYnV0IGl0IGRv ZXNuJ3QgaW1wcm92ZQ0KPiA+IGFueXRoaW5nIGZyb20gdGhlIGFwcGxpY2F0aW9uJ3MgcGVyc3Bl Y3RpdmUuDQo+ID4gQmVmb3JlIG9yIGFmdGVyIHRoaXMgcGF0Y2gsIGFwcGxpY2F0aW9uIGtub3dz IGEgZml4ZWQgdmFsdWUgYXMgRU5EIHZhbHVlLg0KPiA+DQo+ID4gTm90IGFsbCBjaGFuZ2VzIGlu IHRoZSBFTkQgKE1BWCkgZW51bSB2YWx1ZXMgY2F1c2UgQUJJIGJyZWFrLCBidXQgdG9vbA0KPiA+ IHdhcm5zIG9uIGFsbCwgdGhhdCBpcyB3aHkgSSB0aGluayB0aGlzIG1heSBiZSB0b29saW5nIGxp bWl0YXRpb24gWzFdLg0KPiA+IChKdXN0IHRvIHN0cmVzcywgSSBhbSBOT1QgdGFsa2luZyBhYm91 dCByZWd1bGFyIGVudW0gdmFsdWVzIGNoYW5nZSwgSSBhbQ0KPiA+IHRhbGtpbmcgYWJvdXQgb25s eSBFTkQgKE1BWCkgdmFsdWUgY2hhbmdlcyBjYXVzZWQgYnkgYXBwZW5kaW5nIG5ldyBlbnVtDQo+ ID4gaXRlbXMuKQ0KPiA+DQo+ID4gQXMgZmFyIGFzIEkgY2FuIHNlZSAocGxlYXNlIERvZGppLCBE YXZpZCBjb3JyZWN0IG1lIGlmIEkgYW0gd3JvbmcpIEFCSQ0KPiA+IGJyZWFrIG9ubHkgaGFwcGVu cyBpZiBhcHBsaWNhdGlvbiBhbmQgbGlicmFyeSBleGNoYW5nZSBlbnVtIHZhbHVlcyBpbg0KPiA+ IHRoZSBBUEkgKGRpcmVjdGx5IG9yIHdpdGhpbiBhIHN0cnVjdCkuDQo+IA0KPiBTb3JyeSwgSSBh bSBub3Qgc3VyZSB0byB1bmRlcnN0YW5kIHdoYXQgeW91IG1lYW4gYnkgImV4Y2hhbmdlIGVudW0g dmFsdWVzIi4NCj4gDQo+IEkgd291bGQgc2F5IGlzIHRoYXQgaWYgYSBjaGFuZ2UgdG8gYW4gZW51 bWVyYXRvciB2YWx1ZSBjYXVzZXMgYSBjaGFuZ2UNCj4gdG8gdGhlIGxheW91dCBvZiBhIHR5cGUg d2hpY2ggaXMgcGFydCBvZiB0aGUgQUJJLCB0aGVuIHRoYXQgZW51bWVyYXRvcg0KPiB2YWx1ZSBj aGFuZ2UgbWlnaHQgY2hhbmdlIHRoZSBBQkkuICBUaGF0IEFCSSBjaGFuZ2UgbWlnaHQgYmUgcHJv YmxlbWF0aWMNCj4gKGkuZSBhbiBBQkkgYnJlYWspIG9yIG5vdC4NCj4gDQo+ID4NCj4gPiBFeGNo YW5naW5nIGVudW0gdmFsdWVzIHZpYSBBUEkgY2F1c2UgQUJJIGlzc3VlcyBiZWNhdXNlOg0KPiA+ IDEuIGVudW0gc2l6ZSBpcyBub3QgZml4ZWQsIGl0IHVzZXMgbWluIHN0b3JhZ2Ugc2l6ZSB0aGF0 IGNhbiBob2xkIGFsbA0KPiA+IHZhbHVlcywgYWRkaW5nIG5ldyBlbnVtcyBtYXkgY2F1c2UgaXRz IHNpemUgY2hhbmdlIGFuZCBvZiBjb3Vyc2UgdGhpcw0KPiA+IGJyZWFrcyBBQkkuDQo+ID4gMi4g TGlicmFyeSBjYW4gc2VuZCBlbnVtIHZhbHVlcyB0aGF0IGFwcGxpY2F0aW9uIGRvZXNuJ3Qga25v dywgdGhpcyBtYXkNCj4gPiBjYXVzZSBhcHBsaWNhdGlvbiBiZWhhdmUgdW5kZWZpbmVkLg0KPiA+ IDMuIEFwcGxpY2F0aW9uIHNlbmRpbmcgTUFYIHZhbHVlIChvciBtb3JlKSB0byBBUEkgZXhwZWN0 cyBlcnJvciwgYnV0DQo+ID4gdGhhdCBtYXkgYmUgYSB2YWxpZCB2YWx1ZSBpbiB0aGUgbmV3IGxp YnJhcnkgYW5kIGFwcGxpY2F0aW9ucyBnZXRzDQo+ID4gdW5leHBlY3RlZCByZXN1bHQuDQo+ID4N Cj4gPg0KPiA+IExldCdzIGFzc3VtZSBhYm92ZSAxLiBoYXBwZW5zLCB3aXRoIHRoaXMgcGF0Y2gg d2FybmluZyBpcyBwcmV2ZW50ZWQsIGJ1dA0KPiA+IEFCSSBicmVhayBzdGlsbCBjYW4gb2NjdXIu DQo+ID4NCj4gPiBPbmUgb3B0aW9uIGNhbiBiZSBub3QgZXhjaGFuZ2luZyBlbnVtcyBpbiBBUElz IGF0IGFsbCwgdGhpcyB3YXkgY2hhbmdlcw0KPiA+IGluIHRoZSBFTkQgKE1BWCkgZW51bSB2YWx1 ZXMgYXJlIGhhcm1sZXNzLiBCdXQgSSBjYW4gc2VlIGNyeXB0b2RldiBkb2VzDQo+ID4gdGhpcyBh IGxvdC4NCj4gPg0KPiA+IFdoZW4gZW51bSBpcyBleGNoYW5nZWQgaW4gQVBJcywgYW5kIGlmIHdl IHdhbnQgdG8gYmUgc3RyaWN0IGFib3V0IHRoZQ0KPiA+IEFCSSwgc2FmZXN0IG9wdGlvbiBjYW4g YmUgbm90IGFwcGVuZGluZyB0byBlbnVtcyBhdCBhbGwsIGFuZCBrZWVwaW5nIEVORA0KPiA+IChN QVgpIGl0ZW1zIGNhbiBiZSBhIHdheSB0byBlbmFibGUgd2FybmluZ3MgZm9yIHRoaXMuDQo+ID4N Cj4gPg0KPiA+IE1vcmUgcmVsYXhlZCBvcHRpb24gaXMgcHJvdGVjdCBhZ2FpbnN0IG9ubHkgMS4g c2luY2UgdGhhdCBpcyB0aGUgcmVhbA0KPiA+IEFCSSBpc3N1ZSwgMiAmIDMgYXJlIG1vcmUgZGVm ZW5zaXZlIHByb2dyYW1taW5nLCBzbyBhcyBsb25nIGFzIGVudW0gc2l6ZQ0KPiA+IGlzIG5vdCBj aGFuZ2VkIHdlIG1heSBpZ25vcmUgdGhlIEVORCAoTUFYKSB2YWx1ZSBjaGFuZ2Ugd2FybmluZ3Mu DQo+ID4NCj4gPg0KPiA+DQo+ID4gWzFdIEl0IHdvdWxkIGJlIGJldHRlciBpZiB0b29sIGdpdmVz IEVORCAoTUFYKSBlbnVtIHZhbHVlIHdhcm5pbmdzIG9ubHkNCj4gPiBpZiBpdCBpcyBleGNoYW5n ZWQgaW4gYW4gQVBJLCBidXQgbm90IHN1cmUgaWYgdGhpcyBjYW4gYmUgcG9zc2libGUgdG8NCj4g PiBkZXRlY3QuDQo+IA0KPiBJIGJlbGlldmUgdGhhdCBpZiB5b3Ugd2FudCB0byBrbm93IGlmIGFu IGVudW1lcmF0b3IgdmFsdWUgaXMgKlVTRUQqIGJ5IGENCj4gdHlwZSAod2hpY2ggSSBiZWxpZXZl IGlzIGF0IHRoZSByb290IG9mIHdoYXQgeW91IGFyZSBhbGx1ZGluZyB0byksIHRoZW4NCj4geW91 IHdvdWxkIG5lZWQgYSBzdGF0aWMgYW5hbHlzaXMgdG9vbCB0aGF0IHdvcmtzIGF0IHRoZSBzb3Vy Y2UgbGV2ZWwuDQo+IE9yLCB5b3UgbmVlZCBhIGh1bWFuIHJldmlldyBvZiB0aGUgY29kZSBvbmNl IHRoZSBiaW5hcnkgYW5hbHlzaXMgdG9vbA0KPiB0b2xkIHlvdSB0aGF0IHRoYXQgdmFsdWUgb2Yg dGhlIGVudW1lcmF0b3IgY2hhbmdlZC4NCj4gDQo+IFdoeSA/IHBsZWFzZSBsZXQgbWUgZ2l2ZSB5 b3UgYW4gZXhhbXBsZToNCj4gDQo+ICAgICBlbnVtIGZvb19lbnVtDQo+ICAgICB7DQo+ICAgICAg Rk9PX0ZJUlNULA0KPiAgICAgIEZPT19TRUNPTkQsDQo+ICAgICAgRk9PX0VORA0KPiAgICAgfTsN Cj4gDQo+ICAgICBpbnQgYXJyYXlbRk9PX0VORF07DQo+IA0KPiBPbmNlIHRoaXMgaXMgY29tcGls ZWQgaW50byBiaW5hcnksIHdoYXQgbGliYWJpZ2FpbCBpcyBnb2luZyB0byBzZWUgYnkNCj4gYW5h bHl6aW5nIHRoZSBiaW5hcnkgaXMgdGhhdCAnYXJyYXknIGlzIGFuIGFycmF5IG9mIDIgaW50ZWdl cnMuICBUaGUNCj4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNpemUgb2YgdGhlIGFycmF5IGJlaW5n IGluaXRpYWxseSBhbiBlbnVtZXJhdG9yDQo+IHZhbHVlIGlzIGxvc3QuICBUbyBkZXRlY3QgdGhh dCwgeW91IG5lZWQgc291cmNlIGxldmVsIGFuYWx5c2lzLg0KPiANCj4gQnV0IHRoZW4sIGJ5IHJl dmlld2luZyB0aGUgY29kZSwgdGhpcyBpcyBhIGNvbnN0cnVjdCB0aGF0IHlvdSBjYW4gc3BvdA0K PiBhbmQgYWxsb3cgb3IgZm9yYmlkLCBkZXBlbmRpbmcgb24geW91ciBnb2FscyBhcyBhIHByb2pl Y3QuDQo+IA0KSW4gdGhlIGFib3ZlIGV4YW1wbGUgaWYgaW4gbmV3ZXIgbGlicmFyeSBhIEZPT19U SElSRCBpcyBhZGRlZC4NCkZPT19FTkQgdmFsdWUgd2lsbCBjaGFuZ2UgYW5kIHdpbGwgY2F1c2Ug QUJJIGJyZWFrIGZvciBjaGFuZ2UgaW4gZXhpc3RpbmcgdmFsdWUuDQpCdXQgaWYgd2UgcmVwbGFj ZSBpdCB3aXRoIGlubGluZSBmdW5jdGlvbiB0byBnZXQgdGhlIGxpc3RfZW5kIGFuZCB1c2UgaXQg aW4gYXJyYXkgbGlrZSBiZWxvdy4NClNvIGlmIEZPT19USElSRCBpcyBhZGRlZCwgd2Ugd2lsbCBh bHNvIHVwZGF0ZSBmb29fZW51bV9saXN0X2VuZCgpIGZ1bmN0aW9uIHRvIHJldHVybiAoRk9PX1RI SVJEKzEpDQoNCiAgICAgZW51bSBmb29fZW51bQ0KICAgICB7DQogICAgICBGT09fRklSU1QsDQog ICAgICBGT09fU0VDT05ELA0KICAgICB9Ow0KICAgICBzdGF0aWMgaW5saW5lIGludCBmb29fZW51 bV9saXN0X2VuZCgpDQogICAgIHsNCiAgICAgICAgICAgIHJldHVybiBGT09fU0VDT05EICsgMTsN CiAgICAgfQ0KICAgICBpbnQgYXJyYXlbZm9vX2VudW1fbGlzdF9lbmQoKV07DQoNCldpbGwgdGhp cyBjYXVzZSBhbiBBQkkgYnJlYWsgaWYgd2UgYWRkIHRoaXMgYXJyYXkgaW4gYXBwbGljYXRpb24g b3IgaW4gbGlicmFyeT8NCg==