Received: by 2002:ab2:6d45:0:b0:1fb:d597:ff75 with SMTP id d5csp71788lqr; Tue, 4 Jun 2024 21:54:50 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCU0CF0HNlMrX3nQbu2hQrQmdD/QK2b5ppL/hNAx1acupgZrtbIrJfydDWp1Aj/Ks/25nyNpZyVNv9xt4yv8nYvnmXuX+lCgba4jd8dTdA== X-Google-Smtp-Source: AGHT+IGPI8z7s7/GRURNp9lqFmLa6LwDYFYcYnceZkGnYa8vgWFmBKFroZs+412qSJI3cdjTDaIF X-Received: by 2002:a17:907:504:b0:a64:a80c:1f25 with SMTP id a640c23a62f3a-a699f34bf9fmr70882466b.2.1717563289580; Tue, 04 Jun 2024 21:54:49 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1717563289; cv=pass; d=google.com; s=arc-20160816; b=hlsmc/+/aCHcd/OwEWNR0OJ7RxuTCuFdax92thn+wdW2L/6W0xcz9ejKb7QAJvzMNA +MSf0fXn6NJEkcAHehwKAo0e5tgjPgQncyVw94RUDOjbq1QmXRMAmvIA/A/IE+fi9myW i8XnMXgGnrV2qSjMxBecEdGo6vAM2tZZxd2xF/BJJ15ZRae9fw6ryvP71FpbFWtz7edk wmTNSuPnHhYNQv+/oYpOU2cKYElMfbS16Zv5K0RmfpcT1LBqQHZNqxA4Kwjrm2T7oywk 5YEgizS1DM/WU6udBaeoCJCH5eDV6+6f7UzaQqgZo6yURsUp4zaKH9RNf8kYCnGlBc/X 7upw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:list-unsubscribe:list-subscribe:list-id:precedence :dkim-signature; bh=eXiCu7jQhAOOvYPXYfFTMpGsBX3riVtY6fLCKmHhD3s=; fh=S3N603O/A3kLHzFG/OiPFjQ95Egu363bnwHY8W31Aq8=; b=kHtiq+Co3Je91CnOaIW5TJzgu6hwEPIaoi4rysnEXJ0y/fwzLJzA+DxkjWmrRAmdJu eNOC2FPxxdBD3bRzmfoFFtBzEGDGEN/u367IVkO+5BM4/9/3nvOK7onAetfUc3uxRwQS 8L5zSLvYOxcLulb1p+fJsWko+iTqeroagLRSpvMh2orJRmczwAuKS1+eX19iBvAgRw9/ ywS2JEuCuh95czp4cevPrEh6G9G/7IijE53GSRQAJtlxIEV1QI+X4TYaEt2xhPSYSvCD gUzh9touYrEcexmJr1G4ZmNepJDB+ROXin5PT3jCSwCY2c5iVxxVp91nvKHE/Qs6napO DsqA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=v5lSKh1U; arc=pass (i=1 spf=pass spfdomain=google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-201756-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-201756-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id a640c23a62f3a-a68b52adb76si440132666b.613.2024.06.04.21.54.49 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jun 2024 21:54:49 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-201756-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=v5lSKh1U; arc=pass (i=1 spf=pass spfdomain=google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-201756-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-201756-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 17EF91F23946 for ; Wed, 5 Jun 2024 04:54:49 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 0FC2712F5A6; Wed, 5 Jun 2024 04:54:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="v5lSKh1U" Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 80E3C38396 for ; Wed, 5 Jun 2024 04:54:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.41 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717563279; cv=none; b=scDFrk2QD47BYJWlseD1EU8bM5okGAWxlY4v+IxOk2SEXyyuw9sjvEoi47fN5WLRTwLpX94YBGYNzwSVhJhTRs5LA0GFezVlIWQAZqAUbYp6R7KnL90C+1r7EW7G2z/XsroZnGmyZ6znxoFGLkPW4L9IOZkJqhUiAqJd2tJSz0M= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717563279; c=relaxed/simple; bh=rFzEkYM0ZSPLSxXCmHk2BWsYoPaEkQi5JYHql9H6cjY=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=asUrlTI7fJkOGzo5xn5rDUC+t27dkc0lwXc8BcHjuS5/iD6vXVs2pmCHsVw8Fz1rJX16F7zBRzUgcyxIQj6pQ/7cN8PLJdfa15akDLvuYsKMseDTub8YS6Gyf6zMu0nTaB7im6WJAYgqAi/FnI3Km2KRO8kz+VcnlC2Hxd8fLFo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=v5lSKh1U; arc=none smtp.client-ip=209.85.128.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=google.com Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-4213a2acc59so34475e9.1 for ; Tue, 04 Jun 2024 21:54:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1717563276; x=1718168076; darn=vger.kernel.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=eXiCu7jQhAOOvYPXYfFTMpGsBX3riVtY6fLCKmHhD3s=; b=v5lSKh1UkC70x0WhCXMlWHHhW1D9+cV83RIL6Y9QkCLp8kxkH2K3EDFanlXj2bXk7/ c54Y9TiBgYmPlwQwGBks1ex5pv8Hbc32E6cnUT7UJBxWCVPHY68u2Yqyh4keYkSGXw6L leya+9t6/TZRO0LLp/o/bOr/KLXR5Bg8jAOvIjTKw3o1owO/8fADYa4KThIW+uNHFrtZ xpSgwstiURtG6h3m6LsSXAovoR13nny5PTYsEV9CGDVl48AFcivoE2ZNGCSS48pcOXtu cPH3K20hWJwL6wYOut5C9JKkmhC/B+tfYl0mstThM2iJph7SQqrV0pIbYsif1vVcaZ3F 6IOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717563276; x=1718168076; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=eXiCu7jQhAOOvYPXYfFTMpGsBX3riVtY6fLCKmHhD3s=; b=j/uCVFaWoCj4P8Y4RiwQvUPAHc/JJxEJiDefONyRjHUcxvNCLZC26AcOaxyAUCpgYa FupewZZCMpset/uadHH8pfuqi1UIfdxFPSfeWibLTQpAMMNEeaQ62jEMESFey396ZIRk T3ONbE+cWgFN/osrfp81qjPkGXo1twCYWfmPVRA9xME+MZCe7up+y1wE+vgQqcyPP1cr 6aQ8TseJZu5qMdQf3pO7CZpb5ecTXdY5UorAsDTwgVUGJZ/FPGYY9es52cxnNsTpORXb wWveRwV94PCZbhLkYC+1ObKpUHN7++Rj+ndnU58AmOgGAm5FyXrfCOLhEVXDhSelNy0K Nz0g== X-Forwarded-Encrypted: i=1; AJvYcCXIv/A5vkVzX0HZHaSBfxqrztept0P5jTANPiMguEkv9WQekyNX3j4JQAJMhLRMJsMIYPSKviF9AEHYzlZ/UvBWEDy22iYNtgUIVnT8 X-Gm-Message-State: AOJu0YyI4kBkwGnJ/7fhXgf+L+qqU8pUNXfzSbsZzVYDx/XIMROOmFUg yPIvOXizSXd4yKEzAxj4IRnQSikdn2Lygl1s4yhlf8L4/c7Q+fFRdnNEN50iS4tUdfuMvCV3PBl 9HnJhjZJIpikU95+d5o43BiVBNjULv3FPNSMBwv/5qF9gZp0IBtPz X-Received: by 2002:a05:600c:2942:b0:418:97c6:188d with SMTP id 5b1f17b1804b1-42157e4cd5cmr931895e9.7.1717563271718; Tue, 04 Jun 2024 21:54:31 -0700 (PDT) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20240320180429.678181-1-hannes@cmpxchg.org> <20240513160331.GA320190@cmpxchg.org> <20240513190400.GA2270702@cmpxchg.org> In-Reply-To: <20240513190400.GA2270702@cmpxchg.org> From: Yu Zhao Date: Tue, 4 Jun 2024 22:53:55 -0600 Message-ID: Subject: Re: [PATCH V4 00/10] mm: page_alloc: freelist migratetype hygiene To: Johannes Weiner Cc: Andrew Morton , Vlastimil Babka , Mel Gorman , Zi Yan , "Huang, Ying" , David Hildenbrand , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Kalesh Singh , Chun-Tse Shao Content-Type: multipart/mixed; boundary="000000000000b13285061a1d5cb3" --000000000000b13285061a1d5cb3 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, May 13, 2024 at 1:04=E2=80=AFPM Johannes Weiner wrote: > > On Mon, May 13, 2024 at 12:10:04PM -0600, Yu Zhao wrote: > > On Mon, May 13, 2024 at 10:03=E2=80=AFAM Johannes Weiner wrote: > > > > > > On Fri, May 10, 2024 at 11:14:43PM -0600, Yu Zhao wrote: > > > > On Wed, Mar 20, 2024 at 12:04=E2=80=AFPM Johannes Weiner wrote: > > > > > > > > > > V4: > > > > > - fixed !pcp_order_allowed() case in free_unref_folios() > > > > > - reworded the patch 0 changelog a bit for the git log > > > > > - rebased to mm-everything-2024-03-19-23-01 > > > > > - runtime-tested again with various CONFIG_DEBUG_FOOs enabled > > > > > > > > > > --- > > > > > > > > > > The page allocator's mobility grouping is intended to keep unmova= ble > > > > > pages separate from reclaimable/compactable ones to allow on-dema= nd > > > > > defragmentation for higher-order allocations and huge pages. > > > > > > > > > > Currently, there are several places where accidental type mixing > > > > > occurs: an allocation asks for a page of a certain migratetype an= d > > > > > receives another. This ruins pageblocks for compaction, which in = turn > > > > > makes allocating huge pages more expensive and less reliable. > > > > > > > > > > The series addresses those causes. The last patch adds type check= s on > > > > > all freelist movements to prevent new violations being introduced= . > > > > > > > > > > The benefits can be seen in a mixed workload that stresses the ma= chine > > > > > with a memcache-type workload and a kernel build job while > > > > > periodically attempting to allocate batches of THP. The following= data > > > > > is aggregated over 50 consecutive defconfig builds: > > > > > > > > > > VANILLA = PATCHED > > > > > Hugealloc Time mean 165843.93 ( +0.00%) = 113025.88 ( -31.85%) > > > > > Hugealloc Time stddev 158957.35 ( +0.00%) = 114716.07 ( -27.83%) > > > > > Kbuild Real time 310.24 ( +0.00%) = 300.73 ( -3.06%) > > > > > Kbuild User time 1271.13 ( +0.00%) = 1259.42 ( -0.92%) > > > > > Kbuild System time 582.02 ( +0.00%) = 559.79 ( -3.81%) > > > > > THP fault alloc 30585.14 ( +0.00%) = 40853.62 ( +33.57%) > > > > > THP fault fallback 36626.46 ( +0.00%) = 26357.62 ( -28.04%) > > > > > THP fault fail rate % 54.49 ( +0.00%) = 39.22 ( -27.53%) > > > > > Pagealloc fallback 1328.00 ( +0.00%) = 1.00 ( -99.85%) > > > > > Pagealloc type mismatch 181009.50 ( +0.00%) = 0.00 ( -100.00%) > > > > > Direct compact stall 434.56 ( +0.00%) = 257.66 ( -40.61%) > > > > > Direct compact fail 421.70 ( +0.00%) = 249.94 ( -40.63%) > > > > > Direct compact success 12.86 ( +0.00%) = 7.72 ( -37.09%) > > > > > Direct compact success rate % 2.86 ( +0.00%) = 2.82 ( -0.96%) > > > > > Compact daemon scanned migrate 3370059.62 ( +0.00%) 3= 612054.76 ( +7.18%) > > > > > Compact daemon scanned free 7718439.20 ( +0.00%) 5= 386385.02 ( -30.21%) > > > > > Compact direct scanned migrate 309248.62 ( +0.00%) = 176721.04 ( -42.85%) > > > > > Compact direct scanned free 433582.84 ( +0.00%) = 315727.66 ( -27.18%) > > > > > Compact migrate scanned daemon % 91.20 ( +0.00%) = 94.48 ( +3.56%) > > > > > Compact free scanned daemon % 94.58 ( +0.00%) = 94.42 ( -0.16%) > > > > > Compact total migrate scanned 3679308.24 ( +0.00%) 3= 788775.80 ( +2.98%) > > > > > Compact total free scanned 8152022.04 ( +0.00%) 5= 702112.68 ( -30.05%) > > > > > Alloc stall 872.04 ( +0.00%) = 5156.12 ( +490.71%) > > > > > Pages kswapd scanned 510645.86 ( +0.00%) = 3394.94 ( -99.33%) > > > > > Pages kswapd reclaimed 134811.62 ( +0.00%) = 2701.26 ( -98.00%) > > > > > Pages direct scanned 99546.06 ( +0.00%) = 376407.52 ( +278.12%) > > > > > Pages direct reclaimed 62123.40 ( +0.00%) = 289535.70 ( +366.06%) > > > > > Pages total scanned 610191.92 ( +0.00%) = 379802.46 ( -37.76%) > > > > > Pages scanned kswapd % 76.36 ( +0.00%) = 0.10 ( -98.58%) > > > > > Swap out 12057.54 ( +0.00%) = 15022.98 ( +24.59%) > > > > > Swap in 209.16 ( +0.00%) = 256.48 ( +22.52%) > > > > > File refaults 17701.64 ( +0.00%) = 11765.40 ( -33.53%) > > [...] > > > > > > > > > This series significantly regresses Android and ChromeOS under memo= ry > > > > pressure. THPs are virtually nonexistent on client devices, and IIR= C, > > > > it was mentioned in the early discussions that potential regression= s > > > > for such a case are somewhat expected? > > > > > > This is not expected for the 10 patches here. You might be referring > > > to the discussion around the huge page allocator series, which had > > > fallback restrictions and many changes to reclaim and compaction. > > > > Right, now I remember. > > > > > Can you confirm that you were testing the latest patches that are in > > > mm-stable as of today? There was a series of follow-up fixes. > > > > Here is what I have on top of 6.8.y, which I think includes all the > > follow-up fixes. The performance delta was measured between 5 & 22. > > > > 1 mm: convert free_unref_page_list() to use folios > > 2 mm: add free_unref_folios() > > 3 mm: handle large folios in free_unref_folios() > > 4 mm/page_alloc: remove unused fpi_flags in free_pages_prepare() > > 5 mm: add alloc_contig_migrate_range allocation statistics > > 6 mm: page_alloc: remove pcppage migratetype caching > > 7 mm: page_alloc: optimize free_unref_folios() > > 8 mm: page_alloc: fix up block types when merging compatible block= s > > 9 mm: page_alloc: move free pages when converting block during iso= lation > > 10 mm: page_alloc: fix move_freepages_block() range error > > 11 mm: page_alloc: fix freelist movement during block conversion > > 12 mm-page_alloc-fix-freelist-movement-during-block-conversion-fix > > 13 mm: page_alloc: close migratetype race between freeing and steal= ing > > 14 mm: page_alloc: set migratetype inside move_freepages() > > 15 mm: page_isolation: prepare for hygienic freelists > > 16 mm-page_isolation-prepare-for-hygienic-freelists-fix > > 17 mm: page_alloc: consolidate free page accounting > > 18 mm: page_alloc: consolidate free page accounting fix > > 19 mm: page_alloc: consolidate free page accounting fix 2 > > 20 mm: page_alloc: consolidate free page accounting fix 3 > > 21 mm: page_alloc: change move_freepages() to __move_freepages_bloc= k() > > 22 mm: page_alloc: batch vmstat updates in expand() > > It does look complete to me. Did you encounter any conflicts during > the backport? Is there any chance you can fold the fixes into their > respective main patches and bisect the sequence? > > Again, it's not expected behavior given the fairly conservative > changes above. It sounds like a bug. > > > > Especially, please double check you have the follow-up fixes to > > > compaction capturing and the CMA fallback policy. It sounds like the > > > behavior Baolin described before the CMA fix. > > > > Yes, that one was included. > > Ok. > > > > Lastly, what's the base you backported this series to? > > > > It was 6.8, we can potentially try 6.9 this week and 6.10-rc in a few > > weeks when it's in good shape for performance benchmarks. > > If you could try 6.9 as well, that would be great. I backported the > series to 6.9 the other day (git cherry-picks from mm-stable) and I > didn't encounter any conflicts. > > > > > On Android (ARMv8.2), app launch time regressed by about 7%; On > > > > ChromeOS (Intel ADL), tab switch time regressed by about 8%. Also P= SI > > > > (full and some) on both platforms increased by over 20%. I could po= st > > > > the details of the benchmarks and the metrics they measure, but I > > > > doubt they would mean much to you. I did ask our test teams to save > > > > extra kernel logs that might be more helpful, and I could forward t= hem > > > > to you. > > > > > > If the issue persists with the latest patches in -mm, a kernel config > > > and snapshots of /proc/vmstat, /proc/pagetypeinfo, /proc/zoneinfo > > > before/during/after the problematic behavior would be very helpful. > > > > Assuming all the fixes were included, do you want the logs from 6.8? > > We have them available now. > > Yes, that would be helpful. > > If you have them, it would also be quite useful to have the vmstat > before-after-test delta from a good kernel, for baseline comparison. Sorry for taking this long -- I wanted to see if the regression is still reproducible on v6.9. Apparently we got the similar results on v6.9 with the following patches cherry-picked cleanly from v6.10-rc1: 1 mm: page_alloc: remove pcppage migratetype caching 2 mm: page_alloc: optimize free_unref_folios() 3 mm: page_alloc: fix up block types when merging compatible blocks 4 mm: page_alloc: move free pages when converting block during isolat= ion 5 mm: page_alloc: fix move_freepages_block() range error 6 mm: page_alloc: fix freelist movement during block conversion 7 mm: page_alloc: close migratetype race between freeing and stealing 8 mm: page_alloc: set migratetype inside move_freepages() 9 mm: page_isolation: prepare for hygienic freelists 10 mm: page_alloc: consolidate free page accounting 11 mm: page_alloc: change move_freepages() to __move_freepages_block() 12 mm: page_alloc: batch vmstat updates in expand() Unfortunately I just realized that that automated benchmark didn't collect the kernel stats before it starts (since it always starts on a freshly booted device). While this is being fixed, I'm attaching the kernel stats collected after the benchmark finished. I grabbed 10 runs for each (baseline/patched), and if you need more, please let me know. (And we should have the stats before the benchmark soon.) --000000000000b13285061a1d5cb3 Content-Type: application/octet-stream; name="log.tar.xz" Content-Disposition: attachment; filename="log.tar.xz" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lx1cnvyg0 /Td6WFoAAATm1rRGAgAhARYAAAB0L+Wj5Df/Qv5dADYbyRWYrNGyNLfPL52rZoWfsCXdC3O7wx3n wBYAHD3x3SBw8Y9haC8Q97iXvjGfKn6X6u+6cIma6D6L31we7WtYR2Zkzh1rVd3gJtPtw/tfKPNk N8PX2lWqzc+3KVwObqz8Kd7j+qHvQFUELKjEuFd3ksxW+GQfTRQ1poZ+FrTg6BQHjQAyvZr2MWbQ C68zG9cTGRO1gISHNY/umQV3aUFwRX/VscMPYIn8Jc/q/UeR2gkSLWd738LKYXOFmbxtlYPYu2aO 4J3yXDWB5zRlZ1XmEQvep789IAOKg61YNvRqgwvlV0rOuUHzN+eA6x06A24h0jC32C39GQfYhk6X W4kL1WRRUbpEiXePTK/K7cqmN7ZkyXWg5K9QxOg03HPOtWTxe8ZNVk7HqAk8MC9JpvsU1sVPgzQL ptqAL6RpAkdVECWqye73icGbAfYg85CAMMATCJZSmg7tesI9qeoQQc6tXV+Hr2CMDKvpQpaW/JJo mhl5zxl0vwfXmmbjvhjrSRcJkBc3yt3Oo+5Lprcju3E7ZGoy8JBb2+0AxW2K6HieVUhTiCA12rjI oR/ReFejUW7R8qN13lOWcRiQyR1iAP1oAMpqkMLmp+LVFZfHurb59pZYx9pqahsZ4JFubEiHqAkW mVp2ja2nD21t8llTleZYkvNmoILlpuWEDu7zfPNZypbFLgAP2vGXzywndGx9zONjJ7dMXuWXPeYy IbllzNFm9rP5yTTfE5wG1RCEelOPomCEAxSD+pCoS50oMkZfPg0UexwrJZ10yfFT0LfyWm2c0fIj sL0wI3jv6j9HTgqlquBYTirrghvz15HrJ2qfcf6d+cTbu3epkqX8UTwEzJI0E0q/TivRJIQHEcj6 TNH1/vcNnJ3Hqf0OJWoXldfYtK+NkQvI4PHKxOSp7fRSeKDB1nfsV+rLYYO65a0e94i+Z8rkAFhL eWy0JqF2m3da/RwyyjhXg0ulzTeyBVclvK+cCHuwqbwYT4tcOigLZ8PU0uJpqrYHvbLG/iCMdbHX hlLT34dYjaztbLF/DzHxnj7ZkHsGYiMeFA40J8wXGpyvOl2PRlSWQF5JCQMMXeFGYHVU+1fIX7B0 aNkJryp25zn3tabTcBq46qrrF7AADWGiLEb7rJ1R34ULEGrKeGc4eCddiKV36xZES4lzu+y72qd3 xwK4zl5JayIZplLaKzWlnP6z6744kohwYo3BP8dH9Ml/6LOkJq9eM/zbY2c3C18hrSlNr4TDQS8q OnlFknD+emLfwqpRdBiUBMcyjVnuS+8EEAFltNMWgg9vMMrpXDTZywBgnrAQAhT5+/SEwBrBV0eh +vM8QQpKXWogyaA5/g++PqAckvfCx9d7ZR7HzVscnV2DeduXxUnFEGAGMbIUoNSRbY8Pk/oHmzHS CJ/yg70kJlGgHt0cJAksw5rXoxnbnTHqWMtvJYBiBZClDBqiCq4mQIFzecZLARZKTQzHXhW9UXXh BFd5Xn7i2/hQpHZzZSXIdH7zAg+4Hwf/GCt5bXoQqzMmKn3i+uqNUi0ShBaPdIJ195hDvS2SHBgo tCWKwFMl54W0FutMWth9PO1k8/P0nmhigpdXrQBgOrggnFREEYmU4J3ZRiNvGu3ko5IHnstRVmt9 R1EFZ6oYNtZansfoTUcIxfCA4yQkGPpD5Hywv+6f6OYc8evpPrLykZaR0EZkFhTA76ahE/L2ZJEf zB0cZrzOtgUufc0gY+CGkl8vs7hK2YdEtNUZ8FjiMFqoyKNX4w+3+97yTf9TJX0bI6QGFzCMjquX +fX3sMafBX158h/1lnS5CNFZPwLTVINDBiskZOVafKKQlHAnaSo5Tk4Wlv5Ux2la1FbYugxHu6QH rFpcM9anQwcDgndXv7hr/KHFQfOMwqbZV79r14r0a1q1jLqw/geou5ZYcnz5ZB5DZ795TVt+aI6E 0E0TCOfDU1knGu+Ey4FIL0MIDtwZVvlfwB7R1DfmRCPca2YdQwGoEek7nhrHFEp3ihJfs22NMfUV HHV2nK9HJSyBoilCPRnTi4ThKJ+avBIMyEYCFIbl5DfFP6a2Piq96RS0WuD4I6MXYeJm6+0G5mYK VgC82uXEbJQCd5LNeIEUzykH4vlALxziktKOVkM4Cw6YR6vQnOFxONyes/xDeNRdWAk0Yral7jdH /sXhNXMD3y7i8BKVlvpdjMU/AGBDXvX2FTMiMoe0d+rj3nCp19ab/MxDnqXc/oY6pxYVhei0oSZM 6a8MjJueOSIHedwWoB/thtuLDwPkl4IMuX5nfUZcCJFt2Smc6k1oOsctk4o6cKtA6pVMpVc49XUj 4k1tsS4lXOzJRzuN7MPWCVZT5+BK/2ZeFRCwC6RZ1o2Bigfz043jooKOhHwpY+5kD7pI9Tr9medT uXrifODd0fX/xvCIy4ExCuD50DSA9IZ8uPxbvnpOmk8u2FUCCTBQnHGWDlu+p1poOWnZz88w7p2C J8MQFgExdlI27pS/zae4ulpDOhTPosEXqdyy4KwuAehny/ScoRggnlLfF1FhMaNS/t052U/6ajvL LXEz+FFSmDQcxiK/FrlKXRoXDThCw16NmiELAzHxPUKhlqqCdUgrZtQfuK8mn+Z8xcGBcuvZ7x4U 1ZIWC141jonx6G7v/NOu2V12Y0DEyVnwPvEozOSEeoRsXO37uAsbYhZ2JP60727waKiNXDTt9Ik4 63b30NiU6SO4lwN3yJbai0/I/sZ2pumZT9O/rf32VAcjOzQ2eF8UJEoybMvGC3pl7DgEx+3iZbxO DQ+guAgnMYh+245OSnt/ZoIEZ4puwjmp4vBFa22yjgnC3P+w1suB9OlYc9Z/UtKWdTSKlN3FmnDF bAk4HzUc8BOvGwJZ/FLznonikqM3DlFh2V5o0p9HyvuTGZQlnAqxX7n9gaKBQNgsmVbOWN/Tvmuu tchs3v5RFqJxkjJd6xQxrFya+f5XAEFujzD9HyxuRQZYUH3lDHOhMybp2skIsOt+w/ShuJgSW3l9 us4zYhajp90+bdH+81qWOjGRKxSiLH1SPgPvexKd7jYYW7kJjF/61kHi+3ujEnWRkY0w2gD15NVd ssywbklmmjZSLR7yaIneH86FJ/lrahq6NulVAVT1wZAV7hUI4c8aXamuUXMX48UlVUUHPKGJzm7w RZ2wYROuFuvOJwqy8BTlz30Q6tZ58I4q6mDmNfucGcOaPhCWDmGCJS+Chd4AsDUKAwe39ottyCmu QGQjXZE5dVFLUjAT/wYq3gImfd8RKCwBDVn2Cufdx6OWsOgwcK6eTlOGnjmbrH8eLBwptChp0CCv p9z3+1kT6JSXj6mIGOzV3but/q6hQ/k8/ZTvnrdv9CaNgwGdNDqqCKJ737gwxTWlqrImSY8vrzCV AC6QcvKdu/zbQW/yTVQDGnTX/ySyuDh0MwJscFE3thT+K9D3sVAQ1hQ8hxQ8cYzLUXNykX0wSFDQ 6J+AEOmdCywQFUWQutcBGPaa6UFVPhViwAE3uz7ebYrpm7v1tqGL7yUYfZ66/MHFxb5i+KiIQcif UF3+0MqSN6NKw6uZUByWwFbrtCI9WcBnv9lyTPGDf0b3SBdU2UwE14qY9n+Mljnm0k7isanFrqT0 hi2rXUaa9C+6GbvAUWxkDSS7C2IWpZ3/sW3yKGpjdHmevnIwmFT1BaYUfD2YiOQt0a11U5G1TRb0 /4o93lo2RKnans+GZEduRX2h3q4BF8UlB38JWSbNrrTUBIZC6FcvdNeputR/bMzsF4adxD2Jaz2i cyz55HW7hqX7RVWpzWu62RXp3GrtZegGGBpXhkmZJI38dWa6FZGkoJjEvsAVGA0UYS1RZleQ3aA9 4j6odaubYlnKasBn6ccnfkVxqBiX/0uSCQUE/BhjNmjbTJj0V2Abdy/uvarpz31VrR/rZSpZYDpg /jp99IX6Hy1AguEauvrp6Pdx4XcSymXEeuXx3y7NpRHX8p+lPRViIzpmim2E9qafLoqDDRnSIKDL YpcSHzbYwcJOmKnMarD25HuXxTZ6V/FoaJssEjIcSTuU2xHFFxnIE0V6RqtKUTYL3ly3kHy1fwrZ vezlThhhjevNBJHl2u6DH4ph/ed7hM2Os5Yqz4NGZT+wW39NEv/ywJcgIkG98lARE4yyKr+WiVZs yGzq9QllrTHitzvWsr6ax+ThNBVeGM8vAIQkFmKl1wFnKE8y9jgoSkLjEe3Bo3LCRpV5JDX8MLWW cqimdNMuxryHOiqqvtHiXFwJFmw9j0ViE9Zz55W6gUkSWBaMmxe3+E4K7+jjLgXaHkP/Tvl0495g tyjU0qSFw2w+fE64beXcltopAU8orG4RZEGxrxLF9Ec9A3eKjqgsu6/E5T8O5hPu/CMpIuaitwb7 oQkDnGPo/9ST3Xo/nwmJhjVy+u1AhE7s//jBDX+ixaiv68PX8chLUjjFYhhZFwyBWc3FAy7UhC9h WkLh96Rj476CFVfWLEGt6Lqwb69wfMT4/G1wsJIB/Il/jUUkwjlxc6wWggyQ/LyqLXSf4pxkb34/ R+O9njODbXe8GDpjQzifLneXFKvO6oNHl6S1wH6Y8kNWEGFBouOwowF5S3tIudADfgiMgsVqVljY wuRcL8Ket+fkUk3fGzj27tzdSNO91KiKy0nJroXDJGsS1EHllT3at1EGtLlmQpgXaWh29a/k4HCC x7vzPoXN5ind8vF7jpwB3PVD7izer77beuCsBOjf3pIw6vEZzmw3H0ePATe9+cTIlzG0wAIMGynI kLjTRngxvOO9lQb6HKwj3HbATsbeckhltFWB5hcR/X/f7FWAUGeIZMM0b8QHG/v054S/GIPQHd/r 9xSeeHY8pabmu/aud6x/l4D6Cd+IAtjwTS2lFGjBay1wAnjt8dkm4VC5NADdlCyJ8sYeh1cHpAom LLQwOVQDnQML6Faqi5lLAhScfouOKwHlNgplvCJMqiEnxKJUjiW/HwEI1LYbTZRkegUeeEGEy/zY Jew0ZeiTndEomVxpg71lI01e9x93Q97HHk5pQ/GLw8XqYByOwnG5ihdgvCU/MsVxhlaoeZQ00GLX x98C0a+HsR5coo6KVyWW5Tx+t/xOJ+cuqZZfMJygGOFdQ9vIxmnqVjPpsPMIXLLVgb5FZwS9kqhM ObdeRgrha6oHipJGBEQJACoZboNKcSxfaL5loIRwnzF+w0m81JYbMPFsjiMMgV8H8drz1w90+Cce xv9Kczva2EarVLuUnT3D2Anaoa0CucqHh/INPTW9jUOsJvGb7+/bsLMGHr2DIytuvV9L6kNQmrp5 /naTIshGUblrlNoXIxjCd2Sk3VoX2C3Ji8zGxpJOdui1JVucFEFNecBjzqLBvuDOFyXFm5lPdc02 R6GDZIeQYHbnShDZrWcG6iYu0zka5/qbvK+xHbW2wkCyfidpkghylSVLiMRkMwwJmu6mKa8giUie tkowm29Br/wQ5O6P0s0u7OvodIgetn8Z0Y1jCXMyT5rdoQBX0WQH4y/XGG6ETCIr08JM3K3HIlOp z1WxtoiG3BqbeJfJ3Iu4UPwo9t2Wer56WeXtEOgXy7kazJ5cygaJhYZjTZvQVjxZIW9PaZTSjMBN w0UCreYkkja3FaruLLBGX1cT3cYX7ASXbGFngMtEowQRjmeg+ckxeXVR9CzPBKKZF7qU4fYV/USf dvy3TBuaZnVc/sufhIXROWlmwHCEe2SsBAUp6zhSDMG0ftuPO5dC2vPTymbEHv++pavAAIC4l0Qu BYj0NLiH7Ta/q0BNLQky3ly0UGwd2g2Ipoe1b2ZTT1zc6VBeVzsnKVHbTmWeEqx5no0bsDRnTrRw Pfsc/sk6M5c/uOv4vCe+S5U97kE4QEn6uZVhR8oTFFkIXqAsLHRIPJ2tb768zQGZdfHbxSFfQrdk BqjMkGDHFqbO7kCIDvpuEMw2hOhU5tER47DCY/DNoJ3LUFUxE8h9W53eBDWjQpeTAJg9NcnVsuOV Xtj/5U+MkGw05keZYGi2JifpSQMEw8adK5CpY2RDMKBFvUsZLsTLwfyyS/UNtqS08NeWKWl0myBi OZDY99VFz64oU5Dy/jWC8ASPqG1p8+hNVs6Me2I3Se/thlcYlhIFjKJmPOQMuTOpmkd1u9yqzuus 8sNix06jbO5ZbUsrSRrhbIIKqt/dcuqY+NGOiBGuM9zEOVJr3fpDcQj1XHCw3CGhceXLkeu8u2Cc CPlvU2L1uWScTh/3PGtn4orweDwkU64aVWgwIJpq5t9+BfCLBEafDO0rUb/03TMqW/Hol8ZpHbdp yJo+ppAcmXzl6dyQ8zSzycc2kymYvvmpXQzQfwn/wdCHqrdKiXcCUFlQMkXqTxsMO9nACQHJ2f1j /T+EtMSk5f9ZKs/OTE0+qQ/I6Ki11vCqqUmAgvy1nl9W0pxr8Q8XBs6P7FR/eqxsnMUl/F75I12P /fwm9yHvvWSWu0FDMTELjblFE2LB/xH2FepuqERXWIGX1ttuzkXZbkYiyh5dBomnB5vCrH7jBjd/ W0dXk1ffsPEaYkPOSMTaOlRp3Dswh5mOgj/c2Qsywr7tP4QZ5MsJtCzos0ngQRp/q/YGk8dFNWr5 2AKTecEmLj+dnmBDMmro7QegiDeKc/vc8pcgfRyaLi1NSvzjCOk7FCHMUuTNgjqNTV4k/BofSR+r IVXlnGjSnMEDGoioTTeeOgbUIaqja1Ssurq1wIjcf7EmAsboMzGtyVRknhp2wgyvYJgsRNIwzGAR Lik4FZjJp+iZKe+SFyphvPnMPjALT6QudMdLr11kB04Vg8z/YnHQspjd1+WUmTyIZPiC6Wn67Zif Thqwjp5W93+Qa5LAmmdCAiriyWFTebWRv7KDS+y265QUSbgzyQZv1a/vmd7vcdFhsrZ61MamUlX5 DK6GHEPOLSXAmQzyIbDONqVQRTBRwo3fNwBOKFGfLOtbf87rPXuirp9/B6q/IC5dwuD1kl0dt7UG uFLSnX+M2t6q3y9ACQLlz6YR0p6QB3xUnfkocfn04Rqv3v9+3Yaa0fdiyRsp9PYYtFL/cTb2gFPY n92hoiujnnqEXqs121s99v08BPige+9yMM5zNchFTR61+1+9UJ7A5H/UQ8C8IzcwEEl2wRr84BGp jbK6fDANgVWLIKbbS3Fekjpb02+PcNfdT5wgbv6CTru0PLvZDo0AFcdULA+3+pht+qUQrNL7MICN 9el4u6mkFha3VUh2bKWTmyqa63ln10uvDoKUoPKzITS9+1iHhWktL/hD0nc577Dd/OuV/8t1Z7Tt grIv8OWyOBxNJPI/lDyklf0mikhEXA/2E7IxLViCZCucps+ARy86U6GpIcJVlRCtUwn1ECP1o8C7 IhsTWIBBjDc2rsIOAGxMehGUVGloSUqnC9PceA0cr7o2YlVfNOkNZE9stSg72aMCTwMRM9fdVibU gj8xxIN8q2s9cqTwwjFj74fdQP1VZzWuSDnNOIYoAcS6Bep4FI9g5JlHsjtaIOLR56EFWs9Kp/g0 I8vKnS7nRl88UA8aNokqYpHoPFK5qUL4Gs7bqs+9x6XiYtqpJk38JnYOlJSutNHKICnFnjnY8vxn 44rcm9sZ255yg51Atl7Q6zuir7QZV6NThS/KND30UKKkI22zUigxVEQooN64CABJvpMd58fXZRGB IxzrDgs1Kx+ec0nkvbD/Fhe4ivmm1mQAThZLnhZ0o9pu+dKXyEJck4K07YxAnYMUaLhD6pH7gjtV d8OrBH7pS3fgcVNXNlrmO8sxsmIhauXB2PglBbUjcq/BWOQjT/W1rTujaAtSzxS1L0pbBMw//xaD 46No89Di0t7RpqujzsFsMOlyDSo2fzygIghF+HOs5hqFYrowmCj4YuXXsQXZSp898DkDrJ1osL/4 q9Rc5C9ajnqjivF27V4qwW0q0wWMvFsA2UjjByTCzXQTOPR4QjR1z6TZNJ+x/wPFLuUsoS02LtOj QMvXLWXKHg0lXZEy3ezBdX82Li5pZ7zLW68fkGUp0030rk/P0up7tr3vATovnLS0OMxEnW7mTNEP GQLb6lnz4LNnr32HMx6kniPRD4tlvqG2rUpvUhUdZrvH2vFdoKzk5AHSgI9Os+SurBvJBAoSCEe5 WLh+V0diNSVqHXVHlbFnWKpcd9JWOWkSXh72zB35XlzVQW2kw+2zjtd3t/5GYgUQgdGbm997lq9q qixDq/JKqmGZrH2+VxR/TXvenuV6P1iHNOfa089V765n8jGqVJ9+6AoDDTYGVietKIAhmeu5mA3Z 291I8IlCAlaevgecXJONtB4ULaZgHaIQeuEGtoEVR6N5/E94xLs215DIxVTIwOtoVjOOFAWnUOFB I4LZw/CNpfAKXHVm8/UPykbCh9umY+M2Ult6ftKhHBlqG/4RQml6pGX3stCB/AFJpf35wQfF8yKM D4WLc/NSaWF9YfgF3p3nnJ+6yOm9DuSRO78C6Itahn2rKa79NkRIci23NYb82yBhSeV0Ap22Hq4L XaMQ5Qc6LpL5R7/D7uXxJb69tjnY2mdoZzV5TcYGtVDZXqtIwh+2yVwbxlL3aAoWkTH/V946FPeE 0l9xR10c9wT1N/ekctlVNnAGYbmHLC6yMThwLob4mH/m9YG1TaArl4ov/gdg4YPkrg9UdlV28Zvk v58njvfVNw1VBzWuPRJ7b73b9XBGuYaQi+R2iLAJlWiSPjJ7irUhLhz+syYFA6FLVjA0TnlB66DV wV02shRAi8hkJjdhJQmtOtlPceKuFYNH6O4S6Da+mAIZgf9SIuJ2mzZTC6M1kfRN2PJzQcZxvL5z IR5yaDnII5NFyE/rwABYVSdFq+alsbXWz8SPwz2RoVSrEWSG6wL29BiwekVSKwye8e6sMZAmgJHx fr1ojKUdOVV/pV4scHB1kNL/uZremsNyU6WwjFHi7+2NpP8DoPqO1cT9GGQBk6uQDg2jr42vteUt 6qbuYWJJysg+WezISlLFcG0DvdKLerHwQNGTAiXTjrKcwhzzRMEHIKtvU+60VGZhW9aqyltdHHi1 KEiw6Oh1Dq6FLWnLwQwmx8g7eciMPyOffoU5eMki4so9cGGIQlgXSWPBJLaMjhXwwDDNDuSWlZg8 F4p+pIsKPxrK8dK2SumzCAFwZvf80vy0uyvPTn1cr3K1nbr5t2VEoNq8fXpyqvn6xEcPoOvsdlv/ ZAbE+2mr5kdJHaM5GUnY5beFceczlqOINRbdwCeMxJVVqRMiKYqQYOzhJPsZKdIP+4zNLrjXhKpK p0Xg982e2dFnypdMA3Zgqc71tB9zzuxeLEjdAWCBgPDuf/hRhBt+FXh73ZEnGIZeyzyb6dOhmCuG W+B7H/RkoXXW7jsx5ttmTGva7i2pqv3zF6FwXK8cp8E1qwLk/bZTqG2YeN58nC3J03OXGt3sxD63 W2bI5yZRlLRFXUW6zRHRRL+FMCliGIOzqPd5177N6ZUu0SOtWeKiikXv9o+eNXQKwHjZKkFWrz2F ufmcRyXnXy9ULhfUSiwZIVs98YwQbo7eUwdGI2QKHq1k8C+x0Ne90JDIHVBFEpFCmCqQwxPnBYBD OGtMpOALJ111nI2IFtFFS1LlGNypCMYv5P503wXrh5WuvlB4NZsP5bUrGvzjWAER7lf9XduXPf9L RXyix/K/bMVzfqi12z3KEYi5V/3WxgyIbBUIKw4mhKsv7EiA5NYwa6ErVTjgRiYWg7241fNwAg5V kZg3LMOc+75vfedDhRKSfVNWvYjlt9cghvYk2i6qzmOlFBrZKxJvSaZkiRTDi0QAVol4eJjQ3wWN psi0NqVPV4VOVSyS8G/jZdRcmlaIGafeHXKrz+zD+GJtAAlKZAtj0X/bPA+kFDi0P51JElW0dm7R DNgDo0Wlll83am5CsW2JO2kfpTxAN9lNayQHAcZVe9Tn9tGDvmtCqytlBUNvovry+svaDP5YrDhQ gT8nOhYQ04k2IDQv+WLJxC0qWgUlV9yts41nzOfFJ0CsUSTqiW8hg9gkjfDYzSx8l6tuLqiuiSlf 7t/McH/U+v/TUVdNzMFO9i7/CFZr4naRJr/q9muBNHkR8KszQd0FmlPFEB1VXxeQIq/JvsN4GeuB EQ9mFmWzQHiiA0zW2nGMbrf+U61EBZ2PRz1nmqWOdpt4whSfdmRn4JcATGiDNvfxpJHTtzMDH788 cLi1XdjPdzUdC4rChgtOOeWpLejYjWxGKhdDcB6UtfwYGkqapQfeDzLpUStQgGov9UR2MxfsUGVL yPw/kGns2ypyRo8T9UheOOqNGIoyijt+bglUk4nJTqmR2MlNUCYMyIMbUqGuvBX2BeicyBWVtvPT nQDnGbOhbmCq+lTVja91sA12Mpx0vmcCXZgw+JsjkdZfTSdvKSshH+UQ1huO+9ou5WfkxSqvvIOT s+HRmoU3aIfTNHOjUHEvOKjbkjjIcW5vSVwg/BAiV0w+feFNknBYY0CoIbrqkq4neloPGbDxPTcc eYPQdTngsmMARrITcVwQWPAIoTbnmtHiBo0hZzX34WYuzRzVbxx/59NxMvhuLNTWX9JSYn41Wmug 1Uxsm60HLzT9ablsdfohkBxR0CHo75Jul4jS7Z3M62eLLlsfDdgpH03HtFZDa7f8XYrY+MWHuA2F 1ESQUt/y7FvFxNYV26osSDb2Qh93aIoiJ+87MOmc9uH0rEPhAeT2bV7lpN2A9MSob1TkTdc4EjHu LOlPrqdf2HsQphXaQBzPDrCTeKR19eL3mW2oHI6/dFtzILKUPTp+VGzMPDwacV1Y7Dj0QDW06RTk sK9HCQ8FZRdJyuJzpkgXcyuE6gRTW4zOO1MHnGbV6m4faHv+3P89EmHKYIBsrANl9Mktme3hP6vT pKlDjSBfOWlJqA8+NQR53LqJ9WnYNfb90Le4q1M3EsXDznqvkWuXcOGI+rc+mb5Ya30JveKMnj+P z9S9UKtq0Ce8C1v1ZbmVSVn8VWiAO5dqCRvIsLc6RUgIWhXx8eY0F6Vt9188THwZQNWUFw0AWWr8 okiBX0Wxduf2NKeo4vvhPJ9ItKxqhvaRHHGoAFazhlaTjurPLoOjeUtZQBTRYrIBOU9d/NSK3Lxz dyAeFpRQcZGHeI4NpigCKYXUDwGQbP9rjMCX+pgq6sVHZtO6UugbY/X0PmypPoaRmB3f3xj5moWr 90HhzBCESZ3nm50unmO2s9yoXfkbctCLeLms83G1K4UMeFY8zx9kELSs1RFM2Cd3cP+Xaj+sry9d a2jB5tkqx7479235leCiGPL+zZDuNmhKkJT9kfO6RtABwcWGXysmWaPNnhV+/wA95epCqPQDwS/P EgBf7Eb/14xVxlPfCYJA8m3eIlma7/cD2QuXYMRGixKIRI9nDVh7uWNgOTlzHEua9jOA5D3+tcjd Gq9UINu0Lros+gDpqKmQSIQ5PmGLptL1LEVJk7Q3JXr4rs94zCkj4lAcfnGWipXN+m5B30J3Thkn mrNk0CLXrgAQRIX3vK7XrdlXNqEYmrKlFyHXF7uM8Xor0ynC7c5bhYb1t8AFJLO0QKTBLRmv4+aQ 4/sXnY1QdHcM0Ztb2rJc5PuXMlVfpXIx5K6HSfKqXJWbtnjCCDr8k6bg6GcuLpClFhzwkcLz17sq occO0KOw0ilNzcfJQcVH0Li9IY6HACE+gaWl/Ul5VBBfkZg2K2YtSeyNxgxY7w8v90eNE/Vqlbha HxOsXOqG+dTXxyBVjapTuk7Igo76Tfowq3fTL1sjcbRow/ygkcvQhqKwjYnOKmom54+4p5BVo32b 6YZwnXe8HYF+KQou26RIv/kAxgWmBIyaC2z9AVe3u2nndHVrE894VviLSYP8zxaJiMyuDlV6OlKH DSERkukYjX4nh98YyQWFkCXbfUZiy1E+buEXgDiPLa1uZsaUHIRyuhmFqUSbi3m0xHBhbnDKZPCB XJCR0/G4TDcPUpb3Of8HTWTwZqttWzusI4BLavEOJCZmp3ulKowdE7D42EJ1kJnqexUognqmN7qj DERdg3jH5WZN9dQQs8ubdOMYEV4cKC6VnSP/HjTGZPkmoEnaegaRBVBRfIEA9b+/QxuKPUG1S+IW pa2AHXzRuglptQHn8gvmqyA0WG4NKmVyBiHexCNMPBR7+oQlnTZG80LewE0SHBzVWdIoCao+XmtL PaHeMUXsVvBi83ufGeG4mgM07yB/KRYt90rbjZCMCIzZObiGY9UtFeD0MoSjEbDUTmcqKv9AG5VT CJjA/zMpCVfRVgQZaNu/2M5s4c90wCxpEWIL6siohaKP+Sk9jFjLjAKb4ofcXkPJwsc71hbOQQBu vHnxmHfVgovYoSnPfAgHy6n40D66opQOZW8f9xPXIlvsQTEQXWbsBDQJJ0t1ogl0xFORDd3+MP4p GLu2+e2HeUjqJePAqK3YzjAwx6ebby/KWKD8nopNZPEYhbEH4GhJmmPO9lkzSOvYe97gSkvgGsSg GmnmRBMlJSPFtGjlxjnZ7mTQ2ovwnaaFdQfCy1NB2eddSw/00sjGL5sSXDKjL1HyR3OfK8g6BEMF eJHiXRcv2z1i9E0ogmI1vG4gX7rrYzsfpBE7s6TkctI7nzdA9gQpaRehvj7dGv6QQGiKhayYZFmq /VYxbiTJGbWg0vLOoEaBEo4BVUMx8IUqK8gw5T2+U+FeM7LK1CPMBMANP5kUHzfDLmZ4zMW1wMyH q7dxoH+Z5U4hckiLHTkquSYMidhKkxdu3rIAA7YxrJbcUqK74Dt2tyn/Kpl3xxgP0ATdGHZX6lOF C742/eD1q83dHoqfGZ1ctfADVwzB++0TDPy+wUhR4fOi1JjRF+jnkA07jWMRvWRpUQiaRAuEbSzN b19FuNLQ/IGs79HC1AB5WCvC938aOHkXn3E6czZNGgnavUxHc8uBteoXBDYm/i8sf8dWoKQRz2Yg mN88h8RJZ4/unlNCrDI6whn4y+wJOGjW6QmbT58iliJ9umh7rrVGl3rLkds/AKELRzBFpT2BfWg5 tZV2h41dLvXIL0xo6Lnbsd5oBJrbpYL8/ya0i9FAJp2LaJyG1oQzTUzL87Jw2TjoFDGKKaTC9l2U hep1JGHQF8ANYMkBaZVnNLEllr4FjXkt7zWwKtX2wwGaXf8BxrKu0sZboiYMaa3Xm6rGxxnS9GsY MA4jniWJToQ4GnNu/gtaSBAS9saE6pAPEF99QckVah6hKQ/8FtdUcs222FfOysySbWt4WV5Zzp4Z aCif9GFLVWN/nJfytk2DpFba4hPO1SnbCkW92vPgWnPHh9dZbJRScu0VWRJEUNqSoolr8weD77MK 2Kt+k261d6SlMuG0ylxNOS9AsZLIpnfvOuie5/SFGZnlXZnRDDCFuRR8wODZ6WufmjVBfEqdFavn vXDEgJ2y3cESAqJBaRWok25kylOcEaU/c+1y59BJv6OlxQAnzxYp12xb7tjGYz5kJLixrxGDdHyV ArG8u+xkNukYEkqu6kRbG8h6v+hCXhWIendiJQ0bcrL4L4Jyl6BthplZJVGvwDUD4jqhAW3ggiz4 uh/bRGpr3w2usgr6yaksd2MpC+dyuEHFTugj6Bf7m8Ta05vE4XbcnFez2iNoteBOQaL9Lm2T8p49 g3jdwotfHR7uWYLqSMql7tv1IuZFxwLSBS7JCL+7XSHIWFf1XZCzKEOxFSUKfNtmTejK4Vi2/2zU dbI1lhvOkDhBHyy+viNpXCDBRSJfAXgWyAgP5ay+oxdqyqDHt6W8j6f6gCfa6XmV0UqDcyIgXt6B 50NZqcfnUbv/lf+iYpI6Ud9uYkpQL86mJMT2Z6hwBFzFTkkMHdB0RM43wijyJgJMO375numve9Qz IlcO5NoqfzheG9FeFHIn4rPxqJR3F0imoWmY5zMM4E+lmCCkpGH1IX5EqOy2lZUiAgWuvM+YQJ/3 /qpxchd0B9FC4vO/kq0/9YK2+ET345pPMNk9ZJJiO9k80ehlBhpyII1t/WASb98I1MLULR/QNSUp Vxrmat7UK2R1RBk/FvmJY6kOXRe0S/6uXHDC0tkywBxPb2k3nA5TIbdzxWT5FnRg1pC7HvMgx2mm uLeCXnj8ayWC3WDvGG2bk/NvPVU8LDVEm7GDY68V3C0xu9hC60g6u2d9v+qJprEw43EaCSAea9Hc OkJQGeRtmsYjcAJIYZ8GF0cor3QxQbWdcmFmyTx9XD1McaInKSeTEVUD646nHV8+Px3bK4ZBurUQ 5hSmBDM83rjPd3boecVek3GCfm2M2E/GbdPT6Sx5/rRGYHGu4S7uAiT4qwFLt1hTnNjH37VcSmWH WjgBgzjrowOUF1/47shgEHRYxqwCD5ngWtDt2Q48//owVfRttPUi5nsBQP7o25m15Z+8v/2HKukD 60809HuywXv88FA37PmYypNTuebBtpRhj8CQHt3d0A9bvUo+PQiq5PleUQLfXWQUR6teTL+jaSl4 22s6faYFzGiehueJO/MSkM5IwNF85SOR/KRRu09B2GGrDsj8LZm5WYEcz2zJZwmg5BCcIvt3axou BLyfzcd0x3IuIA4DUVjnInKh1/wBrLwCqqQpLFaPlv4leV8r7frF8ydgqONgv/hHHJG491FFnoHa Ib9wVsApTlBpYVqOh/AXoKHEr8WW8h5zwKqL84DvLjzvyjK5KgMJQzD4cyo/pHM0wqtUfRw0bQUq 1m7OIUGK1FpiQPa6JHpWGbWSzlHlAl95g492xr02vABVIaOkZ+RUu8TaN/LXhZGfEH/ix/a5/Uld Gs0cBmlYIrb/UVrbo2HOWTee3my4mNHCrMPvh4Vp6kYx7mq4TDupwDEzUxJge70GOYidcSgiIj0R W6wcsiAYiADjGS/Io4ulhcN7kGCKK0HNsdc9tTHXZ/MNJZ6J8E3/9KlUMNh9sDLjVTE9+niLOjJ8 6X9q+ozTTXJ1fFdKEfpn8T2ii8Y1ah/Z0sUlAMt2cnXOIJYuo/ANpaCpyrJSUKW65/aRRNqyJyTv Fzw4ojwFkiZuRYzeV9FT7kpeRZxyYJAAuOOdjpeo329G09D9eisCiC113UQuVH2Kd8LukQyBxnix xk3ZMzW/UJ3EQFmr+C4L7rsxtfSn79WhBuKE6LbigndzLT1OFH/3vHjQk1n7pttdKfN4GH+f0zOz 1AyVZGqkwfdfdsmgOwK/egzqyQBCOU2HpDY4lF5RUi5HFuHkzktSLn8CkJ1j6EMVNsEBF3m99sz1 vqRmch2nLCQk+GTem6s5J37FBpejZIA6KucL30oszBzU2k3hx5gwYUL4GlFy2aa0/NsOrv1jockz lId7be2IxMjwsQzbXwi8bmjYjOp0WIwduYElbm6Z9Bc4xJX2nUKPOYcCHqx+P5aXNcqfd+ohS5qt DAL2WWK9gJwIa1w9p62UuV4AnHhEVCxLiqA6PhURkClrFvQIKRn7gm/iNQ8ay+qYWK9QLXmooSfX 8VyiJLOgaSWKZDrCGPoJeX9AjvqjjCMM5y2xLS9vdquzlWa/Wr2+qgJAwsz8lAsuvdwcJ+cdWES0 ODXozAn4P8vZYjJ8NKaKtddGKE2wRKHr6QLSwRPe6Bvmfu14Xfl99NiZgE0dC59jNE6ViPXrwuSI lVgyIZXD+pjTta9nU2sS93cOYjI8nBh7tJ6kDCCR5KXq2UtSQh/S2+agj1w6qMUjteRaRdUR+8+6 UaXAWZd2u1vaiSWuJBnN/SpLTuD0wcbtD0t0WVBAu3YWgGnfhmMkueEs/OlQXlJIn8ju3oNdA3D8 f5N7S33xgivd3JFy6FiCba6Oi/a9JBQLWVrCuc1ZDAivxOV7pTiLG8CW3YS6K4D3DZl5Jx8zvtEN WQ8O0MLM69GY+gkKOvUVIsC1CtEQpF842EgEAVOhbN/zSIof/W6CwLZCvUU+APdaMUsbAnoF3WCk JauRUj7M5I5dnz/mbVNKX+4E7+JL66LlqsXQ0tiwZ6iC5CiWvLoslCh2JDXH96ahzuPmB8/X2EFr 8smrZoOgFjEhHCq5eUsBX72gs0+kzFAcahRY3obJ6SaSN+a1tKFLIsdLsd+Dl/DPhSi82xImsP0r cDntOeFtLUDT8Z5dqyQkRud77xI6lO/VvOAOSAzfjgYJ0EUKq6Hq1X2K4CRBm2HDEv7Zw2QsWatt pAZaLfQJUC1TE+T2i9XQ6mc3b+Q1BnOaqZoauUAYyzffG+HGHeCglU3J/RSaTZofBk/2gjs7iXTZ 7ZnTQJ7jkEIQkkeKDGO464Ev9APztv6nfz9c0ZY5j64e9Q5sm6lAKlDO4e0a9z7UbMGVKGOUnT8e 0LYE15QmOuGze/60NUveBCRYF/7xRvwTNPpRFT76wFZ1ZJkfDaXje6cpTixGqpizcll94YlOx9cb Noi86TFebLV7VZ9es47T8R8nalM5DhdEqj04pIeCHjTWj69EtTYT+OKGJmdQorgAVFNqadbBZ3Lm Ygl9ZAYs41vpCqgmYLG3+FbgAuFK8Ek25gYWePY1uIZ06MM7/ilSLq2CQt24qC9xa5uAQATSTYeE dk3+nM6WKGUKxq1UzLmPOeus9EQyaV8T4XuPOnWk9M6VcxIaPN14ooMQ/Z7G/l3+cTA1/7gKvw5G dhAGOVk9IvbQBEL5+wliS7CN8u2bWCRWtCMc+6hydy8io5bCcrqn07rcwSMrRqfy/eLQnYBNAmeP 7ycVoOIaubiHXe5spZANJLAQmrPb34wu2AHNGPCdotmI3VCd5llwqWqeI96bKUWIQC9qMwbRa/n/ SfJhe4cT2v592TMxClYOqWlPptM/lekUZN2xR4NtTK2b0PobEpv2IUiJam2TaE9GzVmUV/XGIGkv Q1HFKKnv+1NoRsNTSA3rEnwaeObDhx7AazhiqrRnHCat1Wtz6DKZa+jBM3M9q0O4zHHBlMKsL11i u6Bt6b7uTl2cEfK/qSK700A571Y7grqMPTnzy8uN0+X5BrRQ8xjvbVyFKY6ih0ylrw9ZxVwn7xbU 7D/1hvhuIZGE+6FPzKMwxVLC+19eRTqu9KBRXU26BznNxlHUN1rw3D5pgGLVeNCvkGCzV43C0Yys 7dvbBJhDM6T+U45oMJO7vmk9XGIMsc3vUJl7TclrPn+oiGgRY4nFjn9rHR+daSi4hK+ESTO1HA0b P4mcg8+VRt6e5e0PU9dQCswe9CQhMGlr4ypaud9yHOM+kSN+ZFDtfp6/XKO8xXd4TyHZXH1wfcwA jpOin3iTBCx4dhOHSxC67byh3LIWwvZfcr4+GFTWnR/TCyikC0dcuMkKX820trZbTEKvVs9qExT/ 3BxTVNYiYIGZaoPFawU/TWk+Vfe0i9oU/w6IXU50VbWQjwlLZvgOaq4JC6j8CazZ+lHIAm6Mf7FJ PaV65nZ34whBFKRcMrmDVH8Wkh+1C2GmptJDYIfZhQxvKYBmwMFFydcYXACDP7oKWS9NleYc1Zd3 pIZaRcdc3Y3edXnWrQCmeqqUe+ORZkClVYtkl4Ux+NxPxFLmc54MwD1DykpcsAxp56clw66IStlZ wjeSjn471RbdeuH/Q2edJsMHfcxIU42pqLUybWxfwzfzI8ApylRAXuswr9hmmVhPhykIPi9K9ywu EyReg9wKmA80d3IGxGOQjExC/unL01/MtkYuZ0fo4uOKYdd/IR8pe4KtSi7MkjA2KEYcfkpJDbFq 8C/xkReq75o/XeCHcJ1N4oIDAqvigJOFL6rqych/BHUtasZ25oPg+3boFBW2KSyVasI2g35M0TrA WRlZBhBsqJbCXcYg+PmhQgA288G5FJ0HesvIJQkqZlp9f3ifi0L5EhB7ucQzhTDngI7s/s3olTrl YTSIyZfJN0bgoVa+cJauAe7w1iny3jFdZ5X0JjfC2WsUa/1TUVPxNJgvEmjBwvlcPaaJEGgl//eG 0gcewlVIr1YTkOT88Pt6EdV/x6BER6ivzQM3y+eqE+UkCsJdhTAQ+gWP2uQRztYwfVwUVdw6Lowr lwy/gEQm+dvkinVDXSJb8J6CQ1RYMnxfBP+PlTQy7m0REsak417M0HA96V9ZK5njl22QWJ+uczdo K6+gFDUjsDgIaxp5qbFEPe2WxdOsUCCi3o65/B2ZCpaeTqueUoTDLVOdZb5r5qgswjOiMw0Gbq2V 75CMAww1k5yTsjncPdue1fxiFWDGKUXK5GpnJKwtihNuhtL8LZvkbR3gBCmRBSb1C2jGHRkKb/Xt A5FbNPOpyYZma03BFAcfaEOu+OoBKVyO58ftNednQEq9JMAoRSBhDTM66gMb4EIS+yZM+qgspkZH Ak/ddbqaRXf7I8g+Y0r9T8iO9gzsGfc5UD8iNDY7Bv+1tk4HBGL9FLygJcH75RsZQ0lea4N2+zhM W7b8yqNyhcctzHrcAWnpj5nFqfZiiPHW0iFyGGh+EXO7lQP4UXdunhWX/5DPJIIuyrONeQSfeunV fW2LecBPpOqbps1MMjV+2FRxdhZ7Sa1tJxIo75Gyalui64zWJKW6pcJM26zuB2a5X6IwfNCCMK4T zVo1QCX+XpgXXUf56vbZUdyRwqAkAScjVMofPZygHoo2Q5ORsjB/M5YYutLV2OxifWrphgQUQnln BGIA6q12dybVxzKgGJWan84aPUxy7cRvSLptY+R7mZO6er5PVTNxoCSSHulumPWaA74GeHMOHgnK 0aib2KQGdAZcr+1Vqy4Qar3t5RV5L9SKbZPCQrRj5JzpzYdkEFZueFD4zZoOgcMDqkw556Vug6xA zzcrO9iMYz7lmhBiBUyD2nFsIsjJWEWyaplPfLgucmBpfv0MfIiwcTlXN3ZkqcSsDZi3pl/Cp/Rn NElgz7XrrbA4a5HiyDTaLA81uTn2vsvhkrBa24hWEz+96arBgZoZ7iXERaJrMP/B/0gPpjcJBvO/ Epf+ZdAvS77j/HZ9z9oV2Xsy4qU+NW8nnVyeRLXOMIHyJbBkpWZ5AmrYL0xn07ASKnJfTpgHfy44 MQ593Fm39KoVJbHEybJzK1+4a+psuzVESgx5Wm3m5oiUVU7TXn8MpZiRYk0ESdmUFWAJ8s+kuSHP +W6z22qcAFvWl4rqg3uBlvLH4iseK7HVAENgOSsRMuktioaxZzQBUzcQKtCHBwBXJaCuApUnupEC HKIx9wntsIOg2v5C3FcD6V3vskQC2vY5jjlOz5rzHqS4BYGNwnuQA7v0qbcF3yUIDYNV6W6Dqr1+ PbN5H9+DylB+FPIjqxFFbChTv0QSS0JTfeyvLoJ3zzmsl3AmhX/NLQSg9FD+SmKFY5qlX2BedUNV eZPIbVVFrQ/PKgJ4scJqfMdATaKIphxyqKIHDWbOjhAECKlwDGBp6NWFh9ruYnxh47k4wMUhwTb/ FBqkaQaC0kvlmiOKOM4aWm7iSPHRr2a5UFXNejRkgi64DZIdXyIwZk9UAoh7bfuQjLWSrQYV3BPA 2G4lQfklUf5fH1yvRJInOdpyZ0VWCkj87g+ZuB0P4lK6f56hI356kMPG1/Tc9TTr2doJ26GrXR/O 6AVpS2aJdemEFgZP+LSJMREN6jiHkfk2fyUyXXafsaFvE9/KSQ0d8YRFrsQisnrUg9/YapNsyHlF EE34j5ChWgiq154dJX8pkNWwZC9WDdgE8kA1uceDR6yFy+kCeg4mkHjIegI9g5MnovZlDIYzU9YX Jb8WT3IzK3DufPu4D2hMlsDuEWnGwSyZ2k4sPhkCE5bpz1sCCGALOVwHNuj8vcQARs5ldL2f/22z SZOtc3Ti/I3aymiUBs5s9Tb8uncNjefSq3rhfPJH6rLSAvWbfTPTu+OIK/JnaHpXD+GfyQqSVtdy eBpO0udUXiymt8jYN022iO+RwY8FPgoaXqeNUCo6bTF5XC7y5qO9KkOaGESDGVkHz6ppStBn4QlN onXbHtQOC9/ruIpzxI2iG9GaS9qnrlca2UgntKQEQ63HzN/vRNqYDXOqSLBTXda10Tol8Q4bNxcJ naR3noaI+tV2Db5VRQAyBYkNBPVplGWZpaXoFfXvnjFP/qofzkIngFSIwfjwz8pSM+EMcLPltu91 5rXTebM91kU/eqDWh890/mGfHSTdfkSDFw3XEPUp58uFOklnQRmqkiffJPIzic1MKtDfZJnfcFrM McnoTZYogHpZgKxjKsF2XP3+SfFt7GobLQaBsWtI4QC0Xskoz+B5g84tCcsbH1URDnLxKCj7QpG3 TcPO3Y9Mw8Yo3i1AHwSTKDCuDequJO7D0/uBsnRunF/tZNyTE0VWqWPlXBPaSROPBp099UvIBu89 TFZ/fo372KG0Jj8iXEHItoXYS3L6k0doDa5FVQUGYzB5X6+n9AwXPeSYNxpj3yMVpqil/EQXaemT 8N6E8edt3pPHxD5JEUbLgGIsowLUtBD/0Ooe6OcRxPLjSeMd/OfgGLPjQG3QS6uyEjBgei+Gdzpx td5wj7ZMd6G4WAfAUrSQRDXIsMX9PWvw8fLx75CJMv5EgjzpA1QAwDqAH/W+WCXAS+Qf7ONEaCwE anKz0xektgZtYvpx+228eIpoV+9OxM32KVzWJ5ZJDBtbBfxgBPAguLyKAr5s8fzL5qu58rA0uSiH cYxwPhPg2OENKWkJMNhRj/vbM+0xHxziKu3RHMWRQ9e6t6Pqa9LcPU8QawdweQ5hQbr419jbTHSg I3Y8R5D7dKvBcXvoOwuiUpNKynTvFQOPU3RVZ7KOm63Rrx9qirZTWgGbtgnVfiLj06ZuqvOSgxfX V5fNuRAfsljyGqxSCTzm5BmV8sLkTaAao9Ron4Ga0s2d3atgqoFOKOL9a6/3v+qGJIzGf4qnJNYC gmKCAI5BAI9cAMvbtek0d++Gm72qJ7njTEViF/XRRtD75KGa4ubwrwIOuiWSvg3Z/LDqkPcz/Dso utRFEVJkiWazboIvE5o34hkY4wRxQY2FDcSQ1hcFNY9MSQIce7Ggu1qIunnNURktAQacwFNfignD zcG3oGszLp6NqeunW1fC/syqKKi1K4B50D+IYAL/fozG24RmKXrbRdUcVFulIaqTgj7LOuG/jr4M MUpYXg0sN7nV61J3tWmr3cdO3Hqs40YEZGqLRvAG5CqrJfZQpg25l4ZNtW8cvUSPjQDg+yX4AQug Lv9W/3qw/ogL9SEjlQqLmZoQL0GgrbAyXCMl4Pm0UcouU8DjWilXsPMnFBJSCrJNupmShe2XOP6M Bjo0VAArvxXXuJ8cHeElbv6c1e1noAFgXor9cbHZ3t+e9DnAUMaX3SfgjYRLf4hO6E8PLSXA9F9k XIEZFrobv2b9UXoi4PQUziB1NRKK9QV3tx9eo25j9o4t8Yjk4Jss74ShpRKJnRR7Yn4bsxoJhL1r 222bm9fNSiFCTpOUAbJw2iuL1u9Iimzz7zA2R9nkzltk13XLSRnGcFoSfcApuPfOreaOdCHfrg2K oo/j4T81cy46jSqaIiQvn/jVWW9Sot/JxGPr5wYNQYzBaAtf4WR1OKqewElYs9sKWY21ClTu3Od4 OCVbJ5GJdEFzZ24BwHWJBSR7R/HS11vdpGyZL6UfcACkUDKF1SpxEXCnsyOCXdRFe4Mwgh+bdyWY BrcsMGsMFeaPKFbN2EG2n6uiLWaZlOmYs/KPmHP17swGhqIEWZXMiQL3ePJ23vkllJSyc/upv1Ol 5XtJRTekHp/G70o2bD248pt2HPi7LAACfPKXuzulv1Vkf+b7P1t9D8k1V57ZSkkb6HcRPtwdAJ+U xb9i3tyH3SWeesuzn1WwjVCk39koS7V97PN4OTBZQz2W7oi4SlMKoAKWty4ca5YCNrWjE7GQ/Lp/ WwIFtWH5m1Ac99dC4XQgQ3DdOs1Rwkim8lAn3ErsyJCoPlQV7wcJbX7EH6lyx+oR0NYgzy1pKR5F qm1JQmbFarG4FVSroq6FMXrw0BbDmZ4VCYWPJs4cPXUxPSue1FVQmQjySyUtdNV64njY6NKV+mWm ke1smi0g2cTMfq6cFB9yT6IvZYIKpwfx5sYc6MYe5kYqarvdQ52jkCo2Q49HXuHNkTi8dZlAJjol sCXWYaV9xJ2lMJEvmh8yPZ01D0H0Ll8yf9p63XaZlBBhnZKDWwJSZ6sleokGDgVnbyxJZ04iMF+l lb2gyi4rjzRvZaRhYsCNEtaEGMet62FUHCTKnQ4mUXiZtlc6NglfdXTNyOfkUoIgEdwzy+t1Qj65 OXf25GS/uvTThpEBo3NUfJapMlrVGGKKLUNZ0g5zpLfUFyhtWt8wuMssfKsnraJqQbM9HoYXnJYQ LGYGiScFLC2WZpGWg/jyahedzcZ5D2d60U+8YD98sTMMDaTSP9JsvoCLVOZ4EVlFPSIQ8a1NBtaa J2hzs6wHyqa7IYz0gTWGhbtIOSMvh/zD2w3Vs4Js9JdIcAlDfwHTOor/NteQLis/TRqs4rz7aGxR xOIhnk7YWl72zHXBoXuZCrjEBb/YGNYugEKO/RxHfWElbALdZYKCMDU1TXxb0nMvAzS3KFh2ut1F SlWAHiEBrX46ZNmk8Tsc+3u0ri1HIWyddGC6CYSl+K0mnluyecq4NmvWs91Gxt0/ETN+6kQWQMoW SbZUX3h6J0SgBblBeVIgRg73xeFlO307MZhydeHMH8dxBg8YBehJTkxCWZHilwiPX9FVUA/+SntT vEfl1onCLFSaCZw83YyQA2k+RI+gEewcGmIeh2vZrD9OsMggYrpfhvmcpug79FBXVSKNkkRSBA2g x6WQCc1EIFQxroPCG9c2a9ccPPfVvXvL97keaRVFItjS9THmb4GdWYTNUYOz6Ebat/2SIq84gXKv ARdLJFkvD5T860VfXt/4lVciF5Chozfm2amQfNA6Ww8bCYUlV2DWfFjNYMD9hycMhTuzFm+SmopD KobxP2fQDVePi+yrhsKHgBeYg5mM+DhuYp7nmUa6ktQ0LA8ysX9g74LX4OcyZUTU5pZ2Clopl+nh eUmK3+fU/71N4tc4cVGx+I6V5Sn6EJAAAAAA5D/TzO8CHRAAAZqGAYDwEPYpjBGxxGf7AgAAAAAE WVo= --000000000000b13285061a1d5cb3--