{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "FhGuhbZ6M5tl" }, "source": [ "##### Copyright 2022 The TensorFlow Authors." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "cellView": "form", "execution": { "iopub.execute_input": "2022-12-14T22:04:32.623945Z", "iopub.status.busy": "2022-12-14T22:04:32.623434Z", "iopub.status.idle": "2022-12-14T22:04:32.627640Z", "shell.execute_reply": "2022-12-14T22:04:32.627028Z" }, "id": "AwOEIRJC6Une" }, "outputs": [], "source": [ "#@title Licensed under the Apache License, Version 2.0 (the \"License\");\n", "# you may not use this file except in compliance with the License.\n", "# You may obtain a copy of the License at\n", "#\n", "# https://www.apache.org/licenses/LICENSE-2.0\n", "#\n", "# Unless required by applicable law or agreed to in writing, software\n", "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", "# See the License for the specific language governing permissions and\n", "# limitations under the License." ] }, { "cell_type": "markdown", "metadata": { "id": "EIdT9iu_Z4Rb" }, "source": [ "# 使用 Core API 进行数字识别的多层感知器" ] }, { "cell_type": "markdown", "metadata": { "id": "bBIlTPscrIT9" }, "source": [ "\n", " \n", " \n", " \n", " \n", "
在 TensorFlow.org 上查看\n", " 在 Google Colab 中运行\n", " 在 GitHub 上查看源代码\n", " 下载笔记本\n", "
" ] }, { "cell_type": "markdown", "metadata": { "id": "SjAxxRpBzVYg" }, "source": [ "此笔记本使用 [TensorFlow Core 低级 API](https://tensorflow.google.cn/guide/core) ​​构建端到端机器学习工作流,用于使用[多层感知器](https://developers.google.com/machine-learning/crash-course/introduction-to-neural-networks/anatomy)和 [MNIST 数据集](http://yann.lecun.com/exdb/mnist)进行手写数字分类。访问 [Core API 概述](https://tensorflow.google.cn/guide/core)以详细了解 TensorFlow Core 及其预期用例。" ] }, { "cell_type": "markdown", "metadata": { "id": "GHVMVIFHSzl1" }, "source": [ "## 多层感知器 (MLP) 概述\n", "\n", "多层感知器 (MLP) 是一种用于处理[多类分类](https://developers.google.com/machine-learning/crash-course/multi-class-neural-networks/video-lecture)问题的前馈神经网络。在构建 MLP 之前,务必了解感知器、层和激活函数的概念。\n", "\n", "多层感知器由称为感知器的函数单元构成。感知器的方程如下:\n", "\n", "$$Z = \\vec{w}⋅\\mathrm{X} + b$$\n", "\n", "其中\n", "\n", "- $Z$:感知器输出\n", "- $\\mathrm{X}$:特征矩阵\n", "- $\\vec{w}$:权重向量\n", "- $b$:偏差\n", "\n", "建立感知器堆栈时,它们会构成称为密集层的结构,随后可连接以构建神经网络。密集层的方程与感知器的方程类似,区别是使用权重矩阵和偏差向量:\n", "\n", "$$Y = \\mathrm{W}⋅\\mathrm{X} + \\vec{b}$$\n", "\n", "其中\n", "\n", "- $Z$:密集层输出\n", "- $\\mathrm{X}$:特征矩阵\n", "- $\\mathrm{W}$:权重矩阵\n", "- $\\vec{b}$:偏差向量\n", "\n", "在 MLP 中,多个密集层会采用将一层的输出完全连接到下一层的输入的方式进行连接。将非线性激活函数添加到密集层的输出可以帮助 MLP 分类器学习复杂的决策边界,并有效泛化到未知数据。" ] }, { "cell_type": "markdown", "metadata": { "id": "nchsZfwEVtVs" }, "source": [ "## 安装\n", "\n", "首先,导入 TensorFlow、[pandas](https://pandas.pydata.org)、[Matplotlib](https://matplotlib.org) 和 [seaborn](https://seaborn.pydata.org)。" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T22:04:32.631505Z", "iopub.status.busy": "2022-12-14T22:04:32.630919Z", "iopub.status.idle": "2022-12-14T22:04:34.169636Z", "shell.execute_reply": "2022-12-14T22:04:34.168475Z" }, "id": "mSfgqmwBagw_" }, "outputs": [], "source": [ "# Use seaborn for countplot.\n", "!pip install -q seaborn" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T22:04:34.173779Z", "iopub.status.busy": "2022-12-14T22:04:34.173485Z", "iopub.status.idle": "2022-12-14T22:04:35.175646Z", "shell.execute_reply": "2022-12-14T22:04:35.174891Z" }, "id": "1rRo8oNqZ-Rj" }, "outputs": [], "source": [ "import pandas as pd\n", "import matplotlib\n", "from matplotlib import pyplot as plt\n", "import seaborn as sns\n", "import tempfile\n", "import os\n", "# Preset Matplotlib figure sizes.\n", "matplotlib.rcParams['figure.figsize'] = [9, 6]" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T22:04:35.179453Z", "iopub.status.busy": "2022-12-14T22:04:35.178836Z", "iopub.status.idle": "2022-12-14T22:04:37.105116Z", "shell.execute_reply": "2022-12-14T22:04:37.104434Z" }, "id": "9xQKvCJ85kCQ" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2022-12-14 22:04:36.070821: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer.so.7'; dlerror: libnvinfer.so.7: cannot open shared object file: No such file or directory\n", "2022-12-14 22:04:36.070932: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer_plugin.so.7'; dlerror: libnvinfer_plugin.so.7: cannot open shared object file: No such file or directory\n", "2022-12-14 22:04:36.070942: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Cannot dlopen some TensorRT libraries. If you would like to use Nvidia GPU with TensorRT, please make sure the missing libraries mentioned above are installed properly.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "2.11.0\n" ] } ], "source": [ "import tensorflow as tf\n", "import tensorflow_datasets as tfds\n", "print(tf.__version__)\n", "# Set random seed for reproducible results \n", "tf.random.set_seed(22)" ] }, { "cell_type": "markdown", "metadata": { "id": "F_72b0LCNbjx" }, "source": [ "## 加载数据\n", "\n", "本教程使用 [MNIST 数据集](http://yann.lecun.com/exdb/mnist),并演示如何构建可对手写数字进行分类的 MLP 模型。该数据集可从 [TensorFlow Datasets](https://tensorflow.google.cn/datasets/catalog/mnist) 获得。\n", "\n", "将 MNIST 数据集拆分为训练集、验证集和测试集。验证集可用于衡量模型在训练期间的泛化性,从而使测试集可用作模型性能的最终无偏 estimator。\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T22:04:37.109436Z", "iopub.status.busy": "2022-12-14T22:04:37.108436Z", "iopub.status.idle": "2022-12-14T22:04:42.544610Z", "shell.execute_reply": "2022-12-14T22:04:42.543919Z" }, "id": "Uiuh0B098_3p" }, "outputs": [], "source": [ "train_data, val_data, test_data = tfds.load(\"mnist\", \n", " split=['train[10000:]', 'train[0:10000]', 'test'],\n", " batch_size=128, as_supervised=True)" ] }, { "cell_type": "markdown", "metadata": { "id": "X9uN3Lf6ANtn" }, "source": [ "MNIST 数据集包含手写数字及其对应的真实标签。呈现下面的几个样本。" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T22:04:42.549031Z", "iopub.status.busy": "2022-12-14T22:04:42.548528Z", "iopub.status.idle": "2022-12-14T22:04:43.782446Z", "shell.execute_reply": "2022-12-14T22:04:43.781639Z" }, "id": "6V8hSqJ7AMjQ" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnMAAAH4CAYAAAAhL2uIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA9jklEQVR4nO3dfXzPdf///8fbZmMztpqohc3MSavI6FNiWyF0lINoCYUOHxV1qA5knbFwlHT2CZGjPkSiclKOopGDj+OIdSIhOiFbxMqGCbPG9vz+0c9+PV+v7b336d7v59yul8sul+6vPV+v93PjYY9ee76fL4dSSgkAAACMVCfQEwAAAIDnaOYAAAAMRjMHAABgMJo5AAAAg9HMAQAAGIxmDgAAwGA0cwAAAAajmQMAADAYzRwAAIDBaObcMHnyZHE4HFJYWOizaw4fPlzi4+N9dj0A7qGugdrpfKptj5s5h8Ph0sfGjRt9OF33paeny+WXXx7QOdSUH374QerVqycOh0O++OKLQE8HBqKug8Pbb78tQ4cOlaSkJHE4HJKenh7oKcFw1HbwWLVqlXTs2FHq1asnzZs3l0mTJsnZs2e9umaopycuWrRIywsXLpR169bZjrdr187Tl4CbHnroIQkNDZXffvst0FOBoajr4DBnzhzZunWrdO7cWY4cORLo6aAWoLaDw5o1a6Rfv36Snp4uM2fOlJ07d8rUqVPl8OHDMmfOHI+v63EzN3ToUC3n5OTIunXrbMetiouLJSIiwtOXRRWys7MlOztbJkyYIFOnTg30dGAo6jo4LFq0SOLi4qROnTq1/i4Faga1HRzGjRsnV155paxdu1ZCQ39vwRo2bCh///vfZezYsdK2bVuPruvXNXPnbpdu3bpVUlNTJSIiQh599FER+f2W7+TJk23nxMfHy/Dhw7VjRUVF8uCDD0qzZs0kPDxcWrVqJdOnT5fy8nKfzHPHjh0yfPhwadmypdSrV0+aNm0qd999d5X/R1xYWCgZGRnSsGFDufDCC2Xs2LFSUlJiG/fmm29KSkqK1K9fXy644AIZNGiQHDhwoNr55Ofny7fffitnzpxxaf5nzpyRsWPHytixYyUxMdGlcwBPUdf+r+tmzZpJnTosaUbNorb9W9u7d++W3bt3y6hRoyoaORGR0aNHi1JKli1bVu1rVcXjO3OuOnLkiPTp00cGDRokQ4cOlSZNmrh1fnFxsaSlpcnBgwflnnvukebNm8vmzZslMzNT8vPz5aWXXvJ6juvWrZN9+/bJiBEjpGnTprJr1y6ZN2+e7Nq1S3JycsThcGjjMzIyJD4+Xp5++mnJycmRl19+WY4dOyYLFy6sGDNt2jR54oknJCMjQ0aOHCkFBQUyc+ZMSU1NlW3btkl0dHSV88nMzJQ33nhDcnNzXVpo+dJLL8mxY8fk8ccflxUrVnj6bQBcRl37v66BQKC2/Vfb27ZtExGRTp06accvueQSufTSSys+7xHlI2PGjFHWy6WlpSkRUXPnzrWNFxE1adIk2/EWLVqoYcOGVeQpU6aoyMhI9f3332vjJk6cqEJCQtT+/fudzistLU0lJyc7HVNcXGw7tmTJEiUiatOmTRXHJk2apERE9e3bVxs7evRoJSJq+/btSiml8vLyVEhIiJo2bZo2bufOnSo0NFQ7PmzYMNWiRQtt3LBhw5SIqNzcXKfzVkqp/Px8FRUVpV599VWllFLz589XIqI+//zzas8FqkNdB6au/yg5OVmlpaW5dQ5QHWq75mt7xowZSkQq/R507txZXXPNNU7Pd8bv9/HDw8NlxIgRHp//7rvvSrdu3SQmJkYKCwsrPnr06CFlZWWyadMmr+dYv379iv8uKSmRwsJCueaaa0RE5Msvv7SNHzNmjJYfeOABERFZvXq1iIisWLFCysvLJSMjQ5tz06ZNJSkpSTZs2OB0PgsWLBCllEv/9/7II49Iy5YtZeTIkdWOBXyFuvZvXQOBQm37r7ZPnz4tIr9/j63q1atX8XlP+P3XrHFxcRIWFubx+Xv27JEdO3ZI48aNK/384cOHPb72OUePHpWsrCxZunSp7XrHjx+3jU9KStJyYmKi1KlTR/Ly8irmrJSyjTunbt26Xs9Z5PcFrIsWLZL169ezvgY1irq281VdA4FEbdv5qrbPNaGV7ThRUlKiNanu8nsz5+7kysrKtFxeXi49e/aUCRMmVDq+devWHs/tnIyMDNm8ebOMHz9eOnToIA0aNJDy8nLp3bu3Sws2rb+fLy8vF4fDIWvWrJGQkBDb+AYNGng9ZxGRCRMmSLdu3SQhIaHiL+W5zRHz8/Nl//790rx5c5+8FvBH1LX/6hoIJGrbf7V98cUXi8jvP5+bNWumfS4/P1+uvvpqj6/t92auKjExMVJUVKQdKy0tlfz8fO1YYmKinDx5Unr06OGXeRw7dkzWr18vWVlZ8uSTT1Yc37NnT5Xn7NmzRxISEiry3r17pby8vOIWa2JioiilJCEhwSd/cauyf/9++fHHH7W5nNO3b19p1KiR7XsM+BN1DdRO1Lb3OnToICIiX3zxhda4HTp0SH766ScZNWqUx9cO2O/mEhMTbb87nzdvnq3Lz8jIkC1btkh2drbtGkVFRV7vmnyuC1dKacedveNm9uzZWp45c6aIiPTp00dERG699VYJCQmRrKws23WVUtVuAurq25znzZsnK1eu1D7OrQV47rnnZPHixU7PB3yNuq6au1sOAcGE2q6aq7WdnJwsbdu2tX3f5syZIw6HQwYOHOj0fGcCdmdu5MiRcu+998qAAQOkZ8+esn37dsnOzpbY2Fht3Pjx42XVqlVy8803y/DhwyUlJUVOnTolO3fulGXLlkleXp7tHKuCgoJKN9JNSEiQIUOGSGpqqjz77LNy5swZiYuLk7Vr10pubm6V18vNzZW+fftK7969ZcuWLfLmm2/K4MGDpX379iLy+1/6qVOnSmZmpuTl5Um/fv0kKipKcnNzZeXKlTJq1CgZN25cldd39W3ON954o+3Yuf9zSktLs739GfA36tr7uhYR2bRpU8UPzoKCAjl16lTF15qamiqpqalOzwd8jdr2TW3PmDFD+vbtKzfeeKMMGjRIvv76a5k1a5aMHDnSu6dvePw+WIuq3uZc1VuMy8rK1COPPKJiY2NVRESE6tWrl9q7d6/tbc5KKXXixAmVmZmpWrVqpcLCwlRsbKzq0qWLeu6551RpaanTeZ17q3VlH927d1dKKfXTTz+p/v37q+joaNWoUSN12223qUOHDtnein3ubc67d+9WAwcOVFFRUSomJkbdf//96vTp07bXXr58ueratauKjIxUkZGRqm3btmrMmDHqu+++qxjjyy0MlGJrEvgWdR2Yuj43p8o+KtseAnAXtR24n9krV65UHTp0UOHh4erSSy9Vjz/+eLXfl+o4lLLcUwQAAIAx2M8CAADAYDRzAAAABqOZAwAAMBjNHAAAgMFo5gAAAAxGMwcAAGAwmjkAAACDufwECOuDaWE2theECHVd21DXEKGuaxtX6po7cwAAAAajmQMAADAYzRwAAIDBaOYAAAAMRjMHAABgMJo5AAAAg9HMAQAAGIxmDgAAwGA0cwAAAAajmQMAADCYy4/zAgAACFatW7fW8uzZs7XcvXt32zkLFizQ8ujRo7VcUlLim8n5GXfmAAAADEYzBwAAYDCaOQAAAIPRzAEAABiMN0AAAADjdenSRcs33HCDlpVStnOGDRum5bKyMi2PGTNGy6Wlpd5M0W+4MwcAAGAwmjkAAACD0cwBAAAYzKEq+yVyZQMdDn/PxUgDBw60HXvnnXe0fM8992j5H//4h1/n5AoX/9hRy1HXv6tfv76WX3nlFduYiIgILd9xxx1aLi8v9/3E3ERdQ+T8qevevXtreenSpVqOiory+jXGjRun5RdffNHra7rLlbrmzhwAAIDBaOYAAAAMRjMHAABgMNbMeWnFihW2Y3/+85+1/Oijj2p5+vTpfp2TK1hbA5Hzt66tX/cbb7yh5aFDh1Z7jY4dO2r5q6++8npe3qKuIVJ769q6bnXjxo1aTklJ8flrHj9+XMsXXHCBz1+jOqyZAwAAqOVo5gAAAAxGMwcAAGAwns3qphYtWmi5T58+tjFbt27V8ltvveXXOQFwz2WXXaZlV9bI/frrr1o+cuSIT+cEwLnly5druVOnTlqubm1ZZetaO3To4PSc0FAz2iTuzAEAABiMZg4AAMBgNHMAAAAGM+OXwVVwZS8dX++79Ne//lXLYWFhtjH79u3T8oEDB3w6BwDeue2229w+Z//+/VqmrgH/GjlypJbT09PdOt/6szgtLc02xroOr0ePHlq2rplLTEzU8g8//ODWnPyFO3MAAAAGo5kDAAAwGM0cAACAwYxeM2f9/fmLL75oG3PvvfdqOScnx6vXvOKKK6odEwzPaARQtbFjxzr9/NmzZ23Hnn76aX9NB4CI3HXXXVqeNWuWluvWrev0/L1792q5V69eWj558qTtnOr2iwwPD9eyte9gzRwAAAC8RjMHAABgMJo5AAAAgxm9Zu706dNarmw9m3VfGXfXzF166aVOr3fixAnbOW+88YZbrwHAv6Kjo7XcqFEjp+MLCgpsx5YsWeLLKQHntbi4ONuxzMxMLVe3Ri4/P1/L99xzj5bz8vI8m5wT3bt31/Lrr7/u89fwBHfmAAAADEYzBwAAYDCaOQAAAIPRzAEAABjM6DdAHD582O+v0b9/fy1bF2R+8cUXtnOsizIBBNZTTz3l1vidO3f6aSbA+cn6ZsLVq1fbxrRu3dqtaz777LNa3rhxo9vzcldycrLfX8MT3JkDAAAwGM0cAACAwWjmAAAADGb0mrkLLrjA769xySWXOP18TfyOHoB3Ro4c6db4//mf//HTTIDzk3VzXU/Wnn311VdaXrBggRcz8kwgXtMV3JkDAAAwGM0cAACAwWjmAAAADGb0mjnrHnAOh8Pra1of/nvfffc5fY3//d//9fo1AQRWUVGRltetWxeYiQC1RK9evbTcs2dPt69x6tQpLffr10/Lx48fd/uaVtaf6dX1ESdOnPD6Nf2BO3MAAAAGo5kDAAAwGM0cAACAwYxaMxceHq7lUaNGaVkpZTvnjjvu0HJ8fLyWrXvVXXnllVqOiorS8rZt27Scm5tb9YQBBESHDh20bH2mstXs2bO1fPbsWV9PCajVoqOjtfzaa69pubKfz1bWNXLDhg3T8oEDBzyb3P8nLCzMduyiiy7SsnWeZWVlWj548KBXc/AX7swBAAAYjGYOAADAYDRzAAAABjNqzdzgwYO17MqzWa+44gotW9fEufJ7/D965plntFxeXu7W+QD879lnn9VyaKj+T92ZM2e0bF0zB8A91jXt1T3XvDL//Oc/tbxy5Uqv5mT1wAMP2I6lp6c7PaekpETLa9as8eWUfIY7cwAAAAajmQMAADAYzRwAAIDBjFoz17lzZy0XFxdrubLnpB46dEjLR48e1XJhYaGWly1b5nQOH330UbXzBFCzWrRooeVrr71Wy9a1sXv37tXyzz//7J+JAbVUamqqlletWuXW+ZWtV1+9erVXc6rOzTff7PY51r3pOnXqpOUvvvjCqzn5CnfmAAAADEYzBwAAYDCaOQAAAIMZtWZu9OjRTrMnBg4cqGWHw6HlFStWaPnXX3/1+jUB+Na4ceO0HBkZ6XS8dR86AO6ZNWuWlq3PMa/Ovn37bMcWL17s1Zysrr/+ei1fd911bl/DupfssWPHvJqTv3BnDgAAwGA0cwAAAAajmQMAADAYzRwAAIDBjHoDhD8MHjxYy9aNDD///POanA4AD1T3sGyrBQsW+GUewPninXfe0XJWVpZb57/99tu+nI6IiAwdOlTLkydP1nJISIjb15w0aZKWf/jhB7evURO4MwcAAGAwmjkAAACD0cwBAAAY7LxfM5eWlqZl65q5//u//6vJ6QBwQfv27bXcunVrp+Pfe+89P84GOP/8/PPPXp1vfYC9iMhf/vIXLaekpGj5wIEDWraulU1NTa32NaysmwJb1wI+//zz1V4jGHBnDgAAwGA0cwAAAAajmQMAADDYebdmrmPHjloODdW/BWvXrtVyTk6O3+cEwD3Wh3zXrVvX6finnnrKn9MB4KZx48Z5fY06dfT7Udb1b1a//PKL7dgLL7yg5eeee87reQUCd+YAAAAMRjMHAABgMJo5AAAAgzmUdWO1qgY6HP6eS41Yt26dlrt3767lM2fOaPnBBx/U8pw5c/wyr5rm4h87ajkT6rpBgwa2Y999952WL774Yi0fO3bM6edLS0t9NLvgQl1DpGbq+pJLLtFydna2li+77DK/z8H6dRYUFGh53rx5Wn799ddt18jLy/P5vHzNlbrmzhwAAIDBaOYAAAAMRjMHAABgsPNunznr756tedeuXVpetmyZ3+cEoGqVPXfVugbOavPmzVqurWvkgEA5dOiQlq3PRR00aJCWn3jiCS03adLE7ddcsGCBlj/44AMtb9myRcvePj/WJNyZAwAAMBjNHAAAgMFo5gAAAAx23u0zd+DAAS03atRIy1deeaWWTdiDxhPsRwURM+p60qRJLh37o/79+2v5/fff9+mcghV1DREz6hquY585AACAWo5mDgAAwGA0cwAAAAY779bMFRYWatn6DMekpKSanE7AsLYGImbUdWxsrO2YdT9I69/nxMRELZ86dcr3EwtC1DVEzKhruI41cwAAALUczRwAAIDBaOYAAAAMRjMHAABgsPPuDRD4HQulIUJd1zbUNUSo69qGN0AAAADUcjRzAAAABqOZAwAAMBjNHAAAgMFo5gAAAAxGMwcAAGAwmjkAAACD0cwBAAAYjGYOAADAYDRzAAAABqOZAwAAMJjLz2YFAABA8OHOHAAAgMFo5gAAAAxGMwcAAGAwmjkAAACD0cwBAAAYjGYOAADAYDRzAAAABqOZAwAAMBjNHAAAgMFo5gAAAAxGMwcAAGAwmjkAAACD0cwBAAAYjGYOAADAYDRzAAAABqOZAwAAMBjNHAAAgMFo5gAAAAxGMwcAAGAwmjkAAACD0cwBAAAYjGYOAADAYDRzAAAABqOZAwAAMBjNHAAAgMFo5gAAAAxGMwcAAGAwmjkAAACD0cwBAAAYjGYOAADAYDRzAAAABqOZAwAAMBjNHAAAgMFo5gAAAAxGMwcAAGAwmjk3TJ48WRwOhxQWFvrsmsOHD5f4+HifXQ+Ae6hroHY6n2rb42bO4XC49LFx40YfTtd96enpcvnllwd0Dv6yceNGp9/7adOmBXqKMAx1HRxKSkrk6aeflssuu0wiIiIkLi5ObrvtNtm1a1egpwZDUdvB4e2335ahQ4dKUlKSOBwOSU9P98l1Qz09cdGiRVpeuHChrFu3zna8Xbt2nr4EqtGuXTvb91vk9z+btWvXyo033hiAWcFk1HVwGDJkiKxatUr++7//Wzp27CiHDh2S2bNny7XXXis7d+6UFi1aBHqKMAy1HRzmzJkjW7dulc6dO8uRI0d8dl2Pm7mhQ4dqOScnR9atW2c7blVcXCwRERGeviz+oEmTJpV+v7OysiQpKUk6d+4cgFnBZNR14B08eFBWrFgh48aNkxkzZlQc79atm9xwww2yYsUKeeihhwI4Q5iI2g4OixYtkri4OKlTp45P70D6dc3cudulW7duldTUVImIiJBHH31URH6/5Tt58mTbOfHx8TJ8+HDtWFFRkTz44IPSrFkzCQ8Pl1atWsn06dOlvLzcJ/PcsWOHDB8+XFq2bCn16tWTpk2byt13311l11xYWCgZGRnSsGFDufDCC2Xs2LFSUlJiG/fmm29KSkqK1K9fXy644AIZNGiQHDhwoNr55Ofny7fffitnzpxx+2v57LPPZO/evTJkyBC3zwVcQV37t65PnDghIr//z9ofXXzxxSIiUr9+/WpfC/AEte3/n9nNmjWTOnV833p5fGfOVUeOHJE+ffrIoEGDZOjQobZ/oKpTXFwsaWlpcvDgQbnnnnukefPmsnnzZsnMzJT8/Hx56aWXvJ7junXrZN++fTJixAhp2rSp7Nq1S+bNmye7du2SnJwccTgc2viMjAyJj4+Xp59+WnJycuTll1+WY8eOycKFCyvGTJs2TZ544gnJyMiQkSNHSkFBgcycOVNSU1Nl27ZtEh0dXeV8MjMz5Y033pDc3Fy3F1ouXrxYRIRmDn5FXfuvrhMTE+XSSy+V559/Xtq0aSNXXXWVHDp0SCZMmCAJCQkyaNAgb781QJWo7Zr9me0zykfGjBmjrJdLS0tTIqLmzp1rGy8iatKkSbbjLVq0UMOGDavIU6ZMUZGRker777/Xxk2cOFGFhISo/fv3O51XWlqaSk5OdjqmuLjYdmzJkiVKRNSmTZsqjk2aNEmJiOrbt682dvTo0UpE1Pbt25VSSuXl5amQkBA1bdo0bdzOnTtVaGiodnzYsGGqRYsW2rhhw4YpEVG5ublO52119uxZ1aRJE3X11Ve7dR5QFeo6MHX96aefqsTERCUiFR8pKSkqPz+/2nMBV1Dbgf+ZnZycrNLS0tw6pyp+35okPDxcRowY4fH57777rnTr1k1iYmKksLCw4qNHjx5SVlYmmzZt8nqOf/y1RUlJiRQWFso111wjIiJffvmlbfyYMWO0/MADD4iIyOrVq0VEZMWKFVJeXi4ZGRnanJs2bSpJSUmyYcMGp/NZsGCBKKXc7vDXr18vv/zyC3fl4HfUtX/rOiYmRjp06CATJ06U9957T5577jnJy8uT2267rdJfDwG+Qm3X3M9sX/L7r1nj4uIkLCzM4/P37NkjO3bskMaNG1f6+cOHD3t87XOOHj0qWVlZsnTpUtv1jh8/bhuflJSk5cTERKlTp47k5eVVzFkpZRt3Tt26db2ec2UWL14sISEhcvvtt/vl+sA51LWdr+r6+PHj0q1bNxk/frz87W9/qzjeqVMnSU9Pl/nz58t9993nk9cCrKhtO3/9zPYlvzdz7i7WLSsr03J5ebn07NlTJkyYUOn41q1bezy3czIyMmTz5s0yfvx46dChgzRo0EDKy8uld+/eLi3YtP5+vry8XBwOh6xZs0ZCQkJs4xs0aOD1nK1Onz4tK1eulB49eri9xgFwF3Xtv7pevny5/PLLL9K3b1/teFpamjRs2FA++eQTmjn4DbVdMz+zfc3vzVxVYmJipKioSDtWWloq+fn52rHExEQ5efKk9OjRwy/zOHbsmKxfv16ysrLkySefrDi+Z8+eKs/Zs2ePJCQkVOS9e/dKeXl5xS3WxMREUUpJQkKCT/7iumLVqlVy4sQJfsWKgKKuvffLL7+IiP2HpFJKysrK5OzZs357baAq1HZwC9jjvBITE22/O583b57tH7CMjAzZsmWLZGdn265RVFTk9T9s57pwpZR23Nk7bmbPnq3lmTNniohInz59RETk1ltvlZCQEMnKyrJdVylV7UaBnmxN8tZbb0lERIT079/f5XMAX6Ouq+ZqXZ/7YbJ06VLt+KpVq+TUqVNy1VVXOT0f8Adqu2rebCfmKwG7Mzdy5Ei59957ZcCAAdKzZ0/Zvn27ZGdnS2xsrDZu/PjxsmrVKrn55ptl+PDhkpKSIqdOnZKdO3fKsmXLJC8vz3aOVUFBgUydOtV2PCEhQYYMGSKpqany7LPPypkzZyQuLk7Wrl0rubm5VV4vNzdX+vbtK71795YtW7bIm2++KYMHD5b27duLyO9/6adOnSqZmZmSl5cn/fr1k6ioKMnNzZWVK1fKqFGjZNy4cVVe3923OR89elTWrFkjAwYMMOJ2MGov6tr7ur7lllskOTlZnnrqKfnxxx/lmmuukb1798qsWbPk4osvlr/85S9Ovy+AP1DbvvmZvWnTpoqmuKCgQE6dOlXxtaampkpqaqrT86vkk/fEqqrf5lzVW4zLysrUI488omJjY1VERITq1auX2rt3r+1tzkopdeLECZWZmalatWqlwsLCVGxsrOrSpYt67rnnVGlpqdN5nXurdWUf3bt3V0op9dNPP6n+/fur6Oho1ahRI3XbbbepQ4cO2d6Kfe5tzrt371YDBw5UUVFRKiYmRt1///3q9OnTttdevny56tq1q4qMjFSRkZGqbdu2asyYMeq7776rGOOLtznPnTtXiYhatWqVS+MBV1HXganro0ePqoceeki1bt1ahYeHq9jYWDVo0CC1b9++as8FXEFtB6a2z82pso/Ktn5xlUMpyz1FAAAAGCNga+YAAADgPZo5AAAAg9HMAQAAGIxmDgAAwGA0cwAAAAajmQMAADAYzRwAAIDBXH4ChPXBtDAb2wtChLqubahriFDXtY0rdc2dOQAAAIPRzAEAABiMZg4AAMBgNHMAAAAGo5kDAAAwGM0cAACAwWjmAAAADEYzBwAAYDCaOQAAAIPRzAEAABiMZg4AAMBgNHMAAAAGo5kDAAAwGM0cAACAwWjmAAAADEYzBwAAYLDQQE8AAIJNVFSU7diYMWO0/Pe//13L+fn5Wr7sssu0fPz4cR/NDkBlwsPDtfzJJ59ouWXLlrZzevTooeUvv/zS9xOrAdyZAwAAMBjNHAAAgMFo5gAAAAzmUEoplwY6HP6eC2qQi3/sqOVMrWvr2hfrGrcBAwZouV69ek7Pt+bt27fbXvOuu+5yOifr9/Liiy/W8i+//OL0fF+griFibl17q2nTplo+dOhQted8/fXXWu7cubOWf/vtN+8n5iVX6po7cwAAAAajmQMAADAYzRwAAIDBjN5nbsOGDVpOT0+3jZk+fbqWJ06c6M8pAXCTdW+ohIQELc+ZM8d2zlVXXaXlhg0batndtWPWNUbt27d363wAgTd58mS3z7H+29G4cWMt//TTT95MqcZwZw4AAMBgNHMAAAAGo5kDAAAwWFCvmbOuY2nTpo2WretmysvLbdcYO3aslsvKyrS8YsUKLVvX2nz33XdO53jDDTfYjln3rMrLy9Py6tWrtXzmzBmnrwHUJtb6eOedd7RsrWtXWJ/B+MMPP2j5ww8/1HJRUZGWs7Oz3X5Nq4MHD2q5pKTE62sCqFr//v21fM8992jZlbWzu3fv1rIpa+SsuDMHAABgMJo5AAAAg9HMAQAAGCyo18xdccUVWt62bZvb1wgLC9OydZ+5QOw79+9//1vL1t/7Hzt2rCanA/hVnz59tGxdv2Z14sQJLVv3kxQRmTFjhpata+aqc+eddzr9/MmTJ6u9hvV5sOvXr9fy8ePH3ZoTAPe0bdvWrfHWda0iInfffbevphNQ3JkDAAAwGM0cAACAwWjmAAAADOZQLj7E0Lrnmz+0aNFCy9a1MtbPW/3666+2Y9a952JiYrRc3Zdv/bpd+XZZ18o0atTI6TXnzp2r5dGjR1f7Gt5y99mVqJ38UdfJycla/vLLL7UcGqov1f3ss8+0PHDgQC1Xts7FW5dddpmW77vvPi1XttfUQw89pGXrMxwbNGig5dOnT3szRY9Q1xCpmZ/XweCbb77RsnUNnbUeJk2aZLvGlClTfD8xH3OlrrkzBwAAYDCaOQAAAIPRzAEAABgsqPaZGzVqlJarWyM3ffp0Lb/00ku2MdZ1K5U9S9XXvv76ay1///33Tsdb96sCTHbllVdq2bpGzuqmm27Sck3ss2h9HuMDDzyg5TvuuMN2jnWNXHFxsZYDsUYOOJ9Y6zIpKcmt8w8cOODL6QQV7swBAAAYjGYOAADAYDRzAAAABqOZAwAAMFhA3wDRtWtXLT/44INunf/yyy9r+fDhw9We8/7777v1Gp5o1aqV089bNwDs1auXluvVq6flkpIS30wMqAFXXXWVW+NTUlK0/PHHH/tyOh4ZP358tWOef/75GpgJgHOeeOIJLdep4/x+VEFBgZZXrFjh8zkFC+7MAQAAGIxmDgAAwGA0cwAAAAYL6Jo56xo361qx0tJSLc+aNUvLNbG5qCcGDx7s9PPWhyBnZ2drmTVyMNnixYu1PG7cOKfj165d6/TzH3zwge2Ytfbz8/O1/N5772k5JyfH6WsMGzZMyx06dLCN+fnnn7U8efJkp9cE4FsxMTFujX/xxRe1/Ouvv/pyOkGFO3MAAAAGo5kDAAAwGM0cAACAwQK6Zm7Pnj1aTk5O1vKJEye0fPDgQb/PyRcaNmzo9PPWfeaA2sT6EPs//elPWp42bZqWrfWSkJDg9PzKWNehPvTQQ1o+cuSI0/MbNWqk5cpqdP/+/Vpu3769lrdv317tPAG47s4779TyRRdd5HT8yZMntXw+7QXJnTkAAACD0cwBAAAYjGYOAADAYA7l4gIu65oU/O6pp56yHbM+1zEsLEzL1rWA/fr10/LGjRt9MjdnWLcHkeCo66ioKC27smYuOjpay9avw/r327qPXOPGjd063xU7d+7UsvXfgXXr1rl9TXdR1xAJjrr2hYULF2rZuobOqqioSMvu7ksXrFypa+7MAQAAGIxmDgAAwGA0cwAAAAZjzZybpkyZouXMzEzbmOq+V9bnxVX37Ep/YG0NRGpvXffo0UPLy5Yt07J1nd6XX36p5RkzZtiuedNNN2m5e/fuWo6Li9Oy9TmQHTt21PK+fftsr+Et6hoi5ta19ZnIGzZs0LJ1P0irxx57TMtPP/20T+YVaKyZAwAAqOVo5gAAAAxGMwcAAGCwgD6bNRhZ1xoMGTJEy3/729+cjq/Mv/71Ly1PnDjRw9kBqMzkyZO1bN3jrX79+lr+5JNPtGzdh66y9WzvvPOOlrt27arlTZs2adn6zNkGDRrYrgng/5eUlKTl6tbIWX344Ye+nI5RuDMHAABgMJo5AAAAg9HMAQAAGOy8XzMXHx+v5aysLC1bnwXnyn4v3333nZZHjBih5bNnz7oxQ+D8VrduXdux9957T8t9+vTRsrVOFy9erOX7779fy8ePH3d7XtZ946y+/vprLe/evdvt1wDguuuuu07LO3bsCNBMah535gAAAAxGMwcAAGAwmjkAAACD0cwBAAAYzKFcfDKzqQ/utbr88su1PH36dC337t3breutXLnSdmzcuHFazsvLc+uaNYEHckMkOOq6adOmWh44cKCWb7/99mrPufTSS7VsrWtrPn36tNvzjIyM1PIXX3yh5TZt2mjZuuH4kiVL3H5Nd1HXEAmOuvbE8uXLtdy/f3+3zj916pSWo6KivJ5TMHClrrkzBwAAYDCaOQAAAIPRzAEAABis1m8aHBcXp+XXX39dy506dXLretbNRufMmePZxIDzhPUh96+88oqWrQ+5d2V9yMcff6zlzMxMLS9btsydKbrkiiuu0HLr1q21fPDgQS2vXr3a53MAarOWLVsGegrG4s4cAACAwWjmAAAADEYzBwAAYLBav2Zu7NixWu7cubOWretzTp48qeWJEydq+bXXXvPh7IDa57/+67+0PGvWLC2npKRo2bon1gsvvKDladOm2V7j2LFj3kyxWs2bN7cd+/DDD7VsnfeUKVO0fPz4cd9PDECVKtv39XzBnTkAAACD0cwBAAAYjGYOAADAYLVqzZx1zYqIfc2cdY2cdV2Ldb+qV1991UezA84PAwYM0HLHjh21XN0+ct98842WK3u+YmVr2rzRpUsXLVv/HRARiY6O1vIPP/yg5Xnz5vl0TkBtlpaWZjvWrl07t66xY8cOLd91111ezclk3JkDAAAwGM0cAACAwWjmAAAADGb0mjnrGpbBgwfbxoSG6l+idW+opUuXapk1coB3FixYoOVbbrlFy9ZnmlpZ155VtqdcTEyMlq117crzXZ2dX1paahtjfdZqZf/eAHBNRESE7VhYWJhb17Du/Xg+484cAACAwWjmAAAADEYzBwAAYDCHcnFxiXVNSTC47777tGx9BmRlcnNztZyenq7ln376yet5mcDdNUWonWqirsPDw7Wcmpqq5euuu07L8fHxWq5fv77tmgMHDtRydWvmdu/ereWtW7dq+eeff9bye++9Z3vNnJwc27FgQ11DJDh/XltZ17OLiIwePVrLPXv21LJ1b0frOta1a9f6aHbBxZW65s4cAACAwWjmAAAADEYzBwAAYDCj18z16dNHy5XtOWP98qzr7M7X5ymytgYiwVnX8Bx1DRHqurZhzRwAAEAtRzMHAABgMJo5AAAAg9HMAQAAGMzoN0BYNyPduHGjbUybNm20fPXVV2t57969Pp+XCVgoDZHgrGt4jrqGCHVd2/AGCAAAgFqOZg4AAMBgNHMAAAAGM3rNHDzH2hqIUNe1DXUNEeq6tmHNHAAAQC1HMwcAAGAwmjkAAACD0cwBAAAYjGYOAADAYDRzAAAABqOZAwAAMJjL+8wBAAAg+HBnDgAAwGA0cwAAAAajmQMAADAYzRwAAIDBaOYAAAAMRjMHAABgMJo5AAAAg9HMAQAAGIxmDgAAwGA0cwAAAAajmQMAADAYzRwAAIDBaOYAAAAMRjMHAABgMJo5AAAAg9HMAQAAGIxmDgAAwGA0cwAAAAajmQMAADAYzRwAAIDBaOYAAAAMRjMHAABgMJo5AAAAg9HMAQAAGIxmDgAAwGA0cwAAAAajmQMAADAYzRwAAIDBaOYAAAAMRjMHAABgMJo5AAAAg9HMAQAAGIxmDgAAwGA0cwAAAAajmXPD5MmTxeFwSGFhoc+uOXz4cImPj/fZ9QC4h7oGaqfzqbY9buYcDodLHxs3bvThdN2Xnp4ul19+eUDn4C9HjhyRGTNmSGpqqjRu3Fiio6PlmmuukbfffjvQU4OhqOvA27hxo9Pv/bRp0wI9RRiI2g4Ob7/9tgwdOlSSkpLE4XBIenq6T64b6umJixYt0vLChQtl3bp1tuPt2rXz9CVQjS1btshjjz0mN910kzz++OMSGhoqy5cvl0GDBsnu3bslKysr0FOEYajrwGvXrp3t+y3y+5/N2rVr5cYbbwzArGA6ajs4zJkzR7Zu3SqdO3eWI0eO+Oy6HjdzQ4cO1XJOTo6sW7fOdtyquLhYIiIiPH1Z/EFycrLs2bNHWrRoUXFs9OjR0qNHD5k+fbpMmDBBIiMjAzhDmIa6DrwmTZpU+v3OysqSpKQk6dy5cwBmBdNR28Fh0aJFEhcXJ3Xq1PHpHUi/rpk7d7t069atkpqaKhEREfLoo4+KyO+3fCdPnmw7Jz4+XoYPH64dKyoqkgcffFCaNWsm4eHh0qpVK5k+fbqUl5f7ZJ47duyQ4cOHS8uWLaVevXrStGlTufvuu6vsmgsLCyUjI0MaNmwoF154oYwdO1ZKSkps4958801JSUmR+vXrywUXXCCDBg2SAwcOVDuf/Px8+fbbb+XMmTNOxyUkJGiNnMjv39d+/frJb7/9Jvv27av2tQB3Udf+revKfPbZZ7J3714ZMmSI2+cCrqK2/V/bzZo1kzp1fN96eXxnzlVHjhyRPn36yKBBg2To0KHSpEkTt84vLi6WtLQ0OXjwoNxzzz3SvHlz2bx5s2RmZkp+fr689NJLXs9x3bp1sm/fPhkxYoQ0bdpUdu3aJfPmzZNdu3ZJTk6OOBwObXxGRobEx8fL008/LTk5OfLyyy/LsWPHZOHChRVjpk2bJk888YRkZGTIyJEjpaCgQGbOnCmpqamybds2iY6OrnI+mZmZ8sYbb0hubq5HCy1//vlnERGJjY11+1zAFdR1zdb14sWLRURo5uB31HbN/8z2CeUjY8aMUdbLpaWlKRFRc+fOtY0XETVp0iTb8RYtWqhhw4ZV5ClTpqjIyEj1/fffa+MmTpyoQkJC1P79+53OKy0tTSUnJzsdU1xcbDu2ZMkSJSJq06ZNFccmTZqkRET17dtXGzt69GglImr79u1KKaXy8vJUSEiImjZtmjZu586dKjQ0VDs+bNgw1aJFC23csGHDlIio3Nxcp/OuzJEjR9RFF12kunXr5va5gBV1Hfi6Pnv2rGrSpIm6+uqr3ToPcIbaDnxtJycnq7S0NLfOqYrftyYJDw+XESNGeHz+u+++K926dZOYmBgpLCys+OjRo4eUlZXJpk2bvJ5j/fr1K/67pKRECgsL5ZprrhERkS+//NI2fsyYMVp+4IEHRERk9erVIiKyYsUKKS8vl4yMDG3OTZs2laSkJNmwYYPT+SxYsECUUm53+OXl5TJkyBApKiqSmTNnunUu4A7quubqev369fLLL79wVw41gtquudr2Jb//mjUuLk7CwsI8Pn/Pnj2yY8cOady4caWfP3z4sMfXPufo0aOSlZUlS5cutV3v+PHjtvFJSUlaTkxMlDp16kheXl7FnJVStnHn1K1b1+s5V+aBBx6Qjz76SBYuXCjt27f3y2sAItR1ZfxV14sXL5aQkBC5/fbb/XJ94I+obTt/1bYv+b2Z+2MH7YqysjItl5eXS8+ePWXChAmVjm/durXHczsnIyNDNm/eLOPHj5cOHTpIgwYNpLy8XHr37u3Sgk3r7+fLy8vF4XDImjVrJCQkxDa+QYMGXs/ZKisrS1555RV55pln5M477/T59YE/oq5rpq5Pnz4tK1eulB49eri9dgnwBLVdM7Xta35v5qoSExMjRUVF2rHS0lLJz8/XjiUmJsrJkyelR48efpnHsWPHZP369ZKVlSVPPvlkxfE9e/ZUec6ePXskISGhIu/du1fKy8srbrEmJiaKUkoSEhJ88he3OrNnz5bJkyfLgw8+KI888ojfXw+oCnXtW6tWrZITJ07wK1YEHLUd3AL2OK/ExETb787nzZtn6/IzMjJky5Ytkp2dbbtGUVGRnD171qt5nOvClVLacWfvuJk9e7aWz61P69Onj4iI3HrrrRISEiJZWVm26yqlqt0o0J23Ob/99tvy17/+VYYMGSIvvPBCteMBf6Kuq+bJ1iRvvfWWRERESP/+/V0+B/AHartq3mw75CsBuzM3cuRIuffee2XAgAHSs2dP2b59u2RnZ9u20xg/frysWrVKbr75Zhk+fLikpKTIqVOnZOfOnbJs2TLJy8urdguOgoICmTp1qu14QkKCDBkyRFJTU+XZZ5+VM2fOSFxcnKxdu1Zyc3OrvF5ubq707dtXevfuLVu2bJE333xTBg8eXLFOLTExUaZOnSqZmZmSl5cn/fr1k6ioKMnNzZWVK1fKqFGjZNy4cVVe39W3OX/22Wdy1113yYUXXijdu3ev2L7gnC5dukjLli2dfm8AX6Kuva/rc44ePSpr1qyRAQMGGPFrHtRu1LZvanvTpk0VTXFBQYGcOnWq4mtNTU2V1NRUp+dXySfviVVVv825qrcYl5WVqUceeUTFxsaqiIgI1atXL7V3717b25yVUurEiRMqMzNTtWrVSoWFhanY2FjVpUsX9dxzz6nS0lKn8zr3VuvKPrp3766UUuqnn35S/fv3V9HR0apRo0bqtttuU4cOHbK9Ffvc25x3796tBg4cqKKiolRMTIy6//771enTp22vvXz5ctW1a1cVGRmpIiMjVdu2bdWYMWPUd999VzHGm7c5z58/v8qvTUTU/PnznZ4PVIe6rvm6Pmfu3LlKRNSqVatcGg+4g9oOTG2fm1NlH5Vt/eIqh1KWe4oAAAAwRsDWzAEAAMB7NHMAAAAGo5kDAAAwGM0cAACAwWjmAAAADEYzBwAAYDCaOQAAAIPRzAEAABjM5cd5ORwOf84DNYy9oiFCXdc21DVEqOvaxpW65s4cAACAwWjmAAAADEYzBwAAYDCaOQAAAIPRzAEAABiMZg4AAMBgNHMAAAAGo5kDAAAwGM0cAACAwWjmAAAADEYzBwAAYDCaOQAAAIPRzAEAABiMZg4AAMBgNHMAAAAGCw30BNwxc+ZMLaekpFR7zkcffaTlH3/8Ucs///yzlrOzsz2cHQAAMEnbtm21/NVXX2n5888/13K3bt38PSWPcGcOAADAYDRzAAAABqOZAwAAMFhQrZkLDw/X8uzZs7V89913u33Na6+9VstKKS2Xl5dr+YsvvtDyk08+qeW1a9e6PQcAABB8unbtquWQkBAtX3755VpOTEzU8g8//OCfibmJO3MAAAAGo5kDAAAwGM0cAACAwYJqzdyECRO07MkaOSvrGjmrOnX0fvbqq6/WsnXd3h133KFl6xo7AMEnNTVVyy+//LKW27Rpo+WHH37Ydo05c+b4fmIAakyfPn1sx6zr4kND9baouLhYyyUlJb6fmA9wZw4AAMBgNHMAAAAGo5kDAAAwWFCtmbvkkkucfn7FihVa3r59u5ZPnjxpO2fRokVatu5lt3jxYi136dJFy9Y9ZebNm6flzp07216zrKzMdgyAaxo0aKDls2fP2sZY69K6F5S1jq1r5q644gqnc7DuTynCmjnANNY940aPHm0b06xZMy1bf36vX79eywcPHvTR7HyLO3MAAAAGo5kDAAAwGM0cAACAwYJqzZx1Tcr+/fu1/Oyzz2rZF2vT0tPTtfzRRx9p+cYbb9Ryhw4dtHzvvffarmndmw44n0VERGh59erVTseXlpZquVWrVrYxTZo00XK9evW07HA4tFzdfpNWJ06ccGs8gODz1FNPafnmm2+u9pzPP/9cy3fddZdP5+Qv3JkDAAAwGM0cAACAwWjmAAAADOZQLi4msa5Bqa26du2q5Y8//ljLYWFhWj58+LDtGtbnu1rX/gUDd9cQoXaqibq+8MILtWytGU/Wt1mfj2jdi27+/PlO53D77bdr2boflfXZrSIiDz30ULXzCjTqGiLnz89rq7Zt22p569atWrau3xWxr72/5ZZbtLxmzRofza5qnTp10rL1me+u1DV35gAAAAxGMwcAAGAwmjkAAACDBdU+c8HgP//5j5ZnzJih5ccee0zLF110ke0a8fHxWg7GNXNATbHu2fanP/3J62vm5eVp+ddff9XyoUOHnJ5vXddq3cvOej0Awce6Bm7SpElOP1+ZJUuWaLkm1shZFRcXe30N7swBAAAYjGYOAADAYDRzAAAABqOZAwAAMBhvgKjG+++/r2XrGyAqc8UVV2h506ZNPp0TYJLS0lItf/TRRzU+h+joaC1bF0ZbN1m1vsECQPCxbvA7aNAgp+OPHj1qO/bqq6/6dE6e2L17t9fX4M4cAACAwWjmAAAADEYzBwAAYDDWzPmB9ff4c+fO1bL1wb4A/KtNmzZavuSSS7RsfZD19ddfb7vG/PnzfT8xAC5LT0/X8htvvOF0vLWuH374YdsY64MCTMWdOQAAAIPRzAEAABiMZg4AAMBgrJmrRkFBgZYLCwu1HBsbazvH+tDusLAwLZ8+fdpHswPgCuvej9XZuXOnn2YCwFNPPvmklsPDw52OnzVrlparW2NnMu7MAQAAGIxmDgAAwGA0cwAAAAYL6jVz1ucpWveGsjp79qzt2Pfff+/VHBo3bqzlytbIWb344otaZo0cEFjurpnz9t8NAN677777tNy1a1en43/88UctP/744z6fU7DizhwAAIDBaOYAAAAMRjMHAABgsKBaM9enTx8tW9eetW7d2un5paWltmNZWVlaXr16tZa3b9/u9Jp//vOfnX6+MuxRBfhOZTVoXQOXm5ur5SFDhmi5bdu2br2mdX8qEZGUlBQtW/e8AuCdJk2aaPmRRx7Rct26dbVsXSc/Y8YMLf/6668+nF1w484cAACAwWjmAAAADEYzBwAAYDCHUkq5NNDh8PdcbGveQkN9v6TP+hr//Oc/tfzhhx9q+dVXX9Wy9Xf2Z86csb1Gamqqlj/99FO35+lvLv6xo5aribp212uvvabl22+/3TYmMjLS6TWsX1d1f9+t/y4cP37cNsb6b0EwrpmjriESnHVtVdnP9w8++EDLvXr1cnqNbdu2abljx47eTywIuVLX3JkDAAAwGM0cAACAwWjmAAAADBZUa+ase0W1aNHC6fj8/HwtV7a/24033uj9xJz45ptvbMeSk5P9+pqVrQto1qyZlt9//32n12BtDUSCc21NfHy8lufMmWMbk5iYqOXCwkItW7+u5s2ba7lp06Zazs7O1nJl6/ROnDhR+YSDCHUNkeCsa6sOHTrYjlnXwFlZ95XLyMjQ8sqVK72eVzBizRwAAEAtRzMHAABgMJo5AAAAg9HMAQAAGCyo3gAxYsQILVs36bRuMmjdYHDUqFG2a9arV0/L//73v7UcFxfn9jz/yLogU0SkoKBAy7t379byZZdd5tVrRkdH245Z/3wiIiKcXoOF0hAxY6F0ZaKiorRc3ZsT/vWvf2k5LS1Nyz/++KOWW7Zs6cXsAoe6hogZdb18+XLbsVtvvdXpOc8//7yWx40b59M5BSveAAEAAFDL0cwBAAAYjGYOAADAYEG1Zs7q+uuv1/I//vEPLbuyrmXLli1atm5UWL9+fc8mV4P279+vZeu6PxH7WoKvvvrK6TVZWwMRM9bWeMK68bB1Q3HrmtJDhw5p2boJtymoa4gEZ1136tRJy5s2bbKNqe7ncbdu3bT8n//8x/uJGYA1cwAAALUczRwAAIDBaOYAAAAMFlr9kMDZsGGDlh9++GEtz5gxQ8vWdTIiItdee63T1ygtLdWy9UG/06ZN0/K3337r9HqVufvuu7UcFham5a1bt2r5888/13JRUZGWrQ8VB6Br166dlqvbd7GyPa8A+I51TzhX1qt//PHHWv700099OqfahDtzAAAABqOZAwAAMBjNHAAAgMGCes2c1apVq5xm6x5yIiJXXnml02ta97rJy8vzaG7OPProoz6/JoCqWdfPVrfvVn5+vh9nA5x/LrroIi1Xt369Ms8884yWz5w549WcajPuzAEAABiMZg4AAMBgNHMAAAAGM2rNXHUqex5pdc8oBVD7xMbGarm6Zxta97QE4J2YmBgtN2/e3O1rlJeX+2o6tR535gAAAAxGMwcAAGAwmjkAAACD1ao1cwAgItK6dWunn7fuJ7ljxw4/zgY4/+Tm5mr5lVde0fLo0aNt5xw9elTLBw4c8P3EainuzAEAABiMZg4AAMBgNHMAAAAGY80cgPPOqVOntFxSUhKgmQC1U2lpqZbHjBnjNMM73JkDAAAwGM0cAACAwWjmAAAADEYzBwAAYDDeAAHgvLN8+fJATwEAfIY7cwAAAAajmQMAADAYzRwAAIDBHEop5dJAh8Pfc0ENcvGPHbUcdV27UNcQoa5rG1fqmjtzAAAABqOZAwAAMBjNHAAAgMFo5gAAAAxGMwcAAGAwmjkAAACD0cwBAAAYzOV95gAAABB8uDMHAABgMJo5AAAAg9HMAQAAGIxmDgAAwGA0cwAAAAajmQMAADAYzRwAAIDBaOYAAAAMRjMHAABgsP8HeWkGKbFKsAIAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x_viz, y_viz = tfds.load(\"mnist\", split=['train[:1500]'], batch_size=-1, as_supervised=True)[0]\n", "x_viz = tf.squeeze(x_viz, axis=3)\n", "\n", "for i in range(9):\n", " plt.subplot(3,3,1+i)\n", " plt.axis('off')\n", " plt.imshow(x_viz[i], cmap='gray')\n", " plt.title(f\"True Label: {y_viz[i]}\")\n", " plt.subplots_adjust(hspace=.5)\n" ] }, { "cell_type": "markdown", "metadata": { "id": "bRald9dSE4qS" }, "source": [ "还要检查训练数据中数字的分布,以验证每个类均在数据集中得到合理表示。\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T22:04:43.786469Z", "iopub.status.busy": "2022-12-14T22:04:43.785902Z", "iopub.status.idle": "2022-12-14T22:04:43.913824Z", "shell.execute_reply": "2022-12-14T22:04:43.913242Z" }, "id": "Rj3K4XgQE7qR" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAw0AAAIjCAYAAABBMPcSAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA5+ElEQVR4nO3de1yUdf7//+cgckgFPMFI4aktUzMtTMPKUygecrMwM/molemuC7lGH1O2RG0rNjUjrCTtY2qL1daWpbuSrJa4Sqi4aJmZtaWuNWCLMHkChPn+0Y/r14i+QwJn0Mf9dpvbbee63jPX66K97c6jmWvG5nK5XAIAAACAc/Dx9AAAAAAAvBvRAAAAAMCIaAAAAABgRDQAAAAAMCIaAAAAABgRDQAAAACMiAYAAAAARkQDAAAAACOiAQAAAIAR0QAAqJH+/furf//+tXrsfffdp/bt29fpPD9n+fLlstls+uabb+r9WGee3zfffCObzaYFCxbU+7Elac6cObLZbBfkWAAuTUQDAPxE1QtNm82mf/7zn9X2u1wuRUREyGaz6fbbb3fbV/W4Z5999pzPu2PHDmtb1Qu977//3m3tmjVr1K9fP4WGhuqyyy5Tx44dNXr0aGVmZkr68cV71bFMtzlz5pzzPO+77z63tU2bNlXHjh01atQo/fWvf1VlZeX5/NnO24kTJzRnzhx99NFHNVr/0Ucfuc3r7++vsLAw9e/fX08//bSOHDnikbkuJG+eDcDFz9fTAwCANwoICNCqVat0yy23uG3ftGmT/vOf/8jf3/+cj50/f76mTJmiyy677LyPu2DBAk2fPl39+vVTUlKSLrvsMn355Zf6xz/+oTfeeENDhgzRY489pgcffNB6zPbt25WWlqY//OEP6ty5s7X9uuuuMx7L399fr7zyiiTp5MmTOnDggNasWaNRo0apf//+eu+99xQUFGStX79+/XmfT5WlS5e6hciJEyc0d+5cSTqvdy+mTp2qG2+8URUVFTpy5Ii2bt2q2bNna+HChfrLX/6igQMHWmvHjRunMWPGGP9Znam2c515fvXBNNvjjz+umTNn1uvxAVzaiAYAOIthw4bprbfeUlpamnx9////qVy1apUiIyOrvTtQpUePHsrPz1d6eroSExPP65inT5/WH//4Rw0aNOisL9ALCwslSYMGDXLbHhAQoLS0NA0aNOi8Xuj6+vrqf/7nf9y2Pfnkk/rTn/6kpKQkTZo0SW+++aa1z8/P7zzOxl3jxo1r/difuvXWWzVq1Ci3bbt27dLgwYMVGxurzz77TG3atJEkNWrUSI0aNaqT457L8ePH1aRJkzo7v9ry9fV1++8pANQ1Pp4EAGdx77336r///a+ysrKsbWVlZXr77bc1duzYcz7u5ptv1sCBAzVv3jydPHnyvI75/fffy+l06uabbz7r/tDQ0PN6vtqaOXOmBg8erLfeektffPGFtf1s1zQcOHBAv/71r9WkSROFhobq4Ycf1gcffCCbzeb2MZqffub/m2++UevWrSVJc+fOrdHHqUy6d++u1NRUFRcX64UXXrC2n+2ahh07digmJkatWrVSYGCgOnTooAceeKBGc913331q2rSpvvrqKw0bNkzNmjVTXFxctfM703PPPad27dopMDBQ/fr106effuq2/1zXipzP3+xs1zRUReiVV14pf39/tW/fXn/4wx9UWlrqtq59+/a6/fbb9c9//lO9evVSQECAOnbsqJUrV579Dw7gkkQ0AMBZtG/fXlFRUXr99detbevWrVNJSYnGjBljfOycOXNUUFCgxYsXn9cxQ0NDFRgYqDVr1qioqKhWc9eVcePGyeVyuUXTmY4fP66BAwfqH//4h6ZOnarHHntMW7du1YwZM4zP3bp1a+tvc+edd+q1117Ta6+9prvuuqvW844aNUqBgYHGj1AVFhZq8ODB+uabbzRz5kwtWrRIcXFx+vjjj2s81+nTpxUTE6PQ0FAtWLBAsbGxxrlWrlyptLQ0xcfHKykpSZ9++qkGDhyogoKC8zq/2vzNHnzwQSUnJ+uGG27Qc889p379+iklJeWs//398ssvNWrUKA0aNEjPPvusmjdvrvvuu0979uw5rzkBXLx4LxMAzmHs2LFKSkrSyZMnFRgYqIyMDPXr10/h4eHGx916660aMGCAdW1DYGBgjY7n4+Oj6dOn64knnlDbtm3Vt29f3XLLLRoyZIhuuOGGujilGrv22mslSV999dU517z88sv697//rdWrV+uOO+6QJP3mN7/R9ddfb3zuJk2aaNSoUZoyZYquu+66ah+Rqo3GjRvr6quvNs67detWHT16VOvXr1fPnj2t7U8++WSN5yotLdXdd9+tlJSUGs315Zdfav/+/br88sslSUOGDFHv3r31zDPPaOHChTU+v/P9m+3atUsrVqzQgw8+qKVLl0qSfve731mx8+GHH2rAgAHW+n379ik7O1u33nqrJGn06NGKiIjQq6++esG+AQqAd+OdBgA4h9GjR+vkyZNau3atfvjhB61du9b40aSfmjNnjhwOh9LT08/rmHPnztWqVat0/fXX64MPPtBjjz2myMhI3XDDDdq7d29tTqNWmjZtKkn64YcfzrkmMzNTl19+uX79619b2wICAjRp0qR6n+9smjZtapw3JCREkrR27VqVl5fX+jhTpkyp8dqRI0dawSBJvXr1Uu/evfX3v/+91seviarnP/O6mkceeUSS9Le//c1te5cuXaxgkH58Z6NTp07697//Xa9zAmg4iAYAOIfWrVsrOjpaq1at0jvvvKOKiopqF+GeS9++fTVgwIBaXdtw7733avPmzda/FR87dqz+9a9/acSIETp16lRtTuW8HTt2TJLUrFmzc645cOCArrzyymqfpf/Vr35Vr7Ody7Fjx4zz9uvXT7GxsZo7d65atWqlO+64Q6+++mq1z/ib+Pr66oorrqjx+quuuqratquvvrrefzviwIED8vHxqfbPwm63KyQkRAcOHHDb3rZt22rP0bx5cx09erRe5wTQcBANAGAwduxYrVu3Tunp6Ro6dKj1b6trYvbs2XI4HHr55ZdrdeygoCANGjRIGRkZmjBhgr766ivl5ubW6rnOV9XFup4KgPNVXl6uL774wjivzWbT22+/rZycHCUkJOjw4cN64IEHFBkZaUXSz/H395ePT93+X+e5fpStoqKi3p77TOf6limXy/WLZwBwcSAaAMDgzjvvlI+Pjz7++OMafzSpSr9+/dS/f38988wz5/1uw5mqPoP/3Xff/aLnqanXXntNNput2te7/lS7du301VdfVXth+eWXX/7s89f1rxe//fbbOnnypGJiYn527U033aSnnnpKO3bsUEZGhvbs2aM33nijXubav39/tW1ffPGF2zctNW/eXMXFxdXWnfluwPnM1q5dO1VWVlY7fkFBgYqLi9WuXbsaPxcASEQDABg1bdpUixcv1pw5czRixIjzfnzVtQ1Lliz52bUnTpxQTk7OWfetW7dOktSpU6fznuF8/elPf9L69et1zz33nPXjNVViYmJ0+PBhvf/++9a2U6dOWRfemlT98N3ZXiyfr127dmnatGlq3ry54uPjz7nu6NGj1QKnR48ekmR9RKku55Kk1atX6/Dhw9b9bdu2KTc3V0OHDrW2XXnllfr888/dftV6165d2rJli9tznc9sw4YNkySlpqa6ba+6+Hr48OHndR4AwLcnAcDPmDBhQq0f269fP/Xr10+bNm362bUnTpxQnz59dNNNN2nIkCGKiIhQcXGxVq9erc2bN2vkyJE/+81E5+P06dP685//LOnHF/sHDhzQ+++/r927d2vAgAE/Gzq/+c1v9MILL+jee+/V73//e7Vp00YZGRkKCAiQZP4344GBgerSpYvefPNNXX311WrRooWuvfZa61ubzmXz5s06deqUKioq9N///ldbtmzR+++/r+DgYL377ruy2+3nfOyKFSv00ksv6c4779SVV16pH374QUuXLlVQUJD1Iru2c53Lr371K91yyy2aMmWKSktLlZqaqpYtW+rRRx+11jzwwANauHChYmJiNHHiRBUWFio9PV1du3aV0+ms1d+se/fumjBhgpYsWaLi4mL169dP27Zt04oVKzRy5Ei3b04CgJogGgCgns2ZM6dGL9JCQkK0dOlS/e1vf9Orr74qh8OhRo0aqVOnTpo/f76mTp1ap3OVlpZq3Lhxkn78t9ihoaGKjIxUcnKy9bEsk6ZNm2rjxo166KGH9Pzzz6tp06YaP368+vTpo9jYWCsezuWVV17RQw89pIcfflhlZWWaPXv2z744T0tLk/TjV6yGhISoc+fOmjt3riZNmmT9+Nm5VL1wfuONN1RQUKDg4GD16tVLGRkZ6tChwy+a61zGjx8vHx8fpaamqrCwUL169dILL7xg/Wq1JHXu3FkrV65UcnKyEhMT1aVLF7322mtatWqV2w/kne9sr7zyijp27Kjly5dbQZWUlKTZs2fX6lwAXNpsLq5yAgDUodTUVD388MP6z3/+4/Z1owCAhotoAADUWtUP31U5deqUrr/+elVUVOiLL77w4GQAgLrEx5MAALV21113qW3bturRo4dKSkr05z//WZ9//rkyMjI8PRoAoA4RDQCAWouJidErr7yijIwMVVRUqEuXLnrjjTd0zz33eHo0AEAd4uNJAAAAAIz4nQYAAAAARkQDAAAAACOuaaiByspKffvtt2rWrJnxx4oAAACAhsTlcumHH35QeHi48fd5iIYa+PbbbxUREeHpMQAAAIB6cejQIV1xxRXn3E80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Ej6eBAC4IFwu11mvSdi3b5+uu+46BQQEWNt69ep13s8/aNAgtWvXTh07dtS4ceOUkZGhEydO/KKZAQA/IhoAABfE3r171aFDh3p7/mbNmmnnzp16/fXX1aZNGyUnJ6t79+58TSsA1AGiAQBQ7zZu3KhPPvlEsbGx1fZ16tRJn3zyiUpLS61t27dvNz6fn5+fKioqqm339fVVdHS05s2bp927d+ubb77Rxo0bf/kJAMAljmgAANSp0tJSORwOHT58WDt37tTTTz+tO+64Q7fffrvGjx9fbf3YsWNVWVmpyZMna+/evfrggw+0YMECSTrnV6y2b99ex44d04YNG/T999/rxIkTWrt2rdLS0pSfn68DBw5o5cqVqqysVKdOner1fAHgUkA0AADqVGZmptq0aaP27dtryJAh+vDDD5WWlqb33ntPjRo1qrY+KChIa9asUX5+vnr06KHHHntMycnJkuR2ncNP9enTR7/97W91zz33qHXr1po3b55CQkL0zjvvaODAgercubPS09P1+uuvq2vXrvV6vgBwKbC5XC6Xp4cAAOCnMjIyrN9iCAwM9PQ4AHDJ4ytXAQAet3LlSnXs2FGXX365du3apRkzZmj06NEEAwB4CaIBAOBxDodDycnJcjgcatOmje6++2499dRTnh4LAPD/4eNJAAAAAIy4EBoAAACAEdEAAAAAwIhoAAAAAGBENAAAAAAwIhoAAAAAGBENAAAAAIyIBgAAAABGRAMAAAAAo/8HnJADDfahb4MAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sns.countplot(y_viz.numpy());\n", "plt.xlabel('Digits')\n", "plt.title(\"MNIST Digit Distribution\");" ] }, { "cell_type": "markdown", "metadata": { "id": "x_Wt4bDx_BRV" }, "source": [ "## 预处理数据\n", "\n", "首先,通过展平图像将特征矩阵重塑为二维。接下来,重新缩放数据,使 [0,255] 区间内的像素值拟合至 [0,1] 区间内。此步骤可确保输入像素具有相似的分布并有助于训练收敛。" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T22:04:43.917225Z", "iopub.status.busy": "2022-12-14T22:04:43.916659Z", "iopub.status.idle": "2022-12-14T22:04:43.966482Z", "shell.execute_reply": "2022-12-14T22:04:43.965827Z" }, "id": "JSyCm2V2_AvI" }, "outputs": [], "source": [ "def preprocess(x, y):\n", " # Reshaping the data\n", " x = tf.reshape(x, shape=[-1, 784])\n", " # Rescaling the data\n", " x = x/255\n", " return x, y\n", "\n", "train_data, val_data = train_data.map(preprocess), val_data.map(preprocess)" ] }, { "cell_type": "markdown", "metadata": { "id": "6o3CrycBXA2s" }, "source": [ "## 构建 MLP\n", "\n", "首先,呈现 [ReLU](https://developers.google.com/machine-learning/glossary#ReLU) 和 [Softmax](https://developers.google.com/machine-learning/glossary#softmax) 激活函数。这两个函数分别在 `tf.nn.relu` 和 `tf.nn.softmax` 中提供。ReLU 是一个非线性激活函数,会在输入值为正的情况下输出输入值,否则输出 0:\n", "\n", "$$\\text{ReLU}(X) = max(0, X)$$" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T22:04:43.970291Z", "iopub.status.busy": "2022-12-14T22:04:43.969800Z", "iopub.status.idle": "2022-12-14T22:04:44.191194Z", "shell.execute_reply": "2022-12-14T22:04:44.190588Z" }, "id": "hYunzt3UyT9G" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAwkAAAIjCAYAAABI21doAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABmk0lEQVR4nO3deVxU9eLG8WfYBkVBEWVRRNxwB9EkbVFvFJp1pcX93tSbdSutjKy0W9p2s9UspaxuZXXd0kwrzTLMzERNAbfU1HAXXFmVdc7vD6/za3IDBM4An/frNa/izPecec5xHOfhzPeMxTAMQwAAAADwPy5mBwAAAADgXCgJAAAAABxQEgAAAAA4oCQAAAAAcEBJAAAAAOCAkgAAAADAASUBAAAAgANKAgAAAAAHlAQAAAAADigJAIALGjFihJo1a2bKYz/zzDOyWCymPHZOTo5GjRqlgIAAWSwWjR071pQcl2PmMQJQ/VESANRIM2fOlMVisd/c3NzUuHFjjRgxQocOHSrTNleuXCmLxaIFCxZcdIzFYtGYMWMueN+CBQtksVi0cuXKMj1+WRw+fFjPPPOMUlJSKu0xzzl9+rSeeeaZSt3fknjxxRc1c+ZM3X///fr000/197//3bQsznqMAFR/bmYHAAAzPffccwoNDVVeXp7Wrl2rmTNnavXq1dq6das8PT3NjlfhDh8+rGeffVbNmjVTRESEw33vv/++bDZbhT326dOn9eyzz0qSevXq5XDfU089pfHjx1fYY1/KihUrdPXVV2vSpEmmPP4fOesxAlD9URIA1Gh9+/ZV165dJUmjRo2Sn5+fXn75ZX355ZcaOHCgyenM5e7ubtpju7m5yc3NnH+ijh49qnbt2pny2KVh5jECUP3xcSMA+IPrrrtOkrRnzx6H5Tt27NCdd94pX19feXp6qmvXrvryyy/NiKh9+/bpgQceUFhYmGrVqqUGDRpowIAB2rt373ljMzIy9Mgjj6hZs2ayWq1q0qSJ7rrrLh0/flwrV67UVVddJUkaOXKk/aNXM2fOlOQ4J6GwsFC+vr4aOXLkeY+RlZUlT09PjRs3TpJUUFCgiRMnqkuXLvLx8ZGXl5euu+46/fDDD/Z19u7dq4YNG0qSnn32WftjP/PMM5Iu/Hn7oqIiPf/882rRooWsVquaNWumJ598Uvn5+Q7jmjVrpltuuUWrV69Wt27d5OnpqebNm+uTTz655HE993Gx1NRULVmyxJ5p79699o+n/fkYn1vnjx8H6tWrlzp06KBff/1VvXv3Vu3atdW4cWO98sor5z1mXl6ennnmGbVu3Vqenp4KDAzU7bffrj179jjlMQJQc1ASAOAPzr0JrF+/vn3Ztm3bdPXVV2v79u0aP368Xn/9dXl5eSk2NlZffPFFpWf85ZdftGbNGg0ePFhvvfWW7rvvPiUkJKhXr146ffq0fVxOTo6uu+46TZs2TTfddJPefPNN3XfffdqxY4cOHjyotm3b6rnnnpMk3Xvvvfr000/16aef6vrrrz/vMd3d3XXbbbdp0aJFKigocLhv0aJFys/P1+DBgyWdLQ3/+c9/1KtXL7388st65plndOzYMcXExNjnPjRs2FDvvPOOJOm2226zP/btt99+0f0eNWqUJk6cqMjISL3xxhvq2bOnJk+ebH/cP9q9e7fuvPNO3XjjjXr99ddVv359jRgxQtu2bbvo9tu2batPP/1Ufn5+ioiIsGc690a9NE6dOqU+ffooPDxcr7/+utq0aaMnnnhC33zzjX1McXGxbrnlFj377LPq0qWLXn/9dT388MPKzMzU1q1bnfIYAahBDACogT766CNDkvH9998bx44dMw4cOGAsWLDAaNiwoWG1Wo0DBw7Yx95www1Gx44djby8PPsym81m9OjRw2jVqpV92Q8//GBIMubPn3/Rx5VkjB49+oL3zZ8/35Bk/PDDD5fMfvr06fOWJSYmGpKMTz75xL5s4sSJhiRj4cKF54232WyGYRjGL7/8YkgyPvroo/PGDB8+3AgJCbH//O233xqSjK+++sph3M0332w0b97c/nNRUZGRn5/vMObUqVOGv7+/8Y9//MO+7NixY4YkY9KkSec99qRJk4w//hOVkpJiSDJGjRrlMG7cuHGGJGPFihX2ZSEhIYYkY9WqVfZlR48eNaxWq/Hoo4+e91h/FhISYvTr189h2bnnS2pqqsPyc3/mf/wz69mz53l/Fvn5+UZAQIBxxx132Jd9+OGHhiRjypQp52U49+fjrMcIQPXHmQQANVp0dLQaNmyo4OBg3XnnnfLy8tKXX36pJk2aSJJOnjypFStWaODAgcrOztbx48d1/PhxnThxQjExMdq1a1eZr4ZUVrVq1bL/f2FhoU6cOKGWLVuqXr16SkpKst/3+eefKzw8XLfddtt52yjLpTP/8pe/yM/PT/PmzbMvO3XqlJYvX65BgwbZl7m6usrDw0OSZLPZdPLkSRUVFalr164O+Upj6dKlkqS4uDiH5Y8++qgkacmSJQ7L27VrZ//omHT2zEVYWJh+//33Mj1+adWpU0d/+9vf7D97eHioW7duDo//+eefy8/PTw8++OB565flz6eqHSMAzo2SAKBGi4+P1/Lly7VgwQLdfPPNOn78uKxWq/3+3bt3yzAMPf3002rYsKHD7dzVb44ePVqumS73BvHMmTOaOHGigoODZbVa5efnp4YNGyojI0OZmZn2cXv27FGHDh3KLZebm5vuuOMOLV682P4Z94ULF6qwsNChJEjSxx9/rE6dOsnT01MNGjRQw4YNtWTJEod8pbFv3z65uLioZcuWDssDAgJUr1497du3z2F506ZNz9tG/fr1derUqTI9fmk1adLkvD/HPz/+nj17FBYWVm6Tj6vaMQLg3LgsAoAarVu3bvarG8XGxuraa6/V0KFDtXPnTtWpU8d+CdBx48YpJibmgtv485uyS7FarTpz5swF7zs3n+Byl1598MEH9dFHH2ns2LHq3r27fHx8ZLFYNHjw4Aq9ZKkkDR48WO+++66++eYbxcbG6rPPPlObNm0UHh5uH/Pf//5XI0aMUGxsrB577DE1atRIrq6umjx58nkTwkurpL9hd3V1veBywzDK9XGLi4sr5fFLw6xjBKB6oSQAwP+ceyPbu3dvTZ8+XePHj1fz5s0lnZ24Gx0dfcWPERISop07d17wvnPLQ0JCLrmNBQsWaPjw4Xr99dfty/Ly8pSRkeEwrkWLFtq6deslt1Xaj7Vcf/31CgwM1Lx583TttddqxYoV+te//nVevubNm2vhwoUO2//z9w6U5rFDQkJks9m0a9cutW3b1r48PT1dGRkZlz1mV+rcRPY/H+M//3a+NFq0aKF169apsLDwopebrUrHCED1wseNAOAPevXqpW7dumnq1KnKy8tTo0aN1KtXL7377rs6cuTIeeOPHTtWqu3ffPPNWrt2rTZu3OiwPCMjQ7NmzVJERIQCAgIuuQ1XV9fzfts7bdq0836rfccdd2jTpk0XvALTufW9vLzsj18SLi4uuvPOO/XVV1/p008/VVFR0XkfNTr3G+o/Zly3bp0SExMdxtWuXbvEj33zzTdLkqZOneqwfMqUKZKkfv36lSh/WbVo0UKStGrVKvuy4uJivffee2Xe5h133KHjx49r+vTp59137thVpWMEoHrhTAIA/Mljjz2mAQMGaObMmbrvvvsUHx+va6+9Vh07dtQ999yj5s2bKz09XYmJiTp48KA2bdrksP7nn3+uHTt2nLfd4cOHa/z48Zo/f76uv/56/fOf/1SbNm10+PBhzZw5U0eOHNFHH3102Xy33HKLPv30U/n4+Khdu3ZKTEzU999/rwYNGpy3HwsWLNCAAQP0j3/8Q126dNHJkyf15ZdfasaMGQoPD1eLFi1Ur149zZgxQ3Xr1pWXl5eioqIUGhp60ccfNGiQpk2bpkmTJqljx44Ov7U+l2/hwoW67bbb1K9fP6WmpmrGjBlq166dcnJy7ONq1aqldu3aad68eWrdurV8fX3VoUOHC86jCA8P1/Dhw/Xee+8pIyNDPXv21Pr16/Xxxx8rNjZWvXv3vuxxuxLt27fX1VdfrQkTJujkyZPy9fXV3LlzVVRUVOZt3nXXXfrkk08UFxen9evX67rrrlNubq6+//57PfDAA+rfv3+VOkYAqhnzLqwEAOY5d0nLX3755bz7iouLjRYtWhgtWrQwioqKDMMwjD179hh33XWXERAQYLi7uxuNGzc2brnlFmPBggX29c5dDvNit59++skwDMM4ePCgMWrUKKNx48aGm5ub4evra9xyyy3G2rVrS5T91KlTxsiRIw0/Pz+jTp06RkxMjLFjxw4jJCTEGD58uMPYEydOGGPGjDEaN25seHh4GE2aNDGGDx9uHD9+3D5m8eLFRrt27Qw3NzeHy6H++RKo59hsNiM4ONiQZLzwwgsXvP/FF180QkJCDKvVanTu3Nn4+uuvL7i9NWvWGF26dDE8PDwcLvX558t7GoZhFBYWGs8++6wRGhpquLu7G8HBwcaECRMcLk1rGBe+hKlhnL00ac+ePS98UEuw/p49e4zo6GjDarUa/v7+xpNPPmksX778gpdAbd++/XnrX2j/T58+bfzrX/+y71NAQIBx5513Gnv27LGPccZjBKD6sxgGM5QAAAAA/D/mJAAAAABwQEkAAAAA4ICSAAAAAMABJQEAAACAA0oCAAAAAAeUBAAAAAAO+DK1C7DZbDp8+LDq1q0ri8VidhwAAACgXBiGoezsbAUFBcnF5eLnCygJF3D48GEFBwebHQMAAACoEAcOHFCTJk0uej8l4QLq1q0r6ezB8/b2NjkNAAAAUD6ysrIUHBxsf797MZSECzj3ESNvb29KAgAAAKqdy32knonLAAAAABxQEgAAAAA4oCQAAAAAcEBJAAAAAOCAkgAAAADAASUBAAAAgANKAgAAAAAHlAQAAAAADigJAAAAABxQEgAAAAA4oCQAAAAAcEBJAAAAAOCAkgAAAADAASUBAAAAgANTS8LkyZN11VVXqW7dumrUqJFiY2O1c+fOy643f/58tWnTRp6enurYsaOWLl3qcL9hGJo4caICAwNVq1YtRUdHa9euXRW1GwAAAEC1YmpJ+PHHHzV69GitXbtWy5cvV2FhoW666Sbl5uZedJ01a9ZoyJAhuvvuu5WcnKzY2FjFxsZq69at9jGvvPKK3nrrLc2YMUPr1q2Tl5eXYmJilJeXVxm7BQAAAFRpFsMwDLNDnHPs2DE1atRIP/74o66//voLjhk0aJByc3P19ddf25ddffXVioiI0IwZM2QYhoKCgvToo49q3LhxkqTMzEz5+/tr5syZGjx48GVzZGVlycfHR5mZmfL29i6fnQMAAECN9+HqVN3QtpFCGniZ8vglfZ/rVHMSMjMzJUm+vr4XHZOYmKjo6GiHZTExMUpMTJQkpaamKi0tzWGMj4+PoqKi7GP+LD8/X1lZWQ43AAAAoDwt23pEz339q26ZtlrHc/LNjnNJTlMSbDabxo4dq2uuuUYdOnS46Li0tDT5+/s7LPP391daWpr9/nPLLjbmzyZPniwfHx/7LTg4+Ep2BQAAAHCw70SuHluwWZI0tFtT+dWxmpzo0pymJIwePVpbt27V3LlzK/2xJ0yYoMzMTPvtwIEDlZ4BAAAA1VNeYbFGz05Sdl6RuoTU17iYMLMjXZab2QEkacyYMfr666+1atUqNWnS5JJjAwIClJ6e7rAsPT1dAQEB9vvPLQsMDHQYExERccFtWq1WWa3O3eYAAABQNf17yXZtPZSl+rXdNX1oZ7m7Os3v6S/K1ISGYWjMmDH64osvtGLFCoWGhl52ne7duyshIcFh2fLly9W9e3dJUmhoqAICAhzGZGVlad26dfYxAAAAQGX4atNhfbp2nyRpyqAIBfrUMjlRyZh6JmH06NGaPXu2Fi9erLp169rnDPj4+KhWrbMH8K677lLjxo01efJkSdLDDz+snj176vXXX1e/fv00d+5cbdiwQe+9954kyWKxaOzYsXrhhRfUqlUrhYaG6umnn1ZQUJBiY2NN2U8AAADUPL8fy9GEhVskSaN7t1DvsEYmJyo5U0vCO++8I0nq1auXw/KPPvpII0aMkCTt379fLi7/f8KjR48emj17tp566ik9+eSTatWqlRYtWuQw2fnxxx9Xbm6u7r33XmVkZOjaa6/VsmXL5OnpWeH7BAAAAOQVFuuBWUnKyS9SVKivHolubXakUnGq70lwFnxPAgAAAK7EhIWbNWf9ATXw8tDSh6+Tv7dz/LK6Sn5PAgAAAFDVLUo+pDnrD8hikd4c3NlpCkJpUBIAAACAcrL7aLae/OLsPISH/tJK17byMzlR2VASAAAAgHJwuqBID8xK0umCYl3TsoEeuqGV2ZHKjJIAAAAAlIOJi7fpt/QcNaxr1dRBneXqYjE7UplREgAAAIArNH/DAS3YeFAuFumtwZ3VsG7V/qJeSgIAAABwBXamZevpxVslSXE3tlb3Fg1MTnTlKAkAAABAGeXmF+mBWRuVV2jT9a0b6oFeLc2OVC4oCQAAAEAZGIahf32xRXuO5SrA21NvDAyXSxWeh/BHlAQAAACgDOb+ckCLUg7L1cWiaUM7q0Gdqj0P4Y8oCQAAAEApbTucqUlfbpMkPRYTpqua+ZqcqHxREgAAAIBSyM4r1OhZSSoosukvbRrp3uuamx2p3FESAAAAgBIyDEPjF27R3hOnFeTjqdcHVJ95CH9ESQAAAABK6L9r92nJ5iNyc7Fo+rBI1ffyMDtShaAkAAAAACWw5WCmnv96uyRpfN82imxa3+REFYeSAAAAAFxG5plCPTB7owqKbbqpnb/uvjbU7EgVipIAAAAAXIJhGHp8wSYdOHlGTerX0qt3hstiqX7zEP6IkgAAAABcwkc/79W329Ll7mpR/NBI+dR2NztShaMkAAAAABeRvP+UJn9zdh7Cv25uq/DgeuYGqiSUBAAAAOACMk4XaMzsZBUWG7q5Y4CG92hmdqRKQ0kAAAAA/sQwDI2bv0mHMs4opEFtvXRHp2o/D+GPKAkAAADAn7z/0+/6fvtRebi5KH5opLw9q/88hD+iJAAAAAB/sGHvSb28bKckaeIt7dShsY/JiSofJQEAAAD4n5O5Z+chFNsM/TU8SMOimpodyRSUBAAAAECSzWbokXkpSsvKU3M/L714e8caNQ/hjygJAAAAgKR3ftyjH387Jqubi+KHRaqO1c3sSKahJAAAAKDGW/v7Cb3+3dl5CM/1b6+2gd4mJzIXJQEAAAA12rHsfD00J1k2Q7o9srEGdg02O5LpKAkAAACosYr/Nw/haHa+WjWqoxdiO9TYeQh/REkAAABAjTV9xW6t3n1ctdxd9fawSNX2qLnzEP6IkgAAAIAa6efdxzU14TdJ0guxHdTKv67JiZwHJQEAAAA1ztGsPD08N1mGIQ3qGqw7ujQxO5JToSQAAACgRikqtumhuck6nlOgNgF19Wz/9mZHcjqUBAAAANQobybs0trfT8rLw1XxwyLl6e5qdiSnQ0kAAABAjfHjb8c0/YfdkqQXb++oFg3rmJzIOVESAAAAUCMcyTyjR+alyDCkYVFN1T+isdmRnBYlAQAAANVeUbFND81J1sncArUP8tbTt7QzO5JToyQAAACg2nvtu9/0y95TqmN1U/xQ5iFcDiUBAAAA1dqKHema8eMeSdIrd3ZSMz8vkxM5P0oCAAAAqq1DGWcU99kmSdKIHs10c8dAkxNVDZQEAAAAVEsFRTaNmZ2kjNOFCm/iowk3tzE7UpVBSQAAAEC19MqyHUrenyFvTzdNHxopqxvzEErK1JKwatUq3XrrrQoKCpLFYtGiRYsuOX7EiBGyWCzn3dq3//9vyXvmmWfOu79NG1ojAABATfLdtjT9Z3WqJOnVAeEK9q1tcqKqxdSSkJubq/DwcMXHx5do/JtvvqkjR47YbwcOHJCvr68GDBjgMK59+/YO41avXl0R8QEAAOCEDpw8rUfnn52HMOraUMW0DzA5UdXjZuaD9+3bV3379i3xeB8fH/n4+Nh/XrRokU6dOqWRI0c6jHNzc1NAAE8GAACAmia/qFijZycpO69InZvW0xN9+URJWVTpOQkffPCBoqOjFRIS4rB8165dCgoKUvPmzTVs2DDt37//ktvJz89XVlaWww0AAABVz+SlO7T5YKbq1XbX9KGRcnet0m93TVNlj9rhw4f1zTffaNSoUQ7Lo6KiNHPmTC1btkzvvPOOUlNTdd111yk7O/ui25o8ebL9LIWPj4+Cg4MrOj4AAADK2dItRzRzzV5J0pSB4Wpcr5a5gaqwKlsSPv74Y9WrV0+xsbEOy/v27asBAwaoU6dOiomJ0dKlS5WRkaHPPvvsotuaMGGCMjMz7bcDBw5UcHoAAACUp73Hc/X4gs2SpPt6ttBf2vibnKhqM3VOQlkZhqEPP/xQf//73+Xh4XHJsfXq1VPr1q21e/fui46xWq2yWq3lHRMAAACVIK+wWA/MSlJOfpGualZf425qbXakKq9Knkn48ccftXv3bt19992XHZuTk6M9e/YoMJBv1wMAAKiOnv/6V/16JEu+Xh6aNiRSbsxDuGKmHsGcnBylpKQoJSVFkpSamqqUlBT7ROMJEyborrvuOm+9Dz74QFFRUerQocN5940bN04//vij9u7dqzVr1ui2226Tq6urhgwZUqH7AgAAgMq3OOWQZq3bL4tFemNQhAJ8PM2OVC2Y+nGjDRs2qHfv3vaf4+LiJEnDhw/XzJkzdeTIkfOuTJSZmanPP/9cb7755gW3efDgQQ0ZMkQnTpxQw4YNde2112rt2rVq2LBhxe0IAAAAKt2eYzl6cuEWSdKY3i3VszXv98qLxTAMw+wQziYrK0s+Pj7KzMyUt7e32XEAAADwJ2cKinXb2z9rR1q2rm7uq1mjrpari8XsWE6vpO9z+cAWAAAAqpxnvtymHWnZ8qtj1VuDO1MQyhklAQAAAFXK5xsPat6GA7JYpDcHR6iRN/MQyhslAQAAAFXGrvRsPbVoqyRp7A2tdU1LP5MTVU+UBAAAAFQJpwuK9MCsJJ0pLNa1Lf005i8tzY5UbVESAAAA4PQMw9BTi7Zq19EcNapr1dTBEcxDqECUBAAAADi9+RsOamHSIblYpLeGdJZfHavZkao1SgIAAACc2vYjWXp68dl5CI/eFKarmzcwOVH1R0kAAACA08rJL9LoWUnKL7KpV1hD3d+zhdmRagRKAgAAAJySYRh6cuEW/X48V4E+npoyMEIuzEOoFJQEAAAAOKXZ6/fry02H5epi0bQhneXr5WF2pBqDkgAAAACns/VQpp796ldJ0hN9wtS1ma/JiWoWSgIAAACcSlZeoUbPTlJBkU3RbRvpnuuamx2pxqEkAAAAwGkYhqHxn2/WvhOn1bheLb02IFwWC/MQKhslAQAAAE7jk8R9WrolTe6uFk0f2ln1ajMPwQyUBAAAADiFTQcy9MKSs/MQJvRtq85N65ucqOaiJAAAAMB0mafPzkMoLDbUp32ARl7TzOxINRolAQAAAKYyDEPjFmzSwVNnFOxbSy/f2Yl5CCajJAAAAMBUH6xO1fJf0+Xh6qK3h3aRTy13syPVeJQEAAAAmCZp/ym99M0OSdLTt7RVxyY+JieCREkAAACASU7lFmjMrCQV2Qzd0ilQf7s6xOxI+B9KAgAAACqdzWbo0fmbdDgzT6F+Xpp8e0fmITgRSgIAAAAq3Xs//a4VO47Kw81F04d2Vl1P5iE4E0oCAAAAKtUve0/q1W93SpKeubW92gcxD8HZUBIAAABQaU7k5GvM7CQV2wzFRgRpSLdgsyPhAigJAAAAqBQ2m6FHPtuk9Kx8tWjopX/fxjwEZ0VJAAAAQKV4e+VurfrtmDzdXfT2sC7ysrqZHQkXQUkAAABAhVuz57imLP9NkvRc/w4KC6hrciJcCiUBAAAAFepYdr4enpsimyHd2aWJBnZlHoKzoyQAAACgwhTbDD08N1nHsvPV2r+Onu/fwexIKAFKAgAAACrMWwm7tGbPCdX2cNXbwyJVy8PV7EgoAUoCAAAAKsRPu47prRW7JEn/vq2DWjZiHkJVQUkAAABAuUvPytPYuSkyDGlIt2Dd1rmJ2ZFQCpQEAAAAlKuiYpsenJOsE7kFahvorUm3tjc7EkqJkgAAAIBy9cb3v2l96kl5ebgqfmhnebozD6GqoSQAAACg3Pyw86jif9gjSXrpjk5q3rCOyYlQFpQEAAAAlIvDGWcUNy9FkvT3q0N0a3iQuYFQZpQEAAAAXLHC/81DOHW6UB0ae+upW9qaHQlXgJIAAACAK/batzu1cd8p1bW6KX5opKxuzEOoyigJAAAAuCLf/5qud1f9Lkl65c5OCmngZXIiXClKAgAAAMrs4KnTenT+JknSyGuaqW/HQJMToTxQEgAAAFAmBUU2jZ6drMwzhQoPrqcJfZmHUF1QEgAAAFAmL32zQ5sOZMjb003Th3SWhxtvLasLU/8kV61apVtvvVVBQUGyWCxatGjRJcevXLlSFovlvFtaWprDuPj4eDVr1kyenp6KiorS+vXrK3AvAAAAap5lW9P04c+pkqTXB0Yo2Le2yYlQnkwtCbm5uQoPD1d8fHyp1tu5c6eOHDlivzVq1Mh+37x58xQXF6dJkyYpKSlJ4eHhiomJ0dGjR8s7PgAAQI20/8RpPbbg7DyEe69vrhvb+ZucCOXNzcwH79u3r/r27Vvq9Ro1aqR69epd8L4pU6bonnvu0ciRIyVJM2bM0JIlS/Thhx9q/PjxVxIXAACgxssvKtbo2UnKzitSl5D6eiwmzOxIqABV8oNjERERCgwM1I033qiff/7ZvrygoEAbN25UdHS0fZmLi4uio6OVmJh40e3l5+crKyvL4QYAAIDz/XvJdm05lKn6td01bUhnubtWybeTuIwq9acaGBioGTNm6PPPP9fnn3+u4OBg9erVS0lJSZKk48ePq7i4WP7+jqe8/P39z5u38EeTJ0+Wj4+P/RYcHFyh+wEAAFAVfb35sD5J3CdJmjIoQkH1apmcCBXF1I8blVZYWJjCwv7/lFaPHj20Z88evfHGG/r000/LvN0JEyYoLi7O/nNWVhZFAQAA4A9Sj+dq/OdbJEkP9Gqh3mGNLrMGqrIqVRIupFu3blq9erUkyc/PT66urkpPT3cYk56eroCAgItuw2q1ymq1VmhOAACAqiqvsFgPzEpSTn6RuoX6Ku7G1mZHQgWrUh83upCUlBQFBp79Zj8PDw916dJFCQkJ9vttNpsSEhLUvXt3syICAABUac9+9au2H8lSAy8PTRvSWW7MQ6j2TD2TkJOTo927d9t/Tk1NVUpKinx9fdW0aVNNmDBBhw4d0ieffCJJmjp1qkJDQ9W+fXvl5eXpP//5j1asWKHvvvvOvo24uDgNHz5cXbt2Vbdu3TR16lTl5ubar3YEAACAkluUfEhz1u+XxSJNHRwhf29PsyOhEphaEjZs2KDevXvbfz43L2D48OGaOXOmjhw5ov3799vvLygo0KOPPqpDhw6pdu3a6tSpk77//nuHbQwaNEjHjh3TxIkTlZaWpoiICC1btuy8ycwAAAC4tN1Hc/TkF2fnITz4l1a6rlVDkxOhslgMwzDMDuFssrKy5OPjo8zMTHl7e5sdBwAAoNKdKShWbPzP2pmerR4tGujTu6Pk6mIxOxauUEnf5/KBMgAAAJxn4uKt2pmeLb86Vk0dHEFBqGEoCQAAAHAwf8MBzd94UC4W6a0hEWpUl3kINQ0lAQAAAHY707L19OKtkqRHolurRws/kxPBDJQEAAAASJJy84v0wKyNyiu06bpWfhrdu6XZkWASSgIAAABkGIaeWrRVe47lyt/bqqmDIuTCPIQai5IAAAAAzfvlgL5IPiRXF4umDYlUgzpWsyPBRJQEAACAGu7Xw1ma+OU2SdK4m8LULdTX5EQwGyUBAACgBsvOK9To2UkqKLKpd1hD/fP65mZHghOgJAAAANRQhmFowsItSj2eqyAfT00ZyDwEnEVJAAAAqKH+u26/vt58RG4uFk0bGqn6Xh5mR4KToCQAAADUQFsOZur5r36VJI3v20ZdQuqbnAjOhJIAAABQw2Sdm4dQbNON7fx197WhZkeCk6EkAAAA1CCGYejx+Zu1/+RpNalfS6/dGS6LhXkIcERJAAAAqEFmrtmrZdvS5O5qUfzQSPnUdjc7EpwQJQEAAKCGSDmQoReXbpck/evmtgoPrmduIDgtSgIAAEANkHG6QKNnJamw2NDNHQM0vEczsyPBiVESAAAAqjnDMDRu/mYdyjijkAa19dIdnZiHgEuiJAAAAFRz//kpVd9vT5eHq4vih0bK25N5CLg0SgIAAEA1tnHfSb20bIckaeKt7dShsY/JiVAVUBIAAACqqZO5BRozO1nFNkO3hgdpWFRTsyOhiqAkAAAAVEM2m6G4z1J0JDNPzf28NPn2jsxDQIlREgAAAKqhGav2aOXOY7K6uSh+WKTqWN3MjoQqhJIAAABQzaz7/YRe+3anJOm5/u3VNtDb5ESoaigJAAAA1cjxnHw9OCdZNkO6vXNjDewabHYkVEGUBAAAgGqi2GbokXkpOpqdr5aN6uiF2zowDwFlQkkAAACoJuJ/2K2fdh1XLXdXvT0sUrU9mIeAsqEkAAAAVANrdh/XG9//Jkl6PraDWvvXNTkRqjJKAgAAQBV3NDtPD81NkWFIA7s20Z1dmpgdCVUcJQEAAKAKK7YZenhOio7n5CvMv66e/WsHsyOhGqAkAAAAVGFvfv+bEn8/odoeroofFqlaHq5mR0I1QEkAAACoolb9dkzTftgtSZp8e0e1bFTH5ESoLigJAAAAVVBaZp7Gzjs7D2FoVFP1j2hsdiRUI5QEAACAKqao2KaH5iTrZG6B2gV6a+It7cyOhGqGkgAAAFDFvL78N63fe1J1rG56e1ikPN2Zh4DyRUkAAACoQlbsSNc7K/dIkl6+o5Oa+XmZnAjVESUBAACgijiUcUZxn22SJA3vHqJ+nQJNToTqipIAAABQBRQW2/Tg7CRlnC5UpyY+erJfW7MjoRqjJAAAAFQBryzboaT9Garr6ab4oZGyujEPARWHkgAAAODkvtuWpvd/SpUkvXpnuIJ9a5ucCNUdJQEAAMCJHTh5WuPmn52HcPe1oerTIcDkRKgJKAkAAABOqqDIpjGzk5SVV6SI4Hp6ok8bsyOhhjC1JKxatUq33nqrgoKCZLFYtGjRokuOX7hwoW688UY1bNhQ3t7e6t69u7799luHMc8884wsFovDrU0b/kIBAICq58Wl27XpYKZ8arlr+tDO8nDj97uoHKY+03JzcxUeHq74+PgSjV+1apVuvPFGLV26VBs3blTv3r116623Kjk52WFc+/btdeTIEftt9erVFREfAACgwizdckQz1+yVJE0ZGK4m9ZmHgMrjZuaD9+3bV3379i3x+KlTpzr8/OKLL2rx4sX66quv1LlzZ/tyNzc3BQTweT0AAFA17TuRqycWbJYk/bNnc93Q1t/kRKhpqvQ5K5vNpuzsbPn6+jos37Vrl4KCgtS8eXMNGzZM+/fvv+R28vPzlZWV5XADAAAwQ15hsR6YlaTs/CJ1DamvcTeFmR0JNVCVLgmvvfaacnJyNHDgQPuyqKgozZw5U8uWLdM777yj1NRUXXfddcrOzr7odiZPniwfHx/7LTg4uDLiAwAAnOeFJb9q2+Es+Xp5aNrQznJ3rdJv11BFWQzDMMwOIUkWi0VffPGFYmNjSzR+9uzZuueee7R48WJFR0dfdFxGRoZCQkI0ZcoU3X333Rcck5+fr/z8fPvPWVlZCg4OVmZmpry9vUu1HwAAAGW1OOWQHp6bIkmaOfIq9QprZG4gVDtZWVny8fG57PtcU+cklNXcuXM1atQozZ8//5IFQZLq1aun1q1ba/fu3RcdY7VaZbVayzsmAABAie05lqMnF26RJI3p3ZKCAFNVufNXc+bM0ciRIzVnzhz169fvsuNzcnK0Z88eBQYGVkI6AACA0ssrLNboWUnKLShWVKivxka3MjsSajhTzyTk5OQ4/IY/NTVVKSkp8vX1VdOmTTVhwgQdOnRIn3zyiaSzHzEaPny43nzzTUVFRSktLU2SVKtWLfn4+EiSxo0bp1tvvVUhISE6fPiwJk2aJFdXVw0ZMqTydxAAAKAEnvlym3akZcuvjoemDeksN+YhwGSmPgM3bNigzp072y9fGhcXp86dO2vixImSpCNHjjhcmei9995TUVGRRo8ercDAQPvt4Ycfto85ePCghgwZorCwMA0cOFANGjTQ2rVr1bBhw8rdOQAAgBJYmHRQc385IItFenNwZzXy9jQ7EuA8E5edSUkndAAAAFyJXenZ+uv0n3WmsFhjo1tpbHRrsyOhmivp+1zOZQEAAJjgdEGRHpiVpDOFxbq2pZ8e/AvzEOA8KAkAAACVzDAMPbVoq3YdzVHDula9MShCri4Ws2MBdpQEAACASjZ/w0EtTDokF4s0bUhnNazLpdjhXCgJAAAAlWhHWpaeXrxVkvToTWG6unkDkxMB56MkAAAAVJKc/LPzEPKLbOrZuqHu79nC7EjABVESAAAAKoFhGPrXF1v0+7FcBXh76o1BEXJhHgKcFCUBAACgEsxev1+LUw7L1cWi6UM7y9fLw+xIwEVREgAAACrY1kOZevarXyVJj8eEqWszX5MTAZdGSQAAAKhA2XmFGjM7SQVFNt3QppHuua652ZGAy6IkAAAAVBDDMDT+8y3ae+K0GterpdcHhjMPAVUCJQEAAKCCfJK4T0u2HJGbi0XThnZWvdrMQ0DVQEkAAACoAJsPZuiFJWfnIUy4ua0im9Y3ORFQcpQEAACAcpZ5plCjZyepsNhQTHt//eOaZmZHAkqFkgAAAFCODMPQY/M36cDJMwr2raVX7gyXxcI8BFQtlAQAAIBy9MHqVH33a7o8XF0UPzRSPrXczY4ElBolAQAAoJwk7T+ll77ZIUl66pa26tSknrmBgDKiJAAAAJSDjNMFenB2sopshvp1DNTfrw4xOxJQZpQEAACAK2SzGXr0s006lHFGzRrU1kt3dGQeAqo0SgIAAMAVeu+n35Ww46g83FwUPyxSdT2Zh4CqjZIAAABwBX7Ze1KvfrtTkvTMre3VPsjH5ETAlaMkAAAAlNGJnHw9ODtZxTZD/SOCNKRbsNmRgHJBSQAAACgDm83QI59tUlpWnpo39NKLtzEPAdUHJQEAAKAM3l65W6t+OyZPdxe9PSxSXlY3syMB5abMz+bU1FT99NNP2rdvn06fPq2GDRuqc+fO6t69uzw9PcszIwAAgFNJ3HNCU5b/Jkl6rn8HtQnwNjkRUL5KXRJmzZqlN998Uxs2bJC/v7+CgoJUq1YtnTx5Unv27JGnp6eGDRumJ554QiEhXB8YAABUL8ey8/XQ3GTZDOmOyCYa2JV5CKh+SlUSOnfuLA8PD40YMUKff/65goMd/1Lk5+crMTFRc+fOVdeuXfX2229rwIAB5RoYAADALMU2Q2PnJetYdr5aNaqj52Pbmx0JqBAWwzCMkg7+9ttvFRMTU6KxJ06c0N69e9WlS5cyhzNLVlaWfHx8lJmZKW9vTh8CAICz3lj+m95M2KVa7q76csw1auVf1+xIQKmU9H1uqc4klLQgSFKDBg3UoEGD0mweAADAaa3edVxvrdglSXrx9g4UBFRrZb660cyZMy+4vKioSBMmTCjrZgEAAJzO0aw8jZ2XLMOQBl8VrNs6NzE7ElChylwSHnroIQ0YMECnTp2yL9u5c6eioqI0Z86ccgkHAABgtqJimx6ck6zjOQVqE1BXz/yVeQio/spcEpKTk3Xw4EF17NhRy5cvV3x8vCIjI9WmTRtt2rSpPDMCAACY5o3vf9O61JPy8nDV28Mi5enuanYkoMKV+XsSWrRooZ9//lljx45Vnz595Orqqo8//lhDhgwpz3wAAACmWbnzqOJ/2CNJeumOTmresI7JiYDKcUXfuLxkyRLNnTtX3bt3V7169fTBBx/o8OHD5ZUNAADANEcyz+iReSmSpL9d3VS3hgeZGwioRGUuCf/85z81YMAAPfHEE/rpp5+0efNmeXh4qGPHjvrss8/KMyMAAEClKiy26cHZyTp1ulDtg7z1VL92ZkcCKlWZP270888/a926dQoPD5ckBQQEaOnSpYqPj9c//vEPDRw4sNxCAgAAVKbXvt2pDftOqa7VjXkIqJHKXBI2btwoq9V63vLRo0crOjr6ikIBAACYJWF7ut5d9bsk6ZU7OymkgZfJiYDKV+aPG12oIJwTFhZW1s0CAACY5uCp04r77OxVGkf0aKa+HQNNTgSYo1QloU+fPlq7du1lx2VnZ+vll19WfHx8mYMBAABUpoIim8bMTlbmmUKFN/HRkze3NTsSYJpSfdxowIABuuOOO+Tj46Nbb71VXbt2VVBQkDw9PXXq1Cn9+uuvWr16tZYuXap+/frp1VdfrajcAAAA5eqlb3Yo5UCGvD3dNH1opDzcrugikECVZjEMwyjNCvn5+Zo/f77mzZun1atXKzMz8+yGLBa1a9dOMTExuvvuu9W2bdVt31lZWfLx8VFmZqa8vb3NjgMAACrYsq1puu+/GyVJ7/29i25qH2ByIqBilPR9bqlLwp9lZmbqzJkzatCggdzd3a9kU06DkgAAQM2x/8Rp9Zv2k7LzinTPdaH6F5c7RTVW0ve5Zb660Tk+Pj7y8fG50s0AAABUuvyiYo2enaTsvCJFNq2nx/u0MTsS4BRKXRLeeuutCy738fFR69at1b179xJva9WqVXr11Ve1ceNGHTlyRF988YViY2Mvuc7KlSsVFxenbdu2KTg4WE899ZRGjBjhMCY+Pl6vvvqq0tLSFB4ermnTpqlbt24lzgUAAGqGfy/Zri2HMlWvtrumD42UuyvzEACpDCXhjTfeuODyjIwMZWZmqkePHvryyy/l6+t72W3l5uYqPDxc//jHP3T77bdfdnxqaqr69eun++67T7NmzVJCQoJGjRqlwMBAxcTESJLmzZunuLg4zZgxQ1FRUZo6dapiYmK0c+dONWrUqHQ7CwAAqq2vNx/WJ4n7JElvDIxQUL1aJicCnMcVz0n4o99//11/+9vfFBERobfffrt0QSyWy55JeOKJJ7RkyRJt3brVvmzw4MHKyMjQsmXLJElRUVG66qqrNH36dEmSzWZTcHCwHnzwQY0fP75EWZiTAABA9ZZ6PFe3TlutnPwi3d+rhZ7gY0aoIUr6Prdcz6k1b95cL730kr777rvy3KxdYmLied/mHBMTo8TERElSQUGBNm7c6DDGxcVF0dHR9jEXkp+fr6ysLIcbAAConvIKizV6VpJy8ovUrZmvHr2xtdmRAKdT7h+8a9q0qdLS0sp7s5KktLQ0+fv7Oyzz9/dXVlaWzpw5o+PHj6u4uPiCYy6VafLkyfYJ2D4+PgoODq6Q/AAAwHzPfvWrfj2SpQZeHnprSGe5MQ8BOE+5/63YsmWLQkJCynuzFWrChAnKzMy03w4cOGB2JAAAUAEWpxzSnPX7ZbFIbwyKUICPp9mRAKdU6onLF/soTmZmpjZu3KhHH31Uw4cPv+JgFxIQEKD09HSHZenp6fL29latWrXk6uoqV1fXC44JCLj4l6JYrVZZrdYKyQwAAJzD7qM5mrBwiyTpwd4tdX3rhiYnApxXqUtCvXr1ZLFYLnifxWLRqFGjSjxBuLS6d++upUuXOixbvny5/bKrHh4e6tKlixISEuwToG02mxISEjRmzJgKyQQAAJzfmYKz8xBOFxSre/MGejiaeQjApZS6JPzwww8XXO7t7a1WrVrJ09NTR48eVVBQ0GW3lZOTo927d9t/Tk1NVUpKinx9fdW0aVNNmDBBhw4d0ieffCJJuu+++zR9+nQ9/vjj+sc//qEVK1bos88+05IlS+zbiIuL0/Dhw9W1a1d169ZNU6dOVW5urkaOHFnaXQUAANXExMVbtTM9W351rHpzSIRcXS78C08AZ5W6JPTs2fOS92/atEmRkZEqLi6+7LY2bNig3r1723+Oi4uTJA0fPlwzZ87UkSNHtH//fvv9oaGhWrJkiR555BG9+eabatKkif7zn//YvyNBkgYNGqRjx45p4sSJSktLU0REhJYtW3beZGYAAFAzLNh4UPM3HpSLRXprcIQa1WUeAnA55fo9CVLpSoKz4nsSAACoHn5Lz9Zfp69WXqFNcTe21kM3tDI7EmAqU74nAQAAwFnk5hfpgVlJyiu06bpWfhrdu6XZkYAqg5IAAACqHcMw9NSirdp9NEf+3la9MYh5CEBplHpOwubNmy95/86dO8scBgAAoDzM++WAvkg+9L95CJ3lV4dLnQOlUeqSEBERIYvFogtNZTi3/GKXSAUAAKho249kadKX2yRJ42LCFNW8gcmJgKqn1CUhNTW1InIAAABcsey8Qj0wK0n5RTb1Dmuo+65vYXYkoEoqdUkICQmpiBwAAABXxDAMTVi4RanHcxXo46nXB0bIhXkIQJlc0cTln376SX/729/UvXt3HTp0SJL06aefavXq1eUSDgAAoKT+u26/vt58RG4uFk0f2lm+Xh5mRwKqrDKXhM8//1wxMTGqVauWkpOTlZ+fL0nKzMzUiy++WG4BAQAALmfroUw9/9WvkqQn+rRRlxBfkxMBVVuZS8ILL7ygGTNm6P3335e7u7t9+TXXXKOkpKRyCQcAAHA5Wf+bh1BQbFN0W3+Nui7U7EhAlVfmkrBz505df/315y338fFRRkbGlWQCAAAoEcMw9Pj8zdp/8rQa16ul1weEc5VFoByUuSQEBARo9+7d5y1fvXq1mjdvfkWhAAAASmLmmr1ati1N7q4WxQ+LlE9t98uvBOCyylwS7rnnHj388MNat26dLBaLDh8+rFmzZunRRx/V/fffX54ZAQAAzpNyIEMvLt0uSXry5raKCK5nbiCgGin1JVDPGT9+vGw2m2644QadPn1a119/vaxWqx577DGNGjWqPDMCAAA4yDxdqNGzklRYbKhvhwCN6NHM7EhAtVLmMwkWi0X/+te/dPLkSW3dulVr167VsWPH5OPjo9BQJgwBAICKYRiGHp2/SYcyzqipb229fGcn5iEA5azUJSE/P18TJkxQ165ddc0112jp0qVq166dtm3bprCwML355pt65JFHKiIrAACA/vNTqr7fni4PVxe9PSxS3p7MQwDKW6k/bjRx4kS9++67io6O1po1azRgwACNHDlSa9eu1euvv64BAwbI1dW1IrICAIAabuO+U3p52Q5J0tO3tlOHxj4mJwKqp1KXhPnz5+uTTz7RX//6V23dulWdOnVSUVGRNm3axKk+AABQYU7lFujB2Ukqshm6pVOg/hbV1OxIQLVV6o8bHTx4UF26dJEkdejQQVarVY888ggFAQAAVBibzVDcZyk6nJmnUD8vTb69I+89gApU6pJQXFwsDw8P+89ubm6qU6dOuYYCAAD4oxmr9uiHncdkdXNR/NBI1WUeAlChSv1xI8MwNGLECFmtVklSXl6e7rvvPnl5eTmMW7hwYfkkBAAANdr61JN6/bvfJEnP/rW92gV5m5wIqP5KXRKGDx/u8PPf/va3cgsDAADwR8dz8vXgnCQV2wzd1rmxBl0VbHYkoEYodUn46KOPKiIHAACAg2KboUfmpSg9K18tGnrphdgOzEMAKkmZv0wNAACgIsX/sFs/7TouT3cXvT2si7yspf7dJoAyoiQAAACns2bPcU39/uw8hBdiOyosoK7JiYCahZIAAACcytHsPD00J0U2QxrQpYnu7NLE7EhAjUNJAAAATqPYZujhOSk6npOvMP+6eq5/B7MjATUSJQEAADiNN7//TYm/n1BtD1fFD4tULQ9XsyMBNRIlAQAAOIVVvx3TtB92S5Im395RLRvxZa2AWSgJAADAdOlZeXpkXooMQxrSran6RzQ2OxJQo1ESAACAqYqKbXpwdrJO5BaobaC3Jt3azuxIQI1HSQAAAKZ6fflvWr/3pOpY3fT2sEh5ujMPATAbJQEAAJjmhx1H9c7KPZKkl+7oqFA/L5MTAZAoCQAAwCSHM87okc9SJEl3dQ/RLZ2CzA0EwI6SAAAAKl1hsU1jZicp43ShOjb20b/6tTU7EoA/oCQAAIBK98qyHUran6G6nm6KHxopqxvzEABnQkkAAACVavmv6Xr/p1RJ0qt3hqtpg9omJwLwZ5QEAABQaQ6cPK1H/zcP4R/XhKpPhwBzAwG4IEoCAACoFAVFZ+chZOUVKTy4nsb3bWN2JAAXQUkAAACV4sWl27XpYKZ8arkrfmhnebjxNgRwVvztBAAAFe6bLUc0c81eSdKUgeFqUp95CIAzoyQAAIAKte9Erh5fsFmS9M/rm+uGtv4mJwJwOU5REuLj49WsWTN5enoqKipK69evv+jYXr16yWKxnHfr16+ffcyIESPOu79Pnz6VsSsAAOAP8gqLNXp2krLzi9QlpL7GxYSZHQlACbiZHWDevHmKi4vTjBkzFBUVpalTpyomJkY7d+5Uo0aNzhu/cOFCFRQU2H8+ceKEwsPDNWDAAIdxffr00UcffWT/2Wq1VtxOAACAC3phya/aeihL9Wu7a/rQznJ3dYrfTwK4DNP/pk6ZMkX33HOPRo4cqXbt2mnGjBmqXbu2PvzwwwuO9/X1VUBAgP22fPly1a5d+7ySYLVaHcbVr1+/MnYHAAD8z1ebDuu/a/dLkqYMilCgTy2TEwEoKVNLQkFBgTZu3Kjo6Gj7MhcXF0VHRysxMbFE2/jggw80ePBgeXl5OSxfuXKlGjVqpLCwMN1///06ceLERbeRn5+vrKwshxsAACi734/laPznZ+chjO7dQr3Dzv90AADnZWpJOH78uIqLi+Xv7ziByd/fX2lpaZddf/369dq6datGjRrlsLxPnz765JNPlJCQoJdfflk//vij+vbtq+Li4gtuZ/LkyfLx8bHfgoODy75TAADUcHmFxXpgVpJyC4oVFeqrR6Jbmx0JQCmZPifhSnzwwQfq2LGjunXr5rB88ODB9v/v2LGjOnXqpBYtWmjlypW64YYbztvOhAkTFBcXZ/85KyuLogAAQBk98+U27UjLVgMvD701pLPcmIcAVDmm/q318/OTq6ur0tPTHZanp6crIODSX9Oem5uruXPn6u67777s4zRv3lx+fn7avXv3Be+3Wq3y9vZ2uAEAgNL7Ivmg5v5yQBaL9ObgzvL39jQ7EoAyMLUkeHh4qEuXLkpISLAvs9lsSkhIUPfu3S+57vz585Wfn6+//e1vl32cgwcP6sSJEwoMDLzizAAA4MJ2H83Wkwu3SpIe+ksrXdvKz+REAMrK9PN/cXFxev/99/Xxxx9r+/btuv/++5Wbm6uRI0dKku666y5NmDDhvPU++OADxcbGqkGDBg7Lc3Jy9Nhjj2nt2rXau3evEhIS1L9/f7Vs2VIxMTGVsk8AANQ0pwuK9MCsJJ0pLNY1LRvooRtamR0JwBUwfU7CoEGDdOzYMU2cOFFpaWmKiIjQsmXL7JOZ9+/fLxcXxy6zc+dOrV69Wt99991523N1ddXmzZv18ccfKyMjQ0FBQbrpppv0/PPP810JAABUkKcXbdNv6TlqWNeqqYM6y9XFYnYkAFfAYhiGYXYIZ5OVlSUfHx9lZmYyPwEAgMv4bMMBPb5gs1ws0qxRV6t7iwaXXwmAKUr6Ptf0jxsBAICqa2datiYuPjsPIe7G1hQEoJqgJAAAgDLJzS/S/bM2Kq/QputbN9QDvVqaHQlAOaEkAACAUjMMQ09+sUW/H8tVgLen3hgYLhfmIQDVBiUBAACU2pz1B7Q45bBcXSyaNrSzGtTh4iBAdUJJAAAApbLtcKae+WqbJOmxmDBd1czX5EQAyhslAQAAlFh2XqFGz0pSQZFNf2nTSPde19zsSAAqACUBAACUiGEYGv/5Fu09cVpBPp56fQDzEIDqipIAAABK5NO1+7RkyxG5uVg0fVik6nt5mB0JQAWhJAAAgMvacjBTL3y9XZI0vm8bRTatb3IiABWJkgAAAC4p80yhHpi9UQXFNt3Uzl93XxtqdiQAFYySAAAALsowDD2+YJMOnDyjJvVr6dU7w2WxMA8BqO4oCQAA4KI+/Hmvvt2WLndXi+KHRsqntrvZkQBUAkoCAAC4oOT9pzR56dl5CE/1a6fw4HrmBgJQaSgJAADgPBmnCzRmdrKKbIb6dQzUXd1DzI4EoBJREgAAgAObzdCjn23SoYwzCmlQW5Pv6Mg8BKCGoSQAAAAH7//0uxJ2HJWHm4vih0bK25N5CEBNQ0kAAAB2G/ae1Cvf7pQkTbq1nTo09jE5EQAzUBIAAIAk6UROvsbMTlaxzdBfw4M0tFtTsyMBMAklAQAAyGYz9Mhnm5SWlafmfl568XbmIQA1GSUBAADonR/3aNVvx2R1c1H8sEjVsbqZHQmAiSgJAADUcGt/P6HXvzs7D+H5/h3UNtDb5EQAzEZJAACgBjuWna+H5iTLZki3RzbWgK5NzI4EwAlQEgAAqKGKbYbGzkvW0ex8tWpURy/EdmAeAgBJlAQAAGqsaSt26efdJ1TL3VVvD4tUbQ/mIQA4i5IAAEAN9PPu43ozYZck6d+3dVAr/7omJwLgTCgJAADUMEez8vTw3GQZhjSoa7Buj2QeAgBHlAQAAGqQomKbHpyTrOM5BWoTUFfP9m9vdiQAToiSAABADTL1+11al3pSXh6uih8WKU93V7MjAXBClAQAAGqIH387pviVuyVJL97eUS0a1jE5EQBnRUkAAKAGOJJ5Ro/MS5FhSMOimqp/RGOzIwFwYpQEAACqucJimx6cnayTuQVqH+Stp29pZ3YkAE6OkgAAQDX32nc7tWHfKdWxuil+KPMQAFweJQEAgGosYXu63v3xd0nSK3d2UjM/L5MTAagKKAkAAFRTB0+dVtxnmyRJI3o0080dA01OBKCqoCQAAFANFRTZNGZ2sjLPFCq8iY8m3NzG7EgAqhBKAgAA1dDLy3Yo5UCGvD3dNH1opKxuzEMAUHKUBAAAqplvt6Xpg9WpkqTXBoQr2Le2yYkAVDWUBAAAqpH9J05r3Pyz8xBGXRuqm9oHmJwIQFVESQAAoJrILyrW6NlJys4rUuem9fREX+YhACgbSgIAANXEi0u2a8uhTNWr7a7pQyPl7so/8wDKhlcPAACqgSWbj+jjxH2SpCkDw9W4Xi2TEwGoyigJAABUcXuP5+qJzzdLku7r2UJ/aeNvciIAVZ1TlIT4+Hg1a9ZMnp6eioqK0vr16y86dubMmbJYLA43T09PhzGGYWjixIkKDAxUrVq1FB0drV27dlX0bgAAUOnyCov1wKwk5eQX6apm9TXuptZmRwJQDZheEubNm6e4uDhNmjRJSUlJCg8PV0xMjI4ePXrRdby9vXXkyBH7bd++fQ73v/LKK3rrrbc0Y8YMrVu3Tl5eXoqJiVFeXl5F7w4AAJXqua9/1a9HsuTr5aFpQyLlxjwEAOXA9FeSKVOm6J577tHIkSPVrl07zZgxQ7Vr19aHH3540XUsFosCAgLsN3///z+tahiGpk6dqqeeekr9+/dXp06d9Mknn+jw4cNatGhRJewRAACVY3HKIc1et18WizR1UIQCfDwvvxIAlICpJaGgoEAbN25UdHS0fZmLi4uio6OVmJh40fVycnIUEhKi4OBg9e/fX9u2bbPfl5qaqrS0NIdt+vj4KCoq6qLbzM/PV1ZWlsMNAABntvtojiYs3CJJGtO7pa5v3dDkRACqE1NLwvHjx1VcXOxwJkCS/P39lZaWdsF1wsLC9OGHH2rx4sX673//K5vNph49eujgwYOSZF+vNNucPHmyfHx87Lfg4OAr3TUAACrMmYJijZ6VpNMFxbq6ua/GRjMPAUD5Mv3jRqXVvXt33XXXXYqIiFDPnj21cOFCNWzYUO+++26ZtzlhwgRlZmbabwcOHCjHxAAAlK9JX27VzvRs+dWx6q3BneXqYjE7EoBqxtSS4OfnJ1dXV6WnpzssT09PV0BAyb5G3t3dXZ07d9bu3bslyb5eabZptVrl7e3tcAMAwBl9vvGgPttwUBaL9ObgCDXyZh4CgPJnaknw8PBQly5dlJCQYF9ms9mUkJCg7t27l2gbxcXF2rJliwIDAyVJoaGhCggIcNhmVlaW1q1bV+JtAgDgjH5Lz9ZTi7ZKksbe0FrXtPQzORGA6srN7ABxcXEaPny4unbtqm7dumnq1KnKzc3VyJEjJUl33XWXGjdurMmTJ0uSnnvuOV199dVq2bKlMjIy9Oqrr2rfvn0aNWqUpLNXPho7dqxeeOEFtWrVSqGhoXr66acVFBSk2NhYs3YTAIArkptfpAdmJelMYbGubemnMX9paXYkANWY6SVh0KBBOnbsmCZOnKi0tDRFRERo2bJl9onH+/fvl4vL/5/wOHXqlO655x6lpaWpfv366tKli9asWaN27drZxzz++OPKzc3Vvffeq4yMDF177bVatmzZeV+6BgBAVWAYhp5etFW7j+aoUV2rpg6OYB4CgAplMQzDMDuEs8nKypKPj48yMzOZnwAAMN28X/bric+3yMUizb7nal3dvIHZkQBUUSV9n1vlrm4EAEBNsv1IliYuPvt9QI/eFEZBAFApKAkAADipnPwijZ6VpPwim3qFNdT9PVuYHQlADUFJAADACRmGoQkLt+j347kK9PHUlIERcmEeAoBKQkkAAMAJzVq3X19tOixXF4umDeksXy8PsyMBqEEoCQAAOJmthzL13Fe/SpKe6BOmrs18TU4EoKahJAAA4ESy8gr1wKwkFRTbFN22ke65rrnZkQDUQJQEAACchGEYemLBZu0/eVqN69XSawPCZbEwDwFA5aMkAADgJD5es1ffbE2Tu6tF04d2Vr3azEMAYA5KAgAATmDTgQz9e+l2SdKEvm3VuWl9kxMBqMkoCQAAmCzz9Nl5CIXFhvq0D9DIa5qZHQlADUdJAADARIZhaNyCTTqUcUbBvrX08p2dmIcAwHSUBAAATPTB6lQt/zVdHq4uentoF/nUcjc7EgBQEgAAMMvGfaf00jc7JElP39JWHZv4mJwIAM6iJAAAYIJTuQV6cHaSimyGbukUqL9dHWJ2JACwoyQAAFDJbDZDcZ+l6HBmnkL9vDT59o7MQwDgVCgJAABUsndX/a4fdh6Th5uLpg/trLqezEMA4FwoCQAAVKL1qSf12nc7JUnP/rW92gcxDwGA86EkAABQSY7n5OvBOUkqthmKjQjS4KuCzY4EABdESQAAoBLYbIYemZei9Kx8tWjopX/fxjwEAM6LkgAAQCWI/2G3ftp1XJ7uLnp7WBd5Wd3MjgQAF0VJAACggq3Zc1xvfP+bJOn5/h0UFlDX5EQAcGmUBAAAKtDR7Dw9NCdFNkO6s0sTDejKPAQAzo+SAABABSm2GXp4ToqO5+SrtX8dPd+/g9mRAKBEKAkAAFSQNxN2KfH3E6rt4aq3h0Wqloer2ZEAoEQoCQAAVICfdh3TtBW7JEn/vq2DWjZiHgKAqoOSAABAOUvPytPYuSkyDGlIt2Dd1rmJ2ZEAoFQoCQAAlKOiYpsenJ2sE7kFahvorUm3tjc7EgCUGiUBAIByNGX5b1q/96S8PFwVP7SzPN2ZhwCg6qEkAABQTn7YeVRvr9wjSXrpjk5q3rCOyYkAoGwoCQAAlIPDGWf0yLwUSdLfrw7RreFB5gYCgCtASQAA4AoVFts0ZnaSMk4XqkNjbz11S1uzIwHAFaEkAABwhV79dqeS9meortVN8UMjZXVjHgKAqo2SAADAFVj+a7reW/W7JOnVAZ0U0sDL5EQAcOUoCQAAlNGBk6f16GcpkqSR1zRTnw6B5gYCgHJCSQAAoAwKimwaMydZWXlFCg+upwl9mYcAoPqgJAAAUAaTv9muTQcy5O3ppulDOsvDjX9SAVQfvKIBAFBKy7Ye0Uc/75UkvT4wQsG+tc0NBADljJIAAEAp7DuRq8fmb5Yk3Xt9c93Yzt/kRABQ/igJAACUUF5hsUbPTlJ2fpG6hNTXYzFhZkcCgApBSQAAoIT+vWS7th7KUv3a7po2pLPcXflnFED1xKsbAAAl8NWmw/p07T5J0pRBEQqqV8vkRABQcZyiJMTHx6tZs2by9PRUVFSU1q9ff9Gx77//vq677jrVr19f9evXV3R09HnjR4wYIYvF4nDr06dPRe8GAKCa+v1YjsZ/fnYewgO9Wqh3WCOTEwFAxTK9JMybN09xcXGaNGmSkpKSFB4erpiYGB09evSC41euXKkhQ4bohx9+UGJiooKDg3XTTTfp0KFDDuP69OmjI0eO2G9z5sypjN0BAFQzeYXFemBWknILitUt1FdxN7Y2OxIAVDiLYRiGmQGioqJ01VVXafr06ZIkm82m4OBgPfjggxo/fvxl1y8uLlb9+vU1ffp03XXXXZLOnknIyMjQokWLypQpKytLPj4+yszMlLe3d5m2AQCoHiYs3Kw56w+ogZeHlj58nfy9Pc2OBABlVtL3uaaeSSgoKNDGjRsVHR1tX+bi4qLo6GglJiaWaBunT59WYWGhfH19HZavXLlSjRo1UlhYmO6//36dOHHiotvIz89XVlaWww0AgEXJhzRn/QFZLNLUwREUBAA1hqkl4fjx4youLpa/v+M1pv39/ZWWllaibTzxxBMKCgpyKBp9+vTRJ598ooSEBL388sv68ccf1bdvXxUXF19wG5MnT5aPj4/9FhwcXPadAgBUC7uPZuvJL7ZIkh78Sytd16qhyYkAoPK4mR3gSrz00kuaO3euVq5cKU/P///tzuDBg+3/37FjR3Xq1EktWrTQypUrdcMNN5y3nQkTJiguLs7+c1ZWFkUBAGqw0wVFemBWkk4XFKtHiwZ6+IZWZkcCgEpl6pkEPz8/ubq6Kj093WF5enq6AgICLrnua6+9ppdeeknfffedOnXqdMmxzZs3l5+fn3bv3n3B+61Wq7y9vR1uAICaa+LibfotPUd+dayaOjhCri4WsyMBQKUytSR4eHioS5cuSkhIsC+z2WxKSEhQ9+7dL7reK6+8oueff17Lli1T165dL/s4Bw8e1IkTJxQYGFguuQEA1df8DQe0YONBuVikt4ZEqFFd5iEAqHlMvwRqXFyc3n//fX388cfavn277r//fuXm5mrkyJGSpLvuuksTJkywj3/55Zf19NNP68MPP1SzZs2UlpamtLQ05eTkSJJycnL02GOPae3atdq7d68SEhLUv39/tWzZUjExMabsIwCgatiZlq2nF2+VJD0S3Vo9WviZnAgAzGH6nIRBgwbp2LFjmjhxotLS0hQREaFly5bZJzPv379fLi7/32XeeecdFRQU6M4773TYzqRJk/TMM8/I1dVVmzdv1scff6yMjAwFBQXppptu0vPPPy+r1Vqp+wYAqDpy84v0wKyNyiu06bpWfhrdu6XZkQDANKZ/T4Iz4nsSAKBmMQxDj8xL0aKUw/L3tmrpQ9epQR1+sQSg+qkS35MAAIAzmPvLAS1KOSxXF4umDYmkIACo8SgJAIAabdvhTE36cpskadxNYeoW6nuZNQCg+qMkAABqrOy8Qo2elaSCIpt6hzXUP69vbnYkAHAKlAQAQI1kGIbGL9yivSdOK8jHU1MGRsiF70MAAEmUBABADfXftfu0ZPMRublYNG1opOp7eZgdCQCcBiUBAFDjbDmYqee/3i5JGt+3jbqE1Dc5EQA4F0oCAKBGyTxTqAdmb1RBsU03tvPX3deGmh0JAJwOJQEAUGMYhqHHF2zSgZNn1KR+Lb12Z7gsFuYhAMCfURIAADXGRz/v1bfb0uXualH80Ej51HY3OxIAOCVKAgCgRkjef0qTvzk7D+FfN7dVeHA9cwMBgBOjJAAAqr2M0wUaMztZhcWGbu4YoOE9mpkdCQCcGiUBAFCtGYahcfM36VDGGYU0qK2X7ujEPAQAuAxKAgCgWnv/p9/1/faj8nB1UfzQSHl7Mg8BAC6HkgAAqLY27D2pl5ftlCRNvLWdOjT2MTkRAFQNlAQAQLV0MvfsPIRim6Fbw4M0LKqp2ZEAoMqgJAAAqh2bzdAj81KUlpWn5n5emnx7R+YhAEApUBIAANXOOz/u0Y+/HZPVzUXxwyJVx+pmdiQAqFIoCQCAamXt7yf0+ndn5yE817+92gZ6m5wIAKoeSgIAoNo4lp2vh+Yky2ZIt3durIFdg82OBABVEiUBAFAtFP9vHsLR7Hy1bFRHL9zWgXkIAFBGlAQAQLUwfcVurd59XLXcXfX2sEjV9mAeAgCUFSUBAFDl/bz7uKYm/CZJej62g1r71zU5EQBUbZQEAECVdjQrTw/PTZZhSAO7NtGdXZqYHQkAqjxKAgCgyioqtumhuck6nlOgMP+6evavHcyOBADVAiUBAFBlvZmwS2t/P6naHq6KHxapWh6uZkcCgGqBkgAAqJJ+/O2Ypv+wW5I0+faOatmojsmJAKD6oCQAAKqcI5ln9Mi8FBmGNDSqqfpHNDY7EgBUK5QEAECVUlRs00NzknUyt0DtAr018ZZ2ZkcCgGqHkgAAqFJe++43/bL3lOpY3fT2sEh5ujMPAQDKGyUBAFBlrNiRrhk/7pEkvXxHJzXz8zI5EQBUT5QEAECVcCjjjOI+2yRJGt49RP06BZqcCACqL0oCAMDpFRTZNGZ2kjJOF6pTEx892a+t2ZEAoFqjJAAAnN4ry3YoeX+G6nq6KX5opKxuzEMAgIpESQAAOLXvtqXpP6tTJUmvDQhXsG9tkxMBQPVHSQAAOK0DJ0/r0fln5yHcfW2oYtoHmJwIAGoGSgIAwCnlFxVr9OwkZecVKSK4np7o08bsSABQY1ASAABOafLSHdp8MFM+tdw1fWhnebjxTxYAVBZecQEATmfpliOauWavJGnKwHA1qc88BACoTJQEAIBT2Xs8V48v2CxJ+mfP5rqhrb/JiQCg5qEkAACcRl5hsR6YlaSc/CJ1DamvcTeFmR0JAGokSgIAwGk8//Wv+vVIlny9PDRtaGe5u/LPFACYgVdfAIBTWJxySLPW7ZfFcnYeQqBPLbMjAUCN5RQlIT4+Xs2aNZOnp6eioqK0fv36S46fP3++2rRpI09PT3Xs2FFLly51uN8wDE2cOFGBgYGqVauWoqOjtWvXrorcBQDAFdhzLEdPLtwiSRrdq6V6hTUyOREA1Gyml4R58+YpLi5OkyZNUlJSksLDwxUTE6OjR49ecPyaNWs0ZMgQ3X333UpOTlZsbKxiY2O1detW+5hXXnlFb731lmbMmKF169bJy8tLMTExysvLq6zdAgCU0JmCYo2elaTcgmJFhfpqbHQrsyMBQI1nMQzDMDNAVFSUrrrqKk2fPl2SZLPZFBwcrAcffFDjx48/b/ygQYOUm5urr7/+2r7s6quvVkREhGbMmCHDMBQUFKRHH31U48aNkyRlZmbK399fM2fO1ODBgy+bKSsrSz4+PsrMzJS3t3c57WnJpGflKXn/qUp9TAAw05Itafpq02H51fHQ0oeuUyNvT7MjAUC1VdL3uW6VmOk8BQUF2rhxoyZMmGBf5uLioujoaCUmJl5wncTERMXFxTksi4mJ0aJFiyRJqampSktLU3R0tP1+Hx8fRUVFKTEx8YIlIT8/X/n5+fafs7KyrmS3rsimAxm6779Jpj0+AJjBYpHeHNyZggAATsLUknD8+HEVFxfL39/xGtj+/v7asWPHBddJS0u74Pi0tDT7/eeWXWzMn02ePFnPPvtsmfahvNWr7aGuIfXNjgEAlcbFxaKh3ZrqmpZ+ZkcBAPyPqSXBWUyYMMHh7ERWVpaCg4NNydIt1FcL7u9hymMDAAAAkskTl/38/OTq6qr09HSH5enp6QoICLjgOgEBAZccf+6/pdmm1WqVt7e3ww0AAACoqUwtCR4eHurSpYsSEhLsy2w2mxISEtS9e/cLrtO9e3eH8ZK0fPly+/jQ0FAFBAQ4jMnKytK6desuuk0AAAAA/8/0jxvFxcVp+PDh6tq1q7p166apU6cqNzdXI0eOlCTdddddaty4sSZPnixJevjhh9WzZ0+9/vrr6tevn+bOnasNGzbovffekyRZLBaNHTtWL7zwglq1aqXQ0FA9/fTTCgoKUmxsrFm7CQAAAFQZppeEQYMG6dixY5o4caLS0tIUERGhZcuW2Sce79+/Xy4u/3/Co0ePHpo9e7aeeuopPfnkk2rVqpUWLVqkDh062Mc8/vjjys3N1b333quMjAxde+21WrZsmTw9uWoGAAAAcDmmf0+CMzLzexIAAACAilLS97mmf+MyAAAAAOdCSQAAAADggJIAAAAAwAElAQAAAIADSgIAAAAAB5QEAAAAAA4oCQAAAAAcUBIAAAAAOKAkAAAAAHBASQAAAADggJIAAAAAwAElAQAAAIADSgIAAAAAB25mB3BGhmFIkrKyskxOAgAAAJSfc+9vz73fvRhKwgVkZ2dLkoKDg01OAgAAAJS/7Oxs+fj4XPR+i3G5GlED2Ww2HT58WHXr1pXFYqn0x8/KylJwcLAOHDggb2/vSn/8qoxjV3YcuyvD8Ss7jl3ZcezKjmN3ZTh+ZWf2sTMMQ9nZ2QoKCpKLy8VnHnAm4QJcXFzUpEkTs2PI29ubv3hlxLErO47dleH4lR3Hruw4dmXHsbsyHL+yM/PYXeoMwjlMXAYAAADggJIAAAAAwAElwQlZrVZNmjRJVqvV7ChVDseu7Dh2V4bjV3Ycu7Lj2JUdx+7KcPzKrqocOyYuAwAAAHDAmQQAAAAADigJAAAAABxQEgAAAAA4oCQAAAAAcEBJMNnevXt19913KzQ0VLVq1VKLFi00adIkFRQUXHK9vLw8jR49Wg0aNFCdOnV0xx13KD09vZJSO5d///vf6tGjh2rXrq169eqVaJ0RI0bIYrE43Pr06VOxQZ1QWY6dYRiaOHGiAgMDVatWLUVHR2vXrl0VG9QJnTx5UsOGDZO3t7fq1aunu+++Wzk5OZdcp1evXuc97+67775KSmyu+Ph4NWvWTJ6enoqKitL69esvOX7+/Plq06aNPD091bFjRy1durSSkjqf0hy7mTNnnvcc8/T0rMS0zmPVqlW69dZbFRQUJIvFokWLFl12nZUrVyoyMlJWq1UtW7bUzJkzKzynMyrtsVu5cuV5zzuLxaK0tLTKCexEJk+erKuuukp169ZVo0aNFBsbq507d152PWd8zaMkmGzHjh2y2Wx69913tW3bNr3xxhuaMWOGnnzyyUuu98gjj+irr77S/Pnz9eOPP+rw4cO6/fbbKym1cykoKNCAAQN0//33l2q9Pn366MiRI/bbnDlzKiih8yrLsXvllVf01ltvacaMGVq3bp28vLwUExOjvLy8CkzqfIYNG6Zt27Zp+fLl+vrrr7Vq1Srde++9l13vnnvucXjevfLKK5WQ1lzz5s1TXFycJk2apKSkJIWHhysmJkZHjx694Pg1a9ZoyJAhuvvuu5WcnKzY2FjFxsZq69atlZzcfKU9dtLZb3H943Ns3759lZjYeeTm5io8PFzx8fElGp+amqp+/fqpd+/eSklJ0dixYzVq1Ch9++23FZzU+ZT22J2zc+dOh+deo0aNKiih8/rxxx81evRorV27VsuXL1dhYaFuuukm5ebmXnQdp33NM+B0XnnlFSM0NPSi92dkZBju7u7G/Pnz7cu2b99uSDISExMrI6JT+uijjwwfH58SjR0+fLjRv3//Cs1TlZT02NlsNiMgIMB49dVX7csyMjIMq9VqzJkzpwITOpdff/3VkGT88ssv9mXffPONYbFYjEOHDl10vZ49exoPP/xwJSR0Lt26dTNGjx5t/7m4uNgICgoyJk+efMHxAwcONPr16+ewLCoqyvjnP/9ZoTmdUWmPXWleB2sSScYXX3xxyTGPP/640b59e4dlgwYNMmJiYiowmfMrybH74YcfDEnGqVOnKiVTVXL06FFDkvHjjz9edIyzvuZxJsEJZWZmytfX96L3b9y4UYWFhYqOjrYva9OmjZo2barExMTKiFgtrFy5Uo0aNVJYWJjuv/9+nThxwuxITi81NVVpaWkOzz0fHx9FRUXVqOdeYmKi6tWrp65du9qXRUdHy8XFRevWrbvkurNmzZKfn586dOigCRMm6PTp0xUd11QFBQXauHGjw3PGxcVF0dHRF33OJCYmOoyXpJiYmBr1HJPKduwkKScnRyEhIQoODlb//v21bdu2yohb5fG8u3IREREKDAzUjTfeqJ9//tnsOE4hMzNTki75vs5Zn3tupj46zrN7925NmzZNr7322kXHpKWlycPD47zPkPv7+9fIz/+VRZ8+fXT77bcrNDRUe/bs0ZNPPqm+ffsqMTFRrq6uZsdzWueeX/7+/g7La9pzLy0t7bzT6G5ubvL19b3kcRg6dKhCQkIUFBSkzZs364knntDOnTu1cOHCio5smuPHj6u4uPiCz5kdO3ZccJ20tLQa/xyTynbswsLC9OGHH6pTp07KzMzUa6+9ph49emjbtm1q0qRJZcSusi72vMvKytKZM2dUq1Ytk5I5v8DAQM2YMUNdu3ZVfn6+/vOf/6hXr15at26dIiMjzY5nGpvNprFjx+qaa65Rhw4dLjrOWV/zOJNQQcaPH3/BSTx/vP35Rf7QoUPq06ePBgwYoHvuucek5M6hLMevNAYPHqy//vWv6tixo2JjY/X111/rl19+0cqVK8tvJ0xS0ceuOqvoY3fvvfcqJiZGHTt21LBhw/TJJ5/oiy++0J49e8pxL1CTde/eXXfddZciIiLUs2dPLVy4UA0bNtS7775rdjRUY2FhYfrnP/+pLl26qEePHvrwww/Vo0cPvfHGG2ZHM9Xo0aO1detWzZ071+woZcKZhAry6KOPasSIEZcc07x5c/v/Hz58WL1791aPHj303nvvXXK9gIAAFRQUKCMjw+FsQnp6ugICAq4kttMo7fG7Us2bN5efn592796tG264ody2a4aKPHbnnl/p6ekKDAy0L09PT1dERESZtulMSnrsAgICzps4WlRUpJMnT5bq72BUVJSks2cQW7RoUeq8VYGfn59cXV3Pu/rapV6vAgICSjW+uirLsfszd3d3de7cWbt3766IiNXKxZ533t7enEUog27dumn16tVmxzDNmDFj7Be1uNxZPGd9zaMkVJCGDRuqYcOGJRp76NAh9e7dW126dNFHH30kF5dLn+Dp0qWL3N3dlZCQoDvuuEPS2SsK7N+/X927d7/i7M6gNMevPBw8eFAnTpxweONbVVXksQsNDVVAQIASEhLspSArK0vr1q0r9dWlnFFJj1337t2VkZGhjRs3qkuXLpKkFStWyGaz2d/4l0RKSookVYvn3cV4eHioS5cuSkhIUGxsrKSzp+ATEhI0ZsyYC67TvXt3JSQkaOzYsfZly5cvrzavbyVVlmP3Z8XFxdqyZYtuvvnmCkxaPXTv3v28y07WxOddeUlJSanWr20XYxiGHnzwQX3xxRdauXKlQkNDL7uO077mmTptGsbBgweNli1bGjfccINx8OBB48iRI/bbH8eEhYUZ69atsy+77777jKZNmxorVqwwNmzYYHTv3t3o3r27Gbtgun379hnJycnGs88+a9SpU8dITk42kpOTjezsbPuYsLAwY+HChYZhGEZ2drYxbtw4IzEx0UhNTTW+//57IzIy0mjVqpWRl5dn1m6YorTHzjAM46WXXjLq1atnLF682Ni8ebPRv39/IzQ01Dhz5owZu2CaPn36GJ07dzbWrVtnrF692mjVqpUxZMgQ+/1//nu7e/du47nnnjM2bNhgpKamGosXLzaaN29uXH/99WbtQqWZO3euYbVajZkzZxq//vqrce+99xr16tUz0tLSDMMwjL///e/G+PHj7eN//vlnw83NzXjttdeM7du3G5MmTTLc3d2NLVu2mLULpintsXv22WeNb7/91tizZ4+xceNGY/DgwYanp6exbds2s3bBNNnZ2fbXNEnGlClTjOTkZGPfvn2GYRjG+PHjjb///e/28b///rtRu3Zt47HHHjO2b99uxMfHG66ursayZcvM2gXTlPbYvfHGG8aiRYuMXbt2GVu2bDEefvhhw8XFxfj+++/N2gXT3H///YaPj4+xcuVKh/d0p0+fto+pKq95lASTffTRR4akC97OSU1NNSQZP/zwg33ZmTNnjAceeMCoX7++Ubt2beO2225zKBY1yfDhwy94/P54vCQZH330kWEYhnH69GnjpptuMho2bGi4u7sbISEhxj333GP/R7cmKe2xM4yzl0F9+umnDX9/f8NqtRo33HCDsXPnzsoPb7ITJ04YQ4YMMerUqWN4e3sbI0eOdChXf/57u3//fuP66683fH19DavVarRs2dJ47LHHjMzMTJP2oHJNmzbNaNq0qeHh4WF069bNWLt2rf2+nj17GsOHD3cY/9lnnxmtW7c2PDw8jPbt2xtLliyp5MTOozTHbuzYsfax/v7+xs0332wkJSWZkNp85y7L+efbueM1fPhwo2fPnuetExERYXh4eBjNmzd3eO2rSUp77F5++WWjRYsWhqenp+Hr62v06tXLWLFihTnhTXax93R/fC5Vldc8i2EYRkWeqQAAAABQtXB1IwAAAAAOKAkAAAAAHFASAAAAADigJAAAAABwQEkAAAAA4ICSAAAAAMABJQEAAACAA0oCAAAAAAeUBAAAAAAOKAkAAAAAHFASAAAAADigJAAAKt2xY8cUEBCgF1980b5szZo18vDwUEJCgonJAACSZDEMwzA7BACg5lm6dKliY2O1Zs0ahYWFKSIiQv3799eUKVPMjgYANR4lAQBgmtGjR+v7779X165dtWXLFv3yyy+yWq1mxwKAGo+SAAAwzZkzZ9ShQwcdOHBAGzduVMeOHc2OBAAQcxIAACbas2ePDh8+LJvNpr1795odBwDwP5xJAACYoqCgQN26dVNERITCwsI0depUbdmyRY0aNTI7GgDUeJQEAIApHnvsMS1YsECbNm1SnTp11LNnT/n4+Ojrr782OxoA1Hh83AgAUOlWrlypqVOn6tNPP5W3t7dcXFz06aef6qefftI777xjdjwAqPE4kwAAAADAAWcSAAAAADigJAAAAABwQEkAAAAA4ICSAAAAAMABJQEAAACAA0oCAAAAAAeUBAAAAAAOKAkAAAAAHFASAAAAADigJAAAAABwQEkAAAAA4OD/AN7+ALik2+4/AAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = tf.linspace(-2, 2, 201)\n", "x = tf.cast(x, tf.float32)\n", "plt.plot(x, tf.nn.relu(x));\n", "plt.xlabel('x')\n", "plt.ylabel('ReLU(x)')\n", "plt.title('ReLU activation function');" ] }, { "cell_type": "markdown", "metadata": { "id": "fuGrM9jMwsRM" }, "source": [ "softmax 激活函数是一个归一化指数函数,可以将 $m$ 个实数转换为具有 $m$ 个结果/类的概率分布。这在从神经网络的输出预测类概率方面非常实用:\n", "\n", "$$\\text{Softmax}(X) = \\frac{e^{X}}{\\sum_{i=1}^{m}e^{X_i}}$$" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T22:04:44.194827Z", "iopub.status.busy": "2022-12-14T22:04:44.194254Z", "iopub.status.idle": "2022-12-14T22:04:44.381850Z", "shell.execute_reply": "2022-12-14T22:04:44.381245Z" }, "id": "fVM8pvhWwuwI" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxIAAAIjCAYAAACXlS13AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABuxElEQVR4nO3deVyVZf7/8fc5LAfZBRREUXDJXTFRxBY1KUqbxlZ1mjS/tn2nTKOm1K9pNVO0jI1TOjo2pU2TP82prMyx1GwbyQW1XNJRc1c2EVCQ7Zz79wdy8gQqIHhz4PV8PM7Aue7rvu/PfYPNeXNf131bDMMwBAAAAAA1YDW7AAAAAADuhyABAAAAoMYIEgAAAABqjCABAAAAoMYIEgAAAABqjCABAAAAoMYIEgAAAABqjCABAAAAoMYIEgAAAABqjCABALX0yiuvqH379vLw8FBsbKzZ5biNhQsXymKx6MCBA5d9319++aUsFou+/PLLy75vyT1+Z8w+RwDcB0ECQJOwbds23XHHHWrXrp18fHzUunVrXX/99Xr99ddrtb3PP/9cTz75pK666iotWLBAL7zwgo4dO6ZnnnlGW7durdvi3dQLL7ygZcuWmbLvv/71r1q4cKEp+z6fqn5nzNQQzxEA92IxDMMwuwgAqE/r1q3TkCFD1LZtW40dO1YRERE6fPiwvvvuO+3bt0979+6t8TYnT56sV155RWfOnJG3t7ckadOmTerXr58WLFige++9t46Pwv34+/vrjjvuqPRh1W63q7S0VDabTRaLpV723aNHD4WFhVX6q7rD4VBJSYm8vb1ltV7ev6VV9TtjpoZ4jgC4F0+zCwCA+vb8888rKChIGzduVHBwsMuyzMzMWm0zMzNTzZo1axAfCN2Nh4eHPDw8TNm31WqVj4+PKft2l98ZM88RAPfCnxoANHr79u1T9+7dK4UISWrZsqXL+7KyMv3hD39Qhw4dZLPZFB0dralTp6q4uNjZx2KxaMGCBSooKJDFYpHFYtHChQvVr18/SdK4ceNc2iVp8ODB6tGjh3744QcNGjRIvr6+6tixo/71r39Jkr766ivFx8erWbNm6ty5s1avXu1S18GDB/W73/1OnTt3VrNmzRQaGqo777zTZZ6BYRgaMmSIWrRo4RKQSkpK1LNnT3Xo0EEFBQXnPU8lJSWaPn26+vbtq6CgIPn5+emaa67R2rVrK/V1OBz6y1/+op49e8rHx0ctWrTQjTfeqE2bNjnPUUFBgd5++23nuai4SvPLORI333yz2rdvX2VNCQkJiouLc75fsGCBrrvuOrVs2VI2m03dunXT3LlzXdaJjo7Wjh079NVXXzn3PXjwYEnnH/+/dOlS9e3bV82aNVNYWJh++9vf6ujRoy597r33Xvn7++vo0aMaMWKE/P391aJFCz3xxBOy2+3nPa8V56Oq35kDBw64/J78cp1nnnnG+f6ZZ56RxWLR3r17de+99yo4OFhBQUEaN26cCgsLK63/z3/+U/3795evr6+aN2+ua6+9Vp9//nmDPUcA3A9BAkCj165dO6WlpWn79u0X7Xvfffdp+vTpuvLKK/XnP/9ZgwYNUkpKikaNGuXs88477+iaa66RzWbTO++8o3feeUddu3bVc889J0l64IEHnO3XXnutc72TJ0/q5ptvVnx8vF5++WXZbDaNGjVKS5Ys0ahRozRs2DC9+OKLKigo0B133KFTp0451924caPWrVunUaNG6bXXXtNDDz2kNWvWaPDgwc4PkRaLRW+99ZaKior00EMPOdedMWOGduzYoQULFsjPz++8x56fn6+///3vGjx4sF566SU988wzysrKUlJSUqV5H+PHj9ekSZMUFRWll156SZMnT5aPj4++++475zmy2Wy65pprnOfiwQcfrHK/I0eO1P79+7Vx40aX9oMHD+q7775zOfdz585Vu3btNHXqVM2cOVNRUVH63e9+pzlz5jj7zJo1S23atFGXLl2c+/6///u/8x73woULddddd8nDw0MpKSm6//779cEHH+jqq69Wbm6uS1+73a6kpCSFhobqT3/6kwYNGqSZM2dq/vz5591+xfn45e/Mub8bNXHXXXfp1KlTSklJ0V133aWFCxfq2Wefdenz7LPP6p577pGXl5eee+45Pfvss4qKitIXX3zRYM8RADdkAEAj9/nnnxseHh6Gh4eHkZCQYDz55JPGZ599ZpSUlLj027p1qyHJuO+++1zan3jiCUOS8cUXXzjbxo4da/j5+bn027hxoyHJWLBgQaUaBg0aZEgyFi1a5GzbtWuXIcmwWq3Gd99952z/7LPPKm2nsLCw0jZTU1MNScY//vEPl/a//e1vhiTjn//8p/Hdd98ZHh4exqRJk85/gs4qKysziouLXdpOnjxphIeH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F198Uffdd5/i4uL09ddf67///W+tt9exY0f93//9n/7whz/ommuu0W233SabzaaNGzcqMjJSKSkpktzrHAFooEy6WxQAXDb//ve/jf/5n/8xunTpYvj7+xve3t5Gx44djQkTJhgZGRkufUtLS41nn33WiImJMby8vIyoqChjypQpRlFRkUu/qm7laRiG8dFHHxndunUzPD09XW7rOWjQIKN79+6V+rdr184YPnx4pXZJxsMPP+x8f/LkSWPcuHFGWFiY4e/vbyQlJRm7du0y2rVr57zF6uHDh42goCDjV7/6VaXt3XrrrYafn5/x008/nfc8ORwO44UXXjDatWtn2Gw2o0+fPsby5cuNsWPHGu3atXPpW1ZWZrzyyitGly5dDG9vb6NFixbGTTfdZKSlpTn77Nq1y7j22muNZs2aGZKcdf7y9q/nuvvuuw1JRmJiYpU1fvzxx0avXr0MHx8fIzo62njppZeMt956q9L20tPTjeHDhxsBAQGGJOdtTn95a9MKS5YsMfr06WPYbDYjJCTEuPvuu40jR4649Dnfz7zitqwXc771CwsLjfHjxxtBQUFGQECAcddddxmZmZnnvf1rVlaWy/rnO59vvfWW85iaN29uDBo0yFi1alWDPkcA3IvFMBrI7CwAAAAAboM5EgAAAABqjCABAAAAoMYIEgAAAABqjCABAAAAoMYIEgAAAABqjCABAAAAoMZ4IF0tORwOHTt2TAEBAbJYLGaXAwAAAFwywzB06tQpRUZGymq98DUHgkQtHTt2TFFRUWaXAQAAANS5w4cPq02bNhfsQ5CopYCAAEnlJzkwMNDkagAAAIBLl5+fr6ioKOdn3QshSNRSxXCmwMBAggQAAAAaleoM3WeyNQAAAIAaI0gAAAAAqDGCBAAAAIAaI0gAAAAAqDGCBAAAAIAaI0gAAAAAqLEGESTmzJmj6Oho+fj4KD4+Xhs2bLhg/6VLl6pLly7y8fFRz549tWLFivP2feihh2SxWDRr1iyX9pycHN19990KDAxUcHCwxo8fr9OnT9fF4QAAAACNnulBYsmSJUpOTtaMGTO0efNm9e7dW0lJScrMzKyy/7p16zR69GiNHz9eW7Zs0YgRIzRixAht3769Ut8PP/xQ3333nSIjIystu/vuu7Vjxw6tWrVKy5cv19dff60HHnigzo8PAAAAaIwshmEYZhYQ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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = tf.linspace(-4, 4, 201)\n", "x = tf.cast(x, tf.float32)\n", "plt.plot(x, tf.nn.softmax(x, axis=0));\n", "plt.xlabel('x')\n", "plt.ylabel('Softmax(x)')\n", "plt.title('Softmax activation function');" ] }, { "cell_type": "markdown", "metadata": { "id": "OHW6Yvg2yS6H" }, "source": [ "### 密集层\n", "\n", "为密集层创建一个类。根据定义,在 MLP 中,一层的输出将完全连接到下一层的输入。因此,密集层的输入维度可以根据其前一层的输出维度进行推断,并且不需要在其初始化期间预先指定。权重也应正确初始化,以防止激活输出变得过大或过小。最热门的权重初始化方法之一是 Xavier 方案,其中权重矩阵的每个元素都以下列方式进行采样:\n", "\n", "$$W_{ij} \\sim \\text{Uniform}(-\\frac{\\sqrt{6}}{\\sqrt{n + m}},\\frac{\\sqrt{6}}{\\sqrt{n + m}})$$\n", "\n", "偏差向量可初始化为零。" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T22:04:44.385560Z", "iopub.status.busy": "2022-12-14T22:04:44.384987Z", "iopub.status.idle": "2022-12-14T22:04:44.389083Z", "shell.execute_reply": "2022-12-14T22:04:44.388515Z" }, "id": "re1SSFyBdMrS" }, "outputs": [], "source": [ "def xavier_init(shape):\n", " # Computes the xavier initialization values for a weight matrix\n", " in_dim, out_dim = shape\n", " xavier_lim = tf.sqrt(6.)/tf.sqrt(tf.cast(in_dim + out_dim, tf.float32))\n", " weight_vals = tf.random.uniform(shape=(in_dim, out_dim), \n", " minval=-xavier_lim, maxval=xavier_lim, seed=22)\n", " return weight_vals" ] }, { "cell_type": "markdown", "metadata": { "id": "otDFX4u6e6ml" }, "source": [ "Xavier 初始化方法也可以采用 `tf.keras.initializers.GlorotUniform` 实现。" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T22:04:44.392344Z", "iopub.status.busy": "2022-12-14T22:04:44.391915Z", "iopub.status.idle": "2022-12-14T22:04:44.396883Z", "shell.execute_reply": "2022-12-14T22:04:44.396265Z" }, "id": "IM0yJos25FG5" }, "outputs": [], "source": [ "class DenseLayer(tf.Module):\n", "\n", " def __init__(self, out_dim, weight_init=xavier_init, activation=tf.identity):\n", " # Initialize the dimensions and activation functions\n", " self.out_dim = out_dim\n", " self.weight_init = weight_init\n", " self.activation = activation\n", " self.built = False\n", "\n", " def __call__(self, x):\n", " if not self.built:\n", " # Infer the input dimension based on first call\n", " self.in_dim = x.shape[1]\n", " # Initialize the weights and biases using Xavier scheme\n", " self.w = tf.Variable(xavier_init(shape=(self.in_dim, self.out_dim)))\n", " self.b = tf.Variable(tf.zeros(shape=(self.out_dim,)))\n", " self.built = True\n", " # Compute the forward pass\n", " z = tf.add(tf.matmul(x, self.w), self.b)\n", " return self.activation(z)" ] }, { "cell_type": "markdown", "metadata": { "id": "X-7MzpjgyHg6" }, "source": [ "接下来,为按顺序执行层的 MLP 模型构建一个类。请谨记,由于维度推断,模型变量只有在第一个密集层调用序列之后才可用。" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T22:04:44.400216Z", "iopub.status.busy": "2022-12-14T22:04:44.399635Z", "iopub.status.idle": "2022-12-14T22:04:44.403490Z", "shell.execute_reply": "2022-12-14T22:04:44.402923Z" }, "id": "6XisRWiCyHAb" }, "outputs": [], "source": [ "class MLP(tf.Module):\n", "\n", " def __init__(self, layers):\n", " self.layers = layers\n", " \n", " @tf.function\n", " def __call__(self, x, preds=False): \n", " # Execute the model's layers sequentially\n", " for layer in self.layers:\n", " x = layer(x)\n", " return x" ] }, { "cell_type": "markdown", "metadata": { "id": "luXKup-43nd7" }, "source": [ "初始化具有以下架构的 MLP 模型:\n", "\n", "- 前向传递:ReLU(784 x 700) x ReLU(700 x 500) x Softmax(500 x 10)\n", "\n", "softmax 激活函数不需要由 MLP 应用。它会在损失函数和预测函数中分别计算。" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T22:04:44.406487Z", "iopub.status.busy": "2022-12-14T22:04:44.405961Z", "iopub.status.idle": "2022-12-14T22:04:44.409914Z", "shell.execute_reply": "2022-12-14T22:04:44.409365Z" }, "id": "VmlACuki3oPi" }, "outputs": [], "source": [ "hidden_layer_1_size = 700\n", "hidden_layer_2_size = 500\n", "output_size = 10\n", "\n", "mlp_model = MLP([\n", " DenseLayer(out_dim=hidden_layer_1_size, activation=tf.nn.relu),\n", " DenseLayer(out_dim=hidden_layer_2_size, activation=tf.nn.relu),\n", " DenseLayer(out_dim=output_size)])" ] }, { "cell_type": "markdown", "metadata": { "id": "tyBATDoRmDkg" }, "source": [ "### 定义损失函数\n", "\n", "交叉熵损失函数是处理多类分类问题的绝佳选择,因为它会根据模型的概率预测来衡量数据的负对数似然。分配给真实类的概率越高,损失则越低。交叉熵损失的方程如下:\n", "\n", "$$L = -\\frac{1}{n}\\sum_{i=1}^{n}\\sum_{i=j}^{n} {y_j}^{[i]}⋅\\log(\\hat{{y_j}}^{[i]})$$\n", "\n", "其中\n", "\n", "- $\\underset{n\\times m}{\\hat{y}}$:预测类分布的矩阵\n", "- $\\underset{n\\times m}{y}$:真实类的独热编码矩阵\n", "\n", "`tf.nn.sparse_softmax_cross_entropy_with_logits` 函数可用于计算交叉熵损失。此函数不需要模型的最后一层应用 softmax 激活函数,也不需要对类标签进行独热编码" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T22:04:44.412966Z", "iopub.status.busy": "2022-12-14T22:04:44.412494Z", "iopub.status.idle": "2022-12-14T22:04:44.415708Z", "shell.execute_reply": "2022-12-14T22:04:44.415120Z" }, "id": "rskOYA7FVCwg" }, "outputs": [], "source": [ "def cross_entropy_loss(y_pred, y):\n", " # Compute cross entropy loss with a sparse operation\n", " sparse_ce = tf.nn.sparse_softmax_cross_entropy_with_logits(labels=y, logits=y_pred)\n", " return tf.reduce_mean(sparse_ce)" ] }, { "cell_type": "markdown", "metadata": { "id": "BvWxED1km8jh" }, "source": [ "编写一个基本的准确率函数,计算训练期间正确分类的比例。为了从 softmax 输出生成类预测,返回与最大类概率相对应的索引。 " ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T22:04:44.419072Z", "iopub.status.busy": "2022-12-14T22:04:44.418507Z", "iopub.status.idle": "2022-12-14T22:04:44.421947Z", "shell.execute_reply": "2022-12-14T22:04:44.421419Z" }, "id": "jPJMWx2UgiBm" }, "outputs": [], "source": [ "def accuracy(y_pred, y):\n", " # Compute accuracy after extracting class predictions\n", " class_preds = tf.argmax(tf.nn.softmax(y_pred), axis=1)\n", " is_equal = tf.equal(y, class_preds)\n", " return tf.reduce_mean(tf.cast(is_equal, tf.float32))" ] }, { "cell_type": "markdown", "metadata": { "id": "JSiNRhTOnKZr" }, "source": [ "### 训练模型\n", "\n", "与标准梯度下降相比,使用优化器可以显著加快收敛速度。Adam 优化器实现方式如下。请参阅[优化器](https://tensorflow.google.cn/guide/core/optimizers_core)指南,以详细了解如何使用 TensorFlow Core 设计自定义优化器。" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T22:04:44.425187Z", "iopub.status.busy": "2022-12-14T22:04:44.424710Z", "iopub.status.idle": "2022-12-14T22:04:44.431522Z", "shell.execute_reply": "2022-12-14T22:04:44.430938Z" }, "id": "iGIBDk3cAv6a" }, "outputs": [], "source": [ "class Adam:\n", "\n", " def __init__(self, learning_rate=1e-3, beta_1=0.9, beta_2=0.999, ep=1e-7):\n", " # Initialize optimizer parameters and variable slots\n", " self.beta_1 = beta_1\n", " self.beta_2 = beta_2\n", " self.learning_rate = learning_rate\n", " self.ep = ep\n", " self.t = 1.\n", " self.v_dvar, self.s_dvar = [], []\n", " self.built = False\n", " \n", " def apply_gradients(self, grads, vars):\n", " # Initialize variables on the first call\n", " if not self.built:\n", " for var in vars:\n", " v = tf.Variable(tf.zeros(shape=var.shape))\n", " s = tf.Variable(tf.zeros(shape=var.shape))\n", " self.v_dvar.append(v)\n", " self.s_dvar.append(s)\n", " self.built = True\n", " # Update the model variables given their gradients\n", " for i, (d_var, var) in enumerate(zip(grads, vars)):\n", " self.v_dvar[i].assign(self.beta_1*self.v_dvar[i] + (1-self.beta_1)*d_var)\n", " self.s_dvar[i].assign(self.beta_2*self.s_dvar[i] + (1-self.beta_2)*tf.square(d_var))\n", " v_dvar_bc = self.v_dvar[i]/(1-(self.beta_1**self.t))\n", " s_dvar_bc = self.s_dvar[i]/(1-(self.beta_2**self.t))\n", " var.assign_sub(self.learning_rate*(v_dvar_bc/(tf.sqrt(s_dvar_bc) + self.ep)))\n", " self.t += 1.\n", " return " ] }, { "cell_type": "markdown", "metadata": { "id": "osEK3rqpYfKd" }, "source": [ "现在,编写一个自定义训练循环以使用小批量梯度下降来更新 MLP 参数。使用小批量进行训练既可以提高内存效率,又可以加快收敛速度。" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T22:04:44.434740Z", "iopub.status.busy": "2022-12-14T22:04:44.434268Z", "iopub.status.idle": "2022-12-14T22:04:44.438768Z", "shell.execute_reply": "2022-12-14T22:04:44.438224Z" }, "id": "CJLeY2ao1aw6" }, "outputs": [], "source": [ "def train_step(x_batch, y_batch, loss, acc, model, optimizer):\n", " # Update the model state given a batch of data\n", " with tf.GradientTape() as tape:\n", " y_pred = model(x_batch)\n", " batch_loss = loss(y_pred, y_batch)\n", " batch_acc = acc(y_pred, y_batch)\n", " grads = tape.gradient(batch_loss, model.variables)\n", " optimizer.apply_gradients(grads, model.variables)\n", " return batch_loss, batch_acc\n", "\n", "def val_step(x_batch, y_batch, loss, acc, model):\n", " # Evaluate the model on given a batch of validation data\n", " y_pred = model(x_batch)\n", " batch_loss = loss(y_pred, y_batch)\n", " batch_acc = acc(y_pred, y_batch)\n", " return batch_loss, batch_acc" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T22:04:44.441857Z", "iopub.status.busy": "2022-12-14T22:04:44.441263Z", "iopub.status.idle": "2022-12-14T22:04:44.447285Z", "shell.execute_reply": "2022-12-14T22:04:44.446637Z" }, "id": "oC85kuZgmh3q" }, "outputs": [], "source": [ "def train_model(mlp, train_data, val_data, loss, acc, optimizer, epochs):\n", " # Initialize data structures\n", " train_losses, train_accs = [], []\n", " val_losses, val_accs = [], []\n", "\n", " # Format training loop and begin training\n", " for epoch in range(epochs):\n", " batch_losses_train, batch_accs_train = [], []\n", " batch_losses_val, batch_accs_val = [], []\n", "\n", " # Iterate over the training data\n", " for x_batch, y_batch in train_data:\n", " # Compute gradients and update the model's parameters\n", " batch_loss, batch_acc = train_step(x_batch, y_batch, loss, acc, mlp, optimizer)\n", " # Keep track of batch-level training performance\n", " batch_losses_train.append(batch_loss)\n", " batch_accs_train.append(batch_acc)\n", "\n", " # Iterate over the validation data\n", " for x_batch, y_batch in val_data:\n", " batch_loss, batch_acc = val_step(x_batch, y_batch, loss, acc, mlp)\n", " batch_losses_val.append(batch_loss)\n", " batch_accs_val.append(batch_acc)\n", "\n", " # Keep track of epoch-level model performance\n", " train_loss, train_acc = tf.reduce_mean(batch_losses_train), tf.reduce_mean(batch_accs_train)\n", " val_loss, val_acc = tf.reduce_mean(batch_losses_val), tf.reduce_mean(batch_accs_val)\n", " train_losses.append(train_loss)\n", " train_accs.append(train_acc)\n", " val_losses.append(val_loss)\n", " val_accs.append(val_acc)\n", " print(f\"Epoch: {epoch}\")\n", " print(f\"Training loss: {train_loss:.3f}, Training accuracy: {train_acc:.3f}\")\n", " print(f\"Validation loss: {val_loss:.3f}, Validation accuracy: {val_acc:.3f}\")\n", " return train_losses, train_accs, val_losses, val_accs" ] }, { "cell_type": "markdown", "metadata": { "id": "FvbfXlN5lwwB" }, "source": [ "将 MLP 模型以 128 的批次大小训练 10 个周期。GPU 或 TPU 等硬件加速器也有助于加快训练速度。 " ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T22:04:44.450365Z", "iopub.status.busy": "2022-12-14T22:04:44.449893Z", "iopub.status.idle": "2022-12-14T22:05:46.852045Z", "shell.execute_reply": "2022-12-14T22:05:46.851201Z" }, "id": "zPlT8QfxptYl" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch: 0\n", "Training loss: 0.223, Training accuracy: 0.934\n", "Validation loss: 0.121, Validation accuracy: 0.962\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch: 1\n", "Training loss: 0.080, Training accuracy: 0.975\n", "Validation loss: 0.097, Validation accuracy: 0.971\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch: 2\n", "Training loss: 0.047, Training accuracy: 0.986\n", "Validation loss: 0.085, Validation accuracy: 0.977\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch: 3\n", "Training loss: 0.033, Training accuracy: 0.990\n", "Validation loss: 0.111, Validation accuracy: 0.971\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch: 4\n", "Training loss: 0.027, Training accuracy: 0.991\n", "Validation loss: 0.095, Validation accuracy: 0.976\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch: 5\n", "Training loss: 0.022, Training accuracy: 0.992\n", "Validation loss: 0.099, Validation accuracy: 0.976\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch: 6\n", "Training loss: 0.017, Training accuracy: 0.994\n", "Validation loss: 0.108, Validation accuracy: 0.975\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch: 7\n", "Training loss: 0.018, Training accuracy: 0.994\n", "Validation loss: 0.104, Validation accuracy: 0.976\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch: 8\n", "Training loss: 0.016, Training accuracy: 0.995\n", "Validation loss: 0.104, Validation accuracy: 0.979\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch: 9\n", "Training loss: 0.014, Training accuracy: 0.995\n", "Validation loss: 0.116, Validation accuracy: 0.976\n" ] } ], "source": [ "train_losses, train_accs, val_losses, val_accs = train_model(mlp_model, train_data, val_data, \n", " loss=cross_entropy_loss, acc=accuracy,\n", " optimizer=Adam(), epochs=10)" ] }, { "cell_type": "markdown", "metadata": { "id": "j_RVmt43G12R" }, "source": [ "### 性能评估\n", "\n", "首先,编写一个绘图函数来呈现模型在训练期间的损失和准确率。 " ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T22:05:46.855811Z", "iopub.status.busy": "2022-12-14T22:05:46.855137Z", "iopub.status.idle": "2022-12-14T22:05:46.859615Z", "shell.execute_reply": "2022-12-14T22:05:46.859024Z" }, "id": "VXTCYVtNDjAM" }, "outputs": [], "source": [ "def plot_metrics(train_metric, val_metric, metric_type):\n", " # Visualize metrics vs training Epochs\n", " plt.figure()\n", " plt.plot(range(len(train_metric)), train_metric, label = f\"Training {metric_type}\")\n", " plt.plot(range(len(val_metric)), val_metric, label = f\"Validation {metric_type}\")\n", " plt.xlabel(\"Epochs\")\n", " plt.ylabel(metric_type)\n", " plt.legend()\n", " plt.title(f\"{metric_type} vs Training epochs\");" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T22:05:46.863009Z", "iopub.status.busy": "2022-12-14T22:05:46.862426Z", "iopub.status.idle": "2022-12-14T22:05:47.029068Z", "shell.execute_reply": "2022-12-14T22:05:47.028467Z" }, "id": "DC-qIvZbHo0G" }, "outputs": [ { "data": { "image/png": "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bfvkyZMNwPjss88MwzCMP//80wCMWbNmXbSOd9991wCMY8eOFan+vXv3Gs7OzsbLL79st33z5s2Gi4uL3fauXbsagDF9+nTbtqysLCM4ONjo37+/bduaNWsMwJg6dWqB8+UfY8qUKXbbJ06caADG//3f/9m2ZWdnGx07djR8fHyM1NRUwzAMIyEhwQAMT09P48CBA7Z94+PjDcB49NFHbdsGDRpk1KxZ0+5nu379+ovWdr789ywhIcEwjLLxXu3YscMAjEmTJtltf/DBBw0fHx8jIyPDMAzDeOSRRww/Pz+7z1pRXeg9vNjn2DAM27nPt3LlygKflyVLlhiAsWTJEtu2wn6u8t/782saMmSIARgvvPCC3blbt25tREVF2e7PmTPHAIyJEyfatuXl5RnXX399oT4PL774ouHt7W38/fffdtufeuopw9nZ2di/f79djYX5fLZq1cqoXr26ceLECdu2jRs3Gk5OTsbgwYNt24ryNyYmJsa2zTAM49FHHzWcnZ2N5ORkwzAMY+7cuQZwwWOJSNGou5GIXJTVamXevHn07t2btm3bFnjcYrHY3R8xYgTOzs62+4sWLSI7O5sxY8bg5ORkt5+fnx//+9//APD39wfgl19+ISMj44K15H/b/91339l1f7icb7/9FqvVSlxcHMePH7fdgoODadCgAUuWLLHb38fHx66PupubG+3bt2fPnj2FPqe7uzv33HOP3baffvqJ4OBgBg0aZNvm6urKww8/TFpaGr/99pvd/n379rVrCWjfvj3R0dH89NNPtm2DBw/m0KFDdq/hyy+/xNPTk/79+xe6Xigb71XDhg1p1aqV7VthML9Fnz17Nr1798bT09N2/PT0dBYuXFik11hY//wcA7ZzA+Tk5HDixAnq169PQEAA69evv+wxi/u5uv/+++3ud+nSxe658+fPx9XVlREjRti2OTk5MWrUqEIdf9asWXTp0oXAwEC735OYmBjy8vL4/fff7fa/3OczKSmJDRs2MHToUIKCgmz7tWjRgu7du9v2K+rfmJEjR9pt69KlC3l5eezbtw8499n78ccfycnJKdRrF5ELU0gQkYs6duwYqampNG/evFD7161b1+5+/v+4GzVqZLfdzc2NiIgI2+N169Zl7NixfPLJJ1StWpXY2Fj+85//2PVxHzhwIJ07d2b48OHUqFGD22+/nZkzZ172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pKWlERUVxZNPPomfnx//+9//uPvuu6lXrx7t27e/7DmsViu33norNWrUID4+npSUFLvxC/l8fX2ZNm0aNWvWZPPmzYwYMQJfX1/+9a9/MXDgQLZs2cL8+fNZtGgRAP7+/gWOkZ6eTmxsLB07dmTNmjUcPXqU4cOHM3r0aLsgtGTJEkJCQliyZAm7du1i4MCBtGrVihEjRlzwNfzvf/+jX79+PP3000yfPp3s7Gx++uknu33eeustxo8fz3PPPQfAunXriIuLY8KECQwcOJAVK1bw4IMPUqVKFYYOHcratWt5+OGH+eKLL+jUqRMnT55k2bJlgNmFatCgQbzxxhv069eP06dPs2zZsot+uZmcnMz111/P8OHDeffdd8nMzOTJJ58kLi6OX3/91bbf559/ztixY4mPj2flypUMHTqUzp070717d9asWUP16tWZOnUqPXv2xNnZ2fa8Xbt2MWfOHL799lucnZ2xWq22gPDbb7+Rm5vLqFGjGDhwIEuXLrV73syZM/nhhx9ITU1l2LBhPPjgg3z55Zdce+21RERE8MUXX/DEE08AkJOTw5dffskbb7xxwddZ1Pc7NzeXvn37MmLECL7++muys7NZvXq17XN+55130rp1az788EOcnZ3ZsGEDrq6uhTr3FTGkgJSUFAMwUlJSHF2KYRiGcftHK42wJ380vli519GliIhIBZCZmWls3brVyMzMPLcxK80wnvNzzC0rrdC1b9u2zQCMJUuW2LZ16dLFuOuuuy76nJtuusl47LHHbPe7du1qPPLII7b7YWFhxrvvvmsYhmH88ssvhouLi3Hw4EHb4z///LMBGHPnzr3oOd58800jKirKdv+5554zWrZsWWC/84/z3//+1wgMDDTS0s69/v/973+Gk5OTcfjwYcMwDGPIkCFGWFiYkZuba9tnwIABxsCBAy9aS8eOHY0777zzoo+HhYUZffv2tdt2xx13GN27d7fb9sQTTxhNmzY1DMMw5syZY/j5+RmpqakFjrdu3ToDMPbuLdx1yosvvmj06NHDbltiYqIBGDt27DAMw3yPrrnmGrt92rVrZzz55JO2+xd6T5577jnD1dXVOHr0qG3bggULDGdnZ2P//v22bX/99ZcBGKtXr7Y9z9nZ2Thw4IBtn59//tlwcnIykpKSDMMwjNdff91o0qSJ7fE5c+YYPj4+du/fPxXl/T5x4oQBGEuXLr3gsXx9fY1p06Zd9Fznu+Dv+FmFvc5VS0I5EB0RxMo9J4hPOMldHcIcXY6IiFRErl7mN/qOOnchNW7cmE6dOvHZZ5/RrVs3du3axbJly3jhhRcAyMvL45VXXmHmzJkcPHiQ7OxssrKyCj3mYNu2bYSGhlKz5rlWlY4dOxbYb8aMGbz//vvs3r2btLQ0cnNz8fPzK/TryD9Xy5Yt8fY+14rSuXNnrFYrO3bsoEaNGgA0a9bM7pvykJAQNm/efNHjbtiw4aKtDPnatm1boJY+ffrYbevcuTMTJ04kLy+P7t27ExYWRkREBD179qRnz57069cPLy8vWrZsyQ033EBkZCSxsbH06NGD2267jcDAwAuee+PGjSxZsgQfH58Cj+3evZuGDRsCFBhfEhISwtGjRy/5ugDCwsKoVq2a3WsLDQ0lNDTUtq1p06YEBASwbds22rVrB0CdOnWoVauWbZ+OHTva3ovg4GCGDh3KM888w6pVq+jQoQPTpk0jLi7O7v27lMu939deey1Dhw4lNjaW7t27ExMTQ1xcHCEhIQCMHTuW4cOH88UXXxATE8OAAQOoV69eoc59JTQmoRyIrnt28PKeExqXICIipcNiMbv8OOJ2tjtFYQ0bNow5c+Zw+vRppk6dSr169ejatSsAb775Ju+99x5PPvkkS5YsYcOGDcTGxpboANaVK1dy5513cuONN/Ljjz/y559/8vTTT5faINl/dimxWCxYrdaL7u/p6XnZYxb2wjafr68v69ev5+uvvyYkJITx48fTsmVLkpOTcXZ2ZuHChfz88880bdqUSZMm0ahRIxISEi54rLS0NHr37s2GDRvsbvljQfIV9XVf6WsrrOrVq9O7d2+mTp3KkSNH+Pnnn7n33ntL9BxTp05l5cqVdOrUiRkzZtCwYUNWrVoFmOMm/vrrL2666SZ+/fVXmjZtyty5c0v0/OdTSCgHWtcJwM3ZiaOns9h3IsPR5YiIiDhUXFwcTk5OfPXVV0yfPp17773X1m97+fLl9OnTh7vuuouWLVsSERHB33//XehjN2nShMTERJKSkmzb8i/S8q1YsYKwsDCefvpp2rZtS4MGDWyDS/O5ubmRl5d32XNt3LjRboDv8uXLcXJyolGjRoWu+Z9atGjB4sWLi/ScJk2asHz5crtty5cvp2HDhrZWDBcXF2JiYnjjjTfYtGkTe/futY0hsFgsdO7cmeeff54///wTNze3i17AtmnThr/++ovw8HDq169vdyvKBb6rq+tlf8b5ry0xMZHExETbtq1bt5KcnEzTpk1t2/bv38+hQ+da01atWlXgvRg+fDgzZszgv//9L/Xq1aNz586Frrew73fr1q0ZN24cK1asoHnz5nz11Ve2xxo2bMijjz7KggULuPXWW5k6dWqhz19UCgnlgIerMy1DzQFP8QlaL0FERCo3Hx8fBg4cyLhx40hKSmLo0KG2xxo0aMDChQtZsWIF27Zt47777rObxeZyYmJiaNiwIUOGDGHjxo0sW7aMp59+2m6fBg0asH//fr755ht2797N+++/X+CCODw8nISEBDZs2MDx48fJysoqcK4777wTDw8PhgwZwpYtW1iyZAkPPfQQd999t62r0ZV47rnn+Prrr3nuuefYtm0bmzdv5vXXX7/kcx577DEWL17Miy++yN9//83nn3/O5MmTefzxxwH48ccfef/999mwYQP79u1j+vTpWK1WGjVqRHx8PK+88gpr165l//79fPvttxw7dowmTZpc8FyjRo3i5MmTDBo0iDVr1rB7925++eUX7rnnnkJd9OcLDw9n8eLFHD58mFOnTl10v5iYGCIjI7nzzjtZv349q1evZvDgwXTt2tWu21X+e5H/vj/88MPExcURHBxs2yc2NhY/Pz9eeukl7rnnnkLXCpd/vxMSEhg3bhwrV65k3759LFiwgJ07d9KkSRMyMzMZPXo0S5cuZd++fSxfvpw1a9Zc9GdcEhQSyolzXY60XoKIiMiwYcM4deoUsbGxduMHnnnmGdq0aUNsbCzdunUjODiYvn37Fvq4Tk5OzJ07l8zMTNq3b8/w4cN5+eWX7fa55ZZbePTRRxk9ejStWrVixYoVPPvss3b79O/fn549e3LddddRrVq1C07D6uXlxS+//MLJkydp164dt912GzfccAOTJ08u2g/jH7p168asWbP4/vvvadWqFddffz2rV6++5HPatGnDzJkz+eabb2jevDnjx4/nhRdesAWwgIAAvv32W66//nqaNGnClClT+Prrr2nWrBl+fn78/vvv3HjjjTRs2JBnnnmGt99++6KLxtWsWZPly5eTl5dHjx49iIyMZMyYMQQEBODkVPhL07fffpuFCxcSGhpK69atL7qfxWLhu+++IzAw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cDYkrN9/iuxcK24uFW6JDRERERE564qu9IKDg2ndujVOTk6kpqYyb948fH19ady4cUnXJ2VE/eo+VPF240yOlU0Hkh1djoiIiIiUoiKHhLi4OCZPngyYaya0bduWuLg4WrRowZw5c0q8QCkbLBbLeV2ONC5BREREpCIrckj4/fffbVOgzp07F8MwSE5O5v333+ell14q8QKl7FBIEBEREakcihwSUlJSCAoyLxbnz59P//798fLy4qabbmLnzp0lXqCUHdF1zRmO1u09SW6e1cHViIiIiEhpKXJICA0NZeXKlaSnpzN//nzbFKinTp3Cw8OjxAuUsqNxsC/+nq6kZ+ex5VCqo8sRERERkVJS5JAwZswY7rzzTmrXrk3NmjXp1q0bYHZDioyMLOn6pAxxcrLQLtxsRVqtqVBFREREKqwih4QHH3yQlStX8tlnn/HHH3/g5GQeIiIiQmMSKoHo/HEJezQuQURERKSiKvI6CQBt27albdu2GIaBYRhYLBZuuummkq5NyqDoiLMtCXtPkmc1cHayOLgiERERESlpV7ROwvTp04mMjMTT0xNPT09atGjBF198UdK1SRnUNMQPH3cXTp/JZVuSxiWIiIiIVERFDgnvvPMODzzwADfeeCMzZ85k5syZ9OzZk/vvv5933323NGqUMsTF2Ym24YEArNZUqCIiIiIVUpG7G02aNIkPP/yQwYMH27bdcsstNGvWjAkTJvDoo4+WaIFS9rSvG8TSHceITzjBvdfUdXQ5IiIiIlLCitySkJSURKdOnQps79SpE0lJSSVSlJRt+eslrE44idVqOLgaERERESlpRQ4J9evXZ+bMmQW2z5gxgwYNGpRIUVK2tajtj6erM6cycth5NM3R5YiIiIhICStyd6Pnn3+egQMH8vvvv9O5c2cAli9fzuLFiy8YHqTicXV2IioskD92HWd1wgkaBfs6uiQRERERKUFFbkno378/8fHxVK1alXnz5jFv3jyqVq3K6tWr6devX2nUKGVQ+7PrJazS4GURERGRCueK1kmIiori//7v/0q6FilHzl9ULX+tDBERERGpGAoVElJTCz8fvp+f3xUXI+VHy9AA3FycOJ6WxZ7j6dSr5uPokkRERESkhBQqJAQEBFz2m+L8b5Pz8vJKpDAp2zxcnWkdGkB8wklWJ5xUSBARERGpQAoVEpYsWVLadUg5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MWKE5s6da9nf2NioH/7whwoEArrhhhu0fv36zL6mpiZVV1dr2LBh8vv9uuGGG3qEGgBA7xASAAAXxaJFizRz5kzt2rVL1dXVeuSRR7Rv3z5JUjgc1tSpU1VQUKCGhgZ99NFH+tvf/mYJAfX19aqtrdXs2bO1e/durV+/Xtdff73lPV588UU9/PDD+ve//637779f1dXVOn36dOb99+7dq40bN2rfvn2qr69XcXHx5fsDAMAVxEilUim7iwAA5LZZs2ZpzZo18vl8lu0LFy7UwoULZRiG5syZo/r6+sy+O++8U+PGjdN7772nFStW6Je//KWOHDmiYDAoSfrkk0/04IMP6ujRoyotLdVVV12lRx99VC+//HLWGgzD0HPPPaeXXnpJUjp45OXlaePGjZo2bZoeeughFRcXa9WqVZforwAAgwdzEgAAvfL973/fEgIkqbCwMPN44sSJln0TJ07Uzp07JUn79u3TLbfckgkIklRVVSXTNLV//34ZhqGjR49q8uTJ563h5ptvzjwOBoMaMmSITpw4IUn6+c9/rpkzZ2rHjh2aMmWKZsyYoUmTJl3Q7woAgx0hAQDQK8FgsMfwn4vF7/f36nVut9vy3DAMmaYpSZo+fboOHz6sTz75RJs2bdLkyZNVW1urt99++6LXCwBXOuYkAAAuis8++6zH8zFjxkiSxowZo127dikcDmf2b9u2TQ6HQ6NHj1YoFFJ5ebk2b97crxqGDRummpoarVmzRkuXLtXy5cv79fMAYLCikwAA6JVYLKZjx45Ztrlcrszk4I8++kiVlZW666679P7772v79u1auXKlJKm6ulqLFy9WTU2NXnjhBZ08eVLz5s3Tz372M5WWlkqSXnjhBc2ZM0clJSWaPn26WlpatG3bNs2bN69X9T3//PO6/fbbNXbsWMViMW3YsCETUgAAfUNIAAD0yl/+8heNGDHCsm306NH68ssvJaVXHlq7dq2eeOIJjRgxQr///e914403SpICgYD++te/6qmnntL48eMVCAQ0c+ZMLVmyJPOzampqFI1G9e677+qZZ55RcXGxfvSjH/W6Po/Ho2effVaHDh2S3+/X3XffrbVr116E3xwABh9WNwIA9JthGFq3bp1mzJhhdykAgIuAOQkAAAAALAgJAAAAACyYkwAA6DdGrgLAlYVOAgAAAAALQgIAAAAAC0ICAAAAAAtCAgAAAAALQgIAAAAAC0ICAAAAAAtCAgAAAAALQgIAAAAAi/8H2ldZr4OVfT0AAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_metrics(train_losses, val_losses, \"cross entropy loss\")" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T22:05:47.032193Z", "iopub.status.busy": "2022-12-14T22:05:47.031929Z", "iopub.status.idle": "2022-12-14T22:05:47.199733Z", "shell.execute_reply": "2022-12-14T22:05:47.199141Z" }, "id": "P-w2xk2PIDve" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAwkAAAIjCAYAAABI21doAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAACF/UlEQVR4nOzdd3gU9drG8e+m9xBICCQEAgGlCKEjqICIhiIKIkVRmuKRoiIqRWnCUV4sHBQ82EHAAgJyUBQErCBNmiCgSCf0lkBC2u68fwxZsiSBJAR2k9yf69qLzOzs7LNLlLlnfs9vLIZhGIiIiIiIiFzk5uwCRERERETEtSgkiIiIiIiIA4UEERERERFxoJAgIiIiIiIOFBJERERERMSBQoKIiIiIiDhQSBAREREREQcKCSIiIiIi4kAhQUREREREHCgkiIhIkdS7d2+io6ML9NqxY8disVgKt6BiomXLltxyyy3OLkNEnEwhQURECpXFYsnT46effnJ2qSIikguLYRiGs4sQEZHiY/bs2Q7LM2fOZNmyZcyaNcth/d133014eHiB3yc9PR2bzYa3t3e+X5uRkUFGRgY+Pj4Ffv/iqmXLlpw8eZJt27Y5uxQRcSIPZxcgIlISJCUl4e/v7+wybohHHnnEYXnNmjUsW7Ys2/rLJScn4+fnl+f38fT0LFB9AB4eHnh46J9AEZHcaLiRiBRJ+/fvZ8CAAdx88834+vpSpkwZunTpwr59+7Jte/bsWZ599lmio6Px9vamQoUK9OzZk5MnT9q3SUlJYezYsdx00034+PhQvnx5HnjgAXbv3g3ATz/9lOMQmX379mGxWJgxY4Z9Xe/evQkICGD37t20a9eOwMBAevToAcCvv/5Kly5dqFixIt7e3kRFRfHss89y4cKFbHXv3LmTrl27EhYWhq+vLzfffDMvvfQSAD/++CMWi4Wvvvoq2+s+++wzLBYLq1evzvG7+/3337FYLHzyySfZnlu6dCkWi4VvvvkGgHPnzjF48GD7d1e2bFnuvvtuNm7cmOO+8ypz3PuGDRto3rw5fn5+vPjiiwD873//o3379kRERODt7U1MTAzjx4/HarU67OPynoTMv4s33niD999/n5iYGLy9vWnUqBHr1693eG1OPQkWi4VBgwaxcOFCbrnlFry9valVqxZLlizJVv9PP/1Ew4YN8fHxISYmhvfeey9ffQ5r166lTZs2BAcH4+fnR4sWLVi1alWONWb+HgQFBVGmTBmeeeYZUlJSHLbNyMhg/Pjx9s8cHR3Niy++SGpqarb3/u6772jRogWBgYEEBQXRqFEjPvvss2zbbd++nTvvvBM/Pz8iIyN57bXXsm0zZcoUatWqhZ+fHyEhITRs2DDHfYlI0aPTKCJSJK1fv57ffvuN7t27U6FCBfbt28e0adNo2bIl27dvt5+RPn/+PHfccQc7duygb9++1K9fn5MnT7Jo0SIOHTpEaGgoVquVe++9lxUrVtC9e3eeeeYZzp07x7Jly9i2bRsxMTH5ri8jI4O4uDhuv/123njjDXs9X375JcnJyfTv358yZcqwbt06pkyZwqFDh/jyyy/tr//jjz+444478PT05IknniA6Oprdu3fz9ddf88orr9CyZUuioqL49NNP6dSpk8N7f/rpp8TExNC0adMca2vYsCFVqlRh7ty59OrVy+G5OXPmEBISQlxcHABPPvkk8+bNY9CgQdSsWZNTp06xcuVKduzYQf369fP9vWR16tQp2rZtS/fu3XnkkUfsQ49mzJhBQEAAQ4YMISAggB9++IHRo0eTmJjI66+/ftX9fvbZZ5w7d45//etfWCwWXnvtNR544AH27Nlz1asPK1euZMGCBQwYMIDAwEDefvttOnfuzIEDByhTpgwAmzZtok2bNpQvX56XX34Zq9XKuHHjCAsLy9Pn/uGHH2jbti0NGjRgzJgxuLm5MX36dFq1asWvv/5K48aNHbbv2rUr0dHRTJgwgTVr1vD2229z5swZZs6cad/m8ccf55NPPuHBBx/kueeeY+3atUyYMIEdO3Y4BMkZM2bQt29fatWqxYgRIyhVqhSbNm1iyZIlPPzww/btzpw5Q5s2bXjggQfo2rUr8+bNY9iwYdSuXZu2bdsC8MEHH/D000/z4IMP2oPLH3/8wdq1ax32JSJFlCEiUgQlJydnW7d69WoDMGbOnGlfN3r0aAMwFixYkG17m81mGIZhfPzxxwZgTJo0KddtfvzxRwMwfvzxR4fn9+7dawDG9OnT7et69eplAMbw4cPzVPeECRMMi8Vi7N+/376uefPmRmBgoMO6rPUYhmGMGDHC8Pb2Ns6ePWtfd/z4ccPDw8MYM2ZMtvfJasSIEYanp6dx+vRp+7rU1FSjVKlSRt++fe3rgoODjYEDB15xX1czcOBA4/J/blq0aGEAxrvvvptt+5y+o3/961+Gn5+fkZKSYl/Xq1cvo1KlSvblzL+LMmXKOHyu//3vfwZgfP311/Z1Y8aMyVYTYHh5eRn//POPfd2WLVsMwJgyZYp9XYcOHQw/Pz8jPj7evm7Xrl2Gh4dHtn1ezmazGdWqVTPi4uIc/i6Tk5ONypUrG3fffXe2Gu+77z6HfQwYMMAAjC1bthiGYRibN282AOPxxx932O755583AOOHH34wDMMwzp49awQGBhpNmjQxLly4kK2uTJl/N1n/O0pNTTXKlStndO7c2b7u/vvvN2rVqnXFzysiRZeGG4lIkeTr62v/OT09nVOnTlG1alVKlSrlMBRm/vz5xMbGZjvbDtiHhsyfP5/Q0FCeeuqpXLcpiP79+1+x7qSkJE6ePEmzZs0wDINNmzYBcOLECX755Rf69u1LxYoVc62nZ8+epKamMm/ePPu6OXPmkJGRcdXx/926dSM9PZ0FCxbY133//fecPXuWbt262deVKlWKtWvXcvjw4Tx+6rzz9vamT58+2dZn/Y7OnTvHyZMnueOOO0hOTmbnzp1X3W+3bt0ICQmxL99xxx0A7Nmz56qvbd26tcOVozp16hAUFGR/rdVqZfny5XTs2JGIiAj7dlWrVrWfYb+SzZs3s2vXLh5++GFOnTrFyZMnOXnyJElJSdx111388ssv2Gw2h9cMHDjQYTnz9/Tbb791+HPIkCEO2z333HMALF68GIBly5Zx7tw5hg8fnq1h+/Lf84CAAIffIS8vLxo3buzwHZYqVYpDhw5lG8olIsWDQoKIFEkXLlxg9OjRREVF4e3tTWhoKGFhYZw9e5aEhAT7drt3777qnO+7d+/m5ptvLtRGVg8PDypUqJBt/YEDB+jduzelS5cmICCAsLAwWrRoAWCvO/NA7Gp1V69enUaNGvHpp5/a13366afceuutVK1a9YqvjY2NpXr16syZM8e+bs6cOYSGhtKqVSv7utdee41t27YRFRVF48aNGTt2bJ4OtvMiMjISLy+vbOv//PNPOnXqRHBwMEFBQYSFhdkPWLP+3ebm8mCVGRjOnDmT79dmvj7ztcePH+fChQs5fr9X+84Bdu3aBUCvXr0ICwtzeHz44YekpqZm+4zVqlVzWI6JicHNzc3ef7N//37c3NyyvX+5cuUoVaoU+/fvB7D31+TlHggVKlTIFhyyfg8Aw4YNIyAggMaNG1OtWjUGDhyYra9CRIou9SSISJH01FNPMX36dAYPHkzTpk0JDg7GYrHQvXv3bGdiC0NuVxQub6bN5O3tjZubW7Zt7777bk6fPs2wYcOoXr06/v7+xMfH07t37wLV3bNnT5555hkOHTpEamoqa9asYerUqXl6bbdu3XjllVc4efIkgYGBLFq0iIceesghLHXt2pU77riDr776iu+//57XX3+diRMnsmDBgjydOb+SrFcMMp09e5YWLVoQFBTEuHHjiImJwcfHh40bNzJs2LA8fUfu7u45rjfyMOP3tbw2LzLrf/3116lbt26O2wQEBFxxH7n9LhbmzeHy8j3UqFGDv/76i2+++YYlS5Ywf/58/vvf/zJ69GhefvnlQqtFRJxDIUFEiqR58+bRq1cv3nzzTfu6lJQUzp4967BdTEzMVed7j4mJYe3ataSnp+fa2Jp5Nvry/Weepc2LrVu38vfff/PJJ5/Qs2dP+/ply5Y5bFelShWAPM1T3717d4YMGcLnn3/OhQsX8PT0dBgudCXdunXj5ZdfZv78+YSHh5OYmEj37t2zbVe+fHkGDBjAgAEDOH78OPXr1+eVV1655pCQk59++olTp06xYMECmjdvbl+/d+/eQn+vgihbtiw+Pj78888/2Z7Lad3lMocyBQUF0bp16zy9565du6hcubLD+9hsNvvMTpUqVcJms7Fr1y5q1Khh3+7YsWOcPXuWSpUqObz3tm3b8nTVIy/8/f3p1q0b3bp1Iy0tjQceeIBXXnmFESNG6B4UIkWchhuJSJHk7u6e7ezulClTsp3Z79y5M1u2bMlxqtDM13fu3JmTJ0/meAY+c5tKlSrh7u7OL7/84vD8f//733zVnHWfmT+/9dZbDtuFhYXRvHlzPv74Yw4cOJBjPZlCQ0Np27Yts2fP5tNPP6VNmzaEhobmqZ4aNWpQu3Zt5syZw5w5cyhfvrzDgbnVas029KVs2bJERETkOLVmYcjpO0pLS8vX93w9ubu707p1axYuXOjQp/HPP//w3XffXfX1DRo0ICYmhjfeeIPz589ne/7EiRPZ1r3zzjsOy1OmTAGwh7R27doBMHnyZIftJk2aBED79u0BuOeeewgMDGTChAnZplAtyJWSU6dOOSx7eXlRs2ZNDMMgPT093/sTEdeiKwkiUiTde++9zJo1i+DgYGrWrMnq1atZvny5fZrKTC+88ALz5s2jS5cu9O3blwYNGnD69GkWLVrEu+++S2xsLD179mTmzJkMGTKEdevWcccdd5CUlMTy5csZMGAA999/P8HBwXTp0oUpU6ZgsViIiYnhm2++4fjx43muuXr16sTExPD8888THx9PUFAQ8+fPz3Gs/Ntvv83tt99O/fr1eeKJJ6hcuTL79u1j8eLFbN682WHbnj178uCDDwIwfvz4fH2P3bp1Y/To0fj4+PDYY485DJE6d+4cFSpU4MEHHyQ2NpaAgACWL1/O+vXrHa7gFKZmzZoREhJCr169ePrpp7FYLMyaNavQhvsUhrFjx/L9999z22230b9/f6xWK1OnTuWWW27J9ndzOTc3Nz788EPatm1LrVq16NOnD5GRkcTHx/Pjjz8SFBTE119/7fCavXv3ct9999GmTRtWr17N7Nmzefjhh4mNjQXM/pJevXrx/vvv24drrVu3jk8++YSOHTty5513AubVi//85z88/vjjNGrUiIcffpiQkBC2bNlCcnJyjvfNuJJ77rmHcuXKcdtttxEeHs6OHTuYOnUq7du3JzAwMF/7EhEX5IwplURErtWZM2eMPn36GKGhoUZAQIARFxdn7Ny506hUqZLRq1cvh21PnTplDBo0yIiMjDS8vLyMChUqGL169TJOnjxp3yY5Odl46aWXjMqVKxuenp5GuXLljAcffNDYvXu3fZsTJ04YnTt3Nvz8/IyQkBDjX//6l7Ft27Ycp0D19/fPse7t27cbrVu3NgICAozQ0FCjX79+9mk2s+7DMAxj27ZtRqdOnYxSpUoZPj4+xs0332yMGjUq2z5TU1ONkJAQIzg4ONvUlleza9cuAzAAY+XKldn2+8ILLxixsbFGYGCg4e/vb8TGxhr//e9/8/UeuU2Bmtv0matWrTJuvfVWw9fX14iIiDCGDh1qLF26NNsUtLlNgfr6669n2yfgMC1sblOg5jTda06/UytWrDDq1atneHl5GTExMcaHH35oPPfcc4aPj08u34KjTZs2GQ888IBRpkwZw9vb26hUqZLRtWtXY8WKFdlq3L59u/Hggw8agYGBRkhIiDFo0KBsf8/p6enGyy+/bP/9jYqKMkaMGOEwZWymRYsWGc2aNTN8fX2NoKAgo3Hjxsbnn39ufz63v5vLv+/33nvPaN68uf0zxMTEGC+88IKRkJCQp+9ARFybxTBc6PSMiIjkW0ZGBhEREXTo0IGPPvrI2eWUWB07duTPP/+0z2B0rcaOHcvLL7/MiRMn8jyETESksKgnQUSkiFu4cCEnTpxwaIaW6+vChQsOy7t27eLbb7+lZcuWzilIRKSQqSdBRKSIWrt2LX/88Qfjx4+nXr169vstyPVXpUoVevfuTZUqVdi/fz/Tpk3Dy8uLoUOHOrs0EZFCoZAgIlJETZs2jdmzZ1O3bl1mzJjh7HJKlDZt2vD5559z9OhRvL29adq0Ka+++mq2G5+JiBRV6kkQEREREREH6kkQEREREREHCgkiIiIiIuJAPQk5sNlsHD58mMDAQCwWi7PLEREREREpFIZhcO7cOSIiIhxuoHk5hYQcHD58mKioKGeXISIiIiJyXRw8eJAKFSrk+rxCQg4ybyd/8OBBgoKCnFyNiIiIiEjhSExMJCoqyn68mxuFhBxkDjEKCgpSSBARERGRYudqQ+rVuCwiIiIiIg4UEkRERERExIFCgoiIiIiIOFBPQgEZhkFGRgZWq9XZpYgUKnd3dzw8PDT9r4iISAmmkFAAaWlpHDlyhOTkZGeXInJd+Pn5Ub58eby8vJxdioiIiDiBQkI+2Ww29u7di7u7OxEREXh5eemMqxQbhmGQlpbGiRMn2Lt3L9WqVbvijVZERESkeFJIyKe0tDRsNhtRUVH4+fk5uxyRQufr64unpyf79+8nLS0NHx8fZ5ckIiIiN5hOERaQzq5KcabfbxERkZJNRwIiIiIiIuJAIUFERERERBwoJMg1iY6OZvLkyXne/qeffsJisXD27NnrVpOIiIiIXBuFhBLCYrFc8TF27NgC7Xf9+vU88cQTed6+WbNmHDlyhODg4AK9n4iIiIhcf5rdqIQ4cuSI/ec5c+YwevRo/vrrL/u6gIAA+8+GYWC1WvHwuPqvR1hYWL7q8PLyoly5cvl6TXGRlpam+w6IiIhIkaArCYXAMAyS0zJu+MMwjDzXWK5cOfsjODgYi8ViX965cyeBgYF89913NGjQAG9vb1auXMnu3bu5//77CQ8PJyAggEaNGrF8+XKH/V4+3MhisfDhhx/SqVMn/Pz8qFatGosWLbI/f/lwoxkzZlCqVCmWLl1KjRo1CAgIoE2bNg6hJiMjg6effppSpUpRpkwZhg0bRq9evejYsWOun/fUqVM89NBDREZG4ufnR+3atfn8888dtrHZbLz22mtUrVoVb29vKlasyCuvvGJ//tChQzz00EOULl0af39/GjZsyNq1awHo3bt3tvcfPHgwLVu2tC+3bNmSQYMGMXjwYEJDQ4mLiwNg0qRJ1K5dG39/f6KiohgwYADnz5932NeqVato2bIlfn5+hISEEBcXx5kzZ5g5cyZlypQhNTXVYfuOHTvy6KOP5vp9iIiIiOSHriQUggvpVmqOXnrD33f7uDj8vArvr3D48OG88cYbVKlShZCQEA4ePEi7du145ZVX8Pb2ZubMmXTo0IG//vqLihUr5rqfl19+mddee43XX3+dKVOm0KNHD/bv30/p0qVz3D45OZk33niDWbNm4ebmxiOPPMLzzz/Pp59+CsDEiRP59NNPmT59OjVq1OCtt95i4cKF3HnnnbnWkJKSQoMGDRg2bBhBQUEsXryYRx99lJiYGBo3bgzAiBEj+OCDD/jPf/7D7bffzpEjR9i5cycA58+fp0WLFkRGRrJo0SLKlSvHxo0bsdls+fpOP/nkE/r378+qVavs69zc3Hj77bepXLkye/bsYcCAAQwdOpT//ve/AGzevJm77rqLvn378tZbb+Hh4cGPP/6I1WqlS5cuPP300yxatIguXboAcPz4cRYvXsz333+fr9pEREREcqOQIHbjxo3j7rvvti+XLl2a2NhY+/L48eP56quvWLRoEYMGDcp1P7179+ahhx4C4NVXX+Xtt99m3bp1tGnTJsft09PTeffdd4mJiQFg0KBBjBs3zv78lClTGDFiBJ06dQJg6tSpfPvtt1f8LJGRkTz//PP25aeeeoqlS5cyd+5cGjduzLlz53jrrbeYOnUqvXr1AiAmJobbb78dgM8++4wTJ06wfv16e7ipWrXqFd8zJ9WqVeO1115zWDd48GD7z9HR0fz73//mySeftIeE1157jYYNG9qXAWrVqmX/+eGHH2b69On2kDB79mwqVqzocBVDRERE5FooJBQCX093to+Lc8r7FqaGDRs6LJ8/f56xY8eyePFijhw5QkZGBhcuXODAgQNX3E+dOnXsP/v7+xMUFMTx48dz3d7Pz88eEADKly9v3z4hIYFjx47Zz/4DuLu706BBgyue1bdarbz66qvMnTuX+Ph40tLSSE1Ntd8le8eOHaSmpnLXXXfl+PrNmzdTr169XK9+5FWDBg2yrVu+fDkTJkxg586dJCYmkpGRQUpKCsnJyfj5+bF582Z7AMhJv379aNSoEfHx8URGRjJjxgx69+6NxWK5plpFRESk8FhtBklpGSSnWklKyyApNYOkVCtJqRmkWW20q13e2SVekUJCIbBYLIU67MdZ/P39HZaff/55li1bxhtvvEHVqlXx9fXlwQcfJC0t7Yr78fT0dFi2WCxXPKDPafv89Fvk5PXXX+ett95i8uTJ9vH/gwcPttfu6+t7xddf7Xk3N7dsNaanp2fb7vLvdN++fdx7773079+fV155hdKlS7Ny5Uoee+wx0tLS8PPzu+p716tXj9jYWGbOnMk999zDn3/+yeLFi6/4GhEREcmdYRikZtguHchnHtSnWS+uu7ScnHbpYD/J4Wfzz+S0DM6nZpCSnvuxj4ebhba3lHPpE3xF/8hWrptVq1bRu3dv+zCf8+fPs2/fvhtaQ3BwMOHh4axfv57mzZsD5lWCjRs3Urdu3Vxft2rVKu6//34eeeQRwGxS/vvvv6lZsyZgDgPy9fVlxYoVPP7449leX6dOHT788ENOnz6d49WEsLAwtm3b5rBu8+bN2QLP5TZs2IDNZuPNN9/Ezc2cN2Du3LnZ3nvFihW8/PLLue7n8ccfZ/LkycTHx9O6dWuioqKu+L4iIiLFSYbVluWA3fFAPfMgPTnVav6ZlsH51Mu2vfhzclrmNlastms7QZkbDzcL/t4e+Hu54+/tgZ+3BwHe7lhtBh7uCglSBFWrVo0FCxbQoUMHLBYLo0aNynfjbmF46qmnmDBhAlWrVqV69epMmTKFM2fOXDF9V6tWjXnz5vHbb78REhLCpEmTOHbsmD0k+Pj4MGzYMIYOHYqXlxe33XYbJ06c4M8//+Sxxx7joYce4tVXX6Vjx45MmDCB8uXLs2nTJiIiImjatCmtWrXi9ddfZ+bMmTRt2pTZs2ezbds26tWrd8XPUrVqVdLT05kyZQodOnRg1apVvPvuuw7bjBgxgtq1azNgwACefPJJvLy8+PHHH+nSpQuhoaGA2Zfw/PPP88EHHzBz5sxr/IZFRESuH8MwSEm3OQ65udIBe2qWg/qsZ/LTLh34p2Zcv+MRPy93/LzMA3nzTw/8vN0dDvT9vTzMP73dL/5sbuu4zvzZy93Npa8Y5EYhQXI1adIk+vbtS7NmzQgNDWXYsGEkJibe8DqGDRvG0aNH6dmzJ+7u7jzxxBPExcXh7p57T8bIkSPZs2cPcXFx+Pn58cQTT9CxY0cSEhLs24waNQoPDw9Gjx7N4cOHKV++PE8++SRg3s/h+++/57nnnqNdu3ZkZGRQs2ZN3nnnHQDi4uIYNWoUQ4cOJSUlhb59+9KzZ0+2bt16xc8SGxvLpEmTmDhxIiNGjKB58+ZMmDCBnj172re56aab+P7773nxxRdp3Lgxvr6+NGnSxN4MDuYVls6dO7N48eIrTgUrIiJSWDKsNhIupHMmOZ2zyWmcSU7nTHKa/eezyWmcta9L52xyuv3g/jqdpMfT3ZLloD3LQX3mwXyWA3Y/L/eLB/yXBYAs6/083XFzK3oH9NeDxbjWwd/FUGJiIsHBwSQkJBAUFOTwXEpKCnv37qVy5cr4+Pg4qcKSzWazUaNGDbp27cr48eOdXY7T3HXXXdSqVYu333670Pet33MRkeLLvL+T1X4wf+mgPuuBv/mnPRAkpZGYknHN7+3v5X7xID3LgXxOZ+cvrvfLts7xwN/LQ7f8yq8rHedmpSsJ4vL279/P999/T4sWLUhNTWXq1Kns3buXhx9+2NmlOcWZM2f46aef+OmnnxymSRURkZInL2f3zySlZwsEadaCD9cJ9PEgxM+LED9PSjn86UWIf5Z1vl4E+FwKAb46S1+kKCSIy3Nzc2PGjBk8//zzGIbBLbfcwvLly6lRo4azS3OKevXqcebMGSZOnMjNN9/s7HJEpBhLTEnnr6Pn2HEkkd3HzTvDe3m4mQ9390s/e7jh7e6W5Tk3h+e83N3w9sjl+SI6Xruw5XR2P/tBflq2MHDuGs7ue7m7UcrPkxA/L/ufDgf5mQf+WcJAsK8nHu46e18SKCSIy4uKinK4Y3FJd6NnmBKR4s9mMzhwOpkdRxLNx8VgcOjMhRvy/peHhsyfPd3zGUByeM7LI+vz7ld47tLrPNws1xRcMqw2zl7IcjCflP3A/2xy4Z7dD/LxIMTfy34wn3ngX8rX8cA/ayDw83JXQJNcKSSIiIiUIOeyXB3IDAN/HT1Hcpo1x+0jgn2oUT6IauGBeLpbSMuwkZphI81qIy0jyyPLcqr9Z2uO26VbHdsh06zmelJvxDdwdRYLjiHisvDh6e4YMtKths7uS7GjkCAiIlIM2WwGB89kXh3IDAWJHDyd89UBbw83bi4XSI1yQVQvH0iN8kHUKBdEsN+V7/9S0Noyg0FOQSM1h+CRZrVeCiF5Dik57Sfre1wKMVln3zEMSL24zblr+Jy5nd0PueyAv5Sfp7mdr6fO7ovLUEgQEREp4s6nZvDX0Sxh4OLVgaRcrg6UD/ahermLQaB8EDXKBxJdxv+GnY12c7Pg4+aOj2fuU1nfaBlZQ0sOoeJKAcTdzaKz+1LsKCSIiIgUEYZhcOjMBbZn9g4cSWTn0XPsP5Wc4/ZeHm7cFB5AjXJmGKhe3rxSEOLvdYMrd30e7m54uLvhp69GBFBIEBERcUlJqRn8dezSlYGdR86x8+g5zqfmPN49PMjbfmWgerlAapYPonLojbs6ICLFi0KCiIiIE2VeHcjsHdh51AwF+08nk9PtTr3c3agWHkD1cuYwoZrlg6hePojSujogIoVIIUHypWXLltStW5fJkycDEB0dzeDBgxk8eHCur7FYLHz11Vd07Njxmt67sPYjIuIsyWkZ/HXUvCKQ9QrBuVyuDpQN9KZ6+SxhoFwQVcL88dTVARG5zhQSSogOHTqQnp7OkiVLsj3366+/0rx5c7Zs2UKdOnXytd/169fj7+9fWGUCMHbsWBYuXMjmzZsd1h85coSQkJBCfS8RkevBMAziz15gZ5ZZhXYeOcfeU0k5Xh3wdLdQtWygQxioUT6QMgHeN754EREUEkqMxx57jM6dO3Po0CEqVKjg8Nz06dNp2LBhvgMCQFhYWGGVeFXlypW7Ye/lStLS0vDy0jACEVd1Ic3K31l6B3YcPcfOI4kk5jJXfmiAd5ZhQuYMQzFhAbo6ICIuRf9HKgyGAWlJN/6R0+moXNx7772EhYUxY8YMh/Xnz5/nyy+/5LHHHuPUqVM89NBDREZG4ufnR+3atfn888+vuN/o6Gj70COAXbt20bx5c3x8fKhZsybLli3L9pphw4Zx00034efnR5UqVRg1ahTp6ekAzJgxg5dffpktW7ZgsZh3vMys2WKxsHDhQvt+tm7dSqtWrfD19aVMmTI88cQTnD9/3v5879696dixI2+88Qbly5enTJkyDBw40P5eOdm9ezf3338/4eHhBAQE0KhRI5YvX+6wTWpqKsOGDSMqKgpvb2+qVq3KRx99ZH/+zz//5N577yUoKIjAwEDuuOMOdu/eDZjDtS4fmtWxY0d69+7t8J2OHz+enj17EhQUxBNPPHHV7y3T119/TaNGjfDx8SE0NJROnToBMG7cOG655ZZsn7du3bqMGjUq1+9DRC4xDIPDZy+wYscxpv6wi4GfbaTVmz9Ra8wS7n9nFcMXbOWT1ftZt/c0iSkZeLpbqF4ukAfqRfJiu+rMeqwx619qze8jWzPrsSaMaFeDTvUqUL1ckAKCiLgcXUkoDOnJ8GrEjX/fFw+DV96G+nh4eNCzZ09mzJjBSy+9ZL9Ry5dffonVauWhhx7i/PnzNGjQgGHDhhEUFMTixYt59NFHiYmJoXHjxld9D5vNxgMPPEB4eDhr164lISEhx16FwMBAZsyYQUREBFu3bqVfv34EBgYydOhQunXrxrZt21iyZIn94Dw4ODjbPpKSkoiLi6Np06asX7+e48eP8/jjjzNo0CCHIPTjjz9Svnx5fvzxR/755x+6detG3bp16devX46f4fz587Rr145XXnkFb29vZs6cSYcOHfjrr7+oWLEiAD179mT16tW8/fbbxMbGsnfvXk6ePAlAfHw8zZs3p2XLlvzwww8EBQWxatUqMjLyd/fNN954g9GjRzNmzJg8fW8AixcvplOnTrz00kvMnDmTtLQ0vv32WwD69u3Lyy+/zPr162nUqBEAmzZt4o8//mDBggX5qk2kJEhJz3p14Jx9qtGECzmfZCjj72W/30CNi8OFqpYNwMtDB/8iUjQpJJQgffv25fXXX+fnn3+mZcuWgDnUqHPnzgQHBxMcHMzzzz9v3/6pp55i6dKlzJ07N08hYfny5ezcuZOlS5cSEWGGpldffZW2bds6bDdy5Ej7z9HR0Tz//PN88cUXDB06FF9fXwICAvDw8Lji8KLPPvuMlJQUZs6cae+JmDp1Kh06dGDixImEh4cDEBISwtSpU3F3d6d69eq0b9+eFStW5BoSYmNjiY2NtS+PHz+er776ikWLFjFo0CD+/vtv5s6dy7Jly2jdujUAVapUsW//zjvvEBwczBdffIGnp3mX0ptuuumq393lWrVqxXPPPeew7krfG8Arr7xC9+7defnllx0+D0CFChWIi4tj+vTp9pAwffp0WrRo4VC/SEmSlmEj/uwFDpxO5sDpZA6eTmb/qST+OX6evSeTHO7Am8nDzUJMWMClMHAxGJQN9LnxH0BE5DpSSCgMnn7mWX1nvG8+VK9enWbNmvHxxx/TsmVL/vnnH3799VfGjRsHgNVq5dVXX2Xu3LnEx8eTlpZGamoqfn55e58dO3YQFRVlDwgATZs2zbbdnDlzePvtt9m9ezfnz58nIyODoKCgfH2WHTt2EBsb69A0fdttt2Gz2fjrr7/sIaFWrVq4u1+6o2f58uXZunVrrvs9f/48Y8eOZfHixRw5coSMjAwuXLjAgQMHANi8eTPu7u60aNEix9dv3ryZO+64wx4QCqphw4bZ1l3te9u8eXOu4QegX79+9O3bl0mTJuHm5sZnn33Gf/7zn2uqU8SVGYbB6aQ0hxBw6ecLHE64cMVRm6X9vcwwUO5SGKhaNgBvD9e5S7CIyPWikFAYLJY8D/txtscee4ynnnqKd955h+nTpxMTE2M/4H399dd56623mDx5MrVr18bf35/BgweTlpZWaO+/evVqevTowcsvv0xcXJz9rPubb75ZaO+R1eUH6xaLBZvNluv2zz//PMuWLeONN96gatWq+Pr68uCDD9q/A19f3yu+39Wed3Nzw7jsqCSnHonLZ4zKy/d2tffu0KED3t7efPXVV3h5eZGens6DDz54xdeIuLrUDCvxZy5kCwEHTl/g4OnkXG88lsnX052Kpf2IKu1HxdJ+VCztS3SoPzXLBxEW6G0fmikiUtIoJJQwXbt25ZlnnuGzzz5j5syZ9O/f3/6P4KpVq7j//vt55JFHALPH4O+//6ZmzZp52neNGjU4ePAgR44coXz58gCsWbPGYZvffvuNSpUq8dJLL9nX7d+/32EbLy8vrFbrVd9rxowZJCUl2Q+oV61ahZubGzfffHOe6s3JqlWr6N27t73h9/z58+zbt8/+fO3atbHZbPz888/24UZZ1alTh08++YT09PQcryaEhYVx5MgR+7LVamXbtm3ceeedV6wrL99bnTp1WLFiBX369MlxHx4eHvTq1Yvp06fj5eVF9+7drxosRJwtt6sB+0+ZPx9JTLnqHA7lg32yhAA/h1AQGuClICAikgOFhBImICCAbt26MWLECBITEx1m1alWrRrz5s3jt99+IyQkhEmTJnHs2LE8h4TWrVtz00030atXL15//XUSExMdDmoz3+PAgQN88cUXNGrUiMWLF/PVV185bBMdHc3evXvZvHkzFSpUIDAwEG9vx7nCe/TowZgxY+jVqxdjx47lxIkTPPXUUzz66KP2oUYFUa1aNRYsWECHDh2wWCyMGjXK4cpDdHQ0vXr1om/fvvbG5f3793P8+HG6du3KoEGDmDJlCt27d2fEiBEEBwezZs0aGjduzM0330yrVq0YMmQIixcvJiYmhkmTJnH27Nk81XW1723MmDHcddddxMTE0L17dzIyMvj2228ZNmyYfZvHH3+cGjVqAGYgEnEFWa8GHDidzIFTyQ6hICntyicN/LwuvxpwKQhUCPHFx1PDg0RE8kshoQR67LHH+Oijj2jXrp1D/8DIkSPZs2cPcXFx+Pn58cQTT9CxY0cSEhLytF83Nze++uorHnvsMRo3bkx0dDRvv/02bdq0sW9z33338eyzzzJo0CBSU1Np3749o0aNYuzYsfZtOnfuzIIFC7jzzjs5e/Ys06dPdwgzAH5+fixdupRnnnmGRo0a4efnR+fOnZk0adI1fTeTJk2ib9++NGvWjNDQUIYNG0ZiYqLDNtOmTePFF19kwIABnDp1iooVK/Liiy8CUKZMGX744QdeeOEFWrRogbu7O3Xr1uW2224DzObxLVu20LNnTzw8PHj22WevehUhr99by5Yt+fLLLxk/fjz/93//R1BQEM2bN3fYT7Vq1WjWrBmnT5+mSZMm1/RdieSVYRicung14GAOIeBqVwMsFigXlP1qQMUy5p9l/HU1QESksFmMywdIC4mJiQQHB5OQkJCtoTYlJYW9e/dSuXJlfHw0m4UULYZhUK1aNQYMGMCQIUNy3U6/55JfqRlWDmXtDTiVtT8gmeQ8Xg3IGgAyQ0FkKV0NEBEpLFc6zs1KVxJESogTJ07wxRdfcPTo0Vz7FkRyc/nVgP2XXQ04moerAeUvvxqQJQjoaoCIiGtRSBApIcqWLUtoaCjvv/8+ISEhzi5HXFBKunk1wHGWoEvNwle7GuDv5Z4tBGT+HBniq6lDRUSKEIUEkRJCIwslw2rj2LlU4s9cIP6sea+AglwNyHrwnzUUlNbVABGRYkMhQUSkmEhKzeDw2QscOnuBw2cvEH/m4p9nL3D4bApHE1Ow5nQb4Sz8vdypWMafiqV9swUBXQ0QESk5FBIKSGdlpTjT77frMQyDE+dTOXw2xeHgPz4zDCRc4Gxy9hvzXc7T3UL5YF8iS/kSdTEIZIaASmX8CfHz1NUAERFRSMivzBtkJScn60ZUUmwlJycD2e9YLddPaoaVowkpF4cCZZ79v3QVIP7sBdIycr9beKYgHw8iSvlSIcSXiFJmGIgo5UtkiPlzWIA3bm4KASIicmUKCfnk7u5OqVKlOH78OGDO16+zblJcGIZBcnIyx48fp1SpUri7a2hJYTAMg8QLGdkO/uOzDAk6cT71qncOtlggPNDHfsB/6eDfh8hSfkSU8iHQR8FORESundNDwjvvvMPrr7/O0aNHiY2NZcqUKTRu3DjHbdPT05kwYQKffPIJ8fHx3HzzzUycONHhZl3nzp1j1KhRfPXVVxw/fpx69erx1ltv0ahRo0KruVy5cgD2oCBS3JQqVcr+ey5XZ7UZHEtMyfHgP/NKwPnUjKvux8fTzX72PzKHqwDlgn3wdHe7AZ9IRERKOqeGhDlz5jBkyBDeffddmjRpwuTJk4mLi+Ovv/6ibNmy2bYfOXIks2fP5oMPPqB69eosXbqUTp068dtvv1GvXj0AHn/8cbZt28asWbOIiIhg9uzZtG7dmu3btxMZGVkodVssFsqXL0/ZsmVJT7/6GGCRosTT01NXEC6TnJZhH/KTtSH40MWfjyWmkHGVhmCAMv5eOQwBunQVQLMDiYiIq3DqHZebNGlCo0aNmDp1KgA2m42oqCieeuophg8fnm37iIgIXnrpJQYOHGhf17lzZ3x9fZk9ezYXLlwgMDCQ//3vf7Rv396+TYMGDWjbti3//ve/81RXXu9EJyJFX+ZNwjIP/nPqBzidlHbV/Xi4WSgX7HPpKkCWnoDIEF8ign3x9VL4EhER53L5Oy6npaWxYcMGRowYYV/n5uZG69atWb16dY6vSU1NxcfHx2Gdr68vK1euBCAjIwOr1XrFbXLbb2pqqn05MTEx359HRFxTWobNbAjOevB/cTagzFCQmoeG4ABvjywH/5fO/mc2CJcN9MFdDcEiIlJMOC0knDx5EqvVSnh4uMP68PBwdu7cmeNr4uLimDRpEs2bNycmJoYVK1awYMECrFbzLqCBgYE0bdqU8ePHU6NGDcLDw/n8889ZvXo1VatWzbWWCRMm8PLLLxfehxMRp0pMSWfxH0eYt+EQGw+cuWpDMEDZQG/72P+sZ/8zrwgE+6ohWERESg6nNy7nx1tvvUW/fv2oXr06FouFmJgY+vTpw8cff2zfZtasWfTt25fIyEjc3d2pX78+Dz30EBs2bMh1vyNGjGDIkCH25cTERKKioq7rZxGRwmW1Gfy2+yTzNhxiybajDlcHvDzcsjQCX7oKkLUhWDcJExERucRpISE0NBR3d3eOHTvmsP7YsWO5zqoSFhbGwoULSUlJ4dSpU0RERDB8+HCqVKli3yYmJoaff/6ZpKQkEhMTKV++PN26dXPY5nLe3t54e3sXzgcTkRtqz4nzzN94iAUb4zmSkGJfX61sAA82qED7OuWJLOWrhmAREZF8cFpI8PLyokGDBqxYsYKOHTsCZuPyihUrGDRo0BVf6+PjQ2RkJOnp6cyfP5+uXbtm28bf3x9/f3/OnDnD0qVLee21167HxxARJ0hMSefbi8OJft9/xr4+yMeD++tG8mCDCtSpEKxgICIiUkBOHW40ZMgQevXqRcOGDWncuDGTJ08mKSmJPn36ANCzZ08iIyOZMGECAGvXriU+Pp66desSHx/P2LFjsdlsDB061L7PpUuXYhgGN998M//88w8vvPAC1atXt+9TRIomq81g9e5TzNtwkCV/HiUl3RxO5GaBFjeF8WCDKO6qURYfTw0bEhERuVZODQndunXjxIkTjB49mqNHj1K3bl2WLFlib2Y+cOAAbm6XbhyUkpLCyJEj2bNnDwEBAbRr145Zs2ZRqlQp+zYJCQmMGDGCQ4cOUbp0aTp37swrr7yCp6eaDkWKor0nk5i/4RALNh7icJbhRFXLBtClQQU61oskPMjnCnsQERGR/HLqfRJcle6TIOJc51LS+XarOZxo/T7H4UT31Y3gwQZRxGo4kYiISL65/H0SRESystkMVu85xbwNh/hu2xGH4UTNbwrjwQYVaF0jXMOJREREbgCFBBFxqn0nk+yzE8WfvWBfHxPmz4MNonigvoYTiYiI3GgKCSJyw51PzeDbP47w5YaDDsOJAn08uC82ggcbVKBuVCkNJxIREXEShQQRuSFsNoM19uFER7mQbt4p3c0Cd1QzhxPdXVPDiURERFyBQoKIXFf7T5mzE82/bDhRlTB/HmxQgQfqVaBcsIYTiYiIuBKFBBEpdOdTM+yzE63be9q+PtDHgw4XhxPV03AiERERl6WQICKFwmYzWLP34nCirZeGE1kscHvVULo0jOIeDScSEREpEhQSROSaHDiVzLyNh5i/4ZDjcKJQfzo3qMAD9SMpH+zrxApFREQkvxQSRCTfkrIMJ1qbdTiRtwf3XhxOVL+ihhOJiIgUVQoJIpInNpvB2r2n7Tc7S05zHE70YIMKxNUqp+FEIiIixYBCgohc0cHTyczbcIj5Gw9x6Myl4USVQ83ZiTrViySilIYTiYiIFCcKCSKSTVJqBt9tO8q8DQdZs+fScKIAbw86xJa/OJwoRMOJREREiimFBBEBzOFE6/aZw4m+3ZrzcKJ7apbD10vDiURERIo7hQSREu7g6WTmbzSHEx08fWk4UXQZP3M4Uf0KRGo4kYiISImikCBSAiWnZfDd1qPM23CI1XtO2dcHeHtwbx1zOFGDShpOJCIiUlIpJIiUEIZhsG7vpeFESVmGEzWLKcODDSrQplZ5DScSERERhQSR4u7QmWTmb4hn/sZDHDidbF9fqYwfD9avQKf6kVQI8XNihSIiIuJqFBJEiqHktAyWbDOHE/22+9JwIn8vd+6tE8GDDSvQUMOJREREJBcKCSLFhGEYrN93hnkbDrL4j0vDicAcTtSloXmzMz8v/WcvIiIiV6ajBZEiLsNq44Nf9/LF+gPsP3VpOFHF0ubsRA9oOJGIiIjkk0KCSBFmtRk89+UW/rf5MGAOJ2pfpzwPNoiiUbSGE4mIiEjBKCSIFFGGYTBy4Vb+t/kwHm4WxtxXi871IzWcSERERK6ZjiZEiiDDMBj/zQ4+X3cQiwX+060uHWIjnF2WiIiIFBNuzi5ARPLvP8v+5uNVewGY+EAdBQQREREpVAoJIkXMuz/v5u0f/gFgbIeadG0U5eSKREREpLhRSBApQmat3sf/fbcTgKFtbqb3bZWdXJGIiIgURwoJIkXEvA2HGPW/PwEYdGdVBrSs6uSKREREpLhSSBApAhb/cYSh87YA0Oe2aJ675yYnVyQiIiLFmUKCiIv7YecxnvliEzYDujeKYvS9NXX/AxEREbmuFBJEXNhv/5zkydkbybAZ3BcbwSudaisgiIiIyHWnkCDiojbsP8PjM38nLcNG6xrhvNk1Fnc3BQQRERG5/hQSRFzQtvgEek9fR3KalTuqhTL14Xp4uus/VxEREbkxdNQh4mJ2HTtHz4/XcS4lg0bRIbz3aAN8PN2dXZaIiIiUIAoJIi5k/6kkeny4ltNJadSpEMxHvRvh5+Xh7LJERESkhFFIEHERh89e4OEP1nL8XCo3hwfySZ/GBPl4OrssERERKYEUEkRcwPFzKfT4cC3xZy9QOdSfWY83JsTfy9lliYiISAmlkCDiZGeS0nj0w3XsPZlEZClfZj/ehLKBPs4uS0REREowhQQRJzqXkk6v6ev469g5wgK9+fTxJkSW8nV2WSIiIlLCKSSIOMmFNCuPzfidPw4lEOLnyaePNyE61N/ZZYmIiIgoJIg4Q2qGlSdm/c66facJ9PZg1mNNuCk80NlliYiIiAAKCSI3XLrVxqDPNvHrrpP4erozo28jbokMdnZZIiIiInYKCSI3kNVm8PyXW1i2/RheHm582KshDSqVdnZZIiIiIg4UEkRuEMMweOmrrfxv82E83CxM61Gf26qGOrssERERkWwUEkRuAMMwGP/NDr5YfxA3C0zuXpe7aoQ7uywRERGRHCkkiNwA/1n2Nx+v2gvAxM51uLdOhJMrEhEREcmdQoLIdTbtp928/cM/ALx8Xy26NIxyckUiIiIiV6aQIHIdzVy9j4lLdgIwrE11ejWLdm5BIiIiInmgkCBynXz5+0FG/+9PAJ5qVZX+LWOcXJGIiIhI3igkiFwH3/xxmGHz/wCg722VGXL3TU6uSERERCTvFBJECtmKHccY/MVmbAZ0bxTFqHtrYLFYnF2WiIiISJ4pJIgUolX/nKT/pxvJsBncXzeCVzrVVkAQERGRIkchQaSQbNh/mn4zfyctw8bdNcN5o0ss7m4KCCIiIlL0KCSIFIJt8Qn0nr6e5DQrd1QLZerD9fB0139eIiIiUjTpKEbkGv197ByPfrSWcykZNI4uzfuPNsTbw93ZZYmIiIgUmEKCyDXYdzKJRz5cy5nkdOpUCOaj3g3x9VJAEBERkaJNIUGkgOLPXqDHh2s5fi6V6uUCmdm3MYE+ns4uS0REROSaKSSIFMDxcyk88uFa4s9eoEqoP7Mea0IpPy9nlyUiIiJSKBQSRPLpTFIaj364jr0nk4gs5cvsx5sQFujt7LJERERECo3TQ8I777xDdHQ0Pj4+NGnShHXr1uW6bXp6OuPGjSMmJgYfHx9iY2NZsmSJwzZWq5VRo0ZRuXJlfH19iYmJYfz48RiGcb0/ipQA51LS6TV9HX8dO0fZQG8+69eEiFK+zi5LREREpFA5NSTMmTOHIUOGMGbMGDZu3EhsbCxxcXEcP348x+1HjhzJe++9x5QpU9i+fTtPPvkknTp1YtOmTfZtJk6cyLRp05g6dSo7duxg4sSJvPbaa0yZMuVGfSwpppLTMug7Yz1/HEogxM+TTx9vQqUy/s4uS0RERKTQWQwnnmJv0qQJjRo1YurUqQDYbDaioqJ46qmnGD58eLbtIyIieOmllxg4cKB9XefOnfH19WX27NkA3HvvvYSHh/PRRx/lus3VJCYmEhwcTEJCAkFBQdfyEaWYSM2w8vgnv/PrrpME+njweb9buSUy2NlliYiIiORLXo9znXYlIS0tjQ0bNtC6detLxbi50bp1a1avXp3ja1JTU/Hx8XFY5+vry8qVK+3LzZo1Y8WKFfz9998AbNmyhZUrV9K2bdtca0lNTSUxMdHhIZIp3Wpj0Geb+HXXSfy83JnRp5ECgoiIiBRrHs5645MnT2K1WgkPD3dYHx4ezs6dO3N8TVxcHJMmTaJ58+bExMSwYsUKFixYgNVqtW8zfPhwEhMTqV69Ou7u7litVl555RV69OiRay0TJkzg5ZdfLpwPJsWK1Wbw3NwtLNt+DC8PNz7s2ZAGlUo7uywRERGR68rpjcv58dZbb1GtWjWqV6+Ol5cXgwYNok+fPri5XfoYc+fO5dNPP+Wzzz5j48aNfPLJJ7zxxht88sknue53xIgRJCQk2B8HDx68ER9HXJxhGLz01VYWbTmMh5uFdx+pT7Oqoc4uS0REROS6c9qVhNDQUNzd3Tl27JjD+mPHjlGuXLkcXxMWFsbChQtJSUnh1KlTREREMHz4cKpUqWLf5oUXXmD48OF0794dgNq1a7N//34mTJhAr169ctyvt7c33t6awlIuMQyDcd9s54v1B3GzwFvd69GqevjVXygiIiJSDDjtSoKXlxcNGjRgxYoV9nU2m40VK1bQtGnTK77Wx8eHyMhIMjIymD9/Pvfff7/9ueTkZIcrCwDu7u7YbLbC/QBSrE1a9jfTV+0D4LUHY2lfp7xzCxIRERG5gZx2JQFgyJAh9OrVi4YNG9K4cWMmT55MUlISffr0AaBnz55ERkYyYcIEANauXUt8fDx169YlPj6esWPHYrPZGDp0qH2fHTp04JVXXqFixYrUqlWLTZs2MWnSJPr27euUzyhFz39/+ocpP/wDwPj7a/FggwpOrkhERETkxnJqSOjWrRsnTpxg9OjRHD16lLp167JkyRJ7M/OBAwccrgqkpKQwcuRI9uzZQ0BAAO3atWPWrFmUKlXKvs2UKVMYNWoUAwYM4Pjx40RERPCvf/2L0aNH3+iPJ0XQJ7/t47UlfwEwvG11Hm0a7dyCRERERJzAqfdJcFW6T0LJNPf3gwyd9wcAT7eqypB7bnZyRSIiIkWQYcCpf+DETigfC6UqOrsiySKvx7lOvZIg4iq++eMww+ebAeGx2yvz7N03ObkiERGRIsIw4NRu2PcL7FtpPs5nmZgmrAZUuxuq3QMVbwV3T+fVKnmmkCAl3oodxxj8xWZsBjzUuCIj29fAYrE4uywRERHXZA8Fv2YJBUcdt3H3hjIx5tWEEzvMx29vg3cQVGlpBoZqd0NgzjNaivMpJEiJtuqfk/T/dCMZNoOOdSP4d8dbFBBERESyMgw4vccMBXt/zT0URDWG6NvNR2RD8PSBC2dg9w+wa5n5SD4JOxaZD4BydS4GhnugQkNwc7/xn09ypJ6EHKgnoWT4fd9pHv1oHRfSrcTVCuedh+vj4V6k7i8oIiJS+LKGgswrBeeOOG7j7gUVsoSCCo3MUHAlNhsc2XQxMHwP8RuBLIehviEQc5cZGKreBf66gen1kNfjXIWEHCgkFH/b4hN46P01nEvNoPlNYXzQswHeHjp7ISIiJZA9FKzMEgoOO27j7mUGgeg7LoaChuDpe23ve/4E7F5hBoZ/VkDK2SxPWiCywaVhSeXrgptO5BUGhYRroJBQvP197Bzd3lvNmeR0GkeX5pO+jfH1UkAQEZESwjDgzF4zDGQOH8o1FGS9UnCNoeBKrBkQ/7sZGHZ9D0e3Oj7vHwZV7zYDQ0wr8C11/Wop5hQSroFCQvG172QSXd5bzYlzqcRWCGb2400I9NEsCyIiUoxlDQWZj8R4x23cPLOHAi8/59QLkHgY/lluBobdP0HauUvPWdzNWZIyZ0wqWxPUT5hnCgnXQCGheIo/e4Gu764m/uwFqpcL5IsnbqWUn5ezyxIRESlchgFn9l0WCg45buPmaQ4Zsg8fcnIouJKMNDi45uJVhmXmjElZBUVeCgyVW4B3gHPqLCIUEq6BQkLxc/xcCt3eW8Pek0lUCfVnzr+aEhbo7eyyRERErp1hwNn9l4YOXTEUZF4paOy6oeBqzuyHfy7OlrTnZ8i4cOk5N0+Ivu3SjEllquoqw2UUEq6BQkLxciYpje7vr+GvY+eoEOLLl082pXzwdRxX6Qznj4NPKfDQlRERkRLh8isFCQcdn3fzNBt/M0NBVJOiGwquJP0C7Ft18SrDUvN7ySok+lJgiL79+vZVFBEKCddAIaH4SExJp8cHa9kan0B4kDdz/9WUSmX8nV1W4UlLhh/+DWv+C6WioP1/oFprZ1clIiKF7cz+y0LBAcfn3TwuhoKLw4eiGoNXMfr3Li8yb/KW2fy8fxVY0y497+EDlZtfmjEpJNpppTqTQsI1UEgoHpLTMuj18TrW7ztDaX8v5v7rVqqWDXR2WYVn7y+w6KnsZ01qPQBt/g8Cw51SloiIFIKzBxyHD+UaCrJeKShhoeBqUs+b/1Zm9jJcPgQr9KZLgaFisxJzNV4h4RooJBR9KelW+s38nV93nSTQx4PP+93KLZHBzi6rcKQkwvIx8PvH5nJQJLSdCPtXw9ppYNjAOxjuHgv1e2teaRGRouDsgSxXCn41l7Ny84CI+pdCQcVbFQrywzDg+I5LgeHAajCsl573CoAqLc3AUPVuCI50WqnXm0LCNVBIKNrSrTb6z97I8h3H8PNyZ9ZjTWhQKcTZZRWOXcvh62cunQ1p0AfuHgc+F39PD282nz+y2VyOagL3Tobwmk4oVkREcnX24GWhYL/j8xZ3iKyfZfhQE83aU5gunIU9P5mB4Z9lcP6Y4/Pht1yaMalCY3D3cEaV14VCwjVQSCi6rDaDZ+dsZtGWw3h7uDG9TyOaxRSD27pfOANLX4LNn5rLIdFw3xRzbOXlrBmw/gOzVyHtvHn2qdnT0GKoGrZERJwl4VCW4UNXCgWZw4duVSi4UWw2OPqHGRh2fQ+H1gNZDo99gs0buFW7x7zKEBDmtFILg0LCNVBIKJpsNoMRC7Yy5/eDeLpbeP/RhtxZvayzy7p2O76BxUMunuWwwK39odXIq19mTjgE374Af31rLodEw73/Mf9HJyIi11fCoUuBYN/K7P1jFneIqHcxFNwBFZuAdzHqmyvKkk7B7h/MwPDPcrhw2vH5iPqXrjJE1AM3d+fUWUAKCddAIaHoMQyDl7/ezozf9uFmgakP16dd7fLOLuvaJJ00D/L/XGAul6kG979j/kOSHzu+Mfdz7rC5XLsLxE0o8mdCRERcSkL8xVDwi0JBcWKzQvzGSzMmZQ7nzeRXBqq2NgNDTCvwK+2UMvNDIeEaKCQUPW8s/YupP/4DwJtdYuncoIKTK7oGhgHb5sN3QyH5lPkPy21PQ4vh4OlTsH2mJMKPr8Da9wDDvKfC3eOg3qNqbC6J9q+G9R9CWpI5ztbNE9w9L/6ZddnDfOT2nH395csXt7Ovy20fOexTNz0SV5WeAueOmI/Ewxf/PGKegDm8Gc7sddze4uYYCqKaXOofk6Lr3DHz6sKu782rDamJl56zuJn9C5lXGcrVdsn/pykkXAOFhKLlnR//4fWlfwEwvuMtPHprJSdXdA0Sj5hDizKHCIXfAvdPNf+hKQzxG8zG5qNbzeWKzcwhSGWrF87+xbUd3mz2qvyzzNmV5M4ta2hwv3IIuVp4cfO4QrC5wj48/cA/7OIj1ByP7IL/0EshMQyz7yvzoD8xPucgkHzqyvuxuEH5ulmuFNyqUFDcWdPh4LpLMyYd/9Px+YBylwJDlZYu8/ugkHANFBKKjhmr9jL26+0AjGhbnX+1iHFyRQVkGGZT8pIXITXBPFhp/gLc/mzhz9tszYC175pXFtKTzfe6fTDc8XzBr1SIazu+0/z73rHIXHbzgLo9zDnWbenm74Qt3fwHz5Zx6c9cn8tpOZftbBm5P2fYnPu95JWbpxkYAsIcw4N/GPiXvWw5rMTMtV4kWNPh3NHLDvoPO/587ghkpORtf+7eEFQeAiMu/lkegiLM4aAKBZJw6FJg2POT+W9sJjcPqNj00t2fw2522skHhYRroJBQNMxdf5Ch8/8A4Om7qjHk7pucXFEBnT1gnt3f/YO5HFHf7D243tOWnj0Ai583b2MPUDoG7p1knu2Q4uH0Xvh5Ivwx5+IBuQXqdIWWw6F0FWdXZ84oYg8PeQgkeQklhRFeUs9D8kk4fwLSzuX/c/kEXxYmcggSAWUvXqUopasUBZWSePFAP/7S2f7Ey4YDnT+Owyw1V+Jb2jzgDyx/WRCIMNcHRYBviP6+JG8yUs07PmfOmHTqH8fngyvCY0vN36sbTCHhGigkuL6vtxzmmS82YTPg8dsr81L7GliK2v+4bTb4/SNYPtacqtTdG1q9BLcOvHHzMRuGeXb526Fw/qi5LvYhuOff5gGMFE2Jh+GX12HjTPPgF6D6vXDnS7pnRn6lXzAnEUg6cfHP41l+PmE+zp+49HPWmzPlhZvnxfBwlTBhv0rhfX0+pyuxWc2De4eD/hyCQNr5vO3PzcM88M88628PAlkDQXlNES3X16ndl3oZ9v5qBs7ndjoldCokXAOFBNe2fPsxnpy9gQybwcNNKvJKx1uKXkA4tRsWPWWeZQBzPuz7p0JoNefUk5IAK8abzawY5hm1e/4NdR/WWbOiJOkUrJxk/j1mDp+IaWVOmRvZwLm1lQQ2G6SczTlMnL88XJw0hxbml3dQDkOecggT/mHmVQpXm5ggLemyg/2sf178+fyxvIct72DHYT/ZAkAE+IW63vcgJVtaMpzeA+VuccrbKyRcA4UE17Vy10n6frKetAwbnepF8maXWNzcitBBrM0Ka6aZzaMZF8DTH1qPhUaPu8Y/YgfXwzeD4dg2c7nS7dBhsvPCi+RNSgL8NhXW/PfS2dWKTaHVKIi+zbm1Se7SU8xhTVcME1kemVeF8srNwzxAzgwUATlcqcj6uJaeJJvNbOzNPOi3N/9eFgRS8hiMLG5m02fWAOAQBC4OBbra/WJEJBuFhGugkOCaNh44Q48P1nIh3UpcrXDeebg+Hu4ucGCdV8d3wv8GQvzv5nLlFnDf2+ZNzlyJNd082Pxxghlk3L3g9iFwx5CSMdShKElLgnXvw8rJ5hlsgPKx0Go0VL1LV4GKE8PIcpXiKmEi6UTeD8az8gq8cpjwLQXJp3OYBeji8B9bet7ex9P/4sH+5eP+s/zpX/bGDbsUKWEUEq6BQoJr6vruatbtO02Lm8J4v2cDvD2KyB0OremwajL8/BpY08zhAvf8G+r3dO2DuDP7YPFz5hhKMGfvuPc/UPkOp5YlmA1xG2bAL2+Yw1oAQm82e1pq3Ofav1dyY2SkXtZLkRkgjl+2fNIMHHk9wL8iixkmsh7sZz3rn/mnd5B+R0WcKK/HuYrpUiQkp2Ww6eAZAMbdX6voBIQjf8D/Bly6L0G1OPNAOzjSuXXlRUg09Jhn3vH5u+Fwahd8ci/UfQTuGV8k7ipZ7FgzYMvn5oxFCQfNdaUqQcsR5qxFbkXkvwu5/jy8zf/P5OX/NYZhXnm4WphIPm3+d3/57D9BkRcbg8uZ95kQkWJBIUGKhI37z5JuNYgI9qFiaT9nl3N1GanmlYNVk81xxL4h0PY1qN2laJ1Bs1jgls4QcxeseBl+/xg2z4a/v4O4V6FOt6L1eYoqm80Maz9NuDSNXmB5814a9R7VvPxybSwWcyiRbykIrersakTERSgkSJGwZo95p8tbq5Rx/ZmMDv1u9h6c2Gku17wf2r1hjvMtqnxLmVdA6nQ37+lwYgd89S/Y/Jm5vkwRvYmdqzMM+HuJ2eie2UzuV8bsEWn0mKZsFBGR60YhQYqErCHBZaUlm3e1XfNf88ZV/mFmOKjV0dmVFZ6KTeBfv8DqqeaQl70/w3+bmme0b3tGZ7QL056f4YfxcGi9uewdBM2eglv7g3egc2sTEZFiTyFBXF5yWgZbDp0FXDgk7FsFiwaZ8x6DOQynzf8Vz3H7Hl7mTEe1OsI3Q2DPj/Djv2Hrl+Z0qZWaObvCou3gevhhHOz9xVz28IUm/zJDWHH8fRIREZekkCAuL7MfoXywD1GlXWx4Reo5847J6z80lwMjzAPlm+KcWdWNUboKPPoVbJ0HS0fAyb9geltz1qbWL+uANr+ObjWHFf29xFx294IGfeCO5yAw3Lm1iYhIiaOQIC7PZfsR/llhjs/PnGWmfi9z1h+fYOfWdSNZLFCnizkn//KxsPET2DgT/voO4iZA7QfV2Hw1J3fBj6+ajckAFneo+xC0GAalKjq3NhERKbEUEsTlXQoJLnJm+sJZ+P4l2DTbXC5VEe6bAlVaOrMq5/Irbd4YLrY7fD3YvKqw4HHY8hm0f9O86iCOzh6Anyaa35FhM9fd0hlavqgZZkRExOkUEsSlXUizulY/ws5v4Ztn4fxRwGKOFW81CrwDnF2Za6jUDJ5cCavegl9eh90/mI3NLYZC06fU2Axw7hj8+gb8Pv3SDaxuamveCK1cbefWJiIicpFCgri0jQfO2PsRnHp/hKRT8N1Q2DbPXC5TFe6bCpWaOq8mV+XhBS1egFsegG8Gmw24K8aZvQv3TjZnSCqJkk+b981Y+z5kXDDXVW5hhsyoRk4tTURE5HIKCeLSnN6PYBjw51fw7QuQfBIsbuY0lC1HaI76qykTAz0XwR9zYOmLcHw7fHwPNOwLd40x771QEqQkwppp5rSxqYnmugqNzHBQpYVzaxMREcmFQoK4NKf2I5w7Coufg53fmMtla8L9UyGywY2vpaiyWMw+hWr3wPejzLs1//4x7PgG2v4f1Hqg+DY2p1+AdR/Ayv/AhdPmuvDa0GqkOftVcf3cIiJSLCgkiMu6kGZl88GzwA3uRzAM2PI5LBkOKQng5gF3PG9ORakx9QXjVxo6vmMGhm+ehVO7YF5f847N7d+EkGhnV1h4MtJg00z4+fWLvSuYw9PufAlqdgQ3N6eWJyIikhcKCeKynNKPcPagOY7+n+XmcvlYuP8dNZQWlsp3QP9V5tn1X980v+d3boWWw6HpQHD3dHaFBWezmkOrfppgzlwEEFwRWg6DOt3BXf+7FRGRokP/aonLuqH9CDYbbJwB34+GtHPg7m0euDZ7Wgd3hc3j4nd7S2fzqsK+X2H5mIt3bH4LKjR0doX5Y7PBjkXmvQ5O/mWuCwg3rz416GV+XhERkSJGRz/ism5YP8LpPbDoafNgFaBCY/PqQdhN1/d9S7rQatDra3PI0fcvwbFt8GFraPQ43DXK9W9KZxiwaxn8MB6O/mGu8w2B2wZD4yfAy4mzcYmIiFwjhQRxSVn7EZpUvk79CDYrrH3PnJ4z4wJ4+ELrMeYBnpv79XlPcWSxQL0eZiPv9yPNXpD1H8COr6HtRKh5v2s2+O5bCSvGw8E15rJXgDlcqulA1w83IiIieaCQIC4psx+hXJAPlcpchzOyJ/6C/w2CQ+vM5eg7zDsG687AzuEfCp3ehdiHzCFIp3fDl73gpjbQ7nXzrtauIH6DGQ72/Ggue/hA435w27Pg7wI3+xMRESkkCgniktZmGWpUqP0I1gz47S346f/AmgZegXDPOKjfW7POuIIqLaD/b2ZT88r/wN9LzJux3fkiNOnvvP6QY9vhx1cuTYfr5gH1e0HzFyCovHNqEhERuY4UEsQlrdljzitfqFOfHt0K/xsIR7aYy1Xvhg6TIbhC4b2HXDtPH2j1EtR+EL4eDAd+M4ci/THHbGy+kfepOLXbnK1o6zzAMG+mV6e7OWNRcZq2VURE5DIKCeJyCv3+CBlp8Osb5tlpW4Y5ZrzNRHPOflcc7y6msJuh92LzBmzfjzJD3oetzZ6RO18Cn6Dr994Jh+Dn12DTbDCs5rqa95vvG3bz9XtfERERF6GQIC5n04EzpFlthdOPEL/B7D04vt1crn6vefOuwHLXXqhcf25uUL8n3NQWlr4IW+fC2ndh+yKzV6HGvYX7fuePw6+T4PePzOFoYN4t+s6XIKJu4b6XiIiIC1NIEJezpjD6EdIvmPPWr54Khg38Qs2DylqddPWgKAoIg84fQN2H4JshcGYvzOkBN7eHdq9d+5CxC2dg1dtmAElPNtdVut2cirXirddev4iISBGjkCAu55r7EfavNnsPTu82l2t3MYcXafaZoi+mFQxYDb+8Dqvegr8Ww96fodXIgk1dm3oe1k6DVVMgNcFcF1HfDAdV7lSgFBGREkshQVzKNfUjpJ6HFS/Dug8AAwLKwb3/gertCr1OcSJPX7hrtBn+vn4GDq6FJcNhyxdmY3NehgWlp8DvH5t9KsknzXVla5rDiqq3VzgQEZESTyFBXEqB+xF2/whfPw1nD5jL9R6Fe/4NvqWuS53iAsrWgD5LYOMnsGwMHNkMH9xpTpV654vgHZD9NdZ0sxn5l9chMd5cF1LZDAe3PKCb6ImIiFykkCAuJbMfoUle+xFSEszpMTfONJeDK5rTmla96/oVKa7DzQ0a9oGb28HSEbBtPqx5B7b/D9q/ATe3NbezWc3nfnzV7GcACIqEFkOhbg9w93TeZxAREXFBCgniUvLVj/DXEvPuvOcOm8uN+kHrMeAdeB0rFJcUGA4PfmzesXnxEPOK0ufdoUYHqHGfOWPRiR3mtv5hcMdz0KCPeU8GERERyUYhQVxGSnoe+xGST8N3w8zpMAFKV4H7pkL0bde/SHFt1e6GAWvh54nw2xTY8bX5APP+GM2ehiZP5jwUSUREROwUEsRlbLzYjxAe5E10bv0Ify6Eb5+HpBPm3W+bDoSWL4LXNd5PQYoPLz+4+2WzsXnxEDj2JzT5FzR7CnxDnF2diIhIkaCQIC4j61CjbP0IGanmTDZbPjeXw6rD/e9AhYY3uEopMsrdAo99b/YjqCFZREQkX9ycXQDAO++8Q3R0ND4+PjRp0oR169blum16ejrjxo0jJiYGHx8fYmNjWbJkicM20dHRWCyWbI+BAwde748i1+DSTdQuG2qUdBI+uc8MCBZ3aP4C/OsXBQTJGwUEERGRfHN6SJgzZw5DhgxhzJgxbNy4kdjYWOLi4jh+/HiO248cOZL33nuPKVOmsH37dp588kk6derEpk2b7NusX7+eI0eO2B/Lli0DoEuXLjfkM0n+paRb2XzgLHBZSDjxN3x4FxxcA97B8Mg888ZZHt7OKVRERESkBLAYhmE4s4AmTZrQqFEjpk6dCoDNZiMqKoqnnnqK4cOHZ9s+IiKCl156yeGqQOfOnfH19WX27Nk5vsfgwYP55ptv2LVrV56m1UxMTCQ4OJiEhASCgoIK+MkkP37bfZKHP1hLeJA3a0bcZf497f4R5vYy74RbqhI8PBfKVnd2qSIiIiJFVl6Pc516JSEtLY0NGzbQunVr+zo3Nzdat27N6tWrc3xNamoqPj6O0xb6+vqycuXKXN9j9uzZ9O3bN9eAkJqaSmJiosNDbqxs/Qi/T4fZnc2AENUE+v2ggCAiIiJygzg1JJw8eRKr1Up4eLjD+vDwcI4ePZrja+Li4pg0aRK7du3CZrOxbNkyFixYwJEjR3LcfuHChZw9e5bevXvnWseECRMIDg62P6Kiogr8maRgMvsRmlYuBUtfgm8Gg2E1Z6jpuQj8Q51an4iIiEhJ4vSehPx66623qFatGtWrV8fLy4tBgwbRp08f3Nxy/igfffQRbdu2JSIiItd9jhgxgoSEBPvj4MGD16t8yUFmP4IfKXTYORRWm0PPaPkiPPCBbnglIiIicoM5dQrU0NBQ3N3dOXbsmMP6Y8eOUa5cuRxfExYWxsKFC0lJSeHUqVNEREQwfPhwqlSpkm3b/fv3s3z5chYsWHDFOry9vfH2ViOss2w8cIbS1hN84jMJ/717wd0bOv4Xaj/o7NJERERESiSnXknw8vKiQYMGrFixwr7OZrOxYsUKmjZtesXX+vj4EBkZSUZGBvPnz+f+++/Pts306dMpW7Ys7du3L/TapfDs+WMVC71HczN7wS8Uen+jgCAiIiLiRE6/mdqQIUPo1asXDRs2pHHjxkyePJmkpCT69OkDQM+ePYmMjGTChAkArF27lvj4eOrWrUt8fDxjx47FZrMxdOhQh/3abDamT59Or1698PBw+seU3Oz4mgf/6IePJZWzATGUemwBhEQ7uyoRERGREs3pR8/dunXjxIkTjB49mqNHj1K3bl2WLFlib2Y+cOCAQ79BSkoKI0eOZM+ePQQEBNCuXTtmzZpFqVKlHPa7fPlyDhw4QN++fW/kx5G8Mgz47W2MZWPwweAXa22ius+lVEjuvSMiIiIicmM4/T4Jrkj3SbjOMtJg8RDYNAuAmRl3M82nH7+9dE+e7mMhIiIiIgWT1+Ncp19JkBLmwhmY8yjs+xUsbvwY/Syjd9TnvpiyCggiIiIiLqJAjcs//vhjYdchJcGp3fBhazMgeAXAQ1/wbsrdgIVbq5RxdnUiIiIiclGBQkKbNm2IiYnh3//+t+4pIHmzbxV8eBec+geCKkDfpaRUbs2mg2cBuLVKaefWJyIiIiJ2BQoJ8fHxDBo0iHnz5lGlShXi4uKYO3cuaWlphV2fFAebP4OZ95tDjSLqQ78VUO4WNh04S1qGjbKB3lQO9Xd2lSIiIiJyUYFCQmhoKM8++yybN29m7dq13HTTTQwYMICIiAiefvpptmzZUth1SlFks8GKcbCwP9jSoeb90HsxBJo3yluz5xQAt1Ypo34EERERERdyzTdTq1+/PiNGjGDQoEGcP3+ejz/+mAYNGnDHHXfw559/FkaNUhSlJcO83vDrm+byHc/BgzPAy8++SdaQICIiIiKuo8AhIT09nXnz5tGuXTsqVarE0qVLmTp1KseOHeOff/6hUqVKdOnSpTBrlaLi3DGY0R62/w/cPKHjNLhrNGS930W61d6P0ET9CCIiIiIupUBToD711FN8/vnnGIbBo48+ymuvvcYtt9xif97f35833niDiAjdGKvEOboNPusGiYfANwS6zYbo27NtltmPEBboTRX1I4iIiIi4lAKFhO3btzNlyhQeeOABvL29c9wmNDRUU6WWNH9/D/P6QNp5KFMVHp4LZWJy3FT9CCIiIiKuq0AhYcWKFVffsYcHLVq0KMjupagxDFj7HiwdAYYNou+ArjPBL/dhRGv3ZoYEDTUSERERcTUF6kmYMGECH3/8cbb1H3/8MRMnTrzmoqQIsWbAt8/DkmFmQKj3KDyy4IoBISXdysYDZwE1LYuIiIi4ogKFhPfee4/q1atnW1+rVi3efffday5KioiUBPisK6z/ELDA3ePgving4XXFl20+qH4EEREREVdWoOFGR48epXz58tnWh4WFceTIkWsuSoqAM/vNBuUTO8DDFzp/ADU65Oml6kcQERERcW0FupIQFRXFqlWrsq1ftWqVZjQqCQ6ugw/vMgNCQDno+12eAwJkDQnqRxARERFxRQW6ktCvXz8GDx5Meno6rVq1Asxm5qFDh/Lcc88VaoHiYrbOg4UDwJoK5WrDQ3MgODLPL1c/goiIiIjrK1BIeOGFFzh16hQDBgwgLS0NAB8fH4YNG8aIESMKtUBxEYYBP78GP71qLt/cDh74ALwD8rUb9SOIiIiIuL4ChQSLxcLEiRMZNWoUO3bswNfXl2rVquV6zwQp4tJTYNFTsHWuudx0kNmk7Oae711lDjVqUrm0+hFEREREXFSBQkKmgIAAGjVqVFi1iCtKOglf9ICDa8DiDu3fhIZ9Cry7rE3LIiIiIuKaChwSfv/9d+bOncuBAwfsQ44yLViw4JoLExdwfKc5xenZ/eAdDF0/gZg7C7w79SOIiIiIFA0Fmt3oiy++oFmzZuzYsYOvvvqK9PR0/vzzT3744QeCg4MLu0Zxht0/wkf3mAEhJBoeX3ZNAQFgy8V+hNAAb2LC1I8gIiIi4qoKFBJeffVV/vOf//D111/j5eXFW2+9xc6dO+natSsVK1Ys7BrlRvv9Y5jdGVIToGJTePwHCLv5mne7Zs9pwJz6VP0IIiIiIq6rQCFh9+7dtG/fHgAvLy+SkpKwWCw8++yzvP/++4VaoNxANisseRG+eRYMK9TpBj3/B/6FMzRI/QgiIiIiRUOBQkJISAjnzp0DIDIykm3btgFw9uxZkpOTC686uXFSz5sNymveMZfvfAk6vQcehTNjldmPcAZQSBARERFxdQVqXG7evDnLli2jdu3adOnShWeeeYYffviBZcuWcddddxV2jXK9JRyCz7rDsa3g7g2dpsEtnQv1LbYcPEuq+hFEREREioQChYSpU6eSkpICwEsvvYSnpye//fYbnTt3ZuTIkYVaoFxnhzeZAeH8UfAPg+6fQ1ThT2urfgQRERGRoiPfISEjI4NvvvmGuLg4ANzc3Bg+fHihFyY3wPZFsOAJyLgAZWvCQ19ASKXr8lbqRxAREREpOvLdk+Dh4cGTTz5pv5IgRZBhwMr/wNxHzYBQtTX0XXrdAoL6EURERESKlgI1Ljdu3JjNmzcXcilyQ2SkwaJBsHysudz4CXhoDvgEXbe3VD+CiIiISNFSoJ6EAQMGMGTIEA4ePEiDBg3w93c88KtTp06hFCeFLPk0zO0J+34Fixu0+T9o8q/r/raZ/QhN1I8gIiIiUiQUKCR0794dgKefftq+zmKxYBgGFosFq9VaONVJ4Tm1Gz7rCqf+Aa9AePBjuOmeG/LW6kcQERERKVoKFBL27t1b2HXI9bRvJcx5BC6cgeAoeHgOhNe6IW+dmnGpH6FpldI35D1FRERE5NoUKCRUqnR9GlzlOtj0KXz9DNjSIbKBOcVpYPgNe/stBxMu9iN4ERMWcMPeV0REREQKrkAhYebMmVd8vmfPngUqRgqRzQY/jIeVk8zlWp2g4zTw9L2hZWQONWpSpYz6EURERESKiAKFhGeeecZhOT09neTkZLy8vPDz81NIcLa0ZFj4JGz/n7nc/AVo+SK4FWgyq2uifgQRERGRoqdAIeHMmTPZ1u3atYv+/fvzwgsvXHNRcg3OHYXPH4LDG8HdC+6bArHdnVJKaoaVDfvVjyAiIiJS1BQoJOSkWrVq/N///R+PPPIIO3fuLKzdSn4c3QqfdYfEQ+BbGrp/CpWaOa0c9SOIiIiIFE2FFhLAvBvz4cOHC3OXkld/L4V5fSHtPJSpBj3mQukqTi1J/QgiIiIiRVOBQsKiRYsclg3D4MiRI0ydOpXbbrutUAqTPDIMWPsuLH0RDBtUbg5dZ4JviLMrUz+CiIiISBFVoJDQsWNHh2WLxUJYWBitWrXizTffLIy6JC+sGfDdUPj9I3O5fi9o/ya4ezq3Lhz7EW6trH4EERERkaKkQCHBZrMVdh2SXykJ8GVv2P0DYIF7xkPTQeAiw3oy+xHK+HtRtaz6EURERESKkkLtSZAb5Mw++KwbnNgJnn7Q+UOo3t7ZVTnIOtRI/QgiIiIiRUuBJs7v3LkzEydOzLb+tddeo0uXLtdclFzBgbXwwV1mQAgsD32+c7mAALB2b2ZI0FAjERERkaKmQCHhl19+oV27dtnWt23bll9++eWai5JcbJ0Hn3SA5JNQrg70+wEi6jq7qmwc+hHUtCwiIiJS5BRouNH58+fx8vLKtt7T05PExMRrLkouYxjw80T4aYK5XP1eeOB98PJ3bl25+ONQAinp6kcQERERKaoKdCWhdu3azJkzJ9v6L774gpo1a15zUZJFegos6HcpIDR7GrrOctmAALBmt/oRRERERIqyAl1JGDVqFA888AC7d++mVatWAKxYsYLPP/+cL7/8slALLNGSTsIXD8PBteDmAe0nQYNezq7qqtaoH0FERESkSCtQSOjQoQMLFy7k1VdfZd68efj6+lKnTh2WL19OixYtCrvGkun4TvisK5zdDz7B5tWDKq7/3aofQURERKToK/AUqO3bt6d9e9ebVadY2P0DzO0FqYkQUhkengthNzm7qjxRP4KIiIhI0VegkLB+/XpsNhtNmjRxWL927Vrc3d1p2LBhoRRXIu1cDHMeBcMKFZtBt9ngX3TOyGf2IzSpUlr9CCIiIiJFVIEalwcOHMjBgwezrY+Pj2fgwIHXXFSJVrEphERD7EPQc2GRCgiQtR+haNUtIiIiIpcU6ErC9u3bqV+/frb19erVY/v27ddcVInmVxoeW2b+WcTOxKdl2NSPICIiIlIMFOhKgre3N8eOHcu2/siRI3h4FLjNQTL5lylyAQHgj0NnSUm3Udrfi2rqRxAREREpsgoUEu655x5GjBhBQkKCfd3Zs2d58cUXufvuuwutOCla1uy5NPWp+hFEREREiq4CnfZ/4403aN68OZUqVaJevXoAbN68mfDwcGbNmlWoBUrRsWbPaUBDjURERESKugKFhMjISP744w8+/fRTtmzZgq+vL3369OGhhx7C09OzsGuUIiAtw8bv+xUSRERERIqDAjcQ+Pv7c/vtt1OxYkXS0tIA+O677wC47777Cqc6KTLUjyAiIiJSfBQoJOzZs4dOnTqxdetWLBYLhmE4jEG3Wq2FVqAUDepHEBERESk+CtS4/Mwzz1C5cmWOHz+On58f27Zt4+eff6Zhw4b89NNPhVyiFAXqRxAREREpPgoUElavXs24ceMIDQ3Fzc0Nd3d3br/9diZMmMDTTz+dr3298847REdH4+PjQ5MmTVi3bl2u26anpzNu3DhiYmLw8fEhNjaWJUuWZNsuPj6eRx55hDJlyuDr60vt2rX5/fff8/05JW/UjyAiIiJSvBQoJFitVgIDAwEIDQ3l8OHDAFSqVIm//vorz/uZM2cOQ4YMYcyYMWzcuJHY2Fji4uI4fvx4jtuPHDmS9957jylTprB9+3aefPJJOnXqxKZNm+zbnDlzhttuuw1PT0++++47tm/fzptvvklISEhBPqrkgfoRRERERIqXAvUk3HLLLWzZsoXKlSvTpEkTXnvtNby8vHj//fepUqVKnvczadIk+vXrR58+fQB49913Wbx4MR9//DHDhw/Ptv2sWbN46aWXaNeuHQD9+/dn+fLlvPnmm8yePRuAiRMnEhUVxfTp0+2vq1y5ckE+puRRZj9Ck8rqRxAREREpDgp0JWHkyJHYbDYAxo0bx969e7njjjv49ttvefvtt/O0j7S0NDZs2EDr1q0vFePmRuvWrVm9enWOr0lNTcXHx8dhna+vLytXrrQvL1q0iIYNG9KlSxfKli1LvXr1+OCDD65YS2pqKomJiQ4PyTv1I4iIiIgULwUKCXFxcTzwwAMAVK1alZ07d3Ly5EmOHz9Oq1at8rSPkydPYrVaCQ8Pd1gfHh7O0aNHc33fSZMmsWvXLmw2G8uWLWPBggUcOXLEvs2ePXuYNm0a1apVY+nSpfTv35+nn36aTz75JNdaJkyYQHBwsP0RFRWVp88gZj/Chv1nAIUEERERkeKiQCEhJ6VLX/+hJm+99RbVqlWjevXqeHl5MWjQIPr06YOb26WPYbPZqF+/Pq+++ir16tXjiSeeoF+/frz77ru57nfEiBEkJCTYHwcPHryun6M42Rp/lgvpVvUjiIiIiBQjhRYS8is0NBR3d3eOHTvmsP7YsWOUK1cux9eEhYWxcOFCkpKS2L9/Pzt37iQgIMChD6J8+fLUrFnT4XU1atTgwIEDudbi7e1NUFCQw0PyJnOoUZPKpXFzUz+CiIiISHHgtJDg5eVFgwYNWLFihX2dzWZjxYoVNG3a9Iqv9fHxITIykoyMDObPn8/9999vf+62227LNsPS33//TaVKlQr3AwiQ9SZqGmokIiIiUlwUaHajwjJkyBB69epFw4YNady4MZMnTyYpKck+21HPnj2JjIxkwoQJAKxdu5b4+Hjq1q1LfHw8Y8eOxWazMXToUPs+n332WZo1a8arr75K165dWbduHe+//z7vv/++Uz5jcZaWYeP3fepHEBERESlunBoSunXrxokTJxg9ejRHjx6lbt26LFmyxN7MfODAAYd+g5SUFEaOHMmePXsICAigXbt2zJo1i1KlStm3adSoEV999RUjRoxg3LhxVK5cmcmTJ9OjR48b/fGKPfUjiIiIiBRPFsMwDGcX4WoSExMJDg4mISFB/QlX8M6P//D60r9oe0s5pj3SwNnliIiIiMhV5PU412k9CVL0qR9BREREpHhSSJACydqP0KRKaSdXIyIiIiKFSSFBCiSzHyHEz5ObygY6uxwRERERKUQKCVIgl+6PUEb3RxAREREpZhQSpEAu9SNoqJGIiIhIcaOQIPmWbs1yf4QYNS2LiIiIFDcKCZJvfxxKUD+CiIiISDGmkCD5ljnUSP0IIiIiIsWTQoLkm/oRRERERIo3hQTJF/UjiIiIiBR/CgmSL+pHEBERESn+FBIkXzKHGjWuXFr9CCIiIiLFlEKC5MulfgQNNRIREREprhQSJM/SrTY27L/Yj6CQICIiIlJsKSRInm2NTyA5zUopP09uDlc/goiIiEhxpZAgeXbp/gjqRxAREREpzhQSJM/W7DkNaKiRiIiISHGnkCB5Yt4fQSFBREREpCRQSJA8UT+CiIiISMmhkCB5on4EERERkZJDIUHyRP0IIiIiIiWHQoJclfoRREREREoWhQS5KvUjiIiIiJQsCglyVZn9CI2j1Y8gIiIiUhIoJMhVqR9BREREpGRRSJArSrfa2KB+BBEREZESRSFBrmhbfAJJaVaCfT2pXk79CCIiIiIlgUKCXFHmUCPdH0FERESk5FBIkCvKbFrWUCMRERGRkkMhQXKl+yOIiIiIlEwKCZIr9SOIiIiIlEwKCZIr9SOIiIiIlEwKCZIr9SOIiIiIlEwKCZKjrP0ITaqUdnI1IiIiInIjKSRIjrL2I9QoF+TsckRERETkBlJIkBxl9iM0Vj+CiIiISImjkCA5WrtX/QgiIiIiJZVCgmSTYbWxfm/m/RHUjyAiIiJS0igkSDbbDieqH0FERESkBFNIkGwypz5VP4KIiIhIyaSQINno/ggiIiIiJZtCgjhQP4KIiIiIKCSIA/UjiIiIiIhCgjjIHGrUKFr9CCIiIiIllUKCOLjUj6ChRiIiIiIllUKC2Dn2I6hpWURERKSkUkgQuz8v9iME+XhQo7z6EURERERKKoUEsbt0f4QyuKsfQURERKTEUkgQO/UjiIiIiAgoJMhFGVYb6/edAdSPICIiIlLSKSQIYPYjnE/NUD+CiIiIiCgkiEn9CCIiIiKSSSFBAPUjiIiIiMglCgmifgQRERERcaCQIPZ+hED1I4iIiIgICgnCpaFGTSqXVj+CiIiIiCgkSNZ+BA01EhERERGFhBIvw2rjd/UjiIiIiEgWLhES3nnnHaKjo/Hx8aFJkyasW7cu123T09MZN24cMTEx+Pj4EBsby5IlSxy2GTt2LBaLxeFRvXr16/0xiqTtRxI5p34EEREREcnC6SFhzpw5DBkyhDFjxrBx40ZiY2OJi4vj+PHjOW4/cuRI3nvvPaZMmcL27dt58skn6dSpE5s2bXLYrlatWhw5csT+WLly5Y34OEWO+hFERERE5HJODwmTJk2iX79+9OnTh5o1a/Luu+/i5+fHxx9/nOP2s2bN4sUXX6Rdu3ZUqVKF/v37065dO958802H7Tw8PChXrpz9ERoaeiM+TpGzZs9pQEONREREROQSp4aEtLQ0NmzYQOvWre3r3NzcaN26NatXr87xNampqfj4+Dis8/X1zXalYNeuXURERFClShV69OjBgQMHcq0jNTWVxMREh0dJkGG1sX6vQoKIiIiIOHJqSDh58iRWq5Xw8HCH9eHh4Rw9ejTH18TFxTFp0iR27dqFzWZj2bJlLFiwgCNHjti3adKkCTNmzGDJkiVMmzaNvXv3cscdd3Du3Lkc9zlhwgSCg4Ptj6ioqML7kC5M/QgiIiIikhOnDzfKr7feeotq1apRvXp1vLy8GDRoEH369MHN7dJHadu2LV26dKFOnTrExcXx7bffcvbsWebOnZvjPkeMGEFCQoL9cfDgwRv1cZxK/QgiIiIikhOnhoTQ0FDc3d05duyYw/pjx45Rrly5HF8TFhbGwoULSUpKYv/+/ezcuZOAgACqVKmS6/uUKlWKm266iX/++SfH5729vQkKCnJ4lATqRxARERGRnDg1JHh5edGgQQNWrFhhX2ez2VixYgVNmza94mt9fHyIjIwkIyOD+fPnc//99+e67fnz59m9ezfly5cvtNqLuqz9CE0qKySIiIiIyCVOH240ZMgQPvjgAz755BN27NhB//79SUpKok+fPgD07NmTESNG2Ldfu3YtCxYsYM+ePfz666+0adMGm83G0KFD7ds8//zz/Pzzz+zbt4/ffvuNTp064e7uzkMPPXTDP5+rsvcjeHtQM6JkXDkRERERkbzxcHYB3bp148SJE4wePZqjR49St25dlixZYm9mPnDggEO/QUpKCiNHjmTPnj0EBATQrl07Zs2aRalSpezbHDp0iIceeohTp04RFhbG7bffzpo1awgLC7vRH89lZfYjNFY/goiIiIhcxmIYhuHsIlxNYmIiwcHBJCQkFNv+hMdmrGfFzuO81K4G/Zrn3s8hIiIiIsVHXo9znT7cSG48q81gne6PICIiIiK5UEgogbYfVj+CiIiIiOROIaEEUj+CiIiIiFyJQkIJlBkSNNRIRERERHKikFDCqB9BRERERK5GIaGEUT+CiIiIiFyNQkIJkznUqJH6EUREREQkFwoJJcylfoTSTq5ERERERFyVQkIJon4EEREREckLhYQSZMeRLP0I5dWPICIiIiI5U0goQbL2I3i4669eRERERHKmI8USRP0IIiIiIpIXCgklhNVmsFb9CCIiIiKSBwoJJcSOI4mcS1E/goiIiIhcnUJCCaF+BBERERHJKx0tlhDqRxARERGRvFJIKAHUjyAiIiIi+aGQUAJk9iMEqB9BRERERPJAIaEEsPcjRIeoH0FERERErkpHjCXApX4EDTUSERERkatTSCjmrDaDdepHEBEREZF8UEgo5nYcSSTxYj9CrQj1I4iIiIjI1SkkFHPqRxARERGR/NJRYzG3Zo+GGomIiIhI/igkFGNmP4KalkVEREQkfxQSijH1I4iIiIhIQSgkFGPqRxARERGRgtCRYzGmfgQRERERKQiFhGIqaz9CE4UEEREREckHhYRiKrMfwd/LnVvUjyAiIiIi+aCQUEzZ+xEql1Y/goiIiIjki44ei6m1e9WPICIiIiIFo5BQDNlsBusUEkRERESkgBQSiqEdRxNJuJCufgQRERERKRCFhGIoc+pT9SOIiIiISEHoCLIYymxa1lAjERERESkIhYRiRv0IIiIiInKtFBKKGfUjiIiIiMi1UkgoZjL7ERpGqx9BRERERApGR5HFjPoRRERERORaKSQUI479CKWdXI2IiIiIFFUKCcWIQz9CZLCzyxERERGRIkohoRhZm6UfwVP9CCIiIiJSQDqSLEbUjyAiIiIihUEhoZiw2QzWqh9BRERERAqBQkIxsfPoOfUjiIiIiEihUEgoJjKHGqkfQURERESulY4miwn1I4iIiIhIYVFIKAbUjyAiIiIihUkhoRjI7EfwUz+CiIiIiBQChYRiQP0IIiIiIlKYdERZDFzqR9BQIxERERG5dgoJRZzNZrBuX2Y/gpqWRUREROTaKSQUcX8dO8fZZLMfobb6EURERESkECgkFHHqRxARERGRwqajyiJO/QgiIiIiUtgUEoowx/sjqB9BRERERAqHQkIRpn4EEREREbkeXCIkvPPOO0RHR+Pj40OTJk1Yt25drtump6czbtw4YmJi8PHxITY2liVLluS6/f/93/9hsVgYPHjwdajcudSPICIiIiLXg9OPLOfMmcOQIUMYM2YMGzduJDY2lri4OI4fP57j9iNHjuS9995jypQpbN++nSeffJJOnTqxadOmbNuuX7+e9957jzp16lzvj+EU6kcQERERkevB6SFh0qRJ9OvXjz59+lCzZk3effdd/Pz8+Pjjj3PcftasWbz44ou0a9eOKlWq0L9/f9q1a8ebb77psN358+fp0aMHH3zwASEhIVesITU1lcTERIeHq8vaj9CksvoRRERERKTwODUkpKWlsWHDBlq3bm1f5+bmRuvWrVm9enWOr0lNTcXHx8dhna+vLytXrnRYN3DgQNq3b++w79xMmDCB4OBg+yMqKqoAn+bGyuxH8PV0p04F9SOIiIiISOFxakg4efIkVquV8PBwh/Xh4eEcPXo0x9fExcUxadIkdu3ahc1mY9myZSxYsIAjR47Yt/niiy/YuHEjEyZMyFMdI0aMICEhwf44ePBgwT/UDXKpHyFE/QgiIiIiUqiK3NHlW2+9RbVq1ahevTpeXl4MGjSIPn364OZmfpSDBw/yzDPP8Omnn2a74pAbb29vgoKCHB6ubu0eTX0qIiIiIteHU0NCaGgo7u7uHDt2zGH9sWPHKFeuXI6vCQsLY+HChSQlJbF//3527txJQEAAVapUAWDDhg0cP36c+vXr4+HhgYeHBz///DNvv/02Hh4eWK3W6/65rjezHyGzaVkhQUREREQKl1NDgpeXFw0aNGDFihX2dTabjRUrVtC0adMrvtbHx4fIyEgyMjKYP38+999/PwB33XUXW7duZfPmzfZHw4YN6dGjB5s3b8bd3f26fqYb4e/j5zijfgQRERERuU48nF3AkCFD6NWrFw0bNqRx48ZMnjyZpKQk+vTpA0DPnj2JjIy09xesXbuW+Ph46tatS3x8PGPHjsVmszF06FAAAgMDueWWWxzew9/fnzJlymRbX1St2a1+BBERERG5fpweErp168aJEycYPXo0R48epW7duixZssTezHzgwAF7vwFASkoKI0eOZM+ePQQEBNCuXTtmzZpFqVKlnPQJbrw16kcQERERkevIYhiG4ewiXE1iYiLBwcEkJCS4XBOzzWbQ4N/LOJOczvz+zWhQ6cr3gBARERERyZTX41yNVSli1I8gIiIiItebQkIRo34EEREREbnedJRZxKgfQURERESuN4WEIsTx/gilnVyNiIiIiBRXCglFSNZ+hNqRpZxdjoiIiIgUUwoJRcjai0ONGkaH4OWhvzoRERERuT50pFmErNmTOdRI/QgiIiIicv0oJBQRZj9CZtOy+hFERERE5PpRSCgidh0/z+mkNPUjiIiIiMh1p5BQRGQONVI/goiIiIhcbzraLCLUjyAiIiIiN4pCQhGgfgQRERERuZEUEoqAzH4EH0839SOIiIiIyHWnkFAE2PsRKpVWP4KIiIiIXHc64iwCLvUjaKiRiIiIiFx/CgkuzjCy9iOoaVlERERErj+FBBeXtR+hToVSzi5HREREREoAhQQXp34EEREREbnRdNTp4tSPICIiIiI3mkKCCzMMgzV71I8gIiIiIjeWQoILUz+CiIiIiDiDQoILUz+CiIiIiDiDjjxdmPoRRERERMQZFBJcVNZ+hCbqRxARERGRG0ghwUU59iMEO7scERERESlBFBJcVOZQowaVQvD2cHdyNSIiIiJSkigkuKi1mVOfVtZQIxERERG5sRQSXJDZj3CxaTlGIUFEREREbiyFBBf0z/HznFI/goiIiIg4iUKCC1I/goiIiIg4k0KCC1qjfgQRERERcSKFBBejfgQRERERcTaFBBejfgQRERERcTYPZxcgjtKsNlpVL4unu0X9CCIiIiLiFAoJLqZWRDAf927k7DJEREREpATTcCMREREREXGgkCAiIiIiIg4UEkRERERExIFCgoiIiIiIOFBIEBERERERBwoJIiIiIiLiQCFBREREREQcKCSIiIiIiIgDhQQREREREXGgkCAiIiIiIg4UEkRERERExIFCgoiIiIiIOFBIEBERERERBwoJIiIiIiLiQCFBREREREQcKCSIiIiIiIgDhQQREREREXGgkCAiIiIiIg48nF2AKzIMA4DExEQnVyIiIiIiUngyj28zj3dzo5CQg3PnzgEQFRXl5EpERERERArfuXPnCA4OzvV5i3G1GFEC2Ww2Dh8+TGBgIBaL5Ya/f2JiIlFRURw8eJCgoKAb/v5S9Oh3RvJLvzOSX/qdkfzQ74vrMgyDc+fOERERgZtb7p0HupKQAzc3NypUqODsMggKCtJ/WJIv+p2R/NLvjOSXfmckP/T74pqudAUhkxqXRURERETEgUKCiIiIiIg4UEhwQd7e3owZMwZvb29nlyJFhH5nJL/0OyP5pd8ZyQ/9vhR9alwWEREREREHupIgIiIiIiIOFBJERERERMSBQoKIiIiIiDhQSBAREREREQcKCS7mnXfeITo6Gh8fH5o0acK6deucXZK4qAkTJtCoUSMCAwMpW7YsHTt25K+//nJ2WVKE/N///R8Wi4XBgwc7uxRxYfHx8TzyyCOUKVMGX19fateuze+//+7sssRFWa1WRo0aReXKlfH19SUmJobx48ejeXKKHoUEFzJnzhyGDBnCmDFj2LhxI7GxscTFxXH8+HFnlyYu6Oeff2bgwIGsWbOGZcuWkZ6ezj333ENSUpKzS5MiYP369bz33nvUqVPH2aWICztz5gy33XYbnp6efPfdd2zfvp0333yTkJAQZ5cmLmrixIlMmzaNqVOnsmPHDiZOnMhrr73GlClTnF2a5JOmQHUhTZo0oVGjRkydOhUAm81GVFQUTz31FMOHD3dydeLqTpw4QdmyZfn5559p3ry5s8sRF3b+/Hnq16/Pf//7X/79739Tt25dJk+e7OyyxAUNHz6cVatW8euvvzq7FCki7r33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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_metrics(train_accs, val_accs, \"accuracy\")" ] }, { "cell_type": "markdown", "metadata": { "id": "tbrJJaFrD_XR" }, "source": [ "## 保存和加载模型\n", "\n", "首先,构建一个接受原始数据并执行以下运算的导出模块:\n", "\n", "- 数据预处理\n", "- 概率预测\n", "- 类预测" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T22:05:47.203093Z", "iopub.status.busy": "2022-12-14T22:05:47.202560Z", "iopub.status.idle": "2022-12-14T22:05:47.207346Z", "shell.execute_reply": "2022-12-14T22:05:47.206774Z" }, "id": "1sszfWuJJZoo" }, "outputs": [], "source": [ "class ExportModule(tf.Module):\n", " def __init__(self, model, preprocess, class_pred):\n", " # Initialize pre and postprocessing functions\n", " self.model = model\n", " self.preprocess = preprocess\n", " self.class_pred = class_pred\n", "\n", " @tf.function(input_signature=[tf.TensorSpec(shape=[None, None, None, None], dtype=tf.uint8)]) \n", " def __call__(self, x):\n", " # Run the ExportModule for new data points\n", " x = self.preprocess(x)\n", " y = self.model(x)\n", " y = self.class_pred(y)\n", " return y " ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T22:05:47.210100Z", "iopub.status.busy": "2022-12-14T22:05:47.209885Z", "iopub.status.idle": "2022-12-14T22:05:47.213553Z", "shell.execute_reply": "2022-12-14T22:05:47.212968Z" }, "id": "p8x6gjTDVi5d" }, "outputs": [], "source": [ "def preprocess_test(x):\n", " # The export module takes in unprocessed and unlabeled data\n", " x = tf.reshape(x, shape=[-1, 784])\n", " x = x/255\n", " return x\n", "\n", "def class_pred_test(y):\n", " # Generate class predictions from MLP output\n", " return tf.argmax(tf.nn.softmax(y), axis=1)" ] }, { "cell_type": "markdown", "metadata": { "id": "vu9H5STrJzdo" }, "source": [ "现在,可以使用 `tf.saved_model.save` 函数保存此导出模块。 " ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T22:05:47.216774Z", "iopub.status.busy": "2022-12-14T22:05:47.216312Z", "iopub.status.idle": "2022-12-14T22:05:47.219297Z", "shell.execute_reply": "2022-12-14T22:05:47.218770Z" }, "id": "fN9pPBQTKTe3" }, "outputs": [], "source": [ "mlp_model_export = ExportModule(model=mlp_model,\n", " preprocess=preprocess_test,\n", " class_pred=class_pred_test)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T22:05:47.222345Z", "iopub.status.busy": "2022-12-14T22:05:47.221747Z", "iopub.status.idle": "2022-12-14T22:05:47.519415Z", "shell.execute_reply": "2022-12-14T22:05:47.518751Z" }, "id": "idS7rQKbKwRS" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "INFO:tensorflow:Assets written to: /tmpfs/tmp/tmp33olpz31/mlp_model_export/assets\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "INFO:tensorflow:Assets written to: /tmpfs/tmp/tmp33olpz31/mlp_model_export/assets\n" ] } ], "source": [ "models = tempfile.mkdtemp()\n", "save_path = os.path.join(models, 'mlp_model_export')\n", "tf.saved_model.save(mlp_model_export, save_path)" ] }, { "cell_type": "markdown", "metadata": { "id": "_zZxO8iqBGZ-" }, "source": [ "使用 `tf.saved_model.load` 加载保存的模型,并检查其在未知测试数据上的性能。" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T22:05:47.522904Z", "iopub.status.busy": "2022-12-14T22:05:47.522641Z", "iopub.status.idle": "2022-12-14T22:05:47.591795Z", "shell.execute_reply": "2022-12-14T22:05:47.591161Z" }, "id": "W5cwBTUqxldW" }, "outputs": [], "source": [ "mlp_loaded = tf.saved_model.load(save_path)" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T22:05:47.595125Z", "iopub.status.busy": "2022-12-14T22:05:47.594892Z", "iopub.status.idle": "2022-12-14T22:05:48.547446Z", "shell.execute_reply": "2022-12-14T22:05:48.546699Z" }, "id": "bmv0u6j_b5OC" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Test Accuracy: 0.977\n" ] } ], "source": [ "def accuracy_score(y_pred, y):\n", " # Generic accuracy function\n", " is_equal = tf.equal(y_pred, y)\n", " return tf.reduce_mean(tf.cast(is_equal, tf.float32))\n", "\n", "x_test, y_test = tfds.load(\"mnist\", split=['test'], batch_size=-1, as_supervised=True)[0]\n", "test_classes = mlp_loaded(x_test)\n", "test_acc = accuracy_score(test_classes, y_test)\n", "print(f\"Test Accuracy: {test_acc:.3f}\")" ] }, { "cell_type": "markdown", "metadata": { "id": "j5t9vgv_ciQ_" }, "source": [ "该模型在对训练数据集中的手写数字进行分类方面表现十分优秀,而且有效地泛化到了未知数据。现在,检查模型的分类准确率,以确保对每个数字都具有出色的性能。 " ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T22:05:48.551205Z", "iopub.status.busy": "2022-12-14T22:05:48.550605Z", "iopub.status.idle": "2022-12-14T22:05:48.605893Z", "shell.execute_reply": "2022-12-14T22:05:48.605303Z" }, "id": "UD8YiC1Vfeyp" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Accuracy breakdown by digit:\n", "---------------------------\n", "Digit 7: 0.955\n", "Digit 4: 0.958\n", "Digit 8: 0.962\n", "Digit 6: 0.970\n", "Digit 5: 0.980\n", "Digit 9: 0.983\n", "Digit 3: 0.984\n", "Digit 2: 0.988\n", "Digit 0: 0.993\n", "Digit 1: 0.996\n" ] } ], "source": [ "print(\"Accuracy breakdown by digit:\")\n", "print(\"---------------------------\")\n", "label_accs = {}\n", "for label in range(10):\n", " label_ind = (y_test == label)\n", " # extract predictions for specific true label\n", " pred_label = test_classes[label_ind]\n", " label_filled = tf.cast(tf.fill(pred_label.shape[0], label), tf.int64)\n", " # compute class-wise accuracy\n", " label_accs[accuracy_score(pred_label, label_filled).numpy()] = label\n", "for key in sorted(label_accs):\n", " print(f\"Digit {label_accs[key]}: {key:.3f}\")" ] }, { "cell_type": "markdown", "metadata": { "id": "rcykuJFhdGb0" }, "source": [ "该模型在对某些数字进行分类时的性能似乎稍逊于其他数字,这种情况在许多多类分类问题中都十分常见。作为最后的练习,请绘制出模型预测的混淆矩阵及其对应的真实标签,以便在类级别收集更多见解。Sklearn 和 Seaborn 中具有生成和可视化混淆矩阵的函数。 " ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T22:05:48.608960Z", "iopub.status.busy": "2022-12-14T22:05:48.608744Z", "iopub.status.idle": "2022-12-14T22:05:49.134933Z", "shell.execute_reply": "2022-12-14T22:05:49.134282Z" }, "id": "JqCaqPwwh1tN" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxgAAAMeCAYAAACeJKJ5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAD9iklEQVR4nOzddVhU2RsH8O8MvQYiY3esWJSFhN3diiLGD7sLFRRBDNZWxO7uXLvWWgXXAkVQsQVEBpBQJOf3BzowMiA4ozPg97PPfZ713nPPPe+cy8A759wzAolEIgEREREREZESCFXdACIiIiIiyj+YYBARERERkdIwwSAiIiIiIqVhgkFERERERErDBIOIiIiIiJSGCQYRERERESkNEwwiIiIiIlIaJhhERERERKQ0TDCIiIiIiEhpNFXdACIiIiIidaJnPkbVTchS/D0vVTfhuziCQURERERESsMEg4iIiIiIlIZTpIiIiIiIMhLwM3hF8NUjIiIiIiKlYYJBRERERERKwylSREREREQZCQSqbkGexhEMIiIiIiJSGiYYRERERESkNJwiRURERESUEVeRUghfPSIiIiIiUhomGEREREREpDScIkVERERElBFXkVIIRzCIiIiIiEhpmGAQEREREZHScIoUEREREVFGXEVKIXz1iIiIiIhIaZhgEBERERGR0nCKFBERERFRRlxFSiEcwSAiIiIiIqVhgkFERERERErDKVJERERERBlxFSmF8NUjIiIiIiKlYYJBRERERERKwylSREREREQZcRUphXAEg4iIiIiIlIYJBhERERERKQ2nSBERERERZcRVpBTCV4+IiIiIiJSGCQYRERERESkNp0gREREREWXEVaQUwhEMIiIiIiJSGiYYRERERESkNJwiRURERESUEVeRUghfPSIiIiIiUhomGEREREREpDScIkVERERElBFXkVIIRzCIiIiIiEhpmGAQEREREZHScIoUEREREVFGXEVKIXz1iIiIiIhIaZhgEBERERGR0nCKFBERERFRRpwipRC+ekREREREpDRMMIiIiIiISGk4RYqIiIiIKCMhv2hPERzBICIiIiIipWGCQURERERESsMpUkREREREGXEVKYXw1SMiIiIiIqVhgkFERERERErDKVJERERERBkJuIqUIjiCQURERERESsMEg4joG0+fPkXr1q2hr68PgUCA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wLmmphBzxnZB3w71oaejhf8evoLjooMIeP4u23ii/vPKUdz5rb9zShVxR3/4AI95c3Dl8iUIhUK0aNUa051m4o8C6SuHPXkciPlz3eH/8AGKGBigb7/++N+QYUqJmXGr333uMMget/+7lanMqXMXUaZM2Uz780vc/Pn+ve5z9nfu+ltXpRP1s1du9DFVNyFLb1Yp/8tKlU2lCca1a9fw8eNHtG3bVu7xjx8/4vbt22jSpInc41nJaYKR3+Q0wchvcppgEBERkfpggvFj8kKCodKubdSoUbbHCxQokOvkgoiIiIiIVEeNc0ciIiIiIhXgIlIKUevvwSAiIiIioryFCQYRERERESkNp0gREREREWXAL9pTDEcwiIiIiIhIaZhgEBERERGR0nCKFBERERFRBpwipRiOYBARERERkdIwwSAiIiIiIqXhFCkiIiIiogw4RUoxHMEgIiIiIiKlYYJBRERERERKwylSREREREQZcIqUYjiCQURERERESsMEg4iIiIiIlIZTpIiIiIiIMuIMKYVwBIOIiIiIiJSGCQYRERERESkNp0gREREREWXAVaQUwxEMIiIiIiJSGiYYRERERESkNJwiRURERESUAadIKYYjGEREREREpDRMMIiIiIiISGk4RYqIiIiIKAPOkFIME4x8JOo/L1U3QSUMGoxTdRNUIuqWp6qbQERERJQJp0gREREREZHScASDiIiIiCgDriKlGI5gEBERERGR0jDBICIiIiIipeEUKSIiIiKiDDhDSjEcwSAiIiIiIqVhgkFERERERErDKVJERERERBlwFSnFcASDiIiIiIiUhgkGEREREREpDadIERERERFlwBlSiuEIBhERERERKQ0TDCIiIiIiUhpOkSIiIiIiykAo5BwpRXAEg4iIiIiIlIYJBhERERERKQ2nSBERERERZcBVpBTDEQwiIiIiIlIaJhhERERERKQ0nCJFRERERJSBgHOkFMIRDCIiIiIiUhomGEREREREpDScIkVERERElAFnSCmGIxhERERERKQ0v3WCsXf3LrRr1Rz1zY1hZ9sLD/z8si1/7uxpdOnYFvXNjdGjaydcu3pF5rhEIsGqlSvQookNGtQxwTCHQXj16qVMmegPH+A0dTKsGtSBTcN6cHVxxqePH2XKPHkciEH2/VDf3BitWzTBlk0blBLvV6qIe9zoEWjToinq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8OHDqFmzJgDxdRF//PEHgoODYWJigoCAAMyfP/+H8v7222+YMGECxowZA1NTU1y8eBHu7u5ZytWpUwfdunXDr7/+inbt2sHY2FjmNrRDhgxBYGAgNm7cCCMjIzRv3hxBQUGSuhIRUdEgEGV3RSIRERERURH0/lP69wupSLkS+f+6Nl6DQUREREQkhXeRUgyHSBERERERkdKwgUFERERERErDIVJERERERFIE4BgpRbAHg4iIiIiIlIYNDCIiIiIiUhoOkSIiIiIiksK7SCmGPRhERERERKQ0bGAQEREREZHScIgUEREREZEUjpBSDHswiIiIiIhIadjAICIiIiIipeEQKSIiIiIiaRwjpRD2YBARERERkdKwgUFERERERErDIVJERERERFIEHCOlEPZgEBERERGR0rCBQURERERESsMhUkREREREUgQcIaUQ9mAQEREREZHSsIFBRERERERKwyFSRERERERSOEJKMezBICIiIiIipWEDg4iIiIiIlIZDpIiIiIiIpHGMlELYg0FERERERErDBgYRERERESkNh0gREREREUkRcIyUQtiDQURERERESsMGBhERERERKQ0bGEREREREUgSC/Dv9KH9/f9SoUQOampqwtrbG5cuXcyy/Z88e1KtXD5qamjAyMsKRI0d+eJ9sYBARERERFUK7du3CxIkT4enpievXr8PExATt27fH27dv5Za/ePEi+vbtCxcXF9y4cQMODg5wcHDA7du3f2i/ApFIJFJGACIiIiKiwuBzmqprkD3NH7hFk7W1NaysrODn5wcAyMjIQNWqVTF27Fi4urpmKd+7d28kJibi0KFDknlNmjSBqakpAgICcr1f9mAQERERERUQycnJiI+Pl5mSk5OzlEtJScG1a9fQpk0byTyhUIg2bdogJCRE7rZDQkJkygNA+/btsy2fHTYwiIiIiIikaBbLv5O3tzfKlCkjM3l7e2fJEB0djfT0dOjr68vM19fXx5s3b+TmfvPmzQ+Vzw6fg0FEREREVEC4ublh4sSJMvM0NDRUVBv52MAgIiIiIiogNDQ0ctWg0NXVhZqaGqKiomTmR0VFoWLFinLXqVix4g+Vzw6HSBERERERFTLq6uqwsLDAqVOnJPMyMjJw6tQp2NjYyF3HxsZGpjwAnDhxItvy2WEPBhERERFRITRx4kQ4OzvD0tISjRs3xooVK5CYmIhBgwYBAJycnFC5cmXJNRy///47mjdvjqVLl6JTp07YuXMnrl69irVr1/7QftnAICIiIiIqhHr37o13797Bw8MDb968gampKY4dOya5kPvly5cQCjMHNNna2mL79u2YOXMmpk+fjl9++QXBwcFo1KjRD+2Xz8EgIiIiIiKl4TUYRERERESkNGxgEBERERGR0rCBQURERERESsMGBhERERERKQ0bGEREREREpDRsYBARERERkdKwgUFERERERErDBgYRERERESkNGxhERERERKQ0bGAQEREREZHSsIFBRERERERK839hlqR8snwOlgAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import sklearn.metrics as sk_metrics\n", "\n", "def show_confusion_matrix(test_labels, test_classes):\n", " # Compute confusion matrix and normalize\n", " plt.figure(figsize=(10,10))\n", " confusion = sk_metrics.confusion_matrix(test_labels.numpy(), \n", " test_classes.numpy())\n", " confusion_normalized = confusion / confusion.sum(axis=1)\n", " axis_labels = range(10)\n", " ax = sns.heatmap(\n", " confusion_normalized, xticklabels=axis_labels, yticklabels=axis_labels,\n", " cmap='Blues', annot=True, fmt='.4f', square=True)\n", " plt.title(\"Confusion matrix\")\n", " plt.ylabel(\"True label\")\n", " plt.xlabel(\"Predicted label\")\n", "\n", "show_confusion_matrix(y_test, test_classes)" ] }, { "cell_type": "markdown", "metadata": { "id": "JT-WA7GVda6d" }, "source": [ "在类级别获得更多见解有助于确定错误分类的原因并在未来的训练周期中提高模型性能。" ] }, { "cell_type": "markdown", "metadata": { "id": "VFLfEH4ManbW" }, "source": [ "## 结论\n", "\n", "此笔记本介绍了使用 [MLP](https://developers.google.com/machine-learning/crash-course/multi-class-neural-networks/softmax) 处理多类分类问题的几种技术。下面是一些可能有所帮助的提示:\n", "\n", "- [TensorFlow Core API](https://tensorflow.google.cn/guide/core) 可用于构建具有高度可配置性的机器学习工作流\n", "- 初始化方案有助于防止模型参数在训练期间消失或爆炸。\n", "- 过拟合是神经网络的另一个常见问题,但本教程不存在此问题。有关这方面的更多帮助,请参阅[过拟合与欠拟合](overfit_and_underfit.ipynb)教程。\n", "\n", "有关使用 TensorFlow Core API 的更多示例,请查阅[指南](https://tensorflow.google.cn/guide/core)。如果您想详细了解如何加载和准备数据,请参阅有关[图像数据加载](https://tensorflow.google.cn/tutorials/load_data/images)或 [CSV 数据加载](https://tensorflow.google.cn/tutorials/load_data/csv)的教程。" ] } ], "metadata": { "accelerator": "GPU", "colab": { "collapsed_sections": [ "FhGuhbZ6M5tl" ], "name": "mlp_core.ipynb", "toc_visible": 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.9.16" } }, "nbformat": 4, "nbformat_minor": 0 }