From 11672715e24b92bdeda94b562035412ac9978b3f Mon Sep 17 00:00:00 2001 From: HF Date: Sat, 2 May 2020 00:11:42 +0200 Subject: [PATCH] add utils for downloading from canvas and for creating timelapses based on historical view --- .gitignore | 2 + utils/README.md | 16 +++ utils/areaDownload.py | 183 +++++++++++++++++++++++++++++++ utils/historyCopy.py | 109 ++++++++++++++++++ utils/historyDownload.py | 123 +++++++++++++++++++++ utils/pp-center-331-337-link.png | Bin 0 -> 26257 bytes utils/pp-center-331-337.png | Bin 0 -> 32803 bytes 7 files changed, 433 insertions(+) create mode 100755 utils/areaDownload.py create mode 100755 utils/historyCopy.py create mode 100755 utils/historyDownload.py create mode 100644 utils/pp-center-331-337-link.png create mode 100644 utils/pp-center-331-337.png diff --git a/.gitignore b/.gitignore index 79efd765..21526b65 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ build +timelapse +output.webm chunks players.json .digitalocean diff --git a/utils/README.md b/utils/README.md index 9b263c59..bfb05bbf 100644 --- a/utils/README.md +++ b/utils/README.md @@ -35,5 +35,21 @@ Converts a proxy list in specific txt format to a better readable list ## imageClean.py python3 script that takes an input image and cleares spare pixels and bot remains +## areaDownload.py +downloads an area of the canvas into a png file. +Usage: `areaDownload.py startX_startY endX_endY filename.png` +(note that you can copy the current coordinates in this format on the site by pressing R) + +## historyDownload.py +downloads the history from an canvas area between two dates. +Useage: `historyDownload.py startX_startY endX_endY start_date end_date +This is used for creating timelapses, see the cmd help to know how + +## historyCopy.py +same as historyDownload, just that its designed for running on the storage server by copying the chunks. Also instead of time you define the amount of days you want to make a timelapse of. + ## backupSync.sh shell script that can be launched with backup.js to sync to a storage server after every backup. It uses rsync which is much faster than ftp, sftp or any other methode + +## pp-center\*.png +center logo of pixelplanet diff --git a/utils/areaDownload.py b/utils/areaDownload.py new file mode 100755 index 00000000..6b167d54 --- /dev/null +++ b/utils/areaDownload.py @@ -0,0 +1,183 @@ +#!/usr/bin/python3 + +import PIL.Image +import sys, os, io +import asyncio +import aiohttp + +class Color(object): + def __init__(self, index, name, rgb): + self.name = name + self.rgb = rgb + self.index = index + +class EnumColorPixelplanet: + + ENUM = [ + #Color 0 and 1 are unset colors. + #Bot adds +2 to color number. So subtract 2 from the browser inspector to match. + Color(0, 'aryan white', (255, 255, 255, 255)), #HEX FFFFFF + Color(1, 'light gray', (228, 228, 228, 255)), #HEX E4E4E4 + Color(2, 'mid gray', (196, 196, 196, 255)), #HEX C4C4C4 + Color(3, 'dark gray', (136, 136, 136, 255)), #HEX 888888 + Color(4, 'darker gray', (78, 78, 78, 255)), #HEX 4E4E4E + Color(5, 'black', (0, 0, 0, 255)), #HEX 000000 + Color(6, 'light peach', (244, 179, 174, 255)), #HEX F4B3AE + Color(7, 'light pink', (255, 167, 209, 255)), #HEX FFA7D1 + Color(8, 'pink', (255, 84, 178, 255)), #HEX FF54B2 + Color(9, 'peach', (255, 101, 101, 255)), #HEX FF6565 + Color(10, 'windmill red', (229, 0, 0, 255)), #HEX E50000 + Color(11, 'blood red', (154, 0, 0, 255)), #HEX 9A0000 + Color(12, 'orange', (254, 164, 96, 255)), #HEX FEA460 + Color(13, 'light brown', (229, 149, 0, 255)), #HEX E59500 + Color(14, 'brazil skin', (160, 106, 66, 255)), #HEX A06A42 + Color(15, 'nig skin', (96, 64, 40, 255)), #HEX 604028 + Color(16, 'normal skin', (245, 223, 176, 255)), #HEX FEDFB0 + Color(17, 'yellow', (255, 248, 137, 255)), #HEX FFF889 + Color(18, 'dark yellow', (229, 217, 0, 255)), #HEX E5D900 + Color(19, 'light green', (148, 224, 68, 255)), #HEX 94E044 + Color(20, 'green', (2, 190, 1, 255)), #HEX 02BE01 + Color(21, 'dark green', (104, 131, 56, 255)), #HEX 688338 + Color(22, 'darker green', (0, 101, 19, 255)), #HEX 006513 + Color(23, 'sky blew', (202, 227, 255, 255)), #HEX CAE3FF + Color(24, 'lite blew', (0, 211, 221, 255)), #HEX 00D3DD + Color(25, 'dark blew', (0, 131, 199, 255)), #HEX 0083C7 + Color(26, 'blew', (0, 0, 234, 255)), #HEX 0000EA + Color(27, 'darker blew', (25, 25, 115, 255)), #HEX 191973 + Color(28, 'light violette', (207, 110, 228, 255)), #HEX CF6EE4 + Color(29, 'violette', (130, 0, 128, 255)) #HEX 820080 + ] + + @staticmethod + def index(i): + for color in EnumColorPixelplanet.ENUM: + if i == color.index: + return color + # White is default color + return EnumColorPixelplanet.ENUM[0] + +class Matrix: + def __init__(self): + self.start_x = None + self.start_y = None + self.width = None + self.height = None + self.matrix = {} + + def add_coords(self, x, y, w, h): + if self.start_x is None or self.start_x > x: + self.start_x = x + if self.start_y is None or self.start_y > y: + self.start_y = y + end_x_a = x + w + end_y_a = y + h + if self.width is None or self.height is None: + self.width = w + self.height = h + else: + end_x_b = self.start_x + self.width + end_y_b = self.start_y + self.height + self.width = max(end_x_b, end_x_a) - self.start_x + self.height = max(end_y_b, end_y_a) - self.start_y + + def create_image(self, filename = None): + img = PIL.Image.new('RGBA', (self.width, self.height), (255, 0, 0, 0)) + pxls = img.load() + for x in range(self.width): + for y in range(self.height): + try: + color = self.matrix[x + self.start_x][y + self.start_y].rgb + pxls[x, y] = color + except (IndexError, KeyError, AttributeError): + pass + if filename is not None: + if filename == 'b': + b = io.BytesIO() + img.save(b, "PNG") + b.seek(0) + return b + else: + img.save(filename) + else: + img.show() + img.close() + + def set_pixel(self, x, y, color): + if x >= self.start_x and x < (self.start_x + self.width) and y >= self.start_y and y < (self.start_y + self.height): + if x not in self.matrix: + self.matrix[x] = {} + self.matrix[x][y] = color + +async def fetch(session, ix, iy, target_matrix): + url = 'https://pixelplanet.fun/chunks/0/%s/%s.bmp' % (ix, iy) + attempts = 0 + while True: + try: + async with session.get(url) as resp: + data = await resp.read() + offset = int(-256 * 256 / 2) + off_x = ix * 256 + offset + off_y = iy * 256 + offset + if len(data) == 0: + clr = EnumColorPixelplanet.index(23) + for i in range(256*256): + tx = off_x + i % 256 + ty = off_y + i // 256 + target_matrix.set_pixel(tx, ty, clr) + else: + c = 0 + i = 0 + for b in data: + tx = off_x + i % 256 + ty = off_y + i // 256 + if b == 0: + c = 23 + elif b == 1: + c = 0 + else: + c = b - 2; + target_matrix.set_pixel(tx, ty, EnumColorPixelplanet.index(c)) + i += 1 + print("Loaded %s with %s pixels" % (url, i)) + break + except: + if attempts > 3: + raise + attempts += 1 + pass + +async def get_area(x, y, w, h): + target_matrix = Matrix() + target_matrix.add_coords(x, y, w, h) + offset = int(-256 * 256 / 2) + xc = (x - offset) // 256 + wc = (x + w - offset) // 256 + yc = (y - offset) // 256 + hc = (y + h - offset) // 256 + print("Load from %s / %s to %s / %s" % (xc, yc, wc + 1, hc + 1), "PixelGetter") + tasks = [] + async with aiohttp.ClientSession() as session: + for iy in range(yc, hc + 1): + for ix in range(xc, wc + 1): + tasks.append(fetch(session, ix, iy, target_matrix)) + await asyncio.gather(*tasks) + return target_matrix + + +if __name__ == "__main__": + if len(sys.argv) != 4: + print("Download an area of pixelplanet") + print("Usage: areaDownload.py startX_startY endX_endY filename.png") + print("(user R key on pixelplanet to copy coordinates)") + else: + start = sys.argv[1].split('_') + end = sys.argv[2].split('_') + filename = sys.argv[3] + x = int(start[0]) + y = int(start[1]) + w = int(end[0]) - x + h =int( end[1]) - y + loop = asyncio.get_event_loop() + matrix = loop.run_until_complete(get_area(x, y, w, h)) + matrix.create_image(filename) + print("Done!") diff --git a/utils/historyCopy.py b/utils/historyCopy.py new file mode 100755 index 00000000..4b17529c --- /dev/null +++ b/utils/historyCopy.py @@ -0,0 +1,109 @@ +#!/usr/bin/python3 + +import PIL.Image +import sys, io, os +import datetime +import json +import threading + +# minus half the canvas size +offset = int(-256 * 256 / 2) + +class GetDay(threading.Thread): + def __init__(self, x, y, w, h, iter_date, cnt): + threading.Thread.__init__(self) + self.x = x + self.y = y + self.w = w + self.h = h + self.iter_date = iter_date + self.cnt = cnt * 1000 + self.daemon = True + def run(self): + iter_date = self.iter_date + x = self.x + y = self.y + w = self.w + h = self.h + cnt = self.cnt + xc = (x - offset) // 256 + wc = (x + w - offset) // 256 + yc = (y - offset) // 256 + hc = (y + h - offset) // 256 + print('------------------------------------------------') + print('Getting frames for date %s' % (iter_date)) + image = PIL.Image.new('RGBA', (w, h)) + for iy in range(yc, hc + 1): + for ix in range(xc, wc + 1): + path = './canvas/%s/0/tiles/%s/%s.png' % (iter_date, ix, iy) + offx = ix * 256 + offset - x + offy = iy * 256 + offset - y + img = PIL.Image.open(path).convert('RGBA') + image.paste(img, (offx, offy), img) + img.close() + print('Got start of day') + cnt += 1 + image.save('./timelapse/t%06d.png' % (cnt)) + time_list = os.listdir('./canvas/%s/%s' % (iter_date, 0)) + for time in time_list: + if time == 'tiles': + continue + for iy in range(yc, hc + 1): + for ix in range(xc, wc + 1): + path = './canvas/%s/0/%s/%s/%s.png' % (iter_date, time, ix, iy) + if not os.path.exists(path): + continue + offx = ix * 256 + offset - x + offy = iy * 256 + offset - y + img = PIL.Image.open(path).convert('RGBA') + image.paste(img, (offx, offy), img) + img.close() + print('Got time %s' % (time)) + cnt += 1 + image.save('./timelapse/t%06d.png' % (cnt)) + image.close() + +def get_area(x, y, w, h, start_date, end_date): + delta = datetime.timedelta(days=1) + end_date = end_date.strftime("%Y%m%d") + iter_date = None + cnt = 0 + threads = [] + while iter_date != end_date: + iter_date = start_date.strftime("%Y%m%d") + start_date = start_date + delta + thread = GetDay(x, y, w, h, iter_date, cnt) + thread.start() + threads.append(thread) + cnt += 1 + for t in threads: + t.join() + + +if __name__ == "__main__": + if len(sys.argv) != 4 and len(sys.argv) != 5: + print("Download history of an area of pixelplanet - useful for timelapses") + print("Usage: historyDownload.py startX_startY endX_endY amount_days") + print("→start_date and end_date are in YYYY-MM-dd formate") + print("→user R key on pixelplanet to copy coordinates)") + print("→images will be saved into timelapse folder)") + print("-----------") + print("You can create a timelapse from the resulting files with ffmpeg like that:") + print("ffmpeg -framerate 15 -f image2 -i timelapse/t%06d.png -c:v libx264 -pix_fmt yuva420p output.mp4") + else: + start = sys.argv[1].split('_') + end = sys.argv[2].split('_') + amount_days = datetime.timedelta(days=int(sys.argv[3])); + end_date = datetime.date.today() + start_date = end_date - amount_days + x = int(start[0]) + y = int(start[1]) + w = int(end[0]) - x + h =int( end[1]) - y + if not os.path.exists('./timelapse'): + os.mkdir('./timelapse') + get_area(x, y, w, h, start_date, end_date) + print("Done!") + print("to create a timelapse from it:") + print("ffmpeg -framerate 15 -f image2 -i timelapse/t%06d.png -c:v libx264 -pix_fmt yuva420p output.mp4") + diff --git a/utils/historyDownload.py b/utils/historyDownload.py new file mode 100755 index 00000000..a8d79710 --- /dev/null +++ b/utils/historyDownload.py @@ -0,0 +1,123 @@ +#!/usr/bin/python3 + +import PIL.Image +import sys, io, os +import datetime +import asyncio +import aiohttp +import json + +canvas_size = 256*256 +canvas_id = 0 +frameskip = 1 + +async def fetch(session, url, offx, offy, image, needed = False): + attempts = 0 + while True: + try: + async with session.get(url) as resp: + if resp.status == 404: + if needed: + img = PIL.Image.new('RGB', (256, 256), color = (202, 227, 255)) + image.paste(img, (offx, offy)) + img.close() + return + if resp.status != 200: + if needed: + continue + return + data = await resp.read() + img = PIL.Image.open(io.BytesIO(data)).convert('RGBA') + image.paste(img, (offx, offy), img) + img.close() + return + except: + if attempts > 3: + raise + attempts += 1 + pass + +async def get_area(x, y, w, h, start_date, end_date): + offset = int(-canvas_size / 2) + xc = (x - offset) // 256 + wc = (x + w - offset) // 256 + yc = (y - offset) // 256 + hc = (y + h - offset) // 256 + print("Load from %s / %s to %s / %s" % (xc, yc, wc + 1, hc + 1)) + delta = datetime.timedelta(days=1) + end_date = end_date.strftime("%Y%m%d") + iter_date = None + cnt = 0 + #frames = [] + while iter_date != end_date: + iter_date = start_date.strftime("%Y%m%d") + print('------------------------------------------------') + print('Getting frames for date %s' % (iter_date)) + start_date = start_date + delta + tasks = [] + async with aiohttp.ClientSession() as session: + image = PIL.Image.new('RGBA', (w, h)) + for iy in range(yc, hc + 1): + for ix in range(xc, wc + 1): + url = 'https://storage.pixelplanet.fun/%s/%s/tiles/%s/%s.png' % (iter_date, canvas_id, ix, iy) + offx = ix * 256 + offset - x + offy = iy * 256 + offset - y + tasks.append(fetch(session, url, offx, offy, image, True)) + await asyncio.gather(*tasks) + print('Got start of day') + cnt += 1 + #frames.append(image.copy()) + image.save('./timelapse/t%s.png' % (cnt)) + async with session.get('https://pixelplanet.fun/api/history?day=%s&id=%s' % (iter_date, canvas_id)) as resp: + time_list = json.loads(await resp.text()) + i = 0 + for time in time_list: + i += 1 + if (i % frameskip) != 0: + continue + tasks = [] + for iy in range(yc, hc + 1): + for ix in range(xc, wc + 1): + url = 'https://storage.pixelplanet.fun/%s/%s/%s/%s/%s.png' % (iter_date, canvas_id, time, ix, iy) + offx = ix * 256 + offset - x + offy = iy * 256 + offset - y + tasks.append(fetch(session, url, offx, offy, image)) + await asyncio.gather(*tasks) + print('Got time %s' % (time)) + cnt += 1 + #frames.append(image.copy()) + image.save('./timelapse/t%s.png' % (cnt)) + image.close() + # this would save a gif right out of the script, but giffs are huge and not good + #frames[0].save('timelapse.png', save_all=True, append_images=frames[1:], duration=100, loop=0, default_image=False, blend=1) + + +if __name__ == "__main__": + if len(sys.argv) != 4 and len(sys.argv) != 5: + print("Download history of an area of pixelplanet - useful for timelapses") + print("Usage: historyDownload.py startX_startY endX_endY start_date [end_date]") + print("→start_date and end_date are in YYYY-MM-dd formate") + print("→user R key on pixelplanet to copy coordinates)") + print("→images will be saved into timelapse folder)") + print("-----------") + print("You can create a timelapse from the resulting files with ffmpeg like that:") + print("ffmpeg -framerate 15 -f image2 -i timelapse/t%d.png -c:v libvpx-vp9 -pix_fmt yuva420p output.webm") + else: + start = sys.argv[1].split('_') + end = sys.argv[2].split('_') + start_date = datetime.date.fromisoformat(sys.argv[3]) + if len(sys.argv) == 5: + end_date = datetime.date.fromisoformat(sys.argv[4]) + else: + end_date = datetime.date.today() + x = int(start[0]) + y = int(start[1]) + w = int(end[0]) - x + h =int( end[1]) - y + loop = asyncio.get_event_loop() + if not os.path.exists('./timelapse'): + os.mkdir('./timelapse') + loop.run_until_complete(get_area(x, y, w, h, start_date, end_date)) + print("Done!") + print("to create a timelapse from it:") + print("ffmpeg -framerate 15 -f image2 -i timelapse/t%d.png -c:v libvpx-vp9 -pix_fmt yuva420p output.webm") diff --git a/utils/pp-center-331-337-link.png b/utils/pp-center-331-337-link.png new file mode 100644 index 0000000000000000000000000000000000000000..ed0f9143e553ba50ee8e284ea26a2d250057c798 GIT binary patch literal 26257 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 E1<;o({{R30 literal 0 HcmV?d00001 diff --git a/utils/pp-center-331-337.png b/utils/pp-center-331-337.png new file mode 100644 index 0000000000000000000000000000000000000000..f332daaba331cb10a012b8e0faa80da55be0543a GIT binary patch literal 32803 zcmeFYi9eL@_dl*usbnX6cE*}*G`7;%24mkDJK2V;WiJ(m$~Jbgj(rWIAtYqqcOy#n zNn-56_txwE`6qslpB{Q}kNdjs>pJH;=Xsvzd7*T*)o$NpzDYttavP?utWQF6ISTkz zCA$V(nJ)7UB_X-=+64;Lg+ZYlPrN;yT-+T=NCe_T;uX}}b?IK~7^uWYzhpBcl{ECK z<`7&gHWGOBT34uU!)9mnf%9lw!N>bIE3aM;V<@8#9c+~Scr*MvWmIB*VqOgTnYF$% z_0QK`C-=ABw+9_udQ{ONRfc38_Qh*`wYQV474-ka^_-LBlrbsIu^*;?xn<8!=bPbE zz4yxt2ao;A%wjHGihq{OR0#j1B;V}9l6in?FXt%hSnaUqL&P1%6Qa93Gl`%9|ct@H)1)wSLq?7BBx zb8Ecp9WmtB{XJTaLvqV?co^`!o4b`_XDfSUBX= zZ9U$FGvypGteF#6ChvExUx~{zDZ&i4EbV_3R#QQy@lt%%u z%QZVqHD!|Xi+?%IMTx+b8&A~Dd`L({xi7viJ;OZk2QFUsg~3&>FI~DzBFIYVbz2a) z#N?}D>I?NmA{{+^Nub`2w!V%I98X<*ojKHCa9xuZ6n98SI7nd1N`}v7e>KCM9q_ZM z4ZF*uFXJBav1fWnf9r6ddgM-K+Offm3LX=Yh|vp+^SVXT-&`!DbYQdNQqB9DjZ}Dm z9Go2WxW?60jn+g+>HSPQ)!18&kk4tPb`s7{1Yaf^9aI<*o^CboTQzM2(C=^ zIZny2uc9O*OL54nBoC=Bk;EyJknp$K-XZx6CI)V)e4C%IJUids_S!s%jEvL(VfYeJ zfqTE9WkZ1kZ%d9vx_R6Fx^K~dr7E0X6Nmr2OKY;IPhYZnbJWb9x~g~tz; zGnR&M_Z6&~Q{ZIq(BP9%bM;Fk-b&F-B-r%)#G%sC(zVuwg$2)D$m-O=#(Ds5Uq^px zZ+0sV`tO~tDfd|jU-xVR2`AeH`tGD%xkN(7MeWAiEr~ijg^asBu4PIf`!{l>x}9+CjF!S2;sfm^5+zcS=MTiQv?pRct*5E~&Cs2;MPSjc zhO8x2BCU8TNbHyTzZdm?vDGJ|N8bl$ak)am0mO7}UR9ctU-4xBZlZgr)yM?<@2Qc8 zEy4LK#DG6r&S6*nJ(FU4<6C47&nP!F36(O*b2fCx@a%v(*S}%pRQo>!OO0Op_rhIK zX34Rtv;Vz^I5uKdeAAOJ@rE4b#eF0^UTm`qBqYFGtL+mQ$IetW7u~`3{Fnb-+3YX` zYXWa@VQ4J51)X@|2PTq>`Av(%-jujs`)?9jH1^TPB>#;@{olua|9#9z`_D75KIglU zjv1{Duv}#muuhSIKbXY*sxmMr72-rs|L+YnRu`p&kvj*qGs2~hW_VGxOhP3j zpPzAdl9R}_4Gh5bk7b-73LwHu%4vA2BnL z_@^yY-y-4QuUwnmZrj?|nE$QIeALw-wlUE}nU6ofY&|6rxWW}hGTg)(5o+=U+j!GZ z3Zuq|I7#un|8F7E1aP{%JTLxpMP1UW1FP}&Z_5J8%X{;he>@*ie@*y!UtxvxpI`Ud zhlN?gi^lZa2~$$$v$s0%f$wJ zp67@eSlDl4bnL}a!kMm=>NA%;Y{gX{~@ zk89IpTUX|;Tr96D9}3r5<+eh^$?ohvdh_i)mdhn{5ZJJ)k_)sKOFFG***A&EWG^EU zPNYX}^yqus&?-61(k|LqU-B`oL2|_=_Pk1@xcF0njIuHz!VuJDXink~h=C!e$3_FI zK6{6U)5U&o->;e&CCSRm8z%M?jL{qGn?OVfRt=yP!^!NIQ>@RrwYx8ziVeBQd+oVI&cJOFhoVZi)h)YM%NNF5+%;wU^v&Yb4gajERM2Ru zK7D8v2%IJF->0ygQUYK3^Q*wG3^A{P4@xWDjEszgUSw+Vxh?E{-?Z}0cUySO9Z5oU zYyCBOoZYqRp{yn#JjcAB8ST5UZ;?*6xytW!)gM+{&BdpurxQVQb93cq3u>;?{wAP5 zN5LMa@0`+S>O%@rZOh~ARH>+ypNqspGd?-TH#IhDFkrwmj0UOtz&f?Ic#gX_Zpydc zU1+JB<(EKiC8+aIQz<{BqVA}OC%;zfrID*iWnWA%5BYnj7h>IlV)!hY=Of#g<|duc zSebZr=f`geNCi8Ma%I)Fl|@tVCn{x9YNe%!Zn)R2fNzls+*A9y z+tW?*Pi~8gNvhs--197dnAQb0A~P5p0fh^6mh?qg3YU!NBQo>G1Fd1i^zF@``gzg) z4Y!_>+^gaz1y+sJYt`eOQ?z#qZ_QRf8Z!Si=MVKXdeFA);rubvd4Vf zQZ-x|v$twQYEHSJ>z>(5U4?@uvRnS!%(3fi(Hxh7rTAUIF?-Er>Qg>3JLq<> z=9pjS&!6^gN-PPw$B1mni^u?M@A9fCO^Wm`d)chgmkmL{w)i-KqdPgcQ`F@OT++!_ z-24Ugdc%5|BkDO17s}Z3Wk~-+wqur*x%K+U?Dr{?yZH>gz>O>=nn&gV@;L*ldu-A zoWil$8=9`gw*fe8;2#t{)Zq65}M-dok1)#0Tk+9VSB${N=h(B z3vNt_GQ_-H*xcHZVNjVmdK?{J**`B0k*bngqM}lMel6jCnwGyd4FdFe*k)Xn9Qksb z(0s?wE0FaKL*q@hjYiSXg|DMvm2b(Z3`&*VIW6yi*lKnc9K8NmBpT~B?Ef1#T7o4u zz&v3~R5>j7dn6vl_ui8+FzH;z&S@dI z(O4T+XT%Tdv3DQ*9|Q$7^db~KUSsl;~Bl9hh9y*8~1|2}4t9{lX-Fk0)-pSpUw@6&CmbH5b8Kl)BwjdQv;o9cT72VD0 zO-9D`&@;hV(;8{OBaThwLTg}E`s*0e7nd|2te&y+ZW`Qy8cA3q5RL&0d?QLC(V{ps zD?7XFgP@GSv(CX>Rf$qZH)XFIB6j$SKbOOkqY zL1T04N5B9kboxVX!OaJDBJW05@s&M4z;~wG?*CZoBQffC{1)5*LjFv|>%O$L_AA+} z7bgfleXZyOEoa~q`hq;^HgU8tn)n*Zl9zyUx$0wJY4oe*=N;JxAysT;0-TXYInj^@ z%2c-Fzsz|?WSl>8c{RrI@Y>xsG$5o}g(7@{f|`!E#>re<-nO1>2$irnXMp?=N55hO z8mF<2OL0&j6~}eVUt^uxZ{(6SGBUe9Kics`J-zVtD)Hz$L5yJk0PWzSrv+1J;u&ce zBu=xh{O=y6PF>3K%K1nqjUnS6%Wy^tv*J;QGbakWSP|5PaZ0J_Mb~MT z`pK~^e2BNFQu)u$UU6-z(Yc@?KZIw&si<~r^Hm{UWpYgcLsC4 zRBvu!!8$8azqG7WL&G3N6fhqE%hc`mUwo}sXc726(z9wbt8?=elWqSnF}+xtztyA#D|6e7|cSX)l`>j zQoI5oC8f4mN^ll6ka@)ukr%P@&|Z_jNifavm0pX7@S_nKB>va*WclyJT&`5{ZUO)l z_BOs<-wQc%qUWqb<;~nw8`9B&%N+!K}SD>m(ED=|Lx|%(7LedQEY3lFO-OY^;bb>ki#TU&#O+ z+EXtHt8f{>vhEm5{8w7l_%)@AlGc=#4$iIw|2-7HUsUJdE&r;+N)GfW&3m&^v0eK7 z4v>eb0r=IROOx>=_)k+a8W(|3R?=Yp?DM~RAM858o$se{+L)O=-<5mH!X0&dI)EH| zV6vf;G*Cig2B11QITkoteARMlZlptW>*|~tH2}(}I@scs(;7eFaHw~G>QKQ;2{LJ1 zLO7dF<5b#&y40xR;00X=uqqXhcHb6VStAM>vjSUN_WZaoHZpd)6e!sg9W#7inST$&#Z7i2Pg{KUta3dRK10cCq^ape zIAPVswb<>aZ9a>bg>nAh06lpkAMVgRpYB%4)`KoQrespt-Ly6!YtpDM?5@$F+6x`K zY&Qsfv#v9D z@P2(=p71f#qoslRbVT1?TG*7Dj@EPWFG=y2^!tCR6{d!~rjg*X1vg_cRS~Ifj9eI- z{2ML4S)SI*%6H3BPq%2IidHew7}v9qY`q`4g0fRBqArSVzji5zTT3|4AWD2tyd67* ze*Xmwp!yEbEz+_}3GI!Q6)&HF^q}~Iv5tP97<&4wjk+FNBO})u({lZ;5H5o%c&jI3 z%59{i)2=4r2WNbVvxS3Rkx`SDQs04>isZ@C$C|7w_>I*GaRw?w~AK<+@S9G!SN5*>t^y4MrEh%2n8%B0Od*XQSiL;N$_R; z*{9m@$cUBVv=YZ!emmIcl4ce*;Qq6ZO~QdK&RVk%oTAD8-T#~;+=K?<)9mo7yr*%{ zo-4)u4UB4!;8&p0S3M`gy9biO3`#d($B~1)sFr}jZqD$JW%sUA=d^v^NN)lIlS^vE z3r7BrJTRhgv`8PFqQMS`Ybp&kjOAhSop+iJW_Eb5B5oivOp1hZ_A);qKN~lfS51sZ zUipU)*}gI;Nac$H2ETpjUKtwSn=2|PphAw+<3~Kv_f8*Cu8N;itwtXk*hXuTW|Xsi z<8L%=rxR%248ivHyqzf;1&e$!{!ZiLc~O}A8&ZS;9t)m!<9r6-)B3<#0`6&ujN&`$ z_8R3|(jNl6Goq0ppBxk2(-PR+mNx$$&zoPWD9dh8qKnm5lq;*KXXQcxuigyMMm0OAi&fX{3XCm2rE9|PUT^6$(e!lB%93(y4t>8b4=?hx#0SVuVOt z*N63U@U3?D;H+??{gwXG_ByqQx^hP|G;M^l8rtcNiPrTWo9m>}IEP**9zgvVE*#`q9F&QPY(OpAETPP8-IZIW zk)%@#wV@b+*D|5+KmO5S*expSyGKtKh12-;Jb> z9)}P6-+wd~U2sd>t3Q5wORsfl84txr4Dd3w^e)u^B^dM$eLu4WX98Rb>-gJNxG^>_ zVBU`!E@g6W2NQ+2)5v22p<5f^BM&d8$taGEc7&|SlsIV7gHLr-IXyf)CKdBHSJ#Sj zkyLYEFVo%0eUw1=qM^qLF;zBHJ;3x0<68jgLgu5e^l!Yktj(hAV`lpn#?Gz*YcG-n zm87wuc-SIkz%mk-U2&a>X<#hd&ElGf@gt;Q3YtuqTbRj6i4^ainXYhomc}=Yd zZJ;Xy6u~IIh^1j(FC@V2*7D&BNkgq$%z~(}UO7bq$+rqixyS-0@+gV4Xz>p|IB zSrw#8>|HG>s=`brQX|5Do`|DaH;^gukBBdn6y2xaK}wte>#9EYoc|H5xWE|YO{vJN zfNQM~u*zijEI>cSkab3C(fi}X`i*7GzrbW>#Vrl==Ov~4)E#y@9OtJZv z4=5Kw-{H>P$oozn3@^}7?Lkh(l-+leNRv92XL^yXUBog~^H;m@A&trfnpN%=h)oMk zYIU0}?VwjlxC+Wus#|BSZ8FZ4Cp9vvKoy04{=;U$EF`oFHOc7CNSi&~-qie)o71!U zdKSMH^m?=QUyQlg@dY>nmA`JRgWi6Jj9YJ$Sy0Nn8$AF<$_P;Cm7f^pz;&=VX`FLcRM;h`140?E^~- zm@>tfbM3X-TWRxB+-gQf$a2xkgiPxN&wkA}Z|gQdOgo&~8i4{g7ktn1gLNbgIJTJj zRjyvl&szYWb-2O?E;*LwAH?4ik{y6VciT2BmD?mgvPpc=-VR;iR{ae<`Yx5G#oU(x z|ALrO&6x1>?Rp6iDVed(Cv18bLG-3Fg{+hB@EdulHn3Qa^ze)#H~4Ba>(|7xa5IhY z%nvywg!Cxe%K-mAZ5o1slMa4LcArwui2C4;-pq*Y)(-|y2wg-K<}GqQ_bjX8j-8;> z?1=Pm8lF1Ze3lE{ottf$U~Dv@aen~fS-E`30jGIfYxdKH5!+n>>C8uRrUW-574wn} z^#|^$I!~i78SAfG{pJxDqJ5>`xAJ+|H|cg_%$U93vu7UzV@)s6G(~T&n}Vb6$Vo-d znfHz8(5jfRp9O0_>}sZuTF~NC@i-lWcL?iKP5it?`h1`Mf<22ZFFn8oDpTag%V-c4 zmY&;FFt#lCi3q?SwAb_84QFgU&k&V%rd4h(NZNjmBBC1W@8cS`G;S=@- zeNOhyfBLfA?smT4a&q+bSPE9QE}fY;j)0(mHRDMz|3+|g;a+`{*4p>c%TY9s|f(Z_W> z*GiLd20i|OfiK8dK)R1wQpCIkR;6a9f!1Fyn%KEsBc0B5U~qR@d3b-Orf&;p^&n%w znBebOb{NUkyz}Y2CD>l%p3v=VvffBJAN+Di4}TYT&R z*_JZc9!CmSB$n*4zy?kP^q2`$hw8AaG2PT@{$*bN-0!tWy*oIVqS?x`>FjaPlaUV} zZ!7FwG$!xs^TlqvgN1f%)!D<+T$3qFotTfuigenDuQr|ny9!pPZYMBXbbTWy43_saym0Z{*jVzGKyM-xY3z)tr+0l(z|A5AB!cC_{`a1cS=42wDsbG?y&iu z9$OrgezfAg{-TGjdbE_pV6-<^Nn)i|0|s#uuY*mF5l01EE0I$^v)&C@R0s!*zFxP{ zG*qnFdiRrxPpG4dib$@YBP=o50LkTpi(jqI6kDIYyYs$q%coxsi2NK%Gy_TKBRFqLrowA=LAji0ec~C4JWjEt4V(*cCNrsc(VtiNUot_3nJJ^gb@PZEf0v};TpST8$MgTQHxeCo}f1;f1QRZ$|q&mbc zO){Tf)_gIVHSIx4(m-Wh-CRmY=B>adu`Wh-?~D8pa{13?d(*k13!Ta11GQnGr(S1$ zQz^zXEz%h_oH+*+&cXF@{ZGj=qDtnU zLQ*COc42FqiLD2l*O#8KMH}uwNvTy|Z}NdGEW6eFPY$*!w#3u4uIWIR^>Xs<$W%DJX|r_X1vk(7 z_0E9rZxl}EUeb%n_k3?BaC1@_jsN9?E6+z}6S6VAi9*QolqH|dpn%Ys`FuhokF^HG z_uW&r^~BY$x(Uuf)#3*)KOJ=Yd__MsnIz?qkxz1XPUmB_bbCz8x>1mMZwR?Q*b+p# z63q@U8~1YC z?9qb4%3(oooZC@bMh1)LNt)%<`%i->nfi83t=&I=Zgjf7KUneN4*z%qv~mHqMtXDg z33`vFWQ%rI154yA9BuE8bSN$j2XD2vw-=~8j;$pysf@bV;J*vMRxSEC;OcOCtk3e0 zkSu&GXJUk5zk9cWhG)niKv>_PS@u+T$c628>wSfHvK}jd#k=Fkar(u?BTJys5VU-6 zb<_)JWMvAaEiD50_~*&SX^wcx?ASpj&5H6Bj;Ly*kICacrNVf8Mu+L zC1oU-N`euoTa9Tk9&fP<8QEoQiZ-+3S_Bx99v@o7+p4|bE=Ep*+q+^*Plc}bY~*jp zwIAK?@7aza0M3ewVl7x2FglZ01@|jSNT<^Xnd^riKMI{}|K`XI^MwJuqGi?N${yy% zK;2E()?K5v@*znPxs@DIgTX*t9hw~lT6;tXb65U*!BsdSX|+u>0svN`vMr7kY$k#M zd7~OD51K)}EycO;LIZYRBxUzSHT&?gCDK5DGzP1#HHI_8z9`u0MuDsYp98G^s5*_~ zL<7TBi^PrbD9zp+X3eoWBrVYO0YFvtppTrqyk*Zgz*Ae93#Acn*>f*qPsLKsZ(-2& zQJulY3qBf6R?$Pow%M|nFMAIO|7Q99b8uktm7Rfsw|j+xVee^B;=H1D+8%E#kFG7w zbx+C!#(8p~j`u3Ryc~Y+q-x0!qrzaeCaJJW(^^_O$qeoT-{(WzQIk%yUXyLDw~5g2 zU3nRID{Y5uk+UcGqx(+vl$5KpoZ2JGPnhze+W{r!3^mjT!Paz0K51Y_zujh%O<%|RM*awd!<*us?S}v zgs|1zZ*AG~#rOL?+50RQYhn%hnt5WG{j{>qO~Z9&lDSAzJb{uAdp!$XR|fxWpE60P zohsH`gHlR}x^Je;I$d!PdY|e+eqkq)smv_a5=#rYc+;iN7LUYQ0oOL=Hb-bK`pOys zBnyj*u+uo`x&&_u0Dup+YE^y~uma6Dn^!erH{z(haC27Ctg}ms#uS=ncW~>`;2qXM zBgd`u2k@GkWv-L<8ihSq#(MC$*6}{DC9=CJZ0mt z)>JRIB5rgwhv4aJ!P?wh1dUg>Qm<_@BOS@FPIpA6i2 zo7B$PTBb9Pxfg32Bw!2xM2_dI=-r%U^W9K^0!DJ9dL}u6^+_2BPfZVVuf5!L9F?}-y=YeAHRaECE`6wSJhW?2QzX%hFEYIfl)~!U-XbOw1@-VL zb#Z}u{V5=-cjdIa^=9PmyogTJsv+~~Bb}L=^0Q=FDV0Zg60h&tMZM3iS+cUl#6(g? z8v(kGCpL<_U35j{A`Ty9KcG=ZqQOR4;&^t!xskW^kvT9uJrn(3v=qQV2@_8Z98Bn| zs;=rqvu<2l#3cB!0URzI5VFCAy>i05B(29=6mdM=QZR?AJ%2 z@ZuNMTR|PFZW&-E9hJcaX0E_xLO`*>kiOkXXwG(h{r29TW>R~CK_B+#V&X9;wljE| ziO|juyo=c%Oo}EPv5pkZ)#YQ5L^{&4rtqX!?cIpA?1S8aQse;b|EA3M??_#4Y*|nM z=(vKCBv+7V2$520_H}sWu_ln`=9n~ES_y5a^jz3#cPirKW6#h9$jmx z=ct%%;rM~jjR%_TGMHaYPL{Xp35~|YBl*LJ;4E!5+D$=F^qQdYB>?`SA2eIqZMBQ5 zQiiPSV$deSmUHv-e8`tpzbo7*C@E`yN#dVYm1+QLnbnr@*C1K_vh#V>6wnS(>6NW@ zNr^V}Oe~BgPBTC4~c&nX;?_&{-dR+)e&Ov+{9=( z$xejL`|Y3HoA-l_di5y=ASFm9`{m7H%HV%*SA7q=yTfP<_qsjnhbRNcj(K#x*yyy8 zP`2oNktg*C{@1Z(mMWOrImEqaF1yCfwyWEA%nd25r;N*v(E9l=5OQ2H2@L3lgzfMt zB+q+#d*rf41>?7b1a8n*?s7&#f5;w`mg)oP!!%=+NzSvXENWzoC?SX`7YBM%Nx^|u zm1p(w2Q@d~C?Y??4UA_mzo>p(`*9X<-hx=Af+fdJ_meTL$Vlu0zbJgUZNE`Qq%6Zn z6-{|o6-K|u=B_}w{QNimYvKC9%ZBsSuS0f2F#MIz?qGw&9_4?6B2641Td=~**n><# z%P)A*PK7RD0CE^~NOg&Vn%$eyQr@_C(k4<=5o8-1CH-vndTdL1dVRP|uGS{E$MG}< zvTs~!20BpJpNd3+VeVX!NR?p4?5aEjugK$+-nf$OR4GZf3zKjNU;<~7O4-_N?j-t; z6KR(hA{@A|>im2_C58IXto_d3RwGx32B4O!Fv)~QK%BIk0G&Etje~x(!GlF?6|+5+ zMK#R_MX%u$16;a^_^BXT5~Wuao%Q?PpozYf?y#-3dA3 zV}xnJgt|2Bw708!Y}9G$snS8dm|GS5xgmb6EzO^>cyYTDFOiwCRgzH@pU~QxG(adupj( z1*OGVZ`1+K@;RiL?!vu`)TEed84LS!SGGZ|GF5-dudX{{-?N-lQQ{<1ov62^)L0zgy^aGV?4Od==z5zyH9$vpbitb)g1(4FbVCpv^S)W8Lr-p5rHQ&bUWwrKZWN zLyUP*J90_)rgT(qEsv*Ha%C#t1!9Mu=GzKqjOWtr0P;?dM8e~YZ2s0*kDeSI^dK)#WkV`;8MoZi&;o4ov0 zyn-rwq-c=|2SAWK68n3&uL4MGE6)HqUR8bn@VUFrXYU<9m#Z8*5te~o8d}+^MjXww89>}op2dO{$PGSZ)Nh>aHe2Wp z($c8=^W*nuU=_go^=-_{Ctq8+$J(#d|G9Ed39XX@B4+lt^@59j0n#xyA}%7KR(#+A zIkGIXk4|!HV83xZWLSk~7|g#7$m9qCCGh1Zo0j|iF!w-(y7>0JgHxfmSdnGMj4}Ft zAB{mBIAk@VB|@WV^>Br>DAN;QUPZVdg}5l-d6d-3-QjM!Be#7WmHYgliPW4BF}Grt z`mzs=%8&4Z7BvD%$scrFLdNP@8!xnaGo>Q1JKk%7*>r8aypfd$H;@*tbRuZiWC@An zl^KoO_`EKEa!a4^f#RHiD(S5%doy-AVDCSI`C?ABfIb@4TlYZAM>-#9Rv!A-S9t5X z(A-GkqDm~?2&Bl>q=`hgV-r#hC^9tcHrl5FL3X{{d@=*uSo#+XCJix_j;v=1u|!Ut z+to1ors*?YFG!Vqn33UUiPW(hehDvrt9thhZ?o{24t6tXA%EZuUE(BZlw?4`D<%>P zo$~&O9ikl_2A}-Ik@3l}s z$u$jh>a%_}&ZPGFtRF=kTf57u6&W0te@Vp*%06ifWj+j}rA+@+a7@?LraAgBYNKu|8EC(p7oN6PZ{*H*Cwck*LM zS#_l85zoHQNpd@SXw!niC#=$}S^}v19fTbH-s`V5nrdt03MG_cX7`#z?|uiO{ThNU zqs2J7A80)RLj0G2!qQrS>3}mvqEXK~5K`wF&0|8puj|c7Jc9Pv_ODX%M&ce=E9%Z9 zQ=!8Rb~XeNP84LFM^Nj6~w#b+wNusTPgT8=@%#VIPC4dXRZ;zL9nbm?k80)2EW96 zb8!m1J^%i*t=x>Cf)|U~m2~$jxu=_nin#{8&5UK@&fICNSFuOvtB(VMF-B=@ced7M zFD^>F+m6vhFfc6a0gOh|^W7%1`*KdE{XJ1Q#j<}AUnIc!B(_^72vo7){pL-m)w4fx zMbwo1q}plj;+O_dq4Lj-B!PIH9^|stpvAb%cq*pw>phzuWZi99>|(ZP07y#Y@L+sF z@4P+in6gja`TWpYXfNelEj}Zedw{jn6wI=ia`uNleXD5I%GjuWKWBDdkzqqs_qbOI z7~R+VO24$}nxU_j`D5};WH5fM)P3F`_BUu_tNg6#KJ0JT`LWJ9B9#XaR~gv3)A#L| zYppNO@bAdIT9FL{)UYjG1sswfFw+~j0#NziyIIgNt>44jZC0|0T;i~$-9Y!QAmf!m zk)5zSbo&<`@f6lsc3mx8yuNAR&tIH32B5-_%eR2)NCN1+vd92uIw*a*O@N#Go!`8t zI|tfD;I)0;8K`C+oFXP3AcPpWP`Ksc;D>2|RJiPQs=ldfA4>q+?dG>D%za?H!X2P% zrz?z&Qc59GW=O2~4*1F<@KuPSMh&!bHYwhE;arkkXPM~7V-;DlhJLflW_kP zuxO+}w`}ci$i+>LbpLL`G8~bXtEl$IdcN1!)~G5#_k|{Di^ANwBWHMP-m*F+cW^H2 zmh2r>TepVpowX?IPdymCApuZ|?jl%z8w(@Jk?=n@Zuw{k0-!zk+eKXTdRE~EsXZ(Om+?bV%O0Dw96tk8|Nn&#y0#*5EMR+H=7G-E?Z zUhzm)e?AmsshS%mEaJ^5SSJv2^f6cR)=ry|PES1LOU!=!1+mJM(NE5M-@fEBIVR=A z>U0?(ohA-V&j=bcKE1YXuzpaa2=54AOH?GXuU2~a%b zL7Eo$-8#VFfG^#|#NUZgsW}i2K;Axm=#r6OFe=3c%*@<2hK8IC!l|a3Ic)HlPI3v zUuPM5%KV6e_rZBztAHj2Z|iwkk9X>cB_LM^gj#Eh#nVJw2VonSUwwAOG#IzFyNVAj zMC*55Z^bv(oLxx#pQkf%Mcre>vO7bEvOod9wKe)EGguqB!hz!h4N*`H9xrEzVJ|I= z)tn;9Ta^Y+SMVwDKndUhtBjXM&Nmu8SiL^oSMXP5)%4_EwqGM}XAH~%a@H`JMQls% z>L6PFDZk2M1VbA(!8DvzmbZo!;;U{~>ADP*CvQ8wz!@d$zNPyI2QnQsyAiv&As_m} zZ{mkMr>`EZ{pRM?%X^b#o|7zGYj}7B>}(Fjri1+ z3a;FJ^!VO&@hcBbck$XyQ$@YzCfQj~nq@4eKX?7s=@IehQ!3vWh*;OiXtTuO9_pWR zC2sTZ?CnvjZrD-7*(z5RA$wv$Z$s>SimPFB>#TEYqOFyv6Wt=_FFrLP|3DK5j-0Lp z9#?+zXt#bBh-Wm!mQ{}Zdb^l2(F+g;T8T#pT%3DLKcD{jjd*r?(soU+HrpnnZJh4I zaAwtvdm*4BsVG$)nCb^0jgb)nXDTsubfJhkoS zR|Zs5t0(X09izpk3?BDTE8}ScdPdMxf$xe~rF=ahh>|QW@51s)zY2gUPHcUtL&1wt zrU}DhKHWm`xI)lqcG$0<%q687Z0zhFbDB+sXbq>V?LXhzy;Z4ClCeKuE^GpwP%1UC zDEO*(+WL#sTf=+_CDg@pE+|taRxZb%8bft#OLi;vo#f8~!wOi(N=wH9lJR(VeQZO1 zobvL{$#EPdg*VCQR+zs(Ry?k0NgQCp;ybcKh@97xfyCgE!P8hd#z)Dw6TInqto|-Y zl~!qds<;YnVjV8fklPoDAf^HZWV^KlG#VlaP`V@QiKV56Mn-xy!CvA)2C z;m7#W=%*;KiX_mkEEjqM^dxv7zHIyu#;*m@%LKqvCuU}5Hl)Ya4KEJs0A5^1Z0`aX zybHZQprHlisgd%7vL$(!d^@d7Z^vbL(E?%eadcNBA3776g?9>OH_%pTjQ#rHh5FxM%|IRi+x9i zMcEu$6&cuzmPi#{Do~{zaLyKyrVpeHvFulWahAoDCe;8jrr-@xqY2Y4DfkUZU`%MQ z_X&*QM%5(v1_j|a0{1Yb%YKr|wi%nDC1FnBzAeel%!Dj5g}RIb!R>F`cSya04@*-K zR|2EgdJdeq^lQpq|N6kO@gjHqvmJE48tRfd{8uqx&d&4e3f!zkwbl9;n#@|0HH3TW zfhP@wRi7rzW7MgLAEp%#EHi^AHdj(v`5X$6kFEKZW;5%Rol zP)kmyc0qiv?5WU-$n+N=s|bOc&3h-9e$Jid zuYMlV@$D@<+pAy&MoCQ|TPo9JpzJds?IEf(n$*hKJpS>J+P%+!n6yLhR^H~9?H=|1 zu_7V!ajDBQtI8|6S8I^V)oJYhw@LMnmn;<)ws(56#L}IA^Bdf^*PmV4$EeaSgI}>L z&UV{+!2aT5u6;}60kSF=%5hE($oX>CAs8Mdt=rLc&0XA4N4e^l$H6+uKr(5YYI^T( zZ$(IWsp!cO@~wZsDjb=To-wpqhT4`@kxSE>+;6fX9RB*{4*%p-n+BYIaw8&r&%q$a z${YK~srXROeGz#8GYc_{gxo>^-LtU#20+TDSZbr;`R}-i>`^(us)Hehf;vBXhY%I> z3As-&w;+bDO}9*rKYBKp<(rGiFgB^~nL-o~zs+Oca6cp!ztuu!Cm=x^O?u1)uhHw! zUn#CbabUB8f3vBdpCfDPeZ49qXbgV+5L{G;(Py~WE_x4KQV?+ zO1;bSNei9L9hq2kL`kmdOibq^;JjMB(L}YUbtm}tQ+nI!cc>Q73HxRDFne~ng&KcM z1rqO(I5G|~_Wl!pN(WSim4KNu35pHq4p#3d9tt%R`U!vzY7RTM0z_*bbm=|U4Kp|z z*UVWj9xOqY=N5OnnQzxT8!g=otJ{3^=7(P|@bTYeQ z=Glq!d%oOjt{@CR>}>$231=Md8IwTcm5I*|^H6Z*e)k*pa%adq6wpy#g(cqfQ0USt z9F9o1s2^ik!Dyg2M+Fnk#wwWX`LQRK{x<)&YUX5i>WBT8Ofq0}`!7&$8$i;9(a6z%*WG1u2tRImtu~j4;*mpkJI*r&ZDq^TO^=C#U zO?nl~_*WiZCU{+iL|#fhkKjD6aVn^>CR)&#Bd95uKv=!Nb*Jxb{QF& zEKEMMWV&)*j1G959SwH?LX{RVS~i55cD8fzW=!Z%TE52tRJ5E4QBn~d;^0|l7ER!w z*@c`a_cFtH5$WD5B{$UnrR!3|PbNK+I`aFB4BsFSH15btU-g!sbjsJ++X zI%t-L`BCt|@<(RA0hCh*4i-PRM6Uu=%KN9<3KzA17DxIW9f692-A}#@$*GI0EFA`8 zeIaR5 z!df^{J4*C9wUN|=AX4ftI<`o`5Ci~V))Ozv=o5td#OxSRAK<2(VDLjm3qiw)#@*v>U1R}__3 zYhMjk3VqciQN%DR0|)+9^;Gdhd!o|J}n=*^p^8}};V&^)N~@7brD z_2*(Rn&tF4jU-+aa_L?nN!fs+&p`9rfX^N$R4siHsot&HaPf?(@UNDfU&U8`hyfz` zVlkeDG4pgY2(e-!SOxN*cu3$D#y-A(XcCJ-3Oscd?@hBw4NRwU}dd^#Nb6HSG1=_ z9O#ue-u)y)S897@h415%%b<^|M4Ee486Y?AHayz!)&fq%DtB{4t-KZHlV)}OgbYex z%{$M9vo8-o8zx6&o-NQmxpQk$2qUZ0`mi-&+K}QTuA|U2uyc z^!6=Z`T{TC<&E^mjI%A%(myj4$2T_XzvcG_6%igo=MF9+hAh?pYwEq@seb?Pait{L zAw@#Su48sGDl5l|V`YbIhd4&$DA_Z69V4>Gu}^V~%HDe(qhueW%n-i!>HYbBf4}|+ z56=Bs_v^l&&+BiBh5=S_cJRY02U zqWYiwcP&}@V7a3d(iPiXiGc@$uUJzMhQCUCBn=)*kp1Aa<{58q6$xTZJpsf|&v5;KCrS)`4Q>fH`JUA6-wgKsvqisI z(froWhF$y}^K0|N1>yZ~f{$rYbP9)618Wcyi{gT@*eM=$b%6}^DFu3DM^=tH7fAnA zzz+ylV0TdhXwiDvclu{|giMSPMshos5N?d>@iAgX-k&?Modl!q-04dwldZ->JhVv9)RG~SS6-vtH*q20y}W;t49^*K2ZIi@p! zdFVbkQWwAL8v1Smdw&VA4C)#h6j?=K7G|y!3iQXZ%{>30f+8MFg7OP7{@jq(eN({Q zuJxwzFcFMp!TU6WlNxvVHyoov()R>e=kj8f&ggfxuQ|8Yl$?~bQz?y27zq(t^Z;aK zfUO%*6Sbe0vCwG3?8ogiM68F0A`e^TQ8vTxCU}T~1Df@OL#Q<37YNrs zU2wS;Eg2inVq*4gqJ5bt+_IFJ81Zv5;x9tQ-j4@(^*n%FZ-=TMv!-%dDYaOMLG;Ef z#+3W~N=3W`X%ac$Y$d_8Eg75Re^jjtEP@`#JWV00Ay_uBJ0PQp3|j+Y8xX5%&CTg* zoxJpf*4aPQci$NR6A@SEMMMZpW~TM1_YS#P#vF)A5+F;$*T&bL&n&eOvm@dhTwfRL z_63Tn-sPQ02R_fya^HdBmFxsrUa!z5*$HfkVPSb3kfT91V8cG=lU74Hiq8XFiZe=t zh#aWA-~!M=e1|eXs+hymit+8SNR;9Q?GPa+!cS9iw+n+F&i#DBO@FtakZBXwZ^p;f zGwXGZi8n0@>{}%K;n)0~V1bY~mZx{a;^g^4b33y@2)3x1U6vr+uNpd8naib;O0E5l zegE=5lI?&LpJWLuY1EYzPVa^T`1&aUp6q_q@A$Wrh3TO8;B39@8g9-E)7_AFihi@# zM9B|B+)zC(C<br`5ZsCw4CQ{kdCzJ%NMG>CV|ne@T1Og`QExg)Sahx7*I;NFp8AF!Ks@ zgr6Ub>?kAxcX4+Yuj_amVjKuD3Hg}VoDj{(6>3N=&J74w^1TDG&&F%2p69^0qE~+K zh}4xWOLrYJ3P_#<|zTlF3n1Baki0p~$a61b&@|v0n zJWvLJk286Y06)XO4YY)nnj^G=7(mJ@3{iU=%H+U;xd5{F9Y7%9f#3$y*<7tCV0Ds0`58W-P!S$t^=`wODXy=CvwjEayx z%^ezUNM^Sf8vuO;n2YSal3r2`SjIOC69Ie=j?mhLm&&jR#xFy7e21-1<_XOrX@=0n zr@DX%Q?4EVH^7u)>8<^KRrlmo7iFm9Z2;MqM{+GCHgj-k<-PA^eAeTDP}@KpP3xr? z4AP9aQmAFNihybTf}7_eXXe1MV0Cn+kvD+~syyo60I}`N2tlEe8W+k#x%Rn1G*EFD zx^6^oARfXD;%Y_%ZE>ADtKoyKBfBIPV?c|GnP>S8>MfKD_q0k{#_!VbE zaNZWapK->zM{93DrrK*Q>ad`$B-YLqjX9_PCev7}C2J8RBJ$l}z6B?Od5}ym!#X_G zjX4f)Z0tGiX(-Do75 zQNW&>jDM|_0N-lq>+8cf#WMR#B~9`B@nO?Xv$nK#b@Ny2;R~AEPfy!FW`nOZXIpgu zF#YR%Hh6}ge7(BU>pl~;cjRjFaQnE07Wpu|_U_UC3|8sto5RKTlzAY${4C&FkQwhT z_H=gFm^Ae7aidcY_tmLc=Fn*}sPXTo-80pn&RlAbORvBH6l^M!GuhV)l43x`f4J%` zxHtv0-&(!(=;=&QWds?Y!Obp)-aGIcLHiy?XB&JK?V^Noc%`l7Us zbDiQLi_x?6+`kv+PWEsODU6>Hqh)x#t{a^u-RAby2o|=+)M;(F%gj~FPc~>S;y`pQ zLQL}dV#S4&z@3JO(Y#l1?0#g;l3b@Io=HZ^0JcWUKf z7D<@`W$$+guZhz6uB1}RX56DQOjMg6dp}5*h;^D-M%cotQ5i_QcVbI?Kf#C|k?9FkR$4j6 zN=1(JNMBUbzNSdxENa_y_|rg8YDE6}lX0SQ_}lZAzK?@(rMc6eP4NfYp4&XeM^imm zghyxQ^f=`F7X3R8?m_P0Sp)$_kM_|pBL-KwL$?<}Nb4|qD!kyDVrd}tsvuXwO2-V7 z!TAQ0Kb51vNR&)vFoN_yW@H=2N&eu7K1+M z7YfB3IJ*i1riYcTpOJ1t6|Y=|sHK6p;;iLS)T^!{>)NMiJt=$?1Q2`uiRK3qZBd@t#=%q?3*QTQYL+S|#9X#nJNU$ng?+0*s{BEq}g6uXH zBDH(Hf+5Rlt0xMGxzhfS{Q9QPEh9d^#tw$-FzE+IM4>D*6(Evmg7AN=>yiF~OF`EY zKBL0biLB`3(K{oqvcMs2r|X3>JIJVXpzGT7=*CP0zAmvP`QSCsv#i~?qF8KU^awU6 zc8kpXDs)RL%+3};AQCY{*RjIQmq3|Y?V2Q;7pdC}Gp?jjJ*E_5F467b;2|i!zA>Wm5rEev3&fpNWR^V``2I zca+I&<8Sh~Ps(V!1=*Vl=}R*=Q_x~JsKt*Gj>jCU(GR}PcsNdp4Lb=0?;QFt!fKq1 z!mX!FIshaTPL`v84H`*d7JBBnYElIvY<$(y5t*SU~%pVy2IFH_FmY`x6 zpP5$lJ|Y6Mda|gak7_P|_O=r(q6amWQ7KCe}`>>|#00 zg#yeGsrS%(RHL@~vJLNZpD7laEo*kkG4OGNqJZJ2{+CqN!jO=JM&X6>qM}j%fKz9b zY)wks#OSnQtwoUVG^ko)!+c7(f)?)SfiPgf+JB=$X(~7e42`@@WJ`Xn|IztXQ6-W< zM&Yy|i`K|D(AN)v^#(57Rif6u#Xu}Iy!Z{wO(Fp}tM?F}?dm-z9@Fv+8j;X4!AW(~ zDt=2ckx|?6Ahxj;`+lAQ1W{Oe(XL$Q9Ms&S#kWvw!sR1d(O41ZZf?Jdm}USbk^yaS zy{kA_G>&yg1Qh9y4MTH7L3m`|BcJGq8eYnJK}pGNiQ&z1$RfcvixF=?aD-e3OI}*p zs11XQV5BdiLkDCBE3seWt6d8aVXVIZxnDwWCmQ(-(Ac(W(zLlM3R%}q7H~nSJ*_N8 z_6F9xLG}pCc|(9Hf-7$E5s|pljdw~e>1TZ!SD*m|`T(hIwa8)$Z?$Jk!@An4m?x>% zEbfB(ABc>0Pf}jEoHs$>D@Cyq{)MJ*VV(Zzq+)835rEYb!4rW`Agg(PheU>{wI-dLY2tP{}MiJU$FJML_-4H(aZdPj+OxD%5oSxA?H?Kqd)Uz3HKKi*b< z+4xLXx6eTUmBO%p}t_ z(wD0@(yo7GOxi#p2v<||MV_m&TPdp$B%{ll>WH7_(({h+}tR}eU1 zjsk?`_B%QOV9hh>gSfRb(j%7sbRKZ@jBckI(jzr)uZXz1`=aJ-+0r-e16ve%p{DSPG#r35}&L>kb0FZo@@ zT*}e=uh+Ezk%8#jrqTIKkjcNJD#K9zP&a|-3jj8wSNK^< zt-#rFpGokBDHW>hh)clYOP$;HU+R3Dme*E8jgBbL0QU905JcJu>M)4c;yeiNU{hd7 zH(kDQ_Zii-zM6#$Sz%0Vw7bdc#R?kOia&9|e|qKB+388!oLc^HB>zh8tI1D$FU!};WZ)^YN-BGiCXo7MYPAr>hJLPUC_3%% zYmUZgY_AuAk*3SQRzW|VzJmU~wBVxo9Z5cv9FPi({P>Zz^W&S(-4y%Hs#|twUCTRIXs6`amF7+wqNbHLQXI9I2aH;r{&RsB=$`qd;>w)&YXD!%|Y z1{PPc)tk&khS)u6R>K!aq>FbNgLp=-wP~j$_wSX3owd|;-1mIG?W|3}rC3YtbDwQf zpy>_a86d3RE7gj!N>5;M&$vZj`@C& z+`l}T4MizU>_SAx`!IwD%ng(>7eHxPJjPWh)PQ0;89g_XmN&5HMIbl>Q6z}eqFiP) zacSWN%abWubox~`UORV%!kDGz`gnpH`4?$X3RipAJjSuWA>}zk4Tew>S$|yg9IHsR zM@K^mXSjMLz!*CA|1Xbg|0h0UI#jh^)y#DqXeWu2Q8gE`o2(HJPEV zB{74DQ3JEB!MK#RVn@4;bW^NV_d#PCE#ed=kMeSKs-~IdZY)UH0W7doK`Uct$)7O3pf=|Py@e1RW94fZyp_ya1;5sJL9c*=!TuwaaK82@@i05D2eo zivrLYme$oq4@Uw5R)FDN++iKYYCfoh>7ZsI6q?jqUDcRj(NAY~F3fq8W7P^A<^elT z*h<_@qjO=2VR=vYUDk^nSEu5Y@zC4tQnwsm9=w3m7dA}}|4`NF)RGAJKH z9oDyr7*@aZoW%cj75}4=)hi#lQ3FV}?h$B(`-njH;Z?V2dykzu=TxOnx#{j))1Ii# zj)vO1p=^L66YVz|pI3mazwWSkZ{o zuqf`JQDgxN`Rnipa;_3O1hhn<)h(=7&Cx7pzmeBzYOIh|N@K7lXIjAjJZ-%fPFHDE z^;^EAkuIVw8Lzsp^2ZLgPqkoILZ4Ebyb(C#A;bH62-V(shy)uyF!YpBDr|52OSF<1 z?Oy|Tz75z|f`9hFqE@ya`?SX^6_tJ^3oEnj*_hz0R;YF&i#;I!y<2aLKOI39g`cGD z98u30^;mKq1R`*>E%%5>p@*Dx2>Z9OA1Zf_Ip2l1avrmOXw>e_T0yhr$n!0Z_)U*< zwj@39CC1n_*42uAdn)P=?=pqgj8sMfB-}^VEcAUw@WgWMnp6~)j~19aObIo3AD9cJ zS}CnM(mgqu(wRiWy2`%7X5edw8+PUPU8d+;rSEmhL^P{&yn zu{vUStD(KekKMDV_uAlq`UiAgyk%1v)V8e;vKwlla#UNyzqdyiPhd_@Plq0apVmTY zAa^hf`+zW9zjI}eG&0`vaPH_Bix^#yk}c$02CG;NQfT?mxzW>%?zPdmL|L}FM^7?7 zNn};e43h-Cy^{dURoOJCtwy-5-+JcC9)~$DsMH*C#)J3>q@C*e`wi+@V#`EY%j)nQ z8xXY*Ps*z1MfaX?2%zOvf4QevNDN0|H&mheD15p=Yig=1c4JEzqWv3{TV?rPzT`7K zY*#*vXne+DKrJt6R|R!78@xD9GPbvTOtwDIB~p9P3PyL}b||TDp{&O)jqBgr8{yhgtJmH2KP$AVuH|8GzHePbtyVW0WJ< zB61X{=oG~+#bC%_W*qYPul)I3?bIvSQ*Yn{{`hOGB0q=L=Uo zr4OsqQ<%OtMlSHV35sarp=aZJMKeQSliItX@UMFPIDpA@Vj&b2QZzs9ZxDCRJA}bl z*~#%6e`^=E7qj!Bh#z=FtjIjsJ#NiW#Zy?Q)O_AzbyuXsO|(gf6}oQDpKJX)&4ID= zqCVP`EUb(G=z{#C7>WqMr-Kg`3K+~T_Q z1}}l5xMN*qP~H%OSz@!VVHtNRPyblAHa$jZTIMSf&&oeq(p8Ii99_Gu9+wem!rlb< z67k2XmkD}AKCU;EQoT!3z}y7kd{po(GNvUjA-zzwc~xZ$K9Id)*d^#O;K-@;fC~SF zz<3Q)zCw@+oW$5I0DHe`(tYP zr;FZSc0)hZ?^v_zk&xURBlZZ;I;j2T@4!+`TN7#=079sS{#rFgY@P#&1Xf{n+FOnt9}l1FP*k*|w_ssjD`To8s5}ea&ilFw%EibI>NsNrwhl_gL|| zukM|(&TQ=y@yIoCTj6W>M`UA`v-#GyC-NLKH|ms#_B_hW%#O)Vmw{q%OhGd&0BGG( zti^7JLO>lhHa9n3dtg-sX_}(;kf4m;*gy;&1FcgaTkR6((b)4w0CtIECHm!2e}gha zr}mjWToCvR_90;izMab3?+8a?O>guO>Au+-jyhl*0G=TBoc$%TjL;#S1k8m_ncCNYVo<+Qj|(-z*$Y^46fN8 z?ssZxn}Kneg}gf5b1B z*#E#3=jtI-kkW83I9}e&Jj}Vls*{N84D;|3TZ)HPfhW6@N%$%Vo zxU7%#66eIO*vs`Me$u^X9FX`^^uTg>*96VxkLjOo{mF==^eO$IGGT*x9a?tF!e}M* zkHGFfi3x9pgroxA!D{!Let9hX7wrv&-KKcAnBte*BW2D;@UB9j3i{22?Lgf?8-l>< zwfK(2lPi{uIOj8!b1dPk{EM5x1zRv>wuo~YLzJ|Sd*pdzS8%JTWeJj=qMRd(6apA! zv##SjJ-+6$WPwQK!g~jWLNz64v(iE8w?nWAruR)ZQ9n677H_4W_Hx9!US!wSTRgOo z(uZ$qo5%_}v;3!ECY-*AotE13)vIP z8H`s0qSSjvfVZ4mL)wd;hGuLjIorGYJj#$}jpsN>_ekP;1J9*c;VXJmHpA6qS12I zDCSGwHWVA4>>#?A-i}k4qY&V0pj-T6z7JWan7pI@&HhU7eQD|G`?B71LHw=SG0US8 z`?-MejR=%h*WSi19xQZ8@pW7x6P25=GG`%P2YDl~9oO!~*aqGW8&vq!qbICvF$Gzb zs!6N7@Ezmo;$82d=63Zj27`dbb>P&5y2-QB^6jO@Lx@q)J$gq;$Ln;za#Q6MuVDPz z6X0VO;|jk(ai^@;Uygnwx$>Hd(DF0;!F{iC;b3dJr}jCc@uFyB2^sA6lt}Jy%?R5+ zi&7?KqB-UmyjQpushHTK{L!E!_5pb-5z7M=eZ5&H(j}jJ0C(uSG7>vy<-b0VTHj%Q zOyR8E=NP$(R-gtpIz2)}za!O{m~(R?p29Izy23}k!by9@gsDSM2p*C51gY>9dr_Od zsK`*UcmdK`K_*OCb223@bmhJEr6-u<@QAnpGe%g{T}e*X?cO$*rznsPHm1n}rG_uc zTZ(Mt)A()mxMc5E&_{ZaBv&V6S+* zYLS1o?%;Srg=k>N4ah60+AKEQKcNOSCSU^_uiKl)-l8W?*n5j2&4|!}P2~ieH5`}6 zEXmQID6fvUyUAusMlDT6x5rZ~nJG?3ECC@N!ymx51;&qIDUD>ntF@@eo-y|g;0|=B zl>zf8L*PS#{{kr4BxwI`$Nl_yI_Q0n%#Ty3PU#u2v9Wp7DQyu2TZj>SEkX77ZfB~sNcFTS!EVzi8^ZLCh;sPh6%IzFys#Cy-lvld!SSl^Ek z{bJbjv)QU7+;pkDd{NG&b*Zz?jLwFU)VK-j+ERKXHCG`q zyYL7YA)BfwE?I#cZtrdpK3Nrej_X)6!pdVH3XHZQ~t-7pu%}&hdfku8hF5{^IJ;uu(WF3}fghMC9 z$6)w9Tu4TOARddFu+fUz`q7!zWP4irlmumG^PlhIH;?9n+&GgRy58DQ%vZQdNJ{Fk z#nrXqi3|AGYom9tF(Akz^dtOFL52L2?EH8_{G{PHm{e7tbYlgI0`y>zaiQ@t$$Y2e zz&nizI{$Naj^tIam9^;Nr^BqNnS66* zHd%gh%VOo~V>7ylTCQ9;VTXcHH=B&_u;(l9{&{gOx~1M5RpB^-fT-SOWt6;-7r_x)AQW z2@w5z&L5eNfGrHk(D*OmGBfHgahhbw{-0%%k+j@dwQ5US2qaT`5J3t(WX!*m`o$IP z-mg;Ih*jscSZ0rMIsGBg1Bp0sI+Cg#o83p*WQR02vl7kzF4(dMtDHPY>ST(EZAv-= zx*4U+)DvKc70J7H?(^<$6@wenw;<{~y89PGib$9^7NDNEp0raCdm?uKYWd(710K!h|V*AdB$b= zH;$*^O-D9MXZR2pq+7=aHa8|P-5)j%tJz800;T1Om>do(GZn?FFFtN$Eox#`Hw>w1 zpvFlL^+yjeYEnd>O2h5d;e7GO+puhnZk5&PwsXsXtA)(S<_nk4!7oB$H`JTvIi;~#dOvK`Vw5RqaBZ;N|W$g72%2xHRE5{9` zR3Ue7SW+ut=Y#08ue-{f(za4y-jTq@1KF&z!lr{XfvbN^m?L(2^i*uQr}o7LU?id` z+cx_-UH~aZU{Q+vn_Ea~c=gaNhCSxu`KWi)7s!SbA%lRcQp4txrxUb^@8ISVt9s!~#5(dR5Gkaloz zP}T1j*ZZNkh~M@47my7U??W3cl2+a7^nPWtxaTuWuN*i@-4e@tM{JAZkkIDMmR0sX zXZ8{(ODM7lAW_?C9s3GLe-Q$~d=~ldlZp$%y+X^We#OU~;|%$k&^)3O@9@ZliZ*MX z#ZWW%^PEect6qL|@Dnxib5wm;KOt7C-USGRA34nm-+e9> zVct2xWnc#urdCyEdkEKIfVF!Q-t(5#IvUgq9?IPHN4zv8#wC@6qK8>(Ci=QHy1lW) zNF_0L4B@_3M~w-K#o2l3>N+57R5Y%AdMu$#qnn?fR<$G_sZM=sQ&^I%#1)1UoZY$a;&_l)u`eF{v~9ua97xZLuO*Wu5DUiZR)%v9gDrm=%jC!XHpBX^V{or5^=ie))(R56g~n z>lo$r;j=mMjO*lra@X}1F7hnUzVMQr)SH~-&dJHmO9kc%l2fvi81;sh4}aD0UMQmX zxiOt|6{%mMLJ|7kNJgsJ5%g;zAwm=`AdIDFxv3su7Ytm{tx6wwQpS`56uzX?SJwA$ zvimV|zoJLROe8p&3EQ)WL8^u$={f+Fi0a!Y}wUV_N}^udWqpTmU5$R!qKnZ?N^p-Zawv2A8ZrkKav`BQ$a7{lcn1TiY6S8&ucy&jfa}N8Y zw_2)}{K*aUZpvtnd`>(n(;OYQQs*1W1-8SttURjoAet(WkhHcp%ulaj=o*FZ&b{}; zq?$=)6~5~HIjsBo+Bj*;M0swiJ6)K;-iCm};Id*S-=Yqjiw2B24rO1rq60`o2pV95W^1lBuI9-36@2922HLH1<{TZGyvl$?18W=~ih zjR)Q>GSt=m2wanJRt%-Z+|0-iAKzj-Qs8KsIpWv}kHw2orflCSO_yG=J zyLhh}frSQp`+|T2*pW>#FbRc$W;A262>C04@jo~gcfn%&fS>oka?Xw*dmB@+;^m)( zK&$Z-BgYuz8=PtgQ@ndq>M3y{TymY7hD7g2>bt>~Dgu%x8Q$#sx_`Sef*bdORaYbL zw>%ic`W>x$txkW!%7$z^qfqp?#CsV~KYLbj#TQnn?G7p2OH{O=up-O7{zY!?8fY0j`C zTM_h+aje&C#FQ0e3%*zpok3taecas>jANvAa4E7B7HXm6gK|azx=%=m=)2vkal(=8 z5@=BNj=bZC9w0y*qgQ3n_dgGH0NAO1)#kdcV66p~FR!CIrlB!VJ!2XAK2o+FRDT-m zUWlIO9q!L#PCf2AxF_PFCHH^NN8%R{!qUqc6^()RMv9CzFFexUCE#OT@5N(cEF@n1 z+`tU?7*bef2V%u41x^IbY&0UHmzS`9|Gi`Tl{Cf)A4I}F8qEg`by)B6G3bs&*5Onh zcLN&JsCJ!_${$+fIb4L{5vT7_mGPilu8z*pq))m7;LyXnQaAAJsVQ|r{Swr0jcr$ltFsp#B2;3H}&zn2IkZ9=|dK4D(N96F9D@>4Vl>@#td$%C48V! ztU7HA(9`RgOawXJ?E-!7*w&!u#VS5)_=)TVF+u{=K!7JC$} zFx0DgzNf#7M0LacZb%;MrXf(vJj%s55J;Ri<0kyLt0OWAJ7WKfDPk|Y?BM<>*WF~d z0QcUmr`&j-Ho=zR6M)?V`~9qM^gm3zssNgVbr|xXu1l1jZYAK|)eI81o|cc8g6&G~ zH!UlSaLkJbnZeG=ENlZhZ)n32`$M$cpVpz+5)fodG_YroV4&-2dwHV^+Z-GsW@ z+TR!$YnVpYL0F_tP3v@-?Dg?E^+u&r={pt2!aUj6cTD+W28H{eNVErc*vix$aD`)2 zk5UdEasJn0>~08dx~q-5$E3qt!$4I-Z*rI@a(W~wdrjiE zCUvT(vM&xsy!B8I`?5IE&YfXod;r8k#Dd26dg$hwdPU30U`~;kji1V``GSiTb~?j3 z7{bEtt1cVKlq%@1xV2Q7he6Q9EplQNoWVKQ4$ zc;;H%EcHe)=8EpCU*|y&6mUi#?wiNEau*MyJ2aC@Us~|{)UbCoQT1j;B#ave@+$)z zkk}25q*c|Tq@_AE!_G@*?J1p%nb_T$FlgSx{HSO4p*kuxDt`G)MeD8(ydZS|H|(4e zX9)IN)X4rl^`abH3r`4ifN`RbZ_mWEk{WozL=k&Do;K}o-YksdBKh*tfpqh`{#QQo z9)$;AR!HW_0tg~kY3V6PoI2?4lRO|9On$5Vhy(BWGMmbHDppDKWAI*b`#~Uir|Tum z+|2OIy8PreVsO$)H&6eM$&66YPaf6kV6oSf{ld=S(326V6`AozJAcd;sFNQD%oRDk zo!k@R>aO2Hnf;mM7mfS*`+j|WeUH$Sr=FbGTGxfCG@5q1+U|E()-HN|avtEZruFQn z}hwbL}2@3ij-^J{M+^q{=}A{{*cj1xO)HcGh^+X6pkIKXSLW!^6Wfzx&71 z7O8o!uN3K8Y%eV2Z11UOI8W>EF4|bx^jlv5Lv8d3ul6bF`TBPWTiPcWbhu}*^jvy& z)B4Q%w#$P)Il5=#W` z&7a3-o$di7=jrYz|6PiDfarVX4)d7Y2@4jJlETL$InIHTdS*n8nB9X06L=}s?N+?W z=)f72Hkb2K6FjO_Z)ONhD{-05$OQa;W&G-v=-WpZZd?_2*K`w5xq8ONG2)PTl{SQ= zG^(gh7%$ACeaVINJY4~zTuer1t)6mb4036|{qf|NukUi5=3Mr_tly6k@H`t^3_I7$9SO1jH8cxi7$%d-)IRjsK)j@q_bw9%Z0N{Ee}1+yDMX&A0RZLrYtK zih+xp7Gwnjw@ib?0)Fl8GGI2@D2Ye>b2Ieh$9z9R^W0Pyz33ORA9tw1onfbM!vKBOQEtl_me1V)pTKY_MvTgak6rC-p zXvm}G=9fk;pL++0XMQP6{v%0w2fZjewT<-bTmTnr?5ISr``h5}l*bn@a6Ur+^*&+B z=ABw;&|(N&mW+!5L)#`)-WNpQ^qD(m1F^mB_qTf6l$-<5!^Oqnr>!jS+kd*O4*h=L z8BE(=@$~{2Bk6ClPl3E5WpGHu4q*@9wl%Yxq6p4a)6yUj@ppE0yDHcE1Huu0 z?hmQQT~fpgGP(~fKTjebgUfm}o|c)J)QH{mo83sosW!ar$4X4nym_)hJAzVM+5{CBD+z zO-MH%ruqBS9|sF|k#8D&uYf-$W46608uIpjPlGAeCD-0_XJcc-@C_63HYZmq3u=qw zh|}Q4_ah6T8 zd~@nRdm;PL1?sDz#UVdG|N6t?M}EGdQxHO$Ub#6au3IU1HJErcNUl7)x}oD?F{*y& zxNquw^I&Nr5ejQL{UsvZq|PLf*5bliDR>3^^4DL9%O^h;yD~2iD4as@=la>@kdB1D i7cS(-Kd-mU9MjBH+-{Oaup@{)hhd5u3K+TP@BR;U&nr~` literal 0 HcmV?d00001