From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from MW6PR02CU001.outbound.protection.outlook.com (mail-westus2azon11012069.outbound.protection.outlook.com [52.101.48.69]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 991ED3370E8; Thu, 27 Nov 2025 15:41:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.48.69 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764258066; cv=fail; b=s6kZ+x1OigCUbHtkPFLcADs052qJEF3n8p/Zlcus7nuUp2TYi8mfJT65FS46mYgEmoul1NIyW0eG1GMyKvUahpxyVE0fRlD+nN6crFZQb8jUxHBJ4CPCVGkn2Cf1r4heUJNMznYi5/wUgT9xSfMXbDmit05aL+FQfdHZhzHDgmk= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764258066; c=relaxed/simple; bh=xHKIvBfK8x3gmP90QNBCGEFzUeAx4uX8tpQJn+osLYw=; h=Message-ID:Date:Subject:To:Cc:References:From:In-Reply-To: Content-Type:MIME-Version; b=uDobvCfHfzv6qOG+nWPcqByQvt5YiBVWEJ+CKlilIHbOy5FViGGxgw1+U8tSl+C1CHIy7eG7vtWPKvoPO1cmhwqaRf24EgMbMAjgjgv5uGmB8QdmTtZXh0JlNWVGNnJX5tKwyZzCpHrUjygVho7scTO0FAODhASOmfBzCDy6gdA= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=QVkjGhfb; arc=fail smtp.client-ip=52.101.48.69 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="QVkjGhfb" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=sUmyHwsaox9OAqpw9GaQiABiBEzaoXRhefebFMrRle2/stY+ayHaLb1d1GBL3KQ3IhXp/FedR47q63caMfPjqdGIrcaf0itGQur3LUuuz5qYgWXXbVwUWJMjbrG6sJFWnLII0OnkeIVFyo2R15RsZn/PxShpvrsnnAr/p6b3l6aA6HJfYEVKh6pvB6ytpEQVkVq/6xVpqiMU6HB1GuG9vwAFyYWXi0ZfVM/MPiBZIS9ZyXfEy7rSdl44uX+DhMTMZqIFlgtIucKAn8qNd1WuFmKG/ouE9yRZcDM85d8gA/fm6E58pX32gJsDRx+RVE2dQq37VpviaT+kyEm0DPJbiQ== 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=xHKIvBfK8x3gmP90QNBCGEFzUeAx4uX8tpQJn+osLYw=; b=oDPcEV4QDjtJLb6PjxAmZPOK+fYEs6vcP/1XZYUzIGMjB85oQHI0/gSZR4KvVXs3Tf536Wcm56RDr5nZ0ltPfHUbDktoHWbwCxzvL/psRXgFvQ4tn2KK/G9xHX3WYCvVLVauCENEXlLOmPfR7FgIKg/9tjIfWdQ9ndseI6hnmMUZciNjWoVi3TgE4m1YH1yKWUYZRhFQ0Aw5BTK0QJBHjtptQWBihMq9AQiz5Whyls26PO6e4FSzq7rcA08rnArFvqrwzeZgwux4iEUuuRlHXY0mK1YKmfPmW5qNX84mb0G5ZZTbfl+pjoVWYZViQbBf9EmSQc0q1wP3IMtGenT6kQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xHKIvBfK8x3gmP90QNBCGEFzUeAx4uX8tpQJn+osLYw=; b=QVkjGhfbvm7q4ZUacrcjs6HbSL91iCYuXQcws9yO81qLG0cvOIy8AUy3aHJmoEhXS4IWlI3t3loMUVZknJ8ImCMr++7g02/NiwGpZXIy+khb3FL3P0YI+LTCFVi7f/+mRHohm1Qtt+izdi8efWMBrQaO5f9nYYCYAzjLa4Hsu9Y= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from PH7PR12MB5685.namprd12.prod.outlook.com (2603:10b6:510:13c::22) by DM4PR12MB6012.namprd12.prod.outlook.com (2603:10b6:8:6c::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.14; Thu, 27 Nov 2025 15:41:01 +0000 Received: from PH7PR12MB5685.namprd12.prod.outlook.com ([fe80::46fb:96f2:7667:7ca5]) by PH7PR12MB5685.namprd12.prod.outlook.com ([fe80::46fb:96f2:7667:7ca5%4]) with mapi id 15.20.9366.012; Thu, 27 Nov 2025 15:41:01 +0000 Message-ID: Date: Thu, 27 Nov 2025 16:40:55 +0100 User-Agent: Mozilla Thunderbird Subject: =?UTF-8?B?UmU6IOetlOWkjTog562U5aSNOiBbRXh0ZXJuYWwgTWFpbF1SZTogW1BB?= =?UTF-8?Q?TCH_v3=5D_dma-buf=3A_add_some_tracepoints_to_debug=2E?= To: =?UTF-8?B?6auY57+U?= , Xiang Gao , "sumit.semwal@linaro.org" , "rostedt@goodmis.org" , "mhiramat@kernel.org" Cc: "linux-media@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" , "mathieu.desnoyers@efficios.com" , "dhowells@redhat.com" , "kuba@kernel.org" , "brauner@kernel.org" , "akpm@linux-foundation.org" , "linux-trace-kernel@vger.kernel.org" References: <20251127004352.376307-1-gxxa03070307@gmail.com> <0f970282-e439-4036-bded-68fb8733d1f0@amd.com> <76293b63568547e98efd7c0644ad7a49@xiaomi.com> Content-Language: en-US From: =?UTF-8?Q?Christian_K=C3=B6nig?= In-Reply-To: <76293b63568547e98efd7c0644ad7a49@xiaomi.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 X-ClientProxiedBy: FR4P281CA0251.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:f5::12) To PH7PR12MB5685.namprd12.prod.outlook.com (2603:10b6:510:13c::22) Precedence: bulk X-Mailing-List: linux-trace-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH7PR12MB5685:EE_|DM4PR12MB6012:EE_ X-MS-Office365-Filtering-Correlation-Id: d9409991-8a57-4c85-e0b6-08de2dcb5d9b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024; X-Microsoft-Antispam-Message-Info: =?utf-8?B?U3prbU93Y0pWQ0twTjYrOUlvT3ppVFBtQ09obU83YURQK3RISDRtV1Y0Zzk1?= =?utf-8?B?Z3NPL1c2Nm4rQlFuTU5QWnpLZS9ZRERacVNnYWUwRFhTdHpzbnR3QXBENGw0?= =?utf-8?B?a3dvU1M4WC9Ubks2VVpnQ3BLMzduUGhsNDZMZWQ2V1gxWVo3RCtzTFFjUFgr?= =?utf-8?B?M3NpY3VPNUFOVkRzY3JIbVliZnBQZFB4NjFvZjRsVmdWaFpOZDl1QWM0L3NI?= =?utf-8?B?Z2xFOVlyRkNVakF1Tnowai9RNDNldEZlNlQwb1BxWkI2Y1J2MkdOaUhnUlpT?= =?utf-8?B?MlZTZzJoazhJdDB3S043SHR4bGVsRUN4N3Vsd3BONkIzeklBK2dYYi9uVUFp?= =?utf-8?B?SHJUQUYzS0pxdmorRWc4aWFrRWpiVnIrRXpLN3NvQUlFMjhZcExKbjlXcGVs?= =?utf-8?B?cEpnYk1pZmFXV0pqYzNsTEh0alRRMzBVcE9PTXFPaWhvM0E0Z29NTi9OWmc5?= =?utf-8?B?c2g3THhwQjFGMThMdm9ycmdtaEJHcmliejcxcDdmZkZwZUlQUjNVd0M5Zis5?= =?utf-8?B?VUFWZHowQ2g1VXpLbytTK2JFeXhxT2JhRnUwMzZmb1FaZ3FuaVZQUitKdmpu?= =?utf-8?B?NlJ4Y0JVQnladTl3cFRsZ1NtN1ZMV0t3QXkwTkREWHYwQng0dG1OK3pSLzFU?= =?utf-8?B?OWJ1eVdQK2IyMmU0YVVRbnBVZjBHamhlcmpEMlRUWUtVVER0SXdPRDh4MzV3?= =?utf-8?B?dU9wekhWTlE0ZFB6b2x6ajcxa1F1K1FINDllRWhEdlYxOTNxays5RTQvUDBz?= =?utf-8?B?V1N5Nm9uU1Y0SUVFWDc4SVF4UVRKaHNZcG0vMXRFTGVoMC9meDhEb1NLd0ZR?= =?utf-8?B?eWhRMERMK3J3T2pkWE51bHdCTUtEV3djVGhhaEJYSXp5ck5oN2FBVURCSlpH?= =?utf-8?B?dUFsZW13SXBuZG1tbWdMK1B3QWxIZHlhM05naERaTm9jRStBc0ZhMmxFMjlW?= =?utf-8?B?Y3lNeERCS05YRzIzU1RGeHVCUmVSWmw1ZEVqUFZVZHI1cjdBK3pMUVo4cldq?= =?utf-8?B?RGFPN3hCbkw5em12ODVpbUdKY1ZCdWhzMmV2WmRFemd5Zjg1Qzh0UFAyenBT?= =?utf-8?B?NEZyd2U4bDcyYmVrRkV5YmFOeE9TNDFKc1RVclRLdTcxZWtlbGh0ZytybFRw?= =?utf-8?B?eTloSEYzTWtqb2lSODR2cXNxdG85M1JzTHlpYk12L2NHNFIvUGM1SmFYdUQv?= =?utf-8?B?NDQvWDBFN2VaZ0NHTW5nOVRRUjRob2dJRnRXeHdST2lRMVphUGFMZ1NyM3kz?= =?utf-8?B?c0pZSkRRcEFuQ21hT3UxL3B3YVdKNE8xemxZbnJwdGkwY1pJV2xHeDhicFF4?= =?utf-8?B?REpSMkVaL0dkdTZQM2VvU1VhUzdyUEFrR3JIdWRVWjJlZm1ZWHRNMmNLeUkw?= =?utf-8?B?Zm9lak5MSmJIcWV0eFNNRGZVSkRDaWxzQUxXZmdNOFhrRlBUWUtXbUd2T1Bx?= =?utf-8?B?Q1g3WU41MklLNHlNTW5LWWhrSHdnYlBmdjB1ZkVHZmd5UW1sQ3lOeUxwMEZV?= =?utf-8?B?SktCQTY4d3JFczJPTXNPTCtZTUlLK3RpMlhxQjZHUkxHUWFndjRJTTRqMDdE?= =?utf-8?B?MmVkeTB6ODUveWdZNFpVWnJoVlFldStsTnc2Yllsa21OUGwvRE9EeG04YVBv?= =?utf-8?B?L2l6dEZ0WTFFWTJDVXU1RGpMdjRMMDJwaVozdDlkbXBlaGNUV2lpUEFDYmlU?= =?utf-8?B?dDdkb05MaVBiV29PZ3huOUFmRmdpYzZHbEwzNEp4Vi8xVXRZYWNwMWRGZEF2?= =?utf-8?B?R0p3ZForSjQ4dld6YWJUcy9tRmdheTdFVkVURnUzdXljall2YkRnZzZNMFlX?= =?utf-8?B?bC83NGtySE1USU9mcXBya3B2ZDU3SGpBMXVTRGRCdU82Uk5tamR2VGJLOHZx?= =?utf-8?B?ZnRZRzRSbkJJM3Ayc3BJaWpLSERzaDBZRnh3dDJiWFpXMlYxWkQvaE9TNEhw?= =?utf-8?Q?YyHP4SXDPl2TM80HYn+gFjbDB5o2leRR?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH7PR12MB5685.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VFR2dXpMWkhUZ1NrQVNRY1dHOUs1dmJyK3RYa2pXQXpycEdEZ09pcEtMRWlM?= =?utf-8?B?VmtNVDhCSm9CSklkbnJPOWt1Uk83bHJpdU9QajF4ZW9OSFl0dXlRTXkzRmU3?= =?utf-8?B?R3czaUlsMGg4S1RNa1Q0T3dOUDNFRGloSDUxNmEyL2N3TlR5NERVWjNROFZ6?= =?utf-8?B?N0RVRE1JeGJuZXVudWRxemFGbjAwYWdweVZCRVhvaUdQeGpiTlNTczE0UU5q?= =?utf-8?B?VEMra0ZLajRKUFFCems0ZHg2M3QycFJDRjQzM2FBSXR0Q1FhemJvVlg3RCtO?= =?utf-8?B?S2hXaTNJY2tBSmhGY1NEdzVaakdrTk9WQ3BNell6WXcvbWZJU0ZLUFBMOTdH?= =?utf-8?B?djg1Zk5CQkZubndYSDhFdy9YVVJZRzJRM1pzUjJEbmt1TkIxbHlZT1laN01u?= =?utf-8?B?a09XUFM4ZWpKN0phdjF6WXNKSUZtVldhRjF6c0plNTVvSVRnRjloaHlrUy9P?= =?utf-8?B?WG94VUVSWnZuK3FBcWdsY0M3NndLRUlRQ2J5WTN0VDMvNXFkZnJUYXhJei9k?= =?utf-8?B?Q1FyK0FBeExzN21nY0pVMnc3LzRnam41eHliVDV0TjZveGZJU2hDbStKKzAx?= =?utf-8?B?Z0N5VHFMKy9YOC9wNFdadG4xOUZPaE9zdzJvMllhUVNuWUJueHVZY0g1cnJo?= =?utf-8?B?bjJZd0YzdUlqWGNJLzk2azc4ZzhrUWl6MS9YV3M3bC9oKzRPWjIvNk0yRWU2?= =?utf-8?B?TnpLYll5dkNWL3lrSmZheWNpR29abFFDR0cvR3ZrLy9VQ3lEOU50WEJvN2RK?= =?utf-8?B?SmNRTHJ3UW5DdlkrVVZGUmh3WlBwRnFXdVZVNkhNZjJBN2pZRExZcERVUUdU?= =?utf-8?B?SEt6M2dsWEo4STR3VXMwN1JPYzBXa2lhWEZZSjk5UVEzQ1B6dTVIWGdSbi9z?= =?utf-8?B?L29udjAzSTNyMWtWc3hCa2RSd05rbWk2U3pVbmg0eGV2NTRnT2wwZjZYVHRi?= =?utf-8?B?VFB0REE1NldYNXE3a09jWUZ2S3h5UGM0V2tNekJjbWUyb1VUK1dxSk4zUGY5?= =?utf-8?B?S0tHckZ3NWM0MjVlT3ZoYllzOUhwbEU4UFVBWUdLUTZDT3YvaE9Ydnl5WjZk?= =?utf-8?B?czJUQzAyZEpPSDFFcS8rVEoyOWlyOFJsQWhjZHZ4M0ZORGZyRWJHTWtzTENR?= =?utf-8?B?L1ZyWSsyQmJ5dkp2ZHdTUm1nSW40VHkzZGJZT05yNjFGVEE1c3NkQlVrdjFl?= =?utf-8?B?WmhqQjQvS2w1cUFQSlVhSWlaeWlNTzhqZmNMTHNIZzVlbDIzcjRWSCttNkt3?= =?utf-8?B?RTExTHNSOEV2eVRYU0pWcU9CN3VWSTlaZ1QzTjFtQThXS29RK1RXZnRWcVlk?= =?utf-8?B?UEoyWDVwMWlxUTkrVmlyeTZnd1dFc0hDS2hlUXZYdFJUczFhdEtvUE9iTjhu?= =?utf-8?B?QjZRWE0zREtkRTZCTkZvTVhCL1hySmVYeVRRQnVLbWNNdkZMTjhqQ2VnN3c0?= =?utf-8?B?ei9vcmhFblQydkxOSDJtVWNVTElPZ1l6cU1JVkE1aXhRMWVYeElSQzBmVW4y?= =?utf-8?B?UDdpZjBwVmpWeWdJVWhmdmVqc2JTeEl4OXVQR3FJa2JHc21oYkJZcDIyYW9l?= =?utf-8?B?TXdOMThJdVN3TkQ5RzV0N2xCRk1seTN6cWhaQWh1ZjUrUHRLSWR6ZjFQaGlG?= =?utf-8?B?T2M3SWUwMkdGa3NFU1ZDUVg4Yld2TXlHTysrYXFDZzJVWWovWlQ4M05Cb2pH?= =?utf-8?B?cEpXSGdqL1Rvcm1jK3hGSTdUR25jWjdTbjkzNnYxSDNTRFI2Z0NqZlRSTGlF?= =?utf-8?B?T0t2L0NaTlNITVEzS0E0MmM1MVlQMUxsN1BsSVhFQTFwZzBnayttcHNnNTNU?= =?utf-8?B?TXhxd215L1lQRVJ5TXNkQlJUcGFNa0R6Vm1NM0U3OHNmSy81cVZjS1ZvLzhU?= =?utf-8?B?YTk2NE9zVEFqc3hLZmdab2FTcTk3WVcvaVB2d2ZxWHFxQkJVc0tmUHlRY0ll?= =?utf-8?B?eU1wb25BTHNNeFc0Q3VycUVqaWhNNGhnNURydjh1T2xRVXJXK3creWVsMHNq?= =?utf-8?B?N2tSRUJOQU1paWQ0anRwOFNjVHArSXpEY2VHSUJYU2F5TTZaTWdiZFB6T3pn?= =?utf-8?B?OU9yVzUraU8wcGhFN3BzOFoyOEw3M2NVODBhVkhMWTZPQTFEODVkemhWWUla?= =?utf-8?Q?iKnecmRcHqEQPGtdaaeVTeTiV?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: d9409991-8a57-4c85-e0b6-08de2dcb5d9b X-MS-Exchange-CrossTenant-AuthSource: PH7PR12MB5685.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2025 15:41:00.8993 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: hn4catDH8fDwFGIfhZod0i0mE9TV9ZbcOiwjBcS0895Fe5PUMNoICjlceWmpbWSH X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6012 T24gMTEvMjcvMjUgMTY6MzUsIOmrmOe/lCB3cm90ZToNCj4+wqBIdWk/IFdoeSB3b3VsZCB5b3Ug YWRkIHRob3NlIHN5bWJvbHMgdG8gYW55IHdoaXRlbGlzdD8NCj4gDQo+IFRoaXMgaXMgdGhlIG1l Y2hhbmlzbSBvZiBhbmRyb2lkIGdraS4gVG8gdXNlIGEgdHJhY2Vwb2ludCBpbiB0aGUgZHJpdmVy IG1vZHVsZSwgdHdvIHBvaW50cyBhcmUgcmVxdWlyZWQgZm9yIGEgc3VjY2Vzc2Z1bCBjb21waWxh dGlvbjoNCj4gMSwgZXhwb3J0IHRyYWNlcGludA0KPiAyLCBhZGQgdHJhY2Vwb2ludCB0byBhbmRy b2lkwqB3aGl0ZWxpc3QuDQo+IA0KPiBCdXQgd2l0aG91dCBleHBvcnRpbmcgdHJhY2Vwb2ludCwg SSBjYW4gYWxzb8KgdXNlIHRyYWNlcG9pbnRfcHJvYmVfcmVnaXN0ZXLCoHRvIHNvbHZlIGl0Lg0K DQpZZWFoIGV4cG9ydGluZyB0aGUgdHJhY2Vwb2ludCBpcyBjbGVhcmx5IG5vdCB0aGUgY29ycmVj dCBhcHByb2FjaC4NCg0KU2VlIHRoaXMgaXMgbm90IHVzZWQgaW4gYSBkcml2ZXIgbW9kdWxlLCBi dXQgdGhlIGNvcmUga2VybmVsLiBFeHBvcnRpbmcgdGhlIHN5bWJvbCB3b3VsZCBtYWtlIG9ubHkg c2Vuc2UgaWYgZHJpdmVycyB3YW50IHRvIGFjY2VzcyBpdCwgYnV0IGF0IGxlYXN0IGZvciB1cHN0 cmVhbSB0aGF0IGlzIG5vdCB0aGUgY2FzZS4NCg0KU28gcGxlYXNlIGp1c3QgZHJvcCB0aGF0Lg0K DQpSZWdhcmRzLA0KQ2hyaXN0aWFuLg0KDQo+IA0KPiANCj4+wqBUaGUgcmVmY250IGlzIG1hbmlw dWxhdGVkIG91dHNpZGUgb2YgdGhlIERNQS1idWYgY29kZSBieSB0aGUgZmlsZXN5c3RlbSBsYXll ci4NCj4+wqBBcyBmYXIgYXMgSSBjYW4gc2VlIGl0IGlzIG1lYW5pbmdsZXNzIGhlcmUuDQo+IG9r Lg0KPiANCj4gDQo+IA0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKuWPkeS7tuS6ujoqIENo cmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4NCj4gKuWPkemAgeaXtumX tDoqIDIwMjXlubQxMeaciDI35pelIDIyOjA4OjMyDQo+ICrmlLbku7bkuro6KiDpq5jnv5Q7IFhp YW5nIEdhbzsgc3VtaXQuc2Vtd2FsQGxpbmFyby5vcmc7IHJvc3RlZHRAZ29vZG1pcy5vcmc7IG1o aXJhbWF0QGtlcm5lbC5vcmcNCj4gKuaKhOmAgToqIGxpbnV4LW1lZGlhQHZnZXIua2VybmVsLm9y ZzsgZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZzsgbGludXgta2VybmVsQHZnZXIua2Vy bmVsLm9yZzsgbWF0aGlldS5kZXNub3llcnNAZWZmaWNpb3MuY29tOyBkaG93ZWxsc0ByZWRoYXQu Y29tOyBrdWJhQGtlcm5lbC5vcmc7IGJyYXVuZXJAa2VybmVsLm9yZzsgYWtwbUBsaW51eC1mb3Vu ZGF0aW9uLm9yZzsgbGludXgtdHJhY2Uta2VybmVsQHZnZXIua2VybmVsLm9yZw0KPiAq5Li76aKY OiogUmU6IOetlOWkjTogW0V4dGVybmFsIE1haWxdUmU6IFtQQVRDSCB2M10gZG1hLWJ1ZjogYWRk IHNvbWUgdHJhY2Vwb2ludHMgdG8gZGVidWcuDQo+IMKgDQo+IFvlpJbpg6jpgq7ku7ZdIOatpOmC ruS7tuadpea6kOS6juWwj+exs+WFrOWPuOWklumDqO+8jOivt+iwqOaFjuWkhOeQhuOAguiLpeWv uemCruS7tuWuieWFqOaAp+WtmOeWke+8jOivt+WwhumCruS7tui9rOWPkee7mW1pc2VjQHhpYW9t aS5jb23ov5vooYzlj43ppogNCj4gDQo+IE9uIDExLzI3LzI1IDE1OjA1LCDpq5jnv5Qgd3JvdGU6 DQo+Pj7CoEV4cG9ydGluZyB0aGUgdHJhY2Vwb2ludHMgaXMgdW5lY2Vzc2FyeSBhcyBmYXIgYXMg SSBjYW4gc2VlDQo+Pg0KPj4gYW5kcm9pZCBtdXN0IGV4cG9ydCBzeW1ib2xzIGJlZm9yZSBhZGRp bmcgYSB3aGl0ZWxpc3QuDQo+IA0KPiBIdWk/IFdoeSB3b3VsZCB5b3UgYWRkIHRob3NlIHN5bWJv bHMgdG8gYW55IHdoaXRlbGlzdD8NCj4gDQo+Pg0KPj4NCj4+PsKgSSBjYW4ndCBjb21lIHVwIHdp dGggYSByZWFzb24gd2h5IHdlIHNob3VsZCBoYXZlIHRoZSBmaWxlIHJlZmNvdW50IGluIHRoZSB0 cmFjZSBsb2dzLg0KPj4+wqBTYW1lIGZvciBtb3N0IG90aGVyIHBsYWNlcy4NCj4+IEkgY2FuIGRp cmVjdGx5IG9ic2VydmUgaG93IHJlZmNudCBpcyBjaGFuZ2luZy7CoCBUaGVuIGl0IGNhbiBiZSBr bm93biB3aGVyZSB0aGUgZG1hYnVmIHdhcyBmaW5hbGx5IHJlbGVhc2VkLg0KPiANCj4gVGhlIHJl ZmNudCBpcyBtYW5pcHVsYXRlZCBvdXRzaWRlIG9mIHRoZSBETUEtYnVmIGNvZGUgYnkgdGhlIGZp bGVzeXN0ZW0gbGF5ZXIuDQo+IA0KPiBBcyBmYXIgYXMgSSBjYW4gc2VlIGl0IGlzIG1lYW5pbmds ZXNzIGhlcmUuDQo+IA0KPiBSZWdhcmRzLA0KPiBDaHJpc3RpYW4uDQo+IA0KPj4NCj4+DQo+Pj7C oFByaW50IHRoZSBkZXZfbmFtZSBsYXN0LCBpdCdzIHRoZSBleHRlcm5hbCBkZXZpY2Ugd2hpY2gg YXR0YWNoZXMgdG8gdGhlIERNQS1idWYuDQo+PiBvay4NCj4+DQo+Pg0KPj4+wqBBZGRpdGlvbmFs IHRvIHRoYXQgaXQgd291bGQgYmUgbmljZSB0byBrbm93IGlmIHRoZSBhdHRhY2htZW50IGlzIGR5 bmFtaWMgb3Igbm90Lg0KPj4gb2suDQo+Pg0KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+PiAq 5Y+R5Lu25Lq6OiogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPg0K Pj4gKuWPkemAgeaXtumXtDoqIDIwMjXlubQxMeaciDI35pelIDE3OjQ5OjA5DQo+PiAq5pS25Lu2 5Lq6OiogWGlhbmcgR2FvOyBzdW1pdC5zZW13YWxAbGluYXJvLm9yZzsgcm9zdGVkdEBnb29kbWlz Lm9yZzsgbWhpcmFtYXRAa2VybmVsLm9yZw0KPj4gKuaKhOmAgToqIGxpbnV4LW1lZGlhQHZnZXIu a2VybmVsLm9yZzsgZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZzsgbGludXgta2VybmVs QHZnZXIua2VybmVsLm9yZzsgbWF0aGlldS5kZXNub3llcnNAZWZmaWNpb3MuY29tOyBkaG93ZWxs c0ByZWRoYXQuY29tOyBrdWJhQGtlcm5lbC5vcmc7IGJyYXVuZXJAa2VybmVsLm9yZzsgYWtwbUBs aW51eC1mb3VuZGF0aW9uLm9yZzsgbGludXgtdHJhY2Uta2VybmVsQHZnZXIua2VybmVsLm9yZzsg 6auY57+UDQo+PiAq5Li76aKYOiogW0V4dGVybmFsIE1haWxdUmU6IFtQQVRDSCB2M10gZG1hLWJ1 ZjogYWRkIHNvbWUgdHJhY2Vwb2ludHMgdG8gZGVidWcuDQo+Pg0KPj4gW+WklumDqOmCruS7tl0g 5q2k6YKu5Lu25p2l5rqQ5LqO5bCP57Gz5YWs5Y+45aSW6YOo77yM6K+36LCo5oWO5aSE55CG44CC 6Iul5a+56YKu5Lu25a6J5YWo5oCn5a2Y55aR77yM6K+35bCG6YKu5Lu26L2s5Y+R57uZbWlzZWNA eGlhb21pLmNvbei/m+ihjOWPjemmiA0KPj4NCj4+IE9uIDExLzI3LzI1IDAxOjQzLCBYaWFuZyBH YW8gd3JvdGU6DQo+Pj4gRnJvbTogZ2FveGlhbmcxNyA8Z2FveGlhbmcxN0B4aWFvbWkuY29tPg0K Pj4+DQo+Pj4gSSB3YW50IHRvIHRyYWNrIHRoZSBzdGF0dXMgb2YgZG1hYnVmIGluIHJlYWwgdGlt ZSBpbiB0aGUgcHJvZHVjdGlvbiBlbnZpcm9ubWVudC4NCj4+PiBCdXQgbm93IHdlIGNhbiBvbmx5 IGNoZWNrIGl0IGJ5IHRyYXZlcnNpbmcgdGhlIGZkIGluIHRoZSBwcm9jZXNzIG9yIGRtYWJ1Zl9s aXN0Lg0KPj4+DQo+Pj4gRm9yIGV4YW1wbGU6DQo+Pj7CoMKgwqAgYmluZGVyOjI5NjJfMi0yOTYy wqDCoMKgIFswMDVdIC4uLjEuwqDCoCAyMDguNDUzOTQwOiBkbWFfYnVmX2V4cG9ydDogZXhwX25h bWU9cWNvbSxzeXN0ZW0gbmFtZT0obnVsbCkgc2l6ZT0yODY3MiBpbm89MjU4MCBmX3JlZmNudD0y DQo+Pj7CoMKgwqAgYmluZGVyOjI5NjJfMi0yOTYywqDCoMKgIFswMDVdIC4uLjEuwqDCoCAyMDgu NDUzOTQzOiBkbWFfYnVmX2ZkOiBleHBfbmFtZT1xY29tLHN5c3RlbSBuYW1lPShudWxsKSBzaXpl PTI4NjcyIGlubz0yNTgwIGZkPTkgZl9yZWZjbnQ9Mg0KPj4+wqDCoMKgIGJpbmRlcjoyOTYyXzIt Mjk2MsKgwqDCoCBbMDA1XSAuLi4xLsKgwqAgMjA4LjQ1Mzk3NzogZG1hX2J1Zl9tbWFwX2ludGVy bmFsOiBleHBfbmFtZT1xY29tLHN5c3RlbSBuYW1lPXFjb20sc3lzdGVtIHNpemU9Mjg2NzIgaW5v PTI1ODAgZl9yZWZjbnQ9NA0KPj4+wqDCoMKgwqDCoCBrd29ya2VyLzU6Mi0xOTTCoMKgwqDCoCBb MDA1XSAuLi4xLsKgwqAgMjA4LjQ2MDU4MDogZG1hX2J1Zl9wdXQ6IGV4cF9uYW1lPXFjb20sc3lz dGVtIG5hbWU9YWIgcGlkIFs4MTc2XSBzaXplPTI4NjcyIGlubz0yNTgwIGZfcmVmY250PTMNCj4+ PsKgwqDCoMKgIFJlbmRlclRocmVhZC0xMTMwNcKgwqAgWzAwN10gLi4uMS7CoMKgIDIwOC41OTkw OTQ6IGRtYV9idWZfZ2V0OiBleHBfbmFtZT1xY29tLHN5c3RlbSBuYW1lPWFiIHBpZCBbODE3Nl0g c2l6ZT0yMTcwODggaW5vPTI1NzkgZmQ9MTExNCBmX3JlZmNudD03DQo+Pj7CoMKgwqDCoCBSZW5k ZXJUaHJlYWQtMTEzMDXCoMKgIFswMDddIC4uLjEuwqDCoCAyMDguNTk5MDk4OiBkbWFfYnVmX2F0 dGFjaDogZGV2X25hbWU9a2dzbC0zZDAgZXhwX25hbWU9cWNvbSxzeXN0ZW0gbmFtZT1hYiBwaWQg WzgxNzZdIHNpemU9MjE3MDg4IGlubz0yNTc5IGZfcmVmY250PTcNCj4+PsKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgPC4uLj4tMTTCoMKgwqDCoMKgIFswMDFdIC4uLjEuwqDCoCAyMDguNzI2MzU5OiBk bWFfYnVmX2RldGFjaDogZGV2X25hbWU9a2dzbC0zZDAgZXhwX25hbWU9cWNvbSxzeXN0ZW0gbmFt ZT1hYiBwaWQgWzMzMTddIHNpemU9MjE3MDg4IGlubz0yNTgxIGZfcmVmY250PTMNCj4+Pg0KPj4+ IFNpZ25lZC1vZmYtYnk6IFhpYW5nIEdhbyA8Z2FveGlhbmcxN0B4aWFvbWkuY29tPg0KPj4+IC0t LQ0KPj4+wqAgZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuY8KgwqDCoMKgwqAgfMKgIDU3ICsrKysr KysrKystDQo+Pj7CoCBpbmNsdWRlL3RyYWNlL2V2ZW50cy9kbWFfYnVmLmggfCAxNjYgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+Pj7CoCAyIGZpbGVzIGNoYW5nZWQsIDIyMiBp bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+Pj7CoCBjcmVhdGUgbW9kZSAxMDA2NDQgaW5j bHVkZS90cmFjZS9ldmVudHMvZG1hX2J1Zi5oDQo+Pj4NCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9kbWEtYnVmL2RtYS1idWYuYyBiL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMNCj4+PiBpbmRl eCAyYmNmOWNlY2E5OTcuLjdjZWY4MTZkZGNhYyAxMDA2NDQNCj4+PiAtLS0gYS9kcml2ZXJzL2Rt YS1idWYvZG1hLWJ1Zi5jDQo+Pj4gKysrIGIvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYw0KPj4+ IEBAIC0zNSw2ICszNSwxOCBAQA0KPj4+DQo+Pj7CoCAjaW5jbHVkZSAiZG1hLWJ1Zi1zeXNmcy1z dGF0cy5oIg0KPj4+DQo+Pj4gKyNkZWZpbmUgQ1JFQVRFX1RSQUNFX1BPSU5UUw0KPj4+ICsjaW5j bHVkZSA8dHJhY2UvZXZlbnRzL2RtYV9idWYuaD4NCj4+PiArDQo+Pj4gK0VYUE9SVF9UUkFDRVBP SU5UX1NZTUJPTChkbWFfYnVmX2V4cG9ydCk7DQo+Pj4gK0VYUE9SVF9UUkFDRVBPSU5UX1NZTUJP TChkbWFfYnVmX21tYXBfaW50ZXJuYWwpOw0KPj4+ICtFWFBPUlRfVFJBQ0VQT0lOVF9TWU1CT0wo ZG1hX2J1Zl9tbWFwKTsNCj4+PiArRVhQT1JUX1RSQUNFUE9JTlRfU1lNQk9MKGRtYV9idWZfcHV0 KTsNCj4+PiArRVhQT1JUX1RSQUNFUE9JTlRfU1lNQk9MKGRtYV9idWZfYXR0YWNoKTsNCj4+PiAr RVhQT1JUX1RSQUNFUE9JTlRfU1lNQk9MKGRtYV9idWZfZGV0YWNoKTsNCj4+PiArRVhQT1JUX1RS QUNFUE9JTlRfU1lNQk9MKGRtYV9idWZfZmQpOw0KPj4+ICtFWFBPUlRfVFJBQ0VQT0lOVF9TWU1C T0woZG1hX2J1Zl9nZXQpOw0KPj4NCj4+IEV4cG9ydGluZyB0aGUgdHJhY2Vwb2ludHMgaXMgdW5l Y2Vzc2FyeSBhcyBmYXIgYXMgSSBjYW4gc2VlDQo+Pg0KPj4+ICsNCj4+PsKgIHN0YXRpYyBpbmxp bmUgaW50IGlzX2RtYV9idWZfZmlsZShzdHJ1Y3QgZmlsZSAqKTsNCj4+Pg0KPj4+wqAgc3RhdGlj IERFRklORV9NVVRFWChkbWFidWZfbGlzdF9tdXRleCk7DQo+Pj4gQEAgLTIyMCw2ICsyMzIsMTEg QEAgc3RhdGljIGludCBkbWFfYnVmX21tYXBfaW50ZXJuYWwoc3RydWN0IGZpbGUgKmZpbGUsIHN0 cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQ0KPj4+wqDCoMKgwqDCoMKgwqDCoMKgwqAgZG1hYnVm LT5zaXplID4+IFBBR0VfU0hJRlQpDQo+Pj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJl dHVybiAtRUlOVkFMOw0KPj4+DQo+Pj4gK8KgwqDCoMKgIGlmICh0cmFjZV9kbWFfYnVmX21tYXBf aW50ZXJuYWxfZW5hYmxlZCgpKSB7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBndWFy ZChzcGlubG9jaykoJmRtYWJ1Zi0+bmFtZV9sb2NrKTsNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHRyYWNlX2RtYV9idWZfbW1hcF9pbnRlcm5hbChkbWFidWYpOw0KPj4+ICvCoMKgwqDC oCB9DQo+Pj4gKw0KPj4+wqDCoMKgwqDCoMKgIHJldHVybiBkbWFidWYtPm9wcy0+bW1hcChkbWFi dWYsIHZtYSk7DQo+Pj7CoCB9DQo+Pj4NCj4+PiBAQCAtNzQ1LDYgKzc2MiwxMSBAQCBzdHJ1Y3Qg ZG1hX2J1ZiAqZG1hX2J1Zl9leHBvcnQoY29uc3Qgc3RydWN0IGRtYV9idWZfZXhwb3J0X2luZm8g KmV4cF9pbmZvKQ0KPj4+DQo+Pj7CoMKgwqDCoMKgwqAgX19kbWFfYnVmX2xpc3RfYWRkKGRtYWJ1 Zik7DQo+Pj4NCj4+PiArwqDCoMKgwqAgaWYgKHRyYWNlX2RtYV9idWZfZXhwb3J0X2VuYWJsZWQo KSkgew0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ3VhcmQoc3BpbmxvY2spKCZkbWFi dWYtPm5hbWVfbG9jayk7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0cmFjZV9kbWFf YnVmX2V4cG9ydChkbWFidWYpOw0KPj4+ICvCoMKgwqDCoCB9DQo+Pj4gKw0KPj4+wqDCoMKgwqDC oMKgIHJldHVybiBkbWFidWY7DQo+Pj4NCj4+PsKgIGVycl9kbWFidWY6DQo+Pj4gQEAgLTc3OSw2 ICs4MDEsMTEgQEAgaW50IGRtYV9idWZfZmQoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgaW50IGZs YWdzKQ0KPj4+DQo+Pj7CoMKgwqDCoMKgwqAgZmRfaW5zdGFsbChmZCwgZG1hYnVmLT5maWxlKTsN Cj4+Pg0KPj4+ICvCoMKgwqDCoCBpZiAodHJhY2VfZG1hX2J1Zl9mZF9lbmFibGVkKCkpIHsNCj4+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGd1YXJkKHNwaW5sb2NrKSgmZG1hYnVmLT5uYW1l X2xvY2spOw0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdHJhY2VfZG1hX2J1Zl9mZChk bWFidWYsIGZkKTsNCj4+PiArwqDCoMKgwqAgfQ0KPj4+ICsNCj4+PsKgwqDCoMKgwqDCoCByZXR1 cm4gZmQ7DQo+Pj7CoCB9DQo+Pj7CoCBFWFBPUlRfU1lNQk9MX05TX0dQTChkbWFfYnVmX2ZkLCAi RE1BX0JVRiIpOw0KPj4+IEBAIC03OTQsNiArODIxLDcgQEAgRVhQT1JUX1NZTUJPTF9OU19HUEwo ZG1hX2J1Zl9mZCwgIkRNQV9CVUYiKTsNCj4+PsKgIHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmX2dl dChpbnQgZmQpDQo+Pj7CoCB7DQo+Pj7CoMKgwqDCoMKgwqAgc3RydWN0IGZpbGUgKmZpbGU7DQo+ Pj4gK8KgwqDCoMKgIHN0cnVjdCBkbWFfYnVmICpkbWFidWY7DQo+Pj4NCj4+PsKgwqDCoMKgwqDC oCBmaWxlID0gZmdldChmZCk7DQo+Pj4NCj4+PiBAQCAtODA1LDcgKzgzMywxNCBAQCBzdHJ1Y3Qg ZG1hX2J1ZiAqZG1hX2J1Zl9nZXQoaW50IGZkKQ0KPj4+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCByZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsNCj4+PsKgwqDCoMKgwqDCoCB9DQo+Pj4NCj4+ PiAtwqDCoMKgwqAgcmV0dXJuIGZpbGUtPnByaXZhdGVfZGF0YTsNCj4+PiArwqDCoMKgwqAgZG1h YnVmID0gZmlsZS0+cHJpdmF0ZV9kYXRhOw0KPj4+ICsNCj4+PiArwqDCoMKgwqAgaWYgKHRyYWNl X2RtYV9idWZfZ2V0X2VuYWJsZWQoKSkgew0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg Z3VhcmQoc3BpbmxvY2spKCZkbWFidWYtPm5hbWVfbG9jayk7DQo+Pj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCB0cmFjZV9kbWFfYnVmX2dldChkbWFidWYsIGZkKTsNCj4+PiArwqDCoMKgwqAg fQ0KPj4+ICsNCj4+PiArwqDCoMKgwqAgcmV0dXJuIGRtYWJ1ZjsNCj4+PsKgIH0NCj4+PsKgIEVY UE9SVF9TWU1CT0xfTlNfR1BMKGRtYV9idWZfZ2V0LCAiRE1BX0JVRiIpOw0KPj4+DQo+Pj4gQEAg LTgyNSw2ICs4NjAsMTEgQEAgdm9pZCBkbWFfYnVmX3B1dChzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVm KQ0KPj4+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm47DQo+Pj4NCj4+PsKgwqDC oMKgwqDCoCBmcHV0KGRtYWJ1Zi0+ZmlsZSk7DQo+Pj4gKw0KPj4+ICvCoMKgwqDCoCBpZiAodHJh Y2VfZG1hX2J1Zl9wdXRfZW5hYmxlZCgpKSB7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBndWFyZChzcGlubG9jaykoJmRtYWJ1Zi0+bmFtZV9sb2NrKTsNCj4+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHRyYWNlX2RtYV9idWZfcHV0KGRtYWJ1Zik7DQo+Pj4gK8KgwqDCoMKgIH0N Cj4+PsKgIH0NCj4+PsKgIEVYUE9SVF9TWU1CT0xfTlNfR1BMKGRtYV9idWZfcHV0LCAiRE1BX0JV RiIpOw0KPj4+DQo+Pj4gQEAgLTk5OCw2ICsxMDM4LDExIEBAIEVYUE9SVF9TWU1CT0xfTlNfR1BM KGRtYV9idWZfZHluYW1pY19hdHRhY2gsICJETUFfQlVGIik7DQo+Pj7CoCBzdHJ1Y3QgZG1hX2J1 Zl9hdHRhY2htZW50ICpkbWFfYnVmX2F0dGFjaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLA0KPj4+ wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGRldmljZSAqZGV2KQ0KPj4+wqAgew0KPj4+ ICvCoMKgwqDCoCBpZiAodHJhY2VfZG1hX2J1Zl9hdHRhY2hfZW5hYmxlZCgpKSB7DQo+Pj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBndWFyZChzcGlubG9jaykoJmRtYWJ1Zi0+bmFtZV9sb2Nr KTsNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRyYWNlX2RtYV9idWZfYXR0YWNoKGRt YWJ1ZiwgZGV2KTsNCj4+PiArwqDCoMKgwqAgfQ0KPj4+ICsNCj4+PsKgwqDCoMKgwqDCoCByZXR1 cm4gZG1hX2J1Zl9keW5hbWljX2F0dGFjaChkbWFidWYsIGRldiwgTlVMTCwgTlVMTCk7DQo+Pj7C oCB9DQo+Pj7CoCBFWFBPUlRfU1lNQk9MX05TX0dQTChkbWFfYnVmX2F0dGFjaCwgIkRNQV9CVUYi KTsNCj4+PiBAQCAtMTAyMyw2ICsxMDY4LDExIEBAIHZvaWQgZG1hX2J1Zl9kZXRhY2goc3RydWN0 IGRtYV9idWYgKmRtYWJ1Ziwgc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKQ0KPj4+ wqDCoMKgwqDCoMKgIGlmIChkbWFidWYtPm9wcy0+ZGV0YWNoKQ0KPj4+wqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBkbWFidWYtPm9wcy0+ZGV0YWNoKGRtYWJ1ZiwgYXR0YWNoKTsNCj4+Pg0K Pj4+ICvCoMKgwqDCoCBpZiAodHJhY2VfZG1hX2J1Zl9kZXRhY2hfZW5hYmxlZCgpKSB7DQo+Pj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBndWFyZChzcGlubG9jaykoJmRtYWJ1Zi0+bmFtZV9s b2NrKTsNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRyYWNlX2RtYV9idWZfZGV0YWNo KGRtYWJ1ZiwgYXR0YWNoLT5kZXYpOw0KPj4+ICvCoMKgwqDCoCB9DQo+Pj4gKw0KPj4+wqDCoMKg wqDCoMKgIGtmcmVlKGF0dGFjaCk7DQo+Pj7CoCB9DQo+Pj7CoCBFWFBPUlRfU1lNQk9MX05TX0dQ TChkbWFfYnVmX2RldGFjaCwgIkRNQV9CVUYiKTsNCj4+PiBAQCAtMTQ4OCw2ICsxNTM4LDExIEBA IGludCBkbWFfYnVmX21tYXAoc3RydWN0IGRtYV9idWYgKmRtYWJ1Ziwgc3RydWN0IHZtX2FyZWFf c3RydWN0ICp2bWEsDQo+Pj7CoMKgwqDCoMKgwqAgdm1hX3NldF9maWxlKHZtYSwgZG1hYnVmLT5m aWxlKTsNCj4+PsKgwqDCoMKgwqDCoCB2bWEtPnZtX3Bnb2ZmID0gcGdvZmY7DQo+Pj4NCj4+PiAr wqDCoMKgwqAgaWYgKHRyYWNlX2RtYV9idWZfbW1hcF9lbmFibGVkKCkpIHsNCj4+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIGd1YXJkKHNwaW5sb2NrKSgmZG1hYnVmLT5uYW1lX2xvY2spOw0K Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdHJhY2VfZG1hX2J1Zl9tbWFwKGRtYWJ1Zik7 DQo+Pj4gK8KgwqDCoMKgIH0NCj4+PiArDQo+Pj7CoMKgwqDCoMKgwqAgcmV0dXJuIGRtYWJ1Zi0+ b3BzLT5tbWFwKGRtYWJ1Ziwgdm1hKTsNCj4+PsKgIH0NCj4+PsKgIEVYUE9SVF9TWU1CT0xfTlNf R1BMKGRtYV9idWZfbW1hcCwgIkRNQV9CVUYiKTsNCj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS90 cmFjZS9ldmVudHMvZG1hX2J1Zi5oIGIvaW5jbHVkZS90cmFjZS9ldmVudHMvZG1hX2J1Zi5oDQo+ Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+PiBpbmRleCAwMDAwMDAwMDAwMDAuLmZlOWRhODli YWNkMA0KPj4+IC0tLSAvZGV2L251bGwNCj4+PiArKysgYi9pbmNsdWRlL3RyYWNlL2V2ZW50cy9k bWFfYnVmLmgNCj4+PiBAQCAtMCwwICsxLDE2NiBAQA0KPj4+ICsvKiBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogR1BMLTIuMCAqLw0KPj4+ICsjdW5kZWYgVFJBQ0VfU1lTVEVNDQo+Pj4gKyNkZWZp bmUgVFJBQ0VfU1lTVEVNIGRtYV9idWYNCj4+PiArDQo+Pj4gKyNpZiAhZGVmaW5lZChfVFJBQ0Vf RE1BX0JVRl9IKSB8fCBkZWZpbmVkKFRSQUNFX0hFQURFUl9NVUxUSV9SRUFEKQ0KPj4+ICsjZGVm aW5lIF9UUkFDRV9ETUFfQlVGX0gNCj4+PiArDQo+Pj4gKyNpbmNsdWRlIDxsaW51eC9kbWEtYnVm Lmg+DQo+Pj4gKyNpbmNsdWRlIDxsaW51eC90cmFjZXBvaW50Lmg+DQo+Pj4gKw0KPj4+ICtERUNM QVJFX0VWRU5UX0NMQVNTKGRtYV9idWYsDQo+Pj4gKw0KPj4+ICvCoMKgwqDCoCBUUF9QUk9UTyhz dHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmKSwNCj4+PiArDQo+Pj4gK8KgwqDCoMKgIFRQX0FSR1MoZG1h YnVmKSwNCj4+PiArDQo+Pj4gK8KgwqDCoMKgIFRQX1NUUlVDVF9fZW50cnkoDQo+Pj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBfX3N0cmluZyhleHBfbmFtZSwgZG1hYnVmLT5leHBfbmFtZSkN Cj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9fc3RyaW5nKG5hbWUsIGRtYWJ1Zi0+bmFt ZSkNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9fZmllbGQoc2l6ZV90LCBzaXplKQ0K Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgX19maWVsZChpbm9fdCwgaW5vKQ0KPj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgX19maWVsZChsb25nLCBmX3JlZmNudCkNCj4+PiArwqDC oMKgwqAgKSwNCj4+PiArDQo+Pj4gK8KgwqDCoMKgIFRQX2Zhc3RfYXNzaWduKA0KPj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgX19hc3NpZ25fc3RyKGV4cF9uYW1lKTsNCj4+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIF9fYXNzaWduX3N0cihuYW1lKTsNCj4+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIF9fZW50cnktPnNpemUgPSBkbWFidWYtPnNpemU7DQo+Pj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBfX2VudHJ5LT5pbm8gPSBkbWFidWYtPmZpbGUtPmZfaW5vZGUtPmlf aW5vOw0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgX19lbnRyeS0+Zl9yZWZjbnQgPSBm aWxlX2NvdW50KGRtYWJ1Zi0+ZmlsZSk7DQo+Pj4gK8KgwqDCoMKgICksDQo+Pj4gKw0KPj4+ICvC oMKgwqDCoCBUUF9wcmludGsoImV4cF9uYW1lPSVzIG5hbWU9JXMgc2l6ZT0lenUgaW5vPSVsdSBm X3JlZmNudD0lbGQiLA0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9fZ2V0X3N0 cihleHBfbmFtZSksDQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgX19nZXRfc3Ry KG5hbWUpLA0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9fZW50cnktPnNpemUs DQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgX19lbnRyeS0+aW5vLA0KPj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9fZW50cnktPmZfcmVmY250KQ0KPj4NCj4+IEkg Y2FuJ3QgY29tZSB1cCB3aXRoIGEgcmVhc29uIHdoeSB3ZSBzaG91bGQgaGF2ZSB0aGUgZmlsZSBy ZWZjb3VudCBpbiB0aGUgdHJhY2UgbG9ncy4NCj4+DQo+PiBTYW1lIGZvciBtb3N0IG90aGVyIHBs YWNlcy4NCj4+DQo+Pj4gKyk7DQo+Pj4gKw0KPj4+ICtERUNMQVJFX0VWRU5UX0NMQVNTKGRtYV9i dWZfYXR0YWNoX2RldiwNCj4+PiArDQo+Pj4gK8KgwqDCoMKgIFRQX1BST1RPKHN0cnVjdCBkbWFf YnVmICpkbWFidWYsIHN0cnVjdCBkZXZpY2UgKmRldiksDQo+Pj4gKw0KPj4+ICvCoMKgwqDCoCBU UF9BUkdTKGRtYWJ1ZiwgZGV2KSwNCj4+PiArDQo+Pj4gK8KgwqDCoMKgIFRQX1NUUlVDVF9fZW50 cnkoDQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBfX3N0cmluZyhkbmFtZSwgZGV2X25h bWUoZGV2KSkNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9fc3RyaW5nKGV4cF9uYW1l LCBkbWFidWYtPmV4cF9uYW1lKQ0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgX19zdHJp bmcobmFtZSwgZG1hYnVmLT5uYW1lKQ0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgX19m aWVsZChzaXplX3QsIHNpemUpDQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBfX2ZpZWxk KGlub190LCBpbm8pDQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBfX2ZpZWxkKGxvbmcs IGZfcmVmY250KQ0KPj4+ICvCoMKgwqDCoCApLA0KPj4+ICsNCj4+PiArwqDCoMKgwqAgVFBfZmFz dF9hc3NpZ24oDQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBfX2Fzc2lnbl9zdHIoZG5h bWUpOw0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgX19hc3NpZ25fc3RyKGV4cF9uYW1l KTsNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9fYXNzaWduX3N0cihuYW1lKTsNCj4+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9fZW50cnktPnNpemUgPSBkbWFidWYtPnNpemU7 DQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBfX2VudHJ5LT5pbm8gPSBkbWFidWYtPmZp bGUtPmZfaW5vZGUtPmlfaW5vOw0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgX19lbnRy eS0+Zl9yZWZjbnQgPSBmaWxlX2NvdW50KGRtYWJ1Zi0+ZmlsZSk7DQo+Pj4gK8KgwqDCoMKgICks DQo+Pj4gKw0KPj4+ICvCoMKgwqDCoCBUUF9wcmludGsoImRldl9uYW1lPSVzIGV4cF9uYW1lPSVz IG5hbWU9JXMgc2l6ZT0lenUgaW5vPSVsdSBmX3JlZmNudD0lbGQiLA0KPj4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIF9fZ2V0X3N0cihkbmFtZSksDQo+Pj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgX19nZXRfc3RyKGV4cF9uYW1lKSwNCj4+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBfX2dldF9zdHIobmFtZSksDQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgX19lbnRyeS0+c2l6ZSwNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBfX2VudHJ5LT5pbm8sDQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgX19lbnRy eS0+Zl9yZWZjbnQpDQo+Pg0KPj4gUHJpbnQgdGhlIGRldl9uYW1lIGxhc3QsIGl0J3MgdGhlIGV4 dGVybmFsIGRldmljZSB3aGljaCBhdHRhY2hlcyB0byB0aGUgRE1BLWJ1Zi4NCj4+DQo+PiBBZGRp dGlvbmFsIHRvIHRoYXQgaXQgd291bGQgYmUgbmljZSB0byBrbm93IGlmIHRoZSBhdHRhY2htZW50 IGlzIGR5bmFtaWMgb3Igbm90Lg0KPj4NCj4+IFJlZ2FyZHMsDQo+PiBDaHJpc3RpYW4uDQo+Pg0K Pj4+ICspOw0KPj4+ICsNCj4+PiArREVDTEFSRV9FVkVOVF9DTEFTUyhkbWFfYnVmX2ZkLA0KPj4+ ICsNCj4+PiArwqDCoMKgwqAgVFBfUFJPVE8oc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgaW50IGZk KSwNCj4+PiArDQo+Pj4gK8KgwqDCoMKgIFRQX0FSR1MoZG1hYnVmLCBmZCksDQo+Pj4gKw0KPj4+ ICvCoMKgwqDCoCBUUF9TVFJVQ1RfX2VudHJ5KA0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgX19zdHJpbmcoZXhwX25hbWUsIGRtYWJ1Zi0+ZXhwX25hbWUpDQo+Pj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBfX3N0cmluZyhuYW1lLCBkbWFidWYtPm5hbWUpDQo+Pj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBfX2ZpZWxkKHNpemVfdCwgc2l6ZSkNCj4+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIF9fZmllbGQoaW5vX3QsIGlubykNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIF9fZmllbGQoaW50LCBmZCkNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9f ZmllbGQobG9uZywgZl9yZWZjbnQpDQo+Pj4gK8KgwqDCoMKgICksDQo+Pj4gKw0KPj4+ICvCoMKg wqDCoCBUUF9mYXN0X2Fzc2lnbigNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9fYXNz aWduX3N0cihleHBfbmFtZSk7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBfX2Fzc2ln bl9zdHIobmFtZSk7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBfX2VudHJ5LT5zaXpl ID0gZG1hYnVmLT5zaXplOw0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgX19lbnRyeS0+ aW5vID0gZG1hYnVmLT5maWxlLT5mX2lub2RlLT5pX2lubzsNCj4+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIF9fZW50cnktPmZkID0gZmQ7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBfX2VudHJ5LT5mX3JlZmNudCA9IGZpbGVfY291bnQoZG1hYnVmLT5maWxlKTsNCj4+PiArwqDC oMKgwqAgKSwNCj4+PiArDQo+Pj4gK8KgwqDCoMKgIFRQX3ByaW50aygiZXhwX25hbWU9JXMgbmFt ZT0lcyBzaXplPSV6dSBpbm89JWx1IGZkPSVkIGZfcmVmY250PSVsZCIsDQo+Pj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgX19nZXRfc3RyKGV4cF9uYW1lKSwNCj4+PiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBfX2dldF9zdHIobmFtZSksDQo+Pj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgX19lbnRyeS0+c2l6ZSwNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBfX2VudHJ5LT5pbm8sDQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg X19lbnRyeS0+ZmQsDQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgX19lbnRyeS0+ Zl9yZWZjbnQpDQo+Pj4gKyk7DQo+Pj4gKw0KPj4+ICtERUZJTkVfRVZFTlQoZG1hX2J1ZiwgZG1h X2J1Zl9leHBvcnQsDQo+Pj4gKw0KPj4+ICvCoMKgwqDCoCBUUF9QUk9UTyhzdHJ1Y3QgZG1hX2J1 ZiAqZG1hYnVmKSwNCj4+PiArDQo+Pj4gK8KgwqDCoMKgIFRQX0FSR1MoZG1hYnVmKQ0KPj4+ICsp Ow0KPj4+ICsNCj4+PiArREVGSU5FX0VWRU5UKGRtYV9idWYsIGRtYV9idWZfbW1hcF9pbnRlcm5h bCwNCj4+PiArDQo+Pj4gK8KgwqDCoMKgIFRQX1BST1RPKHN0cnVjdCBkbWFfYnVmICpkbWFidWYp LA0KPj4+ICsNCj4+PiArwqDCoMKgwqAgVFBfQVJHUyhkbWFidWYpDQo+Pj4gKyk7DQo+Pj4gKw0K Pj4+ICtERUZJTkVfRVZFTlQoZG1hX2J1ZiwgZG1hX2J1Zl9tbWFwLA0KPj4+ICsNCj4+PiArwqDC oMKgwqAgVFBfUFJPVE8oc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiksDQo+Pj4gKw0KPj4+ICvCoMKg wqDCoCBUUF9BUkdTKGRtYWJ1ZikNCj4+PiArKTsNCj4+PiArDQo+Pj4gK0RFRklORV9FVkVOVChk bWFfYnVmLCBkbWFfYnVmX3B1dCwNCj4+PiArDQo+Pj4gK8KgwqDCoMKgIFRQX1BST1RPKHN0cnVj dCBkbWFfYnVmICpkbWFidWYpLA0KPj4+ICsNCj4+PiArwqDCoMKgwqAgVFBfQVJHUyhkbWFidWYp DQo+Pj4gKyk7DQo+Pj4gKw0KPj4+ICtERUZJTkVfRVZFTlQoZG1hX2J1Zl9hdHRhY2hfZGV2LCBk bWFfYnVmX2F0dGFjaCwNCj4+PiArDQo+Pj4gK8KgwqDCoMKgIFRQX1BST1RPKHN0cnVjdCBkbWFf YnVmICpkbWFidWYsIHN0cnVjdCBkZXZpY2UgKmRldiksDQo+Pj4gKw0KPj4+ICvCoMKgwqDCoCBU UF9BUkdTKGRtYWJ1ZiwgZGV2KQ0KPj4+ICspOw0KPj4+ICsNCj4+PiArREVGSU5FX0VWRU5UKGRt YV9idWZfYXR0YWNoX2RldiwgZG1hX2J1Zl9kZXRhY2gsDQo+Pj4gKw0KPj4+ICvCoMKgwqDCoCBU UF9QUk9UTyhzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLCBzdHJ1Y3QgZGV2aWNlICpkZXYpLA0KPj4+ ICsNCj4+PiArwqDCoMKgwqAgVFBfQVJHUyhkbWFidWYsIGRldikNCj4+PiArKTsNCj4+PiArDQo+ Pj4gK0RFRklORV9FVkVOVChkbWFfYnVmX2ZkLCBkbWFfYnVmX2ZkLA0KPj4+ICsNCj4+PiArwqDC oMKgwqAgVFBfUFJPVE8oc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgaW50IGZkKSwNCj4+PiArDQo+ Pj4gK8KgwqDCoMKgIFRQX0FSR1MoZG1hYnVmLCBmZCkNCj4+PiArKTsNCj4+PiArDQo+Pj4gK0RF RklORV9FVkVOVChkbWFfYnVmX2ZkLCBkbWFfYnVmX2dldCwNCj4+PiArDQo+Pj4gK8KgwqDCoMKg IFRQX1BST1RPKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsIGludCBmZCksDQo+Pj4gKw0KPj4+ICvC oMKgwqDCoCBUUF9BUkdTKGRtYWJ1ZiwgZmQpDQo+Pj4gKyk7DQo+Pj4gKw0KPj4+ICsjZW5kaWYg LyogX1RSQUNFX0RNQV9CVUZfSCAqLw0KPj4+ICsNCj4+PiArLyogVGhpcyBwYXJ0IG11c3QgYmUg b3V0c2lkZSBwcm90ZWN0aW9uICovDQo+Pj4gKyNpbmNsdWRlIDx0cmFjZS9kZWZpbmVfdHJhY2Uu aD4NCj4+DQo+IA0KDQo=