From 0a3fd5b62065333669c7b391c626cb2505217617 Mon Sep 17 00:00:00 2001 From: Matt Cooper Date: Fri, 12 Aug 2016 16:48:46 -0400 Subject: First commit --- .gitignore | 102 + Code/avg_runner.py | 173 ++ Code/constants.py | 198 ++ Code/d_model.py | 187 ++ Code/d_scale_model.py | 153 ++ Code/g_model.py | 428 ++++ Code/loss_functions.py | 118 ++ Code/loss_functions_test.py | 304 +++ Code/process_data.py | 71 + Code/tfutils.py | 133 ++ Code/tfutils_test.py | 102 + Code/utils.py | 212 ++ ...deo Prediction Beyond Mean Square Error-01.png" | Bin 0 -> 58383 bytes ...e Video Prediction Beyond Mean Square Error.ai" | 2134 ++++++++++++++++++++ ... Video Prediction Beyond Mean Square Error.pdf" | 867 ++++++++ ...e_video_prediction_beyond_mean_square_error.pdf | Bin 0 -> 6462543 bytes 16 files changed, 5182 insertions(+) create mode 100644 .gitignore create mode 100644 Code/avg_runner.py create mode 100644 Code/constants.py create mode 100644 Code/d_model.py create mode 100644 Code/d_scale_model.py create mode 100644 Code/g_model.py create mode 100644 Code/loss_functions.py create mode 100644 Code/loss_functions_test.py create mode 100644 Code/process_data.py create mode 100644 Code/tfutils.py create mode 100644 Code/tfutils_test.py create mode 100644 Code/utils.py create mode 100644 "New Figure 1/New Figure 1 \342\200\223\302\240Deep Multiscale Video Prediction Beyond Mean Square Error-01.png" create mode 100644 "New Figure 1/New Figure 1 \342\200\223\302\240Deep Multiscale Video Prediction Beyond Mean Square Error.ai" create mode 100644 "New Figure 1/New Figure 1 \342\200\223\302\240Deep Multiscale Video Prediction Beyond Mean Square Error.pdf" create mode 100644 deep_multi-scale_video_prediction_beyond_mean_square_error.pdf diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..377a3e3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,102 @@ +*.idea +*.iml +*.pyc + +Data/ +Comparison/ +Save/ + +## +# GitHub Python gitignore +## + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +env/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +*.egg-info/ +.installed.cfg +*.egg + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos +into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*,cover +.hypothesis/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# IPython Notebook +.ipynb_checkpoints + +# pyenv +.python-version + +# celery beat schedule file +celerybeat-schedule + +# dotenv +.env + +# virtualenv +venv/ +ENV/ + +# Spyder project settings +.spyderproject + +# Rope project settings +.ropeproject diff --git a/Code/avg_runner.py b/Code/avg_runner.py new file mode 100644 index 0000000..5de994b --- /dev/null +++ b/Code/avg_runner.py @@ -0,0 +1,173 @@ +import tensorflow as tf +import getopt +import sys + +from utils import get_train_batch, get_test_batch +import constants as c +from g_model import GeneratorModel +from d_model import DiscriminatorModel + + +class AVGRunner: + def __init__(self, model_load_path, num_test_rec): + """ + Initializes the Adversarial Video Generation Runner. + + @param model_load_path: The path from which to load a previously-saved model. + Default = None. + @param num_test_rec: The number of recursive generations to produce when testing. Recursive + generations use previous generations as input to predict further into + the future. + """ + + self.global_step = 0 + self.num_test_rec = num_test_rec + + self.sess = tf.Session() + self.summary_writer = tf.train.SummaryWriter(c.SUMMARY_SAVE_DIR, graph=self.sess.graph) + + if c.ADVERSARIAL: + print 'Init discriminator...' + self.d_model = DiscriminatorModel(self.sess, + self.summary_writer, + c.TRAIN_HEIGHT, + c.TRAIN_WIDTH, + c.SCALE_CONV_FMS_D, + c.SCALE_KERNEL_SIZES_D, + c.SCALE_FC_LAYER_SIZES_D) + + print 'Init generator...' + self.g_model = GeneratorModel(self.sess, + self.summary_writer, + c.TRAIN_HEIGHT, + c.TRAIN_WIDTH, + c.TEST_HEIGHT, + c.TEST_WIDTH, + c.SCALE_FMS_G, + c.SCALE_KERNEL_SIZES_G) + + print 'Init variables...' + self.saver = tf.train.Saver(keep_checkpoint_every_n_hours=2) + self.sess.run(tf.initialize_all_variables()) + + # if load path specified, load a saved model + if model_load_path is not None: + self.saver.restore(self.sess, model_load_path) + print 'Model restored from ' + model_load_path + + def train(self): + """ + Runs a training loop on the model networks. + """ + while True: + if c.ADVERSARIAL: + # update discriminator + batch = get_train_batch() + print 'Training discriminator...' + self.d_model.train_step(batch, self.g_model) + + # update generator + batch = get_train_batch() + print 'Training generator...' + self.global_step = self.g_model.train_step( + batch, discriminator=(self.d_model if c.ADVERSARIAL else None)) + + # save the models + if self.global_step % c.MODEL_SAVE_FREQ == 0: + print '-' * 30 + print 'Saving models...' + self.saver.save(self.sess, + c.MODEL_SAVE_DIR + 'model.ckpt', + global_step=self.global_step) + print 'Saved models!' + print '-' * 30 + + # test generator model + if self.global_step % c.TEST_FREQ == 0: + self.test() + + def test(self): + """ + Runs one test step on the generator network. + """ + batch = get_test_batch(c.BATCH_SIZE, num_rec_out=self.num_test_rec) + self.g_model.test_batch( + batch, self.global_step, num_rec_out=self.num_test_rec) + + +def usage(): + print 'Options:' + print '-l/--load_path= ' + print '-t/--test_dir= ' + print '-r/--recursions= <# recursive predictions to make on test>' + print '-a/--adversarial= <{t/f}> (Whether to use adversarial training. Default=True)' + print '-n/--name= ' + print '-O/--overwrite (Overwrites all previous data for the model with this save name)' + print '-T/--test_only (Only runs a test step -- no training)' + print '-H/--help (prints usage)' + print '--stats_freq= ' + print '--summary_freq= ' + print '--img_save_freq= ' + print '--test_freq= ' + print '--model_save_freq= ' + + +def main(): + ## + # Handle command line input. + ## + + load_path = None + test_only = False + num_test_rec = 1 # number of recursive predictions to make on test + try: + opts, _ = getopt.getopt(sys.argv[1:], 'l:t:r:a:n:OTH', + ['load_path=', 'test_dir=', 'recursions=', 'adversarial=', 'name=', + 'overwrite', 'test_only', 'help', 'stats_freq=', 'summary_freq=', + 'img_save_freq=', 'test_freq=', 'model_save_freq=']) + except getopt.GetoptError: + usage() + sys.exit(2) + + for opt, arg in opts: + if opt in ('-l', '--load_path'): + load_path = arg + if opt in ('-t', '--test_dir'): + c.set_test_dir(arg) + if opt in ('-r', '--recursions'): + num_test_rec = int(arg) + if opt in ('-a', '--adversarial'): + c.ADVERSARIAL = (arg.lower() == 'true' or arg.lower() == 't') + if opt in ('-n', '--name'): + c.set_save_name(arg) + if opt in ('-O', '--overwrite'): + c.clear_save_name() + if opt in ('-H', '--help'): + usage() + sys.exit(2) + if opt in ('-T', '--test_only'): + test_only = True + if opt == '--stats_freq': + c.STATS_FREQ = int(arg) + if opt == '--summary_freq': + c.SUMMARY_FREQ = int(arg) + if opt == '--img_save_freq': + c.IMG_SAVE_FREQ = int(arg) + if opt == '--test_freq': + c.TEST_FREQ = int(arg) + if opt == '--model_save_freq': + c.MODEL_SAVE_FREQ = int(arg) + + ## + # Init and run the predictor + ## + + runner = AVGRunner(load_path, num_test_rec) + if test_only: + runner.test() + else: + runner.train() + + +if __name__ == '__main__': + main() diff --git a/Code/constants.py b/Code/constants.py new file mode 100644 index 0000000..afe8f9d --- /dev/null +++ b/Code/constants.py @@ -0,0 +1,198 @@ +import numpy as np +import os +from glob import glob +import shutil +from datetime import datetime +from scipy.ndimage import imread + +## +# Data +## + +def get_date_str(): + """ + @return: A string representing the current date/time that can be used as a directory name. + """ + return str(datetime.now()).replace(' ', '_').replace(':', '.')[:-10] + +def get_dir(directory): + """ + Creates the given directory if it does not exist. + + @param directory: The path to the directory. + @return: The path to the directory. + """ + if not os.path.exists(directory): + os.makedirs(directory) + return directory + +def clear_dir(directory): + """ + Removes all files in the given directory. + + @param directory: The path to the directory. + """ + for f in os.listdir(directory): + path = os.path.join(directory, f) + try: + if os.path.isfile(path): + os.unlink(path) + elif os.path.isdir(path): + shutil.rmtree(path) + except Exception as e: + print(e) + +def get_test_frame_dims(): + img_path = glob(TEST_DIR + '*/*')[0] + img = imread(img_path, mode='RGB') + shape = np.shape(img) + + return shape[0], shape[1] + +def set_test_dir(directory): + """ + Edits all constants dependent on TEST_DIR. + + @param directory: The new test directory. + """ + global TEST_DIR, TEST_HEIGHT, TEST_WIDTH + + TEST_DIR = directory + TEST_HEIGHT, TEST_WIDTH = get_test_frame_dims() + +# root directory for all data +DATA_DIR = get_dir('../Data/') +# directory of unprocessed training frames +TRAIN_DIR = DATA_DIR + 'Ms_Pacman/Train/' +# directory of unprocessed test frames +TEST_DIR = DATA_DIR + 'Ms_Pacman/Test/' +# Directory of processed training clips. +# hidden so finder doesn't freeze w/ so many files. DON'T USE `ls` COMMAND ON THIS DIR! +TRAIN_DIR_CLIPS = get_dir(DATA_DIR + '.Clips/') + +# For processing clips. l2 diff between frames must be greater than this +MOVEMENT_THRESHOLD = 100 +# total number of processed clips in TRAIN_DIR_CLIPS +NUM_CLIPS = len(glob(TRAIN_DIR_CLIPS + '*')) + +# the height and width of the full frames to test on +TEST_HEIGHT, TEST_WIDTH = get_test_frame_dims() +# the height and width of the patches to train on +TRAIN_HEIGHT = TRAIN_WIDTH = 32 + +## +# Output +## + +def set_save_name(name): + """ + Edits all constants dependent on SAVE_NAME. + + @param name: The new save name. + """ + global SAVE_NAME, MODEL_SAVE_DIR, SUMMARY_SAVE_DIR, IMG_SAVE_DIR + + SAVE_NAME = name + MODEL_SAVE_DIR = get_dir(SAVE_DIR + 'Models/' + SAVE_NAME) + SUMMARY_SAVE_DIR = get_dir(SAVE_DIR + 'Summaries/' + SAVE_NAME) + IMG_SAVE_DIR = get_dir(SAVE_DIR + 'Images/' + SAVE_NAME) + +def clear_save_name(): + """ + Clears all saved content for SAVE_NAME. + """ + clear_dir(MODEL_SAVE_DIR) + clear_dir(SUMMARY_SAVE_DIR) + clear_dir(IMG_SAVE_DIR) + + +# root directory for all saved content +SAVE_DIR = get_dir('../Save/') + +# inner directory to differentiate between runs +SAVE_NAME = 'Default/' +# directory for saved models +MODEL_SAVE_DIR = get_dir(SAVE_DIR + 'Models/' + SAVE_NAME) +# directory for saved TensorBoard summaries +SUMMARY_SAVE_DIR = get_dir(SAVE_DIR + 'Summaries/' + SAVE_NAME) +# directory for saved images +IMG_SAVE_DIR = get_dir(SAVE_DIR + 'Images/' + SAVE_NAME) + + +STATS_FREQ = 10 # how often to print loss/train error stats, in # steps +SUMMARY_FREQ = 100 # how often to save the summaries, in # steps +IMG_SAVE_FREQ = 1000 # how often to save generated images, in # steps +TEST_FREQ = 5000 # how often to test the model on test data, in # steps +MODEL_SAVE_FREQ = 10000 # how often to save the model, in # steps + +## +# General training +## + +# whether to use adversarial training vs. basic training of the generator +ADVERSARIAL = True +# the training minibatch size +BATCH_SIZE = 8 +# the number of history frames to give as input to the network +HIST_LEN = 4 + +## +# Loss parameters +## + +# for lp loss. e.g, 1 or 2 for l1 and l2 loss, respectively) +L_NUM = 2 +# the power to which each gradient term is raised in GDL loss +ALPHA_NUM = 1 +# the percentage of the adversarial loss to use in the combined loss +LAM_ADV = 0.05 +# the percentage of the lp loss to use in the combined loss +LAM_LP = 1 +# the percentage of the GDL loss to use in the combined loss +LAM_GDL = 1 + +## +# Generator model +## + +# learning rate for the generator model +LRATE_G = 0.00004 # Value in paper is 0.04 +# padding for convolutions in the generator model +PADDING_G = 'SAME' +# feature maps for each convolution of each scale network in the generator model +# e.g SCALE_FMS_G[1][2] is the input of the 3rd convolution in the 2nd scale network. +SCALE_FMS_G = [[3 * HIST_LEN, 128, 256, 128, 3], + [3 * (HIST_LEN + 1), 128, 256, 128, 3], + [3 * (HIST_LEN + 1), 128, 256, 512, 256, 128, 3], + [3 * (HIST_LEN + 1), 128, 256, 512, 256, 128, 3]] +# kernel sizes for each convolution of each scale network in the generator model +SCALE_KERNEL_SIZES_G = [[3, 3, 3, 3], + [5, 3, 3, 5], + [5, 3, 3, 3, 3, 5], + [7, 5, 5, 5, 5, 7]] + + +## +# Discriminator model +## + +# learning rate for the discriminator model +LRATE_D = 0.02 +# padding for convolutions in the discriminator model +PADDING_D = 'VALID' +# feature maps for each convolution of each scale network in the discriminator model +SCALE_CONV_FMS_D = [[3, 64], + [3, 64, 128, 128], + [3, 128, 256, 256], + [3, 128, 256, 512, 128]] +# kernel sizes for each convolution of each scale network in the discriminator model +SCALE_KERNEL_SIZES_D = [[3], + [3, 3, 3], + [5, 5, 5], + [7, 7, 5, 5]] +# layer sizes for each fully-connected layer of each scale network in the discriminator model +# layer connecting conv to fully-connected is dynamically generated when creating the model +SCALE_FC_LAYER_SIZES_D = [[512, 256, 1], + [1024, 512, 1], + [1024, 512, 1], + [1024, 512, 1]] diff --git a/Code/d_model.py b/Code/d_model.py new file mode 100644 index 0000000..7b1cb12 --- /dev/null +++ b/Code/d_model.py @@ -0,0 +1,187 @@ +import tensorflow as tf +import numpy as np +from skimage.transform import resize + +from d_scale_model import DScaleModel +from loss_functions import adv_loss +import constants as c + + +# noinspection PyShadowingNames +class DiscriminatorModel: + def __init__(self, session, summary_writer, height, width, scale_conv_layer_fms, + scale_kernel_sizes, scale_fc_layer_sizes): + """ + Initializes a GeneratorModel. + + @param session: The TensorFlow session. + @param summary_writer: The writer object to record TensorBoard summaries + @param height: The height of the input images. + @param width: The width of the input images. + @param scale_conv_layer_fms: The number of feature maps in each convolutional layer of each + scale network. + @param scale_kernel_sizes: The size of the kernel for each layer of each scale network. + @param scale_fc_layer_sizes: The number of nodes in each fully-connected layer of each scale + network. + + @type session: tf.Session + @type summary_writer: tf.train.SummaryWriter + @type height: int + @type width: int + @type scale_conv_layer_fms: list> + @type scale_kernel_sizes: list> + @type scale_fc_layer_sizes: list> + """ + self.sess = session + self.summary_writer = summary_writer + self.height = height + self.width = width + self.scale_conv_layer_fms = scale_conv_layer_fms + self.scale_kernel_sizes = scale_kernel_sizes + self.scale_fc_layer_sizes = scale_fc_layer_sizes + self.num_scale_nets = len(scale_conv_layer_fms) + + self.define_graph() + + # noinspection PyAttributeOutsideInit + def define_graph(self): + """ + Sets up the model graph in TensorFlow. + """ + with tf.name_scope('discriminator'): + ## + # Setup scale networks. Each will make the predictions for images at a given scale. + ## + + self.scale_nets = [] + for scale_num in xrange(self.num_scale_nets): + with tf.name_scope('scale_net_' + str(scale_num)): + scale_factor = 1. / 2 ** ((self.num_scale_nets - 1) - scale_num) + self.scale_nets.append(DScaleModel(scale_num, + int(self.height * scale_factor), + int(self.width * scale_factor), + self.scale_conv_layer_fms[scale_num], + self.scale_kernel_sizes[scale_num], + self.scale_fc_layer_sizes[scale_num])) + + # A list of the prediction tensors for each scale network + self.scale_preds = [] + for scale_num in xrange(self.num_scale_nets): + self.scale_preds.append(self.scale_nets[scale_num].preds) + + ## + # Data + ## + + self.labels = tf.placeholder(tf.float32, shape=[None, 1], name='labels') + + ## + # Training + ## + + with tf.name_scope('training'): + # global loss is the combined loss from every scale network + self.global_loss = adv_loss(self.scale_preds, self.labels) + self.global_step = tf.Variable(0, trainable=False, name='global_step') + self.optimizer = tf.train.GradientDescentOptimizer(c.LRATE_D, name='optimizer') + self.train_op = self.optimizer.minimize(self.global_loss, + global_step=self.global_step, + name='train_op') + + # add summaries to visualize in TensorBoard + loss_summary = tf.scalar_summary('loss_D', self.global_loss) + self.summaries = tf.merge_summary([loss_summary]) + + def build_feed_dict(self, input_frames, gt_output_frames, generator): + """ + Builds a feed_dict with resized inputs and outputs for each scale network. + + @param input_frames: An array of shape + [batch_size x self.height x self.width x (3 * HIST_LEN)], The frames to + use for generation. + @param gt_output_frames: An array of shape [batch_size x self.height x self.width x 3], The + ground truth outputs for each sequence in input_frames. + @param generator: The generator model. + + @return: The feed_dict needed to run this network, all scale_nets, and the generator + predictions. + """ + feed_dict = {} + batch_size = np.shape(gt_output_frames)[0] + + ## + # Get generated frames from GeneratorModel + ## + + g_feed_dict = {generator.input_frames_train: input_frames, + generator.gt_frames_train: gt_output_frames} + g_scale_preds = self.sess.run(generator.scale_preds_train, feed_dict=g_feed_dict) + + ## + # Create discriminator feed dict + ## + for scale_num in xrange(self.num_scale_nets): + scale_net = self.scale_nets[scale_num] + + # resize gt_output_frames + scaled_gt_output_frames = np.empty([batch_size, scale_net.height, scale_net.width, 3]) + for i, img in enumerate(gt_output_frames): + # for skimage.transform.resize, images need to be in range [0, 1], so normalize to + # [0, 1] before resize and back to [-1, 1] after + sknorm_img = (img / 2) + 0.5 + resized_frame = resize(sknorm_img, [scale_net.height, scale_net.width, 3]) + scaled_gt_output_frames[i] = (resized_frame - 0.5) * 2 + + # combine with resized gt_output_frames to get inputs for prediction + scaled_input_frames = np.concatenate([g_scale_preds[scale_num], + scaled_gt_output_frames]) + + # convert to np array and add to feed_dict + feed_dict[scale_net.input_frames] = scaled_input_frames + + # add labels for each image to feed_dict + batch_size = np.shape(input_frames)[0] + feed_dict[self.labels] = np.concatenate([np.zeros([batch_size, 1]), + np.ones([batch_size, 1])]) + + return feed_dict + + def train_step(self, batch, generator): + """ + Runs a training step using the global loss on each of the scale networks. + + @param batch: An array of shape + [BATCH_SIZE x self.height x self.width x (3 * (HIST_LEN + 1))]. The input + and output frames, concatenated along the channel axis (index 3). + @param generator: The generator model. + + @return: The global step. + """ + ## + # Split into inputs and outputs + ## + + input_frames = batch[:, :, :, :-3] + gt_output_frames = batch[:, :, :, -3:] + + ## + # Train + ## + + feed_dict = self.build_feed_dict(input_frames, gt_output_frames, generator) + + _, global_loss, global_step, summaries = self.sess.run( + [self.train_op, self.global_loss, self.global_step, self.summaries], + feed_dict=feed_dict) + + ## + # User output + ## + + if global_step % c.STATS_FREQ == 0: + print 'DiscriminatorModel: step %d | global loss: %f' % (global_step, global_loss) + if global_step % c.SUMMARY_FREQ == 0: + print 'DiscriminatorModel: saved summaries' + self.summary_writer.add_summary(summaries, global_step) + + return global_step diff --git a/Code/d_scale_model.py b/Code/d_scale_model.py new file mode 100644 index 0000000..766e01a --- /dev/null +++ b/Code/d_scale_model.py @@ -0,0 +1,153 @@ +import tensorflow as tf +from tfutils import w, b, conv_out_size +import constants as c + + +# noinspection PyShadowingNames +class DScaleModel: + """ + A DScaleModel is a network that takes as input one video frame and attempts to discriminate + whether or not the output frame is a real-world image or one generated by a generator network. + Multiple of these are used together in a DiscriminatorModel to make predictions on frames at + increasing scales. + """ + + def __init__(self, scale_index, height, width, conv_layer_fms, kernel_sizes, fc_layer_sizes): + """ + Initializes the DScaleModel. + + @param scale_index: The index number of this height in the GeneratorModel. + @param height: The height of the input images. + @param width: The width of the input images. + @param conv_layer_fms: The number of output feature maps for each convolution. + @param kernel_sizes: The size of the kernel for each convolutional layer. + @param fc_layer_sizes: The number of nodes in each fully-connected layer. + + @type scale_index: int + @type height: int + @type width: int + @type conv_layer_fms: list + @type kernel_sizes: list (len = len(scale_layer_fms) - 1) + @type fc_layer_sizes: list + """ + assert len(kernel_sizes) == len(conv_layer_fms) - 1, \ + 'len(kernel_sizes) must = len(conv_layer_fms) - 1' + + self.scale_index = scale_index + self.height = height + self.width = width + self.conv_layer_fms = conv_layer_fms + self.kernel_sizes = kernel_sizes + self.fc_layer_sizes = fc_layer_sizes + + self.define_graph() + + # noinspection PyAttributeOutsideInit + def define_graph(self): + """ + Sets up the model graph in TensorFlow. + """ + + ## + # Input data + ## + with tf.name_scope('input'): + self.input_frames = tf.placeholder( + tf.float32, shape=[None, self.height, self.width, self.conv_layer_fms[0]]) + + # use variable batch_size for more flexibility + self.batch_size = tf.shape(self.input_frames)[0] + + ## + # Layer setup + ## + + with tf.name_scope('setup'): + # convolution + with tf.name_scope('convolutions'): + conv_ws = [] + conv_bs = [] + last_out_height = self.height + last_out_width = self.width + for i in xrange(len(self.kernel_sizes)): + conv_ws.append(w([self.kernel_sizes[i], + self.kernel_sizes[i], + self.conv_layer_fms[i], + self.conv_layer_fms[i + 1]])) + conv_bs.append(b([self.conv_layer_fms[i + 1]])) + + last_out_height = conv_out_size( + last_out_height, c.PADDING_D, self.kernel_sizes[i], 1) + last_out_width = conv_out_size( + last_out_width, c.PADDING_D, self.kernel_sizes[i], 1) + + # fully-connected + with tf.name_scope('full-connected'): + # Add in an initial layer to go from the last conv to the first fully-connected. + # Use /2 for the height and width because there is a 2x2 pooling layer + self.fc_layer_sizes.insert( + 0, (last_out_height / 2) * (last_out_width / 2) * self.conv_layer_fms[-1]) + + fc_ws = [] + fc_bs = [] + for i in xrange(len(self.fc_layer_sizes) - 1): + fc_ws.append(w([self.fc_layer_sizes[i], + self.fc_layer_sizes[i + 1]])) + fc_bs.append(b([self.fc_layer_sizes[i + 1]])) + + ## + # Forward pass calculation + ## + + def generate_predictions(): + """ + Runs self.input_frames through the network to generate a prediction from 0 + (generated img) to 1 (real img). + + @return: A tensor of predictions of shape [self.batch_size x 1]. + """ + with tf.name_scope('calculation'): + preds = tf.zeros([self.batch_size, 1]) + last_input = self.input_frames + + # convolutions + with tf.name_scope('convolutions'): + for i in xrange(len(conv_ws)): + # Convolve layer and activate with ReLU + preds = tf.nn.conv2d( + last_input, conv_ws[i], [1, 1, 1, 1], padding=c.PADDING_D) + preds = tf.nn.relu(preds + conv_bs[i]) + + last_input = preds + + # pooling layer + with tf.name_scope('pooling'): + preds = tf.nn.max_pool(preds, [1, 2, 2, 1], [1, 2, 2, 1], padding=c.PADDING_D) + + # flatten preds for dense layers + shape = preds.get_shape().as_list() + # -1 can be used as one dimension to size dynamically + preds = tf.reshape(preds, [-1, shape[1] * shape[2] * shape[3]]) + + # fully-connected layers + with tf.name_scope('fully-connected'): + for i in xrange(len(fc_ws)): + preds = tf.matmul(preds, fc_ws[i]) + fc_bs[i] + + # Activate with ReLU (or Sigmoid for last layer) + if i == len(fc_ws) - 1: + preds = tf.sigmoid(preds) + else: + preds = tf.nn.relu(preds) + + # clip preds between [.1, 0.9] for stability + with tf.name_scope('clip'): + preds = tf.clip_by_value(preds, 0.1, 0.9) + + return preds + + self.preds = generate_predictions() + + ## + # Training handled by DiscriminatorModel + ## diff --git a/Code/g_model.py b/Code/g_model.py new file mode 100644 index 0000000..eef24ab --- /dev/null +++ b/Code/g_model.py @@ -0,0 +1,428 @@ +import tensorflow as tf +import numpy as np +from scipy.misc import imsave +from skimage.transform import resize +from copy import deepcopy + +import constants as c +from loss_functions import combined_loss +from utils import psnr_error, sharp_diff_error +from tfutils import w, b + +# noinspection PyShadowingNames +class GeneratorModel: + def __init__(self, session, summary_writer, height_train, width_train, height_test, + width_test, scale_layer_fms, scale_kernel_sizes): + """ + Initializes a GeneratorModel. + + @param session: The TensorFlow Session. + @param summary_writer: The writer object to record TensorBoard summaries + @param height_train: The height of the input images for training. + @param width_train: The width of the input images for training. + @param height_train: The height of the input images for testing. + @param width_train: The width of the input images for testing. + @param scale_layer_fms: The number of feature maps in each layer of each scale network. + @param scale_kernel_sizes: The size of the kernel for each layer of each scale network. + + @type session: tf.Session + @type summary_writer: tf.train.SummaryWriter + @type height_train: int + @type width_train: int + @type height_test: int + @type width_test: int + @type scale_layer_fms: list> + @type scale_kernel_sizes: list> + """ + self.sess = session + self.summary_writer = summary_writer + self.height_train = height_train + self.width_train = width_train + self.height_test = height_test + self.width_test = width_test + self.scale_layer_fms = scale_layer_fms + self.scale_kernel_sizes = scale_kernel_sizes + self.num_scale_nets = len(scale_layer_fms) + + self.define_graph() + + # noinspection PyAttributeOutsideInit + def define_graph(self): + """ + Sets up the model graph in TensorFlow. + """ + with tf.name_scope('generator'): + ## + # Data + ## + + with tf.name_scope('data'): + self.input_frames_train = tf.placeholder( + tf.float32, shape=[None, self.height_train, self.width_train, 3 * c.HIST_LEN]) + self.gt_frames_train = tf.placeholder( + tf.float32, shape=[None, self.height_train, self.width_train, 3]) + + self.input_frames_test = tf.placeholder( + tf.float32, shape=[None, self.height_test, self.width_test, 3 * c.HIST_LEN]) + self.gt_frames_test = tf.placeholder( + tf.float32, shape=[None, self.height_test, self.width_test, 3]) + + # use variable batch_size for more flexibility + self.batch_size_train = tf.shape(self.input_frames_train)[0] + self.batch_size_test = tf.shape(self.input_frames_test)[0] + + ## + # Scale network setup and calculation + ## + + self.summaries_train = [] + self.scale_preds_train = [] # the generated images at each scale + self.scale_gts_train = [] # the ground truth images at each scale + self.d_scale_preds = [] # the predictions from the discriminator model + + self.summaries_test = [] + self.scale_preds_test = [] # the generated images at each scale + self.scale_gts_test = [] # the ground truth images at each scale + + for scale_num in xrange(self.num_scale_nets): + with tf.name_scope('scale_' + str(scale_num)): + with tf.name_scope('setup'): + ws = [] + bs = [] + + # create weights for kernels + for i in xrange(len(self.scale_kernel_sizes[scale_num])): + ws.append(w([self.scale_kernel_sizes[scale_num][i], + self.scale_kernel_sizes[scale_num][i], + self.scale_layer_fms[scale_num][i], + self.scale_layer_fms[scale_num][i + 1]])) + bs.append(b([self.scale_layer_fms[scale_num][i + 1]])) + + with tf.name_scope('calculation'): + def calculate(height, width, inputs, gts, last_gen_frames): + # scale inputs and gts + scale_factor = 1. / 2 ** ((self.num_scale_nets - 1) - scale_num) + scale_height = int(height * scale_factor) + scale_width = int(width * scale_factor) + + inputs = tf.image.resize_images(inputs, scale_height, scale_width) + scale_gts = tf.image.resize_images(gts, scale_height, scale_width) + + # for all scales but the first, add the frame generated by the last + # scale to the input + if scale_num > 0: + last_gen_frames = tf.image.resize_images(last_gen_frames, + scale_height, + scale_width) + inputs = tf.concat(3, [inputs, last_gen_frames]) + + # generated frame predictions + preds = inputs + + # perform convolutions + with tf.name_scope('convolutions'): + for i in xrange(len(self.scale_kernel_sizes[scale_num])): + # Convolve layer + preds = tf.nn.conv2d( + preds, ws[i], [1, 1, 1, 1], padding=c.PADDING_G) + + # Activate with ReLU (or Tanh for last layer) + if i == len(self.scale_kernel_sizes[scale_num]) - 1: + preds = tf.nn.tanh(preds + bs[i]) + else: + preds = tf.nn.relu(preds + bs[i]) + + return preds, scale_gts + + ## + # Perform train calculation + ## + + # for all scales but the first, add the frame generated by the last + # scale to the input + if scale_num > 0: + last_scale_pred_train = self.scale_preds_train[scale_num - 1] + else: + last_scale_pred_train = None + + # calculate + train_preds, train_gts = calculate(self.height_train, + self.width_train, + self.input_frames_train, + self.gt_frames_train, + last_scale_pred_train) + self.scale_preds_train.append(train_preds) + self.scale_gts_train.append(train_gts) + + # We need to run the network first to get generated frames, run the + # discriminator on those frames to get d_scale_preds, then run this + # again for the loss optimization. + if c.ADVERSARIAL: + self.d_scale_preds.append(tf.placeholder(tf.float32, [None, 1])) + + ## + # Perform test calculation + ## + + # for all scales but the first, add the frame generated by the last + # scale to the input + if scale_num > 0: + last_scale_pred_test = self.scale_preds_test[scale_num - 1] + else: + last_scale_pred_test = None + + # calculate + test_preds, test_gts = calculate(self.height_test, + self.width_test, + self.input_frames_test, + self.gt_frames_test, + last_scale_pred_test) + self.scale_preds_test.append(test_preds) + self.scale_gts_test.append(test_gts) + + ## + # Training + ## + + with tf.name_scope('train'): + # global loss is the combined loss from every scale network + self.global_loss = combined_loss(self.scale_preds_train, + self.scale_gts_train, + self.d_scale_preds) + self.global_step = tf.Variable(0, trainable=False) + self.optimizer = tf.train.AdamOptimizer(learning_rate=c.LRATE_G, name='optimizer') + self.train_op = self.optimizer.minimize(self.global_loss, + global_step=self.global_step, + name='train_op') + + # train loss summary + loss_summary = tf.scalar_summary('train_loss_G', self.global_loss) + self.summaries_train.append(loss_summary) + + ## + # Error + ## + + with tf.name_scope('error'): + # error computation + # get error at largest scale + self.psnr_error_train = psnr_error(self.scale_preds_train[-1], + self.gt_frames_train) + self.sharpdiff_error_train = sharp_diff_error(self.scale_preds_train[-1], + self.gt_frames_train) + self.psnr_error_test = psnr_error(self.scale_preds_test[-1], + self.gt_frames_test) + self.sharpdiff_error_test = sharp_diff_error(self.scale_preds_test[-1], + self.gt_frames_test) + # train error summaries + summary_psnr_train = tf.scalar_summary('train_PSNR', + self.psnr_error_train) + summary_sharpdiff_train = tf.scalar_summary('train_SharpDiff', + self.sharpdiff_error_train) + self.summaries_train += [summary_psnr_train, summary_sharpdiff_train] + + # test error + summary_psnr_test = tf.scalar_summary('test_PSNR', + self.psnr_error_test) + summary_sharpdiff_test = tf.scalar_summary('test_SharpDiff', + self.sharpdiff_error_test) + self.summaries_test += [summary_psnr_test, summary_sharpdiff_test] + + # add summaries to visualize in TensorBoard + self.summaries_train = tf.merge_summary(self.summaries_train) + self.summaries_test = tf.merge_summary(self.summaries_test) + + def train_step(self, batch, discriminator=None): + """ + Runs a training step using the global loss on each of the scale networks. + + @param batch: An array of shape + [c.BATCH_SIZE x self.height x self.width x (3 * (c.HIST_LEN + 1))]. + The input and output frames, concatenated along the channel axis (index 3). + @param discriminator: The discriminator model. Default = None, if not adversarial. + + @return: The global step. + """ + ## + # Split into inputs and outputs + ## + + input_frames = batch[:, :, :, :-3] + gt_frames = batch[:, :, :, -3:] + + ## + # Train + ## + + feed_dict = {self.input_frames_train: input_frames, self.gt_frames_train: gt_frames} + + if c.ADVERSARIAL: + # Run the generator first to get generated frames + scale_preds = self.sess.run(self.scale_preds_train, feed_dict=feed_dict) + + # Run the discriminator nets on those frames to get predictions + d_feed_dict = {} + for scale_num, gen_frames in enumerate(scale_preds): + d_feed_dict[discriminator.scale_nets[scale_num].input_frames] = gen_frames + d_scale_preds = self.sess.run(discriminator.scale_preds, feed_dict=d_feed_dict) + + # Add discriminator predictions to the + for i, preds in enumerate(d_scale_preds): + feed_dict[self.d_scale_preds[i]] = preds + + _, global_loss, global_psnr_error, global_sharpdiff_error, global_step, summaries = \ + self.sess.run([self.train_op, + self.global_loss, + self.psnr_error_train, + self.sharpdiff_error_train, + self.global_step, + self.summaries_train], + feed_dict=feed_dict) + + ## + # User output + ## + if global_step % c.STATS_FREQ == 0: + print 'GeneratorModel : Step ', global_step + print ' Global Loss : ', global_loss + print ' PSNR Error : ', global_psnr_error + print ' Sharpdiff Error: ', global_sharpdiff_error + if global_step % c.SUMMARY_FREQ == 0: + self.summary_writer.add_summary(summaries, global_step) + print 'GeneratorModel: saved summaries' + if global_step % c.IMG_SAVE_FREQ == 0: + print '-' * 30 + print 'Saving images...' + + # if not adversarial, we didn't get the preds for each scale net before for the + # discriminator prediction, so do it now + if not c.ADVERSARIAL: + scale_preds = self.sess.run(self.scale_preds_train, feed_dict=feed_dict) + + # re-generate scale gt_frames to avoid having to run through TensorFlow. + scale_gts = [] + for scale_num in xrange(self.num_scale_nets): + scale_factor = 1. / 2 ** ((self.num_scale_nets - 1) - scale_num) + scale_height = int(self.height_train * scale_factor) + scale_width = int(self.width_train * scale_factor) + + # resize gt_output_frames for scale and append to scale_gts_train + scaled_gt_frames = np.empty([c.BATCH_SIZE, scale_height, scale_width, 3]) + for i, img in enumerate(gt_frames): + # for skimage.transform.resize, images need to be in range [0, 1], so normalize + # to [0, 1] before resize and back to [-1, 1] after + sknorm_img = (img / 2) + 0.5 + resized_frame = resize(sknorm_img, [scale_height, scale_width, 3]) + scaled_gt_frames[i] = (resized_frame - 0.5) * 2 + scale_gts.append(scaled_gt_frames) + + # for every clip in the batch, save the inputs, scale preds and scale gts + for pred_num in xrange(len(input_frames)): + pred_dir = c.get_dir(c.IMG_SAVE_DIR + 'Step_' + str(global_step) + '/' + str( + pred_num) + '/') + + # save input images + for frame_num in xrange(c.HIST_LEN): + img = input_frames[pred_num, :, :, (frame_num * 3):((frame_num + 1) * 3)] + imsave(pred_dir + 'input_' + str(frame_num) + '.png', img) + + # save preds and gts at each scale + # noinspection PyUnboundLocalVariable + for scale_num, scale_pred in enumerate(scale_preds): + gen_img = scale_pred[pred_num] + + path = pred_dir + 'scale' + str(scale_num) + gt_img = scale_gts[scale_num][pred_num] + + imsave(path + '_gen.png', gen_img) + imsave(path + '_gt.png', gt_img) + + print 'Saved images!' + print '-' * 30 + + return global_step + + def test_batch(self, batch, global_step, num_rec_out=1, save_imgs=True): + """ + Runs a training step using the global loss on each of the scale networks. + + @param batch: An array of shape + [batch_size x self.height x self.width x (3 * (c.HIST_LEN+ num_rec_out))]. + A batch of the input and output frames, concatenated along the channel axis + (index 3). + @param global_step: The global step. + @param num_rec_out: The number of outputs to predict. Outputs > 1 are computed recursively, + using previously-generated frames as input. Default = 1. + @param save_imgs: Whether or not to save the input/output images to file. Default = True. + + @return: A tuple of (psnr error, sharpdiff error) for the batch. + """ + if num_rec_out < 1: + raise ValueError('num_rec_out must be >= 1') + + print '-' * 30 + print 'Testing:' + + ## + # Split into inputs and outputs + ## + + input_frames = batch[:, :, :, :3 * c.HIST_LEN] + gt_frames = batch[:, :, :, 3 * c.HIST_LEN:] + + ## + # Generate num_rec_out recursive predictions + ## + + working_input_frames = deepcopy(input_frames) # input frames that will shift w/ recursion + rec_preds = [] + rec_summaries = [] + for rec_num in xrange(num_rec_out): + working_gt_frames = gt_frames[:, :, :, 3 * rec_num:3 * (rec_num + 1)] + + feed_dict = {self.input_frames_test: working_input_frames, + self.gt_frames_test: working_gt_frames} + preds, psnr, sharpdiff, summaries = self.sess.run([self.scale_preds_test[-1], + self.psnr_error_test, + self.sharpdiff_error_test, + self.summaries_test], + feed_dict=feed_dict) + + # remove first input and add new pred as last input + working_input_frames = np.concatenate( + [working_input_frames[:, :, :, 3:], preds], axis=3) + + # add predictions and summaries + rec_preds.append(preds) + rec_summaries.append(summaries) + + print 'Recursion ', rec_num + print 'PSNR Error : ', psnr + print 'Sharpdiff Error: ', sharpdiff + + # write summaries + # TODO: Think of a good way to write rec output summaries - rn, just using first output. + self.summary_writer.add_summary(rec_summaries[0], global_step) + + ## + # Save images + ## + + if save_imgs: + for pred_num in xrange(len(input_frames)): + pred_dir = c.get_dir( + c.IMG_SAVE_DIR + 'Tests/Step_' + str(global_step) + '/' + str(pred_num) + '/') + + # save input images + for frame_num in xrange(c.HIST_LEN): + img = input_frames[pred_num, :, :, (frame_num * 3):((frame_num + 1) * 3)] + imsave(pred_dir + 'input_' + str(frame_num) + '.png', img) + + # save recursive outputs + for rec_num in xrange(num_rec_out): + gen_img = rec_preds[rec_num][pred_num] + gt_img = gt_frames[pred_num, :, :, 3 * rec_num:3 * (rec_num + 1)] + imsave(pred_dir + 'gen_' + str(rec_num) + '.png', gen_img) + imsave(pred_dir + 'gt_' + str(rec_num) + '.png', gt_img) + + print '-' * 30 diff --git a/Code/loss_functions.py b/Code/loss_functions.py new file mode 100644 index 0000000..994d226 --- /dev/null +++ b/Code/loss_functions.py @@ -0,0 +1,118 @@ +import tensorflow as tf +import numpy as np + +from tfutils import log10 +import constants as c + +def combined_loss(gen_frames, gt_frames, d_preds, lam_adv=1, lam_lp=1, lam_gdl=1, l_num=2, alpha=2): + """ + Calculates the sum of the combined adversarial, lp and GDL losses in the given proportion. Used + for training the generative model. + + @param gen_frames: A list of tensors of the generated frames at each scale. + @param gt_frames: A list of tensors of the ground truth frames at each scale. + @param d_preds: A list of tensors of the classifications made by the discriminator model at each + scale. + @param lam_adv: The percentage of the adversarial loss to use in the combined loss. + @param lam_lp: The percentage of the lp loss to use in the combined loss. + @param lam_gdl: The percentage of the GDL loss to use in the combined loss. + @param l_num: 1 or 2 for l1 and l2 loss, respectively). + @param alpha: The power to which each gradient term is raised in GDL loss. + + @return: The combined adversarial, lp and GDL losses. + """ + batch_size = tf.shape(gen_frames[0])[0] # variable batch size as a tensor + + loss = lam_lp * lp_loss(gen_frames, gt_frames, l_num) + loss += lam_gdl * gdl_loss(gen_frames, gt_frames, alpha) + if c.ADVERSARIAL: loss += lam_adv * adv_loss(d_preds, tf.ones([batch_size, 1])) + + return loss + + +def bce_loss(preds, targets): + """ + Calculates the sum of binary cross-entropy losses between predictions and ground truths. + + @param preds: A 1xN tensor. The predicted classifications of each frame. + @param targets: A 1xN tensor The target labels for each frame. (Either 1 or -1). Not "truths" + because the generator passes in lies to determine how well it confuses the + discriminator. + + @return: The sum of binary cross-entropy losses. + """ + return tf.squeeze(-1 * (tf.matmul(targets, log10(preds), transpose_a=True) + + tf.matmul(1 - targets, log10(1 - preds), transpose_a=True))) + + +def lp_loss(gen_frames, gt_frames, l_num): + """ + Calculates the sum of lp losses between the predicted and ground truth frames. + + @param gen_frames: The predicted frames at each scale. + @param gt_frames: The ground truth frames at each scale + @param l_num: 1 or 2 for l1 and l2 loss, respectively). + + @return: The lp loss. + """ + # calculate the loss for each scale + scale_losses = [] + for i in xrange(len(gen_frames)): + scale_losses.append(tf.reduce_sum(tf.abs(gen_frames[i] - gt_frames[i])**l_num)) + + # condense into one tensor and avg + return tf.reduce_mean(tf.pack(scale_losses)) + + +def gdl_loss(gen_frames, gt_frames, alpha): + """ + Calculates the sum of GDL losses between the predicted and ground truth frames. + + @param gen_frames: The predicted frames at each scale. + @param gt_frames: The ground truth frames at each scale + @param alpha: The power to which each gradient term is raised. + + @return: The GDL loss. + """ + # calculate the loss for each scale + scale_losses = [] + for i in xrange(len(gen_frames)): + # create filters [-1, 1] and [[1],[-1]] for diffing to the left and down respectively. + pos = tf.constant(np.identity(3), dtype=tf.float32) + neg = -1 * pos + filter_x = tf.expand_dims(tf.pack([neg, pos]), 0) # [-1, 1] + filter_y = tf.pack([tf.expand_dims(pos, 0), tf.expand_dims(neg, 0)]) # [[1],[-1]] + strides = [1, 1, 1, 1] # stride of (1, 1) + padding = 'SAME' + + gen_dx = tf.abs(tf.nn.conv2d(gen_frames[i], filter_x, strides, padding=padding)) + gen_dy = tf.abs(tf.nn.conv2d(gen_frames[i], filter_y, strides, padding=padding)) + gt_dx = tf.abs(tf.nn.conv2d(gt_frames[i], filter_x, strides, padding=padding)) + gt_dy = tf.abs(tf.nn.conv2d(gt_frames[i], filter_y, strides, padding=padding)) + + grad_diff_x = tf.abs(gt_dx - gen_dx) + grad_diff_y = tf.abs(gt_dy - gen_dy) + + scale_losses.append(tf.reduce_sum((grad_diff_x ** alpha + grad_diff_y ** alpha))) + + # condense into one tensor and avg + return tf.reduce_mean(tf.pack(scale_losses)) + + +def adv_loss(preds, labels): + """ + Calculates the sum of BCE losses between the predicted classifications and true labels. + + @param preds: The predicted classifications at each scale. + @param labels: The true labels. (Same for every scale). + + @return: The adversarial loss. + """ + # calculate the loss for each scale + scale_losses = [] + for i in xrange(len(preds)): + loss = bce_loss(preds[i], labels) + scale_losses.append(loss) + + # condense into one tensor and avg + return tf.reduce_mean(tf.pack(scale_losses)) diff --git a/Code/loss_functions_test.py b/Code/loss_functions_test.py new file mode 100644 index 0000000..6b015f2 --- /dev/null +++ b/Code/loss_functions_test.py @@ -0,0 +1,304 @@ +from loss_functions import * + +sess = tf.Session() +BATCH_SIZE = 2 +NUM_SCALES = 5 +MAX_P = 5 +MAX_ALPHA = 1 + + +# noinspection PyClassHasNoInit +class TestBCELoss: + def test_false_correct(self): + targets = tf.constant(np.zeros([5, 1])) + preds = 1e-7 * tf.constant(np.ones([5, 1])) + res = sess.run(bce_loss(preds, targets)) + + log_con = np.log10(1 - 1e-7) + res_tru = -1 * np.sum(np.array([log_con] * 5)) + assert np.array_equal(np.around(res, 7), np.around(res_tru, 7)) + + def test_false_incorrect(self): + targets = tf.constant(np.zeros([5, 1])) + preds = tf.constant(np.ones([5, 1])) - 1e-7 + res = sess.run(bce_loss(preds, targets)) + + log_con = np.log10(1e-7) + res_tru = -1 * np.sum(np.array([log_con] * 5)) + assert np.array_equal(np.around(res, 7), np.around(res_tru, 7)) + + def test_false_half(self): + targets = tf.constant(np.zeros([5, 1])) + preds = 0.5 * tf.constant(np.ones([5, 1])) + res = sess.run(bce_loss(preds, targets)) + + log_con = np.log10(0.5) + res_tru = -1 * np.sum(np.array([log_con] * 5)) + assert np.array_equal(np.around(res, 7), np.around(res_tru, 7)) + + def test_true_correct(self): + targets = tf.constant(np.ones([5, 1])) + preds = tf.constant(np.ones([5, 1])) - 1e-7 + res = sess.run(bce_loss(preds, targets)) + + log = np.log10(1 - 1e-7) + res_tru = -1 * np.sum(np.array([log] * 5)) + assert np.array_equal(np.around(res, 7), np.around(res_tru, 7)) + + def test_true_incorrect(self): + targets = tf.constant(np.ones([5, 1])) + preds = 1e-7 * tf.constant(np.ones([5, 1])) + res = sess.run(bce_loss(preds, targets)) + + log = np.log10(1e-7) + res_tru = -1 * np.sum(np.array([log] * 5)) + assert np.array_equal(np.around(res, 7), np.around(res_tru, 7)) + + def test_true_half(self): + targets = tf.constant(np.ones([5, 1])) + preds = 0.5 * tf.constant(np.ones([5, 1])) + res = sess.run(bce_loss(preds, targets)) + + log = np.log10(0.5) + res_tru = -1 * np.sum(np.array([log] * 5)) + assert np.array_equal(np.around(res, 7), np.around(res_tru, 7)) + + +# noinspection PyClassHasNoInit +class TestLPLoss: + def test_same_images(self): + # generate scales + scale_preds = [] + scale_truths = [] + + res_tru = 0 + for i in xrange(1, NUM_SCALES + 1): + scale_preds.append(tf.constant(np.ones([BATCH_SIZE, 2**i, 2**i, 3]))) + scale_truths.append(tf.constant(np.ones([BATCH_SIZE, 2**i, 2**i, 3]))) + + for p in xrange(1, MAX_P + 1): + res = sess.run(lp_loss(scale_preds, scale_truths, p)) + assert res == res_tru, 'failed on p = %d' % p + + def test_opposite_images(self): + # generate scales + scale_preds = [] + scale_truths = [] + + res_tru = 0 + for i in xrange(1, NUM_SCALES + 1): + scale_preds.append(tf.constant(np.zeros([BATCH_SIZE, 2**i, 2 ** i, 3]))) + scale_truths.append(tf.constant(np.ones([BATCH_SIZE, 2**i, 2 ** i, 3]))) + + res_tru += BATCH_SIZE * 2**i * 2**i * 3 + + for p in xrange(1, MAX_P + 1): + res = sess.run(lp_loss(scale_preds, scale_truths, p)) + assert res == res_tru, 'failed on p = %d' % p + + def test_some_correct(self): + # generate scales + scale_preds = [] + scale_truths = [] + + res_tru = 0 + for i in xrange(1, NUM_SCALES + 1): + # generate batch of 3-deep identity matrices + preds = np.empty([BATCH_SIZE, 2**i, 2**i, 3]) + imat = np.identity(2**i) + for elt in xrange(BATCH_SIZE): + preds[elt] = np.dstack([imat, imat, imat]) + + scale_preds.append(tf.constant(preds)) + scale_truths.append(tf.constant(np.zeros([BATCH_SIZE, 2**i, 2**i, 3]))) + + res_tru += BATCH_SIZE * 2**i * 3 + + for p in xrange(1, MAX_P + 1): + res = sess.run(lp_loss(scale_preds, scale_truths, p)) + assert res == res_tru, 'failed on p = %d' % p + + def test_l_high(self): + # generate scales + scale_preds = [] + scale_truths = [] + + res_tru = 0 + for i in xrange(1, NUM_SCALES + 1): + # opposite images + preds = np.empty([BATCH_SIZE, 2**i, 2**i, 3]) + preds.fill(3) + scale_preds.append(tf.constant(preds)) + scale_truths.append(tf.constant(np.zeros([BATCH_SIZE, 2**i, 2**i, 3]))) + + res_tru += BATCH_SIZE * 2**i * 2**i * 3 + + for p in xrange(1, MAX_P + 1): + res = sess.run(lp_loss(scale_preds, scale_truths, p)) + assert res == res_tru * (3**p), 'failed on p = %d' % p + + +# noinspection PyClassHasNoInit +class TestGDLLoss: + def test_same_uniform(self): + # generate scales + scale_preds = [] + scale_truths = [] + + res_tru = 0 + for i in xrange(1, NUM_SCALES + 1): + scale_preds.append(tf.ones([BATCH_SIZE, 2 ** i, 2 ** i, 3])) + scale_truths.append(tf.ones([BATCH_SIZE, 2 ** i, 2 ** i, 3])) + + for a in xrange(1, MAX_ALPHA + 1): + res = sess.run(gdl_loss(scale_preds, scale_truths, a)) + assert res == res_tru, 'failed on alpha = %d' % a + + def test_same_nonuniform(self): + # generate scales + scale_preds = [] + scale_truths = [] + + res_tru = 0 + for i in xrange(1, NUM_SCALES + 1): + # generate batch of 3-deep identity matrices + arr = np.empty([BATCH_SIZE, 2 ** i, 2 ** i, 3]) + imat = np.identity(2 ** i) + for elt in xrange(BATCH_SIZE): + arr[elt] = np.dstack([imat, imat, imat]) + + scale_preds.append(tf.constant(arr, dtype=tf.float32)) + scale_truths.append(tf.constant(arr, dtype=tf.float32)) + + for a in xrange(1, MAX_ALPHA + 1): + res = sess.run(gdl_loss(scale_preds, scale_truths, a)) + assert res == res_tru, 'failed on alpha = %d' % a + + # TODO: Not 0 loss as expected because the 1s array is padded by 0s, so there is some gradient. + def test_diff_uniform(self): + # generate scales + scale_preds = [] + scale_truths = [] + + res_tru = 0 + for i in xrange(1, NUM_SCALES + 1): + scale_preds.append(tf.zeros([BATCH_SIZE, 2 ** i, 2 ** i, 3])) + scale_truths.append(tf.ones([BATCH_SIZE, 2 ** i, 2 ** i, 3])) + + # every diff should have an abs value of 1, so no need for alpha handling + res_tru += BATCH_SIZE * 2 ** i * 2 * 3 + + for a in xrange(1, MAX_ALPHA + 1): + res = sess.run(gdl_loss(scale_preds, scale_truths, a)) + assert res == res_tru, 'failed on alpha = %d' % a + + def test_diff_one_uniform_one_not(self): + # generate scales + scale_preds = [] + scale_truths = [] + + res_trus = np.zeros(MAX_ALPHA - 1) + for i in xrange(1, NUM_SCALES + 1): + # generate batch of 3-deep matrices with 3s on the diagonals + preds = np.empty([BATCH_SIZE, 2 ** i, 2 ** i, 3]) + imat = np.identity(2 ** i) * 3 + for elt in xrange(BATCH_SIZE): + preds[elt] = np.dstack([imat, imat, imat]) + + scale_preds.append(tf.constant(preds, dtype=tf.float32)) + scale_truths.append(tf.zeros([BATCH_SIZE, 2 ** i, 2 ** i, 3])) + + # every diff has an abs value of 3, so we can multiply that, raised to alpha + # for each alpha check, times the number of diffs in a batch: + # BATCH_SIZE * (diffs to left + down) * (diffs from up and right) * (# 3s in height) * + # (# channels) + num_diffs = BATCH_SIZE * 2 * 2 * 2**i * 3 + + for a in xrange(1, MAX_ALPHA): + res_trus[a] += num_diffs * 3**a + + for a, res_tru in enumerate(res_trus): + res = sess.run(gdl_loss(scale_preds, scale_truths, a + 1)) + assert res == res_tru, 'failed on alpha = %d' % (a + 1) + + +# noinspection PyClassHasNoInit +class TestAdvLoss: + def test_false_correct(self): + # generate scales + scale_preds = [] + targets = tf.constant(np.zeros([5, 1])) + + res_tru = 0 + log_con = np.log10(1 - 1e-7) + for i in xrange(NUM_SCALES): + scale_preds.append(1e-7 * tf.constant(np.ones([5, 1]))) + res_tru += -1 * np.sum(np.array([log_con] * 5)) + + res = sess.run(adv_loss(scale_preds, targets)) + assert np.array_equal(np.around(res, 7), np.around(res_tru, 7)) + + def test_false_incorrect(self): + scale_preds = [] + targets = tf.constant(np.zeros([5, 1])) + + res_tru = 0 + log_con = np.log10(1e-7) + for i in xrange(NUM_SCALES): + scale_preds.append(tf.constant(np.ones([5, 1])) - 1e-7) + res_tru += -1 * np.sum(np.array([log_con] * 5)) + + res = sess.run(adv_loss(scale_preds, targets)) + assert np.array_equal(np.around(res, 7), np.around(res_tru, 7)) + + def test_false_half(self): + scale_preds = [] + targets = tf.constant(np.zeros([5, 1])) + + res_tru = 0 + log_con = np.log10(0.5) + for i in xrange(NUM_SCALES): + scale_preds.append(0.5 * tf.constant(np.ones([5, 1]))) + res_tru += -1 * np.sum(np.array([log_con] * 5)) + + res = sess.run(adv_loss(scale_preds, targets)) + assert np.array_equal(np.around(res, 7), np.around(res_tru, 7)) + + def test_true_correct(self): + scale_preds = [] + targets = tf.constant(np.ones([5, 1])) + + res_tru = 0 + log = np.log10(1 - 1e-7) + for i in xrange(NUM_SCALES): + scale_preds.append(tf.constant(np.ones([5, 1])) - 1e-7) + res_tru += -1 * np.sum(np.array([log] * 5)) + + res = sess.run(adv_loss(scale_preds, targets)) + assert np.array_equal(np.around(res, 7), np.around(res_tru, 7)) + + def test_true_incorrect(self): + scale_preds = [] + targets = tf.constant(np.ones([5, 1])) + + res_tru = 0 + log = np.log10(1e-7) + for i in xrange(NUM_SCALES): + scale_preds.append(1e-7 * tf.constant(np.ones([5, 1]))) + res_tru += -1 * np.sum(np.array([log] * 5)) + + res = sess.run(adv_loss(scale_preds, targets)) + assert np.array_equal(np.around(res, 7), np.around(res_tru, 7)) + + def test_true_half(self): + scale_preds = [] + targets = tf.constant(np.ones([5, 1])) + + res_tru = 0 + log = np.log10(0.5) + for i in xrange(NUM_SCALES): + scale_preds.append(0.5 * tf.constant(np.ones([5, 1]))) + res_tru += -1 * np.sum(np.array([log] * 5)) + + res = sess.run(adv_loss(scale_preds, targets)) + assert np.array_equal(np.around(res, 7), np.around(res_tru, 7)) diff --git a/Code/process_data.py b/Code/process_data.py new file mode 100644 index 0000000..170959a --- /dev/null +++ b/Code/process_data.py @@ -0,0 +1,71 @@ +import numpy as np +import getopt +import sys +from glob import glob + +import constants as c +from utils import process_clip + + +def process_training_data(num_clips): + """ + Processes random training clips from the full training data. Saves to TRAIN_DIR_CLIPS by + default. + + @param num_clips: The number of clips to process. Default = 5000000 (set in __main__). + + @warning: This can take a couple of hours to complete with large numbers of clips. + """ + num_prev_clips = len(glob(c.TRAIN_DIR_CLIPS + '*')) + + for clip_num in xrange(num_prev_clips, num_clips + num_prev_clips): + clip = process_clip() + + np.savez_compressed(c.TRAIN_DIR_CLIPS + str(clip_num), clip) + + if (clip_num + 1) % 100 == 0: print 'Processed %d clips' % (clip_num + 1) + + +def usage(): + print 'Options:' + print '-n/--num_clips= <# clips to process for training>' + print '-t/--train_dir= ' + print '-c/--clips_dir= ' + print " (I suggest making this a hidden dir so the filesystem doesn't freeze" + print " with so many files. DON'T `ls` THIS DIRECTORY!)" + print '-o/--overwrite (Overwrites the previous data in the training dir)' + + +def main(): + ## + # Handle command line input + ## + + num_clips = 5000000 + + try: + opts, _ = getopt.getopt(sys.argv[1:], 'n:t:c:o', + ['num_clips=', 'train_dir=', 'clips_dir=', 'overwrite']) + except getopt.GetoptError: + usage() + sys.exit(2) + + for opt, arg in opts: + if opt in ('-n', '--num_clips'): + num_clips = int(arg) + if opt in ('-t', '--train_dir'): + c.TRAIN_DIR = c.get_dir(arg) + if opt in ('-c', '--clips_dir'): + c.TRAIN_DIR_CLIPS = c.get_dir(arg) + if opt in ('-o', '--overwrite'): + c.clear_dir(c.TRAIN_DIR_CLIPS) + + ## + # Process data for training + ## + + process_training_data(num_clips) + + +if __name__ == '__main__': + main() diff --git a/Code/tfutils.py b/Code/tfutils.py new file mode 100644 index 0000000..22baf95 --- /dev/null +++ b/Code/tfutils.py @@ -0,0 +1,133 @@ +import tensorflow as tf +import numpy as np + + +def w(shape, stddev=0.01): + """ + @return A weight layer with the given shape and standard deviation. Initialized with a + truncated normal distribution. + """ + return tf.Variable(tf.truncated_normal(shape, stddev=stddev)) + + +def b(shape, const=0.1): + """ + @return A bias layer with the given shape. + """ + return tf.Variable(tf.constant(const, shape=shape)) + + +def conv_out_size(i, p, k, s): + """ + Gets the output size for a 2D convolution. (Assumes square input and kernel). + + @param i: The side length of the input. + @param p: The padding type (either 'SAME' or 'VALID'). + @param k: The side length of the kernel. + @param s: The stride. + + @type i: int + @type p: string + @type k: int + @type s: int + + @return The side length of the output. + """ + # convert p to a number + if p == 'SAME': + p = k // 2 + elif p == 'VALID': + p = 0 + else: + raise ValueError('p must be "SAME" or "VALID".') + + return int(((i + (2 * p) - k) / s) + 1) + + +def log10(t): + """ + Calculates the base-10 log of each element in t. + + @param t: The tensor from which to calculate the base-10 log. + + @return: A tensor with the base-10 log of each element in t. + """ + + numerator = tf.log(t) + denominator = tf.log(tf.constant(10, dtype=numerator.dtype)) + return numerator / denominator + + +def batch_pad_to_bounding_box(images, offset_height, offset_width, target_height, target_width): + """ + Zero-pads a batch of images with the given dimensions. + + @param images: 4-D tensor with shape [batch_size, height, width, channels] + @param offset_height: Number of rows of zeros to add on top. + @param offset_width: Number of columns of zeros to add on the left. + @param target_height: Height of output images. + @param target_width: Width of output images. + + @return: The batch of images, all zero-padded with the specified dimensions. + """ + batch_size, height, width, channels = tf.Session().run(tf.shape(images)) + + if not offset_height >= 0: + raise ValueError('offset_height must be >= 0') + if not offset_width >= 0: + raise ValueError('offset_width must be >= 0') + if not target_height >= height + offset_height: + raise ValueError('target_height must be >= height + offset_height') + if not target_width >= width + offset_width: + raise ValueError('target_width must be >= width + offset_width') + + num_tpad = offset_height + num_lpad = offset_width + num_bpad = target_height - (height + offset_height) + num_rpad = target_width - (width + offset_width) + + tpad = np.zeros([batch_size, num_tpad, width, channels]) + bpad = np.zeros([batch_size, num_bpad, width, channels]) + lpad = np.zeros([batch_size, target_height, num_lpad, channels]) + rpad = np.zeros([batch_size, target_height, num_rpad, channels]) + + padded = images + if num_tpad > 0 and num_bpad > 0: padded = tf.concat(1, [tpad, padded, bpad]) + elif num_tpad > 0: padded = tf.concat(1, [tpad, padded]) + elif num_bpad > 0: padded = tf.concat(1, [padded, bpad]) + if num_lpad > 0 and num_rpad > 0: padded = tf.concat(2, [lpad, padded, rpad]) + elif num_lpad > 0: padded = tf.concat(2, [lpad, padded]) + elif num_rpad > 0: padded = tf.concat(2, [padded, rpad]) + + return padded + + +def batch_crop_to_bounding_box(images, offset_height, offset_width, target_height, target_width): + """ + Crops a batch of images to the given dimensions. + + @param images: 4-D tensor with shape [batch, height, width, channels] + @param offset_height: Vertical coordinate of the top-left corner of the result in the input. + @param offset_width: Horizontal coordinate of the top-left corner of the result in the input. + @param target_height: Height of output images. + @param target_width: Width of output images. + + @return: The batch of images, all cropped the specified dimensions. + """ + batch_size, height, width, channels = tf.Session().run(tf.shape(images)) + + if not offset_height >= 0: + raise ValueError('offset_height must be >= 0') + if not offset_width >= 0: + raise ValueError('offset_width must be >= 0') + if not target_height + offset_height <= height: + raise ValueError('target_height + offset_height must be <= height') + if not target_width <= width - offset_width: + raise ValueError('target_width + offset_width must be <= width') + + top = offset_height + bottom = target_height + offset_height + left = offset_width + right = target_width + offset_width + + return images[:, top:bottom, left:right, :] diff --git a/Code/tfutils_test.py b/Code/tfutils_test.py new file mode 100644 index 0000000..4e2b490 --- /dev/null +++ b/Code/tfutils_test.py @@ -0,0 +1,102 @@ +from tfutils import * + +imgs = tf.constant(np.ones([2, 2, 2, 3])) +sess = tf.Session() + + +# noinspection PyClassHasNoInit,PyMethodMayBeStatic +class TestPad: + def test_rb(self): + res = sess.run(batch_pad_to_bounding_box(imgs, 0, 0, 4, 4)) + assert np.array_equal(res, np.array([[[[1, 1, 1], + [1, 1, 1], + [0, 0, 0], + [0, 0, 0]], + [[1, 1, 1], + [1, 1, 1], + [0, 0, 0], + [0, 0, 0]], + [[0, 0, 0], + [0, 0, 0], + [0, 0, 0], + [0, 0, 0]], + [[0, 0, 0], + [0, 0, 0], + [0, 0, 0], + [0, 0, 0]] + ], + [[[1, 1, 1], + [1, 1, 1], + [0, 0, 0], + [0, 0, 0]], + [[1, 1, 1], + [1, 1, 1], + [0, 0, 0], + [0, 0, 0]], + [[0, 0, 0], + [0, 0, 0], + [0, 0, 0], + [0, 0, 0]], + [[0, 0, 0], + [0, 0, 0], + [0, 0, 0], + [0, 0, 0]] + ]], dtype=float)) + + def test_center(self): + res = sess.run(batch_pad_to_bounding_box(imgs, 1, 1, 4, 4)) + assert np.array_equal(res, np.array([[[[0, 0, 0], + [0, 0, 0], + [0, 0, 0], + [0, 0, 0]], + [[0, 0, 0], + [1, 1, 1], + [1, 1, 1], + [0, 0, 0]], + [[0, 0, 0], + [1, 1, 1], + [1, 1, 1], + [0, 0, 0]], + [[0, 0, 0], + [0, 0, 0], + [0, 0, 0], + [0, 0, 0]] + ], + [[[0, 0, 0], + [0, 0, 0], + [0, 0, 0], + [0, 0, 0]], + [[0, 0, 0], + [1, 1, 1], + [1, 1, 1], + [0, 0, 0]], + [[0, 0, 0], + [1, 1, 1], + [1, 1, 1], + [0, 0, 0]], + [[0, 0, 0], + [0, 0, 0], + [0, 0, 0], + [0, 0, 0]] + ]], dtype=float)) + + +padded = batch_pad_to_bounding_box(imgs, 1, 1, 4, 4) + + +# noinspection PyClassHasNoInit +class TestCrop: + def test_rb(self): + res = sess.run(batch_crop_to_bounding_box(padded, 0, 0, 2, 2)) + assert np.array_equal(res, np.array([[[[0, 0, 0], + [0, 0, 0]], + [[0, 0, 0], + [1, 1, 1]]], + [[[0, 0, 0], + [0, 0, 0]], + [[0, 0, 0], + [1, 1, 1]]]])) + + def test_center(self): + res = sess.run(batch_crop_to_bounding_box(padded, 1, 1, 2, 2)) + assert np.array_equal(res, np.ones([2, 2, 2, 3])) diff --git a/Code/utils.py b/Code/utils.py new file mode 100644 index 0000000..2b97bdb --- /dev/null +++ b/Code/utils.py @@ -0,0 +1,212 @@ +import tensorflow as tf +import numpy as np +from scipy.ndimage import imread +from glob import glob + +import constants as c +from tfutils import log10 + +## +# Data +## + +def normalize_frames(frames): + """ + Convert frames from int8 [0, 255] to float32 [-1, 1]. + + @param frames: A numpy array. The frames to be converted. + + @return: The normalized frames. + """ + new_frames = frames.astype(np.float32) + new_frames /= (255 / 2) + new_frames -= 1 + + return new_frames + + +def denormalize_frames(frames): + """ + Performs the inverse operation of normalize_frames. + + @param frames: A numpy array. The frames to be converted. + + @return: The denormalized frames. + """ + new_frames = frames + 1 + new_frames *= (255 / 2) + # noinspection PyUnresolvedReferences + new_frames = new_frames.astype(np.uint8) + + return new_frames + +def clip_l2_diff(clip): + """ + @param clip: A numpy array of shape [c.TRAIN_HEIGHT, c.TRAIN_WIDTH, (3 * (c.HIST_LEN + 1))]. + @return: The sum of l2 differences between the frame pixels of each sequential pair of frames. + """ + diff = 0 + for i in xrange(c.HIST_LEN): + frame = clip[:, :, 3 * i:3 * (i + 1)] + next_frame = clip[:, :, 3 * (i + 1):3 * (i + 2)] + # noinspection PyTypeChecker + diff += np.sum(np.square(next_frame - frame)) + + return diff + +def get_full_clips(data_dir, num_clips, num_rec_out=1): + """ + Loads a batch of random clips from the unprocessed train or test data. + + @param data_dir: The directory of the data to read. Should be either c.TRAIN_DIR or c.TEST_DIR. + @param num_clips: The number of clips to read. + @param num_rec_out: The number of outputs to predict. Outputs > 1 are computed recursively, + using the previously-generated frames as input. Default = 1. + + @return: An array of shape + [num_clips, c.TRAIN_HEIGHT, c.TRAIN_WIDTH, (3 * (c.HIST_LEN + num_rec_out))]. + A batch of frame sequences with values normalized in range [-1, 1]. + """ + clips = np.empty([num_clips, + c.TEST_HEIGHT, + c.TEST_WIDTH, + (3 * (c.HIST_LEN + num_rec_out))]) + + # get num_clips random episodes + ep_dirs = np.random.choice(glob(data_dir + '*'), num_clips) + + # get a random clip of length HIST_LEN + 1 from each episode + for clip_num, ep_dir in enumerate(ep_dirs): + ep_frame_paths = glob(ep_dir + '/*') + start_index = np.random.choice(len(ep_frame_paths) - (c.HIST_LEN + num_rec_out - 1)) + clip_frame_paths = ep_frame_paths[start_index:start_index + (c.HIST_LEN + num_rec_out)] + + # read in frames + for frame_num, frame_path in enumerate(clip_frame_paths): + frame = imread(frame_path, mode='RGB') + norm_frame = normalize_frames(frame) + + clips[clip_num, :, :, frame_num * 3:(frame_num + 1) * 3] = norm_frame + + return clips + +def process_clip(): + """ + Gets a clip from the train dataset, cropped randomly to c.TRAIN_HEIGHT x c.TRAIN_WIDTH. + + @return: An array of shape [c.TRAIN_HEIGHT, c.TRAIN_WIDTH, (3 * (c.HIST_LEN + 1))]. + A frame sequence with values normalized in range [-1, 1]. + """ + clip = get_full_clips(c.TRAIN_DIR, 1)[0] + + # Randomly crop the clip. With 0.05 probability, take the first crop offered, otherwise, + # repeat until we have a clip with movement in it. + take_first = np.random.choice(2, p=[0.95, 0.05]) + cropped_clip = np.empty([c.TRAIN_HEIGHT, c.TRAIN_WIDTH, 3 * (c.HIST_LEN + 1)]) + for i in xrange(100): # cap at 100 trials in case the clip has no movement anywhere + crop_x = np.random.choice(c.TEST_WIDTH - c.TRAIN_WIDTH + 1) + crop_y = np.random.choice(c.TEST_HEIGHT - c.TRAIN_HEIGHT + 1) + cropped_clip = clip[crop_y:crop_y + c.TRAIN_HEIGHT, crop_x:crop_x + c.TRAIN_WIDTH, :] + + if take_first or clip_l2_diff(cropped_clip) > c.MOVEMENT_THRESHOLD: + break + + return cropped_clip + +def get_train_batch(): + """ + Loads c.BATCH_SIZE clips from the database of preprocessed training clips. + + @return: An array of shape + [c.BATCH_SIZE, c.TRAIN_HEIGHT, c.TRAIN_WIDTH, (3 * (c.HIST_LEN + 1))]. + """ + clips = np.empty([c.BATCH_SIZE, c.TRAIN_HEIGHT, c.TRAIN_WIDTH, (3 * (c.HIST_LEN + 1))], + dtype=np.float32) + for i in xrange(c.BATCH_SIZE): + path = c.TRAIN_DIR_CLIPS + str(np.random.choice(c.NUM_CLIPS)) + '.npz' + clip = np.load(path)['arr_0'] + + clips[i] = clip + + return clips + + +def get_test_batch(test_batch_size, num_rec_out=1): + """ + Gets a clip from the test dataset. + + @param test_batch_size: The number of clips. + @param num_rec_out: The number of outputs to predict. Outputs > 1 are computed recursively, + using the previously-generated frames as input. Default = 1. + + @return: An array of shape: + [test_batch_size, c.TEST_HEIGHT, c.TEST_WIDTH, (3 * (c.HIST_LEN + num_rec_out))]. + A batch of frame sequences with values normalized in range [-1, 1]. + """ + return get_full_clips(c.TEST_DIR, test_batch_size, num_rec_out=num_rec_out) + + +## +# Error calculation +## + +# TODO: Add SSIM error http://www.cns.nyu.edu/pub/eero/wang03-reprint.pdf +# TODO: Unit test error functions. + +def psnr_error(gen_frames, gt_frames): + """ + Computes the Peak Signal to Noise Ratio error between the generated images and the ground + truth images. + + @param gen_frames: A tensor of shape [batch_size, height, width, 3]. The frames generated by the + generator model. + @param gt_frames: A tensor of shape [batch_size, height, width, 3]. The ground-truth frames for + each frame in gen_frames. + + @return: A scalar tensor. The mean Peak Signal to Noise Ratio error over each frame in the + batch. + """ + shape = tf.shape(gen_frames) + num_pixels = tf.to_float(shape[1] * shape[2]) + square_diff = tf.square(gt_frames - gen_frames) + + batch_errors = 10 * log10(1 / ((1 / num_pixels) * tf.reduce_sum(square_diff, [1, 2, 3]))) + return tf.reduce_mean(batch_errors) + +def sharp_diff_error(gen_frames, gt_frames): + """ + Computes the Sharpness Difference error between the generated images and the ground truth + images. + + @param gen_frames: A tensor of shape [batch_size, height, width, 3]. The frames generated by the + generator model. + @param gt_frames: A tensor of shape [batch_size, height, width, 3]. The ground-truth frames for + each frame in gen_frames. + + @return: A scalar tensor. The Sharpness Difference error over each frame in the batch. + """ + shape = tf.shape(gen_frames) + num_pixels = tf.to_float(shape[1] * shape[2]) + + # gradient difference + # create filters [-1, 1] and [[1],[-1]] for diffing to the left and down respectively. + # TODO: Could this be simplified with one filter [[-1, 2], [0, -1]]? + pos = tf.constant(np.identity(3), dtype=tf.float32) + neg = -1 * pos + filter_x = tf.expand_dims(tf.pack([neg, pos]), 0) # [-1, 1] + filter_y = tf.pack([tf.expand_dims(pos, 0), tf.expand_dims(neg, 0)]) # [[1],[-1]] + strides = [1, 1, 1, 1] # stride of (1, 1) + padding = 'SAME' + + gen_dx = tf.abs(tf.nn.conv2d(gen_frames, filter_x, strides, padding=padding)) + gen_dy = tf.abs(tf.nn.conv2d(gen_frames, filter_y, strides, padding=padding)) + gt_dx = tf.abs(tf.nn.conv2d(gt_frames, filter_x, strides, padding=padding)) + gt_dy = tf.abs(tf.nn.conv2d(gt_frames, filter_y, strides, padding=padding)) + + gen_grad_sum = gen_dx + gen_dy + gt_grad_sum = gt_dx + gt_dy + + grad_diff = tf.abs(gt_grad_sum - gen_grad_sum) + + batch_errors = 10 * log10(1 / ((1 / num_pixels) * tf.reduce_sum(grad_diff, [1, 2, 3]))) + return tf.reduce_mean(batch_errors) diff --git "a/New Figure 1/New Figure 1 \342\200\223\302\240Deep Multiscale Video Prediction Beyond Mean Square Error-01.png" "b/New Figure 1/New Figure 1 \342\200\223\302\240Deep Multiscale Video Prediction Beyond Mean Square Error-01.png" new file mode 100644 index 0000000..f272f17 Binary files /dev/null and "b/New Figure 1/New Figure 1 \342\200\223\302\240Deep Multiscale Video Prediction Beyond Mean Square Error-01.png" differ diff --git "a/New Figure 1/New Figure 1 \342\200\223\302\240Deep Multiscale Video Prediction Beyond Mean Square Error.ai" "b/New Figure 1/New Figure 1 \342\200\223\302\240Deep Multiscale Video Prediction Beyond Mean Square Error.ai" new file mode 100644 index 0000000..2224f31 --- /dev/null +++ "b/New Figure 1/New Figure 1 \342\200\223\302\240Deep Multiscale Video Prediction Beyond Mean Square Error.ai" @@ -0,0 +1,2134 @@ +%PDF-1.5 % +1 0 obj <>/OCGs[7 0 R 50 0 R 92 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + application/pdf + + + Web + + + Adobe Illustrator CC 2015 (Macintosh) + 2016-06-30T18:20:12-04:00 + 2016-06-30T18:22:45-04:00 + 2016-06-30T18:22:45-04:00 + + + + 256 + 80 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAUAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9O61Yyaho9/YRuIpLu3l gSRgSFaRCgYgEEgV8cVeSy/lX+dBZ7K1/MR7CwVa20sNsr+koMSpbiJiG4qiMefqV6D+YlV6xoNj eafoen2F7dtf3lpbRQ3N8/INPJGgV5TyZ2q7DluxxVHYqpidCAQGof8AIb+mKt+sng3/AADf0xV3 rJ4N/wAA39MVd6yeDf8AAN/TFXesng3/AADf0xV3rJ4N/wAA39MVd6yeDf8AAN/TFXesng3/AADf 0xV3rJ4N/wAA39MVd6yeDf8AAN/TFWB+d/IOs+YPMEGs6V5guNCuLS0+r20lvB6jCUyEu7iQMpUw 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 + + + + proof:pdf + uuid:65E6390686CF11DBA6E2D887CEACB407 + xmp.did:4ef6eb53-6e38-4f25-939b-0c39c52e0635 + uuid:feb53d6b-2b5c-ae47-8559-76c772b28d1c + + uuid:1abccb90-0c26-4942-b156-fd2eb962e3e1 + xmp.did:58fdc1b8-1448-3a44-9e20-282d8ec1cf95 + uuid:65E6390686CF11DBA6E2D887CEACB407 + proof:pdf + + + + + saved + xmp.iid:4ef6eb53-6e38-4f25-939b-0c39c52e0635 + 2016-06-30T18:20:12-04:00 + Adobe Illustrator CC 2015 (Macintosh) + / + + + + Web + Document + 1 + True + False + + 1035.000000 + 343.970000 + Pixels + + + + + Times-Roman + Times + Regular + TrueType + 10.0d1e3 + False + Times.dfont + + + Times-Italic + Times + Italic + TrueType + 10.0d1e3 + False + Times.dfont + + + + + + Cyan + Magenta + Yellow + Black + + + + + + Default Swatch Group + 0 + + + + White + RGB + PROCESS + 255 + 255 + 255 + + + Black + RGB + PROCESS + 0 + 0 + 0 + + + RGB Red + RGB + PROCESS + 255 + 0 + 0 + + + RGB Yellow + RGB + PROCESS + 255 + 255 + 0 + + + RGB Green + RGB + PROCESS + 0 + 255 + 0 + + + RGB Cyan + RGB + PROCESS + 0 + 255 + 255 + + + RGB Blue + RGB + PROCESS + 0 + 0 + 255 + + + RGB Magenta + RGB + PROCESS + 255 + 0 + 255 + + + R=193 G=39 B=45 + RGB + PROCESS + 193 + 39 + 45 + + + R=237 G=28 B=36 + RGB + PROCESS + 237 + 28 + 36 + + + R=241 G=90 B=36 + RGB + PROCESS + 241 + 90 + 36 + + + R=247 G=147 B=30 + RGB + PROCESS + 247 + 147 + 30 + + + R=251 G=176 B=59 + RGB + PROCESS + 251 + 176 + 59 + + + R=252 G=238 B=33 + RGB + PROCESS + 252 + 238 + 33 + + + R=217 G=224 B=33 + RGB + PROCESS + 217 + 224 + 33 + + + R=140 G=198 B=63 + RGB + PROCESS + 140 + 198 + 63 + + + R=57 G=181 B=74 + RGB + PROCESS + 57 + 181 + 74 + + + R=0 G=146 B=69 + RGB + PROCESS + 0 + 146 + 69 + + + R=0 G=104 B=55 + RGB + PROCESS + 0 + 104 + 55 + + + R=34 G=181 B=115 + RGB + PROCESS + 34 + 181 + 115 + + + R=0 G=169 B=157 + RGB + PROCESS + 0 + 169 + 157 + + + R=41 G=171 B=226 + RGB + PROCESS + 41 + 171 + 226 + + + R=0 G=113 B=188 + RGB + PROCESS + 0 + 113 + 188 + + + R=46 G=49 B=146 + RGB + PROCESS + 46 + 49 + 146 + + + R=27 G=20 B=100 + RGB + PROCESS + 27 + 20 + 100 + + + R=102 G=45 B=145 + RGB + PROCESS + 102 + 45 + 145 + + + R=147 G=39 B=143 + RGB + PROCESS + 147 + 39 + 143 + + + R=158 G=0 B=93 + RGB + PROCESS + 158 + 0 + 93 + + + R=212 G=20 B=90 + RGB + PROCESS + 212 + 20 + 90 + + + R=237 G=30 B=121 + RGB + PROCESS + 237 + 30 + 121 + + + R=199 G=178 B=153 + RGB + PROCESS + 199 + 178 + 153 + + + R=153 G=134 B=117 + RGB + PROCESS + 153 + 134 + 117 + + + R=115 G=99 B=87 + RGB + PROCESS + 115 + 99 + 87 + + + R=83 G=71 B=65 + RGB + PROCESS + 83 + 71 + 65 + + + R=198 G=156 B=109 + RGB + PROCESS + 198 + 156 + 109 + + + R=166 G=124 B=82 + RGB + PROCESS + 166 + 124 + 82 + + + R=140 G=98 B=57 + RGB + PROCESS + 140 + 98 + 57 + + + R=117 G=76 B=36 + RGB + PROCESS + 117 + 76 + 36 + + + R=96 G=56 B=19 + RGB + PROCESS + 96 + 56 + 19 + + + R=66 G=33 B=11 + RGB + PROCESS + 66 + 33 + 11 + + + + + + Grays + 1 + + + + R=0 G=0 B=0 + RGB + PROCESS + 0 + 0 + 0 + + + R=26 G=26 B=26 + RGB + PROCESS + 26 + 26 + 26 + + + R=51 G=51 B=51 + RGB + PROCESS + 51 + 51 + 51 + + + R=77 G=77 B=77 + RGB + PROCESS + 77 + 77 + 77 + + + R=102 G=102 B=102 + RGB + PROCESS + 102 + 102 + 102 + + + R=128 G=128 B=128 + RGB + PROCESS + 128 + 128 + 128 + + + R=153 G=153 B=153 + RGB + PROCESS + 153 + 153 + 153 + + + R=179 G=179 B=179 + RGB + PROCESS + 179 + 179 + 179 + + + R=204 G=204 B=204 + RGB + PROCESS + 204 + 204 + 204 + + + R=230 G=230 B=230 + RGB + PROCESS + 230 + 230 + 230 + + + R=242 G=242 B=242 + RGB + PROCESS + 242 + 242 + 242 + + + + + + Web Color Group + 1 + + + + R=63 G=169 B=245 + RGB + PROCESS + 63 + 169 + 245 + + + R=122 G=201 B=67 + RGB + PROCESS + 122 + 201 + 67 + + + R=255 G=147 B=30 + RGB + PROCESS + 255 + 147 + 30 + + + R=255 G=29 B=37 + RGB + PROCESS + 255 + 29 + 37 + + + R=255 G=123 B=172 + RGB + PROCESS + 255 + 123 + 172 + + + R=189 G=204 B=212 + RGB + PROCESS + 189 + 204 + 212 + + + + + + + Adobe PDF library 10.01 + + + + + + + + + + + + + + + + + + + + + + + + + endstream endobj 3 0 obj <> endobj 9 0 obj <>/Resources<>/ExtGState<>/Font<>/ProcSet[/PDF/Text]/Properties<>/XObject<>>>/Thumb 106 0 R/TrimBox[0.0 0.0 1035.0 343.97]/Type/Page>> endobj 94 0 obj <>stream +HWnH+(!`^V#A 8uJm_=,IPN{CQE`_`$ p繂~aYb]LqK ;~n%UoԳ> endobj 106 0 obj <>stream +8;Z]!6&ri*$q560OA1->]P?oPI=*->1H#f[:1tQB*GIu#h0f-9qgfA+`c#+=Bpqe! +VjMr]ric\9mp*JA%i@8$BE'ob:N#E5V4Hk*C#/!k]mSjY`pCnFE1cf+nc$4EmJO!p +H"YB.mTQ6*YI2\Eoj)OJOdWHEK\>i?,2]bJ+87K'2P+0Qit3L#oF?9kk(H5N +$[@:HBk34oW%:3TK1I%,\K-94+0N,3k'j%M8keZK'p7Q:bB8?&aAqW%A0"`D[>G_D +'OBNt99qI(3369q0eMC5]d(Z\[Oh0$`(o37rn`'=DUA`6Fl?l&?(S]YcT0?j/pG:j +#G:\;aTWHF?Jq&0N^HR?Y9[c/_T@);mZr2=21j)s8t24Zgs;C;-`3h,1+3#(]9UG$ +J,PB'1B9ObQ!O~> endstream endobj 108 0 obj [/Indexed/DeviceRGB 255 109 0 R] endobj 109 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> endstream endobj 100 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 cs 0.231 0.349 0.596 scn +/GS0 gs +q 1 0 0 1 179.6815 99.1855 cm +0 0 m +-1.667 -1.302 l +-93.062 -13.128 l +-93.047 13.21 l +-1.671 1.307 l +h +f +Q + endstream endobj 101 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 cs 0.231 0.349 0.596 scn +/GS0 gs +q 1 0 0 1 329.6815 99.1855 cm +0 0 m +-1.667 -1.302 l +-93.062 -13.128 l +-93.047 13.21 l +-1.671 1.307 l +h +f +Q + endstream endobj 102 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 cs 0.231 0.349 0.596 scn +/GS0 gs +q 1 0 0 1 479.6815 99.1444 cm +0 0 m +-1.667 -1.302 l +-93.062 -13.128 l +-93.047 13.21 l +-1.671 1.307 l +h +f +Q + endstream endobj 103 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 cs 0.231 0.349 0.596 scn +/GS0 gs +q 1 0 0 1 629.6815 99.1855 cm +0 0 m +-1.667 -1.302 l +-93.062 -13.128 l +-93.047 13.21 l +-1.671 1.307 l +h +f +Q + endstream endobj 104 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 cs 0.231 0.349 0.596 scn +/GS0 gs +q 1 0 0 1 779.6815 99.1034 cm +0 0 m +-1.667 -1.302 l +-93.062 -13.128 l +-93.047 13.21 l +-1.671 1.307 l +h +f +Q + endstream endobj 105 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 cs 0.231 0.349 0.596 scn +/GS0 gs +q 1 0 0 1 929.6815 99.0623 cm +0 0 m +-1.667 -1.302 l +-93.062 -13.128 l +-93.047 13.21 l +-1.671 1.307 l +h +f +Q + endstream endobj 115 0 obj <> endobj 98 0 obj <> endobj 97 0 obj [/ICCBased 116 0 R] endobj 116 0 obj <>stream +HyTSwoɞc [5laQIBHADED2mtFOE.c}08׎8GNg9w߽'0 ֠Jb  + 2y.-;!KZ ^i"L0- @8(r;q7Ly&Qq4j|9 +V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'Kt;\ ӥ$պFZUn(4T%)뫔0C&Zi8bxEB;Pӓ̹A om?W= +x-[0}y)7ta>jT7@tܛ`q2ʀ&6ZLĄ?_yxg)˔zçLU*uSkSeO4?׸c. R ߁-25 S>ӣVd`rn~Y&+`;A4 A9=-tl`;~p Gp| [`L`< "A YA+Cb(R,*T2B- +ꇆnQt}MA0alSx k&^>0|>_',G!"F$H:R!zFQd?r 9\A&G rQ hE]a4zBgE#H *B=0HIpp0MxJ$D1D, VĭKĻYdE"EI2EBGt4MzNr!YK ?%_&#(0J:EAiQ(()ӔWT6U@P+!~mD eԴ!hӦh/']B/ҏӿ?a0nhF!X8܌kc&5S6lIa2cKMA!E#ƒdV(kel }}Cq9 +N')].uJr + wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó ti zf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4 +n3ܣkGݯz=[==<=GTB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY .=b?SƕƩȺy چ k5%4m7lqlioZlG+Zz͹mzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś nLl<9O[$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! +zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km endstream endobj 114 0 obj <> endobj 113 0 obj <> endobj 112 0 obj <> endobj 111 0 obj <> endobj 110 0 obj <> endobj 92 0 obj <> endobj 117 0 obj [/View/Design] endobj 118 0 obj <>>> endobj 90 0 obj <> endobj 91 0 obj <> endobj 120 0 obj <> endobj 121 0 obj <>stream +HVgP]s"DywآXb"' + * {Q+vE&k&07>|+Zkq(`u +i0||= 1 #cK;3{DĘ-;wȨY&@Y8V&/jl|RrxPaAܘz"}%5ё%1c~i@˲b#Ayϋ}ݝ}ﹳ_;;sPdO7@p hTY#=]oIL4ЧVf:@Wݧ'PU%ec*G=`e؟8+r%u7܃$Nyyͼ3Ǐ!zR[n}P_y'}W?4/3_20̿F7` 2>1{)q3_g X%n`Yc:CC+ZCbUV5b5[k[#Cղϕ˅+)4)MXII(nTYU,꨺(XM.,s +0`"UHE7G=t^WMzgE}]tJes#ذF,S^q6r|(4-` f.,6¢V,Ja‚ !㉣qC {NpA)Jڵ鮣(m2ٵ&T!oo2. dp/(~Z\E_\)~2s}՝%2$6lt[Sɝlmmmmml-m-lm\ $,Ք\V$m3J$2_ި2+Qҳ& ir?O75J4ƻZѯJAKMv{N#^Os $Kska%9[;eTk +ݙt|~\vRJ~ ~K B||5HLR,a>:単˘%xX/0Gx_'p 0 Ñ(D4# gġO;F ,GF!#bq10"qD8$a<&1 1>d*kptv"&M& ON^-^ ʐ}B"<D)Y(TR5bHzj7\TjSN3xգ0JӨ!515J9ԊZSjK=6@i&͢z:SJ/PvSES MYWjf9j.Q̼w" +".5!O*?rԈ0^(TS|Z 3wZ+wC{hO{܋{^ڛr?x >ڗʑ<2ڏ8cx.9G*>8}с<'Gcy%#jmuljGDNm'N]OeOm.#~$N4[fx|,IS_ag\ XpqX!Ji ֪jPN}b vѹ;-va7`/a?2q@vW;.ޖ%v3.A_ٸ ʼ$f.D\L?` ?f_L(7&p[Ngڃ]Eި{YA;Q w!S0aj-0Ĵ>L;6m$.iIaZTShgGUԤ>~v4?e~6tW"=ݡ}qN _ }g# A«]H8߅=$ݑ@+z 0'lnv߃؏tC:zr@?$ NBTyH ̷U1W:Fw:A'3tޣsJ]KLW*5N7}I7M$ЭN$}$|Dw">.S L, +Gߑ}/v"AzM $qx:x ' N$NN4N Cx(lXaYMTAb58OJJ'Р@'|ʴE,N8G-zQ.oS=M4@y4S$z'̤:z} *FPB "=n O Ѭ'&pQv eb7;,[!i`jBRx4ц(/TW0&J&!:7ẍ́%Z^{(Ux*46Dכi 3(}[JR~8ch62[ ♩@>) 7#(&tD^]HN^-+CGvdM6dω4M)4 Xsv0H^O>.Kfոliˆ ͧ!{Ah٫*IW(΅G%{#Mɭ'>c&?w~oa9lA#v&N;lڽ F-;m":r+ڡE,H צ!ȷȳCox&5w_|GKvx\$ϓw*qbeR슚~3<1DxQ&|аqFQc3~h'z`4LdV *d 3?XwQ?mw-!BT9¢"X4ȋlF.2 q4w`vEM[TtU8UCE ȇe8 +^]~?3y o\W28<ң,) H;P(#Iwv]'?$E^+?/F>2@U2\Y|M */(nIԄ(ݦf66ٶ^|vo/j,^Agsn/DFl _@VXJDb1g y-s8p^k@zqTE ȈCqo9e}ٮcFr:rG9L{28#=-5%9)qPmRdI80~S%3^S¨]>蘉ʌ%[3]z罞gg#OզY㝎=]{:^*Q?|rw K,@-FƪX[rs|:͕Ε2ssq4D=:|RrNI\aXGqHĔx|!2B=x4^s`"ێ~/}jP ,j%-gZW,T}0} +z˗u[M ْABujKcDG1U-t!ȏ8+KS\Uttͤ9`02 +[qD WDHX !-j5{95;ȟN*q:;3ݱ= ڞ=xnIXRhG- j( ¶F+$EJW,-B44t5 Ei%7IKPx/6RG~}rSw[3\6oo]_l.9_ݟcx3^;>0ڑّwF4a +0$ ?baF${Ũwf %!ffœ`BzvL;s͎e2`0( 2(9֙>KJ=% ?\+' +}˗Riffw$_'JTt/"Fwm UO9lЁtV +\_F~b\?g\}.QjoUՅ_>Cc7(hb>9-:fK=zeYa=~ү[Dl1f3.u$j~hk I'B8r1׎]pМ.B(.@.\|.'p ך804IOIO*;x]FO@9 l xTjq`jÒET^J#)6 9@TvqkPp:bnt2}{2ĉ(E^i&¸v!3@%A +\AfHC.seQ !ӥjnsLV3UU !nꃈ/L V+Ś"W Ƿ#%X؅*|u6,b!-[%LtݲE3Rɾ/űu`=-x];oOx|~wxCUb%87xp>x\#)QՔ 3\7feSҩAJME>j> SN$|eM;QkO ]!TYAJRY 2X@$^,P 9hz'sm)9EsxPts˟ؿܹ0ѷՇ+)NSEN˹fՏ +gf/oJsHgh %,{+^夜.3 B{Eh +H=曲i +&I $ IMCNى16INR!7IV2(XKHսK+J0mаjڻA=GFabvf 1ԛª"MK-E dCX~qJufЧp.\X0Pn1- UTVo݊:e'EcyA4*l ζMn ԕw]=j=ks ?;8oQ@QTDH2ӑ|&bj4V5G3cSm ]LFSx)͂T@nK&!^Uh蔠V| X +J|J݈*?2R_\!h8ϦvӥIk @aAXװ9)@.u?2=;zw{501y%DYk,޸n}ӁGs~1kc/l< Dޯ[ÈGg:hvȲSЫH,&sZ(٬# +9]HP 5mPjpVTb3Tޡv2짣OQ~G6gch# +sg*Vޗð ߺ6`#-۹vV=n~ 1p GId4y[J#|NW3ѥMkИPy={ ڴ$ן[^]Ӻ|[k4fcm 4NJΟ895L%‰14w:}_C^۷78q쇞qk>IĂjj=4F),Vy8b/ ϒpm_UW߷aW& ؉hqJ,ӫ# i+.|XZ`BBEp0j7Ȓڐιu-4c5sceL71c};}޷%_y9y9w _q*_v3:y>Pd@!p4c؂{ eZ洪KooMyiv6\ubݲBqڬIF @<{mjt3bxTd6SaF\]T+dv9w8;Uf]2gZR`V3O-1!_5͡w I ړ@jF_,}4R9*g982d%]M!2з Vsn$wޝG˃ + D@ d] "weoow|U#gX~ѣߦ*7ǬJ`:p [k톳c:_%,m L}^d U(k^zTl _Cc*o}໾N }os:-)r$N)k:M{ 6f^s}TRK»y5* ֏o5žyD{}_; a:Sib#vrǩ17 >Ӂ!v^w?N o1݂7S.mojs nv_Tt7|r d8gs!<| dz>m_77AwWrq^3z&DK:RQ9 ~wh33=w0/6BnkW,Jl7Ҽi&$K^P5ԐzyQp}]:~qrNaOфT9:GTT+dz & t uYt9ht#wKm:neݢ6x%#G;Iq3,dȽ,c~yG`r89^l' F}1u]3@[Dw^zRUy}ۓtۯi4{ߔL{~mMusMVɿ@= kiOj7 &ЙIm?; i;rzhsug=#'OHᄃGhP$ru.1vRz2syU0t"q<$9ita|sU莠ߜ/]v9-Sl1|T>RW\ȹueѥUw"5sȚ/{gNhq7bJ35Aj4C-FsB8sm1/i_c>k-%y~񠨜ΕJ9]sm*u)jP9J>ns)u&E]_Tו164ڝ.TNgjP3yQ R}~0o7E~G5@H}vgF0@K_ "I8OS PP{R׽ܗ oS@ !9̽ +\(64h[J"3 }73(|sBew8{LT#)t1aي؄ +oCJ;դBr)k; }qMT0(ɘnA F҈)"GYL@s0jQsw;N÷3[C@3~72tR7 +2,a|Տ)QW$>pc8b ,»EpnS ~;ה>zϘflN3X =C7 }C7 }CA46rEȤyz$G)+V>oϛX]yF۔J/h/iEh"yӼAϛb ӼEÍ?=˘,5T[f4jޣׄ=b28y=׼Kx 5}{2q)օtnMhoMoB[S]7(*^ _T +TDe&8/M9Y$'GCIx'-Ԉ?Oi)s*Cܛ'75\bY0ep0uv޼1-Ov\ $l>܀-F|0R#x0"G[͇|᠓Kbx{ZEHto%n(I-'7u- L rs<6#ۗ95Kݗwyc֍f)+"arJ;ho_3lߝ7g:" !H=!Y?KlEv^;߻{ֻцm]j.ށrJSi44t4zם׵GJ閁]>V"V4[a7YN{<7 Ռ(((vCq@IBiVʣ** +/QuPP M-1heiFġ-ٖ;ض:3Un^>xa#x6$d.I1Ȏ,ŪXOH&O`հax +1#1 +O<g9< I)V阁he6W^xoa>c!;x}"|hp1c|s,r|au+ދXiyVc bc6b6c b; `/a? 0~zqIi:{p?p" \e\U\uܰBLd.ü,,,¢X%XXe,˱<+"+2*:k05Y^F6.>!1)9[%c؊l6c[c{v`GvbgvaW>n^>|a#|g]d"d0 sCL 3|C$)(>g8c,r9> I)i|/r:gp&g%ٜùW*_|o-.|=#.~O3~e\/%\k븞]{yy#(8O$O4'97^?'xWxx7QGٔ](UN}ʭ<ʫ|ʯ*B*"*ULUB%UJUFʪʫ**TSUjꪞ꫁ce5l5<5jRZV^QY]UzzCzX}ci W$)Y) +(RVI SQzZhY8sz^4Q4YS4U^tLKzY5Gs5OU[Z{z_h>GZ%Xh>g\˴\_K}B+Vihi6h6ihi}S[?hjGQqIiO:s:~ouQO.鲮誮nc<&n19̽&e3M3MS2MSo⦄)iJҦqLYSΔ7LEST6ULUST75Lij6MS3M42M43M ĘV&ִ6mLikڙh:Φj0Lw4LoKuU6n,7c'͵}e+k_ I9TlV"K>A.133S]I73(MM48Oh"IL JL-4)JmR4)K ,&SuRM4 Ih6͡4ZHh1- +ZIh5Hh3mIh7.. +nnzz zzz^z^ zޢzޣ>> ~~H{B#JPn^荽Q>b?q @qa8GHq q8'DIr2N8 8glq}9纗RS8Q!b3 Q<ԡ h(F`,a<&`"$4#$d 4 *2Р#I0`‚vLF:х)iY9yXEX%XeXXUX5XuX ؈M،-؊m؎؉]؍=8B\q .eWJ\q u7F܄q nmwN܅q}A<cxOI< sx/E +^kxoM{xC| >g_K| w?G ~oO⽸!s91.Rݹ^ܛ2@>CP>#H>cX>D'q?>O|g?>s9\qĕ=Ǒo +48{f9{Yc.;M +n4-Ŷ_nkxtw8hs]~'t9 * A +(hkXRߩ3@b/zg \gĒlȦb +v!d`nn8>TfꪒMURzlRVSRʐ6 +*#Ɋ4H"['oH#*+,/s.Wi dKJI0VȪdz"I<ѐU"'htծ.<|X]9|a}/Nz IǗ()'67_)l7f>o` Z>am\Rh(kcaΖ+TTZmsC)%AπygᜡYlcws +|/8w-w~ȋw3c)FSf;uN{T+/dpb2 m[C乁Cj1oβ2>[_S;x/& ?yw *^=Mՙ‹wb&=|H +m_(~aܽ[kkhoozGh/id#cB mȋ#D +BNR{IjkNMpj>&#0ZuZ.֎?Wrc}? DL=PGOe7h9ہbD TH49\zUWWuWV V|r:,>|6c¸I+2&fJS, %1 xw4߀V.RAf{MU4j5ɦ0|('>d7jRS1MqlLW M5J/%L%(CZ]?hHPא+A?<_b>O'.Bq8D\z0ty /ۓޢPNjSjm0Fʛ#0:6l]+h{ԼMl9}崿y "Ad v*"[{OUĮ-?&l2kdY$f=ٓܓPDU~ԿO%4GuD~r~*vm'qj<;&u3lkN + MO:)^dqø:N3U~疍uٵ<6;X׋xg&ގecY=%7FN(kkF&VK' +Tmk;{cܕwjrjn Ҳ׮jQJλ\|wE%t?c/-^!h/e|x붷DZ])sQvÏq!Ɵ?_&[EN^$/]Mc}mOi.2nO]bifwmbv<3vW7ZNΆf;cN seZ/ݻ.;KkC2ݮšP?/UC+VSWo'嵩}ɧkkgݛ9̇>/.eB9d]K/ !7}vν]=ՠb%uTE8)5>AvC=8=&!ci;.=4Un&sgecU;i`3d뙽/c,z ' %*EU[~(JʪjX-$׊LGTeeM.4eij);G FpE4QhE4Q葝? ˡjjަF j^~žck:3k/`2쐿j͛ ӌsepIZ*Pj%aD>H"%EiWdU3#JH 9s &d فB r}9:௃:௃:ૃ7 o ~_kka~ ̯ &o &o &o &o[o[kZkmo#~ۈF6i#~;;Aw ~;O<̧o뀿 . . . .{끯z끯z끯z%|o탿>>>>o~ -[o~ -[xwx"7D! oxC"Fgb㨮𽷋g<^ K~A 4$މw7̚Ulq!KmmZqC~@x@1} Id]+$) Ck +U<$@C_Ù37ޙ;t7;|x?ϕfdYsΖzYfJJJ}wNnN^N^N^NzLǛBcFooXrO-'(VsFL KM>bl4Op?ʥ6ʪGOT"T[=bRcuqƚVT +qV ߋjp{uy4S-W˼FB*^Z-\m8cu㫫@ܿ5D [Kjy&`뱙00VT gp5Gr<@l ѡr(b嫭GMxSuJxUYsJj3ǛAǛZ7k8TorYx+xk [Zj8RorUVVVm[A[5ooopv` +` ٸ=Ly~ aaB!t:~P5r\'l.1WdWR6f=<& @`h<@` +vIiF^0{Ayu`g44] ";LPN&MRROщ6cl'%Ġ+q9ru7u_d|t݈2b|!(Y〗s18YOMҋi`}?v7 &ee0ܸq/oRsנ_ uI.淒+ſ~3 %2DoI.$ZJ%e~ԟe>ڋ{?.读V!<ߛ'}|R|Oȳe 7Ns xG=ٟ{9tɇ'yq mnN7M=y=Flz&]g5fg4{f?ٿ쭚Abz}uzDgeB(E]s̝a037; y`gaqI0fnyŭ^b3ըw{MIrwؤdx& t\;B+PG<>Ӳy{.SczZիt/W5T6h8!/^k endstream endobj 119 0 obj <> endobj 122 0 obj <>stream +HVyt~*"7}j I&[KivڢZ5(-=dN;39=9sOs~wy<4*%0 ṎuNx@c$xF4sHؽ.0CXn`3_7?4`3,Fѭ$c8l0ˆ͸k<4BƢuŰ6bXD B|s^\ g*+i"QetM6d:\: X +8䞣ck9ҁ'XPx{H)<*Cy;*!α&o=7K7]#ZJ/sj^ٸXxyXƒeXXG01(pR~M4N'd`pjq q0 CXHHB2Fc n!0ac;V_Sq1i2y!_B8 Th +B<d0R%LU(\ũ*U8Kը:ՠ4M4&S]GoP}\5j@ )fPjJD9ԊZSl&jKhMHz:PGD ϑ;vR4P, u-S=45]P3,E)y'9\E\eph$%fEa:"61:[+^vL|L!&n̓T=Pޔ@J)|T*͓U0J3EK2)_STIUJ:sŻy~>|>,>*S#"x8A ĝ3wK{s7~܃Ѿ܋{ss??Ńx.8c8:x Ks"I_=ùl^5cv`"+|vUڅm[qS3L+[!Ky$/H/vnB/>^/>(@yB0J# ʢPGpf`E%TFUTE5TG kڈ먃7P M-m&#o:: ;.o.=D/FpK| Z< V'&}m']Nu"'/N]T=EGHh,9+3_YGSq%`?,Uű HZ5ŗ9[uqš2\ķ>Eyn؁؅؃>9r·pX\x[8N]gq3e(8G9}^q3 R&| 2ԿLpb_5@Q]WeET?}/OaW@QA\a%?]knXqjR MB$c6i&4񩴳$4کĘߪIAfL;pfy{9y>Qe\H5QN@hTfw#"/F™$pv HoEC@Z9 g$c('h1&EaNHYÜpH/CIUVߑqW$qޡ#.GG}:Fq:AI:E st."]MG1}B t t5F ~$ nR/EH\"[ vz'Q\wqObd%;%Æ0%0U"x%|G E&n?J"gOqz[ιqq&>ڑv Ǐ"V8Ji9=Dt`IYH? B-+gŧ:ϤKGj#uuD~W[mzQ`S k _ ,]M}4vs7 +"ofޭg9I~:r92 +Vn^ Y Zw\B4K8,NZaxFD*٥|^iaiYgy޲˺(0*WoaZ?ͯf>M[|"voB1R< +Ĭ ]<~\FzZj#yI#G$bI81W-ZV@ \F_ b 8h *u&e+XjJwt{`%bVr^UQ0-_C ꗵn]e7/^GG( {u !oun,48Cʂx+Zj)ǜ2:fIS˩QYzRmdn{2.aoѰmS6 +iBЯGbz:>m&5Y5DlCr Ө5´=zzkdͦ |vSjXog;츜 +gʲgE߹jpeX,/ (Fϫ?51n1Z*}a fn` O1py]6h ODWR 1RDvoTՄ:`FbJ^O[8QiS`sfö;a"MDs^7XJ :b + +O?ܣ#=z|QPM+ >Yعp`,S9q^R.wtK/k\2Fv/3#Fkzzkc]VL8diWSxt24i"88)D_ƌ͘8efΟ焾Cyҥ:sl3'^)YuZy82c4/0x#žo_  Z?$^ANx! -"`HjnL$>I(06jǛ6lj17+ny da<0#˄=_I͞#^35׭&@kDZXX4~q]R Z +HI6JoH|޴l[%$ݑH8"0hgqH@1⣋% ޟQ:%’%CI:DnfLqs~eBWBP ,"UDEDEoBuiVbUEIa*Eb,ds=12{<"{BL*VT Zdn)z6ͦ%9iԓLeͦ/2ZW.5v_ +p TpU,OdZ * G ۻl#%ۛh&[]7lri+ʞg}Y#0yMɒLTEvp12á:ڬn14%̦*^+N Bz0Tt+,UyՓ9t7`E'E'Q~=?<^Cb@ S+1~Y|ofoo6J3?RRQjvƶNbW}he8|Lj$x/ ݛMfgWJxMdc&"lDqn2,ZB'I ]o 8mU$[dC@5_gg0#3X=WfKh3Ic.4F=|t%{k%5>~h϶ACNJkJ^@GT|ЊslأkLf6sc>Sp:[)ꍂn J:\6`nJt[J8fJΝLVZEh+"e\T"x<`޸+,OX 5 /mTf9-/ )9t֡OF/&D_\R#{#cJ˧.&;?ϝgپ}>;N5G!E e(/JYӊN݊OLeJ6:0M[QRR)lCiis'OΊCk9^Рn: ѶhKEDvѢlTkƏĆZ'VtȥR>`Ix"/{+pqQ)4%ɭ)=֟6 KGs}/*KJ7_au3) ?װ|ȱ,9ix|~qu}zf56JV- rA{ BޑCmWA{*'uVx<قrӅ>ܥatQ9à\=}/4zY/b.:j"U.4+w*Z([|$Y|tC7BqD$LDX;Zu.7ٚh$c/fi)Fg3Z(Bq R-'w]m׀&-^E4SO){Ǚk۟+v3V8+cyǮe3V$dH\Z +X>.G2T3+8-"rNNDWSy2!1/:Tuł&ɩF hf$jRaL |b֖Z0 #&r Ӛ8ķ=۾ܫ.cpQSMX؊|0,bΆ(4|Ei!QD[X`㐒8/}_Fm im#v>9MܥpQ(#9Ԫ^ [,ҩQ"-;FtsfL zt)G xj,jHva0(5(jvH[~Pwڬrn*|S"mT|U;-2߁NCFy`F.7ExVtK+(ֈ(°pTS#^F):ȵf~CW؎)1$LDYҪ +yU+* `+VdcqD Qt$,!5h7Qj$Vl{`.& 'w3m91gr:%;ї~^{B.vR{~?;sqKb\<]'1\^nהYʥ])CwA炰- C vcF{84^WE6MCA<u. +8kZ8< ٤S6boJ״h"5_@^jDD|1e邚*L]6`)f(Qzڛ-59'gZOdHMq +c &oYI%':X&4rjRy,'pB,{{-Iq30rP[^@(ȶp>۫_gIaJGrYILY ?cX7ʂV J Liv6km 9$ݑvN/ GjraܮAt[]{2wnCѥ\!(mG2aB2N@4 +y.MGc3k%|X 2 ^ OO!CpS#/x+["jeMD[ƧIαç%MKM&Ø +z$Pd$S)*.?#ۛ]hd7+s 87GX[׸; +|ۼ*ZGWF.Ԍ1 -YOpHAʄO .K}a/-¶z2J,To9uI ~("B͡$FX@9+$qsM8_,@SF"iz]$*mkniB.^ +S*`P +44rد8*|fvvnw뵝w/y`$$MHH! B+ȴRD)UQeu Ti1Q^MQ +nJ,5-j{Ν;z~{w}{)IMsUXjx^ +ߟ~gV jӊl7T[BI/O\ء|-]-[c囔tonMٲJNl T-[Vjl=ɎPͻ+K̪%مisv' ee'_iց%BG _ ?MO+!˴l;[rx0vWbJU 2a]W6f\FOĕxMӹ]<4BsAL:_zbCZdw.kUTjEn]i^84(UWO* ɑDCŪQ+@9ݴgrSjm!Y$xE3Mڋw!$GwV(~F^~<}%}U>/h+D:섄\;`WFºXpFx7l\?^cy !;=9ߤ[a v?x \E< ?p]Qڸ>흗q8AM3Z| man0-l.Qq`vs_t0rh\]5XU6ƶ1,mjbNm>eY}]v.BF6{L/:%j¾q'#as,Zgp8c;=Iΰo82. ~!{ܳGyl h'z͵5,&st*gׁ @d\T`/Mj?4-07 đa: }G;<6Է#9Nbx.)kXö˶hUƱ.K,]7ubLBqZ +}}Szs1ք\"E?^ FfY)xZ 9fF0g(*Tqa!+(6Gx36aR *wUs\$NKEkVǽ1G vIܸ8͓{8 زr#JwBm&)jFpa%Em+L pn}<yKzϋ:q.z>s _༬64#>*3cB=-bTyꗦ}&f D,iyqQzx/Oq̡6)3O-7 k|G9/fgGRoDsOmΕ\fbԯ-lC9s93#~McE}\ 9{c;ݼ*kgG_Fe{Sȏp.1p='}99qY(ySY[[3dO9~ػ^_2x|؟sLBuxˈeÖ/ڰ54*%92׶;SZ|K_Z/:yoE,Uİ^ɘ9 +a/R䳱L@7΄kq~GkX9F eYIԘ3q.޻y/PG-Mي,}Ƶg<n|?{sg>{u;d k|c('gL\sSr9 hkg9ESIgy%ϓ0pn0urΘ|F>ΐC漳5 p$\P{^nZb6L }3$1{sZ<y ysډ1;1f'd)|pf.籎110o:+x!z/C{n|RӀ gHb50۷]Jv < IƜ6.9 ao ؉ |Aoomk' +ll3Y1g0|u.ȇ{o|9W|{Ps90?}I>ǣ>cs3L$j> Y4cPeɭ˚G;Hb1q.MX yh*;Uɣe*iqk4Ž}Ebut.e9\ک2N9:W.X+E׊)pU^=ʅ>cF9c,\*lپ@i2퀱0ۗeLZySY`Bph 6u28eXY@xϚpZmT7qRhm s+:]y){}}xؗ AEBȀH7E"]`#C&-,b!,6Rw ˱+Va9>ealć[1N§ >!1|85NN9\%\Ʒ3~ W; *͙",cq`IbiaYcyV`EVM*jN5x3oaMx;k6.1ـnzؘؐMؔ͘d6g d+le;ɻ؞ؙؑ^>.n^؇}ُ  LfAl`9|!bÌpa89c9s<>ɉ|Os +r೜Y?:n[1N >!1~<5OOYy^E^e~=?xɿ7 +8ū +*AT\%TRTZeTVT^TQt*R ݬ[TS6ݮZ:zJT}5[5T#5V5U3%)Y1U-Zy o5RVtR{nuPGuRgݣ{tzzPU?׃zH^ P2dk2%iW@Aa"GjkF1hX'4AOj&iӚzF3fjf9=9^&mm6}D;S>BG{Ou@uHuDGuL_N+}:FgtVt^tQtY;}~ +l  xm$mSH@!EV5V233133333]dɩ}HoHSӎ3s KˎQU@pjHB2Rꨁڨhhhh-m]=}00Cp5b# # db$Fa40c1㑍LD"($LLE!a:f`&fa6/TÇhR# Pˆ\Ccbc bcVbVc bc6b6c bcvbvcbN\p=n 7܊p; w܋p?x<8x +O<<^x /:x o>>|9 +_|=~ ?; iYy\E\e*JAR褋nVcTVg d-fe=g6d#6f6e3s#Ҝ-ؚؒmؖ؞ؙؑ]ؕ؝=J/fe? s28itf0#Mhfqf'p"s|p's +8388 +街*c 5a)u`e,gaFhp.籂 K˹+k빁[۹;{yyyGyy'y u7Fěy omwNŻy}A>ćc|OI>ŧ s|/Eė +_k|oMŷ{|C~ď ?g_K~ů w?Gğ oOſO4,WI e !r a2\dKdH%%KX'%[rdL\ɓ|)I2YT)i2]fL%E"WT)&sTtK@R&DĐ2O*d,HY*dJVY+dlI6*d쐝Kv+drH9*东)A-7}VP(SBMѽZqqN ~=F-Qc54%duň-g;dMJk"Ϟkp\w̷ܑG,h"њ53Ģ1b/2#r*mbry }~\w1.DRar 54[Cqad@\*uᔬ~|%(K3AY?:Q3yEu>hqsN?7:?3:f,Ejt~Zl#LOe$<96_jCC-|k(|q(6恸 q)0bw -b47b'|,cTc-ws^0aqȢ2g_Q|>s G1DqK'_0!= +mX !| Y{|aՀpv9邼,yǁUq$ES^D@==hd헽۷ݗ2Ts_\>չz˳U*WWyWVd;Cqr{Wϫ7JUƒcK~\BsGx4 +^ +n(G86jX[ȵ~Yu+gBʡ9"eus#0sYԜ}{D#]@{d\ہEԡdԙ"k{eQsB\cN`\_\2²_Өjt5 +]Vk]@.cc渼;D%r\ 2Ǖ#ȅF-ৱ(-yZ lkWRWYbw42w82YLٙvר;l-וnZ̦ M7ي={MpJz$Jd8Zse}nQ#y|2\GDFhoftX*5/ '79D_ie]gKu@+Cuͻu]#Ր*[߱4?}>53!\}XL!`I.Wר=P,m!fP1BV!c|osܰVŠ1xԪ:*<UMvMvU]wGU6W#y8g'm³6Ys;koG|GD9VIRTpĚFuXC~~¶8Y-J ggJC&D~B/G*@Ʒ05pk\Ԋu掟zQ~4ޚIx[ UYHo7N|6a ˅gؓUmsO, +tAV]*q/H!g9T3_.,Ob,yW< +МdZ(q}0/|qӅğ+n,89ϖz @9 +\Og_eUȊ4ǯ6sZtK;osl;5̨slzG6wzkd˛IyY?!;멡O8`jt!JX[RWb kڼG|y>h/?|[_fR}|Rɋ3%]~ BK$؍?u+orW(jueQ~I翶`h-XbZQC ^ق-"AEREE^VBaS8>SFlct;.AbO]z99vy廼ʭQ=9A*h%Uț!Y}ipSs&dP9 eSFrFy9 eSFRFy)'2^#<2CռM> jNwan9\B?1ONHt0u717XMo^(:s|Z$Qt:yTZֈ:7{cj<} ճ.>@~ A^} 3؇;;;;:: 0.̯   :̯ AAAAAAAAC>C>C>C>C>C>09-8:\.MⵝB3M}s{ѽ;*λwsb%4G{Mk )hbPƢQC6mtIK^"x@ #HU!ffgZBXo~o͆. +*諠 +*諠yTpx*G +O~g~g~g~g^xYe^xYe^xYeyps?s?s?s?|:uׁ_|:uׁ_ / -p -"AzE+^W"Aπ~ } 5@]t 5@=s z&Я }M7A}sC.n tK[@z%+^خ7 ~i"4v˛{uve}ڻgpV{nB ]W؏rG n1*֞.֫=b Pˣ7uB㺅5+Bba!v{񼨎֚ZSFBۨ 7卵^d͕V /_{Kj=pݾt/_ϛ no0TC! +gh ހbTo 5{@97 oޥŀZ1*ֺږtx=zuz[--o o8o9 +qwsxx+VV㭠㧃}6 \APB{#ހӢ{ײpu| ,l}j Q;[/:ѓOĪ`ˬXEx/[DϪǪoy}ω1[fE)zMk&zhH +'20J1.>"|OB+1҆OD46:2hudӧ#چޥOҧz3>6K*}J/FYB14G#s42G#s4Ejs b J]J4"vSw_w8~D8K#G2hqqOqj\~)._A4qX똔0)'I˓Q4H۴ArsP~{P~qP>?( T=-^][P_.*_/&W;W:ފ +}~cD!z~ 0T!zQLOt%"l~|~|xeNtwkuFI|Ih֩#QdHl>_針;DߍBI ?<=|09Cth&f$)d3J#'hFq_:i}1|*F>VΐügƇL.c5#eizOOMLeMCҌh $3@&\e16?g]'_!$ɱr|Ʌ&F!zMpeOX;LM2Gbء؃/cKڥ$IQ~oߴ!j5Ŧ(+F:03F_&^WzϏۓߝ+! Ǐ?cq#?ş-|M3t}jNAcff߸&k֛4QKޥ[ \%hȸ*l:%ʪ|۲M*t&m )|Ym h$|$̷\ޞd[ w;OR(|Nxߩ6B4ݒO-4HJ)7=ӳtM_wi:Kfm<1`gOKX"no;tSϰZ Ҁo̮WYzvhUr gV5?ҕyZd_ k I,X&c-q;Y?RX {ܹc+H=ԓ endstream endobj 99 0 obj <> endobj 96 0 obj <> endobj 123 0 obj <> endobj 124 0 obj <>stream +%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 17.0 %%AI8_CreatorVersion: 19.2.0 %%For: (Matt Cooper) () %%Title: (New Figure 1 – Deep Multiscale Video Prediction Beyond Mean Square Error.ai) %%CreationDate: 6/30/16 6:22 PM %%Canvassize: 16383 %%BoundingBox: 36 -259 1032 46 %%HiResBoundingBox: 36.6976744186031 -258.1484375 1031.6976744186 45.81787109375 %%DocumentProcessColors: Cyan Magenta Yellow Black %AI5_FileFormat 13.0 %AI12_BuildNumber: 111 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%RGBProcessColor: 0 0 0 ([Registration]) %AI3_Cropmarks: 16.6976744186031 -278.150283203126 1051.6976744186 65.8197167968747 %AI3_TemplateBox: 500.5 -150.5 500.5 -150.5 %AI3_TileBox: 156.197674418603 -394.165283203125 890.197674418603 181.834716796875 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 6 %AI9_ColorModel: 1 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 1 %AI17_Begin_Content_if_version_gt:17 1 %AI9_OpenToView: -79.372138743558 239.311175708931 1.42084616621394 1928 1166 18 0 0 -7 1238 0 0 0 1 1 0 1 1 0 1 %AI17_Alternate_Content %AI9_OpenToView: -79.372138743558 239.311175708931 1.42084616621394 1928 1166 18 0 0 -7 1238 0 0 0 1 1 0 1 1 0 1 %AI17_End_Versioned_Content %AI5_OpenViewLayers: 7 %%PageOrigin:100 -450 %AI7_GridSettings: 72 8 72 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 %AI9_Flatten: 1 %AI12_CMSettings: 00.MS %%EndComments endstream endobj 125 0 obj <>stream +%%BoundingBox: 36 -259 1032 46 %%HiResBoundingBox: 36.6976744186031 -258.1484375 1031.6976744186 45.81787109375 %AI7_Thumbnail: 128 40 8 %%BeginData: 6320 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C45FFFFFF7D7DA8A87DA8FD30FFA852A8A87DA8A8FF7D7D7DA8A8FD31 %FF7DA87DA8A8A8FD06FFA8272727F852FD30FFA82727F82727275252F852 %F8F8A8FD2FFF7D7D27F82727F8A8FD07FF7DA8A8FD31FFA8FFFFA8A8FFA8 %FFA8FFA87DA8FD31FFA8FFA8A8A8FD14FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FD0BFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD16FF7D7DFD13FFA8A8FD13FF7DFD13 %FF7DA8FD10FFA8A8FD10FF7DA8FD0EFFA8FD047DFD09FF7D52FD13FF52A8 %FD12FF7D52FD13FF7D7DFD10FF527DFD10FF7D7DFD0EFFA827522752A8FD %08FFA8FD29FFA8FD13FFA8FD23FFA8FD11FFA8A8A8FDFCFFFDFCFFFD50FF %A8A8A8FFA8A8A8FFA8FD77FF7DFD0952FD75FFA8FD087D5252FD60FFA87D %A87DA87DA87DA87DFD09FFA87D527D527D527D527D7D7D52FD07FF7DA87D %A87DA87DA87DA8FD4FFF52522752525227522752A8FD08FF7D27FD075227 %7D5252FD06FFA852275227525252272752FD4EFF7DA87DA87DA87DA87D7D %52FD08FFA87DA87DA87DA87DA87D527D7D52FD05FFA87D7DA87DA87DA87D %A8527DFD39FF7D525252275252522752A8FD08FFA8275227522752275227 %7D7D52A8FD06FF52275227522752275252A8277D5252FD04FF5252275227 %52275227527D527DFD06FFA8275227525252275227A8FD27FFA87D52FD07 %7D52FD09FFFD097D52527D52FD06FFA8FD087D52527D527D7D52FFFFFFA8 %FD097D52A8527DFD06FFFD087D5252A8FD12FFA8A87DA87DA87DA87DA8A8 %FD09FF7D7D527D527D527D527D7D52A8FD06FFA8527D527D527D527D7DA8 %527D7D52A8FFFFFFA87D527D527D527D527D7D7D527D277D5252FFFF7D7D %527D527D527D527D7D527D5252FD04FFA8527D527D527D527D7D7D27A8FD %06FFA8A87DA87DA87DA87DA8FFFFA827FD075227A8FD08FFA8FD0A527D52 %FD07FFFD0A527D52527D52FD04FF7D27FD0852A852527D527D7D52FFA8FD %0A527D52A8527DFD04FFFD0A527D52A8FD06FF7DFD0952FFA8FD097D52A8 %FD07FFA8FD097D527D7D52A8FD05FFFD0A7D527D527D7D52FFFFFFA8FD07 %7DA87D527D7D527D277D7D7DA8FD097D527D7D527D527DFFFFFFFD0A7D52 %7D27A8FD05FFFD097D52527DFD0952A852A8FD06FF7DFD08527D7D52527D %52FD04FFA8FD09527D7D527D527D7D52FFFF7DFD0952A8527D52527D5252 %FF7DFD08527D7D527D7D52A8527DFFA8FD09527D52527D527DFFFFFFA87D %FD08527D7D52275227522752275227527D52A8FD06FF7D27522752275227 %52277D52527D52A8FFFFFF7D2727522752275227527D7D527D277D7D52A8 %FF275227522752275227527D527D7D527D27A8FF52275227522752275252 %7D277D7D527D527DFF525227522752275227527D7D527D27A8FFFFFFA827 %52275227522752277D7DFD0B52A852FD07FF7DFD09527D5252A852FD04FF %A827FD08527D7D527D5252A8A8FFA8FD0A52A852A852527DA8FFFFFD0A52 %7D527D7D527DA8FFFF7D27FD08527D527D7D52A8FFFFFFA8FD09527D7D52 %275227522752275227527D52A8FD06FF7D275227522752275227A852527D %52A8FFFFFF7D5227522752275227527D7D527D277DA8FFFFFF5252275227 %522752277D7D527D5252FD04FF7D2752275227522752527D277D7D52A8FF %FFFF7D5227522752275227527D7D527D27A8FFFFFFA82752275227522752 %277D7DFD0B52A852CFFD06FF7DFD09527D7C52A87DFD04FFA827FD08527D %7D527D7DA8FFFFFFA8FD0A52A152A77DA8FD04FFFD085251527D5252A87D %FD04FF7D27FD075227A77C527D7DA8FFFFFFA85227FD08527D5227522752 %275328532E2F53527DAFA8FD04FF7D275227522E532853285328537DFFA8 %FFFFFF7D51275227522E5328535353287DA8FFA8FFFFFF27522752275328 %532853535252A8FD05FF52275227522E532E53285928537DFD05FF7D2727 %52275228532E2E2E53287DA8FD04FFCA2752275227522752277D7DFD0652 %2F2F2F5328532953535A537E59A853FD045253292F2F532F2F2F53535A53 %7E7E7EFD05522F292F2F532953535A537E597E7E53FD04522F2F29532F53 %2853535A537E7E84525352525253292F2F532F2F2F5A535A537E7E59FD05 %522F29532F532F2F2F5A535A59847D53FD08527D7D27275227525253062F %2F2F28532F53537E7D7E7E592E5227522E2F0653282F28535359537E7EA8 %53525252275329292853282F2F53535A597E7E7E285227522753072F292F %282F2F5A537E59847E53285227522E2F292F282F29532F5A537E7DA85352 %27524B52292F2F2F282F2F53537E597E7E7E2E52275227522752277D7DA8 %525252275252532E535284A8FD07FFFD045227532F532E537EA9A8FD06FF %A827FD0452532E53287E84AFA8FD05FFCF52275252522E53535352A8A8FD %07FF5252275252532E532E537DA9A9FD06FF7D2752275252532E532E7D84 %FFAFFD05FFA85252522752525227527DFFFF2752525227525252277DFD09 %FF7D275252524BFD0452FD09FF7D522752525251525252A8FD09FF525227 %5252525152277DFD08FFA87D275227525252515252FD09FF7D5252522752 %52524B52A8FD08FFA8275252522752525227A8FD0FFF845953FD11FF535A %A8FD10FF7E5384FD10FF7E5A59FD10FFA9535AA8FD10FF7E2FA9FD1BFFA8 %2F062F53FD0FFF2F292853A8FD0EFF7E062929A8FD0EFFA829062F59FD0F %FF29070653AFFD0EFF7E062F28A9FD1AFFA8295A5353FD0FFF2F2F5A29A9 %FD0EFFFD04537EFD0EFFA8295A2F5AFD0EFFA82F535A29FD0FFF2F535329 %7EFD1AFFA85306297DFD0FFF59290653FD0FFFA8282928AFFD0EFFA85328 %297EFD0FFF532F065AFD0FFF7E28292FFD1DFFA9A8FD11FFA8A9FD11FFAF %7EFD12FFA9A8FD11FFA8A9FD11FFA984FD19FFA8527D52A8A87D527D7D7D %A8FD07FFA852527D7DCAA852527D52A8FD08FF52527D7DA8A852527D7D7D %FD08FF7D527D52FFA87D277D7D7DA8FD07FF7D7D527D7DFFA75252A852A8 %FD08FFFD047DA8FF7D527D7DA8FD14FFA87D527DA8A87DA852A87DFD09FF %7D5252A8A8A87D7D7DA8A8FD08FFA8527D7DA87DA8527D7DA8FD08FFA87D %5252A8A87D7D527DA8FD09FF7D5252A87DA87D7D7DA8FD09FFA87D7D52FF %7DFF525252FD8BFFFF %%EndData endstream endobj 126 0 obj <>stream +%AI12_CompressedDataxkr%7&Ýiݺt86f|d&3%UՓƌ$VFQ Ff~fYʬd_ +={JI :?:}uuowt=ѯ?}B?^߿ΌA2/p;{{}ݯ_{ywݝ}OWȹׯ;z+w(͛w}v9뛗~uY~_\޼ƌz; /o^7\cؾNz|_|O>~xPM~wX~(J?F&W{_qvAd{i q )u~qk,:{\C {h~_Z4"&}go7w:Jt>up5O_dk/~{Af*-`F5f&>/n|7/zZl|/Q>8mh[nxE}ӈI3{7aHXFܯҷ#^d"wj/aWʘbSOo05ޏuռIK?=?a|Q~b0>7<#V,s| + ;L.lw_iovxߡ.1|u7!Gλ{d?>\|Ru'޸"WR˛{/__\F߿_ʯZ_^z=zhḘTߝi;-{({7Ӯעhw~*ꫯO^'/1'_+] x__?okҽUo~8}uMz}=w}Mss~.T~s}{}kʕwFU7w/߿;~䫻ߞ\WoX]7֗ 7m7y8/t$p޼嗿{{T'4/ktrF~BKSW7m>+ыwS)S/;Z>/us Dzgzw=uP@ч޿NNKbS]S.th>/S'ZE}?ZV'zřGvx['{wRlҺ~uu؇=yy/.4x;k}yG h'du,VX}qo^֕[eSɪ3zgL&& &4|]gF݋#7\ {1`wVۯwY56ыϿy/N}f[0beo? +2B +ׯv_a\1p8MnSohu8@!h&ޔ?>,>kLs-t} +3WȂмҝG +,n8 +:5DX"_^~]כ~_s߿z멞u4LӬ9ߜ[Mż7gs$%XiN\ׅjKVp3&2ec,LPsuӹ.,,\>TNz~`\`0@NAX5sjya!]`@NAi! ' {?pS4FPBjqǗXR@] %V9OAS ۂX;BA=Ⱦ7ﰌ/0g8Nq@${pv8PqDp87 )d +㌲8 xKsLOQL$ieafTn!k +LH闩[9)I(~xf=dUXE3r>I9(Je;bsE-2/z7=>."}[9IA0rvOLkRKj; y-ZK%as;VvCfeJ?J6kgfkNwά7a)M]0کj{v wÏ~}nK駕i…/21L+cXH@gD QRBP/@gQ9(Mrr%3HA\'q)R9[ BD:A$%"R.eR$\E*Q4J"Q8r"J"!DRRD, +AdQ\tqE& +M"8QtBz.`}ԁo#F- +X4Sq:3YunU4{I,C݂ ZՆp8\Qnœ0Um=AQ},-jZ?kBոԅ"VɮZV)v+U^|idL:uΫ&?m*k[ԕ37LY&$iv+nuci|"vBy+w+cyx5NѬi(+nIBSQaB7cNE9u]VBmSP""NhiUg:Qi +S9)9NA5j4ͪmjC"t: JsqZYLXGi%ytӍg4tK*aߏgvǏi+J +Lb%e酅-J>[dibM`(eY.jŠ@;Ov Ԫ֒{-h=v[n zKR,q9m1@'sn$m#-} "[ySӁp_1"q94`b! ysp؄*|&[RDr -dיfMt&tDs3i"w\ҿiݒ-ڂu :&]|ZzicTb;{jΊ?w"+Rw.h ~s޵5= +~r`8Z]]uAz?2P5d,iOit9:cbx 2`YTV㏸7Eq3XB-Ѵn~rW?P09C0`F#6 4XCaR?ҧ~ykյjj]뮩5]|8(>+紹փ&@n, .Z8̯ S3_rYBf3\!<4=0<Sy)De&@^AAr-vUbKTˈXuXLq?guFn&ZzdQ2_d73;M~E*ZZ'dxr|M|XPu(eT=ާI$J6k<Ɓ[/ϮQ=+8cgYds?D.ۚL6<*=J]IfÉj γ\|K!g7ul녝X_,\''cU'Q/2i4lĎp*ATR$"ª sTbUuZEn͞K, q'k+!c˩/"YY1 ͇ ݙgWœ 3p*Q`^GkcdLBA.`KӃ}7oc9q v\˳pu;^{Oǝ2>ٶ^{?~[8=~ۣQiP?j0Lg}^؃KwwDgA1dc 628q!R{+J:i#zDcf۪jG13G$"oD88xk'Yӳ+*ٞc +Z*chr~q[VJo\Sohg..yes\j/a +R(:Sn(B$8#sq _ +sX"8M^sz\qދl/F7Tr!3 E/ޅA[lH8$FqOTq…Xr\DV9\W+K.4y?NqyuWMy,bd].ucqj }+Z.3S0Iy9_Ƌ ؊rI}AV9W`qd.ⲑO|\VEÕDN :nYE.qu$ʳnL8i7{=cv3ڧZ"N]D=6;\uFX#ac6̷vR+og݆٦R:hmp`u۞Ǽ\M1˘M_K;_I,͢Ό4PYV! gab)BRmۊFத,owZ^ k;es;M,|`q ~/&kJç84욏a?%7.K ?,$yrgVФ*mN:mܢP;&6Y%`hS殊an1֑k\%B6vZttVjl*zZ7X za":ыxɎ?0 +sZ ĪMk#]GR[ +IzL)g|QSe>Ez)2dI*Kb{)2J=D'{%i$k;}Jȸو]=Zcůq Z +`/aOgz,q#Pk]|HzRܔ=e;?>A}& +X>C̾+~q:IQy@-|-ßno\}o7d9O0浫cd{֟|!tc6FΪ[\c~N +?:|7;|@.Yuw)!Iv<3@D^v3 KK tn1KZcq`a΃˟'h^!O}7zQ_!;zQ?Q ,JBԽMOɻmbEyT,m%LgT98GBs'S72ݘ*gM:g/INMC\VE"QB_5Dsi3[aMfrG_zJoQxCdmSbOTQ`I +&* |G\!yP%{)B͑XbZQ3Z#'ٙr +&?H(x@u +,/rhXM[K*92e):kgfV̱gԩ[tIvE$[ha9fMX<+5zu*ms+|Oa*h̨_%Uv{E]&Cg9>5M^ЫbLExD夥 nIʹ.~Ի|#MjMCw6<;ysSa*,J5/<613`^ 3U&9&8a}m5ODuSskH |+mŊM3A ̾%.۽km*5f.;۸keު[iUZnjZ+c9k˔ m=7='u+vDRaIBA~ ? + |Ͽ%}H|:6{0:7z3⡄E$ Κ^_Ŷ= Lذ:N2v;]RDF0{"J3=Rb~D~@Ƹ~]bz? t0l; t:`BHܹ+I&}Ԯyئ4>~v鳋[^'ؤ\^td7VgW t6Zt*[-凑=1 +tXykkpHiT`k%!EkAI^AlP;כEgc?S$T#dn=ɶϦG1j#Ťq~H9hΦ. Bu1[lE0?YGA2|{qk]_ml|m+gx#oŶ{IvK(Φ}H ]yoҺYSp\:մ[kݮz*4% Wg*ᡓ$tJ:| 4Lj#ƺ"{cvxȁٱbvβu!S4ƛ_rB#1|oNPXQpHNXtoR ^J%xrmw>$?T roAH h-%~=,_z ^{ +|vBX,{qe5whr.&~^4Z^Ə)=V!ؼO#7$o/a\qmq g &k r/n =@6-mC)&Er%8zpS1?T0ry2C&Kj~^Rf h-{@{p^YjLP׳OF܈3 :ɀDcx֓Ga؏y~NR5Oj *=2{-?U+]O=!&9 1w7Hm=X}HC#6C¢4ǜ.ZbmyLn}?fu5Ze JKo}^%OB+:v^w}t(`gqg +(L%0M+MJ:}3P j::ɔQhai=fr]r)|h>B]3d,W 5r +0r ?//O(,`+A?TJ=vy aGlo20dؓ'S1`ϋ1v~O,y:ͷ &5D˷Tʍ,ӭDӍ˒0p&řZj~+Tܙ + ch- +2a<~YV7] ƕ]尀+v 4wپrDϳ,[ZSx9HfgqUHîIHSw$|h>BT-QK[TFx/ t +qXΗo<t*X%Ni96E5gKg.j..?9WCTlؾ̦cy;HE6]cf#mtEy)[t|M^8iT^.!b́j8/P=$=W~rT-"#2E8Fi +C~9K?DMR|=]QtHq),fS' b;2iAjLՠ *v%2 RUM|p|#GlS5ȇ= + +|A +rP |kA銸9v Q3Uf\ 9eQ;LThpܜͫ$4(RQ׵-/'7A3~|dXfR,1 r :)d-\c J %^C"?5W]*<";IYVBٺ:oJ Q.DOB1fVƞ-.On";LF,Z]~rQ٢;q\ؒyf[;2@5YOdB6#b. qIVmO2lJƃx6; Xݹ~vq^:FP$ɪf1`'BӞV]t{7%:ch^f0E[4;7VsvqM۩;8 +Q[՛Lq7}\}w2-_}ouṝ=j/ǜy rr[ x}Jn-oF!2`*{wbqP2\T7\..*m/q~%Gqax2g2=%K߳*n:y֟uD:xx_KxyZrxu ~~՚>hdE,h#wag0lmEEWaGk +SY[ߑv;8?NW[SY778)#>윊uޫ)c8e1S y?'BC ^w,?}}p_vW/-Ǹ[U~Z]^e(KH KF}X̬y_0|.}xRNq$U|eQEѺXf"4XF S*EyT8Yvy1aB/7p>>XpBU/ 2<a}-C6ytՋ0Y,Sk|Wui*]Zԭ n2&_?=v11j}xcT]#{:5s![7쾍u;-^|("GPJ'gAJsdB&y {XKdA]MߛPtY _/KᗥR8PC5?T ? ^ۇۯ>h!/3?e՜Oo!Пݻ+q܏:Z]v787s7B`S(=?kz/,cȟ c߽7?ït 2[g~Qֳnˇ۫ov5x֖Cܹqڇm $nfȵ{Ѕvet!E>#ޏ>zop{C<!p!йΏЀA?@ze18:dٳ,dB܃UG+TA$Cw? b9z6p7`>`3{˱hް~JefYC,},2 +C UО] +{'X!J~4 wI|B9 {!L \ E&R #ayiM$aUaA`dX# Y! ZV@jqḶ@G~2&>XseX,\ DX8@HDrHsa19Ee>qe̪AP-(FFC6Ӊ ]6 A@߰.:23pu1#Qo9Fux }.yj XXepa6E1<0L퉷JB[`T1؜8uUbI*P{ͪPGDZtмmRVd5!FX[[$6=IQZ{.5Kܿ8dʌQ 13 %C٬7hVMf\\ڃ%#A$3NqIX6 +~^8b`1b̂10H&NiůՁDEh2TWg$3׏ qLܙL*dH|8=r>p0l@oYȳ)!-9apUN`k=t>H}jK.Rgz@I8˴4NHEQKΊ7`yVy̐ȇ!' #;2b׍a*ʩ8d纛ܣi2 Vmbfz%Sݟ +{[e/l2:9`W8lL,1EU+B۳U3U}6ٝiHC xv[)hx` k 3\{ /znDZ,)C3db/0Lj"#ƹ:#wN3]~mrVWV5S37o:?U5?>h؇=N_0!vBr 2Nэcd.J`\5Xѥu +FT+Ƚ$SUpTފ*~0=BI1`_fK CO+`J;Lj2ϒa {9xA#DN 0 +g//8{ }RXbdC j&<6>ROVgZ#ivZ2!83_J~6s邵b{UN#3N]P"etF6aw"d,C +,z6ANp4c. .N:XdSlRGt^iV;R<ɨ>@hJaDqyCևTf*-=(81ި|;5ސ76[}iJl~SS+>5K|kyNcUO,978~iR$+hG(g# 1R)߲hȽ{ :v߰ѻOM[(vݓo~ ui#@;HQwE(N/hu>^+5`B p튪X pOPF-Ș&S' %gĈ*@JyiVCdðc8b,p̠\4,]Frx˛G8&D$})'A<"3Z#[ly#0Ȣf # 3:3,o|1$i)Z)8! ĺ+ O3F5+736A^dfOZubĝkfd1 L + -"ULgh=d1{y^`1Mdh<>i*h?wiûJmM>rqb8eg@f'*1#h:b{ѓL+:TLJa@>-4-0|K@dWb6$(iA K7zH^145cbFF&cij3iغ-c/գS96l˓B2@ffO9;8@ +<s\`0 SMVm;na>e*\T"A1#MPw] +4S*jJsxdɅS}Hy_ӝmGfK:z@N8ZFOwKW/'8Jځc4,y\}J)OHV7e:cٍ¯2I8z,M9Ğ!CE#;¸J?le}Em̚2! 9O}-:Y|xeH?DS +g&:dء r{ ĨA䚶C¤-OYz}KT2RQcOM۵}b+}n.-cBݗ''489 o-MH|Ho +Yn^R4A閵hy +PJ8Р^㩥QפZ'QMr L|HLYƿ+%|b&:x۵~1c 1(0o!rK8X XfMxW8Z$dz\I٩4Wz]Mz3m),!"]:G BxYzxU.m MXZ*#c7J&_Gmt-Q}TPKھ8Vՠ擪/6i^i)yR<(#-N@te*Wvq(;dç`YlGfjܡuf穗{ 1`U8ʠw-2M@M;8 &ޛnm= 谑񔞌~SlKqːqϚi,tD5ާ""1Gc|#2&c}oЖ>eӷ^ԋ-:1WGO>Jvz3MG>y.i.hJsA Pܣb Dc(jGyVHy4@.1ae/h^И׋ .<%j0#3&;A{i(}x8j}qMmQy~odmxzk#pPCGEehK*yj>"Ba< Zܰp(5}yuMW[RFJoh8ЎL[O3MWPߝ|[* HԨT&snKEQ\v:3JE,~jK' [~ +\%3ڎT#rUfT+_zlCi #i D3|M]x^צ+O1aP@LtU9n鲝i{Ta-pv6A<, D\~"p/luYY6 @DQpTvKADPbQ|S<w;D_=ȨHdP +.$J Yv" +_8L 9f*19?tC(-aK|;Njj+{3QJ7,^X){&#~G)%8Bx]EKEr%;2܁IĚzI~P*e NLjVi92B."i0:4qS8d3 a\LOCًN;>2ӫYPs]{ 2_)%.(ؼ4lx# +JAa0iv!nw &9@7I|?$FJHScCxp +މV~!Gzlʦ:Z`B,pociP$>ϝ9(@uYНksX%X(7U% +5Ʀߦ/ON D| { .#b-(Cb *y9];$O~D C$!q +,%w'%GQ-XEQNz}^oAQ Mt.ˆQ4SbL6/WJ&؞&+xhI(ܘ#Qi5<@RQBU'E3 7lyJ@2ѼNoS9+'i]*ZUxSF-"G$1F^1M7a*Pklሞ[-eeZB4F;# +qrcM[87J +CIpRiN3c$[ +Eɸ{1WRGԾE/QMMtaQ\ack\!sȂV\"Z=S2 ):Z+ǂS5pq%G(8<45HvcA52ˎFt P>iVl_!A>J,b -]",]ʭM&0XN)N`ʷbȭ5YTaz(r3#pGճ (lb +'.z`p+y۠‰kJ(q5y [ٍ)HgᬇJ 4ReBőh]j:y8g 3Ǡ.MelAFECAǍjL,-c%H1 P5%T_̵p g{,Wk6J3&%-KHm .7345^tcv * +\Ω{A3T`%MSQ* +[cvi(fhj1޵(s쫨ny!1-Dc p9.V 1-Y`Ps j3 s/6gԉ# Nfh p[y^ +m~h)Q[hJe# zʦ D@UPІoiSS1%kP318Z&l. ƑhEϝ5^7-!`] ܳjx´5% +m +1n/MojJ5c'&i<.O[/ݽ@_}Qz ǰ艧xE1D"d_TЖʀ47#tϏo`xB/(6ue`z.EW*nhG@'I26H4o5WE!u աzS^zV,=iKT_a]jTA7'bt(3N /KUVSmۓh:]ʲ%)qm&u& *ŕR$* a1QaXQgP|aFCӻ2U|h +T_SxT"mV=EjBkW6j) +S穔Q۵cC[rmE|D ~Go>N3Df0<͖C['pxlMs)Wn7=pv_sR;C>/]+X1W"2.9"C{ zRWv7J{UsX}MUZ2WLum3JOU*BHM|kD 'xAJVjzlz|| +47Ǡ>m&(ľ'KMfRO\֕:Ė: vq;!+,3r׊jsC.jzM۷yAn1$CTY*R!qX~J 4#Ѽ^i|hXS{< T!2(6/^. +/@&\Xb4ŏrkui+oۦ^͗Zк䵺u{(A;!T/ %f<5?@0jhX1e&F+Z\qf~_oAN"o!&%TsDAphrU=ym46l)Q}JʮKa}` +Os JİMuyc֓‘({C.2OO=| h[a{qpq) n%"fT*Ysm"ה݆ z Vkı@4Fh0-=dDUÊ!2#hbۂ9AG-vM0s +(L.PB VF(,J8k⸧‚'۟40Эkd ]jX0#h$ty@D׆QkC0a.QEvH6לYlaGY5BoNL*3ۙ36 +0knښ{5S4 +U;GI?fq؆bFAݢVkBJkl(8vk -u؆Ϣ|ըYTW$Kn $\VbE#Xv+oam\":fj#UHUCW9Jz +Fr +k7S H \)] ' RS 0ĎBmJ3dú(*|  +T(:bA 0$is32!'ӜY)mȣoa X ĝ,%B63gl@͙0N4uni*s#WFeڀ[3kh#qE"^<=q IiuT26qJfQTir6yT2V)9{4e`Chr(8E h`h%h]7S2 +Z4.-p2(u2~ڈ(ќYpf@yC@znx1n3el@̙N4nChiv]\ڼ=4e֨< .>07čL~_S2t5 +LF@>ly2au?hoAR5o?0*#}N)wFQ``CwT N[SfP0SLBDh?.Pl>ҷc=PWQ_w']_jgw/y}n^=|Ƿ?v9=yY~ҿF_ܽZ&Ҍ{Oo7_}o[}Z~/ouǪ毫#~r~ڋWr䷻_߮/]'O,&A6F_kLSÿvV1ғ)~U`M_ʘjWu@ODhɩ*T/~ -RDGT0 Rf2"pF2xK3<}fբ +"ϧ+D:φ$tڴ8`9A{P!͋ROiX.d/ǫ0A.HgRYavl`x 0@,dn&V 0ڜaiWBQ +f'w'{ۓP8TT`@ʸc_GB] +9*86G^D 4eHJhĈ(.ɍR.Q2ѱ[ ŧJ(pQNvjN-}O2€zF)~%KEiiި\pliЎDg4H ]e64^pFx8@LHYg/kᅁ:M45cxŰ8O#b&@սƃb`J}FH%5KrKTpya!cZшaViQQ-WP,Dc)G':-e_u1eC=nnQ#jvrЄD r %#XRLהJ)ZSX[y8DEeg_SL^!M5~LAgf  +0$ H ^KjCNᇈQT$,ـ"Ҍ2c~ +/1& cE2/%,U&+* D\b>"' ts"\&5252NPE|yވ$>Sv ѐٔI?HBF))P.^e7orWJ$Y fQJEMT\ 3.-qraCwKJF%z1BQEYt+Ls#TW }?MWmਨbLzIp NlF2B07f\]K0׮ṡ2 Cv|.Aɸ,AI/(~1f!q$*HUdrԗo7g㘤@rڙ̤p`` ->H.}<_TS ='5ˆvG4 jA f@gђis;{Dp˃RߗI-%.0ʨY';`Wyo1ȓo";#f,Q/z]bg}$E.8.dXα#34H&/#bb"/R]̨A{7Όq,)A8b$"A :-ٯ2O:nKb%Tܨ +0"1%86p"\R= ݠsfNBC7/ rdk%!EVz+Fq?JWz8*JsAbh?sP@" ,$}#o lZ|;CܩS&<^B&F>’$'L,$0s0z̴ + t٣F,$+hz黊 Yl~ȆQVAJ@DҥBӞ("< +cο-}:txR O*D] R|4 q@c`PK}3LH@#⟲0P;j $9. r)A0#W:c9Mr0Ljǖ7v#RxtY֟NP0E0&'qQ)ǑB/p3z%*B!,6InW )XHQˢ'uz!P$̅y ,'`tJ@OB*C[fTfoJOMDܱ*wJ Qb"(^w8RLbJ$[mhڝC*ĉaeLn뛡rkr}+}O;}l)0d̴b/K9&|=r1@ n2H `L]r0^S0 ' 3|D"88!.=}RL;J-w[csoU'nxΩ2R~N@(:B83e,oYߪGN^h<>7#B]I=FyaqJR!9D-u剐(T92@)1o1~Hiy"IKnH  ;(CșAfR2# ՀJQRFJɌ" BbvL?̺.R¬G^=">,9Y TPaq֊t *2zHPA,^ĝ?()D-_ + |DnGIe%i!@A3Sp}#W"*Ԅ |m!`yAIwv PUnL ɨ`'-惒^(U#UeQwf0[Ardxf`Di;9*0䝜!|)Oq,JVJ[վPdqoV@Dg<9Aň:Q30Ydj3߇ݬ2K=ɤګ L$ l^VeUʫ*&j-?glL[ q!c ZGhAEA<%$w $5B _@w P9S͒\\@@좐<&B%>ffaOè THt//:='^봙H,֢,% o2²VB,:4ٙ1Mf9l !yj6A{Z;"+N !筈ʪʟϚgf/~C?{]iDb=qC/dV=1wIuܟ~\}/n)KKe!# .K<ׅ5 '999Esw+GXfI݅3rcM P :ss484:hN<m7u{-넦8]<ܩv 5+]1C.bF vx磇YCI5"!WyuB,0@:Nļ3Ϡ ֩uG2JTFu}o]A'O:c \XVfܛ ˎS9Ip#*1e%yms 9u*+p`|nb69&Isp?1RPE@g+jc֜K`c:("T] +yMGsQ[<~[>JJ-[]WEIC-)AOrKKqn$OpB."!:j9:K@"!A dQWjіCgK29Grܷ;GR1b\KnAsh1V]߫yꔏ]79/ !FZ3&2)@=ΐ^P86ߑǤx,4Eh0k{ǎu5l\am=9̘Dy3ٹ"ݹ,DsUi>s)V:|$Y30|j3gnUgc<Wj {:z{y{qD\#_=0! R0ݕ facJy +m/^2ڇhd+C!mGtEfu)O*J:܆9$6|r-\ģ"q% +{V=#a +(˨8-+waɖE~(%L| A1.mƔT@*7|/"jyo궮=/ Fۼhp))(+_ildžiد[,P1NbP4/GA6jѵ!7*9SsR +EueI^ KEbߐ੿vh8谬ğ%64oX!m$@8U.V]\WU_Sh%opͭ1RG܌\M~#SQZdӱš"Q[ + ^4VmI9gARf@] s, B<`jٞ$3' tr6@-#0}A|hxI-ri"H2G`jkhlRƍu-!-CQWeTZ:nK-Oq.H(Epm +e˝e|&S~lѠL~vאw5uOFH3C#CɤѣQA5>oDaUQtse$8O݅+QuWܖ؏8O'.{.DJIo<ϪpC8b TJ5/ݖ$r62vP󞆋OVрgRFt[D/f'zI؜O~0n/+e=VOz8crD47#,6Kڿ /h#R; w؃SȹeFQsẇGfvm +J3%ľeW;%ľtD<i\E𧓵XxFg1C4^'zgJJk9vҲn{4?WwC\ˬxՙ_? +!Xy( 93\+݉puKWișމۄM]%,zlW&ΩBZ?M\(PobS%e IDxp3izy#B0֔Ei&0;$dT5M%ET9xm5j +{(5-E<:(Ҍ1ԷGxת#Du?1jGhvPOi1+Ȉ*i٨i96X0X" ]SFlKP4;>yӦez$dmg O0,ps//R@Tt(J"VcO Z+-9(!b|ݪ*󗲶eD?xcL[/Nb.uiB[HBx2}7ѿ Dܛw:n'rdHg)ݶQl)R@xq|*9"oS%\"!JF@-XʪS]48܉k񮫯@{99\O6JNj"b2S(.:3)XLxhILdL#N*]=%(G!coy=k pf5"@3oyEWa϶kbfR|{_UKHS/xkFAd%< [HP%N\JA?Lt*8OŔ9ZQ^Қ8GrgéTAT-=T3.&s6s?HVW}4Ŏ +s…\M@ei]ٚ\J囶7cJI$Ȳ|ͳ(J,h2Dbn˂+CL/gwdqᚍD3O*f$EZia|F=ͭG2C䬞nnT|(VfsaPAQꘛ^ÛO/I^~=faO-܍\(eQen'แYۜq"i} 8o??zYe ^s .^sJe5v55jl+nb +k0#u+Cq|){\ql#2O[P@re8q6ȆcyUeilTdzLAb Y]dyzЈ6GS=>w * F43eYQ#ʼ,LpH/|24Υq0٥d +fzGtӌWi-1pb!aA p3bfP;L]];iUqWd st!`1,;tR|I@ Isx\59"*Lgf&]ajPM&).fZp.A*ޝQg]J4@D+v~ؐ7Us-], P-\7B^g/J2nesZݨAιVRJOH Yp0Z{oXu.7Xqq(|#8ͽ,rX5ͣίNl <$6f.wE"}ۥZrİ.!Bp[) lY4/;k،|ĆAk2 dLSeƜ3sG`hޥC%pIVܙ/m,!+XG=Kxwx0 |ۨI_LD3ƺb|ùtKt +5߁@9ف(HjL7_/C4?A1Gu.UrH1y(. +56N%?і#"yik42th,>p۲P5%CXB e%f~6 ׶Ght \!AׁaP߽rѿ9j,CFn4"^D1V8ƙ!B @$EvhmHa 3GFʎeTߗGLޮ؏T#xhig1洣w-w nVFMԴ5zdXY4ǹ9w(iɵ,X5t gN!܂DX);.kOLFY/ [HSxIE#*ZUYIѣ^ni4 ^)0K g`| 븭E<fs?y WcAʊZ'ޢW4 Ucb&AEl`r?Uq(:$8kbbW;p򫵝A\N=ƧTq.ZU'8?=b@4K$.$BD÷65Ns(7^io>_<kAXe@ZL)>ج{V +SuOk FݻJVcns3^~}R)̧ B9TG(5LHsc1S\SZBbV)-mS6$P_w7]W$K#)ng~ۿ:??#}?<zjAB@EMvDMUWw1>f3a.}9j$1%@a棲z:/ң +eYGQ3εMngO=|@A@Os}D0t $J9ljї{>0@JOA B|A[ƖaL?|\a:q^G6Ht1>MBG #^ +ډb2|@,C?7= +{|*(%»02P\?8z6wxNdV1CT&9JHwn%ǦpO]Zrebo'HЀG{wE *5]nJ { E~&+%"q^Yv᭹L6O :l[Ws"qƼbe/q99!)Bq6wCQ[zqw+~~aMC0$ x^!+g+)}ǯzi@ըG(YChOLkOxX-9TmkSAiƎa\|4t&^$W.  &k +ǜ00"S55I3r#֠2=J'jU;J[amﶱX: +,^j2\ul.3/inqIJě`۹w9K8kd pEZDzԵ#1[RZ0_nf#tr∑e+ZJ NXh"/[g#U%V.TնdO;yhBC*XCp8pU[I@nlTJ_tGwJ +H|wx=ȩ'>V"ޜ3\7nbaEedp*Wyχ^1Zв,86jr: 7_WJs)wu VT81w/#Q9Wq+ͥӼ]s[O0% 8Y3/='\Q8f ++kHzķT3=*FWt6ی ឳByC3s{,ʄ.}F]YZvೡU!uB8iTWa6S-Rs]ҿߨb0b>2/άhX>P8WY>eS8m&ؓܨ- gE5 N+40m>hH6k>Y,Lv5h`Z;ETzCnU)(Z؆i8wڰit7gưW^y}fn:!@nq6A/?SlNJ` /9BL5yح(KGXMZzf൅B'I4h'=܏!P]]Ց>͚*Aw]>OV(iG8G/Ex}׫ +P uv' 74rO no<ύ.dciNF| 3E9t}&LaO}-u()BF*(TVNT38겘5rWS1Gc +{"ٱlg, 8g.;snLgn0.˥t#y(o]eb<{.cC_5T+ d;#9k#{]i7JwTgTl`i5\56c;s ;h]:niP4|Ձl*W8c݃#0jSa5I!Ե^3|}zgbvB0(m,Ȗ>eT`9׫LdM[)iۭ a4I T= 4h؀틢 4+ sx8$PV(P`=Ҡf/XSUt%:UXY Fŵwe[we^avewWaݘ~ !3]^Z$ģD6#UN`KI؇Q[ZYb9ɰ6:׊_u/"*2Z45aV!BSN+{{5_ fBlY1G2d(3VM'y_4g'ogכٮJhp]f(?Ű8Fgs/m7h1PRqi3Q+QŰ\չcոs;Dnn\a&,S64ѧITg; ȅ(' @vzD, dP7]\F!^Vs 7:[vE=]DL9FVA:cÝRetL4XDUv}bYǾ^BoJ4/ѪKk㜿OǯO?_???Oß?0?s_~o~28y}ˁƓ3@*p&sxAh v8(p68߬p7kF r7a1|f{]^YB|򚡞|79.Ql^!<"!cq#WFdc٠xF' a +V'zϲ$qҊ %]Jid +a@:Mb4%s\=; Vob>} Q~F4(dB$!}틒3^ +/M.)Jٞ7>8zMO*C'roz9̝Jd7nrNSp*|3 >H +g|E'&#9\<4Ox}5HxRO# D$qD7Iyׂlp0.~f9ֹo/_g;{nOn{\'S.OJ{7>n8d^Lv$=pn;.l&'FO:o lz%JE6] >[Oo7 c3lˎp Dņ|qW|g/zkuNi#a˰!QftSk=Y5R60#(<Ќ(1^M7>[~ˡOf7%eFfq$kSbd +KhDn7 8f ;㻈x1n6׍o(O}VvA_ T;1zcfu%uRnHwjq7sSgQh͒gw$7N"Z fnkR~){0Izµ٭`ɸ5v֟z6.%$&/ZMV7i O63Gd"?${M .#nͲ}zbYfm7M*Bƛ&  F h +وWmf\Xjc,Ht1vlhx O$4 J. ڍX7@LMfT_gޔgF;'lL)Mr-~sV69+#I79[viFђ"6w"Fb&Mj]؛So7jk-3ZS>6坮B}@(R> d+@/p{Rp۔d +Ș(n8rqd"2f^ȤK{h& Rnq:lRQq-7>9$S_pcd4^/I0ޯmpúe{Fwp/Rn*F_ b\8^ٓ8|iYnpM͠I-V3>~ %өv3N)M>t =`B`VUߌ`Jafq &#CYg9v2Bz9.F6Vn"+``|~sbKm/<0$v +AEE>\@{w>Y(6XfM慺\s~2v4^^y~ߢ +0BŸ7cuGhxP6C$ ݯm~.j3'DWq/l Ekٸ`H\^on^,7-3av-_Vm*@edsp57vޯ-:merPu/h/4WJK T'tCiϲW"ڻfўy }Z!XFО7A%0b'Z\ l A 1HܯooQH$k掤~Ove֛ҖAXEK*lI:/-A^}N[;?Q(u{O(ZE4'V'>>s|Z/HjDZ$_ Z~҃/ ZzV*:W ZzD Dk<`* 1 y{ڀS'g*% z)p/-~sCth 7#XVtۺO ګh?g6iRJ߸pu/,7{7e.KqXA5" SSȼg ӏL-ß(ًxY, ʳ̍%Z7% (G@3KidWѬbCC339|_7.5Ƿ~2I|ҪJDwiO+`ja Wn=cbF.;#pe&NMSbzOJ[0WYbr5GmI=Bכj!PJr 읟0n;hT sr$Yx0lh̕3u G=7R+Z $ZuAMX$fC/,HbJo(X|``JP~K9ҩ_,بj^5dM د'}P *jN?\:>H7,Uˀ/+gK+ҹ͂t83 ^ұn7q<9P[`)ζkC3 +;Nf6O hR`ك!3yB`Uǀ3+7,ǵ:atĥxr9-S YL/ XeGOi{&~_PzPYɯX^CA~5yׁ{F}#u7 ;k0b漲b\yu^YNF OA|h,W>:U3.t/+ QZ7oǒǸѯѠ>K~KW9n+뤹|^`jގql_U/d+ۈwe$^_RЏiTkD?FbuuG^M25ӸŸ- ~R&u~w9: Vr,wħ,܉ *Ex%mξ_>0:NdY6O"'zrv+B$)q/ p| XR'ds:m&չ,6R(eV3LVH66se/-H&&(6FJ$u0 %$L P`y0i1|mI2E Z,LL=Q\꺓sMQxDAd +rb(N:ؙ#^|e.n='vrG' Lҕg yC/cq|B^(' \  o% &:,ʌJ3%]' 5{Zk]4W'P i {@KL!_Fb(G&rIIA aF΁Kj)ޥ v|n?E¼t|`rj@HyK7+dQN@}50%oAu0m:iiyt + )6QMv@A0M4έM4^yh;o2nQX *k>aMJ}u!v%7(OeϨEPLY1b ϞLL?1CqyFuwٰ9 +7n6o$Zj73&+ j>5 +V&sw¥NN Epv**k +{oq#=ॸvc4VE?idwvI2Ⱥ\ق/% #roHA}9;ڟ x]R!߁F߸ o?4_8T}BH{>4s|7H|tusĒ'$(:B | \mшxc5ʮՎb>}CFϹ?:; qt7K!UJ7',@WJGg rrǧ7P.cX#³DImFҐ7_an6jc74+"ԫ`mVDbj@x*"F[C˂2D=H6:&턔,U8<7HP!]$@0FhL3"*8 e: ]o @CE^+u dusCCs7 Vg ;2(!.|A fETGT1E6+H⃡bz0M!'IXGMK)@hW8/rM,rп߅ A_zmI79 +OE8/q SsHy)uug7 +CM@V.aO݌;qpl_8y.+o򟇓2?f.מzD,`0ED]n8 ?f>|rTYRYypCg&&Wboߩt!0C%}> G r +(6wyk~۸??_88xǍC;E΀qw +h@agݸp|BoB}U(-TIXixx?<ؔo~?~_ )Zsd,fGM9mmuL?x|6JdIAx3!vPW],?c=q ׵zD )PsiZߠ~`ށr +z 'Z.? 'Mi!v#u"=yh 2 ,?\|B Bt?PrփGUM" $KOt?nb>~j9~7 +ěF}DNMcgB%2I |Rx#rX#Qۜڭ#oU?6EG L +} eہ>if.0<˥We.F\H1Ŀ//0׷o?Hj^W_?zQ~m WϷZ5P_?*:x'׭?Zz/U?!r66ł Ign5R>l cbԕ}~0ED rMKa΋VpzVl~* ?^Tx٧76Qyd<}lw>"6f+>2J,0_7F 7_31yZ{ Cf(NTC\>Rn 9ª8bE;ܕ8#"5 k {P%EX \e7}ro>=o(U.rHӅzcs7Y1dֵ7έoqCpz +ʍl-(6԰$s6ZiP[XWm ?_UK"dpTG M 'Z27Qm;cmZ[{O~Lyi¥e7JZ9Cxh(ZP#d22oo|V-o3^׋sdK7ެ8f +.N27c_'΢q(yxXT1;#ɲy I\7,:6?l!7MUq_֐.0$rcİ $Y  ;!iZx m8L07X")~ _Z6:7ޗ/ěGмb4ݫb|Ԅfy&Dx]Z/rWhb܊a{s5e.<B9ߠ\A,76rrŬ}@0qδӫDA `2fzez '䢫=gή!k +;,]$5peǨ9k*6^(6xho®O*"Υ:ILV{r󜓔g+} 30v3HIH08Tcc-Bk%7p +;S9Yo(mbwG@f(6ZJU? Q:LO IuPg-;NΠ}!/x~%<V@$푽x0 +źKUtl%^?гaU-U-[Is6nCh((uM4vی(]jh,JYB 7dyCz@.8K69^O:u2%tȟ5g<)sw4/\>S>7F)j܀5/I'# d`tn½bVa?UXHcWQ1N՗5}yyæY"EsKfl¸ͰE>+!%yh?'taES6q9Cs{D(@e5A=*a 3#lG8&AJòi|#Óg4Jɯ<:6J,WXф euTȌS1am,1҃(:(/rHV Z)/gI*S~UVOƝ@0s^9lL4Wp' y.s>ʜXc)_1?Hb +X ugy\:b&оn5zv ^|y0֧R~SO,O)t FeZ\)W]trWG;"'/|:iD1x&~RJ8htʚfupqqX[KјKa)Au4 Q +1{_z3*y]> LxA+ +qNzsqE:O*˨U ฏ7/ȕއ_wu*.[AFxoq#)a!\Mל]Ջ=| 5)d0-zX0{˿K~::KT.%?.ͯsإ7V?gǫZ|llXb5W"vJ> LTg2TĄ\5([P e:MSS gmk:=޹@S.[-!wtk~Bfw'#Zy t6QaZ-iza~4(!)x+ϻ*5YI؃,1̥un﯁KoY^9粭-ř[DӜ{ݚ|^iCC|?+6|qIcjZa,rg:Sbff}΍N:l5?D܃I/,ߗ_RueM#O4eWyҚDM-2os-=(e(?_̩vX `hrp7>zWc{/&速"^WW˝m |~SI;O刽pz<ٿ{D_k!3X衍~YtzEAKa,ݸb(nv96@l8uW& P4pxX#:zOjg}swXT/Q=;%/n[|F~q7 i h:⃮l#y`!rYM72N%"rv5#=0U]W DxiJye4:{H=o8S9h2;t /Q,P!w7s.R*ɞÑV۷% + +F&$sრO&9zd]ѾX1os1OXǰl0$ :MlΆ,C-c*I-ql??UTlUJ m3/.x\T.X#YI]װ|(I$pكJ\{47Tv ,>4wxSj-Eiҽw\ہg:S}( Q]-(#&!3,㹦,˨ n,S3yI85*;cl DkBڂm_̵bCBa%)}8|6G>i!w|1ca\׹>l{8>¿S 3L6Dd[4̼kȴ2a'E#`a1qG2J}DN\ƶ0ۂPtJZ!@d>8?j;vg9׺+q_m+FJ:tRZ-u.L6\lJJl5b⅁0Nq5evW#~ȈA8=M_٦< 颛bޚw#x0"̠Œm-?;%@K )8FХ,۹qʰMf#a=z|CЫ[8\>\/)(fNOPzd`bYԻe[qr@%c2m +pb)-J XKm(`pis/;zh4w4M^wH:Ł" "*}%0J#nj>(ṰNE x昳WBkZ`aƩ\Ʒttb:KPW a!v2{&l~rC jbΡ8FQv[\ed!WM&'_ +0QsNQEr#PM@aH7D/8 tD9!,2C}"1[*Or`Mc"MJfػEKIA.as!ӋKyydfZsNtɭWH=fL8/Ox$zTԲhe{ofN8~:oѠ`;=p[M%->)G^C_h^Jyb:{{}#LvCνVk4e٬sg +WNbH|UKf׵BR;sFiܯ%|rUG{Ǽבwj=4\ GX %.KO|[Xw,1!BYR-[?e#F^N96e7k?D>хEA|5YTͽbݠa šWXӲ^f`$50T})>ODwMٜΟz[9,ez웾{PZj~x{nAm3"M r0-Aфk3Y IryLqH4)ԋ,lbE+{/,v>ƕF2p{E./ iEu +Sz'ʁ~M#-X ZmzؘO?M.2wI^O>\,;ʷXB5=_/5󡯧3>`Dv*oǂe _ss/4wK$i5N:sg>[:Rj) X&B$#;dʾ}<8(g(_s|-ؼD׏o+IIl8ίhxC ./@r#\N=Idz(YjT7q/s:L% 2аUpzs/盇d5@'jֱjZxdΉε';Дjb8}S\O~`cRY#Q]{O"$mK!cmDn [-È"HqFsvR\kDօɊ 3?>v)عi{fG-=9D:$=Bܟr۰gdŰ֛N H9[[;@@a .0iHuq.s]ؐ~e2n. NPWPѧĈ͂tD% XyOṵG%|o6ꗀ1R7X#$Z7g;u3m㌆Bx_R2̚Ⱦgdy8΃G5sq[R9-m=1["'<q^gRŏ?һ/aYrBcw\eͤi2<)lSvU0dVO<Ʊިɀ,GI)2AE% vq4$(;٣YD9G`+õYXtJX-Nxk_o8 z>Dɹ0 4G#FV`%>8PHY준%lyJ眥lDpZXK3Hi6\AsXaeg5u Y!ro_mв8n T ujj{ߖիJDt!.zYJ̔.nj(La&yPq@l@&Լs*׷#K%/dT y؝Ӌ\?`^y~ILL +їqC4jqUk!fõT7ҍ^kgJ5IX0ՊqOrBj DZXQɪtjJ): ֠":M"yTA%5L 3HMZ~fdEkRFa/PJ?OmUD/֚}X,i*_ĶCJ{#kW,z(4VC7;]<ܜꚉcaBiQ5cjğ!5<߅̍k!Ʈ!̐<yw֔$T1g(IZ"7?lu;YDy GkYT{e0Oؼ7y^յ1nL|O( \C.䱦B#EGެkr ݭh̏:[Q|"d.xii%GOY8ǹj,aqԢ̶XN }WZ " GKWT!)w$wPBN\LZm f@ߞMũzZ^ +Ƈ:(^0SϽb0C?ӳ.{@4j5 %%>C=Y c>{D l+e 9sF(uTY'ʆ~uҦP -+~7o 5b=dvVE8=ˡ~{ +89`d +BD+ùg_G/A/O|38ӛZxREf*,},|Fļ PgN +EѼfcZ:ꑢ]@2ʪ$N /XZGw}]!k^ՇaNUA擰R$%X +L]EOQ;ϱC3sA<ȝuFCn8DehZQ~i$N*Wd:Y$,FMZЩ($ + 0S' >Vx*|]FM:战Q C;CՈBDh;a5 ]6Xs)DKܐ3ַHp9!NTDZyIthvKYnK1~Q8{b>C©7K43oe_Vw5W Q䫧.3sEi;&^~4G[YbE ZfUڠ=+Qf,d7O}%Yi/҉x'@%pB"*GAV,(T!Oa^5s`xYwߌ[~@Re+ +9^9aCgXS *&4:؄[Hi0N>0We|. ⋽< (! +hN~UFl#"I3zqK#&ZVosArtKsa5&Do nک 7r  /-*]YXA1[A5{t.,'K'y)uXwq?.>wj 7$b'ݤY^Wx/Y]z()؋k)Ʋ/kmx  ~ Bl,d#2]=Un^ZKh (JD(odΐcbЅmEvsg(] +J8.p*lDq*c ɔr|A@z.,Z% jXiIſ$2/9`G0=_8:V'x1U͙ WaPucyYTM+q]nBp%P">7B$Ub +msO(Ћ7"sVQ9o]V2 yvRc +rC[X#jj6x+ckkDC ~u-?Y{KxD9bg.@sD1w.̟ѿNQp7i9,: =XkLpoi 6'*7N4`(,u(ZN#-/ D(r-?8"f ;ֻObJ(UOi}p*~!Z \WqӤTk!nL(3G߭,+6uNA dshE~d&q. !\FmxSv+l)G,%`3{E^ac}řnڗth-~,1 +hю~2\w )LqLOj%?@#Лe>\5u%>bflusTRut]AVyki(uiD?X=<-5zRr3kW \B[D<'I4d%`^RIgıC)SR@90_ck>&};V1׾g+Jݭ.?X@钣8T!I + 1PTJ@QyRf6[ЗD@j!XVgvZZJGIKAiL Yu%e .`e +7c+lgQ%XtMn5V`kom~ŜU4Vv5Mlnه^1) m@f#G C^ELΘm#N[ S+:O PI&S(vZ|UIldRZ8c<,*Y{]]rJ ֍♌K)-eڂV0eU eeToo~cL_N/J 'Zr=O,< V T{ҩF_Pt4d."FxEm* N2ٕa<ӓf) +PD(K5$qO-˗Tu~=,ЖJs" =D-f5~+i$1 k/|dg~Dd{gd Jm?$D,%(Hݴ砘e-I) '|T8}v( +K+D؏ֱ! 4B0T\oTw|m|^Ԫf X- $%*CftI~rO8` ]HaCpjL$5Ţ,́\s-g<^ :_{w፳{uHuqxrGBYk\/嬬0Z#vvg96q/|DBDGBqkIpp;FRF:3Bΰa>OǪ:Cu=U=vߒ"!E,KXhiZQgz=ډhj6z\O1{QETeLU[_#>Rr谩VYsE,\|'3T\XRQ\:* oXF +C0tkӦHW^}źR%|; >ԌݓES'*3+oØ F3X6\2A&OPef6{ꑔІM_f!]4k<E&q}`&]b!=Yүai 3^SR20N("} l񄙆0a%#^5KK6lO^)"'g!Y0Q  vb#΁(Y-b/`Y29]05q8c嚆@kt3BTfCH:.*{=̆Ť. vϔkHjilZKWd庀# +\)B1%zP4֘5H^H;HH xCtmyˑ0=ڧԶx"v$ʷi{kbVej; (~Y#j<ͧD(PSn̼bx7旚R #L޽U wzP#;s z[ld̈MۋLvȸVm➒z X5*? +x=1F_CvA۪xr@lF5/ DK m3B{f_5o~=nNC݆ - S'J)L?!nO&H-?!:@#k9"?iVo#^ɉ8}AB|?Wވ3y +2 /`0@xTJx9?|^ AƻhlaHHxiX0\,ZXk %I!@LUuݻ, +d$(.[zϹ@pz={uήx#[ȜfW+YceH()?Ǵ?CMCFVO#LV ,vӱ$ p5ΔdK"q% CO(q QR`/+koߜ:(AAb%OUh㤚œ޿HVkѝPv0(0^!uƂi +zWn+&## mQ2  [8=b8 y5B 9d/%u~{s3(5:INoԵ/=%wx blIz4qk$ 9IeUcjēY{./Y+:y#wdeڙHm$vO= ۖTW3.8 wf~k޻@ߨZ,W|Mb襩S+& +1 "9rKk{/r-{i;7R]jgX`xQ)8Dy[=$EZj>Hݣ"b:y&.X,V:䰊ځ&54H~Jz*ގYt?27)Fށ%"4?7WqT)r-cٴ廩AeN,=qμ|4#2zy5Dl<(Q=r+)'bЀMwvyD,4Sj ع&3`fuCZt7k>=r%w|0[t@䍣w;ؙ':-m8S@!嫆To$:t(8/PPq?alʙQUʖMpo4LJ#$7YBQXXi#[xl`B1p%[;F;;S>*\ۃ˸{q\uQJ^ITuW" ֲTU_eCWh5DmW8u:cAUZߨ>)SvqI-_Z:CKp$zzl*C'x P!2%gײf ZUmkWՌ3 +,ڕQ.qӍ{U0]n8Sݏ(!UܩXGO<⧘Gp`j~Z&O(AAֈ9|Pt:z=<.o +GǛCq'oiu"G; t2DZL@8ɂ6ЮEQB^.1s¸5 +c,q|Le_kLBZ=j +TA B1Ik~`P 1@N1:m6U[2=닿c)s!ș(r +4yef%9_xP~.K2TF@)jȐԡxs.X2ي7e2(Y+䃪d2&Oع6ʷk,.2u@mL?[f!Gm{dh_ZVL]z„KP⦚`P- p0AaX+1qW.؀匔OM [TzĪ +$KT2Ygi+d%Gdsy k!?WOD xM|!HS*,0['֯/~ٶ]x i!6\qY\O +"0zm)&_~(VJa4VrvRwYDʭ'Ǒ ۸p^uQ"a%CNw !ж;2큹DcCed(% $o;lѼ7<r%/R(b7>H>,dI,\̾c\4_Mǵ0O.S#ݣ7vqWWPxhOxRLFğ|rH6[PL7O7S}4#NE7NA EΣ9۰O"{ĝ#T7M橧>木;h1-̄𛜺Ū&~= :gCB䷶GlC !Qq'R +MTŸc";) =`+4qY}`w" ,~f:A ؖ(nğ>DR`nⰦV9cĢ<@2-/񉐸-At K*᐀̴&?0*NFx,8|}O{@s +󓳫2%d`@y=aAtN =PMОݓT[dҪRـ5oV5('bm +^5z%GPݬߠ sz{gsL%CGYݼ'ވ ;~ҎԔrfi< * zOM1gfFL]b$d`ث*GҭY~љPkcdh SDʂ6L]PGp rZu"9@^M A!WºCK˘Тqσ\a~ ocvko?GKQQ(wY>;Rb}R0ܷS`*4!FG b@S  u&[i{O d1zUs-7O*4@GCo{t%F>/MvJ'4[ Yi,ykxOOX`:")A>QW(.@COHF|`|l=EGaj8$YȈWOgSQo+"|JPt6J)AՂem͖ hKwSaYNf0Kr_\{mJ,{hb,`01,Ndo$_#obz  E_e&xRs{h "o#"NB{8\UYP9<:bُ{$G@^Z&)% )煔;4ؙ/"@4Hb]i0Y"b/k&ן(+1fp6Jx{0 hXbye$<<,͌l%"xJM%H?`{!TlU-F2C[V=4lhՀ/_$ZR^UNpu +"ds|R>8N9Х%#P~YIVm?zd׳@G. _s2zžc&ó0+*Q ɒyU +ٱDg +X)N@!Wqcí!Y)kICggl!8zUFxb!*2ة-%/#%0"\ߕwc9:_HucL) Wz%O=JHb3^٪RE5m(s ̶echuX7 fnf0.} *jy΅3!VXlYߞg?~~+^|yGJ7녱),!IAʴM`yees>stream +woqU_ oz8f`$cǙ$A HA e@ h ? L\aBq엩 jJP)@$M-f]Vc"fv"B_z #\ + +$&I7,m)1pƐ$vM{Io-iг}xˡ1(p &o6V&,0\ڨ@+}XyHFx9"=ABjKWi~,}y+} $E( 0"֥wa32v0}%sHqG<,Lj$x|O}CD$phÌ-xC7 eIFDʹ eUpOVi;d#Znq9xԎ"}CW7 k06o| V_K:Q㯚5QͦY`j~<p`Gd`%zSek!b  +lmP +Jj+Dmu6Ҕ!tM7==g"OBaP`do +{?CYVC} ~Yl =+;9KM0d{(-zXl' 2À/{?#s C/*yC{)5ɧtMel%{~]Q:z9xte`=%DR^-w q [5@΀*4=2#*&yXyUy%ľ=Pk<C8J~Kܒ-{ETobP>oF%(4TFҫ?C]>d ,P(gg|e6MXbj~opت")q)* SacH}rE9|˹E +tI'8qDE{ z9D. ErҊJU ،ڏ%,UE]z|zH<pᤗLx. t$DfK1& t)N,t-;g cIU6Y]tzVҐa;єGQ{"r*^Hr(k]2u^(\, dMXGz,eh4 p.pQX0ÙxIdHe|.x W=@.;ɴMWD풃[S0a"G@o:&#dD_uO瑒90{q8v_m#DdӤf"qdTPv\udKA_[w{>1zɒAg?CBDj,zKzQE@[ʯoD +__jXxwi +lWEX=xh1 o}4J lB52w#w=lH=چ-ioÏ Brv< AZP$|'Rl{/}l[F/Sj)rN4!$>[Y&ބ.LfpX{t-$/%>l3Xa&Ky-lO AмcA >> +{@zJ זxr+>vOu}:kN@ʽ;W!acz7\[࿲n:Ȥ1CMiFZGT6dҽ3z8c3砺L!OfA +@FbVKƍ)"UaHf@>o.e:E~+4PKUWmpqKAJDEOpmn?=Oޑ`s'*1lXx "$*:r\$V{T,IQ4a#6MU4%ώTߪTߓ{26oNR EߝRJk:sw +q"9> 'ȌbAp@ 9KN۟OgYaRS#Qv> {+ʌiT꟔QWa-pgoUX+_r U8fLŎ܂XmT`EJ8﷑%L<.n<[JG1ڎk)60tɁ$cP=!>Tq:΄wT݂Л ×2i`)ܡoG gsN7#Ѱ̩iOڭ.l%Ƌv͎r~ObEŇ0o 1/_Wva4*)vU=Z\ MfBOЃH"a*86a _k(lU{ +8S4]0ʤ}Ṫx&ʛBևJ@ίC$m_Za=gdfZK4 ȗHKݰ_ +~)>Ct<8 jΰ(H*ֶv͎vP$G.d~UVKc\Phx7$4 UgXJWv|բك.-n4PC.N#5;QdĸbX:YL5T'rYjlZGD1rvV(G1j?žJxmf`* _''75hTpzrA T +[/4`C + )_KGbi̽€n +ZcU2vj(ˠr.zڦ sQӾOwādŒ~_$(ۈ,DIk3;Y1硦I1S@v`BbRn%Z@0'эHCr@|c1E(~z(j~27 121X$3 O*zQBHrPL]r^mHJRt&~n²JĿWZ#dk|/JKݿ>,^6,m%#g0qRtH3:-DTve{R.u}Oq}Yg(dKW5l%%(yk Yx=W#V +dDA W=f: +^aҋ b:5 +D*oA3txV,Ys7QJ$C/()w[؈P*NSNȘX<Ck &qh*:hıl;mZEPDQē'JLLBYzdYO!!@qnp Kv ;T\q&r-rDR *sEKV Vʨ#.I/i +|9Zt,m!& 1z Ni .a;'jKVv0'b$(.&:n[ ØJ|ʑÐZT~$SDJ,kOoỵ  Fi^DWI9rf4YL9oyy"Cbxy?9eN<%AQI`-qGV|> +D. N8B .X=q@JOTӭw(0PK#UwζSGK~m X&Sf'>[U90 g6G>r>\:=EFA2B4u0(dUKa/G-D^ 9~8?ؕO x*L+(&q5X'wU_T)a'I:ߟ@`?4=Ox8=໻qcz v8YLoaKPpo&E$=s鶷Q;<4!^OEF?_)0՗D&2\A <@E=Bn'ҁk?8U ܠ|Yg[J+0JkP %{lN۵.g vmfqr(.zȊ.Ths6c1dVH,ā">놃h- S?P0l6$! v,R C#-AcGTL=/B) l-vIXʣt71 L[3t;Ǻ,-R%e˅YQ hlGS<._6JxAe"U[jl+0`5񚉮x(`eK:m8#!cx;H]UϗүdJ 7e2!ܽ6E\W&P^a0S8}Ʈkhx + vs S7dg{fxSNdϽG`! _^  +^8 + ;y h 魌bCĩ#0y l 6Va LX?ڪd5 )̅8޳l$;,SJc[oBJj"}:(,cpĻ>ңN62dqmP_tovq@09#ilFaxVAUPؔo@A\F"NQ#%;vy(~/" 2d. <1W:`15Yq'VI%VWIS/#mئr9I*fK%:jC(RpwӈHtɋ3va +m[<Ӗɰ YoxAKPV O I)Zc +@ r8?8/,Ȑ?-Rl:X 6`Uf$rfΤq鿶%M՞ȤP6ܞe@0 qՒ둱ꚰkeK͝rH} +Ǚt*jfCN%v*FR + %|Qar79F_Re9S2PiR?V#oNoؖjuIΎ$&l!f-^c|d=yT 7YAy&;e9"Ba, p}:lx;{&4B1pz#]u¼ըBeMN!Hi۞ŠNBB3DS m3XTĘбs8hi$kPфRT80I2䔯ԌAUJPޣh^A#pkۥ֎ ةpreBأk0Et~|d{ 4 YSIP_ju<퉩RDäͥ ~/ (bQ$aB,i"i9 eVa*˥NME<(a!-\%h9!= tB@Fj]3ϑ8tEd;E/>]%(Dyx$jO1:ZQNn*$;zw$5{8M9yF3ǔ"P =e}T5s$XbK;sQ:Nr\\Qai5sMs),Cfx%Qʞ-}$5Tuu+H*pRC$su$J~2`Hf%33pW/݀.KVź! \\.fێE +h?|CS`<_N9y5ivQX`B@#d:D ;ƈk|(B}a@HP!Hm8I"43:n;`$R3Xw l͕a$u &qͮϱd+$x$"1D;/zr3'IϮr] XROjd:i3UD6EҐ\-W^ bqɱi p01 +SwvQYJe,B"A)#o^i,u(eB +ZԂOEt1H7L=? n g$̂ȄDP;17-xpIbtYXj%J*#[?]3١?7T/_1$"98*⮴_r{_Wr88SDS(]Z/AX>{fAevjv yمl^wa`1,$ 2g's/P12pPgMPA&M9^Hi6,2]PQ w7zaH]SM,RL4!sgCoq3[ă#V.Qe!r71.<4dݮa;$)=#9^lD=3FFbO3;Vr\2Fc|%QȰ3YP1579)RfZI7!!M:J/A3//rYCA I$$ID(`6M2l|~j XkOyC#1ݣNF>RԩL7pHz; + ^-%w [c;gB:E^Ծ +(66uɟϗQV_ ?9@u:d2(a7`zNDH f^G,`T(68ɉ^O4&͒#b ]mm.ES0 #URdl,}$ Tߦ!>/UKlyAk ͋EpJ$IZe/RN%{<n SbzpoY.WppX^6_x7!zTm:l<|LLƖ#Ew^A?P,#, ePFOa|{+l/.z4H#UOA? @1;NM ^jUߩقcf =mI.*J$ W)v{G)>X>7ЧTPkIyy{he'I)@o,Wu~û{Z-75xIfbV?j֎ $Z,4cyULO~:k|=}U\BeNG16*ٞ7ÿL|RS"+ޟk?mDV11O&sLْ,?TEa"Q<6z+L̦@"QE+HDqEmd#}F:oY0֙zpŤFFP N3r/1IKls 4]^~eE*Ϩ1!hV4qa,;Li4% ySG%uz+@ië8U)jt: ;HAfoӍ$fm cF,BG9o,0#JW{ jh]julwv@^QBUcy~ p5 !C7X'(zjpe'LЩx.APD=bfpR؁Ϛ%$cņFnʺ#ie YGB-PJ6S'قD +s+Bt4KT^Uɧ#n="/ΧJg+]Q_TbA٥Eu0N3(/0Do?Zf13 ~2I&Ճ8,sA]V|qj26M_T7_`Q ڱS͙ +rwQ*,W'C?W^:p~ g:=!e I6-v)sנfr)/* +O,c#g|J0 =JZ[P,ܝn +([ \+nޠmu\{)n:[Zw ӡK.̤<1,/4 c$ ͯ+`=ifLu/t_K،̔E꿼م\l0V܃XW5 fj/1pRi,)w,AIE%ݕn +8ުUnY4 d9 pZȄj1s`auXX-BQ> 0yl&#`z" /_Trfthǹ._(Y!L$d",u-RR*s}0*p>(1}ГsN'obH#=Z3,fT2u=>u4 X1"<$lPvjE]צ2M}` hk&Q6lX=lǢiK )D~6y.FfA=s2֜oULh2[pFX +$C7]gPFdH<׬ +jqK`>1#/KHƢ<ı gKXD ʁ8A TH&ڴA\:Z³5UgFGU7DV\͎bA>e|G ~Q|5p0;BR/}|s6Ėc=誑TWA}áA2TA* ,Pbf`5p@m}9/r*̒\/@+ ꥃځ$,[rU<dµ〳Ӟ |6 O#~ 8CGf&QlA[.i$v̎fq2k?ºÎ \Q/ZuBRohwqomR_?v"eN`HOt ץ;ќ؊eC5X&!e߾hg +8n.v{H lTQ ,Qs Eɂ1LTÔ!4,ě/C( C mbp @"~J9EMHctKTxhx9%$^z{Ap"sK}ը!=fZDKO LY88n+TqZ=닶5nղU+鋢G']ߗ%5/="UEzj>pRs53(5DҼr)E쳋I54 Ā+z^,ЬlH/fWU ;a|bC #igQM^Y64U@ñ 4@!Lxp^\Ok`5V# 04ADӪK"0C%☪Y!҄ZD +#m~~!9!f}u@-=grpͱ_Y11ظ?ZX[(׵Gh59E 3JyW~gij C-8h^5gyY|`n[y1 h%Kd)頃j*RftҁnPr +Wt\Q*T︭,i +;iK+s̈,~h;bc bRXyZ:@-KJV i3s/[*k1`W~51=.6&ӂ{п̣jxDS*IeIG67L-L!=%`0#݅M:A4 |ЁNc錥.*uDhB;*%1}?[EpЊ3`&Ñ71]5O(A[=6VCDELPY#E+lPVScZU_ףz5Sa&1 TN|/s8<K쒵W+~- jwELT܋m֪~8,6d;؟WQxg"و"ٟ_{j֞9KUu+hVx5B0{Y% +gqVC`Bc7^\,>|_9`n3rJ +$qvQQEIHXG-ZxB}JB(O1WV_) d^ 3 +'ȃ:,? nǭ4#ܬxNW=`E6l tz E`FZҮH>O)FCѕX hCIi*r3)0|$ +][02azI·DO3l]v,kݲB)lTO[şD?sg?Wwݏ_7_~=o?g28{ ~CO?7@ou_?~|o?[o:aN_q=i׿os~?_귿Sο?ovʻ;㷿m_ 嗺Jz_?_߼Wz5w%V_|#E/<87yG$?|O5`:Ɂ.]a$ kX+~\$6fJD,1%h0^F :y. >j&O1r#XF7fs ssc}ԁrc3n\L͍hO<UuLx?hd#Nuchz:HM?8)Iَ8':z9<0㙕=n/D2%a'siFqOaQ)ͽs?Oob_jD: ьrw4_y_9 _SZ_m.}Ѹ@tϳ^)G#7s޾ѳυ(׋~?ӈN4ӈխst:<Ύ+ GZ< +2ʖtFqOݗNZG3uzqg3HdѬGYwdY4`4Ƭ ?s! :ќ`ޢ W4"Aw'DhE߄'*3"sm#xx_A5§ z@7ҭ{q9_57 i+]d:ţ  77O4TO[/c:IB }i_'თZ#^x6bqķ.MW \+lW\ r>;)dύ5Vد\|0Գ. 2gJca.05}8Ϗĸ"Μ@JҗFBwxB[ _]q58OEL0ݫt|LY{|20X&;73vtvsN_ fO{/'y槞 |YD$F,ZQ~8&Z.O1է3uZ78ͥ1()sK2LjDXng-m44 h,@CHC4mVhwrrcv4K}˝G׫13{ʌc>z`νQLpkzjY"ytie农8D#hÅy +\9 ŅXk|3)RcLcd#bAW}x~Nh ]>b"dR;}#rw8p;n0ZN@PP~Dٌ}gӾs?)zA +Ԟ>uy46߽8E[=w(;,_w!T4kFع1hsi Uy|^_1c8|eO*G?ޤ_~2Ӽ֛?Ac9eY HD[*+~ ˼`Iy!ߪ4xgtN|N|O-ͯ +Qx} : XR>x 6q!W/_K%Y{Uc,_?ӻ958SOјv~}z;n+Of)31@"rx.$VM3I;B=LnƝ*rr# q~yPh9F9TJ]~1m(&G(IWsޒf%OMBvzfLsߍw:Kf'LHŧ%z\V]hT\g}]BŒ}JмZϼϔgvKo1dP2>rȒwhEQ(4힠d?DdVc!SDXEVn| 'zYoxݽ:PujqqɞFƍ9d{e=͔Xd}Ż5IwOp)ˉ$g 0i7l)Ɲ_G[9AO75}hp;vFq# |JYζ)|iC,Fdi #vnUģSOl mt&w]J;yHybv~8˵]WSϲ.QsL ۈ Zx P41uW1#[WnSu׶!ZFM)_"n ]Rnc<Hu]~enj9oOyhq77>‹yӋqqu}5m81 9A~{AJ+hsh:' 0{9ZMpNp*bw~z0o ҹrQ~QTnJy.4yeh54ޭ+$>{vsLUtK3~t~y_l$ֳSh~|Vxܓ@8eMc~?rۍyͱzuOP]wz7ߛQ3JgT:oy3}qx4{9#缯/~gwT\1+/] x=UkX Ι9cV,-\@Q>~',ۍn^8dmg;Ir"t? OYζG[96eU&VmВH*NV7'Ah^G=-]LZuTL3T'0SDh-7F'o,nk ˍLd,t6HhY'ɴRn%wPCU|a{J rP3I>խ^i)?h4Ah(Z=%7QDvG- -ŸMDZV74S͡!i&mZZ +EVC&8ENW?$ȍ5ɰ!H^^ڊ,gm r#7uҁ omP_<:'5z5 dGFtRϕ}MG%θ'3A![ WkyXW`ST#+Ҧ +hB++4FR6BQX:c`>@itrT &FL({Q LСⷚݡwSF n@pkIEȍ$Z +B8ȮtY;AUtѠ#`!^HVtcKkezT\$FnQĀM@MKQ-HxlE@k応h` %m$?%wҝpBe'RN&ZeG4!۠?t40rebrBё#B$!|:ׅ(Y۴Jz>z]r\'e}5e-VMR ,ѐH ^GiŌ.a4YCxSAHC +l" R&.)X5͆c"@,>4kHDqQ!ZY#3Ip` 1@DM'X:R7/Tm$DO j)Ҡu0rjUm1V˕)fhvQCͥAMQ2lTI#9^_YntrtR $GaԑfOT@̜siCֶiW+kJA٤ƀx88]ׁ;9kjɃizW[4O+7[^P5BL< +|X:4`.iD0iP|HwfjIqIY!HDIslܫɽH_+ lDѡC(@)ʄ,hm +S)ء#NmB$$XBhmP([+(?-R3o= pz@,=8c@hJG$FϢ7S"oh4J^hZ,")Y#"QgSw1*7S^kБՐIT`D@:եF]ntr^~VF5؞֬ܫZy/4G5t2VH̎8¦4h9;GW+oT5hʪS.ET}ݑDЅJ&hu-Ւ~FRАQC;i(Փk*%;Pl;D@ u%YRY6'_/ Y[8'7i%YO^jPA#9}@)MH v'*k&' hРvzH :vJE<;H˕mUR@ki`l+e+*תI?$Ut)+Gih鿖'URM+kR74mĶm[Ise]|j۔?'R}j+(`H$o RtӲF{ȍ84hƥv_E1kIGG5Ugk%t^<*ѓȻ9ɂ5U02"`V3FJ{[Lz˚Vo/eԍFi},KBZ>vߋ!&WuRд~|Pb/.0'b{ +!IRڱbB.*E}Vv'GW `B{neLk'Ԏ]ѝYڕ Gtúؙ̜ +ȯ`f w'C2<|M%ec{ y['I)Ʋ1=\EN҈BPZ9Kq#x?3l@!"o8FHTݏ _Ks1CߔҊn^>\\0>f\?X$tR?]M /yx,l<\;ΙF(]}:yuZ",.h\BAhZIٹ AM},Kј/tTg-T/dOg22-9|:9;{Lրnv;vꁮKC;_īZ+?^< cb\@;Wkxyy3U.fO$9̼GdF +DwRzKA}I sca܊>&!bb()^L%EA0㷲׃o]х*glDfbKKy;>NAI^ bZbJBnx1{1b2{dSLi+dmz]->T9B(Ąq\ y`3 yN]~R;Hb3Ic\@T!` "v֎{vs>t֛ōl◣ bF7>nb^xr5yu2YWtfzZК_lU ];Ӓ.첤1]>^ЏyY'WƷ+ ށHE|zKaH!MXڛI' Y + lZ$wf2{Đ"ң]btP)`[\S.j--fYۍ L%v/8 O/187̃_." bû3݅Ȋx*GE_MڷB CAЖmT|QZmdTn %݀u ҟsAS\}a=X/Af $K#ĬbIbz81~HbyCzY,, RȢx㋆C;^2֚Ղ5^h}>|溱bG[6"܇O-e>^׏C?2ֿ#$UJr!Y}Ќ>l`R/6Crh!u!l8X:\HCzUjyD :u׼ņe?Y5 +bb,~iQ-ZhUx},Kú$;?hmw|n6ytxu1yu^lRnrO6M)ウb>#"!n/t}"")*w҅XcaWvRqCҡbt0{`A51Rm do/#YJ}K^ٟ +[>kI0N(!_{2W~‰AX(x~@S1lhj!!]N{Xs[O7Xֽ5ՍẸ2?21a0+bzbt-ϯ#:0;ODw/;kxub]HeA2xwĢۃaAz,~AߛCz .GGuH~C#ب׌;+"a,jBމBTPfixWRX/&=סQ3L@&Yo;'YЮɻ3'xb/hŠbT`ˇa :2$ SjGcyF2=X IuTlH!xov0R|1Ḙab̪RD12o0` Q!A XXCU#<19M< aºYa݈HWe{GL[6<'W5PJ81AH lD.oD`dilމ\BH.aQt&\'nϥï,dMLk!f*qsM.Gck0~6韰\Bp.{˻|-@!i}܁XF{0KCxp(ǠĸaBpF_(al@ +d/}GcPtt^[n t`૩L9#[rlS}Z,sqq#U'7?JpAE@O/,Ė V—&>0]f Zu#Xߨϰ.ׅ /#мF ֣_5}{@ﰞ~yd/l<$ dj=>dGAk0 #|\ Zhlz1A"WZ5(0Aآ}0凧1?V"]dT) +qxYrrgswgӚFEHV2 sq\H0=~>c Mc?Fah|zqa9UJOw&+Vhc+ rgD\~w20撰؞=8-?e֜3[۟u^6B^<>-:6vX5+Ɣaނ%i%8iYTW@;K@f/.t0l,Y@\Y4H/ +"X_Fd V$V17\mjlOl}dnhRrC!i 'CW +qA p"AJ-yd; a9,seÀ`;0>q0ASFAE~A&Aq9w`g5#d Eϖ2μtcKѮ~>`}`ѥC̍Hְ +, + ɄeB#3pF; #qY֏.k\O?!&wSXqdhxt {#[Y8 AYbB\ |I vn/!Ȧ#.~g0HgMFXw2/\4Ӱ|4}A>dw1t1- ʼfn&."Z Ft"3 uaEggf1S0n&ΜZ9OLw \_HE7㙆o豤W?a[_7mlF6]_؊&.؉ET~JN:rEºN kMz2 .]Ek! }^?ŸgȌlPr/XS+ 0R7aS>8el@G"[pzPkBm Hg#[<xĭa +!@а-sl;= Grez_6j ɮw|7$o]IHfMnM+5t,-Aw"?l3xoFú*m№89#L7N̶{/;R~Q%u <|v\k1Ň?ds-,CF Vf{ 0ނɚf,`QߜPVfǸCX" L|={𶐷sm"kƈ cǂP[=LE 1t$˹ߵ4]RE&Ȳ]}eý_6>apD:s<Z\wBw!z8UG=WK!ogj-w><˧Kj&6aաl#psL 4 خ֏^VuBjKo1>F!S٪3M*e\,Z`:+XS-?xCΉ &{? #€M ׼ϥq݀T "1C +^>aӒ. l@z/>hZ٥vRO>laYRMGP,쫓*.w&vMV( B.2c`=!~_ Ig6m^sFo|ˮ6I( +".';8+{Α<ohҪm? ޒ3_ƃ/|)o ίL q)Tq _ +u>w'1zproF)c\Bq^-,O, +|v&wuTLP0_zdcD:YcSaOtw;W3֔5|zalȚah;gK`AO>|#{7Ԝ֙\0y{gBMߵqﴭ)[Nc.l=)Fl6ϡȦDvEtX L!g$GLh# kdrdjӱU'u6n8ּ̙tƟpky yhLHX|P\/?<ҷ|!!^L[;wQA񽰿&][ՇLwl0oC\K6L_r_|+7U(Z $uX/Ɉg54 'Ɖ)51_B|w؏2.3=|y nz<)1Gc aqs13 a +#a!uOB"o$U0__:e<#C><t(liL Srd*O¥'׎V?-؉uGٖܺ&zxS Lmz ƘZ;ڼgr)v5#lV1^]0+D =_2qqa@OY6`b'ȮRrXa|SLx?607P?`lc{?6_R8v~s~&:xsY-men`MoB2lJ8?٦K?TDS&{,y;އ jl}3Klo +QW1m=#$k0 =fخ[AEp8]"?ǕQcQD \usLkO&{!mHbK!⢀][1;li$kXOF q:qx=azJh.{{\ɲBG1c|0!*s0F0 :?XXr+67?X1lGn7Ӱ?"(7ybhk Z~+b=Ϯnۏa ]%2lP|O)B`tOCyYk߃w, ~$PF  >Rĉ:bUBL9pc4!-VLF84dsUY}6i pp73%et&fA»"{cn,` xH)_PWȕ?p~6xU_6yGwuv46>O;KXV_|w71ˠ5oAI8ʚފ(p"1nʜpS? +L5>Kϝr2!n- *e4؃nbgIP zO$@d̾_dwa ? +S qBQ7/f" %L׽qY,_<֘%`$H.~uZs+8S['3f&pyYH  qU! '3f +ck/eiY'53C |/E9SFyy3qHebpR8. 7ā|zaݰ!uXۅuw3w.8s [5Gdl|< )O~Eʇ=.9<1p e98/tQ! x*}9QhOT-XĪxXl06Â~cl& y?;o!~4L`7 +qaˎ8[4|1)E '3UU > ,E0ngT XT_Bkt0?5tA:NmzcBݷ`|#sG:\<`Odn`r>8⨠jnӭfģAoC tyn{_Jn83-\10capy'O";od 3[,XZ,۱)-cؒJZeU#>Z8p5h$C/ ng`.Ąg.|՜1rwbAG0猫.fzm~0teݫҷ'6bZͱ9f_0%p^DlP?+;|hOt)8^6c*iAٽA nΪ3uU9s8 +Y{mʡr [ Շ! d!. .6_˖mþآ!8)5W^`x.[rC3Ď_U %t{Hkƈ%;e_9֓rO֔kGI 7;̒]E**B\d +!nFޚl wrΐN!2T{āol[zuti%7~Y\qv\wAb@ c37ٳ9;c+q4oy2_hlryϹ cKnf`^{f͝OD@OI֍W*2dLJ|1 ہs{b|7^5_4_|LF Y;'n}l);>!Q&ߨmalqH W ps귀cFD@OL oE:[=ّݓ gχ&fVon2 ˹]rqU8mYRkM' SMms3:>e,| ##cќ"N5 ZM߶7ޟaj>S}"~0Ʋx]9z2dcUi"Č5cfbL:{0I5ʗV߹WfpmLү,?_7yG&sIͣAkhgCb7FR3h+@^Bݥυuw20 ;8&85R/ !H#K.slT6i82/pMK8h)c ' ̺3A#<8BIR Ⱦ#;/Hm;p:<;w) vA|H-@L/`b_As bsX} }~I= +ģ'q'&y]Frد~kí/Y4|R($|ឡaªMv] sknme=tӱ޻&S-oRm| |;-E&#NĬ?pm6t{j$!]8W>|tlpf_->RwZϬ3݂+ e6">}` Sy=h6kxhAUj?P8 +5F 6[<bNipnxete_t6Wf9pEZaޜ!B&^c?Bpۇ|ѶI!wjhd.k#G*c/:6O\; +p3}.W}>q4}eLKbP@. W5;+xdG ,Vߓ|X} st&aǃLFȹj_1+>4)v)9Xx` +WkxQDu8 6> +U3rqmNSb»d׀:8#|GIVJ#o l1 wݱZL9 ++2@!`τlǺ81?gLa+)ZE|l)B:6Öj^3zfՎLlPȉ*p9 8m7Fdb@Zsq5l~E r]R8!wN Og^,kgP Yp@kQ  _3>8 H? 1?7}c&0mMZ;b},}q 44<|Kg5;mNR`gV=}%Kd`/V|@g}yoWT BblwΗy8L) U?ep +WqJ1+qz!mSwڈHѸN +}i1xc#xn}#b왥gL7Z +'Ŕ8PwزN`-utL)=[qil \ՊlI" 9|Iozt6g;p-MM@L)9b^soKKO4^,a"~=?`sļ}pea{3m], >bVmywؖ{9[v^ rXٲ!l|.{ۻ̺_-m,W?Fb_‬_F/W%u81yX!;SqN281Gv{.c8$s5/`غa戲ĦLֱ Nm|x}oM?/a-,02˲lnwhP;+ÏD\Ǐ=r[{_箢1c +v#D;3[nZ6_dZwM;3dP(bMjc x8A^'Hs"lϵ>\n~]b67pַOgZ6k\{⯦lz0t 9֛Aļ/z ~r3eG1t文_Xַ}ljRoYyOnn ȵe݃!wl>ݍg>4iͽ̛{!y;(H<;]+n3 wcחK-,#mnf6=gj7=y,[}(6\sغ+| ڻ_*p Y>cߕe{y3-aJN;Y& +_O6ܜcZ1wzv>ȕс 8A;2_ooO#1L欃\o]m:/y1c:?K/^50KsY(wE ҅t$>̑Ws(~s+zFkK-ݤ5WgKM7df!1̫lӽōoZsS+z7Gz䑱i<_ZfH>8GvgvKW};p=X"#l{`cin,мyo?Zr<`Oܹwa_(ٕ¡+sL7>1ox2}>cKsc6>÷ܛZ~--y˺Aqkj1 ͛}Y̖OwZh"ٯ^ZcϑxYY}'|D؅q} U<Ծ;tWd>v|o wg_4_!^폑G\!be/b[̓gOj`ĭ{9C`ɶ\nK:.b)POX"}xnw>,Җ[ }t1|.ظaܪ3guA~r:/=6^ek̋Ӥ/{2ZӇG=_Ay% |8ažuuO8ullS㽏mݭq;-u׌1zw1C.֍L^x{fɬ0Yhy4}M<) dυÿ/'V R_/}OCsCo9Oow{N[N^|"ݿJzp.Or1癉<[~=Ńm^ܾG3{×}AG/.we]O\m3;^^7yr +s7oǧ!G+sO+,߼كOXMo }M/Lvm{n-r۫MCܮ[${Qso_1eȆ׌^1M.*kSܶL#I:})QҚscy L'ƚb7cν?ͳ5{`=}&™%Ngx</~s=P&b\i s܆&ԉ ǘMb>RR_?/yI| 6WξTT_~1j˫J_>_\n( +gO>܉M|a^sS_ }}"x=ZО$R:s%V:59¹č!;a܉G>wo!y$}>Tw_?'?Γ~ZPKj0S+i:˶@m"/X\cU/};j>N,Bf3L`6ґGM=\|n[թg<5ϯwooZ*B ө_<ܿS @'7SaN=>R-\zs[92.O^π]JmQ_x}UCF'k_/~eOUӼ&j__d,|ޡ3N]O`oGo]Ǧ&i\,5?,[~+qBtr2䙗_*N3VynOfƅ ||BzO*"46f(jʼQԸjZ]uݳ^/L]ڜ{kUMMWS*7_O*q9oUsUWUGߪYPY&se0+/@(mno;mow~XǹA[ׄo\Ҿ)}Zѵ|ߖt_+kE_q^D珄E.yvzg +B~[\ح +[/y.eTѶ~CʺkU+V_ɮt)rĊ7bJ/܉*>s5cJ\)Jl /$UlVB^]/-^]/XHyfݿ GK-?Ϳ,|=v.Wzy׋Z.u_WKy?ɞz';kbVԖ\ˬ{5̍زScJSzRRUw?yoywo7mu{I9&g.{$V|ńgSꎝMs>BfUUw mkWsonLj%ڨ<亠:R~MƥҺԫuMg3k /42~?V_[Sw&fÙěUHJ/j +@fySʢ^/r"SwНJm-zkȽ->p/.g(W+v\Kp)b3cN}i.^An2K#IW+ +]s>jә̪+U5Vj h\i}vxcҳ;%;ER|ߗYv{/mPֺ.}s=KSٱ>.~u]K_t}zkOkեݪqd,n]űM,^ۦvOq[Jd_Ky=~kq҂/_~zaz~5j_}-.j{e빖L<yj^ݽIת.6n^wnJ!N*wApJvq햦qWvʨ>CJḘzT'j#ۛ_z1~k-_OrGwT`muuo4[-x.>z}?֍XPug=c+s/Ԯ?^^3 ++Z*|m`_n=cq_Σd{d^[ݸtjsNU! }7)~̬~l3`_/1e:%䧶?2oԚsʼ\xxgɵgڢK܎Yrj ߎ݉)}/tr_W-9rq]ƪFB{o5^j`7ךOՄUT{U}QJDDQ 0(&r DI3JècŜft{fﳞ}<\~sq ݮZUuZu,> ״F#O@&ؑhҤ%h$uRX[$>%RRQӅK5fל˨>~%fAcc_I[m6njTҴiA]˕ҦkkC^ʼ{ԍls]CA4]>[0by9"84ݟ$B㬧m8܆a!}tc~fL04Mw@5RO;~x,xJ> q_'7*޾^?XxDEy=M+ZZ/w/ym^ͩ;{-fՂzlN\̭;{!µ %-O$W>?OoW5 +n9EgM)f:T;[Bݻ̧p{jPdAH i/-. _ǭi(Ih,Z@Ww'L].;U^|b}}eWJ/iP\|Qs'>W{L~~<7]ͫ;x9R_f[܏Oʨ_~Oyt R6zD#[ [<ù gNZ}pj>Ik/ +AjF!V7φFSѴ9ȭ䶙l"G?ټ\Q5.RPmLͩE!*sj_ɭkZ\|{=rUwzHm8a~26Dk<9j #h$9.;|^ν=:'ݬjT~WTe-uǶ5oŶլ'Skw3ImBG |Tho[%hhl4YCdj0!cYw&2g +GA;4z[+!*ފ[ 6;p~}.v?9_ŕηW~w#[yot;Cq?kE#p?Yأfbbd9YH Y sKw4l79EvUhASKt˓95'+Irqm yu86khZTF= Ů]ˮw1z:mf;b:_n2hl%4L}8еEFӑh +MGG4@ci4|ah/F0瞁KSN{t4fgŦo_?Qlᦫ 6a|rv9Mhp/M*l ц=<{35BfRo<П̍a< 7Y/D& bҶh&!76r:$غ\抾.S1SEw7=t/y_N+̹x sKUmE[ c !ye眩hhdp~ ABfstcRF +FVsl4^MZ$ ;p_-f2o\ؼbMͺpuȵ]nxޗfvssֺ_X / =x*S sd=iu ~>b{No:l1=B6фihG>F/IGV( d+E3/{60I^XƿsYvDgϝkaÍUZ/aٗkX bD4/ӳƶkv~44_f}cp=d7F:boレBH4ff (բ1>.rC={'Ǫ^,ӵLEޓEug]?[szVU?h}$c;Ym k~}lH@ %-=d:+s+W<}<GRQ3XlSDr2x h#shV~98KYb"-|iMgp,hٛ~O3x՟ kIuO4d!n >'!Qh7nmd6ۏfyHrbdeF# ;+ +ٺi4}aY7ϬzxT.YӓGJl8UYw\q 4~|ϡ܋gXb5M m:$:+K,#'!S%gFihC?IƎ^4ypL)Fc2h *4/FcV+y_ # K\_ +.B}x=ձ7{6ю3kϮm{ܳ)仫yj;oX]zUբzw=o6m⛇"sb?H̯GC T + #|4GZFvb/Y'5Uh0z7-ēK +nc[y_ϻ??En9&~%?%!ސ9!< +논Wkg~c}RS4Bځc[MbF]iv=C⢽#)j6Ra8F#s[ MJTMWT;5*.sKrKoA}Q5+#z;..{jH,x"K}\Fʯ[?llKM_82zo"yߝ P9;)?VxND$,8)5L5g!0ӌ,4ZL F61hG:^дEQh=&NuGh\ͥ%4e]- +!s"_V|R*4_3| +Lz.޿O _?=Žưק߿(g}H^T[.}VTx{c[Enj/Kupn8di9fy"ͧЂ65W\&{*H%ǕQWv']4߄? bOgAUq~olgdGvC6Osz|WWum~M$Glx[}rt0cU޸I HF; v2Ag{a!7@EUYP<o߫뽑[_PwVtqZp<"{<ďkaoʟTr_?"8՝gC>(a#ȉ93Se2ڈ=l/C'Sg,codŠ$`Y ,c E>]}asn| ,J~D?-'PwM<o $u$Eĝoe`}'^H>z+);d-toɋ#'k>:9j;59p7@qRurfȃoCnlM[qq:{1t͍ +q\@vqH4t269hd_4?9tXsSr%,IuZXU|+S/}|3#7߽]- 4+Wis ]|׏GO$GyKH)_ -< +DZܩa'1k});>,ɝʕ;e(}sIm1<χ1S|ns!n'OB{!k]OO m^c4͝?R<δ͛n/xmO-;k$>#DfIjO| ]|_&YPoQ1D' :և ؝?>J p7Eq<~^@Z_bBD4žh BC5_>MtyjN oF8>E2y!B>{E̽w)"3U?)=*T=PR|}|Xߥ}c)i2]MfQ;{0MwsZsśG)uMm^w88 %LJm֍j>G~Xߤz}fi@|@_ FMvES}„=ܾx'08\kt>K +{\e(@8*X=4:C?,cx}W~N'EcF qh!<&@.j>g8s9s'kc';}cm[!ܣ_p^\lst #CxюީD1Dz3G)d_"G/Y덩m}d.[z{<,[[%J"u/;^\t~ +u+m6CZ~t\Qۻ>y\3GLY: j5 w= vgŞ M(cT+jgL@yv8q={qwStr >idĭ7rF #WR RB!LALYYM馯g7Cm{|'^d_1lf+烧A}a7ϖ]:wglGw2kMk| +X{bqXf`L|硶39PǂwK~\Y %8KrZLk\l >>.v@+MA'w1#&BD;`MpZp^,C^n0#9Ta[fO|¶Vq}\aPHwraZ.OoUQ~w<,/谔ͦd_- p:ٯB/B2gqޯ0;w8y*>>z*9'Oj4r[$Dj4ʾмSɳ+4“s#rLBW ̨N_\|/T'O׋]V^f+1쫕C|{z?3T\Q;LpC?GZ}v\aCr@p:o?= /@"N WN|Jp?>W[O\Xm61W44#|ih& 6Ӓז.2联uMPe7g ٴa{ O1%[ &Bm͘'K*26)= WݺY \`:gJveVOJ.Rl ='L94#iAa{!Io af^A_\/@ vsPBw?vՕԤKig@-wJR[i -wRCDP\#KTr0_,d>ÞOŕ{Iҽv=w6,zO~~o*z%~+`_X֒%b)Q!*UC\?W9"_/tFNS" )B ]4Ri$ft )AP< kK瓫<ь.:JL*D_/ܓ$v[Ժd]cM#6qI@K sE=?±eAwU忳~@\B`"|{:lIf|a*# 4w>ro͘𼣣rC-hRL@99}ꮂ?x?a=d̎wT;&ՒKewX2޶ZPkG<|Jx7:I*lKd=]#1g+sbd;v'3dVRy[FJ80' T=]Mܷ%]nasQaVRۇ[(ɓƟ?Ϊ2rKڇIW_(NfAũ*34t$\M`,]YeD2Ap4xr]\"_1!˃(UX3TE%0tT,}SS{HU&h7.͔nD .2FcUqyrSwT͹LAф];#ćq{z?/;VZJ:L_ 1Am>ft Ԫ0}cTl/|*$Wh0y]#l'=#'1-jG'P/Nc䵏dS7ЩF:Sy=;>8 I~::9ZE~̝{:^&}B/.Tl?& ^[Oުݼx/9V%9o8OR4|b0>EW\jLQQ:\X&Z |CrC%e$Va,l} Ljќ:v%2_Kb4`XSqp[iMWTIҞN҆2ꍥFHOȒ\q`-늜4\ ,1%:쐍)g`⫠cL<#v\EA%xMGl`&"FRPEA%Wd6qie-e?yse[.npӨMP[z^ϖYe 7,9*=,>>ё*a%) p#1G 7Gn3HDaN1caSA +-?ѡNxIP70O\]|/7Do{ki;/מw: ea7s}lEKvҮiCY:?8S[?n&UoUxyݕҮ7]?/4{B3X0n:Z0crssC~"}}8#byH$,^CVc ڃ`_FA돥))=T:5u>v8f7Ǭ1Xӯ˖mrG&\q?TNLmޝj;U6MW왽oe{)8m+*|QVk$)C'j1;ٕZs2bf48]. nsBhɂӵ@ge͖l![\_QLbzE!KdHh|k; [Sțfoz&BsEGgYv,f{lON."K`MC W':-}蜮i. }©/<.H$L.eB>+] JE՚rMMu L1S.M4]Gwe[hcMtَTL]'vSswڂ Y뮌X*Y }(Nq2vklC'vv6v8Uu`|GoR|R7wܝ%K1RjWs,dSLEa=X䇀 / ǾGN4?N&&ehq&[ߎ“[ħ 2&+tvitzwmv lɬ2Qmf4ds,jXph6ɂhI3tB=k[=y4sh{4d2Nu'L +p5,x +vK/]e{{R޸P?;,St?w54Wgr3SN3);~Ctq6?oyYTvLrl3;,j3A#eJ:t@Sj>3A,l {ǔ5`Lj%mB^- mjVU`Yb[Θ)Z9:Ʉp`-!-#c W.# 8͗zu؇9hdm Zw-"QcZ/@XS==.Stb<8J +62MؔFS"V=ŶPc#a-!Xǒ̳Dg +|(" Z/y[mL,ac3u`LGAMͬ0bf qDsl8/Dv=/Wsd&Ѽ0;ݧyWz쪈ߤ$ڐgf7_Οx_~uzÃ+mr &#Ċ!VEg4A'SsZOܗ#ixLsWW/ q "m|h q]Aئ,}y GsmscLzC<7}q@#tSWyi`'==KwE SLu;HƇ7шRuUZDSCBU~a\3IZ6^϶_]_\v.̣;-*RYy pTOC|;RzRCyh&᜗l3>L[_;-ب]6:GOtcvtÅ|uhG @ғ0OaF9$^<1ԉxxlX +Ss4hg}c&ۊOf_]}T]wݷ-}A?iQܪC؎.|[+$&ñ Su u^\!01}n뤠͔t&~?5; ;JFN1 eb6DyZ` {B"jA t|5yD":"V Sܘic(ѝ9 w1d nI7rY.F኷1jZolb`2X3KN( ׹t djo~+>0Vj5'C3~gےwE-w|`r@+eCW_MRt0[~p:/J'ǥ=6D߮8W禑UC5bn rLxDG1xI٥~^2w l/TXuj"aPEfvw[}^ќh!8~ggQ8.\}n`@ 7pf7 +a'naqAÂr X5-nEٶ T3W_=|qNSp-u{&6؁-Op2G;K +',Y]!?["?Jb + l`S6<ѥ0`g)[񛟸q縔UyxX +A<( -"2_^r׍xz)?F]Ɔ~ 0vLCt+zpAWz Lۣ%y?[Sw[ա'aaN*{&uC<mM'WuŊCS3s`-\Jy_WuC~+9 8DTF˔$#Vhj&۞vV1; w yƑ~wvS'q\:WPZl a>cdM$d\LMtN!Z~ACWY5Bǖ=7-u=vG 12b2qWG hqPK#љ3\yWZ؏Fuց #0:WQLvV/r) +D1LR / 26Uwvp`g?Y6RT,蝠/%ܮ8:+Web[UUGwթ~ ?oYVY 㛍c5H{BP{OȦ"7u<;tދg +iTfm-_ kq*7KD`59p +w7Agtl?:| VJMa]Y4SMV^&3]܀K2[8b_9s",T3dg5"bQ KTHZJQDG ,n§ΩkƧ뀿' |m!Cܪı>u)Lm-=` 7\ivbRXTD*cr`acubVBkG|ۅk)*Vm4g YKY@h LƇ'k  +c +F:"- f~[!Wo ۄFA;'+2+@xτff;~wbБv,5{ڭ뉚J=/Gb>B_@.R rGXɔlչK ?1K5T6:m +~t-la{ + gv}՜ y`g`$,9!Yx}",oU֛( ŤGOfq d{0F΁kڿkZNk`T7!·S67mt;o!Rwmɥ6&\Fsj-2q^njMyλ +Ŷ[n9v@',#age7;K2^jZ݄Mvag 쬂v?YɃ( Ź;>w{b`RJy?;5(:\ T3KtSk#|Ulf{_7?ZC*x/r5'ĮLiy+9yD BPu~u)# >0;M'тj2*!Gr6qr[`mlsq.çU췢#,HIӑ;;kN ag힦:nL**o2j++wN *T@$ϨN[.;^C!Z+ l8~mδ]YL7 xsH.|3 aߣT*u J)6ab4g|m$tu!`e,.淼U< =ȐFB>=H4U*; ֗9@Jk:++)7Zbm5EQs^U*+ W 8ڭ#' 7|x\fhXpl='X_#܁%WmopeR)a8}`~5_i/]>%ltP$/hWz(@ƆVŖB~8'` (dW,k0|.|!אB$Fš'`K0\L!P'|+;A%->(NW\890Pa +qj1{`A@(5a a|A0z | +かt26-I|OܯSv ~.]y4tӇ>atSsb&tu.TgNb75\\NHвfȚIXZginn/ +Y|sGVU9V$v-3*Ҏ1|qš/>^Y{lxf=ïǖks;n}M*Mp>\wd*ɂ+wO5 ;4Edmz~.;N[,.8B$ :0Y IՆ5|C*tU)L]:oJKfu4·$8_ͨ0`x4Ab09Ue7v||n07mcƄ3ذ0^a2>[_qa౤(;g{\J}%'WaMDQ5Yl-Qb GԹT_CxA儁J[?0q@Wcs4 k_{7ߙ܆SaMCR?iʥYO;=5m##3!ݞ<2][c|6 XiY8x4;} 8SM' c]Yfs;Gx pwLرͧ՞"1 Y*Ap%xbbۀ;([sK{nT{#챃{G}iC=wd!G./<|,!lmLM99-RfYm~Mx-(3ͧ5f :[,?0l\cCI>chxqK|rR'klo4`S9\֢إ1Zڂ멨z:[XFePQ{芒 &Uh6ԒUa&#E;ZpubK2OP=kXoWA(X`=K32tD-EJ0z.R}Pl} ff!l۵E\5;&90oqGb`!E^%0魏]Ks.o&1Ez'=>K/syDA6\Fpȳ}lܿ ^^>;G[lpBpl9a]uv{q 10 NjMSDZpnoGw>rV-N ܫ'2caPn[ǵ7`y{<,rO';x [,}@XÙ1r(G@]"_}%WԀ\Us؈L9O[̯$dۯ.8}z&,K[-Wa_VŚjOdf s+7گ8RR>&Xe<c؇)́U6G-؆c\p  zRCEJ _ЅmTH·s&o5Wd8rwC[9l88^kwn"0a /#k J6v ̭<Ӳm6cS#ZSH`K5GO4A 8Ҟ_q=/O})P~`/5$M—r|9_/Ǘr|9_/Ǘr|9_/Ǘr|9_/Ǘr|9_/qn!I!xg9A4deRD`|t$4kGxݬmB"fM^`m=sF~$OgLeo=]cm;ĨQqEYXHL. +NaK⪕$!I-q/Dm؈pk5~z$3RgΰVfXK Οi=oLXx2gƴ [1pi=b"~$:NzLwH +p|Yڎ\?rßaּig88XgsgA߿ͳg0sR Ə'c~ܹ7]?ejf: 4s[FAm>ߘ<=&2+A*^fT6CWh*4Tb2tAklVuPfM ]<]G'OENiY`>rv`\* G"ҵePLQ0u7&|(B2 RCTHsUDI^\t_&L&CXOUfV+z'r;GCms2J [Z ƫnw3뙸ֈh"eY) +[F0J ٤Jz Ve,X.!Ghpd5Z}D؈\EmQA4zRu]gq@D+Q"pAC!^r2E?mMw7?DRQT-8kH]YiBǟG.b!i|\.i[/gՁ~@4dAɚ*ALV.S+V ʮ17ZQe帽MY,Uy֠J)7GVf +㇋IѡR[FkƑʺUU7;\\(6Rw?q2|PzELUb*u)h A=CЕ48-3&fC}f`VH + Y:Ds(j|L.l6|K9ԖZ3R7ScS1h՟7-H.{@{YQ/S2' ]cA2uIJz*m4t(p!\ >?;: +p~ق1wgQq $^\3fVy9WL%a:hHݳ: .#Ypv IA8g5ApCf7)\qtbWAK ^+)Ec f@|}r +Mu=BSېM(bq/IhK ?$ \:7YdzT +N&փH~ot-\88v@e>w;R s@s(;#N;3h͠aϞ)Qv1SBbM'lÕƓXb0 +ߓ(f!`,!)L7Yٞ/H{$y`|.W[ aހ !~׉u@!᳐n#?ϼ_[:̠iE\:۠%#`&> gfU|hQ9hk!,G~ДOz>瀦 nZ8N=4k0N{uJ! \8c|v4NxM=eqjx{:Nz _9ճ87L)z VๅjF~2w1_  g8mE(q!7wVYs|2gy~Хډgi W|bJ=.ܡM+KA7a&:&">ˉx>ӊb4+l8 Â{ug +Q0^'½~0s?s,~8o +1ZsZYh!)4^8C??,:z6>b Xg3#p4Tw@@'Oz'F٠Wx:p6Zlnk,#y&rw)gO;<^YW/Q+gc?0to3po#MT@܂v7uuxUX EǧO|!z? +<@ 'j2)os!@;6yTo`M.#XX"YGᜈWXɰKA7cW +`jЎnj_kP <?[xh@Y_X_1@=O"p[pBkkCupEPd~~봀C 3: _kɜ N_[4`߁CXy yT3SF814~ +Բbck\3h~l}cc#@9@`cdN/ +p^_jdkn?`BuQ '~0 r28a~AnMYdw!ej1Pln5Ptz Lj ]E4DuyN@MP=G&6^+Qz +J4!-ә#CA{ q=Oɝ ⤆x~9NTm{5E%omM1h5It@pZ&,o5c<^| y$&#jK(=8HĹ?y{ Pπ ܵG c-9%h ن).`s0֢'@#˞˄]bmg1Xk(Z:s/j@^h:X+g kK{cx>{bx`'kڂ:~B־C0N`1"0/pJsWWw==:6&X4x# Եw Q-b  ?XЅ] +[KC@:4TjTSGF{a0hQBb"h& in7@<B{qykxA82(W ch[D=_u@3jFTウuUH|Wm2l-t<:NH}QtK@." +[!RUˊGzORׄEA{Cxk@x?hV#<\1b@S>A{_Z_GL3C$v:NS0_MC&o^JgA?IPȌd]/2F&jHd-|FB!s|y _8N~Hq +:Tl&2q;h.iSR?G𻷘nbv5rU?@Dy-~:ԥX 40!/g +Y„>stream +5[m`o9=s ̆__S@ t ~H^VڴkY8: :Iě^>R<@c\ 080pa:` g_{s!_65{*rb\6?7>I5yѽ(6h?xW!-DkBߌ^!2'{Bvfh{Cl1A.ksd; c1wJ"bvj t$1s 9M(&4~zMW _Xhub]z}Xڰ&[ 7g_c&b٠;Kɸ t؋tpiϱ$vCW,'̡3C=g1փO se<rvϝź@Ƶ$頋iT(+Q-6oSKWvp tQMc7G8a1YُK\NL{Lp 5lrn>Jo8t@S pJxTc=WI;_TUݻ|gN|Gs4&py(N.Aǿقu-:A3K&`mД=|vJb-O+ `k?]Ƹ娐'G+9 QǡQ+6k Jx;*ڠpp]Y+񺼀C܅)=.o3*d qwxς2po8jPg'π~^cލ:FIF Ymʦx GAzF4(y*6yaL>#4w)4 IgxxBDc@ ZP5_"NEWl.~Q %[ęͪℲMFMۀARm]}cBju#* v'! 9W% Cl5=,{7G=C@V◳tXZeKr>s>ֿ>6_P!r'Pg[Cnaoܷ?ٿ}{C)HͥWbIO+☁>C$1cDŽgq#ō@OP;b4ו8NUqjN*Cx +m|Ɛ:XŽ؊q8':+jZ|=L]1lV뗆N먞 *#b5ApP}Sr{%Y Fv=*C]P{Ly_/T\&1gokLr'g |}fw pc/ E;. UKsNӨuo5/hiC{oEELGPC ƛ*9;<`jubK O iQP#Twk4 =(^ITZC ~Fփq=ro5 fP- ΧjБxp.x"^"NdawB̈1acP 4Ӿ㠷f {Oה8N^( ^XB φM+s.`+!Sy uKU;xQ>ɳA#Yp%}YФ ^UkKwHr ٔ=z:N4w>j@"5<&h1Q[Ȝ ;sa<^|2p4AY 4M8F<͗ـk,Ћ"=M>-Jo/z_̩q_|)lXZ/xu*86`xLv1=s$%9>Otg4)3p@g||*㸇5[ފ$J-_m;/d̃=ЁLH"RaxBjih)d5y'$xp +׃>h_BfWuQq,M/7 m1WбN?Y=&':*(k!xτc«c_>Xq SUSF1zITejp}ڤ +k&>yd7>yjGא" fr>hǕ5Up vxZ*K|j$j i Ta.PϖӶʠ&KxTXŮI3@Jk mWjȡ<ixZ | 9X_֎`oAym总K$n`M/u5JX_Ac {so9;lP}i.p ns' Ck :M{uN5 `0ek1C c+n#Wr$}ET:"rנ-ަTJ&*=wc={š}2^xL~B^I3 Q|#-=bd:}}KczDT1y][F<]9[3_U\gͧwI\r*>y_>yM'N|`&c?B/-^R(þC4¾Kޗ#de8/gRA\@mFg6k0`OH˳H:EN^ 셡'kf,F-qE=C +xDy+Џ߫{%zoS U9)Q^Ơ;XGvS A*)*x_9Ax#u.deyz#!5X0jFx8O/9Je3Ka/ !V34OUپQ89wL =д51̯=P=`kt_'?[&Iuo4oe/.}wydF6W?.e9PͰ +|a>`0+\\ XGnex=Oi k~!{ac⽭)aj4x)˕( $,E\-[ -Z uJs Qx=^rL#x*.2[XzE}LX~!>gl5Sx-zX`Νq<`b4J?tXJ"n:?|霷 ɞ Opm#BN;>_+\ v_M"<V +&WO>OӵW;REP02[[vC/0P}V'mb}i47`ۘ]Yk=&m8EX^ea}yq肵TN>QR&t8+ =EX^_9&M^/QW<ύs747"q0?o99xh"{N ޒ E; {¸ΠVS1e`./C+ +0aV߃)Sk=HAS EyװO3eK9K`Mpa.xlw1Q1gfx%A_K nɿ@0ր_Gu!Oxgp5^C1aMg:'ԲTuxhNu~. +րG++X\&N\r_6ٗaN ?p}Y{E;Yg(Jn +kRTX*_ Uج]*{/԰}=[O&oA9k=0x-9s 0V(V_j'7S~Ywx¤w"Ӻw%>>V:\D!i2siֶluos]P'ax\Pu@p|Vl%c&!^B{C x%U+;rw)m"ƑNɓ)ܙbYO{+F%_|3&>gٟY}j̵.#Q!ɋ:keq~Ogvk0oO't} w3Dtx%ڸ[z4)MJ &t9c+ɤПB}drV5'L[m:ޫFuxƹx5mǖ4`'ծB'7H݁8.ƽT_"1\GEu2~(s'sݐFh 77W>7 uˈqyݚ&ϊNq*MvuQjVqF*z섘^.t^ClJ/֐+,YN5c%75 qwr?.t鈯iW??K=G an~m${^kkᩛc6UGt竮gxH&_YՆ/t4yɣ7%7*f:>xmLdZ8 ~D>(atK ‚L݆- l%翲>)nvwzvNJJ.Slz&ݭduk2Gws%+Z}I#|</ZekroQiݻro20WذI6}'rlbK~zK>xwKvJ,Wu vԇt=KUzS/gE '-ӻeٚ/oUK_DIKFһ5=b2zgf"җ^^*`Ե.R{o7L+_57>0Wv#.|+dt[1etteIiO!7O{8[~RM}q$!D,Xd3t}= irCd`Mc9⥐_eQww:$Wg<;+IUC/5]C|훖gZ2MU۳(f.>ivfQB;Bůsեw~ˬ^ݷI֏yaG-[=b+6f{Q̻w^T>Sc VWg Gsـ`AcvZ6&lb|1ٲj:*laX7qߏu z]/|̽i=]@39Α.UIѷQliIOSt ?S}<%&=2Fo\~1iS}U2Дzt>Kz +v?=u#Pذj/*'Ya]DAmFWc^]x^]*Ǩ;hޥU3)rʠXPRՏ(YdtQPeoq%W'MJڞ}l bۛ|U6K֖+n˫anȊΣxǹU%y&Q ^ +FB +}b2 +Nu(+F}py-tD߭w[6^O + ɵjiy'i(gN{ֆg8yCԕj稌r5Q i 1oĒvpVUQqA~ %Y^ю1)'Sc6Ȥ^u?I5I6K[ ]}AMi'siwc؏~w=ܷCfe킅ACjC.{!hf[p]x=䉺)M ȞNg΋q፞qr2߄:;z/HzV@| +' ~6̷*o{׎nZ[ _85ۛTWm\]Ug& bݘv]z!3ٵ**ɾ2.Jk(xO#ͺ b̻ĞiNN HsL:֖KupfvGwߍlˉ?[S~j >; k3BAWևMqBs+T ;~ M/򐡼'R!) lʌ2Eb/>DyrFWuHWnNQw^˯vG]赫,WNc{ #!T=z"/rAURilG(DXU+`sBKlaӹ ; ѡM>)`{eCdF;Dة:F㰕 +یxb.MbMUk$V#v9>Eu:ե4"*㹯KȂy\_]"z@(z HtO F_)DᅩZD\[@=ׅ%loY,I`,_|t\<;BW7>.A-r ]#^{FF9«"$px\nqyG[eG174W lv]#9}6mBe$t C^!|> +]Dqgr5mn8}\\3uanpx#m 1kyu%W~&.ζV(&a ^a?/pX -%)X~v +nj vͺ84B~w{4d1{.\ݽjZT`S<@~Ẉ|7<؇߸U;$ĤQpuwopM~`>_rĬ"bγ>i,ag`Ukϼc{XZZ=n[tj̹<*!(b*=ei +ZK__G?*׬/c:sѳ#I318M@4 ĄA1-%&+%p#6~9H5_X "CrB[yx 4ȸYȱL˜G+SQN~akA\Ts6Gu ߢ)!&+ _+_<P Iyo\}ylwxZMه|(Ƒa??Qylb*iӕSo'S#f'1"'f#/eZQ;_ +O]"Dc/A q3yl =#Xqst+W.e߄,Bٌr'bd?981$Ĕ )V&o'- 6'f5G bb6$&gՈSV[]jG4t{f7['>.y_3(#β%.}NkjjJ\j$s ^d9^sгSi#SF.&/GؼP ͿMĔ[ [kЄ>'f$ikT5na"aGСA0*$4&97Qq&Lb411abȥVJS֣TE1KL]mBXoEL $1 "2XeHakov +sg R¼^EF +*Fܫ +]۽bJmα]qmNqy\cNW'DL3=dʄY蚦x? +e)L'-Dxn +kiJۉĜ5\uwbn7b;b=0Xiɿu·"a˩`ϼxԽsCZgӘW2G܇>>?0oʔv.pD\6BaByl3QDN±9OTPB7F."T~Q%fCױ2s7Šd7 D ͵SӦn'f($#f,٫ ܉Tb +=ʆ +oSw5=f{>/##C3 + \c~߯D4ꋂVRDؾӷpuaJ, 2Tb'1Ki([eN,V%m0#-2$fF@x9m2􀜷>u#zĬ1k%GW=I, &SqÏWwx_^رK`#X0z5_ˎ9y;ʲ1'.o\KMMEFهV؅'yEU 3 +汄2Ə^N4qh>*C8z1e1gOn 0sca![S6egưqFn:`趀qwE{jUOIO KiГ 2&j77Q%MN}5./MN]'F;9g.fRybN!f֋ŒT +vU +Ս[$[qHFdyi6[&~灰Z +&?>azju ޠM +7gKOsO&+*wSgSNDr; +; ʼnsރ~̴Cg!EŐĄ1_ݎXfM,kC,vX$,U#.T'gO?ɾpVvk :=w+7獾}}"0{[ҵT벰VT+( +TwiubVyc\}ljl Q˳*,>̫"$fwYUqUh0b.1mzbb%AEl"-ǒn|3n+aP_pM[?QmggQgP *?uyt &{kYF 0] h tsܨzi=xfv9PӍ)דtu :*>֩$h h~Q@_fx/Š7 +(6,ڿ 5 &ajF[PC8lW%-sUDq{@EŞsa=a2A]I05E}:ߪC/o}u ;u-Tl$48G ;8q9TZ>c2yuCy𐥫i^Ħ"YcYH]kMϗK_+OAXLk :Op0 Sam׍zik*8Hs3( ڹbXy/uc[Jt8zfw /)+t4bv2БW+Mi IwY^@B5ء3g:z1kBǎp #^/+-h>}.lTyepm/uPSc[ D+8ʻo_q~*B ={7-iMq)zɏ}zq:z/]ݴ|NoO|6vIE-!S:I:JhB_+}xVZPs( OFܪs5e-ъ>g\"*6y `( S=Utw]7A*֑͓>Y1[޳o/~FOIi+s'+ij6o"h# kCC? +s(6o8:uH[N?NHĕn5ήJLJ Okwy6PݹGW(l#amQwo0Jc,M,ղ"Z]疰d;Bai v&:Y}&F M[84sOƔlc-6$6̚Jl; +ES ]q\ZEQQc<8?{-QfAKMPcSg& +N~#xWMA^p@BPW2~ӡ ōsn=3H"w{cN؛uVG${:vvQﶠfpvnIPJ6 nnӥg8im(/^i`^I+5*]VQnd1[ՔX?bjh aKaFzFn _P28 (m~Եzk.ll!m2y&vcj\ZnV2ȸUWmct;FM;;B3{߳)|nFzա Wc՚=у|K6,O48QGIRǽGN5B}Bw֎șcb93" nP q!wR7о7p͚fU&t3: `PAWd墬%:HThp"iF kď>ME&}eoώSo?аng:R11G 5$yKT L]&v+uL&|&9]EgsPW;`_7uض56XE'+;&5l.is +F\޽^Sأc忯׾$U6kt5xfF}.h 3AK; fVO(j 6-Iڰ%g']G&/hibtoIYX?}9P>1$J"NiF\P\Pn)"gS緛޿ƙO㯒 C7 Mͯ/2^7roox\mϡg{lǹ뜯neH=:jmYګs=Ws[v hx=n_'p9*8))gvp ҋ`Q>w+ii;"L3m'+c#L]Ytgf]c?xn&_>I(b<˿j3n hܯ/k}Ok,7{KIWM~e + _sN1e35W,3۲|-֝?lӪ@oL8gr+ELT.<1~o, &˙bNmʾX>Hx 8m!I?z"xwĔ2'u?hxTo~o/}y靣n5WK4dۘҭ(Knl-㶱|DHe Wft} ڱZ{{MJB|nOȟn=>ݖdO+VO+վXrP淄So= +"wķ{Wlwcxlnty +[ Yƨ,ۀDk>,hN޾c7ϭk7Oq + ᖈJ|ZL̨L;9$ZMVrv&^!/o"d9m]C1v0^{SqxG"tn8;f3#׉uWH=Bӝb,OX`8c, >l(:9ɿY;wza&nڝƽ!srsprpGMᶰU`a 2o,[o ,?@ 6N2G[!Xembc/$oGAL tk)hh^Z拕3wH^0ފ|,"Lx"SS1%v~B۳ݏ}dp!a7 QBx0?18K@hf QR̭%U]I#/|𘋘ydG_[w~I~C0d%3}5SƱ1B-=϶ ۾܀qC;Ҩ/֊jހ-‘V%=VἽNN%Ẅ́6\7]K9X\ccLpc`!$ +Fz ֞^(7:$%-m+2>F+ w7)_z꧿2}w~+\WmlOj_}Xΐ?Vsżc]-2杞]ථƙbkF?_3Tum)3r=;l oC1,wX;XYG\)xxuG( #`_/Mt/Ɠ?Aی?h/,cX]X$vMYe|sE<4V9(h1YLi78Z4|߯n|7ۡ!wM#VQ=sZ>^x!)t$4\z+7hڕuWFЌF4j͗*\$yg%gX$ƞ盰fa&?T0B.nqTvaAMTur&l|\AO)*?\(:3ry!w!6JI4CH+t bB19T\oR{iiT_}{1Ew}Ň~dW> {է 7U^#fU]R\>x #o.5:cO[Lo3D m^`54(n&Xߗlf'dB{*]vvZt-8VJyO7CJ|;1WaF,h؋,l~s8&@ @'8ڸ/JGh)qg;HץU;+Лl`Ha1$sI&'p{%u +8rZH%j tARunX s ;pH3*n,t az+ĂOUȻ+>IE#LAV|P,VﭗҎSc-$0 )CӾM fF{f҆<*QS˻˕S>z9=q/ӚY|"&ՍDJ>b}7azn6ncW#v#'[/u}zP|>&網<LS 愱 %m2^Ǯ=l=I]Gq|x-kf'g'nnÒn7rҚŃgu-UU9k`WD|6S1(y37ퟃ7E۾昘Pֆ|6(=i:|g)ۻ׏AZXp&9z}&rBbCml;١4 v-'@L:m](:z0MҮ5CPh`vK0xɴ/ƚ83C;( )ًb}S7b*?;[,y ~@WZDh{YiZqឡm"wBZ,Nq?ʳsПL3U:|B#?O +p۲ۼi=!_>,wh]OCǗk 'ڀQ5h)ĦeB-pRpltR'wIϴgFz}~,}0~jmCC1vtҥN.gwt\pl*j0axg,Lj -hqCoXK!sn[> .+4GWUݳixg| >Wm" /A?Ծ̯n}/HH-q\1>K{K]x1 )w)<=3FAOM:p!W~JvdҮ{u#j^0>\ ؼhI=vHm_l@ٟ3\?fĮϷPD:W%v<۪w}!|='tYu6X9i V=ܴ_jBl,֝\znq*^[ड़_|7[Ks\qz۝ygEړ@ὥ8OZ7Հ-(O:`03H{w + kes唚jB(5ep`j-az`,4Nk'큧rw;˝G'ז Fq3 _܋4I<=<9_oaHCMō6VC @V,%"3oMF^x\!z1$u%jjĸ8;4(8te!!l(YڿmxU]_$Y"W`5,6]GI> Kvm5:jU\ +u!!Jh%$ c=Bs:}̟d5qr;'C;XxEhpX~uXTKW7ܾߺp;KC,:ǂ9}:s*z#@.pOi;OS7c_bo I[$XhKqNzd')/V&M|pp}n0 G Ό+0VmPD’Sk;R[:9?A'_}!fܥtXP ⷀ^uj.| ֝Y$Z|r wh<OG|;?מ|p@;O<.69S_b;k 7XCXay9筐s\0pKJisOx5A&۪nB\=̇YeھdgՀBGh,Βb ,e9R +g%@kY23ی:1$#g7^{{ iq4>+FW8I;xzr2OJ;rde9,g+uP"?zo#̂ kKKYhͲg]0(->a$ޚXN,fR|zCr/z)/YjJس];2KFm!vA1ֈ/qJh-.4uȁsӈgud9a";abL;Co:^+ mb!8ݝg9u.}XQ,ر`YD@lyszp`w=DĞp~JQp Ԏg5Ll % +`[} hҳk\̥3AG]NlSĝ ; l9аǙԬ<;;g%@KL̉`g1"v{w=fZ<*0&!(F%4V +QXdo6`Q\{[O益v1Qty>9SA;f[P)r:{r~;yGA'氺zp>||/@;:bg\}bgI-m$vV^ YV^XZ\00ZĦ>xY:`gfgſdg#xՖۑ_>o ' LO`dP"󃢬x!\* k-05X^2s|rƮ[@|Ȕa`~9'& +G_%&+/j5bS !V*gXM; ?sF>K%n,?{weOrk k0qȷ4換&jէKy% +I%󹬖Q2V|S7e7ag;;+LK[QFS^;x+ճ'hgvL.&5G'{GW4e^OPXuf6fnB;k^P-%7Z8U]] .6W91RH9*۞kSlF&Zv/9pzY > FB!?~+x"3 .ā.횮=}1>Rb[+;K?X4vt|ef=Se-Rbg~V ϊ^;d}}z귲L\}0[oV螡 |5w{.>ï|}}w~WEفޓV}cybkԟ_vKy6n_K|'VcQQ}uV'9j-ۢ%9Egicv|O,FYnb-FG`9ͱZ݅O) +Rvr&fLT|z{E2>^I,<0̖ڋA"G)4}`jy7'>l!\WԣO\>XCZb5 PmV!' nW]{dLwGЕihRr`ɠpؿ"FMA$b|<,d%~{mE-S+:l@n +ϴ5_Jou+M>/Y36N&ƺV20kL=P-uyr%R˝u6ȇߦzVw={ȷ;֨Tj w^|ݍ8c=wR:7Q0R1GQo&\0|^V5iySٽd]98&GW/̥F5hYNM >Wp$f?qii2 fN K<5Kzr-Z; |+_"&Qͥ±O׀99Z()"-\OeRkG"x=e졫zjzۘ%S^=+b P+=;jo#wrKZGsז^Wq4އ/ +l;i_4zsVՁ{كq-:>"}U<5`޲rڋ p>@-<> ,Uӝ|ˇkfu)uTs~!ଣ7WSy82Ax,ֽTw~sVB>aby3 gϤ(of;YR8멝Z]M:9+~/v/q' Sio:8 +u/b,~o3腃S$1&11<Ӄ*`v=Ccx/Uk-@{դb'bb M/?=O=|{-3j9?+ q8!٫X6 qR>>K5`?-᲏O@MyA^^%G[ f{Y,V{d#Ex{U"B|Uh >OaJ./zi^=R z8Tu~\ZO.F僵VcUɱSͰS+gHNTX -r2PKrm?&Y5{o/M ҁ +'5vR|T󱚉 <\# \G6A< 2Y9.ӎlivi8ˣkX|<-ԃ8 +]P;#$nzJ39 >XR9 yżVbvk}E6j 8虰<k\n1>e>8W`Ţ֘Ʈ]13V / hx ַ*wI<1CF}ѴWr"G>Y<3,:a.z,$밶:?W&AX_#k tLT{y 1{v$;:9K8tsP{c~x,9zo8F'blE$؀n8Vkʧ{ iApzXX@ +'zݴ/ǜ9Bw';J{y do>8'p[RȐ ׍{r:;8#,)py \7w`b`^ຘ+W.3Ǹۮ~IqƐ>[fҕ+q]|ŪW[/[tuk1Z|y%__%E8 JrW0ġk'2&l?wWa?Urw\+,52$l*:] ˗]請`]}W G^>O]Wb=rO~8>CMa% A^=t;m쳁 #,1#A3ra )=v$0JQW)t3R1158/Zx4$Ob! K#Wc,#dJl=IPjT"i9Ck$;IcƱbD= +rB=>dMh&(8> L8>O!m%AG#,! fp CArɈ9}U8&F5ޏ®)Haabd=Yaoڗnn?ȗs&s/=}ƧB<}n [%n|h[:$[`N`?ҼA*$10Zt[-A +kMW]p/{ jzX-}^ +)=v,I*j,GI"lINV!Kw|vj=n"~Ff#ǥaI;hL~Hu:l>0i91QOJwӫB$9A2B >`AVbH BFKIy#0Ni=6cJrkGAG'cJKڋBFq qRX $tf12W_]YuQb\{9 GQ8Bc1%#`ZAt:zf1yCRbb=Nf۲ޙR [\=d:唊QrTp%+o4c#tMc0==DTk`eRٽLهAU8_/iac"ɘ4C,y3U>ȵJy0~#Ɩ~?j FX2{YSEvF= +AV  A' +zCՐHF:+h`U䠥7ӓj-::9ssѨ$30*=1} yZr3FIJ/8O9G&(uo,è#F1f + +{1.R?xvFRs .gbTvEc^Iљ1vJFctƏ1ZR?=4R>e=f\1ZM*p"Y,:1ssִِEa=ӵ)1E #)5qޙ*F0wx8!gOnQ5%qR4k^1|RD F yz8H8$f{̙|擄$n C`?ͦ(+!,^~&.@ +òl|;oC^6&`k #R4_^sH /tZ;rCՁ䅚\ Y?]X(!A2, Zt=$Ԥr0Ut2lKf'=埘 YI>,Fe'Ҩ4oZCyAto6BRH웣\^ ߤU_U:C +K +O-[(a4U˪d4 ɐA0btQ/fXCo$^ !NxOXKKUk,;019!!ݐȩѿj>;+gCY/?5G霊q{c-aII(s|Z6 'Y`:zݸ9Q2[ EgyY10Zޗi Y%H /Z%.B2L>(13M(A2G&HiU1̳\K*F@zJ>xyZ~e>ɾ$̗h([ M9udФ0K`~R +J!Yn^1M1j4&Jمr@tXNXpb +3aqgӎ iov$FdJ)V!#fQ`,>k(DTF^5C+t.1u Ia@~E%9ix$yjf4cD|&CJ2ؐ">gH%F {b̔'A:\4c] f_c!+%8,H`PB$f$%;Q Y"Ƙ?Q{Hŗ8BO`O>0 %욎6DZx +tPn-jFZo{m7'> 5k/J'9u|R-rǫ:'?t_^4^[pv30~9:~2)쾦֣}|x`6| +H/U@U*qM @F/}DD#~F 1A5adSX.8`pFZy$7^u$cc<6iD/1;}9B,Y؟^: $ybb*Q-|%}85c IW_T99J%\zz&e Qf>Q4ӿQ*͑^_j)`2J!vN + @ Y $ۥ +G ; xK!wx0QƐXz%$$̍L;_nps1daJ]CWC  װ53ra;B/fHI#I~bp5`m +Mxpj$a [X]>$bބW X^WPKcpL Vp$XVˑ9!GH #igw.zR:;ZqtjY.zfӐbnDʗ+{g _l!QZh3IeZurx5BߋBw;zJH*#k#sK|U<:rΉ O|A~$U,v o, ?ڮt>ܩ!BW +[.%HV".RJ1P-o-~ġ2 ̮~J|CE'Hdv> rBȒogH-j:H:AHNiZI|=aȶ&!$֍(XʑyvJQjhp&ʨWfvߙ4A8$:0p%tIrH-Ʒ}?7O_}M'.4kіByIc3?A9d +L>zH.~N$(2ZVKA/^ zz +Mb+TCUB8e|-9I>=g"$ĩ9JꩯOy7"]PxqI^"rF`Պz]qrCRδх^_A d3ߥ1HkyM)ZBBTvnH%? !dV"75S8 5uch}T'L͖k._CJ9cv Ͱ@54gk|)|'?rVYnC{i/m*$S˨| +1l 쏳J$ks!m<ߑ{3DB |k^znr9=RVY28p,gE&Ij , 5$w9*c@uGel}3,IA{n@(=$Vے|,ˇ $JO_?Hæt?cn=OK aB]yO™Q@8O=u[H=/YN%۬\JvĶ67{nAޥ?˷}= abQ +߀+_? V>턾dx*fwۤrSg}H~<Ȧ^yPKKr dSS>A~]N?ClP(ԷO:[!Ogb=΄=OuCq6 `}bK$ɜlE6>dv8@Bh(BBGHf7 VEd ’lP5#a:B⫝̸GJ]MlzgSG +?:S +jOx[8Ã(6 .~$!iZHozs@è'ECܮ^܎-{9 Tk5Fu^Ͱ߃eQ~!u@/u9@2q5/*q]HֳNӅ_<ؚZ$6~Q9 QC"%pf7ߴgClpq"RQns DWұ;kgB&A՜YGkeI~z↾Z|v>Y~pkTB·Be&sMPZ/CӇ#'eßqF> Zn?m;QSrf!_Q~(і+q 6*OY-uu_F̺mul $DõŰ$DH:!!.,\95#[OΞ\S=1YY(k3:'틱Ƒ=\φ7(3v~t|V9Ʀ7K)Op"_zw~ uo| ҩG`F΃@δg !⫭J=~©_' 3ϰJ^"!Ķ'5VO7_X7Nbp~j"ʃAg{ǽ?ڬt)w)vgػQ.0ozr\j^[T}v.r:ͱ|w7n~=Zqnلrz^7^/"1}'8a` Y0;E "t3z@8gHg(oލݛβ|K |w@fh-!UMK!ٲ]/ʟ`)õs~7 !!J{OMTTBBBd֍:|鄄(BB^_ I_Oa@Q+XJr}7nOa` k7]q I9*5CjwZ{KCOK,IyvjaVG6\G s ck5jʙWG^镼ɨIЋyA#{>eYXʔ<7a!6Qu-Vf70bmת//PgR{YѣKi_i_c:'LVN-c*L.%V9>My@yK fe {_\mZ=j]bW`ėX3OO#7`pGIB?s@&,>P92ͥJndj3\sv!K.Z8:Vm^ ˆYGRlgXʷ}Nl-ABk)Qwg:@Oƾ',bLp:ۚ5{}d@wNbbtᠫr;)i?^<,.AcD {nE/<7-"tI΁gXE} +[YccbBEL aϔ^G cy^1(Ik6XNӱU3d׍7WMWW'N^:'tJj-*ic ޶)}* +k۫ ]u1l8<|?|'zRt?ߠYA}i6p^6幵coomcEXT_>/z8#`xGS Jrh!$Jkw|5c2YO@9Ds#4P̿iUPm +}?A*:Yh(裙ԇ[d BϘ˳#2mD.*5R<:X]oid>y1e9\v¹CDTz8T{kxu@R=|+DKfQ]V/žP?``6XZ%RΊ<,y<}9(B_K `/r۫%{v] +$@o=\ھ9Ğ3.NgB[оU|PgW]Y~* U IZ~Yhe~bY>rZ`& bl*NϢh|{Rb+Pm6(''+t^Zvz6bV"23}Fəz@**Ά.?z~.5}gXWGJĞovO}G~#P`0ӬJṙZ~t!#8 \o.X{ u߻ww{.t6( 1 IpmqI@\V|gsw>s5tCfU[Z39Ք׽d`,QzU>wNZLx${;u{F;_4yߍ_MDEd2?jԃAyqۖwg'B֐6[~z .ܻ + I>yb'Ү.nͲjiYj5G -Sf/,$0}J<Zڃ 愹=g@f idrn$WNeIvbui*?^M[ȤN$dr Ĭ2mA~ Rw7wѕ[}jxZѡ#`3 #z#ZA%+!;Av{Ga=~'IE}7m/[ E2]Jm/:I}x5POA}'5_Xċ1UfF &(ASԢCth@s+|+ԭ"ilz$h oGgZsӋM26#е׌\DP|${cTAEt-{wzqCn'Kdc-n=tՋlH݄[MZxj +}TI֧e qs&4Q]ޠ!;n`~`Oԋ(vp\1;ͩ]B"֘ +a>Tч?MW_z'ӷvϊdv!9΍(ڋbW`~  1- +;TR:F$$A:_ +L#b^(eN=A1G?IZQ77hD>nyVOޫ'H%RԹYUyc8_r+KiA qE85}>w~v G?x_=D!%z +[C}Ӂɉ z؏Bs~)aE5 .8ԬMٓ‡b,&/[g+.l:Api!֌]FŷyfL5QIjRnk]aAu)6^ؓ<_s_4x|1"&RTq)Q:v:OVؒ?K~}5K>5ꛢJ?A}όYXrQG 4ȇW(,0QdV>ѯfG-~^sE;B݌ E`H^.d_/VT-U*Nx6Ν?"Qif-2Vo؃7H8U;UI<+NKˮTyWzU9 +_5=z\61]:^k:+U| F> ?V '_/7Qoxuȩ,ɹδhڠ'G㿹 G;B=UJ]Aގ-nšz3a^ۚԸv>NI}pO>6Y>~&.o~'vռA}&xfmNV\Pg%k3?j0k0#g}b En9+|}Rf=0RouuNFwqGMS}y6wO <}+ov +Teyt}=l;.&5E_hOΊ6/ +%'yM</)2V)}Du{L6x/WS>'K&N)5Xop}33zDr}^X:N63a-+pFXba6ڦA]MZ+P\tvcAwv-Eu;lу.3To癞Xhs >U1L&EKC-KZ$MfUGWEWzEvĈZ D+uZ&Ưr +i<6/q0l#qKg'?4Ȇ_Iqwu˸MF"]m֛CQ@߆Wфw6Nw!/󚾞 [јX<4V;ͺո9~we"Z) ijglBW\`K)փbE…{_-G]lO?՝m64;wugqm㟩в=(w%KĿ ;]IF OܣG%comL=Eugf_x;mI&j:"xqud:Ү=1ѧ9(ɻ9(1C*ꪸA\2+xh&jrW u?:?*fǑ7Q5v|9n&zvFVTh/|v$Ƃ *eMgNɶI6EDŧӜxMObbنi-V>Jn;hˡdװY1p=[l2@I/`dOneﳨS=/w;KQέ!fȢfvk%uUMUUN.Q~R۶Xgg4O.K>?ɔ/|WۉF:]@h9L6UKȮg߸؋>LPtFQyC4j:^z3RgmˁѢ2?'ޏ,)k^!\ +j)λzZhXV5gWmfӪaᘹ᠅iUi[YYoE}y^ָ:vkT]> K`L~BX(I5.Ocw&e"힗ۓStO2)(t"R5r ZGtbB4+Ѷ+3Y4VJxϋJn 5K58G#9)75NnyUiwԩޜ(@~o:FX ls6:!: ڿ?ƫ6L&M H$ݍ\N;}O5~2ߘ2h(h_IIau7Ns' ӆw!yo۴禆65v߿e=PC^\j@ㄎ7]"k#"S\b yƣ|oLǞ4DJoWyEeyG9GŜoMКs3K". z! ڃD'Xʢ:BGfά}y#,_?ĆJ y +6m1DbK68N5:(h6i)zKe~glդ,Fk#.a^ҸFh_K0-E4_o& 'h /ekհDulb?-LNu'4FDH̨^kTKC4rV[Cdzi½'"Z~)FX Xu&7E$Ɍ%Nڡ﬍*ɊJc[=- ''#0*N2.Y[ArR|. 6S^ķ:0ҦVuHrlܛjFhqdo^wcpb~MsdAGt{$1V0ƎE_ }^*)pς>jD}xA_n1F_>>p?vklYǕgm6Ǩd @&J%ܱ__*F!sOi^=jz`1ؽ_{lۯvgeEF<ljϽnonD{Q--N+\ùL)dd.DOEa~ }镞90ol@y\ӖlM%YcK޻Dp(v ^TS+QY737bGK_#NMWB[CǾz,_ܝw\CEAr>-scZI/e +$XzXxXh=lB0 340sO`X-WX v0LT?Bfr~ + 'C¡}c7ſJ+)@QU9vgǒnw%n%.5QuqvAm瞫I^ <ӟa}ZާN.%uijufiv^V'{W͓6Z `*$)%2@'OfVO5$|6>WvxF.3K:P"}%)EŔ_܈N/]_]RXGdGenQ﫝"nS_Z_>zwľ1>,-Fg6:jr +l^|xܦeZf<ЙʀxCi Myu6,;,lg 4|qaܘ]v#**)vxU}L2p`08dOJ]#$ +=Q_]C.DtE~m4-sa*s`@ߡ2GkCiݿ[>MB8>vw/ԼGd4N}Ž]/#OvD_iJc߾,I4h zG)qc ҧQm15Α߳6)(}[Ik)Yyp_?Pe_lє `Z#] +80Gs?8^J +Ix;y{"genqb^{Ĕy[Z' QZɽjȤjh[zdwlalps2/)zmaSc0gSsb0O~=X6> jZا'A9eg2P=lۖ2TW+^k9ٓ#ATGœ!G!-Bz%lʊ%~<+w?=鰇f?|_m̿EswJkݣhac$o2vx-53=ak{BGgrG[BSK1>xD'FOТ]"p3+?}41 SρOk6{G(s4^aj#_>1yJ{${TW%,GH\j#Y$Kb9 Tyq;~xC9eLen:v|ΓY ʭsdqR>i񫀂0gz0[n7m+XHNW-wP#Ů0oxbB{mXCu3$D=2kPN~֒ +gIgǕ{t茌6F[im<'f_w@tJMS7ų @qh>`N`0v0 , o*X0ɒȡ7ln,OT}ݥ^>z=RGʽoxwOirMwNvMDuZ-DCy +/E`$E8() U`@aV0mX0s7X\ s?-7JO=843mz*}"iM#UZ^&--u旻GC5}]#QUڡ?n~gpׂp)K6h`:.X iktM$ئtRyOrx-7K`n[-yf =rasJR2(FWu{`lo ɩgļL62,] L ->6lMς{q,IX*jKuvpbY}(meўݶ65(E@TKw^ Ş 0KߕH\ccǚΉMU ('N3:9L6GCswK?ۡo!dp,P8ƴmfS|arBЛ*F[P򵷴#ScsTOkdM9/ O5εp 0@qfWCK-+wЧeRUF (43O mM/Qw_8cݞ}ӯ, "z4oa. m4%a9i9SSP[J ZKvѬu[&/ [ꕪ`j]d:`b?>38ז/9-=V(kY`&}ly)`ljBݞ5SwuNWzJ<}Z [{f>u:rLAq]?b4&;D^r:ẽhV OZ` a ]urm@1oX )Y`V)U/FA`;!{O?zGM֬45*X a~|դa ޡW)7|R)H?(IF;^3ЕSS-h4Ӫ 92_'!%C595ڵ=eKduSDGsx[RSkYݭRۜW,G2c)yڟ6`3~l[ 'm{?y=l|k 蜹ϯu>(yR{JoSk(ߣשw.Rϡ7i74Ϡt|}ž16,]Y0wvelkOCt|汼,UˬtKYf̐__*`*M 61_vw7>MP~ ǧާVOBp`˼'3v^q!;GݫgRP\)':Цv2/!X c3;l3_5tI FR94q9RS)7G +&x5=h{Zoڏ:56 y8 6Sn>ULN˪94GcU φ#~ kASfekAar0ς9֜`>>k${$G?O|1gmؿжFi+6 į *iCv+m32zE%=y+XC{u[>m~_jNB><dV^m_'BQMYkq ـ4AF JwYǛ@PM&wvM~qr0w +0XGk~; gO:pvTyCyc:[ZuT{3zJ];Lb1w]ml<r? ^XPegYxwjbg}xgsWŬk6c}̇1c8D˨QOƟ c B6篞 /te; l/?Lu&[F=Xu4_/v}w+ *Qjnv'u$pԘ.f5 oIB}D|aW#v{qI=7e0܍q .D65|%+y]SS@agZxlTo32ktlY +LZW/a?5`>2pX~M~ʠz7:.A e4۸_ +uĎ5@[jѪ7:.wD֤#'UOLѺx3/ۈqOt/[cx6̎N|4~>nޑ#*``e Ϟn}ehqgM}Ia]3/n/z{jm926,Wƹhrlį/YLZN^gd L՞7)j^ʝXiGw.RT06/YU5{eTCmcEx~F- +ڗy^d80u;zVZ^V71u1n@]MZLYA8]N 4=8l fg2nl.x77x/d/>,cD|C/{}7א+qmS&uM*DEw&4Ѿ +)r =̅Z7_/9f+0Z z֡w[\ZCo&<_8h.v[`|,^pL"DLACM0R|4Wayf3uXgq +~9&އn&677 ;,2DTL oՈ#xꢜ^B8( 0*3e7z|43/sW9v01*,s-is񮧭rYZݯZ؞=pbvגNȅԶq,g\Tn +mh?bF9szV1=FB 'hCV7zCW5o|9FrtV n3C }I_Ω0ط߭5 /m%@<9tYKi>%w%|o&Kx^מ1z勿:}>z Dy𽻖1r3`]P^>lmtm9Zf>q>Wн|z=s T1mꇔڡÀg8cic*n\1@{989B{-&*>\Ոաxg~lj|"'DfP9,ыvŜ#{ziOAy%΃ߴ8i=JX賟xO~|50.39U/mnOq3}@1 i]o`)l0]Eԁh{QZ4sZF@4\b 9 M=SכygoA{DG*, OsY{^K“Tcgn"*D^k h?3vZ3a)痷Ҳ]eꝬ[2*l2ȸ|n/aE+o}==lX޵/>ýMw6qg6~k9'jX,l~rq5~M^КFѣ[ ] ՌN=⼬ѕ67F#yY<$6~JVUIο@#\^*7F bf n1in;Il@b?NOV5#ou A3_ZM,&W^h x}o)~! 4.H-ho>E_FrldoZ{d}D'#ӖqJd| +f#ywǴ."0v]TGqSPJ ^J^m1ղo嘘{k('6Nڗq9sӈMqUfb1x򝜴!%o\{|m#3gNmZp`pxnt m0?3tX@G x{G-d1=,n?ڡu"f7f>ZO0ݯ %2Qnҥſ]B0 e}F{CaK {#=islUoe0NU]Ŷtg,eW&a9&uXާ w6ʵ5ǐ!^!',0znK^}ڈ8p(^+xI{X-<6Z"ċ'3{\K&t (؂EډG!yZ2iNJ5m$#C@K0+Yc&n8s$A0^,qT郸bESM_&,eE=֒qՇ 1pXE/k-vHiR!>W*fUwDn5ʹI :JJ +^u Ym*u[b,,' ]f!!/Xw4G#ccxxT^5q + +F@@:H˅0pV 'atg f*coyۈ^m,({.e8| }_Mnƀ2.]F\ [@pO^Fx8  +IpZ.da:6s&~gc0E!,oTcI^lPy6|rTuU68A ktbyHXtNm~i>M @Z8LF)K;=" vkbE!'즠-zX+6Ty +qS Cs\JO:İ'aNb'i`,A{o暟#<{L u7yUw^@'Xt#XB08[t ({9k~ +ˈڅtPwwu{-b!"eq 냗z 0ZHO5wQ]8ph~2l3r}|]<ĉG,UFGo9 iCz,#@'F EBTJ:b13L^Ry5bF<({a0 Y}X{ ޥ΋|ImmawŌ};8!Mf,cB"7È>42 3,0?KߪC@vMX_G|02T_K"&׊-9TA: "eB5H@C¬F9M\>g~fsV3$3G}&֧w2,&;ɓӮ188p<W +z o;>XqHG ZKCl"2O[pt~%eFpΝOcdd NC琸8qyo@ډKOY7qZ.vKZ-v^j0q}CLeMB,nƭ31SҊ#H1G x~ 嗲4oQ0G,ni9Fiv)H׃~UHoѠ6ɐŸq;YO^򚍴+yuuk5b>x8cwZRHcƌˇM F1iîKoQ%+ifu1f's yQbbjd|1}?4!"F|qBњQ?_H<&Jn%R4߫#Z"eqQ{$ -E֩ +3& ^<4[muGy]^]E>c>jb=( u .%.>l7C31.loD1::!8e Gi@e t i ~(`Fr<\t ؤ,Li!:*2,d_lqFA[Œay$[; Q"6r-b)\V+"%fXhnxUy MZ& zi +}w1jȿ`;246Lcty~-fmIsŭ ,j-QFv!Zvaq2Cлs#‹1s[^u bӋ֣XxL<{~3gFM(W@"& !-.uV!&4ju~[Qˣdq3 y`\& )d>b\t ~϶#:?)K^08%5隤!.<##,.s2w6o`M߂nS=xN:j;RX9ӑI+кG@;Auk ]M= *yzs"[ل9yݬV +Zg4 N:MCNx}?AXE\nF; mAv1>=^ +cv \ IH[G㑧e[t{ q0e'S }&THw.F:3fChft 2֛.4=:in-؈ewk7xB=&iHaqa#?pS6ʥR4I,!'RY2Y|PG!ed1,F+Ѷ: iS0 6}%?#[;KߪO`qi#˃Võ(xBDwFY9MA& ~J=?#%-e3| Aqunmx$ەacXƝ_qD%o܄-,2fUv(ˉL#dgU4C-Ov9YJ^Y%#7OvV&[7𗶤 B +G~Cyf̑zP{kߌa{#b+Bs2kh.-/=U Ng) 6aDv5Bk3Ȃ 6{;Q`wLr׽ꁘ2Q +3AJT:Q6`bfpY < ,m&XSKvғRcJy9ee {)@Ϊz=sax`gb$o v,Y>Qvzy2X5ͿsgwC_L']& IǃkV_rG]Ea*C0*ʻc1)0l,[ٸ2IQ:#.G=o5PjFɮ}lsGZ>n\wO" Qv*BY\ѝ%Zv1Ƣˇ nʦN,d,_Y`T-%#;>t4@LOg`+п'yDEOKrG$.׎ȽP>O0‘Lޕyܮʊ?T8a}9Chӓ۰^TX2$'wטVꍺB`}QwZeO⟐|UmF0^T }=)%O˗ƕo ' \FϢ?Rմ/vtl,h';3;˧NϗR\3BJ=:r(ʷxP^|c ?. ղsG$5~+PѸ-Stq!940u9gBK#%v +3 }csvn.AI6/b0ZRvVOBscqg #?, ψchK'?}sT?Y/9@J }3̯,63LsΗNR 틵b㨛\Z>Wbwq-'*e-=_tzW`kt,,b{5#YC(-ՑeBR8_]?RrqUkP/+AWim I_h 1^),,7pve~o`&IL2*6d=s:XC|b)19#_]-ق,r +UR|l)wk9qa$?/idaPٴl)%~txv|$%)dPӐge+ )߉X4H>2](u $3K[֍뎚Tտ<Һ9ef C,|œJҷYYѠAc09 - 9^> !v,:Sq+(%1u4gPHޏĸKPcǂ +Qj +FYMd_]@yA* f6ClIxrlVr<r~f!|$\U +zs7eԄ|E_!sK rϣy[d(!ʲߕݕ$&fq1쬘o61 +Qƺc}A 8ԩC3 H[瞧1 Yl8! )2F4W5/53̾gƪ%Xc9w)Ln?ユ.Nym`[A8g")l4iKr 'TOZ7)o"͙.,rY]tYSSuvCp8ǕRiMbC+Z:@|b -@]=TeyǁoKIzj&{#`}$E-srk SL?1K;< |h9J2Ÿ(IU25ԶL:?sVy&ER PXk.hcK:&)gӶF :+#_r')~eyKb>bD``qy1;W/.^G>' +;XJH㔐2C:'D;Sta*,p֑[WP ++ŕa $ u29e K'N=pX{vAݺ</.y8uzJ{\VgC̊6%^uvrT:7m렇>:xcMjq6[,LĠ`07:t31ZObZQ!l!s~<3Ŕ=SPC$bF;eb &$[G9?)?g(DpEp,~|?)eK!0(?- +F Ϧȡ} // #[ f{l8P>a)74CJ-b 0 aK_qpSն\o's-i]{Z#%Ǒ|c rUʲ1 s霎;di_y@#v88o6F.Tei$׍W+-z%B&If@O뭒'H\O"ӳv!x&bj U|Me_c ̽U7.T\[p/19w^bBʇ }$``ixO!6t4Is xSg@nK|?7uUMlT(Z#97/mflR)G#7A8 <^o1MU {K' ^O lIaŢ_0ΰ߈#)7'y]s_džP?+)|@00)OC)[B-jI)s(5bǵSb( +X}ɽ"'I4=;툘->PH'AuҹR&<4>:֏XKG[⮉`Q^邒 Oc؇#z=D0^^ePzpek+~T;85I=>x^ֽ^D[N[|3S~3ӘI;u!HM)t<=ߏ7fu}9_/Ǘr|9_/Ǘr|9_/Ǘr|9_/Ǘr|9_/Ǘr|Lz*ۭ: /&?[nm`j0zrﭫ:{l7\8 N`m=z '/_?g5)KgϜ;pd_y;;9o&OZٺ9h_=yXpw3^g\0w"Cy3] O/??o7Mf ņr_#;܏>[6n%Y +rɪ͛m 鳆iÅS f.'8/s g?|B53Pg8sps׿`̅i?Ϧ_7g䋗89,~Kskcȭ5aJؐ35əΠͩDsi?F6C>y\\ۦWm7|g8|]o?m0a=?t%,\Ȁ[{zVzb 01gt06ꚩluL-tLu 5,FƢRI!;6p*C+[o7tW/7S,ab^aʸꘪtMk8Ūukw37Z:lѷSGV6s7VmT@nk7CtKn,dVKד + I:~ Yq9 u(Ę@$x[Dl榛v Yl|Ƣjl4` 6z2 1GƆSlCzSq Ut %zB|%{8 +^Uz +[7$ +҇>8tfiFt!K%!wpKPٺQq8ySqVJ+aWrRҮ)rxluX;}Fk c&>83jCb}q[Yy!SxO yiyϰT $`$]Nxb{M_a6Ѕ X1.e']C`QV\R@L +.x7*TiAT԰NX+]OI# ի6(qslos|oF?}AVTAJܖv^zF&bZ3 6w6f c*9]',[֓׭_ a0< de+{vcK.}dO,1bP0,W%+eBJ#* ! $Oûb}K_ЂQb1|94m$^ÓoTt% +hǠ[dT{~}d!cb["A ݢaE0zf}*x֛틍Q,l':Gy_c36Dp nctn>,D?7 wvh7LpyF?E-a ݀;np)W^yW~M>T+zEI[@7Uo%cB$6hbecxoOIzIэn|p׼{TsAw2#b#(,Y2m,O=Jrk7yX +.&Ԙyԛ/v:*B8?r=u qA^ǂuҡߖ3we%{3 բkD^q&DqiĹ]b(%O=+QknKd/s2Hr#&[u@08c/A7A "}zSi*<2Dښ4*Hܡ5#̱V'b#{q|{DE*j&ޗ@b?M&6Я[Vk@OlG}bS.XM3Q5cinHwދ +~̓X=q9f5)f<Ļэo1UcQRG֎Bx(lNJج /#Tn)(&B䳆c,at3?D>_3cLG`olB6ZRl=ImǰuoVZΙev7t`bU.lʄ a1mIQz> C!y#rk* 1n$ؐqa +U|&B~tSfD!݀ͷI'CZ\ 6X+l&,MUn %} EVrr/H q[;ڀ>v 6z"<# qogbxnk%'kGlx!ITDbhcc]Ӂ_*Bկvs+9ӳ"9l#owm3ۋ3hr걩tcGB?>xxb*WG>|=%촫=LL?8C:: 齋ȣ"k҇_dXKE`^Ip/E<*cc+ D!,E韂8)Đ<,i/!ς82t3.飒&2J X(\( $@QTx;>? bыXbT>tlI9D ؃M@T{&M>nǽn"sx/+@3}a++2i>΂sԱ$L"_I-xw]K)%-Є=6TӍ ';IۗB \ډiB +GX3 + +&|$ Ol4aA7R>v "B_(|Kn#"iЋDҾK `2OM='1!!b؊q"m6B̏4iQ?K@ 09H_at:["1t#yk`o~ +@_I!``L> R!.;znq5c؀`;709;_Gs8"3PړM9#G` D -\VeEs=O??a0;$֕ [RMJ06:%!.Ĺt-y'B#Z'@|v&6 >½ĤCS1!n{'«#>dm]=)Q%ٿ;|!hIr`O7&}nzf.1SoJkO=SR1\=!HaG 9n4i#iq&*k/رЌF]YmUt1D>)}0 w/Nj.3/}QÁƀvá٨\`վ$& +yF)& F> 1h@rm#uPe_[B?s\B~9C%> g%PT(|:~c fG'<5q_S-QO{O5.Nk@7[n y%c6qbAWи l4&1D`H\ h۟c }X2$J5 +_3Me+yG]576Ol +31#* ?d7Tڂ4V + N +faM:u(&uثDo=Bq qҍ1bcQ$^71 u;1UȽ +8A9#q!.~lxg&|C0ǙY)ڱ's[1!1P-[Ԟ%c~C=$/@Hq?ij=/65z RHB4 +-EA>L +FdrB8ޏ<L*lWT;\_ly+n~g^ F5/|-=*.!^e n.ⳮ G >dzBP-lZ5RO -+{!Ģc$ endstream endobj 129 0 obj <>stream +~%xR*J1N%]<3 L +2/L|+) +!y?wxCDI'ѱI=<' @pu;Ľ~vGN*+>94Vf飆{ +'OW;E]"j}>xXBm\!>c`_9T MH>CGxeqTx-U%!fI8U7v)'i!3+B,SMc+-j_JFr'f*---}B|sb 1liLyˏ"*$#@ !d 0D@vf&2|eeT,57C:|~M)Oc)tA0_ ,ے#Lb3N|q~={ + ,Ҋ{#m+^Fw6AH 52%1^D^׃^CkĖquhOo +}]0ӳ=O7GZLv;dmI br:aK -9;ÑcnJ"sA03[RQ +p"KpgQ~bH{Kr,(-$O 7ӊk 5|5){"RNMdn,2/ROG`Hm +A)cE|;maU>).$3|jf{GVe?MsI!AJ! + K*nZ!=\  +b  N5k\]ry!o8dS +˚?#Q{|B3\ɘwMB Ȋ1$HĠr/NNj\ "e"#?3oB q:*b mt~#uRx(ے| ҶW7xnkH?!yd*܄:]O*W̅*zevL=I#z1VԕĆal/@ +#|' !&"EiNui" y_0jS\ĥ4WX j ţ8-d-4XJb-dfGv _`;P\L`m>. Db2v!zء o36kZ؅XҲ\(o_9|(H>'e  +p +SLr#JwMT5{ +b%Dg1{& e~蛈mbE\\&'tYnHEJ+Yްwh\ڹ|D!*g]W)b*}-h$Y|wډ9PJpb$ba戺H "vPnOE2`iZ?KP I.TMc G~E_vr[`:O%'ZC/ϧ_!1(mD0@sh!&_iԖv#F y6:@~%,~nGAWBgH.pm?a=g1{&$vP#%9juc)h&uT@;sfƂBؙO>>UUؼ@,whԫnc 6J%Lf϶t pu=Sl9Gr[*K!¦!< hߓ|XofcESo9X`E.K<'a()^@Ny;D9/IL7 I +䞱%wWt,W]lU#4.Imv=](Invaۀ+S3YaAEUK:n̝oҼB@ KD~O (Da]9~a\%LB~Czx1P=H%RGg)k+x)ZGݙR=amalOEeJz6p z3C E|@ +WEvA|U~'9S`O;/DTAH +dNߘiH;2r6Zx +0ƯDPp +!skxS2ϙ˨;Z 1t$A~[*V-1VqpXZ)+ 1f _D@> +A-y9M~9/8q_`iMJ德ɘZ7`f!tn+Dqm +0b)Pbi}r_O7װ۬O:z^n܇qF-rN..@"bN:9=˿q& Ѧ lɹZ!Ռt5Tx2ۘCQ[P9^n\'׶ZI;5רJ 2N=Uŗ)-.HƦ +SC'QؒoH-BW؅矰 #xsϳE 7$5=aGh7\?|ʈzui1j8!kh QoKXF3#'ESH>!^rzfkOKYwj3kZ(x:BfG ˊXɫ;'ҏŚ/QvOwҸva-seD| XAjCUE)"t?aa[{vo&`քY` 5¯eB6K6u|3R}[J] /r./RGT=Q6E+ feܞ3aG1,jk,U| \C#KvI׃@5yȿ1g'삣? 5/ĺfLma6Pnr'-iA"y 0ErT(߉/2N̗Oq0;bVlƕ|eJ2/jlΕ7QU{&l.D6tjROLK=11x |a|i2 +8 +Z;Sa}#U(0p͍78k$g yQU!MI.ieT;,u.zv~bhfK@๤S)" m0ͣRk'%E-B?@ + CJC +#y*K&+U-i~Rپs&`ߨ_ƺSKV+N{Īl9;tN ̥"GG- HED1،39G|oI@mqxhijU+ߍH~m"KA)èg8%VU׾J}͕kܡN%L +&8eOV V.s,NcQX0sFy9]0$B1ecfG>,<=-#F1n)Oe[-O@g}IK5by*v?}-'r1ԏH_iPXw@5#)T|~{܌X˧D1{ aBrւ0l`P+}̙ ė# $VDI%8b=,> +$~6@Q]Iz G諏y*an5 +U+ r)0Z[{52"!)P;jHh)yTĎ`WeӥtXc5*XҸ5Sێ+~$vl$ڕQtul&bT"enIUrgw7k"%3QOH!Y P30ϡu<L)Gt.'Ja8.b$lJ}k"D ,~PCA$ cq:60ywPpy|6!yq{uj}d8m=x \3#UuR)m8>8g-kV\ wa_Pf=UU6-E]^S8973H97ӏL'MAΆa5Tu+Q bv᣷bj=һ sh] CMԽ1WL76oc֋.$e1y^4ͻ:^YֲXؚ6sk%QS5ƻp`\5@ t($s~C(7)iiQ25KtsDoEAMi]So %+k=ԌUC{ Q9˺<-c`5Zks)\eº>= JkROd5Kyb[ѯN:bKhBrb14)j;%%^]HcVa9郮;2A IBD7/|y%N VOcsOͥs(ߩ'К 0ql?T-<[y bơYq ]]HGg.3NS_G|`b{И L:eMR.[Ceyb3A*i^,v1e?~q0LٽZ;yTG[9>GJ:<>>@jΔ[&֎ Ԫ\6S8MLիe\Xe_ FqDZUOV5&z#u!'a vbݛU3V +>k(I N?J3iǐ;K=:EO>1k@0O@&|kJ0O:v[SݿV)s7kǍw<󓱪*j~K+t|tm3wռZ:|=t*gYq:IH?3l['njn,e!RzW2e@}F872?jDsNu6p귫'+0o@LUw,e;jIU@|YLհ-\y2,B?MT^1|L`Obo/T<[T`k׉fBm,U~9~sW6-A?Af.vk#n_% ܡg*7?)K/Q;Zl tÉ;y|Ś?Ю{G^pL֝9L٪,^{gZ\cȻZTlʺˑ+\Ri*c?J5-T&r+DlERM;5a3WL>;J.sZ'zC@w|4ɿtjֿկ֣HlDh6jU챱Zbosx eT_.'es\ckF꟢ow0꽍WӲj_WW޾sgKUWXv= ̾&́fwjb^̹2&؋~r0±GjxFxzaՑ_MG5U/tR^ܯGjh +xs雛Mjng Wz=΍Ϲ<1?W2_n Olݷl'+-7Yt\sWQKrcF;ĺW|+#>4CXͭsy1[ Og٪W+Y,yro?Z}.e{I ^$Z~`:~~f)aBtճG6/j6=9_*?l%Qb/QE(P}[<)eժ_V+/vRk{b/F5cӔ!sJM{𣏕oOW 5ײ:-6.VwmPEɞ~=.tμQ'٧v'.OwNܝW^7s`.f\d})?iHNsgٲ_+UO~T|Z~ǟJұv[p+?6V>_)=6ShtBV*/-MOXHp-W#&'*S+Չ s'KV7s{71ވgJՉJp^iu/Α>+;<-[֟qr80>g * sԖ*3,wcp,_x\` qbվתf3:reᛅVe-+>Wul5nhws-nvQjAco"Oc㷿[Ob…REcnfǾ9\t;Mp'M,e5mm!qƣ:?^ZqM3!mpzvm3M~ڞ>xK'w#Ⴣm6WOv_;G>0闒tߦV,\po="h +44_owxxJۼ K/6J._%]m"6ڢ#,ZZՖ,o'/f6g/ҫT ;nkulTwpT6>,|hM?5g9<^(}jOgy^=oTgg1y2?9l{z6:[G6r'Hgjՙ<Q!Y:YLenf%k^;|ވ KqvyDžl^ϴ{rYcj3/AۚZn{v}Pw#k:a{>{~1r۝;Y?`ĝmQr.frb~wS៶E=/$}vl~AW?\ɖ?]˴{}\PCdCwߎ,Iuxy4ɾB]S#Ņ|}屮 Lke/bNMdwtVsgUReܞiH+yVVY J>|MMdkVe£Ă֨pM}Khư\ry So'6&=*,x.u {w|M)_+iuu c[Շ J;vTxv,wW!?οʖ;bv| w|\"|m[s[/6swzYi7v= iQ 7y۴^Jv~r<'G|ګiNmsVM4ۧrm^+U5oWJJZ6*~[Ħ6TT>.?vUU٣EʝN(Jm r[ү2_l/+}QT ̳B~w;0ҘG)E"4{Cr8{Ӆ‹ +?x'LStW3Ux/\y.y/n܊':%?^rA欢[1R#,.uYYul")nRIэ7bCU^՘XB΍y!z٥.e^xoUi|^pYh'<.4^DUN24l?-U)ݩܢԦ’;y7b +Uy?,pר__˰{uF#n˔3{a,!ϻʣoٿ>S ||zͫ(tޞXpQܝ/Ǜ]26miʩ1BˇVϱ7y"΢Q/i,ҵE].m`3egk߻|ߚcߛcUf%mkd~k-sҭ@I.BUK(UVT%jJE"7ޭ5͹eME{F矸Ewr^]-p|yp[GyU䪈2'u__Ƴϟ +ڈXmEE +:?3 |egzFgVrohJOhL)!~OF&!5׽&\@'ǝaOO/;t-BsvHkGԜ~3oo&7r+$ج;M}? bb*1|}g]>N/h +u5Hs5(/=Bn{S*kwf|kiHFY1pbq +a5 U((*z)zGpPY,?d-;wyɇkڻ֚ҵw27/Sb8Tg +ӊKU_!v1jl[aKCrv܊#XsZ𜫷CsF5wtlKz˓?nIu{^c.U׺4G)@gΒI gLV]sQt΁z*()z*z(?}r]z䟎B3}U&N~ң%1=WT|Ϥ:5Mx{#Zs>USt6%Os%ISp%)f|^ՄWcv\;t9*ܕͱ+'/F$c͑ysRK_' ??JR)ҷb} + ֽ2E1ydǹ gKmӇt Hu]T9&y79#4;1ػ').O3k[rX[Fq3\vʿ4jޏ}kIϿ;9C|o@iqw^\?tuh8'7ŲCWjkuiS]\]~-EE /^$,hâk hǣc/\ [zJD^뭰wCrR9nxśr+`5KLI }u? 1A1vb?OWZ|s /A Xo2u"3}wfnhڢHKcn*6{; 7;|}}/(z~bWK^-}Pn7 {rZ:N<\iãOu+K& d\dLk{yE|a@}y7F?"ovi䳪J:o]*Eɶ7 +;^*W/bzjmTnO >Bx1|??\k*de∬*d5؉YL#s+O4a/!&e|W [N7M'.lKǵ6gnE\_qc[/pv]pl/ɱ3hG}%84A}"еGFUh\:FG-CVS4q&N ҇nd+ZQ+wwoo]ϗmvt}uwr;?ypp~vKWc=<{35BfJo:П̍a< 9,W sd97kPdm'GS'Y~17FGUTKW<3/tZNo^vs=u?FYkoߤ;Ȳc6%-=n>+slE +4i}J-ݐ/d Mvs.-;ˈb";*'ϿG?T}b;;\ +} ~sXKj}.M0炳YvbYLb52D'3K_, ~JZ񊉹FcK, "%2d6n.xh4+ Mw@gI+ V1o1\sJ2ES T4/c;45_jW*h[Uw17'<ք:m=3ȶo?lu+;M}S1 Rs&c@bxdNWA_jGsd[dj,#8?N9 +&Le+adY#[Ι'ƮmvL5kC[T$+a}9iwsPCyjK[>ZzF^˳>^E,ߣ m>!36c桩sw +gf47CeE5u_;?3ZK*o.}cf]R~j}*;׆fU3W*Y3 ̸ +9 .;mb@OC\-d\?إ:3q><MDb4=ͣ+\ +͗5q{4Q٬>j]3uk̗"Ges7 WU0qz "E*C:ӕ2oTO g+od9{57~ˎƟ1L8Vȷmxsv/؇$U +o_ks3NVS.R6{yDoZ/F]|ћ-?E;l]?f"12_ւ65psqh9hxeo͏dU%JA*:薊 +?VEPU_ET|i핃hG靿G}[,^%y RqQ[ɶK}O?Ҏ s3KeǮ=X':k1; {vNͭzMp9ߞ.46p +)l_imm]rgU+}*N$ 18΍joewos.DvsQZM ڢ +À-7O+/U&Jd((q̘;B|[qk\W)TS`-K)ˇ|sFz QPrV>WR^ d=|{l ym?UΩ^/!7/93:L!D' m'˹=)?P^z!Jڨeڮ"0Mp$1ZaZhkNZSsi\ǪU~U)߾c~UqM3p}]s(ܕO7^378)`{ΗdB4qa{;)q U5$w\2U~q#; +釉/z5t%}S~Y;l,4i럌V$oU,/{F%B% @7 xHQ$tzx\~DI a덕|q rb\YeܝyQv:k^B&v':@-YﵧƋk>x! ,5t9KoE_"Voa3l.kwiy|gI]?;ޗ^?QwY i3xU]F+Vh|QxbntN*K >'{UΝ|HOﯞTݑT~1ݴssf./R_D3plMu Cjn{R9xWGvW~vݠf#Slĭ:Fu6ELd;Lމl6w5XkHիwRisgrTvC1UJB"S^'4z?ߴy"8d;kJe; >n:=ލ=Z\Aћ>M Sh&dJuNNW,j:SWE's5DLz8RJb,Yd:Mc&i$| pYEDXDъ8 I8^s2t%BJ> DPQft兒wLŁilc^(?xu[.gKmFniH,:C?{uMVIkLﳑuO*`\?&!ǶnTAo5+NRmehŃLc+f:.rzS7z3اŽ\f `䴙R8z*,x;W;1}96e }Tr7/;d_ +@>LM[̮} }Dyf{B|߽DyKc\ihdypH-]IGejK4]=*?W-u!<6:֐M.ғEC2tUƄG$i + : <>+zc#vo5d3댄Fsv葇+Jb}zf7m#[,'̒*rm~pnd4 ъJ"ՠR_8隢i&hxk_M5=yMλ+C*wB4%8e&"FZxYi~|1yg9Υ`]w~~HwX 6fpSmӽspОݸ} +n`-{uwes c ]F_#bԽX*B"й-ˤ6g,A7.#bcHTgַa[ĖGyзŽͤ ur}x8bfȆs[ܾD̮o<7A'HOj= =VJZ/;H^ɪG%밵gRA7;8d:vud_WK3: T4m>Z`Zf Bk|pl_0X%B>~b$HҠZA{ h"hqL:-R'0@N.ckwM< R#媇NK>d)/oE' P(i`jwI]ud N=UsxSw.ʽőZb!EݏTgjɍuy I3%{uRHІoc%븵 +kCzJE,"<̢ f #q`[fΖPϖ3>ӻb>srYx.ΘtZDW,\ +8Ħ֍cR "]:>o,hGrmOIrӧT g/DqnpByNpZзTOgAo"翌MZk.MkOYKqs|ۦtOFŤjHNtZ:o.?tb +-C4Wsњ>.%(H +I%xbZMړsAt]-f򘬱!1:2>R],u\ZOt3ջ҃OV\]/ϕczS7R3t[7ɾݙ߱KOeIw=q6qEó|Ioԡq`4ňh5ޭ[ʹ_ujOg +{,UGR&nnAi#Z /űGR';F'14S]bɵr`o2ɹzBy zj>xrӆo{OίWŝVlN)_q`6fS.w9IÂhz0e;&sDK2u$OF#:&o hs4ksOc1etZ4=Ӊz|a=y;q{RWmw)`^yh1ko~e wŝx`?}Kwsc7:t nP_,~Hj.u5*k S}CA;R*s-f́_*_\U>\adǞ[&}̾# ZQ l׾/FXRGQ[!rfk}Yk1FRCNhW xxǮHA ?̞;ߺ Y2ʐ-bKq}fgo6eb\o6b MFBb>Ra \\pyC\z8pa} *~=BѰvB4jsU}Ĵ[3ap~K-x hI-Km ow|o`\@M zTQР t$ + NЦ +2%'o<<3H)YW1MVY|qMN$nX.OE`,mО<ua N+(>dʬKq[meq|KJtOR\؊Cvaᜲ\zItkK +=YD{2絿pes/|AtwO9^ B_=0$1޾~pp5^ lN&*^t1 hBb4TlcT< +GE͇.3Ρd-WptrM:Po L5nfJE[@SvLy:فGuua`Z74SS6Rܠ >06`^p5z]6a ۲+ %8?Y\XdZ;›)aҁ%1x[M0(W'zRzl0xKXwߋk;Rgle=t5߅S)0e'@sBܙ82E(춂 'qzb`Y:Mõ@N3 g t9aLF1i46tAKp3M3(H@@ +W؏1{L|Sj>{˅~ƞAFwr\k熺?6 Z?M!SN0awLˑTW-o'ga<|sB4-^qz/Z1WAQl%/Eut]r/afWRs^mlroؑ$=s#ZL{q\\.J''+N53XKm"nWބy c[|yB+oEE*`!ʲMɠe:z!s͵_[*~F|/ ++mx.ϓvMR5Yʚ. =7=m: 6l)8"zzՆdz#oaIAL~*Lp$*qbL'kE\5h 1jr-0+kZCLT0*gmC1ayB>t'ryPtrCY ]ņl]$w;{-#h +":F9솺m<4|AN +)hV*@ ƄQDz7Ao AoJ"G˶_w^[\V% x~ _oZҞsKOiZ8 ´:r ~ՅzPm>6I/3 .XK*ԃ tSAK*:G{8f]>f[7nglCP VDnwj^`fY6yZosw*`kX3l߭Õ +k"uc<_{|?t9|z-$o<&'zz2]ם7v;|^U}2K60'=j_yp:Y?#v_GoG?y4^Gc67Ck@஋joh3I``p1>Rw l/T]1Pk$K/z/;s͉2Wл^_b3ve^EM>?YG1&hɠ)e(蝤l6 TeVЃXK8ނ.>aeW -xtut%,JCen<`|c#SpRdjqs#Ųswbg% + +`Foz)vxH\YNЋ@sbC:V8%E\g08ހ6|pz d7$K#2~tY)qYg& +YD͇g5ےoy+>6_R fXVlQRiA_om{_^}r=$c΅h -(z ]y=Y5GE`JB ,s5g;*Nތ8}:]qZLyKc9鸒^X>|'~U P?ysRC6:I "f+ 6O$ +|mdg; w֠qv_'yp +1|:G$h2ĶΘp#k"iugMo{ -T5xu!yMM#BewAЬhߛ3Mʸ"}`GɓFY-6ܮG>g;K"dNw^!yB쬉"z*&ɚN;*KwϐxFtוnWn%a(֘RQfZ< b}7Y +pG?``\*#Ŧ!7¶ "uНgԝL_ux) My6kYd*&S$u9c せDP5 +8je{[ r-!ۏіj a;$=H^ahtx6;t p`}Q`\OOΒr5vX#( +R O /Qc1:,YԆ1BtX&|VKyq O.)[=]ko=OV9-o;$|AV6aUtMfw7V +Z|z1_f|=7Ia P[+/ԃ}#U>8[pІݰiIXN8f';0xRdgAmh4{rLW,%CmQv_ tm/__o 9\Ei$3iP7Z`8b=C26Aouo*hnfm=B̖՛3 v$oE# X` klgM;frS5X{^DBzT|Ԏ$#`bgpMB.)$UP`$Uh(rk͔ۦr6S jtа=P{[.<`$, ,l;~]D^:>$>K/4Bd6%K]' CӀ 5v\;k+*l5S B y>瀜 + pSTHyG6k>#p9o|릻ZWja{mJL䮻NE{f] ;BY(ORv؀V7aSoEY +';tgvVҟ1lHRvy_9 Ux~Z[<B ~~: T. ϯ;:w]q!KCW@F{q뺺B\]t[ + xsH-g ŷ|aߣ\w<>[QaEk*z͚︶r0ײ|QvKYV _Fd #X.#ԢcK΂%`F+Klƽsd-;*v,@uEq-~|(sG춅!WMg -ᱚ=yʉ} +k;m(Ok2% ºW +vpc)W9`H(u*$Rb'A?ߋCp5."G[Pe"q"0O'Α> $:pbmX|j!BZ!a=KASL"15م5O\4X/ ۱'@[ j.('>Xa ĝ.uGp + Xe +rp <#  L`\䚰X`_c`_`gOpA 8+ +;mH>0[ fryWO*|ty%sU) q} {ד鿹ن_xOltаoig /"kC\K X֨92W躺Jr$$ 1tM>,S|)%Ae*2jL!ń%d`1)l۬֍G$#<]EA5zm!T +=&dtĎ{ˤ]!H0€$;0g{bI}dfr[bp*0!~s[+ԣ/nf5siUU;0@*4㸍k4 ~[_{R7'?saMC~\q莒·$jR+¨)j$/APOŵYL궒NkBǩ{PS.3`ɪ`q)6aNu&uy@jAP7v::as[ϐYՍ̂ lJl  SxrZʟ{WXˇЊM(=tY偙B{2p`mzɄ3pϊ0a lyVhnI E'`da x\]`Z|<>@Sd`_Uclcyg9aN]\_w__%߸k&a|$g;0 o~j1yy ߅ͤ1\Ĥ}C.%*7"yJ~ǖH|u^ౄ{}$=W{aQPBg`O ]%2sL +ciV.sfQd{g*܃QZjHX8FCMQ92Szz)*':Blnk{ 9ރZ-@`zb[>OVs *A|ȁx&uO +WOX_d 5}|%ko {+˘=L;vwY{-FsILr'jxE)k@-*9 68f.SVջKڬȽc ksNp8o.;5z`CL>{ yi)#ry:tdO'|8CRkЄ=ys`ʀQn;MKޔ,9[[_e(˨3J&|f"~\#K%(XJ#ȣ6z;Ip6'f4fIGHӕC5ڜjj">Ӆ +k&897G>>p x2+vȋq m|!#lK< O uX'Ϭ2"JqN|6GGf|Vi `^ܧ˭1: u0uf4 +D`~A_$GgKu3o*vs㳸VSȹ.0c+&Y 8ᒑ/WQ|ď|gdc2??7>x|<>x|<>x|<>x|<>x|<>OL\fLw]- [jd0=d[jښ؈ؤİ,[@uˊJ Y,dr[{7߅ Bog`"Gx[ſ&J#Ft9~88-]xbEKl-p\0qBۄNj[dBxx!?_$xAA,[5X`e2z)b\FuŸp-m0MTzlDG ol.9;-U.\v"w(9P |(RYχT0= ,EW6Bҥ3@[ʥ0D)i_A4(8"E/P@"aYBb8>mPOqI@gViUP5P)jDҐtMVFgj) +e*LJ4M6Ns +/ FSy6+Eq-(2LA(YeU:Ll<__+(Rlu5tT[vL& $=C~Tk2|Hv2%@Ȭ1ư"ذZ< +0LHE! +u}To_!PCԁڭJYo*kk"$jrQ)Z Ķ^i}sd)2̈́=.)_:@@H^Vp/۔O&W 7W@#_0Kx,=4ly[18T-1Otd+{&2ƒ.xF:>+>TO,D{a$,otMA qx,4iύkD-&*51D +ZȂ1y&TT fcԈ2>V[L"U)XWd|AhW5(M鈋+[WGɓ5rGC4eJ䙍<=y\t*rֆW>o3 Kx2Of<^z2Nym U+O` "=)6%'*g(H@?G;vO>dHG*+..{,t(2ʌktCWIC:S7T{~Y^k"O2"X0ktxo1]Q>2暼b4P#a֠,iG  R +.k2#ΕSe!BN CTmKMo2m(]|VF:ue +.&A @K$ԛ(ۢOb"R(E:89|3NJЄgHu6*G-E[xoPcB3tGRkqp~I:PEPoDe1SKh2Q@ű(@`_>B ԲqAe[݈>;X%aI: +;@:iܱD9,t)+v ]x[,Fʡi8?5!ơCs77_h *X\tr !vJL1&Q ymq6ؖ#: +!oDa 3PsssImЉc Q)f mʥ@_t-n> T+zm9%n+ A9t +Cӳa'Bׂbo-Q_G>7~ts)Tº]PeC4lmPT5<EZ t-"(0,(:JlɕD m"Qm]4L-6JTMf*ŷ4-RduatK@R'Or)Z"jT e&]$'Qr-f$cy :=* ==Amf Q[-Hߐ|e55 &D(S@G XC}S䥽йK:|y +бWdDɡ{|NAt-wEN>`ɠ>ElPD +>tSBb tIlkᠶ2f}9ؾL+Zf@h#v[K @*:c?K+5e#Z/s cejaIe~`ƭK55R&x 2uF?g?5-\o$ |6BylugDUlҹѐot6h%tՑO7IOiȲd +\S!'p~|nT +VԏHT +g˰۔k&P<$]x!"ݧxF@]tRC,\hGA턨 ך(sKGsTPLGKV;o86:T<~1ca tiTAjC𩠀A͋ڶ7q v *llZ+!Vx $8+U`>A]/J>J jvn<6TyIgC@,58Ŝcfjt9VwLhSp%<^ 9Ps)U@(!'%dJ쿣s@*;Fb8V@|zKPK,rLCs7Rf되ǗvTƓsA~[!WV&ǭq`'YC-r<G,//I΁mIH7[H9QuC\.Ep9QT$<&n?g +Q¿#rT P9S`&oPs @!öF(eGnЂyFT{"?kx 9 @W=]P!)#x~em4&cX\syx D-O~}xFuu1k&T ֒ /Ɔ@.cpNC ?q> b2΅udՇg |j8LX{mmӘ31# wbV Dr9( ("9g$H0;9V1s}]zU~`I=8;:h3nAPy`M0 +{عi5/EPb=5Q=>ȵDZq r'kpnB'|:l8;\4Lc*)$Ga\ DXXk$ _q]C0"3!Qv`&-,.# os8@fC + a=apNa^m9-EI<>}CA5:S}PX"S9;1L-wZ3`4@"zp1J{OH]E/[ X@ =}~,"z/۠5U\BI0 (oP |}ԥq>ZNr(-@^YDsL{,3Mن (*:N#x'}.\L7[⛹|hՠ/IlB5CaQPk݆:0 21o6r8ةAq-L6 j8\υw' ${Cl#P)/ҫf~CT%G1;1Q-9>(z&L%m~ԥo|0e1!/ j܀ZvX8O| +Qʤ= W~DM5Pˀʲz}KxuP ޸TvS0~yp(Pvu;ǝGJ@\LFԈR#(z1k2_ezplw{18JV۞.u:`A/R&Uu3E}46**^8왠 !\1JWu Pgk5۹DićhsTqtBD9 T@A8\pE%DM[a̞CסNb= LZCfO 3H\"->s!x7wl0x8J&PFz&f +؊;1EP| =2^$~=!OƟ|a$kH2;k.wo= T!6 |ڮ/ k_npcSӉOO%sE%7%qHԫ@Q{lP_%*+H5T#żȷDj7dy1Nxԧ&p>5ז.HmdC^dCL{1`#p 3uOCǼ2테Uiл-g%G4ᒸ81W i" Ep)i|NIRƀ<NjN5kl8]/7QD[8%3pJѥ;۷5N\%5nQVzo#YE2 ๠I"e,GDpt& s%P) &ncI_r| ܍8*`y$(ӓ5<'s.1ʄcxnI;ki1bˋD|qj$X|b3;uDI77X"-=8z?a6=?uTu$P~p</]],uVD:{$|z'Ay zЧ$\ RAMz n,\H'oW9:Yc7`|qs.~60W6c~O7kC Bbe7qqI01mym BP.NnҀ:8P}k 8WWY;. 9 mTV.pGh)`"fWݓTdVc 6urU6V@ ˈk9BToW'KZ!;$0=, {o*yC@yVv!{!(. R +g<ASr/Kq15qA!}g+8Sdk= ^p6Er7* IzcH~Z !'7˿Ax AGpm0o7wr(/H:;摸;;R]jLj:b5[{/uuY'XR•3 3 pjpa+PӫՈ9(!C}cy 9?|} Epݭ͠][BUx\bc/` DU+/:@ n f&*Eϋ-:xM7lp0%pA2E>M tG#p9n|M &džVCZIFϐA0q%pBJ+#8B8b{%6!W7 2fi!waOy&t+Sø . ?KIq\md?;AMjynXpOPe"ޮ.)SGG;}:dħ@zPA[kh#md";jUPra ip:1{k(sz(4]Z͆Fzﶁpt*j;ѮC BrAPt pq}CoM gO0֔9ΐY( ^!vϑҳ! +=8r+C|l8<5U9E<ԌEWWė`~URUYv@R~r] л$A@/g1߰gK jw/vJZ>mRw>k yиMy)87]_!sU&2qȵe~7 xr{+&h8BK-`R`~̄ 8[{]_@%o +Ws0Ag1M~W#!SG<.tXXG?$IfnWˮ5GKD%:tu A-fLpa1e51^Ћ"#]G ewWȽ.'xx82 qHZraϽ^pT*`=`5AHmcHzpH;[v>}, w%4)3I@g|Ɠct㤇긧ƒ= ފ,JS[}m;n.yġ=q$\PbJi^ިeK+%Xc(TK%o"YTAGp.t +Rb.@S YY3S%}AN$<* s $p| jˬ1pKU!k5a:RΥh~ڤ{&vthOGNM8c(`T9Y8T$iLhj;dO\u`/8:Ҡb$^C?|q\vj :& +&Y Tk_"Ǒ\4Tԙ w]uwgQw\Gʡ{aae'ȹbG2QB#8[g~p]_Rٰ'8%ไbssX?:+$!B#. Fnaf]֏աo"O bI}Lυ(p+Btov3+xen>Am"| z;xg 82mɤ4r$n-xe%no=:h/n4d_3i8ŗlG98FY {$b/7p/r&z2N뛹M|*MԒ$Wb2jhhd_a5#D>b?;!uu.@!Rbǔ9+ {9MDM'C0vQrQF=1Ɗ{<,>ֈ813{@?bz遃gO|O̎y9 gr9 ا=Uzs{pqԹ\r!?\ߠW+s)b5JOEUc!Q!}DŽ-3yہ:u!9yl V`gW\bZGм,qO[l6 +*jPpm>c5D 8៉Sӳu51T Tɿ N:П񻵘}~M=1G&wr΁EX;>7ݻęb p\=sB!c^z/dm>*pJ1J g0 7Ή3`v3G 'g[Ra}\0'ΏnI.JX5KE\p1]~"aGJq=$J伄z>9p<oELJ4(o?w9-Y^=q>&_BB#s )νd/zXa;?QpGfѐ{Sa3m.q&|p$jqYfӥқTQ|&h{i$gcjڙId0 v!@oJT + ~o':tw~n1p684Ŗ]TVBYK8 8g*l8jҗk&87"+&o6Cn؆=7}󲰿Ӏ8LT:&[GTY|:peS Υp!V\iPS{3HV05y[!ᜨG\KĒ yKaOqpiaIsffDݥA_K\xB.ҿq"pGp#w1&; c> ž;B+uOѩe;اɾq1r+Ɔ=[ nč>pq]yy:\/d}u10NA~7ڟٱ[tQ=9~m'ńB%Tmg2ݻ餆m$:|+Y >*-<\ؽ +W-̅9zU ![;wijlXz +z-s.jk42Ik)du=O/p^׫s qw8 98(ǫpy\.j7O;&OerfQk+v3z Wjr/0y}siٯJ5헽;!}x!e/vksoO/?j?*fBqU\jrm].ٓ^N +$qEę:x)\ctR6Hstr6p!c{.>^MdSv¾ nmeV)wI$لVJhdВtUTl&AgU&=9,˫,#˩:VuJg Ċ]⻭bf20Mi)|>qa4n&YN^[_WWdq_KS%{Z,zLlŠ6@ %8$dr8"O3w@=gOS׬YWwxM"77sy ɉx+=N^^.q?dK}R#GGMoW[/d Ulj.{¼!ɭjK&fhIr +fsdNyO0Ȝ/gĩ зM[ sKoH4Key5{͞ܫ4c3ڵDۨ.uPcC^c.uj/~8bP~_k&5}\:MgAS2|\auP7 }rq{$s6ZW/kk2;cj jH=p^݌zU,.mV:xsћc[rr^j+>Ĺ2.Où`ϕb3.MC稢`pPӂW6'VݦzDJ.3f]IV!٭=X +nV܅ A4<=^%w:LZ0(o vAUW<%hqNW(@|9N7a{?z0dyZ.H_QlYyY _G)q~!iqyIɭfy^=mީSY_4EI[W: ?Z q2_ߨgzZ|Io .vh37[&3ɳCg GE~ק1Wm']=r~/'~nb?c^gKOo{ן҅_~3=" ?e]V 2;s{AJiN] {KyMܝnգ2;4YF!o̍.Jf#h.~fN_Kh]ov!uʙ7V\Y)mqi$_uP=;uW$,f +-&oӾ AfJP[ ϰv˞}t'& P`OrK>@JV\pUYj˄׿kS7鉞f0WuQlaҷ-:v!"["=o_yKhHMVԣ /?#Vf%ϭ'`*[eazʜ&S8yY1փԭԽ~/RZQ v7U^0*8V+I:}+TxKJklf\sY눽=b]OjNO?S}1%pkvi~ὧ#{@Gz*t%sNܯ]ӅKdq lfC,#k u<"F\d/*nnxWz=#k?@1linENjm732K2/h%M$:|{Ƭ.OwXvEykot?Җc.6W_ Q +d^XPIb25vKT[h}]Qۮ*}{;G <^-Jz>\\QiÎT+U+DO*?ˎ'&T[ܥtuVGEL~7=7G؊VkQͷlW+·ђR_.V5lx燪a>'hі̸r + 5IS,ʾTI??Hu15PkNypa7`~1:߯- )Z ؕ#5NL|+-ifHҦ%Vcl/Ԗ>o=jZQ.+p?|o.u(x%j JJV[q]Ow5ަJ#4&%y&{&TyZ}}o"BS}/Ą7dVDf8_p)xPq!\}l̞"=~s# VWgrjco}9ڜpRUSd~LÂD5?R?d76xkw7qM=v?f[;ŝؒ?^l2fsKoO5;v3~oèCmw3#㼫#*#2]#o:Fڄ6 . ++ )?Wچ8:EdEY5ǚ[t=8!| 7 {==ԯ˝ {#.8#i +wxs+v{\}923P{NcK[^]u^\vTZRk#y`#-vY|ǵ__GyhkUh\rgl@%/4TWQX+99B!.y 6L + ʱj~Ѳ37k( ̈́yJkNk"lbwߊv3~4Qw,Y` %QEQQ1'SN֧jΎl8R1D1P'^O~gTu)+xsvwb4 E8yNJ~ L;G_jp-j:>2>*;E,P2W¾_= jRevZaP6E@6Dk6U붣Ъ FHrpfkZvҰ>^zFEFzFĜxcV罯iWE[q%&xqCLW7'AKUМS,4)h:~ VNv ]q6-fiъS8h`<|RQ^/VE덭 w?TbQk~g+7ٯ=c _;.v +/({)"=&;Χ2 ɽ2$1w 2odž([t.l0^C ԏ^whw/+v;]k{q)zoTtsz{غjhJ4g\2ed4DOh~?)IHEq27Qhv){2J=L&^ L ok4D/n!iv|w=|U`|k+<"q^,~Pcb(#r|Y^)<=:;L e6SG:R zů|9qv-hl"i~BA]IRA4 CC`9KB +<?3 +z'E(h J+/yD> {YS|T\OtFWԥϨQO \# +\#pbȻE.QK/T$p_;|ş}_>m}ьkpИ&]vChѴE8'm~W +d07# P ߄+0 4*?MFS/C+Eq;OpJ\vgTaKxk7Q8DŽ?+r +30ԫ,8b+[o\"㊽eEi ~ksn zgatWKʨx !|?i ;~DF?aFo2^KwAj~5K \{oy{eE˓-9jljc_X$a+h ]ȼA.}PPQ!X=K3:oy-h<0F?wȟlʰhCBV5VM*.IN|}g̣\qyV{̋|7n1A>љw;E^+uH.|孵^4oLRSXb0O]1@"S0CXp9gh*?d -zm0OWЪ絨ϝNs"dFjH\c(_ծ&*`[N$<5ckTgћT\谙Ӧ^c9⟯ {(2#?ǒ;Qrc)֠%-n Ѻ/u6Z̈|}񆴨|ķ1ux\^4uI)sy5gB"hl M=./o?c9?ş&NXf/jgZiҠLϼ徆>O}o:f->i 6qRMM +MMMGFSFߛً6f+u-o +SD\Z_yd4x]l2}=5Ω͕Iv*ɏA/!*h`%X}9~ƫ/Y_yrهpG~qxA<͘)OY)@3ksѴB4m1R&A Y\/muj_)}9iP-.D=(t,:37 0~X[W.Q#{6Vv qAN2`@X#&+LEF,BƯD3@MМuqX"A3h +Me&+iwV +b6њxm^~EViJx׿H,.pO5>eS +ؾZǤD?x&9?`ǁkohihhڨ%Hi +)M )M܆&MAƦ )ϕ9+źhۊƫv ?] g\u[l=RǨRXsNmUΩm)K1 Ө_́"2P&(LC1Cj"^sgf1xasQ֠)6T1i1C37X;|CK@d¶_'򫙞sg SB<_ +xW۽p+-vn+u*wkps:!B5u Ccq~~4c^SPFJ?-ȕ8oC3@Phh4O pETmLM;=Z$@L/*lm_lwr>Uޅ'^)u/2]3Y7&bP_@ϫO߮ `\F?) ,IlNğFSGEGƹ?-AS&?W,7G*+,Gм.ha];r ~FqQYS/n7ۛz,(<+%Kha=FOx]_~õtGJj>EF5P~"BOG+ ǯ@s'"- C/}=t۟z+ Y]6b;&ϊ;wTsՂh kymz^Kxlul`W6.aF11؉@OCvIL~yޘ*>;hC\*9>Y jh,M-y2zev1;|[&~U_n_x3g/Ezݼxw@LE!EKOK|;@P7u.&{͹GŹ=2҂pɰ7Q(NRC`M>c5g x-вE^hnkbAt.Dieh0h6ؙ9ZUnobÛS_;[_ |~s^훍{۝2ݔezWuQ *xsQCq֑{WqEhF𖗉*:[==B*JB<+b4?̞߈K`m{u9q<4c4 Z}mtgE_k)spt|x=]{Zux-&\ş V}ycpW34=vDp%c՘%Ƌ]2ٿMڌB,%=a^Ħ"Yc]u +ۂ&B=ƿV}z 8aO y Q?oo1*9çnȶƞfuV}*9l0U$֮/ cKVSOQI60kL$yo"Ns..6b#j%Ě7=u;8/UTFDf74LXch,uDt7lDIE=GNﻦdW_6֜~*:3&~ɨQ N֑H!h"kSעEh<`Ztt2z~\G[yZ<޳oI٢Ǥf._J%OSC:[6#V"8.H(]g oV +Ek>-vP[^?JYꗾ+fU_ؚyɟK9*sW^mQ6ih;)hezVhaKu Gs]ظ73-蛡Bd"0Ce( ☒\qte #NO%szəN?16CAKVҡ)NbÞaҺ4ך8ZRtmbW]>Q'WWWP2a Mo;=Dp0sj=;rC;qKz:UcVg|dt4c۶*њ3h6sK;{OLnd^VT8 +"EWxWMQ"G Thf9?4vSENCgB{22{X~4,D]%x0(äUySvJ]V\/UEsѺ=aԃkn˵_;.ihy\}:jۥ)&!g41(v[ASiS39䩌ӕUe:Hs$J`2s\q!-\-+X#L,XG_+J|`qv19Wy!a62ܯ-{T}ȴ͢eiI,Zx&WA9DL2:3R#kօgvXx+.JɣU`hRw)}ϳt߯.Ul$D&8o0 T\z*(owk!s{$Y"JŔn'=LtzN&fh(,7\=u0t-kTk:' +~zvLtrM:rƩA vⲎot]:X`=Q +ehhǒp:2Z(=<='\탦ɯ9_z3*]@|dwOIewZoZضT풕c?1i [TN b b ym~aΏWA +NߢK?^9gRsFx=G*]ZX)96/vn܈t P(9=6ז8/9+G61E[%%~=MsY=%O駝Rs!h[*{fPڼ: +xȸP8.yor|8^*{ܱZG >,0t͚[i1i"ͪhHde{P`Lg4N0ܓ.H~q4܋^1V,%zb*9*|1m&(w "Kk0{F#F,n٧$m%oc?h™Oɛӂi ۶P!/~7)2Ęcy3й5o>DUiː윢L8M= ھQ!m5l޾kF|\AKoۉt4 ЈFI1fi=//{dap#wMVwR")祟EDū1F.&o>aȽ.vJp?3u=q:햪,58n&Wė2ؿ͆F&տV#Kӌ\'_MZ;N%N o,7Hmfq"}}y8ZzA +ґܩ֊[͌zա-g\fp9Cη (YW43ɫԽo¬_v23\Q q~;E0^c(׋ʂrYs:7gc^0wsNÃH9`x.yI.- |PzBA`a?Ddvn1}HA}:^+*#qNuX7 bv`IҠkR5QzbnЀߨ s5*sT3cs.}WO5\N8ј8]k @^Q/&j$9k3 EǽG¼8֧оy (k19p_P=tdH$9ȸ+[؄f5=#'t]ӂ{ԥFu*YqNa\s!sAiI(\Մ՛LS/̓.njoO 7~hя$z4P:GuL_ߖ:1zdƹ _G˔桥gHKEvC솚XL;7T(Ssdž-ď:?r)0TZ!>~v 3Ogc)sӄWm'30Aא90^di(zvN̥>ms1]̞OSÞbn.8a5AtJ  +OǍ|aVQUh"ƑvJ:s8%a $!ERJ*V 2,ʬ"Cv^[vݷw{ܷ:cUr*@ROuK:{{ {ﳾ7qڦ6 ,kSkW;l#Oa\g]b"N^=9;?aSc""P!0:V]q}x]kJw#(3D܅7Gc}/{ +C +羟|{m?C>x߂`W>y7rXu`ɓIT۪1}rwFRLhhv6˂+~V}jhSK3N.>|o3"o3vۣ}>fߤ>λkZcmA53 m>v=d{նBmU76ĈuOÿ q0+fTmlۅ?}lxj|e%;}o7sSG]?z'o΋ȿ/ 1r y>/uzſJFbIكko_8?wܶr8޾p(wZWF\9,xfgZO->sGV=7WzyO໕`^)Wu?(/up!2MׂڧWwɞ8x{ج> 7+34cM)O}K.q{אnc0VހkK@lv遶E A J4hko\9}0kmfu0khipݬaw2 sc<|~`W|uSpg6|5јO0p3y/|S}oWE~}١gWZ=)^ vsqo<>ҨzJ߂-/nmҍU6D/'SΏOP`j)3%жC:#Wn[4|!\GaogOFyZ| +2>^t2'^Sgm3M{l8+>'R?}11;)C%XC>ЋB_wa(0 _4s9 q]แ3{#G>sGzc0fs6;;~g<&٪Fl gsSWdy^x(coS CjB̎#C x𖟲[}R.ܣKlw׻7||u&WGß{79O~_"|U}? +UunpɃ + sv/!!./b3aмUgbZyX/~sF ѡ{)s 6HS>?'{7 0 #Lf\~L~n$΀Xc2 +JCߺd: 1o}s`n^5kmol |2#yˇ#' -6:yj6-saN@<3sɄ(#) +]w"_rlx?gS?M=_%_{#o_M|e[~._nw0WIOC^>1vo$kj>vun 0;V^xu53;Lnh 5vvⶆ]@s臺̙w +_?ǿ aN%w^|鿽5GbF) Bkvj!߾ s;;ۺtu7| w^5i`}aI&5Ock~%vH8u 83rs1/#8;k0_ذr9GWb;-Q6w{$)s,=;4і3BA慧 -ya`3kZCBr@̳Ly6Vm(k";"~)Em1О#ke0\' > _ӢZt7<1Wm?~7cc[^c(/;bO_t&iWóSnp8G};-ۙ_0< KMgZU`aPkt U65něj ֵ4b[k2$_|Әs;zft7"xsנļM>=ܶ`?9rʃ> ? uߩlX採,Я==܌yK;|ua[تW @ݽ/^Ğ6pϓkL !5^u;:ۂ6lo)Ӛ +%ל4?̿Z+#W7D~(a8Q>õ4Mz⏓ M~ ?-}\}_T&Bvm^rey<7.?x)^6bd'DᶺV~cL0.[Wо*"?)OMpWCZן=_:Nk_Nv?zzӣp}&|m;߶?{ա'n g B,w-ǗdqmMmH E֟Kֹ¦y*{Ȳ/:a/c_fo4j}cD07$J'};?qY1(acW\}V\sO"L6=mW~1!5_.0oeu<o(t8^s>=tݟO\oVM}TC;'DH>=2ۛ~9%|%}s8q)&ءOj}xb`o<s݅W=3p־<&zS#X|?'F#)SW׿D}̖mNXwĀ^= ;w)$b \u# +/~W;=;ڶvvsl'm>r!}|wga;e&MSYGb[N +aN]#uK\V`~Cb>X5gG'lR#-}ǚ3=pQ݆WЁ 6K|xLk|i=6Mxō1onŜڗ qF 榯[u*/0xKWZ6m?/x ˵O_,"?E[#.أNWGN  +@+j += 0ScpbuCB;$w uP) >9w13>{ps1_m^_RƇ͍o5g>s7XĜ}{.u=Gw:=26䉠Wk>Hśk[qF9="fݱlJw0H..ֱ&crvLs6>c;kӼ /:;qץWQ\>1N('))=`~nĀ,FOC6n[s|⪆yt{3S%zρ\O\?ߟu, &d/@\ ŽkcNckl}/80g-G#ޖ; ~;*^<\vi/`x>bgjd)Ӆnv(ֲ4;΢|*vVbw,-~SWQ9wF]v]D6@˺;.\uABF+s˃=ٱe_Z7׆s zĖA>[[ ; 5+pmbz`_}K,sdWYBΪx/Qi8w1}9έ[egv |! vDB[Paay̷n,q|l+16a=lXśüψLX랿:'E"v,bQyS>zW˸!{^[u$1x7j 7׳{c6m%d$lFM6*h^k :nѽկz +AǸM}n4gGa{sO W}T0ւ߱K G8{>_㒺ˆ޵†o84}O>]Ms'X",oj_vVhov֒uT/\݄M}ϓUɈBΪ3bgUy'C[oG=z)F I nZ/Fl*qGd}I@ ĥBpWS9W@іe ,y +b~G?|a_qmo|yX№SƓDmwLۼ3G4`N Û^*{$m Pr>6<9|ɯA}t.2-}Sy*驮a^ ;k9uF:֞aoJm v7wUC +·x|P>]Gx`r#^ao rf𽞺 +`h7D~41;|2{WxOY%c|=lzdO 5Ytk2vV>)؟F; c|@XmO4/9vւSU,\_BWZoTlsݛ/&~.{x3E[]m[r:9&uC? 7f#vmG6⪻kcK7_8g& ܇w)|~ ў;b .w-#9u7a߽Y$_1vyK?4f=4w0o(14m'S'l3jg +5yr]30[Fyqb]g֞_>;sP ۃڱ%/# vpvq6<2~ɡͯcn} c]CP lK4E!c"oʘ›Αq  L_xq|;F:CB;^qEx׃" v< Ohkcil"bEWG-8>VܯljǑ0Oĥ̓ z#k=}`p_*gLDΪ{ꫠoAώw>«2t%:Hko!, +{a|=<RΊ<!n +6nK-zl"z5Ш7C \:֜][xtxχ}O P}\xvxO 9>|aehg53/W";AEƆ_M~Rum7$_p2 A:n὿l’sy  QvΆFnx4A>.>nK cȲ="FdW;&δW\L/9-rDz# Kэ_zwYiE׼xMHt+wtb \1%Ks@xA 7j]׽?" fC#[nC>ؠ_z=p0NL/]kսQ}h!ڈ fٶ qkYy:'BQvK"[^căy>C vXiѵ +'}0/Y\FaSE뱕zׄ|[1 o9,f/@ q`6A,}<ǩ=3v5'ZvfO~=7frl3ؒݗB_ uFY𬥧FeuhG wWhon ?b랼0|>Y7>?.b +=&xJfz1j8٤{3Pq}hf6}$l[ݚD%Lt ?h_lKc]~g"B-KNv!%ԏG.B;E,]q2gb~bm!6ܢ.8@"myV#fFBBwxv0 {¸E1 {)'QE_q#ؓx' ks 5ώ.F߸;fiOg;0d|]> G\(Ȼ.sY{*cP_]IK n Z̎#F'Gq1x w$ܧ6urux lew'a_se/9^}hw+%R!>fkXtcϐ䕑9`C[z|*"6ፏ}:s{o_o*ڶpx}ύ8:j%1PeSkm3~`rG? [0fí FiYtŞ,Oui1__A<-Vlxv :cgGnzsb/رdtJxә]CqnqV0k&o~MG} +:p+aEV8"q?c' > O Cyp|ڳi|"g>4|.mݢ #0NB:$::ᙫ+&"!E>Uݲݗ]0={q߸.1G?GṗG~3alj8ᵇ&>iCM 5YOC8=`|D34_?Xc}>Xc}>Xc}>Xc}>Xc}>'3j֦ xYֲQSw$2eF5-tLH6v$ӭL}BӪS&GWŻW0>>| +jpx>Z?۫3YV z㩄|x!d] +,coA99 %@2C7(d#JfZfyC2ÍtϮw@[5!5LOdYLH_ʦ/ <)BَվLQM %#^ВjЬLrfgG 8;j$Zw>vJkF0qF&z[ge:/HΚq[-t3Ebi~ci#t楫X`GTxcd'xO9'QlmU{Q32t_eGŢ&;:33;SƄYEME}N?peL3e^9OioGNwaU9dͲRWg"}o.,o3I0'ۼRf4aHޠ9>DoQ:{ɛ4&&gm_>J}:'D&ޑΘG/P=ڃ^"'Oe-ݞ(`v+c c'$yBDB@ +!`s&qjz:nVAiSzA55+b@+b@+{d~=Sq1I?fs {/'MH⍉DkǴx[٤8Tez$bn6oe]7R.?{W&YpC\ҙi&G1#W]+ }R*J[}Xf_sAT!gRөdk"n 68 +sj~53;♂|.v{bV2͙tyD793SfY75%;O$@8ӓ|,~)h5G-=0H߿EhxT?0fvaLșh~@"xkvQ)wֱbwIDGul8@=68`]YfJ،wnƂ,~d(gd?8c:HXgm 3Xb c)!8`]IXgNR"*?Bg^?ue '+,$tĵ0`RFOi@IO +[33jV"ɒd&+=z~3ͼ,f鷒o3@7KzK@ +nfi7KYmi7QCaG63oКDL"+E2˛`HJ04S03Xl3Im%鞯KdS,Bȋ-+YH * +E>-mv6;{7zqڑ*Â'P K\޶x&1%a~(+$\-nFz8gd돐4#=rዚ3@LilbYo!.,g13YGcK?S?4_P[{űlX{ٜY{֞sOY{9Y{Ŷd9s:\Z)iӤ@B/kJE)-(iwVML3D!]ϙJRf9L%g4Ŋwt*2 +lyWZ%8yTI$ZǃHO6%gKSDt&Ӯ6׽:欵9kmn4ca\!~@g-O6_lO8|yJࢠ C~[$7 +F? GU+ `>~nK4L\+`?le1f~Ak!,9_e)`ʕ}^e-bt#/(+;c-X9bc-1c-X9bΉzT2eLKSJ]KSXV5JQS[;5dOkΥvjBO}Z<-yFEv󇘖ȭMXO+UI^EynBV wF~&tlVhGa eΎ7[JcIiU:zٿ$B欗K"HOtss{!h*H9ʄ2 ԃ01ZPԌA[M TAn8X(++ \̎ىBN0i$oɦ)w9GF0͑yU䜘w×җ?GnqC?M?JiByFb5GukZ( :B3Ǝxjz:il\ؤd'1_AԶ1O٧R ZގdGc%S$n*KǦRvT*Wk"}Bi:x{bR&qGg| S€̿de!ug:) i#mJ*mΤ[ +P{?CqPTp6LKpD+G!G {԰{B+8f>f?[^0c äVZȕ\^jԔj˭ZQq:VhEVhE endstream endobj 130 0 obj <>stream +Z(z͊K14W@ӬYaZaZaెL  4@3PB8)P0N7͛+,87՟ 33l @ V=_.HYs +Z;zTqxLJ] +XkJ_W .v]3r4&@,)N +rMKǒjx+U@ + +RQs"OzYe5Ӈ;3Daes. {F +w bnLw{5Jiqgdb850Y&v3%NؔHEA цjMHҼ*de O*Egg> +?Yc[a]qWjWQ `y:XBKEK01-ܲqJỈ_<*L}\ +k.(l,L%lm-=2S?6n?ܘr*aV_&lxFoRpݖ>q{aZ99=CS)+:FcE; U>q5LlmҠ$ az*\l5P6埼]-3өMMIy *2 /NOu)z$.r2\^dE]NbQr n7 g,v .yX'NB]pq|vefֹMش2;8/[d<.nv2,<ێw[$`A8E͈2ưNUeXTz=,Нj/F]!w +KnIoT2JĠF5+Q Q R^P7kTC7 +L&¨Xb+EUU2yFjBA+&^(5yFFAnR{ڠ UntW7VID<0& ft[U "#= U +tHVtGRU/ +C뎄SC*D-O! J)(-ȧ襨K(sy @8>N' +Qo^;ξޞhƲbi0H.~@ّbj "DB hL5y"0g%~ck| +drrM&gMS]rl~0mC4\Niŕɝ&9[CGZ '`eֆ<ɮ NP'>;nrg&q8#V![F[egӏX\=jn<RIN&]-/ةF Uec=dWnZΖ (؂EK q)l*_F [-vݩU2r *]+ +]U5%!R+G5W TUoŐ>+oJ&`qcS`NcU+eb5+]yPQr^䶇Z cCb\(ǰ4IT4)sǙ9ǔr0;epqf6{ 8/ndPUCgYg8A{k*q ?>8s'郟qas&0 9֝9!ֽ2hJv+&ֽX]YCY\kUɺ+J Qq0(䔯fU|(2/T7Cهkz Z +Ws$B%P^0X/J|AQ?: er=xض+j[rJEMR&_cXN𐪬Gb.CBN)A{B#1)H5i)0"/ 0 #8`^p"⺹vI/10]V8p1}֊(4ga*Qv``?u8T& ȃ}eȃݼ(I)Ct*lS/y:E4$GJÿ+ +Ȯ`]p5Z:N"tNvGŮ% +.P\_ȃA裁?h;6{1t;{Dlp|O0%`0< p"8XqqNpcKy{ !0tPpܜA[]<ӛI,Gf;gh<4yh(JAs;ACJ9ƒ=0$c4ЛypeAZ:;*/oap`Ʌpp`(pd8 z`%u{8>!kf ?ǕǴdȆ-)a=nA5KQp[>E!F #Ʈ(O- GwV]<-d{'p[E! KlXZ?Ea3ܹʳ03S*zBwT_~D6E&%p)E74WONpEOIƛh\ZdX RֳMC,[xم(7ѬHL $ ȝCG.l y+{~fy(tN*pfZdo >'zXti@0z N[CaqfUvyJEb' +=ډn+R5ƧɡN職}x },cw ˸4gQ;!f7^1:!#oBѢ.sU{y5׷jqXyNRwm۵&dzV%uIXŞZD)w&6havt CjB~' Hpk{%3)AF2 M2´qƓh",WۣNJݹӢ̝7wTʄZʥ %\٘;VrA}U\lB=kؖSܲFCkAA-9]YW=PyXQ.&Li~i'q|8I.i#ыɵG,O-eyJLWYQyhu--_j<ރ74germ +8WKA\$=*q-d9U8n֍ꚇŗ +:^ ):*:~]ϙ}"-F-e?MV}ZqeMr)7K~Xʰ/sx8.H<,F# C2L +rвUEqjc4EKuSȞ:vzT1rtXd?(J%ITCnĽ/`pM_LWHU: P"*`7$`3}qS @ fn~OQ1w;XSr.|O7CBʸYN[XA^0G [Dg(J>KD$&;#O{`2=H6LN؜QԖ 8"Tr??ߏpww[1ϣ:p_P):UU[@ӔU]'u.\eGjF5|uqsU:*lȩJVf,jϞܡL@\G*'OAw+_< ^yYҋwK4o*|-QBN=Q s!Wz]7~_z^}/LwqkT$&(@KGԼ OwvI.Le^^==hjpA<ٹ]Z\ +p] p!aPL +6G JAYw\# X>Eop_KVnM _P)g.iUDÕcA m@U)4xPhD{jE%. *bIڔ jk(Ԅnd%GC"iɦa% j#YFG'#oh)ju,ҏJZGiM0tRCkhudEY2x, i2[0T"b^JP"4҈MrMZZFmQ˨ ZFcZ2er2d QDh$\-'&?P1`sY2,6L,"?M_ Y+W7AR]|7*IWx.OJ(:01[tF'@ QR<$+. 8)ޠEl:IikEPƅJ5^+"˓ LD xwC6Lr%&;!Mt) t&1# 9UYW Lk.0s)WkV'$ 0#ctӓ֝e?|ɜQ b(VHL'i35^wنiPƅVLSp,O:UPKGKq_<ߩ${R4^>Q)JFߎaհUbp*AwTKkzvetHd{bJXS=y;2L "S-i4.2IfMXc^}AdJ "SJirD4TgGc^ 2S'TJ+_ZʵAb*ENR+8WlG䑒Y{ڷ[GFyyH"9)aX ڃ! *N'xa$wӐHbpȱ +B8Y +]2$ +.h4 U"JrP݆syC(."T) +LϝЭvCҊ9fhr>=5DN*@'yRi~WNDw\KNI +b2XoM*S^c^AkY)(vU {QN KGK6 &hGE-AwP +>uG~|X\苆'hh +n">Clt~Mτ?2$]L@o +?:ćM~1pp-oi@5AcH)pnw89^tYmsIt$9 Ml8C:"7÷$C=H'˛d`)\V> f]'f2k:hM<yjY~^Pr}(7<e+Hzw[JsGS>vcLє3pGpK87APL'̝K13칻 -gkMMorBgq^Yc#iab몼Izܦ99 +h=ݴZ),  |_/ǞQ4mGx4ҽ(!ʟW&ep/.+ot :tra,KU2(RV5K[= .P,SWUfhXJAlQՕD88Ң|_)o4nr)=eWEUd|U +R9ӭc)Z ;ܬJ6tz^9e}5е.YT^aST+Ն7Rc-Cx7zs3hfn=G@  9 6O UIQDVqYUS[jX騮qacP;uԩ[jhȱ;dd#|,cA1 NwS9{c-yCnu8i|gx\Vݖ5}Z5eeVTA; C9b=Sd*b[3<6@jGb!c5 FH'Γ>rFY6TgAG"p #8֞~ +ymftws>ʡcfA|h>."L?Nì/^4&.A1(X'k ex8dDQ)Up@p!Hn\WƗ(V s0Dtyy#Jn +ݒGP먒am#q?#N@Fq9l,KZ h  +,L"'VĴt6ZTV*)*:]j7жͪ,3<%(K09z [RQXI1/&Fo(ԍr IVõ;@P{ +MG#ZМKcu fh! +PѕʕTvхS9JqnbQ>I2p +,C6E/S'y7yF~+ŝZ7_+66QZpn%%L)Σ=%qp&5.{:$ gDrGD%j,HP?Q%7Q eZ[{jrxѱiU)Tkcw~1=EET^/%v`!$\ɢ2Rj'!7tva<cT*z\[r &y\p`n〥ܪ9LNjyN$wxzl:GFT.|AtGp8+]$ȋh@8E%gF@("]j8*SN\a< yD_0ɷJ\ʒ0153̐$9G fɑNF+=&mV˧kO(sy݋;b@~ N]k9].օO]F=;ط}Ջ1`|{Hⵗ=0b yN 9Em^!fWy$Z3*~ÁF)/}E'C'ܰ[aDqd^^581GqItWǤ-rp*y]8 l+n[.Š@ȪVn pu%%FBBN<ؑ" y24e%I8 # i'{#@ SB4 x.`-5G=j}̱@Ob1Le +{$*G<t9Mq 1QVVԭq{8V/պkjaan<+/P .n|=.Z1.A3ϬgGT(sh'| y'0rNe 59'oZiN;6ĬI*5k,>kA@ QA{&p!r1dB }'ixgKTR<W79\ʼn`7K;xU^@-/yDX7brŲ_?y)#.\xJԬ|ɟkFoz4t{|^Y~ TKNxΫ18 # +K,($ nu{@-BJ`Q ~g!Z8Ϙ8)4Wu%*{g#^Jp(Wv_H4T0$<+~Q\8 {;xLU:.aR]'U?azA32=m[& VϜh(+2Y:ӄQ?VS$XFN6:tgk{e 0ȾYQP`R*tg켟jiJխVΎgaI6&SMxUS qM;|oՙPU:TADeS-ެ:}$7Co pщ,.Q4{ ̪TjJ΄ P;b&$zgǕrBo6'@zB ew$`ۘ${v|=F5#Yi~6=4>|,>iμQmIG3-]OǬޏxZ V`0  V&%д2`M.b3 =-_T_.")~0}D'(\~/=e/AS`֓3W~8FG|N⯢ CШVgt@rQzߧqm!=* lu@WwCc3Ҿ[8ǎ=~;`cGzkҙYf6++2MDM&`#IJO,Ojf47uW")~B`B0@GrlayCN,puΕƟd?'" Wd>)l 6=M?Y\}Ésuh ~wGHN?Y>~ uU$.k0x_z48[Zs9¢CWI:=*s>(8hIS[a*2/|Cb]qZ%ao㙟V^?Nt:"; 9ɲZ9P/KR-T?&f2N3j<bSZAF"Q¡ta"JKX/W|&UL"X!܈l" FQ,JK,:Д#QV/Ig"J~SEgb^ +QT!!%~ I'*%O$y{,PPv':7gIX +U!M2MR:O'ߦu@>&ד q'y[Xi[B3v(8J 0T>ђ-hEk1 (t [#$qCEE,?@/J8?P#__A/pDe#<" 1 +Ae)l>eΩC PiZ 8dO#bsZo!˜֏ ~9&"$e/9")$ !A2D%[qD'aM5WV0#-d$C,GE8!EQ.#U+U NS +KF )b>RbA"@3,>N-WAVUJ=UȌo~E)~m|l}`1Ͼ8|_S/-LYʗ;Pk)r!7NǽloM%nC`Mk1Q?Sr~-5gQPk\1F/V3%Xy! +g݆Uŀ0ͣBGz:̺=,, QƉjwMw-o׏ 2`:"JE?NRDO8gd<ǛcyG̘X_'u8IW\nQpHٕ6T]ZD`dΚtL":\y_"`ꗚ{ eUH#cQ4bܿ_&p6򗪉W +#6PGa~:C_KE%?D%;DW +kL _dqc~Wa~p] FS3%ݘbşQ{f<>Iv歎W26o;~5w/1^jZCH0%]/ʃݢPxRdU@Q⠹S,A@tm0""zN`Pvs#i47A+!,;`dT>;y Dס&KDE]:L Ma18wl5$(PCT̀,,Ֆ8$簘CZYG`Eǀ'E1o"< ;X@`ѱ?P%<"Z!GJB +C6Je7k,sf7v5Ff8h:oXu!9tGcEM>􎕦ЖJ b fT<"*G!lǠֱr4 daE/^?`|5Ԏn^1 UXSpX@< P( 8t0=9,@Ƀ)]lQjQߐb^/4 rEAWÊit|  OwB"F"tHy0TШ5+P*Uy FIh?Q@ӌhQI@uKxZSibvcaHDpn#cw8N$ !{!#I} 7 +#O^ȶղHb<`"+7K A8R##$5j$lJ&*A(jT/&!tx42̱6_z1 +y 8@4IxLhlDZLQPRİRԍ}4F}پQ[tޗf{r'=@ד5+60w{+ +e[ԙN#+6į]AyIj*Z¢>WE)MI!+L IWwc7CDPQXt H6 A@! XE2.R6nʉE`#Q7 _ Ag q'H6$0,RLlŀ(+ZyRPa 6 $`9!$aV͌8$4M7$5$9>' 4dt0DCfOiʣHe$' !MA86wP xV=#u_1QX+"(kȃ= %6~x58B&Z0 O C-ws* ն$ Ń〢ubBZ| /~0F 3HE.2B[ +$}Ht+#ءge*BKdN_90,=idF0A@5tmD b2g>>) +h/@@!36J=&k 3lq\X2 V<>`'"ў$ez64X"Hpp f74(bD Ec7"Pa<& 7># f܏]Pw +1c=2β;qq*HP oD@rTŃ*Pd@ 5 %# +xh3IBaYˢI;t'A*\&4D0oUeJ1H!ziȖIp=@P:\Dݼi:lWb_$7+n?zM_gjvZ/=z~ f^oM{x kR֪]a~8Fp^5Д1^w:δ`6;pTvoz7s4ƕYڤ7]ZdqSߘ;^̺=݇c&)<VŰ  PN-t+Z0.zSa"?EV˚=bS\ml[ *mKvFl&d/t6Y@xV0# j](ian@Obh ?D[!oboY5)Mj6{%_Ge %!,frh 1C_e6`9v&h9{T!3MyГ ۻr˿WG"{;#; +8baeV39%5I#hr߬cIݳM=vRWH+}` `)ؘ^U謿{ު|sB]M%n?BDGX{ _٧73[-lq%Djˢچ s6-*|5j(F0 +( DKo.F\%.]꯺ڼj +D-J٥ ZVgqATI&DJx, P~N1t5<d4[E +TV)koϺ}ˉ[jf|ۜBXQ@M>\ֳyT^̈]joyBnsv[_qcp 1V-Rz v)A?cPwB[JKVHj*<(R=:%6*rqۛaw`;Юִ#-ToFwjQ'GIC!j&lFx}k&QF[.nj3 woJ0"YIO,eR_ip\H(H +<hmHX+I(6= lU#L/yڒYf[A%G6q~6]-3od1lxI[Y-oYA')ٻUF쌇spѦ}1?0t3fŃXh3;]ލ!34Hc}ؚz16CjBKU*'P)Y#|7l>nmNEz`}s=7no>*wDe{3*qg8A`$c=zMj QYygޝ]˝[7\-ɚ@ $NG [)ZHpr50-[wt[ͥГ-`!Schh[-w#os\vRIlә.͈ڬ@C!j:[xڙkA.jrK(a :*L THGG,2Q{t86l2:g{-'B6bijc^,4^)BXðx3 mtEfϦf5[!Ah UF2Zx5Yeh{om0 u!)vn}ɱG_V` 5ꭐ#_84T!j^w/@wĸyDd@1`Dk8wL +n4YqܠUe\ +GL& +3àw&M+hՠj`ѣYtK@TFwZ)S@Q7Eh~G[B a # Ξ&*U Sr톇z{NCs(0F ߈8˂cЮ`[V-#{b|q,[.G9Xӑy3o(z5&CJRoʳv L)#M6S7,QN %&QqlS_|"_©ڗԐDR9X6@t)5Q72Qf:FSCITN(,0+m3($BWʐNSF971a\+i$&STo) R@R3$mDpwwHGaNJf 8XѾԴ +挍q4Ytc+ʡFcA%o.Z:BNo踩&8H>o{m (QesDvZ8z@wPpy7=^~CkԚ*>F&qk~Xw ՝1[ρ/gcTzFщC1ۼ:fNxeIx%21%j J,ImMD0Y ~<^OGt9+]wj=-JjabɍiQCZߺi-`^Lwes1(Fk93OA 9d27C7=%y 鬃K@bԣ1ikHY Hg@r*bd~ ge(oksn Ag=0U~!@"`c +qݚ\\ sG csxNCELyDBįL10/qŖ\tc=偣yWcː{-[r~nPƶ Z tBatJrT ڳ̧UH^KIBؾܮH##}QdQdZ G[Rަ$R)M0-1t:Yгbn?zW1'a +,Z_HKc$uSk <\b,aޓ]aTjܶ\`WϪ*X4$;@+Qe6䱦jdJ%Y?c@vՂ0Dߧr3Vhy]s#.$Ιh}\;|>G Na~dI2%OerYGdj[ȍʫ{өEDGQrc'[^xwnt `}'|}"LfJ\ .a]J#gf/ӛcj;q&|$-w9ExJG^.(MJώlu C^p/ɑhK OOO<ȽQT H'={KOcݏC4+AFfjco-}Ũ{Nggri1H5U~9O5)V??;ClAH*2}m;ơEQ^Yu1>ۖןpnB=9s&ܕbpDo + p,EzJxuukO>;&DŸ1IpY2\SjJJ*./†~k SZ<"5fCM"@f ":6ȨReSi-8ʖ> +I%U{I3@v7NYBzo}sj!]l:19aZ0r)04яvGmׁOUanoG"sH3C2XRq;X/'_yy凲  OU_aڝolx"jޓ7R+.~"A<]Py5_GrѧKd]wseW_(UoL +.?M6yW-Sl*se)J\^Od,Ŷ5OGG*MxJ08`ğs4~jpxES&lR Os?EsyM3=.!V[䅳I}^$iBvS}<[+|Oܾ#lI/V<;23C+ +9))P&Ymo(Yi4 Oz 73<+ E4]SyqeʻuDgIב #YWbEVz +cuRS*[^:HRr{ v4k稰WҠB!d;{Ⱥ}_?*$sަ)3d +9ЖBD.Ug?n_3.O`HI篺34>yPg6D==\҉70j Vj<|}(uA(נ^"KĩSJtezq W[FFJ&^l;ky4NHc9e/v>Ky9J<(^N]##/>G>7]QDV4p~N'a. _;S|ەl}"Ѻ]'|#kc%3xELY!XP%=:i_oy6"-/mlD;@6쟆[fyv4droq`S]K5 +XJ^"x +=kH;,x# TK h.ss]C Ŏj^@tL䟒4Hgmg}#!7-2*;Ƚ2hοť\6k^@%q,e(ٷۣ/_mU%U7^|6*ӌ ?gl.7ϥ4B6.I8<T@2q}"%)$X~OFʮD-k=W}+tԒ=IJy Qe7*[i۷q $JLffL=:Wc.Iwj/7f50'F֩U9:|>Xy#x(:@ݖ<ZSB{"77Xbǚ'gjjvѯhxB^F\"ZOrwjR;.В.g>FIm6yfȃ;qT3"c!Ts.xfDsL=O]5Xfe2w3ܜmCN/-uiZ,ʃ{gH)`iC@h.V9IgC0mWC{3Dt+\;0W[Ȅ뤑u0?Sc1]|Vv9rFctTrVt[TYTE!,}2 #I=,݁&f(62J)>rad0lA J4ܘgqQ41]9..z{UN3bq[dzQ܏Lw\ra:a,!"J +JUɮhrv'rF)_o(goV Q/f~<ζ}Cg8ͧS;jVmE/2lrM5Ⱦ'M]ox>Hs9-3{7WH=R@u>$Vv ^w"plx&(}\ME޻J:ջobyOi .lw.$~`(Aik`=pdR< PP#WQ1(x9ϲ E < BiTӔtefO9q*&{3%MF,< @/O`SQ";KgCj\`yA\o6z΍Ǖ3U Ψ|,`:;4Tn?"Eƴz@ƩF{E'vCa)%O+CO[|VO5ԮBad\1j+y_n٦"p'מ{5]Ϲ[ɞ] +-Ә8*5)ngH_aO0KFc˻^YO[&4?>l{ʖ=<-FqkMUɐkwת+ G] u{ ٙJq\^cT\@4/u텚 7JR +\ă=rd[UV8VAa5>>o v]hi{!o+PXPt]r齳g+lž]0l1sOa.ڮލsU,_W|k78(:dp @ 4rf6κ\hiQNIKkq[g>UOΣLO2rdZot{r$nonj`Ȏb!,0|g)-y ;OS?(v M fw!JCK{ ǺBZJϛ SW.3q}Zsd4%>}lwܖ(_oXFnőq[\9]L!QҳBt]׻a@Izo +d˶>xNr7V ygj4˻ާُCGkIԧn֡KRܹ"Ԋt3Bʱk&˦fnQ~2z !o:ssFޡܭ +husʍ<.8-$-xu]EpKIN.^;UEd%N53+x]Vj巃{=X2|槥&}~oa3.&2EsyW:ߦ#l Ǖ\3x@ltx0N" k &3Cۣ|fw֖L`_ (r$ؔ9R UY|l稿| +GR;&&z%@b:jb&6){MDJ5Kfzh\:ۓXttnIӫA`{qݭk~띯ǫ|KKL m6[nӯDΆkH,r.FQc6▰xUd?SݯzO|n)ۏ[PlTrqY"}} .^5@>kS*15M 3&6n>tkM >xӔP'o}UpRCW@4| +\s`o5+( R3A?{r^[Ӄ>OMSs8v}&sO_h`ž?}g>:Sϥ3K(9>>b6[Y/e4|aP}NeO y矮"Ɠ_^#'-u_Zmhći+8󌾁Ɯ ğmp]@m.9 oۜ<+^cQ`m\cfUb!,-[|}B~mĤ~i#|F;V'6z}Xi/6|]؄9m䙢-zm{:X![urvv%ߖ̣Ֆs-NlgVtΟlaVU[WřksvM]nv,=Y=]l훫{7?m0kl#QMY-T}vn?mUJ1O]i]3\:y+fɑ~DvǢ'{:'aϿT{4W5{{دƗSi'nm^ @J}x Lg.}9ʼnŜ alpEI E¤tǃ#{Q9 "ގ%h~ă{xVpU8r:WcJkgw ~) NXㄵ]ON"O'vɒ" +oٓ2~rN7Vx? NFoW[,t]TɭR~+L08+q{2}:CVwm1.{ +&sch|t%)ϑUn*t⮇B">ېk޺]۠; ߹;v{r+3]5S};/ݓjս%@q'ԏy?'yA*zӆxy3Ngؽt gu/_&g/ː]zQ{WzfwhX`}r=:|swVdF"}]f-k[Oѷ>g?%^Ͼ}E ;ߞ--8B?r_ȷ"O\ʵǞ1w'#nYr$]|tyV8-B%fDBVG-IE^In4;~NQ2m +܈f<{䌝TƳ)c٬{kfm[S`Oi})'g-<7~t7'҉@HijEWJ>'ù,̌ڼZ?kٳżIkp2d%#\Oҕ9H |KљUMdU9on'wn],Z(}F.J si]?Rorw~, 荮jYE^ +%@)<;;OwQ$"L1[_w\8Kf%QJyN),5uQNr9x.nz^n*WVpUjJ9 wW<~{IybΜ7G:f{eӧl-tղ/U{]-Gt^VR엵y9'\'F]M.ˍpu(ڍw޴ٟMyvڬG=߾unJ^4c%Nޜ7}W֛n0G{ApoD+>s;GJxz DgH +}i')><=gsu|]Dח9_x/Cwν<$ڹ߼LiUuRj?Β7dZU޾ _#\nƒ|*V t/;Ģ;y2to]g_[G$NStp3ۀf0-C^^GӋ*X\Sh<'R|ql-?iR߯~7ILʗnO=͹ɧi'Lg>lN)oV>r~ +o Բ/ltHo>:U `{X$(][?{6Gx8:8G~v+na"?+}(yp*G +*)_qw`Q ƙ-(6O`-emC3F[p2sV{KŷIEzWo!?͎B%[o(cg;#oe3ŧgҗX[{)A9|t1n Wh0C [lua emA"{ZiGFK/!]/'U Q +, +>Sg$ }uSQ(@A`yPo$>>Ow'8cT[3W"$ r7zB P"-N]d P@ha@zMoO ~^vHJ%u[e's PL"`4lq|rvexB{bOGNڞAJeƛF-PX5؏{7$qP|RPXRpj8ׅ&rIYpے~9RiʿJ@۴W4އjˇRixESh@ ~|B?]\q ̯ɒZ  T*fV;hDgd%ѩ9s!j$l\bjOXBtHf2mK#*ieH^@a{WN=euKrrctfsy z.a \d>z)'Mr$p%7 R@ތZ/ v(CzF?m1-8Gi R|wF4}_q']ˍ0|zlmOѸ1oU}^4|:җJMFċ2>-SL)8vjes|Osvi:K٨omH>yQOL߼\IO3S-Wo_J \= u?fd?9FOWeEѓ-/O*9FNˑ{0?OWv!MUZ| ;׃<?Ge%4bt>nc Z.?s=X*q+$((@Σ>P((Rc)=CHuv@ z +b]˱ PZ^dofZz1Ѝ=& b(`h"/I\e/c7S2Zu6(J ,)UEdCwbz2UAKHt'I4)}'e7aJI II LJh`'1tZb=oms")|Q$",VAU OҟLM`MF%>iO A/RZR̬iEP +ʡ#' ?Pc퓱#X̠R#pq!eAު$A"%AICz]tP4@ry3?X&f>#v+װ_?f~HT`^ Ͷ)k}2?x?BXpҕ< +O_ļ`h3F\qSqjÓnP]݁dzvBDrI#Fsfv4hܹ;n7l7 w5Xl[(tA!`˔d<3MW[wy||w\ײ߭e7XK&ϣ_IC =rb9nѻ SKAUg͐ス +z?^M2IV+`InjI}VU3 KQLlmcfWjV- h=ix[42BlxM:+ڕ4+& tC,sܻO0|_>ta1:# +K(RgN!ܱ꾃bL-\y;*uMQtAVWAS黁ܼ>R\:W>Os]-7["v.7jK { âPeJ,-xvߤ-)#rN3+lz/>ys7hC=/!E@>`Kfb)3;`HGVHKr+Z*J`7۪V!}V0Z]K>JhS'*"s˂F2ȹpO?Ro8:jX@Y\,5'QXexK@vkXBYՎfoHv+'eoܚ)yb +o /I;Z:RAT>-c}Q`A,QBYXƘ5֚@{tEkJ;.KxkޭG/v"h-/Kkզt^(?.h{-]JQ+k'ǾW Azؖk;EOزʘڬr+7Ь7+`u"%g`Nl#wC- ymeRlܪnl%Vfa曭/-SW X5MRQ/1ްqFcPowt?$}ُŪX}/i~ww{P4Kb o cO-V!}/օ_b#^Mb.|4'[׆.|'ߐF mqbm"_&KDeݷcۮnq\Fmkm1K4'dMvO3t:͐)ELK2I–J Ju_\ademQg{7*':ObODHca&jg@!K1X3f7MUPđAY}Buz1Ou= i P1|舙-_P\ΰ35t3V }μ5tz@tzՂ_3Tn m^ y\-: +:jktkڡ꟩3CsMtZ vOBI[ݝ7tzus+], IOYk|/gf֯npZ1_X:q"M2b>kE7:cѻ-5/3<, 9fi"Wb}P/iqOlH%sJ}޲%YKW@:<DbXwjȣݟgjAh:K*ߌb7m#+*T?5pe4DsCrzYq S6њjm:=PZ.1m#㤮}{@^6G\&wf۱*]&U`uQՁ5,P6qAE`,Ҫxw|0TRDx[v Yjb&;uc MΞ!YxK|c{DORs¡S~}PTԫQclٝ.oXJ?n^Nn#I";B?o]Iyf{Ѳg؁&G ];E^g9:{Wد_dF-P iU$5r +4Dw ^kvdtɮQ:,cT|$Dq@xǸ"jeJqKzGq6xX4(rIzduHdH:lL4$C uPDF5$uD&wvǤ#6",5OFd66DCoGdD "cq@ڗ#2jGdP^DF"u_}sxDF/[-[Jd3dk{Bm,W4Ʋn޸c>;WSDm9(SzZ)CN_PV.h}-iVẺC괥C+ږzݳHo(#abÙǾ\ɂ*~kup=T ZSjXz/#Vt="씀w,Z~NmJW#CJ''RǶy3#f@f jtOhfvhpX*v2LrK4T\g3('PWj3ݟg瞅[Ջ| qі Ei 6+sd 5QKh?s0 [ H!2gd̏68M(zHཧDqKo`7O_sśY "V.\ڲZ("Xڲ- ̅۟H}T+RzWh~"ch&3'ygPS +#RMӞJr})nƘݚ_R8 m1_R +*4Z)N|Z*|26 wNߧw$=^meB{"^+RDBud;6!_\-nᘝ Pa(uuO*tÖѭq=x7M_{$_D= ܙ|?rkóE2UL:d:keu,EԵXUg]uge$/u[S;W@فyjU1wfnݰ!P"LU9kQۛ B0Ŋ(؍T77jJb72ts_lbTa9ɨ涉yݬ4]#=. L. @ɔTWU?Ixѝo3lwTdzdu:!*3n~=Ui*j;r`+ޯf?Sڳ?CU4AKNT$7$*K{o{͡X )yy}.nșOs۾Fo]Yj߸?:z{."Kw=:H|N? +tvVCtz*Tw2]MWK=tz]Y͂^MwFJ5Vә`5^-ܞCbXh5v Hl5q9OǪjvOn5jHR-j:=T~5mӫ3Stz]9ƾ]MWKkcktz(7+8j=w0^MWp5nRj:SǪwF~TX5alG'ǪH5|AG7epInO]|)s7SI8S+j}8vQM^" C[l:*4]n/I]<>'aLerH%aR'q◽};+/_swEw_4J.kt$5}y[fLT֯3(n.bE҆pݷWfmh^ski.,YT~,Ei^$EAY=4OTFq" +,g4Q1M80y8TaǼhj뉊ojN皳{ +w +l( =c3+{h,eT>~{9؏]3?JvmZvܙZܕN\[Xۘ6?w* g.2F]nj]eʦ!*{5ˡnJ< j#O(He- UWյJ&<"ׇ_T_}sB,~~V-bB ^[-dB}gDqw%W|/pgP]6pݛ)GnҾˆn%Y wnSrj_X1sq(̢syNaQ[}/KdW~{ 븠2lseeEVPmE:Њ%+u')TydE^[A +8(t \T juz-7p{XOOi~9Bnvu:[MϺ~ߺ~V#]txC ^ׯU:ڔzy&u:׊j~_(w]4E_qo]?fu7fa TuVu^p;7o!PI3p{ "u~A!_4IuK!)ŧN_~]9H]NDu:W#mhuڅIbՂu:"ROH=uC4Sׯ[C'of_uJm~3I/~K?_E0`]bp WpS FoCYU(aCE~=EuYaXuڌ*AP4 +{=i=>8.ZR(\-ٺ~G9 ^ׯsU?NEa$x+\8|Ϙ'Mi~ c]aꕃbU,yB]΂aۛu;Sׯܪ~AyL8_[%eF]F]?/.Ïm?;|8쵮_áJᤓ6i`6JK?mox [ &o7ٗYܮ!&H>cfhs#ޔTdtc\.ݛS%K+~JO_4bޟJ3׊|QY17*u9ҭ%:5-חqc}a9~z0_SoOFpcnr\M/++_Oo"X ARʞ'׃:9//V*Uyɘy{os]:jeg CI_oXlJc ŗN/ V H'yIRS*Yoox2?ҍ׃[aqBn?>$o0t M~^ W[1^Jow[/WXd>'ͣD\8[926n>fV 7Ӌzl{*-=}+/+hk֩&{C7V{yKhz0h7%jNr#ti8bB9E~pV^l~| y.kʺ.j.^^Y!W[.LkgdjL/5 +~~h/aJ y'r?=o-_~|ǘ @=Yi%ؕ^2~Wp#}C(Gl8m_Zmogvh.Fwm!6m&6{}rJܹ:^wUu/GU2FtOrz3pLyMrvV|0/k ~|O{@}&?fyv]WQ2'Iw‰ܚKu|fr"sd>oW?TgqMJ'+qz=+_l2 RSnulBw8O$xV.e樵Nh.o~~*.W^gꄲѪӧWqעS]rt4 {gՇ/坽o!P6w^ Kn` n)BN7gae}yx$r&K{,nFOXhL5άVpekB?d9-В:S{+|24̙ԾbQB i  9@HY\7D aƦ,sfXK+O>M9[H]˹\k6̃MU벬_D V^QݤۀтO<.'4WX/xm#hK}5d7YJAC,Zδz9MiԹ}sNS"2![!\V#+7颿ǎW˙- ?FU|QT.O_2 >V +N>X-4@/xӽ<}fwӇ~:+(m5[:R~v v<}ՒOիYN+0\QI6攚aJn^c"ZS2/梨\<&{\JumpWG.{4#-.N_\h+C-Ֆ#f- +f;cZ8_%E+ܕMbYfF+xd~L(gi#̎@QvzA =(~jgSqq="XKq 4&-I^/ gh`[6=-侖hf0ME3wZUjɵ") j1*Wű))Q _oԦ*Fx2ٕUAuZOAf!}z#Тacx"`8ZF>$%Bv6?]2޲٘MO&縻/<_Fqv 2̳khj]߲h +~kh`^[6=-`Z6=-.,gO_4&.lljVO&p[%hF/'A v#J` 2 zDu]4B5Ĥ]N+OqcP6_2SӈMK-eVfKɜFKE-hMId>Ϡap]]p5ٮuy{3̾,U_Ϭ3]ZPpS銼`\UԀtݮ]SW0;tdtW +1oֽV歗5g4:f:&:m .BF>m3ms+{0eAMz5ͦ% s{ZEJ}frg2le +8mOcEua^`*:r`m:()EN +4uInӕeP]1b`0;tdj! +z)*Eݾssä}m#vY.֘J $oCkl uޤz3 jq>Ini Q@Y{ADnq_~wގ  +a; +lx2ڂUh(o30b * +DB!Iu~ܵf #]'"=awRg ËKpeP朾 a:<6##9=e5NK":k[&hʩĮS3:N$}h=A-~xr[7!{iV%é}.Rfx_.wN?o@9i^υ]c_jooS![F_%t">ia~:|Jzh5g j @ͽʊÂnhŜ>O7[L*Ec:N,hm#g;%m`Y}w~%b>eA":pi9ܼw| 7ۭI"ֲ(Ա ZZvM4,e]l&R0/&@»/ 0i.OkM#ǼU-n|W&|fT 㓿UFS.?s]U}E&ǧs#AC56O >!mƂ;2 6}vXYc8l |{2B0LpLJ>:6fNjLEgE ,+s 5h4;}"cw8 +~vP L\pb_:QDN~rJdU!'Tu)0rLV>->뭏pb6u[܊]uÉߝH5chdθhwgD0ѵU$'쵴mfrTDɶ,BHv߱d^&ɍxղ1xw{ruxOfRuz1yKTRtr07)[lOg4Ґ$'3zY:ͨsa֥IY?y|+zOݵil7iƹUNeڶZThͺ*G0KJ[?j{0ŊR^ܙUjc? /h +@?l'5%]?c/l8hlP"2tɎ4}{TQ'6mdǟT43,S2O}m +Vl(5?jd/{\_nZV[6 mEgֆ `=^`u=jZn*)9\ +d<onjyWW*q@W7`XJia_?+>+iD -~O>!9.r?r${?;Fq9'IIP B +YZ8uͩ2=)ܕ6jg^kX$K-O+ f 4?GeM,'W`/`r6̾q}.SO^czl"vC䯑YC?y/`9!-#DXh)˜\ %9-[,,{P +M@eRo +2:ߞw7vQzؕH#A/\i|$+G^>v]xc5*P6zM9bA/@/\~.zQ@_ev. +h.7[H.F^>v%RC/.4" 3O +yG^>v |rnF^>vЋZ0B\[ыyzؕ!z؅h9*򱫕yrcSzE*|좞#B/ݣA/p]9 W.uvD +/`>#B/p% +zu) | +F/hM] |BrTcW"ER+^>vQbDc͝>"r o]-gz'RC/h.b4ؔF^A}no~OR.Us,lSI@ӏzgkrv؇F^.ZaGiX-˻ʠ:5N6{?*g՗oԢyvR'&>cN"9ɇH^NĮLW.2VZB< +.zqw)VK* Uۨ鵺;;fa.}㮔ku!Viv]nqA1 ίޟkg)S u,Iz%(+ cMd@ +l4hctLJ}/Vilw]yr^k~+~t83:?[$3 $ +{XܹXz%!_?1rqp|{LjK`[Оzb~X'p X\RVD +xp"QQ^]/G"U<9:uzYA~ה̊E ]@R;1ڂqSc T4ZʯEOS;~rSINU$O6߽= mk-EX/Xm= E +G[ /x:iN"ɫ]{ ѓ.rpr{_9Q@5<Ǣuyǝ/#q뭊O Bc{Xk_}3~ګkt2<9}m,+5uofT%+.&HJoZ.4{rY26VAW1i^ | + <3ڂV.A^Csk^e8c"啨2AVOК5"+iTE#vA;=t *nA4MvZDrn5.9O5U9蕑r%=窫Oq?FS)-Lz=l{Tz*c}VZ\ou&S;Y۷/@!J њOoÜ%@FN6B| @V3<{x}X>i{5ʕ%w +#4Q\&0Т 2V=l)|o`8"w=W4/0*ۅ,ʖ柄0E0]vA3Q=bgrߓ8ckw|Z3iУ;$ A9(D`&!3oyUWLnGΉ섬}_xygiFN O0ZP|9Y&K/UB oݸI`bʨ3Lp9x/ sXh%R +k-n-&@lzC>ùlwmol".9 l¬ +W\yA'CG8qk~cuxxᖸZ\k +Ŭ악Xjv|@}:n?~S{w-WzStQ.q_zMu3ۧř3V mZ[ia-z' m/jmR"8?ܫ&]8>"bSX#ZˇNf.0]4u$]_չRWu&ܩߡ-WxTp?I`|KFm J9Oή\<|_a,nVVK?_8Shi"\~INݥq.;H\hŧs?~jA۸;`q*S6_/S4ZLyu) ~fL9l bT։o=|} +݅K6o@NHkR*םF|\^tN&s?~b>쵔J.nN9eq7^~c'wxQ\ZmU>kaum%/fa3_x),O֪'S1C޾l(Y?& 4`n*x*$syv5G8a>Ǜdnh99u7-^\xD noKT:s@n?.G8uwٜr)* LUb5'n^^[tDAi6!pX`?J &8x2 &8q[ +bB"5. &U%|PPHA1!_Լ +>F Ž]8tg0x%s5ãdf$gq,KfJ7R;|@ =v6Mffj@KCxE;~.kȬD5˖{Y-As{O*3/V9tx9R;p \ _me٧Z$bؙ"eB*b<|yZ _/սb:FbKi1(p"ҭ&y7u(32);@}N5%.|_OH|[F8뭲3ۜ5{>XZ^Bo>&B]Ԓ-;S6Nz֯ғPk2Uv(S) GK$ϰn{;xpWگQZsﻃWSV .]q2XxŁ0̬r[v%^j_{s t.΃,i]Y,|lJ@xZ y,2w*o1qDԲc:ߎxhWbjgDk9q Z?Bi!'tnXrz|bA`6:ʜ15ȚF:i('Pw{̆߀z@1ɽ,d%ɏ׀5:}S_g\şħ+:o\L@@I7vul|^tMHL5&D=@ ЗsSd6@-5&RKoф0p.YcHDf̮;0Kq@3+5 f F4>XQT yYgM\;nYD8cx!Ud ޏz"Zv9M -v ,Z^ϭ?.o?n@](D18ySk:8~6 gWz oC޼S#\/5M/0x΋3Ʒ|r- GyL:[; 8S%Qչ/6YN`VzO@?M0VSڍۖ(a}*޳&-Wʵ  >/wSF1h]M^6hhuH`Rηq'|'9$ r[ΥomSَ-c$-IAσT-ggldžm~㍲W"p}E9}&?fyvv|q2'Iy.}}k?oW? ,O׫ZqܢP]c'4e樵NW7?[?hл\&|Oʃt;U޺^ܦ8{WKgKJtVpo e_s'&OujE:x0qXfsal庼mv?DS bgx1 P]Ճ' +fi}p9pqrvwqfB{)4K.N,NN7t@ w((iz̊sc R^3PҎ3M:]H5AL.àj}\DUɵEZ`8]nlpK9DŽŸwX؅f&=U5߶pJD +o+/jO7D*6?>_@4o5dG=FkLuDҎX)!kEQ{~jo_Wc1 x`z, C/~ 40 %6K4c QT]! Ãod$j (2QSW]-EZ5*NND2l05X剥HXUKѴDŽnh#(;!"mfgyl<wNt,ߞo;bQu.Xaow?nw?n4{;0a* 4^sz{aKL +gޛityw!R ++O ]aqxriM%p |;2û߽XzݱcOw@^o5dOYCmpI 6-F+hna"iM ʹn"KLlC6-M%BAfE(QGDXe"b9ofoHфDNVpe"t'D.Fc A=ΌzUf`SQnDuBEUGe"tcg1v;mI߃ڰ ,4Du͢.۝chyHЬ6h6&haAnA`C^q"obxdƷnpl +ܺSݯ8D;!-GJ|cC ~~ q.[c֭[75cLDuZm8cgCN>U{W4VYhf%(QCdrPN] 14<$hmb-&haA\TS%%x .i1<:c?P8\TC%%x .i14<2h% " T]%Czq"]bxd'cD&!b8 .i14<2hAFX(*qbclj zrI13'@ +%Vʂ@J?Ac+O7gs?3"%'`V2V@p5ޑXx1Asu$GdquPmeⲏ%S,Ǫ _@=pyώV+߿laZ`x*ҙo[C )S,̀!pؘQFSgi8KP';Yw~P"YmB`A(K;/ ]XE!Fhhd$YW]tPTd|ٚ|Uo(3LISl[ ]3T{ypPG wVU݄1&ASU2$&X!4EuUV4ղLNnKO7bI5xxmTUPa0AŪ ZSTbbâ F, q]K'2LCS2:j&lP@K c9m[`zdg'˲ O~TC3F{Zwu}@I=d*&21p0(x x_KƐ3 o G +Gd@:@a"·(ƈ M]7UCr ^U5 xpY:GLh8$X"8?mЗS70E>;.K1` R +MPOuF@dY7젖U{x{y@j}7hp )o: ?;<\1X$*1=gCq@E ke b҅n qIŢLJ(y@,[8J$@`÷ t XpTh0bBPDz- v`b{(rg7`'`#' + 8#!&ý‘%Ap +a Z0TD bwx.9*H٪m)6d8:D&p,EMmdJ ,*0f2"Ĵm-"*1]DWമXԍ8 Ibxd׍cHXӝQ/Gq(ԍDƲD{lwBDqcuc En,[7sv'DߺcȰSo@Â%rfܺD 5;!-G3,X"nȭPt'Dߺ#8uc[7S֍C^q"obhydߺFXuc8jlwBD[1[~nݘ4-RrCĚ DhbB 1p +8hU AA֨`7ؤr#3)cQ`GrT|c,`z 1;:KmcO0ٛ'6^tY"NH;!8d1v ;w'lkR0{+6ހY"NH;!8d 145YX2a!n)qcq(7ƜD5;!8-Gl6qEnfbgchpVfc o4iN(G9Asc!qHc8flwBDKZ1c~\^-44UQT[G\6 ̆8l,۶-[Ɏ4,6<21p_3FrTNF4Wݿ]= A%"8 +*ªi+ m}a]l5 ]4$LnM 0%@L+*քiWD*Rll kD D;RTM2MSBV-Y':]uE"p*L7ӕJq$tv`dKCRAT" 4 00m3Mo''H +X6h[DT$C5'pʛ01SS4_h:0$K@zB:wLwBDlwWae݆2ٴU"C& |@4^OjbgԿާpˆ =su8AS-CTY +lE#IN.M$U)7A2Rɪ)lo[l  E@P2VQ]ņuˠ[dEtYABdOh cٺ CuK7ie-<1UT𝖺ci2W-K`4 +0jc<"T@P^E玫cu%bw#ֱ,@?DR чֱ8#Q4C,#c\"KRSUO#bq;'nZ"cEXE!r\d,{e\d d"YEt'D_dŇu|X%K/|%E^d"Y<"掊םQ|vۿDR㋬e/4]ci#N 4{,8Ƥ{DWb *-VӱL8K +6kX&ȶA* f|jXA:'"Âu_cu%bOwԣְ?+Q5,N)F8 S6TVM{"s, RUU~G1"cw5,OK`Ѱlm* xc-UlrT0mq@#BS /M<"V2MP-C4X!aG Oӕ,{edh2LYA`,5V#IE-gx:VWQ=jKc.nA}VjSM,W +չD`k説)ͯ'FtvNe)Xl3*VB^:o3pۘ&U˹+@}ƽh6)4FmVf6Qd5T%&@<%w[@ wd ^ +ukU^A*Fr chyi;˃bS]"FHa:K 先`T*܈ 2 Mq:gGxK4@j8ҍe> W`MP8V32%<9q&B'0 0PY 9Lo"4ߧ"+-"y'7?Ƭa)"sDhFP++ԗ?\ p'Aklm u3W|]!փ> endobj 50 0 obj <> endobj 75 0 obj [/View/Design] endobj 76 0 obj <>>> endobj 33 0 obj [/View/Design] endobj 34 0 obj <>>> endobj 93 0 obj [92 0 R] endobj 131 0 obj <> endobj xref 0 132 0000000004 65535 f +0000000016 00000 n +0000000173 00000 n +0000043119 00000 n +0000000005 00000 f +0000000006 00000 f +0000000008 00000 f +0000414903 00000 n +0000000010 00000 f +0000043170 00000 n +0000000011 00000 f +0000000012 00000 f +0000000013 00000 f +0000000014 00000 f +0000000015 00000 f +0000000016 00000 f +0000000017 00000 f +0000000018 00000 f +0000000019 00000 f +0000000020 00000 f +0000000021 00000 f +0000000022 00000 f +0000000023 00000 f +0000000024 00000 f +0000000025 00000 f +0000000026 00000 f +0000000027 00000 f +0000000028 00000 f +0000000029 00000 f +0000000030 00000 f +0000000031 00000 f +0000000032 00000 f +0000000035 00000 f +0000415160 00000 n +0000415191 00000 n +0000000036 00000 f +0000000037 00000 f +0000000038 00000 f +0000000039 00000 f +0000000040 00000 f +0000000041 00000 f +0000000042 00000 f +0000000043 00000 f +0000000044 00000 f +0000000045 00000 f +0000000046 00000 f +0000000047 00000 f +0000000064 00000 f +0000000000 00000 f +0000000000 00000 f +0000414973 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000415044 00000 n +0000415075 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000051634 00000 n +0000052012 00000 n +0000051443 00000 n +0000415276 00000 n +0000043725 00000 n +0000044798 00000 n +0000090525 00000 n +0000048438 00000 n +0000048325 00000 n +0000090402 00000 n +0000046112 00000 n +0000046471 00000 n +0000046829 00000 n +0000047187 00000 n +0000047545 00000 n +0000047903 00000 n +0000044861 00000 n +0000414866 00000 n +0000045548 00000 n +0000045598 00000 n +0000051379 00000 n +0000051315 00000 n +0000051251 00000 n +0000051187 00000 n +0000051123 00000 n +0000048261 00000 n +0000048474 00000 n +0000051516 00000 n +0000051548 00000 n +0000070182 00000 n +0000052286 00000 n +0000052542 00000 n +0000070435 00000 n +0000090600 00000 n +0000090870 00000 n +0000092401 00000 n +0000098948 00000 n +0000164537 00000 n +0000230126 00000 n +0000295715 00000 n +0000361304 00000 n +0000415301 00000 n +trailer <<6C4163F12F1E403F8D1409E2195C5492>]>> startxref 415488 %%EOF \ No newline at end of file diff --git "a/New Figure 1/New Figure 1 \342\200\223\302\240Deep Multiscale Video Prediction Beyond Mean Square Error.pdf" "b/New Figure 1/New Figure 1 \342\200\223\302\240Deep Multiscale Video Prediction Beyond Mean Square Error.pdf" new file mode 100644 index 0000000..1c2724a --- /dev/null +++ "b/New Figure 1/New Figure 1 \342\200\223\302\240Deep Multiscale Video Prediction Beyond Mean Square Error.pdf" @@ -0,0 +1,867 @@ +%PDF-1.5 % +1 0 obj <>/OCGs[7 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + application/pdf + + + New Figure 1 – Deep Multiscale Video Prediction Beyond Mean Square Error + + + Adobe Illustrator CC 2015 (Macintosh) + 2016-06-30T18:23:11-04:00 + 2016-06-30T18:23:11-04:00 + 2016-06-30T18:23:11-04:00 + + + + 256 + 80 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAUAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9O61Yyaho9/YRuIpLu3l gSRgSFaRCgYgEEgV8cVeSy/lX+dBZ7K1/MR7CwVa20sNsr+koMSpbiJiG4qiMefqV6D+YlV6xoNj eafoen2F7dtf3lpbRQ3N8/INPJGgV5TyZ2q7DluxxVHYqpidCAQGof8AIb+mKt+sng3/AADf0xV3 rJ4N/wAA39MVd6yeDf8AAN/TFXesng3/AADf0xV3rJ4N/wAA39MVd6yeDf8AAN/TFXesng3/AADf 0xV3rJ4N/wAA39MVd6yeDf8AAN/TFWB+d/IOs+YPMEGs6V5guNCuLS0+r20lvB6jCUyEu7iQMpUw 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 + + + + proof:pdf + uuid:65E6390686CF11DBA6E2D887CEACB407 + xmp.did:58ceb847-05dc-4b87-82aa-98b83c98165d + uuid:40014abe-e013-0844-bac1-c912c6feca8f + + xmp.iid:4ef6eb53-6e38-4f25-939b-0c39c52e0635 + xmp.did:4ef6eb53-6e38-4f25-939b-0c39c52e0635 + uuid:65E6390686CF11DBA6E2D887CEACB407 + proof:pdf + + + + + saved + xmp.iid:4ef6eb53-6e38-4f25-939b-0c39c52e0635 + 2016-06-30T18:20:12-04:00 + Adobe Illustrator CC 2015 (Macintosh) + / + + + saved + xmp.iid:58ceb847-05dc-4b87-82aa-98b83c98165d + 2016-06-30T18:23:07-04:00 + Adobe Illustrator CC 2015 (Macintosh) + / + + + + Web + 1 + True + False + + 1035.000000 + 343.970000 + Pixels + + + + + Times-Roman + Times + Regular + TrueType + 10.0d1e3 + False + Times.dfont + + + Times-Italic + Times + Italic + TrueType + 10.0d1e3 + False + Times.dfont + + + + + + Cyan + Magenta + Yellow + Black + + + + + + Default Swatch Group + 0 + + + + White + RGB + PROCESS + 255 + 255 + 255 + + + Black + RGB + PROCESS + 0 + 0 + 0 + + + RGB Red + RGB + PROCESS + 255 + 0 + 0 + + + RGB Yellow + RGB + PROCESS + 255 + 255 + 0 + + + RGB Green + RGB + PROCESS + 0 + 255 + 0 + + + RGB Cyan + RGB + PROCESS + 0 + 255 + 255 + + + RGB Blue + RGB + PROCESS + 0 + 0 + 255 + + + RGB Magenta + RGB + PROCESS + 255 + 0 + 255 + + + R=193 G=39 B=45 + RGB + PROCESS + 193 + 39 + 45 + + + R=237 G=28 B=36 + RGB + PROCESS + 237 + 28 + 36 + + + R=241 G=90 B=36 + RGB + PROCESS + 241 + 90 + 36 + + + R=247 G=147 B=30 + RGB + PROCESS + 247 + 147 + 30 + + + R=251 G=176 B=59 + RGB + PROCESS + 251 + 176 + 59 + + + R=252 G=238 B=33 + RGB + PROCESS + 252 + 238 + 33 + + + R=217 G=224 B=33 + RGB + PROCESS + 217 + 224 + 33 + + + R=140 G=198 B=63 + RGB + PROCESS + 140 + 198 + 63 + + + R=57 G=181 B=74 + RGB + PROCESS + 57 + 181 + 74 + + + R=0 G=146 B=69 + RGB + PROCESS + 0 + 146 + 69 + + + R=0 G=104 B=55 + RGB + PROCESS + 0 + 104 + 55 + + + R=34 G=181 B=115 + RGB + PROCESS + 34 + 181 + 115 + + + R=0 G=169 B=157 + RGB + PROCESS + 0 + 169 + 157 + + + R=41 G=171 B=226 + RGB + PROCESS + 41 + 171 + 226 + + + R=0 G=113 B=188 + RGB + PROCESS + 0 + 113 + 188 + + + R=46 G=49 B=146 + RGB + PROCESS + 46 + 49 + 146 + + + R=27 G=20 B=100 + RGB + PROCESS + 27 + 20 + 100 + + + R=102 G=45 B=145 + RGB + PROCESS + 102 + 45 + 145 + + + R=147 G=39 B=143 + RGB + PROCESS + 147 + 39 + 143 + + + R=158 G=0 B=93 + RGB + PROCESS + 158 + 0 + 93 + + + R=212 G=20 B=90 + RGB + PROCESS + 212 + 20 + 90 + + + R=237 G=30 B=121 + RGB + PROCESS + 237 + 30 + 121 + + + R=199 G=178 B=153 + RGB + PROCESS + 199 + 178 + 153 + + + R=153 G=134 B=117 + RGB + PROCESS + 153 + 134 + 117 + + + R=115 G=99 B=87 + RGB + PROCESS + 115 + 99 + 87 + + + R=83 G=71 B=65 + RGB + PROCESS + 83 + 71 + 65 + + + R=198 G=156 B=109 + RGB + PROCESS + 198 + 156 + 109 + + + R=166 G=124 B=82 + RGB + PROCESS + 166 + 124 + 82 + + + R=140 G=98 B=57 + RGB + PROCESS + 140 + 98 + 57 + + + R=117 G=76 B=36 + RGB + PROCESS + 117 + 76 + 36 + + + R=96 G=56 B=19 + RGB + PROCESS + 96 + 56 + 19 + + + R=66 G=33 B=11 + RGB + PROCESS + 66 + 33 + 11 + + + + + + Grays + 1 + + + + R=0 G=0 B=0 + RGB + PROCESS + 0 + 0 + 0 + + + R=26 G=26 B=26 + RGB + PROCESS + 26 + 26 + 26 + + + R=51 G=51 B=51 + RGB + PROCESS + 51 + 51 + 51 + + + R=77 G=77 B=77 + RGB + PROCESS + 77 + 77 + 77 + + + R=102 G=102 B=102 + RGB + PROCESS + 102 + 102 + 102 + + + R=128 G=128 B=128 + RGB + PROCESS + 128 + 128 + 128 + + + R=153 G=153 B=153 + RGB + PROCESS + 153 + 153 + 153 + + + R=179 G=179 B=179 + RGB + PROCESS + 179 + 179 + 179 + + + R=204 G=204 B=204 + RGB + PROCESS + 204 + 204 + 204 + + + R=230 G=230 B=230 + RGB + PROCESS + 230 + 230 + 230 + + + R=242 G=242 B=242 + RGB + PROCESS + 242 + 242 + 242 + + + + + + Web Color Group + 1 + + + + R=63 G=169 B=245 + RGB + PROCESS + 63 + 169 + 245 + + + R=122 G=201 B=67 + RGB + PROCESS + 122 + 201 + 67 + + + R=255 G=147 B=30 + RGB + PROCESS + 255 + 147 + 30 + + + R=255 G=29 B=37 + RGB + PROCESS + 255 + 29 + 37 + + + R=255 G=123 B=172 + RGB + PROCESS + 255 + 123 + 172 + + + R=189 G=204 B=212 + RGB + PROCESS + 189 + 204 + 212 + + + + + + + Adobe PDF library 15.00 + + + + + + + + + + + + + + + + + + + + + + + + + endstream endobj 3 0 obj <> endobj 9 0 obj <>/Font<>/ProcSet[/PDF/Text]/Properties<>/XObject<>>>/Thumb 20 0 R/TrimBox[0.0 0.0 1035.0 343.97]/Type/Page>> endobj 10 0 obj <>stream +HWNH}WԣG{R՗W& J%qH}@P map6ZaL}>uv/Ҋw~\w?h:]# B??:hK--ޒ0swBd1k'Y_J vˣ+n_W/pM6U>YgVϤ82b$A9 v涉*Ȅ;h*z^8:$}6I\ +Ozإ;IG;:ʨ,]A״(IIi3;2Elf͈ϝ\*B=#ݜLk7󗧚qvl;9)\4̡`s@xmF3bԔgH};J>ǰFG$7<$%&,S˄L-EZ3u>"qѓ.x<)7Z(”-ha#?N3 #Yܺe 6d?%ɔ>}S @a1%#R# XC67N@RO<],N?_!VmRs#֜k&F*Q(ۋB( O% +cGa2R{EKcF]clQ; o]SM8z<vM.tv=Ym ֍el`Ĉ7Yj ŨMZ1>tTxwp]4Wa޶Pڣ\vF@d똲Cf֞༈.~j>@P!a$x7KfvuP%vJhV^_ endstream endobj 11 0 obj <> endobj 20 0 obj <>stream +8;Z]!6'?mD$q31c?.'sL\Jdun:eGP5k# +L57nl8>^Kh9eZD!a<"!PU=kBfXpDGHC7386>qTpAL+&8XTtWFZoh%!#?J16Od5B\Q +aIQU[Y$Y0@m$fN>;lrE1`^oT5*U'NN endstream endobj 21 0 obj [/Indexed/DeviceRGB 255 22 0 R] endobj 22 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> endstream endobj 14 0 obj <>>>/Subtype/Form>>stream +0.231 0.349 0.596 rg +/GS0 gs +q 1 0 0 1 179.6815 99.1855 cm +0 0 m +-1.667 -1.302 l +-93.062 -13.128 l +-93.047 13.21 l +-1.671 1.307 l +h +f +Q + endstream endobj 15 0 obj <>>>/Subtype/Form>>stream +0.231 0.349 0.596 rg +/GS0 gs +q 1 0 0 1 329.6815 99.1855 cm +0 0 m +-1.667 -1.302 l +-93.062 -13.128 l +-93.047 13.21 l +-1.671 1.307 l +h +f +Q + endstream endobj 16 0 obj <>>>/Subtype/Form>>stream +0.231 0.349 0.596 rg +/GS0 gs +q 1 0 0 1 479.6815 99.1444 cm +0 0 m +-1.667 -1.302 l +-93.062 -13.128 l +-93.047 13.21 l +-1.671 1.307 l +h +f +Q + endstream endobj 17 0 obj <>>>/Subtype/Form>>stream +0.231 0.349 0.596 rg +/GS0 gs +q 1 0 0 1 629.6815 99.1855 cm +0 0 m +-1.667 -1.302 l +-93.062 -13.128 l +-93.047 13.21 l +-1.671 1.307 l +h +f +Q + endstream endobj 18 0 obj <>>>/Subtype/Form>>stream +0.231 0.349 0.596 rg +/GS0 gs +q 1 0 0 1 779.6815 99.1034 cm +0 0 m +-1.667 -1.302 l +-93.062 -13.128 l +-93.047 13.21 l +-1.671 1.307 l +h +f +Q + endstream endobj 19 0 obj <>>>/Subtype/Form>>stream +0.231 0.349 0.596 rg +/GS0 gs +q 1 0 0 1 929.6815 99.0623 cm +0 0 m +-1.667 -1.302 l +-93.062 -13.128 l +-93.047 13.21 l +-1.671 1.307 l +h +f +Q + endstream endobj 28 0 obj <> endobj 12 0 obj <> endobj 27 0 obj <> endobj 26 0 obj <> endobj 25 0 obj <> endobj 24 0 obj <> endobj 23 0 obj <> endobj 7 0 obj <> endobj 29 0 obj [/View/Design] endobj 30 0 obj <>>> endobj 5 0 obj <> endobj 6 0 obj <> endobj 32 0 obj <> endobj 33 0 obj <>stream +HVgP]s"DywآXb"' + * {Q+vE&k&07>|+Zkq(`u +i0||= 1 #cK;3{DĘ-;wȨY&@Y8V&/jl|RrxPaAܘz"}%5ё%1c~i@˲b#Ayϋ}ݝ}ﹳ_;;sPdO7@p hTY#=]oIL4ЧVf:@Wݧ'PU%ec*G=`e؟8+r%u7܃$Nyyͼ3Ǐ!zR[n}P_y'}W?4/3_20̿F7` 2>1{)q3_g X%n`Yc:CC+ZCbUV5b5[k[#Cղϕ˅+)4)MXII(nTYU,꨺(XM.,s +0`"UHE7G=t^WMzgE}]tJes#ذF,S^q6r|(4-` f.,6¢V,Ja‚ !㉣qC {NpA)Jڵ鮣(m2ٵ&T!oo2. dp/(~Z\E_\)~2s}՝%2$6lt[Sɝlmmmmml-m-lm\ $,Ք\V$m3J$2_ި2+Qҳ& ir?O75J4ƻZѯJAKMv{N#^Os $Kska%9[;eTk +ݙt|~\vRJ~ ~K B||5HLR,a>:単˘%xX/0Gx_'p 0 Ñ(D4# gġO;F ,GF!#bq10"qD8$a<&1 1>d*kptv"&M& ON^-^ ʐ}B"<D)Y(TR5bHzj7\TjSN3xգ0JӨ!515J9ԊZSjK=6@i&͢z:SJ/PvSES MYWjf9j.Q̼w" +".5!O*?rԈ0^(TS|Z 3wZ+wC{hO{܋{^ڛr?x >ڗʑ<2ڏ8cx.9G*>8}с<'Gcy%#jmuljGDNm'N]OeOm.#~$N4[fx|,IS_ag\ XpqX!Ji ֪jPN}b vѹ;-va7`/a?2q@vW;.ޖ%v3.A_ٸ ʼ$f.D\L?` ?f_L(7&p[Ngڃ]Eި{YA;Q w!S0aj-0Ĵ>L;6m$.iIaZTShgGUԤ>~v4?e~6tW"=ݡ}qN _ }g# A«]H8߅=$ݑ@+z 0'lnv߃؏tC:zr@?$ NBTyH ̷U1W:Fw:A'3tޣsJ]KLW*5N7}I7M$ЭN$}$|Dw">.S L, +Gߑ}/v"AzM $qx:x ' N$NN4N Cx(lXaYMTAb58OJJ'Р@'|ʴE,N8G-zQ.oS=M4@y4S$z'̤:z} *FPB "=n O Ѭ'&pQv eb7;,[!i`jBRx4ц(/TW0&J&!:7ẍ́%Z^{(Ux*46Dכi 3(}[JR~8ch62[ ♩@>) 7#(&tD^]HN^-+CGvdM6dω4M)4 Xsv0H^O>.Kfոliˆ ͧ!{Ah٫*IW(΅G%{#Mɭ'>c&?w~oa9lA#v&N;lڽ F-;m":r+ڡE,H צ!ȷȳCox&5w_|GKvx\$ϓw*qbeR슚~3<1DxQ&|аqFQc3~h'z`4LdV *d 3?XwQ?mw-!BT9¢"X4ȋlF.2 q4w`vEM[TtU8UCE ȇe8 +^]~?3y o\W28<ң,) H;P(#Iwv]'?$E^+?/F>2@U2\Y|M */(nIԄ(ݦf66ٶ^|vo/j,^Agsn/DFl _@VXJDb1g y-s8p^k@zqTE ȈCqo9e}ٮcFr:rG9L{28#=-5%9)qPmRdI80~S%3^S¨]>蘉ʌ%[3]z罞gg#OզY㝎=]{:^*Q?|rw K,@-FƪX[rs|:͕Ε2ssq4D=:|RrNI\aXGqHĔx|!2B=x4^s`"ێ~/}jP ,j%-gZW,T}0} +z˗u[M ْABujKcDG1U-t!ȏ8+KS\Uttͤ9`02 +[qD WDHX !-j5{95;ȟN*q:;3ݱ= ڞ=xnIXRhG- j( ¶F+$EJW,-B44t5 Ei%7IKPx/6RG~}rSw[3\6oo]_l.9_ݟcx3^;>0ڑّwF4a +0$ ?baF${Ũwf %!ffœ`BzvL;s͎e2`0( 2(9֙>KJ=% ?\+' +}˗Riffw$_'JTt/"Fwm UO9lЁtV +\_F~b\?g\}.QjoUՅ_>Cc7(hb>9-:fK=zeYa=~ү[Dl1f3.u$j~hk I'B8r1׎]pМ.B(.@.\|.'p ך804IOIO*;x]FO@9 l xTjq`jÒET^J#)6 9@TvqkPp:bnt2}{2ĉ(E^i&¸v!3@%A +\AfHC.seQ !ӥjnsLV3UU !nꃈ/L V+Ś"W Ƿ#%X؅*|u6,b!-[%LtݲE3Rɾ/űu`=-x];oOx|~wxCUb%87xp>x\#)QՔ 3\7feSҩAJME>j> SN$|eM;QkO ]!TYAJRY 2X@$^,P 9hz'sm)9EsxPts˟ؿܹ0ѷՇ+)NSEN˹fՏ +gf/oJsHgh %,{+^夜.3 B{Eh +H=曲i +&I $ IMCNى16INR!7IV2(XKHսK+J0mаjڻA=GFabvf 1ԛª"MK-E dCX~qJufЧp.\X0Pn1- UTVo݊:e'EcyA4*l ζMn ԕw]=j=ks ?;8oQ@QTDH2ӑ|&bj4V5G3cSm ]LFSx)͂T@nK&!^Uh蔠V| X +J|J݈*?2R_\!h8ϦvӥIk @aAXװ9)@.u?2=;zw{501y%DYk,޸n}ӁGs~1kc/l< Dޯ[ÈGg:hvȲSЫH,&sZ(٬# +9]HP 5mPjpVTb3Tޡv2짣OQ~G6gch# +sg*Vޗð ߺ6`#-۹vV=n~ 1p GId4y[J#|NW3ѥMkИPy={ ڴ$ן[^]Ӻ|[k4fcm 4NJΟ895L%‰14w:}_C^۷78q쇞qk>IĂjj=4F),Vy8b/ ϒpm_UW߷aW& ؉hqJ,ӫ# i+.|XZ`BBEp0j7Ȓڐιu-4c5sceL71c};}޷%_y9y9w _q*_v3:y>Pd@!p4c؂{ eZ洪KooMyiv6\ubݲBqڬIF @<{mjt3bxTd6SaF\]T+dv9w8;Uf]2gZR`V3O-1!_5͡w I ړ@jF_,}4R9*g982d%]M!2з Vsn$wޝG˃ + D@ d] "weoow|U#gX~ѣߦ*7ǬJ`:p [k톳c:_%,m L}^d U(k^zTl _Cc*o}໾N }os:-)r$N)k:M{ 6f^s}TRK»y5* ֏o5žyD{}_; a:Sib#vrǩ17 >Ӂ!v^w?N o1݂7S.mojs nv_Tt7|r d8gs!<| dz>m_77AwWrq^3z&DK:RQ9 ~wh33=w0/6BnkW,Jl7Ҽi&$K^P5ԐzyQp}]:~qrNaOфT9:GTT+dz & t uYt9ht#wKm:neݢ6x%#G;Iq3,dȽ,c~yG`r89^l' F}1u]3@[Dw^zRUy}ۓtۯi4{ߔL{~mMusMVɿ@= kiOj7 &ЙIm?; i;rzhsug=#'OHᄃGhP$ru.1vRz2syU0t"q<$9ita|sU莠ߜ/]v9-Sl1|T>RW\ȹueѥUw"5sȚ/{gNhq7bJ35Aj4C-FsB8sm1/i_c>k-%y~񠨜ΕJ9]sm*u)jP9J>ns)u&E]_Tו164ڝ.TNgjP3yQ R}~0o7E~G5@H}vgF0@K_ "I8OS PP{R׽ܗ oS@ !9̽ +\(64h[J"3 }73(|sBew8{LT#)t1aي؄ +oCJ;դBr)k; }qMT0(ɘnA F҈)"GYL@s0jQsw;N÷3[C@3~72tR7 +2,a|Տ)QW$>pc8b ,»EpnS ~;ה>zϘflN3X =C7 }C7 }CA46rEȤyz$G)+V>oϛX]yF۔J/h/iEh"yӼAϛb ӼEÍ?=˘,5T[f4jޣׄ=b28y=׼Kx 5}{2q)օtnMhoMoB[S]7(*^ _T +TDe&8/M9Y$'GCIx'-Ԉ?Oi)s*Cܛ'75\bY0ep0uv޼1-Ov\ $l>܀-F|0R#x0"G[͇|᠓Kbx{ZEHto%n(I-'7u- L rs<6#ۗ95Kݗwyc֍f)+"arJ;ho_3lߝ7g:" !H=!Y?KlEv^;߻{ֻцm]j.ށrJSi44t4zם׵GJ閁]>V"V4[a7YN{<7 Ռ(((vCq@IBiVʣ** +/QuPP M-1heiFġ-ٖ;ض:3Un^>xa#x6$d.I1Ȏ,ŪXOH&O`հax +1#1 +O<g9< I)V阁he6W^xoa>c!;x}"|hp1c|s,r|au+ދXiyVc bc6b6c b; `/a? 0~zqIi:{p?p" \e\U\uܰBLd.ü,,,¢X%XXe,˱<+"+2*:k05Y^F6.>!1)9[%c؊l6c[c{v`GvbgvaW>n^>|a#|g]d"d0 sCL 3|C$)(>g8c,r9> I)i|/r:gp&g%ٜùW*_|o-.|=#.~O3~e\/%\k븞]{yy#(8O$O4'97^?'xWxx7QGٔ](UN}ʭ<ʫ|ʯ*B*"*ULUB%UJUFʪʫ**TSUjꪞ꫁ce5l5<5jRZV^QY]UzzCzX}ci W$)Y) +(RVI SQzZhY8sz^4Q4YS4U^tLKzY5Gs5OU[Z{z_h>GZ%Xh>g\˴\_K}B+Vihi6h6ihi}S[?hjGQqIiO:s:~ouQO.鲮誮nc<&n19̽&e3M3MS2MSo⦄)iJҦqLYSΔ7LEST6ULUST75Lij6MS3M42M43M ĘV&ִ6mLikڙh:Φj0Lw4LoKuU6n,7c'͵}e+k_ I9TlV"K>A.133S]I73(MM48Oh"IL JL-4)JmR4)K ,&SuRM4 Ih6͡4ZHh1- +ZIh5Hh3mIh7.. +nnzz zzz^z^ zޢzޣ>> ~~H{B#JPn^荽Q>b?q @qa8GHq q8'DIr2N8 8glq}9纗RS8Q!b3 Q<ԡ h(F`,a<&`"$4#$d 4 *2Р#I0`‚vLF:х)iY9yXEX%XeXXUX5XuX ؈M،-؊m؎؉]؍=8B\q .eWJ\q u7F܄q nmwN܅q}A<cxOI< sx/E +^kxoM{xC| >g_K| w?G ~oO⽸!s91.Rݹ^ܛ2@>CP>#H>cX>D'q?>O|g?>s9\qĕ=Ǒo +48{f9{Yc.;M +n4-Ŷ_nkxtw8hs]~'t9 * A +(hkXRߩ3@b/zg \gĒlȦb +v!d`nn8>TfꪒMURzlRVSRʐ6 +*#Ɋ4H"['oH#*+,/s.Wi dKJI0VȪdz"I<ѐU"'htծ.<|X]9|a}/Nz IǗ()'67_)l7f>o` Z>am\Rh(kcaΖ+TTZmsC)%AπygᜡYlcws +|/8w-w~ȋw3c)FSf;uN{T+/dpb2 m[C乁Cj1oβ2>[_S;x/& ?yw *^=Mՙ‹wb&=|H +m_(~aܽ[kkhoozGh/id#cB mȋ#D +BNR{IjkNMpj>&#0ZuZ.֎?Wrc}? DL=PGOe7h9ہbD TH49\zUWWuWV V|r:,>|6c¸I+2&fJS, %1 xw4߀V.RAf{MU4j5ɦ0|('>d7jRS1MqlLW M5J/%L%(CZ]?hHPא+A?<_b>O'.Bq8D\z0ty /ۓޢPNjSjm0Fʛ#0:6l]+h{ԼMl9}崿y "Ad v*"[{OUĮ-?&l2kdY$f=ٓܓPDU~ԿO%4GuD~r~*vm'qj<;&u3lkN + MO:)^dqø:N3U~疍uٵ<6;X׋xg&ގecY=%7FN(kkF&VK' +Tmk;{cܕwjrjn Ҳ׮jQJλ\|wE%t?c/-^!h/e|x붷DZ])sQvÏq!Ɵ?_&[EN^$/]Mc}mOi.2nO]bifwmbv<3vW7ZNΆf;cN seZ/ݻ.;KkC2ݮšP?/UC+VSWo'嵩}ɧkkgݛ9̇>/.eB9d]K/ !7}vν]=ՠb%uTE8)5>AvC=8=&!ci;.=4Un&sgecU;i`3d뙽/c,z ' %*EU[~(JʪjX-$׊LGTeeM.4eij);G FpE4QhE4Q葝? ˡjjަF j^~žck:3k/`2쐿j͛ ӌsepIZ*Pj%aD>H"%EiWdU3#JH 9s &d فB r}9:௃:௃:ૃ7 o ~_kka~ ̯ &o &o &o &o[o[kZkmo#~ۈF6i#~;;Aw ~;O<̧o뀿 . . . .{끯z끯z끯z%|o탿>>>>o~ -[o~ -[xwx"7D! oxC"Fgb㨮𽷋g<^ K~A 4$މw7̚Ulq!KmmZqC~@x@1} Id]+$) Ck +U<$@C_Ù37ޙ;t7;|x?ϕfdYsΖzYfJJJ}wNnN^N^N^NzLǛBcFooXrO-'(VsFL KM>bl4Op?ʥ6ʪGOT"T[=bRcuqƚVT +qV ߋjp{uy4S-W˼FB*^Z-\m8cu㫫@ܿ5D [Kjy&`뱙00VT gp5Gr<@l ѡr(b嫭GMxSuJxUYsJj3ǛAǛZ7k8TorYx+xk [Zj8RorUVVVm[A[5ooopv` +` ٸ=Ly~ aaB!t:~P5r\'l.1WdWR6f=<& @`h<@` +vIiF^0{Ayu`g44] ";LPN&MRROщ6cl'%Ġ+q9ru7u_d|t݈2b|!(Y〗s18YOMҋi`}?v7 &ee0ܸq/oRsנ_ uI.淒+ſ~3 %2DoI.$ZJ%e~ԟe>ڋ{?.读V!<ߛ'}|R|Oȳe 7Ns xG=ٟ{9tɇ'yq mnN7M=y=Flz&]g5fg4{f?ٿ쭚Abz}uzDgeB(E]s̝a037; y`gaqI0fnyŭ^b3ըw{MIrwؤdx& t\;B+PG<>Ӳy{.SczZիt/W5T6h8!/^k endstream endobj 31 0 obj <> endobj 34 0 obj <>stream +HVyt~*"7}j I&[KivڢZ5(-=dN;39=9sOs~wy<4*%0 ṎuNx@c$xF4sHؽ.0CXn`3_7?4`3,Fѭ$c8l0ˆ͸k<4BƢuŰ6bXD B|s^\ g*+i"QetM6d:\: X +8䞣ck9ҁ'XPx{H)<*Cy;*!α&o=7K7]#ZJ/sj^ٸXxyXƒeXXG01(pR~M4N'd`pjq q0 CXHHB2Fc n!0ac;V_Sq1i2y!_B8 Th +B<d0R%LU(\ũ*U8Kը:ՠ4M4&S]GoP}\5j@ )fPjJD9ԊZSl&jKhMHz:PGD ϑ;vR4P, u-S=45]P3,E)y'9\E\eph$%fEa:"61:[+^vL|L!&n̓T=Pޔ@J)|T*͓U0J3EK2)_STIUJ:sŻy~>|>,>*S#"x8A ĝ3wK{s7~܃Ѿ܋{ss??Ńx.8c8:x Ks"I_=ùl^5cv`"+|vUڅm[qS3L+[!Ky$/H/vnB/>^/>(@yB0J# ʢPGpf`E%TFUTE5TG kڈ먃7P M-m&#o:: ;.o.=D/FpK| Z< V'&}m']Nu"'/N]T=EGHh,9+3_YGSq%`?,Uű HZ5ŗ9[uqš2\ķ>Eyn؁؅؃>9r·pX\x[8N]gq3e(8G9}^q3 R&| 2ԿLpb_5@Q]WeET?}/OaW@QA\a%?]knXqjR MB$c6i&4񩴳$4کĘߪIAfL;pfy{9y>Qe\H5QN@hTfw#"/F™$pv HoEC@Z9 g$c('h1&EaNHYÜpH/CIUVߑqW$qޡ#.GG}:Fq:AI:E st."]MG1}B t t5F ~$ nR/EH\"[ vz'Q\wqObd%;%Æ0%0U"x%|G E&n?J"gOqz[ιqq&>ڑv Ǐ"V8Ji9=Dt`IYH? B-+gŧ:ϤKGj#uuD~W[mzQ`S k _ ,]M}4vs7 +"ofޭg9I~:r92 +Vn^ Y Zw\B4K8,NZaxFD*٥|^iaiYgy޲˺(0*WoaZ?ͯf>M[|"voB1R< +Ĭ ]<~\FzZj#yI#G$bI81W-ZV@ \F_ b 8h *u&e+XjJwt{`%bVr^UQ0-_C ꗵn]e7/^GG( {u !oun,48Cʂx+Zj)ǜ2:fIS˩QYzRmdn{2.aoѰmS6 +iBЯGbz:>m&5Y5DlCr Ө5´=zzkdͦ |vSjXog;츜 +gʲgE߹jpeX,/ (Fϫ?51n1Z*}a fn` O1py]6h ODWR 1RDvoTՄ:`FbJ^O[8QiS`sfö;a"MDs^7XJ :b + +O?ܣ#=z|QPM+ >Yعp`,S9q^R.wtK/k\2Fv/3#Fkzzkc]VL8diWSxt24i"88)D_ƌ͘8efΟ焾Cyҥ:sl3'^)YuZy82c4/0x#žo_  Z?$^ANx! -"`HjnL$>I(06jǛ6lj17+ny da<0#˄=_I͞#^35׭&@kDZXX4~q]R Z +HI6JoH|޴l[%$ݑH8"0hgqH@1⣋% ޟQ:%’%CI:DnfLqs~eBWBP ,"UDEDEoBuiVbUEIa*Eb,ds=12{<"{BL*VT Zdn)z6ͦ%9iԓLeͦ/2ZW.5v_ +p TpU,OdZ * G ۻl#%ۛh&[]7lri+ʞg}Y#0yMɒLTEvp12á:ڬn14%̦*^+N Bz0Tt+,UyՓ9t7`E'E'Q~=?<^Cb@ S+1~Y|ofoo6J3?RRQjvƶNbW}he8|Lj$x/ ݛMfgWJxMdc&"lDqn2,ZB'I ]o 8mU$[dC@5_gg0#3X=WfKh3Ic.4F=|t%{k%5>~h϶ACNJkJ^@GT|ЊslأkLf6sc>Sp:[)ꍂn J:\6`nJt[J8fJΝLVZEh+"e\T"x<`޸+,OX 5 /mTf9-/ )9t֡OF/&D_\R#{#cJ˧.&;?ϝgپ}>;N5G!E e(/JYӊN݊OLeJ6:0M[QRR)lCiis'OΊCk9^Рn: ѶhKEDvѢlTkƏĆZ'VtȥR>`Ix"/{+pqQ)4%ɭ)=֟6 KGs}/*KJ7_au3) ?װ|ȱ,9ix|~qu}zf56JV- rA{ BޑCmWA{*'uVx<قrӅ>ܥatQ9à\=}/4zY/b.:j"U.4+w*Z([|$Y|tC7BqD$LDX;Zu.7ٚh$c/fi)Fg3Z(Bq R-'w]m׀&-^E4SO){Ǚk۟+v3V8+cyǮe3V$dH\Z +X>.G2T3+8-"rNNDWSy2!1/:Tuł&ɩF hf$jRaL |b֖Z0 #&r Ӛ8ķ=۾ܫ.cpQSMX؊|0,bΆ(4|Ei!QD[X`㐒8/}_Fm im#v>9MܥpQ(#9Ԫ^ [,ҩQ"-;FtsfL zt)G xj,jHva0(5(jvH[~Pwڬrn*|S"mT|U;-2߁NCFy`F.7ExVtK+(ֈ(°pTS#^F):ȵf~CW؎)1$LDYҪ +yU+* `+VdcqD Qt$,!5h7Qj$Vl{`.& 'w3m91gr:%;ї~^{B.vR{~?;sqKb\<]'1\^nהYʥ])CwA炰- C vcF{84^WE6MCA<u. +8kZ8< ٤S6boJ״h"5_@^jDD|1e邚*L]6`)f(Qzڛ-59'gZOdHMq +c &oYI%':X&4rjRy,'pB,{{-Iq30rP[^@(ȶp>۫_gIaJGrYILY ?cX7ʂV J Liv6km 9$ݑvN/ GjraܮAt[]{2wnCѥ\!(mG2aB2N@4 +y.MGc3k%|X 2 ^ OO!CpS#/x+["jeMD[ƧIαç%MKM&Ø +z$Pd$S)*.?#ۛ]hd7+s 87GX[׸; +|ۼ*ZGWF.Ԍ1 -YOpHAʄO .K}a/-¶z2J,To9uI ~("B͡$FX@9+$qsM8_,@SF"iz]$*mkniB.^ +S*`P +44rد8*|fvvnw뵝w/y`$$MHH! B+ȴRD)UQeu Ti1Q^MQ +nJ,5-j{Ν;z~{w}{)IMsUXjx^ +ߟ~gV jӊl7T[BI/O\ء|-]-[c囔tonMٲJNl T-[Vjl=ɎPͻ+K̪%مisv' ee'_iց%BG _ ?MO+!˴l;[rx0vWbJU 2a]W6f\FOĕxMӹ]<4BsAL:_zbCZdw.kUTjEn]i^84(UWO* ɑDCŪQ+@9ݴgrSjm!Y$xE3Mڋw!$GwV(~F^~<}%}U>/h+D:섄\;`WFºXpFx7l\?^cy !;=9ߤ[a v?x \E< ?p]Qڸ>흗q8AM3Z| man0-l.Qq`vs_t0rh\]5XU6ƶ1,mjbNm>eY}]v.BF6{L/:%j¾q'#as,Zgp8c;=Iΰo82. ~!{ܳGyl h'z͵5,&st*gׁ @d\T`/Mj?4-07 đa: }G;<6Է#9Nbx.)kXö˶hUƱ.K,]7ubLBqZ +}}Szs1ք\"E?^ FfY)xZ 9fF0g(*Tqa!+(6Gx36aR *wUs\$NKEkVǽ1G vIܸ8͓{8 زr#JwBm&)jFpa%Em+L pn}<yKzϋ:q.z>s _༬64#>*3cB=-bTyꗦ}&f D,iyqQzx/Oq̡6)3O-7 k|G9/fgGRoDsOmΕ\fbԯ-lC9s93#~McE}\ 9{c;ݼ*kgG_Fe{Sȏp.1p='}99qY(ySY[[3dO9~ػ^_2x|؟sLBuxˈeÖ/ڰ54*%92׶;SZ|K_Z/:yoE,Uİ^ɘ9 +a/R䳱L@7΄kq~GkX9F eYIԘ3q.޻y/PG-Mي,}Ƶg<n|?{sg>{u;d k|c('gL\sSr9 hkg9ESIgy%ϓ0pn0urΘ|F>ΐC漳5 p$\P{^nZb6L }3$1{sZ<y ysډ1;1f'd)|pf.籎110o:+x!z/C{n|RӀ gHb50۷]Jv < IƜ6.9 ao ؉ |Aoomk' +ll3Y1g0|u.ȇ{o|9W|{Ps90?}I>ǣ>cs3L$j> Y4cPeɭ˚G;Hb1q.MX yh*;Uɣe*iqk4Ž}Ebut.e9\ک2N9:W.X+E׊)pU^=ʅ>cF9c,\*lپ@i2퀱0ۗeLZySY`Bph 6u28eXY@xϚpZmT7qRhm s+:]y){}}xؗ AEBȀH7E"]`#C&-,b!,6Rw ˱+Va9>ealć[1N§ >!1|85NN9\%\Ʒ3~ W; *͙",cq`IbiaYcyV`EVM*jN5x3oaMx;k6.1ـnzؘؐMؔ͘d6g d+le;ɻ؞ؙؑ^>.n^؇}ُ  LfAl`9|!bÌpa89c9s<>ɉ|Os +r೜Y?:n[1N >!1~<5OOYy^E^e~=?xɿ7 +8ū +*AT\%TRTZeTVT^TQt*R ݬ[TS6ݮZ:zJT}5[5T#5V5U3%)Y1U-Zy o5RVtR{nuPGuRgݣ{tzzPU?׃zH^ P2dk2%iW@Aa"GjkF1hX'4AOj&iӚzF3fjf9=9^&mm6}D;S>BG{Ou@uHuDGuL_N+}:FgtVt^tQtY;}~ +l  xm$mSH@!EV5V233133333]dɩ}HoHSӎ3s KˎQU@pjHB2Rꨁڨhhhh-m]=}00Cp5b# # db$Fa40c1㑍LD"($LLE!a:f`&fa6/TÇhR# Pˆ\Ccbc bcVbVc bc6b6c bcvbvcbN\p=n 7܊p; w܋p?x<8x +O<<^x /:x o>>|9 +_|=~ ?; iYy\E\e*JAR褋nVcTVg d-fe=g6d#6f6e3s#Ҝ-ؚؒmؖ؞ؙؑ]ؕ؝=J/fe? s28itf0#Mhfqf'p"s|p's +8388 +街*c 5a)u`e,gaFhp.籂 K˹+k빁[۹;{yyyGyy'y u7Fěy omwNŻy}A>ćc|OI>ŧ s|/Eė +_k|oMŷ{|C~ď ?g_K~ů w?Gğ oOſO4,WI e !r a2\dKdH%%KX'%[rdL\ɓ|)I2YT)i2]fL%E"WT)&sTtK@R&DĐ2O*d,HY*dJVY+dlI6*d쐝Kv+drH9*东)A-7}VP(SBMѽZqqN ~=F-Qc54%duň-g;dMJk"Ϟkp\w̷ܑG,h"њ53Ģ1b/2#r*mbry }~\w1.DRar 54[Cqad@\*uᔬ~|%(K3AY?:Q3yEu>hqsN?7:?3:f,Ejt~Zl#LOe$<96_jCC-|k(|q(6恸 q)0bw -b47b'|,cTc-ws^0aqȢ2g_Q|>s G1DqK'_0!= +mX !| Y{|aՀpv9邼,yǁUq$ES^D@==hd헽۷ݗ2Ts_\>չz˳U*WWyWVd;Cqr{Wϫ7JUƒcK~\BsGx4 +^ +n(G86jX[ȵ~Yu+gBʡ9"eus#0sYԜ}{D#]@{d\ہEԡdԙ"k{eQsB\cN`\_\2²_Өjt5 +]Vk]@.cc渼;D%r\ 2Ǖ#ȅF-ৱ(-yZ lkWRWYbw42w82YLٙvר;l-וnZ̦ M7ي={MpJz$Jd8Zse}nQ#y|2\GDFhoftX*5/ '79D_ie]gKu@+Cuͻu]#Ր*[߱4?}>53!\}XL!`I.Wר=P,m!fP1BV!c|osܰVŠ1xԪ:*<UMvMvU]wGU6W#y8g'm³6Ys;koG|GD9VIRTpĚFuXC~~¶8Y-J ggJC&D~B/G*@Ʒ05pk\Ԋu掟zQ~4ޚIx[ UYHo7N|6a ˅gؓUmsO, +tAV]*q/H!g9T3_.,Ob,yW< +МdZ(q}0/|qӅğ+n,89ϖz @9 +\Og_eUȊ4ǯ6sZtK;osl;5̨slzG6wzkd˛IyY?!;멡O8`jt!JX[RWb kڼG|y>h/?|[_fR}|Rɋ3%]~ BK$؍?u+orW(jueQ~I翶`h-XbZQC ^ق-"AEREE^VBaS8>SFlct;.AbO]z99vy廼ʭQ=9A*h%Uț!Y}ipSs&dP9 eSFrFy9 eSFRFy)'2^#<2CռM> jNwan9\B?1ONHt0u717XMo^(:s|Z$Qt:yTZֈ:7{cj<} ճ.>@~ A^} 3؇;;;;:: 0.̯   :̯ AAAAAAAAC>C>C>C>C>C>09-8:\.MⵝB3M}s{ѽ;*λwsb%4G{Mk )hbPƢQC6mtIK^"x@ #HU!ffgZBXo~o͆. +*諠 +*諠yTpx*G +O~g~g~g~g^xYe^xYe^xYeyps?s?s?s?|:uׁ_|:uׁ_ / -p -"AzE+^W"Aπ~ } 5@]t 5@=s z&Я }M7A}sC.n tK[@z%+^خ7 ~i"4v˛{uve}ڻgpV{nB ]W؏rG n1*֞.֫=b Pˣ7uB㺅5+Bba!v{񼨎֚ZSFBۨ 7卵^d͕V /_{Kj=pݾt/_ϛ no0TC! +gh ހbTo 5{@97 oޥŀZ1*ֺږtx=zuz[--o o8o9 +qwsxx+VV㭠㧃}6 \APB{#ހӢ{ײpu| ,l}j Q;[/:ѓOĪ`ˬXEx/[DϪǪoy}ω1[fE)zMk&zhH +'20J1.>"|OB+1҆OD46:2hudӧ#چޥOҧz3>6K*}J/FYB14G#s42G#s4Ejs b J]J4"vSw_w8~D8K#G2hqqOqj\~)._A4qX똔0)'I˓Q4H۴ArsP~{P~qP>?( T=-^][P_.*_/&W;W:ފ +}~cD!z~ 0T!zQLOt%"l~|~|xeNtwkuFI|Ih֩#QdHl>_針;DߍBI ?<=|09Cth&f$)d3J#'hFq_:i}1|*F>VΐügƇL.c5#eizOOMLeMCҌh $3@&\e16?g]'_!$ɱr|Ʌ&F!zMpeOX;LM2Gbء؃/cKڥ$IQ~oߴ!j5Ŧ(+F:03F_&^WzϏۓߝ+! Ǐ?cq#?ş-|M3t}jNAcff߸&k֛4QKޥ[ \%hȸ*l:%ʪ|۲M*t&m )|Ym h$|$̷\ޞd[ w;OR(|Nxߩ6B4ݒO-4HJ)7=ӳtM_wi:Kfm<1`gOKX"no;tSϰZ Ҁo̮WYzvhUr gV5?ҕyZd_ k I,X&c-q;Y?RX {ܹc+H=ԓ endstream endobj 13 0 obj <> endobj 8 0 obj [7 0 R] endobj 35 0 obj <> endobj xref 0 36 0000000000 65535 f +0000000016 00000 n +0000000144 00000 n +0000043555 00000 n +0000000000 00000 f +0000048971 00000 n +0000049347 00000 n +0000048785 00000 n +0000087852 00000 n +0000043606 00000 n +0000044054 00000 n +0000045108 00000 n +0000048357 00000 n +0000087729 00000 n +0000046373 00000 n +0000046694 00000 n +0000047014 00000 n +0000047334 00000 n +0000047654 00000 n +0000047974 00000 n +0000045173 00000 n +0000045812 00000 n +0000045860 00000 n +0000048722 00000 n +0000048659 00000 n +0000048596 00000 n +0000048533 00000 n +0000048470 00000 n +0000048294 00000 n +0000048855 00000 n +0000048886 00000 n +0000067512 00000 n +0000049619 00000 n +0000049873 00000 n +0000067763 00000 n +0000087875 00000 n +trailer <<312F64FD1B674CA8B59417C6F388DFBB>]>> startxref 88130 %%EOF \ No newline at end of file diff --git a/deep_multi-scale_video_prediction_beyond_mean_square_error.pdf b/deep_multi-scale_video_prediction_beyond_mean_square_error.pdf new file mode 100644 index 0000000..0bc8c99 Binary files /dev/null and b/deep_multi-scale_video_prediction_beyond_mean_square_error.pdf differ -- cgit v1.2.3-70-g09d2