From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 44A3ACCD18E for ; Wed, 15 Oct 2025 03:42:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7BE868E0008; Tue, 14 Oct 2025 23:42:39 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 767C28E0005; Tue, 14 Oct 2025 23:42:39 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5E1A38E0008; Tue, 14 Oct 2025 23:42:39 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 43A648E0005 for ; Tue, 14 Oct 2025 23:42:39 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id D8F8611B2B0 for ; Wed, 15 Oct 2025 03:42:38 +0000 (UTC) X-FDA: 83998951596.16.9872CC1 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.10]) by imf16.hostedemail.com (Postfix) with ESMTP id 7BA32180005 for ; Wed, 15 Oct 2025 03:42:34 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=Nomlccpy; dmarc=pass (policy=none) header.from=intel.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf16.hostedemail.com: domain of kanchana.p.sridhar@intel.com designates 198.175.65.10 as permitted sender) smtp.mailfrom=kanchana.p.sridhar@intel.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1760499755; a=rsa-sha256; cv=pass; b=5rQq1UkIeq1nyKRWmVcz1clf8QpX6n1WF/e+prJPTg3Wmieljz3T5Kc+iPSKQiJ+pgdTfb eBvOin++s4ra4KsUna2wub8XQnZhoIAeJj6UmjSVt1cBx/DZh/6rb9sHNlR5C9Tmnzexld h/UDShU9+DRSFvQB3PAPTZcsl8VPZ28= ARC-Authentication-Results: i=2; imf16.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=Nomlccpy; dmarc=pass (policy=none) header.from=intel.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf16.hostedemail.com: domain of kanchana.p.sridhar@intel.com designates 198.175.65.10 as permitted sender) smtp.mailfrom=kanchana.p.sridhar@intel.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1760499755; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=MTqELR5DWLur5opvoWBUnDGv/xVC1MRQZO57dMkvtEg=; b=w1XxiNrsdLdcmwqLRg+q6Sg6D/T8lapVCPVQtipREcTcc80JnLShsmOHB6d8izb7fex796 /iEEXVYdP6ToMGQd8o4HM+Q/SAJM5K/h9/rvxv9Uoz8LBFfs6CH3PTKUp0SAOhKtepEhM9 88XxcgplPeRkcNGWOAo6TdKrpbdd/RI= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1760499755; x=1792035755; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=MTqELR5DWLur5opvoWBUnDGv/xVC1MRQZO57dMkvtEg=; b=NomlccpyNfVWI/P4ybsdLJILvdqSk1ICRS27+2CpOvTorJGm2nmMbynT JrzzOb7dvns2VUpvggPSqERQUbZt48X1BkcysDkQ3hBKarA9yvbNTf2og KoAjjnoCbhz4iQjpCCBq57YfrhUAJRxqa7NhgbAaP2eqbEBR9tWBIPtjX 0zxTPCVwj1CJ/vBGarEE9e6KIqK+HWx6IvUI9XvXUdECvCPnNssqbE1Bd mBBBcpgfO7qQVjzvFKbgzdu+v2jFAov7KIIo0qQ1u1xB3HCxLgiKzSdOH M73QdxOspIZZKKUp65JXXmvU2JzQvd6A08r4EPIqGTzP/EkmVXJcVLqPl A==; X-CSE-ConnectionGUID: KBhs1dj4QaiKmjf6MMv3bQ== X-CSE-MsgGUID: ArEP1vDNR7aa9IH1oaC3sg== X-IronPort-AV: E=McAfee;i="6800,10657,11582"; a="80101360" X-IronPort-AV: E=Sophos;i="6.19,230,1754982000"; d="scan'208";a="80101360" Received: from fmviesa006.fm.intel.com ([10.60.135.146]) by orvoesa102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Oct 2025 20:42:33 -0700 X-CSE-ConnectionGUID: T4g02a2qQVidLdYkQpXJKQ== X-CSE-MsgGUID: ms+qL49uRjaQUCPa998+aw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.19,230,1754982000"; d="scan'208";a="181997939" Received: from orsmsx903.amr.corp.intel.com ([10.22.229.25]) by fmviesa006.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Oct 2025 20:42:32 -0700 Received: from ORSMSX902.amr.corp.intel.com (10.22.229.24) by ORSMSX903.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.27; Tue, 14 Oct 2025 20:42:31 -0700 Received: from ORSEDG902.ED.cps.intel.com (10.7.248.12) by ORSMSX902.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.27 via Frontend Transport; Tue, 14 Oct 2025 20:42:31 -0700 Received: from BN1PR04CU002.outbound.protection.outlook.com (52.101.56.45) by edgegateway.intel.com (134.134.137.112) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.27; Tue, 14 Oct 2025 20:42:30 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=BoUflosq+XGuD2jIrq4cQXsC9lU8xRFAhkiKV+iX0Dz+gDnXBnFU6Ul9w9fBPf/slpBy/kovn7BtKrfb63H8QtqNYEoBm+he7cPDUn75uao4uVpI7FtCWHnrsaFVxPk/ctUIA5y/xzor+puDb1e+2ojLCu2tJmKfkYDQQQc57/YAvAvBqAnxItab5eDzm11QMAArYx1z/Qoti88CIfBs7vZkoN4JcY6IIAFF9vJhO6t8fBdcSFfQhQOs52lmETcvxJarZnEaAWLwQgEYmIH6mS5iqutwLVsvr10AJ0DezM5Z+tWRLJIO05pICZO/hnyUDj5UCN5PgLZOZyUsY4Zpng== 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=MTqELR5DWLur5opvoWBUnDGv/xVC1MRQZO57dMkvtEg=; b=YIqlb8JWM4SLBKLQHTRDOVkdUoQsiQvEPCT1OmpNxmctTu96oWBJ5eNGRjJCuvvdPOhp+zxUaU5hxoIy5sqA4ysSNHq8V4mM1bkN7nZSWi9hapLmPC6xz3BHoINBfIOqNyRzTHaOXyMct04tpSWJFW+UM3N8c0Q44CpRcL6a1qDnzR1sCvSTSFFRTdU4FVIgbN4jMf04me2xuBypPNnyEa3Tg0BH3+4Rsp7GQ2zmwYB8pfGw2qQwVk4FZ9TYEBISZ6YdSxZz1sdNtYFBwjSJLRFmZU/MHkJGSCpfzYeTY92gqS33u56FGrtL2LUhszipRIKAhqrJlu3pnatlUapx/A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from PH7PR11MB8121.namprd11.prod.outlook.com (2603:10b6:510:234::14) by SA1PR11MB6712.namprd11.prod.outlook.com (2603:10b6:806:25c::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.13; Wed, 15 Oct 2025 03:42:22 +0000 Received: from PH7PR11MB8121.namprd11.prod.outlook.com ([fe80::ec4e:64cf:cf1f:daab]) by PH7PR11MB8121.namprd11.prod.outlook.com ([fe80::ec4e:64cf:cf1f:daab%7]) with mapi id 15.20.9228.009; Wed, 15 Oct 2025 03:42:22 +0000 From: "Sridhar, Kanchana P" To: Nhat Pham , Yosry Ahmed CC: "linux-kernel@vger.kernel.org" , "linux-mm@kvack.org" , "hannes@cmpxchg.org" , "chengming.zhou@linux.dev" , "usamaarif642@gmail.com" , "ryan.roberts@arm.com" , "21cnbao@gmail.com" <21cnbao@gmail.com>, "ying.huang@linux.alibaba.com" , "akpm@linux-foundation.org" , "senozhatsky@chromium.org" , "sj@kernel.org" , "kasong@tencent.com" , "linux-crypto@vger.kernel.org" , "herbert@gondor.apana.org.au" , "davem@davemloft.net" , "clabbe@baylibre.com" , "ardb@kernel.org" , "ebiggers@google.com" , "surenb@google.com" , "Accardi, Kristen C" , "Gomes, Vinicius" , "Feghali, Wajdi K" , "Gopal, Vinodh" , "Sridhar, Kanchana P" Subject: RE: [PATCH v12 22/23] mm: zswap: zswap_store() will process a large folio in batches. Thread-Topic: [PATCH v12 22/23] mm: zswap: zswap_store() will process a large folio in batches. Thread-Index: AQHcLpaY70ekQ7dio0CIg97nnm1fBLStgQgAgAAW5fCAFEmngIAAElMAgACww2A= Date: Wed, 15 Oct 2025 03:42:21 +0000 Message-ID: References: <20250926033502.7486-1-kanchana.p.sridhar@intel.com> <20250926033502.7486-23-kanchana.p.sridhar@intel.com> <2qvfjavbepw3sq2pvvcez6jsc3bxkxej27674l4ztfdza7jqaq@xi6qndkj5xhh> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH7PR11MB8121:EE_|SA1PR11MB6712:EE_ x-ms-office365-filtering-correlation-id: 62a80b5a-0e7c-4d0e-df53-08de0b9cd938 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|366016|38070700021; x-microsoft-antispam-message-info: =?utf-8?B?S1MrOW1DYmxUYW5KT3V2ZUpjWTQwa3Zyd0V5NFc3OXR5UEp4RVFzOVFxUkdF?= =?utf-8?B?MmcxZTcxaEtIcG0wMytXN0ZydU0zRnZ6WnpMbkx5Y3pPSnBiYkxHSE8yZmpq?= =?utf-8?B?NXVyblJXNUlyQnFabi9wZzVwcjdDTmIxQzdyeGh3Z2p4S1J0NFRYaWk3NXpu?= =?utf-8?B?eFphbUdwTmNsR3FmSk1YQ1Yrb3ZSOFlIR1lUbGFqVTVEbEVRVlAxODh5Vi93?= =?utf-8?B?cE5hZFh6R21SRko0YlRFbGtGd3FIdUtzRFdRWm1QTWp2QTlCc1hOVkF5REdy?= =?utf-8?B?RDQ2TGJiU01sOE9TQU0wSE8rQW9kdDgzZGZRTmZOYVdJK1ZiVFlkTkJDcjBv?= =?utf-8?B?cXdxVWZBeVJyR0pDeE4zdEU3OGlKRWEzeDNZVm95OGZUZWlJMnBQZnNPUHN1?= =?utf-8?B?ZGdBQ0EyNkZ6R0daMmJlQVlvVlRXYnJsS25sZEg2YlMrcGtPZGNadzl5SlB0?= =?utf-8?B?TmJxMERJdFVKNWRmN05JelZpOWlkVHYxK1VRaDl5d043UXRYRDBMR2w5UGlD?= =?utf-8?B?bURQSlVkTFJyM3EycWt1QWpLREhJWGtTYzFvV3JNUzdpamhsSGM2TTVMV3d2?= =?utf-8?B?aGdWaWlDeWJMc3pETEdocE9IQXdJUFV2eXg1a2V1SzNkVjloRk5Rbkx1OUlt?= =?utf-8?B?eDIyRzhWays3ckFWNzU1U0pncGlnZmJLQm9ESDY0UG9MZ0dJZGtlZTNhdnpv?= =?utf-8?B?eDV2ZjVONkx1YVNma2h1OUU2SWVwSzRRWTJUM0kwTUI2MnNkUXQvOWlxZHZK?= =?utf-8?B?b3lvVWd3anZJRVg3U3RQZEg5cUNJVmo3Z1BhbGNQanFFc1VxQyswSkpVbVoz?= =?utf-8?B?eW51Q0VGa211cFRROXZqTFkvMm52bG1zaFRybFUrbG9ZZGhFK1dFOEdHaEY3?= =?utf-8?B?RDUyK2hBdjdwMTB6dm1qMC9XZXBWcDJLZUt3QmZocUZpM0RDWTA0QkVHWTQw?= =?utf-8?B?V1lZUGVJZXM3dkYzVFlMMmxjaFB3aWc2WGEreXRLcGdJYmxVN2k5aDFBeDRP?= =?utf-8?B?TGdlcFpKOEZDYnVwaGloVVY5MW5Nc01iUk1OcXVjaTltQjQzRHN3aGFlbXN5?= =?utf-8?B?ZkZWMk5LTlV1TnhvcmVIUzlSZUtQS2pKVTlzd2RxVGFieDZma2xjdWMraHFa?= =?utf-8?B?V0NTaUVZYlJCMmwzNjc0cFBEU2pMcjFkR3dwaFB3bmkvVHI4eEFadUZsUGxl?= =?utf-8?B?YkxodE0xNnhxbCs5bmcvdG1VK2xpRVZJTytsYjFtWUt0NGpESXlhczBVeFNm?= =?utf-8?B?aEpJemhFaFl6QTkrTGNYa2dDTi9ZREp5NEp0cW9ONzlPNVFzZVJ3ZlNnVkhq?= =?utf-8?B?R21QR01xZmtOd29wdFRHRGtmeWl5YitIZjltY1l2VnRqOTYzYjdvQ1F1ellU?= =?utf-8?B?M2NTWityZ2tBaUJYeW1LelA0NVRwLzlIbE1zSmwyQzdMRitLbjZ2V3hGakkr?= =?utf-8?B?NHlydXE3OU5CODk0bFhsOGVYRzJWUnlYMkxGQUhVUElLb01DVnZtS3Vzakta?= =?utf-8?B?bTVkSUZ0WHd0MkEzdWVKSHIybUxDdCtyeGh1KzlUVk0wd080bnI4b0J2Y0ZM?= =?utf-8?B?WFh0NG1pUWJVdlNMWnQzN0k0UHA5QVM2bmVtYlAyU0NkcWY2VDdXK0Q3Mjho?= =?utf-8?B?L0tDakZVVE1yVGFwQklNbUxwZlZiaEVEbXpZSE40YVNpNGR0V3ZJcStaYUFL?= =?utf-8?B?RFJWM3hEU3pFR2NTUGhGZ09TVzkzYVdwTUhEU3ZoQmY5SHRQaHVGVXVHVGVV?= =?utf-8?B?TjIxb0pJZGxwL282bHUreHlEdGM0R0dKNHVUZEhBRUZkSFYxMzU4YVBxUFQ5?= =?utf-8?B?YytPdk1yOGFpaEdHSmwvbHVoblhOZGVydmsvazZ4ME9hTHJBZGFzZ3dCeXBV?= =?utf-8?B?Tm5CMDNtRUYzcEdWaVE0R1JGSCs2S2hyREp3a2ZGR05EaW5XQ1paYkh2VFV2?= =?utf-8?B?aDdsS0NJZFFzVzVtRU80emJqeUtFUXhnc0hWdkxYNVF2b0dPc0pXdk9Pa1V4?= =?utf-8?B?UVRmSDZ2SEE1UGU5Y1hITlladFplNjR5Q2ZXQW4yMU14dndMTTBoVU9TVUZZ?= =?utf-8?B?Q3kvbCs5bEtYc1pMRVVEck9UUzVjVVE0S2g0Zz09?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH7PR11MB8121.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(366016)(38070700021);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bGFRU2RoNE9aRUR1bW5pcEtZSHlVa3dvYUF2VC9URzJ0TGxpSm1KNmxLMjN4?= =?utf-8?B?d1pHdFRwK1krQ2xZbG9nYVh0WFBUZDVCdDFNTDZtWnVNNG5kUWF6NEZoOE05?= =?utf-8?B?aEQ0V1hHbnJaS3VBOExLcTVESjBuREl3WEdscFZrYThkZ2pJTmFIck02bGRJ?= =?utf-8?B?TkFmSDZOWWphbEt4UkZaRVhrdG5JRkJFUXhEaENLRVlaMk9yaFNRTEljQU5R?= =?utf-8?B?STN0RENTeGdoU2xCVnNJWFdIYnBJN0JLTS9YQXYxOE5ramRVbGpBUEozM1A1?= =?utf-8?B?dXFOSTYvUHNMWXJCbWQ3aUNzVUcxUi81RHlmM0tmMEszOWNlZEZ3OWZZOFkz?= =?utf-8?B?eEw3U1dBdTVKZHczeXA1K2dmejFaWUtvakh6RUlQdEgvdEt5eHBmR2xhSEE1?= =?utf-8?B?Rnp3WWpBZ2M0R2FpcG1tTWNXb3ZEWnd0Nmh2U2NKZ0FvT1FROW9HZG1zQ0h1?= =?utf-8?B?RVNmL1dncjFmc0d1NDJicFZ6eDFOVlhCWHdTdmhUV2IyRVpXUlpobWc0RnAx?= =?utf-8?B?RUpIcGxBV3NlY3dpMUk3elF0alZhdmYwUFFicjlOalMrTnU5dXNCQXRrdEg4?= =?utf-8?B?bEdvRFhUVnIweC83WHJKTDl4NU5CZ2hVbU90NkVxQ3R3ajAzWEtQWU5BTC9U?= =?utf-8?B?T0hQY00zblVkT1pIcWlaU2R5WWVib2JlRVloQTJyaXAwZFpBYUdLT2FUVXFL?= =?utf-8?B?YVlVVTRxSXRkV01ROWpXVW9PYm5HVjVTTGc2ZTA5Skt0RStaeWVtckNoVjFt?= =?utf-8?B?bTNZWTZZa2xJSUtNbmN6Smw4T29CaXlWZ1dPbkFscDVkSldaVFU3dCtiQ2NN?= =?utf-8?B?cEtmWTc3ZysvNGRKK05TdytwSy9ZL3Z6OXBZdWlVZmsyS2pMK25ITWdSVFVZ?= =?utf-8?B?bytRUjNSVm1rbzhrU09JT2N6YlMvdU00WWpCdDZWcGQ0YzVCaWNhQlEwcGZo?= =?utf-8?B?LzV4Vlk0d0RGUWpRQU1tWWlnSWJRYWdPS2o4eHd2V0duTk4yOWVqZ3ZtaUs1?= =?utf-8?B?cXBSRENZUmJjWFUxSWdqcGk4dE01NXVLcEpCZ0swK3VJdHZkRDFmaDJ1OXNL?= =?utf-8?B?Z2hlcGZaQ0o1MlhBcmk2MHZ2R3JTOURhb1cvckxQSnVMRzd4Y3ZFb0ZXcW02?= =?utf-8?B?bi8xbWowdHhOYkE5OXdwRVdkL3hDWkdHQ0VIc1NSNlU5OHY0NFdQZjJnYUUv?= =?utf-8?B?THlLd21WRy84QzMxay83U2I3d3J6Nkc5MzdCY213YTJQQWVFUGdkaGtGSXFZ?= =?utf-8?B?WDJmSHp1ZytJVHZXRU82dUxhNytHZEtWbEpVKzBDdkpNaE82TTFvVlN1UkZB?= =?utf-8?B?bTRxK0psMkIxMDc0YkRpMytOSjYvK1ZQOGZSSGNlYk9sM2ltNHRubHF2TEZM?= =?utf-8?B?TW9BMWlKTlVGWlZCSklOcndTSkdyb0hjV3R3Nkxlb0tnS2MrVHNaV2ZCbmFQ?= =?utf-8?B?MFZyeE5IcG9vWnc2ZC9kL25hM1dySUVHdm9MVkJVTmZEV0pqUTFOQ2pZVjFh?= =?utf-8?B?cFRXODQ1cm8wZEp0djMyM3drRFF4TGRCMGZXRi9kVisvSHMzdStTTFBxS3dG?= =?utf-8?B?RWt6SEtpQUNVejRhZW42UjhFMDh1MktKTzhJMFkyN0prK1JBR0RNQ2xoWVcr?= =?utf-8?B?V3NnSytpV2ZGdzRkdTBkZXFQcnZMOThtWWw2ZHFlMDV5bkxBL3BoQUpWT29x?= =?utf-8?B?RHcwZm5QZVZLMDJhUjlFdm9Wcng2UEJPTXhqNXRoSnRldFpIVW5OZStYODJP?= =?utf-8?B?R1VmUktldm15czgwZjIzVzlsckpzVk1oMjlFNkx6cnJPQnc3SDE3OTlybGlT?= =?utf-8?B?UngwS3BIYTRUejFqN3hoTmpZSWJ4OWtZYnllZG12Mm5aTlBZSVlNenUvTlI4?= =?utf-8?B?ajl6ejdPSGxWamFyTCtNeVBXeFVQM1p6T2I5S0RxOXF4dVhETkF6ejJhS1o5?= =?utf-8?B?dnVwUUdoUy9WZ2hWVFpkUFU2WGQ2TGZnNUN4blA5VkhpWDVIN1o1b2lGM1Rj?= =?utf-8?B?OEhrdmJTNGg3K0ZiV1NmcUVOa2dqSWV2dlpGbm9sZnlMaUV5Tm4xQm9reDVZ?= =?utf-8?B?a0tLbm9Gak1lSXZpTWxaUDJsSnYyeUVJTmN4WTJmSHhsUGpWNjg3TXFUVDhJ?= =?utf-8?B?ZVZxVFhkS1ZlL1pkd0x6RGpRSU1odnBZeWF3bHlIcDV4NDlzMkgyOEk3M0kv?= =?utf-8?B?NlE9PQ==?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH7PR11MB8121.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 62a80b5a-0e7c-4d0e-df53-08de0b9cd938 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Oct 2025 03:42:21.9730 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 8KUVZbwq1hezXFsnkoK+NiaIWDRQwkQdrfI9LagHcyStfVic9M6DidKXARhJu7ubMcmkFeeY1ybkFl0PLshJamGR/1xBsHM8U8fsJidWeDg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR11MB6712 X-OriginatorOrg: intel.com X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 7BA32180005 X-Stat-Signature: 4dbr7qh4y49ij1yju7g8c9dsbj1tm3zt X-HE-Tag: 1760499754-803062 X-HE-Meta: U2FsdGVkX1+wMyyK7+MQIT1is8F2GE+4jmHzYpLsSbPBG+hyBL4Aea9D6245YLoLfRbSinLnxrCViBdV5K8K0FDUKZQZZ2yNM3ZCc27Tjewr3zmIMt+vneMFMY8FI+RpcGdP10HR4FxAMVmIeDjecuBqbGmlQ424CR67LCm+b1CJUxQNTULtLwrd7Km8a4QJmnuGAzhRoTZ+ZSjNqfYDthsIBskjI3iiyW/zlwX9Ps8iio3DkD3kJK+4epp0B3qWYhCyRBTIiw2En7Glkr+pJI4QDF9oFSyGfAGNJWu/agAFvCl4kGoEMeWvIpXOBz+TfduAjBivrID3kRsjBsssfC2LBLZaU4zlTQwjOY2oxklynhxDM4BkGZRFqe21smXP5x9QnRGBbwqsuGPV1BOaob7xFQwwmbN2O0XcQSjF3fMxkBeVOGMaDjfGd/Y12Sm225iQVT+oHeV2usemEio1cNGKF4NX/Eu94rxlCM/Uouiv0QGf8aZIokQllajBYDoRYTjnQrFhn26zOWAUkR7fdOvdIoPvAcpGs1P8MMnTUgSF04PoYx0twPRz/o52r/NWp2Jg/Or7i4NSF4DuCmFdys8CijdUWERGJ/jHFF3BL/ONwVk2OzgleFcJvzN39Vmk+4/GKpsXHd8muPu7CDyayYcLsSIJ6qCJCvnPyBp9AzZOyfFJPGApHmrdz0CQJaYOHyZU4OMQ2Zq50ZIegUIlnrqIqsip8d5B8ZSV6LubGceQEkUMVmPVPOlszX4QQRB3Mwoea6ymWAP2fpKtf4nUst6pgf0w4PnPDs3X0Ob3+jTLknYWyVfQJtyyk96vPrJPZmU/rr7j8dXe1KUY1FqTAsJlvncrS36u85v8cC71LF9bJZM/uQgGkrTkpVntiRFrWgqGgfQyarE+xbWzPeoaK/wn/PixVPrXQN0UttVDQhM5H65A9Gs0VMx6QJkM5dUWdwGW1CdD6nbTa436JGA Nq1Q64wv xBss5UtN0g5Dca0KlLk0XLtmljGOfPhAe+HaHAgZr4Xrf1tUtLjjdOsUne41js/3t5w3OVexmoy82Va0fjKWt1lTa4qkhjC7ZpbDaySBXOT523TJQWfh8By1vxHZTX67r6YVAiJFnmiiHZwVV2xBJIklkjwjihF/2oUjox9egj9FIOr9v9M1R6xKCRNRo6pMPSeQsA+TcK3Zsu/TTyV5QbrYiiQU50rkBSm371AN33xea6NSUMu1v8y2og1UTgxzKnsOSp4GGPqDHghaFzh0Y7mMGGJ/xtfXBRHrr2z2EIsWaLNZIl6wKDCzGfz5h1WDQVuFLFbEXorSHWBPbxw7IRiB6WvCSx2TV5boaQYlAbG+OUgzNqanMP5G7us0NGjUbRTeXWIbgUepuOWVYEuSBic5z5yZUIK0A3B7wekeZOCPKPLPY5WRDYHgK1Rbetw4sp7k3mNfaD2OcY0lJ35fsyJY3le6/buJewk5Zh+msKAJK8RZ1rfe1L4QWlNuKrmZFweNi1iWTQNk4jSRTiQnNqX/WJOm9JUvfe3PdhPTRIj8zliy6ZD6r+duSf4kwHiLJYH5v0QB4yg9F7go/cffQbmisKpX1h/40QNlvV6czUpi2T/QdOcysHeNgFVy6cueUTIe0B71JZhS7v1rEKkdz6QlBVooFta7V766gEbVpeCXkoZsXu6LrxJHgN9Zx8oCpvUUpBSDANBpek0vm6E0kvNR7tB6t4p5HUXOq18+kjPhuWRqbaBsEYPnZlqCD64rPI4UMqZ1QeerfgxBLW96C+J5gdNfxr2xQvPR7vsoFL0KZGEnDMNd/A/yIwbYW17KWn5MV2+L7Sa8sf9SgRRGKWTCQgTOEURbrTypeaGIMr1LaVWLXgN2iIKVPFfYGWgwGIiY5GSK+iityuHRDnAL01ckyGbkj5NqOyXrzgcdmzSz49d4dq7nMf1lZj1Im1Pab67IfL//vDjkghaJVoJdkuDG1FJTO eSgrF7mM CDZl4csPgHpb61DBgcWIdjvhbmOX38wUTCCsyOy3zaMBSI+fTHIloZ64UR7O6ZEjwdA99n/3wzA8T7sFLvehNnlp16r6y9vU1GIOryYhnl90uyUI5SWPkP1A7XD68yiuzxFuSLm31945B/TZVNfJsUuBKyYMmWIs4Jo1Km9IXmf9exdSNiDNC33GrD7plER6 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE5oYXQgUGhhbSA8bnBoYW1j c0BnbWFpbC5jb20+DQo+IFNlbnQ6IFR1ZXNkYXksIE9jdG9iZXIgMTQsIDIwMjUgOTozNSBBTQ0K PiBUbzogWW9zcnkgQWhtZWQgPHlvc3J5LmFobWVkQGxpbnV4LmRldj4NCj4gQ2M6IFNyaWRoYXIs IEthbmNoYW5hIFAgPGthbmNoYW5hLnAuc3JpZGhhckBpbnRlbC5jb20+OyBsaW51eC0NCj4ga2Vy bmVsQHZnZXIua2VybmVsLm9yZzsgbGludXgtbW1Aa3ZhY2sub3JnOyBoYW5uZXNAY21weGNoZy5v cmc7DQo+IGNoZW5nbWluZy56aG91QGxpbnV4LmRldjsgdXNhbWFhcmlmNjQyQGdtYWlsLmNvbTsN Cj4gcnlhbi5yb2JlcnRzQGFybS5jb207IDIxY25iYW9AZ21haWwuY29tOw0KPiB5aW5nLmh1YW5n QGxpbnV4LmFsaWJhYmEuY29tOyBha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnOw0KPiBzZW5vemhh dHNreUBjaHJvbWl1bS5vcmc7IHNqQGtlcm5lbC5vcmc7IGthc29uZ0B0ZW5jZW50LmNvbTsgbGlu dXgtDQo+IGNyeXB0b0B2Z2VyLmtlcm5lbC5vcmc7IGhlcmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5h dTsNCj4gZGF2ZW1AZGF2ZW1sb2Z0Lm5ldDsgY2xhYmJlQGJheWxpYnJlLmNvbTsgYXJkYkBrZXJu ZWwub3JnOw0KPiBlYmlnZ2Vyc0Bnb29nbGUuY29tOyBzdXJlbmJAZ29vZ2xlLmNvbTsgQWNjYXJk aSwgS3Jpc3RlbiBDDQo+IDxrcmlzdGVuLmMuYWNjYXJkaUBpbnRlbC5jb20+OyBHb21lcywgVmlu aWNpdXMgPHZpbmljaXVzLmdvbWVzQGludGVsLmNvbT47DQo+IEZlZ2hhbGksIFdhamRpIEsgPHdh amRpLmsuZmVnaGFsaUBpbnRlbC5jb20+OyBHb3BhbCwgVmlub2RoDQo+IDx2aW5vZGguZ29wYWxA aW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHYxMiAyMi8yM10gbW06IHpzd2FwOiB6 c3dhcF9zdG9yZSgpIHdpbGwgcHJvY2VzcyBhDQo+IGxhcmdlIGZvbGlvIGluIGJhdGNoZXMuDQo+ IA0KPiBPbiBUdWUsIE9jdCAxNCwgMjAyNSBhdCA4OjI54oCvQU0gWW9zcnkgQWhtZWQgPHlvc3J5 LmFobWVkQGxpbnV4LmRldj4NCj4gd3JvdGU6DQo+ID4NCj4gPiBbLi5dDQo+ID4gPiA+ID4gQEAg LTE1OCw2ICsxNjEsOCBAQCBzdHJ1Y3QgenN3YXBfcG9vbCB7DQo+ID4gPiA+ID4gICBzdHJ1Y3Qg d29ya19zdHJ1Y3QgcmVsZWFzZV93b3JrOw0KPiA+ID4gPiA+ICAgc3RydWN0IGhsaXN0X25vZGUg bm9kZTsNCj4gPiA+ID4gPiAgIGNoYXIgdGZtX25hbWVbQ1JZUFRPX01BWF9BTEdfTkFNRV07DQo+ ID4gPiA+ID4gKyB1OCBjb21wcl9iYXRjaF9zaXplOw0KPiA+ID4gPiA+ICsgdTggc3RvcmVfYmF0 Y2hfc2l6ZTsNCj4gPiA+ID4NCj4gPiA+ID4gSSBkb24ndCB0aGluayB3ZSBuZWVkIHRvIHN0b3Jl IHN0b3JlX2JhdGNoX3NpemUsIHNlZW1zIHRyaXZpYWwgdG8NCj4gPiA+ID4gY2FsY3VsYXRlIGF0 IHN0b3JlIHRpbWUgKHBlcmhhcHMgaW4gYSBoZWxwZXIpLg0KPiA+ID4gPg0KPiA+ID4gPiBUYWtp bmcgYSBzdGVwIGJhY2ssIGlzIHRoZXJlIGFueSBiZW5lZml0IHRvIGxpbWl0aW5nIHN0b3JlX2Jh dGNoX3NpemUgdG8NCj4gPiA+ID4gY29tcHJfYmF0Y2hfc2l6ZT8gSXMgdGhlcmUgYSBkaXNhZHZh bnRhZ2UgdG8gdXNpbmcNCj4gPiA+ID4gWlNXQVBfTUFYX0JBVENIX1NJWkUNCj4gPiA+ID4gZXZl biBpZiBpdCdzIGhpZ2hlciB0aGFuIHRoZSBIVyBjb21wcmVzc2lvbiBiYXRjaCBzaXplPw0KPiA+ ID4NCj4gPiA+IFRoYW5rcyBZb3NyeSwgZm9yIHRoZSBjb2RlIHJldmlldyBjb21tZW50cy4gSSBo YWQgYSBkaXNjdXNzaW9uIHdpdGgNCj4gPiA+IEJhcnJ5IGVhcmxpZXIgb24gdGhlc2UgdmVyeSBz YW1lIHRvcGljcyBhcyBmb2xsb3cgdXAgdG8gaGlzIHJldmlldw0KPiBjb21tZW50cw0KPiA+ID4g Zm9yIHYxMSwgc3RhcnRpbmcgd2l0aCBbMV0uIENhbiB5b3UgcGxlYXNlIGdvIHRocm91Z2ggdGhl IHJhdGlvbmFsZSBmb3INCj4gPiA+IHRoZXNlIGRlc2lnbiBjaG9pY2VzLCBhbmQgbGV0IG1lIGtu b3cgaWYgeW91IGhhdmUgYW55IHF1ZXN0aW9uczoNCj4gPiA+DQo+ID4gPiBbMV06IGh0dHBzOi8v cGF0Y2h3b3JrLmtlcm5lbC5vcmcvY29tbWVudC8yNjUzMDMxOS8NCj4gPg0KPiA+IEkgYW0gc3Vy cHJpc2VkIHRoYXQgY2FsY3VsYXRpbmcgdGhlIHZhbHVlIGluIHpzd2FwX3N0b3JlKCkgY2F1c2Vz IGENCj4gPiByZWdyZXNzaW9uLCBidXQgSSBhbSBmaW5lIHdpdGgga2VlcGluZyB0aGUgcHJlY2Fs Y3VsYXRpb24gaW4gdGhpcyBjYXNlLg0KPiA+DQo+ID4gSSB0aGluayB0aGVyZSdzIGEgYmlnZ2Vy IHByb2JsZW0gaGVyZSB0aG8sIG1vcmUgYmVsb3cuDQo+ID4NCj4gPiA+ID4gPiArICovDQo+ID4g PiA+ID4gK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUgaW50IHpzd2FwX2VudHJpZXNfY2FjaGVfYWxs b2NfYmF0Y2godm9pZA0KPiA+ID4gPiAqKmVudHJpZXMsDQo+ID4gPiA+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQNCj4g PiA+ID4gbnJfZW50cmllcywNCj4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGdmcF90IGdmcCkNCj4gPiA+ID4gPiArew0KPiA+ID4g PiA+ICsgcmV0dXJuIGttZW1fY2FjaGVfYWxsb2NfYnVsayh6c3dhcF9lbnRyeV9jYWNoZSwgZ2Zw LCBucl9lbnRyaWVzLA0KPiA+ID4gPiBlbnRyaWVzKTsNCj4gPiA+ID4NCj4gPiA+ID4gV2UgY3Vy cmVudGx5IHVzZSBrbWVtX2NhY2hlX2FsbG9jX25vZGUoKSBpbg0KPiB6c3dhcF9lbnRyeV9jYWNo ZV9hbGxvYygpIHRvDQo+ID4gPiA+IGFsbG9jYXRlIHRoZSBlbnRyeSBvbiB0aGUgc2FtZSBub2Rl IGFzIHRoZSBjb21wcmVzc2VkIHBhZ2UuIFdlIHVzZQ0KPiA+ID4gPiBlbnRyeV90b19uaWQoKSB0 byBnZXQgdGhlIG5vZGUgZm9yIExSVSBvcGVyYXRpb25zLg0KPiA+ID4gPg0KPiA+ID4gPiBUaGlz IGJyZWFrcyB0aGF0IGFzc3VtcHRpb24uDQo+ID4gPg0KPiA+ID4gWW91IGJyaW5nIHVwIGEgZ29v ZCBwb2ludC4gSSB3YXMgbG9va2luZyBhdCB0aGUgY29kZSBpbiBzbHViLmMgYW5kIG15DQo+ID4g PiB1bmRlcnN0YW5kaW5nIHRodXMgZmFyIGlzIHRoYXQgYm90aCwgYnVsayBhbGxvY2F0aW9ucyBh bmQNCj4ga21lbV9jYWNoZV9hbGxvY19ub2RlKCkNCj4gPiA+IGFsbG9jYXRpb25zIGFyZSBtYWRl IGZyb20gYSBwZXItQ1BVICJjcHVfc2xhYiIgdGhhdCBpcyBhbGxvY2F0ZWQgYnkgU0xVQi4NCj4g PiA+DQo+ID4gPiBJSVVDLCB0aGUgY29uY2VybiB5b3UgYXJlIHJhaXNpbmcgaXMgaW4gdGhlIG1h aW5saW5lLCB0aGUgZW50cnkgaXMgYWxsb2NhdGVkDQo+IG9uDQo+ID4gPiB0aGUgc2FtZSBub2Rl IGFzIHRoZSBjb21wcmVzc2VkIHBhZ2UsIGFuZCBnZXRzIGFkZGVkIHRvIHRoZSBMUlUgbGlzdCBv Zg0KPiB0aGF0DQo+ID4gPiBub2RlLiBJT1csIHRoZSBub2RlIHRvIHdoaWNoIHRoZSBjb21wcmVz c2VkIHBhZ2UgYmVsb25ncyBpcyB0aGUgb25lIHRvDQo+IHdob3NlDQo+ID4gPiBMUlUgdGhlIGVu dHJ5IHdpbGwgYmUgYWRkZWQuDQo+ID4gPg0KPiA+ID4gV2l0aCB0aGlzIHBhdGNoLCB3aXRoIGtt ZW1fY2FjaGVfYWxsb2NfYnVsaygpLCB0aGUgZW50cnkgd2lsbCBiZSBjcmVhdGVkDQo+IG9uDQo+ ID4gPiB0aGUgcGVyLUNQVSBzbGFiIG9mIHRoZSBDUFUgb24gd2hpY2ggenN3YXBfc3RvcmUoKSBp cyBjYWxsZWQgYW5kIHdpbGwgYmUNCj4gPiA+IGFkZGVkIHRvIHRoZSBMUlUgb2YgdGhhdCBwZXIt Q1BVIHNsYWIncyBOVU1BIG5vZGUuIEhlbmNlLCB0aGUgZW5kDQo+IHJlc3VsdA0KPiA+ID4gY291 bGQgcG90ZW50aWFsbHkgYmUgdGhhdCB0aGUgenN3YXBfZW50cnkgZm9yIGEgcGFnZSBjb3VsZCBw b3RlbnRpYWxseSBiZQ0KPiA+ID4gb24gYSBkaWZmZXJlbnQgTlVNQSBub2RlL21lbWNnIHRoYW4g dGhlIHBhZ2UncyBOVU1BIG5vZGUuDQo+IA0KPiBJIHRoaW5rIG9ubHkgdGhlIE5VTUEgbm9kZSBp cyB0aGUgcHJvYmxlbSwgbm90IHRoZSBtZW1jZy4NCj4gDQo+ID4gPg0KPiA+ID4gVGhpcyBpcyBt eSB0aGlua2luZyBhcyB0byBob3cgdGhpcyB3aWxsIGltcGFjdCB0aGUgenN3YXAgc2hyaW5rZXI6 DQo+ID4gPg0KPiA+ID4gMSkgbWVtY2cgc2hyaW5rZXI6IGlmIHRoZSBtZW1jZyB0aGUgZW50cnkg ZW5kcyB1cCBpbiBpcyBvbiB0aGUNCj4genN3YXBfbGlzdF9scnUsDQo+ID4gPiAgICAgdGhlIGVu dHJ5IHdpbGwgYmUgd3JpdHRlbiBiYWNrLg0KPiA+ID4gMikgR2xvYmFsIHNocmlua2VyOiB3aWxs IGN5Y2xlIHRocm91Z2ggYWxsIG1lbWNnJ3MgdGhhdCBoYXZlIHBhZ2VzIGluIHRoZQ0KPiA+ID4g ICAgIHpzd2FwX2xpc3RfbHJ1LCBhbmQgdGhlIGVudHJ5IHdpbGwgYmUgd3JpdHRlbiBiYWNrLg0K PiA+ID4NCj4gPiA+IEJhc2VkIG9uIHRoaXMsIGl0IGlzIG5vdCBjbGVhciB0byBtZSBpZiB0aGVy ZSBpcyBhIHByb2JsZW0sIGFuZCB3b3VsZCBsaWtlIHRvDQo+ID4gPiByZXF1ZXN0IHlvdSwgTmhh dCBhbmQgb3RoZXJzIHRvIHByb3ZpZGUgaW5zaWdodHMgYXMgd2VsbC4NCj4gPiA+DQo+ID4gPiBJ bnRlcmVzdGluZ2x5LCBtb3N0IG9mIHRoZSBjb2RlIGluIHNsdWIuYyBoYXMgdW5saWtlbHkoIW5v ZGVfbWF0Y2goc2xhYiwNCj4gbm9kZSkpLg0KPiA+ID4gRG9lcyB0aGlzIGltcGx5IHNvbWUgaGln aGVyIGxldmVsIG1tIHNsYWIgYWxsb2NhdGlvbiByZXF1aXJlbWVudHM/DQo+ID4gPg0KPiA+ID4g SSBhbSBPayB3aXRoIGp1c3QgY2FsbGluZyB6c3dhcF9lbnRyeV9jYWNoZV9hbGxvYygpIGZvciAi bnJfcGFnZXMiIGlmIHdlDQo+ID4gPiB0aGluayB0aGlzIHdvdWxkIGJlIG1vcmUgY29ycmVjdC4N Cj4gPg0KPiA+IEkgc2F3IHlvdXIgb3RoZXIgcmVzcG9uc2UgYXMgd2VsbCwgYnV0IEkgdGhpbmsg b25lIHRoaW5nIGlzIG5vdCBjbGVhcg0KPiA+IGhlcmUuIFRoZSB6c3dhcCBlbnRyeSB3aWxsIGdl dCB3cml0dGVuIGJhY2sgImV2ZW50dWFsbHkiLCBzdXJlLCBidXQNCj4gPiB0aGF0J3Mgbm90IHRo ZSBwcm9ibGVtLg0KPiA+DQo+ID4gSWYgdGhlIHpzd2FwIGVudHJ5IGlzIG9uIHRoZSB3cm9uZyBu b2RlIGxydSwgdHdvIHRoaW5ncyBoYXBwZW46DQo+ID4gKGEpIFdoZW4gdGhlICJyaWdodCIgbm9k ZSBpcyB1bmRlciBtZW1vcnkgcHJlc3N1cmUsIHdlIGNhbm5vdCBmcmVlIHRoaXMNCj4gPiAgICAg ZW50cnkgYnkgd3JpdGluZyBpdCBiYWNrIHNpbmNlIGl0J3Mgbm90IGF2YWlsYWJsZSBpbiB0aGUg bHJ1Lg0KPiA+IChiKSBXaGVuIHRoZSAid3JvbmciIG5vZGUgaXMgdW5kZXIgbWVtb3J5IHByZXNz dXJlLCBpdCB3aWxsIHBvdGVudGlhbGx5DQo+ID4gICAgIHdyaXRlYmFjayBlbnRyaWVzIGZyb20g b3RoZXIgbm9kZXMgQU5EIHJlcG9ydCB0aGVtIGFzIGJlaW5nIGZyZWVkDQo+ID4gICAgIGZyb20g dGhpcyBub2RlLg0KPiA+DQo+ID4gQm90aCAoYSkgYW5kIChiKSBjYXVzZSBsZXNzIGVmZmVjdGl2 ZSByZWNsYWltIGZyb20gdGhlIHpzd2FwIHNocmlua2VyLg0KPiA+IEFkZGl0aW9uYWxseSAoYikg Y2F1c2VzIHRoZSBzaHJpbmtlciB0byByZXBvcnQgdGhlIHdyb25nIGFtb3VudCBvZiBmcmVlZA0K PiA+IG1lbW9yeSBmcm9tIHRoZSBub2RlLiBXaGlsZSB0aGlzIG1heSBub3QgYmUgc2lnbmlmaWNh bnQgdG9kYXksIGl0J3MgdmVyeQ0KPiA+IHBvc3NpYmxlIHRoYXQgbW9yZSBoZXVyaXN0aWNzIHN0 YXJ0IHJlbHlpbmcgb24gdGhpcyBudW1iZXIgaW4gdGhlDQo+ID4gZnV0dXJlLg0KPiA+DQo+ID4g SSBkb24ndCBiZWxpZXZlIHdlIHNob3VsZCBwdXQgenN3YXAgZW50cmllcyBvbiB0aGUgd3Jvbmcg TFJVLCBidXQgSSB3aWxsDQo+ID4gZGVmZXIgdG8gTmhhdCBmb3IgdGhlIGZpbmFsIHZlcmRpY3Qg aWYgaGUgaGFzIGEgZGlmZmVyZW50IG9waW5pb24uDQo+IA0KPiBPaCBzaG9vdC4gWWVhaCBJIG1p c3NlZCB0aGF0IHBhcnQuDQo+IA0KPiBJbiB0aGUgcGFzdCwgd2Ugc29ydCBvZiBkaWQgbm90IGNh cmUgLSB6c3dhcCB3YXMgdmVyeSBwb29ybHkgZGVzaWduZWQNCj4gZm9yIE5VTUEgYXJjaGl0ZWN0 dXJlIGluIGdlbmVyYWwsIGFuZCBtb3N0IG9mIG91ciB0ZXN0IHNldHVwcyBoYXZlDQo+IGJlZW4g c2luZ2xlLW5vZGUsIHNvIHRoZXNlIGtpbmRzIG9mIGRpc2NyZXBhbmNpZXMgZGlkIG5vdCBzaG93 IHVwIGluDQo+IHBlcmZvcm1hbmNlIG51bWJlcnMuDQo+IA0KPiBCdXQgd2UgYXJlIGdldHRpbmcg bW9yZSBtdWx0aS1ub2RlIHN5c3RlbXM6DQo+IA0KPiAxLiBCaWdnZXIgaG9zdHMgKG1lbW9yeS13 aXNlKSB0ZW5kIHRvIGFsc28gaGF2ZSBtb3JlIHRoYW4gb25lIG5vZGVzLg0KPiBJdCBzY2FsZXMg YmV0dGVyIHRoYXQgd2F5IChlc3BlY2lhbGx5IGJlY2F1c2UgYSBsb3Qgb2Ygc3RydWN0dXJlcyBh bmQNCj4gbG9ja3MgcHJvdGVjdGluZyB0aGVtIGFyZSBub2RlLXBhcnRpdGlvbmVkKS4NCj4gDQo+ IDIuIFdlIGhhdmUgYWxzbyBzZWVuIGRpZmZlcmVudCBtZW1vcnkgbWVkaWEgdGhhdCBhcmUgb2Z0 ZW4gZXhwcmVzc2VkDQo+IHRvIHRoZSBrZXJuZWwgYXMgbm9kZXM6IENYTCwgR1BVIG1lbW9yeSwg ZXRjLg0KPiANCj4gVGhpcyB3aWxsIG5lY2Vzc2l0YXRlIHRpZ2h0ZW5pbmcgbWVtb3J5IHBsYWNl bWVudC4gV2UgcmVjZW50bHkgaGFkIHRvDQo+IGZpeCBvbmUgc3VjaCBpc3N1ZToNCj4gDQo+IGh0 dHBzOi8vZ2l0aHViLmNvbS90b3J2YWxkcy9saW51eC9jb21taXQvNTZlNWExMDNhNzIxZDBlZjEz OWJiYTdmZjNkM2ENCj4gZGE2YzgyMTdkNWINCj4gDQo+IFNvIEknbSBhIGJpdCBuZXJ2b3VzIGFi b3V0IHRoaXMgY2hhbmdlLCB3aGljaCB3aWxsIG1ha2UgdXMgdXNlIHRoZSB3cm9uZw0KPiBMUlUu Li4NCj4gDQo+IFNvbWUgd29yayBhcm91bmQ6DQo+IA0KPiAxLiBDYW4gd2Ugc3F1ZWV6ZSBhbiBl eHRyYSBpbnQgZmllbGQgYW55d2hlcmUgaW4gc3RydWN0IHpzd2FwX2VudHJ5Pw0KPiANCj4gMi4g Q2FuIHdlIHB1bXAgbmlkIGFsbCB0aGUgd2F5IHRvIHpzd2FwX2xydV9hZGQoKT8NCj4gDQo+IFRo aXMgaXMgc3RpbGwgbm90IDEwMCUgaWRlYWwgLSB0aGUgbWV0YWRhdGEgKHN0cnVjdCB6c3dhcF9l bnRyeSkgd2lsbA0KPiBzdGlsbCBiZSBhbGxvY2F0ZWQgb24gdGhlIHdyb25nIG5vZGUuIEJ1dCBh dCBsZWFzdCB0aGUgZGF0YSBhcmUNCj4gcHJvcGVybHkgbWFuYWdlZCwgaS5lIG9uIHRoZSByaWdo dCBMUlUuDQoNClRoYW5rcywgTmhhdCBhbmQgWW9zcnkgZm9yIHRoZSBkaXNjdXNzaW9uLiBUaGFu ayB5b3UgTmhhdCwgZm9yIHRoZQ0KenNtYWxsb2MgY2hhbmdlIGxvZyByZWZlcmVuY2UgYW5kIGZv ciB0aGUgd29yayBhcm91bmRzIQ0KDQpGb2xsb3dpbmcgeW91ciBzdWdnZXN0aW9uIGluICgyKSwg Y2FuIHdlIHBhc3MgaW4gdGhlIGZvbGlvJ3MgbmlkIGZyb20NCnpzd2FwX3N0b3JlX3BhZ2VzKCkg dG8genN3YXBfbHJ1X2FkZCgpLCBhcyBmb2xsb3dzOg0KDQpkaWZmIC0tZ2l0IGEvbW0venN3YXAu YyBiL21tL3pzd2FwLmMNCmluZGV4IDI2M2JjNmQ3ZjVjNi4uNDQ2NjVkZWVjZTgwIDEwMDY0NA0K LS0tIGEvbW0venN3YXAuYw0KKysrIGIvbW0venN3YXAuYw0KQEAgLTY5NCw5ICs2OTQsOSBAQCBz dGF0aWMgaW5saW5lIGludCBlbnRyeV90b19uaWQoc3RydWN0IHpzd2FwX2VudHJ5ICplbnRyeSkN CiAgICAgICAgcmV0dXJuIHBhZ2VfdG9fbmlkKHZpcnRfdG9fcGFnZShlbnRyeSkpOw0KIH0NCiAN Ci1zdGF0aWMgdm9pZCB6c3dhcF9scnVfYWRkKHN0cnVjdCBsaXN0X2xydSAqbGlzdF9scnUsIHN0 cnVjdCB6c3dhcF9lbnRyeSAqZW50cnkpDQorc3RhdGljIHZvaWQgenN3YXBfbHJ1X2FkZChzdHJ1 Y3QgbGlzdF9scnUgKmxpc3RfbHJ1LCBzdHJ1Y3QgenN3YXBfZW50cnkgKmVudHJ5LA0KKyAgICAg ICAgICAgICAgICAgICAgICAgICBpbnQgbmlkKQ0KIHsNCi0gICAgICAgaW50IG5pZCA9IGVudHJ5 X3RvX25pZChlbnRyeSk7DQogICAgICAgIHN0cnVjdCBtZW1fY2dyb3VwICptZW1jZzsNCiANCiAg ICAgICAgLyoNCkBAIC0xNzU4LDcgKzE3NTgsNyBAQCBzdGF0aWMgYm9vbCB6c3dhcF9zdG9yZV9w YWdlcyhzdHJ1Y3QgZm9saW8gKmZvbGlvLA0KICAgICAgICAgICAgICAgICAqICAgIGFuIGluY29o ZXJlbnQgZW50cnkuDQogICAgICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgaWYgKGxp a2VseShlbnRyeS0+bGVuZ3RoKSkNCi0gICAgICAgICAgICAgICAgICAgICAgIHpzd2FwX2xydV9h ZGQoJnpzd2FwX2xpc3RfbHJ1LCBlbnRyeSk7DQorICAgICAgICAgICAgICAgICAgICAgICB6c3dh cF9scnVfYWRkKCZ6c3dhcF9saXN0X2xydSwgZW50cnksIG5pZCk7DQogICAgICAgIH0NCiANCiAg ICAgICAgcmV0dXJuIHRydWU7DQotLSANCg0KSSBiZWxpZXZlIHRoaXMgd2lsbCBhZGQgdGhlIGVu dHJ5IHRvIHRoZSBMUlUgbm9kZSBvZiB0aGUgZm9saW8gYmVpbmcNCmNvbXByZXNzZWQuIElmIHNv LCB3ZSBtYXkgYmUgYWJsZSB0byBhdm9pZCBhZGRpbmcgYW4gaW50IGZpZWxkIHRvDQpzdHJ1Y3Qg enN3YXBfZW50cnk/DQoNCj4gDQo+ID4NCj4gPiA+ID4NCj4gPiA+ID4gRG9lcyBpdCBhY3R1YWxs eSBtYXR0ZXIgaWYgd2UgZG8gdGhlIGluaXRpYWxpemF0aW9ucyBoZXJlIHZzLiByaWdodA0KPiA+ ID4gPiBiZWZvcmUgaW5zZXJ0aW5nIHRvIHRoZSBMUlUgKGN1cnJlbnQgYmVoYXZpb3IpPw0KPiA+ ID4NCj4gPiA+IFllcywgaXQgaW1wYWN0cyBiYXRjaGluZyBwZXJmb3JtYW5jZSB3aXRoIHNvZnR3 YXJlIHF1aXRlIGEgYml0Lg0KPiA+DQo+ID4gVGFraW5nIGEgc3RlcCBiYWNrLCBiYXNlZCBvbiBk aXNjdXNzaW9ucyBpbiB0aGlzIHRocmVhZCBhbmQgb3RoZXJzLCBpdA0KPiA+IHNlZW1zIGxpa2Ug dGhlIHBlcmZvcm1hbmNlIG9mIHpzd2FwX3N0b3JlKCkgaXMgdmVyeSBzZW5zaXRpdmUgdG8gbWlu b3INCj4gPiBjaGFuZ2VzIGxpa2UgdGhpcyBvbmUsIGNhbGN1bGF0aW5nIHRoZSBzdG9yZSBzaXpl LCBldGMuDQo+ID4NCj4gPiBJIGRvbid0IHJlY2FsbCB0aGlzIGJlaW5nIHRoZSBjYXNlIGJlZm9y ZSB0aGlzIHBhdGNoIHNlcmllcy4gSXQgc2VlbXMNCj4gPiBsaWtlIGFuIGFydGlmYWN0IG9mIGJh dGNoaW5nIGFmZmVjdGluZyBwZXJmb3JtYW5jZSBuZWdhdGl2ZWx5IGFuZA0KPiA+IGEgY29sbGVj dGlvbiBvZiBtaWNyby1vcHRpbWl6YXRpb25zIGFuZCAiY29ycmVjdCIgcGxhY2VtZW50IG9mIGNv ZGUvZGF0YQ0KPiA+IHRvIGZpeCBpdC4gVGhpcyBzZWVtcyB0byBiZSB2ZXJ5IGZyYWdpbGUuDQo+ IA0KPiBJIGFncmVlLiBUaGlzIHNlZW1zIHRyb3VibGluZy4NCj4gDQo+IFdoYXQncyB0aGUgdmFy aWFuY2Ugb2YgeW91ciBiZW5jaG1hcmsgcmVzdWx0cywgS2FuY2hhbmE/IEkgaGF2ZSBmb3VuZA0K PiB0aGF0IGtlcm5lbCBidWlsZCB0ZXN0cyBjYW4gaGF2ZSBxdWl0ZSBhIGJpdCBvZiB2YXJpYW5j ZSwgYnV0IGlzIGl0IGFzDQo+IGJpZyBhcyB0aGUgcGVyZm9ybWFuY2UgZGlmZmVyZW5jZSBvZiB0 aGVzZSBtaW5vciBjaGFuZ2VzIChpLmUsIGNhbiBpdA0KPiBleHBsYWluIHRoZSAicmVncmVzc2lv biIpPw0KDQpJIHRlc3RlZCB0aGUgcGVyZm9ybWFuY2UgZGlmZmVyZW5jZSBieSBub3Qgc3Rvcmlu ZyAidTggc3RvcmVfYmF0Y2hfc2l6ZSINCmluIHN0cnVjdCB6c3dhcF9wb29sIGFuZCBpbnN0ZWFk IGNhbGN1bGF0aW5nIGl0IGR5bmFtaWNhbGx5IGluIHpzd2FwX3N0b3JlKCkuDQpJIHRlc3RlZCBp dCB3aXRoIHVzZW1lbSAzMCBwcm9jZXNzZXMsIHdoaWNoIGlzIGxlc3MgcHJvbmUgdG8gdmFyaWFu Y2UuDQoNCkl0IGFwcGVhcnMgdGhhdCB0aGVyZSBpcyBvdmVyYWxsIGFuIGltcHJvdmVtZW50IC0t IEkgbXVzdCBoYXZlIGJlZW4NCmNvbmZ1c2VkIG9yIGl0IGNvdWxkIGhhdmUgYmVlbiB0aGUgY2Fz ZSB3aXRoIGFuIGVhcmxpZXIgbW0tdW5zdGFibGUsIG5vdA0KdGhlIG9uZSB1c2VkIGZvciB2MTIu IA0KDQpXaGVuIEkgdGVzdGVkIHRoaXMgY2hhbmdlIHRvZGF5LCB0aHJvdWdocHV0IGlzIGJldHRl ciBmb3IgNjRLL1BNRCwNCmFuZCBsYXRlbmN5IGltcHJvdmVzIGZvciBQTUQuIFRoZXJlJ3MgYSBz bGlnaHQgbGF0ZW5jeSAicmVncmVzc2lvbiIgb2YNCjIlIGluIHN5cyB0aW1lIGFuZCAxJSBpbiBl bGFwc2VkIHRpbWUgZm9yIDY0SyBmb2xpb3M6DQoNCnVzZW1lbTMwLCA2NEsgZm9saW9zOg0KDQog ICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9vbC0+c3Rv cmVfYmF0Y2hfc2l6ZSAgICAgc3RvcmVfYmF0Y2hfc2l6ZQ0KCQkJICAgIGNvbXB1dGVkIG9uY2Ug YW5kIHN0b3JlZCAgIGNvbXB1dGVkIHBlciBjYWxsIHRvDQoJCQkgICAgaW4genN3YXBfcG9vbCAg ICAgICAgICAgICAgenN3YXBfc3RvcmUoKQ0KICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAgICB6c3dh cCBjb21wcmVzc29yICAgICAgICAgICAgICAgICAgIHpzdGQgICAgICAgICAgICAgIHpzdGQNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgDQogICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICAgIFRvdGFsIHRocm91Z2hwdXQgKEtCL3MpICAg ICAgIDYsMTA2LDUzOSAgICAgICAgIDYsMTQ3LDQxOQ0KICAgICBBdmVyYWdlIHRocm91Z2hwdXQg KEtCL3MpICAgICAgIDIwMyw1NTEgICAgICAgICAgIDIwNCw5MTMNCiAgICAgZWxhcHNlZCB0aW1l IChzZWMpICAgICAgICAgICAgICAgMTAwLjEyICAgICAgICAgICAgMTAxLjMwDQogICAgIHN5cyB0 aW1lIChzZWMpICAgICAgICAgICAgICAgICAyLDQ1OC43OSAgICAgICAgICAyLDUxMS41NCAgIA0K ICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQoNCg0KdXNlbWVtMzAsIFBNRCBmb2xpb3M6DQoNCiAgICAg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb29sLT5zdG9yZV9i YXRjaF9zaXplICAgICBzdG9yZV9iYXRjaF9zaXplDQoJCQkgICAgY29tcHV0ZWQgb25jZSBhbmQg c3RvcmVkICAgY29tcHV0ZWQgcGVyIGNhbGwgdG8NCgkJCSAgICBpbiB6c3dhcF9wb29sICAgICAg ICAgICAgICB6c3dhcF9zdG9yZSgpDQogICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICAgIHpzd2FwIGNv bXByZXNzb3IgICAgICAgICAgICAgICAgICAgenN0ZCAgICAgICAgICAgICAgenN0ZCAgIA0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICANCiAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgICAgVG90YWwgdGhyb3VnaHB1dCAoS0IvcykgICAg ICAgNiw3MTUsNTc5ICAgICAgICAgNiw3NjIsMDk3DQogICAgIEF2ZXJhZ2UgdGhyb3VnaHB1dCAo S0IvcykgICAgICAgMjIzLDg1MiAgICAgICAgICAgMjI1LDQwMw0KICAgICBlbGFwc2VkIHRpbWUg KHNlYykgICAgICAgICAgICAgICAgOTQuNjggICAgICAgICAgICAgODguNTUNCiAgICAgc3lzIHRp bWUgKHNlYykgICAgICAgICAgICAgICAgIDIsMzEzLjA4ICAgICAgICAgIDIsMTAwLjI3ICAgDQog ICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tDQoNCkkgY2FuIGluY29ycG9yYXRlIHRoaXMgY2hhbmdlIGluIHYx MyBpZiBpdCBhbGxheXMgeW91ciBjb25jZXJucyBhYm91dA0KY29kZSBmcmFnaWxpdHkuIEFnYWlu LCBteSBhcG9sb2dpZXMuDQoNCkkgYmVsaWV2ZSB0aGUgbmV3IGJhdGNoaW5nIGltcGxlbWVudGF0 aW9uIG9mIHpzd2FwX2NvbXByZXNzKCkgaXMNCm5vdCByZWx5aW5nIG9uIGFueSBvdGhlciAnbWlj cm8tb3B0aW1pemF0aW9ucyBhbmQgImNvcnJlY3QiIHBsYWNlbWVudA0Kb2YgY29kZS9kYXRhJy4g SXQgYWltcyB0byBkaXJlY3RseSByZXByZXNlbnQgdGhlIGNvbW1vbmFsaXR5IG9mIGENCmJhdGNo aW5nIGFyY2hpdGVjdHVyZSBmb3Igc29mdHdhcmUvc2VxdWVudGlhbCBhbmQgYmF0Y2hpbmcvcGFy YWxsZWwNCmNvbXByZXNzb3JzIChoYXJkd2FyZSBhbmQgc29mdHdhcmUgYmF0Y2hpbmcgaW4gZnV0 dXJlIGFzIG91ciBjb3ZlciBsZXR0ZXINCnN0YXRlcyk7IGJvcnJvd2luZyB0aGUgZ2VuZXJhbCBj b2RlIGZsb3cgZnJvbSB0aGUgbWFpbmxpbmUgcGVyLXBhZ2UNCmltcGxlbWVudGF0aW9uIHdoaWxl IGluY29ycG9yYXRpbmcgSGVyYmVydCdzIFNHIGxpc3RzIGJhc2VkDQpiYXRjaGluZyBjcnlwdG8g aW50ZXJmYWNlIHN1Z2dlc3Rpb24uIEFyZSB0aGVyZSBhbnkgb3RoZXIgc3BlY2lmaWMNCmNvbmNl cm5zIHlvdSBoYXZlIHRoYXQgSSBtaWdodCBub3QgYmUgY29tcHJlaGVuZGluZz8gSWYgc28sIHBs ZWFzZQ0KbGV0IG1lIGtub3cgYW5kIEkgYW0gaGFwcHkgdG8gZmFjdG9yIHRoaXMgaW4gYXMgSSB3 b3JrIG9uIHYxMy4NCg0KVGhlIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50cyBkYXRhIEkgcG9zdGVk IGluIHYxMiBmb3IgenN0ZCBhbmQNCmRlZmxhdGUtaWFhIHdpdGggdGhpcyBiYXRjaGVkIHpzd2Fw X2NvbXByZXNzKCkgdmVyc2lvbiBpcyBhbHNvDQpzb21ldGhpbmcgZm9yIHVzIHRvIGNvbnNpZGVy LCBpZiB3ZSBhZ3JlZSB0aGF0IGVsaW1pbmF0aW5nIHRoZQ0KenN3YXBfcG9vbCdzICJzdG9yZV9i YXRjaF9zaXplIiBtZW1iZXIgd2lsbCBmaXggYW55IGNvbmNlcm5zDQphYm91dCBjb2RlIGZyYWdp bGl0eS4NCg0KVGhhbmtzIGFnYWluIGZvciB5b3VyIGhlbHBmdWwgY3JpdGlxdWUgYW5kIHN1Z2dl c3Rpb25zIQ0KDQpCZXN0IHJlZ2FyZHMsDQpLYW5jaGFuYQ0KDQo+IA0KPiA+DQo+ID4gSXQgaXMg dmVyeSBwb3NzaWJsZSB0aGF0IGFuIGluY29taW5nIGNoYW5nZSB3aWxsIG1vdmUgdGhlDQo+ID4g aW5pdGlhbGl6YXRpb25zIG9yIG1ha2Ugb3RoZXIgY2hhbmdlcyB0byB0aGUgY29kZSwgdGhhdCB3 aWxsIHNlZW1pbmdseQ0KPiA+IGNhdXNlIHJlZ3Jlc3Npb25zIHdoZW4gdGhleSByZWFsbHkgc2hv dWxkbid0Lg0KPiA+DQo+ID4gQWRkaXRpb25hbGx5LCB3aGF0IG1heSBzZWVtIG9wdGltYWwgb24g dGhlIENQVSB5b3UgYXJlIHRlc3Rpbmcgb24gbWF5YmUNCj4gPiBiZSBzdWJvcHRpbWFsIGZvciBv dGhlciBDUFVzLiBJIHRoaW5rIHRoZSBiaWcgcHJvYmxlbSBoZXJlIGlzIG5vdCB3aGVyZQ0KPiA+ IHRvIGluaXRpYWxpemUgdGhlIGVudHJ5IG9yIHdoZXRoZXIgdG8gcHJlY29tcHV0ZSB0aGUgc3Rv cmUgYmF0Y2ggc2l6ZSwNCj4gPiBpdCdzIHdoeSB0aGUgY29kZSBoYXMgYmVjb21lIGV4dHJlbWVs eSBzZW5zaXRpdmUgdG8gdGhlc2UgY2hhbmdlcyB3aGVuDQo+ID4gaXQgc2hvdWxkbid0IGJlLiB6 c3dhcF9zdG9yZSgpIGlzIG5vdCBhIGZhc3QgcGF0aCBieSBhbnkgbWVhbnMsIGFuZA0KPiA+IHBl b3BsZSB3aWxsIG5vdCBleHBlY3Qgc3VjaCBjaGFuZ2VzIHRvIGNhdXNlIG1lYW5pbmdmdWwgcmVn cmVzc2lvbnMuDQo+IA0KPiBBZ3JlZS4gVGhlc2UgbWljcm8tb3B0aW1pemF0aW9ucyBzZWVtIHZl cnkgZnJhZ2lsZS4NCj4gDQo+ID4NCj4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gKyBmb3IgKGkg PSAwOyBpIDwgbnJfcGFnZXM7ICsraSkgew0KPiA+ID4gPiA+ICsgICAgICAgICBlbnRyaWVzW2ld LT5oYW5kbGUgPSAodW5zaWduZWQgbG9uZylFUlJfUFRSKC1FSU5WQUwpOw0KPiA+ID4gPiA+ICsg ICAgICAgICBlbnRyaWVzW2ldLT5wb29sID0gcG9vbDsNCj4gPiA+ID4gPiArICAgICAgICAgZW50 cmllc1tpXS0+c3dwZW50cnkgPSBwYWdlX3N3YXBfZW50cnkoZm9saW9fcGFnZShmb2xpbywNCj4g PiA+ID4gc3RhcnQgKyBpKSk7DQo+ID4gPiA+ID4gKyAgICAgICAgIGVudHJpZXNbaV0tPm9iamNn ID0gb2JqY2c7DQo+ID4gPiA+ID4gKyAgICAgICAgIGVudHJpZXNbaV0tPnJlZmVyZW5jZWQgPSB0 cnVlOw0KPiA+ID4gPiA+ICsgICAgICAgICBJTklUX0xJU1RfSEVBRCgmZW50cmllc1tpXS0+bHJ1 KTsNCj4gPiA+ID4gPiArIH0NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IC0gb2xkID0geGFfc3RvcmUo c3dhcF96c3dhcF90cmVlKHBhZ2Vfc3dwZW50cnkpLA0KPiA+ID4gPiA+IC0gICAgICAgICAgICAg ICAgc3dwX29mZnNldChwYWdlX3N3cGVudHJ5KSwNCj4gPiA+ID4gPiAtICAgICAgICAgICAgICAg IGVudHJ5LCBHRlBfS0VSTkVMKTsNCj4gPiA+ID4gPiAtIGlmICh4YV9pc19lcnIob2xkKSkgew0K PiA+ID4gPiA+IC0gICAgICAgICBpbnQgZXJyID0geGFfZXJyKG9sZCk7DQo+ID4gPiA+ID4gKyBm b3IgKGkgPSAwOyBpIDwgbnJfcGFnZXM7ICsraSkgew0KPiA+ID4gPiA+ICsgICAgICAgICBzdHJ1 Y3QgcGFnZSAqcGFnZSA9IGZvbGlvX3BhZ2UoZm9saW8sIHN0YXJ0ICsgaSk7DQo+ID4gPiA+ID4N Cj4gPiA+ID4gPiAtICAgICAgICAgV0FSTl9PTkNFKGVyciAhPSAtRU5PTUVNLCAidW5leHBlY3Rl ZCB4YXJyYXkgZXJyb3I6DQo+ID4gPiA+ICVkXG4iLCBlcnIpOw0KPiA+ID4gPiA+IC0gICAgICAg ICB6c3dhcF9yZWplY3RfYWxsb2NfZmFpbCsrOw0KPiA+ID4gPiA+IC0gICAgICAgICBnb3RvIHN0 b3JlX2ZhaWxlZDsNCj4gPiA+ID4gPiArICAgICAgICAgaWYgKCF6c3dhcF9jb21wcmVzcyhwYWdl LCBlbnRyaWVzW2ldLCBwb29sLCBmb2xpb193YikpDQo+ID4gPiA+ID4gKyAgICAgICAgICAgICAg ICAgZ290byBzdG9yZV9wYWdlc19mYWlsZWQ7DQo+ID4gPiA+ID4gICB9DQo+ID4gPiA+ID4NCj4g PiA+ID4gPiAtIC8qDQo+ID4gPiA+ID4gLSAgKiBXZSBtYXkgaGF2ZSBoYWQgYW4gZXhpc3Rpbmcg ZW50cnkgdGhhdCBiZWNhbWUgc3RhbGUgd2hlbg0KPiA+ID4gPiA+IC0gICogdGhlIGZvbGlvIHdh cyByZWRpcnRpZWQgYW5kIG5vdyB0aGUgbmV3IHZlcnNpb24gaXMgYmVpbmcNCj4gPiA+ID4gPiAt ICAqIHN3YXBwZWQgb3V0LiBHZXQgcmlkIG9mIHRoZSBvbGQuDQo+ID4gPiA+ID4gLSAgKi8NCj4g PiA+ID4gPiAtIGlmIChvbGQpDQo+ID4gPiA+ID4gLSAgICAgICAgIHpzd2FwX2VudHJ5X2ZyZWUo b2xkKTsNCj4gPiA+ID4gPiArIGZvciAoaSA9IDA7IGkgPCBucl9wYWdlczsgKytpKSB7DQo+ID4g PiA+ID4gKyAgICAgICAgIHN0cnVjdCB6c3dhcF9lbnRyeSAqb2xkLCAqZW50cnkgPSBlbnRyaWVz W2ldOw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gLSAvKg0KPiA+ID4gPiA+IC0gICogVGhlIGVudHJ5 IGlzIHN1Y2Nlc3NmdWxseSBjb21wcmVzc2VkIGFuZCBzdG9yZWQgaW4gdGhlIHRyZWUsIHRoZXJl DQo+IGlzDQo+ID4gPiA+ID4gLSAgKiBubyBmdXJ0aGVyIHBvc3NpYmlsaXR5IG9mIGZhaWx1cmUu IEdyYWIgcmVmcyB0byB0aGUgcG9vbCBhbmQgb2JqY2csDQo+ID4gPiA+ID4gLSAgKiBjaGFyZ2Ug enN3YXAgbWVtb3J5LCBhbmQgaW5jcmVtZW50IHpzd2FwX3N0b3JlZF9wYWdlcy4NCj4gPiA+ID4g PiAtICAqIFRoZSBvcHBvc2l0ZSBhY3Rpb25zIHdpbGwgYmUgcGVyZm9ybWVkIGJ5IHpzd2FwX2Vu dHJ5X2ZyZWUoKQ0KPiA+ID4gPiA+IC0gICogd2hlbiB0aGUgZW50cnkgaXMgcmVtb3ZlZCBmcm9t IHRoZSB0cmVlLg0KPiA+ID4gPiA+IC0gICovDQo+ID4gPiA+ID4gLSB6c3dhcF9wb29sX2dldChw b29sKTsNCj4gPiA+ID4gPiAtIGlmIChvYmpjZykgew0KPiA+ID4gPiA+IC0gICAgICAgICBvYmpf Y2dyb3VwX2dldChvYmpjZyk7DQo+ID4gPiA+ID4gLSAgICAgICAgIG9ial9jZ3JvdXBfY2hhcmdl X3pzd2FwKG9iamNnLCBlbnRyeS0+bGVuZ3RoKTsNCj4gPiA+ID4gPiAtIH0NCj4gPiA+ID4gPiAt IGF0b21pY19sb25nX2luYygmenN3YXBfc3RvcmVkX3BhZ2VzKTsNCj4gPiA+ID4gPiAtIGlmIChl bnRyeS0+bGVuZ3RoID09IFBBR0VfU0laRSkNCj4gPiA+ID4gPiAtICAgICAgICAgYXRvbWljX2xv bmdfaW5jKCZ6c3dhcF9zdG9yZWRfaW5jb21wcmVzc2libGVfcGFnZXMpOw0KPiA+ID4gPiA+ICsg ICAgICAgICBvbGQgPSB4YV9zdG9yZShzd2FwX3pzd2FwX3RyZWUoZW50cnktPnN3cGVudHJ5KSwN Cj4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgc3dwX29mZnNldChlbnRyeS0+c3dw ZW50cnkpLA0KPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeSwgR0ZQX0tF Uk5FTCk7DQo+ID4gPiA+ID4gKyAgICAgICAgIGlmICh1bmxpa2VseSh4YV9pc19lcnIob2xkKSkp IHsNCj4gPiA+ID4gPiArICAgICAgICAgICAgICAgICBpbnQgZXJyID0geGFfZXJyKG9sZCk7DQo+ ID4gPiA+ID4NCj4gPiA+ID4gPiAtIC8qDQo+ID4gPiA+ID4gLSAgKiBXZSBmaW5pc2ggaW5pdGlh bGl6aW5nIHRoZSBlbnRyeSB3aGlsZSBpdCdzIGFscmVhZHkgaW4geGFycmF5Lg0KPiA+ID4gPiA+ IC0gICogVGhpcyBpcyBzYWZlIGJlY2F1c2U6DQo+ID4gPiA+ID4gLSAgKg0KPiA+ID4gPiA+IC0g ICogMS4gQ29uY3VycmVudCBzdG9yZXMgYW5kIGludmFsaWRhdGlvbnMgYXJlIGV4Y2x1ZGVkIGJ5 IGZvbGlvIGxvY2suDQo+ID4gPiA+ID4gLSAgKg0KPiA+ID4gPiA+IC0gICogMi4gV3JpdGViYWNr IGlzIGV4Y2x1ZGVkIGJ5IHRoZSBlbnRyeSBub3QgYmVpbmcgb24gdGhlIExSVSB5ZXQuDQo+ID4g PiA+ID4gLSAgKiAgICBUaGUgcHVibGlzaGluZyBvcmRlciBtYXR0ZXJzIHRvIHByZXZlbnQgd3Jp dGViYWNrIGZyb20gc2VlaW5nDQo+ID4gPiA+ID4gLSAgKiAgICBhbiBpbmNvaGVyZW50IGVudHJ5 Lg0KPiA+ID4gPiA+IC0gICovDQo+ID4gPiA+ID4gLSBlbnRyeS0+cG9vbCA9IHBvb2w7DQo+ID4g PiA+ID4gLSBlbnRyeS0+c3dwZW50cnkgPSBwYWdlX3N3cGVudHJ5Ow0KPiA+ID4gPiA+IC0gZW50 cnktPm9iamNnID0gb2JqY2c7DQo+ID4gPiA+ID4gLSBlbnRyeS0+cmVmZXJlbmNlZCA9IHRydWU7 DQo+ID4gPiA+ID4gLSBpZiAoZW50cnktPmxlbmd0aCkgew0KPiA+ID4gPiA+IC0gICAgICAgICBJ TklUX0xJU1RfSEVBRCgmZW50cnktPmxydSk7DQo+ID4gPiA+ID4gLSAgICAgICAgIHpzd2FwX2xy dV9hZGQoJnpzd2FwX2xpc3RfbHJ1LCBlbnRyeSk7DQo+ID4gPiA+ID4gKyAgICAgICAgICAgICAg ICAgV0FSTl9PTkNFKGVyciAhPSAtRU5PTUVNLCAidW5leHBlY3RlZCB4YXJyYXkNCj4gPiA+ID4g ZXJyb3I6ICVkXG4iLCBlcnIpOw0KPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgIHpzd2FwX3Jl amVjdF9hbGxvY19mYWlsKys7DQo+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgLyoNCj4gPiA+ ID4gPiArICAgICAgICAgICAgICAgICAgKiBFbnRyaWVzIHVwIHRvIHRoaXMgcG9pbnQgaGF2ZSBi ZWVuIHN0b3JlZCBpbiB0aGUNCj4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgKiB4YXJyYXku IHpzd2FwX3N0b3JlKCkgd2lsbCBlcmFzZSB0aGVtIGZyb20gdGhlDQo+ID4gPiA+IHhhcnJheQ0K PiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAqIGFuZCBjYWxsIHpzd2FwX2VudHJ5X2ZyZWUo KS4gTG9jYWwgY2xlYW51cCBpbg0KPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAqICdzdG9y ZV9wYWdlc19mYWlsZWQnIG9ubHkgbmVlZHMgdG8gaGFwcGVuIGZvcg0KPiA+ID4gPiA+ICsgICAg ICAgICAgICAgICAgICAqIGVudHJpZXMgZnJvbSBbQGkgdG8gQG5yX3BhZ2VzKS4NCj4gPiA+ID4g PiArICAgICAgICAgICAgICAgICAgKi8NCj4gPiA+ID4gPiArICAgICAgICAgICAgICAgICBzdG9y ZV9mYWlsX2lkeCA9IGk7DQo+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgZ290byBzdG9yZV9w YWdlc19mYWlsZWQ7DQo+ID4gPiA+ID4gKyAgICAgICAgIH0NCj4gPiA+ID4gPiArDQo+ID4gPiA+ ID4gKyAgICAgICAgIC8qDQo+ID4gPiA+ID4gKyAgICAgICAgICAqIFdlIG1heSBoYXZlIGhhZCBh biBleGlzdGluZyBlbnRyeSB0aGF0IGJlY2FtZSBzdGFsZSB3aGVuDQo+ID4gPiA+ID4gKyAgICAg ICAgICAqIHRoZSBmb2xpbyB3YXMgcmVkaXJ0aWVkIGFuZCBub3cgdGhlIG5ldyB2ZXJzaW9uIGlz IGJlaW5nDQo+ID4gPiA+ID4gKyAgICAgICAgICAqIHN3YXBwZWQgb3V0LiBHZXQgcmlkIG9mIHRo ZSBvbGQuDQo+ID4gPiA+ID4gKyAgICAgICAgICAqLw0KPiA+ID4gPiA+ICsgICAgICAgICBpZiAo dW5saWtlbHkob2xkKSkNCj4gPiA+ID4gPiArICAgICAgICAgICAgICAgICB6c3dhcF9lbnRyeV9m cmVlKG9sZCk7DQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICsgICAgICAgICAvKg0KPiA+ID4gPiA+ ICsgICAgICAgICAgKiBUaGUgZW50cnkgaXMgc3VjY2Vzc2Z1bGx5IGNvbXByZXNzZWQgYW5kIHN0 b3JlZCBpbiB0aGUgdHJlZSwNCj4gPiA+ID4gdGhlcmUgaXMNCj4gPiA+ID4gPiArICAgICAgICAg ICogbm8gZnVydGhlciBwb3NzaWJpbGl0eSBvZiBmYWlsdXJlLiBHcmFiIHJlZnMgdG8gdGhlIHBv b2wgYW5kDQo+ID4gPiA+IG9iamNnLA0KPiA+ID4gPiA+ICsgICAgICAgICAgKiBjaGFyZ2UgenN3 YXAgbWVtb3J5LCBhbmQgaW5jcmVtZW50DQo+ID4gPiA+IHpzd2FwX3N0b3JlZF9wYWdlcy4NCj4g PiA+ID4gPiArICAgICAgICAgICogVGhlIG9wcG9zaXRlIGFjdGlvbnMgd2lsbCBiZSBwZXJmb3Jt ZWQgYnkNCj4gPiA+ID4genN3YXBfZW50cnlfZnJlZSgpDQo+ID4gPiA+ID4gKyAgICAgICAgICAq IHdoZW4gdGhlIGVudHJ5IGlzIHJlbW92ZWQgZnJvbSB0aGUgdHJlZS4NCj4gPiA+ID4gPiArICAg ICAgICAgICovDQo+ID4gPiA+DQo+ID4gPiA+IEJ1dCB0aGVyZSAqaXMqIGZ1cnRoZXIgcG9zc2li aWxpdHkgb2YgZmFpbHVyZSBpZiBhIHN1YnNlcXVlbnQgZW50cnkNCj4gPiA+ID4geGFfc3RvcmUo KSBmYWlscywgcmlnaHQ/DQo+ID4gPg0KPiA+ID4gVGhpcyBjb21tZW50IGlzIHJlZmVycmluZyB0 byB0aGlzIHNwZWNpZmljIGVudHJ5Lg0KPiA+DQo+ID4gSSB0aGluayBpdCdzIGN1cnJlbnRseSBt aXNsZWFkaW5nIGluIGl0cyBjdXJyZW50IGZvcm0uIFBlcmhhcHM6DQo+ID4NCj4gPiBUaGUgZW50 cnkgaXMgc3VjY2Vzc2Z1bGx5IGNvbXByZXNzZWQgYW5kIHN0b3JlZCBpbiB0aGUgdHJlZSwgYW5k IGZ1cnRoZXINCj4gPiBmYWlsdXJlcyB3aWxsIGJlIGNsZWFuZWQgdXAgaW4genN3YXBfc3RvcmUo KS4NCj4gPg0KPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gU2VlbXMgbGlrZSBpZiB4YV9zdG9yZSgp IGZhaWxzIHdlIGRvIG5vdCBjbGVhbnVwIHByZXZpb3VzbHkgY2hhcmdlZA0KPiA+ID4gPiBvYmpl Y3RzLCBwb29sIHJlZmVyZW5jZXMsIHpzd2FwX3N0b3JlZF9wYWdlcywgZXRjLiBJbnN0ZWFkIG9m IHJvbGxpbmcNCj4gPiA+ID4gYWxsIHRoaXMgYmFjayBvbiBmYWlsdXJlLCBjYW4gd2UgZG8gYWxs IHRoZSB4YXJyYXkgc3RvcmVzIGZpcnN0IGFuZCBvbmx5DQo+ID4gPiA+IGRvIHRoZSByZXN0IHdo ZW4gd2UncmUgYXQgYSBwb2ludCB3aGVyZSBubyBmYWlsdXJlIGNhbiBoYXBwZW4/IFdvdWxkDQo+ ID4gPiA+IHRoYXQgY2F1c2UgYSBwZXJmb3JtYW5jZSByZWdyZXNzaW9uPw0KPiA+ID4NCj4gPiA+ IEl0IHdvdWxkIG1ha2UgdGhlIGNvZGUgbW9yZSBjb21wbGljYXRlZCBhbmQgdGh1cyBjYXVzZSBh IHBlcmZvcm1hbmNlDQo+ID4gPiByZWdyZXNzaW9uLiBJIGhhdmUgdHJpZWQgdG8gYmFsYW5jZSBj b2RlIHNpbXBsaWNpdHkgKHdoaWNoIGltcGFjdHMNCj4gcGVyZm9ybWFuY2UpDQo+ID4gPiB3aXRo IGNvcnJlY3RuZXNzIGhlcmUuIFRoZSAic3RvcmVfZmFpbGVkX2lkeCIgZW5zdXJlcyB0aGF0IGFs bCBwYXJ0aWFsIHdvcmsNCj4gZG9uZQ0KPiA+ID4gaW4genN3YXBfc3RvcmVfcGFnZXMoKSBmb3Ig dGhpcyBiYXRjaCwgaXMgY2xlYW5lZCB1cC4NCj4gPiA+DQo+ID4gPiBUaGUgcmVzdCBpcyBoYW5k bGVkIGluIHpzd2FwX3N0b3JlKCkgd2hlbiBpdCBzZWVzIGFuIGVycm9yIHJldHVybmVkIGJ5DQo+ ID4gPiB6c3dhcF9zdG9yZV9wYWdlcygpLg0KPiA+DQo+ID4gUmlnaHQsIEkgbWlzc2VkIHRoZSBw YXJ0IGFib3V0IHpzd2FwX3N0b3JlKCkgaGFuZGxpbmcgdGhpcywgdGhlIGNvbW1lbnQNCj4gPiBh Ym92ZSBjb25mdXNlZCBtZS4NCg==