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 91162C369C2 for ; Fri, 25 Apr 2025 14:18:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AC7DE6B000C; Fri, 25 Apr 2025 10:18:14 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A76C06B000D; Fri, 25 Apr 2025 10:18:14 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 917536B000E; Fri, 25 Apr 2025 10:18:14 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 6F8276B000C for ; Fri, 25 Apr 2025 10:18:14 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 10F95141696 for ; Fri, 25 Apr 2025 14:18:15 +0000 (UTC) X-FDA: 83372770950.02.37EC98B Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) by imf07.hostedemail.com (Postfix) with ESMTP id 9AD1F40006 for ; Fri, 25 Apr 2025 14:18:12 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=infradead.org header.s=desiato.20200630 header.b=cZFwnrnb; dmarc=none; spf=none (imf07.hostedemail.com: domain of BATV+28c82e69438fb62280a6+7915+infradead.org+dwmw2@desiato.srs.infradead.org has no SPF policy when checking 90.155.92.199) smtp.mailfrom=BATV+28c82e69438fb62280a6+7915+infradead.org+dwmw2@desiato.srs.infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745590693; a=rsa-sha256; cv=none; b=R4NWRBMaBTkty19TankPVJqLbAvYzps8DSw5MSn4QN7QBcC6woI82gdNCI01uD8c/URjO9 Kbp/lclYYXqJYRpu3sv2X8KH86m84KnyKmJ8iwpRnij8fzjM6cnsh1q2qgK6FJheaFZmpN YPWPc+OIBQmYy6cRLyZXl9FlSGLXep8= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=infradead.org header.s=desiato.20200630 header.b=cZFwnrnb; dmarc=none; spf=none (imf07.hostedemail.com: domain of BATV+28c82e69438fb62280a6+7915+infradead.org+dwmw2@desiato.srs.infradead.org has no SPF policy when checking 90.155.92.199) smtp.mailfrom=BATV+28c82e69438fb62280a6+7915+infradead.org+dwmw2@desiato.srs.infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745590693; 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=D2sw/hcVuZRtIbJVka/uPT4xRYSxoea9Y+E1vPOTyXc=; b=5NedgpYWMqO27Sl5ScKR5BxZ1MCmO77/vFXPcwNoRpmGRKeXzRsuH8iAJG5xewUMbbSK8j 8EQFDS9aqr//VLFiAPdAZIS5t8c9XH1WOlDgULrgt4cVLTbv5aKZOknBBuYor7wCOzXiij UeMQ21M1kghtDVs20AdhSzygUmHQqXA= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=MIME-Version:Content-Type:References: In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=D2sw/hcVuZRtIbJVka/uPT4xRYSxoea9Y+E1vPOTyXc=; b=cZFwnrnb0lFb1zYmx8iyeE9plr 4MB2JMF9vyy0yk9l0RkimFF6XpX69AWyHX8MNeeWvRHP71EsWaNnlPDvIsfFoQ+ppHy+M6U3uCuIW hUF82b9os0zG2WIRq5KPMpyf5bO8LI6/xwkvJRR1wvcalAvRtjEvnU+oqr3CCjwalgVw9uwXDk0Mv PZGC0YVFL/gKl0v2A7vck1X7CJ4Z8p9ny/E0iqqrPE1kYL05VWfAtFoD26DmpPV62cE7I+khovMSl hAtPV9nyit+1ckZr8qg0kcN/uIhFYP/iwCAlweTr4NofMG19kq5T8um3tGn9eDFBQ77ALPMJTtPwq t2FFfRxw==; Received: from [172.31.31.140] (helo=u09cd745991455d.ant.amazon.com) by desiato.infradead.org with esmtpsa (Exim 4.98.1 #2 (Red Hat Linux)) id 1u8JsV-0000000C3yw-3Ozd; Fri, 25 Apr 2025 14:18:07 +0000 Message-ID: <16911666479b2fe4bc65944605199a8b3f12e875.camel@infradead.org> Subject: Re: [PATCH] mm: memblock: Fix arguments passed to memblock_set_node() From: David Woodhouse To: "Bernardo C. Gutierrez Cantu" Cc: akpm@linux-foundation.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, lkp@intel.com, rppt@kernel.org, yajun.deng@linux.dev, Huang Pei , Thomas Bogendoerfer , Huacai Chen , Jiaxun Yang , linux-mips Date: Fri, 25 Apr 2025 15:18:07 +0100 In-Reply-To: <20250425102003.64122-1-bercantu@amazon.de> References: <20250425102003.64122-1-bercantu@amazon.de> Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature"; boundary="=-8C2F5QNVboy8+d1BlNFD" User-Agent: Evolution 3.52.3-0ubuntu1 MIME-Version: 1.0 X-SRS-Rewrite: SMTP reverse-path rewritten from by desiato.infradead.org. See http://www.infradead.org/rpr.html X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 9AD1F40006 X-Stat-Signature: pbcput9xhkw15nse3931qq534ziz94zw X-Rspam-User: X-HE-Tag: 1745590692-567551 X-HE-Meta: U2FsdGVkX1/36bR2D6Sabr1OpnZBmxo/D5B5HAkrq9TQDXv32VCtFX4MRFJBDmA3+VInQ6xb7bHGMu0o0Zv4WD2uGqlWswB4JNtyiagVa+MfE+ebJBHyCTnmfPr9wkktyeHafgu2Fhn667NKA+WOcdZo05W0UJ/Ug3oqv31lgtL6SlNVdM7cbzSg4580HLqczBiN+hf9WDS/BVj01eTiOLG5gW/yq6cx+V9xxX0l50KrsuQoFCry/YJ2pPTzHduvXiymXzNjQZnD5z1ODHZcahbDPKbd/tv3cPGj4N1o8okHo5fbJLboU+XUnBrsdXcIAeEE9UWQyjXi/vVmvFGKoV5jyu48tS4HFOqelsvDWfrbPzJGx+Ay5XdOE4RdOWbBG06mWg1SCIrbUMo76qcu1yJUc/zw4pk7/hNyAFiaZS5lvffUjXUDjeHGPOYrVu8i6fQK02sMUyyQNf9vDM/Ic9cIWXFuqCCllzeXZLm7uG+gZeLv0KSzHBqDUxuwumn+XQjveN9AFTNHGWwriM+Zq53IxajZMap8kpvgobHbSjF148UinFIY8z+81l5FK6aiG8KgHpvQCDSjoa3QG9kNiWKUC7dcWQ4gPI6tKwIinUWNu9AQP7JEb8toFN2CrP3uDn1Fs5Nx2XjwvLan7WmPKNFPrhJgZmH2dWMjyN6ay3Pwpts1wJ6RzMbua/2jRdABQ5sgxlpTAuw0TEzKk6QBVgyhjIqFZEkOVfJIWs67EdY69VX6/PE+DLOHBcANbkXo8Vy0yon0r6wllF8HdEdUbDhsnewcnaliPCQYRnv+0S4RxR+4MXWBj5CicRVmvqCuFFT/mbMSsMn3OTzeqfJjVvg2ndESPLunba8qcagb05CV+ZEJzCfRQkdijsuICVhRam3D7XyjjWfCWFsjqrjRnFxLTRWH/e+tVUKfIXjm7Orpon+X9YQFW5qjYvLLQNEsD0+HMl6JF1N/XrgAfZm 8zhaLTFJ giSLCIVYZO0/e8mU4Ro5bYHXOO+QxZ+mTUfBTJ/BM7Hnks/diU6MOkezPV2o9AUF3aO0y1TePgptNoNq9p6X7PO34++Gg8VVbZcbX0Rq2OTPCbIS2fVPTBk25bA8LOPLRSHpCK12inOwyj3HFXckbXJWP6WTGxVkXyo6/nH51p1UIUayIrofz6+3fal5uV72eftk+SHl728PQh2EfDbgVkydbj95pbd/rBlT2M+OFL2U1y9fPy7PVfTQ5P7cn64YGEnXDS3eheAkUN4subAIp5Au+u/+D+2KRdj+XI5JchC596Igll4JXCtS2lQNpAQXXsiS8QlKOfXWC2eZqodjCgzXA6jCBuXxICRwb 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: --=-8C2F5QNVboy8+d1BlNFD Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, 2025-04-25 at 10:20 +0000, Bernardo C. Gutierrez Cantu wrote: > memblock_set_node() receives a `base` and a `size` arguments, but we are > passing the `start` and `end` of the memory regions when iterating over > them in memmap_init_reserved_pages() to set their node ids. >=20 > This results in the function setting the node ids for the reserved memory > regions in `[base, base + base + size)` instead of `[base, base + size)`. >=20 > Pass `start` and `size`, so that we iterate over the correct range. >=20 > Fixes: 61167ad5fecd ("mm: pass nid to reserve_bootmem_region()") >=20 > Signed-off-by: Bernardo C. Gutierrez Cantu Thanks, Bernardo. Good catch! Acked-by: David Woodhouse That function taking (start, size) arguments seems a little surprising to me; I instinctively expect physical memory management functions to use (start, end). Clearly the author of that commit did too :) As you pointed out in our private chat though, the rest of the memblock_* functions are all (start, size) too, so they are at least consistent. I don't think it makes a lot of sense to talk about changing them *all* at this point? I did a quick grep for memblock_set_node() callers, and the one in szmem() in arch/mips/loongson64/init.c looks odd. /* set nid for reserved memory */ memblock_set_node((u64)node << 44, (u64)(node + 1) << 44, &memblock.reserved, node); At first glance I suspect the 'size' should just be (1<<44) or maybe it should be inside the loop over the memmap, and called with mem_start, mem_size each time? And why are we calling memblock_reserve() for what appears to be a single system-wide vgabios_addr, repeatedly each time szmem() is called for a different NUMA node? --=-8C2F5QNVboy8+d1BlNFD Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Disposition: attachment; filename="smime.p7s" Content-Transfer-Encoding: base64 MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06 aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7 nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre 8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0 QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H /CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6 xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5 NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0 kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc 0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0 cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0 cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0 aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im 8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1 nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0 9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA 9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53 a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch 4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9 6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2 nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI1MDQyNTE0MTgw N1owLwYJKoZIhvcNAQkEMSIEICOHrgeJUiOqPlkRJR8x2dWTP618H52d4t3MyZ0+DLYpMGQGCSsG AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1 cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAUlGaIvZfWbNt Hl0hC7x1N9NiSooXOvvWL4vgBia0WiqcYhZAWQDxmT4956OpZtFLwSMLyJtuSeeXbxg0RljtXqjP uMb6I1F+5oRP/GvAZhFEtl6n/N5zpv9PHgBKAFFLU4DS5lf2iL4c/TsW5YsRJX55g78csKPjdRBs n0K6cKp7aKGm0Q5csvgvvd20Mh1AJISCcMYdqy0fw9yycU+Is/jYs5J3e+Ie7n7Tzbhfr0CZTI+Q YlgJ/YyC88egnLfALYaUOb4FBuHV1ZfveRd+Nog9PuZkn3lHU4NMhH5IF3tq1jANJfWQj9XBw4uN PaFjRSUpphfXQ5UXuk6SCHT3La5t7C7NBooaahJDK0G+RKsIoRSZBGVzOY9uH6VlnunpHnlvS0lu bznYzdvpOlK/9CG2KZSHuDIELWlnTd4ZnedkejY6dNiF/3dEFEtWNbtWIYiPy2NeI0yqwHQB8+KH ifpXVfqYuTNFXrJnimEZEUV9ml7uB3kM/KAPJt6gRHhp9UMdMTyc5UpNIifx5ffHtTL186Zdm3v+ OAky3v9r/q3AEm9vO5Fb26IOqz4Jz81DNlTr0HzvVe2aMeX49W2i8xeN2iGFfhoe/QwIiC7zWBJo qRmMHK7TDi7y3QGNwH4HJXwc6QYYvDC7RSbCyCmbTCngE3FUQqv03LuEP2LWxwAAAAAAAAA= --=-8C2F5QNVboy8+d1BlNFD--