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 AFD1A45AFE; Thu, 10 Oct 2024 09:24:23 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 73D78402D9; Thu, 10 Oct 2024 09:24:23 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id A723A402CD for ; Thu, 10 Oct 2024 09:24:21 +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 49A1MqLi009605; Thu, 10 Oct 2024 00:24:18 -0700 Received: from nam04-bn8-obe.outbound.protection.outlook.com (mail-bn8nam04lp2040.outbound.protection.outlook.com [104.47.74.40]) by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 4264cj8n9p-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Oct 2024 00:24:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=okZcNGZ/a4d7HOhYLJIyBPXT/BmG9wxQO52fJwk0k58U1dgNNMTSzfJt2BSIEaqnZnLcJBRegRy9kqwmAi/RLfZc/CPoP15xeGfpKnWuDug7bOKL0kNpFMDOsBiTpoK3/EsWzJUgpTK9YHeljasU0qyJVXC/8UNQVOZwUR/WxpuajahMHLQT0krtDN5JAGe5y0ThRPuiuof8ib35UScU+KnzuS54G0oxFLd5IYSIdUxf4FklqbyxZYBuNOgilHg+imWdgtKoeKZszKKvGFKbL7whbWvYNkpQk6vkvu6Iug+GLPgGmrZSmWkDHio4EG6sXKb1Gh7vQLUo2rfB7R2xVg== 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=4d5eLb6pdX1MoCqKAiMCvR2QygDF1eLkPNBdRRE/+FQ=; b=oxk4dsJUZhCvIR++5YVpWiZpPpBdygiwCsqd2nl3I18/eHLf2SyykAOUoi1lBI710h0R2B/FCorsLXQqbY5PqKPRGnHYG9godfrQggICs1hnabbXGxa0aXCBqiGVM+x5IRTAA4rTp5Wmn1jHNJ7bO/PvWW85xuOosX67mLH5GRht6xH/IELPM98HtaDPxOpRlereuvJWIHecHT+us56elwqAqJAPst0cTQwWYAO3oJltQbmqmCBSiZy/bLQECj3xYlw+pN/nkTaAUey4gkgdMSZNu0oLx4cb2E3IWVn+tA9Sm8OWy+zRqzKQggTUU7ff71uR2N87yla3hL/RDuIlNA== 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=4d5eLb6pdX1MoCqKAiMCvR2QygDF1eLkPNBdRRE/+FQ=; b=gh/+7F8dUUBMLBTgqqfr5o7YQfGXj61a3VlSeGl9pPcR1rw2uCs2+2m7yBApkM/ZUHSh9TE5XSNxlRpjSYWgwzOZuelWArdVJ9xUzHMqzV25flNTtwFOIBigzJ2lsHbyrEH7WuDgBvgAnAlaiyT424Y2Y6eeH/wOGSF2Rq1iAKQ= Received: from DM4PR18MB4368.namprd18.prod.outlook.com (2603:10b6:5:39d::6) by CH3PR18MB5572.namprd18.prod.outlook.com (2603:10b6:610:1a7::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8048.16; Thu, 10 Oct 2024 07:24:15 +0000 Received: from DM4PR18MB4368.namprd18.prod.outlook.com ([fe80::1679:98:2091:7e98]) by DM4PR18MB4368.namprd18.prod.outlook.com ([fe80::1679:98:2091:7e98%7]) with mapi id 15.20.8048.013; Thu, 10 Oct 2024 07:24:15 +0000 From: Tomasz Duszynski To: Stephen Hemminger , =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= CC: Jerin Jacob , Sunil Kumar Kori , Tyler Retzlaff , "Ruifeng.Wang@arm.com" , "bruce.richardson@intel.com" , "david.marchand@redhat.com" , "dev@dpdk.org" , "konstantin.v.ananyev@yandex.ru" , "mattias.ronnblom@ericsson.com" , "thomas@monjalon.net" , "zhoumin@loongson.cn" Subject: RE: [EXTERNAL] Re: [PATCH v13 4/4] eal: add PMU support to tracing library Thread-Topic: [EXTERNAL] Re: [PATCH v13 4/4] eal: add PMU support to tracing library Thread-Index: AQHbGj2vQ2yL4Ou0nEK8TEfuuoVQ/rJ+XwcAgABVwgCAANhT4A== Date: Thu, 10 Oct 2024 07:24:15 +0000 Message-ID: References: <20240927220630.1802971-1-tduszynski@marvell.com> <20241009112308.2973903-1-tduszynski@marvell.com> <20241009112308.2973903-5-tduszynski@marvell.com> <98CBD80474FA8B44BF855DF32C47DC35E9F7A8@smartserver.smartshare.dk> <20241009105658.18926a17@hermes.local> In-Reply-To: <20241009105658.18926a17@hermes.local> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM4PR18MB4368:EE_|CH3PR18MB5572:EE_ x-ms-office365-filtering-correlation-id: 03ee5e66-82f2-410e-c3db-08dce8fc8bd3 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|7416014|1800799024|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?UHY0RERUaEtQdmJXTThuaGRXNTJMdzZ6S3pWcmZidXd2emd4MGViWkdMYzFr?= =?utf-8?B?cGp6eEJVa05xdnZVb1lzYTRIZVdIQ2ZDRHhRRFRnZUVVUGpGQkR0YUcvN1VI?= =?utf-8?B?Qm5TUWNFdDAvZEIzSU01cUN3NVNGQW9zL0h0MU0xYms3OHI2K0ZxTENEbU1q?= =?utf-8?B?ajF5dXJZU0IyN0FvTThydWNvWHAzVWFRTTgrSVMwNVZMWDhBejhnejVVc0d4?= =?utf-8?B?UDFxYVBRNS9DNUdaNUpzQ3NJSmZjQkZvbFVwSUtzR2J5YnY1S1FmNm9zZWFn?= =?utf-8?B?d1RIemtKdHhIU0dJYTA0MVVrZFBZRVExcFN0VzRxaUdKckszalRrb1gxU1dM?= =?utf-8?B?VDA0aHhqeWJiT05EQVVuU25FcjNuVXU5M0NnNENSVWpMWnF3aEZTcGd0YkV6?= =?utf-8?B?aC9GUzVDTDJHRFJKbUEwd0czNEdVMlVYNC9OTXRZaWNLRGRsWTRHOExrNFJ5?= =?utf-8?B?bTdPalUrSHZ0Um5OZE9pbm9LbzBTNThyc3NwTGpRdGtMR3gxMEZBMFpBdVNH?= =?utf-8?B?d21SVm4rSndBSUhhRDRVcW9xdDZiaCs0blg0ZUF5SUs1V1pJd0JBYWFWVERK?= =?utf-8?B?UlRDNG1NR1hHUHZibkNkc2tpRVRKYWxQKzRFR2JvVzVwR25sRFVFQlk4RXVJ?= =?utf-8?B?UXJGVW1BS2JJOXp3WkdvTGNUZGZjWVd6RWYwVEN6QTM1S0g5eExLL1d1K1cv?= =?utf-8?B?aW1Ya2d6SmQ2RE04OGRuRktwR1VacDVqMGFCcHUzRlZuMVFrSk9OS2o2NXlL?= =?utf-8?B?YTdCNHl0RmxIeTMyYXhsQXJsNzFVTTBLZUVIOWYvSUtxOHcyL3FzblJndldC?= =?utf-8?B?NUdLMEZoeXhaK3MzN1k0Z2g4MUM2c05DV2V2cDRwalpxbGJmcTVxcjdzN2E4?= =?utf-8?B?VTU5YjUrdE9XSzFGejl6aWtrV1VTY1B5SE1zQjY4S3ExTGc1bCs3LzY2QVYy?= =?utf-8?B?cjJOa2Ewb3Z2U1hFTktyWVl3YmFvK3ZaQldReE8xSVpTcU1aODlPYTRyRjVD?= =?utf-8?B?QTc5dnZRRVpvK3lnRVdraTdINzFJcUlteGFuT2J0R3dPWUpERmMwa0E3MEQ0?= =?utf-8?B?WmUwQms3d2x4cUMzNlFzRU8wU3puYnJnODFoTGl1MmpPdWxTaHFtQ0xKcXlZ?= =?utf-8?B?UGZUc1h6SFJYcXpNc1FQcnI4NUxMQ0EweFg2c1BQTmNLL1V2d2h0YWd1L3lx?= =?utf-8?B?RS9WYjJBUGVUV0hiVDBFNURxVDJkWW9kcHl1M1FGaUIzSmlvdWtuMTQyc1A2?= =?utf-8?B?TE4xb1hRa3VqS2RPd2thd211M2JvbWUwRUg0Szc5WUJ0R1crekhyNkY5Y290?= =?utf-8?B?WkV6dXBheHphb0U2aktCNzEvT3VqKytDQThDMEdWc2xGc3hsVWN3Um16MGFk?= =?utf-8?B?V2lUdkhHak9oc0VVOHBDRmZwckgxR0RreU5yWDlRNStzVGRXSUV0WUVzRi9l?= =?utf-8?B?SzBIb3R1UHprVjZtNWJ0RmhRSk5XNFUxY2I2Y0VWZmpzUWVlRlZGOHpRNmZh?= =?utf-8?B?Slp3cTc3Q1pJTHhqS09QVk5mK1ZJV1pNR0JzMnRKdWdNT0dtNElLSjBuc05D?= =?utf-8?B?ckZVUkZUMzhDQmo5bXFEc0tMU1RUWFBKTWhieXJYb2puUTNXdWlsOWk3SGZ0?= =?utf-8?B?NFAybHV5UytWT0svSkZSRUIvS0RRWmRKTjNiTkdQQVY3cWREcDFmQVF1QW1j?= =?utf-8?B?L0I5dGViWnNUU3hnYWw2MWRYbUJuZGFyNmtycnltaURQTVc4KzRUTGNRPT0=?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR18MB4368.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(7416014)(1800799024)(38070700018); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?K0UxZVpRZ1VETnNxcHRVejc1amx4clpCS3VVd2RtSDZPb3MrL0tYUmtuN2JJ?= =?utf-8?B?NDFzQUhXNFBnaEdTaUg0MVlxS2dJMU9oZks4MWhhcDBiQWYzUE5RM3hTcDY3?= =?utf-8?B?RTdqaGZPWElJUVBYa3FvVmpTZm5sNTdvV2JmSGw1cnkxbHpONEhJbTlocjdY?= =?utf-8?B?TnV5Y3NvOUM3bzNvYkwzME9TYUVoUkcwb0FuWWM5UFI1Qm5HZVBRR1FjT3Bm?= =?utf-8?B?ZGdhT3ZwY1dPQXhQZzZkRTdwNWV2enNESFBlc01tKytmVkwxOWllV2FQd0Fj?= =?utf-8?B?dkt4QTFLR2VVYWIxVnpNek1MTUpwMHFqUVlQZUM3alRmUklhQUU5alpxMUIy?= =?utf-8?B?M2tQMEVIdlBUQ3crYWVaaFZsT0lWM0J4RmJOL0t0ai92UHM0d0F2RjAwR01V?= =?utf-8?B?U1JWN0dsb1dET3JxVzExcG4wVUs5VHU4Z3hNQ1RsQ3BpUUxTUTRhKy9pSVNi?= =?utf-8?B?dTluQlBuVmszOWVWWGlqcE5FWUpST2U3SjNzcktjVjNZSS9BU05aQ3lwY2I4?= =?utf-8?B?RlJaL2dhYzVJdlUzV0RTUmZLanVQQWh1VmhZV29jbGVyY1pMTU01N1VBSW94?= =?utf-8?B?SGg5YnRFM1pKRjhGbUtOTkQydVN6K2dQemFyOXZBS2VSUjQ4UWozMTNORVJR?= =?utf-8?B?c2I4RjBaKzhZcEpReng5ZTkvQzdYMk1QMnN1ekZ5NGN3RFBZNUNnemZCTGJ1?= =?utf-8?B?MW5LbmxWNlIrK04vRGxFd1NqeU1GcEpCZmY3Sjhpdjh4OUJlVStCaWg4NnJs?= =?utf-8?B?UDFEQVdMamk1WnR2M1RaRWUvUHVsNm5ta0tmeS9qaGQ0ZFlkNFc0S2k3bGNY?= =?utf-8?B?Q0k5ODNGeTdpNDlQOFBtRjZ5NTZJM1czQWt4M05maVdrc1FZUVQ5OW10cHh1?= =?utf-8?B?UjJOS2JISytjUlY3MGM1UTRyWlVSeit0UnBWd1BLVDlJdDgzNUNaczl5K0dI?= =?utf-8?B?WHdYaERGL2UwVDZRbXJVK3BFSG1uVEh6WDFPMS8xK1M1OTI5MUg1c3dvZExY?= =?utf-8?B?TFlNQVNFbEZObnN3K3Z0NERnN1ZLbVM5bzRnZ1JoVFBsdFdyNHhROTN4TytW?= =?utf-8?B?M0EzMlBOL0h2dlo4Q2dFSzBodDcwN0ZTejUyOWZUamRUQy9GMXF0Q3ZjcEM5?= =?utf-8?B?T1NyUEZQQ2JIVUltMGRrRmtEZWxvY1Z2cVdMUkRsZW0rTEVjdUp5QmpxNmdI?= =?utf-8?B?VHllNlhIM1FXZ1hhNkNWOE5mUHFsamZ1U0l6Nkx5NUpvSVFnMW1lVXdIMDZZ?= =?utf-8?B?c0NMLzVrZ0JtR1dITWtPM2pPM2tUN3RsRTZrZ25FT2NrcS84bXA2TjJqTTMv?= =?utf-8?B?NlRTbm9lckhhMEZMWXp1aWxaOHFNRVo2WW1pelRBSlN2cTV3Y05ySjBVSUkv?= =?utf-8?B?ZlV0Rjh3Z1ozaGVWWmRCZTdldGlrZkhGTWFid3Vta0ZFTHdTZkErNEZTQjAz?= =?utf-8?B?MmtKZDh5M1ZjK3F6dFdnNUQ1ekVFNEplWTRKaVM4d2FtRW82bUVlcG1QejlJ?= =?utf-8?B?SmtpeVhVZ0ZhSGFRdnE4Z1RObHhUSWF0QTY3TWpFN0gzMWlPVHZBZ0lBcjBp?= =?utf-8?B?Zzgxd3dlSndpN3JYaUoxNTJNaXd3NnNyYlRpVGpDOTNSQkxMK3JQMzhRendl?= =?utf-8?B?SG9JZytLWkw0SjUrYVFJdEJaV1VBSEJHZE9tMmVqMllIQlo4ZlFkLzBtcVJF?= =?utf-8?B?YUlqb2lGeVJMZUdwb0JFZzM1SEVqa3Q4Y3JPMXVXeGtMUWxuSlBucXIzSFE5?= =?utf-8?B?SzBldWZtTCt5NkdMT0w2d1lUeG9uWThXYnJLR05lSGJBRVJSZlZMeFRkNVp5?= =?utf-8?B?MkhYbkF5Q3lKRmthSk9aSTZ2ZlVSVTVxREVkbmRCRzB5VzJNY3Y5TEgxb2Qy?= =?utf-8?B?aGtsc0VuWi9ZWndwYk1MK2dudjVnaVFGTVg2aVdWd0RFdHZNbzlmdWt4ZDdV?= =?utf-8?B?R0Fnd1JFdHVJQUNJL2tScW5uTTd3bHdkd3FpWFVEQ3pUUDg2N2lyT0Vnd3p1?= =?utf-8?B?cE91UVNzbU1CaU82R1NFN1dOY0s0eDFSL205bkk4bkpFWitSK0owcU9zMWFK?= =?utf-8?B?b0QvMHN2UHNoNjdHVE4vVGZxM0E2M0RaaGNCdjF1OHNMYnp3aVhudzVnMlVt?= =?utf-8?Q?3LIEvzBTQBPBlroFdAXtApY8j?= 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: DM4PR18MB4368.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 03ee5e66-82f2-410e-c3db-08dce8fc8bd3 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Oct 2024 07:24:15.4540 (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: 3JV+TR9kPRABsJQ6ljFCi0Knp+RBdgs/8v5D9KeCprqj8YAdtm+UxvF0vuFre7y2BHZ8SayJc1zz4PMaizsB4g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR18MB5572 X-Proofpoint-GUID: -jiUAf-UVaX4qtFAQmYFi1VeEyJsf1IF X-Proofpoint-ORIG-GUID: -jiUAf-UVaX4qtFAQmYFi1VeEyJsf1IF 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 Pk9uIFdlZCwgOSBPY3QgMjAyNCAxNDo1MDowMiArMDIwMA0KPk1vcnRlbiBCcsO4cnVwIDxtYkBz bWFydHNoYXJlc3lzdGVtcy5jb20+IHdyb3RlOg0KPg0KPj4gPiBGcm9tOiBUb21hc3ogRHVzenlu c2tpIFttYWlsdG86dGR1c3p5bnNraUBtYXJ2ZWxsLmNvbV0NCj4+ID4gU2VudDogV2VkbmVzZGF5 LCA5IE9jdG9iZXIgMjAyNCAxMy4yMw0KPj4gPg0KPj4gPiArUE1VIHRyYWNlcG9pbnQNCj4+ID4g Ky0tLS0tLS0tLS0tLS0tDQo+PiA+ICsNCj4+ID4gK1BlcmZvcm1hbmNlIG1vbml0b3JpbmcgdW5p dCAoUE1VKSBldmVudCB2YWx1ZXMgY2FuIGJlIHJlYWQgZnJvbQ0KPj4gPiBoYXJkd2FyZQ0KPj4g PiArcmVnaXN0ZXJzIHVzaW5nIHByZWRlZmluZWQgYGBydGVfcG11X3JlYWRgYCB0cmFjZXBvaW50 Lg0KPj4gPiArDQo+PiA+ICtUcmFjaW5nIGlzIGVuYWJsZWQgdmlhIGBgLS10cmFjZWBgIEVBTCBv cHRpb24gYnkgcGFzc2luZyBib3RoDQo+PiA+IGV4cHJlc3Npb24NCj4+ID4gK21hdGNoaW5nIFBN VSB0cmFjZXBvaW50IG5hbWUgaS5lIGBgbGliLmVhbC5wbXUucmVhZGBgIGFuZA0KPj4gPiArZXhw cmVzc2lvbiBgYGU9ZXYxWyxldjIsLi4uXWBgIG1hdGNoaW5nIHBhcnRpY3VsYXIgZXZlbnRzOjoN Cj4+ID4gKw0KPj4gPiArICAgIC0tdHJhY2U9Jy4qcG11LnJlYWRcfGU9Y3B1X2N5Y2xlcyxsMWRf Y2FjaGUnDQo+PiA+ICsNCj4+ID4gK0V2ZW50IG5hbWVzIGFyZSBhdmFpbGFibGUgdW5kZXINCj4+ ID4gYGAvc3lzL2J1cy9ldmVudF9zb3VyY2UvZGV2aWNlcy9QTVUvZXZlbnRzYGANCj4+ID4gK2Rp cmVjdG9yeSwgd2hlcmUgYGBQTVVgYCBpcyBhIHBsYWNlaG9sZGVyIGZvciBlaXRoZXIgYSBgYGNw dWBgIG9yIGENCj4+ID4gZGlyZWN0b3J5DQo+PiA+ICtjb250YWluaW5nIGBgY3B1c2BgLg0KPj4g PiArDQo+PiA+ICtJbiBjb250cmFyeSB0byBvdGhlciB0cmFjZXBvaW50cyB0aGlzIGRvZXMgbm90 IG5lZWQgYW55IGV4dHJhDQo+PiA+IHZhcmlhYmxlcw0KPj4gPiArYWRkZWQgdG8gc291cmNlIGZp bGVzLiBJbnN0ZWFkLCBjYWxsZXIgcGFzc2VzIGluZGV4IHdoaWNoIGZvbGxvd3MNCj4+ID4gK3Ro ZQ0KPj4gPiBvcmRlciBvZg0KPj4gPiArZXZlbnRzIHNwZWNpZmllZCB2aWEgYGAtLXRyYWNlYGAg cGFyYW1ldGVyLiBJbiB0aGUgZm9sbG93aW5nDQo+PiA+ICtleGFtcGxlDQo+PiA+IGluZGV4IGBg MGBgDQo+PiA+ICtjb3JyZXNwb25kcyB0byBgYGNwdV9jeWNsY2VzYGAgd2hpbGUgaW5kZXggYGAx YGAgY29ycmVzcG9uZHMgdG8NCj4+ID4gYGBsMWRfY2FjaGVgYC4NCj4+ID4gKw0KPj4gPiArLi4g Y29kZS1ibG9jazo6IGMNCj4+ID4gKw0KPj4gPiArIC4uLg0KPj4gPiArIHJ0ZV9lYWxfdHJhY2Vf cG11X3JlYWQoMCk7DQo+PiA+ICsgcnRlX2VhbF90cmFjZV9wbXVfcmVhZCgxKTsNCj4+ID4gKyAu Li4NCj4+ID4gKw0KPj4gPiArUE1VIHRyYWNpbmcgc3VwcG9ydCBtdXN0IGJlIGV4cGxpY2l0bHkg ZW5hYmxlZCB1c2luZyB0aGUNCj4+ID4gYGBlbmFibGVfdHJhY2VfZnBgYA0KPj4gPiArb3B0aW9u IGZvciBtZXNvbiBidWlsZC4NCj4+ID4gKw0KPj4NCj4+DQo+PiA+ICtpbnQNCj4+ID4gK3J0ZV9w bXVfYWRkX2V2ZW50c19ieV9wYXR0ZXJuKGNvbnN0IGNoYXIgKnBhdHRlcm4pIHsNCj4+ID4gKwly ZWdtYXRjaF90IHJtYXRjaDsNCj4+ID4gKwljaGFyIGJ1ZltCVUZTSVpdOw0KPj4gPiArCXVuc2ln bmVkIGludCBudW07DQo+PiA+ICsJcmVnZXhfdCByZWc7DQo+PiA+ICsJaW50IHJldDsNCj4+ID4g Kw0KPj4gPiArCS8qIGV2ZW50cyBhcmUgbWF0Y2hlZCBhZ2FpbnN0IG9jY3VycmVuY2VzIG9mIGU9 ZXYxWyxldjIsLi5dDQo+PiA+IHBhdHRlcm4gKi8NCj4+ID4gKwlyZXQgPSByZWdjb21wKCZyZWcs ICJlPShbX1s6YWxudW06XS1dLD8pKyIsIFJFR19FWFRFTkRFRCk7DQo+PiA+ICsJaWYgKHJldCkN Cj4+ID4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+PiA+ICsNCj4+ID4gKwlmb3IgKDs7KSB7DQo+PiA+ ICsJCWlmIChyZWdleGVjKCZyZWcsIHBhdHRlcm4sIDEsICZybWF0Y2gsIDApKQ0KPj4gPiArCQkJ YnJlYWs7DQo+PiA+ICsNCj4+ID4gKwkJbnVtID0gcm1hdGNoLnJtX2VvIC0gcm1hdGNoLnJtX3Nv Ow0KPj4gPiArCQlpZiAobnVtID4gc2l6ZW9mKGJ1ZikpDQo+PiA+ICsJCQludW0gPSBzaXplb2Yo YnVmKTsNCj4+ID4gKw0KPj4gPiArCQkvKiBza2lwIGU9IHBhdHRlcm4gcHJlZml4ICovDQo+PiA+ ICsJCW1lbWNweShidWYsIHBhdHRlcm4gKyBybWF0Y2gucm1fc28gKyAyLCBudW0gLSAyKTsNCj4+ ID4gKwkJYnVmW251bSAtIDJdID0gJ1wwJzsNCj4+ID4gKwkJcmV0ID0gYWRkX2V2ZW50cyhidWYp Ow0KPj4gPiArCQlpZiAocmV0KQ0KPj4gPiArCQkJYnJlYWs7DQo+PiA+ICsNCj4+ID4gKwkJcGF0 dGVybiArPSBybWF0Y2gucm1fZW87DQo+PiA+ICsJfQ0KPj4gPiArDQo+PiA+ICsJcmVnZnJlZSgm cmVnKTsNCj4+ID4gKw0KPj4gPiArCXJldHVybiByZXQ7DQo+PiA+ICt9DQo+Pg0KPj4gVGhpcyAt LXRyYWNlIHBhcmFtZXRlciB0YWtlcyBhIHJlZ2V4LCBidXQgdGhlIC0tbG9nLWxldmVsIHBhcmFt ZXRlciB0YWtlcyBhIGdsb2JiaW5nIHBhdHRlcm4gKGFuZA0KPmEgcmVnZXgsIGZvciBiYWNrd2Fy ZHMgY29tcGF0aWJpbGl0eSwgSSBhc3N1bWUpLg0KPj4NCj4+IFRoaXMgLS10cmFjZSBwYXJhbWV0 ZXIgc2hvdWxkIGJlaGF2ZSBsaWtlIHRoZSAtLWxvZy1sZXZlbCBwYXJhbWV0ZXIsIG9yIGlmIG5v dCBhYmxlIHRvIHBhcnNlDQo+Ym90aCwgdXNlIGdsb2JiaW5nIHBhdHRlcm4sIG5vdCByZWdleC4N Cj4+DQo+PiBDaGVjayB0aGUgLS10cmFjZSBwYXJhbWV0ZXIgcGFyc2VyIGhlcmU6DQo+PiBodHRw czovL3VybGRlZmVuc2UucHJvb2Zwb2ludC5jb20vdjIvdXJsP3U9aHR0cHMtM0FfX2VsaXhpci5i b290bGluLmNvDQo+PiBtX2RwZGtfdjI0LjA3X3NvdXJjZV9saWJfZWFsX2NvbW1vbl9lYWwtNUZj b21tb24tNUZvcHRpb25zLmMtMjNMMTQwOQ0KDQpKdXN0IGluIGNhc2UsIEknbGwgc3RyZXNzIHRo YXQgLS10cmFjZSBwYXJhbWV0ZXIgaXMgaW5oZXJpdGVkIGZyb20gdHJhY2luZyBsaWJyYXJ5IGFu ZCB0aGF0IGl0c2VsZiB0YWtlcyBhIHJlZ2V4LiANCkNoZWNrZWQgYm90aCBkb2N1bWVudGF0aW9u IGFuZCBzb3VyY2VzIGZvciBhbnkgZGlzY3JlcGFuY2llcyBidXQgdGhlcmUgYXJlIG5vbmUuIA0K DQpUaGF0IG1lYW5zIHRoZXJlIGhhcyBuZXZlciBiZWVuIGFueSBjb21wYXRpYmlsaXR5IHdpdGgg LS1sb2ctbGV2ZWwgYmVoYXZpb3IgYW5kIEkgZG9uJ3QgdGhpbmsgdGhhdCBwYXRjaA0Kc2hvdWxk IHN0cmFpZ2h0IHRoaW5ncyBvdXQuDQoNCk1heWJlIGFkZHJlc3NpbmcgdGhhdCBzZXBhcmF0ZWx5 IHdvdWxkIGJlIG1vcmUgc2Vuc2libGUuIA0KDQo+DQo+VGhlIGxvZyBsZXZlbCBoYXMgdHdvIEFQ SSdzIG9uZSB0YWtlcyByZWdleCBhbmQgb25lIHRha2VzIGZpbGUgZ2xvYiBwYXR0ZXJuLg0KPlRo ZSBvcmlnaW5hbCBvbmUgd2FzIHRoZSByZWdleCwgYnV0IGV2ZXJ5Ym9keSAoaW5jbHVkaW5nIHRo ZSBkb2N1bWVudGF0aW9uKSBnb3QgcmVnZXggd3Jvbmcgd2hlbg0KPnRoZSBsb2cgbGV2ZWwgZm9y bWF0IGhhZCBwZXJpb2RzIGluIGl0LiBUaGUgZ2xvYiBtYXRjaCB3YXMgbW9yZSBpbnR1aXRpdmUs IGFuZCB0aGF0IGlzIHdoYXQgaXMNCj5yZWNvbW1lbmRlZC4NCj4NCg0KVGhhbmtzIGZvciBwcm92 aWRpbmcgbW9yZSBjb250ZXh0LiANCg0KPkZvciB0cmFjaW5nIGlmIHlvdSB3YW50IHRvIHVzZSBy ZWdleCB0aGVuIGZ1bmN0aW9uIHNob3VsZCBiZSBuYW1lZCB3aXRoIF9yZWdleHAoIEZvciBleHRy YSBib251cw0KPnBvaW50cywgaGF2aW5nIGJvdGggYSByZWdleCBhbmQgZ2xvYiB2ZXJzaW9uICh3 aXRoIHBhdHRlcm4pIHdvdWxkIGJlIGdyZWF0Lg0KDQpBZGRpbmcgZXh0cmEgc3VmZml4IGlzIGZp bmUuIGdsb2IgbWF0Y2ggbGFja3Mgc29tZSBzeW50YXggdXNlZCBmb3Igc3BlY2lmeWluZyBldmVu dHMgdG8gcmVhZCwgd2hpY2ggaXMgXHwgKE9SKS4gQ2hlY2tlZCB0aGUgbGluayBmcm9tIE1vcnRl bg0KYW5kIHNlZW1zIHJlZ2V4IG1hdGNoaW5nIGlzIHR1cm5lZCBvbiB3aGVuZXZlciBsb2ctbGV2 ZWwgY29udGFpbnMgYSBjb21hLiBVbmZvcnR1bmF0ZWx5IEkgdHJlYXQgY29tYSBhcyBldmVudCBk ZWxpbWl0ZXIgc28gcHJlc3VtYWJseSANCnN5bnRheCB3b3VsZCBuZWVkIHRvIGJlIGNoYW5nZWQu IA0KDQpNYXliZSBzb21ldGhpbmcgbGlrZSAnLipwbXUucmVhZDpjcHVfY3ljbGVzO2wxZF9jYWNo ZSwqc29tZV9vdGhlcl91bnJlbGF0ZWQgdHAqJyB3b3VsZCBiZSBtb3JlIGFwcHJvcHJpYXRlIGlm IG1ha2luZyAtLXRyYWNlIHNpbWlsYXIgdG8gLS1sb2ctbGV2ZWwgaXMgdGhlIHdheSB0byBnby4g DQo=