{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Classification: inference\n", "=========================\n", "\n", "In this notebook we demonstrate how to use the script `scripts/classification/main_classification_inference.py` to identify organisms in clips to taxonomic groups. \n", "\n", "We first import the necessary packages, and specify the path where our `main` scripts are found: " ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "import os, sys \n", "from pathlib import Path\n", "import yaml\n", "\n", "from mzbsuite.utils import cfg_to_arguments\n", "# !pip install -e ../\n", "\n", "sys.path.append(\"../scripts/\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The most important function in this task is `inference_classifier`, and we specifically import it here for ease: " ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[0;31mSignature:\u001b[0m \u001b[0minference_classifier\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcfg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mDocstring:\u001b[0m\n", "Function to run inference on macrozoobenthos images clips, using a trained model.\n", "\n", "Parameters\n", "----------\n", "args : argparse.Namespace\n", " Namespace containing the arguments passed to the script. Notably:\n", " \n", " - input_dir: path to the directory containing the images to be classified\n", " - input_model: path to the directory containing the model to be used for inference\n", " - output_dir: path to the directory where the results will be saved\n", " - config_file: path to the config file with train / inference parameters\n", "\n", "cfg : dict\n", " Dictionary containing the configuration parameters.\n", "\n", "Returns\n", "-------\n", "None. Saves the results in the specified folder.\n", "\u001b[0;31mFile:\u001b[0m /data/users/luca/mzb-workflow/scripts/classification/main_classification_inference.py\n", "\u001b[0;31mType:\u001b[0m function" ] } ], "source": [ "# from classification.main_classification_finetune import main as finetune_classifier\n", "from classification.main_classification_inference import main as inference_classifier\n", "?inference_classifier" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next we declare the running parameters, telling the script where to find the input data, the model and where to put the outputs. In this notebook, we pass these as a Python dictionary, but a shell (`.sh`) achieving the same result can be found in `workflows/run_pipeline.sh`. " ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/data/users/luca/mzb-workflow/notebooks\n" ] }, { "data": { "text/plain": [ "{'glob_random_seed': 222,\n", " 'glob_root_folder': '/data/users/luca/mzb-workflow/mzb-workflow/',\n", " 'glob_blobs_folder': '/data/users/luca/mzb-workflow/mzb-workflow/data/derived/blobs/',\n", " 'glob_local_format': 'pdf',\n", " 'model_logger': 'wandb',\n", " 'impa_image_format': 'jpg',\n", " 'impa_clip_areas': [2750, 4900],\n", " 'impa_area_threshold': 5000,\n", " 'impa_gaussian_blur': [21, 21],\n", " 'impa_gaussian_blur_passes': 3,\n", " 'impa_adaptive_threshold_block_size': 351,\n", " 'impa_mask_postprocess_kernel': [11, 11],\n", " 'impa_mask_postprocess_passes': 5,\n", " 'impa_bounding_box_buffer': 200,\n", " 'impa_save_clips_plus_features': True,\n", " 'lset_class_cut': 'order',\n", " 'lset_val_size': 0.1,\n", " 'lset_taxonomy': '/data/users/luca/mzb-workflow/data/MZB_taxonomy.csv',\n", " 'trcl_learning_rate': 0.001,\n", " 'trcl_batch_size': 16,\n", " 'trcl_weight_decay': 0,\n", " 'trcl_step_size_decay': 5,\n", " 'trcl_number_epochs': 10,\n", " 'trcl_save_topk': 1,\n", " 'trcl_num_classes': 8,\n", " 'trcl_model_pretrarch': 'efficientnet-b2',\n", " 'trcl_num_workers': 16,\n", " 'trcl_wandb_project_name': 'mzb-classifiers',\n", " 'trcl_logger': 'wandb',\n", " 'trsk_learning_rate': 0.001,\n", " 'trsk_batch_size': 32,\n", " 'trsk_weight_decay': 0,\n", " 'trsk_step_size_decay': 25,\n", " 'trsk_number_epochs': 400,\n", " 'trsk_save_topk': 1,\n", " 'trsk_num_classes': 2,\n", " 'trsk_model_pretrarch': 'mit_b2',\n", " 'trsk_num_workers': 16,\n", " 'trsk_wandb_project_name': 'mzb-skeletons',\n", " 'trsk_logger': 'wandb',\n", " 'infe_model_ckpt': 'last',\n", " 'infe_num_classes': 8,\n", " 'infe_image_glob': '*_rgb.jpg',\n", " 'skel_class_exclude': 'errors',\n", " 'skel_conv_rate': 131.6625,\n", " 'skel_label_thickness': 3,\n", " 'skel_label_buffer_on_preds': 25,\n", " 'skel_label_clip_with_mask': False,\n", " 'trcl_gpu_ids': None}" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ROOT_DIR = Path.cwd()\n", "print(ROOT_DIR)\n", "MODEL = \"efficientnet-b2-v0\"\n", "\n", "arguments = {\n", " \"config_file\": ROOT_DIR.parent.absolute() / \"configs/configuration_flume_datasets.yaml\",\n", " \"input_dir\": ROOT_DIR.parent.absolute() / \"data/mzb_example_data/training_dataset/val_set/\",\n", " \"input_model\": ROOT_DIR.parent.absolute() / f\"models/mzb-classification-models/{MODEL}\", \n", " \"output_dir\": ROOT_DIR.parent.absolute() / \"results/mzb_example_data/classification\",\n", "}\n", " \n", "with open(str(arguments[\"config_file\"]), \"r\") as f:\n", " cfg = yaml.load(f, Loader=yaml.FullLoader)\n", "\n", "cfg[\"trcl_gpu_ids\"] = None\n", "cfg" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We now need to transform parameters in the configuration file in a format that Python can understand (a dictionary in this case), we can use the provided helper function `cfg_to_arguments`: " ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'glob_random_seed': 222, 'glob_root_folder': '/data/users/luca/mzb-workflow/mzb-workflow/', 'glob_blobs_folder': '/data/users/luca/mzb-workflow/mzb-workflow/data/derived/blobs/', 'glob_local_format': 'pdf', 'model_logger': 'wandb', 'impa_image_format': 'jpg', 'impa_clip_areas': [2750, 4900], 'impa_area_threshold': 5000, 'impa_gaussian_blur': [21, 21], 'impa_gaussian_blur_passes': 3, 'impa_adaptive_threshold_block_size': 351, 'impa_mask_postprocess_kernel': [11, 11], 'impa_mask_postprocess_passes': 5, 'impa_bounding_box_buffer': 200, 'impa_save_clips_plus_features': True, 'lset_class_cut': 'order', 'lset_val_size': 0.1, 'lset_taxonomy': '/data/users/luca/mzb-workflow/data/MZB_taxonomy.csv', 'trcl_learning_rate': 0.001, 'trcl_batch_size': 16, 'trcl_weight_decay': 0, 'trcl_step_size_decay': 5, 'trcl_number_epochs': 10, 'trcl_save_topk': 1, 'trcl_num_classes': 8, 'trcl_model_pretrarch': 'efficientnet-b2', 'trcl_num_workers': 16, 'trcl_wandb_project_name': 'mzb-classifiers', 'trcl_logger': 'wandb', 'trsk_learning_rate': 0.001, 'trsk_batch_size': 32, 'trsk_weight_decay': 0, 'trsk_step_size_decay': 25, 'trsk_number_epochs': 400, 'trsk_save_topk': 1, 'trsk_num_classes': 2, 'trsk_model_pretrarch': 'mit_b2', 'trsk_num_workers': 16, 'trsk_wandb_project_name': 'mzb-skeletons', 'trsk_logger': 'wandb', 'infe_model_ckpt': 'last', 'infe_num_classes': 8, 'infe_image_glob': '*_rgb.jpg', 'skel_class_exclude': 'errors', 'skel_conv_rate': 131.6625, 'skel_label_thickness': 3, 'skel_label_buffer_on_preds': 25, 'skel_label_clip_with_mask': False, 'trcl_gpu_ids': None}\n" ] } ], "source": [ "# Transforms configurations dicts to argparse arguments\n", "args_p = cfg_to_arguments(arguments)\n", "cfg_p = cfg_to_arguments(cfg)\n", "print(str(cfg_p))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Once we have all set up, we can simply call the `inference_classifier` function, which will use the provided parameters to produce predictions and a summary of classification accuracy (against a `val` set if it is provided). " ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "GPU available: True (cuda), used: True\n", "TPU available: False, using: 0 TPU cores\n", "IPU available: False, using: 0 IPUs\n", "HPU available: False, using: 0 HPUs\n", "LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0,1]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Predicting DataLoader 0: 100%|██████████| 4/4 [00:00<00:00, 9.33it/s]\n" ] }, { "data": { "image/png": "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7bRmzRqbInD79u2qVauWGjZsaB23c+dOm+N27typVq1aqUqVKpKufPJ09Sxg586d9eOPP6ply5Z25eC7775T06ZNNXnyZOu+I0eO2HUOVxo6dKhOnz5t/Q5khw4dlJiYqKZNm0qSsrKybGYxAwMDlZiYqPHjx2vBggVq0KCB5s2bpwceeMBVb6HcJScnKywszPq4qL33scce09KlS5WdnW0zmxsYGKj4+HhFR0dr8eLFCggI0OzZszV48OByj92VuNbsR84cQ97sR84cQ97sR85QkXGfP0nTp0/X3LlzFRsbq549e+rkyZP68ccf9fDDD6tly5bq0aOHpk2bppMnT2rUqFHq3bu34uLiJBW/z9+UKVO0ePFizZo1S7169VJOTo62b9+umjVr6oknntCxY8d0yy236Mknn1RERIQOHDigUaNG6ZlnntG0adMkXVnNMzk5WaNHj9bTTz+tvXv3avTo0Zo1a5aefvppSVeWFPby8tLChQvl4eGh+vXr64cfflD37t315JNPavTo0apRo4bS09O1ceNGvfvuu5JKvj/g559/rgcffFAffvihunTponXr1mn69OkqKCjQ2bNnbyiHRr5vjJEZ4T5/FZGr7vMHAEBFZuS/14piu//++w3VDnv58mUlJCQYMmeOMP3MnyRNnTpVVatW1csvv6zffvtNAQEBGjt2rKpXr66vvvpKzz33nLp06aLq1avrgQce0OzZs695rldffVW+vr6KiYnRL7/8otq1a6tz58566aWXJEkNGzZUYmKiXnjhBXXs2FF169bVU089ZbPgiiQNHz5c//vf/9S1a1dVqVJFzz77rMaMGWN9fsaMGXr66afVokUL5ebmymKx6NZbb1VSUpImT56s3r17y2KxqEWLFho6dGip73/gwIEaP368IiIilJubq3vvvVdTp061FqMAAAAAKj5m/gyoT58+6tSpk2JjY10dyg0z8idJRsbMn2OY+QMAwH5G/nuNmb/ywcwfAAAAAEMw2gqbRoqlLJh+tU8AAAAAMANm/gxoy5Ytrg4BAAAAQCVD8QcAAADAEGj7dC7aPgEAAADABCj+AAAAAMAEaPsEAAAAYAi0fToXM38AAAAAYAIUfwAAAABgArR9AgAAADAE2j6di5k/AAAAADABij8AAAAAMAHaPgEAAAAYAm2fzsXMHwAAAACYAMUfAAAAAJgA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KTg4uNjNMjdu3KgePXqUeExoaGix8Rs2bFBISEiZLH5TGXXv3l2bN2+22bdp0yYFBwebMmdFq3VGR0dbt99//10JCQl67bXXrnnczz//rKCgIJt9t956q37++Wdnh+wS/Hw6hrzZj5w5hrzZj5yhoqP4c7KWLVvqpptusinAzpw5c90/9q4u2Hbu3Kk2bdpIknUFpIKCAuvzfn5+atiwoX755Re1bNnSZitaIOZatm3bpoEDB1qXj23evPl17xni4eEhb29vm81VoqKitHTpUi1fvlzp6ekaP368MjMzrT3QkyZN0vDhw63jx44dqyNHjigqKkrp6elavny5li1bZtP6WtmdP39eaWlp1tU7Dx8+rLS0NOsy1VOmTNHIkSOt40eNGqXMzExFR0frp59+UlxcnOLi4qz3qqyMPDw81LRpUzVt2lTSle84Nm3aVPXq1dP58+d19OhRmy0/P19nz55VVlaW9RzPPPOMHn74YevjxMREdezYUQMHDlSDBg00cOBABQUFad26deX+/soLP5+OIW/2I2eOIW/2I2fO5eobul/rJu+VBW2fTlazZk099dRTeuGFF1SvXj35+flp8uTJNj28Jfnkk08UEhKiXr166aOPPtL333+vZcuWSbryR6iXl5fWr1+vRo0aydPTUz4+Ppo2bZrGjRsnb29vhYeHKzc3V3v27NGZM2esvcYladmypdasWaPt27erTp06mj17trKzs9W2bdsyzYWzDB06VKdPn9aMGTOUlZWlDh06KDEx0fpHe1ZWls29dwIDA5WYmKjx48drwYIFatCggebNm6cHHnjAVW+h3CUnJyssLMz6ODo6WpL02GOPaenSpcrOzraZzQ0MDFR8fLyio6O1ePFiBQQEaPbs2Ro8eHC5x15eWrRooWnTplkfF31vdsuWLde9F0+R+vXr28z+//zzz4qNjdWwYcM0dOhQZWdnKzY2Vv/973/LNHYj4efTMeTNfuTMMeTNfuQMFRn3+SsH58+f1//7f/9Pn332mWrVqqXnn39e69ats97nr1mzZoqMjLTOori5uWnBggWKj4/X1q1b5e/vrzfeeEPDhg2znnPp0qWaMWOGjh07pt69e1v7gv/1r3/p7bff1v79+1WjRg0FBQUpMjJSgwcPvub9AX///XeNHDlSmzdvVvXq1TVmzBhlZmbq3Llzio+Pv6H3aOT7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T9H5r95XdD57zlujRo1S45eu3ypwreP+7Hr5LC2mF154QV999ZXeeecdtWzZUl5eXnrwwQeVl5d3zdfz8PAodl5XiYqK0uOPP66QkBCFhobq/fffV2ZmpsaOHSvpSqF67NgxffDBB5KurLA1f/58RUVFafTo0dqxY4eWLVumf//73658G+WKnDmGvNmvsLBQ69evV//+/Yv9flyyZIlOnTqlSZMmSZLuu+8+xcfHa+HChbr33nu1f/9+ffnll5oyZYorQncprjX7kTPHkDf7kTNUZC4r/tq1aycPDw9lZmaWeM+nouJv586datKkiaQr7T8///yz2rRpc0Ov4efnp4YNG+qXX37Ro48+WmaxO3peb29vNWjQQN9++61uv/126/7t27era9euNmN37txpHZOfn6/k5GRrC2a1atUkSQUFBdbx18tnabZt26YRI0Zo8ODBkqTz58/r8OHDdp3DlYYOHarTp09rxowZysrKUocOHZSYmKimTZtKunLvsD/PYgYGBioxMVHjx4/XggUL1KBBA82bN8/aZmsG5Mwx5M1+ycnJOnHihMLDw4s99/vvv1s7KqQrnRsxMTFasGCBPv/8c9WrV08RERE2vy/NgmvNfuTMMeTNfuTMuWj7dC6X3udvypQpWrx4sWbNmqVevXopJydH27dvV82aNdW0aVP17dtX7du319y5c+Xn56fJkycrNTVVBw8eVLVq1Uq8z198fLwGDx5snf1bunSpxo0bp5iYGIWHhys3N1d79uzRmTNnFBUVpcOHDyswMFApKSnq1KmTpJLvo3f1azlyXkmKjY3VK6+8ovfff1+dOnXSihUrNHv2bP34449q1aqV9bgmTZooNjZWbdu21Zw5c/Svf/1LGRkZql+/vo4dO6bGjRtrxYoVGjBggLy8vFSzZs1S8/nEE09c8/6AgwcP1uHDh7VixQq5ublp6tSp2rJli0aOHKnY2Ngb+m9p5PvGALjC1ff5q4hcdZ8/AHAGI/+9VhTb9OnTDXefv1deecWQOXOES79E8eqrr8rX11cxMTH65ZdfVLt2bXXu3FkvvfSStY3xjTfe0HPPPaeDBw+qY8eOSkhIsM583YhRo0apevXqevvttxUdHa0aNWooKChIkZGRfyl2R887btw45eTk6Pnnn9eJEyfUrl07JSQkqFWrVjbj3njjDb355ptKSUlRixYt9Pnnn1tXyWvYsKGmT5+uF198UU8++aSGDx+uuLi4UvNZmjlz5mjkyJHq0aOH6tevr4kTJ7p89U4AAAAAZculM3+ludYsVWV3rRlDozPyJ0kArmDmz37M/AGoTIz891pRbDNmzDDczN/LL79syJw54oZm/ubNm3fDJxw3bpzDwQAAAAAAnOOGir85c+bc0Mnc3Nwo/gAAAADAgG6o+MvIyHB2HMX06dNHBu1IdapmzZqZ8n0DAAAA7u7ucnd32a3IizFSLGXB4XeTl5enAwcOKD8/vyzjAQAAAAA4gd3F38WLF/XUU0+pevXqat++vfU+JuPGjdMbb7xR5gECAAAAAP46u4u/SZMmKS0tTVu2bLFZiefuu+/WqlWryjQ4AAAAAOZRdJN3I22Vid33+YuPj9eqVavUvXt3m2S0a9dOhw4dKtPgAAAAAABlw+6Zv5MnT8rX17fY/gsXLlS6yhgAAAAA7LF161bdd999atCggdzc3BQfH2/zvMVi0bRp09SgQQN5eXmpT58++vHHH6973jVr1qhdu3by8PBQu3bttHbtWrtjs7v469Kli9atW2d9XFTwLVmyRKGhoXYHAAAAAABS5Wj7vHDhgjp27Kj58+eX+Pxbb72l2bNna/78+dq9e7f8/f3Vr18//fHHH9c8544dOzR06FA9/vjjSktL0+OPP66HHnpIu3btsis2u9s+Y2JidM8992j//v3Kz8/X3Llz9eOPP2rHjh1KSkqy93QAAAAAUGmEh4crPDy8xOcsFotiY2M1efJkDRkyRJK0cuVK+fn56V//+peefvrpEo+LjY1Vv379NGnSJElX1mFJSkpSbGys/v3vf99wbHbP/PXo0UPfffedLl68qBYtWmjDhg3y8/PTjh07FBwcbO/pAAAAAMAUMjIylJ2drf79+1v3eXh46I477tD27duvedyOHTtsjpGksLCwUo8pid0zf5IUFBSklStXOnIoAAAAAJTIaCtsFsWSk5Njs9/Dw0MeHh52ny87O1uS5OfnZ7Pfz89PR44cKfW4ko4pOt+Ncqj4Kygo0Nq1a5Weni43Nze1bdtWAwcOVNWqDp0OAAAAAAyrcePGNo9feeUVTZs2zeHzXV3gWiyW6xa9jhxzNburtf/85z8aOHCgsrOz1bp1a0nSzz//rJtvvlkJCQkKCgqy95QAAAAAYFhHjx6Vt7e39bEjs36S5O/vL+nKTF5AQIB1/4kTJ4rN7F193NWzfNc7piR2f+dv1KhRat++vX799Vft3btXe/fu1dGjR3XrrbdqzJgx9p4OAAAAACQZd7VPb29vm83R4i8wMFD+/v7auHGjdV9eXp6SkpLUo0ePax4XGhpqc4wkbdiwodRjSmL3zF9aWpr27NmjOnXqWPfVqVNHr732mrp06WLv6QAAAACg0jh//rz++9//Wh9nZGQoNTVVdevWVZMmTRQZGanXX39drVq1UqtWrfT666+revXqeuSRR6zHDB8+XA0bNlRMTIwk6bnnntPtt9+uN998UwMHDtTnn3+uTZs26dtvv7UrNruLv9atW+v48eNq3769zf4TJ06oZcuW9p4OAAAAACqNPXv2qG/fvtbHUVFRkqQnnnhCcXFxio6O1v/+9z/94x//0JkzZ9StWzdt2LBBtWrVsh6TmZkpd/f/a9Ls0aOHPv74Y02ZMkVTp05VixYttGrVKnXr1s2u2G6o+Pvz6javv/66xo0bp2nTpql79+6SpJ07d2rGjBl688037XpxAAAAAChi1NU+7dGnTx9ZLJZSzzlt2rRSF4zZsmVLsX0PPvigHnzwQbvj+bMbKv5q165t88YtFoseeugh676iN3ffffepoKDgLwUEAAAAACh7N1T8ffPNN86OAwAAAADgRDdU/N1xxx3OjgMAAAAADNX2Wdk4fFf2ixcvKjMzU3l5eTb7b7311r8cFAAAAACgbNld/J08eVJPPvmkvvzyyxKf5zt/AAAAAGA8dt/kPTIyUmfOnNHOnTvl5eWl9evXa+XKlWrVqpUSEhKcESMAAAAAE3D1Dd2vdZP3ysLumb+vv/5an3/+ubp06SJ3d3c1bdpU/fr1k7e3t2JiYnTvvfc6I04AAAAAwF9g98zfhQsX5OvrK0mqW7euTp48KUkKCgrS3r17yzY6AAAAAECZsLv4a926tQ4cOCBJ6tSpk9577z0dO3ZMixcvVkBAQJkHCAAAAMAcXN3iSdvnVSIjI5WVlSVJeuWVVxQWFqaPPvpI1apVU1xcXFnHBwAAAAAoA3YXf48++qj137fddpsOHz6sn376SU2aNFH9+vXLNDgAAAAAQNlw+D5/RapXr67OnTuXRSwAAAAATMxorZZGiqUs3FDxFxUVdcMnnD17tsPBAAAAAACc44aKv5SUlBs6WWWrjAEAAACgsrih4u+bb75xdhwAACfr27evq0OocPhQ0zEWi8XVIQCooNzd3eXubvcNCZzGSLGUhcr1bgAAAAAAJaL4AwAAAAAT+MurfQIAAABAWWC1T+di5g8AAAAATIDiDwAAAABMwKHi78MPP1TPnj3VoEEDHTlyRJIUGxurzz//vEyDAwAAAGAeRW2fRtoqE7uLv0WLFikqKkoDBgzQ2bNnVVBQIEmqXbu2YmNjyzo+AAAAAEAZsLv4e/fdd7VkyRJNnjxZVapUse4PCQnRvn37yjQ4AAAAAEDZsHu1z4yMDN12223F9nt4eOjChQtlEhQAAAAA8zFaq6WRYikLds/8BQYGKjU1tdj+L7/8Uu3atSuLmAAAAAAAZczumb8XXnhBzzzzjC5duiSLxaLvv/9e//73vxUTE6OlS5c6I0YAAAAAwF9kd/H35JNPKj8/X9HR0bp48aIeeeQRNWzYUHPnztWwYcOcESMAAAAAE3B3d5e7u3HuRmekWMqC3cWfJI0ePVqjR4/WqVOnVFhYKF9f37KOCwAAAABQhhwq/orUr1+/rOIAAAAAADiR3cVfYGBgqave/PLLL38pIAAAAADmxGqfzmV38RcZGWnz+PLly0pJSdH69ev1wgsvlFVcAAAAAIAyZHfx99xzz5W4f8GCBdqzZ89fDggAAAAAUPbKbPma8PBwrVmzpqxOBwAAAMBkito+jbRVJmVW/H366aeqW7duWZ0OAAAAAFCG7G77vO2222wqYIvFouzsbJ08eVILFy4s0+AAAAAAAGXD7uJv0KBBNo/d3d118803q0+fPmrTpk1ZxQUAAADAZIzWammkWMqCXcVffn6+mjVrprCwMPn7+zsrJgAAAABAGbPrO39Vq1bV//t//0+5ubnOigcAAAAA4AR2t31269ZNKSkpatq0qTPiAQAAAGBStH06l93F3z/+8Q89//zz+vXXXxUcHKwaNWrYPH/rrbeWWXAAAAAAgLJxw8XfyJEjFRsbq6FDh0qSxo0bZ33Ozc1NFotFbm5uKigoKPsoAQAAAAB/yQ0XfytXrtQbb7yhjIwMZ8YDAAAAwKTc3d3l7l5mtyL/y4wUS1m44eLPYrFIEt/1AwAAAIAKyK5StrJ94REAAAAAzMKuBV9uueWW6xaAv//++18KCAAAAIA5sdqnc9lV/E2fPl0+Pj7OigUAAAAA4CR2FX/Dhg2Tr6+vs2IBAAAAADjJDX/nr7JNeaJyWbhwoQIDA+Xp6ang4GBt27at1PFJSUkKDg6Wp6enmjdvrsWLF5dTpMZBzhxD3uxHzkrXu3dvJSQk6NixY7JYLBo4cKDN876+vlqxYoWOHTumCxcu6Msvv1TLli2ve94hQ4boxx9/1KVLl/Tjjz9q0KBBTnoHxsG15hjyZj9y5lxFrZ9G2CqbGy7+ilb7BIxm1apVioyM1OTJk5WSkqLevXsrPDxcmZmZJY7PyMjQgAED1Lt3b6WkpOill17SuHHjtGbNmnKO3HXImWPIm/3I2fXVqFFDaWlpioiIKPH5+Ph4NW/eXAMHDtRtt92mI0eOaNOmTapevfo1z9m9e3etWrVKH374oTp27KgPP/xQq1evVteuXZ31NlyOa80x5M1+5AwVmZuFqq7CsVgsKigoUNWqtl27eXl5qlatmt3nc/S4P8vJyZGPj4/OnTsnb2/vv3Que3Xr1k2dO3fWokWLrPvatm2rQYMGKSYmptj4iRMnKiEhQenp6dZ9Y8eOVVpamnbs2FEuMbsaOXMMebNfRc9ZeX/qa7FYNGjQIH3++eeSpFatWunnn39W+/bttX//fklX7jl14sQJTZw4UcuWLSvxPB9//LG8vb01YMAA674vv/xSZ86c0SOPPFIu76O8VfRrzVXIm/0qcs5c+ffa9RTF9v7775f64VZ5u3jxosaMGWPInDmict21sAKzWCx666231Lx5c3l5ealjx4769NNPJUlbtmyRm5ubvvrqK4WEhMjDw0Pbtm1Tnz59FBERoaioKNWvX1/9+vWTdKW1oGvXrvLw8FBAQIBefPFF5efnW1/rWsdNmzZNTZo0kYeHhxo0aKBx48aVfyLslJeXp+TkZPXv399mf//+/bV9+/YSj9mxY0ex8WFhYdqzZ48uX77stFiNgpw5hrzZj5z9dR4eHpKkS5cuWfcVFhYqLy9PvXr1uuZxoaGh2rBhg82+r776Sj169HBOoC7GteYY8mY/cuZ8rm7zrOytnxR/BjFlyhStWLFCixYt0o8//qjx48frscceU1JSknVMdHS0YmJilJ6erltvvVWStHLlSlWtWlXfffed3nvvPR07dkwDBgxQly5dlJaWpkWLFmnZsmWaOXOmzetdfdynn36qOXPm6L333tPBgwcVHx+voKCgcs2BI06dOqWCggL5+fnZ7Pfz81N2dnaJx2RnZ5c4Pj8/X6dOnXJarEZBzhxD3uxHzv66n376SYcPH1ZMTIxq166tm266SRMnTlRAQIACAgKueZy/v7+OHz9us+/48ePy9/d3dsguwbXmGPJmP3KGis6u1T7hHBcuXNDs2bP19ddfKzQ0VJLUvHlzffvtt3rvvfc0ZswYSdKMGTOss3RFWrZsqbfeesv6ePLkyWrcuLHmz58vNzc3tWnTRr/99psmTpyol19+We7u7iUel5iYKH9/f91999266aab1KRJk1K/G5Kbm6vc3Fzr45ycnL+eiL/g6k9lLBZLqZ/UlDS+pP2VGTlzDHmzHzlzXH5+vh544AEtW7ZMZ86cUX5+vjZt2qTExMTrHnt166Wbm1ul//4+15pjyJv9yBkqKmb+DGD//v26dOmS+vXrp5o1a1q3Dz74QIcOHbKOCwkJKXbs1fvS09MVGhpq88ukZ8+eOn/+vH799ddrHvf3v/9d//vf/9S8eXONHj1aa9eutWkVvVpMTIx8fHysW+PGje1+32Whfv36qlKlSrFP206cOFHsU7Yi/v7+JY6vWrWq6tWr57RYjYKcOYa82Y+clY29e/fqtttuk4+PjwICAhQeHq569eopIyPjmsdkZ2cXm+Xz9fUtNhtYWXCtOYa82Y+cOZ+7u7vhtsqkcr2bCqqwsFCStG7dOqWmplq3/fv3W7/3J11ZEe5qV+8r6ZOnkj5duvq4xo0b68CBA1qwYIG8vLz0j3/8Q7fffvs1e9EnTZqkc+fOWbejR4/a8Y7LTrVq1RQcHKyNGzfa7N+4ceM1v9sSGhpabPyGDRsUEhKim266yWmxGgU5cwx5sx85K1s5OTk6deqUWrZsqZCQEOuiMCXZsWNHsU6R0r6TVNFxrTmGvNmPnKGio/gzgHbt2snDw0OZmZlq2bKlzWbvjFq7du20fft2m9ae7du3q1atWmrYsGGpx3p5een+++/XvHnztGXLFu3YsUP79u0rcayHh4e8vb1tNleJiorS0qVLtXz5cqWnp2v8+PHKzMzU2LFjJV0pVIcPH24dP3bsWB05ckRRUVFKT0/X8uXLtWzZMk2YMMFVb6HckTPHkDf7kbPrq1Gjhjp27KiOHTtKkgIDA9WxY0fr7/8HH3xQd9xxhwIDA3X//fdr48aNio+Pt/ljcuXKlXr99detj+fOnav+/fsrOjparVu3VnR0tO6++27FxsaW63srT1xrjiFv9iNnqMj4zp8B1KpVSxMmTND48eNVWFioXr16KScnR9u3b1fNmjXVtGnTGz7XP/7xD8XGxurZZ59VRESEDhw4oFdeeUVRUVGlTlvHxcWpoKBA3bp1U/Xq1fXhhx/Ky8vLrtd2laFDh+r06dOaMWOGsrKy1KFDByUmJlpjz8rKsrn3TmBgoBITEzV+/HgtWLBADRo00Lx58/TAAw+46i2UO3LmGPJmP3J2fSEhIdqyZYv18Zw5cyRd+b385JNPKiAgQLNnz5afn5+ysrL0wQcf6NVXX7U5R5MmTaxdJNKVmb9hw4Zp5syZevXVV3Xo0CENHTpU33//fbm8J1fgWnMMebMfOXMuo62waaRYygL3+TMIi8Wid999VwsXLtQvv/yi2rVrq3PnznrppZdUWFiovn376syZM6pdu7b1mD59+qhTp07FPslNSkrSCy+8oLS0NNWtW1dPPPGEZs6cab0vYEnHxcfH64033lB6eroKCgoUFBSkmTNn6q677rqh+I183xgAcFRl+59+eeFPC8CYjPz3WlFsy5cvN9x9/kaOHGnInDmC4g9lwsi/TADAURR/juFPC8CYjPz3GsVf+aDtEwAAAIAh0PbpXCz4AgAAAAAmQPEHAAAAACZA2ycAAAAAQ6Dt07mY+QMAAAAAE6D4AwAAAAAToO0TAAAAgCHQ9ulczPwBAAAAgAlQ/AEAAACACdD2CQAAAMAQ3N3d5e5unPkpI8VSFirXuwEAAAAAlIjiDwAAAABMgLZPAAAAAIbAap/OxcwfAAAAAJgAxR8AAAAAmABtnwAAAAAMgbZP52LmDwAAAABMgOIPAAAAAEyAtk8AAAAAhkDbp3Mx8wcAAAAAJkDxBwAAAAAmQNsnAAAAAENwd3eXu7tx5qeMFEtZqFzvBgAAAABQIoo/AAAAADAB2j4BAAAAGAKrfToXM38AAAAAYAIUfwAAAABgArR9AgAAADAE2j6di5k/AAAAADABij8AAAAAMAHaPgEAAAAYAm2fzsXMHwAAAACYADN/ACqc3NxcV4dQIXl4eLg6hArHYrG4OgQAQAXSrFkzHTlypNj+f/zjH1qwYEGx/Vu2bFHfvn2L7U9PT1ebNm3KPD6KPwAAAACGUNHbPnfv3q2CggLr4//85z/q16+f/v73v5d63IEDB+Tt7W19fPPNN9sX6A2i+AMAAACAMnB10fbGG2+oRYsWuuOOO0o9ztfXV7Vr13ZiZFfwnT8AAAAAKEVOTo7NdiNfQcnLy9M///lPjRw58roziLfddpsCAgJ011136ZtvvimrsIuh+AMAAABgCG5ubnJ3dzfMVlS0NW7cWD4+PtYtJibmuu8lPj5eZ8+e1YgRI645JiAgQO+//77WrFmjzz77TK1bt9Zdd92lrVu3llVKbdD2CQAAAAClOHr0qM138m5kEbVly5YpPDxcDRo0uOaY1q1bq3Xr1tbHoaGhOnr0qN555x3dfvvtfy3oEjDzBwAAAACl8Pb2ttmuV/wdOXJEmzZt0qhRo+x+re7du+vgwYOOhloqZv4AAAAAGEJFX+2zyIoVK+Tr66t7773X7mNTUlIUEBDg0OteD8UfAAAAAJSRwsJCrVixQk888YSqVrUttyZNmqRjx47pgw8+kCTFxsaqWbNmat++vXWBmDVr1mjNmjVOiY3iDwAAAADKyKZNm5SZmamRI0cWey4rK0uZmZnWx3l5eZowYYKOHTsmLy8vtW/fXuvWrdOAAQOcEpubxWKxOOXMMJWcnBz5+Pjo3LlzNl+GBZzhRpZXRnE38uV0AEDlZeS/14piW7t2rWrUqOHqcKwuXLigwYMHGzJnjmDBFwAAAAAwAYo/AAAAADABvvMHAAAAwBAqy2qfRsXMHwAAAACYAMUfAAAAAJgAbZ8AAAAADMHd3V3u7saZnzJSLGWhcr0bAAAAAECJKP4AAAAAwARo+wQAAABgCKz26VzM/AEAAACACVD8AQAAAIAJUPwBAAAAgAlQ/AEAAACACVD8AQAAAIAJsNonAAAAAENgtU/nYuYPAAAAAEyA4g8AAAAATIC2TwAAAACGQNunczHzBwAAAAAmQPEHAAAAACZA2ycAAAAAQ6Dt07mY+QMAAAAAE6D4Q6WwcOFCBQYGytPTU8HBwdq2bVup45OSkhQcHCxPT081b95cixcvLqdIjYOc2Wfbtm0aMmSINWcJCQnXPWbr1q0KDQ2Vj4+P2rRpoyVLlpRDpMbDteYY8mY/cuYY8mY/coaKiuJP0pYtW+Tm5qazZ89KkuLi4lS7du1yjWHatGnq1KlTub5mZbFq1SpFRkZq8uTJSklJUe/evRUeHq7MzMwSx2dkZGjAgAHq3bu3UlJS9NJLL2ncuHFas2ZNOUfuOuTMfhcvXlRQUJDmzJlzQ+MzMjI0aNAg9ezZU7t27VJ0dLSioqK0du1aJ0dqLFxrjiFv9iNnjiFv9iNnzlXU9mmkrTJxs1gsFlcH4WpbtmxR3759debMGdWuXVv/+9//9Mcff8jX17fcYpg2bZri4+OVmprq1NcZMWKEzp49q/j4+DI9b05Ojnx8fHTu3Dl5e3uX6bmvp1u3burcubMWLVpk3de2bVsNGjRIMTExxcZPnDhRCQkJSk9Pt+4bO3as0tLStGPHjnKJ2dUqes5yc3PL/TX/zNPTU6tXr9b9999/zTGTJ0/WF198obS0NOu+iIgI7du3T0lJSeURZjEeHh7l/poV/VpzFfJmP3LmGPJmv4qcM1f+vXY9RbF9+eWXqlGjhqvDsbpw4YLCw8MNmTNHMPNXAi8vr3It/OC4vLw8JScnq3///jb7+/fvr+3bt5d4zI4dO4qNDwsL0549e3T58mWnxWoU5Kx87Ny5U3fffbfNvn79+ik5Odk0OeNacwx5sx85cwx5sx85Q0VnmuIvNzdX48aNk6+vrzw9PdWrVy/t3r27xLEltX3OnDlTvr6+qlWrlkaNGqUXX3zRpk2zsLBQM2bMUKNGjeTh4aFOnTpp/fr1Nuf49ddfNWzYMNWtW1c1atRQSEiIdu3aZTPmww8/VLNmzeTj46Nhw4bpjz/+sD63fv169erVS7Vr11a9evX0t7/9TYcOHbI5/tixYxo6dKjq1KmjevXqaeDAgTp8+LCkK7OLK1eu1Oeff26dxt6yZYukK59K3XLLLapevbqaN2+uqVOnVohfSKdOnVJBQYH8/Pxs9vv5+Sk7O7vEY7Kzs0scn5+fr1OnTjktVqMgZ+Xj+PHjxT5E8vX1NVXOuNYcQ97sR84cQ97sR86cz9UtnpW97dM0xV90dLTWrFmjlStXau/evWrZsqXCwsL0+++/X/fYjz76SK+99prefPNNJScnq0mTJjZT/ZI0d+5czZo1S++8845++OEHhYWF6f7779fBgwclSefPn9cdd9yh3377TQkJCUpLS1N0dLQKCwut5zh06JDi4+P1xRdf6IsvvlBSUpLeeOMN6/MXLlxQVFSUdu/erc2bN8vd3V2DBw+2nuPixYvq27evatasqa1bt+rbb79VzZo1dc899ygvL08TJkzQQw89pHvuuUdZWVnKyspSjx49JEm1atVSXFyc9u/fr7lz52rJkiWlfrcpNzdXOTk5NpsrXf2DabFYSv1hLWl8SfsrM3LmfOTsCq41x5A3+5Ezx5A3+5EzVFSmuM/fhQsXtGjRIsXFxSk8PFyStGTJEm3cuFHLli1Tly5dSj3+3Xff1VNPPaUnn3xSkvTyyy9rw4YNOn/+vHXMO++8o4kTJ2rYsGGSpDfffFPffPONYmNjtWDBAv3rX//SyZMntXv3btWtW1eS1LJlS5vXKSwsVFxcnGrVqiVJevzxx7V582a99tprkqQHHnjAZvyyZcvk6+ur/fv3q0OHDvr444/l7u6upUuXWn+ZrFixQrVr19aWLVvUv39/eXl5KTc3V/7+/jbnmjJlivXfzZo10/PPP69Vq1YpOjq6xJzExMRo+vTppeatPNSvX19VqlQp9mnbiRMnin3KVsTf37/E8VWrVlW9evWcFqtRkLPy4efnp+PHj9vsO3nypKlyxrXmGPJmP3LmGPJmP3KGis4UM3+HDh3S5cuX1bNnT+u+m266SV27drX58u21HDhwQF27drXZ9+fHOTk5+u2332zOL0k9e/a0nj81NVW33XabtfArSbNmzayFnyQFBAToxIkTNu/jkUceUfPmzeXt7a3AwEBJsq4ulZycrP/+97+qVauWatasqZo1a6pu3bq6dOlSsfbQq3366afq1auX/P39VbNmTU2dOvWaq1ZJ0qRJk3Tu3DnrdvTo0VLP7yzVqlVTcHCwNm7caLN/48aN1lnNq4WGhhYbv2HDBoWEhOimm25yWqxGQc7KR/fu3bV582abfZs2bVJwcLBpcsa15hjyZj9y5hjyZj9y5nyubvGk7bMSuNbU+vWm6P/sWtP11xtTtM/Ly+u6r3H1LwA3NzebttD77rtPp0+f1pIlS7Rr1y7r9wXz8vIkXZk5DA4OVmpqqs32888/65FHHrnm6+7cuVPDhg1TeHi4vvjiC6WkpGjy5MnW85bEw8ND3t7eNpurREVFaenSpVq+fLnS09M1fvx4ZWZmauzYsZKuFKrDhw+3jh87dqyOHDmiqKgopaena/ny5Vq2bJkmTJjgqrdQ7siZ/c6fP6+0tDTr6p2HDx9WWlqa9UOSKVOmaOTIkdbxo0aNUmZmpqKjo/XTTz8pLi5OcXFxioyMdEX4LsO15hjyZj9y5hjyZj9yhorMFG2fLVu2VLVq1fTtt99ai6DLly9rz549N/SHWOvWrfX999/r8ccft+7bs2eP9d/e3t5q0KCBvv32W91+++3W/du3b7fOEN56661aunSpfv/991Jn/67l9OnTSk9P13vvvafevXtLkr799lubMZ07d9aqVavk6+t7zWKsWrVqKigosNn33XffqWnTppo8ebJ135EjR+yO0VWGDh2q06dPa8aMGcrKylKHDh2UmJiopk2bSpKysrJsZjEDAwOVmJio8ePHa8GCBWrQoIHmzZtXrK22MiNn9ktOTlZYWJj1cVFL9GOPPaalS5cqOzvbZgY8MDBQ8fHxio6O1uLFixUQEKDZs2dr8ODB5R67K3GtOYa82Y+cOYa82Y+coSIzzX3+IiMj9cknn2jZsmVq0qSJ3nrrLSUkJOjQoUNKS0uzuc9f0afzRTd9/+ijjzR69GgtWrRIPXr00KpVq/T222+refPmSklJkSTFxsbqlVde0fvvv69OnTppxYoVmj17tn788Ue1atVKeXl5CgoKkp+fn2JiYhQQEKCUlBQ1aNBAoaGhJd7nLzY2VrGxsTp8+LAKCwvl6+ur8PBwvfLKK8rMzNSLL76o3bt3a+3atRo0aJAuXryoTp06qWHDhtaVRzMzM/XZZ5/phRdeUKNGjfT666/rvffe04YNG1SvXj35+PgoMTFRDz74oD788EN16dJF69at0/Tp01VQUGDNwfUY+b4xqHxcfZ+/isoV9/kDABiHkf9eK4ptw4YNhrvPX//+/Q2ZM0eYou1Tkt544w098MADevzxx9W5c2f997//1VdffaU6depc99hHH31UkyZN0oQJE9S5c2dlZGRoxIgR8vT0tI4ZN26cnn/+eT3//PMKCgrS+vXrlZCQoFatWkm6MuO2YcMG+fr6asCAAQoKCtIbb7yhKlWq3FD87u7u+vjjj5WcnKwOHTpo/Pjxevvtt23GVK9eXVu3blWTJk00ZMgQtW3bViNHjtT//vc/68U6evRotW7dWiEhIbr55pv13XffaeDAgRo/frwiIiLUqVMnbd++XVOnTr3R1AIAAACoAEwz81fW+vXrJ39/f3344YeuDsUQjPxJEiofZv4cw8wfAJibkf9eY+avfJjiO39/1cWLF7V48WKFhYWpSpUq+ve//61NmzYVW7kJAAAAAIyK4u8GuLm5KTExUTNnzlRubq5at26tNWvW6O6773Z1aAAAAABwQyj+boCXl5c2bdrk6jAAAAAAwGEUfwAAAAAMwWg3VjdSLGXBNKt9AgAAAICZUfwBAAAAgAnQ9gkAAADAEGj7dC5m/gAAAADABCj+AAAAAMAEaPsEAAAAYAi0fToXM38AAAAAYAIUfwAAAABgArR9AgAAADCMytZqaSTM/AEAAACACVD8AQAAAIAJ0PYJAAAAwBBY7dO5mPkDAAAAABOg+AMAAAAAE6DtEwAAAIAh0PbpXMz8AQAAAIAJUPwBAAAAgAnQ9gkAAADAEGj7dC5m/gAAAADABCj+AAAAAMAEKP4AAAAAwAQo/gAAAADABCj+AAAAAMAEWO0TAAAAgCGw2qdzMfMHAAAAACZA8QcAAAAAJkDbJwAAAABDoO3TuZj5AwAAAAATYOYPQIXj4eHh6hAqpNzcXFeHUOFwraE87d6929UhVDhdunRxdQhAhULxBwAAAMAQaPt0Lto+AQAAAMAEKP4AAAAAwARo+wQAAABgCLR9OhczfwAAAABgAhR/AAAAAGACtH0CAAAAMATaPp2LmT8AAAAAMAGKPwAAAAAwAdo+AQAAABgCbZ/OxcwfAAAAAJgAxR8AAAAAmABtnwAAAAAMgbZP52LmDwAAAABMgOIPAAAAAEyAtk8AAAAAhkDbp3Mx8wcAAAAAJkDxBwAAAAAmQPEHAAAAACZA8QcAAAAAJkDxBwAAAAAmwGqfAAAAAAyB1T6di5k/AAAAACgD06ZNsxawRZu/v3+pxyQlJSk4OFienp5q3ry5Fi9e7LT4mPkDAAAAgDLSvn17bdq0yfq4SpUq1xybkZGhAQMGaPTo0frnP/+p7777Tv/4xz90880364EHHijz2Cj+AAAAABhCZWj7rFq16nVn+4osXrxYTZo0UWxsrCSpbdu22rNnj9555x2nFH+0fQIAAABAKXJycmy23Nzca449ePCgGjRooMDAQA0bNky//PLLNcfu2LFD/fv3t9kXFhamPXv26PLly2UWfxGKPwAAAAAoRePGjeXj42PdYmJiShzXrVs3ffDBB/rqq6+0ZMkSZWdnq0ePHjp9+nSJ47Ozs+Xn52ezz8/PT/n5+Tp16lSZvw/aPgEAAAAYglHbPo8ePSpvb2/rfg8PjxLHh4eHW/8dFBSk0NBQtWjRQitXrlRUVFSpr1HEYrGUuL8sUPwBAAAAQCm8vb1tir8bVaNGDQUFBengwYMlPu/v76/s7GybfSdOnFDVqlVVr149h2ItDW2fAAAAAOAEubm5Sk9PV0BAQInPh4aGauPGjTb7NmzYoJCQEN10001lHg/FHwAAAABDuPoeeUbY7DFhwgQlJSUpIyNDu3bt0oMPPqicnBw98cQTkqRJkyZp+PDh1vFjx47VkSNHFBUVpfT0dC1fvlzLli3ThAkTyjSvRWj7BAAAAIAy8Ouvv+rhhx/WqVOndPPNN6t79+7auXOnmjZtKknKyspSZmamdXxgYKASExM1fvx4LViwQA0aNNC8efOccpsHiZm/62rWrJn1vhswroULFyowMFCenp4KDg7Wtm3bSh2flJSk4OBgeXp6qnnz5lq8eHE5RWoc5Mwx5M0+27Zt05AhQ6w5S0hIuO4xW7duVWhoqHx8fNSmTRstWbKkHCI1Hq41+5Ez+504cUIvv/yy7r77bvXu3VuPPvqo0tPTSz1m7969Gj58uHr16qVBgwZpzZo15RStcXCt4Vo+/vhj/fbbb8rLy9OxY8e0Zs0atWvXzvp8XFyctmzZYnPMHXfcob179yo3N1cZGRkaO3as0+Kj+KuApk2bpk6dOrk6DMNYtWqVIiMjNXnyZKWkpKh3794KDw+3+VTlzzIyMjRgwAD17t1bKSkpeumllzRu3DhT/c+LnDmGvNnv4sWLCgoK0pw5c25ofEZGhgYNGqSePXtq165dio6OVlRUlNauXevkSI2Fa81+5Mx+OTk5Gj16tKpWraq5c+dq1apVeu6551SrVq1rHnPs2DFFRkaqU6dO+vDDDzVixAjNmjVLX3/9dTlG7lpca87l6hbPv9r2aXRulqK1RFGiZs2aKTIyUpGRka4OxWratGmKj49XamrqXzrP5cuXy+yLpDk5OfLx8dG5c+ccWgnpr+jWrZs6d+6sRYsWWfe1bdtWgwYNKvEeLBMnTlRCQoLNJ5tjx45VWlqaduzYUS4xuxo5c0xFz1tpN6QtD56enlq9erXuv//+a46ZPHmyvvjiC6WlpVn3RUREaN++fUpKSiqPMG1caylvZ6vo15orVIac7d69u1xfb/78+UpLS7Nrdv3dd9/Vtm3btHr1auu+mJgYHTx4UMuXL3dGmKXq0qVLub9mRb7WXPn32vUUxZacnKyaNWu6Ohyr8+fPKzg42JA5c4TpZ/769OmjiIgIRUREqHbt2qpXr56mTJmia9XE586d05gxY+Tr6ytvb2/deeedNn+kSFJCQoJCQkLk6emp+vXra8iQIdbnzpw5o+HDh6tOnTqqXr26wsPDbZZ+jYuLU+3atRUfH69bbrlFnp6e6tevn44ePWp9fvr06UpLS7N+GhEXF3dDsRXNGC5fvlzNmzeXh4eHLBaL1q9fr169elnf/9/+9jcdOnSorFLsVHl5eUpOTlb//v1t9vfv31/bt28v8ZgdO3YUGx8WFqY9e/bo8uXLTovVKMiZY8hb+di5c6fuvvtum339+vVTcnKyaXLGtWY/cuaYbdu2qW3btnrxxRcVFhamxx57TPHx8aUes2/fPnXr1s1mX/fu3ZWenq78/HwnRmsMXGuo6Exf/EnSypUrVbVqVe3atUvz5s3TnDlztHTp0mLjLBaL7r33XmVnZysxMVHJycnq3Lmz7rrrLv3++++SpHXr1mnIkCG69957lZKSos2bNyskJMR6jhEjRmjPnj1KSEjQjh07ZLFYNGDAAJsf/osXL+q1117TypUr9d133yknJ0fDhg2TJA0dOlTPP/+82rdvr6ysLGVlZWno0KE3FJsk/fe//9Xq1au1Zs0a68zhhQsXFBUVpd27d2vz5s1yd3fX4MGDVVhY6Ix0l6lTp06poKBAfn5+Nvv9/PyK3TOlSHZ2donj8/PzderUKafFahTkzDHkrXwcP35cvr6+Nvt8fX1NlTOuNfuRM8ccO3ZMn332mZo0aaJ58+ZpyJAhmjVrltatW3fNY06fPq26deva7KtXr54KCgp09uxZJ0fselxrzufqFs/K3vbJap+SGjdurDlz5sjNzU2tW7fWvn37NGfOHI0ePdpm3DfffKN9+/bpxIkT1lagd955R/Hx8fr00081ZswYvfbaaxo2bJimT59uPa5jx46SpIMHDyohIUHfffedevToIUn66KOP1LhxY8XHx+vvf/+7pCvtmPPnz7d+srZy5Uq1bdtW33//vbp27aqaNWuqatWq8vf3t77G119/fd3YpCufWH344Ye6+eabrcdevZrQsmXL5Ovrq/3796tDhw4l5iw3N9emhSwnJ+dG0+0UV/9gWiyWUn9YSxpf0v7KjJw5hrw5Hzm7gmvNfuTMPoWFhWrbtq3+8Y9/SJJat26tX375RWvWrNG99957zeOulTcz4VpDRcXMn660K/z5hy80NFQHDx5UQUGBzbjk5GSdP39e9erVU82aNa1bRkaGtU0yNTVVd911V4mvk56erqpVq9q0S9SrV0+tW7e26QOvWrWqzWxhmzZtVLt27VJX37qR2CSpadOmNoWfJB06dEiPPPKImjdvLm9vbwUGBkrSNb+4LF3p7/fx8bFujRs3vuZYZ6pfv76qVKlS7NO2EydOFPuUrYi/v3+J46tWrap69eo5LVajIGeOIW/lw8/PT8ePH7fZd/LkSVPljGvNfuTMMfXr17f+P79Is2bNiv0M/lm9evV0+vRpm32///67qlSpotq1azsjTEPhWkNFR/Fnh8LCQgUEBCg1NdVmO3DggF544QVJkpeX1zWPv9YnYyV9WlTSJ0GlfTp0I7FJUo0aNYode9999+n06dNasmSJdu3apV27dkm6Mkt4LZMmTdK5c+esW9F3EstbtWrVFBwcrI0bN9rs37hxo3V29WqhoaHFxm/YsEEhISFltgCOkZEzx5C38tG9e3dt3rzZZt+mTZsUHBxsmpxxrdmPnDnm1ltv1ZEjR2z2ZWZm2nQWXS0oKEjff/+9zb5du3apbdu2qlq18jeUca2hoqP405UFBq5+3KpVK1WpUsVmf+fOnZWdna2qVauqZcuWNlv9+vUlXflFevUfLkXatWun/Px8a3ElXemd//nnn9W2bVvrvvz8fO3Zs8f6+MCBAzp79qzatGkj6covnqtnJW8ktpKcPn1a6enpmjJliu666y61bdtWZ86cKS1dkq6sgOft7W2zuUpUVJSWLl2q5cuXKz09XePHj1dmZqb1HimTJk3S8OHDrePHjh2rI0eOKCoqSunp6Vq+fLmWLVumCRMmuOotlDty5hjyZr/z588rLS3NuvjU4cOHlZaWZu0smDJlikaOHGkdP2rUKGVmZio6Olo//fST4uLiFBcXZ6gVl8sD15r9yJn9HnnkEf3nP//RihUrdPToUa1fv97mayiStGDBAr3yyivWx0OGDFFWVpbmzJmjjIwMJSQkKCEhQY899pgr3oJLcK2hIqv8H9HcgKNHjyoqKkpPP/209u7dq3fffVezZs0qNu7uu+9WaGioBg0apDfffFOtW7fWb7/9psTERA0aNEghISF65ZVXdNddd6lFixYaNmyY8vPz9eWXXyo6OlqtWrXSwIEDNXr0aL333nuqVauWXnzxRTVs2FADBw60vs5NN92kZ599VvPmzdNNN92kiIgIde/eXV27dpV0pSUjIyNDqampatSokWrVqnVDsZWkTp06qlevnt5//30FBAQoMzNTL774onMS7SRDhw7V6dOnNWPGDGVlZalDhw5KTExU06ZNJUlZWVk2LayBgYFKTEzU+PHjtWDBAjVo0EDz5s0r9t3HyoycOYa82S85OVlhYWHWx9HR0ZKkxx57TEuXLlV2drZN50BgYKDi4+MVHR2txYsXKyAgQLNnz9bgwYPLPXZX4lqzHzmzX7t27fTWW29p4cKFWrZsmRo0aKCoqCjdc8891jGnTp2yaQNt2LChYmNjNWfOHH366aeqX7++nn/+ed15552ueAsuwbWGisz09/nr06eP2rdvr8LCQv3rX/9SlSpV9PTTT+v111+Xm5tbsfv8/fHHH5o8ebLWrFmjkydPyt/fX7fffrtiYmKs33v77LPP9Oqrr2r//v3y9vbW7bffbr2R55kzZ/Tcc88pISFBeXl5uv322/Xuu++qVatWkmT9hHv58uV64YUX9Ouvv6pXr15avny59ZdKbm6uHn30UW3evFlnz57VihUrNGLEiOvGdq37A27atEnjxo3TL7/8otatW2vevHnq06eP1q5dq0GDBt1QHo183xgAV7j6Pn8Vkavu8wdzKu/7/FUGrrjPX0Vm5L/XimLbu3evatWq5epwrP744w917tzZkDlzBMVfnz7q1KmTYmNjXR2KpP8r/iracslG/mUC4AqKP/tR/KE8UfzZj+LPPkb+e43ir3zwnT8AAAAAMAG+8wcAAADAEIx2Y3UjxVIWTF/8bdmyxdUh2BgxYoRGjBjh6jAAAAAAVDK0fQIAAACACVD8AQAAAIAJUPwBAAAAgAlQ/AEAAACACZh+wRcAAAAAxsBqn87FzB8AAAAAmADFHwAAAACYAG2fAAAAAAyBtk/nYuYPAAAAAEyA4g8AAAAATIC2TwAAAACGQNunczHzBwAAAAAmQPEHAAAAACZA8QcAAAAAJkDxBwAAAAAmQPEHAAAAACbAap8AAAAADIHVPp2LmT8AAAAAMAGKPwAAAAAwAdo+AQAAABgCbZ/OxcwfAAAAAJgAxR8AAAAAmADFHwAAAACYAMUfAAAAAJgAxR8AAAAAmACrfQIAAAAwBFb7dC5m/gAAAADABCj+AAAAAMAEaPsEAAAAYAi0fToXxR8AmISHh4erQwBQii5durg6hAonNzfX1SFUKOQLtH0CAAAAgAkw8wcAAADAEGj7dC5m/gAAAADABCj+AAAAAMAEKP4AAAAAwAQo/gAAAADABCj+AAAAAMAEWO0TAAAAgCGw2qdzMfMHAAAAACZA8QcAAAAAJkDbJwAAAABDoO3TuZj5AwAAAAAToPgDAAAAABOg7RMAAACAIdD26VzM/AEAAACACVD8AQAAAIAJUPwBAAAAgAlQ/AEAAACACVD8AQAAAIAJUPwBAAAAgAlwqwcAAAAAhsCtHpyLmT8AAAAAMAGKPwAAAAAwAdo+AQAAABgCbZ/OxcwfAAAAAJgAxR8AAAAAmADFHwAAAACYAMUfAAAAAJgAxR8AAAAAmACrfQIAAAAwBFb7dC5m/gAAAADABCj+AAAAAMAEKP5QKSxcuFCBgYHy9PRUcHCwtm3bVur4pKQkBQcHy9PTU82bN9fixYvLKVLjIGeOIW/2I2eOIW/2I2eOIW/22bZtm4YMGWLNWUJCwnWP2bp1q0JDQ+Xj46M2bdpoyZIl5RBpxVTU9mmkrTKh+LuOadOmqVOnTjc83s3NTfHx8U6LB8WtWrVKkZGRmjx5slJSUtS7d2+Fh4crMzOzxPEZGRkaMGCAevfurZSUFL300ksaN26c1qxZU86Ruw45cwx5sx85cwx5sx85cwx5s9/FixcVFBSkOXPm3ND4jIwMDRo0SD179tSuXbsUHR2tqKgorV271smRAiWwmNQdd9xhee6556477o8//rCcOnXqhs8rybJ27VrHA7tBTZs2tcyZM8fpr3Ojzp07Z5FkOXfuXLm/dteuXS1jx4612demTRvLiy++WOL46OhoS5s2bWz2Pf3005bu3bs7LUajIWeOIW/2I2eOIW/2I2eOqeh5u3Tpkks3SZbVq1eXOub555+3tG7d2mbfqFGjLN26dSv3eE+cOOGyv9eup+hvyV9++cVy8uRJw2y//PKLYXPmCGb+rsFisSg/P181a9ZUvXr1XB2O0+Tl5bk6hL8kLy9PycnJ6t+/v83+/v37a/v27SUes2PHjmLjw8LCtGfPHl2+fNlpsRoFOXMMebMfOXMMebMfOXMMeSsfO3fu1N13322zr1+/fkpOTiZnJXB1iydtn5XQiBEjlJSUpLlz51r/o8bFxcnNzU1fffWVQkJC5OHhoW3btpXY9rl8+XK1b99eHh4eCggIUEREhM3zp06d0uDBg1W9enW1atWqWC94UlKSunbtaj3+xRdfVH5+vvX5Pn36KCIiQhEREapdu7bq1aunKVOmyGKxWJ8/cuSIxo8fX+yi3L59u26//XZ5eXmpcePGGjdunC5cuGB9vlmzZpo5c6ZGjBghHx8fjR49WpI0ceJE3XLLLapevbqaN2+uqVOnVohfSKdOnVJBQYH8/Pxs9vv5+Sk7O7vEY7Kzs0scn5+fr1OnTjktVqMgZ44hb/YjZ44hb/YjZ44hb+Xj+PHj8vX1tdnn6+tLzuASpiz+5s6dq9DQUI0ePVpZWVnKyspS48aNJUnR0dGKiYlRenq6br311mLHLlq0SM8884zGjBmjffv2KSEhQS1btrQZM336dD300EP64YcfNGDAAD366KP6/fffJUnHjh3TgAED1KVLF6WlpWnRokVatmyZZs6caXOOlStXqmrVqtq1a5fmzZunOXPmaOnSpZKkzz77TI0aNdKMGTOs8UvSvn37FBYWpiFDhuiHH37QqlWr9O233xYrTt9++2116NBBycnJmjp1qiSpVq1aiouL0/79+zV37lwtWbKk1F723Nxc5eTk2GyudPWnMhaLpdRPakoaX9L+yoycOYa82Y+cOYa82Y+cOYa8OR85g1GY8ibvPj4+qlatmqpXry5/f39J0k8//SRJmjFjhvr163fNY2fOnKnnn39ezz33nHVfly5dbMaMGDFCDz/8sCTp9ddf17vvvqvvv/9e99xzjxYuXKjGjRtr/vz5cnNzU5s2bfTbb79p4sSJevnll+XufqUeb9y4sebMmSM3Nze1bt1a+/bt05w5czR69GjVrVtXVapUUa1atazxS1eKukceeUSRkZGSpFatWmnevHm64447tGjRInl6ekqS7rzzTk2YMMEm5ilTplj/3axZMz3//PNatWqVoqOjS8xDTEyMpk+ffu0kl5P69eurSpUqxT6hPHHiRLFPJov4+/uXOL5q1aqVusW3CDlzDHmzHzlzDHmzHzlzDHkrH35+fjp+/LjNvpMnT5IzuIQpZ/5KExIScs3nTpw4od9++0133XVXqef484xhjRo1VKtWLZ04cUKSlJ6ertDQUJtPenr27Knz58/r119/te7r3r27zZjQ0FAdPHhQBQUF13zd5ORkxcXFqWbNmtYtLCxMhYWFysjIKPU9fvrpp+rVq5f8/f1Vs2ZNTZ069ZorfUnSpEmTdO7cOet29OjRUnPiLNWqVVNwcLA2btxos3/jxo3q0aNHiceEhoYWG79hwwaFhITopptuclqsRkHOHEPe7EfOHEPe7EfOHEPeykf37t21efNmm32bNm1ScHAwOUO5o/i7So0aNa75nJeX1w2d4+ofZDc3NxUWFkoquZWirKb+CwsL9fTTTys1NdW6paWl6eDBg2rRooV13NXvcefOnRo2bJjCw8P1xRdfKCUlRZMnTy51MRgPDw95e3vbbK4SFRWlpUuXavny5UpPT9f48eOVmZmpsWPHSrpSqA4fPtw6fuzYsTpy5IiioqKUnp6u5cuXa9myZcVmQyszcuYY8mY/cuYY8mY/cuYY8ma/8+fPKy0tTWlpaZKkw4cPKy0tzfqh+ZQpUzRy5Ejr+FGjRikzM1PR0dH66aefFBcXp7i4OGunFlCeTNn2KV35tKu0WbSS1KpVS82aNdPmzZvVt29fh163Xbt2WrNmjU0RuH37dtWqVUsNGza0jtu5c6fNcTt37lSrVq1UpUqVa8bfuXNn/fjjj8W+g3g93333nZo2barJkydb9x05csSuc7jS0KFDdfr0aet3IDt06KDExEQ1bdpUkpSVlWUzixkYGKjExESNHz9eCxYsUIMGDTRv3jw98MADrnoL5Y6cOYa82Y+cOYa82Y+cOYa82S85OVlhYWHWx0VfkXnssce0dOlSZWdn23REBQYGKj4+XtHR0Vq8eLECAgI0e/ZsDR48uNxjryj4LqTzuFmKpp1MZsyYMUpNTdXq1atVs2ZN/fDDD7rrrrt05swZ1a5d2zpu2rRpio+PV2pqqqQrC7GMHTtWb775psLDw/XHH3/ou+++07PPPivpysW6du1aDRo0yHqO2rVrKzY2ViNGjNCxY8d0yy236Mknn1RERIQOHDigUaNG6ZlnntG0adMkXVnNMzk5WaNHj9bTTz+tvXv3avTo0Zo1a5aefvppSVeWYfby8tLChQvl4eGh+vXr64cfflD37t315JNPavTo0apRo4bS09O1ceNGvfvuu5KufJ8vMjLS5tOmzz//XA8++KA+/PBDdenSRevWrdP06dNVUFCgs2fP3lA+c3Jy5OPjo3Pnzrl0FhAAAJhHbm6uq0OoUHJycuTr62vIv9eK/pbMyMgwVGw5OTkKDAw0ZM4cYdq2zwkTJqhKlSpq166dbr755lK/3/ZnTzzxhGJjY7Vw4UK1b99ef/vb33Tw4MEbft2GDRsqMTFR33//vTp27KixY8fqqaeesllwRZKGDx+u//3vf+rataueeeYZPfvssxozZoz1+RkzZujw4cNq0aKFbr75ZklXvmuYlJSkgwcPqnfv3rrttts0depUBQQElBrTwIEDNX78eEVERKhTp07avn27dRVQAAAAAJWDaWf+jKxPnz7q1KmTYmNjXR3KDWPmDwAAlDdm/uxTEWb+Dh8+bKjYcnJy1KxZM0PmzBGmnfkDAAAAADOh+AMAAACAMhATE6MuXbqoVq1a8vX11aBBg3TgwIFSj9myZYvc3NyKbUX3IS9Lpl3t08i2bNni6hAAAAAA2CkpKUnPPPOMunTpovz8fE2ePFn9+/fX/v37S72lnCQdOHDAprW0aF2PskTxBwAAAABlYP369TaPV6xYIV9fXyUnJ+v2228v9VhfX1+buw44A22fAAAAAOAE586dkyTVrVv3umNvu+02BQQE6K677tI333zjlHiY+QMAAABgCEXfdzOKolhycnJs9nt4eMjDw6PUYy0Wi6KiotSrVy916NDhmuMCAgL0/vvvKzg4WLm5ufrwww911113acuWLdedLbQXxR8AAAAAlKJx48Y2j1955RVNmzat1GMiIiL0ww8/6Ntvvy11XOvWrdW6dWvr49DQUB09elTvvPMOxR8AAAAAlKejR4/aLMZyvVm/Z599VgkJCdq6dasaNWpk9+t1795d//znP+0+7noo/gAAAAAYglHbPr29vW/oJu8Wi0XPPvus1q5dqy1btigwMNCh101JSVFAQIBDx5aG4g8AAAAAysAzzzyjf/3rX/r8889Vq1YtZWdnS5J8fHzk5eUlSZo0aZKOHTumDz74QJIUGxurZs2aqX379srLy9M///lPrVmzRmvWrCnz+Cj+AAAAAKAMLFq0SJLUp08fm/0rVqzQiBEjJElZWVnKzMy0PpeXl6cJEybo2LFj8vLyUvv27bVu3ToNGDCgzONzs1gsljI/K0wnJydHPj4+Onfu3A1NiQMAAPxVubm5rg6hQsnJyZGvr68h/14r+lsyMzPTULHl5OSoSZMmhsyZI7jPHwAAAACYAMUfAAAAAJgA3/kDAAAAYAhGXe2zsmDmDwAAAABMgOIPAAAAAEyA4g8AAAAATIDiDwAAAABMgOIPAAAAAEyA1T4BAAAAGAKrfToXM38AAAAAYAIUfwAAAABgAhR/AAAAAGACFH8AAAAAYAIUfwAAAABgAqz2CQAAAMAQWO3TuZj5AwAAAAAToPgDAAAAABOg+AMAAAAAE6D4AwAAAAATYMEXlAmLxSJJysnJcXEkAADALHJzc10dQoXyxx9/SPq/v9tgPhR/KBNFv0waN27s4kgAAABQmj/++EM+Pj6uDqNErPbpXBR/KBMNGjTQ0aNHVatWLcP9kOTk5Khx48Y6evSovL29XR1OhUDOHEPe7EfOHEPe7EfOHEPe7GfknFksFv3xxx9q0KCBq0OBi1D8oUy4u7urUaNGrg6jVN7e3ob7JWx05Mwx5M1+5Mwx5M1+5Mwx5M1+Rs2ZUWf8UD5Y8AUAAAAATIDiDwAAAABMgOIPlZ6Hh4deeeUVeXh4uDqUCoOcOYa82Y+cOYa82Y+cOYa82Y+cwcjcLKz1CgAAAMCFcnJy5OPjo6ysLEN9VzInJ0cBAQE6d+6coeJyFDN/AAAAAGACFH8AAAAAYAIUfwAAAABgAhR/AAAAAGACFH8AAAAAYAJVXR0AUFZ++OEHdejQQe7u7vrhhx9KHXvrrbeWU1QA4BwFBQXat2+fmjZtqjp16rg6HAAoE25ubnJzc3N1GFZGiqUsUPyh0ujUqZOys7Pl6+urTp06yc3NTX++k0nRYzc3NxUUFLgwUmMqKCjQnDlztHr1amVmZiovL8/m+d9//91FkRnf7t279cknn5SYt88++//t3XlcTfn/B/DXaV+EUKmmSckWIRpkyTLI4KuY39gyMbKbhLL9GmXNMijLENnSWAfDGGYwmIgwIcvchMqa7IkSLef3R7/ud+7cGEY6595ez8fD41Gfc9xeHelz3+d8lp0SpZK327dv46effirxmi1atEiiVPI2duxYuLi4wM/PDwUFBWjbti1OnDgBExMT/Pzzz2jXrp3UEWWHv9fej0KhKPG69ejRQ6JE8sWfNdIULP5Ia6SlpcHCwkL5Mb2b6dOnY/Xq1Rg/fjymTp2K4OBgXL9+Hbt27UJISIjU8WRry5Yt8PX1RefOnXHw4EF07twZV69eRUZGBnr27Cl1PFk6dOgQevToAQcHByQnJ6NBgwa4fv06RFFEkyZNpI4nW9u3b8eAAQMAAHv27EFaWhouX76MDRs2IDg4GMePH5c4ofzw99q/k5qaip49e+LixYsqN1KLn4DwBqo6/qyRpuAm76R18vLyMGzYMEydOhWOjo5Sx9EYNWvWxJIlS9CtWzeYmZkhMTFR2Xby5Els2rRJ6oiy1LBhQwwfPhyjR4+GmZkZzp8/DwcHBwwfPhzW1taYPn261BFlp1mzZujSpQtmzJihvGaWlpbw8fFBly5dMHLkSKkjypKRkRGuXbuGjz76CMOGDYOJiQkiIiKQlpaGRo0aISsrS+qIssPfa//Of/7zH+jq6iIqKgqOjo44ffo0Hj16hMDAQCxYsABt2rSROqLs8Gft/RVv8p6RkSGrzdSzsrJQvXp1bvJOJFf6+vr48ccfpY6hcTIyMuDi4gIAqFChAp4+fQoA6N69O/bu3StlNFlLSUlBt27dAACGhobIzs6GIAgYN24cVq1aJXE6eUpKSsLAgQMBAHp6enjx4gUqVKiAGTNmYN68eRKnky8rKysoFAoUFBTg119/RceOHQEAOTk50NXVlTidPPH32r8THx+PGTNmwMLCAjo6OtDR0UHr1q0xZ84cjBkzRup4ssSfNdIULP5IK/Xs2RO7du2SOoZG+eijj3D37l0AgJOTEw4cOACgaD6boaGhlNFkrUqVKnj27BkAwNbWFpcuXQIAZGZmIicnR8posmVqaoqXL18CAGxsbJCSkqI89vDhQ6liyd5XX32F3r17o0GDBhAEAZ06dQIAnDp1CnXr1pU4nTzx99q/U1BQgAoVKgAAqlWrhvT0dACAvb09kpOTpYwmW/xZI03BOX+klZycnDBz5kycOHECTZs2hampqcpx3rlU17NnTxw6dAjNmzdHQEAA+vXrhzVr1uDmzZsYN26c1PFkq02bNjh48CBcXFzQu3dvBAQE4PDhwzh48CA+/fRTqePJUosWLXD8+HE4OzujW7duCAwMxMWLF7Fz5060aNFC6niyNW3aNLi4uODmzZv44osvlG8odXV1MXnyZInTyRN/r/07DRo0wIULF+Do6IjmzZtj/vz5MDAwwKpVqzid4jX4s1Z6uNrnh8U5f6SVHBwcXntMEASkpqaWYRrNdOrUKRw/fhxOTk5c2e0NHj9+jNzcXNjY2KCwsBALFixAXFwcnJycMHXqVC7BX4LU1FQ8f/4cDRs2RE5ODoKCgpTXLDw8HPb29lJHlJ28vDx07twZK1euRO3ataWOo7H4e+3t7N+/H9nZ2ejVqxdSU1PRvXt3XL58GVWrVsXWrVvRoUMHqSPKHn/W3l3xnL979+7Jam5dVlYWrKystGbOH4s/IuIiOf9Sfn4+Nm7cCE9PT1SvXl3qOBqhoKAAcXFxaNiwIQvjd2RhYYETJ06gVq1aUkfRGEePHkXLli2hp6c60Ck/Px8nTpyAh4eHRMk0z+PHj2Fubq51T0FKA/vQ0sHir2xwzh8RcZGcf0lPTw8jR45Uzl+jf6arqwtPT09kZmZKHUXj+Pr6Ys2aNVLH0Cjt27cvcX+1p0+fon379hIkkr/8/Hzo6ekp5y8Xq1KlCgu/12AfSpqEc/5Ia3ET6XdTvEjO+PHjpY6iUZo3b45z585xqOI7cHFxQWpq6huHZ5O6V69eYfXq1Th48CDc3NzU5jLz95o6URRLLFgePXqkdv2oiJ6eHuzt7bmX3ztiH0qagsUfaSVuIv3uuEjOvzNq1CgEBgbi9u3bJV63hg0bSpRMvmbPno2goCDMnDmzxGumDcNqPoRLly4pf39duXJF5RifyKjq1asXgKLrMmjQIJXVFgsKCnDhwgW0bNlSqniy980332DKlCn4/vvvUaVKFanjaAT2oaQpOOePtBI3kX53XCTn39HRUR89LwiC8okD756r++s1+2vRwmtGpeWrr74CAERHR6N3794wNjZWHjMwMECNGjUwdOhQVKtWTaqIsubq6opr164hLy8P9vb2aoXM2bNnJUomX+xD3x/n/JUNPvkjrZSUlITNmzcDUN9E2svLi8VfCdLS0qSOoJF43d7dkSNHpI6g8W7fvg1BEGBrayt1FFlat24dAKBGjRoICgriEM935O3tLXUEjcO+gDQFiz/SSiVtIl2/fn0A3ET6n7x69QppaWmoWbOm2gp5pI5z/d5d27ZtpY6gkQoLCzFr1iwsXLgQz58/BwCYmZkhMDAQwcHBJT6FLu9CQ0ORn5+P3377DSkpKejfvz/MzMyQnp6OihUrKjcyJ1WhoaFSR9BY7ENJ7thTkFYq3kQagHIT6dmzZ2Pw4MHcRPo1cnJy4OfnBxMTE9SvXx83b94EUDRPYe7cuRKnk7eYmBi0atUKNjY2uHHjBgAgIiICu3fvljiZfB07dgwDBgxAy5YtcefOHQBF1zEuLk7iZPIVHByMZcuWYe7cuTh37hzOnj2LsLAwLF26FFOnTpU6nizduHEDLi4u8PLywujRo/HgwQMAwPz58xEUFCRxOnnLzMzE6tWrMWXKFOWKqWfPnlX+fyVV7ENLT/Em73L6o01Y/JFWWrRoEZo3bw4AmDZtGjp16oStW7fC3t6eS6W/xpQpU3D+/Hn8/vvvMDIyUrZ37NgRW7dulTCZvK1YsQLjx49H165dkZmZqZyvVrlyZUREREgbTqZ27NgBT09PGBsb4+zZs8qn9M+ePUNYWJjE6eQrOjoaq1evxsiRI9GwYUM0atQIo0aNQlRUFNavXy91PFkKCAiAm5sbnjx5ojLvr2fPnjh06JCEyeTtwoULqF27NubNm4cFCxYot2b58ccfMWXKFGnDyRT7UNIULP5IKzk6OipXWTQxMcHy5ctx4cIF7Ny5k8P0XmPXrl1YtmwZWrdurXKXy9nZGSkpKRImk7elS5ciKioKwcHB0NXVVba7ubnh4sWLEiaTr1mzZiEyMhJRUVHQ19dXtrds2ZILSbzB48ePUbduXbX2unXrlriXHQFxcXH45ptvYGBgoNJub2/PJ1hvMH78eAwaNAhXr15VKWQ+++wzHD16VMJk8sU+lDQFiz/SSn/88QdOnTql1n7q1CkkJCRIkEj+Hjx4AEtLS7X27OxsrRvyUJrS0tLg6uqq1m5oaIjs7GwJEslfcnIyPDw81NorVqzIzd/foFGjRli2bJla+7Jly9CoUSMJEslfYWFhiavH3r59G2ZmZhIk0gx//PEHhg8frtZua2uLjIwMCRLJH/tQ0hQs/kgrjR49Grdu3VJrv3PnDkaPHi1BIvn75JNPsHfvXuXnxZ1VVFQU3N3dpYolew4ODkhMTFRr/+WXX+Ds7Fz2gTSAtbU1rl27ptYeFxcHR0dHCRJphvnz52Pt2rVwdnaGn58fhgwZAmdnZ6xfvx7ffvut1PFkqVOnTirDrwVBwPPnzxEaGoquXbtKF0zmjIyMkJWVpdaenJwMCwsLCRLJH/tQ0hRchoi0kkKhKHEzd1dXVygUCgkSyd+cOXPQpUsXKBQK5OfnY/Hixfjzzz8RHx+P2NhYqePJ1oQJEzB69Gjk5uZCFEWcPn0amzdvxpw5c7B69Wqp48nS8OHDERAQgLVr10IQBKSnpyM+Ph5BQUEICQmROp5stW3bFleuXMF3332Hy5cvQxRF9OrVC6NGjYKNjY3U8WQpPDwc7du3h7OzM3Jzc9G/f39cvXoV1apVU24HROq8vLwwY8YMbNu2DUBRIXPz5k1MnjwZn3/+ucTp5Il9KGkKbvJOWqlq1ar4+eef1e62nThxAt26dcOTJ08kSiZvFy9exIIFC3DmzBkUFhaiSZMmmDRpElxcXKSOJmtRUVGYNWuW8mmzra0tpk2bBj8/P4mTyVdwcDDCw8ORm5sLoGiYbFBQEGbOnClxMnnKy8tD586dsXLlStSuXVvqOBrlxYsX2Lx5M86ePav8vebj46OyAAypysrKQteuXfHnn3/i2bNnsLGxQUZGBtzd3bFv3z7um/ga7EPfT/Em7w8ePJDVZupZWVmwsLDQmk3eWfyRVurbty8yMjKwe/duVKpUCUDRstXe3t6wtLRU3s0kKk0PHz5EYWFhifM+SF1OTg4UCgUKCwvh7OzMPdf+gYWFBU6cOIFatWpJHYXKicOHD6sUzR07dpQ6EmkxFn9lg8UfaaU7d+7Aw8MDjx49Ui7GkZiYCCsrKxw8eBB2dnYSJ5QfXV1d3L17V61wefToESwtLUtcNIGADh06YOfOnahcubJKe1ZWFry9vXH48GFpgsnY4MGDsXjxYrUFN7Kzs+Hv74+1a9dKlEzeAgMDoa+vzz3D/gWFQoGbN2/i1atXKu09evSQKJG8bdiwAX369IGhoaFK+6tXr7Blyxb4+vpKlEy+2Ie+PxZ/ZYPFH2mt7OxsbNy4EefPn4exsTEaNmyIfv36qSwtT/+lo6ODjIwMtY4rPT0dNWvWxIsXLyRKJm+vu27379+Hra0t8vLyJEomX697k/Tw4UNUr14d+fn5EiWTN39/f2zYsAFOTk5wc3NTG3q3aNEiiZLJV2pqKnr27ImLFy9CEAQUv+UpXoyDb8hLxkLm3bEPfX8s/soGF3whrWVqaorWrVvj448/Vt7t/eWXXwDwbu9fLVmyBEDRm6HVq1erDL0rKCjA0aNHS9xbrLy7cOGC8mOFQqGy/HlBQQF+/fVX2NraShFNtrKysiCKIkRRxLNnz1T2DysoKMC+ffs4ZPYNLl26pFzI6sqVKyrHuJR8yQICAuDg4IDffvsNjo6OOH36NB49eoTAwEAsWLBA6niyJYpiiT9Tt2/fVk6loCLsQ0nTsPgjrVTS3d6/dmS8a/lf4eHhAIo6+8jISJWNyg0MDFCjRg1ERkZKFU+2GjduDEEQIAgCOnTooHbc2NgYS5culSCZfFWuXFl5zUpatEQQBEyfPl2CZPJXUFCAadOmwcXFBVWqVJE6jsaIj4/H4cOHYWFhAR0dHejo6KB169aYM2cOxowZg3PnzkkdUVZcXV2V/0c//fRT6On9921iQUEB0tLS0KVLFwkTyg/7UNI0LP5IK/39bu+pU6fw+PFj3u0tQVpaGgCgffv22LlzJ8zNzSVOpBnS0tIgiqLyacJf974yMDCApaWlypsAAo4cOQJRFNGhQwfs2LFDpYgxMDCAvb09tyx4DV1dXXh6eiIpKYnF3zsoKChQPompVq0a0tPTUadOHdjb2yM5OVnidPLj7e0NoGiOvKenp8pTrOJChls9qGIfWvqKb0DIhZyylAYWf6SV/n63V1dXl3d7/8GRI0eUH/99Xgyps7e3BwAUFhZKnERztG3bFkDRmyU7Ozvo6OhInEizuLi4IDU1FQ4ODlJH0RgNGjTAhQsX4OjoiObNm2P+/PkwMDDAqlWr4OjoKHU82QkNDQUA1KhRA3369FEZmk1vxj6UNAV7XtJKJd3tBcC7vf9gzZo1aNCgAYyMjGBkZIQGDRpwo/K3kJycjK+//hqffvopOnbsiK+//hqXL1+WOpZs2dvb4+nTp1iwYAH8/PwwZMgQLFy4EI8fP5Y6mqzNnj0bQUFB+Pnnn3H37l1kZWWp/CF133zzjfIGzaxZs3Djxg20adMG+/btU87VInUDBw6EkZEREhISEBMTg++//x5nzpyROpbssQ8lTcAnf6SVeLf33U2dOhXh4eHw9/eHu7s7gKInqOPGjcP169cxa9YsiRPK0/bt29GvXz+4ubkpr9vJkyfh4uKCTZs24YsvvpA4ofzExsaiR48eqFSpEtzc3AAULZowY8YM/PTTT8onhKSqeK5Vjx49VJ4oFM9p5lxmdZ6ensqPHR0doVAo8PjxY5ibm/OpzBvcuXMHffv2xfHjx5Xb2GRmZqJly5bYvHkzt0sqAftQ0hTc6oG00v79+5GdnY1evXohNTUV3bt3x+XLl1G1alVs3bq1xAU6yrtq1aph6dKl6Nevn0r75s2b4e/vj4cPH0qUTN4cHR0xYMAAzJgxQ6U9NDQUMTExSE1NlSiZfDVo0AAtW7bEihUrlPMiCwoKMGrUKBw/fhyXLl2SOKE8xcbGvvE4i2YqLZ07d0ZWVhaio6NRp04dAEUjHAYPHgxTU1McOHBA4oTywz70/RVv9fDw4UNZbamQlZWFatWqac1WDyz+qNzg3d43Mzc3x+nTp1GrVi2V9itXrqBZs2bIzMyUJpjMmZiY4MKFC3ByclJpv3r1Kho1aoScnByJksmXsbExEhMTlW8qiyUnJ6Nx48bcD+sNjh07hpUrVyIlJQXbt2+Hra0tYmJi4ODggNatW0sdT3ays7Mxd+5cHDp0CPfv31ebo8ubMyUzNjbGiRMn4OrqqtJ+9uxZtGrViv9HS8A+9P2x+CsbHPZJ5QZXyHuzAQMGYMWKFWobRa9atQo+Pj4SpZK/du3a4dixY2rFX1xcHNq0aSNRKnlr0qQJkpKS1Iq/pKQkNG7cWJpQGmDHjh348ssv4ePjg3PnzuHly5cAgGfPniEsLAz79u2TOKH8DBkyBLGxsfjyyy9hbW3Nm39v6eOPP0ZeXp5ae35+PvcvfQ32oaWHq31+WHzyR0QAAH9/f2zYsAF2dnZo0aIFgKK5a7du3YKvry/09fWV5/69cyvPIiMjERISgt69e6tctx9++AHTp09X2bqgR48eUsWUla1bt2LixInw9/dXuWbfffcd5s6di3r16inPbdiwoVQxZcfV1RXjxo2Dr68vzMzMcP78eTg6OiIxMRFdunRBRkaG1BFlp3Llyti7dy9atWoldRSNsnv3boSFheG7775D06ZNIQgCEhIS4O/vj0mTJim3hKD/Yh/6/oqf/D169EhWT9iysrJQtWpVrXnyx+KPiAAU7VH0NgRBwOHDhz9wGs3xttsVcEGO//qnayYIAhcxKYGJiQkUCgVq1KihUvylpqbC2dkZubm5UkeUHQcHB+zbt0/lhgL9M3Nzc+Tk5CA/P1+50Xvxx6ampirncpXeIuxD3x+Lv7LBYZ9EBEB1jyJ6e9zn790Vb4pM78ba2hrXrl1DjRo1VNrj4uK4ivFrzJw5EyEhIYiOjoaJiYnUcTRGRESE1BE0DvtQ0hQs/ohIze3btyEIAud20Adhb28vdQSNNHz4cAQEBGDt2rUQBAHp6emIj49HUFAQQkJCpI4nG66uripzdK5duwYrKyvUqFFDZegdULSACakbOHCg1BE0GvtQkjMWf0QEoOgJ1qxZs7Bw4UI8f/4cAGBmZobAwEAEBwe/9fDG8mDJkiUYNmwYjIyM/nGj6DFjxpRRKs2SkpKCiIgIJCUlQRAE1KtXDwEBAahZs6bU0WRr4sSJePr0Kdq3b4/c3Fx4eHjA0NAQQUFB+Prrr6WOJxucj1Y6CgoKsGvXLuX/UWdnZ/To0UO5PQupYh9KmoJz/ogIADBlyhSsWbMG06dPR6tWrSCKIo4fP45p06Zh6NChmD17ttQRZcPBwQEJCQmoWrUqHBwcXnueIAhcSr4E+/fvR48ePdC4cWPlz9qJEydw/vx57NmzB506dZI6oqzl5ORAoVCgsLAQzs7OqFChgtSRSMtcu3YNXbt2xZ07d1CnTh2IoogrV67Azs4Oe/fu5U2aErAPfX/Fc/4eP34sq7l1WVlZqFKlitbM+WPxR0QAABsbG0RGRqqtSLl7926MGjUKd+7ckSgZaRtXV1d4enpi7ty5Ku2TJ0/GgQMHOBSPSs0ff/yBwsJCNG/eXKX91KlT0NXVhZubm0TJ5K1r164QRREbN25UbpP06NEjDBgwADo6Oti7d6/ECeWHfej7Y/FXNjjsk4gAFK3YVrduXbX2unXrcjW3vxk/fvxbnScIAhYuXPiB02iepKQkbNu2Ta198ODBXGiCStXo0aMxceJEteLvzp07mDdvHk6dOiVRMnmLjY3FyZMnVfbHrVq1KubOncttM16DfShpChZ/RAQAaNSoEZYtW6Y2h23ZsmVo1KiRRKnk6dy5cyqfnzlzBgUFBcpNy69cuQJdXV00bdpUiniyZ2FhgcTERNSqVUulPTExEZaWlhKlIm2kUCjQpEkTtXZXV1coFAoJEmkGQ0NDPHv2TK39+fPnMDAwkCCR/LEPJU3B4o+IAADz589Ht27d8Ntvv8Hd3R2CIODEiRO4desW9u3bJ3U8Wfnrkt6LFi2CmZkZoqOjYW5uDgB48uQJvvrqK7Rp00aqiLI2dOhQDBs2DKmpqWjZsiUEQUBcXBzmzZuHwMBAqeORFjE0NMS9e/fUtsK4e/eucv86Ute9e3cMGzYMa9asQbNmzQAUDZUdMWKE2rBGKsI+lDQF5/wRkVJ6ejq+++47XL58GaIowtnZGaNGjYKNjY3U0WTL1tYWBw4cQP369VXaL126hM6dOyM9PV2iZPIliiIiIiKwcOFC5fWxsbHBhAkTMGbMGJVl+oneR9++fZGRkYHdu3ejUqVKAIDMzEx4e3vD0tKyxOHHVHSNBg4ciD179ii3x8jPz0ePHj2wfv165bUkVexD3w/n/JUNFn9ERO/BzMwMu3fvRocOHVTaDx8+DC8vrxKHTpVn+fn52LhxIzw9PVG9enXl9TEzM5M4GWmjO3fuwMPDA48ePYKrqyuAouHFVlZWOHjwIOzs7CROKG/Xrl1DUlKSspBxcnKSOhJpseLi78mTJ7IqsrKysmBubs7ij4i0z7Fjx7By5Uqkpqbihx9+gK2tLWJiYuDg4IDWrVtLHU+WfH19ERsbi4ULF6JFixYAgJMnT2LChAnw8PBAdHS0xAnlx8TEBElJSdzsncpEdnY2Nm7ciPPnz8PY2BgNGzZEv3791DZ8J3pfmZmZOH36NO7fv4/CwkKVY76+vhKl0hws/soGB7wTEQBgx44d+PLLL+Hj44OzZ8/i5cuXAIBnz54hLCyMcxZeIzIyEkFBQRgwYADy8vIAAHp6evDz88O3334rcTp5at68Oc6dO8fij8qEqakphg0bJnUMjfI///M/cHNzw+TJk1Xav/32W5w+fRo//PCDRMnka8+ePfDx8UF2djbMzMxUhq8LgsDij2SDT/6ICEDR6nfjxo2Dr68vzMzMcP78eTg6OiIxMRFdunRBRkaG1BFlLTs7GykpKRBFEU5OTjA1NZU6kmz98MMPmDx5MsaNG4emTZuqXauGDRtKlIy0UUpKCiIiIpCUlARBEFCvXj0EBARwo/I3sLCwwOHDh+Hi4qLSfvHiRXTs2BH37t2TKJl81a5dG127dkVYWBhMTEykjqOR+OSvbPDJHxEBAJKTk+Hh4aHWXrFiRWRmZpZ9IA1jamrKouUt9enTBwAwZswYZZsgCBBFEYIgoKCgQKpopGX279+PHj16oHHjxmjVqhVEUcSJEydQv3597NmzB506dZI6oiy9bksHfX19ZGVlSZBI/u7cuYMxY8aw8CPZY/FHRAAAa2trXLt2DTVq1FBpj4uLU1smneh9pKWlSR2ByoniJ8xz585Va580aRKLv9do0KABtm7dipCQEJX2LVu2wNnZWaJU8ubp6YmEhAT2lyR7LP6ICAAwfPhwBAQEYO3atRAEAenp6YiPj0dQUJDaGwCi98G5flRWkpKSStzOYfDgwYiIiCj7QBpi6tSp+Pzzz5GSkqJcyfjQoUPYvHkz5/v9xU8//aT8uFu3bpgwYQIUCgVcXFzUFhTi/ohvTxAEWW35I6cspYHFHxEBACZOnIinT5+iffv2yM3NhYeHBwwNDREUFISvv/5a6nikZWJiYhAZGYm0tDTEx8fD3t4eERERcHBwgJeXl9TxSEtYWFggMTERtWrVUmlPTEyEpaWlRKnkr0ePHti1axfCwsKwfft25Sqpv/32G9q2bSt1PNnw9vZWa5sxY4ZaG4ezk5yw+CMipdmzZyM4OBgKhQKFhYVwdnZGhQoVpI5FWmbFihUICQnB2LFjMXv2bOWbosqVKyMiIoLFH5WaoUOHYtiwYUhNTUXLli0hCALi4uIwb948BAYGSh1P1rp164Zu3bpJHUPW/r6dA5Em4GqfRERUppydnREWFgZvb2+VlWUvXbqEdu3a4eHDh1JHJC0hiiIiIiKwcOFCpKenAwBsbGwwYcIEjBkzRuuGc5WmzMxMbN++HampqQgKCkKVKlVw9uxZWFlZwdbWVup4pIWKV/vMzMyU1aqaWVlZqFy5Mlf7JCLN16tXr7c+d+fOnR8wCZUnaWlpcHV1VWs3NDREdna2BIlIWwmCgHHjxmHcuHF49uwZAMDMzEziVPJ34cIFdOzYEZUqVcL169cxZMgQVKlSBT/++CNu3LiBDRs2SB1RdsaMGQMnJyeVVYwBYNmyZbh27RrnmJJs6EgdgIikU6lSpbf+Q1RaHBwckJiYqNb+yy+/cCVB+mDMzMxY+L2l8ePHY9CgQbh69SqMjIyU7Z999hmOHj0qYTL52rFjB1q1aqXW3rJlS2zfvl2CREQl45M/onJs3bp1UkegcmjChAkYPXo0cnNzIYoiTp8+jc2bN2POnDlYvXq11PFIi7i6upY4tFMQBBgZGcHJyQmDBg1C+/btJUgnX3/88QdWrlyp1m5ra4uMjAwJEsnfo0ePSrxRWrFiRQ5lf0dc7fPD4pM/IlLx4MEDxMXF4fjx43jw4IHUcUgLffXVVwgNDcXEiRORk5OD/v37IzIyEosXL0bfvn2ljkdapEuXLkhNTYWpqSnat2+Pdu3aoUKFCkhJScEnn3yCu3fvomPHjti9e7fUUWXFyMioxM3ck5OTYWFhIUEi+XNycsKvv/6q1v7LL79w7z+SFRZ/RAQAyM7OxuDBg2FtbQ0PDw+0adMGNjY28PPzQ05OjtTxSMsMHToUN27cwP3795GRkYFbt27Bz89P6likZR4+fIjAwEAcO3YMCxcuxKJFi3D06FEEBQUhOzsbBw4cwDfffIOZM2dKHVVWvLy8MGPGDOTl5QEoevJx8+ZNTJ48GZ9//rnE6eRp/PjxmDhxIkJDQxEbG4vY2FiEhIRg8uTJGDdunNTxSALLly+Hg4MDjIyM0LRpUxw7duyN58fGxqJp06YwMjKCo6MjIiMjP0wwkYhIFMVhw4aJjo6O4r59+8SnT5+KT58+Fffu3SvWrFlTHDFihNTxiIjeWcWKFcWrV6+qtV+9elWsWLGiKIqimJSUJFaoUKGso8na06dPxVatWomVK1cWdXV1RTs7O1FfX1/08PAQnz9/LnU82Vq+fLloa2srCoIgCoIgOjg4iNHR0VLH0hhPnz4VAYhPnz6VOoqKf5Nry5Ytor6+vhgVFSUqFAoxICBANDU1FW/cuFHi+ampqaKJiYkYEBAgKhQKMSoqStTX1xe3b99eWt+GErd6ICIAQLVq1bB9+3a0a9dOpf3IkSPo3bs3h4BSqXn06BFCQkJw5MgR3L9/X22vrMePH0uUjLSNlZUVvv32W/j6+qq0b9iwARMmTMC9e/egUCjg4eHBeVklOHz4MM6ePYvCwkI0adIEHTt2lDqSRnjw4AGMjY25T+47Kt7qQW5bKvybXM2bN0eTJk2wYsUKZVu9evXg7e2NOXPmqJ0/adIk/PTTT0hKSlK2jRgxAufPn0d8fPz7fxN/wQVfiAgAkJOTAysrK7V2S0tLDvukUjVgwACkpKTAz88PVlZWWjeZnuTD398fI0aMwJkzZ/DJJ59AEAScPn0aq1evxv/+7/8CAPbv31/i1iMEdOjQAR06dJA6hsbhvMj3U9J8UykV5/l7LkNDQxgaGqqd/+rVK5w5cwaTJ09Wae/cuTNOnDhR4teIj49H586dVdo8PT2xZs0a5OXlQV9f/32+BRUs/ogIAODu7o7Q0FBs2LBBubT3ixcvMH36dLi7u0ucjrRJXFwc4uLi0KhRI6mjkJb75ptv4ODggGXLliEmJgYAUKdOHURFRaF///4Aiu6ujxw5UsqYsrBkyZK3Pvfve9mVV02aNMGhQ4dgbm7+2pVli509e7YMk2kmAwMDVK9eHXZ2dlJHUVOhQgW1XKGhoZg2bZrauQ8fPkRBQYHaDXUrK6vXrpabkZFR4vn5+fl4+PAhrK2t3+8b+AsWf0QEAIiIiMBnn32Gjz76CI0aNYIgCEhMTIShoSEOHDggdTzSInXr1sWLFy+kjkHlhI+PD3x8fF573NjYuAzTyFd4ePhbnScIAou//+fl5aV88uPt7S1tGC1gZGSEtLQ0vHr1SuooakRRVCvuS3rq91d/P7+k1/in80tqf18s/ogIAODi4oKrV6/i+++/x+XLlyGKIvr27QsfHx++OaJStXz5ckyePBkhISFo0KCB2nAWOc31ICov0tLSSmz/UG9AtUFoaCgAoKCgAO3atUPDhg1hbm4ucSrNZmRkpBx9pKmqVasGXV1dtad89+/fL3F6DQBUr169xPP19PRQtWrVUs3H4o+IAABz5syBlZUVhg4dqtK+du1aPHjwAJMmTZIoGWmbypUr4+nTp2pziYrvihYUFEiUjLRBlSpVcOXKFVSrVg3m5uZvLFq4uNDrrVmzBuHh4bh69SoAoFatWhg7diyGDBkicTL50dXVhaenJ5KSklj8EQwMDNC0aVMcPHgQPXv2VLYfPHgQXl5eJf4dd3d37NmzR6XtwIEDcHNzK9X5fgCLPyL6fytXrsSmTZvU2uvXr4++ffuy+KNS4+PjAwMDA2zatIkLvlCpCw8Ph5mZGYCi4ez07qZOnYrw8HD4+/sr53zHx8dj3LhxuH79OmbNmiVxQvlxcXFBamoqHBwcpI5CMjB+/Hh8+eWXcHNzg7u7O1atWoWbN29ixIgRAIApU6bgzp072LBhA4CiucfLli3D+PHjMXToUMTHx2PNmjXYvHlzqWfjVg9EBKBoqEVSUpJax5WamgpnZ2fk5uZKlIy0jYmJCc6dO4c6depIHYWISlCtWjUsXboU/fr1U2nfvHkz/P39uS1GCQ4cOIBJkyZh5syZaNq0KUxNTVWOczh7+bN8+XLMnz8fd+/eRYMGDRAeHg4PDw8AwKBBg3D9+nX8/vvvyvNjY2Mxbtw4/Pnnn7CxscGkSZOUxWJpYvFHRACKhvSEhoZiwIABKu0xMTEIDQ1FamqqRMlI23h4eCAkJIR7htEH8S7LxPMNecnMzc1x+vRp1KpVS6X9ypUraNasGTIzM6UJJmM6OjrKj/86moHD2UluOOyTiAAAQ4YMwdixY5GXl6eci3Xo0CFMnDgRgYGBEqcjbeLv74+AgABMmDABLi4uavMZGjZsKFEy0gaVK1f+x6HEfEP+ZgMGDMCKFSuwaNEilfZVq1a9ceXU8mzdunWws7ODrq6uSnthYSFu3rwpUSoidXzyR0QAit4MTZ48GUuWLFEus2xkZIRJkyYhJCRE4nSkTf56h7yYIAh8Q06lIjY29q3Pbdu27QdMorn8/f2xYcMG2NnZoUWLFgCAkydP4tatW/D19VW5YfP3ArG80tXVxd27d2FpaanS/ujRI1haWvL3GskGiz8iUvH8+XMkJSXB2NgYtWrV+sd9bIje1Y0bN9543N7evoySUHmQmZmJNWvWICkpCYIgoF69evDz80OlSpWkjiZb7du3f6vzBEHA4cOHP3AazaCjo4N79+7BwsJCpf3GjRtwdnZGdna2RMmIVLH4IyIiIq2UkJCALl26wMjICM2aNYMoikhISMCLFy9w4MABNGnSROqIpOHGjx8PAFi8eDGGDh0KExMT5bGCggKcOnUKurq6OH78uFQRiVSw+CMiojIXExODyMhIpKWlIT4+Hvb29oiIiICDg8Nr90Eieldt2rSBk5MToqKioKdXtMxBfn4+hgwZgtTUVBw9elTihKTpip+SxsbGwt3dHQYGBspjBgYGqFGjBoKCgtQWzyGSCos/IiIqUytWrEBISAjGjh2L2bNn49KlS3B0dMT69esRHR2NI0eOSB2RtISxsTHOnTuHunXrqrQrFAq4ubkhJydHomSkbb766issXryYK8iS7KnPuiciIvqAli5diqioKAQHB6usjOfm5oaLFy9KmIy0TcWKFUtcafHWrVvKjeCJSsO6detY+JFGYPFHRERlKi0tDa6urmrthoaGXBSBSlWfPn3g5+eHrVu34tatW7h9+za2bNmCIUOGqG1gTkRUHnCfPyIiKlMODg5ITExUW9Xzl19+gbOzs0SpSBstWLAAgiDA19cX+fn5AAB9fX2MHDkSc+fOlTgdEVHZY/FHRERlasKECRg9ejRyc3MhiiJOnz6NzZs3Y86cOVi9erXU8UiLGBgYYPHixZgzZw5SUlIgiiKcnJxUVmQkIipPuOALERGVuaioKMyaNQu3bt0CANja2mLatGnw8/OTOBkREZH2YvFHRESSefjwIQoLC2FpaSl1FCIiIq3H4o+IiIiIiKgc4GqfRERUpu7du4cvv/wSNjY20NPTg66ursofIiIi+jC44AsREZWpQYMG4ebNm5g6dSqsra0hCILUkYiIiMoFDvskIqIyZWZmhmPHjqFx48ZSRyEiIipXOOyTiIjKlJ2dHXjfkYiIqOyx+CMiojIVERGByZMn4/r161JHISIiKlc47JOIiD44c3Nzlbl9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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "inference_classifier(args_p, cfg_p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The produced confusion matrix show how many predictions the model made that corresponded to the real identity of the organism (on the diagonal), and also when the model was wrong what it guessed instead (off diagonal). " ] } ], "metadata": { "kernelspec": { "display_name": "mzbfull", "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.10.12" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }