From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) (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 B2B263AB290; Thu, 12 Mar 2026 19:19:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=148.163.156.1 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773343157; cv=fail; b=N/PHx4SGBzkn5QwAv2/Ung27kEPRVFPM5AM3N/tMFb64nr74Yyl77ZHgAXyAXUAGtZLQFYmu+RD8Md+tnLIvyIyXOxSezGOOD821Z/6Cohq9jEcEb88ndCn1fQq5Fgpb/hQhjcTa4kOaYsoLXO0M+Kf6w409cBuB8Qoh/suDmsY= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773343157; c=relaxed/simple; bh=5yspJ214VbkbfKMqpbCdiA9ChJjjTQ3yKLXAwCBPfqA=; h=From:To:CC:Date:Message-ID:References:In-Reply-To:Content-Type: MIME-Version:Subject; b=Tht16x/zqtrjIeho65QHudSAm5stqFAiILMlMWnNIWiHeO9OaS9T9UH+SwOD1guOlXgaHdqtPL6dRrSQuJCogN/IDNXmNmRB+qAn9YyUkPN1wif0kfsHxyZSniosHbcww4RPTwVA17j8q3l2F7kP1kADp0VFy+fEGhUHW56cMU8= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ibm.com; spf=pass smtp.mailfrom=ibm.com; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b=s7Zuk6wZ; arc=fail smtp.client-ip=148.163.156.1 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ibm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ibm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b="s7Zuk6wZ" Received: from pps.filterd (m0353729.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62CEtnhI2282664; Thu, 12 Mar 2026 19:19:10 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-id:content-transfer-encoding:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= pp1; bh=5yspJ214VbkbfKMqpbCdiA9ChJjjTQ3yKLXAwCBPfqA=; b=s7Zuk6wZ A1uKFFj/bFRsnK1qAbLa0FhthoIqERlARdJy3/FgCvOKlqsze36WbMJ+IR+w+w2S c4X4pHK+0ya4+s8aK0+nD7727hM8GrVQgmsjelHsTAndbG+QjDa46WxS0cFWqNl6 uiJ6t5uW54sl1JGu37m/Yr2ntiZKnE44uPYneRrb7ecGtw8plZO9kEmM1RSmN8V8 7FXNyo/BzQyiHPeKbezha6s/vOGmUVQoKFvuvfabEQmMBdDLnwgdbW9TlnWe9FPR eDXqas96o1biQre2MJeax3UqrP+8elPw+NuARFqHPlXfE1B90zl4t31sjZPO8TWL FE/v3eR/YVOOng== Received: from dm5pr21cu001.outbound.protection.outlook.com (mail-centralusazon11011006.outbound.protection.outlook.com [52.101.62.6]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4cuh91mgd4-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 12 Mar 2026 19:19:09 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dVMNEQLTtH5Qm2hjHAlKpSI2I4JqRC/w1BvW0EElwZwO4leQrDnzOSWpMDJGZSOEP3gqePwryCoFYuzuikyi38M+ixk5ZNvtVTPiGThy8o8YkXaiTncMi+OphWnYtGpI6BNxgoIj3YjKG6MeG7XAn0JlqDmbqJHe8sdeNq5b3B+RfUUHS9POjZmdJMaCGRo2hakULrFfdSPlNj2Kmj7klE5Xww/uDmxWoXOByBQM/LuAeoEk1QheAe0QFwjfHx0Qh+FjbKw4HZk8kUChkxKGrpbxgeeUj+ikMd2Rf0aM+AEzfTmhFSlk1q0VpIdE42CKWc+xqJrhi+lkd7rWonn9MA== 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=5yspJ214VbkbfKMqpbCdiA9ChJjjTQ3yKLXAwCBPfqA=; b=IM68olCb2M+tkTov/N4joE8i2+1MMTr7nQ/ogSvLyTx8ldE+89432pKGTntsHrzmAMRXe/wV0FM2ChRu3ODvOA1U1w7FX0P3aDkf7w5UHyG7/59WjWs6VGIoQTeuOn+fyYAJRoliwoY3OU1UdJwU710RrbXbPN2RAwdcYmxgMMzHKm/nhxiKqn1U7l9KUgtakER8GTnjeO2gQBqqhJq1//sXVdlOvSu3wZSt2t+tgXF+S07jFv2a6T9lOHjx6bqeu+LPn3QsLSyddknVDWbLe26KS8fm43ULjZAmYJfDRbQZRTfTqOFfDhPYtOSp7se5yTKTPieNb+2lNFNxSQHRwg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ibm.com; dmarc=pass action=none header.from=ibm.com; dkim=pass header.d=ibm.com; arc=none Received: from SA1PR15MB5819.namprd15.prod.outlook.com (2603:10b6:806:338::8) by DS0PR15MB6278.namprd15.prod.outlook.com (2603:10b6:8:168::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.4; Thu, 12 Mar 2026 19:19:07 +0000 Received: from SA1PR15MB5819.namprd15.prod.outlook.com ([fe80::920c:d2ba:5432:b539]) by SA1PR15MB5819.namprd15.prod.outlook.com ([fe80::920c:d2ba:5432:b539%7]) with mapi id 15.20.9723.000; Thu, 12 Mar 2026 19:19:07 +0000 From: Viacheslav Dubeyko To: "ceph-devel@vger.kernel.org" , "ionut.nechita@windriver.com" CC: "idryomov@gmail.com" , Xiubo Li , "linux-kernel@vger.kernel.org" , "ionut_n2001@yahoo.com" Thread-Topic: [EXTERNAL] [PATCH v1 02/13] ceph: add timeout protection to ceph_mdsc_sync() path Thread-Index: AQHcsfirnXtcx2IxykmArlTEJcdtTrWrRj4A Date: Thu, 12 Mar 2026 19:19:07 +0000 Message-ID: <62584059e2822b3a827f8a1b41133de672e7c844.camel@ibm.com> References: <20260312081619.40854-1-ionut.nechita@windriver.com> <20260312081619.40854-3-ionut.nechita@windriver.com> In-Reply-To: <20260312081619.40854-3-ionut.nechita@windriver.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SA1PR15MB5819:EE_|DS0PR15MB6278:EE_ x-ms-office365-filtering-correlation-id: 71c09e3a-697b-45c2-7ffc-08de806c3b3a x-ld-processed: fcf67057-50c9-4ad4-98f3-ffca64add9e9,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|10070799003|56012099003|22082099003|18002099003|38070700021; x-microsoft-antispam-message-info: 1UApdWxFvaIeX/CmUaAQRdNPzRnjBWbPN5ksZWaLzWNtuZdv3EtxmGaNnNZBlHUfrtttkTH4l2nHijjgeNIRdRFykUNjzNhUHdr17HZfc68YiNaLRPkG3GBT4n+Xt5XUg9vqIXfrKlPwaKnTW5Xx4dQjjHuNtAGPpu8lCudGmbrZEXwTaiePH03Y2jfATk3H9VnXJK+9JNsbRbxLpuLJSlHj0/IOafmfyj80OJfV+/VbIG5a8aIJupf6QBoIGl7+aGz8oeCWuC/B/ZnVwbLVF4N4ZUXxQCSsKBvX47/rfEs3XlRdNIvs7HqtgK0VBLMJ8BeNwZcHh90BtH4hf1y63V3Fuy9ODebrThMM+VkgHnqNlouAjTV6H+YUk5iBzy6zDGDgZbwlqpigNWtThbfqrlwgZDwQC9/OUsCLZYF/8RCRnCjWVMf2NHcYn0GJKHIcbtrS2xS+29ZUd6A1Nqi1gDrbs9lyDltBKcThy4yugHBv8HjEadiKJ4eBQvTTaagCRtrU0U+dJg+SIchXsDoftnEzGFTrCAfROcCGcxrpT8zQpBcMmsK9Fp5RJJZalsQgYf8KN5HWEJ5wrK+HA5gU9dmB7yZW0MW+5ppWDuQx1dzB8si3ciOHt/vj0kX0HUxnTe37Y6WinK4kPq/gNYCCwS1eIRH8F+XCeDShZf1GZrE9SWZJJZvaZvRQ9TQO5I3vv5TSFaGkvmcPhSO/NCkFLfAS2TC9/tj+tlivc8HucLvdlPpdzVy+K7vEX48v+UtOJ43DrHpDb3SC/4ShSLkihVrNwOQqnCa5+7rIHvpkJ6U= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA1PR15MB5819.namprd15.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(10070799003)(56012099003)(22082099003)(18002099003)(38070700021);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?eVllN0hXQ0VYZGxTbmtMOUpUMDV0SlhPVDdGWUptektZUjh5aDVkWkVvV3FJ?= =?utf-8?B?TWxKdmgyWUxPVnh5dUJVYXgzbVJ1MGFYMmdtY0dWZk8xaksvL1ozM1V0U0lL?= =?utf-8?B?clo1Q1RLd1ZLV1RkVXV4WkJXZFI2R2l0TEk4akhOZEJoWjUxeVhmUUJ2eUFO?= =?utf-8?B?M29kWFhjVGpYcWJUZTZlS0hrdmV6RzFDVGF0ZHI4ZXA0RmNDemROU3Fxd1N3?= =?utf-8?B?eWE5R0ZCblN3Uy9KUUhWMlFmdnNQdDhBY0phZmdnSWJQUGFBSjdQb3FiTUZS?= =?utf-8?B?SWxhRDZpd0tEZmV0dDRITUpGWk9XRDN4d2JIYWJTZW1kSm1qUmZXT2lzem51?= =?utf-8?B?Smk3NlN4TjZVSTJnUG05RlhSZm9rTDk0OHU4SlZYTnVUUWd6V1FLUW1xUm1n?= =?utf-8?B?K1JVS09UMDQ5cmYwMFNReGh5NmpNMCtYbjRwKzBNRy9tc0ZDajF6ZW5CdmRX?= =?utf-8?B?Vko2eHNPRVVXWjhWK3ZvSWFEeW1IV0NsMTM4Tk9hcVVoRXhUQ1h0S2dFVGVE?= =?utf-8?B?TDNwbnhmZnBvQXViRVZKcnljNm40dzVwelNlazdGSzFqQVJwc1JWU1hjT2I1?= =?utf-8?B?QWplNXFQWUV0cnk3ZTNwaXoxRENMVXRQdnFnVEZ4N3ZpVkVyU0xJdTVKMEZ6?= =?utf-8?B?K0gvNWlnZDN5a3VjZllqSTFtUzFHTkErTzFKcll0VHlFcXVSd0cvMkxSaFRH?= =?utf-8?B?c2hRL0ZOVjhsUFdaMmtXTkVva1c0RkpqNmhBNzl2bTFyeWw3V1BNNC9PTFV1?= =?utf-8?B?YWdia2xaS1JIWFgyZzlYaitGZ0hhd3FhVzI2TDI1S0hpZ00xWVIwbUIrMlhK?= =?utf-8?B?U1BLK1lXNHlTQ3pJZnJxWnZudGVPY2c3cWtNSzFFdENCOU51d1BJNGNlckg3?= =?utf-8?B?T2MwME5TWDJ6aCtLb0FDUEJCK290OWFrOTRjNkR6ZWhveWd1eVR2TURTNm5x?= =?utf-8?B?RS9TYjhkd1psZTVxWk1mRnBCVjFSc0VCUUdJZjhzM3NjdlVESzVNL3hoN0Yv?= =?utf-8?B?RGJsOVYvU29meW15RHJuZjYvS0pBYS9HZmJxKzNpd1ZiMmVuY2dKam9SV05H?= =?utf-8?B?NitiN0xBaTdVb2Q4S2pYOElYWmRjc2VRcGRPZGtJUnlTNGdMWDRDNjNzUkFv?= =?utf-8?B?VDA5aTJKcW5DZzRMS3pKWVNUQi9vTU5OQUJDdkZzSU9KbTdQazVCbUc1YkJN?= =?utf-8?B?bnBzd1Jpb1ZEeEduNmw3dXQyd1crQ0F2ZTBKSU1rUSt6a0xVU1d4bTgxdTZW?= =?utf-8?B?b3A3TXFFTW9NZ0FXODFoWXVaYWJuUnZhQ0FseCtCNnF3VDI4V3lQWDIxL3JZ?= =?utf-8?B?OFFyRTVHVmNBenVBTCtNSDY3WHFVbm5SSFB2R0J5alUvVlVRTGxNR3d3d0dk?= =?utf-8?B?UFBrR1orTnFzTUZjOUVjMlQ5cVd2VEZmak52OGs3QUdaWHJacHFZVmVobzVx?= =?utf-8?B?UEI4dEx5T09wWm5hRkhBS3JXUFhiZk5yM1JlOElBeDFxdW52RHlKcE9WeVZS?= =?utf-8?B?Mll6ZU9SdW5hV3AvM25keHFzSWRvb01jV0h3T3lGK2JTSCt1QTlsWnRYMkIy?= =?utf-8?B?UG1iU2tXSVhqcVVqZm1tanRUOGExaVV6RFlrdVJXVEFUb0FyRFZ1ZlJNTFpH?= =?utf-8?B?SFg3RUV6TkF2b2tOQXcvQzlubWF5NWFlTzVYWDNOejJnQ0M1NjM2cWxrQ1Yr?= =?utf-8?B?UnJTcmQyM0U5T0dUR1Nqd1ZjU1BUVnJoQ3hhTEFWTm91ejE4UU1zM2dKU0x6?= =?utf-8?B?YkVzbEF1R1JtOTUrUDMyY3VSRysxVE50WE5RNnFpTVZ4ZlNNYjRzRkNsVEJO?= =?utf-8?B?cG1rVWxEN09NRmFSZFNJRU43eWtCQ2VzdFluVjRwSzFMZ3JnaEtpSGJtUG1l?= =?utf-8?B?dkZQK29yYU54L0J4VE9PeVc1UVc4VWtaN05nSG1MWGJoVFZVVWVtRi9uUFZS?= =?utf-8?B?SXVXZFM1Rjdlalk5NWFUTy84SEQyRnhWOC9qZCtmbmJRcGhpdGZaNlN5OURV?= =?utf-8?B?YjZWRjlNejlPT2FiUjY5Z1FuRVJ6cTNDeSs2Sjh0bjBGdUF1eTlxbURPUERs?= =?utf-8?B?WjgveUFRQUhTUzdsNEcyNGt6c2NhMmRBTXpFUC95NDd4ZXBsc29aMW5wbGtS?= =?utf-8?B?NEVaeFpIVWIyUE5JRHFEVjRSNzRUTVBnRm9oMUJ5Tnc1R1NmRDhJbmtBVTFL?= =?utf-8?B?bXg1SkxSaG92VllUQ1BOS0dWa0o1Tndnb2Y5UWJDMUx1dVl5N1gxcjVNbzBI?= =?utf-8?B?MVB5bTM5YU1yVStDOUZZV3Jna29NNHBuQlh4dkRMQURrY2dINkxSTWo4di9s?= =?utf-8?B?Ym80S3BKNkJrNlBzNTUxNE9yLzlQZDlXYWVWN1k5bzdMWFBSK1JsZFZUdTBi?= =?utf-8?Q?5l3sLCoCdrSPYUO6nPFqaugFE4l89YIu2g26a?= Content-Type: text/plain; charset="utf-8" Content-ID: <90A5C3F7C68C454CA1E0AAA0B4C246A5@namprd15.prod.outlook.com> Content-Transfer-Encoding: base64 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: v93tqz8v8dv5eMFwERKYRbSTV3xKOIMjJHdITlIxwkjOwEZTYP/BwBWQCHEhzwwzF1vmPqSO4eSAh0Aya/wFp9unVAHNVw8xZjJCaKxKK1kBHGuaVdT7IMxhOWjbDEeT/fowW8qgxAv4qczHYcKWHZMXf876cKlWC/Y5XJSfT9NRvBEiMaphHZiRlCN9Yo3m84Z3tCcLc82LkvDoTunuFnfLFvnbtzT0+IFScagXkAQ+t+Ef69KZZUcBgPZN05T8mA2EMngEfXy2qfDs+z+13qqDm40bRS445E9af0BemcmPbH4BrM4+Rflr8DXZjiLyaAgBykkE/7t+TOUYrrmT2Q== X-OriginatorOrg: ibm.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SA1PR15MB5819.namprd15.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 71c09e3a-697b-45c2-7ffc-08de806c3b3a X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Mar 2026 19:19:07.1456 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: fcf67057-50c9-4ad4-98f3-ffca64add9e9 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 6PEMY/gYa5v0PZb0lC//PHbAlZdpMDmvlthI1+qPdLzSQNMUxCN2FtrhQfAvjIT4x7LyORyAiyCqB1JFpRP6LQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR15MB6278 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-GUID: PWTzHWNmounIJcXfEms3p8pkX9_YymQ_ X-Authority-Analysis: v=2.4 cv=E6/AZKdl c=1 sm=1 tr=0 ts=69b311ae cx=c_pps a=OmH7RzXgq2BZ7BLjxN5ZDg==:117 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=uAbxVGIbfxUO_5tXvNgY:22 a=t7CeM3EgAAAA:8 a=nqOT-XQ-5PX3S5y_VpUA:9 a=QEXdDO2ut3YA:10 a=FdTzh2GWekK77mhwV6Dw:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzEyMDE1NCBTYWx0ZWRfXxHyis8MaLEYW 19zFi8iLctI6OyF8xEtkn0QPlDxIucFav7vfTCh49tV7N5Mp5TnvI/BCr9XJ2VzCsnEBrTtuipZ bps9YN1i6twPKSUq8goY3w4TXpkNS7IUPocaoicigmywXm2gTvoHCtm97fe+RTKdezRaFNRnHSS 4w4s4cnTVqvcvI/j92pdN8ItS8n+TKIIsKxBIOCjaB21I/vP1B9/bl72wJ2x5/OQjhTqpgWfbeD f5iwSzaI3dp3trzkVqkeAPRM4mOOuOgrroGYqaRL8rkkXdpvvlGEqWW782VRhM5zAZdojoevw6x ljZw9oZyCw1eGY/sHrbWBKFk43XQ6Q4WDeE2JYv67Q126WvsTlAU3icRRZtuKedbB40EEcGW5DC bn0zkON0HEpTrO8wF3JSwi9vQ4TTB+Q5W79J68pZBSHrDOGxZ2WhJdipykgZz4ZKFWx40mXrX1+ w6fy/8iWsjnB8l060UQ== X-Proofpoint-ORIG-GUID: DRWQtEOXtOP3pY9VRpCSoGUuSzfdagft Subject: Re: [PATCH v1 02/13] ceph: add timeout protection to ceph_mdsc_sync() path X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-12_02,2026-03-12_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 impostorscore=0 clxscore=1015 malwarescore=0 phishscore=0 suspectscore=0 priorityscore=1501 spamscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603120154 T24gVGh1LCAyMDI2LTAzLTEyIGF0IDEwOjE2ICswMjAwLCBJb251dCBOZWNoaXRhIChXaW5kIFJp dmVyKSB3cm90ZToNCj4gRnJvbTogSW9udXQgTmVjaGl0YSA8aW9udXQubmVjaGl0YUB3aW5kcml2 ZXIuY29tPg0KPiANCj4gV2hlbiBDZXBoIE1EUyBiZWNvbWVzIHVucmVhY2hhYmxlIChlLmcuLCBk dWUgdG8gSVB2NiBFQUREUk5PVEFWQUlMDQo+IGR1cmluZyBEQUQgb3IgbmV0d29yayB0cmFuc2l0 aW9ucyksIHRoZSBzeW5jIHN5c2NhbGwgY2FuIGJsb2NrDQo+IGluZGVmaW5pdGVseSBpbiBjZXBo X21kc2Nfc3luYygpLiBUaGUgaHVuZ190YXNrIGRldGVjdG9yIGZpcmVzDQo+IHJlcGVhdGVkbHkg KDEyMnMsIDI0NXMsIDM2OHMuLi4gdXAgdG8gOTgzKyBzZWNvbmRzKSB3aXRoIHRyYWNlcyBsaWtl Og0KPiAgIElORk86IHRhc2sgc3luYzoxMjM0NSBibG9ja2VkIGZvciBtb3JlIHRoYW4gMTIyIHNl Y29uZHMuDQo+ICAgQ2FsbCBUcmFjZToNCj4gICAgIGNlcGhfbWRzY19zeW5jKzB4NGQ2LzB4NWEw IFtjZXBoXQ0KPiAgICAgY2VwaF9zeW5jX2ZzKzB4MzEvMHgxMzAgW2NlcGhdDQo+ICAgICBpdGVy YXRlX3N1cGVycysweDk3LzB4MTAwDQo+ICAgICBrc3lzX3N5bmMrMHgzMi8weGIwDQo+IFRocmVl IGZ1bmN0aW9ucyBpbiB0aGUgTURTIHN5bmMgcGF0aCB1c2UgaW5kZWZpbml0ZSB3YWl0czoNCj4g MS4gd2FpdF9jYXBzX2ZsdXNoKCkgdXNlcyB3YWl0X2V2ZW50KCkgd2l0aCBubyB0aW1lb3V0DQo+ IDIuIGZsdXNoX21kbG9nX2FuZF93YWl0X21kc2NfdW5zYWZlX3JlcXVlc3RzKCkgdXNlcw0KPiAg ICB3YWl0X2Zvcl9jb21wbGV0aW9uKCkgd2l0aCBubyB0aW1lb3V0DQo+IDMuIGNlcGhfbWRzY19z eW5jKCkgcmV0dXJucyB2b2lkLCBjYW5ub3QgcHJvcGFnYXRlIGVycm9ycw0KPiBUaGlzIGlzIHBh cnRpY3VsYXJseSBwcm9ibGVtYXRpYyBpbiBjb250YWluZXJpemVkIGVudmlyb25tZW50cyB3aXRo DQo+IFBSRUVNUFRfUlQga2VybmVscyB3aGVyZSBDZXBoIHN0b3JhZ2UgcG9kcyB1bmRlcmdvIHJv bGxpbmcgdXBkYXRlcw0KPiBhbmQgSVB2NiBuZXR3b3JrIHJlY29uZmlndXJhdGlvbnMgY2F1c2Ug dGVtcG9yYXJ5IE1EUyB1bmF2YWlsYWJpbGl0eS4NCj4gRml4IHRoaXMgYnkgYWRkaW5nIG1vdW50 X3RpbWVvdXQtYmFzZWQgdGltZW91dHMgKGRlZmF1bHQgNjBzKSB0byB0aGUNCj4gYmxvY2tpbmcg d2FpdHMsIGZvbGxvd2luZyB0aGUgZXhpc3RpbmcgcGF0dGVybiB1c2VkIGJ5IHdhaXRfcmVxdWVz dHMoKQ0KPiBhbmQgY2VwaF9tZHNjX2Nsb3NlX3Nlc3Npb25zKCkgaW4gdGhlIHNhbWUgZmlsZToN Cj4gLSB3YWl0X2NhcHNfZmx1c2goKTogdXNlIHdhaXRfZXZlbnRfdGltZW91dCgpIHdpdGggbW91 bnRfdGltZW91dA0KPiAtIGZsdXNoX21kbG9nX2FuZF93YWl0X21kc2NfdW5zYWZlX3JlcXVlc3Rz KCk6IHVzZQ0KPiAgIHdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgpIHdpdGggbW91bnRfdGlt ZW91dA0KPiAtIGNlcGhfbWRzY19zeW5jKCk6IGNoYW5nZSByZXR1cm4gdHlwZSB0byBpbnQsIHBy b3BhZ2F0ZSAtRVRJTUVET1VUDQo+IC0gY2VwaF9zeW5jX2ZzKCk6IHByb3BhZ2F0ZSBlcnJvciBm cm9tIGNlcGhfbWRzY19zeW5jKCkgdG8gVkZTDQo+IE9uIHRpbWVvdXQsIGRpcnR5IGNhcHMgYW5k IHBlbmRpbmcgcmVxdWVzdHMgYXJlIE5PVCBkaXNjYXJkZWQgLSB0aGV5DQo+IHJlbWFpbiBpbiBt ZW1vcnkgYW5kIGFyZSByZS1zeW5jZWQgd2hlbiBNRFMgcmVjb25uZWN0cy4gVGhlIHRpbWVvdXQN Cj4gc2ltcGx5IHVuYmxvY2tzIHRoZSBjYWxsaW5nIHRhc2suIElmIG1vdW50X3RpbWVvdXQgaXMg c2V0IHRvIDAsDQo+IGNlcGhfdGltZW91dF9qaWZmaWVzKCkgcmV0dXJucyBNQVhfU0NIRURVTEVf VElNRU9VVCwgcHJlc2VydmluZyB0aGUNCj4gb3JpZ2luYWwgaW5maW5pdGUtd2FpdCBiZWhhdmlv ci4NCj4gUmVhbC13b3JsZCBpbXBhY3Q6IEluIHByb2R1Y3Rpb24gbG9ncyBzaG93aW5nICd0YXNr IHN5bmMgYmxvY2tlZCBmb3INCj4gbW9yZSB0aGFuIDk4MyBzZWNvbmRzJywgdGhpcyBwYXRjaCBs aW1pdHMgdGhlIGJsb2NrIHRvIG1vdW50X3RpbWVvdXQNCj4gKDYwcyBkZWZhdWx0KSwgcmV0dXJu aW5nIC1FVElNRURPVVQgdG8gdGhlIFZGUyBsYXllciBpbnN0ZWFkIG9mDQo+IGhhbmdpbmcgaW5k ZWZpbml0ZWx5Lg0KPiBGaXhlczogMWIyYmEzYzU2MTZlICgiY2VwaDogZmx1c2ggdGhlIG1kbG9n IGZvciBmaWxlc3lzdGVtIHN5bmMiKQ0KPiBTaWduZWQtb2ZmLWJ5OiBJb251dCBOZWNoaXRhIDxp b251dC5uZWNoaXRhQHdpbmRyaXZlci5jb20+DQo+IC0tLQ0KPiAgZnMvY2VwaC9tZHNfY2xpZW50 LmMgfCA1MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQ0KPiAg ZnMvY2VwaC9tZHNfY2xpZW50LmggfCAgMiArLQ0KPiAgZnMvY2VwaC9zdXBlci5jICAgICAgfCAg NSArKystLQ0KPiAgMyBmaWxlcyBjaGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlv bnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9mcy9jZXBoL21kc19jbGllbnQuYyBiL2ZzL2NlcGgv bWRzX2NsaWVudC5jDQo+IGluZGV4IGRmODlkNDVmMzNhMWYuLjM3ODk5NDY0MTAxZjcgMTAwNjQ0 DQo+IC0tLSBhL2ZzL2NlcGgvbWRzX2NsaWVudC5jDQo+ICsrKyBiL2ZzL2NlcGgvbWRzX2NsaWVu dC5jDQo+IEBAIC0yMjk2LDE3ICsyMjk2LDI2IEBAIHN0YXRpYyBpbnQgY2hlY2tfY2Fwc19mbHVz aChzdHJ1Y3QgY2VwaF9tZHNfY2xpZW50ICptZHNjLA0KPiAgICoNCj4gICAqIHJldHVybnMgdHJ1 ZSBpZiB3ZSd2ZSBmbHVzaGVkIHRocm91Z2ggd2FudF9mbHVzaF90aWQNCj4gICAqLw0KPiAtc3Rh dGljIHZvaWQgd2FpdF9jYXBzX2ZsdXNoKHN0cnVjdCBjZXBoX21kc19jbGllbnQgKm1kc2MsDQo+ IC0JCQkgICAgdTY0IHdhbnRfZmx1c2hfdGlkKQ0KPiArc3RhdGljIGludCB3YWl0X2NhcHNfZmx1 c2goc3RydWN0IGNlcGhfbWRzX2NsaWVudCAqbWRzYywNCj4gKwkJCSAgIHU2NCB3YW50X2ZsdXNo X3RpZCkNCj4gIHsNCj4gIAlzdHJ1Y3QgY2VwaF9jbGllbnQgKmNsID0gbWRzYy0+ZnNjLT5jbGll bnQ7DQo+ICsJc3RydWN0IGNlcGhfb3B0aW9ucyAqb3B0cyA9IG1kc2MtPmZzYy0+Y2xpZW50LT5v cHRpb25zOw0KPiArCWxvbmcgcmV0Ow0KPiAgDQo+ICAJZG91dGMoY2wsICJ3YW50ICVsbHVcbiIs IHdhbnRfZmx1c2hfdGlkKTsNCj4gIA0KPiAtCXdhaXRfZXZlbnQobWRzYy0+Y2FwX2ZsdXNoaW5n X3dxLA0KPiAtCQkgICBjaGVja19jYXBzX2ZsdXNoKG1kc2MsIHdhbnRfZmx1c2hfdGlkKSk7DQo+ ICsJcmV0ID0gd2FpdF9ldmVudF90aW1lb3V0KG1kc2MtPmNhcF9mbHVzaGluZ193cSwNCj4gKwkJ CQkgY2hlY2tfY2Fwc19mbHVzaChtZHNjLCB3YW50X2ZsdXNoX3RpZCksDQo+ICsJCQkJIGNlcGhf dGltZW91dF9qaWZmaWVzKG9wdHMtPm1vdW50X3RpbWVvdXQpKTsNCg0KVGVjaG5pY2FsbHkgc3Bl YWtpbmcsIG9wdHMtPm1vdW50X3RpbWVvdXQgaXMgY29uZmlndXJhYmxlIG9wdGlvbiBhbmQgaXQg Y2FuIGJlDQpkZWZpbmVkIGxvbmcgZW5vdWdoLiBGaW5hbGx5LCB5b3UgY291bGQgc2VlIHRoZSBz YW1lIGlzc3VlIGV2ZW4gd2l0aCB5b3VyDQpzb2x1dGlvbi4gTWF5YmUsIHdlIG5lZWQgdG8gaGF2 ZSBzb21lIGNoZWNrIG9mIG9wdHMtPm1vdW50X3RpbWVvdXQ/DQoNCj4gKwlpZiAoIXJldCkgew0K PiArCQlwcl93YXJuX2NsaWVudChjbCwgImNhcCBmbHVzaCB0aW1lb3V0IHdhaXRpbmcgZm9yIHRp ZCAlbGx1XG4iLA0KPiArCQkJICAgICAgIHdhbnRfZmx1c2hfdGlkKTsNCg0KTm93IHdlIHdpbGwg aGF2ZSB0aGVzZSBtZXNzYWdlcyBpbnN0ZWFkIG9mICJwcm9jZXNzIGhhcyBiZWVuIGJsb2NrZWQi IG1lc3NhZ2VzLg0KOikgRG8gd2UgcmVhbGx5IG5lZWQgdG8gaW5mb3JtIGFib3V0IHRoaXM/IE1h eWJlLCBkZWJ1ZyBtZXNzYWdlIGhlcmU/DQoNCj4gKwkJcmV0dXJuIC1FVElNRURPVVQ7DQo+ICsJ fQ0KPiAgDQo+ICAJZG91dGMoY2wsICJvaywgZmx1c2hlZCB0aHJ1ICVsbHVcbiIsIHdhbnRfZmx1 c2hfdGlkKTsNCj4gKwlyZXR1cm4gMDsNCj4gIH0NCj4gIA0KPiAgLyoNCj4gQEAgLTU4MzgsMTMg KzU4NDcsMTUgQEAgdm9pZCBjZXBoX21kc2NfcHJlX3Vtb3VudChzdHJ1Y3QgY2VwaF9tZHNfY2xp ZW50ICptZHNjKQ0KPiAgLyoNCj4gICAqIGZsdXNoIHRoZSBtZGxvZyBhbmQgd2FpdCBmb3IgYWxs IHdyaXRlIG1kcyByZXF1ZXN0cyB0byBmbHVzaC4NCj4gICAqLw0KPiAtc3RhdGljIHZvaWQgZmx1 c2hfbWRsb2dfYW5kX3dhaXRfbWRzY191bnNhZmVfcmVxdWVzdHMoc3RydWN0IGNlcGhfbWRzX2Ns aWVudCAqbWRzYywNCj4gLQkJCQkJCSB1NjQgd2FudF90aWQpDQo+ICtzdGF0aWMgaW50IGZsdXNo X21kbG9nX2FuZF93YWl0X21kc2NfdW5zYWZlX3JlcXVlc3RzKHN0cnVjdCBjZXBoX21kc19jbGll bnQgKm1kc2MsDQo+ICsJCQkJCQkgICAgICB1NjQgd2FudF90aWQpDQo+ICB7DQo+ICAJc3RydWN0 IGNlcGhfY2xpZW50ICpjbCA9IG1kc2MtPmZzYy0+Y2xpZW50Ow0KPiArCXN0cnVjdCBjZXBoX29w dGlvbnMgKm9wdHMgPSBtZHNjLT5mc2MtPmNsaWVudC0+b3B0aW9uczsNCj4gIAlzdHJ1Y3QgY2Vw aF9tZHNfcmVxdWVzdCAqcmVxID0gTlVMTCwgKm5leHRyZXE7DQo+ICAJc3RydWN0IGNlcGhfbWRz X3Nlc3Npb24gKmxhc3Rfc2Vzc2lvbiA9IE5VTEw7DQo+ICAJc3RydWN0IHJiX25vZGUgKm47DQo+ ICsJdW5zaWduZWQgbG9uZyBsZWZ0Ow0KPiAgDQo+ICAJbXV0ZXhfbG9jaygmbWRzYy0+bXV0ZXgp Ow0KPiAgCWRvdXRjKGNsLCAid2FudCAlbGxkXG4iLCB3YW50X3RpZCk7DQo+IEBAIC01ODgzLDcg KzU4OTQsMTkgQEAgc3RhdGljIHZvaWQgZmx1c2hfbWRsb2dfYW5kX3dhaXRfbWRzY191bnNhZmVf cmVxdWVzdHMoc3RydWN0IGNlcGhfbWRzX2NsaWVudCAqbWQNCj4gIAkJCX0NCj4gIAkJCWRvdXRj KGNsLCAid2FpdCBvbiAlbGx1ICh3YW50ICVsbHUpXG4iLA0KPiAgCQkJICAgICAgcmVxLT5yX3Rp ZCwgd2FudF90aWQpOw0KPiAtCQkJd2FpdF9mb3JfY29tcGxldGlvbigmcmVxLT5yX3NhZmVfY29t cGxldGlvbik7DQo+ICsJCQlsZWZ0ID0gd2FpdF9mb3JfY29tcGxldGlvbl90aW1lb3V0KA0KPiAr CQkJCQkmcmVxLT5yX3NhZmVfY29tcGxldGlvbiwNCj4gKwkJCQkJY2VwaF90aW1lb3V0X2ppZmZp ZXMob3B0cy0+bW91bnRfdGltZW91dCkpOw0KPiArCQkJaWYgKCFsZWZ0KSB7DQo+ICsJCQkJcHJf d2Fybl9jbGllbnQoY2wsDQo+ICsJCQkJCSAgICAgICAiZmx1c2ggbWRsb2cgcmVxdWVzdCB0aWQg JWxsdSB0aW1lZCBvdXRcbiIsDQo+ICsJCQkJCSAgICAgICByZXEtPnJfdGlkKTsNCj4gKwkJCQlj ZXBoX21kc2NfcHV0X3JlcXVlc3QocmVxKTsNCj4gKwkJCQlpZiAobmV4dHJlcSkNCj4gKwkJCQkJ Y2VwaF9tZHNjX3B1dF9yZXF1ZXN0KG5leHRyZXEpOw0KPiArCQkJCWNlcGhfcHV0X21kc19zZXNz aW9uKGxhc3Rfc2Vzc2lvbik7DQo+ICsJCQkJcmV0dXJuIC1FVElNRURPVVQ7DQoNClRoZSBzYW1l IGNvbmNlcm5zIGhlcmUuDQoNCj4gKwkJCX0NCj4gIA0KPiAgCQkJbXV0ZXhfbG9jaygmbWRzYy0+ bXV0ZXgpOw0KPiAgCQkJY2VwaF9tZHNjX3B1dF9yZXF1ZXN0KHJlcSk7DQo+IEBAIC01OTAxLDE1 ICs1OTI0LDE3IEBAIHN0YXRpYyB2b2lkIGZsdXNoX21kbG9nX2FuZF93YWl0X21kc2NfdW5zYWZl X3JlcXVlc3RzKHN0cnVjdCBjZXBoX21kc19jbGllbnQgKm1kDQo+ICAJbXV0ZXhfdW5sb2NrKCZt ZHNjLT5tdXRleCk7DQo+ICAJY2VwaF9wdXRfbWRzX3Nlc3Npb24obGFzdF9zZXNzaW9uKTsNCj4g IAlkb3V0YyhjbCwgImRvbmVcbiIpOw0KPiArCXJldHVybiAwOw0KPiAgfQ0KPiAgDQo+IC12b2lk IGNlcGhfbWRzY19zeW5jKHN0cnVjdCBjZXBoX21kc19jbGllbnQgKm1kc2MpDQo+ICtpbnQgY2Vw aF9tZHNjX3N5bmMoc3RydWN0IGNlcGhfbWRzX2NsaWVudCAqbWRzYykNCj4gIHsNCj4gIAlzdHJ1 Y3QgY2VwaF9jbGllbnQgKmNsID0gbWRzYy0+ZnNjLT5jbGllbnQ7DQo+ICAJdTY0IHdhbnRfdGlk LCB3YW50X2ZsdXNoOw0KPiArCWludCByZXQ7DQo+ICANCj4gIAlpZiAoUkVBRF9PTkNFKG1kc2Mt PmZzYy0+bW91bnRfc3RhdGUpID49IENFUEhfTU9VTlRfU0hVVERPV04pDQo+IC0JCXJldHVybjsN Cj4gKwkJcmV0dXJuIC1FSU87DQoNCldoeSAtRUlPIGhlcmU/IEFzIGZhciBhcyBJIGNhbiBmb2xs b3csIHdlIHdpbGwgcmV0cnkgdGhlIHN5bmMgb3BlcmF0aW9uLiBBbSBJDQpjb3JyZWN0PyBTbywg aXQncyBub3QgSS9PIGZhaWx1cmUgeWV0Lg0KDQpUaGFua3MsDQpTbGF2YS4NCg0KPiAgDQo+ICAJ ZG91dGMoY2wsICJzeW5jXG4iKTsNCj4gIAltdXRleF9sb2NrKCZtZHNjLT5tdXRleCk7DQo+IEBA IC01OTMwLDggKzU5NTUsMTEgQEAgdm9pZCBjZXBoX21kc2Nfc3luYyhzdHJ1Y3QgY2VwaF9tZHNf Y2xpZW50ICptZHNjKQ0KPiAgDQo+ICAJZG91dGMoY2wsICJzeW5jIHdhbnQgdGlkICVsbGQgZmx1 c2hfc2VxICVsbGRcbiIsIHdhbnRfdGlkLCB3YW50X2ZsdXNoKTsNCj4gIA0KPiAtCWZsdXNoX21k bG9nX2FuZF93YWl0X21kc2NfdW5zYWZlX3JlcXVlc3RzKG1kc2MsIHdhbnRfdGlkKTsNCj4gLQl3 YWl0X2NhcHNfZmx1c2gobWRzYywgd2FudF9mbHVzaCk7DQo+ICsJcmV0ID0gZmx1c2hfbWRsb2df YW5kX3dhaXRfbWRzY191bnNhZmVfcmVxdWVzdHMobWRzYywgd2FudF90aWQpOw0KPiArCWlmIChy ZXQpDQo+ICsJCXJldHVybiByZXQ7DQo+ICsNCj4gKwlyZXR1cm4gd2FpdF9jYXBzX2ZsdXNoKG1k c2MsIHdhbnRfZmx1c2gpOw0KPiAgfQ0KPiAgDQo+ICAvKg0KPiBkaWZmIC0tZ2l0IGEvZnMvY2Vw aC9tZHNfY2xpZW50LmggYi9mcy9jZXBoL21kc19jbGllbnQuaA0KPiBpbmRleCAwYTYwMjA4MGQ4 ZWY2Li42OTVjNWE5Yzk0MDI2IDEwMDY0NA0KPiAtLS0gYS9mcy9jZXBoL21kc19jbGllbnQuaA0K PiArKysgYi9mcy9jZXBoL21kc19jbGllbnQuaA0KPiBAQCAtNTY0LDcgKzU2NCw3IEBAIGV4dGVy biB2b2lkIGNlcGhfbWRzY19jbG9zZV9zZXNzaW9ucyhzdHJ1Y3QgY2VwaF9tZHNfY2xpZW50ICpt ZHNjKTsNCj4gIGV4dGVybiB2b2lkIGNlcGhfbWRzY19mb3JjZV91bW91bnQoc3RydWN0IGNlcGhf bWRzX2NsaWVudCAqbWRzYyk7DQo+ICBleHRlcm4gdm9pZCBjZXBoX21kc2NfZGVzdHJveShzdHJ1 Y3QgY2VwaF9mc19jbGllbnQgKmZzYyk7DQo+ICANCj4gLWV4dGVybiB2b2lkIGNlcGhfbWRzY19z eW5jKHN0cnVjdCBjZXBoX21kc19jbGllbnQgKm1kc2MpOw0KPiArZXh0ZXJuIGludCBjZXBoX21k c2Nfc3luYyhzdHJ1Y3QgY2VwaF9tZHNfY2xpZW50ICptZHNjKTsNCj4gIA0KPiAgZXh0ZXJuIHZv aWQgY2VwaF9pbnZhbGlkYXRlX2Rpcl9yZXF1ZXN0KHN0cnVjdCBjZXBoX21kc19yZXF1ZXN0ICpy ZXEpOw0KPiAgZXh0ZXJuIGludCBjZXBoX2FsbG9jX3JlYWRkaXJfcmVwbHlfYnVmZmVyKHN0cnVj dCBjZXBoX21kc19yZXF1ZXN0ICpyZXEsDQo+IGRpZmYgLS1naXQgYS9mcy9jZXBoL3N1cGVyLmMg Yi9mcy9jZXBoL3N1cGVyLmMNCj4gaW5kZXggYjYxMDc0YjM3N2FjNS4uYjUyOTYwNDAyZDY4ZSAx MDA2NDQNCj4gLS0tIGEvZnMvY2VwaC9zdXBlci5jDQo+ICsrKyBiL2ZzL2NlcGgvc3VwZXIuYw0K PiBAQCAtMTIyLDYgKzEyMiw3IEBAIHN0YXRpYyBpbnQgY2VwaF9zeW5jX2ZzKHN0cnVjdCBzdXBl cl9ibG9jayAqc2IsIGludCB3YWl0KQ0KPiAgew0KPiAgCXN0cnVjdCBjZXBoX2ZzX2NsaWVudCAq ZnNjID0gY2VwaF9zYl90b19mc19jbGllbnQoc2IpOw0KPiAgCXN0cnVjdCBjZXBoX2NsaWVudCAq Y2wgPSBmc2MtPmNsaWVudDsNCj4gKwlpbnQgcmV0Ow0KPiAgDQo+ICAJaWYgKCF3YWl0KSB7DQo+ ICAJCWRvdXRjKGNsLCAiKG5vbi1ibG9ja2luZylcbiIpOw0KPiBAQCAtMTMzLDkgKzEzNCw5IEBA IHN0YXRpYyBpbnQgY2VwaF9zeW5jX2ZzKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGludCB3YWl0 KQ0KPiAgDQo+ICAJZG91dGMoY2wsICIoYmxvY2tpbmcpXG4iKTsNCj4gIAljZXBoX29zZGNfc3lu YygmZnNjLT5jbGllbnQtPm9zZGMpOw0KPiAtCWNlcGhfbWRzY19zeW5jKGZzYy0+bWRzYyk7DQo+ ICsJcmV0ID0gY2VwaF9tZHNjX3N5bmMoZnNjLT5tZHNjKTsNCj4gIAlkb3V0YyhjbCwgIihibG9j a2luZykgZG9uZVxuIik7DQo+IC0JcmV0dXJuIDA7DQo+ICsJcmV0dXJuIHJldDsNCj4gIH0NCj4g IA0KPiAgLyoNCg==