{ "cells": [ { "cell_type": "markdown", "id": "d752f0ac", "metadata": {}, "source": [ "Title: Grayscale Morphology in 1D\n", "Author: Thomas Breuel\n", "Institution: UniKL" ] }, { "cell_type": "code", "execution_count": 128, "id": "c9e2c2fa", "metadata": { "collapsed": false }, "outputs": [], "source": [ "from pylab import *\n", "from scipy import stats\n", "from scipy.ndimage import morphology,filters" ] }, { "cell_type": "markdown", "id": "d5809422", "metadata": {}, "source": [ "# Construction of Input Signal and Template" ] }, { "cell_type": "markdown", "id": "3aa25fe9", "metadata": {}, "source": [ "Let's construct a detection problem. As usual, we have three parts:\n", "\n", "- unrelated background\n", "- a template to be detected\n", "- some additive noise" ] }, { "cell_type": "markdown", "id": "0a988684", "metadata": {}, "source": [ "Construction of background signal.\n", "\n" ] }, { "cell_type": "code", "execution_count": 58, "id": "3f3aa65c", "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nfBiFe0EAAAAASUVORK5CYII=\n" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "background = filters.gaussian_filter(randn(1000),10.0)\n", "background -= amin(background)\n", "background /= amax(background)\n", "plot(background)" ] }, { "cell_type": "markdown", "id": "5b2e1071", "metadata": {}, "source": [ "Construction of template.\n", "\n" ] }, { "cell_type": "code", "execution_count": 59, "id": "d84c42e8", "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nRK5CYII=\n" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "template = concatenate([linspace(0,0.2,100),linspace(0.2,0,100)])\n", "template += 0.3\n", "plot(template)" ] }, { "cell_type": "markdown", "id": "d5a7e1f6", "metadata": {}, "source": [ "Construction of combined signal (template + background + noise).\n", "\n" ] }, { "cell_type": "code", "execution_count": 60, "id": "8e663848", "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\ngg==\n" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "combined = background.copy()\n", "combined[200:400] = template\n", "combined += randn(len(combined))*0.02\n", "combined = filters.gaussian_filter(combined,2.0)\n", "plot(combined)" ] }, { "cell_type": "markdown", "id": "0ea0d064", "metadata": {}, "source": [ "# Detection by Windows" ] }, { "cell_type": "markdown", "id": "3004c80f", "metadata": {}, "source": [ "The general idea behind detection is to...\n", "\n", "- move a window the size of the template across the signal\n", "- for each window position, determine how similar the window is to the template\n", "- output the highest similarity (or lowest dissimilarity)\n", "\n" ] }, { "cell_type": "code", "execution_count": 78, "id": "11a21516", "metadata": { "collapsed": false }, "outputs": [], "source": [ "def window(a,r,i):\n", " return roll(a,r//2-i)[:r]" ] }, { "cell_type": "markdown", "id": "1f1875a2", "metadata": {}, "source": [ "## Dissimilarity by 2-norm" ] }, { "cell_type": "markdown", "id": "f870c802", "metadata": {}, "source": [ "A common way of determining similarity is by looking at the difference of the window $w_i$ from the template $t$ as vectors.\n", "\n", "$$ d_i = ||w^{(i)}-t||^2 $$\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 125, "id": "0a9b0f29", "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "301\n" ] }, { "data": { "image/png": "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\n" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "result = [sum((window(combined,r,i)-template)**2)**.5 for i in range(n)]\n", "plot(result)\n", "print argmin(result)" ] }, { "cell_type": "markdown", "id": "df871201", "metadata": {}, "source": [ "## Dissimilarity by 1-norm" ] }, { "cell_type": "markdown", "id": "348fd481", "metadata": {}, "source": [ "We can also look at the sum of the absolute differences; it's a slightly different measure that's more robust to outliers.\n", "\n", "$$ d_i = \\sum_j |w^{(i)}_j-t_j| $$\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 148, "id": "665400b1", "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "300\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAD9CAYAAAC2l2x5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XtclGX6P/DP5DHNY+Zg4ikUARXEPKWbonwHVxPCQ6a5\nRmZmZ3WrDfe3le2WjNt2ru3b19JYLdNOamauEI6HTE3RNNHwgIoKaCGaR07P749LQBKYYeY5zDzz\neb9evtRh5nmueZSLe67nvq/boiiKAiIiMp3rjA6AiIi0wQRPRGRSTPBERCbFBE9EZFJM8EREJsUE\nT0RkUi4l+IKCAowdOxahoaEICwvDli1bkJ+fD5vNhuDgYMTExKCgoEDrWImIqBZcSvDTp0/HiBEj\nsHfvXuzatQshISGw2+2w2WzIzMxEdHQ07Ha71rESEVEtWJwtdDpz5gwiIyNx6NChSo+HhIRg3bp1\nsFqtyM3NRVRUFPbt26dpsERE5DqnI/isrCzcdNNNmDx5Mnr16oWpU6fi/PnzyMvLg9VqBQBYrVbk\n5eVpHiwREbmurrMnFBcXIz09HW+//Tb69OmDGTNmXFOOsVgssFgs17y2qseIiMg5NbrIOB3BBwYG\nIjAwEH369AEAjB07Funp6QgICEBubi4AICcnB61bt642SP5S8Pzzzxseg7f84rXgteC1qPmXWpwm\n+ICAALRr1w6ZmZkAgNTUVHTr1g2xsbFITk4GACQnJyM+Pl61oIiIyHNOSzQA8NZbb2HixIkoLCxE\nUFAQFixYgJKSEowbNw4ffPABOnbsiKVLl2odKxER1YJLCT4iIgI//PDDNY+npqaqHpBZRUVFGR2C\n1+C1qMBrUYHXQn1Op0l6dHCLRdV6EhGRP1Ard7JVARGRSTHBExGZFBM8EZFJMcETEZkUEzwRkUkx\nwRMRmRQTPBGRSTHBExGZFBM8EZFJMcETEZkUEzwRmdrWrcA//gFU0U7L9Jjgici0vvsOGDkSOH0a\nGDUKeOIJ4NIlo6PSDxM8EZmSogAPPQS8+y7w6qvA7t1ATg4wcCDwuy2mTculdsFERL7m22/l99Gj\n5fcWLYClS4G33gL69wemTgXatAEuXgSsVmDsWKBRI+Pi1QJH8ERkSgsXShK/emtoi0XKNGvXygh/\n714gLw9YsgQICwN+/NG4eLXAfvBEZDrFxTIq37kTaNfOtde89578UNi4UdvYXMF+8ERE1di2DQgM\ndD25A8D990ttfs8e7eLSGxM8EZnOpk3AH/5Qu9fUqwdMmQLMm6dNTEZggici09m0CRgwoPavS0gA\nFi8GiorUj8kITPBEZCqKAnz/vXsJvnNn4JZbgJQU9eMyAhM8EZnK0aNAaSnQsaN7r580CVi0SNWQ\nDMMET0SmUlaeuXp6ZG2MGwesWgX89pu6cRmBCZ6ITGXDBlmt6q5WrYDBg4EvvlAvJqMwwRORV/vu\nO2DQIODNN6W+7ozDAURFeXbOP/1J5sT7OiZ4IvJaxcUydXHMGODf/wY++qjm5+flSb+ZiAjPzjty\nJJCeDhw/7tlxjMYET0Rea9EiWZH6xBPy56eflt4x1Vm5EoiJAerU8ey8118vPWwWL/bsOEZjgici\nr1RYCLzwAvDii3LDtHdvoG9fYP786l/zxRdAfLw65zdDmcalXjQdO3ZE06ZNUadOHdSrVw9bt25F\nfn4+7r77bhw5cgQdO3bE0qVL0bx588oHZy8aInLTu+8Cy5cDq1dXPLZ5M3D33cCBA7Ly9GrHjgHh\n4cCRI0CTJp6fv2yq5cqVclw96dqLxmKxwOFwYMeOHdi6dSsAwG63w2azITMzE9HR0bDb7R4HQ0Tm\ntXu31LaHDXPetfHcORm5/+MflR/v318WIn3yybWvee01YOJEdZI7AFx3nRzvP/9R53hGcGkE36lT\nJ2zbtg033nhj+WMhISFYt24drFYrcnNzERUVhX379lU+OEfwRATg55+B22+XkkvdusCzzwJbtgAd\nOlT9/GeflcZfVd1UXbMGePxxYNcuoEEDeWzzZvnhsWeP1OzVcvAg0K+ffCpo3Fi94zqjVu50KcHf\ncsstaNasGerUqYNp06Zh6tSpaNGiBU6fPg0AUBQFLVu2LP+72kESke8qLZWFRwkJwMMPy2N2u2zI\nsWbNtQuSjhwBevWqvtWvosj2e02byvG2b5cfHMnJwIgR6sc/ahRgswGPPKL+saujVu50aUen7777\nDm3atMGpU6dgs9kQEhJyTTCWapaNzZ49u/zPUVFRiPJ0gioR+ZT//EeS+LRpFY899RTw6aeSlO+7\nr/Lzn3lGZs1U1+rXYpGbn4mJ8rxbbgFSUz2fGlmdmTNlquaDD8qnDy04HA44HA7Vj1vrDT9eeOEF\n3HDDDZg3bx4cDgcCAgKQk5ODIUOGsERDRJUoChAaKptpDB5c+Ws7dkg9fvfuirLKhg1S9963z3u2\nz1MUWTiVkCA94/Wg203WCxcu4LcrTRnOnz+PNWvWoEePHoiLi0NycjIAIDk5GfFqzU0i8kKXLpmn\nhayevv0WqF9fVqL+XmSkJMwnnpC/l5QA06cDc+d6T3IH5BOD3Q7Mnl3zHHxv5HQEn5WVhVGjRgEA\niouLMXHiRMyaNQv5+fkYN24cjh49ymmSZDqKIlPxUlNlml7ZHp5z5+pbi/V1d98to9+y2vvvXbwI\n9OkDREcDly/Lzdi0NPcbhWkpPl5uFD/5pPbn0vUmq9sHZ4InH/PTT7KQ5osvZMRus8mvESOA06dl\nJLpokee9TvzB+fPAzTfLTJRWrap/3smTwHPPSYJ/9VWgRQv9YqyNn34Chg6VH/xNm2p7LiZ4IhWd\nPw888IA0qnrgAWkZ2737tSPJxYuBd96RWrE3jjK9yaefyvZ3a9YYHYl67r0XCAoCnn9e2/MwwROp\n5PhxIDZWZmG8+y7QsGH1zy0pkW/wL7+UGjJVb9w4+fQzdarRkagnM1P2ej1yRPrVaEXXlaxEZjJ7\ntpQBHnhAVkreeqvUiufPrzm5A9LEatIk3+9RorXz54H//lfmkJtJcLD0w/GVHZ+Y4MmvrF4tiXzD\nBvlmLSiQ3Xueecb1ksukScDHH0srW6paSorcPK2p9u6rZs4EXn/dtd70RtNo2j6R9/nlF1mwsnCh\n1Ne7d3fvOMHBQNu2shHF7+d2k0hLk7a9ZjR0qHySS0uT2T/ejCN48guKIiWZe+6Rb1BPxcUBX33l\n+XHM6ttv1bnO3shikfn7vtCEjDdZyS/Mmyc7Am3eXNGgyhM7dshNxMxMzqb5vdxcWb36yy+eb7zh\nrcre4/Hj2izK4k1WIhf98APw179KZ0I1kjsA9Owpq1t//lmd45nJ2rVSujJrcgeAgADZgGTVKqMj\nqRkTPJnavn1STpk/HwgLU++4Foscd8UK9Y5pFmlp5i3PXO3OO2UzEG/GBE+mlZ0tzazsdpnnrra4\nONlxiCrzlwR/xx3AN99IO2RvxQRPPikjQ0ouBw9W/fWTJyW5P/64dAHUwpAhEkdurjbH90WHD8tu\nTN26GR2J9jp1kmmgP/xgdCTVY4Inn/Pmm5Jcly0DbrtN+sRs2VLx9WPHpFfMXXdJ33Gt1K8P/PGP\nnE1ztbVr5d/GX248jxzp3WUaJnjyKWvWSEfHH36QXidHj0r55a67ZN71vfdKy4HJk2WXH63Fx0vb\nAhL+Up4pM3y4rNj1VpwmST7j1CnZ3X7x4mu7ORYWAkuWABcuSG00MFCfmM6elXMdO6Z9h0Fvpyhy\nLdatAzp3NjoafVy+DNx0k5SmWrZU77icJkl+569/BcaPr7pVb/360kJg2jT9kjsgSf0PfwC+/lq/\nc3qrzEzZ0i4oyOhI9NOggfSIT0szOpKqMcGTT9i2TWqdV23x6zUmTQLef9/oKIxXVp7xl/p7GZvN\ne1siM8GT1ystlW3dXnoJaNbM6GiuNXo0sGePzLn3Z/5Wfy8TEyPN1byxGs0ET15v0SLZXem++4yO\npGoNGgCPPgrMmuWd3+R6KC2tmEHjb0JD5R5QdVN2jcQET17t7FkgMRF46y3gOi/+3/qXvwCHDkm/\nG3+0bZss39fz/oe3sFi8t0zjxd8yRHJjdcQIoH9/oyOpWYMGMl3yH/+QWST+ZtUqmTLor2w2KdN4\nG06TJK/1/fcV9W01p6BpKSVF5uJv2QK0b290NPrp109aQvhjiQYA8vKAkBCZyltXhV02OE2STK2o\nCHjwQeC113wnuQMyknvqKdmq7uJFo6PRx+HDUn8eONDoSIxjtQIdOnhf2wImePJKc+ZIPffuu42O\npPb+/Gega1fZ2s0ffPihrE+oX9/oSIzljXV4lmjI66SlARMnAtu3AzffbHQ07jlzRlbdvv++fOP7\nunPn5Abyb7/JbkadOlU8HhQk/2b+0GCsJikp0h5j40bPj8USDZmOoki7gfHjpVOkryZ3QObrv/46\n8PTT3t1O1hUXL8rq4fR0+XOfPsA778j7euYZ6drp78kdkBXNP/4oM7+8BUfwZJjLl4HVq6Wn9v79\nsjtSixayOUefPkZH5zlFkfeRmAiMHWt0NO577jm50f3ZZzIlcN8+aeZ26JBsPp6WBjRvbnSU3sFm\nAx57TDYD8YRauZMJnnRXWiotf198UUZ+o0fLYpGgIOCWW8y11P2zz+S9rl9vdCTuycuTnbC2bwc6\ndqx4vKREbqx26gTUq2dYeF7n5ZeBI0eAt9/27DhM8OSzHntMFsZ8+KFMLTOzoiJJjKtXAz16GB1N\n7b34ouyM9d57RkfiG3bulIkBnu7Vyxo8+aTlyyXZpaSYP7kDMrqdPBlITjY6ktpTFLkXotWOWGYU\nHg6cPi2jeG/gUoIvKSlBZGQkYq9sbJmfnw+bzYbg4GDExMSgoKBA0yDJHAoLpWnY++8DTZoYHY1+\n7roL+Pxz3+tTs2OH3Ce57TajI/Ed113nXataXUrwb7zxBsLCwmC5Uhy12+2w2WzIzMxEdHQ07Ha7\npkGSOSxeDHTpUnU/dzMLDwfq1JGE6Us++gi45x5z3RPRg08l+GPHjmHVqlV44IEHymtCK1asQMKV\nz20JCQlYtmyZtlGSzystla32EhONjkR/FovcSF6+3OhIXFdSIj+QJ040OhLfM2QI4HB4xyc2p10T\nZs6ciZdffhlnr5rcmZeXB6vVCgCwWq3Iy8ur9vWzr9qhISoqClH+NnwjALIxdaNGQHS00ZEYIyYG\neP55ffaJVYPDId0hQ0ONjsT3dOgANG4M7N0rM5Bc4XA44HA4VI+lxgS/cuVKtG7dGpGRkdWe3GKx\nlJduqjLbG7fgIV0pCpCUJKN3f/24P3AgsGuXLILxhb1bP/qIo3dPDBki/fFdTfC/H/y+oNJIoMYS\nzaZNm7BixQp06tQJEyZMQFpaGiZNmgSr1Yrc3FwAQE5ODlq3bq1KMGRO69cD+fnSgMtfXX+9dFz0\nhVbCly5J6+Px442OxHeVJXij1Zjg58yZg+zsbGRlZeGTTz7B0KFDsXDhQsTFxSH5yryv5ORkxMfH\n6xIs+Sa7XTbEqFPH6EiM9T//A6SmGh2Fc19/DURGyipVck9UlJS5jG5TUat58GWlmMTERKSkpCA4\nOBhpaWlI9Mc7Z+SSnTulNDFpktGRGG/oUFnW7+1YnvFcYKC03fjpJ2Pj4EpW0tSECcCtt0qPdH9X\nWCjf9Dk53luHP31aVt4eOcL+Mp568EGge3dZ+1FbXMlKXu/gQZkP/OCDRkfiHerXl9KHt20KcbXP\nP5dSEpO757yhDs8ET5qx24GHHvLe0aoR+veX7fy81ccfszyjlqgomWBgZB2eCZ40ceCAzMR48kmj\nI/Eu/fsDmzcbHUXVcnJkte2IEUZHYg5t2gCtW0uPeKMwwZMmZs8Gpk+XmjNVKEvw3nhr6rPPgJEj\ngYYNjY7EPKKijJ0aywRPqtuzR2rv06cbHYn3CQyUDpOHDxsdybWWLPHNPXC92e23Axs2GHd+JnhS\nXWKizHtn7b1qkZEyfdSbZGfL0vqYGKMjMZeyBG/UJzYmeFLV6tWypdtjjxkdifeKiPC+BP/pp0B8\nvMz0IfW0ayc9mDzdAMRdTPCkmqIiYOZM4NVXgQYNjI7Ge0VEGHvjrSosz2hn0CDjyjRM8KSad9+V\nTnojRxodiXfztgSflSW/hg41OhJzuv124/bkZYInVZw5A7z0EvCvf/lvx0hXde4MnDwp18wbfP65\nNIKr67R5OLnDyButTPCkirlzgTvukKXZVLM6daSNbEaG0ZGI5cul/k7a6NoVuHABOHpU/3MzwZPH\njh8H3nsP+PvfjY7Ed4SEyM1oo506BezezfKMliwW40bxTPDksX/+E7jvPpnjTa4JDfWOBL9ypewh\nypvi2mKCJ5+UlwcsXMhukbUVEiLzzo22fDlw551GR2F+gwYZc6OVCZ488sYbwD33SN8Ncp03lGgu\nXJBuh+w9o72ICCllnjql73mZ4MltRUXAggVc1OSOoCC56Xb5snExpKZKr/6WLY2LwV/UqQPcdhuw\ncaO+52WCJ7d9/bVM+QsJMToS39OgAdC+vfTMNwrLM/oyYsETEzy57eOPgYQEo6PwXUbeaC0pkRus\ncXHGnN8fGXGjlQme3HL5MrBmDRAba3QkvsvIG62bNwNWK9CpkzHn90d9+sjah99+0++cTPDkFocD\n6NZNkgS5x8gbrV9+ycVNemvYUO55bNqk3zmZ4HV09ixQXGx0FOr4+mv2nPGUUSN4RZH2BGPG6H9u\nfxcVpe8+rUzwOti5Exg2rGILr/nzjY7Ic+vXy6bC5L7QUGkjq3ev8B07ZFZHeLi+5yXZ0Dw1Vb/z\nMcFrqLRUtq4bNkxmKxQUyDSpF18E/vMfo6NzX0GBzP7o1cvoSHxb8+bADTfIZht6Khu9symc/vr3\nBzIzgfx8fc7HBK+h558H/vtfGTE98ohs1RYWBnz1lWxGbfRCF3d99x3Qty83h1BDWJi+ZRqWZ4xV\nvz7whz/oV6ZhgtfI55/LKH35cuDmmyt/rVs34K9/BWbM8M7Nl53ZuFH+k5LnQkP1TfAZGbKCtU8f\n/c5JlelZpmGC18Du3cBDDwFffCE196o8+qhssvDtt/rGpob0dCYIteid4L/8Unq/szxjHCZ4H3by\npHwDvf66TImqTv36Moq32/WLTQ2KIiWnnj2NjsQc9O4Lz97vxuveHTh3Dti/X/tzeU2CLy4G/v1v\nGfX6qtxcmQY1aRIwcaLz50+YILModuzQPDTV5ObKzeO2bY2OxBz0HMEfPw4cOsTymtGuu05+yH75\npQ7nqumLly5dQr9+/dCzZ0+EhYVh1qxZAID8/HzYbDYEBwcjJiYGBQUFHgcyaxbw0UfAn/8sS6h9\nzfHjMm1w/Hi5ueqK+vWBBx+UzTJ8xc6dMnrnR3x1WK3SNkCPLoMrVwLDh8vNfjLW6NH6DGZrTPAN\nGzbE2rVrsXPnTuzatQtr167Fxo0bYbfbYbPZkJmZiejoaNg9rDPs2wckJ8vHx7fflmRfWurRIXWV\nlSWNhO67D3juudq9dvJk2dH+3DlNQlNdWYIndVgsMorXo0zz1VdsLeEtoqJkqrHWzeaclmgaNWoE\nACgsLERJSQlatGiBFStWIOFKl6mEhAQsW7bMoyCSkoAnngBatZJ9PevVk+mFvmDTJmDwYGDmTOCZ\nZ2r/+sBA+cj86afqx6YFJnj16TFVsrhYGl1FR2t7HnJNvXrAvfcC//d/2p7H6T7qpaWl6NWrFw4e\nPIiHH34Y3bp1Q15eHqxXmpBYrVbk5eVV+/rZs2eX/zkqKgpRUVGVvp6VJR8dy36SWSzA9Olyk3L4\n8Nq/IS3k5ADz5slNkaZN5VdhocyW2b1b7h2MGuX+8adOlZutkyerF7NWfvwR+NvfjI7CXPSow+/Y\nIe2JW7XS9jzkukcflfUkTz0F7NnjgMPhUP0cFkVxbSb2mTNnMGzYMCQlJWH06NE4ffp0+ddatmyJ\n/CqWZlksFjg7/MMPAy1aAHPmVDx2+TLQoQOQliajG6MUF8uni9dekxuifftKJ7izZ+Un8C23yG44\n11/v+Xnat5epU0a+X2eKimTl5dmz3MNTTatWyYBmzRrtzvGvfwGHD0sJlLzHzJkyceHjjyvf13Il\nd7rC6Qi+TLNmzXDHHXdg+/btsFqtyM3NRUBAAHJyctC6usneTpw4IfXnn3+u/HiDBpL433wT+N//\ndevQHlMUmcu+f7+MWtu10+5cdetKX/UPPgBeeUW783gqK0tmzzC5qys8XEpfiqLdzet166QkQN5l\nzhy5fzdlirQ1CQhQd5evGmvwv/zyS/kMmYsXLyIlJQWRkZGIi4tDcnIyACA5ORnxNUysfeopGflV\n5eWX5T/dTTdd+7WHHpLk/+uvLr4TlS1cCGzbJuUjLZN7mfvvBxYtktKPt9q/H+jSxegozKdtW/kh\nf+SINscvKZHVx4MGaXN8ct/118tix0aNgN69gcaN1f1BXGOCz8nJwdChQ9GzZ0/069cPsbGxiI6O\nRmJiIlJSUhAcHIy0tDQkJiZWe4yMDCljnD1b+fHcXJk585e/VP06q1UadM2bV+v35LHffpOZPO+9\nBzRpos85u3SR9rHePEWUCV4bFouU/7Zu1eb4e/dK7Z29+71T06ZSOjt5UgbDas6Pd7kG79bBLRYU\nFSl44glpULVqVcUCmbKRe00liR07ZEuxQ4f0nbv7zjvSDOizz/Q7JyC9a5YskV7r3ujRR4HgYLkJ\nTuqaM0c6DP7rX+ofe8ECICVF6rzkG9SqwWu+krVuXUmYZTcpX39dOiumpwN//3vNr42MlBuZeq5u\nVRSZFfPYY/qds8zYsTKK02MJszs4gtdO377Ali3aHHvbNvYO8le6tCqwWIDERBkR79olW1etXSv1\nJmdmzJAfCnpZv16S/ODB+p2zTKNGcnNZi1GcGvbvlxE8qa9fP/nEevGi+sf+4QcmeH+leYnG08OX\nlMjUwbffBmw2lQKrwfjxwMCBwOOPa3+uqpw8CXTtKvcu2rQxJoaqXLokG1ScOyefykh9AwfKp1o1\nFyMVFsq/26lTrg2oyDv4TInGU3XqyA5IiYnaty/IzpZapZHTyVq3lilTzz5rXAxVOXRI5uozuWtn\n6FBZ+6Gm3buBoCAmd3/l9QkekNp0nToy60ZLb7wh89GbNdP2PM4895zckF63ztg4rsb6u/aGDlV/\nfwCWZ/ybTyR4iwV4/32ZUqnVDchTp2S2gTfMEGnaVGIZP167udG1xQSvvdtuA/bsAc6cUe+Y27bJ\n/GryTz6R4AFZ7ffiizJt0tXuxKWl8hpXGnm9+KL0cO/QwbM41TJsmDQvGzHC9ferJd5g1V7DhlKH\nV3O3H47g/ZvPJHgAmDZNbrTefbfcfHXmrbdk5s5TT8kc8+qsXy/zz72tidaMGcCAAbLoymgcwesj\nNhZYsUKdY124IP9u4eHqHI98j08leAB49VXg/Hng3XedP3fePHne6tWS5DdsuPY5O3dKKWTBgur3\nTzXSP/8pn0AOHTI2jsxMJng9xMbK/RdXBjDO7NolnSrZO8h/+VyCr1tX6vGzZ9e8C87+/dLHpl8/\n+U++aBFw110V89x37pQe9EOHys1Vb2lN/HstWkg74TfeMC6GCxfkWurRk8fftW8vewR8/73nx9q+\nHejVy/PjkO/yuQQPSM+W0aNlhWx1li2TXjbXXXmHMTHyg+FPf5K2B2PGyNSxjAxJ/N7sgQeAxYul\nrbARDhwAOnWSmUykPbXKNOnpNW/8TubnkwkeAJ58UloKVLfyb9mya3ePHzlSZqVcvChJKylJ2nN6\nu6AgSbBqT6FzFW+w6isuTr0EzxG8f/PZBN+1q2wdt3z5tV/LzZWR+dCh137NYpERvK9tGj1hArB0\nqTHn5g1WffXqJR1NPdnl6fJl2WehRw/14iLf47MJHpBFSVUtfvrqK+CPfwTq19c/Jq2MHCk3i7Vr\nLFE9Jnh9XXedlBIXLHD/GLt3A507e77bGPk2n07wd94pm17/flOQpUulRm8mQUEyG2LPHv3PzQSv\nvylTZPDi7gYwrL8T4OMJ/oYb5Obp1Q3yT5yQ2QMjRxoXlxYsFln8pOW+ndXhFEn9BQfLZIKvvnLv\n9ay/E+DjCR4Axo2TRUplPv4YGDXKnB9NY2KA//5X33OePSv14LKNWkg/Dz0k+xK7g1MkCfCBdsHO\nXLggbXUPHJAmYV26SMLv31/T0xrizBlJtL/+qt/ilfR0YPJk2Xic9FVcLHX0JUtkPYeriorke+Hk\nSfmUS77Hb9oFO9OokcwbnjtXWuz26GHO5A7IN21wsCRdvbA8Y5y6dYE//1k2p6+NXbtkJzQmd/L5\nBA9I+4LUVMDhAObPNzoabQ0cCGzcqN/5OAfeWFOmSNvozEzXX/Pdd/L/hMgUCb51a2k9sGWLd/aT\nUdPAgfINrBfOoDFW48ayu1hSkuuv2bRJmtQRmSLB+5OyBK/XfHiWaIz3xBMym8bVhnMcwVMZJngf\n066dzBCqzUd2T7BEY7zmzYFHHnFtFJ+VJTdZg4K0j4u8HxO8DxowANi8Wfvz/PqrzOS46Sbtz0U1\nmzED+OIL5zt8rVolq7h9rRUHaYMJ3gf17i3znLVWVn9nsjBey5bAgw8Cr7xS8/O++kp2ASMCmOB9\n0q236pfgWZ7xHg8/DHz0kaz9qMrRo7JF3x136BsXeS8meB/Uq5csPFJj15+acAaNd2nfXjbmvnrl\ndpnSUpkzf999MvOGCGCC90nNmsnq3X37tD0PZ9B4n2nTgPfeu/bx//f/pE32Sy/pHxN5L6cJPjs7\nG0OGDEG3bt3QvXt3vHmlOUZ+fj5sNhuCg4MRExODgoICzYOlCnqUaVii8T7DhwPHj1duHfH++7K5\n/LJlQMOGxsVG3sdpgq9Xrx5ee+017NmzB5s3b8Y777yDvXv3wm63w2azITMzE9HR0bDb7XrES1do\nneAVhSUab1S3rjQhe/ZZ+TdasQL4299k9kyrVkZHR97GaYIPCAhAz549AQA33HADQkNDcfz4caxY\nsQIJCQkAgISEBCxbtkzbSKkSrRN8Xp5smNKihXbnIPc89RRQUABERMh+vStX8gcxVa1ubZ58+PBh\n7NixA/1plKPRAAAMtklEQVT69UNeXh6sVisAwGq1Ii8vr8rXzJ49u/zPUVFRiIqKcjtYqnD1jVYt\nNsNmecZ7NWgApKVJ/6Vbb+U6BTNwOBxwOByqH9fldsHnzp3D4MGD8eyzzyI+Ph4tWrTA6dOny7/e\nsmVL5OfnVz64Du2C/VmXLrInbViY+seeP1+aXFW1JSIRaUvXdsFFRUUYM2YMJk2ahPj4eAAyas/N\nzQUA5OTkoLXZu3x5oVtvBbZt0+bYnEFD5PucJnhFUTBlyhSEhYVhxowZ5Y/HxcUh+crwLjk5uTzx\nk35699YuwbNEQ+T7nJZoNm7ciEGDBiE8PByWK2vWk5KS0LdvX4wbNw5Hjx5Fx44dsXTpUjRv3rzy\nwVmi0dS6dcCsWdIeVm3h4VKeiYxU/9hEVDO1cqfPb9nnz86elQVPBQVAvXrqHbekBGjShFu+ERmF\nW/YRmjaV5esZGeoe98gRmVPN5E7k25jgfVyfPurX4TMytJmZQ0T6YoL3cb17SwdBNe3dC4SGqntM\nItIfE7yP02ImDRM8kTkwwfu4nj2lpHL5snrHZImGyByY4H1co0ayIGnXLnWOpygcwROZBRO8CfTv\nr95c+Jwc6XVy443qHI+IjMMEbwJRUYBafYr27mV5hsgsmOBNICpKVrWWlnp+rIwMlmeIzIIJ3gTa\ntAFat668y4+7WH8nMg8meJMYNgz4+mvPj8MET2QeTPAmMXYs8Omnnh+HUySJzIMJ3iQGDJDmYJmZ\n7h8jNxcoLgZuvlm9uIjIOEzwJlGnDjBmDPD55+4fY+dOWTh1pSs0Efk4JngTGT0a+OIL91//44+S\n4InIHJjgTWTQINmJqZr9z50qG8ETkTkwwZtI3brAwIHAxo3uvX7nTiAiQt2YiMg4TPAmM2gQsH59\n7V934YJs9BESon5MRGQMJniT6d/fvf7wP/0kyb1+ffVjIiJjMMGbTHg4sHt37dsWsP5OZD5M8CbT\nogXQsiVw6FDtXsf6O5H5MMGbUERE7fvScARPZD5M8CZU2wRfWiplHY7gicyFCd6EwsNrt8PTwYNA\nq1ZA8+baxURE+mOCN6HgYFnw5CrW34nMiQnehDp3lpusrs6kYf2dyJyY4E2ocWPZUzU727XnswcN\nkTkxwZtUly6ul2k4gicyJ6cJ/v7774fVakWPHj3KH8vPz4fNZkNwcDBiYmJQUFCgaZBUe64m+FOn\ngHPngA4dtI+JiPTlNMFPnjwZq1evrvSY3W6HzWZDZmYmoqOjYbfbNQuQ3ONqgv/xR7nByh7wRObj\nNMHffvvtaNGiRaXHVqxYgYSEBABAQkICli1bpk105LbOnYEDB5w/j/V3IvNyqwafl5cHq9UKALBa\nrchztwE5aaZDB+DoUefPY/2dyLzqenoAi8UCSw2f72fPnl3+56ioKERFRXl6SnJB+/auJ/iZM7WP\nh4iq53A44HA4VD+uRVEUxdmTDh8+jNjYWOzevRsAEBISAofDgYCAAOTk5GDIkCHYt2/ftQe3WODC\n4UkDigLccINspN2kSdXPKSwEmjUDTp8GGjbUNz4iqp5audOtEk1cXBySk5MBAMnJyYiPj/c4EFKX\nxSKj+Jrmwu/fL89hcicyJ6cJfsKECRgwYAB+/vlntGvXDgsWLEBiYiJSUlIQHByMtLQ0JCYm6hEr\n1VL79rJLU3X27AG6ddMvHiLSl9Ma/OLFi6t8PDU1VfVgSF3O6vBM8ETmxpWsJuYswWdkAGFh+sVD\nRPpigjcxjuCJ/BsTvInVlOALC6XjZNeu+sZERPphgjexmhL8/v2yGKpBA31jIiL9MMGbWLt2wIkT\nQEnJtV9jeYbI/JjgTax+faBlS1ns9Hu8wUpkfkzwJteuXdWLnTiCJzI/JniTY4In8l9M8CZXVYIv\nLASysmRzbiIyLyZ4k2vX7tqZNOxBQ+QfmOBNrqoRPMszRP6BCd7kquooyRk0RP6BCd7kOIIn8l9M\n8CYXEADk58uN1TJ79nAET+QPmOBNrk4dSfLHj8vfy2bQsAcNkfkxwfuBq8s0nEFD5D+Y4P3A1Qme\nN1iJ/AcTvB+4ei48b7AS+Q8meD9w9QieN1iJ/AcTvB+4ei58RgZH8ET+ggneD5SN4C9f5i5ORP6E\nCd4PlCX4n34CunThDBoif8EE7wdatQIuXQIcDiAy0uhoiEgvTPB+wGIBwsOBDz5ggifyJ0zwfmLw\nYGDvXiAmxuhIiEgvFkVRFM0ObrFAw8NTLfzyC7B+PTB6tNGREJEzauVOJngiIi+jVu5kiYaIyKQ8\nSvCrV69GSEgIunTpgrlz56oVkyk5HA6jQ/AavBYVeC0q8Fqoz+0EX1JSgsceewyrV69GRkYGFi9e\njL1796oZm6nwP28FXosKvBYVeC3U53aC37p1Kzp37oyOHTuiXr16GD9+PJYvX65mbERE5AG3E/zx\n48fRrl278r8HBgbieNmuEkREZLi67r7QYrGo+jx/8MILLxgdgtfgtajAa1GB10Jdbif4tm3bIvuq\n3Zyzs7MRGBhY6TmcIklEZBy3SzS9e/fG/v37cfjwYRQWFmLJkiWIi4tTMzYiIvKA2yP4unXr4u23\n38awYcNQUlKCKVOmIDQ0VM3YiIjIAx7Ngx8+fDh+/vlnHDhwALNmzSp/3N/mx2dnZ2PIkCHo1q0b\nunfvjjfffBMAkJ+fD5vNhuDgYMTExKCgoKD8NUlJSejSpQtCQkKwZs0ao0LXTElJCSIjIxEbGwvA\nf69FQUEBxo4di9DQUISFhWHLli1+ey2SkpLQrVs39OjRA/fccw8uX77sN9fi/vvvh9VqRY8ePcof\nc+e9b9++HT169ECXLl0wffp05ydWVFZcXKwEBQUpWVlZSmFhoRIREaFkZGSofRqvkpOTo+zYsUNR\nFEX57bfflODgYCUjI0N5+umnlblz5yqKoih2u1155plnFEVRlD179igRERFKYWGhkpWVpQQFBSkl\nJSWGxa+FV155RbnnnnuU2NhYRVEUv70W9957r/LBBx8oiqIoRUVFSkFBgV9ei6ysLKVTp07KpUuX\nFEVRlHHjxikffvih31yL9evXK+np6Ur37t3LH6vNey8tLVUURVH69OmjbNmyRVEURRk+fLjyzTff\n1Hhe1RP8pk2blGHDhpX/PSkpSUlKSlL7NF7tzjvvVFJSUpSuXbsqubm5iqLID4GuXbsqiqIoc+bM\nUex2e/nzhw0bpnz//feGxKqF7OxsJTo6WklLS1NGjhypKIril9eioKBA6dSp0zWP++O1+PXXX5Xg\n4GAlPz9fKSoqUkaOHKmsWbPGr65FVlZWpQRf2/d+4sQJJSQkpPzxxYsXK9OmTavxnKr3ovH3+fGH\nDx/Gjh070K9fP+Tl5cFqtQIArFYr8vLyAAAnTpyoNOPIbNdo5syZePnll3HddRX/vfzxWmRlZeGm\nm27C5MmT0atXL0ydOhXnz5/3y2vRsmVLPPnkk2jfvj1uvvlmNG/eHDabzS+vRZnavvffP962bVun\n10T1BO/P897PnTuHMWPG4I033kCTJk0qfc1isdR4bcxy3VauXInWrVsjMjKy2mmy/nItiouLkZ6e\njkceeQTp6elo3Lgx7HZ7pef4y7U4ePAgXn/9dRw+fBgnTpzAuXPnsGjRokrP8ZdrURVn791dqid4\nV+bHm1FRURHGjBmDSZMmIT4+HoD8VM7NzQUA5OTkoHXr1gCuvUbHjh1D27Zt9Q9aA5s2bcKKFSvQ\nqVMnTJgwAWlpaZg0aZJfXovAwEAEBgaiT58+AICxY8ciPT0dAQEBfncttm3bhgEDBuDGG29E3bp1\nMXr0aHz//fd+eS3K1OZ7IjAwEG3btsWxY8cqPe7smqie4P1xfryiKJgyZQrCwsIwY8aM8sfj4uKQ\nnJwMAEhOTi5P/HFxcfjkk09QWFiIrKws7N+/H3379jUkdrXNmTMH2dnZyMrKwieffIKhQ4di4cKF\nfnktAgIC0K5dO2RmZgIAUlNT0a1bN8TGxvrdtQgJCcHmzZtx8eJFKIqC1NRUhIWF+eW1KFPb74mA\ngAA0bdoUW7ZsgaIoWLhwYflrqqXWDYSrrVq1SgkODlaCgoKUOXPmaHEKr7JhwwbFYrEoERERSs+e\nPZWePXsq33zzjfLrr78q0dHRSpcuXRSbzaacPn26/DUvvfSSEhQUpHTt2lVZvXq1gdFrx+FwlM+i\n8ddrsXPnTqV3795KeHi4MmrUKKWgoMBvr8XcuXOVsLAwpXv37sq9996rFBYW+s21GD9+vNKmTRul\nXr16SmBgoDJ//ny33vu2bduU7t27K0FBQcrjjz/u9Lya7uhERETG4Y5OREQmxQRPRGRSTPBERCbF\nBE9EZFJM8EREJsUET0RkUv8fQMn0hYqvaZ8AAAAASUVORK5CYII=\n" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sad = [sum(abs(window(combined,r,i)-template)) for i in range(n)]\n", "plot(sad)\n", "print argmin(sad)" ] }, { "cell_type": "markdown", "id": "39ee1b2b", "metadata": {}, "source": [ "## Dissimilarity by Infinity Norm" ] }, { "cell_type": "markdown", "id": "10932bb4", "metadata": {}, "source": [ "The maximum difference is very sensitive to outliers, but still outputs the correct location.\n", "This forms the basis of mathematical morphology.\n", "\n", "$$ d_i = \\max_j |w^{(i)}_j-t_j| $$\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 149, "id": "262e8654", "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "301\n" ] }, { "data": { "image/png": "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\n" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mad = [amax(abs(window(combined,r,i)-template)) for i in range(n)]\n", "plot(mad)\n", "print argmin(mad)" ] }, { "cell_type": "markdown", "id": "6793788f", "metadata": {}, "source": [ "## Dissimilarity by Percentile" ] }, { "cell_type": "markdown", "id": "55e9e52f", "metadata": {}, "source": [ "We can also use a percentile filter on the distribution of differences, which is a little more robust.\n", "\n", "$$ d_i = \\hbox{perc}_{90}\\\\{ |w^{(i)}_j-t_j| \\\\}$$\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 131, "id": "4a261af3", "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "301\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXsAAAD9CAYAAABdoNd6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlcVOX+B/DPsGiC5K4og6GCLFqIgWamUVqIJZFaYvdm\nmim3Lrm1/26L9rpZ3NI0KaOrlebGvWViXsUi42puWG7dMCUDHRZXNs1lYDi/P74N6zDMcpaZc77v\n18uXzHDmnMcjfOeZ7/M830cnCIIAxhhjquahdAMYY4xJj4M9Y4xpAAd7xhjTAA72jDGmARzsGWNM\nAzjYM8aYBrQa7LOyshAWFoaQkBCkpqZaPCYnJwdRUVEYOHAgYmNjxW4jY4wxJ+mszbM3mUwIDQ1F\ndnY2AgICEBMTg/Xr1yM8PLzumIqKCgwfPhzbt2+HXq/HhQsX0LVrV1kazxhjzDZWe/a5ubkIDg5G\nUFAQvL29kZSUhMzMzEbHrFu3DhMmTIBerwcADvSMMeaCrAb74uJiBAYG1j3W6/UoLi5udEx+fj7K\nyspw1113ITo6Gp999pk0LWWMMeYwL2vf1Ol0rZ6guroaBw8exLfffosrV65g2LBhuO222xASEmL3\nuRhjjDUnRlUbqz37gIAAGAyGuscGg6EuXWMWGBiIe++9F+3atUOXLl0wcuRIHDlypMUG8x8Br732\nmuJtcJU/fC/4Xqj1Xvz6q4Bp05w/j1isBvvo6Gjk5+ejsLAQRqMRGRkZSEhIaHTMAw88gO+//x4m\nkwlXrlzB/v37ERERIVoDGWPqcf068NxzgIgxzGW9+y6wcaPSrahnNY3j5eWFtLQ0xMXFwWQyYfr0\n6QgPD0d6ejoAIDk5GWFhYRgzZgxuueUWeHh4YMaMGRzsGWMWFRYC77wD3HMPcO+9SrdGOmVlwNq1\nwNWrwKVLgJ+f0i1qZeqlqBfS6UT9SOLOcnJyeD3CH/he1NPCvfjvf4FRo4DRo4GsrJaPc/d78eab\nwPHjwO7dwFdfAWFhjp9LrNjJwZ4xJpuMDGDdOuDAAeDrr4GBA5VukfiMRqBPH2DrVuAvf6FPMsOH\nO34+sWInl0tgjMnm3DkgMBD4618pp61GGRlAeDgQGQl06gSUlyvdIsLBnjEmm7IyoHNnIDmZBi/P\nnlW6ReISBGDxYmDePHrMwZ4xpknl5RQAu3YFkpKADz5QukXiyskBrl0Dxoyhxx07AhUVijapDgd7\nxphszMEeAObMAT78kGasqIW5V+/xR2Tlnj1jTJMaBvvQUGDIEGDNGmXbJJbjx4HcXODPf65/joM9\nY0yTGgZ7gHrB774L1NYq1yaxLFlCs2/atat/joM9Y0yTmgb72FigbVtg+3bFmiSKCxeADRuAp55q\n/Dzn7BljmtQ02Ot01LtfvFi5NokhPR0YPx7o0aPx89yzZ4xpUtNgDwCTJgF5ecDRo8q0yVnXrwPv\nvw/Mndv8exzsGWOac/06UFMD+Pg0fr5NGyAlxX0XWW3YANx8s+XVwJzGYYxpjrlXb2lri+RkYNMm\noLRU/nY5o+kiqqa4Z88Y0xxLKRyzzp2BRx5xv0VWO3bQp5WWKnj6+dE6gupqedtlCQd7xpgsrAV7\nAJg9mwY6r1yRr03OMvfqW9qIz8MD6NDBNVI5HOwZY7JoLdj37w8MGwa4yzbWx44BP/4I/OlP1o9z\nlbw9B3vGmCxaC/aAey2yWrIEePJJ4IYbrB/nKnl7DvaMMVnYEuxHjgR8fYFt2+Rpk6POnwf+9S8K\n9q3hYM8Y0xRbgr27LLJavhyYOBHo3r31YzmNwxjTFFuCPQA8/DBw4gRw+LD0bXLEtWs0a2jOHNuO\n5549Y0xTbA323t7A00+77iKrdeuAqChgwADbjneVYO+ldAMYY9pga7AHgBkzgH79gJISoFcvadtl\nD/MiKnveiDp1oh26lMY9e8aYLOwJ9p06UV3499+Xtk32+uYbGlcYPdr213DOnjGmKfYEe4AWWX30\nEfD779K1yV6tLaKyxFXSOBzsGWOysDfY9+sHjBgBrFolXZvs8b//AUeOUFkHe3CwZ4xpir3BHnCt\nRVZLltDmJG3b2ve6Tp04jcMY0wijkYqB+fra97rhwylYbtkiTbtsdfYs8MUXtO2gvTp25J49Y0wj\nyssp6NmT6wZcZ5HV8uU0/79bN/tfy2kcxphmOJLCMZswAfjtNyo6poSrVynYW9qJyhYdOwKVlcqn\noloN9llZWQgLC0NISAhSU1ObfT8nJwcdOnRAVFQUoqKi8Pe//12ShjLG3Jczwd7bG5g1S7lFVmvX\nAjExQFiYY6/38qLduS5dErdddrfD2jdNJhNSUlKQnZ2NgIAAxMTEICEhAeHh4Y2Ou/POO7F582ZJ\nG8oYc1/OBHsAeOIJoG9foKgI0OvFa1drzIuo0tKcO485ldOhgzjtcoTVnn1ubi6Cg4MRFBQEb29v\nJCUlITMzs9lxgiBI1kDGmPtzNth37AhMmeJ80LXX9u20R+5ddzl3HleYkWM12BcXFyMwMLDusV6v\nR3FxcaNjdDod9uzZg8jISIwdOxZ5eXnStJQx5racDfYApXJWrAAuXxanTbZwZBGVJX5+Lp7G0dnw\nLxw8eDAMBgN8fHywbds2JCYm4sSJExaPnT9/ft3XsbGxiI2NtauxjDH3JEaw79sXiI0FPv0USEkR\no1XW/fQTLaRKSnL+XO3b2/4mlZOTg5ycHOcv2oTVYB8QEACDwVD32GAwQN8kYebn51f3dXx8PJ56\n6imUlZWhc+fOzc7XMNgzxrSjvBwICHD+PPPmUTrnyScBT0/nz2fNu+/Sm0qbNs6fy56efdOO8IIF\nC5xvAFpJ40RHRyM/Px+FhYUwGo3IyMhAQkJCo2POnj1bl7PPzc2FIAgWAz1jTLvE6NkDtEdt167A\nV185fy5rzpwBvvwSSE4W53zt27t4GsfLywtpaWmIi4uDyWTC9OnTER4ejvT0dABAcnIyPv/8cyxf\nvhxeXl7w8fHBhg0bZGk4Y8x9iBXsGy6ySkx0/nwtef99YPJkoEsXcc7n5yfvWIMlOkGmqTQ6nY5n\n7bBGBAEICqJc7ObN9AvB1GnkSOD11ynn7qyaGiA4GPj3v2n+u9iuXKGfy++/B/r3F+ec//d/NNf+\n5Zftf61YsZNX0DLFFBcDp08Dx44Bn3yidGuYlMTq2QO0SGn2bOkWWX32GXDbbeIFesA1evYc7Jki\nBIE+jo8bR7nRJUsAk0npVjGpiBnsAWD6dJoD32D+iChqa+lNZN48cc/rClMvOdgzRZw9C3z7LS1F\nHzYM8PcHNm1SulVMKmIH+xtvBKZOBZYtE++cALBtG6Vb7rxT3PPaM/VSKhzsmSKmT6delDlP7wqV\nDZk0jEb60769uOedNQv4+GNxe8xiLaJqinv2TLNKSmg1pFliIj23b59ybWLScLS8cWtuugkYNUq8\n8Z7Dh4FffqFSxmJzhamXHOyZ7IxGGpi9/fb656QedBNLVRWNNzDbiZ3CaWjePPHGe959F3j6aXEW\nUTXFA7RMk159lXKi/v6Nn3/8cSA7GygsVKRZraqpAQYNAvbvV7ol7kXKYD90KNCzJ2ChPqNdSkpo\n+u/MmeK0qylO4zBVqK627/j9+2kvz6Yf62+8kQK+2INuYvnyS6CgwDV2HXInUgZ7gHr3ixY5d473\n3wf+9CdAqsX/PEDL3N7Vq0CPHrS83FanTlG+1ZKnn6ZCV5WVojRPVIsXUz3y339XuiXuRepgn5gI\nlJY6Pt7z++/ARx9RGlEq3LNnbu/8efplXr7ctuMvXaJplw0qZzfSuzdw773AypXitVEMe/cC584B\n993Hwd5eUgd7T0/nxntWr6aNzUNCxG1XQ9yzZ27vwgXahPnDD6mX35rPP6cl8zfc0PIxc+cCS5dS\njtxVLF4MzJlDqSZzsD92DDhwQNl2uQOpgz1g33jPhx/SCtkrV6RbRNVU27Z0LaNR2utYw8GeOeXC\nBRq0HDKElpm3ZuNGWgxjzZAh1MPfuFGUJjqtoAD47jtg2jTA15eC/YkT9KY1ZAhN17PVt9/S7BEt\nkSPY+/nZNt5z/Trw2ms0bjRiBPCf/9Ab+IgR0rZPp1N++iUHe+aUCxeoMuC8edRDqq21fvzx48DA\nga2f1zzo5grTHN97jxaBtW9PwX7tWiA0lGYVeXrSqktbvfwysG6ddG11RXIEe6B+vKeqquVjVq6k\n4mmFhZROXLwYeOYZ8dcAWKL09EsO9swplZU0aGlOzWRltXyseX59376tnzchAbh4kXLlSqqspJzu\n00/T43btgCNHaOroU08BL7xAb0xHjrR+rr17qZbLsWPSttnVyBXsWxvvKS8H/v536tnr9VSIb9cu\nYOJE6dsGKD9Iy8GeOeXSJfohblhnvCUFBfRL1rZt6+f19KQcubNT6py1YgUQH0/tBqhw2+rVQE4O\n/Zv/9jfgoYfocWsWLwaef55yxa40HiE1uYI9YH2856GHgLvvpp69pyf9n/3yC+DtLU/bzClApXCw\nZ065dIlyngAwaRL1Wlvq5R48CISH237uqVOB//4XOHnS6WY6pLqaAsfcufXPDRgAPPpo/WMfH3oD\n2L7d+rnMef/HH6d0kJZm9Fy4QLtLyWHIEJrp9eWXjZ9fsYLGWRqWVrjzTqqLLxcfH3qjVwoHe+aU\nqqr6YmZt2tCenS1NgVu2DHjsMdvP3b498MQTlDNXwhdfUMrp1lutHzdhAvUSrc1GWrq0Pu+v9ECd\n3M6fpxlbcmn6CbOyEnjxRZoJJlcv3hIO9sytmdM4ZsnJtOy8tLTxcVeuUM/+wQftO39KCs3yqahw\nvq32EARKIdkyJc/Hhz6x/PCD5e9XVDTO+ys9UCen2lqgrEy87f1skZBAbzDm8Z60NGDsWOr1K4mD\nPXNrTYN9587AI4/Q8vOGiooo7+3pad/59XpayPTPfzrfVnvs3k1B+v77bTv+oYcooFuyYgUFG3Pe\n3xUW2MilrIzSfHL2qM3jPYsX08/n0qW0LaDSfH052DM31jBnbzZ7NpCe3vgH2xzsHTF3LqVy7K3B\n44zFi+m6Hjb+hkybRmmCpmUeqqup7Q3z/loK9nKncMymTgW2bqWfzTvuAMLC5G9DU9yzZ26tYc7e\nLCSElp837OkeOuT4np6DB9dvMC2HkydpSp494ws9etC0vzVrGj9vKe/PwV567dtT+ua++1ynsB4H\ne+bWmqZxzBousjIagWefpY0mHCXnIqulS4EZM+hjtz1mzmycbmop78/BXh7TpgFbtgABAcpcvykf\nH556ydxYS8F+xAh6futWmnbYty9NzXTUffdRgNy1y/Fz2KK8nHrnKSn2vzY2lqb3mQN5S3l/Dvba\nxD175tZaCvYNF1n9+qvzFQU9PCjvLfU+tf/8JwXnXr3sf62nJ6WqzHO5W8r7aynYnzpFK1sZB3vm\nxgTBcs7e7KGHgPx8yrWLUT52yhRgzx46pxSqqym/23Aw1V6pqcCCBVQfvaW8v5aCvRhv9GrBwZ65\nrevXqdfaUvkDb2+aW75qlTgrFX18KC8uVdVI85tSVJTj54iLo6mWyckt5/21FOx/+sm+VdNqxsGe\nua2WUjgNzZhBc+/HjBHnmn/9K1WNLCsT53xm9iyias0DD9Abx7PPWv6+VoL9+fO0g9mAAUq3xDXw\nPHvmtmwJ9p06UfXK0FBxrtmzJwXT9PTGz1+9CsyaBSxcCBw+bH+hsV27KACPHet8G3U6qqTY0n6m\nWgn2ubn1RccY9+yZG6uqar6gSg5z59IcavOuP6++Sr9I69ZRFcqoKJqbb8vOWWb2LqJyhtaCPSMu\nH+yzsrIQFhaGkJAQpKamtnjcgQMH4OXlhY2usr0Qk5wtPXspREYCERG0aCswkNIv48cDb75JOxBt\n3065Yltz+/n5NPA7ZYq07TbTSrA/cED5ejSuROl59l7WvmkymZCSkoLs7GwEBAQgJiYGCQkJCG8y\n4mIymfDCCy9gzJgxEFxhayEmC6WCPUD58DFjaNer3FxK7zR0/DgwciTlSWfNsn6upUtp4NfHR7r2\nNqSFYC8I9P+yYoXSLXEdSvfsrQb73NxcBAcHIygoCACQlJSEzMzMZsF+2bJlmDhxIg7w7suaYm3a\npdTi4oB//YsG/5oGeoDmu+fm0qeAgQNpUdcfP8aNlJVR+ufnnyVvch0tlDguKKBZWo6sV1Arlw72\nxcXFCAwMrHus1+uxf//+ZsdkZmZix44dOHDgAHRWNnOcP39+3dexsbGIjY11rNXMJSjZswdoHr81\nvXvTkvlRo+hTgKW9YtPTqSSupTcMqWihZ88pnOZsDfY5OTnIsWXrMztZDfbWArfZnDlz8NZbb0Gn\n00EQBKtpnIbB3p2UlNCOSffdB2zcSD3KrVuVbpXyLFW8dDWLFgGvvEKfALZsaVy6wGikgV65/y+1\nEOx5cLY5W6deNu0IL1iwQJTrWw32AQEBMBgMdY8NBgP0TerU/vjjj0hKSgIAXLhwAdu2bYO3tzcS\nEhJEaaArmDuXAnxQENVOqaykVZKvvaZ0y5SldM/eFjodTf/cuJEC/c8/U4VKAMjIoAU/kZHytkkL\nwf7AAZolxerdcAMtRKytlWfWV1NWLxkdHY38/HwUFhbCaDQiIyOjWRD/7bffUFBQgIKCAkycOBHL\nly9XTaAvLqY5wpmZVNCqbVvg4YdpF6YlS4CzZ5VuobKUzNnb67bb6E37jjuoLIIg0HRLMRZR2cvH\nh6aFmkzyX1sONTW0K1l0tNItcS06HdCunX1TgsVkNdh7eXkhLS0NcXFxiIiIwKRJkxAeHo709HSk\nN13VokILF9K+qqtXAx06AHl5VPPE3x+YPFm5vVFdhTv07Bv6298oj79uHe0Ze+2aeCt77eHhofxg\nnbNMppYXruXlUVnhjh3lbZM7UHL6pdU0DgDEx8cjPj6+0XPJyckWj/2k4dbtbuznn2n14/r1QGFh\n/cf+hh+9nnmGNqTw8QFeeAHwavVOqo875OybeuklmmYZECDfIipLzKkcd3qzNBMEqiEUHU3pzaZ4\ncLZlSr7J8wraJvbsoal6Dz0E/PnP9YG+qX79gMRE4OWXgS+/lLeNrsLdevYAMHo0cNddwPffA48+\nqlw73Dlvv3Mn5Z6/+65xBdJDh+h3gQdnW8bB3oW8/TatpDx6FHjuOevHfvopDfy98448Oyi5mspK\n9+vZA5SKu3iR8qdKcedg/+9/00K1v/yl8SrlV1+llcyrV9MYCWuOg72L+P572l1o+XKq2NdgiUGL\nEhIocOzeLX37XE1VFY1luBtPz5aLlMnF3YJ9w7bu3g3ceSfw1FM0/nHxIj1/8CClyHQ6HpxtiZKV\nLznYgwaUPviA0jLLltG7b0s12pvy9KTc76JF0rbRFblrz94VuFOw/+ILStfNnEmpu/x8KjTXsyd1\ndrp2pckKVVXUUbpyRbmxEFenZM9eg8OKzT3yCHDkCNVbcWSf1KlTaYeiNWsoz68V7tqzdwWdO9f3\niF3ZL79QuebXXqtPfw0dSrPUAEp76nTA7NnAzTdzkG8Np3EUtH8/zaHPzXV8EYivL7B2LTB/vv11\n1N2VeUtC7tk7pmdPWq/h6tasoZXj8+cD335LY1TTp9d/v3t3GrsCaMEhs4579gp65x1Kwzg7e2DE\nCJq5k5kJTJggTttc2ZUr1Lvz9la6Je6pVy+gqEjpVrTujTfqN3kPD6f59ZZ676dO0boFZp2S8+w1\n3bM/eZIW1zTsqThj3rz6Xwy14xSOc266iX7+XJm5JMucOfXPtZSm6d2bKo0y6ziNo4AtW2hF5cyZ\nNFgmhsRE+mi+b58453NlPDjrnBEjaCtEpZbOt6a4mHr1Tz5JOXkmDk7jyOzgQWDcOPpazLyppycN\nVC1ebHlloZpwz945PXrQCuxt22huuisRBODuu2lx4dKlSrdGXTiNI7PFi2n2zPnzVOdGTI8/TgNZ\nhYXintfVcM/eeUOH0vaJrmbfPuq4/Pgjj8mIjefZy6ioiOqXz5xJ84PF5udHYwBqL5LGPXvnRUZS\nHRlXYjRS+uaBBzh9IwXO2csoLY1qokhZke/pp4FVq6j3q1bcs3femDGUt29tvr3JBFy4IF07Vqyo\n3yYxMRH4z3+o5hMTn68vp3Fkcfky/WDPni3tdQIDaY/UlSulvY6SuGfvvBtvpJ+TTZusH/fee9It\n1tu5E5gxg+rcHDoEHD5Mb+S+vtJcT+u4Zy+TTz6hmh59+0p/rXnzaHBLrYuseEGVOOLjgezsxs+t\nWwc8+CDw/vuUVlmyhFaySmHhQnoz2buXVpK/+CL/v0qJe/YyKCigecMvvijP9aKjaS71xo3yXE9u\nlZXcsxdDVBSwYQOt4K6upiJjU6fS1ykpNK7Usydw5oy4i5ZefBEICwP+9z8av/rHP6jHOXOmeNdg\nzXHPXgarV1PpYjnrbM+bRwXS1Fj+mHv24ggNpb/N9WYSEqhEwVdfUVrljjuo9927N3VYxLJlC3D8\nONW8aduW6t/k59M+qUw63LOXwZ49tGmFnMaNo8G3vXvlva4cuGcvjnbtqDPw4480O2f7dtrnWKcD\nBg2imWN33007QzXcKMRZxcU09XjGjPrnzMXNmHQ42Mvg9GmgTx95r+npSUvN1VhCwZ02G3cHgwfT\n4GhLdeDFDPaXL1NKqEsXcc7HbMdpHBmUllLuU25Tp1L9nd9+a/z8hQu0WYq7csf9Z92ZmMG+qAjQ\n63kevRK4Z2+D8+dp7q8j+e+rV+mPErsTtW8PPPFE/SIrQaDefrduVB/FPMd6/373KHlr5o77z7qz\nvn2bdxgcVVxMG64z+XFtHBu89x6t7Js4kXKZ9igtpbIISvVkUlKAW26hGRanT9PgWFwctWniRAr+\niYnA5Mk07c4dcBpHXr16idcZKC2l8zH5tW1L07FragAvmaOvW/Tsr16lXXKCgwGDwf7XK5XCMdPr\ngfvvp60Pt2wBPv8cyMqimRAnTlCgnzOHimJt3apcO+3BPXt5ibnZidK/D1qm0ynXu3eLYL9mDTBk\nCBAbC5SU2P96V/jhXrWKeva1tfWbm/TpQ/nT11+nnYDWrqXVve6wEIuDvby6dqVPU0aj8+dyhd8H\nLVMqb+/ywb62Fnj3XZqz7uhH2ePHgaAg0ZtmF52OPrY1TSXpdMArr9A0xrFjqdTC6tXKtNFW16/T\n37Zuys6c5+FBZZHPnHH+XCUlHOyVpFTP3uVz9tu3U1CJjaWgffCg/efYurV+1x1X9/rrtPirpITm\nPT//vNItao579cro2ZN+Lnr3du48nLNXFvfsW7B4MfXqdTrHevYmE3DkiLwrZ51xxx00a+iVV4AX\nXnDNfUp52qUyxMrbcxpHWZyzt+DoUSAvD5g0iR6bezb2KC2lXqg7rfb8/HNadfvss8Dbbyvdmua4\nZ6+M7t1pCrIzTCaa5ODspwPmOJft2WdlZSEsLAwhISFITU1t9v3MzExERkYiKioKt956K3bs2CFa\n4959l6YtmpdxO9KzuXhRmk1KpBQUBNx2Gw3WrlpF1QhXr6ZfVFfA0y6V0akTUF7u3DlOnaI3DR8f\ncdrE7KdUsLeaszeZTEhJSUF2djYCAgIQExODhIQEhIeH1x0zevRoPPDAAwCAn376CQ8++CB+/fVX\npxtWWkp1vk+erH+uRw/q2ZhMVIrAFhcvuu+ycL0eGDkSWL+eqmcKAvDYY0q3inv2SunY0flgf/w4\n0L+/OO1hjnHJNE5ubi6Cg4MRFBQEb29vJCUlITMzs9Exvg12Obh8+TK6itSN/uAD6tE2XPXq7U2P\nz52z/TzuHOwBSulUV1PN89deq58JoyQO9sro1AmoqHDuHCdO1FfaZMpwyZ59cXExAgMD6x7r9Xrs\n37+/2XGbNm3CSy+9hNLSUnz99dctnm/+/Pl1X8fGxiI2NtbicVeuAOnplmvHmFM5tg4wuXuwN6ew\n7riDfknXr6d6O0riYK8MMdI4BQXybN7DWtZazz4nJwc5OTmiX9dqsNfZWF8gMTERiYmJ2LVrFx59\n9FEcP37c4nENg701n30GDBtm+eOmvYNUapp58MwzNGjbrx+ldEaOVKYdHOyVIUawr6yUdv9l1rrW\nevZNO8ILRJo3bjXYBwQEwNCgPoHBYIBer2/x+BEjRqCmpgYXL15EFwe70+ZFVOnplr/ftat9my+X\nlLRcNtbd3HMPra41B/krV6geutw42CtDjJw9bzqjPJfM2UdHRyM/Px+FhYUwGo3IyMhAQkJCo2NO\nnjwJ4Y9SlAf/WPHkSKCvqqK/t22jd76Weq1du9rXsy8qUk+FP50O+PBD2v3q/vvpE5ASONgrQ4ye\nPa+RUF779rSngNysBnsvLy+kpaUhLi4OERERmDRpEsLDw5Geno70P7reX3zxBW6++WZERUVh9uzZ\n2LBhQ4vnO32a0hDmwG62Zg3Ngy8ubryIypJu3Wzv2V+7RvPV3WVBlS1GjqT7M28efQKqrZW/Ddw7\nVIYYA7T8f6c8Pz9605Vbq+US4uPjER8f3+i55OTkuq+ff/55PG/jmv4hQ4CzZylANdy9adUqYMAA\nSlNUVQEPPdTyObp2pRWxtjhxgnr1PXrYdrw7iY2l/UKzsqimjpy4Z6+Mjh0p2AuC4+W6OdgrT6lg\nL+sK2uho4IsvqEdq7qFUVtLGHdnZwLFjtOu9tb0wu3WzPY1z8iSVRVYjnY5690psecjBXhnmqcfF\nxY69XhDod6dTJ3Hbxezj59c8uyEHWYN9aiowejR9vWQJ9fCzsmjHJn9/SrukpFg/R9MB2pqaluee\nnz4N3HSTOG13RZMm0SIZuWvgc7BXzm23ATt3OvbaggLqSPn7i9smZh9N9OwHDKCPkFOnUhXK778H\nMjMB85ivLSVzG/bsL1+m2ShPPGH52LIy955j35o2bWjW0quvyntdDvbKefhhWmvhiP/9D4iM5L1n\nlWZPsHdkG9aWKFII7YMPqO7Lq69S+iYx0fbXNpyR8PHHFOxPnbJ8bFmZMvvOyunmm8WpcW4PDvbK\nGTaMCgQ6orCQNsxhyrrxxsZpnMpKy8cVFQFRUeJdV5Fg364d1Wk/ehR45x37BlA7dKCbYzJRKmjN\nGuqxWHo1jqhlAAATu0lEQVQHLCtTf36yQwfnZ2jYi4O9coKC6OfavFG9PU6dUnda0110704lX2pr\ngYULaeD9m2+aH5eWBtx5p3jXVazEca9e9EM7ZYp9r/Pxoa3Z/v1vyj0mJFBRNAtVHDTRs2/fnvbo\nlXMrQw72yvH0BO6+23JwaM2FCxRomLL8/CjQT59Oa2XGj6c41nCHusuXgRUrKAMiFpeuZ2+JTkfv\nhK+9RrNRACAsjD7eNnX+vPuVN7aXh0fzj4VSqq2lpd7t28tzPdbc7bcDubn2v04LnR93oNNRR3XX\nLmDPHiAjg8Ydp06tL6OwciX16sWsY+R2wR6gj7AnTtTn+rOz6e+mq9LOnFFPXRxrzKktOVy+TCuc\nPdzyJ0cdIiMdy9uXl3OwdxVz5gBbtlCa2csLWLaMUtG9ewMvv0zff/llca/plr+y3bvTDk5efywJ\na9uWeveFhfXH1NZSXkyNC6qa6tWLppnKgVM4ygsKcuz/WwtjWO5i1iyKWQ3l5dH/0dKl1NsXc3AW\ncIMNxy05c6b59LGwMLpZAwfS46IiSvdYW6ClFpGRwKFD4g7mtISDvfICA2lrQXtX0p4/r+6pyO4u\nPJymovfv3/yNQAxu2bO39AN+662N85jbtwP33itfm5Q0ahQVkJMDB3vl+fpSevKnn2x/zZUr9H/H\nA7SuLSFBmkAPuGmwt2T0aKoGefgwPf71V1rEpQWDBtG/Vw4c7F3DvfcC9uxvcfo0fSLgsRbtUs1/\n/dCh1Ls3B3uDgX64tUDOkqkc7F1DSAjw22+2H19aqp5S38wxqgn2Oh1w3331G5SXlGjnh1vOYF9V\nxcHeFYSE0ECerXuZuvv2nMx5qgn2AG3XZw72FRXamXng40MLq0wm6a/FPXvXcN999CZfWmrb8TzH\nnqkq2AcH1wd7LdXt9vCQb6szDvauwdOTZp6dO2fb8RzsmaqCfVgYlfytqNBWsAeol2frR3pn8LZ2\nrsNcY8UWFy9ysNc6VQX7zp2BuDjgzTe1l1v29ZUnb889e9fRs6ftG5n89BPN42bapapgD9A81RMn\nKLVhS318tejY0fnNqG3Bwd51hIYCv/xi27FHjgCDB0vbHubaVBfsu3alvH2HDkq3RF7du9u+XaMz\nONi7jptvBn780bZjy8t5No7WqS7Yd+lCH1l791a6JfKyJ3/rqMuXqXhTUJC012G2GTmSxqgMBuvH\nXb9OtaJuuEGedjHXpLpgby5p3K+fsu2QW48ewNmz0l5jzx7aNH7IEGmvw2zTpg0wZkzrte3NkxV4\nO0Jtc8tCaNbcdBPt/qK1gNSli2O7F9lj5055iq0x2wUEtJ6+q6zUXlqTNae6nr1OB7z0EhUH05KG\ne/NKZedOSh0w19G5M82ht6aykqfLMhUGe62SOtjv3k0761jaEYwpx5b/95MntVMnirWMg71KdOwo\n7cbje/bQEn2eieNaOnVqPX23Zw8wYoQ87WGui4O9Skjdsz9/ngOGKxowAPj228a7tDV18aI2dmxj\n1nGwVwmpg/25c0C3btKdnzlmwABg0iRg06aWj6mspE9+TNtsCvZZWVkICwtDSEgIUlNTm31/7dq1\niIyMxC233ILhw4fjqCO7ITOnSBnsTSZKBWhh83Z3FBICnDrV8vd5Ng4DbAj2JpMJKSkpyMrKQl5e\nHtavX49jx441OqZv377YuXMnjh49ildeeQUzZ86UrMHMsg4daD51ba345z59mmZ8aGWbR3dz003W\ng31FBQd7ZkOwz83NRXBwMIKCguDt7Y2kpCRkZmY2OmbYsGHo8MdP09ChQ1FUVCRNa1mLPD2p8mVV\nlfjnNhioDounp/jnZs5rLdhzGocBNiyqKi4uRmCDeVt6vR779+9v8fiVK1di7NixFr83f/78uq9j\nY2MRGxtre0tZq8ypHDF/sS9fpoVU48eLd04mLmvBvqqKBmg5Bec+cnJykGPPBsM2ajXY6+xYY/3d\nd9/h448/xu7duy1+v2GwZ+IzB/s+fcQ7Z24u/f3SS+Kdk4mre3fauObyZfp019D331OJCy1VgHV3\nTTvCCxYsEOW8raZxAgICYGhQaclgMECv1zc77ujRo5gxYwY2b96MTlrZD9DFSFHmOCUFmDGDAgZz\nTTodFacrKGj+vexsYPRo2ZvEXFCrwT46Ohr5+fkoLCyE0WhERkYGEhISGh1z+vRpjB8/HmvWrEFw\ncLBkjWXWdeok7sKqw4eBY8cACxOwmIvx8qKaUE1xsGdmrQZ7Ly8vpKWlIS4uDhEREZg0aRLCw8OR\nnp6O9PR0AMDrr7+O8vJyPPnkk4iKisIQrVUhcxFiT7/8xz9oq0f+oOb6xowBNmxo/NzZszS4fuut\nyrSJuRadIAiCLBfS6SDTpTTr2WdppeRzzzl/roICoG9f4L//5eJn7uDkSerBN0zlLF5Mm5usXatc\nu5jzxIqdvIJWRcTK2X/+OQX6QYM40LuLbt0alzquqQGWLgVmz1auTcy1cLBXEbFy9rNm0d9ffun8\nuZg8/PyA338HfvuNHm/cSLu1cUaVmXGwVxGxcvYdOgA//8zbD7oTnQ548EGqkSMIwKJFwLx5SreK\nuRIO9ioiVrDnWiruKTqaUjl799JCqiaT5pjGqW5bQi0TK2fPwd49detGgX7fPmDOHC5vwRrjnr2K\niLEPbXU1cO0a4OsrTpuYfLp1A7ZsoSqlU6cq3RrmajjYq4heDxQXU87WUZcu0WCfHVUymIsYPhxY\ntgzIyWleNoExDvYq4uNDv+Tnzjl+DqOR66i4q27dqLyFB/9WMwv4x0JlAgOp/ryjampo6T1jTF04\n2KtM797OBXuTiYM9Y2rEwV5lnA323LNnTJ042KuMvz8VwHIUB3vG1ImDvcr4+ABXrzr++poanp/N\nmBpxsFcZHx/atchR3LNnTJ042KuMs8GeB2gZUycO9iojRhqHgz1j6sPBXmU4jcMYs4SDvcqIEex5\ngJYx9eFgrzKcs2eMWcLBXmV8fGjHIkdxGocxdeJgrzL+/kBJieOVLznYM6ZOHOxVplMnKk/s6CYm\nHOwZUycO9iqj01F9HIPBsdfzAC1j6sTBXoV8fR0fpOUBWsbUiYO9CrVr5/jCKk7jMKZOHOxVqF07\nx3v2HOwZUycO9irkbM+ec/aMqQ8HexUyB/u1a2kDcXtwz54xdbIp2GdlZSEsLAwhISFITU1t9v1f\nfvkFw4YNww033IBFixaJ3khmHx8f4Phx4LHHgMOH7XstD9Aypk6t/lqbTCakpKQgOzsbAQEBiImJ\nQUJCAsLDw+uO6dKlC5YtW4ZNmzZJ2lhmm3btgA8+oMB97px9r62u5mDPmBq12rPPzc1FcHAwgoKC\n4O3tjaSkJGRmZjY6plu3boiOjoa3t7dkDWW2a9cOqKoC4uKA8+fte211NdCmjTTtYowpp9VgX1xc\njMDAwLrHer0excXFkjaKOefGG4GJE4GYGPt79kYjB3vG1KjVD+w6nU60i82fP7/u69jYWMTGxop2\nblZv1iygthb48EP7e/ZGI8Af0BhTTk5ODnJyckQ/b6vBPiAgAIYGa+8NBgP0er1DF2sY7Jl0fH3p\n7zZtKHjbg3v2jCmraUd4wYIFopy31TROdHQ08vPzUVhYCKPRiIyMDCQkJFg8VnC01CKThCPBnnP2\njKlTqz17Ly8vpKWlIS4uDiaTCdOnT0d4eDjS09MBAMnJyThz5gxiYmJQVVUFDw8PLF26FHl5eWjf\nvr3k/wDWsjZtgOvX7XsN9+wZUyebJtnFx8cjPj6+0XPJycl1X/v7+zdK9TDX4Ggah3P2jKkPr6BV\nMc7ZM8bMONirGOfsGWNmHOxVjHv2jDEzDvYqxsGeMWbGwV7FeICWMWbGwV7FuGfPGDPjYK9ijsyz\n5wFaxtSJg72KOdKzr6qqL7fAGFMPDvYq5kjP3mAAeveWpj2MMeVwsFexrl2pxLGtJYuuXwfKygB/\nf2nbxRiTHwd7FevShXadsrWm/ddfA7feyhuOM6ZGHOxV7pZbgB9+sO3YPXuAMWOkbQ9jTBkc7FVu\n3Djgyy9tO/bYMaDB1sKMMRXRCTIVodfpdFzvXgEFBcDQoUBpqfX0zPXrQM+ewE8/AQEB8rWPMWad\nWLGTe/Yq16cP0KsXsHev9eO++QYYMIADPWNqxcFeA8aOBbZts37Mvn3A3XfL0x7GmPw42GvAmDHA\nf/5j/ZhffuF8PWNqxsFeA4YPp5WxLc3KEQRK8wweLG+7GGPy4WCvAZ6ewJ//DKxfb/n7P/xAJRJC\nQuRtF2NMPhzsNSIpCcjIAGpqmn8vIwN4+GFAp5O/XYwxeXCw14iICOCmm4Cvvmr8fG0t8K9/0ZsB\nY0y9ONhryF//CqSlNX5u3z7Azw8YOFCZNjHG5MHBXkMmTgR+/plWypqtXQtMnqxcmxhj8uAVtBrz\nyitARQWwbBlw7Rqg1wM//kgpHsaY6xErdnKw15iiIiqOVlhINXPWrQO2b1e6VYyxlnCwZw57/HHa\nVDw3F3jjDVphyxhzTRzsmcOqqoDISNqkZPduwINHbhhzWRzsmVNqa2lePc+tZ8y1yVb1MisrC2Fh\nYQgJCUFqaqrFY2bNmoWQkBBERkbi0KFDTjdK7XJycpRuAjw8XCPQu8K9cBV8L+rxvRCf1WBvMpmQ\nkpKCrKws5OXlYf369TjWcN4egK1bt+LXX39Ffn4+PvroIzz55JOSNlgN+Ae5Ht+Lenwv6vG9EJ/V\nYJ+bm4vg4GAEBQXB29sbSUlJyMzMbHTM5s2b8dhjjwEAhg4dioqKCpw9e1a6FjPGGLOb1WBfXFyM\nwMDAusd6vR7FxcWtHlNUVCRyMxljjDnDy9o3dTYmdZsOHrT0OlvPpwULFixQugkug+9FPb4X9fhe\niMtqsA8ICIDBYKh7bDAYoNfrrR5TVFSEAAt72/FMHMYYU47VNE50dDTy8/NRWFgIo9GIjIwMJCQk\nNDomISEBq1evBgDs27cPHTt2RI8ePaRrMWOMMbtZ7dl7eXkhLS0NcXFxMJlMmD59OsLDw5Geng4A\nSE5OxtixY7F161YEBwfD19cXn3zyiSwNZ4wxZgdBYtu2bRNCQ0OF4OBg4a233pL6coo7ffq0EBsb\nK0RERAgDBgwQli5dKgiCIFy8eFEYPXq0EBISItxzzz1CeXl53WsWLlwoBAcHC6GhocL27duVarpk\nampqhEGDBgn333+/IAjavRfl5eXChAkThLCwMCE8PFzYt2+fZu/FwoULhYiICGHgwIHC5MmThWvX\nrmnmXkybNk3o3r27MHDgwLrnHPm3//DDD8LAgQOF4OBgYdasWa1eV9JgX1NTI/Tr108oKCgQjEaj\nEBkZKeTl5Ul5ScWVlpYKhw4dEgRBEC5duiT0799fyMvLE5577jkhNTVVEARBeOutt4QXXnhBEARB\n+Pnnn4XIyEjBaDQKBQUFQr9+/QSTyaRY+6WwaNEi4ZFHHhHGjRsnCIKg2XsxZcoUYeXKlYIgCEJ1\ndbVQUVGhyXtRUFAg9OnTR7h27ZogCILw8MMPC59++qlm7sXOnTuFgwcPNgr29vzba2trBUEQhJiY\nGGH//v2CIAhCfHy8sG3bNqvXlTTY79mzR4iLi6t7/OabbwpvvvmmlJd0OQ888IDwzTffCKGhocKZ\nM2cEQaA3hNDQUEEQ6F274SeeuLg4Ye/evYq0VQoGg0EYNWqUsGPHjrqevRbvRUVFhdCnT59mz2vx\nXly8eFHo37+/UFZWJlRXVwv333+/8PXXX2vqXhQUFDQK9vb+20tKSoSwsLC659evXy8kJydbvaak\nJbBsmaevZoWFhTh06BCGDh2Ks2fP1g1c9+jRo27hWUlJSaMZTmq7R3PnzsXbb78NjwbV1rR4LwoK\nCtCtWzdMmzYNgwcPxowZM/D7779r8l507twZzzzzDHr37o1evXqhY8eOuOeeezR5L8zs/bc3fT4g\nIKDVeyJpsNfyvPrLly9jwoQJWLp0Kfz8/Bp9T6fTWb03arlvW7ZsQffu3REVFdXi1Fut3Iuamhoc\nPHgQTz31FA4ePAhfX1+89dZbjY7Ryr04efIklixZgsLCQpSUlODy5ctYs2ZNo2O0ci8sae3f7ihJ\ng70t8/TVqLq6GhMmTMCjjz6KxMREAPRufebMGQBAaWkpunfvDsD2dQruaM+ePdi8eTP69OmDyZMn\nY8eOHXj00Uc1eS/0ej30ej1iYmIAABMnTsTBgwfh7++vuXvxww8/4Pbbb0eXLl3g5eWF8ePHY+/e\nvZq8F2b2/E7o9XoEBAQ0qlRgyz2RNNjbMk9fbQRBwPTp0xEREYE5c+bUPZ+QkIBVq1YBAFatWlX3\nJpCQkIANGzbAaDSioKAA+fn5GDJkiCJtF9vChQthMBhQUFCADRs24O6778Znn32myXvh7++PwMBA\nnDhxAgCQnZ2NAQMGYNy4cZq7F2FhYdi3bx+uXr0KQRCQnZ2NiIgITd4LM3t/J/z9/XHjjTdi//79\nEAQBn332Wd1rWiTWgENLtm7dKvTv31/o16+fsHDhQqkvp7hdu3YJOp1OiIyMFAYNGiQMGjRI2LZt\nm3Dx4kVh1KhRFqdWvfHGG0K/fv2E0NBQISsrS8HWSycnJ6duNo5W78Xhw4eF6Oho4ZZbbhEefPBB\noaKiQrP3IjU1tW7q5ZQpUwSj0aiZe5GUlCT07NlT8Pb2FvR6vfDxxx879G83T73s16+f8PTTT7d6\nXdk2L2GMMaYc3pCOMcY0gIM9Y4xpAAd7xhjTAA72jDGmARzsGWNMAzjYM8aYBvw/SpkYbA8u6kAA\nAAAASUVORK5CYII=\n" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "result = [stats.scoreatpercentile(abs(window(combined,r,i)-template),90) for i in range(n)]\n", "plot(result)\n", "print argmin(result)" ] }, { "cell_type": "markdown", "id": "ca04a37a", "metadata": {}, "source": [ "## Templates with Constant Offsets" ] }, { "cell_type": "markdown", "id": "47e967cb", "metadata": {}, "source": [ "We might also be interested in matching regardless of a constant offset of the template.\n", "We can achieve this by subtracting out, for example, the difference between the average of the window and template.\n", "\n" ] }, { "cell_type": "code", "execution_count": 124, "id": "11ed22c4", "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "300\n" ] }, { "data": { "image/png": "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\n" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "result = [sum(abs(window(combined,r,i)-template-(mean(window(combined,r,i))-mean(template)))) for i in range(n)]\n", "plot(result)\n", "print argmin(result)" ] }, { "cell_type": "markdown", "id": "733884bc", "metadata": {}, "source": [ "# Mathematical Morphology" ] }, { "cell_type": "markdown", "id": "42f29af3", "metadata": {}, "source": [ "We used the maximum of the difference between the window and the signal as a quality of match measure:\n", "\n", "$$ d_i = \\max_j |w^{(i)}_j-t_j| $$\n", "\n", "We can actually break this up into two pieces to get a closely related measure. First, we measure how far above the template the signal is:\n", "\n", "$$ d_i = \\max_j (w^{(i)}_j-t_j) $$\n", "\n", "We can do the equivalent for the minimum:\n", "\n", "$$ d_i = \\min_j (w^{(i)}_j-t_j) $$\n", "\n", "You can think of this as taking the template and moving it up/down as far as possible until it touches the graph of the signal somewhere." ] }, { "cell_type": "code", "execution_count": 146, "id": "056b528d", "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "163\n" ] }, { "data": { "image/png": "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\n" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# upper difference\n", "upper = array([amax(window(combined,r,i)-template) for i in range(n)])\n", "plot(result)\n", "print argmin(result)" ] }, { "cell_type": "code", "execution_count": 147, "id": "7b34680c", "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "163\n" ] }, { "data": { "image/png": "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\n" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# lower difference\n", "lower = array([amin(window(combined,r,i)-template) for i in range(n)])\n", "plot(result)\n", "print argmin(result)" ] }, { "cell_type": "markdown", "id": "25b86d0d", "metadata": {}, "source": [ "We can now find a quality of match as a difference between the upper and lower differences.\n", "\n", "Note that this is not exactly the same as the maximum of the differences over the window, but it also serves to localize the template.\n", "\n" ] }, { "cell_type": "code", "execution_count": 150, "id": "42a4f56f", "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "301\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXsAAAD5CAYAAADGMZVsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnXd4FFXbxu9NdtN7JSRBIAkptIQqKhJpIZQgUgQLJHQU\nsQD6WUBAXwR99QVFEBEIgkonoYYeivQuhE5Cekiy6b3M98dxUrfvzOxu9vyuay/I7sw5J5Pde5+5\nz3OeI2IYhgGFQqFQWjQmuh4AhUKhUPiHij2FQqEYAVTsKRQKxQigYk+hUChGABV7CoVCMQKo2FMo\nFIoRIBaqI5FIJFRXFAqF0qLgIkNe0MieYRj6YBh8+eWXOh+DvjzotaDXgl4LxQ+uoDYOhUKhGAFU\n7CkUCsUIoGKvA0JDQ3U9BL2BXot66LWoh14L7hExXJpCijoSiTj1nygUCsUY4Eo7aWRPoVAoRgAV\newqFQjECqNhTKBSKEUDFnkKhUIwAKvYUCoViBFCxp1AoFCOAij2FQqEYAVTsKRQKxQigYk+hUChG\nABV7CoXCG4mJwPDhQEWFrkdCoWJPoVB4Y8MG4MABYNcuXY+EQmvjUCgU3hgyBLCxAWpqgD17dD0a\nw4Qr7aRiT6FQeIFhABcX4OxZ4PnngZQUwM5O16MyPGghNAqFotckJgKWlkBgIPDyy8D+/boekXFD\nxZ5CofDC5ctAz57k/2PHAtu363Y8xo5SsZ88eTLc3d3RuXNnucfMmTMHfn5+6Nq1K65fv87pACkU\nimHSUOwjIoCTJ4HCQt2OyZhRKvZRUVGIi4uT+/rBgwfx6NEjPHz4EL/++itmzZrF6QApFIphcuVK\nvdg7OBArZ98+3Y7JmFEq9n379oWjo6Pc1/fu3YtJkyYBAHr37o38/HxkZWVxN0IKhWJwMAxw8yYQ\nHFz/3Lhx1MrRJWJtG0hLS4O3t3fdz15eXkhNTYW7u3uzYxctWlT3/9DQULrPJIXSQklOJpOzrq71\nz0VEALNnEyuHZuXIJz4+HvHx8Zy3q7XYA2iWFiQSiWQe11DsKRRKy+XmTaBr18bP2dsD/foBe/cC\nb72lm3EZAk0D4cWLF3PSrtbZOJ6enkhJSan7OTU1FZ6ento2S6FQDJhbt5qLPUCycnbsEH48FA7E\nPiIiAr///jsA4MKFC3BwcJBp4VAoFONBVmQPECsnPh4oKBB8SEaPUhtnwoQJOHXqFHJycuDt7Y3F\nixejqqoKADBjxgwMHToUBw8ehK+vL6ytrbFx40beB02hUPSbmzcBWa4ta+Xs20etHKGh5RIoFAqn\nlJSQidnCQkAsI5zcsoVk5ezdK/zYDBFaLoFCoegliYlA27ayhR4ARowATp2iVo7QULGnUCickpYG\nKMrRsLcHQkNpZC80VOwpFAqnKBN7gCywolk5wkLFnkKhcIoqYs9aOfn5woyJQsWeQqFwjCpib2cH\nvPIKtXKEhIo9hULhlLQ0wMtL+XF0gZWwULGnUCicokpkDxAr5/RpauUIBRV7CoXCKaqKPbVyhIWK\nPYVC4YzKShKpu7mpdjwteywcVOwpFApnpKcD7u6AiYrKMmIEcOYMtXKEgIo9hULhDFUtHBZbW6B/\nfyA2lr8xUQhU7CkUCmeoK/YAzcoRCir2FAqFMzQRe2rlCAMVewqFwhmaiD21coSBij2FQuEMTcQe\noFk5QkDFnkKhcIamYj98OHD2LJCXx/2YKAQq9hQKhTMyMwEPD/XPs7UFBgygVg6fULGnUCickZVF\n8uw1gVo5/EK3JaRQKJxQXk42JikvB0Qi9c8vLiYWUFIS4OjI+fAMFrotIYVC0SuyskiZBE2EHgBs\nbICBA4GYGG7HRSFQsadQKJzw7JnmFg4LXWDFH1TsKRQKJ2jj17MMHw78/TcglXIzJko9VOwpFAon\ncCH2rJVDs3K4R6zrAQjBqVPAp5/y03ZgIPDLL4BEwk/7FIqhwIXYAyQrJzoaiIrSvi1KPUYh9mvW\nAIMHkweXMAywYAFpf84cbtumUAyNrCygbVvt2xk2DJg+nVg5Tk7at0chGIXYJyQAn3wChIRw3/aS\nJeSNScWeYuxkZQG9e2vfjo0NMGgQycqZPFn79igEo/DsU1MBb29+2n7hBaCoCLhzh5/2KRRDgSsb\nB6BZOXzQ4sW+pAQoLQWcnflp38QEGDOGvjEpFC5SL1mGDQPOnaNZOVzS4sU+LQ3w8tJ8oYcq0GXe\nFAq3kb2NDZljowusuKPFiz2fFg5L797UyqEYN1VVQEEBtxOqY8fSIIpLjELsNSm5qg4mJvSNSTFu\nsrOJVWpqyl2bw4YB588DubnctalLCguB33/XXf8tXuyzs0m9Dr4ZN4749rTWG8UY4dLCYbG2bllW\nzrJlwKRJwIULuum/xade5ucDDg7899O7N6nad+cO0KkT//1RKPoEH2IPkCDqt9+AKVO4b5tL9u4F\nNm2S/zrDACdPkv12Y2KA558XbmwsRiH2fn789yMS1aeLUbGnGBt8if3QocDUqcTK4SujTlvy8oBp\n04ClSxUHlp98Qv6dPJlE+ULT4sW+oIDU2BaCsWPJEu9Fi/jN/qFQ9A22vDHXWFsDYWHAnj1E9PWR\nHTuAfv1Uu/uorSVfXI8fAz4+/I+tIS3esxfKxgGIlVNaSrNyKMZHejp/iRD6vsBqxw5iN6mCiQmp\n7LlvH79jktm38F0Ki5BiLxKRBVY0K4dibPCZ9TZ0KJnUzMnhp31tyM4GLl0iY1SV0FCyYExoWrzY\nC2njADQrh2KcpKXxJ/aslaOPWTl79gBDhgBWVqqf0707cO0af2OSR4sXeyEjewDo1YtYObdvC9cn\nhaJr+BR7QH9XqW/frrqFw9KhA5njyM/nZ0zyMAqxFzKyb5iVQ6EYA7W1QGYm0Lo1f30MHQpcvKhf\nVk52NnD5MhAert55pqYkY++ff/gZlzxatNjX1pLcdzs7YftlV9NSK4diDDx7RgIqc3P++rCyInbJ\nnj389aEuu3cToVfHwmHx8SEZOUKiVOzj4uIQEBAAPz8/LF++vNnrOTk5GDJkCIKDg9GpUydER0fz\nMU6NKCwkfh+XS7hVoVcvoKyMWjkU4+DBA8DXl/9+2PkwfWHHDhLYaYLeiX1NTQ1mz56NuLg4JCQk\n4K+//sLdu3cbHbNq1SqEhITgxo0biI+Px9y5c1FdXc3roFWlqAiwtRW+X5FIfz1GCoVLfvgB2LAB\n6NiR/77Cw0nmS3Y2/30p49kzzSwcFr0T+0uXLsHX1xdt27aFRCLB+PHjEdtkJ2APDw8UFhYCAAoL\nC+Hs7AyxWD/WapWWksheF7C+PbVyKC0VqRSYO5eUCejZk//+9MnK2bOHzCNoYuEAROyfPOF2TMpQ\nqMppaWnwblAf2MvLCxcvXmx0zLRp09C/f3+0bt0aRUVF2K4gnF20aFHd/0NDQxEaGqrZqFWkpER3\nYt+zJ1BeTiZhunTRzRgoFD6JiSHia2urXp65NowdC/zyC9kKVJds3w68+67m57dvL1/s4+PjER8f\nr3njclAo9iIV1vwvXboUwcHBiI+Px+PHjzFo0CDcvHkTtjL8k4ZiLwS6FPuGWTlU7CktkR07gMhI\n4PXXheszPJyUJcjOBlxdheu3Ic+eAVevam7hAKSOUEEBCQgtLBq/1jQQXrx4seYdNUChjePp6YmU\nlJS6n1NSUuDl5dXomHPnzmHsv7MUPj4+aNeuHe7fv8/J4LSlpETz2ywuYH17auVQWhpSKVkFOmyY\nsP3qg5XDZuFYWmrehokJWZeQmsrduJT2qejFHj164OHDh0hKSkJlZSW2bduGiIiIRscEBATg2LFj\nAICsrCzcv38f7du352/EaqBLzx4AevQAKiuFz6elUPgmJgYYNIhsHyg0uk5+UKcWjiK8vYEGsTTv\nKBR7sViMVatWISwsDEFBQXj99dcRGBiItWvXYu3atQCAzz77DFeuXEHXrl0xcOBAfPvtt3Dicm8y\nLdCljQPUWzk0K4fS0ti+XfO0Q20JDweuXNFNVk5WFrFwhgzRvi1vbyA5Wft2VEXEMMKYDCKRCAJ1\nVccvvwDXrwP/fi/phMuXgbfeAu7do2WPKS2D3FwywZiWppvIHgAmTCAFxWbMELbfNWuAM2eAP//U\nvq3PPiO21BdfKD6OK+1s0Stode3ZA/VWzq1buh0HhcIVurRwWHRVkkSbhVRN0Ssbx9DRtWcP0Fo5\nlJYHV561NrBWzrNnwvWZlUWqVXJh4QDC2zgtWux17dmz0KwcSkshNxc4f174LJymWFoSwRcyK2f3\nbrKeQJssnIbQyJ5D9EXsu3cHqquplUMxfGJigMGD9eNzJXRWjibljBXRpg0Ve87QB88eoFk5lJaD\nLrNwmjJkCLFVhLByMjOBGze4s3AAss9GTQ1ZXCUE+lHEhif0wbNnmTQJeOkl4MQJfto3NyfZRwEB\n/LTPNbm55IuYq1tiCv/k5pLtAXfv1vVICKyVs3s3MHMmv32xFk7T1a7aIBLVWzlC7LnRosVeX2wc\nAAgK4nfzhe3bgZ9+An7+mZ/2ueT4cRIhvfgiwEMJEApP7NmjPxYOy7hxwI8/8i/2O3YAH3zAfbus\nldOpE/dtN6XFi70+2Dgsfn7kwQciEfDOO/y0zSXFxcQGOHIEmDiR1PwX4o1O0Z7t24Fp03Q9isaE\nhZH6PFlZpN4MH7AWTlgY920LOUnboj370lL9Ens+CQgAHj3S/4yf48fJ2oNXXtG/zSgo8snJIXem\nQlW3VBVLS5IZxKe1tHs36YNLC4dFyPTLFi32ZWXG4wk7OJDiSnl5uh6JYi5fBvr0If+nNf8Nhz17\nSGSrTxYOC9/rWPiclBYyI6fFi72xRPYAeeMIuUhDE27fBjp3Jv/v3ZtYbXfu6HZMFOXow0IqeQwZ\nQsqiZGVx33ZmJnDzJj8WDkBtHM4wpsgeAFxcSMaEPvP0KdC2Lfk/TUk1DPTVwmGxsCBj48PK2bWL\nPwsHoDYOZxij2POV7cMVT58Czz1X/zNdXaz/7NlDomd9vkvma4EV33c0Hh783JHIgop9C8LZWb8j\n+6IioKKCfCmxsNs33r6tu3FRFKNPC6nkERZGMmYyM7lrMyODWDiDB3PXZlNsbYGqKpJMwjctNvWS\nYYxP7IWK7J89A7Ztkx+Nm5iQreqabhv39CmZV2hY6rmhlcN6+RT9ITsbuHQJiI3V9UgUY2FRn5XD\nVQryrl3A8OH8WTgAef+7uZHr3PCOlw9abGRfWQmIxYCpqa5HIhxCRfYLFwJ795JUT1mPw4dJDf+m\nXwZNLRwWauXoL4Zg4bBwnZXDZTljRbi5CVPyocVG9qWlxhXVAySyv3yZ/37+/hv4/XcgJET269XV\nJErv25dEWW+8QZ5PSJBdzqFhzf+uXfkbNx9cu0Ym2XS1+TXf7NjB/+pUrmAXWGVmAq1aaddWRgZ5\nP/Jp4bAIJfYGHdlnZ8tPWzK2tEtAmGyc6moSvfv7yz9GLAZOngTmzwfef58If5cuwPLl5N+mGGpW\nTm0tqWg6erSuR8IPrIUTHq7rkaiGhQWxXbjIytm1Cxgxgl8Lh4WKvQoMGUI84Jqa5q8Zm18PEBuH\nb8/+yROSQaDsi7RVK2DkSLId4x9/AFu2kC+At9+WfTy7mtaQrJy//ybb8129KswEm9Ds2UOE3pCC\nJq6CBiEnpanYK+HpU/IICgLOnm3+urGKPd+RfUICueaq4uxMovkuXUiEL5HIPo6t+X/zJjfjFILt\n24GoKPJ7CWGfCQ0XgpdWmAbX71xxMvEkN4NSwuDB5D2UkaF5G+npJDuMawvnq1NfITQ6tNl+sq6u\nVOwVsmcP8OqrwJtvyv4mN0axt7fnvzb2kyeAjw/37YpEwm9GoQ01NcDOnUQMu3ZteauAs7PJtn/a\nWjh77+9FLVOLqNgoFFUUcTM4BXBh5bBZOObm3I3rUtol/Hz5Z5xLOYeE7IRGrzk7A1Ipd33Jw2DF\n/tQpYOBAIvj79jW//TdWsS8s5NcKSUkhE5J8wN6CG4KVc/YsqbLo7w8EBgJ37+p6RNyyezc3WTi3\nnt3Con6LMKD9AMw/Op+bwSlB26CB64VU5dXlmBQzCT+G/4jxncbjfOr5Rq87OVGxlwvDkA/bSy+R\nD5qZWfPbf2MUe7GY/M7Fxfz1kZJC5kn4oFs38re9cYOf9rmk4RZ13t5Aaqpux8M1W7dyI3j3cu4h\n0DUQPwz+AQcfHsTRx0e1b1QJgweTeZQiDW4kWAtn0CDuxvNl/Jfo5NYJ4zqOQ8/WPXE5vbHnR8Ve\nAU+ekNs1Ly9y+z9iBMn7bogxpl4CpPplfj5/7fMZ2RuKlVNTQ271WT/bw0M7j1goNm8mcyZisfJH\nZiY3tXDuZt9FgEsA7C3ssW7EOkzdNxWFFYXaN6wAc3Mycf7okfrnslk4XFk4F1IvYNONTfh5KNlV\nqKdnT1xOay72QlSrNUixf/y48SYgERHEymmIMUb2AP9in5zMn9gDhrHA6swZoHXr+vegoYj9ihXA\nwYOkPIWyx5072qcd5pXloaSqBJ62ngCAMN8wDPYZjHlH5nHw2yjG1xd4+FD987jMwimvLkdUbBR+\nCv8JbtZuAIDgVsG4l3MPZVVldcc5OtLIXi6JiUC7dvU/v/ACufUqq79+RplnDxDfni+xr6wk2T4e\nHvy0DwDBwSTCv3aNvz60paGFA5DrkZmp319Q1dXkM9K3r2qRvQkHynAv5x4CXAIgalAf4/vB3+Pw\n48M48viI9h0ooHVr9QuMpaWRLzmuLJyFJxeis1tnjO1Y/+1hIbZAgEsAbmTWe5WsjcP3+6dFiL25\nOdChQ+NiWsYc2fOVkZOWRvLn+SxBwVo5+rqDVXV1YwsHIBGwtbV+F6FLTiZ/OyEWCbHcy7mHQJfA\nRs/ZmdvhtxG/Ydq+aSgo5y91zMWFZBSpA5cWzoXUC9h8a3OdfdOQXp69Gvn2lpbkfd8wWOUDgxT7\npCTiyTUkJIRsYMBizGLPV2TPp1/fEH22ck6fJtegafqpvls5ycn8F9pqyr1cEtk3ZZDPIAzxHYK5\nR+by1rerq/oLDLnKwimrKkNkTCR+Cv8JrtbN62gEtwrGraxbjZ4TYpLWYMWe3QCDJSSkcRYHFXvu\nSU0VRuy7diVWwtWr/PelLk0tHJZWrbgtr8s1UikRFCFhJ2dl8d2g73DsyTHEPYrjpW91K8ByaeEs\njF+Irq26YkzQGJmv+zv7437u/UbPCeHbG6TYp6UBnp6Nn6ORPYFPz56LAlOqoK+1cqqrSf65rAk8\nZ2f93v83L094sX+Q+wD+zrKLKNmZ2+G3iN8wfd90XuwcV1f1bJydO0mih5mZdv2eTzmPLbe2YFX4\nKrnH+Lv4435OY7EXIiPH4MS+tpZMvDQVnc6dyTcze+tvrGLPp2efkyNcdUd9tHLi48kdZcP5Ihah\ncqU1RSol0aNQVNdWIyk/CT5O8pdbD2w/EMM6DMNHRz7ivH91I3suLJyyqjJExUZhVfgqmfYNi4eN\nB8qry5FXVq/u1MaRgVQK2Ng0n0RxdCTfymyNCZpnzz3Z2Y13meKTLl3I3/jKFWH6UwV5Fg4gXPqc\npggd2ScXJMPdxh0WYsUzwt8O/BYnEk/g4MODnPavTmSfmkpqPg0cqF2fC04uQHCrYIwOUlwGVSQS\nwc/ZDw+l9bmhQoi9wdWzz8yUn/rn50dya93djTf1kk+xFzKyb7jAqmdPYfpURFUVqcck78vHyal5\nqt+PP6pWIM3aGvjyS35TWqVSsghRKB5JH8HXyVfpcbbmtlgfsR6TYibhn1n/wMHCgZP+2aKADNN4\nZzRZ7NpFKrRqY+GcSzmHP//5E7dm3VJ+MIA29m2QWpiKXp69ANDIXiYZGfJ944YLKYzZxmkJkT2g\nX7VyTp4kGTjyMlqaeq6HDgErV5IJv8GDFT8KC4H//Iff8Qsd2T/MfQg/Jz/lBwLo364/Ivwj8OHh\nDznr38yMfP4LVVisq+1CqtKqUkTGROLnoT/DxUq1D4iXnRdSC+trbDg68p+6a3CRfUaG8sgeMF6x\n53OCVsjIHiDzMJaWZAON3r2F61cWiiwcoHlktn498PnnwMSJytsOCSEF/fhEaM/+oVR1sQeA5QOX\no8uaLjjw4ACGdRjGyRjYwMfeXv4xqalkzwVtLJwvTnyBHq17YFTgKJXP8bT1bCb2ycmaj0EVDC6y\nV2TjeHmRQkaA8Yp9S4rs9WWBVVUVEBMDjJGdSQegsWdfXAwcPaq6gAcFkfc1n+WphY7sVbVxWGzM\nbLBh5AbM2D+j0cSlNjg6Kv8saJuFczb5LLbe3oqfwn9S6zxZkT2fZU4AAxR7RTaOu3t9rrOxir2d\nnWbV/pRRXU3ESOj0PX3Iyjl+nKzQVlTts2Fkf+AAKeGh6rUyMWl8V8oHOonsnVWP7AEgtG0oXg14\nFR8c/oCTMTg4KE9n1CYLp7SqFFGxUVg9bDWcrZzVOtfLzgtpRWl1Pzs60tTLZiiK7Fu1qp8kM1ax\nt7XlR+ylUvLh4bNUgiw6diQTmBcvCttvQ1TxdBt69pp4wD4+pMAfXxQWKrYzuKS6thpP85+ivWN7\n5Qc3YdnAZTibfBb77u9TfrASlN3lpqQQC2fAAM3a//zE5+jl2QuvBqjvwcmK7KnYN0FZZM+KvbGm\nXlpZARUVJBLnEqH9ehZdlz2urARiYxVbOEB9ZF9cDBw7pr4H7+7O79Z0xcXkS1MIUgtT4WrtqjTt\nUhY2ZjbYELEBMw/MhLRMu/QUZdaINlk4Z56ewfY72/HjkB81GpunrSfSCtPqtiikYt8EhgHu35e/\nLZ6bG/GVa2uNN7IXicg6BK6j++xs3Yg9QMR+507ydxWa48eBgADlZSIsLeu3KlTHwmHhc9Ppmhry\npSXU5yG9KL2urLEm9GvbD6MDR+P9uPe1GocyG0fZpLs8SqtKMXnvZKweqr59w2IpsYS1mTVyy0gK\njl6IfVxcHAICAuDn54fly5fLPCY+Ph4hISHo1KkTQkND1R5ESQkwdSrQowfZeFreg93JSJ53amZG\nbAyp1Hjz7AF+fPucHGEnZxvSsSP5u+rCylFVEEQiIvBr12omIOou71eHkhIS1SvLN+eKjKIMtLZt\nrVUb3wz4BudTzmPv/b3KD5aDIhsnJYUEjppYOJ8d/wy9PXtjZMBIjccGECsnpSAFQP3Kdz4DGoWp\nlzU1NZg9ezaOHTsGT09P9OzZExEREQgMrC9bmp+fj3fffReHDx+Gl5cXctQtNQfg66/JG331auWe\nsIuL4jctW5DKWCN7gIi9KvnF6tAwsv/u7+/wQPoA60as47YTBbBWTp8+gnVZZ+F8/bXs14sqijBw\n80B8P/h7vNTmJZiZARcukAladeEzsmfFXijSi9LhYavdCjFrM2tsHLkR43eNx4veL2oUQTs6kl3t\nZLFzJ7HaJBL12jzz9Ax2JOzAP7P+UXs8TfGw8UBmMckokUiIXhUV8Te3olDsL126BF9fX7T9t8Tk\n+PHjERsb20js//zzT4wePRpe/y7Pc1Eh/Hv6lKRI9ulDRHnNGlKLnosVfuyHxpjFno9JWjayZxgG\ny/5eBmmZFEN8hihdGs4VY8eSBUjff8/NxhqqcPQouatoWnSPZf7R+biUdgk/X/4ZL7V5CSUlZNGV\nJhlLLUnsM4oz4GGj/XLgvs/1xdigsZgTNwd/vPaH2ucrsnG2byerltWhpLIEUbFRWDNsDZwstU9L\na2XTqk7sgXorhy+xV/ixSUtLg3cDs9LLywtpaWmNjnn48CGkUileeeUV9OjRA5s3b1ba6ahRxNe8\nd4+sNOzenbul3K6upCqmWCx85oi+wGdkn1qYComJBH9P/huzD81GdglP3kMTgoLIh/f8eUG6A6DY\nwjn25BgOPjyIq9Ov4szTMwDIKtsLFzTri08bp7iYzOMIRXpRutY2DsvSAUtxKe0SYu7FqH2uPBsn\nOZmkuapr4Xx24jP08e6DCP8ItcciC3lizxcKI3uRCiZfVVUVrl27huPHj6O0tBR9+vTB888/Dz+/\n5jm2ixYtQnY2STGbODEU338fiuJibjYMYHFxIX6csUb1AInsuRb7nBxSoyYhOwGd3DrhBe8X8Gbn\nNzH70GxsG7ON287kwC6wevFF/vuqqCCb2H/zTfPXCisKMXXvVKwbsQ4hrUJQVFmEnNIcdO6s+aQG\njexlYyWxwsaRGzFuxzj0bdNXLTtHXjbOzp0kC0cdC+dU0insTNjJiX3D0sqmFRLzE+t+ZsU+Pj4e\n8fHxnPXDojCy9/T0REpKSt3PKSkpdXYNi7e3NwYPHgxLS0s4Ozvj5Zdfxs2bN2W2t2jRIri6LsKU\nKYvw1Veh+OsvsgHya69x8Jv8i6sr+eY2ZrHnY4KWjewTshMQ5BoEAPjqla9wM/Mmdibs5LYzOYwd\nS8ReiKycI0dI5c3WMgLU+UfnY2D7gQjzDYNIJEJnt864/ex28wPVwNGR/M2qqrRqRia68Oy5iuwB\n4KU2L2F8p/F479B7ap0nz8ZRdyFVSWUJJu+djF+G/cKJfcPS0LMH6r+cQkNDsWjRoroHVygU+x49\neuDhw4dISkpCZWUltm3bhoiIxrcwI0eOxNmzZ1FTU4PS0lJcvHgRQUFBMttjmPpb4zZtyJvQzIzb\nlD4XFyr2fET2bKmEhJx6sbeUWGLjyI1479B7gtg5gYHEDz93jveu5Fo4Rx8fxaGHh/D94O/rnvN1\n8sWTPDkzgSpiYkK+pPkomSB4ZF+UofUEbVO+7v81rqRfwe67u1U+R5aNw1o4/fur3vf/Hf8/vNTm\nJYzwH6H6SSogtI2jUOzFYjFWrVqFsLAwBAUF4fXXX0dgYCDWrl2LtWvXAgACAgIwZMgQdOnSBb17\n98a0adPkiv2dO8Q/ZIta7d4NbN3K7S/E2jjGmnYJ8OPZs4uq7ufcb7T7UB/vPniry1t49+C73HYo\nByEWWJWXA/v3A6ObzD0XVhRi6j5i39hb1M+itXdsr7XYA/x92IX07CuqK1BYUahy9UdVYe2cdw++\ni5xS1TL+ZIm9ulk48Unx2HN3D1aErVBzxMrRK88eAMLDwxEeHt7ouRkzZjT6ed68eZg3b57Sznbs\nILfi7FTOdQoYAAAgAElEQVTAKNWLxKkMa+PImDIwGuzsuPV/GaY+sn+S96TZMvgloUsQsjYEO+7s\nwNiOWtSKVYGxY0lUtmIFf1k5hw8DwcHNV2rPOzIPYT5hCPMNa/S8t5034p/Ga90vXx92ISP7zOJM\nuNu4w0TE/R/nxTYv4o3Ob2D2wdnYOkZ5lGhrS7LyqqrqxX37dmDxYtX6K64sxpS9U7B2+Fo4WnJf\nWKip2KtSy0cbBF1Bq+mKNXVwcSFRLbVxuGuvpIQIq6lZBbJLs+Fl13jexlJiiehXo/HeoffwrITH\nNf8gq1ldXYG//+avD1nv08OPDuPw48P47+D/Njve3cadExuLr8qHQop9RrH2C6oU8fUrX+NG5g2V\n5olEIpLGyFpjT58Cjx6pbuH837H/Q982fTkrudwUO3M7VNZUorSqFICObRyuKS0FevXitw/W/zdm\nsed6glYqJV+iTwuewsvOC6YmzXNan/d6HhO7ThTEzuFzM/KyMrIoqmHSQEF5Aabtm4bfRvwGO3O7\nZue4Wbtx8iXHV2QnpNinF6VzlokjC3XniRpeU3UsnJOJJxF7PxYrhnBv37CIRKJG0X2LEvuGFg5f\nOP+bmWXMYs91ZM+Wx03MS0Q7Bxm7bf/LkleW4Paz29h+R7kSX8+4juVnl6OWUT+1ZuxY8sGtqVH7\nVKXExZF1H+7u9c/NPTIX4X7hGOQzSOY52or9phubcCrpVIvw7PmYnG2KOvNEDe+WVM3CaWjfcLVN\nojxatNjzDSvyfKSwGQpcT9BKpSQL5mnBU7R1aCv3OAuxBaJHRmPOoTkKxa+WqcVbe97C4lOLseby\nGrXH4+9PxJgPK6ephRP3KA7HnhzDd4O+k3uOq5UrnpU8q6tgqA6X0i4hMjYSb+5+Ew6OjMHbOOnF\n6Whtw5+Nw7IkdAluZd3CjjuKd7ZhJ2mfPiXre155RXnbnxz7BP3a9sNQv6EcjVY+LVbs+bZwGlJS\nIlxf+oadHZlQvXOn+ePePfU3AmF3OcoszkQrGzn1pf+lt1dvRAZH4p0D78gVvz9u/QFriTWuz7iO\nL+O/xGOp+oXc+cjKKSsjK7pZC6egvADT903HbxGy7RsWS4klzEzNUFSpnndWVlWGSTGTsHX0VlTW\nVMLEPs3gbRwhIntA9XkiBweyy9jChapZOCcST2Dv/b34X9j/OB6xbFqs2AtVdQ8w7tRLb2/AwoII\nYtNHjx7q56mzNk5WSZZSsQeARaGLcDfnrkw7J7kgGXOPzMUvw3+Bv4s/Pu/7OaJio9S2c/iwcg4d\nIquE2Xmfj458hKF+QzGwvfINSjWxchbGL0Rnt854vdPrCG4VjCLrmwYv9lwvqFLE817PY1LwJIWB\nxeuvk9/fwgKYP19xe6x98+vwX3m3b1haWTcWez63JjSoevaqcvs2sGGDrkehO1xcgOvXZUf2o0ap\nv/0da+NkFWfB3dpd6fEWYgtsHLkR78e9j6zirEavbbm1BeM6jkM3j24AgDm954ABg58uqreHp58f\n2bHszBm1TlNIwx2mDj08hONPjiu0bxriZu3W7HdVxN/Jf2PLrS1YPWw1ALIwq8w8kTcbRzDPnsNS\nCaqwOHQxErIT5M4TjR0LREeT0tMdOihu6+OjH+OVtq8g3C9c8YEc0jSyz8+vv/OWStVb/KWMFin2\nHTvK37rQ2GnfXn7ZV3mwYs/mUKtCL89eiAqJwjsHG0dd51PPo3+7+newqYkpNo7ciK9Of4UHuQ/U\nGheXVk5pKYnsR40C8svzMX3/dKyPWA9bc1uVzneydFJ5Z6XSqlJExkZi9dDVdYuPvO28UWyawtsE\nbUuM7IF/54lejZYZWKjDicQT2P9gP34I+4HD0SmnodibmRGbibWgY2K43Te4RYo9RT4uLvUbY6sK\n69mrauOwLOq3CPdy7mHbnfpCaQ9yHyDAJaDRcb5OvljYbyGiYqNQU6u6LzN2LFmFzYWVc/AgWdnt\n6gp8dPgjDO8wHAPaq14W0cHCAfnlqoXlnx7/FL09e2NUYP2qQm97b+QzyQZt41TWVKKgvACu1sJu\nacYGFrMOzNJokryookiw7JumKFpFyy5C5Qoq9kaGtbX6k9esZ59ZnKmSjcNiLjZH9MhofBD3AbKK\nsxRuRD2712yITcRYeXGlyu37+pJCZadPq3yKXNgsnIMPD+Jk0kl8O/Bbtc5XVezjk+KxK2EXfgxv\nvHepm7UbSpgcg87GySzOhJu1Gy+rZ5WxqN8i3M+9j6231a+/Mv/ofAxoN0BQ+4ZFnthLpWRubfhw\n7vqiYm9kWFuT23p1kEoBK/tSVNdWK8xKkUVPz56YHDIZsw7MQmJeIjxsPWRuRG0iMsHGkRvxzdlv\ncC/nnsrtc2HllJSQEgn9h+Zjxv4Zatk3LI6WjkrFvriyGJNjJ2Pt8LXNqie6WLmgsDrHoCN7oTJx\nZFEXWBz+oJF4KuPYk2M49KhxYTshcbdxR1ZJVt0diZMTkJtLLJxBg7ida6Fib2RoEtnn5QGMFZmc\nVWWPg6Z82e9LPMh9gMWnFqODs/xZsvaO7bE4dDEiYyJVtnPGjgV27QKqq9UeVh0HDpBd0766/CFG\ndBjRaE5BVRzMHZBfoVjs5x+dj9C2oTKX3ztbOqOgMpfzfUgZRrj9g4X265vS07MnpoRMwcz9M1Wy\nc9h9CX4d/mujwnZCYiG2gLXEum6+h93XgGsLBzASsU8tTMWNzBu6HoZe8KjqNIrKytU6RyoFqsxV\nn5xtirnYHNGvRmPr7a3o2bqnwmNn9pgJazNrfH9etUjLx4eUy9bGytm+HQgYcQCnkk7h20Hq2Tcs\nymyco4+P4sCDA3Lzt12sXJBTmlO3DylX5OaSNGQhUpGFzsSRxZf9vsQj6SP8+c+fSo+df3Q+BvkM\nalbYTmgaWjnu7mQtzLlzwDCOS/IYhdi/tfsthKwNUbk0akvlavpVzPunPzItj6t1nlQKlJmqNznb\nlB6te2B9xHq81eUthceZiEywPmI9vjv3HRKyE1RqW5taOcXFwJHTedheRuwbGzPN7psViX1BeQGm\n7puK3yJ+kxtBWkmsUMvUwt6llFPfPiWFuy0/lcF3XRxVMBebY9Orm/DRkY+QUZQh97ijj48i7lGc\nzuybhrhauyK7lNT5cXcnaaJcWziAkYj947zHGBUwCrMPztb1UHRGRXUFImMj4W3tgwJz1UQUIGUn\nysuBwlrVcuwVMSl4UrNMHFm0dWiL//T/DybFTEJ1rXJ/hs3K0cTKiY0F7MZ9gNeCXsUr7VRYSy8H\nRWI/98hcDPEdgsE+g+WeLxKJ4GLlAhu3XE59+1OnSK0fIeC74qWqdG/dHdO6TcPMA7LtnIb7Eqg7\nB8UHjhaOyCsjf/R27YCMDH6qA7d4sS+qKIK0TIrNozbjeuZ1pbU0Wipfnf4K7R3bY2LQLJRJklU+\nLy/v39WzauTYc8G0btPgaOGIb/9Wbqu0bw889xygybadKw7uQ5XHWSwbuEz9kxsgT+wPPjyI44nH\n8d9BzUsjN8XZyhnWLqqJPcOQDbM//FDxcXx4v/JIL0rX2QRtUxa8vACJeYn4458/mr3G7kug6MtX\nSBwtHZFXTv7oPXqQ57i2cAAjEPu0ojR42nrC2swam17dJEjNdX3jSvoVrLu2Dr8M+wX2FraoNlF9\nhrZu9WxJFlpZa27jqItIJML6iPX434X/4Z8s5Zs8s5uRq8q5c8D4qDxc9ZiF6Nc0t29YHCwc6qIz\nlryyPEzfNx0bIjaolN3jYuUCCyfV0i9PngRu3AB++03+hHtKCvF/B6i+XEArMor0I7IH6ueJPjr8\nEdKL0uueP/L4CI48PiJzXwJd0TCyDwgAUlP5yZ5q8WKfVVzvNatSS6OlUVFdgciYSPww+Ad42HrA\nztIGtWLVcy8b5dgLGNkDZKHR8oHLMSlmEqpqFJcxHTNGPStnwQLgttf7eC1wFMIDQ7Ueq6zI/v24\n9zEqcJTK9pCzpTPEdsoj++JiYNEiYPlyoG9fYO9e2cft2gWMHElWZgqBPnj2Denm0Q0ze8zEjP0z\nwDBM3b4E+mLfsDhZOkFaXr/S0dOTn35avNg3FSlltTRaGotPLYavky/e6PwGAMDewgY1phpG9lpM\n0GpKVHAUWtm0wjdnv1F4XLt25HHypPI2MzKAi3n7UOryNza9rZ19w2JvYY+CioK6gm6x92JxLuUc\nlg1QvX0nSyeIbaQKxX7XLiIGbdsCkZFkn9yYGNnHCrEzHEtVTRXyyvPgZu0mTIcq8sXLXyC5IBmb\nb23GvKPzMMR3iNx9CXRFw8ieT5TuQWvoZJU0nlhka2mM+GsE+rXtpxMBE4rLaZex/vp63Jx5sy4/\n3sFKvcieLZVwX8UiaFwjEomwbsQ6hKwNQYR/BIJbBcs9ll1gNUjJZzl6mxS1w2Zi48g/YW3Gzf2y\n2EQMK4kViiuLUVlTiVkHZmH72O1qte9k6QSRlVShjbNkCbmDYa2Z4cOBefOAigrA3Lz+uJQU4P59\n4SycrJIsuFq5ytzFTJeYmZohemQ0+v/eH/bm9rg165auh9SMhp49nxiF2DcV9F6eveoWX+x5fY9G\nC4X0nfLqckTGRmJF2IpGv7+9lQ0YNcQ+N1f9Imhc42nnif8O/i8mxUzC5WmXYWYq25cYO5ZknvTr\nJ78thgGW3XgfA3uPRr+2Cg7UANbK+fjox5jQeQJeavOSWuc7WTqh1iIDeSmyX793jyyQargBh7s7\nEBREJqfDGqSLq7MFHxfoekGVIkI8QvC/sP/B39lfr+wbFqEie+OwcWREpOosvpBHckEyhmwZgnVX\n12kzRF5YfGox/J39Mb7T+EbP21vYAGbFKhcPy8kB7JxLUMPUwNZMvRICXPJ2l7fxnP1z+Pr013KP\nee45kp0SFyf/sf7sXpi2PY8/ohTbQprgaOGIddfW4UbmDXz9ivxxysPJ0gk1kjy5Ns6OHWRuwqTJ\np3bw4Ob2VcNyzUKgy1IJqhAZHIk+3n10PQyZ0MieIxpO0DaEXXwx9M+h6N+uv9pv1FqmFhP3TERn\n9874/MTn6ObRDd1bC5TQrIRLaZew4foG3Jp5q9ldi5XECjArQWWlavv05uYCrYNy4FrtqtM7IJFI\nhLXD1yJ4bTBG+o+Ue60//1x+G9IyKTqvmYWY0X/B1oL7dIdaphZfn/4a56ech6VE/U2QnSydUGEi\n38bZvh345Zfmz7/0EvDZZ/U/JyeTPQuEsnAA/Y7s9R11ymNrQ4uP7PPK85oVnWLp3ro7pnefXjdb\nrw6rL69GVW0VVoStwPeDv0dkbCQqqiu4GLJWlFeXIzImEiuHrJRpu5iZmkFkWqXyHr25uYDYLqeu\n7rou8bD1wP/C/odJMZM0utZzDs3BmKAxePm5l3kYHbB0wFKsHLISz3s9r9H5TpZOKBfJnqC9e5fM\nn/SREZz26wdkZgLHjpGfd+4kWThCWTgAkFKYAk9bntJIWjjUxuGI4spihTnUC15egKcFT7H51maV\n23wsfYzFpxZj48iNMDUxxVtd3kI7h3b46vRXXAxZKxbFL0KgayBe7/i6zNfNTM0A00pUVqrWXk4O\nILLWD7EHgAmdJqCDcwcsPrVYrfNi78XiQuoFLO2/lKeRARH+EZjTe47G5ztZOqGkVrbYy7NwAEAs\nBqZNA44cqT9WqCwclqT8JLRzaCdspy0Edq6H73Rwoxd7drZ+3pF5SCtMU9peLVOLyXsn49OXPq2r\n4MhaDL9e/RVX0q9wNnZ1uZh6EdE3orF66Gq5lovEVALGtFKtyL7WXH/EXiQSYc2wNdhwfQMupV1S\n6Zzc0lzMOjALG0du5Cz7hg+cLJ1QVC3bxlGWRtm5M9l2krVwuNzOThWS8pPQ1qGtsJ22ECSmElhK\nLNXesF5djELslX3AQzxC8G7PdzF9/3Sl364/X/oZNbU1eL/3+42e97D1wA9hPyAyRjd2Dpt9I8++\nYTEzNQNMqtSK7KvM9EfsAVID/MfwHzEpZhLKq5VX8JwTNwfjOo5D3+f6CjA6zXG0cER+hRTSvMbv\nwTt3gIIC4HkF7pC3N5CWJnwWDktSfhLaOdLIXlOEsHJavNiXVJaotBT+s76fIb0oHdE3ouUew9o3\nG0ZukJlP/GbnN+Hj5IMlp5doM2SN+DL+S3R07YhxHRXfv0tMJIBpFSorld8yMgyJ7CtMcuFs6czV\nUDlhXMdx6OTWCQtPLlR43J67e3Ap7RKWDuDPvuEKS4kluSMTl6GsrP55tr6NLAuHxc0NyMpSnIWz\n9sparLiwgrPxMgyDZWeX4bH0MXLLcvVq9ayhIcQkbYsW+1qmFmXVZSQDRQkSUwk2vboJHx/7GCkF\nzROdWfvm876fy92AQyQS4Zdhv2Dd1XWC2jkXUi9g041NWD1Mvn3DIhKJgFoxSiuU+zilpURg8iv1\nK7JnWT10NTbf2oxzKedkvp5TmoN3D76LjSM3qvQe0AecLJ1g515v5TCMaith3dzIJK08C4dhGLx3\n6D3MPTIXJxJPcDLWrbe34tPjn2LWgVlo69BW7xZUGRKq7HSmLS1a7EurSmEptlR5T8wu7l3wfu/3\nMW3ftGZ2zqpLq1BTW6N0As7D1gMrhqwQzM4pry5HVGwUfgz/UeWl6qJaM5SpIPbsDkc5pfop9q7W\nrlgVvgqRMZEorSpt9vp7h97D+E7j1V7cpEucLJ1g41o/SXvnDil01ru34vPY+jfdusm2cJILkuFq\n7Yr9E/Zjyt4pKKrQzh/OLM7EB4c/wLIBy3D0yVH09lQyQIpC7M3tqdhrQ0llidoTcp+8+AlySnOw\n/vr6uuceSR9hyaklddk3ypjQaQL8nP3UzhjRhIUnF6KTWyel9k1DTGrNUKqCaZ+bCzg766/YA8Do\noNHo3ro7vjjxRaPnd9/djavpV/F1f/UXN+kSJ0snWDnXiz2bhaPKEodTp2Tn4QNkTwc/Jz+E+4Xj\nlbav4ONjH2s8RoZhMHP/TEztNhWze5E9IsJ8dLvbk6Gj6ob12tCixV5ZJo4sJKYSRL8ajU+Pf4qn\n+U9Ry9QiKjYKC15eAD9nP5XaYDNG1l9fj8tplzUZukpcSL2Azbc2Y/XQ1WqdJ2IkKC1XTexdXIDc\nsly9FXsAWBW+Cltvb8WZp2cAGKZ9w+Jk6QRzB2LjqGrhsLz8MtmmURY5pTlwtXYFAPwQ9gP2P9iP\n40/U27GM5c9//sTjvMdY+PJCWJtZI/2j9LpCexTNcLBwQEFFAa99ULGXQSe3TpjbZy6m7J2ClRdW\nQgQR3uv9nlpttLJphRVhKxAZG6lSxoi6lFWVITImEj+F/1T3IVYVE8YMFdWq2ThsZO9spV8TtA1x\ntnLGmmFrMHnvZJRUlmD2wdl4o/MbeLHNi7oemto4WTrB3D4P2dnA7dtk3qRXL+3bzS2tn2R3sHDA\nr8N/1cjOySjKwEdHPkL0yGiYi0nlNQ9bjxZZX0pIaGSvJcWVxbCWaJZXPe+FeSiqLMLC+IXYMHKD\nyr5/Q8Z3Gg9/Z39e7JyF8QvRtVVXjAkao/a5ROxVi+wdnRgi9nqWjdOUkQEj8bzX8xi0eRCuZ17X\nqDaNPuBk6QQLRykyMoBt20hUz4WONrXiwv3CMaD9AMw/Ol/lNhiGwcwDMzGt2zS9KQ3SUqBiryUl\nVaqlXcpCbCLG1tFbsWvcLvg6+WrUhiYLgFThfMp5bLm1BavCV2l0vgkjUUns8/IAW+diSEwkGtV6\nEZqVQ1aipKoEG0duNIjxysLJwgliWynS04GtW4EJE7hpN7esefrsD4N/wMGHB3HsyTGV2vjjnz/w\nJO8JFry8gJtBUeqgYq8lmto4LO0c22m9T6W7jTtWDlmJyBhu7JyyqjJExkZiVfgqte0bFlVtHKkU\nkNjr7+RsU5wsnXBz5k284P2CroeiMU6WTjCxluKvv0hEHxLCTbuyrDh7C3usG7EOU/dORWFFocLz\nM4oy8NHhxvYNhTuo2GuJtmLPFa93fB2BroFYFL9I67a+OPkFQlqFYHTQaI3bMIFqNo5UCoht9Xty\ntqXhZOkEKxcpcnPJptNcWeHyJtnDfMMwsP1AhXYOwzCYsX8GZvSYQe0bnqBiryWqlEoQApFIhNVD\nVyP6RjQupl7UuJ2/k//Gn//8iVVDNbNvWNSxcWCl35OzLQ1HS0cUVklx4wbZZ5YrFM27fD/4exx6\neAhHHh+R+fqWW1uQlJ9E7RseoXn2WqJqqQQhqLNzNMzOKa0qRVRsFH4e+rPWkbYJTFGtwu4lUilQ\na2E4Nk5LgF0237Ur4ODAXbu5pblyv7RZO2favmkoKG+c/pdelI65R+Yi+tVouTuEUbSHRvZaUlxV\nDBuJfog9QOq5dHTtqLSeiyy+OPEFurfujtcCX9N6HCYQo6paudjn5QGV4mwq9gLCV42UgooCOFo4\nyn09zDcMg30GY97ReXXPsfbNzB4z0c2jG+djotRDxV5L9MWzZxGJRFg9bDV+v/k7LqReUPm8s8ln\nsfX2VvwU/hMn4zARmaKqplrpcVIpUCp6ppONxo0VvsRelc/C94O/x5HHR3D40WEAwOZbm5FckIwv\nXv5C4XkU7bEzt0NRZRFqmVre+lAq9nFxcQgICICfnx+WL18u97jLly9DLBZj9+7dnA5QEdW11QpL\nEuuLZ98QN2s3/Bj+IyJjIlFWVab0eC7tGxYTiFGlxMZhGCL2RbXPVK65Q9EeWzNbVFRXyLX6GIZR\ne5OLyppK1DK1Sm0YO3O7OjvnbvZdzDsyD9EjqX0jBKYmprAxs9G6ZpEiFIp9TU0NZs+ejbi4OCQk\nJOCvv/7C3bt3ZR73ySefYMiQIbzvtgIANbU1eJr/FPbL7PHh4Q/lHqdPnn1DxnUch87unbEwXrmd\n8/mJz9GzdU+MChzFWf+qRPZlZaTipbQim4q9gIhEInjYeiCzOLPZa7VMLfr/3h891/VEaVWpyrsb\nsZ8DVVa5DvYZjCG+QxC0Ogizes5CiAdHuZ8UpfBt5SgU+0uXLsHX1xdt27aFRCLB+PHjERsb2+y4\nn376CWPGjIGrq2Z53+ryxu430HZlW4T5hOH3m7/LvfXRNxunIT8P/Rmbb27G+ZTzco858/QMtt3e\nxpl9w2IKMaprFUf2Uing5AQ8K3kGVyth/q4UQmvb1jJ3TVt1aRUqayrh6+SLXut6wXG5I36+/LPS\n9tT9HPwQ9gO2jNqCL/pS+0ZI+BZ7saIX09LS4O3tXfezl5cXLl682OyY2NhYnDhxApcvX1YYPSxq\nkEsWGhqK0NBQtQe8484O3My8idyPc+Fo4Yj2P7bH/Zz7CHQNbHasNuUS+MbN2g0/hf+EyNhI3Jhx\no9mKz9KqUkzeOxlrhq3hPPVRlcg+Lw9wdCRiTyN7YWlt2xrpRemNnnuQ+wBLTi3B+Snn8ZzDc9hx\nZwcA4H8X/ldXeVIe6oq9jZkN3uzypvoDp2gFm34ZHx+P+Ph4zttXKPaq3PZ98MEHWLZsGUQikVI/\ncZGWicPPSp7hvUPvIWZ8DJwsnQAAL3i/gPOp52WKvTblEoRgbMex2JGwAwtOLsB/B/+30WufHf8M\nvT17Y2TASM77NRWJlaZespF9EhV7wfG09Wwk9jW1NYiKjcLCfgvrKq++2eVNlFeXY/r+6UpLeevz\nHS6lHjayHxk6slEgvHgxN7W1FNo4np6eSEmp37UpJSUFXl5ejY65evUqxo8fj3bt2mHXrl145513\nsHfvXk4G15R3D76LiV0n4nmv+s04+3j1kbtTkSG8yX8e+jP++OePRr/DmadnsCNhB34M/5GXPk2g\nPLKXSgE7lxLUMDV6fw1bGq1tWyO9uF7sV1xYAYmJpFkEbyG2QFf3rkrrLhVVFtG/oQGgU8++R48e\nePjwIZKSklBZWYlt27YhIiKi0TFPnjxBYmIiEhMTMWbMGKxZs6bZMVyw/c523H52G0teaby/KxvZ\ny8IQxJ7dbSkqNgplVWUoqSxBVGwU1gxbU3f3wjWmIjFqlHj2eXmApTOZnKXla4WloWd/N/sulv29\nTG7l1ee9nsfFNMWrsg3hc0DRsWcvFouxatUqhIWFoaamBlOmTEFgYCDWrl0LAJgxYwZvA2vIs5Jn\nmHNoDmLHx8JCbNHotS7uXZBckIz88nw4WDRecqiPqZeyGB00GjsSduCLk1+gurYafbz7IMKf+y9M\nFlU8e6kUkDhQC0cX+Dv7Y8WFFaiurUZkbCSWhC5Be8f2Mo/t7tEdsfebJ000hIq9YaBTsQeA8PBw\nhIeHN3pOnshv3LiRm1E1gGEYvHPgHUwKnoTeXs33uRSbiNHNoxsupV1qVqFSX1MvZbFq6Cp0XtMZ\nZqZmuD7jOq99mYpUy8YxtaNirwu6uHfBvZx7+M/p/8DWzBYzesgPqrq37q40hZeKvWHgYOGAlMIU\n5QdqiFKx1zXb72xHQnYCtry2Re4x3T2641rGtUZiX1Nbg4qaCliKDaOuuYuVC2LHx8LWzJY3+4bF\n1MQUNYzybBy4ZNO0Sx1gKbFEWXUZFp1ahKT3kxRunNPBuQOyS7KRV5YHR0vZ5RCo2BsGDhYO+OfZ\nP7y1r9din1Wchffj3sfeCXub2TcNkXUrW1JVAiuJlUH5zb08Odh/TgVUzcYRW2SjlYY18ynasajf\nIrRzbIfnHJ5TeJyJyATBrYJxLeMaBrQfIPMYKvaGgU4naHUJwzB45+A7iAqJUiqC3Ty64VrGtUbP\n0Te4fMQmpqiuVR7ZV0ma725EEYYvQ7/ExK4TVTq2e+vuuJpxVe7rxZX6VRCQIht7c/tmVUe5RG/F\nftudbbiXcw+L+i1Seqyvky9SC1NRUV1R95wh+fVCo6pnX2FCyxsbAt1adVMu9vSzoPcYZWSfWZyJ\n9+PeV3kLNImpBG3s2+BJ3pO65+gbXD6qePZSKVACKvaGQJBrEB7kPpD7Ov0sGAZGJ/YMw2DWgVmY\nEjIFPT17qnxeB+cOjd7w+lwqQdeIVYjs8/KA4hpq4xgCbR3aIjEvUe7rVOwNgxYp9nlleXI9479u\n/yIsIPcAAA0bSURBVIWHuQ/xZb8v1Wqzqdjre6kEXWJqYooaBZ59TQ1QWAjkV9LI3hBwsnRCDVMj\nVyiKK4tha24r8Kgo6mJvYY+CigLeatoLLvaphalw+tYJE/c0n3zKLM7Eh4c/RPSr6u9g38G5Ax5I\nG0f2VOxlIzYRo4aRH9kXFAB2dmSTarr/rP4jEongbu2OZyXPZL5OPwuGgdhEDCuJFYori3lpX1Cx\nZxgG0/ZNw8cvfoz9D/Y3ikQYhsHM/TMxtdtU9GjdQ+22Zdk49A0uG1Ml2ThSKeDoVIu8sjzec/4p\n3OBm7YbskmyZr9HPguHAp5UjqNhvvLERz0qe4etXvkb/dv2x7/6+utf+/OdPPM57jIUvq78/KwD4\nOfnhfs79up/v5dyjQiUHsYkYtQoie6kUsHPLh525HcQmer0Ug/IvrtauNLJvAbBljvlAULH/5Ngn\niB4ZDYmpBEP9huLok6MAgIyiDHx05COVs29k4WnnicKKQhRWFOKfrH+w/vp6fPi8/F2sjBmxiSmq\nFWTj5OUB1q451MIxINys3ZBdKjuyzyvPg725vcAjomhCi4nsP+j9ATq7dwYAvOj9Ii6kXiD2zYGZ\nmN59Orq37q5x2yYiE/g6+eJezj1ExkbimwHfwNveW/mJRogqkb2FE52cNSRcrVxl2jj55fmorq2m\nd7kGAp9iL+g9+icvfVL3/w7OHZBSmIL119cjMS8RO8bu0Lp9P2c/vHvwXbhauWJKyBSt22upsCto\n33oLOH68+euZmcC4BbkooWmXBoObtRsS85unXz7IfYB2Du0MqmyIMeNg4dBoFW1GUQZnbQsq9g39\nX4mpBA4WDpi2bxquTr/KyQ72HZw74NiTY7g96zZ9cytAbEoi+9OngdhYwLvJDZBIBBzMyMHppzSy\nNxRcrVybbWLCMAw+O/4Z3uxMtxg0FBpG9seeHMPM/TM5a1uns2/v9nwXBRUF6ObRjZP23ur8Fga2\nG0jtGyVITIlnn5kJBAcDZjK+Z6VPcqmNY0DImqBde3UtiiqLMPeFuToaFUVdWLEvrCjE1L1TsXb4\nWgx5fwgnbetU7L94mdvd6zu6dURHt46cttkSEZuIUVJaA0dH2UIPADmlOXT1rAHhaOHYyOtNyk/C\ngpMLcDryNM2oMiAcLByQVpSGj49+jIHtByLMN4yztum7wAgRm5qioqoarnbyj8kpzYGPo49wg6Jo\nhaNlvdjXMrWYsncK5r8wH4GugToeGUUd2jq0xapLq8CAwa2ZtzhtW+9q41D4R2IqRlV1DaQvzMLx\nJzJmaEFXzxoaDhYOyCvPAwCsvbIWJZUlmNuH2jeGRoBLAJ4WPMW6Eetgb8FtuiwVeyNEYmqKyppq\nFLWOQWRspMxUr5xSmnppSLC10J/kPcHC+IWIfjUapiamuh4WRU06unbE2aizzbZY5QIq9kaIxFSM\napNC1EjyMcxvGD483HzxWW4pnaA1JCSmEpiLzTFm+xh8/MLHCHAJ0PWQKBogEonwYpsXeWmbir0R\nIjYxBWwzYF7thv8O/i9OJZ1qVLoCoBO0hgjDMLiTfQcf9flI10Oh6CF0gtYIkYjFgHkhxIw1bMxs\nsHHkRkzYNQEveL8AZytn1DK1yCunRdAMjcvTLsPR0pHaNxSZ0MjeCJGYmgLmhTATWQEA+rXth3Ed\nx2H2odkAgILyAlhLrCExlehymBQ16ejWEa1tW+t6GBQ9hYq9EWL2b2TPij0ALB2wFFfTr2Jnwk46\nOUuhtECo2BshYlNTQFIGc1H9to1WEitsenUTZh+cjbs5d6nYUygtDCr2RoiZmEzVmJlYNXq+j3cf\nRAZHYtaBWTTHnkJpYVCxN0IkpmQCz6KJ2APA4tDFcLRwpJE9hdLCoNk4Rggb2ZubNhd7c7E5YsbH\noLCiUOhhUSgUHqFib4RIxPIjewDwdfIVcjgUCkUAqI1jhJiZ/hvZa7gFJIVCMTyo2BshZhIS2XOx\nYQyFQjEMqNgbIRZmbGRPxZ5CMRao2BshdjYksqdiT6EYD1TsjRBb63/z7KmNQ6EYDVTsjRDxv3n2\nqKFiT6EYC1TsjZC6PUmp2FMoRgMVeyNEYkKqWTLVVOwpFGOBir0RYmtuCwCwt6FiT6EYC1TsjRAb\nMxsAwMsv0QXUFIqxQMXeCDERkT97VW2ljkdCoVCEQiWxj4uLQ0BAAPz8/LB8+fJmr//xxx/o2rUr\nunTpghdffBG3bt3ifKAtifj4eF0PAQBQVlWm6yHozbXQB+i1qIdeC+5RKvY1NTWYPXs24uLikJCQ\ngL/++gt3795tdEz79u1x+vRp3Lp1CwsWLMD06dN5G3BLQF/eyOXV5boegt5cC32AXot66LXgHqVi\nf+nSJfj6+qJt27aQSCQYP348YmNjGx3Tp08f2NvbAwB69+6N1NRUfkZL4QxbM1sEtwrW9TAoFIpA\nKJ2hS0tLg7e3d93PXl5euHjxotzj169fj6FDh3IzOgpvFH5K69VTKEYFo4SdO3cyU6dOrft58+bN\nzOzZs2Uee+LECSYwMJCRSqXNXgNAH/RBH/RBHxo8uEBpZO/p6YmUlJS6n1NSUuDl5dXsuFu3bmHa\ntGmIi4uDo6Njs9eJ3lMoFApFFyj17Hv06IGHDx8iKSkJlZWV2LZtGyIiIhodk5ycjNdeew1btmyB\nry/d5YhCoVD0DaWRvVgsxqpVqxAWFoaamhpMmTIFgYGBWLt2LQBgxowZWLJkCfLy8jBr1iwAgEQi\nwaVLl/gdOYVCoVBUhxMzSAGHDh1i/P39GV9fX2bZsmV8d6dzkpOTmdDQUCYoKIjp2LEjs3LlSoZh\nGCY3N5cZOHAg4+fnxwwaNIjJy8urO2fp0qWMr68v4+/vzxw+fFhXQ+eN6upqJjg4mBk+fDjDMMZ7\nLfLy8pjRo0czAQEBTGBgIHPhwgWjvRZLly5lgoKCmE6dOjETJkxgysvLjeZaREVFMW5ubkynTp3q\nntPkd79y5QrTqVMnxtfXl5kzZ47SfnkV++rqasbHx4dJTExkKisrma5duzIJCQl8dqlzMjIymOvX\nrzMMwzBFRUVMhw4dmISEBGb+/PnM8uXLGYZhmGXLljGffPIJwzAMc+fOHaZr165MZWUlk5iYyPj4\n+DA1NTU6Gz8ffP/998wbb7zBjBgxgmEYxmivxcSJE5n169czDMMwVVVVTH5+vlFei8TERKZdu3ZM\neXk5wzAMM27cOCY6OtporsXp06eZa9euNRJ7dX732tpahmEYpmfPnszFixcZhmGY8PBw5tChQwr7\n5VXsz507x4SFhdX9/M033zDffPMNn13qHSNHjmSOHj3K+Pv7M5mZmQzDkC8Ef39/hmHIt3bDO56w\nsDDm/PnzOhkrH6SkpDADBgxgTpw4URfZG+O1yM/PZ9q1a9fseWO8Frm5uUyHDh0YqVTKVFVVMcOH\nD2eOHDliVNciMTGxkdir+7unp6czAQEBdc//9ddfzIwZMxT2yWttHFk5+mlpaXx2qVckJSXh+vXr\n6N27N7KysuDu7g4AcHd3R1ZWFgAgPT29UXZTS7tGH374Ib777juYmNS/1YzxWiQmJsLV1RVRUVHo\n1q0bpk2bhpKSEqO8Fk5OTpg7dy7atGmD1q1bw8HBAYMGDTLKa8Gi7u/e9HlPT0+l14RXsReJRHw2\nr9cUFxdj9OjRWLlyJWxtbRu9JhKJFF6blnLd9u/fDzc3N4SEhMhNvTWWa1FdXY1r167hnXfewbVr\n12BtbY1ly5Y1OsZYrsXjx4+xYsUKJCUlIT09HcXFxdiyZUujY4zlWshC2e+uKbyKvao5+i2Nqqoq\njB49Gm+//TZeffVVAOTbOjMzEwCQkZEBNzc3AM2vUWpqKjw9PYUfNA+cO3cOe/fuRbt27TBhwgSc\nOHECb7/9tlFeCy8vL3h5eaFnz54AgDFjxuDatWto1aqV0V2LK1eu4IUXXoCzszPEYjFee+01nD9/\n3iivBYs6nwkvLy94eno2KkujyjXhVexVydFvaTAMgylTpiAoKAgffPBB3fMRERHYtGkTAGDTpk11\nXwIRERHYunUrKisrkZiYiIcPH6JXr146GTvXLF26FCkpKUhMTMTWrVvRv39/bN682SivRatWreDt\n7Y0HDx4AAI4dO4aOHTtixIgRRnctAgICcOHCBZSVlYFhGBw7dgxBQUFGeS1Y1P1MtGrVCnZ2drh4\n8SIYhsHmzZvrzpELVxMO8jh48CDToUMHxsfHh1m6dCnf3emcM2fOMCKRiOnatSsTHBzMBAcHM4cO\nHWJyc3OZAQMGyEyt+s9//sP4+Pgw/v7+TFxcnA5Hzx/x8fF12TjGei1u3LjB9OjRg+nSpQszatQo\nJj8/32ivxfLly+tSLydOnMhUVlYazbUYP3484+HhwUgkEsbLy4vZsGGDRr87m3rp4+PDvPfee0r7\nFTEMrWNAoVAoLR26UxWFQqEYAVTsKRQKxQigYk+hUChGABV7CoVCMQKo2FMoFIoRQMWeQqFQjID/\nB9bCmG/gZuwvAAAAAElFTkSuQmCC\n" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "diff = abs(upper)+abs(lower)\n", "plot(diff)\n", "plot(mad)\n", "print argmin(diff)" ] }, { "cell_type": "markdown", "id": "65a7b6bb", "metadata": {}, "source": [ "If the template is offset (in value) relative to the signal, then the upper and lower matches are also going to be offset the same way, so we can match signals by looking at the difference between the upper and lower matches.\n" ] }, { "cell_type": "code", "execution_count": 151, "id": "d1d99b15", "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "301\n" ] }, { "data": { "image/png": "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\nAElFTkSuQmCC\n" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "diff = upper-lower\n", "plot(diff)\n", "plot(mad)\n", "print argmin(diff)" ] }, { "cell_type": "code", "execution_count": 157, "id": "6a2e1589", "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 157, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# matching with offset template\n", "upper = array([amax(window(combined,r,i)-(template+0.7)) for i in range(n)])\n", "lower = array([amin(window(combined,r,i)-(template+0.7)) for i in range(n)])\n", "plot(abs(upper)+abs(lower),color=\"red\")\n", "plot(upper-lower,color=\"blue\")" ] }, { "cell_type": "code", "execution_count": null, "id": "b4a2cd30", "metadata": { "collapsed": false }, "outputs": [], "source": [] } ], "metadata": {}, "nbformat": 4, "nbformat_minor": 5 }