{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Source Injector" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The source injector can produce mock simulated data independent of the MEGAlib software.\n", "\n", "Standard data simulation requires the users to install and use MEGAlib to convolve the source model with the detector effects to generate data. The source injector utilizes the response generated by intensive simulation, which contains the statistical detector effects. With the source injector, you can convolve response, source model, and orientation to gain the mock data quickly. \n", "\n", "The advantages of using the source injector include:\n", "\n", "- No need to install and use MEGAlib\n", "- Get the data much faster than the standard simulation pipeline\n", "- The generated data are in the format that can be used for spectral fitting, localization, imaging, etc.\n", "\n", "The disadvantages are:\n", "\n", "- The data are binned based on the binning of the response, which means that you lost the unbinned event distribution as you will get from the MEGAlib pipeline.\n", "- If the response is coarse, the data you generated might not be precise." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%%capture\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from scipy.interpolate import interp1d\n", "import astropy.units as u\n", "from pathlib import Path\n", "from astropy.coordinates import SkyCoord\n", "from astromodels.functions.function import Function1D, FunctionMeta\n", "from cosipy import SpacecraftFile, SourceInjector\n", "from histpy import Histogram\n", "from threeML import Powerlaw, Band, Model, PointSource\n", "from cosipy.threeml.custom_functions import SpecFromDat\n", "from cosipy.util import fetch_wasabi_file\n", "import shutil\n", "import os\n", "import h5py as h5\n", "\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "data_dir = Path(\"\") # Current directory by default. Modify if you want a different path" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Get the data\n", "The data can be downloaded by running the cells below. Each respective cell also gives the wasabi file path and file size. " ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "%%capture\n", "zipped_response_path = data_dir/\"SMEXv12.Continuum.HEALPixO3_10bins_log_flat.binnedimaging.imagingresponse.nonsparse_nside8.area.good_chunks_unzip.earthocc.zip\"\n", "response_path = data_dir/\"SMEXv12.Continuum.HEALPixO3_10bins_log_flat.binnedimaging.imagingresponse.nonsparse_nside8.area.good_chunks_unzip.earthocc.h5\"\n", "\n", "# download response file ~839.62 MB\n", "if not response_path.exists():\n", " \n", " fetch_wasabi_file(\"COSI-SMEX/DC2/Responses/SMEXv12.Continuum.HEALPixO3_10bins_log_flat.binnedimaging.imagingresponse.nonsparse_nside8.area.good_chunks_unzip.earthocc.zip\", zipped_response_path)\n", "\n", " # unzip the response file\n", " shutil.unpack_archive(zipped_response_path)\n", " \n", " # delete the zipped response to save space\n", " os.remove(zipped_response_path)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "%%capture\n", "orientation_path = data_dir/\"20280301_3_month_with_orbital_info.ori\"\n", "\n", "# download orientation file ~684.38 MB\n", "if not orientation_path.exists():\n", " fetch_wasabi_file(\"COSI-SMEX/DC2/Data/Orientation/20280301_3_month_with_orbital_info.ori\", orientation_path)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Inject a source response" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Method 1 : Define the point source" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this method, we are setting up an analytical function (eg: a power law model) to simulate the spectral characteristics of a point source:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
01:12:02 WARNING   The current value of the parameter beta (-2.0) was above the new maximum -2.15. parameter.py:794\n",
       "
\n" ], "text/plain": [ "\u001b[38;5;46m01:12:02\u001b[0m\u001b[38;5;46m \u001b[0m\u001b[38;5;134mWARNING \u001b[0m \u001b[1;38;5;251m The current value of the parameter beta \u001b[0m\u001b[1;38;5;251m(\u001b[0m\u001b[1;37m-2.0\u001b[0m\u001b[1;38;5;251m)\u001b[0m\u001b[1;38;5;251m was above the new maximum \u001b[0m\u001b[1;37m-2.15\u001b[0m\u001b[1;38;5;251m.\u001b[0m\u001b[1;38;5;251m \u001b[0m\u001b]8;id=475164;file:///Users/shengyong/conda_envs/source_injector/lib/python3.10/site-packages/astromodels/core/parameter.py\u001b\\\u001b[2mparameter.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=190355;file:///Users/shengyong/conda_envs/source_injector/lib/python3.10/site-packages/astromodels/core/parameter.py#794\u001b\\\u001b[2m794\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Defind the Crab spectrum\n", "\n", "alpha_inj = -1.99\n", "beta_inj = -2.32\n", "E0_inj = 531. * (alpha_inj - beta_inj) * u.keV\n", "xp_inj = E0_inj * (alpha_inj + 2) / (alpha_inj - beta_inj)\n", "piv_inj = 100. * u.keV\n", "K_inj = 7.56e-4 / u.cm / u.cm / u.s / u.keV\n", "\n", "spectrum_inj = Band()\n", "\n", "spectrum_inj.alpha.min_value = -2.14\n", "spectrum_inj.alpha.max_value = 3.0\n", "spectrum_inj.beta.min_value = -5.0\n", "spectrum_inj.beta.max_value = -2.15\n", "spectrum_inj.xp.min_value = 1.0\n", "\n", "spectrum_inj.alpha.value = alpha_inj\n", "spectrum_inj.beta.value = beta_inj\n", "spectrum_inj.xp.value = xp_inj.value\n", "spectrum_inj.K.value = K_inj.value\n", "spectrum_inj.piv.value = piv_inj.value\n", "\n", "spectrum_inj.xp.unit = xp_inj.unit\n", "spectrum_inj.K.unit = K_inj.unit\n", "spectrum_inj.piv.unit = piv_inj.unit" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "# Define the coordinate of the point source\n", "source_coord = SkyCoord(l = 184.5551, b = -05.7877, frame = \"galactic\", unit = \"deg\")\n", "\n", "# define the Crab point source\n", "point_source = PointSource('Crab', l = source_coord.l.deg, b = source_coord.b.deg, spectral_shape=spectrum_inj)\n", "\n", "# define the model. The model can contain multiple point sources.\n", "model = Model(point_source)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Read orientation file" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "# Read the 3-month orientation\n", "# It is the pointing of the spacecraft during the the mock simlulation\n", "ori = SpacecraftFile.parse_from_file(orientation_path)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Get the expected counts and save to a data file" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "# Define an injector by the response\n", "injector = SourceInjector(response_path = response_path)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 21.4 s, sys: 3.73 s, total: 25.1 s\n", "Wall time: 26.4 s\n" ] }, { "data": { "image/png": "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adO0d+9eu2MBRvnNb36j++67Tzk5OXrkkUe0c+dOuyMBxtq7d6/uuusuvfbaaxHdLucQxbjz589r5cqVys3N1dVXX60tW7Zo6dKlWrlypa644gq74wFGqKqqUlpampKSkrR//37NnDlTb775pq688kq7owFGaW5uVmFhoSzL0u23365HHnkkYttmhijG9e7dW5MnT1Zqaqp69Oihe+65Rz179tSxY8fsjgYYY9CgQUpKSpIkORwOXbhwQXV1dTanAszzhz/8QcOGDYvK3ay5U3WEnTt3Tm+++aYqKiq0f/9++Xw+zZ07V7m5uW3GBgIBvfLKK3rnnXfk8/k0ZMgQPfbYYxo+fPglt3/s2DH5fD6lp6dH82cAcSta++CSJUu0fv16BQIB3XbbbRo8eHB3/BwgLkVjPzx9+rRWrVql0tJSLVu2LOKZmSGKsNOnT6usrExVVVXKzMzscOyCBQtUXl6usWPHasaMGerRo4dmz56tPXv2tDu+sbFRJSUlmjRpklwuVzTiA3EvWvvgzJkztWnTJj333HMaPny4HA5HtH4CEPeisR+uWLFCDzzwgNxud3RCW4ioxsZGq66uzrIsy9q/f791xx13WOvXr28zbt++fdYdd9xhvfHGG8FlX375pfXwww9b06ZNazP+woUL1uzZs61f/OIXVnNzc/R+ABDnorUPftWcOXOsP/7xj5ENDlxGIr0fVlZWWo8++qj117/+1bIsy5o/f75VVlYW0czMEEVYUlJSSHfafO+995SQkKC8vLzgMqfTqfHjx2vfvn2qra0NLm9ublZJSYkcDofmzZvH/zMFOhCNffDrmpqadOLEiYjkBS5Hkd4Pd+/erWPHjmnixIm67777tHnzZr3xxhtasGBBxDJzDpFNDh48qIyMDPXp06fV8mHDhkmSDh06pNTUVEnS4sWLVV9fr8WLF6tnT/4jAyIh1H3Q7/fr/fff1+jRo5WUlKTt27dr165devzxx+2IDVxWQt0P8/LydM899wTXv/DCC0pLS9OkSZMiloW/XW1SX1/fbntuWdZyBUtNTY3WrVunpKSkVg3617/+tW6++ebuCQtchkLdBx0Oh9atW6fnnntOlmUpPT1dRUVFuv7667s1L3A5CnU/7NWrl3r16hVc73Q61bt374ieT0QhskljY6MSExPbLG+5tLexsVGSNGDAAG3btq1bswEmCHUf7NOnj55//vluzQaYItT98OvmzZsX8SycQ2QTp9OpCxcutFkeCASC6wFED/sgYL9Y2g8pRDZJTk5WfX19m+Uty1JSUro7EmAU9kHAfrG0H1KIbJKZmanjx4/r7NmzrZZXVFQE1wOIHvZBwH6xtB9SiGwyZswYNTU1ae3atcFlgUBA69evV1ZWVvAKMwDRwT4I2C+W9kNOqo6C1atXy+/3B6f8du7cqZMnT0qSJk6cKJfLpaysLGVnZ2v58uVqaGhQenq6Nm7cqJqaGs2ZM8fO+EDcYx8E7Bdv+yFPu4+CBx98UDU1Ne2uW7lypdLS0iRdPHu+5fktfr9fgwcP1mOPPaYRI0Z0Z1zgssM+CNgv3vZDChEAADAe5xABAADjUYgAAIDxKEQAAMB4FCIAAGA8ChEAADAehQgAABiPQgQAAIxHIQIAAMajEAEAAONRiAAAgPF4uCuAy151dbUeeuihNsszMzP16quvSpJ27dqlJ598Mrjuq89aihXz5s3Tjh072ix//vnn9b3vfc+GRMDlg0IEoMu+XiYuJScnR/PmzeuGRLHp7//+73X06FFJ0qBBg/T666+3O+78+fO67777dP78eUnSHXfcofnz53dbTsBEFCIAxvmHf/gHuVwu9e/fv1u/NycnR8uXL5ckVVVVqbKyUkOHDm0zbvv27cEy1PI5ScrNzdVNN90kSSotLe2GxIA5KEQAIu7uu+9u9y/6wYMH25CmrXvvvdeWw2E/+MEP9G//9m9qbm6WJG3cuLHdP6eNGzcGX/fr10+jRo2SdHGmqAWFCIgsChGAiBs5cqRyc3M7HPP183qee+45HT58WG+//bZqa2uVnp6uSZMmady4cTp//rxeeeUVbd68WWfOnNGgQYM0efLkVgUhmsrLy/Xiiy8G30+ePFlTpkyRJJ09e1Zr1qzR9u3bdfToUTU2Nuqqq67S3/zN3+hHP/qRrrvuuuDnrr76ag0fPlwffvihJGnz5s36x3/8R/Xs+X//U1xXV6c//elPwffjxo1rtR5AdLCXAYgJL7/8siorK4Pvjxw5opKSEp07d04bNmzQ/v37g+sOHjyoZ555RkuWLNGtt94a1Vxr1qxpVYamTp2qSZMmSZKOHTumWbNmqaamptVnTp48qY0bN2rz5s36+c9/ruzs7OC6nJycYCE6deqUPv744+AMkCT913/9V3AGSdI3FksAkUEhAhBxH374oRoaGtosv/vuu5WamtruZyorKzVy5EjdcMMNWrdunerr6yVJS5YskSSNHj1a1113nVavXq3z58/Lsiz9/ve/j2ohWrdunZYuXRp8P2PGDOXn50uSmpqa9MwzzwTLUL9+/eTxeNS3b1999NFH2rt3rwKBgObPn6+hQ4fq29/+tqSLh71cLpf8fr+ki4fHvlqI3nnnneDr66+/XkOGDIna7wPwfyhEACJu8+bN2rx5c5vlN9xwwyUL0fDhw/XrX/9aDodDV199tRYvXhxcN2rUKC1YsECSZFmWfve730mSDhw4EIX0F23atEllZWWyLEsOh0OzZs1SXl5ecP3777+vI0eOSJISEhL00ksvaeDAgZIunrT96KOP6vDhwwoEAnrrrbf0k5/8RJKUlJQkj8ejt99+W5K0c+dO+f1+uVwuHTp0SJ999lnwO5gdAroPhQhATPB4PHI4HJKkAQMGtFr31UNO6enpwdc+ny9qeVruT9SjRw/NmTOnTTn53//93+Drpqam4GG09uzdu7fV+5ycnGAhCgQC2rp1q+69915t2rQpOCYxMVFjx47t6s8AECIKEYCImzt3bqdnN1JSUoKvExMTL7kuISEh+NqyrDAThq5nz57tzmp1pox9/fBhVlaWrr32Wv35z3+WdHE2Kjc3V16vNzhm1KhRuvLKK8PKDKDzKEQAYkJHV1J9tQR1l2uuuUZHjx5VIBDQ3Llz9dxzzykrKyu43u12B18nJSXp0UcfveS2XC5Xm2U5OTl6+eWXJUl79uxpdd6UxOEyoLtRiACgHf/0T/+k+fPn6/Dhwzp//ryefvppvfDCC8GTnG+88cbg2EAgoOuuu0633XZbm+1UVFS0mfGSLl5Ov2LFCjU1NcmyLL300kvBdVdddZVGjhwZhV8F4FIoRAAi7lJXmblcLk2YMKH7A4XB5XJp8eLFmj59umpra+Xz+TRr1iwtW7ZMAwcO1KhRozRo0CBVVVVJkn7+85/rzjvv1LXXXqvm5mb95S9/0SeffKKamhrNnTtX119/favtp6SkaPjw4frggw8kSV9++WVw3dixY7n3ENDN2OMARNylrjIbMGBA3BQi6WJpWbx4sX7yk5/o9OnT+uKLL/TUU0/ppZdeUmpqqn71q18F70N04cIFvfvuu53afm5ubrAQfX05gO7Vw+4AABDLBg0apEWLFql3796SLt508amnnlJ9fb0GDhyosrIyTZ8+XTfeeKPcbrcSEhJ0xRVXaMiQIbr33ns1f/58eTyedrc9evRo9e3bt9WyoUOHxswjTgCTOKzuuEwDAGz09ceEfPXhri0PTo0H27dv1/HjxyW1fpbZ888/r+9973t2xQIuCxwyA2Cc119/XZKUmZkZV4Vow4YN2rFjh90xgMsSh8wAAIDxOGQGAACMxwwRAAAwHoUIAAAYj0IEAACMRyECAADGoxABAADjUYgAAIDxKEQAAMB4FCIAAGA8ChEAADDe/wMaF2asJqJ5VAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%time\n", "\n", "file_path = \"Crab_model_injected.h5\"\n", "\n", "# Check if the file exists and remove it if it does\n", "if os.path.exists(file_path):\n", " os.remove(file_path)\n", "\n", "# Get the data of the injected source\n", "model_injected = injector.inject_model(model = model, orientation = ori, make_spectrum_plot = True, data_save_path = file_path)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Compare with Simulation" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "%%capture\n", "# download simulated data\n", "simulated_data_path = data_dir/\"crab_3months_unbinned_data.hdf5\"\n", "\n", "# download orientation file ~89.50 MB\n", "if not simulated_data_path.exists():\n", " fetch_wasabi_file(\"COSI-SMEX/cosipy_tutorials/source_injector/crab_3months_unbinned_data.hdf5\", simulated_data_path)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Simulated and injected Crab')" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "simulated = Histogram.open(simulated_data_path)\n", "injected = Histogram.open(\"Crab_model_injected.h5\")\n", "\n", "ax,plot = simulated.project(\"Em\").draw(label = \"Simulated Crab\", color = \"orange\")\n", "injected.project(\"Em\").draw(ax, label = \"Injected Crab\", color = \"purple\", linestyle = \"dotted\")\n", "\n", "ax.legend()\n", "ax.set_xscale(\"log\")\n", "ax.set_yscale(\"log\")\n", "ax.set_ylabel(\"Counts\")\n", "ax.set_title(\"Simulated and injected Crab\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Method 2: Read the spectrum from a file" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this method, we're loading spectral data from a file (crab_spec.dat) and visualizing it:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "# Load data from the text file, skipping the index column\n", "dataFlux = np.genfromtxt(\"crab_spec.dat\",comments = \"#\",usecols = (2),skip_footer=1,skip_header=5)\n", "dataEn = np.genfromtxt(\"crab_spec.dat\",comments = \"#\",usecols = (1),skip_footer=1,skip_header=5)\n" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2YAAAIvCAYAAAAf9cjuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAACG4ElEQVR4nOzdeVxVdf7H8fcFBBRcQVFRUURR3DAVzS0XSs1ymmyxaaymUUvLbNptpqlpnMmmfTV1KtOp1LLMzC3MXXHL/QJuiCiCgrIr6/394Y9bxHa53su9F17Px6PHI8753nM+UJ388P2e79tgMplMAgAAAAA4jJujCwAAAACAuo7GDAAAAAAcjMYMAAAAAByMxgwAAAAAHIzGDAAAAAAcjMYMAAAAAByMxgwAAAAAHIzGDAAAAAAcjMYMAAAAAByMxgwAgBrQvn17tW/f3tFlAACcFI0ZAECSZDAYqvxr48aNji7TaWzcuLHKn9epU6ccXWaFyqu/QYMGatWqlYYOHaqnn35a+/bts9n9HnjgAaf/mQCAI3k4ugAAgHN58cUXKzzHjE9ZQUFBeuCBB8o916RJkxqtxRq/rj8/P18XLlzQzz//rNdff12vv/66/vCHP2ju3Lny9fV1bKEAUMvRmAEASnnppZccXYJLad++vUv/zCqqf//+/brvvvv0xRdf6OLFi1q9enXNFwcAdQhLGQEAVnnppZfMyxu//vprRUREqEGDBmrWrJkmTJigs2fPlvu5ixcvaubMmeratavq16+vxo0ba+TIkVq3bl2ZsQsWLJDBYNCCBQu0Zs0aDRs2TI0bN5bBYDCPycjI0OOPP642bdrI29tbXbp00ZtvvqmTJ0/KYDCUms265557ZDAYtGnTpnJrW7ZsmQwGgx599NFr++FY6Nc/w986depUmfp37twpT09PBQcHKyMjo9T4c+fOKSAgQL6+voqNjb3m2sLDwxUVFaXmzZtrzZo1Wr58eanzy5cv1x//+Ed17txZPj4+8vHxUZ8+ffTuu++quLi41FiDwaDPPvtMktShQwfz0slfz8Du3btXM2bMUK9evdSsWTN5e3urU6dOevLJJ3Xp0qVr/n4AwNnRmAEArsmHH36oP/7xj2rfvr0eeeQRde/eXUuWLFFkZKTy8vJKjU1ISFCfPn00e/ZsNW/eXA8//LDuvvtuxcTEaPTo0Zo/f3659/j66691yy23qGHDhubPSNKVK1c0YsQIvfPOO2rRooVmzJihYcOG6V//+peefPLJMteZOnWqJGnevHnl3mfu3LmSpIcfftjqn4c99e/fX//+978VHx+vyZMnm48XFxfr3nvv1fnz5/XBBx+oS5cuNrlfixYt9NBDD0mSPv/881LnnnvuOf3888/q37+/pk+frvvuu0/Z2dmaMWOG7r///lJjX3zxRfXq1UuSNGPGDL344ot68cUX9fjjj5vHzJ8/X4sXL1ZoaKj+9Kc/aerUqWrVqpXefPNNDRo0SFlZWTb5ngDAWbGUEQBQSkXL8ry9vfXcc8+VOb5mzRrt3r1bPXr0MB/7wx/+oC+//FLfffed7rrrLvPx+++/XwkJCfryyy81YcIE8/H09HQNGzZMjz32mMaNG6eAgIBS91i1apVWrVql0aNHlzr+2muv6eeff9aECRP0xRdfmGfS/vrXv+q6664rU+vQoUPVrVs3LVu2TO+++678/PzM506ePKmoqCgNHDhQ3bt3r+QnVNqpU6fK/ZkNGzZMw4YNs/g6lnryySe1YcMGffXVV5o7d64eeugh/fOf/9SGDRt03333lWmKrtWwYcM0a9Ys7dq1q9TxH374QR07dix1rLi4WH/605+0cOFCPfroo+rfv7+kq/9OnTp1SgcOHNDjjz9e7ruKM2fO1AcffCB3d/dSxz/++GNNmjRJH374oZ599lmbfm8A4FRMAACYTCZJlf7VuHHjUuNffPFFkyTTX//61zLX+umnn0ySTE8++aT52P79+02STHfccUe591++fLlJkumDDz4wH/v0009Nkky33XZbuZ/p2LGjyc3NzRQfH1/m3KxZs0ySTPfff3+p4++//75Jkun1118vdfy5554zSTJ99tln5d7rtzZs2FDpz+vFF18sNT4oKMgUFBRU6ljJz3DDhg1lrh8fH19u/SaTyXThwgVTYGCgydvb2/T++++b3N3dTaGhoabs7GyLav91/TfccEOl42JiYkySTPXr17founv37jVJMv3jH/8odfz+++83SSr3n1VliouLTY0aNTINHz68Wp8DAFfDjBkAoBSTyVSt8X379i1zrG3btpJU6t2gHTt2SLr6Tlh5M0wXLlyQJMXExJQ5FxERUeZYZmamTpw4obZt25Y7AzN48OBy673vvvv03HPPad68eebljgUFBVqw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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot the data\n", "plt.figure(figsize=(10, 6))\n", "plt.plot(dataEn, dataFlux, marker=\"o\", linestyle=\"-\")\n", "plt.xscale(\"log\")\n", "plt.yscale(\"log\")\n", "plt.xlabel(\"energies (keV)\")\n", "# plt.ylabel(\"Flux (keV cm^-2 s^-1)\")\n", "plt.ylabel(\"Flux_ph (ph/cm^2/s/keV)\")\n", "plt.title(\"Energy Flux Data\")\n", "plt.grid(True)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We use a custom class `SpecFromDat` to define a spectrum from data loaded from a CSV file `crab_spec.dat`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### SpecFromDat Class Explanation\n", "\n", "The `SpecFromDat` class represents a spectrum loaded from a data file (`dat`, `txt`, `csv` etc.,). It provides methods to handle spectral data and evaluate the spectrum at specified energy values (`x`).\n", "\n", "#### Class Description\n", "\n", "- **Description**: \n", " - A spectrum loaded from a data file (`dat`).\n", "\n", "#### Parameters\n", "\n", "- **K**:\n", " - **Description**: Normalization factor.\n", " - **Initial Value**: 1.0\n", " - **Is Normalization**: True\n", " - **Transformation**: log10\n", " - **Min**: 1e-30\n", " - **Max**: 1e3\n", " - **Delta**: 0.1\n", " - **Units**: `ph/cm2/s`\n", "\n", "#### Properties\n", "\n", "- **dat**:\n", " - **Description**: The data file from which the spectrum is loaded.\n", " - **Initial Value**: `test.dat`\n", " - **Defer**: True\n", " - **Units**:\n", " - **Energy**: `keV`.\n", " - **Flux**: `ph/cm2/s/keV`.\n", " \n", "#### Functionality\n", "\n", "- Loads flux (`dataFlux`) and energy (`dataEn`) from the specified data file (`self.dat.value`).\n", "- Normalizes `dataFlux` using the widths of energy bins.\n", "- Interpolates (`interp1d`) the normalized data to create a function (`fun`) for evaluating the spectrum.\n", "- Evaluates the spectrum (`fun(x)`) at given energy values (`x`), scaled by the normalization factor (`K`)." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "spectrum = SpecFromDat(K=1/18, dat=\"crab_spec.dat\")\n", "\n", "# Define the coordinate of the point source\n", "source_coord = SkyCoord(l = 184.5551, b = -05.7877, frame = \"galactic\", unit = \"deg\")\n", "\n", "# define the Crab point source\n", "point_source = PointSource('Crab', l = source_coord.l.deg, b = source_coord.b.deg, spectral_shape = spectrum)\n", "\n", "# define the model. One model can contain multiple point sources.\n", "model = Model(point_source)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Read orientation file" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "# Read the 3-month orientation\n", "# It is the pointing of the spacecraft during the the mock simlulation\n", "ori = SpacecraftFile.parse_from_file(orientation_path)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Get the expected counts and save to a data file" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "# Define an injector by the response\n", "injector = SourceInjector(response_path = response_path)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 23.5 s, sys: 4.82 s, total: 28.3 s\n", "Wall time: 31.1 s\n" ] }, { "data": { "image/png": "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sAQQHQQiAFG3Y8cOnT59uln7Pffco7S0tBY/U1lZqWHDhumGG27QmjVrVFdXJ0lauHChJGnEiBG67rrrtHLlSl24cEGWZel3v/tdTAPRmjVrtGjRotD7adOmqaCgQJLU0NCg559/PhSGevbsKY/Ho6uuukqffvqp9uzZo0AgoLlz52rQoEH64Q9/KOnSspfL5ZLf75d0aXns24Hogw8+CL2+/vrrNXDgwJj9PgD/h0AEIOo2btyojRs3Nmu/4YYbLhuIhgwZol//+tdyOBy65pprtGDBgtCx4cOHa968eZIky7L029/+VpK0f//+GFR/yYYNG1RWVibLsuRwODR9+nTl5+eHjn/88cc6fPiwJCkpKUmvvvqq+vbtK+nSRduPPvqoDh06pEAgoPfee09PPPGEJCk5OVkej0fvv/++JGn79u3y+/1yuVw6ePCgvvzyy9B3MDsEdBwCEYC44PF45HA4JEl9+vRpcuzbS04ZGRmh1z6fL2b1NO5P1KlTJ82cObNZOPnf//3f0OuGhobQMlpL9uzZ0+R9bm5uKBAFAgFt3rxZ9913nzZs2BDq06VLF40aNaq9PwNAmAhEAKJu1qxZbZ7dSE1NDb3u0qXLZY8lJSWFXluWFWGF4evcuXOLs1ptCWPfXT7Mzs5W//799ac//UnSpdmovLw8eb3eUJ/hw4fr6quvjqhmAG1HIAIQF1q7k+rbIaijXHvttTpy5IgCgYBmzZqll156SdnZ2aHjbrc79Do5OVmPPvroZc/lcrmateXm5uq1116TJO3evbvJdVMSy2VARyMQAUAL/vmf/1lz587VoUOHdOHCBT3zzDN6+eWXQxc533jjjaG+gUBA1113nW6//fZm56moqGg24yVdup1+2bJlamhokGVZevXVV0PHevfurWHDhsXgVwG4HAIRgKi73F1mLpdLY8eO7fiCIuByubRgwQJNnTpVJ06ckM/n0/Tp07VkyRL17dtXw4cPV79+/VRVVSVJeu6553TXXXepf//+CgaD+vOf/6zPP/9cNTU1mjVrlq6//vom509NTdWQIUP0ySefSJK++eab0LFRo0ax9xDQwRhxAKLucneZ9enTJ2ECkXQptCxYsEBPPPGEzpw5o6+//lpPPfWUXn31VaWlpelXv/pVaB+iixcv6sMPP2zT+fPy8kKB6LvtADpWJ7sLAIB41q9fP82fP1/dunWTdGnTxaeeekp1dXXq27evysrKNHXqVN14441yu91KSkpS9+7dNXDgQN13332aO3euPB5Pi+ceMWKErrrqqiZtgwYNiptHnAAmcVgdcZsGANjou48J+fbDXRsfnJoItm7dqmPHjklq+iyzxYsX68c//rFdZQFXBJbMABjnrbfekiRlZWUlVCBat26dtm3bZncZwBWJJTMAAGA8lswAAIDxmCECAADGIxABAADjEYgAAIDxCEQAAMB4BCIAAGA8AhEAADAegQgAABiPQAQAAIxHIAIAAMb7f5NGb02aqfYAAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%time\n", "\n", "file_path = \"crab_piecewise_injected.h5\"\n", "\n", "# Check if the file exists and remove it if it does\n", "if os.path.exists(file_path):\n", " os.remove(file_path)\n", "\n", "# Get the data of the injected source\n", "model_injected = injector.inject_model(model = model, orientation = ori, make_spectrum_plot = True, data_save_path = file_path)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Compare with Simulation" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "%%capture\n", "# download simulated data\n", "simulated_data_path = data_dir/\"crab_3months_unbinned_data.hdf5\"\n", "\n", "# download orientation file ~89.50 MB\n", "if not simulated_data_path.exists():\n", " fetch_wasabi_file(\"COSI-SMEX/cosipy_tutorials/source_injector/crab_3months_unbinned_data.hdf5\", simulated_data_path)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Simulated and injected Crab')" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "simulated = Histogram.open(simulated_data_path)\n", "injected = Histogram.open(\"crab_piecewise_injected.h5\")\n", "\n", "ax,plot = simulated.project(\"Em\").draw(label = \"Simulated Crab\", color = \"orange\")\n", "injected.project(\"Em\").draw(ax, label = \"Injected Crab\", color = \"purple\", linestyle = \"dotted\")\n", "\n", "ax.legend()\n", "ax.set_xscale(\"log\")\n", "ax.set_yscale(\"log\")\n", "ax.set_ylabel(\"Counts\")\n", "ax.set_title(\"Simulated and injected Crab\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### (Optional) Compare simulated data with existing models" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Comparison b/w model and piecewise injected counts')" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAloAAAHTCAYAAAD/DLZnAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAABtK0lEQVR4nO3deVxUVf8H8M8wzAw7KMgimBuKYCjuO6LgiuJumhXmI2ZoZlZu5Vb2aJtZ+ns0zbRscynX1Axyy7TUtHIj9xRRNoEZdmbO7w+a0ZEBhmW8LJ/36+VrnHPPPfc7d+698+Xec8+VCSEEiIiIiKjSWUkdABEREVFNxUSLiIiIyEKYaBERERFZCBMtIiIiIgthokVERERkIUy0iIiIiCyEiRYRERGRhTDRIiIiIrIQJlpEREREFsJEi4oICQmBTCaTOoxyWbhwIWQyGQ4ePCh1KNXW9evXIZPJMH78+Aq1c/DgQchkMixcuLBS4noUZDIZQkJCLNb+hg0bIJPJsGHDBostoyqoKseQytqWAaBRo0Zo1KhRhdupqnjstJwan2hdvHgRL7zwAh5//HE4OztDqVSifv36CA8Px7p165Cbmyt1iFSFhIeHo27duigoKJA6FCKq5Syd+Nd2jyp5trb4EiT0xhtvYNGiRdDpdOjSpQsiIyPh4OCAu3fv4uDBg5g4cSJWrVqFkydPSh1qlfL5558jKytL6jAeObVajdjYWDzxxBOwtq7RuwZJZNiwYejcuTO8vLykDsWiqsoxxNvbGxcuXICzs3OF24qNja2EiKg2qrG/Jv/973+xYMECNGjQAFu2bEGnTp2K1Nm9ezfef/99CaKr2h577DGpQ5DEnj17kJubi2HDhkkdCtVQzs7OlfKjX9VVlWOIQqFAixYtKqWtpk2bVko7VPvUyEuH169fx8KFC6FQKLBnzx6TSRYADBo0CPv27StSvnnzZgQHB8PZ2Rm2trYIDAzEkiVLTF5m1J961Gg0eOmll9CgQQPY2toiKCgI27dvBwAUFBTgrbfeQrNmzWBjY4OmTZti5cqVRdp6sE/LsWPHEBYWBmdnZzg6OqJfv34mz7zdvn0bb7zxBrp16wZPT0/DpdEnn3wS58+fN7lu9H0W/v77bzzxxBNwd3eHlZWV4dq8qf4VQgh89tln6Nq1K+rVqwcbGxs0aNAA/fr1w6ZNm4os59SpUxgxYgTc3d2hUqnQsGFDREdHIyEhoUjd8ePHQyaT4fr16/j4448RGBgIGxsbeHh4YNKkSUhPTy8yjzk+++wztGnTBra2tnB3d8eECRNw586dYutv27YNdnZ26NevHwCgfv368Pb2LlKvYcOGkMlkePPNN43K9+7dC5lMhvnz55ca24Pf9cmTJ9G/f384OzujTp06GDFiBG7evAkAuHr1KsaMGYN69erB1tYWvXr1wh9//GGyzYSEBEyZMgWNGjWCUqlEvXr1MHz4cJw6dcpkfbVajRkzZsDHxwc2NjZo0aIFli1bBp1OV2zcWVlZWLJkCYKCgmBvbw8HBwd06dIFX3/9damfuTTp6el499130bt3b/j4+Bg+Q0REBI4dO2ZyHv2lleTkZEyaNAleXl5QqVRo2bIl1q9fb3KevLw8vPnmm2jatClUKhUaN26M119/vczdCB7cly5evIihQ4eibt26sLe3R/fu3bF///4i85TUR+vWrVuYOnUqmjRpApVKBVdXV0RERODEiRMml6/VarF69Wp069bNcKzy9fXFxIkTcenSJaO6BQUF+N///ofOnTvDyckJdnZ2aNOmDVauXGn0fWs0GiiVSnTr1s1o/uzsbNjY2EAmk2Hjxo1G01atWgWZTIZPP/3UUFYZx5Cyrg9TiuujVZ5jTkmXmb7++mv06tULLi4usLGxgb+/PxYvXlzsNnXx4kVMmDABjRo1gkqlgru7O3r06IFVq1YBuL+dAMChQ4cgk8kM/x7u8/jrr79i5MiRhuN/gwYN8Nxzz+H27dsml33q1Cn0798fjo6OcHJyQlhYWLH7V2mysrLw9ttvo3379nB0dISDgwP8/f0xbdo03L1716huWY5PJfUXq4zvVH/8vXHjBm7cuGG0fh9s98iRIxg8eDB8fHygUqng6emJzp07Y9GiRWVbUaIGmj9/vgAgxowZU+Z558yZIwAINzc3MXnyZPHKK6+Ili1bCgCiZ8+eIjc316h+w4YNRf369UXnzp1F8+bNxZQpU0RUVJRwcHAQVlZWIiYmRgwfPlx4e3uLiRMniilTpgh3d3cBQHzzzTdGbR04cEAAEP379xdKpVIMHDhQzJkzR4waNUrI5XJhY2MjDh8+bDTP119/LWxtbcXAgQNFdHS0mDlzphg2bJhQKBTC3t5enDlzxqj+tWvXBADRvXt34eLiIjp27CimT58unnvuOXHq1CkhhBA9e/YUD28a+vXSuHFjER0dLebMmSPGjx8vWrZsKUaMGGFUd9euXUKpVAqFQiHGjh0rZs+eLfr06SMAiPr164urV68a1Y+MjBQAxKhRo4STk5MYN26cmDFjhmjTpo0AIHr16mX297dgwQIBQERERAgbGxsRGRkpZs+eLbp3726IPzExsch8OTk5wtHRUQwbNsxQNm7cOAFAXLhwwVB26dIlAcCwPTzo5ZdfFgDEwYMHS41T/10PHDhQ2NjYiH79+omXX35Z9O3bVwAQzZs3FxcuXBCurq6iW7duYsaMGWLEiBFCJpOJevXqCbVabdTe1atXRf369QUA0bt3bzF79mwxbtw4oVQqhVKpFLt27SryeTt06CAAiNatW4uZM2eKSZMmCRcXFxERESEAiMjISKN57t27Z/hO2rZtK6ZOnSqio6NF06ZNBQDx2muvmfyMCxYsKHV9CCHEsWPHhEKhEKGhoWLSpEli1qxZYuzYscLe3l5YW1uLvXv3FplHH3/z5s3F448/LqZOnSqioqKEi4uLACA2bNhgVF+n04khQ4YIAKJp06ZixowZYurUqcLLy8vwuR/+Xouj35eCg4OFi4uL6NGjh5g9e7aIjIwUNjY2wsrKqsg+vn79egFArF+/3qj81KlTwtXVVchkMtG/f3/x8ssvi8jISOHs7CyUSqX4/vvvjern5uYa9qkGDRqIyZMni5kzZ4rRo0eLunXrGrWfl5cn+vXrJwAIPz8/8dxzz4kXX3xRtGrVSgAQTz31lFHb3bp1E9bW1iIjI8NQ9uOPPxq2+4e3ixEjRggA4vr164ayih5Dyro+iqP/jh6OuTzHnIYNG4qGDRsWKX/22WcFAOHj4yMmTJggZsyYIbp27SoAiJCQEJGfn29Uf/fu3cLW1lZYWVmJgQMHitmzZ4vJkyeLLl26iEaNGgkhhDh9+rThWNawYUOxYMECw78DBw4Y2lq3bp2Qy+XCzs5OjBkzRrz66qti6NChwsrKSnh5eYkbN24YLfvo0aPC1tZWyOVyMWrUKDFnzhwxYMAAoVQqRf/+/QUAo/ZLkpqaKlq3bm3YrqZNmyZeeeUVMWzYMOHg4GDUTlmPT/rPbiqWyvhOr127JhYsWCCcnZ2Fs7Oz0frdtm2bEEKIvXv3CisrK+Hi4iKeeeYZMWfOHPHcc8+J4OBg4e7ubtY60quRiVbv3r0FALF27doyzffLL78YDlwJCQmG8vz8fDFo0CABQLz11ltG8zRs2FAAEIMGDRI5OTmG8sOHDwsAok6dOqJ9+/bi3r17hmlXrlwRCoVCBAUFGbWl/2ECIFasWGE0bfv27QKA8PX1FVqt1lB+9+5dowOi3pkzZ4S9vb3o37+/Ubl+IwUg5syZY3I9mDpI1q1bV3h7e4vMzMwi9ZOSkgz/V6vVom7dusLKyqpIUrh06VIBQPTp08eoXL+DNGjQwOjAkJ+fL3r06CEAiF9//dVkrA/T76AKhUL8/vvvRtOmT58uAIgJEyYUmW/37t0CgNi4caOhbN26dQKAWLlypaFs9erVhs+gVCqN1kdQUJCwtbUtkoyb8uB3/cUXXxhNmzBhgmHbWbx4sdG0N954QwAQy5cvNyrXJ2gP1z969KiQy+Wibt26RsnZW2+9JQCI4cOHG21PV69eFXXq1CnxQPb2228blWdnZ4t+/foJmUwmTp8+XeQzmptopaWlGW1Lejdv3hReXl6iRYsWRabp1+F//vMfUVBQYCg/d+6ckMvlwt/f36j+l19+KQCIzp07i+zsbEN5SkqKaNKkSbkSLQDilVdeMZp24sQJYW1tLVxcXER6erqh3FSilZ+fL5o2bSpUKlWRJD0+Pl7Ur19feHp6Gh1f9EnL4MGDjcqFKEyiH/xjQr9PTJ061WgdFRQUGLa17du3G8rnzZsnAIjdu3cbymbPni3kcrno3bu38PHxMZRrtVpRt25d0aRJE6MYKnIMKc/6KE5pP8plOeaYSrT03+ewYcNEVlaW0TT9en9wX01KShJOTk5CoVCY/IPs5s2bRu9L2h7j4uKEQqEQTZs2Fbdu3TKaFhMTI6ysrMTQoUMNZTqdTvj5+RX5voUQYvny5YZt2dxEa+zYsQKAmDx5stExRIjC34G0tDTD+7IenyqSaFX0O9UbPny4AFDkZIUQwuRxqiQ1MtHy9/cXAEz+BVySiRMnCgDi448/LjItLi5OWFlZicaNGxuV6xOty5cvF5mncePGAoCIjY0tMi0kJERYW1sbHfj0P0wPJ1N6+oOXOWdMhBBi8ODBQqVSiby8PEOZfiP18PAo9kBV3EGyUaNGpR7cvvjiCwFAjB07tsi0/Px80ahRIwHAaEfQ7yCmEuNPP/3UZOJZHP0OaiqZSktLE87OzsLGxqbI5/jPf/4jFAqFUUJ8/fp1w0FUb9SoUcLDw0Ps2rVLABA//PCDEEKI5ORkIZPJiiSRxdF/1927dy8y7dChQwKAaNSokdH28WBM48ePN5TdvHlTABCPPfaY0Xet99RTTwkA4rPPPjOU+fr6CisrK5PbrX4dPnggS05OFnK5XLRv397k5zlz5owAIF599dUin9HcRKskL7zwQpHtRojCHyI7OzujZEYvODhYADA6gIeFhQkA4qeffipSX/+jWdZEy9nZ2eQfO/rt+sGzaqYSLf0fUQ8na3r6H0H9WZyCggLh7OwsbG1tRXx8fIkx6hMhT0/PImdWhCg8SymTycSoUaMMZQcPHhQAxEsvvWQo69Chg+jYsaNYuXKlACDi4uKEEIVnngCIqKgoo3Yrcgwp6/ooSWk/ymU55pj6UQ4KChLW1tZGxw29goIC4erqKjp06GAoe++99wQAMW3atFJjF6LkREv/h+ODCfGDhg4dKuRyuWHb/Pnnnw1nYE3Fqj8zbU6idffuXcNZM41GU2Ld8hyfKpJoVfQ71dMnWvptvSJqbGf48vj9998BAL179y4yrXnz5vDx8cG1a9eQnp5u1KHVxcXFZEfJ+vXr49q1a2jXrl2Rad7e3igoKMCdO3eK9APq0aMHrKyKdp8LCQnBoUOHcPr0afTs2dNQ/v3332P16tU4efIkkpOTiwxNkJycXOQup9atW0OlUplaDSaNGzcOK1asQEBAAEaPHo2ePXuiS5cuRTr2lrQOra2tERwcjOvXr+P06dNFOsy2b9++yDwNGjQAANy7d8/sWAEYrR89Z2dnBAUF4dChQ7hw4QKCgoIAADqdDjt37kRISAhcXFwM9Rs2bIgmTZrg4MGD0Ol0hj4DYWFh6NmzJ6ytrREbG4u+ffviwIEDEEKY/NwlMfWZ69evDwAICgqCXC43mqbfVm7dumUoO336NIDC7UahUBRpr3fv3vjiiy9w+vRpPPPMM1Cr1bh8+TIaNGhgcrsNCQkp0gfhxIkT0Gq1xY6LlZ+fDwC4cOFCSR+3VEePHsWHH36IY8eOITExEXl5eUbT4+Pji2w3zZo1g5OTU5G2Htx2HBwcABRun1ZWVujevXuR+uW9jb5t27ZwdHQ02d5nn32G06dPIzIystj59f1jbty4YXLd6vtbXbhwAQMHDsTFixeRnp6OTp06GbaV4vz9999ITU1Fs2bNsHjxYpN1bG1tjb63Ll26wNbW1nCXXXp6On7//XfMnDnTsH3HxsaiefPm+OmnnwCY3t8fZu4xpKzroyIqcszJysrCH3/8ATc3NyxfvtxkHZVKZbRujx8/DgAYMGBAOSO+T7+eDh06ZLLfWmJiIrRaLf7++2+0a9fOcGw2dWyUy+Xo3r07rly5YtayT5w4AZ1Oh+DgYNjb25dYt6zHp4qqrN+RcePG4bvvvkOnTp3wxBNPoFevXujWrRt8fHzKHFONTLS8vLxw4cIFxMfHl2k+fWe54m699vLywj///IO0tDSjg0NxdxHphwgwNV0/Tf8D9SAPDw+T7Xl6ehrFCQAffvghpk+fjjp16qBPnz547LHHYGdnB5lMhu3bt+OPP/4w2SFT35a5PvjgAzRp0gTr16/H0qVLsXTpUlhbW2PgwIF4//334evraxRbSesQANLS0opMezDJ0dOvJ61WW6Z4y7IOjxw5gqSkJJN3G4aGhmLt2rX4/fffoVAokJSUhNDQUDg6OqJDhw6GHyP9a2hoaJniLGnbMHe7Kes619cvbR09KCUlBUDhAbakzsgajabYaaXZtm0bRo4cCRsbG/Tp0wdNmzaFvb294UaNQ4cOmdyWTW03gOltJz09HXXr1jV5wC/rPqFXlm3NFP263bJlS4n19OtW/z2aulGjuLYvXbpUYgfeB783pVKJ7t27IyYmBklJSfjll1+g1WoRGhoKf39/eHl5ITY2Fs8//zxiY2Mhk8nMSrTMPYaUdX1UREWOOffu3YMQAklJSWZ3ji7Ld1ca/Xp69913S6ynX0/l2e+LU5bPUZHfhPKorN+R4cOHG0Ym+PTTT/Hxxx8DANq1a4clS5agT58+ZrdVIxOt7t2746effkJsbCz+85//mD2f/oftzp07Jv/S198xZ+nbsx++W0NPf8ecfvkFBQVYuHAhPD098fvvvxfZkEu6k6SsozbL5XJMnz4d06dPR2JiIn7++Wd888032LJlC86dO4dz585BpVIZrUNTqto6BAp/4GUyGYYOHVqkfu/evbF27VrExMRAqVQCuJ9M9e7dG0uWLEFqaipiY2Ph7OyMtm3bVvInKV1Z17n+tbR1ZGoZL730EpYtW1axgIsxb948KJVKnDx5Ev7+/kbTnnvuORw6dKjCy3B2dkZqairy8/OLJFsl3ZFakrJsa8XFBAA7duxAREREqcvT/5CY84ekvu1hw4bhu+++K7W+Xu/evfHjjz8iNjYWv/zyC2xsbAx3Ivbu3Rt79+5Fbm4ujhw5gpYtW8Ld3b3UNst6DDF3fUhFH2ebNm0MZ4tK8+B3FxgYWCnLT09PN3lGt7j6Zdnvi1OebbAsvwn6KzqmBo6urITMHOHh4QgPD0dmZiZ+/fVX7N69G6tWrcKgQYNw+vRpBAQEmNVOjRze4dlnn4VCocC3335rcoiDBz34F3KbNm0AwOQtpZcvX8atW7fQuHHjYv+Criw///yzyVvs9XHp40xOTkZaWhq6du1aJMnSaDRm7/xl5e7ujuHDh2Pz5s3o3bs3rly5grNnzxrFZmodFhQU4MiRIwBg8YTE1I9yeno6zpw5Y7j9Wm/79u3FDiLZu3dvyGQyxMbG4qeffkKTJk0Mt3iHhoZCp9Ph888/x6VLlxASElLkUt+joF/nP//8s8kD04EDBwDcX+eOjo7w9fVFfHy8yUsFpr67jh07wsrKyvD9WcLly5cREBBQJMnS6XT4+eefK2UZbdu2Lba98j565Pfff4darS62Pf33U5zOnTsDgNnrtkWLFnBxccGff/5Z7C38D9c9fvy4ybPnxdH/MaHf7rt27QobGxvDtNTUVKxatQqZmZllPosLlHwMKev6kIqDgwNatmyJc+fOITU11ax59J9t7969ZtW3srIq9ixMWdeTfv83dWzUarVl2sf0x4PDhw8jMzOzxLplPT4BQJ06dQDAMMzNgypzgHG5XG7WWS57e3v07t0by5Ytw9y5c5GXl2f2dwjU0ESrUaNGWLhwIfLy8hAeHl7sF7Nv3z6ja+UTJkwAACxevBhJSUmGcq1Wi1deeQU6na5MZ8jK69KlS/jf//5nVLZjxw4cOnQIvr6+6NGjB4DCg5WdnR1OnTpldBo9Pz8fL774IpKTkyslntzcXBw9erRIeX5+vuEAY2dnBwCGsYS+/vprQ38EveXLl+PatWsICwuz+ICGGzduNPQN0Fu4cCHS09MxduxYQ/+033//HTdu3Ch2kFJ3d3e0bNkSR48exeHDh41+VPQ/PkuWLAFgXj8VS/Dx8UGfPn1w/fr1In1Ffv31V3z11VeoU6eO0Wd89tlnodPpMGvWLKOk/tq1a/joo4+KLMPd3R3jxo3DyZMn8eabb5o8OF25cgXXrl0r9+do1KgRLl26ZJQ8CCGwcOHCUv9gMtezzz4LAHjttdeQk5NjKE9NTS22D1Np0tPT8cYbbxiVnTx5El9++SWcnZ1LHQB3yJAhaNq0Kf7v//4Pe/bsMVnn2LFjhpHW5XI5oqOjkZ2djcmTJxe5nJqXl2c4fllbW+OFF15AQkICpk2bhuzs7CJtJyQkFFm/bdu2hbOzM3bs2IFz584Zbff67bws231ZjiFlXR9SmjFjBvLy8jBhwgSTZ1ru3btn9AdvZGQknJycsGrVKhw+fLhI/Qf7XgKAq6uryWQDAKZOnQqFQoGXXnoJf//9d5HpeXl5RklY165d4efnh8OHD2PHjh1GdVeuXGl2/ywAqFevHsaMGYOEhATDb+ODNBqN4ZJheY5PHTt2BACsX7/eKDm7efNmkX2tIlxdXZGUlGRyvzh8+LDJxFB/RlC/vZqjRl46BIC5c+eioKAAixYtQocOHdC1a1e0b9/e8Aiew4cP49KlS0Yd57p27YqZM2finXfeweOPP46RI0fC3t4ee/fuxdmzZ9G9e3e8+uqrFo+9f//+ePnll7F37160bt0aly9fxnfffQcbGxt8+umnhtOqVlZWmDZtGpYuXYrAwEAMGTIEeXl5OHDgAFJTU9GrVy/DXwsVkZ2dje7du8PX1xft2rVDw4YNkZOTgx9//BEXLlxARESE4SyEg4MDPv30U4waNQo9e/bEqFGj8Nhjj+HUqVPYv38/PD09Dde6LWnAgAHo1q0bRo8eDS8vL/z888/4+eef0ahRIyxdutRQT385paQfw9DQUMNf2w/+4KhUKnTr1q3c/bMqk37gyldffRX79+9H+/btcfPmTWzZsgVWVlZYv369UYftl19+Gdu3b8e3336Ltm3bol+/fkhLSzMM1rtz584iy1i5ciUuXbqE+fPnY+PGjejevTs8PDxw+/ZtXLhwASdOnMDXX3+Nxo0bl+szvPTSS5g8eTLatGmDESNGQKFQ4OjRozh//jwGDx6MXbt2lXv96I0dOxabNm3Czp078fjjj2PIkCHIz8/H1q1b0aFDhzL92OgFBwfjk08+wa+//opu3bohISEBmzZtgk6nw8cff1zqZR2FQoHvvvsO/fr1Q3h4OLp27YqgoCDY2dnh5s2bOHHiBK5evYqEhATDwX3BggX49ddfsWvXLjRv3hyDBg2Co6Mjbt68if379+Pdd981DLw4b948/PHHH1i9ejV27dqF3r17w9vbG4mJibh06RKOHj2Kt956y+gyiFwuR0hIiOEH+cFtu2HDhmjatCmuXLkCuVxusnP1w8pyDCnP+pDKhAkTcOrUKfzvf/9D06ZN0a9fPzz22GNITU3FtWvXcPjwYTz77LNYvXo1AMDNzQ1fffUVRo4ciV69emHAgAFo1aoVMjIy8Oeff+LmzZtGf6yEhobim2++weDBg9G2bVsoFAoEBwcjODgYLVq0wKeffooJEyagZcuW6N+/P5o3b478/Hz8888/OHLkCOrVq4eLFy8CKOwusm7dOvTp0wcjRozA8OHD4evrizNnziA2Nhb9+/c3OYB3cVauXImzZ89i9erVOHjwIPr16welUolr167hhx9+MNxgBJT9+NSpUycEBwfj8OHD6NixI3r37o27d+9i165d6NevX7HJZ1mFhobixIkT6N+/P4KDg6FSqdC6dWsMHjwY06ZNQ3x8PLp162YYZPXUqVP46aef0LBhQ4wZM8b8BVX4vsUq7vz582Lq1KmiZcuWwtHRUSgUCuHp6Sn69+8vPvnkE5O3Gn/99deiW7duwsHBQahUKhEQECAWL15sNO6OXkm3h5q6xVlPfyvqtWvXDGUP3g7/yy+/iNDQUOHo6CgcHBxEnz59xG+//Vaknfz8fPH+++8Lf39/YWNjIzw8PMRTTz0lrl+/bnIZxd0aW1LceXl54u233xb9+/cXDRo0ECqVSri5uYlOnTqJVatWmRw36rfffhNDhw4Vbm5uQqFQGAZVNHU7uqk4Ta0Tczx4W/D69etF69athY2NjXBzcxPjx48Xt2/fNqofEBAgAgMDS2xz586dAoCQyWTi7t27RtP++9//GobLKIuSPldp3xGKueX71q1bYvLkyeKxxx4TCoVCuLq6iiFDhpjcboQQIj09Xbz00kuifv36QqVSCT8/P/Hee++JK1euFLv83NxcsWLFCtGlSxfh5OQklEqlaNCggejdu7f44IMPRHJyslmfsTj678zOzk64urqKoUOHij///LPY272LWxdCFL9d5ebmikWLFonGjRsLpVIpGjZsKObOnStycnLKNbxDZGSkOH/+vIiIiBAuLi7C1tZWdO3aVezbt8/k5wOKDlgqROEt87NmzRItW7YUtra2wt7eXvj6+ooRI0aIjRs3FhmeIT8/X6xYsUJ06NBB2NvbCzs7O+Hr6yuioqLEpUuXjOrqdDrx+eefi969e4s6deoIhUIh6tevL7p16ybeeust8c8//xSJ56OPPhIAhJOTU5FhRiZNmiQAiI4dO5pcN5VxDCnr+jCltKEAynLMKelYv2vXLhEeHi7q1asnFAqF8PDwEB06dBCvvfaa0YDHemfPnhVPP/20qF+/vlAoFMLd3V0EBwcXGVro7t27YuzYscLd3V1YWVmZjOvPP/8UkZGR4rHHHhNKpVLUqVNHtGzZUkyaNMnk0EInT54U/fr1Ew4ODsLBwUGEhoaKX375pcQhFYqj0WjE4sWLRWBgoLC1tRUODg7C399fvPjii0WOlWU9Pt27d09MnDhR1KtXTyiVStGyZUvx8ccfV+p3qtFoxOTJk4W3t7eQy+VG7W7atEmMGTNG+Pr6Cnt7e+Ho6Chatmwp5s6da3LQ65LIhBCivNkgVa6DBw+iV69eWLBggcnbmqly/f333/Dz88P8+fPL/kgFqvWuX7+Oxo0bIzIy0uQjdahm8fT0hLOzM+Li4qQOhaqZGtlHi8gc27ZtA1DyZUMiotTUVCQnJ5drDCUiJlpUa82aNQtCCMPApURED0pPT8e8efPQv39/aLVajBw5UuqQqBpiokVERGTCvXv3sGTJEsPrc889J3VIVA2xjxYRERGRhfCMFhEREZGFMNEiIiIishAmWmbIyclBXFyc0UjSRERERKVhomWGGzduICoqCjdu3JA6FCIiIqpGmGgRERERWQgTLSIiIiILqbEPla4MMTExiImJgUajkToUIiIiqoaYaJUgLCwMYWFhiIuLQ1RUlNThEBERUTXDRIuIyMKEECgoKIBWq5U6FKIaS6FQQC6XSx1GEUy0iIgsKC8vDwkJCcjKypI6FKIaTSaTwcfHBw4ODlKHYoSJFhGRheh0Oly7dg1yuRz169eHUqmETCaTOiyiGkcIgaSkJNy6dQvNmjWrUme2mGgREVlIXl4edDodGjRoADs7O6nDIarR6tWrh+vXryM/P79KJVoc3oGIyMKsrHioJbK0qnq2mHs/EVEtExQUBLVaXWq9iRMn4sCBA+Vezvbt23H8+PFyzbt7926EhISUe9nz58/Hl19+CQA4ePAg9u3bZ5h2/fp1uLi4lLvtytC+fXscPHiw1HqNGjXCmTNnLB4PWQ4vHRIR1TLm/nB/8sknFVrO9u3bERQUhM6dO1eonfJ44403DP8/ePAg0tLS0L9//0ceBxHPaBER1TIymQxpaWkACs+YzJ8/H126dEHjxo2xePFiQ72QkBBs374dAKBWqxEVFYWOHTuiVatWmDRpEvLy8gAA8fHxGDlyJAIDA9GqVSvMmzcPe/bswc6dO/Huu+8iKCjIkLRt3LgRnTp1Qtu2bREcHIw//vgDAJCfn4/o6Gg0a9YMHTt2LPZM2t9//43mzZsDKOwA7eHhgblz5wIADh8+jN69ewMAxo8fj+XLl+PMmTNYvXo1vvzySwQFBRklYAsWLEC7du3g6+uLPXv2mFzewoULMXr0aAwePBjNmzfHoEGDcPbsWfTr1w/NmzfH2LFjodPpAACJiYkYPnw4AgMD8fjjj+Pjjz82tPPLL78gKCgIjz/+OJ599lkUFBQYpt25cwejR49Gx44dERgYiNdff92Mb5GqC57RIiJ6hNqvaY87mjsWa9/TwRMnJ50s0zxpaWk4duwYkpOT0bRpUzz77LPw9vY2qvPyyy+jR48eWLt2LYQQiIqKwocffohXX30VTz31FPr27YutW7cCAJKSklCvXj1EREQgKCgI06dPBwAcPXoUX3/9NQ4fPgyVSoUjR47gySefxLlz57BmzRrExcXh3LlzAIB+/fqZjLV58+bIzc3FP//8g3v37qFJkyaIjY0FAPz4448ICwszqh8UFITJkycjLS0Ny5cvB1B46TA9PR2tWrXCokWLsG/fPrz44osYOHCgyWWePHkSp06dgouLC0JCQjBx4kT8+OOPsLW1Rfv27bF3716Eh4fjhRdegJ+fH7777jskJiaiXbt2aN26Ndq2bYsnnngC69evR1hYGPbv348NGzYY2o+MjMTcuXPRs2dPFBQUYNCgQdiyZQtGjRpVpu+RqiYmWkREj9AdzR3Eq+OlDsPIk08+CQBwc3NDkyZNcO3atSKJ1vbt23Hs2DEsW7YMAJCdnQ25XA6NRoOff/4ZP/zwg6FuvXr1TC5nx44d+OOPP9CpUydDWWpqKrKzsxEbG4tnnnkGSqUSADBhwgSsW7fOZDuhoaGIiYnBvXv38PTTT2PNmjVIS0tDTEyMIZkqjY2NDYYPHw4A6NKlC65cuVJs3b59+6JOnToAgLZt20KlUsHR0REA0KZNG1y6dAlA4WPbTp06BQBwd3fH8OHDERMTAzs7O1hbWxuSwL59+6JJkyYAgMzMTMTGxuLu3buG5Wk0GsTFxZn1OajqY6JFRPQIeTp4Vrn2bWxsDP+Xy+VGl7X0hBD49ttvDZft9MryLFghBCIjI/Hf//631Lol3UEWFhaG3bt34969e/jwww9x6dIlbNu2DZcuXUL79u3NikWlUhmWIZfLSxy1/+H1Y876Ku0z6KcJIQAAx48fN2qXag4mWlR2/2wB/pwP5D9w11JoLODkd//99a+A0zNLb8vWE+j/0GWO354D4r8vfd5GY4E27xqX7W4B5Bdz4Fc4Aq3eBB4bWXrbRBZS1st6VcXQoUPx9ttv4+OPP4a1tTXu3buHlJQU+Pr6Ijg4GO+//z7mzJkD4P6lQycnJ6SnpxvaiIiIwLhx4zB58mQ89thj0Ol0+P3339G+fXuEhYXhiy++wJNPPgkhBNavX19sLKGhoXjppZdQt25dNG/eHGFhYZgyZQq6d+9ucvwkJycn3Lhxo/JXykPCwsKwdu1avPXWW0hKSsJ3332HLVu2oEWLFigoKMCBAwfQq1cvxMTEGM6gOTg4oFevXli6dCkWLlwIALh9+zZ0Oh18fHwsHjNZHhMtKrOMEy/BKdf40kfvDcH4u0BheD/WNhPvOqeV2laCJgEdlhkfTFa7pGCQTU6p83596n949cDXRmUX3G/D0UqYniEbyDgxHU5MtIjMpj/z8sEHH2D27NkICgqClZUVrK2t8c4778DX1xcbN27ECy+8gJYtW0KhUGDIkCFYtGgRnn76aYwfPx7bt2/HlClTMHHiRLzzzjsYNmwYCgoKkJeXh/DwcLRv3x5RUVE4e/YsAgICUKdOHfTo0cNwGe5hHh4e8PDwMJy96tmzJ27fvo2XX37ZZP1hw4Zh48aNCAoKwvDhw/HMM89YZF199NFHeP755xEYGAghBF577TXDZdJNmzYhOjoaWq0WHTp0QOvWrQ3zffnll5gxYwYef/xxyGQy2Nvb4+OPP2aiVUPIhP68JRUrLi4OUVFRWLt2Lfz8/EqfoYa784UCnlYF0Aog4d8z5qHxwN/59+uMdQTecTWjLS3Q4aZx2Wp3INyMQbS/1gAzk43LLjQEHEycrfeyBuQy4I7OGp5P5RetQGQBOTk5uHbtGho3blwtLwu1bNkSa9asQbdu3aQOhahUVXV/4xktKjMhCm9lTtACnVP+7TBrA3g/sF0fBtA5xbz2vB2N37+ZXfivPPOGpZqud9wtHj7W92MnopL5+fnB399fkjGwiGoSJlpUbnKZFW7NuCV1GGaJ/D9XZOWkws7GBZ9JHQxRNcC73ogqBxMtqhVic20RrwG8ZbZSh0JERLUIR4YnIiIishAmWkREREQWwkuHVGbhKe5IzLwDd3t3/C51MGYKtM5DAxvAxTpP6lCIiKgWYaJVgpiYGMTExJRp5OPaIFEnR3wBAF3RgQGrqk/rpMDLDUjQmnkrJBERUSXgpcMShIWFYenSpXjhhRekDoWIqNIEBQVBrVaXWm/ixIk4cOBAuZezfft2HD9+vFzz7t69GyEhIeVe9vz58/Hll18CAA4ePIh9+/YZpl2/fh0uLi7lbltv9erVePfdd0uvaCEV/X4elJeXh0GDBiEwMBBTpkyplDYflJaWhqVLlxqVVWb8VRnPaBER1TJnzpwxq94nn3xSoeVs374dQUFBkozF9cYbbxj+f/DgQaSlpaF///6VuozJkydXantlVdHv50GnT5/GpUuXLDashz7Rmj17tqGsMuOvynhGi8psnG0mXnIpfCWi6kcmkyEtLQ0A0KhRI8yfPx9dunRB48aNsXjxYkO9kJAQbN++HQCgVqsRFRWFjh07olWrVpg0aRLy8gr7PMbHx2PkyJEIDAxEq1atMG/ePOzZswc7d+7Eu+++i6CgIMOP6saNG9GpUye0bdsWwcHB+OOPPwAA+fn5iI6ORrNmzdCxY8diz3T8/fffhgdbCyHg4eGBuXPnAgAOHz6M3r17AwDGjx+P5cuX48yZM1i9ejW+/PJLBAUFGSVgCxYsQLt27eDr64s9e/aYXN7ChQsxYsQI9O7dGy1atMDgwYORkpJimDZ9+nRD3ffeew8dO3ZE27Zt0b9/f8PzFXft2oVWrVohKCgIjz/+OHbs2AEAuHPnDkaPHo2OHTsiMDAQr7/+OgBg//796Nu3LwAgIyMDCoUCa9asAQB8/vnnmDBhQpHv55NPPkFAQACCgoIQGBiIX3/9FQBw6dIlhIeHo0OHDmjVqhVWrlxZ5DOeP38e48aNwz///IOgoCB8/vnnRT7bypUrMX78eADAhg0bEBYWhrFjxyIwMBDt27fH1atXDXXXr1+PoKAgtG7dGu3bt8f169cxefJkqNVqBAUFGR6d9GD8iYmJGD58OAIDA/H444/j448/NrRX0jZaHfCMFpXZdIcMeMmBBG2G1KEQVU8XlgEXl5Ver25boOdO47JDEUBqMbehtJgB+M8oczhpaWk4duwYkpOT0bRpUzz77LPw9vY2qvPyyy+jR48eWLt2LYQQiIqKwocffohXX30VTz31FPr27YutW7cCuP9Q6YiICAQFBRl+sI8ePYqvv/4ahw8fhkqlwpEjR/Dkk0/i3LlzWLNmDeLi4nDu3DkAQL9+/UzG2rx5c+Tm5uKff/7BvXv30KRJE8TGxgIAfvzxR4SFhRnVDwoKwuTJk5GWlobly5cDKLx0mJ6ejlatWmHRokXYt28fXnzxRQwcONDkMo8cOYI///wTnp6eiI6Oxpw5cwyJj95XX32FuLg4HDt2DHK5HBs3bkR0dDS+//57vP766/j444/RpUsX6HQ6ZGQUHjsjIyMxd+5c9OzZEwUFBRg0aBC2bNmCQYMGYcyYMcjNzcWBAwfQoUMHxMTEYNKkSfjxxx8xYMCAIjG+/PLLuHjxIry8vJCfn4/c3FxotVqMHTsWX3zxBVq0aIGsrCx07twZnTp1QocOHQzzBgQE4JNPPsH06dMNZzv1D7guzokTJ3DmzBk0btwYs2fPNjxw/ODBg3jjjTfwyy+/wMvLC1lZWQAKL7MGBQUVezb1hRdegJ+fH7777jskJiaiXbt2aN26teFsqDnbaFXFRIuI6FHLzwCy40uvl9PARFlS8fPml++PnyeffBIA4ObmhiZNmuDatWtFfsS2b9+OY8eOYdmywgQxOzsbcrkcGo0GP//8M3744QdD3Xr16plczo4dO/DHH38YHrQMAKmpqcjOzkZsbCyeeeYZKJVKAMCECROwbt06k+2EhoYiJiYG9+7dw9NPP401a9YgLS0NMTExhmSqNDY2Nhg+fDgAoEuXLrhy5UqxdcPDw+Hp6QkAmDRpkmG+B23fvh0nTpxAu3btAABardYo3hdffBEjR45E3759ERQUhMzMTMTGxuLu3buGehqNBnFxcRg1ahSCgoJw9OhRxMTEYPbs2ZgxYwZ0Oh1++uknk/3CQkND8fTTT2Pw4MEYMGAAmjdvjvPnz+PcuXMYM2aMoZ5arcb58+eNEq3y0J9d0v9/xYoVAIDvv/8eTz/9NLy8vAAAdnZmPLgWhTef6R8i7u7ujuHDhyMmJsaQaJmzjVZVTLSIiB41hRNga8aPhI2JhMWmXvHzKpzKFc6DD+CVy+UoKCgoUkcIgW+//dZw2U6vLHdlCyEQGRmJ//73v6XWlclMPB3+X2FhYdi9ezfu3buHDz/8EJcuXcK2bdtw6dIlw2Wp0qhUKsMy5HK5UWJUntiEEJgzZw4mTZpUZNqyZctw7tw5HDhwAJGRkRg3bhyio6MBAMePHzf5AOSwsDDExMTg8OHDWLp0KQIDA/HFF1+gTp06hqTvQd9++y1OnTqFgwcPYuDAgVi8eDECAwNRt25ds/vkPcja2tponeTk5BhNN2ebqYiH17Gll2dJ7KNFRPSo+c8Aht0q/d/Dlw2BwrLi6pfjsqG5hg4dirffftvwA3fv3j1cvnwZDg4OCA4Oxvvvv2+om5SUBABwcnJCenq6oTwiIgJffPEF/vnnHwCATqfDyZMnARQmFl988QXy8/ORl5eH9evXFxtLaGgoYmNjcf36dTRv3hxhYWFYtGgRunfvDrm86LAzD8dRVnv27DGcefrkk0+KXJ4ECtfP6tWrkZpa+GT7/Px8nD59GgBw8eJFtGzZElOnTsXzzz+P48ePw8HBAb169TK6E+/27du4deuWYX189dVXcHFxgb29PcLCwjB//nyTyy4oKMCVK1fQvn17vPLKKxg5ciR+++03+Pn5wcnJyWhdXr582RBjSXx9fXHy5ElotVpkZWXh22+/NWtdDR48GF988QUSEhIAAFlZWcjKyoKTkxOys7MN/foeFhYWhrVr1wIo3H6+++479OnTx6xlVnU8o0W1Sq546C9RS/WVedDD/Wby1cBu/9LnA4CeO4C67cyrS2QB+jMLH3zwAWbPno2goCBYWVnB2toa77zzDnx9fbFx40a88MILaNmyJRQKBYYMGYJFixbh6aefxvjx47F9+3ZMmTIFEydOxDvvvINhw4ahoKAAeXl5CA8PR/v27REVFYWzZ88iICAAderUQY8ePQyXkh7m4eEBDw8Pw9mrnj174vbt23j55ZdN1h82bBg2btyIoKAgDB8+HM8880yZ1kGPHj3w5JNPIj4+Hs2aNcOGDRuK1Bk3bhxSUlLQq1cvAIXJz4QJE9CmTRvMnTsXcXFxUCqVsLOzw6pVqwAAX375JWbMmIHHH38cMpkM9vb2+Pjjj+Hj44P27dsjPT0doaGhAIA+ffpg6tSphvcP0mq1mDBhAlJTU2FtbY169eph/fr1sLa2xu7duzF9+nR88MEH0Gq1cHNzw1dffVXqZx4+fDi2bNkCf39/+Pj4oE2bNob+ViUJDg7GggUL0K9fP8hkMiiVSmzduhUNGzbEM888g1atWsHBwcGQYOt99NFHeP755xEYGAghBF577TWjS8zVmUwIIaQOoqqLi4tDVFQU1q5dCz8/P6nDkVzCRjm85DokaK3g9bT5p9uldOlzBZpZFyDoHxmSlfUN5TMcMjDDofTxhE7lKTAk1d2obEfdRLRT5pc67zKNI5Zp7l/ScZDpcNEjway4x2Y0xIjg9zAyYKRZ9alqycnJwbVr19C4cWOTl4equpYtW2LNmjXo1q2b1KFIZuHChUYd6anqqqr7G89oUa2wMscdk5W3cSVPQJN7vyPxLTlwS1X6/PF5+YhXG3dAjncAPIrvRnJ/GdlqxD8wOKSDDLhV17y4/067gXkH5jHRokfOz88P/v7+koyBRVSTMNGiWqFH9w8x/MA8ODuo4fxA+WYtsNnMp/J4Oxq/j9YAMLMf8MPzdjZjmQmaBOiEDt7K0s+4EVU2Sw1cWd2UNswBUWmYaFGtMDJgZLU7K+SzzKfIWTQiIqpemGhRmV0tsEZqQR7SYA0vqYOpwUJV2cgSgJ0qW+pQqIJ0Op3UIRDVeFW1yzkTLSqzJ+7VQ7w6Ht6O9XBL6mBqsKVOafCqAyRo06QOhcpJqVTCysoKt2/fRr169aBUKkscH4qIykcIgaSkJMhkMigUCqnDMcJEi4jIQqysrNC4cWMkJCTg9u3bUodDVKPJZDL4+PiYHEtNSky0iIgsSKlU4rHHHkNBQUGZRh8norJRKBRVLskCmGgREVmc/nJGVbukQUSWx0SLymyFcyrsHIEsq9If40BERFSbMdGiMuuszIWXHEjQ5kodChERUZXGREtq/2wB/pxf+Pw7Pd8oIHCBcb1tPua11/ULwCPk/vu7B4FfnjJv3mEP3UP41yLg8toi1dyteKs6ERGROZhoSSzjxEtwyjUelHLN8Xfxxo/GCc4tT/MGrhy3ZSQO5d1/xlNPZQ6+rGve0Oc+y4yTufmOaZhkn1mknvzfu9M1wsqsdomIiGorJloSy8q+CycrQCuAhILCsvicTMSrjROcW67mtReflYL4B8a3jLcFbjkWX99o3oef5acAbilN11ULYHWeOz40r2kiIqJaiYmWxIQovAyXoAU6p3gbysvzbDwAgLXxvJfLMO/Dy1yXD6wrZl5HlSPe7PWmmUFReWQKK2RodcjkmUMiomqLiVYVIZdZ4dYMjrNO94Uke/w7Ar8HR+AnIqqm+KcyERERkYUw0SIiIiKyEF46lNjxPBXsdNnIslJhmNTBEBERUaWqVYnWV199hW+//RYajQY+Pj5YsWIF7OzsJI3phfS6//bDqctEi4y87pgOa1ugwDpd6lCIiKicak2i9d133+HXX3/F//73P7i7u+Pq1auwtq41H5+qoSE2Wf+OwJ8ldShERFROtSLT0Gq12LhxI1auXAkPDw8AQNOmTSWOioiIiGq6KploZWVl4ZtvvsH58+dx4cIFqNVqzJkzBwMGDChSNy8vD+vWrcP+/fuhVqvRtGlTTJw4ER06dDDUSUpKQm5uLg4ePIjNmzfDwcEBY8aMweDBgx/lxyIiIqJapkredZieno4NGzbgxo0b8PX1LbHukiVLsHnzZvTp0wfTpk2DlZUVZs6ciT///NNQJykpCRqNBjdv3sTmzZvxxhtvYM2aNfjjjz8s/VFKtalOEs4+VvhKRERENUuVTLRcXV2xbds2bNmyBc8//3yx9c6fP4/Y2FhMmjQJ0dHRiIiIwPLly+Hp6YlVq1YZ6qlUKgDA+PHjoVKp0LRpU4SGhuL48eMW/yylaWJdgJaqwlciIiKqWapkoqVUKuHqWvrD/Q4dOgS5XI6IiAhDmUqlQnh4OM6dO4e7d+8CABo0aACFQgGZTGao9+D/iYiIiCyhSiZa5rp06RJ8fHxgb29vVO7v7w8AuHz5MgDA1tYWPXv2xOeff468vDxcv34dP/30Ezp37myy3eTkZMTFxRn+3bhxw7IfhIiIiGqkKtkZ3lwpKSkmz3zpy5KTkw1lL730Et5++20MHjwYzs7O+M9//oPWrVubbHfnzp3YsGGDRWImIiKi2qNaJ1q5ublQKBRFypVKpWG6nqOjIxYvXmxWuxEREejWrZvh/Y0bN8yel4iIiEivWidaKpUK+fn5Rcrz8vIM08vDzc0Nbm5uFYqNqKJic22g0mYhV26Dp6QOhoiIyqVaJ1qurq5ISio6LEJKSgoAMFmiam12Rh3Eq7Pg7ViHiRYRUTVVrTvD+/r64tatW8jMzDQqP3/+vGE6ERERkVSqdaIVEhICrVaLnTt3Gsry8vKwZ88eBAQEGB63Q0RERCSFKnvp8Ntvv4VGozFcBjx69CgSExMBACNGjICDgwMCAgLQq1cvrFmzBmlpafD29sa+fftw584dzJo1q8IxxMTEICYmBhqNpsJtFWe5xgn5eWlQKJ3wtsWWQkRERFKQCSGE1EGYMnr0aNy5c8fktE2bNsHLywtA4Z2F+mcdajQaNGnSBBMnTkTHjh0rLZa4uDhERUVh7dq18PPzq7R2AcBnmQ/i1fHwdvTGrRm3KrVtqt7++EwJV+QjBQq0jsyTOhwiIiqHKntGa/PmzWbVU6lUiI6ORnR0tIUjInq03K208JIDcq1W6lCIiKicqmyiRUSF3K10wDafohPavAM0evL++4w4IDbUvEb7nwBsve6/v7wG+OuN0udzag6E/mRcdnQckHjo/nuFI9DqTeCxkebFQkRUgzHRkpi7lRaw/veV6AEaYQVAB7kMQHZ8kemv7p2Cr7NnGt43t87HT26JZrXd4eO2SNDJDe+j7NRY4JRR6nxxGXcRusw46fuiTjJCVPcHB0Y2kHFiOpyYaBERMdGS2veuifByBxK05v1AUu2xMscdk5W34VjM88/js9MQr04zvLdXALeczWv7luYO7jyQ28fLgFu2pc8Xn1+AeLVx0hdvB9z69/5lL2tALgOysu/CybxQiIhqNCZaJXgUdx0SFadH9w8x/MA8qHPVxdbxdrz//0wAnVPMa1tuB3g/8H6PAPaYOe+DywSAWVkAsgr/f9wtHj7WgBA68xojIqrhmGiVICwsDGFhYYa7DokepZEBIzEyoHpdfkvYKAfAJIuISK9aD1hKREREVJUx0SIiIiKyEF46JKJK81WWPWQFaghre7wsdTBERFUAEy0iqjQfZDohXq2Gt6MTEy0iIvDSIREREZHF8IxWCTi8AxEREVUEE60ScHgHIiIiqggmWhJ7ItUNKVmJcLVzw2GpgyGqoBP1EuDlCSRoE6QOhYioSmCiJbGrWgXi8wBvlULqUIiIiKiSsTM8ERERkYUw0SIiIiKyEF46lNhQmyzkyAAbVZbUoRAREVElY6Ilsdcc0+HlAiRo06UOhYiIiCoZE60ScBwtIiIiqggmWiXgOFpERERUEewMT0RERGQhTLSIiIiILISXDomo0kxLr4uM7GQ42dbFFqmDISKqAphoEVGlOZanQnwW4C1XSR0KEVGVwEuHRERERBbCRIuIiIjIQnjpUGKJOjm0Oh1SIIeX1MEQVVAXZS4y7AAnZa7UoRARVQlMtCQWnuKOeHU8vB3dcUvqYIgq6CPnVHjVBRK0qVKHQkRUJTDRKgFHhiciIqKKYKJVAo4MT0RERBXBzvBEREREFsIzWhJb6nQPKnsgV35P6lCIiIiokjHRklioKgdeciBBmyN1KERERFTJeOmQiIiIyEKYaBERERFZCBMtIiIiIgthokVERERkIUy0iKjSdEjyguxS4SsRETHRIiIiIrIYDu9QAj6Ch4iIiCqCiVYJ+AgeorJraA3scb0LbPMpuaJ7T6Dbl8Zlsb2BjL9LX0jgfMB30v332QnAvg7mBRgaCzj53X9//Svg7JtAqzeBx0aa1wYRkZmYaElsR44drAs0KLC2w2SpgyGqoCg7NRxVQLJODmTHl1w5N7loWc7d0ucDgPyHzjILrXnzAYCuwPh9+nkg4yLw5zwmWkRU6ZhoSWyx2hnxag28HZ2ZaFG1d1trjen2gKNVLhK0JXcBPX7tCF5YZnzWa1OdJDSxLr3r6PKDb+LLvcsM792ttPje1bwup0981htXtQrD+1uehQlaVnYi7MxqgYjIfEy0iKjSHIY71txI/fedrpTa2QCMz0J1V5u7pLR//xWKB1A/3dx5E43e3XIFfBRARm4GEy0iqnRMtIio0rzZ603MOzAP6lyzMybpyQqTPSFKSwyJiMqOiRYRVZqRASMxMqB69XNK2ChH6WffiIjKh4mWxA663YV7PSBR3JU6FCIiIqpkHLBUYvYyHZzkha9ERERUszDRIiIiIrIQJlpEREREFsI+WkRUqyXq5NDqdEiBHHwUNhFVNiZaRFSrhae4I14dD29Hd9ySOhgiqnF46ZCIiIjIQphoEREREVkIEy0iIiIiC2EfrRLExMQgJiYGGo1G6lCIyEKWOt2Dyh7Ild+TOhQiqoGYaJUgLCwMYWFhiIuLQ1RUlEWWMTvDBVk5qbCzccFnFlkCEZUkVJUDLzmQoM2ROhQiqoGYaEksNtcW8RrAW2YrdShERERUydhHi4iIiMhCmGgRERERWQgvHUos0DoPDWwAF+s8qUMhIiKiSsZES2Kf1kmBlxuQoE2ROhQiIiKqZLx0SERERGQhTLSIiIiILISJFhEREZGFsI8WEdVqO3LsYF2gQYG1HSZLHQwR1ThMtIioVlusdka8WgNvR2cmWkRU6XjpkIiIiMhCmGgRERERWQgTLSIiIiILYR8tIqrVDrrdhXs9IFHclToUIqqBeEZLYiHJHnC6UvhKRI+evUwHJ3nhKxFRZWOiJbFMYQW1rvCViIiIahb+uhMRERFZCBMtIiIiIgthZ3iJRdmpIRSATKGWOhQiIiKqZEy0ShATE4OYmBhoNBqLLWOSvQZeciBBa7llEBERkTSYaJUgLCwMYWFhiIuLQ1RUlNThEBERUTXDPlpEREREFsJEi4iIiMhCeOmQiGq12RkuyMpJhZ2NCz6TOhgiqnGYaBFRrRaba4t4DeAts5U6FCKqgZhoEREBCLTOA7b5mFd50AVA4Xj//YVlwMVlpc9Xty3Qc6dx2aEIIPX30udtMQPwn2FefERUZTDRIiICkJGTDGQLs+q2WOkHzQOPzZrhkIEZDqWPhXfqWiKGnDJO5nbUTUQ7ZX6p8y47shDL9hYmc/YyHRyVDng9eB6GBj5tVsxEJA0mWkRUqzmqHAE1kKMTuFV6vgMAiFcnQPNATnZLDtxSmTFfXj7i1fHGZQ6Ah6z0eW9lqxGvLkzmbjYCfBTAnT8mAEy0iKq0cidaV65cwcWLFxESEgJ7e3sAQG5uLlauXImjR49CpVJhzJgxGDJkSKUFWxP9la/E9bwcqGVKeEkdDFEt9GavNzHvwDzczVWjc4p58zg7AM4PvN+sBTabOa+3o/H7aA0AM8crNswrK0zWhNCZNyMRSabcidbnn3+Ov/76CwMHDjSUrVmzBjt37oStrS3S09PxwQcfoH79+ujQoUOlBFsTTUhzRbw6Ht6OrrgldTBEtdDIgJEYGTBS6jDKJGGjHACTLKLqoNzjaF24cAFt2rSBTFZ4zrugoAB79+6Fv78/duzYgU2bNsHFxQVbt26ttGCJiIiIqpNyJ1rp6elwd3c3vL948SIyMzMxZMgQqFQquLm5oVu3brh8+XKlBEpERERU3ZQ70ZLL5cjPv99z9MyZM5DJZGjTpo2hzNnZGenp6RWLkIiIiKiaKncfLU9PT5w+fdrw/sCBA/Dy8oKnp6ehLCkpCc7OzqZmp3996pICR2dALTOzJy0RERFVG+VOtPr27YtVq1bhueeeg0KhwJUrV/D008a3GV+9ehU+PmYOAFhLBSry4CUHErR5UodCRERElazclw6HDx+OkJAQxMXF4a+//kKnTp3w1FNPGaZfu3YNly9fRtu2bSslUCIiIqLqptxntJRKJRYtWoTMzEzIZDLY2dkZTa9Tpw7WrVtndCmRiIiIqDYp9xmtM2fO4O7du7C3ty+SZAGAi4sLHB0dedchEVElm3DPFV1uFr4SUdVW7kRr+vTp2Lt3b4l1fvjhB0yfPr28iyAiIhP+KlDieE7hKxFVbeVOtIQo/eGrQgjDgKZEREREtU25Ey1z3Lp1y/AcRCIiIqLapkyd4ZcuXWr0/siRI7hz506RelqtFomJifjzzz/RqVOnikVIRERGQlXZyBKAnSpb6lCIqBRlSrQe7JMlk8lw+fLlYju7y2QytGjRAlOnTq1YhEREZGSpUxq86gAJ2jSpQyGiUpQp0dq0aROAwr5XY8aMwahRozByZNGn3ltZWcHR0RG2traVE2UNtibTASI/AzKFAxZIHQwRERFVqjIlWg+OiTV79mw0b96c42RV0NosR8SrM+Dt6MhEi4iIqIYp94ClAwYMqMw4iIiIiGqccidaeufPn8fFixeh0Wig0+mKTJfJZIiMjKzoYoiIiIiqnXInWhkZGZg7dy7Onj1b4phaVSXRmjZtGs6fPw+5XA4AaNWqFd59912JowLsZTo4WhW+EhERUc1S7kRr5cqV+OuvvxAUFIT+/fvD3d3dkMRUVTNnzkTfvn2lDsPIQbe78PIAErR3pQ6FiIiIKlm5E61jx47B398fy5cv5+jvRERERCaUO9HKzc1F69atLZJkZWVl4ZtvvsH58+dx4cIFqNVqzJkzx2QH/Ly8PKxbtw779++HWq1G06ZNMXHiRHTo0KFI3RUrVmDFihVo1qwZpkyZgqZNm1Z67ERERER65X4Ej6+vr8lR4StDeno6NmzYgBs3bsDX17fEukuWLMHmzZvRp08fTJs2DVZWVpg5cyb+/PNPo3qTJ0/Gpk2bsHXrVrRv3x6vvvoqsrKyLBI/EZElZQorZGgLX4moaiv3Xjp+/HgcPXoU586dq8x4AACurq7Ytm0btmzZgueff77YeufPn0dsbCwmTZqE6OhoREREYPny5fD09MSqVauM6gYEBMDOzg4qlQpPPvkk7OzsLBI7EZGlhSR7wPlq4SsRVW3lvnSYmpqKzp07Y9q0aejTpw+aNWtW7AOk+/fvX6a2lUolXF1dS6136NAhyOVyREREGMpUKhXCw8OxZs0a3L17Fx4epg9EMpmsxLsliYiIiCqq3InWkiVLDMnK3r17sXfv3iL9tYQQkMlkZU60zHXp0iX4+PgUSfD8/f0BAJcvX4aHhwfUajUuXrxo6FO2bds2qNVqBAQEmGw3OTkZKSkphvc3btywSPxERERUs5U70Zo9e3ZlxlEuKSkpJs986cuSk5MBAFqtFmvWrME///wDa2tr+Pr64u2334aDg4PJdnfu3IkNGzZYLG4iIiKqHar1I3hyc3OhUCiKlCuVSsN0AHBxccHatWvNbjciIgLdunUzvL9x4wYWL15cwWiJiCrH647psLYFCqzTpQ6FiEpR4UfwSEmlUiE/P79IeV5enmF6ebi5ucHNza1CsRERWcoQmyx4yYEELe+cJqrqyp1o3b1r/kjmxXVIryhXV1ckJSUVKdf3r6oOydKEe65Iy06Ci60r9kodDBEREVWqcidao0ePNmuwUplMhgMHDpR3MSXy9fXF6dOnkZmZadQh/vz584bpVd1fBUrE5wDeCqXUoRAREVElK3ei1a9fP5OJlkajwZUrV5CQkICgoCB4enpWKMCShISE4JtvvsHOnTsxduxYAIWXDffs2YOAgACLnUkjIiIiMke5E625c+cWO00IgW+++QZff/01Zs2aVa72v/32W2g0GsNlwKNHjyIxMREAMGLECDg4OCAgIAC9evXCmjVrkJaWBm9vb+zbtw937twp93IfFBMTg5iYGGg0mgq3RURERLWPTFhw1M4XX3wRjo6O5bpjb/To0cU+4mfTpk3w8vICUHhnof5ZhxqNBk2aNMHEiRPRsWPHCsX+oLi4OERFRWHt2rXw8/OrtHYBIPL/XJGVkwo7m7r4bEpK6TMQUa2XsFEOL7kOCVoreD2tlTocIiqBRe869PPzw+7du8s17+bNm82qp1KpEB0djejo6HItR2pLndLgVQdI0KZJHQoRERFVMos+kTQ+Ph5aLf/aIiIiotqp0s9o6XQ6JCUlYd++fTh69Cjatm1b2YsgIiIiqhbKnWj17NmzxOEdhBBwdHTElClTyrsIIiIyITbXBiptFnLlNnhK6mCIqETlTrT0D2h+mEwmg6OjI1q0aIGBAweiTp06FQpQSrzrkIiqotkZdRCvzoK3Y53CRGtfeyDb9M1DRtq8AzR68v77jDggNtS8hfY/Adh63X9/eQ3w1xulz+fUHAj9ybxlENVA5U60Pvroo8qMo0oKCwtDWFiY4a5DIqIqKfsOkB1fer2Chx7Zoyswbz4AEA/1t83XmDev0tm89olqqGr9rEMiotosQZMAn2U++N41Ee5Wpd/b9Nb+mdi+c6HhfRN5PjbVNe+eqPA1HZCokxvej7PNxHSH0ue9mngZTyzzAQA4qhzxZq83MTJgpFnLJKoJKiXR+uuvv3Dp0iVkZWXBzs4OzZo1Q2BgYGU0TURED3FUOQJqQCd0iFfHI0ht7pz3/v1XKB5A/TRz5zW+NPmOGngn0Zz58gDE4wsPwE0O5P36H4CJFtUiFUq0/vrrLyxduhTx8YWnj4UQhn5bPj4+mD17Nh5//PGKR0lERAZv9noT8w7MgzrX7AxLcj3t4uFjDSRo2eeVapdyJ1rXrl3DK6+8gpycHLRv3x5t2rSBq6srUlNTcfr0aZw4cQKvvPIKVq9ejUaNGlViyDVLprBChlaHTGHRIc2IqAYZGTCy2l1+S9goB6CTOgyiR67cidaGDRuQn5+Pd955B506dTKaNm7cOPz666+YM2cONmzYgIULF1Y0zhorJNkD8ep4eDt64JbUwRAREVGlKneidebMGYSEhBRJsvQ6deqEkJAQnDp1qtzBSY3DOxAREVFFlDvRyszMNDzYuTheXl7IzMws7yIkx+EdiIiIqCLK3THI1dUV586dK7HO+fPn4erqWt5FEBEREVVr5U60unXrhjNnzuCTTz5Bbm6u0bTc3Fx8+umnOH36NLp3717hIGuy1x3Tsda98JWIiIhqlnJfOoyMjMSxY8fwxRdfYOfOnfD390edOnVw7949XLx4EWlpaahfvz4iIyMrM94aZ4hNFrzkQII2q/TKREREVK2UO9FydnbGqlWrsHr1asTGxuL48eOGaUqlEgMGDMDkyZPh5ORUKYESERERVTcVGrDUxcUFs2fPxiuvvIIbN24YRoZv2LAhrK35dB8iIir0VZY9ZAVqCGt7vCx1MESPUJmzoc8//xw5OTmYMGGCIZmytrZG06ZNDXXy8/Oxdu1a2Nra4qmnnqq8aImIqFr6INMJ8Wo1vB2dmGhRrVKmROvkyZP49NNPMXny5BLPWCkUCjg5OWHVqlUICAhA27ZtKxyoFDiOFhEREVVEme46/OGHH+Do6Ijhw4eXWnfYsGFwdHTE3r17yx2c1MLCwrB06VK88MILUodCRERE1VCZEq2zZ8+iXbt2UCqVpdZVKpVo3749/vrrr3IHR0RERFSdlSnRSk5ORv369c2u7+XlhZSUlDIHRURENcuJegkQzQpfiWqTMiVaVlZWKCgoMLt+QUEBrKzKPSYqERERUbVWps7wrq6uuHbtmtn1r127Bjc3tzIHVZvE5tpApc1CrtwGvD+TiIioZinT6aZWrVrh999/R0JC6ad+ExIS8Pvvv6N169blDq42mJ1RB6PvFL4SERFRzVKmRGvYsGEoKCjA/PnzkZaWVmy99PR0LFiwAFqtFkOGDKlojERERETVUpkuHfr5+WHUqFHYsmULnnnmGQwZMgRt2rRBvXr1ABR2lj916hR27dqFtLQ0jB49Gn5+fhYJnIiIiKiqK/PI8FOmTIFSqcTXX3+NjRs3YuPGjUbThRCwsrLCU089hYkTJ1ZaoERERETVTZkTLZlMhkmTJiE8PBx79uzB2bNnkZqaCgCoW7cuAgMDMWDAAHh7e1d6sI/aoxgZ/nvXRLi6AilItNgyiIiISBrlfvKzt7c3oqKiKjOWKicsLAxhYWGIi4uz2Gd1t9LCSw7ItVqLtE9ERETS4SBXRERERBZS7jNaRERE5pqWXhcZ2clwsq2LLVIHQ/QIMdEiIiKLO5anQnwW4C1XSR0K0SPFS4dEREREFsJEi4iIiMhCeOmQiIgsrosyFxl2gJMyV+pQiB4pJlpERGRxHzmnwqsukKBNlToUokeKlw6JiIiILIRntCT2ltoZObn3YKNyxkqpgyEiIqJKxTNaEtueY4d1GYWvREREVLPwjFYJHsWzDomIiKjmYqJVgkfxrEMiIiKquZhoSayJPB/OSsBVni91KERERFTJmGhJbFPdZHjVAxK0yVKHQkRERJWMneGJiIiILISJFhEREZGFMNEiIiKL65DkBdmlwlei2oSJFhEREZGFMNEiIiIishAmWkREREQWwuEdiIjI4l6yz0BjB2C4Qzywzaf4iu49gW5fGpfF9gYy/i59IYHzAd9J999nJwD7OpgXYGgs4OR3//31r4DTMwv/r3AEWr0JPDbSvLaIHsBEi4iILC7CNhvN9L842fHFV8w1MaZgzt2S59HLf+hxaUJr3nwAoCswfl+QdX/ebAB/zmOiReXCRIuIiCzuPbUTptunwtEKkMuK77Vy/NoRvLDM+IzXpjpJaGJdek+X5QffxJd7lxneu1tp8b2reT1knvisN65qFYb3Q22y8JqjFdytdJDLgKzsRNiZ1RKRMSZaEgtPcUdi5h2427vjd6mDISKykMNwx5obqf++05VQMxuA8Vmo7mpzl5L2779C8QDqp5s7b6LRu/9TA/+XBNxsBPgogIzcDCZaVC5MtCSWqJMjvgCATi51KEREFvNmrzcx78A8qHPNzpqqBllh0idESckhUfGYaJUgJiYGMTEx0Gg0pVcmIqJijQwYiZEB1a+PU8JGOUo+A0dUMiZaJQgLC0NYWBji4uIQFRUldThERERUzTDRktg420zkywGFMlPqUIiIiKiSMdGS2HSHDHjJgQRthtShEBHRQxJ1cmh1OqRADj6lkcqDiRYREVExwlPcEa+Oh7ejO25JHQxVS3wEDxEREZGFMNEiIiIishAmWkREREQWwj5aRERExVjqdA8qeyBXfk/qUKiaYqJFRERUjFBVzr93hudIHQpVU7x0SERERGQhTLSIiIiILISXDiV2tcAaqQV5SIM1B8MjIiKqYZhoSeyJe/X+HQyvHgfDIyIiqmF46ZCIiIjIQphoEREREVkIEy0iIiIiC2EfLYmtcE6FnSOQZZUqdShERERUyZhoSayzMvffwfBypQ6FiIgesiPHDtYFGhRY22Gy1MFQtcREi4iIqBiL1c6IV2vg7ejMRIvKhX20iIiIiCyEZ7RKEBMTg5iYGGg0GqlDISIiomqIiVYJwsLCEBYWhri4OERFRUkdDhEREVUzTLSIiIiKcdDtLtzrAYnirtShUDXFPlpERETFsJfp4CQvfCUqDyZaRERERBbCRIuIiIjIQthHS2JfZdlDVqCGsLbHy1IHQ0RERJWKiZbEPsh0QrxaDW9HJyZaRERENQwvHRIRERFZCBMtIiIiIgthokVERERkIeyjJbET9RLg5QkkaBOkDoWIiIgqGRMtIiKiYszOcEFWTirsbFzwmdTBULXERIuIiKgYsbm2iNcA3jJbqUOhaop9tIiIiIgshIkWERERkYXw0iEREVExAq3z0MAGcLHOkzoUqqaYaBERERXj0zop8HIDErQpUodC1RQvHRIRERFZCBMtIiIiIgvhpUMiIqJSuFvpgG0+xoWDLgAKx/vvLywDLi4rvbG6bYGeO43LDkUAqb+XPm+LGYD/jPvv89XAbv+i9RSOQKs3gcdGlt4mWRQTLYlNS6+LjOxkONnWxRapgyEiIiMaYQVAB7kMQHa80bQWK/3+nV5ohkMGZjioS23z1LVEDDllnLTtqJuIdsr8UudddmQhlu29n8w5yHS46GHiySLZQMaJ6XBioiU5JloSO5anQnwW4C1XSR0KERE9ZGWOOyYrb8NRVnRavDoBGnH//S05cMuMQ3l8Xj7i1cZJW7wD4GFiGQ+7la1GvPp+MucgA27VNa7jZQ3IZUBW9l04ld4kWRgTLSIiomL06P4hhh+YB3Vu0TNVzg6A8wPvN2uBzWbenOjtaPw+WgNAU755Oz+0zONu8fCxBoTQmdcgWRQTLSIiomKMDBiJkQHV6/JbwkY5ACZZVQUTLYl1UeYiww5wUuZKHQoRERFVMiZaEvvIORVedYEEbarUoRARUQ0w4Z4r0rKT4GLrir1SB0NMtIiIiGqSvwqUiM8BvBVKqUMh1MIBS8+ePYuePXvis88+kzoUIiIiquFqVaKl0+mwcuVKtGjRQupQiIiIqBaoVZcOd+3aBX9/f2RmZkodChERkUWEqrKRJQA7VbbUoRCqaKKVlZWFb775BufPn8eFCxegVqsxZ84cDBgwoEjdvLw8rFu3Dvv374darUbTpk0xceJEdOjQwaheeno6tmzZglWrVmHFihWP6qMQERE9Ukud0uBVB0jQpkkdCqGKXjpMT0/Hhg0bcOPGDfj6+pZYd8mSJdi8eTP69OmDadOmwcrKCjNnzsSff/5pVG/t2rUYNWoUHB0di2mJiIiIqHJVyUTL1dUV27Ztw5YtW/D8888XW+/8+fOIjY3FpEmTEB0djYiICCxfvhyenp5YtWqVod7ff/+NixcvYtCgQY8ifCIiIiIAVfTSoVKphKura6n1Dh06BLlcjoiICEOZSqVCeHg41qxZg7t378LDwwNnzpzBzZs3MWLECACARqOBXC7H7du3MWfOHIt9DiIiIqrdqmSiZa5Lly7Bx8cH9vb2RuX+/v4AgMuXL8PDwwMREREIDQ01TP/oo4/g5eWFcePGPdJ4iYiIqHap1olWSkqKyTNf+rLk5GQAgI2NDWxsbAzTVSoVbG1ti+2vlZycjJSU+0/pvHHjRmWGbaRDkhfi1fHwdvTCLYsthYiIiKRQrROt3NxcKBSKIuVKpdIw3ZS5c+eW2O7OnTuxYcOGCsdHREREtVu1TrRUKhXy8/OLlOfl5Rmml0dERAS6detmeH/jxg0sXry4fEESERFRrVWtEy1XV1ckJSUVKddf9nNzcytXu25ubuWel4iIiEivWidavr6+OH36NDIzM406xJ8/f94wvap7yT4DMhUgrDOkDoWIiGqATGGFDK0OmaJKjuBU61TrbyEkJARarRY7d+40lOXl5WHPnj0ICAiAh4eHhNGZ50m7TMyoU/hKRERUUSHJHnC+WvhK0quyZ7S+/fZbaDQaw2XAo0ePIjExEQAwYsQIODg4ICAgAL169cKaNWuQlpYGb29v7Nu3D3fu3MGsWbMqHENMTAxiYmKg0Wgq3BYRERHVPlU20dq0aRPu3LljeH/48GEcPnwYANC3b184ODgAKLyD0MPDAz/88AM0Gg2aNGmCt99+G0FBQRWOISwsDGFhYYiLi0NUVFSF2yMiIqLapcomWps3bzarnkqlQnR0NKKjoy0cEREREVHZVNlEi4iIiMrudcd0WNsCBdbpUodCYKJFRERUowyxyYKXHEjQZkkdCqGa33VIREREVJXxjFYJeNchERERVQQTrRLwrkMiIiKqCCZaEjuep4KdLhtZVioMkzoYIiIiqlRMtCT2QnpdxKvj4e1Yl4kWERFRDcPO8EREREQWwkSLiIiIyEKYaBERERFZCPtoleBRDO+wqU4SXOoAaUiy2DKIiKj2iM21gUqbhVy5DZ6SOhhiolWSRzG8QxPrgn9H8C2wSPtERFS7zM6og3h1Frwd6zDRqgJ46ZCIiIjIQphoEREREVkIEy0iIiIiC2EfLSIiohrke9dEuLoCKUiUOhQCEy0iIqIaxd1KCy85INdqpQ6FwEuHRERERBbDM1oleBTjaBEREVHNxUSrBI9iHC0iIiKquZhoSWy5xgn5eWlQKJ3wttTBEBERUaVioiWxL7PtEa9Og7ejPRMtIiKiGoad4YmIiIgshIkWERERkYXw0qHE3K20gPW/r0RERFSjMNGS2PeuifByBxK0HMGXiIgq7i21M3Jy78FG5YyVUgdDvHRIRERUk2zPscO6jMJXkh4TLSIiIiIL4aXDEnBkeCIiIqoIJlol4MjwRERU3TSR58NZCbjK86UOhcBEi4iIqEbZVDcZXvWABG2y1KEQ2EeLiIiIyGKYaBERERFZCBMtIiIiIgthokVERERkIewML7EnUt2QkpUIVzs3HJY6GCIiIqpUTLQkdlWrQHwe4K1SSB0KERERVTJeOiQiIiKyEJ7RIiIiqoGKXCe5vAb4643SZ3RqDoT+ZFx2dByQeKj0eX2jgMAFxmXbfEqfDwC6fgF4hJhXtxphoiWxoTZZyJEBNqosqUMhIqIaQCOsAOgQlVYX2x6ckK8BsuNLb0DpXLQsN9m8efPSi5aZMx8AaHPNq1fNMNEqwaN41uFrjunwcgEStCY2TiIiojJ6T+2E6fap+C0jBT7L7p9NGmebiekOpfcYupp4GU8sMz4LtcI5FZ2Vpc/71clP8MGhzUZlJ+qZ10tp1q4oRPRYhpEBI82qX13IhBBC6iCqOv2zDteuXQs/P79KbTthoxxech0StFbwelpbqW0TEVHt4/9//riYfFHqMMqlhVsLXJhyQeowKhXPaBEREdUgb/Z6E/MOzIM6Vy11KGZL0CRAJ3TVKmZzMdEiIiKqQUYGjKx2l99GrayHjOxkOClrXj8tJlpEREQkqY+cU+FVF0jQpkodSqXjOFpEREREFsJEi4iIiMhCmGgRERERWQgTLSIiIiILYWd4iSXq5NDqdEiBHF5SB0NERESViomWxMJT3BGvjoe3oztuSR0MERERVSpeOiQiIiKyECZaRERERBbCRIuIiIjIQthHS2JLne5BZQ/kyu9JHQoREZEkOiR5/dtf2avG9VdmolWCmJgYxMTEQKPRWGwZoaoceMmBBG2OxZZBRERE0mCiVYKwsDCEhYUhLi4OUVFRUodDRERE1QwTLTPk5hY+TfzGjRuV3nZysj0yrHRI1lkhIy6u0tsnIiKq6pRpSthn2kOpVSLOAr+FDRs2hI2NTaW3aw6ZEEJIsuRqZP/+/Vi8eLHUYRAREVE5rF27Fn5+fpIsm4mWGdLS0vDbb79h+/btePHFF82eb8WKFXjhhRdKrHPjxg0sXrwYr7/+Oho2bFjRUGsEc9abVKSIzRLLrKw2K9JOeeYt6zzcB8unKu+DwKOPz1LLqw37obl1Lb0fSnlGi5cOzeDi4oK+ffvip59+KlNG7ODgYHb9hg0bSpZtVzVlWW+PmhSxWWKZldVmRdopz7xlnYf7YPlU5X0QePTxWWp5tWE/LGv7NXE/5DhaZRAWFmbR+lSoKq83KWKzxDIrq82KtFOeebkPPhpVfb096vgstbzasB9W9W3pUeClQ4np72iU8voxUW3GfZBIejV5P+QZLYm5urpi/PjxcHV1lToUolqJ+yCR9GryfsgzWkREREQWwjNaRERERBbCRIuIiIjIQphoVXF5eXlYunQpRo4cif79+2Py5Mk4e/as1GER1Srvvvsuhg4div79+yMyMhJHjx6VOiSiWuvs2bPo2bMnPvvsM6lDMQv7aFVx2dnZ2LRpEwYMGIB69erhwIEDWL58OTZt2gQ7OzupwyOqFW7cuAEvLy8olUpcuHABM2bMwDfffANnZ2epQyOqVXQ6HaKjoyGEQNeuXREZGSl1SKXiGa0qztbWFuPHj4eHhwesrKwQGhoKa2tr3Lx5U+rQiGqNhg0bQqlUAgBkMhny8/ORnJwscVREtc+uXbvg7+9frZ7iwJHhK1lWVha++eYbnD9/HhcuXIBarcacOXMwYMCAInXz8vKwbt067N+/H2q1Gk2bNsXEiRPRoUOHYtu/efMm1Go1vL29LfkxiKotS+2Dy5Ytw549e5CXl4fOnTujSZMmj+LjEFVLltgP09PTsWXLFqxatQorVqx4VB+lwnhGq5Klp6djw4YNuHHjBnx9fUusu2TJEmzevBl9+vTBtGnTYGVlhZkzZ+LPP/80WT83NxeLFy/GuHHj4ODgYInwiao9S+2DM2bMwA8//IAPPvgAHTp0gEwms9RHIKr2LLEfrl27FqNGjYKjo6MlQ698gipVbm6uSE5OFkIIceHCBdGjRw+xZ8+eIvXOnTsnevToIb766itDWU5OjhgzZoyYPHlykfr5+fli5syZYtGiRUKn01nuAxBVc5baBx80a9Ys8csvv1Ru4EQ1SGXvh3FxceI///mPKCgoEEII8dZbb4kNGzZY+FNUDp7RqmRKpdKskW0PHToEuVyOiIgIQ5lKpUJ4eDjOnTuHu3fvGsp1Oh0WL14MmUyGuXPn8i9pohJYYh98mFarRXx8fKXES1QTVfZ+eObMGdy8eRMjRozA0KFD8dNPP+Grr77CkiVLLPYZKgv7aEnk0qVL8PHxgb29vVG5v78/AODy5cvw8PAAALz33ntISUnBe++9B2trfmVElcHcfVCj0eDYsWPo1q0blEoljhw5gtOnT2PSpElShE1Uo5i7H0ZERCA0NNQw/aOPPoKXlxfGjRv3SOMtD/5qSyQlJcVktq8v09/RdOfOHezevRtKpdIo43/nnXfQunXrRxMsUQ1k7j4ok8mwe/dufPDBBxBCwNvbG/PmzUOzZs0eabxENZG5+6GNjQ1sbGwM01UqFWxtbatFfy0mWhLJzc2FQqEoUq6/hTw3NxcA4OnpicOHDz/S2IhqA3P3QXt7e3z44YePNDai2sLc/fBhc+fOtWhclYl9tCSiUqmQn59fpDwvL88wnYgsh/sgkfRqw37IREsirq6uSElJKVKuL3Nzc3vUIRHVKtwHiaRXG/ZDJloS8fX1xa1bt5CZmWlUfv78ecN0IrIc7oNE0qsN+yETLYmEhIRAq9Vi586dhrK8vDzs2bMHAQEBhjsOicgyuA8SSa827IfsDG8B3377LTQajeHU59GjR5GYmAgAGDFiBBwcHBAQEIBevXphzZo1SEtLg7e3N/bt24c7d+5g1qxZUoZPVO1xHySSHvfDQjIhhJA6iJpm9OjRuHPnjslpmzZtgpeXF4DCuyn0z3fSaDRo0qQJJk6ciI4dOz7KcIlqHO6DRNLjfliIiRYRERGRhbCPFhEREZGFMNEiIiIishAmWkREREQWwkSLiIiIyEKYaBERERFZCBMtIiIiIgthokVERERkIUy0iIiIiCyEiRYRERGRhTDRIiIiIrIQJlpEVKsEBwcb/cvNzTVM27t3L4KDg7F3714JI7xvx44dRrH+97//lTokIioja6kDIKKaKSEhAU888USJdTw9PbF58+ZHFJHxcvv37w8AkMvlFl3Wb7/9hldeeQUdOnTA+++/X2LdN954AzExMZg3bx769OkDPz8/jB8/HhqNBlu3brVonERkGUy0iMiivL290adPH5PTHBwcHnE0hTw9PTFhwoRHsqz27dvDw8MDp06dwt27d+Hh4WGynkajwZEjR+Dg4IDg4GAAQIsWLdCiRQskJCQw0SKqpphoEZFFeXt7P7KkpiqysrLCgAEDsGHDBuzbtw+RkZEm68XExCA3NxcDBw6ESqV6xFESkaWwjxYRVRnBwcGYNm0akpKS8MYbb2Dw4MHo168fZs6cidu3bwMArl+/jrlz5yI8PBz9+vXDvHnzkJqaatG4EhMTERkZibCwMBw8eNBQfu/ePaxYsQJjx45FaGgoBg8ejNdffx1Xr141mn/gwIGQyWTYu3cvhBAml7Fnzx4AQHh4uMU+BxE9eky0iKhKUavVmDJlChISEtCvXz+0adMGx48fx4wZM3D16lVER0cjOzsbAwcORIsWLXDo0CEsWrTIYvFcv34d0dHRSExMxLvvvouQkBAAQHx8PCZOnIgtW7agfv36GD58ODp37ozffvsNzz//PM6fP29ow9PTE+3atcPt27dx+vTpIsu4evUqLl68iGbNmqF58+YW+yxE9Ojx0iERWVR8fDw+/fRTk9NatmyJTp06GZVduXIFo0ePxtSpUw1ly5Ytw/bt2zF16lQ8++yzGDVqFABACIFZs2bh+PHjiIuLg5+fX6XGfu7cOcyaNQvW1tZYsWIFfH19DdPeeustpKam4r333kPHjh0N5c888wyioqLwzjvvYMOGDYby8PBwnDx5Env27EHbtm2NlsOzWUQ1F89oEZFFxcfHY8OGDSb//frrr0Xq29raYuLEiUZloaGhAABnZ2eMHDnSUC6TyQzTrly5UqlxHzt2DC+99BIcHR3xv//9zyjJ+vvvv3H27Fn069fPKMkCgAYNGmDQoEG4evWq0SXEHj16wNnZGYcOHUJmZqahvKCgAPv374dSqSz2pgEiqr54RouILKpjx4547733zK7v4+MDGxsbozJXV1cAQJMmTSCTyUxOS05OrmCk9x04cAAnTpxA06ZN8e6776JOnTpG0/WXBe/du2fybN0///xjeG3SpAkAGBKprVu3IiYmBkOGDAEAHD16FGlpaQgLC4Ojo2OlfQYiqhqYaBFRlWJvb1+kTD/WVUnTCgoKKi2Gc+fOQavVolWrVkWSLADIyMgAUHjW69ixY8W2k52dbfQ+PDwcW7duxZ49ewyJFi8bEtVsTLSIiB4yadIk/Pzzz9i6dSvkcjmmTJliNF2f8L344osYMWKE2e02bdoULVq0wIULF3Dt2jU4Ojrit99+g5eXV5F+W0RUM7CPFhHRQ5RKJd566y106dIFmzZtwsqVK42m+/v7Ayg881VW+jNX33//PX744QdotVrD8A9EVPMw0SIiMkGpVGLx4sXo2rUrNm/ejBUrVhimBQQEICAgALGxsYiNjS0yr06nw5kzZ0y2GxYWBhsbG+zfvx979uyBlZWV4XFARFTz8NIhEVlUScM7AMC4ceOq7EjoCoUCb775JubPn48tW7ZACIFp06YBAObPn4/p06dj0aJF2Lp1K5o1awaVSoXExEScPXsW6enpiImJKdKmvb09evbsiR9++AFpaWno1KlTsY/lIaLqj4kWEVmUfniH4owaNarKJlrA/WRrwYIF2Lp1K4QQePHFF1G/fn2sW7cOmzZtwpEjR7B3715YWVnB1dUVrVu3Ngxsakp4eDh++OEHAIWjxhNRzSUTxT0PgoioBgoODkZQUBA++ugjqUMxW0JCAp544gn0798fc+fOlTocIioDntEiolrnzJkzCA4OBgD8+OOPVfaM2o4dO/D+++9LHQYRVQATLSKqVcaPH2/0Xj8OV1Xk5+dnFG+zZs2kC4aIyoWXDomIiIgshMM7EBEREVkIEy0iIiIiC2GiRURERGQhTLSIiIiILISJFhEREZGFMNEiIiIishAmWkREREQWwkSLiIiIyEKYaBERERFZyP8DxWRfdU4bW7cAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "model_injected = Histogram.open(\"Crab_model_injected.h5\").project(\"Em\")\n", "piecewise_injected = Histogram.open(\"crab_piecewise_injected.h5\").project(\"Em\")\n", "\n", "ax, plot = model_injected.draw(label=\"injected with model\", color=\"green\")\n", "\n", "piecewise_injected.draw(\n", " ax, label=\"injected with piesewise function\", color=\"orange\", linestyle=\"dashed\"\n", ")\n", "\n", "\n", "ax.set_xscale(\"log\")\n", "ax.set_yscale(\"log\")\n", "ax.legend()\n", "ax.set_ylabel(\"Counts\")\n", "ax.set_title(\"Comparison b/w model and piecewise injected counts\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.14" } }, "nbformat": 4, "nbformat_minor": 4 }