Received: by 10.223.176.46 with SMTP id f43csp1428921wra; Wed, 24 Jan 2018 16:48:28 -0800 (PST) X-Google-Smtp-Source: AH8x2257YwFH38SEbXmzGeKm58nt5kXghTU8D3dAqqR0dftBMNUCdKTFLNQP5DtbdAisPTNXR+E0 X-Received: by 10.99.164.74 with SMTP id c10mr11640469pgp.18.1516841308453; Wed, 24 Jan 2018 16:48:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516841308; cv=none; d=google.com; s=arc-20160816; b=VDAlraFdGh0I8fMNADgeNplVUnxMH0EVE45PHE/Ssq/k5EPcN0kq2SDZeOMF0ivOTn eJHqXLfOwZajmxKneFrVXCoFEk7gCdSmwAG0OgAbYZcm1U+En+UQqF47ZMAQNSEyNkkU kKK/KWo7lE3TfQK5aHH5Kn6vfhj8UFEQ9to2FTgzoxKBuSC+18wtReZV4NNf2N2uEJzE D9WZc+89FzAFabI+IwwAhS1ZxH9Fg22QiU4HvqST70AdDg5yuUZhENvJ09cuNy3aMzmj tWMOINtJzFBcMQ6bFLNLAWE8KfWm6fGBbQt2bbvEBt4OHvadrkSzdDJFeW2q0InjFq34 zwIA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:spamdiagnosticmetadata :spamdiagnosticoutput:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:arc-authentication-results; bh=t5ljTaTdDAff7U0umDKHCxgZYzZWZQjea8M+tV5UQsY=; b=lC//wt0C9wNW+y/aU9nmYxyDRm37LD6zgHcS8URZN1MqWfWQQf7CgkDoas05Q8jiww RNvNNTOOkJXgg+uUEBYSFqTHXeJG1KBJTqFELzwHB3R9SKVXwv288MMBTaRpnLQJEffv PBFU9mptiCGf7xun7Y0XpCFIL8zAZwFV+HiZT1oN0qDAgVu0PgT2680CwRKvWHT68JbK iIrJLbosSy5+gdjwvPYBA4k+Wasd6DFpWZ3z+4PewUdMbYKbo0SewcLOVKPBqVargXWj +TdJGSaz/czp9BCSkqbrrLT93ob+lNDMmY3NRAnamR9elu+2Pmp4RQ1pC4/xRJyCo3lM hJGA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 31-v6si155064pli.165.2018.01.24.16.48.12; Wed, 24 Jan 2018 16:48:28 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932794AbeAYArt (ORCPT + 99 others); Wed, 24 Jan 2018 19:47:49 -0500 Received: from mail-by2nam01on0111.outbound.protection.outlook.com ([104.47.34.111]:31169 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932250AbeAYArr (ORCPT ); Wed, 24 Jan 2018 19:47:47 -0500 Received: from [169.254.21.217] (108.53.61.194) by DM5PR14MB1659.namprd14.prod.outlook.com (10.171.156.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Thu, 25 Jan 2018 00:47:40 +0000 From: "Zi Yan" To: "Nitin Gupta" Cc: "Michal Hocko" , "Nitin Gupta" , steven.sistare@oracle.com, "Andrew Morton" , "Ingo Molnar" , "Mel Gorman" , "Nadav Amit" , "Minchan Kim" , "Kirill A. Shutemov" , "Peter Zijlstra" , "Vegard Nossum" , "Levin, Alexander" , "Mike Rapoport" , "Hillf Danton" , "Shaohua Li" , "Anshuman Khandual" , "Andrea Arcangeli" , "David Rientjes" , "Rik van Riel" , "Jan Kara" , "Dave Jiang" , "=?utf-8?b?SsOpcsO0bWU=?= Glisse" , "Matthew Wilcox" , "Ross Zwisler" , "Hugh Dickins" , "Tobin C Harding" , linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH v2] mm: Reduce memory bloat with THP Date: Wed, 24 Jan 2018 19:47:36 -0500 X-Mailer: MailMate (1.10r5448) Message-ID: <59F98618-C49F-48A8-BCA1-A8F717888BAA@cs.rutgers.edu> In-Reply-To: References: <1516318444-30868-1-git-send-email-nitingupta910@gmail.com> <20180119124957.GA6584@dhcp22.suse.cz> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=_MailMate_D1E070BD-92CC-469D-B3B3-2525D7389766_="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Originating-IP: [108.53.61.194] X-ClientProxiedBy: BN6PR0101CA0017.prod.exchangelabs.com (10.174.85.30) To DM5PR14MB1659.namprd14.prod.outlook.com (10.171.156.17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4db74c70-01f0-4089-d97a-08d5638d3dc6 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603307)(7153060)(7193020);SRVR:DM5PR14MB1659; X-Microsoft-Exchange-Diagnostics: 1;DM5PR14MB1659;3:Gkrz3Tu56gGau1WzIS028N3dMJqxINgAc8yGNR2gHKpmbTS7Cit8aOUiaY0j9yY+GQKn1uf8dGwtVu1iPYgYzdYn7uJ22m+x4Ocq4VntEB8MnE755XHFx4SLgh2C8aZMR1fcaC7lQooqlms2KsyHz0Yf+6U2x45QdES9wVGm60MmwIM5I0tzJMZL9l5f2mEUTNOiGEWz2EcOXVNwtQLyPxP0jSthcnDo/+hHkxsx+7278L8p6cap4iJyZUV3LHFP;25:XksgG+SafG0H3075yrwjJ8vLqti0FhyiEeOv0V7G7pOEabLwCkermOkhXb0llJMktbI1utjASGL6QgnhDYTsoDvl7jBa9j6lNynMCv6VdFXQj/sAUeRCobCjBaU6KEuCGZq3UtEpddY34D98z3a4LfzMowcBmTI5TuohlUiywQk4XBYKoFBT9SM/lxd4yZsrMO4O1QYzbYJcXb8PM9pf3sm91pNGBcrEL+Kf00GDGLr8zY3e9pFe3UrSnr3rkzbKwLdNHv0R9acGSQ+fVRId9632oTxSFQIdHhTjV0jBqfCc2mafzfUozlnCr1NXoJeBHpCWAESRoyCbShm0BlOmHw==;31:dp+mLTNqN1pJ8xi9Y/GmJ8DbdvL3OIh+W8iAM9EIW8WrdbKwgii55bWVCFB8X8VzDaZ4zGRmgYSUqlB7PwChqY1f6VLP/gWqeJ8JLKT/xnjw3eYT0O6DhsXMHyv18QgKUBxOjsiVxp20Ix8aHT2AcYxIMgNobEpx48Vf9ZF8MCBEGoOr/XUqimXNil1lsGdVeqhpKQKr59N5ckBLvcOPEcF/q5vz8kK6q1HgO8nyIDI= X-MS-TrafficTypeDiagnostic: DM5PR14MB1659: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=zi.yan@cs.rutgers.edu; X-Microsoft-Exchange-Diagnostics: 1;DM5PR14MB1659;20:uiy+vsB/habd8jVoBFo4HxsnJIYTE7sD7b+h+OmfsJLCz/XQ2uL4imxBCdudnx6wVJs4rkWHqYuH8Udzr4dxOLLp1ofi4ba5XbujJKiAy1/nw/6aVM9TBI7rdV6htOeIFAXQ4Lzpd05amus1+mxkWcf+UkJpDyfCqef8f29p83hUY4FbziNohYtYuxXEIH3+mHjsO2NO+2Hhom9QmoCJKrM4/FxRXLEXWoOhossowBlkbm/ik2K7QmWxR5SLM0U7+IB6/hJZXOqpivuPjf0/22o1TElljRqliMMHHCgRvbi+JxBSl5uu8zsg8xjLGejeYQdF7hBtKrXvcw4VIuRkuTof6XrSfOIGVTzjBCvAk/v2KK9Xx7jOhFznvXdpZJxeec8/XI0wbuTpI/hvA/L7ek5QnkMHWXuWKu10QNk47kBNwYAvxczj227rAb4a492FS4YRaSnyqT8iwsChJFeanr+/6Xe5Am7V5B0A/xeEpaqXL/XuOCn0NFZ3xJEGVqBq;4:bpHjxAyDcqQpoeOMd2ki7hNAilu8g+zcXgwrHkM9xVAfnM7tEyoO8uocZSoqiJdN3qYwqxplfTIZDj7r51MPDBBasmC984meQX1BNHObHRoiaTl2GsfS8ZilQmn97uu0f3w0Iodtm31JrMVGzCKVfaz36G8hS2KUAeHS6zVjlnB5KD4Gm1ArAgabx7HFU1yusa/ZA2BCirbPvB7mmF8Sxdq5MLO02vO30X3i0UYiV46GqigWYqV14VrVG2G8D3xKiqpTFsnkWrRTu5HLeb61Pw9QAc6vog4qY0QuP1ds/T4GD5d5hkMmWbMvxd8Evdb5FKh9+P1HOWAzEFJqqnN6WdiqCrg/0Pc0uUGrdTtGoRs= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(158342451672863)(278428928389397); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040501)(2401047)(8121501046)(5005006)(10201501046)(3231023)(11241501184)(2400081)(944501161)(3002001)(93006095)(93001095)(6041288)(20161123562045)(20161123560045)(20161123564045)(20161123558120)(201703131423095)(201702281529075)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011);SRVR:DM5PR14MB1659;BCL:0;PCL:0;RULEID:;SRVR:DM5PR14MB1659; X-Forefront-PRVS: 0563F2E8B7 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6049001)(39860400002)(376002)(346002)(39380400002)(366004)(396003)(111735001)(199004)(189003)(52116002)(68736007)(82746002)(2950100002)(53936002)(6666003)(1720100001)(7736002)(97736004)(966005)(81166006)(50226002)(6916009)(4326008)(84326002)(75432002)(6246003)(26005)(25786009)(39060400002)(186003)(42882006)(77096007)(53376002)(305945005)(76176011)(83716003)(86362001)(106356001)(66066001)(6116002)(105586002)(478600001)(33656002)(16586007)(90366009)(3846002)(16576012)(2906002)(5890100001)(316002)(7416002)(88552002)(6306002)(6486002)(786003)(8676002)(33964004)(5660300001)(386003)(16526018)(568964002)(229853002)(8936002)(81156014)(59450400001)(54906003)(78286006)(72826003);DIR:OUT;SFP:1102;SCL:1;SRVR:DM5PR14MB1659;H:[169.254.21.217];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; Received-SPF: None (protection.outlook.com: cs.rutgers.edu does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTVQUjE0TUIxNjU5OzIzOnNVVXNCdDJLZE5QVEh3MUh6Z244Vjd5UWcv?= =?utf-8?B?TEh3Vjk2TnN1KzlKcWZwclFiM3FyNk5QMmVNT3pkNUxNRHdiRzBPbGNabkdx?= =?utf-8?B?cmdDTzV2TGQvOERtcEs4OGw0RmVlcktDZlhkL3VZa2V1VDN1Q1d0ZHRGNGxo?= =?utf-8?B?aU5zTnZZYzZXUnlIMlJUdEdObHN4QzBXVVpjaVVIdU1DUnJJYXdKQlRTbXFG?= =?utf-8?B?eVU0Zk93cFdsRVRDTlhZUVppWUQxd0NTRW9Ia2pvOUZwcENCV3YvbUFPQzJ5?= =?utf-8?B?YUZra1ZSNGZEaXBUUEZNUk10NStOdEJlZzY1ZFRGRHhOanE3NlNwVUxSWWI5?= =?utf-8?B?eENQaDduelFRNnNRWk9lQlBQRXZKaFRQUGl1VytoNG1BWm85ZE9yU1lqVnZG?= =?utf-8?B?UmttaGMyRUZGVlNvY21URkVRSjVPUEtXN21rZjJRZWF1NmJtTVJpSXVjUXV3?= =?utf-8?B?aXdWa3M4VnV6MnRnYTdzUjZHZ1RpQTJ5SkJpYVlOait2TlBES2c5Vi94eVkx?= =?utf-8?B?SDhPbXMxcXlFS3hnOEN1ems1dWJhclQwQnNuV0lBZEhBSmFMeFE0ak1hUll1?= =?utf-8?B?WFN5b0RxblVVaHd5M2pVOEJ3WHZYTWtJRzl2U1JCTFBPUkVabVhNYWQvSmNo?= =?utf-8?B?OUVWYjMzUmJjc1J0elhscnZJS00vSlRlVC9CK0ZnWFJ4RXMyY1lrVVVhU3ZW?= =?utf-8?B?Zk0xU3RCelI5ZGEyR1JyM2Z3d3J2Nm9BbnFqY0JVTUZTN1l1ZW1GdklNSXli?= =?utf-8?B?VmR6eHE3ZHROdURlRDM5eS9VbER6NjZtakV6RUZEeXROOTJGR2N0aFFkZHky?= =?utf-8?B?L0tJMkNVNWZNM3MwTFhocFR3b3dESW84anRHZGpLYklya0IvMUdJQkhNR0xS?= =?utf-8?B?eU1Pb3N1QkFCaldzTDFaRHV3UVcrd1dnbnVHT2JpVC9QSkZtY2VOSGg4Mk02?= =?utf-8?B?Wmx3ZjRZSkNSOHEwYWd4OXh5Qk1NQ3YvMlRQUGtlSnhqY013WmplaTVxclh2?= =?utf-8?B?YUVDNW9KZVFmMG16TkM5UGNoUWY4RHVHUjJ0RjZINU9sSWVPaVJOSDFRbng2?= =?utf-8?B?NGdGbm4yKzBsWnovMkIxOFVPcTZpNjdsUWxZd0t5eVRvK2RYMG1WWU1EWjA5?= =?utf-8?B?ZHJ1VmhHRWJJc3U5RjJ6VEdPUkVsc1lST2llMlU2a2QzU2kvZ1pwTmoydHdO?= =?utf-8?B?Y01xSEwrbGNMWTQzWlAyYU81QmJjTU15WVhoOFVua0tFanVGR3oyQmcrTVVL?= =?utf-8?B?ZkJFcUh4SENMc1duTGUwVEEyRGd5QXhRUWVDZWJlak9uUXQrRXk2TVowbHR2?= =?utf-8?B?Y0FVTzlSVWlIQ1hlVUZmN1JlSHV6VWFjT0drSmo5NUc5NThhcWpZUi9EWHpH?= =?utf-8?B?ZWlPb0wzQ0VWWGVlN2hWeHhQTXFLdnJBSHN4eko5N1NQUk5TckJZYjJxdjJ2?= =?utf-8?B?TGFUTnVHMFVibWVic0RVWjRZaTlrSWQwZkdhaVRoRG9vbXA1REJKWS9NOTZh?= =?utf-8?B?S2hkYSsvUk9tMldzUHlNTmFydGhlYU5vR0c0QXN2Y2xIN0wxMFQxL1poblZE?= =?utf-8?B?eU5nc0gxdkJYdXpycXAvenVWQTZMaUFhSUtqSE95R2NWVFluYk5oTzZsQzRI?= =?utf-8?B?WEJvSXVUcHdaU1ZTZTk1UkFSZzNtYVplNm1Rb3ZqQWorakIrSFZHaXcrRW5h?= =?utf-8?B?Qm9PNlFvaHEwbnFLbklsNUdjdWRHUWxTNGRDbFRic0FLL0NTeEpONGJZRzI0?= =?utf-8?B?ZzhRRVYwNmVadFYwUVNOQ0hJTnR6T1pHeDdzeis5VEJ1MEFVeWRNKzI5eXhQ?= =?utf-8?B?OURKRXdHa2JzTWgvNFpSTkFhN0IrZzBHNEIvbnFiRVQ0SU4zTG8xV2xtSzVC?= =?utf-8?B?OFV3SkVPMlhPcVFhMi80b2UzNlJMVGpOM0dXeVZJYkJScWF3eVpnekI2a0FD?= =?utf-8?B?c25RcVdiVEVDZ1FMRzJZVnRyajZFMHhGREVyV3JaRFQydlVKUklmNHMyaElo?= =?utf-8?B?czY4Nm9FU3l0WTF5c0syNXkxYU5qK0JDTnV1aGhFOURXVzNYRnRsSVNUL3lo?= =?utf-8?B?NnJrRDJDNkFVeitaNUpIQVJYZG9RL0dNQThhOGdWNU9yZnI2Sk94eTRWWlVK?= =?utf-8?B?OVE9PQ==?= X-Microsoft-Exchange-Diagnostics: 1;DM5PR14MB1659;6:4IiM1fjY1G61kWo2UDs+XJ80s66zqXuLFovYakDOoa6RpCOsZJVjj5srSFmalXFPCsVgVRLHUEpJOgF8Dd3mFColjJToA+pu5PvB2Y3rEN1QYWURf/AuT1T3ufLgm1HrcXgtsSAqcP4jSXeT+TTiXQZdhAWP+wY1ZeeFDY+Z94ButKuPIU460DPdh5UYk63OcG2HzrjFaW98wM+efTYiQjl6uyJn1/Y9IjHu3nyCa24MtEqpDXw6WUHGm/3QrjAsW3h1X6fVBLTCP4ykVv9q1FSdwgiPJJpH4YVzvsl6W57d6yTpnXV1r6BwUESqK9PI5z5NQM5rlcIaotCsOFUJPg1A9//rPxmbzWVxnCJi31M=;5:u+Kk88O1V+0/XwBKdzdP+i7XmPtRRQ6bueaT9GuGji+j4q1sWDGwH+0JFKvlHvBmTS0eVY0rMofhl7PrcHF+AhSCUZcNEPM+VXqHn+m5hVJqRfLfqNx9WU5AvOJjD8j1IRBu3jMzoqi8lxsE3e2YS3Y9S0+WOINSDAQBP4uyWNY=;24:2Wha7hNEkxfYSBmOTSOo5awOHB1QsQqmfK3rvdE1KoWynbIKOa79WrHarbzu61Cqri/7+ws5AmS33x4jTg3BlRG0woFLOcdZz5DlS2IfxnI=;7:Uoh24DD8kAXkPI98z/c9txCLf2w0FVWRpv4+9S9FBgtBG11+IGiSWK2c+JPYNpMjEG9Ggpm9riEUDV3WT/8RH6Jq8OWNaSpjdwOpoV8ziBYZFDVODim4SMHO/Uw7wTNaG5HPgXmQUd85poAwG+/gJNFJubohhH24cNJaLC4aKPSfbyK1YSBz3JqPlXKVHBgXnfx5eB7d0TmqQy/mDu34XMNjLjNR+fZa1yLC3BZ03xbe3pz+nB15j1fOT+ei7Nsx SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cs.rutgers.edu X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jan 2018 00:47:40.1867 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4db74c70-01f0-4089-d97a-08d5638d3dc6 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b92d2b23-4d35-4470-93ff-69aca6632ffe X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR14MB1659 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This is an OpenPGP/MIME signed message (RFC 3156 and 4880). --=_MailMate_D1E070BD-92CC-469D-B3B3-2525D7389766_= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable > >>> With this change, whenever an application issues MADV_DONTNEED on a >>> memory region, the region is marked as "space-efficient". For such >>> regions, a hugepage is not immediately allocated on first write. >> >> Kirill didn't like it in the previous version and I do not like this >> either. You are adding a very subtle side effect which might completel= y >> unexpected. Consider userspace memory allocator which uses MADV_DONTNE= ED >> to free up unused memory. Now you have put it out of THP usage >> basically. >> > > Userpsace may want a region to be considered by khugepaged while opting= > out of hugepage allocation on first touch. Asking userspace memory > allocators to have to track and reclaim unused parts of a THP allocated= > hugepage does not seems right, as the kernel can use simple userspace > hints to avoid allocating extra memory in the first place. > > I agree that this patch is adding a subtle side-effect which may take > some applications by surprise. However, I often see the opposite too: > for many workloads, disabling THP is the first advise as this aggressiv= e > allocation of hugepages on first touch is unexpected and is too > wasteful. For e.g.: > > 1) Disabling THP for TokuDB (Storage engine for MySQL, MariaDB) > http://www.chriscalender.com/disabling-transparent-hugepages-for-tokudb= / > > 2) Disable THP on MongoDB > https://docs.mongodb.com/manual/tutorial/transparent-huge-pages/ > > 3) Disable THP for Couchbase Server > https://blog.couchbase.com/often-overlooked-linux-os-tweaks/ > > 4) Redis > http://antirez.com/news/84 > > >> If the memory is used really scarce then we have MADV_NOHUGEPAGE. >> > > It's not really about memory scarcity but a more efficient use of it. > Applications may want hugepage benefits without requiring any changes t= o > app code which is what THP is supposed to provide, while still avoiding= > memory bloat. > I read these links and find that there are mainly two complains: 1. THP causes latency spikes, because direction compaction slows down THP= allocation, 2. THP bloats memory footprint when jemalloc uses MADV_DONTNEED to return= memory ranges smaller than THP size and fails because of THP. The first complain is not related to this patch. For second one, at least with recent kernels, MADV_DONTNEED splits THPs a= nd returns the memory range you specified in madvise(). Am I missing anything? =E2=80=94 Best Regards, Yan Zi --=_MailMate_D1E070BD-92CC-469D-B3B3-2525D7389766_= Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQFKBAEBCgA0FiEEOXBxLIohamfZUwd5QYsvEZxOpswFAlppKSgWHHppLnlhbkBj cy5ydXRnZXJzLmVkdQAKCRBBiy8RnE6mzPqKB/9MOBPIl4Q5ZTt6y6NriJc9bIX7 hRF68xpcJPa45wr8hy0gVfiBBQ9q7ifa2Uv7pHDA51rvPrISBt+DnhoCvlLzXYd+ yyirWmBzhLGXu5QPejEcsRf5TuHjdEFWBVkV4pqlUscvDVmMuySpVzPrfqpYVfFu xTelPpheXH9Yq7jmI1+xzlI6FyPfFLMtrTXbGP/faVzdlfG4NhmgQAYucBS8uuGt 6c0ic2oVqnNaP2XUyT2cnjECQa5STWxcfltIT6dGjMO7/kxDua/E37diACJoKl6L 4RUb09/cBLqlsHSro0WvBlGs3Pn3Vbfb92aNNc8rqh0apXVh+NcUJ9MnB5Tx =4QFO -----END PGP SIGNATURE----- --=_MailMate_D1E070BD-92CC-469D-B3B3-2525D7389766_=--