{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Training of modified U-Net for Optic Disc on RIM-ONE v3 database, 256 px images (cross-validation fold #0).\n",
"\n",
"You can either train your model or upload a pre-trained one from:\n",
"*../models_weights/03.03,14:19,U-Net light, on RIM-ONE v3 256 px fold 0, SGD, high augm, CLAHE, log_dice loss/last_checkpoint.hdf5*."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"__versio"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"%load_ext autoreload\n",
"%autoreload 2"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Using TensorFlow backend.\n"
]
}
],
"source": [
"import os\n",
"import glob\n",
"from datetime import datetime\n",
"#import warnings\n",
"#warnings.simplefilter('ignore')\n",
"import scipy as sp\n",
"import scipy.ndimage\n",
"import numpy as np\n",
"import pandas as pd\n",
"import tensorflow as tf\n",
"import skimage\n",
"import skimage.exposure\n",
"import mahotas as mh\n",
"from sklearn.model_selection import KFold\n",
"from PIL import Image\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"import h5py\n",
"from tqdm import tqdm_notebook\n",
"from IPython.display import display\n",
"from dual_IDG import DualImageDataGenerator"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"import keras\n",
"from keras.models import Sequential, Model\n",
"from keras.layers import Dense, Dropout, Activation, Flatten, BatchNormalization, \\\n",
" Conv2D, MaxPooling2D, ZeroPadding2D, Input, Embedding, \\\n",
" Lambda, UpSampling2D, Cropping2D, Concatenate\n",
"from keras.utils import np_utils\n",
"from keras.optimizers import SGD, Adam\n",
"from keras.callbacks import ModelCheckpoint, LearningRateScheduler, ReduceLROnPlateau, CSVLogger\n",
"from keras.preprocessing.image import ImageDataGenerator\n",
"from keras import backend as K"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Keras version: 2.3.1\n",
"TensorFlow version: 2.0.0\n"
]
}
],
"source": [
"print('Keras version:', keras.__version__)\n",
"print('TensorFlow version:', tf.__version__)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"K.set_image_data_format('channels_first')"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"def mean_IOU_gpu(X, Y):\n",
" \"\"\"Computes mean Intersection-over-Union (IOU) for two arrays of binary images.\n",
" Assuming X and Y are of shape (n_images, w, h).\"\"\"\n",
" \n",
" #X_fl = K.clip(K.batch_flatten(X), K.epsilon(), 1.)\n",
" #Y_fl = K.clip(K.batch_flatten(Y), K.epsilon(), 1.)\n",
" X_fl = K.clip(K.batch_flatten(X), 0., 1.)\n",
" Y_fl = K.clip(K.batch_flatten(Y), 0., 1.)\n",
" X_fl = K.cast(K.greater(X_fl, 0.5), 'float32')\n",
" Y_fl = K.cast(K.greater(Y_fl, 0.5), 'float32')\n",
"\n",
" intersection = K.sum(X_fl * Y_fl, axis=1)\n",
" union = K.sum(K.maximum(X_fl, Y_fl), axis=1)\n",
" # if union == 0, it follows that intersection == 0 => score should be 0.\n",
" union = K.switch(K.equal(union, 0), K.ones_like(union), union)\n",
" return K.mean(intersection / K.cast(union, 'float32'))\n",
"\n",
"\n",
"def mean_IOU_gpu_loss(X, Y):\n",
" return -mean_IOU_gpu(X, Y)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"def dice(y_true, y_pred):\n",
" # Workaround for shape bug. For some reason y_true shape was not being set correctly\n",
" #y_true.set_shape(y_pred.get_shape())\n",
"\n",
" # Without K.clip, K.sum() behaves differently when compared to np.count_nonzero()\n",
" #y_true_f = K.clip(K.batch_flatten(y_true), K.epsilon(), 1.)\n",
" #y_pred_f = K.clip(K.batch_flatten(y_pred), K.epsilon(), 1.)\n",
" y_true_f = K.clip(K.batch_flatten(y_true), 0., 1.)\n",
" y_pred_f = K.clip(K.batch_flatten(y_pred), 0., 1.)\n",
" #y_pred_f = K.greater(y_pred_f, 0.5)\n",
"\n",
" intersection = 2 * K.sum(y_true_f * y_pred_f, axis=1)\n",
" union = K.sum(y_true_f * y_true_f, axis=1) + K.sum(y_pred_f * y_pred_f, axis=1)\n",
" return K.mean(intersection / union)\n",
"\n",
"\n",
"def dice_loss(y_true, y_pred):\n",
" return -dice(y_true, y_pred)\n",
"\n",
"\n",
"def log_dice_loss(y_true, y_pred):\n",
" return -K.log(dice(y_true, y_pred))\n",
"\n",
"\n",
"def dice_metric(y_true, y_pred):\n",
" \"\"\"An exact Dice score for binary tensors.\"\"\"\n",
" y_true_f = K.cast(K.greater(y_true, 0.5), 'float32')\n",
" y_pred_f = K.cast(K.greater(y_pred, 0.5), 'float32')\n",
" return dice(y_true_f, y_pred_f)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"def tf_to_th_encoding(X):\n",
" return np.rollaxis(X, 3, 1)\n",
"\n",
"\n",
"def th_to_tf_encoding(X):\n",
" return np.rollaxis(X, 1, 4)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"#h5f = h5py.File(os.path.join(os.path.dirname(os.getcwd()), 'data', 'hdf5_datasets', 'all_data.hdf5'), 'r')\n",
"h5f = h5py.File(os.path.join(os.path.dirname(os.getcwd()), 'data', 'hdf5_datasets', 'RIM_ONE_v3.hdf5'), 'r')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### U-Net architecture\n",
"\n",
""
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"def get_unet_light(img_rows=256, img_cols=256):\n",
" inputs = Input((3, img_rows, img_cols))\n",
" conv1 = Conv2D(32, kernel_size=3, activation='relu', padding='same')(inputs)\n",
" conv1 = Dropout(0.3)(conv1)\n",
" conv1 = Conv2D(32, kernel_size=3, activation='relu', padding='same')(conv1)\n",
" pool1 = MaxPooling2D(pool_size=(2, 2))(conv1)\n",
"\n",
" conv2 = Conv2D(64, kernel_size=3, activation='relu', padding='same')(pool1)\n",
" conv2 = Dropout(0.3)(conv2)\n",
" conv2 = Conv2D(64, kernel_size=3, activation='relu', padding='same')(conv2)\n",
" pool2 = MaxPooling2D(pool_size=(2, 2))(conv2)\n",
"\n",
" conv3 = Conv2D(64, kernel_size=3, activation='relu', padding='same')(pool2)\n",
" conv3 = Dropout(0.3)(conv3)\n",
" conv3 = Conv2D(64, kernel_size=3, activation='relu', padding='same')(conv3)\n",
" pool3 = MaxPooling2D(pool_size=(2, 2))(conv3)\n",
"\n",
" conv4 = Conv2D(64, kernel_size=3, activation='relu', padding='same')(pool3)\n",
" conv4 = Dropout(0.3)(conv4)\n",
" conv4 = Conv2D(64, kernel_size=3, activation='relu', padding='same')(conv4)\n",
" pool4 = MaxPooling2D(pool_size=(2, 2))(conv4)\n",
"\n",
" conv5 = Conv2D(64, kernel_size=3, activation='relu', padding='same')(pool4)\n",
" conv5 = Dropout(0.3)(conv5)\n",
" conv5 = Conv2D(64, kernel_size=3, activation='relu', padding='same')(conv5)\n",
"\n",
" up6 = Concatenate(axis=1)([UpSampling2D(size=(2, 2))(conv5), conv4])\n",
" conv6 = Conv2D(64, kernel_size=3, activation='relu', padding='same')(up6)\n",
" conv6 = Dropout(0.3)(conv6)\n",
" conv6 = Conv2D(64, kernel_size=3, activation='relu', padding='same')(conv6)\n",
"\n",
" up7 = Concatenate(axis=1)([UpSampling2D(size=(2, 2))(conv6), conv3])\n",
" conv7 = Conv2D(64, kernel_size=3, activation='relu', padding='same')(up7)\n",
" conv7 = Dropout(0.3)(conv7)\n",
" conv7 = Conv2D(64, kernel_size=3, activation='relu', padding='same')(conv7)\n",
"\n",
" up8 = Concatenate(axis=1)([UpSampling2D(size=(2, 2))(conv7), conv2])\n",
" conv8 = Conv2D(64, kernel_size=3, activation='relu', padding='same')(up8)\n",
" conv8 = Dropout(0.3)(conv8)\n",
" conv8 = Conv2D(64, kernel_size=3, activation='relu', padding='same')(conv8)\n",
"\n",
" up9 = Concatenate(axis=1)([UpSampling2D(size=(2, 2))(conv8), conv1])\n",
" conv9 = Conv2D(32, kernel_size=3, activation='relu', padding='same')(up9)\n",
" conv9 = Dropout(0.3)(conv9)\n",
" conv9 = Conv2D(32, kernel_size=3, activation='relu', padding='same')(conv9)\n",
"\n",
" conv10 = Conv2D(1, kernel_size=1, activation='sigmoid', padding='same')(conv9)\n",
" #conv10 = Flatten()(conv10)\n",
"\n",
" model = Model(input=inputs, output=conv10)\n",
"\n",
" return model"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Model: \"model_1\"\n",
"__________________________________________________________________________________________________\n",
"Layer (type) Output Shape Param # Connected to \n",
"==================================================================================================\n",
"input_1 (InputLayer) (None, 3, 256, 256) 0 \n",
"__________________________________________________________________________________________________\n",
"conv2d_1 (Conv2D) (None, 32, 256, 256) 896 input_1[0][0] \n",
"__________________________________________________________________________________________________\n",
"dropout_1 (Dropout) (None, 32, 256, 256) 0 conv2d_1[0][0] \n",
"__________________________________________________________________________________________________\n",
"conv2d_2 (Conv2D) (None, 32, 256, 256) 9248 dropout_1[0][0] \n",
"__________________________________________________________________________________________________\n",
"max_pooling2d_1 (MaxPooling2D) (None, 32, 128, 128) 0 conv2d_2[0][0] \n",
"__________________________________________________________________________________________________\n",
"conv2d_3 (Conv2D) (None, 64, 128, 128) 18496 max_pooling2d_1[0][0] \n",
"__________________________________________________________________________________________________\n",
"dropout_2 (Dropout) (None, 64, 128, 128) 0 conv2d_3[0][0] \n",
"__________________________________________________________________________________________________\n",
"conv2d_4 (Conv2D) (None, 64, 128, 128) 36928 dropout_2[0][0] \n",
"__________________________________________________________________________________________________\n",
"max_pooling2d_2 (MaxPooling2D) (None, 64, 64, 64) 0 conv2d_4[0][0] \n",
"__________________________________________________________________________________________________\n",
"conv2d_5 (Conv2D) (None, 64, 64, 64) 36928 max_pooling2d_2[0][0] \n",
"__________________________________________________________________________________________________\n",
"dropout_3 (Dropout) (None, 64, 64, 64) 0 conv2d_5[0][0] \n",
"__________________________________________________________________________________________________\n",
"conv2d_6 (Conv2D) (None, 64, 64, 64) 36928 dropout_3[0][0] \n",
"__________________________________________________________________________________________________\n",
"max_pooling2d_3 (MaxPooling2D) (None, 64, 32, 32) 0 conv2d_6[0][0] \n",
"__________________________________________________________________________________________________\n",
"conv2d_7 (Conv2D) (None, 64, 32, 32) 36928 max_pooling2d_3[0][0] \n",
"__________________________________________________________________________________________________\n",
"dropout_4 (Dropout) (None, 64, 32, 32) 0 conv2d_7[0][0] \n",
"__________________________________________________________________________________________________\n",
"conv2d_8 (Conv2D) (None, 64, 32, 32) 36928 dropout_4[0][0] \n",
"__________________________________________________________________________________________________\n",
"max_pooling2d_4 (MaxPooling2D) (None, 64, 16, 16) 0 conv2d_8[0][0] \n",
"__________________________________________________________________________________________________\n",
"conv2d_9 (Conv2D) (None, 64, 16, 16) 36928 max_pooling2d_4[0][0] \n",
"__________________________________________________________________________________________________\n",
"dropout_5 (Dropout) (None, 64, 16, 16) 0 conv2d_9[0][0] \n",
"__________________________________________________________________________________________________\n",
"conv2d_10 (Conv2D) (None, 64, 16, 16) 36928 dropout_5[0][0] \n",
"__________________________________________________________________________________________________\n",
"up_sampling2d_1 (UpSampling2D) (None, 64, 32, 32) 0 conv2d_10[0][0] \n",
"__________________________________________________________________________________________________\n",
"concatenate_1 (Concatenate) (None, 128, 32, 32) 0 up_sampling2d_1[0][0] \n",
" conv2d_8[0][0] \n",
"__________________________________________________________________________________________________\n",
"conv2d_11 (Conv2D) (None, 64, 32, 32) 73792 concatenate_1[0][0] \n",
"__________________________________________________________________________________________________\n",
"dropout_6 (Dropout) (None, 64, 32, 32) 0 conv2d_11[0][0] \n",
"__________________________________________________________________________________________________\n",
"conv2d_12 (Conv2D) (None, 64, 32, 32) 36928 dropout_6[0][0] \n",
"__________________________________________________________________________________________________\n",
"up_sampling2d_2 (UpSampling2D) (None, 64, 64, 64) 0 conv2d_12[0][0] \n",
"__________________________________________________________________________________________________\n",
"concatenate_2 (Concatenate) (None, 128, 64, 64) 0 up_sampling2d_2[0][0] \n",
" conv2d_6[0][0] \n",
"__________________________________________________________________________________________________\n",
"conv2d_13 (Conv2D) (None, 64, 64, 64) 73792 concatenate_2[0][0] \n",
"__________________________________________________________________________________________________\n",
"dropout_7 (Dropout) (None, 64, 64, 64) 0 conv2d_13[0][0] \n",
"__________________________________________________________________________________________________\n",
"conv2d_14 (Conv2D) (None, 64, 64, 64) 36928 dropout_7[0][0] \n",
"__________________________________________________________________________________________________\n",
"up_sampling2d_3 (UpSampling2D) (None, 64, 128, 128) 0 conv2d_14[0][0] \n",
"__________________________________________________________________________________________________\n",
"concatenate_3 (Concatenate) (None, 128, 128, 128 0 up_sampling2d_3[0][0] \n",
" conv2d_4[0][0] \n",
"__________________________________________________________________________________________________\n",
"conv2d_15 (Conv2D) (None, 64, 128, 128) 73792 concatenate_3[0][0] \n",
"__________________________________________________________________________________________________\n",
"dropout_8 (Dropout) (None, 64, 128, 128) 0 conv2d_15[0][0] \n",
"__________________________________________________________________________________________________\n",
"conv2d_16 (Conv2D) (None, 64, 128, 128) 36928 dropout_8[0][0] \n",
"__________________________________________________________________________________________________\n",
"up_sampling2d_4 (UpSampling2D) (None, 64, 256, 256) 0 conv2d_16[0][0] \n",
"__________________________________________________________________________________________________\n",
"concatenate_4 (Concatenate) (None, 96, 256, 256) 0 up_sampling2d_4[0][0] \n",
" conv2d_2[0][0] \n",
"__________________________________________________________________________________________________\n",
"conv2d_17 (Conv2D) (None, 32, 256, 256) 27680 concatenate_4[0][0] \n",
"__________________________________________________________________________________________________\n",
"dropout_9 (Dropout) (None, 32, 256, 256) 0 conv2d_17[0][0] \n",
"__________________________________________________________________________________________________\n",
"conv2d_18 (Conv2D) (None, 32, 256, 256) 9248 dropout_9[0][0] \n",
"__________________________________________________________________________________________________\n",
"conv2d_19 (Conv2D) (None, 1, 256, 256) 33 conv2d_18[0][0] \n",
"==================================================================================================\n",
"Total params: 656,257\n",
"Trainable params: 656,257\n",
"Non-trainable params: 0\n",
"__________________________________________________________________________________________________\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/artem/miniconda3/lib/python3.7/site-packages/ipykernel_launcher.py:50: UserWarning: Update your `Model` call to the Keras 2 API: `Model(inputs=Tensor(\"in..., outputs=Tensor(\"co...)`\n"
]
}
],
"source": [
"model = get_unet_light(img_rows=256, img_cols=256)\n",
"model.compile(optimizer=SGD(lr=1e-3, momentum=0.95),\n",
" loss=log_dice_loss,\n",
" metrics=[mean_IOU_gpu, dice_metric])\n",
"\n",
"model.summary()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### RIM-ONE v3\n",
"\n",
"Accessing data, preparing train/validation sets division:"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"X = h5f['RIM-ONE v3/256 px/images']\n",
"Y = h5f['RIM-ONE v3/256 px/disc']"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(,\n",
" )"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X, Y"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49\n",
" 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67\n",
" 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85\n",
" 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103\n",
" 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121\n",
" 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139\n",
" 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157\n",
" 158] [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23\n",
" 24 25 26 27 28 29 30 31]\n",
"[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17\n",
" 18 19 20 21 22 23 24 25 26 27 28 29 30 31 64 65 66 67\n",
" 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85\n",
" 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103\n",
" 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121\n",
" 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139\n",
" 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157\n",
" 158] [32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55\n",
" 56 57 58 59 60 61 62 63]\n",
"[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17\n",
" 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n",
" 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53\n",
" 54 55 56 57 58 59 60 61 62 63 96 97 98 99 100 101 102 103\n",
" 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121\n",
" 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139\n",
" 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157\n",
" 158] [64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87\n",
" 88 89 90 91 92 93 94 95]\n",
"[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17\n",
" 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n",
" 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53\n",
" 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71\n",
" 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89\n",
" 90 91 92 93 94 95 128 129 130 131 132 133 134 135 136 137 138 139\n",
" 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157\n",
" 158] [ 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113\n",
" 114 115 116 117 118 119 120 121 122 123 124 125 126 127]\n",
"[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17\n",
" 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n",
" 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53\n",
" 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71\n",
" 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89\n",
" 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107\n",
" 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125\n",
" 126 127] [128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145\n",
" 146 147 148 149 150 151 152 153 154 155 156 157 158]\n"
]
}
],
"source": [
"train_idx_cv, test_idx_cv = [], []\n",
"\n",
"for _train_idx, _test_idx in KFold(n_splits=5, random_state=1).split(X):\n",
" print(_train_idx, _test_idx)\n",
" train_idx_cv.append(_train_idx)\n",
" test_idx_cv.append(_test_idx)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"#train_idx = h5f['RIM-ONE v3/train_idx_driu']\n",
"#test_idx = h5f['RIM-ONE v3/test_idx_driu']\n",
"\n",
"train_idx = train_idx_cv[0]\n",
"test_idx = test_idx_cv[0]"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(159, 127, 32)"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(X), len(train_idx), len(test_idx)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Generator of augmented data:"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"train_idg = DualImageDataGenerator(#rescale=1/255.0,\n",
" #samplewise_center=True, samplewise_std_normalization=True,\n",
" horizontal_flip=True, vertical_flip=True,\n",
" rotation_range=50, width_shift_range=0.15, height_shift_range=0.15,\n",
" zoom_range=(0.7, 1.3),\n",
" fill_mode='constant', cval=0.0)\n",
"test_idg = DualImageDataGenerator()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Preprocessing function and data generator:"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"def preprocess(batch_X, batch_y, train_or_test='train'):\n",
" batch_X = batch_X / 255.0\n",
" batch_y = batch_y / 255.0\n",
" if train_or_test == 'train':\n",
" batch_X, batch_y = next(train_idg.flow(batch_X, batch_y, batch_size=len(batch_X), shuffle=False))\n",
" elif train_or_test == 'test':\n",
" batch_X, batch_y = next(test_idg.flow(batch_X, batch_y, batch_size=len(batch_X), shuffle=False))\n",
" batch_X = th_to_tf_encoding(batch_X)\n",
" batch_X = [skimage.exposure.equalize_adapthist(batch_X[i]) \n",
" for i in range(len(batch_X))]\n",
" batch_X = np.array(batch_X)\n",
" batch_X = tf_to_th_encoding(batch_X)\n",
" return batch_X, batch_y\n",
"\n",
"\n",
"def data_generator(X, y, train_or_test='train', batch_size=3, return_orig=False, stationary=False): \n",
" while True:\n",
" if train_or_test == 'train':\n",
" idx = np.random.choice(train_idx, size=batch_size)\n",
" elif train_or_test == 'test':\n",
" if stationary:\n",
" idx = test_idx[:batch_size]\n",
" else:\n",
" idx = np.random.choice(test_idx, size=batch_size)\n",
" batch_X = [X[i] for i in idx]\n",
" batch_X = np.array(batch_X).copy()\n",
" batch_y = [y[i] for i in idx]\n",
" batch_y = np.array(batch_y).copy()\n",
" batch_X = tf_to_th_encoding(batch_X)\n",
" batch_y = tf_to_th_encoding(batch_y)\n",
" if return_orig:\n",
" batch_X_orig, batch_Y_orig = batch_X.copy(), batch_y.copy()\n",
" \n",
" batch_X, batch_y = preprocess(batch_X, batch_y, train_or_test)\n",
" \n",
" if not return_orig:\n",
" yield batch_X, batch_y\n",
" else:\n",
" yield batch_X, batch_y, batch_X_orig, batch_Y_orig"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Testing the data generator and generator for augmented data:"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(1, 3, 256, 256)"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gen = data_generator(X, Y, 'train', batch_size=1)\n",
"batch = next(gen)\n",
"batch[0].shape"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAQYAAAD8CAYAAACVSwr3AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOy9y69laXLd94v4vr33OffezKrsqqzqrn63ukmLEGWSerRgWrZkyhQlAaYmBuyRBgY4ssfmn2B4Zs/MgQFqYBiaCNbIhqCJRwZkA4Yt60mLokhTZrPZXV35uOecvb8ID1ace5Puprq6O7MeXSeARGbePHnP4+4dX8SKtVZYZnKJS1ziEi+Gf9gv4BKXuMRHLy6J4RKXuMR3xSUxXOISl/iuuCSGS1ziEt8Vl8RwiUtc4rvikhgucYlLfFe8ssRgZr9kZv/EzH7DzH71VT3PJS5xiZcf9ip4DGbWgH8K/PvA7wB/H/iPM/MfvvQnu8QlLvHS41VVDH8W+I3M/OeZeQL+e+CXX9FzXeISl3jJ0V/R9/0s8Nsv/P13gK//UQ82swv98hKXePXxzcx8/H4e+KoSg32Pr/2hm9/MfgX4lVf0/Je4xCW+O37r/T7wVSWG3wE+/8LfPwf87osPyMxfA34NLhXDJS7xUYtXhTH8feBrZvZlM5uB/wj4O6/ouS5xiUu85HgliSEzN+A/Bf4n4B8Bfysz/69X8VyX+PGKyY3XrnYf9sv4xMcrGVf+wC/i0kpcAli689p+YYskM/n28+OH/ZJ+3OJ/y8w//X4eeGE+XuIjEUtvPNrviEzcADce31wqhw8rXhX4eIlLvO/Y9cbjBztGgG8aaJkF33u4dYkPIi4VwyU+1Nj1xjsP9ziDbkl3cAe3hpvxzmtXH/ZL/ETGpWK4xIcS+6nx5Uc7SCeBdThpsKVDJoFOraUZX3h0ReL89reffsiv+pMTl4rhEh9o3EyNm6nxlUd7Jm94g+bg7gROB9x0YnWDAbgZzeArb15/yK/+kxOXiuESH2j8ZN3cTpCAZ7JmMlmCG+sAxzCHSNfXzYs2m3z58Q1E8pt/8OxDfBc//nFJDJf4wOJmaixtsGaDULHazPEWDHNY4/7BCW7JZA1akAFrQqOmFpd4pXFpJS7xgcSDqfHH39rrigu4akZzWLpaiZ0Z0OimFsIdegMaOE7Dmdxwg2jwpTduPuR39OMdl4rhEq8sXlsakfDTj/eYQzMDkv2UDE8e1ON2zXh6gi0HS4cRxsjEA/YtGZmE62I9pTEiWdz5/KNr9g3+6TcvbcXLjkvFcIlXFn/i8TU/99aezaABljC7E64/G2Dp5EjSku6O66uqDlx/HqavbtlwDMdIh94MzPhjjy/Vw8uOS2K4xCuJh3NjtqA5XHlgBknScXreJ4pkkObMLdk3GAFpMNJxICNYMjSt8NDEQv8RN2Ng9AZfeXzhO7zMuLQSl3ip8fquEQF/8q0dEdAdRnaa7nKOOZgAcJLA0jECS1MisNRFaUlGkmlYE7/BSdYInGQ7g5A5IO0CSL7kuFQMl3hp8frsEPAzj2c6MAERRmvJGKoeLOFkkAmbwWZBmnNKsAZWCSPN6G5016hy8ah2wzCvdsKS3hxDieEn337wfV7hJd5vXBLDJV5KvDY3/sSbO376zR3Q6EA2nfaZsO/Ozh2zxkTH7NxKGIlx1ZzJne6oSkDtxIike2LA3qCbiddgQSfJBPfEcEYGX33rQoJ6GXFpJS7xI8UbS+Nn3tzjHoxwzIPJSv5UzMXJnEbQLHVj179lNjqBE3R3nqzB4kYzZ0SwYiwNZjNuA0hoBhEwGwwzGkliuBmZRhJ87a1rRgYRzr+4EKF+qLhUDJf4oeNTi8r85hskLG4CCTG6w3b2+sggEiKhJXL/TGcPJE6a4wb7DrsejICOM7tz2oyxJbM7zTStMIOBQRrddAknqhyqDFFVkckXH10qiB8mLhXDJX6oeGNp/NzjmZEAiVuQ6eBKAJbQXGymKY0EjmlMrmoi2DiF0+sxidqIK3cOroSypcDLUzj7DuZGkMwOhyEW5KnIkj2TYUpKA8jIi2r7R4hLxXCJHzgeL41/882FSHBzMhuJYxY01P+bJS2jKgQljtlg9sIJ0kkTkcnS2EYyhpHmNIc1EmfwdE3mwimskorAyCSBkcmoJLC0ZC5gkgSv4uHt1/Yf6uf1cYxLYrjEDxRvLo2ffXPGLDEMSw0euxmBESmuQkRDnUQwLBkJFmopiMQtidRxv1HchQgWD3aza5IRxrBgjWAdgzGSTFUZu2bMVe+mFYiZ9xd0pjHMiAwWdz796JIcfpC4JIZLvO94c2n8yTdm0pJGYibG4mrGSJhcv9ICa0lY6JhP9RfeGpH6upO6+Cx0ugMFG7A3uO6dZsIa1s2Ym9OLJDUy2DBmjF0r/gOwDliH0S1xT6k0gbBkceOrF4bk+46LGewlvm+8sTR++tFMd6O5RoSGEaaJgAFmAgUnS9ZIMGMxJ6BYjzCbgwfHKCJDTSjcklMRnCJVXYQ3np+Cp6eBp77P1QRTPwMH+n1LTT4ASDiNZETQzHk+BiMNr+MvEkZVKf/yD24/kM/uIxYXM9hLvJx4c2n85GszI8AyGEOpII07tqJEkEFLzRSbSyG5paoKM6MBmaoOZjfClFBmSw0SEoykmdGbkRnsJ7DRyDAyk3UI1PRqX5xkbsZiySJZBQ3hDFsGs8PSZPziJEkyNY02v/DGpbX418UlMVzie8bjXeON2fmJhwtNaAJrGKc0DiM5DThEcBzBGtXTp3HcjG00IjS6jIDIIEjSINKw0E0LUlwubkwmElMprblp+mUWZGku1pGsQ0Cjux6XhEhUJvASa5UIYHFn79Wf4PKSrPfnbnzp4gj1R8YlMVziu+LNRRyAn/3Uwr4lS/1qXQV882S2YAKyksXzzdiGSvstEsIENGJs1SgKmNRIcYpkMk0VwpLJOlsaW5GjMhHBqTtWDMdhyWFLGkCJrRriRgh/GCQDx1ncitsAvUP3ZDKnm8aimB79+TcvlcP3iguP4RLfFT/7xkKkgMVmLom0B51Ga0GksbQCHJt69+OWhBmLi+RMJmsYQTCZ7uANcIuaZMCWdqe4pAVT6HttCMvY92Q/GyPglNAqyYwIpgIjA2PNZDa1DWPo9+ebONfu0EN+Due1yns3bof0FSOTrzy+5p///oUh+WJcKoZL/KF4vJPcuTssJvGSmyYIA7kt7btO42YQRXtuE1xNUQxG53o2ttQpfYrktKmtUFEPh9SoM1I28RnCIpIzuBkY8GAB80ZLVSANI0P/vqawjslUaXRL9ibfyMmMxZ2Os5ixd0m756bsIIEW7Jvjnnz5Itv+Q3GpGC7B2zshd19/c2ZUKT8ZBLr5xTmAuSWjbujWYA3DAyYfWLEVuzUmD44JD3fOGIGZ012l+/NVE4YGtBp75gbZZMbimQQDtybSU9Rju5FDfOo1kj2NpY61ZwQzzm04loYRhBnNjDWCdGMyI0PGLkHQLbmtEqIDvTk/9ek9//D//UROK74rLonhEx6f2Td+7vFEA/auEeIITRO2gDATFlBy6LkIB4laiQQmmS2QGEtzno0SUlnQXCTlxRsbUac9HEItRzfXzW8CM1ULBBaDMLEYe9PXbTNOBGME12nMSK69N+EUHom5ksnS4HmVKJOlbOhdOEiv+WWPQaScotaUt+RPvX3DP/y9y/6KSyvxCY8/91anZ7LzpJsqBSxZE3BpEKKIRbtmTGWt1hKWmiRYaRQmHwxWJkdlfiTYwMwIV5KYXOPK17pzNTnmwg9OETRkFJ3hHDa1DFsG15MzwjBPpmpGNozV4AwceKqNyYRRE5LJnKlEVg1VJ9313tZUKzGXtmNB2AmW/NSnL9OKS8XwCY3P7F2Gq8bdtOGEsSDLtAmBhd3lrnJKYx2BlSnrQDfU3k1TAzOOYUzNMNP33WKUYKqzR6aukzU2kl1L5u7cZtBW4xgFYJb26XD2ajB9/+ZJrnY3scjSYPR0ojgTSVRSUIXhVRmMobYIO++3kqZDzjBJz8TTmC253Rw8+dpb10Qm//fvP/+gfzQfibhUDJ/A+My+kZn8/NviKCxmeLY7XGFqdjfzXxFpyT3YN6O7gMh1ZPkrqO8XLtE4lR3b7CnQ0BrN4OnmsmDzYPLB5ICLcLR4snjSeoolaUbDWUNCqURU66Vxh3EswHU3ei9qNRqRenEczCSucsSBcIwRDU8xMtMTT+hVWUTqOZsnEVUBNedrb30yXaEuFcMnKN65cv78WzOnTK19c7jy5JiGuajCkxu3qRt06cYa2iO5746NZGeNU4qefOVwG0krOXRE0jHWNCaSZhpJYrphN4ybBtGS45bYJmASN/YGrRmnHoxIIuXTME5B64abM/fkmBtbwBqNrajZVuxJc2MLJZFuxtSCCOMUMn/pNmjIgn5nqhxW7ndkAiwYXvqNSBjkJxJ3uFQMn5D47FXjF96a2bfk9QketmQxx9y5chGCJlcLsfNkMtGd3Shb9yTdZPBazMLnBT6Wz6tO97A7d+gTJkFV0ZF3LTALOUXXKLGZ4QxWE8V5b8bcnXkqDYbDadMTZVqZxwqiPCs31wy6izZ904RNjAwcZ6SXk5TaizS1MQCHUVVFYRVrwFpYhVoPYS7Nk59465M1zrxUDJ+A+Oy+8dc+PeNmrHWSh8F8NlchSYcp1RIs7mwJe3dux32r0ErLcEzA4MapauN844qNeBgq+d3OK+eCRhLhDBNCaAYbwQhNPaSlgFMmsxmbhXqC5Uyzhmah2UepOcemxy2t+BEuf4fFnWYarULZ1pf3w72jQzC5PCWPomgSKTbmoSYnJLQX7Kf/+Ns3/KNPSOXwI1UMZvYvzOz/NLP/3cz+1/rap8zs75rZP6vfH72cl3qJHyY+t2tEJN4Qql9GJrsqv69act3PJ6PO4kZyVaYou2a0Oyuk5JBJb8nSBBA6MKXYkUuJp26aKMgzxmwmo9YQGWnXpLUYhEBOr0rDjEEwuzF13ci9i9F404KlJberxpqzGQ9n+Ukv5nd7MHu5SJ+ypiro9exe0GWAk2lsIXYlxXEgHTfnEBChSmKcRb95X1X8xCdEuv0yWom/mJk/84Kc81eBv5eZXwP+Xv39Eh9CfG7f+AtvL/ylN3c0dINPHsy18WXq3BGT5nJi5i45OEHcldYTzpU3dk1l9khTIujJYLC0VKKwvG8vykClW3I9GadIDgyV/SGl5Eid7DtLpu60Juv4qUHPwUiJr9zvJxIj4fdvNXWYitV4fs7FhDHs/dxqQMeYa6SqC94rScCu6fGOyFA7Fy+juXFVo85RjxVgGvzk2z/+48xXgTH8MvDr9edfB/76K3iOS3yf+MJV4xffWZgIph6sqSQwGzxwyZQbRk/HTC1BUCxAgyBoVSt0N2aXQKrh3IZxOuMLAe5ehKWQ3Joaa7pUj0uNOPfN7sDC5sY4tyit/BqAq8nZuaqZqTVZtbmSSxiQAjrNRt3oCRlMqQQg7YWSyWJ5d4GPDIxgEAySLYIty/9hGO5qQUZVQR1YU5XLZGox1jhXT/ljnxx+JKMWM/tN4Nvo5/rfZOavmdm7mfn6C4/5dmZ+VzthZr8C/Er99U/90C/iEn8oPnfl/NI7EztrmCenSGxzxjCmOdnNtaOhxE8ZmtufIkuoJHWke5OK0Qa3Qz19cy2ROVbvfswkCK7cZb7C/bV0TE0E1oBd9+rXdUJvIY5EcPZhEEmq9SRDCWENJYdAlcW3D0pg33iiJNcseevGue6NLYPenG89H5wKH2g9sSJa3ZZk88y43JXb9EYwUi5RpxxEAZtrYS1ueacMFe8h2OLuLTKb8TySf/J7HxsB1vs2avlRwcefz8zfNbO3gL9rZv/4/f7HzPw14Nfg4uD0suJL185feUfOzSMHFjB7I7qkyVYnoJmxa5rXP0loKU7Cko3DeVRpYiRaSvvQhm7mZyHCEaj9aDhratyovj5Zy/r96Sbi02kES2khTpFYtQWnIaOWLQ3PhC1p3hmhjddrSAOBJ9dz8s1n4h+sAQ9rK/aaSUtnbEGGk6HKIkYylelbtyw/Srhyq1ZI76GZxF4RlTkImc+YEyRLtVRBMCFM5BiJmXOIoBl85a0r/vk3fryIUD9SK5GZv1u/fwP428CfBX7PzD4DUL9/40d9kZf4/vGla+cXPjOL3ONgzcpuLdl1MQMDOG6DCUmfj8NoDGkiwnBEYmrmREgzsYXET2aJRfEGdQ+T6ZxCp8tmUcCfM+DOUm3fNX5MC617oBbDpFoHc+kudk1chRHjzs0pcYYlx1TSWSZxJXaWHOv1CXMIDilAE1Pd0os70U1A6OJSViaieUPeGdk2EndNURzRqN20KMe9MA5kS79mMtVo1U08D4CvffrHy9fhh04MZnZtZg/OfwZ+EfgHwN8B/kY97G8A/8OP+iIv8UfHl6+dL147v/DpicV1g6sc1mlowAhNI1oYuTZmc46bHJbm1li6s+suoyMT12BDPfgG3I7kEBIsbakbvDtsYUoOwGk4t5GcCLZUCb5vdkdfziH/hH0XuzDrRnPgepLvw9JqXyXJ2Iwp4bgZsRk+ZAKblVhG3ZB+9lwofOAUknstPZmakpVjpeeATigZZTEkuadTn1mWgwGp51uzSA2miciL40vQFKSh6uVrP0Zchx+llXgb+NsmxLYD/11m/o9m9veBv2Vm/wnwL4H/8Ed/mZf4XvHla0Fhf+0zk8A24LY4Ad10Y0YZNa+esGpS8N4huN6XP0I6WxmkNrjTKpgFzcSCHKlRYjNnV/dFAK3JM+FYFYB8FaRmlGN0SuoMDIPbNaGLYm0JNRwpCYOmEWaw0NiKiXmIYCA5dXd4MBvvHQcDIyMk6DIrcpJO8TT9H0qC7XZ/M0exl7qJ7LSFEuguk+f1OjwbA2EkG5rK9KpgPJMVJdylOc82fX9P7cL4ybdu+Cff+PhzHS4u0R/T+OJ14y9/pheoJgEQaIIQqVPZkLBpNjEPj6ckh3PVkqsF5slJ10q420GdmbCZEUN995O4/9FEag1dqayVSDDCpIrUrTyIMHbN8QbvrcFNd56u+td9F9ZwLABy9vodaM1pAWs5NL13kiW8uWzbBsaTk/Ht58mG8aDDZx7o+20DvnlUompuzNNZaCUvh+NQlRHF36i+hg0jY+DmRIriTcrodkV4S6v3fyZRGcaaAiIjYc0iVEXcPfI3PpqOUB8Y+HiJDyG+fN34y5+ZiVT/DELyI2WjFiaw8TZUauPweje2yTie4Hgy3j0YdoTXrzWGs9TG6NtQf+8Yw3TDhgGeXNExizI7KfCumJQYPB9SamqLlADAN7uWvrw2GU83Z7KNyAYRkkUXh2GE851D0EvpeZtFq65hR9Lu2iRjkBmiR4cAzdvNtO+yw9x0g2ZzZG8dzO4ci6gUaAQZpqolXFjJ4OxubXfjzmaNYwx2bhzPLFEST31GGCwWbPV6icbz0+Dzr1/x2+9+fAHJS2L4GMWXrxsB/MKnBTJS+oRdk1vy3JxR1OFTJt0beMhBwWAhsUl6httVRKFtNCIHt0HtjAgOodLfUxCUJVy7yzq+UP1ztbA4ZMpT0dLYtkaa5NazV5ltsIVuTqNxGNDNi7CUHAKOI3APWmsCHvOMT4hPEUBvydNnAhh7GNcLPFmTvTt7C7wBJOb63t2cgwWTiTM9jDt/yHuBlwDIzRMPnf5pyVQci0y5Uq0pd6mRSk7nqQWp7+M4EclhjNrwDV9945rf+Jhu274kho9JfPG68eff0o8rkX37eVy4hcxPGmewUBXEuWRunmxFWzYLdovxbAsCVQubyzVpHYA3eu2Z3EhOYSwtGUPEJeKsRTBaLZzZim+wlAPUcTiLJ7vmMoQ1UZe7qRq57hChTQ+nAhJPGXQXUNoaHFfRrmczLEMXqjmOdk409ztQ0Oq0n5tajMMWPJydY4r5yNA4JctnQs9cG7NDLVdHbYWbBB93HZSFgMsiVpFJd7UdjrGRHIbGlusG1EjTK4F+9fE13Yx//DHDHS7qyo9BfPmm8fOPm05R0wzePTildAEONX0IIsU+zFBp212nYxJsjBIhDeYuYPDZQQllbvCwOXtLNnQKbhgP23mcJxLSzu51EWPo+dMCC41AZ+C6CUN4tqlnt5TycWTtqEzxD05p3I7ghNyjzFwgZsp9OgvHOHssNCsWpukGfr6V0zOh/RFefhFuvLumVJlh2oEZVhbzSgiRxjo0PVmLDWnVtsx+T4O+l4moKnCXAnPNJGoJzmTOWkyo85q+qwbuWdhP8m+89fHSWFwSw8cg/tzjuZyZRdpZWiPTtXqeqMmB5Myz6Vd36AymdDpwuxpbGkdgS2eeHVryfEveu012Lps1swLwLFlMI4rrrj0T183LxFU3enPRqqeiVW8pVeYpjd7gdhinYbw3inJ9V4ons2cRse7bISvegcHdPsu5aYxqDmnBG8VEPoZMYU+bcBQlhwI4m+TXZ06HF1hKUIlHz43JbyHT8boVmklk1e0sOCvdR/0s5G5VhjAmV6t1E//BK4ssDXqDvcvfYvHCej5GcZlKfETj89e60L7+ZueqCTSbSzTkJT0+oiN455rPg8Q/YWdq83kM6WxnGN4E+m0ZTDjfeFInpcGDxQgL7YoI2AyaOxGDqTdOG2wMJmtY1fEF4tM82MLYImneeDrESIwIIpNlUuV/GqaKJGA3VdIi8BCfcm6QQ2PL8GBK7ZUwTwYibX3rNvm9p/cy7X0zPnvtLEsqGYUAyl3v3A7pMo4jWNPvPpPNoIXeuBVZKUlOcZ8EAoG4a6r1aFXpNNO7vx3Js1MwuSYkA5nbnMuMkeJIjNQGrmAQCb/x+x+aE/Vld+XHOT575fzs6xM/+ykv7wHHTaX9+aIdnLc66ZQf1WI0YEp4vsWdbsDrZA9LZlNl0NLZPLAJPS5g27QHwlyYxc5leWbW7xLAhNbbS2chH8eN5BCNU7kqnUZgmehW1ns4jAITscJHJFxKl/9C1iRkNsOa3l8AT9fkECJANZzbk7QZHeMYRevekj84yavhugW9F4aQIjuNiGq5RAl3F+9AoIukXFrQq4lLZoKF/CRMfAwxH40zv2kdhYO4szSYurP0c31xnxSEEavF21JMya98DLZfXRLDRyy+eNX4+hsTvYObF/VY6eDKtZA1/Z5ROLtYdxnGXLP3YwmFZivhk4uMNCOqLwnWdcLvpqR3JZR1hW0U8OZGa9IyNBIbwb5ajX1LploeGS5soKXaj7R+t+G6I0BShq5qK26H8ITexJDM1OOu3bhqZxm28MItXDcycLsGIwaLNbZhXHVjPsutEw6blsysJuxg6kqoZkZaY29dVG3kXr03o6es5iMH6zjTrDVJ6el4ntuaVvs1zpJzqTMn02atq+k+YTQ/KzoFaIwCKcOM40igEQlf+ogv1b0kho9QfPbK+VNvdPWvZyYhIgVlFqBoEkOZ16boCAxjDON5wLqpNThrgs5gHsPpPu4kxV6U5QfNeThBuOi920mze3NdHM1V0p/cyl9BlcLiOpWPA56P5DBSuAMqznc4U4fWBs2CLZQQ9q42ITH21ZXPdj7Jk9nFzRBlIBk1TVBqtKqQjD5ph0R3rdJbE25TSbKnEqW7JOEZ8pXQ+77naBxQNVV58M6yrsvBshyggmED0Bi41w2+lvHsa7MrQSC2Z5FIiZTpzOLyi+j1f4PQNAT/SG/cviSGj0h87sr5+TdncftN9N+bnncX6+SNQ5XPI40xNGo8ZnKIoUWznixWK+et6L+mCsLI+npwHOWEXJjAfnJeX4znqe1M2ynINThscccCbKg0bmhU93yUZ4LL8em8oCZHsLPEM3h2NA4lprojG7qWvxyGTu9uBmYss5FePpGUicvZ46FupGerk2Hsp2RuaN8Espgnk26NEZQ+4v45h53pWNBdfIkR8qTQZ6tkFMXbWEtWrtV8Lldp4DSSiFBLUt/wupWrVHO1OyadiruzVaW3pbgWk2uC0Ypi3o2PbFtxSQwfgfjidePPfKprX6Srv55M5qd7B2/JrutCPmNbvVyez0i+u2zfW0/2PVgMGaLUqbwhAIwiMllKLBQuwVT0ZL/o356tcIvK/EOK2ZipHv52SCswUjjFkvpe+8mYG1z1oLm4CN7KHLbBzUzhD/CgO3MzbpbEPdkyuI1SMaZaj2EC+dbUn09Dp/Ex1N/fbuJxeJYhDLAyWIOyjacUkIMxrMxhdcPql0aYjhLUGuB+3oOhCiRSz7++MCE5RojD4MHcklP6XRvh5J2BrKeqjC2zVJncjz7LCzOKx/lRrBwuBKcPKT53pZz8M5+a2RcZ31FZ/LCrz59MV9OI5JBOMNgjHURPMe/OEmFPozcnxiYpdDH5zkQdd/EG5oIEz6tXLM8nubFbtF36W88TPzTSgzbL1s1UfLDvBVRSxrLAa12lc6tjZq0+5mGXCGnfnJNp4rBhjE39+ZPjvQw7MjAztgi66/Q9Idrze2vShkDAQTJ58trO+K13ZTm/ZbLr2o511ZQQraqG5+NeSj2ZktNItS/UBKenluJGGN2DbagFaKafgxmsGM9OwWGFh7PYj9dzUxuCvq9+IsaREO/B5BAV5Unh5w/xhfP4VEnsC29cYwa/9c2PBlPyUjF8CPFOJYWfe2PSPD/Evz8UEScKF8g8n3wwxmA2MfR6aotUphXmoJv7yTo08zed7Gkqz81U6keKGUhIZHwaRWRyJY4JOGKQsm6b0mmbTtAOzCYeg7kqGgtd9Ie0O3KSmbFv4iWEBTdT0jCuXIzAkYl157DK8s0JbmYRkwzDrd/5LMh8OrANdq733prIViO0vMZMuMSZnJSejHTWhA2n+6SkWfsrrT7PFcA0ppT1XH0DxKB04BjifqwJT44CKBd3okatWNT3EsUs8DKrOZcGwlI8Rc/uhZGcgQhHbM+piUXqJF9886Mh3b5UDB9C/OlPNQbyUZzqBNFyk/s1714jMi/ewty0Ri1N4Nji4ias4TQLvMxX1lB3fV3knbPfklUFEuFoRnC+OLXZaQJOJDsL1tk4HoLbEikl2hK1Fvg5Vakxucnbsd7DqZyZBrBlK3MWZ5kAkl4S5+crfHppPEtYZr22G3feA8amacmDnhxSmjZ2poMAACAASURBVI7XZjlLm8GDWbfd0y3v/Bys+vp0VU7pwjuGJy0FqibJStbERfTluTmcJyOmpHPa1G7IqW7gJul6VOnVm3gjjrQkpzLA4dx+qFi4q87OUdIWcSaa0TILy7inX+vTgs9/6orf/taHK8C6VAwfcLyzd1acfTHj3LTMpTvceBYYV1eKGUnUyM7F+y97tiiLs0A98kiZnBgiN53M6utBprHUBW2uBDBZGbmYbN2eb8WBMOPxHsmWI4iRnM5jTBdd+kSIRmy1H8KaKpUU7tHcmT3ZuUA22cUXUYnkZoFTq4kCKtM3M/rQGPHhpNdOGj3srhLxLmBw4HznUO5MNbHoDoc1yRxFoVYfleh5sDOBylgw9mbsXSPYUZ4LM8Ywu7OPT7SU5sl6n4TWSKk2gWMEp5TknPrchyUtz5Z1cIZAAyCD9W6MqephKsp0VKURSGfx+Q8Zd7gkhg8wvnDl/OynOvsqYY9x5uNryjD5uaRUHzzVuCtDysLFlUCOQ6W0ETREJrImTkNvKfIQwYjAwhie1Xo4s2vPwpa1kanAzKlpLLildAJXO6dN0CedZDm01u2qa2h4ylY3rNMTsqqHU+kiGgIHJ3OIKCOVAhMT1s1quiI9wQiNKNMEKHrCYQTXTWX+iKA3mLvdAbSkfndzHnSrCU5xG6xg19CItLezeAtAySND7cnenAWNeBfu7e8j4LDJ3q473CzOMqmNW1+oBjJD0yK0tAe4M5HVJm/YRrlcU4xKKy4ItSv07ruJOt7sw701L4nhA4h39s47e+On3+jMze76Ye4uQmPq9+BjLWDC8kyWCRaMGfkjumd5DYrFN0xmKyIV6SazwiHGGYNIF5swswxf5UGwa3e5gUCYw2LJa3Py6Epw2tyMFlpdt3P5M+7KpSlzcCo4s5cyc6TWxh3q5mjNy75+8NosbePNrFZ7G2oTtkztkmhKDs9PecdX2M9Bb8aDKfERmpDEmX8gHcfTU9Y6PSWS03Z2ToCTaTRIBt0Gs585HUqYcz+bzMDkzuT3lObzzLPXnTKZgNWtWpc1IExJqbIOK2ehVZV09zlEawBNY9otgzBtyGp+fpAOjZHwtQ9ReHXBGF5hfOHK+TOPJ0AXVpRTkvYrnEOtwhbABBMGESy94Slb98mcbx41ykzXleqUsCiTnTeeb/BuJFPqxFzKGVkhXcWE+BEzOpHDYKTTLTlEEOOFBbHVtrxxbbz7PAlP3n1m0NWzv7ZzbtegWaO3QQbcbkNLY7rESBIOBVtqccRmjXc3EbLc4ehBrAJc55bYkHX97z6XEco1zjc3TUJev1bvvtUI9ME++fZzScOzrJoma2QIPDy60RMOiN2oT6FhFmQYjcawMpMtN+uexpOykX/3UB2/aWPVg0Wf5ZbSTESKOzE143YbhLlGnkhvIkxBiRv0WS5VkVUhI6ZmCpwNNKnBVDHM7kQGf+ytGyKT3/yAHaEuFcMrjK+/PQlLaDopelP/jOmEDNPF0UzeA5mwN+i9iaBjGpmdEE/h2UgYRg4vQ1SVwm51IwNpg9kH1mSQel5JPyK5HfBsS05D+oNjof+nmoRYU7LZMNYBc0+6OQ92xm3A7ZbkqpvxW4cg3RixqQ0wWcL1pj4+EdPwMPKOWThSzysdARyHQM0N471V7/ewGW8sWiVzM4n+bE2lvAhCgGkJr2Utl4FiYSYnSw7otL+teqxjEM6a2iMx0BjxzCTYirl4noY8P52/p0DdR4sqrggZuGD3askJTSpATNVm5S6NXqOb7OvvfSfP4xPq/9ctWOOntYx7oZyxilH55cdXfOXND27JzSUxvIL4fDk375sAt7Pst5H0Jt/EualXngzO5h6TOytGs1ECn2TxM6tPSWRIicTieedTMDK56rUr0hvuWtiSNrA2eDbONutSDy6uvQ+exikHtzHoBrOJj3CoG32kjEi6w3WHzctj4SBFo4VKf8M5hfFwTnKUX0RmKR9F0jiFxqNW5fu3T8EOVU6vzSrLn61J7+q5b7rzZNPmqEeLM3W5VC9mjBy8e1t+jWhcObvXMl0tqp1byvS11WTGgh3OvvQiZmd/BwGVkUoTx8253bImBMlrs0alkylJnkFDUNvVyBdwDf08jiPu+rOox0eeK7gsYxsldpCCbYRDOrMrSa8hwLZVPmlFGf/S4w9mnHlpJV5yfP5al82feXMSdtAkCDrPt68ohLsuyvM5sgG71PLZqHYgE24ph+J0Zhus4fSmG23xIgiVsarYic4pAne1JwPxE9zBwuTcDHVynmnNak5GeUYuGE9HWcbVApf9AtaMp4dkjOTZrdoGzBgOe5NnJC04blajwGCjKNpQzEZZp/UsFeWAk1fFtIXGqa7y/zTgzStn3LVexpMBS2uYB+sQKWo/CcTcN6P5IFPuVfsGV83ZTJZtW2qMaQ6WQQ6IFlKaYpyGqoZIeDDpOa+mJvzDtOX7zI6Uo3aTatMHO0S/PDtVLyZp+UhRyQ6hRL/VbLJZFBgpvGF2bdn2BuvZLAIliFbj4LU8LT6IuFQMLzE+f+18/XHn6487S6Xc7ipdb7pxc3ZNzbvKsTwRszwHCtVHxJozaj/S73YcpJ1Rcp3ko8aXY1CliSqLxZR8Foely0XplFI0ngixCl3ofUcYgIfLYs2cnlk8nCqrazHMw73jXUnH3fBokkrXzWYp1qWZWhS9PwGuc9N3G6k2gJG8thjdnInkyhsdZ91MH1qCTyJpDZSkbkpQ5ibruPPUBoPnq6qEySXaTg/SVAGdcZk0La0ZRco6DjikbOifr6aqpQhUr82tRFfwLEpXYdqK7da0wLemB5maAhGqata8F2eRmgTdtwmKmdqdmRoBT02vK0qrcU4CazjrKBZrGl9689WDkpfE8JLi81fOzzySpHbfJHnOUuktZzkx2g/Zmy6YTO1SfD508zyvvvd8JhxC+oTNRCuWLkJgRJpOoRGVPAjShhJGM7wZk6v0zfRyS7oHwkYIUV8jOERwyuCA1rBpalAahSJZvbE09pNukoc7Z20SQiXBk0NwGjrhR1UwiXZC3kZySzC7BFIGbCNYSa6WShgddtbu6M4zamUA9hNMYUwhlekWMIbMZJorgcZdFWYcVk0kFgsmkMNSYQuJCFBn5ygcds2Z0I33bAwmc95cjNeWwhHq/0X5R444bw1PHvTzja2b+fm4n0ZMhUE0nOGBW1Y7YoVJiDU6ubgmkaosRapK/YyrHxkZL5IpCfKVJ4eLg9OPGF+8lkjp33pjwpsuuqCsxdr5balvnJtzO7TIhALOtlIDRjEcBTaJCzBFkk0ncwHvOvXK8EOkJp12S9fFfjWV1WlS5iQ6sjxLzYjxJGX8KjqwXmO4QMpIYz8L1ETXJ7uukvrZAAuttGvubCM5ZnI6GXMY396C12e94/0O5qUVS1F28FsY761BhgxVb1qVx0BsKT3BphvxeYi8tCwyhD1E8nSTMet1N751gHUY3z7E3d6HNaRj6GZcLSEMpzl/sEqmftXk8NQMTrXo9hRwPMK3TroNH+90D7buGElkkN54smkePFf1s4XMdPPsAvXCjXs8zz5TqtZjKgup9jrvysyaQAjrUMtwL6yK1LA1Mu8cteV7qcmGm1ypAP6fP3jfLMmLg9MHEV+6dv7ttyd+/u2paLdATRbkUWAcRgFJlowcdCvDUtO8O02mJdqqpHHXGFk6ARibEkEiwlD3xJsIR5nax7D0IvygUVymcaqLcKR4+mfDl2G6YRKKlSgk7lwyL11gWbc6/d2YRVhg74m7s+/SAPTmvD67ph/d2Jtzu+o53zvAtia3q0BIXe7JrtiKD7skyoZO0jUHpCqcp5s4DteTPs/nY2j3pInfsQ7xBq764KqSsbv683dPySGDJ6fk2YBnm5U9XPA8rDZwly9CJk+OyXdWkaDOW7N7P7s2KbGcIoo0xh3HYJQ5xQjd2LtCCYUxhOo+0+P3LgFXr/EkFMYTmjicJxDnSUmUlqJj7L3TvMae3+sQz+TTj14+S/KSGH7I+PK18+99eqmLxdm5KLUPGmXIWjdb3WCtaMtn0o2MVoy56+d93c/uRbUNun6lC/1f0OnfvbGU/VovADPrApQJrOjOC8bswY1zh0+IUq3XsfTyLfBS+DnleJwcNrU8iTgBh02jSVI6jdkbp6Hdlu7Gw91gXoKctGbuyQpPDqmdlmbseq2j84Y10bOt6N47l5w8E+ayMOnA0pLrWc7Xkxve4OFieDp7T667kuDDnQhKYyQPmt7b85NuoNPqPNkGmyWZTWxR11hzTefpSdZxQfBkBFddWI6bydbeilBmalsm1wZuoEhO9fkRHGJDm7LvhW+kkv9tajQc1WOt2g141x6cKdW9yE8T+kAiNYUaRdFeQyPTs33X4nq/L+IWLysuU4kfML5yI/DrL3xGPMRe4KEDvkkY05tQd00KatFJlPioenhtkSqvQyvijMl70BDr8YTdFaA9aytTVRa9o9aiBadQCXBC1cop1JOOME7o8QMtoT3ZmVNgYKFt1F5ot4sCnHYmHUnyfT07763BHmMWNZGbyVlDy2zmqbGuwfUCt5bkqfGUjds1ebiXs5R1Z054foKlacyHNfKsLQDG0IWfCY/2Sgbz5GQOeukxxK0wuove/c1j8vYu+fbBSYxHO/jWAb5zkE5j3xNblEjXEWylhMwwvnluQ0yYwb7uBvezulUYEHlfDQ40JfIUoeo2laBGMSKbVYtn4nucE8RZKNXsnu68hSYQXgkIhP1sZDlPcVd5TC5j3XPNcAYmpzrav/T4mhHGb//By9lfcakYfsBI4C+9M7M3YzFtZu4uDwHRkwvFLxv2uMv+Ej1pxs8dQu4mRSWm/6OFtALfegrh7p48yWQaKl2fbXDYRCbaN+2i7J7sm8rTURfy0nQTeI3ERo0vT5lMLTkNEYoOGxyiWgpvd9hChqqhwyZGpcxNNNXohX2MqlbO33/uSTZRrp8cgvcOwTbK8LUOycxknhJrqhDMYF1VkaQZuPwhtpTQbN/87jXNZTHXDR5MyWdm41OLcz0ZT9fg6Sl4OLc796QnqzwZRoRu9hJlfetWp/d5x/X1JEyod+cwRGRyRvlY6nM9u2md91RgQ1yIUrcCpAnx2FJqyzXvLfF0KOgaCAqEdjjzpqNejxdn/q5xSDhuNaYhq64qPKvYlyC9y5cevxwS1KVieJ/xtZvGv/vOzFuz2HxRpqFW7MOz7TqrBDNzF6i2jqh+HlrTB34yAwbnXQaBTqjFdFRpzZwx9apEPHnQO2vCLgPC5QLtMlFNjOZamrIhQ5YccGLQXfsoD0W0auWIZBgPOxxqwczO4bTB1QQPZ+c2tSg2TaKs2SWRPoUkwy2FF0TCNBnPTqmZfyS7WRTrwwbHJ4FPxrYUGxPdEFEbrQ7boHXZ4g8Tyep6lliqAZsrgXXLWnCbXHXneIIM57obT9bgpgfbogri2Wlg6GQewO8/C64n48FsPFtHTQCEbZgbD5YiQhnlCOVSkZqqKU19RDpZmhEj6JNh6SSBebsDEc9mtkoiSvjbkK3bs3J/Ou/lAMq8xbCsiiGp7d+67paiRtO8xFWGhXQozXQFrSNr1AnNGl9564aRyW/9CDTqS8XwPuInbhq/+JmZR6a9CGIVKnPPzXCTQCmjRDxm5UictVEpNLYaZ7ZccGUqdc/r0bRMNZkRuNddoONILWtNJD1ezFlMSsQOvHeSoOrdVfsUtryfKGxohDaS2kdRVYaXwhGBeVCgmmkUOM6kIaSLkLRaLtIeZ2ASskt78ewYzL1eY1MinCfn0dRIDBvGu7cDS4F021A1cDuGtmkNjVMbkJ7sJpX2UwGLU9G7t1H42xosRSM/AdlSLdEMr8/67JZujCGLu6U5T9bkyVHJb4S+76O982gxbiZjwenZGBZQwGS3JtITatnU74dUqdSHXMQwMSKVbHZnR65qIY8MjjnKVVptRrv73LNwn7xT1HJuVVw7vnnxZ1Rty3m/yBngHGlKhDW+ag5ffOuHrx4uFcO/Jr76QJ7Hf+WdmalVGThWLXtNaR8aYiuOgLUqBhV6Zyq0kd3xEAtwRPJo0dzbRrByzy+4sXMBKbr0s02Muzwj4UVBnme4Rn8eEbx3qtEbznny62euRAFbh2IBncHQrFJ3b3AmXQnMkuNzS3g0a0JAkyfizaLvndyPRNOMwxhESvMxY1xPsnN/sgUPp0YruvOzQxIteW2y8mFUG3EcWRuhVLEsdaJOHVpITzB5SkBVpXmUwKw3WGh8Z4jrMS9qz95dteTmdhU4O5tajTSRlLpR7Es9r9UU4mwv38rEZTI4bsE0OVZkiFE+j7fFNVjM2KxYVnchIHnCwGT8Yhll92Y1KSqE9zxtkKkFvWl6Avd4ROTZCEYTkpHqazxURZBR7Nr7n2e7b0Z+4LhUDH9EKCnAL31WJoeTiaRy1RuZSaeJGhwizyxpzOjSGIjqe+5ndy7mINxfB0mdHmgM19HFmanFJ1kn4rDktGofg1sZj2ClkYDhsEyi/y4m4VJ3jQ6X7jyca0Valc8Jd6PJyYRXXLmSwaGqi6Xwje73IqUFl1VcjRhPGKcw3ZyTbuStkHxvRp+MNhtPxiACfW7FIXg+RPM9lNO1WYnJJlUH5jrx1pF3LlfNYD87o9ieu+70XkIy13sGJctHS/LpnSqkm4mSglMnqqq8N3aNqxmuunPV/I6BOllNeQRAQOrfezi9dBY63QNPl+/FC/ngPHnwAjmHnScUyTH8buR5ByKe84kQ5/oe+rO730nDR1UWIGynmdHK2m9Yagya9/stzo5gn/8hhVeXxPBHxC9/YeaXP7cwWbDvOtV3LqLMzey4DyDoCU9O8kScakbu5bE4N4Fxht3vZASJewoE9JpMZMrUw90wnGerWotT6HTbN62fS4Rx7F37KR0Tmu46vdftzH2A954lzwc82DuvL419nfxrqld20wl9ghof6vkPQ8nmPAZlkyhpbPJBHKakMSopnrdbuWu6Ygb7rnGjNfjmtlULZdyedMIeTkN29w1OW2CusePSBPalJXP3SpgyiW0exaGAuYeo0a4pzK4riThyrN5PyRv75PFe73lpQvB3pkR51ZP1vG0KLeg5A6PT+eY341CgMQQRUXJyGKmDo5kcn7wmSL0kVe2FZDFV4vNSWZ6Rpfmc0NKkgb9jZSpBtHKW2hU2dLbTizOKy5kRWbR5BDy3PIPaet6v/hC+Dt83MZjZf2tm3zCzf/DC1z5lZn/XzP5Z/f6ovm5m9l+b2W+Y2f9hZj/3A7+ij0B87WFjclimZN86IGXbKYx16AKam/rwq8l41JwxjHdPQTbkatRq8hC6MBu6OBdLbkM7CvYdXu9w08uhyVQxnPcnHgaiBxN0046FMZLDajwL7VuY64beN2NqSZ8kz/7WUaXn4ZC8d4i7Jay9CWcY1Ci1AC9His1919r7dei99g63MXhykunLvhLXzp19E+V5JOxbk9LSdLG/vpOBytt7fU7fGcLSH8/O8zXI7NyucHtKXuuNeTZ2E3dmM7tJ48nJtdS2uaYjWZ/jKZyrJh1IN+c1lwntgymY6328sQgjmLG78WMvCfqaSVSFlETZwldVlzCG2Ja9JkfrZnWC38d56jDKminCOGxFfa+dfpMVwS31vrSNCsBrMW/1enn/q9l9delVTkwuXQh2njpJKCeiVa3dKyblCXFotPhYSeSrb/9gyeH7UqLN7N8BngJ/MzP/RH3tvwS+lZn/hZn9KvAoM/9zM/urwH8G/FXg68B/lZlf/74v4iNAif6JB50E/vrnJ1aM63bO8LV/MLXV+WkM1pAM1+WUIgehA4ymH/LSJbAhrMAs3YiTFRYxBDpNDa7b/WTiyTq4KpnyIaRbcNfFTOhxK4GnsZ4CZt3o6zgj3EnZQpdsV6QYN5W9V/KMoTfKAQqW1gk2QAkN1M8+mLXu3j05pkhWN4tAw9lE+3UvK5gU4WkFdr1x0/WeD1biHzSzf3obfOs2iIDXmrOfnQf7xneeb0z74nSkaN0ryRjj7oQ+bvBsHSz19+sJDuFETV9aQEbjVPqSZxt3asp/+m3ZxG1FNTZLXp8dXnCvMoNnK7WcR+v51qGEvp+N4xANet8kIFvD7tihUeY25L28+syKjkr0mlpnJR+V/XK90yNbrf4y1F54gc9LlxbkngfhtHb+7gB+l2zG3WREZK0o6vxUYPNv/v7Tl0eJzsz/GfjW/+/Lvwz8ev3514G//sLX/2Yq/hfgdTP7zPt5IR9mfPVB45fe6fwHn5vLAwHOZl+WVu7Nulm7cS9dLoViDG07Wia1GUsTt+G8bWjfiilfs/DeNdE4DOMYAo2kqmzU9Ipe7MlTgkUh3+X2lJZkszs7cmkpZBg7NwGD3XWy7nuyNL2H00hOm9yXl9Y4lHqy+7n3PZfc4g10c9Yh3wY3Y41BtxC2MNTe7ErcJchUN+N3RnJy470t7ghJsxvXO9fymZ3znS1omYwV3tx3Ri206U1+igPw3lgzOK4q42dTojWTd+TejcGghSTRp5SW4lzR3TQ5Qz3fNCnpL5T3hxGcVr2PZ6fkOwfhQoRag3VVy9/NuD2pGmg0nq9qK5tzr6AsKbn7OdmqQolU6zD7mRdRGECqivIEd+eqt7vSn7xXZCZysz5uybFoDMfS2kQmx1W/Ty4/j1bZafL7xE8Kq1nvKpX3Fz/sVOLtzPxXAJn5r8zsrfr6Z4HffuFxv1Nf+1c/5PN8IPGL70xsqMyf6+I5M8pIAXdio4GV6edmyYQMUbRf0WVsOlN2bLIR68UpuO66EG635Lo1noY2FWWoDx8pDcPzAdfNuOlSIS7AvhvPN3kLNlevflplBpuD0luopdCOxpqYpHG0UeM2nYBpRluTQ0tuutFbsIbAvOOQqOhBK5FUBrtJq+MNVTfHSFpLthW+cwsP92phjqnJi3CYxtiSxRrP1uRq1pKc0zH43OvyLHq2OLlpN+YWcN0bmeIEuG80h7E1errW0Kcwh8nErxiWjBhcGxwcrgKeFL5x0xMLjSaX5pxyo5uVJLzacpO341btxMjArDEoMNnzDtMhs6z4lYQn14165m2Yq51pUqpxSmizphfN4bg5YcmNO7ebrP/dJMUPU2K6np1MeTRsW+LNOa1FeHJZ2B+HNoUdVv18RgZDCzLuDWWNmmgAplZlchfH5geIlz2utO/xte+ZqszsV4BfecnP/wPFefKw9MTT75RtzYWY9xT1OMYL/Z6XY7LrNO/VE5/Kmm02+QdklYNnBNoyGUOAUzOZijwfIhdNBFfeiECehGaMGELraYxMXeCjfAxSc/Xnq+OZjFoB1ynvSBNdWRezFx8BjganNbnyYjsOo0/O1Idwhuptu4vHd7743FU9RFVLG41Hu8F3bsuE1cW+PFjeqRL1mgXAmgswfbA0xjo4hHG9g1wht8FuahzNwBqnGBxWuJ4dI9hcGEBudgd2GoaHqrDR9X28wf5clTlcuZLO7z7XGPbOyj3/P/LeJdaWLM3v+n1rxYqIvfc595WZlfXqrqYftrqbh0fgATKNwG4wSB4hwQQLWTABMYcJDBkgMWHkgYWYgJjBwBISI0+YmAmTRnabbre7q7OyKm/ee885e++IWGt9DP5f7Fvt7qbytnhklUNK5b3nnsc+O2Kt9X3/7/+QMGqXxUuuvW8CndrgWUlY6hyS87AZp1HtmmfjeQjILjGFoqiyEPvBmEqK0sPoqJSfwvRl63A/KtVjc4XNZDfypOeuerRqg8xqctYiL+bRvqC2jgAo99XmorJ3j2rP9MCuwLy72P5JK/P/5vqzbgw/MLNvRbXwLeDz+PjvAz/3Y5/3XeD7f9I3cPe/CfxN+P8HY9g3hX/9OwUwNpRI3C146F1VwVaFuq8udaO5WIDd3k8ThiFRFpWrS9XpnZJIL2sg4ubKT9jHf4cka/in3lgcRiJzAJPhSdLrEwlOteWQI2UZeFaMB3fOG/TNOZtxGHrgCxLptECsr80pWQj/UOxmjtpaE0Ub525MeEOlsjUZlDqcN2MuCo1ZXLFz1rSRPD/o9T5uQfl2u1mmXTvcD2IJphbU4az8iGdj4rIBuZN7Yt2cM43DnDiv+n2vWyOlTMHZzLAB4SeuhewdtqweZhpU6aSkTchzuDCv8rnctSIWMXgfFTjOicWFJ1SThuNYjFoVBTiPUQEmuLhYosIi5IXxzMQ52bq+foxNtdDpWWrWrYmklIMwnZLwhxsNPpiRo6m1kX2fNphVO3W0B/rd5mTMrpHuJYDwFtGATfJZ2l5CImPdpjL3Tzme//Trzzqu/J+Avx5//uvA//hjH/93YzrxF4G3e8vxdbq+d0z8y5+M/Oa3RoakXIQSYp6tCfQBu/0/Qp91qmY94ELPlVQk1qPQ6YdzY9u6FljXiFMzfr+FseDKbmim8VZGpq3JHdsNSzthtabR3YbK5GRhS44zDCHBNoWtbPE6p0F27ZpE6IQz3+3cuFF7ywAPT8ZxGFg2ib2mwWg94UkCImEHje6NHL1/Ra9tz4Gw1JlGzfvN4Wnt1E18h60KuDvXxNaMPISTczLmkrk25+3aZRdP51Tk82BJzFCdvfnGCzCE54xF98dIrA05XHdnzsbV9dqra8F7VHbHrE3h1UGt2ujGKSVOCT6eY4w5dk4jHGKCMxbnxaD70AKlvC0ag5I9TFmC64JaDdCYEYAgT83BP4B9s9cO3eHGP4DEgtin4HgQpxS043FwCU8quYdOQryQ42jMg934EBBGNZue6w+5fmLFYGb/HfAbwMdm9vvAfwb8F8D/YGZ/A/g94N+KT//baCLx28AZ+Pc+7OX8v3v94inzG5+MmIcf3+YRBitQS4QZwGSSikHqiZw6c4KlJ7YqgMeATGbzJtn1wUjdOQ9yPH45SqhTdn5AUeVQvYcVm26yUqsTyZsoy6QbSFaRq9GPpzJjSr5eXSDTcTKWCr12njbjxcFZe7uZinYPURbOIR7uca7izAAAIABJREFUEqEtW03k4nz22Fi6pihzMn7upUrauznzsOhEWjscilNyZsyJa+ua3xfxErrrVD8k52mLsVl1piGRBhi7ZMJbg+OUWXpjWRMTnVengT/cnDkXjkA69JBmiyh0XhUQc60tgnszOQWLkCEo306vhlnmzuDLrfH9p4EXM3z/sZEQXfzFITONun/T5KzeyN4ZU6IGJ8F6YrXG7FnhuEPn3UWjP4+pg+sx4RhZGx0LlycRq065a3LjRvZEDxC0Q6R4izsBMYWIqmJxcWLc4KkBpPfAohlrszB+ERqZknCP5yUBPcyH83vzmp2o9f90K+Hu/86f8k//yp/wuQ78hx/2Ev6/uX75PvOb35oYDK5hNqAQVS3QyRLeVK6Lt/C+v95cDMab/biLiDPu/n+o37XBuE+iBA8JDr2zRcbi9Qpe4G60m6X7pWuhegBEHSU2tX3H75pPdxMuAM4CEL2rdBkCP/uQuCydc1OA7ObxUJhalq0rOGZzZ0Klfsl6+DLqw89N1utfPDnTnLDeOU1GrXq/DgM3peDWtMFoYwW6hE+1wv2kMnZpYWQbC0CbSQoCVOa8yR1ZSs7EtbcwyU2Mwy7rNg5D5mFtnIoi7FtqjEkTi4elhYQbyqisiAQcUpI+A92LS1Ouw6mIcrx2J3lmpNIsc3YthtQ1cTBgNccrGAJAzVGvgkRd5lK55sFpVaNlidkStSYRvugs3pgJmrOFhsb8Nl4UqS2mIGgzd7qcvVzYwe7nIZKVQ0rkvS0x3YPa9lBdv03SksW44yfQEv7x658I5uMv32f+yrcmpgxkOM5ChEW7DZAwdl4A7zvlVSDP5l1ipC4loxtcXSd4ijJvT0DCVM6ZwYvRuJ+DgDRqOvGwaJ6Nq9SczQVMunjx8y6PdnkO6IFxHluPklSvZzSdvo+BSh8GeTF6sxtQepMJu8r/DY22Hrq+dhNidmsxpkmkpKcK56uk0tsmMlHOYV5CZ9mEopvBlsRAvJoYoIurtbEsFP3LNVocM1LOXHvnUp2nKhLV6sLqrrXzsGjzOsWURluu/CwPWVjClISjgJyc5qSRsv0YNXowAze+eWf8wVPlXLVZfPfemIoWyGDOoSg5YvMgoxEkRKD5wHlVkvfSbIc3lIydhN/INVqVSsM5V+NhM5YqT8veTBVmF0ciuiH1/oHz9D9ylPfAHsQgLRYmLGGJT5ewrAzpJjLLSb93VZ9DSpqoJYRvJJMgK33gSv+ZF1H98n3mL397CuKJbv8xVIHDqn5UVFZn8aDbJk0Ddgff6i7u+t6joxLx3DvFpCockoXISTfBmyTNp5Ju1N1tML48y/vwbtTJJYmuTvLRDM8wu7j7QtKN0ZzIwWbriUYHD0ZfbG6WNdZ8fW5g+v7uqk52s49rh5a5SX7bLkhCCzE3OI4i1VxW5+1FiVjn1uQcBeT4WakYE5l+7TTvyqQYhA90YEiZQ+n0ZLy9QsmdITnTAOetMeak3M3JuK4Cz1p3UhqgR1UTNXCLamTnAYwZzpUYx+n07oGlECKwz67w+txvZbkF6HnIoh+tpGizAJM/5o7DHJJxXrShWZd2Y0oWGRrSksw4awJMztpbVAMdk9mtC3fY7eLBwm/DAl9QZZAdcGezvYqVNDt5inyJ98nkwqh2ADMFLtFvNOuta6NsLmFf8kTB6Gl/PV/9+pneGH7hLvGXvzXdeuspUo8LzpATNnbKBm/XBEULukRNtwN5yfxmxiqps2sc6B4jSVFTz4F+pyZyDYMztczmGlHhRhqcEfjRxXlYjGkUp1+ltPF2c+7C1DUhC/jeYTP9eeuaiKwdSspkGudV5BaV9ir3qztO4qmpjx2S8VQbc84i4yTE2AxA7uoSZm2142QBWkVo+yrQhYelcTdnvljkzThsnXlIPG7Os9FYEO+iofDX3oypGF9cYB6MxxWgcz8PGFKZPlS5ND00VR3mzlo3iuXQjWRGc7YAUccYHU9Jm8bSROBqTaPY7s7WOtcOf/+HO+NUxKLjsGdFZHJyjsjEpQRoX9Gp3zDWq97PQ4kc0GRMqWNJ1HeQtKEALXWmQZkgjxuUQVjRQ432bIvNoneySylb4/nMQTAzU/W0TyA0eelyBA/4tweY3LqRYxqzmdLBu2cG77epR96/zowu9JbkHwYy/Ey2Er98n/nFu8Rf+U6hZD1YJe95gZq7N+ukQUzBuUuXkKKmSN1uTDnHImosTpek/tS7Wom1i7MwxYgsJXjcuk4/xLXfSzq1FFq8Qu/1UG8QDDmxISUt7jz2xuuuuX8zbgy3yRKNxkpAUAmm8E/YmsVkQd/z2kVgOlpmSvo7LhZnc/DcOQ56cKaclR/h4Ml4Ocuf0V3Rcq/Pmr68uThvz/D64njvPDbJrIMhznWTkvNh6ZzCQORQBJyNwCE7h5J5dUo8m1P4X0LqGaoqI1neSchkERwDxlQAN+6GgdOoTfU0FcYE1mVMs9WBb54GrlU0aDP45qz3/TRo8aUEnU5KUqFCLJ5NLdYhWo7DaExDogQZKWVnC4+ElDXJ0iXKeSKRzZiyqMo5yTfzWIwU7et+5eRiupvSt0SvhjIk5kHw4WHQBjMNEkztjk9dQheWZvRe6Ui4VdwpLlObralXbP2Pirq+yvUzVzH8U3eJf/XbI/MuYjLNm6sbx1igSwBvGJRDZ6hyJFrWxDVp5y0pa3GbFsoUi2wA7nLmqTUG3wFAi/xGbQzmerRzVgmbUFvcXUDWq5NxXhsPV+OyQCrO3SxsIyfwJklzTsYpdeacKUmc+821ORjizQ+zyEMV53FR22Bm1KRFuLhz6RIC9SYwq9I5xGJoVRXDLsDBO++2xP3UeBPVyDjYrQBeulFTl6Hq2jnmTN46aYC5G6WoUtk2TRbyIDLPuXZKcT57sojXa5zGzJsVXs2Za0mc28ZSA/vI8kUw12a9JlVjh2PmYM7DuckBKjcajU/mgR9cKj86qxz/7KlyjYnMN0+JX/pICzGbGJprN56VEIF1SNXeO1aVoGQjLGEwuWLtYbyD7aE3AnnX3gP7sRvRabDoEyyH94Vav4Y2YlniR1xefJWmG+8vUVmMnpS7QVJbYWRa75GTKYzr3JxCoqdQg4ZGR5h1umEaX/X6maoYvneX+M3vTmKxmQhJ2RV8cox0pGR2U9iNNAY3XkyJ7InJwTzF6CjAHQvff0TSUb5kJwdJQAeZwMnH2lmq0IClC2xU6KxoxPJzFHswZ5gHjT63Ki57iX43DzBn51jg+ZyZwraN2Ng2E8c+DZJIi3MBx8lZqzaKtcoD8jBKnTgEwPpslD+ihDnCTnDjUnUKFdO/PVZtFEvT9OTLpfHZufHY9EBWV4l96U1sPhe2YCEOKwUsGUuH51Pifkp0S1xw3m06IS2bPCFa+6Oai5Kpm1N7w0wLYSSQ9ypzFEeYwKlI1ekO59V4tzj/4Et5PA4mPsins0DBAfXf7no2nM6UOuvqmkiZMw0NwnujmsXBEDmhePxZrMW1a5NNlqjmjKZnTH4dzpwSvUfPDzctRVgnKFwn8CPY3aUFua4uTEuXNigZwO4p4mo31XamW0aoI1btIRsHs3g2nCl/2M7wM1ExfO+kI/Tf+O54M2MtSUzDkixs1lMg5mFWglyTcwLPelCeqjEhBP04BGDY5LTcLcl/r+87sm6sWdZ+752Mh5otyhHbvf1EklodRhfi/GzWfLpfxGs4X+F4D6PLnut+slsq8w5oN1fs/Na7ciOazEuXTVLcwwBT0Szbk3PtiYcqq/Yx7Wi3x+vSe5dJLC5QzJLwEWtOduPcGseiyuOy7ZWKpMPKUlBgzKWKQfjlU+dV9LeGkQdtxJcIeRXCrvf1aTXW1tUmudGTREF3R8H/42hcFzgeIVmj9sRhcqITonqIs1A4jLsSsE6j8btvxCatLsDu1UnYTE2ihBvCKp42ida8wWFsXLt0DBYgojX9WynBcAxlprdomxBmkExGPbhxQKnfqlL1fpknKp1ZZd4tQFfLOB6mnsXBD+cWkab2g8nCLpYAwAM8RqD1PrZMFpOcHqY0SH+zM2o/5Pqprxi+FyGy/9q3ZyqB8mLUlqhNqEHKmiWU7LcdWe7rWnTVnDyhyDETU29x/b8Mss4qaPFXND0oaMFhTk7O/WAcc4owV+hNp/G5Ok+bLNiOo9OziE7ZZXr6zbsIT816WAFOg84Oc200UxaHIpNY6dwNOmlLeLel3BmyANB1My6L+tWnTWDp4KHjyCphlyBXXWqUztnIWV6FNUabOWnhd9epNw5EHy/WokXrUbLx2DqfXzuPzfnDh8bbFc4aqfC4dh435W2aOTmLNNSzqM5lEOj4w8dV1nADHCP67TSFySqJ1Z3rqmrmWrWskkPP2vTeXRtvV+f1ubLUFroVOMUUxpJEbOOwu2VDsc71EqpV12i5uqzlrw2GJMXn2oxE55BEQDNShAELi3IXW9aSQG7DubQkrolpY0uW9BpiimAE+9H0RLpJ2SLDFW2WyYn2UQt1Jy1l11d3l00dwLk23SuXMTFoPL1Tnf6Jwhh+7pT5a98bcVSuWZSY46CSejRj8Q5VUuUSrI8xRkySRIidaJZYUmdqkXFQO33Q4hlSxJGHdZbSh3awr3Mc1ecloGBBPzXeLdrn70riOGrXPmSRbZIb7p1SjG/eG3/wrnPeMt84BChlGq9mutoOzzxsKimbiSC0g4hDMhm7qmFlxUnVeHkQsekabc7L6EVbYCzHYpyr2ppTlm3a49bIZryrUohOQccu0U+XRCDfgPlt4c5FDMmHRUnYz+eBN+fONCWsR/J2b1GJJZ4djGVzllV8h4+PE5dW6TVRs3wdluZQjVKixXFj3TrvNlULS3OeY6y9M7hYhcIYVCl2nHkQH6Q1bfBDqCafVtRC4Lw6qBc5BxeiA3c4FRnu7CFBNfr7IUBWQ1OsSoTduqq6GpXd2i1GookhqVVzG4DO7u+Y0IQDz/RGYA56DQtKPyXcr0pMGuB9olVB6Vc5JaKP0cctkcKTdDPeG8J8xeunMrvyW8eEufFXf77QkizUT7F7t+jtVIgZTpweg9Gr3vLaNSYrHolI1ikkzBqXFZarglMOo1KPIiogRpgWdlzKV3SkzpS7Uw8vB6R7yEkYh8lncE6SKAMC/Fyj0IQYjj981/nBufON+3RDoJ8NAgfdnbspc61duoAUGRK8L/s2nDer8aOHyt2k9yANQvRfX3UiqWp6n0p1GDQ12NmUS9OEZScRdXfmFNJfuBGiAOYi/KQHM/Ba98mPUbLIV3djYhpE+76b9HMG7zSMS5VGeVvh1VyorfPxq92zILO0znLV5/bWNB0wJVwV0+Skd5iAt2vn7/xuE0MxRFUF+AufZp4dE09LpXhiBT5/0I2bB7Ck+752VUmXqCYGSzxVv/ljbNVvPAa1CfnmzmXWgtEpfw1cBDjDqV1y7GKBX4WXR8duFm6Xlui2m94ksivwtlq/Wc7tNGrDWbrUI4+tBWZlu9qO2XaRliqNve0A+N/+4KsbtfzUVQzfOmoZ/KVvDwo4JTEg5qCjMrcG0240ATNj1pjNrHOusSN3WXBvNEY3yald47BVNEG2rYkN2MXQEwDFjTB0V0Qa6kh1mVM0tV2agiE7501UXDNJiGt/bxhSkvT/1Z1tcZbWeV6ML8+N58fER9NAsgh7dWPZOqcxUZNTu3GaJHvWrbcIkFE61JvVeTYZaxWy35GwKA+aVCQRKXncPBifGnFlE3dhyonHqlNmQVyM5qo8jkkA2FJVRUwyZmQcfB+7Mw/Czy+1c2mqFrCiCisbNMg2sOFsrVGrXgsP8J2XBe8yXalZMX7nJ2OpDRsSh6z7S9fieqrO3/tCY9nd9XnEeDUbz+ZMrU1qR+s8PajFaK5R4JODkSm5kS1zicVmyNdiDa+KqUhPcekSvl1a5+riKV6CZLV1J+NU0wKtDimyQTKJbX92MIZgI+4ThN41tZqS063TMY6Jm3PTvokQwr4UCeg7Zbo5zK7qYRosSHAphG8ag37I9VO1MXzraPzGp+X29xGRQnpsmG4iquSkU7GiG7W2jpnexLlkat9TkTRyrCZgKZtK1FPYjlvPt5Ivm8hAT10AWKNz7Uk0azPIYfWOZtZbF450X9J7pmENICnrAUgoOXptEht961nm99905pR4uMKzsVFyigcmwMMwaCxYZBvKM6I1OK9OreBJ7kRvvHM3qT8XxuCsTafhtarNscSNzrlFw9x9xzSMc1OrhWujyCbH6ilGsTlONHBqtCnHyVi6827T1zYXeer771auVbqPuzHTm/NmqbxKmQe2mPOryiO4HmU26taZp8R5gccqg9tXk7Io1u58cRHHwgysh7ZkgG/fGU9rZx6MtspUx+mUEXpVhTWlRmsiIy9NSWACfeX+1KtG0VNWZNyEMZJYcA6p8dCFFdQuEV1KktZ3VCnKCk8y7OJ+w2Z0OtmN60KSArYYEPjVEKPKratSENEyQfVo65xzD5p2TGZKshhlyl7wHLyW6wfOK39qwMdvHRJ/6dNCN1mVHUN4knNiRNLlERmGiPTqZG9yxeny67NdhEIjW+UarcFuhlos07tIJ0WZ43y5SSUnppmWwEao5HSP2AvMOSVOA2xJobFj2vvyHBLuqNAdRmRHXgzuxkwZDEbj1b3+6xt8Ie81of+Ep1+0HoqaU4DLdXPers6LSVkMgyWejSJtNfxmwzagXtW7Y0lp05eqwNXqqpRq1yZ7qYp2G0P9+W7rWiguPcTS9bWX6jzW3ZNQpztoIYyhOlyrQLzanN401fji3PiDxxUDzvvm3He9j1q1bCKduWsyMI6JMcRuS3Msdy6r8aNz51Q0KTDTmO6Xnie+82zg1excF7UN3pzTqEPhbky0nth6SJq9hzu1CGsDmj4NJrDZxEJnAJ5c74UHn2GwILMNe8EUmRnIz6Gl4FanmIi4eCeONrJiicHttvkTh9vqGrvqyrf2Y6NTduqzdc4t7OOjI++Y0sPjb+cYRX/I9VNTMfyL3ygq7ywsLkx2ayW0+zVmzbVLD++uh2x1OeK0rg1iB3aGuHlrV4uwNoCOJaOQmHPj9aYb/UjQfje5EomrbuH+EzP9AOeSJ6w7C6omcu+s3hiz0YNOu/iP6fITLJteeylwPyfePnVOB7iuxtvifPM+FuoGg2tDWGu/uUMlE90X4NOj8RB/frdVOUmPAYQGNiXBrk73S5XCdGnacPHIJPDOfQTOpKSH856g4nR4tznHUSeU0VlCxPO8qHz97KLNKwdCXrLk4UPwSXBnzokapKASKqbq8leYk6TdJWXa2DkvwjMswXqFmjprNT4/bzxcnYeNuL/Oi9l4cdTJPOWEV1eVk9RKmRtrbTqJ41QXHiXAumVhOplQTHq/+WF0l2tWd1V6gwUTlggDxphige5wuKrXsJlP2nwyJip0VAgklf7J3rcPmXAYT/GMuSrOyRJbPLeYfB5aaCwwbphR+bHvk98bPnyl62u/MXx6UFEzBJgrF55ddRhVfO9gGu+tcborT1IPnJKkEznvCjqhwrEOWMN1qTZFxKVgIpXNubrK8yXLh4+u9uXmGOQiD13DJTlbkhkoKvvDw1OyZHNaz/Skcd48OPQUi6aTm1Cj08F4exFg9bg00rPCsUBrnXdhoV6y0Wpnc6U8zwPMOVNN49c/fOwcigg/L7Oo2wmVxHtmshnMGd4ueqI8HugaD9i7VSdhcfERzk0g6qVqkxHlN93kxM8n5WRKxq0WL6HfaQvTmQWjN1cAjwM4xbWIK04qWsQ5R5VliaH3oBYnvDv1OlDbxmNNXK9BdsIjpyLx3WcW0wj5Q56K8JRxlj0dFdpgLC7jOwusIEWVYCbtyp4FMiQdLAY0b2olXLiVA4OOCnqPCqHrgKhKBb4BljjhGhUAZt9t/F1tRVbLukSEnygwuhl7VskeRVCSwEglXQlLk4mv/CH2q/SBzf2DmY9f243hG3PiL35jBBQOInryoAXRxQo7DOAu0UzaAca0y061aKR36LRglzXTnNpwcizgY9LY79zAWxNpxhPzpGCU3l0z4uqUEmKmEDvpvhinkpkMrmjzx8JiPbgOZsaKcSqNRGZMdnNvBnnzLVWcgsOUGL5h/ODLzrUZ560xJY3JDkBF8WZb0u8xJI3MrjhPm06u7z43fvtHCtr93deNeZYsOvymeDYpyckNXswSTh2LKNMPS2drGquuyEm5u8NWWRvx2glQVpFzT313G5IL1OIeNG4RhtZqLNX1Hjn0VTTsbHLlfrs419TwR9nULxuMk9GSY4O8IbbmWGs8OxmfvRv4g3eVhL5vN/lA/tLHmecHi+i7zuPaeH1NHAbF1VdEPe9IgGSW1TagHt9iFFiSiQfgsLQWoTfh3YhIS3OWf4YFw9FMHgxP3THTRrga5K7FerY9x+L9oeYdPL6uRYzgPg7d3ZqIqsPJUbFqU54ssdmu13ifUbEFg1WYV2fKhCP4V7++lhjDx3PiX/hGCRKP3qScEqPJctwQ8Fi7zE4Hk2ClI2qrDj55GNYmjoK5c3VZb9emvrs2veXVlERdjBuYWQrYINJPJvG4Rl9rYksWU78+xry8BICUg4lSYiC9RFk8JblQr12yXMNDBQlzkmkqWSSip8055cT9PMiBucK5NRZXBbJU57z7Ne6nQ5Lpq4XQqnXjF15l+T8EzmBRilfCGMSceSAo0nAJSekYk4CXU5LPZdCcwW5mL9VFd65NWEM3eT/u07FaBViK5Uc4DAnDqMGcXLrL+n0TEj+YeBY9TtKtxkh2U7huRv6aqYhteV1laWcRXf9ihlfTHphrXBpc10EncdaGoAhAv7E4W5cOpPhOVdYosHUYut28OtVuqA1ILkdn4QsCJQcTxb21ziGHCa9FSpcl3MWJ2KFzQ5uCjH60alWfqSVScpfHBGuvMRSse64aMS+uaislgZEx7xTY68JuclQw8weu9K9dxfBqSvyFjwvRPgHaxSMPitUJ2qoANPf3Cc/unTnLBj0bWI7xUJNjbsKw1MiDTsbVQ66MXJByjBorKms1EzdODm+qmJEEU7A3aR96yGDL4HIkihI5p46587zI3qg7pGDpDXHKd5erT41R17J1RstYEvB3PxtvrvC8ZB7qfhon1t6ZAhQ8V2dMiTUkz88H4zEUm+bORyfj73/pjF3pTFpAymGgGguhyotR6tI6ZZCD0rV1EWfQCSqNhFiWCTgOYVtuhPegFs61EUBbYh5kirqP1WrzG85zGiBXeDEPvG1NisfNeZehm5OrLOMtjtfmzl3SxvrFVcSvpyqR2MGcX3hZOI27h6Lxh2/DW2M3ckVCsjme+n3BY7qXIioZV1cepblSvvf0cEPxAm66n4ek6mcMELJFu2jAEou9eZe1m8nSPgGnWzUZGwHBeUDkuFkPc7S7IXzb8QOCqu8eIq6usJ2bCE7vUzHdrzW+7gPd479eG8PzMfHPvCo3RHowiUlKTszJxRlwx7yJqeeiMA8xu3YyT72RLKufNnkKJIfSYHFZiQ25U2KcY9bDUUdCoEpwFcyZCzxdE2SYWuO8xe4cI6BjUl++ubQEZs7omgTsgaMVOUHVLCFXIijH6EGdwtl5HjS96F3IvcWNfT4nfvdd55M7LcTdJnxxZ44y/KGqvx5izi6c0bhUY0Vz7V309Lyod16bxn4WY69MOA+5wK4lYrJzEuBVkuzcx3jESjY+mnRyvzhmLq3zuMb3SgLpQK9jzM6XZ4m6HqpaOHVYiXmQlmLpQLAT66VxKvKrWDepHZfNyd3ZciYXY6uNtQX5rGqi8MlJBKIhGW+v2gwNOEe7112ipRZ4hiXN/legWcK8s95EYlp8ZnoWe0wUrs1Cd6YS4s6cS1Ol2On0pCpxEOEF0PiUeK4Emut9vblH+p7C5SFzl6Zm01fr50MI30ymxQ54Z4uif3efFpsyWlR/X6F8YN7M12djeF4Sv3JfggyiWTkhbrp2bonQmLIV6z7XdfHwU8SKD6bU5+bGJXq7fcw3uvqu85ZouTEPESgSZJmOosPddyNV426G149SU4a8nZydZZPuxXHuSqaFY7SIU9zUmYkQs5gMTqqpbVjDgYgue/a1NY6RJ3Bexa7cujGO0JfOZ4/w88+d0zyE5DurWsjaGFtXmOnbReEnzXS61U0ciCEpe+BY9tJ3nyYQ/8nZaqmqIGxvUdwoJU7reZD/I3CYjDFnhtK5mwzWxP1oYeyiB3JXcF6r2ptLfR8vb8CMWJk9GZfrSq76XbrDl9dGGQceFueumXwGshyi3iyhDE1ypP54Cr+MQRZodW3UlvABlkWBMOIT+C0LRCNJYQACEUWVXmMzOcTXhM8JHhMli2lOThk5QXXGIWuDHYzLJsv2HtbzS4wYJJ1RezkEeK2prBiTZp3Znc0Vius4xTS1WYOgVqN6GPbpkKEH0tJtmpRuuIQmOjmq0Q80if56bAzZ4FfuVSmYp5uyzIFsmX1EO0d/n5JFIjHxOVr8srUSoUgMNViD3+5RDuNhke4DT1sLOXKM0DpcunTz1bXoxkD8FVIqwkk3/awNmcU+1spHU2Hx2By80ZoMQE6jFn8O070tCE3jYKxNCstz1Vx6GOQwNBZZuHUaZYC3Z/jkmfH5Fb4zGh8dEz+6dJ66OAK96/QbunretWvDfL04rxeRqEDV6ePWOUQLZqAJA7Ca/AbGAV5MiaeqqmAu+v/D6nzjLvNukTbDAm0fS8Yw7scAvbI0DMMgxmGYF3PpjZJUlWBQSBonN2dZ1TdPWQ/3McarLzZhMA9r49mQYtEYv/NFY+tEnoMmPL/66SiaeHM2Euu1s1XIRVqP+yzwN/VIFq9yXrL8njbf3fEu3vNT2KRlVGFsLoKSRwXVukbQjaDUmwgghjQTIpPFdGoHHNHkQ+QneWv0qBLMjYrGlZusX3HrDCRN3NAm02NEXZA1X0ky0VEKtpqSff10FxZVUvojBjFf5fpabAxzfo8oLE037jAIhHoXI6C/V+X0AAAgAElEQVSrAanJcSf62bVpVoyLPdZQiboi67ZMpzWVbDkp5q1E71/C+KLGODI2c1URMcO+VmdLnRfHzBqjy4crbCMwGM9HAX7J4NIqOWe2JnfZNAhEergaxzBhmYbdGco4mFOGTnU9FGZBl04w5cxQnKVlrMOvfdP4rc83PrpL/MMvN54fNCe9H+BH12BTdmVFanHtXAEUbopO19MgApAHIv7lAm/WAKcG593W+Je+OzMX41tT5lCMqWQuW+PX7wrntfHnvzlAN56uGsXdzYnHS6M1524yzledhsvWqSWyNQyMgYe1MVtlSgkWtWuXCu+8BVYEW5XL8seHJP9KN+4HeNucTOMf/LDyuCgVKnljTImXR+MbR0nmuztvH5xtc3KB55Ns1mrblZ16Jo5D4qnpWRjNwtqtxykP0FkbYe3vIZZ6r4rsloRD9b3/T1ybpjTd5W5dLCucyBUTuPUgNvUbWVYj0K6WIhtsLsu+LaYs1wjJAXEmLBlPLXwh0ISsJGeyzsKecQpSX7bwg1RmyYdcX4uNAdRziY5rNzuuPV1LrGNn6YlsShc6aiOldSU5V2TJ3kJgpEJWdOBs0JrdwlcS4uH3mBgs1mMurFJyNJ0Qg3nQlZ3jpJYgPyk+PQ/SKRwmeQi6qZTPKXwUulGKkqm2TSfpU1XkfcV46B5locauKrk7Y86U0BxMpln3VIxPD5nFnfvDe4XnU33PoTCXE/Gldu5HbT5zMcYaaVlJDtctTsx3W+fLRQ/8r7/KfPM+0xw+ussMOfHR3cAwJOrm3M8Dd8fMfBjkvZgS47i7QsGrozbBVo3nB2i1ch0Kddu4NuPJNG93d6gDhwpM8HppGnNGFViDcOQuDsWdKVx2tMxs8Nlj522IwWrtvChSdX58TMxFprWvFziYM0xAUtjsFqnZdCVoDVmy6j1Op/fw6fA986szWQKTRH7rmnIo3doVm+e6N9eeGKxSTU+q6zGmupFyvdGchS+EI3Xy0POoQhpiGpEIDAQYcc6up1X4mYWTVkitrQOJOb3/e3EndU2CWnyeRFQfCDDwNdoYButUT1E4BJOxy0m5G6yeCA8P3OGp2e2Uz0GFrahEW2KctIsE1xgn5bQDaokeDs/VxY9fQwBTQp3WuwCxOWtUSWmSP4/G0yo795djorcuT0mMLSYWa/ebU5BwjIiqz4k1Zugb3AJHzsE+bKa8imXT+PRxVb972TR66htsExD25QK4jNESP1wb5+qcxsw8aFQ7Jp1uC/B26ZyK2oUa5Jp/9qPMizExj9IR3M3Gi7vCXJTBOJdEnaVCTTlxn1WJXJtzCJes5k6tkbo96DTsKXHEuVIwawzJOC+Nu5Lg0UnZeKpV2Y2lU7uIVluzUGnKveqyGMesquJp67y+aEy6YwQlK1rvk1NmbV2j6aVREQaSClw2bRrXrg19NPEyzI3RshKyMwzxMK2hkN1p8pfWaU3xfi1A3db1vMzFaBWWnmPBgqcU3wcg3ifPVGDxFm7i7+3+ion81UmsbhEOpKskxQ1aUntClzlLsRamlX7zYyAYmXtOyq68LfGMfej1teAxGAJMku0UZbHMzj0FcCKOfE7q1TvyLLAkFHsvjWsT66+7GIjm/TbhgK6xEnLTsZRk553STYS1ujz/zTslerXqnWJSScokRHP+vsnVeRw0Ujo3PXhb2KePJbEhkUv3RLfM4DsQ5u9fV4i0LlW4xRpTga3vDkjwGFbmjzUcorI+hsFj6yzuEXmvh2OrnWFwvrhorPfZU2OKiiH4VtyXzLnCPA08vx95cSp8dD9xnDN3U6YM+VbRJHPSLv/bYFKo3vuTcHVSU/hMb9xkw71pUlLcOJZCfWjMltiawLRhSnw0Z54X+S+OgTEMRhjCBEW6d370CG+vUZIDzyYtvvsp3JuAyyVMUAY5Qg3sGgmV7WOW5b+7NrTGzmqUa5bCYuBhUxt5qc4mzjLuqso8sKwXRdqLQ1FUn+VOyo1MJ/UGNK5NqWRPrbO1cHByGTUNlmgujGJAmMGeWwmqmsUbke1gi9eccV4Omfsh6N5E1gmyo5OmxphSZor80ykZbh+21L82FUMOwVFQBbhWJThjSQi3dQ75/YTBnBsBZBfenLJAuN61A2twE36H/j4erHuOqbFu+iFQ/Gtw7Z82fc3q8hlcgmn5dtWCdzopNNQ7v+DllBR0glB+7zGf9s4C3JX3G182tUQ97eYqKiSX1plMoajg9BhNdtSfJnMw8TRSMh5rSGoDUzl4Z22JcxUA+LSIWwFiK352lsT71ZT4xeda+C/vC7U7Hz0rHIb3PozN3wewTm7U3iglRzXVGAaj5ATeWaMmTq7RsHj8GtluDYaSqG8rQxYwPE+qaHxIbItozNY7L6YolUM6X2MvygZvrhutvU8i/6X7xLEYLw6iYdeqsXMGhqI2x7srIdu0SdTAr1q0mVfvN27D2iUl33a8Kca7GXk+3I8ixp3d8LRPLgQgvpiUgL7p9vBUY/xoahN2bsO5vs+myKbqwxEvpPYmL080qWhRPciEtjNHtbarL5MlchYTLEd62tol1W5unEVqkC9D9w8uAb4WG4OjB6CgB7pmeS6K2KRx5BSknznbzQMvx9c14IBoq52YXKAFNabw30PzaouTwcxk1OKwRERcts7aFYpyqeoTrx1OQ7+dSvPoPFwC0OyZHz50nh2MPhhp0g89hrKRplzM8+bU5HRrjGOmrf1Gd53Cx3AeFABraGHVGDeJ2ltFmcZ5XLUxvl2bdAlJytEaU4S3V22Ax0GeARbt1hfXfrMg++59prnz8V3h+XGgeedQVC4ThC2RipzJMlM2pmAxpgQpZ1K0SlPKtAOs136z109I/DMOWhjbpTNcnRPGdVah7IPxVJ37KfO0VrYuReucI0czEPuShC2swYK0rj7iqRnffq7NeOuwbkBqeFKk3VKbphYp4VujmdoqjzHnujXGwXh31feVJFuSe7pkzJYc664Tm65Ivs5NiLY2MU/XZqGwFHDp6GDpJpWm2Xuf0etmHLMqy5q0QSiTNHgiMYEoyAdjNKk4zTxMW5K+dxCkltwpnrgSOg0PE2QzHVpm7A5QH3J9LTaGZHAadXO2LrecqyfGsenEGRKHpF9wFwPtX+dBVHnqCk71QIjdIsvB9pwGcfZHE39fZrG6ic2Mx96ZrWM9yyFocAYX7mGWFEtuztutM4972IwxL3C5wu9ulZdb4tWkESKo33RrjCVRu8UIUgjxkKTcu9YIJu0SCS1NdumbG6cjvL2IQPX9c2OajEzn3aNOfwuK9d0oAc+5Op9fQ2LrPQJ6VZLfjYlffD7wyfPCizlHr2r01Xl2MMZBFcKpGCXE/fNk70/vTWnKe5s2JFU0C87z2bgOifWshdyHgbFCW403P1y4XBotOYyQ5kyqnZNDKca5Np6NiXPtCsFNmjJtrsrgBw8tbOF06j4b4BdeDXx6n3i9OuWyMQ6ZCefFqZCGxtLEj9iAz5+cd+uPAdhNPJKM0rEPJUaJBr3Jzu2YO1fX55Tw4KhNzt2BbOs9MW6GMlsQj+4TvENW8gMov8QtfD6Ng8g3VHNO4uLyrrZo8YwLon5nA7pphG1h0ktWm+ZOSgE0kmL8e1tNpC6imeccsYk/noj11a6vxcYA6iVL6qz7zuZGdbkCZeRYtNuiXVzS08HkzFMdMvlmONqCBDIgzMEN5J8o5d6cNLnYzTYXBEBWV5BL7yrTHLHWmgsMbF2n2NVF2CkYxwm2TdTYLy+dHHP4lCXM6hglZeaiZKrFAwCrOm22zXlxECh5bZ2SM+elcX803l6MnDqPm4JPLOl9ebsIsKuuU/m6qQJamjQByyrH5O5wNyR+/i7xnWeJl6fCiynfwlRLVsUxDZnTFP6EJSzPzDhNprDWDMd5wLTr4k2Esl7E35dbstyTWu+UovfyB68X+rUzWILSOL0sPC0SW6VkzC785bw1ZlOY7xIirerweOnUFmxUg1M2TrPancsmLYMbLGvnUqCtjdKMx3PnWGDbjKdrYx5gyNLE3BelW2XTaLFUeHCPkWSAwGjCtCG+wzAYvQszsm5Ub5K+dwv/T1VlVySpP3enQJjOGFtMH4LkiHlWZimAiVdS2966SKy908B7aDL0c0T5fwzQce8OGkE37z08LfUvY/KbCGv4aW0lsOhpMyxVb4ht4WlgcEF94jU8qsahsYDCRpt2xY64/vOg6HqsY33gimPWME/klLgAYzAFO53Rd708YJmlhXMSCWg3ufYWffcUJ0LJ8UCNxtMj5NH5/GJ87IppOw7GuXbwxnUzDhOcUGJ137QpJODN2vhkCqBoFLj4xaNzf+y8eUokq9xPAjiXptexdqH3ex/euzIbtx0xNyHfrwbj50+FT54NHEu6pVQNg3EqiYomLdlkLlOmLJOZQdboQzG6hXW8CxTsntmqrM6KG49rZRoSw1Gp3laEovpFiH8x5+6jKcxy5LSdWpjjDMbU4VAENHeT4Ovx0llqD8k8YJo0fHov5+i6qdU0h0dEeX+6EFwE42ltzAle3WWWLiRmJFGySu41tC5jgVNPvKtqHZZ4hhKiJbccFsNh22+oh9/Cg+GmeXFu3gxj0Nm3YHjeNA2WbuzHbrIDNI8YPRNPwYFqjRwMSCWxq2pIybnUrk0J5xC6/0zwJ2y3IFQlOSbJ3zffSU9f/fp6bAwBWB1jEyhJu/W5d6b2Pnlp8ff5CCUbY4SRrKnTzYPqm6ji3nCpcgUec/DbcfZ04cXFKptT5qFp2puTWHY9yUZc0WmJ2rUAl248K4pyb+Ys3rkriW1zTlPiLGYMrxcnZSkuj4PxuEjA9Lg2nk0iLd3PAsO2Cs/mzMvROAGrJWYSw1D5/G3nYQsp9BY4jCptLtU5V7k6H3IKoxIPExA9lL92X/jePHDqikwbEIAmD0P5QNzPoksnc8Y5M49QSiIPTk6Z2uAwBxW4JsYRtidNG1p1hqMSu3C4uHM4JtY1i0fQO/Mn4j70DNZkKpKa0VIY4jZ5CVxb5zhmSu18/9q5bmHbH63QkOEbd4kaArlLizh7l7fRXEw4S9K4smQjl0zqMLtYjxkt0scQoe1dtwRJoWsxPZBuxpg75x4PX0T6NXbOi98WzxrYzYr4EAfk9jUImw0Hc2EJhgDpHtXqIWeKCw9hz4UgsZkx4jc+Tw0XjZYTc9fx37zTPJzETa1Pc7F3c0gCymAcyWwhif+q19diYwA91Bf0ZgrNjh3OxW+fPKSvXXbsl9ppOYJf0elBAPwtOAhmYtJdqlykU1bZ3aNcS0NlcQXGCJhTsMicFUA7pEDGm7HEiK2TyDlsv7uxrHAcE56cCeO8dVIz3l2dbxSFvh6nRGuN++AxHLJESVIiN7HqknIEDhE/1MfEx8+Mxy86b1dnHjWO/eEil+vWVXaubrxdw/QjRn0vJ/lb/rmPBu4GLdx+6UzPC82dsRiH8KUsWWj8OCUOR2McZfk2joMMU8eEDUpbGkJNme861hP1rA14K5l1bVIelsSXv7dSt0YeE351yiuZu+ZBNnS7DN7Ct2BMzrMiOvCbmni3bDxWLdZsGv++OmQ8yGuzJd7UjdXF/hxH/Q4WuRgvCqTBWLbKY0/cZSVDXbsWo5l4MFNqSg83UZgJ/KQPKsubJw5BbX5qIrwV08izuRZqCtJdMy1UwzjToeVb++loQ1y6pOXJ4vmLOLmSE4VoD4n3tLmEa75bcsouj/C0TOw5KZ2tCgM7DCnEUqKdSz5utGT81hfLB63Hr83GUF3Mtx7y2jHslVaHdYWXhyjVcKU4JyH/3ZrQX9ciXhHYaIQ4JtiDuCzdnd3yzdhqxI8lKeOeWeIw6I2/VlFdD4MovmOSNPnaNIK7K3A3aqFU4JgH/AiDK4HaqvPu0WmmnIXDJKLWXQIbkpyAUuajYw5Mw3hcO8sq5eZqDkPnz3878dnv6DRsLhCuBx12bdHnBt01Y/xzrwZKcn7t5cz9rPi2lIyXh8K7N40R53gs9M1pT/DmXePloWBmHD8ZMYPnv5ShOYfnGesRdGudlKGvndqEwdVDo186xyXjZ2ea4PXvV8rm1Gvnu59OrDGW7d1I2VhyUvJzN9pm1PCIfHhoeDY+e7cwuXFX1NodS+dYEqckrgEOD7VzmDKvDuqfe3cOJeHrxmnMeCLo74kXEfbrLXMcwoKtdTxrfOgEFwapZbcOzzNckujFC0FjjzHjFhTqFpJpT2E3752Sd4NebXLZnWtQnZ0UrYLMcR3xKGrfMyss9BOSZw+mcKHkmRzA4SHDUwp8p0vjkRAzd107lxpch90XBOe3Xm98vqOvH3B9LTYGRylJEoDEgneXGjEe+hogYQnxDq6FmtkVks5hgNIRlxyRRaYEh6wbsfX3Wv1TBL8MGhxzly18HFRgujnenadVVOucpTg8dNFQt9p5MuPlIBHP/RSsyuhjtw3SBlfXcLqucN4qy5i5q86hDPTUQp7cuTzB3eiU4ixubKFh+Hyt4PJ7PDeBjFsPQBRum4S73sNfe6Hk5/s5cTeKAl2yHvJPv5Fh6VzfqjA9njL3JfPp9zLHu8zlHzVKGRjPheFjmKZEIssbYdJY00ctLCOzjpVWAuRoA49fqhS3zTnOCRvg7pDZVvXFcqIy2gqPj5XrtTPkxLV3xua8uWxqXUyx8y0b46A+eq/oa5JjVClKsarNmCdlWnbU7m1V0u8NfbwE2OyhOzAy19ZvtuuWBXgm9k1XyWMNWFa1FcOPTRpi8MUelrxtAmvp3ABasqj117DY79apXSPJnOUAnYJkhSVKgIy714i78jIsN1G1zRTSS4zihwY93XwkU5j7JtdGl5Lxf3yx8vpx1cH3gd5uP3FjMLO/BfybwOfu/k/Hx/5z4N8Hfhif9p+6+9+Of/tPgL8R7+t/7O7/80/8Gcgua+eCjlmCJ1zhKsfpvXOSEGUPqapuviy6RBYpg4C3ddPHmvdbRNk+W+/ukVu5W4C+z5Z074psC49Ii97ODJJLFow7np3eO1+eRTapRXqESxUEPRXDs3HaBPadW8PIfNlExb7WRrIe7YRCa6Yh87jphG+uEVNvxnFMPNXGMcO5eYxtHZIxut9aoSnBDy6VX301cT9lShZQdhoz82RMk3F4UVjOsmf/+JPEYS6cTpnjoXB/59gC7YvGcBxJ99ySkYaSyGmgXzsUZ1sa05Cpc+K6rMxHY/sCllVA8TwnxqMk4t4kcFqbcX7X2LYmo9Y5cd48/msSMiWdelPJVBersIzGaRYONaZEHkWhrkAelEdRHA5jDl2EgNedRLQ1FyhJij68yaAGYx7CvdoTpYhjIIdntQFTfu9lMJjef7OgR5txMLgkfe4eajuYRE4dhcuusZG7vTer8UzYBUhWPQYeATJ+nWNq5haHlMPBCEaktBw9da6oYhSlPJORm9Xvfbnw5btGl1DoJy3BP3Z9lYrhvwH+a+C//cc+/l+5+3/54x8ws18D/m3g14FvA/+Lmf05d/+Jr8xcLMBsYut1ssxW2UVLktjuhiFLh1k6Nx5xGkLztybQpluPROGM02V+goI+zCIu3jXSaQE01q0zhH9fzkKBXVRKAX69c5ellp+zJN4lK6jli3PnblR+pAMkocnrEDTmQLrymnm76GR9PkrqNRgsm/EP31WmnFg3wg9B78WxGHdT4rw4pyzRVDH1y5jaoZKMZ5PxK88L4xBsUVcadM4qtUvJjKOYh+MxcTgmjqVwfJ6xFe5eFGxIDB8nrt9vTJ9M1FwZbBA/pDvj0dguThkzfWuUgyYX1y+N06vEwx8u3E2J8dlAGxxbdLI/vnNe/2hTK0jm3dIYCzxeFTlXo1X7uKifv3YF5kwj5CC1nWZhJzQJr9YW/gOIU3AwY7P0nuDmjrUdcBZg2Ezsz4QxDCoXxvjc640pqHtYME6DjFiWLlLRISmBbCesLq6cjMVj/Gse5KOBjqZH3eHSJPdf+y7xF9gxyIpUTl4ImBxMz2RCCew11oGbaOcp7bkoalkuXc9QNal1/883Cw9njX3an2FTgK+wMbj73zGzX/iK3++vAf+9uy/A75jZbwP/PPC//qQvzCgxCuR2bLET9sALNFnwYDxGCjAuIoopWan6niUYBJKcuGntLfwZw8BkbR6CGslthy0xxiLbKwRFo3U5IDWRkmptHMdMa6HP8MSchUZfKuxp4xUTF6LrVDp3SA0oTl+gTHC+aDx5TZlkSn/aaujum/Iethq/FwpyudTOsUsunSDm/8rE/JX7gcM4cCqZlJwpyaJtjrL7OOkXm2Y4PcuMBy28wzHDSZvvNCb6mrj7ucz6ujN9c8QL5CmxbpsmP3OiXZ08j5zfLJpe/OAqi7fuWBGAbA7L00bdjB99sfK6Nt5VeHetzEPm6dK5xoB/yhI9JcRn2Of5bpKTZ4OjJY4R8HNpYcveVUGOKdOD/bfFc5NiRGNdFVgLM9edXIYJOOiooryuTe9ZhndVFUKPUd9j3yn7iYkmFq32bhLOcZC/xM68XaOyUFWq8J6KM2aZyXi0JmsNU1qCQu1aCzUqQGmxPFK2LFiUYdTilcSgMX4z/t7rhWzG28vGBxId/9j1gbSHP3L9R2b2v5vZ3zKzl/Gx7wD/6Mc+5/fjY3/sMrP/wMz+rpn93dpFH62uGbn+7zdfge5Gp7O5RYmWFESbBNS5iwptiBlZu0rGrYVha2gmFBm+l2phd0aYZMROPWZJXFtP1BaVwiog8lSMZ1Nh2QLobJpkeMz3hyBTzYNJENSl98jJOI6wFY1E7yfITfeu9Ew/Ny5PzvKorMbexCosJJmoJpXOI/qex1GYya6jGC3xc8eRX30xcir62RZcaPWb6kHJ2gjGOTGOmZQG5jmRcmacM3nIpGFgeJWxITO9GuBLI/ugI8QTXcMxelIrNZ8G/Ar1XeXxRwvmznTIHA+Z5QJ3h4E3r/8v9t4mVrM1u+/6refZe7/vez7q61Z/2O22cWwLCEgYFBJLTDJCggliwIABRIAUBhmAxADEhEEUiQkZMIkUlAFIgBQJJCLEBEUgISHHihO32x3jOEbdfa99761bt+rUOef92Hs/z1oM/us9dY3b8e12d7vazpaubtWpU6fe856917PWf/0/Fj6eGx/tG6/2K2sP9nPHQxuJi2J8cVe4roXrQS7Pu6mwnTTHb4rwk60Z46CPzz1YQvKhIZ/QixI8HozHRUpcs3x4c0YtNShVZCdHmppIYG8JgXqlqFvZFG3K9t2YQ/mTu4oUWehwKlbE8aiFsXQuilypyAe3kZLtBEgiV6YgsH1XNJ7OEcyRTNyiV1vQOrcnz2Ea4iHRbMiOyMpARz/v33o1ExHc7BdKD0qP77lbgO8dfPxrwF9G38NfBv4r4N/nO9ep78isiIi/Dvx1gKuphARGxtWgNnEqcGiqW2qXChdVRI5wx4bc7aa3ouSmRg3xGzZlYN8a4YU1/RcuTISeCKDI6ccS2+huHE0rtEcjeDibUliU/koluD0Gu0GnSzF5+l6VRCmqACowomg2bS0eaNdmwZNNYVOMq8G4OTpRDetKZPZk8lRgl1Ljw+rMAdUrFOfxYFxPA15h31ZOXcy8bTV+/vlEnIy2BMMjuN4Zm01V29mCy60Yi9vrgd1VEXOuGLvdRjdtK4y7gSRvUN5ziAGeV/yNUw6VaTfi0WlLS9vzYL5fufvVA5tasTVYrrR2fX0bfPPjE/f3KzdrYxqUtPTzP73hk9uVy13l+qqydJ2GJ1PBvlk75ShvysOqbk2YULCG0xfJ5oeqzcWFFY652rSiwbymKGty6WAKULowpbMFPKF/r7vRU1wlha46xoiMK0zi3PmQ6mhjMACXlTys5L7kAAXGgMU6Jxe1fBR5QR0pwZShvoQ2bZtB3dXJNZaWqntsk5sKR2vLq6qVZyXoVvJ1G1/7ZOXm4Lh9NrnqD3d9T4UhIj4+/9rM/hvgf83ffgB89TOf+hPA7/zBXzDJGcllH6uxrpbhG7Amn2A2kaDclA3hpVNdVFezno+vWkWQLdwcwgum3HBE6NTuXTyAgrYGZ0+GsRSOTad6IGeoAXtwX4rcb5ezYg+4HMSnl4Am2IQDhf2iG3Y3GsPZvDYcj8qjTeF+DjZjsF/g6daYRmEk41DYRjDOgQ3BugTH1aA461K4PwWPk5E3FvjnHo08noxpF2xPA74P9quxeQ9KlXjo7EhcLaghByQTUQAa1PFcwfOYLYW+BCYON22BOoFR6W0hVscXYDG2jweOLxcWL5zMiFL44MWB9eBEOH/q+Yb90vlnfnzLsCs8uqysXWPgWI0oHUsmZC2S1OtB14O0eHAxxMMJjTvTYFxUFQ2laAPF2K9BtU50ofQtActTlxBrGgqz92zRC4Ri3rrpQfWzXB+9ngUIy7V0l7+BmVaHhvG4aAvWImPhomA1aL3IPsAsf+7SuYRVOlXS8hxFzvjBlJuXUpSSXixdqi2t3BIw7RHZ7cI3Pl14fb/g1b4XjPH3vb6nwmBmPxYRH+Zv/03g1/LXfwv4H8zsryLw8eeAX/p8X1MklKkK/AukKRAPIbhM8oYlY22JYMw32MOYqKKSopPg5BotxDNXf9ZSwVY6mGmvXIt6+t6M3TkijLeI8SZpqqJT6ySops7gMmXgkV3KmiusoSg1akoAMZK8JYm1uh4FY8tHYbsTC/EUIlxcDMabWVLfNx3u3fFiXNfCtA1shaEVLoeAUvjypd6Tba1sthBR8Nk53gaPng6KsF9gd2UKfV2DYQjKrrIctEGwSShYj05lwF1mN20ObJUvxXQx4qfAl4JZpS8rfW+0+9SsWMdOhVetE+48mYw6jrz3Y5sklzv7JRgy5bu6hGDRYBg0trEGl9V4NYv9uJnSvbvDbgp1YR48Hgun7CjmJtC6RHooWWC141YYKexXf1hrr01Pz2BG8wLWGMvAltAmKByPwpS971URsD2bcVWE8TRLt67zuFYKtUvq7wZrbqacsxUcUIOSep0YkySJ08IAACAASURBVEwZRukaK8y0YtU2xCUDH1QwTkl8qlXr2tULv/qJCEsv79csCt/HqsDnW1f+j8CfB56b2QfAfwH8eTP7efT8fhP4DwEi4htm9jeBf4C+l7/0uTYSJlu1bbH0AhHKrgg0PaggdlqL89yYc3S+iIXc7ScqPNYujKFK2Siuw9usSivJleiFUnSDagUqhFex9ioyMkZ2hdnkOu3RIOAxgH3X+u1iLOLhR8aYjyUNQSQYKg6n5pQxrbxMXIqpSndRm1EG464FlHRwMq1oDy1gLGy0N2Xf4elYuTbjkRXGQXN4FRxPHSvroXN8Ezz9oh56cximivd802anRaNPA9WU0Wx5J8cazMeglsbpLliOzvGmMV6OnF7MDNeFfoD5hdObwLT6pEpYtl95fDnRbxvTM3k61E1l7WCrDGIV2aYuaygq3LdNfvYt5CFw7E5t8qycME7LWaOiB68hrEbks3QJT0bpnFoSb7mpqpKMXxTj1PTwucm0t6OfQS0wuk585UZGdqOhoxtnY4qk21V5QxzdOIWES2v3lMEro9PzXnUX7Vsqx2QkkuSmXIOnvOSB6WjmUgS7OoYW53g74//+4MRuY7y+V4BS/649oP/g6/NsJf7t7/Dhv/GP+fy/AvyV7+5laAhYQ1Ze8s3Xw3JoYnK1czuWlOFzmyiaqrTrhtBwD9ivMuIECOsUl41XLapYO6CVDLqN8/5Zp/9QhB+UqHh4htkI5Z/DHzwezFLOW8C9iJ1YpJOXm5R4BEMRAD43F+V7MLYY65lFYXJeLpV0N1Js/FgLL+ZOdbgY9Pc3k4RQFxNcl8LjaiwHuHhcxRZtxmbUSVWvK8t9sOwlL/Ze6Idg81QZkJZgVgfa0pm2SmZpMyxzp59W1m6cblbCK+2jjq9HbCzYK/FDltuV8GAYoTa4/okdz2zktO8ch8L0XmVtnXnVzD4YnLyzdqHrVE8Wnz2EDp8TtYYiCvmjtNArVeNDC42bmwKY/B/08MnkpWBsUITA3rXa9V7YJiBcir737VA4hnNa1MmJGyBC3D4l4NUCK1Uy/RCL8dQLU7xdba65mahJPhtLEJ45FY6Uwh5sq7AIQ7aFZ76EFR0eQ5FzV8lTzJOCvXgGGa8Sch3mzmlWR/KDKArwDjEfdYuKHUbIe6+HPSRJO2rxoidJqbwNpOm52nIkXgn0oJ3ThGR8JC1DT0ecY3TO5qhPNoW1qRvAIwM+RG99tKmS3hapGwuq/nKN06x7EmeOYaiKxQuX+VmItDNGwTtc1AoWzDOcatfqayis7twtxs4KY608t+A1Wl0+nSr7pcvKPffeLYyrSdjIrkMfAk4QE0QLvBrjYIwYmyfG/lVXHubk+DgQq4DD1YLNdcGPrpi+UqmbAW8Nl2kh62llvQ+iOHWXo919p+5E+7aafoTTwPZJoWyhHyvbR8k0bEGrFVsbc+spJ0b8C1xxAQRrjogtY+HNpb0oReljYylM6b59ZZUhZcu9yz79clRhPnVnOwnUNJcvw93iRFXBbV3BtLvsJLe1ME6Szi9uPJ6CHoXLUac0SZArozHkJsk9eO3GDv3sRsv7NwttMW2KKCF+QmSgj5/HUsMqlAwWUvqvdDpryMS1FjEeVwRgKyLP+Y1PF4KCV/+eiEuf97LzCuSP8roYSvzs440IH0WA2qYY+1V/PhUdzVcjPJv0Pq4Yj6pAH31OYUEn7vVUGUvPH4L8/oKCh7L/tkVzW4S8Atx1gy4eXI3CAM5hND257Lt6Rq5lbyaCSaOUSkFS7/Dk1JuosEviC1MVXqIk7XQIdgXsXg/1rRv2IFn1UNUtzKuUna+XRi1aNV6NlQn5TQ4hR6Evb0c2peDHYHOpjslKYZscBg+h8o+eF6wYUxu4/qJRxkq8Lmy+UmifQt0Z45ertiAbWO4apxfB/KYzbCrbx5ajhsESrB+tWgPfLrAt1KuB25cL8ym4eXHg1P3BTGc12EzGh/caJU4WtAFiCeyy8vJulfJxaewNYgpoMp4dRj1Eo1XKDoZE7rVtEH/BI1i6UxwOi7CHktyVu3amOEFDjNY1CUu9O48GJXn3kDHQ9aRVd+sqoAklYBXu3B5+v2SgZW/GMQ8DcvTzybAGENQhUpFL6j3iIcCom3F0gYvV4JDjR7gk6d3g1z5pRMCbQ8dNBeF7LAm/HBF/5vN84jvRMZhJ/9+UOZebCLVKAyX9DuHNrBPlekqaak1ElxRIJZts7p2lw2URddUrlOS/bXPlaYnUW+ikMPwBPR5C7j5CyJOSauo2wBWWYs5F1RZELk9VmghXpzMNQU9p8LEXibF6yJg099BjLgU2g1rR2IDPzmbQxqJU3aiO1ucX2YJG0mXXkEuyTZWxgW/1ZiYHiLV1BqtMFe5fdcZpZIjC+x/c8eT9kefXE9MGfD/KUv01+C3UR3l6nxrLjVydX3248IUY2FxX+r7TF6dsKjff3NO68+hi5Ob9I3FyYulsN8b19cRhdlbvokSXpFwD69zxJuBufrNQu3HXV5YhvQtOECXt3JdgrbJUr6vlKlH4j0dKptO/cZpg3ARrC5ZWaEUcgTpqw+SrkqSebAuv98ZQnDYWRoTq1yqW4qm5xsWAwSpjCYhK6Z7pVQJL116QF4rGiG015i5sQMwF8WE6Kiw1jFY1otT8nlYXPuRUBvfscLX1+MbLhZu90+lUKnR+QMPD777eicIACCUv5e13reEbSAPPjAi77cFxhecXxu1aZLKawKOHmIAt/fuOocQjb0GUYAzZxWfnpofahB33XtILMg9ENzaZUDWH5N2PplxJ5ml/7FpbafUkpVuEnKzjbC/mwbPRs8PQa20oQ/O6wrF3sMrFZFSXN8PhqLfg/hR4Ma7qeYa29PXLedV1srTWWcbCuC9Ecc3n8dZGHDMuHxk3H8waT54p7eriyzDsKnUD841R5+C3fuPIF68qu8eV+dCYm+zsX3y6YIfKsy9vON02WhM5aL9fOM2dm7uVq60e5Gc/PjJ8cSCGgf39wnzqzCcRgE5jY3+/8uTRwKEZx31nczmwP3ZgYF40Yh1dG5p9aFUZFe5M8/uA1LEnh6uhMwWMk2TPnvyM603qZYqJF2DiN9SNiv+uQnmkrBILwwalas8tU6Sr0brm+2HszGtV0a8dO6syJ7g9iZU5jcFhNZnGlLcPd41Ki/z5qQnCOrT8mVqBy1GZFoWOlew2w/jNVwsvz20zsPrbX/+gr3eiMFienFPVegqAqIwm5eI4BDeHeNhOrN345F5ZFH4pKvWmCBtYnAcFZvPzCBAP/ocemvsUNFqkhsQz5CZDaQqEK/FnNwjgbC6AsRpE6WyqDGFmLRB4Ogz0kHW70Th4oa3JqTj3seX82oqs3k2n/uyNvhS21eij4crW43oruu79qWLVpfvPL2Y1GChc1HxNHjopF/ApaGY58nZWqwybypPnhWgqUldPLjjtneuLyuHbcP9m4fWh88HLI8v1yI/HJZePjdqMi11hvm18+Nsn+sm5uNY4NXdnuqwcFdTA85/ZQu9sf2JHW53TfdfrqoU2OGvrbCewR5UlYDd22FTuZ2cuwXF2lvRQfLMESyhG7pjAYpge3GLCoK6GQvPCOBZOTX9vJChRWDuZXu1sRhOvIG+gMX+e7ZwbYMH9Ko9MJzu4cKZaKNnhHase9t1gRGaFLBhPdzLsiQ7bjcR5JX0XxHyUonQJFdhN0UaCnnhDz59VrsB7Jlx949OF21PTfVvAvk/Epc97vRuFgfPGwfLhNzBnGiSg8Si8t3Pu12Bp6iJ6CJD5+E6fNyk8gt1oPN0IxZ1KoXuX5iEMN2VVCvl+O4ZcTIVlzrAOxLjDZJaqH5fmyojkKdRCUBmKTk2jsLrk4reLZN1D+gpSZAt26E0kq/z+3INIDa+n3RdFjkxrr1yMldVXbhe9xk0JcBSnVyJXhE6Uwt3qPL+YiFpY36xUD2ySsQpd1myFUM7lHq6vR44vZt58uvDesy12csbLEQ6dmmj84/cqZStVZLjx41+YuHs18+LTE1/ZXLDdGZuLAVuDu7Ly/McGjofGez97RZ87y91CX6GvgXtnbiqa3mXy6kXZHoM5iwXzkMG6Y+XlqYvYNQe+GkNT/J2TupEq7GDpyg9dgU1xLpPObIghGAHexGoFZ6gV76HMUSssq1SXlqGwa5yzGkipsghvDdGQz4a0m0kdy6ZrG0YPelVMYCHEl8lkc6krlWhVEcNxQF2JBw+bDa3ahTf8P2/UGahQCTf5YYwPn73eicIQ8DDP1zzVS6rYthXGkIb9+Vi4z5yE3hW02gxaU0pzKcb97ASVaQjuZucL26TAmuFFkXVaV0F0EVeiC18Y0cd2VphNUpWacpJSJFSpg7E1YQWLSVSzrYWbuQnYq2rvay1UVyFzk+KqkdLtAqs72zCGmilKbhxXZ5+OQ29OjdmDisYl4syp6OysEhneWyLYjRWL4Lh0bUKOFTwom2AaBm5uG1e1cjg0dkPl8OFRWo0anO4Wnl5PWO9cuPMI48qN/slK7zC+N7B+tDBtCnNzOsFHHx/5ylcvWJeV2oyrXeHyqrL50kRfG+upMU6Vu8PCnEa10VcReYZgRLmQXlxFzuB27hxX5zaC1dU5XEySZS8RtIOwjs0gAtxUFHl/mSvQsYg6POJC9x1lLpjs3jyKvDxNoNPJ/YETU00dYzVZ/nVXqMwJranNxKWoaTloa+FiUq7qnK5NZ8NiR/fRGRR3198LwKsCm72LPi8iXLCaRuj7Dr95u/DyuKYgS1Zvzg+3W4B3pDDwGcruot9yUc+xZbAHLkwn5c6krwR4dCn+/9mu/dSEFL+8b6R9Ca/uJZ0u5lwM0jE83ajw3C7wbCsPhSXAMxV4rCK0rMAyi4k4pGCqmvwSwuAKmWqUcK42A1MUllipCP1fVsdD9O0BPRQaSYKLqaYoJrgY1ZbilS9t08gTY1mksNzkGsuSjH9aOsUqFsZdgq6Tq6Mp20o7BMsR1jdO9xXDOA6NqZg6q+vCZlO5HOHJFwfGUnjzIfz2oWHV+PJPTZQrY/moMX/QqDud+n/uX33GN79xz34OvvnhgZ94vqHPjac/s6UOxusPV/ra2V4NLL1xOHYijGNfU4PgHJpYp606L+bgd/aLthGnTjcBtEOBi1HFuBc5XpeIB3xFOhp1UEuezEMxfvKxUYri6CYTp2Qqwe1qWAmWFvReGAeNlu7agHUXcLgED8DtzWps82sfujrUYnLhaoNIWPerNgxncl4r0mbUQWNLReOMu9FMNnaOcIUlCnPIh2MN4xuvFj45tIcnYs3R4Y+iKMA7Uxg0S5/pgCMSs8yIEam8RcXGTVVFoSB9wpirwI3BbgPrWphCeQ2HVSDOppxdoZxo8DurMSQ//nbuXFSNDEvrnAbj+U4pT7ixG4yXp2BrsBthnUWOuBxEj71bjSfbQvHgFJ0NNQNTxejzXnL8cNpi1BHMVcwuNlUMPC8p0UUAB8GhaWk+FXsQxswBY/Q0EnV2Q+V+DbYRHLoSnZYO44XR74MD6lwmgq5gA9pQ2I36vMudMc9BHxrvf7LyYhGCUb4wUE7BeDkSbeHip0YoxmrOl3/2gl/5pRsuNkh9OoO3kBUdzhKd9abjgyIF97OzrGcZstEyxemwOPcnpVW//2Zhv7o4GjkKXE+VoWrVWIpIUHc9eDQGs8tWf6hGZgPgBJ/cO5c7WFbpTXYljW6SjTqmiMlbUqILnFxs2dFgwHi9pjQ7ca8lIHFvTrk9mJs2TrJmLxktJzzKu2ICFzeSGJOzMlCFU2Eu7ocFd2vhN97MvDrkmo3ODxlO+I7XO1MYEiJgm6ITsQntgb1YkmpqJdVqobZ9QPOXsEVjHOXmM4wwjIpKPzXZ0B9ds7yFLMp7aIV1cp04p2a0xTguslLbjsGbWRuAV3NwvdFa8cVBnYOlIejLQ3Ax6MSeRngyFXaDupdmjqVZx2hBtGDcwNLgMHfGwZhDLeN2m05WyJ/AQ+Y0t7Mi3ME5Nn3tu1UP4ntj4c09tG0wd+f+dWO3G/DV5esQQA1s6Ww28HjX2U0FTF4PVwZ9NuboySiEj7+98uxqwG8WhufQV2d6voW1s3pju1G2gzdRqtsyiOabDNJmxu2blWFbM8Zda0mt3OBmDV4cO7+zbxSCuzlocjeRL4PBqXVeHfWoDLVwyIJxbHCZ/JXAmKra+7ECOK/voVTF+C1Vcumz+Kj1OGvGCIKlkTbvqWkIjRAtLAFF+UF4vrbxzLpNQGgsZEK5MiQ9SGxJCdU1nZmbpytXt4dcViudUx/49ZuFm0MThuB/VP3B773emcJwdnmWZ0JRXqQF2/y4e1XKL2d2mHwblTKlE3qVygrXocvlNpio7FowVLhb4PYET3bBoSm4Zcy48xZy8m0e9DVlsIs4+6eik+LupAdVhp7+kDvZlmApkn3Pd86L4nzpsURfTzbZ0ZS8WWpng8xATvgDW65b8GZOPkMy9NyUP7mdMm8gU7E/Pjj7+0Ldqcu5COf+Hi5MaUj7+yVlygK1mhV2m87Sg8cXxql3nmy0Rjud5P3w9OnIB28an+wbX/vmHf/Csy3XjyB2E8PVyLI6be4srdO6bMlPTa7KNhSOc+fQJFY6tk6Mwal1ogRrl5vWijChN0vnw/vGYPDxfWe/OteDPYC70rfoIZ7KOc9So9y2yN9iAIYzycmMJ4PcncYhMBex6pNDYkRF8fItkjkqbFlBLWnfduwaP9ZUyFbOn6dO1cVlImNiKKEDaayFNeQ7vi3yLJ1DNgACrtMLwx0r6UsZGo/+weuFm4M4Dp7y8HfleicKg0hCZ39BATrberbZlsUWRVTkanL9XcJZcyTbEWxr/ll69keYigvBdip0h4shePRYLMhrkIty3ozR4dQ792thrJ3TWhiSNrlLRdvF6LRVG4qnk7Idejd2JkHP5MFi8vP/9NZ5el341o1zPcHlRkzML1xU3ORmPXdFvV2cbb+r1q2npg7Im+zI9geBjt4kM749yehkvzjX1Xg6GJTCEPIFnAZjGgv7k+MevLdTFNzT64HtKG+HoxcuB2ddB2o1NtvCbmd8vHe++WrmJ58N7K4mtgb7+xVcFObDm+DTe+dRgceJCRzmhdmN3jpK/BIB6LDAuEl5N8apdd7Mzst959Nj014/PTiGIiu/Fo43BeXuRnE7FheuMBV5Jwwmt6kl15gDev/dZOt3KipOtRpTce5mWCw3QRlUc+pOGQqnBs93smbrBNsicxbj7cO9hlSbIxJUWTEui/IzDygVKpRWxBrBxuCYhaSa7qOWnJK9K3vyN24aN4c0g8024V3pFuAdKQyGNA8V5SUMGa1VUcScG1ynxLnR6a5MRZ3COo2OeLrayESjl2BK9eMakvzWklbiGCUKmyGYinbOA4WBmqYu5whQ6ReAzJuUQcgQOdqGcIfzTGgOtwfnZpbV28e3cjm6X8DuddL99q2/PU1MKPbloDlXjE3j2c74nbtO6+LZRxK2gAzfEenrybbw9EpuVV/YFC67QM6LS6AYz6yeRSiMNmQmojMvcPKFeSxsRrHvNpvK3erYUPSej8FvfzLz6KKl5Fc5i1//f4+wgQ9fz+yebGmL8/JVZ9oJuJ29C5kfB8bSIYybU2OtwW/fdr51P/Pi0DMJOtPNzZjNKW6YiZNwNcHVAMcVKDCENk9njgOcpfl6/469M9bKPpWURpUy1zQSBp1qNUVQcnISnTn4ZC9xW4RxtVP7OY7koSG/yTeeIbOImHQkLdpXow7qArwZpSqnhBxTW/hDJODff61N16f7LvHTA8D47l3vRGHoAftFreHjyVh6YRogiuE9Ud2aASRodRQphhoH/UB7QBn00C6rZKyKOxfFWnOdHrDxHHBbgaQ/d1OC0YUFawx0c6JXcfZJ/z+DboU1OhM60RzDkjlzuwa7y8JanZujEOpASUFzmHb6S5OYx1M12p1trVxP8Hr2jHzXPHzO1kjBAS3gqhhPNrJlH9OQplQ4Lp1aKuMGylDYFAG0hLqh5uBFfgbRjHFTKFXFbDXDluC9beXm0Llrzut9skAHpV9jzurBT35p5O/95gH3YB4cFufNa+dZHSnb1EWg/ND7VSfsXQSf3Cq49dOjUyL9GkPakk0hY9XUHQx21jHoIafFAz9Bq+d02LJKLcFtkp6uXBuN2wzgkYReneNUBFq3LsXiNIbA6I0i8kScCl4e9bWuwzjZOdxFhrCXg2cMYJKcQlmSrQXmOmhuZwBtGhrKrVyajGBf7dXiujmWiOYPm5/wea93ojCEhkuWJbh1zW03XWBdQSam9ye5424Hsd9qEWg0uEJhhmqcuroDdxGAhqFw8rP9mmHhbGo+LEa6BomAMlRYo3IbLrPYZtyvHY9KKZ2PFuPxBrbmfHp0vnBh4AOtqEjdHYPrjfH+ndr3mzlR7QSjaksz2Zz7rYiXUC3JOEt2RK6P74pAOMy4LArZ+blHhefXAzeHzsUmwbQwbDVOXWGxu8vyAITvakBVIWUVRoE5ddTXPq6BV4FhrUNUaQV8hW98eOJf/lM75ubU0Hv0Wb3ddmO8/+nCjz8dKeG8uV25GAaE7xqnMAY6N4vz0X3j23eLshvcWKI8rH3Hoja7mByZa9fDbKiDqpbFwcRbMc5dBpAOSZeD/DfnCE6LvBLn9GnYFJ3Yh+5cllR0ohVyJ7iowV1U6uDsirEuMgbyM9jpiaMEzN0yBFjOYtejjFmebsRmDOT0dezOxuXY7KsAr69/uj74LHy/TVV+ENc7URgg107I806hH8pRHotxnDWfbapxXHR0j6M6jMMarJOKhplDqN0zk6Bpm3bwCpDRaXBKj79xgCEK33rjPNkK5Lw9Bo82OlkAXh9b3ojB64O2F8+28A9fOdU6z3eKvX99gs0Ih1nt4pgxdNshOC2dx1PhS9eFj+6cfVMxaZEBtFXCoF2VtPu9TeGyBrdr8IXLwpPLSluc51eVoVY2k3FYlHJFU4aCkpaDbcDd2hm3hc1UGLpRNsbd2giTajVc69+GZuca+n0nzts/3CVEqpMk42sXSm8Guwvj7l6rzVuHyxU5DS3ApH397eKsHT7aN/az4vler1o97lARbyaB0+WguLbFzwBkAs6hTu3YteK9HsV2dGQLX9PabY4zoUguTgQPeR2E5cZKGhWjPmBPG7McWVWMesDFYByTaRlW2XXn6OqCahLYCsYUMJsxEryYO2ZKulrNKWjUdYd/eNdp7tzNCTK/+zUBeGcKQzC7VItWdDQZSh9aXRkTm9QvnM1b2wIngs1Aio46ZoVxFFHlcoIahdtZHcWOyj6ti+ZmnGYJq06tc+zBsodNETf904PALm06XMabefO4By/u5SfZcT64UwdSzDiu8nR4NAhAvNzoRv/S04HrqXBcnJ//ysSydL71pvOFq5HmnY9unZ96OvLJXSOs8OSiUMN4r3e2m4HLEcZdxU3FpHnQZgEd42d8IpYRblf5DmzcoRflUKzBNKrljao+/YBO9r7Kfn1nxvPLysvbzh5njRA7MMljUxVoatF5/rhymGVy88HLhZ9+PGir8mrh0bOBE87r2Tl257g6x35OfU6AWY0LJQG6nt4bi4tf4Jxl7UYUFfSaXAGxKNV9RTIXdSZrNbutAn9Lbh5Onmti4HROkM57aKUoyzJxJndjLM7R0jDFFD5kVePDlO9/mOjKK5J/S9CWOo4qoHUN+JXXnVrgxV3Dzya07+zw8Luvd6IwzD2tsassyy6r7pjRdBf1rPnd/C35IwQgza0wIPxh5O2q8bbJxx+Hk8Er04w7FLWba9fJNHBOzY6MW5e8+ieug5d7+OlHcgv84E6I/2zBZIUJ50uX8OLQMTN2gwQ2Q4GXe/iZpzWBOB1dZsGTq8p+dS6nys88rynsKjy7GOnu/PizynGF3mRV92Q3MI56QO6aY8mgaydFqK8OXoO1OmQ7vV+MzVR4/975MsZcghHpNaZdobrcqYsHy+pSprqxUvCmBwyTBHm/irY9jpJChwfbUtheOF9+r/Ktj1fWMF6cOrtizKVzeNFZtoV77zSHU7oaHzppvCMPiTRfwg15VIY6vLFmKnSyTFuXFsWQKe8anroXcqUplaWHcz3Wh1HSQWAmiq07Fya39JRAhatagSgcEuT1tGybm/FkUrE6urP5jIPTkn6iV0VdWqM8dKhDBzD+/qfOh3e/Ww35g3Jb+kFc74RRi5k9vIiferKlnp1QkJvN2aBVi0aJrXpozHiy0cl+WfJEsKAtqafIG4ww9g12xTnFmSmp1eZQjMEKlob/wwCPkntQEMD0ZCPX6oXOFzbG7Sqa9eUgoFPWkcHx4FxuC7UUFpdwPuIcmqqbdSoKPR2KDFS3o7wWrBjbUjgsSm12glgDc2MayIdDD1IjKKPyIF+edAIO6UtQki8xFtimgnM3GBebwuVUeTRqszJ7cFkK80G2a2U1lqPzyZ1z6s5718EXH49Mo1FHHctTBY8qSbI7N4sz751vf7JwWuFiqEqlWjvby8Jt07jRi3FymeQoRUnfl1WjeWdt6fFowl4i5/vtCGuTMO7YBEpO1XK1rS5pDhnWBGJXRgKU0pUYuwynVSgN7Js92PGRvp6LS+cwmF6fZ7fSXXyNEiKk5rnBAGmGI2exFkpIn934pRcrYYVPbheAH6j92vdw/WgZtXz2+tbNiX/6+Q7pJ1ShR1NointwauoMJHeEmxOs4eyrMVXPvEFlDZy58PLMU0u6qwDBWHUCFc7trOgorYtduGZ0egE+np2SpJTjElgz6iBrNMfoXcxFw7g/Opt0oSKUxWiu1nQqTjQ5BZGjivxPBYS5Cfg8rfq+q4nk1E3gWA8YJhWXuRn3x85lhTdNQGzF2WZwq6NU7hYyxx2GYL/vcGUM3SnFeNU71nQT3B8bZsZSMiiFIsHQefMRxr3D3SJfhaM7H92vXA2VxaBujDdLwxqsFtzede6rcbU13rTOYLCpkSlTYIMx1Q5da87aeJ8FtgAAIABJREFUHdpbOXSEcechOvOSZLdBZLbJtEXwAiVEhrKiLqrHWyv4GgIwTyGeS3QpGM0U3rOPfP/tTKASeB2h0cfOWx0TcanlIdOTZLW4Dq9SlFT1qy/ltPXh3bko+LtTEr7L650rDAC/8fLIn/7SjrEqZKa7sRmgxsBYBTBeDcabE1ykQcbadepMFrxa3yLoHvEQSnoxwaOpUsLZjc7lUHl97FxOzmmWk06hUsfOGFLvBYXaVUCiGHStDddFIp0o4uBX06kzFZnYDjnfRjTWKFykJt8smOqAR2MENkXuycCDjVgdwBCnoAQ8ujYOC0yjcWjBBNzPDigZmyBbbLTuda0LNY7pJD0sMon9+F7hLxW4Go27W2d0YTabR4XrK/jo1tm7ch/C4NPFuR4Lb04qOp8cOse10Trsl8a8dcZWiMsgWiEWieFuZqlFe9dmafbgMg15HGdxY/VOrZWC7PiXLqv4Y88QV5cAyrpCVi62cFoz+i0E9C52ph3D4JUeaZRi+rltkz1pReSjdhalcSYhSfkaAlEoZg8+oc0LXnQ/kCjB3JPoFPo3j73w9162z6wj7Ue2IJyvd26U+Oz1Z796+WCDVkwMMw+96btib7GJiMzvkz6hVrWBc5PR69GVaPxsq4b8clLaVA+ZdvaidnHFHwqK9XjQacwputlnQMzalIY9DrA16S6+9KQSa9qoTHo4hupsN4X7ox7aXJqoy1iDcbSU5BZOczCOQWtq2XcXRqzOZjNwRN/Tsrq2MC5cIELmpxECXD3gaeYwRNK7Kzplt/VsPKtV71SL/Aa6Yftg3BX2ZvjsSsM2uH5iDFPhyabw6ti4mxWOu66ShHuOWqAHc3WlP9eo3CydT5e0UFdEJJfbYDukiSuSINciPKPnilLtuhK6alHobT+rF/NhrZVci8LZW/bY9JBGvhahUvr1JsfEqQgfatn+L81YVAuopvdwePDSKA+gqQOPBku7NbLAZ3pZGF//tPFyH5yBRfd3tlP43KPEO10YAP7cT11q/ZMqq4Iq+hBGqa7o8Gz3CqrmLUJa/KKZcW0qFJdVBJhpLAzkajMNNwnt0lV0cl9ejBJOLzq5e9NJfBbdVJSNOVrgtXM5av62dAO+Hs9JRDI8ObqMaUt11qbOokfFQn4M1DwFTVuBzVC5X50hAcIW4vQ7MhFxM9bu0ncE7Aa4GLV2u3fxNEaTbZj270UuUB6MpQrIPTmlQb2ojEPlk5uVuTWeXVQ8beuGUeHAvasTa+EP4OEa4lA0z5QmoDYR0l4tcHfSQ7gZVCS+eH1+2BQbX61yas4wlIe4PSvJ/cA4uIRnNTQCHJpIa9OQiWJk4UaAbTZKVBNWsCtw2/UzHWu6LYelK1Qk+EniNyq2l0X8hMV7+joqM8TJ7A6T6nLxwq++bnx4u8oMp/9gLd2/D9fnLgzvkm7jO15/51t7tYlZwPy84C5wbEYzMczcdTqcfSJ3I0lmKozJMNTf1zr06MaYnovHFXC5J81NLLdjeju86fDm1GXCYdrXb6pYlxsLqvmDff3d0jgtXU4/Ebya1cVU4ACcw1QCseQ6oniHBWUIjoszh/59QyKvYkWBPLlms5Q3F9MOfyqF3Vi5HM8AHBoBetAQN2AJRf/13jNhCw5L57RopXmw4L4FN/vG/Rry1UxcpuGsvXFs54Tmt2KfAb2GEurIXG8wR+ehs3u0BVAW536Vn2GQFnoIEzCTKvFilFtSy5yJu94pHkw1mEbhCBdTriFXFfzR5JJ0fsAdOTy10NdcI7jMIJ45WcgtjyFRC7Ty3VXRx0crzLmuLSgB/WIsiilMvc4a6o5++eXKh7eu2DzOmMI7WxS+q+ud7xjO1y989TKFVOersB3kttO6hC2EmG0V0aSllDDuZpmIXoyFwSS3LsisRZChPq+YiEeYyEarn3lXwdWUOn10w3cEdm0GUYzPXpE1kt3m4thvU0Zspra71uCiDmpFux7yMf+t25OzGyvzWTcSPQNT1d6etw2BCD13q+TK568ty7PCXUtTElc4Ti3GrigvIVDRiNVY18DyQQN4/87pHjwajK88KkpYNkvFq7YJa6j1PsfPS2AkefKAydlqTfHbpWnDYMYn++DNSWzEr1wb4xAMRV/3nAp2cOElSyNlyyKxLV3f91TsQRl5v4K5Xvhdc6zA9ZA09YD7plyKOexBgUtuiFqcnQ9yZRqZQgYpxIsHgtKS1HXPFeVQg19+1fn4Pg+aNGj9ESkHf3w6hvP1i+/vWV03htZJnaWJ7FIAQkGfsmKVfPZ2NW6Xc1iHQLh96iaaGS3Kg49DzcIiqjLMDqS921gKs0NNJf7JXUlKoSzGuSMB0gOgVakmy7E1Z/8IOQ8rT1MtailGLQPdESuzBCfvuDuti3RTTLNxOa8L0Q9tCWc7yly2hgRiqwdrDzYWbCvJ1NPX6JYhOT2B05U0thUp6+UpHkajZxeFNYIeKgo9W4FSgu2g92VbRPAh22oQk/GUD+4wBN6FbUDwhQvjepR34kcHjVLFCwWxL1fX1gf0OWauIl/EEZh7riNDndZUYRqk37ishjm8mYPXs7qcyeTLqW4hZACbJCoHzl5JHioGo0W6gzunLvxqcTFBWziY4xb8nZeNj++zM8hw3B+RovBdXe/kVuL3u375/Xt+4SevAa3uSDFOsmFpXTMx6EEzFOu2rZapz0qxmlPAkp9KKZmhaGK0FRRFN5YzQ66zCfkEenjGmevkjpBM3IG7FlwPlXDpDwg5X3c/bxrIENykGIc4CVPRzUmIX4GJQXdKRWexjlHFwTcVrVIK86oUpHtkXFuQMnV1Ea12lgakJsylFJiPwSbgWERmOjtVR2j0qGcXY1SEV0QMmt3YVXVhu7Su35IkK8sxJ4QbyEE5ackm4LQGfPna+K1X0iq8ngNK+m14Rv6RGoYQT2S0YG4am0hVqSF8peam4XoTrBRiNQ7NFQJD5lAWuG8a/Srq6I6uLIqRXDkGCs1NAJIsxo66xTOy9Y03sgP69BDgWjev76Qu8vtz/ch0DOfrF799xy9+e/+gLCRPeM9fzzkard2lpCtaIYYrFkxR95H8hUhATzd4c3UPWkUZFgXMsF44rs6hiXm5hE7ZasqQqIlsrz24b8pl7Ljaf4uk9Wq1qI5D/gFnrYK7hE8RWqPVIg5BCaN759gMQn4OM/qaPXkas4uqvTFxNDoCGs2C3SCHIzOjL0E/wQZjRgBnTIiRiN5D6TfkdVEN1nyLZXOmf6uTq+DkCsBbElcxoxWjFOE6HkljRq/vatA4MBUJuNZuCeaqwO+GXNn6WfKcHoyhce/c+odlgcWw7CjqoISxM2i5LaI774q6gtklgYa3o88ZME2I6eExH0qSxiy5DOg9+u27hgTTLlenP8bXj1xhOF//1zf3D/NhRf8HgUynVTfN3GX1rlWAbn61kPGwZiuc/96ZQx9JqdWvw/PmLhl6e/46bpyQU7RZruTyVOv5scWC1gVgVRM34RShBz6CitaYLTr7dJkyxEmQJ5sKWzG464hK3PX3PfMXxmIPAb/usDR/oBFvqjENBXONSheDEYPISMNkbxH2BOWKnS3LVUBXl5ekY0peNtI01TilR4RF4XKodM8H3Iw5x5BNTbA4lI056w1nCXtIFushSnKgtaV1jRLbIqp0DwG4/fz6klbtYTiBdwG9EwIOzASEtu48GeHxCM82Gq3EXXhr6HvulkZ7y1E4q1oHM44uPOkf3HY+umspLvuh3eJ/pNePDPj4+11/9quXoE6Zgk7tw6o2cqgyfT0DYz3kcWBZDDo6mWpJOvFD4yi1XyEBMtMYEQG7KkGV0q/sIblqtDMJKvEESw1GkEVF7fKl2YMIZztkxkAzTiHCVTV5D1RT99BcoOPGgvkMHmYxKVZyPJFIqBaxANcOtQdWCqXp328mdF+RGTolI2S1fnsMjksGu0Tw/ELSYkxeCY6UqJMJs1hDwBzJshyGVA260Va9tzOScJ+BzWoqcovDy3vYNwUGXVTj6RZFz4dA1RaKq79r2kQ8YERubNLvceDtdkEAoV7f6lrpbtHKcfxM5sjSVYjXILcW+tkpskA/y0rhFMGvvhYY9eKua5P1Dvkx/iGuP37g4+93/dL7e1XyMOY8Ne0sqjKApLO6hFLNe2ZQWhqNJv24GOOQprRp+tlMtFkHLmthKgI47TxKFKn8LNduiztjh9GNcG1MIoo6hBZUN25b0LtMb0sbmLtxaLAxY26SZDeXsWskm7FYcDIoxalFvH9KSbNXy9NPobyRRaGGMfm5bQ5mdPovEZy6wM0x2/oKDyE5xYztoIIgXkISjyJ5FyZMZs2ncu7achQLalUR7q5TdywqcuRqknxrr6bCmC5du0GFpoQAY5KwNkc8mP0OJjek7aAVYrG3rMUIMRsvyhlPMTl4R8eQ4WvDWVKKeS4KZ3zpTB8fB+EYCyoKxYwXdxoy/I9HUfiurh/5wgDwdz/YU3P15WFvY+GQZsEsfQcNws4i3fOq0h5CblpC/tV02oLCQ2bvzLkWrCYOhGe331K/Ya6i0lHAyKboJp2KkpPlQSkBVYTRvXLqTm8SJN2t8UBlXj1ty13W5WUoyZjM3T+hB7foe5FGwGgreBTJ100PXc0Tt6J9//l9qNm6B2rNLff2lgU1ijY0Y1HIy0Wt+bWl1tyOeo1iiesxjajUqm6tphPTrur7IOBuUfdzbMr4MIL7pnyPoIqKbJY6BH1PHWkjjJLMURm4nunajRwfkM+igNxz96Sf01uwWVuGnpsrErQGOYXtivG1V50X9xodQAfKn8Trj0VhAPi77+8f5La1nKW1yrg+rzA9AafO2zWVR3nIrfRQu9q8cFy7dtdhmOfnIKOQliSZ7oZ3nX41Qc6aD1bjvIWIdBsCIujdOXV43aSOPLm0A2YiJp26iQBVCic0Ap2JN5jyIsdSGUt9wEe0f9OG4hJ9veuxcHBjqU4twS45CZtI8VhRm31qwdVW9m49gqcbFYNdMS5KmpyEsWaeRYuS6VwqTnDe0Qa1BpzXxwYU0ZFlpqsuLkxuW7VajgTB4zFYXW6cg2nzUfDswoyF9M424TJDrh9HVAgiCuGFqQp32VYBmeOoUab1dHiSHYeSq85nRwr1FrRV+vg+oUj/k4MnfKfrDywMZvZVM/s/zOzXzewbZvYf5cefmdn/bma/mf9/mh83M/uvzewfmdmvmtm/9IP+Js7X1z7aP6zISoFWlGwtma42EyVR6kA3QweWbixdhidL18zq6MFtiFXnyei7bxoljvnkT4MePG0CdIrtE+E/dbWyFtomrEnBXdFYcAxF2q84lCr5dkigfQLWFtytGU6CsbTCRZHPw3F1rQoDbt8GGFEHuKjBzRo0yy1CMcY6MNbzKjJzMRBguCbhazDladQiqjjA1rR1qVTJGUPKygyjxsichSiUIlXmbCpuxYo0JVVZGEMS1C6H4LB4Ap8m5WlV97KG1pPbKsn0ZGnEawIqO+VtpxKROgd1Qs1V3Pe5Zp1S3+Atg2yS7FVLsCuFsejgWML4+qvG11/3B4Cx0fiTN0C8vT5Px9CA/yQi/lngF4C/ZGZ/GvjPgL8dET8H/O38PcC/Bvxc/vcXgb/2fX/V/5jrax/ttesO/YD3qxZRqv6R/AaRYAKtsOK83TCxFbUeE5A3u6izhtDzqaob2ZpGFsuV1uriVqzumGeUGkZU8QPOyPdYSpqjBEM5yyph7R3QjXzo0HN/f16ndTTbH7IjWEOmJneLtjK9wUUoYWrvKgpLF2awG2CszlSdzahtRS3SUDweC/uTJe6iAjpWIY7bajlaqTiMNTdAXh7We2eBm7vW+zuDTZhwgiYjmCVJAcWkOC1E5nEKF7pfNdiVLCiWq8+xGJPBRSnUdO524NIEYpqpE1xwmsswJ8w4umd3Jw6FDQEuizpDS6qaqVct4Os3K1aMj+48E7H/5BaE8/UHEpwi4kPgw/z1nZn9OvAV4N8A/nx+2n8L/J/Af5of/+9C645fNLMnZvZj+XV+KNfXPjwA8HNf3OHpdDQWnTqEXJUnk7CqFHuw9x4Sl1DeoPIne+/0EvSiWXlIjMKSS6AHQ4zBSPtzih6SxaC6Hp7ZpQCdXV6DF4PJKyC/Nh5ZUOB6FG+/hbMdNEO7q+iMxRgxlqj4Cl+oejCiwk1EBuIEj7bKTtgUndSENBqXA8RgzKtwliWkdzilt8BFFaAqQVFQzNnVwppKQ2pkQIvs50pom1AHof1iT6mQXZiSuOcQuLopMrTxKGyrcz2JlNRdD6snj6Im7gGBVedmlZJ1LMoKPTQYilKuPHQIjMWYgO7OVa0y3EVFaBorx3O+6SKy29KDb9w4Hz+4LBWaf6b1+hN+fVcYg5n9U8C/CPwd4Evnhz3//8X8tK8A73/mr32QH/uhX7/54pi/0gZCuQrgLs8CsQ01z5rAcBm6oFOwhtZlYykP0tyz5Vi1s20Y4jtQmN05eXBqhX26CQVw3xU8O+cpFynu6RlMO4TJbSpdicTsDAaTke2YO8qroTKkT2EJqfkOzcGNOhSuNzAUTyWl8XhT86GptBRznV2qxS5Uy30ObN1kCy/L+0hcRaNVL9m/m0C9MTsIt/M2SAWCJDWBik2YAmF2g/CG7oVN8ey2BMZuRwW3zKGPnbqK9YBxakWrXodDMkp3QxKxMhjGTIXeLLUhlmvmoi3JKTuoZpHBuYXejY/v+kPn80+Kwu++Pjcl2syugP8J+I8j4tbOC+rv8Knf4WO/h6dgZn8RjRo/0Ou3Pjnwz3/5goLINsWkjnAXAxDExsNSg2FyDT5mASjJbmjJznM0x44egAw9lkiGnRIcCfqDdr+7UruDswOQRo84ux1rSGGyknwKgYCXg4xne6Lvg8n7spRCX2Bd9bmbrYpPqQIDI4oMZAL2a2esmslrFLKGYOEPzM3XR5GGaq4En+6MQmfx3O6g1zl3GAYlRI25aenFH0aawaSNGKxQBtnEU+V8dUQgJ1WGO6euwiIuCKkrKdyHckcx7Yh7bnXS/oQtReYu4bmmBCtGCa1Ym5czL4wWCkfe1nM+ZZHCtAT/8Famv2J18ceexfi9XJ+rYzCzERWF/z4i/uf88Mdm9mP55z8GvMiPfwB89TN//SeA3/n/f82I+OsR8Wc+L+HiD3P92keH3FfHgxnoWM4VTMj7WUmpzUSuMvNkPfa3yVgnlyfivuuktHI+iTvh8lVopCtQvDVMiZTwFs5irtRTIMryZEnQcp2UY9VOvQOnrlUhPjA3yxE4lMoVkSnZgImB6d0yoKWkZkCdz8LbVd7ajVOT6Kog74mhCMTrCezNISRmUwsXpSiSzSXJtiIsZaxn/wejDHpTR7T6m0xNxpPJGEwryJOryKxuRBq/3qzaVlxPyvDsEUQySaciP0+LwjHS5CWSbWqZYTqSKk4V+UimqZvGpBbaQoyl8Os3UpC+2K8PxKV/cv3e6/NsJQz4G8CvR8Rf/cwf/S3gL+Sv/wLwv3zm4/9ubid+AXjzw8QXfr/rax/utdNuOvnP2nwLSy8BPfwR2j4E0iQUhBtYAmU1d/PVHDOJgMxMeoeS9ubJimxIzVis5DyvVedUlMfZ0eF4Np7tIQR+7sFpNS5KZTcqzFcsRad35WUePSiZ11lyy9BD4N6xiRa8qTkuhE7fkjyLY08mYgbBdtM6kQp3s7F6xYpAv4taWEgmZCaNO5F9kRpxpUTrVjohocMJFdlHk1avZLFRSrkA1dtFWpHuKsLk+HCmhh8iWNB/pahw3zTZ409F3+9dd24Sx/BkTY72tnDMCChdAr72uvHJPvhkL3H+Z/UR/+T63dfnGSX+FeDfAb5uZr+SH/vPgf8S+Jtm9h8A3wb+rfyz/w3414F/hPxJ/r3v6yv+Q1xF8wTNXQ9USc1B0n5rgWUliVLaVMhO/bz716w75BrQMVoRS3BJF6MzVj/kaqQR8kOsXVmbplVmOYuFCvTwpGQDpna8uzYoFFJpCLixrs4amrPDYU32ZRRN9p7eEAWg6IE7ddjw1h5fz6fmjevJ/r/2zi7Gruu677+19zn3zgypDydOXcUOWsdw0RiFmxiGEyBFHtvGL25fivShzUOB9CEF2oc+uM1LXlu0fShQFEjQAGlRJCjQFjUKFOgHCjRF/e3Esj4sS7QkWxJFSiJFcmbu3HvOXqsP/3Xu0CIpUfKIMxTPHyA4urpD7jm8Z5+11/p/bLM29VcklSqbn2aVSuocIHkANX/37cFxdOcAY0nR5CSMg0EGsCufsiFl3gqqYnYqHKTj1uCFZZ1UkzriFQuWtbI/NIYIdq0QVTTqmsS1N8fGJkiZdRZONh0fFHILxreuNF65Phmp1K2Pwozb477XSrwX/PmPnKOgsJqh6SbbKcYqnJ7UUKAP1jKfTNikLZAGY2nks0jNPcsn1kZlCF1J+3EzHu4Q+7GozDaC5SJoY9lqNOQQrfn6OuRNCCI07ZbCMCqLc2mF/dE5tzsJl5wPLeUqFNZoXtkfRvqqG+XhTozLghOuP3sI9RV2LfjeleCwOR/qK7t98OiOsUxLvELRWAVZtDOxGJN0taw6WrTmIg11entzOByNGKR2fXgpW//BNZLdb7pWywqvHmgzPt8HP7mncTHkud+SHJJhQiWON/ApP2JZJQnXRpaM0/x3LgX+6HLjB9c2Mmi9X2Kg3j88OFqJ94LvXjpQtFkaiHooG9JCH+TpfNqXZFJaUJl8E4pSqLMnUa0y+GQS4/lZ1v+vprHfyo8j80YktGrNMhvB8s+RQeuhh4xZ0jhk14yDZtwYZYt2bQwWS0XNNeD8siTPwVhHldN1KXLVNoX5FBdzsu8zxAeF45oVSchRoE1XdD36Wll2hb7TxkaIy1FCdORGUKomIhGxJWDhZDCtbQlI4XA4pmuWqREaYVvvi0UV38JdTUTRqJ1zvdiXnY3K/QiNe89V2MkqZB3H4S/ZrySQOcxOLXzzavDStSbrtXlTeFe4r4xaThLfzVHmX/zonpyMUBlbsKTvHqv4SP79mN373jTdGFwNzRbG+U5HgpqjxwgYzVmmK5SFmGLrMfjwMkdkAYFzvog8NWTw7YHrLL9XgsOQBVxnWZ10hVKMw9bStUmvtZYmJSELuyEJRcrW0HqdnF6Q9u1h7JoxiNDI3qKwt4TlVFW4hFOANgcXZ2KnVDEUdV5hg2jeu6FpTzHfNjQ3BJvmWBrAuDvne1VQqjokRjvMdO9zORZtXqid0resSDHaoWYuGOfMOMxNrTfwLni4wjoqTvC1qyPPXh3VrJw3hXeNB3ZjmPDtlw/53MfO4dHAxb4bXR/q3mwrAJL/bBqehizNPfQhnkrqEoUuuQ4lacJjvmcIl8NRda4Nxt4kjPKShiiNZc33oYrlcJo+NN0QfQn6RTochUFoHHhk4vaPDXb7QktC1+EYPNwlJ8Mq+y1HtUgBaQb7Aee7YKdX5Pu6yaiWSBNbN4pVBoJhFPuyNRGSjvJaBEaPy/gkgqMcdbpBDcOLs07hVEs3JaqmExQ4v4CFBVc3UJeVw2Hkka7RAnaqiEwPV3DKNqKur8YjlsxMnKOQP8ZXXhswgwtvjLg3vN5xrD7jbfBAHiXeiiGCRsXD2B9lxTaEc9icdehDrXi1YzXhmJ1+iaM8ZcPq+BOybBtyJj+26byc1vOh5qK7Gn0r1xPtcFRJDbKFf2PV2B8Ug+ahKQI5ZViHs0ZnkHULrg/OgI40o6n0d4JhmhaknRmkvLzA9bXYjasR9upE/nLWrr7EmjwWTazH/LSM0ZT+nJJqxbRlQlhJEVmaxTrOMGoas2paQwtS3FbYjEbXFd4cdC1fHxz3wmEz+qKx8rmMEFQSqPoVXSkSUxUnTKHHX7msi//sGyNjVlhztfDe8MBXDAB//PIhn35sTyInz5Z+SnWLSXlIQM28iGqZRxkwNt2Qy6Lu/YAx4KybSuDpTL92p0ShFmcwWa4vTed1zFgh+fZeZ+xa4WDljINGoLs70jdQ1TMQ4WryNMxRI9nNL0mMcrEZVxtntJIMTujNWYeqg3GUpLkrsqjrUzh1kGX9elCFoaOVehq9mTgbVI0FQ94PzUSeWqe3ZG/6cC0obNauo5lLlCbtighde31w9VDHlitHzp8+l7ySmKhfsMLpvWR8veNWGFrLxrBIHM0r37+yAoqs19qZDX25LzBvDInHU1/x6Z8+R7HY9qpc00o5ImcIriPPBN18EkfVoqoCZIRKkYhq3VJDoD+N3Szt1008yXMpWHIzdjrdPDcOQm5I5tgkUca3o8gByZN7M9Yx3QDK2jwaxJosHYyTxVEJWjhjK4xRKBXeODQuH40Uk0nropeJy2SpcrjRRGDiSEweFu6ASXhd0UQgdK9zI+3WSgsamUKeNPBhhNKJxlyrpiNENhp3kkIeCh9+KMeW1xush+Nej5umQa2hPgQihH3t9ZELV8fUuMzU5pPAfJR4Cx5/5YChqSQfcpTbl8lXEkhRljvb1/qi8zdWkyiVcuBkElr6CvZW0nBW042+2NY/sqJkIx/SU9LUlNtdBEcEN1xMyrWrqtmE/ANWKb32/PuKqWTfuI4UXkIGrVYZCTBnHIODTWNhEoopUl4/2+glg1/T99I0fdm49CRH7nKwymbqJnMiN7rP6ZEDVXjTeyvsLDWGdDfCfOuPoZ+/qneCDGzWY2E09UEOcjRa0DGjxBQLp0nS/3tt5OtvjFy4Nm0KM13ppDBvDLfBk69qYqEHochOtYoZeUxk0ofXbIrFk5px2gDWPnXzI41mJ9+G6fvEpBwj6DudzWs2FUfXr50+I92TqbgJbQhTTqUHyooA+qoS3gArhcNB31dMJK5NKM7PHQ7zZxjCWRQpLA3VBL0F4YWRY/rxxrV5Td6KR8ja7qgp79GKPCQCjWOTO4VFcOjOZnTCJL92k/diDZHCHKkpMW1mq42qinXkeNdbbkDahA7y5v/6G43nrow89+aIjy7ThRknhvltmIhRAAAVm0lEQVQocQcU1GsYmjMA/TS6NKkds6eX5940Js0nfZiyF9dNTzZM83kNGQxchi3n63E+xV6Bg0HWdLId0wFhDGOTzc1dU7JSoWWqlBqVS4NzNdTMi9i6OSkt67hs94lvELE1P3UzdmxKdVDTEJoqCTIZuomZGS5/A4LUPKQhTk5oZE7r1OylrN1o7vS1ggc7pn7FlP0BoqSHaeMdshI6GIzSpdK0FAUWu65Bb5V1OM9d1Uh03PoxJq11xolg3hjugCcvqefwcx/Z3Soei5Wtn4NPFUE+a/uqryd1X1a/1KJJxCagi2Q4ApjyKCvyJbzaDEZxIfoKu72mB+4qucknt5tEUJOxCuiGn0aELeSUXUzuyB5iW46WsWweHKwnazr4qR3jKPUbtNgeSTZT8zUafZGXpAObcXLBko2aJc/CijZMt4KH05IrYWEcjShiHt2+U0PWjC05aq+zrcHswRjsNBG+xnBJ4020ZyJ46ppKH996LM0bwknjgaREvxf8hcf2VLLnTR9opj82lQ4qy8VmhGNDl8GzzCfASvoZTgh2u8J6Pd3k+oA/upsUX0SxLgR9LXgYiyLOwhBKnRJlWVDgm6qQvpTtZlaQgQvAlU1wdT9j5yx47OEfpWoXRA0vW7Jg/rDpIB3bZaoZuTS2tO6G0WcdsygybMV0tBgb+CC7u92F1j6JQrV2NWpf2VfPBuDRHTjfGYMZ377aKBE8/+YmMz95oK3X3iNmSvRJ44mLh1JnJsnJgbGpWnA0ljRTP0F+ik3nZwvG7EFgyX500bHXDVYjWNWTeqc3HlroqX/gsjrv0kIuGmCuJ3layrUwgsro+mfc5FM5B4Kpl2iEibq8asHB5iZzkwq7HeyZ+huW/YLRZZ46ptrUYeuENVG9l8V4qCspZy8YhQ1yv2pWaGm7NhVQtaIJixmbIbbW/oZIZB3BblU69hg6cV3bqPfynauNF6+uef7KhpbU83lTeH8xbwzvAk9fOoTIFKRsHHpMFYB8CokKaMJQKZnZkM7So8xMlPAc7HRyVhqyF+FO5kCyzbAgjjUXox9vCJa8AZIWHK3eJDfW03yIRi1FKdVuXN8Y46AjQK3BzsI4bOIgjIWtfd1ONfZqipFMm5OZnJwWyBOz5SbQmwxTNmn0MnLsE7FIQlhg1DAoGtGuQ5tBIKKW3JXS8KZ3lp2uRVcKj78ZPH9V2s558nDvMPcY3iV0Y07PQTKzAoXCNqRJEM9IN7mrYK4EoxeKORuU1TA2ff9qCPY63ZzVRDduYWmNHrhVRneW2nMYcXEMQjZopUY2GzU16XJsmdNG2b4T7G9EJw4kqtrtRUWesieHaLhXqMHYLMNeTZZoQYb5OlF0IDoYg115wqeZrhZo4ZmAbeyUoIZGlJ1p1NjV4CiCHcuxbbJEPXsWu31h3Yzv32i8cn1NM01rImbK0r3CXDG8Szz16qFcotOz0PNsnMMHnbDTpk2c/uk75UlYi+jIowwdGEcJs2qNzLlAhi9FJiYUUZBlApOyY5s4FMpsrFIziz+RvgoWFYsqtWOr7A/BuulJbwV2u6Cvnn0FMjWrptBLo0TLacoi+wbr6SgVGjlaBAeD7OQ32auyEPNgGn0exWTbXqgVzvUhYRTqQRiwzookEGFsdwGXBw1MVSVog5xx7zBvDO8BT716KBlyPpVruiMdE42CMeT6VFCXf5yqCAAqnpuJexOhKWxbVWyaGIRTkO7o2nAOU805hfOaSedhaSDT15IOUlPwritPwYKrKyNCzcndAo/sgLkck2VskkYtoX6B0rinI4t0CVaChVWRnVAovRWxMGtSpnWD63gzhfsejdJqFDPWJjHUqpkIXVklBLpuYc5T15yX3hy5uL9JQRrMk4d7i/ko8R7x1KsaZ37mo+dkmOLaAOA4IXs0leSYbvKWHX7VGSLsbEzhtotiHKXZ66oFS9ONe2xurps3KNRQow9kuVbCaSZ7+UJJo9dgNegm3V9n2nZxFtXY3ZEycq+qCuhN5CWQgnMK/wURqIakei+L8id2S6EU3c0q7sVFWBT1BlpughFGK1JCTjwEzOgWgQ+WmZRwiPPdq/o5X7yy3qpH56PD6WGuGH5MfOvlA7598RBjIvnoddnVl6Qg2dbX0Ez5EyPBUY7dNk0Gq+vRcG+c63TD2BRoU2CdZbWlb5ThLMzVpMxKxE03eoSxaWI/robKZshJiclvcd1UYaxG3cjrUHzd1jB3y4SERanJH0jdCOJErLyksa7CaHbSOWlK5EoeFJEmNgasXCxPKwr88SgyxbWKY7x4ZS2rvYh5UzhlzBXDCaJPyzE93SdNhNSWJSPUaFAmNaTpe4pJB1FMkW3dVF00ma72ZkS40piKQmCG/LNXnlRo10bkJhl18+BwIxbjJDg63/tW9KU4eJO1fQsmN9Yg5MCkRz61Om46rmgMqqlKNVGpCzrupFNFWszlCLYpiMcp6Q9ZOGoSe/V9oTUo0XHhuvPDK0caRW6JW3NP4TQxVwwnhCcvHSjnMsRTyGhUMNLCXXZsNUcFHpomYFB7Uwxcgb1OFvfbjQWTnwOiRktIpabgOqcJFoWdTjkZgURU146Uzj1klfLIIji309F1ENFYj+pDyPBWR59Am01fUk6d4TLVjN2J55TJ0pYN1qkyWDX1DpToVbDo2Kk6LhgujwicnXSu3jTFAz57vXHhso4PmkROLJEZp4l5YzhBPPHKAdWMHVO2pWjRsS3Bqw7ZRJ7JzQq1y9DY6tJXGIxmqTDUMaLWQpcl+tqdjctWbkRqxUVVu6+ajgmbkTxuBIta2K1OrfJpqKVQu6psy+m/rdBRWbVMoM4jh9uxa7Pn8WD6FTgdSokSISnj5aywJjjIUJgppt5CG9G+w4qgdvDyCn5wZZNj0nlDOEuYN4YTxhMXDxgpGVAjjXVv6r6vPJ/SafIwRd7JXVqKxo5C9di6To9x3D+gKMF5URT7bm4MURmR4ex6hKNBhi8RBkXR8IuF4Sl2Gj1wC3Z7bVYHo4L0zIKdItemUc0Qds2oNKxUcSmiEFbRAeHYt3LqMwQiKSnOT30Rp+BUvBS8iANy4RpcuAEX3jhimHsJZxJzj+F9wFOvHgDw2Y+doysTXVkiqsGCwZxlT4qTxJhcGCy7ZEoWWI+NRadmIJH28AQlmZXW6YkNcP0IDjYiNh0OxwKqc32w7CpDSPJckTW8bubKbg+tOTdGCcN6k2ais0KJoJkrQwIIGl0vP4SulDS8ddZFWRGjaV7bo/5Ebwq/Ud0S6Zlp/N/nj7TRjbME6ixj3hjeR/RVk4oh/QxaSLxUTRRhxbxF5mKWbfDN4NI5gJ7GStMWxXnK0FyiUWYJBcqsRjEul8XoaqHvGmMpnDNYhWJqx0hj2Sz7H6q6edV71NGkq0nPTgXkmJXL0jrWMWgzQ1qKZS30qMroQirQPmvQlUOX5K6hySjipRtNuRs+bwZnHfNR4n3El1/cVyrzKAeoRTFaOJN92uSWVLPZCNJTmE1W9RpfmoXYj0ikZWUiRMFqY2JRojwFB/raqLVSrbCf+gpNSHJsGcG5MhnQqOcxujYAMRdlJVcz3anirCLorLJJYZWldiPIn63quDOS/Q2T1NoDXtpvvLzfeP7SEaQce94azjbmiuF9xjd/qGPFz33kPKAUK7XuNA4cyKzFohsOS8UhmvuLsZDkqTx2DOEMGH0UjkZnPWZqtsH53uiWlaHJrMUzXwKOxV6GM6bEukvy1RCT65LMYSNDXszACyzCFWtXVEXsmbP2YKd0YCJYhUvsRQSLUjgieOFNbQAvvn7E2udS4X7BXDHcIzx9aT+5API2dELuRa4GHckajLRcN3M8pwoeU+5kNvuiEK3y5qZxmOYm0iIEe0tNETpTX6NaZlqGSntpOaqIVpZJ211WCS77uDEboxtkLBM5lfAUM/XAhsJe1xEmG3t5WUZOQlRxvHR95MXLA89fPmI9uNSj885wX2DeGO4hnrp4Q25EOXp004SgK2L7jZkW5Tnas1K2Z/wxTNOA9JBcM7BeaxLQgEVxzi2OtQfT8UTxd4VFmfwjsuxHx5G1w0il74uOLK7x4rpZriNl5nTsmpicY8gWfkzh2KLcxJwsYkb21Xj+tTXQGDzNJudN4b7BfJS4x3jq0j6f/uh5HlooVamaMt+74kxWA8VKZisoVXtpRQnV+UzeOKxWOm4s8ly/2LGMvNfxoJYgmo4EhSCK+hq7RQlXYSiwJZWQZvDQsjA048iD8500ExQopYIXGiO7nWXsRjBiNK80HApsovLm/ggGz7yy5mA9sRfnDeF+w1wxnAIef3kfd5m3tjRjGVpB/xzq4BdTIA0R2ekPhmg018jQXdODTcD5nUKhqLGZVOcWysxp2ccgVRvDVGNEo1jmSSbFGbP0kJje3wOF1oIWg4xoUKWzDsenRKoiksVr+43vXlrzzKtrVoNTaUwyqxn3F+aN4ZTw5RduQFKFhhRTYQ6m6LpDz7GllawcdC7Y3wQ3jjxdqY3zC6VXAVAKLZpyOKnslDRwCZhM1prDsnTUUsGcvU5u1WSUfCkGJbjWgsMY5QYdgVMZAgYahw3lWYapUmjw+n5w4eIRjrO/dgYf5i3hPsa8MZwivvH8NboedjujeXDUZNXezOgxaqmUmGSKMlCBKS9CvQLKTUlXDrUown6qHIYQ87JaSd2GjinNAqKy34z9CI5w1jhuzjrdorVxFbk6m/7/oLMFHtq0ShhvrIJnXl1xNI5s1o75cLsfd8Z9hHljOGX80feusc4JRNUZIjv3iqDzIlu1YQxWgzM22bd3Fjy0Yyy7ylEjg21IebSx9nZciaAnPSjXYfApWcspEax9anrquFEQWamWoOEMUWihXkdv+vspCtV5eT/47itHHA4NvDK4zZXCBwBz8/EM4GvP3QDgFz/xCHihrzqZt1CoymuHzjjquNBVTTUe3Z0I0WI5SjZdaDQdO6xsexN9AUx9B9nKq4eBARjF0wrflYFRisanysk0utIYQ0ePAGjBxeueU4fC+khbwcBcKXxQ8I4Vg5n9jJn9bzN72syeNLO/n6//tpm9bGZ/kr8+f9P3/CMze87MnjGzv/J+/gAfJHz1wrXt0WAIGJI5ODa7aUJgPLprlJIGqqFNoZgyLWpR0GsLeTmUAgN+HFBjAaamoVswIO9HyP4CjpulxqNuJeJLU25FpfDGIbz42pr10FgPQ25Gc53wQcI7Bs6Y2WPAYxHxLTN7CPgm8NeAvwHsR8Q/e8v7PwX8AfA54KeB/wn8uXgbS577IXDmXuIXP/HIdlrhwJuHbZvetLfUDbzTKeeBkL1732UDIiqHHiw7w5ttq4auyly2GZDlfl+SqejQTJtCQc7WgYJyIp2iAa4dBc2D5189Yr3R3zfMdu73E04ucCYiLkbEt/LrG8DTwEff5lu+APxhRKwj4nngObRJzLhLfPXCtbRBgjdXnqGvxt6ysFeLMiBzmx0CKTajMmDsj8ayKDcTZEPfIh2bEFlJhqzaWIqZGpFsSRTKlsykqNrJ7LX0Onp8/9KK1SDS0pzx8MHFu2o+mtmfBX4B+Gq+9PfM7HEz+z0z+1C+9lHghzd920vcZiMxs98ws2+Y2Tfe9aofAHzj+WvcWCVhsBgDjdrBYHq6N8jjg97jbgxjAQv2m7M0OUDLkUk8g+bGkR9bp60JDj22ydylSDI9JWh5gVIKpTYuX3cuvHrE0cZpyq6bDw8fYNz1xmBm54H/CPyDiLgO/GvgE8DPAxeBfz699TbffstRISJ+JyI+e7elzYOIZy5ep6/KgtjtO/pqSoVOF6V1NKoGGRw2EY8aTssbHuDQm6TfeMq55Z/QTGSqGkFvCrtQ3kVALRSrW9n0lRX84NUjjg58CrSc8QHHXU0lzKxHm8K/j4j/BBARl276/78L/Nf8z5eAn7np2z8GvHIiq30A8ezFG/zCJx6hL8bgTotCwTiKBslsVFILgMxdN66x5LpBw7nWjM4LtSocp0+LuWLOUCrLOrIeK0OBZSkUh8uHspV/5pVDVpsx94N5U3hQcDdTCQP+DfB0RPyLm15/7Ka3/XXgifz6S8CvmdnSzD4OfBL42skt+cHDH1+4RjVFy9cSYkgmaglK1fixZUblkPLt4SbX5SGUNqXRpfTVa9ckw71QauDhUJ3XV8ELFw94+uVpU5ipzQ8a7qZi+GXgbwHfMbM/ydf+MfA3zezn0fPqBeDvAkTEk2b2H4CnkL7nN99uIjHj7vDl710H4LOffEQ+kl1JdqKOFc1lxLpq8plclCljUzqIWibL+LbdIJb5Z9RiDM2oVW7PMlSB9TBu+wkzHiy847jynizC7DXgAHj9tNdyF/gw98c64f5Z67zOk8ft1vpnIuKn7uabz8TGAGBm37gfGpH3yzrh/lnrvM6Tx4+71lkrMWPGjFswbwwzZsy4BWdpY/id017AXeJ+WSfcP2ud13ny+LHWemZ6DDNmzDg7OEsVw4wZM84ITn1jMLO/mvLs58zsi6e9nrfCzF4ws++ktPwb+dpPmNn/MLNn8/cPvdOf8z6s6/fM7LKZPXHTa7ddlwn/Mq/x42b2mTOw1jMn238bi4EzdV3viRVCRJzaL6ACF4CfBRbAt4FPneaabrPGF4APv+W1fwp8Mb/+IvBPTmFdvwJ8BnjindYFfB74b0jH8kvAV8/AWn8b+Ie3ee+n8nOwBD6en496j9b5GPCZ/Poh4Hu5njN1Xd9mnSd2TU+7Yvgc8FxEfD8iNsAfItn2WccXgN/Pr38f+VPcU0TE/wGuvOXlO63rC8C/DeErwKNvobS/r7jDWu+EU5Ptx50tBs7UdX2bdd4J7/qanvbGcFcS7VNGAP/dzL5pZr+Rr30kIi6C/pGAP3Vqq/tR3GldZ/U6v2fZ/vuNt1gMnNnrepJWCDfjtDeGu5JonzJ+OSI+A/wq8Jtm9iunvaD3gLN4nX8s2f77idtYDNzxrbd57Z6t9aStEG7GaW8MZ16iHRGv5O+Xgf+MSrBLU8mYv18+vRX+CO60rjN3nSPiUkS0iHDgdzkubU91rbezGOAMXtc7WSGc1DU97Y3h68AnzezjZrYAfg3Jts8EzOxc+lxiZueAv4zk5V8Cfj3f9uvAfzmdFd6CO63rS8Dfzi76LwHXptL4tHAWZft3shjgjF3XO63zRK/pveiivkOH9fOoq3oB+K3TXs9b1vazqJv7beDJaX3ATwL/C3g2f/+JU1jbH6BycUBPhL9zp3WhUvJf5TX+DvDZM7DWf5dreTw/uI/d9P7fyrU+A/zqPVznX0Il9uPAn+Svz5+16/o26zyxazozH2fMmHELTvsoMWPGjDOIeWOYMWPGLZg3hhkzZtyCeWOYMWPGLZg3hhkzZtyCeWOYMWPGLZg3hhkzZtyCeWOYMWPGLfj/rylAtuQbj2EAAAAASUVORK5CYII=\n",
"text/plain": [
"