From 004492400f670439070cd78759c36a452e28a17b Mon Sep 17 00:00:00 2001 From: Muhammad Ammar Nabil Date: Tue, 29 Aug 2023 17:29:53 +0700 Subject: [PATCH] Upload C3W1 Lab 2 (Transfer Learning 2) --- ..._W1_Lab_2_Transfer_Learning_CIFAR_10.ipynb | 715 ++++++++++++++++++ 1 file changed, 715 insertions(+) create mode 100644 Advanced Computer Vision with Tensorflow/Week 1/C3_W1_Lab_2_Transfer_Learning_CIFAR_10.ipynb diff --git a/Advanced Computer Vision with Tensorflow/Week 1/C3_W1_Lab_2_Transfer_Learning_CIFAR_10.ipynb b/Advanced Computer Vision with Tensorflow/Week 1/C3_W1_Lab_2_Transfer_Learning_CIFAR_10.ipynb new file mode 100644 index 0000000..988b87b --- /dev/null +++ b/Advanced Computer Vision with Tensorflow/Week 1/C3_W1_Lab_2_Transfer_Learning_CIFAR_10.ipynb @@ -0,0 +1,715 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [], + "gpuType": "T4", + "include_colab_link": true + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.4" + }, + "accelerator": "GPU" + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "FStp_vbUkRz5" + }, + "source": [ + "\n", + "\n", + "\n", + "# Transfer Learning\n", + "In this notebook, you will perform transfer learning to train CIFAR-10 dataset on ResNet50 model available in Keras.\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "qpiJj8ym0v0-" + }, + "source": [ + "## Imports" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "AoilhmYe1b5t", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "2c1b6285-16dd-49fb-f6e6-0b8ba130ba16" + }, + "source": [ + "import os\n", + "import numpy as np\n", + "try:\n", + " # %tensorflow_version only exists in Colab.\n", + " %tensorflow_version 2.x\n", + "except Exception:\n", + " pass\n", + "import tensorflow as tf\n", + "from matplotlib import pyplot as plt\n", + "\n", + "print(\"Tensorflow version \" + tf.__version__)" + ], + "execution_count": 1, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Colab only includes TensorFlow 2.x; %tensorflow_version has no effect.\n", + "Tensorflow version 2.12.0\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "HuG_q_1jkaZ6" + }, + "source": [ + "## Parameters" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "v4ocPhg6J_xw" + }, + "source": [ + "- Define the batch size\n", + "- Define the class (category) names" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "cCpkS9C_H7Tl" + }, + "source": [ + "BATCH_SIZE: int = 32\n", + "classes: list = [\n", + " 'airplane',\n", + " 'automobile',\n", + " 'bird',\n", + " 'cat',\n", + " 'deer',\n", + " 'dog',\n", + " 'frog',\n", + " 'horse',\n", + " 'ship',\n", + " 'truck'\n", + "]" + ], + "execution_count": 2, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "O-o96NnyJ_xx" + }, + "source": [ + "Define some functions that will help you to create some visualizations. (These will be used later)" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "CfFqJxrzoj5Q" + }, + "source": [ + "#@title Visualization Utilities[RUN ME]\n", + "#Matplotlib config\n", + "plt.rc('image', cmap='gray')\n", + "plt.rc('grid', linewidth=0)\n", + "plt.rc('xtick', top=False, bottom=False, labelsize='large')\n", + "plt.rc('ytick', left=False, right=False, labelsize='large')\n", + "plt.rc('axes', facecolor='F8F8F8', titlesize=\"large\", edgecolor='white')\n", + "plt.rc('text', color='a8151a')\n", + "# Matplotlib fonts\n", + "plt.rc('figure', facecolor='F0F0F0')\n", + "MATPLOTLIB_FONT_DIR: str = os.path.join(\n", + " os.path.dirname(plt.__file__), \"mpl-data/fonts/ttf\"\n", + ")\n", + "\n", + "# utility to display a row of digits with their predictions\n", + "def display_images(\n", + " digits: np.ndarray,\n", + " predictions: np.ndarray,\n", + " labels: np.ndarray,\n", + " title: str\n", + ") -> None:\n", + " n: int = 10\n", + "\n", + " indexes: np.ndarray = np.random.choice(len(predictions), size=n)\n", + " n_digits: np.ndarray = digits[indexes]\n", + " n_predictions: np.ndarray = predictions[indexes]\n", + " n_predictions = n_predictions.reshape((n,))\n", + "\n", + " fig: plt.Figure = plt.figure(figsize=(20, 4))\n", + " plt.title(title)\n", + " plt.yticks([])\n", + " plt.xticks([])\n", + "\n", + " for i in range(10):\n", + " fig.add_subplot(1, 10, i+1)\n", + " class_index: np.uint8 = n_predictions[i]\n", + "\n", + " plt.xlabel(classes[class_index])\n", + " plt.xticks([])\n", + " plt.yticks([])\n", + " plt.imshow(n_digits[i])\n", + "\n", + "# utility to display training and validation curves\n", + "def plot_metrics(metric_name: str, title: str, ylim: int=5) -> None:\n", + " plt.title(title)\n", + " plt.ylim(0,ylim)\n", + " plt.plot(history.history[metric_name], color='blue', label=metric_name)\n", + " plt.plot(\n", + " history.history['val_' + metric_name],\n", + " color='green',\n", + " label=f'val_{metric_name}'\n", + " )" + ], + "execution_count": 38, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "wPq4Sw5akosT" + }, + "source": [ + "## Loading and Preprocessing Data\n", + "[CIFAR-10](https://www.cs.toronto.edu/~kriz/cifar.html) dataset has 32 x 32 RGB images belonging to 10 classes. You will load the dataset from Keras." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "E103YDdQ8NNq", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "81e5cac3-454d-4fa8-db65-7c120e78c329" + }, + "source": [ + "training_images: np.ndarray\n", + "training_labels: np.ndarray\n", + "validation_images: np.ndarray\n", + "validation_labels: np.ndarray\n", + "(\n", + " training_images, training_labels\n", + ") , (\n", + " validation_images, validation_labels\n", + ") = tf.keras.datasets.cifar10.load_data()" + ], + "execution_count": 17, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "training_images: \n" + ] + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "prd944ThNavt" + }, + "source": [ + "### Visualize Dataset\n", + "\n", + "Use the `display_image` to view some of the images and their class labels." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "UiokWTuKo88c", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 313 + }, + "outputId": "21628f6f-6666-44ad-8f2e-8f76242764ed" + }, + "source": [ + "display_images(\n", + " training_images, training_labels, training_labels, \"Training Data\"\n", + ")" + ], + "execution_count": 39, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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tZvCyIYNGzRo0CB16dLF2D5ixAhJ0saNGxudl0wm9d577+mMM87I2Dd8+HB99NFHOnToUNsv+Cg50vPweaeffrr69eunPn366Dvf+Y4+/fTTo7LW9mrDhg0aNmyYvF4z3sOHD1dtba22bdtmvNftuSNzbaOluSNz9chd63Gtyx65az1ylx0y1zb4jc0OuWs9rnXZI3etx7UuO2SubZC77JC71svmNxY42tpNj5HKyspGq40N2yoqKhqdd+DAAUUikUbnlpaWpud27ty5DVd79BzpeZCkoqIiXX/99Ro1apRyc3O1cuVK/fa3v9W6deu0dOnSjAv3saqyslJf+tKXMrZ/Pg9Dhw5Nv9ftuSNzbaOluSNz9chd63Gtyx65az1ylx0y1zb4jc0OuWs9rnXZI3etx7UuO2SubZC77JC71svmNxY42tpNYaSurk6BQCBjezAYTO9vap6kRuc2bGtqbnt0pOdBkm688UZjPGHCBI0YMULXX3+95syZo1tuuaVtF9tONXUOG8sDuSNzbaWluSNz9chd63Gtyx65az1ylx0y1zb4jc0OuWs9rnXZI3etx7UuO2SubZC77JC71svmNxY42trNo7Ty8vIafY5cOBxO729qnqRG5zZsa2pue3Sk56EpkyZNUklJiZYtW9YWy+sQmjqHjeWB3JG5ttLS3JG5euSu9bjWZY/ctR65yw6Zaxv8xmaH3LUe17rskbvW41qXHTLXNshddshd62XzGwscbe2mMFJSUqLKysqM7Q3bGm6psuratasCgUCjcxtuYWtqbnt0pOfhcI477jgdOHCg1WvrKJo6h43lgdyRubbS0tyRuXrkrvW41mWP3LUeucsOmWsb/MZmh9y1Hte67JG71uNalx0y1zbIXXbIXetl8xsLHG3tpjBSVlambdu2qaqqyti+du3a9P7GeL1enXLKKXrnnXcy9q1bt079+/fvMM8qlI78PDQllUppx44d6t69e5utsb0rKyvTu+++q2QyaWxft26d8vPzNWjQIOO9bs8dmWsbLc0dmatH7lqPa132yF3rkbvskLm2wW9sdshd63Gtyx65az2uddkhc22D3GWH3LVeNr+xwNHWbgojEyZMUCKR0Ny5c9PbIpGI5s+fr5EjR6pPnz6SpPLycm3ZsiVj7ttvv21caLdu3ao333xTl1xyiS3rbyutOQ979+7NON6cOXO0d+9ejRs37ugu3CEVFRXasmWLYrFYetuECRP06aefasmSJelt+/bt04svvqgLLrjAeJYhuSNzR6I1uSNz9chddrjWtQ1ylx1y13pkLnv8xrYeucsO17q2Qe6yw7Wu9chc9shd65G77LT2NxY42jyhUCjl9CIaTJ48WS+//LJuuukmDRgwQAsWLNC6deu0ePFijRkzRpJ04YUXasWKFQqFQul5hw4d0plnnqnq6mpNnTpVfr9fjz/+uBKJhJYvX97hKq9Heh569eqliRMn6pRTTlEwGNSqVav0wgsv6NRTT9Vf/vIX5efnO/SNjsyTTz6pgwcPqqKiQnPmzNH48eN12mmnSZK+853vqLCwUDfeeKMWLFigd999V8cff7wkKZFI6IILLtCmTZs0depUFRcXa86cOdq5c6def/11DR482PgcckfmPs+O3JG5euSuHtc6e5G7euTOPmTuM/zG2ofc1eNaZy9yV49rnX3I3GfInX3IXT27fmOBo8nv9AI+b/bs2br33nu1cOFChUIhDR06VAsXLkxfWJrSuXNnvfzyy/rxj3+sBx98UMlkUmPGjNGsWbM63AVWOvLzMGnSJK1evVpLlixROBxW3759NW3aNN16660d7gIrSb/61a9UXl6eHi9ZsiRdUf7617+uwsLCRuf5fD49//zzuuuuu/TrX/9a4XBYZ5xxhh5//PFGL7Dkjsx9nh25I3P1yF09rnX2Inf1yJ19yNxn+I21D7mrx7XOXuSuHtc6+5C5z5A7+5C7enb9xgJHU7u6YwQAAAAAAAAAAOBoajc9RgAAAAAAAAAAAI42CiMAAAAAAAAAAMA1KIwAAAAAAAAAAADXoDACAAAAAAAAAABcg8IIAAAAAAAAAABwDQojAAAAAAAAAADANSiMAAAAAAAAAAAA16AwAgAAAAAAAAAAXIPCCAAAAAAAAAAAcA0KIwAAAAAAAAAAwDUojAAAAAAAAAAAANegMAIAAAAAAAAAAFyDwggAAAAAAAAAAHCN/w8HZW6LjC+EKwAAAABJRU5ErkJggg==\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "-q35q41KNfxH", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 313 + }, + "outputId": "558cd810-df4d-4f32-cd67-9d0a17296eda" + }, + "source": [ + "display_images(\n", + " validation_images, validation_labels, validation_labels, \"Training Data\"\n", + ")" + ], + "execution_count": 40, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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AAAAAG1WKBRyegloJfz+xDtv6sOMEQAAAAAAAAAA4Bo0RgAAAAAAAAAAgGvQGAEAAAAAAAAAAK5BYwQAAAAAAAAAALgGjREAAAAAAAAAANqASy65RHfddZfTy2jzaIwAAAAAAAAAAADXoDECAAAAAAAAAABcg8YIAAAAAAAAAACtTFlZmW666SZlZWWpd+/e+t3vfmfsP3bsmG666Sbl5OSoY8eO+sY3vqHt27cbj1mwYIH69eunjh076pprrtG8efOUnZ1t46tonWiMAAAAAAAAAADQytxzzz1as2aNXnzxRb3yyitavXq1Nm/eHNt/yy236L333tOf/vQnvf3224pGo5owYYKqq6slSf/61780ffp03X777Vq/fr3GjRunBx980KFX07okOb0AAAAAAAAAAADwudLSUj3zzDN6+umnddFFF0mS/vCHP6hfv36SpO3bt+uVV17RypUrNXr0aEnSM888o/79++vll1/WVVddpSeeeEJf+9rXNHPmTEnSgAEDtG7dOv3tb39z5kW1ItwxAgAAAAAAAABAK7Jz505VVVXp3HPPjW3r1KmTBg4cKEn69NNPlZSUpFGjRsX2Z2VlaeDAgfr0008lSVu3btXIkSON837xfG5GYwQAAAAAAAAAALgGjREAAAAAAAAAAFqRvn37Kjk5WRs2bIhtO3bsmLZt2yZJGjRokGpqarR+/frY/iNHjmjr1q0688wzJUkDBw7Upk2bjPNu3LjRhtW3fjRGAAAAAAAAAABoRTIyMjRlyhTdc889WrlypT7++GPdcsst8npr/6Tfv39/jR8/XrfddpvWrl2rvLw83XjjjerevbvGjx8vSZo2bZpee+01zZs3T9u3b9fvf/97vfHGG/J4PE6+tFaBxggAAAAAAAAAAK3M3LlzNWbMGF111VX6+te/rvPOO0/Dhg2L7X/qqac0bNgwXXnllbrgggsUjUa1fPlyJScnS5LOO+88PfLII3r44Yd17rnn6u9//7umT5+uQCDg1EtqNTzBYDDq9CJORGZmpkKhkNPLQCvg9/tty4Kdz4XWza4skDl8EbmD3fiMhRO41sEJ5A52I3NwArmD3chC6zRt2jRt2bJFb731ltNLOSn8fr+KiooafVySDWsBAAAAAAAAAAA2++1vf6tx48YpPT1dr7/+uhYtWqR58+Y5vSzH0RgBAAAAAAAAAOAU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\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "validation_images[0].astype('float32').shape" + ], + "metadata": { + "id": "6iIw-0ousl1C", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "b206d13e-f71c-4029-807a-becd84d7b6f4" + }, + "execution_count": 7, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(32, 32, 3)" + ] + }, + "metadata": {}, + "execution_count": 7 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ltKfwrCVNuIu" + }, + "source": [ + "### Preprocess Dataset\n", + "Here, you'll perform normalization on images in training and validation set.\n", + "- You'll use the function [preprocess_input](https://github.com/keras-team/keras-applications/blob/master/keras_applications/resnet50.py) from the ResNet50 model in Keras." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "JIxdiJVKArC6" + }, + "source": [ + "def preprocess_image_input(input_images: np.ndarray) -> np.ndarray:\n", + " input_images = input_images.astype('float32')\n", + " output_ims: np.ndarray = tf.keras.applications.resnet50.preprocess_input(\n", + " input_images\n", + " )\n", + " return output_ims\n" + ], + "execution_count": 27, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "QOqjKzgAEU-Z" + }, + "source": [ + "train_X: np.ndarray = preprocess_image_input(training_images)\n", + "valid_X: np.ndarray = preprocess_image_input(validation_images)" + ], + "execution_count": 28, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "2fooPL9Gkuox" + }, + "source": [ + "## Define the Network\n", + "You will be performing transfer learning on **ResNet50** available in Keras.\n", + "- You'll load pre-trained **imagenet weights** to the model.\n", + "- You'll choose to retain all layers of **ResNet50** along with the final classification layers." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "56y8UNFQIVwj", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "351cf77b-357b-418b-9398-dcf084f268c0" + }, + "source": [ + "'''\n", + "Feature Extraction is performed by ResNet50 pretrained on imagenet weights.\n", + "Input size is 224 x 224.\n", + "'''\n", + "def feature_extractor(inputs: tf.Tensor) -> tf.Tensor:\n", + " feature_extractor: tf.Tensor = tf.keras.applications.resnet.ResNet50(\n", + " input_shape=(224, 224, 3), include_top=False, weights='imagenet'\n", + " )(inputs)\n", + "\n", + " return feature_extractor\n", + "\n", + "\n", + "'''\n", + "Defines final dense layers and subsequent softmax layer for classification.\n", + "'''\n", + "def classifier(inputs: tf.Tensor) -> tf.Tensor:\n", + " x: tf.Tensor = tf.keras.layers.GlobalAveragePooling2D()(inputs)\n", + " x = tf.keras.layers.Flatten()(x)\n", + " x = tf.keras.layers.Dense(1024, activation=\"relu\")(x)\n", + " x = tf.keras.layers.Dense(512, activation=\"relu\")(x)\n", + " x = tf.keras.layers.Dense(10, activation=\"softmax\", name=\"classification\")(x)\n", + " return x\n", + "\n", + "'''\n", + "Since input image size is (32 x 32), first upsample the image by factor of\n", + "(7x7) to transform it to (224 x 224). Connect the feature extraction and\n", + "\"classifier\" layers to build the model.\n", + "'''\n", + "def final_model(inputs: tf.Tensor) -> tf.Tensor:\n", + " resize: tf.Tensor = tf.keras.layers.UpSampling2D(size=(7,7))(inputs)\n", + "\n", + " resnet_feature_extractor: tf.Tensor = feature_extractor(resize)\n", + " classification_output: tf.Tensor = classifier(resnet_feature_extractor)\n", + "\n", + " return classification_output\n", + "\n", + "'''\n", + "Define the model and compile it.\n", + "Use Stochastic Gradient Descent as the optimizer.\n", + "Use Sparse Categorical CrossEntropy as the loss function.\n", + "'''\n", + "def define_compile_model() -> tf.keras.Model:\n", + " inputs: tf.Tensor = tf.keras.layers.Input(shape=(32,32,3))\n", + "\n", + " classification_output: tf.Tensor = final_model(inputs)\n", + " model: tf.keras.Model = tf.keras.Model(\n", + " inputs=inputs, outputs=classification_output\n", + " )\n", + "\n", + " model.compile(\n", + " optimizer='SGD',\n", + " loss='sparse_categorical_crossentropy',\n", + " metrics = ['accuracy']\n", + " )\n", + "\n", + " return model\n", + "\n", + "\n", + "model: tf.keras.Model = define_compile_model()\n", + "\n", + "model.summary()" + ], + "execution_count": 30, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Model: \"model_2\"\n", + "_________________________________________________________________\n", + " Layer (type) Output Shape Param # \n", + "=================================================================\n", + " input_5 (InputLayer) [(None, 32, 32, 3)] 0 \n", + " \n", + " up_sampling2d_2 (UpSampling (None, 224, 224, 3) 0 \n", + " 2D) \n", + " \n", + " resnet50 (Functional) (None, 7, 7, 2048) 23587712 \n", + " \n", + " global_average_pooling2d_2 (None, 2048) 0 \n", + " (GlobalAveragePooling2D) \n", + " \n", + " flatten_2 (Flatten) (None, 2048) 0 \n", + " \n", + " dense_4 (Dense) (None, 1024) 2098176 \n", + " \n", + " dense_5 (Dense) (None, 512) 524800 \n", + " \n", + " classification (Dense) (None, 10) 5130 \n", + " \n", + "=================================================================\n", + "Total params: 26,215,818\n", + "Trainable params: 26,162,698\n", + "Non-trainable params: 53,120\n", + "_________________________________________________________________\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "CuhDh8ao8VyB" + }, + "source": [ + "## Train the model" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "2K6RNDqtJ_xx", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "a929bf85-538f-4cc9-e5e5-ce20969533e2" + }, + "source": [ + "# this will take around 20 minutes to complete\n", + "EPOCHS: int = 4\n", + "history: tf.keras.callbacks.History = model.fit(\n", + " train_X,\n", + " training_labels,\n", + " epochs=EPOCHS,\n", + " validation_data=(valid_X, validation_labels),\n", + " batch_size=64\n", + ")" + ], + "execution_count": 11, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Epoch 1/4\n", + "782/782 [==============================] - 578s 696ms/step - loss: 0.4072 - accuracy: 0.8681 - val_loss: 0.2239 - val_accuracy: 0.9248\n", + "Epoch 2/4\n", + "782/782 [==============================] - 540s 690ms/step - loss: 0.1029 - accuracy: 0.9666 - val_loss: 0.1947 - val_accuracy: 0.9356\n", + "Epoch 3/4\n", + "782/782 [==============================] - 526s 673ms/step - loss: 0.0366 - accuracy: 0.9895 - val_loss: 0.1756 - val_accuracy: 0.9464\n", + "Epoch 4/4\n", + "782/782 [==============================] - 539s 690ms/step - loss: 0.0136 - accuracy: 0.9970 - val_loss: 0.1628 - val_accuracy: 0.9529\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "CYb5sAEmk4ut" + }, + "source": [ + "## Evaluate the Model\n", + "\n", + "Calculate the loss and accuracy metrics using the model's `.evaluate` function." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "io7Fuu-w3PZi", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "cac3e15d-328e-4e6d-b142-353c6c86610b" + }, + "source": [ + "loss: float\n", + "accuracy: float\n", + "loss, accuracy = model.evaluate(valid_X, validation_labels, batch_size=64)" + ], + "execution_count": 33, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "157/157 [==============================] - 28s 180ms/step - loss: 2.6841 - accuracy: 0.0771\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "yml-phRfPeOj" + }, + "source": [ + "### Plot Loss and Accuracy Curves\n", + "\n", + "Plot the loss (in blue) and validation loss (in green)." + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 456 + }, + "id": "jJYSJEsYztUQ", + "outputId": "e2b8fca8-c4b1-4e0f-85d3-11908b763b79" + }, + "source": [ + "plot_metrics(\"loss\", \"Loss\")" + ], + "execution_count": 36, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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AMYRGAAAwLioCQyXy6V77rlHw4cPV+/evTV9+nS9//77Ia179OhRLViwQAMGDFD//v01b948HTp0qG0HHEEt3VfLly9XSkpKo59A3z8TK8rLy7Vs2TJddtllGjRokFJSUrR69eqQ1y8uLtatt96qjIwM9enTR3PmzNFnn33WdgOOoNbsq9WrVwc8tlJSUgJ+eF+027lzp5YuXarzzz9fffr00ahRo7RgwQLl5uaGtH5HOq5as6862nH19ddfa/78+RozZozS0tKUnp6umTNnauPGjSGt397HVVhvU42km2++WdnZ2Vq8eLEyMjL00ksv6YorrtCGDRs0efLkoOuVl5crMzNTpaWluu222xQXF6e//OUvmj17trZs2aKzzjqrHV9F+2jpvvJ69NFH1aVLF9/vDoejLYcbUYWFhXrooYfUr18/jRo1Sh999FHI63o8Hl111VX64osvtGTJEvXo0UPPPPOMMjMz9cEHHygjI6MNR97+WrOvvO644w4NHDjQb1py3deRxowVK1Zo27ZtysrK0qhRo1RQUKCnnnpKU6dO1TvvvKMRI0YEXbejHVet2VdeHeW4ysvLU3l5uebNm6e0tDSdOnVKr7/+uubNm6cVK1ZowYIFQdeNxHEVFe8i2bFjh6ZPn6777rtPS5YskVT7dtnJkyerV69eevvtt4Ou+6c//Un33HOPNm/erPHjx0uScnJyNHnyZN166636zW9+0y6vob20Zl8tX75cv//977V//3716NGjvYYcUS6XS8XFxUpNTdWuXbs0bdo0Pf7447r22mubXfe1117TwoULtWrVKmVlZUmSTpw4oQkTJujiiy/W008/3dbDb1et2VerV6/WLbfcovfff1/jxo1rh9FG1rZt2zRu3DjFx8f7pu3fv19TpkxRVlaWVq5cGXTdjnZctWZfdbTjKhC3262pU6fK5XJp+/btQZeLxHEVFZdIsrOz5XA4NH/+fN+0hIQEXXfddfrkk0905MiRJtcdP368Ly4kadiwYZo6dapee+21Nh13JLRmX3lZlqXS0lJZ1hnfnq3mdDpbfAkoOztbZ599tjIzM33Tevbsqblz5+rNN98M+MWA0aw1+6q+srIyud1uAyM6c5133nl+fzAlKSMjQ8OHD9fevXubXLejHVet2Vf1dYTjKhCHw6G+ffs2+w3lkTiuoiIwPv/8cw0ZMkRJSUl+0ydMmCBJ2rNnT8D1PB6Pvvzyy4BlO378eB08eFBlZWXmBxxBLd1X9Y0dO1YDBgxQv379tGjRIn377bdtMtZo9/nnn2vMmDGy2/3/ZzR+/HidOnUq5OvtHUlmZqb69++vtLQ0XX311dq/f3+kh9RuLMvS8ePHmz07yHEV+r7y6mjHVUVFhQoLC3Xw4EE9/vjjevfddzV16tQm14nEcRUV92AUFBQE/C8n77T8/PyA6508eVIulyvgut5vfs3Pz1e3bt0MjjayWrqvJCklJUU33nijJk2apPj4eH388cd6+umntWPHDr3//vuNoqWjKygo0JQpUxpNr39sjRw5sr2HdUbq3LmzrrnmGl144YXq1q2bPvvsMz3xxBP64Q9/qH/84x8d4nuMXn31VR09elS//vWvm1yO4yr0fdVRj6u77rpLzz33nCTJbrcrMzNTDz/8cJPrROK4iorAqKyslNPpbDQ9ISHBNz/YepICruudFmzdaNXSfSVJixcv9vs9KytLEyZM0I033qhnnnlGv/jFL8wONsoF29exemy1xty5czV37lzf73PmzNH06dM1a9Ys/eEPf9Af//jHCI6u7eXk5Gjp0qWaNGmSrrnmmiaX7ejHVTj7qqMeV4sXL1ZWVpaOHTum9evXy+12q7q6usl1InFcRcUlksTExIDXh6qqqnzzg60nKeC63mnB1o1WLd1XwVxxxRVKTU3VBx98YGJ4MSXYvo7VY8u0yZMna+LEiTF/bBUUFOjKK69UUlKSVq1a1ey7sjrycRXuvgqkIxxXw4YN0/e//33NmzdPa9asUUVFha6++uom75uLxHEVFYGRmpoa8D3N3mneUzwNde/eXU6nM+C63ksFwdaNVi3dV03p27evTp482eqxxZpg+zpWj622EOvHVklJiS6//HKVlJTo73//u9LS0ppdp6MeVy3ZV8HE+nHVUFZWlnbu3NnkfRSROK6iIjBGjx6t3NxclZaW+k3/9NNPffMDsdvtGjFihHbt2tVo3o4dOzRo0KCYuv9Cavm+CsayLH3zzTfq2bOnsTHGitGjR2v37t3yeDx+03fs2KHOnTtryJAhERpZ9Dh06FDMHltVVVW+Gw7XrFmj4cOHh7ReRzyuWrqvgonl4yoQ7+WNhv+/X18kjquoCIysrCy53W6tWrXKN83lcmn16tWaOHGi70aevLw85eTkNFp3586dfpGxb98+ffjhh7rkkkvaZfztqTX76sSJE42298wzz+jEiROaPn162w78DJefn6+cnBydPn3aNy0rK0vffvutNmzY4JtWWFio9evXa8aMGQGvd3YEgfZVoGPr7bff1meffRaTx5bb7dbChQu1fft2Pf/885o0aVLA5TiuWrevOtpxdfz48UbTTp8+rVdeeUWJiYk655xzJJ05x1VUfNCWJC1YsEBvvPGGbr75ZqWnp+vll1/Wjh07lJ2drQsuuECSNHv2bG3dulXFxcW+9crKynTRRRepvLxcS5YsUVxcnJ544gm53W5t2bIlJiu3pfsqLS1Nc+fO1YgRI5SQkKB//etfWrdunUaNGqW33npLnTt3jtAralsrV65USUmJ8vPzfZ9sd+6550qSFi1apOTkZC1evFgvv/yydu/e7fvEQLfbrRkzZujrr7/2+2S8I0eOaPPmzRo6dGgkX1abaOm+Gj9+vM4991yNGzdOSUlJ2r17t1588UX17t1bmzdv1tlnnx3Jl2Xc7bffrieffFIzZszwuwnR66qrrpIkjiu1bl91tOPq2muvVVlZmaZMmaI+ffqooKBAa9euVU5Oju6//3797Gc/k3TmHFdR8S4SSXryySf1wAMPaM2aNSouLtbIkSO1Zs0a3x/MYLp166Y33nhDd9xxhx555BF5PB5dcMEFWr58eUzGhdTyfXXFFVfok08+0YYNG1RVVaX+/fvr1ltv1W233RazcSFJjz32mPLy8ny/b9iwwVf5V155ZdCPHHY4HFq7dq3uvvtu/fWvf1VVVZXGjRunJ554Iub+CHi1dF9deumleuutt7R582ZVVlYqNTVV8+fP169+9auY+yMg1X3ezKZNm7Rp06ZG871/NAPpaMdVa/ZVRzuuLr30Ur3wwgt69tlnVVRUpK5du2rs2LG69957NWvWrCbXjcRxFTVnMAAAQPSIinswAABAdCEwAACAcQQGAAAwjsAAAADGERgAAMA4AgMAABhHYAAAAOMIDAAAYByBAQAAjCMwAACAcQQGAAAwjsAAAADG/X/Hg0LFA4bp7gAAAABJRU5ErkJggg==\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QbnWIbeJJ_xx" + }, + "source": [ + "Plot the training accuracy (blue) as well as the validation accuracy (green)." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "P0YpFs3J99eO", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 456 + }, + "outputId": "b3a1ee76-74c6-43ef-e564-fa66be031de5" + }, + "source": [ + "plot_metrics(\"accuracy\", \"Accuracy\")" + ], + "execution_count": 14, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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cMjlcmnBggXeNqfTqYULF2rgwIHq1KmT8QIBAED4Cegmz4EDB+rGG2/Ub3/7Wx09elTdunXTokWLdPDgQb344ouNVSMAAAgzAX2Tp1R+Q+fMmTP1/vvvKzc3Vz179tRjjz2mtLS0xqoRAACEmYADBgAAQH34de0AAMA4AgYAADCOgAEAAIwLm4DhdDo1Y8YMpaSkKCkpSWlpadqwYYNfY7OysjRp0iR16dJFnTt31oQJE/T99983bsEhFOyxmj17thISEmo8fP3+mUhRUFCgWbNm6eabb9aFF16ohIQELVy40O/xubm5uv/++9W9e3d16NBBY8aM0c6dOxuv4BBqyLFauHChz7mVkJDg88v7wt327ds1ffp0XXnllerQoYN69eqlSZMmaf/+/X6Nb0rzqiHHqqnNq71792rixInq06ePkpOT1a1bN40cOVKrVq3ya/y5nlcBfUw1lO69914tW7ZMU6dOVffu3fXuu+9q3LhxWrFihQYPHlzruIKCAqWnp+vUqVN68MEHFRUVpb/85S8aPXq0Nm3apDZt2pzDZ3FuBHusKr3wwgtq0aKF92ebzdaY5YbU8ePH9eyzz6pTp07q1auX/vGPf/g91u1267bbbtM///lPTZs2TW3bttXrr7+u9PR0bdy4Ud27d2/Eys+9hhyrSo8++qi6du1arS0+Pt5UieeNuXPnasuWLXI4HOrVq5dycnL06quvatiwYVq3bp1SU1NrHdvU5lVDjlWlpjKvMjMzVVBQoAkTJig5OVlFRUVavny5JkyYoLlz52rSpEm1jg3FvAqLT5Fs27ZNaWlpeuqppzRt2jRJ5R+XHTx4sNq3b6+1a9fWOvaPf/yjZsyYofXr16t///6SpIyMDA0ePFj333+/fvOb35yT53CuNORYzZ49W88884wOHDigtm3bnquSQ8rpdCo3N1eJiYnasWOHhg8frnnz5umOO+6od+yHH36oyZMna8GCBXI4HJKkY8eOacCAAbruuuv02muvNXb551RDjtXChQt13333acOGDerXr985qDa0tmzZon79+ik6OtrbduDAAQ0ZMkQOh0Pz58+vdWxTm1cNOVZNbV754nK5NGzYMDmdTm3durXWfqGYV2HxFsmyZctks9k0ceJEb1tMTIzuvPNOffnllzp06FCdY/v37+8NF5LUo0cPDRs2TB9++GGj1h0KDTlWlTwej06dOiWP57zPng1mt9uDfgto2bJluuCCC5Senu5ta9euncaOHauPP/7Y5y8GDGcNOVZV5efny+VyGajo/HXFFVdUO2FKUvfu3ZWSkqJ9+/bVObapzauGHKuqmsK88sVms6ljx471/obyUMyrsAgYu3fv1sUXX6y4uLhq7QMGDJAk7dmzx+c4t9utf/3rXz6Tbf/+/fXdd98pPz/ffMEhFOyxqqpv377q0qWLOnXqpClTpujIkSONUmu42717t/r06SOrtfo/o/79+6uoqMjv99ubkvT0dHXu3FnJyckaP368Dhw4EOqSzhmPx6OjR4/We3WQeeX/sarU1OZVYWGhjh8/ru+++07z5s3TJ598omHDhtU5JhTzKizuwcjJyfH5P6fKtuzsbJ/jTp48KafT6XNs5W9+zc7OVqtWrQxWG1rBHitJSkhI0N13361BgwYpOjpan3/+uV577TVt27ZNGzZsqBFamrqcnBwNGTKkRnvVudWzZ89zXdZ5qXnz5rr99tt11VVXqVWrVtq5c6deeuklXX/99frb3/7WJH6P0fvvv6+srCz9+te/rrMf88r/Y9VU59Xjjz+uN998U5JktVqVnp6u5557rs4xoZhXYREwTp8+LbvdXqM9JibGu762cZJ8jq1sq21suAr2WEnS1KlTq/3scDg0YMAA3X333Xr99df1q1/9ymyxYa62Yx2pc6shxo4dq7Fjx3p/HjNmjNLS0jRq1Cj9/ve/1x/+8IcQVtf4MjIyNH36dA0aNEi33357nX2b+rwK5Fg11Xk1depUORwOHT58WEuXLpXL5VJJSUmdY0Ixr8LiLZLY2Fif7w8VFxd719c2TpLPsZVttY0NV8Eeq9qMGzdOiYmJ2rhxo4nyIkptxzpS55ZpgwcP1sCBAyN+buXk5OjWW29VXFycFixYUO+nspryvAr0WPnSFOZVjx49dM0112jChAlavHixCgsLNX78+DrvmwvFvAqLgJGYmOjzM82VbZWXeM7WunVr2e12n2Mr3yqobWy4CvZY1aVjx446efJkg2uLNLUd60idW40h0udWXl6ebrnlFuXl5emvf/2rkpOT6x3TVOdVMMeqNpE+r87mcDi0ffv2Ou+jCMW8CouA0bt3b+3fv1+nTp2q1v7VV1951/titVqVmpqqHTt21Fi3bds2XXjhhRF1/4UU/LGqjcfj0cGDB9WuXTtjNUaK3r17a9euXXK73dXat23bpubNm+viiy8OUWXh4/vvv4/YuVVcXOy94XDx4sVKSUnxa1xTnFfBHqvaRPK88qXy7Y2zX/erCsW8CouA4XA45HK5tGDBAm+b0+nUwoULNXDgQO+NPJmZmcrIyKgxdvv27dVCxjfffKO///3vuvHGG89J/edSQ47VsWPHamzv9ddf17Fjx5SWlta4hZ/nsrOzlZGRodLSUm+bw+HQkSNHtGLFCm/b8ePHtXTpUo0YMcLn+51Nga9j5WturV27Vjt37ozIueVyuTR58mRt3bpVb731lgYNGuSzH/OqYceqqc2ro0eP1mgrLS3Ve++9p9jYWF166aWSzp95FRZftCVJkyZN0sqVK3XvvfeqW7duWrRokbZt26Zly5Zp6NChkqTRo0dr8+bNys3N9Y7Lz8/X1VdfrYKCAk2bNk1RUVF66aWX5HK5tGnTpohMucEeq+TkZI0dO1apqamKiYnRF198oQ8++EC9evXSmjVr1Lx58xA9o8Y1f/585eXlKTs72/vNdpdffrkkacqUKYqPj9fUqVO1aNEi7dq1y/uNgS6XSyNGjNDevXurfTPeoUOHtH79el1yySWhfFqNIthj1b9/f11++eXq16+f4uLitGvXLr3zzjtKSkrS+vXrdcEFF4TyaRn3yCOP6OWXX9aIESOq3YRY6bbbbpMk5pUadqya2ry64447lJ+fryFDhqhDhw7KycnRkiVLlJGRoaefflq//OUvJZ0/8yosPkUiSS+//LJmzpypxYsXKzc3Vz179tTixYu9J8zatGrVSitXrtSjjz6q559/Xm63W0OHDtXs2bMjMlxIwR+rcePG6csvv9SKFStUXFyszp076/7779eDDz4YseFCkl588UVlZmZ6f16xYoU35d966621fuWwzWbTkiVL9MQTT+iVV15RcXGx+vXrp5deeiniTgKVgj1WN910k9asWaP169fr9OnTSkxM1MSJE/Xwww9H3ElAOvN9M6tXr9bq1atrrK88afrS1OZVQ45VU5tXN910k95++2298cYbOnHihFq2bKm+ffvqySef1KhRo+ocG4p5FTZXMAAAQPgIi3swAABAeCFgAAAA4wgYAADAOAIGAAAwjoABAACMI2AAAADjCBgAAMA4AgYAADCOgAEAAIwjYAAAAOMIGAAAwDgCBgAAMO7/AAuzSrh79y80AAAAAElFTkSuQmCC\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "9jFVovcUUVs1" + }, + "source": [ + "### Visualize predictions\n", + "You can take a look at the predictions on the validation set." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "NIQAqkMV9adq", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 330 + }, + "outputId": "c0672e7e-92c5-4c66-ff8f-54c874122dcb" + }, + "source": [ + "probabilities: np.ndarray = model.predict(valid_X, batch_size=64)\n", + "probabilities = np.argmax(probabilities, axis = 1)\n", + "\n", + "display_images(\n", + " validation_images,\n", + " probabilities,\n", + " validation_labels,\n", + " \"Bad predictions indicated in red.\"\n", + ")" + ], + "execution_count": 35, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "157/157 [==============================] - 28s 181ms/step\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAABkYAAAF6CAYAAABMVOSlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABksUlEQVR4nO3deXhU5d3/8c8sySRhSVhCAoQdFEFAQ0QRcSlurSKgUrUuYMEFLSq1i5VStGjRFvvUHa1UURCptYiodQdFZI0iLsgqEJZEtixAMklm5vkjZvSeSUiGhHMSzvt1Xef69T7n3GfumXyuM7+Hr2e+rvz8/JAAAAAAAAAAAAAcwG33AgAAAAAAAAAAAKxCYQQAAAAAAAAAADgGhREAAAAAAAAAAOAYFEYAAAAAAAAAAIBjUBgBAAAAAAAAAACOQWEEAAAAAAAAAAA4BoURAAAAAAAAAADgGBRGAAAAAAAAAACAY1AYAQAAAAAAAAAAjkFhBAAAAKjGWz16acMjj9m9jFqJXOv2V+bprR69dGj7jnq5/qHtO/RWj17a/sq8erlefVt09rla87u7j+o19y5fobd69NLe5Svq9XWssPzqUVp+9agazzsan+PR0pjWCgAAgIbFa/cCAAAAgNra/so8fXnXRGNffMuWatqju7rc8EulnnWmTSs7dux87XWV7t2nztdfZ/dSHGf/p59pz8dL1Hn0dYpr3tzu5QAAAADHLAojAAAAaHS63z5eSR3aKxSSSvfs0Y7/vqrssTcr86kn1OYnZ9u9vAah/fBL1Pbin8kdHx/TvF0L3lDRhg1RhZHE9u103pefye1tmP8nxJlvvym5XUf1NVqeklXxGcTFHZXr53/6mTY9+oTaXzrCtsKIFZ8jAAAAYLeG+X/VAAAAAIeRetZgJfc5MTzOGHmZPhg4WLtef6PRFUYCxcXyJCbW+3VdHo88Hk/9Xc/lksfnq7fr1Te3L7YC0JFwud0N+jOoD1Z8juWHDsmblHTUXwcAAACoDj1GAAAA0Oh5mzeXx5cgV8TTDN8+8y8t+/kv9P4pA/XOiSfrk+GXK/d/b0fND/pLtfb+B/T+gEF696QsZd90q0p25dbqtSv7Tux6439a/9D/6YOBg/Vu3/7KvulWFe/aZZy7/OpR+vhnl6jgy6+0/Kpr9U6fTK1/6B/hNWx4+FF9NOQCvd2rnxYN/onWPThNQX/pEa21uh4juz/8SMt/cZ3ePSlL7550ij659Ofa+drr4fXtXvShSnbs1Fs9eumtHr206OxzJVXfY2Tv0mVaftU1erdvf72Xeao+vflWHdi4yThnwyOP6a0evXRw61at+d3dei/zVL138gB98fu7FSguNs7d8/EnWnblNXov81S926+/Pjr/Z1r/0P/V+HeI7DdR+f73Z3+qtX95sOLz6ttfn94yXqV79xlzQ6GQNj0+XQvPOEfv9MnUimtGq2jDhqjXqK7HSP7qz7Vq7E16r/9perdvf3188XBtee6F8PGib9Zpze/u1ofnnK93ep+kDwYO1hd3TVTp/nzjM1r34DRJ0kfnnBf+/H/899s5/zV9MvxyvXPiyXo/6zStvuPOqIxJUs5L/9aHP7lA75x4spZedoX2rVxV4+dXH59jVdb87m6926+/Dm3dplVjb9K7J2VpzZ2/kySFgkFtefZ5ffzToRWfy2mD9eUfJ6usoMC4Rm3/PgAAAEBt8cQIAAAAGp3yoiKV7tsvhULy79urbc/PVvmhQ2p3yVDjvK0zZ6nNkHPU9pKLFSor067X39Tq2yYo8+kn1eacs8LnfTlxknbOX6C2Qy9SSubJ2rd0ubJvHBfTmjY9+ZRcLpe63jhW/r17tfW5F7Ry1BgNeu2/8iQkhM8ry89X9piblH7RT9Vu2FDFt26lUDCo7JtvVX72p8q4YqSaduuqovXrteW553VwyxZlPvlDU/W6rHX7K/P05R/+qKY9uqvrTTcornlzFX69VnsWf6x2l1ysbuNu0rqiIpXk5umEib+XJHkO81/271nyibLH3qzEDhnqPv4WBUr82vrCbC2/8moNfPUVJWW0N87//LZfKzEjQ8fdOUGFX3+t7f/+j+JbtdLxv7tTklS0YYOybxynZj2PV/fbfyV3fLwObd2m/dmf1frvEGntn++XN7m5uo+/RcU7dmjrcy/o67j7dNLDfw+fs/Efj2rTE9OVetaZan32mSr86mutuv4GBUvLarz+no8/UfaN4+Rrk6pOo66Rr3VrHdy0WbsXLlLn0deGP6finBy1v2yEfKmtdWDDRuXMfVkHNmzUaf95SS6XS+nnn6dD327VrtffUM+771J8yxRJUnzLFpKkTU9M14Z/PKr0n12ojJGXq3TfPm19YbZW/OI6nT7/lfBPb21/+RV9NekepWSerM6jr9WhnO369OZfKS45WQlt04/q51idUHlAq355g1L699fxv/9t+Amprybdox3/fVXtLxuhjtddo+LtO7Rt1mwVrf1Gp740K/yTZXX5+wAAAABVoTACAACARmflqDHG2B0frz5T71PrM0439g9+902jKNHxml/ok+GXa8uzz4ULI4Vrv9HO+QvU8eqr1OueSZKkTtf8Qp//+rcq+mZdrddUll+gwW+9Lm/TJpKk5N69tPq2Xytn7svqPOra8Hn+3XvU68+T1fGqK8L7ds5/TXs/WapTZ89Ui6z+4f1Ne/TQ13+6V/s//UwtMk+u01rLioq0dspflNy3jwbMnmn8JFQoFJIktT7jdG2dmaaywkK1G3ZJje953YPTFJecrNP+/aLiU1IkSWnnDdGSYZdp4yOPqe9fpxrnN+t1gvpMve+HNe3P1/b/vBIujOz9eKlCZWXKeuapcEGgruJSUpT13DNyuSr6ZoSCIW17fpbKiooU16yZSvfu0+Z/zlDq2Wcp8+knwuet//s/tPnJpw977VAgoK8m3SNfm1QNeu2/Rl+Qys9UkjpefZW6jLnemJtyUj99PuE32r8qWy1PyVKznseree8TKn4O7rwhRlGpeMcObXzkcfWYcJu6jbspvD/tgvP0ybDLtG32HHUbd5OCZWVa/9A/1OyEnhrwwrPh/jJNu3fTV3+cXKfCSE2f4+EES0uV9tMLdPxvfh3et39Vtrb/+z/q+9Bf1e6Si8P7W542QNm/vFG5/3tb7S65uE5/HwAAAKA6/JQWAAAAGp1e90xS1nPPKOu5Z9R32oNqedoAfTnxT8p9+13jPONJjYIClRcdUIus/ir8am14/+4PP5IkdbzuGmNu59Fm8/GatB9xSbgoIklpF14gX5tU7flwsXGeOz5eGZeNMPbl/u9tNe3WVU26dlXpvv3hrdXAUyVJ+5Ytr/Na9378iQIHD6rrTWOj+mRU/mNzLEq+262itd+o/aXDw0URSWrW83i1HnS6di/6KGrOj4tBktTilP4q25+v8qIDkiRv84p/YP/u/Q8UCgZjXlNVOlw50nh/LbP6KxQIqGTHTknSnk8qijEdr7vaOK/zqJo/08Kv16p4+3Z1HnVdVLP0H1/rxzkM+P0q3bdfySf1q7jGj7JYnbx33lMoGFT6zy408uFr3VpJnTpq37KKn/Yq+PIrle7dqw5XXREuikhS+0uHy1tD8aImNX2ONen4iyuNce7/3pa3WTO1HnS68Z6Se/eWp0mS9n3/c2V1+fsAAAAA1eGJEQAAADQ6yX37GM3X2w69SJ8Mu0xr/3yf2pxzVvgfhb/7YJE2PTFdRWu/UbD0R706fvQPrCU7dkput5I6djBeo0mXLjGtKalTJ2PscrmU1LGjineYPT58aWnGP1pL0sEtW3Vw02Z9cOqgKq9d2cuhLms9tC1HktT0uB41nlsblf8g3qRL56hjTbp11Z7FH0c12U5o19Y4z/t9MaGssEDeZk3V9qKfavvLr+jLuydp3d/+rlann6a0889V+oUXyOU+sv+mK6FtxGsmf/+aBYUV72Pn9+8j4u8X36ql4pLNYkekHz7T7oc9rzQ/X5sefUK73vifSvfuNY6VFxXV8A4q8qFQSIvP/WmVxyt/cir8N+ncKep4UoeMGl/ncGr6HA/H5fUqId18WuXg1q0qLyrSB6edUeWcys+pLn8fAAAAoDoURgAAANDoudxutTx1gLbOfEEHt25Vsx49tG/lKn16861qcUqWet0zSb42qXJ5vdrxyjztWvCGbWv1JPiid4ZCanr8cer5h99VOSfyH6UbK5fbU+X+yl+d8iQk6NQXn9e+Zcv13aKPtOejxcp943/KGfhvnfLsM3J5qp5/2NesZk5IoSr3Hw2f3/5r7f90tbqMvV7NTzhBnqQkhUJBZf/yRoVCtXgyJhiUXC71n/FUlQUib1KTKibVr7p8ju74uOh1B0OKb9VKfR96sMo58S1bxrxGAAAAoLYojAAAAOCYEAoEJEmBg4ckSXlvvyu3z6dT/vVPuX0/PKGx45V5xryE9u2kYFCHtuWoadcfnrw4+O23Mb3+oa1bzfWEQjq0bZuaHX98jXOTOnRQ4Tfr1Or0gYf9Wau6rLXyKZMD6zdE/df3hlr+rFZC+3bfv/aWqGMHN29WXIsWxtMiteVyu9Xq9IFqdfpA6e7fa9OTT2nD3x/W3mXL1XrQ6TVfIEYJ7b5/H1u3Gk/ilO7dV+PTED98phurXVtZQYH2frJM3W/7lbqPvyW8/+CWLdEnV/PZJ3XsIIVCSsrIqPIJnfB7qfybbNmqVgNPC+8PlpXp0PYdataz5ixaJaljB+39ZKla9M80fmosUl3+PgAAAEB16DECAACARi9YVqY9Hy+RKy5OTbt1kyS5PG65XC6FgoHweYe279B3731gzE09c7Akadvzs4z9W557PqY17Jj3msoPHAyP8956W/7vdqv199c/nPSfXSh/Xp62z3056ligpETlhw7Vea2tzxgkT5Mm2jz9nwr4/caxHzcK9yQlhnt+HE5Cm1Q1O6Gndsx7VWWFP/wDddH6Ddrz8SdKPfvMGq8RqTQ/P2pf8xN6SpKCpWUxX682Wp8+UK44r7Y9P9v4HLbMrPkzbd67lxIzMrRl5vPGZyD98Jn+8JSM+WTF1udeiLqeJzFRklQeca2088+Ty+PRxkcfN9ZY+Tql+/MlSckn9lZ8y5bKmTPX+Om4Hf99Neqadkv/6YUKBQLa9PiTUceC5eXhzzOWv0+wrEwHNm1WyXe7j97CAQAAcEzgiREAAAA0Ors/XKyDmzdLkvx792nXgjd0aMtWdblprLzNmkqSUs8+S1v+NVOrfnmj2g69SKV792nb7DlK6tRRRd+sC1+rea8T1Pbii7Rt9hyVFRWpRebJ2vvJMh3ati2mNcWlJGv5Vdeo/aUj5N+7R1ufe0FJnTqqwxWX1zi33fBLlPvmW/rqT/dq77IVatH/ZIUCQR3cvFm5/3tLWf/6p5L7nFintXqbNdUJE+/Sl3dP0tJLf662Qy9SXPPmKvpmnQIlJer716mSpOTevZT7xv+09i8PKrnPifImJanNkHOqvObxv/+NssferGUjf6GMkZcqUOLXthdmK65ZU3Uff2tMn58kbXrsSe1fuUqpZ5+lhPbtVLp3r7bNfkkJ6elqkZUZ8/VqI75VS3UZc702T/+nPr1hnFqffaaKvl6r3R8tVlyLFoed63K71evPf9KnN92iJZdcqozLRsiXmqoDm7/VgQ0bdcqz/5S3WVO1OCVL3/7zXwqWlSshLU17lixRcc72qOsln9hbkrTh7w8r/eKfye31KvUnZyupU0f1mHCb1k/7PxXv2Km0c38iT5MmKt6+Q3nvvqcOV4xUl7G/lDsuTj0m3KavJt2jFdf9Um1/dqEObd+hHa/MU2KHDlGvZ6eWp56iDlf+XJun/1OFa79R60GD5Irz6tCWrcp9622dMPEPSv/pBTH9fUryvtPHF16sdiOGq+9f/2LTOwMAAEBjQGEEAAAAjc7Ghx8N/2+3z6cmXbuo171/UoerrgjvbzXwNJ34lyna/PQz+ub+B5SYkaHjfvtrFe/YYRRGJOnEB+5TfMsW2rngdX333vtqedpp6v/0k1p05k9qvaZuN9+oonXrtPmpf6r84EG1Gniaet07KfwUwOG43G6d/OSj2vLs89r56nx99+578iQmKLFDB3W67lo16dy5XtaaMfIyxbdsqc1PP6NNj0+X2+tVk65d1Pn6UeFzOlx9lQrXfqMdr8zT1mdnKqF9u2oLI60Hna6sGU9pwyOPa8PDj8nt9arFgFN0/G9/fUTNvtsMOUfFO3Zo+yv/Vem+/Ypv2UItTzlF3W+/VXHNmsV8vdrqMeF2ueN9ynlprvYuX6GUfn2V9ew/lX3DuBrnpg4+QwNeeE4bH31C3854TgoFldSxozJ+/kNBrN/f/6a1f75f22bPkUIhtT7jdPWf8bQWDTrLuFZy3z7qccdt2jZnrnYv/lgKBnXmwnflTUpS15tuUFLnztr63ExtfOwJSVJCelu1PmOQ2gz54W/f4cqfKxQI6ttn/qV1D05T0+OPU+b0x7ThH4+qoek95R41P7G3cl76t9b//R9yeTxKzGivdpcMVUr/Hwphdfn7AAAAAFVx5efnW9d1EAAAADjG7F2+QiuvGa2THvk/pf/0AruXAwAAAACoAT1GAAAAAAAAAACAY8RcGDlw4ID+8pe/6LLLLlPnzp2VkpKi2bNn13p+fn6+br/9dnXr1k3t2rXTxRdfrNWrV8e6DDgMuYPVyBzsQO5gNTIHO5A72IHcwWpkDnYgdwBQezEXRvbu3au//vWvWrdunU488cSY5gaDQV1xxRX6z3/+oxtuuEH33nuv9uzZo6FDh2rTpk2xLgUOQu5gNTIHO5A7WI3MwQ7kDnYgd7AamYMdyB0A1F7MzdfT09O1bt06paWl6bPPPtM551TdiLEq8+fP1/LlyzVz5kwNGzZMkjRixAj1799fU6dO1TPPPBPrcuAQ5A5WI3OwA7mD1chc/Wh16gBduOFru5fRaJA72IHcwWpkDnYgdwBQezE/MeLz+ZSWlnZELzZ//ny1adNGQ4cODe9r3bq1RowYoTfffFN+v/+IrotjH7mD1cgc7EDuYDUyBzuQO9iB3MFqZA52IHcAUHuWNl9fs2aN+vXrJ7fbfNnMzEwdOnRIGzdutHI5cAhyB6uROdiB3MFqZA52IHewA7mD1cgc7EDuADiNpYWRvLy8KivX6enpkqTc3FwrlwOHIHewGpmDHcgdrEbmYAdyBzuQO1iNzMEO5A6A08TcY6QuiouL5fP5ovZX7isuLq71tZKTk+ttXWhcmjZtKklKSkqqVQ6Ki4vVrFmzqHNbtWolSXK73eQJh0XmYAdyB6uROdiB3MEO5A5WI3OwA7kD4GQFBQU1nmNpYSQxMbHK3ySs3JeYmBjT9fh9Q2cqLS2VJJWVlcnv98vn8x02C4mJiTp06FDUOUVFRZIkr9db6yzV9Fo4NkVmTjp8Fsgc6gO5g9XszFxNr4VjF/c62IHcwWpkDnYgd2gIyALsUNWDGVWx9Ke00tLSlJeXF7W/8nG8ysfzgPqUnp5e5SOfu3btkiS1bdvW6iXhGEfmYAdyB6uROdiB3MEO5A5WI3OwA7kD4DSWFkb69Omjzz//XMFg0NifnZ2tpKQkde/e3crlwCH69eun1atXR+Vu5cqVSkpKUo8ePWxaGY5VZA52IHewGpmDHcgd7EDuYDUyBzuQOwBOc9QKI7m5uVq/fr3KysrC+4YNG6bvvvtOCxYsCO/bu3evXn31VV144YW1fswFqM6uXbu0bt06I3cjRoxQXl6eXn311fC+PXv26L///a8uuugicoc6IXOwA7mD1cgc7EDuYAdyB6uROdiB3AHAEfYYefrpp1VQUBB+xO6tt97Szp07JUk33nijkpOTde+992rOnDn6/PPP1alTJ0kVhZFTTjlFt956q7755hu1atVKM2bMUDAY1B/+8Id6eks4Vj355JPKz88PP8b55ptvaseOHfJ6veHcTZo0SbNmzdI333yjzp07S5IuvfRSPfbYY7rxxhu1du1atW7dWk899ZQCgYAmTZpk4ztCQ1dd5iRpwoQJSkhIIHOod+QOViNzsAO5gx3IHaxG5mAHcgcAtePKz88PxTqpT58+ysnJqfJYZSFk3LhxUYURScrPz9ekSZP0xhtvqKSkRCeffLLuu+8+nXzyyTGtITk5meY9DnPcccdp27ZtVR6r/DIfO3Zs1Je7JO3fv19/+MMftGDBAhUXF6t///564IEH1L9//5jWQNMoZzlc5r799lu1bduWzKHekTtYrSFkTiJ3TtMQckfmnIfcwWpkDnYgd2hIyALs4PP5VFBQUON5R1QYaQgojKCSlTdZbuioZFUWyBx+jNzBanzHwg7c62AHcgerkTnYgdzBamQBdqhtYcTS5usAAAAAAAAAAAB2ojACAAAAAAAAAAAcg8IIAAAAAAAAAABwDAojAAAAAAAAAADAMSiMAAAAAAAAAAAAx6AwAgAAAAAAAAAAHIPCCAAAAAAAAAAAcAwKIwAAAAAAAAAAwDEojAAAAAAAAAAAAMegMAIAAAAAAAAAAByDwggAAAAAAAAAAHAMCiMAAAAAAAAAAMAxKIwAAAAAAAAAAADHoDACAAAAAAAAAAAcg8IIAAAAAAAAAABwDAojAAAAAAAAAADAMSiMAAAAAAAAAAAAx6AwAgAAAAAAAAAAHIPCCAAAAAAAAAAAcAwKIwAAAAAAAAAAwDEojAAAAAAAAAAAAMegMAIAAAAAAAAAAByDwggAAAAAAAAAAHAMCiMAAAAAAAAAAMAxKIwAAAAAAAAAAADHoDACAAAAAAAAAAAcg8IIAAAAAAAAAABwDAojAAAAAAAAAADAMSiMAAAAAAAAAAAAx6AwAgAAAAAAAAAAHIPCCAAAAAAAAAAAcAwKIwAAAAAAAAAAwDEojAAAAAAAAAAAAMegMAIAAAAAAAAAAByDwggAAAAAAAAAAHAMCiMAAAAAAAAAAMAxKIwAAAAAAAAAAADHoDACAAAAAAAAAAAcg8IIAAAAAAAAAABwDAojAAAAAAAAAADAMSiMAAAAAAAAAAAAx6AwAgAAAAAAAAAAHIPCCAAAAAAAAAAAcAwKIwAAAAAAAAAAwDEojAAAAAAAAAAAAMegMAIAAAAAAAAAAByDwggAAAAAAAAAAHAMCiMAAAAAAAAAAMAxYi6M+P1+TZ48WT179lR6erqGDBmihQsX1mruokWLdPHFF6tr167q2LGjfvKTn+ill16KedFwHr/fr4kTJ6pLly5KSUnR4MGD9d5779Vq7vvvv6/zzz9f7du3V1pams444wzNnj37KK8YxwJyB6uROdiB3MFqZA52IHewA7mD1cgcANRezIWRW265RY8//rhGjhypBx54QB6PRyNHjtTSpUsPO+/NN9/UiBEjVFZWprvuukuTJk1SQkKCbr75Zj3++ONH/AbgDGPHjtXDDz+sK6+8UtOmTZPH49Hw4cO1ZMmSw857/fXXdfHFF6u0tFR//OMfde+99yohIUFjxozRI488YtHq0ViRO1iNzMEO5A5WI3OwA7mDHcgdrEbmAKD2XPn5+aHanpydna0hQ4ZoypQpGj9+vCSppKREAwcOVGpqqt55551q544YMULffPONVq9eLZ/PJ0kqLy/XKaecoqSkpBpv0pGSk5Pl9/tjmoPGaeXKlRo8eLCmTp2qCRMmSKrIXWZmptq0aaOlS5dWm4WLLrpIa9eu1dq1a43c9e3bV02aNNHKlStjWovP5yN3DtFQckfmnKOmzC1atKjaPHCvw5FqKPc6idw5Bfc62IHcwQ4N5TuWzDkH9zo0RGQBdvD5fCooKKjxvJieGJk/f748Ho9GjRoV3peQkKBrr71WK1as0Pbt26udW1RUpJSUlPANVpK8Xq9atWqlxMTEWJYBh5k3b548Ho/GjBkT3peQkKDRo0dr2bJlysnJqXZudblr3bo1ucNhkTtYjczBDuQOViNzsAO5gx3IHaxG5gAgNjEVRtasWaPu3burefPmxv7+/ftLkr744otq555xxhlau3at7rvvPm3evFnffvut/vrXv+qzzz7TbbfddgRLh1OsXr1aPXr0iMpdVlZW+Hh1zjzzTH399de65557tGnTJm3atEl/+ctflJ2drV//+tdHc9lo5MgdrFZT5tasWVPtXDKHI8W9DlbjXgc7kDvYge9YWI17HQDExhvLyXl5eUpLS4vaX7kvNze32rm//e1vtXXrVj300EOaNm2aJCkpKUnPP/+8LrrooliWAYfJzc1Venp61P62bdtKknbu3Fnt3D/84Q/asmWLHnzwQT3wwAOSKnL30ksvaejQoUdnwTgmkDtYjczBDuQOViNzsAO5gx3IHaxG5gAgNjE9MVJcXGw8VlcpISEhfLw6Pp9P3bp107BhwzRjxgw9/fTTOumkk3TTTTfF/FuFcJbqcle5r6bcde/eXZdeeqmef/55Pfvss8rMzNT111+v5cuXH7U1o/Ejd7BaTZkrKSmpdi6Zw5HiXgerca+DHcgd7MB3LKzGvQ4AYhPTEyOJiYlVNsypvLke7ncHf/vb32rlypX66KOP5HZX1GNGjBih0047TXfddZfef//9WJYCB6kud5X7Dpe7O+64QytWrNCyZcvCubv88st18skn6ze/+Y0WL158dBaNRo/cwWo1Za7yP0KoCpnDkeJeB6txr4MdyB3swHcsrMa9DgBiE9MTI2lpacrLy4vaX7mvqkf2JKm0tFQvvPCCLrjggvANVpLi4uJ07rnn6rPPPlNpaWksS4GDpKenV/kzbbt27ZIktWvXrsp5paWleu6553ThhRdG5e6CCy5QdnY2uUO1yB2sRuZgB3IHq5E52IHcwQ7kDlYjcwAQm5gKI3369NHGjRtVWFho7F+1alX4eFX27dun8vJyBQKBqGPl5eUKBoNVHgMkqV+/ftqwYUNU7ip/gu2kk06qct7evXvD+YpUVlZG7nBY5A5Wqylzffv2rXIemUNdcK+D1bjXwQ7kDnbgOxZW414HALGJqTAybNgwBQIBzZw5M7zP7/dr9uzZysrKUkZGhiQpJydH69evD5+Tmpqq5ORkvf7660aV+cCBA3rrrbd03HHHHfYxUjjbiBEjFAgENGPGjPA+v9+v559/XgMGDFCHDh0kSdu2bdO6devC57Rp00YpKSmaP39+VO7eeOMNHX/88eQO1SJ3sBqZgx3IHaxG5mAHcgc7kDtYjcwBQGxi6jGSlZWl4cOH695779Xu3bvVtWtXzZkzR9u2bdOjjz4aPu/mm2/WkiVLlJ+fL0nyeDwaP3687rvvPp177rm68sorFQgENGvWLO3YsUNPP/10vb4pHFsGDBigyy67TJMmTQrnbtasWdq6daumT58ePm/MmDFavHhxuOeNx+PRHXfcoXvuuUdnnnmmrr76agUCAT333HPasWOHnn32WbveEhoBcgerkTnYgdzBamQOdiB3sAO5g9XIHADEJqbCiCRNnz5d999/v+bOnav8/Hz17t1bc+fO1aBBgw477ze/+Y06deqk6dOn68EHH1Rpaal69+6tmTNnatiwYUf8BuAMM2bMUMeOHfXiiy9q//796tOnj+bNm6fBgwcfdt5dd92lzp076/HHH9f9998vv9+vPn36aM6cORoxYoRFq0djRe5gNTIHO5A7WI3MwQ7kDnYgd7AamQOA2nPl5+eH7F7EkUhOTpbf77d7GWgAfD6fZVmw8rXQsFmVBTKHHyN3sBrfsbAD9zrYgdzBamQOdiB3sBpZgB18Pp8KCgpqPC+mHiMAAAAAAAAAAACNGYURAAAAAAAAAADgGBRGAAAAAAAAAACAY1AYAQAAAAAAAAAAjkFhBAAAAAAAAAAAOAaFEQAAAAAAAAAA4BgURgAAAAAAAAAAgGNQGAEAAAAAAAAAAI5BYQQAAAAAAAAAADgGhREAAAAAAAAAAOAYFEYAAAAAAAAAAIBjUBgBAAAAAAAAAACOQWEEAAAAAAAAAAA4BoURAAAAAAAAAADgGBRGAAAAAAAAAACAY1AYAQAAAAAAAAAAjkFhBAAAAAAAAAAAOAaFEQAAAAAAAAAA4BgURgAAAAAAAAAAgGN47V4AAAAAAAAAAABHyufz2b0ENDIURgAAAAAAAAAAjdq4P/xLJf4ySZLX6zGOudzmDye5XIoYR+yQ5AqFjHHkTy+5POacYMQlQhHzI7ld5hU9oeg1RK3JHTzsca/bvEZNV3RFnV/F9SPeR9SciM8u6nOLWIQ76m8R8clW8bmVBcqNcWnAvGj591N8vjj99e5rouZXhcIIAAAAAAAAAKBRK/GXqbiksjBi/gO/20NhpOrrmWe4G0lhxF9NYSQWFEYAAAAAAAAAAI3a2SMuU1mg4l/Im8abP63ljYt4giTyH/OrKIy4Xea/tkfUVuSOKIzUVNeIfI2I+oA8VcyP3OWNLDJEjOMiTog8Hvk2PRFvKt4TXWFwR+yKLipFXDPic4uLPL+GwoqqKHL4A2bB5lCpeVJBefD7146eWx2arwMAAAAAAAAAAMegMAIAAAAAAAAAAByDwggAAAAAAAAAAHAMeowAAAAAAAAAABo1b0KSQoGK/13gDxjHIhube91mz5HIhuAV+yKaiEc2FQ+Zc9yqoXdGZC8Od+Saohufx0UtKmIY0VTDFYxYY8RrRPbgcEW8h7Iq+ntErsETilxnxKSI1wyaH3VUTxJFXC9yzRVrMMsYXo85p4k3rqqXPiyeGAEAAAAAAAAAAI5BYQQAAAAAAAAAADgGhREAAAAAAAAAAOAY9BgBAAAAAAAAADRqbpcr3GMiGPk8QESPkah+IFU8PxCK6J0RjBhH9ucIuSKuEdXvwuyLEd3OI3oNrqi+JaHDHg9F9OsIRbzvyM8hchyMbnOiyF1uV+SaIi4Zcc0q2pZEzI/83KIbhUT2DvF4zMYlid+fQI8RAAAAAAAAAACAKlAYAQAAAAAAAAAAjkFhBAAAAAAAAAAAOAY9RgAAAAAAAAAAjZrH7Q73s4iLM3tQeDzm8wGRfTIix5LkjmhY4XKb3TLcrsNfM/L8yP4gkdevcg0RPUTcEY85RK0xYn4Vlzys2pxf4yk1nBDZFyXqPdWix0h85DU9rtqt7cfXjOFcAAAAAAAAAACARo3CCAAAAAAAAAAAcAwKIwAAAAAAAAAAwDEojAAAAAAAAAAAAMeg+ToAAAAAAAAAoFHzel1S8Pv/HTTbcHsiOny7FNEYPaJRuhTdiDxyHIqYE4o47o44Hhd5PGLsqapzeFQ39cgTIt9HxOlRDeMjj5s7vJUf4I/3RTaVr6FxfWSTeVfENT2hiKb1ocjzo/8WkXN8LvOawe/feCwt2HliBAAAAAAAAAAAOAaFEQAAAAAAAAAA4BgURgAAAAAAAAAAgGPQYwQAAAAAAAAA0Kh53O5wdwqX2+xB4Y4YR7XuiGzOIcnliTwn4vVq6CniierF4a7heBV9TiJ7hrgie4ZE9PeI6BnijprvPuxxdxX9PSLXFXXNqHENPUkirh95vKoOIdF9TCLeR1ws3UWqXgcAAAAAAAAAAMAxi8IIAAAAAAAAAABwDAojAAAAAAAAAADAMegxAgAAAAAAAABo1NxuV/gpgMh+H5E9RkLRjTGirueJ6K3h8UT2LTHPj1Nk/w+zSUlIkf1AzPlud6CKNUT2IYm8Rg09R2rqKRI5rqLPSUTLkKg+JzX1GHHL/By8kccjerlEvp4kyfzoVV5uflaVS6qYWruSR8xPjPj9fk2ePFk9e/ZUenq6hgwZooULF9Z6/n//+1+dd955ateunTp27Kjzzz9fH374YazLgMP4/X5NnDhRXbp0UUpKigYPHqz33nuv1vNffvllnXXWWWrZsqXS0tJ09tlnx5RbOBO5g9XIHOxA7mA1Mgc7kDvYgdzBamQOAGov5sLILbfcoscff1wjR47UAw88II/Ho5EjR2rp0qU1zp06darGjBmj9u3b6/7779cf//hH9e7dW7t27TqixcM5xo4dq4cfflhXXnmlpk2bJo/Ho+HDh2vJkiU1zp0yZYquu+46ZWRk6MEHH9Q999yjE088UTt37rRg5WjMyB2sRuZgB3IHq5E52IHcwQ7kDlYjcwBQe678/Pzo52OqkZ2drSFDhmjKlCkaP368JKmkpEQDBw5Uamqq3nnnnWrnrly5Uueff77uu+8+3XrrrXVeeHJysvx+f52vg4Zv5cqVGjx4sKZOnaoJEyZIqshdZmam2rRpo6VLl1abheXLl+vss8/Wgw8+qNtuu63Oa/H5fOTOIRpK7sicc9SUuUWLFlWbB+51OFIN5V4nkTun4F4HO5A72KGhfMeSOefgXoeGyMos+Hw+Lfg6oPLvf3LpQGm5cTzy55sif0rL5Yr++SVvvf+UlilyvsddrkiRP6UV9dNakdeI+ukt8wRv1Gua4zhX9Bq8dfwpLW/ET2n56uWntCL+vvHfv7ak1KZeFRQUVHGRiNep8YwfmT9/vjwej0aNGhXel5CQoGuvvVYrVqzQ9u3bq5375JNPKi0tTePGjVMoFNKBAwdieWk42Lx58+TxeDRmzJjwvoSEBI0ePVrLli1TTk5OtXMfe+wxpaen61e/+hW5Q0zIHaxG5mAHcgerkTnYgdzBDuQOViNzgOT2BH/Y5DrsFu8yN6+7vIqtzNy8gYhNxiaXO2ILGJvHLXNzmZs3FIra4l1BY/MpZGzxoXJj8yhgbG4Fjc0TubkCxuZ2haI2l0vG5na7jM3rchtbnGRsrlCZsfn9h8ytqNDYCvfti9qKDuw/7FZQsE8FBftUWLi/9nmJJVxr1qxR9+7d1bx5c2N///79JUlffPFFtXM//PBDnXzyyZo+fbq6deumjIwMHX/88Xr66adjWQIcaPXq1erRo0dU7rKyssLHq7Nw4UL1799fjz/+uDIyMtS6dWt17txZTz755NFcMo4B5A5Wqylza9asqXYumcOR4l4Hq3Gvgx3IHezAdyysxr0OAGJTuxbt38vLy1NaWlrU/sp9ubm5Vc7Lz8/X3r17tXz5ci1evFi///3vlZGRodmzZ+t3v/ud4uLidP311x/B8uEEubm5Sk9Pj9rftm1bSar29y7379+vPXv2aOnSpVq0aJEmTpyoDh066Pnnn9eECRPk9Xp1ww03HNW1o/Eid7AamYMdyB2sRuZgB3IHO5A7WI3MAUBsYiqMFBcXy+fzRe1PSEgIH69K5SN4+/bt07/+9S9deumlkqRhw4bp9NNP17Rp0yiMoFrV5a5yX02527t3r1544QWNHDlSknTppZeqf//+euCBB/hyR7XIHaxWU+ZKSkqqnEfmUBfc62A17nWwA7mDHfiOhdW41wFAbGL6Ka3ExMQqG+ZU3lwTExOrnSdJcXFxGjZs2A8v7nZrxIgR2rFjx2F/6xDOVl3uKvfVJneVxTipIneXX365duzYoW3bth2FFeNYQO5gtZoyV/kfIVQ1TyJzODLc62A17nWwA7mDHfiOhdW41wFSnMv9w+aVsXk85uZ1m1uc1xW1JZTnG5vv4DZja1Ky1tjaJG4xtpYJBcbWzLXf2JoE9xhbc9f+qM3nLjY2rzdkbJ44r7FFvi+fx2Vsca6QsXlCZeYW0aPEo4BCgVJjC5aVGFu5/5Cx+Q8VGVvZoQPGFir3G5tC5cZWWnIgavO6ys1N5paWkqy0lGSlJjevOSjfi6kwkpaWpry8vKj9lfuqemRPklq0aKGEhAS1bNlSHo/ZZj41NVVSxc9tAVVJT0+v8mfadu3aJUlq165dlfNatmyphIQEtWrVKip3bdq0kUTuUD1yB6uROdiB3MFqZA52IHewA7mD1cgcAMQmpsJInz59tHHjRhUWFhr7V61aFT5e5Yu43erTp4/27Nmj0tJS41jlDbp169axLAUO0q9fP23YsCEqdytXrpQknXTSSVXOc7vd6tevn3bv3h2Vu8rf1iR3qA65g9Vqylzfvn2rnEfmUBfc62A17nWwA7mDHfiOhdW41wFAbGIqjAwbNkyBQEAzZ84M7/P7/Zo9e7aysrKUkZEhScrJydH69euNuSNGjFAgENCcOXPC+0pKSvTyyy+rZ8+e4WZQQKTK7MyYMSO8z+/36/nnn9eAAQPUoUMHSdK2bdu0bt06Y+7ll1+uQCCgF154IbyvpKREL730kk444YRq/4sJgNzBamQOdiB3sBqZgx3IHexA7mA1MgcAsYmp+XpWVpaGDx+ue++9V7t371bXrl01Z84cbdu2TY8++mj4vJtvvllLliwxHrW7/vrr9cILL+g3v/mNNm7cqIyMDM2dO1c5OTl66aWX6u0N4dgzYMAAXXbZZZo0aVI4d7NmzdLWrVs1ffr08HljxozR4sWLjYZiY8eO1bPPPqs77rhDGzduVIcOHfTiiy9q27Zt+u9//2vH20EjQe5gNTIHO5A7WI3MwQ7kDnYgd7AamQMqngCo/EE4t8dlHPNGjlVsjJvu/STqei13fWSM/Yd2GOOiOPMJrdbdzCKiy9/EGIcOhoxxsKzEGJeWmdeTpMSUVGMcn9zZGB9KOdUYl8T3Ml8jEIi4ojkOBM0nxcrKo3sVKWCuu2nTpsbYE/nZxsUZ4ziv+WyG12uWJIpLDhpjd1n0sxwumWtIiI83xk0SfFFzahJTYUSSpk+frvvvv19z585Vfn6+evfurblz52rQoEGHnZeYmKjXXntNf/rTnzRr1iwdOnRIffr00b///W8NGTIk5oXDWWbMmKGOHTvqxRdf1P79+9WnTx/NmzdPgwcPPuy8xMREvfXWW7r77rs1c+ZMHTx4UP369dOrr76q8847z6LVo7Eid7AamYMdyB2sRuZgB3IHO5A7WI3MAUDtufLz80M1n9bwJCcny++vooIFx/H5fJZlwcrXQsNmVRbIHH6M3MFqfMfCDtzrYAdyB6uROdiB3MFqVv/fE++tDygQrBgXVf6P70U/MWI+rVEfT4x0aYhPjMh83+6IJ0aCEU+MBOvjiZGIBz5ifWLk4EFzLElJPvMJEY/LY4zTU1v9aD1SQUFB1DUixdRjBAAAAAAAAAAAoDGL+ae0AAAAAAAAAABoSFo3Cyr4/cMNroPmEyPlZWXGOGnXh8Y4dce/o66XUPqtMY4rKzfGpaXmkxJ79mw0xk085hMhyUmtjfGhkv3m9V1m3xNJijvY0hi797Uyxt6kb8zzO1xqHk892RjHRzxpIU+iMSwtN/uDSJLXYz5bkRjRQ8QVMp8ocUe8REjm3yJYZj6l4i03n2IpORj91EpcxJMvzVs3M8blwR/meDy16zfCEyMAAAAAAAAAAMAxKIwAAAAAAAAAAADHoDACAAAAAAAAAAAcgx4jAAAAAAAAAIBGrWOTElV2u2jlNfuB7M7bY4wPmW0vtL/DlVHXCx3caYy/+XK1Md6yM98Ypzcxe2XE7TbPLzu01RgntDL7h3Q48ZyoNbTrfpExdrtaGOP4wnXGuInrkDFOTDCfiygNmH1MDvnN/iCHDkX394j3mD1FCgLm+zwY8WEe8JvH9x06aIz35x8wxn6/2XPkwIHoXit+88+pYMh8X/37dJBU0Q9l6Kk9ouZXhSdGAAAAAAAAAACAY1AYAQAAAAAAAAAAjkFhBAAAAAAAAAAAOAaFEQAAAAAAAAAA4Bg0XwcAAAAAAAAANGqff7VOge8bg+/faTZO371zuzE+7YxBxtiX2Dzqegs+KjHG73/Tyhjvz/cY4+PatzbGPVp0MsYHyjYb426dssw1JnWNWoNLPY1xmcxm6aUec92lO83nIA5sWGuMvysy31Pe3n3GeF+B2RhdkooPFhnj/PxCY1x00Gz4XnzIPN9/wDxe6jfXECg3j3uD0Q3gXSGz+3pxxDXWn9FHkpSY4NPQUx+Mml8VnhgBAAAAAAAAAACOQWEEAAAAAAAAAAA4BoURAAAAAAAAAADgGPQYAQAAAAAAAAA0ap06d1IoVNGDY8O6Lcaxt99/3xiHEhKNcUFErw1J8ruaGePU5uac3p3TjHHHdm2Mceu0FGNcdDBgjPeUmP80v2632ZtDkoq2rDbG+QUFxnh/Yb4xPlS42xiXFuw3xsFD5nx30Bx7XdE9Rnwec12JoVJj3DJUZow9XrMfSLzX7IsS19T8HHxu89kNX4Ivag3yJhjD5s3Nfi/nnn9CxWneuOi51eCJEQAAAAAAAAAA4BgURgAAAAAAAAAAgGNQGAEAAAAAAAAAAI5BjxEAAAAAAAAAQKPWLMmnym4W5UGzz0Xujh3G+N+vvGKMW6W2j7rehT8dYYzbdEsxxl6Px3yN/WZ/jmWfmK+5PdccH9y72XxB/66oNTQJfBcxNnuGpMQVGuMMX7ExbpZo9v9okmL2+/B6zJ4cvrjoHh1xiU2McSguyRh7PM3Na8anmOcnJJvjePN6cpuvGQrFR60hKaKnyNlnDjXGJ/Y6NWpOTXhiBAAAAAAAAAAAOAaFEQAAAAAAAAAA4BgURgAAAAAAAAAAgGPQYwQAAAAAAAAA0Kh9unq9ygNBSdKGzWb/jnhfojFu2iLNGHc48fSo620oMufszNtijMv3rTXGZUWbjHFx3gZj3DEu1xinJRUY4+YtXVFraJYYNMaeiP4crniz34fL28YYB+NbmGOPeb4SzN4dQW+zqDWUlJolBLc3Yg0Rn23QZb6PiKFcQfNZjfJgqbmkOPN6knTqqecZ4w4dexnjbbl7vn8tlzq1Mz+D6vDECAAAAAAAAAAAcAwKIwAAAAAAAAAAwDEojAAAAAAAAAAAAMegxwgAAAAAAAAAoFF76403VeL3S5L2FR40jvm69jfGJYmpxnjdRrMniSSlJq0yr1GUbYzbxeUY45YpZjON5qnxxtjlTTHG5fFdjHEo3uz3IUkhn9kjpKTcvGbQY/b78Lh85nyPxxyXmH1NPM3MXiuBYChqDQcP7DXGcSGz70m8+ZJyucxrhIIBcxwyj3sint3o1qFr1BpC5WXGOHvVUmPs//641+NVp3ZmP5Lq8MQIAAAAAAAAAABwDAojAAAAAAAAAADAMSiMAAAAAAAAAAAAx6DHCAAAAAAAAACgUftqyzYdKi6WJOUfMP/ZOzlxnzHuVP65MT77pLZR14v37DLG+UVmb424pqcYY0+TzsY44G1tjEsVZ4xDriRj7HWb/UAkKeAuN6+xY6M5PmSuUXEJ5jXjzddwyez34S0zr6/oFiMKlJVGXCOih4iaRlzDPB6M6ElSGvGaO3K+M8bfbtgavYaIsctl9nNpk1rRK8Xn8+mCc+kxAgAAAAAAAAAAYKAwAgAAAAAAAAAAHIPCCAAAAAAAAAAAcAx6jAAAAAAAAAAAGrVkT6HiPRU9Rto2+9Y41u/4Tsa4Q/tuxrh52+Oirre3NNMYe1PMvhZxccnGOOA2jweDZcbYEzB7awQDEb04gpGdNCRXwHyuwR3xnEOo3G+eH2f2FHHLHHsSzXEw4nrxnugmI61amb1S3BHvUyFz3YGI91FWan4Ou/cUGuOVy81+Ly1TzM9VkjqckGWuM6GZuaamLSv+33izj8vh8MQIAAAAAAAAAABwDAojAAAAAAAAAADAMSiMAAAAAAAAAAAAx6DHCAAAAAAAAACgUeuSGpS/JChJ6t2hq3Gsfa9LjXFuiTk31x/9z+TlZWb/DrlLjWHAFTTH5WYPkUDA7K0RDJr9O0LmdAVdEb07JClijjupjTFO8qWY14x4DMLtNt+X2xtxQtBcc3lZxAcjKSSzZ0iozFy422Ou+8DBQ8b4izWbjPG+fPNzzc8vMsapqWlRa5DLXMP+A+Y6myVVHC8v90TPrQZPjAAAAAAAAAAAAMegMAIAAAAAAAAAAByDwggAAAAAAAAAAHAMCiMAAAAAAAAAAMAxaL4OAAAAAAAAAGjUTjplsMrKKhqkt29tNvAudrcyxv7CXGNcWmY2VpekYMhs+C2X2Qi9pNhsAB6KbK4eMseKGAeCEd3XFXF+Fbvc7qbmDo/Z4D0QNNdUHiw2jx80G50HA2bz9ZDLHEuSJ6KCkBifZIwPHjQ/p6VLVhvjdd9sMV/TFdEgPWB+Dls2m83aJSk+7qAx3rBznzHelNhaktQkKUm6a1zU/KrwxAgAAAAAAAAAAHAMCiMAAAAAAAAAAMAxKIwAAAAAAAAAAADHiLkw4vf7NXnyZPXs2VPp6ekaMmSIFi5cGPMLDx8+XCkpKfrtb38b81w4j9/v18SJE9WlSxelpKRo8ODBeu+992K+zs9+9jMlJCTojjvuqP9F4phD7mA1Mgc7kDtYjczBDuQOdiB3sBqZg9Ot37RL32zYqW827NQHy74ythXZy4zt283fGlvurl1R2779+41tz/4iYyssLDa24oOlxuYvCZhbadDYyssCxlZa4o/aDh08aGwHDuw2toKC7eZWmGNsBw5sNza/f7+xKXTA2NxuV9QWcvmMbeeuvcb2/gdLje3rtd8aW3koaGylgZKIrczYcnfvjdpCJaXGlhwnYyvM36PC/D0qKthb67zEXBi55ZZb9Pjjj2vkyJF64IEH5PF4NHLkSC1durTW13jttde0cuXKWF8aDjZ27Fg9/PDDuvLKKzVt2jR5PB4NHz5cS5YsqfU1Xn31VS1fvvworhLHGnIHq5E52IHcwWpkDnYgd7ADuYPVyBwA1F5MhZHs7Gy98sormjx5sqZMmaLRo0frtddeU4cOHTR58uRaXaOkpER//OMfdfvttx/RguE8K1eu1Msvv6wpU6Zo6tSpGjt2rN566y117NhREydOrNU1SkpK9Pvf/1533nnnUV4tjhXkDlYjc7ADuYPVyBzsQO5gB3IHq5E5AIhNTIWR+fPny+PxaNSoUeF9CQkJuvbaa7VixQpt3769xms8/PDDCgaDGj9+fOyrhSPNmzdPHo9HY8aMCe9LSEjQ6NGjtWzZMuXk5NR4jYceekjBYFATJkw4mkvFMYTcwWpkDnYgd7AamYMdyB3sQO5gNTIHALHxxnLymjVr1L17dzVv3tzY379/f0nSF198oYyMjGrn5+Tk6B//+Icee+wxJSYmHsFy4USrV69Wjx49onKXlZUVPn7++edXO3/btm2aNm2annrqKXKHWiN3sFpNmav8Dq4OmcOR4F4Hq3Gvgx3IHezAdyysxr0OkLbmbFFxcbEkqbis2DzoMoe7vyswxsFAVf9Mbk4KBoPG2O32GGOv27xGyGU+k+Dymtfzyrxeqb80agXl5WXmNVwl5jUilp2QaO5ISIiLmB+xBk+8MU5u2TRqDT16djLGiU1Cxvikkzsa4z4ndTDG5YGAMS4t8xvjEr/5tyr1l0etITUpxRh3jkszxnuKKz6XxISkqLnViemJkby8PKWlpUXtr9yXm5t72Pl//OMf1bdvX1122WWxvCwcLjc3V+np6VH727ZtK0nauXPnYeffdddd6tevn37+858flfXh2ETuYDUyBzuQO1iNzMEO5A52IHewGpkDgNjE9MRIcXGxfD5f1P6EhITw8ep89NFHeu211/T+++/HuEQ4XXW5q9x3uNwtWrRI8+bN0+LFi4/a+nBsInewWk2ZKykpiTpWiczhSHGvg9W418EO5A524DsWVuNeBwCxiemJkcTERPn9/qj9lTfX6h61Ky8v11133aUrrrhCmZmZR7BMOFl1uavcd7jc3XnnnfrFL34RfnQUqC1yB6vVlLnK/wghEplDXXCvg9W418EO5A524DsWVuNeBwCxiemJkbS0NO3atStqf15eniRV+cieJM2ZM0cbNmzQ//3f/2nr1q3GsaKiIm3dulWpqalKSqr9b4DBOdLT06t85LMyi+3ataty3qxZs7R+/Xo99thj2rJli3GsqKhIW7ZsUZs2bcgdqkTuYDUyBzuQO1iNzMEO5A52IHewGpkDpEFnHa+y7/tX7Du0zzi2cWOeMd67r9AYHyw0e3lI0oFic1/hgQPGuLTEfPrP4zJ7afgjntQKBMweIqGyyGJm9DMMbre5zxPRVMQT0ecksu9JMGT260hMMo936mb2FDm+n9kvRJLSMsw5HX3mnHhvS3NNLrMQmxBv9j5yybyeFNEHJWoF0qFCs69JoNgcN2lR8Rper9kz5XBiemKkT58+2rhxowoLzeCsWrUqfLwq27dvV1lZmS644AL169cvvEnSSy+9pH79+umDDz6IZSlwkH79+mnDhg1RuVu5cqUk6aSTTqpyXk5OjsrKynTOOeeoZ8+e4U2SZs+erZ49e+q99947qmtH40XuYLWaMte3b98q55E51AX3OliNex3sQO5gB75jYTXudQAQG1d+fn6o5tMqrFq1Sueee66mTJmi8ePHS6p4JG/gwIFq2bJl+EaZk5Oj4uJiHXfccZKk9evXa/369VHXu+aaa3T++efruuuuU1ZWVrVPnFQlOTm5ykcEcexZsWKFzjzzTE2dOlUTJkyQVJG7zMxMtWrVSsuXL5ff79e2bdtUXFys448/XpK0bt06rVu3Lup6P//5z3XhhRfql7/8pU455ZRwI7La8Pl85M4hGkruyJxz1JS5jz76SD6fTxs2bOBeh3rTUO51ErlzCu51sAO5gx0ayncsmXMO7nVoiKzMgs/n0zPPT671EyMbvjLHRfuCUdd04hMjZ58f/cRI9+NbGWNf1BMj5hNldj8x8tMLfqWCgoIqrmKK6ae0srKyNHz4cN17773avXu3unbtqjlz5mjbtm169NFHw+fdfPPNWrJkifLz8yVJxx13XLhIEqlTp066+OKLY1kGHGbAgAG67LLLNGnSpHDuZs2apa1bt2r69Onh88aMGaPFixeHe94cf/zx4S/6SJ07d9Yll1xiyfrROJE7WI3MwQ7kDlYjc7ADuYMdyB2sRuYAIDYxFUYkafr06br//vs1d+5c5efnq3fv3po7d64GDRp0NNYHSJJmzJihjh076sUXX9T+/fvVp08fzZs3T4MHD7Z7aTiGkTtYjczBDuQOViNzsAO5gx3IHaxG5uB0TRI6qcxb8ZRHoLy1cSy+3HxyIm/7BmNcUhLdYyS9bYoxTk5pYYy/+8580sHjM/tb+MojnkIJmc9C+Av3GuNAcVHUGrxx5tMVLo/5pITbYx5PappojDt3NdfYs5f5i00n9DGf5miZFt1PyF9mPulSWJJrnuAy15Tg8xnjAwHzfZcHzCdr4uPM14zzRpcsCmX+TKBC5rrd/g6SJG/AfO3DiemntBoSfkoLlax+LI/cQbIuC2QOP0buYDW+Y2EH7nWwA7mD1cgc7EDuYDWr/++JOf/+l8rKKwochUVmkeGLNV8b4w/eX2aMa1MYCUT8yNN335k/rRVZGCk9RgsjJSWHzBNqKIx43PVQGDkYURg5FLHuJt8XRrw+XXrJA7X6Ka2Ymq8DAAAAAAAAAAA0ZhRGAAAAAAAAAACAY8TcYwQAAAAAAAAAgIZkwZsfqri4WJKUl7vdOBYXF/FzTkHzp7MOFUf8PJSk7/LMn8Jye82fiPKXmX1L4iIeQQhE/ASV29s04hXMNQVd0R0vWqQmG+OeJ6aa14z4qa1gxGsMOd9cVNMkc+wKmmso81fxHEVE3w6f2/x5LpfL/GmsQJn5uZWGzOMhl3m8LHjQGLvLzDVJUlnA/Hv5g+ZPa8WV5Vf8v6GEqLnV4YkRAAAAAAAAAADgGBRGAAAAAAAAAACAY1AYAQAAAAAAAAAAjkGPEQAAAAAAAABAo7Z16zYdPFjRr2J7To5xzBXxfEB8fHzEOPqfyXPz9ps7vEnGMKlla2Psizd7cSS4/cbYHzB7bSQkmed74sx+IpJ00G/2ENm60+xD0iw5xRh37NbRGBcV7jXGbrfZ96R584geJaVmLw9JcoXMniIed6IxDsnstVJeXmxeM+Kz93jNz76s1JzvckX3GAmFzNcMhsy+JEH5q3ytw+GJEQAAAAAAAAAA4BgURgAAAAAAAAAAgGNQGAEAAAAAAAAAAI5BjxEAAAAAAAAAQKPm9Uje7/+12+02e3EEgmZvjeJis6+Fxx39z+QJceY1ygOF5rjIPH6wvLl5zXizJ0m5y+zV4Ys4Htc0IWoNIZn9OPYUm8855JeZ/Th27F5rjD9dWmSM22e0MsYduzQ1xhntzb4nkpSeZvb38PnMz1JBsy9JMGSuyeOK+Gwjeq2EInqYhILRPUbivOY5TXzm55Lga/79edGfYXV4YgQAAAAAAAAAADgGhREAAAAAAAAAAOAYFEYAAAAAAAAAAIBjUBgBAAAAAAAAAACOQfN1AAAAAAAAAECjFudzKT5Q0bg7Pa2lcays3Gy2rogG4YFg9PWCAbORdygUij7pR9xuswm5vCXm9dxms3VvnNnU3B3XJPqaHvMcV7y5bm+c2QjdFTCbqStivGPXIWO8Ky/fGG9u1TpqDW3TzWbp6W3NNXXsYn7WzVLM12gSbz6b4XGZn2PQbY4DEX8qSQqEzJ2RDd09Lo8kye3xRE+uBk+MAAAAAAAAAAAAx6AwAgAAAAAAAAAAHIPCCAAAAAAAAAAAcAx6jAAAAAAAAAAAGrUDh6SDByt6cLRu1dU4Fig3m4gEXeY4ouVIxb6IniKRY1coGDE2e3FIkfNdEUfjzTW5o/tjxMVFnOM1x66IviXuuDhj7Im4ZvPmZq+OuDizPOCLN+dL0sECs3fKl7vN9/31evOaLVKaG+PO7c1x+3bm+S73AWMcCER/DuUy1xD59yw5lC9J8sUnSj+Nml4lnhgBAAAAAAAAAACOQWEEAAAAAAAAAAA4BoURAAAAAAAAAADgGPQYAQAAAAAAAAA0ai51kkvFkqS9BWafimBEPxC3K6JfSMRYiu4posieI4poTOIyn0FwKbInidmDJLLnSKCKPifR6zT7c0SuOhTZ5yRyia7IHWbvDo+7JGoNPq9ZQigtM+eURIx36JAxXr+mwBg3SYr4HCPeYygY/UF43eZnG/U+v79EUpJ0921R06vEEyMAAAAAAAAAAMAxKIwAAAAAAAAAAADH4Ke0AAAAAAAAAACNWlJSwo9Gx8pPaZn/fO9yme8r+qe0InZELjHyBSJ+Wsvjjl5E5E9pxZWZa/CUR5YYzOPxbnOcdFR+Sqvi75uUmKDaojACAAAAAAAAAGjU3n/jSbuXgEaEwggAAAAAAAAAoNHy+/12LwENhM/nq9V59BgBAAAAAAAAAACOQWEEAAAAAAAAAAA4BoURAAAAAAAAAADgGBRGAAAAAAAAAACAY1AYAQAAAAAAAACgATnvvPP0m9/8ptrjxx13nB599NGYrztlyhQNGDCgLks7JnjtXgAAAAAAAAAAAKi9JUuWqEmTJnYvo9GiMAIAAAAAAAAAQCOSmpp62ONlZWWKi4uzaDWNDz+lBQAAAAAAAABAA1NeXq477rhDbdq0Ufv27XXPPfcoFApJiv4prYSEBD399NO67LLL1LJlSz3wwAOSpL/97W/q2LGjWrdurZtuukl+v9+W99LQUBgBAAAAAAAAAKCBmTVrlrxerz7++GNNmzZNjzzyiP71r39Ve/59992nSy65RKtWrdKoUaP0n//8R/fdd5/uvfdeffLJJ0pPT9dTTz1l4TtouPgpLQAAAAAAAAAAGpiMjAz97W9/k8vl0nHHHaevvvpKjz76qMaMGVPl+VdccYVGjRoVHl933XUaPXq0rr/+eknSvffeq4ULF6qkpMSS9TdkPDECAAAAAAAAAEADM2DAALlcrvD41FNP1caNGxUIBKo8PzMz0xh/8803OuWUU4x9p556av0vtBGiMAIAAAAAAAAAQCPXpEkTu5fQaFAYAQAAAAAAAACggVm5cqUxXr58ubp37y6Px1Or+T179oy6xooVK+ptfY0ZhREAAAAAAAAAABqYnJwc/e53v9P69es1d+5cPfnkk7r11ltrPf/WW2/VzJkzNXPmTG3YsEF//vOf9fXXXx/FFTceNF8HAAAAAAAAAKCBufrqq1VcXKwzzjhDHo9Ht956q8aOHVvr+SNHjtTmzZs1ceJElZSUaPjw4brxxhv17rvvHsVVNw6u/Pz8kN2LOBLJycny+/12LwMNgM/nsywLVr4WGjarskDm8GPkDlbjOxZ24F4HO5A7WI3MwQ7kDlYjC7CDz+dTQUFBjefxU1oAAAAAAAAAAMAxKIwAAAAAAAAAAADHoDACAAAAAAAAAAAcI+bCiN/v1+TJk9WzZ0+lp6dryJAhWrhwYY3zXnvtNV1//fXq16+f2rZtq6ysLE2cOFH5+flHsm44jN/v18SJE9WlSxelpKRo8ODBeu+992qc9+qrr+qaa65Rz5491aJFC/Xp00e///3vyR1qROZgB3IHO5A7WI3MwQ7kDnYgd7AamQOA2ou5+fqYMWM0f/58jRs3Tt26ddOLL76oTz/9VAsWLNDAgQOrnde1a1elp6froosuUocOHfTVV1/p2WefVefOnfXhhx8qMTExpoXTfN1Zrr32Ws2bN0/jx49Xt27dNGvWLK1atUpvv/22fvKTn1Sbhfbt26tt27YaOnRoOHf//Oc/1aVLFy1btizm3NE0yjkOl7lBgwZVmwUyh7ogd7AD37GwGvc62IHcwQ4N4TuWzDkL9zo0NGQBdqht8/WYCiPZ2dkaMmSIpkyZovHjx0uSSkpKNHDgQKWmpuqdd96pdu7ixYs1ePBgY9+cOXM0btw4PfLII7ruuutquwxJFEacZOXKlRo8eLCmTp2qCRMmSKrIXWZmptq0aaOlS5dWm4UPP/xQZ511lrFv1qxZGjt2rJ544gn98pe/jGkt3NCdoabMLVq0qNoskDkcKXIHO/AdC6txr4MdyB3s0FC+Y8mcc3CvQ0NEFmCH2hZGYvoprfnz58vj8WjUqFHhfQkJCbr22mu1YsUKbd++vdq5kUURSbr44oslSevWrYtlGXCYefPmyePxaMyYMeF9CQkJGj16tJYtW6acnJxq50Z+sUvSsGHDJJE7VI/MwQ7kDnYgd7AamYMdyB3sQO5gNTIHALGJqTCyZs0ade/eXc2bNzf29+/fX5L0xRdfxPTi3333nSSpVatWMc2Ds6xevVo9evSIyl1WVlb4eCzy8vIkkTtUr6bMrVmzJqbrkTnUBrmDHfiOhdW418EO5A524DsWVuNeBwCxiakwkpeXp7S0tKj9lftyc3NjevF//OMf8ng84So0UJXc3Fylp6dH7W/btq0kaefOnTFdb9q0afJ4PLr00kvrZX049pA52IHcwQ7kDlYjc7ADuYMdyB2sRuYAIDYxFUaKi4vl8/mi9ickJISP19bLL7+sF154Qb/61a/UrVu3WJYBh6kud5X7YsndSy+9pOeee0533HGHunfvXm9rxLGlpsyVlJTU+lpkDrVF7mAHvmNhNe51sAO5gx34joXVuNcBQGxiKowkJiZW2TCn8uaamJhYq+t88sknGj9+vIYMGaJJkybFsgQ4UHW5q9xX29x9/PHHuvnmm3Xeeefp3nvvrdc14thSU+Yqi8E1IXOIBbmDHfiOhdW418EO5A524DsWVuNeBwCxiakwkpaWFv6NwR+r3FfVI3uRvvjiC1111VU64YQTNHPmTHm93liWAAdKT0+v8mfadu3aJUlq165djddYs2aNLr/8cvXu3Vtz5swhdzgsMgc7kDvYgdzBamQOdiB3sAO5g9XIHADEJqbCSJ8+fbRx40YVFhYa+1etWhU+fjjffvutLr/8cqWmpurll19W06ZNY1wunKhfv37asGFDVO5WrlwpSTrppJMOO3/Tpk265JJLlJqaqldffZXcoUY1Za5v376HnU/mcCTIHezAdyysxr0OdiB3sAPfsbAa9zoAiE1MhZFhw4YpEAho5syZ4X1+v1+zZ89WVlaWMjIyJEk5OTlav369MTcvL08jRoyQ2+3WK6+8otatW9fD8uEEI0aMUCAQ0IwZM8L7/H6/nn/+eQ0YMEAdOnSQJG3btk3r1q0z5ubm5uriiy+W2+3WggULlJqaauna0TiROdiB3MEO5A5WI3OwA7mDHcgdrEbmACA2rvz8/FAsE0aPHq3XX39dt9xyi7p27ao5c+YoOztb8+fP16BBgyRJF110kZYsWaL8/PzwvDPOOENffvmlbr/9dvXq1cu4Zps2bXTOOefEtPDk5OQqfzsRx6arr75a8+fP12233aauXbtq1qxZWrVqlf73v//p3HPPld/v13nnnafFixcbDcUGDBigNWvW6M4771Tv3r2Na7Zp00bnnntuTOvw+XzkziEOl7nBgwfL5/PpzDPPJHOoV+QOduA7FlbjXgc7kDvYoSF8x5I5Z+Feh4aGLMAOPp9PBQUFNZ4X848FTp8+Xffff7/mzp2r/Px89e7dW3Pnzg0XRarz5ZdfSpIefvjhqGODBg2KuTACZ5kxY4Y6duyoF198Ufv371efPn00b948DR48+LDz1qxZI0l66KGHoo4NHjw45i93OAeZgx3IHexA7mA1Mgc7kDvYgdzBamQOAGov5idGGgqeGEElK6vPVLpRyaoskDn8GLmD1fiOhR2418EO5A5WI3OwA7mD1cgC7FDbJ0Zi6jECAAAAAAAAAADQmFEYAQAAAAAAAAAAjkFhBAAAAAAAAAAAOAaFEQAAAAAAAAAA4BgURgAAAAAAAAAAgGNQGAEAAAAAAAAAAI5BYQQAAAAAAAAAADgGhREAAAAAAAAAAOAYFEYAAAAAAAAAAIBjUBgBAAAAAAAAAACOQWEEAAAAAAAAAAA4BoURAAAAAAAAAADgGBRGAAAAAAAAAACAY1AYAQAAAAAAAAAAjkFhBAAAAAAAAAAAOAaFEQAAAAAAAAAA4BgURgAAAAAAAAAAgGNQGAEAAAAAAAAAAI5BYQQAAAAAAAAAADgGhREAAAAAAAAAAOAYFEYAAAAAAAAAAIBjUBgBAAAAAAAAAACOQWEEAAAAAAAAAAA4BoURAAAAAAAAAADgGBRGAAAAAAAAAACAY1AYAQAAAAAAAAAAjkFhBAAAAAAAAAAAOAaFEQAAAAAAAAAA4BgURgAAAAAAAAAAgGNQGAEAAAAAAAAAAI5BYQQAAAAAAAAAADgGhREAAAAAAAAAAOAYFEYAAAAAAAAAAIBjUBgBAAAAAAAAAACOQWEEAAAAAAAAAAA4BoURAAAAAAAAAADgGBRGAAAAAAAAAACAY1AYAQAAAAAAAAAAjkFhBAAAAAAAAAAAOAaFEQAAAAAAAAAA4BgURgAAAAAAAAAAgGNQGAEAAAAAAAAAAI5BYQQAAAAAAAAAADgGhREAAAAAAAAAAOAYFEYAAAAAAAAAAIBjUBgBAAAAAAAAAACOQWEEAAAAAAAAAAA4RsyFEb/fr8mTJ6tnz55KT0/XkCFDtHDhwlrN3blzp0aPHq2OHTuqQ4cOuuqqq7Rly5ZYlwAH8vv9mjhxorp06aKUlBQNHjxY7733Xq3m7tixQ1dffbXS0tKUmpqqyy+/XJs3bz7KK8axgNzBamQOdiB3sBqZgx3IHexA7mA1MgcAtefKz88PxTJhzJgxmj9/vsaNG6du3brpxRdf1KeffqoFCxZo4MCB1c47cOCAzjrrLBUWFupXv/qVvF6vnnzySYVCIS1evFgtW7aMaeHJycny+/0xzUHjde2112revHkaP368unXrplmzZmnVqlV6++239ZOf/KTaLBw4cECnnXaaCgsLdfvttysuLk6PPPKIQqGQVqxYoVatWsW0Dp/PR+4cpCHkjsw5y+EyN2jQoGrzwL0OddEQ7nUSuXMS7nWwA7mDHRrCdyyZcxbudWhoyALs4PP5VFBQUON5MRVGsrOzNWTIEE2ZMkXjx4+XJJWUlGjgwIFKTU3VO++8U+3chx9+WJMnT9YHH3ygzMxMSdL69es1cOBA3X777frTn/5U22VIojDiJCtXrtTgwYM1depUTZgwQVJF7jIzM9WmTRstXbq02iw89NBDmjhxoj7++GNlZWVJktatW6fMzEz9+te/1pQpU2JaCzd052gouSNzzlFT5hYtWlRtHrjX4Ug1lHudRO6cgnsd7EDuYIeG8h1L5pyDex0aIrIAO9S2MBLTT2nNnz9fHo9Ho0aNCu9LSEjQtddeqxUrVmj79u2HnZuZmRkuikjScccdp7POOkvz5s2LZRlwmHnz5snj8WjMmDHhfQkJCRo9erSWLVumnJycw87NysoKf7FL0vHHH69zzjlHr7zyylFdNxo3cgerkTnYgdzBamQOdiB3sAO5g9XIHADEJqbCyJo1a9S9e3c1b97c2N+/f39J0hdffFHlvGAwqK+++konn3xy1LHMzEx9++23KioqimUpcJDVq1erR48eUbmr/MJevXp1lfOCwaC++OILoxj347mbN28md6gWuYPVasrcmjVrqpxH5lAX3OtgNe51sAO5gx34joXVuNcBQGxiKozk5eUpLS0tan/lvtzc3Crn7d+/X36/v8q56enph50L5ObmhnPyY23btpUk7dy5s8p5+/btk9/vP+zcXbt21eNKcSwhd7AamYMdyB2sRuZgB3IHO5A7WI3MAUBsvLGcXFxcLJ/PF7U/ISEhfLy6eZKqnFu5r7q5h1PV9XDsKSkpUWJiYtTfu/K/gqgul8FgUJLUpEmTqONNmzaVJAUCgZhzRO6coSHljsw5Q02ZKy8vlxSdB+51qIuGdK+TyJ0TcK+DHcgd7NCQvmPJnDNwr0NDRRbQUMVUGElMTKyyYU5JSUn4eHXzJFU5t3JfdXOrU5sGKjg2+Hw+HTx4MOpvvnv37vD/rioPZWVl4WORx/fv3y+p4v9jQJZQFXIHq5E52IHcwWpkDnYgd7ADuYPVyBwAxCamn9JKS0tTXl5e1P7KfVU9didJLVq0kM/nq3Ju5U9oVTcXIHewA7mD1cgc7EDuYDUyBzuQO9iB3MFqZA4AYhNTYaRPnz7auHGjCgsLjf2rVq0KH6/yRdxu9erVS5999lnUsezsbHXu3FnNmjWLZSlwEHIHO5A7WI3MwQ7kDlYjc7ADuYMdyB2sRuYAIDYxFUaGDRumQCCgmTNnhvf5/X7Nnj1bWVlZysjIkCTl5ORo/fr1UXM//fRT40a7YcMGffTRRxo+fHgd3gKOdeQOdiB3sBqZgx3IHaxG5mAHcgc7kDtYjcwBQGxc+fn5oVgmjB49Wq+//rpuueUWde3aVXPmzFF2drbmz5+vQYMGSZIuuugiLVmyRPn5+eF5RUVFOvPMM3XgwAGNHz9eXq9XTzzxhAKBgBYvXqzWrVvX6xvDsYXcwQ7kDlYjc7ADuYPVyBzsQO5gB3IHq5E5AKi9mAsjJSUluv/++/Xvf/9b+fn56t27tyZOnKghQ4aEz6nqJitJO3bs0N13362FCxcqGAxq0KBBmjp1qrp27VovbwbHLnIHO5A7WI3MwQ7kDlYjc7ADuYMdyB2sRuYAoPZiLowAAAAAAAAAAAA0VjH1GAEAAAAAAAAAAGjMKIwAAAAAAAAAAADHoDACAAAAAAAAAAAco0EVRvx+vyZPnqyePXsqPT1dQ4YM0cKFC2s1d+fOnRo9erQ6duyoDh066KqrrtKWLVuO7oKPkiP9HKZOnaqUlJSoLS0tzYJV168DBw7oL3/5iy677DJ17txZKSkpmj17dq3n5+fn6/bbb1e3bt3Url07XXzxxVq9enWV55I7MlfJqtyRuQrkjnudHcgdubMamavAd6y1yB33OjuQO+51ViNzFcidtcidtd+xwNHktXsBP3bLLbdo/vz5GjdunLp166YXX3xRI0eO1IIFCzRw4MBq5x04cEBDhw5VYWGh7rzzTnm9Xj355JO66KKLtHjxYrVs2dLCd1F3R/o5VPr73/+uJk2ahMcej+doLveo2Lt3r/76178qIyNDJ554oj7++ONazw0Gg7riiiv05Zdfavz48WrVqpVmzJihoUOHatGiRerWrZtxPrkjc5Wsyh2Zq0DuuNfZgdyRO6uRuQp8x1qL3HGvswO5415nNTJXgdxZi9xZ+x0LHE2u/Pz8kN2LkKTs7GwNGTJEU6ZM0fjx4yVJJSUlGjhwoFJTU/XOO+9UO/fhhx/W5MmT9cEHHygzM1OStH79eg0cOFC33367/vSnP1nyHupDXT6HqVOn6sEHH9SmTZvUqlUrq5Z8VPj9fuXn5ystLU2fffaZzjnnHD3++OO6+uqra5w7b948XX/99Zo5c6aGDRsmSdqzZ4/69++v8847T88880z4XHJH5n7MityRuQrkrgL3OmuRuwrkzjpk7gd8x1qH3FXgXmctcleBe511yNwPyJ11yF0Fq75jgaOtwfyU1vz58+XxeDRq1KjwvoSEBF177bVasWKFtm/ffti5mZmZ4RusJB133HE666yzNG/evKO67vpWl8+hUigUUmFhoUKhBlHzOiI+n++IHyecP3++2rRpo6FDh4b3tW7dWiNGjNCbb74pv99vnOv03JG5H1iROzJXgdxV4F5nLXJXgdxZh8z9gO9Y65C7CtzrrEXuKnCvsw6Z+wG5sw65q2DVdyxwtDWYwsiaNWvUvXt3NW/e3Njfv39/SdIXX3xR5bxgMKivvvpKJ598ctSxzMxMffvttyoqKqr/BR8lR/o5/NhJJ52kjh07KiMjQzfeeKO+++67o7LWhmrNmjXq16+f3G4z3pmZmTp06JA2btxonOv03JG5+lHb3JG5CuSu7rjXxY7c1R25iw2Zqx98x8aG3NUd97rYkbu6414XGzJXP8hdbMhd3cXyHQscbQ2mx0heXl6V1cbKfbm5uVXO279/v/x+f5Vz09PTw3ObNWtWj6s9eo70c5CklJQU3XDDDRowYIDi4+O1dOlSPfPMM8rOztbChQujbtzHqry8PJ1++ulR+3+ch969e4fPdXruyFz9qG3uyFwFcld33OtiR+7qjtzFhszVD75jY0Pu6o57XezIXd1xr4sNmasf5C425K7uYvmOBY62BlMYKS4uls/ni9qfkJAQPl7dPElVzq3cV93chuhIPwdJGjdunDEeNmyY+vfvrxtuuEEzZszQhAkT6nexDVR1n2FVeSB3ZK6+1DZ3ZK4Cuas77nWxI3d1R+5iQ+bqB9+xsSF3dce9Lnbkru6418WGzNUPchcbcld3sXzHAkdbg/kprcTExCp/R66kpCR8vLp5kqqcW7mvurkN0ZF+DtUZOXKk0tLStGjRovpYXqNQ3WdYVR7IHZmrL7XNHZmrQO7qjntd7Mhd3ZG72JC5+sF3bGzIXd1xr4sduas77nWxIXP1g9zFhtzVXSzfscDR1mAKI2lpacrLy4vaX7mv8pGqSC1atJDP56tybuUjbNXNbYiO9HM4nPbt22v//v11XltjUd1nWFUeyB2Zqy+1zR2Zq0Du6o57XezIXd2Ru9iQufrBd2xsyF3dca+LHbmrO+51sSFz9YPcxYbc1V0s37HA0dZgCiN9+vTRxo0bVVhYaOxftWpV+HhV3G63evXqpc8++yzqWHZ2tjp37txofqtQOvLPoTqhUEjbtm1T69at622NDV2fPn30+eefKxgMGvuzs7OVlJSk7t27G+c6PXdkrn7UNndkrgK5qzvudbEjd3VH7mJD5uoH37GxIXd1x70uduSu7rjXxYbM1Q9yFxtyV3exfMcCR1uDKYwMGzZMgUBAM2fODO/z+/2aPXu2srKylJGRIUnKycnR+vXro+Z++umnxo12w4YN+uijjzR8+HBL1l9f6vI57NmzJ+p6M2bM0J49ezRkyJCju3Cb5Obmav369SorKwvvGzZsmL777jstWLAgvG/v3r169dVXdeGFFxq/ZUjuyNyRqEvuyFwFchcb7nX1g9zFhtzVHZmLHd+xdUfuYsO9rn6Qu9hwr6s7Mhc7cld35C42df2OBY42V35+fsjuRVQaPXq0Xn/9dd1yyy3q2rWr5syZo+zsbM2fP1+DBg2SJF100UVasmSJ8vPzw/OKiop05pln6sCBAxo/fry8Xq+eeOIJBQIBLV68uNFVXo/0c2jbtq1GjBihXr16KSEhQcuWLdMrr7yiE088UW+//baSkpJsekdH5umnn1ZBQYFyc3M1Y8YMDR06VH379pUk3XjjjUpOTta4ceM0Z84cff755+rUqZMkKRAI6MILL9TatWs1fvx4tWrVSjNmzND27dv1wQcfqEePHsbrkDsy92NW5I7MVSB3FbjXWYvcVSB31iFzP+A71jrkrgL3OmuRuwrc66xD5n5A7qxD7ipY9R0LHE1euxfwY9OnT9f999+vuXPnKj8/X71799bcuXPDN5bqNGvWTK+//rruvvtuTZs2TcFgUIMGDdLUqVMb3Q1WOvLPYeTIkVqxYoUWLFigkpISdejQQbfffrvuvPPORneDlaRHH31UOTk54fGCBQvCFeWf//znSk5OrnKex+PRyy+/rEmTJumpp55SSUmJTj75ZD3xxBNV3mDJHZn7MStyR+YqkLsK3OusRe4qkDvrkLkf8B1rHXJXgXudtchdBe511iFzPyB31iF3Faz6jgWOpgb1xAgAAAAAAAAAAMDR1GB6jAAAAAAAAAAAABxtFEYAAAAAAAAAAIBjUBgBAAAAAAAAAACOQWEEAAAAAAAAAAA4BoURAAAAAAAAAADgGBRGAAAAAAAAAACAY1AYAQAAAAAAAAAAjkFhBAAAAAAAAAAAOAaFEQAAAAAAAAAA4BgURgAAAAAAAAAAgGNQGAEAAAAAAAAAAI5BYQQAAAAAAAAAADgGhREAAAAAAAAAAOAY/w9NLtMhyhSNvgAAAABJRU5ErkJggg==\n" + }, + "metadata": {} + } + ] + } + ] +} \ No newline at end of file