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 D0AF641BAB; Thu, 2 Feb 2023 11:22:37 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AC0BB406A2; Thu, 2 Feb 2023 11:22:37 +0100 (CET) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id 7CA6C40689 for ; Thu, 2 Feb 2023 11:22:35 +0100 (CET) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 31299ccM001875; Thu, 2 Feb 2023 02:20:12 -0800 Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam04lp2173.outbound.protection.outlook.com [104.47.73.173]) by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 3nfjrj7g9a-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 02 Feb 2023 02:20:12 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=I3s/mrcqosh6eEM7BWZsuqAY2NtwqbN0UfMKR+oTEp7miu2tabZx33ZSRcNP4a1imXHrLCeJzPVZT87ED6GG1sWAWr+gkX9XLBVyriyKyxmZCyEn2SnRn81MZcZgACQqHY4cruBaIifDcbVgFo724V2524+OU2HKGTOWevL4x+4bapv3T2nXqIoDIWMda1106XjLsWiX7Yc2wDfFjfhChi6Xlt5pPwaImkwvjHdpQuk6if1u8m3D+b+jbnEvb8AisMjhTo3MHnZ4Hz2s/FocsKYOJvShTcNj4KWwhOFjwDonriEs8lZytrLrKzxwZewz62Eg7eGJB0Q9xJWgrAi9qA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=N+PBXyxyo0fgvHMJFdUrONHIKCXpCiuxvspc5Jvp4f8=; b=oTAsq5ai1bJ2rgcZCPXBPXp6IdTsniOChKf++mFmgyfMu49BgyZW7xjAxPlPYCxDGZZKBnZU/VxEjwXEf4l8s2Fl5KuC402xOEA1rgTYmBIgIW3ITZbapj7u2EO55otBpIMIBF37qYLQ+YacH8ro9/RfVLeqVV/Qxo/qXoEJnHMwr70wPcj1fTjib7/H/OhDE0nxISTY2cW/WBqHbAnnV9UYF4Eq2os2VwwKCI4QroSbdWgOezTx9S1Ot+gzD7LNvVjIpiw8cnOICUnoX/kYru+dLNV3vS5k71zXcTJXE/a9XOHNEWGc9fRIHsdjbJOLuArW/lQLZtrGlk53FjAyLA== 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=selector1-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=N+PBXyxyo0fgvHMJFdUrONHIKCXpCiuxvspc5Jvp4f8=; b=ZzXvQZ6BZx9XoDaPpCRwBGo3Fi2gKdPSQgXNocvcuFgwr78F4ak+mwU/2XTnSlbfK1SHJ6FLO5XX90NA6KKpcFJN9WcbhuXvT+wcd3RiLuCa31VFEtlqTySBtR46pvIjND3Nw0aJtUHtzb941KSOEEpyYJfuBOS6I0r7fqpgXM4= Received: from CO3PR18MB5005.namprd18.prod.outlook.com (2603:10b6:303:17e::22) by PH7PR18MB5060.namprd18.prod.outlook.com (2603:10b6:510:15f::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.23; Thu, 2 Feb 2023 10:20:07 +0000 Received: from CO3PR18MB5005.namprd18.prod.outlook.com ([fe80::305c:f1fa:266a:4058]) by CO3PR18MB5005.namprd18.prod.outlook.com ([fe80::305c:f1fa:266a:4058%4]) with mapi id 15.20.6064.024; Thu, 2 Feb 2023 10:20:06 +0000 From: Ankur Dwivedi To: Ferruh Yigit , "dev@dpdk.org" , David Marchand , Jerin Jacob Kollanukkaran , Andrew Rybchenko CC: "thomas@monjalon.net" , "mdr@ashroe.eu" , "orika@nvidia.com" , "chas3@att.com" , "humin29@huawei.com" , "linville@tuxdriver.com" , "ciara.loftus@intel.com" , "qi.z.zhang@intel.com" , "mw@semihalf.com" , "mk@semihalf.com" , "shaibran@amazon.com" , "evgenys@amazon.com" , "igorch@amazon.com" , "chandu@amd.com" , Igor Russkikh , "shepard.siegel@atomicrules.com" , "ed.czeck@atomicrules.com" , "john.miller@atomicrules.com" , "ajit.khaparde@broadcom.com" , "somnath.kotur@broadcom.com" , "Maciej Czekaj [C]" , Shijith Thotton , Srisivasubramanian Srinivasan , Harman Kalra , "rahul.lakkireddy@chelsio.com" , "johndale@cisco.com" , "hyonkim@cisco.com" , "liudongdong3@huawei.com" , "yisen.zhuang@huawei.com" , "xuanziyang2@huawei.com" , "cloud.wangxiaoyun@huawei.com" , "zhouguoyang@huawei.com" , "simei.su@intel.com" , "wenjun1.wu@intel.com" , "qiming.yang@intel.com" , "Yuying.Zhang@intel.com" , "beilei.xing@intel.com" , "xiao.w.wang@intel.com" , "jingjing.wu@intel.com" , "junfeng.guo@intel.com" , "rosen.xu@intel.com" , Nithin Kumar Dabilpuram , Kiran Kumar Kokkilagadda , Sunil Kumar Kori , Satha Koteswara Rao Kottidi , Liron Himi , "zr@semihalf.com" , Radha Chintakuntla , Veerasenareddy Burru , Sathesh B Edara , "matan@nvidia.com" , "viacheslavo@nvidia.com" , "longli@microsoft.com" , "spinler@cesnet.cz" , "chaoyong.he@corigine.com" , "niklas.soderlund@corigine.com" , "hemant.agrawal@nxp.com" , "sachin.saxena@oss.nxp.com" , "g.singh@nxp.com" , "apeksha.gupta@nxp.com" , "sachin.saxena@nxp.com" , "aboyer@pensando.io" , Rasesh Mody , Shahed Shaikh , Devendra Singh Rawat , "jiawenwu@trustnetic.com" , "jianwang@trustnetic.com" , "jbehrens@vmware.com" , "maxime.coquelin@redhat.com" , "chenbo.xia@intel.com" , "steven.webster@windriver.com" , "matt.peters@windriver.com" , "bruce.richardson@intel.com" , "mtetsuyah@gmail.com" , "grive@u256.net" , "jasvinder.singh@intel.com" , "cristian.dumitrescu@intel.com" , "jgrajcia@cisco.com" , "mb@smartsharesystems.com" Subject: RE: [EXT] Re: [PATCH v6 2/6] ethdev: add trace points for ethdev (part one) Thread-Topic: [EXT] Re: [PATCH v6 2/6] ethdev: add trace points for ethdev (part one) Thread-Index: AQHZLKsm5ZCRHFbCqkiIMnTJHCXUnK6sRvUAgArbxTCAAcpTAIABWAuwgAEqGwCAAA4MUA== Date: Thu, 2 Feb 2023 10:20:06 +0000 Message-ID: References: <20230112112140.807233-1-adwivedi@marvell.com> <20230120084059.2926575-1-adwivedi@marvell.com> <20230120084059.2926575-3-adwivedi@marvell.com> <614e22c6-8485-0e8d-742e-b3d100f96468@amd.com> <91a635b5-3fe5-b47d-d8ba-44f9b1614bf9@amd.com> In-Reply-To: Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-dg-rorf: true x-dg-ref: =?utf-8?B?UEcxbGRHRStQR0YwSUc1dFBTSmliMlI1TG5SNGRDSWdjRDBpWXpwY2RYTmxj?= =?utf-8?B?bk5jWVdSM2FYWmxaR2xjWVhCd1pHRjBZVnh5YjJGdGFXNW5YREE1WkRnME9X?= =?utf-8?B?STJMVE15WkRNdE5HRTBNQzA0TldWbExUWmlPRFJpWVRJNVpUTTFZbHh0YzJk?= =?utf-8?B?elhHMXpaeTB4WmpCbVlUSXhOQzFoTW1VekxURXhaV1F0T1RVeE9DMWxPRFpo?= =?utf-8?B?TmpReU5XWXdPVEpjWVcxbExYUmxjM1JjTVdZd1ptRXlNVFV0WVRKbE15MHhN?= =?utf-8?B?V1ZrTFRrMU1UZ3RaVGcyWVRZME1qVm1NRGt5WW05a2VTNTBlSFFpSUhONlBT?= =?utf-8?B?SXhOekUzTmlJZ2REMGlNVE16TVRrNE1EWTNPVFkzTXpreU9UUXpJaUJvUFNK?= =?utf-8?B?QlkzbDJVbWszUVRSdGVUSlVaM0JvVEROVlVYWnZURTB5WXpBOUlpQnBaRDBp?= =?utf-8?B?SWlCaWJEMGlNQ0lnWW04OUlqRWlJR05wUFNKalFVRkJRVVZTU0ZVeFVsTlNW?= =?utf-8?B?VVpPUTJkVlFVRk9aMGhCUVVOMkwxQmliRGQ2WWxwQlpIbDRja1ZFYkVsdVZV?= =?utf-8?B?RXpURWR6VVU5VmFXUlJRVTFCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJTRUZCUVVGQ2IwSjNRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlJVRkJVVUZDUVVGQlFUTlVla1pCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VW8wUVVGQlFtaEJSMUZCV2tGQ2VVRkhWVUZqZDBKNlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGRlFVRkJRVUZCUVVG?= =?utf-8?B?QlFXZEJRVUZCUVVGdVowRkJRVWROUVdSUlFucEJTRkZCWW5kQ2RFRkdPRUZq?= =?utf-8?B?UVVKc1FVaEpRV04zUW5aQlJ6UkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJV?= =?utf-8?B?VUZCUVVGQlFVRkJRVU5CUVVGQlFVRkRaVUZCUVVGWmQwSXhRVWhOUVdSQlFu?= =?utf-8?B?WkJSekJCV0hkQ2QwRkhaMEZpZDBKMVFVZFZRV0puUWpGQlJ6QkJXV2RDYkVG?= =?utf-8?B?SVNVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUWtGQlFVRkJRVUZCUVVGSlFVRkJRVUZCU2pSQlFVRkNha0ZJ?= =?utf-8?B?VlVGamQwSXdRVWM0UVdKUlFtWkJTRTFCWTNkQ2RVRkdPRUZhUVVKb1FVaE5R?= =?utf-8?B?V0ZCUW1aQlNGbEJUVUZCZVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?Q?FBQUFB?= x-dg-refone: =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVVkJRVUZCUVVGQlFVRkJaMEZCUVVGQlFXNW5RVUZC?= =?utf-8?B?UjAxQlpGRkNla0ZJVVVGaWQwSjBRVVk0UVdOM1FucEJSelJCV0hkQ2NrRkhW?= =?utf-8?B?VUZsVVVJelFVYzRRV05uUW10QlNFMUJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZSUVVGQlFVRkJRVUZCUTBGQlFV?= =?utf-8?B?RkJRVU5sUVVGQlFWbDNRakZCU0UxQlpFRkNka0ZITUVGWWQwSjZRVWhOUVdK?= =?utf-8?B?blFtWkJSelJCWW5kQ2EwRkhWVUZpUVVKd1FVY3dRV0ZSUWpCQlIxVkJZMmRD?= =?utf-8?B?WmtGSVdVRk5RVUY1UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQ1FVRkJRVUZC?= =?utf-8?B?UVVGQlFVbEJRVUZCUVVGS05FRkJRVUpxUVVoVlFXTjNRakJCUnpoQllsRkNa?= =?utf-8?B?a0ZJVFVGamQwSjFRVVk0UVdOM1FuZEJSMFZCV1hkQ2JFRkdPRUZrWjBGM1FV?= =?utf-8?B?UkpRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJSVUZCUVVGQlFVRkJRVUZuUVVGQlFVRkJibWRCUVVGSFVVRmlRVUozUVVZ?= =?utf-8?B?NFFXTjNRbkpCU0d0QlkwRkNiRUZHT0VGWmQwSnZRVWRGUVdSQlFtWkJSekJC?= =?utf-8?B?V2xGQ2VrRklUVUZaVVVKdVFVZFZRVmgzUWpKQlJFRkJUV2RCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVZGQlFVRkJRVUZCUVVGRFFVRkJRVUZCUTJWQlFVRkJX?= =?utf-8?B?a0ZDYzBGSVFVRllkMEo2UVVkM1FWbFJRbXBCUjNOQldIZENha0ZIWjBGWlVV?= =?utf-8?B?SXdRVVk0UVdKUlFteEJTRTFCWTNkQ2FFRkhZMEZhVVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?Q?FBQUFB?= x-dg-reftwo: QUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFBSUFBQUFBQUo0QUFBQmtBR3dBY0FCZkFIUUFaUUJoQUcwQWN3QmZBRzhBYmdCbEFHUUFjZ0JwQUhZQVpRQmZBR1lBYVFCc0FHVUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBQWdBQUFBQUFuZ0FBQUdVQWJRQmhBR2tBYkFCZkFHRUFaQUJrQUhJQVpRQnpBSE1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVpBQUFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQUNBQUFBQUFDZUFBQUFiUUJoQUhJQWRnQmxBR3dBYkFCZkFIUUFaUUJ5QUcwQWFRQnVBSFVBY3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUFJQUFBQUFBQT09Ii8+PC9tZXRhPg== x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CO3PR18MB5005:EE_|PH7PR18MB5060:EE_ x-ms-office365-filtering-correlation-id: 6ec9f148-7ced-441e-ed34-08db05070e57 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 2YjcmECf6CaehXqVmtNU25oIHPb+18GpoCbFUleVLIjCY83d7Uqw+ZdHqOVUTuMJ8wDHArt5hGYzWtGh2RxNYDxonwiG01+hJIQ/5aMg8oBQD1lVoXTEeDfSYkjewR7huus0h8drDpMfwndviSEncqkFWil7RrpSq3PVFjKMJ647LrsWL+zh+3yXaqvwFeLBKvdX8o5RfWTVro1vt5t1js3qIgJTq7ze8gPACL3QDBsel5GI/tAkLOPXHRSToWbx1mJQxLMlfILhgr5HyslSnezNeFhi3AZ5rTK/ZfDRqFmZDVbRV+B6W3j6O+7IF22jY459s3GCZ12NsJynby7uuErqRdoV0CKtowi1ZCcy2cUyOi+dG2f8hxF0pxNgAYEtYJWpUqpiDppqgdXMfZBf9l1tsRX1dWH8H5sACN5R8GxKu5wr3+2Kplg0C2ZW0Kpnvi1sYphZrfACWa2vVDlZXG8tIkwAsu/SReGtrtlalSnnodxjYSeu1OaF3/w7BRbOeieP3XANNaWQ1fuKh5qb/2pFgj+4qCq+35qG8/A73OSOiEoifgrdJELDlda86Xz9pNM14DcyeE8NlcHYHr5n0m9GSiW0vmmON9qkxBKqwNUJRcleidyYL8/i+mKRFMrFO1hKP5NhNJ949V5uTa0NIgKYhJVt1a5FeHSjW+4FigTt2j4JfJC7TKxiH89Zn8qJhnY7UX559bA5ihLyK90bHg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO3PR18MB5005.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230025)(4636009)(39860400002)(376002)(136003)(346002)(396003)(366004)(451199018)(186003)(26005)(38070700005)(110136005)(45080400002)(9686003)(316002)(86362001)(41300700001)(478600001)(7696005)(33656002)(38100700002)(71200400001)(122000001)(52536014)(54906003)(8936002)(83380400001)(7406005)(6506007)(4001150100001)(7416002)(7366002)(5660300002)(53546011)(2906002)(55016003)(76116006)(30864003)(8676002)(64756008)(4326008)(66556008)(66446008)(66946007)(66476007); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?cnNnVlE3aGdZemcyWTdza0lFWnVnU1ROMEV5YjRNTlJkZGhZeUhlSTMxNWxN?= =?utf-8?B?UHRFM3FraHB1UHFNYXlMbnc4b0FIZUtxYXpOcnNXMEs2QU50SFZ3RXd0NHR1?= =?utf-8?B?bWc0b3lIWmNnaGcvczVZOGVRSmhHWG85WnMvbWp2L3ZwNkQrOXFTbEV1RHZ1?= =?utf-8?B?LzFua1JtMFZ3QUowQW52Q0luRmMrZXpVOEpEaHp4WEd2Nmg5dldFenZjT2gr?= =?utf-8?B?dFFuZXdybmNqWkpwTG9Ic2Zqb0R0RHBFNkt0MFg3VUVFeFRQd3J6T1VFd1hr?= =?utf-8?B?ekJ2cWNQMXlxUkQ0V045Y2xmVEVwUTVaZ2FZdW16Y0JlRmQ3OE9OYnRSMnVu?= =?utf-8?B?NDFISHY0TnYzUy9INnVzSWNHZWpycEp4bkdibDdFZWU4RG96bUtVc25EQ2RW?= =?utf-8?B?TGtXdld1OVNOUlJtYkVCQ1ZEMkY3WjM5V3k0SmY5bWFvR2YzVkd3eU5IdlIr?= =?utf-8?B?bVYreHQyb2dhUVRxS1dXeitNeWpXdXhpQzJZVzNKVi9mUjFYUlFNcFR3bzFk?= =?utf-8?B?azI5a2FZc1pORkVUcWIvbW9tbWg3UFFaWXhGNDU3ZmpqMjRteWlkbWRHWVd4?= =?utf-8?B?cmdCYlJ2STFoQ3Y3WVNPV1FXK1ltSUNnMHc3V2VsWFpNT0FVekQrbkk5SXpn?= =?utf-8?B?ZzJYUUFJZmw4dEtYY2lQcnc0ZDFDc1ZZSk9mVXpsblkyb0VJL2FhU2xkRVE1?= =?utf-8?B?TDBEb0FhZnVQYi9mT0ZsTzJtRVFmc3JJSTdrY0VyL3RqMTRiR1hEdlVsbW9M?= =?utf-8?B?bXVqb1hOWXhHVHBSZWlLaG5vOVZOWFQ0Qjg2LytDblppazN5MDRBV3JxMUN4?= =?utf-8?B?ZFFkSkl1N3ZweDlWclM1N2dublkwRzJQVzRJNkQ5UTNVT2ZUL0VwZS95Mm56?= =?utf-8?B?dW5NWDd5M2w5eGFIQndGbFA2WHBSQm5uVDI1UUpiZHNWYWp3SWkzS2wybGhw?= =?utf-8?B?ZU04cUsvMVB3eDlQY2ppaEFiR0VlWWRHU2ZWSE5EWGVrTm9jbWI4MDQ5U051?= =?utf-8?B?R1pVL1Z3ajVrbktWamptZW5kdXY2Z1RtQ1BheG1pVjY2Lzh4cUROdFNUa3ZQ?= =?utf-8?B?R1lvMG5VUEFkQTkwN25RS2E3VElDQ2NVZXZxbHJIajA2S1VGVjEwZVRMUGxC?= =?utf-8?B?cDhDMWZWT2tTVnN4WDFzVHJXcHZMSmJtNCsvN3F0eE1ESUQ3ZG5pemRpOU43?= =?utf-8?B?R29QcVBSTFBTUW1OOFJjeTlVeHgrSmtmWU5abi9ocW1Sa0VqTzFVbG05cWhF?= =?utf-8?B?QW11ZXFIQTl6akI4UFJMVFlzZlpReGFtYWNxQXFrUHMzUHl1M1ArbGxjSDdX?= =?utf-8?B?cGVhTXcrSk1keWp3R2RqbDFQeUtaY1RSU2hkeG96c3dRMG54VTRCSllHM0Q1?= =?utf-8?B?a0NpdTJlVlpkNHBCelNxOWNJdVdLUlhmcVZrZnlRNVZMdHJQQ2V5VGhlTktw?= =?utf-8?B?emtJMTJFZTlqNjNFcGF5TkZQMGcvSVlsMVZXQkZLVWVOWjJya0tEbmNMMjNV?= =?utf-8?B?aU5YdU9JQnl3c1ZkWjJSVW0xVkxDaU9jd1habVBheWdhUlNLYU9wYzdIN0JK?= =?utf-8?B?RUhqWlgyWjh3WXl5eGp4Z1BPYVVKNEVLZWxnUkE0U3F2eGdXMS9SYVJRNlBO?= =?utf-8?B?M3FFSGd0cFFMb3NFQ1pyMUhrTlBkUU1kcmxJemFVbWY3Zm90dzQvUlhOY3B0?= =?utf-8?B?Y04zL3dGYXFqWmpCdmlsVzVlRi81YW5kZVNrNGFBRjFySG12dFVLWVVaY3Z2?= =?utf-8?B?eGZSMmxKVmpiTmxWWWJaNEwyMFJQVVF1QmZPTi9oakltQzlCRWsreXVWeXJa?= =?utf-8?B?UHdKM0ZTaHN3YUtSNmZwakZ6SjAreWE0MWQxeGxrcjRCcnhQUlV3MGNZTEZI?= =?utf-8?B?N3g4d09LdnEvRExaRXNrWFJUdmFDOEpEZElXRHVtN2JsSmtpaHRHcU4yL2Nx?= =?utf-8?B?d1RCUXRNbHVQZ0VxSHBMa0hHMkRYOTFzZWQ5Q2VjdzZmdmtLaWFGZzJUdWds?= =?utf-8?B?b0QwbFVJWnRUYkxGS2tpcEVnRzdMbzRBZVAwdVVpQTFaeTlCTUo5Zko4REpO?= =?utf-8?B?cTlqR01HUkxpSnZNZ1pVYXJyd0RHUStSbjVPSnNPeG5jNktQeGRHT0d6aS9z?= =?utf-8?Q?Fp31syE02SB70FHQ/Q55tgl6y?= 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: CO3PR18MB5005.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6ec9f148-7ced-441e-ed34-08db05070e57 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Feb 2023 10:20:06.6296 (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: +X17dodOBGd6X8mYnY52mBcffAn35T70Ca0zEcWAyqNWgi0BzF6xEztbz0PK5T8n80TJXg4YPRhC6zo3V4OgcA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR18MB5060 X-Proofpoint-ORIG-GUID: 7SeR5BjRYB4IF71j_b0LAySX0xxpT5UY X-Proofpoint-GUID: 7SeR5BjRYB4IF71j_b0LAySX0xxpT5UY X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-02-02_02,2023-02-02_01,2022-06-22_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 DQo+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj5Gcm9tOiBGZXJydWggWWlnaXQgPGZlcnJ1 aC55aWdpdEBhbWQuY29tPg0KPlNlbnQ6IFRodXJzZGF5LCBGZWJydWFyeSAyLCAyMDIzIDI6Mjcg UE0NCj5UbzogQW5rdXIgRHdpdmVkaSA8YWR3aXZlZGlAbWFydmVsbC5jb20+OyBkZXZAZHBkay5v cmc7IERhdmlkDQo+TWFyY2hhbmQgPGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5jb20+OyBKZXJpbiBK YWNvYiBLb2xsYW51a2thcmFuDQo+PGplcmluakBtYXJ2ZWxsLmNvbT47IEFuZHJldyBSeWJjaGVu a28NCj48YW5kcmV3LnJ5YmNoZW5rb0Bva3RldGxhYnMucnU+DQo+Q2M6IHRob21hc0Btb25qYWxv bi5uZXQ7IG1kckBhc2hyb2UuZXU7IG9yaWthQG52aWRpYS5jb207DQo+Y2hhczNAYXR0LmNvbTsg aHVtaW4yOUBodWF3ZWkuY29tOyBsaW52aWxsZUB0dXhkcml2ZXIuY29tOw0KPmNpYXJhLmxvZnR1 c0BpbnRlbC5jb207IHFpLnouemhhbmdAaW50ZWwuY29tOyBtd0BzZW1paGFsZi5jb207DQo+bWtA c2VtaWhhbGYuY29tOyBzaGFpYnJhbkBhbWF6b24uY29tOyBldmdlbnlzQGFtYXpvbi5jb207DQo+ aWdvcmNoQGFtYXpvbi5jb207IGNoYW5kdUBhbWQuY29tOyBJZ29yIFJ1c3NraWtoDQo+PGlydXNz a2lraEBtYXJ2ZWxsLmNvbT47IHNoZXBhcmQuc2llZ2VsQGF0b21pY3J1bGVzLmNvbTsNCj5lZC5j emVja0BhdG9taWNydWxlcy5jb207IGpvaG4ubWlsbGVyQGF0b21pY3J1bGVzLmNvbTsNCj5haml0 LmtoYXBhcmRlQGJyb2FkY29tLmNvbTsgc29tbmF0aC5rb3R1ckBicm9hZGNvbS5jb207IE1hY2ll ag0KPkN6ZWthaiBbQ10gPG1jemVrYWpAbWFydmVsbC5jb20+OyBTaGlqaXRoIFRob3R0b24gPHN0 aG90dG9uQG1hcnZlbGwuY29tPjsNCj5TcmlzaXZhc3VicmFtYW5pYW4gU3Jpbml2YXNhbiA8c3Jp bml2YXNhbkBtYXJ2ZWxsLmNvbT47IEhhcm1hbiBLYWxyYQ0KPjxoa2FscmFAbWFydmVsbC5jb20+ OyByYWh1bC5sYWtraXJlZGR5QGNoZWxzaW8uY29tOyBqb2huZGFsZUBjaXNjby5jb207DQo+aHlv bmtpbUBjaXNjby5jb207IGxpdWRvbmdkb25nM0BodWF3ZWkuY29tOw0KPnlpc2VuLnpodWFuZ0Bo dWF3ZWkuY29tOyB4dWFueml5YW5nMkBodWF3ZWkuY29tOw0KPmNsb3VkLndhbmd4aWFveXVuQGh1 YXdlaS5jb207IHpob3VndW95YW5nQGh1YXdlaS5jb207DQo+c2ltZWkuc3VAaW50ZWwuY29tOyB3 ZW5qdW4xLnd1QGludGVsLmNvbTsgcWltaW5nLnlhbmdAaW50ZWwuY29tOw0KPll1eWluZy5aaGFu Z0BpbnRlbC5jb207IGJlaWxlaS54aW5nQGludGVsLmNvbTsgeGlhby53LndhbmdAaW50ZWwuY29t Ow0KPmppbmdqaW5nLnd1QGludGVsLmNvbTsganVuZmVuZy5ndW9AaW50ZWwuY29tOyByb3Nlbi54 dUBpbnRlbC5jb207IE5pdGhpbg0KPkt1bWFyIERhYmlscHVyYW0gPG5kYWJpbHB1cmFtQG1hcnZl bGwuY29tPjsgS2lyYW4gS3VtYXIgS29ra2lsYWdhZGRhDQo+PGtpcmFua3VtYXJrQG1hcnZlbGwu Y29tPjsgU3VuaWwgS3VtYXIgS29yaSA8c2tvcmlAbWFydmVsbC5jb20+OyBTYXRoYQ0KPktvdGVz d2FyYSBSYW8gS290dGlkaSA8c2tvdGVzaHdhckBtYXJ2ZWxsLmNvbT47IExpcm9uIEhpbWkNCj48 bGlyb25oQG1hcnZlbGwuY29tPjsgenJAc2VtaWhhbGYuY29tOyBSYWRoYSBDaGludGFrdW50bGEN Cj48cmFkaGFjQG1hcnZlbGwuY29tPjsgVmVlcmFzZW5hcmVkZHkgQnVycnUgPHZidXJydUBtYXJ2 ZWxsLmNvbT47DQo+U2F0aGVzaCBCIEVkYXJhIDxzZWRhcmFAbWFydmVsbC5jb20+OyBtYXRhbkBu dmlkaWEuY29tOw0KPnZpYWNoZXNsYXZvQG52aWRpYS5jb207IGxvbmdsaUBtaWNyb3NvZnQuY29t OyBzcGlubGVyQGNlc25ldC5jejsNCj5jaGFveW9uZy5oZUBjb3JpZ2luZS5jb207IG5pa2xhcy5z b2Rlcmx1bmRAY29yaWdpbmUuY29tOw0KPmhlbWFudC5hZ3Jhd2FsQG54cC5jb207IHNhY2hpbi5z YXhlbmFAb3NzLm54cC5jb207IGcuc2luZ2hAbnhwLmNvbTsNCj5hcGVrc2hhLmd1cHRhQG54cC5j b207IHNhY2hpbi5zYXhlbmFAbnhwLmNvbTsgYWJveWVyQHBlbnNhbmRvLmlvOw0KPlJhc2VzaCBN b2R5IDxybW9keUBtYXJ2ZWxsLmNvbT47IFNoYWhlZCBTaGFpa2gNCj48c2hzaGFpa2hAbWFydmVs bC5jb20+OyBEZXZlbmRyYSBTaW5naCBSYXdhdA0KPjxkc2luZ2hyYXdhdEBtYXJ2ZWxsLmNvbT47 IGppYXdlbnd1QHRydXN0bmV0aWMuY29tOw0KPmppYW53YW5nQHRydXN0bmV0aWMuY29tOyBqYmVo cmVuc0B2bXdhcmUuY29tOw0KPm1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tOyBjaGVuYm8ueGlh QGludGVsLmNvbTsNCj5zdGV2ZW4ud2Vic3RlckB3aW5kcml2ZXIuY29tOyBtYXR0LnBldGVyc0B3 aW5kcml2ZXIuY29tOw0KPmJydWNlLnJpY2hhcmRzb25AaW50ZWwuY29tOyBtdGV0c3V5YWhAZ21h aWwuY29tOyBncml2ZUB1MjU2Lm5ldDsNCj5qYXN2aW5kZXIuc2luZ2hAaW50ZWwuY29tOyBjcmlz dGlhbi5kdW1pdHJlc2N1QGludGVsLmNvbTsNCj5qZ3JhamNpYUBjaXNjby5jb207IG1iQHNtYXJ0 c2hhcmVzeXN0ZW1zLmNvbQ0KPlN1YmplY3Q6IFJlOiBbRVhUXSBSZTogW1BBVENIIHY2IDIvNl0g ZXRoZGV2OiBhZGQgdHJhY2UgcG9pbnRzIGZvciBldGhkZXYgKHBhcnQNCj5vbmUpDQo+DQo+T24g Mi8xLzIwMjMgMzo0MiBQTSwgQW5rdXIgRHdpdmVkaSB3cm90ZToNCj4+DQo+Pg0KPj4+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+Pj4gRnJvbTogRmVycnVoIFlpZ2l0IDxmZXJydWgueWln aXRAYW1kLmNvbT4NCj4+PiBTZW50OiBXZWRuZXNkYXksIEZlYnJ1YXJ5IDEsIDIwMjMgMTI6MDgg QU0NCj4+PiBUbzogQW5rdXIgRHdpdmVkaSA8YWR3aXZlZGlAbWFydmVsbC5jb20+OyBkZXZAZHBk ay5vcmc7IERhdmlkDQo+Pj4gTWFyY2hhbmQgPGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5jb20+OyBK ZXJpbiBKYWNvYiBLb2xsYW51a2thcmFuDQo+Pj4gPGplcmluakBtYXJ2ZWxsLmNvbT47IEFuZHJl dyBSeWJjaGVua28NCj4+PiA8YW5kcmV3LnJ5YmNoZW5rb0Bva3RldGxhYnMucnU+DQo+Pj4gQ2M6 IHRob21hc0Btb25qYWxvbi5uZXQ7IG1kckBhc2hyb2UuZXU7IG9yaWthQG52aWRpYS5jb207DQo+ Pj4gY2hhczNAYXR0LmNvbTsgaHVtaW4yOUBodWF3ZWkuY29tOyBsaW52aWxsZUB0dXhkcml2ZXIu Y29tOw0KPj4+IGNpYXJhLmxvZnR1c0BpbnRlbC5jb207IHFpLnouemhhbmdAaW50ZWwuY29tOyBt d0BzZW1paGFsZi5jb207DQo+Pj4gbWtAc2VtaWhhbGYuY29tOyBzaGFpYnJhbkBhbWF6b24uY29t OyBldmdlbnlzQGFtYXpvbi5jb207DQo+Pj4gaWdvcmNoQGFtYXpvbi5jb207IGNoYW5kdUBhbWQu Y29tOyBJZ29yIFJ1c3NraWtoDQo+Pj4gPGlydXNza2lraEBtYXJ2ZWxsLmNvbT47IHNoZXBhcmQu c2llZ2VsQGF0b21pY3J1bGVzLmNvbTsNCj4+PiBlZC5jemVja0BhdG9taWNydWxlcy5jb207IGpv aG4ubWlsbGVyQGF0b21pY3J1bGVzLmNvbTsNCj4+PiBhaml0LmtoYXBhcmRlQGJyb2FkY29tLmNv bTsgc29tbmF0aC5rb3R1ckBicm9hZGNvbS5jb207IEplcmluDQo+SmFjb2INCj4+PiBLb2xsYW51 a2thcmFuIDxqZXJpbmpAbWFydmVsbC5jb20+OyBNYWNpZWogQ3pla2FqIFtDXQ0KPj4+IDxtY3pl a2FqQG1hcnZlbGwuY29tPjsgU2hpaml0aCBUaG90dG9uIDxzdGhvdHRvbkBtYXJ2ZWxsLmNvbT47 DQo+Pj4gU3Jpc2l2YXN1YnJhbWFuaWFuIFNyaW5pdmFzYW4gPHNyaW5pdmFzYW5AbWFydmVsbC5j b20+OyBIYXJtYW4gS2FscmENCj4+PiA8aGthbHJhQG1hcnZlbGwuY29tPjsgcmFodWwubGFra2ly ZWRkeUBjaGVsc2lvLmNvbTsNCj4+PiBqb2huZGFsZUBjaXNjby5jb207IGh5b25raW1AY2lzY28u Y29tOyBsaXVkb25nZG9uZzNAaHVhd2VpLmNvbTsNCj4+PiB5aXNlbi56aHVhbmdAaHVhd2VpLmNv bTsgeHVhbnppeWFuZzJAaHVhd2VpLmNvbTsNCj4+PiBjbG91ZC53YW5neGlhb3l1bkBodWF3ZWku Y29tOyB6aG91Z3VveWFuZ0BodWF3ZWkuY29tOw0KPj4+IHNpbWVpLnN1QGludGVsLmNvbTsgd2Vu anVuMS53dUBpbnRlbC5jb207IHFpbWluZy55YW5nQGludGVsLmNvbTsNCj4+PiBZdXlpbmcuWmhh bmdAaW50ZWwuY29tOyBiZWlsZWkueGluZ0BpbnRlbC5jb207IHhpYW8udy53YW5nQGludGVsLmNv bTsNCj4+PiBqaW5namluZy53dUBpbnRlbC5jb207IGp1bmZlbmcuZ3VvQGludGVsLmNvbTsgcm9z ZW4ueHVAaW50ZWwuY29tOw0KPj4+IE5pdGhpbiBLdW1hciBEYWJpbHB1cmFtIDxuZGFiaWxwdXJh bUBtYXJ2ZWxsLmNvbT47IEtpcmFuIEt1bWFyDQo+Pj4gS29ra2lsYWdhZGRhIDxraXJhbmt1bWFy a0BtYXJ2ZWxsLmNvbT47IFN1bmlsIEt1bWFyIEtvcmkNCj4+PiA8c2tvcmlAbWFydmVsbC5jb20+ OyBTYXRoYSBLb3Rlc3dhcmEgUmFvIEtvdHRpZGkNCj4+PiA8c2tvdGVzaHdhckBtYXJ2ZWxsLmNv bT47IExpcm9uIEhpbWkgPGxpcm9uaEBtYXJ2ZWxsLmNvbT47DQo+Pj4genJAc2VtaWhhbGYuY29t OyBSYWRoYSBDaGludGFrdW50bGEgPHJhZGhhY0BtYXJ2ZWxsLmNvbT47DQo+Pj4gVmVlcmFzZW5h cmVkZHkgQnVycnUgPHZidXJydUBtYXJ2ZWxsLmNvbT47IFNhdGhlc2ggQiBFZGFyYQ0KPj4+IDxz ZWRhcmFAbWFydmVsbC5jb20+OyBtYXRhbkBudmlkaWEuY29tOyB2aWFjaGVzbGF2b0BudmlkaWEu Y29tOw0KPj4+IGxvbmdsaUBtaWNyb3NvZnQuY29tOyBzcGlubGVyQGNlc25ldC5jejsgY2hhb3lv bmcuaGVAY29yaWdpbmUuY29tOw0KPj4+IG5pa2xhcy5zb2Rlcmx1bmRAY29yaWdpbmUuY29tOyBo ZW1hbnQuYWdyYXdhbEBueHAuY29tOw0KPj4+IHNhY2hpbi5zYXhlbmFAb3NzLm54cC5jb207IGcu c2luZ2hAbnhwLmNvbTsgYXBla3NoYS5ndXB0YUBueHAuY29tOw0KPj4+IHNhY2hpbi5zYXhlbmFA bnhwLmNvbTsgYWJveWVyQHBlbnNhbmRvLmlvOyBSYXNlc2ggTW9keQ0KPj4+IDxybW9keUBtYXJ2 ZWxsLmNvbT47IFNoYWhlZCBTaGFpa2ggPHNoc2hhaWtoQG1hcnZlbGwuY29tPjsNCj5EZXZlbmRy YQ0KPj4+IFNpbmdoIFJhd2F0IDxkc2luZ2hyYXdhdEBtYXJ2ZWxsLmNvbT47DQo+YW5kcmV3LnJ5 YmNoZW5rb0Bva3RldGxhYnMucnU7DQo+Pj4gamlhd2Vud3VAdHJ1c3RuZXRpYy5jb207IGppYW53 YW5nQHRydXN0bmV0aWMuY29tOw0KPj4+IGpiZWhyZW5zQHZtd2FyZS5jb207IG1heGltZS5jb3F1 ZWxpbkByZWRoYXQuY29tOw0KPj4+IGNoZW5iby54aWFAaW50ZWwuY29tOyBzdGV2ZW4ud2Vic3Rl ckB3aW5kcml2ZXIuY29tOw0KPj4+IG1hdHQucGV0ZXJzQHdpbmRyaXZlci5jb207IGJydWNlLnJp Y2hhcmRzb25AaW50ZWwuY29tOw0KPj4+IG10ZXRzdXlhaEBnbWFpbC5jb207IGdyaXZlQHUyNTYu bmV0OyBqYXN2aW5kZXIuc2luZ2hAaW50ZWwuY29tOw0KPj4+IGNyaXN0aWFuLmR1bWl0cmVzY3VA aW50ZWwuY29tOyBqZ3JhamNpYUBjaXNjby5jb207DQo+Pj4gbWJAc21hcnRzaGFyZXN5c3RlbXMu Y29tDQo+Pj4gU3ViamVjdDogUmU6IFtFWFRdIFJlOiBbUEFUQ0ggdjYgMi82XSBldGhkZXY6IGFk ZCB0cmFjZSBwb2ludHMgZm9yDQo+Pj4gZXRoZGV2IChwYXJ0DQo+Pj4gb25lKQ0KPj4+DQo+Pj4g T24gMS8zMC8yMDIzIDQ6MDEgUE0sIEFua3VyIER3aXZlZGkgd3JvdGU6DQo+Pj4NCj4+PiA8Li4u Pg0KPj4+DQo+Pj4+Pj4gZGlmZiAtLWdpdCBhL2xpYi9ldGhkZXYvbWVzb24uYnVpbGQgYi9saWIv ZXRoZGV2L21lc29uLmJ1aWxkIGluZGV4DQo+Pj4+Pj4gMzkyNTBiNWRhMS4uZjVjMDg2NTAyMyAx MDA2NDQNCj4+Pj4+PiAtLS0gYS9saWIvZXRoZGV2L21lc29uLmJ1aWxkDQo+Pj4+Pj4gKysrIGIv bGliL2V0aGRldi9tZXNvbi5idWlsZA0KPj4+Pj4+IEBAIC0yNCw2ICsyNCw3IEBAIGhlYWRlcnMg PSBmaWxlcygNCj4+Pj4+PiAgICAgICAgICAncnRlX2V0aGRldi5oJywNCj4+Pj4+PiAgICAgICAg ICAncnRlX2V0aGRldl90cmFjZS5oJywNCj4+Pj4+PiAgICAgICAgICAncnRlX2V0aGRldl90cmFj ZV9mcC5oJywNCj4+Pj4+PiArICAgICAgICAncnRlX2V0aGRldl90cmFjZV9mcF9idXJzdC5oJywN Cj4+Pj4+DQo+Pj4+PiBXaHkgdGhlc2UgdHJhY2UgaGVhZGVycyBhcmUgcHVibGljPw0KPj4+Pj4g QXJlbid0IHRyYWNlIHBvaW50cyBvbmx5IHVzZWQgYnkgdGhlIEFQSXMsIHNvIEkgZXhwZWN0IHRo ZW0gdG8gYmUNCj4+Pj4+IGludGVybmFsLCBzbyBhcHBsaWNhdGlvbnMgc2hvdWxkbid0IG5lZWQg dGhlbS4gV2h5IHRoZXkgYXJlIGV4cHNlZA0KPj4+Pj4gdG8NCj4+PiB1c2VyLg0KPj4+PiAncnRl X2V0aGRldl90cmFjZS5oJyBjYW4gYmUgbWFkZSBhcyBpbnRlcm5hbC4gTm90IHN1cmUgYWJvdXQN Cj4+PiAncnRlX2V0aGRldl90cmFjZV9mcC5oJyBhbmQgJ3J0ZV9ldGhkZXZfdHJhY2VfZnBfYnVy c3QuaCcgYXMgdGhlDQo+Pj4gdHJhY2Vwb2ludHMgaW4gZmFzdCBwYXRoIG1heSBiZSBjYWxsZWQg ZnJvbSBwdWJsaWMgaW5saW5lIGZ1bmN0aW9ucy4NCj4+Pg0KPj4+IFRyYWNlIGNhbGxzIHVzZWQg YnkgaW5saW5lIGZ1bmN0aW9ucyBuZWVkcyB0byBiZSBwdWJsaWMsIGluIHRoaXMgY2FzZQ0KPj4+ IGF0IGxlYXN0ICdydGVfZXRoZGV2X3RyYWNlX2ZwX2J1cnN0LmgnIG5lZWRzIHRvIGJlIHB1Ymxp Yy4NCj4+Pg0KPj4+IENhbiB5b3UgcGxlYXNlIGF0IGxlYXN0IG1vdmUgYWxsIHRyYWNlIHBvaW50 cyB0aGF0IGFyZSBjYWxsZWQgYnkNCj4+PiBpbmxpbmUgZnVuY3Rpb25zIHRvIHRoZSBzYW1lIGZp bGUsICdydGVfZXRoZGV2X3RyYWNlX2ZwX2J1cnN0LmgnLCB0bw0KPj4+IHJlZHVjZSBudW1iZXIg b2YgdGhlIGhlYWRlciBmaWxlcyB0byBtYWtlIHB1YmxpYz8gRmVlbCBmcmVlIHRvIHJlbmFtZQ0K PmhlYWRlciBpZiByZXF1aXJlZC4NCj4+Pg0KPj4+IE1lYW53aGlsZSBub3Qgc3VyZSBhYm91dCBh ZGRpbmcgbmV3IGhlYWRlciBhcyBkZXBlbmRlbmN5IHRvIGVuZCB1c2VyLg0KPj4+IEBKZXJpbiwg QEFuZHJldywgd2hhdCBkbyB5b3UgdGhpbmsNCj4+PiAxKSB0byBtb3ZlIHRoZXNlIHRyYWNlIHBv aW50cyB0byAncnRlX2V0aGRldl9jb3JlLmgnDQo+Pj4gT1INCj4+PiAyKSBkaXNhYmxlIHRyYWNl IGNhbGxzIGluIGlubGluZSBmdW5jdGlvbnMgb24gY29tcGlsZSB0aW1lLCBwb3NzaWJseQ0KPj4+ IHdpdGggZXhpc3RpbmcgJ1JURV9FVEhERVZfREVCVUdfKicgbWFjcm8NCj4+Pg0KPj4+IDwuLi4+ DQo+Pj4NCj4+Pj4+PiAtCWlmIChwb3J0X2lkID49IFJURV9NQVhfRVRIUE9SVFMpDQo+Pj4+Pj4g KwlpZiAocG9ydF9pZCA+PSBSVEVfTUFYX0VUSFBPUlRTKSB7DQo+Pj4+Pj4gKwkJcnRlX2V0aF90 cmFjZV9maW5kX25leHQoUlRFX01BWF9FVEhQT1JUUyk7DQo+Pj4+Pg0KPj4+Pj4gSXMgdGhlcmUg YSBzcGVjaWZpYyByZWFzb24gdG8gdHJhY2UgYWxsIHBhdGhzLCB3aHkgbm90IGp1c3Qga2VlcCB0 aGUgbGFzdA0KPm9uZT8NCj4+Pj4gVGhpcyBjYW4gYmUga2VwdCBhcyB0aGUgZnVuY3Rpb24gcmV0 dXJucyB3aXRoIFJURV9NQVhfRVRIUE9SVFMgaGVyZS4NCj4+Pg0KPj4+ICdSVEVfTUFYX0VUSFBP UlRTJyBtb3JlIGxpa2UgZXJyb3IgcGF0aCwgdGhhdCBpcyByZXR1cm5lZCB3aGVuIG5vDQo+Pj4g bW9yZSB2YWxpZCBwb3J0IGxlZnQsIHNpbmNlIG1vc3Qgb2YgdGhlIHRyYWNlIGRvZXNuJ3QgcmVj b3JkIGVycm9yDQo+Pj4gcmV0dXJuIHZhbHVlcywgSSB0aG91Z2h0IHRoaXMgY2FuIGJlIGRyb3Bw ZWQgYXMgd2VsbCB1bmxlc3MgdGhlcmUgaXMgYW4NCj5leHBsaWNpdCBuZWVkIGZvciBpdC4NCj4+ IE9rLg0KPj4+DQo+Pj4gPC4uLj4NCj4+Pg0KPj4+Pj4+ICtSVEVfVFJBQ0VfUE9JTlQoDQo+Pj4+ Pj4gKwlydGVfZXRoX3RyYWNlX3J4X2hhaXJwaW5fcXVldWVfc2V0dXAsDQo+Pj4+Pj4gKwlSVEVf VFJBQ0VfUE9JTlRfQVJHUyh1aW50MTZfdCBwb3J0X2lkLCB1aW50MTZfdA0KPnJ4X3F1ZXVlX2lk LA0KPj4+Pj4+ICsJCXVpbnQxNl90IG5iX3J4X2Rlc2MsIGNvbnN0IHN0cnVjdA0KPnJ0ZV9ldGhf aGFpcnBpbl9jb25mICpjb25mLA0KPj4+Pj4+ICsJCWludCByZXQpLA0KPj4+Pj4+ICsJdWludDMy X3QgcGVlcl9jb3VudCA9IGNvbmYtPnBlZXJfY291bnQ7DQo+Pj4+Pj4gKwl1aW50MzJfdCB0eF9l eHBsaWNpdCA9IGNvbmYtPnR4X2V4cGxpY2l0Ow0KPj4+Pj4+ICsJdWludDMyX3QgbWFudWFsX2Jp bmQgPSBjb25mLT5tYW51YWxfYmluZDsNCj4+Pj4+PiArCXVpbnQzMl90IHVzZV9sb2NrZWRfZGV2 aWNlX21lbW9yeSA9IGNvbmYtDQo+Pj4+Pj4gdXNlX2xvY2tlZF9kZXZpY2VfbWVtb3J5Ow0KPj4+ Pj4+ICsJdWludDMyX3QgdXNlX3J0ZV9tZW1vcnkgPSBjb25mLT51c2VfcnRlX21lbW9yeTsNCj4+ Pj4+PiArCXVpbnQzMl90IGZvcmNlX21lbW9yeSA9IGNvbmYtPmZvcmNlX21lbW9yeTsNCj4+Pj4+ PiArDQo+Pj4+Pj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF91MTYocG9ydF9pZCk7DQo+Pj4+Pj4g KwlydGVfdHJhY2VfcG9pbnRfZW1pdF91MTYocnhfcXVldWVfaWQpOw0KPj4+Pj4+ICsJcnRlX3Ry YWNlX3BvaW50X2VtaXRfdTE2KG5iX3J4X2Rlc2MpOw0KPj4+Pj4+ICsJcnRlX3RyYWNlX3BvaW50 X2VtaXRfcHRyKGNvbmYpOw0KPj4+Pj4+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTMyKHBlZXJf Y291bnQpOw0KPj4+Pj4+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTMyKHR4X2V4cGxpY2l0KTsN Cj4+Pj4+PiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UzMihtYW51YWxfYmluZCk7DQo+Pj4+Pj4g KwlydGVfdHJhY2VfcG9pbnRfZW1pdF91MzIodXNlX2xvY2tlZF9kZXZpY2VfbWVtb3J5KTsNCj4+ Pj4+PiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UzMih1c2VfcnRlX21lbW9yeSk7DQo+Pj4+Pj4g KwlydGVfdHJhY2VfcG9pbnRfZW1pdF91MzIoZm9yY2VfbWVtb3J5KTsNCj4+Pj4+PiArCXJ0ZV90 cmFjZV9wb2ludF9lbWl0X2ludChyZXQpOw0KPj4+Pj4NCj4+Pj4+IERvIHdlIG5lZWQgdGVtcG9y YXJ5IHZhcmlhYmxlcyBsaWtlICdwZWVyX2NvdW50Jywgd2h5IG5vdCBkaXJlY3RseQ0KPj4+Pj4g dXNlDQo+Pj4gdGhlbToNCj4+Pj4gVGVtcG9yYXJ5IHZhcmlhYmxlcyBhcmUgbmVlZGVkIHdoZXJl IHRoZSBhY3R1YWwgdmFyaWFibGUgaXMgYSBiaXRmaWVsZC4NCj4+Pj4gRm9yIGV4YW1wbGUgaW4g c3RydWN0IHJ0ZV9ldGhfaGFpcnBpbl9jb25mOg0KPj4+PiBzdHJ1Y3QgcnRlX2V0aF9oYWlycGlu X2NvbmYgew0KPj4+PiB1aW50MzJfdCBwZWVyX2NvdW50OjE2Ow0KPj4+PiAuLi4uDQo+Pj4+IHVp bnQzMl90IHR4X2V4cGxpY2l0OjENCj4+Pj4gLi4uLg0KPj4+PiB9Ow0KPj4+Pg0KPj4+PiBPdGhl cndpc2UgdGhlcmUgaXMgYSBjb21waWxhdGlvbiBlcnJvci4NCj4+Pj4gLi4vbGliL2V0aGRldi9y dGVfZXRoZGV2X3RyYWNlLmg6MjUzOjk6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybw0KPj4+ IOKAmHJ0ZV90cmFjZV9wb2ludF9lbWl0X3UxNuKAmQ0KPj4+PiAgIDI1MyB8ICAgICAgICAgcnRl X3RyYWNlX3BvaW50X2VtaXRfdTE2KGNvbmYtPnBlZXJfY291bnQpOw0KPj4+PiAgICAgICB8ICAg ICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQo+Pj4+IC4uL2xpYi9lYWwvaW5jbHVkZS9y dGVfdHJhY2VfcG9pbnQuaDozNjk6Mzg6IGVycm9yOiDigJhzaXplb2bigJkgYXBwbGllZA0KPj4+ PiB0byBhIGJpdC0NCj4+PiBmaWVsZA0KPj4+PiAgIDM2OSB8ICAgICAgICAgbWVtID0gUlRFX1BU Ul9BREQobWVtLCBzaXplb2YoaW4pKTsgXA0KPj4+Pg0KPj4+DQo+Pj4gR290IGl0LCB0aGF0IGlz IGJlY2F1c2Ugb2YgYml0ZmllbGRzLiBCdXQgYXMgSSBsb29rIHRoZQ0KPidydGVfdHJhY2VfcG9p bnRfZW1pdF91MTYnDQo+Pj4gbWFjcm8sIGl0IGlzIGxpa2U6DQo+Pj4NCj4+PiBgYGANCj4+PiAj ZGVmaW5lIHJ0ZV90cmFjZV9wb2ludF9lbWl0X3UxNihpbikgX19ydGVfdHJhY2VfcG9pbnRfZW1p dChpbiwNCj4+PiB1aW50MTZfdCkNCj4+Pg0KPj4+ICNkZWZpbmUgX19ydGVfdHJhY2VfcG9pbnRf ZW1pdChpbiwgdHlwZSkgXCBkbyB7IFwNCj4+PiAgICAgICAgbWVtY3B5KG1lbSwgJihpbiksIHNp emVvZihpbikpOyBcDQo+Pj4gICAgICAgIG1lbSA9IFJURV9QVFJfQUREKG1lbSwgc2l6ZW9mKGlu KSk7IFwgfSB3aGlsZSAoMCkgYGBgDQo+Pj4NCj4+PiBIZXJlLCBpbiAnX19ydGVfdHJhY2VfcG9p bnRfZW1pdCcgbWFjcm8gJ3R5cGUnIGlzIG5vdCB1c2VkIGF0IGFsbCwgaWYNCj4+PiBzbyB3aGF0 IGlzIHRoZSBwb2ludCBvZiBwYXNzaW5nIHR5cGU/DQo+Pj4NCj4+PiBJZiAnc2l6ZW9mKHR5cGUp JyB1c2VkLCBpbnN0ZWFkIG9mICdzaXplb2YoaW4pJywgaXQgd291bGQgYmUgcG9zc2libGUNCj4+ PiB0byB1c2UgYml0ZmllbGRzIGRpcmVjdGx5LCB3aGF0IGRvIHlvdSB0aGluaz8NCj4+DQo+PiBB ZnRlciB1c2luZyAnc2l6ZW9mKHR5cGUpJywgdGhlIGZvbGxvd2luZyBjb21waWxlIHRpbWUgZXJy b3IgaXMgb2JzZXJ2ZWQuDQo+PiBJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi4vbGliL2V0aGRldi9y dGVfZXRoZGV2X3RyYWNlX2ZwX2J1cnN0Lmg6MTgsDQo+PiAgICAgICAgICAgICAgICAgIGZyb20g Li4vbGliL2V0aGRldi9ydGVfZXRoZGV2Lmg6MTc1LA0KPj4gICAgICAgICAgICAgICAgICBmcm9t IC4uL2xpYi9ldGhkZXYvcnRlX3RtLmM6ODoNCj4+IC4uL2xpYi9ldGhkZXYvcnRlX2V0aGRldl90 cmFjZS5oOiBJbiBmdW5jdGlvbg0KPuKAmHJ0ZV9ldGhfdHJhY2VfcnhfaGFpcnBpbl9xdWV1ZV9z ZXR1cOKAmToNCj4+IC4uL2xpYi9lYWwvaW5jbHVkZS9ydGVfdHJhY2VfcG9pbnQuaDozNzg6MjE6 IGVycm9yOiBjYW5ub3QgdGFrZSBhZGRyZXNzIG9mDQo+Yml0LWZpZWxkIOKAmHBlZXJfY291bnTi gJkNCj4+ICAgMzc4IHwgICAgICAgICBtZW1jcHkobWVtLCAmKGluKSwgc2l6ZW9mKHR5cGUpKTsg XA0KPj4gICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXg0K Pg0KPlJpZ2h0LCB5b3UgY2FuJ3QgbWVtY3B5IHRvIGJpdGZpbGVkLCBzbyB0ZW1wb3JhcnkgdmFy aWFibGVzIGFyZSByZXF1aXJlZCwgT0suDQoNClllcy4NCj4NCj5TdGlsbCwgaXMgaXQgT0sgdG8g aWdub3JlICd0eXBlJyBpbiB0aGUgJ19fcnRlX3RyYWNlX3BvaW50X2VtaXQoKSc/DQo+SWYgdmFy aWFibGUgKGluKSBpcyB1aW50OF90LCBpdCB3b24ndCBtYXR0ZXIgaWYgJ3J0ZV90cmFjZV9wb2lu dF9lbWl0X3U4JywNCj4ncnRlX3RyYWNlX3BvaW50X2VtaXRfdTE2JyBvciAncnRlX3RyYWNlX3Bv aW50X2VtaXRfdTMyJyB1c2VkLCB0aGV5IHdpbGwgYWxsDQo+Z2l2ZSBzYW1lIHJlc3VsdCwgcmln aHQ/DQpDYWxsaW5nIChpbikgd2hpY2ggaXMgdWludDhfdCBpcyBub3QgYWxsb3dlZCBpbiAncnRl X3RyYWNlX3BvaW50X2VtaXRfdTE2JyBiZWNhdXNlIHRoZXJlIGlzIG90aGVyIF9fcnRlX3RyYWNl X3BvaW50X2VtaXQNCmluIGxpYi9lYWwvaW5jbHVkZS9ydGVfdHJhY2VfcG9pbnRfcmVnaXN0ZXIu aCBjYWxsZWQgZHVyaW5nIHRyYWNlIHBvaW50IHJlZ2lzdGVyIHdoaWNoIHByZXZlbnRzIHRoaXMu IA0KDQpUaGVyZSB3b3VsZCBiZSBjb21waWxhdGlvbiBlcnJvciBiZWNhdXNlIG9mIHRoaXMgY2hl Y2sgaW4gJ19fcnRlX3RyYWNlX3BvaW50X2VtaXQoKScNClJURV9CVUlMRF9CVUdfT04oc2l6ZW9m KHR5cGUpICE9IHNpemVvZih0eXBlb2YoaW4pKSk7IA0KDQpTbyB0eXBlIGNhbiBiZSBpZ25vcmVk IGluICdfX3J0ZV90cmFjZV9wb2ludF9lbWl0KCknIGluIGxpYi9lYWwvaW5jbHVkZS9ydGVfdHJh Y2VfcG9pbnQuaC4NCj4NCj4NCj4+Pg0KPj4+DQo+Pj4NCj4+PiBBbHNvLCBhcyBmb3IgdGhlICJz dHJ1Y3QgcnRlX2V0aF9oYWlycGluX2NvbmYiIHNhbXBsZSwgc29tZSBvZiB0aGUNCj4+PiBiaXRm aWVsZHMgYXJlDQo+Pj4gMSBiaXQgbGVuZ3RoLCBkb2VzICd1aW50MzJfdCcgcmVhbGx5IG5lZWRl ZCBmb3IgdGhlbT8NCj4+DQo+PiB1aW50OF90IHNob3VsZCBzdWZmaWNlLg0KPg0KPmFjaw0KPg0K Pj4+DQo+Pj4gPC4uLj4NCj4+Pg0KPj4+Pj4+ICtSVEVfVFJBQ0VfUE9JTlRfRlAoDQo+Pj4+Pj4g KwlydGVfZXRoX3RyYWNlX2ZpbmRfbmV4dCwNCj4+Pj4+PiArCVJURV9UUkFDRV9QT0lOVF9BUkdT KHVpbnQxNl90IHBvcnRfaWQpLA0KPj4+Pj4+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTE2KHBv cnRfaWQpOw0KPj4+Pj4+ICspDQo+Pj4+Pj4gKw0KPj4+Pj4NCj4+Pj4+IFdoeSAncnRlX2V0aF90 cmFjZV9maW5kX25leHQnIGFkZGVkIGFzIGZhc3QgcGF0aD8NCj4+Pj4+IENhbiB5b3UgcGxlYXNl IGFkZCBjb21tZW50IGZvciBhbGwgd2h5IGl0IGlzIGFkZGVkIGFzIGZhc3QgcGF0aCwNCj4+Pj4+ IHRoaXMgaGVscCB0byBldmFsdWF0ZS9yZXZpZXcgdGhpcyBsYXRlci4NCj4+Pj4NCj4+Pj4gVGhl cmUgd2VyZSBtYW55IGZ1bmN0aW9ucyBmb3Igd2hpY2ggSSB3YXMgbm90IHN1cmUgYWJvdXQgd2hl dGhlcg0KPj4+PiB0aGV5DQo+Pj4gc2hvdWxkIGJlIHNsb3cgcGF0aCBvciBmYXN0IHBhdGguIEkg bWFkZSB0aGUgZm9sbG93aW5nIGFzc3VtcHRpb246DQo+Pj4+DQo+Pj4+IEZvciBzbG93IHBhdGgg SSBoYXZlIGNob3NlbiB0aGUgZnVuY3Rpb24gd2hpY2ggZG8gc29tZSBzZXR1cCwNCj4+Pj4gY29u ZmlndXJlIG9yDQo+Pj4gd3JpdGUgc29tZSBjb25maWd1cmF0aW9uLiBGb3IgYW4gZXhhbXBsZQ0K Pj4+IHJ0ZV9ldGhfdHJhY2VfdHhfaGFpcnBpbl9xdWV1ZV9zZXR1cCwNCj4+PiBydGVfZXRoX3Ry YWNlX3R4X2J1ZmZlcl9zZXRfZXJyX2NhbGxiYWNrLA0KPj4+IHJ0ZV9ldGhfdHJhY2VfcHJvbWlz Y3VvdXNfZW5hYmxlIGFyZSBzbG93IHBhdGggZnVuY3Rpb25zLg0KPj4+Pg0KPj4+PiBUaGUgZnVu Y3Rpb25zIHdoaWNoIHJlYWQgZGF0YSBhcmUgbWFkZSBhcyBmYXN0cGF0aCBmdW5jdGlvbnMuIEFs c28NCj4+Pj4gZm9yDQo+Pj4gZnVuY3Rpb25zIGZvciB3aGljaCBJIHdhcyBub3Qgc3VyZSBJIG1h ZGUgaXQgYXMgZmFzdHBhdGguDQo+Pj4+DQo+Pj4+IEZvciBhbiBleGFtcGxlIHJ0ZV9ldGhkZXZf dHJhY2Vfb3duZXJfZ2V0LA0KPj4+IHJ0ZV9ldGhfdHJhY2VfaGFpcnBpbl9nZXRfcGVlcl9wb3J0 LCBydGVfZXRoX3RyYWNlX21hY2FkZHJfZ2V0IGFyZQ0KPj4+IG1hZGUgYXMgZmFzdHBhdGguDQo+ Pj4+DQo+Pj4+IEJ1dCB0aGVyZSBhcmUgZmV3IGV4Y2VwdGlvbnMuIEZ1bmN0aW9uIGxpa2UgKl9n ZXRfY2FwYWJpbGl0eSBhcmUNCj4+Pj4gbWFkZSBhcw0KPj4+IHNsb3dwYXRoLiBBbHNvIHJ0ZV9l dGhkZXZfdHJhY2VfaW5mb19nZXQgaXMgc2xvd3BhdGguDQo+Pj4+DQo+Pj4+IFRoZSBzbG93cGF0 aCBhbmQgZmFzdHBhdGggZnVuY3Rpb25zIGFyZSBpbiBzZXBhcmF0ZSBmaWxlcy4NCj4+PiBydGVf ZXRoZGV2X3RyYWNlLmggKHNsb3dwYXRoKSBhbmQgcnRlX2V0aGRldl90cmFjZV9mcC5oIChmYXN0 cGF0aCkuDQo+Pj4+DQo+Pj4+IFBsZWFzZSBsZXQgbWUgIGtub3cgaWYgYW55IGZ1bmN0aW9uIG5l ZWRzIHRvIGJlIHN3YXBwZWQuIEkgd2lsbCBtYWtlDQo+Pj4+IHRoYXQNCj4+PiBjaGFuZ2UuDQo+ Pj4+DQo+Pj4NCj4+PiBHb3QgaXQsIEkgdGhpbmsgbW9zdCBvZiB0aGUgdHJhY2UgcG9pbnRzIGlu IHRoZSAncnRlX2V0aGRldl90cmFjZV9mcC5oJw0KPj4+IGFyZSBmb3IgY29udHJvbC9oZWxwZXIg ZnVuY3Rpb25zIGxpa2U6DQo+Pj4gJ3J0ZV9ldGhkZXZfdHJhY2VfY291bnRfYXZhaWwnLCAncnRl X2V0aGRldl90cmFjZV9nZXRfcG9ydF9ieV9uYW1lJywNCj4ncnRlX2V0aF90cmFjZV9wcm9taXNj dW91c19nZXQnIC4uLg0KPj4+DQo+Pj4gSSB0aG91Z2h0IHlvdSBkaWQgYmFzZWQgb24gc29tZSBh bmFseXNpcywgdGhhdCBpcyB3aHkgSSBhc2tlZCB0byBhZGQNCj4+PiB0aGF0IHJlYXNvbmluZyBh cyBjb2RlIGNvbW1lbnQuDQo+Pj4NCj4+Pg0KPj4+IEkgdGhpbmsgd2UgY2FuIGdlbmVyYWxpemUg YXM6DQo+Pj4NCj4+PiAxKSBBbnl0aGluZyBjYWxsZWQgYnkgZXRoZGV2IHN0YXRpYyBpbmxpbmUg ZnVuY3Rpb25zIGFyZSBkYXRhcGF0aCwNCj4+PiBhbmQgbXVzdCBiZSAnUlRFX1RSQUNFX1BPSU5U X0ZQJywgbGlrZQ0KPj4+ICdydGVfZXRoX3RyYWNlX2NhbGxfW3J0XXhfY2FsbGJhY2tzJywNCj4+ PiAncnRlX2V0aGRldl90cmFjZV9bcnRdeF9idXJzdCcsDQo+Pg0KPj4gSW4gdGhpcyBjYXRlZ29y eSB0aGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBjb21lOg0KPj4gcnRlX2V0aF9yeF9idXJzdA0KPj4g cnRlX2V0aF90eF9idXJzdA0KPj4gcnRlX2V0aF9jYWxsX3J4X2NhbGxiYWNrcyAoY2FsbGVkIGZy b20gcnRlX2V0aF9yeF9idXJzdCkNCj4+IHJ0ZV9ldGhfY2FsbF90eF9jYWxsYmFja3MgKGNhbGxl ZCBmcm9tIHJ0ZV9ldGhfdHhfYnVyc3QpDQo+PiBydGVfZXRoX3R4X2J1ZmZlcl9jb3VudF9jYWxs YmFjayAocmVnaXN0ZXJlZCBhcyBlcnJvciBjYWxsYmFjaywgY2FsbGVkDQo+PiBmcm9tIHJ0ZV9l dGhfdHhfYnVmZmVyX2ZsdXNoKSBydGVfZXRoX3R4X2J1ZmZlcl9kcm9wX2NhbGxiYWNrDQo+PiAo cmVnaXN0ZXJlZCBhcyBlcnJvciBjYWxsYmFjaykNCj4NCj5hY2sNCj4NCj4+Pg0KPj4+IDIpIEFu eXRoaW5nIHRoYXQgaXMgY2FsbGVkIGluIGVuZGxlc3MgbG9vcCBpbiBhcHBsaWNhdGlvbi9zYW1w bGUgdGhhdA0KPj4+IGhhcyBwb3RlbnRpYWwgaW1wYWN0IGFsdGhvdWdoIGl0IG1heSBub3QgcmVh bGx5IGJlIGRhdGFwYXRoDQo+Pg0KPj4gQXBhcnQgZnJvbSBmdW5jdGlvbnMgaW4gY2F0ZWdvcnkg WzFdLCBJIGhhdmUgb2JzZXJ2ZWQgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnMNCj5pbiBldGhkZXYg bGlicmFyeSwgY2FsbGVkIGluIHNvbWUgd2hpbGUgbG9vcCBpbiBhcHAvZXhhbXBsZXMuDQo+PiBy dGVfZXRoX3N0YXRzX2dldCAoY2FsbGVkIGluIHdoaWxlIGxvb3AgaW4gZXhhbXBsZXMvcW9zX3Nj aGVkIGFuZA0KPj4gZXhhbXBsZXMvZGlzdHJpYnV0b3IpIHJ0ZV9ldGhfbWFjYWRkcl9nZXQgKGNh bGxlZCBpbiB3aGlsZSBsb29wIGluDQo+PiBleGFtcGxlcy9ib25kIGFuZCBleGFtcGxlcy9ldGh0 b29sKSBydGVfZXRoX2xpbmtfZ2V0IChjYWxsZWQgaW4gZm9yDQo+PiBsb29wIGluIGV4YW1wbGVz L2lwX3BpcGVsaW5lKSBydGVfZXRoX2Rldl9nZXRfbXR1IChjYWxsZWQgaW4gZm9yIGxvb3ANCj4+ IGluIGV4YW1wbGVzL2lwX3BpcGVsaW5lKSBydGVfZXRoX2xpbmtfc3BlZWRfdG9fc3RyIChjYWxs ZWQgaW4gZm9yIGxvb3ANCj4+IGluIGV4YW1wbGVzL2lwX3BpcGVsaW5lKSBydGVfZXRoX2Rldl9y eF9pbnRyX2VuYWJsZSAoIGNhbGxlZCBpbiBsb29wDQo+PiBpbiBleGFtcGxlcy9sM2Z3ZC1wb3dl cikgcnRlX2V0aF9kZXZfcnhfaW50cl9kaXNhYmxlICggY2FsbGVkIGluIGxvb3ANCj4+IGluIGV4 YW1wbGVzL2wzZndkLXBvd2VyKSBydGVfZXRoX3RpbWVzeW5jX3JlYWRfcnhfdGltZXN0YW1wIChj YWxsZWQgaW4NCj4+IGxvb3AgaW4gZXhhbXBsZXMvcHRwY2xpZW50KSBydGVfZXRoX3RpbWVzeW5j X3JlYWRfdHhfdGltZXN0YW1wIChjYWxsZWQNCj4+IGluIGxvb3AgaW4gZXhhbXBsZXMvcHRwY2xp ZW50KSBydGVfZXRoX3RpbWVzeW5jX2FkanVzdF90aW1lIChjYWxsZWQgaW4NCj4+IGxvb3AgaW4g ZXhhbXBsZXMvcHRwY2xpZW50KSBydGVfZXRoX3RpbWVzeW5jX3JlYWRfdGltZSAoY2FsbGVkIGlu IGxvb3ANCj4+IGluIGV4YW1wbGVzL3B0cGNsaWVudCkgcnRlX2Zsb3dfY2xhc3NpZmllcl9xdWVy eSAoY2FsbGVkIGluDQo+PiBleGFtcGxlcy9mbG93X2NsYXNzaWZ5KSBydGVfbXRyX2NyZWF0ZSAo aW4gYXBwL3Rlc3QtZmxvdy1wZXJmIGxvb3ApDQo+PiBydGVfbXRyX2Rlc3Ryb3kgKGluIGFwcC90 ZXN0LWZsb3ctcGVyZiBsb29wKQ0KPj4gcnRlX210cl9tZXRlcl9wb2xpY3lfZGVsZXRlICgoaW4g YXBwL3Rlc3QtZmxvdy1wZXJmIGxvb3ApDQo+PiBydGVfZmxvd19jcmVhdGUgKGluIGFwcC90ZXN0 LWZsb3ctcGVyZikgcnRlX2Zsb3dfZGVzdHJveSAoaW4NCj4+IGFwcC90ZXN0LWZsb3ctcGVyZikN Cj4+DQo+DQo+QWNrLCBhbmQgY2FuIHlvdSBwbGVhc2UgYWRkIHRoZSBub3RlIHdpdGhpbiB0aGUg cGFyZW50aGVzaXMgYXMgYSBjb21tZW50LA0KPndob2V2ZXIgdmlzaXRzIHRoZXNlIGxhdGVyIGtu b3dzIHdoeSB0aGVyZSB0cmFjZSBwb2ludHMgYWRkZWQgYXMgZmFzdCBwYXRoDQo+dHJhY2UgcG9p bnQ/DQo+DQo+PiBBcGFydCBmcm9tIHRoZSBhYm92ZSBjYW4gYWxsIG90aGVyIGZ1bmN0aW9ucyBi ZSBtb3ZlZCB0byBzbG93cGF0aA0KPnRyYWNlcG9pbnRzPw0KPg0KPkkgdGhpbmsgeWVzLCB3ZSBj YW4gc3RhcnQgd2l0aCB0aGlzLg0KPkF0IGxlYXN0IHRoaXMgZ2l2ZXMgdXMgYSBsb2dpYyB0byBm b2xsb3cuDQo+DQo+QW5kIGRvZXMgdHJhY2UgcG9pbnQgYW5kIGZhc3QgcGF0aCB0cmFjZSBwb2lu dHMgbmVlZHMgdG8gYmUgaW4gc2VwYXJhdGUNCj5oZWFkZXIgZmlsZXM/DQoNCkkgZG8gbm90IHRo aW5rIHNlcGFyYXRlIGhlYWRlciBmaWxlcyBpcyBhIHJlcXVpcmVtZW50LCBidXQgaXQgaXMgZWFz eSAgdG8gc2VncmVnYXRlIA0Kc2xvd3BhdGgvZmFzdHBhdGggaWYgdGhleSBhcmUgaW4gc2VwYXJh dGUgZmlsZXMuIFdoYXQgZG8geW91IHRoaW5rID8NCj5DYW4geW91IHBsZWFzZSBwdXQgZmlyc3Qg Z3JvdXAgaW50byBhIGhlYWRlciBhbiBleHBvc2UgaXQgdG8gdGhlIHVzZXIsIHJlc3QgKGFzIGEN Cj5taXh0dXJlKSB0byBhbm90aGVyIGhlYWRlciBhbmQga2VlcCBpdCBpbnRlcm5hbCB0byBldGhk ZXY/DQpPay4NCj4NCj5UaGFua3MuDQo+DQo+PiBJIHRoaW5rIGl0IHdhcyBkaXNjdXNzZWQgaW4g dGVjaCBib2FyZCBtZWV0aW5nIG9uIDIwMjItMTEtMzAgdGhhdCB0aGUNCj4+IGZ1bmN0aW9ucyBm b3Igd2hpY2ggdGhlIHNsb3dwYXRoIG9yIGZhc3RwYXRoIGRpc3RpbmN0aW9uIGlzIG5vdCBjbGVh ciwgdGhleQ0KPnNob3VsZCBiZSBmYXN0cGF0aCB0cmFjZXBvaW50cy4NCj4+DQo+Pj4NCj4+PiAz KSBSZXN0IGFyZSByZWd1bGFyIHRyYWNlIHBvaW50cywgUlRFX1RSQUNFX1BPSU5ULg0KPj4+DQo+ Pj4NCj4+PiBJdGVtICgyKSByZXF1aXJlcyBzb21lIGFuYWx5c2lzIGFuZCB3aGVuZXZlciB5b3Ug Zm91bmQgb25lIG9mIHRoZW0NCj4+PiBwbGVhc2UgY29tbWVudCB0aGUgcmVhc29uaW5nIGluIHRo ZSBjb2RlIHdoZXJlIHRyYWNlIHBvaW50IGlzIGRlZmluZWQuDQo+Pg0KDQo=