xautodl/notebooks/TOT/synthetic-data.ipynb
2021-04-22 23:32:26 +08:00

113 lines
54 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "filled-multiple",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The root path: /Users/xuanyidong/Desktop/AutoDL-Projects\n",
"The library path: /Users/xuanyidong/Desktop/AutoDL-Projects/lib\n"
]
}
],
"source": [
"import os, sys\n",
"import torch\n",
"from pathlib import Path\n",
"import numpy as np\n",
"import matplotlib\n",
"import matplotlib.pyplot as plt\n",
"\n",
"\n",
"__file__ = os.path.dirname(os.path.realpath(\"__file__\"))\n",
"root_dir = (Path(__file__).parent / \"..\").resolve()\n",
"lib_dir = (root_dir / \"lib\").resolve()\n",
"print(\"The root path: {:}\".format(root_dir))\n",
"print(\"The library path: {:}\".format(lib_dir))\n",
"assert lib_dir.exists(), \"{:} does not exist\".format(lib_dir)\n",
"if str(lib_dir) not in sys.path:\n",
" sys.path.insert(0, str(lib_dir))\n",
"\n",
"from datasets import SinGenerator"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "consistent-transition",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"SinGenerator(100/100 elements,\n",
"amplitude=QuadraticFunc(y = -12.000055313110352 * x^2 + 11.999917984008789 * x + 0.9999290108680725),\n",
"period_phase_shift=QuarticFunc(y = 7.24642276763916 * x^4 + -14.495288848876953 * x^3 + -17.114450454711914 * x^2 + 53.0693473815918 * x + 53.0693473815918))\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABIAAAAHSCAYAAACU1rABAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAACXmUlEQVR4nOzdeXScV30//vcdzWjGkrUvo5FmtIxsydbmNd6SOGS3Q4CWhJBAoVBKIEvTHjilpXwL3y/tt7T8evhSSAkNtEAJJIQlKZDF2RfvsSPZ2m2NltE6M9qszRrNaO7vjzDGIXZsSTNzn+eZ9+scnUOI/DxvO7I0z3vu/VwhpQQRERERERERERmXSXUAIiIiIiIiIiKKLxZAREREREREREQGxwKIiIiIiIiIiMjgWAARERERERERERkcCyAiIiIiIiIiIoNjAUREREREREREZHBmFTfNz8+X5eXlKm5NRERERERERGRIx48fH5VSFlzo3ykpgMrLy3Hs2DEVtyYiIiIiIiIiMiQhRN/F/h23gBERERERERERGRwLICIiIiIiIiIig2MBRERERERERERkcCyAiIiIiIiIiIgMjgUQEREREREREZHBsQAiIiIiIiIiIjI4FkBERERERERERAYXswJICJEihGgUQvw2VtckIiIiIiIiIqKVi+UKoL8E0B7D6xERERERERERUQzEpAASQjgBvBfA92NxPSIiIiIiIiIiip1YrQD6JoAvAIjE6HpERERERERERBQjKy6AhBC3AvBLKY9f4vPuFkIcE0IcCwQCK70tERERERERERFdplisALoSwPuFEL0AHgNwnRDikT/8JCnlw1LKrVLKrQUFBTG4LRERERERERERXY4VF0BSyi9KKZ1SynIAdwJ4SUr5JytORkREREREREREMRHLU8CIiIiIiIiIiEiDzLG8mJTyFQCvxPKaRERERERERES0MlwBRERERERERERkcDFdAURERERElGhzc3P49a9/jddffx3V1dW4/vrrUVNTAyGE6mhERESawQKIiIiIiHQpEolg//79ePLJJzE3N4dNmzbB4/HgW9/6FhwOB6677jrs2LEDqampqqMSEREpxwKIiIgozqSU8Hq9aG5uRnNzMyYnJ/F3f/d3yMrKUh2NSLdOnz6Nxx57DAMDA6iqqsKHP/xhOJ1OhMNhHD9+HC+88AJ+8pOf4Mknn8Tu3bvxnve8B9nZ2apjExERKSOklAm/6datW+WxY8cSfl8iIqJEmZ+fR1tbG5qbm9HS0oKpqSkIIVBeXo6+vj5ce+21uOOOO1THJNKdiYkJ/OIXv8CxY8eQk5OD22+/HVu2bHnHdi8pJbq6uvDiiy+iqakJQghs3boV119/PcrLy9WEJyIiijMhxHEp5dYL/TuuACIiIooBKSV8Pt+5VT6nT59GJBJBWloaampqUF9fj9raWmRkZOBHP/oRXn31Vdx0001ckUB0mUKhEPbt24dnn30WAHDrrbfi5ptvvuj2LiEE1q5di7Vr12J0dBQvv/wy9u/fj6NHj6KyshJ33nknSktLE/lbICIiUoorgIiIiGLgV7/6Ffbt2wcAKC4uRn19Perr61FZWQmT6e2Hbo6OjuLv//7v8Z73vAcf/vCHVcQl0g0pJRobG/GLX/wCY2Nj2LJlC2677Tbk5eUt+Vrz8/M4cOAA9u3bByEE/v7v/x6rV6+OQ2oiIiI1uAKIiIgojoLBIF555RU0NDTgzjvvvOSDaX5+Pnbu3InXXnsNN998M1cBEb2L5557Dr/61a/gdDrx+c9/HlVVVcu+ls1mw/XXX4+qqir88z//M374wx/ivvvu42lhRESUFEyX/hQiIiJ6N8ePH0cwGMSePXsue1XCLbfcgkgkcm47CxG909jYGH7zm99gw4YN+NKXvrSi8ud8LpcLt99+O5qbm/Hiiy/G5JpERERaxwKIiIhohQ4ePAi73Q63233ZvyY/Px+7du3C66+/jomJiTimI9Kvxx9/HEII3HXXXe/YSrlS73nPe7Bx40b86le/Qm9vb0yvTUREpEUsgIiIiFbA5/Ph9OnTuPLKK5e8jYSrgIgurqWlBU1NTbj11luRk5MT8+sLIfDxj38cWVlZ+N73voezZ8/G/B5ERERawgKIiIhoBQ4dOgSTyYQdO3Ys+dfm5eXhyiuvxP79+7kKiOg8oVAIjz76KIqKinD99dfH7T7p6en48z//c4yPj+PHP/4xVByOQkRElCgsgIiIiJYpEong0KFDqKurQ1ZW1rKusXfvXkgp8cwzz8Q4HZF+7du3D6Ojo7jrrrtgNsf3zJLKykp84AMfwPHjx/H666/H9V5EREQqsQAiIiJapra2NkxOTmLXrl3Lvsb5q4DGx8djmI5InwKBAJ555hls3boV69atS8g9b775ZtTU1ODxxx/H4OBgQu5JRESUaCyAiIiIlunAgQPIyMhAfX39iq6zd+9eAOAqIEp6Uko89thjSElJwYc+9KGE3VcIgU9+8pNYtWoVHn74YQSDwYTdm4iIKFFYABERES3D9PQ0Tpw4ge3bt694i0pubi6uuuoqHDhwAGNjYzFKSKQ/J0+eREtLC973vvchOzs7offOzMzEpz71Kfh8Pjz22GMJvTcREVEisAAiIiJahqNHj2JxcRFXXnllTK63d+9eCCG4CoiS1sLCAn72s5+huLgY1113nZIM69atw969e3Hw4EEcOXJESQYiIqJ4YQFERES0RFJKHDhwAOXl5SguLo7JNXNycrgKiJLaM888g7GxMdx1111ISUlRluN973sf1q5di5/85Cfw+XzKchAREcUaCyAiIqIl8nq9GBwcjNnqn6g9e/bAZDLh6aefjul1ibTO5/Phueeew/bt21FVVaU0i8lkwqc+9SmYzWZ873vfQygUUpqHiIgoVlgAERERLdGBAwdgsVhwxRVXxPS6OTk5uPrqq3Hw4EGMjo7G9NpEWhUd/Gw2m3H77berjgPgrb+Ln/jEJ9Df348nnnhCdRwiIqKYYAFERES0BKFQCEePHsWWLVuwatWqmF+fq4Ao2TQ2NqKtrQ0f+MAHkJmZqTrOOQ0NDbj66qvx8ssvY2JiQnUcIiKiFWMBREREtASNjY04e/ZszLd/RWVnZ+Pqq6/GoUOHuAqIDC8YDOLxxx+H0+nEe97zHtVx3mHv3r0AgOeff15xEiIiopVjAURERLQEBw4cQH5+PtauXRu3e0RXAT311FNxuweRFjz11FOYmJjARz7yEZhM2ntZmpeXh23btuH111/HzMyM6jhEREQror2ftERERBo1NjaGjo4OXHnllRBCxO0+2dnZ2L17Nw4fPoxAIBC3+xCpNDw8jOeffx67du1CZWWl6jgXtWfPHiwsLODll19WHYWIiGhFWAARERFdpoMHD0IIgZ07d8b9XjfddBMikQjefPPNuN+LSIX/+Z//gc1mwwc/+EHVUd6Vw+HAxo0b8dJLL2F+fl51HCIiomVjAURERHQZpJQ4ePAgampqkJOTE/f75eTkwOFwoLOzM+73Ikq06elpnDhxAldddRUyMjJUx7mkPXv2YG5uDvv371cdhYiIaNlYABEREV2Gjo4OjI+PY9euXQm7Z3V1Nbq6urC4uJiwexIlwhtvvIFIJJKQ1XSxUFFRgerqajz//PMIh8Oq4xARES0LCyAiIqLLcODAAaSnp2Pjxo0Ju2dVVRWCwSD6+voSdk+iRDh8+DBcLheKi4tVR7lse/fuxeTkJA4fPqw6ChER0bKwACIiIrqEubk5NDY2Ytu2bTCbzQm7b1VVFQBwGxgZytDQEPr6+nSz+idq3bp1KCsrw759+xCJRFTHISIiWjIWQERERJdw9OhRhMNhXHnllQm9b0ZGBoqLi1kAkaEcPnwYJpMJ27ZtUx1lSYQQ2LNnD/x+PxobG1XHISIiWjIWQERERJdw8OBBuFwuuFyuhN+7uroaHo+Hc0fIECKRCI4cOYK6ujpdDH/+Qxs3boTdbsczzzwDKaXqOEREREvCAoiIiOhdDAwMoK+vL+Grf6Kqq6uxsLDAOUBkCJ2dnZicnNTd9q8ok8mEm2++Gf39/Whra1Mdh4iIaElYABEREb2LgwcPwmw2K9uuUlVVBSEEt4GRIRw6dAhpaWmor69XHWXZtm/fjuzsbDz77LOqoxARES0JCyAiIqKLkFLijTfewIYNG5Cenq4kQ3p6OkpKSlgAke7Nz8+jsbERW7duhcViUR1n2cxmM2688UacOnUK3d3dquMQERFdNhZAREREFzE2NoapqSmsW7dOaQ7OASIjePPNN7GwsIAdO3aojrJiV199NdLT07kKiIiIdIUFEBER0UX09PQAACoqKpTmqK6uRigUOpeHSI8OHz6MwsJCuN1u1VFWzGq14rrrrsOJEycwNDSkOg4REdFlYQFERER0ET09PbBYLCgpKVGaY+3atZwDRLo2NjaGzs5O7NixA0II1XFi4tprr4XVasW+fftURyEiIrosLICIiIguoqenB2VlZTCZ1P64TEtLg8vlYgFEunXkyBEAMMT2r6j09HRcffXVOHr0KMbGxlTHISIiuiQWQERkeFJKzM/Pq45BOhMOh+H1epVv/4qqrq5Gd3c3QqGQ6ihESyKlxOHDh1FVVYW8vDzVcWLqhhtugBACzz33nOooREREl8QCiIgMLRQK4b/+67/w+c9/nnMaaEkGBwcRDoc1UwBVVVUhHA7z1CHSnd7eXvh8PkOt/onKycnBjh07cODAAUxPT6uOQ0RE9K5YABGRYZ05cwb/+q//iqNHjwIAnn76acWJSE+0MgA6inOASK8OHToEi8WCLVu2qI4SFzfffDPC4TBefPFF1VGIiIje1YoLICGETQhxVAhxQgjRKoT4P7EIRkS0El6vF1/72tcwNDSEz372s7j++utx7Ngx+Hw+1dFIJ3p6epCZmYmcnBzVUQAAq1atQllZGQsg0pVwOIw33ngDGzduhM1mUx0nLux2OzZt2oRXXnkFwWBQdRwiIqKLisUKoCCA66SUGwBsBLBHCGG8Nb5EpBtvvvkmvv71rwMAvvCFL2DTpk244YYbYDab8eyzzypOR3rR09ODiooKTZ1YVF1djZ6eHiwsLKiOQnRZmpubMTc3h507d6qOElfXXXcdzp49i6amJtVRiIiILmrFBZB8y8zv/tHyuw+50usSES2VlBJPPfUU/uM//gMulwt/93d/B5fLBQDIzMzE7t27cfjwYZ7WQpc0NzcHn8+nme1fUVVVVVhcXITH41EdheiyHDp0CFlZWVi/fr3qKHG1Zs0a5Ofn49ChQ6qjEBERXVRMZgAJIVKEEE0A/ACel1IeicV1iYguVygUwn/+53/i17/+NbZv347Pfe5zyMzMfNvn3HjjjTCZTFwFRJektfk/UWvWrIHJZOI2MNKF6elpNDc3Y/v27TCZjD12UgiBHTt2oKOjA5OTk6rjEBERXVBMfhpLKRellBsBOAFsE0LU/eHnCCHuFkIcE0IcCwQCsbgtERGA3w97PnbsGP74j/8Yn/zkJ2GxWN7xeTk5Odi1axcOHjzIF+j0rnp6eiCEQHl5ueoob2Oz2VBeXs4CiHTh2LFjiEQiht/+FbVjxw5IKXHkCN8HJSIibYrp2zFSykkArwDYc4F/97CUcquUcmtBQUEsb0tESczr9eKf/umfMDw8jHvuuQd79ux515ktN998MyKRCJ577rkEpiS96enpgcPh0OTQ2urqavT29nLYLGneoUOH4HK5UFxcrDpKQhQUFKCyshKHDh2ClJyGQERE2hOLU8AKhBDZv/vfqwDcAKBjpdclIrqU9vZ2fP3rX4fJZMIXvvAFbNiw4ZK/Jj8/H9u3b8drr72G6enpBKQkvZFSnhsArUVVVVWIRCLo6upSHYXoooaHh9HX15c0q3+idu7cieHhYXi9XtVRiIiI3iEWK4AcAF4WQpwE8AbemgH02xhcl4joXT311FPIysrCF7/4RTidzsv+dXv37kU4HMYLL7wQx3SkV6Ojo5idndXc9q+oyspKpKSkcBsYadqhQ4dgMplwxRVXqI6SUFu2bIHZbMbhw4dVRyEiInqHWJwCdlJKuUlK2SClrJNSfjUWwYiI3s3Zs2fh8XhwxRVXvGPY86XY7XZs3boVL7/8MmZnZ+OUkPRKqwOgo6xWK+cAkaZFIhEcOXIEdXV1S/7+rHdpaWnYuHEjjh49isXFRdVxiIiI3sbYRzIQkWF1dHQgEomgtrZ2Wb9+7969CAaDeOmll2KcjPSup6cHqampKCkpUR3loqqrq+H1ejE/P686CtE7dHZ2YnJyEjt27FAdRYkdO3ZgZmYGLS0tqqMQERG9DQsgItKl1tZW2Gw2uN3uZf36kpISbNy4ES+99BIfoultent7UVZWpuljq6urqzkHiDTr0KFDSEtLQ0NDg+ooStTU1CAjI4PbwIiISHO0++qWiOgipJRoaWnB+vXrkZKSsuzr3HLLLZibm8Mrr7wSu3Cka+FwGF6vV7Pbv6IqKythNpu5DYw0JxwOo6mpCVu2bIHFYlEdR4mUlBRs27YNJ0+e5DZjIiLSFBZARKQ7w8PDmJiYWPb2r6iysjLU1dXh+eef55HaBAAYGBhAOBzWfAFksVhQUVHBAog0p7u7G8FgEPX19aqjKLVz506Ew2EcO3ZMdRQiIqJzWAARke60trYCAOrq6lZ8rVtuuQUzMzN4/fXXV3wt0j+tD4A+X3QO0NzcnOooROe0tbXBZDKhurpadRSlnE4nSkpKuA2MiIg0hQUQEelOa2sriouLkZOTs+JrVVZWorq6Gs899xxCoVAM0pGe9fT0ICsrC9nZ2aqjXFJ1dTWklJwDRJrS1tYGt9sNm82mOopSQgjs2LED3d3d8Pl8quMQEREBYAFERDoTDAZx+vTpFW//Ot8tt9yCM2fO4ODBgzG7JulTT08PKioqIIRQHeWSKioqOAeINGV2dhZerxc1NTWqo2jC9u3bIYTgKiAiItIMFkBEpCudnZ0Ih8Mx2f4VVV1djcrKSjz77LNYXFyM2XVJX2ZnZ+H3+3Wx/Qt4aw5QZWUlCyDSjPb2dkgpsX79etVRNCErKws1NTU4fPgwpJSq4xAREbEAIiJ9aW1tRWpqKtasWROzawohcMstt2B8fBxHjhyJ2XVJX3p7ewHoY/5PVHV1NQYGBnjSEGlCW1sb0tLSUF5erjqKZuzcuRPj4+M4ffq06ihEREQsgIhIX1pbW7Fu3TqYzeaYXre2thalpaV45plnEIlEYnpt0oeenh4IIVBWVqY6ymWrqqqClJIPl6SclBJtbW2orq6GycSXl1EbNmyAzWbDoUOHVEchIiJiAURE+uH3+xEIBGI6/ycqugrI7/fjxIkTMb8+aV9PTw8cDoeuhtdWVFTAYrFwGxgp5/f7MTExwfk/fyA1NRVbtmzB8ePHsbCwoDoOERElORZARKQbsTz+/UI2bNgAi8XC1RRJSEp5bgC0npjNZqxZs4YFECnX1tYGACyALmDnzp0IBoNobGxUHYWIiJIcCyAi0o2WlhYUFhYiPz8/Ltc3mUwoLy9Hd3d3XK5P2hUIBDA7O6u7Agh4aw7Q4OAgZmZmVEehJNbW1oaCgoK4fX/WszVr1iAvL4+ngRERkXIsgIhIF0KhEDo7O+Oy/et8brcb/f39CIfDcb0PaUtPTw8AfQ2AjqqqqgIAnDp1SnESSlaLi4vo7Ozk6V8XIYTAjh070N7ejsnJSdVxiIgoibEAIiJdOH36NEKhUNy2f0VVVFQgHA7D6/XG9T6kLb29vUhNTUVxcbHqKEtWXl4Oq9XKAoiU6e7uRjAY5Pavd7Fjxw5IKXH06FHVUYiIKImxACIiXWhtbYXZbD632iFeoitAoitCKDn09PSgrKxMl6cXpaSkwOl0or+/X3UUSlJtbW0wmUyorq5WHUWzCgsLUVlZiUOHDkFKqToOERElKf290iWipNTa2oqqqiqkpqbG9T7Z2dnIyclhAZREwuEw+vv7dbn9K8rlcmFgYIAPlqREe3s7ysvLkZaWpjqKpu3YsQNDQ0Msa4mISBkWQESkeWNjYxgeHo77/J8ot9vNQdBJZGBgAOFwWNcFkNPpxPz8PMbGxlRHoSQzOzuL3t5ebv+6DFu3boXZbOYwaCIiUoYFEBFpXryPf/9DbrcbY2NjmJqaSsj9SC09D4COcrlcAMCVBZRwnZ2dkFKyALoMaWlpaGhowNGjR7G4uKg6DhERJSEWQESkea2trcjLy4Pdbk/I/TgHKLn09PSc2/qnVyUlJRBCYGBgQHUUSjJtbW2w2WwoLy9XHUUXdu7cienpabS1tamOQkRESYgFEBFpWjgcRkdHB2prayGESMg9S0tLkZKSwm1gSaKnp0fXq38AwGKxoKioiCuAKKGklGhra0N1dTVSUlJUx9GFmpoa2Gw2NDY2qo5CRERJiAUQEWlad3c35ufnEzb/B3jrYdrlcrEASgKzs7Pw+/26L4CAt+YAcQUQJVIgEMDY2Bi3fy2B2WzGhg0b0NTUhEgkojoOERElGRZARKRpLS0tMJlMWLduXULvW1FRgb6+Pr5ANzgjzP+JcjqdGBsbw9zcnOoolCSi25hYAC3Nxo0bMTs7i66uLtVRiIgoybAAIiJNa21txZo1a2Cz2RJ634qKCgSDQQwNDSX0vpRYPT09EEKgrKxMdZQViw6C5iogSpT29nbk5eWhoKBAdRRdqa2thcViwZtvvqk6ChERJRkWQESkWZOTkxgYGEjY6V/nc7vdADgI2uh6enpQXFwMq9WqOsqKOZ1OACyAKDEikQg6OjpQU1OTsPlsRmG1WlFbW4vGxkZIKVXHISKiJMICiIg0K7q9IJHzf6Ly8/OxevVqzgEyMCklent7DXN6UWZmJjIyMjgImhKip6cH8/Pz3P61TJs2bcLk5CT6+vpURyEioiTCAoiINKu1tRVZWVkoKSlJ+L2FEHC73VwBZGCBQACzs7OGmP8DvPU1y0HQlChtbW0QQqC6ulp1FF1qaGiAyWTiNjAiIkooFkBEpEmRSARtbW0JPf79D1VUVGB4eJhDdQ3KSAOgo1wuF4aGhrC4uKg6Chlce3s7ysrKkJ6erjqKLqWlpaG6uprbwIiIKKFYABGRJvX29mJubk7J9q+o6Byg3t5eZRkofnp6emC1WlFcXKw6Ssw4nU6Ew2H4fD7VUcjA5ubm0NPTw+1fK7R582b4/X4MDw+rjkJEREmCBRARaVJLSwuEEEofMMrLyyGE4Bwgg+rp6UFZWRlMJuP8KIyeBMY5QBRPnZ2diEQiLIBWaMOGDRBCoLGxUXUUIiJKEsZ51UtEhtLa2gq32420tDRlGWw2GxwOB+cAGVA4HMbAwIChtn8BQFFREcxmM+cAUVy1t7fDarUa7u9PomVlZcHtdrMAIiKihGEBRESaMz09jb6+PqXbv6IqKirQ09PDGQ0GMzQ0hHA4jLKyMtVRYspkMqGkpIQrgCiu2traUF1dDbPZrDqK7m3evBn9/f0YHR1VHYWIiJIACyAi0pz29nZIKTVRALndbszOziIQCKiOQjEUnblhpPk/UdGTwFhaUjyMjo4iEAhw+1eMbNy4EQDQ1NSkNAcRESUHFkBEpDktLS1YvXq1JlZnRAdBcw6QsQwPD8NkMqGwsFB1lJhzuVyYnp7GmTNnVEchA2prawMArF+/XnESY8jPz4fL5eJx8ERElBAsgIhIczo7O7F+/Xplx7+fr6ioCDabjXOADGZ4eBh2ux0pKSmqo8Sc0+kEAM4Borhob29HTk4O7Ha76iiGsWnTJnR3d7O0JSKiuGMBRESaMjMzg8nJSU2s/gHemqlSXl7OFUAGMzw8DIfDoTpGXEQLIM4BoliLRCLo6OhATU2NJgp6o9i0aROklDhx4oTqKEREZHAsgIhIU6KrFqIPsVpQUVGBgYEBLCwsqI5CMRAOh+H3+w1bAK1atQp5eXlcAUQx19fXh7m5Oc7/iTGHwwG73c7TwIiIKO5YABGRpgwODgIASkpKFCf5PbfbjUgkgr6+PtVRKAb8fj+klIYtgIC35gBxBRDFWltbG4QQWLduneoohiKEwMaNG9HR0YG5uTnVcYiIyMBYABGRpgwMDCAzMxOZmZmqo5xTUVEBAJwDZBBDQ0MAYOgCyOl0wu/3IxgMqo5CBtLW1obS0lKsXr1adRTD2bx5MyKRCE6ePKk6ChERGRgLICLSlIGBAU2t/gGAjIwM5OfnswAyiOHhYQghDD3E1uVyQUp5ruwiWqn5+Xl0d3dz+1eclJWVIScnh9vAiIgorlgAEZFmRCIRDA0NaWr+T5Tb7eYgaIMYGRlBfn4+LBaL6ihxw5PAKNY8Hg8ikQiqq6tVRzGk6Daw1tZWrtwjIqK4YQFERJrh8/kQDoc1WwBNTk5iYmJCdRRaoaGhIUNv/wKAvLw82Gw2zgGimOnu7oYQAm63W3UUw9q8eTNCoRDa2tpURyEiIoNacQEkhHAJIV4WQrQLIVqFEH8Zi2BElHy0eAJYFOcAGUMkEoHP5zN8ASSEgMvl4gogihmPx4OSkhJYrVbVUQxrzZo1SE9P5zYwIiKKm1isAAoD+LyUcj2AHQDuE0JwgzgRLdng4CBMJhOKiopUR3kHp9MJs9nMbWA6FwgEsLi4aPgCCHjra3ZgYABSStVRSOcikQh6enq4+ifOTCYTNm7ciJMnTyIcDquOQ0REBrTiAkhKOSylfPN3/3saQDsAbU1wJSJd6O/vh8PhgNlsVh3lHcxmM0pLS1kA6dzw8DAAY58AFuVyuRAMBhEIBFRHIZ0bHh7G/Pw8KisrVUcxvE2bNuHs2bPo7OxUHYWIiAwopjOAhBDlADYBOHKBf3e3EOKYEOIYX4wS0YUMDg5qcvtXlNvthtfrxeLiouootEzRAkiLq8xijYOgKVaixTdXAMXfunXrYLPZuA2MiIjiImZvswshVgP4JYC/klJO/eG/l1I+DOBhANi6dSvXo9OSPfnkk+jq6kJqauolP5xOJ1+o6szs7CwmJiY0dwT8+SoqKvDCCy9gYGAAZWVlquPQMgwPDyMnJwc2m011lLgrLi6GyWRCf38/Nm/erDoO6ZjH48Hq1atRUFCgOorhWSwW1NfXo6mpCR/5yEdgMvG8FiIiip2YFEBCCAveKn9+IqX8VSyuSXQ+n8+HZ555Bg6HA1arFRMTE1hYWHjbRyQSOff5qamp+PrXv45Vq1YpTE1LMTg4CECbA6CjoqViT08PCyCdGh4eRnFxseoYCWGxWFBUVMQVQLRi3d3dcLvdEEKojpIUNm7ciDfeeAMejwdr165VHYeIiAxkxQWQeOvVwH8CaJdSfmPlkYje6aWXXoLZbMbnPvc5ZGZmXvBzFhcXsbCwgL6+Pvy///f/cPToUVxzzTUJTkrLpeUTwKJycnKQlZWF7u5uvOc971Edh5ZISonh4WFUVVWpjpIwTqcTp0+fVh2DdGx2dhY+nw+7du1SHSVp1NXVwWw2o7GxkQUQERHFVCzWlV4J4GMArhNCNP3u45YYXJcIADA3N4eDBw9i27ZtFy1/ACAlJQWrVq1CdXU1XC4XXn/9dZ5+oyMDAwNYvXr1u/43Vk0IgYqKCh4Fr1NjY2MIhUJJMQA6yuVyYWJiArOzs6qjkE5x/k/i2Ww21NTUoKmpia9jiIgopmJxCth+KaWQUjZIKTf+7uPpWIQjAoD9+/djYWEB11133WV9vhACV111Ffr7++H1euOcjmJlYGAATqdT81sM3G43/H4/ZmZmVEehJRoZGQGQHCeARXEQNK2Ux+OByWTittcE27RpE8bGxtDf3686ChERGQgny5GmRSIRvPzyy6iqqoLL5brsX7d9+3ZYLBa8/vrrcUxHsRKJRDA0NKTp7V9RFRUVAMBVQDo0NDQEIDlOAItiAUQr1d3dDZfLBavVqjpKUtmwYQNMJhNPAyMiophiAUSa1tTUhPHxcdxwww1L+nWrVq3CFVdcgaNHjyIYDMYpHcVKIBBAKBTS9AlgUWVlZRBCnNsWQfoxPDyMzMxMpKenq46SMJmZmcjMzOQqAlqWSCSC3t5ebv9SID09HWvWrMHJkydVRyEiIgNhAUSa9sILLyA/Px/19fVL/rVXXXUVgsEg3njjjTgko1iKPpwuZZWXKlarFU6nkyuAdGh4eDiptn9FuVwurgCiZRkcHEQwGGQBpEh9fT0GBgYwMTGhOgoRERkECyDSrL6+Png8Hlx33XUwmZb+pep2u+FwOLgNTAcGBwdhMpl0szUnOgiawzn1I3oCWDIWQE6nE0NDQwiHw6qjkM54PB4AHACtSkNDAwCgublZcRIiIjIKFkCkWS+++CJsNhuuvPLKZf16IQSuvvpq9Pb28t1vjRsYGIDdbofFYlEd5bK43W7Mz8+fGypM2nfmzBnMz88nZQHkcrmwuLjIr1dasu7ubmRmZiIvL091lKRkt9tRUFDAbWBERBQzLIBIkyYnJ3Hs2DFceeWVsNlsy77Ojh07YDabuQpI46IngOlFdBA05wDpx/DwMIDkOgEsioOgabm6u7tRWVmp+dMZjUoIgYaGBnR0dGBhYUF1HCIiMgAWQKRJr776KiKRCK699toVXSc9PR1btmzBkSNH+OJJo+bm5jA+Pq6rAshutyMtLY1zgHQkmQug6Oo6DoKmpZienkYgEOD2L8Xq6+sRCoXQ0dGhOgoRERkACyDSnFAohNdeew0NDQ0oKChY8fWuuuoqnD17FsePH49BOoq1wcFBANBVASSEQElJybljxUn7hoeHkZ6ejoyMDNVREs5kMqGkpIQrgGhJoiscKysrFSdJbmvXroXNZuMcICIiigkWQKQ5R48exczMzJKPfr+YtWvXwm63cxuYRkUfSvVUAAFAUVERRkZGOAhaJ4aHh1FUVJS0W1lcLhf6+/v59UqXzePxICUlBaWlpaqjJDWz2YyamhqcPHmSf3+JiGjFWACRpkgp8cILL8DpdGLt2rUxuaYQAldddRU8Hg9XbGjQ4OAg0tPTkZWVpTrKkhQVFWF2dhYzMzOqo9BlGB4eRnFxseoYyjidTszOzmJyclJ1FNKJ7u5uuFwu3QznN7KGhgZMTk5yFR8REa0YCyDSlM7OTgwNDeH666+P6Tv1O3fuREpKCvbv3x+za1JsDAwMoKSkRHcrM6KzZHiykvZNT09jZmYmKef/RHEQNC3F4uIient7uf1LI+rq6iCE4GlgRES0YiyASFNefPFFZGRk4IorrojpdTMyMrBp0yYcPnwYoVAoptem5YtEIhgcHITL5VIdZcmKiooA/H64MGlXMg+AjooWQBwETZdjYGAAoVCIA6A1IiMjAxUVFSyAiIhoxVgAkWb4/X6cPHkS11xzTVyWnF911VWYnZ1FY2NjzK9NyzM6OoqFhQWUlJSojrJkubm5SE1N5QogHWABBNhsNuTn53MFEF0WDoDWnvr6evT29mJqakp1FCIi0jEWQKQZL730ElJSUnDNNdfE5frr1q1Dfn4+h0FriF4HQANvzZYqKiriCiAdGB4ehtVqRXZ2tuooSkUHQRNdisfjQXZ2NnJyclRHod9paGgAALS0tChOQkREesYCiDRhbm4OBw8exBVXXIHMzMy43CM6DPrUqVPw+XxxuQctzcDAAIQQuh3O63A4WADpwPDwMBwOh+7mTMWa0+lEIBBAMBhUHYU0rru7m6t/NKakpAQ5OTncBkZERCvCAog04eDBgwgGg7j++uvjep9du3bBZDJxGLRGDAwMwG636/aUmaKiIkxMTPCBWuOiBVCyc7lckFJicHBQdRTSsMnJSYyNjXH+j8YIIVBfX4+2tjaEw2HVcYiISKdYAJFykUgEL730EtauXYvS0tK43isrKwsNDQ04dOgQX0BpwODgoC63f0VFB0FzDpB2zc3N4cyZMyyAwJPA6PJE5/+wANKehoYGBINBnDp1SnUUIiLSKRZApNyJEycwNjYW99U/UVdffTWmp6dx4sSJhNyPLmx+fh6jo6O6LoB4FLz2Rf/bsAB6a3B5Wloa5wDRu+ru7obZbI77GzK0dOvWrYPFYuE2MCIiWjYWQKTciy++iLy8PGzYsCEh96upqUFubi6HQSsW3YaixxPAogoKCmAymTgHSMN4AtjvCSHgdDq5AojeVXd3N8rKymA2m1VHoT9gsViwfv16NDc3Q0qpOg4REekQCyBSKhAI4PTp03jPe94DkykxX44mkwlXXnkl2tvbMTo6mpB70jvp+QSwKLPZjIKCAq4A0rChoSFYLBbk5eWpjqIJJSUlGBoa4sMjXVA4HEZfXx+3f2lYfX09RkdH+XOHiIiWhQUQKdXR0QHg98ebJsqVV14JIQSHQSs0MDCAtLQ03R8zzJPAtG1kZARFRUUJK5i1rqioCPPz85icnFQdhTTI6/UiHA6zANKw6OslbgMjIqLl4CtiUqqzsxPZ2dmw2+0JvW9OTg7q6upw4MABLC4uJvTe9JaBgQGUlJTo/mjuoqIi+P1+fh1p1PDw8Llh3QQUFxcD4NwqujAOgNa+7OxsuFwuNDc3q45CREQ6xAKIlJFSoqOjA9XV1UpKgJ07d2Jqagq9vb0Jv3eyix5FreftX1EOhwORSASBQEB1FPoDwWAQY2Nj50oP+v3JdUNDQ4qTkBZ1d3cjLy8P2dnZqqPQu2hoaEBXVxdmZ2dVRyEiIp1hAUTKDA8PY3p6GuvWrVNy/7Vr1wL4/TuelDijo6MIBoOGKICiD9TcBqY9PAHsnTIyMpCens4VQHRBHo+Hq390oKGhAVJKtLa2qo5CREQ6wwKIlInO/6murlZy/8zMTOTl5bEAUsAIA6CjogUQH6i1hyeAvZMQAkVFRSws6R0mJiYwOTnJAkgHysrKkJGRwTlARES0ZCyASJmOjg7k5+crPZ3H7XazAFJgcHAQQghDPJjbbDbk5OTwgVqDhoeHYTKZUFBQoDqKphQXF/Prld7B4/EAACorKxUnoUsRQqC+vh6tra2cP0dEREvCAoiUiEQiOHXqlLLtX1GVlZWYnJzExMSE0hzJZmBgAIWFhbBaraqjxERRURFXAGnQ8PAw7HY7UlJSVEfRlKKiIszMzGB6elp1FNKQ7u5uWCwWQ6zMTAYNDQ2Ym5s7V9wRERFdDhZApER/fz/Onj2rvACqqKgAAL6ASrDoCWBGES2ApJSqo9B5hoeHDbHKLNaifyYsLel8Ho8H5eXlLEx1Yv369UhJSeFpYEREtCQsgEgJ1fN/opxOJywWC3p6epTmSCbBYBCBQMBQ7zI7HA4Eg0FMTk6qjkK/EwqFEAgEWABdQPTPhNvAKCoUCqG/v5/zf3TEZrOhqqqKc4CIiGhJWACREp2dnXA4HMjMzFSaw2w2o6ysjHOAEmhwcBCAMQZAR/GBWnt8Ph+klCyALiAnJwdWq5Vfr3SO1+vF4uIi5//oTENDA0ZGRuD3+1VHISIinWABRAkXDodx+vRp5du/otxuN7xeL8LhsOooScFIJ4BF8Sh47eER8BfHk8DoD0W3QXMFkL7U19cDALeBERHRZWMBRAnX29uLhYUFTRVA4XAYXq9XdZSkMDg4CJvNhtzcXNVRYiYjIwNpaWmcqaIhw8PDEELAbrerjqJJDoeDBRCd093djfz8fGRkZKiOQktQUFAAh8PBAoiIiC4bCyBKuI6ODgghUFVVpToKgN8PguY2sMTo7++H0+mEEEJ1lJiJHmnPAkg7hoaGUFBQAIvFojqKJjkcDkxOTuLs2bOqo5BiUkp4PB5u/9Kp+vp6nDp1CvPz86qjEBGRDrAAooTr6OhAaWkp0tLSVEcBAGRnZyM3N5eDoBNASonBwUFDbf+K4pYabRkZGeH2r3fBk8AoamxsDFNTU9z+pVMNDQ1YXFxEW1ub6ihERKQDLIAooRYWFtDd3a389K8/5Ha7eRR8AoyPj2N+ft5QR8BHFRUVYXp6GrOzs6qjJL3FxUX4fL5zs5nonTi4nKKiq1+5AkifKisrkZaWhhMnTqiOQkREOsACiBLK4/FgcXFRM/N/otxuNyYmJniMd5wZcQB0FFdUaEcgEMDi4iKKi4tVR9Gs/Px8mM1mFkCE3t5eWCwWQxbzycBkMqG2thatra2QUqqOQ0REGscCiBKqo6MDJpMJa9asUR3lbaJL3zkHKL4GBgYghDDkgwZXVGhH9L8Bt4BdnMlkgt1uZ2FJ8Hq9cLlcMJn4klCv6uvrMT09jb6+PtVRiIhI4/jTnhKqo6MDFRUVsFqtqqO8jcvlgtlsZgEUZwMDAygoKNDcf/9YyM3NhcViYQGkAdH/BtwC9u4cDgeGhoZUxyCFIpEIvF4vysrKVEehFairq4MQgqeBERHRJbEAooQ5e/Ys+vr6NLf9CwDMZjNKS0tZAMXZwMCAIVf/AFxRoSXDw8PIzc01ZNEYSw6HA2NjYwiFQqqjkCI+nw/BYBClpaWqo9AKpKeno6KiggUQERFdEgsgSpjTp09DSqnJAgh4axtYX18fwuGw6iiGFAwGEQgEDDn/J4pHwWvD8PAwt39dBofDASklv2aTmNfrBQCuADKA+vp69PX1YWpqSnUUIiLSMBZAlDAdHR2wWCyaPWq2srIS4XD43KBiiq2RkRFIKQ09mLeoqIgrKhSLRCI8Av4ycXA59fX1wWKx8O+LAdTX1wMAWlpaFCchIiIti0kBJIT4LyGEXwjBnzp0UZ2dnVizZg3MZrPqKBdUUVEBgIOg4yX6kGnkB42ioiKuqFBsfHwcoVDI0F9nsVJYWAiTycQ5QEmMA6CNw+l0Ijs7m9vAiIjoXcXqJ/4PAeyJ0bXIgKanpzEwMIDq6mrVUS4qJycHOTk5LIDiZGRkBCaTCQUFBaqjxA1XVKgXLTNYAF2a2WxGQUEBv16TFAdAG4sQAnV1dWhra8Pi4qLqOEREpFExKYCklK8BGI/FtciYOjs7AUCz83+i3G43C6A4GRkZQX5+vmZXgMWC3W6HEIIP1ApF/+x5AtjlcTgcPLkuSXEAtPHU1dVhfn4eHo9HdRQiItIorvmlhOjs7ITNZtP8O41utxtjY2M4c+aM6iiGMzIyYviH8uiKCj5Qq+P3+5Geno709HTVUXTB4XDA5/NxxUAS4gBo41m/fj1SUlK4DYyIiC4qYQWQEOJuIcQxIcSxQCCQqNuSRnR0dKCqqkrzcwaiA6q5Cii2IpEI/H6/4Qsg4K2VJyyA1PH5fLDb7apj6IbD4Tj395OSCwdAG4/NZkNVVRULICIiuqiEPY1LKR+WUm6VUm418gwQeqeJiQn4/X5Nz/+JKi0thdlsRk9Pj+oohjI6OopwOJw0BZDf70ckElEdJSn5/X4WQEsQ/TvJbYvJp6+vjwOgDaiurg7Dw8MYHR1VHYWIiDSIP/Up7vQy/wd4awuPy+XiCqAYS4YTwKIcDgfC4TBffCsQDAYxOTmJwsJC1VF0I1oAcdVacolEIujv7+f2LwPicfBERPRuYnUM/KMADgGoFkIMCCE+FYvrkjF0dHRg9erVKCkpUR3lsrjdbvT29nImRgxFC6BkWJnBB2p1otuYkuHrLFasVivy8vL49ZpkOADauOx2OwoLC7kNjIiILihWp4DdJaV0SCktUkqnlPI/Y3Fd0j8pJTo6OlBdXQ0hhOo4l8XtdiMUCmFgYEB1FMMYGRlBRkZGUgzm5VHw6vh8PgAsgJaKc6uST3QAdHl5udogFBd1dXXo7OzEwsKC6ihERKQx3AJGcRUIBDAxMaGL7V9RHAQde8lwAljUqlWrkJWVxQJIgegKIM6ZWxqHw4GRkRHOrUoi0QHQyfJ9OdnU19cjFAqd24JPREQUxQKI4ir64kMPA6CjcnJykJ2dzUHQMZRMBRDw1gM1V1Qkns/nQ3Z2NqxWq+oouuJwOBAKhTA+Pq46CiUIB0AbW1VVFVJTUzkHiIiI3oE/+SmuOjo6kJ2drauhrEIIVFRUwOPxqI5iCDMzM5idnU2qAii6pUZKqTpKUvH7/br6XqMV0W2LLC2TAwdAG5/ZbMb69evR3NzMn0NERPQ2LIAobqSU6OzsxLp163Qz/yfK7XZjdHQU09PTqqPoXvShMtkKoPn5eZw5c0Z1lKTi8/k4/2cZWAAlFw6ATg719fUYGxvjdmQiInobFkAUN0NDQ5ientbV9q+oyspKAJwDFAvJdAR8FAdBJ97s7CxmZ2dZAC1DWloaMjMzWQAlCQ6ATg51dXUAwNPAiIjobVgAUdx0dHQA0Nf8n6jS0lKYTCYWQDEwMjICi8WC3Nxc1VESJrraiQVQ4kQHQHML2PJwblXy4ADo5JCTkwOn08kCiIiI3oYFEMVNZ2cnCgoKkJeXpzrKklksFpSWlrIAioGRkRHY7XbdbQNciaysLNhsNj5QJxCPgF+ZaAHEeSHGxwHQyaO+vh5dXV04e/as6ihERKQR/OlPcRGJRM7N/9Ert9uN3t5eHo28Qsl2Ahjw1iDx6NHalBh+vx9CCOTn56uOoksOh4Nzq5IAB0Anl7q6OkQiEbS1tamOQkREGsECiOLC6/Vifn5e9wXQwsICBgcHVUfRrVAohLGxsaQrgABuqUk0n8+HvLw8mM1m1VF0iYOgk0N0ADQLoOTgdruRlpbGbWBERHQOCyCKi1OnTgEAqqqqFCdZPrfbDYCDoFfC7/dDSpmUBVBRURHOnDnDpfcJwhPAVoYFUHKIDoBmAZQcTCYTamtr0dLSwu2dREQEgAUQxYnH40FBQQEyMzNVR1m23NxcZGZmsgBagWQ8Aj6Kg6ATR0oJv9/PAdArkJGRgbS0NBZABscB0Mmnvr4e09PT6OvrUx2FiIg0gAUQxZyUEh6P59xR6nolhIDb7WYBtAIjIyMQQiTlygyuqEicqakpBIPBpPw6i5Xo3Cp+vRobB0Ann9raWggh0NLSojoKERFpAF8BUMwFAgFMT09jzZo1qqOsmNvtht/vx8zMjOooujQyMoLc3FykpqaqjpJw+fn5MJvNXAGUANEj4FkArQwHlxsbB0Anp9WrV6OiooJzgIiICAALIIoDj8cDALpfAQRwDtBKJeMJYFEmkwmFhYVcUZEA0SPguQVsZRwOB6anp1l4GxQHQCev+vp69Pb2YmpqSnUUIiJSjAUQxZzH40FaWtq5LTB6VlZWBpPJxAJoGaSU8Pl8SVsAAVxRkSg+nw9msxm5ubmqo+gaty0aW3QGDAug5FNfXw8AaG1tVZyEiIhUYwFEMdfV1QW32w0hhOooK5aamgqXy4Wenh7VUXRnYmICCwsLSV0AFRUVIRAIIBQKqY5iaH6/HwUFBZxrskIcXG5sXq+XA6CTlNPpRFZWFreBERERCyCKrdnZWQwPDxti+1dURUUFenp6EIlEVEfRlehDZDI/bDgcDkgpEQgEVEcxNJ/Px+1fMZCbmwur1coVQAbFAdDJSwiBuro6tLW1YXFxUXUcIiJSiK8CKKaiW6WMMAA6yu12IxgMYmhoSHUUXWEB9PvfOx+o4ycSiSAQCHAAdAwIIVBUVMSvVwPiAGiqr6/H2bNnz81pJCKi5MQCiGLK4/HAZDKhvLxcdZSYiQ6C5jawpRkeHkZaWhoyMjJUR1GmqKgIQgg+UMfRxMQEwuEwC6AY4VHwxsQB0LR+/XqkpKRwGxgRUZJjAUQx1dXVhdLSUkMd+52fnw+bzYaBgQHVUXQlegKYEWZBLZfFYkFeXh5nqsQRTwCLraKiIkxMTGB+fl51FIohDoAmm82GtWvXoqWlRXUUIiJSiAUQxUw4HEZvb6+h5v8Ab22LcDqdLICWKJmPgD8ft9TEl9/vBwCuAIqR4uJiABwEbTQcAE3AW9vAhoaGMDo6qjoKEREpwgKIYqa/vx+hUMhQ83+iogWQlFJ1FF2Ym5vD1NQUHzbwVgHk9/v5tRMnPp8PVqsVmZmZqqMYAudWGVNfXx9KS0s5ADrJNTQ0AAC3gRERJTG+EqCYiQ4WNNoKIOCtAmh+fh7j4+Oqo+hCdFsOC6C3tiYtLCxgcnJSdRRDip4AlsxbDWOpoKAAZrOZBZCBRAdAl5aWqo5CihUWFsJut+PkyZOqoxARkSIsgChmurq6kJ+fj6ysLNVRYs7pdAIAt4FdJp4A9nvRrUnRrUoUW36/n9u/YshkMqGwsJAFkIFwADSdr6GhAadOneKcLyKiJMUCiGJCSgmPx2PI1T/AW3MxhBDo7+9XHUUXRkZGkJKSgoKCAtVRlIsOJ2YBFHvhcBijo6McAB1jPAnMWDgAms7X0NCAcDiM9vZ21VGIiEgBFkAUE6Ojo5iamjLk/B8AsFqtKCgowODgoOooujA8PIzCwkLOmwCQk5MDi8Vyblscxc7Y2BiklFwBFGMOhwOjo6MIhUKqo1AMcAA0na+yshJpaWncBkZElKT4dEYxYeT5P1E8Cezy8QSw3xNCoKCggCuA4iBaqrEAii2HwwEpJUtLg+AAaDpfSkoKamtr0dzczMMJiIiSEF8NUEx0dXVh1apV544QNiKn04lAIIBgMKg6iqYtLi4iEAiwADqP3W7nw3QcRP9MuQUsthwOBwCeBGYEHABNF9LQ0IDp6Wn09vaqjkJERAlmVh2AjMHj8cDtdhv6JB6n0wkpJQYHB+F2u1XH0axAIIBIJMIC6DyFhYU4efIkIpEI34WPIb/fj/T0dKSnp6uOYih2ux1CCBZABsAB0HQhtbW1MJlMOHnyJCoqKlTHISKKGyklzp49i2AwiPn5+Xf934uLi/jQhz6kOnLcsQCiFZubm8PQ0BCuuOIK1VHiKnoSGAugd8cTwN7JbrdjcXER4+PjyM/PVx3HMHw+H7d/xYHZbEZBQQELIAPgAGi6kPT0dFRWVuLkyZP4wAc+oDoOEdGKnD17FqOjoxgdHUUgEMDY2BgCgQBGR0cxNjaGcDh8yWukpKQgLS0Nt99+u6EXNAAsgCgGuru7ARh7/g8A5ObmwmazcQ7QJbAAeqfoFiWfz8cCKIb8fj+qq6tVxzAkngRmDF6vF6mpqfx+TO/Q0NCAX/7ylxgfH0dubq7qOERElxQKheD1etHT04Pe3l74/X4EAgHMzc297fPS0tKQn5+PkpISbNiwAVlZWbDZbBf8sFqtWLVqFczm5KlFkud3SnHj8XhgMplQXl6uOkpcCSE4CPoyjIyMIDs7GzabTXUUzYiuUvH7/aitrVWcxhiCwSAmJia4AihOHA4HWlpasLi4iJSUFNVxaJn6+vrgcrm49ZTeIVoANTc345prrlEdh4jobaSU8Pv96OnpOffR39+PSCQC4K035h0OB8rLy5Gfn4/8/HwUFBQgLy8PaWlpitNrGwsgWrGuri64XC5YrVbVUeLO6XTi8OHDkFIafnngcg0PD/Pd5j+QkZEBm83GQdAxFAgEAHAAdLw4HA4OdNe5SCQCr9eLK6+8UnUU0iC73X5uPh0LICJSTUqJ3t5etLS0nCt8oit7rFYrKioqcPPNN6OiogIVFRXIzMxUnFi/WADRiiwuLqKnpwe7d+9WHSUhnE4n5ufnMT4+jry8PNVxNEdKiZGREezYsUN1FE0RQqCwsJBHwcdQ9M+SK4DiI1r6sNDVL5/Ph4WFBc7/oQsSQqC+vh6vvvoqgsFgUryJR0TaEgqF0N7ejpMnT+LEiROYmpqCEALFxcXYvHkz3G43KioqUFRUxJWsMcQCiFakv78foVDI8PN/oqKDoAcGBlgAXcDU1BTm5+f5wHgBdrsdPT09qmMYBo+Aj6/o3+HoTC/SHw6ApktpaGjAiy++iI6ODmzYsEF1HCJKAtPT02hubsaJEyfQ1taGhYUF2Gw21NbWYsOGDairq+PprnHGAohWxOPxADD+AOio4uJiCCHQ39/PF0sXwAHQF1dYWIhjx44hHA4n1aC5ePH7/cjOzua71nFis9mQk5PDAkjHOACaLmXNmjWw2Ww4efIkX9MQUdyMj4/jjTfewIkTJ9Dd3Q0pJXJycrBr1y5s2LABVVVVfG2cQPyTphXp6upCXl4esrOzVUdJCKvVioKCAgwODqqOokksgC7ObrdDSonR0VH++cSAz+fj6p84Kyoq4klgOtbX1wen08ll83RRZrMZdXV1OHnyJGcbElFMRSIRNDc347XXXkNrayuklHC5XHjve9+LDRs2wOVy8XuOIiyAaNmklPB4PEl3DDNPAru4kZERWK3WpCkElyJaVvj9fhZAMeDz+bBp0ybVMQzN4XDgwIEDfDDUISkl+vv7sXPnTtVRSOPq6+tx7NgxeL1ebhckohWbmJjA/v37sX//fkxOTiIzMxN79+7FlVdeifz8fNXxCCyAViQcDgNA0i5ZGxsbw5kzZ5Jm+1eU0+lEY2MjhyZewMjICIqKiviweAHRAognga3c3NwcZmZmuAIozhwOB4LBICYnJ5GTk6M6Di1BIBBAMBhEaWmp6iikcXV1dRBC4OTJkyyAiGhZIpEIWlpa8Prrr6O5uRkAUFNTgzvvvBMNDQ1ISUlRnJDOl5zNRQyMjY3hH//xH/GhD30Iu3btUh1Hiej8nzVr1ihOklhOpxNSSgwODsLtdquOoykjIyNYu3at6hialJ6ejvT0dJ4EFgM8ASwxzj8JjAWQvni9XgCAy+VSnIS0bvXq1XC73Th58iTe9773qY5DRDpy5swZvP7669i/fz8mJiaQmZmJPXv24KqrruJqHw1jAbRMubm5SEtLw9GjR5O2AOrq6oLNZkNxcbHqKAkVPQmMBdDbBYNBjI+Pc3vTu7Db7VwBFAM8ASwxHA4HgLcKoJqaGsVpaCm8Xi9SUlKS7uczLc+GDRvwq1/9CpOTk9zCTUSXNDk5iWeffRavv/46wuEw1q9fjzvuuAMbNmzgah8diEkBJITYA+DfAKQA+L6U8p9jcV0tE0Jg+/btePrpp5P2B6bH44Hb7U66AZO5ubmw2WycA/QHog/lLIAurrCwEJ2dnapj6J7f74cQAgUFBaqjGNrq1auRlpbGk8B0qL+/H8XFxUm7RZ2Wpr6+Hr/61a/Q3NyMq6++WnUcItKo84ufSCSCXbt24eabb+Ybcjqz4id3IUQKgH8HsBdADYC7hBBJ8Vbh9u3bIaXEsWPHVEdJuLm5OQwNDSXd/B/grfKPg6DfiSeAXZrdbsfExAQWFhZUR9E1n8+HvLw8PtzGmRACDoeDJ4HpTHQANLd/0eVyOBzIy8vDyZMnVUchIg2anJzEz372M3zpS1/Cq6++ih07duAf/uEf8LGPfYzljw7F4tXzNgBdUspuABBCPAbgAwDaYnBtTbPb7SgrK8ORI0dwww03qI6TUD09PZBSJt38nyin04nDhw/zdJzzjIyMQAjBHwTv4vyTwKJbCWnp/H4/5/8kSFFRER8KdWZychLT09McAE2XTQiBhoYG7N+/HwsLC0hNTVUdiYg0YHJyEvv27cNrr72GSCSCnTt34pZbbuF8H52Lxd6dEgD95/3zwO/+v6Swbds2eL3epFsi39XVBZPJhIqKCtVRlHA6nZifn8f4+LjqKJoxMjKCgoICrsp4F9HSgoOgl09KCZ/Px6IxQRwOB6anpzE7O6s6Cl2m/v63XpKxAKKlaGhoQCgUQkdHh+ooRKTYmTNn8Pjjj+N//a//hVdeeQXbt2/HP/zDP+DjH/84yx8DiEUBdKHlD/IdnyTE3UKIY0KIY4FAIAa31YYrrrgCQggcOXJEdZSE8ng8cDqdSXsMenT1BreB/V70CHi6OB4Fv3LT09OYn5/nCqAEOX8QNOmD1+s9t1WZ6HJVVVXBarWeO8KZiJJPOBzGM888gy996Ut4+eWXsW3bNhY/BhSLAmgAwPkbzZ0Ahv7wk6SUD0spt0optxppcGdWVhbWrVuHo0ePQsp39F6GtLi4iJ6enqSc/xNVXFwMIcS5d1qTXSQSgc/nYwF0CVarFVlZWVwBtAI8ASyxzj8KnvShv78fhYWFSfsGDS2P2WxGTU0NTp48mTSvZ4no99rb2/HVr34VTz75JOrq6vDVr36VxY9BxaIAegPAWiFEhRAiFcCdAH4dg+vqxvbt2zE6Ooru7m7VURJiYGAACwsLSTv/B3jrQb6goACDg4Oqo2jC2NgYwuEwC6DLwKPgVyZannEFUGLk5eXBYrEk3TZnPfN6vdz+RcvS0NCAyclJrm4mSiITExN4+OGH8c1vfhNSSjzwwAP47Gc/y5NWDWzFBZCUMgzgfgD7ALQDeFxK2brS6+rJpk2bYLFYcPToUdVREqKrqwsAknoFEACeBHYengB2+QoLC7kCaAV8Ph/MZjNyc3NVR0kKQggUFRVxBZBOzM7OYnx8nCeA0bLU19dDCIETJ06ojkJEcRYOh/Hcc8/hK1/5Ck6ePIkPfOAD+PKXv4za2lrV0SjOYjKtVUr5NICnY3EtPbLZbNiwYQOOHTuGO+64AykpKaojxZXH40Fubi5ycnJUR1HK6XSisbERwWAw6ZfaswC6fHa7HdPT0zh79ixWrVqlOo7u+P1+FBQUwGSKxQJWuhxFRUVJs8JV7zgAmlYiIyMDFRUVaG5uxq233qo6DhHFSWdnJx599FEMDw9jw4YNuOOOO7jVK4nwFXSMbN++HTMzM2hra1MdJa6klPB4PEm/+gd4qwCSUnIbGN4qgDIyMpCenq46iuadfxQ8LR1PAEs8h8OBsbExBINB1VHoErxeLwBwBRAtW319PXp7e3HmzBnVUYgoxs6cOYPvf//7+MY3voFQKIT77rsP9957L8ufJMMCKEZqamqQnp5u+NPAxsfHMTk5mdTzf6KiJ6ywAOIJYEvBk8CWT0oJv9/P+T8JFj0JjKWl9nm9XuTk5GD16tWqo5BONTQ0AABaWloUJyGiWJFS4uDBg/jyl7+MxsZG3Hrrrfjf//t/n/v7TsklJlvA6K3TE7Zs2YJDhw5hfn4eNptNdaS48Hg8ADj/BwByc3Nhs9k4BwhvFUCbNm1SHUMXCgoKIITgw/QyjI+PIxwOcwVQgp1/EhhXlmhbf38/t3/RipSUlCAnJwcnTpzAlVdeqToOEa3Q7OwsfvzjH6OxsRFVVVX4+Mc/zgHPSY4rgGJo+/btCIVCaGpqUh0lbk6fPg2bzYaSkhLVUZQTQnAQNICZmRnMzMxwBdBlslgsyM3N5QqgZeAJYGoUFhbCZDJxELTGBYNB+Hw+lnS0IkIIbNiwAe3t7QiFQqrjENEKRI92P3nyJG677TZ87nOfY/lDLIBiqbKyEnl5eYY+Day9vR1VVVUcwPo70QJISqk6ijIcAL10PAlseaKlGVcAJZbZbEZBQQGPgte46M8irgCilaqvr8fCwgI6OztVRyGiZQiFQnj88cfxzW9+E6tWrcIXv/hF3HTTTRBCqI5GGsCn+BgSQmDbtm1oa2vD1NSU6jgxFwgEEAgEUFNTozqKZjidTszPz2NsbEx1FGWiqwJYAF0+u90On8+X1MXhcvj9flitVmRlZamOknR4FLz28QQwipV169bBZrOhsbFRdRQiWqLBwUF87Wtfw4svvohrr70WX/rSl7gylN6GBVCMbd++HVJKHDt2THWUmGtvbwcAFkDn4SDotwqg1NRU5OXlqY6iG4WFhTh79ixmZmZUR9GV6AlgfAcr8RwOB/x+PyKRiOoodBFerxfp6enIzs5WHYV0zmw2o76+HidOnODfeSKdkFLixRdfxD/90z9henoaf/EXf4E777wTFotFdTTSGBZAMeZwOOByuQx5Glhrayvy8vK4/eI8xcXFEEKce+c1GQ0NDcHhcPChfAmiM2y4DWxpeAKYOg6HA4uLiwgEAqqj0EVEB0DzezHFwsaNGzE9PX3u8A8i0q7JyUn827/9Gx5//HHU1NTgy1/+Murq6lTHIo1iARQH27ZtQ29vr6Ee7hYXF9HR0YGamhq+uDyP1WpFQUFBUq8AGhwcRHFxseoYusKj4JducXERo6OjLKAVOf8kMNKecDiMwcFBbv+imKmrq4PZbOY2MCKNa25uxle/+lV0dXXhox/9KO69915kZGSojkUaxgIoDrZt2wYhhKFWAfX29mJ+fp7bvy4gmU8Cm52dxdTUFAugJcrPz4fJZDJUSRxvo6OjiEQiXAGkCAsgbRseHsbi4iLnPFDM2Gw21NTUoLGxkfPqiDRISomnn34a//7v/47c3Fz8/d//PXbv3s036umSWADFQXZ2Nqqrq3H06FHD/NBsa2uDEALr1q1THUVznE4nAoEAgsGg6igJNzQ0BAAsgJbIZDIhPz+fK4CWgCeAqWWz2ZCdnc2TwDSKA6ApHjZt2oTx8fGk3uZOpEXBYBAPP/ww/ud//gfbtm3D3/zN3/ANMrpsLIDiZNu2bfD7/ejr61MdJSba2tpQUVGBtLQ01VE0x+l0QkqZlNvAoqsBWAAtnd1u5wqgJYj+WfEFjjoOh4MrgDTK6/XCarWyIKWYamhogBCC28CINGR0dBT/8i//gsbGRtx+++345Cc/yUHPtCQsgOJk8+bNMJvNOHz4sOooKzY3N4eenh5u/7qIZD4JbHBwEDabDTk5Oaqj6E5hYSH8fr9hVgnGm8/nQ3p6OtLT01VHSVpFRUUYGRnh16wGeb1eOJ1OLv2nmFq9ejWqqqpYABFpREdHB/7pn/4JExMTeOCBB3DjjTfy+z4tGQugOFm1ahUaGhpw7Ngx3R+h2dHRASklC6CLyM3Nhc1mS8o5QENDQ+dOQqOlsdvtWFhYwJkzZ1RH0QWfz8fVP4o5HA4Eg0FMTk6qjkLnkVJiYGCA278oLjZt2oTh4WFu/yRSKHrE+7/9278hMzMTX/ziF/lcRsvGAiiOtm/fjunpabS3t6uOsiJtbW2w2WyoqKhQHUWThBBJOwh6eHgYDodDdQxd4klgS+Pz+c4NIiY1on/XuQ1MW/x+P4LBIAdAU1xs3LgRALgKiEiRUCiEH/3oR3j88cfR0NCAv/3bv+V2X1oRFkBxVFdXh7S0NF2fBialRFtbG9avXw+TiV8uFxMtgJJpa8T09DSmp6dRUlKiOoouRVezcA7Qpc3Pz2NycpIrgBTjSWDa5PV6AXAANMVHTk4OysvL0dTUpDoKUdKZnJzEv/7rv+LQoUN43/veh89+9rOw2WyqY5HO8Yk+jsxmM7Zs2YKmpibdnhDl9/sxNjbGZYaX4HQ6MT8/j7GxMdVREoYngK1MTk4OLBYLVwBdhuifEQsgtTIyMpCWlsatIBrT39+PlJQUrsakuNm0aRN6e3sxMTGhOgpR0uju7sb//b//F8PDw7jnnntw6623cuQCxQQLoDjbtm0bgsEgTpw4oTrKsrS1tQEAC6BLSMZB0NECiA8dyyOEQEFBAVcAXYZo4cAtYGoJIeBwOFgAaYzX60VxcTHMZrPqKGRQmzZtAgCuAiJKkBMnTuAb3/gGrFYr/vZv//bcVkyiWGABFGdr165FTk6ObreBtbW1obCwEPn5+aqjaFp0EHJ/f7/qKAkzNDSEtLQ0ZGVlqY6iW3a7nSuALoPP54PJZEJBQYHqKEmvqKiIW8A0REqJ/v5+bv+iuLLb7XA4HHjzzTdVRyEyvP379+Ohhx5CSUkJ/vZv/5Yr7SnmWADFmRACO3bsQGtrq+5O+wmHw+js7OTqn8tgtVpRUFCQdCuAeALYyhQWFiIQCOj+pMB4GxkZQX5+Plc4aIDD4cD09DRmZ2dVRyG8NR9iZmaGBRDF3aZNm3D69GnMzMyojkJkSFJKPPPMM/jxj3+MmpoafO5zn8Pq1atVxyIDYgGUADt37oSUUnergLq7uxEMBlkAXaZkOglMSnmuAKLls9vtWFxcxPj4uOoomsYj4LUjuuWT28C0IToAmieAUbxt2rQJUkrdjjQg0jIpJX72s5/hySefxPbt23HvvffCarWqjkUGxQIoAex2OyoqKnDo0CFdnRLV1tYGk8mE6upq1VF0wel0IhAI6Hbg91JMTU1hbm6OBdAK8Sj4S5NS8gh4DeFJYNrS398PIcS5OXRE8eJyuZCXl8c5QEQxFg6H8f3vfx8vv/wybrjhBnzyk5/kimeKKxZACbJz504MDQ3pakZMW1sb3G43jxu8TE6nE1LKpNgGxhPAYoNHwV/a+Pg4QqEQVwBpRF5eHiwWCwsgjfB6vSgsLOQ7xRR3Qghs2rQJbW1tmJ+fVx2HyBDm5+fx4IMP4tixY7jttttw++23c7QCxR0LoATZunUrzGYzDh06pDrKZZmenobX60Vtba3qKLqRTCeBsQCKjYyMDFitVq4Aehc8AUxbhBAoKiriFjCN8Hq9nP9DCbNx40aEw2G0tLSojkKke9PT0/jGN76Bzs5OfOITn8BNN93E8ocSggVQgqSnp6OhoQFHjx5FOBxWHeeSOjo6IKXk/J8lyM3Nhc1mS4o5QENDQ1i9ejUyMjJUR9E1IQTsdjtXAL2LaDnGAkg7eBKYNszOzmJiYoIFECVMZWUlMjIy0NjYqDoKka6Njo7i61//OoaGhnDvvfdi586dqiNREmEBlEA7d+7EzMwMWltbVUe5pLa2NqSlpfGF5RIIIeByuc4N5TQyDoCOncLCQq4Aehc+nw9paWk8CUNDHA4HxsfHsbCwoDpKUuMAaEo0k8mEjRs3orm5GaFQSHUcIl0aGBjAv/zLv2BmZgaf+9znUF9frzoSJRkWQAlUW1uLjIwMzW8Dk1Kira0N69evh8nEL5GlKC0txcDAgKGP9eYJYLFlt9sxNjami5WBKoyMjMBut3NZtIY4HI5zw7lJnWgBxDdqKJE2bdqEYDCIjo4O1VGIdKe3txf/+q//ipSUFHzhC1+A2+1WHYmSEJ/uEyglJQXbt2/HyZMnMTs7qzrORQ0PD2NycpLbv5bB5XJhYWHB0Ft6JicnMT8/zwIoRgoLCyGlxOjoqOoomhQtgEg7eBKYNvT39yM3Nxfp6emqo1ASqa6uhs1m4zYwoiXq7e3FN7/5TaSnp+MLX/gCHA6H6kiUpFgAJdjOnTuxuLiIN954Q3WUi2prawMAFkDLEF2Kb+RtYBwAHVvRo+CNXBouVzAYxOTkJOf/aExhYSGEECyAFPN6vdz+RQlnNpvR0NCAEydOGHq1M1EsnV/+fP7zn0dubq7qSJTEWAAlmNPphNPp1PQ2sLa2NhQVFfGb0zI4HA6YzWb09/erjhI30VPOWADFRnR1C7fTvBMHQGuT2WxGQUEBTwJTKBgMwu/3c/sXKbFp0ybMzMygq6tLdRQizWP5Q1rDAkiBnTt3ore3V5PvnoZCIZw6dYqrf5YpJSUFJSUlhl4BNDw8jMzMTG47iJH09HSkp6dzBdAFRAsGbgHTHofDocmfYcliYGAAUkoWQKREbW0tLBYLt4ERXQLLH9IiFkAKbNu2DSaTSZOrgLq6uhAKhVgArUBpaSm8Xi+klKqjxAUHQMee3W7nCqAL8Pl8EEKc2yZH2lFUVAS/388tIIrwBDBSyWq1oqamBo2NjYZ9rUO0Uix/SKtYACmQmZmJ2tpaHDlyRHMvntva2pCSkoKqqirVUXSrtLQUc3NzGB8fVx0l5qIngJWUlKiOYiiFhYVcAXQBIyMjyM/Ph9lsVh2F/oDD4cDi4iICgYDqKEmpv78fq1evRnZ2tuoolKQ2bdqEiYkJQ694Jloulj+kZSyAFNm5cycmJyc1d4xmW1sbKisrYbVaVUfRLSMPgh4bG8PCwgJPLogxu92OiYkJLCwsqI6iKTwBTLui3wM4B0iN6ABoIYTqKJSkGhoaYDKZuA2M6A+w/CGtYwGkSENDA9LS0jS1DWxqagoDAwOora1VHUXXnE4nTCaTIQdB8wSw+OBJYO8kpYTP5+MAaI3iUfDqhMNhDA0Ncf4PKZWeno6qqioWQETnYflDesACSBGLxYKtW7eisbER8/PzquMAANrb2wHw+PeVslgsKCoqMuQKIBZA8RFd5cIC6PcmJiYQCoVYAGmUzWZDdnY2CyAFhoeHsbi4yAKIlNu0aRNGRkb4fYAILH9IP1gAKbRz506EQiEcP35cdRQAQGtrK1avXs2hkjFQWlpq2BVAOTk5WLVqleoohlJQUACAR8GfL/pnwS1g2uVwOLgFTAEOgCat2LhxIwBwFRAlPa/Xy/KHdIMFkEIVFRWw2+2a2AYmpUR7ezvWr1/PmQIx4HK5MDk5iampKdVRYoongMWHzWZDVlYWVwCdJ1oscAWQdhUVFWFkZISnACWY1+uF1Wrl6XikXHZ2NtasWYOjR4/y+wAlLZ/Ph3/7t39DWloayx/SBRZACgkhsHPnTpw+fRqjo6NKswwODmJqaorbv2IkujTfSKuAIpEIRkZGWADFSWFhIVcAnWdkZAQ2mw0ZGRmqo9BFOBwOzM/PY3JyUnWUpNLf388B0KQZ27Ztw/DwMAYHB1VHIUq4iYkJfPOb34QQAn/1V3/F8od0gQWQYjt27IAQQvkqoLa2NgCc/xMrTqcTgLFOAhsdHUUoFGIBFCc8Cv7togOg+ZCrXTwJLPEikQgGBga4/Ys0Y8uWLTCZTDh69KjqKEQJNTMzg29+85uYm5vDX/7lX3JVJukGCyDFcnJyUF1djcOHDytdPtvS0oLi4mJkZ2cry2AkaWlpyM/PN1QBxAHQ8WW32zE9PY25uTnVUTRhZGSE2780jieBJZ7P50MwGERZWZnqKEQAgNWrV6O2tpbbwCipzM/P49vf/jbGxsZw//33s5QnXWEBpAE7d+7E6Ogourq6lNx/YGAAnZ2d2LJli5L7G5XRBkFHC6Dou/4UW9GHaW4DA4LBICYmJjgAWuMyMjKQlpbGAiiB+vr6AIAFEGnK9u3bMTExoex1LFEihcNhPPTQQ/B6vbj77ruxdu1a1ZGIlmRFBZAQ4kNCiFYhREQIsTVWoZLNpk2bYLValW0De+aZZ2Cz2XDdddcpub9RlZaWIhAI4OzZs6qjxMTQ0BDy8vJgtVpVRzEkrqb4vehWOK4A0jYhBE8CSzCv1wuLxcK/G6QpDQ0NSE1N5TYwMrxIJILvf//76OjowJ/+6Z+ioaFBdSSiJVvpCqAWAB8E8FoMsiQtq9WKLVu24Pjx41hYWEjovUdGRnD8+HFce+21SEtLS+i9jS66HNQoq4B4Alh8FRQUwGw282EaPAFMT4qKilhaJlBfXx9cLhdMJi7gJu2wWq3YuHEjjh8/jnA4rDoOUVxIKfHII4+gsbERd9xxB3bs2KE6EtGyrOgVhJSyXUrZGaswyWznzp2Yn59HY2NjQu/7zDPPwGw24/rrr0/ofZOBkU4CW1xchM/nYwEURyaTCYWFhXyYxlsFkBACBQUFqqPQJTgcDkxPT2N2dlZ1FMOLRCLo7+/n9i/SpO3bt2N2dvbcoSJERvPEE0/gwIEDuOWWW/jcRLrGt5A0Yu3atcjLy0voNrDR0VEcPXoU11xzDY9ajoPMzExkZWUZYhC03+9HOBxmARRnDoeDBRDemoOUl5cHi8WiOgpdQnSVFleuxR8HQJOWrV+/Hunp6Thy5IjqKEQx99xzz2Hfvn3YvXs33v/+96uOQ7QilyyAhBAvCCFaLvDxgaXcSAhxtxDimBDiWCAQWH5igxJC4Oqrr0Z7ezs6OxOzqOrZZ5+FyWTCjTfemJD7JaPS0lJDFEDRUoIFUHw5HA6Mjo4iFAqpjqIUTwDTj+hQ+OiQeIqf6M8SFkCkRSkpKdi6dStOnDiB+fl51XGIYubAgQP45S9/ia1bt+Kuu+6CEEJ1JKIVuWQBJKW8QUpZd4GP/1nKjaSUD0spt0opt3JZ/4XdcMMNyM/Px6OPPhr3PdQTExM4ePAgrrrqKh79HkculwsjIyO6f6AfGhqCEIIP5XFWVFQEKWVSnwQW/f3zBDB9iA6GHxwcVB3F8Pr6+jgAmjRt+/btCIVCOHHihOooRDHR1NSEH//4x6itrcUnP/lJzl8jQ+BXsYZYLBbceeedGB4exosvvhjXe+3btw9SStx0001xvU+yKy0tRSQS0f3D0dDQEAoKCpCamqo6iqFFV1Mk83aayclJLCws8CFXJ4QQKCkp0f33OD3gAGjSOrfbjby8PG4DI0Po6enB97//fZSVleEzn/kMzGaz6khEMbHSY+D/WAgxAGAngKeEEPtiEyt51dfXY8OGDfjtb3+LiYmJuNxjamoK+/fvx86dO5GXlxeXe9BbooOg9b4NbGho6Fw5QfFjt9shhEjqOUA8AUx/ogWQlFJ1FMPiAGjSAyEEtm3bhvb2dkxPT6uOQ7Rso6Oj+Pd//3dkZWXh/vvvh9VqVR2JKGZWegrYE1JKp5TSKqW0SylvjlWwZPbhD38YUkr87Gc/i8v1n3/+eYTDYezZsycu16ffy83NRVpamq4LoHA4zBPAEsRisSA/Pz+pC6Do9jduAdOPkpISzM7O4syZM6qjGFZ0AHT0TQUirdq2bRsikQiOHz+uOgrRsszOzuJb3/oWFhcX8cADD/CgHDIcriPWoLy8PLz3ve9FY2MjWltbY3rt2dlZvPrqq9i2bRsKCwtjem16JyEESktLdX0UvN/vRyQSQUlJieooSSHZTwIbGRmBzWZDZmam6ih0maLfG7gNLH44AJr0ori4GCUlJdwGRroUDofx0EMPYWxsDPfeey/fjCJDYgGkUTfeeCPsdjseffTRmA4QfuGFFxAMBrF3796YXZPencvlwsDAABYXF1VHWZboQx23gCVGUVHRudItGY2MjJzbCkf6wAIo/qIDoPl9mPRg+/bt6O7uxujoqOooRJdNSokf/ehHOH36ND7xiU9g7dq1qiMRxQULII0ym8246667EAgEsG9fbEYrzc3N4aWXXsLmzZv5IjKBXC4XwuGwbgf7Dg0NwWQycSZLgjgcDoTDYQQCAdVRlPD5fPxa05n09HRkZ2ezAIojr9fLAdCkG1u3bgUAHD16VHESosv361//GkePHsUf/dEf4YorrlAdhyhu+EpCw9avX4+tW7fi2Wefjcm7KK+88grm5+dxyy23xCAdXa7ozAa9bgMbHh5GYWEhTz9IkGQ+CSwYDGJ8fJwFkA7xJLD4iUQi8Hq93P5FupGXl4e1a9fi6NGjHA5PunDgwAE8/fTTuPrqqzkjlQyPBZDGfehDH4LJZMJjjz22oh+iwWAQL7zwAurr6+FyuWKYkC7FbrcjNTVVt4OgBwcHOQA6gaLlRzLOAfL7/QA4AFqPSkpKMDw8nLRbF+OJA6BJj7Zt24bh4WEWw6R5bW1teOSRR1BbW4u77rqLW9DJ8FgAaVx2djbe9773obm5GSdPnlz2dV599VXMzs5y9Y8CJpMJTqdTlwVQKBRCIBBgAZRAq1atQnZ2dlIWQNETwLgCSH9KSkoQDofPlXgUOxwATXq0efNmmEwmDoMmTRsYGMB//Md/oLi4GHfffTdSUlJURyKKOxZAOnDdddehuLgYP/vZz7CwsLDkXx8KhfD8889j/fr1cLvdcUhIlxI9CUxvS6FHRkYgpeTMqARL1pPARkZGIITgCYU6xEHQ8cMB0KRHq1evRl1dHd544w3dvfah5DA5OYkHH3wQNpsN999/P2w2m+pIRAnBAkgHUlJS8JGPfARjY2N4+umnl/zr9+/fj6mpKa7+UcjlcmF+fl53g32HhoYAgEfAJ1hRUdG58i2ZjIyMIDc3FxaLRXUUWqKioiKYTCYWQHHAAdCkV9u2bcPExAS6urpURyF6m/n5eTz44IM4e/Ys/uIv/gI5OTmqIxElDF9N6MTatWuxY8cOPPfcc+e2SVyOcDiMffv2Yc2aNTzOUCG9DoIeGhpCSkoKV2QkmMPhQDAYxOTkpOooCcUTwPTLYrGgsLCQBVCMSSk5AJp0q6GhAVarldvASFMikQi+973vYXBwEHfffTecTqfqSEQJxQJIR2677Takpqbi0UcfveyVAYcPH8bExATe+973cqiZQsXFxTCZTLqbAzQ0NAS73c490QkW3eqRTNvApJQsgHSOJ4HFHgdAk55ZrVZs3LgRx48fRzgcVh2HCADwy1/+Ei0tLbjrrrtQW1urOg5RwrEA0pHMzEz80R/9Edrb23H8+PFz/7+UEnNzcxgeHkZHRweOHDmC5557Dj//+c/xm9/8BuXl5Vi/fr3C5GQ2m1FSUqLLFUAcAJ14yVgATU5OIhgM8gQwHSspKcHo6CiCwaDqKIbR19cHgAOgSb+2bduGubk5tLa2qo5ChAMHDuCFF17Addddh927d6uOQ6SEWXUAWprdu3fjwIED+OlPf4oXX3wRZ86cwZkzZy74zorFYkFubi7uuOMOrv7RAJfLhebmZkgpdfHfIxgMYnR0FLt27VIdJemsXr0a6enpSVUARbe2sgDSr5KSEkgpMTQ0hIqKCtVxDIEDoEnv1q9fj9WrV+Po0aPYsGGD6jiUxE6fPo2f/OQnqK2txYc+9CHVcYiUYQGkMyaTCR/72MfwyCOPIDU1FWvWrEFWVtYFP6xWqy6KhmRRWlqKgwcP4syZM8jOzlYd55JGRkYAgCuAFBBCnBsEnSyiv1duAdOv808CYwEUGxwATXqXkpKCrVu34sCBA5ifn+dJS6TE6OgoHnroIRQUFODP//zP+T2VkhoLIB0qLS3F3/3d36mOQUsUneHg9Xp1UQBFTwBjAaSGw+FAU1OT6hgJ4/P5YLVakZWVpToKLVN+fj6sVivnAMVIdAD0zp07VUchWpFt27bhlVdeQVNTE3bs2KE6DiWZ6IlfAHDfffchLS1NcSIitVh/EiWI0+mEEEI3g6CHhoZgNptRUFCgOkpScjgcmJmZwfT0tOooCTEyMoKioiKuWtQxIQQcDgcLoBiJDoDm/B/SO7fbjby8PJ4GRgkXPfHL5/PhM5/5DE+1JQILIKKEsVqtKCws1M0g6J6eHjidTi6TVSQ68yNZtoH5fD7O/zGA6Elgl3tSJV1cdAA0TwAjvRNCYOfOnWhvb8fo6KjqOJREzj/xq7q6WnUcIk3gkx1RApWWluqiAAqHw+jp6cGaNWtUR0la0Vk4yTAIemFhAePj45z/YwAlJSVJtXItnrxeLywWC7fhkiFcddVVEELg9ddfVx2FkkT0xK9rr72WJ34RnYcFEFECuVwujI2NYXZ2VnWUd9XX14dwOIy1a9eqjpK0cnNzkZqamhQrgPx+P6SUXAFkAE6nEwC4DSwG+vr6OACaDCMnJwcNDQ04cODABU+uJYql6IlfNTU1uOOOO1THIdIUvqogSqDoUn6trwLq6uoCAFRWVipOkryi81SSYQUQTwAzjvNPAqPliw6A5vYvMpLdu3djeno6qQ44oMSLnviVn5+PT3/60yzRif4A/0YQJdD5J4FpWVdXF4qKipCRkaE6SlIrKipKigLI5/NBCMHhjAawevVqZGZmsgBaIQ6AJiOqqalBfn4+Xn31VdVRyKCiJ35JKXH//ffzxC+iC2ABRJRA6enpyM3N1XQBJKVEV1cX5/9ogMPhwMTEBObn51VHiSufz3duyxvpX3QQNC0fB0CTEQkhsHv3bpw6dSop3tygxOKJX0SXhwUQUYK5XC5NbwEbGhrC3Nwc5/9oQHRLlNHnAI2MjHD+j4GUlJRgaGgIkUhEdRTd4gBoMqpdu3YhJSWFw6Ap5p588km0tLTgzjvvxLp161THIdIsFkBECVZaWnpueb8WRef/cAWQetGHPyMXQFJKFkAGU1JSglAohEAgoDqKbvX19cHpdHJ2BRlORkYGNm/ejEOHDmFhYUF1HDKIo0ePYt++fdi9ezeuueYa1XGINI2vLIgSrLS0FFJKDAwMqI5yQadPn0Z2djby8vJUR0l6BQUFSElJwdDQkOoocXPmzBkEg0EOgDYQDoJeGSkl+vv7Of+HDOuaa67B3Nwcjh07pjoKGUBfXx/++7//G2vXrsWHP/xh1XGINI8FEFGCuVwuANodBB2d/yOEUB0l6ZlMJhQWFhp6BRBPADOe4uJiCCFYAC2T3+/H/Pw8CyAyrDVr1sDhcHAYNK3Y1NQUHnroIWRkZOAzn/kMzGaz6khEmscCiCjBsrOzsXr1ak3OARobG8PExAS3f2mI0Y+C9/l8AMAtYAZisVhQWFjIAmiZent7AXAANBmXEALXXHMNent7NftmGGlfOBzGd7/7XczMzODee+/lybVEl4kFEFGCCSFQWlqqyRc90fk/HACtHQ6HA4FAAOFwWHWUuPD5fLBarcjOzlYdhWKIJ4EtHwdAUzLYvn07LBYLXnvtNdVRSIeklPjpT38Kj8eDT3ziE+dW1xPRpbEAIlLA7XZjYGAAc3NzqqO8TVdXF2w2Gx88NMThcEBKeW6ljNFEB0Bzy6GxlJSUIBAIaHbYvZZxADQlg7S0NGzbtg1Hjx7F2bNnVcchnXnllVdw4MAB3HLLLdi6davqOES6wlcXRArU1NRASomOjg7VUd4mOv+HDx7aEZ2NY9RtYDwBzJhKSkogpTTs1228cAA0JZNrrrkGwWAQR44cUR2FdKSjowOPP/44Ghoa8P73v191HCLd4VMekQIVFRVYtWoVWltbVUc5Z3Z2FkNDQ5z/ozFFRUUQQhhyEPTc3BzGxsbgdDpVR6EY40lgyxMdAM35P5QMysrKUFZWhtdeew1SStVxSAdGR0fx8MMPw26341Of+hRXDxMtAwsgIgVMJhPWrVuH1tZWzbzo8Xg8AMACSGMsFgvy8vIMuZJiYGAAALh334Dy8/NhsVhYAC1RX18fAHAFECWN3bt3Y3BwEN3d3aqjkMYFg0F85zvfgZQS9957L2w2m+pIRLrEAohIkdraWkxMTGhmZcfp06dhNptRXl6uOgr9AaOeBBY9CY8FkPGYTCYUFxezAFqivr4+WCwWOBwO1VGIEuKKK66AzWbjkfD0rqSU+MEPfoChoSF8+tOfRmFhoepIRLrFAohIkZqaGgBAW1ub4iRv6erqQllZGSwWi+oo9AccDgd8Ph8ikYjqKDHV39+PzMxMZGZmqo5CccCTwJYuOgA6JSVFdRSihLBardi5cyeOHz+OmZkZ1XFIo5566ik0Njbi9ttvP/f6mYiWhwUQkSJ5eXmw2+2amAO0sLCAvr4+bv/SqKKiIoTDYYyOjqqOElP9/f2cdWJgTqcT09PTmJ6eVh1FFzgAmpLV7t27EQ6HcejQIdVRSIMaGxvxm9/8Bjt27MD111+vOg6R7rEAIlKopqYGp06dQigUUpqjt7cXi4uLWLt2rdIcdGHR7SBa2S4YC+FwGENDQ9z+ZWAcBL00HABNyaq4uBhr1qzhMGh6h8HBQfzgBz9AeXk5/uRP/oRDn4ligAUQkUK1tbUIhULo6upSmqOrqwtCCFRWVirNQRcWLYCMNAdoaGgIkUiEBZCBsQBaGg6ApmR2zTXXwO/3o6OjQ3UU0oiZmRl85zvfgc1mwz333MMRBUQxwgKISKGqqiqYzWbl28BOnz6N4uJipKWlKc1BF7Zq1SpkZWUZqgDiAGjjy8jIQEZGBgugy9TX1wez2cwB0JSUNm/ejNWrV+O1115THYU0YHFxEQ8//DAmJydxzz33IDs7W3UkIsNgAUSkkNVqxZo1a5QOgo5EIvB4PNz+pXFGOwmsv78fNpsNBQUFqqNQHJWUlGBgYEB1DF3wer0cAE1Jy2w2Y9euXWhqasLk5KTqOKTYz3/+c3R2duJjH/sYKioqVMchMhQWQESK1dTUYHBwUNkLnoGBAQSDQQ6A1jiHw4GRkRHDzEeIPuxyP7+xlZSUnNvuRxcnpYTX60V5ebnqKETK7N69G5FIBAcOHFAdhRTav38/Xn75Zdxwww3YsWOH6jhEhsMCiEix2tpaAOqOg4/OH2IBpG1FRUWYn5/HmTNnVEdZMSklBgYGuP0rCZSUlCAUChnuBLtY4wBoIqCgoAA1NTV4/fXXsbi4qDoOKeDxePDTn/4UNTU1uO2221THITIkFkBEipWUlCAzM1NZAXT69Gnk5eUhJydHyf3p8hhpEHQgEEAwGGQBlAQ4CPryeDweAOBWB0p61113HSYmJnD06FHVUSjBJiYm8NBDDyEvLw+f/vSnYTLxMZUoHlb0N0sI8f8JITqEECeFEE8IIbJjlIsoaQghUFNTg7a2toRvk5BSoquri6t/dMBIBZDX6wUArnZIAsXFxRBCsAC6hO7ubqSlpXEANCW9uro6uFwuPP3009w6mkQWFhbwne98B6FQCPfeey8PJSGKo5VWq88DqJNSNgA4BeCLK49ElHxqamowOzt77sE4UQKBAKamplgA6UBGRgbS0tIMUQD19/cjJSWFD7tJIDU1FQUFBSyALsHj8cDtdnMmFiU9IQRuvfVW+P1+vPHGG6rjUAJIKfHf//3f6O/vx6c+9Sm+NiCKsxUVQFLK56SU4d/942EAzpVHIko+NTU1ABI/Byg6/4cngGmfEOLcIGi96+/vh8PhgNlsVh2FEqCkpIQF0LuYm5vD0NAQKisrVUch0oQNGzbA6XRyFVCSeO655/DGG2/gAx/4ABoaGlTHITK8WG6u/DMAz8TwekRJIyMjA6WlpWhtbU3ofbu6upCeno6ioqKE3peWp6ioyDArgLj9K3mUlJTA7/cjFAqpjqJJPT09AAC32604CZE2CCHw3ve+FyMjI3jzzTdVx6E4am5uxhNPPIErrrgCe/bsUR2HKClcsgASQrwghGi5wMcHzvucLwEIA/jJu1znbiHEMSHEsUAgEJv0RAZSW1uL7u5unD17NmH3PH36NNasWcNtBzrhcDgwPT2N2dlZ1VGWbWpqClNTU3A6uWA0WZSUlEBKiaGhIdVRNMnj8UAIwQHQROfZtGkTHA4HnnrqKUgpVcehOBgZGcH3v/99uFwufPzjH+drUaIEuWQBJKW8QUpZd4GP/wEAIcSfArgVwEflu3yHllI+LKXcKqXcWlBQELvfAZFB1NTUIBKJoLOzMyH3m5qagt/v5/wfHTHCIGgOgE4+PAns3Xk8HjidTlitVtVRiDQjugpoaGgIjY2NquNQjM3OzuLBBx+ExWLBPffcg9TUVNWRiJLGSk8B2wPgbwC8X0o5F5tIRMnJ7XbDarUmbBtYdP4PCyD9MEIB1N/fDwBcAZRECgoKYLFYWABdQCQSQU9PD+f/EF3Ali1bYLfbuQrIYMLhML773e9iYmIC9957L3Jzc1VHIkoqK50B9CCADADPCyGahBDfjUEmoqRkNpuxbt06tLW1JeSFTldXFywWC1di6Ehubi5SU1N1XwDl5+dj1apVqqNQgphMJhQXF7MAuoDBwUEEg0EWQEQXYDKZ8N73vhcDAwM4efKk6jgUA1JK/PSnP8WpU6fwp3/6p5x9RqTASk8BWyOldEkpN/7u47OxCkaUjGpqajA6OopEzMnq6upCRUUFT2LSESEE7Ha7rk8C4wDo5MSTwC7M4/EAAAsgoou44oorUFhYiN/+9rdcBWQAzz//PA4cOID3vve92LZtm+o4REkplqeAEdEKRY+Dj/c2sPn5eXi9Xh7/rkPFxcW6XQE0Pz8Pv98Pl8ulOgolWElJCaampjA9Pa06iqZ4PB5kZ2dzCwTRRZhMJuzduxderxctLS2q49AKnDhxAr/61a+wZcsWvO9971MdhyhpsQAi0pDCwkLk5+ejra0trvfp6emBlJLzf3SoqKgI4+PjCAaDqqMs2cDAAACwAEpCHAR9YR6PB263m6ffEL2L7du3Iz8/n6uAdGxgYAD/+Z//idLSUnziE5/g9zwihVgAEWlMbW0tOjs7EQ6H43aP06dPQwjBvdc6FB0ErcdtYNEB0CyAkg8LoHeanJzE2NgYt38RXUJKSgr27t2L3t7euL9BRrE3NTWFBx98EKtWrcJ9993HE7+IFGMBRKQxtbW1CAaD52ZDxENXVxdcLhdsNlvc7kHxES2AhoaGFCdZuv7+fmRkZCArK0t1FEqwjIwMZGRknFsFRkB3dzcAzv8huhw7duxAbm4uVwHpTCgUwne+8x3Mzs7i/vvv589/Ig1gAUSkMdXV1TCZTHGbAxQOh9Hd3c35Pzplt9ths9nQ09OjOsqSeb1euFwuLv1OQkIIVFRU6PLrNl48Hg/MZjNXxBFdBrPZjD179qC7uxudnZ2q49BlkFLiRz/6EXp6evBnf/Zn/F5HpBEsgIg0xmazobKyMm7LnPv7+xEKhTj/R6eiD9LR1QN6EQ6HMTw8zBeASayiogLDw8OYm5tTHUUTuru7UV5ezpMYiS7TlVdeiezsbPz2t79VHYUuw1NPPYU33ngDf/RHf4RNmzapjkNEv8MCiEiDamtr0d/fj6mpqZhf+/Tp0wDAAkjH3G43BgcHdTUIemRkBOFwmAVQEovOHOvt7VUbRANCoRD6+vq4/YtoCaKrgE6fPo1Tp06pjkPv4tixY/jNb36DHTt2YM+eParjENF5WAARaVD0OPj29vaYX7urqwuFhYXIzMyM+bUpMdxuNyKRCPr6+lRHuWxerxcAUFpaqjgJqVJeXg4hhO5Wr8WD1+vF4uIiCyCiJbrqqquQmZmJp556SnUUuoje3l788Ic/RGVlJT72sY9x2zeRxrAAItKg0tJSrF69OuZzgMbGxtDW1oZ169bF9LqUWBUVFQCgqwfpgYEBpKamoqCgQHUUUsRms8HhcOjq6zZeokP+eRIj0dJYLBbcfPPN6OjoQFdXl+o49AcCgQAefPBBZGZm4p577uEWVyINYgFEpEFCCKxfvx5tbW0xPe3i5z//OYQQuOWWW2J2TUq89PR02O12XT1Ie71eOJ1OmEz8sZPM3G43enp6kv4UH4/Hg8LCQmRkZKiOQqQ7u3fvRkZGBlcBacz09DS+9a1vIRKJ4IEHHuD3NyKN4itxIo2qra3F9PR0zI5NbmtrQ2NjI2655Rbk5OTE5JqkjtvtRnd3ty4epKWU6O/v5/wfgtvtxtzcHPx+v+ooykgp4fF4uP2LaJlSU1Nx0003oa2t7dxcQ1IrGAziwQcfxMTEBO677z4UFRWpjkREF8ECiEijonOAYrENLBwO47HHHkNhYSFuvPHGFV+P1HO73ZiensbY2JjqKJc0NjaG+fl5FkB0bsuTnlavxVogEMD09DQLIKIVuOaaa5CXl4ef/OQnCIfDquMktcXFRTz88MPo6+vDpz/9aX5vI9I4FkBEGpWVlQWn0xmTAuill16Cz+fDHXfcwf3YBqGnB2kOgKaooqIi2Gw2XXzdxkv0986HJKLls1qt+MhHPoLh4WHs27dPdZykJaXEI488gpaWFnz0ox/Fhg0bVEcioktgAUSkYTU1NfB4PJiZmVn2Nc6cOYPf/va3qK+vR319fQzTkUrFxcWwWq26eJDu7++HyWRCcXGx6iikmBACFRUV6OnpUR1FGY/Hc24gNhEtX11dHbZu3Yqnn34aPp9PdZyk9Otf/xoHDx7Erbfeiquvvlp1HCK6DCyAiDRs+/btEELgoYceQigUWtY1fvnLX2JxcRF33HFHjNORSiaTCeXl5bopgIqKimCxWFRHIQ1wu90YGBhAMBhUHUWJ6PwfHo1MtHIf/vCHkZqaikceeUQXM/GM5NVXX8XTTz+Nq6++GrfeeqvqOER0mVgAEWmY0+nEJz/5SXR1deG//uu/lvzixuPx4MiRI7jxxhtRWFgYp5SkitvtRn9//7LLwUThAGg6n9vthpQSfX19qqMk3NmzZzE0NMTj34liJDMzEx/84Adx6tQpHDp0SHWcpNHY2IhHH30UDQ0N+MhHPsJCm0hHWAARadzWrVvxoQ99CG+++SZ+8YtfXPavi0QiePTRR5GTk4O9e/fGMSGp4na7EYlENP0gPT09jcnJSc7/oXMqKioA6GN+Vaz19PRASok1a9aojkJkGFdddRXWrFmDX/ziF5ienlYdx/BOnz6N73//+6ioqMCnP/1pmEx8nCTSE/6NJdKB66+/Htdffz1eeOEFvPDCC5f1a/bv34/+/n7cfvvtsFqtcU5IKujhQbq/vx8AuAKIzklPT4fdbtf01228eDweCCFQXl6uOgqRYQgh8Cd/8ieYn5/Hz3/+c9VxDG1oaAjf+c53kJeXh/vuuw+pqamqIxHRErEAItIBIQRuv/12bN68Gb/4xS9w/Pjxd/382dlZPPnkk6iursaWLVsSlJISLSMjAwUFBZp+kI4WQE6nU3ES0pLoIOhkm9nh8XjgdDphs9lURyEyFIfDgT179uDIkSNob29XHceQJiYm8K1vfQtmsxl/+Zd/idWrV6uORETLwAKISCdMJhP+7M/+DG63G//1X/+F06dPX/Rzn3zySZw9exZ33nkn92UbnNvtRnd3t2YfpPv7+5GXl4f09HTVUUhD3G43pqamMD4+rjpKwkQiEfT09PD4d6I42bt3L+x2Ox555BEsLCyojmMoMzMz+Na3voWzZ8/igQceQF5enupIRLRMLICIdMRiseC+++5DXl4evvOd72B4ePgdn9Pf34/XX38d1157LY/dTgJutxtnzpzBxMSE6igX5PV6ufqH3iE6BFnLq9dibWhoCPPz8xwATRQnFosFf/Inf4LR0VE89dRTquMYxszMDL7xjW8gEAjgnnvu4ZZuIp1jAUSkM+np6XjggQdgNpvx7W9/G2fOnDn376SUePTRR7F69WoeyZkktDwHKBgMwu/3cwA0vUNJSQksFosmv27jxePxAABXABHFUVVVFXbt2oXnnnsOg4ODquPoXrT88fv9uO+++7Bu3TrVkYhohVgAEelQfn4+7r//fszMzODb3/425ufnAQBHjx6Fx+PBH//xHyMtLU1xSkoEp9Op2QfpwcFBSCn5biG9g8lkQnl5uSa/buPF4/EgMzOTWyeI4uz2229HWloafvzjHyMSiaiOo1t/WP6sX79edSQiigEWQEQ6VVZWhrvvvhuDg4N4+OGHMTs7i1/84hcoLy/Hrl27VMejBElJSdHsgzRPAKN343a70d/fj1AopDpKQng8HlRWVnIuG1Gcpaen44477kBPTw9ee+011XF0ieUPkXGxACLSsbq6Onz0ox9Fa2sr/uEf/gHT09O46667+ICRZKIP0uFwWHWUt+nv70d6ejpycnJURyENcrvdWFxcPFcUGtnU1BRGR0exZs0a1VGIksK2bduwfv16PPHEE5icnFQdR1dY/hAZGwsgIp276qqrcOutt2JiYgK7du1CeXm56kiUYBUVFQiHw/B6vaqjvI3X64XL5WIhSRek5flVsRad/8MB0ESJIYTARz/6USwuLuKxxx5THUc3WP4QGR8LICIDuPXWW/HAAw/gwx/+sOoopEB0qKyWHqQjkQgGBwe5/YsuKisrC3l5eejp6VEdJe66u7thNps5EJ0ogQoKCnDrrbeisbERb775puo4msfyhyg5sAAiMgAhBGpra2G1WlVHIQWig2W1VACNjIwgHA6zAKJ3VVFRcW51jJF5PB6UlZXBbDarjkKUVG688UaUl5fjBz/4Afr6+lTH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\n",
"text/plain": [
"<Figure size 1440x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"def visualize_q_func():\n",
"\n",
" dpi, width, height = 10, 200, 80\n",
" figsize = width / float(dpi), height / float(dpi)\n",
" LabelSize, LegendFontsize, font_gap = 40, 40, 5\n",
" \n",
" fig = plt.figure(figsize=figsize)\n",
" \n",
" dataset = SinGenerator()\n",
" print(dataset)\n",
" xaxis, yaxis = [], []\n",
" for idx, position, value in dataset:\n",
" xaxis.append(position)\n",
" # yaxis.append(dataset._amplitude_scale[position])\n",
" yaxis.append(value)\n",
"\n",
" cur_ax = fig.add_subplot(1, 1, 1)\n",
" cur_ax.plot(xaxis, yaxis, color=\"k\", linestyle=\"-\", alpha=0.6, label=None)\n",
"\n",
"visualize_q_func()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"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.8.8"
}
},
"nbformat": 4,
"nbformat_minor": 5
}