From 27812b089416e38f70582c4538d2f99561fb70f8 Mon Sep 17 00:00:00 2001 From: Aman Tahiliani <65684756+AmanTahiliani@users.noreply.github.com> Date: Fri, 11 Dec 2020 23:00:08 +0530 Subject: [PATCH] Changed --- Hello.py | 212 ----------------------------------- Hello1.py | 221 ------------------------------------- Hello2.py | 225 -------------------------------------- Hello3.py | 243 ----------------------------------------- Hello4.py | 229 -------------------------------------- Hello5.py | 267 --------------------------------------------- Hello5final.py | 291 ------------------------------------------------- RETRO.png | Bin 53857 -> 0 bytes RETRO1.png | Bin 86809 -> 0 bytes VideoTrial.py | 277 ---------------------------------------------- mygame.py | 120 -------------------- mygame1.py | 215 ------------------------------------ 12 files changed, 2300 deletions(-) delete mode 100644 Hello.py delete mode 100644 Hello1.py delete mode 100644 Hello2.py delete mode 100644 Hello3.py delete mode 100644 Hello4.py delete mode 100644 Hello5.py delete mode 100644 Hello5final.py delete mode 100644 RETRO.png delete mode 100644 RETRO1.png delete mode 100644 VideoTrial.py delete mode 100644 mygame.py delete mode 100644 mygame1.py diff --git a/Hello.py b/Hello.py deleted file mode 100644 index 9d6c594..0000000 --- a/Hello.py +++ /dev/null @@ -1,212 +0,0 @@ -import pygame -import sys - - -def player_animation(): - new_player = player_frames[player_index] - new_player_rect = new_player.get_rect(center=(250, player_rect.centery)) - return new_player, new_player_rect - - -class bullets(object): - # Bullet class - def __init__(self, x, y, length, breadth, color): - self.x = x - self.y = y - self.length = length - self.breadth = breadth - self.color = color - self.velocity = 10 - - def drawbullet(self, screen): - pygame.draw.rect(screen, self.color, pygame.Rect( - self.x, self.y, self.length, self.breadth)) - - -# class obstacles(object): -# # Obstacle class -# def __init__(self, obstacle, x, y, height, width): -# self.image = obstacle -# self.x = x -# self.y = y -# self.height = height -# self.width = width -# self.box = (x, y, width, height) -# self.velocity = 1 - -# def drawobstacle(self, screen): -# self.box = (self.x, self.y, self.width-10, self.height) -# screen.blit(pygame.transform.scale( -# self.image, (64, 64)), (self.x, self.y)) -# pygame.draw.rect(screen, (255, 0, 0), self.box, 2) - - -def create_pipe(): - new_pipe = pipe_suface.get_rect(midtop=(1020, 452)) - return new_pipe - - -def move_pipes(pipes): - for pipe in pipes: - pipe.centerx -= 15 - return pipes - - -def draw_pipes(pipes): - for pipe in pipes: - screen.blit(pipe_suface, pipe) - - -def drawfloor(): - - screen.blit(landimg, (floor_x_pos, 550)) - screen.blit(landimg, (floor_x_pos+500, 550)) - screen.blit(landimg, (floor_x_pos+1000, 550)) - screen.blit(landimg, (floor_x_pos+1500, 550)) - screen.blit(landimg, (floor_x_pos+2000, 550)) - screen.blit(landimg, (floor_x_pos+2500, 550)) - - # if pno==1: - # screen.blit(player1,(200,237)) - # elif pno==2: - # screen.blit(player2,(200,237)) - # elif pno==3: - # screen.blit(player3,(200,237)) - # elif pno==4: - # screen.blit(player4,(200,237)) - # elif pno==5: - # screen.blit(player5,(200,237)) - # elif pno==6: - # screen.blit(player6,(200,237)) - # elif pno==7: - # screen.blit(player7,(200,237)) - # elif pno==8: - # screen.blit(player8,(200,237)) - # elif pno==9: - # screen.blit(player9,(200,237)) - # elif pno==10: - # screen.blit(player10,(200,237)) - - -pygame.init() -screen = pygame.display.set_mode((1024, 768)) -clock = pygame.time.Clock() - -player_movement = 0 -gravity = 0.25 -game_active = True - -bkgimg = pygame.image.load('Assets\game_background_1.png').convert() -bkgimg = pygame.transform.scale(bkgimg, (1024, 600)) -landimg = pygame.image.load('Assets/moon.jpeg').convert() -player1 = pygame.image.load('Assets/Player/player1.png').convert() -player2 = pygame.image.load('Assets/Player/player2.png').convert() -player3 = pygame.image.load('Assets/Player/player3.png').convert() -player4 = pygame.image.load('Assets/Player/player4.png').convert() -player5 = pygame.image.load('Assets/Player/player5.png').convert() -player6 = pygame.image.load('Assets/Player/player6.png').convert() -player7 = pygame.image.load('Assets/Player/player7.png').convert() -player8 = pygame.image.load('Assets/Player/player8.png').convert() -player9 = pygame.image.load('Assets/Player/player9.png').convert() -player10 = pygame.image.load('Assets/Player/player10.png').convert() -deathstar = pygame.image.load('Assets/deathstar1.jpg').convert() -# obstacle = pygame.image.load('Assets/Obstacles/1.jpg').convert() - - -# Pipes image. -pipe_surface = pygame.image.load('assets/Obstacles/pipe-green.png').convert() -pipe_suface = pygame.transform.scale2x(pipe_surface) -pipe_list = [] -SPAWNPIPE = pygame.USEREVENT -pygame.time.set_timer(SPAWNPIPE, 3000) - - -player_frames = [player1, player2, player3, player4, - player5, player6, player7, player8, player9, player10] -player_index = 0 -player_surface = player_frames[player_index] -player_rect = player_surface.get_rect(center=(250, 492)) - -PLAYERRUN = pygame.USEREVENT + 1 -pygame.time.set_timer(PLAYERRUN, 100) - -floor_x_pos = 0 -pno = 1 - -bullet_list = [] -obstacle_list = [] -# obstacle_list.append(obstacles(obstacle, 1000, 200, 64, 64)) - -while True: - for event in pygame.event.get(): - if event.type == pygame.QUIT: - pygame.quit() - sys.exit() - if event.type == pygame.KEYDOWN: - if event.key == pygame.K_SPACE and game_active: - if player_rect.centery == 492: - player_movement = 0 - gravity = 0.25 - while player_movement != -12: - player_movement -= gravity - - if event.type == PLAYERRUN: - if player_index < 9: - player_index += 1 - else: - player_index = 0 - player_surface, player_rect = player_animation() - - if event.type == SPAWNPIPE: - pipe_list.append(create_pipe()) - - for bullet in bullet_list: - if bullet.x < 1024 and bullet.x > 0: - bullet.x += bullet.velocity - else: - bullet_list.pop(bullet_list.index(bullet)) - # obstacle_list.append(obstacles(obstacle, 1000, 200, 64, 64)) - - screen.blit(bkgimg, (0, 0)) - - if game_active == True: - if player_rect.centery == 492: - gravity = 0 - elif player_rect.centery < 492: - gravity = 0.25 - - else: - gravity = 0 - player_rect.centery = 492 - player_movement = 0 - keys = pygame.key.get_pressed() - if keys[pygame.K_END]: - if(len(bullet_list) < 1): - bullet_list.append( - bullets(250, player_rect.centery, 15, 3, (255, 255, 153))) - for bullet in bullet_list: - bullet.drawbullet(screen) - # for obs in obstacle_list: - # obs.drawobstacle(screen) - - player_movement += gravity - player_rect.centery += player_movement - screen.blit(player_surface, player_rect) - - floor_x_pos -= 5 - - pipe_list = move_pipes(pipe_list) - draw_pipes(pipe_list) - drawfloor() - if floor_x_pos <= -2000: - floor_x_pos = 0 - # for ob in obstacle_list: - # if ob.x > 0: - # obstacle_list.append( - # obstacles(obstacle, ob.x-ob.velocity, 200, 64, 64)) - # obstacle_list.pop(obstacle_list.index(ob)) - # else: - # obstacle_list.pop(obstacle_list.index(ob)) - - pygame.display.update() - clock.tick(120) diff --git a/Hello1.py b/Hello1.py deleted file mode 100644 index 99f725b..0000000 --- a/Hello1.py +++ /dev/null @@ -1,221 +0,0 @@ -import pygame -import sys - - -def player_animation(): - new_player = player_frames[player_index] - new_player_rect = new_player.get_rect(center=(250, player_rect.centery)) - return new_player, new_player_rect - - -class bullets(object): - # Bullet class - def __init__(self, x, y, length, breadth, color): - self.x = x - self.y = y - self.length = length - self.breadth = breadth - self.color = color - self.velocity = 10 - - def drawbullet(self, screen): - pygame.draw.rect(screen, self.color, pygame.Rect( - self.x, self.y, self.length, self.breadth)) - - -# class obstacles(object): -# # Obstacle class -# def __init__(self, obstacle, x, y, height, width): -# self.image = obstacle -# self.x = x -# self.y = y -# self.height = height -# self.width = width -# self.box = (x, y, width, height) -# self.velocity = 1 - -# def drawobstacle(self, screen): -# self.box = (self.x, self.y, self.width-10, self.height) -# screen.blit(pygame.transform.scale( -# self.image, (64, 64)), (self.x, self.y)) -# pygame.draw.rect(screen, (255, 0, 0), self.box, 2) - - -def create_pipe(): - new_pipe = pipe_suface.get_rect(midtop=(1020, 452)) - return new_pipe - - -def move_pipes(pipes): - for pipe in pipes: - pipe.centerx -= 15 - return pipes - - -def draw_pipes(pipes): - for pipe in pipes: - screen.blit(pipe_suface, pipe) - - -def check_collision(pipes): - for pipe in pipes: - if player_rect.colliderect(pipe): - hit_sound.play() - return False - return True - - -def drawfloor(): - - screen.blit(landimg, (floor_x_pos, 550)) - screen.blit(landimg, (floor_x_pos+500, 550)) - screen.blit(landimg, (floor_x_pos+1000, 550)) - screen.blit(landimg, (floor_x_pos+1500, 550)) - screen.blit(landimg, (floor_x_pos+2000, 550)) - screen.blit(landimg, (floor_x_pos+2500, 550)) - - # if pno==1: - # screen.blit(player1,(200,237)) - # elif pno==2: - # screen.blit(player2,(200,237)) - # elif pno==3: - # screen.blit(player3,(200,237)) - # elif pno==4: - # screen.blit(player4,(200,237)) - # elif pno==5: - # screen.blit(player5,(200,237)) - # elif pno==6: - # screen.blit(player6,(200,237)) - # elif pno==7: - # screen.blit(player7,(200,237)) - # elif pno==8: - # screen.blit(player8,(200,237)) - # elif pno==9: - # screen.blit(player9,(200,237)) - # elif pno==10: - # screen.blit(player10,(200,237)) - - -pygame.init() -screen = pygame.display.set_mode((1024, 768)) -clock = pygame.time.Clock() - -player_movement = 0 -gravity = 0.25 -game_active = True - -bkgimg = pygame.image.load('Assets\game_background_1.png').convert() -bkgimg = pygame.transform.scale(bkgimg, (1024, 600)) -landimg = pygame.image.load('Assets/moon.jpeg').convert() -player1 = pygame.image.load('Assets/Player/player1.png').convert() -player2 = pygame.image.load('Assets/Player/player2.png').convert() -player3 = pygame.image.load('Assets/Player/player3.png').convert() -player4 = pygame.image.load('Assets/Player/player4.png').convert() -player5 = pygame.image.load('Assets/Player/player5.png').convert() -player6 = pygame.image.load('Assets/Player/player6.png').convert() -player7 = pygame.image.load('Assets/Player/player7.png').convert() -player8 = pygame.image.load('Assets/Player/player8.png').convert() -player9 = pygame.image.load('Assets/Player/player9.png').convert() -player10 = pygame.image.load('Assets/Player/player10.png').convert() -deathstar = pygame.image.load('Assets/deathstar1.jpg').convert() -# obstacle = pygame.image.load('Assets/Obstacles/1.jpg').convert() - - -# Pipes image. -pipe_surface = pygame.image.load('assets/Obstacles/pipe-green.png').convert() -pipe_suface = pygame.transform.scale2x(pipe_surface) -pipe_list = [] -SPAWNPIPE = pygame.USEREVENT -pygame.time.set_timer(SPAWNPIPE, 2500) - - -player_frames = [player1, player2, player3, player4, - player5, player6, player7, player8, player9, player10] -player_index = 0 -player_surface = player_frames[player_index] -player_rect = player_surface.get_rect(center=(250, 492)) - -PLAYERRUN = pygame.USEREVENT + 1 -pygame.time.set_timer(PLAYERRUN, 100) - -floor_x_pos = 0 -pno = 1 - -bullet_list = [] -obstacle_list = [] -# obstacle_list.append(obstacles(obstacle, 1000, 200, 64, 64)) - -while True: - for event in pygame.event.get(): - if event.type == pygame.QUIT: - pygame.quit() - sys.exit() - if event.type == pygame.KEYDOWN: - if event.key == pygame.K_SPACE and game_active: - if player_rect.centery == 492: - player_movement = 0 - gravity = 0.25 - while player_movement != -12: - player_movement -= gravity - - if event.type == PLAYERRUN: - if player_index < 9: - player_index += 1 - else: - player_index = 0 - player_surface, player_rect = player_animation() - - if event.type == SPAWNPIPE: - pipe_list.append(create_pipe()) - - for bullet in bullet_list: - if bullet.x < 1024 and bullet.x > 0: - bullet.x += bullet.velocity - else: - bullet_list.pop(bullet_list.index(bullet)) - # obstacle_list.append(obstacles(obstacle, 1000, 200, 64, 64)) - - screen.blit(bkgimg, (0, 0)) - - if game_active == True: - if player_rect.centery == 492: - gravity = 0 - elif player_rect.centery < 492: - gravity = 0.25 - - else: - gravity = 0 - player_rect.centery = 492 - player_movement = 0 - keys = pygame.key.get_pressed() - if keys[pygame.K_END]: - if(len(bullet_list) < 1): - bullet_list.append( - bullets(250, player_rect.centery, 15, 3, (255, 255, 153))) - for bullet in bullet_list: - bullet.drawbullet(screen) - # for obs in obstacle_list: - # obs.drawobstacle(screen) - - player_movement += gravity - player_rect.centery += player_movement - screen.blit(player_surface, player_rect) - game_active = check_collision(pipe_list) - - floor_x_pos -= 5 - - pipe_list = move_pipes(pipe_list) - draw_pipes(pipe_list) - drawfloor() - if floor_x_pos <= -2000: - floor_x_pos = 0 - # for ob in obstacle_list: - # if ob.x > 0: - # obstacle_list.append( - # obstacles(obstacle, ob.x-ob.velocity, 200, 64, 64)) - # obstacle_list.pop(obstacle_list.index(ob)) - # else: - # obstacle_list.pop(obstacle_list.index(ob)) - - pygame.display.update() - clock.tick(120) diff --git a/Hello2.py b/Hello2.py deleted file mode 100644 index fe416e1..0000000 --- a/Hello2.py +++ /dev/null @@ -1,225 +0,0 @@ -import pygame -import sys - - -def player_animation(): - new_player = player_frames[player_index] - new_player_rect = new_player.get_rect(center=(250, player_rect.centery)) - return new_player, new_player_rect - - -class bullets(object): - # Bullet class - def __init__(self, x, y, length, breadth, color): - self.x = x - self.y = y - self.length = length - self.breadth = breadth - self.color = color - self.velocity = 10 - - def drawbullet(self, screen): - pygame.draw.rect(screen, self.color, pygame.Rect( - self.x, self.y, self.length, self.breadth)) - - -# class obstacles(object): -# # Obstacle class -# def __init__(self, obstacle, x, y, height, width): -# self.image = obstacle -# self.x = x -# self.y = y -# self.height = height -# self.width = width -# self.box = (x, y, width, height) -# self.velocity = 1 - -# def drawobstacle(self, screen): -# self.box = (self.x, self.y, self.width-10, self.height) -# screen.blit(pygame.transform.scale( -# self.image, (64, 64)), (self.x, self.y)) -# pygame.draw.rect(screen, (255, 0, 0), self.box, 2) - - -def create_pipe(): - new_pipe = pipe_suface.get_rect(midtop=(1020, 452)) - return new_pipe - - -def move_pipes(pipes): - for pipe in pipes: - pipe.centerx -= 15 - return pipes - - -def draw_pipes(pipes): - for pipe in pipes: - screen.blit(pipe_suface, pipe) - -def check_collision(pipes): - for pipe in pipes: - if player_rect.colliderect(pipe): - hit_sound.play() - return False - return True - - -def drawfloor(): - - screen.blit(landimg, (floor_x_pos, 550)) - screen.blit(landimg, (floor_x_pos+500, 550)) - screen.blit(landimg, (floor_x_pos+1000, 550)) - screen.blit(landimg, (floor_x_pos+1500, 550)) - screen.blit(landimg, (floor_x_pos+2000, 550)) - screen.blit(landimg, (floor_x_pos+2500, 550)) - - # if pno==1: - # screen.blit(player1,(200,237)) - # elif pno==2: - # screen.blit(player2,(200,237)) - # elif pno==3: - # screen.blit(player3,(200,237)) - # elif pno==4: - # screen.blit(player4,(200,237)) - # elif pno==5: - # screen.blit(player5,(200,237)) - # elif pno==6: - # screen.blit(player6,(200,237)) - # elif pno==7: - # screen.blit(player7,(200,237)) - # elif pno==8: - # screen.blit(player8,(200,237)) - # elif pno==9: - # screen.blit(player9,(200,237)) - # elif pno==10: - # screen.blit(player10,(200,237)) - - -pygame.init() -screen = pygame.display.set_mode((1024, 768)) -clock = pygame.time.Clock() - -player_movement = 0 -gravity = 0.25 -game_active = True - -bkgimg = pygame.image.load('Assets\game_background_1.png').convert() -bkgimg = pygame.transform.scale(bkgimg, (1024, 600)) -landimg = pygame.image.load('Assets/moon.jpeg').convert() -player1 = pygame.image.load('Assets/Player/player1.png').convert() -player2 = pygame.image.load('Assets/Player/player2.png').convert() -player3 = pygame.image.load('Assets/Player/player3.png').convert() -player4 = pygame.image.load('Assets/Player/player4.png').convert() -player5 = pygame.image.load('Assets/Player/player5.png').convert() -player6 = pygame.image.load('Assets/Player/player6.png').convert() -player7 = pygame.image.load('Assets/Player/player7.png').convert() -player8 = pygame.image.load('Assets/Player/player8.png').convert() -player9 = pygame.image.load('Assets/Player/player9.png').convert() -player10 = pygame.image.load('Assets/Player/player10.png').convert() -deathstar = pygame.image.load('Assets/deathstar1.jpg').convert() -# obstacle = pygame.image.load('Assets/Obstacles/1.jpg').convert() - - -# Pipes image. -pipe_surface = pygame.image.load('assets/Obstacles/pipe-green.png').convert() -pipe_suface = pygame.transform.scale2x(pipe_surface) -pipe_list = [] -SPAWNPIPE = pygame.USEREVENT -pygame.time.set_timer(SPAWNPIPE, 3000) - - -player_frames = [player1, player2, player3, player4, - player5, player6, player7, player8, player9, player10] -player_index = 0 -player_surface = player_frames[player_index] -player_rect = player_surface.get_rect(center=(250, 492)) - -PLAYERRUN = pygame.USEREVENT + 1 -pygame.time.set_timer(PLAYERRUN, 100) - -floor_x_pos = 0 -pno = 1 - -#sound effects -hit_sound = pygame.mixer.Sound('assets/sounds/sound_effects/Hit.ogg') -point_sound = pygame.mixer.Sound('assets/sounds/sound_effects/Point.ogg') -point_sound_count = 100 - -bullet_list = [] -obstacle_list = [] -# obstacle_list.append(obstacles(obstacle, 1000, 200, 64, 64)) - -while True: - for event in pygame.event.get(): - if event.type == pygame.QUIT: - pygame.quit() - sys.exit() - if event.type == pygame.KEYDOWN: - if event.key == pygame.K_SPACE and game_active: - if player_rect.centery == 492: - player_movement = 0 - gravity = 0.25 - while player_movement != -12: - player_movement -= gravity - - if event.type == PLAYERRUN: - if player_index < 9: - player_index += 1 - else: - player_index = 0 - player_surface, player_rect = player_animation() - - if event.type == SPAWNPIPE: - pipe_list.append(create_pipe()) - - for bullet in bullet_list: - if bullet.x < 1024 and bullet.x > 0: - bullet.x += bullet.velocity - else: - bullet_list.pop(bullet_list.index(bullet)) - # obstacle_list.append(obstacles(obstacle, 1000, 200, 64, 64)) - - screen.blit(bkgimg, (0, 0)) - - if game_active == True: - if player_rect.centery == 492: - gravity = 0 - elif player_rect.centery < 492: - gravity = 0.25 - - else: - gravity = 0 - player_rect.centery = 492 - player_movement = 0 - keys = pygame.key.get_pressed() - if keys[pygame.K_END]: - if(len(bullet_list) < 1): - bullet_list.append( - bullets(250, player_rect.centery, 15, 3, (255, 255, 153))) - for bullet in bullet_list: - bullet.drawbullet(screen) - # for obs in obstacle_list: - # obs.drawobstacle(screen) - - player_movement += gravity - player_rect.centery += player_movement - screen.blit(player_surface, player_rect) - game_active = check_collision(pipe_list) - - floor_x_pos -= 5 - - pipe_list = move_pipes(pipe_list) - draw_pipes(pipe_list) - drawfloor() - if floor_x_pos <= -2000: - floor_x_pos = 0 - # for ob in obstacle_list: - # if ob.x > 0: - # obstacle_list.append( - # obstacles(obstacle, ob.x-ob.velocity, 200, 64, 64)) - # obstacle_list.pop(obstacle_list.index(ob)) - # else: - # obstacle_list.pop(obstacle_list.index(ob)) - - pygame.display.update() - clock.tick(120) diff --git a/Hello3.py b/Hello3.py deleted file mode 100644 index fbc28bf..0000000 --- a/Hello3.py +++ /dev/null @@ -1,243 +0,0 @@ -import pygame -import sys - - -def player_animation(): - new_player = player_frames[player_index] - new_player_rect = new_player.get_rect(center=(250, player_rect.centery)) - return new_player, new_player_rect - - -class bullets(object): - # Bullet class - def __init__(self, x, y, length, breadth, color): - self.x = x - self.y = y - self.length = length - self.breadth = breadth - self.color = color - self.velocity = 10 - - def drawbullet(self, screen): - pygame.draw.rect(screen, self.color, pygame.Rect( - self.x, self.y, self.length, self.breadth)) - - -# class obstacles(object): -# # Obstacle class -# def __init__(self, obstacle, x, y, height, width): -# self.image = obstacle -# self.x = x -# self.y = y -# self.height = height -# self.width = width -# self.box = (x, y, width, height) -# self.velocity = 1 - -# def drawobstacle(self, screen): -# self.box = (self.x, self.y, self.width-10, self.height) -# screen.blit(pygame.transform.scale( -# self.image, (64, 64)), (self.x, self.y)) -# pygame.draw.rect(screen, (255, 0, 0), self.box, 2) - - -def create_pipe(): - new_pipe = pipe_suface.get_rect(midtop=(1020, 452)) - return new_pipe - - -def move_pipes(pipes): - for pipe in pipes: - pipe.centerx -= 15 - return pipes - - -def draw_pipes(pipes): - for pipe in pipes: - screen.blit(pipe_suface, pipe) - - -def check_collision(pipes): - for pipe in pipes: - if player_rect.colliderect(pipe): - hit_sound.play() - return False - return True - - -def drawfloor(): - - screen.blit(landimg, (floor_x_pos, 550)) - screen.blit(landimg, (floor_x_pos+500, 550)) - screen.blit(landimg, (floor_x_pos+1000, 550)) - screen.blit(landimg, (floor_x_pos+1500, 550)) - screen.blit(landimg, (floor_x_pos+2000, 550)) - screen.blit(landimg, (floor_x_pos+2500, 550)) - - # if pno==1: - # screen.blit(player1,(200,237)) - # elif pno==2: - # screen.blit(player2,(200,237)) - # elif pno==3: - # screen.blit(player3,(200,237)) - # elif pno==4: - # screen.blit(player4,(200,237)) - # elif pno==5: - # screen.blit(player5,(200,237)) - # elif pno==6: - # screen.blit(player6,(200,237)) - # elif pno==7: - # screen.blit(player7,(200,237)) - # elif pno==8: - # screen.blit(player8,(200,237)) - # elif pno==9: - # screen.blit(player9,(200,237)) - # elif pno==10: - # screen.blit(player10,(200,237)) - - -pygame.mixer.pre_init(frequency=44100, size=16, channels=1, buffer=512) -pygame.init() -screen = pygame.display.set_mode((1024, 768)) -clock = pygame.time.Clock() - -player_movement = 0 -gravity = 0.25 -game_active = True - -BLACK = (0, 0, 0) - -bkgimg = pygame.image.load('Assets/bkimg23.jpg').convert() -# bkgimg = pygame.image.load('Assets/sky.png').convert() -bkgimg = pygame.transform.scale(bkgimg, (1024, 600)) -# landimg = pygame.image.load('Assets/moon.jpeg').convert() -landimg = pygame.image.load('Assets/landing2.png').convert() -landimg = pygame.transform.scale(landimg, (1024, 768)) -player1 = pygame.image.load('Assets/Player/player1.png').convert() -player1.set_colorkey(BLACK) -player2 = pygame.image.load('Assets/Player/player2.png').convert() -player2.set_colorkey(BLACK) -player3 = pygame.image.load('Assets/Player/player3.png').convert() -player3.set_colorkey(BLACK) -player4 = pygame.image.load('Assets/Player/player4.png').convert() -player4.set_colorkey(BLACK) -player5 = pygame.image.load('Assets/Player/player5.png').convert() -player5.set_colorkey(BLACK) -player6 = pygame.image.load('Assets/Player/player6.png').convert() -player6.set_colorkey(BLACK) -player7 = pygame.image.load('Assets/Player/player7.png').convert() -player7.set_colorkey(BLACK) -player8 = pygame.image.load('Assets/Player/player8.png').convert() -player8.set_colorkey(BLACK) -player9 = pygame.image.load('Assets/Player/player9.png').convert() -player9.set_colorkey(BLACK) -player10 = pygame.image.load('Assets/Player/player10.png').convert() -player10.set_colorkey(BLACK) -deathstar = pygame.image.load('Assets/deathstar1.jpg').convert() -# obstacle = pygame.image.load('Assets/Obstacles/1.jpg').convert() - - -# Pipes image. -pipe_surface = pygame.image.load('assets/Obstacles/pipe-green.png').convert() -pipe_suface = pygame.transform.scale2x(pipe_surface) -pipe_list = [] -SPAWNPIPE = pygame.USEREVENT -pygame.time.set_timer(SPAWNPIPE, 2000) - - -player_frames = [player1, player2, player3, player4, - player5, player6, player7, player8, player9, player10] -player_index = 0 -player_surface = player_frames[player_index] -player_rect = player_surface.get_rect(center=(250, 492)) - -PLAYERRUN = pygame.USEREVENT + 1 -pygame.time.set_timer(PLAYERRUN, 100) - -floor_x_pos = 0 -pno = 1 - -# sound effects -hit_sound = pygame.mixer.Sound('assets/sounds/sound_effects/Hit.ogg') -point_sound = pygame.mixer.Sound('assets/sounds/sound_effects/Point.ogg') -point_sound_count = 100 - -bullet_list = [] -obstacle_list = [] -# obstacle_list.append(obstacles(obstacle, 1000, 200, 64, 64)) - -while True: - for event in pygame.event.get(): - if event.type == pygame.QUIT: - pygame.quit() - sys.exit() - if event.type == pygame.KEYDOWN: - if event.key == pygame.K_SPACE and game_active: - point_sound.play() - if player_rect.centery == 492: - player_movement = 0 - gravity = 0.25 - while player_movement != -12: - player_movement -= gravity - - if event.type == PLAYERRUN: - if player_index < 9: - player_index += 1 - else: - player_index = 0 - player_surface, player_rect = player_animation() - - if event.type == SPAWNPIPE: - pipe_list.append(create_pipe()) - - for bullet in bullet_list: - if bullet.x < 1024 and bullet.x > 0: - bullet.x += bullet.velocity - else: - bullet_list.pop(bullet_list.index(bullet)) - # obstacle_list.append(obstacles(obstacle, 1000, 200, 64, 64)) - - screen.blit(bkgimg, (0, 0)) - - if game_active == True: - if player_rect.centery == 492: - gravity = 0 - elif player_rect.centery < 492: - gravity = 0.25 - - else: - gravity = 0 - player_rect.centery = 492 - player_movement = 0 - keys = pygame.key.get_pressed() - if keys[pygame.K_END]: - if(len(bullet_list) < 1): - bullet_list.append( - bullets(250, player_rect.centery, 15, 3, (255, 255, 153))) - for bullet in bullet_list: - bullet.drawbullet(screen) - # for obs in obstacle_list: - # obs.drawobstacle(screen) - - player_movement += gravity - player_rect.centery += player_movement - screen.blit(player_surface, player_rect) - game_active = check_collision(pipe_list) - - floor_x_pos -= 5 - - pipe_list = move_pipes(pipe_list) - draw_pipes(pipe_list) - drawfloor() - if floor_x_pos <= -2000: - floor_x_pos = 0 - # for ob in obstacle_list: - # if ob.x > 0: - # obstacle_list.append( - # obstacles(obstacle, ob.x-ob.velocity, 200, 64, 64)) - # obstacle_list.pop(obstacle_list.index(ob)) - # else: - # obstacle_list.pop(obstacle_list.index(ob)) - - pygame.display.update() - clock.tick(120) diff --git a/Hello4.py b/Hello4.py deleted file mode 100644 index 5897165..0000000 --- a/Hello4.py +++ /dev/null @@ -1,229 +0,0 @@ -import pygame -import sys - - -def player_animation(): - new_player = player_frames[player_index] - new_player_rect = new_player.get_rect(center=(250, player_rect.centery)) - return new_player, new_player_rect - - -class bullets(object): - # Bullet class - def __init__(self, x, y, length, breadth, color): - self.x = x - self.y = y - self.length = length - self.breadth = breadth - self.color = color - self.velocity = 10 - - def drawbullet(self, screen): - pygame.draw.rect(screen, self.color, pygame.Rect( - self.x, self.y, self.length, self.breadth)) - - -# class obstacles(object): -# # Obstacle class -# def __init__(self, obstacle, x, y, height, width): -# self.image = obstacle -# self.x = x -# self.y = y -# self.height = height -# self.width = width -# self.box = (x, y, width, height) -# self.velocity = 1 - -# def drawobstacle(self, screen): -# self.box = (self.x, self.y, self.width-10, self.height) -# screen.blit(pygame.transform.scale( -# self.image, (64, 64)), (self.x, self.y)) -# pygame.draw.rect(screen, (255, 0, 0), self.box, 2) - - -def create_pipe(): - new_pipe = pipe_suface.get_rect(midtop=(1020, 452)) - return new_pipe - - -def move_pipes(pipes): - for pipe in pipes: - pipe.centerx -= 15 - return pipes - - -def draw_pipes(pipes): - for pipe in pipes: - screen.blit(pipe_suface, pipe) - - -def check_collision(pipes): - for pipe in pipes: - if player_rect.colliderect(pipe): - hit_sound.play() - return False - return True - - -def drawfloor(): - - screen.blit(landimg, (floor_x_pos, 550)) - screen.blit(landimg, (floor_x_pos+500, 550)) - screen.blit(landimg, (floor_x_pos+1000, 550)) - screen.blit(landimg, (floor_x_pos+1500, 550)) - screen.blit(landimg, (floor_x_pos+2000, 550)) - screen.blit(landimg, (floor_x_pos+2500, 550)) - - # if pno==1: - # screen.blit(player1,(200,237)) - # elif pno==2: - # screen.blit(player2,(200,237)) - # elif pno==3: - # screen.blit(player3,(200,237)) - # elif pno==4: - # screen.blit(player4,(200,237)) - # elif pno==5: - # screen.blit(player5,(200,237)) - # elif pno==6: - # screen.blit(player6,(200,237)) - # elif pno==7: - # screen.blit(player7,(200,237)) - # elif pno==8: - # screen.blit(player8,(200,237)) - # elif pno==9: - # screen.blit(player9,(200,237)) - # elif pno==10: - # screen.blit(player10,(200,237)) - - -pygame.mixer.pre_init(frequency=44100, size=16, channels=1, buffer=512) -pygame.init() -screen = pygame.display.set_mode((1024, 768)) -clock = pygame.time.Clock() - -player_movement = 0 -gravity = 0.25 -game_active = True -game_on = True - -bkgimg = pygame.image.load('Assets\game_background_1.png').convert() -bkgimg = pygame.transform.scale(bkgimg, (1024, 600)) -landimg = pygame.image.load('Assets/moon.jpeg').convert() -player1 = pygame.image.load('Assets/Player/player1.png').convert() -player2 = pygame.image.load('Assets/Player/player2.png').convert() -player3 = pygame.image.load('Assets/Player/player3.png').convert() -player4 = pygame.image.load('Assets/Player/player4.png').convert() -player5 = pygame.image.load('Assets/Player/player5.png').convert() -player6 = pygame.image.load('Assets/Player/player6.png').convert() -player7 = pygame.image.load('Assets/Player/player7.png').convert() -player8 = pygame.image.load('Assets/Player/player8.png').convert() -player9 = pygame.image.load('Assets/Player/player9.png').convert() -player10 = pygame.image.load('Assets/Player/player10.png').convert() -deathstar = pygame.image.load('Assets/deathstar1.jpg').convert() -# obstacle = pygame.image.load('Assets/Obstacles/1.jpg').convert() - - -# Pipes image. -pipe_surface = pygame.image.load('assets/Obstacles/pipe-green.png').convert() -pipe_suface = pygame.transform.scale2x(pipe_surface) -pipe_list = [] -SPAWNPIPE = pygame.USEREVENT -pygame.time.set_timer(SPAWNPIPE, 3000) - - -player_frames = [player1, player2, player3, player4, - player5, player6, player7, player8, player9, player10] -player_index = 0 -player_surface = player_frames[player_index] -player_rect = player_surface.get_rect(center=(250, 492)) - -PLAYERRUN = pygame.USEREVENT + 1 -pygame.time.set_timer(PLAYERRUN, 100) - -floor_x_pos = 0 -pno = 1 - -# sound effects -hit_sound = pygame.mixer.Sound('assets/sounds/sound_effects/Hit.ogg') -point_sound = pygame.mixer.Sound('assets/sounds/sound_effects/Point.ogg') -point_sound_count = 100 - -bullet_list = [] -obstacle_list = [] -# obstacle_list.append(obstacles(obstacle, 1000, 200, 64, 64)) - -while game_on: - for event in pygame.event.get(): - if event.type == pygame.QUIT: - pygame.quit() - sys.exit() - if event.type == pygame.KEYDOWN: - if event.key == pygame.K_SPACE and game_active: - point_sound.play() - if player_rect.centery == 492: - player_movement = 0 - gravity = 0.25 - while player_movement != -12: - player_movement -= gravity - - if event.type == PLAYERRUN: - if player_index < 9: - player_index += 1 - else: - player_index = 0 - player_surface, player_rect = player_animation() - - if event.type == SPAWNPIPE: - pipe_list.append(create_pipe()) - - for bullet in bullet_list: - if bullet.x < 1024 and bullet.x > 0: - bullet.x += bullet.velocity - else: - bullet_list.pop(bullet_list.index(bullet)) - # obstacle_list.append(obstacles(obstacle, 1000, 200, 64, 64)) - - screen.blit(bkgimg, (0, 0)) - - if game_active == True: - if player_rect.centery == 492: - gravity = 0 - elif player_rect.centery < 492: - gravity = 0.25 - - else: - gravity = 0 - player_rect.centery = 492 - player_movement = 0 - keys = pygame.key.get_pressed() - if keys[pygame.K_END]: - if(len(bullet_list) < 1): - bullet_list.append( - bullets(250, player_rect.centery, 15, 3, (255, 255, 153))) - for bullet in bullet_list: - bullet.drawbullet(screen) - # for obs in obstacle_list: - # obs.drawobstacle(screen) - - player_movement += gravity - player_rect.centery += player_movement - screen.blit(player_surface, player_rect) - game_on = check_collision(pipe_list) - - floor_x_pos -= 5 - - pipe_list = move_pipes(pipe_list) - draw_pipes(pipe_list) - drawfloor() - if floor_x_pos <= -2000: - floor_x_pos = 0 - # for ob in obstacle_list: - # if ob.x > 0: - # obstacle_list.append( - # obstacles(obstacle, ob.x-ob.velocity, 200, 64, 64)) - # obstacle_list.pop(obstacle_list.index(ob)) - # else: - # obstacle_list.pop(obstacle_list.index(ob)) - - pygame.display.update() - clock.tick(120) diff --git a/Hello5.py b/Hello5.py deleted file mode 100644 index 08323ec..0000000 --- a/Hello5.py +++ /dev/null @@ -1,267 +0,0 @@ -import pygame -import sys - - -def player_animation(): - new_player = player_frames[player_index] - new_player_rect = new_player.get_rect(center=(250, player_rect.centery)) - return new_player, new_player_rect - - -class bullets(object): - # Bullet class - def __init__(self, x, y, length, breadth, color): - self.x = x - self.y = y - self.length = length - self.breadth = breadth - self.color = color - self.velocity = 10 - - def drawbullet(self, screen): - pygame.draw.rect(screen, self.color, pygame.Rect( - self.x, self.y, self.length, self.breadth)) - - -# class obstacles(object): -# # Obstacle class -# def __init__(self, obstacle, x, y, height, width): -# self.image = obstacle -# self.x = x -# self.y = y -# self.height = height -# self.width = width -# self.box = (x, y, width, height) -# self.velocity = 1 - -# def drawobstacle(self, screen): -# self.box = (self.x, self.y, self.width-10, self.height) -# screen.blit(pygame.transform.scale( -# self.image, (64, 64)), (self.x, self.y)) -# pygame.draw.rect(screen, (255, 0, 0), self.box, 2) - - -def create_pipe(): - new_pipe = pipe_suface.get_rect(midtop=(1020, 452)) - return new_pipe - - -def move_pipes(pipes): - for pipe in pipes: - pipe.centerx -= 15 - return pipes - - -def draw_pipes(pipes): - for pipe in pipes: - screen.blit(pipe_suface, pipe) - - -def check_collision(pipes): - for pipe in pipes: - if player_rect.colliderect(pipe): - hit_sound.play() - return False - return True - - -def drawfloor(): - - screen.blit(landimg, (floor_x_pos, 550)) - screen.blit(landimg, (floor_x_pos+500, 550)) - screen.blit(landimg, (floor_x_pos+1000, 550)) - screen.blit(landimg, (floor_x_pos+1500, 550)) - screen.blit(landimg, (floor_x_pos+2000, 550)) - screen.blit(landimg, (floor_x_pos+2500, 550)) - - # if pno==1: - # screen.blit(player1,(200,237)) - # elif pno==2: - # screen.blit(player2,(200,237)) - # elif pno==3: - # screen.blit(player3,(200,237)) - # elif pno==4: - # screen.blit(player4,(200,237)) - # elif pno==5: - # screen.blit(player5,(200,237)) - # elif pno==6: - # screen.blit(player6,(200,237)) - # elif pno==7: - # screen.blit(player7,(200,237)) - # elif pno==8: - # screen.blit(player8,(200,237)) - # elif pno==9: - # screen.blit(player9,(200,237)) - # elif pno==10: - # screen.blit(player10,(200,237)) - -def updateFile(): - f = open('scores.txt','r') - file = f.readlines() - last = int(file[0]) - - if last < int(score): - f.close() - file = open('scores.txt', 'w') - file.write(str(score)) - file.close() - - return score - - return last - - -pygame.mixer.pre_init(frequency=44100, size=16, channels=1, buffer=512) -pygame.init() -screen = pygame.display.set_mode((1024, 768)) -clock = pygame.time.Clock() - -player_movement = 0 -gravity = 0.25 -hertz=100 -game_active = True - -BLACK = (0, 0, 0) - -# bkgimg = pygame.image.load('Assets/bkimg23.jpg').convert() -bkgimg = pygame.image.load('Assets/sky.png').convert() -bkgimg = pygame.transform.scale(bkgimg, (1024, 600)) -# landimg = pygame.image.load('Assets/moon.jpeg').convert() -landimg = pygame.image.load('Assets/landing5.png').convert() -landimg = pygame.transform.scale(landimg, (1024, 768)) -player1 = pygame.image.load('Assets/Player/player1.png').convert() -player1.set_colorkey(BLACK) -player2 = pygame.image.load('Assets/Player/player2.png').convert() -player2.set_colorkey(BLACK) -player3 = pygame.image.load('Assets/Player/player3.png').convert() -player3.set_colorkey(BLACK) -player4 = pygame.image.load('Assets/Player/player4.png').convert() -player4.set_colorkey(BLACK) -player5 = pygame.image.load('Assets/Player/player5.png').convert() -player5.set_colorkey(BLACK) -player6 = pygame.image.load('Assets/Player/player6.png').convert() -player6.set_colorkey(BLACK) -player7 = pygame.image.load('Assets/Player/player7.png').convert() -player7.set_colorkey(BLACK) -player8 = pygame.image.load('Assets/Player/player8.png').convert() -player8.set_colorkey(BLACK) -player9 = pygame.image.load('Assets/Player/player9.png').convert() -player9.set_colorkey(BLACK) -player10 = pygame.image.load('Assets/Player/player10.png').convert() -player10.set_colorkey(BLACK) -deathstar = pygame.image.load('Assets/deathstar1.jpg').convert() -# obstacle = pygame.image.load('Assets/Obstacles/1.jpg').convert() - - -# Pipes image. -pipe_surface = pygame.image.load('assets/Obstacles/pipe-green.png').convert() -pipe_suface = pygame.transform.scale2x(pipe_surface) -pipe_list = [] -SPAWNPIPE = pygame.USEREVENT -pygame.time.set_timer(SPAWNPIPE, 2000) - - -player_frames = [player1, player2, player3, player4, - player5, player6, player7, player8, player9, player10] -player_index = 0 -player_surface = player_frames[player_index] -player_rect = player_surface.get_rect(center=(250, 492)) - -PLAYERRUN = pygame.USEREVENT + 1 -pygame.time.set_timer(PLAYERRUN, 100) - -floor_x_pos = 0 -pno = 1 - -# sound effects -hit_sound = pygame.mixer.Sound('assets/sounds/sound_effects/Hit.ogg') -point_sound = pygame.mixer.Sound('assets/sounds/sound_effects/Point.ogg') -point_sound_count = 100 - -bullet_list = [] -obstacle_list = [] -# obstacle_list.append(obstacles(obstacle, 1000, 200, 64, 64)) - -while True: - for event in pygame.event.get(): - if event.type == pygame.QUIT: - pygame.quit() - sys.exit() - if event.type == pygame.KEYDOWN: - if event.key == pygame.K_SPACE and game_active: - point_sound.play() - if player_rect.centery == 492: - player_movement = 0 - gravity = 0.25 - while player_movement != -12: - player_movement -= gravity - - if event.type == PLAYERRUN: - if player_index < 9: - player_index += 1 - else: - player_index = 0 - player_surface, player_rect = player_animation() - - if event.type == SPAWNPIPE: - pipe_list.append(create_pipe()) - - for bullet in bullet_list: - if bullet.x < 1024 and bullet.x > 0: - bullet.x += bullet.velocity - else: - bullet_list.pop(bullet_list.index(bullet)) - # obstacle_list.append(obstacles(obstacle, 1000, 200, 64, 64)) - - screen.blit(bkgimg, (0, 0)) - - if game_active == True: - if player_rect.centery == 492: - gravity = 0 - elif player_rect.centery < 492: - gravity = 0.25 - - else: - gravity = 0 - player_rect.centery = 492 - player_movement = 0 - keys = pygame.key.get_pressed() - if keys[pygame.K_END]: - if(len(bullet_list) < 1): - bullet_list.append( - bullets(250, player_rect.centery, 15, 3, (255, 255, 153))) - for bullet in bullet_list: - bullet.drawbullet(screen) - # for obs in obstacle_list: - # obs.drawobstacle(screen) - - player_movement += gravity - player_rect.centery += player_movement - screen.blit(player_surface, player_rect) - game_active = check_collision(pipe_list) - - floor_x_pos -= 5 - - pipe_list = move_pipes(pipe_list) - draw_pipes(pipe_list) - drawfloor() - if floor_x_pos <= -2000: - floor_x_pos = 0 - # for ob in obstacle_list: - # if ob.x > 0: - # obstacle_list.append( - # obstacles(obstacle, ob.x-ob.velocity, 200, 64, 64)) - # obstacle_list.pop(obstacle_list.index(ob)) - # else: - # obstacle_list.pop(obstacle_list.index(ob)) - score = int(hertz//0.1-999) - largeFont = pygame.font.SysFont('comicsans', 30) - text = largeFont.render('Score: ' + str(score), 1, (255,255,255)) - #largeFont = pygame.font.SysFont('comicsans', 80) - #Best = largeFont.render('Best Score: ' + str(updateFile()),1,(255,255,255)) - screen.blit(text, (800, 10)) - #screen.blit(Best, (600,10)) - - pygame.display.update() - clock.tick(hertz) - hertz+=0.02 diff --git a/Hello5final.py b/Hello5final.py deleted file mode 100644 index 8d8ae2e..0000000 --- a/Hello5final.py +++ /dev/null @@ -1,291 +0,0 @@ -import pygame -import sys - - -def player_animation(): - new_player = player_frames[player_index] - new_player_rect = new_player.get_rect(center=(250, player_rect.centery)) - return new_player, new_player_rect - - -# Bullet class -class bullets(object): - def __init__(self, x, y, length, breadth, color): - self.x = x - self.y = y - self.length = length - self.breadth = breadth - self.color = color - self.velocity = 10 - - def drawbullet(self, screen): - pygame.draw.rect(screen, self.color, pygame.Rect( - self.x, self.y, self.length, self.breadth)) - - -def create_pipe(): - new_pipe = pipe_suface.get_rect(midtop=(1020, 452)) - return new_pipe - - -def move_pipes(pipes): - for pipe in pipes: - pipe.centerx -= 15 - return pipes - - -def draw_pipes(pipes): - for pipe in pipes: - screen.blit(pipe_suface, pipe) - - -def check_collision(pipes): - for pipe in pipes: - if player_rect.colliderect(pipe): - hit_sound.play() - return False - return True - - -def drawfloor(): - - screen.blit(landimg, (floor_x_pos, 550)) - screen.blit(landimg, (floor_x_pos+500, 550)) - screen.blit(landimg, (floor_x_pos+1000, 550)) - screen.blit(landimg, (floor_x_pos+1500, 550)) - screen.blit(landimg, (floor_x_pos+2000, 550)) - screen.blit(landimg, (floor_x_pos+2500, 550)) - - -def updateFile(): - f = open('scores.txt', 'r') - file = f.readlines() - last = int(file[0]) - - if last < int(score): - f.close() - file = open('scores.txt', 'w') - file.write(str(score)) - file.close() - - return score - - return last - - -def score_display(game_state): - if game_state == 'main_game': - score_surface = game_font.render( - str(int(score)), True, (255, 255, 255)) - score_rect = score_surface.get_rect(center=(512, 100)) - screen.blit(score_surface, score_rect) - if game_state == 'game_over': - score_surface = game_font.render(str(score), True, (255, 255, 255)) - score_rect = score_surface.get_rect(center=(580, 300)) - screen.blit(score_surface, score_rect) - - high_score_surface = game_font.render( - str(bestscore), True, (255, 255, 255)) - high_score_rect = high_score_surface.get_rect(center=(600, 400)) - screen.blit(high_score_surface, high_score_rect) - - score_Text = game_font.render('Score: ', True, (255, 255, 255)) - score_Text_rect = score_Text.get_rect(center=(508, 300)) - screen.blit(score_Text, score_Text_rect) - - high_score_Text = game_font.render( - 'High Score: ', True, (255, 255, 255)) - high_score_Text_rect = high_score_Text.get_rect(center=(478, 400)) - screen.blit(high_score_Text, high_score_Text_rect) - - -def update_score(score, high_score): - if score > high_score: - high_score = score - return high_score - - -pygame.mixer.pre_init(frequency=44100, size=16, channels=1, buffer=512) -pygame.init() -screen = pygame.display.set_mode((1024, 768)) -# screen = pygame.display.set_mode((1024, 768), pygame.FULLSCREEN) -clock = pygame.time.Clock() - - -player_movement = 0 -gravity = 0.25 -hertz = 100 -game_active = True -score = 0 - - -BLACK = (0, 0, 0) - -# bkgimg = pygame.image.load('Assets/bkimg23.jpg').convert() # Alternate Background -bkgimg = pygame.image.load('Assets/sky.png').convert() -bkgimg = pygame.transform.scale(bkgimg, (1024, 600)) -# landimg = pygame.image.load('Assets/moon.jpeg').convert() #Alternate Surface -landimg = pygame.image.load('Assets/landing5.png').convert() -# landimg = pygame.image.load('Assets/landing2.png').convert() -landimg = pygame.transform.scale(landimg, (1024, 768)) -player1 = pygame.image.load('Assets/Player/player1.png').convert() -player1.set_colorkey(BLACK) -player2 = pygame.image.load('Assets/Player/player2.png').convert() -player2.set_colorkey(BLACK) -player3 = pygame.image.load('Assets/Player/player3.png').convert() -player3.set_colorkey(BLACK) -player4 = pygame.image.load('Assets/Player/player4.png').convert() -player4.set_colorkey(BLACK) -player5 = pygame.image.load('Assets/Player/player5.png').convert() -player5.set_colorkey(BLACK) -player6 = pygame.image.load('Assets/Player/player6.png').convert() -player6.set_colorkey(BLACK) -player7 = pygame.image.load('Assets/Player/player7.png').convert() -player7.set_colorkey(BLACK) -player8 = pygame.image.load('Assets/Player/player8.png').convert() -player8.set_colorkey(BLACK) -player9 = pygame.image.load('Assets/Player/player9.png').convert() -player9.set_colorkey(BLACK) -player10 = pygame.image.load('Assets/Player/player10.png').convert() -player10.set_colorkey(BLACK) -deathstar = pygame.image.load('Assets/deathstar1.jpg').convert() - - -game_begin_surface = pygame.image.load('Assets/Retro1.png') -game_begin_surface = pygame.transform.scale(game_begin_surface, (1024, 768)) -game_begin_surface_rect = game_begin_surface.get_rect(center=(512, 384)) - -game_over_surface = pygame.image.load('Assets/EndGraphi1.png') -game_over_surface = pygame.transform.scale(game_over_surface, (1024, 768)) -game_over_surface_rect = game_over_surface.get_rect(center=(512, 384)) -game_font = pygame.font.Font( - 'assets/fonts/BigShouldersStencilText-Medium.ttf', 55) - -# Pipes image. -pipe_surface = pygame.image.load('assets/Obstacles/pipe-green.png').convert() -pipe_suface = pygame.transform.scale2x(pipe_surface) -pipe_list = [] -SPAWNPIPE = pygame.USEREVENT -pygame.time.set_timer(SPAWNPIPE, 2000) - - -player_frames = [player1, player2, player3, player4, - player5, player6, player7, player8, player9, player10] -player_index = 0 -player_surface = player_frames[player_index] -player_rect = player_surface.get_rect(center=(250, 492)) - -PLAYERRUN = pygame.USEREVENT + 1 -pygame.time.set_timer(PLAYERRUN, 100) - -floor_x_pos = 0 -pno = 1 - -# sound effects -hit_sound = pygame.mixer.Sound('assets/sounds/sound_effects/Hit.ogg') -point_sound = pygame.mixer.Sound('assets/sounds/sound_effects/Point.ogg') -point_sound_count = 100 - -bullet_list = [] -obstacle_list = [] -MainGame = False -BeginGame = True - - -while BeginGame: - for event in pygame.event.get(): - if event.type == pygame.QUIT: - pygame.quit() - sys.exit() - if event.type == pygame.KEYDOWN: - if event.key == pygame.K_SPACE: - point_sound.play() - hertz = 99.8 - BeginGame = False - MainGame = True - - screen.blit(game_begin_surface, game_begin_surface_rect) - - pygame.display.update() - clock.tick(hertz) - hertz += 0.02 - - -while MainGame: - for event in pygame.event.get(): - if event.type == pygame.QUIT: - pygame.quit() - sys.exit() - if event.type == pygame.KEYDOWN: - if event.key == pygame.K_SPACE and game_active: - point_sound.play() - if player_rect.centery == 492: - player_movement = 0 - gravity = 0.25 - while player_movement != -12: - player_movement -= gravity - elif (event.key == pygame.K_RETURN or event.key == pygame.K_KP_ENTER) and game_active == False: - hertz = 99.6 - game_active = True - - if event.type == PLAYERRUN: - if player_index < 9: - player_index += 1 - else: - player_index = 0 - player_surface, player_rect = player_animation() - - if event.type == SPAWNPIPE: - pipe_list.append(create_pipe()) - - for bullet in bullet_list: - if bullet.x < 1024 and bullet.x > 0: - bullet.x += bullet.velocity - else: - bullet_list.pop(bullet_list.index(bullet)) - - screen.blit(bkgimg, (0, 0)) - - if game_active == True: - if player_rect.centery == 492: - gravity = 0 - elif player_rect.centery < 492: - gravity = 0.25 - - else: - gravity = 0 - player_rect.centery = 492 - player_movement = 0 - keys = pygame.key.get_pressed() - if keys[pygame.K_END]: - if(len(bullet_list) < 1): - bullet_list.append( - bullets(250, player_rect.centery, 15, 3, (255, 255, 153))) - for bullet in bullet_list: - bullet.drawbullet(screen) - - player_movement += gravity - player_rect.centery += player_movement - screen.blit(player_surface, player_rect) - game_active = check_collision(pipe_list) - score_display('main_game') - floor_x_pos -= 5 - - pipe_list = move_pipes(pipe_list) - draw_pipes(pipe_list) - drawfloor() - if floor_x_pos <= -2000: - floor_x_pos = 0 - score = int(hertz//0.1-999) - largeFont = pygame.font.SysFont('comicsans', 30) - text = largeFont.render('Score: ' + str(score), 1, (255, 255, 255)) - largeFont = pygame.font.SysFont('comicsans', 80) - bestscore = updateFile() - else: - pipe_list.clear() - screen.blit(game_over_surface, game_over_surface_rect) - score_display('game_over') - - pygame.display.update() - clock.tick(hertz) - hertz += 0.02 diff --git a/RETRO.png b/RETRO.png deleted file mode 100644 index 76682b4e3d7b6ea8a23912760603c57eb57e969f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53857 zcmd42gDQR|i0?rl5X?8?BJvQ(E$|ivat9UsDlf;w z1iz51EOT zEh&rd;K+rXTzJ^5p3{HOPjvD=sn*QfE?aI z0UP8#&edxNnHb`G{emK4LT)aobVr3ezJ6)EM1fpiio^IF$^GV9f^NvozzyhzkVn^- z&ffliXxJSnM_h-^t&)uY<_xW5tUmti>wBk32l)+UKr3HJAEt zu{(x)iyd=+#>`Vi{qcVr_SD&smi+iPR5r6tQ@+EVK8N}E-#!^ZDIuZHE8^yDs9cgh zH~ac5(|F)lXnefnTvH&o&GLPSpPwK7hr%y-bc%%1ORoPmD)_f{^%f`r@=z71a^P311i@6L5~+oTw-=>Z9=wE90C%x;b)ko$*pD z=Ys*IDAP-%M90-<8jdSZ(B&Oa|93^Qen+hH*+xl2W8;P0`qU3<8k$0z75T^)s*AHW zn==0ZXLft0K7gFRd^qnJ4}QM+M0q@qZR<*mDTgIgTq)c+E9R=T zAa;S>I6{H-_SnpxLGr*yE~m~+iHa|W|Jip*R7gn8a!;zn_&Ev~IrcS$O9Zfi41MA; z+*l1g9UJTnhBcOdKA^fbS;bphTl>Q`2>v&esy#_C={7n(*9!#^LJX(x+j*}Ko}N3| zXT1Jzn{vp&HX$~~YOaYTXRcibX)5Nf{ea$H=Z5QF8gllRdpzCU-Q@){+@8G-BGsC#bl^K%FKTp^ z@+VxLDuZgC4OiXA{m^R3koIrO&4xGZut>S4BXr;lKd76L%{4Gy8;rPkP9ZX2|lP+019vbPi-67uoG z9=2CAa%VjEo=os<(y=0&4#9`jn=NRqVV!0Ft|lBx5k(g`U8Vvau3oqY*K`2B!)>=t zSnmVhNxtx9I^MMXd0)01JS~$HtpK|on@CUUgWW&-wBohjq^6{tk+EpB{{dY5zX)SF zU1I^eY|>pG&E4;C3+3eGTIMKdZ;OZ_N4g0}sg8&1Z(hE14_&0V7kt}!F~$H2{<)qN zV|66-oeR(KywHv>d>8Z2ewdrgOTr@~#iAJ0=|@iBd7lu`q{_*@`qUV=LenGq=@JG6 z@@L)Fa^hvi3#I4PHPl5o*XYrpDizJ-QCZ0c9AA&^wT1?Hb1;R$VD^Xk448P*Si;ab z$`_>)t7XFVw^pl#Pg4HH9Dpr%4mT&x;E7e7M)ti}DbA4(_SYn&HP4P2u~zN86u6}| z%awosxATO|2A!ml^dDw9Is|KKr9AJJ8xtREoGaH9{HNELDqH1Ote8PV?f4+7~2D(o#lJcX`2SrRnRRGAnR_E{w0xa76Jg(Zk0 zhpr}{rGrjV^2f5J*X>R4e{icezAy}%%DNAks=~t2f{mR_HDh(i&s30yoMiTyY)aU6 zr%}Z7FYW(;|1T!A1(5NA!1)GpqtLttpO6z+2|(we6!|GQHg z_@cS}`c!c3-Nc<|r>p`dH!7#qC0I)B+u+to^iuYY+fOb5xu z#jLSQPVAq#OB`&BMScJNNCR5SPO|!~$({FmBYWfVKE?DpC0Av)9trZF(k8KzLxvBh z*!y?>^GL~_0ylog{poNS0cJ8Z_m8}!&bYtSHQJFN=SRvl5tG|(ucf>8g}pt8eP-ST z^+jC<{yX_7B0*O^)e>{txJ8POtL_gt;IdHq>0~)sgHQ<;(Jv!}V|`B~;9~aw9ijv< z`4E8eo~W4P`b+R=@!_h%?U6Hiqu*q%DtBKe+L|*>uXCdvlmkbW)+Fx!7ndHR5i6=ttrs+i zNJi}Si@&_6Q-T_Y#SAHZmS_|fR+r`fcCT+^vMP?%pmV$Db>|dQ9-Fg^*0PJ`hbOf3 z_{t=|j=U}E9&MH4;-9CwWMUB?dhabIROJ36M(?Vtt8JFMYi$Aqq2FKZmrdMFx`b;S zV*Nd9DKpVvGEDURVjo|T{@?ZTx$n_EJS|@3Pqd&w2zUTIn2>wV#dNAF#6iAZkw)<{ z4trk%cCew6GyO=N>Iwk)u`MOC=#HCHRE>I=+LgUqgk$$w_y4HjKm17ViMUDp4KOQ> z1iq{j#$K59Oo3Nt3LpV-=y$QEf9#kU4wTX`%2cPk2Y zLnj7_SM%jk-5LYNmUyz_7K+tjW@EAyUkq5AmCgZ`F!Z?dG%el0YV12UcW6x8-|E1- z=sAWTylI`9c&{iAhV=T4L45OL2aO91}4#D_!_88*@USDs~@BE^5M9{~zk> zjWG(?_)r?E;cy>EU&ki6FfSFcFRSC}953dK^R3pj1f(Rfg^6Jf945X+CMrK=TX4 zTByddRg2W>++Op5W0AUA92O?%Ci1l9`^?c#1YeP;d3kd)Br?^AyhWJ!kR69gL&W6) zVk=|vyT4*MaRs$27{pYWE{VeQd;L{C>LyM$JY1!_EG^D>*a9<~rUd!_f~Uc!whWf$ znRQz1);(MU+mxYb z+&qy!E=} zxSrJaxezm_$mr--S0;F6*#jQ_CjfmeVaZ%aruEI}fm7GB15w0Qzs-V^$<|JRdAA9m z&BOu7OVd3PtO!jE zmFiCaKSYhBBQrPy~-G@F!_-m&C+bbelQgDBs-Tf=O_cnJ=07J zjkXDJ8XK}|H9HPRU!uY*a&?;4nhwz6D3--(yS-0pgg9PG*x8tY6-@B9A$ooxW3m%Ow^wi`q5*q`o^q znpCk5;eSS3HkU50(&Y8ck?dwC5mPD8)grVXf7p_HK?}_a;9Z8D9|~ZdZ`0K~Hpx}J zZPbRDFAHP-B!2KWUXQnh&o)<*D6x9`xMrU=m#&ZJD%YNM21ZZFrlYKt%IEm1C8+`y zO=|#;%U-wsGIZzpp~@|8_jy}V0*zGBFmgg*}4I1B2lUcmcpq|s(WdbQVih}7R} zlr2xxCsHZjWy%U%)?q^$MZyg?f#?g4^jbc+x~_-D{V~3y_2dgRjWT5HV3jTz!6=vk z96lr?n3OE`Gl8Q6E~a?M{b!5UoG0vRidQ)kK9QvxhTP1z4;LCNPV%lCWX&u^k(-Zr zX@ielrS9CtVj_Eu*sum*BM=<)FSpS09TlBA7x22B+EG7!YU?U+iwX;m>nf|APJ zmE;6j8pN+n-2$;@|AAnPWbk=tY@#T*Do|IMJN3nk*0*IlRkj|SZ-KgmN9*_yee5A` z_p8&PL4;*(QA`Ut6w~6h* z!hx3}Ti6vYHIN`;3i5klWTHXV8@$K}#b`?(7jcJS3zG9Tnoy*lAFf@{ID6O6Oec39 z+^Nd`yiitXy&GMi%X|1zunEgl-@)a|b}SH@5V|DcI4KAKtdXX)ytG}rr^P0yR!(u^ zkkg=xb!=G4)-2 zIKaVheUKAY?VncJ7*tfcuaI$X37wRW&$vFxbs~ZQhV-!|A};&uAsPS$5X%G8nFmVq zgvqFg5audU=?6eh+D6mo3NU?0`otw$nZjnuta6Y*h;*5sUxcp=y|_4Yb>(sJ20=O4 zuBz!5)QxH8q>i$o0X{(Hj4(!9P7NKpm;R;b*y}uJS3xQo_TXb!eE)# zyxt;@m6Css4PA*A2Sj}%?tS*1x@n9`i+A@xfSw{|>p zoPvvVrmUVHpA|xdNR-6R6#Nyp7Dep^Dh*F>91) zmOV+!_GmoT@yV&>w2$Ov+02GmQ)Li>xPJaDjVQH1ct7 zGB_CAhwQoGn#YTbNfq|r9E%xK&HOD%v6lG{yErc^q65OYD=&7Cz(HAb!Wu>I!bert zun_#nev(wQjf*wo!PTxr*n^ct$hDO+ZB}xB1?b>lGVzLvNF!#1JPvb^_VQ(Ga`pq* z_r$qoXp{q|WGaK2}rRCgA78(cx{MXaSOJk8v)aqHK z7Wz!bRM&l92w`w(mB6RdBEGD(-9W{guD|-SCCUIQNNxx}Iq+=xdmttg^}mSR4=}|i20GyY_r}i7 zj+RC18xGSq_M_!Td^^myZ{Hs8eg1jbw=MpU`5Q^c6;M>3oXA z(fI7Y6isa2KON%yz6PKFwnq$X z&jaJWO8gQvx7&Vinh}>#5k*S9Fm0c@Sa-sL+l;QP1%D`wS!Z<+8N!+wBzYWP?P}FP zK!$#-D?xQl>{>|xU3mNRCuJa~&AR5%Sn6GD^x5&UJ&gFu9z9#{u9JK2OHJd`g~V=8 zxL<_7-`b>oUde*88O(eg>eBdtMv-<4b(})@9aK*d7A5&fB|Q{_HK`QK-ALk3#qUmD z68V$MX8Px7??2Xk*JsE%FaYHCjh!@k>M18BHCN4ls}TaL(Y|*V>*G5(jV_?h0Mw|6 z@Po=dzIwQx?^|Q}PmQkaI#xAhH_y0xU^hI_J+gPGg4+V8<8HIRw3|=4w*N#BTN>GZ zx#50Zzij_d9gZ7Q7CDrs@#8VJP5A@&>N$auv_*R#*M+?oE5|3J(8g|WcQCSqu_J!f zR`u7@P)aeD>wysX|4{hi@BPzpYxc~Q50TEhuFQGuhCX>6O@H`_Oeglj^=vDG&m+$F zZjX2Wrm;E@evx(NG?zGmT(dqidjE=Dru|0vf_F+&(NCOWl{PUgkRphA)V~_SNm9{( zHx3&J<-eF~HR+u2f7dAa{&tcAxVXtenAN>5qh!U57%*0tJg64+0GfRG&Hb zu;2X#4t+ZT96ltk<D%($cR4p9Nq*gYNLc97Jp zBm>AdhsIuXokaT5_Ca3G%LGvL1HGK0kHCU+cl=`Nm(px!TqEgBb5!GxC)lp%w;=4YoJzi3vU}vb24$LX-jM!FjSb1S9U`N9bwe!NMP^^-;Ia z_bx$Xb1rPaL5%~ZfJ%KK##w-0UIQotiYjVvHtMeu_P43M8BlDtIH>X z!gawj&?i9msb69$r|h()rTrBus%QuTLidL8;bbN=kSN-&(`D!b#1TC;eneZf9T>W_ zxi(N8a5$v?$^*r*Y^KSLAl!<@r$mt3w?ls}(19#KSGi*Ik(0diC#A8cu?_E7Z|E2< zU<$}=ewj_`W~m6ZqIeC9xFuiP5zroG_(3qKWEV?VGMl$FJgmrJ$w)TuxmoN0TiDDM zB$7?`ieD2k8IU&Ift!)~6Tiu_HCKqEqhg?9gn{J5sVM^v<6LO08{5XEiRH$(yh(;^yuT9{!FRCW5mMjUkR5(0#fM@j z;Qk2(_^WY6(C`DY|o&$H()j4Ac>kbFA(uk;<%X#B5&5917P4;(HI8)DkR)|dExTvwX=&e zVvjLZd%;Z7LBLJ@{@q>G{HGL|Fy?W?68aHUG@rC9gl-;RVm1 zuaB5l2q{eYbgApVu59EZZ8;zE`?&F#QG3!g2!@MGo0A_H`*feAi?b3j#4j?Py}2QS z@**gZowuTaT9wH<@bW2gDUptkoe8{Mso|W&Ez@tQ7|+WX2py_IPg{&)vK{RO0r;=D zX$9ZDX6J}gO}IQ#mqNf_RYlVLZ%M#W1gyv);kbW@Gq;R^$U(hfiT};>Ia5n_(Q#iC zg24y(pu|3SK>G2q@*+5bJSC-eGx2)smnoeRJwig zA|xLa@-jFv0Jq4YE{8Gb4wtg1r?d;&}bGhQ2(C@-lV!uNR;~&^mI9 zdas|mZA~dpK6Eo71&NSp2Dq8(%2>Z7hdFORUS1$xpE*aER?DahP#$}h60m0}1qoOD8i07|9zF56ZQc^eAR@#+gRm+#~{1JjZ`E2lO5kPDSm+& z*EdpnzyyRw1oYit;kXAd7CiGR%Fh5JhrypoI5I$Fw=q_QXq;{Hg5)Vcmq}|^V(c#f zLtm9zn+@e5aqr{XaY)gJP=IY$TG90&>4I{@$9U|Y71!LR-uM4B2J%`kjx~%UtTrvV zj{}Lxq%=kc$)EfTV4?Q1C+3akFoV+lvmBL9B^K@=3>@G1xyv#=CT17?sFDdl0;zZ6r&Os!FUy4xqsP z2w>p(QbqVJ)Z^XWFN1)@s1(J4>?~lpFB&Ms|IGrlOgvMn6QW}Q;;OXnVxeJ&ITev& zr=d?$686*&z1`X-VKElyXP?<21%QDv6+CJ<___`k@#D_vmA^6Fp9!lfYh0xY4aSbg z?_0mM1goPz6qqxcEjufpsYU2H00T|tV6X@Pf%b!LT~%bOh1z1Oqeo6%yBLV9>y>)m z%;q0C;HiutPb=Z`^u1gBOXypxY%PW9pTfK)%bFE6u20B??c>n*rthB%E92!WSxy!& zC3@n*guEMls*X>E=9UX{LeEj+TdkzY6`m`))BO?-A#;x3PDGAx^K3U27sR@KyYoXI z9^c96+UuA36SixrT5!t00t&lBjUu1<^Y?9oG@Gt zuwd{~KhK{S27AtQW=7Hm<$*cgqdplpU-rZjK<@A$)sID1)`HB}#(1%UpC|^4j zh4$LD&b!0sMcx+H6zAhyee5r}8{gYHEQN*d{Nc@1DD|aaA$2at8_f1(v@6e+EEqAh zG(m?h;~S3MGFG&mD29hEe4JxYJ_E_Ls20`2TgqBcs?)1T#HuIFo?1+MiEsQ6vx*0= zy5xYWW--91Qxw!kKeh=#mn4*{u%va%(OqDvR3ZO&3qJ9dkrjv zlY_n@9Pk7l{!@=onNPeWnH`0hW-V=kGSIR2kwZuCF19MZuE_kJU(&QLI}I8Fbj-Xx zkk4}M8z1}GROP7_!i94`7S*QO*QZs>UVK_}>z*tes-5$nj&q5OLj7*0puB&pVX)wG z)UDl;N&n5vqlWjDRuI_?e0pc(O+&p4C&$wOPlL%XL|ON?PV-e9D(o;JAkkDR|ll$2*AM42tFI@ut3U_Rg z*(zFN9j_)C7gv+ML|K@AvQ-@Nkz}jm^QC>XwEQKAz2sY&8dd-!bb%7ZA|0tsi%$!k z_aKCzN}tw=yU3K-Zdp~2?BQNk3uMQS{Ev@?Y-0KXQ5(ch)?t*HdTv?9x^rwx*wB(4 z2`jmkO9FvU{Y1{h+Gt#V$xiS}=NMPp*#7dJBDAt0Ct}B#K(~$;*drC5fL05*eFwP_CkvGnI>RY!T5L@F_aS|A%Nqh4Co6uXr4)4k-P-wFsZR% z;ucx*eWD_dJuEb`yx{La$*9htL<3^7r8R)uc&!sdLuGFR3H4{yK7kCJ73LSOj$Xn# zHyt)On?{tkOIIEyX1sAxX6d#0>YoLAD%?8VYam0}TOC6TgXQ#hCSztsF|{Sy0LjS0 zoo==4d((=I328{hV>iZ4f;Wj@WTgs~7JPVdj}*%>cpw+9hY;b01dg%dI+}jPYy{{Y zTlP^Rq>~-*J3yw_qxKa4Fz&``W47cfSaUHM7U~r@#H|XoRc7ixS>x#oaWWh4AGW#I zrBzf*r}JI=_R&S6x#PD$IsSN9E~jRNvc)OYrv1?Hme;K@Wnv2+(G!sBK(iyQv}`IV zKO^c)`919plynAv>QT?FFOEnrTRN~|hY+eo*N&KR=M#CoE_Z8=KK+ zj@T1sdxbum1uQR~+cqB+x|Xc=Msw8IAb0iTkg@$-yWCm{S5N*LZlSifXhL8zkc))E zH_d&<5oq??LLW>5Bqq@8k$UtJ)ECCX*@HiH)QyLJNp1oWC$Suqu6GUhQ#v5@z7~3E zt^nQXrY2+nSv{R_Dh9#hhn37)9cDRSEw1`^dC{dDC8~#~Y?N_au z_Sq7?L!T=Z?hLzhs`tg^sb{mN@ZLIhYI5V{TS!8`%52hHk2ItJKm5mm7u5(~Nw6U5fV$(o8u@ z8|x2qD-U>Ra|h}iOg_}c3~6ZC?&b@o(i|k8E_8lqL#*1?mbyQ8hP$3dQ46j0d0qO(>+OT$f=}LneMMzYyf$_m zw6Kr!EiH;omZj>qcJ)Oul<#sdVGpvKR8cIYX%%yatvuZ9=$llC>ky-&)jLESxx?rY zG1n1{Y!XPKJ5ND>z_R_;0AT3_x*Gz3R!Ca-1FwAnZ~3^Em=vJ9jjEog)_n3AS%ou8 zRFaGp^Eev)45ytu7Za(m%IiII!uR?36TjpVO*e=6j;&0DVM|PzOajWX^Hel&c-WwW z&wgt8mu#-t{iYLSG;D#3%utL;-IXyf;Y1~jiQC&Fk@YuP)$;J_J;2YurpBU8rp;zk z%s#*M&|GBEXkU0;b8m6W$fDY=AhLR>G8}MsW}ZLg|6lH|?Wjd{x{B5Uj*h5hT8f4b z_6=y2{kiXBa>>?+TkgZYZ!@?P)$^?8r+2M376yDYd7(>fVO9D~RI(eNy4*DR7e)+B>R_7#3GGoaP^acCj5aO@kh#1!L*iP(X=@xt_>woKU}b~VG; zn&)$&Ar?N$XzM@oZqmE2i3Fq0ySB?sroFv$Tc{dSUqc!;-UDb7Noqp$NyH-r2B?*q z2{PSrsN?ZN6HMoO8ylxVXBZ$cT~|wbRB@ncfarWM+qvp|ARF%AJ-tc~Izf~wtpX^l z4U(AA*$uJ83T*UZYZ)IN2*8iY-BaW#veR!exNZ$Y%}peGJcKRzr&pq#14x1z#GI!8 zlp)5MMKqR|;FG9(p;_d;MkFg!h-Bp;+YXVejN3(9D6oP8A{5&1xVwvPh)*K6H@qsw z($K|Nsc8keK5jJ8XXpS%a`4zyL<6G+%uN;jOHbc(Ys%K3$hd%%_k5@*Z?g%NKJHU^ z=qadSRl-GyrF4E-$y7YONk-pFpg^otkAC~70MQOn9BxR%0BTOK1ty|u8rUBt7+YjY z3qryJ#o`Aj6s1k#-ftM4QEKMV z=wxV>S*rl@&`liHxSbyc@%pvDsOy9_K#KAADowEuvmUfT-oZcBpyLI@ya-(G^96-6 zbR|&iwi*@pp5Z4!VKUXfi`|D8HJbk)!>AP{jIQ2c;K%AE7!@={=3 z=E4h`gPbMo)uq~00m)NKuF?v1bz{Y1RfL!aFR2jPe+oM0pm8ZpFe5>zQc}1tIv)Ea zXay8Cp*)IT5lIBS*;c&a-VZt6DQJv>3Q+aJ!J0Q(A4vK^<%{ay#VsG?BwY&1Y~TSVOlfGB#`JL=Zw%(c@_zHby5H>_ZJQPzuOv^ zfx6LuO1I^{0e`}|k_Q_STw>;@n`*Jl-H5}mqNS-GHzqe}W~VewIRczg1ubc;n?3p< zjb=3~h@m=a5*&@V(F}`BE$J3JOT)L}21S0WlnR6ut#yO9T(S0&1TQRQU0} zQ&8exP(f=oAI{F>3XhYi`g@;e>Y)*+EqL|O>0`qtf#yt?(CX3BM%M2DNpuiSS_Fea zkr9KYh&`L^E^t%l8GHiN*RrKfR^3q=DxwAlF~;Z4(@;5QI;w;4K9&zBo35*`y}OSR zvw(h8&|0Bcm$u;LiRj(mK~NWFm#s2Hy(`<I#s&U%GjKzn3kfdZYC!1>acDh7dkxy{_A9ft@izqK1VBlsv@;O} zwtdj4b9{PAICg(~q2vhBl>$H0{&_85@*2q!TymrQVJNm*v*qZsLJS-UW?TjqzYk;d zzU~4spsqKu=AE9?(b?O?u-gzcqV_E96y8aamz4!-X0ah5=%N5(qA2JGMg#}4{t9G` zq+4(DY9?|9jzI%gG_WG&+@F-sjYF~r0e3?5vN(HqZc+(=b5^4RwT%Thy>qtCN`G9S zE>JJ;B+*=ox0Mo)_g)bwNx$s7bWJtY?AY8LA$9lA*^sdhQ7d{C#~p%`;XXQ=Km^;f2E?3RVf80fyG z;WJq>vVHJ=4hV;{(f~mv@Ysb!149QKC*CIk%}@lW<5Wq^)@YxV4UXgUAkkVsk#6`A zXt`ugbIJy(g5pnCZa&tBSd~b@lVP*tPq#`;Xv-dCJ!WN>CuAX!Lxm`Nn-pjTx) zo+U#p36VjAep>`h8ON&#Ku9H+w-mRj4lMD3P5}hi>>um3TsfD^uex?$?b`-LN(sy9$uC^tC}7Z}Wn zUwipN34ljF&>=T^3ls(*(1s_38#r97zJLD7t(gvKnN=SYBOBwlur6AcR9zdIL6xcu zQKj0uw5QI{+m&5%Y#`?O_OgL!-Gga2xvt6WlORdd?Qc^}&u9v_m+LwtOvlI55X-$= zg|R4z`YcZv&ifnjSX%Jd1?|+VZ7>8FsSq$F5M4SA2vIKx^xT!}n5LavmukOocZ^GP@QYGYotxsya@}sq za?rP}sm~eZ-?m=A7ZG6)1wdVv;+^pmsqm_dU0qJR)J4!O)qLrYL!bf2hA_&MwTNE; z7BqRr_YKkSQ(+bXZ03nxQ7x4{zN>b*VRRsI@iIH!Pqf+G-+unMJ< zQuPPk?pMH#LBxlZ;sMnZ(O{95_WZbhHk2dx4&78>U-uchAen2We;@?D>yk4$o8IKr zEXM#H7b|W%0DagGLFq;9*Uz43#?IM?%16q-G&DjHQnA#qIfwwkSLJ|}o<*_MjDIu? zV`~CI!%pCvmC4Q)y32to?7wm3I?&H2=A_3Y3za$VChJra* z308^aHP5(Lj1BzIe_ye102)i(DyZ~(KeF0CzG`Ez2Yn`LDL)H9?+gcMp?Q&~S)qTw zq$D@69?7NI1@xF%Y5D}|@69x^Ih*DiD>_jTU0$vnnNHcqJMs1-2-G#-Z8!sjN_vPI zDE4+g+YVituL)HpODdvP?&cEHREwyEG`JkZZF4W}cJ}3KJk5z4WDC=p_flX63As_) zRRcJb0vPVfSK`=E@1P44dvz{m+bm0lEj}<8#CF4oB<^u~sqwXd-XhTOxY!YleIIn- zmPjkz^bt%V?C_U)LM}BZqH+of)FehEA@ULDnMHH!$PGX^`06DrHWxCIx?~p$Ujky% zE$;n{(fkRBzdN3>pnh^w6Rz|D#DxvfX@_kr4LXlN8v$#WR=Yb50+1RQ4WOIF{2&r7 zT@}o6T!=|B-GH(L3g(DnszTN5O-X1AoHtiTc-1W8V?dd7=7EI7QBu3j8E;pD?Wv$7ShSf`A6Wql=MNBdRsFN3(;IH%{iE^rxp!-6};px zLHR>(kc9#9F%6=gYR&`dsk=sI1tZfNwrE_JMKR6T4c3?mmrnrmP{^~p1HLi95k~3i z`WRB=qiF$-`C(TNE*1@=eRL3|w9R6+r$Zhum$TYdmT!a`DDlMLvD1rU23&QOCD1WY z9gRD9cOHZOfY}oozLMMSUa1yL@`9k%NNI9J=DPdl8<^Yfl55K+CZ5_?6S?{OD1Al^ zM7w)r^bSJ^)^&ROFTVkTbs;*a^?E_!5+Hva-PSrS_lrJp?-MFjB)HkM$Xgwt29aK_ zu+<(yXt0bx8%=u@B49WFyu50r4SSVVDt)<1mK3=-&l6oX`YIup$pkZ=+k_`H;u~nw z?7+m*CinKRp4qnQ^Ai!t2F;WaDu|jb=wkxqxfn(Zz}TDe@o&A~U$PXtVLh$E)pPfb zf(eKJFWSRo$Cmu}2l#@T<x?#hgORA zfx)qH2_XBVHpEC3@{$=iILwG@#kZf^tr(?(2*#x0>Xa0Uk=ME6o)?U*xy93(dvSVK zDn51Uxa--|r_)XP#icy0k|^Y`?}oxPk-$RFHCltQ93`!~zY}C%kdiJOcfyZgpSpiy z^YP)y2ZMa2GylxplUIzVRExI&5->*r`P^zg`irZQ@s8OlHSqyGw#0LWddU zHg1BTvfnD8DUGqJzz4DGtB!$J9_rTAMQ}Qa)sk0RPbQTSx|?gJFuadU?>cJppbNAj zMEnKK&i8>}A2m5FY>dcpMNxcHP^B7*wjOf**9(9LYRuxRGxVTl+D@Uh_~G0k?}~tl z?Hfsg{>ZC{@49sq2rum6SUvC1=Lw6@5e)tk5ojy#L|QDyu#U78>7hnE+@oZ(BoXLhM>3;Juh&@3kf*dhVR8 zX#l>C%6>WPxDi_$#rSK-{x+zO4~tJIo`_XGh!c<)1ZL@w^_%j zbp1jr6CMEp4vnOtT5)goEjNS|1aF>n@p=7TADa|D$;%!-=|O$}4(0yyJImPbY9`h7 z-anLW$W@lZd6)h3r%7$Kwz^kwu7A1jSIkg`3CP|1Z;8{SY5F#|f@Lu>!`s`XxRaJz zQe!?%vA)?{sNRUbYjE`4!ZCn>`3~h5LzrY!DjA$}Q*L?m4Uf)aODy|yn2YpG!{u%X z{v8&`BjO(xju^O|EgwznaJDX%WYo2z;ls~y|O)j{as%fH?e_NR+bZ81rRkV=2Fe_konI;nXc~vp~snuVRgpJ74Y#{T8I5lH`8P zbNQI7i5yK(qFL~%F61R!>r7DdOpthfAYt_1kjcBH;~EV7>Fb&*N8!sOXEs7YDa?eD zgn{_mBXC|k2S2s(>JREA!u7B&or4{7d*PCL6Jv#}i(ty2z*Ie#fw}VZ z<@@Hf1?;RLqpvc5AMvD1@Ne}q#bnz^lQm7x(S$?~^SaA@{bPLCM)&NQeJ`^>gx`|h z@`HNeJw?d&_KW7V-s<~8zJEG&znFA>3xeGVvJ#$&iuy5^heiaskLfrs>oaGGMm?NM zG3C>sOd|T@8{g^ZFXJxT&EDhAkYB{&D=ZPOn$@MD(ARE0&qhn*C{A#=RJ1l>I%a%( zhbrKHTfdp=%w{CZ`gMvdeseaj``Z48Cs5P@aj`swm60=ymkfL3J+F?v|?joP$3%21L~8G^rrvX__sClvrM0=l~>za?JYe@o7{7u-)_KCU8p4 z{`UFC3IYUy5;~S!(5qcUJRuxBK?QS@tV?vRSGo9EQZT_*_Y-gXBtrj`r_N<;aS3Ow z#(Wk`?>a6?0v7fEq~VY!{+&+7y>r*kc(Fi4m2;(f%d)I;e+#EAdZwkk!SX2Cm{ewh zSt#ldv0s!TYt&$e6n%K{?bqHNTC{KLp4tT0uIw`D4IUL&H?18&-j_knU%h{KdRXCJ zdQ9%hooHB*=-`A2VeB{-R3DuRac~c=o)nwfS8ht0RF5JAo`e{c3XJN#lVP7>;Yd&6 zQWc09gJ$EWHQD})+QfQNO?}Bk%^VGa>WSkyx~~Rt`!VyRcuhQv2YaV&N2TaDHA*UK zEFu5$^3ZlQ4XO=iFaOBPX60{x^AF3+W@GFxzvut_yev*C zWa0T-xpz86#4)z@vg=r!MYhk+I9*yFrPRH6NSZy}h|SS|!c)>_H4m4Hl;y({b^ZD> zRmZ1VIS0oSUUWEsX7I$Z zj=P>=1;Qp{jg+t+F|@X(=H;e+|J$=of;=7Bc8bEZ;Bm@36$G<6#uURv9r)6`wyR3o zBbTt!V@>L2{$agDXZ6W=I#YIu-`rU=;b6rooj|J_y1O>jd+-yq_TKtQ({7-2wd(tW zgE3SBtcqd_ z`#1&HXhLT9%*vCJO=RY4Uyk#E&ecLZv$I#5!J05;$C#VK-nfK8e=8QrL5ro4e^&ua<^db~JiYov*AGojz)IdCks z9!reg#kOIhR9uopy;!BFcXMK7Ec<^yFc&N1^-I6m40lpJJ@21N}d5ecrKJ zX=o}QH(i_HA&PdgCN!A}S~wYd%yj@o$G2`<-XF@)iTB9rx;qozoO-pkkgsZPiBAnj#3X$%|aH%EvHxn=o#&a#vW$J8KrQ|PEO6x?9$ zFuNoM%S$t~2yD(Cyz_3rvOV=4O;KP-x3Z~LfwFKa2pJ8;#9r)dU%R)V^pv550k#JM z?B#a6IN>dDI*i!XkM2b>`P&P9a;7Itk*W-LflPXk*jrT*!v%+DpC5|RQ}C0vOq1u( zine4EM51huSJAHaUJkB5zC3BsXOT}WUHzO`-tg$k3skBHt$kh~>-V1Uw}=O7UmBphBay@Hz)Z#X`pDSu2AXw^$O3FPH64J3$jGX(V_>t`clWLu81Tf}6F;=lu zqTuGhKDp0BYut-?#QaW4wWqceoIKSpSH?R2uA2yPFNtJLCLagB@-lxT#$sRbMuvH} z>x^nRzrJ3bF`_W9JIfw=;CQx|BUzyhNq8U>}y^{cxm@(I>@b$bz0ysNdZUJ0K=#B>C`0d*4&yG zL|o#t(&p|4KkYucBz?+`F64WH|2Z2`ViyPP1j%YpaWs+f-PR%u~y&xvVsS9yT4(LWLqKhIvG1B>8BhF@l`3gMNM<~n3}p&ctH$h+%+>$ zilV`4fr!$qaL+AzASGmUXBi($N`Ww5Yxam!C)!!DO?@ZdPJ$A45$gZyy@OK57k3Ni z%9!l<2kC14aRKjQI*nvnpYI2~yfed?v*XNAyhi3>c<)5jBng}V*;*`VZNL9n$Tx+$ zHTYzj1cn8_GYcw^AP>s2C*+6IbRNzdoO1t4&8EaDrpD`Eo>*FUFLubTvx`OZ!?wp`wjV4Z_4Cw z=H4AQb3*2pOJBEUA{x|_FRLfxKwNvC|N9z7VsD~#OyUHltC1ui+;(o^_)q#&DU zZ~St~ujVx-R^i!F$vUH_z>k$b-%e-7NiySU&8eB3?b}P%A%6qSnqHT5*>4TT+H}<{ zh*;Pj2Y}KxP}QyI_AqfuFV>H~q}Nk2w);PhoY-GNd~35ob^?W?^nSSvHy6XBO$2P2 zaQW%KvZYX|?ru12o|KWsVQYFW-F+FtHTqUHJ*nY9$5ZuK{o!QET~MFp;R!sBkNb#! z*MWlrYQ_LB7HLY#z%p951k);y3vczsIHLD06)zUfA`^uT`UvaAV+z~S9hX+x;ByUj zt|g~;1pKY|$CC(C?LkJj+G&BRQbgdhraLK^D5|qng?{8>A@(Wv9f5p&a)#I>t}LnP z`Xe}dA9J#j*~oQR=g0DTwo@-Fvj78-jF2VP!TR;)qs``eV|fL2m-94jr{0SE%zLy* zTfw^P*`H8v5Id#)tn~DRXkKEi^jt=K6`6T$rQte4Wlq+5?*`JTjEB?q(j-db`(fl- zUq6VEi|BNVaAT>@n#`IUx$Ijy&U6fwSAlL%DC5>|DiRB|VT)=iF87vb%G!xD{As{l zNwMo{9Z@#R=S^&Or%!Hy3`!R$n0S)j)0Dgk>Y8f=KT7;4^t!gj1xFMWdF2S62wrhL z-<3Q#w^unzy6x*7ew9Vt?2&o|P93DyGM`C4Sjs@5Cp&mI{*rv9o56>f2C%lW4UGC_ z{)z&-u2^nQl+|@)_H`_bpUd9Ex%VEh+?z4DfaQ*Tb%O_=-fZ;FzB*@0+r-2@4)^qO zu;Re5;zv#)2Vai&L)syDlcuNO>2{wMSPmqy6(`$I$#DFOGS_5-TkPfgh|hJe*iE%W zlz;j!Hyx4{{|r-pT{CleIfi@E%pZRL@vV90gwYt|lPTZ4rzBDZk^9aGj&sO*Qr)bA z{MOn{2wX^*WkWws5cKI#>z}nRszB$p9E#lV^ymqE9v)AI9N%5w+kc7QG<~`L_dt4- z7K;dcS^vb#`^VVM3I}$|bl*q|HSjl@RwJ9Z%p&w6aZHPit@9a8(Vvon^1TMs@|o6( zCf}TOjh(tXZ;6i_X?{xFHxJjyR8<~nG(2R!> z3iEih+rGgxUG35by-B*#btx4nJ5E?e6cuHjNjR)@V_9Kgcdl7pEG7;xl!HgiWZvJX z4LEUbWk`X~VrL~wuzHXQ4^y-t%x|7+GA(b-Q&agPxS&O@xY;~A-pCDznvgcq-dZwQpxl>8XjVAm=`(eGgcDO&b zH4`b7TQ%CUG*qHV$Pyhb)BwoS(gfXyUh>`bz&#qrXTcZqLK=*#BUCk-ytK4{- zWcyArRYK`fSRwt8?-j0&;oVwWl64>B)c?L(n@v}z=G^NxcQw*v1hrNaL2A%*%#>1gkOMiD)xHQE5fZpRX7>=mr zA$`-SiAxu^(>EiMifSrYX?(Jt(6$N3(MdqCcT3Jvl3c4J+)@f4sVO?m;*~00i!3x8_S%;lK=%0y7v%ass-0yRWMh4#0sm z01gP~mL?M>q8aftsXjC#Q!qVI*hOf5*6bRG3E@{_m;093g-3^>`sh*k_uYlG#9@$aE7IzpZcrD(T8;emU_96CPhALSRg|(U>Vz}Dp_DzSFmQApDn;ab~g1+(-t8TIxAZ(9;iC_xISOnaKznqFG~8 z`ug5w8xfxvFAH?^4E4(t8I_51@fYdo?witl9~(c5|7HZ;7j z9M8C*{v)rwpb9OKxB-@mS+RSn4;M+dtTR9@*x}(E?T7`b9C5cKbLu2pG&SO|_ja86 z2O_%4W1{yZtIh&`2iHB@-5uids4wN`%i=`@vlaN&{F9 z2a>#EsY6d%`HC;y-&er2+wwaOW>xyK?8U0yyu?^cvz)1ujVyNtxP_UO)S8G=Bzs-3 z&9o`RPO>%lo2EqZxx?q*dHN9{og`R4=-6?sq;c2NVv+Xa`pSAxZ6zCa`yLx5aGk!j zE&GXU)+x|RF6Yl2gBRSc7S7)L3f3q+!+~V$ddm3d%QZ3|S)b(`oC+i}Ch-{4nvKCc z^S{)-HtZOT>Ay9T;lw68T}1wg&K3cc)|FX5C+_@4{wne2P7buhbe=i`yi zfv`50KUmJ)4)jbgO^dglm?fMj`R5%z@T{R> zssHtC^kui;ujHTCJ!bvp-y062pl1%aJPkUpVuvi@J+;+*r;2FWwLon}u02Q{YAlI? z@#AD>;|$b#e??O_HWEf&JWKrpY#QEat$6>j=_d>L1XVHxU4m_~c1F)c-#R}{A^~Do z>$0gv9WfS3ic~l6RteQ7JDSWue7xGtrTqJ)CP>w@%<_Z5VPYSrD|<@GawNZxX`KiN zsOWf|kJOF@^3gwDJ{=DqK9RrSQa8#N?>OaSn5!S{4^2adG-ZX8e;_4bV!dH}%a*oy zvQLV?y=XSc9^^_M{*F$!Eu(*nP-={w8vv9s*doL}q9BqLMiO1w+~jT*cj*#I9k zOMZSmqkW=?=O7~HKW`{L7b)%s_OAH;gu)IQ-%|QZ4-Uxzjv2ez#I`R+ zPmB?9DC>VP3RNpZ+T}qFaOQt^hDo{s2v%=srzo}YgZ&t~*eDfCx-j&Nm#Du8DOlCH%S2?Db%R+c&p#LZNP zWpLv*9M(VF@WK31AjriU;C#$P;GRO6`$lI7%!;=cYGL--^(bG!%01#-r3F@eyh)9q zYyBlgdH=6Kx+#QDmgd7-Uf$?7@Z2s^est_{B-xQ(s{+|~dnxP@E8e4&RLbjS0#rdXAFl}-UY#Y0636+L(A1Z+28+w!6iKy zw}VKm#%h*-D)g&KK@XJUsdeI~zg$lpoThFcS|*Jg8k)7aJpVAW)i1|eubi0#NNpb3 z;stcWe$vg&>A9T0aXdMh-yN&x8=;&GD#B)Yt=G6dsvW&8eE5oS}|tYLr6Q4|OKV94T0`!=Y%^5t1x96F(q?Ib?PTE7u3@ zD13VA_kX|-5*d)w1OULd%9bE>d3`5Z4OYvsjM-I}_@4ppIu0sa}I$Wn(ztKRkVhgv-y_Mus0Ki})Vn)P>GdzX9-`|E|4 z1a;aodf*$BP!j&<8KRBs;w6`DzaOjr!j*+rFISkS!{b*^%iy$ImYZ3y<9PF_N)vU7 z(*R^nG&^ETNoT|nA#>Q)e#n!o=F0&FZad{IAVZJgEn7z z-o~BgQVSNZVyv5t?j>J^Qkj;;R;GGim%bWn)*ZOrHgx1kthyzaAcJmx;`b%_!hO*) zj~yyplCD3zIiC2i5#sa2PBpa9?EOT>((INm`0;FZSU2?VewODh?FiYj7?>b$v_!Mx z!!G)KHq}eG7@r~ZL%c>8x$8xgOOw=&iyu7ImCi!v`{K^Pb~ENE5AV0d7K&gW>73@Z*q8(s+Tq{FZRe zJ{-*WI=xoq^3l?2{WLkmxqPmpKAJA|1AoZwDhi}Ft&<9I9P5oNX;P;@6{1xw?kfR= z7lew0Me-7Ir1@C_q(-H8hvhh{)(&kNyUO>bt11%1`Oh{SRc$Qi(~u;@*u-P;M9uM4 z@txO(;z&V(9;B&i7jF&3G5F%#Lc{0__~k!ucNl8tntX1MBG_ITGV;`WH|1Gv1l`D^ zEM`1X&mk34kVg~eKN+x$vg?0sX6}JSnys}%A2QQ(0?IFP@8#a+{%Gf=u%6-PRc>oV zsg{~1Y#kTh$NF&<+Dfy>R=g57innWOzp)nCe4A0io%#@ejQh_j_6H;wn@@?uU7k)o z8}=TF{6-~Ya>e3dL^;eRk{ehopLy^fH3wa;=0VO%>k`~9(8jfBOw9t+G@&wxcD zi*bXDZx$un{l?I+-;PJv=3nCfDtHTI4wt7V@Uy@kMXt5sN4BEb*kV*9AB}F5)A`1+t&Sv2H^a@BkGELVrP#(w0B1I@}*E^w&6VXz5eS3aGXDPOYQ1% z$z8J9S!~gnS0DKC;2 zie{Pb&ExiEwVHU2$V$h~XmSy9y#SFF1QkN>*FET1e-k6<3_OmsZqTKwjpA+*tM-Vy zZ*^2U->lAD@JTYG!d0&A9Oosei5eSvca}FxYi7v1eMdSc(kH7-~fKo0u$^Ac_5oT>EV|) z-)gnqo74ds|F|{+9IE7OnYRpFFb;AkrCP?|*PI}A3Tl{6Yn6aZ$eOdT0^!z{=v#(E zPL2Hf!m=4_Il&_a>m{qGL&7; z@Zu43Q6=5(gl`^ZxU!wMQUkm8BBw2Sf-SX9Xti@Wcp#)k{Jj#AsDySzzcHGd7Tz}E z8Cfhwrjj%~IPHvqP^bCoxX>4ta~Nhp7;eQ2ucY~52A+B!Zn~``yFfF%5GM5 z60n9m_ct9^o}vT;G&G;ARWvw=RZG(ViI5ZMP_wGu^?K*{``3z@Tdxw8{4Ac#RZ z$r=z$rL76u4)c=l8++c`aXs;tKEtIm9}=pL2&u9eMB zbH2kUgRqtCs}Nupb^k*$$x`b8&6h=xDIzX%eU7wLb@?9AzJVS{GZo|)Dg!@vuu&i0 zkRh#StadppkY@eX#vLh0>8#)RgPDHc*O_hdzV=iBRxk|KPwQ`rQF}|zcbY}@oJ)+% z_#(H;hQAo4U(F6;Q9#^|%mO|yr|M`w({9i$l!AvXoS5af2uSOy zsmHO9ccT>DpfEu;d9q>qZ*a{r!%p3wn(5gq7oe6*QV@Gw2`_S4DU=PYvaqYBpR%%m2_J zmVL-wm-Z-j=tnx-nmM!nFwMKUiWxikX-84)Rv4u8wwH*w)?0ds3#*y zRz&)vZ=H<3YrXs3Hr`yZxT!YZyS-zS@fjU%&Gle>3g$2HTqmt0D=E49mrC7nJA2D2 z>$7T_P+b>F*j(zgvTPfm`c>Uarwe#pmE^V+A0Ia#(3ZqX`94r;^ozu#evE7bBCOb@ z$6Pf8rJAC+u1@o>xzW z;6H$N3>wLBqwQ#~R`Oz3L?ef#7fPDG59BVSPA|(ojs~ta53m=hrKWWJ7!rZh(B8f7 z1g-d7;VP>b><^G|n!!`#M2!p#qVz3bCB}qqZ^N5wPOp8>rd2P-;?On1kjl|2I2|0- zd+6%4OY!o};F1%o;yP8tv{ayDnVhQ;hL(UJ8`EpG=MUSk^%t$DXKpR1`?2jm{X+m> z#%$KHKyck766Mn&6oHoCQ)(?zh#O9~iO;^*F7nPiNRB)<6(mA36EmtdUJE3G3{H3A zPt0jI%TWM(%>0)cW}z*Fern|0U%>>bb_2Vy-HU`1 zeCa4X&eJc0*+|Ty%x&=t8dXHg3Kc}Es9u`yq7=Y8Ny>D^71=A}NCn377ciDvsj-SL z-;--y?l_Qnz}@z`_K%gvb+hR}kQ_*D?80PB;qnR@++J0*r=(QC-Ld(r>r=f}2IQfI zWRtJehJU~R{owTk+cZ!T#pyFzuPR%W0D;C2qq>U`<=)%mSDG6Z3)k6zKp4$;e7P?8 zAr+i}b4dbBfUZX9zL#eJ)UlsE&-yqZLOZLypW3PuR+H*&_`9aGQE5ImO=ym&jdQ*X z)!wt*3p(Zq*#t< zK6!q@-p6V+(}$WiMPszFavapGz(EF`$t_D8Q@3mX}Z*mJ#I)BqJ=XmTWGi#a-fp8Mv|P{a$_-hPPCPlmkPox>2 zF!oq0x*rRB*TMqEEMCAcwZ!3$8B)F?*FTa)Z@`OBM{`ZBMDwZA;+pp!ENquL=?oYv)UZtqh zmub!3$_Z_BvN`vy^94z`LIk+z5O3j28`YN168mdw;u8ekyJT{{Losx3QwRs5IW_W% zH-cd*f+4H^#1l9y(<&d7zh@g5a_bY8*U>XABf@pe_K1dF5zuiYp#(@eYAP8crbhA{C__<3+P zULN{w0b}90J~fll7R@da=9c{Zk`-e;SMs?r@#|$fO3G15O&@N7fs%Lh!>b#a7QZk{ zPIDbSWnYK+E(c}PHa~W$18U3DqqVBd!0vapWr8I>T_6KBAAE3DVdXODRFk%B$kr~mECqF*YL4iZ^{K;-{J2xJ$Jy3ykh`;_M9dH!dYWK=o58bwYfGk3qUEFOrS(YYBzR(R#|e(A)XV2{uQoou`Qa^*GJA>W7rbS zv=KLBr;((47E%@8x?iE~ zk|3>tv~CAEc-1Sx@syk(j_`l(z@^{90yuECpIM;BqB}4^iLeiW!igD-Xcal|E~-Y{ z=5d!FN{QG{KPI33ME@-A+M}V-Q%c%a>A8!nJ#w%JTTD4!c7u3PXTZV$)Z^Vmx;gBb zrl^!0E4N9j-iRuBE%KgJeAFUvqL-#eY5(Y4AnP|sQ5ZuYKQ6iMsul~U}L5FtYvUHY4|p! zwLvPSOD{v`=S&_4a2$TKB6O|EMgRm?I4<;@p_7e@*(*9=TvP&nMwTnumw(4!(JGTd zWg4ay5V%tG-LyG{PCquHe|;_o1QKo1SB#>(q+hnPmUbPs04mVE>5c=3k-n4yDcd?Mldy zyOGS;A`7kK3*&b?>oEWb8Hmis#AM6}lZqhyUf$?(ioDzfY$<_kbNes()}zz>mGXIDdz z$eATXWWW6PIR8jb^apif|GbH$LOqn}*>=$Z!Ya{$?vZTT=fAh-?lr}}=*1%swd25)>FW;TZJnIb}Sm|#{PUibZ7r5Y?g(SgvbckjD1qqEDDBZ=#DF9h+H5s)Dh=x4HHEYutXpf@r_0(TKHJONz2|F=k>z?qSCl zIxWz*Q&{d@b{gvj)SWkWf7bN7$CIEHW`u0P2~bG+-@c4B*n z26J|TW2At4XMBzhqy>##V~S#lXix6uf1XN_Bl?;jxOC`3MI3jtXa%Qo%8JRS3TOv{rOt*;QmL@))llj!Nz)zmTY+tAhhP}zPG{?S|#BMjOG3) z1fe~ZPyFD;-VWTtSp>k8S%d9<=a1^-Nj<(eAT@Wt(Cd)d`bghE$cx5G)+QodzW5F@ zyq`!{IrWs@!Q^#5I91|{k2JivRkN{FK6ljEQx!Ze4;0)9kkG|3^uza1&0bri@cRKQ z7?JYX7|l+SLO^4LGfOpj$4-Kt;MvD;9iw(25VJRG>QD9uVT8N4y$=NyCgolT+pYnM z0McG5G>XT2@EPhWPXI3++J7J0JrPg<-@KT7Y}UnJ%#jbBy8kst61^lTzX0?8uV|uf zz^2wUb7cBE*5*fHWMJo!dz)0=j8R|^tuc>P`Ul^WC%Awn$b+LoMcQkWTbm?j14u^V z(WBc^ZQvl&A=}i%_$kiL_73i99qbWuKe=X*4Slg#0nr*YNmAP%a z3tmYYRe+(q3gW-v%q0+_7rd8H0}CpQIX`Bp##Skcm#Y@HM#V&Sbg zUcCEf&HPN(TqX4)#xwosusTJF8?SnCrPaZ541d-)Ec&`GX+A}-hnSqJ^1Tcnwy9Dd z;~)0{5_|vJ-C%^(RXP(^@f^FLNGDe&nxO9nszg zf6(pyf*rLo4nAH&c8+3M3+Nd*w<-;dTAA6ZomHzkGp>z)>%~^#6jedyAI8eL4L2sd zEN@dp-e&B~2%)88XP#0t| z1A%bNyn@vx33%#p;5>T{u>W2)w866O{;%jqH1plgVlj%R4h=DKfS}mkam}kO{CYOQyIjkruXOQ zWRgx3y}?W{gIvUJ>#+$;y(W7PqxbwbG?;LYYT%?QtKZ_=~Q z$}C8jI)eojbq5YA`O?^{1&J#|Mz34N6;yz}0{Gl>(gEbM&WIEyH{!&4bPjXvnekz> z0Q!4Jd3dm^GnTEnTkYe%ug2W3>5G^p(!BRv-gxbR{pK4_yhLkMzj?|$lbz=VK7gy~ zNIR3O5+uY)ue0UO`sg*CirF$#Qyps}xjqSRDI^e+w5 z1!()ItPo65_m`U$#Wy}xfYVbG$5U+cwx8S?#xr5&LEE+F7yjQj4wXD%yB@08<3Fh% zf-PwIn0uHi;nJLt+LTH~H&isz-nHk543T-ZT`VA;hV9%xi5KcFQ7$aVDIb0d<9w1s%Nt zTnc!9?AW3s2^(rSP<#qQ;A_hJnyrI;tb%We|7zm&e?i(mW__Uc@smAC`jE()5;A|O z3eYxy9*amLZOX|3h-{)|6`|#Mrf>VY#HjgCeN10l9D?%shm}hI{LVMAnF}yqSpO;s zcriTI_uFRnsW|a2oQ%)exKitk*%}I$3A1mw#uwYT2*Bbkf z-!z;>PxHL|Nu7peu!_{{MuG=L75s7{Lzm5WcS+-o@fxFs9wZiU5zv)hA5T7wG|}AU zTf_n$={^>#8v}XV9U+%cW;VtxZ$qDA~thfaqp+=kv+N!GDyN&;U-dz!d*lC zNypC*bv+r>%=E-OMx;g)iBtW<-~bXY!Lbf8ou#EqNu-rGsSIVaA@pEvyPd#j1YTG9 zkSOJHjY8h1^JrvXR^TM)oe9NaB_Y#!S+ByG`UCe@H(p$TeE)F)mNpE6+%6)c|Mfon z%p*=j-%T%Y#ihaowlre!p)q-@FnTTE7$jU`fT`;pRH^a-90)Ue`VNzY>~SX#LB4^^ z+2D%Ik=Y?>r|1pQKTR12gdotFNRArplgcS8%g0TfX0}4uU^^5XX9L;spF{=Y4zHYr z8VdieI=l+J89x)ht7B4|M8SHM1~>{zxkY0ODCP?$=`eYWUW_hfW5EoE~=^RqVI_ zwC4A(8qB(VGkYd=NP*GaQwb5-X+Q>^X6~rj;4Ztjcv^V8%>pq1^wzxHSgq`YJ zFf72?_f_}$!ma^5g!>adwg&J}H&;>s2%aSK%l|9mDb$UGoIN6D%_W!W8I(R_nax?OPPtY9Lo0eOjVR{ov zocODaVx+@@Ek1&GqtOusWGiD})_|Cwe=~p99GW+(%_pcbj?R964D*emkM!bOQi)y7 z(2McR+m+2UcEAebpbBrT!Sy8uhx5^3P_fl+CnUXywhOW76=$6`zwRl4M$``TxJX}5 zN;r^k3;}Ux2~Y$92C}NtJ*6AFmFFC`6y;h|{PSy;Ccq(4v)DK&QzxryDs$z{@X23l zeWWCTH^bGPgT94`>z#_drzDSfE(G1yB{wACBq#qY9oepg0Y;l>Zdpc~{#3c(t`4T8 z*}@J37p#@jOjQpDDyplE`2gyze}J3|g-N@yGW?{8a+V9+s5#3(jYUa+l7y zCt-@)uIFuV=OYhP?cjr7G=eV$jWvP&l)2j}8N~WbZ-dQ;} z^N@fM)1!D6CHtpE5R*A9e;e%`HL}n0*mob0;9ROoSInxDJZ=zBr2=UIV61y-+0tgs zBM$KFJp@{|{4t4N%dH|MLBD@B?!Z>kmS7r>N zKti~U+})ULtOEKm^}I4lq)<chd(*n2asRHB=Hs4IQvQwO{v*dj#+;y*{2EmNJAI6_CiG&t|D6@~{?e#35gTy{0nH)I`N9AorqyGAEQS zzv(6mA*~H76x@MfhHs;e)EW@^g=HX!Hb$x^xfnBW|6yc6^2(QCm-S-XN{fH7ZLx#r zU)AYqPoHN9h*45a`OZ>F)HYt8@qBga|e{!zj|oAox0gPUIKoZS>fUg7njD~Zm7?*s*xTH1X5Z*Sk4#bDWL z*ia(WKF^CHQjGFaNeoE*Ig;FYo5)!1v^aC_B1yS8U&8PR<>A*7yK(4M8< zRiFy6pjKFabCUK!9q1DA1`PNv_#aCJB3V-a%_GnpIRNH;+G}43N_vwDrQiaTYeLI4 zfa|Ua=-{*opMS-r4O+x+UrK>>YQcVK0eZ{`g?0Krb-Pb>|z;Rm1=*2$3o z>Z8cr!FPpnh>hE!U=TAYtn1qrXPI_%Qu%<7YljWL65geuQeGLewyT(_peeUH2aDu$ z^U#PL1B>3zwk2E0K|wX$!wL;vtV55>28GRW(&Tx}&&p)KZIy9V-TQ6x{3|=@vUX$h zry*yX_JxUcqBl_HCFIQ=wTVAgVPj$vf7;?-;r&vt;D zh}dwn!i|Ubz0p%(7ldTlpn@1R(*N!pBLa4>Wo+2iM*X)MJk(2W7DA2hCH8sdvGa$NJ7orB)qM1*j2Q<6=Q<8A9kq9y2C{4?L$)#e+_{O?BoFsJEjPoh=% zpEBm5ANZ7O{kDQ3j`vq~ zCu~tTAA_@Yy`tIvc0Z{?I zEYG1^K=EcYqw>~$zOiU0{j6xz(a|uY=NRucd#dk&+*Vn^s=*}%jsA5)a{j^3Gs(Pf z^zR4O3~Z8W7M!}jG2YfSJ@W^g6w+hu&128`I!g|6NDc-FJ(8>bDK~LHT!li_JTC_B zM==0CG~{ayJduI%o+%jU0kdBKd}spIu`l+G82-AgjUu{ABEQlZa2`A}0gBv;yES7dYzE_stZf#Mt1nct_!N5ALbsdf zf7WuGFrUoXfC{rQEefCGP&xj*n@8m!ldE-0OxOOLD4f&&?aI9_Zz>rvbE0UyWc%Fo z{L?lS+{h`M6VJJufvfHr-}*XwP*?nWNR`ZPB_hm=GYG&#U!+2|{?i^?rE-|IyY$`! zM(nYcNn&$*^eQsjcAXPIy7aMk$G*3E{h~lB{s8D~phTzMFKc^fw&iI8jVQ~CRQAe^ z4fhopK;c`WRsQ=%)&K~egRUHl@&)mfgo$kIr8TTFryyOC0b6i{kE@{h7(@UVja#T zr015x&&wEi=ua*B*|~u40uAV?r&u!G8P|#g63&-6lszGN(&~Y!u)YJBQ9lza?oZX* zBNQ(HT_hZ7>;=GpSJi!a%?5N&TN#7eqk!%wz*P_kd}*iokDNe8udP73eM(Zx{dV)S zJ4$nrx#+yi~e&W+PmNa4plg1J|9w2@3vhS?gXVQ z#|oHU5jb`u)Z#x<&?dK`D@J5WCZW{oCwq@K3ws+JM&_9`cGtAdTDCoj?t5mdUpJ>u z7jJHo=rFu6fJexB8dl8+oZ->}he1?xW9W-$QbtAsxOc{+a+NkC@hML!NMKFHpZe;hSg7 zegx@r{3X7f0bVAqFnagtcmJo*Vf9@X5GYo-#EAp+DGAXsr4{`PnV+VcE5qFChYj7y z>Xg1b#^=#;t=Dwy{+BFZ&M1*D{vq|xZ>o(xvXI3j8ok^1HH~|gSOqWkcgr1Wt~F{4 zY1VRrIZ{vnigYTFB`4DE+BP=;*w#uL%kc^SC;&j=rV_9N~B4WJ?VTVDH1fC01jEoG+;G#{Zh!2A$ z>|7DROcg4mY;QwLFN0|yOo#j(cb`BK$^S}vVCeoCD^|rHH)crY!|Cj0>TXDX%dJ;l z|I(?zZK{(Tg=;Mj2tqrwnuS0KaooA3d-i7k)PgAlpJvkJl(q|=;Rl)7OC=ROZE5cP z;?cQ_z0aXp79)Gm8zrS+*j{=|Q+RjJU>jR=KU0I}?ZBb+Aw0c8Hiq5%6%H&cNI$>WI%hsCoaic3GOlHmDGq#~|a^GlFO`u1jpQ=`+dL2Yni1VZH)J^Zs3MLI<1 zHsy#+^4)RQVh)ZR3vVhZGWt^vxn$U`Enu{@bo>BKc zKNkLGts*5*R%|7O00Ma>E!te2VCUqy0x*@OJGGn-OA-a%4|}XeG>*5fNj^-CeCna3 zqSiR^(HUPO;mTLHhp(Gz~w?_KlRCke-6Xqp6hhURGwm;h} zRR+v-{Zi5J*2Th-$1GjY?7dMu=QMY26DlvfhXFj-QdnMGtT zrKI&iI=MkO=4xp3M*0g9$dBbi&)(m7aqtxwK{^_pqz1SnV&IN`@dey;&2r97K>f6m z4?6qga~mo-EPFh(KHL?ugRdZ!Pr;#TXj~p9dr4AodHCm4Ueh2U4&-Y!eIFdSFO`f^ zDzHwrDBQE|KFOr;enR%AjZDkVGI;{v3;Ba)Gg=5&=zj$grM1{yqhn?E0C>t02SX!P)0IW85F{86YVi<8J z$rQ(e)~-Zuz%&?ooQ+6LQP69%v^1%(RjdeElovz24aiLN?0b0krS26v{J0E zPtSLw34=&s&LsSO5{QECi^TOi$aR3J2!%G(@y*i1tZeb@$oF6i0OVxN=^;Ii880!-a?E zy`D&9uPtXvzh7`K|6WRnoY|>S+fnfREM6BL?XzMA+y^lD zhCh)|#tPc>@?u{zx9~&Fv_3SmKOh6Y?c3Rx7)Vu|Tsf%^&)Q7t=xB2%R4o?4q@V*H zO00T9-*fL8L6LtD%zc?bA+P8&h*ZySvNu?$^`VIrS$kjkItp%T>+uuE%3;~Vx$N|a zGi|34-PEe$mtWMu@v)0SleAQSvkJeW2W6arX?V0w0&GoezA;$EYR!8Jd^i_Z#S*_T zV;`N_!tmZ)fmYo=#xhWUb=6t@%u(dwD^SUY!mGc(obgj`8#=qzN3=J$o#jjUFH4Q&72!O1hKMjeaUdLwqmTas0j{6wtoj-m;q@mf$R#h)SUsrn+I@`$9 zJ4N>Z+w!p{%+_sBs?6-pd|vSR`Ns6XQxs?T-YvNHlxO=I^^?Jq$DH|uwnYaQ4@2qa z>1sYKQ0g*98-a|Ql&0zE@&K(70gQcm@=VlNOPzM{vFCku0T$3o z&E%SU5>OX!Qzts9J*V^B(UxaQvX}_{+IU?i%==Kp@vq}|eCQgy&9X2-+e0G(;;u5R zjn==e?lqexGmC*sBlGxHnjcwWxi2Jjd(cbj0EEns`$Ry~W-mX}J47 zB5;|?Rhs2wt%uk^xJ$25uqd?_xHjk0dO&nclV&C2nJgIBnHZA$Ee+{^j=e(7@%7es zei!L02WmRzGi28fRS5IU#Zdbo^4d%SW{sbp<9Ex1_PobKgiP%fRDJbLp)Q9y@MP*_ zYbAu#<)Ns_YIn7cRdg$H0<^ZnTNRk6-$4N#y#3izRgU>djjM6ev>b0Z9)o&aK<(I5hS=aQV4gofyOznox+KhD4!4E z=mc`syuH4<)Q%sCiOW2Ed21%gj35tFd(Skp*RdPU+^Xf_8nU&{fOa7allhbE)b~#| zmFV>Z)JDbHtK(xEm_2`TqM*a(oe{e;k&(v$QJt2Dvv|x>P<^E?)6?kUE9V>9@?fn> z$vkc1ozpQf14tpZ{YjL&Wo;Dr$8!X_UQCukRs9204XV*7hiDjsyLLL3A~)~E&^~zS zt14|Bnoi)HL{;SOs{(shD;WDbe>GaM87k+UWEwu+Y3I1}$?eR2|EB;PCCt+aaMs8? zNLC4fD;qdo2YrIcM4~EEnHYnV;NqlYgQ278CeW3{F%1|9`mtbKL3a_xd<@L}Vl#tQ zl^{=>UAPaJ0DgHr0akLS>;JX)USUyfTes*$7qUdbWdKA3R6rz463Hq8k~2sap~yMs zLPb%62oe;@IisW^qp|=20m+#{$+1WUl20%6UwiNKorinReYh{X9{8$ijydKSee}>; z8?%_hM%opLo#l2Xmhrj>&tMt;t8~_Iix>Hm{jHGTFx!gs8qQqmhjP!D4O`!qn6DZ~ z4|R%rQym!I>#O@Q7 zXNh7?i0aHcSbQRFz{j^h_;0(`oz{*@+v=(u2>+ggBe&S=9j_>nJ6d9EP#1O5uV4q) zE@%~Cc;H`*3Wf0?^{|SsbOZ{LggyCsxAPkDlWrS&9%wsH0qBLvirmWZq(oFp;RIjG z?RLgyr+DT*O@H;QT3uhN$OQ$x$i2O`GLDbT(nNny)0&56RmRH~3(LIiGn?Qk7p3F3 zQ`gWJzB>?Zw2oUlEpo6k$A(mmPghF`gz!|Xp0;S!tn5M%*(1b$cbfNp2o9#B4k}!q zs}?=eh)ieTMETSNZGp;h`fj{*%L$V?k$$ z8VuvpDiaixHA_cingjZ%tfLuQJy$Jtx3NCgZ{xg6+Ud|)~{CPz*yFeflD zQ&=k()HeW+7FG_2wfIacdLc{lwPg&(Jld6B{ykG&E^|Q?yIgziUWy*|@SFPvA_C$H zK?k~3m*Fu+A*^_}mTc`ptvM&H6Mt@QvUQ9{xxD2l!nfDU40^n3S1}UZYcOTXK(Sn5 zR~}!ovyppdVP~r;s}t2A+OL`PX}{D2@vh%Z>-1`QBXbd9y+Vo*|4Hs>*_pB!86K6E zRU|MJZZy1?M{$}mv+D(CH4pk72etkFF$J0KwkP$K-PV%#B9~lSYO6E;);#`&!ab^q zh>caPF(p*rV%u+LKgfCp9x{+By;EA8cHloDFDg7Otr7ZX=Q2^AbrXUh%A+dCwU6U_ zoErG&mlV+R(oBqA=)l%*57456n6%(jlB+)R_ZF}-u>{2Kx;Zw=@-GTo z0-W_*4L)*93{nN(`lzPRU$0XK4hD?mo(;SfYMFJOnI2)rk4zbZ+pjE&OlV@zv8s+b zD~)PGmNdlJ`KTfaW8M=jqymGZ>=FXOAEqhe1ApKS^jP5kXhlnBX+QZBz`rlI8C_Hc zosF5?0Zeg{n%K`<-m|zm^}y%*dg)dC=bp(`q1E##M8>t?1+r}oaRYOroGKQxO!j!O zTck5{P1>CA;l~=Q6s(K3i>jE8jIxB1Hyibgv-A8UDD6&NwF=)#Bfk67i!wHb$@x= zG)VP2@8{jn!onc8RofoEZ07=9BK={W8vba*@BXqRLzT{J6MvLfp-GgU@|o|lqD;$s zG8IuHgC&nRsIOL)0#5Zg-vSH=0nF#;^hPZCHREiPmH?n<8-1E=qd5C=o; zI>|dakPJ9Aq`Efb%I71$U0E6V83djif_@)zCY*PDcSzT|={kO;g+jH-P$<} zmnU(()gU6DYE6g0eDo+hV7E}Hh{rsBR_%h-z?Mwz2_)%O927HlR| z@>v18l*0B6&clC!Kq92iA^Q)zv0Q3*?;9&EHBw<1~+L?nY8H%$sQh8m zgy3}W#_8MQk@v4q&4oTSx#x=(RDRE7#v2gJL0g!u@$Jqnm(Z84E#2GJ(G~mS#f2lp zxW_+e*4rZ?&|Y?wocl$~W5bGMTh>p@|M@4Rp1(*D^mU*6Br=^d)brM};@dwg=lbW4 zc!)?HZE(P2qpb(t<+0HP_PtQ67j{zMk!rl6Clu#8<&di^*A{fqvDEd;X>A8mqPI4M zE;HHk)fJ2ym=KwWl{{fOYnO?;*<$)145LypSBHw&$3lgF6q`>H{X41lTYY@wBaTpH zrd_G#)-*_peXVjisHen6B%_#G4<2F^nNj`WL>n^guRO_>zBT4_9`JG9QeoQmh)@=l zXmL%qY=05V8%T8AHq=H97j-^%N{n~I9vxk{ajFDG8p zd29=p^Na*$Q)Cli_)3`SCi(AslF=N$2S;qYi! zJGley4_PrQZIqId&*nZ<>JEm(kP<}_kxR3Wgky5xm-Pm3Fp|*50EaDfti4GS67%8Z z<*(nOss}8+46AAmnAWPKkD6@h20p)G*`;CW8YaQds++AMXf}hs`#x<@gO>1BM_k%j zxXJ3EkiCB0nI%s@N}e_}qWy1wSNp!rnV%)pLf^R6@(1avYx(pALS>bOo}jD+AZBTU zRpsc{DGsZ_I}hZ%?15$Diw(-&K62?E(KB97=cwg z^NFnW+AW0VNSblU$RJioEx=A*%Q0HMoXbJ(`-Xa&JXxsf5NiG-o|D!(GHbn=4pfD_ z7Myq*+UJ$2+|}5Tk60~^@**>ao?M-#`MnI#FdU|&h)D$b_mfHuaP$PzE^i(ASVl5< zjj!KOsdX@uFM2cJbYHHHjGG?zu2g5@2l?Fq-aW^Ud5WjvdzrE6E$u-G{p>BBFRq7@ z-)QTsvEp@3^{NOLGG&=p#i%zjJdL=c@{y%HMMT!(T^@s|-XNAmtosTuXNWKg?j;uv&Y06JMS5LWeKQ^01HHNHF0;-(Sq}^wj#-KBxkIf{0iI8TQmz>cpBY~F`%W)cWvFPuIY|r z>knt^=V;>K|FWh3D(tb^MN-+)31`8Hui+DgsVAG7-pXLEI4Ot zEMx++XTQxW`RD8t`!*LkEQv)km46mdeZv@O{mL5C@tI=QbGFX8yrps1UyKWaZ2d*Ez=O3M(Xr)b@VXvX>{EwAp)XICrobR~Q$KF9yyBwT%>2!jl}yND9f%!!)O zltnK^0K9FfRwgo@<8?qVqX@%L;${}9uuy+&OY<(##;a&D_g2Eh-{(Rb+7&f-b`&id zNMd)R1sD!W6fN@EdvYmr18^08N1ap~?N0@*Bi^$(?(q}viZ(L1O@*0arZ~y`s(3GG z7}lbD+gEkB(F;q5JW+;)n!pny&|b#F7p^m@pGsnQZBhC z8CT~9FK6I;D}lFm!De$j4r9zMDu-{8jcDUAw>>=(;V7d{vIL8b8UUhVuczQ;w- z!{WC#ug1ySdsH7F=m4paJ}Dk4iS+yx&x1_&!jVqkru=K;&iq;98PayAGy^F2NteZ2 z_BK)eDC+vSjhTZQSBrffsun}dO9X1Cbh1JoZxvwCHeto@{&>^Q!4tn{bHRP6{sQ-P z9T2rtt-UMycoV(7cFAY$`Y3&O{?bhNqq#WQH$BMm%Zb(PUHNclACfH3yR#R)nof0^ zVI$i<7||!d?^HB%Qj_*{S+3rYEa)#@zyglf^sAMqJQds9SyBrOkD@OgJA7f=v5+y# z$VPl`{N)4v(a%}3L{TCQqmOUhdzI#YF0{rVA&H7AorU{p(SD%iSU<(K>!{6KPkB7h zykrJu)#~`~30wz>9%_}AK=$T8$zVOJ(Ghml`S4G>xLEv;q-7L~cS#uDC_RVh2$XbJ zSj=7&zC56eWcqpMBiHvom6DP>&V^;50b_Ym`DY#SzRZL3QF{`zgXnd1Jt8iiW%Ujj z>1R>qpb@4xtyAHKXh($&anQbSn%`L*@U+veAaCResV(UDxO5w9Bb1#p)Z4o|JL0^U zC~46C-el1z59_IiakWT9qkjhZ4xgR|aY=0tY(2kn?a#97!R5F-m^V^Uc7H_XurW^xO>QXm^#0 zhRfn#X?8WCE1u6fczfX=tJ!s}F$iVP`y_Z(qZ6+wzQ1rCNsNFoj%{J1_h|NZ{?Hih z1=Tx-KNFO=P`dc4L69}+nbObuRKy(LRQ5DQmr0!3v`ErcGRR98sKMd)-RR}N4J*0M z;V=RO-q+z}xU}MVEb;oVZOTnj!0f71ygA73Vuh4tM{3OIzH^2veetwmKXlMKeW3V1 z_X2QeNA2@(GMDp|36UoLc*kdz65dsK4mg>^CZ?3BZXM&Re#i0IzbGAPp;5;DjdO_d zoOd$v*Tso$|9~M@CJwpwwyln+ljHQ}dC%Y9ij#GoP1_P5f?~UH-C3v2k~wsv#7w4! zz|%H+m9pthr-F71;Om^p3sJSRM2L5=(m8|<=azLPhuCWH-Mh$F3wz(&fJAzhDald4 zc$-P|GZwUq*}f+klg>ix`%WXE0{1ctrqt5ScHIGx2Ytl`aZAy!;Spqvn4$*xi-I~i zX|uHR(HlmP9y2(oO~qY8Vif~?M}1VWHe#kw4c>QsbYMdTcLQm%>`jcIWas<{c#Tm; zNp!F+YX6bbmU-lQ3sI#S>{Hx+%7qY^7Nf;_(1!eOU+!)HisI1l#`9$7TME&LcUR3D zMvgt)W$h?FH(4rOo?PsOoHVObIgJ!9J>~i~x;zLvGR}t2A%BDgL28okP$BRHyKaTP z?!L|gy53)8YJ*qbM7xu@WplP)hVm!zSmm)`-7N5h3%yynAY1?e`CFTYNv12nr8o^e zRv=Y%by39JjTG@K$oxj^H_IR-6MnUA*j(-a<6@I}Oy#>H%4D9ttCxUyn!~BEBUfZR zmo^W?y@tRf)f@Xa_@9&Zjg7Vf(wG3XtAmYxAnphJ|^d9)vO_nTL>>_Q%^8gWR!88GSoS zGA*6F@IP@0r&13C;i$u)%xDz6TQb}4vak&;@gazz+T{}n1BoOXXb@@#)iNv=+6K5< zS@*=H>a?uju%(1A6=KM;Gq%KiaFSM=_AlAy?Nf82h_@>W6XgRv$7|KCC3Yqygc?cO&0uYTf7XsN1Ydr7r zJU?wFCn%c!VSQjI6R zpg_6I-47qlSpx|L#tTNy9pDQUJ z7YFP4+%X#&%}YAAzeeLzJ@uXgZtg^?((Z&HGsF3%6)w3c?V5D&CnpTUN8`hb7O=Zq zu1>3`kS%xfRZC#o6cp6Iv3lxT8b%qleWP}Nf9PR!g4rT`>-R?$PCr%C z(!J28ae(Z57Ds4U_(kOeM7JYhJHl_ZAu=q_YS1tG*l|%@8-B4}Kjs*Ap-a|$xMoj@jgPj1U`~=jW{{vFb8V)^> zJ0NV5U_JT5!@BLhIzqVK@+k3@%e`S68d+DkzEq?SJ~PmKbg+s+(I?+7nNlJ97m+BA z+&OX!M1l+UE%k(h3BFF?`#7;71@e|o2v$Wk>Za7?(XY8Ds%$3ji557aL;eIHlS$&GGl?|T~amnMLhK-ao0(`sC zYBjTAO9sggDqc*p3(;6Z&U}_}j*jO+i(!dRI}7k#k2xLf@X`A}gMgY7SOvwW<>@|_ z*2pw?c%8*PEG6s|2zeF3LB81zSFqCWiABsG`8d%y$Ob^sY`=N{e(CO@B&SiJDnkHZ zyA4+fHj?Cl9ZVp(pKPpW4@@4*5wr^eta5adgTtT>L^5$f_}saBO{WX9#M*wtpL(HPa_?T&H3~;BZjRI9yKF`kbB;p7T#&0sYZ6 z(Toc2WpNybg2gjOZRGsH16@MqTH53?AJxP?zCHrjmfE=6Ze0Kz%`eb$`q3YGBi`~+ zD2q{buP9=@4J@|Uciv&7Gwl(`$VP`uB3yHc6ame(Cr*^c3Iu4KZ9}j8s`huil2Ito z(*m4l?iUi4{>r?#>(gPn&=~&g?0ni}@W$=Utv}-rd`ci@{Z{jbDGHQb-bX2+CXL3}K^WJ|!+Z73wxftRp06*Qca~yOU-3N4n;({4#T@qXzPG z$R(s3Hjb+CO^Sub8Up&L;9zY|`}T_V2>J{OwjfbNYO}8yb)k>=-9?IcjQq zq$-`z-B!BS)?MV}s}5Rg$occXG{bOJTTXizAx?(3|2ZtLbIa?e%@b}z}qhy|mF zh>%-b>Qg6>F0|nWE`bXTG6ghA-6j<6ieJJeg1j>DLcdEr;2@c|0e!-AvO1v$_To1W z^2!ghePD__6|z0z97fnE&B5*EzUf!j<(csADCYZKLO9=b50h4-VLL%8I@ z+Ls9&K@7A>|5cxzP*$tCA*5s*eQ!SH{UWLk5d%j)e!1NNop(nF+<-i@h~LlgCz%`7 zjcGnV`{Y+aVBT@YmosO#Kmcfl~#!MoUzHhAg<$RX0Gl!(1UTf4z2D4m{ zw`iLQZk~w3KnsOvLmfHWQ0XTPP-%`LV+${1@AXXQklzajkqk--)Z#8!NkSs6_&(?P zOB2rK(fU8Vaii%$bJFJ1HEKd}vDypcAZBpYRBBkEMKm)P12*ikK5Swl z8S{o5tNI~r$x1KAT+Y@KmLC|PlXQ8jHM5sazL;oAmJ@OB8T`!zz+>yVE@#u2@Y#mUc=ulk3-lzKg8RL}M`PY3ts zZct^)RENh^6?jI8}$j*I4XBIM2ObK zmq(FnOuz1j@wqSk?lqwunQ!>j0ou>HySwZ@%fl`N*B|}B77-DHa$|(6%P6!*G0ir# z;Ugo$vp_alc=-o{JYY+>KxBV_J=75iU>V}nwUG#kD4fO~qL+}Gf|6|MKL%(?z?(J2 z)R0VIK4DKd)vUc^47O_%2qRezKVD#~Ot@v^q^%9i6hU;i#J3G=S9?hbYdPo0)> zE)+Zt>*oVx4Q$1=dEyfC5o3*Yl3kX-ve zzmVX%!%O#|xq(KKG$JyJQodSXMXoo$|VNxcI63?mGqxRvEJNSl~S zR#u)x$ie&AGkDAr*`arh!(!%zM&q==a3d-(VA)8frheLFMjyNs7g)G%={(}+IFXc5 z)02U{_+A)N!>z1rdtzt_FZ*;-!Q+<>-~QwUDo=R*ME?8czef14C;Y#Pf{YQ!kw}}g zx_U%xn-e;6#a%>JR#x@l!{lIYCfDI2L7(m7GiT2-$s{EuWgAp`hHV_=1P7m_6?R=v zs?9N|uDBy1(Ow?PEtQp(B?N7UZQVX>M?2CO?c29G` zI2yozmdDyuwti)4wt7~wzyBY!;=X#dyQ^|Z@$H|h#8_BZWbfU(7S_isBBBRfXn1;7 zJTx{A@~P4z50D6<5zriO2%(^)OixW^jJxS@X9#1bB_$>GXoqTDBvwI2{8=XeWeN%k zjZ~ju+fC{OnwCQK0s~PQRXx2}RW-E}K2=(>HUz3n5Y|kr>LeXN^f2xVbynbxXglFAnwHkJ5P92*2kuZkSjU zcV8a6f;-T{q7U|{%ct5C3^RRrd3e4ygwV8p31d(&H#ZMU=(8QEcw11rKWKtN#o>Qe zy5Vl5NQLlRzI?f~mP9sLQc5c3Ew5S3cw=Y+e&s47i?Js%`^%Prl8Se{}baZ02 zmMU>yeKtqTc6WE%gg2=Sy^Vsor@FJ$m{xV}N=m+sHt=lvyP+YTceBqBZIfTQRB^_G zZr{8qoT;?-6zR|f0b9L^Mz__8Cf=84&z+0d-1ObsreLZ2Q6Ch--H?0#L-NPI?`!Si zT%8}{6wM6sVW9{1y}M*ym zQ`gdWiOjEV_vHuG z>z#5QxYmUQ>qTs>;mXPiDH)kYoRG`8)2EYQRM}?j@j9i}Z?`uVbJQ{v8!;X^g)?UW9J8)|k(d8PR_N3cu} zHx#mWRe3nAt+sH{gf<$37o>!Wv2HlDWA;|Ev9B&m1Qy#ZQB;>$^-WdkFAkQpzBj6q zzjNm?cf%Wr0P?qEV`JW%$N&8EI@Wi`#-Oxa{9w4)qH8L6FUmTK#TyOhdCl5l zy$ur--rblSvfJCnw??q2$%6yHg?n4tWu;y+q_0j(F&Qs z+L*9vXfpl!jPW1pU+TlQoV+hX(eg^S#9 z24`t$<8bq8%0!niWEXE<#|h#Fip-Lnr0?E+6A^I^mSAsZQy@brK@9i01VUoET3Rzt z2le^$XVT#eR7;fUbX(js`>rx_O>fN<`Y2ONlZ`wQsz8+ZLqL;|eZ{_~MH@7~`#aaF zFaJgci_gIx4qal}dO>DOd=y4G_o0#QHDha>uokSA_oK$qYA?)E**Lj}2%WzB_osx| zZt~v<_wz$W+{Z&845_xrQ0*lS<5K#LO-zG@D7hCV?$dE@=gyvGV42qR|6Fmfze926 zOmbbosrkK4Y~OIX6O#-$2Z!nb#JA^SNuP;!6c{-5on4JKgg)^S#%Ab7iDi%Md|v^V zD*Aon>ST+{LO*v;p03u~RBMqidGjIm`pBG`kulx+w|=Fo&ATr5Mo4+AEC-FkCSU#% zj8ja@$grCD682PVV;etT^5D}Ena-o9L=wRxe>@cpYNSW&LBMvp^yzCQH|A*-#9w?F zTkz@WTl&jdMy8**0-;kG)g-e>H=(!-JSNW>EqZgc9Vs^sTkVl=-)hg;7!{mlR?M`+*1$O)YeXM01k8zuF>ErHWVSqv)OzYs zg~9q(GS0qM5@YF(To#YvHG9dJ{a6>`CHusG{;U7g%|+41AYJ;aB!Pd3Ln zbJfbwA7r}WMzeJ>`JG)|_^Eexvf&#zYyns8uBvK>6w$ClBW<{&;$PxB3q{F)O9>Wv z;w>SS$b|FR4Dz|meET$Y_x)J{svSGaS@ZKp)$8g6-|eO;zO;5M)=qJY7r_qYbvE zT6t$8eynzL)CSgc#;E1KM>dj^8mfyIBO;?P|22X8*OP-+O zRF7oU0QUCo{mDxpPcK7k#=4bkLp9spo-eRbRIh+IjYsc$NJ>gJjjv3MFz;(Y)VJ<< zz|bU@m>C!(YWKHuILjx(tG-W6)IlYojZ5d z;TYTX>&l$bY&gxpUFVr^mvPODIR!P_8MS%$KimPNp$txjU#>efpOq2cym|lAr%xUj z+KBGhW3DqjIng@B<|-3=JiNU4&nLJd?j#qsjIU%G*7_1Wf7BZhzWWYZFxA1`5-129xE5iZw_u`|^7oK1tfb$>2@Crqy0Gxq|&<;0$MjaB5d!HfOz z56w^9Mm?k3;Tg=oSce2I~zUCk!)*IN8fN8KO6Zlh9c1JTjhX~#PN^?J}zqJ z-cLHsAQii2^0Q#BH!lZfMp-tJBoRRBQWf5rEE#l%tPfl6l+h4MU!WwmH4!`X$FXBm zdwTsl-ws&aYQ^bts@yjQ%u3u>9){418wiXzzkdAWNl&$xn+tAKU$sq-NG_VQ=kwDO zgktR>5`QFgAXA0GXL~k-*w$^Xn}v*CtV)@;s4q*6*)IRt@b`T*9x#&STz6JraIiYI z#s}XfjEh}!XIiPCVgw`^C+x=AU3&ZW?dhIINO&c#i-T8iTB;b4bFQ8Bh3Xff*x>ja ze%w`f%Oly9uF!=(*fE4myy@EbnCdW9Ob!Bob?s%#1TWBha*XU8WYCdHxB2qvc((PX zT1F1NGUc`Db}swMPN7Fa(ST0DvlfG~BqSs`ig7{!o-3fX@;gm^J)(5CtE+3xmmC0) zwY7EFn*Y8mV_lMKp|wo7Z8ct#-*)(Ca4l}6Qj6Yay~AS@eh-Jn!eT!4 z_s@h{QL!;-)l=?dM##(rznRakbner4v*^p$ub7VaS|1M;pYp0oO-(K03^NN>0T}u6 zqF}PieD5p)>a9C%^c#mZ%{tF5f3JfW>d?l>C@A!RZTP)^+LO@=@nMgAq~B@v*^?av zD8T2rK6A&$OAIG0bLh1BdL9NlQT{9AjZ|~JZ^3^(E-QRjh!fHv#_D1~496<~6etXGhgjkA$e{-ZF>rs!c53}=xc)bK`y#LCFPl*%i z$nUXg0x_UxSGDqt{Nhdf-bJ^C{;Lq0J`*&(0eDI68m{ezrwi#*hSLV*n{fb)fP*zT^4>v z>nI7i`rW(!sj*wc@$Nrfcw@w28W3wK5b*J9bMAoiHWr66f;cO#*)bh)2SWA?fd2#z zS0Ee7N@0N=o)it@H9`RegKU!mxt5#WFEk0Ji?CKj8~SR)WmR5ZRp`#s72p7twRA7d z63V;hY7_G$^s$4hH3ZTpJnt$UO4kGUr>D%p7(de?0hp6rRUD$Q{hfUN`?EE1t>v~Q z&jSNH@qLB`1j~D6q8)Pe%2lD7WJ`t8fcl|oO)}vI(77#6^1Qw;xJ!Oj6x)&m6hEjRAjJU?lQ68&!6r-Ta(d*4Bu0WMnmG; zk4>SYWWS#XaWwyo##R|{?g@SdpZoxN-}|bHm%l^3W(!+D_2lbUuKI5D`UjLVuY|8R z(Ab@`#FMg^wfTGE=Vn(L>H7frw^g)0CO)wah@2G?9zgJ}g@GbDb_}M!n)H@~%|M}~ zsOS1O3N1aA86O};F&J;N+iNQ48h`*e<9oDnz_>bP_DO?4$QF!~ty6w24>)`^07lQ< zl|~l;=AMhB`EgUN?=p1lsx?$pROSXta-z5leR~&8TVv9oII%D?-Yqh1RRy;ub=eih zRjI+8UNcrNe?B2;z}apKKB=syr&<=3$Ra3Mes71O@mrDv(C>n~;2f)yY@!Q2hIi*{)EWe7+VF`#wuntnY$?ksd- zxJD&K>gwgopCG-(3OcR&_{dtG`3MM>5652)RXeEI&fGjxMqZu|n3dzi7bn}kbOoB% zVPU}gO?NgHrvU4)FZTo6uYM5{!Y}Hz!5+40;bFzZe>^dQx5LEIu@JHhz3LX-5yV@EbP-SM4mr6^v{~tF#Hs`rf@S38hwD=^>`= z@p%9zS#I9E5B#bErbEEso~KgJtwYd4{pKD^_%=w$TSS;T-q75-yV>P=~ps z&9qaR@88c)duU-|_$44PNH&5pERgV^`QIF}kEnBZW zeBV2Qvb3UiQP7dmj`21p$Of=NHb;&gUGt#}dVc0e9J2(h4I*!oQZ<3Jz9p; z#=+XPzCMqJo;`i~7J~A#^=Q>V*~k)ae9#k;Q!!BSy7YhvKlP*w{M>f}QC0jj1@%Fo z7W|UBJru+X@%^7E)MDOc$H~Yzx>wpVkV{Pj$&l+Pv0vaoE*4Elg!>bZPjD)OpaOT- zxoodn5QLtAfdSV>Rtg}^6=RQ2sFzr35EB!#h>00AhSF%}e07ZKzSGYj?m&i57Mg^cZNIE_r~9-=tiZR`mPg@}l|+Z!2M zp`0&0M44IGiZbIWYnd-un20iK@heM5%cysvCP+84H>)i;IzpxC=oC zHYjJKOYSz-woXFsqRfZ=3c-8A*Idld$kD`9NcFDN?pBk?4-W^l;BfM=bvAP6uyta99!M`8_Hh^GWb9~R?+icey+r8K=%Jm9 zvnVq&>80OY-*$F(w0QVW@3u~yMu*?H5KiHQNpl&QIB{`vUMCFe(j}2!?S*ceI1xVn zx`-Oe;qb$+Pu3QPSF$&9bV8|n*rP<5RZ&iME{?{i!yX7H{q97<5oP3zG7;ms&U2lE zn}_4Npa|Fhc8G9|f1M!d?kr;>X2f?B#cyiF$HC8QYQn+yQ1B*)pdgP4hrmq%?&~Ie zH%uQI|Er^4r~GF(QV*dQeja|F8~lRYeB1(p{5P-vbLGQ>|Jh#M&c)cAFcmSLf13U4 zyTi63Tmt4*liml+e_+3<`&i#Mz$6r zgogif2ps*;-2Yc5g-HCzrvEV#cO(0Mb9!hdbm**hj_P)H)?yMywys7ZT>tym|Hq;H p8Xd$kL^anxu@4{q$sQZ)Hgb)7${(X2og$32uMq#ba$81(%q#fAkEMq-9wi&h~$vc(hZyLW`=VQ zu=n@A=kIf!bLP5~QRaD`JJwpiSoeIFl@`IoAi#h?AedsJg7Of^E%5dxbI-zhr%SfBjlrnorSx??&l zNg3Ov&n!%xF0AhVbeo!2wI#puvpSxlKdEell=3@%{=U=_h7N)Vp&}D&(;R!cpZ(Rm z{ZDg*UdulUyE{s`MjqSMwfChp1NW}J;U@XsSv?HSadfe(H~oWld7?r{UJwig0!fxC zjl;Tp2hk0=arwsU7C+kM8~z)~SHF3ICVTZJ6hd|NMihc`^@bdRnmBkphM-@)x##u& z`fc(PTXY$TQd-ikMo{Kb*nq4atFW}>6b=x+nv3yJK?Bmoerrl=Z@HJ9C`0Jq&zjtS z`dT)L*L^Te1pDBhz9zdLPXn$d@W(_do=s}2b}#s+*=VX*IAu<9@-Mser=6tKx}2yz zhCteAxVSV(-1ozJ-p)U8KV8X!rdLdRXkhc57Y*lY7`@f%6u5qTB=~n0;_S%ubbmz$ zxgN;e^M|&uHnp~vduVX*ndHds^$M#eSWH&045{cKhVLNk*M@V7iev{erI;fM3{tOW z$B7z}a=!XOe&MN+k&)?0f!1n&M!@0br0EN-&Spw4)aSgEGjtj}Y&a8q5j_pr*`i?9 zBfr1hpZ}3(Fpr8z2!ubk#Ph;K%XOpNWjVny*lBV($+G~7I9rqPJXQDsEjO#Z9y;r0 z^%{NM$x^(C`*C#oy(g5$iye{HqC=e9s0arkq}1NsJ>*N`kzJrw+BoZCtzaF)Z5Scvb(BqbGgbaedVTcVmSy5^LZd3i%f znUe_T;g<1mp-$oN-|r`#mlNc=^~J1djV2$vGtRK()bqkj+itjCeOSHr%aYgSMf7mUUhmuWwx%9zP3sVcELS$nPd9irJf+vn zZVA8>p$n&D7fJj)A_48Us1y4+@gqB*h}P}u8somht?5FrIHsLZblvK&;@WN)(j`zF z$@Cz0lX7)jq$nIG#@FrjzO!GAiEfzZXd(@SLd_`l1=OyM$Wd@nm0zWoc-jdpVZ>D3 z0_RzmVIh&kziS+3V{3cR>xopzO7d_C4?%Fnq2dT^?GRZAw~gEVzh)hXgEX6kWyDC~ zmztyO?YKsHs==;^;zm$Bz{~6DC*=8wda$D?z)fuK7a?u7nn$h{t7rLO z7z^#a3aj=iEU&aBcdmD?Wu-68H_;R6oZzyW1Iy0#TOAAGIgG)$f1lNPcR{bZH*R)7 zjKMO3wZ;9f>H7?ijfT7=(xEmF^>=yy-GZ8m>d*elKpJwJK};c2vadaiEaXI$e=9~K zVYqkCb*B@G(wB?oq z+FM5xP8%Qjp1k=kb9D`!&-li08;K`jq~1mFl4>w|m$OYIwA#*MckDC!lv3X|SKJeZ zRi~SmpZ=pO8OtQJRexsDg^GyX1-KOF(?640BaA%f67n{^#NwOwn|%y{WK-7zx?B7f zL>uySq`_nerlekOGE{+_g3c*#W@45sFA?sIVSc+)*3cUy@9u7^CyZ`+b(#9tZ};(F z$;mG)urK;k^w5lY6W#ynq183rCLU>OARo20jbPjMS!xcTxqi;G5l~|4_WLC|Iy(d4 zJr^Ro$MYd;0Sxtjn!i73*s;~H2$pu)xu^D{XI`62Q!DLv?rj=Hr{pTe_@L{sYQ@FD zF$NKC?Fpg?6r@iep*Rl)6~M*Q&0*ax$I;}b{u=e)$>Pg}%dQJbAi-O!j~d^7cgBH)L~k&KTCRMD3*pM=UT7uSWWe(Q=BL=X|?~ZfRBr znt48*#KKV+E}!=^yU@II8_s3+VQ|F!-yLX9fa_ggwS^^RJ@G_jN0o2orTVyZb8m|c z8VRnh9kke2P*u9h436*;TyI&k*1LC~Gi8#dbU{|Z9hX(r%-AM9XP!*PB<6A(*$f(~ z{*XSQ3<*B1mU?$pE&XyEz3+6c*qMMDnVIGWpUjGe_VOw~?UGZpb0rQ}5`S#9>MMgF zv^iLR6kZK z(v$=%9&&l*T&nxo;pui0_E5R$$kWoj22lB`;@R5c=8(hF4Nl_h=KCarr~L@IB%*?X zK4j-9wI%_A>`nvbb?DFOHhw{;+x*K1qRtlu3M=1gSQ%^TYS~-|jWiS{c7v-}SJ#NK zu0O6@KtX)Ayxy<&innStdxXw%L`(?tp!z7lQ;0`^9H;*?T1Ae>S#WkCBI!CB9@?U# zqgS78)@XD!HJGtw$PkUBOBfLy3-awHJd4*u3wbGGD|ZzDx+d+RFU6&#hISV_r9@8T zL4~8rkyxhGI&&_PHWlX!8TIiJ)8g!$%u4MR@O6u2V^OX|rZ)*mbKeOGU?h$S#7xxov_* z!)GgI^WN8{I9sa_59>Kwt7z zSYBz?;iC!YcF;UREjZ5xU$#Bt+ox~jbqW#g7K+*1{DUJ=|E>mE03L&da~o2M*nQ%v z*t|;k^OCadhWZcb44HsQAFnGm=9SF_xPjg5H@wv;*DY2sF?d~%5(u_#^?A$B;^sLt z1I_D)a^eS4n@K-tRhXHHv91$7)dHj+#;qGJD;d#}A{@3m|C5$q(C&%pq=b>Xq7#zEMsXvLYDMq(=5(bhH;lqLx+Wt|@lsYC z;y*}UcJYIQZgt=5(rX?Jwv=rL0NUXMp|dZR@ge8+nzOZpCB5qXwIycqJ;10-n&HU65nr71@_H8L zMWYeC&Sfh&jFG(dKlDq9M(X~3Sfj0i4w$iIn_mu?O{B{tZkv4}Plwv&+PopvR7mST z!;24oWE(a%&xQ4el=|`H6=hG(n0<2jq5n^r`v1Rl!~cV$@p`9h83*<3SBN6dDt-{W zl>|$_SkX1(MTOUKk*I$R78*J1$uL7?t}D9|Vo4}cI*I7$BYN%Ah#kLGBou?Mx@RZVIMm@lf1OxKR zt1RUvs#JN75)656r_c=ZTt?LHfW&;%OTAViDEY;l5=^!H9bi8T&zTj6S!5=d{=ND| zkJ)If_;X&-#z|MjgXU6b`fg+hjpAywWxuf+REx2927gcn08b>}Zp{0$hEVdzZY`SJ z5wfj+UNR@b&9C&~l%p4G{eq=_`J>qq%Ohe~8K^J4z4X2~i zIUdXO&c0KxH7umNn2uYqB8N7jJmF;iw@ey#YWiK5#h^@^Rb+;jOBe%EvRQ84yWDeX z*An5r!hltW8_H|1DY?YOX|D(Xg{IOq1eWBCZ15nNs1u2lF^7U(q|o`xOo@*g!{zm2 z9Wo4&r3xZSdG7BqU60(?SP#Y>vroTu+Z=JKh)vcA^9bmn$+>KuH)$)>+m-(wV$~sj zbQfHmY@Q6J@e8^R1#5>Yg$$~m&8CRGXt7h1Xr!_A(Mkr$bS1=Z!y$zI*~h~B(WgrF zWH^xcxi2doqa!X64nFIEa6Qobw znPTxQHHH1kYsaL3U|N)R@QV5jqA6_9Lj?{v;x6u5-1#KJ6Jv8Kts{#KK2#S!5v}di zg}P7M=}F^AB!fnpm2*b_s}Lx~sQttmxC7)3Fc19DBmfJyZo;LZQ9ju%?^e%s+oAcE zYZ}38zs@*0qROwB=PHkxfQ|%U3D>bNzM3q|JbJA!-!AUW3`+u1&KH8(Nba zwXQ$Cu%Go8Kfx;qrQ?ziGdeGVA5}3lsDiXqtk=~lWme=V7XxXyK*XU6RI6bjY71T< zUqeYV1t8|%5fNCNDyx(Nm9K#3E?>Og^HD_Of-Ap)s9L% zrv@;O6KtATCmF?Il)>?k4-_InwbMasXnMcrRx$})+b%#r%%qKwF(7e<%-wZZ3+oFa zIz3212FhvRfou5P0QSi(a9*^D^PWj6@f>~m!sQqn{KP&eiN)&m3-F0Qr+>*OO*wD< zQP#)nif&m^?8~MGc`4QQy;@YMe8GxpvH$*%Rgq{TQQM*NC114#M9A-P?@SWBuRfte zr9h!_(2`TSOOd3rZ0NHry%Ngz!GDC3*m8d%A+^2)e2Wcd9?(qU`AZ3DXw88maOl9g8+ zW!^B6fRFPJfT?tc@*0%=UW}yCscvmQFMH&@u;Tiy1aI0>-y=I)5I2OIQsm5G_d#u= z=%u2U0(KK&R#}+0L1zyX6!velG(q~?!Gw1Ic)nflh+%IM_3>AFJ_y!js;{CwZix|! zsvf`kz?0eX0FA;3=5L@l{qm2D}(VtIb-as?VrkK=F z6raRU{}SEO(jbsvZ&16$JSe7TP%8`XQ07kOQ(oG0TmDL0Jf;!C}X(FZKrF*RFlSbqMOE(oL z0Bc?Hm|s?U&YqL9?PaDN(l0!%OB#1BK`d8UExe-8`YaX&WHZ|U$S6zFD;I0rzXFRS zvQXWU+}pC_nVNzE&bfY}iMGo|gNF_`l3onz_>Y&9NH{qlx->fV%792_V3HVLErTT> zsw`oS%`Zlo+;$o0Wz(x$MQ`_dt>JtZROEITt3cKxy%S)FP6xGh2ZO?xv;2`}^~KX5 zjLpfcvK02tsDw{f_qhOmC(GwLcdiV~D!BtL$DGqDyg>c8AG^IvRP!;;SLo0$4pu%E z(h~5>g;}WPEkTxvk?EbzugT?3vv;317dt*dcl+A?C3so8Y&HKG_2LbU)4eq{S57e-`p)I6<9jJyEFvM5M&hqCII&VZy)Tjgw5K%U{ z2avnln_T98DOlb#(FWHqErNdex(@zs> z6wg{~+T1*MVm|o`lJ4%;bhO`eO0O11`YOYtX6G+~>DL=DkT)LTu|!Ij0b~Uj!;3Ibv2?=O?7Y^iIB0Z=m1pG}!XDJ` zG*O6AR7?{M+24$>pgJy;F|g*0;BXXH9I=3bx`#t^(8+F?o%acpU2qdGK_N8Ac|2=V zR@tmKswPI7Cb2+Yn)XSm5n>J1U0@HHpS@UJ!wX6(5G7BI;KhS`*jNmX@WqLOVWW2% z9JnkHv65f1a4$iScIWXxvVt5^JpAPi%Aib7xQX0w z2?t}WHOn>L>^`WJ22;BpksumG)W&W#dob5E*I|tf9n?dRES-iD$^kSvr z+$R2{jkh@(9Q~mToD7Dx!Rb48-&zNrqIRbl6toxA^N9jn1JT`@#`^WS%W5_r3_4+B zoRO2v3`=`7!`$>@9hIIYT}JNl*Eofe84LG&u3}7-1qUMPv`Nb#Cm-DdbDL8Ga-R|U z(sn9E>O`DGl`z_QQ9>m*rBabi1_n4?i@}oT?!VAAX>o}Op~h5@&_5t~GGqvI07L4C zE?|THJfGCTD{9RUV* zyX*KvHD)*AORe(#%MHlA&MQKT;&HH7NzBlfH6Q9>!-lYRWu3$zX0R6pk6VXs9X=9XLZQ^*1 zb#=P#bwEq%dWK;z`h(ij>eZiHva99MoqaiJ*V9P`(-B{tQreWDm+dA&=2ho!J%@)L z{CTbR`l%8(G7oSRGJNtJyVci1CTk1-{E>#&xyHh`xAf4S%jlu@_Mto28Bu&@r2G1G zo^N26qmFY9A<-DMrWV=7M20Yvo7Viw%~ zuxnC?cqD=-NRgdIBf}@S=+|O0j|w}vKp_RrYwj1hTxu%=-GrUXI=g--mEv)!FkV!H zEtP#uZE@0yt&%-hxT~}lq>n1gd2srni!}vwHcLk6?07_Ag9LQpWK^kyyk?GnX_vuPpc&>nsa&wOkPVa1SoI@Js=Pxpie{>=uf6*vC zR9_)gG8UorW?IyzFpo`iGW-%1 zx`;eBbZt)w%%n|b=&Y!}ur%~Hsv3ru4&(?kMRco?itS3_>s?0bA7weni;wBkJn#Bd zxO&>+_x7c25ZM8wm?=+>MlOT_#?g3`i$NpG?S6(mDA$-$p2p|)v!zm ztm@r@Jn@K49rY?8PiH22dEYpz`EHBGZ6+r@og!@@O`9j8UL-3!42V|Gs+4UuiC`8 zsuw?fZa~ZvjkbFijHjg+J4a{~6?Mr4S|bF|1>q5Afn9vcpQE)EthS6wDxncOzgWod zK`JU&*2)8QVjyOHJp~FJh%w5MbGAIIdN0&Mqw{fzVGG}O6G{QkImN!n8DpPfh0Z$R z1SP^yg)m8*GWRpl$)$8D6aVRX!H&`jf4EV1antj?q}1HZg-DH3=17|p3V?_-1Uy5c zKJ!CGX9`30C!Qs$bRF8905f1g@hH0a$=j3C^~~WaW6jagA!DzB6cn#RiVvAjr^Mmu zfRuGT(NxQOigGgm#u32(5DGPI$&%y9_hWO>uH;ycW zUxOb!o*L1^h;hecQAhKGe!b%YirAUFl}(4~@almvL{2$3ki*$MD#K1ve&3|=TwvrF zt0-@b00R8#EI|13638%cH;6hH2BeJR6WJZW@-lXDO>yZD;^A*}L&zKW1>8UdL6FX4f@7r9TBQfXG?bJO3J`VQHJu;MR$_r&}q1!tCXnkqilsSNXR&Wa! zmVkB;JN;>QbM>TKhpKC4m;mu}3d79FTO zSGj8na+j@XG^13WzCpBHqk?+7jU6xNNHdOk>Ts+93R%;-n+ecu3Zmh zc-toG)2cuOm4&+&#^KIuidJYf%Fu_Yt-hjg;XVI3mu zG>V!u@vnydRvaVIX>qUyY1})WU8)YRVZR%Y{6vZty6LZB7||*)w-qp6H-*;rxVY4r zdIZcFiA#n*m*dot5)SG2nJ~W6Yq_4(t`@=lK9gpbZ2ixeEF^ho4~v8xm|nQ`z)}sa$hn_0UYUPts5b zcWHV_7+qDPVF0%IQEThWi}giWCdh3gU=VxR(~yLPm@4TxuT%cmD;2V+gk z*=%VWGM&2)w6rR`K*hNmD$dn`{zbWkF755-5vB~$by@`ggm!y%K9UPa$g(+pC#SYu z!Xex92GVAAWqEOZP>xzf%kXMB3BYnH0nS-SxG|oi+x-Lsm-r3zrQT_Z3Q{7on~A9* zBYUh;3>YW+_OEE&$DGLUftphWYObD37!F-$x?0i|u%xT11Khho&oe>KaWQuoz_j&6 z0;r*=YW2BWBT(O1%)f1#LJaWmF+lYz0UqM6>342Zn;-wGy!61-Z-U8iP8ACnNLhC_ z7-sh}Ffzf=w0y&C=QK=s3ECRSJ+wvce zTmNa)GJTM*te#=VN@TzzXGI7x@?Iye-eI#N;oL&XVp1LtW-f)|tLF z1@$}{bCOsDiZVK9Tq4r7(P8`v3}OzDL-FT~qA97mk%g*2><_2Lmb@i|P49%6OgoK; z`V6N#O|Sr2mT_KIk*9`lokWsT5atPQLJ^i=g2zXfC0;@h&Fg6|`wp90xE4*k>C%wr z8NA9y$L%vtaJF$509y6YJ2|&VK@9#aZzbuz%S6zWh zsBVcue0XTN*-!oQ?A4ZT40r24U_{x*$K*oqU!sg7AlSfa*)63EkP^s*pz`K1Dn`lz zU9mP6ELQ(E03si@=X&BlIFxJGAqfUj>TfRt)E6G|cl$ZuoVkX3Nein}QgFN!$8rE+?^g_cSszW7D33z;zO`!tV0WEr2&ts>RZ)tlf z9Mm{;&RJ2}hQ;<$T~sXh6S`u`i`%-5w*Oy(C02(`B;`x@G@sbi*JpEmEfxH>8T{E|DqrLJx) zENJ||=_xsZE2<$0bWXqwk$XU%cF4Je3azFb zAoNlC(cJ9kicm#vLz9W+SJ3JPGlffNvrswgI1y%2#K}|1&Q|?j{JvHW^6M?&h2qbh zyisSKR^iJiv!h(LWDLh??E>c#*}kV6?gDN)#$?6nC;Y;vLk6?5VMkx8}CAXr` zCJyZ|M|HA=gL z50^dprw|8-woiOp4FA#lVqr9|N?Vk}u~w+~KL9O>7695WQ%~hfK>MWv08O5pFlx=S zH}q1r9WR5Fee)mvQcZ*KPq1!QPF3D?t^JqbgG6eX&wLK|vIOk}rSctiXnI~oX^{Ti zT4dA>%epL38By%y3Q%;v-+)*z)~~-3U+q^LVlY!i91?+I(cK^dRjhXl3OhM=FgRjR zek)6RCiaSEajdgjztS>{oEout@5&P>1_)3o-mv#)Z3ubN8Q66cOo*a!m>C8zrv+;= zd@H9Q%WwLU4U_HXs9w`arx8k|C8CYsUkb-&40OmGr8zKsOG+1XehPz3(gW&W{~Sw_QU%)5Wo9C4ZG=CD1qF;r6pkn zB4yM}Z5?aKeLHLwS<)?fn^3E-5@kw?S5;qwSwVIL3e3Px60yI&a<5c@)1rAy83YBy zi*;|cp-zB{LdPl?1!emKU|k|zI_B>)T}4vqBmXU+6+Lc zaX)-i@9rKMZb3oVC5#63IWo11!HeLD8dcJp>FfO&tpkwxRZB>8X^EC`P5{= zcC`#o!7>Co9;5Ug4TF>7r85b3T>|RgCd1A|(yaizV%XWT1uz*6=uf|eJ-|g@!=*W( zHUG;$T5=tnsh|(Z__4EF4zPL{=swVl@B-m_xY`0td>CTQ0Z_*Q(c3IKJMD1aVD#GK z_oFgBL1*VEWAdaE)r)mK^Sk1qso>NrV;Hab5AqzdVPH#gaeAl}lvdL|#>zE*R#RDF z2;?-)b_WSXu8>;i@-w(BVq8VB!8TgHuv+pz6F&|#HRYlQ>vAXfI8-jxnlDgmZ|&BT z6c6?-FQLrqAL>M>5YoovA4D=?z;hI4VoB8PbAq8xw4h|pi&Z8=LKl9T_$nY7k0PTx z`Zo2y-7IfqdT~m?4(v8ttlJY*ea2|=X^a6W)} z3Fy4X7C9hp7#@dJCW)RcqPLr+cZh(0-GBRtorzCTG1cFfy&b6SGL1XWF0+-80SqI^ zasQ!O9q~zYz8vV8Ztmp+%j8rWG!lrJSvU6{x!QYz0vybPEuSpR|oHSY5mlpzV& z$bW>s%^NJ`Y}^v^n6 z{sA5z5aX$!cezl%aD&2r%j9ZV@&G|G100YH^uu5$^Uq=KYdpX`dpi9J_*QlR+WiXq zYnEu_HC~DMZnXpYf!fhGeNL;FJK7JJ)+p$gXh9c}Dkj>`2jfpWz`0H<`=IjxWdgX@ zF|GTD;`BmkcfX36O&*w=NjRXqz|qON;wNo@W^~Wt_v?Tj*!6)4z*mfhZa4>n0BN_I!N-YF6VZIit3!BM@dbXSmr%v1vEw;TK{4<*ykfnCxb!!GbN zO8_h)RgrT**n>A&`s*xW&@AApUHOr6IlBg?`v23p*L#QNHNW(nPZJzbxH>uU{mgCr z`zxx9BcV&{ik)tA@1r)NCq(INQ-=bDZQX?TRjX#H(T_G2#*#fsDlD&BnSXF_AaCh| zrHLZJskEW3i3~6YAU|C}Mb3MQu6;cM?B=%H>MjXt5vN(u5Awr#> zfEy)IgY)HA%PS&)=B2l^IVl1B-`vxdZrF4^==|nYIZ8m!JC&cuhD5dSIp%-`MR|?D zas-CJWQ8a+g4ezF(!l!FCkvU0$&kUP17b}Bh&2?+cK>8TMXj*7`YKSLzjMF|L$EcX zSa^wjeKO1c;Q1m7+CH;iCkr62!D3_WjllTL0aOB*`(66a7)7CqHfI3c`j~)OEQfgI zY9MAqv**Da|2~RACl^RH)RBjO(aq{DkONF8bW5|81Ly`M9|6!sc0Yk}zsmbJ2M|aA zJ9H{L;Ou}Psf~_(?EjH!)}QmJ!Es6KfHPDlb4CJU?k+3Aqa{3f803s zxTxe+3ZXfmpUuA}S8P&8PHnm)d5vuN8L4&!AfdPcx8`k`tIk zQ!<~>C%>tl1f@O_g95!wa0P5i&%yC9xv`@7E5cMCd;=n~K*XpDju>5^!65erCMAVf z%lsA-6G^_p#`7&0vPlbw=?-AgXi*{nFI2D?+dq*tV+ zFb(qSV}{K0S7J1-Gw;auh=>|!N7N>9@A)dR=t9FD7*D>}Aygdd^bE~=YCy+s`}#xo zULgz|3(L^9kNwZT7ljJRH{0DU;|Bdr8Y2V~IA4_M?cHUj8+Fzp%rTab-l2m~2Tlg( zy1kefae~dNvrP@NL9r@0g=ZytaKK7KcM^T*Sx=`O*7x3h+0rw#W#v!fY&d8Lb6F>C zU7dLr2YvXJfO>&BUevjcQ1bY6S1DiqPTTj5H&7&jfKhC=TZC)OD;6?l8DYoH>Y9jxi-rjs77cl-B zRIQrVcBRcb@YfzuP&n_`Z5_#vSg=!#CJ=x7YAgirI%nap- z&WQrqa9MX=6oZod9JE(YS|?!tw*6irro=!~6z6=Od5HU><56LEPX}LSIZ=;(g2SoO z>fp)llAs{1qD>nEx!5P~GZd+!k!xvsjyhpBmVfh7Q}XMAy=He3!3HOy!aP?@z_FHj z-s!l=mon3xxTpgX7N?I2r4AO_P0C5yBK+hPN(T{L@5Fo0H+Rs5autrE&0%NbcS`Zwg~hC+xz+?PZZc3bI7Sdukg|+4y~ku zY-a#^i#ksdaz5#v_qHZ6GyUQug%tB8E@sVq_Q?3Uv>0^A#B_KfBEk&uPuFL0sYQko zbFIosMWx=l7oe$_=Zo?&QRg4Q=^0e}Q2wakYQ-7lApFn>w?+Gp%G7%KpAygxmO&l6AgU(=d@K(B#x{kV zTCcS)fF1%pDO#IT`N$`)KIIS4A9ZauXMWbx?>-#@#*Wr==^W z$y&MHC~p8$opOe2UPos+^@V=Cw7HQ&%@eZ{)%xlJ-e+=B=7OyD^5E}s`$t2ALJNft z*3#-;B5Wt8ZT_X*`~IOY_Bna(Am zTBhH>-FVRmC)%QWd)<%v#zt8oI44L+;cTbeJFA1V)iTc@_|oU@ zcYpZKKJsT)YPDf)m6rUGG#296&e!8yAghP7J4MpctpRy&P^fIt^1$UJfwOMcqK1G(1)8s0WZTDjm< z%)Zd{OJSxT$6W**p4&V_pegQe*>D!K#kYLUSTY_?E*2&#_<2=ch;%mFFfTW^e|p-J z4QARJ*G-u)(w$R}N4~PU2aO2ts||mgx-svL>9UyMQg?2Vuv2k!%+gbl=N-Oeqac)FH8-h4TPT)F2Lp zJ(m_>@rqS1k(RD3Za;N;2DqqCCQ216+xWBy{lIM3h0#{md|GxdA2PPCG+v(_?nCjY9qRRv z#? z`=>8ojuO_0IfSpDoav1gF}rqm^{g+&9IY*O>N7J>Z*6)Q9rO0?IVbw=$4yS%(a>@H zH7`WUD5#sW%=i8Q`-Bz8hE2G#CxnY%YC7fm>nyHs=y3tkTo zd<@DN|3(rdy?!y~6Ft4r@}0R);>okU#kPkz5yqaoLaIn@;&SUc(bk}Mry`b39;+;I zo;F5pop7$ZffpP;Q`*E< znfd~wDCztWEJ@S1vbOWj!KuzMN$8i(33O6z^u@f~nbqQ7%6nRa%P;nW(qp$LFoq&FR<*B%7Oyp{g?9neE`Z#&h@H zYVji}nA{EwF%r+DxN*4eKX*A=_eKbk-K}~+z4n(YowV_MHQp+=CPmwULGb%M##nE! z>({SsVJk@Bo8}zqKd)=>r1hS66`BXZ3Cjxe?z{|3Zup6X@XaNwj+!(SavT};@_ZtZ z9tu}_C=pXp6%LP(rD9FyM7#UtS44oN0rQYwnBQkt%V2@Yadk5)X~8%LW07-jM&(z; zZ;rL-XHIDsj%_3`q7dA{Bi2FK1z*NDd`f17{mS6A!MJxTS}+t=l3vPFr_gIZKG;FO zb^Y?;`*QQc*OZe<#{ez^z&8&&zXfd^ZYiBDlFV$)f=&-Q(N{K zO!v}6becP3K0o~Kr8AYxzo9{Wyhrx^S=RI4J`GQ-93Sz=>?6DGlRtd4yvF$U$FJ1* z$iEj^suc0QZ^=VaNnD9Kpx_xXF#(*6InY(i8w-hK&{ zO8C-e*$|8*6X~;AF4SZ4?c1tDS5v7NFsK+uWD84{xzje7yVd<&1H}ugS%ETg9pu z`17~I2;agR#^;3R)jVZBi!QXLaNddHokqWdZGWR}Sn*4!U!Tp9_aj=xzb_ih2<*mn z-c6^Nl+nArS)IRMBtoY2F^=;IK@LV$T-WE3y>gB>qpq^%y!Rl+Wo5~IV;J7$xIx2F zs#1=!j1uuT>uhjrSYz9j&fFYwIBxQ}^06~SnwO(K+UoXrXvrtLN5#u^Uz~_3A}us2 z&Rg@q$vAyyS(^mCPMqCJGo#pHW?4AbNJ^2wR8G&r3*NKU0M~@(_Iy=`k>*=(ofVjI zT@cr8IVSa*-nik7{*ee<>eiiKcXjt0roNi(3bIVs-#yej7wi^z#P0Z1o;}aIX4;2@ zA)#rdoS|-xo}B!j-z4o&-hg}3(FveZ^@YS0PS2WmtrdpO$}~tk(3&VDv9k9=%WC7` zZ`UIBc6s>y)&vph+j{IopT3k$UkmY>2G(+pJ`1c}KT@xu`0AZTPxH?gJ&z9%Lb41s zcs+;GKVtFY?XWi_WZrXFvIVw;q#X^ogYD;c0&_O}#K3D*qz?`Bs8)<8D9WwESd>zF zgkM~>Dv6W6{8DFa^y^~QQgXlQ{qVXwk*(@xd`gV}1g3qPUrK(%gZ*uV`EAuyL8kZL zA;oVSSu}5}v|kv0vIVO+Z@rrx>p3mC!^zPRpL=`qs14mE1B;e&!vA*}H#Dp_N?78) z1FOnM0feh}PgPWI522Ixf~jqC*a_`}Cb>^}EvTE09MY{V3l(raxzD`xAW!FKFGgY0 zfa&oGr@0Tawh?{8nLG%DD7HIQagrfq67Xr>AxDd$%-a#{DmzTARvK+&xQ%FU-pfuN zDx~LWd`t9n_X-~BZPCZlLsmRbb;9LLbbG`@SfO6?Vckx$GPL1_yG6zG;Y0^n%jlm! zU0B%8qX&uycW#NRkk1r67g(<4lJTGAe4Y$R?!p{FcW4*E{-QB{?=N=eZ9<&S#%2{{ z2phZ`8;BqD$+Lks-QStHg|!EHuCKH)d(Ixd^lbFx^HNO{UMA5IIEuHlbus7k8?dYV z&|720Qjz>=vln0jzZHu-?$h9S@40*EKc2m=k1^w+;@Tl*8;l;9ssxKuMCpn~efoHH z%yjKT?|u^~9Q^pPl@P~hvg5?X5+p^s#hr~K5l75; zGagm7GvPnwnJTMAlxNa723-c+%d^7S%d2tg=u~j+hu&(=Ad6;x!m>EzL@?Xzx%(dx zLdYPb(x3NbkoVrx3k(G9&91%?a>t6BW)PVBePYFuAT)5$Fmrw?|B0|5?gX+ta?mnc zl+rLF=^Xj1IE^GF%Qs$XshLst+&zJSLoMY#9_K2B)pKv(lMO8PY6bITJJCSS0z<|h zK`AvjF?rJGe+-(2D$wc0`bV}}cLq|*kw#oUDoyh_D%HJS`kNLsXOHN79k*x;sT#4i zk;=>_sl{H+xc_mi=$=+Qk|3Pp?vGbG@!sF?ZBt8DGS===B~(9ad4lmw%hh}mE26pm zUJ>b2QNlyEVpUhfZ`zYHmM{1D>Bgjm_H9_;HJ@Zpop_ z>R5K+_SnXWjhS|&-z|fG#(r3&-3>n7PQa|^m<*YShr}|?Bt-l;B7xL21@&Uq zRnDq35)sf5NtZeJcqmp)SWJ`;2UZJPVB8EuEIioLb=D$-cv+A``n!H;xt4Umwa#-Sd`o_iNr-rOKC&|t|eJT-G0UVQhh^#F=W@^7`fXQv=39!VcwjA@{J~_V& zY7`~==vt`N>ofqzI}0pt=PRNa9{AAWpQjb6n%Y+YmkHZov zc^okYc8ly?toglpCQ5&UZ8;9vB8rLraPHfBra44w|JHdvN>#=P!q$;8TN{kdeHY8? zW6y`s$006h5B%{5`i_)X)dP-cO)`fA-)-)5k=FMdtOUilHi}6~vE4pD!!sJNnhAVL zk~oM}J3OG*T%30CkyZN#q0=Gq*7=fyOH?(&52xs><;;$GIOg|x&Gu?;hnAZwZy|v^ z(r)h6*zD6!G^uCo(Ao$#tf~YW@E*;!+FGh@A7&x)mevBC_Ng?tS8Bi)ex5HkS!Z(0 znKB7EcVhnGJ-g-7;g~kxmzBng6cr{@O0ip=3k?g|@WEI&;q>eHIp)WPhk}BHfRbBG z+77Hl%{;!HA4)X7So}W1H@b+D^M(u5 z*8BLVTMj>7;-@qNmJNPg)g+u3B^(wOXe;osoQ#f!HPAC9r;q|dw6 zrXSsAu>Z+lU{guJ>i<5^=(4N>iN2pz_~VYFrOt6U>4($E`;SPHI#wt0zDnnHonWZl z+m|O_tr>Je%CZI9JK2Edd%d8k1W_8}BGZRX8rG#=r9ZrF97pA5bmQ~1*nQI@p zro2kO-6yLjer{*kfORrR{nmB4@FSNE3#IL|PkEqVvyAk8Fy}F<+??f3otad8Dnqqx zd&_ArwlkCdFn*+iEM88Tq`E--!2bE2z;=Mpt)5*v%Qy@|__oFNF2&PprfUw#uivYA zycI9OJ9ZDI)WF{4&}?o0o8ED;;x?@L-ah$RUjCmgZJhEQG9iG?TjgtrK@!%?+h7m6 z)-t(O626z@1TY3XZrQibwtn|fofwsUG2xneCj6t{kDTBF!?gA&WclO8H0pALa}oo) z;QmSM9cJSDAp2}v=WiB{#1Mpfei-r#ft~WI)U6W2ZoXJSoX8=5_`kwQ2GRR@dWE+X zwP$Z-)?eR5n+nrm!|Yfq5SmU|jd^wfNp@dUdwA>5UQdHFI}&YXP|QK@>l%Y`Gp&mI zs?quL4EV8(JTEdlV#~4Ts~|I*mddwyrf~>lo~hugqPUJ_p+DJn<9)HfKu^m3{hGdk zCmI)tPKw4H^~G)X1blBQ&|_Xu^^^N0hkhd&SR}O?7{aJMm%TCh>2}8ak<9N&OK&q> zN}Q2f(Rn*!ZDV+75V)zw^Y9&!$AHRCYgRCRNId1$qchynK}T!~)#4XY)}Vvx7^+cB zIF7mSMHKKHvl=ssPujOlY3XxRrA=*@P4|V2M<(pG3V|IgPPo?p0NM-hWh1oD%WlHYrdW8$_W%s93lRhg8w ziDq;l?++MRDgQ8E+t*$Hu~RwCqoil@YaNjrdNyh^RbMJ>dLJaY?)j#x+?1dkQZ`Ws zP)5|IA2MS<&B%nY`-hkj@3itk`i*AnSx$b^pg$~s?*(QEfH6GK6Y_Tm2Yjzgez^FT zGvLW@D4omOKK$dh8^VaM8((9KV0?4}7q=pin)xfKD`{Y9a^Uiyt8sW7{X+wf`At`6HDcof%q?ap6&rNYfPj znAPtt^9#Pf}_ZePX&kl85H@G{c=W&I56Q-~c>J z0QvbJvAcE8Q^&CiygAw_Yd~q6@W1m(!m^Gd2J%Haoc0DBX)1|{S}dg;tF&_TlRL`j zb~oNMj^L-MtUSZh*7s*Ok?wZR=g7K&Pjd^3n6|BaZL;!88*nv*{sk>1PUz;nOs62a z)ibcws?PehiiCvP1o?DSdFps&^^K?uRxJ;XYSfMqcCd?Ie+o*Ze2+s=&bv^BJHO6; zj1Jj_?gwfyrg$A4dV*5vW;-d|a8Q|2&z=5%arKr_Re)Q&=%PEMyCtQ&ySoID29c0X z>Fx$4q#LBAyF(GATe`cX;lAvBzVn@Nf9P=VL*T9X%qQkz7fPI|fe-?~tQ66C@iE?F zZ~U>*-9&VpAc^0D`s=uzpvQyP9kX98mOzd91TRb{xGPO&Bbsx}X~>NNNM~jfxmj#v z`$!uJ@$B$_Xv`W9v6k4k8Az1cTvpq_uJpSY@D^afaSVhVTM0AD2ag%b_iSnQ;Gd&_ zR?rasS@Js?-Zx^xB(s#~6X}FCi6437+1b1O<3D(`p6B8)I_q;9hC@+)(1?G3Mv%az z3sew)7FM27JRME4=9whR**V#As3V|!ODERO;Q+o-<7}T&&+2v+{o7R{`KC=xa5<06devM*OQqmt1ai@8Rwgl1dSGt zPU`)8Cj0ZHsv4(>UF#7R((lO)TsQBx^MY>{ z$zT(siYul*pnsUz{Fl|Ub6IVT7sE(qK>&|}8dM+3ygpbMmZVZgsq?pC%jYVhuQ&iOw_xA#rEVUAtkc@!v5;?ND*#iNbMrE{>!% z7&eKx*9Qx_3zfP;`xcFpX)zw!Eh7iV6VnBd7;&2+U+_av=W2Mozjdm~4e(2p{Rd&p zev)i?8(dIR9=4WT{tId3=?h{$tDE@O^?_(_cDwiV(#KaLq&O|+7CTBLOx;FV;Uh?Y z8Xf@2Z#tg&${>tc#Z0ipa0T753@_sPkr9-m%JQKWT)~e*Djd4`4B8lBypcyS51R(%&Q`kx&NLE%4+lh};I!%2>3qot&)9;pGC3@#AHNK&CIO4UW8d96vK?1H2 zTAG9nK!rB6N!ed&xSra@&`hyTKYSSx&dra)2(OOo-ngt=mju^xwMWI zJV|g?I_M9EX4a=dekEgZML`)O+Mpf!$`f`;KD);~#opBBTbbSl?=5;@8!AjwoPV*kMezp;MvP%>=aVipB=ze==$@4@-x5jOu;%vKsm|t%KNkDxs3y@!OK`~H3O@hp z&)WQ3%m8&pqynrs@lUk^XF=n!18xXY3eY+$SS=-nZ~iFLPdm7F#0CB?*mX7yz*2_Z3P}EFfbuS zfP?wN|!Am*)sP2f4(eoza&jO$pB6d zY;c}z6BX@BJ7mamVA@ODECj6sxcO8qjmQiYhb3dvU^ii6WjgfeG_>EiJUtSXf_;o$ zg%DT(W=!s8YYe=5;aQFD1Lo+Z9}XZ11U?95#`bJ|=IAWNq_Q@@*dHTXgUC3|ruG7| zpOX?Xk~AZ4P&9IN`ZpT!EhJx`Es>?r6|aVz#3g2c_!}=HoN%#c4fU198#Z4Em+TZLri^PQk5&%j1M8>n1Y;A1 zLZ?5v7k(;o^)WqO7Z%tJ=0xh9SPRINaT%m$4eD+G93;vu!rMF{7f|u7BMfxc&~7wmZgBIXxsHnt(cL5y`70>zL(PWL9^d+A8Ce&$fywg=)@b#_;+p zr#}e&^wL?$Ozek2K}c0Q2$Ie|OtJ(%B$70dj;2b<`|R!6^$%lbn|aT0Lp^6DE%BUQ zggJhWXVk`w=)dVtb%Yt{Ori2A%7zi6!IMmn_ecKqS{D)rvsyOJ3=yI{4u&O7tWVpu zwCUnh+;Bt~oPN?~fUWF^flvhYZ-y#xw#E1waUoG<9659!8@v7O`G!+{*<4fFmU5PQ z{8!}i;lhVzgw@}zchd67%7yX%ZsLAV3^gPsii1l0OlO(r#cCQ0Pd`-);TDOfO z2Us8Od3X32U&_VF^OD0puemOhlmO6{$|sI}@lH`V3x=M!XS6RvZmk)e-Oiy99^;hV zqUX|kZ&G`049K&#PetzBI^CZdQS0E}DCM6(a<*sRersBOvt#2dXZDF#3zdJvh+6xW zpB)(^lx3k1kPZ$@B%8(CV$?C@x(I*=&G?JZ@kvlSV8R(bo;Q$ozRd?pF{Q?~6foUa!c{up@(M8k0%iJ5 zB+>pCfeA0<%jQ!9k1u-BTv{ESC;Zfoq$oGkQxF1~zAYoP{twO7Z%M+_OmdigkRir@ z&l^*tRkyUva9c)xLp^UVo{!1(N#3wuTvCsuZ;qT=+&6 z@7k|m+srKtqka|9tgi{~H6obz%5glkM_Y`qb!}0duCgYlvV|IWO6?@E_DnA#SPkgX z+ouig6D6!4?XMl3Q+8!!evZ4}D!s6Jr~>r}KyWC4j3pJsxobT@4eELUcgUPIAw;el z)IR|YCKsB`AMK(EO2o&%W^;nhkN$@SRTG~hFAB%H{-zxe>g*Szyzk9SNBDgen#M>+ zrZD}~uD1BG5-lI{j?WHVWppvH)=E(=RV1hmz3m!`dn_F#wKBllHa2^zWmk=XRVGO% zi}a@@)o*5Q1VC$$pEXTgxf?#I#yW9+9_x;NCenm?p^>(RV3uU9OHZs?bD=>?c2l2j zrinUn(oED9u=<`N-X@H4wdxRgr;lLxK(~t=K)Pr-Pw&@|9A_UFy<_!==dGjoU5&NF zeTmtD)2ty&$GU&Qd?XF=gL8*=n5JV#r^>;LV7cn zlcRqYAqh11J=$b0rw7^3S*SBJl=zRcOs>9HlJ5Vo}^$5y>O3yc@e6z6_w zpI&kny};3Rz5kSTBd44va0D6{3HfDooVOL!{7`c^L6<3M=*UUvASRdj1{qbUQS{s6eW0kT)uhQJw8Rq+Q=?eT@(HN5#CpH z;llurBuu$V+~1}9XJZoH*NMKO%SBz^ylR6;n7i<55arZroy+@%rRMH*O>baejD4QX z=KO?U)H6)G_V8>+h|K12@ap zfq*`tc=F*KIO)I#U;396@ztC)oE}TX_E|Q@+cAK*b5fDMcZ~Q|!A~c&nYV|WGk5iZ z=8HwlIG@Z1ri3gz3V(VxSZ$(|X$d7`m(ZKpb)C3n*Wdwut>9j)YQpgt(e(WBi}Gv1 zlYfLZ?`GE#2WR&BePe6Dis!7fBfju?zpGzpJvEmmoD{7$*9Y8V4V-Y=qaDj?P)W<{ zMncKmJ9ux#mb_vt3ux5~S33?8?nvPoafbdaK%Rdx70r@^gG<2%#4-X3g&DE-I>b?Q z>=D1ecmVZ^b`k|EMLwMzj9=eAn{tGy)e-t3&J(eT?+5{dL%_({ zY^AQ|BcZ>o#Cv`i_fI?-6}2>QL%>OnhDz%Z%{v>g6YdZtea9pK<;Qh)_yw2$oyHP( zoPhzny?a#fEgZ#qQ^k=Of{qUF2x}))f&kP$0-m(bLoV`kYHS^{OH)nBz;o!G)8<>D z@Y*}4#L4dW%SN4E2}W84;QStxAi7fb4|)|6`S#25AS}Cl0W31XtEm&i;0Ktjp;f(~ zMadXQe3~V-8eq94nXRQ=p$W??#A8rEMVQFAm#ebn)p}tz0Huk1iy(B+Jxd=xO@z3) z#8|F3_)8bC)DKzspyxzch^$*!TD>Ox;hKu8O2IVTb`WQK-s$2IhguGnF1y=1u?)@dfw5TSoe!B`6?Gk{boJHnQ$-M9Ibl z?$bF7+dlhV$W09v|2iXQ{Ih67cGKQK?Yg=nAIn+o9`+B1=>Gn6Y_j-|e4(IS9E>i$^g_(W7`5~`92@&K*N$y$n3d2&-m+(?>@4<>b-PYbZRB{k?Ab! z%pH4PMyZE*8lx`dGmvQ$g5#$TQHG_x>BH`chWV3;73Ccn=6#@TcqdF(aNLB`hqyMpU-bgEJhN4&jmhkQUVjT|P? zFnWg}A(eBTq`)`U5GqP3&MDc zHJU(*p~jS9iB)%d!)~`bXei7mf2ptaAl%{N09P9p8!b+&13Fb@Uprd+oC#lAgA$xjiTCQqaI*LRjy-;MY7nb4P;1sDS`M;Y6Qnbyemu1;M)3E|zp5QoJh zOD{`TrR^?QdmAyx++;ymKMNcr`UkgJ*1g~*QH;aCFctzt$fz%I`N#JTxI}F8o~El; z!pfcyh&X0E(}VMf=rar9eW&8adIe%ekS!^M)l61ijZYEpsSDy_doKu*?gMcdEF?Zg z-XVW|j3|!Fe&sfW`idSTz`J7Cjp_b+pZrD7GGdr^CO1{4 zyB(irK^a#lbxc&TB=DuUbP(e~Y4FcKO?3y-(t@AmVY*Y1Y1rY11SoEAruTZTh;rT* zV$`AMZLz)inX0IFkvl;LJ#J}BDNM&z>mkF9T{7r-;I5Xsy!yt)^0{Sdo$4@TQ2 zbY8tO2u0eh$>yc$$6_epc!su(d;UPw;#Ek}P7I~3ze$Qm#;V|-D*aJxQqeE)muU!% zGQzaCFVk0q{EPV%D2ROA*(8rGpV;hac=F53a|A~{?|@6HV}p0`KVATq*V3i!%TT*g zGLalZ)A7x*`kGs{Ym6QD8ZPu6QDWAcv5M2s-%NddzkRNB{=zWcldA<$1Hg3)FD&v& zGt;3vHm2Z)gtUjy5(q!)&IB5-C#Ay_2${q{v8KY;_|@{o?Q)7Y{fL;MSf*ampbC^N zu?^AZt}_2YPIlw@E*fYfpjKSZ!#UT&ml?gC@pE$zyd67qR7InV=Fsyx+p!HoCwFZR z#EiV??iK{c7iR)kdaW)A7ukA!psTWc-B#N|S-79v)=fJd&7E+isA@l0xkH$ELhJ%w zi;xD4kXcq5q{R~9wpfsSI zYxJ?Ef1_YoK-nhOm3D&OwC1R}Ubr&hmFYN&2ZDwQ^)I5*NS8;o&}_p}YWXF=HHwS+ zb!ek}LXK14>d-G%ADKwZw~(~j_(`)rusP?zJVO;?oui)nHaPBUuS08Y;Pj7Ssl7IF zUQfN$ud*BqrPtLb&L7vB_`1-0*vxSxUu{k;Wl+b+&uPkkiX{ehBf2ZXh= zx`G0^rN^>o(0B|wRP37M*D;J7x(>@_DG@kl)smO=Me~f45 zSKI}=ovi14Xb`95mg8isMbU44kHo~eB{&J+A(fpH@Q;?;aeaSE z2rp)!kY7t^SG8W03g$aQ1eI#}5#D%D`F4R#b90`^FkchC=Y=^!tD#glwo@{KCg^K- zsO9bUEE$Wx`3%ZQ#Sa1n=lt=fxRX0*Z-5?wG~9+vqjf(hwnvqVN^Jy_X?Moo5`3?6 zrC>0USCk<14O+UkmmjG#WTrt~Bi6fM%_D#oqJ2e}c=RSt z=9gj-H}?z8n_0f|_W(2=@PEIbv=fzwzgdYSYuSf4Aw>z6bbz3W|F65L<*7}W*7;9I zEm^Qs;8Xg^AHOC6TIcX&o(&AX#Rq23Lk=M)OP*3D$f`V&$JOPJn}ax;(^>La<6m*A zCVTUZ3DzeBd_}p6F$m~?{lETQ#h_1+!>Q(8J$N3Lat`~`n~6eI0R!F*{UE_lT~Y>Jng3C%mx9E*@%bV}0wc3Q zJAp4iVwu=?yiIe-Zo8Mza%zgOa*#Y#R*$S0z1KM5&=^)@TWyfFbn(@x$l0T>_q<&R zqSXV;IBUG@4k6ai@P7Zb;JK-YyLZm@-uGShMdl19&s_ob5Z5=D=%5{f9e)_5e!Sj( zk|CBKAb9CUo0iyE;*|T6m}31-tkCAnQr51Geh(ZBI*l(7|D|u7EA;sOL?z_lVEAXK zleJq9=5Om7(Tp=b9|pcFm>W8w%RUfm`lRbZppx%C=KEjE74Z`+S#{gJ$RQn30$V5M z#2X)_ZML}_ndjRD*ex4pkBFyx4O_b|;bi49Ac)KVgVyrQ*XFf5<7{|KHb1hbf5Y)` z6C3)&N^rpaUUWYrRN-D!BvWinuUuN8=_J|CTCqSa|EoS9YU%hSAi~67Px*2S1=2es zf1kO)H178IJ-K4)~C!llbJ z+RGCt8=Uq7dR&Ib616Uw^pd z_5>YNyKmnG%mPU=RIg0pvnFoYZ!{Qm!j*?pwd*1}0mDcD25^dYKGQt>R4?K2(%^K< zY-KUHvHMIYuN(tZF`yR^?GkPHRDH3{`uvv2M$&NXgs}HVFWVfahVCG=3nmFfGFrFs zG3uKjO6>@0)BWA}nbaq$O#Ka8G(M37Z>}ff1311pPpIMzOjs!C3?iR)+KGc~5|#co zMb{?lbBbi+3lnsX7TXnTs;jAhdaCwq!~gmD$1C^8HD-kY%FIwNI{VHqJ*VqD>aMeE$ zw|al>$To4wOa-SeCkPZ^i4wbe2J3rS%MXD+8aDv}ABG1_wD z7L@9l0|$Jj5ja?-(CA*|dso`_+pA7KytFaS;2zS^er#e>z;0&$g*R)3ltBt>j6@Zt z(@Y`n94O~1?QTjLUWe_E-}tR-QW5L)&#&d^u_IqI1T4J2Q1S{`Sa{13$Gj`s78@PkFa4Uss zQGtVvMERr1?R6M?8ca4xg%3u`)-p^4jkk&)%@8iqi@&)!1Ey*|1B-;+eDz59BfO!a zii6n%A01dL6Q@v=q(Om%3U^A8SlL1U5dX(ioa&H-iT6?tQ&Ik!c5-x!P}+wXxQ6B$ z$Ccdo91Jw3swQGZb@)}G$E>W9KfE24NFbxzc&X2IX#4k3@lBg7F1B|zQ#)(~IYi&R zadj`EaAa%ZzwPOxJ9F{01n3FFIdi;N$SiKuHMu=l9%Oa|^AyH!KRpl1*06OLYn*+n z!45Z7b1;PEkW!Q_qY7d*3oLV5H6y9|)Co@0hn<2+t+o{eBLj8lZueh`9n`0};WGE4 z0{Zm~ z4ou=_&$aorg86*$Eum@CPS@>;&Z0uXEaJoh@OOdux1BO&kqYVE#{Ly+2!G6xRZO6RYBN_I-5J>{l%iGUhDif?g;@ zg`sb~9P>@=y9Ixp`IAgd%Hj_K$?dcy+k^?3VHCQz@Zh(AzBQC&Ws z*vuW6Ci!BbwN*gL78{T}ts-JZy^jC+rTRLFT>nu%MQr(AG?lb_%+?M+x7i@L-6-3S znZG;cXNp&R;?O9>&HdF#%(Jr`(ktJaffyHvyxBX0K z`zYAy_>CNkT+oIRXR$L%SZgCjChHT@!cLaI=azvtrP+ZlnbrYbx@}=mN z#)4#sP8#{6@ct_2@Kz=6g+`RF$qMri`Z9i|eq*6y!I z0K=@4DSww)brNjFjLZ`LRe>JIyRj|WRT-@VSNOlhE+^^_yaQtVca;TjS6H0$k zI%_QJ2ivmD=8F;#y%TCsHj=;h_=_f*#e1wYi2}^7 z7PsE^E;uks5rtZ5%-#Y45Z}e#5Y9g(dr;oegrzo_s`Hn|)ah{Nc?Oz6_E*RTu0hqY zaH$jp5LBl`9WS2aOx1Rrq_Z!LBS9`o0{SzCsWbM`V131NX8iRjk{HHa_Av)O7{XC_ z*mPy}MX|T+pky39{Fu1hD|4v-yOSTa;clc-4WN7PYRC#*!JV@90Xtv;k1uIey|$b7r)hQ%IK>EH=-`2jF1--trUc+&wnfN$k)u6(0gDznw9P-xK-w74B<% zt^nzu%AgCr6~#|FGeaV;fWmdO*7b}A%9U8{%mv2V)fs;~dW~YJ;_rk8oh#C-9r)|j z?o7fbEv-Rvt}xAl7uwBbaQ%}1*(sl=W@K5;ZoQo_8% z5d}SZT}-pLE&3kkynCgXCVigzO-!lQmy^KYnqSd1j^-R-oO0qzBMM@W-^((c`b zo8{XlBJhMFZ>Ow;-;w0W)Awd5Ix(nUs(l;PRcv#fPAgC*ULG^=2a4SZKuhmR`5m4Q zVc>skQZ9^AQPI{tQ*TtX9lcIA3)_c<_HXB$2Y{<_=*_S%@!dAc5vD9_cwx6+VT;X1fHdqvH+|Mpj7)4)>~SZmr`YN{dh9 z-HSx=ia3r$kS?p^gSI8t+a)~gpkTjkjpk;rU%FGhmcaJYYUrmHy7Vq_Bvjv|m!$OJG z-_o#dsCnt#+clKHyX{T&|6ww_Xx=H~tl>OipRjT9>2@#RtIwey}oJa0jw`axgH@DGP6ST?c&GVsM5*_b|Zg%##?s0K~eA66HEH(Ms@qGi=j=1JK)tQ~*@O zkcT;}sALpcZuYr#rm=0wEjC@kH*n`SfhRLP^1{Z@OS9;fyg8>+Vb-VxR*W zF!#Q_)E{CU4p>|ZKI8QZA0~k(9_+00*W<)EnW1{{l!R!jh6!g!tQ9Ae<>FHQ<8TcwNN z9~1+2NZplZzPy8)^xh;tsRb`T>GS=SyxW=9JP}{6Q)MVNS$Sk4OX|Ac)q`fcs_z3) z74!mS@Zu6dJVWVM?;*^0K4<9NF9N_U6}##WiS z8jy6m7HkCtlllq2F;vtf9J>Nhx?1_Da+`72owWxT!k~$gfulBA*`Q~b1o#>{n(czJ z&+LJh{Cvn_)3+gGrYOF2jaS!1ZzPT=ll)L)3-?{)`eqyRjm4PjD0tl`M#MY=_Fk)0=Rq>Cxn}Hh9I~RQRSFhBD~4Y@ma`aFUyahMZiz$ z@j5%N;tFAc9a(`fpl~pJwBe%vCk;r3YQXIgNJx3;!Eh9;h_80+Y(PJ&AIrmp!&O$h|JyZW?}T2I z{XN*cB&Sy~fsR_mBt~YyJu)%@RF?G`^QOjUGpezVk|NT}mv3C0{(u9_-ooZeK%wabAy zb5#4IDe&4mo)0jWWHgg~;hgP#{DC2)(oK&;f(8%xKX}c1(aII#`f#fz%hs0%kP1A2 zNa^cFk_8$)m+LkT*P$mXqulG``8h3)=u39I(HMxJYfdQrnloT7>2&b7deD&VSR?%P zdBDn%8`CHOdTz~=f3Y4ZT;rm&HJTizRM(9E^3Su>WQq?$*P{c%U*X+IjNAftX-+Ex+@i4@0}|&sz5r8w(!cm3 zTl2v2bM`wU21;8V{L9hlFP^9*Kao_v*k5Do=fUQd0O?nn9l+@6!AFe)MFRW(%Dh|T zK$j_fNf%QY-*BAVrVXh&+?5LiAd^JDcny%Fu#O*^KJvh#qbtfmc}eH?%?U ztRRIN+dDasQJif2Q)uLUOq4a_|Ic^DZw_%OJ|T2l0H!5l1ogO(bs*Qt41+5eTWu-4kbX=nP>yzeqUxbNeJ@pgS_Ku;Ta%3py z(v%Y0(_JIMdrhSNt>$vlUqr-6${BlCx@w9& zvdh6hJ}v4um1b{TI`t@Ci!IV#50?`>?81oiQj~~9DPZs~IA2Wc^aA?ZJG-Skyg3U? z{x50HQ4jCcD-fR5vq_G?rUw?#yK?G)gII!3_dhgGURSQwvRSDQELHEL104i7e`CSH z$M_EYxyJ4Ew9?L4y>ANte>4v0Hn{FKxSqV2^>m@3TGrrS7Lxb&il8me4djUxd*nB} z>>5sL@;E0*?PCy+(<#%4FaIqeyNI-4=2DmG&uF3r4kIJGTG=DkJ1kBo+KB2+dQPO~ zahjfUj@M7;O@20AmqNTx_u{PPEU#RUOf5J1)rN&mrp;Y@terRN<^wos2gRnyPYIrN zRtBpx(1O`O1+V0BlRd_|5IRF6DbRmq&JcSV?rItgs}M4G<+l=0(WqVOcD z>d*UIxb^d@!1c0Ue(HU$jl2*?1jL6yJ=GF6~xkBr@nVN41K-jM&I7d^M{_ z;x4349#;eDj5_CW>kgZ62klg@_;D>z=K*QEt1SR>SrqLlK$H(UBVQrrMqmI>!A<4- zt4Pc5#Jfc_NdM_Akj0|apUlxWHH*8>yXmS)`9UtyGTRFpVtlueZOZYaCQ*U8Ayu{0 zu;+%gD{>`0=j^hFFIg#P%%w6}+Up=NCOfyKz+I{4y3s!F761CI4mu+zu~WT*f^{~? zAxn72lgLZUBUPWp85>U~^&5~zkICdFT-1KEu3j#>z36506=<4M1Q#28mjQXy!ZawD1$fl zZt#`BsR2bCQ2@EhK0J@K5)?SLY(SdpOD&N7+6`=mlTlUR2Lqo0ELI>N{G%RC*uI?@ zAfVSOg2Rm?jms>%f*8TV_DTb|6o_|?-zKek(=?4>AQ};5Z8*oRt%cxjJlB z>(4h9aOn%s#NB4jNK0TJ?z5uLHo}rPi-lrlQU!-xoF=i6FUP-`d>r zLVCHv)aFK~1rLwVeDo=>l9xJXV@1nhAT*-285cH_-H!WQEe-83drj6H4?UPpdN=&*om74*k*`uK1#A$8*|*ZQ?hu&QI0^hSbo`DjQ6w0EuwP!q4SNl5 z)`IH8a=xYC1L5c(V%Tkch1#+w_0+H9kPox64z8}UKIr;ba#>@pE+yj&&_9+r;!V}! zzlH%bO>dTLOuCc0eoVv^KPC|2&2NAKS|)S_;LJakxoJ=F>5>B3aYKZfy+J4l3iNY~ zB9R>1clG9P1hf?H?+XQZdVKKuvF%;IMxltp5?NeBb$E33K@b0=#u- zP}Y=v=WN+QAi-1U%H|6FW$GxW9iFJ7BANS_&*fJu1zGSvl$N}M8k`;|Re8-bR?t(| z<{v`QTNw1`=&1{5_{I?gonW3~N-rW9yk%D<#lP%am>6?5yZgL)IgzjkV$pvd>!^qdQ+;C12IES+R|uPMm*RY2HKNzv!xY7}qMEY%|<>Hxwq)PIFz zw%sDT5;fr88-{EC3;Q{j=maGFLX>#vftM&!9~=NG9-jHP0@r!}btGu^d}<7KfxvP+ zq^>fJ6~CX0oWBb5z3&8$a$uB|dGTgZZC*=+Si!b=NI+Rh8sgSH?1v&|(!Hp9QLErXC2LDHb6Tue?&3&7t~O3(sL3sjeDPq# zbM9BjyKK*@5Ls8_BxF`S-k-kT{_)k<{3`V84Hz0z5ch4=a%to3t1RI?qq?}CHuFAB ze$k|Q44fNo!zhlsdodC$qKZ<(35|b$2rhx5mY=Bh6OnJdHv2u#xJ*DPZ6!U= z_%u|!bIzkeFOYTVLMgBJ=%6&PgJmQcd!QVj0#w_Edp;;!#MM+hRaY?xQma@wh` zEa{3dyByqEFyh>osS5jwwfKK{9zc_5b@ATJ+PIFt@aIJ{%fmns$F;G|GoUD5qT&8- zeudEkA0{M}0FZKmR{z4HM1n2m&;9HAqspXij=<%N`O5HoM#)&@!xV|$?L3Gq30{z0 zd>c+1xq18c0C#klZ;DW)>}HVu?lK?AOQwk_;}tShX7O&H3*%U)@h+uLFFAS_jFx zf5i3GouPq;_)^{%0a@ZXmq^#m4<4BK!&`md0;?XbR(>F(^G;-93n|TT;eR=ZmsaFB z+sA+O{ZlLu=pUntfOjxsv-4gdGfidz@C~|a7tO((4-Za#s%?XoZF#6pb@UUL2#k{L zkJ%vX^VeoJDTClI8i!_T9VSzzC%G*hX1!rBNT*nm0)W&B?)WP?HwIFzEj5!nRF$X_ zbxp>9qxz~&Z8sX=Q3j^Hwau9K4>PWxHMNcN_9|X0qeDLyV?YQSgN0Pw#nIp3QQzI~;_JVEYA0!BJqk%5 zFz_;{#h!gFIBxM{!-(1RAzwOB)2AD4C9bT%!@UYdH2Zg3g)vvWQg!c>>y1{p7>Tfr zq*?1AVP5j9_~^Kiv@ZN*`(rVQankq#8cM($?D}3Dm5g6x?4FAwRC{K6cE$_HqgXZiER|m6f~g!GB7~cY3c1eBs||~54fAW( zC;s`(xIhD*>!=EQy!ULnADzuMnUHw%XImf{JG><#j_Yo$zW4P+ax6F&1^2)L1g%x; z&;^?Z^jzR3r-7;cw1AbY{GNkt%z=LzSodMI&>1X7#eTMEV;0kNA30GT$7IqAi~EY; zkVblU(tUHHltO;?3(Gtrg%SO+XEX*|WF?}{F*jS4lG_qn3d@K$)c+FJr-$Sr{y%~_ zLDRzP6-%;r@ak>Iv6H{6AMSg>Jt>*^OKKR30hzYI=TOcL6F#Q$K`(%PeE7#h9I)a$ zHi9_wbLr+v7lD!Gpm)XTPAz`lUmwR~MEe^K-!zAuCe$Vw9YnK(>vC<8Hty1h3YymF z)i6yHlMF%hzc1gRAn99CpUIgp|BphR$VG~kvV@z&?+{WIP?petQ3PG`U#kUAFncI) z?!AmO(3axG{6uZryg%ZfupJ+2q-Q9#j54>`!})=}{yE9qg5oJwLdmxoHHlGF%5>UG zx5k>|xKlG^$4+haWb#AFP(;wid6bZq_$13Yy>n#?N!j~t@%Bv?nyOo7nUfpNfd_kD zndb{M8kQ&AzP)@a#qe2k)>CI_+}Tgad$74Ocd3;@yRuwtm$Kcc;V%}ouPEVA0(QSlD=$U_X(dNY^j(j33B6fRSnpCaW%V%@~b8D zq4^fXvF`JK=FDV2c4E8fSi)Q(*Q2ni)UK`Kw(BNY^%C&&W7!?iIXshpiQdLm4%fo( z;JoVo^XiF{(`D{#t?_HXP^T2Exe<-Um;00c-<^+fPrcK-Rl>*;j3Ge9e?mYNoBi6^ zZS_fVJ+YNiMHz^=O<=f12F;jJQoH{}$B^Mm2r}-I%*6eL<9|aZ?58WX2(u<&+5{lQ zq&QN+EQ`?4B5MlFPgJ%{wRZh48UfEZfYBi8D3K*=+uEnqq59?7*_HqhwgaEL$GK$g z`(Z1ad?=6ob~rbEo5}Z1Izu+;$U?7L_I8z(VX01Av9OTLHEG2)A8ZQz&M~|%*4sS} zoEQYg>X`wa{4b-KZzOUIyd}DH;U@ydj4QKp+HLsu`7?LMW^dGDk|s){=BF`p<<6nT zoT;9>7#Akaz`%@`X*QRw_;8PQn>zZ?^67pdm-dswi}z|r)2UcfP^b09|6WZGZ7zvz z1FuS?Ww{Z{3i-zaK8Sa@nNi^X>?{LBT_U4Ma^0sh_z_rH?Vr7X{mojD5HSIvw$aMcuQ4bQ$b*Wudcou#H#sJ*(!EI423K z+qM!{3ocg+WQt{DTbCkQIhuw`(3I23`5P4qo_=>hC{vIn5iU3S@@A6{UD86CPzuRfGD*eb<+3eW;8+{Xj zl*!}w&AuQNM(}*ro}t+8GgyF)%bca=5A4t{bF995%M>Lv00%D^z@#LA0Jw$Qd!3Lk z8=AbaN}Klq0%#7TwzJuaSEpDk9H~{mDYt4bYSOX`e|P6Pnm#b;gkrEJ_LOfL8AxNo zs;DUSm|+KSi^5g@wSk;j2`w!P|B=%Mvy1qQTYnyfMplQwQ@?}p_bY}HLH>MO8KlO5 zp9@Cd^n)wX~Jy z{>?%esaOo>E!^?k<{bBZC-VWz51|a$zaKqdK>7B)qP*exQ|fba8?49n<>bnyxt>V)KNjmP^n|Smjq{GYR_Gc z5I69?Ca$aC>zIQKF9w87dMR?H-zNY^oprBiLLS&XbOTfn+M}}TBgW^L0!2nwa<~@_ zb{kq90yF|)tvmu$vj#$hV$f`kcpf&&VNdGhs?Us^Mq2s;+8ESpJqS5&tzQkO(4H>i zchyYt@CD9YDG&y*n@OqZ??Sgbh3D1?=2Jj*J^yh3yQZ$SO#VDN^6$3=Z>E|g>jcgp z3hDIl9RDNj^6>B+msdFIYU1e%e&XeGH)~PQ|Dd5wp%Pe>VWD9q?(BFLiyxlCk>o9C z=Q#wi6K{p$#;Dybj`>^DGMjgnG$A}ykV@8$pwBlIa{Bdeq+tMHB{&Y^nR2CW2Nn z)bwsMmhYWvGv4<)__@!{*j!D=*q2Y6khc~MG8wVt(72yO?6xewsP$CQag*zHzrt5R zi%^T`(@pihVZM|^r z?xLu(s1xt`bPHPIpd2@he%|YDAzLH+qwco41(q7IdiXA)oT%(M=LJ$aZb4(hs$GtM zTop2uc4^vQli&?+wD20A@WG5DL^lrjOgwgj;P1g4_PRoH(eZhn(l9zu}Y?TNyqxgG079^DD6{J=@zDN`Kh37V0iQ6QwtZN znn|uuxv#*4(!=TUehG`;auK(g=H12IU$2gwv(Ce8=G}+MzG^(}%yQ)*1%uQnZ+i60 z_is(ubqo@k9ZEkPYLCJps5QWJv|m3Uqeo;m%ND#F(Zo>-LZEQH5O6@r`Z{v6ql=fZ zf-!RhH5mFNM2)?E`YYJi!^K;eM83UtQ*dXryMB>2)V4%hXBUOu5n_A7O|B>yQ_5y& z&^_$HAiAS0PfDdwL)hVE7=n{G+FLr!R+s`U-e0Uhe@b)IhZ^}hT*Ydt04I`-)MTPXDqM>R2e)H8RKwl7HU?9+X zpyyB7rl_(ePoBOXyZ-;j*H;F`5pC-Z?(XjH65I(A65N9g5CRDh+--1zI|O$L?hqV; z6WoHk1cEyQb35nMt#^ODD*ix0(X)H?TA%IR)L!%;6*gl7e6Hl$Lj}XVRD2O9^nuLo zz%EPi^e;4J5!hOeQ%=a*?7C~YYqu};CZ26&cF;8X50!cfZdGM=?*)MSFfr!DBiVA~ z5f{1|n%5EBTN2fKYkE~NS2K6W;Xo(?&y5N5`=UcUkz!<~`kAk?55C2f&P-J4A^sUN z>@0_(&e!BgsO;`&McG(_VtM})oypklesAZEHDTv7-=&#x#EH`2jz#X4$VNHOM9WzW z2Gy6oP}?Vlh839)?ww?Y{WP+tyN0zqMi`4E8^I$ym?{&2iiD@0^vD#;^`5R9T19@s z>_wqBu^kK@8RRKcntNowKY)Pi9&{nB6mQ}BtVx?fWiHp<0%rSruG#kM;MTMTy+kva zo;Y!mxV?Wt0X1_WTH&q>U2Vt=W9jaNt!=ufTWx9U%F+B89hUk>nCW$xc&7ep_4jTC z#%Mc!h&~SzYg<5J)03H~6@B7UOY*;)%j%}5?@nJn7;vpg1=3{x_%nM-NL_w99ERX0 zrHx0W;&Fay-Ss^Jx(q)ylm1Bag6;1{ID=S{RoNA~iSg^%#sYQX&qN{Hi3^B3qpDuS zFEta6Lha^<1$>w4XlMC2G$NMCh;tFUCQUJP&`I%r|d_i*!;`gM55J ze|qFZ8;z{s8Xr^)v+Mn#5_-(sLK=qfocgwYOp7Wh1Bb|DJoHDD?(f=~4x80vsi?H$ zZh<@0#}_E&zZ<1@c<^-4eCeK$8Y!aDe7CJcmF05q+K*4)OVjlIhq|A17wl)^Xw5io zy10r6cC$IJM_Fw1Y-j1qY}27~gbpvr4-NY}GgSFeoboCMgavGIuyinF4+Y(>=&xN6^vG!Iq6C6|a|wtt1J z#;&z{(W-v)%-Zv_SWS?y2ELb;NmZcolJC(S`rXm_;~E3MGq%_SD!KZZ+qY=dqe%>Z z_qupr*jAzWvF5j#H7!1C`P(l?4632@AVI+?(W}wHP{Qu=KV_74{O!L`N34JrPJ7>x z<9uILw%&b~yYjv_fh{GNA?wKiTjgwL^h|L6J`DxEhq5@OtSY{an6WAyXW~HV^xirU z0+n3Y*?$+FKl|!DR}|$*qAB2G(YtmtgckLv0DgIaSRT(eKR=1M*6Y}Bwg^35xOEX@ z>ibE85_hJQ55gsTg6Kh#1KnW=J&vf~sX=G&N#KNNrWz9$&#_V^#5rs;`qnM|p^fV6 z8?_EF^Pj5%gpaX{$wUc>1QR<*2G}Jpop7naXK~N<$FxM54eo`XirrmrFr7$$w@Ryt z2{;uPc%#_A>3ZOdepk^N;eu$)tMP-Ms@ZrsW~^(|-T9!glg6GCYwShxv?pMUcs0A~ zS8d+&FuJoMv<`KW+GGeL7Ym7pqUSUyiHNxH=)%7CbhQ~h>N!Cb8En^J#9`bHbnMo% zI0d{BoG>acr77V$`EU7VlepnY10;OSN8lnBW3(i9L}Sm>L$P;KP~r}|`)+HKA$Mhe zAGCLVUl3*Wo_(!MzO;6&AwN-6Xo@(XNf-qvZvJGejisNqys83=v;Zb3dV9nB4li#yP}zhqcyU2&F3iTR6;Q z>~Ko!O)CW2Ycb$BYQ&)Ltx{m;t4)I!_a(99#E&YyiLr5(vQG)T8e)|lBM=ufsLy1V z9oJGvP{dw}9P>|xFP8)z7qKK{5{-*yw^`p@wv!_KwR_{YCSJr;5Y1#-0~u3bh%wDcQP!gwM9l=`s%HgBX9DP$g)mX+?e*C*O9kRatbk^ z2=;}GLYenmwLCrqS#OumYrwPwJLYY+ydtsM7_c`#M_dF`)z0Zhh`oKGW7e)B$K}hl zEs27u&5rcC`hJHmx!iugVFynJyWXKSPWQjh3qT;=fTZ)Y%5QOBFeC-9Lfdll*#hStuq^f5%=Hf+CnqKg<avIq7A4A`>5I20ktZX9{`t9heW!2c&4HwlXB z3@-rhOLzu6BY?mAH&b{Q7p@O_#9vMam}lOLSkSbQu$^&+?)A1KP4ZynHyv5zSq1vs zJ=IxFTS+`Lkchp9l6?Yx5oleNFa3HJ_or<{?raXS$%+*OXae>9@n=b41mw8)=n4#tt-?<`mC!TZ$w?7c(ao`$;o|6+-d?V z4Dt5Ww!`aM1vSJMDXN5y(TGr(hq!t_o@4%1^VfRPp<@_Jg(_WM4Xy z9YqdBwCSpjnbD+;YVR%>VxE+Aq~$U5pIQl(dP2qhbECG}3zL{j`bs}mpV-0y^RrgM zQ5e2dK%;~1Q8zAB`MnqkEt_XE4EZsO{|KcihTwqgC#h)VH)3ygfK9p?^LUSwfqUW0 zYOL!TLkSj*pt=)#AC$8$Oh4^vzH>R}^BqFO=wZ`imqtDGV?6Aib}%PGS0f3BjNjf* z1YathgJe#VX5mr;^AE75n(e+vV254-n_Ra`;`Cp4B}cEeAjY9zchZ=4iwk+=h63NRIm$Xx<9_qIDVS) zV>N||ia6XTn4$$!U%2GRUSi}~I%rs9{#%AJ+gSDdai3W>Sx%S=K<42ryRjh3VT7&t6n=1{F9#uhAE(trOWSqh03R-s{f>(cKbxHDJ1LUcC>GF?GJuOMamv>= z`@OfQ7j`paxl_SZ<+vYEG&DLnfaT3c{RRuH=hDUZ?YKDMxZ-|$J+We_JuRld<@U&+w`mjQqy0ETtj zFq!~-!A#>{5hT0HQisrdw@)(L@D$}V<&-LH>h&UjD*yoh*X!0|;)hi0P5F&>1O?X( zsY7^&X1uG zd;8E_7~cTgxX%N~PC-{Z3vMfWVbmVc9(d8Z!-mEdWu4Fa&mq@F9$zwdy;g*($dZgO z`*(@^!CcmqlF(W*aihzPZk|a=2=ljUe#?5OOOb0Az#Ob56DJl*Iv&yXL;=?E{40*` z>P=VD^vfVQVds?-BTbyrD6A^9OWtVxz6(h~*_ExG8P^+IAxP`a;Yd>B8+gSvj6?fS zinstO$+71r@i6s%{#+k*9u5~N+RvNz(>#1@!0OkIkp{x){FmFw{5NVregj6V@2>*s z#pV=ewBBSr3YMR2Ae3e}3I@aaYGUtdE((;42aqfjoj|85o%?>6QDzu#I+E;V`NnX7 z7btS>3zyrZ3-M{wqPc{R%BLU!>+c&jW_Dqz;& z&ioKLIsJlZQIZr>wcF=iea=Bj-KSswuIV2d4&xg+yf@}_(3e{1-=6YiQARV(JXjS? zcYzXg1bpGZPn!rm+RyYnFzyQAgoYP!h$xfB*t9-T;ATV~XEhp=i>GnWeD@nVb72yu zwHzbLII zeLn3@UWyWx;9HF#wS2?+(Y6zr>VLBUHENg(4)Z}D@A*jPPOb6E8kNB! z*yOy2pD*b8D?+o&Ta}AM;eTPmG1}B{irp~6Wy{FQP$~2%E2Q4^XVJ@&ipJm2XE4+A zyBPlNhhb!MN=EE-=W%JAUUul7$T*=s42q{lL2F3c8`__qessN|@*If&DFRgZ5<YOz%v=eDUud4! z;&fpy3~WEu=qObvG1@bA|Gqwbz=;u-y6a&*U;RhellvXaPXcwV+MS96!i|pI0#$91 zN8k|DW`>26L{{U^Y=)I-6E^p!jx5gYE#EG8{vyEaCT4GC6D|&2DbQSPNS-MOehd2@ zL}TZ^yYV~9LoH4~@Kl7-|1q6mvoCDi#PjH$h1ADU_uDMb=>r=rhucSU$@N56E;Mb> zwTT$rer#`t)17+vW&&oEMfcTAU*g7|vRQgF^J=%aOB{HrrXiRcn*wd`YzKgJG7y<8 zZp9ffki}hHq;nY_2zU|fD|jb$X|$nboGpW9Jv=IMDkxfrUR2f)bAP)}F7U8^l=7L6 z%(NOl;UD2S||vFvE&DQ`X5u=oUG zj+A--?!zZgu}yp3)NP^%3AM&Y;DmC2Xn!~vjH~+PCu`E<&CpcIt1y@61J*2#0DT<( zg`h_xVR*sdDB+DNWhZS>Qb3E?x@k`fP1SGV*hX!2obpEoh=ip}ai4E5fBgtB-x8;l z7z0H6v$eM?MOt2!QRNG2qbmv>#Z4@HOyt}>2~5P@2TSFu+71GUx(HOj_~tn&^^ zr+B>sR=^1DKQ1i<6uJ1WIGi*4Fq)?Y5{Z(0Ly3+T!AB_hI`&mbZ%pkc8-nQ_le+`+ zC1H{&#;ehd6>7&6zb>jarSHEqsewlpm?8xYO=M7Ve4fd}kgJ&cT(dK)^TEo_T0;H5 zCX$CD!NBhZExY}-v)8-L9#bgy7r%@he(%$BIVBn4<4*4YmCm&WUj&K-a)hw?rJf9n zYu&ypk1jDJn1fw1thajHV&WqcF*DaZWBrj;)46wbhB#D0&{Ct%Bz{i9in} z==Kz{K*oW*5!|aJzlaZ(9D%l>~^b1rg^>`&|Da&jP4jmE}Nz+dQ&$J3Te5ojBimNV38jW8NPNMWixy{&AuE@uZr7DWHZ6J*BDIU*o8xuD!) zGt;oA(VIZEFu3d#tj9iu+EDD``HEM{UNjY~Zx2Vt*bA1JrQv4m_Y9N~$4jQxwFS2nmEA^|(I1yS35WNC0kL+zhQMA9*k9{(OC%u9~OHbrWJomIFkG$6a%mpvg?P82GnTgV)1cy zHw4uN=7@l=4jv zhUftHS4ez!SmAa0VvSrGL3#H_T$Dq-utl`ifTh^&o6KIXzT?dzEg%nBDOqL@Vv<`a zVX`>=f%QUAy19IrO)th+m4y?;xcTytBRxw35EU_?PMn~)ngY7dQE&?q1kk7f1`PpP zJq}|;_JJN6^%?&3^`6+Bmbk)v z{%@tb>Y`0h-P8=eMmW&=LSdIea{6A97IMX7M6ng2UlAY?Bo|@U#D}dVnDw z)gN?fn)5v#XxGHiU(#p_Q@?I&zH36bm>!-)MpQu|%_*H_u9<|MLvJP~?sXXIy!F;gv-)O=qT)c9(>#_1av|IiH~NN%zy@h?ek@ZJZfng2bG%RaZ}sV|B>mW zEjVmPqr*RGlWrF5pZg`{J0B|PE@*SjN5k1rr(ehB&&BcQdu$qngNm*cOIFhAV^)#s zbOcBN*z3f<$p4o69l}!t`Ex-U%TKzkCeaA0XK*s1j%J&;2CyXHA5GHNR4ctVdv}RG z;9w@FEes%feq2G6V77Q~k>(gVR2lAPVsF8boMjUM)lmkLA{Cu8#1fx=ozO4#Ym6qv|uGF}Dl<-<^^uTJiLGi*j3JSZ63X#T??k9Jan^?Z;t__czrer$<*YmpF#;f%1R+bIO0pbX_t7R;p zir5f^x0?l-NG1aob7LUyzzDeT+)&-3bqL{<&zq?L0$$9IvL%YmF1gk?JlE2Jd0=za zTFOmk!(F^yRSPc0g!6Xd*AS2^rBF_dS39iOGvGG@Y-Dz-=}T-#n?Qo}vF>j-$4Y;i zee;$+u@}Bpp#Y5LVYYT`c6Kdupo}qvjafV^H&YgS#puUe_-|XOKU9VaQ;P)Pou0KQ z33`YC8VUMXz&+mUM_ci}h8^MGH*Mqz0>F}CE?!ZAC{=^olCjoaRmn0j1*xd8KJbX* zeXxKR9QjI{gb&K4Ijs^mH@nqqnqXE<3d_SM@Z5RnSAu)r0ZM9vtseBz8e_+5El+y?lz9Y!`|kY2T? zr~>+rX27vxdKi}6*32vL75evXWjT>Fid!oO`mJKJS~cq6zBIEm-LA;U54ebxJBsMk zmnX|uXA{F1SKq!6am(mIySYFN0SU7`8>L7?Zd5BHl_T?Sb>uJE&~-Ynbez9x)_j^l z&3L@=EX5uuKtXIp&h$A#;lirTg~8< zDt0?gT7J_t>_n`r>~$n?xxIY>#t_A=J|etH^+UHHuOR>gJpWb4o20=W-=nO>W>K~s z2rnqn^i#NQBmXMMnENgw7=R3dSX!{PHg&`lZjw-mb3@c&@ z?m6^Y2}aqxHif9DFXXZ8%XcY?2%cobhU<|Bb(FLp4%*3x_4vI%frwb?H`kN{KljUd zFkr~t`vM}^CS>|kWpHt|hylo4% zH{#LNK~;JS8HoBEc%i!pv^$lwP39rP z3Lug)saL(U8cXs2fQhRhIlJy_dAd)(jWv~${}GDpd*Ab8(~Q7_gSFaK;f_AuPl7VD zWm1RH7zv*%3!LZk#Xx;Ujem2s=xPSxgk={y&rQNJ8d=LpG#VYz1ELiwlvJr~mbiesUI7UK!X4 z60E!a3MHL@QG!KTW3hH>jrJ6^HF>Cq!a`VqOGHCqUR-c>K*j<)KC3iTw&$FOsa+Fv z*2TSgl+SEo_Q<@QLl*awiD$>+EWdv2jz$W3v1J9^)g&D)yn#3wCvLSUtH5Lolt#$Q zGIobktko8DQ~S+_h#MLYzjoEchkmB>JF*-E2<;mUwy$9R2Ev)|Vf0SQQqofD)LHX{ zQ6*a1h|+0i!xv?9ugap`pq4@1N_j;HvZwdoHYM^!4+paBLQGjistdGM0K{ev?y}@{ zwSQl5A7I8xe44>~CJK_-s(4G3P@~m1-GJ#%g`VeOeUUbd!Qi*#uMwPdz(JmMitFC` z_6I_|$k}&#CJ<9Ld?F^{wgI*wH8FJtfgROhNlJy?BtQp5Rf1G@@{am~K0EJS?TQ*K zW#t`S?E~U57>`U`%Q7-kwfS>>KFSq4sGRSl4Zed zC1lY(gkW-mVt0Co#d>yk1G|!u?r_96UlKQ-^Ccdu>9=6~yD*9`Ct&~(M5n%@k^Gv) zQW|atMZkq+pf!*leD}c9`Q6oE)MEWKSfXJ^{nI z=L0U7pS7n?b|p5nTQrzc-!m3XZ~VQ73-~X{s3*t;exH`u2#E{c^TlvW!AX_bVVSbX zw-&znYaGWm2wY#kW$-Koi~xG~ae3DFPx=4)SV*)Q$}D6(C_L*}NSR)4BR?B_-|cWF zJMaS~g)R}sIfs7n`Spqf79Y+kl6_Lx`Ke??L5mdr^Y|loc6_6E!sZ4$xg#yT5bUVZ z4pA)|E-4d-nFZ&a=}QW1@)t^yK4>bRsDaNFkIjxWR4;gs&SE?wS6G|3AaPcTaSDrAAGSBhSQbsjDJJls{2k(vg!uKj6ZX zkp8mI_&XY=#XbabQkp%divIG_ zZQo~OlSuGTFN%%Supi9j8Y0=!c8eefhV>oDKh%{;`3&DZJAzu+FhTxccYODjDrHE%RdgLMJ1XG@%?o1>+^IzYg zLV_PVoNsRHC$rBf$?Y~UXCaw+pW@LU3pzwQvWBAi6e{9dJ%uW@2mg77hIHl7>ECQ~T&od+L#_-=diU-;*{Pq>V_^**_2ICMC!Gw=O7*@pghMHXN6r`BcafjFz!uKaxVgF_JZI@UW(=i-cvPcZ`VpOBJjfpVQ)z* z*}x=7OUCE>UR+l}2oN5T*V<)&O*EkjaZEdjJJf7ypx-tK(;*hW^c&{th)jfW^zIY& zH0{~`Ty>(r*XQcl+lm{m4t~n4I+t|Cu?WKox(Zgu6Ui52*Zs^&j)f`dfGe^4VoHtz z0tB6n3-Wc5Bz;Jav^7%#9$H3NU&_MK+tHKgM6`=q316J?mg|aoDmra&_}yKnW55%E z#7Y33#1QLsi`9VSSr=d})6Tqb8x-Ir;>0M{vYKwrk<}{9h*e^t@4<$;d5I7Q;tDXc zCLoq084>%jZ64|1_kq?!4tT#R3Y=dRih+V&Z!{6Sd-m?VS~2wuNEKRTH^A5D2FREK z%@@RjHgERiMWT=0Cec-6I~5W`#0Zrce+DDc#?OU!WnO*grHrv7ky^C@dBmHb{y|S$ zLF9cNsPMS!P7X4}Fz>qgc=%o@INw^Vqx&S)EIiFr{*Uz;z5lJ?hd56;_Xl?N-n`=} z`(ZJ^r>DX_d8sFK~bYF1^Q z6yx$=!hqUygf(J>@^qWh?L~Y~!vr+8b+;FWA%z1@-v>7U*XrcM`>UdkEH;sJsTU?B z@#ul3CvIZcsv423QiT5Nh`=`56 zipXK%HGhmotm9y}A7HZ%6+9}P?;j6<)1;Pm`gQ} za<)TzzG}0sUt?LEl48#OMX0C}t12i!4EqA5J_T*AG^mS_S!}_&InF?|nBKq>vmG;Q zczODA-0m*d7etbW$2O-&RpQ_I&)P(CAx=~H65)T=J^*VD44BxS*?h{k|J^tkvWu|U z^oetTBGkmIQwH&0(t}EbzKs(EdebL%;nXXiV|M%cR(x7R+0!Zvtb}p)(jVz|p`}@l zHdl$bNv;AsZu#~(VFhj!GP#pFufy+uGhzQTt^lopNu-3^qwk<*Jt9kBG(2pCsr_b| zLi7+tMcYm7ExvNpbV1-(c(M?aGu^8V5LNh24AkIW^KUuw$s^Pjk=qp6s;NiJDw;n_vYd{Z?(!sM0zL52FC~H%Xi)A7vRv;{ zYK6W_qC7h))~8ceq{?wb5ifj>gti?m*X>ZDz%N@@hfrP~job;S0T$JpfIb^sp)!8%WYRQr%htNg%~pp=f5Y9C9BP!6 zpF^_oGn@)&k#c>|gM9mW%E#k}X{yQw(w9OOhExV?Whp_z>qRsX3N>rUFP>zb|wp@BxV3zQi9;1LV5=-^Z?vr9qnc9O!qH zS%2^o4)l!_XDmCo*NM_OH;b;_H)YE3J^_PeGTdMn1vDQWeBn>d`_?i!2{90v8Ea;o z{7|6}&eyF28>E>#P}4}#j;*jHm500yJ4WpAxecDOiEsQ^M=u6=x_tkQ$Ivf_8!9NE z3C574k~_J&bCZ5W-#n`RgeBL1_eW*kl$RbzEBSYN_5%d2{Z3|XVCCaGnUk_7pi#A- z;hu1;E8Z3oIC=df7$&kXz>M{E zpP1_p*~2F|w;#B9Ve+?4aM1x(w|`&K5})QUA?DyiFN8*}Oh7XOusIyaX?BPM(DD>e z?Hibbb^?=N%FOaCT1(>|8jlhe8hoouSj&T0fP7NO(o4Kl$i8y9^c>-LFI_O?7aqHP z8N3sJb?!-6Wr(stgR&{@i@9zFlbJT6*}9}+NDx2r;&tEZI=47N)G9U^CQ8K7(JZAW zM*@Xj!bG{*b1^^`r&Qb`r@tQs4l&aDGOq&L<6G@=z+0+$MP;-}DO3xq?Cecw^KcqS zPCQarAXd+ZR|>nw?XF<}o!PW$`nxed82b$8dv5P3>4HW8rtF1$=Cb$q?@$xr%Bxm{ zYn}Zh(NK+Q_|VjX4S#S^aF{eHi;IY#1_V2?b8`Iy?9aqf|C_xsIizc}NM7nKZ)QkN>Z#uZY?sT8gJ-yV;6VG1RJ(H!K`D41GmJ>>` zQG)oxb`iEGkjoiBs7ZK01lbc<$kIZsMM&ddpF~;BW*yMe`qJY=>>oXUPG)gtXl)yJ zqgAVJgh;hSs&E1HAOd_cix5_wz4c;_;v1ki^khhdR?~?Ja)j!CTSj0{;M4m6eG>bZ8ff&DN*jkg`Oc-u^p=@GhNdic4w3oHr{jpfEL-ZlRy zpz6DfwfNc_Gb1A-XKXSrjDEt&Y>tbLd^i+u+KH)~uy|t?5?u1hlGNcxg7AcQhofHu zm$x&;ywdizXwdU|n+(Wn)(pFR0Y51v1`uNcuO7Zj3k$0!em`>#+YK(r>#k;S5OLh6 zTibI#1m{CeXc_GF7`b!9my}M4B!{lXs0k;`i0gBJ z`%5$rM=Q5l$p(V-DR2-aIFNbq2#&k~qyJ^~zLHmP)%c3pLelDyO66{Sk1RBw6MP|y z{5q(y{hAreaDl7GY>^(sNqH-L4n8S3pAoE9ytGa|c}a68NXYCt!W5Bypae2l5pC9G z^Z>OzM^$FZR8h%N>2oYzdU;OnrPkKNe8+RD=D$c()zEz zi`TzH~n#j;QntXHhw3XFG%2m{|JbEurKPplI%@dYdLb;s8s41T4WnmTIG= zz3F*{FyI_&my`z%c0o_V$fGadRzkTjf4q%NIF`sE*saYxlb<-Gr$A3ZL9HxAq}Sq}58ba`RRgRHZS^NQW1m$~#Q2g@mym^2Fa{&c@DyJir_E5coIAmf5 z1Kn4sj|pHO#?1XX2IGCDXDvQlQ`b0$`a<+PUUYTX0r<;qo(V-%Za}*o;OO=0s2?l+ z!_+TPCM^;xzkY9Rl~#jKW$M2eI-jewu9#>y-h0oAP;a<4wh~9^piZtWM7-55*;KP< z#yfSuzqR%tE~BOVzUrM(&wmt0U*>;qXT~5FARH(liDiSSg^%6eHfxswyFP>mohW?+ zsM0>XI7Z|Os5%~`Ts_E*cH*S8k`W+wJ22OPkQzu-==&RX^rtNYqcOm8ti-HgK>Zd> zgaO|EEK;O84uCb{^9x8k;}Ku$bw``Gpzk~hwz8yz@VYXbrYVift(@L zv#)s9e3Lfof_`H#Jx%z94=`{PtiSM(Kfvsbf};7ZtP~jLWf-B-zz-hP79r7li-G4b zKk`7!01Q)kAR~M_P^#&$BhI@zRXq9t2pYT58JGu8FqW@f|Lt5Fu`}?7NIYz_x06!> zR6m-zdLN%zJ>9E;Zu1%^73nnhZ%<7)6m=?r;`9SY&$W%~XM{QCLt8RVX~XCN8YSvL zO$t_T7b*~~Q#t=6DZp^I)?YZHJKOsmEro&JSH2RzV9@Kdz^!Vop<0OiPfu{_1|D4C zp=EgS+L{W0ebsiXG$eWTySdyFX-HDsKNuiji6dJbQjYWr>mBW|$JlVvyKkMCu3 zAOC3F)O_b#Tc&x8{k!?N?Q@Sqqy0MkXDAN{Lf)(sb@3R8*FbgeT!+QX5a@~V)j$BQ zDh$;@&i;)($lix|or~Pjt+dupgZD3)uZ71}${j;ZuZEE$^iJ}hYcE*N#=9YoS&d}` zIQd;ROz-@BXir1Shkv+*oLuVu5g|9154urFx-D%Fqj|vr0eR;Lv)74J&0pZ`X9sB; z$z>|w@~0t%pLo+;dOsWlO-!JP2Fc{EBfa4;MarMOh;{OpzRb%zsdxEEsE_}Q4V)~gDEw^Hu#fiG-P$*!=-gc(5|qVJT&@iqzLHn z>Km)~9l_7oA2g}JK9&QN+|labNOYX9k)cP+P56`~qp(Fmd(4&OI$qafPEv9cvW354 zuwkeBTdFXR4Z3?ADujaz)EwJGCrSLYUj*Z4$eoVR0%$Vdzd36E<#fz+;4Ke=i9Hz-Mc8z%|PBogg0}+TJS`&;U33D z0i#&?i@eB5=J6)2#O55jkUbL*w`ZnA)GiIX4}7ctNzVqu-Ik`Uz>{#>Da^zc2RaDFn&kO=&i7oQ6Fd zK}-DMkP#W6Fff1o$%fbA#~7>%Tu_9JS<2=fKz=MeC=T^b3qV?K+vc+a@BsNB5O&XY zxZM1@Z}r=7?#=fTF_DEzV5cM4U`QHyao?erSQOCFi@(U>_TlMU(Cq?;kbpKxkpl@} zI-~*{ZWP-&*{CxgFulLbdoPVLh*TqSr9*0cR zDsPd5yYzn)k%pQn=W-CbX0KqJa=Ks!7u*Reb5Bm0EWy#5ymb2la6*U+QCqoyZfq*_ z%m#!@WVyI><=wkMot+X>q>EwRTHb!>(7@ltFl27lf!^geQ_A-9SGoq>B}9-6Pkf(l zH`Y(l*^r%GMe~3Pq@x9Iw?l&f{AoecXyfx+V^NwAMTE01`N%s|y@a?Ec;etvB8&bp zy`KYmm?o8nxFATPL_k9V=nXux-#{9p0=%LC2G<)nPB{965FtEpgD5YFL0&9j7fU6j z^A}9;Uo{fqa#5IWqWFuU;Jp*WyME++$0PDuFQod>1LH4CX=rC~y8l(&>L|t=sft}nxI>F=4_JcRpRsylmGBj9s>zPobG%)N90dY&JX{Z<*ToAE zgO>n8F%YRYYB-ES;SW5jthH5tmn#5lV5p8WN@Aa9$YnQ<0F_La$M8RkrF9SmTFxQE z0kIml%Hcg^Fk_hmz?`z5-ec7j=*OC|65`=-Nhcz?RL0mPWBt8H+wmqndiQ5q)KRl- zoU2Ym2Xxw~Htkw@8Sx<9_F4E=cg%^K3ya4g?D=~f_J zpe$;=&S#DQ)dM_%NEI@>T_oM|uyWcec-;vOKxR{=BB{GDBLgPxQi+6S@x__=J;`NG z4%fE^dDQRb?9tCYXw*@PKjP?2TKOeNP?Z~!xGa^WK%~`ab)dYS0}HB&vZAnv=j@|dC_JL~G~mZ+72lAE8k*{|nBHkl7IUcnvTmTlFrdtTU+xKmwPZY2?4;Ld*r8^9lM zQs1k6o}Q`<{H4R)1VJ3u!T-SCv)2HgaN4ZCB!{!3AU3Rmis%n-Zk1#25-*&xhTDMu z|2ADwx`1BsDXpGE5HE6W6i=7|oD6I_$qH8U$-wM9OJ)#BM0z=*=cobnCaCczKqrGD zTLM+o;B|S(09u~+X$Cihxp6P^c*S0`>fVg{Y7;JKM}bB;_X#J01e9F#D7}jXD3rEL zMw(K7`VY%6Lu#z5l_=Q##=lX~+P#4{Z8)G^jZB;y^B>%X6UWNkG7q z_(Cfh7Nqu;mMtu3?H6qiyr>$oD0oUROwLvgq40_w16k!mLI4+5__yA)c3)tXo0iO4 z0lN+~#&9Q_l!ZE0hUeJTZt6~Tf}!8zYa0NxwLCG9PC;xdLf&JlzC}3<`EztL@owQERN-cSIZk6)*PeCRlucWP}U>lF?P~DVr$tS69*khxb8Cn0WAe* zFJMyVi|3Rnn>)wy=8r z&V$l;YefyU%;7XBI!s1O7~2>-umcm>u&uAH${GPPtB#VqnJJ!<)?7?J$Z-yAEyF;3 zn~HhKh1uhjUN`fV=58SYJzSG9VEL``0~pDUfJXl(T+i-)|HZ}~*zZ#FXRMcUT~H+u zbDTIpIlc)L)EN(_FC>HmW;Xe`8JbB64{EscP^>?wB)D5St(L}5ZXxrU&d+wxZ{vLUC+iL2Vg)uclsGG|7FQ7y}5oV*)E_|zU5L0JL z108xv)xnzo=Sv#vb}BwhFZfY-%HgzT;?ehJh?w1leqA|HzKR*@14eb}0+qeaDjQlBDi zFH`>Byyix|(G`471;u!r_zS$YglJdQOV*u=vSM9fT(X71eZ1e%{!y_m_20rZ50AKj za0iFci!{pF^0w_dE-trVpq~A`;EB;N=2xK})y$%J8M{9tu5tV4x=9lCCX`OKCly(U zAhcleRkQPWag_u~WH<(55L9aqHb$C=gN5|$23`32&Yunl6)_Phy!s4c&k3lh9~em7 zps)}>wxfk)p$uO5)2M){`DM;qj@Oz{>~bEtwaWeGAoHCaz;ytjKM?$ZK%rKQ5NV(dvb$+DVh`4%aQ6!ErV0s_6qm%HYuuGUt!~;9b zn`u><*IOC0G1>71wy}Gin#&BF4L>IId0)4Ulbb^kAPPnHR(0>8>cy#A2b3Tu0TwtA zx|vBygs=Tr$<)Ra5~VzYNA&xf_e>(|4>M74N$7R3BAVBTu@DXOMj2E3U<`W%5tjy> z1C&RNr4^h25^_5iWMkjmAGl$O%1G5r2*6Js5S~T+qHwHN5aS8PAm(WCh~XaH&V>g{ z@L3|I?_Z`Nzc^$r4$Kf31App{HX^wOG!S+558(>f;Wpa82mC#iwY>WPqkBt=?r0me zI&4r^Ar#(XB2HMv0$Te;*m%QE;Z$27{?#rVfc0oD2c^RSeXAEK#KV~jXBF#e%7{MI zge*zNTKmw|<60g?H?zd3PN+I{!8& zyZ`V(O;C-l&b1y%^;mmT;;lslqM|%-eJJs8 z@Q83z@3E&4vhcu`BCXe)=?2(eQjz*2{jjlDUal<{mMvblJ;k9z`hG`&shtIYE9(Ua z@w(Y=fEsbfHMy3w56MMCDV@(x0zjcDr)cfE2a1huzj{UGrSpNJwb_?sI_n3vy_cmi z;HZ>0K%L@9egnS3%fKgItUoC9Arm}-SKrS6{>GW)@!5Q~!V%%=&W>_fLk4IE{Y6Zg ztW8tLj#EQ!AZ*SMG4^fpnW`r6cPyT)@3&xsrU2UoC|?%>{_ej=RGl=27rXV%dHS59 zD49cWNxoyUe!|a$IzEqeX7A{U4#x6I$FD@cpFO%-q`u$q>*ypGsfmKN&7duRH~!!8 z4`nzDM?pI=^O1*n&NnVnnFHCAqEp39$TjMXJ;d^ml;3z7WG$h=6y_)6vk;90`LM0p zPo+3D{&{+LX_-NQU%4G*sBCae&%G{U;QkOuP^!^!MDcT#kF;b31=y*DQ-7SNCF~e* zgRpA$#x(#B@fsc*1mr6V6cP1xqM@H$Gyn^S^yxOFT3g&kD^Zs8db2~S)|5vij-;~x zYtJ`KL^bQ4fZcz#lx+DfU>WSH`on#FYqli{ryNZEW^8}^GJqPz)+6M_ivu8S#=NBx zj;HYOr4y*ec%lUlFeP=!l_!19zo*p_W=i`CnrED9zA5dmqGbqV;ot%b5-S&hH+gn7 zup6Tm!tJkw^uypFBOLMX^jd93AM;Kx#zcSO_AO zTONUZ(eRcM*K2a(Uw8RyvGIo7FNgj04k7-eq}?Fa-$ohKcI8)irBMTsu(n#K@E>b6 zgr_{+N?<6f4aGvZ+bF3>YGsNE3a}sDoO}+)Nj)yu`grnx*n7*UD!Z<2c+=h8p-6`U z(hZ`7fOLbT(%oGf5J5yhX}FM*QbM{x8l=0~boU1KySVQA8Sfb17~ik&`}y#fbFXuq zbImyBG3QzIsc3{(&E(C$C0wd2I*}PSXZ-Xiq&qtjB0-{BhvAOE%|4XsaUvnFTl9Uj;({SStF zogVSz%jf4^f2vK5MNYW-S72d*^Af)Zg(S2KsS$#~jmIntuih$R^9JYP8Ja~|ocn?H zQzDRvKO`bpXaPN*p=)oVoT9=`@9>Ud)_?TOd(eP#mOPi77q^raJzKOa6#cEp9;obb zY9O_`-w*K-W+eE_=?0d_K%5V6jo;`4N-xK5LG~yWX7kRf3mjV@O&0e-gbD`-$82kn z3>;hFz4oIY55}6sp8Y8%#(x|OBiQ4X4UppCtcYN@I;#}5C*2*cFf(V`sQCixKRl-S z2S>-3lJn1IJ~pr6RNN~PoX~MG?gZ%)<9`(q_+HK-JEeh^+BhD~pQ4xl<;`^pu=Jz* zdsfUi^jCJ|psD9HLrofFXrdQH>d5C z#)^MSthW5-F$*1p8oS1Z6`P*Jqy@`}w4SN3aQyN6CKPF)p~)BrFP7cWV-S}Spuv|r z11EuWelC#QUIJ8!1V6sTkCpOV+k6$VC0YzQ4BY6>H$q2dkNnx{LVL2u^{}anl|syU z;SVxy#zE_3)BBK&Z%QDMfpoNvoTA$rKG&9yYS&Fc{_l?L7^R9WG2;#zixcek17cad z1G1oXG_*%046Zot5%xX-TUCkJX&y1<(%UhG1SplT*UNBprT0+hu1`}R+1c^g2@|t2 zI0IhZ@1rQhU*j`;R>9AiYV(J46V8zyWhD$%YBZN-7JePy$`Aiifo^NSrmd@eduRpnph-s4aXd5I=;l=TbWr~) z3d2b-SK}F4Y;<@(=R$0%l?bVyu;nJ7a9Wqy>9FLU7}FiII?D}dK;toDrs1&ld+~GJ z<>5hk)iG6!h9nlb@61pxE35+oB(km$6f#l@4rOP?XQZeULj>{)F4={Qg-~oLCgz{T z1=adQ>&3%(Y=(ri=MJCeYkUHO+M0we12o?b`W*TV$((UNO5j82TjJv(+#zrR8jTtc zF7cte8U<)exE z^6{}Ch>Q<0uR_oa3*lq(N|fNAjCUXTaCbO;=I?hWv*!^49{ujNVpS2CL@)~4`GRLF zg9MARK9L~-Ind`aqzYNHk*vH7i~h>$t8AY?o6-7StOhk7;z3Zqh|3Ww7~#G>XfQrW z_h_S$fr}7MSfAHJvJb~d>dPqFFBZ^enuWWEzhVQf;VhZ!IQpL-x1-Ttr0#>t0^WWI zo>bMc%`BD=6GoeTt_co)3$c~ECJ%gXb&Y6TFv%_)kA0hl*&r9*q!K>Jw3?Mi53UZ6 zJD0N0BkUK9c>KOk0(Tq{&8znAcQK4WQU_-3wV5zj^lw&u79Oae_u55_ICT~H!NEH$sz zYS&)v$FN5e6xBSX0HdWqMT+FS$^K0ZZ?zM9HGJ-QOLlw7E3YWC^s8a%bcpeG0FTVx zm?AORe;Z@n`CyTvN^f?EF1x8BW69HBH=zchDW68@(NS^wQK?*n@Ix1CNuU2EW!A8y zdUFj}i1d@>SGkz#PE!!RI65qCB@|K~ABxNYdwo~vS3Z15g4DZjKpUX%`n?`ZR!}}AIgB(rTS!S`{#@^YPE0-^d(u}+tb(9o-E-EYZ^SGmNRxwIg!9691MyN^~Q1nY>Tp zu%UrSR@QQBB-E9q3y-CopJJ>+kGZc2ZwGppNE(OL&i3;-#SbO@x!7D(EEHwUg)hCT zAg#N{3mGrxnpM@`qAN}P63acT(>^ik1v^RX+mv!=3r)x&q%KeSmI64%>wMUJH8WWc zU3gzdWb1TP+VS=U;v8_4$;+=K`5{OM6^OnQ>B@}kw$m>eYT@p-*Jksj-5$)Te3Bz_ zkZqr*dZ}MW8i~}zV)!lpWp(pZQudgVCqx)TkAKGS-{0MYY!E6$39l7_!SwN17SNxQ}NCp`%?B|@4KO_Q z6kyIZV05}AAzYx}syD_|ZJ7MIZsudn17WmMQd+wSTg2q*8UeS9+nZf1OmID)GxidHCwSOs`qBhY- zGTm9(_FmGZH{jD_DbWJYOv$M?24TxW9P|#AYS22Qd<=|rjfh>098_y#zp448-kEAg z+Q9q`Z237G>Q{f#shr81dV*|J?Ou$p!8Xx=EDgK{Bsg^Y#2#L->+w{;;TdDHi26|{ zm%b|_Gj>ES3pnDFcyl<3C2;0DcSY$EX22o+i1A<5WZIYX^@|dOh*d2%+#Brj(_}>w z!@U3L1rSlcfHSc99zG&%s>Wr>@{i8V?@#a|LgSa2TYko%!0$KXam-Wx&ouTCwk?xO1oZ9ZyT3^kcfGJ4;vK z7;lTa0z&L|hQhLS4o!Q~6!DJ*%yD|kDI9+FO4#$@Sfm{KoM|(sp@go1`9@OW)7hjy z+u&#-EOyZVeQxJajySEbrbM>^LWzDERU>DZQF8n<7VD(f? z)ZfAfC)SRX)v>QbUC3$G&B(n$gKr-}u%@K*Bhl!Jcc-3nMKX|B!3ou7kVnCv>n(#H zq&w%nfMQzc9)I_CDwH_Bkf&Ie4pJE(7d2%P+3urk8ST`3`JC--?n+-D{*0%byu52) z&>j^;dfwusYNa7QLwfYDmAa54=I1Q5g2H?CCoGJ|6BPbB+?H5vx4vp@da1rxtn(CMDz4pFV(x@@ zcb;?SNbpy)f8f5(b+46)D~NwD0QFgK4(1`VJ6ig1{EdkZpMlM%>}nx?$cIw*=9*gg zR%PrVY&<1cKq;J<7(#n5_+biPp^xHFSNN*-?uh?{-apasUPHb_2rYQa&oScJQzV7* zCYr>EK;%C2d2UGXEtaNbw3B=K5<#bA354 zilVZWUMGsf=KUc0j}ACYv)`bLO2J3xgdFkRo=mKr{5nq)eRT8=5_6@OWs&*$>%HGx zi42iLsJU&|>9n1ww9tY-3WUnwjh<0$Ua_>YRSH)=$Pfi-oV zitp0BJ*JFK?PG-f{sk?B3W>f?(WJjp#-|?Fc4T~|t0K=WRx-L0NBx3rWmwx$$1gCq zL`XD&UU#YXV)int)p>$ZZ<9Afi1)V|oa0gQtXW1a>hZ8R{%LrF+1KMYdTW~ATfUxA zIf(p3810-F6Kp7oarXV>g|P#5oTXz~m|`DBt4A=r@GM&=V^Lt)?-Dqp_g0xfO4 zP7b!%@^x2e?;n<3u`!$urQ&^c(7rL>jML@Bt9Ul8kyt)frJ@LKU~K!GhA~$k=e)l_ z01J^Lj8$TcVMdh+F4o`}-yX~!vPJjU#kGC*4I{~IrNk-EdGv4a(j$!k9bRn6)A$b< z5Iqxbh2*Q^CwMu#Zdmg16m^%9Pn7XNNM7yjlj#+*BN9Aweaz!eKO?jVw)ZPZ8RLy@ z?V3@$2rAt-JhSDl*HSLjf(97*ev1|pqo^a0WLa8f2)_SGub!Ig|8XwpUNzFbxMykJ zDMI9kwLP@E)=I1p!4n!>NK;;R_Vb%~PCUIBap=xcc}FhewU#6>@#cO!Nbve(Vu-q+ zlEN+S_F+!hLxuB_UjVizt^Rth4rOl%L8*=#fKdL#XY*}|7AK`K_NVEsSDPM;CxlrN zUqct~#4iqL`FF_u0?G<|Mf=ITe~TCqp+c^x6q@u{4)+H+jBNYei{Kz1G{g372ZW>n zTIKkEzFO;O3m1ydTD3nXJ+~q2<9g*)n=;K#&`+Et%eoV39!Npn?`QU`(dR_vTx`&L zgDkOU_YIP?djm^6XYPlP1?i&j?4vts_Ve}H`ZE+?<=UTFJ;sA{^bZio#BT#Z5Z=JD zG`s^ZPD0oIm}8#+?bNkVCjSn}HoJ*+zCW*B7dbT+LLo*Z+h}(7FgxDly-bxFJ6vA6 z*!Lyn@h@4GS0F;u%#7mhT$)kPkOvCS?6$>*e;+-h2@`|7c7n6&;uHq9T8#)eA(s#0 z_p6lMs>y%qIBD;Prai;LI<;Q5JX|r4Kb)_m$u}*JaQOq-;%!l>Vdg_K9rw^xqUXJK z){eXMD`#gC#lBgjfYV;i+B@G?b|7{^OL&7ZrUSfY1mGZX@cAEV@m4gnp#=AUy%Zi#oZjv@=qoJxgrvv>ej6aE1 zj&k4@OANdVWfTDiLSI{*)^%?_?6&t8vLT{vUuLnhfJpGfpi|smO&Wo&y#m}68oz1i z>9Da(6R$>qMgb0_+b&XiOcbSyp)9fVjz4gc1O$Jug9n7Vmpm+-l8R@)pQ;PK41c%x zl9bn&{(|<$FN$_yOUPS>hAgyTU)co?x^K_913voU#A^J$qN92ynz9ljnW!eczbo|W zKsH-NHS*n=2eke`sYT5u4svwVxsU z?D4DniwUf#eg6DckzxL$o$gcgO>;+Z*OET&nxI?`-`225!R{>4h%NH$>o*HEEW{K| z5bZai>pnd-8KBPy2_ntq)>>mNky}Q$<7NyT!^rs-Haxzi{j*a@y${J&y%)BvD(2LR z#UDC^`~>+Fi9!;WVf0VcG$MFs*vR=FPhH82?8fIb_I8tbXJZr2w{^c}FPUOcJ!&9~ zTOLrKEqZTd2R5UldM=SpaZ&mhwns()!(QOc#X{Lm)+P9;dN~)R2T;8FK>2okGw*1k z)*J*+`6Zvv_Bd^Cjws8ixqKS8?&6oL$s~5;d5JRB8xao8)vJz7HiAi2@h$loN>9ZM z?KoIai21bFah{+Y3EksrD@&%o7OvS3en{b(pEJ>q*2c?fprP?9{Gi%A_F@F)D|xsk za2c)nC&2kcBqF@M>#)^(VA1O5ziVG{^HDp zCuUD&%shYMbh~CAuO_cWBkZ*wVKMjGR;*UBz0oE?=yAEk@iFRAd3L3M%EgA?0I^`Ffa-%-ofDJVU~%QyoN%YMBT=Z z^B9@oZi=>^DKcM@k!x}1vh}Tb<=bP&%rd=&u%8TL`}t$zEBL3cw+>fY ziHT1bZE>f5&?QJVx*EC|BtT?|m5wr+w{i8#7;CeUkR+Tm@!IQsV4QClQ56!(oNHB6od_7bzk*Tw%CBF>HU=17u`zg(c`R;8d4n+QLnNQp1<@ zwTLsjRQ_WYTS35sygo77hApLEyWP5}>4;uYC=g|~=PFrn;G#d~@gXXP=(Lw}Xp?Ls zOKa($E>KPDO#D;BRJ(f$b(hZ0a*)LnNN< zKVlD(JlZ*b3Rm%kMAMZfi$Q3>jrrrCtNNw37A@swz4vmXc851jHDratnW zHIQB~2<6z1k?XsHnu$0n5?i8qGbfOU<=3YeCVo@`K-qRT8f1Ni(-+B)&JOsrE(`BS zA?bb>5h5g}-78_)AL7qN4z6|&`Nc>mBhR8V-ePymOl`jQr)K4)ius&^+g17c&gK2I zD%srfM1_ zCXgDBc=L5s@h5k~=8YM&qfLs|noW$})6E9Q$nEdD!wWoWz@Rk!QhSy@j+du&xUWqF z!q(t+y%@o(8(D3Elcb3|KTGehX7Ub0VDb=Sy$G$pcq_M`m!j~OV54Y`*yxlAm^PzQdY&4bH z1vZ~z;0QKSI#Y?nd_va+bNkWy_Y~OlYfk1#UbD_eeatnRjb-z-qar4k#88d3mMow0 zI7D6Zkkh#7)fMz(u+e~TL!1x9NRK3p;Q8efo(GVgeV-v29mceNoBSLcqqQQ>c|VpOD8PD2WNLi1c@)*IQP3$UpYLP;c*z3Pm>S(jFl6b8A5T?kUwQo^-*3<=i~lYk`s(9>RI zQdg*Pn#|b~ioWozr4i&##6*{H2Uo`UWfx3)=+u63m3V#r6w?Tff7A5h zBH5ogm#~NgFglv_=n&F@)JMwx4k&I$~+4W8i^c3r1VMV`)CC;O9t=lu4ZO4~%MtXoT|Q|dBlUEE2n8I7f1 zQtZ@g5UupFlR4Z`uDSyTb{kROdOg+ZeP#2JtOeon#o#QT68++fzuHAs(B-=bf^a>p z&_t^&rkjtWk}!7)FNK{;hK@=Lp~eVsx3oa8Xx`VQFDJw6KaaiErOq3dkg7JWQ*z!d zAkX5=X^WV`G6Vjk38NjXH5*dim>4Z4nx0*_rrx`eRT+y)FBGGpR#PAOE)NYwz(<}6 zd*0%~hg;gJZKN>ne|d;uR%N3s*MWH&$8w z>c)@l-i&4WjGw!Wpk|#!BjC+$0i;t>kO*Sti_{!g$Hh4flRQ<>W2LbX7E;JR!CI zyfkT3Y^>Cx_sB>5hG(1gr0t*gi>T4%&5U&l^y((+t_-3(Zu5pltA6EGq?o?j@IOo! z#~9fOS56}t8L{oy7ft2Zuri51&Br{`llP<}=b4Sjde*$1!0i`HUP;C4y}S1EiaCrzm+TThcGyb36T$hIMv0Ky!?3xd<$zD z+-}a6^wQ`ymrEpx3qcB0>HpSj(8>T*B9v&xS)jTx#a=ttjpQl=QTuUF#dHCDSzwMp zD$lm)EIIH^23DvNnrct66B7mYX7t+a(3e{ATE@bRrw3~V375;C|4@sR`SZe!{T?_g zO+D23YQm5E4eGZm9P9Jve6KGW$h!{9%nT)oG$<$f*daTUR1ZXhu;*Une#xO_FO$pY zzXh3+<`7m^wPac-bSJD4<4NA=1w;0(r}^~k?_pg&3w-Lv2Es};@!)wsdOVOhrGsn^ zMCwRDV@Sf@W~D-=+8#OI*Krm;jhix!{#`&HnVo!ZurBJE>#vF<#n~w4wU;bjb~swv ztyW{l@qXNcZ^`BJx(HmYrTzXco+)~FzH;txI06b?*W?706fdPVpK+!G!o7(n^1BCm z=Q9lKOkbUUCr7f|esb4H@=#o9w%9eT08}-A1=3!xgn(_flJOW|kFLx$myWy}T`s-m z!`)^`5-zrm`*gM`-l-Ne07x;5N>EtqC1jbsRdd@*qThNESC8J;d6m6xKzGy6E4N2N z@G|ohRCD<3Oj7xonVIV*>XC!Zor6F%U!k|Sd}X%5G?|vz#G4v&CG~7Vwc17d;hWtRnn_6dPRP6A?~PAfx^= zXyTV7;+Z(>vyOC1BBEYZEVFO(uhO}<2kU}mL+1S$zE~Z!TsK#anEF1Q|EkaC{Z?ms zjf7}IcSr(G%kq0LJqTMr*^Db+%l02E< z9w9=h-kh0kL>Yy5CQ|k;1F5_N36|B27OMVG?{H~TNp<{<9r|~8Iq2SwEfBF*u@34a z)v=K6K|4#LfZ~-k;-p1%XULE zBrOh1YP_UZ$Lco!$mNWo(@xdF8P+8P$UuFwB*`gkqg-ZA#&@L!WKj=1UCS=!cq*fG z(6tpbO|+=p;VNeFmiNbLa`+PrX6EAa_o_$_m4Yg~lI5X+?jocq0Ek!HVL69$Bvxq% z`5}kDZkteO;SFi@vF%ld4Ixtco}XZ&51RRKoA)4L=deF=7pG3!v$cFs3FCNELL_DP z3{cGBEJnvsC1yS=U*4Chl4QqbbImWY^0qdNMzm{y!- z4pz0ghhG4z5*=Bt>6;41z-(7=okr? zXa=nLOCvrKlQcTkdSjvo&;RKONM#;)^Gtu7*BA5vPk{c_c42pjE2}u!&!!P}0Rg(% zc42=)Tokx0mG1FpCw2ftLGVGH6WUe3m}8g-Ts=&A6AkLM9RdcK>~RG%lTILYn>pGv zv>XhBLf;e2;6Q9P-|`@ElfSxI_2#S`+GRtZF+2Sgm~Pf*eZViDo_Opl6~0L{^V!z^ zmyo`yHs7ZzX38giU{gRXL~D>*ZlUVwLm$sbAyO?(?i|YKMkxG>{Wm^sq}`H?@FgAB z($8{gx7!k>rE-c@Ye}Sh5z+O^p-pa{5UU|(0QR-@)_^wcv)Um^kL)JgEcE;=>!v-O z_Lg6Ih73wCpG4fX9z2f%2dL`5G&x3>Pr>Qo-2>Cx^m7UW9;#v}2v5Q3&o4Ocgj3)8 zW5B)>0Ey`Q-Z$g(#*S6LT~uT`o5s}8iV>=LZR~Mko76M$u+|tJwSwQ;P zQ#mV}PE2g1e`q~PjGl2xzLY2JO`-vv8f7^Zc7zN=6+Fg-m)7uJew$+Hp}h+F+;8MS6~yp(`+vE{e@gFA0oRxy z;{6XTJL7gK+KBNyRZUi)!lFd{zd7$?F->Shux8kc)_`aHdm^ATuGpUbj_ukX?>{_a z3|A;ScKty{UjdK%A+ATPH6dz_(xo%V$Y+xGo$c>QtXdo*SjB{XeXFPbpI!j@86e$& zM}|m@D_?BPx4hV05BxE$(rUn0*Q=r@N||7L&kHYBIz7l(qi(u@A#}UjZW$P;zHa;{ zmMHXo(=bq;w=@wV|F=9J!u*+e5*N_YY$U7MDj%YrG0}rLISa3FbB5_{2J7jdmsewg zWm}Q-O;@{)h8E6RvO_>VBOm5P0T3&R>!Bal{0b6;eW^59l$$J~yg3dy$p@+x+9x=F zBSGp*=h`h1`ZKO20!+{Y{f!P!ghh{|Wjrm#gHeFOV0OYIa2Xjm_n;rA{0|X*q&Z5? zYvqW7!ql)J;JQF1ixwh%yT|^s(`$brKJkmG%v=sPZpUvrE+QhL2{m(Gh@et~xf*SI`$UaOc&kX{G>xb34_|hw1HjS2%WKqZnb2HLEh z8DZXprb7ynj=oNin7Difjbva(5pVQBCUb0&!*(#!y%e1w#6NbN!Is2l`(A zzV3qI#SCv6Q=t|(#Twv1V2=1+*3SpL;zOS0KXj!%45l=V4FR9V7uQS=Jk$djwu0^V zu@mhVB!U$!~V* zp7N-=xXKdBR_<-fYfq5`)|*r`RK0q4g8Q4?f-v{*S8SFuTv6cHY>(R~k)$8g0sNh; zkTaofhUKLZ~uD|F*)9XKex=(FWeI2f?du?X~1 z{AS-UMaB6({7Hlagth#is)l9=7m_Lv6ZrmVncsf+wh5~9TnK0cbS@lA%XL4$bUv8o z_7Vkie47k2MFOd-sL7_vzf;6#34Z6wszDM8&S2NIkt0=DUw~7}rx_n40r_<{Mko+| zK;QE7jM_SHuRQ0i(|nL&@%fHFMlhg$fbIfn3j?HG|C#P9z^8Wrqd21zlKD!>`|w79 z%}g@D*+bMq@@Ec@KT9hC9Z}*lQ{uN|m@AiV}Z*E2)0FAC4 zd!*&FnxJGV-rjU9fOC86EQFL=^m`nTqQQrAXt3fyG#-_O0{SUN_eUt8pX$cI%6`>1 zU9Jg!nD&<b#*3zS6i!N{%SBqun`xi5nl45U&ugCz67X#8g~>xvn>pav&Ij{OS@ zoY{utq*3{>1{&NNpu`4R59i4f!2ABhi)usE1s$PVPaiFddLnl*_%lC94)e0Vx^K?cCJXGDr2_) zVOA5enLlW=-rXRB9kK;CLWZb!r#=)%zy1OmIQx3;7@3V^?IDth zkv(XifeeJPFGIdnOR0{ZkvX@%ofFxld|v-wJ)-s~`5zOKpLkP1j`a9J0l<%T%>Tby zSuh&pzhnLXYP|nDth_wY{|e!Mh4A3S{#O(JpF+q^6hi{;>*e1(8L@#qU)I3B8=O*wBT8%iJvB5!R+|n1?_^2zK6jFv8?y1W}cl$ zBb)>Rb!C+SaTu$+iuMCb(-WD3zsL~mzL=wSQ$&}tm}I!(*`IW}iRXhVMO%a^A9LdT zmZi4u%qHcpjZV*!h4@Z~y{!I}rN2>Mh3A}(2vxgDPr+uny)6z?QY-iAgvEylZCDvH z-h{b0l(lPS^f1a$xNTltG~VfXoY^!s!`v)qPpk$Kpv+_d?P!%$eS8<%U_hYQQpNM~ zZx7>~b=%6S<`s({s}2L4%&$~2jGkYH0wrZC&iXqkrM9TRQx>`MaoKRFUMZH#tZk=l zZi2N6nDJ@@Nm}K~c-B?Hk=}?~&P|E2z1yvTKhxW4P-}4ABj=iF!p89o_<*da@$!_A zQM&wZ`~G?Bwg=kzVst$v8yZU@o(pv1+sJqlvIc3+8@5k{u_5{v@-a+EE(Rn&_t2)D zchr7}+>4#iMaT^1Nj?Z>%1imrxETSF&Ovvmp+G_Bhz6Yar;Yb>sN$s9{UMwbND>YEQE^J{Ya{ebmyyob@m zE^=%)R8~EEV81i^FYO+u_(w3qup9Sh5~6s!kv!5QnywL3cbTU`=m8Q~IyNpNZ&5a+ z#`?$V&7}==ah?8>#N|;h%fI7MGV-M5kc>Dls4>3|sYb%{e=reUSB!tCNIw0Dmy5b0 zx3yG}&6Pw)|5B#p6P*iX;ICa9$}(vU$t9Tx@bh?m*;!NJM?0g?c2>7uVdwlA*J#u4#7WAM`%_Quk43O_aTvzJW6X-(wp)?!d*3o5}kW_ zEkq?mnsi09yS7!88+|nqec#z742Of(KWks_)$`}+HzZ562t4qxTuoEXe>ARp54&1`>l+> zL{ytEkTzD2eJiGXahEctKRBt`cX$7w6Z}?tyH*jgmEmeGJ$3MlUT!!31;*J7zC2i8 zowF>Hm9dwQiUvBpp!YPAl2!DF2k;lq?$eqWdZu;cN{skE$7nCJwVUi}+@@EfaN?KY zyz){j#3BUFglU2@{<{YI%aN}{<@}Fy>_R6rLYG|cyT6~Jd*H>ry7E1W{k;M&xbq}h znDG@hIlQy|aysK6^1(4{0V}QHhrwZiDE`6~(Km$x9r$_Pq-w`Wm|e;F?Cgb)%F|AZ z!R3?@re=jNCYLKA)mQiHA?>)=2FyIO)6Os zf4T)(U5xZoYLWxn0G2WbPbyylTirD{P(Rb3UaK8pc9narmleXuLB7{7do;Y8;R{F< z^g|bS(cF~3%&j9%*~aq5Dz0~g2n$Xf8YJhWCM~Wuublo=8fFusPA|L`ZsMV3AL<-U zw5R0|MN647-bjA;c{X@O)psScMmNvKH7eK?cI?ZyAD{2-35S!_xJKUG=a3iQ8p;cG zW|T&))NckP&}ZnZiTBUr`v=?#`FlHaON!l+%xkBXOEH#mHZzE}C>_5jON%5Z5n&Tm zWnnuugVP)tT{h&DWk(qG0VVjo)&m=+$~GCR5|V6Mol!DvxacIeAC?M6RwPOaMegFE zna{-tqM+>tzQA$@XZh&&&cHVegM9S;wQqTv{>qlAG|a%(w@2T-oa|vTp)fZ0lZ2=s zEZD!_RgywRq)IuHFVkWU)f~G5Xkbd7zNvy5dLCVFTc2l(46Yr8&sodv0$slZ5=?dO z$nd^>xkf(`*fgQ>p)6}5Bus&|il*x_TlcaZ^Hcw zCM|a_ws4BH0Dt~l^WkU^0^1+?I&1tz({AqZVtsCLM!=uIdThxu{@_^Gmn3=UYAtcw z!!LxiMEOd}f`0Vy9Z#hk4<0We_q+TNH!^7(6J?jOxsO;hUDVAugFpsVi>_>2aovx{ zBJI7zDsHBq2z-1WeDKPFrM$P=aAY$tZAb;@%IfN^QQ~}a`)@c-eBMNihRm)>f?U-s zbdjBIl(!lO01nxP-<#Sz+3AO~hfgg0?vd=9HdQ;fb1Q+WQr-?e&f5L<^-ZPuG^Z`? zM0PveM}gPKM5szBZvFaI3wI{~6+bkFLW+MtDt7*;QT{DdjG)s?bMwr*Oj#=t*#G`K zfWBG@FLT=$!_h&6GWupZ*u?F}V;Z>@pU2s(=P)r5U$QrGSb@V*NB#bdCzq^bi+O5F zto~B&CJ`;HYDw#66Q8nN5Z`?ueX+FqLIEq6@D4PFrSOI1V%6bCxkn{8kA#?uHBm8t zi21iEbLvPD6S&JP=}x)bT!I zy6J8_uNYz{!mQVlKgcAO<5|*MJANfAu=hdQAco2tzp^>gXg-szWaEC z@YVRnpkms!zeyi$>BjyM-EJ%VYjK?ad4xSDf5{Gj7*gSwBfE>GKrw0J^Gcva){qU; zTTb6q@7bYHIS<#PC4dN`W|yGny3L`tPfLzBvS(7K%~3^Js(u`U_mN+I3y(-q5kGCv z-SNr;0lA31uDuQM{YM7n&EO;3y0?#Sg3cN5E0xrkQl|suzrb2_b*(bc?LHz7PW|Bi z3!i6KzbGT~qECGv&U=y5otsIJWB4{L7z2TUt+t#yd{8_IUXt|1ec)WV#9uLTluB3Y z#_y-O7BTROGhbW0l#9-JAq1->&bo_K3Y^2pE#KR>(k z55xCY__xw?>L4)pP+ zQLmeY@5g5%~=f@GJpC%bU z?A1a8)+t*x7_EUg1@F?)A4|k)!W3HF>7c04BGSOBzEyt;(jVfA>YQ z1jE-Fe}7kR6v!1fH5)3LwR_WAx&?crcjqhnI?raa{VsofV5R)t_+{^AX+-nUl_H)k zPx&hF)~xTfL8~=Kd^Ysv8}F&?hh_pcZ$ph4qHaOp`gx0XMRyzJ`?LxzMI1`=?edHG z6v&f6ny^>f)%@)K!0?mKX1Dikd)h7jeb(X)x};>|eY(yrYYkUhTkdCPgdyrL(HL{L z6my$48GrvR49EtZ7`@Ym+dusK)qbXKATdD*97dI+4|eyCW|%$;850mYsT!dNegM4g_uvUOi1 zS%A+O$0I9_epRS|JfIlVq@Zi*&XC%Rz=+TJfYw#!(5tFY48zIRC>-V*pJFOQ1Cd-w zOMHaOb<$tC!!g>SVkgEXNBcbhnJ72UwvL1~b~xnHd8mUn_d6tLU}lDkl2F29n|n$B z3WOoR>Nwcoj*t90fU)Ki7No}29Av>(kFS9u2LNC>$@H4iR4wcWzb-naViS|#VM9d< zGW@u#KKe>PFu%3%uS}7;EF>X2R;H@kd(&5ju%dBEK##Ud&(C#NOdrW@fG*^? z)!gh6nqCJf=d$Hazr$hE6{(7K_=wkGBGWiTd!omx>{cmaBQ%*gAM*hH1{}SVhCUxA zkE8eBsCGsFH3CV-u!!znmH92N8>i8L1Nd-&A9~*!sOoH%#}MmwHCPBsY((TYKI1&N z+hDP;e~&frjjh*C%?s;?WKB`K-(=*!Uh{{eSB{3(a+pa}Pju}?*$aKVTFSdemkhY? z+@GFtlrGsl7|Y=yLg&ONln3lE+*N!@HTRy)+R=|eh zwtb27(|Jeq^AU^w)%u9Jve&2GGw$^I;R2CcYIYWqIku{i4b6i12ZH=^YoJgz%%$2mOXsf{{& zz@b^gCt*u#b0jTmhct@>-ZZbW{rMUJ3|ap|mfLB?d-%L^W6k>=KFIArbQ>}%Ax*L+ z%J8(#fOa)KF?a7KLr9gYzkSG<-*>TDW}J7r=&fZ6X8O7*bU5mHF2jS%nnWxZc}{;# zWW$2?7re~0Hx@9C4(l$h4;9dvmMK@P8#V_F^t91do{?jAjPQfIU9Sg7sNUn;0q0w#Hh`nn8uEzttIbZe+6 z*r9Be{H1*2{j1{xilEQW?J05_8kJC2#zF4-;T@g8(U6slOEc5xT+D_!q?E15K`TWq zX<=GN)?%*nX|2p?uuJ=|KCXl1l{(kfn|DnGc9B`IV}rD@NW)t3sPdsb^~R4c3^_Tt zJYFWJhMOb_kjZpICTd&*CT#7r#px&Vbpsqb-tCnPb+PpFTMcIse)&!f5vDoldHRW+ zkLttEwhx(o1A=;njToFUHD}kqO6I7wcJWkV2NUoh0}P^gUnYI!J+Esuo^c7#w+#Iz z9$V{X%j|(bM&nUXAo8Nis=M_Z$`YG_9t6cd&c6+LMVAdtTrXJ~MNGjYxO^4`J7DGx zz4QYy4CU{%1)lIBi<~QXTQ2R|x>S{~HuA0U$g}@*mQthRRU%DGL0WW^z!t--WFWzs zyjX8P&80enE)C~U4=Y8BZhPwOd|Be%Vph5%S6|+9DQIfaQd>$TluX~6zjQC-HpiQ? zB`c%(^cMFC*H^fDZEsMNGlI}4Ng)4MRviQ>k2z_~sya1=@0BLR?4>%XNfx|fuO?8#qGX)K%iOc?Nv56(eJke*K^JzA`MTuJ3nHKm;kJqy+?|yF--j2I(5Q zy9WtD8fg$v5CQ2%Ivqd|>23rW8YCpo8t?nP-{*O+^Wj|QT<6;}UtsUO_S$>>*ZSA* z_n$S(f&PJCvSgDB6=`?qXn&4i1PBF^oepQk6j+T)z=&< zsyb;cL&3);M~6hXFSUhbI!pDFD{Xj|MEKJ7k_5p90wG>8P11*FCy}&gGM*P9Ll)S{ znMb6`T|*|F0Zl|+%GXZhf>d5{8fA^wdf$lWnZ)8S6x2&0J4EwWhw;q?=OmW*9v1s% z&;JO5pj5uZ7l0iH2pD)>mXIt?`ukj!;xJDT?RAuMm5sTxLR0k0{Q?U@zpN%k<#aZO z%2C4Sa>=N&bmPjSV7i8JSdrVQOxwf^N~7)zUpKCaUUF@=-SsG$4Od*{^d8BRX@iv4ldi4b-OEOIZ1>tINj6K**p+^IqdDzia24P3OC5&ATJeJQF1*A#cF*n{hj5Ys$j)Z;{JEATpO+pH(@VXODO z3fgpeh;fYd=JMwA=uR->QJZw?ELw=k{uE{MebP84yAZf`a@qZs-cFj_jxGo!0mt9h zm3F;br8~>KTw77j(QW3tiIYSq3}ZmqK_ZA*eSPVN+g{I9;W8y$Z<|OY(Bz5H(2Hq7 ze4W|n7!V-tGq2s$EVQyOQrPg>4e?KB*|@Q=sMNSX1ZV8v4^>4$e$wbd2Rro^dfrW@ zo&=#Yva9ciils6Nc0XRh)8n(&^{p+K_ul>JIAsk725Xl(53wcNC!K^Qzu-<>W!=UF zi;vRT^v4Whg*}@?l|)Z&Zs>eI+SeYH@c})$6}BTt+nH!`KiZiIm4zN2-5Ep6o+3gY zNs}#7aZkS=x5y~!ereH>E$i|(KIP#s=ZO27a*DbnonqdPQ*_bbiOYtetfe3p!NYM1JsU6uKgA9d4FK+*`f@0(taz`|YA z3F$-b-jx`R%z0SkB8-ZU&E|L-T$GotSnt#PT9<-(E&cQ6dtmN)HQmfTy zLuP~d>~hN2WDcxnR|}7IN6fX1N+UTS5fJU{1)x@UBia!;mxg>wle?}s+jC}wYV zD`%VtqCep#<}$9hD}*6%5)1 zLwZ%o<5c^x@8+zKhrD&y5ZI-PwY3{fw}+0?m(lPwDhQk6+uY5@NrFA;&o8b|2Z4%W zB%3+H(%h>pI+P&-^Xe~qm_(;)zgN}QH`MlT4MbLl>9upW{|sk@Ib7s7VIE^0e!{() zSrIi-nToOyLW#(YI7h+k?VX1`^^=E5TQC`EFiOv^*DULHJrSw6&{E3bPdi;r)VR4L z@e!hg(n{2X1_!_CzQ6D|;M4hH;)~~A55z<8SMx?hjQHW0MGxTnvh>AeJ zgS7WmEHK^$_V}ELX#>yk})N>6>u zP4gV%cKi9800BL(`zX?|lIAs^p1>Z<0z#*?vN!(J_c+dr>QL;f>QBCk4J$#@bzjsd z9XHR^N&B;Cq}g!5PitQ`Tw8`eY@0n|QfB;h&1TQ`+%w?)ioj~_EA!u%R`D%ApZ6^h zeP4KGx6F@g>f{l-cJTSWKH7&8_W3=v*!vvpn3_7Vn?t z){r%&pB%EqFZQ~WFkCd&I9*7_Bgdh7KKijBvnfIJ*{_uX=T=3nBOG>$tD0)%rz&~0 zuZpxyhwMaXKXa{Gad;5n@!XYGjG+j*t43>*^n^**%C2)TGkbSCldWLRfZ4A_-e0t} z9DD7Ud46?#0)5JYUe}yPeZQ|q<&ocTc!SHDe;=V(@#rh0`7w6#Q>(kvB*8&#l>f{N zt_ud~EDJ5}@=m8lg^2JRpqDUDGyL|`0%pYvt5vN9hxgG(>JPuH_n!RFZL!MneHY-- zKuah#MG)Z@9^F+KVH(g{cKsn=VC4hJ@s5J%V|2K+cZ)TE@O8tpzx?vqNa zFl~8>`X5I*Uj#90jhRY4bk%CmY)oHAU}8M4c%oVver2){*G3*twDv(y9xOYLI(jhY z1)Kg(H3BRg#bby{A%{1MSewhwO}&0w=C{^MNx!x>sYHh)eCy3;6`EIG<00_Tyotla z=&BwK44IWSrf;&svo^+W@%ZW{Fsl9}^U!y+_xGpCQ{`(?^1{BZsw1i%4;$j%>>pXwxg{oc%`rVk6n&0nklsiZVYekY8r1<3rv`9Ag(v|15+@A^{-&N2Z!xHylTpwp%JbpSREbne| ziZ4cR(9a-e@=vVomFF~}=V;5HpYQo4)9f+pRRz^dRQ~MWwhv*9RAojp@e5k4Lx@SKe}mieR#fuSF|1}?gyFCk$M&Wcxgf{b)|l_Oylj@UTJ^F>YWrbyWgfg zcYIK8S$>JpXlWH4hwo4PhIN-inHuW_9SZAf+buX&tQN0ca2k5rf4J}SP|=$vW%&lAc%^+3ru3x{3Ij1ulK{jtH*e;d*7q=wKtBq8{M9{AsT$)b#;3X zXOAicsY}1l&trnss#=mk0N+yju$;oKyo{0pFLoHeYrj2Is=>6or|JPrjo?6g!ItH# zag1WJ?HHu3)ct(h^i89ioS%AfIIptbhxR1lGSqQ$^_FT_l29%ouXPl&a+Nuzu1eu?GJEt-rF zEKTWW<=I3&?fdj@OfUa|TfxI4yDfN3G;F7cQ1_x{7fcj;2%Z^IEpQ^|L5# zoJuFQXjSGrMs)?hf0PYVd6-Zn)*MWds;JziMn*?i+`HXq za{W>R^7_RGBf~19k(YgPIIo|Fc6P~!i>rKA;xrsvsd>ajO)#o+E$uPx_~A=3DX((< z1K{szW~l1&>-c}wl&)~lmo;Dm_2H#Vt0>f`+Bc4EB>>Y02Z65n_~uSaBfW9lo?UC> zH6)K}B}7!G~RO*0DFTDS_RnDff@shddkR!02%7fYfU>x(Z~;s8y%0;3C!;IwoV>c zE~I)xC!7vOmp8m96)<1-^eY&(M{4NrH;LXnOaJ_3%kCH%t43|b-No2bOyBc~i;E(S z&CL{-sp`+RPn`{$bkkW`7FF=olDd4By!0ZxtCj&$;}p|tClDjYb=s=ww6hlfh~utw zpXh>RIH3a1Ny6l_uYp_HLV4G17)EXy`iS3k7j8WWt$FgVViv5vw&xX@}h#Ciutko;s^gen>v-cUT z#W-AGqnn>DEWHFl1qD}_IYndm2_usi2hE{w&Vefy zs2Lyh*-m~HTqz8j*mcCeV>HMT!gX6^Fzfif2^>Vi0H14=BQi4w0UXlQ*gnNnb>iG4 znx|xiz$HKQqNDrfZ7nkIuiD*~|DbaZg0~rgQCVGKIJDx;pUZQz)f#mg zSAKk6op-xa3kzb)%f^KLc@h?SiaD`TG~h)?l`>=C32boa1vAXjQ2)WLm}`s!tl&W? z{Qb--GR&wy)H$79mL9oUB=Mq=kru07Yxdk8&h-xVsj`&n#Ap@qJ0ER}GhxXo+G zaKl!wP{+Z9pJj+NaQGl6Y)nqpcQ2JIhx5bZf%fKfWs^%_!*^~;^G#XQcr+hx|mmQ zgX8SOq%yZfmDJoZgAm|yS4|vH0?~#ViCI0dxa_c&oc6c0_f`;Np9Kv3o>kqP`?X+v ze^OLm>s|6o?!}85Y%rC%bLvq5u%axEv*HFn-I~`Cfv2&DSx}@jR^#{}J`q2i#%G9# zFZI~Qz^S*^)}f}>SL-|XoH(ku4n~UR3$pLl+_+~~-XKA2|G*h^<~n%wzg6rLjPQk={~>kz}e4k z-x9Iv(SpPq9KsZ#%k3tH@6-vdmvhm=`$xYNz9GP3E}z_UZdy9Y{dBof@`I%E5`C_A z6-sU=Fuqaq>k;Y94ayGh-H$!crHti`ow4Sb6`4=Oj2Dy_o zpnYZit%MT5tUpQ*hP|UNS6TIaUZx6Fmn~U23Cacz4I@h0fX>ffrblgTHUs@v;Js6< z4j-gWdomgCxS97#k7+;M17ny=bM~z+_f|f~ZE(Q96O?fR8Hm9Ww zDAMACi)ss>9PA{sxO5) z*1Q62W7fBTT-hi0i00o2n-{Yj3uyY01MCh&At9Iw6aWat3g3!VcsuXcGR=d2TW{d=VCx-oEr>P721=SD%KUGJ0h?i6!h+PC;}yMm3{lM zbuEOmwfy+_JagL;G{x9)b@KN;6u$J_FiXqQ&LPguSuRk2`*}sFOp6eUxSKEVajc+N<&{v7_ z&giQ`i&9xotvzOzh%Shtn|#ki;wAy!_dBL1fOL|q?|pVDzp!Q_N+4-^+?%Kwl5&wesde+f?UP~rqK;2SR^Sz@>iP}id*sSd^&2u zfq-wRfS|r}lQgaIf#jIq+^we{xH(^n*XZ1r!Y@{K0x*6@K_U!7vMe?H{(;itw6=AL zZhvpVGJ{hYmTyL}6v;9!HM?}4+Lp@`tV0rz@9V$j^o7iOb(;e^%<&%C%D+^?h}|q9 z6~`Ot3O6(Aq?-=c0AWgs*oWeCUto{7j%Cim-H94eXQ)23iL_9}oTQ)>2~i;mT2=h* zdQ1ll18~3idt$Bod+;N%v^_%q+fmg@hnKxUsvo>wynIW}jhWY(s7B4%k+@~LKnzEy zbd)S-%V8f4^5wkD)y7cWU6hF`*$d%UKR=uoW(dr+Fg|r4ltH&pc<_C}f%=hbU{z@y zp`E1e{gbO-tm9+9{JgH&^~h6D+Nf%4%F%*s?QUOt*oUnMvJHm;a79y}Oo-uT)C_L2 z=@Vz-t@~^P0Ryf#5M9H{rT3`@gfiRRyuPxAU~cP0yt}Mwk}Ycpmm906Cgu1quepw0 z*Y*{AjUC0Ol2&(+K*mQq%$Ba5?#SHI+gzN7+-W=k-&zsmih3?&e5qFb*|3sj0x)n~ z<=P|#v82T}t$3%=O%r*LH%TTM$YenE2Ic(q^zz zAw~MdWzv3F+BwtXLpo1b`8d?;-oSJyPHVw4TM-7A$NP8A#_Nb5>)^gT8Jme`dl?3@ zISw#)it#^j-sSIx)!Vb(86c%^t8N=oJga(Pk%LVj#n8(~pCet9G&n z4aFVno<}~>z)uxmu_FBr!(a7U0UI)+B;a`^Q2Mk1H^txpzin=I|gl+I4# zj1w&>+U4t*FNz1^iy7~eONTPZDGyLMGDxaP*4CoL?ZJv?E9Ikn3*yR3eX)bz>$_+P zQc)U*16Dvwf5-EO)34_Zu->@y(;QiqKam8=tyf`}swI8fH8kb#VS4jV?sA;d(sF5O zkhOnU(nTd5_hY33aD)fhbu?cA1yF4~zYoLL9_JJp#da!@YA{9wJB=hN>D6PZ69Y%$ z?0)}^63WHNbKfh`(Q~WwDL=l0 zIM^0Jwabc6!^9g+W{;Va6@N|AtCWEqi~=$czA&1XwkMiDWLqgMFx!Vl*nWwTHkeZeH0T-y02D=m*Y0(f@}8aBzwo0F*wfiIwpcM`9)(A2S*mkK&^h2BT(#Li{~#-E!2AamOiBS>i3d1UWvzMT^Iiz?P(&H=e0^ZbQGH#&1Eszqbo& zrz3G0YOt%^$jEO1UTfPgW4jb=rGmQ~SUcN#igVjX+;&p{Qds{6btYsVmKAu%)8Go7 zXs8vpj|t`lVCnTi6>~SAkD!+Lp@$*&<7o6ei`nmGVEC~x>}AzyhW30$HaHT4kR z5Gz%ZziuN{_d}oK?g>ZYs48mp=;=jA_^WPHUwicE;6t5QefKU4j@+4xa+rP&;U`Of0;)-jY(j;iA!KS!nuc#j*T0&0R6>Ydi3z8H-lut+(7&0Le2%?mJX$ zM-u%f%v!A0`TpcQwg}nk8r4o<(vRrIHO90zZ~1`cYO<(QIakAP7RX8t*i@M2aOu; z%XP!4w*9e)&GiHQ(8Wc3 z_8povDgamZbRjO>uGRxn4IzZLN%hL>8|>bV;r_kdoC=KU6?pM(&z+#f9UnrF^eIqc zah!WhV8oB|Ui1x_Bn^-wJ^>N3%uE63zdC)d*oYRAlxYX$&W!lE-Ngm~^AT>LHW@Q$ z4>7=#3hQ~h7JoA6Z<1RZQ`|kq8Zlsh*JXaOD7o&DU9{ZQwSq($G&I$#LH0*2#z>m1 z{X=ue=We1ih`|)&2HV%B)Ut4Q0DVjpaEjW>df?x_XRF!GF`YD@EH&%gnE&kH$`%Pl z9m9|P=2p3iCa;u&f)3PXZb9UWnlrz0yIe&?HMP{W(GwFtR+94d=CYm5AULJFaUIJ) zI}7zHYSJrVUBC*TEfP`_HSUVE17V@g$AKQLA~#NUQyTT>4}^-_a%_sa(To>2j*Sr4 z)Ttfm5^1JbTP@Nv-c@?LZ`<8HMd_i`emAS>hTrH%#EVbE=|C=cDL2vdxT> zT=JkEELH%%Y+e>5{K=`u)I6Jym(;!g@w|bRf z3FyEy(>NG=iSC)srTZ~=+zPEbu!jpYYQ7Iy{jh*I_k z^Z?2yg2N$;ElIn-m2qYrA0msT@GQ9&g_utH%LTkmi`>uj@LqH*$;2LWJ3zQWtSR^L ztrsD{6^km(oeS&U9o06p%SOkL#*#@JL~pv7bFgtKd5*jxO$l<)VeROw#q~JRpkj30 zK>(x;fA)u8etn%b`In~OcKgNA%uOxXfW>V3Vi*G8!OH^YJcK|hZe~mzyRW+I;f3wV z##xE8TTb~nnXP`QQRYQFf+XA)tD;1?8i7l5(FdKKIv~JEhK~!cNbPQ~wB{5}PG?lM(c^lp7DVpFU`KcF(Jufr zh=a?X(GsrG4)(6iQ0EawhMDR=g#(N_1<&By7mwo{80X6c^F1oQoYr19UYALfG1+wm z?Z_!%zSf#I#;OrF(I*_~n@rw*UOhj@+5_{}y)}`#4gVf50BjMUa$k!peb(}f)|WAi zY$NyAA067Y;&=oo{7wAl2}CKOH5HQNC4F#!O$pB?c}y8+6^Jck-h(e%F2pE7?{FSo zq{IT~G~-n5_S1?dNIv*BB_#erjK!Ksx>fRP&w{u6O=bfP6lWzQPuQ3n1096DOFv$; z^~CnGBxU3`Vc)}5=r-TDyyX>h^fr3h5T_aD&zk+s->d!9lsUhZ*#&6Zut6lhTU&Qq zZ0S?Yr)fG;Yv_l8mlwlvmEIFqvRfnH>NZI9%lxq==r?bDRR30^X=W{JUw@d#%3=Ngf4AcGxG_RxzkS;vQ)@}CwuXTh4vj4mcv%rrEPP=aQAU;-Q1{b$-p znogVcJ{!-Z0_XwI4Z(>@&@^&k`9pFEy#0Dws#63?9e^oRHSl6H?SyYb(s|LQR2zp& zl!PD<>=8Lh2~A^{S&8sp`xZzFbutG`!{uDv4kLnNg3zs3}I@O5R;kzT0_HoMNJz8cP^VZDK7;j&rkZI9I<#WnHNsKdKr!eeeM9Fo195 zn3nC0L+a_}GVVd=GH#3Q{Dg7mmB^MFqYdE6OII+m2mPro>;ivkFFBz7e%VUpMy9-) z7nR*T@Mx88NT=BDyN0W*!G?B7Nn@h7;Fh?qR*j*XVRqsm6v&L0k0aOZEe=30`~z(j zPA7RRAOv#u)k3O?;S4w|U0B?EZvqy%)AuSN)WdNYNE+B|ud2ND%MA64b?VS zJJx00asFK~tt)o(urK_1byp^Ucn>Y}|Ql^;&R*;@POn6dQQ+Imh=r--r^`*^ZmGCAM7Wd9595~MS+Ml=mUCnNT z+yRY$#&5dd6}^ex90}5Bzx)E3mir12P|9=xxJB??L!To*)S3dN9BU>iQ@4lO1P&dq zMs9x!8}!frHW5niXIG!J6TVUG4hPJmGB0oE&f|G59icV;><*m*FYkaWNgnS%-ma_&E_}zkZ2`dVNRJqKmATkw zJh~NrLuyA`!lu6=b_JG%ZeUe_xPzqw$~Of8ncDb-B)$S{0F@$%E>K7WFv43P1RUpi z5`aYYzju>8)?fg{p277FZSQs!|G0iD$T0j}uCynY=2k)QSE^i$2wZf=E)EU1jmxVm z#RuZaDp!hq7zWsaEZBmY4}nf8jDX7E%xYQ@0&v&TJocVars5A2@_NPlhMOoQPZna> zRrdDN-VxR&<@Kw_rL{Yk*TLPbYig;Rt_fbDN-b}3HzD-{io+%6eFoCY14%*BC3c>@;~0lqQcZRZ9Hk4pTAV$DuhNMw(sK8&-%4Yj7d znVo9QI8{qMH7$L{8m0k~zLT6?tD=a$iNj2BqDj$Jl;YZF&X6I$ulEgeP6#pLD8URs z17in27ga8mh{Dr9^8-c(*-4xsj`J6JmovZ3kq0n+xkr`OZZjeyEufm+4?cO~dnu&< zz^G3z_Tr0iI5(?SgUhI~5S2WDD@+|PC6!j)OX6z;9T=;}Rx(%Sr*yKSoFY%H1A}-m z(Cu3ed8aAIpzEY8=eu|Nu2QVJ0P*q_5HHqka24Lv<&f2_bN8$T=O{-4UY%Y?r%hGn zQQI=+>d{DmOM`m3yXYMdH3CjLMoh2*wmcVJja;QQtnf7p9I?%box6^2hm?UrMS%%t z%y2uEB~=F$Pc5jQCScl+M@mF}2&Ec4_QzRSx5Bmv(5!*C@13_+K83OMh3 z!9i-vU3e5Eu`0^;?O&=w0BJG5*O39rD}w=jAIN`z4ytFwcVG`d9i)8Sh!$2E?47#F zFTl%T@S&}A+?}NDX2gEKZ(~x@KYF84L^yTCaq%jgYHA33$s*CY} z%?UN}jyuF+DEPVXPkXd}#&G5rH=9RR7zn}2TukGxeb#$D3S6VLt`19OVmOSVr{5qpf zI!Pa)3JN^{S+vGabn1I3!0Ahul6{H+HUYyk!wepDkV%4(AnXT$rgj284Vyo9EW7>N zC;ROpp;zi|ym}NfC%ie>s2CWhxG&{6aDLKVyje?c@Sn0bNaH~>r`34$3?QZW@J#uN zYA!6}tm)~}4AITiKuy}G?J=|)v~36XfOCl#Wfv8B$l$2Q=2J2=6U2GbA~kwi20?L= zNO&WGPIK;Jf}}YWgI!cLjzK{vQVBrh{OAcC5kQ!oL2-?)Cmw9-qH*Z7f)tIGO(i`{ z%7(ZDQPY8_dJn9X%$BklOv$KC?E3&I7v&~?pYvx!M#s`;Myn6YqYSXufd&~*I+6d#r zZGcFFJx0K169PQ=Umqb5RsVG|0p~wW|099_NZ>yb`2Q|}n>!{Y7GEb9A7nrvsMa=` zy6(D4ibCd24s50tPG(RxZwF@()cbl?DWH>LJ=uy=G5@)l+I)2|TtA9WO3I1**Bc6WCcVrTdA@?!JiW^;12V&@bT6lCY%V&~#w1uaq|P zy;&XIXh9E{)PMSrgu0o#+Bm!0I5|=y`!qFk@^BYrV8EpQyK4z|cUK#;e|mRxV>A78 z#shf^8yGaZsf8OmCmRRywWz5@{%S8IVc~{6{OchaP?tXke;wJ|{CSeIsjC}Q)5jSq z%AgK)bMkOChyLjSdDGvWJa>hfxEvN-vm zE`VWh|2+(FBqZVCZtdhMCgEV}NUdpVZDVg^>S!Z^Z1`W7z)Jrk@Bb^A0#*D+sQ>mR z-lop~vg$!Ip+BqD$yL+I$zJTasiP-YWB>E?|Mpe>dOM)ZK&{#TQGRgnkNJQ)0-NCq VjKj7ZF(=Zp$Vn+nmOV2G{$HQgiEID> diff --git a/VideoTrial.py b/VideoTrial.py deleted file mode 100644 index 5d0ac42..0000000 --- a/VideoTrial.py +++ /dev/null @@ -1,277 +0,0 @@ -import pygame -import sys - - -def player_animation(): - new_player = player_frames[player_index] - new_player_rect = new_player.get_rect(center=(250, player_rect.centery)) - return new_player, new_player_rect - - -# Bullet class -class bullets(object): - def __init__(self, x, y, length, breadth, color): - self.x = x - self.y = y - self.length = length - self.breadth = breadth - self.color = color - self.velocity = 10 - - def drawbullet(self, screen): - pygame.draw.rect(screen, self.color, pygame.Rect( - self.x, self.y, self.length, self.breadth)) - - -def create_pipe(): - new_pipe = pipe_suface.get_rect(midtop=(1020, 452)) - return new_pipe - - -def move_pipes(pipes): - for pipe in pipes: - pipe.centerx -= 15 - return pipes - - -def draw_pipes(pipes): - for pipe in pipes: - screen.blit(pipe_suface, pipe) - - -def check_collision(pipes): - for pipe in pipes: - if player_rect.colliderect(pipe): - hit_sound.play() - return False - return True - - -def drawfloor(): - - screen.blit(landimg, (floor_x_pos, 550)) - screen.blit(landimg, (floor_x_pos+500, 550)) - screen.blit(landimg, (floor_x_pos+1000, 550)) - screen.blit(landimg, (floor_x_pos+1500, 550)) - screen.blit(landimg, (floor_x_pos+2000, 550)) - screen.blit(landimg, (floor_x_pos+2500, 550)) - - -def updateFile(): - f = open('scores.txt', 'r') - file = f.readlines() - last = int(file[0]) - - if last < int(score): - f.close() - file = open('scores.txt', 'w') - file.write(str(score)) - file.close() - - return score - - return last - - -def score_display(game_state): - if game_state == 'main_game': - score_surface = game_font.render( - str(int(score)), True, (255, 255, 255)) - score_rect = score_surface.get_rect(center=(512, 100)) - screen.blit(score_surface, score_rect) - if game_state == 'game_over': - score_surface = game_font.render(str(score), True, (255, 255, 255)) - score_rect = score_surface.get_rect(center=(512, 100)) - screen.blit(score_surface, score_rect) - - high_score_surface = game_font.render( - str(bestscore), True, (255, 255, 255)) - high_score_rect = high_score_surface.get_rect(center=(512, 500)) - screen.blit(high_score_surface, high_score_rect) - - -def update_score(score, high_score): - if score > high_score: - high_score = score - return high_score - - -pygame.mixer.pre_init(frequency=44100, size=16, channels=1, buffer=512) -pygame.init() -screen = pygame.display.set_mode((1024, 768)) -clock = pygame.time.Clock() - - -player_movement = 0 -gravity = 0.25 -hertz = 100 -game_active = True -score = 0 - - -BLACK = (0, 0, 0) - -# bkgimg = pygame.image.load('Assets/bkimg23.jpg').convert() # Alternate Background -bkgimg = pygame.image.load('Assets/sky.png').convert() -bkgimg = pygame.transform.scale(bkgimg, (1024, 600)) -# landimg = pygame.image.load('Assets/moon.jpeg').convert() #Alternate Surface -landimg = pygame.image.load('Assets/landing5.png').convert() -# landimg = pygame.image.load('Assets/landing2.png').convert() -landimg = pygame.transform.scale(landimg, (1024, 768)) -player1 = pygame.image.load('Assets/Player/player1.png').convert() -player1.set_colorkey(BLACK) -player2 = pygame.image.load('Assets/Player/player2.png').convert() -player2.set_colorkey(BLACK) -player3 = pygame.image.load('Assets/Player/player3.png').convert() -player3.set_colorkey(BLACK) -player4 = pygame.image.load('Assets/Player/player4.png').convert() -player4.set_colorkey(BLACK) -player5 = pygame.image.load('Assets/Player/player5.png').convert() -player5.set_colorkey(BLACK) -player6 = pygame.image.load('Assets/Player/player6.png').convert() -player6.set_colorkey(BLACK) -player7 = pygame.image.load('Assets/Player/player7.png').convert() -player7.set_colorkey(BLACK) -player8 = pygame.image.load('Assets/Player/player8.png').convert() -player8.set_colorkey(BLACK) -player9 = pygame.image.load('Assets/Player/player9.png').convert() -player9.set_colorkey(BLACK) -player10 = pygame.image.load('Assets/Player/player10.png').convert() -player10.set_colorkey(BLACK) -deathstar = pygame.image.load('Assets/deathstar1.jpg').convert() - - -game_begin_surface = pygame.image.load('Retro.png') -game_begin_surface = pygame.transform.scale(game_begin_surface, (1024, 768)) -game_begin_surface_rect = game_begin_surface.get_rect(center=(512, 384)) - -game_over_surface = pygame.image.load('Assets/gameover.jpg') -game_over_surface = pygame.transform.scale(game_over_surface, (1024, 768)) -game_over_surface_rect = game_over_surface.get_rect(center=(512, 384)) -game_font = pygame.font.Font( - 'assets/fonts/BigShouldersStencilText-Medium.ttf', 40) - -# Pipes image. -pipe_surface = pygame.image.load('assets/Obstacles/pipe-green.png').convert() -pipe_suface = pygame.transform.scale2x(pipe_surface) -pipe_list = [] -SPAWNPIPE = pygame.USEREVENT -pygame.time.set_timer(SPAWNPIPE, 2000) - - -player_frames = [player1, player2, player3, player4, - player5, player6, player7, player8, player9, player10] -player_index = 0 -player_surface = player_frames[player_index] -player_rect = player_surface.get_rect(center=(250, 492)) - -PLAYERRUN = pygame.USEREVENT + 1 -pygame.time.set_timer(PLAYERRUN, 100) - -floor_x_pos = 0 -pno = 1 - -# sound effects -hit_sound = pygame.mixer.Sound('assets/sounds/sound_effects/Hit.ogg') -point_sound = pygame.mixer.Sound('assets/sounds/sound_effects/Point.ogg') -point_sound_count = 100 - -bullet_list = [] -obstacle_list = [] -MainGame = False -BeginGame = True - - -while BeginGame: - for event in pygame.event.get(): - if event.type == pygame.QUIT: - pygame.quit() - sys.exit() - if event.type == pygame.KEYDOWN: - if event.key == pygame.K_SPACE: - point_sound.play() - BeginGame = False - MainGame = True - - screen.blit(game_begin_surface, game_begin_surface_rect) - - pygame.display.update() - clock.tick(hertz) - hertz += 0.02 - - -while MainGame: - for event in pygame.event.get(): - if event.type == pygame.QUIT: - pygame.quit() - sys.exit() - if event.type == pygame.KEYDOWN: - if event.key == pygame.K_SPACE and game_active: - point_sound.play() - if player_rect.centery == 492: - player_movement = 0 - gravity = 0.25 - while player_movement != -12: - player_movement -= gravity - - if event.type == PLAYERRUN: - if player_index < 9: - player_index += 1 - else: - player_index = 0 - player_surface, player_rect = player_animation() - - if event.type == SPAWNPIPE: - pipe_list.append(create_pipe()) - - for bullet in bullet_list: - if bullet.x < 1024 and bullet.x > 0: - bullet.x += bullet.velocity - else: - bullet_list.pop(bullet_list.index(bullet)) - - screen.blit(bkgimg, (0, 0)) - - if game_active == True: - if player_rect.centery == 492: - gravity = 0 - elif player_rect.centery < 492: - gravity = 0.25 - - else: - gravity = 0 - player_rect.centery = 492 - player_movement = 0 - keys = pygame.key.get_pressed() - if keys[pygame.K_END]: - if(len(bullet_list) < 1): - bullet_list.append( - bullets(250, player_rect.centery, 15, 3, (255, 255, 153))) - for bullet in bullet_list: - bullet.drawbullet(screen) - - player_movement += gravity - player_rect.centery += player_movement - screen.blit(player_surface, player_rect) - game_active = check_collision(pipe_list) - score_display('main_game') - floor_x_pos -= 5 - - pipe_list = move_pipes(pipe_list) - draw_pipes(pipe_list) - drawfloor() - if floor_x_pos <= -2000: - floor_x_pos = 0 - score = int(hertz//0.1-999) - largeFont = pygame.font.SysFont('comicsans', 30) - text = largeFont.render('Score: ' + str(score), 1, (255, 255, 255)) - largeFont = pygame.font.SysFont('comicsans', 80) - bestscore = updateFile() - else: - pipe_list.clear() - screen.blit(game_over_surface, game_over_surface_rect) - score_display('game_over') - - pygame.display.update() - clock.tick(hertz) - hertz += 0.02 diff --git a/mygame.py b/mygame.py deleted file mode 100644 index 9c18d12..0000000 --- a/mygame.py +++ /dev/null @@ -1,120 +0,0 @@ -import sys -import pygame - - -def player_animation(): - new_player = player_frames[player_index] - new_player_rect = new_player.get_rect(center=(375, player_rect.centery)) - return new_player, new_player_rect - - -def drawfloor(): - - screen.blit(landimg, (floor_x_pos, 475)) - screen.blit(landimg, (floor_x_pos + 500, 475)) - screen.blit(landimg, (floor_x_pos + 1000, 475)) - screen.blit(landimg, (floor_x_pos + 1500, 475)) - screen.blit(landimg, (floor_x_pos + 2000, 475)) - screen.blit(landimg, (floor_x_pos + 2500, 475)) - - # if pno==1: - # screen.blit(player1,(200,237)) - # elif pno==2: - # screen.blit(player2,(200,237)) - # elif pno==3: - # screen.blit(player3,(200,237)) - # elif pno==4: - # screen.blit(player4,(200,237)) - # elif pno==5: - # screen.blit(player5,(200,237)) - # elif pno==6: - # screen.blit(player6,(200,237)) - # elif pno==7: - # screen.blit(player7,(200,237)) - # elif pno==8: - # screen.blit(player8,(200,237)) - # elif pno==9: - # screen.blit(player9,(200,237)) - # elif pno==10: - # screen.blit(player10,(200,237)) - - -pygame.init() -screen = pygame.display.set_mode((1366, 768)) -clock = pygame.time.Clock() - -player_movement = 0 -gravity = 0.25 -game_active = True - -bkgimg = pygame.image.load('Assets/Hyades.jpg').convert() -bkgimg = pygame.transform.scale2x(bkgimg) -landimg = pygame.image.load('Assets/moon.jpeg').convert() -player1 = pygame.image.load('Assets/Player/player1.png').convert() -player2 = pygame.image.load('Assets/Player/player2.png').convert() -player3 = pygame.image.load('Assets/Player/player3.png').convert() -player4 = pygame.image.load('Assets/Player/player4.png').convert() -player5 = pygame.image.load('Assets/Player/player5.png').convert() -player6 = pygame.image.load('Assets/Player/player6.png').convert() -player7 = pygame.image.load('Assets/Player/player7.png').convert() -player8 = pygame.image.load('Assets/Player/player8.png').convert() -player9 = pygame.image.load('Assets/Player/player9.png').convert() -player10 = pygame.image.load('Assets/Player/player10.png').convert() -deathstar = pygame.image.load('Assets/deathstar1.jpg').convert() - -player_frames = [player1, player2, player3, player4, - player5, player6, player7, player8, player9, player10] -player_index = 0 -player_surface = player_frames[player_index] -player_rect = player_surface.get_rect(center=(375, 417)) - -PLAYERRUN = pygame.USEREVENT + 1 -pygame.time.set_timer(PLAYERRUN, 100) - -floor_x_pos = 0 -pno = 1 - -while True: - for event in pygame.event.get(): - if event.type == pygame.QUIT: - pygame.quit() - sys.exit() - if event.type == pygame.KEYDOWN: - if event.key == pygame.K_SPACE and game_active: - if player_rect.centery == 417: - player_movement = 0 - gravity = 0.25 - while player_movement != -10: - player_movement -= gravity - - if event.type == PLAYERRUN: - if player_index < 9: - player_index += 1 - else: - player_index = 0 - player_surface, player_rect = player_animation() - - screen.blit(bkgimg, (0, 0)) - - screen.blit(bkgimg, (0, 0)) - - if game_active == True: - if player_rect.centery == 417: - gravity = 0 - elif player_rect.centery < 417: - gravity = 0.25 - else: - gravity = 0 - player_rect.centery = 417 - player_movement = 0 - player_movement += gravity - player_rect.centery += player_movement - screen.blit(player_surface, player_rect) - - floor_x_pos -= 1 - - drawfloor() - if floor_x_pos <= -2000: - floor_x_pos = 0 - pygame.display.update() - clock.tick(500) diff --git a/mygame1.py b/mygame1.py deleted file mode 100644 index 75eaa51..0000000 --- a/mygame1.py +++ /dev/null @@ -1,215 +0,0 @@ -import sys -import pygame -import random - - -def player_animation(): - new_player = player_frames[player_index] - new_player_rect = new_player.get_rect(center=(375, player_rect.centery)) - return new_player, new_player_rect - - -def drawfloor(): - - screen.blit(landimg, (floor_x_pos, 475)) - screen.blit(landimg, (floor_x_pos + 500, 475)) - screen.blit(landimg, (floor_x_pos + 1000, 475)) - screen.blit(landimg, (floor_x_pos + 1500, 475)) - screen.blit(landimg, (floor_x_pos + 2000, 475)) - screen.blit(landimg, (floor_x_pos + 2500, 475)) - - # if pno==1: - # screen.blit(player1,(200,237)) - # elif pno==2: - # screen.blit(player2,(200,237)) - # elif pno==3: - # screen.blit(player3,(200,237)) - # elif pno==4: - # screen.blit(player4,(200,237)) - # elif pno==5: - # screen.blit(player5,(200,237)) - # elif pno==6: - # screen.blit(player6,(200,237)) - # elif pno==7: - # screen.blit(player7,(200,237)) - # elif pno==8: - # screen.blit(player8,(200,237)) - # elif pno==9: - # screen.blit(player9,(200,237)) - # elif pno==10: - # screen.blit(player10,(200,237)) - - -class bullets(object): - # Bullet class - def __init__(self, x, y, length, breadth, color): - self.x = x - self.y = y - self.length = length - self.breadth = breadth - self.color = color - self.velocity = 7 - - def drawbullet(self, screen): - pygame.draw.rect(screen, self.color, pygame.Rect( - self.x, self.y, self.length, self.breadth)) - - -# class obstacles(object): -# # Obstacle class -# def __init__(self, obstacle, x, y, height, width): -# self.image = obstacle -# self.x = x -# self.y = y -# self.height = height -# self.width = width -# self.box = (x, y, width, height) -# self.velocity = 1 - -# def drawobstacle(self, screen): -# self.box = (self.x, self.y, self.width-10, self.height) -# screen.blit(pygame.transform.scale( -# self.image, (64, 64)), (self.x, self.y)) -# pygame.draw.rect(screen, (255, 0, 0), self.box, 2) - - -def create_pipe(): - random_pipe_pos = random.choice(pipe_height) - new_pipe = pipe_suface.get_rect(midtop=(1500, random_pipe_pos)) - return new_pipe - - -def move_pipes(pipes): - for pipe in pipes: - pipe.centerx -= 5 - return pipes - - -def draw_pipes(pipes): - for pipe in pipes: - screen.blit(pipe_suface, pipe) - -# def check_collision(pipes): - # for pipe in pipes: - # for bullet in bullet_list: - # if bullet.colliderect(pipe): - # point_sound.play() - - -pygame.init() -screen = pygame.display.set_mode((1366, 768)) -clock = pygame.time.Clock() - -player_movement = 0 -gravity = 0.25 -game_active = True - -bkgimg = pygame.image.load('Assets/Hyades.jpg').convert() -bkgimg = pygame.transform.scale2x(bkgimg) -landimg = pygame.image.load('Assets/moon.jpeg').convert() -player1 = pygame.image.load('Assets/Player/player1.png').convert() -player2 = pygame.image.load('Assets/Player/player2.png').convert() -player3 = pygame.image.load('Assets/Player/player3.png').convert() -player4 = pygame.image.load('Assets/Player/player4.png').convert() -player5 = pygame.image.load('Assets/Player/player5.png').convert() -player6 = pygame.image.load('Assets/Player/player6.png').convert() -player7 = pygame.image.load('Assets/Player/player7.png').convert() -player8 = pygame.image.load('Assets/Player/player8.png').convert() -player9 = pygame.image.load('Assets/Player/player9.png').convert() -player10 = pygame.image.load('Assets/Player/player10.png').convert() -deathstar = pygame.image.load('Assets/deathstar1.jpg').convert() -# obstacle = pygame.image.load('Assets/Obstacles/1.jpg').convert() - -# Pipes image. -pipe_surface = pygame.image.load('assets/Obstacles/1.jpg').convert() -pipe_suface = pygame.transform.scale2x(pipe_surface) -pipe_list = [] -SPAWNPIPE = pygame.USEREVENT -pygame.time.set_timer(SPAWNPIPE, 1200) - -bullet_list = [] -obstacle_list = [] -# obstacle_list.append(obstacles(obstacle, 1000, 200, 64, 64)) - -player_frames = [player1, player2, player3, player4, - player5, player6, player7, player8, player9, player10] -for i in range(len(player_frames)): - player_frames[i] = pygame.transform.scale(player_frames[i], (100, 113)) - -player_index = 0 -player_surface = player_frames[player_index] -player_rect = player_surface.get_rect(center=(375, 417)) - -PLAYERRUN = pygame.USEREVENT + 1 -pygame.time.set_timer(PLAYERRUN, 100) - -floor_x_pos = 0 -pno = 1 - -# point_sound = pygame.mixer.Sound('assets/sounds/sound_effects/Point.ogg') -# point_sound_count = 100 - -while True: - for event in pygame.event.get(): - if event.type == pygame.QUIT: - pygame.quit() - sys.exit() - if event.type == pygame.KEYDOWN: - if event.key == pygame.K_SPACE and game_active: - if player_rect.centery == 417: - player_movement = 0 - gravity = 0.25 - while player_movement != -12: - player_movement -= gravity - - if event.type == PLAYERRUN: - if player_index < 9: - player_index += 1 - else: - player_index = 0 - player_surface, player_rect = player_animation() - if event.type == SPAWNPIPE: - pipe_list.append(create_pipe()) - - for bullet in bullet_list: - if bullet.x < 1366 and bullet.x > 0: - bullet.x += bullet.velocity - else: - bullet_list.pop(bullet_list.index(bullet)) - - screen.blit(bkgimg, (0, 0)) - - if game_active == True: - if player_rect.centery == 417: - gravity = 0 - elif player_rect.centery < 417: - gravity = 0.25 - else: - gravity = 0 - player_rect.centery = 417 - player_movement = 0 - pipe_list = move_pipes(pipe_list) - pipe_height = [300, 350, 400, 450, 500, 550] - draw_pipes(pipe_list) - - keys = pygame.key.get_pressed() - if keys[pygame.K_END]: - if(len(bullet_list) < 1): - bullet_list.append( - bullets(375, player_rect.centery, 15, 3, (255, 255, 153))) - for bullet in bullet_list: - bullet.drawbullet(screen) - player_movement += gravity - player_rect.centery += player_movement - screen.blit(player_surface, player_rect) - - floor_x_pos -= 1 - - drawfloor() - if floor_x_pos <= -2000: - floor_x_pos = 0 - - pipe_list = move_pipes(pipe_list) - draw_pipes(pipe_list) - pygame.display.update() - clock.tick(500)