From 0f7a36fe0cdf230e2c5954b1a823fbffeefe6fbd Mon Sep 17 00:00:00 2001 From: Isaac Atia-Abugbilla Date: Thu, 20 Oct 2022 21:08:10 +0000 Subject: [PATCH] Added TPU Usage! --- .../7_TPU/High_level_tpu_training.ipynb | 387 ++++++++++++++++++ 1 file changed, 387 insertions(+) create mode 100644 tensorflow_v2/notebooks/7_TPU/High_level_tpu_training.ipynb diff --git a/tensorflow_v2/notebooks/7_TPU/High_level_tpu_training.ipynb b/tensorflow_v2/notebooks/7_TPU/High_level_tpu_training.ipynb new file mode 100644 index 00000000..ccac8cb4 --- /dev/null +++ b/tensorflow_v2/notebooks/7_TPU/High_level_tpu_training.ipynb @@ -0,0 +1,387 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [], + "collapsed_sections": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + }, + "accelerator": "TPU" + }, + "cells": [ + { + "cell_type": "markdown", + "source": [ + "## TPU Training Example\n", + "\n", + "This example demonstrates training on TPU using resources provided by current tensorflow version 2.10\n", + "\n", + "\n", + "* Author: Isaac Atia-Abugbilla\n", + "* Project: https://github.com/aymericdamien/TensorFlow-Examples/\n", + "\n", + "![image.png](data:image/png;base64,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)\n", + "\n", + "TPU training follows a similar flow as multiple GPU training except training is done using TPU (an AI accelerator application specific integrated circuit) developed by Google. \n", + "\n", + "This example uses the MNIST handwritten dataset which contains 60,000 training samples and 10,000 testing samples.\n", + "\n", + "Image source: https://towardsdatascience.com/accelerated-distributed-training-with-tensorflow-on-googles-tpu-52f1fe21da33\n" + ], + "metadata": { + "id": "I-MP6veSKLi0" + } + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "id": "A4VntwNWs6-4" + }, + "outputs": [], + "source": [ + "import tensorflow as tf\n", + "import tensorflow_datasets as tfds\n", + "import matplotlib.pyplot as plt\n", + "from dataclasses import dataclass" + ] + }, + { + "cell_type": "code", + "source": [ + "# setting up TPU \n", + "\n", + "# resolve TPU cluster URL\n", + "resolver = tf.distribute.cluster_resolver.TPUClusterResolver()\n", + "\n", + "# connect to tpu cluster\n", + "tf.config.experimental_connect_to_cluster(resolver)\n", + "\n", + "# initialize tpu system\n", + "tf.tpu.experimental.initialize_tpu_system(resolver)\n", + "\n", + "# instantiate tpu strategy\n", + "strategy = tf.distribute.TPUStrategy(resolver)\n", + "\n", + "print (f\"Running on TPU cluster: {resolver.cluster_spec().as_dict()['worker']}\")\n", + "print (f\"Number of replicas: {strategy.num_replicas_in_sync}\")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "aN6JSIn1tFxS", + "outputId": "83c4ce1f-6cbe-4a78-ec87-5cf285b35117" + }, + "execution_count": 2, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Running on TPU cluster: ['10.95.133.18:8470']\n", + "Number of replicas: 8\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "@dataclass\n", + "class C:\n", + " # batch size to be used for each worker\n", + " GLOBAL_BATCH_SIZE = 200\n", + " # to parallelize the fetching and loading of data into the model\n", + " # this ensures all parts of the TPU resourcee is in use\n", + " AUTOTUNE = tf.data.experimental.AUTOTUNE\n", + " # number of classes\n", + " NUM_CLASSES = 10\n", + " # learning rate\n", + " LR = 1e-3\n", + " SHAPE = [28,28]\n", + " # to parallelize the fetching and transforming of data\n", + " BUFFER_SIZE = 10000" + ], + "metadata": { + "id": "Zif20sEd41hF" + }, + "execution_count": 3, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# download GCS version of mnist data and split to train and test\n", + "train_ds,test_ds = tfds.load(\n", + " \"mnist\",\n", + " split=['train','test'],\n", + " as_supervised=True,\n", + " try_gcs=True # default is False\n", + ")" + ], + "metadata": { + "id": "x6NlMUQstG1S" + }, + "execution_count": 4, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "def preprocess(image):\n", + " image = tf.cast(image,tf.float32)\n", + " image /= 255.\n", + " return image" + ], + "metadata": { + "id": "dsv5u2_kLmHX" + }, + "execution_count": 5, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "train_ds = (\n", + " train_ds.map(lambda x,y: (preprocess(x),y))\n", + " .shuffle(C.BUFFER_SIZE)\n", + " .repeat()\n", + " .batch(C.GLOBAL_BATCH_SIZE)\n", + ")\n", + "\n", + "# transform data into form suitable for TPU training\n", + "train_dist = strategy.experimental_distribute_dataset(train_ds)" + ], + "metadata": { + "id": "sM3mo8OWRxuF" + }, + "execution_count": 6, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# define model using model subclassing\n", + "class MyModel(tf.keras.Model):\n", + " def __init__(self):\n", + " super(MyModel,self).__init__()\n", + " self.conv1 = tf.keras.layers.Conv2D(filters=32,kernel_size=3,activation=\"relu\",input_shape=[*C.SHAPE,1])\n", + " self.max1 = tf.keras.layers.MaxPooling2D(pool_size=2,strides=2)\n", + " self.conv2 = tf.keras.layers.Conv2D(filters=64,kernel_size=3,activation=\"relu\")\n", + " self.max2 = tf.keras.layers.MaxPooling2D(pool_size=2,strides=2)\n", + "\n", + " self.flatten = tf.keras.layers.Flatten()\n", + " self.classifier = tf.keras.layers.Dense(C.NUM_CLASSES)\n", + " \n", + " @tf.function\n", + " def call(self,x):\n", + " x = self.conv1(x)\n", + " x = self.max1(x)\n", + " x = self.conv2(x)\n", + " x = self.max2(x)\n", + " x = self.flatten(x)\n", + " return self.classifier(x)" + ], + "metadata": { + "id": "gpdBihEntXq6" + }, + "execution_count": 7, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# build model with dummy data so we can visualize the model summary\n", + "dummy_model = MyModel()\n", + "dummy_model.build((None,28,28,1))\n", + "dummy_model.summary()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "cUWqzFPiWNlk", + "outputId": "eb2c9c43-7066-4cba-c13e-1bd51ae68bce" + }, + "execution_count": 8, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Model: \"my_model\"\n", + "_________________________________________________________________\n", + " Layer (type) Output Shape Param # \n", + "=================================================================\n", + " conv2d (Conv2D) multiple 320 \n", + " \n", + " max_pooling2d (MaxPooling2D multiple 0 \n", + " ) \n", + " \n", + " conv2d_1 (Conv2D) multiple 18496 \n", + " \n", + " max_pooling2d_1 (MaxPooling multiple 0 \n", + " 2D) \n", + " \n", + " flatten (Flatten) multiple 0 \n", + " \n", + " dense (Dense) multiple 16010 \n", + " \n", + "=================================================================\n", + "Total params: 34,826\n", + "Trainable params: 34,826\n", + "Non-trainable params: 0\n", + "_________________________________________________________________\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# plotting model for better visualization\n", + "all_list = []\n", + "for l in dummy_model.layers:\n", + " all_list.append(l)\n", + "\n", + "another_dummy = tf.keras.Sequential(all_list)\n", + "tf.keras.utils.plot_model(another_dummy,show_shapes=True,expand_nested=True)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 754 + }, + "id": "omv8V4cE_Z85", + "outputId": "4971231e-73ed-46a8-c37a-2f4c082a08bd" + }, + "execution_count": 9, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaEAAALhCAIAAAB5eoxkAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOyde1xUxf//5yzs/cZNLgLLZVdU1MRbCeoXsU9q8dHES1LWJzU/YpYbisoHUT6IiBEmBGLlJStRAYHQSPTz0CIjL2lCEHxEQFPAkOtyW5Blmd8f8+389rvAssveYJnnX5yZOe95z5w3rz0zZ84ZAkIIMBgMxkShGNsBDAaD0SNY4zAYjCmDNQ6DwZgyWOMwGIwpY67NyatWrdKVHxgMBjMQ27Zt8/b2Htq5Wt3HZWRkVFdXa2MBoz3V1dUZGRnG9sIQ4HgbnWRkZFRVVQ35dK3u4wAAW7dufe2117Q0gtGG9PT01atXnzt3ztiO6B2CIHC8jUIIgtDmdDwfh8FgTBmscRgMxpTBGofBYEwZrHEYDMaUwRqHwWBMGRPUuKioKE9PTx6PR6fTRSLRzp0729vb+y25YcMGLpdLEERhYaE6li9evMjn87/99lud+mscTKktimzatIn4izfffFMx68qVK2FhYZmZme7u7qjAW2+9pVhg4cKFXC7XzMxs0qRJd+/eNazj/8ug0XvmzJlZs2ZxuVwXF5d169bV1tYa3TKit7c3Pj7ex8dHMfHChQuxsbFyuZxMyc7OJi+QjY2NRlUMEagFAIC0tDRtLOgDX1/f5OTkxsbG1tbWtLQ0KpW6ePHigQqfPXsWAFBQUKCO5ZycHB6Pd+HCBd05qwPS0tKGcB2HZ1tUo068BQUFWVlZ5ebmlpWVdXV1kekRERFLlixpbW1Fh0Kh0NraGgCQk5OjeHpubu6rr76qc8/VR3X0pqamAgBiY2MlEklBQYG7u7uXl5dMJjOuZQjh/fv358yZAwCYOnWqUlZCQoKvr29zczM67O3tra6uvnbt2iuvvGJtba2OcS11xgQ1zt/fv6enhzxEy6keP37cb2GNNM5gSKVSb29vNQsPTeMMhkZtUY2aGufo6KiUeODAAQ8Pj87OTjJFKBSePn2aQqE4OjpKJBIy3egapzp6/fz8xo4d29vbiw4PHz4MAMjPzzeu5cLCwuXLl6ekpHh5efXVOAihWCz29vZWUswPPvjAMBpngmPVnJwcMzMz8hDdD0ul0n4La7m8UE+cOHGirq7O2F7oBqO3paKiYs+ePXv37mUwGIrpPj4+wcHBNTU127dvN5ZvfVEdvVVVVQ4ODmTQOjs7AwAePXpkXMtTp07NzMxcs2YNnU7vt0BkZGRhYWFCQoI61nSOITTu1KlTM2fOZDAYbDbb1dV13759AAAI4aFDhyZOnEin0y0tLZctW3bv3j1U/siRI2w2m8VinT9//uWXX+bxeE5OTuiGCwAwceJEgiAoFMqMGTPQFdq5cyefz2cwGF9++WXf2mtqaphMppubGzqEEMbFxY0fP55Op/P5/B07dqjZivz8fIFAQBAE+olT7WRiYiKDwbC1td20aZODgwODwfDx8bl16xbKFYvFNBrN3t4eHb733ntsNpsgiIaGBgBAcHBwSEhIZWUlQRAikUjT3h7mbbl06RKPx9u/f78+2tUviYmJEMKlS5f2zYqOjvbw8Dh+/PiVK1f6PXfIUQoAkMvlERERAoGAyWQ+99xz6HZbU5Si193dXfEHA02Zubu7DyvLfbG0tPT19U1ISIBG+SLvkO8A1byHjI+PBwAcOHCgsbGxqanp888/X7NmDYQwIiKCRqOdOnVKIpEUFRVNnz7dxsamtrYWnRUeHg4AuHr1aktLS11d3bx589hsdnd3N4Swp6fH1dVVIBAo3nhv3bo1Pj6+b+0dHR1cLlcsFpMp4eHhBEF8/PHHzc3NUqk0OTkZqD1WRS/NJSUlDeokhDAoKIjNZpeWlnZ1dZWUlKDZXHJosGbNGjs7O9JyXFwcAKC+vh4drlixQigUquMSHOpY1VhtycnJ4XK5UVFRmjoMhzpWdXd39/T0VComFAofPnwIIbx+/TqFQnF1dW1vb4d9xqpDjlII4fbt2+l0ekZGRnNz865duygUyu3btzVqb9/ozcvLo1KpiYmJra2tv//++8SJExctWqSRTb1afuGFF/odq0IIw8LClP7RDDZW1a/GdXd3W1hY+Pn5kSk9PT0JCQlSqZTD4QQGBpLpv/zyCwCADH0UPeQEClKiiooKdIh0Mz09HR12dHQIBIKWlpa+DoSHh3t4eJAzzVKplMVivfTSS2QBjebj+tWFgZwMCgri8/nkubdv3wYA7N27Fx0OT40zeltUMwSNa29vJwhiyZIlSsVIjYMQhoSEAADef/99+H81Tpso7ezsZLFY5LlSqZROp2/evFmj9ipFL2L37t3kDYqTk1NVVZVGNvVqWYXGffHFFwCAr7/+mkwxkfm4oqIiiUSyaNEiMsXMzOyDDz4oKSlpb2+fOXMmmT5r1iwajUaOgJSg0WgAAJlMhg43bNjA5/PJ4X1KSsqyZct4PJ7SWVlZWenp6ZcvX+ZyuSiloqJCKpW++OKLOmqfKieVmDlzJovFIkc6wxyTaUtdXR2EkMViqSgTHR09fvz45OTk/Px8xXRtorSsrEwqlU6ePBllMZlMe3t7jXqsb/QCAMLDw48ePXr16tX29vYHDx74+Ph4e3tr+k0O/VlWAboET58+1ZVB9dGvxrW2tgIALCwslNIlEgkAgMPhKCZaWFi0tbWpY5bD4WzcuPH69evod/XTTz8Vi8VKZVJTUz/88MO8vDxXV1cyEX2ZZ8yYMZo2RCfQ6fT6+nqjVK1zRkpburq6AAADzYUjGAzGyZMnCYJYv359Z2cnma5NlHZ0dAAAdu/eTa4Fe/To0UAPvvrSb/T++eefsbGxGzduXLBgAZvNdnNzO3bs2JMnT9CNs9Etq4bJZIK/LoeB0a/GjR07FgCApp8VQaqnFCsSicTJyUlNy2KxmEqlxsfHX7t2zdnZWSgUKuYmJSWlpKR8//33yAES9GTt2bNnGrZDB8hkMo0aOJwZQW1B/1qKa1D7xdvbe9u2beXl5eiBGEKbKEW/o0pzxDdu3FDH54Git7y8XC6XKybyeDwrK6uSkhJ1zOrV8qB0d3eDvy6HgdGvxrm6ulpZWf3nP/9RSp88eTKHw7lz5w6ZcuvWre7u7hkzZqhp2cnJ6bXXXsvIyNizZ09wcDCZDiEMDQ0tLi7Ozs5W+gVG9VIolB9//HFIrdGKvLw8COHs2bPRobm5+UAjweHPCGqLra0tQRAtLS2Dlty3b9+ECRMKCgrIFG2i1NnZmcFgqPn+DInq6EXa+ueff5IpbW1tTU1NaJ2HsSyrCboEdnZ2ujKoPvrVODqdvmvXrmvXronF4pqamt7e3ra2ttLSUgaDERISkpWVlZKS0traWlxc/O677zo4OAQFBalvPCQkpKenp7m5ecGCBWRiaWnpRx99dOzYMSqVSihw8OBBAMCYMWNWrFiRkZFx4sSJ1tbWoqKio0eP6r7Zf9Hb29vc3NzT01NUVBQcHCwQCNauXYuyRCJRU1NTdna2TCarr69XWohkZWX15MmTP/74o62tbZjIh67akpuba8i1IywWy93dXZ2vB6MRq+IKMm2ilMFgrFu37uzZs0eOHGltbZXL5dXV1UhEAgMD7ezs+n1XTHX0urm5+fn5HTt27Nq1a52dnVVVVciTd955B51uFMtqgi7BlClThmxh6Az5aQVU+3nH4cOHp0yZwmAwGAzGtGnTkpOTIYS9vb1xcXHjxo2jUqmWlpYBAQFlZWWofHJyMpqhHDduXGVl5dGjR9HzBBcXl/v37yta9vPzO378uGJKcXFxv82Mi4tDBdra2jZs2GBtbc3hcObOnRsREQEAcHJy+u2331S3IikpCa0CY7FYS5cuHdTJoKAgKpXq6Ohobm7O4/GWLVtWWVlJWmtsbPTz82MwGG5ublu2bEHL9EQiEVqQcffuXRcXFyaTOXfuXHKlwkAM4bmqEdty8eJFLpcbHR2tkcMIdeKt79oRNK0hlUrRYVZWFprZsLGxQc9SFdmxY4fi2hFtovTZs2ehoaECgcDc3Bz9uJaUlEAIAwICAAARERF9nR80ehsaGoKDg0UiEZ1O53A4c+bM+eabb8jTjWIZQnjjxo05c+Y4ODggm/b29j4+Pj/++KNiGX9/f0dHR/I9Cmgya0dGM+jFSQNUZIB3uQzWFtUMTePKy8vNzc1PnTqlT9c0QC6Xz5s378SJE6PHckNDA4PBOHjwoGKiiawdGeUMOtU9ghhBbens7Lx8+XJ5eTma5xaJRFFRUVFRUQN9fsaQyOXy7Ozstra2wMDA0WM5MjLSy8sLLX6AED558iQ/P7+iokKnbg4I1rj/5d69e8TA6DxuMPqjqalp8eLFHh4e69evRylhYWGrVq0KDAxU5+GDXsnLy8vMzMzNzVW9ZM+ULB86dKiwsPDixYtUKhUAcP78eUdHx3nz5n333Xe69XNAhnwHqP09pAkTFhaGVoS6urqeO3dOr3Xpe6xqyLaoRst4u3z5cmhoqA79wQxKdnZ2TEyM4muXQ0DL605ALd6SJQgiLS0N7wVnXNDeg9pcx5ECjrfRiZbXHY9VMRiMKYM1DoPBmDJY4zAYjCmDNQ6DwZgyWOMwGIxJo+UzXQwGg9E32qwdMdey7uDgYG9vb500AzM0bty4kZCQMLTtAkYWq1evxvE2Clm9erU2p2urcd7e3ni9ktFJSEgYDVdh9erVON5GIVpqHJ6Pw2AwpgzWOAwGY8pgjcNgMKYM1jgMBmPKYI3DYDCmjPE17ubNmxMnTqRQKARB2NnZRUdHG6zqzMxMd3d39IU4e3v7N99802BVY/TEpk2byK/+KV3QK1euhIWFKV70t956S7HAwoULuVyumZnZpEmTtNm7QBuioqI8PT15PB6dTheJRDt37lT6tOeZM2dmzZrF5XJdXFzWrVtXW1trdMuI3t7e+Ph4Hx8fxcQLFy7ExsYqfmA1OzubvEA2NjYaVTFEtFwDrKvvx6F9ppubm3ViTSOEQqHiJvAjDgN863yYoE68oc+y5+bmlpWVdXV1kekRERFLliwhd4YXCoXW1tYAgJycHMXTc3NzFfdzMDy+vr7JycmNjY2tra1paWlUKnXx4sVkbmpqKgAgNjZWIpEUFBS4u7t7eXnJZDLjWoYQ3r9/f86cOQCAqVOnKmUlJCT4+vqS/9q9vb3V1dXXrl175ZVXRtd+DgbTOKlU6u3trZiCNW5Q+naaUUypqXFK+zlACA8cOODh4dHZ2UmmCIXC06dPUygUR0dHiURCphtd4/z9/RW/KIkWA6LdfyCEfn5+Y8eOJXd+OXz4MAAgPz/fuJYLCwuXL1+ekpLi5eXVV+MghGKx2NvbW0kx8X4O+uLEiRN1dXXG9mKEocNOM3z/V1RU7NmzZ+/evWgHcRIfH5/g4OCamprt27cb0h/V5OTkKO5/iEZzUqkUHVZVVTk4OBAEgQ7R/qdKmz0a3vLUqVMzMzPXrFlDp9P7LRAZGVlYWJiQkKCONZ0zHDXuyJEjbDabxWKdP3/+5Zdf5vF4Tk5OZ8+eRbmJiYkMBsPW1nbTpk0ODg4MBsPHx+fWrVsoVywW02g0tLEeAOC9995js9kEQTQ0NAAAgoODQ0JCKisrCYIQiURq+vPTTz95enry+XwGgzFlypTLly8DADZs2IDmFIRCIdp4eN26dSwWi8/nX7hwAQAgl8sjIiIEAgGTyXzuuefQ3dZHH33EYrG4XG5dXV1ISIijo2NZWZku+25gIISHDh2aOHEinU63tLRctmzZvXv3UJZGnabb/r906ZK+t1tNTEyEEC5durRvVnR0tIeHx/Hjx69cudLvuSo6TXWUggECQFNqamqYTKabmxs6dHd3V/yFQFNm7u7uw8pyXywtLX19fRMSEqBRXnIf8h2g9veQiiiNVcPDwwEAV69ebWlpqaurmzdvHpvN7u7uRrlBQUFsNru0tLSrq6ukpARNlJJ33WvWrLGzsyMtx8XFAQDq6+vR4YoVK4RCoWLVg45Vz507FxkZ2dTU1NjYOHv2bPIGe8WKFWZmZjU1NWTJN95448KFC+jv7du30+n0jIyM5ubmXbt2USiU27dvk0374IMPkpKSli9f/t///neoffa/qDlWjYiIoNFop06dkkgkRUVF06dPt7GxITdv1ajTdNj/OTk5XC43KipKnZaqE299x6ru7u6enp5KxYRC4cOHDyGE169fp1Aorq6u7e3tsM9YVXWnqY7SgQJAfTo6OrhcrlgsJlPy8vKoVGpiYmJra+vvv/8+ceLERYsWaWRTr5ZfeOGFfseqEMKwsDAAQEFBAZky6vZX7VfjyAmU5ORkAEBFRQU6DAoKUlSl27dvAwD27t2LDnWucYrExMQAAOrq6iCE6Mef3A65paVl3LhxaMqjs7OTxWIFBgaiLKlUSqfTN2/e3Ldp2qOOxkmlUg6HQ/oDIfzll18AAKS4aKpxOux/9RmCxrW3txMEsWTJEqVipMZBCENCQgAAaD9pRY0btNNURKmKAFCf8PBwDw8P8jkJYvfu3eQNipOTU1VVlUY29WpZhcZ98cUXAICvv/6aTMHzcf8HtC+UTCbrN3fmzJksFoscROgVtH8aeha+YMECDw+PL774Al2G1NTUwMBANOVRVlYmlUonT56MzmIymfb29obxsF9KSkra29tnzpxJpsyaNYtGo5FjTG0wZP9rCvo1Ur1pXnR09Pjx45OTk/Pz8xXTNe00xSjVPgCysrLS09MvX77M5XLJxPDw8KNHj169erW9vf3Bgwc+Pj7e3t5VVVXqm9WrZRWgS/D06VNdGVSfkaFxg0Kn0+vr6/Vk/Lvvvps/f/6YMWPodPrOnTvJdIIgNm3a9ODBg6tXrwIAvv7663feeQdldXR0AAB2795NLgV69OgROb9reCQSCQCAw+EoJlpYWLS1tenEvl77Xxu6uroAAAPNhSMYDMbJkycJgli/fn1nZyeZrk2naRkAqampH374YV5enqurK5n4559/xsbGbty4ccGCBWw2283N7dixY0+ePEF3yka3rBomkwn+uhwGxhQ0TiaTSSQSJycnHdq8du1afHw8AODx48cBAQH29va3bt1qaWmJjY1VLLZ27VoGg3H8+PGysjIej+fi4oLSx4wZAwCIj49XvGe+ceOGDj3UCAsLCwCA0j+nrjpNH/2vK9C/luIa1H7x9vbetm1beXn5vn37yERtOk2bAEhKSkpJSfn+++/Hjh2rmF5eXi6XyxUTeTyelZVVSUmJOmb1anlQuru7wV+Xw8Bo+/244UBeXh6EcPbs2ejQ3Nx8oFGt+vz6669sNhsAUFxcLJPJNm/ejJ4xkQ/XEZaWlqtXr05NTeVyuf/85z/JdGdnZwaDUVhYqKUbumLy5MkcDufOnTtkyq1bt7q7u2fMmIEOtek0ffS/rrC1tSUIoqWlZdCS+/bty8nJKSgoEAgEKGXQTlPB0AIAQvivf/2rubk5Ozvb3Fz5fxNp659//kmmtLW1NTU1oXUexrKsJugS2NnZ6cqg+ozU+7je3t7m5uaenp6ioqLg4GCBQLB27VqUJRKJmpqasrOzZTJZfX290hofKyurJ0+e/PHHH21tbf3+K8pksqdPn+bl5SGNQxF/5cqVrq6u8vLyvnMx77777rNnz3JycpYsWUImMhiMdevWnT179siRI62trXK5vLq6WjGGDAyDwQgJCcnKykpJSWltbS0uLn733XcdHByCgoJQAU07TVf9n5ubq9e1IywWy93dvbq6etCSaMSquIJs0E5TbW2gAAgMDLSzs+v3XbHS0tKPPvro2LFjVCqVUODgwYMAADc3Nz8/v2PHjl27dq2zs7Oqqgp5Qs6QGMWymqBLMGXKlCFbGDpDfloBdfRc9ebNm5MmTaJQKAAAe3v7/fv3JycnoxnKcePGVVZWHj16lMfjAQBcXFzu378PIQwKCqJSqY6Ojubm5jweb9myZZWVlaTBxsZGPz8/BoPh5ua2ZcuWHTt2AABEIhFa3HD37l0XFxcmkzl37txPP/1UKBQO1DNZWVnIYGhoqJWVlYWFxapVq9D6b6FQSC6VgBBOmzYtLCxMqV3Pnj0LDQ0VCATm5uZjxoxZsWJFSUlJbGwsul13dnY+deqUll2HUHPtSG9vb1xc3Lhx46hUqqWlZUBAQFlZGZmrfqfV1tbqqv9ra2svXrzI5XLJZ9OqUSfe+q4dEYvFVCpVKpWiw6ysLHTRbWxs0LNURXbs2KG4dkRFpw0apf0GAIQwICAAABAREdHX+eLi4n5DMS4uDhVoaGgIDg4WiUR0Op3D4cyZM+ebb74hTzeKZQjhjRs35syZ4+DggGza29v7+Pj8+OOPimX8/f0dHR3J9yjgKFw7ohHonUTD1zsQr7zyyoMHD4xVu+HfVzVW/w9N48rLy83NzXX1i6I9crl83rx5J06cGD2WGxoaGAzGwYMHFRPx2pFBGHQWWd+Q49yioiJ0z2JcfwyM0ftfBZ2dnZcvXy4vL0fz3CKRKCoqKioqSukzG0ZBLpdnZ2e3tbUFBgaOHsuRkZFeXl5isRgAACF88uRJfn5+RUWFTt0ckJGqcUYnNDS0vLz8/v3769atU3wYhzE6TU1Nixcv9vDwWL9+PUoJCwtbtWpVYGCgOg8f9EpeXl5mZmZubq7qJXumZPnQoUOFhYUXL15Ea0vPnz/v6Og4b9687777Trd+DsiQ7wC1v4ccGmFhYWixpaur67lz5wxcO0l4eDiFQnF2diZf3jIWBh6rGrH/tYy3y5cvh4aG6tAfzKBkZ2fHxMQofu9kCGh53QmoxVuyBEGkpaXhveCMS3p6+urVq7W5jiMFHG+jEy2vOx6rYjAYUwZrHAaDMWWwxmEwGFMGaxwGgzFltH1f1YjvmWMQ6BKkp6cb2xFDgOMNozFaPtPFYDAYfWO0tSMYjKbg9R8YA4Pn4zAYjCmDNQ6DwZgyWOMwGIwpgzUOg8GYMljjMBiMKYM1DoPBmDJY4zAYjCmDNQ6DwZgyWOMwGIwpgzUOg8GYMljjMBiMKYM1DoPBmDJY4zAYjCmDNQ6DwZgyWOMwGIwpgzUOg8GYMljjMBiMKYM1DoPBmDJY4zAYjCmDNQ6DwZgyWOMwGIwpgzUOg8GYMljjMBiMKYM1DoPBmDJY4zAYjCmDNQ6DwZgyWOMwGIwpgzUOg8GYMljjMBiMKYM1DoPBmDJY4zAYjCmDNQ6DwZgyWOMwGIwpQ0AIje0DxpQJCgoqKysjD+/evevm5mZpaYkOzczMvvrqKycnJyN5hzF9zI3tAMbEsbOzO3r0qGJKUVER+be7uzsWOIxewWNVjH554403Bsqi0Whr1641oC+Y0Qgeq2L0zuTJk0tLS/uNtLKyMg8PD8O7hBk94Ps4jN75xz/+YWZmppRIEMTUqVOxwGH0DdY4jN55/fXX5XK5UqKZmdnbb79tFH8wowo8VsUYAh8fn1u3bvX29pIpBEFUVVU5Ojoa0SvMaADfx2EMwVtvvUUQBHlIoVDmzp2LBQ5jALDGYQzBqlWrFA8JgvjHP/5hLGcwowqscRhDYGNj8+KLL5JPHgiCCAgIMK5LmFEC1jiMgXjzzTfR5K+ZmdmiRYusra2N7RFmVIA1DmMgli9fTqPRAAAQwjfffNPY7mBGC1jjMAaCzWb//e9/BwDQaLQlS5YY2x3MaAFrHMZwrFmzBgAQEBDAZrON7Qtm1ACNx8qVK43degwGYwiMqDNG/u7I7Nmzt27dalwfhgM3btxISEhIS0sztiN6Z/Xq1Vu2bJk7d66xHcEYCBTbRnTAyBrn5OT02muvGdeHYUJCQsJo6IrVq1fPnTt3NLQUQ2JcjcPzcRgMxpTBGofBYEwZrHEYDMaUwRqHwWBMGaxxGAzGlMEaNwhRUVGenp48Ho9Op4tEop07d7a3t/dbcsOGDVwulyCIwsJCw/h28eJFPp//7bffGqa64cCVK1fCwsIyMzPd3d0JgiAI4q233lIssHDhQi6Xa2ZmNmnSpLt37xrFyUFj5syZM7NmzeJyuS4uLuvWrautrTW6ZURvb298fLyPj49i4oULF2JjY/t+5XTEYMS1eStXrly5cqURHVAHX1/f5OTkxsbG1tbWtLQ0KpW6ePHigQqfPXsWAFBQUKBpLWhlnKZn5eTk8Hi8CxcuaHqiEQEApKWlDe3ciIiIJUuWtLa2okOhUIhe7M/JyVEslpub++qrr2rrqBaojpnU1FQAQGxsrEQiKSgocHd39/LykslkxrUMIbx///6cOXMAAFOnTlXKSkhI8PX1bW5uVtOUIkOLbR2CNW4Q/P39e3p6yEO0sOvx48f9FjawxhkMqVTq7e2tE1ND1rgDBw54eHh0dnaSKUKh8PTp0xQKxdHRUSKRkOlG1zjVMePn5zd27Nje3l50ePjwYQBAfn6+cS0XFhYuX748JSXFy8urr8ZBCMVisbe3t/qKSWL02MZj1UHIyclR3G/FxsYGACCVSvstrPipW1PixIkTdXV1RnSgoqJiz549e/fuZTAYiuk+Pj7BwcE1NTXbt283lm99UR0zVVVVDg4OZKg4OzsDAB49emRcy1OnTs3MzFyzZg2dTu+3QGRkZGFhoXFX8w6Nkadxp06dmjlzJoPBYLPZrq6u+/btAwBACA8dOjRx4kQ6nW5pabls2bJ79+6h8keOHGGz2SwW6/z58y+//DKPx3NyckI3XACAiRMnEgRBoVBmzJiBYmXnzp18Pp/BYHz55Zd9a6+pqWEymW5ubugQQhgXFzd+/Hg6nc7n83fs2GGAHkDk5+cLBAKCINDPtepmJiYmMhgMW1vbTZs2OTg4MBgMtMECyhWLxTQazd7eHh2+9957bDabIIiGhgYAQHBwcEhISGVlJUEQIpEIAHDp0iUej7d//36DNTYxMRFCuHTp0r5Z0dHRHh4ex48fv3LlSr/nDjk2AAByuTwiIkIgEDCZzOeee25oL9spxYy7u7viDwaaMnN3dx9WlvtiaWnp6+ubkJAAR9wOMEa8hxzCWDU+Ph4AcPfsdpQAACAASURBVODAgcbGxqamps8//3zNmjUQwoiICBqNdurUKYlEUlRUNH36dBsbm9raWnRWeHg4AODq1astLS11dXXz5s1js9nd3d0Qwp6eHldXV4FAoDgE2Lp1a3x8fN/aOzo6uFyuWCwmU8LDwwmC+Pjjj5ubm6VSaXJyMjDgWLWqqgoAkJSUNGgzIYRBQUFsNru0tLSrq6ukpATNTJPDnDVr1tjZ2ZGW4+LiAAD19fXocMWKFUKhkMzNycnhcrlRUVGaOgyHOlZ1d3f39PRUShQKhQ8fPoQQXr9+nUKhuLq6tre3wz5j1SHHBoRw+/btdDo9IyOjubl5165dFArl9u3bGnneN2by8vKoVGpiYmJra+vvv/8+ceLERYsWadoh+rP8wgsv9DtWhRCGhYUNIbyNPlYdSRrX3d1tYWHh5+dHpvT09CQkJEilUg6HExgYSKb/8ssvAADynxDFMTmVg5SooqICHSLdTE9PR4cdHR0CgaClpaWvA+Hh4R4eHuSct1QqZbFYL730ElnAwPNx/WrcQM0MCgri8/nkubdv3wYA7N27Fx1qpHHaMASNa29vJwhiyZIlSumkxkEIQ0JCAADvv/8+/L8ap01sdHZ2slgs8lypVEqn0zdv3qyR80oxg9i9ezd5k+Hk5FRVVaWRTb1aVqFxX3zxBQDg66+/1sig0TVuJI1Vi4qKJBLJokWLyBQzM7MPPvigpKSkvb195syZZPqsWbNoNBo5FlMCfY1WJpOhww0bNvD5fHKiISUlZdmyZTweT+msrKys9PT0y5cvc7lclFJRUSGVSl988UUdtU/HKDVTiZkzZ7JYLHLUNpypq6uDELJYLBVloqOjx48fn5ycnJ+fr5iuTWyUlZVJpdLJkyejLCaTaW9vr1GP9Y0ZAEB4ePjRo0evXr3a3t7+4MEDHx8fb29v9HM1HCyrAF2Cp0+f6sqgYRhJGtfa2goAsLCwUEqXSCQAAA6Ho5hoYWHR1tamjlkOh7Nx48br16+jX/hPP/1ULBYrlUlNTf3www/z8vJcXV3JxOrqagDAmDFjNG3IMIFOp9fX1xvbi8Hp6uoCAAw0F45gMBgnT54kCGL9+vWdnZ1kujax0dHRAQDYvXs38RePHj0a6HFTX/qNmT///DM2Nnbjxo0LFixgs9lubm7Hjh178uQJunE2umXVMJlM8NflGEGMJI0bO3YsAABNhCuCVE8paiUSiZOTk5qWxWIxlUqNj4+/du2as7OzUChUzE1KSkpJSfn++++RAyToGd+zZ880bMewQCaTadRFRgT9aw26BtXb23vbtm3l5eXoMRRCm9hAv15KM7M3btxQx+eBYqa8vFwulysm8ng8KyurkpISdczq1fKgdHd3g78uxwhiJGmcq6urlZXVf/7zH6X0yZMnczicO3fukCm3bt3q7u6eMWOGmpbRZ+wyMjL27NkTHBxMpkMIQ0NDi4uLs7Ozle4FUL0UCuXHH38cUmuMTF5eHoRw9uzZ6NDc3HygUa3RsbW1JQiipaVl0JL79u2bMGFCQUEBmaJNbDg7OzMYDE3fWlEdM0hb//zzTzKlra2tqakJrfMwlmU1QZfAzs5OVwYNw0jSODqdvmvXrmvXronF4pqamt7e3ra2ttLSUgaDERISkpWVlZKS0traWlxc/O677zo4OAQFBalvPCQkpKenp7m5ecGCBWRiaWnpRx99dOzYMSqVSihw8OBBAMCYMWNWrFiRkZFx4sSJ1tbWoqKio0eP6r7ZuqO3t7e5ubmnp6eoqCg4OFggEKxduxZliUSipqam7OxsmUxWX1+vtKjKysrqyZMnf/zxR1tbm0wmy83NNeTaERaL5e7ujmYGVINGrIoryLSJDQaDsW7durNnzx45cqS1tVUul1dXVyMRCQwMtLOz6/ddMdUx4+bm5ufnd+zYsWvXrnV2dlZVVSFP3nnnHXS6USyrCboEU6ZMGbIF42CE5xx/MbT3HA4fPjxlyhQGg8FgMKZNm5acnAwh7O3tjYuLGzduHJVKtbS0DAgIKCsrQ+WTk5PRXOm4ceMqKyuPHj2Knie4uLjcv39f0bKfn9/x48cVU4qLi/vttLi4OFSgra1tw4YN1tbWHA5n7ty5ERERAAAnJ6fffvtNo0YN4dlTUlISWtHGYrGWLl06aDODgoKoVKqjo6O5uTmPx1u2bFllZSVprbGx0c/Pj8FguLm5bdmyBS30E4lEaHHJ3bt3XVxcmEzm3Llza2trL168yOVyo6OjNXIYAYa0dgRNJkilUnSYlZWF5hNsbGzQs1RFduzYobh2RJvYePbsWWhoqEAgMDc3Rz9pJSUlEEK0AXZERERfVweNmYaGhuDgYJFIRKfTORzOnDlzvvnmG/J0o1iGEN64cWPOnDkODg7Ipr29vY+Pz48//qhYxt/f39HRkXyPQk2M/lx15GmcSWKAOAgKCrKystJrFeowNI0rLy83Nzc/deqUPlwaAnK5fN68eSdOnBg9lhsaGhgMxsGDBzU90egaN5LGqhgtGbmfjhCJRFFRUVFRUQN99MWQyOXy7Ozstra2wMDA0WM5MjLSy8ur75KD4Q/WOMzIICwsbNWqVYGBgeo8fNAreXl5mZmZubm5qpfsmZLlQ4cOFRYWXrx4kUql6tYxA4A1blSwa9eukydPtrS0uLm5ZWRkGNudIbJ//36xWHzgwAHjuvHiiy+ePn2afL3X5C2fP3/+2bNneXl5lpaWOnfMABh570GMYYiJiYmJiTG2Fzpg4cKFCxcuNLYXo4tXX3311VdfNbYXQwffx2EwGFMGaxwGgzFlsMZhMBhTBmscBoMxZYz8zKG6ujo9Pd24PgwH0Jveo6Qr1HytHWMaGP9yG3H98cqVK43ceAwGYxCMqDNGHqvid7kQRn/fxWAALfYexIxEhrYJhg7B83EYDMaUwRqHwWBMGaxxGAzGlMEah8FgTBmscRgMxpTBGofBYEyZEaNxZWVlW7ZsmTRpEpfLNTc35/P5Hh4e/v7+BlhhGBUV5enpyePx6HS6SCTauXMn+aXGzMxMd3d3xY/r02g0W1vb+fPnx8XFNTc369s30+bKlSthYWGKnfzWW28pFli4cCGXyzUzM5s0aZI2OxVog4rwQMhkspiYGJFIRKPRLCwsJk+e/McffxjXcmxs7IQJE5hMJpvNnjBhwp49e9DGnoPWe+HChdjY2BH2sVUjLpxR/1vnx48fp1Kp//M//3Pp0qXm5uaurq7KysrU1FQfH5/PP/9c3376+vomJyc3Nja2trampaVRqdTFixcrFhAKhWgLerQpzA8//LB27VqCIBwcHG7fvq1OFXh9XF8iIiKWLFlC7gMvFAqtra0BADk5OYrFcnNzFXdvMDyDhkdAQMD48eNv3rwpk8mePHmydOnS4uJi41r29/c/ePBgXV1dW1tbeno6lUp96aWX1Kw3ISHB19e3ublZnYrgMIjtEaBxN27cMDMzW7BggUwmU8q6dOlSUlKSfrz7//j7+/f09JCHr732GgAAbeaCIDVOkXPnzlEoFFtbW4lEMmgVBogDqVTq7e1tdFNqatyBAwc8PDw6OzvJFKFQePr0aQqF4ujoqNilRtc41eFx9uxZgiCKioqGleWAgADFvl21ahUA4MmTJ+rUCyEUi8Xe3t59/x/7xegaNwLGqtHR0XK5/MCBA+bmym/XLlq06P3339e3Azk5OYrb2dnY2AAABt0vfeXKlWvXrq2rq/vss8/06596nDhxoq6ubriZ6peKioo9e/bs3bsX7dJN4uPjExwcXFNTs337dv3Vrimqw+PTTz+dPn360Pbr05/lrKwsxb51dHQEAJAD0kEDPjIysrCwMCEhYQhVG57hrnHd3d1Xr161trZ+/vnnVZeEEB46dGjixIl0Ot3S0nLZsmX37t1DWUeOHGGz2SwW6/z58y+//DKPx3Nycjp79izKnThxIkEQFAplxowZ6ELu3LmTz+czGIwvv/yyb0U1NTVMJtPNzW1Q59Hupbm5uRo0WCUq2igWi2k0Gvkx6/fee4/NZhME0dDQAAAIDg4OCQmprKwkCEIkEiUmJjIYDFtb202bNjk4ODAYDB8fn1u3bg3BFADg0qVLut1uNTExEUK4dOnSvlnR0dEeHh7Hjx+/cuWKpl2kOgwAAHK5PCIiQiAQMJnM5557bmgvISmGR3d3982bN728vIZgx5CWy8vLLSwsXFxcBq0XYWlp6evrm5CQACHUiQP6xYj3kOqMVe/fvw8AmD179qDWIiIiaDTaqVOnJBJJUVHR9OnTbWxsamtrUW54eDgA4OrVqy0tLXV1dfPmzWOz2d3d3RDCnp4eV1dXgUCgeH++devW+Pj4vrV0dHRwuVyxWKyY2O9YFUKI5nGdnZ0HdV7N+3nVbVyzZo2dnR1ZOC4uDgBQX1+PDlesWCEUCsncoKAgNptdWlra1dVVUlIya9YsLpdLjkc0MpWTk8PlcqOiogb1H6o3VnV3d/f09FRKFAqFDx8+hBBev36dQqG4urq2t7fDPmPVIYcBhHD79u10Oj0jI6O5uXnXrl0UCkXN6VQSpfB4+PAhAMDLy2v+/Pn29vZ0On3ChAmHDx/WdItSPVnu7u6urq5OSkqi0+kD7evYb8BDCMPCwgAABQUFg9Zi9LHqcNe4O3fuAAD+9re/qS4mlUo5HE5gYCCZ8ssvvwAAyH88FNzkHERycjIAoKKiAh3Gx8cDANLT09FhR0eHQCBoaWnpW1F4eLiHhwc5EY4YSOMghARBWFhYqHYeqhcHg7ZRU41T9Pn27dsAgL179w7BlEYMqnHt7e0EQSxZskQpndQ4CGFISAgAAO0erahx2oRBZ2cni8Uiz5VKpXQ6ffPmzRq1Tik80K7PL7300s8//9zY2CiRSP71r38BAFJSUjQyqyfLdnZ2AABra+tPPvmEFHrV9ZJ88cUXAICvv/560FqMrnHDfazK4XCAGpNfJSUl7e3tM2fOJFNmzZpFo9HI8ZcSNBoNACCTydDhhg0b+Hw+Ob+QkpKybNkytGW6IllZWenp6ZcvX+Zyueo439HRASHsa2doaNpGjZg5cyaLxSKHdUakrq4OQqh6i7zo6Ojx48cnJyfn5+crpmsTBmVlZVKpdPLkySiLyWTa29tr1CF9w4NOpwMAJk2a5OPjY2Vlxefz9+7dy+fzjx49qr5Z/Vmuqqqqq6s7c+bMV199NW3atL5zrCoCHl2gp0+fatQQozDcNc7V1ZXBYKARqwokEgn4SxBJLCws2tra1KmFw+Fs3Ljx+vXr6Gf/008/7btXbmpq6ocffpiXl+fq6qqm88jtCRMmqFleNVq2cVDodHp9fb1OTGlDV1cX+Ot/eCAYDMbJkycJgli/fn1nZyeZrk0XdXR0AAB2795NLnV89OjRoD+uJP2Gh4ODAwAAzWMiaDSai4tLZWWlmmb1aplKpY4ZM2bhwoWpqaklJSVKO7epDngmkwn+uljDnOGucXQ6fdGiRQ0NDT///HPf3Kampg0bNgAALCwsAABKoSyRSJycnNSsSCwWU6nU+Pj4a9euOTs7C4VCxdykpKSUlJTvv/9+7Nix6jt/6dIlAMDLL7+s/ikq0L6NKpDJZLoypSXon2fQVabe3t7btm0rLy/ft28fmahNF40ZMwYAoDQJq+YK84HCg8PhjBs3rrS0VDGxp6eHz+erY1avlhURiURmZmYlJSWD1kvS3d0N/rpYw5zhrnEAgMjISDqdvm3bNsVfbMTvv/+OFpRMnjyZw+GgyTvErVu3uru7Z8yYoWYtTk5Or732WkZGxp49e4KDg8l0CGFoaGhxcXF2drbSDYJqamtr4+PjnZyc1q9fr/5ZKhi0jebm5uToW1Py8vIghLNnz9belJbY2toSBNHS0jJoyX379k2YMKGgoIBM0SYMnJ2dGQxGYWGhRt4OGh6rV68uKCh48OABOpRKpY8ePVJnwYf+LDc2Nr7xxhuKKeXl5XK53NnZWZ16EegCoRm94Y7BZwD/P+q/55CRkcFisWbMmPHdd99JJJLu7u4HDx4cPXpUJBKhiWcI4b///W8qlXrq1KmWlpaioqJp06Y5ODigR2+wz2TzsWPHAAD//e9/FWtBLwNNmTJFMfH333/vt9/i4uLIMkKhkMfjtbW1yeXy3t7eurq61NRUd3d3e3v7O3fuqNNANedlVbcR3dF888033d3ddXV1aOUg+aDgn//8J5PJfPjwYWtra3d3d1BQEJfLbWpqkslkv/32m6enp0Ag6OrqGoKpixcvcrnc6OhodVoK1HiuKhQKvby8+iaSzxxI0Ppwxeeq2oTBu+++S6PRkpOTW1paenp6qqqq0LLY1atX29ra/vrrr31dHTQ8mpqaXF1d582b9+jRo4aGhvfff59CoZCPI41iubOz09raGj1c7u7uvnv37uzZs9lsNnpHQp2AhxBGRkYCAAoLC/vaV8LozxxGhsZBCB8/frx9+/YpU6ZwOBwzMzMLC4tp06a98847P//8MyrQ29sbFxc3btw4KpVqaWkZEBBQVlaGspKTk9EU6bhx4yorK48ePYqeA7i4uNy/f1+xFj8/v+PHjyumoAdYA13yCxcuPPfccywWi0ajUSgUAAB6kPr8889HRUU1Njaq2To140BFGyGEjY2Nfn5+DAbDzc1ty5YtO3bsAACIRCK0IuTu3bsuLi5MJnPu3Lm1tbVBQUFUKtXR0dHc3JzH4y1btqyysnJopnSucWjeQCqVosOsrCw0dWBjY0P+pJHs2LFDUeO0CYNnz56FhoYKBAJzc/MxY8asWLGipKQEQhgQEAAAiIiI6Ouq6vBAVFVVvf7665aWlnQ6/fnnn8/NzSWzjGIZQrh06VI3NzcOh0On04VCYWBgIPkSmDr1Qgj9/f0dHR3VWaqCNQ7v5wChMeIgKCjIysrKkDUi1NG48vJyc3PzgVZsGR65XD5v3rwTJ05gy4iGhgYGg3Hw4EF1Chtd40bAfBxGTwzbr0eIRKKoqKioqCilz2wYBblcnp2d3dbWFhgYiC0jIiMjvby8+q49GJ5gjcMMR8LCwlatWhUYGKjOwwe9kpeXl5mZmZubq3rJ3iixDAA4dOhQYWHhxYsXqVSqzo3rA6xxo5Fdu3adPHmypaXFzc0tIyPD2O70z/79+8Vi8YEDB4zrxosvvnj69Gny7d1Rbvn8+fPPnj3Ly8uztLTUuXE9ofwlD8xoICYmRmnB5/Bk4cKFCxcuNLYXmP/Pq6+++uqrrxrbC83A93EYDMaUwRqHwWBMGaxxGAzGlMEah8FgTBkjP3O4efMm+pb8KKe6uhoAMEq6Ij4+/ty5c8b2AmMgUGwbEWNqnLe3txFrH1Y4OTmtXLnS2F4YAjab3XdfDowJY/TYJuCI+CI7xlQgCCItLQ1t9YTBGAA8H4fBYEwZrHEYDMaUwRqHwWBMGaxxGAzGlMEah8FgTBmscRgMxpTBGofBYEwZrHEYDMaUwRqHwWBMGaxxGAzGlMEah8FgTBmscRgMxpTBGofBYEwZrHEYDMaUwRqHwWBMGaxxGAzGlMEah8FgTBmscRgMxpTBGofBYEwZrHEYDMaUwRqHwWBMGaxxGAzGlMEah8FgTBmscRgMxpTBGofBYEwZrHEYDMaUwRqHwWBMGaxxGAzGlMEah8FgTBmscRgMxpTBGofBYEwZrHEYDMaUMTe2AxgTRyKRQAgVUzo6Opqbm8lDDodDpVIN7hdmtEAoxR8Go1sWLFjwww8/DJRrZmZWU1NjZ2dnSJcwowo8VsXol9dff50giH6zKBTK//zP/2CBw+gVrHEY/bJy5Upz8/6nRAiC+Mc//mFgfzCjDaxxGP1iaWm5cOFCMzOzvlkUCiUgIMDwLmFGFVjjMHrnzTff7O3tVUo0Nzf39/fn8/lGcQkzesAah9E7S5cupdPpSolyufzNN980ij+YUQXWOIzeYbFYAQEBSgtEmEzmK6+8YiyXMKMHrHEYQ/DGG2/IZDLykEqlrly5kslkGtElzCgBaxzGECxatEhx6k0mk73xxhtG9AczesAahzEEVCo1MDCQRqOhQwsLixdffNG4LmFGCVjjMAbi9ddf7+7uBgBQqdQ333xzoEVzGIxuwe9yYQxEb2/v2LFjnz59CgDIz8+fM2eOsT3CjArwfRzGQFAolLfeegsA4ODg4OPjY2x3MKMFdccLN27cqKqq0qsrGJPHxsYGAPDCCy+cO3fO2L5gRjyvvfaaWuWgeqxcuVLPDmMwGIwGqKldGoxVV65cqaZRzHAgLS1N/TgwGOfOndO5TQBAWlqazs1ihi0ottUEz8dhDAoeEGAMDNY4DAZjymCNw2AwpgzWOAwGY8pgjcNgMKYM1jgMBmPKYI1Ti4MHD9ra2hIE8dlnn6GUixcv8vn8b7/9VnvjUVFRnp6ePB6PTqeLRKKdO3e2t7f3W3LDhg1cLpcgiMLCQu3r7Rcdtmt4cuXKlbCwsMzMTHd3d4IgCIJAb1+QLFy4kMvlmpmZTZo06e7du0ZxctCQkMlkMTExIpGIRqNZWFhMnjz5jz/+MK7l2NjYCRMmMJlMNps9YcKEPXv2tLa2qlPvhQsXYmNj5XK5OrUMBTUXpKxcuXKUr48rLy8HAHz66afoMCcnh8fjXbhwQXvLvr6+ycnJjY2Nra2taWlpVCp18eLFAxU+e/YsAKCgoGBQs0NbH6fDdhkMoPb6uIiIiCVLlrS2tqJDoVBobW0NAMjJyVEslpub++qrr+reUbUZNCQCAgLGjx9/8+ZNmUz25MmTpUuXFhcXG9eyv7//wYMH6+rq2tra0tPTqVTqSy+9pGa9CQkJvr6+zc3N6lQENYxtrHHqoqRxOsTf37+np4c8RG+oPH78uN/C+tY4gyGVSr29vXViSk2NO3DggIeHR2dnJ5kiFApPnz5NoVAcHR3RXtcIo2uc6pA4e/YsQRBFRUXDynJAQIBi365atQoA8OTJE3XqhRCKxWJvb2+ZTKZOXRrFNh6rGgEI4blz544ePYoOc3JyFLetQi91SqXSfs8daK/SEceJEyfq6uoMVl1FRcWePXv27t3LYDAU0318fIKDg2tqarZv324wZwZFdUh8+umn06dPnzJlyrCynJWVpdi3jo6OAAByQDpokEdGRhYWFiYkJAyhatXoUuMSEhLYbDaFQpkxY4adnR2VSmWz2dOnT583b56zszODwbCwsNi5cydZ/qeffvL09OTz+QwGY8qUKZcvXwYAfPnllxwOhyAIS0vL7OzsO3fuuLi4mJmZqfPZ2MTERAaDYWtru2nTJgcHBwaD4ePjc+vWLbIAhPDQoUMTJ06k0+mWlpbLli27d++emrmK5OfnCwQCgiAOHz4MADhy5AibzWaxWOfPn3/55Zd5PJ6TkxO64ULI5fKYmJjx48czmUwbGxs3N7eYmJiB3iiuqalhMplubm6kV3FxcePHj6fT6Xw+f8eOHYP2w5DRqF2qe1ssFtNoNHt7e3T43nvvsdlsgiAaGhoAAMHBwSEhIZWVlQRBiEQiAMClS5d4PN7+/fv11LTExEQI4dKlS/tmRUdHe3h4HD9+/MqVK/2eqyIw1Ln0ERERAoGAyWQ+99xzGr2ERKIYEt3d3Tdv3vTy8hqCHUNaLi8vt7CwcHFxGbRehKWlpa+vb0JCAtT5197UvN9Tc6z673//GwBw69atjo6OhoaGxYsXAwC+++67+vr6jo4OsVgMACgsLESFz507FxkZ2dTU1NjYOHv2bGtra5ReWlrKYrHefvttdBgWFnb8+HE1/QwKCmKz2aWlpV1dXSUlJbNmzeJyueQtcUREBI1GO3XqlEQiKSoqmj59uo2NTW1trTq5SmNV9BWWpKQkdBgeHg4AuHr1aktLS11d3bx589hsdnd3N8rdv3+/mZnZ+fPnpVLpr7/+amdnN3/+/H797+jo4HK5YrGYTAkPDycI4uOPP25ubpZKpcnJyUCfY1WN2qW6t9esWWNnZ0dajouLAwDU19ejwxUrVgiFQjI3JyeHy+VGRUVp6jBUb6zq7u7u6emplCgUCh8+fAghvH79OoVCcXV1bW9vh33GqqoDQ3UXbd++nU6nZ2RkNDc379q1i0Kh3L59W6PWKYXEw4cPAQBeXl7z58+3t7en0+kTJkw4fPhwb2+vRmb1ZLm7u7u6ujopKYlOp586dUqdeknCwsL0Edt60bi2tjZ0+NVXXwEAyDnLX375BQCQmpra98SYmBgAQF1dHTr8/PPPAQApKSlnzpzZtm2bmk5CCIOCgvh8Pnl4+/ZtAMDevXshhFKplMPhBAYGkrnIH/R/pToXqqdx5HwEUqKKigp0OGvWrOeff560vHHjRgqF8uzZs77+h4eHe3h4kJPiUqmUxWIpzt3qez5Oo3ap6G2oocZpw6Aa197eThDEkiVLlNJJjYMQhoSEAADef/99+H81btDAUNFFnZ2dLBaLPFcqldLp9M2bN2vUOqWQKC4uBgC89NJLP//8c2Njo0Qi+de//oX+WTQyqyfLdnZ2AABra+tPPvmEFHrV9ZJ88cUXAICvv/560FqG0Xwc+n5/T08POkS7zynuz0SCssjnxxs3bly5cuWmTZvS09M/+uijITswc+ZMFouFRhYlJSXt7e0zZ84kc2fNmkWj0dDwSnWupqCGky3t6uqCCnfgcrmcSqX23To+KysrPT398uXLXC4XpVRUVEil0uGz9YFSu5RQ7O1hBfrtZLFYKspER0ePHz8+OTk5Pz9fMV3TwFDsorKyMqlUOnnyZJTFZDLt7e016p++IYF2qp00aZKPj4+VlRWfz9+7dy+fzyend41ruaqqqq6u7syZM1999dW0adP6Trn2rZcEXSD0pWgdYsxnDt999938+fPHjBlDp9MV5+kQ+/fvb29v135amk6n19fXAwAkEgkAgMPhKOZaWFi0tbUNmqslr7zyyq+//nr+/PnOzs47d+5kZ2f//e9/V9K41NTUDz/8MC8vNu7tfwAAIABJREFUz9XVlUysrq4GAIwZM0Z7HwwD2dvDiq6uLvDX//BAMBiMkydPEgSxfv36zs5OMl2bwOjo6AAA7N69m/iLR48eDfQ0qS/9hoSDgwMAAE1rImg0mouLS2VlpZpm9WqZSqWOGTNm4cKFqampJSUlaHymul4StBclulg6xGga9/jx44CAAHt7+1u3brW0tMTGxirmymSyDz744NChQzdu3IiOjh5yLTKZTCKRODk5AQAsLCwAAEqhqWaulkRGRi5YsGDt2rU8Hm/58uWvvfbasWPHFAskJSWlpKR8//33Y8eOVUxHD6qePXumvQ8GQLG3hxXon2fQVabe3t7btm0rLy/ft28fmahNYKAfp/j4eMWh040bN9TxeaCQ4HA448aNKy0tVUzs6elR3NrRWJYVEYlEZmZmJSUlg9ZLgrY00vmuu0bTuOLiYplMtnnzZnd3dwaDobQkYsuWLf/85z+3bt26bdu2ffv2qRkWfcnLy4MQzp49GwAwefJkDodz584dMvfWrVvd3d0zZswYNFdLSkpKKisr6+vrZTLZ48ePjxw5YmlpibIghKGhocXFxdnZ2Uo3C8grCoXy448/au+DAVDsbQCAubn5QKNaA4PeUWlpaRm05L59+yZMmFBQUECmaBMYaDmBpi+lqA4JAMDq1asLCgoePHiADqVS6aNHj9RZ8KE/y42NjUorH8rLy+VyubOzszr1ItAFQjN6OsRoGicQCAAAV65c6erqKi8vV5zdSE5OdnR0XL58OQAgJibG09NzzZo1iu+FqKa3t7e5ubmnp6eoqCg4OFggEKxduxYAwGAwQkJCsrKyUlJSWltbi4uL3333XQcHh6CgoEFzteT9998XCAT9vqFVWlr60UcfHTt2jEqlEgocPHgQADBmzJgVK1ZkZGScOHGitbW1qKhI02kXfTNQbwMARCJRU1NTdna2TCarr69/9OiR4olWVlZPnjz5448/2traZDJZbm6u/taOsFgsd3d3NPBXDRqxKk4jaBMYDAZj3bp1Z8+ePXLkSGtrq1wur66u/vPPPwEAgYGBdnZ2/b4rpjokAADbtm1zcXFZu3bt48ePGxsbQ0NDOzs70fMBY1lms9n/+c9/vv/++9bWVplMVlBQ8Pbbb7PZ7G3btqlTLwJdoKGtzlOFms8m1HmumpCQgGYNXV1df/rppw8//BDd5drZ2Z0+fTo1NRUptKWl5dmzZ5G0W1lZWVhYrFq1Ci3IEgqFXl5eBEFYWVldv34dQrh161YKhQIA4PP5d+7cGdTPoKAgKpXq6Ohobm7O4/GWLVtWWVlJ5vb29sbFxY0bN45KpVpaWgYEBJSVlamT+/HHHyPn2Wz28uXLk5KS0MovFou1dOnS5ORk1PBx48ZVVlYePXqUx+MBAFxcXO7fvw8h/P7779E7QwgqlTpx4sTMzEz418OsvsTFxaGq29raNmzYYG1tzeFw5s6dGxERAQBwcnL67bffVHfFEJ6ratou1b3d2Njo5+fHYDDc3Ny2bNmCVvaJRCK0uOTu3bsuLi5MJnPu3Lm1tbUXL17kcrnR0dEaOYwAaqwdEYvFVCpVKpWiw6ysLKFQCACwsbFBz1IV2bFjh+LaERWBMWgXPXv2LDQ0VCAQmJubo1+skpISCGFAQAAAICIioq+rg4YEhLCqqur111+3tLSk0+nPP/98bm4umWUUyxDCpUuXurm5cTgcOp0uFAoDAwPJBRXq1Ash9Pf3d3R0VGepyqh+lysoKMjKysrYXiiTnJwcHBxMHj579mzr1q10Op38l9MHBniXa5j0tjoaV15ebm5uPtCKLcMjl8vnzZt34sQJbBnR0NDAYDAOHjyoTuFhtHbEKOjxAwZDora2ViwWv/POO2QKjUYTCAQymWyYTFdpw3Dr7YEQiURRUVFRUVEDfdPFkMjl8uzs7La2tsDAQGwZERkZ6eXlhV4T0C0jSePu3btHDIyeul57mEwmlUo9ceLE06dP0bccjh8/HhERERgYiMY1GMMQFha2atWqwMBAdR4+6JW8vLzMzMzc3FzVS/ZGiWUAwKFDhwoLCy9evIjWyeoYNe/3RsRYNSwsDK3AdHV11cced0Pm2rVrf/vb33g8npmZGZ/P9/HxSU5OVvMTC0NG32PV4dPbQJO9By9fvhwaGqpXfzAakZ2dHRMTo/hVkkHRKLYJqN4bsOhLKXh78xFEenr66tWr1by+IxqCINLS0tTdNR0z8tEotkfSWBWDwWA0BWscBoMxZbDGYTAYUwZrHAaDMWXM1S968+ZN9OQBMyJAb8aMkksWHx+PH4iNHtR5LY8E38dhMBhTBq8dMVnw2hGMqYLXjmAwGMz/gjUOg8GYMljjMBiMKYM1DoPBmDJY4zAYjCmjY43LzMx0d3dHHzvas2dPv2UOHTpEEASFQpkwYcK1a9e0r4ggCPQ12jVr1vz3v//Vwv3/5eDBg2gHgM8++wylXLx4kc/nf/vtt9obj4qK8vT05PF4dDpdJBLt3LmT/KKZUqMIgqDRaLa2tvPnz4+Li2tubta+dsyVK1fCwsIUu/qtt95SLLBw4UIul2tmZjZp0qR+v+ttMHp7e+Pj4318fJTSY2NjJ0yYwGQy2Wz2hAkT9uzZo/5OAPqzrPpcFWF/4cKF2NhYPX6IUM3vk2j0bSX0FWl7e/u+m8j29PS4uLgAAF588UU1ramuCO1h3N7efuHCBYFAwOFw7t27p71lpR2jc3JyeDzehQsXtLfs6+ubnJzc2NjY2tqalpZGpVIXL16sWIBsFNoq4Ycffli7di1BEA4ODhptsW6A7wAPE4Da31aKiIhYsmQJuXuxUChE36DPyclRLKa4h7SxuH///pw5cwAAU6dOVcry9/c/ePBgXV1dW1tbeno6lUpV3GXcWJZVn6s67BMSEnx9fZubm9Wsy/jfOhcKhWjXovT09L7OoV8P3Woc4ptvvgEAvPfee9pbVtI4HeLv76/4qSy0qgttcYBQahTi3LlzFArF1tZWIpGoWZEBNE4qlXp7exvdlJoad+DAAQ8PD3JDewihUCg8ffo0hUJxdHRU7Fija1xhYeHy5ctTUlK8vLz6KlFAQIBiK9Da1SdPnhjXsupzBw17sVjs7e2t5kcVh8W3zjdv3ow0Qin90KFDISEheqr0+eefBwD8/vvverI/NCCE586dI/fTysnJUdz2ycbGBgAw6L7CK1euXLt2bV1dHTl8Hg6cOHFC+02+dW6qXyoqKvbs2bN37160ZS2Jj49PcHBwTU3N9u3b9Ve7pkydOjUzM3PNmjX97nudlZWl2ApHR0cAgJrfcNefZdXnDhr2kZGRhYWFCQkJ6tSlEfrSuAULFkycOPGHH34oKysjE3/++WepVLpw4UKlwj/99JOnpyefz2cwGFOmTLl8+TIA4Msvv+RwOARBWFpaZmdn37lzx8XFxczMTGkbR0V6enqAwnboEMJDhw5NnDiRTqdbWlouW7bs3r17ZGHVuYrk5+cLBAKCINDmYUeOHGGz2SwW6/z58y+//DKPx3Nycjp79ixZXi6Xx8TEjB8/nslk2tjYuLm5xcTEDLQKv6amhslkurm5qexOAABAe/rl5uYOWlIjVPSDWCym0Whopy4AwHvvvcdmswmCQFupBwcHh4SEVFZWEgQhEokSExMZDIatre2mTZscHBwYDIaPjw+5paRGpgAAly5d0u1WhImJiRDCpUuX9s2Kjo728PA4fvz4lStXNO0idYIhIiJCIBAwmcznnnsO3YDolvLycgsLCzQFNHwsqz63b9hbWlr6+vomJCRAnb+Zo+b9nqZj1YcPH37yyScAAMX9qAICAk6ePIm2HFccq547dy4yMrKpqamxsXH27NnW1tYovbS0lMVivf322+gwLCzs+PHjShUpDutOnToFANixYwc6jIiIoNFop06dkkgkRUVF06dPt7Gxqa2tVSdXaaxaVVUFAEhKSkKH4eHhAICrV6+2tLTU1dXNmzePzWaTk4/79+83MzM7f/68VCr99ddf7ezs5s+f329HdXR0cLlcsVisolEkaAbX2dm5X1N9UfN+XnU/rFmzxs7OjiwcFxcHAKivr0eHK1asEAqFZG5QUBCbzS4tLe3q6iopKZk1axaXyyXHIxqZysnJ4XK5UVFR6rQUqDFWdXd39/T0VEpEgQohvH79OoVCcXV1bW9vh33Gqqq7SHUwbN++nU6nZ2RkNDc379q1i0KhaDSp+sILL/QdUSK6u7urq6uTkpLodPoQ9hvTk2V1zu037CGEYWFhAICCgoJBaxkW83EPHz6USCRsNtvS0hLtsFdZWenk5PTs2bO+GqdITEwMAKCurg4dfv755wCAlJSUM2fObNu2rW9F5DOHjIwMOzs7W1vb6upqCKFUKuVwOIGBgWThX375BQCA/m1U50L1NI6cfUhOTgYAVFRUoMNZs2Y9//zzpOWNGzdSKJRnz571bWx4eLiHhwc5Ba7UqL4QBGFhYdFvVl/UiYNB+0FTjVP0/Pbt2wCAvXv3DsGURgyqce3t7QRBLFmyRCmd1DgIIZpCQXutKmrcoF2kIhg6OztZLBZ5rlQqpdPpmzdvVr9pKpQIbfhrbW39ySef9H24ZyzL6pzbb9hDCL/44gsAwNdffz1oLcNiPg4AwOfz33jjjebm5tTUVABAfHz85s2b0S4nKkAb85APkjdu3Lhy5cpNmzalp6d/9NFHfcu3tLQQBMHn8z/44INXXnnll19+QRMBJSUl7e3tM2fOJEvOmjWLRqOh0ZPqXE1BjSI3Euzq6oIK99tyuZxKpSpORiCysrLS09MvX77M5XLVqaWjowNCqNutvHTbD0rMnDmTxWINNANgSNBPpuoNpaKjo8ePH5+cnJyfn6+YrmkXKQZDWVmZVCqdPHkyymIymfb29rrqkKqqqrq6ujNnznz11VfTpk3T4WymNpYHPVdF2KML9PTpUy39V0K/a4DRk4fPPvtMIpGcO3du06ZN/Rb77rvv5s+fP2bMGDqdvnPnTqXc/fv3t/8/9u40rolrfxj4mewrCQgCBQKyKOJS6lbBet16bZWKoqBYtVprxbog4EIRpYhItVjgimCvSmkrlp1PtFa0Vy21VNRapVK4IlIVlyKL7GEJMM+L8zQ3/wAhEJJg+H1fMTNnzpw5M/kxc+bMnMbGnioaXzi0t7c/efLkyy+/lN3/19bWIoR4PJ58YqFQiK8ilS9V0/z583/77bfTp083NzffvHlTLBa/8847CjEuJSXlwIEDOTk5NjY2KmZ77949hJCjo6P6JZTRaD0ghJhMZmVl5YBkpY6WlhYk11DbLRaLlZiYSBDE2rVrm5ubZfPVqaKmpiaE0O7du2UdHh89etTr8yUV0el0ExOTuXPnpqSkFBYW4hsgneesfF3lpz2bzUZ/H6wBpNkY5+zsPHXq1Bs3bvj4+Hh5eRkaGnZNU1ZW5uHhYWZmdv369bq6uoMHD8ovlUqlW7dujYqKysvLCw8PV33TQqEQIaRwItbW1lpaWva6VE2hoaGzZ89es2aNgYHB4sWLly5devz4cfkEsbGxSUlJly9ffuWVV1TP9vz58wihefPmqV9CGY3Wg1QqHais1IR/PL32MnVxcQkICCgpKdm3b59spjpVZGJighCKjo6Wv3XKy8vrxy4oYW9vT6VSCwsLBzZbNXPuum6vp31bWxv6+2ANII2/y4Uv5TIyMvz9/btNUFBQIJVKN27caGtry2KxCIKQX7ply5YPP/zQ398/ICBg3759qp8fY8eO5fF4N2/elM25fv16W1sb7rinfKmaCgsLS0tLKysrpVJpWVlZfHy8LLiTJBkYGFhQUCAWixUuDZQrLy+Pjo62tLRcu3at+iWU6bUeaDSa7B68r3JyckiSnDp1qvpZqQm/taLK0NH79u1zdHS8ffu2bI46p4qVlRWLxcrPz+9fsbtVXV2t0LWgpKSko6PDyspKhzkrX1fF0x4fINyiN4A0HuOWLl1qbGzs4eFha2vbbQKRSIQQunjxYktLS0lJiXwzR1xcnIWFxeLFixFCERERTk5OK1asUPHlEhaLtW3btqysrKSkpPr6+oKCgo8++sjc3NzHx6fXpWravHmzSCTqtldRUVHRZ599dvz4cTqdLv/O1qFDh+STkSTZ2NjY2dlJkmRlZWVqauq0adOoVKpYLB7Y9rhe68He3v7FixdisVgqlVZWVj569Eh+dSMjo2fPnj18+LChoQHHL/xuRnt7+507d/z8/EQiEe7y0tessrOzB7DvCIfDsbW1VeUD2fiOVb5hQZ1ThcVivf/++8nJyfHx8fX19R0dHU+ePPnrr78QQt7e3qampv14V4zL5f7www+XL1+ur6+XSqW3b99evXo1l8sNCAjACXSSs/J1VTzt8QEaN25cX0veCxWfTaj4XDUrKwu/yGVsbIwfUZEkuXPnzqtXr+K/d+/ejTtJUSgUJyenn3/+Gcd4IyMjoVDo5eWF+6DZ2dk5OzsTBGFkZITX9ff3p1AoCCGBQHDz5s1ffvll5MiReBfMzc29vLy6FqazszMyMtLBwYFOpxsaGnp4eBQXF6uy9PPPP8f/TLhc7uLFi2NjY3GZORyOu7t7XFwcbhx1cHAoLS09duwYjjvW1tb37t0jSfLy5cv4DSGMTqePHj06MzOTJMmCgoJuj0JkZCRJkmfOnBk/fjyHw2EwGHhn8YPUKVOmhIWFVVdXq3iwMBWfPSmvperq6lmzZrFYrBEjRmzZsmXHjh0IIXt7e9wj5NatW9bW1mw2+4033igvL/fx8cEvDtNoNAMDg0WLFpWWlvYvq3PnzvH5/PDwcFX2FKnQd8TX15dOp+NH/GQPJ6rMjh075PuOKKmiXk+G1tbWwMBAkUhEo9FMTEyWLFlSWFhIkqSHhwdCKCQkpNvS5uXlTZs2zdzcHJ8eZmZmrq6uP/30E17q7u4+YsQIHo/HZDLt7Oy8vb0LCgpk6+oqZyXrKj/tZdzc3CwsLPC/duV033dkiIuLi5PvFdja2urv789kMmU/MO3Q/vuqPj4+RkZG2twipkqMKykpodFo/ehHpiEdHR3Tp09PSEiAnLGqqioWi3Xo0CFVEg+WviNDU3l5ua+v7wcffCCbw2AwRCKRVCrVVWuUNmnw6xHqsbe3DwsLCwsLU/HNJI3q6OgQi8UNDQ3e3t6QMxYaGurs7Ozr6zvgOUOMG2BsNptOpyckJDx//lwqlT579uzEiRMhISHe3t4D25QG+iooKMjLy8vb21uVhw8alZOTk5mZmZ2drbzL3hDJGSEUFRWVn59/7tw53D12gKl4vQf3qqq7cuXKm2++aWBgQKVSBQKBq6trXFycih9UGEBavlcNCgrC3V9tbGzS09O1tl2yL99WIknywoULgYGBGi0P6BOxWBwRESH/VZJe9enc7sMY0kBF06dP/89//qPrUmhbRETEAHZD1Zy5c+d2/SoE0KGFCxcuXLhQc/nDvSoAQJ9BjAMA6DOIcQAAfQYxDgCgzyDGAQD0morPXz09PXVdUgAA+B8VYxdBqvb19Ly8PPwtXADUsWzZMj8/PxcXF10XBLz0ehojRYGqMQ6AAUEQRGpqqopnJwDqg/Y4AIA+gxgHANBnEOMAAPoMYhwAQJ9BjAMA6DOIcQAAfQYxDgCgzyDGAQD0GcQ4AIA+gxgHANBnEOMAAPoMYhwAQJ9BjAMA6DOIcQAAfQYxDgCgzyDGAQD0GcQ4AIA+gxgHANBnEOMAAPoMYhwAQJ9BjAMA6DOIcQAAfQYxDgCgzyDGAQD0GcQ4AIA+gxgHANBnEOMAAPoMYhwAQJ9BjAMA6DOIcQAAfQYxDgCgzyDGAQD0GU3XBQB6Ljk5uaGhQX7OxYsXa2trZZMeHh4mJiZaLxcYKgiSJHVdBqDP1qxZ8/XXX9PpdDyJzzeCIBBCHR0dPB6voqKCyWTqsohAr8G9KtCs5cuXI4Skf2tvb29vb8d/U6lULy8vCHBAo+A6DmhWe3u7qanpixcvul166dKl2bNna7lIYEiB6zigWTQabfny5bJ7VXnGxsYzZszQfpHAkAIxDmjc8uXLpVKpwkw6nb5q1SoqlaqTIoGhA+5VgcaRJCkSiZ48eaIw/8aNG5MnT9ZJkcDQAddxQOMIgli5cqXC7aqVldWkSZN0VSQwdECMA9qgcLtKp9PXrFmDe5AAoFFwrwq0xNHRsbi4WDb5xx9/jBkzRoflAUMEXMcBLVm1apXsdtXJyQkCHNAOiHFAS1auXNne3o4QotPpq1ev1nVxwFAB96pAeyZNmvTbb78RBPHw4UORSKTr4oAhAa7jgPa89957CKHXX38dAhzQGq1+d8TLy0ubmwODTUtLC0EQra2tcCYMcQEBAS4uLtrZllav4zIyMrp2BAXd0su6YrFYpqamlpaWsjnXrl27du2aDosEtC8jI+Px48da25y2vx/n7++/dOlSLW/0ZUQQhF7W1f379+3t7WWT+IIuPT1ddyUC2qblfpHQHge0Sj7AAaAFEOMAAPoMYhwAQJ9BjAMA6DOIcQAAfQYxDoWFhTk5ORkYGDCZTHt7+507dzY2Nnabct26dXw+nyCI/Px81fPv7OyMjo52dXUdoPIqc+7cOYFA8N1332lhWzpx8eLFoKCgzMxMW1tbgiAIgli1apV8grlz5/L5fCqVOmbMmFu3bumqnKjn437w4EFHR0c2m83lch0dHffs2VNfX6/znJWvq+Q3cubMmYMHD3Z0dPRpF7SK1CKEUGpqqja3qIoZM2bExcVVV1fX19enpqbS6fS33367p8TJyckIodu3b6uY+b1796ZNm4YQevXVV/tUqv7V1dmzZw0MDM6cOdPXFXXF09PT09NTxcQhISELFiyor6/Hk3Z2dsOGDUMInT17Vj5Zdnb2woULB7igfaTkuLu5uR06dKiioqKhoSEtLY1Op//zn//Uec7K11X+G4mJiZkxY0ZNTY2K29JyHIAYR7q5ubW3t8smcZe0srKybhP3Kcbl5+cvXrw4KSnJ2dlZOzFOayQSiYuLi/r5qB7jPv3005EjRzY3N8vm2NnZnTp1ikKhWFhY1NbWyubrPMYpP+4eHh7ye4F7CD579ky3OStft9ffiK+vr4uLi1QqVWVbWj634V4VnT17Vn5UAWNjY4SQRCLpNnGfui+++uqrmZmZK1as0L/h9RISEioqKrS2ufv37+/Zs2fv3r0sFkt+vqurq5+f39OnT7dv3661wvRK+XHPysqS3wsLCwuEUE/NI1rLWfm6vf5GQkND8/PzY2JiVNmWlg3GGHfy5MlJkyaxWCwul2tjY7Nv3z6EEEmSUVFRo0ePZjKZhoaGixYtunv3Lk4fHx/P5XI5HM7p06fnzZtnYGBgaWmJL7gQQqNHjyYIgkKhTJw4ER+VnTt3CgQCFov11Vdfdd3606dP2Wz2iBEj8CRJkpGRkaNGjWIymQKBYMeOHVqogf7Jzc0ViUQEQRw5cgT1Vi2HDx9msVjDhw/fsGGDubk5i8VydXW9fv06Xurr68tgMMzMzPDkpk2buFwuQRBVVVUIIT8/v23btpWWlhIEgfv0nj9/3sDAYP/+/RratcOHD5Mk6e7u3nVReHj4yJEjT5w4cfHixW7X7feZgxDq6OgICQkRiURsNnv8+PGpqakDvmslJSVCodDa2npQ5ax8XYXfCELI0NBwxowZMTEx5CD8jpHWrhhJ1a5Ro6OjEUKffvppdXX1ixcv/v3vf69YsYIkyZCQEAaDcfLkydra2jt37kyYMMHY2Li8vByvFRwcjBC6dOlSXV1dRUXF9OnTuVxuW1sbSZLt7e02NjYikUj+Ytvf3z86Orrr1puamvh8vq+vr2xOcHAwQRCff/55TU2NRCKJi4tDfWmPw15//XXt3Kvi1wBjY2PxpJJqIUnSx8eHy+UWFRW1tLQUFhZOnjyZz+fLbkBWrFhhamoqyzkyMhIhVFlZiSeXLFliZ2cnW3r27Fk+nx8WFtbXAqt4r2pra+vk5KQw087O7sGDByRJXr16lUKh2NjYNDY2kl3uVft95pAkuX37diaTmZGRUVNTs2vXLgqF8uuvv6q+d0qOe1tb25MnT2JjY5lM5smTJ1XPU6M5q7Ju198IFhQUpOJPo3/ndr8NrhjX1tYmFApnzZolm9Pe3h4TEyORSHg8nre3t2z+jRs3EEKyHxU+U2UNCjgS3b9/H0/iuJmWloYnm5qaRCJRXV1d1wIEBwePHDlS1qotkUg4HI5842tfnzlguo1xPVWLj4+PQCCQrfvrr78ihPbu3Ysn+xTj+k2VGNfY2EgQxIIFCxTmy2IcSZLbtm1DCG3evJn8vzFOnTOnubmZw+HI1pVIJEwmc+PGjarvnZLjbmpqihAaNmzYv/71L1lI1XnOqqyr8BuR+fLLLxFC33zzTa9b0XKMG1z3qnfu3KmtrX3rrbdkc6hU6tatWwsLCxsbG+WHcZo8eTKDwZDdWylgMBgIIdkgKevWrRMIBLLGgqSkpEWLFhkYGCislZWVlZaWduHCBT6fj+fcv39fIpHMmTNngPZPxxSqRcGkSZM4HI7sPm7wqKioIEmSw+EoSRMeHj5q1Ki4uLjc3Fz5+eqcOcXFxRKJZOzYsXgRm802MzMbqPp5/PhxRUXFt99++/XXX7/22msD2LipTs69rtv1NyKDD9Dz58/VLP+AG1wxDnfJEQqFCvNra2sRQjweT36mUChsaGhQJVsej7d+/fqrV6/i/+FHjx719fVVSJOSknLgwIGcnBwbGxvZTPx1IxMTk77uyEuKyWRWVlbquhSKWlpaEELKn9uwWKzExESCINauXdvc3Cybr86Z09TUhBDavXs38bdHjx719DCqr+h0uomJydy5c1NSUgoLCyMiIgYkWzVzVr5ut78RGTabjf4+WIPK4Ipxr7zyCkIIN2zLw1FP4bysra2V/xKZcr6+vnQ6PTo6+sqVK1ZWVnZ2dvJLY2Oq0gYUAAAgAElEQVRjk5KSLl++jAsgg580tba29nE/XkpSqbRPVao1+MfTay9TFxeXgICAkpIS/JAKU+fMwf/bFNpt8/Ly+rELStjb21Op1MLCwoHNVs2cu67b029Epq2tDf19sAaVwRXjbGxsjIyMfvjhB4X5Y8eO5fF4N2/elM25fv16W1vbxIkTVczZ0tJy6dKlGRkZe/bs8fPzk80nSTIwMLCgoEAsFiv8t8fbpVAoP/30U7/25iWTk5NDkuTUqVPxJI1G6+muVsuGDx9OEERdXV2vKfft2+fo6Hj79m3ZHHXOHCsrKxaL1ad3WnpVXV397rvvys8pKSnp6OiwsrLSYc7K11X+G5HBBwi36A0qgyvGMZnMXbt2XblyxdfX9+nTp52dnQ0NDUVFRSwWa9u2bVlZWUlJSfX19QUFBR999JG5ubmPj4/qmW/btq29vb2mpmb27NmymUVFRZ999tnx48fpdDoh59ChQwghExOTJUuWZGRkJCQk1NfX37lz59ixYwO/27rT2dlZU1PT3t5+584dPz8/kUi0Zs0avMje3v7FixdisVgqlVZWVj569Eh+RSMjo2fPnj18+LChoUEqlWZnZ2uu7wiHw7G1tVXlq8j4jlW+J5c6Zw6LxXr//feTk5Pj4+Pr6+s7OjqePHny119/IYS8vb1NTU378a4Yl8v94YcfLl++XF9fL5VKb9++vXr1ai6XGxAQgBPoJGfl6yr/jcjgAzRu3Li+llzjtPZ0g1T5ecqRI0fGjRvHYrFYLNZrr70WFxdHkmRnZ2dkZKSDgwOdTjc0NPTw8CguLsbp4+LicHung4NDaWnpsWPH8PMEa2vre/fuyec8a9asEydOyM8pKCjotloiIyNxgoaGhnXr1g0bNozH473xxhshISEIIUtLy99//73XHcnLy5s2bZq5uTnO08zMzNXV9aeffhrAupIXGxuLe7RxOBx3d/deq8XHx4dOp1tYWNBoNAMDg0WLFpWWlspyq66unjVrFovFGjFixJYtW3DHQHt7e9y55NatW9bW1mw2+4033igvLz937hyfzw8PD+9TgUmV+47gpgaJRIIns7KycGuDsbExfpYqb8eOHfJ9R9Q5c1pbWwMDA0UiEY1Gw//wCgsLSZL08PBACIWEhHRbWuXH3d3dfcSIETwej8lk2tnZeXt7FxQUyNbVVc5K1u31N4K5ublZWFh0dnZ2m7+8fpzb6hiMMQ6QWqkrHx8fIyMjjW6iVyrGuJKSEhqN1o9+ZBrS0dExffr0hIQEyBmrqqpisViHDh1SJbGW48DgulcFWjaoPxchx97ePiwsLCwsTMU3kzSqo6NDLBY3NDR4e3tDzlhoaKizs3PX7gqDAcS4frp79y7RMw2dSUNZUFCQl5eXt7e3Kg8fNConJyczMzM7O1t5l70hkjNCKCoqKj8//9y5c3Q6fcAzHwBau2Ik4V61LzRdV0FBQbi/q42NTXp6uuY2pFyfvq1EkuSFCxcCAwM1Vx7QV2KxOCIiQv5FyV5pOQ5oe+xBMEhEREQMYL9TrZk7d+7cuXN1XQrwPwsXLly4cKGuS6EM3KsCAPQZxDgAgD6DGAcA0GcQ4wAA+gxiHABAr2ntCS45CD+CDADQBX3uO+Ln5+fi4qLljb6Mli1bNhTqCn+i2d/fX9cFAdqzbNkybW5O2zHOxcUFD1wGlFu2bNlQqKv09HSEkN7vJpCn5RgH7XEAAH0GMQ4AoM8gxgEA9BnEOACAPoMYBwDQZy9NjCsuLt6yZcuYMWP4fD6NRhMIBCNHjnRzcxvwcZK6CgsLc3JyMjAwYDKZ9vb2O3fulH2pMTMz09bWVv7LcQwGY/jw4TNnzoyMjKypqdF02YagixcvBgUFydf8qlWr5BPMnTuXz+dTqdQxY8b0Y2CEAdTZ2RkdHe3q6tqnRTrJViqVRkRE2NvbMxgMoVA4duzYhw8fdk3W0tLi6Oi4e/duPHnmzJmDBw8O9i+taq0nHqnGd6NOnDhBp9P/8Y9/nD9/vqampqWlpbS0NCUlxdXV9d///veAl1PBjBkz4uLiqqur6+vrU1NT6XT622+/LZ/Azs4ODziPh4D58ccf16xZQxCEubn5r7/+2r+N9ruuXi59/X5cSEjIggULZIO029nZDRs2DCF09uxZ+WTZ2dnyQzroxL1796ZNm4YQ6jqgvZJFusrWw8Nj1KhR165dk0qlz549c3d3lx8LQgaPYhMcHCybExMTM2PGjJqaGtW3peVz+yWIcXl5eVQqdfbs2VKpVGHR+fPnY2NjB6h0PXJzc5P/BCDuzIWHbsFkMU5eeno6hUIZPnx4bW1tPzaq6fNAIpG4uLjoPKs+xbhPP/105MiRzc3Nsjl2dnanTp2iUCgWFhby9azzGJefn7948eKkpCRnZ2eFiKNkka6yTU5OJgjizp07ypP98ssv+ON98jGOJElfX18XF5euP8+eQIxT5ObmhhC6fv26JorUDxs3bkQI3b17Vzan2xhHkuTatWsRQgcOHOjHVjR9HsTGxtrZ2ek8K9VjHB62Jjk5WX6mnZ3dgwcP8MXFunXrZPN1HuNkXn/99Z4ijpJFWs72H//4x8SJE5WnkUgkrq6uRUVFXWPcixcv2Gy2wjBdSmg5xg329ri2trZLly4NGzZsypQpylOSJBkVFTV69Ggmk2loaLho0aK7d+/iRfHx8Vwul8PhnD59et68eQYGBpaWlsnJyXjp6NGjCYKgUCgTJ06USCQIoZ07dwoEAhaL9dVXX3Xd0NOnT9ls9ogRI3otPB6rNDs7uw873BdKdtnX15fBYOChCBFCmzZt4nK5BEFUVVUhhPz8/LZt21ZaWkoQhL29/eHDh1ks1vDhwzds2GBubs5isVxdXa9fv96PrBBC58+f18RYq4cPHyZJ0t3dveui8PDwkSNHnjhx4uLFi92u2+9zAyHU0dEREhIiEonYbPb48eNTU1MHdr90rq2t7dq1a87OzsqTBQcHb9q0ycTEpOsiQ0PDGTNmxMTEkIPznXStRVOyX/H73r17CKGpU6f2mjIkJITBYJw8ebK2tvbOnTsTJkwwNjYuLy/HS4ODgxFCly5dqqurq6iomD59OpfLbWtrI0myvb3dxsZGJBLJ35D6+/tHR0d33UpTUxOfz/f19ZWf2dN1XH19PULIysqqT7uMqVJXynd5xYoVpqamssSRkZEIocrKSjy5ZMkS+YsvHx8fLpdbVFTU0tJSWFg4efJkPp8vux/vU1Znz57l8/lhYWGq7Kbq13G2trZOTk4KM/F1HEmSV69epVAoNjY2jY2NZJfruH6fGyRJbt++nclkZmRk1NTU7Nq1i0Kh9KmNdfBfxz148AAh5OzsPHPmTDMzMyaT6ejoeOTIEfmRUnNzc93d3UmSrKysRF2u40iSDAoKQgjdvn1blS32Iw6oY7Bfx+EwwePxlCdrbm6OiopavHjxypUrBQLBuHHjvvjii6qqKoVh7V1dXQ0MDExMTLy9vZuamsrKyhBCVCp169atZWVlWVlZOJlEIsnMzMR3mgoiIiLMzc3Dw8NVKTyfzycIoqGhQZXEfaXiLquORqPhKx0nJ6f4+PiGhobExMR+5OPm5lZfX79nz57+FaNbTU1NDx48wONGd8vFxcXf3//hw4cff/yxwiJ1zo2Wlpb4+HgPD48lS5YIhcLdu3fT6fT+VcughTsJmJiY7N+/v7Cw8Pnz54sWLdq8efO3336LEzQ3N/v5+cXHxyvJxMHBASHU02jTujXYYxyObvgWUonCwsLGxsZJkybJ5kyePJnBYMhuuBTgIamkUimeXLdunUAgiImJwZNJSUmLFi3CQ6bLy8rKSktLu3DhAp/PV6XwTU1NJEl2zWdA9HWX+2TSpEkcDkd2Q6dzFRUVJEkqHzcvPDx81KhRcXFxubm58vPVOTeKi4slEsnYsWPxIjabbWZmNniqZUAwmUyE0JgxY1xdXY2MjAQCwd69ewUCgex/wK5du9avX29hYaEkE3xonj9/roUC99Vgj3E2NjYsFgvfsSpRW1uLulzuCYVCFa+heDze+vXrr169euPGDYTQ0aNHu46Gm5KScuDAgZycHBsbGxULj4vt6OioYvo+UXOXe8VkMvGNyWDQ0tKC/v419oTFYiUmJhIEsXbt2ubmZtl8dSqqqakJIbR7925Z/8dHjx71+h/35WJubo4Qwq2rGIPBsLa2Li0tRQjl5uYWFBSsW7dOeSZsNhv9fZgGm8Ee45hM5ltvvVVVVfXLL790XfrixQtc+0KhECGkcNbW1tZaWlqquCFfX186nR4dHX3lyhUrKyuF26LY2NikpKTLly+/8sorqhf+/PnzCKF58+apvorq1N9lJaRS6UBlNSDwT6jXvqYuLi4BAQElJSX79u2TzVSnonATu0LLrBa6nWsTj8dzcHDAD0xl2tvbBQIBQighIeHSpUsUCgWHeFwh+/fvJwji5s2bsvRtbW3o78M02Az2GIcQCg0NZTKZAQEB8v+csT/++INGoyGExo4dy+Px5Cv9+vXrbW1tEydOVHErlpaWS5cuzcjI2LNnj5+fn2w+SZKBgYEFBQVisbjXZkF55eXl0dHRlpaW3bbrqa/XXabRaLKb8b7KyckhSXLq1KnqZzUghg8fThBEXV1dryn37dvn6Oh4+/Zt2Rx1zg0rKysWi5Wfn9+/Yr8sli1bdvv27T///BNPSiSSR48ejRs3DiGUmJgoH9/lnznI3/7jQ2NqaqqL4vfiJYhxzs7Op06d+uOPP6ZPn37u3Lm6ujqpVPrgwYPjx49/8MEHdDodIcRisbZt25aVlZWUlFRfX19QUPDRRx+Zm5v7+PiovqFt27a1t7fX1NTMnj1bNrOoqOizzz47fvw4nU6Xf2fr0KFD8uuSJNnY2IgfRVVWVqampk6bNo1KpYrFYg21x/W6y/b29i9evBCLxVKptLKy8tGjR/KrGxkZPXv27OHDhw0NDTh+4Zc02tvb79y54+fnJxKJcN+XvmaVnZ094H1HOByOra3tkydPek2J71ipVKr8nH6fGywW6/33309OTo6Pj6+vr+/o6Hjy5Mlff/2FEPL29jY1NR3wd8V0km1AQIC1tfWaNWvKysqqq6sDAwObm5u7Pr1RAh8aHBYHHe08vsWQGs+My8rKtm/fPm7cOB6PR6VShULha6+99sEHH/zyyy84QWdnZ2RkpIODA51ONzQ09PDwKC4uxovi4uJwm6iDg0NpaemxY8dw3LG2tr537578VmbNmnXixAn5OT09KsI9Hs+cOTN+/HgOh8NgMCgUCkKIIAihUDhlypSwsLDq6ur+7SypWl0p2WWSJKurq2fNmsVisUaMGLFly5YdO3YghOzt7XGPkFu3bllbW7PZ7DfeeKO8vNzHx4dOp1tYWNBoNAMDg0WLFpWWlvYvq3PnzvH5/PDwcFV2U/W+I7gxQSKR4MmsrCzcnmBsbLx582aFxDt27JDvO6LOudHa2hoYGCgSiWg0momJyZIlSwoLC0mS9PDwQAiFhIR0W9q8vLxp06bhpi6EkJmZmaur608//aR8ka6yJUny8ePHy5cvNzQ0ZDKZU6ZMyc7O7jZZT31H3NzcLCws5LubKKFOHOiHlybGDTVarisfHx8jIyOtbU6mr+85nDx5UtNFUlFHR8f06dMTEhKGcrZYVVUVi8U6dOiQium1fG6/BPeqQDsG+dcj7O3tw8LCwsLCZB990aGOjg6xWNzQ0ODt7T1ks5UJDQ11dnbu2hVhkIAYB14aQUFBXl5e3t7eqjx80KicnJzMzMzs7GzlXfb0O1ssKioqPz//3LlzuGV8EIIYB9CuXbsSExPr6upGjBiRkZGh6+Ios3//fl9f308//VS3xZgzZ86pU6dk7/AOzWwRQqdPn25tbc3JyTE0NBzwzAeKtsceBINQRERERESErkuhqrlz5+Iv/ACdW7hw4cKFC3Vdil7AdRwAQJ9BjAMA6DOIcQAAfQYxDgCgz7T9zEHP3mfWqKFQV/gdoLS0NF0XBOgvrfU2Jgfnd5ABAFqnzfccCAg9QJsIgkhNTcVjmwGgBdAeBwDQZxDjAAD6DGIcAECfQYwDAOgziHEAAH0GMQ4AoM8gxgEA9BnEOACAPoMYBwDQZxDjAAD6DGIcAECfQYwDAOgziHEAAH0GMQ4AoM8gxgEA9BnEOACAPoMYBwDQZxDjAAD6DGIcAECfQYwDAOgziHEAAH0GMQ4AoM8gxgEA9BnEOACAPoMYBwDQZxDjAAD6DGIcAECfQYwDAOgziHEAAH0GMQ4AoM8gxgEA9BnEOACAPoMYBwDQZwRJkrouA9BnPj4+xcXFsslbt26NGDHC0NAQT1Kp1K+//trS0lJHpQP6j6brAgA9Z2pqeuzYMfk5d+7ckf1ta2sLAQ5oFNyrAs169913e1rEYDDWrFmjxbKAoQjuVYHGjR07tqioqNszrbi4eOTIkdovEhg64DoOaNx7771HpVIVZhIE8eqrr0KAA5oGMQ5o3PLlyzs6OhRmUqnU1atX66Q8YEiBe1WgDa6urtevX+/s7JTNIQji8ePHFhYWOiwVGArgOg5ow6pVqwiCkE1SKJQ33ngDAhzQAohxQBu8vLzkJwmCeO+993RVGDCkQIwD2mBsbDxnzhzZkweCIDw8PHRbJDBEQIwDWrJy5Urc+EulUt96661hw4bpukRgSIAYB7Rk8eLFDAYDIUSS5MqVK3VdHDBUQIwDWsLlct955x2EEIPBWLBgga6LA4YKiHFAe1asWIEQ8vDw4HK5ui4LGDJIOampqbouDgAAqMXT01M+rHXz3RGIdEPHsmXL/Pz8XFxctLbFpKQkb29vGk2rH7yJjo5GCPn7+2tzo0An8LGW182ptnTpUq0UBujesmXLXFxctHnE3d3dWSyW1jaHpaenIzixhwZ8rOVBexzQKu0HODDEQYwDAOgziHEAAH0GMQ4AoM8gxgEA9BnEuP85dOjQ8OHDCYL44osv8Jxz584JBILvvvtO/czDwsKcnJwMDAyYTKa9vf3OnTsbGxu7Tblu3To+n08QRH5+vur5d3Z2RkdHu7q6ql/UXg1gtQxOFy9eDAoKyszMtLW1JQiCIIhVq1bJJ5g7dy6fz6dSqWPGjLl165auyomUHnd1TglNZCuVSiMiIuzt7RkMhlAoHDt27MOHD7sma2lpcXR03L17N548c+bMwYMHu35jVXUQ4/5n+/btV69elZ8zgB8QvXz58ubNmx8+fFhVVRURERETE6PwuSGZEydOHD9+vE+Zl5SU/OMf/wgICJBIJANR2F7o93dVP/nkk8OHD+/atWvJkiV//vmnnZ3dsGHDkpKSvv/+e1maH374IT09fcGCBYWFhRMmTNBVUZUcd3VOCQ1lu2zZsm+++ebUqVMSieS///2vnZ1dt//mg4OD5QerxJ2N5syZU1tb29ctYjD2oDJubm51dXUDkhWPx/Px8cEfF1q6dGlmZmZaWtrjx4+trKzUzPn3338PCwv76KOPmpqatBN9BrBalGtubp4zZ47CPx6NOnDgQEpKyu+//y7fx+Xw4cOrVq3y8fEpLCwUCARaK4xySo67OqeEhrJNSUkRi8W///77uHHjEELm5uanT5/umuzq1at//PGHwsytW7f++eef8+fPv3LlSj96j8N1nKaQJJmeni4bWvTs2bPy47YYGxsjhHr6Zyj/ydxevfrqq5mZmStWrGAymWqUdzBKSEioqKjQ2ubu37+/Z8+evXv3KnTic3V19fPze/r06fbt27VWmF4pOe7qnBIayvbo0aMTJkzAAa4nzc3NO3bsiImJ6booNDQ0Pz+/20W96nOMi4mJ4XK5FApl4sSJpqamdDqdy+VOmDBh+vTpVlZWLBZLKBTu3LlTlv7nn392cnISCAQsFmvcuHEXLlxACH311Vc8Ho8gCENDQ7FYfPPmTWtrayqVqmQsTpnDhw+zWKzhw4dv2LDB3NycxWLhsQJkCUiSjIqKGj16NJPJNDQ0XLRo0d27d1VcKi83N1ckEhEEceTIEYRQfHw8l8vlcDinT5+eN2+egYGBpaVlcnKyLH1HR0dERMSoUaPYbLaxsfGIESMiIiJ66lv/9OlTNps9YsQIWakiIyNHjRrFZDIFAsGOHTt6rQdd6VO1KD9Yvr6+DAbDzMwMT27atInL5RIEUVVVhRDy8/Pbtm1baWkpQRD29vYIofPnzxsYGOzfv19Du3b48GGSJN3d3bsuCg8PHzly5IkTJy5evNjtukrOK1XOnJCQEJFIxGazx48fr38vU7a1tV27ds3Z2Vl5suDg4E2bNpmYmHRdZGhoOGPGjJiYmP7cqXR9J5/szSeffIIQun79elNTU1VV1dtvv40Q+v777ysrK5uamnx9fRFC+fn5OHF6enpoaOiLFy+qq6unTp06bNgwPL+oqIjD4axevRpPBgUFnThxotdNYz4+Plwut6ioqKWlpbCwcPLkyXw+v6ysDC8NCQlhMBgnT56sra29c+fOhAkTjI2Ny8vLVVlaUlKCEDp69CiefPz4MUIoNjYWTwYHByOELl26VFdXV1FRMX36dC6X29bWhpfu37+fSqWePn1aIpH89ttvpqamM2fO7Lb8TU1NfD7f19dXNic4OJggiM8//7ympkYikcTFxSGEbt++rWKFYK+//vqrr77ap1UQQqmpqX1ahexjtSg/WCtWrDA1NZXlHBkZiRCqrKzEk0uWLLGzs5MtPXv2LJ/PDwsL62uBPT09Fd7T7patra2Tk5PCTDs7uwcPHpAkefXqVQqFYmNj09jYSJJkdnb2woULZcmUn1fKq2j79u1MJjMjI6OmpmbXrl0UCuXXX39Vfe+UHPd+nBKayPbBgwcIIWdn55kzZ5qZmTGZTEdHxyNHjnR2dsrS5Obmuru7kyRZWVmJ451CJkFBQar8KLoe6/7fqzo5OXE4nGHDhi1fvhwhJBKJjI2NORwO/vyh7J+Yp6fnJ598YmhoaGRk5O7uXl1djfdh9OjR0dHRX3/99alTp5KTk1tbWz/44APVt06j0fD/TCcnp/j4+IaGhsTERIRQc3NzVFTU4sWLV65cKRAIxo0b98UXX1RVVeF7RuVLVeTq6mpgYGBiYuLt7d3U1FRWVobni8XiiRMnuru7s9nsCRMmLFy48MqVK21tbV1ziIiIMDc3Dw8Px5PNzc3R0dFvvvlmQECAUChks9lGRkaql2eQ6KlaUM8Hq6/c3Nzq6+v37NkzcKX+n6ampgcPHtjZ2fWUwMXFxd/f/+HDhx9//LHCIhXPq26rqKWlJT4+3sPDY8mSJUKhcPfu3XQ6vX/1M2jhZwsmJib79+8vLCx8/vz5okWLNm/e/O233+IEzc3Nfn5+8fHxSjJxcHBACBUUFPR16wPQHoc/7tre3o4n6XQ6QkgqlXZNiRfJHgOvX7/e09Nzw4YNaWlpn332Wb8LMGnSJA6Hg6NqYWFhY2PjpEmTZEsnT57MYDDw/ZHypX2Fd1y2py0tLaTchXRHRwedTu86dnJWVlZaWtqFCxf4fD6ec//+fYlEMmfOnH6UYRBSqBYF8gdrUKmoqCBJksPhKEkTHh4+atSouLi43Nxc+fl9Pa/kq6i4uFgikYwdOxYvYrPZZmZmg7B+1IHb78aMGePq6mpkZCQQCPbu3SsQCGT/A3bt2rV+/Xrl47ThQ/P8+fO+bl3jzxy+//77mTNnmpiYMJlM+XY6bP/+/Y2Njeq3KzOZTHx5iB8w83g8+aVCobChoaHXpWqaP3/+b7/9dvr06ebm5ps3b4rF4nfeeUchxqWkpBw4cCAnJ8fGxkY288mTJwihbpsh9JLsYA0qLS0t6O9fY09YLFZiYiJBEGvXrm1ubpbNV+e8ampqQgjt3r2b+NujR4+00wdIa8zNzRFCuJkVYzAY1tbWpaWlCKHc3NyCgoJ169Ypz4TNZqO/D1OfaDbGlZWVeXh4mJmZXb9+va6u7uDBg/JLpVLp1q1bo6Ki8vLyZDdu/SCVSmtray0tLRFCQqEQIaRwbqm4VE2hoaGzZ89es2aNgYHB4sWLly5dqtDNLTY2Nikp6fLly6+88or8fPwUr7W1Vf0yDH7yB2tQwT+hXvuauri4BAQElJSU7Nu3TzZTnfMK/2+Ljo6Wb0LKy8vrxy4MWjwez8HBoaioSH5me3s77oiTkJBw6dIlCoWCQzyukP379xMEcfPmTVl63OyDD1OfaDbGFRQUSKXSjRs32traslgshS4RW7Zs+fDDD/39/QMCAvbt29fv45qTk0OS5NSpUxFCY8eO5fF48lVz/fr1tra2iRMn9rpUTYWFhaWlpZWVlVKptKysLD4+3tDQEC8iSTIwMLCgoEAsFiv8t8elolAoP/30k/plGPzkDxZCiEaj9XRXq2X4FRdV+v3t27fP0dHx9u3bsjnqnFe4N0Kf3ml5GS1btuz27dt//vknnpRIJI8ePcJdSRITE+Xju/wzB/nbf3xoTE1N+7ppzcY4kUiEELp48WJLS0tJSYl880RcXJyFhcXixYsRQhEREU5OTitWrKivr1cx587Ozpqamvb29jt37vj5+YlEojVr1iCEWCzWtm3bsrKykpKS6uvrCwoKPvroI3Nzcx8fn16Xqmnz5s0ikajbrttFRUWfffbZ8ePH6XQ6IefQoUMIIRMTkyVLlmRkZCQkJNTX19+5c6dPz0AGv54OFkLI3t7+xYsXYrFYKpVWVlY+evRIfkUjI6Nnz549fPiwoaFBKpVmZ2drru8Ih8OxtbXF7QbK4TtW+VYIdc4rFov1/vvvJycnx8fH19fXd3R0PHny5K+//kIIeXt7m5qaDvi7YjrJNiAgwNraes2aNWVlZdXV1YGBgc3NzV2f3iiBD43yHnbdk4+gqvQdiYmJwY1/NjY2P//884EDB/AFp6mp6alTp1JSUnCgNTQ0TE5OxtcvRkZGQqHQy8sL96iys7NzdnYmCMLIyOjq1askSd+M4rQAACAASURBVPr7+1MoFISQQCC4efOm8gKQJOnj40On0y0sLGg0moGBwaJFi0pLS2VLOzs7IyMjHRwc6HS6oaGhh4dHcXGxKks///xzXHgul7t48eLY2FjcdYvD4bi7u8fFxeEdd3BwKC0tPXbsmIGBAULI2tr63r17JElevnxZfsxQOp0+evTozMxMkiR7ehgUGRmJN93Q0LBu3bphw4bxeLw33ngjJCQEIWRpafn777/3Wht5eXnTpk3DTR4IITMzM1dX159++qnXFcl+9R3pa7UoP1jV1dWzZs1isVgjRozYsmUL7hhob2+PO5fcunXL2tqazWa/8cYb5eXl586d4/P54eHhfSowqXLfEV9fXzqdLpFI8GRWVhZ+zGpsbLx582aFxDt27JDvO6LkvOq1ilpbWwMDA0UiEY1Gw//wCgsLSZLEw2yHhIR0W1olx135KaGTbEmSfPz48fLlyw0NDZlM5pQpU7Kzs7tN1lPfETc3NwsLC/nuJt3qeqz70z9O53x8fIyMjHRdCkVxcXF+fn6yydbWVn9/fyaTKfvNDEL9iHF9NRgOlooxrqSkhEajnTx5UgtFUkVHR8f06dMTEhKGcrZYVVUVi8U6dOhQrykHsn+cbqnzHQJNKC8v9/X1le/ix2AwRCKRVCodJO1NOjTYDlZP7O3tw8LCwsLCevokjDZ1dHSIxeKGhgZvb+8hm61MaGios7Mzfr+grwZdjLt79y7RMw3VoPrYbDadTk9ISHj+/LlUKn327NmJEydCQkK8vb3xjUn/vKS18fIKCgry8vLy9vbWzkcHlMjJycnMzMzOzlbeZU+/s8WioqLy8/PPnTuHO9j2mfxF3UtxrxoUFIS7UNrY2KSnp+u6OP9z5cqVN99808DAgEqlCgQCV1fXuLg4qVSq63IpgzR8rzpIDpaK96oyFy5cCAwM1Fx5gOrEYnFERER7e7uK6bsea4KU65qflpa2bNkyUq+/DgbkEQSRmpqq94Py4U/1dR2VDuifrsd60N2rAgDAAIIYBwDQZxDjAAD6DGIcAECfdfNx9LS0NO2XA+iKnr3+3S38GhCc2EPBkydPFD+FIP+QVf8+sgwAGGoU+o50cx0HfUeGDug7AvRM1yE9oT0OAKDPIMYBAPQZxDgAgD6DGAcA0GcQ4wAA+gxiHABAnw18jMvMzLS1tcUfOOtpuN+oqCiCICgUiqOj45UrV9TfEEEQ+IPaK1as+O9//6tG8f+/Q4cO4UFMvvjiCzzn3LlzAoHgu+++Uz/zsLAwJycnAwMDJpNpb2+/c+dO2UcZFXaKIAgGgzF8+PCZM2dGRkbW1NSov3XQbxcvXgwKCpI/RqtWrZJPMHfuXD6fT6VSx4wZM+ADJqgoPDxc4TuDssFbNbouQkgqlUZERNjb2zMYDKFQOHbs2IcPH3ZN1tLS4ujouHv3bjx55syZgwcPavBDql37APf9E0/dwB/CNzMza2trU1jU3t5ubW2NEJozZ86AbEggEJAk2djYeObMGZFIxOPx7t69q37OJSUlCKGjR4/iybNnzxoYGJw5c0b9nGfMmBEXF1ddXV1fX5+amkqn099++235BLKdwqO9/Pjjj2vWrCEIwtzc/Ndff1W/ADJI8986Hwz6+v24boWEhCxYsKC+vh5P2tnZ4eE7zp49K58sOztbfpwH7ZMfFBEbM2aMFtYlSdLDw2PUqFHXrl3Dn4l1d3cvKCjomiwgIAD93xEbYmJiZsyYUVNTo/q2eqLVb51PnDixvLxcLBYrzM/MzFQ+IHb/cLncBQsW/Otf/2psbIyNjR3w/N3c3Orq6hYsWKB+VjweD49ywOfzly5d6uHhcf78+cePH3dNSRCEUCicOXNmYmJiWlra8+fPcTHUL4N2NDc3u7q6Dras+uHAgQMpKSlpaWl8Pl828/DhwxQKxcfHZ7AdEYUhKf744w8trJuSkiIWi9PT019//XUajWZubn769Omul4FXr17tmufWrVtfffXV+fPnt7e3q15UFWkwxm3cuBEhdPToUYX5UVFR27Zt09BGp0yZghDq00HVApIk09PTZSMKnj17Vn7kOmNjY4RQr0Oje3p6rlmzpqKiQnb7PPglJCRUVFQMtqz66v79+3v27Nm7dy8e7VvG1dXVz8/v6dOn27dv10nBBpWjR49OmDBB+diAzc3NO3bsiImJ6booNDQ0Pz+/20Vq0mCMmz179ujRo3/88cfi4mLZzF9++UUikcydO1ch8c8//+zk5CQQCFgs1rhx4y5cuIAQ+uqrr3g8HkEQhoaGYrH45s2b1tbWVCr13Xff7Wmj+P8Ak8nEkyRJRkVFjR49mslkGhoaLlq06O7du7LEypfKy83NFYlEBEHg4RPj4+O5XC6Hwzl9+vS8efMMDAwsLS2Tk5Nl6Ts6OiIiIkaNGsVms42NjUeMGBEREdHTK1NPnz5ls9kjRoxQWp0IIYSHJc3Ozu415QBSUku+vr4MBgMPRYgQ2rRpE5fLJQiiqqoKIeTn57dt27bS0lKCIOzt7Q8fPsxisYYPH75hwwZzc3MWi+Xq6iobcrdPWSGEzp8/r7mxVhUcPnyYJEl3d/eui8LDw0eOHHnixImLFy92u66S2lPlLAoJCRGJRGw2e/z48YP5dfK2trZr1645OzsrTxYcHLxp0yYTE5OuiwwNDWfMmBETE0MO+Luk8telA9se9+DBg3/9618IIfkR+Tw8PBITExsaGtD/bY9LT08PDQ198eJFdXX11KlThw0bhucXFRVxOJzVq1fjyaCgoBMnTihsCDddYSdPnkQI7dixA0+GhIQwGIyTJ0/W1tbeuXNnwoQJxsbG5eXlqixVaI/D95KxsbF4Mjg4GCF06dKlurq6ioqK6dOnc7lcWePj/v37qVTq6dOnJRLJb7/9ZmpqOnPmzG4rqqmpic/n+/r6KtkpGTzGtpWVVbdZ9QNSoT1OeS2tWLHC1NRUljgyMhIhVFlZiSeXLFliZ2cnW+rj48PlcouKilpaWgoLCydPnszn8/FQqn3N6uzZs3w+PywsTJXdVLM9ztbW1snJSWEmPsNJkrx69SqFQrGxsWlsbCS7tMcprz3lZ9H27duZTGZGRkZNTc2uXbsoFIoqrbH79u2ztLQUCoV0Ot3GxmbhwoU3btxQcU/7ve6DBw8QQs7OzjNnzjQzM2MymY6OjkeOHJEfDjU3N9fd3Z3seQTVoKAghNDt27dVLG23tDe+Kj4DamtruVyuoaEhHmO0tLTU0tKytbW1a4yTFxERgRCqqKjAk//+978RQklJSd9++21AQEDXDcmeOWRkZJiamg4fPvzJkyckSUokEh6P5+3tLUt848YNhBD+YShfSqoW45qbm/FkXFwcQuj+/ft4cvLkyVOmTJHlvH79egqF0tra2nVng4ODR44cKWvJVtiprnALXbeL+qHXGNdrLfU1xsnv16+//ooQ2rt3bz+y6hN1YlxjYyNBEAsWLFCYL4txJEnithc8zrR8jOu19pScRc3NzRwOR7auRCJhMpkbN27stcBlZWW3bt1qaGhobW3Ny8t77bXX2Gz2H3/8ocrO9ntdPEr6P//5z19++aW6urq2tvbjjz/GP1tZ+SdNmoR/mD3FuC+//BIh9M0336hS1J5oe3xVgUDw7rvv1tTUpKSkIISio6M3btyIB2pSAo8wJnuWvH79ek9Pzw0bNqSlpX322Wdd09fV1REEIRAItm7dOn/+/Bs3buBnGoWFhY2NjZMmTZKlnDx5MoPBwPdHypf2Fd4p2VCqLS0tpNwld0dHB51Ol2+Dw7KystLS0i5cuCDfkq1EU1MTSZLqDGbYVwNbSwomTZrE4XB6ah8YJPD/WuVD6oWHh48aNSouLi43N1d+fl9rT/4sKi4ulkgksjZ7NpttZmamSl1ZWVm99tprPB6PwWBMnTo1MTGxubkZR0/NrYtbh8aMGePq6mpkZCQQCPbu3SsQCGRt0Lt27Vq/fr3yh424kp8/f65KUVWn8T7A+MnDF198UVtbm56evmHDhm6Tff/99zNnzjQxMWEymTt37lRYun///sbGxp6anPGlQXt7+5MnT7788kvcMQUhVFtbixDi8XjyiYVCIb6KVL5UTfPnz//tt99Onz7d3Nx88+ZNsVj8zjvvKMS4lJSUAwcO5OTk2NjYqJjtvXv3EEKOjo7ql1BFGq0lhBCTycT/1QetlpYWJNfC2y0Wi5WYmEgQxNq1a5ubm2Xz1am9pqYmhNDu3btlXdUePXrU64OprsaNG0elUvGZo7l1zc3NEUK48RRjMBjW1talpaUIodzc3IKCgnXr1inPhM1mo78rfABpPMY5OztPnTr1xo0bPj4+Xl5ehoaGXdOUlZV5eHiYmZldv369rq7u4MGD8kulUunWrVujoqLy8vLCw8NV37RQKEQIKZxPtbW1+DOhypeqKTQ0dPbs2WvWrDEwMFi8ePHSpUuPHz8unyA2NjYpKeny5cuvvPKK6tmeP38eITRv3jz1S6gijdaSVCodqKw0B//weu2h6uLiEhAQUFJSIt/FTJ3aww3z0dHR8rdd/fhoc2dnZ2dnp/IYrf66PB7PwcGhqKhIfmZ7e7tAIEAIJSQkXLp0iUKh4GCNd23//v0EQdy8eVOWvq2tDf1d4QNIG+9y4Uu5jIwMf3//bhMUFBRIpdKNGzfa2tqyWCyCIOSXbtmy5cMPP/T39w8ICNi3b5/qh3ns2LE8Hk++Eq9fv97W1jZx4sRel6qpsLCwtLS0srJSKpWWlZXFx8fLgjtJkoGBgQUFBWKxWOE/vHLl5eXR0dGWlpZr165Vv4Qq6rWWaDSa7A69r3JyckiSnDp1qvpZaQ5+3UWVHnD79u1zdHS8ffu2bI4655iVlRWLxcrPz+9rgd966y35SfyYwsXFRdPrLlu27Pbt23/++SeelEgkjx49wl1JEhMT5SO1fHuc/I08rmRTU1NVNqc6bcS4pUuXGhsbe3h42NradptAJBIhhC5evNjS0lJSUiLfWhEXF2dhYbF48WKEUEREhJOT04oVK/DjxV6xWKxt27ZlZWUlJSXV19cXFBR89NFH5ubmPj4+vS5V0+bNm0UikewNLXlFRUWfffbZ8ePH6XS6/Eszhw4dkk9GkmRjYyN+LFVZWZmamjpt2jQqlSoWi7XZHtdrLdnb27948UIsFkul0srKykePHsmvbmRk9OzZs4cPHzY0NOD4hd/caG9vv3Pnjp+fn0gkwh1i+ppVdna2dvqOcDgcW1tbPCKEcviOVb5FQp1zjMVivf/++8nJyfHx8fX19R0dHU+ePPnrr78QQt7e3qampj29K/b06dOUlJTa2lqpVJqXl7du3TqRSPTRRx/hpZpbNyAgwNraes2aNWVlZdXV1YGBgc3NzfjJg4pwJSvvYdcf8vF1QJ6rZmVl4Re5jI2N8ZMmkiR37tx59epV/Pfu3btxNygKheLk5PTzzz/jSxsjIyOhUOjl5YX7oNnZ2Tk7OxMEYWRkhNf19/enUCgIIYFAcPPmzV9++WXkyJF4L8zNzb28vLoWprOzMzIy0sHBgU6nGxoaenh4FBcXq7L0888/x/9PuFzu4sWLY2NjcZk5HI67u3tcXBxuH3VwcCgtLT127BiOO9bW1vfu3SNJ8vLly/hFH4xOp48ePTozM5P8+wlUV5GRkSRJnjlzZvz48RwOh8Fg4J3FD1KnTJkSFhZWXV2t5tFRgFToO6K8Dqurq2fNmsVisUaMGLFly5YdO3YghOzt7XGPkFu3bllbW7PZ7DfeeKO8vNzHxwe/Vkyj0QwMDBYtWlRaWtq/rM6dO8fn88PDw1XZTTX7jvj6+tLpdNw3gOzhDJfZsWOHfN8RJbXX61nU2toaGBgoEoloNJqJicmSJUsKCwtJkvTw8EAIhYSEdFvabdu22dnZcblcGo1maWn54YcfPnv2TLZUc+uSJPn48ePly5cbGhoymcwpU6ZkZ2d3m6yn56pubm4WFhby3U36QXt9R4a4uLg4+V6Bra2t/v7+TCZT9jsZJFSJcQMIv8Gmtc3JqBnjSkpKaDSawktOOtTR0TF9+vSEhISXaN1eVVVVsVisQ4cOqZmPtvuODE3l5eW+vr4ffPCBbA6DwRCJRFKpdBC2N2mZBj8voTH29vZhYWFhYWHdNj5oWUdHh1gsbmho8Pb2flnWVUVoaKizs7Ovr++A5wwxbuCx2Ww6nZ6QkPD8+XP8AYYTJ06EhIR4e3trsykNDKCgoCAvLy9vb2+dv36fk5OTmZmZnZ2tvMveoFq3V1FRUfn5+efOncN9YweY/EUd3KsOlCtXrrz55psGBgZUKlUgELi6usbFxUmlUl2XSxHS4r1qUFAQ7uNqY2OTnp6unY1iA/JtJZIkL1y4EBgYqH4+QJ5YLI6IiGhvbx+Q3Loe627GVwXqmz59+n/+8x9dl2JwiYiIwG/pvbzmzp3b9XMSQE0LFy5cuHCh5vKHe1UAgD6DGAcA0GcQ4wAA+gxiHABAn3XzzMHLy0v75QC6Eh0dnZ6erutSaNa1a9cQnNhDw7Vr12RvQGMEKfeZs7y8vKioKK2XCgwh2dnZr732muyb5gAMOPwNGNnk/4lxAGgaQRCpqak9DW0BwICD9jgAgD6DGAcA0GcQ4wAA+gxiHABAn0GMAwDoM4hxAAB9BjEOAKDPIMYBAPQZxDgAgD6DGAcA0GcQ4wAA+gxiHABAn0GMAwDoM4hxAAB9BjEOAKDPIMYBAPQZxDgAgD6DGAcA0GcQ4wAA+gxiHABAn0GMAwDoM4hxAAB9BjEOAKDPIMYBAPQZxDgAgD6DGAcA0GcQ4wAA+gxiHABAn0GMAwDoM4hxAAB9BjEOAKDPIMYBAPQZTdcFAHqutraWJEn5OU1NTTU1NbJJHo9Hp9O1Xi4wVBAK5x8AA2v27Nk//vhjT0upVOrTp09NTU21WSQwpMC9KtCs5cuXEwTR7SIKhfKPf/wDAhzQKIhxQLM8PT1ptO6bRAiCeO+997RcHjDUQIwDmmVoaDh37lwqldp1EYVC8fDw0H6RwJACMQ5o3MqVKzs7OxVm0mg0Nzc3gUCgkyKBoQNiHNA4d3d3JpOpMLOjo2PlypU6KQ8YUiDGAY3jcDgeHh4KHUTYbPb8+fN1VSQwdECMA9rw7rvvSqVS2SSdTvf09GSz2TosEhgiIMYBbXjrrbfkm96kUum7776rw/KAoQNiHNAGOp3u7e3NYDDwpFAonDNnjm6LBIYIiHFAS5YvX97W1oYQotPpK1eu7KnTHAADC97lAlrS2dn5yiuvPH/+HCGUm5s7bdo0XZcIDAlwHQe0hEKhrFq1CiFkbm7u6uqq6+KAoeIlu1948uTJ1atXdV0K0E/GxsYIoddffz09PV3XZQH9ZGVl5eLioutS9AX5UklNTdV1hQEwpHl6euo6DPTNS3Ydh5H624bo5eWFENLjy5yMjAxPT8+0tLRly5bp8XHUV/j8fLlAexzQKk9PT10XAQwtEOMAAPoMYhwAQJ9BjAMA6DOIcQAAfQYxDgCgz/Q/xrW2tm7dutXMzIzD4bz55pvDhw8nCOKLL77QdbkG0rlz5wQCwXfffafrgmjKxYsXg4KCMjMzbW1tCYIgCAK/MiEzd+5cPp9PpVLHjBlz69YtnRQyPDyc+L/Gjh2rhXURQlKpNCIiwt7ensFgCIXCsWPHPnz4sGuylpYWR0fH3bt348kzZ84cPHiwo6ND9Q29jPQ/xn3++efnz5+/e/duTEzMhg0b9PI1Cf3uaPbJJ58cPnx4165dS5Ys+fPPP+3s7IYNG5aUlPT999/L0vzwww/p6ekLFiwoLCycMGGCDkurE8uWLfvmm29OnTolkUj++9//2tnZNTY2dk0WHBxcXFwsm3R3d2exWHPmzKmtrdViYbVN/2OcWCyeNGmSUChcv3696p2zmpub5d+pVJgcbNzc3Orq6hYsWKDpDWm/Hg4cOJCSkpKWlsbn82UzDx8+TKFQfHx86urqtFmYXp08eVK+h/0ff/yhhXVTUlLEYnF6evrrr79Oo9HMzc1Pnz7d9TLw6tWrXfPcunXrq6++On/+/Pb2dtWL+nLR/xj35MmTfgzDnpCQUFFR0dPkkKXlerh///6ePXv27t3LYrHk57u6uvr5+T19+nT79u1aK8ygdfTo0QkTJowbN05Jmubm5h07dsTExHRdFBoamp+f3+0i/aDPMe4///mPvb39X3/99fXXXxMEwePxuqb5+eefnZycBAIBi8UaN27chQsXEEJ+fn7btm0rLS0lCMLe3l5hEiHU0dEREhIiEonYbPb48ePxW7Tx8fFcLpfD4Zw+fXrevHkGBgaWlpbJycma3s3c3FyRSEQQxJEjR3otxuHDh1ks1vDhwzds2GBubs5isVxdXa9fv46X+vr6MhgMMzMzPLlp0yYul0sQRFVVVddqQQidP3/ewMBg//79Gtq1w4cPkyTp7u7edVF4ePjIkSNPnDhx8eLFbtclSTIqKmr06NFMJtPQ0HDRokV3797Fi3o9Ut0e38Gpra3t2rVrzs7OypMFBwdv2rTJxMSk6yJDQ8MZM2bExMTobYuHtl6MHRj4bOvTKqampqtXr5ZNlpSUIISOHj2KJ9PT00NDQ1+8eFFdXT116tRhw4bh+UuWLLGzs5OtpTC5fft2JpOZkZFRU1Oza9cuCoXy66+/kiQZHByMELp06VJdXV1FRcX06dO5XG5bW5vqpfX09OzHO8+PHz9GCMXGxuJJ5cXw8fHhcrlFRUUtLS2FhYWTJ0/m8/llZWV46YoVK0xNTWU5R0ZGIoQqKyu7rYezZ8/y+fywsLC+FljF42hra+vk5KQw087O7sGDByRJXr16lUKh2NjYNDY2kiSZnZ29cOFCWbKQkBAGg3Hy5Mna2to7d+5MmDDB2Ni4vLwcL1VeRT0dX+X27dtnaWkpFArpdLqNjc3ChQtv3LihUnWose6DBw8QQs7OzjNnzjQzM2MymY6OjkeOHOns7JSlyc3NdXd3J0mysrISIRQcHKyQSVBQEELo9u3bvW6uf+enbunzdZwqPD09P/nkE0NDQyMjI3d39+rqanweKNHS0hIfH+/h4bFkyRKhULh79246nZ6YmChL4OrqamBgYGJi4u3t3dTUVFZWpuGd6J6SYtBoNHyB4+TkFB8f39DQIF9+1bm5udXX1+/Zs2fgSv0/TU1NDx48sLOz6ymBi4uLv7//w4cPP/74Y4VFzc3NUVFRixcvXrlypUAgGDdu3BdffFFVVXXs2DH5ZN1WUa/HtyerV68+c+bM48ePGxsbk5OTy8rKZsyYUVhYqMrO9ntd/GzBxMRk//79hYWFz58/X7Ro0ebNm7/99ltZVfj5+cXHxyvJxMHBASFUUFCgSlFfOkM9xsnDzXa9PkovLi6WSCSyNl02m21mZia7D5KHhy+QH49KJ5QXY9KkSRwOp9vy61ZFRQVJkhwOR0ma8PDwUaNGxcXF5ebmys8vLCxsbGycNGmSbM7kyZMZDIbsrlyBfBWpfnwVWFlZvfbaazwej8FgTJ06NTExsbm5OS4urtcV1VkXD1w7ZswYV1dXIyMjgUCwd+9egUAgi+a7du1av369hYWFkkxwJeNPNOufoR7jvv/++5kzZ5qYmDCZzJ07d6qySlNTE0Jo9+7dsq5Mjx49kkgkGi6pBjGZzF6vXrWvpaUF/f0b7gmLxUpMTCQIYu3atc3NzbL5uDOEQgusUChsaGjodbsDdXzHjRtHpVLv3bvX1xX7tK65uTlCCDeYYgwGw9raurS0FCGUm5tbUFCwbt065ZngQSBxheufIR3jysrKPDw8zMzMrl+/XldXd/DgQVXWwg230dHR8vf8eXl5Gi6spkil0traWktLS10X5P+1d/dRTZx74sCfgbxMAgkEQcgFQyFBraCyVK0EXexyD/dYT+VNSjzqXezpHvTWZinKclFB5M31xCLHVurxlsvuqperBQ60Srr34L3YdUX3doULhaqIAqWUV4EAScjb/P54TueXjZAESIgZns9fzjwzD9+ZB7/MM/PMPKbgfzyLl9WRkZEZGRmdnZ0FBQXkSk9PTwCASUaz8jBt1b4Gg8FgMJjP0Yvf193dPSQkpKOjw3ilTqeDMz2Wl5ffvn3bxcUFJmt4aEVFRRiGffvtt+T2cC4hqk53u6xzXFtbm1ar/c1vfhMcHIzjOIZh1uy1atUqHMdbWlrsHd7SaGxsJAhi69atcJFGozm8cw3BN1KsGQFXUFCwdu3a5uZmck1YWJi7u7vxf+MHDx5oNJo33njDYm0Lbt9f/epXxovwMYWVnwVfzL4pKSnNzc3Pnj2Di0qlsqenBw4lqaioMM7Uxs8cjDvy8CT7+vpa8+OczrLOcQKBAADQ0NCgVqs7OzuNb9Z4eXn19/d3d3dPTk5qtVrjRVdX14MHD1ZWVpaVlSkUCr1e39fX99NPPznuOObNYDCMjY3pdLrW1tb09HSBQJCamgqLRCLRixcvamtrtVrt8PBwT0+P8Y4mp0Uul9tv7AibzQ4ODu7r67O4Jeyxurq6Gq85evRoTU3N1atXFQpFW1vb4cOH+Xx+WlqaNbXN1b4SicTX13eud8V+/PHHP/7xj+Pj41qttqmp6f333xcIBIcPH4al9ts3IyMjMDAwNTW1t7d3dHQ0KytLpVK9/BzGDHiSzY+wc2L2fWxra/MaO9Ld3f13f/d3AAAajRYREVFVVfXxxx/DP1Zubm6JiYkEQWRlZXl5eXl6eiYnJ8PxZUKhsLe39+HDh4GBgSwWa9u2bQMDAyaLMzMzWVlZAoGARqP5+PgkJSW1t7dfvHgR3rsNCQnp6uq6fPkyl8sFAAQGBj558sTKmBfwbP6TTz6BI9rYbPbu3bsthpGWlkan0/39/Wk0GpfLjY+P7+rqImsbHR196623cBwPCgr68MMPMzMzAQAikQgOLjE5D/X19RwOp7CwcF4BE1a3o1QqpdPpSqUS+dOpJAAAIABJREFULtbU1MDHrN7e3keOHDHZODMz03jsiMFgkMlkISEhdDqdx+MlJCQ8fvwYFlk8RbO2L0EQCQkJAIDc3NxZoz169KhQKHRzc6PRaAEBAf/0T//U399PltpvX4Igfvjhh7179/J4PCaTuWXLFrlcPutmc40d2bVrl7+/v/Fwk7k449gRKuc4Z7QEv0NpaWleXl52/REWWdmOnZ2dNBrN5CUnB9Lr9du3by8vL3eifS0aGRnBcfzcuXPWbOyMOW5Z91WXLWf51IRIJMrPz8/Pz5/1DfMlptfra2trJycnJRKJs+xrjby8vPDwcKlUao/KXwUoxyGvtOzs7OTkZIlE4vDX7xsbG6urq+Vyufkhe6/UvhaVlJS0tLTU19cv4J1uZ4Fy3PJy/PjxioqKiYmJoKCgqqoqR4djlaKiIqlUeubMGceGERMTc+3aNfJlXqfY17y6urqZmZnGxkYej2fzyl8dTjm/KrJgxcXFxcXFjo5i3mJjY2NjYx0dBdXExcXFxcU5Ogq7Q9dxCIJQGcpxCIJQGcpxCIJQGcpxCIJQmVM+c0hOTnZ0CPZy//59QOkDhODLQ5Q/TOq5f/8++Wqzs0DXcQiCUJlTXsd98cUXjg7BXuClDYUPELpx40ZKSgrlD5N6nPHSG13HIQhCZSjHIQhCZSjHIQhCZSjHIQhCZSjHIQhCZRTMcdXV1cHBwdhsXnvtNQDAuXPn4FwBly5dcnSwiA00NDRkZ2cbt/uBAweMN4iNjeVwOK6urqGhoXN9MXxpGAyG8+fPi8Xil4u0Wm1xcbFIJGIwGJ6enmFhYd3d3WTp3bt3o6Ki2Gw2n8/PysqamZkx3neu0i+//PLs2bPO8rlAe3H0Rzrnx/rvAAuFQg8PD/hvnU6nVCoHBwdff/11uKazsxMA8Nlnn9kr0IVyxu+sLoANv+ecm5v7zjvvKBQKuCgUClesWAEAuHnzpvFmcrnc+EvoDvHkyZOoqCgAwMaNG18uTUhIWLNmzf3797VabX9//+7du9va2mDRd999x2KxcnJypqam7t275+3tffDgQXJH86WlpaXR0dFjY2M2OQRn/P1cFjmORP6WW5njlEplZGTkXIv2sAS/QzY8igVXZascd+bMmdWrV6tUKnKNUCi8du2ai4uLv7//+Pg4ud7hOa6lpSUxMfHq1avh4eEv57jKykoMw1pbW2fdNyUlJSgoiJxvQSaTYRj2/fffW1NKEIRUKo2MjNRqtYs/CmfMcRTsq5pRW1s7r+3Ly8uHhobmWnRSNjwKx56Qp0+f5uTknD59Gsdx4/VisTg9Pf3HH388duyYo2J72caNG6urq/ft2zfrrKmfffZZRETErDNj6XS6W7duRUdHk3Nj7ty5kyCIuro6i6VQXl5eS0tLaWmp7Y/KGSyvHDeX//qv/1q3bp2HhweO4+vXr//P//xPAEB6evrRo0e7urowDBOJRCaLAAC9Xp+bmysQCFgs1oYNG+C1SVlZmZubG5vNrqur27lzJ5fLDQgIqKystG3ABEGUlJS8/vrrTCaTx+PFx8c/evQIFkmlUgaDQX429oMPPnBzc8MwDE6lbnIUFy5cwHF85cqVhw4d4vP5OI6LxWJyDsZ5VQUA+Prrr+03FeHLLly4QBDE7t27Xy4qLCxcvXr1559/3tDQMOu+Zk6gxRactd0XQ6PR3L9/Pzw8fNbSZ8+eTU1NwXkyITg5WWtrq8VSiMfjRUdHl5aWEgSxyFCdkiMvIudvwX3V27dvy2QyctGkr/rFF1/k5eW9ePFidHR069atK1asgOuTkpKEQiG5l8nisWPHmExmVVXV2NjY8ePHXVxc4NS/J06cAADcvn17YmJiaGho+/btbm5uGo3GmrCt7Avk5uYyGIwrV66Mj4+3trZGRER4e3sPDAzA0n379vn6+pIby2QyAMDw8PCsR5GWlubm5tbR0aFWq9vb2zdv3szhcOBMg/Ot6ubNmxwOJz8/32L8NumrBgcHr1u3zmSlUCh8/vw5QRD37t1zcXF57bXXpqamiJf6quZPoPkWnKvdrfTmm2+a9FWfP38OAAgPD9+xY4efnx+TyVy7du2nn34Ku5937twBABj/9hIEwWKxYmJiLJaSsrOzAQDNzc3Wxzkr1Fd9tUxMTJBPVGNiYsxsuWfPnlOnTvF4PC8vr927d4+OjsKZKM1Qq9VlZWUJCQlJSUmenp4nT56k0+kVFRXkBmKxmMvl+vj4SCSS6enp3t5e2xwVACqVqqSkJDExcf/+/R4eHuvXr7906dLIyMjly5cXViGNRoNXNOvWrSsrK5ucnDQ+EOvt2rVLoVDk5OQsLIx5mZ6efv78ObxmmVVkZORHH33U3d398mzKVp7AWVvQYrsvAJx1zMfHp6ioqL29fXBwMD4+/siRI3/4wx8AAPAhqfEM2QAAOp2uUqkslpJCQkIAAG1tbYuJ00lROccZX8f95S9/sXIvOEGRxcftjx8/ViqVYWFhcJHFYvn5+ZH9HWMMBgMAoNVq5xG6We3t7VNTU5s2bSLXbN68mcFgkH3Mxdi0aRObzZ71QF4pQ0NDBEGYn6qqsLBwzZo1Fy9evHv3rvH6+Z5A4xa0vt2tB+/QhYaGisViLy8vDw+P06dPe3h4wJwL7zbqdDrjXTQaDYvFslhKgidqcHBwMXE6KSrnOGM7duwwcwf61q1bO3bs8PHxYTKZ//Iv/2JNhdPT0wCAkydPkpeKPT09SqXSZhHPbXx8HADg7u5uvNLT03NyctIm9TOZTIuXsQ6nVqvBz9lhLjiOV1RUYBj23nvvGV/XLOYE2qPd+Xw+AADe5YQYDEZgYGBXVxcAAN4PVSgUZKlSqVSr1XAv86UkmPLgSVtulkuOM6O3tzchIcHPz+/BgwcTExNnz561Zi8fHx8AwPnz5417/k1NTXYOFgAAPD09AQAm/yHHx8cDAgIWX7lWq7VVVXYF/9NavNyOjIzMyMjo7OwsKCggVy7mBNqj3d3d3UNCQjo6OoxX6nQ6Dw8PAEBQUBCHw+np6SGLnj59CgDYsGGDxVKSRqMBP5+05QblONDW1qbVan/zm98EBwfjOE4+gzdv1apVOI63tLTYO7yXhYWFubu7f/vtt+SaBw8eaDSaN954Ay7SaLQFd40bGxsJgiC/9bqYquwKvqlizcTSBQUFa9eubW5uJtdYPIFm2KndU1JSmpubnz17BheVSmVPTw8cSkKj0d5+++1vvvnGYDDAUrlcjmEYfKBsvpQET5Svr69tw3YKKMcB+Ny9oaFBrVZ3dnYa35Tx8vLq7+/v7u6enJzUarXGi66urgcPHqysrCwrK1MoFHq9vq+v76efflqCgHEcP3r0aE1NzdWrVxUKRVtb2+HDh/l8flpaGtxAJBK9ePGitrZWq9UODw8b/5F/+aAAAAaDYWxsTKfTtba2pqenCwSC1NTUBVQll8uXbOwIm80ODg6G30w3D/ZYje/KWzyB5mubq90lEomvr+/C3hXLyMgIDAxMTU3t7e0dHR3NyspSqVTk05KcnJzBwcFTp05NT083NTXJZLLU1NQ1a9ZYUwrBEzXr+DvqW5KntzZjzZiD//7v/169ejU8Oj8/P5OH6ARBfPzxx/APmpubW2JiIkEQWVlZXl5enp6eycnJn376KQBAKBT29vY+fPgwMDCQxWJt27ZtYGDAZHFmZiYrK0sgENBoNB8fn6SkpPb29osXL8L7uyEhIV1dXZcvX+ZyuQCAwMDAJ0+eWDxAK5/NGwwGmUwWEhJCp9N5PF5CQsLjx4/J0tHR0bfeegvH8aCgoA8//DAzMxMAIBKJ4IgQk6NIS0uj0+n+/v40Go3L5cbHx3d1dS2sqvr6eg6HU1hYaDF+m4wdkUqldDpdqVTCxZqaGviY1dvb+8iRIyYbZ2ZmGo8dMXMCLbbgrO1OEERCQgIAIDc3d9Zom5qaoqKiyNtkfn5+YrH4zp075AY//PDD3r17eTwek8ncsmWLXC433v3OnTtbtmxhMpl8Pj8zM1OtVltfShDErl27/P39yXchFswZx45QMMc5taX/HUpLS/Py8lrKn0jYqB07OztpNNqVK1dsEtLi6fX67du3l5eXOzoQUyMjIziOnzt3bvFVOWOOQ31VxPKd+1eTSCTKz8/Pz8+H48scS6/X19bWTk5OSiQSR8diKi8vLzw8XCqVOjoQx0A5DnFi2dnZycnJEonEmocPdtXY2FhdXS2Xy80P2Vt6JSUlLS0t9fX1cODnMoRy3LJ2/PjxioqKiYmJoKCgqqoqR4ezEEVFRVKp9MyZM44NIyYm5tq1a+S7va+Iurq6mZmZxsZGHo/n6FgcxinnHkRspbi4uLi42NFRLFZsbGxsbKyjo3gVxcXFxcXFOToKB0PXcQiCUBnKcQiCUBnKcQiCUBnKcQiCUBnKcQiCUJlTPle18rV550X5A4SWyWFSzJ49exwdwvxghFN94r2vr+/evXuOjgJZuJSUlPT09MjISEcHgizQqlWrnKv5nCzHIc4Ow7Dr16+/++67jg4EWS7Q/TgEQagM5TgEQagM5TgEQagM5TgEQagM5TgEQagM5TgEQagM5TgEQagM5TgEQagM5TgEQagM5TgEQagM5TgEQagM5TgEQagM5TgEQagM5TgEQagM5TgEQagM5TgEQagM5TgEQagM5TgEQagM5TgEQagM5TgEQagM5TgEQagM5TgEQagM5TgEQagM5TgEQagM5TgEQagM5TgEQagM5TgEQagM5TgEQagM5TgEQagM5TgEQagM5TgEQagM5TgEQaiM5ugAEIqrrKycnJw0XtPQ0DA+Pk4uJiQk+Pj4LHlcyHKBEQTh6BgQKktNTf33f/93Op0OF+HvG4ZhAAC9Xu/u7j40NMRkMh0ZIkJpqK+K2NfevXsBANqf6XQ6nU4H/+3q6pqcnIwSHGJX6DoOsS+dTufr6/vixYtZS2/fvv0P//APSxwSsqyg6zjEvmg02t69e8m+qjFvb+/o6OilDwlZVlCOQ+xu7969Wq3WZCWdTj9w4ICrq6tDQkKWD9RXReyOIAiBQNDX12ey/n/+5382b97skJCQ5QNdxyF2h2HY/v37Tbqrq1at2rRpk6NCQpYPlOOQpWDSXaXT6ampqXAECYLYFeqrIktk7dq1jx8/Jhe/++670NBQB8aDLBPoOg5ZIgcOHCC7q+vWrUMJDlkaKMchS2T//v06nQ4AQKfT//Ef/9HR4SDLBeqrIktn06ZN//u//4thWHd3t0AgcHQ4yLKAruOQpfPrX/8aAPDmm2+iBIcsGWp+d6SkpKSpqcnRUSCm1Go1hmEzMzPJycmOjgWZxRdffOHoEGyPmtdxTU1N9+/fd3QUNtPX11dVVeXoKGwAx3FfX9+AgIC5Nqiqqnp5qDCyBCjzO/Yyat6Pg5cJlPmjdOPGjZSUFGq01NOnT0Ui0VylGIZdv3793XffXcqQEECt3zET1LyOQ15ZZhIcgtgDynEIglAZynEIglAZynEIglAZynEIglAZynH/x/vvv8/hcDAMa2lpcXQsi1VfX+/h4fHVV185OhB7aWhoyM7Orq6uDg4OxjAMw7ADBw4YbxAbG8vhcFxdXUNDQx8+fOioOAEABoPh/PnzYrH45SKtVltcXCwSiRgMhqenZ1hYWHd3N1l69+7dqKgoNpvN5/OzsrJmZmaM952r9Msvvzx79qxer7fnMTkNlOP+j88///x3v/udo6OwDUqOAyCdOnXqwoULx48fT0pKevbsmVAoXLFixdWrV2/dukVu86c//emLL75455132tvbIyIiHBVqZ2fn3//932dkZCiVypdLU1JS/uM//uPatWtKpfL7778XCoVTU1OwqL29PTY2NiYmZnh4uKam5ve///3hw4fJHc2U7t69G8fxmJgY4zkely+Civbs2bNnz56F7VtZWQkAaG5utm1Ii3H9+vVXuaWUSmVkZKRNqgIAXL9+3eJmZ86cWb16tUqlItcIhcJr1665uLj4+/uPj4+T6+VyeVxcnE1iW5iWlpbExMSrV6+Gh4dv3LjRpLSyshLDsNbW1ln3TUlJCQoKMhgMcFEmk2EY9v3331tTShCEVCqNjIzUarXWxPmK/44tBrqOM4U+3Dhf5eXlQ0NDS/bjnj59mpOTc/r0aRzHjdeLxeL09PQff/zx2LFjSxaMRRs3bqyurt63b9+sUyx+9tlnERER69evf7lIp9PdunUrOjqa/IXcuXMnQRB1dXUWS6G8vLyWlpbS0lLbH5VTQTkOEAQhk8nWrFnDZDI9PDwyMzONS/V6fW5urkAgYLFYGzZsgH/uysrK3Nzc2Gx2XV3dzp07uVxuQEAAvACE7ty5s2XLFjabzeVy169fr1Ao5qrKTu7evSsQCDAM+/TTTy0GfOHCBRzHV65ceejQIT6fj+O4WCx+8OABLJVKpQwGw8/PDy5+8MEHbm5uGIaNjIwAANLT048ePdrV1YVhGBzf+/XXX3O53KKiIjsd2oULFwiC2L1798tFhYWFq1ev/vzzzxsaGmbdlyCIkpKS119/nclk8ni8+Pj4R48ewSKLbWrz5tNoNPfv3w8PD5+19NmzZ1NTU8YfLxAKhQCA1tZWi6UQj8eLjo4uLS0lKH3XwjJHXkTazbz6qidOnMAw7OOPPx4bG1MqlRcvXgRGfdVjx44xmcyqqqqxsbHjx4+7uLj89a9/hXsBAG7fvj0xMTE0NLR9+3Y3NzeNRkMQxNTUFJfLPXv2rEqlGhgYSExMHB4eNlOVRQvrR/zwww8AgE8++YQ8zLkCJggiLS3Nzc2to6NDrVa3t7dv3ryZw+H09vbC0n379vn6+pI1y2QyAAA8KIIgkpKShEIhWXrz5k0Oh5Ofnz/fgAnr+qrBwcHr1q0zWSkUCp8/f04QxL1791xcXF577bWpqSnipb5qbm4ug8G4cuXK+Ph4a2trRESEt7f3wMAALDV/ihbcfNCbb75p0ld9/vw5ACA8PHzHjh1+fn5MJnPt2rWffvop7H7euXMHACCTyYx3YbFYMTExFktJ2dnZwLobL6ivSlkqler8+fO//OUvMzIyPD09WSyWl5cXWapWq8vKyhISEpKSkjw9PU+ePEmn0ysqKsgNxGIxl8v18fGRSCTT09O9vb0AgO7uboVCERoaCl9Br66u9vb2tljV0pg1YIhGo8ELnHXr1pWVlU1OTi4svF27dikUipycHNtF/f9NT08/f/4cXrPMKjIy8qOPPuru7v7tb39rUqRSqUpKShITE/fv3+/h4bF+/fpLly6NjIxcvnzZeLNZT5E9mg8+W/Dx8SkqKmpvbx8cHIyPjz9y5Mgf/vAHAAB8SGoyNyOdTlepVBZLSSEhIQCAtra2xcTp7JZ7jnv69KlSqYyJiZm19PHjx0qlMiwsDC6yWCw/Pz+yd2OMwWAAAOC0LMHBwStXrty/f39eXh45DsD6qpaGccAv27RpE5vNdmB4cxkaGiIIgs1mm9mmsLBwzZo1Fy9evHv3rvH69vb2qakp48nANm/ezGAwyF65CeNTZI/mg3foQkNDxWKxl5eXh4fH6dOnPTw8YM6Fdxvhl5NJGo2GxWJZLCXBEzU4OLiYOJ3dcs9x8Es+Pj4+s5ZOT08DAE6ePIn9rKenZ9YRAMZYLNaf//znbdu2FRUVBQcHSyQSlUq1sKociMlkDg8POzoKU2q1GvycHeaC43hFRQWGYe+9957xdQ0cSOHu7m68saen5+TkpMWfa4/m4/P5AAB4WxNiMBiBgYFdXV0AAHgDFN7JhZRKpVqthnuZLyXBlAdP2rK13HMc/HtoMrSSBHPf+fPnjbv31nx9MzQ09Kuvvurv78/Kyrp+/fq5c+cWXJVDaLXa8fFxMx96cxT4n9bi6NbIyMiMjIzOzs6CggJypaenJwDAJKNZeZj2aD53d/eQkJCOjg7jlTqdzsPDAwAQFBTE4XB6enrIoqdPnwIANmzYYLGUpNFowM8nbdla7jkuLCzMxcUF3sF92apVq3Acn+87D/39/fAX18fH58yZMxERER0dHQurylEaGxsJgti6dStcpNFoc/Vql9jKlSsxDJuYmLC4ZUFBwdq1a5ubm8k1YWFh7u7u3377LbnmwYMHGo3mjTfesFibnZovJSWlubn52bNncFGpVPb09MChJDQa7e233/7mm28MBgMslcvlGIbBB8rmS0nwRPn6+to2bOey3HOcj49PUlJSVVVVeXm5QqFobW01vgON4/jBgwcrKyvLysoUCoVer+/r6/vpp5/M19nf33/o0KFHjx5pNJrm5uaenp6tW7curKqlZDAYxsbGdDpda2trenq6QCBITU2FRSKR6MWLF7W1tVqtdnh42PjyAQDg5eXV39/f3d09OTmp1Wrlcrn9xo6w2ezg4GBrvhUMe6zGd+VxHD969GhNTc3Vq1cVCkVbW9vhw4f5fH5aWpo1tc3VfBKJxNfXd2HvimVkZAQGBqampvb29o6OjmZlZalUKvJpSU5OzuDg4KlTp6anp5uammQyWWpq6po1a6wpheCJmnX83TJi/0e3DjCvsSOTk5Pvv//+ihUr3N3dt23blpubCwAICAj429/+RhDEzMxMVlaWQCCg0WgwIba3t1+8eBHezQ0JCenq6rp8+TKXywUABAYGPnnypLu7WywW83g8V1fXX/ziFydOnNDpdHNVZU2EC3iu/8knn8BbNmw2e/fu3eYDJggiLS2NTqf7+/vTaDQulxsfH9/V1UXWNjo6+tZbb+E4HhQU9OGHH8IhhCKRCA4uefjwYWBgIIvF2rZt28DAQH19PYfDKSwsnFfAELBi7IhUKqXT6UqlEi7W1NTAx6ze3t5Hjhwx2TgzM9N47IjBYJDJZCEhIXQ6ncfjJSQkPH78GBZZPEVzNV9CQgIAIDc3d9Zom5qaoqKiyNtkfn5+YrH4zp075AY//PDD3r17eTwek8ncsmWLXC433h0OtGQymXw+PzMzU61WW19KEMSuXbv8/f3JdyHMoPDYEWoe1WLe5XoFLcHvX1pampeXl11/hDWsyXGdnZ00Gu3KlStLE5JFer1++/bt5eXljg7E1MjICI7j586ds2ZjCue45d5XRUjO8pkKkUiUn5+fn59PvrvuQHq9vra2dnJyUiKRODoWU3l5eeHh4VKp1NGBOBjKcYjzyc7OTk5Olkgk1jx8sKvGxsbq6mq5XG5+yN7SKykpaWlpqa+vp9Ppjo7FwVCOQ8Dx48crKiomJiaCgoKcZQK6oqIiqVR65swZx4YRExNz7do18mXeV0RdXd3MzExjYyOPx3N0LI5HzTmkkXkpLi4uLi52dBTzFhsbGxsb6+goXkVxcXFxcXGOjuJVga7jEAShMpTjEAShMpTjEAShMpTjEAShMpTjEAShMoyg4neQk5OTnWUMBIK8OiiZDSg7dmTr1q0fffSRo6OwjaamptLSUrvO//CKSElJSU9Pj4yMdHQgyw78HXN0FHZB2RwXEBDw7rvvOjoKmyktLaXS4cwlJSUlMjJyORzpK4iqOQ7dj0MQhMpQjkMQhMpQjkMQhMpQjkMQhMpQjkMQhMqWb46rrq4ODg7GjDAYjJUrV+7YsUMmk42NjTk6QGRRGhoasrOzjVv5wIEDxhvExsZyOBxXV9fQ0NCFzcZgKwaD4fz582Kx+OWiu3fvRkVFsdlsPp+flZVFTiD35Zdfnj171lk+a+pgjv4QsV1Y/61zoVDo4eFBEAScseUvf/lLamoqhmF8Pv+vf/2rncO0FoW/Q20CWPGtc2vk5ua+8847CoUCLgqFwhUrVgAAbt68abyZXC43nu3BIZ48eRIVFQUA2Lhxo0nRd999x2KxcnJypqam7t275+3tffDgQbK0tLQ0Ojp6bGzMJmFQ+Hds+V7HmcAwzNPTc8eOHRUVFTdu3BgcHNy1a5fDPzO7ZFQq1azXEY6tamH+9V//9Y9//OONGzc4HA658sKFCy4uLmlpaa9Um/7tb3/77W9/e/jw4fDw8JdLCwoK/Pz8Tp8+7ebmFhkZmZWV9W//9m+PHj2Cpf/8z/+8cePGt99+W6fTLW3UTgbluFns2bMnNTV1aGjo0qVLjo5liZSXlw8NDb1qVS3A06dPc3JyTp8+DWcHJ4nF4vT09B9//PHYsWOOiu1lGzdurK6u3rdvH5PJNCnS6XS3bt2Kjo7GMAyu2blzJ0EQdXV15DZ5eXktLS1UHbtrKyjHzQ5OLSqXy+GiXq/Pzc0VCAQsFmvDhg3wwr6srMzNzY3NZtfV1e3cuZPL5QYEBFRWVpKVwKnh2Gw2l8tdv369QqGYqyqbIAiipKTk9ddfZzKZPB4vPj6e/JsvlUoZDAb5Se4PPvjAzc0Nw7CRkREAQHp6+tGjR7u6ujAME4lEFy5cwHF85cqVhw4d4vP5OI6LxeIHDx4soCoAwNdff22/6VZfduHCBYIgTKZShgoLC1evXv355583NDTMuq+ZE2ixrW3erM+ePZuamhIIBOQaOMVia2sruYbH40VHR5eWlhJUfM/UZhzaU7aXBdyPMwHz0apVq+DisWPHmExmVVXV2NjY8ePHXVxc4N26EydOAABu3749MTExNDS0fft2Nzc3jUZDEMTU1BSXyz179qxKpRoYGEhMTBweHjZTlRlW3ivJzc1lMBhXrlwZHx9vbW2NiIjw9vYeGBiApfv27fP19SU3lslkAAAYEkEQSUlJQqGQLE1LS3Nzc+vo6FCr1e3t7Zs3b+ZwOHA21flWdfPmTQ6Hk5+fbzF+whb344KDg9etW2eyUigUPn/+nCCIe/fuubi4vPbaa1NTU8RL9+PMn0AzbU0sqFmNvfnmmyb34+7cuQMAkMlkxitZLFZMTIzxmuzsbABAc3Oz9T9rVuh+3LLD4XAwDJucnAQAqNXqsrKyhISEpKQkT0/PkydP0un0iooKcmOxWMzlcn18fCQSyfT0dG9vLwCgu7tboVCEhobiOO7r61tRlOz0AAAGWElEQVRdXe3t7W2xqgVTqVQlJSWJiYn79+/38PBYv379pUuXRkZGLl++vLAKaTQavKJZt25dWVnZ5OTkwuLctWuXQqHIyclZWBjzMj09/fz5c3i9M6vIyMiPPvqou7ubnIueZOUJnLWt7dGs8BGqq6ur8Uo6na5SqYzXhISEAADa2toW87OoDeW42U1PTxMEAWdKf/z4sVKpDAsLg0UsFsvPz4/sxRhjMBgAAK1WCwAIDg5euXLl/v378/Lyuru74QbWVzVf7e3tU1NTmzZtItds3ryZwWCQfczF2LRpE5vNtkmcdjU0NEQQhPlpAAsLC9esWXPx4sW7d+8ar5/vCTRua3s0K7yfaPI8QaPRsFgs4zXwYAcHBxfzs6gN5bjZPXnyBACwdu1aAMD09DQA4OTJk+RIup6eHqVSab4GFov15z//edu2bUVFRcHBwRKJRKVSLawqa4yPjwMA3N3djVd6enrCS9HFYzKZw8PDNqnKftRqNQDg5fv3xnAcr6iowDDsvffeM74mWswJtEezwjue8J4JpFQq1Wo1n8833gymPHjgyKxQjpvd119/DQDYuXMnAMDHxwcAcP78eeNOflNTk8VKQkNDv/rqq/7+/qysrOvXr587d27BVVnk6ekJADD5Dzk+Ph4QELD4yrVara2qsiv4H97iyNjIyMiMjIzOzs6CggJy5WJOoD2aNSgoiMPh9PT0kGuePn0KANiwYYPxZhqNBvx84MisUI6bxcDAwPnz5wMCAt577z0AwKpVq3Acb2lpmVcl/f39HR0dAAAfH58zZ85ERER0dHQsrCprhIWFubu7f/vtt+SaBw8eaDSaN954Ay7SaDTYsVqAxsZGgiC2bt26+KrsauXKlRiGWTMCrqCgYO3atc3NzeQaiyfQDHs0K41Ge/vtt7/55huDwQDXyOVyDMNMHhnDg/X19bXhj6YYlOMAQRBTU1MGg4EgiOHh4evXr0dFRbm6utbW1sL7cTiOHzx4sLKysqysTKFQ6PX6vr6+n376yXy1/f39hw4devTokUajaW5u7unp2bp168KqsgaO40ePHq2pqbl69apCoWhrazt8+DCfz09LS4MbiESiFy9e1NbWarXa4eFh4wsEAICXl1d/f393d/fk5CTMX/DFD51O19ramp6eLhAI4Hia+VYll8uXbOwIm80ODg7u6+uzuCXssRrf0bd4As3XNlezSiQSX1/fhb0rlpOTMzg4eOrUqenp6aamJplMlpqaumbNGuNt4MGuX79+AfUvF3Z+busY1owd+fLLLzds2MBmsxkMhouLC/j5VYctW7bk5+ePjo4abzwzM5OVlSUQCGg0mo+PT1JSUnt7+8WLF+Ed35CQkK6ursuXL8OcGBgY+OTJk+7ubrFYzOPxXF1df/GLX5w4cUKn081VlflQrXyubzAYZDJZSEgInU7n8XgJCQmPHz8mS0dHR9966y0cx4OCgj788MPMzEwAgEgkgiNCHj58GBgYyGKxtm3bNjAwkJaWRqfT/f39aTQal8uNj4/v6upaWFX19fUcDqewsNBi/IQtxo5IpVI6na5UKuFiTU0NfMzq7e195MgRk40zMzONx46YOYHm25qYu1kTEhIAALm5ubNG29TUFBUVRd5i8/PzE4vFd+7cITeAQyyZTCafz8/MzFSr1SY17Nq1y9/fH/6FXgwKjx2h5lFZPz7OKSz9719aWpqXl9dS/kRo8Tmus7OTRqNduXLFViEtkl6v3759e3l5uT0qHxkZwXH83Llzi6+KwjkO9VWR2TnpNy1EIlF+fn5+fv7U1JSjYwF6vb62tnZyclIikdij/ry8vPDwcKlUao/KKQPlOIRqsrOzk5OTJRKJw1+/b2xsrK6ulsvl5ofsLUxJSUlLS0t9fT2dTrd55VSCchxi6vjx4xUVFRMTE0FBQU46TW1RUZFUKj1z5oxjw4iJibl27Rr5bq8N1dXVzczMNDY28ng8m1dOMZSdexBZsOLi4uLiYkdHsVixsbGxsbGOjsJe4uLi4uLiHB2Fc0DXcQiCUBnKcQiCUBnKcQiCUBnKcQiCUBllnzn09fXduHHD0VHYBny7mzKHY55NvlCAzBeFTztGUPErycnJyU466AFBHIiS2YCaOQ5BEARC9+MQBKEylOMQBKEylOMQBKEylOMQBKGy/wcmb9DSDcBL+gAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 9 + } + ] + }, + { + "cell_type": "code", + "source": [ + "# to train on tpu, model and hyperparameters should be called\n", + "# within the scope of the tpu strategy\n", + "with strategy.scope():\n", + " model = MyModel()\n", + "\n", + " optimizer = tf.keras.optimizers.Adam(learning_rate = C.LR)\n", + "\n", + " # set reduction to NONE, this ensures the loss values\n", + " # are not reduced using the per replica batch size\n", + " loss_func = tf.keras.losses.SparseCategoricalCrossentropy(\n", + " from_logits = True,\n", + " reduction = tf.keras.losses.Reduction.NONE\n", + " )\n", + "\n", + " # compute custom averaging scheme for TPU training\n", + " # this ensures loss is computed using the global batch size\n", + " def compute_loss(y_true,y_pred):\n", + " per_example_loss = loss_func(y_true,y_pred)\n", + " return tf.nn.compute_average_loss(\n", + " per_example_loss,\n", + " global_batch_size=C.GLOBAL_BATCH_SIZE\n", + " )\n", + "\n", + " # metric to calculate the accuracy of our model\n", + " acc = tf.keras.metrics.SparseCategoricalAccuracy()" + ], + "metadata": { + "id": "7XfmoFFDtdhX" + }, + "execution_count": 10, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# the training job on each worker\n", + "# since there are 8 tpus, train_step runs on all 8\n", + "def train_step(inputs):\n", + " x,y = inputs\n", + " with tf.GradientTape() as tape:\n", + " y_preds = model(x)\n", + " loss = compute_loss(y,y_preds)\n", + "\n", + " grads = tape.gradient(loss,model.trainable_variables)\n", + " optimizer.apply_gradients(zip(grads,model.trainable_variables))\n", + " acc.update_state(y,y_preds)\n", + " return loss\n", + "\n", + "# computes the distributed \n", + "@tf.function\n", + "def distributed_train(dist_inputs):\n", + " per_replica_losses = strategy.run(train_step,args=(next(dist_inputs),))\n", + " return strategy.reduce(tf.distribute.ReduceOp.SUM,per_replica_losses,axis=None) " + ], + "metadata": { + "id": "iQHU6L42ud47" + }, + "execution_count": 11, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "steps_per_epoch = 60000 // C.GLOBAL_BATCH_SIZE\n", + "for e in range(1,11):\n", + " running_loss = 0.0\n", + " num_batches = 0\n", + " ds = iter(train_dist)\n", + " for i in range(steps_per_epoch):\n", + " running_loss+=distributed_train(ds)\n", + " num_batches+=1\n", + " total_loss = running_loss/num_batches\n", + " print (f\"Epoch: {e} Loss: {total_loss:.4f}\\tAccuracy: {acc.result()*100:.2f}\")\n", + " acc.reset_states()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "B7CTjlUEY0Yb", + "outputId": "d8ac0d4c-66c0-4bee-9e42-e245e2c790a9" + }, + "execution_count": 12, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Epoch: 1 Loss: 0.3249\tAccuracy: 90.94\n", + "Epoch: 2 Loss: 0.0791\tAccuracy: 97.62\n", + "Epoch: 3 Loss: 0.0588\tAccuracy: 98.23\n", + "Epoch: 4 Loss: 0.0476\tAccuracy: 98.57\n", + "Epoch: 5 Loss: 0.0406\tAccuracy: 98.76\n", + "Epoch: 6 Loss: 0.0348\tAccuracy: 98.94\n", + "Epoch: 7 Loss: 0.0308\tAccuracy: 99.02\n", + "Epoch: 8 Loss: 0.0276\tAccuracy: 99.17\n", + "Epoch: 9 Loss: 0.0243\tAccuracy: 99.29\n", + "Epoch: 10 Loss: 0.0219\tAccuracy: 99.34\n" + ] + } + ] + } + ] +} \ No newline at end of file