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]) by smtp.lore.kernel.org (Postfix) with ESMTP id E17C8C47DD9 for ; Wed, 27 Mar 2024 14:45:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 622C26B0098; Wed, 27 Mar 2024 10:45:53 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5AD6E6B009C; Wed, 27 Mar 2024 10:45:53 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 33C2F6B009D; Wed, 27 Mar 2024 10:45:53 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 0F40D6B0098 for ; Wed, 27 Mar 2024 10:45:53 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 8744F40EAC for ; Wed, 27 Mar 2024 14:45:52 +0000 (UTC) X-FDA: 81943093344.13.9B4BDD6 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2070.outbound.protection.outlook.com [40.107.244.70]) by imf02.hostedemail.com (Postfix) with ESMTP id 9A9288001B for ; Wed, 27 Mar 2024 14:45:49 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=CgQcGqw4; spf=pass (imf02.hostedemail.com: domain of ziy@nvidia.com designates 40.107.244.70 as permitted sender) smtp.mailfrom=ziy@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1711550749; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=q3C8A2Q4nkOmHQzEBwik36Mc9iYPMcOMlBNXuzUGSgY=; b=LlAg7m0WXEkLd4mprRg98dNmfaq7x+jOizxleWPcwx7krT8EavDhi4EMHS8aHuMi/AT0Td Qke6KDGnfBcXI0eQKG1fXMT2xLHBGjG/cgS4XE6rOd0IbzBHXuzzVCQqLh62UuQMVbX9Vy Qhne5ZJLAgWBiyOlkAELrN700VU4z04= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1711550749; a=rsa-sha256; cv=pass; b=sK3c7PZxNbGcPo46p6o9RUqAFrBXQQ0jezdmyroQeAQ7chAFpCgOcT4O5yya3dsEGxFtSt 2dWm1Xtjky2hktsABnkkPu0aFN6F0b/bl6A1yh/AFrNcsZy2eHQmDJOL/mYAhD+NpdPMk9 14IqHD3B0zZu14JpUgv6olivjXUW7SA= ARC-Authentication-Results: i=2; imf02.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=CgQcGqw4; spf=pass (imf02.hostedemail.com: domain of ziy@nvidia.com designates 40.107.244.70 as permitted sender) smtp.mailfrom=ziy@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=A+pCWtva8zMwdlB3wRytKi1MUDAGavMKSROmkcmmSzmnpMiXNQrdgZZTRFRJJ0VmHc1qYBZS7gj1GDs0W2fM15+soE8qHC/8AfPz2e+ui1LgDFZDYH5ZbtiCjagKqM6qUWRFa55YZ/wZLWYCeS+V2BjOmqsRQWpw7xVvVY+a1k/wq58kitpImYHfknsEyBWAdcAneAUR2r3fC4HPxM7PPzUk45csWrHcbwdyRHUm6neSFQwRUnsLeENY511llFYEB425X8UA8OE9h8C2hoi7/+Jn6StkcJW0zV32ORUwzKav3TlIJJzN7chamJN1jj27fKo2fc7Z2cL1OeCWyu6clw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=q3C8A2Q4nkOmHQzEBwik36Mc9iYPMcOMlBNXuzUGSgY=; b=h3iYapKTldGsOVuAashMI54CGlEic9piKHy6g2CCf89WHP4jfOaO4bQS1tNohO2ijLhVp6FruUu6sOTHPNNNsLNH06H6p/JrAoMKHrBOkvsrK2t/1YTXVdQg/ZXtyX/Zf/uJX7sAfa6jHAcd2cDDiilohJd6jjvoBayRtcIZSJ7EHSRtxcM8C35A+34Tb920ifVcDf2V+s6BBEm4dcgAkcHVUUazULKylXqIAM1ByNM2qEilkomIeGwlOhchZSSycm83uVt8hQDiSZVkD3LUHCKBrDqA8XSDTDdziZ95qvpABTIZTrXZ0BSXbxa2FYwxaWyWu9zrRiFZgXXHizKLLw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=q3C8A2Q4nkOmHQzEBwik36Mc9iYPMcOMlBNXuzUGSgY=; b=CgQcGqw4cFSn39Zfp8zswLxswKhbxTbhFBL5WooNrpws7553LOOzkVPFKZqJQXMo02f9ZpAQizMBfxZNP0RVTTYo0DJZx97IkztlhHQFzQhQP8EET8seqYVK+aYEJ0tzDNQVgbQ4hU6wZSfA8VFajf2YujUdU+8Gfn19OLhYkjPu8Ltr5v2SagvC3mE3a9giAPfDp5DF2aAKW7s8kB0Q17DLAoPGakAXIfOwI6BXNqC70nn3egVudlEMYm2xBkNRAlcDstoocSBHUBDbtsBB+5tcmiQjQIrPgFsjq+ZlbZXBtYUaDkVrZBCDXvvmfP71K48lAMG7Mad6wzuCMcbUvQ== Received: from DS7PR12MB5744.namprd12.prod.outlook.com (2603:10b6:8:73::18) by CH0PR12MB8580.namprd12.prod.outlook.com (2603:10b6:610:192::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.32; Wed, 27 Mar 2024 14:45:45 +0000 Received: from DS7PR12MB5744.namprd12.prod.outlook.com ([fe80::dc5c:2cf1:d5f5:9753]) by DS7PR12MB5744.namprd12.prod.outlook.com ([fe80::dc5c:2cf1:d5f5:9753%6]) with mapi id 15.20.7409.031; Wed, 27 Mar 2024 14:45:45 +0000 From: Zi Yan To: Kefeng Wang Cc: Andrew Morton , willy@infradead.org, Miaohe Lin , Naoya Horiguchi , David Hildenbrand , Oscar Salvador , Hugh Dickins , Jonathan Corbet , linux-mm@kvack.org, linux-doc@vger.kernel.org, Baolin Wang Subject: Re: [PATCH 2/6] mm: memory_hotplug: use more folio in do_migrate_range() Date: Wed, 27 Mar 2024 10:45:42 -0400 X-Mailer: MailMate (1.14r6028) Message-ID: <01BB19DC-3807-4954-A04A-55518301B6BA@nvidia.com> In-Reply-To: <20240327141034.3712697-3-wangkefeng.wang@huawei.com> References: <20240327141034.3712697-1-wangkefeng.wang@huawei.com> <20240327141034.3712697-3-wangkefeng.wang@huawei.com> Content-Type: multipart/signed; boundary="=_MailMate_8846AEFD-544C-45A3-BB14-BB4D5F4ECDB4_="; micalg=pgp-sha512; protocol="application/pgp-signature" X-ClientProxiedBy: BL1PR13CA0062.namprd13.prod.outlook.com (2603:10b6:208:2b8::7) To DS7PR12MB5744.namprd12.prod.outlook.com (2603:10b6:8:73::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR12MB5744:EE_|CH0PR12MB8580:EE_ X-MS-Office365-Filtering-Correlation-Id: 4c0a0ada-73b6-40ce-274a-08dc4e6c957e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: WTnSR8Nj2sgE0ZvmiBjhTK96C5SrAcNlnwHTLjVmGTHo+NuyJS3RwqyXAOaCLSZ6TksG2AR0aOaKJD4P1KQp44du9JjI+rv0092zvLEIfKv41kVXEB03glEKZMh9RuIxPyRyseUiU04wGcMrT+haZTCMKPa52E6whJ+w5jG6kiAR+kotIVu7TV1SSFTw6gC3b+T/3Ejae4VvbKmAR9UD0oNwbAd5PATCtb7BPlq5OTmGbzMomEb/LfPqPQ9D4wCVQrEuqot6S/NzDKcb0OhjgSRNd9jmCI6axAOoCNA23GMNWUKX3R2Zvr6S/0+xtCv0j4kruRkc7b+UDzGIl4jP1O7CNc0NRwpx2yPQKW1QV2POfEw5Twhfg3G4dYHrF/z06LPnBJGIqLKiWDToq/epI+Y5nVlyS+ZR2P+NiZyApwRdW84Auj7nydQwQbP5i7k9RmagRHlU4jyi9sYDcnzRM9qXE4234DGm5Im9qb0iCXOcU0ZplFnyu3tW9U7OtFNg9u0XM2hxDJrG5v3Z7eamqdRTxM6EYj6zEQMTQLpInDqUGy6d51ZcNIHgWvNfZHzuPq9dXbpxYXBPExytLwzqTqxOMP1owJckRYe8q6hxvMBiSotCZyzJ751OEjnlhmKHTU6+p8mOEDUCyZ38Ca5EIw9CDGHVsSqXfUkyWdWbxmw= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB5744.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366007)(376005)(7416005)(1800799015);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?D4w+KPP3Nc5pp+YeVakWMVeOJkzTGtwS8vZqmKmSykevWKp30nq1NJ7LeaLC?= =?us-ascii?Q?9/4DiXl9NUGnQeBnLHojdAq5TnPBrBFS8+thKHkyDnRAsz//lNsCw1RAZyLq?= =?us-ascii?Q?68iTCSDhFGJDbB+BzFHE5Q7b2LHltakFzRLCVsQ1giu5dhllVL8UX5jpV+lh?= =?us-ascii?Q?B7vvteA75ZBYXjt3EnXcrvSp0xkJ1cmi8UpD18yWetFLAJMXlaxWcay/xkqf?= =?us-ascii?Q?ocC5PrlTsMLZnQAYY78fC2dWbtPDer7trIkbaQ0btvh04CgMglvbqMardsiB?= =?us-ascii?Q?Kj6sSGWXxXRtj1givSKMo3KOWv/p/QiPiHmGeNEYBCu7x0nyqCLYx3217y7g?= =?us-ascii?Q?wpyxfm/4CLhyPqY93s50sPcgMRsr5KbBJhi+I9S6LWLCjR8roFsED5LhUODf?= =?us-ascii?Q?0bBiEB888sZjG+Dj6n4g5V/R0g7iPQjmbj4EYYjLr99OaQTsuP5TLMDl4N9r?= =?us-ascii?Q?RtnoxEJK+qNFyBbMouBVeoyIkDz09KqxJ9wT3f+CxZTqWvSAPumCDbQgSPXE?= =?us-ascii?Q?oWhcrbxRFyjlvBJ4DnBqWM1WgGCtWrjrOZq7KuThMdWcTllZ6YAd2dXAuvhP?= =?us-ascii?Q?8CV6lJRuExLJURHIXDZe4jf8LyffD48x56hIj8hHLsVTaoneRX+pUm11TRUX?= =?us-ascii?Q?QftP673KT/+svWhKrvdEl7MQ/kDj9qr5cgKk4g0jIRaebcnfhuBYESpYEssr?= =?us-ascii?Q?oNmquSXJIPCbW6+FPmfHRYkXVgX8QLY2uVdhRNlZD2NrazJrwK0SMkDSU0pE?= =?us-ascii?Q?NOMfOS9hDjEdIQdgF7Ife31As8KzVWbN+ygXqy5K93aPLBrQj6kRQ+FF+91k?= =?us-ascii?Q?VGLJQl0o8ygpB/bo+H0NLQ29fIJg8ltxhzuYn6fOVJLA/bBfPkJx7epktCLe?= =?us-ascii?Q?NQi7LOjauEs7e7a7gaqFMamft0wVVjMEehe1DKxcxQJrCvgrWO+TWAIcdbNP?= =?us-ascii?Q?DUQEou0CrbASMUZEL6l81+f+8huKo9w5qIXys+ZPesdRoM/BOh9U5TvAeVVa?= =?us-ascii?Q?jeui7yCnMjyGvD8+RCmWRSlHRqw5Fg+tTVHqswypk6MoBrfecImucfQEs6BM?= =?us-ascii?Q?FJQGpPPdcdE5T3D2WTrA9zg3QC+ljSlSXj7gGY/0AjQnxz7/l4Fx6bkALehO?= =?us-ascii?Q?mVVUDEEYYEIeLWr3soQ2PrD7rK7mVfNg2rMymrl9jOtLgvq+wuirrQMvmRMu?= =?us-ascii?Q?Hfg3DamxQ1/+s/DPx53viTA3ZcQMrcvhFnsVN73S0X9vBgRGryRki3AetUrF?= =?us-ascii?Q?yP4IOVUxkp+XVPgScce0NBkwka/BGNLxb5AcLYHGi+1wSVcjmEAp2kZ6rdOh?= =?us-ascii?Q?2gtUandkgfr4MEUkY9RnxR3n+vNbs01KWjldr5mJDjNz4bEp85cyF0NXCLaN?= =?us-ascii?Q?N6JhFFvbeQ8xKVPyzwewP4xlSa8VOHHdZvgGGu//xCR1+1C0e85B2wJCVcm7?= =?us-ascii?Q?gRkeqSX0L07NQLNuoVGW33DK8pDSefcUJxbWoqd8oYpTP85QThh4aj5uXOyV?= =?us-ascii?Q?gvojCd+fSkuh39kCFaIG+HfSX6VLfofs1ebVF7vL/91odkqDV//HAhVHLHKd?= =?us-ascii?Q?lXzLf9SFfNCIRSZNv7X+F1pF5bgzTpJYzL4PiTlH?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4c0a0ada-73b6-40ce-274a-08dc4e6c957e X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB5744.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2024 14:45:45.2307 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: BIghuvn+nkFuE7jzthcB3tgSfFe3QsBNPR9eEcUz/o4EgK5Lc1nsC6qgeGIkU4qg X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR12MB8580 X-Rspamd-Queue-Id: 9A9288001B X-Rspam-User: X-Stat-Signature: cmz5w4f378w57kwa74iws338rnziwjkg X-Rspamd-Server: rspam03 X-HE-Tag: 1711550749-392347 X-HE-Meta: U2FsdGVkX1/PZ0HN3dKFT6fviVY1137A65HzBnp3orrcRrNLqvla3uNoIVcWosRMGA6TVEzmjQA60hAyrZW1/WRiFIib+c/r/ruk0lm6UUSiZ0TreQogTeQycunL60sOcZHYakDV0BxVJ9PPGmMQaGxhkMFAcQTqbPWhhzj2TSQAy7/uiyd4+/Gl7WZo9+tDPyfhCIn6oAF4eZb6i3w8yx90SysDcFOEo2W+ZBnuDQZZo30Dx45TKVwiRoOSFipDY6F6aV1w4fC8uBaxNxvNw9FHc1Nsn5nGlHRxtXQGL+k49P/H5ZspC7MxtOvmip8V1MtLQ8bchpHwt6Cq5q3DWRSQBHXJFyybcQLuwjKxFy0Mpxs4FEjOCW4+sf/aYl9WOO+mVX/FJrmwTe+VMQ4rQzD6iNX0ITUkDOJkyGulxnCsikJl5G5phuWQXP72Bk54W0o2vbcDoHew/oJm9OLB9kMhZ2GL81IU6a47c5Jc3E3yngCe+4JN/zZR0+VbILeT8Rar01V/bMnMK/4/rD6iT5FhXmMgqIg0BY+rA6UmTCWzBeB01OxR4MTMqcxlCpIRY7anrd4BqK47i+KQM7HZH7cQReDMXo94ZJURT9hVYJ/Tab0wzj3jyf2ygHwZUBQjl7UM5yM8w4XzIZNqDGuUr+FY+sQ129CYZHuQGlx2JMwS68uebxWUM+/H+4qyySmFGxf8zJIql4NZ31uKN4Dqwe3CZnHGTuSvgf6hmrXy7DHAnaEftol+VdVGW2591J7nkN3enxONDCUvpgBWk7J4JZESTQQDfuCMv8PH5BsKZTyKKgiAlQRCB1QSwBZ767/maiX9AhZmu8w/4ejpHvdqlQVczIRxa2FkJkiCmfCM0bf5VDYhbbTiNG0hv05RXwARywEBnDTPXH8z2ZxpDN8mYiyaeIQDg205aVkSfr93arNXlg+ITXS2Ft5kSHTk6f5eLDZNsZTCZ7Jw5MCJv2a dVIthohe rBJ3Xf4EFAB9F08BnyInrtOFg/iGVDpuUvdDDcObUaRu6CChedHkTBjPrVX/GC+hm4IsiQZ6rUSCL3w+WFVzpAVOtn1mWWxOyU8q1wSOeq1QPpR0rE9BuBPIZdd4vueHDTvj4os5cI6SM9Xy6FyswPuIcOgcEUFx2yBlNQ/kjxSBOufn7jEEypPTGLTYN5AZCORzTrPmAbrvZseibMh/x2RzI5a8HUrt9b+gv7CIOBgW88M7wg5T/viy3uOLStHDz/Xj1sJ0LpmNIOThw+ne/K1QMz48fJJQdTKjnAoR62B3NhL1EnzYX4VrvPiNgnq0JrSWnTKRwmJ9YrZ92N/Uj6qZcIu3FWWAFTRMs3glBWH8GECH+IQXnJ7Tj6aPRuVCh40mlXWur+docPfvzH1fskzvXTw== 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: --=_MailMate_8846AEFD-544C-45A3-BB14-BB4D5F4ECDB4_= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On 27 Mar 2024, at 10:10, Kefeng Wang wrote: > With isolate_movable_folio() and folio_isolate_lru(), let's use > more folio in do_migrate_range() to save compound_head() calls. > > Signed-off-by: Kefeng Wang > --- > mm/memory_hotplug.c | 30 +++++++++++++++--------------- > 1 file changed, 15 insertions(+), 15 deletions(-) > > diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c > index a444e2d7dd2b..bd207772c619 100644 > --- a/mm/memory_hotplug.c > +++ b/mm/memory_hotplug.c > @@ -1774,14 +1774,14 @@ static int scan_movable_pages(unsigned long sta= rt, unsigned long end, > > static void do_migrate_range(unsigned long start_pfn, unsigned long en= d_pfn) > { > + struct folio *folio; > unsigned long pfn; > - struct page *page, *head; > LIST_HEAD(source); > static DEFINE_RATELIMIT_STATE(migrate_rs, DEFAULT_RATELIMIT_INTERVAL,= > DEFAULT_RATELIMIT_BURST); > > for (pfn =3D start_pfn; pfn < end_pfn; pfn++) { > - struct folio *folio; > + struct page *page, *head; You could get rid of head too. It is only used to calculate next pfn, so pfn =3D folio_to_pfn(folio) + folio_nr_pages(folio) - 1 would work. And the PageHuge(page) and PageTransHuge(page) can be simplified, since their pfn calculations are the same. Something like: if (folio_test_large(folio)) { pfn =3D folio_to_pfn(folio) + folio_nr_pages(folio) - 1; if (folio_test_hugetlb(folio)) { isolate_hugetlb(folio, &source); continue; } } -- Best Regards, Yan, Zi --=_MailMate_8846AEFD-544C-45A3-BB14-BB4D5F4ECDB4_= Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc -----BEGIN PGP SIGNATURE----- iQJDBAEBCgAtFiEE6rR4j8RuQ2XmaZol4n+egRQHKFQFAmYEMRcPHHppeUBudmlk aWEuY29tAAoJEOJ/noEUByhUYioP/im7+78vWoZsO5Zj+6Xvk1jOKMtflZvU28up +0/AOaL1DtwXwBmatX/iMEsp56DF8aE0Lq8GUh2ypCTwj8kZgW7abJbE6q1mXMAi wfg2swDzGM1s+3vhJV16xdaf7nMwIJvCgeFX2rL5z7c0SXBYnSyvZ9JBoZRMYoZ5 X7nCGBg7mwoDK6SYG/tZFGBSPI+e4MGd+5ip9wXnADzFFRFP/9soIVv6j1sZvivc aLmvc2/12m0WogHnUlWztmg2aRJzDx9jc0W8rqF6UkMShQ58ZSX5ttxCFGqALYl8 +zUwbelaqtYobnxqFgtxIMvLk8H1AtgJrpDvlb9zQBvdxqis0RzxIV45aLweVi4p umA+L44ykJVr8YX4chtyGQ8OvxzOgfWoA4GbsHkD6qz1S6uBunte0O9UlMVi8Y0G pobd36Y2zb++jfB5HZeRbOlec/mFQHj8HbMW+mHo0lQqq3UePDC1UNWjcrss6z8M nOJA3fRbZhZpwGq8kuHNJbIVpgbXAZpvOsOOM3UZOjfVpYWxR654f0FEBz3h7c0b RWi3RIiWQE/+nI0to12Jii/Bjl6TFtA54HXU7xMe1ZHT30Y/CltXuEbJk/ERfoxs oUsOWnK8pokI/qNW+5XZ+0BIi1u5pklh7vTzWkXxvlxHw9xGbev/AVaaBCezDkM5 Xem38M6+ =0XNw -----END PGP SIGNATURE----- --=_MailMate_8846AEFD-544C-45A3-BB14-BB4D5F4ECDB4_=--