{ "cells": [ { "cell_type": "markdown", "source": "# 1D Fourier transform\n", "metadata": { "pycharm": { "metadata": false, "name": "#%% md\n" } } }, { "cell_type": "code", "execution_count": null, "outputs": [], "source": "import numpy as np\nimport matplotlib.pyplot as plt\n\nfrom deconvoluted import fourier_transform\n", "metadata": { "pycharm": { "metadata": false, "name": "#%%\n", "is_executing": true } } }, { "cell_type": "markdown", "source": "Suppose we want to compute the 1D fourier transform $F(\\nu)$ of a \nfunction $f(t)$. Let us generate a signal which is a superposition of a signal with $\\nu_1 \u003d 1$ Hz and $\\nu_2 \u003d 3$ Hz:", "metadata": { "pycharm": { "metadata": false, "name": "#%% md\n" } } }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": true, "pycharm": { "is_executing": false } }, "outputs": [ { "data": { "text/plain": "\u003cFigure size 432x288 with 1 Axes\u003e", "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZEAAAENCAYAAADOhVhvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzsvWu0JcdVJvjtzHPOrSqVZD2q9LYsy5IfwsavwgPYYIMtxniMDQbGplcvDAuPGpqHGZjlNsO0kRi6h2736u5Fw2qQaQYz0H5gj7B67EbYYPMyGJewLEuWZT2QrZJkqWRJJZVUde/JzJgfmZEZERkZsXfkuaduodxr1ap778l9csfOyIz97f3tSFJKYZJJJplkkklSJDvRBkwyySSTTHLyyrSITDLJJJNMkizTIjLJJJNMMkmyTIvIJJNMMskkyTItIpNMMskkkyTLtIhMMskkk0ySLNMiMskkk0wySbJMi8gkk0wyySTJMi0ik0wyySSTJMvsRBuw3bJv3z518cUXn2gzJplkkklOGrnhhhseUkrt5xz7j34Rufjii3Hw4METbcYkk0wyyUkjRPQV7rFTOmuSSSaZZJJkmRaRSSaZZJJJkmVaRCaZZJJJJkmWaRGZZJJJJpkkWaZFZJJJJplkkmSZFpFJJplkkkmSZVpEJplkkkkmSZYds4gQ0e8Q0YNEdPPA568ioiNEdGPz713bbdMjT2zhozfdb/3t03c+hDsPH43qVpXCBw/eg2VZtX+7/YHH8Zm7vs4698e/+AAeeOx40JYh+dxXH8HN9x4J2jIk9zz8JD5124NBW4bk2FaJD99wCOYrl11bQvJHn7sXT2wWQVuG5C9vP4yvfP2JoC1Dcuv9j+GGrzzcs+WoYcuQHH58E39889eCtgxJWSl88LP3oKw6G322DMkf33w/Hjq6GbRlSA7e/TC+9LXHgrYMyd0PPYG/uv2hoC1D8vjxJf7oc/cGbRkSpRQ+dMMhHF+WQVuG5FO3PYh7Hn6y/f3oZoGP3HhvQKOTm+89gs999ZGgLUPytSPH8fEvPhC0ZUi2igofPHgPKuO6uLacaNkxiwiA3wXw2sgxf6mUelHz75e326CP3HgvfvK//j2OHFu2f3vnh7+A//ypO6O6X7j3CN7xoZvwN3d2i8avf/IO/O/XfiGqW1UKP/77N+D9f3dP0JYh+T//vy/i3/3JbT1bPn1nfAH73U/fjbe//8b2d6VqW973d1+N6v7plx7Az//h5/EPD3UP0F/56K149/W3BbRquffRY/jZD9xoPQTf++m78TPv+1xUFwB+/oOfx3v+8q6gLUPyHz7+ZfzSdbf0bLme8UD+0A2H8BN/cAM2i+5h4toyJJ+9+2G848M34YavdA+E//iJL+NdH7kloFXL8WWJn/iDv8eHbzjU/u3Df1/bwnmwvesjt+A/fvz29veDjS0H744vYO/5y7vw83/YzRGfLUNy/S0P4Gc/cCPue/TYoC1DcufhJ/C//eHn8Wdf6gIL15aQ/PT7Poff+5u729//+Oav4e3vt20Zkn97/W34Vx+9tf39rodqW/701niQ876/+yp+4vdvsAKan3nf5/DeT989rNTIp+98CO/40E24+b4uEHv39bfhVwxbTrTsmEVEKfUXAHgh2Jpks6gj962ii+CPL0vr95jupqvLQANFpVBWynowHW++h4MmNosKm0v7vACYdpfWeZdlbQtLdzkwZpZu2dcteP7SevaYm2s3xl8s3RJK1X4y9WVzxLjOy4qlu1VWUKrva6Xq+cOx2ze/2P4yzqtt4c4v/R3duXnXudOV+8tnt+i+WJZ+3TK+YG8WVXtPt/pFxfa1+b8+N3fM65Ads4gw5VuI6PNE9N+J6Bu2+2RlEzmYD+5lWbV/D+pWPl2FinHtK995m0lTMR4QZaV65zVtCuvaD0T9Pawxj/CXf8w8fwG1X9zzArwxV2qErr7Ohe1vztpXeecI018Dumy7nYVP288dszXegj9HBsfMOq8+nz0/Obqt3T5/Meen/55inLed23K7/fOLP+Z1yMm0iPw9gGcopV4I4D8B+KOhA4noSiI6SEQHDx8+nHzCsrnohXHxi1K1fw/qDtwsBeOpWFSeSdf8jRNllpVqj691+Q+IsqonqIbeeuyyMTv+Ypy38Pmr4vlL65tjLgQP1KJUPZvZutpuw86iqlAmXme5v1LtrixfF4I50vN1leAv89zsMTdovOfruK5SqrZ7xHW2bdb+Ylzn0p4j9f0lnV+2v6dFJEGUUo8ppY42P38MwJyI9g0ce41S6oBS6sD+/ayNKL3ie0DUDzb+hO8tQJwHuV68Kt+k5T3MC+cmdb9v2G774aTHzhuzXngS/NXaaPurUnz0VXgiRe6ia/pGPyy4uqb9StUPKp5uf44sq8r6PX5e35jj17l0bBT7yxPRp/hLn5tl86AuD3nVuvbcdL8vdO50f9nnSfOXfZ25wdU65KRZRIjoXCKi5ueXobadR3VKFN+krRcCwYR3oqbkBUiARIpKOTbLFiCfDbzFr39ziP3li44Z6YbCefjKImtXV4+Zv+i6fpJEmXawIEMilq+FaMLra6a/zMU9Bbm590U6iuHqahSTiERKNWJ+2XM7DbnZ9/NOQiI7Zit4InofgFcB2EdEhwD8EoA5ACilfhPADwD4CSIqABwD8BbF4W+OEHfSakgsicqXTtSUmhZaCuBznc4yIy7ZAmSeWxI1eVNSzs3HPa/5c1kpzPNh3aqqEYuVwvOkIoekX0OSR4ouYhPpOteZpVv6fQ1IxpyORIB6zBtZ7g16orpOYCaKyp3UTlHV6dcmxgzrelJSXBTkpuDM/zl2Lx0bRCjGWnR5/lqX7JhFRCn1Q5HPfx3Ar6/JHADmBbQnryiid6I9UVqo8kxaZtSVl90NJUIipX+iy9CEHbGlICCfDYO6yveAkEV7LnoCeHUg9wEqKW4XpW+O8JCbP10qRCKe+SVFXxszc7Hn1wcKZ+FMiei1LlCnq/LhNaSHGIHuoc5Gq5VtM1/XtlvkL28Kb2chkZMmnXUixI2s06Jy4+IXzJqIN6KXRXupkfXKkUghTDf4kEhkzEF/JUSZSUjEeUCk6Oqfx+hKzu1DujI0Ib8vysrW0T/zzlvrbHkRVPg66zm05cxNvt2qx8CT6NY6jr8Evt5KmCPrkh2DRHaiDD0guCwnwFeUT2PtSM5d6/sexpwHqj3RJRGXC9v1z+MfimG7/Ww2WaS4LLuUiMjX7mIrYe0MpHZSWTvSyDqVHtyN2f4/pa6hU5HJyI1pty+il9YmXFZYrSu/ztJaTM/uUiGuuT6ZFpGAuBNPksscuviVqm+cLAvlb+0HUn1OQdRUKgDytJB5TG/siekGfuEz/Sb3s9nkkWJZKcxykvna8dfSM45h3f4iKUUiY3L8qcSNPvlijL9kNrvn4SICX7pUitxcVhhf10l5Js2vvt07RaZ0VkDch1NafcATNUX4AF7mjTTHnxhxuXa3EZfkodgcq6NMLuXUPJ9tQ8xfY+sDTu0rIWfdRyKSqNy+VuvpE3FrIgn+ch6kKUgkqSfHxyqLzE9fulR6nXUBv9ZNQG4JjMcxc2RdMi0iARmsD0jYRgnpBjdFYp07KccvRxNuqkKk66TyUm8WbprEmwqTRNaOv8f0PaTkyn1F0xjx0ItimGOuKtXbqmUlOf6EMacgRhfdc/S9EX0Cq6yHOJPmiORe9mQlmGy2dcm0iATEjaxFPRPBdANzwifnb+2UyGr6RARoYtQDQp7C8yM3ec46LbKuvP+P6RPh6PvTpdL6wLgcfxpys/2UEmj4FoKkmoioNuE+CxLsHtEnov9Xqq7NTEjkJBF30qY8IFLYRl6WE3MBMguV7j5FKQyrVehKqLJ+JBJ+OAUj1G1nG9XHbDX7Oel9nUS6Cdc5qMtms41DInoTwDRmV0qgUTXnNexu/c2bIym+9umPYVilza/u2aM32dzmNjm2TItIQNwLuCV6QNgTxvyZO+G9zYaxB4Qxsbq0kgBNOA/zJHbWiNROysJZeB4QWwmR4tKxn7f42Q+xpSSidx6kupmVY7cPTXDTf749qGQLvn1dRaywgdRhMnLjIhFPUJHCKkvr9bAXnDFjNu+FnQJGpkUkID3YnrTVger9jXuTp7CNzO9eBatMwtrpw/aUm0WOJobyxly7e2SCteX4h8/Hz/GbOrIgxdwE8ET5yyUkSHRrfdl9kcx4HEjhpbHZePPatrsfZO2U/bOmRSQg7sSTbnAHdNGeUsp744fPa6IKWYRq6ksi667XQx4plg7yKST+8iARdpTpXbAlC5h7fQVR5sDDMAUBmfZzx5zCzrIpsikLvuOvFLZRj/EoRzH137hzxJ6btt3h62wixDR/2ddKpOuiesEcWZdMi0hAehc/qZjWv9nZDwgv3TUSZVoLj1v03d7Iug/56/8rhWj+1rcQtItfTLfs+0uSStNqhbNwpkSosj4Rx1+eNM2wbj+Cl9ZTLLslkbXzMEzq9egxlRjXSfVt5Prbh0TYdUbj41EsvF6wwk8v+1KQ0yJyEoh7ASVRUzfh+zdYTN/dHdX8uYpRP1Vfh6tr6ruLFmc79sp5oJo3GHvMCb0LlfL4S2D3UJohyV/twpm+YNd2x3S17f0FITZmO+WZYLfy283JrvRTYXxfe/tEmHaHGI8ifzmLN/c1BbXd7vyKqhovepuQyEkp/e0dBLWF5hiXtcPRD7Kzosyuvs6WxO7m+7daXTkS6YgIVe+zqK4v381ks5mMFW6kqNls9bkdJCIoMm+NmSPOeevPwk9k/fmW5w2DEiTSnVuOoPpsI06R2UFsCSjZTLFqtVFsNom/Cvl1Hmb/ydO89hyZFpEdL26Em9QnkgBDvewsZh7V/LzXFZxQyJP0W/QKiAIk4k3PJIzZTalF6cEe5JayR1qftSP3tfmA4I7Z12yYVjfjX+ehVO0YfykVj+rd+9D2V2zR7QcVUjab+bNsnzK/3SwmnHMfStLi65JpEQnIqJ4Jt6bgSbXEzpvCNvLvhySPjoe2tuDZ7bGf+WAzF2r9fI/6y0Ivbt5ZsAA5EaLoOvf8JngYezqnpf6y7ect2H77GQtB6R+rZI646F5it69bnFsTKav+1iWSOeLWR1PQhMjXA8iNq78OmRaRgPSYSoLoY2g3XI6+e7PU+rxz+5CIhNPe6xMRMEmG+kRYdjvnS4nK7XPz7PYVaVPQxKidnj2FVj5a7S8I3KgcSGPh9RYC0X3hPFATCCduHUeia9ot7cmxzy1BIs7ikUTQ8fiLgWTWIdMiEpA+muguPptt5Iua2LC9D6O5Earve5J6PQS58j7ykeT4HV9L/OVlsTGRiC+ST4gyR7HZPN36kjqQFu7usKHO/u3uExlK7dSfRVKPA2k0zrlLz1yUdvib50nZm63fKiDxtdxf65JpEQnIEJPE/IyvK48yK9WfRNwtQID+wiOr5cijpqG9xjj6q/BXit02EUEWoZrHujTXFOQm8pdnTnKjY2/dLKVPpJL7y0X3krrZkK8luoCvv0WA3Mb0AzmIc4yvufrrkGkRCYh7AW0eP2/SatbOliftENMF5Awr88bSTJItwRvcXMaQiJ3VY3bJx+z1l+gB4UR7gigzhc3WPhQ9vuaiVfe89We8B9tWWUEpZTXEpc0v3nU22WxLh4UnYWf5I2vetWqvsYDx6E/zMmsiHsbguDdB2osJS1fvUyZgPK5LppdSBWS1SESuC3giaxH0HoFExrCzksZsP4hsXQH66kV7/CjTLRTL8t39B1Klwu/97u96nIa+TKqrVHcUm81FX6wHaug68wIkX3Np9Dp7EBu/btZPlybtu1XJzmvr2gEtV38dMiGRgIyJmvo1EXmUWZ+7sqK/7ayJWFuzJDBJwmNm+svHZhNE1lJWmZ95w4voTX2XtWPaErPbFxGLrnOlhL42U3iy2lfQXwK06ovG+UjEM0eSUngJc8SZ20nsrISaiH9+7YxFZEIiAXEblERsox47S66r9VJ6THznlkT0S2fij2EqSexudUVj9qTwEthZXYSbEGWOuM7uYsLTta+zjUTkyE36Xg5LdwSbzWwujb4iwVl4JP7yLdApe42lIRE/gtK9MaFXZffHbM6v+AK2DpmQSED60bEgygxEtbIos5Lpeo71pQ6i502Imkb5y0UxyWOWIpG+jSJ2lnOeNPTVvz5SxJnSk2Pay/aXz9cJXecpc6Sn61nQhnU9KSkmmvCmSxPqZin9QP0x8+uM65Ids4gQ0e8Q0YNEdPPA50REv0ZEdxDRTUT0ku22yb34knxkX1cQZZbuA4IffXhhexJrRxahmrZ1RASBvwwbq0qNiMptv49j7fAXTm/fAzM15O8TiV1nA61W9pssJfNLurmol822Kn8xr5Vv+3jpda5p+gm6CXXGHjtLZLeNuiT+WpfsmEUEwO8CeG3g8+8GcFnz70oA/3m7DerxulPYRgmsCvPzrbISMpX6Nzmf2dVfgEzYzmYbjRzzsqqS6k9AfY2UUmwuvq/bPYmd5WVYyR6KW07wwNGt9VXSPmW+c0ui8r6/+PUBl67LsXuMr127fU2aw7rGPdVjpIV19fvsbbv7aC5mt3svc869Ltkxi4hS6i8APBw45I0Afk/V8rcATiei87bTph4MTUIi/YeZNGed0slc66YjkTGMoZSdi92tOCyWk8TuSlm/x3xdKY+/Enj8o3pjqgRfl7bdKXPTsjupJmIjApm/5JG1/rxS9ZyQIHQ3hSeqp3hTxLx7KkR0keh7/TW9HlcsFwC4x/j9UPO3bRMXhsqiY6eYNqJPJDVXLt0ptXBSJPX5Bed2HqQpHdj62FQksnQeqNKI3tThRJn6EP/eRrwHmy9VIRuzUxOJjtlEq9Iakm9+8XRN/RS2kYtWU5hd+tzpzC7noZ6SXq7k5/bNr2nbE7n4KAxeLxLRlUR0kIgOHj58OPmEfbaRPCpfVikRl31zWOcVUDCl74MORag8u8eM2XlAiOpAdgpvK+E6Af38c1TXg2KS2FlO/SnFbglrx9cnkrLXmPvyMdZOvIEUnuQ614EG39cuZVzi6yA7S7Bgp7DwQuy/KZ0ll0MAnm78fiGA+3wHKqWuUUodUEod2L9/f9LJfB3APhbQkGhd/R7rFNZOfc5KFLmE4PMYlpPk3F4miag3ZqS/UpldLtOqTFh0JZG146dR7KwR/jL/JmM5+e6LiH7Ax1K0KkMTDhEhoS5R6zrXTIRi5Nc5xGabCutyuQ7ADzcsrW8GcEQpdf92ncy8Pr6+h1gNsXImj6UbyWXaujYSEek6bKlYlGh+ty+Fx9X37eIrG7MbWUvGbKd2uG+8M+3VN2zsHnXRkz6/zy6v3Ya/ajKAwNcrnF9mk2ncX93PPhYe982bvtROLMffQ6sS5Oa8N8ZGukHVYJ1RMr98wRW33ufba2ynbMC4Y5oNieh9AF4FYB8RHQLwSwDmAKCU+k0AHwPwOgB3AHgSwI9upz2+yC45sq6kOWt7ooyJUOv/uTWR4QiVpe/kidPHLIsyXbuXHh8M6/avKffNc7GiqcTuGq0mjrlS1sNIOr9EdS9Pv8WY98YkNwxK01m9OWKeV3Yvm3ZLkIh3t2YhEpH4a12yYxYRpdQPRT5XAH5yTeZYSGPs/lfLQhZZh+iIsvpAVfddqJTzyidtGzUV9sNYfm4Ze6bHZhtxXvP/NN3U66wsSrToOhdux7rwvCvyF8Cv2Y1pvNPnFG3eaJxnS6prfN5S9tk1EfO8vnsqtoB1i5WLVndKTWTHLCI7TXz9FsmMoaoS8eFd5k0qy8l9QEjqA76HIptt5ElziJhhQh5/z9cJNtfntaM+qc3m/yz90p0jaUhkWSmbqiyaX7L6QMhfMX0zbeY2swKyB3JtdyKa6KWz5Gg1pSaSsjNBiFW2U5DIyVQTWav4YOgYLn5q1/nYPpFkm1sYLT/36HeClMqxe33+AroHW4xt5PfXCLuT/eWy2WK6DstJ8CD3pmeY/h7/QLUX6JS0kLY7FYkUbf1K9T7ziS/luXT8z9YXph7XJdMiMiC+iCulTwToPyBk+e5xe2fZdQkedDaP5ebpTTZbpfrNYPIxpyMoyXsm3Ije/b6Qvp/Zlco2Smfh9fpEJGhixPyS7qYbu6ckNN26HygVxbhBikzXt5AOicsKA4Rp8dK12xzzziisT4vIgOiLu2ueWamKXfOs+TwyeUrVHqtTFfOckGfEihRbXSMltWuesSNUbbe+WeW63U3ejXlYX3/kjpntL+NYM4XHs9vxVyXxV3es3jKlsOyOR9b2HOHp9uyuFNvX+nN9bGGkwlhjNnxbjJhfhXDMlr+qvi6Hatse68wRDorpdCtrzFwkUh/bLfa75lkbMA1JUdm+Bux7ihMs2HYrtu66ZFpEBqS7+LnFh981z9ufY/rmsUVZYZZlyDNiRXudbmXbwowytd1F+5DM2dGteR7umM3z6GOLsup+F41Zbrflr9IcBy+67fzV/W6Oa+i87nmKSjBmj91j5pdrC8vu3vziIeyUMZvnMfuntC5v4eyui3ntOGjCtNHWld1Ty9Ke6yFqsj2/OnSfNmb7nppqIjtc2mht1j1Ql5XCrpng4jfHakQwywkzFhJxdavWFnZkPcut1A5PtzvWQiKMMZu6pt1j/CWxe2PWRfSFyF/debYcX8fstvzVbjo5Zo5UWOQZiHjsLK3r2s05b54RZlmGLfOhKPWXsdFmN+Zhu31zpCg7H7AWXT3morabCFjkPDQx5K9og6Vx7JYzN81xDZ230+3fU/Gg0LjOReXoTovIjpbCSHPohqwiEYbqB8Q8z5ATMaNMf2qHH2VmdYqksmF7aCdeS9eTwuNF5bbdZvohbHfV8xcAbDDHPMsyzDKy+kR0+iGm2x7r+Nr8fMhmfWzXbJg6R+pzt3OEhdwGUjuM+ZUTYZ6TJ7Uj8Ffzs5m25PpLHzsuhVdh3qB7DpoY8he3JqJTeEXZHwdL10L3jBRxVdPzLX8xU63rlGkRGRB9gTaMaKMolfV7TH9jZsPnWUbI8/iEt3W7SbvBjBSJgHmewUzt6O8LqWu7NozorKh4Yy6d8xRNR/EYf2XNODj+yjPCLCeLTLAxy9lso40GcZq60TGbukbKc4MRlffG3KTwZuy62Zg5Ujn+UgJdc8wdC88cB0dX6xXOdQ+JOZ8041H7K4pEmgW6O6/sntLH6ge5OY7QHPPNkaXpr9D8Uh5/MXXXKdMiMiBuZF00UT0/ynQi66pGIjNOTaRXKJZFmbOMMMuzXlFef/egroV4+lETN+LSepIiYA+5VRVm2l/MMc+zPplAhNysmog0ypShVd0zYRIRdKDBmyM2ivFFvCFd018mQpD6y42WQw9kc361dptIJMI2Kp05UtcZeSniolKY5RnmOTUpz9Q54kMiIYReWbr6+7oxM1Jhlr+UEWhM7KwdLd0FtPOoXVGLM+HtqInPzlLYGCiacvPdi5xgM0kE+du5URNhFj5df+mbbYy/FnmdqojvT1RH1vNZZqXCOP6qDLvN/oHWbtZN3kWGy4pXNO3pNgv+PM/Yc8QsyncLJ3OO5NSgVWXpxntjzMJ6ZaRLGZG1Z45slYql2xtz4+vFjEdWKat6wdEIXTJHTLtdf5mfR3V1+o9JOPGRPGqWp54jQbPXJtMiMiC9C9g82JKYN01qp46seZHPxixDRn0WSjTKLJv6QPOAKEr+Te6ydsqqfisbT7d/HpcRExuzzbypWiICpz6Q6wh+DCOttFk75riGzmsd6zLSgmw2V7de8Od5c+1YOX6btdOOgxOVt+msyjNmDprw+yuIRLz3FJ9tZI65QyL1PcXpE9FzxEZuMsbjslLeuc7RLSvV9k+xFiDHtxq5zVuCzs5YRaZtTwbE7B8AumiPWxBTBsTfKhS2iqYmwowy8yYlZb4el9v3oG8WVxfgw2dfKozFvGnHXGGrqLCYabYRJ8psdEuFrWYx5Ppr1kTWKT0m+liLtSPse6jt5s8Rv66kJlJZvtaEicWM1yfSzS/fdebZ7fNX6IHcS880SJmb8rTTWaplPPKQiGqRyNKxm3tPzXOq98Er7HHwFgKjf4pNVrF9q+3mtgqsSyYkMiBuhKUjkKQos0Ei7JpIqXPW1Iv2uFGmW1iXRk3me87TxqyayJqLJkzfVkbExWQbZZk3spb21bipChH6clKeolSFTmdlgjpQrh8mXTPrPOfVU2ZZ1swvz3Xm9sYIUzu+XiI7RSxAqwbjccYgq7RIJKee3Rx/aUq0NIXnRV+jUp78VoF1ybSIDIjLaW+bwRJ6JlwmCZ9tlLVMEs2H56OYhnlj9I3E7e6OVarbsTRtzF26gZ3jn9k3moSp1BakS3vMHN3MZLOJ/OWMWafwEnom9OKXPObW1wK0mlPr65Qx6+DI9QF3zLpPRPf4sJCI1q0MxiMXiTRBydJgs+3iMPhKI/1nBnUJ1/n4srR+Zy1A7Zi7YDRnpMXXJdMiMiAuS2dZOpz2QLFXf9brE+E+UFUTKTZMkmWp6gg1lzxc+qmdqN3NvaCPPaYnPEvX56/uxuWM2YX8cwNdxMacW6kKfjqrjcoNX1tjlqSkispKuUh0NQtPM9I4L2jqxiyLUEuFLrVTpafwzF1ltS5nw0ozfdXVCimo67LZ9ILf6rL8lTW9MTabLeprZfi66rOzQgVu91ng3lMif5XdwjnLaHrH+k4XH5OEC73dgpiOUGc5sReCFj6XXZGZXU/Ju0ayXuEzWBOxYXobNaVAbx01SZDIfAi5MRfOnHrsrErFb1TX1/Y4+GPeLGx/SXQ1mWAuiazN4nglYXZ1dTNpcXyVY16Wdd2MM+ah1I5mPEa7zlt/NSkpARHBRX1Lz7Ub1g3fU7IxG03LU01k54uby9xqXvxjUm+Hdfu58qLkw9BC0xFnXdQ0FzC76sg6s9NZwnw3ADy55Ux4EduooTXPdE0knrNu0xqlsIbUFj6zHlMJCCOotv6k2WwV/4Ea85ekPqCjen2deWyjrEUimkLO8nVpI7dUtpF8zP1FpJvb4TRvT9eqM/IQp4ncTB/wdLOGQu6ZX6Exlyv0V2XUGRl1oHXJtIgMyFAEoam3PKaS7jGp2UZzbrpBT/CsY2dJekx0vlszpExbJFGmZMK7/tJ2c2oizNewAAAgAElEQVQims2mm8FadpagZ8LfbMizWyM3m83GiTIji64wKjfZWWy2UUZNv4Ws/tSx2ap2T6eU6zxmzB3ijEfWPX8VCstCUhPRfSIdWjXZkqHtgHRNRPu6T0RIv6dkY66wLCqWv9Yp0yIyIEP1AV1v4EVrRmRtUvNYzBuzkKf58JyIvmofqO621aZtHLvd/C2vf8DO37bRMQPFuGmlOcPXWr9lZzWFdU3J5Iy5Swv1c/y8SHGghiSaI6rb1YDDNip1cbxj4bGZcKa/LOQ2fo7w0ISz/1Vej4PjL00Z73QzVmBm9ol0qbBat7Y7fG7T15K62Th/9enTmoU3sbNOAnEhvkYinOi4n+82aiISNKEXAmF9wGLeCKC3a/fxHhLhR+Vmg2UeqQPpz9yHubwmkvVYO0CsDtT5uqz623yHI0VnjmxptJqGRMRsI10HqroCdc5IhZnkC39NJHyd9QPVHDMn5dlDq0VVI1BG34M5R+ZZl5KSIreZkcKb5fVedkD8OuugzttsyOq98t9Tsjlis/AmJLLDxWVG6AiCE+31mV1uQYyzt1HDGGoKefz6gNtUJUAipX/MKRFquystC7nV/rAYVlZNhNEDkJPR92BHmbE6kPY1YBY+482ZQ1FmFyzw9inT37UsDXYWJ7LOG8TZjNlchMO6RvNcafY98K5z3qR2zDGn7J3V8xejztgFSF3jHQ+5Gews7etMhkRMX7PHHEMigvmlEefUJ3KSiMvR1rnMWcaJrOsJPc+brUtKOzrmowmNRHT+NmO997uF7WbUxOK0636U+thjDqdd0jOhWTsS5OYyhlp/sZk3XTqrjlB5lFUzsnbHLOl7MAMNdo7f2tG2Yul6x1zK9t3ypvCYO/HmtBp/6XtK4q+ZNbfr1E7G2DrfRl9dM6ueI7Fza39Vqt8/xWJnzfz3lGiOVF3Kc6qJnATiQsljWy4Sied+TS5+UVWYz/hso64IaORvOTn+JsKaz5zN9RY8hpU+rznmVpcTcS1cf8XRhM9fZjeyhJ1lor4OiXDGnNljljBvBsbMiawH2VmB8+pX+LbsLOOBykZuJjurbIKHGQ9NhOYIKyof8hcDueUZYTHr7BbVRIytcUxWGMdu7WvAQKsjxxxb8N355bLwJnaWI0T0WiK6jYjuIKJ3ej7/ESI6TEQ3Nv/etp326Iu/MbcfLjW64F38jJpJWyiLD8+JFLPeQ7GOuPTnYV1gnpG1t9EG4wFRVqq1GTCYJMJud1NX281DIkYKr3lAxHSBhs1G5gJUp9EyxgOirKrG12TZvWEUM2N2+9Bqxoysu00BG4ZVTlFd/ZF+sdSyYeHNGn9VTLRqsrN0P0895rC/9MPYHHMSctvq0KrMX12qViPOeJ9I1fnL8XVtd6wOhN4cYY25HJgjOUVfPub6a6uo2vRrxiDorEt2xAaMRJQD+A0AVwA4BOCzRHSdUuqLzqEfUEr91Dpsal+JObdhaLuzLKOY1jKsGpaUZBdfdxuPWe7m+PMB3Qp7ZrM23bBZVMiaLVP0d0fPm9v57g2DQRTSNY+12GwRNGEikW6rFyP3G+ko1sdqG+vmTB4SMdMcpt0SHr87Zg57xh5zx5LSe2dxWDt6N4Ciqtp3erSRtVLIQH790plfZdV+F2fMWtcc84aAndXzVxb3l54D9v5Xtb9iNutzdyli29ecMefNbsH+MafMkfgbGfV1Xsyael1hzy8dIJ5o2SlI5GUA7lBK3aWU2gLwfgBvPJEGuTWR7qEYr4l0lNUMevsRLttI90zoCd9GXCbbiJXj79INui7B1s1s9NWhGH5UbkaZ0ZqIkapot+ou9S6+PLZR5y+9fYjpLw7byEnPsCJrJ99tjTkcLJiR9TzL2mbWlm3ECFK03RZrJ5fMEd2Qas+veFTuSf+l+Gsp99fMSeFphhW3JqJ7Pcz7EYizyrwpPCb6MoO4do4YtR3emKl3T001EVsuAHCP8fuh5m+ufD8R3UREHyKip2+nQS4767gVZXInvPEe68rYoZVdHzAiVG5NpL1ZOrvnxsIQY0nphj97zPFajsu8Oe6y2Rj1Ad0Ap7elmOdxFNONWTNvql6UyauJDLCzOPlud8xtZM24zs0YXV9zUUznry5XHh9zveBohtXxZWnNrzgS6Y4dw2Zz5wgnRdyRL+zaF2sXX6P3ytynLDrm0qE1C3tjfP7iUN+7YLS+f48v7QVoYmfZ4sPdrof+G4CLlVLfCOATAN47+GVEVxLRQSI6ePjw4SSDugkvj6xdOuJW2fDh8zjbyKwPtEySXmQtQCJLF4nwewDMlBSXYaWbwSzkxtR1d5YV98YYfQ/8KNNBX8K9jcyCtB1Zx6JMPUfql1CJfN17oKp2YWgZaZwxG9fZ8pcErY7YC+rYlj1H2OwsY+sSeV9NZgQa/DG7KTwTjcVQjM9fnFYBNy1up8LidaB1yU5ZRA4BMJHFhQDuMw9QSn1dKbXZ/PoeAC8d+jKl1DVKqQNKqQP79+9PMkhfwN3zfqE4hiZsJJIZunG2URuVZx2TpN/3EIkUncKnjNnVLzKzkIiTbmh1Z7oOJGBnOVEmu0t/pvseFD+y1mw2t1DcblgZizKpTVVYcyQWZZbdmBfuHGH7unslcL1PmaQ3xr7OFlOJweDTefonU9hGA/cUpz6Q5+arnzvGY4zNVjZ1jYW111hX5+D0iehgofYXL6gbniNZNKA0r7NvjkxIxJbPAriMiJ5JRAsAbwFwnXkAEZ1n/PoGALdup0HxghgPhs6zzKIHS6Jyc58fk9MejzK7lNQxwYQfyndzxlwa6GuedflbDiOtz86ymzMrxWQbadZOIesBMLdIObZVWuQCVlQ+4C8228jId2u72f5qakhbTmQtvc7a5viYncg6oddj0ew/595TLLJKi0Q6Fh6/ntJnwnHrQDNnzNx0aWmk0bRuPWZOWtxEq2ZNRNeBdkZhfUews5RSBRH9FIDrUdOOfkcpdQsR/TKAg0qp6wD8DBG9AUAB4GEAP7KdNulimnuzsApibZSZWTBUvw+aFWUa9QBz76z6mHDE5rKNNMsJ4PWJuMyb2hY+mrDSM8LIuvZPYTGIgAjbqLE7axacrbLCgt0DUGFjPuuldri5cjPfLevAth9sfX8x2Fk6PVN2RXkJWrVSnsac4dUH3DHzd+Jt58iWOb8Im8u4rk7hHV/qOlqGSlX82kKetek/aZ+InSKWIZGevzIGO6u07wsJ+2+dsiMWEQBQSn0MwMecv73L+PkXAPzCuuzpGrLsiy9FIubNIkUifT48I8p0b/ImahqFRCR1jZwcJglnzOa2J9Q2g2nWjv7+uYfV3LHZ7OLlnkUuYxtlfn9xovJ5L9AQsrPMB2pG7L3GWn9V9S60UhaeaffMQiKRqDzvzxFObaKHVpeuv8romHXq8fHjW/XvOaGsup14ifqBhkt0WVbGPmUsxNlnZ2m6flS37Pta282tiejrLKkhrVN2Sjprx4ne/pmovjnsKDOcbtBvWZvl9c1yvBet8aB39xY2h9MeeavizFgIjreRdRbXrYaYJAwev4MmOqZS/I2MuuygdTcdlhMwfKOWhq9NBGVGmSHU30WKfn8F02jKjjJdtlHobXvmQ1HKzrIKrsZ+TnPDlpi+e51NZlfQbqV7JvwMvnDasf5fb5viRtah89qBGdnzq7V72OZWt9k6aKuonDnCSEk5jEe9AMXnSP+e6lK1YV2gQ24SNts6ZVpEBkQjEaC+iMcFUYA74VNYTpq14+7iC3DZRmaqghdZtw1ZDpOEs1Pq4JgZOX6XzeaynIDhOpBdW+h2lpX2PbhstkaVyVTqp3bYNZHcTlVwfO1ls5XdLr5su80UXsafX2aQcmxZgqi2JY6+6sZXvUNAe0+xaiJGCs/1Vx6+zqWZFhpISbHYWc4cYddEHH9pW0T9QF7kNi0iO1rKJp0C1I1CTzYXcJFzImubYaVZFYsZJ9+tLF1zCxA+j79m7QANk8Rg7YTYRnrL6x6TJJMgqEzMNjIja1vXLHD77bYZLA1jaFm2rDDz+4f0tc16zIs8AxGvd0Gj1XlOQraRabeMeePqbpmMNFaevrL9tSXoEynth6LW1fZwfK3H+aQgsrb3zqKev0J2twFObl9nMTvL0uU1s3ZMOOeemsWfI4VRW13MXMbjhER2vJhIZGOe4dEnl+3P0ajcmPAbsxxHjjW6szqCqNQwBDbzxrpT/LHjRaurbRuSstnyWuseObbERp6xcr8ulfHIsWW99xUj360/y5q+CXvM/A7/jbmhO8+NG3XAX46vAeDRJ5fteWNj1pGi5a/mZw4i0H61rnOesyPrPCNrzIuZpJ5SX+fNZu+sxYxf1zD9deTY0vI1JypP9pe+p2bGPTVr/MWhzef+eypkt5lq1WzLI8eWjr84Y84N3Rw58etmGk2011nQpZ/ntb/de6oIBITrlB1TWN9pootpAPB/vekbcct9R7D/1A2cfepGNMo0o/K3v/oyPP+C07BrnuMVl+3HnYefqI8ZYBuZUeYPvPTCunAM4HtfdAHueeRJ6/t9opk3L7noDPzi656HJ7YKvOLSfawIVd8suxc5/t0PvhCHHnkSz9q/tx1LmFpctVH5v3z95fjs3Q/j1F1zPO+806Loy0w3/NgrLsG5p+3GLCe87vnn4hO3PmD5pT/eDvV91zecg8NHn4NlWeF1L+gY4Zyo/Fn79+Kq77kcjx5b4sUXndF+J6cbGQDe/QPfiNseeBznP203nrZnzmYbzTLCz13xbLz0GWdgzyLHNz/zLNxw9yNsJPLml12EWV7PpDe99EJ86f7HGGOur/M3X3IWfuG7n4tjyxKves7ZzKi8ZrOdccoC/+b7X4D7jxzHc889tbYnFlk35wWAq9/4fHzuq4/g9N1zXLLvFBH6+vFXPgvPOGsP5nmGKy4/Bx+5sW4pG5qfZrr0uy4/D48fr9l/r3/heTh6vGjGHL5WeZbheeedin/5+svx+PElXnbxmcgyal6VHUduAPDv3/wi3HX4KJ5+xh7smueiMb/jtc/FX9/xEE5ZzPDii07HJ774wI5BItMiMiBlhfbiX3H5Obji8nPaz2JRplkfeMGFT8MLLnxa+5m5E6+PbWSimHNO24WffvVl7Wf3HTnWfH88ytw1z/G/fPsl7d/1+z04SAQAfuClF1qfcZCI1n35pfvw8kv3WbqcmyUjwqVn78XbX9ONOfZOEDMqP33PAj/5HZe2n915+Kj1/V795ibPMsKPvPyZ1mecnWX1mL/7Befhu42Fi8s2yjPCiy86o1249N/CbKPuoXjB6bvxM8Ycuf2Bx4NjNtlsuxc5/tkrn9V+piNd7pjf/E0XWZ9JkNsrn70fr3x21wgsQV+Xnn0KntMsXACMnXjjSOSsvRvWHLn53iO1LqMONMsz/Ngr7DnC2QJJpwnf8MLzrc/i6Ku7zt908Zn4povP7HTziZ2140XDUJ/E2FnmpO3rMid8PqzLiax9Nsd0NWvHJ7G3x2k2m1dXUBPx6QIhJBL3dRRNeM6r9VN8zdPt0Oqw3QNjLkNjDl/ngjW/4jl+n8SR2yr8Jb8vzKCup8uqAw0/CzgBUj50T3HTvJ5AYqqJnARiRtausHP8nhs1xjYy6wNDuqEos1L+m0X/iYsmfOdO1w2nwsx0g++8wPCDrQw8ICRstiG7uVG579xchlVPN1K/GjNmlm7ymMP7OQV1I5F1yZgjg+wsxoLNqYn4ZBatfQ3rcuZIRh3SsnUndtaOl+jEYUx4b9QUoyMGI67wticmr9yVjm0UYWclRoomm62nG31AcKJMv244smagLxVAX1m86zw5Kg+iCV5k7R1zJLIuQnMzEuDocwf9FakPpOqavUQ+3fqYMHLzL0BMdtYAWs0jCL0IZjT4bDafLhDuUVmXTIvIgIRgaCbI8bsSYxvpm9ynq82JRai+yEX/PcYqG9SNvIWtqJTXZq3LY2f5xhxbdNP9BdQPzCG7WZFioq9bu72okYdEvGOmmL/iczMViXBqSAO3VD2/IvRzfQ5XYnYH0ReLYaW8KSWtn6zLQDFD/uJcq3XJtIgMSByJ8NhGPl0gtSbCzHeHIp9E6M3pjUn215j6AAe5xaK9oZpILMqM1IG4TCWfLsAZ8wh/ecZMxGAbjaxrJKOYEdc5hL66l3j5r7N+n30oJZU6v6K6AeQWC0bXKdMiMiArqYkkwOewbiTKbGH78MQble8eUU+p1DD05o05JVUxNsc/xl/xKHO4PqD7HsLoK2XMoagcYLCNypi/4sxBry4z5bnqOlAsqNN/DhXHU+dI7BUJYXJP+FmwTpkWkQGJR9bxieOjZ0aRyKhc+XDEpf8+JjqO9caEWE4ABvft0l30KVEmj822XYyhalRkPRqJJNVEwmg1j9VyItd5R7LZAmPmppcH0QSj63wUignohuxep0yLyIAUwYgrxjYKR2vA8INtTFQeizJ5bKMAikkdM/PBFmKzDZ17u9hs+ju3C7nFUAywPZF1DK2OiaxXgXTVUKARui+YZJWgvxJ8XeunX+dxKGaqiex4CUbWDDpiLMqMN0Z5Iq6RUeZ28vhjfSKmfT3dUL47MmYWsyuBzab/vl3ITb/PfkgXSOsT6dKlQ0FKGK1y3vu9nehrSH272GxxJDIWuQ2j1XFIJF7vW5dMi8iAhNhZvAajtCiT0zORjkT4HcU+3dSmqtgbGcfUgVbjr+2oIY3T5dm9HZH1SDSR3JMTQxMViFLZWd0bAl2JvROkDNTcav302heH+j50P05I5CSQUeyskO6oyFo/jCM72gbZRumR4nj0ld4MluIv/S6Y7UNuI+oDQeTGZeENp/BGRdaRxtBk5BbpE4nZneyvIHLjpZe3q66RivpiTcvrlGkRGRAO2yiUv41G5Sm5Xz1xBuYNJ7IO03QjdaCQbrC2ECmsN9/rU18F+hou6DN0A2OuQtc5RolWnLpZOA0XQiIp86vWz4IvLquqgL/yYV9rm5LHzEAxQ7oVx18DsUKnG0jhBf0VZmfF51c4GJ3YWTtYOJF1aMKP0QXS2EahqFz/PbaIpOuO95efzcZkZyXk6WPMm7HIbYyv9TFe3QCbjfMwBgJso2h0PHZXg7Qxc7q3U9BXlhGIthmJbIOvJ3bWSSBhJBLOo46riXDqA/J6irY73usxHFnHut3HjDm1PhDyl/57an1gFeysIbTKYbPFXsTly5e3Of4ENlutP3ydOzZbqIYU21J9aMzxd4JsRw0JCI85XhNJrwNx0uITO+sklrFoIhR9xHTrcwTqA5GH4vYhkcQ+kWgdKN5UFUVfwdpEYpRJ4UgvFpUDgfd+j6gPhK5zjE4dmyMhtlGXRvN+XPua8c6ZId2Q3byofOA6l8P3lNZP7hMZWdd4SrKziOgUIvK8CeMflxRlmJ0FjEQi29AnworKB3SVUqPYRhx21rqRmz53Ojtr+9hG24W+YhFqHK1ykFvAX2PRagIS4VLIh5lOnDkyHCCNQRNPiT4RIsqI6J8Q0UeJ6EEAXwJwPxHdQkTvJqLLYt9xMkp9Af2fcSLrdBQznO+OsY149YETU08xzyHSZfg61W4eOyu9JhKzexg9pdeBYlF59DoH6kBj/VVy6hpDwUKk81t/f4rdYxh84+oaGZQKbAfE2jvr5CisfxLAswD8AoBzlVJPV0qdDeDbAPwtgF8lon861hAiei0R3UZEdxDROz2fbxDRB5rPP0NEF489Z0hqJkkMiQzD5zEoxjzOpz+oy2AbRSP6Qdg+bu+s+phQVJ7oL86YIwtQqDYR22hze9Fq+Fr51GO70o5CbiN8DYxDbuGeiXAdKHadQ7WJGPoahSYY742JIpEdQPHlvB73NUqpJRE9QynVelop9TCADwP4MBHNxxjRpMd+A8AVAA4B+CwRXaeU+qJx2I8BeEQpdSkRvQXAvwHw5jHnDcm2RdaxKDPAadd/T64PBN77PR6JjEBfjJ6JKkJZDb+RcUjXts9ndyrzhlO/ivtruPFuiM0We+93GakPjGKzjUJukfsi8N4X7rY6JwaJjEFQ9fvsg7oBevG6JIpElFLL5sdr3c+I6JudY1LlZQDuUErdpZTaAvB+AG90jnkjgPc2P38IwKvJdxetSMKvxIwzYLaVbZSc7x6OMmOsHX2zJLGNVhGVJ9dExvhrRGQdYRuNHfOQLhDO8fP8Jd+DCmAgt22aI+yaSAiJJKOYYV+b77MP2x1AX4lp3nUKpybyPxPRrwI4lYie5xTVr1mRHRcAuMf4/VDzN+8xSqkCwBEAZ63o/D0JRYq6VpLSGMVhG2UEb5RZnzteExl+gU48zz4QZLJYZbEHREp9gMtmGzw3xZFb6FrF8t2hlxXF7E72V6BADdQv4xrnr8SoPPrysfC7yk37enaX4Zc71bpysgoQfslcLF0a1G3P6/24fTFYSH9ozLEXl/3BZ76Cf/Ghm/wnXrFw0ll/DWAXgLcB+PcAnkNEjwK4D8CxFdnh85TrHc4x9YFEVwK4EgAuuuiiJIMu2b8X55y2y/tZnG0Uv1lCUeYQbAfCOdgx+e42Kh+Y8WakOPNw87arTyTONlpBHSjBX7EdgGNRZqgOxBlzFIkk7M0G1BHu8SK2AG3HuzVOMBIZpZtYTxlVEwnvR3fzvUfwydse9H62aokuIkqpewH8HhHdqZT6awAgojMBPBM1U2sVcgjA043fL0S9SPmOOUREMwBPA/DwgM3XoEFJBw4cSMJ7/+2nXzH4GacmMg+8bzysO7wAAQ0SifWJJPRMcGoiYbtH5LtZeePwC5pS2EY8Nttwjj50Xhb6StYd9pfWT73O4+oDHdvIt1Eirz4QqAMlotVxfSIMf0UW7DGsstiYQ4ST0BxZpXDSWQQAegFpfn5YKXWDUuoJ85gR8lkAlxHRM4loAeAtAK5zjrkOwFubn38AwJ+poQT9Nst29wCELj4n3z04aQNd5xyWU8zuZDZbSHcb2UY8Nlskyow0WIbOHYsyU3xd66ej1VH1gVhkHWCzxdhGYSQS63Zv3s8+cFuF3jC43SgmbHfAX4ym0qG5uWrhUHz/jIh+moisvBARLYjoO4novege7knS1Dh+CsD1AG4F8EGl1C1E9MtE9IbmsP8C4CwiugPAzwHo0YDXJdsdlYcufjjKHN7yWtsdj8pTkcj27DXGZxvJ6xo85JYeoZrn8J07tNjXx4TZWUPC6iVK6MAeO2ZOZD0OrYYDs5Q6YzfmESgmQJsHhlNSnC79UGAWSouvUjg1kdsBlACuJaLzADyKukaSA/gTAP9BKXXjWEOUUh8D8DHnb+8yfj4O4AfHnmcVwoGSY/oHwkgkjiZCEy+5PhB57/d2sbOA7WMbRdlZAeTGeUMgEOpd2J76gNZPRyLDUXkMudl1oH7hbEzPBKsmkuBrfe7UXqLVIJGBYCGIVhlIZE3pLM4i8q1KqSuJ6G0ALgKwH8AxpdSj22vazpUxOf4oOyvCvGGxs8ZE5SP2cxrTdT4mss4DUeYsIywjKam0bvdYvjv+TpBRKCaEVkN1oHYHYHlkzUExIbtj3dsh3bJSWMz9uy1xduJNnV8cNLGtyC05MAvfU6sUDt65noj+BsA5AH4YwPkAjm+rVTtc4myjKviGwPqY0MQZvizhvod44XNMzwQQyVknvoUtVB/Q+qk9Exx/pdRTRkeZoXz3iPpArZ+O3HgoRs4qU4rLZls9+ooikWAdKOKvQG8MG60m2M1Ki+8UJKKU+nkiugTAp1Azst4A4BuIaAvAzUqpbesa36mio5KhLupKxWsLQ/vlVIEX9+hzh3SB8I06aDOje9s8R18/vuNoyO7FLLBw5sN1oErF039D5+WiLx/biMvOCnXap+qGfK31Y3MkdO503eHrzGGFmcf19RloNeTroWYNhm7M7qH+ytEMvsDcHpsWX6Vw0llQSt1FRK9RSn1Z/42I9gJ4/rZZtoOFAyW3i53FYRuFUhVDbKOuT0Rut1JqdN/D7lS2UTT9N66eoo9bOMew6wNJyG0V7Ky0xrtQfYBfE+nrc1FMiKYbQ1/DBeq47rFlOahb2x1CbjGiS2Kal8FmG3pV9jqRCLt8by4gze9HlVJ/u3qTdr5w6hpDCwFRhG0U6RPh1DVCaaV0dtYwfNZ/Su8BUIOd8lo/NUINjzmdxz+2PrD9fSJhQkBKn0i0253jr+iCPTxHQnWgjMIU35i/YmnLUGBWKT/64qSXzeN8+oPzawSFfNUyvZQqQVj1gWCkGEYT8Rx/4kuWQlEmNyr3jDnaBc2qiST6K+LrMb0xobpGNLLeRrbR9rOz0upmoTFzzgvEcvyBOZKHC9zxwCwRuemF05MO486vlLrGTmJnTYtIgoxhZwHxaC8UcXEi63Wzs8bnu0f6ayRyS0ET8TGnz5EY22g72WwsdlYC4oz6mrHojkETUd2hwnrgffa17vB15s6vEAU9tSYS2vV41TItIgkyvu8hxjYax84a3qhu+L3f8T4RTlQeyfEnsNlq/TAFMxW5lQwigj6Hz+ZU3c7u7akDhffO4qCYcVH5GH+lRtYxNBEjq8RouinMwzF1oPjebGGySmzMq5RpEUmQMT0TQJhtNDayzgjefYtMu33qnDcE6nP0dGN5dsYWDduK3KLvpA+/1ncc+kq7zmPGPKaGxEMikdcge/zNr4mMQBOBOlCYNj+cCmNf5xWPOcbs0n9OrQOtUqZFJEFY7KzIgy2F2VWfOxxlxnpM9Dl6uiP2zuqite3ZlTZWB0pmZ62EbSTXjb3PvtZPrwOFehe2t54yHCwUzJ6JIbYRr65xAmpIQYQefxcJEF6AhvxFROExT4X1nS0dNW+boswRSCR2s+jjfLrAcP42VAfa7qg8vBPvGHbWKqLM2Duw5f7S+ieihhR67zeXzeaNrEcjkTEMq+EdgLVuOvoaXysMBSmj6kA7aAPGSRzh7Cw7VJcAOFFmYlTOYHbpc/jOC4TqKfZxtm4V1uX4K4SgKFwfyAK+ZtWQUqLMZmEZMlkBEY8AACAASURBVDvMZtO66egrOOaQv6Lzy7bR0mWiVS8SiYw5Rr4oKv/28lpifSJxf4XrQEOnDs3tMWMuS94cCdLmp8L6zpXQxY+9ElPrp6KJWL6bs4iE4fPQhNdIZJh5M6TbsY3WXxOJ+StkNy/KPBFIZERdg9GcGbU7gW10QmsiMd0I0o2x2fQ5erqMnhwgnApLHXOMzbZKmRaRBAmxjYrIjVbrhyPrWHomdeJwcvwxiu/2jDnWYBljG43s3g5s3mgeZ+vy8t0p9ZTW7oRudwDhrvNI3YzXG5NQE+HWB0bUgZLZWZF7Ksbs0sf5dIE0f8UCM60/9YmcpBJiG3EufhyGpkfl6VEmb9uTcWM+ETn+dDbbdrGztr8mEmIbMdHqCPSVUhPRf942JBJDq4N9InFf1+cIXWe5v3g1kXBj6IREdrBwItTU5qb64seYN2ORyHCUGaP4hnLl4XNH0EQ0sh5uyBoTZfKi8vQoM4hiApsCjusTCaOvGIlh2O7YmIfZRjHdjm3Ut5vHZouxs9LfBMkhqySh1ZHBaIy+PiGRHSycKDO1uWk0EolEXKaNErt5urE60PrZbGG2EY+IMKYD+4SxsxIfLuHrvAp2lryRluuvdGZXuE8kdl5g9b0xnBTxTqmJsHbxncQWk5FRlBU+ddthHFuWeMkzzsBGs6U5F4Z+5q6v48HHN/HMfafg+Rc8jYEmsnYn3i8/8Dhu+9rjOGPPAq+4bF88sjaizAcfO47P/MPDWMwyvOo5+6NowszxH9sq8edffhBFpfCtz9rHQl862lNK4c+/fBiPHy/wDeefhmfuO0UUKd54z6O45+Encf7pu/HSZ5yBolLYNedF1vc/8iRuOnQEezdmeOWz97PqT0D9gHj0yS381R0PISfCtz97vwi5bRUVPnXbg9gsKnzTxWdGWU61fveGwU/f+RC+fnQLl569F8877zSRv269/zHc8eBRnLV30VwrfmT9tSPH8dm7H8bGLMN3PPdsNputrBSe2CzwF18+jFIpvOLSfcwx14tfVdVz5OhmgRdeeDrOPm2j1g3W3LqdeG/4yiO479FjePqZe/Cip58uQm53HT6KW+57DKfuauYIw9d6zA8/sYVP3/kQZhnhlc9m+KtFbhU2ixKfuu0wtooK/8MlZxqkD14d6K9ufwiPPLmF5557Ki4759TgDsCrlmkRSRDzvd9/fefX8bbfOwgAuOLyc/Ar31vvjh+beGWlcOTJJd7ynr+FUsC+vRs4+H+8RoREfuL3b8Cdh58AAPzlO75DlO/+t9ffhg/dcAgA8Gs/9OI4EjF6Y/7fzx3CL157MwDgR19+Mf6nF5wX1DXt/uL9j+FH/u/PAgBefNHp+NCPf2vrk5iuUgpv/q2/wWZRYZ4Tbrn6texIsawU3vGhm/CZf3gYAHDtP//W2l9M5Pabf34XfvPP7wQAvOv1l+OMU+bNMXF21idvexD/7P+5AQDwPS88Hz9/xbPZY37wseP4J+/5DADgwjN246/+xXeK2Flve+9B3PvoMQDA3/3iqxn1gS4l9a+vvxUfvel+AMB7fviAiG30vr/7Kn7lo7cCAP75q56Fb33WvlqXEVl/7p5H8aO/W8+Rb7nkLPz2Ww8Ez2vqbhYl3vxbf9MEFxlu/WXeHKkatPq/fvDz+Pw99Utb//vbv43l63rMCr/2p7fjdz99NwDgX3/fC6D5GnE2m8If3/w1vP399VvGf/ClF+LHvu2Z7DF/9etP4p/+l3qOXHb2Xnz8515ZB5RTn8jOFt3rcfR4AQA4dWOGo8cLZkGsjnye2CqgFLB3Y4ajm0sAiF58M8o8ullg70YdBzyxVYgi66PHDd1N0+5417ke896NmaMbt9vUrf0Vzhtrm4pKYVkqbBYVTt2YYVkqbJUVYwfg7sF2dLPAqc2YjzZ2c+sDRzeXrb+ObhZ85FYO+yuW8qzPa+tqe7h1IHOOPLlZsiProqqsOXJ0cyliG2m7T92YNb5mXOdmJ96+bjxdquspm0WFolLYuzHD8WWFsuLVUwCgVApHjy9790Vsbppj9t1TEn/t3Zi193JItxuzwuPNs2Nv4y/9nVNNZIdLntVvgNM3xykbMxRV1ebeg1E51W9D0xPllI28/bliIBH9hrmiVDhlI29/jr0VsX3znKrt7nSr6FsR9d/rMdt2s8acU1+3Uu1b4TgoxvS1aTcnUtT+7nTjDxfdoFYqhaJU2LPg+0v/uVSm3TmWhm6sPlB6fF2PJV4H0tekKI3r3MxPlr+cObJs5ldGYPVM1E2gwMY8b3XrMUeus1JtuvaUjRmWZcWqiWQZoXTuqXrMKviGQMCuXxWVssccRW7mmA1/Gc+CaC9RM7+03Xx/ZU1K3datx10FG55XKdMikig62tMXbfeivoCsnomGbbRsHi6753lbL+AwhvQ5lmWF3fO8/VnSJ7IslaGrGJG1qVvbvWueY1kxx9yiiW7Mtc3cekpl+bq1u4owu4zIellVhm7F8HWX2lmWCvM8wywje8wDdptso9bueb0QSKJMy1+NryR9IsvKuc4MNps+hzlHipIzN7uofFlVmOUZ5nn9Nk1JTcS8zoURPMT9VbULkHVfMNGqXvzaMVdVHIkYC5Dp68J4FkSRSGlf56KZm7wxd/6pnyNV9H32q5ZpEUkU3eVaGA/UoqoQ64LWn+kJq3WBJmqKIpGObVTnfSW6XV2jqCpDt7abiLdFg44yF3ld5Oezs+wxazRgfv+gbmn7urOby+Ovz53iL/0gm+VUP6CtMcdz1v05wmcbuf7SY+HWRIrSuM6Nv7lsI0u3sZvtr1JhnlG7oEnYWfqhuKt5oEr8tayce4o15o40skz1V7OAbcw6tCphsxWG3VJ/LQfuqalPZIdLGx1XOsrMrOiDUx9oo4+FGb1ENhTM7RvViqwjW16bNZGlpaujzHjutzCizFme2eiLgSbaqGmRt5FeVDdv0hyGr/U4JJF1UVatrk6TcHytF6BZRphnmYPcInl6wz8dWg03durvtaLMhY1WOV36+p0U7XUWRtZF5cwRZs1NB1ezPGv8JYmsO9Sye177WtK9XTj3VDtmBlrtj7li+bobc536muc2Wg31xuQeu5cC5FYZgUarq8/7VCmsE9GZRPRxIrq9+f+MgeNKIrqx+Xfduu10xb34exYz5+Lz8917jAnPj/bq9MyehR01cdlZhZEKk+sqLPIMiyYtJ0FfOmra0zxQJShmafgaaBaCaEexnW7QupIx16m0CvM8w3yWWWgixu4qnDFLkYipCwCbBa+ZtVLAVuuv1KjcrgNF2WxGgLOs6vTfPM/Y0XE35u46W/6KsMp0cNQfM5dhVV/nVreSIBF3zFWUzWaP2U558sZsp8X3LFwU8xRZRAC8E8CfKqUuA/Cnze8+OaaUelHz7w3rM88vs3bSmhEE7wL26wPdg41b19gqKijV6er6QqwWA3QPiI1Zhoy49QETxejUjh1lctBXl7+dCXQz+0ZzayLM3phl6dZEeChGL2C6JsJGnA3byLzOyyIeoervLZuHmtYFgONNLwTHbn2sNUdE9YHKmV9cJFJh2dCwZzkJkEhmBRpunZFDmx+6pyTX2R0zl53Vjjkjx27edZ5lhHl7T3HYbNSeV4/Z9MFTaRffNwJ4b/PzewF87wm0hS1uZC0piLmR9e42yixZOwADwPGlA9tZkbUx4UsjJcVAQOZ7v5dN2kzfLOy6RqWwLIyiaanaaE1SEzGLpvw+kcoqmi51lMlg3uicdZ2qyLBV8tGXWRPZmHe+Bhj57tJOVQDddeegif4c4ftLR+W72vSftIakukCjUl19gIHczEIxl52V53YNSY95SzLm0k0RS1CMTkVn7UKg/TXEZrPHbKTC2Mgts+opkjmyStkJi8g5Sqn7AaD5/+yB43YR0UEi+lsiCi40RHRlc+zBw4cPr9peAEZkbSwi+sGkPw/r2rlfwLj4jPxtF2Xq9IOMnVVUCvOcMG8j6/iGbTPjoThvHqgm8ybG3ClKZTDSsiZfzRuzC/nNcfDZRmYKj5PvthfdeZY1hXUjygy+N6aJMnu+5vWJ2JG1niMpSMSpITHrA8smbanTJjI2W+2vesxMJJL7AjMJm62y5hdgMqx4aLWolOEvjdyY6KvUCyexEFBntzG/mp0KJOyslDmySllLxzoRfQLAuZ6PflHwNRcppe4joksA/BkRfUEpdafvQKXUNQCuAYADBw4oscEMMXsXiIDFrHmgcusDpR1xAbyL30aZhX5ApNQ1aibJLKuRSFHGkYg9ZuNmMRbOWH3AZGftnudQRt5e0iey28rTM3P8pV00lTFvmjrQLGsDgLIK7wCs9fWia/uahybMulk7R5rrzrG7N0dYbDYnsm7SM7y+GnS6zgNVxM4yEHoqm829LzhzZNPxlw4KN+aMV04393Od8tSIMx6YaTShFNL8VfbHzJkjq5S1LCJKqdcMfUZEDxDReUqp+4noPAAPDnzHfc3/dxHRpwC8GIB3EVmHtEWtUlkRKotJkjvUvIWziAThL5pjK0uXk7+1ioAukyQScWm7dESvo6YlMyrPM8JmUXY9JqL0jN0nsmtu1kRiW72gHXNZdRTfZYMEY0gCqPc2WlYKe3KdquBFmWbK0/W1/nxQl5yeHMdfnOvcnyON3ZHrVI9ZLwT2mEPXyWIbGamdo4XRgR15w2BpROG7mkZFjS7CbzZ0KPdOCi+42JPfXxpB7eb4Sy+cGTW9MXFf1/q1r1Vm+NpCIgFdsoMryRxZpeyEdNZ1AN7a/PxWAB9xDyCiM4hoo/l5H4CXA/ji2iz0iMnO0rnyJROGulH5nrZoynlA2JBV63Z9D/GoSU+8hckkkSCRsmahLGZkRdY8NOGOWaOvsN2VqskEQD+ylvhLhNwsOnWFhZHC4/qrGPC1/jxkt3+O8PxlHtvNEVmvx7LUdncsPO6Y6+ZMG8UADDabSVZprtUWi5GWtQwpc8zcIKU+1vEXA8W46dL5rLnO2tcRmq1JGml9XSrjngpc59wOrtw58lTaO+tXAVxBRLcDuKL5HUR0gIh+uznmeQAOEtHnAXwSwK8qpU7oImL2esybi780CsXR+oARZWpKYQtDGTlrvWPpHodtxJrwpbLyt5wos7YrawuudZojgZ3ljFmPg2O39s8eB31xdPV5NuYZiJhsNqs+oFNSXdokdI21flnWZILOX7K+GneOSPzVmyNFl4oc1jWaMxvftiw8Blo12UbzPDPYRsx+oMbXeUZYNDtiH2PWgUymkntPceoarr+2GHUzi0Je6gbLDFsF757KDX9ZjEcGPditibhz5Cmzi69S6usAXu35+0EAb2t+/jSAF6zZtKC0qYpKR1x2c5iEnaVh6CarJkLWsWaqIv7+7P5DUTeDKcY2CeaYa2aXw85i1ES6lFQmGLN9bMu8KSo2m03rztsGOCHbSKekMs284UTlOjrWqR2y2EYxFKR9Daxojgj7kNp0VtZd51h0a9YmWoTORqsZiqq00kLmOHh7jfnvqRizyzx2l1U3iwVmXV9N22CpkRtz0W1rIhlZvtbjCo3ZrANJxrxK2QlI5KQUzTbSRVM94bkMK5OB0RXWeftImce6bCP+hFctj79jZ8Ujaz3meVY/UCVd5zq1k2f1w2XsmGVstvrYbsx8f5XNQjDPbXYWh82mqcXteSsTicT3SHNpzawx50NzpJuvofPqY+sxU0sIiEXl3ZgdfxljjrPZ7H3KzHHwGGl+f0l0N/IarbbMLkaDpcnCM3uJYveUGVDO88zytWnbkN3a19Ixr1KmRSRRzPqAhqEAl2HlbHUw58NQN39r0l1F7Cy9dUlm5G8FNREfk4ST41+WXYrEHAevUGwjkRRd3d/C8Zf+qEtfdekGaU1E+9q87lHk5mPeSBh8zhzh2K0/22rQqU7htX01TPTV+ivrOtYzYrLZqsp7T3HQhDtmTvqvN0dystAqmzZvsPD4aNXuEzF9bdrm17V38XXnyIREdrh0O/G6URNv0tod2PybZebcLLuMvaC49YFl2eVvdS0nlivX+jo9Y+W7WXWgLseva0jmOGJsNvNYyc0ycx6oZoolFil2bCPdA9CldvhIpFs43TFzakhtlCmZI71F10CgsTni2tg8UDV9PcY2autARmqH4+tW12hmlcyRjmFlj7nVDb7P3p0jGnHG60B9NlvDzmL4uj5Xh0R0etlGIvEu/W6DT3scoQV7lTItIolisbPM9EzBq4mYPRJ6m4VNlq59no1Z3rJaouysvIsyAXT7/CQgkXmb++2YJCF1M7LWjYrmOFhoorB38U3RnTsISsawIhHzxux7WDSsHb7dNjur3fak1WWg1cKeXxxWWVtPaXQXeYb5LMVfdgpPpNsw4WbOXOfsLuCOmbvXmKnbXWdGj4nxquxlEuOxQxNat1Loti6JstmMZlZnfk1IZIfLLKt3ljVZKICdNgnpmsfuWUgi636kOMu6gq2k270tjhe8VEW3t1Flp3aal/6EtnfQ/upSO/00U8zuY1sJ/nKiWZsxxOvSrxrWTxehan9FIuu80R1I4UXz3c38IkLb8JaGRDTbKP6CJh9ym2VZt31IDK3m9UvTLHZWEW9y1HZXlYFiNDtrSz5md47waiLdXJznVI9ZhQMz/arseszK8Bdv4bTHTH0kGJsjem42aUfumFcp0yKSKB2nvYu4AGmvhxNZJzSS6QhEwjbq6TK2CG/HbBQB29QOp1HRSO3Ms35hncXOcumbS0FU3hbwdUNXnM1mjbky2EZs5NZRuXVqhz9m0191mkOia4+5DjQkbLaugG/2LkjQhDJ8zUVume1rBxWFUbZ/vzBZn0iHeGZZhyY4wdXSCCz0i7j4bLaqZTyK5khu11P6ZJWnzgaMJ6WYlF774suipozQ8uE5TUK+qEnXZ+J9Iv1oVjNJuJG17ig2C5+bhWzfLR3Rp455l6gm4iIRPeYGQTHqQDptOc/MXXx5Y9b9FpoGbtvNQ6vyCNU+j2ZJpfh6nlFLvpAw0pZlBZupJPBXu0/ZCPQlICL40GrLwit5xXFrfuXdxohcNptmPLrXLsZmM1Gf64MJiexwMSPFmXHx9f47sVymPtZM7bS6nL6Hwk431O/uDk8c/VGn2zFJJEhER5n65tssSlZUXpZdlNnzFytPb6dnUnTNl2lx0YT2bdcMJs/xu/6K2m0ca/VMJI25Lo6n+4tE/mrpreYDlYP6cmN+GQtnit060GjHwViwN409p1q0ylw4TX/VCJ2HYvp9NZ0tGcXYbDYTbp7b99RUE9nhYkbWcw8M5eXpK29qhxdlmsVxYunq937b6ayuOM5nGzW7+Bq26KgxNObCiDJF/nLSDbI+EcdfmR4znzHk+loelavW1ylj1pv6scfsnEfv7Zbi63a3ZoG/bLZRl5Ji6+rUjjtmgd27nJ2xJellHdi1vTGxlJTjW7P3ilMT0b0eOsDRtnD8pQk6cwvdr7dP5IR3rJ+s0nXI2pG1tHeh3mun/l0XECV9D7p4ydlTSeu7ukVZochIyLyxU3iimsjMXDjlY17M6mawpD6RvEtJcWsiZqrCLBRz/QX0yReh99nXut2x+o2K5jgkvUTa3xJ/6bnYLpwJNRGd2tG2sHTLqmNnSSi+ZvovM7ZMSSjKa5YUp09E65tz02TwzSPBVYvcDHaWtoXjL32sxc56Cu6ddVJK2yfipHbE+W4z98uAob7cuJXvFkx43QDH3dLCYmc5DwheTaRqI1SRvzxjnmcZa8xeNpvVJxKx2/Jt13jH3jurTVVkVqDB8Vd7rFFkThpzZgcaMbSaZ2TNxc5fkjpQv1bIr4n4+0Q47zLp/GXfU5z0st1LREaalx+YdS+lkr1PpGsVkPmrG7OJ3KZ01kkhXWRdYTEjLHJ7s7jQ9dOT8lgbQcgjLn0evRcUZ5M6/Xmrm3U3S6zHROu6m05qWzjn1fx3M2ri2O36i6i2m9Xhn9v+qt8NL+s673zdNd5J6gNbepsYob+6MXeBBs9f7hypAw3uxnw9tJp1m4ty7F6WOoWXWdeZy2bbMnbGtsbMWAiOLUvMs6yl3koWXdtfGbu2MDPuvx7lPjbmJhjdcgKNY8uS1Yekj9XBpDmOp9LrcU9K0TvxmlsdADqXGe+ZaI+1UmFxap6b+9UFSE6uvP48s3O/Jk2QmeMvHDKBHnNMtzu2vy8SN9+tz2mNQ5Arb7drqfiMIddfVZOH5jO73K1xePnu7tg+hVxSN9MpPO5rU+0x23tncfpENCV37tjNjsqrgToQd4405zTniIwSbfuLl/I0m1m7FBWbndXuU2Zf95iuPtZXE5mQyA6XjPT2DjaT5PiyjG43YOUyPbA9NO8yZ3sHTYVsdSPbUmRkUz01s6ve2yiimxkbyzk03diYM2PMNqc9HmWaY9bnnBtpptC5XX/VD4gMW0XNuIpfKzsNZNrN8peZ2jF8ELu/bX/1UxXhegqsY7Xd3O0wcnLTM91+TrEHqj2/bLujupnJ/usj9JC/zb2z9GI9NxAV50Vc7tY4XKpsP51FRi9RULV90ZsvhRebX7l7TwnqsquUaRFJFDOaNZvBuD0T7bFNeibPyNiiIV4f2DS2gphbuvFzd5FiVzTlRuVmlNlRCmVjNqMmjt3msfqcsyzj6Wb2eXT6MMlfFh2bWx/Qb790+mpibDbLXyTyl9ucqf3NHXNuoom8a7zjsrMs3VzmL32smcKTXme9WNcpKf6WKcn+csecZS1rSraLr0l9571atxuz7J5apUyLSKK07CwPEpGxKpqoyYisx7Gz+FGTSd/k7gXVMX5cJkmchaKP9TFJJMwbwC54i9lZI9ls+vskfSIpbDZ9rLSRzDw2o/pYyRyZecbMZ2fZyE3KzurGTNY44mw2Q3em7ynedfY1Z47y14x/nc10cm9+MdKl+lgp43GVMi0iiWKyjdwHBIfx0x7bQu+M+dY6d8I77CxGztp9oOpdfUXMrsxeOLlR5rFBJgmPzdYtukK2kUkmyFLZbHZxnFsT6ba0kLCz7GM1mYDjLzvN0c0v7phNMkHLVGLsiKC/205nmXOEWwcqR/sLgEW+CCM3XzqLP0fy3pj5dmsigmZH2s+ReIBjHivZv2+VMi0iiaLZRlt6M0KTVcGMymsmSVpkrdku9cMlEzFvbLaRhsA89ozLCjNtiZ0X0HWgPpMkpG6xUHTRNCMWU0l/fmxpLpxpuv2+h4ivc5PNZo9Zys4CbBYQB4m484s75pmx4OjUDrtjPff7Sz7mFfiLeU/12FlN3Yx7T5lz0Z3bcl/z/WWeZ55T8zzgsdlWKdMikihWDnbWNYOxcplk10QAfv7Wl5M389CSHL/JKuPmrE0bU/PdZlF+s6jaxXBY18j9GkiEU0Ny7dapNI6vATvfbbLKuGPWrx7WBX2JbntsO0d41zl3fF3rpo65e/Xzkvm6V7O2MM/74wjptscakTWn2z33+GvOrJtlzcPXndspNRGz65wz5r6v+fMrd/wF2GOOvftlVTItIomioxOluhSJ/p0bNSmF7qGY1VsYmJ+zdfOMpavt1seaPSqx3V2BOrJpdQ0miXzMHZNEqmumKvhjNuxu0iQpuiarjGd35ugK/JWbY/Zc52CgYczN9oFq+iu+6Nr+6s4l81cm85dxrNRfs6zvr5lgjphjnmX1/OTrOtdZ8CyYjfCXNWYj0ODavSqZFpFEMaMEM/qof+fBUPN7LH1GfcD8Ht/3se3OUnXJslM25q4ZTHreuRFZs8/tjDF1zCarTK5L7Gvs03X/FkQijq8B2RzJ3ets2S0Y81hfZ/zz5l5/8f2t9XX9yfIXA020584y0XV27ZZdp+67u5QnX39VMi0iidK/0WTRmhaTncXR9+tm3s/j+tSm4VLsts/LqwP57Jacd+Z5oHIQgXnsbITd6b6WR/Smrvl/TN96GM80clv/dXaDK/HcFPjLF2hYczsaaNg+lvjLvPdrllS63QvJeT0Lp94zLMZmW6VMi0iiWBPH6BMB0iLrOTPa02yj+rxdaqfTlUS4Y+wm57zyCe+Lnry6jq9NXcm5zS1TUuyeZSN0XV8zH2rmsdzr7EbGta7AX+7cTh6z6y/+3JxlmTXXZeipSxFz7W7P4/W14NxZJvJ17tx/LmJnn9cgX3DOu0o54YsIEf0gEd1CRBURHQgc91oiuo2I7iCid67TRp+EkYjk4tuT1/08pO9OHIlurefYHYXtNkxPjTLdMa/NX1mCv8wHqpNikdg9d30ticrblFR3vpC6WVAdi9zctKXU7mRdx24ukqjPK58jXaDR9zWnhmTaLfH1LDi/BIGZM+Z11UOAHbCIALgZwJsA/MXQAUSUA/gNAN8N4HIAP0REl6/HPL+Mqy30c6aS/O/MmTCS/K19rJu/lUWZyfWUTBY12VG5z1+RmzwP+Es6ZomvXSQywtfm33TefkjsepOnhiRBBKPGLEVu/es891xvn+QeG2WIwPZxCorRdqecV9s9F/jai76Y/lqlnPBFRCl1q1LqtshhLwNwh1LqLqXUFoD3A3jj9ls3LGZ0snDSJCkRV0q+3JeqkESZZp+I+1nc7jH1AXvMEt1Fm/uV+0vnmyV5ZzeyFo05t30tQwO2r83/OVFml+NPn19AP50lRW6pc8RMQXJ03QXb/ds4JCJDQZKshBtcic7rWXBa5PYUQyIcuQDAPcbvh5q/eYWIriSig0R08PDhw9ti0LjI2nfxuwdEKMo09X2pCikiSEYivfxtAprwIAOOzb3v207ktkL05ebOg7peBl//eg9JKOXJHXNGNapJ8TXgYRsJfO0+zEXsLGfstT4PyaSgVRcRSHzdY2eJEJC5eMn8tUpZyyJCRJ8gops9/7howucRNXSwUuoapdQBpdSB/fv3pxkdkXCOXxJx2Q9UTgSRuxNmBCIQ5emdVJhZKBbVNRwkNaae4trl13cW+WS2EaVH1kK06ousuf4y9d2IXmJ3lyKRoFX7wS1Dbv3rrBeEJH+J1T5kGQAAF+FJREFUaiL2w9ee27JAI5Wd5abCpOcF+MhtlbKW1+MqpV4z8isOAXi68fuFAO4b+Z2jJMSwktQlNCVvIYgg9DFtaieBAaPz6otEJLLIu43mWLqeMbPZWT5fJ0THc+fBJD33Ik+vayyMObIsOXsq2elSoKPrxnYABroHsutrid2LPF231nMja0mBegQSSbC7TRF7FiAJmpDOETe9nGd1PatScX+FxvyPDomsQD4L4DIieiYRLQC8BcB1J9IgX2Td5SPlUbkMiejzpSORlbN2JEXAHvpK9xfPbvvhm84qy5zzCuwW5qz9Of50JCLzl5tuHOOvcXUz7n0xcx7G5t84PROj2FlO6iuFFeY7d0qfCJfNtko54YsIEX0fER0C8C0APkpE1zd/P5+IPgYASqkCwE8BuB7ArQA+qJS65UTZDNgTRxoF+OsDAiTi5m8TImsfbVSWsx7TM+E81CO6Vr+AN8rkoy9te5LdGQkRUN9GLlr1LUC+zvWY/jh/adQ3wl+pdbP23P2ajk98QUqav+RzxDx3nlESAjKPnWc8u/1j5vlrlbKWdFZIlFLXArjW8/f7ALzO+P1jAD62RtOCYr51zIXA3DeSAUbDIDNCBdD2AaR012aBm4Xzpj4tZjMY662Ilr/SxlxCdakdy+6wrrbbl9qJvuXPCRbMh3/8rYjdz25kLZsj9oMhpguYc6T/QIo9X7rUzjgksphlMl97/KVTeDGbvVE509em3b5FK3qtDF8TkeNrCfoyAzv+G1L1uWtd/j21KjnhSORkFR8DgxtZe1MVAvqmy2lPgc9J/RaB9IykJuKms5LYRoa/2Gw2j63ca0VUnyt1byNpR3GITBBDMYDBNkroE+mlPBPrA7MsnW3UZzyGbdY78Vp2C7q3x43ZtnFMn0itn4BEnsod6yereKMAZj4y1DPBgaG9IqAgxZK3aYJ+RD+qd0GYCrN0JTn+FBQTSO1w6wPzrO9rUV3D8beof2BEn4gPcbJ7JrxjltltRubbzTbqpeFSdBPmSGiRl/aJmP9L6kD9+TUtIjtefJE1tyYyupHMucHmgsa7drKNYO3YdnOjJrPwKR9z3i4eCTWkXnqmf+0Gz0uur9OiTCkjzWb8yCJUUz+FYdULUsz5FU3DeQrcCZH1IiGy1mmnnq85bLbWX/bYJXaP8bWlP0vw10x+T61KpkUkUUb1iXj3NpJAb/dBmpCq8KXCEoq9XVpJHllzI1SfvUl9NZ7UCD/K7F+fFCTS+iuK3DypHaav7fP1H0jiyDoZfdlIJmmOJCERd24KkJuD4Dj6fZQsn18+/SQUMyGRk0e8UTlzITD3Nuq2LpHfLN4tLZhppRQuvb29g50WE6EvxwZJZC31tXmMz1/8qNwToYrSllLk5nu4yJHImDy9r2lP2oFt6qTVB/oPdbbdKf7yLAT8wKxvq6xu5g+UBnUDC9BUEzkJJNzrwYkU7Qk3qk9EUhMJ3NiyHgBZtBeOMgX+SvB1qMjMjjKNPLUGkqL+AbdulpA6lEXW9uIni6ydh3BCfcAkPPDnSD9I6fzFmCPuQp3kr3QkkuZrM7iS1kSGF+wJiZwEYjc3yfLdgIdt5Ilihs89HLFIH4rJu7sG0iU+8TfejUAiKTWRmf2QMW2JndfqC2IzrIZTUhy02rKNhL627e4/mGJstn5Uno7cAKO+kRJZzxLuqTF9Ih77udfZ3Z6m/lsK+kq4p05gn8i0iCRKKFUhinycScuKrAMpKW7hM2l3V2Ny6wcRdz8nbypMj1mwcEp3ADaPcdNoPLv7Ovwu6n6kKLnOvdQj09e1ro0m0tKl6cjN9yBN8hcTuZn6UtRn6XgewtwUsf7fTFfL3kUiQ5zeNgPBmFcl0yKSKD46oiiydnK+SZG18x0Zybd3SHtDoLEgcJkkZiTvvLJ17cjNE8ENn7ePXlbBwhuFvgT1gdWcV+4vX10gxV8SFl6PJTXrLwgxu0exswzm3rg5wvOX+XF/zNMisuPFLhQ7Of6klBQ/yuzvSmsvYhy7U9hGvtROmyaJ0CjHMkmGWGUif6X0AGR936btxGt/T0qvh6iG5EbWI1hOSf7K+w/UtN6YdCSStOuxZ+Fks9k8CwIXTehmVls37C+zB8clE0xI5CQQLzVvBdFeEhJJuFn0ZLMnIm/CW0gkIX8rfce6adso5OZdBHl2+6Jx0S6rI/L0/YbUFF3J3Bz2Mdtf3gVUMEecxTulJiLq8B8I6szvi+sOp5diur6G4ZRajhs0rEOmRSRR/IViQaToso0EC0E+EGWmUBkl+u6Eldht98bYY+fVgfxjldSQUt5J732osJFIP83I7ROp9d0HaUJknSXMzQDTJwWJJHVgj2DwjWJneRatmLq/GM8cs2ehWwWrjOOvVcm0iCSKl444JsefgETcyStLo/Xt56YbfEVmDttIH+JSR2VjTkcivi1AUhZO9k68ngVoVO/CCHZWUv2pTbWQ8WBm+suqIcmRyAnvEzH8FWez9YMT7jZG/vmVjqCmPpGTSPTFyzPqdolNYsA4C0ECO0tW0LdvMCABiXiKzLIcvzx/2xUv7bFLkJtvW4okdhbTbjeNBkgja/dBKvd1Sv/AKiJr82Vn/PqAMa9SmnAdRtdqIvpEfwnrZr6t+nlj1veS3O5VybSIJIovb5mCRMaxsxrdWfrNYv7MfUD4ayKSxY8su1OQSBpy699o3ChzDDtrnsDaAcYx+FbJ7Kp/5kbW/fNw8/Rmb4x7PtGYnX4gCTsrrYY0fE9xkZtXVzRmud2rkmkRSRTfxU9hG7kTnZOScm9UtwjJOa+PPcOl+PoWzqRoT0f0KbA9iZ1lQ/4U1o7k3H5mVwJyc9OWAhQz6v3sCYjTO+ZMbrd7f4xhlYn6RFIQkG+OCOtAvvSf6Don2L0qOeEvpTpZxZvaEcHQgYvPeoEOLB09eTm1NHdXWtOWWI9JRvbNCchSUtnATZ4S7YmICM6YdX2G52ufv3jnzny6En+1Ubk75qhqd25nnnLGnGX968yufQXmF+vcRJjn6G+ZIrpWTpDC8vVAUCeY1960ZfRFb7BstnQ513nA7nUikWkRSRQ9OUJdoyx9l2klilDd1A4jcvEcy6UUejeYS0jDuQsw5wHRYxsl5Mpd9k9KkdlnS9TmZOaNc31HIJExfSKmLfyeCdvXknNXyrPojqDpjukTSdkxWXJu30O/87XgfnaucywgXKVMi0ii6GjWlytP2rpEEDX1aguSqNwTHXNhv/tOD/N7uOfWrxC17U7wVxKKMVEjJT2YzHPH7Pb1ACT1eozoMemxdkTpUvl19iP0/t9C+qZXU/pbVrF3ln71cwoTDuCP2Z9eTrf7RNREpkVkhMwy+x3SsoZB+2JLmoRWUmT2pBu4GzD6Ota55/YiN9aY7cVDsmB7yQQzHhJx+wcsu1OQW0rKMyHF0ut7SGGFWekZXlpJ66aws8zz9HUl13mEvxwWnogJ50tnMdFqSrrUZ7ekH2hVMi0iIyTP3HduJyACh0mSoivJ/brdyObP3CgzRReokUwKAjKPcR/gqZHiLMtYOWeX/SKx261pmN8jY7OloC97XqUxfuzrnFE8TeJDIlLWonlYSiOtHuuCua8bgB4TDqgXwnQ2m42K0nR51zmj4WfCOmRaREbILCN/qoITWTtpBskWzm6kqJvBUujBpg3cHL+9EMjQRDpy8/srZQdg/XPGqsX0rwvXbr2lTAprx2e3qKnUyZXLWGH98dXzizM301Nh+pzmdRmzd5aotjCA0GWIUR5ceX0tCArHzK9VybSIjJA8J2/ElRRZJ1FW3chacF4HepMkyvSkdrh1jbHIrZ/iEfjLsZsgiTLT7U5p7NS6Zi9LWh9SN6+I0iJ6fU4RSs76/uKiL1+ROaWGlDJH3LRSas2Ni5T9rQIyf6XOr1XJ+hJnA0JEP0hEtxBRRUQHAsfdTURfIKIbiejgOm0cEjcKkKRYemwjSW3BE/3P2JFiP2ri3iyhHP+omkjCmEf3PWTMMXuiTBEbzl04RQgqcx6o/AXb36/BCzSG9nOS1dzSkcgYXdPuFLTq9rck+5oZULYFfA+6H+UvxphXJTsBidwM4E0Afotx7HcopR7aZnvY4kYBUnbWzIgy016yZE/aZHaWNMpMvMk1O8u0uf67oD6QFGV6IsWcoFRU1RtZtwsYM1/u66vh2j26k7kXaAiicieFxxpv7j+vxG4vEhGwylw/pbDZ6p+FNPBRY/YEo+z5lRbUrUpO+CKilLoVQHT7iZ0osyxLnjh9XVlEb55P/01Si3ERgQjFZOl2pyM3Z/GQsI18Y84yVIxVxI/cJAgq8/qLH2X251dK34P+W3J9gIvcfClPEWrMnNROCvqyx57MzuLWRHypMCFSTmZn5X50P+3i6xcF4E+I6AYiujJ0IBFdSUQHiejg4cOHt82goUiRH5X7Ino5a0f/LGNn2YiAo6v3NvLtBZU0ZsGeX/2+mpSo3D73WObNmOvMznc7bKFaN+06L5i05nHzq6+r3/iXElmLxtzU9rQNMn957BbXRMwx2/WsmP6Y62wyByW6q5K1IBEi+gSAcz0f/aJS6iPMr3m5Uuo+IjobwMeJ6EtKqb/wHaiUugbANQBw4MABRtIiTWaDDwhu9NFnVUj6RFy2UTI7i3mztHZn9nnrv/OYO/O8uxxpY651siYFl8Jyqs9N4MRQvihTskVNf47IosyU3gN9XvN89d+yUWw2CTsrdauXWe6gVSGamGeZQURIQau2v9NRH2/R1fpjEKfdw8T316pkLYuIUuo1K/iO+5r/HySiawG8DIB3EVmXuPlb8wEn1m2iNQ7t1N9RnDF1+6mKeU7sbRLyzC3k6TEzda0x1z9z7TajTG13KpttnmeoVMk6L4Dedeaw2bR+ykaG2u4U2uig3TMS7UHlFoo511ifzjtmdlSetmD32X/6YRy3e6h/KpWRNs8zls363G590/ze2LlTi/Krkvyqq65a28lCcvXVV/8IgD+56qqr7nM/I6JTrr766l1XXXXVFhGdAuBqAH941VVX3RH73muuueaqK68MZr+S5Wm75/iWS/bhorP2AAD2n7qBZanwfS++oNd568qZpyzw3PNOxfMveBqA+uIvZhle94LzcPqeRVB3/6kb2LPI8V2Xn9NGXa4tQ3LGnjm2SoU3veQC7JrnrS3POaezJSSn7prjO597Ns4+bRcA4OxTN7BnnuOKy8+NQvfTd8/x4ovOwKVn721/3yoVvt+wZUjO2rvAxWedgpc844z2b3s3Znj1885pbRmS/aduoKoU3viiC9qby7VlSPYschABr3/h+Tht93zQliE5bfccL790Hy48o5sjri1DcsaeBb7h/NNw+fmnAQB2z2tbvsewZUj27d3A6bsXeNVz9rfX5bRdti1DcuYpCyyLCm96yQXYmNXX5YxTFrj8vKe1tgwJEWHvxgzfdfm52Ld3Y9CWITl99xwHnnEmLtlfX5ezTtnAlmPLkJx1ygYuPXsvXvj00wdtGZKzT90AEeH133heGxycvnuOAxd3tgzJqRszVKq+pns36rj8rL0LPGv/XryosSUkp+2a4dufvR/nn7570JYhOWPPHC+44Gl47rn1ddnrsSVFrr766vuvuuqqazjHkuJQVLZRiOj7APwnAPsBPArgRqXU/0hE5wP4baXU64joEgDXNiozAP9VKfWvON9/4MABdfDgjmAETzLJJJOcFEJENyilBlsuTNkJ7Kxr0S0Q5t/vA/C65ue7ALxwzaZNMskkk0wSkZOJnTXJJJNMMskOk2kRmWSSSSaZJFmmRWSSSSaZZJJkmRaRSSaZZJJJkmVaRCaZZJJJJkmWaRGZZJJJJpkkWaZFZJJJJplkkmQ54c2G2y1EdBjAVxLV9wHYMVvPGzLZJZPJLplMdsnkH6Ndz1BK7ecc+I9+ERkjRHSQ27W5Tpnskslkl0wmu2TyVLdrSmdNMskkk0ySLNMiMskkk0wySbJMi0hYWLtYngCZ7JLJZJdMJrtk8pS2a6qJTDLJJJNMkiwTEplkkkkmmSRZpkUEABG9lohuI6I7iOidns83iOgDzeefIaKL12DT04nok0R0KxHdQkRv9xzzKiI6QkQ3Nv/etd12Nee9m4i+0Jyz97IWquXXGn/dREQvWYNNzzH8cCMRPUZEP+scsxZ/EdHvENGDRHSz8bcziejjRHR787/3jVZE9NbmmNuJ6K1rsOvdRPSl5jpdS0TetyjFrvk22HUVEd1rXKvXDegG791tsOsDhk13E9GNA7rb6S/vs+GEzTGl1FP6H4AcwJ0ALgGwAPB5/P/t3W2IFVUcx/HvHzRCEx+pNHuhEVERlUlaPlAo6lpohZQR9GAQVr7oRZAgSPQmLPJdVPRAVlKSPUlpKRVEhCYtqRvaukmQuK2QoUkv8uHfi3NuXMaZ3dvsPTMZvw8sd+6cc5k//zkz/51zZ3fgikyfR4AX4/JSYEMFcY0HpsTlEUB3Tlw3AR/XkLOfgXH9tC8EtgAGTAd21LBPfyXc6155voDZwBSgq2ndM8DKuLwSWJPzuTHAgfg6Oi6PThzXPGBIXF6TF1cr+zxBXE8Cj7ewn/s9dtsdV6b9OWB1DfnKPTfUNcZ0JRKe1d7j7gfc/S/gHWBxps9iYF1c3gjMsYGe8zlI7t7r7p1x+Q9gL3BRym220WLgDQ+2A6PMbHyF258D/OTuZf/IdFDc/SvgSGZ18xhaB9yW89H5wDZ3P+LuvwPbgAUp43L3re5+Mr7dDkxs1/YGE1eLWjl2k8QVj/87gbfbtb1W9XNuqGWMqYiE5P/S9P4gZ56s/+kTD7ijwNhKogPi9Nm1wI6c5hvMbJeZbTGzKysKyYGtZvadmeU9wL6VnKa0lOKDu458AVzg7r0QTgLA+Tl96s7bMsIVZJ6B9nkKK+I022sFUzN15msW0Ofu+wvaK8lX5txQyxhTEQlTLlnZW9Za6ZOEmZ0HvAc85u7HMs2dhCmbqwnPqf+wipiAGe4+BegAHjWz2Zn2OvN1DrAIeDenua58tarOvK0CTgLrC7oMtM/b7QXgEuAaoJcwdZRVW76Au+n/KiR5vgY4NxR+LGfdoHKmIhIq8cVN7ycCh4r6mNkQYCTlLr//FTMbShgk6939/Wy7ux9z9+NxeTMw1MzGpY7L3Q/F18PAB4RphWat5DSVDqDT3fuyDXXlK+prTOnF18M5fWrJW/xy9VbgHo8T51kt7PO2cvc+dz/l7qeBlwu2V1e+hgB3ABuK+qTOV8G5oZYxpiICO4FLzWxS/C12KbAp02cT0LiLYQnwRdHB1i5xzvVVYK+7ry3oc2Hjuxkzu56wP39LHNdwMxvRWCZ8MduV6bYJuNeC6cDRxmV2BQp/Q6wjX02ax9B9wEc5fT4D5pnZ6Dh9My+uS8bMFgBPAIvc/c+CPq3s83bH1fwd2u0F22vl2E1hLrDP3Q/mNabOVz/nhnrGWIq7B862H8LdRN2EOz1WxXVPEQ4sgHMJ0yM9wLfA5Apimkm4zNwNfB9/FgLLgeWxzwrgB8JdKduBGyuIa3Lc3q647Ua+muMy4PmYzz3A1Ir24zBCURjZtK7yfBGKWC9wgvCb34OE79A+B/bH1zGx71TglabPLovjrAd4oIK4eghz5I0x1rgLcQKwub99njiuN+PY2U04OY7PxhXfn3Hspowrrn+9Maaa+laZr6JzQy1jTH+xLiIipWk6S0RESlMRERGR0lRERESkNBUREREpTUVERERKUxEREZHSVERERKQ0FRGRRMxsopnd1U/7S2Y2o8qYRNpNRUQknTmE51EUmUb4y3mRs5aKiEgCZjYTWAssiU+3m5RpvxzodvdTTeuGm9kn8V/Vd/V3FSPyXzGk7gBE/o/c/Wsz20l4Ol/eP9/rAD7NrFsAHHL3WwDMbGTiMEUGTVciIulcBvxY0DafM4vIHmCuma0xs1nufjRpdCJtoCIikoCZjSX8C/wTOW3DgFEenznR4O7dwHWEYvK0ma2uJFiRQdB0lkgakyh+2M/NwJfZlWY2ATji7m+Z2XHg/nThibSHiohIGvuAcWbWBTzk7t80tXUAG3M+cxXwrJmdJjzD4uH0YYoMjp4nIlIxM+sEpuVNdYmcbVRERESkNH2xLiIipamIiIhIaSoiIiJSmoqIiIiUpiIiIiKlqYiIiEhpKiIiIlKaioiIiJT2N3DvbPTT+gzLAAAAAElFTkSuQmCC\n" }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": "t \u003d np.linspace(0, 20, 201) # 20 seconds\nnu_1 \u003d 1\nnu_2 \u003d 3\nf_t \u003d np.sin(nu_1 * 2 * np.pi * t) + np.sin(nu_2 * 2 * np.pi * t)\n\nplt.plot(t, f_t)\nplt.xlabel(r\u0027$t$ / s\u0027)\nplt.ylabel(r\u0027$f(t)$\u0027)\nplt.show()\n" }, { "cell_type": "markdown", "source": "Taking the transform is now simply a matter of calling `fourier_transform`: ", "metadata": { "pycharm": { "metadata": false, "name": "#%% md\n" } } }, { "cell_type": "code", "execution_count": 10, "outputs": [], "source": "F_nu, nu \u003d fourier_transform(f_t, t)", "metadata": { "pycharm": { "metadata": false, "name": "#%%\n", "is_executing": false } } }, { "cell_type": "code", "execution_count": 11, "outputs": [ { "data": { "text/plain": "\u003cFigure size 432x288 with 1 Axes\u003e", "image/png": "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\u003d\n" }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": "plt.plot(nu, F_nu)\nplt.xlabel(r\u0027$\\nu$ / $s^{-1}$\u0027)\nplt.ylabel(r\u0027$F(\\nu)$\u0027)\nplt.show()", "metadata": { "pycharm": { "metadata": false, "name": "#%%\n", "is_executing": false } } }, { "cell_type": "markdown", "source": "As expected, we find resonances at $\\nu_1 \u003d 1$ Hz and $\\nu_2 \u003d 3$ Hz.", "metadata": { "pycharm": { "metadata": false, "name": "#%% md\n" } } }, { "cell_type": "markdown", "source": "We could also perform the transform using angular frequency instead:", "metadata": { "pycharm": { "metadata": false, "name": "#%% md\n" } } }, { "cell_type": "code", "execution_count": 12, "outputs": [], "source": "F_omega, omega \u003d fourier_transform(f_t, t, convention\u003d(1, -1))", "metadata": { "pycharm": { "metadata": false, "name": "#%%\n", "is_executing": false } } }, { "cell_type": "code", "execution_count": 13, "outputs": [ { "data": { "text/plain": "\u003cFigure size 432x288 with 1 Axes\u003e", "image/png": "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\n" }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": "plt.plot(omega, F_omega)\nplt.xlabel(r\u0027$\\omega$ / rad $s^{-1}$\u0027)\nplt.ylabel(r\u0027$F(\\omega)$\u0027)\nplt.show()", "metadata": { "pycharm": { "metadata": false, "name": "#%%\n", "is_executing": false } } }, { "cell_type": "markdown", "source": "Now our resonances are at $\\omega_1 \u003d 2 \\pi$ and $\\omega_2 \u003d 6 \\pi$ instead. \n", "metadata": { "pycharm": { "metadata": false, "name": "#%% md\n" } } } ], "metadata": { "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.6" }, "kernelspec": { "name": "python3", "language": "python", "display_name": "Python 3" }, "stem_cell": { "cell_type": "raw", "source": "", "metadata": { "pycharm": { "metadata": false } } } }, "nbformat": 4, "nbformat_minor": 0 }