From cba707079c671dbabfcd136f7da1346745bb9655 Mon Sep 17 00:00:00 2001 From: shanren7 <1809722778@qq.com> Date: Fri, 27 Jan 2017 20:02:23 +0800 Subject: [PATCH] Add files via upload --- detect_face.py | 551 ++++++++++++++++ detect_face.pyc | Bin 0 -> 19697 bytes facenet.py | 593 ++++++++++++++++++ facenet.pyc | Bin 0 -> 20173 bytes knn_classifier.model | Bin 0 -> 164322 bytes model_check_point/det1.npy | Bin 0 -> 27368 bytes model_check_point/det2.npy | Bin 0 -> 401681 bytes model_check_point/det3.npy | Bin 0 -> 1557360 bytes model_check_point/knn_classifier.model | Bin 0 -> 164322 bytes nn4.py | 45 ++ nn4.pyc | Bin 0 -> 2544 bytes ...time face detection and recognition.ipynb | 439 +++++++++++++ save_video frame.ipynb | 67 ++ train your classifier.ipynb | 582 +++++++++++++++++ 14 files changed, 2277 insertions(+) create mode 100644 detect_face.py create mode 100644 detect_face.pyc create mode 100644 facenet.py create mode 100644 facenet.pyc create mode 100644 knn_classifier.model create mode 100644 model_check_point/det1.npy create mode 100644 model_check_point/det2.npy create mode 100644 model_check_point/det3.npy create mode 100644 model_check_point/knn_classifier.model create mode 100644 nn4.py create mode 100644 nn4.pyc create mode 100644 real time face detection and recognition.ipynb create mode 100644 save_video frame.ipynb create mode 100644 train your classifier.ipynb diff --git a/detect_face.py b/detect_face.py new file mode 100644 index 0000000..1782b39 --- /dev/null +++ b/detect_face.py @@ -0,0 +1,551 @@ +""" Tensorflow implementation of the face detection / alignment algorithm found at +https://github.com/kpzhang93/MTCNN_face_detection_alignment +""" +# MIT License +# +# Copyright (c) 2016 David Sandberg +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import numpy as np +import tensorflow as tf +#from math import floor +import cv2 +import os + +def layer(op): + '''Decorator for composable network layers.''' + + def layer_decorated(self, *args, **kwargs): + # Automatically set a name if not provided. + name = kwargs.setdefault('name', self.get_unique_name(op.__name__)) + # Figure out the layer inputs. + if len(self.terminals) == 0: + raise RuntimeError('No input variables found for layer %s.' % name) + elif len(self.terminals) == 1: + layer_input = self.terminals[0] + else: + layer_input = list(self.terminals) + # Perform the operation and get the output. + layer_output = op(self, layer_input, *args, **kwargs) + # Add to layer LUT. + self.layers[name] = layer_output + # This output is now the input for the next layer. + self.feed(layer_output) + # Return self for chained calls. + return self + + return layer_decorated + +class Network(object): + + def __init__(self, inputs, trainable=True): + # The input nodes for this network + self.inputs = inputs + # The current list of terminal nodes + self.terminals = [] + # Mapping from layer names to layers + self.layers = dict(inputs) + # If true, the resulting variables are set as trainable + self.trainable = trainable + + self.setup() + + def setup(self): + '''Construct the network. ''' + raise NotImplementedError('Must be implemented by the subclass.') + + def load(self, data_path, session, ignore_missing=False): + '''Load network weights. + data_path: The path to the numpy-serialized network weights + session: The current TensorFlow session + ignore_missing: If true, serialized weights for missing layers are ignored. + ''' + data_dict = np.load(data_path).item() #pylint: disable=no-member + for op_name in data_dict: + with tf.variable_scope(op_name, reuse=True): + for param_name, data in data_dict[op_name].iteritems(): + try: + var = tf.get_variable(param_name) + session.run(var.assign(data)) + except ValueError: + if not ignore_missing: + raise + + def feed(self, *args): + '''Set the input(s) for the next operation by replacing the terminal nodes. + The arguments can be either layer names or the actual layers. + ''' + assert len(args) != 0 + self.terminals = [] + for fed_layer in args: + if isinstance(fed_layer, basestring): + try: + fed_layer = self.layers[fed_layer] + except KeyError: + raise KeyError('Unknown layer name fed: %s' % fed_layer) + self.terminals.append(fed_layer) + return self + + def get_output(self): + '''Returns the current network output.''' + return self.terminals[-1] + + def get_unique_name(self, prefix): + '''Returns an index-suffixed unique name for the given prefix. + This is used for auto-generating layer names based on the type-prefix. + ''' + ident = sum(t.startswith(prefix) for t, _ in self.layers.items()) + 1 + return '%s_%d' % (prefix, ident) + + def make_var(self, name, shape): + '''Creates a new TensorFlow variable.''' + return tf.get_variable(name, shape, trainable=self.trainable) + + def validate_padding(self, padding): + '''Verifies that the padding is one of the supported ones.''' + assert padding in ('SAME', 'VALID') + + @layer + def conv(self, + inp, + k_h, + k_w, + c_o, + s_h, + s_w, + name, + relu=True, + padding='SAME', + group=1, + biased=True): + # Verify that the padding is acceptable + self.validate_padding(padding) + # Get the number of channels in the input + c_i = inp.get_shape()[-1] + # Verify that the grouping parameter is valid + assert c_i % group == 0 + assert c_o % group == 0 + # Convolution for a given input and kernel + convolve = lambda i, k: tf.nn.conv2d(i, k, [1, s_h, s_w, 1], padding=padding) + with tf.variable_scope(name) as scope: + kernel = self.make_var('weights', shape=[k_h, k_w, c_i // group, c_o]) + # This is the common-case. Convolve the input without any further complications. + output = convolve(inp, kernel) + # Add the biases + if biased: + biases = self.make_var('biases', [c_o]) + output = tf.nn.bias_add(output, biases) + if relu: + # ReLU non-linearity + output = tf.nn.relu(output, name=scope.name) + return output + + @layer + def prelu(self, inp, name): + with tf.variable_scope(name): + i = inp.get_shape().as_list() + alpha = self.make_var('alpha', shape=(i[-1])) + output = tf.nn.relu(inp) + tf.mul(alpha, -tf.nn.relu(-inp)) + return output + + @layer + def max_pool(self, inp, k_h, k_w, s_h, s_w, name, padding='SAME'): + self.validate_padding(padding) + return tf.nn.max_pool(inp, + ksize=[1, k_h, k_w, 1], + strides=[1, s_h, s_w, 1], + padding=padding, + name=name) + + @layer + def fc(self, inp, num_out, name, relu=True): + with tf.variable_scope(name): + input_shape = inp.get_shape() + if input_shape.ndims == 4: + # The input is spatial. Vectorize it first. + dim = 1 + for d in input_shape[1:].as_list(): + dim *= d + feed_in = tf.reshape(inp, [-1, dim]) + else: + feed_in, dim = (inp, input_shape[-1].value) + weights = self.make_var('weights', shape=[dim, num_out]) + biases = self.make_var('biases', [num_out]) + op = tf.nn.relu_layer if relu else tf.nn.xw_plus_b + fc = op(feed_in, weights, biases, name=name) + return fc + + + """ + Multi dimensional softmax, + refer to https://github.com/tensorflow/tensorflow/issues/210 + compute softmax along the dimension of target + the native softmax only supports batch_size x dimension + """ + @layer + def softmax(self, target, axis, name=None): + max_axis = tf.reduce_max(target, axis, keep_dims=True) + target_exp = tf.exp(target-max_axis) + normalize = tf.reduce_sum(target_exp, axis, keep_dims=True) + softmax = tf.div(target_exp, normalize, name) + return softmax + +class PNet(Network): + def setup(self): + (self.feed('data') #pylint: disable=no-value-for-parameter, no-member + .conv(3, 3, 10, 1, 1, padding='VALID', relu=False, name='conv1') + .prelu(name='PReLU1') + .max_pool(2, 2, 2, 2, name='pool1') + .conv(3, 3, 16, 1, 1, padding='VALID', relu=False, name='conv2') + .prelu(name='PReLU2') + .conv(3, 3, 32, 1, 1, padding='VALID', relu=False, name='conv3') + .prelu(name='PReLU3') + .conv(1, 1, 2, 1, 1, relu=False, name='conv4-1') + .softmax(3,name='prob1')) + + (self.feed('PReLU3') #pylint: disable=no-value-for-parameter + .conv(1, 1, 4, 1, 1, relu=False, name='conv4-2')) + +class RNet(Network): + def setup(self): + (self.feed('data') #pylint: disable=no-value-for-parameter, no-member + .conv(3, 3, 28, 1, 1, padding='VALID', relu=False, name='conv1') + .prelu(name='prelu1') + .max_pool(3, 3, 2, 2, name='pool1') + .conv(3, 3, 48, 1, 1, padding='VALID', relu=False, name='conv2') + .prelu(name='prelu2') + .max_pool(3, 3, 2, 2, padding='VALID', name='pool2') + .conv(2, 2, 64, 1, 1, padding='VALID', relu=False, name='conv3') + .prelu(name='prelu3') + .fc(128, relu=False, name='conv4') + .prelu(name='prelu4') + .fc(2, relu=False, name='conv5-1') + .softmax(1,name='prob1')) + + (self.feed('prelu4') #pylint: disable=no-value-for-parameter + .fc(4, relu=False, name='conv5-2')) + +class ONet(Network): + def setup(self): + (self.feed('data') #pylint: disable=no-value-for-parameter, no-member + .conv(3, 3, 32, 1, 1, padding='VALID', relu=False, name='conv1') + .prelu(name='prelu1') + .max_pool(3, 3, 2, 2, name='pool1') + .conv(3, 3, 64, 1, 1, padding='VALID', relu=False, name='conv2') + .prelu(name='prelu2') + .max_pool(3, 3, 2, 2, padding='VALID', name='pool2') + .conv(3, 3, 64, 1, 1, padding='VALID', relu=False, name='conv3') + .prelu(name='prelu3') + .max_pool(2, 2, 2, 2, name='pool3') + .conv(2, 2, 128, 1, 1, padding='VALID', relu=False, name='conv4') + .prelu(name='prelu4') + .fc(256, relu=False, name='conv5') + .prelu(name='prelu5') + .fc(2, relu=False, name='conv6-1') + .softmax(1, name='prob1')) + + (self.feed('prelu5') #pylint: disable=no-value-for-parameter + .fc(4, relu=False, name='conv6-2')) + + (self.feed('prelu5') #pylint: disable=no-value-for-parameter + .fc(10, relu=False, name='conv6-3')) + +def create_mtcnn(sess, model_path): + with tf.variable_scope('pnet'): + data = tf.placeholder(tf.float32, (None,None,None,3), 'input') + pnet = PNet({'data':data}) + pnet.load(os.path.join(model_path, 'det1.npy'), sess) + with tf.variable_scope('rnet'): + data = tf.placeholder(tf.float32, (None,24,24,3), 'input') + rnet = RNet({'data':data}) + rnet.load(os.path.join(model_path, 'det2.npy'), sess) + with tf.variable_scope('onet'): + data = tf.placeholder(tf.float32, (None,48,48,3), 'input') + onet = ONet({'data':data}) + onet.load(os.path.join(model_path, 'det3.npy'), sess) + + pnet_fun = lambda img : sess.run(('pnet/conv4-2/BiasAdd:0', 'pnet/prob1:0'), feed_dict={'pnet/input:0':img}) + rnet_fun = lambda img : sess.run(('rnet/conv5-2/conv5-2:0', 'rnet/prob1:0'), feed_dict={'rnet/input:0':img}) + onet_fun = lambda img : sess.run(('onet/conv6-2/conv6-2:0', 'onet/conv6-3/conv6-3:0', 'onet/prob1:0'), feed_dict={'onet/input:0':img}) + return pnet_fun, rnet_fun, onet_fun + +def detect_face(img, minsize, pnet, rnet, onet, threshold, factor): + # im: input image + # minsize: minimum of faces' size + # pnet, rnet, onet: caffemodel + # threshold: threshold=[th1 th2 th3], th1-3 are three steps's threshold + # fastresize: resize img from last scale (using in high-resolution images) if fastresize==true + factor_count=0 + total_boxes=np.empty((0,9)) + points=[] + h=img.shape[0] + w=img.shape[1] + minl=np.amin([h, w]) + m=12.0/minsize + minl=minl*m + # creat scale pyramid + scales=[] + while minl>=12: + scales += [m*np.power(factor, factor_count)] + minl = minl*factor + factor_count += 1 + + # first stage + for j in range(len(scales)): + scale=scales[j] + hs=int(np.ceil(h*scale)) + ws=int(np.ceil(w*scale)) + im_data = imresample(img, (hs, ws)) + im_data = (im_data-127.5)*0.0078125 + img_x = np.expand_dims(im_data, 0) + img_y = np.transpose(img_x, (0,2,1,3)) + out = pnet(img_y) + out0 = np.transpose(out[0], (0,2,1,3)) + out1 = np.transpose(out[1], (0,2,1,3)) + + boxes, _ = generateBoundingBox(out1[0,:,:,1].copy(), out0[0,:,:,:].copy(), scale, threshold[0]) + + # inter-scale nms + pick = nms(boxes.copy(), 0.5, 'Union') + if boxes.size>0 and pick.size>0: + boxes = boxes[pick,:] + total_boxes = np.append(total_boxes, boxes, axis=0) + + numbox = total_boxes.shape[0] + if numbox>0: + pick = nms(total_boxes.copy(), 0.7, 'Union') + total_boxes = total_boxes[pick,:] + regw = total_boxes[:,2]-total_boxes[:,0] + regh = total_boxes[:,3]-total_boxes[:,1] + qq1 = total_boxes[:,0]+total_boxes[:,5]*regw + qq2 = total_boxes[:,1]+total_boxes[:,6]*regh + qq3 = total_boxes[:,2]+total_boxes[:,7]*regw + qq4 = total_boxes[:,3]+total_boxes[:,8]*regh + total_boxes = np.transpose(np.vstack([qq1, qq2, qq3, qq4, total_boxes[:,4]])) + total_boxes = rerec(total_boxes.copy()) + total_boxes[:,0:4] = np.fix(total_boxes[:,0:4]).astype(np.int32) + dy, edy, dx, edx, y, ey, x, ex, tmpw, tmph = pad(total_boxes.copy(), w, h) + + numbox = total_boxes.shape[0] + if numbox>0: + # second stage + tempimg = np.zeros((24,24,3,numbox)) + for k in range(0,numbox): + tmp = np.zeros((int(tmph[k]),int(tmpw[k]),3)) + tmp[dy[k]-1:edy[k],dx[k]-1:edx[k],:] = img[y[k]-1:ey[k],x[k]-1:ex[k],:] + if tmp.shape[0]>0 and tmp.shape[1]>0 or tmp.shape[0]==0 and tmp.shape[1]==0: + tempimg[:,:,:,k] = imresample(tmp, (24, 24)) + else: + return np.empty() + tempimg = (tempimg-127.5)*0.0078125 + tempimg1 = np.transpose(tempimg, (3,1,0,2)) + out = rnet(tempimg1) + out0 = np.transpose(out[0]) + out1 = np.transpose(out[1]) + score = out1[1,:] + ipass = np.where(score>threshold[1]) + total_boxes = np.hstack([total_boxes[ipass[0],0:4].copy(), np.expand_dims(score[ipass].copy(),1)]) + mv = out0[:,ipass[0]] + if total_boxes.shape[0]>0: + pick = nms(total_boxes, 0.7, 'Union') + total_boxes = total_boxes[pick,:] + total_boxes = bbreg(total_boxes.copy(), np.transpose(mv[:,pick])) + total_boxes = rerec(total_boxes.copy()) + + numbox = total_boxes.shape[0] + if numbox>0: + # third stage + total_boxes = np.fix(total_boxes).astype(np.int32) + dy, edy, dx, edx, y, ey, x, ex, tmpw, tmph = pad(total_boxes.copy(), w, h) + tempimg = np.zeros((48,48,3,numbox)) + for k in range(0,numbox): + tmp = np.zeros((int(tmph[k]),int(tmpw[k]),3)) + tmp[dy[k]-1:edy[k],dx[k]-1:edx[k],:] = img[y[k]-1:ey[k],x[k]-1:ex[k],:] + if tmp.shape[0]>0 and tmp.shape[1]>0 or tmp.shape[0]==0 and tmp.shape[1]==0: + tempimg[:,:,:,k] = imresample(tmp, (48, 48)) + else: + return np.empty() + tempimg = (tempimg-127.5)*0.0078125 + tempimg1 = np.transpose(tempimg, (3,1,0,2)) + out = onet(tempimg1) + out0 = np.transpose(out[0]) + out1 = np.transpose(out[1]) + out2 = np.transpose(out[2]) + score = out2[1,:] + points = out1 + ipass = np.where(score>threshold[2]) + points = points[:,ipass[0]] + total_boxes = np.hstack([total_boxes[ipass[0],0:4].copy(), np.expand_dims(score[ipass].copy(),1)]) + mv = out0[:,ipass[0]] + + w = total_boxes[:,2]-total_boxes[:,0]+1 + h = total_boxes[:,3]-total_boxes[:,1]+1 + points[0:5,:] = np.tile(w,(5, 1))*points[0:5,:] + np.tile(total_boxes[:,0],(5, 1))-1 + points[5:10,:] = np.tile(h,(5, 1))*points[5:10,:] + np.tile(total_boxes[:,1],(5, 1))-1 + if total_boxes.shape[0]>0: + total_boxes = bbreg(total_boxes.copy(), np.transpose(mv)) + pick = nms(total_boxes.copy(), 0.7, 'Min') + total_boxes = total_boxes[pick,:] + points = points[:,pick] + + return total_boxes, points + + +# function [boundingbox] = bbreg(boundingbox,reg) +def bbreg(boundingbox,reg): + # calibrate bounding boxes + if reg.shape[1]==1: + reg = np.reshape(reg, (reg.shape[2], reg.shape[3])) + + w = boundingbox[:,2]-boundingbox[:,0]+1 + h = boundingbox[:,3]-boundingbox[:,1]+1 + b1 = boundingbox[:,0]+reg[:,0]*w + b2 = boundingbox[:,1]+reg[:,1]*h + b3 = boundingbox[:,2]+reg[:,2]*w + b4 = boundingbox[:,3]+reg[:,3]*h + boundingbox[:,0:4] = np.transpose(np.vstack([b1, b2, b3, b4 ])) + return boundingbox + +def generateBoundingBox(imap, reg, scale, t): + # use heatmap to generate bounding boxes + stride=2 + cellsize=12 + + imap = np.transpose(imap) + dx1 = np.transpose(reg[:,:,0]) + dy1 = np.transpose(reg[:,:,1]) + dx2 = np.transpose(reg[:,:,2]) + dy2 = np.transpose(reg[:,:,3]) + y, x = np.where(imap >= t) + if y.shape[0]==1: + dx1 = np.flipud(dx1) + dy1 = np.flipud(dy1) + dx2 = np.flipud(dx2) + dy2 = np.flipud(dy2) + score = imap[(y,x)] + reg = np.transpose(np.vstack([ dx1[(y,x)], dy1[(y,x)], dx2[(y,x)], dy2[(y,x)] ])) + if reg.size==0: + reg = np.empty((0,3)) + bb = np.transpose(np.vstack([y,x])) + q1 = np.fix((stride*bb+1)/scale) + q2 = np.fix((stride*bb+cellsize-1+1)/scale) + boundingbox = np.hstack([q1, q2, np.expand_dims(score,1), reg]) + return boundingbox, reg + +# function pick = nms(boxes,threshold,type) +def nms(boxes, threshold, method): + if boxes.size==0: + return np.empty((0,3)) + x1 = boxes[:,0] + y1 = boxes[:,1] + x2 = boxes[:,2] + y2 = boxes[:,3] + s = boxes[:,4] + area = (x2-x1+1) * (y2-y1+1) + I = np.argsort(s) + pick = np.zeros_like(s, dtype=np.int16) + counter = 0 + while I.size>0: + i = I[-1] + pick[counter] = i + counter += 1 + idx = I[0:-1] + xx1 = np.maximum(x1[i], x1[idx]) + yy1 = np.maximum(y1[i], y1[idx]) + xx2 = np.minimum(x2[i], x2[idx]) + yy2 = np.minimum(y2[i], y2[idx]) + w = np.maximum(0.0, xx2-xx1+1) + h = np.maximum(0.0, yy2-yy1+1) + inter = w * h + if method is 'Min': + o = inter / np.minimum(area[i], area[idx]) + else: + o = inter / (area[i] + area[idx] - inter) + I = I[np.where(o<=threshold)] + pick = pick[0:counter] + return pick + +# function [dy edy dx edx y ey x ex tmpw tmph] = pad(total_boxes,w,h) +def pad(total_boxes, w, h): + # compute the padding coordinates (pad the bounding boxes to square) + tmpw = (total_boxes[:,2]-total_boxes[:,0]+1).astype(np.int32) + tmph = (total_boxes[:,3]-total_boxes[:,1]+1).astype(np.int32) + numbox = total_boxes.shape[0] + + dx = np.ones((numbox), dtype=np.int32) + dy = np.ones((numbox), dtype=np.int32) + edx = tmpw.copy().astype(np.int32) + edy = tmph.copy().astype(np.int32) + + x = total_boxes[:,0].copy().astype(np.int32) + y = total_boxes[:,1].copy().astype(np.int32) + ex = total_boxes[:,2].copy().astype(np.int32) + ey = total_boxes[:,3].copy().astype(np.int32) + + tmp = np.where(ex>w) + edx[tmp] = np.expand_dims(-ex[tmp]+w+tmpw[tmp],1) + ex[tmp] = w + + tmp = np.where(ey>h) + edy[tmp] = np.expand_dims(-ey[tmp]+h+tmph[tmp],1) + ey[tmp] = h + + tmp = np.where(x<1) + dx[tmp] = np.expand_dims(2-x[tmp],1) + x[tmp] = 1 + + tmp = np.where(y<1) + dy[tmp] = np.expand_dims(2-y[tmp],1) + y[tmp] = 1 + + return dy, edy, dx, edx, y, ey, x, ex, tmpw, tmph + +# function [bboxA] = rerec(bboxA) +def rerec(bboxA): + # convert bboxA to square + h = bboxA[:,3]-bboxA[:,1] + w = bboxA[:,2]-bboxA[:,0] + l = np.maximum(w, h) + bboxA[:,0] = bboxA[:,0]+w*0.5-l*0.5 + bboxA[:,1] = bboxA[:,1]+h*0.5-l*0.5 + bboxA[:,2:4] = bboxA[:,0:2] + np.transpose(np.tile(l,(2,1))) + return bboxA + +def imresample(img, sz): + im_data = cv2.resize(img, (sz[1], sz[0]), interpolation=cv2.INTER_AREA) #pylint: disable=no-member + return im_data + + # This method is kept for debugging purpose +# h=img.shape[0] +# w=img.shape[1] +# hs, ws = sz +# dx = float(w) / ws +# dy = float(h) / hs +# im_data = np.zeros((hs,ws,3)) +# for a1 in range(0,hs): +# for a2 in range(0,ws): +# for a3 in range(0,3): +# im_data[a1,a2,a3] = img[int(floor(a1*dy)),int(floor(a2*dx)),a3] +# return im_data + diff --git a/detect_face.pyc b/detect_face.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5e45de0e0b2897ca95d1add3ee5571fef73eb229 GIT binary patch literal 19697 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 U#%IUBcYJF6pF literal 0 HcmV?d00001 diff --git a/facenet.py b/facenet.py new file mode 100644 index 0000000..eaf53b8 --- /dev/null +++ b/facenet.py @@ -0,0 +1,593 @@ +# The whole file was taken from @davidsandberg implementation +# https://github.com/davidsandberg/facenet/blob/master/facenet/src/facenet.py + +"""Functions for building the face recognition network. +""" +# pylint: disable=missing-docstring +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import os +from os import path +from six.moves import xrange +import tensorflow as tf +from tensorflow.python.ops import array_ops +from tensorflow.python.ops import control_flow_ops +import numpy as np +from scipy import misc +import matplotlib.pyplot as plt +from sklearn.cross_validation import KFold + +parameters = [] +conv_counter = 1 +pool_counter = 1 +affine_counter = 1 + +def conv(inpOp, nIn, nOut, kH, kW, dH, dW, padType, prefix, phase_train=True, use_batch_norm=True): + global conv_counter + global parameters + name = prefix + '_' + str(conv_counter) + conv_counter += 1 + with tf.name_scope(name) as scope: + kernel = tf.Variable(tf.truncated_normal([kH, kW, nIn, nOut], + dtype=tf.float32, + stddev=1e-1), name='weights') + conv = tf.nn.conv2d(inpOp, kernel, [1, dH, dW, 1], padding=padType) + + if use_batch_norm: + conv_bn = batch_norm(conv, nOut, phase_train, 'batch_norm') + else: + conv_bn = conv + biases = tf.Variable(tf.constant(0.0, shape=[nOut], dtype=tf.float32), + trainable=True, name='biases') + bias = tf.nn.bias_add(conv_bn, biases) + conv1 = tf.nn.relu(bias, name=scope) + parameters += [kernel, biases] + return conv1 + +def affine(inpOp, nIn, nOut): + global affine_counter + global parameters + name = 'affine' + str(affine_counter) + affine_counter += 1 + with tf.name_scope(name): + kernel = tf.Variable(tf.truncated_normal([nIn, nOut], + dtype=tf.float32, + stddev=1e-1), name='weights') + biases = tf.Variable(tf.constant(0.0, shape=[nOut], dtype=tf.float32), + trainable=True, name='biases') + affine1 = tf.nn.relu_layer(inpOp, kernel, biases, name=name) + parameters += [kernel, biases] + return affine1 + +def lppool(inpOp, pnorm, kH, kW, dH, dW, padding): + global pool_counter + global parameters + name = 'pool' + str(pool_counter) + pool_counter += 1 + + with tf.name_scope('lppool'): + if pnorm == 2: + pwr = tf.square(inpOp) + else: + pwr = tf.pow(inpOp, pnorm) + + subsamp = tf.nn.avg_pool(pwr, + ksize=[1, kH, kW, 1], + strides=[1, dH, dW, 1], + padding=padding, + name=name) + subsamp_sum = tf.mul(subsamp, kH*kW) + + if pnorm == 2: + out = tf.sqrt(subsamp_sum) + else: + out = tf.pow(subsamp_sum, 1/pnorm) + + return out + +def mpool(inpOp, kH, kW, dH, dW, padding): + global pool_counter + global parameters + name = 'pool' + str(pool_counter) + pool_counter += 1 + with tf.name_scope('maxpool'): + maxpool = tf.nn.max_pool(inpOp, + ksize=[1, kH, kW, 1], + strides=[1, dH, dW, 1], + padding=padding, + name=name) + return maxpool + +def apool(inpOp, kH, kW, dH, dW, padding): + global pool_counter + global parameters + name = 'pool' + str(pool_counter) + pool_counter += 1 + return tf.nn.avg_pool(inpOp, + ksize=[1, kH, kW, 1], + strides=[1, dH, dW, 1], + padding=padding, + name=name) + +def batch_norm(x, n_out, phase_train, name, affine=True): + """ + Batch normalization on convolutional maps. + Args: + x: Tensor, 4D BHWD input maps + n_out: integer, depth of input maps + phase_train: boolean tf.Variable, true indicates training phase + scope: string, variable scope + affine: whether to affine-transform outputs + Return: + normed: batch-normalized maps + Ref: http://stackoverflow.com/questions/33949786/how-could-i-use-batch-normalization-in-tensorflow/33950177 + """ + global parameters + + with tf.name_scope(name): + + beta = tf.Variable(tf.constant(0.0, shape=[n_out]), + name=name+'/beta', trainable=True) + gamma = tf.Variable(tf.constant(1.0, shape=[n_out]), + name=name+'/gamma', trainable=affine) + + batch_mean, batch_var = tf.nn.moments(x, [0,1,2], name='moments') + ema = tf.train.ExponentialMovingAverage(decay=0.9) + def mean_var_with_update(): + ema_apply_op = ema.apply([batch_mean, batch_var]) + with tf.control_dependencies([ema_apply_op]): + return tf.identity(batch_mean), tf.identity(batch_var) + mean, var = control_flow_ops.cond(phase_train, + mean_var_with_update, + lambda: (ema.average(batch_mean), ema.average(batch_var))) + normed = tf.nn.batch_norm_with_global_normalization(x, mean, var, + beta, gamma, 1e-3, affine, name=name) + parameters += [beta, gamma] + return normed + +def inception(inp, inSize, ks, o1s, o2s1, o2s2, o3s1, o3s2, o4s1, o4s2, o4s3, poolType, name, phase_train=True, use_batch_norm=True): + + print('name = ', name) + print('inputSize = ', inSize) + print('kernelSize = {3,5}') + print('kernelStride = {%d,%d}' % (ks,ks)) + print('outputSize = {%d,%d}' % (o2s2,o3s2)) + print('reduceSize = {%d,%d,%d,%d}' % (o2s1,o3s1,o4s2,o1s)) + print('pooling = {%s, %d, %d, %d, %d}' % (poolType, o4s1, o4s1, o4s3, o4s3)) + if (o4s2>0): + o4 = o4s2 + else: + o4 = inSize + print('outputSize = ', o1s+o2s2+o3s2+o4) + print() + + net = [] + + with tf.name_scope(name): + if o1s>0: + conv1 = conv(inp, inSize, o1s, 1, 1, 1, 1, 'SAME', 'in1_conv1x1', phase_train=phase_train, use_batch_norm=use_batch_norm) + net.append(conv1) + + if o2s1>0: + conv3a = conv(inp, inSize, o2s1, 1, 1, 1, 1, 'SAME', 'in2_conv1x1', phase_train=phase_train, use_batch_norm=use_batch_norm) + conv3 = conv(conv3a, o2s1, o2s2, 3, 3, ks, ks, 'SAME', 'in2_conv3x3', phase_train=phase_train, use_batch_norm=use_batch_norm) + net.append(conv3) + + if o3s1>0: + conv5a = conv(inp, inSize, o3s1, 1, 1, 1, 1, 'SAME', 'in3_conv1x1', phase_train=phase_train, use_batch_norm=use_batch_norm) + conv5 = conv(conv5a, o3s1, o3s2, 5, 5, ks, ks, 'SAME', 'in3_conv5x5', phase_train=phase_train, use_batch_norm=use_batch_norm) + net.append(conv5) + + if poolType=='MAX': + pool = mpool(inp, o4s1, o4s1, o4s3, o4s3, 'SAME') + elif poolType=='L2': + pool = lppool(inp, 2, o4s1, o4s1, o4s3, o4s3, 'SAME') + else: + raise ValueError('Invalid pooling type "%s"' % poolType) + + if o4s2>0: + pool_conv = conv(pool, inSize, o4s2, 1, 1, 1, 1, 'SAME', 'in4_conv1x1', phase_train=phase_train, use_batch_norm=use_batch_norm) + else: + pool_conv = pool + net.append(pool_conv) + + incept = array_ops.concat(3, net, name=name) + return incept + +def triplet_loss(anchor, positive, negative, alpha): + """Calculate the triplet loss according to the FaceNet paper + + Args: + anchor: the embeddings for the anchor images. + positive: the embeddings for the positive images. + positive: the embeddings for the negative images. + + Returns: + the triplet loss according to the FaceNet paper as a float tensor. + """ + with tf.name_scope('triplet_loss'): + pos_dist = tf.reduce_sum(tf.square(tf.sub(anchor, positive)), 1) # Summing over distances in each batch + neg_dist = tf.reduce_sum(tf.square(tf.sub(anchor, negative)), 1) + + basic_loss = tf.add(tf.sub(pos_dist,neg_dist), alpha) + loss = tf.reduce_mean(tf.maximum(basic_loss, 0.0), 0, name='tripletloss') + + return loss + +def _add_loss_summaries(total_loss): + """Add summaries for losses in CIFAR-10 model. + + Generates moving average for all losses and associated summaries for + visualizing the performance of the network. + + Args: + total_loss: Total loss from loss(). + Returns: + loss_averages_op: op for generating moving averages of losses. + """ + # Compute the moving average of all individual losses and the total loss. + loss_averages = tf.train.ExponentialMovingAverage(0.9, name='avg') + losses = tf.get_collection('losses') + loss_averages_op = loss_averages.apply(losses + [total_loss]) + + # Attach a scalar summmary to all individual losses and the total loss; do the + # same for the averaged version of the losses. + for l in losses + [total_loss]: + # Name each loss as '(raw)' and name the moving average version of the loss + # as the original loss name. + tf.scalar_summary(l.op.name +' (raw)', l) + tf.scalar_summary(l.op.name, loss_averages.average(l)) + + return loss_averages_op + +def train(total_loss, global_step, optimizer, learning_rate, moving_average_decay): + """Setup training for the FaceNet model. + + Create an optimizer and apply to all trainable variables. Add moving + average for all trainable variables. + + Args: + total_loss: Total loss from loss(). + global_step: Integer Variable counting the number of training steps + processed. + Returns: + train_op: op for training. + """ + # Generate moving averages of all losses and associated summaries. + loss_averages_op = _add_loss_summaries(total_loss) + + # Compute gradients. + with tf.control_dependencies([loss_averages_op]): + if optimizer=='ADAGRAD': + opt = tf.train.AdagradOptimizer(learning_rate) + elif optimizer=='ADADELTA': + opt = tf.train.AdadeltaOptimizer(learning_rate, rho=0.9, epsilon=1e-6) + elif optimizer=='ADAM': + opt = tf.train.AdamOptimizer(learning_rate, beta1=0.9, beta2=0.999, epsilon=1e-8) + else: + raise ValueError('Invalid optimization algorithm') + + grads = opt.compute_gradients(total_loss) + + # Apply gradients. + apply_gradient_op = opt.apply_gradients(grads, global_step=global_step) + + # Add histograms for trainable variables. + for var in tf.trainable_variables(): + tf.histogram_summary(var.op.name, var) + + # Add histograms for gradients. + for grad, var in grads: + if grad is not None: + tf.histogram_summary(var.op.name + '/gradients', grad) + + # Track the moving averages of all trainable variables. + variable_averages = tf.train.ExponentialMovingAverage( + moving_average_decay, global_step) + variables_averages_op = variable_averages.apply(tf.trainable_variables()) + + with tf.control_dependencies([apply_gradient_op, variables_averages_op]): + train_op = tf.no_op(name='train') + + return train_op, grads + +def prewhiten(x): + mean = np.mean(x) + std = np.std(x) + std_adj = np.max(std, 1.0/np.sqrt(x.size)) + y = np.multiply(np.subtract(x, mean), 1/std_adj) + return y + +def crop(image, random_crop, image_size): + if image.shape[1]>image_size: + sz1 = image.shape[1]/2 + sz2 = image_size/2 + if random_crop: + diff = sz1-sz2 + (h, v) = (np.random.randint(-diff, diff+1), np.random.randint(-diff, diff+1)) + else: + (h, v) = (0,0) + image = image[(sz1-sz2+v):(sz1+sz2+v),(sz1-sz2+h):(sz1+sz2+h),:] + return image + +def flip(image, random_flip): + if random_flip and np.random.choice([True, False]): + image = np.fliplr(image) + return image + +def to_rgb(img): + w, h = img.shape + ret = np.empty((w, h, 3), dtype=np.uint8) + ret[:, :, 0] = ret[:, :, 1] = ret[:, :, 2] = img + return ret + +def load_data(image_paths, do_random_crop, do_random_flip, image_size, do_prewhiten=True): + nrof_samples = len(image_paths) + img_list = [None] * nrof_samples + for i in xrange(nrof_samples): + img = misc.imread(image_paths[i]) + if img.ndim == 2: + img = to_rgb(img) + if do_prewhiten: + img = prewhiten(img) + img = crop(img, do_random_crop, image_size) + img = flip(img, do_random_flip) + img_list[i] = img + images = np.stack(img_list) + return images + +def get_batch(image_data, batch_size, batch_index): + nrof_examples = np.size(image_data, 0) + j = batch_index*batch_size % nrof_examples + if j+batch_size<=nrof_examples: + batch = image_data[j:j+batch_size,:,:,:] + else: + x1 = image_data[j:nrof_examples,:,:,:] + x2 = image_data[0:nrof_examples-j,:,:,:] + batch = np.vstack([x1,x2]) + batch_float = batch.astype(np.float32) + return batch_float + +def get_triplet_batch(triplets, batch_index, batch_size): + ax, px, nx = triplets + a = get_batch(ax, int(batch_size/3), batch_index) + p = get_batch(px, int(batch_size/3), batch_index) + n = get_batch(nx, int(batch_size/3), batch_index) + batch = np.vstack([a, p, n]) + return batch + +def select_training_triplets(embeddings, num_per_class, image_data, people_per_batch, alpha): + + def dist(emb1, emb2): + x = np.square(np.subtract(emb1, emb2)) + return np.sum(x, 0) + + nrof_images = image_data.shape[0] + nrof_triplets = nrof_images - people_per_batch + shp = [nrof_triplets, image_data.shape[1], image_data.shape[2], image_data.shape[3]] + as_arr = np.zeros(shp) + ps_arr = np.zeros(shp) + ns_arr = np.zeros(shp) + + trip_idx = 0 + shuffle = np.arange(nrof_triplets) + np.random.shuffle(shuffle) + emb_start_idx = 0 + nrof_random_negs = 0 + for i in xrange(people_per_batch): + n = num_per_class[i] + for j in range(1,n): + a_idx = emb_start_idx + p_idx = emb_start_idx + j + as_arr[shuffle[trip_idx]] = image_data[a_idx] + ps_arr[shuffle[trip_idx]] = image_data[p_idx] + + # Select a semi-hard negative that has a distance + # further away from the positive exemplar. + pos_dist = dist(embeddings[a_idx][:], embeddings[p_idx][:]) + sel_neg_idx = emb_start_idx + while sel_neg_idx>=emb_start_idx and sel_neg_idx<=emb_start_idx+n-1: + sel_neg_idx = (np.random.randint(1, 2**32) % nrof_images) -1 # Seems to give the same result as the lua implementation + #sel_neg_idx = np.random.random_integers(0, nrof_images-1) + sel_neg_dist = dist(embeddings[a_idx][:], embeddings[sel_neg_idx][:]) + + random_neg = True + for k in range(nrof_images): + if kemb_start_idx+n-1: + neg_dist = dist(embeddings[a_idx][:], embeddings[k][:]) + if pos_dist=emb_start_idx and sel_neg_idx<=emb_start_idx+n-1: + sel_neg_idx = (np.random.randint(1, 2**32) % nrof_images) -1 + + ns_arr[shuffle[trip_idx]] = image_data[sel_neg_idx] + trip_idx += 1 + + emb_start_idx += n + + nrof_triplets = trip_idx // batch_size * batch_size + triplets = (as_arr[0:nrof_triplets,:,:,:], ps_arr[0:nrof_triplets,:,:,:], ns_arr[0:nrof_triplets,:,:,:]) + + return triplets, nrof_triplets + + +class ImageClass(): + "Stores the paths to images for a given class" + def __init__(self, name, image_paths): + self.name = name + self.image_paths = image_paths + + def __str__(self): + return self.name + ', ' + str(len(self.image_paths)) + ' images' + + def __len__(self): + return len(self.image_paths) + +def get_dataset(paths): + dataset = [] + for path in paths.split(':'): + path_exp = os.path.expanduser(path) + classes = os.listdir(path_exp) + classes.sort() + nrof_classes = len(classes) + for i in range(nrof_classes): + class_name = classes[i] + facedir = os.path.join(path_exp, class_name) + if os.path.isdir(facedir): + images = os.listdir(facedir) + image_paths = map(lambda x: os.path.join(facedir,x), images) + dataset.append(ImageClass(class_name, image_paths)) + + return dataset + +def split_dataset(dataset, split_ratio, mode): + if mode=='SPLIT_CLASSES': + nrof_classes = len(dataset) + class_indices = np.arange(nrof_classes) + np.random.shuffle(class_indices) + split = int(round(nrof_classes*split_ratio)) + train_set = [dataset[i] for i in class_indices[0:split]] + test_set = [dataset[i] for i in class_indices[split:-1]] + elif mode=='SPLIT_IMAGES': + train_set = [] + test_set = [] + min_nrof_images = 2 + for cls in dataset: + paths = cls.image_paths + np.random.shuffle(paths) + split = int(round(len(paths)*split_ratio)) + if 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%0A_0^+o`&)O_Dz2es)#@J*e}e?YP5Bxh zoF7(bEsr6C`ESZboP&&jrONUEg#!M_g>!izFy*?AR&?Dae_S(*DV^;`wn$Bj<}Cg! z((Pq2m0=YcBdJzD0HB6dmOwknHzrRWF29 zMK{$d&Qn&QOskNGTxr;@Rjd9SI{JH=%p>VNopM_*_3Z)3@8P461{Fwouson$AoJ3P z8z33}88USk=$>2qm%Z%(`Y&JqZ5ct5?-bv5iB(Qe?XRzBzOcXeeJLf3<2BOBN&g6D+%W4OndANwtXk3fsY z1SE-e>T?)Hm~XZl_8zI(b%fMj@ddQ7kvwoq-U85{a!c^-bOBXnNZM&OGXEeNY;EZ$e6bxe_7bjN;WP3ndT-;&tfC*8 zPyH=|9AFnv=B#2bqln1R$e~X@iOZ&kN{YmA6D}gb4k{gWs>@yovpWqizIb zP8>zkhG9IL+;S!>r=FFu=^y`A1k?)A7vEJU;qGt z`~aArpnn?A>%`jL2KyylDOE=_;V2qZy7oUf?&a(MS}$xNM2E|adb2lQq?tmtNJ<=) zH!T$l0D04us(3Vmuu#-sq;he07AMv4n|i&65YM+BFY&6ajfsb*bA`7uV3^5d;VHJ9 zX5s*J56sZ(>-ON3zd?T6(gQHWNZw=RHyr-1#yES%;=qb_$Csz)DC{u%g0!|Mi~Y)* zufO(I_0sDXuUvWQidh{07e698YkTdDi?5)GjF+B3@>aWDS&Hry+735OboNyNAy*a- zhfhoYi86I-FntVtigQmvp1?~ISw-BYyD0)Q2TJTDckT!1)n~>07Zk-^3EtohMd&)M zG+o$ZGU*}eQ1c(i(L5(?w8gSK9rvGMD;0`ykKWtBJ9LLoZJbr+Ts&v4;*q2jxL_4{ z>$-)8ekY2YUTdcQQy4(v=0P$?6Y7x*&iiwKrzg>u5zsNY7qi|Ia5%=~K;YIMwDlBX zI%A~+c)xAZtAHPm;Le}8k>Mcf4sj!&7bJ?Eo+1CCU^gU;`D7{^m-Tp23W5K`0el9& zGVTJCFb^jAK%*#R14bs{J)!^v^#;gQGti{xu*N-@MXb^d_)s_L-Uc}yZCD+KVpk2j zmoYoV6KEulyF>6R$lw#;%{jRfC}0M@-85-J;1A_rD87LEDd;ovEY%LEdJ1N~h@0

=zwS!?yi1Id!RX{ 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 S`=*;Gy7+U2qz$~rH2Z%FJh~wO literal 0 HcmV?d00001 diff --git a/model_check_point/det1.npy b/model_check_point/det1.npy new file mode 100644 index 0000000000000000000000000000000000000000..7c05a2c5625e0f4e8c9f633b5ddef5e942b03032 GIT binary patch literal 27368 zcmZ6y2{cvV_dbry^At&$GbEKr<-Yrsq%x%eQBuYR4M;^JAyXn5N+g+5G?C)I`z4x` zN)w@h=2@vU*U#ts`>yr>eg5a(b=SJ*oOSkH&)x6Ydq2-}_RjWno8u!YGDBpuNl@^* zzz7ptJ(Df&CS&wWLe@q^M)X6_^(MbQAA~G0hgSEwkaOth#GNztV8-rIYTOPSCTz0wW^8YW8++d)= z_uxyNH z^03lql<>=*RL(mJsVQLs$~N6tZWh7%PkbvzB3j0U)04kG~m`ou>z^>F9j1_%LRH;-$>3O z1vXDbo0v~76Bv;1!ihuNY^9#Ru`P%QK#eeCSWtLDD0x1a-PYV83~8D`ju%?mzE?f~ zzw2D4@P97^1{p0vmA2{B=94I&-xtL;>D38dlHJ17my6l1S=vO_BUb2s?vG$&OC$Cq z3&Cq+ykPc_906J9ELeB~*-x=tLH5>MqBKvHJ+(C=p>K8y{;qv0IMtv?qGw*ie8<&f z^wV^K`0zw>EcmSOS6{KfG*OrA@i}fAFFa+tp=>zeU-!Vm^>S2fMV9c@qr*b|YYKv} zAaPQ0XSdLMQo7)PaWh$aP>CNny#&i5Pt|*A#|w96=hcrgoC=8_n*jL!^bzAn_hU3oQbh#bxzvkp6w^-6|J*9KJvJrd0C5~ z#CJ97kDi5bd)mkX|2|<$nlw>SJuRr%)-3c%vm~9~)x>z7BtOgaXw*UvLGqFJLPysm zp>=33i45?R3|Qg6E_hwI!hdCy;(yXfJYl(fvZr!c;YqSNZXB*O-h?BL&t#DS>;IqB zv4}gXtzJBCaR+tQ+UJ zO;9oJHd5wgucmO7s$4FbwUxd|il+ur@vNw{mM=OwkEh7J0hbU1yXf5~xOVqm?wLJ_ zR-ZY+zsN@O&)e?M*bG!O4VpK1FXnt^C+cQ|7;+r@tJgFJCCwWmH!1&dv9@Seh2izprK|)HpyJ zWxRRGIx~z6SpMHItNsUOvHyWtx>Quoc9@1l{eR$<_}`Up6|S~5T>bwK?$G}McZkan z7iAZ{L2#2jL}rPIY_&;*P4|u2A3hvo(;mP_O97RHM$i`7307Yv;7_+P-26A6_`Gi; zmThUcr+XWI_WVpve2}1ZPtx%2G!eiGX})%^7JjMD247hREbmoDjkyXm`MVVkpVZBI zXd#dLsLm^lx1w>va`L-+101=cNpD5nBomIw(*yT?A^Xk|;l8PHJZhwLL;I*R5IIzx zy6MH>Eu#-Caby-f@$>~cr%eMj?b-Ymjlt}T!+3j%J@3$p1Je)3@SRsG3r#!#nVO@y zgOdh-IZugByYYxKYbKD?`b6LAy3_YY>F6v!kESiHVX5u zE$e2Bb(es?wkPx)i9n0?Rgko`1|mr($aaKqXH2#p+#{$Sxg5p} zwPi+Af~iu!Aun8Y3NI~J1c~EwxM$5uDrk$P4_saf3%4Pc>PhI!YgfP{P>y4hOtl@d)be?=Fhen^I?f2*K)`9ab*v=3^= zDTCv7!WUm_NB7p}MAKD+C)AqK%zIXR=ha|dxP20czxp7We0@eF^=g%}z`DenFJn-nfc;1AEt z;L$UUF-+$anLJIFS}v2sPmgqXz6U8)oO|Rvy#cjGu7npJt>;`)R4E2l0}2fM~U{r zZt}P^5b%^Kc@m;Wz5I%~j7y~mokQ=TqDX8KsJGr&GH1>XDD{Y^alr*BRw_gP z{N0bW3*{Ti?WL&X&m7jUeZH+lRX%KJ5{Kj66#71HrjDB)@x#lm;QPYeTv9s~|FkW{ zSNeOvS@adU4#~$MR})~}eO;_O`iwl-cOI(0jK}Hv&Y-q>0%mK7;<<#&SZs9tpg zh32ox_7Ot3_}-B`ds8T|{BRN;S?AH-_Dclfty6=S zCHt}2E|4zVvXqJ*zb=&jqEDvfnQ?<^a~?Bw8I12$VpfM^AhggK>z{nWU-m`pTWbe; z=U2i$iyEx|P=G65hB1MW6L?te2BDP_S#|piwg;r*-qD6UDef3r$Sh@^KUDbf&JsSn zI|Jth8`9>3s_@}*IVNtf$K3Lxa6jLZruUv=Z@Y$5&r78cC-H%u+rE}AzTblp>)t?* z_6-(NF&cIHwxdpzH0?fj7LS%na`q#I8RX1>{`!76yks1FlGuwQglg!#$&|-Ekmi!k z$mFhM@>EH6zCPs_pZZ}k|L|cY-7Viu0(Koo6}*RSGin6i-BoCdRWZh;J_WbVW{hrC z!kK%jAa3taR19q;y~__{OOrM05L-EPZ&=vegb}Vm$dGz3`3i8``xp0zNGnp+FL2nR$ zEX_VjJO#bvqqibiB{v+)*Iob*-BuVlcn6fm)Z*|(_GsZ`i`jm)L@ig28b3;|cSxVe z*^!|_o0qE8;%hoO_$CRx`qv6}iq){V5;-n%a3B2GF^1RFnDV2o5BWuLTR!%(7^dG! z$A~-&h*tZDtvfb>(t{328F_$hQT3oB+lTUFPsOO=qdyo@<-^_PS@GHmAxg4-(7K?> zXK+vK*_jPf-_C#$tAcQ5rY@Vi{3O>|Fq4m4Awk=Vp0l?{>LJuUo7Op>Mz_*ef|D;x zV9|B~3bPIV$W;DI-WXOFzW$25_K4$DL!Om8QK>wT& zm|&`a9<}Pc>Y_F&8f<)w&Zk3B%5eyH(Z=*qBl*<7chG%&xA4|PJ8<|_4d;E#__c4% zEW39rRvLeTGCr4Kjxkr4H>BCz37&YX@loB^Q2#|b*6PJVwUaA)JyC<<-o{Y*LZTqvc_k7eWdBX7~K?h0-T z%EN|B_O>++j9m8^!Q2;(q*>j1_}93NJf15{&m=FQT59jmXX_~Hhqp*qKpBy?djWIb zB1|)ug1z_BaJ!Z)m)!jrte)ktuArfG*`ZTty&{GznrBS?;+H^0)hRHKyG0K4d%=x> ztpa~ZZM>g!lJ#$D#_MN7G1NqbZ#W3JO`;0*)GYYF2u`u2CrhzAEm3QR%X8!2o@lN2X^c@1uz7$Bu z+M$RDhlgo+h#_;m|25F-&ou%A!MT^YhdwbXQn-)i;N$?6CTlgL4&3_c^>l$ z+xDEr@g4GDV$Ru>f~6gQ$PJ7VuaxxYSdI zEr;#t^=TWZ!o*{2^=c8iTJ#az(EkZT>J!0HgiF}%>88YHVA0J4`UzrHCfy59jmZH}d(X zW4OF zYha%DL4S@CJlYh9RkG(v^YKdTvrebMHpZAAexAtxyUQlboh2l=11w)Y0)tr-?< zkb5zby3Aj|gO@3y-lXq>;WwiNX=8`M?UiF_K*v|m*)p8=dL5+8W;oYR{XCT>EVHJ@ z(~Ricff6{mYB;X39z{PmC!zneTwI#b$xhUb;|oVThY{VEn9Am5Lb=U;Wa79Sd{JCY z7ZmB>^()G>DKj6xslCNI^JMs2wi@G}se#J7a*W^l7wxw1fHH?K!g7OBJj*tL;lJ~E zx6cB8n3P~(>LTzmswCr!4A4(94!2#GV2)v_U~ha8h^Z=#J*x$7HeK+rdluciAqg+L zEXS_Lq2$rDTNqva5M8BD@IQa15z8J=?sM-8etTGoQA6|U_q{j)ciQveMUe^lwDO$5 zz}|K6zv}__-6N?|;c3`$*PSgLu+1^j-jfq{1qQTD9_UlJa|y?u6J z-V!}rE;Yd9)chb=J{MmC%?{4mVobz-EmXzqoBF1|$qepE(+Is?jSfzcYkn zJu1R3nuhn5`rxjF;cV#Lr>J&Gn#=CAn+=ulW#|CCZM8lVR+&%)yKd1ABmMh_?%`u{QbQ(L{xeq^x zi}KeK)8J=(nJ{-*I*wfUjEu@wG17%4#*gBnb{qMII5|+uea51PHLy{$uHbIv;WQVvkTQc-3_tHhNBm6# z)tf*|%pGxvXbD@lG@XqJF@_D=J#csPL+Br4j^gRApbK@~O@tX|4nJI-IUf#mgE8~dOi+Cmok)Eox4%jnBst>&w{QcL#>Pwd78{yXm_7 z#V~*ep~-S8#{7HEZ?63Sy2FRlUAGXUGDSwjtY>mA%V_N2&AW8 z@4yj_rL?2x5ZkFzfhxIr^w%p*n0hc=*yXc|TSXoKYiW5Z>7EWpU+3|4ub;yxryaC> zWD=P?Ob2CC(plqBQ(kwGf#XF-!bkjphRmb5;IS8cc9rE9qs#`^)?D;E`<0vyH-V|C zg%~rk0gt2&=RF2qFn{+MIFzUb`rpklrBR6nw7cPwLuyp;S50UpW=YTGoUBiSF;RjYZ;4wo-;hW5Q+O0Ytir1Aw%t2E$sw@+{@NndF!(*VnFcNAnRthrAzOd)Y zT6|kUE+&58PdvniQ9=LU446KRo+;izB_nCH7+Ep4D~d+UIRgiOml3hf zO7P!oOr!rypy!S{!JE5($yMCTFN9^#FrPcH&1C~k-&DoRyDqa`$q%XKtWmV1%1!tu zVt`CK+KgW^2<`E7qUupV-4)bfzHlawd>Je_|KJy1>wH3OmOsEo-M2(nb{mb^Cc=YV zTd_rM2T4rmfm6?%c}?XQUVZW~E>bYZ=wD5(4*}{M)g(+b%sIzPVbe{=_OU|bJ?D{6SkhmXLby~rDtq`8&lYg|SPQnsYa}wvEkxBOCy}|Gwo@9nw5ntmt z1?Gnj;`>BW;MB5kCl4`60&XCgWn|b6C@|f_uM^;?;I#WN(QfU(r9FDn-3uc_wl^ z#%?*;IwS$U&)y^u<9jhnYY+M7Q_eJWk^6`zvC?KSZkF?dC~Rp1y>GFowJ-+_dL7`Q zLJ&2&od_ef+W5>1JFrJ|fE;jcV@iEilvNysXI0kL=LbL<;Za40fjbzrl&fn}|GV<6@*}Nq9T)F{>e29+~{WhB<7HdI*nih{tJh!{A7rC7%?P zEcozF7dBk60d-*kbC4*+O_|1YEsr9e@gixI|=%<@GTWs#j=U#XOVST zUKr#TEv#(H!08Xvs9CTCEPmPtYTJj=28m;2gq=N?oD#glIxb-@%v}tu*tsY$@&O)Hs_tYx}oou zBl;S9;+oh5$UeCkSl>AQ=gSU$v$ByLb38>o?j9ohnzLZ_gU9&j%3_TBTFHDnq^b9- zY+P{90Y{aH+T|W-g!5AdXFu=9Le*wXs-w7)>oxv_EF&*^{G%ebx|R)B=6F+?eNklI zmi=hhJciq^v4p+(4t)PL33_PDF|OSnfb%~T3ys4w@zJqE)V(DU?EhB6jFrGg4=jVa z@vGU|R72KfnG60h%VDhiAn#H2hRo_MrMmKaP;Q+K5JzO^rh1{}yeVitaTKgJv*4;h zb$o)UH7?5OBbJ#0CTe{k%W!v)H0^Gzm|K z!1`6}w5<`1m?@yw9(TjIsu*ZAI6jE~KG03y&(z<1Wy6=gCN~tqq0(;$s{M$CaqTfY zMy!d9Uq2KCBAbM5wo6I6`XxA-T#IY!#KcR2#JcwN<02#pnxc z_3bn~a8{SSQNBeClxBnRfD~zWDi(}cVnYM}>e8L!LBvIvNa7NPFs%unAop@VYM)<$ zR<)BcsM>-qw3Fc<_dEiLJ(Sx%JH>WvYQN#~R$Oz+wdocFT@ z#-13$H|`l{*HJngjRV7=xLpLzCT_!qBQA8x$9O8y7e=o?tAi|lkySW0u%{W4+(tnK z=d||YuZ@4v*nR~_cBR(4?WI_)b`UIAH{#;kX|$rwlAT#?fwzY_@`pDH==}}$WWAX; zm`O!2KUaI+_;EGugrDq8_9e1@!#{d8=ocL?F_oJsS3*mO2L$9zg|?_5c45&ZJQ3)^ zXO5QOB<2`5o{))o4MVwJZZK8J*#$ZkiQLdymw&yWJXr5uz=g~_w6&&uo7fyK-z5${ z=YON=pk87+r5P0#6~G*q4(MP0MM(4pP^5M@EAA-Zs(z<&NSiyl%|1x%j~S5Zr^-m# zCrxOp^+0bq%Ht(pa%rP=SP(y-w<jYt$Tc)H z8N&mfo8WGZP0;!J2(G0OAin$pb`)NMC$UP{`GE<roKg5Sri5X}>4UR^IM5tOj+x$o;8>@LHy`at~kK35P*&%lnS)4*qn1I{Zv z#zuS?MwVsz&<82r5a88~JEvU{M84A_g+v|{GBmku$X7hr;{Xv_1w?dCGn@JTnE(fc zWkU@I5ahS9VVz~@@23FygT2j&SXI!VuH@^kF}BO1En!GN7+mXo1io9ecwUq~{^>zt z_p<@+d<}>0ywNOH(~f~CFw{Q*%})9?T<>(7BZ<8)wL z>=U@I05D^}1-Tf17tJL!xNXZhOtbdkrhUCAx#vF7dMAOfyBJOK8*$b0Q<$|Z2~SI$ zV(YGbua~jYKz8RLDcVfCefdZu`m6}5%IFHtvi4nD!S-BHZ(%qCGO6&SM6 zl8Yy7MMxYMx%~p+y}zr# z<8W=dS4T7cEPgL9Wm6dnI{7ymR>jE^ll4?*{o$t%-6ke#>_r<%V8 z)!DIZAIS5h#eXqngOIWX@$71F1$z2TvrXI;#d>5d*xIuf@%mmbjM^mGVEAvZKua_f z_5MA^!{sCSXHP$5aU)4^-Y(XhXav36AL8FT6Ie>F6i8)>(-(FldD8YK*yg7}w}g(R zKfc&=SFOV=AvFzeml(hmb7wr!bdFV47NbkpEKt1K$D%EOFPlCAUtC|rq_rckC-pvA zGTIW#xdt~KzLKlOoJS>z44M~}25U$E#Nr{Z@S|ZF-EmQaTvW@#%+h60apn*lX}JNJ z$E%@v`z9PO76a^qq2N(YG5qjIz+LB;vb{bgOlja9D_`Nt|4z=v(r-d^3U^?4+yd}? z+e9+lMgsbz>+pq{DBfK$A3s}((Fb!nTbR<$cE5R;-m*Q|ut zn*qFWtt$V})XTOw3WQamH`%4#HKd~bG2XD-Pt3PC!GusH&>if-RE|H!=)+^E?fsW{ z=~_G7J|Rc^B6c&sm%c2hP78!;E6J2`etdszH%fXpp;&7U!2Zcx$IOO5vyX!-Qu>&A zcr=;t>>#f1`7E6Bc_`mIt{t6qk-8^;yzg(^yiAUgqJ`M7Rf@dYc~LNq2Ef)2Dez{fIln3>L+foF7$SR|9KG@j z*9dmfoXp8wUV4*Y<-0~f`wLh8u~3idi5&#Zqp3vknSk2-i-j$-o`QJDPgZ`mQeflT zg2CRIkfNzY_kS1Q?6-}enUVxQ5@c!A%a>5c)dUZ3O@Q}a3?yT+aroLpu=*XtpV7y` zUOgBC76!xEsmIZ!R+K+#kEg?uv~laUAadw4V5mTc|9Xvd8c8PkW4nm`giTaW;~_Cw zNCxY_mmuK72dEAW;xFXlXv4+RKu=$V8_H^2`;s3oy;%tBn(biTabHr=atgmajmDw1 ze^~#!aWF#cK0EO`ooAL+60f{>j65}^^RM~By>J5wjjKZR`Z<-aZ~Y8A zBDdi1CUN$|-VMdyPT^sxqp`{OA{)`}kA01|Ft(x?&1+cw%{EPZ4|Bmr`!%|aSqAFW z)A9BtRm9e4wszEIxL4XiqRl?Dv7$TSX6I%&-*+4$=u5%E`wLL9a^r+@Ov*0;9ATipBhIBe&%&zWYtDC;`tcNdMXVwHJjP(lEZ`Er3YXt_(7!1 z3@9IM5^})WN#gdvIkz{3SQ($ph00c!2 z;MW01R4a-X-riOtuvbw;&-b}#BAdqUTdg1$rJmyP`umt%Bqf+;YJ|NlkJx3pgzH|t zf!T?MygE_>w=UQWmiwh4`BgLO6BJ&vGlfl8Bd6igAv&1oJ(IKsDDttJMsf3XN8!v24PJRfg^nAh%BvdN!91DJfNn3G z?_M?NQJ796$CsmNSsS01?1#D5NoW)$MTgk8z;8=UTD`&&u1u=N&sPgjF7P<4c916F zZ$_Z@P!1|?LcIR97#&;2v(Fm~iRAVU)VZ4ulkEba($o;u)ZM7f$sstq_5(H9Ed$fn z>}OYET-lizGrZ8U3NKjvV&_vN__L6G!uu`?yr|&?33QC*7D6dZTU-rS{tf!FtWCMq zY#E-lq=r44x)k>5rSN{Sy{u^DHndR}p(^Jj_$6&e?z`?S8KzSwAho~Pt*&6)Z@eFD zXWxO7Z|dMqsQ_r*4fy-v1^OE8f;M>*`fJ)3fyS>t5MJ~ZXAOCQasE=M_2mk#&1_|g zLqD*-OWBb2V8h^?z8-RG`iS#(aq3%rlW>X6@IA2+w?#;B`Dd@lw|Q+)tNQ|62lYFN zOg}7{7l(%x3h+~vIx}D3g+F6=LubZ0T>K`Mc$n`KHeH;CO%>Pi!Pv*>e6JYC>cr4B zDPtg1Js7IJXK>!_2e(`A;NsJTxTf;mZf6Pc0`h7}+Ny`>tQpH)^@oN>o_V)m+opu*;?!JPQ z9R={|=>$@@N}adecmopJ63ne2oVM!t@V@u5EHLaOxOulTd$k~bxPJu(r5|B_XLR{; z<6N}OzKz?Cz9(WAvhj)74ZLwR3uC{AV#Xg!{8hIWYY&v+c>e|-y3c?;$qgH<|0%*x z+EO%W_9L<_O@x2!kKht3|6=jxc_=kAk+-fk=ZjZ;hO(@k+&fJlmp<9U``ZuV{U`CX zPcx0Ce!R(EZ#cz*U-e=KD4+-d`*VX zJ?A$JYPB9#wUs5WOeIwX0{LqNVUmc*_1g&*V9`Ei*lJaNVgl}t;a!bF}wo-%KhSN4DqVWrir+4&hVm_Q__L^Np6DFMt3`Uq)yHG;yK*l`W?q5Un)keLk^}7dM6Zk#;ZKK=j1+? zFk?N75^sR^6UCsh!v&pR?10%PXYxZ1D(E-o6J~eX(c5|2RJ_<3M3?7N8EtiZILQHu z%EUl-p&vh}eG8g`X3)hO#-nzHGgrVL7<#A<8&;km(z5+v-BAQT&Yz^}sXyS?t!Z>% z{Z|x5ZCw!himYv_f8b!0-;*PtqEH?c)`P#mbOynI%&-Ic8 z?{jdwXB&%?eTe-jd+YZ;iiE;#Zz1`BGnbe$28OL^#L0#k#M4`b%$@Ee*wAmnr&svk zYTsy_T`oX{6_>~a5oap@Z9W7%o=*MRd)WBGLB6isgr-~GgJQ;Mz&)y`=8Py5(L23N8@=W{@5eT_0 zo1pEP=%9u?3S17HhKsT~+#v8c`*I=^C%%<}0Q)!W+-^^NzH1nN@TZtWPfrj^#;s+S zc1rS>rBU4fZVyY=6XQkmtnu&m3AlatEn&6#3ABDXfLHa^$(6tfaB9d0e6+k6zrLGlu z@MCHH;~*zCr)nua)k;S59b350nw>(wRr-8i$4Hu2@D#1hckz$=WQFJb5qvzupuQ** zrcD?i;}&M)nIkGpYIi0+Yx)ftmNHyzZUWvdxj?3cok1mC;MUTmcrR!L8>=RP8`Si0 z>EpBbVQMK$2uOl|8JXIoJq#^u}Qw^K0xfJ!j^}&~K0xXJm;PnRCXmoEH#0S~% zLltX@f6Q;zvSZN4ArZ`On!U!=a+3J(+bUs6y$gHR;|<~M!(dbX1?JSX4wv|}v&Vn( z$d_k(P<49_Q<;5vQ2*FLZRd%T5k)H0`*u41_R10dZjiwvdk5K8mq{>p$`huUI+Cv` zc!&dAMp283RKCHX2fqb23mrx|u_T+3T+(3&G+$w8beY4fh+5b+$mjeEk>bvFJAo9n z3$InW!O&OGf*c#CVc;77{rqGoKYk+>WV?G&)6bq?oD@3fU$4NAW<%_B z&xumsHM>~$&?I_Gu^eTNpGK#nrF`yL5ngzu7*ECT5Xyd)QgM6u*}LPpo$UdT zxT{1n{;uTGvMS{EsNd}3sv|JcY#aVvP5JdbzI3_jE>dg9(D%hZn2dp zyy3-Xygh``nn`@I$UfF^J{Hf(EMmsB9H*^Sz`n&9DB&6eVy6>uPwWuBW}tw7IPe%G zJ-VT3f-UVeawe-or=Xda7T>((IP^^`7CNQO=Z_ccq|g0Az`Ls*4o|n{hqm29*@cQ+ zL3<4Sc0db?_PW#cW4hSf$sKg<3{RFL^x}sm4a05P9^6oKe*M-SQJg+mR-i-`xcqU3 zrlLQv;p96qda)LD*gll`o-Y%w$Zvpif*kz2N*rfiSH@kj69xL4(%|17P3mrW2Gn1j z!l61tXmpqT-FMOBaA4hJ+?4zw%b#gTSI3){~|4HJH=D&pbGhRUJ_FTHfdb2S0RupK@b}>tBp`1)-L^S_zI)OrTy|tWj>^+UX|)s*6rwojUkO5(lmxr4Cc>@h8uVT7 zdip%F4jx@DWs8MrB=z7H{yJQauG7~C`|E8WSW^I2FMA;4Lkec}q*6WgHV7TOLFx3n za`6^b{M=OwD!J*j=yMh=EA_@>Z*u5!%gs2j!Bvu{P_`figMUfTKUTU_E^s3|HG3z?bW-Byb`&s)l@D;OojKmx+X%BXZ`r;&tqYCP zd3^UfFJ4#hjt?uFN%MPU=p;W6w*OWgehl-no1itBKmGOqQX~d_^zy%O@0d*bYf3AG zzmcJGHwSypY)9P5U!r`S2pEl27S^461`j_7>?UkA;2*8pLELi$EL^aW%~<2a?yt3g z4LBC=Xmmhh{z@Dt`5YH`C4on~8h0OGgG2Lba7N`sRO|l57EgRfKA$Y%`#z1ujvu~s zw83Kj&2%?jy4-_mgY)%dM{(X6{hGKX=74amGH;E`!Qsub1j2<|1$NWj1vjfEVEOzm za!Gn0E)Kj5@)s20r^7;0og9JDa=hOEpf9_4O&-?U?g6vn^DyW2Win8t$qyzhMZuLF zXyp}%vR~uqo-Z7#4lQ9ae~&`M$j>Zctv~n%2GEji4shX0n{dz9{W$Gl0xnmrBu@k@ z@YkS^bxYm>z9stwc7}PuPrn{enLe6lT$};=;T`OygB?^eGqD1 zPZGyS@-B;V%qU(D1|{Qoil#bCIy#1)Kh%md8q`?Xie1pZzL;u|1FMF>QsrmmZQJy_d?^ zIC7a0k8=Nm7RCv@#lHYzk3DAX*Gl2p;Tm|B^n$FqI*d;~k;zgbN=WuHeGGSe2wRuy z;J4P(#B|&fjPK5YU0+pTn$0J$1r1N z1@7$oMn0t9VSh)&gIvfLa62f=jV+sSw%7*t{%;ASdpDBDxyx{tM-fU6`Z2#PnvX)4 ze&ORwZBS@5o#&;BbGs@Hu39g~qNUsM*9|AOc=0)|DmQ}LseJ@TD^I>&wFm1C_|m-# z@1RuMI(WHs6MB6fMZdmMJ@_DQJ*z9?>{6+X-ymj>$YyK-uCw%e( zAF-c;fabCEVpA;bAJpl7e3-{`{}y9zsR~`}ssN*eiELZ)8z#XR@6Qv$K*$n2TKrOI z{P`h9j`@fgi`($+M|IkL+7T|b#}9H{3xvnCGeCx3g=S-O47Q4(rnCSqd@F>4HFJ2b zVmvzZjzcS%c=~LR1HZIB5uImCqmtQK3~n;unvybbtjmNRiapGNdb5c-*#Svy?M$D< zP5haZAjT%Tq}o&W<84(la*!A!3T17I3=O??f+%cQyI*HsviyN@sKSj{|D z-lH(BWXeIW9Knr_L2iG;2u@GCF!vif@X4|LAph1M+!|Bydg%gT<-TD&bE^R~bp?Uo zPdu4YoKGel?h;5XJdRzip-Remwu?UGg||5@;!JL65ad@!ZCd(EFxDP;fE} z1-rs|O8+WY6=BZBzb}Taa%q}q(~PsiLRnvVHB1djfQ;LHq&HkkFgolfOuF|1LLJND zcuz4tE4C0cX_`U#d@Ed)>_#h%3}HfJBCJj;gWj*#@T`?JU6CzGTW&RwM{N$EIme7P zS`R+=aq0*x{J9rnB8T(-s&p(KT(>Qyljx-Qy)d>wm0lIMq8nBz(GjmI;A`qQp5}7` zu74?lp*!wEsNN-Fps<<$J!FOUx9);Rp&41f=s2_u%%D>qR6u;~9{f?Ag-aX@*aQ0* zt|Gc+@OeNxI@GV6h>yR3sWA&_;?1bRUhDu~Y#POX{EFsl6rv!ib_T!GuEIx}20*8n zE_@v}72|cnAUekt&qn>hTi@=IOJeFYw8Ii=I`wF$damsX-P>UHPk}CS9WC@^jclgE zTL^jnlbm%`#QWB_V2IT^Y7xna&v->@5Uq&@^`599sy*nvv%;_q!AOJl;gS`HNb=ES zxTj?Wd*+WrT5kr?Q46Sy$!#*vya>z!&B$K2S@_pAh0J*E4#Q?t@^`h$-0JyuRDIFKUYK8jomhtE ziQ>#YvXX988BTk{${<7aF5Y;fMyI9^-nHkdqlo7{*b(H(uW!46)dn?!P{;dlZ~8lw zGTK6YgtlyzdNg%Vc?T8WKf&``M%4Je9rl0w4l3K05#6AfO!Txm-HFxGzAeA&5Dvc_sNQ8!ct(_r?lB7tX!4N`4nTqB?X%I~`XDH!Y z68h|GZDUcCkfF>Xp(0e~XW#ehd7X2gbN+#A?;rMF>ss$=DRSClais6nQ~K7~ zmYK6ZhVEXdi)AD1NtNGn;`r7W<8GhkhFo9H7@w4-4OjEYHz`1ch50mftSXTap$;ccV+4$$V5u3P$`STLql8()So?(ov}W z_N|bv)$%0QegzWKNlj#Q%_cf@Lmkl-c&?N&;hg2~QrdOXgsfX)NAp*o<95u~rc1sb zBD$GlahP5u{TOzT8A#ks-lY~$rKfX2>ZKy%f7+Jj$I2j|I1=A~X{LS8@6wOEGRU*I zUv%$N3%aZ2HCf)ML@%r^qCpZXh)3W)l6f?e2Hq|wn_d5kCV>-uqvJzEI)_sE%d?m% zq1~L+TXBe^mW==4Mea>e1YM{q=#fef(!0tM_-cM3iD%CeiG{DYqPLmcE~sN%J_h52 z+8x+*wU6^^QKFNZ7UAgGW64l$393~l57t*-lhx}D7*<&p7S8Mt?T@+6&@r0ut@9?4 zt&b$^=3JtkbC%oQe1YCL7f7xMK1v0nz6>>Y*I2{a8rd{N~y;hel)0?af4To*Ad-lYnAM*NDulWn|QoZ0hTr zN!+rd$g`bGnKLc`Vz;*8>FQB%=)n~_dD|Jr(aBh>rDFJ_bHUcnbr zLh5@`sH%G)jgN_=hwQ{Sr)7=w*{v#Wu4Ra(jBP+?c6c>S$SxCD-M$nhDT1A&HE8xYO zjnvR;7E`7$8P|G#BNDTt>DAvlbk8>fx?2U5$VdieJ10W(i)0U5ic5-xlYyjb~5Af{pxb>;^-g`70HuEUE? zOOQsK`;Pk@Aw^ft&cxv1+i>K&jnus<2d&I6G9eBIz%BVhs{1BkLt8V|EPO&7KRYu+ z48Jln4t*2q>210xv0Ze&_yIlAoP>D4f}w&U(_|b&w_eDi<%hOlp5g;0 zOwiul6#fA}??uFaz#cAo8VWOgEz#3^PE*?2=m^%4rrDdInU6YEy|$D-Tez5ueC7!X zz%;0<&vtq>rtyGn<}Ps68j&2MQP@SOuv66)B8__mA{51j`3MZtFt|6 z$ptAg+|z_CS8ybm-E*)u{T;K|#~$XyGeqmqT3YQ|DVqP@7=w>TaQO$Xap%RCk#jD( zutrr9llK;J=8pMTr;`hvwz@RkI)$7RwAv1~nOwVflIW`GDf(mC63{Lhf)<||h~+TK zc`Zs{(C!r-_HzT|oD0IkGST4nE{zT>G3LL<9m7#-%49|K0{G=#$7w}nlJ!s3sGX(` z#<+#Rs$K;wK^wUI&K(QBuOu4ZVzAruAzgnw4c*Mjxk|0GG(Tt`_3?T{H6`bfH(HbE z&uSmynDUF0>jH9E&4YZYkEgOG7O3gwt2ByswU=-{ z8N2ATEN_~1y_PvV+*Qzt4uiL@mT>&5II`DfK**0=yb)$f8{P+indKNzn4`$4r76;KWNGhLaY~5>gm>z$s3{N#L z(LkAG6qWB~g7E?!ckdz5nm!$G{TN411lbecGh0YwJ1;UAB1wwk>q!aGr{XJfnBjVx zV10xM^sFrdyh~w85Ka7aJL-X3J;B@a6)H}2rx{cjYv3dn_ z)#4(w&p1JzCAD(Lx|_*{nl3J_aVMOUPlRO;)1jh%qM&(+#j~45)F~ndznczWS1Hvo zlN<8Mj1kSGOTU25cVA1-&v-(0|9BFwU9Mab>Vs0`J!*972h-AHi1z}vpxhs4H2m%X zx1y7X)2#zsd7cmP>9|b?9*v|LujkS{DM2@XVI}ALRhR6w6UQ^>-cV=Tp~%1T;kMk! z;zIrQk|(_$iNlCM z#y2jCtnHdk$~PELlQSDh{M};u<;WTO_U9<9TRN7ecEw^^VuG_m9eF&MOr9vX(8#ELxbJ2TQSzqT z6QSqcohr;Mak|);Ar5-2gXDXcHhKMgU#-XJQto8mJlyrx9~{O?qmfrJ9T>Et^PC%) z9X-+Hi9G?isWtSLu^C-(>;|n1=WB1M#&W06o58M4+^cyKBhT)K<$z<;E3uN&aH~KO707h`j=~BT@ z8Z>k)wz7;mcXf*#dKV#5{Bg}(T@8!XW}w?w zFJZVm$-JQ#Xn~;bWqfcA-3aF1jbhDGt$`7WlHd?>*R7nY}ESmSDq#6}aNadiLSVF>HgU9V>j#1Vka7>x6qctSa@Tffa}~pP#ulcP>?k$+AxKZYxyByYk`|GSk_eksla=MMg*JSTf)JpYBQ&Ej+v2i#-`yh^bw2^H5B@zVbWBBfc25iHj%UCE= zN?*Lm1d*-+`~2DwoUI;&x6EEc@WXqI*?Ylwn-#A8M90X za_V0Psrx%IF4B*>sLG+18fUZN&miOHJQbf`H)5x%n$0t%b^y#d!+>#1TKY0InF+k=j~0 zFuN3vaTR%3_|^!;31ZM8+6PvDPMWkh%Hk>~cjVDKpW-qn&!tKh-*dBWbT{fqq;-ggB z(U=LY@Aa62|Gea$UKj3+%VKcOm{X{oX2&P;3fMXJGLcz31gBmn7}X^KpTwLoxZ4z} zmOlmirfA$VITGq7&tr`~cTu#byr&=2eLz zb}jlvw$?O~h6hPFLW`23-uI+9RspJ?OyXLl?I5V~8vNN($6f1fN9lh$;hlpd{Fpx- z-L6Ye&2VQ_d*p_3tA&s!=PB5wlMS~%Q~EkzlHG819$Azk!as|Dk{1hHx$3ZVE`N#+ z|9!I*U#zm94r`7e$Hgn)WY|{ra&Zqiepv-9!>=>t^Y#nh)O^vHDOu$A@l0a+atnEA zQ9_$W7-H@B#hhvNM$k6j#XWY}$xShrn|fm z{VTv@?``_kwU3GV5CFGloAHm_597AXEvUN00B-vx!2Tvd1nQN_%s+kEe+s0<1(pSCYa`z4r04@Hr^Y11GCJHMYEH~&?~FoSeJYYhqHmn zDB(N}Px(jStXyB>+z>$Qv{m`#6$*?)p9QC}GmAFlujcuND4hC869SL7GPU;hq-;SN z89Fo$O&YUd%Hj~NVelB%-tvZ4_k9?l9112gf70t&X;5)L7XmxyV3pP?!XL@Q>P?kk z`6!1Zz50aZUwp}@VSPl=Zy4OqoP&#OU%*UxJKp;3U5N4cB-&!6!R~1v&;OlvoBbgS zUIl(){EkzM&Dv+_I0Pj@r%DGcN8KTjjXfk`yb7D6D+isQuYz&7FQ_!7(#& z3udKYs0_@c-Od+q>EZ+$uv83F1+doV>}T8)Xu*6K(g$bG)X)L1Q(WzgC^#E(mP$pJ zl7oiBX!V*F(sAVl`4hDpJbzWO0sYF&qRTv*=!tl zM}o}>xJIJmW8uiyXfREi2vG8gF7+%X4u@pu*}s}t_;e>x87D?`R*!`bGd!`xyhe0( zZa7TyPNWrD^Xcln>BKeS0cm;KLM*%!xrtF4R598JEXo(aFp>y?fe)$Df;ev7DnA?? zIf7*T(4<4xlyfRJltvA!5&3D9a#jJVqO~SPFyDU+J$So~X)Cz{D{sx>9o+;&$kwYw zwn1lSchvUeqr6G{rumWGZHqeD9k$Ybl4w=3FkRv6{)`=bC#IpzB zIJ1uUd{E_oXNFQwV-+m%&qJqSuect$mGEI@2`P$|VI}OZlI^DgAZAVp$T(4$;Z}kg z--56*l4#0ut}j21cA zUx9bcGssDSXb({0h`fF_)O`#?yUk71Wp_RK+5MZ&`g}yxx2>0xU0sO-+pWm?br$@m zeY0Uzu@ZPQjkt%8hq*ad$%`6qB4%#MeiwSG*r-HM-@X@Cy^6$xd@DUPcnd-s^;pL_ zX*k(Gj`u#91-eDL{LXJv@ljbkvFy_14_DlwMlMtF<7(mk-{hlgVmekR72s6q^XOHw z4^~hMbUE|8)@t`hJYHZ2caxpD-7YOmc4Gz6ul2_Py+ZD~gEIFs68Pl)y}Y|1G$_1a zfMUjS-F98@T*889doiBdI|oet(&*CD zrJ_DlCCq(v1zvyE$6amm?05ZJw5z@nm2C1!NW@p0=j}cqYvw@Q{zTjSQ}P&gr09{W zFHCqx>0?B5AeFl8&jr&99M0DH!8NL?@DnE};Q_%cQoK){f75fB7EIK|&s#O|;K+R_ z6E_z8s}|u~mq;jIe}ic{kP4$sW3XhxOz_gq$Dx+TVCBm|_`PTq++5jCt=-DVK#wJq zUljUov>SI^?HPAEeLv{UO~$mFb70Am_e}oqEHbbeaK2a#S<)xTPaI)S#qV~~^%_@s z`=s?mcT+lf#9qMS{teXaR-r%&3IqO|BP2wp3YjcV-1ciW^q(pupANsED<*v69vn!5 z5KqAF%t$KdmMGet_kqa|kA>vfo%Eq^7J3zoB+6DVnb1+iM5V|W3{A$u&GSdl+e8b9 z>0$WCK@uCLl)^jLIcQa2KuL)lSfyB_Ysq1n({zg@HrRmY=6QGdc8)T^_b0^JSZ!5!bSD_6zmucdAB^#le?GbSOdk_YJ%h*(ab&v0 zagmcyPtUA!p^nR+!K-_!7TeSuq3%i)WaJ4Z*|;p?m{vz73TBr`m)ADTxMuol_Hv@u?TM~S|I)X64#2H{ z0;sx57?FKkPuH}J!iZOoiI-YCz1Z48T+#+HyF-i@RXwu)q;iE(ujdHUdXG31GiZ2e z46F;k!PJ<1A$xO$aGcH7d{<~BNUoQG;I2+|x2OQq4KwlH<|ioHo`Z>fOQ0=MiD9)r z(o++Yz~X>CG=zVJ*E+sr#z#w-F^fUXgc9gz{z??a--jYIAyA9m!?)Mf;G!>*a4P?c z=u_1ZSXj897Xl&a)4w^Ob>}nK6*hxmSr%>)?!>>hC2>QAfTEIJ(ZYSD2tF8U@F`&$ z{Pwor)PL_fa%3h8<2)we-hdIX=-hZroFz*vMvL>3SLCtk?pdgLoB(Sl)H4B6iCA#A zQXq?ul56h$)a83UhOS-?cINkJntwi?`cg->pNOLa%Yw-hIY0g%F^*20>rE7&W5^@@!44=zAYelvk;c6kl%`Wnqa9k3^&>y@hl8^O9ItxRFFNKxNlc z*xz@TT6|xE$=e*@?xCS@;&BRHtDc4Z&tr&buNxf{>h&$PB%E@n94c>%s9DiE&>9#9 zdIh6-e(qyPTd|h;d1nsxWX6N-m3*+DQ%J@$L8yOkJpK6A6i+s8CeQ9SqeZF)+^$yP z*y(5JquC#D^sDpKI%^VcND3B$8_Y!;|E`7>VfIMfbArx>WEj6Efs|F4Fn{--pur`h zU}yLl%AATO0ha|r#Onw=8!isg5nX&hucnRcS66HG)GF?hVJtM6E+ub%@58vlRb*y~ zD!nq8LP>N1s+GsX{#Jc>VBHS`VM=7a{2Huz%j4w1A=GeF2JG>RMSWKz{NouM9WCnqhTB^MV@WHblXl&7)!5P*qaI$iR<}7qMg2Bby1iYS86pMNhaD z(rjZxUS>rk?BD8&67Pgr|Gu-x*m4mQRhdD`-CSVCos~4f_b3^0;W!!4eu66xKY_Tp ziNqlJ3jH}-76w-*LA_Qr)fPznsd)yBlf66E-!H>28Z%Jx?Qmc>r_hQQbI85`BYttt zJ`{gl$AnGUPf|lK5cd%oL`_8pR3%)&^s*-&_SXW>3}fEwzyrGKa0n?}VvA(OTT-$n zm?%2rgOkHD-bg)*&gbJrKQNQ1EY&1hSEqsgR(UEC#4SyoCeXM;6*mYW9+lq@(@)t7 z@F%92>_=^!-KvgNGY>;^{xQ*}<%>zL|9lMUltA}!Z@7v5s-$!EexR!k63IKjd)O;M zm&hLKwS{21@tLIl)($*k?Ztm-@#Ia_q%eM~6ioeLO#(&-(HG|@jnvg#4JY2eQi+Ii% z3G$8lV5j_@zBxXRD;ZQ1LK~#mKD$`>7f|KktBD`q%R=m?Y*Y@J!30LQ(Mv4kv1U+v^@nCnJi%z_Z6(G%MG$SR#m?AKkCBe$l=Z_sA!-lWH+kd7~jqi38mz}3J1ra!W<$CC^9tXSn<=D45GVnV%7eC#+O7bRl z(UHFo`!xto zi#NQe z{@k*BOyBsHrYoLATkB}LyCPNSm&2e3HJI2SJcGjulsZL}k_<5e<{NO2&AF(9)Rf+Ne8bU{j<^ zcC-}GS$@q_fA9~Tdb61prhF!AJ_o?#1~+Ckm1WXB63h^i+W_Ub2K zy|XFwyB$EsuidyOY=HQ<>?9V;tEk@gmry^^i=Vtvg6$H!gYFIIx!`e$a8X5t-Sc)h zUnvM4GAeT6{LUP3v}?shmE!EsZf!6=@{&%h?%|y4?m$|N0Ua%61r~QL@Z&E9eqrwv z8rnUH-g2seDe~(<^1VRDV27wrxCl2{HKDkcHeRY354pDzK(VNo+a4Lq1ugna^yd|G zZL<#Y#=S|j=G0+u%JsxK=h}!R5#f^Q4;cEkNLcL9Pv1AHp~v4Ik!7YdG>!Aau3`GH zHA4^`HKsFTS2UvUD;G$59}1n12+Q7 zfRPn#{T2hQ`_IubPj_J89Mm0)!@m*fP^UH@+xr$#2altma59I|w|>-KFc5w1j;8Ih zWALV9d{JI!& zqvRy-kiClAvA^0zB$z`LY!||{$vYv|l+s|uFXY;uI}q9ykIz?&conbTXgYobH8RN+ zEog`#xi>nv`Py@6L(oU^ZF4m>PwOY%{Rv<*S}?W?*zDwlPMlC}j~!{g%#4wZG%l{3 zHm-_<%^Up4#m|Y1?Xfie|A6Z1{{qz&{|&0!ekqJ%4_Ij1W?PK5U6%V0B2GrJrn9cG zCJySh)#+-sjz1Wd-9HPq&M1M)*DpZuy*Ad5>8EL-YOLY=iMIa*`jB*CcGC7`q4 zj1O~kWcv>;WrKY~`TO%O+ZYerC6{F)@Vkv7`{|PeZ?aO@6yj;X_xf()9pld+bV%{N zPW^j+%!SLy77m7|v}~HUWFiT*Gq{_Q9H} zt?xQU3NlniL*@Qt-uze_-nV0(QzJwM((O7g0&o0A`t%@&Qf0@UZj+-@N7}uitCO>+4Ts zUxW@}@9j%x@Aj9$sVgJduUYB*s#+;n!fqkAG%}Enl)%ZI@@&W#86p5@>}(;uw_s?n zuqs5J-&FSiW^5Fa$RB*d9bddqc6$_`XI{Zu1Y7Y=-<=^#AU7_h%;Wphr?c})R`I{G zn)&*sqpWn&a#)v}#Ak|2vBOL*fT%)=RhIaK+H?Z@bwx0==$*r3Lsi*`$*pw7ffaZm z$CRBYD!}r!$6)fbdg!%21XaIRp%ib-mp|DDkFUMM-KSLfdZ#Gh{I}wr=eOY4M?2ah z41rnbF=Q^7HOcwQ+O#Ac)O zKm>^W^xwh0UC1_lDkiP%_Jk{Vo>hFHbL=tht1zwGbgn;x3Wc;LgkSCrC zKMy^I4WpjH`NLB|=a>}V^LYsD-aZTH_xM^(P8W5gJ@6liEy6mM|9INeAj9yW@&D^- zM*n)+|EEy3rYs{mb6uzm<;a1~8jMsd!_9Z4(PG9iQPSyEWM$GZ?v6%12Ro~Y*2ip& z?GC}}U0U!<-WE)R(WLSKPTC^_9lQbWThR(`i6m0;en&3J4x>J^x5nk5*#S)E$sdOE+jLukZq)` zSiJYh{9beaZ+_YTnV~3*Ej*1g@7Nru;&9nJsPsI5jsX*=&EhN82MG%WXFK|jT z!}RnF2D>kl+liv=uAzCr8a9)9GYjm_uOv~b0{(u{B50laj{aNd!N0IXVi@)c;x0Ue zxKx%I+a<(1|4qT*hZpgR@g}A*z=i*KBN`jV7c%yijTmn{3xfSRAkpd<(kagDfDwn! zz^GPbR0W3CRq-!QrxT^_D)937OyXB(V&^-3P^cQsPJZr##+RqkN0n>1ErV7wN0wJd6RKZ@^F0)DO8dC=F~frc4TjK9}iP?^z<>rIb=RrVcM+}^uE6g^W zJWj<^uTmO)k_0L_kv=muUhj<|l&fBZWl2W-7yA>S*0YyRSuDj`Cm)91Q%3yFUKb`b zuO1ajGXSn%q($}!TQ+Cn+Hcdz>y7t_!=*92gP#Gv>+L6|$u=9CCtt%_PsFQpPxDn* z8XzRl4qLaypoyg=H0C{~d$T#Pl{CUzxgsFy`4X#V5xV+{EJH|Pp4|}bMBsoJZ%*K7dh0Dtw|#G#u9- z4`cme=yJDDAiL3;blh`fS8wIXG_>P4qYQs_Lk8v9>D$g)JL7c9MXZ*f5=pfJ=Fsls1+1Voj98%sa-qb-)F78Gzy`3o1qRz^G_(o>RG!V@e4Z_>6W_QeLfq?cgd`0#R z>>8C0LyPuv#jEUabdkMa;dnLJ`TZ92xa4%rc9F^OV6-x?ZYPB`>n=k6(k_~vQBMyv z3FFFQNj^wxh_;GPg)u$xRLpb_xPKqZ^YVej=GQ-*aMXtQv~&@Zj%IS?(P9$w+<`^E z2Q)Z7gBkywVHZnU^C`c*S(hkJ;+L=kZ0I=RSS7}fa_gn%vVRfPjN`=WzASIGLkPM} zeEGZ13AAvmFjsd^48Cu%q_bZuvW|~8;ucPokGgmT4!xTPsvj3K;;|dahjvq%v)q!6 z>5PP(Hy6U*2iM?!rU^*#+MJwD0|xmNkW|rwa6io-B3zW9W0f%5#hRgZNOG;5%KVV!0W#+KMrt8h1QIh> znJv3fL0jtv*zxS*x)WPdX!lVB>zsW4qkS7AGuw*w9NCS7;~nZ|e0>I*3(tUIVK($` zu3^=KV_ESzOF$~+6&pWhJ-=$92((`hApz%mne0azX2~;OL8Dg?{MJ!NsXj?QZucNb ztX;}?a9OC^^$+)DD4BUDuHtR@rEsL^ zXE)ZsOzntOopSkcc#(XYym%MDUS4~Y4jp|%Csc1VJ9u&*taA1S&4+#9t00d{v0qPx0UAx0=HgB^*9lv4)4Zo^X=Pf^z zJ9NdMZoTIKTiNZ&Ic)k&B7!}+_~uujUv!)1)>;F3dyOADTY>pENZl)qNj%+UGQuAG z$kbM4_7!)OCd4?AL-J?vhrz14X6;fkb$EccaawG4?RpI9@T|k_XY$#Z&q}!UcdYnj z{sFjmyn~s4@k=~hU5LvsWZ{>$)%^1_v3$GQV$>CX#b>x}U=3^~@a+$O8tndq`}jhm z&O+%0eya~bt?4SDULwUNiwWUY4_h|d{TO^2EyV7LP^!~Ayoyy+U4pzwCfoeM&1_$6 zI0}^iV#D1{u)*Lh^y^>XN0*GoH9p7LyW3RBxTASkpd|^J>m}H(v*u>kOZL&`I>Jv~ zy%5%&`OLrYttL7)-&nmGbvCPgiCN?gb+cjXU^M%;g)>bY;>SE#&z8*oKxa)wTqsmqgDjEn8|;!GPa7^LQAS333Ut|VHS?Ou?FFT}6Ym(oG}-A_40OS+G|Jif8+ z_WL+=GxR{K^gfgok%yggBY6|MKDzdG489f8$B(1#g9~SiL{m9}tbz%P{28 zHFm;+%kbqr8BsLe|BWz;|3L_m|3Mh3j<|Y!5LXZXK^F1<(>q3iO5uTH|Npo$Zsb?f zZAC_2vu({oM&N0s&=nyehn+)AlGAv)`m!)Bvf<%^aRK{1;wgB@=fIWFPms2D2}~3c z!4ef^T<&MVCvH^5p2L%%==&d15oO2Tp5H(mFFnMshmPXdX@y*`Xen;*E5)AQsbt8j zye66}fQ^B-m`3ld5aHXYCFEVTGzA)lB z4`JLEU$Rx^By%m(o=n$w2IKvu*dHBF{~Ar9`6m`rAL$=-T8#?yowLOC5gg&;pMpA( z#T)tAwR*G+xWrayh}+W$ zh8lKoS@k`B88sHLKaN_8M>3tP7_1+72s4*^(@m!}z_p_tTKatO$Wbp?t02W*%ZtXf z7G(@}UId}I4o)>go*I2i1^MMFBc-tz%eI-bjzLR+=`6u*UUk&B>o^JQ{fo=v^+EUM zF`Skw&AVJFB$r#TXBq^~ za04U#MC#Qu4`%*zW{wF)Btdiv#GKg;KESjy zr6Eb!f3cpPiYs6yHb-LV$FuNRR2pWxCc*Z*PNusZSgL+BgDRY9;ns+4L+u-v=oLvd zc6qDP%Cb zBJRkFs;y6dNOuZL<6x%*@BhpfwWWqh_33QdyG)pfMNUEUD>LESp}%zd#?xfl(OY!? zd=oM?^)&tz^izRi0(^B4LC?AEbndz+&hgeIau&v+wRIhNl_3FB-^!sya}#8AJ}1+) zPLPVqBbZdB#Oej6LsZ*({MwO^&c9c{+MZqTedjWIXM!)>KPZfqi&Hpq))1r)SW}zC zV91*p0QcUeVp(_+{A5*$pg0D1xPRtG?wb6GF(eN^{3V(`X5exE9IcYp6g=trP2F%j z%iY?8dv8U8q>l-P@1Dq?=SRby_kQ$i@Npa+tc!Q9G%-&X+2B~`HoCv1h~8=3PqG?+ zlJ%0gxP5sXlP!~vQp!1`Z=f7LNlJ1e^GxC4@@Slo0||Im8Ra6dGZV{v}vpatPCYy#*ODIkXp8pzw?adUK~Dl*Px9B@I0O*pNg5B~oZH zZpN9@63FJ*%k)E-HWY4Qxf6#kGNO-N=;9I!I5Mx0%=(rBUY4RE8ipFNRQ#dWN+K6E!GxnPA#>4QyjysQ5uNZEtyVZw=bH}X-;Ym3anEtG zZf237rC%6y-b52ODGkBZ%Nlgmn?(5Ls?PXG+d;YIJUDyv4ospcxIY>3dafz z_-Qlq$#gbN{pStV`7X3>8bHWkD=n~VC9_h5S^xT#q{4O`v>!2slb53K@%14{Ff)Y2 z2V*chFp17I@1(OIUt;VvyV4G+CgyOs zKm^a+o5tm?9OCjOm(!c;!qG6Xor+Xu)^>`YA+2}EA#=f)*q=B7V$&;O?J_m^na<$R z+z7Ns!#TR})`1DdX5X8u+6% zmbi^I1ucF#=C7a2HRaqU3GJKUo!}DQ<)zqxfdc5pC>l6zCmC{6fys-CiPwZMvR)w% z2fH1?Lj4jI92%e(uC4&b*$s^F2o{p-#kl{CEa^C&i$DFh;H|#7Si35n{{6NY!bS>t z>1%&XSiTw}%!GKq#B9{xqzP$3$LaYS#-MUxH*{pS(z|*$XsP-+{OhfQt(sbJ>NIKRv_bSRM1y{294hL0>`zBpu5r$@^(ztxS|@&XUm{P1A&jL6&Poy?bP$OE-3bo!)Fa!nG5!JVcb0*azVxi zc4 zn^kp(-pzKvrYs|nn<9rol|po#WfK*j70cP}GNTg~*yH>Ow&3us0_KGkVx>eBst)CH z1}k#8151ul_FN(D#9`u)egvRPf?rd74Cy)prAM>8|12 z@AF{hBun@iG5Gr8ch1-2CU_MmV_1GJ&UNUd>tsCH750^MPIVSEM+o89j7ZcMjRBE3 zLvp=QgBAxb1f|QmSl%EF5^@(zQmZa9j{cooNKZJt7SrOsohZTT9Glv2K2q#+A-`J2 zrwx5)ekaY28sL?&9@1i@aPy;Aos!ZaQA&H7(r?v`_Ri{e96JLwW>Y>DR`%{*I?KNfcKr zpP*i$Q}Mtp7f_v-3lo>Kf*^JpE=n>54R#xzU;UDPnAt6Pq12*#02_AJkaj^a?2mT^`1qG1KIq+3yDpm(3*BtOn_jEUuj3 z4{^_fA$ns8of)M{e(VT>Lhv_Q{kCpJdtq5FxwH}`YwbPsC(*#n5@8IL&cTBJ2ES#rrM4f(n z;-1m{C^_pVJ&?8o-qnYqvH5poR!@cB+eh}>nl>6f=>_ZzE+n6&-5CcFA-ch@lXM%n z!LPh*{97!5xpuMWa(N9d{GN&qk|}7XsEvPBEQqS?c=Djr4t?1w($?XQOWiKQZINh_ zd}t>1$f#xZglm9SSs88LDMBi`7^qG9L@@3QZrC>t_o++)DIIyVm^L2AOx7mxYSCn% z=OBsemg18)x02rZU35S*0@}kqq4SnRG#H*r4Ghdlw8nl&-f)`OYRyEq!M&s%43Ta!xT`poI1iQK!TKXe*Kff!=1cKZdK65Q9pR5v zt01SR2U~A6U^IUP&jb{p0m?w)@^tb_!HU^rHibQP;1VS->KT{DW5h31KouP`1lAkI z!8g92gxQzkl%Ys)JKfLJJt$zdrH(?<7=xZ~dun-w(XiO1n@(%dLwD1sWb4icRIZ9r zx#%Wp+q?)=9Kx}{wuKr!62PU_lU(-9a%`a8xbS5s%n^^mRd=g!cytfF(_9Oel%(+E z>S|KGjX_sr37;H$r_zO#|2x#Z4+-aY;eR)8;-!GBY(Jt8J=+Lx(`Sn`UIhg*RlQzNB)kR1RE}z z)50JLMjxzkwOBLf_OZ^iyBwM5lV4$lxDMKlKa0<=@f43<#Nm+Hcxqkz2AP} zuA(*MappampZAw;IyHyA{6ZV|wywd63&%rKegnDiq?U|wwBrQR6?yBT6QIAi829?B z@tx!pJ3($fs=N9itt^NB0V`b4`v&rF#f{Vl0C;R(>UvKzyF#?T2haqM~Prds^mOq?r~p{>XOTDn`A)MjZuuEq>zMJ1CD zwukXsgg^Q5;WSB-&V#G}N}!@bh`l3KLG@bI7=JB$ewDL06dxC5ODbKlXD7wC3YVyT zjy;{zq=bjp-zA^4w}APaC{jWznMFl(pfiTM zB+>`HS0g#&cMs9nNt7Bh_ld;jnV5Pj70jzE@!v=b*(v4{jn;b2D7l}7J@cZVRJ{Pt zF4H2K z&Ug;v=10-Z@^k4xls{Z?2_+4V6ZosC%OLkgG$S`=6tJ?1@OR34Cg@H)yy%aGhzskX ztkeR8szx}^=t`u`De!KcCfX0?kW03a)KhB%B<&ZY{eN$u8r4OU?csFNNc|femSE32 z>C;A6aX8j)i1WKtY9DRP!rcx-wJu*0YtKK92CF@b0FAS$Q{f3%IHFZ+#_Yj=qX+54 zKNF#4$c*kODaN4}UvRzm9s0xI6YMPaz~!O!WL}dl8C#!9zlk}Zx?dKS1>~cK-YAs+ zD$mzSw?kmwB)sK)hbtN3r=lI=ta)fYym1`GHkI4~$47y%0HdjdLmW=~a2M1&qeu@b zlAXItWhDtpT@1>@pK43;+F{3qILN%<${ol9$n0w+qHHHAoVl79+sLzD3N&%} z#v#0M*$oEmgKLYvi_uFjmNT!Wq*B~&3U|69L3^SvRnr>*aL zRN8SSa>Z;+Kk=JxnR0|Q8n1vEdx}x!+evIf9yCWW)OB|{obdTbYzsGG)BOq(#_qwU zamMg-dl4=)=mM$UUD(b%C+oJk(mluO;56+guCAI~(74%fXSF;ZP`a49oB8tj7tF}9 zpTBVQrePUL;2!=*tB}YN;Oml;lCT`U#ns~Q~Zf|mY<=c`W@g+ zd_HF)=K{_7lUU<;6Z|>vEK0PFL7U#;TGDKQroO9*qni>+RPLoWHaLO7a(&p6VosMF z_(?juH=%0bRJc)mkjAUo!f`!e_H}iEAWO4_+#V$Y#oHaok$>@wQoJLM|11VkmvvA} z^a4KooJpI*XHh|fDvh=tv0qme!8V;x96LUgnJ};sl<6%dp+tdQG315cquvURw8;Rc zo(vm58)3)x%@{kV4`P2dVR(}a-bo!tg=2N7e{d{OSpEn~qgag2y^N<56v=hJ)7a1} zPin2C@$4>7)QznoPn;9*-vm*x`soJq(xPC;mZvc1@ORku*BhsNcz}z}f8>U=Zqlcz z2Z+kWXk74JnD2FsV%8*?lgD6y`mz)0=aK#5cm6%Ic2y@BzI2Dyk^@xS@ig~Q+l)U^ zyAX#y&ILwQ8D0FYaMmqGD1IY^rn*c($!c*J(AzU+qmDTk?Hk3T6$T}GyP z_~N7XFHECk6olWsBS`ccM`!F_38%IN!4BU!IOe1pq{&8bAN2N7%fUu&SL`FodMsvs zEXXBV-yGqvtRwDNUC2FD@WuyY9bxs_>1eFw2l{>o!Eas+M#;BebCMFRbxXmkZ!h8u zCv$35FNY__HjvlK=gIm*ifGg)17BCDfr#%gc6IM%Vnk1ZjD!Vh8C`>zib&e79**D7 zKVkm*1cC9FU@$tHfbyFYN9sxd1|P5mp=a~KYSv`@S}R9rOEpSJ=)rGJ8;^Z28^N5n zR66n-*6Qv@2OWEIZ&@!rGIb+%CR)J-m36@Fv$8lBmgh3~by$gRzaID6V* zsxL7Yj6Y1p%%P32tD=c|H9f|s>;p*co&@r4(UVO?&I|InoC4>I1aPt>cV>I8~D8ECOpuRhOJU|*gi>` zC^uim4k(1c%8BroGW?F8=V9j$Jv`bNkE%gdAZr#wMwM-WQI)e`dc{-Q_FSyc@y&B{r1vo{!}^fL~=2B_%lPTCsRW0Lk? zQff2<3lAKI*Gs+W3{hoJz3WX2s0H(2`E=BcnL_R4r%dq$7M?5NH~l}wM3Ja_)NO5OaLbGlJrzE!dxbr9AA}8A2iNoPMvMR8(C+Vg%8zH z(*6wX?9IS8`a;};FRM^=y#=#h_XGx76jJ%57zj@3hL+Q*;G1QQYLYK#y!dG}n=1)r zEq_VP_z>V~CUJd#SK)m1J6!!9OB{VV9scSGxUiXRq##X-k9o5X5*_xDPno&+Z@w;G zP?|z3s-?K0Stsa*3Re>FVIQ{ZsDfF;23We|94txa$dP9q+)ME>kWxDxqE6?bikd5Q zg_pv^$V5~Zu7HP$SBR-t1-&C;Ow_F8*!2t2K)>q~wkuAe?x|+{p|pCOH1Q;!%~nFo zy(eg;@I<_o6^YAQg`hxcJe%U~4l=qLn0j6m=WS@ltrEpd*BMFZNqP?3#|y#h{50DA z^&Z{2PMe>6?=UthEXSO46&SoDnp*i*z(IFeylH~aHti@@-%rPWO?4dWc?133;^7>x zhmqEciNy*^r$4Y1JSy?R#P{n#G1wiRx4frCYmdXb=O=;tcM}4Al51}*G=g1xI??I# z#E+rN;hpT`nzt`=NXO+v^!LelB6l*HyCQgvzuJY_EYk|Kh>k~t*j=a;?u+nfQLX87 zIZT%MLK>B%i0u8#Ouo@ZxWxz1yN1H(q4tG9j!9R zhx4x%bCCr>IREEAC~i$a)#x>taYGaQ-sVEzo;~OqkpO>GGU$DrkHq*geg7&Ejn1Uf zFG{b`Df}FHG^LXiS(jj$a6GYZYC;>?Wb$H9I8M+Ng?+I$xOs&w8IbEI=^I_y36B#Q z$BE@sJK-hq8Xkq3PtFmOxwaU(D2e-G>O!{+O@jlzQKapJ0W|ASu>G(T%a{UOmLb9P z{vCkAXS#TZ|3zd6?g~c9I&kryDO2X#!t?Rko8OdpPol5;dr@kU0@O`82mvlZba2E|iAY>QC6|wa z(KRtdNq#St)cDC<`}UTW*A-*X8cVc&I|82;|U8c%A9!k~HYWz>m}rcZU_a8S)0edD!(uLkg+7tL(9&7fsx zyrBPIJkfWmC(NepG+^^OoIYaEZ^b+23iF6; zfhE-anlSu0tPbu|7I2wDp-lY5VzSZwE;UYWCc2-qn14Uw!F+d(L&5GY-g_XXJFpSUGRLe1v!*?j!}C*!rNEvW5#aVhnk}9jK$t`Y*^eN&|Z3x z%TU-3pQa~a!x>?`J5daUHcuzfHlg(5;$Fy?{Y!6|Hw(_JNZ|IXFTg9F?wFZZPVH2q zVdbw(2+^EPN+%ycixVqI%AM3V<4X~1e9Mj@fmSafj_Sw!XNfZsuk&RPyGQ?;P{M?3BHIYQU0+)1_V z6PZ&g9eBD=k;_2@arQHKWOO1r?ax90SvizvhG#jlexm zsn)Ri1J$|XPMb2!@$^U^JZVoQE}h&6Ugv+nQG*P6X_YCeEzN{$5>3Qe^CVj8n$h)j zp16KN6*MX|kqEs2ddp6fC0EYTOq&X3g;)czn4b*mCYK7DCrV+`a0AL-K8}@=^_Cg&!BR~b9G*Ce{Lr6H`+uLJ_^gHa zapy>fqY=z;b?0ifRnv`AZjuVA`(XU$8r^8BiUk!fXtKvxTHdt^ZSUvN9gmRv)%1#Z zb-o~d3DTf5a$mBt9l? zz8A%pXkbruCA0m}4LYmv9;Qer;$G!tU|IMG(tLcOpe37%*B7EEN;1CJo$$!DIT+>^ z43S9(aph$nF2^pA*n4jw-m8;9<%Brjbwic-y%a%79ZS&bHiBz=)yda!yO>|b6;xZ) zXCxZePVGb^aZ;W#ez;n~xm*oHqX*wc;&0l}?jjG4Ld$8h<6aDEGohVk0LRL1;qlxK zGfNdd}gtUAD0O#|hHl8%|%oSEAyheDO%37WNK#uve~J!cCVi z5V^U@Sn4z4S#6wzvsQO<;%Xc*{xbnK=eLv9hw|tN5jS}M{*R#Ad;)RhMM;x;H646p zNDSSsqQ1pm2>ZGL4yez>&6er(=?;DV(BM`)R9FBW8NM`YYc6@3-$p)S8qM;#4Xy!& z^i5YZ-dgBJrk@POhMgZEFzzPFh*(9R#U8@AwdJrtF9T$+oQ4nKQ($PKH2aTCh6!qp z{OdKM)ZNnv$JrnXv?ST3aw=qP<6-dp)WEG#tEXju>M*$80n)NYG6TyUaiWHW{d49cjjc|?2l5&?x4eZb2)j+jthzz}hH>ck(gmeFBe{beHn6$c z2@<`x(EVX&$W~@7?1_$tL-IoOES|?|v+=k!?-BiwRRDcYnQk>TK{7 zJZ;?YkZmGarY%pqHl8Ak&~BW4EFDA79l^NchD?jwMS9wPGJd>T0`{?a0=0wsjDPJ# zh*&xezLxudam!U&I9x4QzTym+Db!MBi)32Vvlh!X`p}cgq7Zud8TaJ00t)*@W4q@t zb!Rq#+3Sp9Pgas@v8m+Tzs1n_YC8yeMe%800+uzXqQ>)caP?+6_(L>JZ7gC> z-HL^bOZhnMfj@EcEg(0X4ndXHG4M2=i1#W~Ml#|?WYNPIG@l$tuJm4lwf?o(X0ig~ zH$0>^z5b+W(n6{+ei<}|7QmCU2Wj&;85HBMf`rm(uflu>Eo`gzrzLiyAHP{MDKGHeQOJ z(2FETO%JfD!P8+(>Hy4j$b^fbG7$doAgn*xP4WxX$=Zrsn$~)N^Hx4ZWyf2Sr%A5p zaLf?4pDLuAA_loRtNx)(Spz=vHAMRyUtGTV3Z^BMGQu0HV9~X^ribSyqN%wh*NBz$ zX=xW7`|1P@=(q>X{e!eK`2fTlXA|?mEc)n(1D4)R2iJ&gXi%02X8WX}u<$A}!5JvC z>@X0kk<7)te%f<47Ta=0`VWTZ(Bjd4G@O)#d zbKrQB43r%#BVxPE@shs-v=wK9@!S1mQp8>IGwT@|jJuBJQn8@oVTCU{>gk?TbzEAT z2O>^NT)X{!!S63D8F7k;M}{9N3g+_T4kfTjX4qC&~p$~Ya-VOG@nMVz$ z^wf%O z!IWbfbp7CGjHvU4?!A^o@k1`j_RmJ4Ee?W~{Ak=&{hJ2HeIliKi|H!lXd!VDZ1fA@Qz)SG~DNwh; z^Y=_KIsY(O-KvklUntzOd;(w6XW--alCaM8`Uq#vg4y-C(0Zv2iCi|E@KD7IX8U0H znJAsr+lPPZ%IUxwFU)v2hjD(oAD%?=^o@`_Ef_t!)@P{|9$(jlk*TxrY5jS`GwYG> zsv?iapWs?*3h9&8IiMw{ELde*g_4b?FlnL`SfB2${WbFiNG&@J@rM_4BC5GHXc&GR(`26`y z`wq82>;{jKQ0Wl}cNgFlv3$a%4badJWmq{ko!$_q5MuojjV~F)xX~?mvOt`!oD)m- z-$=&ByF*0oNj>gd(1D$hT%Uc*+K!?&0z85pSIBoevizZ__kh4YGzWpv|hNk)9pmi?!QevU z9#WT^p}0&n3B_i~u><89sG=tDiGN7WsRLiVEWzJK61djsiM zE5|lJTL2Z??=Xr(JXvw6fRjAy2KKjAacay13=rA|cb+7G`}In0Qz451qq?{*<9MiE z$HU~-%e8m5j)tGMTT#}{i}x({MP>UVAi@;`b10vDu3iFhW9=c~UU$u7TyNtDR;@pXf#DK7z+WLsx;fCi zI)`?dr$BUW4rkHkh;L?p0rkn6_=7g$iD$YnFQ%DUnHP>fG}54GE`V8w0Xh0`7D?~B zfCA}fG(l|-?$nXt%QSv7>A`0)cc7NWxURzC;d4~s-x^xJSAltDa8S^pt_ukzLG;U{ zA_(mtBvQd2QNndUaqU`7y+(ReBGM!LN+KBak1VCn?q4Bu5+~z|f-L&|UOIJIb&nHq zw?v<{+o@CH4{F<+1l_48F{LLOu8d;geC2s~y(gMnE*teVU3D?PkH%oEr${nQo z+9m8&PNVHwWl%UzhH6Z4qER|3*cQ12(|)$lv*rzG=X;wNEqqRLRh&TDB^QmnBk{rv zM>^n^OOv`zg56SOh}t{`Wt3U$-94FoB-TWo7cameovGx;mOJF1xfy86E04Id6;e++xX(#53LyhQdG7@V+gKX3ToL^Z9eF`?2}8S|4uF z;La9e^CE#t>{noCeZ58;J@nX~l`QmL=)kLwa`DZ25&q-jEo7d_a!`{!M}vj^Y1|zr z+TTuK(NPc5vSR_&U3d_i42#fag)~+@zE2Z#UC7FvA*AP?42{^m1@%8&CzltjpnK>R zyizqEeY2L3O>7t|I?{Xm`C}4lk2^~?6^_AanRDq2s}2+^8qFU(JBp;KZi2D3!?h*a zZsgBpC-{A-4=3k+qpP(;MjjoUjpx%AGKb3*@QJKE|7E@$JOBC=%I{Lg!1Z&PA>r-h z{`{*r+CUo7C-3+Rp3ESlSwQ6+a)g#Ud&85OOPp~LG8c5kgG9Wo<1>(t-) z^yVQrqdXDb4>wTLWlKOLWf~js=~QiIq94NTf4JBPW=AwvqVco+jV96u3286dyu6MnCnz z$@|B{)M=Z!xKFEaY%e?s9>f1Ry!mbFkhyKn;W6 z;fA}#Oz<&Z1_YYCPN@pGDt)0gY!0oN^Mac^A)6f7SxZw_uSEqF0bKhR09_v20Uxf# z*-K}TW-}*Tc;Yts+LD9Yb03mWwEe%vFjXTs3no<8jPun5n;aw58?Wl<~qF-^KP7InnD z$SIWsa*V#D&eMHH_U=PsqxF)o%2|+GrGS%`jK?RYi=g=KZqjkx61RyRr&oUmfV7$k z=~vf=_a_9v>L!uF2SD!55JhEm8}N(Gprdz<_(Gq<>9|z^AoS@Jqg!mq70iA}JY@+U zT4h1*Xljuy#rsK>4M*)dBXNy@@P+FF@s7L^8Te7mxHMJKQ)8!)u{Se7N^&{;r}xMo z2oktFZKAz4?KI_e1-*T?k8TO7pf)}^)I6R=@ohS&Fw=(~I<5wl6Hk!iZn;qUd?KFw znS*Ao5Ac@IGeIYlNvcb-h?Uh^@~qQ5&X< z4D8U=hcEnJazI9zZnNuWKHXNqyQ8j=(91t|<5gmWGA{0gkT%&e1 zEXm2YBSy1>VeCjI``a~3oCl5=QFwv4uf0#B*2Kefp#)4DX9Cf&p5(;iqs-oil~^Ko z3g*Uk!dpTM)}hX@dE7^8oH$#Olr4@!rx@+SmHT z)a7a^xge#^m~XpDMDJ$6*HQCW+m*+u@TYXrabE?selFvEHvPqil_f;_>lkjpvw-~a zkwBVROP1ZqAd@YcOy=kwBC$7);rzN0|3y9lJuO@4k0l&@xH%b(+SK^UbGOjS$9*Jw zT~BXX>;!kIowZv;&f|uF3hHx5oG$X53F5n-(*CBK_{f7Nof*fVT;)maibeT2PW%t` zvKuBc%P&*4l@i$Z^b$xt)kJ1wt=zz~RQ2;~x_5y$6kS$@*G8Azjh_?hxZp}>n0P%3Kg*0@M{hR7M`+>;l`0ad_YA*0P9!^w57XV| z%iy`X258qY`fBtbaj2I8CI+t=rz7gB<@H_qb@owuE%{eXWYbByqwouToSDpYEeOI-vR)vuAOr%+Qy`@? z2#=Wb(J@oi7?J;np)-xAs*B>VA!JI1kPwm-QK@jxURM-NQfWXWX;4a~l8Q2B%q&Ah zGN+VOa?f6uGWDuZQKW$eC6$tj#`k>p;qtro-fOMr|Ez!^CiQA6xNWV)`8p9~_kK@U zyH!Y5Db1h>hq|gK#>8XcyKu7kBljlSCJrs@W-(Tkm!N;46#v$pe0&f&03Lb2>Bj8@ zRsFm0(3VmxUlK!m{9e%2mfo;trYok6)UXQvK6QDGrxpDxAGit?dWH6XTKp@Vng`CA_E^c-9jIfr9~6nK(E3PFMbLq z-{0+`TYbFgqhnvmJraly)~%uUT`%F0hBdT2C6#>i+5j?t6-mGTcdC)*4&ocG(7F4? za7C9pdZszyucN_m@v$GX>s%~t%^rX|W9IW|#Y%jBCK&O}3cPi~4W3>*O-)Dih~Rc2 zOv~uT8y{TZ+M*8h=LONg|0EE)63LXvt28-I3G;hwscCxvexH=gCKTAi;Tv~hlGjR{ zB+G(rrybKvfStfc9}s=p)R)=w%B@m?)1d{a1h$2e#tf zZ%d(VnG~s97>Wm)78A{LDWv7$0XlT?6bh`m*uxLwcoWRhK@!x!jddrNRYU1iiw>%p zwF_?Zq;dM~O~Tx&VKPfm$}j7 zORnuLB5y;3>Cp$Hbn3?(I=ogL6{m`Vj$JB74UQ8!rzR4aU#HQbrx8m|JmMXi=Z)24 zjUgjmiGNk@H2LXXi+Q0wcs^|r`6xS;T1iBLdj*0?69IRP9vLa-JMS^UazKImz3~FkvoJ`zs9-VH?X!n zh8S*YLu+{xP&a%+1Y4Iv=$0`0&b^R%vY?*$OjRaN>i5&I;46Z$Tc(hU%FC!`Q4{<1 z!WvRJD}h<`^C*h%GhXX7u`XseMHZ*~8T&>%`W9 z-cLtf!CGnf^SYP*A{FG^;}&9hR|FsKQ=wb04AH9Cb|z@jdz$BGg$^!>s3Et7xIK`C zElL46*QQU9(VdhGxb_!>9@ADy3{6^qTNG+|F(}I|^MrwXE4IPUwp|zL@w#%jQhEDCK z)jwCENuxHpzjx$u<72RiO2Sh%(U93D3Z0FUU}lXLhIc!`;DIkNrZooB6z-AQM_sse zXcqcOZUw&(Yw9cCO4J(#aOBcTdiKgA+#HaGZTs!+vxcdR&~kK$pPBrmp(+?7EaCBPX^pGi1X817WenwUHtv>g8k|Jr$gY_`6Sr?vZ zU0@UAvY<7YrH4A+(xFG5=-d=ZP(+s4@ZON#aeU0X?#=rk5sfBV`_SUTY;xkdHCPlT z;uJS;Dd=Ag{Z>E(Q74Ros8ABp;sQv3{_*H%u`fRU&Vddp?=NonKQ=0(d zz1ld&DV59GsNnV$MMN*+D13h7Mck5SV``Es28J}lnsRSqb)b;`^ivb=o2E+&y*!}o zVgee5zacw#SBaEXA>PjYO+FFV9~+T8-~l zH4p}ufZH)$+A`M`ua}$S+ZAt7^KLrM6ms>g);O3PZHO|vRN(d>b5`wUGGoEL;kS>T z2czf1Xs!{0PgRWYSC&1E4NRpyK9Vr7HUo6sJ^5$+ec)yE0yL5xBr6ZBMT<}={_~oJ zAQBnIUlVtO%-w$;A}${kuFKQn&0cm`Se%`YyT`?1@YNmUrS)QffOT}@i(I@*TtND@ zi_ls!7KQeMG?=T24DDx-Y7JAiCvi9Jx?D?2o7|zVw+f3EG~g_mFg)Dp0BN1}__ap_ zcZ9~m2a7rIY2yLNIhsv>+D#KSSjwOZ#|Jd7vcs~=KKOj_1kBtKh-7m<==e5a&_!9H z?=vg7C4Cz{ZW4i+(>rONWg7Bj%h^5D8s&O#!1>gl%yGv!#_8%;s&MEYEnj>UJ-9o6 z=Qk(Js>^}c4?1{x&2Rd~WP}#1T7sK$F0!rPEZ9b=C%n?2*?6enAn+8v!1wxW+-8T&YgfWvG!mwl8* zl=)NRxj9f?@Rc591_f%nG+|jFS3epUqjO&rhM44XGmTI@{sHOhZHCbIS(mNz55Wm{ zwD9~MBjIhkO0rE*%VtjAjIkO_7@0nWEHKHYH_CK~gLx$_U4Ifj^G4aUIV!X} zNfxEL^=|BFS&d71$pngG$iQBJ!}CUo?0pUNoHG_wmTS|bQyfPlZcT;lyQz_K1hJLu z1*Zp-`0C+HDfRsa(hi@gZi^;N^?S;8eaOdM&9>m>$7RN*c!JcmLKFusp!#VKsb6G{ z4!2G5ykZCKvG#|#w)5aJb)nbPCBWqDWMG1m1&K|I>E^E0RH2fkvQ<@7V7>Oqzke<& zNKX^aZcxD*cP`sf_ZEZyyuv$Iq(Gr@nCqe1!qdofaP8(}!Kfc!O?`-V_EpogX-aUY zJrT1n+#qV&t<-yF@q_h5zP-hKvXBmtGq=~H2j78YZZm})FBZ~c5m!KF`Y5?Rt%i#H z=HYtjt(g8Mjz~IlHCFBgqQ8QBmurLwG-L%NamFtE{wb0U9yVigj;2z>ry8(H+6ZnP zsDa$kXlQo!1D&WH?8W;D^jX(460iG-bXtq?O%r56q2WBWicY}df3djJsECma?1v{? zmHE-R_sQ0(Bn-`qAaPeC;k?8>qId0Gd!K!5#4XdI^^y@`nvcHbeyO%+=efH9gl?kxG{55%N9L6zl-|2@1 zCip`11AESAF$C(AvG4!uB)@h|L}8m4C|hkLswRJkt^Hwi)>~4Ke;>qL`NID-OU9yUGst{TulO2N3t#Fcf;N}(a>&kg7BZ1 z@HE$!P!49%-u?^syd z=Y!f|+PrN;ihSFa)1;*~0e_x4gnC&#>a?pKHXSlzex^w=2B~K7f#Xs7f2-34Gxy>o zWmy{G5r&rMtjW~Vee{Ws6da$gi7R{>@xqBO)TC_#lk5AOyq;S~^5nTb>UtTz&#_ft z)iX$M@#JCLk&EO`%QpC%@tp)qFQa!n=7H1eW@gqVKB^i>(MF|KDz!a}o&R4i*%H;o zj(*GHm02~ht+sRNw$eYCeQzf=mp-P`K1M)vYzO1L*@U2w3l8QQ}b+5s1tm!6GSeKj1m*f!9DG4b^F z1zkpi%UkfRACvP_<`cWCg=E~Uu^{$G68|0UA**)t$=5N((4zkVCBGLia#jmztYkHn z&2nWuHqQr=>w)4wTxrVdB<|i%XJl<=BmNf(&PGSkCa(l<@_FR*%K<@`!7{R;Y&^Z+ zv=Q?ZENFk4FG+0`#m-C_X8*)o$oLfkXYEguz}0scpD-RBZu9`v zGIxf}#D4LIbooijd%ICUWk0W@@;|lkL2D*Bxxc}&b_+0f$7ZZ4bYwi&OaO~TPM}_q zO@gwIvGc{w^Q4|0#&c;)KsH@KJ;t1-^LH)>>o9B7>sn4qa07Tg4&=`Lcsy7u3i6Es ztXGjAxn`*i^l}LP;fWEcPkdUZI*kNQUd<-2iG_t#7ijk3Y?9S>f*G898eNp%ll1iU zjDE;{EPldZkc5cvq1I)ZcV+?kIjlr8g0f(sZ6ZuUIig;fK$dTp;YQ%c=@%PIDpKK0 zyww_sA?yZ?dCtV`UlRk@lA+`vm#1*MLUfANsF$oS#s)Spt%?SuH_<{^yKp)%zed<8 zZ?#b7Zz(aznTt7dr6Eu)g;-R4BKp_U=)8Y7NQBW8);`67xz?r$uY6bHcF#HBukxKV z&Rl~fol)fFyA1lTG9A|!&I6TYGnv<6Q^-}Rd8DJY1)B~mzySYt_;p#0P2V;|CWJ}h zIWrk9k8Xw$u6@kQ84vLRSF_nD|Dj)J^ikonRpfG2IAqQyC=p#n9c-0Y_R?q8b4(oF zHoXbfDT<)}B|f`C?in4434j`{VU~Zi9FA^ZhxcOSAZa#|)V4G{Jn0X6WQ!(DKjFoD zclHA2)ehk7{!2JqvXt&iKL!4Ui@?4avY5nE6MwoK{9# zCO5+LlNs=8=mWiQNEL=ozGr?alz?#EAdTvx{F`};Bc`w^)M_tad_sZHS}6Hkd#{qbo!cTeCTS6ZCh8P+Kb;b zp;Q*d)84_49DrVvk3?E5P;hURG(0&s4p+w;ptbir_)#?nyVlHtOCe=gxk^Q-TY*wm7tc9b9v0-v!9l%C;4LZvYd;3z$$Q_yc84^&B^aQ~@pPP>^Bna=3fPs) zW9U?`dOAMao$ zPgCg^PMm}3F3Ak+U<>@0;ba9z_)(Te$8)nO#q{T7U}+zlSdNz* zQ|ZiG4W#T|12l{r$7}XC=_iFgz^``+Sw9~Oe;Y#Qm<<@cQxo?|$qHAT$wS4u$*?-t z506}OH6P{p=yf4q$cEE${8TSbDDGZ@TR8qsWY;}*|5KKCZPFm5Ke|OL_QqrF1S5Rg zy@uFJDd2&ug;*r+gR6I#;}hXt_$D_47a88fNe*X7;GG~e)>wpkiq1Ihj0e`Z?S;|W zN@{C-mhzLU=qSyx!oaT+gwYGW6_lz|mfAJfN~m+9^H z?NGgZ6Inl+hGo}E7(3R5<6(_p+D{Gg*zY7`q-B8b4%yHTyf&;bT_&6zQH`6+!pQ90 za5|Jbi$7+~UHoC6g+5vt z2Nnv-tKsJSt;~h_GQwvZAFTAtgTLLy1iPLmL0NAwI`dn>+{}wMN!3#Efi`CIv_?G8 zW&wU_dbt0IE>1SH=C?3**xcMf64$UO?Hta%iEZeBRycL|9g8L>jtX;l*ZQ+_4H{LdQL+j0wE&fuV#Uar5IT*ze4_{&CTouwCj zmypi+Z<%PHIHHy>F5G-y0TQi)>81ByNa8jruuZ#+-alp0L|O`OoZbfyk~>IA`dMt6 zuSFAcLvSgHCqusaSTqud)2{u66JxGW7m)~D|7n8d=FYFI@;X_1Ol~#4o_r2c=_kvB zFQ>p4-vILIB*&uf`opva-o{5xGPtcsfsDD+i68rtiJAUbc*stJ1#>*$htCD*HLZ(1iu}%5aAh(x^COZ!o4Lh#rQRObTApdAE=@+ z$qG1k*n#5%M~I|#6MWvj2);)wht&ESbmRI9w%ao?p<^@byCuzv>wl#Wi#O0U&7EXN zxgxmv$3cT%7F{a87{95>Mo9exn-4g(;eHj+{5?O#0Mjp4QMrB+X)Y^JgWF%3XvB6Wz$(n1$%0yPON! zaC7&C^FXbx0GsJHt0&S+yaU9dEetG$5RK&$j~Jbpf5= z)It_Fq(a8uU>c>8M!#(;WjZF0(w*j7_)hLT^FuKl2IWFQCe{Y~o3rpxuRTUg)y3?t zU)Vg%{eJ}VQEUGOd{v6(kY*T7seE;$N6(X+e{$&d{TOT4|l^D>}2i z9l_xqZK<73XLjh~e>QRGCX@yv#r;fg%_I_XF^9sL9dy}C8Pr)=!((F^RxAW-9eeDs5`j}OozSnc7#w@gP-CxBR$|>8>{w@nW0;fV@3$Hv zAL{}#qN+slZ!(#psU~!n^<_h%`|0mu1^&!$<6t~8eIetM4t z{o?BOXGgJqb~A(?alq#a_Lx00uF5TZGttW!%b2G-nPelP)jzBGNE%Xuq$#=uS6 zBwA*3g>-yiX}Zc2azTD9PUC!fvg@O0v~(St{)pf`3up4(I2Gz{D?zVY0qvy(s#M&; zxG|CZUMr*zK6&B}Us>F9C=}<4I1&4MrIea~0@*<$?D8|mvAL~8ZI2^$mwrc{-QI%+ zJ39oS>0O}KkdI||m4!x6B}n8zD25u^(b81z^S{1M*qc5uV`(R;60F38=yvj_w*(qW zCHX|W4aG*B`8rX}WY6(8=(Y73;nhdj3;_-C$Cif zNKn>a+&rZc%#0K8zCkWLvTbKKIUK~iZD#PzY#Kg#oPraY$Du+pc<6o|3pP;FGRvFs>0Ch0N>AWl?Vm*k-7Sz7J))VJg+z9xHu{QQ6j(j@OL8sx znYBT>;C5pUU3uy+nYBEcuj>AdT&>(ombcol4mG+E=6eM4t`u_~f_x(QU_*TS85+a6 z(d-uova6hwQT_f5xY=+M2Bik*%e{rDS9csAoSJ}T!%Fz@o4jz`-Vr+Q^Hlx|)qdz` z9*Y*PH^I8thz8(Wl2TufhT1L=zxx5n_REFePxT=)T?Ho(4O4~t<1pUUfoNMVg#hU$ z#(cU3UbcG{>WES8Y%?b-a3|ITm>5f5{PinzX=GDrH$ z821_-u0OmKYd>+^S!oU{tNj{J+j-J;#c`zUj<;~A*$p~Hjtg3&6iLsZ3uO2l!DD*! zNT1Uy_Q!sCzQ)WQYZE&TYRy+2vYf-;-AMfT9ex=S5+nT@2N%d`$ka2XKbpb9mSo%(%k` za;8Y0fBHfc5nHGXJ>42;azF{gT$HdRO+vVKc0DV{zX*$>04XY3OrihQrq-I zoG~KDyy%M&yz7>JMdLb4h=850NP?% z&=zwGcXV8#NB!rZteP$y#yD7KP);WH>l4Fc<3Ym06t}zB!O!s3%+ucI^hxD8yys8I zu=^JJV`L^SKQ{&U*d-Ee7kPSxn=y%h9U!-qH>2`(H^%uxCHY~~Pqs?DXJdQPNW4Nm zwRj>znQ?m<=~72*RDHu2FyKH!%Nm4pdChh0VpIq_q7mjF@UO zf9`nFvR#YNcVj6nHVK4dx9dqw;!Hdkei8<+$pfpz<<;#~h(GP*W(OT)iuPd;L}kFo zFXrUoT0I(+QwHl)ez84U#f1-5MQ|VI;LXxh;6INOG7l3cpv}uaq|z)9!gsyJfaZU6 z^s^7e>9Y9iTP()hS%R6R-E<-NfK*QoQGf9t8N+!57rwj%D|Hp&r07J#(>eoM^DAL6 z`7x1ru?yxsng*h}1^D={96rnm5d7UJ4~^?8K()^bxI36;PCA4)Pf3yQ?@e%dH4j}h z4Dj$AZOmC(&+1-UNpwHhf_C8|ywrb(h%8d0R{KNnR1W7HbNNFFBaPxyQ`wDwLg4tD zBC^1`hP-7v1#*%WD6Uja#U7ZFqrb*erJ43PFJKWky_cpbzVDfTcTbT_@lz6p@i}yc3szD5VQP40=vz~a0$a#sJ#KY=})oX{C%9Q!SyWk zY)IW4Gw?L!e0>oK=yW^}w@rP|xWzS+|FR^Z@5Fa{{M9AF^-VR9T*9rGkmEztzDU}c zaRPE%8QiH~#H#SQRTVOgBw1bvSMR%F8><0*i~eD7WhKnG83Y-=XJGHQwYYJ; zy6Ya}s47R#j=m;iyl29FyJ~#hHb%JKx00$a?h*>i^H6;82=vWT70$k{1(xr0AkU}> z8VbHb)s8FhW2P!u{?rA0Eg#aQ{5We>y>GrE*8^%e) ziK7a9cX3tlTB(VZ7b9t6x2Q0J=TAZ4jEdJg$-nRk=rv6XrW9C{b7KP-yM1Xiz}ATl zsi%{q(H*d8gA#1N9|nULualeq?r@C2E)d&ojy=OyF=gI(Sdde|%CGBWb2@+1t|2S< zZhjS~-ndTxj&jb2*$>$Ti|pyW*rjw5GasgY3&GfLlb}GUjT=U!&?=)l^yM!u!&M{? z%Pi$#{g`%qoo_*k{@kW%3Wr$(7xLk+!RLW zFSiX?-Lw;8X$IV~T?e1aLy6S|q~;qs=>7a{)brFa;^L@`A4j+0{e!8Z!sNaeVt& z3n#9=iC&@?={4d9yNXuBLaS!N#;$=I_4#O*Tt^RQUc?NuXuO?r1|1F0{G&w z=Nu@NkFQhPs5BB9l|YBRPU4z5Y2?`GRCK-aksJ$pO@ABD!^|VWxcrtm+on&?9%op_~ly@HavMw zA6))IRb92v`i6q#sL?pO`1op)HCKdRX=8}*pAOS-2}2B-Rsj#DS7LZ}3_QZAIP`ZK zlRO-N#vdE$=f^6XTk;_pcSIHLMf1^P4|kuf{>jVI+sE{GKV_atF;M??G85iVPd}$P zL7e&|tdW}q9_Qb&9U3kmHC_rA{D~od_vVll?eo#@Y$eX+Tt0=zXR!Oc9>MN|y1caV zI2s{v#}ZL_R5trc$5e950KB;j2ta_=X{|>>b+sk2NX%lJEPonCAm+bT( zHS9ocB>vJj0e_!!%(Q?&sOWl6FJ-il{|^2E-S+81!+W}<`Zkm}r0f;mQ&q%lSk6;mc~3kkNO z-kGEDZw{BgG?zlrfc6^(PmQr`KndNab8P6+5On^6%=1%MIEMZ@DHgF}cO7SGXCM!3 z45!h%E*fOP-yF(YB@ROd&iJ+^o7CL9i1w-Vq@v^=ImbT2CxXL_+qFw%<>iBnk7xn? zgb$dcSz_3`rHQP&H4C1EZX%ZkdLYeYBAvHKiO$;0yDC}co{P7I+q7&4~8br8*rwvlc^c6gahxiph8v#R)2`& z9ZhPZcFV6aKXg72Lw*R{zP|(dMYl5FH+&*X%qNhAU0Wc?{3L5I_W~U=Y(?CP?=qzp z(ctze>-syZ^`x()j@rc4lF72m=t{L0q-tX~{Pqms`#fxg!$UUwU8~)p@aATa8?z0s zc%Gtz6N>P(-(RA#f0zkd9D-Z#<`LU*oa>EC|L#FfLvVdBgcsh!=O+_!L8d9V@16() zH4(H*N{GeM_Sjt5OUA9%!#CdNL4UV68Q-}c*IMla?Mz9kogUtm zoCy>4eX&EdgSx+Z4MTN`XnJ%R{-=MBjt!WIkH6G6& z%M{SBo1IACU=BPlkV5@Ew{T168jw5q109&1=#UUjcO7yC{%rRd6kvGL9eDFe1Bz1OFgGj~$2DY=$Q9>lZTkdp>-tT92&*l3=4Yaq z+fLYPC?-7QYYcy1<-xQ@9|%ghfWlG+v@^a!^1M@=_w_mF^EF|QOMeDQp#ZGO zESNJ+2U2Iqkz@Tj{KWJ;SZXv6y;VeT`>|K-+v#7)!e|*`@iSeTwnB{m@7XEg3C&Qt z=gL!J{wo2!$`7M>V>Nlg^~xqbvFFKk210&fGq;0a0%5MT@`k&**~XbE+#K#6e)>@a z$pL93>WCGNU-5`;b+iGa(ol3rxd}W7`sy); zkw;|An{K*6HJf9ihw11cFW|jsA+%HkN{+9guRdu*(}&NHtU41n{4PS3pP4waM3tJ} zk)kgeM(K*t3E&rKK~i=J1nnj}Vbc;j`rxl8b&A>xh9REVC9jJA)#y^syBwo_! z?ELM_VezX&*G!I&yfdD z2&?;?%g0%h^-aN`E+&DdJWE!me*?~+H<`=hzhbxjwxHY)8sx_flJb?D$#d>5eDJV~ zsh(Q|bEk5iUmjOKv_;}|y)261L=DGwhe}#`4aosIzGvb>aG58)A~#X#?)$?Bi-`t0#{sTgt)WVHP}) zvd1O1D&TH00T+u-M#hj|)(>FntDEa3joNPcfzBc&vbDZLV5{#z*QDw{9NWaYG z2Wqx3iwvqU?V%AJIiA6J5POMmwk3JJOcWI)Oh6PgQ89Z1X?dZ-DsGL%I?r-Q%1L8~ zJWry*g6&XyP(j!^PmA*?R6)W>k09^S4KRLXiesgn@YXsL9Mf!oDx}4-E-MWenmOX5 zs7!d4xs-N`%J5HLdyVag{>`)pCE>lo{% z5{;3DeBf!$g|qU;FxDlM=?MNqC%vA5l~*_(>)b^A@va1vJr-hv;X1epCwOPp+blFD|60Pzx-JROL7j0!|cffXab4bf?!oVGY@S|r77K>_Q^yg4^Y05Y1uqvL3^*zAx z_0w@-rVLb{O@URv-=mAj6#VkbkBz8q)IEE%6jKg`$p>SeS8ufR(N7XCU@u2E!biSw!`jV&c_?|4vOY@@BMdC2O`vzA_ zCt~-~=_Jm;3>wXZB=fjF9n{KzOm|ZVIM+hO^TvV1usk=H6@z(4zQN)voGZ|)o!s+t zho_TtV8`+Vfxj)cR?Q{@MRpFeHm%N_gHHlBO}$Tw`*NW3z$NDEa}kgUn~%L}DkO1M z3pE}a1MR=$LE=^u8DI38ggOz@e)le_{x-rMYZi)kM&a7sZ)m{$ej=)LnFN2-q0Lq& zarw(AxZ8IKme}0ljcxL$hMCr|h{vPp)w3Y7&K%D*Bw^x%5jvXW3^ykEz@@d{h`sVd z`XjXxmmf8O)&(=Lz@ZJ>TIBfkr{lr0NCl^ybOievC%ip96tp|ViE7_OROQ@z6O|>wE?ps?yV_mgiPoE;tOKQaOekv_1vLLDRZejVj%k=&0P4HxUKFL~tS};pV0a7m& zk)W}U$o9EnSP=gdgTkU9;HMAPy^obYIm#4JYlRdxzJ;`n>tfzUR^O+LUDa##~6{R*mI6NufmG zCBy%scmdYN+VLS>nk;Doc*w2V{BmXsJAQ?#aD8Po-Qqr$ZFu>Tiq^cgym)zlmh6sa za*dy!kV3si*B&+Zb{u|?=1TT2c!Ef)-_HejmxFY4KHon5`v z19z=9A?>4{kg~K5{vDh|;&x8M;r>$c?Sm35QF5ir*7@OY1w&z7#B{Rfog$hUU4*jf zOL3Qa2ksvqgDpMv>`#FrU9X&oK^_v|Rp*at#YgdMp(6i6egyJ1+$C!bZ0Vfmk6~kj zI($2`lq6ps&n%N1Vmd*Jc$W+^3*B{?89iy#%So2IZ$p8si~_KWMT^38)=PgJdC_?S zEK|a9&PE%U<20SVxHAlvBn(&g{9sQJEfRiZl*&A-pkeN3LF}O^-(tfl9C+PDyxDAs zHoZquJf-NxWolG%tvE!eN>kxVEw~td7Umu*rpGMB`OTTzaWg-XI@e8Q9S`g$@0Xl` z>(@?kJbyi|3LK)vuPdmdzPYeA?It~(E>CLH-t&wninIQ!o|9dz#*C)EF0>u0BU-YL z$l8QxY&PWlITr)5^-V8+@f3lCBph6?|w z;^}9l=rHFqt@tg0vt6rUP`V67jkzpnP8jOA%aT(v>KNQr05vBj69>mt!n&Xj7`dnr z+|*uC-h~s?yRjFHYzK$}V*ruvYa!nEER$A}O@!4lq$_I)%$sV0dmsNrGcKQ#mXc3Q z>SXY*&s*a2V;fxRn1?2l#i%c;FmbbzaaPexsFZUi8@%U`#-e=cR@}(zY%zo@vxJOj zzaQ?)tjF+iT#of|6skrHp!KE6Fcmey5mI69>`szuR7BRSy~K!_uEJc~u{dc;Fm0Nn zg>6!OWN1SqZAmaaGrwS$Lgp-(-vDWF+y@(@^S^7X%d+COEnHHt2{~kiMgl z_`&KZE;2X>ABE|dIL3tQe~I&t#hxKf_YUBrjqizZf(_P3MPkMvx71GbXtl;K9%wph zLe^#(;eD|<##w0_TzlS0`imXWa3q;#&x(dEG8$N=KTOM3&4saC&R}*>ERmb^1JATh zgbyaaQA3HrVDq=6$Rvb@?>~qa=beVw22n;oNE;L*3?X!2HHe;_0wo1|aJfI_*RK~-wXZ7Ub+kd3#UML)@uf#*Q6(G6D z5ThLKgX{ocVA4EPA8$+lWNfk2Ke(GJRm_6!RXQwkecs?L5u6id2Sn5_$H1;U64KL7 zU(zi&r|&!c{rdwNN7h66(Owj(lAyC^C!pFQHCPmUfxH;s1g#qf+0WmjiRgPnBKa+e z?A`bQvy1F#cf)JKcqTGuy1YpK{d?@e_IOa@OJSVSUM8+z1GUx!P}g;0U|M+rKb|zj zSh08HK+h-oUwbZ&T;=?4_N}n#vmQFya;)khCywPUqjxkDAotjRWZ=~bkQf{bj#<0# zuwfpQmxtq&(J83>Nfa&&kFVZ6Clb{UNueg^;e0&*B{kE1gx2m=)c*Qu+T~CL;`N=( ztkY4{O9sH2O=T9poD6o~Wm!Ww6BfvDacC-!v0V z(+bFWJ3p#^kHPJQd`w>bjy@kQhvN^G(eQ~gaq{Wo*3iaMyOIFGxuudYx$F|}=J)-O z$!5^^ZhDZraWmN6*Fo>YmuX{29wcUs&}U+ym>?>`U;phSxjm-?PE71TrxnBG*_$Jn z@_j8lj62W7Y5iilUhK!DePP({(L|o?UCn=L7)~dMnu5sD2V|wDD$M3y$X}0Fp#8@V z5;3IVtBTpv4viOzoWwIaizVZOSVF_~Q)e)N2(FP0r?Z9<y zsP2aa%L>S+ZwJ9Sl+P@wlfb{O3_93~lQ&P@iNmE@MsHjuNpgHoCYMfvxNl$RNbPbo zw9kfT31Re%j45i=wV_D47D}@V;fl;1sYMu%n?<2% z*$lEj%nZjBeuXh?DtuQ|2aj$&dXBUa!$g@y-D(%e+9Zh?LW==r~&B+Du0~Ik*4HCv1MyJiN7L9?>s5i@Ro5;y*uK zlq)l#n~yky?)W(Xt=yS1ybC3d>cI@lBD(6eDwz_#7Cz@D!e5_Ryu`$J@L&6Rl#rsN z{aiA2+$~_IT2_!&Up2bRC5U;G%6Z{@r(osJ7v#HP0mLto#vYr=BvdAa$Qy^kY3(p* zJE}zoRyo0I4*^kgVWA{37H3K7oKkIlRcXk=msvLFPwls$x zX`KU4COTr;sW|G}Yz@u$YwJK|<7DQo zi6cH;V~6KHN<;VJXFTim`S@ei9lCMj6IyuN6IVVy%|xokVWF}TF1#H;{@am*9{vC5 z$;UC!S96hx8>j|(n-@5DrZ|YH2ZA1xO}8varhVMJ`0#~zx<2b9{d(#LUCKF6s@J-+ zf1d7z1|@6M|8B)jaQ{P99*Dv|lRtFb95s3(=_{VCaUyoZG0?)Xnvce)6Pa2`=G99V zsy!nGcU{>Jvya*1)(CFaXL^MMDCQBn&B~~2J3`(!nSjz|GYo#1fKBR2n6tNpe$f%2 z$Z7}pkhd5vmHx$zV%9^Rf<( zP5sV<8l8Z!3#oL?d27m0>_fk6^B^2T|CZOXl=8!Q4lhw7x%ycHcZj zgE-DDlGUQNk2A?%^(DNr6%qLP3->(|%3wm76)@pTaammqN^yCa$j!2N;(ILl z@Rs1?giEwn?thBT!=K9cjpGrDjErm|DoTTfoaerd1`#D?q-aQ6X?)WVC3_VSQHZQa zGP2HdUq@3E+EFsnQcAK?lHc?D6VB^A=Q;O%U7yeU-GYarn2*cWX2kaZa3Ety&l(xHyYm?8Tm3$Zm%in~h+Z9lC zs~FSbl8q5_?$aZlMm&eya1_8l*0^aaOdqvEjiP9hBASUSl>)JAMI$Mi9*=7d|0a1Y zHT36tXISyf2=ssEkwI>EctHL($Uo$`Wok#rIE$UIJI)V9MHK0~ee1D!tQ!ty=nCIC zO~aRKJz22lSWXdqzN(Zym^>@yN8gqd>hO#?k6Sl3{$~h&g9B(C7X?qYtAg&M2`JvT zxzb6?8u(+B!6<(Uzt!g**q-DV+v2xyig1-8kyR3?1*P5L-3c*-d&P8h7l-xNGexaX?? zj;*x?_s?75+}Jm`V99B`c9jouT3%RuRTArEC*mKYWkl4chvfAr!oHzgx}r=TmQAkY zIZg3|+HQGaPn!ilKz9?A`Fub-2XEn&(tFGwg;CO}{fjAglp(V3#PR)RWsv)~f~tO< zM)r05#=^1DP=6wWIsfMxG)hMZDs#Bq$yaYwnimNfQDHFMI1LI%_TfC8cv!Z~o2W^; z;!(U!o{PL7ec_4_zodysPn(IOYjn|gSdBJiKO+IdCZtq*7m6MA#&!Nag!izE5&U|D z(z871sPa#`-6IW3*B`)rO|QtKiDPJM`wHTmwjAu#kD{^RRh$+-4{x+h$J;}B_^zHS z?W*mE!Z*i=cp{LYP6ITs`AnZ$aBhzf0sMjvCS^_lZGW!@VB>*L;xZ6jx8s+NSk!Hk zVlTf~2g0XC5R-Eqc{)E?$KF8dKjsED2c1PsT*k1mg;dfMu;=LxGA_x9yxddH2ttFo zu05B0{&j@XHEx@UDNUlybW`YviN%7`Aq(3Pa6K=HAm{Z(caDoU*bw-f5 z&3D3&;4aq}SSlnNXP#Fg5)|e=Z226CAhGea)JXyk;FP z;AT9%U!|eLl zM^}+Wk`44!%_n$&XEo>Sd_Yewl;L}F{X&V2P3U>J4c2x|6wa<*jMq(4X<@S!{-lZg zX(kVG`rRE=cG6n@!|pNg#k_|6r!f;(%2N_7U-ayV~UC*G1$z(w3L=~UPQoO!B^`KT4f zzb@(qipdNLzv+Yi`P0-`>%r%e`2a>DR@UGl{H4KDZnLkbRTz{s|0`gHmt+&(bK8i^LdT#yj#d7-%Dd08DE0^>sV>`4ve@y4^EFbqBgwZ&Tz}A zY}GlGa_FMUsSoIalmy0pq7;+AVmcNbX{L%duVQ8KKH6szMsn7a(Qnn1k&IUWi-Y;Z zC*U{@%HX_K%Z|gej%0WxqD0S5l_0w1<7vjFEBHVuluVH_5*l6!Lf4a0Onb^AOz2D? zyB#=hsmVq5*x&**y}5z@@*Df-Qhj>RpR$V!cER)cYvJ`}z_M*|PWfH3B#+4XHk z;Pm+!Na;rL9{e3;R?KGjoxbxq-mVn{ad*tzzgM9ufWcJ1=WJ{AQjYa&0=GKN$<}aF z67u66bC93Mn<{sWbVfX&YhE6pW6Rr6XPr3Sc^*hoEURda+I~DgMVzlQ#|+HpOVapc zP14%F7#<%wNoP1+riFXI(h9y0dHK1CUiq1ijupu9qnE*FF9l>ABT3$yrF1AX03YRt z2^f>zVEHzHU1F4h8yCrANkt7#(CnrgxXgUnQ8!#sIuj%s{xGJZ8}W==2>pu@Xt~7- zlq4_l4*k)`=D(BZ=fBeMt8gp^ogK?;zN>}rmV{v%$Iuox55hT5eDPe)X&N?ijZ+(j zlHUuig8lr(ur#@i7H>SnRJ)%C%V_TXwoHTM#Ws*$f7 z2{7yLT6mP10RP%n;_owC=~v%ma+fy zcedQb5cb6>;uJ+?+;lyHMr@u0hdb)XrZd~%S~thfdHV~e$xh+(y$*9%8fAR8a}r!V zF_k@T-wgXXZhPvz%jC18GP%!ViGTS+GH4hG<#Ev@P-_#)?7ac*ndNBy!jN%?+okmHw>?U#lK_F z_pU9Oc`BTGD$k&;A9m5><0avH&r|6=-1UHo}L@?1x9rB)s?l9!T1QyE%xG5r&3ohjI|nJNpbag|3IbY;Wvm?~wCfK7&)}5EHj&27cUp z1V(aW;cnJXcxt3g-#$DK(b>x(GP{d*MSP{@V;<48U*h1=oR1-f&zWNeN2s9ENO&#P z8UH?!6{a10Nsd5UXT zPh!l;5p{#)PG!L%DD9Y{9Joe+`BSmn#$r!hNSPFN~ zSdpvSmZFb!7HUfjK;5xYxRt?qs26O+d)p!~U`s4MX6y0#jUqbl?ImI)Ua&x-TDn=7mtBj==c1ZCnY;x$Tyd>y%4afaUEb;!#BA9BojyB3# z;=R^&kTE`$d@2~EozVmI;+hd6{aOvTwEBVXWqbIu`6Joe_yV_{n1r2$5qMtaJdVyq zc$v6?TxgGmpF;sKh3mAx4+y6IQr`G#-v~KqR}Ou0dkFhUfC)2vX~eW)`qfiNTN^~s zUTXzxiL0a1bS!FgPKPO{mVrUuXB;qCF4XKahKc(O`DIh1&{@L^#qGLrf1VvyKh9vc zU%UyI?8nmeDGDHeQwsbo4$3&Y-U33V~}}J}cgSmaLe%4fXXez#%$aOV|SE8a(K#_7NZi&Ey@&KdMu+#Aw}9K-UN2kVi2pW~~T zfkf0nYGAm8q&KaG+?{WDFGZH2^t2LO9XXYFA6Z8-{@V)audJv}2_I@-P9WlCE6K0? zO0KJZ1~t<)>ErurF>%gZu&mUleZA{oxd->1|2>37H6r|QKQs9KW;N-T=gxKBe`r>$ z4$AC~#f;1HTrT)EPApr6-}YFb>eNNhaO*OW)x1Ne_aq9|C2ZnvSMemR=^~iC!kn8V z9)MFfVn9zk4>Ies+4C<}VeI?-=P+b)9#K&bBl77V$ph=faBWT>J-AJq<9ydc+?2JLdi@HoLOKFN zT%IsWSD)gLz6*2Wm=zi3m@saau7P@-1x{T2otVekz_?yj?7I4jxMtd;?8h|HrnwO| zSNY)8N;`B5`$W3+PLZECMoIM7ZK%<_9j-i6ps{z?Lx9Qw^6IGquqFpWT`vHO~2G;OdTSfv10dXTrLrSeJf+o?#nd#rKlFwpocCS{z|G_zEO*c zRamZ5K-GP`=($u&C<{5q3M&PiCo73Q|E0uKZfKzK*<~allI5*5EW#^hr(ul#L%P(? z1`ow#>#1m3M=+2Is-=E|>cX zdmnx*Q2!s6{W|lm~$Tq@45`(QZvDJb~r4{>PE}O zpRvD&`>m9(#tp}7>0{1KrGEE1x1ZO*j_epzcrur+S*ZdaUN_McwG>)3&Jz4`TtRL0 z3prfJr~FA(RA})ZPAS<>^VZf=_o_si)pD8~t^7>X&VeRW9c4#O>P!b!oKF(Bw$0C)WQ z@QleX)+4ozXj)pqSe327!KA2Jr#k5 zI{ruk1YZ`Q+vUSlV6{I6v**J>aMewHxz<{AYX7k+5*FP=kZE< z1a6{X$ew8;E>b(7Jf?|bbiAgf?qk4CViJ^E?I*?>yP0t}pV2|DOR#8E9gD)$;fF{A zG_F&}h6`ha<5j+peIuHvpjQm4V#dUMc?c3&Z(x0XQ)OuhEX=f|14kCzrD# z@5^w(w|qFHGFy0b?+7V!41!UolPFV{1}5X3VWfO4-#cnA<82`i+j^T(<5&mXe^4Cu zsJ^E6_?7g))-`yi*A{;-P=SZlvCjvYxwJ{~+^Jl<97bGobWU4RV98;ckr&BxAM-F0>vm#K(0s)Z9-Gdvr* z?K%FJgbi#by)Z{t4&H>S;DP5CQGe%C+N>}S&0cE~p;shK{Q8{^eVIycKG}c=PUTW_ zqbK-N>MBU~MqsFV8x8$W5)6)*1OK-zOuUb1z%l(+%{#-y{7R(@=DG+||MO)^dh;;p z%TxMbLp@pkWf#Um3YuTY#q{ti#2Pt9+Myl*`{n*{)dvrhD;pNM2c3B3kPm@@`KVncI($8GoTt$s+ z9B7_|0e(6nLRULoL|2z6l-sQVUwXciW8+qmQ}?!$m-98j885?uxHDz)H^0#48=FvN zi9PdCw-`={AFdRr%RqCtB8(ZQMd$st#PJXQ&##<{;&q;IZh?>`gNjsp_9;>j9gCeg z*I{c;D7^is19GiA?k<*2=Q&?MsmM0YQ+SL{&74cGPW6QGk00<>{gi;)*C$ewwU04u z*9>6q?nJFq8KC)2OgI_eVUrc-TrD=m#fe#L;Dm<|`fvpa^$frwMGGuissmZoJMgt) z9yYdpqE264k+WlO;M~%yRQ-Nb46)q%>A6>xFAUdn+)S=g`PGHGyc@# zLLhFD&P450b2QdjMyi8vld;`?pxU$@onyqwuAoL%WWNGWw!9xA@+Om&>!*R#%+|Tjrvsncu`gR9-{@9kLaU8ol+L^>UevlS_-bion z+(BM_bVNa)F7{=ZWA2_H$X|C8U)C$)q8eQko)clZV+ugy;zOdkdpmV_JBjz>TrF7j zUckJgB3!J!fR2~(rF&<5pgz+RX}W_yKWtbGr9b9T9_PINA*BY9=jWrHk|rbm>>FLV z@|W2v!twHkRB5Mv2JT-Lj(*)|v4^u@F5^7IxfA4}o$K{%F#AYUijC1PpafTJ@Ih8- zHXip#CTvR-PT3?vGZ&lTTIGB2J+=z$>k0U3sk4W7q`957pn!hN+ zx+E6<+KfT>OZ}uNsu_|NMR9pq7AGq-sH7n^y z?yf9f)=LM=6==DpDr1lrNALdr2{x-EK{wqq8+jEj+EUX(pvyxB-H+Vs(ESDjh? z#y~J$=SlN@#NgoCA8cr^Eu9k-0bN>Oh|7&B_#R(6GCO=Xy6 zOB^BW9>HCiv2$=&9bPylydcJ$;sLZOW!|Q#iDd`wpDz zttvDTzMupC>gd?qMf*2WTFr51{7j+FOJl&wXMJU8rX5RKsb`jzcKl zFdn_Xce5ca7fC?PJa{?bDYd;gos4t8LZo}dXuH@?+EiTvLCYU9b?efIM~54p`6oh_ zuS%fH@>4lah9RKFXX?^w42^lWxIIA%84%9~pPFE5w=@hI0zVN=4_7YdV2oXfqIA`% zHqvHf3pU?^sryVVZf0?(^4o-?7-TmMC3Xzc*%k|Niq3x!8Rw7X(Gu9AZGy`mbPDd7 z&V&a8YM^@SIwSPG3~SZ2@x}ZE7>?Buen0jM`CW%`XNV5je=3xWEV@PWn^$sPGjo{B zJ*&GtpJLj`ecnXr*R;LbkmDsD!1Nyq^h#eIeLeJ@+*BN3&%V!v4G|Hrb=x4jj5`bZ zjGcgGzq{$)np)Ic;Dt6d*Vwjl4IEP+fD^tZU=)`}T=*=9k$?3MHWx->s<63wHtacjE|o%~A^Hk%xV<|uI*sh`QZCHJ9R&vClM zCY%JnjwbtN?#EZ(m*aE;9bto{H4S^0h1Xn^Kv`D<)8bCtoRCY_9Y zj)dTvad7qz!lLn3%Qx`b~JsDozjK3aMG13FHcit;*( zxw*bGNiZ`LO24^5c2tW&6rRBwqj4~lkpr0nHSpZCkjj^e^Abcn;acuhEVVS|Kl98% z`v*^e|DpuEZ4u z^ye(qs1K!2f9|D$Sq6AeeUQjT9pj7RE;64mxcMxXZPa#xg{@^!z;zhAZ(95(0Bg8hsi#hS|XEYar$F{JLvJ5v)5253n z;buryjkr?sz#7RC2OKZZw>97hB% zj9;<>o*~od7EO~X#4)j32K!&%AimiQQMkadeU7`a&BO&OCMPp@@FzYV+zFXs#q_3u zGLcT7jptrOz{XG^yopL9!{_CpYG(rT`HwhW56LFwl}qrcX#}3uI*EzLeh^!~JuvZO zAK9N6jn0;f!D5j%`(MEx%oep}uQ=`n#}|kTGgq;Vp&MyVup<22wh^P-CqmMWokYof zDGE%AsLzaf=&^qV{JOOdPrDi+4JjovQGql(Jq$p5=@a`R81p`tOqPvil+JVzPpdn4 z^rji4W*DN^!X%<6rAIuzK4i!BFM_8Edx4BU%c$R|U__P;(4CL&kzUal!qXli3Y=r& zbnYN^6OW>2ud?L9&(q{O=R{~3r-#KWAE4Ka`Pj;<e__dJ8gCD3ylnpjAui4LaF6^u&9rVB5he^F$4!KGV=;W85*@vkt&AKU% z-#&3(McW)a&)O79kxK)**KeRgay!+c-LOkwxoB(5)C ztnvcQZ57b{cL=?`qlXUnT63JPNcuU~77Cth#rb?)$QAoT%Bw8lRoq;-DLPbHYF5Xa zt#J<{Pdp~aCD$`&L;J`i&t$L-Plec?MWjjkHpyuI!usw#2E=JBB%hJMpBE31f!Qt? z|23b-U+V$JvJ1geuY+gL1kkvb^I_=tGwQJCFD%S0WWu~p;J%(JqP_DYw!JK%KOe@B z(jSwsFg=xOf1p(Lbu)|_%JA#MUXWW7zj3E+8&%IT!=bX@bkdqwvO)PQZHPSrUiRg< zOmqU@d{G$rVi8A#_Oh5wqro6t7sW<7pQJ6r9zSP9Kc0O;W4FYE@oy*mZqtoMbvNiC zy%#v+ZB3573Ur50H+hfS{ z57%+u;7wTMa3A}s5xT@g!P{z`pmkvaUDtk>JWcCm|0dsOU$^GNi2;A6-9-c|-6vzt zudQ(S=TbQFc`5al=^(%RouTZ-6;gL4jmyoxA$7O=nKR4{I@x~}Zb^5e6+{{ar6f7$ zQwy5@@qxO(dTc{a4VB~eUJF%Z+3Y({$f*~nQQ5AMK2nqxo+|Eu&>1s%c1ka4+iP(g zzaT&$(NG5O7v$rXp4FTi-Im-~Xo*3Jag14T7!70W!G7m$_WSI9^7oTB2!`jwV8Rr7 zpyabaY?6g=P^EyH#FxU6DIsKBQzNT*UqmR+Yr$bvQ>?W~A%cH@X@-j_&a>Y_y8fu( zi=hU%tpE$^m|pEkn1 z1N%Y!Vi@U8OoTNy2bt*UkBB1o->d#Wkz6ra4k?l>`w-_~N$+QL{asI%#>ogxuQtHm z12LF$IuMTi+>Ae)H!+`!I49P6j^p3F7e-czlGWupXe^($s98$_519mjbf*HWPK>4B z*LcFx*@q$DGJ$c-tfP7+`iw=$TDTi>n$3)UjA_X++;>t>bhce)w%S|L2LZA0RbmX~ zS9Ab{T3jzM!0Z)jI4$)yddkcf{t+{wf$`2L)*8SJmv6YY6LNq>8&70cNNuUrB3U#zMm3WJuI1L3XbTx-2jh{MA%M>+jBH<+pB< z)XsdkaqkpLeRxUNHsz6JPK)Vj4O`mzPFg6s>kaChU(f#CUW~&hRAFL%4>@9RjNkos zUS&!eZGnuy5T>X{ zf&XFZahyZ~=m2*fy0F@cOybGo=lDX}#JS@%{(U0XV+Tm*TQ3Mo{=@#rJWD?`A1BNu z3E^zHN?4WV58|qdsG~Ch4^%&69u9DsbEk2*)YuYxI#l6~v@*X{;S9XLuY#uBZ10Zo zJ}k4l0%u=Ik|lw6uyJfYS#jwy+0@=k-g|4&7CTd%)iQ;ClG;sBN)B8Wq_Dwdo8f^^ z4E&L=MOT&iXxVTWi%O57=(YzWC75$Z?^+KH4sy6>+-kvF7)r}F+<>j&HB4fl7CAEI4Dmkei&w^~ zL#6TtqA<6IF67<=BN^$SYCn@vlMM!~3uYLhpH1b(xn0Upb?D@ouxb+~2+McOrshc} z$qEI3R(PzBOxaWjzduBoeH61o=20z9-c*h?F*hOoxHIa-u#o@!Ca7-4=|m^0Wc?MEMs`;8d zH?xdef=;=sh?FzfFsQQ`tG_=0))DxM1+)2!+cAE~43KQRd=8dHy7iL+nsQ5B<41 z90ILE@n>~1Yv;hd_a{8Gqf3_1w8- z54{#1M5LC^fc*&v_^xj`4^Xl;+?v9%g&+42d)qyj(wu@}8~!7ZpoRxLBiNa_z9=hg zK>V@{F_oJ=>Uujc`gn(TSHc2@g4EH#IfKdRwE;n9Hl9#bC8L{?xSXmubU`C=`F9L7 z*Gr>G%L0^$wqx|Bj1vxi5hG2XS<-uaHI%i#LH{mk2>oSK-`gfiDr@DgU z5$eH6V*z@sJOn|GNnH2iAbsU_8P>;yp{~hB{CC-x`L16_p44aI(L4)S@;4OvzN%yB z?p*ll<^{(?G?==GNg!XXj&GxKcooWNv}M(56cl_Vm70|_#f$44+Qs0)gfkf4x}J$m z`c2H{^wWErq{*^BDXR@#_uAgV zt;{2ODOr^t@30S7EDfVBK@{pvhIY-XzHDF&4tl|92EhMfn>Yrz?D5JUD&*hTap-%afOb3! z#*?9O=yWRrR!8p!!^4`m%O(mM`)f!{Mh(20st%%_t>nPMU&Lus5ormXh7KS41k;`O zK}AXwvpDbp_Vw?g%TIDX*uPy^?y#EGcUTXmESJr=|A$p+2P{e-2c4%aFo(?`0fzC>gB3ku2bHgRInTR|^MTthZ@KU=NVwytwnR;3WO9C5$%jT z-p~FhDt;rHC^`-a3LIxZ%d1Sh>JcD+WCFPlB?UO0agm zGu}2VVQ(jICASW{LyTn-omS8BEaVmV5|?9m`<#;mHw|k@h|5)ypzs~u`z?Z~1rMn8 z;g@9n%*7}->n-&t>mr)m49&oeVIAzExFXRRsw_1TR5~axAoM(*50N0zo44ROZh!2T zumz8|ltaGiG~!;}$W&#^@;ihd2|+u|eW#4uj?KU$B^w!u+eR?#J4nzz8{f)JfVcL~ zNQ7@C%#56X-!&)WKW?t2kR@b9*G_@6U_(ag)+krwRgyauLPtDrP3iEJ+WL2V`1 z3Rb@KM~yi_WJv?J1&G$?cItz)#6K8ZMw{q5m+<PaNb5R9 zBi&>$xa1T5CuPNm2F@a}4=*u8U8*or8;AL~IA@H08l+zKhx*0>A}Brwd&8!YTQyl^ zB5@+BbwRW7{U7w^V}ZHwuh-|g7u+eG)v zBoe3M)2zEe2brI2PL9NXMXP7`1)s`S@Ox$+n^lDcOY}%Z z&@=L+`8>LoE`sqfJ%pS+hEKWdT&uMa1}Fcb-?+@F{8BMYJinNJk(dr{!gVu8T6N&K$FN}I>f$yir(b=O~I2RKUZPl>B;WD}FzYu598uC{n0o#4j z!7^NytTmD*Lj{kR!{`Jno^wu-|FrqX#T7BD+7$%9rlESdG#OEh!1QyO!2e{29(NYO z^;v#cr*It)avcK6iH4|F`i{Og^~aa1w?WvmHDDpjlF(iHAd7uOt!_H#B;O;9nGwvn zBa5cGws5x+h}f_uO&E=b?|IYl(X?e~?-2?YZu*eVhK`tGuY`9>gFz)mn@n8wl|D6J zf)U4a1j%MbIO9+O4A0d=!$?I;am&VM`&Z)H$>Z^LuOIRJAx2F69dVYXjk{cqFX( zKyigrGIR7}9XYvJ53VIh5cul}f2L%>+6@}0<{~0Iu&;xB60J8|q(@%3Ob%8iO=Nzv=-KzzSxt)wwg&2&Vl!&DcTsG{R z8(4~$fL_2LnfPrCUMvWu>Z!hT)BY`y7kggUBpbX>aNh2XP~KXBG36p4%e^zcyy3X(-bQfw zX*+atMc<^X-wdxPl&PJ)9Zp7=V@8TA91<+VB)dGm{TgNA#zSH3^hezOX~Qr2`icmd zw@enl?R|t{LER+#eJ52a4IpQ4Cm^hz$R?)LK;6PRi2BH}tuKV5>qbTJ)#Lamg=gS{ zRsr*dIfEzaPr|aK1sE-LnVYN6#%(?dD7u8;j^JY$nf(xB*ao_|G@Cq`(MjtS>QF?x z8oQU?Wz7}F@M#eDJJ#bkNHb2t+`-3$cY7z~9a<@z+9hP2{r%bS)J9~-HEhJ8)EjA}KU8#Ms_PX~zRXe}v`eo5m?-htB` zp`hV}9#)=Qz=#H&=lTJS@Pq5E6~-T8lcoPu$WK}iB}EeG$nCrS^xmS{627Rz_7bgs z?`cjB4}E_O;*Xi*`ChlPaK!pB1nXP@k@+1o_mKjB_NJ?N+&C1?K09FJw5yzFA_#Z3 zf1*DOUa=qSjQHt)yuixj9((+`91h&iML(km7~8mr?)TIXT68?-)eXKSdtPmarP<3- zH?azLt!N=jJJnHNZw>3UJ_%>&KB1FF+Of%ND&TY_;a3|?lEL?fv4>bo%DHB2=ybs=OMHK@kL%zN#jw`9BZ+``Y?GZUTuBHS_6(wQkf)g;m^BTQZ=|(p05`#%eo6vPk z85aGy#ZC%Y3^FCY`0>>c4lFg~1#PLNGC9qpq4@*>>1_@;;QC zhT=zzfeE$=XjZiaf9G4`NdFr~ZpvcFc^)YcH?xLIRXG-w?vf7Osm8&qA?GlhI7yNC9TKf15)^Gt}XP3-@&Nvn`D~$O)`b+ z;w~K)TXhLMYAq zv=csA1tR~X2mUza43kVYgXO9!D&OA<6EB!B^UkfpY@1R15H(p?=`az#bgaZ5zm%b) zRSWq4axty+EXsFT(C(?z$z18*^ud8zdd|0&C4pm1zU)}?xJVeC^b zw^Gyk917=NK`i9lVwQtwf&L zTjq1YPBct4`*r_BA+fBbwEoBRkANh~|cK`*S={ATJ{l><3-+|oG%CHwRo#eI&-_o@`{!92_IH z8l!BiQ9j{0S#fS5mVZ~^xXVjWLx+b4CI7I?V~RoM4A7nW455c3AM$kUbP+k{QC$J}b2iO#blFnYNoX`gqW z4RSYu)5ctn?B81a2PbJ7H)p;c^c83Ce2v{V3W!(OTzp||K~Ag{Kvx#WI#{9w=80cn za~Zd16IVfz*WX$FZaz8sGZ@bvy^ou0$AaX0C;nGy&atd)h)Vk1Fu7GxIAr~gp8LTk zZ16s2%FD^T0{I)D)hJ7=^7n%7q8RQ!_B7SAGz%wTLsI_G(G{=U( z#WgR%J|`X;L<{J&wh|_~s0(toM4^3(HN7qsh<2S(puJcI#j9F3?1JnM*k*Wt=9&<+w)y+oQtgFtpymlb(TzVlg<21(}&SJGgbD@%Xig%dp zC@LC`hgXc4b<DS2;FW2!?iSC5z+_z(8>g4R7wFQu?zX zbw1~mcixJY(`bTG&WGuJ-Sk7#4UC<}vFk@JLf!NIAigq`ez^Y#)5&D!mRGPq^y>ty zJz&T2fr9B;r2y1C@{(C_Mhg1Q_K-y@fRV~P2SI=P5mxBw+#t^99t z+c5?VylmkY?<)D(S`CUh&P3NtYlfVY%$d!Z~1Vc#7=8 z8|b@g5#Eb8V3)s&#M^uR!`MqsV3??1`SN8O@mbsZJ!qbw;qC+bvbt)-cxE zAK*w`5UK|ghe89bhEu+ocjTx{pxx|R%68ZTqqs<+rMF@ZW*%Lz5+ z{if@-&I2nV0v2-;=*n|BMCJ|;Hmnq*Jh*}8{co9Chey1zuPzWxZf2O0W`hT&`E$Ie zlk}gI7Zgd?Lel+%;Cd&EW|FxEh8C z-05_K4KQ)n5LH#!h7WQb!Nw&U&FAhWCLtkk!2dCXN}T6dH)nB2Zx=}%R)Vea=CsSg zmQ1g=1y#pO?1Zi3IEKu5y8dSXJ_$cUGouoT=SMxb++Trb>)vC5P7;p1{!X?#IpY_X zGh{>WOYE1O8)wYgRo}a4rcRMKUmK%hS{H**kOcxLNu>;=-*D=@&UatS6>P*9G zdZRwvph0PnB83!b(11#H_OnhIN^?RY6zNY?h(v}c%_$T`Dxwe?C>r*&wn_hiy}nu)qFMRdb1p!xXy?9+FfMH z&RCQwm7>cHdAGs#YWBRtE?WiJ(+LtCQ@G&RVBH0~d!9&_TMJjNcf99PgcK~hlv zvJ#Ew=~06;2~vC6k#wu`Spj*TyYdZSb>CwuI8lwUn@+RRxmU^3vJJ3*K$dL2tIDX= zR@1$|K7#r0^%#6!7VT=+l2U~@l)ZnJxW{xbmOaMk+vtex&l_Qf+h}f$%3QSnHWAGa zj)7aA30Ub%neldeFqqE-P4hWQYz_I(pZ-%?GtnR3tubb&CpOVNnMa8K^)T41D_?O; z=Lrp3cLJ1jV{ygYbao@()6+M23a1y{gQ9|SWZAA|V4FP?a~xw~)t|NW^6~+}pN>ut zhjdahWgcyeoQhrcJ$NDTGO^<4PJWKPRM}k(L=0wwf7Hba`->7-F8`0}eR9P#k@s}r z$Gh~Ck^|G_$WfIlAd4;4h|X&xn%`B(NT2fq)zV1T%TgaYcn`FMRt8r0m(%G*gUsnQ zCVYk>o%|I{z%`{MwD5fdE+{c#bcOEt#Z`&t%5aR2O*{E8W)sV8_*XIV<}Njskw>%Q~ zWE4vpU@8P@MB#n`{7s#POq2k;CugH(YazR1d^#>2zK&ymEQhn(zLK{$m(eq&znE}S zYhtu23AQ-@qcxlU!`CZ}>0N^)tom6>#V%A)$6ha-shCGbf*zpb@4r+gp^F^jIVWjV z>v-RV54$!%3$l%Q?^^-yw3?p^-1BcV#PtNT?N=*Xo|%aA-7drSi)UckENd_*5rtcJ zNysPFSe<-j#?(@je2q@PYT0+-xXA+pWonrxz0G9s;At9J>`%{ZK8NP}rxJt3YGm6E zjtpC@#6A1Wacp9Sh5dm`*xRd5x9f1kRoVbP@XUnk(>2K7z687#Y6H{K^kGeJJ>9Be z1Jn1vArEhL!M|gB@%E`Fcy!4R@;c5QYa*Ax{_2kMmr)j={YnTw%g+-zKX=2D zLyPg;Pfa@Z(d&w>?dxGwxjn`OU92ehaU0$kHsicx2Lbfg!Lhtl=j9=q` zR?p7i?(k&Nxpg|9rCG&z3+CXu%C{IL)<*U8=aCfNty6nnKva#oVDY0$vgEcOB$V#O z8m@=zey0lq-#^p0Ka;TUd@gNTt&dmkJCPS6V>!jCW8u413GZQX!}*K95bKd>cGE#I zn1ACnTf(d&Ki4&}J_%0DwR2)@p5IoOR5?<9{=_?SEB+RW?O%lr9p6AE(jfChVj^=`*dc$ zC^>aBg2-tZZ+>)gD!>ddOR<5j_F*lNMoHXfBN@FhJ45GDy8%$zJoc zrb;_P=ubm0qO7$AU)-)Dfo<0a9bQfU&00)*BXuz)Kmk*lc4F$?3aZ?Amj)OM(b=ql zq#av|p@tSBkX7*$ ze^riS9ld@r>5ZZE&M6h)8j&?{%q^7uzOV#!oS)M`dw;5vFx@h8lmh5|_$qiXJRWsi zDrl;=1$?sL`z*l&^!W)>@aYqP$s7jWb+zE$QAI?n=RIAqrkAZyI>IXPJ}H$ayb1BG zGwok%0TXMIVaeStvOLld+3;s%JfBgDICh$?ZF)==)<2@76Xv6iNDNuEb1qeCyv-Ol z9wg24Vri#o6?ZzubvG*I%S|f z^|hsBk}nhU-JG7k7KizdKQP)$%X8L`6j6W9DL1@M0LM zm;h1fH%XUOJ_)Z+gXfC~L@HYdMSZ?O+3SNs_ZjnG%bHxF_ZnGlQSe_dQ0pf;fyLlt zDkGdKKM3|iCYUX^Pq<0cTv$%R1zL*tp|^LLuxpYpZ05QB_J7AxE-zG=WV8Z;_#FF= zJKKfF=Sv7Br;Bka9_qpk-B*dy?ok-lkPGMjq{Fq|xx%oP4B<>wcSx!~53eqUk}Hd4 zg+{u4pj>hkKIyL!CU?5Smm%Jblbk8snH?_lU8#b0i7~=;z0ELqKtw2ZX^qga+fw-K z^9;FF)4LSyCt-Tg!iMg4r}W@}OAqCJ7#<88SO z67IAzej(|+x0=U2Kfv>^o$tt5@w#(JTczdhZ9mCT$am+`LbNt!qu4HNYQ=+u7}`ddZ0o~OPT9{ikk zwu&*n>JxExx+=_K@5A{|iIy`?^WD9SO}rCx8tneF4HKu9;^Xw^RCJXXcX(DPv_4+L zGt$M-hDfp^t0Yp%=in*$Br=}#{IW&Ko%uAV=osudriT9BtAIKOfQI^8 zoUN;leI2<>Xq+MYW7Qw3v4!_%xAUFQh;2-N-7v1-n8;_5YiUsU8CYPHg8O=tF|(uu z$JA!Pj@_QHdcCgj(0y?(*{P7KiV%v>A`$|x@abzSUis_DZL1)rc$8%`XHNVum+>f#n3w3)RQCi86ZQg|{6=;MN1 z{4}4XGM{CHJ3pnZA+LC02-YbmJbKEHWxHAUyC-NQ0JNsb9HFM%KG8^q* zwBvH}ni0%M0rfR!*=cFADvQO<+uPbj3K9a4}HR*pB) zQfboe0PGjLOP8K*B<5LZ7$(N&_YSu3PMb_HYi(slO{-)~9`&-FkII;Lx;!stfepB< z)qvc&JS(?kIy~Ct0bYMcbB|i}p!j_gTeWe3{iR_}x>u{Sd%Ordu{l!Fd^?ZS#bw|e ziSe+eNt|x#RKRoH-ej|f3`S)8Fn6Ei(LWD0v8V7BGj5g`ZFrc1`omTHUPpvWG2>uw zdp&88wZkaYTZHXS#vL=3()d&1T&Ha}8RrHV%j_l=JZoCBX%ct*F^5J(#h0||pcgKo*K6(rGSM4Dof;Rm5 z*PI*bv4!%ZmT;&;f}Edyjp+YA1Xe;17@TTPYJ!lK>9s3p^f`>BC$P|if_)xt=r8oBy2T!W^3Uun=`QYiH@-OO$XH7O%pih&%vso z0I)lh%4c;%=}DJ3T#MdtQ`4LA6Bm#jnVYbq@H*bxQ-blz>!51G44M>v7^CYBqUf0Y zpe}iXoT(b92vWRF4OWH-Eti(SfT;=h@2wvu?9dRrOPmkYB0p*F`~e{jx><|LkS>} zQV-HO;=(E6&tUE0dpPGL&-wIBV}E5!3(vm$gzFy{lGWj|pr~{nqC<5l${xUrME4h}z?U2|de}sXWVKf#Tfc(KZ;@a&bdDj5o{s_Xk_Orm z_Z4fOIP#vA|A4nYg0x2{y6;?03;Fxj{43W{1kJgxuP#up0aJ48B%gCEiU6h2ofSh96w^qKBkwHvZi_c(y@C1zlAN}E1u>HdhUC?jbpO6U;qCa-C^f|A zFNKF8E$V7T+U*PMqgp;EH+?p}?Cga(H=mH&w?+se(iJab4zd5{_mE=$*R<{TUAQeW zfwk#vM6HG^wAk7Yrd0+BRvKR+7mIXpUW6gGi^~XCPdI_A9)6+DHQMF-Q!mr}D<|;a z*q1ckqL<9<_dwUi6q@omo!QSB^Zz#rK7Nqq*;5@A{omK4t#u@{2G!8+H@th!u$FAw zI2jb9M`8JC5t@1CFMXe74KMya<>xYSVb zmrS0ylvLag0o&b+h95_&iM!)v)+&D>pp zN46HyDdhu<-V#|F;kguxGM5MkmK~#fN(!ES=wzd}9YWt7*+lunWBPkb0NG+3jCKdw zNX4mNAQKqR^IjRIsiz&zan&?&A&UkYEO}~Ui_`ZVM3ZOgfF9$x7pE?Ode(eu)i4uQ zthqwp-V4T%oZa}`Wf6D#b3F-NGeA@HTyXit32^$CIJYqF5gJuhk;!~+e%#1b+PrKZ zd@_?{A1p0|y|vT0obWj0_zpqT)g|~l&m4O4he+ku_X3Z)S6CB~jn?Tii7+D#)B<-9 z*?q&1zG^!WiA;i=V>zV##d`9Qb0yUh*Ko|x9$3it25!xc7WSl^g${nEpkgxyQ$nKP z!%|)THw!W49tGL3PF8j!zt>jwz~yi2(c1JW8Jl3v9Vy)_>`0XqK03TisQ7g^b}x9s z&T-oSpIk=^jkAhzoKps7Z#+#_e3ukH)^dRRE+)dtm?ScD=Ve?RGXp+F=h2?^HD#lR zEbz^S99UwqA1CiFrxnMaQG9ZPgv>L;Z6oJtK<_DBt-BPbJrp9>u8A93E|hifxLaj?~m)}I!~1Lte$z7a7#cLSJpEtz?@ zE`ixQ`6>Hu);DVCv6g?Q>ciVDb!3O}F*s?|#B;0W!2N_|nE5okqJr=BORH~#hkQ0| z`Dhay+6nNFXHY&g^99qJn()Bk3^*npV>jJ1f+w{`T&zSfcSQbJ`Ph+Jki7UTjlAXn z&npgN&Uyv||9eModngH=+73dUTsc`YwiLAXny}mL7IGuEYv7w)3jJn08RuSXrtza) zxgF+wx7q>Wf>A7#?*oL-sLK05ZLL@suzTQjDZIRjqEt{4S4;RtWf0ON+?{shs@Y?05v(_O0RtYsaG>Vuj~ey zn)n!voPQF(5NG;6>?Q4wUO)zYcVa+zAl8i@g{GN5Sb_ThZZZ!{M7f7Ea9wnnO>Get2RusnUU$hQaoYue%&R?;(c@i!2 zohfukk)Z)!gUPha6!_0E0&eDek>{_q$W1z$o}03QyL?~)t!W2#*P|+;H*p>eJs69j zE-r9rVI@BM?ZNbgj|hIW>VmV56%lnAFPv1aLvn+8CwJjAToCnYq;>v}@ z^TJg$6pz3IhvdQ8TA!3Oo*-7S5@@9yjZ+s&G3!gmqs8{MY~IJwLRr-+wxBzm+2bdwzpWTX-U1r_1-0A0Y)Qh{e^52;@qids+%zQYA%)9w_wz2YMVx5=YRSSrZ$ zFy!ZVHSR;LJ2a#pMUBWEbmv!Rwm&bBv1=>DO)Y=PHshW6!f+-t^GiIObkIWc=5ZKX zHkVFJXlF7f{)1%_V}v1GJRa4mB&UYPlkG|d$TgW@alm<4Im?2+JgEUAk}cFC{2{UO zI)u7=H2ADRAD5 z4#M;wUrF4RZkQI=f<9+*@lc%ul$V}{ajgrXA!I7$mS3?9;b%|#@8_}-h8bYGLY!oM zyF>P8->z70wSZaNpo14fb)j#PA^tULr8BjIa3E@!EaNjeic{!f%|K;9bp1hF6E&lO5%b)-gj(IRo z>iDzjfD%_)9Zf#WvL?STXrpj}300AL%{>1i!G@`&;=`Fo;7a-tI?;4B-5$xaW;_<- zg1kZOHnilqz*{PGruVQ)@VxweV*0(s}UBKQfc!CJMEZpf9undPIf{TC z8;Wb;rt@{W>pSmizwJan8%x1I5=Iv`QSWk zsytM&d?JI)_E383m@bk2eT-)d>Il0RtRs(;2kGYGDI_pSi~aU~3H6yimZtFeFVFlx zGI!ac>n1*;kGaX?xA)ZYtUW5 zq;$tRzo*=`kl?(HcJ)0QC}QBqX-R~vEg z;fS()0dAP7glBbEHusw#(T6}~3e)AlCI&c_H+D+%q z9o^5ax@-ufCLf-kGKR-lx8S&HGrIgeLhebwBKqb0cPUwvz2T@Le71B7joO-xv!;lE z&%33_rW(PO*?WK;lECFMpUCds7K~WL&^iwX>U*IN$(Cf$NHjrViW#4I-^V-bTIl{5 zB?yQZ#oc>+jK+lMGIRd*V@b>;m_IEK^4Qwjng^sydN#U> zI$K`5(MP|Xj%0Imbnw^qUb2&ur~YqMG4_@R#^?ppu>W##`6qek%zH_6lGLFuuHc6$nyV`xFv(0 zxcS3dS}v-G1~rb*bWww6yR-=|UAanbA2|x|i4|_&-hp^6o;V$QOr>J3qtEOxGNU4! z-u-ofu86!qpUbDi+@=`Z{U!sp)=H7v{9QJ9SQ%B4oA9*RX{KjqF^;-11zN-NQUAvx z&j$yEIJz3QMktu#EKxr#$!JHHK%B-gKGaq)%Vv00BP*a61MDpGw zW^DCV;`%KSX@e*+UfKX^=Ecl--IxlWs4O}Q%OQ85o|!vSNY$RM1E1}4G384jt_=i~ zov;Y!Xm|5Iv6C<|beb+~b%0HOztYBNf&m#%(N3WcmHWEs$qLFoS*0Pg&3 zGVVnIm3&x_ciW#b-s4V!XT2FJeE$e*Pd-M2Y(lSp$!8m%@wpt~RXo4i9xHE$&~Inm zX?X2n)>q{g#0*(sf6``hWLyIC=iDxg$~p}n>)Wt8Z#~|YRb<-lTET%S`52d*N1~W) zIK{iaJNP``BzH^jQ?OzDlV-z;!#&WZe2kvHWPzJSM7fesIVMhp3bxJe0_nH=(Ov8W z>=1b1mwq99Uh4yL&!WXjgS-2Q zm|#A+KJGMG9V{snmwUpxmbhUURx#p&vCw3xM>ac^5+{9WDAL@7BWwR*NAGMjOPqkZ z9}1a%D{-zjX*XOMM0QeREu%i>2A$LXoEW`IgqqJ6(fQZ~9CJ4oP55m0YQIjZYjBI? zp0dW=jw5_O=MbG1*H64m5dO;kgFow?@X7je@MsAl*R8zSe?cst@s*|izsy0`dm8>H zwt;Tk#4^8>l&Ddno5e4GQFw7t7XQi^;d!~!blus_q|N#xwe@02;)zR;=iP!@WBq8W zRToWp%Ab8^)sm1`I>cgcGLa9;qfsNb&}pkCY*NcYO{tT_(c~ts(r=(@b<$WRF&0*R z=ef>fPw+1ID@?w~OR6XNg{__<0k*EK^m%hLn=hJXRUbhO>5C^*P+%~=o*+v&!KFr)dU5A022dMkD8`SbaKUs1*3>y@KQ8?a% z_z%A%!4mD@s3wm?p1Z(o;02Q}s(^Ciw=v&SW#Ok9;z%LT3$`3-&8(qYn(Ty|^ETuC zs5_)#!e!9$9bsYW7%E!322IKq(+eFLc;HkGyE^Cqv+LIYv+A@2u6Kz=#!ZSyZfJs$ z=K;*+KvODI{=r7ZtN?`tONddT5%Jui!pt8Zg;we>$=FO|R^MSI-b|c><=<7Mq_wg75!tQ1Eo}sPNHpsEf#xesi>16U2&zL^t+Hu z|L8_P^%T?jYf9Jy&_Wk6X7J~}62FI;K!cJL$?r@tk`VZU>FfT^Y;xkL>&XgQKPQ*O zULm+<-w%OinmBnXG{QIeOKH8^M8@jwTe^D509`mH7k{5R0&Vr9glV-M;PtZ+|BHCT zaM6S+MNVOrf0~2-n(x@uLo3>$XO%xy@!54_I88lKboEVw{7h0$g)5sL2}fFLS%G#oChffdjj!YB1TSrDpMH_<9_vPx z9fVxnj5Z=Z=tMkLnsei{cxJ2UI4)Mblcub#La9c6-z)EfP3N>BWyvD4|LsIr_Ggyh z&vyaHWX+{x?X75n@m9WrDhdW6TUk$YBm7)78ojkrafhS{>ON~_M%(|SBSVFxYJM}! zQPsoYY7z3;p`5z6i@^7(njq)Ed#KMkkfxvOX=zdcF>%`p#%9t?UAQrM#EqfXLnmPM zA~UGJ`+&|B^7-H0weVB(7Y!-WU^Okq(w@`V;HeW1d6x;=y;Oxyj2!;>^oyKvS%y9H zXVbkOx5HhVv0!uMHgifN0>=bamOJn6z^sysq$YX^jrK~zkL)60TjfNq*o@wLD&zI@hH!{?H)IWT*?h@*zZKg|Je4?J0ol$Nb?@_6r%lEf^@J?YaZX6p7 zBZUQQXnYwRtx`reoNB@||3>4iTzkCr!v>YD+sL+9-e)vdgzi#&fFgCvQ2VL^CyyH- zacm7e{;G|PJP@Ph{b|g4z7u_X?gLbF5Et6g!_eunfw57X2=DH+QhIk!AeMISp+3Cee&ND%{v=L#(lml|dYoTjPu`$-dL zPOi7B3M&kCIBCNuoc+v_`|Vl`|NZ9#MeTe>Y@8n&b`hNQOA6g3c46jJagdDQea0VW z2v6-Sq``w4)VkOmY3y7`@6f}AU)C}TkurGsloNb%(!y2el%O;AD|3`*K`_=LGV(i{hF9HN`wM`ByZ3@W-i0!`(HscN}U za8uHs`1I(&FTEuCoM)`2iNujn();1pk`h*P{5)c}XanQ;hG#3}#M1?$RpjBZM)K~? zBKkvfh?IAZ6NcvUz0ZX*M#78|1kp zjgM#?Cki!(>&b(m_mtJhg*QCkTX8`gxH&(8!H^+Pbe@J!uDCGvm-3-pc_Lm4UVvkd z+#&rl4TS+FuW;eTbr2RLi+awZu=A}6PRM#hK2LXLIwY<^hVBpYJ@_ZJdHEhC>z-p~ zh6YwVv%#Q!HFWfF0&{CH1!j6Lq53;A$=B96;+1)Th=oQ#H|`*(WP%ao-a<#?GaO&E zjT}E#4O@@%D~wIxJv53@Q4snp z2|p~DQ)V-nED1&Z38)cy2xyrTT{EWVDc>Zvns> zI>0x#9;%mKiYd8Hc=+jiwsfux?hYP{trJV>F@=*ApQYq5QoVy*K37LhRa^w`8|EZ^ zmK(RYtcQeORN!8UekH4{Z;_THZ8%_`!#hoc^unkda$uDjr{LCty{gUNx0ml3uUL(y zx|cwlXDi++8xIZl+sK3J<@mca49a(DvO4NfWSlUAv5V`%Bl26}+RH)~L_af~IuCJN zZUB7tSP2VU&tYkSj^$b(U0AoakFK8+K^HWN(akki*{swlJWsL(9)u_1q>WPvb1NMB zj-@l-S8l@hF{va(TnLjVjKy`)HrPNOqWSNw*q`ZyJ0`_rcV-rDcu>sj>K)IOEf6yQ zZI6Zn#lv*_@Jz17Gm06rdKX>Icgz3i4$;!OQW{l-73;U;q4GT`TDQ&<`vk8TO)Cvx zt;DHVj2~^;D+0T-B;fF>0@g165RNt6Mb}AwWP2w4K#gp7+G8>xaJYYo9-i`nbuBZ2 z%TWj6_s2BYoBxn5e=1I#H@u+tzr>Wt1&Da?y{7{?Lbry?@CH<1uiexE0I(tc8l#9Np~{1^dy#~P+c=Llsiv|POZMPylXV0%!jZ8oWV0?Gz)3cTL1$_c zsUMbsa6@Mz-CxYqZMsj&zW0*_-7o0!$5M2yR6R(@hJwjgTdMDIjZPesg2(LAsp2Y2 zuzMNBv=q*RHM(B`svJno^>l`bN`zG^(_u<=FjYu9N0J47L^LQ59eSl;t#A?ZJ|-G| zk0^0_ww)#4r2a8>F%A^2q{!shCIqZ02Lsqow(bTcv)3SM5oTQPT8eVuIf z^P}z5jnBH~Z1_nG`^@pM(lr`BSqX&O>#?eDHfGwKpdB-L?_dQdIGr>?)d%@KV;!HN zDUJb=z(5>)WkQWEYz6zGDHXfLPT=gia>i7$gIq;~q4j4Nn6;0NzqJ^H1Kcrl-)d9{ z(#Iz)qQZiw$5Hv64~pI(*xecd7Hk;Ncl9Oq=LK->b|+(%sLmG(Kw=}$|ksJ5lw?)GPv^`xE;8O(`r^?XIlwdCh-hUr#G`fL08RX zuV|6dZe>~}BLi8z_U!RWGu-`ITzI+6n7sI;iSx3T5|4eJq&v-kh?!X9@xKu;VVM&a z9XtS|b`;>1DZAj^AAw*}xVTVJDVwp*{6qKk@_m2{Lhj7%WAsDSEK*b3K;6zBqLJFU zMEG+e5P#S5)cvA3l5QmEXr2LuFVdNbZv~h>XE&yPGlyuW#W>AQ6Z%~D!?!*DpnB^S z7C40Cm_>KdxXBlV-&}-o6Q!_AS|4VpuOsXJ1>m8p3&}O@+2G-zE41J}&^oc#uzut& z>@1x}!hFAjWa-+9!B`Etcyb!7lv<3A%cQ8Qd==~~(gv5Jy|{q)Cp@yFg2Kf~jHsS9 z8Z64jeZg~KVe?bio)!;Zq(8uP>u@;y`aArtmd4H1yJ_tyX<@^+IJ_`u1!L00IisUn zu|i7%+Rol3W8$Ld+WCv&=}~zaD=xsvf=d`<9mO8r8pYuWW$w$D5;8ny8qN($!@ZJO zWKvcVk$8QPD(@c#i-HXp+B*hEJ4nDIxC{y@&+zBvNIZ~i2~{qWu&}WX8}wUo@KY@u z{?d;J*JZ-9ZStV7>ouN;QXu)B>g4HCCCiEP&r!2516Ze_3yqh}1rXJ3lQ z!*^%FZrL0RKGH+==cR*|{1q~?vk13}OXIDXDP)G(TS0USOMZ&TgRDa~?6NyTkF3c+ zTmM>E!vvs@fgv@>-NX3Yj>J5LDWLo14vAZh( z@^skOQAsmRwb5}ui>}2YOyS9G%;}~?EU)2vmfK`4wKf0IFJ%i+hx^HUk?xR|N7?-M zs*0w&Od==Cv^h0RStz-$i^I|mf*lg@W-t6*5X8AqlyO=t&SfrV@WLTkF`%!d` zR-k8RnN!pBYIY;#T{83S$jMF4boz1ry>w(5T20p@+CB<6^m8h4Kh#X`B(H;^o38{P z_n6_v$rX^g^AfT1HNzaxE!SVjGXkf^p+>GQ8)*NAF^&CH+PTPpN_>~b_{^2Cs%H^C z&Q4<{Xm;2NeVsL_!G%ovAS(weqW_hjvJ?jir806< z{2ff*Ap(t(4pb_Fp$d}MU}pI?95q^#bBTzh?k8m6xu+pD`8uDP1%%_klL%7n!h757 z%OUlTC1<$xKX@ThL6??!vsbT1!wvI6#%t0Awk%*49-9x@YY9$R7z>-@wXs&s9j5$F zq!#?ni*!b!Lt8e_<&h(mkL|H*`&qbi(gi%{PJrgB1iafNhb=F(U`qBp+-JhFp@AFT1 zp4Kg>@s5F9xpVA6MIZX%fFGT**Miu93N#Enf!*_yVOK!`WPU5534weIia+DVEh>Q{ z$DQ!Fd-u&3_AWsL!AhIZodeR+a!>$Ve826&+Dl3 z=H)!Eq5;FgTcBPs4mWsR6&!w%%5%zBq3&qDyT$0UGxvt#@ri#>^i()Lv6bO0aysyt z`cw#7brdfD9Zkfh3dr*K9P-B}1l(S$2;U4bY}>OBZ1}WPdQ3Ws4OtmU9FFFZFL~*V z@P&KD)UbYH>1xPzTA$@zbmdU_SP>JGYRJFOYr(B&CcKkf&ZW%0iYnSWAv4UE?wKVI z@Y$T+xWvz$^V-P-u}qTh>rYynpHU-l?Lg3iea2%OC3b$$Uy>&i=VL9m{7E0V;4c|SY6CW+0U;n#8Ni} zAbZyh5A7Bzr!@ z;@%z&;SYUXeEIxJ5Hkgx76W^oiUCXF9scf65tvgD7>mu%SK-@;F<%+!;Fy=%qo3#s4QDX zsR7@OSf)$5PZiUN>H=Jy=LL}y3MxKoeqi6u;B!4&y_u{0=e}iZ35ukaqpr*<-ZfMJ zy6GyAnfsgAzo;Z9PpAmTJc-8h20B7xaR;z{y8x0FYEY?N9T?{>PKUjBgQ}|iTG&j{I8N(Uf_X)^(|x`oXi;{Z)EsKT(9}%Y`%s_AmC(*rh6wRG+0Tz6%W@GlpF)z37qn~ao(AuPYc)hZL zJ-<4HxZ0^ucD)a^sYkUAc zT^Ylsyq1JL>D9#aRvOP@cY!FeT-Lqc5Y=uR$ESQJZM0Pk9Vf7%!|o2$Vf$BN_+=-y z#f-*2sjILoSDR>*%F^DrU(~bg9}|^ZBG_U%jNV-ybh3Ug#{10?9-1mmvW2%Xl5MeoPO99pwUJpV0;Sy`=Hjc|4f>1hZ%NkW52$m|Gi&@N7413=zOW zhf1==JPoO)GpO;|p|Bw%?sU&9*dmbvANStDhnqyuV8R=^FZc}Uhx2IqY5=BqFW>}6 zjfKj&o*4d*KR>Fu@yrMfE-=vxSI0dPf#-ESbqXtUQWIL%!&HSQd%fepXN*PDZ*iX`Xu@7&!ZriLRF5 z_CgiDe2{^-fur>NXLUYjo%wO{%fP{+;Dt*_dG0)AMyVQfCZ$r_h7EKJ-=EW4ssujM<4|SqSok4~!N>Ou z0MFQx=MN5I%gBAU4Wzi*dp{xAiiPbXLb5i%4Dwr!(i^r$MAhF4lSNX&`{^!-?{yWX zK24>0JaeM;jwznJ7>UAjlj$23B^uwt(WCprIfI$U@n^n|@S@ji+MrT{6~(%sC!sAS>K;xaQBTA#hA|GDvbVBM91{Mju6*^W30ee(o2ZaunX*}Pheh~_xtKrZ7bI>|rOu*A=g!F{aVzf; zKY<+{GrU2U1s!M8uIYf$TPvo=P!hX>j$?ORBVBOfe;7IsM=IMejN6fl8o$-knleDK}xA4lD1MZ(o$)vzV|P{ImdgR=f1D& z_X{W0x7T8$!G0Q?WeHAm^GQ`{2J|g_LS_kHB^Rbs(th0>cExu>@Xb6l<$BchYu*!A zc{%pv-)7qO<0)AG6ood{fjDN(;?spCkXELE%}<4Jhp^uwGNFJxGB|>QePQI**C@^_ z=#69Re^SQ}x8cV6%alo0!2A2Z)0_@7!Nk?YkeT{{L>)=yIc-0Hqx&ZkagKH4wLT1m z?(`8q7Zc)hBM^?&I^ZpQh)!ntV3HV0i@#`NSWPq?t2_-;Whd~5E03@rIHy2*Qz*MH zhyj-;EkyX3jNrs_j%%~M46PVNzVpkMXkOldgGrj0vdkC_2JaG|`}qLc0d#}fEf6~_ z%wGMkyxwD#E|y6r;`9YPR0yf&W{bHvboc^$Dz6=+gyzu7t0t_C_*4>Z_YQ6!h^DJX zdwGkMSyrZf8Mr<7$Mm>R7|cJ84x3h*#TBoCZ{gu^dbc>#22#3WrW+o3KA&W9dAUn2 zf9SqLYrr?+2e(viA{Y_~4Ar?wQLF-pq(o6UjnP$>%R&1=zUc0B2>Z^v)9 z)u?yb26&fPk0rakaqWgpSQUGo=g>6|E<1i^&(-IFZOBTJk*`jyIQOU!l?0tB<)n1^ zFkNkGMay6AWN+$J!4c&Mu$sifCHJ&2B*mZHOif{peow^1@tLG5BOd3A9RtsJDZF8D z4s<3=z<@mup{K5nTFHtD2F?V)`^tUzF!(04z2Y2IFW14mA{ku2f1?jl^ND^GQmwKw;a$gD!KRy$-(X^jkVNN%t5G$oCbn2rbke{L^=y;A4!%~s_$!G6sUZQ42uEgQ@ z7`L~m;ryJN!1awZQC|?n7I>C{P3uR}ldg!PT+XtgtCzh<=kskh`Jhy;2x?a>Bl8l^ z(OrkQ4xaF1!X{`7`t)V_`mcV_wJraVUs}=h;YwXRo$#0(5KYIq0TvuP>jE-u%EYiG z9=;6!qS;yn*ugn*K5KNtd7W7#kqsj@ZHuAezhyw~{Gvh!CZbMC97w9I#;rp)LFuCz zj{EQgol-TByYkSG^%qE=Ni3N)XF5cD7{yb|57)147Du_n@u*W)$cW^9p!ap0Xa~n# zv|3Y7cY3@>-{h=%>!7)e)Vuj)a{mM7*(D{ui%nO}1 z5h9GNiOybCOmWr`ERqpr_EmHct@S&|=!0I+yK@wSRsgxA`kJj(j-ro`U4wDfn*10d z#V=ky1vW01f&1q1ye+wV!IaCuhb8yWS#c8tt`nqCN~n;&coR);pX1ZdM*28c@ghC` zBm*Z$jnMBe7SgY->9D~40nHOy!%y?- zx;*a7bir4Xq|o3>E1UmSoS*-mWm0;Fm_qH9SpAa63~{bV-+iBmwYMUqIVwT)#f6w3 zT7@IudY~@eo+fuI!+pc?Oba|Em5oQC>x&dCxBeH=l>b}5(;%IZc2)(uW?vjJRDz$D zalmxX(&3G_!|B+4$U zXSR5}LamoMIE`O|Z5j8d>FP5Ot0f9se2mDsO^tX&`Zs+XbPks#uV9zojzpR1i%D7b zVieQcLT^;=CLda5u~%IJ{#1)n@qyELbdfSz$owLzDfxI&ItD-8Q~=@6S%O$^OIv%-z$;=2mrMCxu*KeY& zF>dhHS6|>ZMFL$HstU}?lm={{DKJW+oHt_?b*V0(!(HQWM(PQ+&3y@~KiLPBg5x;lss?}I+;gy3 zDwbV2?hd_{7>gSxZsG?ur{W8;hWc_@(H%iS0%PfS)PGMlzVWWAzwEM)?piBB`X<<$D|EM!PW?ReNsFfkUm73@RDt00+u*byjm}xS2E~SYIi|lMC>&<#;qnAhu&IK0 ze?3kL!s98sE0$GzBrE8gD-UMF)A5h`je1_iJ)FgDzavd;!Tygv8rf!3>!Au(xMm*z zMMfkEkc5NqlK=k!Gc7IEhxG5i=e z8|fo#1;L4f8+j+{l2PBLfa{$H?4`C zN4C+#v#!*5*nf0u8Hx(ws^~LRfC?|FIN#(2^0HzH$$6uWdncJ;>((b!?W=%{s=lTdpo={CTutb+ zd@3_bggsYujq^izfp=gY4Mt-jwP*h{%8;0er1LlYjbGshrRfr_*VVF4{u3{ zj~xmlEz_WA#~^;0L{%`*#NCPnXA< z&iN?sv7IrhK87M2V|g_yYp9MOpPD^bD7bZPJXyALJQ=r2Pq3sb16MY5G3#GC)t`Di z8+R!0B*(fxkX7k#QSQuKH1W8LF}o+guKI4AA!17G=>wcO+)oxq8)EeFMPPY85RGdz zVdVZ=sP%oy<%L(1x_8=ayF)xWODGWSzH-uhdNK;ecCgEH^&w%AFP@ZM| zQ8IlbnB4cW#FdM6iA7Ksbq*{dhYh(d4fsJv-EAoBJdXEFzpA4f7+jH3;}`mBurxWX+3W(X43Wmu>zdd~8zX$>)PcUe$623%$%6Ogg;agN zAs(x~$6jsg2F2HZt`rXbAj^Kuq)9ts@rQ;Y=bU_qRu>zv;%WdbFq5RyYc25UGhMts z%@8;2zf51A3Pm5|m0%Xp3a23o@_0?;>f9}~d9fCDJ}+g~9G$^9{}jfucL}(2W;DjQ z{===7?et)clE8+mwy(W%0j4EnGfQr8e!opu@ke$mn;f|tM>owO=IgiJ!qtM32x@5;n5xDu)=Z^zOK{YUv}S(#qrc{?Z{zN z{1w4l;5Ux=_6eg|p9R>h>LZ^%?!fL~G3@ThLD4il^b*}q%=L7zc;Q4rMywk45C5P^ zE*vA@!yj+{3?b*@I%r(zHc}-!m$iEFoflO11YVIy>~h@!LUAV%Go<+=rIQ3>izf-( zBn)}=4&|`BRFP&np2vvmz<&{P3~bLR3z8Jw~`oLi;398e=6S2pC^aCazJ( z$V20BMfDauan2RD_ovY_GWr;p8G$8U`tZhF5{Ey_z`+~maBZLkEW1-qEi`gznpPq% zyX8t{AAO^4B~t}=xGYKfpF!g370WK zb8XMj-Uq2DWd4iGo<2dv2aC{Bv5B3%&&o{%&$Ek%JJNgWhWB8R;v-RxnKjU!M!o4_kg)Z_m%mj7?c{KX`ak3@DgUjsp z@=j|T(cQj-y#8Pv*6vX$Rve!M6%$UdiP5p>wsAfYJEV%gcb|a0gKv2k{zRgwsR;V6 z@S%qDY{+NFE%fl7WqkMi)r@J{M|$nDB`sD{5EPiVFkYL+|*V|ud#QU-wFUP-%L5X)G-yc@B zc|B>|q(H4JxO3;fTntw#qjlMm_$Ew)iP5NI_7D-^c|T>emXD*#x8((Mj!DDGBReqe zOB)$}E`m?q{-Y74ciCH`im*VwmbrP_89E+rhV8eN1PZqwLujBc=PKEPyX}%`fZHze zEa@4mfBP7H(e{QKIbO%9=Ynbf;0Qk5eG6S*=D~Ar*QI<}fU|Eq!GwnMkf|Pu+P9uj zD^+oD_#8!UE1kfX3eKDd;~>trq#(~v+p|%yEPeCONn5f`!+DV9KmF0+^6PK^Qcl{ zpq{G!bnA~2Y?@`n_2mo5jIR-(kkCojK0vzlbRDf+od_zJO@GIx&^r~S=-1rEhAg*- zwU7I;e0Uj*Uf%{!^1hRK4;$zY)kx;xU@Fl#-bz>4rJ?jkOVoH1%Q{{CL|pSL$nnZ# z_*69o^*wY*w)X|LVYwYjrzAp^P6*v`#~7-!SHptm_9WRwj=%21b4KZKG|HctK)jE( zQICiqC|#flwe$V4BtI4M4p-B(5>uk-_ZU4|Hq&SErBr5V23~nCjl5Y=cs8m4mpnL2 z>Ssy{_80rY;AIDTe)nYlWa5Lv*E3zbGF$Iy=s)9@oow%-Rh00%V&`t(`DcjKZ6~%&w?ZI8!49gQjJ$7B)C6;uDQZF z!=}YR*uNe8qgDyvF)tdGm<)Phg$|XBYC-b>3AC9uNKD@OQS+pg@V-w4({2fHL{}Rh zZA&L}B&7K(Ki(trtBv{dPVU9(BO-8N?RB!bVIAq$OUK*&m$`dmG<);>B!0Cx4}vMR6J0k`-pM#9qm!NQGAl_U&Or51!G~Ldz zCl(Hqd!F~nK=@9G&T)YbPJWYYEy9=CuotJ8)YR)edrPe}3#r{dRg617%rqzkb`Ep+gdt41@rrt- zt|GG!K4OX`#^~y`kJ$8^Rd92&A3b$b1vz~tsO`+bQrjn_`G_?YUwoEanWaFK&+UQX zCQX60eV)J}VJgN7OGC$g9WG8g8-`3D(KXZM(Es@iyl~|yTyZ}R4{VpQT~5znsaZX- z^<0Aibu+*)vzXd7PA67AwwQmh2Icz8&__;z{>sZot3w)$gu!AAC~}}K)=!u-79kM$ zn46i;(ZfCc@|3G>fZ=UnRLXfxhmX2(-cc8x<%eVJ-Jk$W`)Q10)s{G0c@HiqnnK4Z z@1;r(-L$;SfVDLohRfG02|Kg_+@)h_c8(Ub{ge?r`zb?PM|0WPkG>F}#TS|DzV7sa zYc72Ltx5yq)WENZ>)Ff`=8LlB@Po+X9q;KltH21^YzZifD?_sjYVe?|j22X~R>?z;RI<10kDQxb#X?_;XpPTFQO z5BiR4lUgftSQci2p;ZmUhx<-8e>;;#bOGHW7R;OuxB%;|6$Dqk?6`b$B`PHwX}kf6$gIHg6*)9zsG7+v z{eZJ39fNd^i!qe_j_3_Fp!PBc+AC?q*Nr?)VyC@^3eR0wbk_znv^52xCp77y?rHEs zBZxd5>@s^TvlE634$=PEGGzQs#GNn8Q0aCWj`?Tf)0coZ z)I(w56VesUImry~v!{-ogZoJxBr(+(2Y|@6V9&c(B-Tch<(Q28!2d46mB-)6+j<_o>SKz_%jc4wO?lWr)9Kd0 z1m@jMWBOpTJbcRa#3fm|To(5^8qev%rZxe|zP1SFev<{A9C`3MGX)n;F2v83qIlRV zk?hfthOcAOVCJ4wc7^X^_DTO=db{}(@zyY)RB}DB2z*3oc{(=vq|rw~{&am>18Kq^hhM7Iwj-Su|v-AM>Cgs?E432yVSGy{PL-7vILf%E#(>+~dc_{(H|#N|2gIN=yOLk-arzq1BGJ3;faD^AjGBCooqWARow%#zta z+EywGCT`9p(gQ85E%(p(Z|oTTF|!QY_)qB8z5?cV=m^u&mW;mDMjXm<2KM~(qT|1% zqe5*S!i5d^X4eE zZ*T_vpy`CUZVn(mI*aGxri>py*weXBoM_#%RvI@LLX?lS&~=A&P*QXbioOki&C#iF zjR~RXz&SR88%gfF9Bw~wh8)LqOem~lw2#T-1I`!a$9-o=26e!IOc%{RGzZ3iTYyu- zQrXN;wIJd2mQ?)8XRd0!qVLSYA&n^0Ln;$kGudM}!TuBr6Kb*TjRFK~JE7a+6yiKO z$`mC9V53qgluv9Xxep8A!`xXc*#E$8BNc4bHbu)nGTeSKpJ040#cTS4B$`LBOux=9 z4N`(bsg|5az8sY=rGs}%2XE~!c^EItHM4ftvNHd+(FprmOyfGF2Ns0j-feeSvt?XA zZ+|Ua+q4|k>&4=z$Wsg%(4e0)3eg)auwdC@I=w(ta6a`9U4Kp*9oL4Ew^l~fO>+WB z$qb@6vku+gE`*%M7w+v>Ek$SvZy?p*>PG14#-_2 z|6Q3(+$U_r3HN6)PLq}K`NGd6ZPg6MJ$;N+M)K&+7uBS5bPFz>qXoa6gJ>77hUZ6e zp!-1`k<^@q%g$yqxAo+xmzyEas9`5sy#EKB_Y1CZtm8kP;l%z*HJ;PRFq4=PjgPCV znD?1a$f@*JGp|^7sU|arYY2MV<{^Jb?n^dqhN85icy9 z5Bm!*l1Nu2SRXhC;#(BRU!i}H`^A|qvv`P)D#gh;lY=-TvIbRx=HkD5yD&oNJ{}Mm zrGNiyqu!AhSmAle?50zu0?!ZwEUn?*GmUV(sXhx=n|&baKh|;`_*SYZR!T(ETUn=r z`>+DQ&pFJxMVr38(($8qJDl)yWu zg$^H_NF(=!GJ_|6lfRpD$Q(f;=&9?&_2^Md)#N(&8Sm(G=k-LiWd^xi%k2(|_mi8C zYoU(oSBA%j(y8tu0^fHLkm>T3f!|B(Rhi~D1sT;aoDR} zPw1<2LWPQPM*EeFfL4qI4Xy z*UXh;jaOkuy8`SkI?ZL^9I)e%H(U%|OPB{Cc!f@ZvVdN!ThR?Y89V8B6D{Z{w86-s zsgQ6p9tWi~AV7X0I2cWVRX27ZZ+b~xknJ=)J~58^PtB(v$E`A(a4im(eiDXGduzIP z&0T!3LK4n-o}fy;U+`>f+XD%5tMmF66f<_$XayMz_*8gnd!p zbT9m9iiG3nL1TsPGR@qM?P6;ed*`tbIk_sBO1=yryvny!_WKIro9xV+Ki7x0InJgF zCoyog?h{SwjHEJ$TgZ1g3wZdWrGC~3LCM+QS&xiB90+Y^6mO~EC)->SzAb@Vu4I{p z0Uk;3F(S8gT=3pFLT?qVLJM67M*PBfnjjDUUtY+BG)s|@y&_<0*-391 zXyax688THOlkVASN&bnwXZ(E^(UH}|WWX^WdY?+dzU6^5eSHM@9D7U0dJj^vSDCT9 z6N;1CAL6gNB)m^f;D~lF`Id8y$~b$F1&@WmR<9TPLS?YwO&-a&R7H__@!X6@5kHto z350&+G9SOKfal9w>7Ol^=%mgIo;vLk#C z5y5VijWmSI&9;|Tn6=iRC#h@C^t3dipQ|Uj8*};h(-S#Pl7Q|T&vl9J zM6(mD1R#<5mDY&GaCe6&qUxIkj#_PG+hTqCYlSFZcIhTuHno(JX3iB!lgNx*O|+9A zBr7H!hNY7yk~y87FeEvJ|4cF+%WJk1d9w|)Z~88*opcgEsGh_((N<(4=gj%)7=slh z7x8A7w7?_H0T%u}03Ll~#Jq&hi_|DVN5?j@D336vSAJu>s}c@Ns^T=2X68xLTttT& zqBuC7^7jbyZfD(qtd!~e;l_Hhx$QJq-t|Glv9KCLY`$ zixV`P=;TLUbY<@sB5v=E@@;AOou*=g%m5oQlufRgMbncen=n92m(Dx&1rKa~ixK|{ z&~Z`}dTrf7Lp~+rr>{eBBWsx6na-VU@0tJ&mJs-V+DEk{bTQKIC{9YsL}q;pl^d)3XF>_O*sOb1ccRhA@2YBY}aJt7#Xxf-xJTN&KEC z^pfrZdheYPMj0qzQqK~UTe_0!uhGNBE^1WYXg7VbsGT%jZlmq_&iJYcu-b@YIEiP| z>*Kili}EwLqx78~IwTFFQ@$|GZv(LSzb@hvHyzETHE?7mj~;rx12oShkm**%D86uz zxQAWAEC(Sd|MG=i?KZ~GJEzl?K9%f1xE8)%=?8HN&Fm5N86-(0hxXX~qK2l$^%)8i zz}NO3&dHgL0q4H6BimA_Uvmz5v^yG;t$krnlp*!0pS&nLE0lb2P-0(9O(Xq@qpZZ* z38YwjGP%Pn-D{i;!TBa%$_WL%yOZqy!j1G8MlUNf? zDso~Y^J+CE?tiA!ioR9U^PL3Ud-iy}A=e@H{Z$Mf?i)a+^lQ3jZ#mn*TL;gk8lb7T zE@NTqN4MI=qt&0OR6)fLeQvI2Z*-V&o{$-MK;IQh&n{%&ZZ}4vm&V>&dk@1de>dH5 zAK_fu0@70ziCI?^;9K52P}aS{eb$HBlZQ%h_6-?u7&!@R&p1F&QW4k1*hddEyrkbI z4iMFc=XnA38sz;~N^M&Hl0go)eE&)(opq=cqmCqEe5)5qKN2PtMN#m0bsCDA1;Ar> z1;+fqCc$S5BRUY(iSkmls9MOe=qHZS3L6nYxNt4K`H|yVFY%>W+-LX9I4dCLeAwA- zkD0Om5nk>{on)yqK6fZI9WvewbJ&G&_>?*uke@))v+dba2_wt~iMeoSK#i@MUrJra zx=2^W3V3~TC3*W;8%DC%K>f)$qP6EbDViKdR6M6)oWndc{M$*-y8b2)-*SvI+<|V( zVrh`ZUEWsd3+&Bf!Z>&695qO6r^mm!Q5|LmF7Oqi%XCErSBkChUZ54L+!_N~@$tCj zSpxISa0RC7oab_w9^m<04l5K2F#{QGwDnykaH@a0k*{iDWu>bk<@ zp>S3v)d%Ojo&^4NEU7a-O3X||1(Q#4nQOU6B>VuNia{=xKf8!No;J9;{T#+-=wXst zJSnmJ$8KGm#Qw34fq5+^Sn9Wu-T%ZI`?51pPkA9-mGlGqcg)2O?(A`n#B0zLdSlqfbCgY}^*{K;H~^q*2_Q^q-$Yomy%SRK4Kxj=+{453^? z0Vi~OgF(CuYSqNDUUn_SCO8U(=7po{(s0Hwyd5XE?BYkS&89lTkLjC|WX{)T2CB;K z%-?AVaHX~zMkOzyW=B7nq2EH>wbPg~9Vz-&kVy+eA96jj^K^3Y3H&B*PP4P3@bkNy z#CNF-%;54Pgn06jvJmWsFO$Ecz2tV}#L z`+iCo|N51}hORiWIf|Pr7k{Pm4xFQrVvXpU9>+e^7RPf%LB#2x1|E8No~$`?obeU5 zHEX{6g=WwDMlkdZ&ElOQReKfCY0*S#yq%#MY9`oMUxFzd_h(klQv7xC92ROsGOmN% zPDN=YD@e7(veNk&*l5LZS9{5YWOLNiY~+|*!q~L1k9qNYJQP(c;jtGlY4g|rsN6+k z;>&EH|LzSF4<8e36`RN1TT2)z{j*rQ_6pf(!eVBh+n2<)zui9hGR#oyfE|a}z?ScW8VT_B2IlUn@l`kCGgD&d}$?RfHTy2>| zw$4l^^2$1Ru}%n@=KN(XvP1uy0Z#7w*V^&uj1u@cB7qyf z?&o$tmDF8*vcO>NNgP-b&D2=yq2paIw7EdZ{+$|-mKa8N7$)+zJ$GOtr1!zZzr{qc zp_pWzUr+4s$rDS?;k!@u8vFU`E_!WbA)9}?jhXEJi2dSz3hwx^birOvy5A}n$KSoi zeHLf32d$1_OYJVAupx)m$zEhGzp)@|KTG2*<_Jhmuq2OfFClsXW;Ab73f>>K;q#Ar z;Nj4fOvjsOcz$>ZW?KBgUP-j4s+ZK8{qqmOf;yg&q)R6c!lMHC%&EQN6nCo#*5 zbAANM2v+1+(#b92X&Nb9;wsG8L@M^h7eLvgbQJVttWX@g61Qgc)m53nS zZwClxJ;UN7FPW(YQ8;(=9p2q*+i*haTqw>L#?&KgaN4a>a(s^{_F1jro@WtwE%pt4 z+LlLxcAuw1Y86EI<$nCTD-|WzZUF!4TsSM=M4Xaufc@(*n$$Rf#u@&`qWUQI)SgVD z@MDN%=e#4rzK*QWw@O}0dkvX>a0S?%a)BI`>4MVJn`zqHMcn?-00(;QP=w3!rfQ#t z7}FoHX0s){Sk=qBpDBe+KW|gZ{i$&Hd>2)DAVP!H9Kd3_3K}&X<$h)uz7YEl*9mjy zJ1vR>rhG`>>yA$?jFlzD*KppcGrShPCR)k$e0S!I(fs|_nS&Pj zbdK_2lvjCsN>3M-GfMCbDxD$l-;$X<*;lUqA2m z1)N{O((vUqG*;&>Rh~2j3p-<&QrisZ|F9FQy_Ip9*LU)=MvSU_`%9-M*U}%mR59x1 zct~uMgPhm9*dWDj5~t)zPQIDRZ0uV@TsXdzX8&SLAK66a>X*<57vFE!GBXAyydf;@eqnul#$ zfK&*7ry_mtsiTu5#OKy9vyE@UnL~+mVQDnG;rk1=AvF|6t{!W8>76SPd#*y z5r)yUne5TdU-(@~Sa9)7EqV8~1OA)e#vHdqyr-&w`g4-dzvvzj?`go8mzuDdV_x*B~UL%O#rls9?&M*2Np2Nv3bY|jq1VD2Rv9B#{W`L4#*>#pO>H(}(Ddnqnfj%E!S z!|3~hGrVaxACjsfRdkm>rWDgA8N#< z=?$GJXolYd#%N{1?dncj;e%Vks8=nGD_dn~91L* zN-et~xrPa9j-@9%i`mUV0_KQSHY$BA!%my4nEg^)Fy*%;I&HTlqPI_A;?#>YiSr(t zdqseCRweUGw2e7cv=7tA`_j{ID^WY0GEQS^=*Dv<8|Gzmj>uKmQmI4TSAS%`uHHZ* zSI;E-0{pS`)ImllH5uGgZsW#~cJib6GRA)Aey8FvvL*CAEUjA%J^snGdY}|-L$k@l zcPfHUA8hc`12vePoKCK-Rzi!KEE@j!I4TTjVCnQ5cuD;O+|)WohRJMDnc_|gZmF?G z>~VCtsvx+ny$srahLM)m0t`u<#y4C(jybmbA{m_~O3DkY(6vbv?Uj|-1(`|oQq(ol z#<>s=Y9Aq4vL%?6tpf^=-x0sDWn}Fs3Be%~X@LRlr+1d_MU@w8`BB#sX#0{8GGjp$ z-i?@#*IUC$-y$AVSfs+vp0$jr-G8{G{WPfk)5m};N&f7m1w`rYR?OLG2w%Azx^~|Z z?io2m(jFP0#Bw)&h23r1tG1u6Pv4Af-z?yj+G32Ctl=`T*XhnqH!zy#fjbV(K=Cst zpt`q;$xjZ1Z{>O9b@^(NpArGyr)7zt;tP(wYay3aztWetRM;(x4x*3EGP;=KVf_ww zB5{qJ$7QFQ;9Q9~NJ>q`)^1t2>newLTKZ{C+z@>%&e9K3<)kHf3VP3QK&LmK;4L>_ z{T19nC6vRMySK+dOV(;C^4|}7=tnuev5kRi-iLUKvyDkuV=_!>R2AgewKCjECcXjSNG3W{^{b}fYa)6zhnr^ zm|+5w8|T2m{RK3=N1mQNQGiMlL-C3>fywJ`(12I^^wLiyzWEtlToW3L@wLy%GdWc( zIQ4;g;2B)CU7n^qVTrYt0UB6d#okeIE`J(A_T4&7X^*PFH_eBPLK0DF|HKB!b@Tp> zJYo)bJf&hg%W0LFG|p&?fcGnY(!ur}c?6^Q*#EgX4_$qwl<1 z+YXUJyC{78bUi+F5JHtZ6CwDSGgK_;BE0my!-%d_PXPY&I$l-jB2zlFc5qrJjH|y0e2ASzoiCyU(OiADvOdp1M7}HKZe%egu zUb$DFyI!0|TU}`&7n{QM&Ym z&fM8Yc8X@8sbMgga4&*a$vxk5!%KV?Xx{TozaW=IsiS!;w z!TOuSME8pjzWaWV24#N3-iTpprs~Wq%#eVTO{>7IZ-g8(pF_%rYO&-n=SBa0oyOND zkX5b}aQ70g zC{)IH=5KL6b{p!}7ewfh$d04*q}N&4ZUgw-A|EGQ;r1pUr9ppwI`wsq2GsCFp(nSg z88esk>nx^xtx*&kaKjS{2dGs1dh+dpDNHOmhj;7pvHHLmxt(>8NuOOJ7#WDf&v{&y zTH6~+cKPsbg=%oLQwu#u&-|L6S z163XPutkMPVm+JiK&sKz?H|Kv55ERuj%swb#kKR2uVT8|sk zJLuP~?yzss43rZxCFSe5?6v+X!94EwUvlOm?zrC%x5mbSaAz>>%#Vjde|K^_Wo3H3 z_6|5*lI3sY?)-jV-{TC4wREs^N}`x={TBk@wGHa=)FRHH2fs zzYxde`;5p+lS|a@>mJHU4C!$(b?^xE!kA`VyjOM?U03{}Ay?-^?eiu&>CZ8I;U+FH zx46l!tWBV=>ps(;ZzqvX?_Q$mVn!kdrV_(%O*HrSW&5zMZW-2{v84VN=8^d;Y}v~#8N5qEhF}`J89wXF!Kxu~+{|$V zXZHFri-R^$Zx2z>z0UQ}gtN#KyM^?q*e7PFO%^6bCDW~!Yr#eRDL2cqApTC1@Ref* zWmcN-ThBGnh9yogeq$0FI2a6ikL&1(H9f2icb6M_3v0WK0EOa z=FO%qdArf=jw=3;okW9#)xoj1#Hq3!>~$ZqUDtBSilcrU@6Ll~ z8&}O%)lY+uA0620mko?4K4t#=n*s4UMPydbBXVx67`l1V(Aj*3c4_Uyu)Z=%>$s5%-+Xf9Hww=dUGx zaTdTKi!jTljh;zehr?mzY@H%Q{D0~Zv4J!^@2ZO*?i5l7gJ^cD=v^9kfP239I|u?N zE}`Xt&*+u+KgpDh5!mc`gA8@g$Jk#rRPyTyy!zZ2_}LTi-@+Uys^?U1Hcq(w!z*fk ztDSb11k-;_YUr}h8;BoSJL0qZJ2WmY|O=}#n;_~Oq? zw6r&XDjzeKj(2v@l~@;m#XWNW}m0ie%W#y zuo_y%%`7)=n~b|NJjfnLS=`NPuy%__>8`W~)Iz$D8CvN}_j|7+c260UKK}^c3mVDz zM^oTO?s;0VON9K@TZ-r*&0j_&(BlxrZI{Hs+I1GW94*R@7Z|ala$cn4$zgbQXA;pe z`%H7+H_>Y|UekfS$KhX)4t~)PWgCWHKoz(2-@itdsPrwTeH!J&Idctp+A9GY=1k$| z#kb-vb?%-i{FMBgJjST+N}>CYmO_=P5xlB?MYdTy0mYUSsGhtX=cKgYv+_7rNN*7q zxqG8jdJ-(}Iz)d9l(AA+l#UzAgl3y@IMmufFIbBb=Six9`Ki|YNh%>^FljtE?a+jE zx&ZPGjiiyg_tkxxL*F+iQL$;&MDcbaaoM56F&BG@&|!D7%_kk|pX=a@lIQTmAsM(w zCKb$GNq_oJN6maq80GSPswpe5Q}CS{-sxkmxpl(J%ZxzXn#=3Be5a9rlfX=I8o1Az zhqnGsa9Ohq!#<0`_xc2?9U&?ZQ!m5E5g+N|lwVBI&UPmFjU4H@9}L|;B*~Sh_VlTH z8yWkr7dBfKVM4wmn9Vl8D^Mj}Sjf1y&k7-V}7S7TN z0mJWqcq^{uL7mV+V&maQJhk`YiUobFk&rOY-G*a2{h2_^8>L{mLJ7P(*hqKY;<|_< zaai$Bj=#<2CW^RA65|E?pm*yYl$3Bqy|cMEu%B{o4r=O?0PFpEb< zvq0nX4QiQe2C{$mquty{ny_pKS^7*Jtd2#3Y5NhJob(V}_7%afaTn)^l>{%_7`pe7 z7Oou^1bUT45O69Jc5ev5>Yk<8qP?5Ab~@mx_r*lQ{t|n7wFCwXPQ+vm9M6=84RJBud0G9;G9!t(?7$tN>+m?_hR8vGSx zqtGZTS*68!U#G*>bFbM4PF&XCU?$;nETtElbG7Y35G);>uI@oq7_^j)|nd4qm6;DeW*b@dc6Q&KKl-XMK%TBh5ac zMOo|1ux7M?Dh-~(MGh_0sYo1mwQ_gnu`0US!H2x5EMa^dl(A282O9jX=e*K0p?leR z+}Kn~kNF=bbAGvy{)viA&WB;t>GFpu(o;dWKNa?m&j;J5&)~!V6rE>4PVXDXD=nG| zX{iuJG78nXuScY1q(xCEqs$0d6{Vfhl9tg>sU$?>Irnu`6dGhx`H2XLN|Gf0=l`O& z&zqj-KKHq<@AvcBwhv}&DMP^o1cwHdJ{JvmqQoH=RAL{ zjk=s2B<{01*v*lVcpEeE*QXe!Zmu_7{puWP!kM@_26>;y6@K0{2A({WreY#T>Cu?y z%tGBq)Y_TP{Z$#j^v*UqrE4b)=xoDNxgG3hiyHQ)gD?8(*5j$2XJBo3G1QBy)8Z?= z6kc7y01;DC_w@jU%wKq5h8TqW7m2yvnYg*yfhpmgjwPQp$*Yi7?xS zS;tPHiAFr%B`>Cja=wtUr&i)VO#_lY)fV^pt_F+!uOP2t9NskI9Z<)eHB zNzHnWa})ld(3KYt+&Y8@duQP$g<7)Dt%r8cT#%SE9@Nlgv-wjkTcy@$o{gx z@CoC&lK3t%=#x(GOWnmI*CbJ2CX>Fu&3l@)`{*u<74&je8UFd! zVng3H&~t2KDr2oNye5%pe8ca&y;tCgdwfRMiIVZPXR%7Xf?jZx!vhGb9cpneHH{X(pvhU|% zxKsv&W!Gc3L%MPk+d^kh`e|KKHoN%&G_soSev5 zNp&*2^!|ZQ>13Q2Z;X`nAh!q4!mCj~!DrF~_OWy}R%b}E|Bc^-7aq^W8kGgCOYKrT z^!O4wN*6HUHI{JO`~VZUuLd>hUqi{Jxft|eCng48qBdJ*VB$zVJ+pTgoDQ0R@$oVL z?*r2JWon$-4qx!glfY5~4|3Fwhmh~tWr(5+KnP&n=^IF_>HQWNh25{sn?DMX-Ekk9Vp zeU`OKVyHJEgnQd;fHD*LdCAUmL<8O7>Gm#=7PF*A6V+)a?*Lw+Cd)loJO{Sg@_eDN z5RjXG5gjhY5(#q~++f51@6Przi@xlpOUrhEY3MAR@#QG}6{p3mlpdsuf8IcsQT+Tp zB^DI&(n0g|1DKDuJF40e7?#9N8^MC}pJRSQ{;CNnj__0A~nxn(ImEq5A1>$ZY@W(1e1*MReT zPGBvcCA@L}9g0f_K+Jt#5V?I2?8=n6)E}Yb_M0mxv3CL-o9%*M8^kHya?#WQd#H(} z3TLD_6Q$0_;F#ty!nO|!;a2=)?yE-_4T^LD`Myk;bE1&US^keHpK%G+_zU2O=~W2U zJd4^A-p3{U= zJxj^Ru9M*9;e|$`Wz_B0B|OZXAVqdIxWufQ^z2(lXT@v7vGXgSS>6>Qix@aK|2ArW z?j;!?dk?4glgtd&Y7nLBmFRQsSirtj}C6P2oll+Dth zxcE56Uoyro;RP^tY8g>|z7CGH+F|#~Vqw(t0opdllDv;bHnr_5)Mn3w6DG>oT~$gR zCU4_hUa;`PQ#493H@nn(6cx*_p@obo-u>8!bwkVG-_t%? z(e|52x9y@o{C%ju!&{VCPz^`LRj$1yASu(B$Kt}DtNS68^#zrz%JEW#8f|<99uYrMbgK%=}^bF9ulSyvR&m-bz@<^!CE{qJ&geyalLg%ehV0QFY=zN$+ zzV?2l(FLPufpt1OzovwD*Gmg}rv*aX{c<8Y{N2o4K?JV-;n^a}>dg3m?WnL)kJ&nV zBGv4UgBcGsh?M0sSgTltB{$CC@0%egV|;{Kd>D-r6wl-Os*`lWJY~2Yvk@INzJk;@ zA=#Jpi%r*8L z=wG%$CG&Y8*VTnrZ!}|HLllGEJik3K1k75p@awc5G;|H3v;Ds^V|3%e$962YGSgT% zQ#uM;+)t201+G-}SBOALaRS;TSm2vR0e8pq0d;Olz=(-GWdCEnmg2FOI^~wY(lB}c z&R~Nv_Y`1-^*odlJ&)7xgwpvv1+@RSJ;=^f;eLmW!e62P&?47UVBdX_j;#{Gd(3^9 zxil5hG-L#!IfeMBE(^4k!=YTQ7am19kbi?IknqwI^oqv{W_bT2)7Q6>Lo!{^cR*C& z?ZSJG4OHQCeim1#7mW|LsB)>6J#AfB)TC)TrQ+3VunDO~qtx1B~x)u2PpgWwpJPsce zn9vV*RtaJ!M`Mts6^*YJ<5tLMl7-w~cF7~&)qHO;oEHwz1ouYX8+4Gk95_y=9_KTy zQNQW_`O{Ho{+`bN^BxU?QXv1v9F&hYL@k|fj7%2`L5m(TYIz)O7K@~HCj()@^UuWH ztP7j#Bgy#O8n)1B7feYuAx9ocp>%dO6T8p_U@@Pe+b<3ko%01PbJoM2mU6l$X)4*$ zoWQB(tVOBd2JHBnO$?)f*k8_ItD%QZDT_lBkMS_P;1^!^bif63G~tib6gb`%NE^PZ z6G62DsCcB)&UAT{&`bbTR$gE_W;|VeoL4Dax_;lMay|aMN zL6o%8T<=b@rF<B$MppqbCUlBggP#_r&cd*)v z&%`;!L9WFr++Nm3FPQYx*Y$CjC_4#T7DX|B>3y{9>nN_o`ZG1pdJU^~oTpFuJKJ%G zekShVIXv4bVrtr0N=HhJg{oq_b#iksj#FNSIn^F$Y>HHJ>lJo;vjN;|-$5;gFSGf} z|I$D6oXLdOOQ_DJ5&BsngT}7EgRb?tdeP2NvsD~)(|JE0jVYTT}pLh_kOZyC#tR*pU-`{0T?P zpCHttg8ccDf!gOTL7nt;LB+8ee4Z;I@a-++qo+0O=~EwI*}!rfVb6fpUwfFmauTN^ zKOWz)v(V_4IPQM85G;=xg5#|ysu1jsBd*~PrE?TyZd#DTdKc)l)4sS$b}oL}F-+E2 zjmDo*z##_pJei_fJS&ggpLU z$P%A3r^#f;96a|{0n1$p2EO}`>fZH&qwXPeo-hJ!RvjkA&o7hBudB%9y+`@*&N^~X zQj@M+5sNv_c~s?%A;{azAxk2MSbxc5pp|4yFW7FS?L`BXp$+LM^`r!J{s^(NPn74> ztN?|mQu=zFrNHp40qLvvK*<1A?o9A?y!R@{%-qA4{NpnU)@AYnUAvVe+VeTp+%X+H ze-uO3yJhB*tqx>hMJkvW15HX<@Nz8x+V?tvo?X|3rpCa%jci9FOi(qSay}9I-E1928cgG z)=aF!>qcAfWuqKcU#kc6nrUEm^fT@oKNrk}KS;zMo=3Mdj6}8Z41<%sbj8jT81IvU z4p~xy$`ALTdLWbTkxwT2iPqfjz9_yOmkI1sebQ>I1_noWqQlP?I$mswAh*ewWoGID z6SN*4*2-YgTotT$dx^b#7H)phUMl<95dM0HkdLxvWU`1P>r~c3Gv8dKHcSM>J~(7{ z_g-IRdFnTIP`eq+SB+;wXN01)V=;A)Z($4;m(e{-gK*ca8v5QsnjwQ#JcTuIZXQcJ2 z4aaO;Oy8uwpwCV?L0G9k=rd6hyqwIr2_xBDX$_B1A(l+DTP@A0vL_1m3b5)D&;0Q| zg7y5IvAO9lkycj%QsNFzoT^F6H-3*W`#kls*pJl12R`WXJruQWc7<*TS_W*!%8Aps zRa4H8$=}x%dAADLSpJ@IDm5Ebo3D}JS-07UBY992oUi9)z#ii0Xs_!3UH0R*J!a1-D?Y2O|KFI{awFJ~+$dKh5ij$vHfOeh1=n&vX$uUe+Ck>L+vGog)1K z@~HJ`F38ygz-1d*LBy96)U(b4thHlNF?O zD%W1sO2xv;@mI=(N|Ayo^pSl6IWG2tz}6eEV|N|8HtFGMv9a93jk(0L(F`=IGwJW_ zDR6&(AD*A^jpw$W!`b&;&8qRY@I#v?ROgQ7SDkA?MAZx*Mx7xs|8A1>5k)R7zYY}B zUyv1+56SWs3|`u01J_Kpk+>iBSa!>eyyACA@9RH<-%BC*&Dl*v&tyYt&vsNDeHF`w zmeX3<^cd{PngiYs4 z&`)rF=P7iwj^;UQe9l6@2=S39mfzJT!-tk)R@W=K#3K?%w65dVbuVe@7k-x7GD;Am zGze$E=fI1lawxvIi>#5hhiN~fA!>dg$yJfTOK*OX(hgsGe~LQ#^<^VFZU~oMH{|S< zqQPxpCU~qjfqkDI;OdkWd`5LFee%E(1ANMXyVy&t)#PZWer5i3$IN1xDCL_31Et5zr_JyYF``JT} zE?`g)zgtfH0&&i6WcIR1&>GSL)klvRk!6zv0a_(k=Hdj=M?b-@yeWb`VOg|#+DZN$ zWDEQoyP7EbItbPrJb^ERlBsFZZQ?GNj3s|&a(AE{(xN`lu%SX?ecl77-(CY^RUTNL z&_FkZ@wt`Lx3Q-pny!?VL7j8M_)*~m*3G^AJ8Yx&;Qh|YERx^+37X&{99FYa`3?j%0DWk(iTPDAnM<6)Ek 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