{ "cells": [ { "cell_type": "markdown", "metadata": { "nbsphinx": "hidden" }, "source": [ "# Spectral Analysis of Deterministic Signals\n", "\n", "*This jupyter notebook is part of a [collection of notebooks](../index.ipynb) on various topics of Digital Signal Processing. Please direct questions and suggestions to [Sascha.Spors@uni-rostock.de](mailto:Sascha.Spors@uni-rostock.de).*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Zero-Padding" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Concept" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's assume a signal $x_N[k]$ of finite length $N$, for instance a windowed signal $x_N[k] = x[k] \\cdot \\text{rect}_N[k]$. The discrete Fourier transformation (DFT) of $x_N[k]$ reads\n", "\n", "\\begin{equation}\n", "X_N[\\mu] = \\sum_{k=0}^{N-1} x_N[k] \\; \\mathrm{e}^{-\\mathrm{j} \\frac{2 \\pi}{N} \\mu k}\n", "\\end{equation}\n", "\n", "For a sampled time-domain signal, the distance in frequency between two neighboring coefficients is given as $\\Delta f = \\frac{f_s}{N}$, where $f_s = \\frac{1}{T}$ denotes the sampling frequency. Hence, if $N$ is increased the distance between neighboring frequencies is decreased. This motivates the concept of zero-padding in spectral analysis. Here the signal $x_N[k]$ of finite length is filled up with (M-N) zero values to a total length $M \\geq N$\n", "\n", "\\begin{equation}\n", "x_M[k] = \\begin{cases}\n", "x_N[k] & \\mathrm{for} \\; k=0,1,\\dots,N-1 \\\\\n", "0 & \\mathrm{for} \\; k=N,N+1,\\dots,M-1\n", "\\end{cases}\n", "\\end{equation}\n", "\n", "Appending zeros does not change the contents of the signal itself. However, the DFT $X_M[\\mu]$ of $x_M[k]$ has now a decreased distance between neighboring frequencies $\\Delta f = \\frac{f_s}{M}$.\n", "\n", "The question arises what influence zero-padding has on the spectrum and if it can enhance spectral analysis. On first sight it seems that the frequency resolution is higher, however do we get more information on the signal? In order to discuss this, a short numerical example is evaluated followed by a derivation of the mathematical relations between the spectrum $X_M[k]$ with zero-padding and $X_N[k]$ without zero-padding." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Example - Zero-Padding" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following example computes and plots the magnitude spectra $|X[\\mu]|$ of a truncated complex exponential signal $x_N[k] = \\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega_0\\,k} \\cdot \\text{rect}_N[k]$ and its zero-padded version $x_M[k]$." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA04AAAInCAYAAACvLAmnAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABcGUlEQVR4nO3de3wU9b3/8feShITEEEgwkHANAnK/CSiKIio3EVRa72AEbb0jYr2gIklRULwUKorHakEOotQKFLwAsdy0olyDcvkBahSOJkZBEyAQNsn8/qBZs+Qyu8lOZif7ej4ead3Z2eEzmcm+9zMz+x2XYRiGAAAAAACVqmd3AQAAAAAQ7GicAAAAAMAEjRMAAAAAmKBxAgAAAAATNE4AAAAAYILGCQAAAABM0DgBAAAAgAkaJwAAAAAwQeMEAAAAACZonAAAAADABI0TAAAAAJigcYLjlZSUqGXLlsrJyZEkzZo1S+3atVODBg3Uvn17zZ4926flGIah2NhY/fTTT1aWCwBAhcgzILiF210AUFP16tXTwYMHJUmPP/643nvvPf3zn/9Ut27dtGPHDqWmpurnn3/WtGnTqlzO/v371bhxY5155pm1UTYAAF7IMyC4ccYJjvfqq6/qpptu0k8//aS//OUveuedd9SzZ0+FhYWpd+/eWrx4sZ5//nnTI2/btm1Tnz59JEk//fSTLrroIj366KMyDKM2VgMAEOLIMyC40TjVsvnz58vlcnl+oqKi1KxZMw0aNEgzZsxQbm5ulfOX/fnTn/4kSZU+f/rPunXrbFhjb4sXL1aXLl3UoEEDuVwuZWZm1niZu3btUpcuXbRx40alpKSoffv2Xs937txZLVq00MaNGyVJDz30kC688EKNGzdOxcXFnvm2b9+uPn36aMeOHbrwwgv1xz/+UdOnT5fL5apxjWWVbtNvv/3WM+3TTz9VWlqafv31V69509LS5HK59PPPPwe0Bl9VVhd8U7r9qjNvRfsJEEzIM/LMSXlWF5ExtY9L9Wwyb948dezYUW63W7m5ufrkk0/0zDPP6LnnntPixYt12WWXVTh/WcnJyZLkeQMtNW3aNK1du1Zr1qzxmt65c2cL1sR3P/30k8aOHathw4bp5ZdfVmRkpDp06FDj5e7atUuXXHKJjh07poYNG1Y4T6NGjVRQUKAdO3YoNzdXH3/8sdLT0/X+++9r1KhRkk4FTdu2bTV69GgtXLhQ/fv3r3FtFRkxYoQ2btyopKQkz7RPP/1U6enpuuWWW9SoUSNL/t3qCNa6QkFF+wkQjMgz8swJeQZvZEz10DjZpGvXrp7T6JL0u9/9Tvfff78GDBig0aNHa//+/WratGml85d13nnneT0+88wzVa9evXLT7bZv3z653W6NGTNGAwcODNhyd+3apa5du+qnn37Svn37VFRUpPDw33btkydPav/+/Wrbtq0+/fRTDRkyRJI0dOhQLVu2zCtoMjMz9dxzz1kWMtKp7cN15/4rKChQdHS03WXUGvYTOAV5Rp7VBWQMfMGlekGkVatWev7553XkyBH9z//8j93l+OWTTz7RpZdeqtjYWEVHR+v888/X+++/73n+lltu0YABAyRJ1113nVwuly6++GKfljtkyBDFxcWpcePGGjFihPbv3+95/vDhw8rLy1NKSor69eunJk2a6M033/RaxoIFC9S0aVP16dNHv/zyi+coXqNGjXT48GFJ0sGDB1W/fn0tXbpUjzzyiL777rsq69q1a5dcLpfeeecdz7StW7fK5XKpS5cuXvOOGjVK55xzjufx6afH09LS9OCDD0qSUlJSKrwU5ccff9QNN9yguLg4NW3aVOPHj1deXl6Fv6+qtoN0alu0adOm3GtPP43vS11lVXVZTdlLAfbv368bb7xRiYmJioyMVKdOnfTSSy9VWMu2bdv0+9//Xo0bN9ZZZ53l13pWpnTZ27dv1+jRo9WwYUPFxcVpzJgx5b438NVXX2ncuHFq3769oqOj1bx5c40cOVJffvllueW+//776tmzpyIjI5WSkqLnnnuu0hp8mbeiyyhKa9+1a5dP+8O//vUvde/eXZGRkWrbtq1mz57t16UdQHWRZxUvlzzzPc9OR8YEV8aEar7QOAWZyy+/XGFhYdqwYYPX9OLiYhUVFXn9BIv169frkksuUV5enl5//XW99dZbio2N1ciRI7V48WJJ0pQpUzxvXNOnT9fGjRv18ssvV7nctLQ0DRw4UC1bttRbb72l1157TQcPHtSll16qo0ePSjr1ht+pUyfVq1dP9erV07x58/TQQw9p7dq1kqQ1a9bo0Ucf1bx581SvXj01atRI+fn5kqS8vDw1btxY0qmjc926ddMFF1ygKVOm6Oqrr9bx48crra1Lly5KSkrSRx995Jn20UcfqUGDBtq9e7d++OEHSVJRUZHWr19f7lKVsm677Tbde++9kqQlS5Zo48aN2rhxo3r37u2Z53e/+506dOigd999V4888ogWLVqk+++/3+/t4A9f6iqr9PnSnzVr1qh58+Zq1qyZ4uPjJUm7d+9W3759tXPnTj3//PN67733NGLECE2YMEHp6enlljl69Gi1a9dO77zzjl555ZWArufVV1+tdu3a6Z///KfS0tK0bNkyDR06VG632zPPDz/8oISEBD399NNauXKlXnrpJYWHh+vcc8/V3r17PfP9+9//1pVXXqnY2Fi9/fbbevbZZ/WPf/xD8+bNK/fv+jNvZXzZH1auXKnRo0crISFBixcv1syZM/XWW2/pjTfe8PnfAWqCPPsNeeZfnlWEjAmejAnpfDFQq+bNm2dIMjZv3lzpPE2bNjU6derkNX9FP263u8LXp6amGjExMZbUX5HzzjvPSExMNI4cOeKZVlRUZHTt2tVo0aKFUVJSYhiGYaxdu9aQZLzzzjumy1yxYoUhyZg5c6bX9H379hmSjIULFxqGYRhz5841br75ZsMwDOOpp54yYmJijLCwMKNNmzaGYRhGmzZtjLCwMCMmJsZ46qmnjO3btxvjxo0zDMMw0tPTjaVLlxqGYRhpaWnGgw8+6Pl3xo8fb9x4441V1jhmzBijbdu2nseXXXaZ8Yc//MFo3Lix8cYbbxiGYRj/+c9/DEnG6tWrPfOVbtOsrCzPtGeffbbcNMMwjKlTp1b4e7jrrruMqKgoz+/WMHzfDqmpqUbr1q3LrU/pv1VWZXWZKSoqMq688krjjDPOMLZu3eqZPnToUKNFixZGXl6e1/z33HOPERUVZRw+fNirlieeeKLcsn1dz8qULvv+++/3mv7mm2967VuVrdfJkyeN9u3be73+3HPPNZKTk43jx497puXn5xvx8fHlfqe+zlvRfuLP/tC3b1+jZcuWRmFhoWfakSNHjISEhHI1AdVBnpFnVuWZGTLG3owJ5XzhjFMQMioYLnTBggXavHmz10/Z6559NXfuXPXu3VsRERFKS0urcJ6///3vateunc444wx16tRJX3/9daXLO3bsmD7//HP9/ve/1xlnnOGZHhYWprFjx+r//u//vI6a+OqJJ57QWWedpfvuu8/rqGRKSooaNGigb775RpL0xRdfqEePHpKkRx99VEePHlVRUZGysrIkSVlZWSoqKtLRo0f16KOPqmfPnoqPj9eFF16or7/+WldccYUkaerUqZo5c6bn33/99dfLXSJxuksvvVTffPONsrKydOLECX3yyScaNmyYBg0apIyMDEmnjtpFRkZ6LuuortLr1kt1795dJ06c8IxaZdV2qK577rlH77//vt555x3PkcYTJ07o3//+t66++mpFR0d7bdfLL79cJ06c0Geffea1nN/97ndej/1Zz9OPaJ/+d3XTTTd5Pb722msVHh7uObpbuozp06erc+fOql+/vsLDw1W/fn3t379fe/bs8dS0efNmjR49WlFRUZ7Xlh6hPL1+X+etii/7w5YtW3TVVVepfv36nvnOOOMMv/4doKaszLPrr79eTZs2VcOGDdW9e3e99957nucKCws1btw4tWzZUg0bNtR5552nTz/9tMrlkWfBkWe+IGPsy5hQzxcGhwgyx44d06FDh9StWzev6Z06dar0y7T+SEpKUnp6uhYsWFDh8ytWrNDs2bO1fPlyT9NUegq8Ir/88osMw6hwVJbSUZIOHTrkV405OTnavn27JCkyMrLCeRo1aqSjR4/qww8/9Lou2xdVXRfsj9LLFT766COlpKTI7Xbrkksu0Y8//ui5OeFHH32kCy64QA0aNKjRv5WQkOD1uPT3Unr5hRXbobqefPJJvfLKK3r99dc1bNgwz/RDhw6pqKhIL774ol588cUKX3v6MLWnr4+v6/ntt98qJSXF6/m1a9d6fQ+hWbNmXs+Hh4crISHB6/c0adIkvfTSS3r44Yc1cOBANW7cWPXq1dNtt93m9bsvKSkpt7yK/g1/5q2Kr/tD2S/kl6poGmAFq/NsypQpWrBggerXr69NmzZp8ODB+uabb5SQkOBpTP7zn/+oRYsW+t///V+NGjVKBw4cqHQAAPIsOPLMDBnzGzsyxu12h3S+0DgFmffff1/FxcU+fdG0Oq666ipJp77UV5Fp06bphRde8Az12q5duyqXV/pHnp2dXe650uuimzRp4leNpXdN/8tf/lLpka3i4mJ16NBBt956a0ACuDpatGihDh066KOPPlKbNm3Up08fNWrUSJdeeqnuuusuff755/rss88qvK460PzZDlFRUSosLCw3XyDurTF//nxNmTJFaWlpGj9+fLkaS4/a3X333RW+/vQgOv1Lpr6uZ3JysjZv3uz1/Nlnn+31OCcnR82bN/c8Lioq0qFDh7wCY+HChbr55ps1ffp0r9f+/PPPnmF2GzduLJfLpZycnHI1nT7Nn3lrovTf+fHHHy39d4CqWJ1nZQcuCA8P18mTJ/X9998rISFBMTExeuKJJzzPp6am6v7779f+/fs9Z3VOR54FR55VhYzxZkfGhHq+0DgFkQMHDuhPf/qT4uLidPvtt9f6v19cXKzt27friy++UGpqqiIiInTLLbfoiSeeqHSUlJiYGJ177rlasmSJnnvuOc+RqJKSEi1cuNDzZuyP0jNcLperyhApfROz02WXXaZ//OMfatmypUaMGCFJ6tChg1q1aqUnnnhCbre7yi/SlvL3iNvp/NkObdq0UW5urn788UfP0aGTJ09q1apVNapr5cqV+sMf/qDx48dr6tSp5Z6Pjo7WoEGDtH37dnXv3t3rFH+g19Ns35GkN99802t0qH/84x8qKiry+pDncrnKHSV+//339f3333sOKsTExKhfv35asmSJnn32Wc/lEUeOHNGKFSvK1e/rvDURExOjPn36aNmyZXruuec8v+ujR496Xc4EWKW28uymm27Su+++q8LCQl1++eXlzm6V+n//7//p+PHjXiOnnY48C448qwwZExwZE+r5QuNkk507d3quiy29gd28efMUFhampUuX2jK2/o8//qiioiJlZGRo586d+vXXXzVkyBC1adNGqamplb5uxowZGjx4sAYNGqQ//elPql+/vl5++WXt3LlTb731lt9DU5511lkaNGiQHn/8cR09elTnnnuuDMNQdna21q5dq9TUVMuOYPrr0ksv1csvv6yff/5Zs2bN8po+b948NW7c2OuNszKlYT979mxP03r60Sszvm6H6667Tk888YSuv/56Pfjggzpx4oT++te/et113qyu2NhYr/mysrJ0zTXXqG3btho3bly568h79eqlyMhIzZ49WwMGDNCFF16oO++8U23atNGRI0f01VdfacWKFeVuclmT9TSzZMkShYeHa/Dgwdq1a5emTJmiHj166Nprr/XMc8UVV2j+/Pnq2LGjunfvrq1bt+rZZ59VixYtvJY1bdo0DRs2TIMHD9YDDzyg4uJiPfPMM4qJifEMEVydeWviz3/+s0aMGKGhQ4fqvvvuU3FxsZ599lmdccYZAf13ADvz7M0339Qbb7yhNWvWaM+ePRX+/RcUFGjs2LF6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AOC38ePHa+vWrTrnnHOUkJCg9evX66WXXtK+fft05pln6ssvv7S7RACAw9S4cTp48KD27NmjnTt3aufOnVq+fLl2794twzDUpUsXrVixIhB1AgDgs1dffVXffvutpk2bpv/85z964okn1L9/f0lSdna2zdUBAJyoxo1TRESEunfvru7du0uSNm3apA8//FD//Oc/9f3339e4QAAAqqNNmzZ6/fXX9dVXX2natGmaPn26nn32WXXs2NHu0gAADlTjxunQoUNatWqVPvjgA23dulW9evXSsGHD9NFHH6lp06aBqBEAAL/s379fe/fu1d69e7Vnzx4dOHBA+fn5+vLLL2mcAADVUuPGKTExUT169NADDzygN954Q2FhYYGoCwCAajv77LPVvXt3XXvttZowYYI6deqkiIgIu8sCADhYjRunmTNnateuXZo9e7YmTZqkli1beo1gNGzYsEDUCQCAz5599lnt2rVLy5Yt06xZs9S6dWuvbBo6dKjdJQIAHKbGjdMDDzzg9fibb77xDBSxcOFCGicAQK2rKpv+93//l8YJAOA3vxund999V7/73e8qfb5t27Zq27atRo0aVaPCAADwFdkEALBaPX9fcOONN+ovf/lLlfMYhlHtggAA8BfZBACwmt+N0/Lly5WWlqYJEyaUC6Hi4mLNnz9fnTp1CliBAACYIZsAAFbzu3EaOnSoNmzYoKVLl2r06NE6fvy4Tp48qblz56pdu3aaNGmSrrvuOitqBQCgQmQTAMBq1RocokePHvrss890+eWX67zzztPPP/8st9utiRMn6t5771VsbGyg6wQAoEpkEwDAStVqnPLy8vT3v/9d33//vQoKCuRyufTZZ5+pW7duga4PAACfkE0AACv5fane5MmT1bp1a82fP1/Tp0/XTz/9pGuuuUaXXXaZNm/ebEWNAABUiWwCAFjN78Zp2bJl+utf/6p9+/bpj3/8o2JiYjR//nz98Y9/1KBBg/Svf/3LijoBAKgU2QQAsJrfl+rt3r1bLper3PRp06apdevWuu666/Tcc8/pnnvuCUiBAACYIZsAAFbz+4xTRcFU6rbbbtPSpUs1efLkGhUFAIA/yCYAgNX8bpzMDB8+XOvXrw/0YgEAqDayCQBQU35dqpeSklLlUb3KTJw4URMmTPD7dQAAmCGbAAC1wa/Gaf78+dX6R9q0aVOt152u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jMLDwzVhwgS7SzGVm5uro0eP6umnn9awYcO0evVqXX311Ro9erTWr19vd3m1yunZVJVzzz1XCxYs0KpVq/S3v/1NOTk5Ov/883Xo0CG7Sws4p7/HmRk+fLjefPNNrVmzRs8//7w2b96sSy65RIWFhXaX5rOKPkfVle1W2WdEJ2+3L7/8UmeccYYiIyN1xx13aOnSpercuXNQbLPwWvlXgoTL5fJ6bBhGuWnB6J577tEXX3yhTz75xO5SKnTw4EHdd999Wr16tWO+o1BSUqI+ffpo+vTpkqRevXpp165dmjt3rm6++Wabqytv8eLFWrhwoRYtWqQuXbooMzNTEydOVHJyslJTU+0uzydO/Ptzu926/vrrVVJSopdfftnuciq0detWzZ49W9u2bQv636ckz4AmV155pe6//35JUs+ePfXpp5/qlVde0cCBA+0szxZO/NswM3z4cM9/d+vWTf3799dZZ52lN954Q5MmTbKxMuvUxe0oSdddd53nv7t27ao+ffqodevWev/99zV69GgbK/NdVZ+jnL7dKls3J2+3s88+W5mZmfr111/17rvvKjU11evAmp3bLCTOODVp0kRhYWHlutHc3NxyXWuwuffee7V8+XKtXbtWLVq0sLucCm3dulW5ubk655xzFB4ervDwcK1fv15//etfFR4eruLiYrtLLCcpKUmdO3f2mtapU6eg/UL2gw8+qEceeUTXX3+9unXrprFjx+r+++93xBm+0pG0nPb353a7de211yorK0sZGRlBe7bp448/Vm5urlq1auX5+/vuu+/0wAMPqE2bNnaXV06TJk0UHh7uqL8/qzg5m/wVExOjbt26af/+/XaXEnBOfY+rrqSkJLVu3dox27Kyz1F1Ybv58xnRSdutfv36ateunfr06aMZM2aoR48emj17dlBss5BonOrXr69zzjlHGRkZXtMzMjJ0/vnn21RV1QzD0D333KMlS5ZozZo1SklJsbukSl166aX68ssvlZmZ6fnp06ePbrrpJmVmZiosLMzuEsu54IILyg3duW/fPrVu3dqmiqpWUFCgevW8/1zDwsKCZjjyqqSkpKhZs2Zef38nT57U+vXrg/bvr7Rp2r9/vz766CMlJCTYXVKlxo4dqy+++MLr7y85OVkPPvigVq1aZXd55dSvX199+/Z11N+fVZyYTdVVWFioPXv2KCkpye5SAs6J73E1cejQIR08eDDot6XZ5ygnb7fqfEZ0ynariGEYKiwsDI5tVitDUASBt99+24iIiDBef/11Y/fu3cbEiRONmJgY49tvv7W7tArdeeedRlxcnLFu3TojOzvb81NQUGB3aT4J9lH1Nm3aZISHhxtPPfWUsX//fuPNN980oqOjjYULF9pdWoVSU1ON5s2bG++9956RlZVlLFmyxGjSpInx0EMP2V2aYRinRlTcvn27sX37dkOS8cILLxjbt2/3jEL39NNPG3FxccaSJUuML7/80rjhhhuMpKQkIz8/P+jqdbvdxqhRo4wWLVoYmZmZXn9/hYWFQVdvReweVc+s3iVLlhgRERHGq6++auzfv9948cUXjbCwMOPjjz+2rWa7OC2bfPXAAw8Y69atM7755hvjs88+M6644gojNjbWsevltPc4f1S1bkeOHDEeeOAB49NPPzWysrKMtWvXGv379zeaN28e9Ovmy+cop243s3Vz8nabPHmysWHDBiMrK8v44osvjEcffdSoV6+esXr1asMw7N9mIdM4GYZhvPTSS0br1q2N+vXrG7179w7qob0lVfgzb948u0vzSbA3ToZhGCtWrDC6du1qREZGGh07djReffVVu0uqVH5+vnHfffcZrVq1MqKiooy2bdsajz32mG0f5E+3du3aCvfX1NRUwzBODfs6depUo1mzZkZkZKRx0UUXGV9++WVQ1puVlVXp39/atWuDrt6K2N04+VLv66+/brRr186IiooyevToYSxbtsy2eu3mpGzy1XXXXWckJSUZERERRnJysjF69Ghj165ddpdVbU57j/NHVetWUFBgDBkyxDjzzDONiIgIo1WrVkZqaqpx4MABu8s25cvnKKduN7N1c/J2Gz9+vOf98MwzzzQuvfRST9NkGPZvM5dhGEZgzl0BAAAAQN0UEt9xAgAAAICaoHECAAAAABM0TgAAAABggsYJAAAAAEzQOAEAAACACRonAAAAADBB4wQAAAAAJmicAAAAAMAEjRMAAAAAmKBxAgAAAAATNE6AA3zyySeKiIhQYWGhZ1pWVpZcLpe+++47GysDAIQqsgmhhsYJcIDMzEx16tRJkZGRXtMaNWqk1q1b21gZACBUkU0INTROgAPs2LFDvXr18pqWmZmpHj162FQRACDUkU0INTROgANkZmaqZ8+eXtO2b99OOAEAbEM2IdTQOAFBrri4WLt27Sp3VG/btm3lAgsAgNpANiEU0TgBQW7v3r06fvy4kpOTPdM2btyo77//nqN6AABbkE0IRTROQJDLzMyUJL344ovav3+/PvzwQ918882S5DWSEQAAtYVsQiiicQKCXGZmpgYPHqysrCx17dpVjz76qJ5++mk1bNhQL730kt3lAQBCENmEUOQyDMOwuwgAlRs6dKh69+6tGTNm2F0KAACSyCaEJs44AUFux44d6t69u91lAADgQTYhFNE4AUEsJydHP/74I+EEAAgaZBNCFZfqAQAAAIAJzjgBAAAAgAkaJwAAAAAwQeMEAAAAACZonAAAAADABI0TAAAAAJigcQIAAAAAEzROAAAAAGCCxgkAAAAATNA4AQAAAIAJGicAAAAAMPH/Abuwo8hbbx3yAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "N = 16 # length of the signal\n", "M = 32 # length of zero-padded signal\n", "Om0 = 5.33 * (2 * np.pi / N) # frequency of exponential signal\n", "\n", "\n", "# DFT of the exponential signal\n", "xN = np.exp(1j * Om0 * np.arange(N))\n", "XN = np.fft.fft(xN)\n", "# DFT of the zero-padded exponential signal\n", "xM = np.concatenate((xN, np.zeros(M - N)))\n", "XM = np.fft.fft(xM)\n", "\n", "\n", "# plot spectra\n", "plt.figure(figsize=(10, 6))\n", "\n", "plt.subplot(121)\n", "plt.stem(np.arange(N), np.abs(XN))\n", "plt.title(\n", " r\"$\\mathrm{{DFT}}_{{{0}}}$ of $e^{{j \\Omega_0 k}}$ without zero-padding\".format(N)\n", ")\n", "plt.xlabel(r\"$\\mu$\")\n", "plt.ylabel(r\"$|X_N[\\mu]|$\")\n", "plt.axis([0, N, 0, 18])\n", "plt.grid()\n", "\n", "plt.subplot(122)\n", "plt.stem(np.arange(M), np.abs(XM))\n", "plt.title(\n", " r\"$\\mathrm{{DFT}}_{{{0}}}$ of $e^{{j \\Omega_0 k}}$ with zero-padding\".format(M)\n", ")\n", "plt.xlabel(r\"$\\mu$\")\n", "plt.ylabel(r\"$|X_M[\\mu]|$\")\n", "plt.axis([0, M, 0, 18])\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exercise**\n", "\n", "* Check the two spectra carefully for relations. Are there common coefficients for the case $M = 2 N$?\n", "* Increase the length `M` of the zero-padded signal $x_M[k]$. Can you gain additional information from the spectrum?\n", "\n", "Solution: Every second (because the DFT length has been doubled) coefficient has been added, the other coefficients stay the same. With longer zero-padding, the maximum of the main lobe of the window gets closer to its true maximum." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Interpolation of the Discrete Fourier Transformation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lets step back to the discrete-time Fourier transformation (DTFT) of the finite-length signal $x_N[k]$ without zero-padding\n", "\n", "\\begin{equation}\n", "X_N(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega}) = \\sum_{k = -\\infty}^{\\infty} x_N[k] \\, \\mathrm{e}^{\\,-\\mathrm{j}\\,\\Omega\\,k} = \\sum_{k=0}^{N-1} x_N[k] \\,\\mathrm{e}^{-\\,\\mathrm{j}\\,\\Omega\\,k}\n", "\\end{equation}\n", "\n", "The discrete Fourier transformation (DFT) is derived by sampling $X_N(\\mathrm{e}^{\\mathrm{j}\\,\\Omega})$ at $\\Omega = \\mu \\frac{2 \\pi}{N}$\n", "\n", "\\begin{equation}\n", "X_N[\\mu] = X_N(\\mathrm{e}^{\\,\\mathrm{j}\\, \\Omega}) \\big\\vert_{\\Omega = \\mu \\frac{2 \\pi}{N}} = \\sum_{k=0}^{N-1} x_N[k] \\, \\mathrm{e}^{\\,-\\mathrm{j}\\, \\mu \\frac{2\\pi}{N}\\,k}\n", "\\end{equation}\n", "\n", "Since the DFT coefficients $X_N[\\mu]$ are sampled equidistantly from the DTFT $X_N(\\mathrm{e}^{\\,\\mathrm{j}\\, \\Omega})$, we can reconstruct the DTFT of $x_N[k]$ from the DFT coefficients by interpolation. Introduce the inverse DFT of $X_N[\\mu]$\n", "\n", "\\begin{equation}\n", "x_N[k] = \\frac{1}{N} \\sum_{\\mu = 0}^{N-1} X_N[\\mu] \\; \\mathrm{e}^{\\,\\mathrm{j}\\,\\frac{2 \\pi}{N} \\mu \\,k}\n", "\\end{equation}\n", "\n", "into the DTFT\n", "\n", "\\begin{equation}\n", "X_N(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega}) = \\sum_{k=0}^{N-1} x_N[k] \\; \\mathrm{e}^{-\\,\\mathrm{j}\\, \\Omega\\, k} = \n", "\\sum_{\\mu=0}^{N-1} X_N[\\mu] \\cdot \\frac{1}{N} \\sum_{k=0}^{N-1} \\mathrm{e}^{-\\mathrm{j}\\, k \\,(\\Omega - \\frac{2 \\pi}{N} \\mu)}\n", "\\end{equation}\n", "\n", "reveals the relation between $X_N(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega})$ and $X_N[\\mu]$. The last sum over $k$ constitutes a [geometric series](https://en.wikipedia.org/wiki/Geometric_series) and can be rearranged to\n", "\n", "\\begin{equation}\n", "X_N(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega}) = \\sum_{\\mu=0}^{N-1} X_N[\\mu] \\cdot \\frac{1}{N} \\cdot \\frac{1-\\mathrm{e}^{-\\mathrm{j}(\\Omega-\\frac{2\\pi}{N}\\mu)N}}{1-\\mathrm{e}^{-\\mathrm{j}(\\Omega-\\frac{2\\pi}{N}\\mu)}}\n", "\\end{equation}\n", "\n", "By factorizing the last fraction to\n", "\n", "\\begin{equation}\n", "X_N(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega}) = \\sum_{\\mu=0}^{N-1} X_N[\\mu] \\cdot \\frac{1}{N} \\cdot \\frac{\\mathrm{e}^{-\\mathrm{j}\\frac{(\\Omega-\\frac{2\\pi}{N}\\mu)N}{2}}}{\\mathrm{e}^{-\\mathrm{j}\\frac{\\Omega-\\frac{2\\pi}{N}\\mu}{2}}} \\cdot \\frac{\\mathrm{e}^{\\mathrm{j}\\frac{(\\Omega-\\frac{2\\pi}{N}\\mu)N}{2}}-\\mathrm{e}^{-\\mathrm{j}\\frac{(\\Omega-\\frac{2\\pi}{N}\\mu)N}{2}}}{\\mathrm{e}^{\\mathrm{j}\\frac{\\Omega-\\frac{2\\pi}{N}\\mu}{2}}-\\mathrm{e}^{-\\mathrm{j}\\frac{\\Omega-\\frac{2\\pi}{N}\\mu}{2}}}\n", "\\end{equation}\n", "\n", "and making use of [Euler's identity](https://en.wikipedia.org/wiki/Euler%27s_identity) $2\\mathrm{j}\\cdot\\sin(x)=\\mathrm{e}^{\\mathrm{j} x}-\\mathrm{e}^{-\\mathrm{j} x}$ this can be simplified to\n", "\n", "\\begin{equation}\n", "X_N(\\mathrm{e}^{\\,\\mathrm{j}\\,\\Omega}) = \\sum_{\\mu=0}^{N-1} X_N[\\mu] \\cdot \\mathrm{e}^{-\\mathrm{j}\\frac{(\\Omega-\\frac{2\\pi}{N}\\mu)(N-1)}{2}} \\cdot \\frac{1}{N} \\cdot \\frac{\\sin(N\\frac{\\Omega-\\frac{2\\pi}{N}\\mu}{2})}{\\sin(\\frac{\\Omega-\\frac{2\\pi}{N}\\mu}{2})}\n", "\\end{equation}\n", "\n", "The last fraction can be written in terms of the $N$-th order periodic sinc function (aliased sinc function, [Dirichlet kernel](https://en.wikipedia.org/wiki/Dirichlet_kernel)), which is defined as\n", "\n", "\\begin{equation}\n", "\\text{psinc}_N (\\Omega) = \\frac{1}{N} \\frac{\\sin(\\frac{N}{2} \\Omega)}{ \\sin(\\frac{1}{2} \\Omega)}\n", "\\end{equation}\n", "\n", "According to this definition, the periodic sinc function is not defined at $\\Omega = 2 \\pi \\,n$ for $n \\in \\mathbb{Z}$. This is resolved by applying [L'Hôpital's rule](https://en.wikipedia.org/wiki/L%27H%C3%B4pital%27s_rule) which results in $\\text{psinc}_N (2 \\pi \\,n) = 1$ for $n \\in \\mathbb{Z}$.\n", "\n", "Using the periodic sinc function, the DTFT $X_N(\\mathrm{e}^{\\,\\mathrm{j}\\, \\Omega})$ of a finite-length signal $x_N[k]$ is related to its DFT $X_N[\\mu]$ by\n", "\n", "\\begin{equation}\n", "X_N(\\mathrm{e}^{\\,\\mathrm{j}\\, \\Omega}) = \\sum_{\\mu=0}^{N-1} X_N[\\mu] \\cdot \\mathrm{e}^{-\\,\\mathrm{j}\\, \\frac{( \\Omega - \\frac{2 \\pi}{N} \\mu ) (N-1)}{2}} \\cdot \\text{psinc}_N ( \\Omega - \\frac{2 \\pi}{N} \\mu )\n", "\\end{equation}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Example - Periodic sinc function\n", "\n", "This example illustrates the\n", "\n", "1. periodic sinc function, and\n", "2. interpolation of $X_N(\\mathrm{e}^{\\,\\mathrm{j}\\, \\Omega})$ from $X_N[\\mu]$ for an exponential signal using above relation." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA14AAAKnCAYAAACWMpyXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAACiGElEQVR4nOzdeXhU5dk/8O+ZPfu+EAiQsO9g2Bd3UGzV1qXuuGFLafVValttf7bV+ta3tVq0VtylVm2tS92KQlARZN8hENYACdn3bZJZz++PM2cSIGCWmTnb93Ndva4Sk5knOZnMfOe+n/sRRFEUQURERERERGFjUnoBREREREREesfgRUREREREFGYMXkRERERERGHG4EVERERERBRmDF5ERERERERhxuBFREREREQUZgxeREREREREYcbgRUREREREFGYWpRegNX6/H2VlZYiLi4MgCEovh4iIiIiIFCKKIpqbm5GVlQWT6dw1LQavHiorK0N2drbSyyAiIiIiIpUoKSnBgAEDzvk5DF49FBcXB0D64cbHxyu8mr7xeDxYtWoV5s2bB6vVqvRyqId4/bSN10/7eA21jddP23j9tE1P16+pqQnZ2dnBjHAuDF49JLcXxsfH6yJ4RUdHIz4+XvO/9EbE66dtvH7ax2uobbx+2sbrp216vH7d2YLE4RpERERERERhxuBFREREREQUZgxeREREREREYcbgRUREREREFGYMXkRERERERGHG4EVERERERBRmDF5ERERERERhxuBFREREREQUZgxeREREREREYcbgRUREREREFGYMXkRERERERGHG4EVERERERBRmDF5ERERERERhxuBFREREREQUZgxeREREREREYcbgRUREREREFGYMXkRERERERGHG4EVERERERBRmDF5ERERERERhxuBFREREREQUZpoOXmvXrsWVV16JrKwsCIKADz/88Fu/5uuvv0ZeXh4cDgdyc3PxwgsvhH+hRERERERkaJoOXq2trZgwYQKee+65bn3+sWPHcMUVV2DOnDnYuXMnfvWrX+G+++7D+++/H+aVEhERERGRkVmUXkBfzJ8/H/Pnz+/257/wwgsYOHAgli5dCgAYNWoUtm3bhj//+c+49tprw7RKIiIiIiIyOk1XvHpq48aNmDdv3ikfu+yyy7Bt2zZ4PB6FVkVERFpT3tiGVfsrUduu9EqI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SO16XfFauHAh7r//fng8nuBQii+++AK/+MUvzph0SEREFA6NcqthlMEqXm2es07xJSIidep18PrFL36Buro6LF68GG631PLgcDjwy1/+Eg8//HDIFkhERHQ29YGWO6Ps8UoMtFS6vX60e/yIspkVXhEREXVXr4OXIAj44x//iEceeQSFhYWIiorCsGHDuhy9TkREFGqiKAaHTBgleMXYzLCaBXh8IuqdbkTZopReEhERdVOfz/GKjY3FlClTQrEWIiKibmv3+OH2Sud4JRpkuIYgCEiIsqGmxYUGpwdZiQxeRERa0afg9cUXX+CLL75AVVUV/H7/Kf+tqzO+iIiIQkVuM7SYBMQYqOUuMdoqBa82TjYkItKSXgevRx99FI899hgmT56Mfv36cYMvERFFVMcZXjZDPQclBiYbNnKyIRGRpvQ6eL3wwgtYvnw5brvttlCuh4iIqFvkio9R9nfJOk82JCIi7ej1OV5utxszZ84M5VqIiIi6LVjxijJa8JL2s9XzEGUiIk3pdfBauHAh3n777VCuhYiIqNs6txoaCVsNiYi0qdethu3t7XjppZewevVqjB8/Hlbrqe84Pv30031eHBER0dkYvtWQwYuISFN6Hbz27NmDiRMnAgAKCgpCtR4iIqJukYNHksGCV0KgwsephkRE2tLr4PXVV1+Fch1EREQ90uCUK17GbDVkxYuISFt6FLyWLFmC3//+94iJicGSJUvO+nmCIOCpp57q8+KIiIjORg4eCQYbrpEkV7wYvIiINKVHwWvnzp3weDzB/382RjpPhYiIlNHRamiwildwnDxbDYmItKRHwatzeyFbDYmISElGHa6RwFZDIiJN6vU4eSIiIiUZtdVQDpourx/tHp/CqyEiou7qdfBqa2uD0+kM/vvEiRNYunQpVq5cGZKFERERnY0oih2thjHGajWMtVtgMUkt/ax6ERFpR6+D19VXX4033ngDANDQ0IBp06bhqaeewve+9z0sW7YsZAskIiI6XZvHB7fPD6Bjyp9RCIIQrHrVO7nPi4hIK3odvHbs2IE5c+YAAN577z1kZGTgxIkTeOONN/Dss8+GbIFERESnqw9UeqxmAdE2s8KriTzu8yIi0p5eBy+n04m4uDgAwKpVq3DNNdfAZDJh+vTpOHHiRMgWSEREdLrOZ3gZcZKufHZZIycbEhFpRq+D19ChQ/Hhhx+ipKQEK1euxLx58wAAVVVViI+PD9kCiYiITtcYqPQYrc1QxkOUiYi0p9fB6ze/+Q0efPBBDB48GFOnTsWMGTMASNWvSZMmhWyBREREp5NbDY02Sl6WEDzLi8GLiEgrenSOV2fXXXcdZs+ejfLyckycOBGiKEIQBFxyySX4/ve/H8o1EhERnaLjDC9jTTSUyYdGc7gGEZF29Okcr//+97+47bbb4HA44HA4MHbsWOzZswcjR44M1fqIiIjO0MBWQwAdLZdERKR+va54PfLII/jLX/6Ce++9N9hmuHHjRjzwwAM4fvw4Hn/88ZAtkoiIqLOO4RoGDV7R3ONFRKQ1vQ5ey5Ytw8svv4ybbrop+LGrrroK48ePx7333svgRUREYROseBm01TAh8H03cKohEZFm9LrV0OfzYfLkyWd8PC8vD16vt0+LIiIiOhd5qIRhK16cakhEpDm9Dl633norli1bdsbHX3rpJdxyyy19WhQREdG5yK2GSQateMnfN4MXEZF29LrVEABeffVVrFq1CtOnTwcAbNq0CSUlJViwYAGWLFkS/Lynn366b6skIiLqxPDDNYLj5NlqSESkFb0OXgUFBTjvvPMAAEePHgUApKWlIS0tDQUFBcHPEwShj0skIiI6ldxqmGDQVkP5+273+NHu8cFhNSu8IiIi+ja9Dl5fffVVKNdBRETULaIoGr7VMM5ugdkkwOcX0djmYfAiItKAPp3jRUREFGlOtw8enwjAuMM1BEEItlnyEGUiIm1g8CIiIk2R2wxtZhOiDFzpSeBZXkREmsLgRUREmlLf2nF4spH3EXOkPBGRtjB4ERGRpjQa/AwvmXx4dCMnGxIRaQKDFxERaUrHKHljDtaQseJFRKQtDF5ERKQp8jAJVryk4FnP4EVEpAkMXkREpClsNZTI3z9bDYmItIHBi4iINKVjuIbBWw051ZCISFMYvIiISFMaWPECACRwjxcRkaYweBERkaZwuIZErvjJQZSIiNSNwYuIiDSlgcM1AABJwVZD7vEiItICBi8iItIUthpK5IofWw2JiLSBwYuIiDSFrYaShEDwbPP40O7xKbwaIiL6NgxeRESkGaIoBlvrkmKMXfGKs1tgEqT/38R9XkREqsfgRUREmtHi8sLrFwGw4mUyCR2TDRm8iIhUj8GLiIg0Q24ztFtMiLKZFV6N8pICkw3ls82IiEi9GLyIiEgz6uU2Q4MfniyT93mx4kVEpH4MXkREpBnBwRoGn2goSwy0GjZysiERkeoxeBERkWbU8wyvU3QcosxWQyIitWPwIiIizZArXmw1lASHa7DiRUSkegxeRESkGR0VLwYvoNNwDQYvIiLVY/AiIiLN6Kh4sdUQ6Gi5bGSrIRGR6jF4ERGRZjRwquEp5ODFVkMiIvVj8CIiIs2QW+oSWPECwD1eRERawuBFRESawYrXqeS9bo08x4uISPUYvIiISDPqucfrFPLPQR46QkRE6sXgRUREmtHAqYanSIySfg5Otw8ur0/h1RAR0bkweBERkSZ4fX40tXsB8ABlWZzDAkGQ/j/bDYmI1I3Bi4iINKFzsEiMYvACAJNJCA7YaOSADSIiVWPwIiIiTZD3d8U5LLCY+fQlk0NoAyteRESqxmcuIiLSBPmQYE40PJW8362+lQM2iIjUjMGLiIg0ob6VEw27EjxEmRUvIiJVY/AiIiJNkEemJ7DidYpE7vEiItIEBi8iItKEBp7h1SW51bChja2GRERqxuBFRESaIFe8uMfrVPJUw3pWvIiIVI3Bi4iINEHew8QzvE4lVwDZakhEpG4MXkREpAkNgYoXz/A6FVsNiYi0gcGLiIg0ITjVMIathp0lyFMNWfEiIlI1Bi8iItIEeY9XIvd4nSJ4gDKDFxGRqjF4ERGRJjS2caphV+RhI3IrJhERqRODFxERaQKnGnZNHjbS6vbB7fUrvBoiIjobBi8iIlK9do8P7R4pVCSw4nWKOIcVgiD9f7kqSERE6sPgRUREqidXuywmAXF2i8KrURezSUC8IzBSnpMNiYhUi8GLiIhUT55omBhthSCXdygokZMNiYhUj8GLiIhUTz6jihMNuyb/XOoZvIiIVIvBi4iIVE+u5PDw5K51jJRnqyERkVoxeBERkerxDK9zk1sNOVyDiEi9GLyIiEj15IoXz/DqGg9RJiJSPwYvIiJSPbmFLimGFa+uJMiHKHOqIRGRajF4ERGR6slDIxJZ8eqSXAnkcA0iIvXSfPB6/vnnkZOTA4fDgby8PKxbt+6sn/vBBx9g7ty5SEtLQ3x8PGbMmIGVK1dGcLVERNQbcsUrMYoVr650jJNnxYuISK00Hbzeeecd3H///fj1r3+NnTt3Ys6cOZg/fz6Ki4u7/Py1a9di7ty5WLFiBbZv346LLroIV155JXbu3BnhlRMRUU/Uc4/XOSXJ4+RbWfEiIlIrTQevp59+GnfffTcWLlyIUaNGYenSpcjOzsayZcu6/PylS5fiF7/4BaZMmYJhw4bhD3/4A4YNG4ZPPvkkwisnIqKe4FTDcwsGL1a8iIhUy6L0AnrL7XZj+/bteOihh075+Lx587Bhw4Zu3Ybf70dzczOSk5PP+jkulwsulyv476amJgCAx+OBx6Ptdxbl9Wv9+zAqXj9t4/XrGbmFLs4mqOZnpqZrGGcXAAB1rW5VrEcL1HT9qOd4/bRNT9evJ9+DZoNXTU0NfD4fMjIyTvl4RkYGKioqunUbTz31FFpbW/GDH/zgrJ/zxBNP4NFHHz3j46tWrUJ0dHTPFq1S+fn5Si+B+oDXT9t4/b6dKAINrWYAArZvXIejdqVXdCo1XMN2HwBY4PL68eEnK2AzK70i7VDD9aPe4/XTNj1cP6fT2e3P1WzwkgmCcMq/RVE842Nd+ec//4nf/e53+Oijj5Cenn7Wz3v44YexZMmS4L+bmpqQnZ2NefPmIT4+vvcLVwGPx4P8/HzMnTsXViv3TWgNr5+28fp1X1ObB/5NXwEArv3uZbBb1ZEq1HQNRVHE/9u+Gh6fiKlzLkJWYpSi69ECNV0/6jleP23T0/WTu+G6Q7PBKzU1FWaz+YzqVlVV1RlVsNO98847uPvuu/Huu+/i0ksvPefn2u122O1nvr1qtVo1/4si09P3YkS8ftrG6/ftWpqkNsMoqxmx0Q6FV3MmtVzD5BgbKptcaHaLqliPVqjl+lHv8Pppmx6uX0/Wr9nhGjabDXl5eWeUKPPz8zFz5syzft0///lP3HHHHXj77bfxne98J9zLJCKiPmrgRMNukQds1LVywAYRkRpptuIFAEuWLMFtt92GyZMnY8aMGXjppZdQXFyMRYsWAZDaBEtLS/HGG28AkELXggUL8Mwzz2D69OnBallUVBQSEhIU+z6IiOjsONGwe5JjONmQiEjNNB28brjhBtTW1uKxxx5DeXk5xo4dixUrVmDQoEEAgPLy8lPO9HrxxRfh9Xrxk5/8BD/5yU+CH7/99tuxfPnySC+fiIi6Qa54JbLidU6seBERqZumgxcALF68GIsXL+7yv50eptasWRP+BRERUUjJQSIphhWvc0mKkYJpPYMXEZEqaXaPFxERGYPcOpfMVsNzSg4eoqz9c3GIiPSIwYuIiFSNFa/ukX8+ddzjRUSkSgxeRESkanLFK4XB65yCwzXYakhEpEoMXkREpGqseHUPh2sQEakbgxcREalafau0Z4l7vM4tKZrj5ImI1IzBi4iIVE3esyRP7aOudUw19EAURYVXQ0REp2PwIiIi1RJFMbhnKZmthuck/3zcPj9a3T6FV0NERKdj8CIiItVqdnnh9UvVmyS2Gp5TlNUMu0V6WueADSIi9WHwIiIi1ZIDRLTNDIfVrPBq1E0QhI7JhtznRUSkOgxeRESkWsGJhqx2dQsnGxIRqReDFxERqZZcueH+ru5hxYuISL0YvIiISLXqAqPkeYZX9yRGS5MN5Z8bERGpB4MXERGpVnCiYTRHyXdHsOLFVkMiItVh8CIiItXqOMOLFa/u4CHKRETqxeBFRESq1VHxYvDqDu7xIiJSLwYvIiJSreBUQ1a8ukX+OXGqIRGR+jB4ERGRanGqYc/IlcF6DtcgIlIdBi8iIlItnuPVM0kxgamGbDUkIlIdBi8iIlKteqdUuWHFq3uCwzVa3RBFUeHVEBFRZwxeRESkSj6/iIbgVEOOk+8OOXh5/SKaXV6FV0NERJ0xeBERkSo1tXngDxRt2GrYPVE2M6KsZgBAA/d5ERGpCoMXERGpkrxPKc5hgdXMp6vuktsyuc+LiEhdLEovgIjIyHx+EV8UVGDj0Rq4fX5MzE7EVRP6I8pmVnppigue4cX9XT2SFGNFaUNb8OdndO0eH/67pxzbi+thFgRMy03GZWMylV4WERkQgxcRkUKq2oBrXtiE/eXNwY/9c0sJlq4+jGdvmoQpg5MVXJ3yONGwd+SfF8/yAvacbMBP3t6Bkrq24Mf+sekEhmfE4vmbJiq3MCIyJPZuEBEp4FhNK57dZ8b+8mbEOyy4c9Zg/PSioRiQFIXyxnYseHULtp+oU3qZiuIZXr0TnGxo8FbDgtJG3PLyZpTUtSEz3oEfXzgE98zJQXKMDYcqW3Ddi5tR3KL0KonISFjxIiKKsLpWN25fvh3NHgEjM+Pwxl1TkR7vAAAsvmgIFr25A2sPVePO17fiv/fNQXZytMIrVkZdYDgEK149E9zjZeCKV1VTO+54fQuaXV5MHZyMV+6YjHiHNBnznvNzcc8b27G7pAGvHDTj2mYXspI5NZOIwo8VLyKiCBJFEb/6YC/KG9uR5hCx/PbzgqELAKJtFrxw63mYmJ2IpnYvHvpgj2HPY+qoePFFcU8YveIliiJ+/WEBalrcGJkZd0roAoD0OAfevHsqhqTFoNEt4P5/74Hfb8zHGBFFFoMXEVEEfbirFJ/vq4DVLOCO4T6kxNrP+JxomwVLb5gIh9WE9Udq8e9tJQqsVHnycIgkthr2iBxU6w06Tn7F3grk76+E1Sxg6Y0TTwldsjiHFctungibScSW4/V4d7sxH2NEFFkMXkREEeJ0e/F/nx0AAPz0wiEYEHP2zx2cGoOfzR0BAHg6/xDaPb5ILFFVghUvthr2SJKBx8l7fX48uVJ6jP34wqEYmRl/1s/NSY3B/Gw/AOAPKw4YujWTiCKDwYuIKEJeXnsMlU0uDEiKwt2zBn3r5y+YOQhZCQ5UNrnw1ubiCKxQXepY8eoVOagacZz8BztKcbzWiZQYG350fu63fv4F/USMzIhFY5sHL359NAIrJCIjY/AiIoqAxjYPXl5XBAD45eUjYbd++zlddosZ914yDACwbM1RuLzGqnrVO6VWOU417Bk5qBptj5fPL+KvXx0GACy6YAhi7N8+P8wsAEvmSo+xv288jqrm9rCukYiMjcGLiCgC/rHxOFpcXozIiMN3xvXr9tddlzcAmfEO1LS48NneijCuUH14jlfvdAzX8BhqaMRXB6pQUteGxGgrbp3+7RVl2YXDUzExOxHtHj9e+roojCskIqNj8CIiCrM2tw+vrz8OAPjxhUNgMgnd/lqr2YSbpw0EIL0jbxRenx+Nbax49UZitDRMwucX0dzuVXg1kSM/Pm6YnI0o27dXlGWCIOB/LpWqXv/aWoLmdmMOJSGi8GPwIiIKs092l6G21Y0BSVH47vjuV7tkN07NhtUsYGdxAwpKG8OwQvWR2wwFAUiI4jj5nnBYzYgJBA+jDNgoqm7BusM1EAT0qNolu2BYGoakxaDF5cW7206GYYVERAxeRERh99YWaTDGrdMHwWLu+Z/d9DgH5o3JBAC8t90YLwo7txmae1AhJElyrHyIskvhlUTGBztKAQAXDE/r1YHjJpOAO2flAACWbzhuqBZNIoocBi8iojDaV9aI3SUNsJoFXJc3oNe3c+15/QEAn+4pg9fnD9XyVKs2EBjYZtg7yTHS+XC1LfqveImiiI92S8HrmvP68hgbgDiHBcV1Tmwqqg3V8oiIghi8iIjC6F9bpINZ543ORGoXhyV315xhaUiOsaGmxY31R/X/olAODCkMXr2SGvi51RpgpPyO4nqU1LUhxmbG3FEZvb6dKJsZV07IAgC8a5DKMhFFFoMXEVGYON1efLhTeideHpDRW1azKbg/7KPAbepZbYtU8epLWDWylECrofxz1LOPdpUBAC4bm9mjoRpdkavSnxWUo4lDNogoxBi8iIjC5POCCjS7vBiUEo0ZuSl9vj353fjVhZXw6LzdUN7jxVbD3gm2Guq84uX3i/i8QDpmQX589MWk7EQMSYtBu8ePFXvK+3x7RESdMXgREYXJx7uld+K/P6l/j0bIn815A5OQEmNDU7sXW47V9fn21KwmEBjkyg31TGqw4qXv4LWntBFVzS7E2i2YOaTvb24IgoDrJ2cDYLshEYUegxcRURjUtbrxzeEaAMB3x/f9nXgAMJsEXBrYw7Jqn74PU5Zb5FLYatgrwVZDnU81lB8HF4xIg93StzZD2TWT+sMkANtP1KO41hmS2yQiAhi8iIjC4vOCCnj9Ikb3i8fQ9NiQ3e68MYHgtb8SoqjfkddyqyGHa/SOUaYa5u+vBADMG937oRqnS493YHqgNXhFAdsNiSh0GLyIiMLg48B466smhqbaJZs1NBVRVjPKG9uxv7wppLetJpxq2DcpBphqWFLnxOGqFlhMAi4ckR7S275inDTIZsVeBi8iCh0GLyKiEKtsasfmwB6s7wRewIWKw2rG9NxkAAi2MupRDVsN+0SeBlnX6tbtYcBrD1cDkPY+JkRZQ3rbl4/NhEkA9pxsREkd2w2JKDQYvIiIQuyzveUQRWDSwERkJ0eH/PZnD0sDAHxzRJ/By+31o6ndC4AVr95KipGCiM8vorFNn2PR5TceZg9LDfltp8baMS0n0G7IqhcRhQiDFxFRiK0urAIAzB+bGZbbPz/wQnPLsTq0e3xhuQ8l1Tul9jizSQh5JcMo7BYz4hwWAPpsN/T5RawPvPEwJwzBCwCuGM92QyIKLYvSCyAi9Wpz+7D1eB32lTVBhIjBKTGYNTSVL4bPoandg01FtQCAuaPDE7yGpsciI96OyiYXth6vw5xABUwv5DbD5BhbSMbwG1VqrB3N7V7UtrhCOuBFDfacbEBTuxfxDgvGD0gMy31cPiYTv/2oALtPNqK0oQ39E6PCcj960NzuwYajtSiqboUIEaMy4zE1Jxkxdr7MJOqMjwgiOoPb68cr3xTh5bVFqHee2qZkM5uwYMYg3HvxMCREM4Cd7uuD1fD6RQxJi0FOakxY7kMQBMwZlob3tp/EN4drdBe8OFgjNJJjbDhW06rLite6QJvhrKGpMIcpnKfF2ZE3KAlbj9fjy8JK3DZjcFjuR8taXF4sW3MEr35zDO2eUw91j3dYcOesHPz4wiFwWEMz6p9I69hqSESnKKlz4voXNuBPnx9EvdODfgkOXDkhC9ec1x9D0mLg9vnxyjfH8N3n1mF/mX6n6vWWPN760hCOt+6K3F61VocDNup4eHJI6HmyYTj3d3V28UjpcfzFgaqw3o8WHalqwVXPfYO/fXUU7R4/BqdE4/uT+uPqiVnonxiFpnYvnvniML73t/Uoqm5RerlEqsCKFxEFFVW34OaXN6OiqR0JUVY88t3R+N7ELFjM0ns0oiji60PVeOSjApTUteH6FzbgzYXTMGlgksIrVwePz4+vDkov0EJ5rlBXZg2VXnAWljehutmFtDj9TP8LTjSM0c/3pAR5IqR8GLVetLi82FFcDwA4P8zV3ktGpeOPnx/AhqO1cLq9iLbxZRMg/d258aVNaGzzIDPegceuHoO5ozMgCFL10e8X8d+95fjdx/twoKIZ17+wEW/dMw0jM+MVXjmRsljxIiIAQHljG256eRMqmtoxLD0WK/5nDq7LGxAMXYDU4nbhiHR88tPZmJ6bjFa3D7e/tgWHKpsVXLl6bD1Wh+Z2L1JibJiYHd4wmhprx8jMOOl+j9eF9b4iTa7QJLPVsE+CFS+dHaK8/UQ9vH4RA5KiwjI1tLNh6bHITo6C2+vX9fENPXGithW3vboZjW0eTMxOxCf3zsa8MZnB0AUAJpOAKydk4bP/mYOx/eNR2+rGTS9twonaVgVXTqQ8Bi8iQpvbh3ve2IbKJheGpcfinz+cfs6N5InRNrx6+xTkDUpCU7sXi/6xHc3t+hxZ3RP5hVKb4cUj08O276SzqTnSeV5bjukreNUFgkIqWw37RG7VrNNZq+HWwO+7/PsfToIg4JJAu+GXbDdEu8eHRW/uQE2LG6P7xePvd009Z7U9Pd6BtxZOx9j+8ah3enD337ehic8VZGAMXkSExz7dh4LSJiTH2PDaHVOCh6+eS4zdgpduy0O/BAeKalrxq/8URGCl6iWKYnB/19wwtxnKJg+WXnhuO6Gv4FXbysOTQ0H++dXorNVQrvBOGRz+4AVIb6QAUvDS62HU3fXoJ/tRWN6ElMBzRXcm3CZEWfHq7VOQGe/AkaoW/OqDvRBFY/8cybgYvEjTWl1ebCqqxap9FdhwpEZ37+xGwsp9FfjnlhIIAvDcTZN61LqTEmvHczefB7NJwCe7y/B5QUUYV6puR6pacLK+DXaLKewb/mVTAy8895c16ariWNPCVsNQ0ONwDZfXh10lDQAiF7ym5SYjxmZGVbML+ww8UOibwzX455ZiAMAzN05CZoKj21+bEe/Aslul54pP95Tjgx2l4VqmbjU43dh4NPB652iNrv7mGwl3iZImbT1ehxe/LsJXB6vgO+0dyBm5Kbh7dg4uGZV+Ss85namp3YNfBypVPzw/FzOH9jww5A1Kwg/Pz8WyNUfxyEcFmDEkxZDnfMnTBaflpkRsA35mggPZyVEoqWvDjuIGXDBcH2Pl5TdQ2GrYN3psNSwobYTL60dKjA1D0sJzXMPp7BYz5gxLw+f7KrC6sBLjBiRE5H7VpM3tw0Mf7AEALJgxqFdvLk0amIT7LxmGp/IP4dFP9uGCEWnd6q4wunWHq/HS2iJ8c6QGnQuFJgGYPSwNPzo/NzhsidSPFS/SlKZ2Dx58dzeuf2EjVhdWwucXkZXgwMTsRAxOkSo1G4tqsfCNbbhz+VZUN+urxSbUnl51CDUtLuSmxmDJ3OG9vp3/uWQYclNjUN3swnNfHg7hCrVj3eFqAMCcCD8Byu/6b9XRPq9aTjUMCfnnV+90w+vzf8tna8OWY9I0w8mDkyL6xtrFozraDY3otfXHcLK+DVkJDvzi8pG9vp0fXzgEo/vFo6ndi//77EAIV6g/DU43Fv1jO257dQvWHZZCV3ZyFCZmJ2JAUhT8IrD2UDVueWUz7v3nTtTr6A0WPWPFizSjuNaJu/6+FUeqWiAIwA2Ts7FwTg6GpscFP6e0oQ1vbDyO1785jjUHq3HlX7/BK7dPxtj+xnuH8tsUlDbijY3HAQCPXT0WdkvvD7h0WM145MrRuPP1rVi+4ThumTYIg8N0eLAaubw+bCqqBQDMGR7Z4DV1cDI+2FGqm8mG7R4fWt0+AEAyK159khQ44FwUgXqnRxdHDmyL8P4u2YUjpGry3tJG1La4DLX/sKbFhWVrjgIAfjl/JGLtvX/paDGb8PvvjcW1yzbgve0nceOU7OBeVepwuLIZd/19K0rq2mA2Cbht+iDcNSsHA1M6tgIcr2nFa+uP4a3Nxfhkdxl2lzTgtTsmn/KaiNSHFS/ShKLqFlz7wgYcqWpBZrwD7/5oBv7v2vFn/IHpnxiFh+ePwor/mY0haTGoaGrHTS9vCu4JIIkoivjdx/vgF4HvjO8Xkj1JF41Ix/nD0+DxiXgq/1AIVqkd20/Uo93jR1qcHSMyIvukJ79o2VXSAJfXF9H7Dgd5P5LNbEJcH17gkfQiVw5femg39PtFbDshVbwiHbzS4xwY1U86g+qbI8YaK//M6sNocXkxfkACrhyf1efbyxuUhBsmZwMAHvlon+EHlpyusLwJN7y0CSV1bchOjsJHP5mF31015pTQBQCDU2Pw2NVj8eHiWchOjkJxnRPXvbARheXG3YeoBQxepHplDW24+eXNqG52YWRmHD766axvfYdsaHocPvzJLEwdnIzmdi8WvLoZR6paIrRi9fvyQBW2naiHw2rC//vOqJDd7kOBFpRP95ThSJVxzvZaF9jfNWdoasT3FQ5Ji0FKjA0urx8Fpdp/wg22GcbauEczBPR0iPLhqhY0tnkQbTNjTFbkD+I9P/AG1dpDxglex2ta8XZgoMavrhgFU4iOyfjl/JGIs1tQWN6ET/aUheQ29aCkzonbXt2MulY3xvVPwMc/mf2tHTvjBiTgw8WzMCE7EQ1OD259ZTOO1fC8NLVi8CJVa/f48KN/bEdFUzuGpsfizYXTkBHfvUlKcQ4rXr9zCs4bmIimdi/uWr6VPdCQ3jV+cuVBAMDtMwejX8LZz+vqqdFZ8Zg3OgOiCPz1yyMhu121C+7vinCbISCdMzRpoHRY887i+ojff6jVcqJhSMk/xxod/O2Tf78nDEg85WD3SDk/MLxm3eFqw4xDf+Hro/D5RVw4Ig3Tc1NCdrvJMTb88PxcAMBf8g/Bo5M9iH3R3O7BXcu3Bs9Ie3PhNCR18+9gSqwdb9w1FeP6J6C21Y27/74VjW2ceqhGDF6kWqIo4lcf7MXe0kYkRVvxejfPl+osxm7BywsmB8vwv3h/j2GeMM/m073lOFDRjDi7BYvOHxLy27/vkmEAgE92l+Fotf6rjLUtrmClSanJUpMGJgKALlpq5VZDI+2hCSd5MmSdDipe8u/3xMDve6TlDUqCw2pCVbMLByv1X9GvaGzH+ztOAgB+etHQkN/+XbNzkBJjw/FaJ97bfjLkt681v/loHw5XtSAj3t7tM9I6S4iy4tU7JiMrwYGi6lb87N+7DP96R40YvEi1/r2tBB/sLIXZJOBvN5/Xo/OlOkuJteOFW/NgM5uQv78Sb24uDvFKtcPnF7E0sP/qnvNzu/1uWk+M7Z+AS0elwy8iuCFbz9YflYZqjOoXj/S47p9rE0oTBiQCAHafbFDk/kNJbolLZcUrJOTJhno4y0sOXvLve6Q5rGZMy5GqPusM0G74yroieHwipg5ODssAjBi7BT8JBLpnvzisiz2qvfWfnSfxn8DrnedvOa9HZ6R1lh7nwEsLJsNmMWF1YRXe3HQixCulvmLwIlUqqXPisU/2AwAenDeiV+dLdTYmKwG/nC/tP3r80/04bIB3K7uycl8FimpakRBlxV2zc8J2P/KT6ce7ynQ/0n/doUCbYYQOTe7K+OwECAJQUtem+b08ckBgq2FoBFsNW7QdvFpdXhwK/N2epFDFC+hoN1wbaC/WqwanO7i368cXhb4zQnbztIHIiLejvLEdH+405qHKJXVOPPLhPgDS0Sx5g/oWcsf2Twjut378v4XBxw2pA4MXqY7fL+IX7+1Bq9uHyYHDeUPhzpmDccHwNLi8fvzqP3sNN0lJFEW88LVUgbp9xqA+jQT+NpMGJmHSwES4fX68tVm/77iJotgxWEPB4BXvsGJIWiwA7bcbynu82GoYGsFWw1ZtB/K9pY3wi0C/BEe39/mGgzxgY/OxOrR79Fuh+dfWEjjdPozqF48Lw3gwu8NqxsLZ0nP8C18XwWfA5+X/92EBWlxeTBmcFHzTsq/unNXxemfJv3cZ7ueqZgxepDr/2lqCjUW1iLKa8efrJ8AcoilKJpOAP1wzDtE2M7Yer8d7O4zVU77xaC32nGyEw2rC7TMHh/3+7pwlVdTe3HRCty0kR6tbUNHUDrvFFPHx1qebmJ0IQAfBq7VjqiH1XcdUQ21XvIL7uwK/50oZmh6LfgkOuL1+bNbRoeWd+fwi/rFResPszlmDwz5d9KZpA5EQZcWxmlas3FcR1vtSm88KKvD1oWrYzCb88drxIXu9IwgCnrx+POIdFhSUNgXP7CTlMXiRqtS3uvGnldJp9g9eNiLkh/D2T4zC/ZdKwx+eWFFoqCmHywLVrh9Mzo5INWH+2ExkxjtQ0+LGp7vLw35/SpDHSk/NSYbD2vsDqENBN8FLrnix1TAk5FZDre/x2lXcAED54CUIQrC6LbcZ681XB6pQ2tCGxGgrrprQ93O7vk2s3RJ8M/D5NUcMMxCixeXFo59ILYaLLhyC3EDXQqikxzmCWyyeWnUIFY3tIb196h0GL1KVP608iAanByMz43D7jEFhuY87Z+VgZGYc6p0ePG2Qg34LShux7nANzCYB98wJTevmt7GaTVgwU7qGen23LThGXsE2Q1nn4KXlNtqOc7zYahgKcqthjcb3/qml4gXof5/X3wN/r2+YnB2xN5TumDkYDqsJBaVNuq0knu65L4+gssmFQSnRWHxhePbR3TRlIM4bmIgWlxe//3R/WO6DeobBi1Rj78lG/GurtJn30avGhO2cFqvZhN9eOQYA8PaWYkOMPH95XREA4Lvj+/V6OmRv/GByNqxmAbtPNqKwXPuH+3bm8vqwqUh6gTBnWPj2QHTXyMw4OKwmNLd7UaTRwzNFUQwOgUiLY/AKhbRYaT9Uc7tXs3uSKhrbUdHUDrNJwLgB5z5MNhJmDUmFIACHKlt0V0Uoqm7BusM1EATg1unhefOzK8kxNlxz3gAAwOvrj0XsfpVS2tCG1wLf5yPfGR22gGsyCfjf74+DSQD+u7cc208YI9SqGYMXqYIoivjfFfshisDVE7MwLYQHNXZlxpAUXDIyHT6/iD99fiCs96W06mYXVuyVWv3kTcyRkhprx9zRGQCAd7aWRPS+w23HiQa0eXxIjbVjZGac0suBxWzC2CzpRekejY6Vb2rzwh04SJWthqERH2WBLfAmllarXvLv87D0WETbwjcUqLuSYmwY3196rOmt6iX/nb5oRHpE36QDpAFYAJC/vxIldc6I3nekPbXqINxeP6blJOOSUelhva9R/eLxg8nZAID//W+hYVo51YrBi1Th60PV2FRUB5vFhF8ExqCG20PzR8IkACv3VWLrcf2+C/TvbSXw+ERMzE5U5N3iG6YMBAD8Z2epZt9x70rnNsNwbz7vrrGBF4Pygc5aU90iVQ/iHRbF98zphSAIwXZDrR7tUFDaCAAY11/5apdMrnJ/c1g/53l5fH68v0Ma6X7DlOyI3/+wjDjMGZYKv6jf9nQA2FfWiP8ERuf/6opREXn+WDJ3OKKsZuwobsBnBcYaYKI2DF6kOL9fxB8/PwgAWDB9EPonRkXkfodlxAWfXJ5adTAi9xlpPr+ItwMHRt8WwbaRzmYPTUX/xCg0tnl0NbFKDWPkTye/MC0oa1R4Jb1TFQgGbDMMLfnnqdWzvArKpDcS1NBmKJsdeNyvP1Kj6T2VnX19sBo1LS6kxtpw8cjwVmHO5q7ANNx/bS1Bq8uryBrC7S/5hyCKUuv/hAjtWUyPd+CewNE8f/z8ANxef0Tul87E4EWK+3h3GQrLmxDX6RT7SLn34mGwmgVsKqrDpqLaiN53JHSeTvWd8f0UWYPZJOD6yVLvvl7aDeta3cFwM7uPh3uHklzx2l/WpMkXg9zfFR7yz1PrFa8xWeoJXucNTEK0zYzaVjf262T/6rvbpb/P35vYH9Yw7bH+NhcMT0Nuagya2714X4dHvhSUNmJ1YRVMAvDA3OERve8fnZ+L1Fg7TtQ68baOz9dUOwYvUpTL68OfA9WmRRcOQVKE93VkJUYFe5+fWX04ovcdCf/YJP1xjeR0qq5cPzkbggBsOFqLE7XaHPzQ2fojNRBFaaBFuoKHuZ5uSFoM7BYTWlxenNDgHgk5GKRyomFIaTl4VTW1o6rZBZMAjOqn/F5Kmc1iwvTAXuRvjmi/3bCmxYUvCqsASH+vlWIyCcHR8n/fcFx3+5GWBl5nXDUhK3jofaTE2C3B43T+tuaorlr/tYTBixT1/vZSnKxvQ1qcHXfOGqzIGhZfNBRWs4CNRbXYoqMxtidqW/F14JyZm6cNVHQt/ROjcH5gT8R727X/Lqaaxsh3ZjGbMKpfPABgb6n22g2r2WoYFnKQ1eJwDbmyPCRNHYM1OpMf/3rY5/XhzlJ4/SImDEjACIWHBV2bNwAxNjOOVrcGJ8fqgVTtqoRJAH568TBF1vCDydnonxiF6mZXcBsCRRaDFynG4/Pj+TVHAACLLhii2JNq/8So4Dt8z3yhn3O93gr8Ub1geBoGpYT2IOreuDZPajf8cFeppt/FFEUx+EJLDWPkTze2vxS89mkweMnBgMErtLRc8ZIHxYxV0WANmRy8thyv03T1QBRF/Hub1GaoZLVLFmu34HuT+gMA3tRRS9yzX0jVrisnZGFoemSrXTKbxYSfXixt6Vj2NateSmDwIsV8uFOqdqXG2nDzVGUrMosvHAKrWcD6I7XYpoMJh+0eX/CJVKmhGqebOyoDMTYzSurasKO4Xunl9NrR6laUNbbDZjFhak6y0ss5g5YHbLDVMDzSAj/Pai1WvAJvIKgxeA1Ji0W/BAfcXr+muyX2lTXhUGUL7BYTrpyQpfRyAAC3TJOet1YWVGjyDYPT7S9rwqr9lRAEaW+5kq49b0Cw6vXmJv0EW61g8CJF+Pwinl9zFACwcE4uomzKjo4ekBSNawOHN77wdZGiawmFT/eUo8HpQf/EKFyk0HSq00XZzLhsbCYABEfpapHcZjh1cLIqR57LAwgKSps0V1lkq2F4aLnitS8w0XBsVrzCKzmTIAjB4TrrNHye18e7ywAAl4xKR0KUVeHVSEZnxeO8gYnw+juqcVr20lrp9c53xvVTrNols1lMuDdQ9Xrh6yK0uVn1iiQGL1LEp3vKcKymFYnRVtyqkorMPefnQhCA1YWVOFLVrPRy+kQeqnHztIEwm9RxxhQAfD/QPvLfPeWaHWerxjHynQ3PiIPVLKCxzYOT9W1KL6dH5IpMGiteIaXVPV51rW6UNki/w6NVGLwAYM5wqd14nUb3efn9Ij4JBK+rJvRXeDWnkqteb28uhk+DU1plJ+ud+GRPOQBpW4UaXJs3AAOSolDT4sJbOmrn1AIGL4o4v1/Ec19Ke7vunpWDWLs6NkwPSYvFvNEZAICX1mq36rX3ZCN2lzTAahYUOQTzXGYOSUVanB31Tg/WHtLeO8Rurz947MBslQYvm8UU3BxfoKF9Xj6/iLpWaZx8OiteISVXvJxun6bORpJ/f3NSYxDnUEcl5nSzhkiTDQ9UNKOquV3h1fTc1uN1KG9sR5zdggtHqGvP6nfG90NitBWlDW34+lCV0svptVe/OQafX8TsoamqaZm1mjtXvY6y6hVBDF4UcSv3VeBwVQviHBbcrtAkw7P5UeDdqP/sLEVlk/aeRAEEe7avGNdPdXtlzCYBVwX2EHy4S3vthjuK6+F0+5Aaa8OoTHW+Aw8AY7O0t8+r3umGzy9CEIDkCB8roXcxdguiA+3cWmo3lH9/x6i02gUAKbH24ECb9RocKy+3GV4+NlN1rdMOqxnXBbYAvLlJmxP46lvd+NcWqVXyRxfkKryaU11z3gBkJ0ehpsWNf27R5s9XizQfvJ5//nnk5OTA4XAgLy8P69atO+fnf/3118jLy4PD4UBubi5eeOGFCK2UAGl60l8D1a47Zg5GvMrexTxvYBKmDk6GxyfitfXHlF5OjzU6PfhotxRo1DJU43Ryu2H+/ko0t3sUXk3PyPs4Zg9NhUlFLZynk99VlSfCaYEcCJKjbbAodHirnslVLy21G+4L/P6OU0mV4GxmDw20Gx7SVvDy+PxYsVdqgbtqojqGapxOPgrlq4NVOFmvvbMJ39x0Am0eH0b3iw/uB1QLq9mEH1/QUfXihMPI0PSz2zvvvIP7778fv/71r7Fz507MmTMH8+fPR3Fx18n92LFjuOKKKzBnzhzs3LkTv/rVr3Dffffh/fffj/DKjeuLwirsL29CjM2Mu2blKL2cLsnvSr29qRhNGgsG7+04iXaPHyMz45A3KEnp5XRpTFY8hqTFwOX1Y+W+SqWX0yPyGPnZKhwj31lH8GrUzIANDtYIL7n6rcWKl1ras87mfPk8ryM1mnm8AdLfs3qnB6mxdswIHAatNrlpsZg1NAWiCM1VZdo9PizfcByA9LpCENT3Zt21ef2RleBAVbML7+pgiIkWaDp4Pf3007j77ruxcOFCjBo1CkuXLkV2djaWLVvW5ee/8MILGDhwIJYuXYpRo0Zh4cKFuOuuu/DnP/85wis3JqnaJZ1jceuMQUhSaTvRRSPSMSw9Fs0uL/6poQMG/X4x2GZ424xBqvwjD0iTwOSq14camm5Y3+rGnsCeE7UO1pCNzIyD2SSgttWNyiZtvNDmGV7hpbWR8s3tHpyolSocam41BIC8wUlwWE2oanbhUGWL0svpto8C7d7fHd9P1VXmWwNDNt7ZelJTQ5ne234Sta1u9E+MwnfG9VN6OV2yW8xYdKG0xWLZmqOa+vlqlXofad/C7XZj+/btmDdv3ikfnzdvHjZs2NDl12zcuPGMz7/sssuwbds2eDzaqmwAQEmdE0/nH4JfI9N+1h6uwe6TjXBYTbhnjrp6nTszmQT88Hxpfa+tPwaXVxvl9w1Ha3GsplU6fHKiuqZTne7qwPo2HK1BlUb20q0/WgNRBEZkxCEj3qH0cs7JYTUjN1U6NLuwXBvthjzDK7yCrYYaqXgdqJAmy2YlOJAYrc436WR2ixlTc6SKkVbGyre5fVi1X+o4UGuboezS0RlIj7OjpsWFVfsrlF5Ot/j8Il5eJw3pumdOjqqD7Q8mZyM9zo6yxnZ8sOOk0svpFlEU8czqwzhW06r0UnpMHePkeqGmpgY+nw8ZGRmnfDwjIwMVFV0/MCsqKrr8fK/Xi5qaGvTrd+Y7Ei6XCy5XxxNVU5P0Isbj8Sga1lxeP6567hvUOz0YlhaNy8dkfPsXnUZefyS+D1EU8ezqQwCAGycPQILdpOqwe8WYdPx5lR2VTS68v60E1+epL8icfv3+vkHak/a9if1gM4mq/vlmxlkxKTsBO0sa8dGuk7hjhjr3o3W25oA0VWvWkOSQ/GzD/fgbkRGLw1UtKDhZj9lD1Nl22lllozQ2PDnaourf3c4i+Te0r5Kjpaf7yqY2Tax330npkPXhGbFhW28or9+s3CSsPVSNtYeqcPt0dU2T7crKggo43T4MSIrC2MwY1f9OXJ/XH39bU4Q3Nx7HZaOkVm81P/4+K6jAiVonEqOs+P7ETFWuUWYGsHD2YPzhs4N47qsjuGp8BqwRCIp9uX7rjtTgL6sP4aW1R/HNLy5QfDp2T74HzQYv2entVKIonrPFqqvP7+rjsieeeAKPPvroGR9ftWoVoqOje7rckJqabMJKpwl/+HgXvMd96O1e//z8/NAurAuHGwVsLzbDIojIdRdhxQr1j2ufniTgoyYznllZgKiK3b3++YZbfn4+GlzA6kIzAAED2o9hxQr1DwbJNQvYCTPeXHsA6fX7lF7OOYkikL9X+vna64uwYsXRkN122B5/jQIAM77ceQgDWw+E5z5CaPdhEwATak6G9ucbCZH4G9pXFZXS78O+oyVYsUL95/asOir9Plhaq7BixYqw3lcorp+/FQAs2Hi0Bh99ugJW9RY4AACvHpB+viOjW/HZZ58pvZxvleYCBJix6Vg9XntvBTI7vfxS2+NPFIGnA88X05JdWLN6ldJL+lZJPiDWasbJ+jb87z9WYmp65Dqpenr9RBF4Zp/0852c4sHaL5T/+Tqd3R/8otnglZqaCrPZfEZ1q6qq6oyqliwzM7PLz7dYLEhJ6Xpj6cMPP4wlS5YE/93U1ITs7GzMmzcP8fHK9p3PavNg/VPrUO70wjo4D5f1sOrl8XiQn5+PuXPnwmoN73TBBa9vA1CHG6YMxE1XjgrrfYXKnHYvvvjzWlS2eRE1ZDIuGZmu9JJO0fn6/W3tCYgowtTBSbj7uilKL61bpra48OGTa3GiBRgz7UIMSlH2jYxzOVTZjMZNG+GwmvCT6y+BPQRjl8P9+Is5VI1P/7ETTaY4XHHFrJDffqi98/o2oKYOcyZPwBUqb32SRfJvaF/ZC6vwTtEumKITccUV05Vezrd6/aXNABrx3VkTccW4zLDcRyivnyiKeK3oa1S3uJE+eppqh1UAQGObBw9uWQNAxAPfn4XhGXFKL6lbvnHuxOoD1TgZlYu7rhip2sff5mN1KN60DXaLCY/eegFSNNI+XZV4DE+uOoz1DXF4ZMEsmMP8bnNvr9/6o7U4tmk77BYT/nDbBao491HuhusOzQYvm82GvLw85Ofn4/vf/37w4/n5+bj66qu7/JoZM2bgk08+OeVjq1atwuTJk8960e12O+z2My+q1WpV/IGearXirlmD8eyXR/DcmiJcMb5/r0Zch/t72Xa8DhuL6mAxCfjxRUMV/7l1V7LVilumD8SLXxfhtfXFuHyc+toNAUAUzPj3dmmT9IKZgzXz8+2XZMWsoalYe6gan+2rwr2XDFN6SWe1vkhqe5qWk4LY6NDu7wrX429cdjIA4FhNK3wwqe6MntPVBA5PzkyM0czvsEwNzwffJjNJ2vNX2+pR/Vr9fjE4pGLsgMSwrzdU12/OsDR8sLMUG4oacP6I8ITFUPhiVzk8PhEjMuIwZkCy0svptttn5WD1gWr8Z2cZfjl/FOyBa6a2x9/rG6ShXNfmDUBmUqzCq+m+22fl4uVvjuN4rRMrC6uDe7HDrSfXTxRF/G2N1DF109SB6J+sjp9vT37/VF4MP7clS5bglVdewWuvvYbCwkI88MADKC4uxqJFiwBI1aoFCxYEP3/RokU4ceIElixZgsLCQrz22mt49dVX8eCDDyr1LfTZXbNzEGu34EBFc3CjrNo884U0yfC6vAEYkKTeqkZX7pqVA6tZwJbjddhRXK/0crq0cn8lqptdSIuzY95o9T7Zd6XzYcpqHsO8NnA+zwXD1T1GvrP0ODuSY2zwi1LFTu2CwzXi1D1IQavk4RrVzS5VP9YAoLjOCafbB7vFhMEpMUovp9vmDJfHyqt7wMZHu6RDk9U+VON0s4akIjctBi0uL/6j0iEQhyub8cWBKggCVD1ErCuxdgsWzpaO+XnuyyOqHNy28Wgtth6vh81iwo8D0xi1RtPB64YbbsDSpUvx2GOPYeLEiVi7di1WrFiBQYOkjfrl5eWnnOmVk5ODFStWYM2aNZg4cSJ+//vf49lnn8W1116r1LfQZ4nRNtw5azAAKeCo7YGyo7ge6w7XwGIS8JOLhiq9nB7LiHcEJwS+9LU696W9uVk6e+OWaQNhs2jrIX3ZmAzYLCYcrW7FfpVO33O6vdhyrA4AcL6GgpcgCBjVT2ohUvtkQ5fXh3qntDk5I07dEyO1KjVWCrRunx8NTvVu9AeAAxXS7+vwjDhVT4M73azAAbkFpU2oVenY/qqmdmwsqgXQ8caXVphMAhZMl17f/X3jCVW+gSBPMpw3OgM5qdp500C2YOZgxDssOFzVgs/3qW+C5NLAG/k3TclW/XThs9HOX7SzWLx4MY4fPw6Xy4Xt27fj/PPPD/635cuXY82aNad8/gUXXIAdO3bA5XLh2LFjweqYlt0dqHoVljchv1BdVa9nAw+Sa87rj+xkbVW7ZPJo+ZX7K1BUra4zWkpagB3FDbCaBdw8baDSy+mxOIcVl46S9s59HHgXVm02F9XB7fOjf2IUhqRp64l0VKa0D7WwXN0Vr6rAWWM2iwmJ0eppGdITu8WM5MDZiZXN6j7CYX/g93Vkpjb2HsnS4xzBNa8/Wqvwarr2yZ5yiCJw3sBETT4nX5s3ADE2M45UtWBT4A0xtahqaseHO6XnsR+er81qTLzDijtmSVWvZ1X2Zv6molpsOVYHm9kUPHtMizQfvEiqet0xczAA4JnVh1XzLtCukgasOVgNs0arXbJhGXG4ZGQ6RBF45Rt1TQtcVyE9hOeP7Yd0jVYKrpogVRQ/3l2mqj/ysq8PSW1D5w9PU+2h1Gczqp8UvNRaTZRVBYJARrxdcz9jLZHfIVb7odoHAr+v8u+vlsiHq3+j0vO8Pt4daDPUWLVLFuew4przBgAA/rGpROHVnOr1Dcfh9vkxeVAS8gap/wiPs7lr1uDgFpbVKnoz/5nV0hv5N0zJRr+EKIVX03sMXjpx9+wcxNjM2F/ehHyV7PX6a6Da9b2J/TFIQ336XZGrXu9tPxnci6K0eqcb22ukF6m3B4K3Fl04Ig1xdgvKG9ux7YT69tGtDQQvLe3vkskvXA+UN6nmDZmuyEGAbYbhlREv7fOqVPmh5fLhySP7aaviBUgDNgBg3eEa1T3mjte0YndJA0wC8J3x2gxeALAgcO7jFweqUKeOp2O0uLx4c5N0TMM952trb9fpEqNtwZ/xX788oorf481FtdhYVAurWdDs3i4Zg5dOJMXYcEdgr9dSFVS99p5sxBcHqmASgJ9erN1ql2xqTjImZifC7fXjjY3HlV4OAODf20rhFQWMzYrHeQMTlV5OrzmsZlw+VhoK8tGuUoVXc6qSOieKalphNgmYOVS946HPZmh6LCwmAU3tXpQ1qvfFthwEtNqzrxVysK1ScfBqbveguE46E0duldWSqTnJsFlMKG9sx1GVtaZ/Eqh2zRqaGhy2okXDMuIwc0gK/CKwvlIdL2P/taUYze1e5KbGYO6onh3to0Z3z85BlNWMvaWNWHNI2eqtKIp4cuVBAFK1KytRu9UugMFLVxbOzg1WvVbsVXZT5FP50oPk6on9NbnB9HSCIOBHgXex3th4Aq0ur6Lr8flFvL1FarO4dVq25tuz5LG1/91bDrfXr/BqOshthnkDkxDv0N7eI5vFhKHp0rjdwjL1thvKFa/0eO2+GNSCjoqXSsoEXZAncGbGO5AUo70Jlw6rGdNypBHtXx6oUng1HURRxEeB4HWlRtsMO5MrMhsrBbg8PkXX4vH58fr64wCAhXNye3Wsj9qkxNpx63Rp3/izXyj7Zv6XB6qw7UQ9HFYT7r1YvcfOdBeDl44kxdiCJe4nVx6Ax6fMC9iNR2ux5mA1LCYB/6Pis5l6at6YTAxOiUZjmwf/3qZsb3n+/kqUNbYjxiLiu2E6XDSSZgxJQWqsHQ1Oj6pGMXfs70pVeCW9J7cbqnmyIStekZEe+PlWqLjiJQ+C0WKboeySkdLAoC8K1RO8CsubcaSqBTaLKdhhoGWXjspAZrwdrV4Bnyr8RvPHu8pQ2tCG1FgbrjlPned99sY95+fCbjFhZ3FD8Lkw0vz+jmrXHTNzdPEcweClM/fMyUVqrA3Ha53415bib/+CEBNFEf/3+QEA0uF2g3VQ7ZKZTQIWBs7leGXdMcUqM6Io4oWvjwIAZmaIsKv8YNzuMJsEfHd8PwAdZ8word3jw/oj8vld6QqvpveCI+UrtBC8WPEKJ/lFi5pbDQs1PFhDdkmg1WzbiXo0qmR0vzxU46IRaZqs3p/OYjbh1sAk31fXH1dsMJPPL+JvXx0BANw9O1f1B9X3RHqcI1hZ/L/PDsCnwM/4491lOFDRjDiHBT++QNt7u2QMXjoTY7cEq0zPfHEYLRFuiVu5rwK7SxoQZTXj3ku0v7frdNflDUBqrB2lDW34QKEDHDcfq8OukgbYLCacn6metry+ujpwmGf+/ko43cq2cgLAxqJaON0+ZMTbMba/dl8EdlS81DtSnhWvyNBCq2FwsIbGRsl3lp0cjeEZsfD5Raw5pHzVy+8Xg/u75LZuPbhpygDYzSIOV7Xiq4PK/Jw/3VOGoppWJEZbcVsgpOjJTy4ainiHNOHw/Qi/5nF7/Xg6/xAAYNEFQ5Cgk6NGGLx06MapAzE4JRo1LW68vDZyh/56fX78KVASXjgnR7Pjzc/FYTVj0QVS1eu5r44oUvWSq13XTspCvPa2QJzVxOxEDEyOhtPtw2oVtOisDkwHvXRUhqb30MnB63htqyoCbVfkc7wYvMJL/vlWt7gUeff62/j9oqZHyXd28Uip6qWGfV47iutR2tCGWLsFF4/UbvX+dPFRVszKkH6P5efFSPJ3rnbNks5T1ZvEaFtwQNrTqw6hzR25/XR/33AcxXVOpMXZcWdgeJweMHjpkNVsws8vGwkAeGltEUob2iJyv29vKUZRdSuSoq3B8et6dMu0QUiNteNkfeSrXoXlTVhzsBomAbh79uCI3ne4CYIQrHp9rPB0Q1EUg+eXXDpa2xOqUmPtSIuzQxSBgxXqq3q1urxoDlTmGbzCKyXGBpMgtUfVtqqv6nWyvg2tbh9sZhNyNd6mfkngYPg1B6vhVWi/tUxu3543JkNXrXAAcGE/P6xmAVuP12P7icgeqLxyXwUOVbYgzmHB7ToKBqdbMGMw+idGoaKpHa+tj8xZptXNLjwbOJLo55eNQLRNP6GWwUunrhiXiSmDk9Dm8eF//7s/7PdX2+LCnwPVrgfmDkecDnrIzybKplzV68XAu3rzx/XDoOToiN1vpMiHeq45WI36Vrdi6ygobUJlkwvRNjNm5GpvjPzp1NxuWBU4Fy/GZtblO8ZqYjGbgmPEq1TYbijvQxyWEQuLWdsvT84bmITEaCsa2zzYUdyg2Do8Pj9W7C0HoN1Dk88lwQZ8L/CG3bI1kevw8ftFPPulVO26c+ZgXeybOxuH1YxfXD4CALBszdGInAP41KqDaHZ5Ma5/Aq4LHJitF9r+y0ZnJQgCHr1qLEwCsGJvBb45XBPW+3ty5UE0tXsxul88bpmmvz7n03WuekWq77m41olP9khPoHrZZHq6YRlxGNUvHl6/iM8KlJtUlb9fuu/zh6Xp4h3i4IANFU425P6uyJJ/zmo8RFn+/RypwfO7Tmc2CbhohDzdsFKxdaw/UoPaVjdSYmyYNVS701nPZeGswRAEYHVhJQ5EaIjQp3vLUVjehFi7BXfNzonIfSrpyvFZmJidiBaXF7//NLxv5u8qacA7gcnRv71ytC7G83fG4KVjo7PisWDGYADAbz4qQHuYzrrYUVwffJA8dvUYmHX2IOlK56rXs18cjkjf89LVh+Dzizh/eBrG9k8I+/0pJdhuuFu5dsP8wB6zuRpvM5TJB9FG6kVJT8gBgGd4RYa891aNI+UPBCqyozQ8Sr4zeT/VagWD18eBNsMrxvWDVeNVxLPJTYvBFWOlqbhPrzoU9vtze/14apXU4fOj83ORGK2jzdZnYTIJ+N/vS2/mf7qnPGzj5d1eP3753h6IIvD9Sf0xeXByWO5HSfp8FFLQA3OHIy3OjqKa1uB0mFBq9/jw83d3QxSBa87T54PkbG6dPgj9E6NQ3hj+vufDlc34T2Df08/njQjrfSlNPtxz87E6lDdGZn9iZyfrnSgsb4JJAC7SyUZ0udXwQHmzogdhdkUOXpmseEWEmicbyq2GWh+sITt/eBqsZgFHq1txpCrybb4tLm+wc+B7k/TXZtjZA3OHwSQAq/ZXYndJQ1jv652txThR60RqrB13z9F/tUs2JisBd86Svt9HPiwIy7CmF74+ioOVzUiOseGR744O+e2rAYOXziVEWfHE98cBAF5eV4Rtx0O7+fTp/EM4Wt2KtDg7fqPTB8nZOKxm/Pyyjr7nmpbwvZB5Ov8QRBG4fEwmxg3Qb7ULAPonRmHK4CSIIvDp7vKI37986OnkQclIjtHHO5m5aTGwmgU0u7w4WR/5MHsulZxoGFFqPcur1eXFiVonAG2Pku8sIcoabO/7TIFDflfsLUebx4ec1BicNzAp4vcfSUPT4/D9SdJeoD8HqlHh0NzuwTNfSHu7/ueSoboa+tAdD8wdjn4JDhTXOfH7TwtDetsHKprwXGDf3G+vHK2b59/TMXgZwKWjM3DteQMgisDP3t2NpvbQHOi4uagWL6+TNrM+8f1xhii3n+6qCVkY1z8BLS4vlq4OT4vDjuJ6fFZQAUEAlswbHpb7UJurAmfNfKRAu6G8Ef3S0fqodgHSpNOh6dKL2QMqm2zY0WrI4BUJHRUvdQWvg5XS72V6nB0psfppO5Vb4FYosGf1ve3S/uPr8gZo+kiM7rr/0mGwmgWsO1wTtn3tS1cfRk2LCzmpMbhhysCw3IeaxdoteOr6CRAE4J9birFqX2h+r1tdXix+awfcPj8uHZWuy0EwMgYvg/jNlaPRPzEKJ2qdWPLO7j6f8l7R2I6fvL0Doij9Udf6yO3eMpkE/Po7owAAb20uxq4Qtzj4/CJ++9E+AMB15w3A8Ax9vBP8bb4zrh8sJgEFpU04XBm5oFDV1I4tgarwFeP6Rex+I0GtAzY6zvDSz4ttNUsPDtdQV6thcLCGTtoMZXNHZ8BsElBY3oRjNa0Ru98Tta3YcqwOgiBtAzCC7OTo4HCv335cEPKJwwcrmrF8w3Hp9q8cDZvFmC+hZw5NxT1zpD3uD32wFyfrnX26PVEU8ciHBSiqbkVGvB1/um6Crt8oMOZvjQElRFmx7NbzYLOYsLqwEs8FDv3rDZfXh0VvbkdNixsjM+Pw2NVjQrhS7Zmem4JrJvWHKAIPf7A3pGe2vLO1BHtLGxHnsOAXl48M2e2qXXKMDRcGJoL9a2tJxO53xd5yiCIwaWAiBiTpa1y/WgdsVDZzqmEkZQSGa1Q1q6vipbfBGrKkGBtmDpGOpPisIHKt0+8Hql2zh6aiX0JUxO5XaQ/MHY6UGBuOVrdi+YbQ7b0WRRG//bgAPr+Iy8ZkBJ+fjOpn84ZjTFY86lrduHv5NjT3oZPqH5tL8MHOUpgE4NkbJ+m2xVDG4GUg4wck4vHvjQUg7Rl6f0fP27h8fhFL/r0bu0oaEO+w4MXb8gzX49yVX39nFBKjrSgsbwrZoI26Vjf+tPIAAGBJYEiKkdw0NRsA8MGOk2GbyHm6TwPj+r87Xn9tDmo8y0sUxY5x8nEMXpEgVxZrWtwRPYPw28gVr1E6GCV/Orl6Hql9Xn6/GHx+v35ydkTuUy0Soqz45XzpTcpnVh8O2YCmNzcXY1NRHRxWk26HPvSE3WLGywsmIy3OjoOVzbj3nzvh6cWbzrtrBTy+Qnqd84vLR2KaDs7N/DYMXgbzg8nZuCcwhedXH+7D5qrul3M9Pj8efHc3/runHFazgL/dch4GpcSEa6makhJrx6/mSy2Hf151CPvL+lZVEEUR/+/DvWhwejAyMw63Tdf/2Winu2B4GvolOFDv9GBliPrIz6WsoQ3bTtRDEKRWR70ZGagkHK9tDcs0qt5ocHrQ7pGerDlOPjKSY2zBFim17PMSRTG493CkzipeADAv0G64t7QRRdUtYb+/jUW1KG1oQ5zDgnkG3AZw3XkDMGlgIlrdPjz4bt+3VhRVt+B//yudXfXLy0fqrhuit7ISo/DKgslwWE1Yc7Aai9/aAZe3+2+SflZQgeWHTRBF4OZpA/Gj83PDuFr1YPAyoF9dMQo3TsmGXwTePmrG06sPf+s7FdXNLtzx+hb8Z2cpzCYBf71pEuYMS4vQirXh+skDcPHIdLi9fvz07R1odfX+xe2Hu0qxYm8FLCYBT143ARadnr9yLhazKfhu7b+2hL/dUB6qMWVQMjIT9Fd9SY21IzXWDlEEDlWG/8Vfd5QF3o1OjbXp4qBqLRAEAf0Cv9/ljeoIXifr29Di8sJqFjAkLVbp5YRcSqwd5w+Tphv+Z2f4Bwa9vaUYgDT8yYiPK5NJwJ+vnwCH1YT1R2rx6je970Jxe/144N+70e7xY/bQVNweOBuVJBOyE7HsljzYLCbk76/ETS9tQsW3/F3x+0X87asj+J9/74FfFHDl+Ew8dtUYXe/r6sx4r+YIgiDgD98fhx8FKl/Lvj6Ga5dtwIYjNWec8eP2+vH25mJctnQt1h+pRbTNjFcWTMblY/VXEegrQZD+2GfGO1BU04pf/2dvr85MKixvwq8+KAAA3HvxMN2Pjz+XG6ZkQxCkd3DDvTH9g0BrzpUT9Pu7rbYBG2UN0hO0kfagqIEcvMoa1HG0gPz7ODQ9TreH/F5znjTq/IMdpX2uwJxLVVM7VgYmKN48zXhT92RD0mLxm+9K+8+fXHmw12d7/e6Tfdgd2Frx5PXjYTIZIxz0xEUj0/H6HVMQ57BgR3ED5v3layxffwxt7lOrX6IoYvuJOlz3wgY8ufIgRBGYleHHk9eOM9Sby9ycY1Amk4AH5w1DW8UR/KfEjj0nG3HzK5sxMDkakwcnId5hRWVTOzYcrUVjm7RpcmRmHJbeOBEjddiDHyrJMTY8c+NE3PTyJny4qwwDU2KwZG73R8BXNbXjh//YhjaPD3OGpeKnFw8N42rVr39iFC4YnoY1B6vxr63FeDjQzhlqBaWN2F/eBJvFFDzAWY9G9YvHusM1OKCS4CXvv+inwwqjmmUlSkG3TIEDyrsitxmO0sn5XV2ZOzoDcQ4LShvasPlYHWYMCc9eln9tLYHXLyJvUBLGZBn3TTtA2ie85mAVVu2vxMI3tuE/i2f2qE3wlXVFeHtzMQQBWHrjRL5BdA6zhqbik5/Oxk//uQMFpU343Sf78VT+IUzLScGApCi0urzYUVyPo9XSG6gxNjN+NX8EYqv2wGywMGuciEldyksV8fl9s3D7jEGwW0wornPigx2lWL7hOD4rqEBjmwcZ8dLhyB/9dBZDVzdMy03B49+TDq1+9ovD+OsXh7tV+apuduGWVzajpK4NA5Oj8eyNkwz3B6krN02V3rV9d1v4hmy8E5iceNmYTF2fR9dR8VLHgA254iUHAYqMrMALyPIGdbQaBgdr6GyUfGcOqxnfHS9V09/fcTIs9+H1SR0qALBghvH2BZ9OEAQ89YMJGJkZF3x+7e7o8+Xrj+Hx/0oHBP/y8pG4eKTx9sr11ODUGHy4eBZ+/72xyE6OQnO7F6sLK7F8w3G8u/0kjla3wm4x4QeTB+CLn12IH0weoPSSFcGKFyE9zo5Hrx6LX1w+Et8cqcGRqhY0t3uREmPDpIGJmDQwiQGgh26eNhC1LS48lX8IT+Ufwsn6NvzuqjGIsnXdb7+vrBE/fGM7ShvakBFvx1sLpyFJ5yNVu+uSkenISnCgrLEdH+4sxY1TQ9s+0+7x4cNdUpvhDTqfACa/cVJY0QRRFBXvqZcrXlmJrHhFUr9EdbUa6nmwRmfXnjcA/9xSgs/2luPRq8Ygxh7al2CrCytR0dSOlBgbLh+bGdLb1qo4hxWv3TEFP3hxI07UOnH9Cxvx15smYfLg5C4/3+X14YkVB4LndS2+cIhhhj6EgsVswm3TB+GWqQOxs6Qeu0saUdPigt1ixojMOMzITUFCtBUA4PH0fgS9ljF4UVCM3YLLxmTiMmMfyxUy914yDDF2C37/3/14Z1sJNh2rxX0XD8PlYzODT7jFtU4s33Acf994HD6/iJzUGLx2xxRkJ3NqksxiNuHOWTn43xWFeOWbY4F9X6ELDJ8XVKC53YsBSVHB83b0akhaLKxmAc3tXpQ2tCk+nUt+4c8WnsiSK15lKhiu4XR7cbxWaj/Sc8ULAPIGJSE3NQZFNa34YMdJ3BbiQQ0vr5OGSNwwJRt2i/GGapxNVmIU3ls0E7e+uhlHqlpww0ubcOOUbNw9Owe5gWEuLq8PK/dVYmn+IRQF9hP/bO5w/PTioYq/QaVFJpOAvEHJyBvUdcA1MgYvojC6a3YORmTGYcm/d+FErRM/e3c3Hv5gLzITHGj3+FDV7Ap+7uVjMvF/147Tdatbb90wNRvPfHEYR6pasOZQNS4K4eGV8gSw6/Oydb9x2mYxYUhaLA5UNONAebMKghdbDZUg/7xDdcZRXxysaIYodkzd1DNBELBgxiD87pP9WL7hOG6dPihkL+q3Hq/D9hP1sJlNuGPm4JDcpp5kJjjwn8Uz8ciHBfhwVxne2lyMtzYXIy3Ojli7BaX1bXAHpjunxdnxv98bi3ljWDWk0OMeL6IwmzU0FV/+7EL8/LIRyE6OgtvnR3GdE1XNLggCMGdYKl6/cwpeuC2Poess4h1W3DhFagN8ZV1RyG63oLQRW47VwWIScMMUfbcZyuSqwoEKZQds+Pwdhyez1TCy5FbDBqdH8TPd5P2Go3TeZii7Nm8AYu0WHK1uxTdHakJ2u8vWHA3efno8H09diXNYsfTGSXjnh9Nx/vA0WM0CqptdOFbTCrfPj34JDvzPJcPwxc8uYOiisGHFiygCYuwW/OSioVh84RCU1LWhqrkdZpOAoemxiHNYlV6eJtw5OwevbziO9Udqsf1EXUhaGOTzXb47vp8uz+7qyqh+cfjPTuUHbFQ3u+D1izCbBKTHGeNnrxbxDiti7Ra0uLwoa2jH0HTlzs6S3wDQe5uhLM5hxXV5A7B8w3EsX388JOdhFpY34csDVTAJ4H6kbpiWm4JpuSlocXlRVN0Cp9uH/olR6J8YpfuuB1IeK15EESQIAgamRGPy4GRMGpjE0NUD/ROjglOQ/vT5wV6dkdZZaUMbPt1TBgC4e7ZxXqx0HrChJHmUeWa8g8N7FCBXGZVuN+yYaGiMihcA3B5oBfzyYBWOVPX9MPPnvjoCAJg/rh8Gp8b0+faMItZuwfgBiZiem4Ls5GiGLooIBi8i0ox7Lx4Gm9mEzcfq+tym87evjsDjEzEjN8VQh1TLk+OO17SeccBlJJUHD09mtUsJ8kATJScbiqKIA4HKq5GOKslJjcHc0RkQReCvXx7u023tPdmI/+4phyAAP73I2Oc+EmkBgxcRaUZWYhRumS6Nk//zyt5XvU7WO/HuNunsrgd6cMC1HqTHOZAaa4NfBA5VKtduGDw8mYM1FJEVHCmv3GTDk/VtaHZ5YTULGJKmXLujEv7nkmEAgI93l+FIVe8eh6Io4v8+l86a+t7E/oZp1yTSMgYvItKUn1w0FNE2M3afbMR723t3EOmfVx6Exydi1tAUTM0x3rhbubqg5ICN0kClJYsVL0XIFS8lWw3l87uGpMXCZjHWy5Gx/RMwL1D1+r/PDvTqNj4vqMD6I7WwmU1YYrA3kIi0ylh/6YhI81Jj7cF3i/+wohD1re4eff2WY3X4cFcZBAF46PJR4Vii6sn7aZQcsFHOUfKKkn/uSla85P1dow1aqfnF5SNgMQlYXViFrw5W9ehrW1xePPrJfgDAogtyefYjkUYweBGR5tw1OwcjMuJQ7/Tg1x/u7XbLYbvHh//34V4AwI1TBhpqb1dnwQEb5cpVvIKthqx4KUKuNJYpWvGSfv9GGmiwRmdD0+Nw56zBAIDffrQPLa7uj/Z/9ON9qGhqx8DkaCzm3i4izWDwIiLNsZpNePL68bCYBKzYWxE8BPnb/GFFIQ5VtiA11oafXzYizKtUr5HBildTn6dD9lZZIyteSpL31pU3tCv2O9BxhpcxK14AcN8lw5CV4EBxnRO/+aigW1/z0a5SvLv9JAQB+OO14+GwmsO8SiIKFQYvItKk8QMSg+Hptx/tw5pvadV5Z2sx3th4AgDw5+snIDnGuIdVD02PhcUkoKndi/LGyLeaubw+VDe7ADB4KUWuNLZ5fGhweiJ+/063F8drWwEYa6Lh6eRDfU0C8MGO0uDZgmezuagWP39vDwDg3ouGYsaQlEgsk4hChMGLiDTrnjm5uHpiFrx+ET9+cwc+21ve5ef9e2sJHv5AajH8yUVDcOGI9EguU3XsFnNwipwS7YbyvqIoqxlJ0TzLTgkOqxmpsXYA0nTBSDtY0QxRlPZspsXZI37/ajI1JxkPBt5E+v2n+/H6+mNdViG/OliFhX/fBrfXj0tHZeC+wF5XItIOBi8i0iyTScCT103AxSPT0ebx4cdv7cDP/r0be082oqndg53F9fjJ2zvwi/f3wC8CN07JxoPzjNti2Jk8YEOeLBdJJXVOAEB2chQEgYeWKiU7Wao2ltQ7I37f8u+dkQ5OPpcfXzAEd8/OAQA8+sl+3PPGdmw7XofGNg/2lzXh4Q/24q7lW9Hs8mJ6bjKeu3kSLGa+hCPSGovSCyAi6gubxYSXbsvDE58dwKvfHMP7O07i/R2njpk3CcD9lw7HTy8ayhf6ASP7xQO7yhSpeBUHgtdATmJT1MDkaOwsbghej0iSf++MvL+rM0EQ8P++MwqZ8Q788fMDWF1YidWFlWd83k1TB+LRq8YYbvw+kV4weBGR5lnMJjzy3dG4ckIW/vbVEWwuqkVTuxexdgsuGpmOH87JNewEw7MZmdkxYCPSOipeDF5KkoNviQLB60A5K16nEwQB95yfi9nDUvHyuiKs3l+JpnYv4uwWTB6chMUXDcWUwcY7d5BITxi8iEg3JmYn4uUFkyGKIpxuH2Ls/BN3NvLZScdqWtHu8UV0Mprc2padxOClJPnnH+mKlyiKKJRHyRt4sMbZjOoXj6d/MBEA0OryIspqhsnESj2RHrBWTUS6IwgCQ9e3SIuzIznGBr8IHKqM7D4vthqqQ7ZCFa/ShjY0t3thNQvBIS/UtRi7haGLSEcYvIiIDEgQhI4BG+URDl61geCVwuClJPnnX9rQBp8/cmd5yed3DUmL5V4lIjIU/sUjIjIouc1LbvuKhEanB03tXgDAgCSe4aWkzHgHrGYBHp+IiqbIned2ILCvcDQHaxCRwTB4EREZlBIDNuT9XamxdkTb2A6qJLNJQP/AAdZyFTISgvu7OFiDiAyGwYuIyKDkUd4HKpq7PLA1HDr2d7HapQbBfV4RPMuroFQKXmOyOGmUiIyFwYuIyKCGpsfCbBLQ4PRErNWMgzXUJdIj5RudnuDvwFgGLyIyGAYvIiKDcljNGJIWAyByAzZ4hpe6yNchUiPl95U3Bu43CgnR1ojcJxGRWjB4EREZmNxuuK+sMSL3V8zgpSqRrnjtC7QZstpFREbE4EVEZGDj+ksvgPeWRiZ4lbDVUFUGBitebRG5v4JAwB/bn8GLiIyHwYuIyMDkF8B7T4Y/ePn8IkobpBf4rHipQ3aSdB1qWlxoc/vCfn8FgYA/Jouj5InIeBi8iIgMTH4BXNbYjtoWV1jvq7yxDR6fCKtZQGa8I6z3Rd2TEG1FvEMa6x/ufV6tLi+KaloBcKIhERkTgxcRkYHFOazIDQzYCHe74fGajjZDs0kI631R9+WkStf/WCAUhUtheRNEUTq4OS3OHtb7IiJSIwYvIiKDGxehdsOimhYAQE5qbFjvh3pGDl7y9QkXuc1wbH+2GRKRMTF4EREZXKQGbBRVSxUVeYQ9qUNumhSE5esTLgVlPDiZiIyNwYuIyODkARsF4Q5egVY2ucJC6hCpVsOOiheDFxEZE4MXEZHBjcmKhyBIAzZqwjhg41iglU2usJA6yHv8iqrD12rY7vHhcJV0+2w1JCKjYvAiIjK4OIc1WPUIV7thu8eHk/XSKHlWvNRFvh71Tg/qW91huY8DFc3w+UWkxto40ZKIDIvBi4iIgvu8CsI0YKO4zglRBOIcFqTG2sJyH9Q70TYL+iVIYagoTO2GcqAfnZUAQeBESyIyJgYvIiIKBq89Yap4yW1suakxfOGtQsHJhmFqN9xV3AAAmDiA+7uIyLgYvIiIqKPiFabgdTQwMY/7u9QpuM8rTBWvXSX1AICJAxPDcvtERFrA4EVERBjTPwGCAJQ3tqO6OfQDNo4EBitwlLw6DQ0E4sOVoa94NbZ5gsF7woDEkN8+EZFWMHgRERFi7Zbgi+9dJQ0hv/2DFc0AgBGZnGinRsMz4wAAhyqbQ37buwO/T4NSopESaw/57RMRaQWDFxERAQDOG5gEANh+oj6kt+v1+XEksHdoREZcSG+bQkO+LiX1Tjjd3pDethzkJ2YnhvR2iYi0hsGLiIgAAHmDpOC1ozi0wetEnRNurx9RVjMGJEWF9LYpNFJi7UiNtUEUO9pCQ4XBi4hIwuBFREQAgPMGJQIA9pxsgMfnD9ntHg60rw3PiIXJxImGajU8UPWS20JDQRRF7AwE+UmBiioRkVExeBEREQAgNzUWCVFWtHv8KCxvCtntHqyQKijD2WaoavL1CeU+r+I6J+qdHtjMJozqx+tPRMbG4EVERAAAk0nApMC471Du8zoUrHjxhbeajQgO2Ahdq6HcZjg6Kx52izlkt0tEpEUMXkREFCQP2NgROPA2FA5USNUzeXIeqdPwDGmqZShbDbcerwOAYKAnIjIyBi8iIgoKDtgIUcXL6fbiWOBQ3lEMXqomj/qvaGpHbUtoznLbckwKXtNyUkJye0REWsbgRUREQROyE2ESgNKGNlQ0tvf59vaXNcEvAulxdqTHO0KwQgqXWLsFuanSAdd7Sxv7fHt1re5g2+LUnOQ+3x4RkdYxeBERUVCs3YKRgcrHlkCbWF8UBF7Aj+uf0OfbovAbG7hO+8r6Plxly7FaAFILY3KMrc+3R0SkdQxeRER0iplDpLawjUdr+nxbe0ulF/BjGbw0QQ7Ie0/2veK1qYhthkREnTF4ERHRKWYOlV4obzha2+fbYsVLW+SAHIpWQ3l/F9sMiYgkDF5ERHSKKYOTYTYJOFHrxMl6Z69vp83tw+EqaUIeK17aMKa/1GZa2tCG+lZ3r2+n0elBYWCa5bRcBi8iIoDBi4iIThPnsGL8ACkobexD1Wt/uTRYIzXWjox4e6iWR2EU77BicEo0AGBPH6peW4/XQRSB3NQYpMdxqAoREcDgRUREXejY59X74CWPpJ+YnQhBEEKyLgq/idmJAPp2pMCmIun3hm2GREQdGLyIiOgMM4ekApD2eYmi2KvbkKciTs1JCtm6KPymBMLS1j5MtVx7uBoAMHtYakjWRESkBwxeRER0hrxBSbCZTahoakdR4ADknhBFEdsCL9wnD2bVQ0umBK7XzuIGeHz+Hn99WUMbDlW2wCQAs4cyeBERyRi8iIjoDA6rGXmDpErV1were/z1R6tbUO/0wGE1YWwWB2toydC0WCREWdHm8fXqPK+1h6Tfl4nZiUiM5vldREQyBi8iIurSJaPSAQCrCyt7/LVbj3fs77JZ+FSjJSaTgCmDpdC9rRfthl8HgtcFw9NDui4iIq3T7LNhfX09brvtNiQkJCAhIQG33XYbGhoazvr5Ho8Hv/zlLzFu3DjExMQgKysLCxYsQFlZWeQWTUSkIZeOygAgncfU2Obp0dduDgxXmDyIbYZaJLeHyocgd5fL68O6w9LB2xeMSAv5uoiItEyzwevmm2/Grl278Pnnn+Pzzz/Hrl27cNttt531851OJ3bs2IFHHnkEO3bswAcffIBDhw7hqquuiuCqiYi0Y3BqDIamx8LrF4NVjO7w+UWsDbz45nAFbZL3Zm04WgOX19ftr/vmcA1aXF5kxNsxnme3ERGdwqL0AnqjsLAQn3/+OTZt2oRp06YBAF5++WXMmDEDBw8exIgRI874moSEBOTn55/ysb/+9a+YOnUqiouLMXDgwIisnYhISy4ZlY4jVS1Yta8CV03I6tbX7D7ZgLpWN+IcluA+MdKWMVnxSI+zo6rZhS3H6jBnWPeqVyv2VgAA5o/tB5OJRwgQEXWmyeC1ceNGJCQkBEMXAEyfPh0JCQnYsGFDl8GrK42NjRAEAYmJiWf9HJfLBZfLFfx3U5O00djj8cDj6VnrjdrI69f692FUvH7appXrN29kGl78ugirC/9/e/cfVHWd73H8daTDr/hRgKAGLKSQlKkbVMJFk+7KxZ1KMu16a/zRJXd0/JF5pyxrU++tsQl3nMZGom1WmqSs2QaxvdWFMUVbJaVETG9eAxQVURQDhBA4nPuHya4LwoH88uULz8cMM/I9H5wXvFF4zed7PuesLl76ST4e3f/Y2H7kyi/fiSMDpTaHWtpc3zGxEqvMsLcmRQXpz9+e1vYjVZoQcUu365tb25T/8+ynxAT1+6/LQJ/fQMf8rG0gza8nn4Mli1dVVZWCgzs+aTc4OFhVVVUu/R1NTU164YUX9MQTT8jPz++669auXas1a9Z0uJ6Xlydvb2/XQ/dj/7gTCGthftbW3+fndErBnm4619SmdVvydd/Q7l/TK7fETZJNtzZV6rPPThsf0mT9fYa95XfJJslN/33ghH6tsm7Xf3fRpromN/nanTp3uFCfHTE+440wUOc3WDA/axsI82tsbHR5bb8qXqtXr+605Py9/fv3S5Jsto63MDidzk6v/6OWlhbNmjVLbW1t2rhxY5drX3zxRS1fvrz9/bq6OoWFhSk5ObnLwmYFLS0tys/P15QpU2S3282Ogx5iftZmpfmVe5fqzS9LdULBWv3b2C7XnrzYqFN7v5LNJi1+7EEN9fXoo5R9z0oz7I2JTa16//Udqm6Sbr9nokYP8+1y/afZByRV67G4X+mh347um5C/wECf30DH/KxtIM3v6t1wruhXxWvx4sWaNWtWl2siIiJUUlKis2c7Hm9cXV2tkJCQLj++paVFjz/+uMrLy/Xll192W548PDzk4dHxFwe73W75b5SrBtLnMhgxP2uzwvweiw3Xm1+Wak/pBVXVtygs4Pq7/VsPXvm/+Z9GBmlEgE9fRTSVFWbYGwF2u/55dIi+OFylrQer9Puw659QebauSTv+78qBKk9OiLDU12Ogzm+wYH7WNhDm15P8/ap4BQUFKSio+xOw4uPjVVtbq3379um+++6TJH399deqra1VQkLCdT/uauk6duyYduzYocDAwBuWHQAGqvBAb02MCtLuY+e16a/H9crDd3a6rq3NqU++OSVJmhkX2pcRYZCZcaFXiteB03ph6mjZ3To/DPnj/SflaHPq3ohbFRXS9c4YAAxWljxOPiYmRikpKZo/f74KCwtVWFio+fPn66GHHrrmYI3Ro0crJydHktTa2qoZM2aoqKhI2dnZcjgcqqqqUlVVlZqbm836VADAEp6eeLsk6aP9Fapr6vyJxHvLLuj0jz/J1/Mm/ctdw/oyHgzyQPRQBfl46EJDs7b/77lO1zRcbtWmPcclSf92HycEA8D1WLJ4SVJ2drbuvvtuJScnKzk5WWPHjtX7779/zZqjR4+qtrZWknTq1Clt27ZNp06d0vjx4zV8+PD2tz179pjxKQCAZUyKClJ0iI8amh36467OD1p4u6BUkpQ6/jZ52t36Mh4McpPbEM2IvbJ7mbmrVE5nx8NVsvYcV01DsyICvfWwiy85AACDUb+61bAnAgICtHnz5i7X/P0PiIiIiE5/YAAAumez2fTsb6K1MPtbZRaU6dFf36bbh/7tOVxfHTuv3cfOy22ITb+bdLuJSXGj/XtihDb9tVwHKn7U/xw+q5Qxf9vNPFffpMyfC/ey30Rf91ZEAICFd7wAAH0rZcwwPRA9VM2ONj335xI1tVx5fa7axha9mFMiSZo94VddHr4B6wn29dT8n281fSX3O1XXX3lty1ZHm/7j44Oqa2rVXSP82O0CgG5QvAAALrHZbPqvaWPk63GTvjlxUU+++7U2F57Q45l7dbLmJ4UFeOnZKdFmx4QBFiWNUlSwj87VX9a/Zu7V+4UnNOdP+7T72Hl52d30h8fHyW1I9y/nAgCDGcULAOCy8EBvvTMnTj4/l6+Xt36no2frFeTjoXfn3Ct/L2sfC4zOebm76Y9z4jTC31Nl5xv0+63faU/pBXnZ3bTxyXs0epi1X9cSAPqCZZ/jBQAwR/zIQH22dKLe/apMpdWXFDPMT7974HYF+3qaHQ0Gigi6WX9ZOlHv7CrTd6drFR7orbTESI0cOjherw0AfimKFwCgx8IDvfWf08aYHQN9LOBmd70wdbTZMQDAkrjVEAAAAAAMRvECAAAAAINRvAAAAADAYBQvAAAAADAYxQsAAAAADEbxAgAAAACDUbwAAAAAwGAULwAAAAAwGMULAAAAAAxG8QIAAAAAg1G8AAAAAMBgFC8AAAAAMBjFCwAAAAAMRvECAAAAAINRvAAAAADAYBQvAAAAADAYxQsAAAAADEbxAgAAAACDUbwAAAAAwGAULwAAAAAwGMULAAAAAAxG8QIAAAAAg1G8AAAAAMBgFC8AAAAAMBjFCwAAAAAMdpPZAazG6XRKkurq6kxO8su1tLSosbFRdXV1stvtZsdBDzE/a2N+1scMrY35WRvzs7aBNL+rneBqR+gKxauH6uvrJUlhYWEmJwEAAADQH9TX18vf37/LNTanK/UM7dra2lRZWSlfX1/ZbDaz4/widXV1CgsL08mTJ+Xn52d2HPQQ87M25md9zNDamJ+1MT9rG0jzczqdqq+v14gRIzRkSNfP4mLHq4eGDBmi0NBQs2PcUH5+fpb/ph/MmJ+1MT/rY4bWxvysjflZ20CZX3c7XVdxuAYAAAAAGIziBQAAAAAGo3gNYh4eHlq1apU8PDzMjoJeYH7WxvysjxlaG/OzNuZnbYN1fhyuAQAAAAAGY8cLAAAAAAxG8QIAAAAAg1G8AAAAAMBgFC8AAAAAMBjFC5KkRx55ROHh4fL09NTw4cM1e/ZsVVZWmh0LLjp+/LjS0tIUGRkpLy8vjRw5UqtWrVJzc7PZ0eCi1157TQkJCfL29tYtt9xidhx0Y+PGjYqMjJSnp6diY2O1e/dusyPBRbt27dLDDz+sESNGyGazaevWrWZHgovWrl2re++9V76+vgoODlZqaqqOHj1qdiz0QEZGhsaOHdv+wsnx8fH6/PPPzY7VZyhekCQlJSXp448/1tGjR/XJJ5+otLRUM2bMMDsWXPT999+rra1NmZmZOnz4sNavX6+3335bK1euNDsaXNTc3KyZM2dq4cKFZkdBNz766CMtW7ZML730kg4cOKCJEydq6tSpqqioMDsaXNDQ0KBx48bprbfeMjsKeqigoECLFi1SYWGh8vPz1draquTkZDU0NJgdDS4KDQ3V66+/rqKiIhUVFenBBx/UtGnTdPjwYbOj9QmOk0entm3bptTUVF2+fFl2u93sOOiF9PR0ZWRkqKyszOwo6IGsrCwtW7ZMP/74o9lRcB3333+/7rnnHmVkZLRfi4mJUWpqqtauXWtiMvSUzWZTTk6OUlNTzY6CXqiurlZwcLAKCgo0adIks+OglwICApSenq60tDSzoxiOHS90UFNTo+zsbCUkJFC6LKy2tlYBAQFmxwAGlObmZn3zzTdKTk6+5npycrL27NljUipgcKqtrZUkftZZlMPh0JYtW9TQ0KD4+Hiz4/QJihfarVixQjfffLMCAwNVUVGh3NxcsyOhl0pLS7VhwwYtWLDA7CjAgHL+/Hk5HA6FhIRccz0kJERVVVUmpQIGH6fTqeXLlysxMVFjxowxOw564NChQ/Lx8ZGHh4cWLFignJwc3XnnnWbH6hMUrwFs9erVstlsXb4VFRW1r3/uued04MAB5eXlyc3NTXPmzBF3opqrpzOUpMrKSqWkpGjmzJl6+umnTUoOqXfzgzXYbLZr3nc6nR2uATDO4sWLVVJSog8//NDsKOihO+64Q8XFxSosLNTChQs1d+5cHTlyxOxYfeImswPAOIsXL9asWbO6XBMREdH+56CgIAUFBSk6OloxMTEKCwtTYWHhoNn+7Y96OsPKykolJSUpPj5e77zzjsHp0J2ezg/9X1BQkNzc3Drsbp07d67DLhgAYyxZskTbtm3Trl27FBoaanYc9JC7u7tGjRolSYqLi9P+/fv15ptvKjMz0+RkxqN4DWBXi1RvXN3punz58o2MhB7qyQxPnz6tpKQkxcbGatOmTRoyhA1ts/2Sf4Pon9zd3RUbG6v8/Hw9+uij7dfz8/M1bdo0E5MBA5/T6dSSJUuUk5OjnTt3KjIy0uxIuAGcTueg+X2T4gXt27dP+/btU2Jiom699VaVlZXplVde0ciRI9ntsojKykpNnjxZ4eHhWrdunaqrq9sfGzZsmInJ4KqKigrV1NSooqJCDodDxcXFkqRRo0bJx8fH3HC4xvLlyzV79mzFxcW17y5XVFTwnEqLuHTpkn744Yf298vLy1VcXKyAgACFh4ebmAzdWbRokT744APl5ubK19e3fefZ399fXl5eJqeDK1auXKmpU6cqLCxM9fX12rJli3bu3KkvvvjC7Gh9guPkoUOHDumZZ57RwYMH1dDQoOHDhyslJUUvv/yybrvtNrPjwQVZWVl66qmnOn2Mf+LWMG/ePL333nsdru/YsUOTJ0/u+0Do0saNG/XGG2/ozJkzGjNmjNavX89x1haxc+dOJSUldbg+d+5cZWVl9X0guOx6z6PctGmT5s2b17dh0CtpaWnavn27zpw5I39/f40dO1YrVqzQlClTzI7WJyheAAAAAGAwngQCAAAAAAajeAEAAACAwSheAAAAAGAwihcAAAAAGIziBQAAAAAGo3gBAAAAgMEoXgAAAABgMIoXAAAAABiM4gUAgItKSko0ffp0BQYGytPTU3fddZfS09PV2tpqdjQAQD9H8QIAwAUFBQWaMGGCvLy8lJubq4MHD+r555/XunXrNH36dLW1tZkdEQDQj9mcTqfT7BAAAPRnDodDUVFRSkhI0ObNm6957MiRIxo/frwyMjKUlpZmUkIAQH9H8QIAoBt79+5VQkKCiouLNW7cuA6Pp6amqrGxUXl5eSakAwBYAbcaAgDQjfLycklSVFRUp49HR0frxIkTfRkJAGAxFC8AALrh5+cnSaqpqen08YsXL7avAQCgMxQvAAC6ER8fL7vdrk8//bTDYw6HQ3l5eUpMTDQhGQDAKiheAAB0IzAwUEuXLtWrr76qysrKax5bv369Lly4oGeffdakdAAAK6B4AQDQjUuXLmnp0qWKjIxUUlKSvv32W0lSenq6Vq5cqQ0bNsjd3V0Oh8PkpACA/opTDQEA6Mbq1au1Zs2a9vfnzp2rrKws2Wy2a9aVl5crIiKij9MBAKyA4gUAAAAABuNWQwAAAAAwGMULAAAAAAxG8QIAAAAAg1G8AAAAAMBgFC8AAAAAMBjFCwAAAAAMRvECAAAAAINRvAAAAADAYBQvAAAAADAYxQsAAAAADEbxAgAAAACDUbwAAAAAwGD/D2Ad7yUfOwVhAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "N = 16 # order of periodic sinc function\n", "M = 1024 # number of frequency points\n", "Om = np.linspace(-np.pi, np.pi, M)\n", "\n", "\n", "def psinc(x, N):\n", " \"\"\"Periodic sinc function.\"\"\"\n", " x = np.asanyarray(x)\n", " y = np.where(x == 0, 1.0e-20, x)\n", " return 1 / N * np.sin(N / 2 * y) / np.sin(1 / 2 * y)\n", "\n", "\n", "# plot psinc\n", "plt.figure(figsize=(10, 8))\n", "plt.plot(Om, psinc(Om, 16))\n", "plt.xlabel(r\"$\\Omega$\")\n", "plt.ylabel(r\"$\\mathrm{psinc}_N (\\Omega)$\")\n", "plt.grid()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0wAAALyCAYAAADpKlQGAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAADNVElEQVR4nOzdd5hU5d3G8XvaVrZRd5e2iCCsVEVAVMCCCEZN7LFhijGJ+sYYo5JX84ImYomxxlQVS2KisYsNC6KCCipIUQTpyy5le5923j9mzyzL1tmdPt/PdXHBzJ4588weBube3/P8HothGIYAAAAAAK1YIz0AAAAAAIhWBCYAAAAAaAeBCQAAAADaQWACAAAAgHYQmAAAAACgHQQmAAAAAGgHgQkAAAAA2kFgAgAAAIB2EJgAAAAAoB0EJgAAAABoB4EJAAAAANpBYAIAAOgCr9erwYMHq6SkRJJ033336fDDD1dqaqpGjBih+++/P8IjBBAK9kgPAAAAIBZYrVbt2rVLknTzzTfr1Vdf1X//+1+NHTtWa9eu1bx583TgwAHddtttER4pgGCyGIZhRHoQAAAA0e5vf/ub3n//fd13330qKCjQmjVrNGLECP/XN27cqEmTJmnHjh3q169fBEcKIJiYkgeg2xYvXiyLxeL/lZKSotzcXJ144olatGiR9u3b1+HxB/+6/vrrJandrx/6a9myZe2O6/bbb5fFYtEXX3zR6muXXXaZ7Ha7lixZ0uXXefnll/ufd8yYMV1+3MFefPHFFuNfvXp1t84TCgsWLJDFYun0OPP6bd++PeDnWLFihRYsWKCKiorABxgB0fpaA71WXXlvBvqe6+x9HIz3sBT897Ek3XrrrSosLJTX6w3ocaYNGzboyCOP1MqVKzVs2LAWYUmSCgsLNWjQIK1cuVKS9Mgjj2jgwIGqra3t1vMBiA5MyQPQY4899phGjRoll8ulffv26cMPP9Sdd96pP/zhD/rPf/6jU045pc3jD5afny9J/g8apttuu03vvfee3n333Rb3FxYWtjueq6++Wnfffbduv/12Pfvss/77f/vb3+rJJ5/Uww8/rNNPPz2g15ibm6sXXnhBaWlpAT3ONGPGDK1cuVJLlizR7373u26dI9JOP/10rVy5Unl5eQE/dsWKFVq4cKEuv/xyZWdnB39wUSSaXmtX3pvdfc+19z4+99xzu3W+QwX7fbxnzx7dddddWrx4sazW7v28eMOGDTrppJNUW1urzMzMNo/Jzs5WXV2dJGnevHm68847ddddd2nhwoXdek4AkUdgAtBjY8aM0aRJk/y3zznnHP3yl7/U8ccfr7PPPlubN2/WgAED2j3+YFOnTm1xu1+/frJara3u70hmZqauueYa/f73v9fXX3+tUaNG6bHHHtNtt92mG264QT/72c8CfIVScnJyQGM4VE5OjqZOnaqvv/662+eItH79+kXdNKO6urpuh9hE0JX3Znffc+29j4cMGdKt8x0q2O/j+++/X9nZ2Tr77LMDetzBNmzYoDFjxmj//v365ptv5Ha7Zbc3f5RyOp3avHmzDjvsMEmS3W7XlVdeqdtuu0033ngjf1eBGMWUPAAhMWTIEN1zzz2qrq7WX//617A//7XXXqu0tDQtWrRIb7/9tq688kqdf/75uuOOO4L6PMOGDdO8efNa3X/SSSdpxowZ3T7vli1b9IMf/EAjRoxQWlqaBg4cqDPOOEPr1q1rcZw5RWvDhg36/ve/r6ysLA0YMEA//OEPVVlZ2eq8S5Ys0YQJE5ScnKxhw4bpD3/4Q5fHdOg0ta4+94IFC/TrX/9aku/7deiUrM2bN+uiiy5S//79lZycrNGjR+tPf/pTq+c3n+/zzz/Xueeeq5ycHA0fPtx//xdffKGzzz5bmZmZysrK0iWXXKL9+/e3Os+HH36ok08+WRkZGUpLS9O0adO6NLWrK9eks9cayOvtybXqSKTfm4EI1vvY6XTqkUce0UUXXdRudenDDz/UqaeeqqysLOXk5Oj000/X5s2b/V8vKytTZWWlhg0bpsmTJ6tv37765z//2eIcTzzxhAYMGNAiSF588cWqqqrSv//974DGDCB6EJgAhMzcuXNls9m0fPnyFvd7PB653e4Wv4Ktd+/e+tnPfqZ//etfOuecczRlyhQ98cQTXVr/0VWlpaXavn17q5+yG4ahzz//XEcffXS3z71nzx716dNHd9xxh9544w396U9/kt1u15QpU7Rp06ZWx59zzjkaOXKknnvuOd10003617/+pV/+8pctjnnnnXd01llnKSMjQ//+9791991365lnntFjjz3W7XF25bl//OMf65prrpEkPf/881q5cqVWrlypo446Shs3btQxxxyj9evX65577tGrr76q008/Xf/zP//T7hSms88+W4cffrieffZZ/eUvf/Hf/73vfU+HH364/vvf/2rBggV68cUXNXv2bLlcLv8x77//vk466SRVVlbqkUce0dNPP62MjAydccYZ+s9//tPh6+zKNenotUrq8usN1bUytffeDEQsvY8/+eQTlZaW6sQTT2zz6wsWLNCMGTM0ePBgPf300/rHP/6hXbt26eSTT1ZNTY0kX3Vp9OjRslqtslqteuyxx3TDDTfovffekyS9++67+s1vfqPHHnusRSjLzc3VqFGjAl5vBSCKGADQTY899pghyVi1alW7xwwYMMAYPXp0i+Pb+uVyudp8/Lx584z09PRuje/zzz83JBn5+flGaWlpt85hjmHo0KGt7n/jjTcMScaKFSta3L9p0yZDkvHUU0+1ekxXvmdtcbvdhtPpNEaMGGH88pe/9N//f//3f4Yk46677mpx/M9//nMjJSXF8Hq9/vumTJli5OfnG/X19f77qqqqjN69extd+e/AHPu2bdsCfu677767xWNNs2fPNgYNGmRUVla2uP/qq682UlJSjLKyslav9be//W2LY837D/6+GIZh/POf/2x1HaZOnWr079/fqK6u9t/ndruNMWPGGIMGDfKP+dDX2pb2rkl7rzWQ1xusa9XV9+bBOnvPBfo+7sl72DCC8z6+8847DUlGSUlJq6+98sorbf49/uabb1r8/fnzn/9sXHbZZYZhGMbvf/97Iz093bDZbEZBQYFhGIZRUFBg2Gw2Iz093fj973/f4lwXX3yxMWDAgG6NHUDkUWECEFJGGzsXPPHEE1q1alWLXwevAwiGqqoq/eAHP5AkHThwwL8I+1Dbt2+XxWLR+eef3+L+CRMm6KWXXurwOcxxT5gwocX9n332mST1qMLkdrt1++23q7CwUElJSbLb7UpKStLmzZv11VdftTr+zDPPbHF73Lhxamho8HdDq62t1apVq3T22WcrJSXFf5xZXemJzp67PQ0NDXrnnXf0ve99T2lpaS0qFXPnzlVDQ4M+/vjjVo8755xz2jzfxRdf3OL2+eefL7vd7q8A1NbW6pNPPtG5556rXr16+Y+z2Wy69NJLtXv37jard6ZAr0l3X28or9XB2npvBiJa3sddeQ/v2bNHFotFffv2bfX43/72txo+fLh+8YtftLgmw4YNU2pqqrZu3SpJ+vLLLzV+/HhJ0m9+8xvV1NTI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SJI2bdqkv/71ry2W10jS5MmT9emnn7Zo7BYNAq5VrV69WieeeKL/tvlC582bp8WLF0uS/v3vf8swDH3/+99v8xw7d+5sUVqrqKjQT37yE5WUlCgrK0sTJ07U8uXLe9Q1AwAAAOipepdHhb99MyLPvfHW2UpL6vnUsosvvljXXnutDMPQ008/3aqjXEe2b9+u/Pz8Vvf/9Kc/1c9+9rMWTdiuv/56/frXv5bkC0wnn3yyJOmOO+7Q2rVr9eyzz2rOnDm65JJLVFFRoQsuuEAffPCB//EDBw5UY2OjSkpKNHTo0O6+3KAL+ArMnDmz07T7k5/8RD/5yU/a/fqyZcta3L733nt17733BjoUAAAAAJ24+uqrJfk6x7UVlu655x79+te/1t69e9WvXz85nU4NHjxYe/fuVX19fauGCjt27NA777yjFStW+KtGkm8N2MCBAyX5+hncdNNNkqSbbrrJ/2dJ+vzzz9scZ2pqqiSprq6uB682+ELaJQ8AAACIZakOmzbeOjtiz91Tt9xyi5YsWaKPP/5Yp5xyih555JEWrbsl33qjcePG6c0339Qll1yir776SqNHj5Yk9e3bV+Xl5S2OX7t2rXr37q1PPvmkxf1er1cNDQ2aNGmSTjvttID7EZSVlUmS+vXrF+jLDCkCEwAAANAOi8USlGlxkfCPf/xD99xzj959912NHz9e1157re666y795Cc/adFVbv369frVr36l119/XZdcckmLhg0TJ07UU0891eK8DodD1dXVysvLU3p6uv9+r9erqqoqrV69ultdBtevX69Bgwapb9++3XzFoRF7/RIBAAAAdOj111/XVVddpaeeesq/3+k111yjqqoqPfnkk/7jDMPQ9u3bdeGFF2r16tXyer1av369v2HD7NmztWHDhhZVpilTpigzM1OXXnqp1qxZoy1btuiNN97Qtdde26Mxf/DBBzr11FN7dI5QIDABAAAAceSzzz7Teeedp7vuuktnn322//7MzExdc801uuOOO+TxeCRJW7du1eDBg+VwODRx4kStWrVK69at81eYxo4dq0mTJumZZ57xn6d379567bXXVF5erhkzZuioo47Sb37zGxUUFHR7zA0NDXrhhRd0xRVXdPscoRKb9UUAAAAAbTr66KNVU1PT5tduvfVW3Xrrrf7bB0+/O+200/T6669rw4YN/vsk3zqo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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "N = 16 # length of the signal\n", "M = 1024 # number of frequency points for DTFT\n", "Om0 = 5.33 * (2 * np.pi / N) # frequency of exponential signal\n", "\n", "\n", "# DFT of the exponential signal\n", "xN = np.exp(1j * Om0 * np.arange(N))\n", "XN = np.fft.fft(xN)\n", "\n", "# interpolation of DTFT from DFT coefficients\n", "Xi = np.asarray(np.zeros(M), dtype=complex)\n", "for mu in np.arange(M):\n", " Omd = 2 * np.pi / M * mu - 2 * np.pi * np.arange(N) / N\n", " interpolator = psinc(Omd, N) * np.exp(-1j * Omd * (N - 1) / 2)\n", " Xi[mu] = np.sum(XN * interpolator)\n", "\n", "# plot spectra\n", "plt.figure(figsize=(10, 8))\n", "ax1 = plt.gca()\n", "\n", "plt.plot(np.arange(M) * 2 * np.pi / M, abs(Xi), label=r\"$|X_N(e^{j \\Omega})|$\")\n", "plt.stem(\n", " np.arange(N) * 2 * np.pi / N,\n", " abs(XN),\n", " basefmt=\" \",\n", " linefmt=\"C1\",\n", " markerfmt=\"C1o\",\n", " label=r\"$|X_N[\\mu]|$\",\n", ")\n", "plt.title(r\"DFT $X_N[\\mu]$ and interpolated DTFT $X_N(e^{j \\Omega})$\", y=1.08)\n", "plt.ylim([-0.5, N + 2])\n", "plt.legend()\n", "\n", "ax1.set_xlabel(r\"$\\Omega$\")\n", "ax1.set_xlim([0, 2 * np.pi])\n", "ax1.grid()\n", "\n", "ax2 = ax1.twiny()\n", "ax2.set_xlim([0, N])\n", "ax2.set_xlabel(r\"$\\mu$\", color=\"C1\")\n", "ax2.tick_params(\"x\", colors=\"C1\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Relation between Discrete Fourier Transformations with and without Zero-Padding\n", "\n", "It was already outlined above that the DFT is related to the DTFT by sampling. Hence, the DFT $X_M[\\mu]$ is given by sampling the DTFT $X_M(\\mathrm{e}^{\\mathrm{j}\\, \\Omega})$ at $\\Omega = \\frac{2 \\pi}{M} \\mu$. Since the zero-padded signal $x_M[k]$ differs from $x_N[k]$ only with respect to the additional zeros, the DTFTs of both are equal\n", "\n", "\\begin{equation}\n", "X_M(\\mathrm{e}^{\\mathrm{j}\\, \\Omega}) = X_N(\\mathrm{e}^{\\mathrm{j}\\, \\Omega})\n", "\\end{equation}\n", "\n", "The desired relation between the DFTs $X_N[\\mu]$ and $X_M[\\mu]$ of the signal $x_N[k]$ and its zero-padded version $x_M[k]$ can be found by sampling the interpolated DTFT $X_N(\\mathrm{e}^{\\mathrm{j}\\, \\Omega})$ at $\\Omega = \\frac{2 \\pi}{M} \\mu$\n", "\n", "\\begin{equation}\n", "X_M[\\mu] = \\sum_{\\eta=0}^{N-1} X_N[\\eta] \\cdot \\mathrm{e}^{\\,-\\mathrm{j}\\, \\frac{( \\frac{2 \\pi}{M} \\mu - \\frac{2 \\pi}{N} \\eta ) (N-1)}{2}} \\cdot \\text{psinc}_N \\left( \\frac{2 \\pi}{M} \\mu - \\frac{2 \\pi}{N} \\eta \\right)\n", "\\end{equation}\n", "\n", "for $\\mu = 0, 1, \\dots, M-1$.\n", "\n", "Above equation relates the spectrum $X_N[\\mu]$ of the original signal $x_N[k]$ to the spectrum $X_M[\\mu]$ of the zero-padded signal $x_M[k]$. It essentially constitutes a bandlimited interpolation of the coefficients $X_N[\\mu]$.\n", "\n", "All spectral information of a signal of finite length $N$ is already contained in its spectrum derived from a DFT of length $N$. By applying zero-padding and a longer DFT, the frequency resolution is only virtually increased. The additional coefficients are related to the original ones by bandlimited interpolation. In general, zero-padding does not bring additional insights in spectral analysis. It may bring a benefit in special applications, for instance when estimating the frequency of an isolated harmonic signal from its spectrum. This is illustrated in the following example. Zero-padding is also used to make a circular convolution equivalent to a linear convolution. However, there is a different reasoning behind this. Details are discussed in a [later section](../nonrecursive_filters/fast_convolution.ipynb#Linear-Convolution-by-Periodic-Convolution)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Example - Interpolation of the DFT" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following example shows that the coefficients $X_M[\\mu]$ of the spectrum of the zero-padded signal $x_M[k]$ can be derived by interpolation from the spectrum $X_N[\\mu]$." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA04AAAInCAYAAACvLAmnAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABkQ0lEQVR4nO3dd3xUVf7/8fcQQgqGSAIhCTUISG8CiqI0qQoqFgRBBHtDxLWAIslaECwLa4F1VdBFsOwKggWJS9OvKDUo4E9Ao7AaREFDkzBJzu8PNrMMKXcmmZuZm3k9H49R5s6dm8+Ze+d+5nPvuee6jDFGAAAAAIBSVQt2AAAAAAAQ6iicAAAAAMAChRMAAAAAWKBwAgAAAAALFE4AAAAAYIHCCQAAAAAsUDgBAAAAgAUKJwAAAACwQOEEAAAAABYonAAAAADAAoUTAAAAAFigcILjFRYWqmHDhtq7d68kaebMmWrWrJliYmLUvHlzzZo1y6flGGMUFxenX375xc5wAQAA4EDVgx0AUFHVqlXTnj17JEkPPfSQ3nvvPf3zn/9Uu3bttGXLFo0ZM0a//vqrHnnkkTKXs3PnTtWuXVt169atjLABAADgIJxxguO9+OKLuuaaa/TLL7/oL3/5i95++2117NhRERER6ty5s9588009/fTTlmeSNm3apC5dukiSfvnlF11wwQWaPHmyjDGV0QwAAACEMAqnSjZv3jy5XC7PIzo6WsnJyerdu7emTZumffv2lTn/yY8//elPklTq66c+Vq1aFYQWe3vzzTfVpk0bxcTEyOVyKSsrq8LL3LZtm9q0aaO1a9cqLS1NzZs393q9devWatCggdauXStJuu+++3T++edr7NixKigo8My3efNmdenSRVu2bNH555+vm266SY8//rhcLleFYzxZ0Tr9/vvvPdM+++wzpaen6/fff/eaNz09XS6XS7/++mtAY/BVaXHBN0XrrzzzlrSdAPBd0Xdow4YNfr/36NGjSk9PD4m86St/9jen+uCDD5Senh7YgP6rV69e6tWrly3Lrgw//fST0tPTA/J7Bc5H4RQkc+fO1dq1a5WZmannn39eHTt21PTp09WqVSt9/PHHpc5/8mP8+PGSVGz64MGDFRMTU2x6586dK7uZXn755ReNHj1aZ5xxhpYtW6a1a9eqRYsWFV5uUeF05MgR1apVq8R5Tj/9dB09elRbtmzRvn379Mknn6hJkyZ6//33PfNs3rxZu3fv1rBhwzR37lyNGjWqwrGV5KKLLtLatWuVkpLimfbZZ58pIyMj5AqUUI0rHJS0nQCoHEePHlVGRoajCqeK+OCDD5SRkRHsMELSTz/9pIyMDAonSOIap6Bp27atp1uYJF1++eW6++671aNHDw0bNkw7d+5UvXr1Sp3/ZOecc47X87p166patWrFpgfbjh075Ha7NWrUKPXs2TNgy922bZvatm2rX375RTt27FB+fr6qV//fpn38+HHt3LlTTZs21Weffab+/ftLkgYMGKDFixdr6NChkk4UTllZWXrqqafUvXv3gMV3qrp163IdVTkcPXpUsbGxwQ6j0rCdAFWP2+2Wy+XyylGoWsItV4UbzjiFkEaNGunpp5/WoUOH9Le//S3Y4fjl008/Vd++fRUXF6fY2Fide+65XmdzrrvuOvXo0UOSNHz4cLlcLp9O3X/66afq37+/4uPjVbt2bV100UXauXOn5/UDBw4oNzdXaWlp6tatm+rUqaPXX3/daxmvvfaa6tWrpy5duui3337znJU6/fTTdeDAAUnSnj17VKNGDS1atEgPPPCAfvjhhzLj2rZtm1wul95++23PtI0bN8rlcqlNmzZe8w4dOlRnnXWW5/mpXbDS09N17733SpLS0tJK7Fr5888/a8SIEYqPj1e9evU0btw45ebmlvh5lbUepBProkmTJsXee2o3D1/iOllZ3URP7m62c+dOjRw5UklJSYqKilKrVq30/PPPlxjLpk2bdMUVV6h27do644wz/GpnaYqWvXnzZg0bNky1atVSfHy8Ro0aVew6uF27dmns2LFq3ry5YmNjVb9+fQ0ZMkRfffVVseW+//776tixo6KiopSWlqannnqq1Bh8mbekrnpFsW/bts2n7eHdd99V+/btFRUVpaZNm2rWrFkV6s4DON11112n0047Tbt27dLgwYN12mmnqWHDhrrnnnuUl5cnSfr+++89By0yMjI8+7HrrrvOsxxf9mOrVq2Sy+XSP/7xD91zzz2qX7++oqKitGvXLs/3OzMzU2PHjlVCQoJq1qypIUOG6LvvvisW9yuvvKIOHTooOjpaCQkJuuyyy/T1119btvfNN99U//79lZKSopiYGLVq1UoPPPCAjhw54vWZFMVe0n7bGKMXXnhBHTt2VExMjGrXrq0rrriiWJzGGM2YMUONGzdWdHS0OnfurA8//NB6pfzX22+/rbPPPlvx8fGKjY1V06ZNNW7cuGKf5/z58zVx4kQlJycrJiZGPXv21ObNm4stb8OGDRo6dKgSEhIUHR2tTp066a233io2348//qibbrpJDRs2VI0aNZSamqorrrhCP//8s1atWqWuXbtKksaOHev5bIq6NRZtT1999ZX69++vuLg49e3bV5LUpEkTr22myKldF4vatWDBAt1///1KSUnRaaedpiFDhujnn3/WoUOHdNNNN6lOnTqqU6eOxo4dq8OHD/v8uSKwKJxCzODBgxUREaE1a9Z4TS8oKFB+fr7XI1SsXr1affr0UW5url5++WUtXLhQcXFxGjJkiN58801J0pQpUzw75scff1xr167VCy+8UOZy09PT1bNnTzVs2FALFy7USy+9pD179qhv376enca2bdvUqlUrVatWTdWqVdPcuXN13333aeXKlZKkFStWaPLkyZo7d66qVaum008/XQcPHpQk5ebmqnbt2pJOnG1q166dzjvvPE2ZMkWXXXaZ/vjjj1Jja9OmjVJSUry6VX788ceKiYnR9u3b9dNPP0mS8vPztXr1al144YWlLuuGG27QnXfeKUl65513Suxaefnll6tFixb617/+pQceeEALFizQ3Xff7fd68IcvcZ3s1K6hK1asUP369ZWcnKyEhARJ0vbt29W1a1dt3bpVTz/9tN577z1ddNFFGj9+fIndRIYNG6ZmzZrp7bff1pw5cwLazssuu0zNmjXTP//5T6Wnp2vx4sUaMGCA3G63Z56ffvpJiYmJeuKJJ7Rs2TI9//zzql69us4++2x98803nvn+/e9/65JLLlFcXJzeeOMNPfnkk3rrrbc0d+7cYn/Xn3lL48v2sGzZMg0bNkyJiYl68803NWPGDC1cuFCvvvqqz38HqIrcbreGDh2qvn376t1339W4ceP0l7/8RdOnT5ckpaSkaNmyZZKk66+/3rNPmzJliiT/92OTJk3S7t27NWfOHC1dulRJSUme166//npVq1ZNCxYs0MyZM7Vu3Tr16tXLq3v0tGnTdP3116tNmzZ65513NGvWLH355Zfq3r2714HEkuzcuVODBw/Wyy+/rGXLlmnChAl66623NGTIEM88U6ZM0RVXXCHJez9e1E345ptv1oQJE3ThhRdq8eLFeuGFF7Rt2zade+65+vnnnz3LycjI0P33369+/fpp8eLFuvXWW3XjjTd67StLs3btWg0fPlxNmzbVG2+8offff18PP/xwib91Jk+erO+++04vvfSSXnrpJf3000/q1auXVyG3cuVKnXfeefr99981Z84cvfvuu+rYsaOGDx+uefPmeeb78ccf1bVrVy1atEgTJ07Uhx9+qJkzZyo+Pl6//fabOnfu7Nk3P/TQQ57P5oYbbvAs4/jx4xo6dKj69Omjd999t9xdHidPnqx9+/Zp3rx5evrpp7Vq1SqNGDFCl19+ueLj47Vw4ULdd999+sc//qHJkyeX628gAAwq1dy5c40ks379+lLnqVevnmnVqpXX/CU93G53ie8fM2aMqVmzpi3xl+Scc84xSUlJ5tChQ55p+fn5pm3btqZBgwamsLDQGGPMypUrjSTz9ttvWy5z6dKlRpKZMWOG1/QdO3YYSWb+/PnGGGNmz55trr32WmOMMY899pipWbOmiYiIME2aNDHGGNOkSRMTERFhatasaR577DGzefNmM3bsWGOMMRkZGWbRokXGGGPS09PNvffe6/k748aNMyNHjiwzxlGjRpmmTZt6nl944YXmxhtvNLVr1zavvvqqMcaY//u//zOSzPLlyz3zFa3T7Oxsz7Qnn3yy2DRjjJk6dWqJn8Ntt91moqOjPZ+tMb6vhzFjxpjGjRsXa0/R3zpZaXFZyc/PN5dccok57bTTzMaNGz3TBwwYYBo0aGByc3O95r/jjjtMdHS0OXDggFcsDz/8cLFl+9rO0hQt++677/aa/vrrr3ttW6W16/jx46Z58+Ze7z/77LNNamqq+eOPPzzTDh48aBISEop9pr7OW9J24s/20LVrV9OwYUOTl5fnmXbo0CGTmJhYLCagKiop344ZM8ZIMm+99ZbXvIMHDzZnnnmm5/kvv/xiJJmpU6cWW66v+7GinHfBBReUGttll13mNb0oZzz66KPGGGN+++03ExMTYwYPHuw13+7du01UVJRXnippH36ywsJC43a7zerVq40ks2XLFs9rt99+e4nvXbt2rZFknn76aa/pe/bsMTExMea+++7zxBkdHV1qe3r27FlqXMYY89RTTxlJ5vfffy91nqLPs3Pnzl77uu+//95ERkaaG264wTOtZcuWplOnTsV+J1188cUmJSXFFBQUGGNO5PrIyEizffv2Uv/u+vXrjSQzd+7cYq8VbU+vvPJKsdcaN25sxowZU2x6z549vT6PonYNGTLEa74JEyYYSWb8+PFe0y+99FKTkJBQarywF2ecQpApYfjr1157TevXr/d6lKeP9OzZs9W5c2dFRkaWOoLOK6+8ombNmum0005Tq1at9O2335a6vCNHjuiLL77QFVdcodNOO80zPSIiQqNHj9Z//vMfn442nerhhx/WGWecobvuusvrLFtaWppiYmI8R5a+/PJLdejQQdKJozWHDx9Wfn6+srOzJUnZ2dnKz8/X4cOHNXnyZHXs2FEJCQk6//zz9e233+riiy+WJE2dOlUzZszw/P2XX365WJe/U/Xt21ffffedsrOzdezYMX366acaOHCgevfurczMTEknzkJFRUV5uimWV9F1WEXat2+vY8eOeUZhtGs9lNcdd9yh999/X2+//bbnDNWxY8f073//W5dddpliY2O91uvgwYN17Ngxff75517Lufzyy72e+9POU8/Qnvq9uuaaa7yeX3XVVapevbrnbGXRMh5//HG1bt1aNWrUUPXq1VWjRg3t3LnT003myJEjWr9+vYYNG6bo6GjPe4vOgp0av6/zlsWX7WHDhg269NJLVaNGDc98Rd0/gHDmcrmKfQ/at29v2UVbCsx+7GSn7ofOPfdcNW7c2LMfWrt2rf74449iXb4aNmyoPn366N///neZ8X733XcaOXKkkpOTFRERocjISM81xr509Xvvvffkcrk0atQor7YmJyerQ4cOnq7ba9eu1bFjx0ptj5Wi7nBXXXWV3nrrLf3444+lzjty5Eiv7saNGzfWueee6/nMdu3apf/3//6fJ5ZT11FOTo4nT3z44Yfq3bu3WrVqZRljWcpax74q+j1SpCimiy66qNj0AwcO0F0vSLg6McQcOXJE+/fvV7t27bymt2rVqtTBIfyRkpKijIwMvfbaayW+vnTpUs2aNUtLlizxFE1F3axK8ttvv8kYU+LIX6mpqZKk/fv3+xXj3r17Pf2Vo6KiSpzn9NNP1+HDh/Xhhx96XWfki7KuPfFHUfe7jz/+WGlpaXK73erTp49+/vlnz812P/74Y5133nmKiYmp0N9KTEz0el70uRR1J7RjPZTXo48+qjlz5ujll1/WwIEDPdP379+v/Px8Pfvss3r22WdLfO+pw66f2h5f2/n9998rLS3N6/WVK1d69StPTk72er169epKTEz0+pwmTpyo559/Xvfff7969uyp2rVrq1q1arrhhhu8PvvCwsJiyyvpb/gzb1l83R5OHmCmSEnTgHASGxvrdeBCOvEdOnbsmOV7A7EfO1lp+4Ki/VDR/0vb5xUdpCvJ4cOHdf755ys6OlqPPvqoWrRoodjYWO3Zs0fDhg0rszt6kZ9//rnUfYkkNW3a1CvO8u7bLrjgAi1evFh//etfde211yovL09t2rTRgw8+qBEjRlguLzk5WVu2bPHELEl/+tOfPLdtOVXROvrll1/UoEEDy/jKEhsbW+qIvv449bdW0UGv0qYfO3bM6wAiKgeFU4h5//33VVBQYNs9Dy699FJJJy4aL8kjjzyiZ555Rq1bt5YkNWvWrMzlFf2QzMnJKfZa0XU+derU8SvGPXv2SJL+8pe/lHqmpqCgQC1atND1118fkIKyPBo0aKAWLVro448/VpMmTdSlSxedfvrp6tu3r2677TZ98cUX+vzzzytliFd/1kN0dLTnIuiTBeJeUfPmzdOUKVOUnp7udVFvUYxFZ4Zuv/32Et9/arFz6iAGvrYzNTVV69ev93r9zDPP9Hq+d+9e1a9f3/M8Pz9f+/fv9ypK5s+fr2uvvVaPP/6413t//fVXnX766Z6YXC6X9u7dWyymU6f5M29FFP2dk68/sOPvAOEmEPuxk5W2LyjKvUX7o9L2eWXl1xUrVuinn37SqlWrvEay9ef2EnXq1JHL5dInn3xS4oHMomlFcZbWnpIGJDrVJZdcoksuuUR5eXn6/PPPNW3aNI0cOVJNmjTxGum2tL9RFEPRZzJp0iQNGzasxL9VlA/q1q2r//znP5axlaW09VtWrvX3dxFCB131Qsju3bv1pz/9SfHx8br55psr/e8XFBRo8+bN+vLLL9WgQQOlpaUpIyOjxK6DRWrWrKmzzz5b77zzjtfRq8LCQs2fP99TXPij6OiKy+VSly5dSnycffbZ+umnnzxndoLlwgsv1IoVK5SZmal+/fpJklq0aKFGjRrp4YcfltvtLnNgiCKnnjHwlz/roUmTJtq3b5/Xj+rjx4/ro48+qlBcy5Yt04033qhx48Zp6tSpxV6PjY1V7969tXnzZrVv377E9XrqmZTytrNGjRrFlh0XF+e1rFO7Yr711lvKz8/3OmjhcrmK/Vh4//33vbqR1KxZU926ddM777zjdcT60KFDWrp0abH4fZ23ImrWrKkuXbpo8eLFOn78uGf64cOH9d577wXs7wBVVWn7vkDsx0526n7os88+0w8//ODZD3Xv3l0xMTGaP3++13z/+c9/tGLFCs8IbiUp+kF/6j6spFF7S2vvxRdfLGOMfvzxxxLbWtQ75pxzzlF0dHSp7fFHVFSUevbs6Rms49QR8xYuXOj1u+SHH37QZ5995vnMzjzzTDVv3lxbtmwp9TdEUT4YNGiQVq5cWWZX9vLm5yZNmujLL7/0mrZjx45K7TaPwOOMU5Bs3brV0+e26Iasc+fOVUREhBYtWhSU+7f8/PPPys/PV2ZmprZu3arff/9d/fv3V5MmTTRmzJhS3zdt2jT169dPvXv31p/+9CfVqFFDL7zwgrZu3aqFCxf6PfTxGWecod69e+uhhx7S4cOHdfbZZ8sYo5ycHK1cuVJjxowJmbuQ9+3bVy+88IJ+/fVXzZw502v63LlzVbt2ba+hyEtTlHxmzZqlMWPGKDIystgZEiu+rofhw4fr4Ycf1tVXX617771Xx44d01//+lcVFBT4HNepRUh2drauvPJKNW3aVGPHji3Wx79Tp06KiorSrFmz1KNHD51//vm69dZb1aRJEx06dEi7du3S0qVLtWLFioC108o777yj6tWrq1+/ftq2bZumTJmiDh066KqrrvLMc/HFF2vevHlq2bKl2rdvr40bN+rJJ58s1rXjkUce0cCBA9WvXz/dc889Kigo0PTp01WzZk3PkPflmbci/vznP+uiiy7SgAEDdNddd6mgoEBPPvmkTjvttID+HaAqiouLU+PGjfXuu++qb9++SkhIUJ06ddSkSZOA7MeKbNiwQTfccIOuvPJK7dmzRw8++KDq16+v2267TdKJbulTpkzR5MmTde2112rEiBHav3+/MjIyFB0dXeJBqiLnnnuuateurVtuuUVTp05VZGSkXn/9dU+XtpMV7eunT5+uQYMGKSIiQu3bt9d5552nm266SWPHjtWGDRt0wQUXqGbNmsrJydGnn36qdu3a6dZbb1Xt2rX1pz/9SY8++qhXe9LT033qqvfwww/rP//5j/r27asGDRro999/16xZs7yuySqyb98+XXbZZbrxxhuVm5urqVOnKjo6WpMmTfLM87e//U2DBg3SgAEDdN1116l+/fo6cOCAvv76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zz8HMSoAgBOVu3A6FckJABAMX375pdq2batq1Xwb72jbtm0688wzbY4KAFDV+DWq3pdffqnCwkKf59+2bZsSExP9DgoAAF916tRJ+/fv93n+7t27a/fu3TZGBACoivw649SpUyft3btXdevW9Wn+7t27KysrS02bNi1XcAAAWDHGaMqUKYqNjfVp/uPHj9scEQCgKvKrcCI5AQBCzQUXXKBvvvnG5/m7d++umJgYGyMCAFRFfhVOJCcAQKhZtWpVsWl//PEH+QcAEFB+FU4lJScAAEJNXFyczjjjDLVu3Vpt27b1PM4880xVrx6wcZEAAGGkwtkjOTnZk5jatWvnSU5xcXGBiA8AAL+NGzdOGzdu1FlnnaXExEStXr1azz//vHbs2KG6devqq6++CnaIAACHqXDhtGfPHn399dfaunWrtm7dqiVLlmj79u0yxqhNmzZaunRpIOIEAMBnL774or7//ns98sgj+r//+z89/PDD6t69uyQpJycnyNEBAJyowoVTZGSk2rdvr/bt20uS1q1bpw8//FD//Oc/9eOPP1Y4QAAAyqNJkyZ6+eWXtWvXLj3yyCN6/PHH9eSTT6ply5bBDg0A4EAVLpz279+vjz76SB988IE2btyoTp06aeDAgfr4449Vr169QMQIAIBfdu7cqW+++UbffPONvv76a+3evVsHDx7UV199ReEEACiXChdOSUlJ6tChg+655x69+uqrioiICERcAACU25lnnqn27dvrqquu0vjx49WqVStFRkYGOywAgINVuHCaMWOGtm3bplmzZmnixIlq2LCh1whGAwcODEScAAD47Mknn9S2bdu0ePFizZw5U40bN/bKTQMGDAh2iAAAh6lw4XTPPfd4Pf/uu+88A0XMnz+fwgkAUOnKyk3/+Mc/KJwAAH7zu3D617/+pcsvv7zU15s2baqmTZtq6NChFQoMAABfkZsAAHar5u8bRo4cqb/85S9lzmOMKXdAAAD4i9wEALCb34XTkiVLlJ6ervHjxxdLQgUFBZo3b55atWoVsAABALBCbgIA2M3vwmnAgAFas2aNFi1apGHDhumPP/7Q8ePHNXv2bDVr1kwTJ07U8OHD7YgVAIASkZsAAHYr1+AQHTp00Oeff67BgwfrnHPO0a+//iq3260JEybozjvvVFxcXKDjBACgTOQmAICdylU45ebm6pVXXtGPP/6oo0ePyuVy6fPPP1e7du0CHR8AAD4hNwEA7OR3V71JkyapcePGmjdvnh5//HH98ssvuvLKK3XhhRdq/fr1dsQIAECZyE0AALv5XTgtXrxYf/3rX7Vjxw7ddNNNqlmzpubNm6ebbrpJvXv31rvvvmtHnAAAlIrcBACwm99d9bZv3y6Xy1Vs+iOPPKLGjRtr+PDheuqpp3THHXcEJEAAAKyQmwAAdvP7jFNJianIDTfcoEWLFmnSpEkVCgoAAH+QmwAAdvO7cLIyaNAgrV69OtCLBQCg3MhNAICK8qurXlpaWplH9UozYcIEjR8/3u/3AQBghdwEAKgMfhVO8+bNK9cfadKkSbned6r8/Hylp6fr9ddf1969e5WSkqLrrrtODz30kKpVC/jJMwCAA5CbAACVwa/CqWfPnnbF4ZPp06drzpw5evXVV9WmTRtt2LBBY8eOVXx8vO66666gxgYACA5yEwCgMpTrBrjBsnbtWl1yySW66KKLJJ04Wrhw4UJt2LCh1Pfk5eUpLy/P8/zgwYOSJLfbLbfbbW/AAVAUoxNileyJ1+3O91q+22UCuGw+XzsRr72cGm9VE465yR9O20595Z2b8stsn515zC5Vdb1JtM2p7GqbP8tzGWNC/9v7X0888YTmzJmj5cuXq0WLFtqyZYv69++vmTNnasSIESW+Jz09XRkZGcWmL1iwQLGxsXaHjADIK5DuW3eixp/RLV9REUEOCEC5HD16VCNHjlRubq5q1aoV7HAChtwUnvzJTeQxIHT5k5scVTgZYzR58mRNnz5dERERKigo0GOPPVbmELMlHdVr2LChcnJylJiYWBlhV4jb7VZmZqb69eunyMjIYIdjyY54jx7PV4dHVkiStkzpo9gagTtRyudrL+K1l9Pi3b9/v1JSUqpc4RSOuckfTttOfXVybtrwwAWKrxnt07yBzmN2qarrTaJtTmVX2w4ePKg6der4lJtC/5t7kjfffFPz58/XggUL1KZNG2VlZWnChAlKTU3VmDFjSnxPVFSUoqKiik2PjIx01AYVzvFGmv+NlnViuYHfbMP5860MxGsvp8TrhBjLI5xzkz+qWtu8c1P1MttWGXnMLlVtvZ2MtjlToNvmz7Kc882VdO+99+qBBx7Q1VdfLUlq166dfvjhB02bNq3U5AQAgJ3ITQAQHhw1TurRo0eLDe0aERGhwsLCIEUEAAh35CYACA+OOuM0ZMgQPfbYY2rUqJHatGmjzZs365lnntG4ceOCHRoAIEyRmwAgPDiqcHr22Wc1ZcoU3Xbbbdq3b59SU1N188036+GHHw52aACAMEVuAoDw4KjCKS4uTjNnztTMmTODHQoAAJLITQAQLhx1jRMAAAAABAOFEwAAAABYoHACAAAAAAsUTgAAAABggcIJAAAAACxQOAEAAACABQonAAAAALBA4QQAAAAAFiicAAAAAMAChRMAAAAAWKBwAgAAAAALFE4AAAAAYIHCCQAAAAAsUDgBAAAAgAUKJwAAAACwQOEEAAAAABYonAAAAADAAoUTAAAAAFigcAIAAAAACxROAAAAAGCBwgkAAAAALFA4AQAAAIAFCicAAAAAsEDhBAAAAAAWqgc7ACBYCgqNvsg+oI2/upSYfUDdmyUpopor2GEBAMJYQaHRuuwD2nfomJLiotUtLYHcBIQICieEpWVbc5SxdLtyco9JitBrOzcoJT5aU4e01sC2KcEODwAQhrxz0wnkJiB00FUPYWfZ1hzdOn+TV2KSpL25x3Tr/E1atjUnSJEBAMIVuQkIfRROCCsFhUYZS7fLlPBa0bSMpdtVUFjSHAAABB65CXAGCieElXXZB4odzTuZkZSTe0zrsg9UXlAAgLBGbgKcgcIJYWXfodITU3nmAwCgoshNgDNQOCGsJMVFB3Q+AAAqitwEOAOFE8JKt7QEpcRHq7SBXV06MYJRt7SEygwLABDGyE2AM1A4IaxEVHNp6pDWklQsQRU9nzqkNffMAABUGnIT4AwUTgg7A9umaPaozkqqFeU1PTk+WrNHdeZeGQCASkduAkIfN8BFWBrYNkXnNaujdunLJUkvje6k3q1SOJoHAAiaU3PTvLFddX7zuuQmIERwxglh6+RE1LVJbRITACDoTs5F3dISyE1ACKFwAgAAAAALFE4AAAAAYIHCCQAAAAAsUDgBAAAAgAXHFU4//vijRo0apcTERMXGxqpjx47auHFjsMMCAIQxchMAVH2OGo78t99+03nnnafevXvrww8/VFJSkr799ludfvrpwQ4NABCmyE0AEB4cVThNnz5dDRs21Ny5cz3TmjRpEryAAABhj9wEAOHBUYXTkiVLNGDAAF155ZVavXq16tevr9tuu0033nhjqe/Jy8tTXl6e5/nBgwclSW63W2632/aYK6ooRifEKtkTr9ud77V8t8vYsNx8R3zGbA/2Il57OSVOf4VjbvKH07ZTX/mTQ/zJY3blPH9V1fUm0Tansqtt/izPZYwJzjeyHKKjoyVJEydO1JVXXql169ZpwoQJ+tvf/qZrr722xPekp6crIyOj2PQFCxYoNjbW1ngRGHkF0n3rTtT4M7rlKyoitJcLoGRHjx7VyJEjlZubq1q1agU7nIAhN4Unf3KIXfMCqDh/cpOjCqcaNWqoS5cu+uyzzzzTxo8fr/Xr12vt2rUlvqeko3oNGzZUTk6OEhMTbY+5otxutzIzM9WvXz9FRkYGOxxLdsR79Hi+OjyyQpK0ZUofxdYIzInSk5e74YELFF8zOiDLtRPbg72I11779+9XSkpKlSucwjE3+cNp26mv/Mkh/uQxu3Kev6rqepNom1PZ1baDBw+qTp06PuUmR3XVS0lJUevWrb2mtWrVSv/6179KfU9UVJSioqKKTY+MjHTUBhXO8UYa1ynLDcxm673c6mH7+VYG4rWXU+J1QozlEc65yR9VrW3+5BB/8phdOa+8qtp6Oxltc6ZAt82fZTlqOPLzzjtP33zzjde0HTt2qHHjxkGKCAAQ7shNABAeHFU43X333fr888/1+OOPa9euXVqwYIFefPFF3X777cEODQAQpshNABAeHFU4de3aVYsWLdLChQvVtm1bPfLII5o5c6auueaaYIcGAAhT5CYACA+OusZJki6++GJdfPHFwQ4DAAAPchMAVH2OOuMEAAAAAMFA4QQAAAAAFiicAAAAAMAChRMAAAAAWKBwAgAAAAALFE4AAAAAYIHCCQAAAAAsUDgBAAAAgAUKJwAAAACwQOEEAAAAABYonAAAAADAAoUTAAAAAFigcAIAAAAACxROAAAAAGCBwgkAAAAALFA4AQAAAIAFCicAAAAAsEDhBAAAAAAWKJwAAAAAwAKFEwAAAABYoHACAAAAAAsUTgAAAABggcIJAAAAACxQOAEAAACABQonAAAAALBA4QQAAAAAFiicAAAAAMAChRMAAAAAWKBwAgAAAAALFE4AAAAAYIHCCQAAAAAsUDgBAAAAgAUKJwAAAACwQOEEAAAAABYonAAAAADAAoUTAAAAAFigcAIAAAAACxROAAAAAGCBwgkAAAAALFA4AQAAAIAFRxdO06ZNk8vl0oQJE4IdCgAAkshNAFBVObZwWr9+vV588UW1b98+2KEAACCJ3AQAVZkjC6fDhw/rmmuu0d///nfVrl072OEAAEBuAoAqrnqwAyiP22+/XRdddJEuvPBCPfroo2XOm5eXp7y8PM/zgwcPSpLcbrfcbretcQZCUYxOiFWyJ163O99r+W6XsWG5+Y74jNke7EW89nJKnOUVTrnJH07bTn3lTw7xJ4/ZlfP8VVXXm0TbnMqutvmzPMcVTm+88YY2bdqk9evX+zT/tGnTlJGRUWz6ypUrFRsbG+jwbJOZmRnsEPwSyHjzCqSiTfWjj5YrKiLwy12xYkXAllsZwnl7qAzEa4+jR48GOwTbhGtu8odTtlNf+ZND/MljduW88qpq6+1ktM2ZAt02f3KTowqnPXv26K677tLy5csVHR3t03smTZqkiRMnep4fPHhQDRs2VO/evZWYmGhXqAHjdruVmZmpfv36KTIyMtjhWLIj3qPH83XfuhWSpAED+iu2RmA225OX26dPH8XX9G2bCia2B3sRr732798f7BBsEY65yR9O20595U8O8SeP2ZXz/FVV15tE25zKrrYVnfH3haMKp40bN2rfvn0666yzPNMKCgq0Zs0aPffcc8rLy1NEhPehmaioKEVFRRVbVmRkpKM2qHCON9K4TlluYDZb7+VWD9vPtzIQr72cEq8TYiyPcM5N/qhqbfMnh/iTx+zKeeVV1dbbyWibMwW6bf4sy1GFU9++ffXVV195TRs7dqxatmyp+++/v1hiAgDAbuQmAAgPjiqc4uLi1LZtW69pNWvWVGJiYrHpAABUBnITAIQHRw5HDgAAAACVyVFnnEqyatWqYIcAAIAXchMAVD2ccQIAAAAACxROAAAAAGCBwgkAAAAALFA4AQAAAIAFCicAAAAAsOD4UfUQOgoKjb7IPqCNv7qUmH1A3ZslKaKay/qNAADYpKDQaF32Ae07dExJcdHqlpZAbgJQLhROCIhlW3OUsXS7cnKPSYrQazs3KCU+WlOHtNbAtinBDg8AEIa8c9MJ5CYA5UVXPVTYsq05unX+Jq/EJEl7c4/p1vmbtGxrTpAiAwCEK3ITgECjcEKFFBQaZSzdLlPCa0XTMpZuV0FhSXMAABB45CYAdqBwQoWsyz5Q7GjeyYyknNxjWpd9oPKCAgCENXITADtwjRMqZN+h0hNTeeYDAKCiypubGEgCQFkonFAhSXHRAZ0PAICKKk9uYiAJAFboqocK6ZaWoJT4aJV2PM6lE4mnW1pCZYYFAAhj/uYmBpIA4AsKJ1RIRDWXpg5pLUnFElTR86lDWtPVAQBQafzJTQwkAcBXFE6osIFtUzR7VGcl1Yrymp4cH63ZozrTxQEAUOl8zU0MJAHAV1zjhIAY2DZF5zWro3bpyyVJL43upN6tUjjTBAAImlNz07yxXXV+87peuYlBjgD4ijNOCJiTE1HXJrUpmgAAQXdyLipplDwGOQLgKwonAAAQthjkCICvKJwAAEDYYpAjAL6icAIAAGGNQY4A+ILBIQAAQNjzZSAJAOGNM04AAACyHkgCQHjjjBMQYAWFRuuyD2jfoWNKiosm+QIAgo7cBFQchRMQQMu25ihj6XavmymmxEdr6pDW9JEHAAQFuQkIDLrqAQGybGuObp2/qdgd6PfmHtOt8zdp2dacIEUGAAhX5CYgcCicgAAoKDTKWLpdpoTXiqZlLN2ugsKS5gAAIPDITUBgUTgBAbAu+0Cxo3knM5Jyco9pXfaBygsKABDWyE1AYFE4AQGw71Dpiak88wEAUFHkJiCwKJyAAEiKiw7ofAAAVBS5CQgsCicgALqlJSglPlqlDezq0okRjLqlJVRmWACAMEZuAgKLwgkIgIhqLk0d0lqSiiWooudTh7TmnhkAgEpDbgICi8IJCJCBbVM0e1RnJdWK8pqeHB+t2aM6c68MAEClIzcBgcMNcIEAGtg2Rec1q6N26cslSfPGdtX5zetyNA8AEDTkJiAwKJyAADs5EXVLSyAxAQBsUVBotC77gPYdOqakuOgycw65Cag4CicAAACHWbY1RxlLt3vdpyklPlpTh7Sm+x1gE65xAgAAcJBlW3N06/xNxW5uuzf3mG6dv0nLtuYEKTKgaqNwAgAAcIiCQqOMpdtlSnitaFrG0u0qKCxpDgAVQeEEAADgEOuyDxQ703QyIykn95jWZR+ovKCAMEHhBAAA4BD7DpVeNJVnPgC+o3ACAABwiKS46IDOB8B3FE4AAAAO0S0tQSnx0SptMHGXToyu1y0toTLDAsKCowqnadOmqWvXroqLi1NSUpIuvfRSffPNN8EOy3EKCo3Wfrtf72b9qLXf7ucCUgCoAHJTYJCbfBNRzaWpQ1pLUrHiqej51CGtuU8TYANH3cdp9erVuv3229W1a1fl5+frwQcfVP/+/bV9+3bVrFkz2OE5Avd9AIDAIjdVHLnJPwPbpmj2qM6aumSbfj6Y55mezGcG2MpRhdOyZcu8ns+dO1dJSUnauHGjLrjgghLfk5eXp7y8/+1UDh48KElyu91yu932BRsgRTEGItaPtv2sO9/YUmwI06L7Pjx7dQcNaFOv3Mt3u/O9/h2oz9d7uW65XYE5Cum0eIuWd/L/Qx3x2sup8VY14Zib/GG1nVZubip7n1z+ecvOIXbE0PfMOup257nq/NhKSdJLozupR7M6iqjmKjEWf3OT0/Yv/qBtzmRX2/xZnqMKp1Pl5uZKkhISSu/HO23aNGVkZBSbvnLlSsXGxtoWW6BlZmZW6P2FRsrYFPHfxOR9+t78978PvZMl9/cFKu/Z/bwCqWiTWrFihaIiyhtt6cv96KPltizXCfGerKLbQ2UjXns5Jd6jR48GO4RKEU65yR8lbaeVnZus9snlndcqh1RGDAe+Wa+PdgVmuSdzyv6lPGibMwW6bf7kJpcxxpGdiI0xuuSSS/Tbb7/pk08+KXW+ko7qNWzYUDk5OUpMTKyMUCvE7XYrMzNT/fr1U2RkZLmX80X2AY16ZYPlfPPHddHZ5byg9OjxfHV4ZIUkacMDFyi+ZmBG9Dl5uVum9FFsjcDU+06LVwrc9lBZiNdeTot3//79SklJUW5urmrVqhXscGwRLrnJH2Vtp5Wdm6z2yeWd1yqHVEYMgZxXct7+xR+0zZnsatvBgwdVp04dn3KTY8843XHHHfryyy/16aefljlfVFSUoqKiik2PjIx01AZV0Xj3H823num/85X370Sa/x0OjIysHrDP13u5kYqMDMxm67R4vf5GmG2/lY147eGEGCsq3HKTP0pqW+XnprL3yeWft+wcUjkxBG5er/eF2TZZVdA2/5bnK0cWTnfeeaeWLFmiNWvWqEGDBsEOxxG474PzFRQafZF9QBt/dSkx+4C6N0ti1CQghJCb/Educr6CQqN12Qe079AxJcWdGAad3ISqylGFkzFGd955pxYtWqRVq1YpLS0t2CE5RtF9H/bmHit2Aa50omd5Mvd9CFneI05F6LWdGxhxCggR5KbyIzc5G6MhItw46j5Ot99+u+bPn68FCxYoLi5Oe/fu1d69e/XHH38EO7SQx30fnGvZ1hzdOn+TV2KS/jfi1LKtOUGKDIBEbqoIcpNzkZsQjhxVOM2ePVu5ubnq1auXUlJSPI8333wz2KE5QtF9H5JqeferT46P1uxRnTk6FIIKCo0ylm4v8Uhs0bSMpdu5USQQROSmiiE3OQ+5CeHKcV31UDED26bovGZ11C59uSRp3tiuOr95XY7mhah12QeKHc07mZGUk3tM67IPqPsZVWskLsApyE0VR25yFnITwpWjzjghME5ORFzEGdr2HSo9MZVnPgAIVeQm5yA3IVxROAEhjBGnAAChhtyEcEXhFMJOHn76i+wD9BUOQ0UjTpV23NWlEyMYMeIUgMpSUGi09tv9ejfrR639dn9QclMoxBDOyE0IV466ximcMPw0pP+NOHXr/E1ySV4X4jLiFIDKFgrDT4dCDOGO3IRwxRmnEMQQnzgZI04BCAWhkJtCIQacQG5COOKMU4ixGuLTpRNDfPZrncyRnDBy6ohTL43upN6tUgKyDXDXdwBWQiE3hUIM8GbnaIjkJoQiCqcQwxCfKM3JCaNrk9oBSSB0eQHgi1DITaEQA4qzYzREchNCFV31QgxDfKKy0OUFgK9CITeFQgzhIpiDU5GbEMo44xRiGOITlYEuLwD8EQq5KRRiCAfBHJyK3IRQxxmnAAjksKgM8YnK4E+XFwDOVNVyUyjEUNUF+2wPuQmhjjNOFRTofrgM8YnKQJcXoGqrirkpFGKoykLhbA+5CaGOM04VYNeRGYb4hN0qo8sLN3AGgqMq56ZQiKGqCoWzPeQmhDrOOJWT3Udm7Bx+Gijq8rI391iJ27BLJ36IlLfLCzdwBoKjsnNTIIefdlIMVVEonO0hNyHUhe0Zpw0//FahowyVcWTGjuGnAel/XV4kFbteoKJdXoLdRx5wMqflpmDdWycUYqhqQmHwDXITQl3YFk43/mOzekxfUe4vSigcmQEqwo4uL1ZHu6UTR7sr8sMwkBe8A6GmquUmukU5R6gMvkFuQigL6656RUcZyvNFDIUjM0BFBbrLi903qOSmiPYrKDRal31A+w4dU1JcNEfzg6Cq5Ca6RTlLKA2+QW7CqU4+CJOYfUDdmyUFJTeF7RknqWJHGULlyAxQUYHs8mLn0W67u1k47ci4HfEu25qjHtNXaMTfP9ddb2RpxN8/r9DZD5RPVchNdItyJrsH3/DnrAy56QSnncmyI96i3DTqlQ16bWeERr2yIWi5KazPOEnlP8oQSkdmgFBh19Fuuy94t/PIuB1ncOyItyj5n/oZV+TsB8rPybkpFIa1RvnZNThVMM/KVI3cdIJzclNg4g213BTWZ5xOVp6jDAyLCniz62i3nRe823m00I4zOHbEWxn9/1E+TsxNoTCsNSom0INTBfsMJLmp+LLJTeVD4fRf5e3vPbBtij6e2NPzfN7Yrvr0/j4UTQhLdo2IZFc3Czt3yk5KIvzQDV1OzE2hNkAFgisUfvySm/6H3FQxYV84BaK/N8OiAv9jx9Fuu7pZ2LVTdloS4Ydu6Kns3BTI6xJCaYAKBF+o/PglN5GbAiGsr3HiWiTAHoHuI2/XTRHt2inbNYKTXfHyQze0VHZuCvR1CXbfxBTOUhk/fn29XofcRG6qqLA+48S1SIB9AtlH3q5uFnbtlJ2WREJlJDacUJm5yY5uO3bexBTOY/ePX3+v1yE3BW4+f+OoCrkpbAunZ69uz7VIgIPY0c3Crp2y05IIP3RDh1VuCmSXOjuvowj2ABUIHXb++A2FocDJTeGVm8K2cOrc6HR+BAAOE+gL3u3aKTsxifBDNzSUlZsCPRKW3deenPp9fWl0Jw5YhiG79lt2Dzrhz/eN3BRaucnOe1+FbeEEwJkCPRiLHQVDqCURf5bNKKGhyY4j65Vx7Umgh7WGM9mx3wq1ocADPRhLeQuGsm6MHmq5ydcCx5+DMHbfyD2sB4cAAMmeGz4WJZGpS7bp54N5nunJAbh5oV03qJQYJTQU2XWTzVC88BpV16n7rXlju+r85nXLvY8J1lDglXlTW38+M19vjF6e3FTewTd8j7fsz0Hy7SBMZdwslzNOACB7jozbeQaHI/nhw64j66F44TWqtkAemHHaUOCSfWey/F2uP7mpIoNvBCpeX1TW/cIonADARpzBQUXZdWQ9FC+8BnxlV+HvtJvalne5Va3Aqaz7hVE4AQAQwuzsUsegIHAqpw0FbtcPe26We0Jl3SyXwgkAgBBmd5c6BgWBUzlpKHC7ftiHws1y/eG0e0mdisIJAIAQVhld6uhSCqdyylDgdv2w52a5J1TWNZsUTgAAhDi61AGlc8JtKuz6Yc/Nck+orGs2KZwAAHAAutQBlccpZ7K4We7/VMYBJgonAAAcgi51QOVxwpksu5br1ALH7gNM3AAXAAAAqASBvhFwact12o3cA/U5SPYeYKJwAgAAACqJXT/s7bqRuxMLHLvQVQ8AAABAiZxY4NiFwgkAAAAALFA4AQAAAIAFRxZOL7zwgtLS0hQdHa2zzjpLn3zySbBDAgCEOXITAFRtjiuc3nzzTU2YMEEPPvigNm/erPPPP1+DBg3S7t27gx0aACBMkZsAoOpz3Kh6zzzzjK6//nrdcMMNkqSZM2fqo48+0uzZszVt2jSfl1N47A8VHj0akJgKj+crKv/EMI2FR4+qMD8wH6vXcv/4Q4UuE/jlEu+JfxPviX8T74l/E68kyZjALDMcVFZu8md7Crl5LbbTkIuXtp34N20LnXhp24l/+9G2QOcxl3FQZjx+/LhiY2P19ttv67LLLvNMv+uuu5SVlaXVq1cXe09eXp7y8v439nxubq4aNWqkFU2b6rRqEZUSNwA4UdLy5TqtVlzAlnfgwAG1aNFCv//+u+Lj4wO23GAjNwFAaPIljx06dEhpaWk+5SZHnXH69ddfVVBQoHr16nlNr1evnvbu3Vvie6ZNm6aMjIxi0/t8950tMQJAldE0zZbF7t+/v0oVTuQmAAhRfuSxQ4cOVa3CqYjL5T1+vDGm2LQikyZN0sSJEz3Pf//9dzVu3Fi7d+92ROI+ePCgGjZsqD179qhWrVrBDscS8dqLeO1FvPYqOquSkJAQ7FBsEU65yR9O2079QducibY5k11tM8bo0KFDSk1NtZzXUYVTnTp1FBERUewI3r59+4od6SsSFRWlqKioYtPj4+MdtUHVqlWLeG1EvPYiXns5Ld5q1Rw3LlGZwjk3+cNp26k/aJsz0TZnsqNtvh6wclT2qlGjhs466yxlZmZ6Tc/MzNS5554bpKgAAOGM3AQA4cFRZ5wkaeLEiRo9erS6dOmi7t2768UXX9Tu3bt1yy23BDs0AECYIjcBQNXnuMJp+PDh2r9/v/785z8rJydHbdu21QcffKDGjRv79P6oqChNnTq1xC4SoYh47UW89iJeexFv6Ai33OQP2uZMtM2ZaJu9HDUcOQAAAAAEg6OucQIAAACAYKBwAgAAAAALFE4AAAAAYIHCCQAAAAAshFXh9MILLygtLU3R0dE666yz9MknnwQ7pFJNmzZNXbt2VVxcnJKSknTppZfqm2++CXZYPpk2bZpcLpcmTJgQ7FDK9OOPP2rUqFFKTExUbGysOnbsqI0bNwY7rBLl5+froYceUlpammJiYtS0aVP9+c9/VmFhYbBDkyStWbNGQ4YMUWpqqlwulxYvXuz1ujFG6enpSk1NVUxMjHr16qVt27YFJ1iVHa/b7db999+vdu3aqWbNmkpNTdW1116rn376KSTjPdXNN98sl8ulmTNnVlp8p/Il3q+//lpDhw5VfHy84uLidM4552j37t2VH2wIcFJu8lV6erpcLpfXIzk5OdhhlZvT9nH+sGrbddddV2xdnnPOOcEJ1g++/I5y6nrzpW1OXW+zZ89W+/btPTe57d69uz788EPP68FeZ2FTOL355puaMGGCHnzwQW3evFnnn3++Bg0aFLKJevXq1br99tv1+eefKzMzU/n5+erfv7+OHDkS7NDKtH79er344otq3759sEMp02+//abzzjtPkZGR+vDDD7V9+3Y9/fTTOv3004MdWommT5+uOXPm6LnnntPXX3+tGTNm6Mknn9Szzz4b7NAkSUeOHFGHDh303HPPlfj6jBkz9Mwzz+i5557T+vXrlZycrH79+unQoUOVHOkJZcV79OhRbdq0SVOmTNGmTZv0zjvvaMeOHRo6dGgQIj3B6vMtsnjxYn3xxRdKTU2tpMhKZhXvt99+qx49eqhly5ZatWqVtmzZoilTpig6OrqSIw0+p+Umf7Rp00Y5OTmex1dffRXskMrNafs4f/iyfxk4cKDXuvzggw8qMcLy8eV3lFPXm6+/EZ243ho0aKAnnnhCGzZs0IYNG9SnTx9dcsklnuIo6OvMhIlu3bqZW265xWtay5YtzQMPPBCkiPyzb98+I8msXr062KGU6tChQ6Z58+YmMzPT9OzZ09x1113BDqlU999/v+nRo0eww/DZRRddZMaNG+c1bdiwYWbUqFFBiqh0ksyiRYs8zwsLC01ycrJ54oknPNOOHTtm4uPjzZw5c4IQobdT4y3JunXrjCTzww8/VE5QZSgt3v/85z+mfv36ZuvWraZx48bmL3/5S6XHVpKS4h0+fHhIbrvB4PTcVJqpU6eaDh06BDsMWzhtH+ePkr6vY8aMMZdccklQ4gmkU39HVaX1VtJvxKqy3owxpnbt2uall14KiXUWFmecjh8/ro0bN6p///5e0/v376/PPvssSFH5Jzc3V5KUkJAQ5EhKd/vtt+uiiy7ShRdeGOxQLC1ZskRdunTRlVdeqaSkJHXq1El///vfgx1WqXr06KF///vf2rFjhyRpy5Yt+vTTTzV48OAgR2YtOztbe/fu9fr+RUVFqWfPno76/rlcrpA9I1lYWKjRo0fr3nvvVZs2bYIdTpkKCwv1/vvvq0WLFhowYICSkpJ09tlnl9n9sKqqCrmpLDt37lRqaqrS0tJ09dVX67vvvgt2SLaoCvs4K6tWrVJSUpJatGihG2+8Ufv27Qt2SH479XdUVVpvpf1GdPp6Kygo0BtvvKEjR46oe/fuIbHOwqJw+vXXX1VQUKB69ep5Ta9Xr5727t0bpKh8Z4zRxIkT1aNHD7Vt2zbY4ZTojTfe0KZNmzRt2rRgh+KT7777TrNnz1bz5s310Ucf6ZZbbtH48eP12muvBTu0Et1///0aMWKEWrZsqcjISHXq1EkTJkzQiBEjgh2apaLvmFO/f8eOHdMDDzygkSNHqlatWsEOp0TTp09X9erVNX78+GCHYmnfvn06fPiwnnjiCQ0cOFDLly/XZZddpmHDhmn16tXBDq9SOT03leXss8/Wa6+9po8++kh///vftXfvXp177rnav39/sEMLOKfv46wMGjRIr7/+ulasWKGnn35a69evV58+fZSXlxfs0HxW0u+oqrLeSvuN6OT19tVXX+m0005TVFSUbrnlFi1atEitW7cOiXVWvVL+SohwuVxez40xxaaFojvuuENffvmlPv3002CHUqI9e/borrvu0vLlyx1zjUJhYaG6dOmixx9/XJLUqVMnbdu2TbNnz9a1114b5OiKe/PNNzV//nwtWLBAbdq0UVZWliZMmKDU1FSNGTMm2OH5xInfP7fbrauvvlqFhYV64YUXgh1OiTZu3KhZs2Zp06ZNIf95SvIMaHLJJZfo7rvvliR17NhRn332mebMmaOePXsGM7ygcOJ3w8qgQYM8/27Xrp26d++uM844Q6+++qomTpwYxMjsUxXXoyQNHz7c8++2bduqS5cuaty4sd5//30NGzYsiJH5rqzfUU5fb6W1zcnr7cwzz1RWVpZ+//13/etf/9KYMWO8DqwFc52FxRmnOnXqKCIiolg1um/fvmJVa6i58847tWTJEq1cuVINGjQIdjgl2rhxo/bt26ezzjpL1atXV/Xq1bV69Wr99a9/VfXq1VVQUBDsEItJSUlR69atvaa1atUqZC/Ivvfee/XAAw/o6quvVrt27TR69GjdfffdjjjDVzSSltO+f263W1dddZWys7OVmZkZsmebPvnkE+3bt0+NGjXyfP9++OEH3XPPPWrSpEmwwyumTp06ql69uqO+f3Zxcm7yV82aNdWuXTvt3Lkz2KEEnFP3ceWVkpKixo0bO2ZdlvY7qiqsN39+IzppvdWoUUPNmjVTly5dNG3aNHXo0EGzZs0KiXUWFoVTjRo1dNZZZykzM9NremZmps4999wgRVU2Y4zuuOMOvfPOO1qxYoXS0tKCHVKp+vbtq6+++kpZWVmeR5cuXXTNNdcoKytLERERwQ6xmPPOO6/Y0J07duxQ48aNgxRR2Y4ePapq1by/rhERESEzHHlZ0tLSlJyc7PX9O378uFavXh2y37+iomnnzp36+OOPlZiYGOyQSjV69Gh9+eWXXt+/1NRU3Xvvvfroo4+CHV4xNWrUUNeuXR31/bOLE3NTeeXl5enrr79WSkpKsEMJOCfu4ypi//792rNnT8ivS6vfUU5eb+X5jeiU9VYSY4zy8vJCY51VyhAUIeCNN94wkZGR5uWXXzbbt283EyZMMDVr1jTff/99sEMr0a233mri4+PNqlWrTE5Ojudx9OjRYIfmk1AfVW/dunWmevXq5rHHHjM7d+40r7/+uomNjTXz588PdmglGjNmjKlfv7557733THZ2tnnnnXdMnTp1zH333Rfs0IwxJ0ZU3Lx5s9m8ebORZJ555hmzefNmzyh0TzzxhImPjzfvvPOO+eqrr8yIESNMSkqKOXjwYMjF63a7zdChQ02DBg1MVlaW1/cvLy8v5OItSbBH1bOK95133jGRkZHmxRdfNDt37jTPPvusiYiIMJ988knQYg4Wp+UmX91zzz1m1apV5rvvvjOff/65ufjii01cXJxj2+W0fZw/ymrboUOHzD333GM+++wzk52dbVauXGm6d+9u6tevH/Jt8+V3lFPXm1XbnLzeJk2aZNasWWOys7PNl19+aSZPnmyqVatmli9fbowJ/joLm8LJGGOef/5507hxY1OjRg3TuXPnkB7aW1KJj7lz5wY7NJ+EeuFkjDFLly41bdu2NVFRUaZly5bmxRdfDHZIpTp48KC56667TKNGjUx0dLRp2rSpefDBB4P2Q/5UK1euLHF7HTNmjDHmxLCvU6dONcnJySYqKspccMEF5quvvgrJeLOzs0v9/q1cuTLk4i1JsAsnX+J9+eWXTbNmzUx0dLTp0KGDWbx4cdDiDTYn5SZfDR8+3KSkpJjIyEiTmppqhg0bZrZt2xbssMrNafs4f5TVtqNHj5r+/fubunXrmsjISNOoUSMzZswYs3v37mCHbcmX31FOXW9WbXPyehs3bpxnf1i3bl3Tt29fT9FkTPDXmcsYYwJz7goAAAAAqqawuMYJAAAAACqCwgkAAAAALFA4AQAAAIAFCicAAAAAsEDhBAAAAAAWKJwAAAAAwAKFEwAAAABYoHACAAAAAAsUTgAAAABggcIJAAAAACxQOAEO8OmnnyoyMlJ5eXmeadnZ2XK5XPrhhx+CGBkAIFyRmxBuKJwAB8jKylKrVq0UFRXlNe30009X48aNgxgZACBckZsQbiicAAfYsmWLOnXq5DUtKytLHTp0CFJEAIBwR25CuKFwAhwgKytLHTt29Jq2efNmkhMAIGjITQg3FE5AiCsoKNC2bduKHdXbtGlTsYQFAEBlIDchHFE4ASHum2++0R9//KHU1FTPtLVr1+rHH3/kqB4AICjITQhHFE5AiMvKypIkPfvss9q5c6c+/PBDXXvttZLkNZIRAACVhdyEcEThBIS4rKws9evXT9nZ2Wrbtq0mT56sJ554QrVq1dLzzz8f7PAAAGGI3IRw5DLGmGAHAaB0AwYMUOfOnTVt2rRghwIAgCRyE8ITZ5yAELdlyxa1b98+2GEAAOBBbkI4onACQtjevXv1888/k5wAACGD3IRwRVc9AAAAALDAGScAAAAAsEDhBAAAAAAWKJwAAAAAwAKFEwAAAABYoHACAAAAAAsUTgAAAABggcIJAAAAACxQOAEAAACABQonAAAAALBA4QQAAAAAFv4/4/z9uyaXT8gAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "N = 16 # length of the signal\n", "M = 32 # number of points for interpolated DFT\n", "Om0 = 5.33 * (2 * np.pi / N) # frequency of exponential signal\n", "\n", "\n", "# periodic sinc function\n", "def psinc(x, N):\n", " x = np.asanyarray(x)\n", " y = np.where(x == 0, 1.0e-20, x)\n", " return 1 / N * np.sin(N / 2 * y) / np.sin(1 / 2 * y)\n", "\n", "\n", "# DFT of the exponential signal\n", "xN = np.exp(1j * Om0 * np.arange(N))\n", "XN = np.fft.fft(xN)\n", "\n", "# interpolation of DFT coefficients\n", "XM = np.asarray(np.zeros(M), dtype=complex)\n", "for mu in np.arange(M):\n", " Omd = 2 * np.pi / M * mu - 2 * np.pi * np.arange(N) / N\n", " interpolator = psinc(Omd, N) * np.exp(-1j * Omd * (N - 1) / 2)\n", " XM[mu] = np.sum(XN * interpolator)\n", "\n", "# plot spectra\n", "plt.figure(figsize=(10, 6))\n", "\n", "plt.subplot(121)\n", "plt.stem(np.arange(N), np.abs(XN))\n", "plt.title(\n", " r\"$\\mathrm{{DFT}}_{{{0}}}$ of $e^{{j \\Omega_0 k}}$ without zero-padding\".format(N)\n", ")\n", "plt.xlabel(r\"$\\mu$\")\n", "plt.ylabel(r\"$|X_N[\\mu]|$\")\n", "plt.axis([0, N, 0, 18])\n", "plt.grid()\n", "\n", "plt.subplot(122)\n", "plt.stem(np.arange(M), np.abs(XM))\n", "plt.title(r\"Interpolated spectrum\")\n", "plt.xlabel(r\"$\\mu$\")\n", "plt.ylabel(r\"$|X_M[\\mu]|$\")\n", "plt.axis([0, M, 0, 18])\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exercise**\n", "\n", "* Compare the interpolated spectrum to the spectrum with zero padding from the first example.\n", "* Estimate the frequency $\\Omega_0$ of the exponential signal from the interpolated spectrum. How could you further increase the accuracy of your estimate?\n", "\n", "Solution: The interpolated spectrum is the same as the spectrum with zero padding from the first example. The estimated frequency from the interpolated spectrum is $\\Omega_0=\\frac{2\\pi}{M}\\mu=\\frac{2\\pi}{32}\\cdot11$. A better estimate can be obtained by increasing the number of points for the interpolated DFT or by further zero-padding of the time domain signal." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Example - Estimation of Frequency and Amplitude of a Harmonic Signal\n", "\n", "The estimation of the normalized frequency $\\Omega_0$ and amplitude $A$ of a single exponential signal $x_N[k] = A \\cdot e^{j \\Omega_0 k}$ by the DFT of the zero-padded signal (or interpolated DFT) is illustrated in the following example. The frequency is estimated from the DFT of the zero-padded signal by finding the maximum in the magnitude spectrum\n", "\n", "\\begin{equation}\n", "\\hat{\\mu}_0 = \\underset{\\mu}{\\mathrm{argmax}} \\{ |X_M[\\mu]| \\}\n", "\\end{equation}\n", "\n", "The amplitude is estimated by taking the magnitude at the maximum $\\hat{A} = | X_M[\\hat{\\mu}_0] |$. \n", "\n", "First a function is defined which estimates the frequency for a given number of zeros appended to the signal before calculating the DFT. Without loss of generality is is assumed that $A=1$." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "N = 128 # length of the signal\n", "Om0 = 5.33 * (2 * np.pi / N) # frequency of exponential signal\n", "\n", "# generate harmonic signal\n", "k = np.arange(N)\n", "x = np.exp(1j * Om0 * np.arange(N))\n", "\n", "\n", "def estimate_frequency_amplitude(x, P):\n", " \"\"\"Estimate frequency and amplitude of an exponential signal.\"\"\"\n", "\n", " # perform zero-padding and DFT\n", " xM = np.concatenate((x, np.zeros(P)))\n", " XM = np.fft.fft(xM)\n", "\n", " # estimate frequency/amplitude of harmonic signal\n", " mu_max = np.argmax(abs(XM))\n", " amplitude = 1 / N * abs(XM[mu_max])\n", "\n", " # print results\n", " Om = np.fft.fftfreq(N + P, 1 / (2 * np.pi))\n", " print(\n", " \"Normalized frequency of signal: {0:1.4f} (real) / {1:1.4f} (estimated) / {2:1.4f} (absolute error)\".format(\n", " Om0, Om[mu_max], abs(Om0 - Om[mu_max])\n", " )\n", " )\n", " print(\n", " \"Amplitude of signal: {0:1.4f} (real) / {1:1.4f} (estimated) / {2:2.2f} dB (magnitude error)\".format(\n", " 1, amplitude, 20 * np.log10(abs(1 / amplitude))\n", " )\n", " )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First the estimation is performed without zero-padding" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Normalized frequency of signal: 0.2616 (real) / 0.2454 (estimated) / 0.0162 (absolute error)\n", "Amplitude of signal: 1.0000 (real) / 0.8303 (estimated) / 1.62 dB (magnitude error)\n" ] } ], "source": [ "estimate_frequency_amplitude(x, 0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Then the signal is zero-padded to a total length of eight times its original length" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Normalized frequency of signal: 0.2616 (real) / 0.2638 (estimated) / 0.0022 (absolute error)\n", "Amplitude of signal: 1.0000 (real) / 0.9967 (estimated) / 0.03 dB (magnitude error)\n" ] } ], "source": [ "estimate_frequency_amplitude(x, 7 * N)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exercise**\n", "\n", "* What is the maximum error that can occur when estimating the frequency from the maximum of the (zero-padded) magnitude spectrum?\n", "\n", "Solution: The maximum absolute error occurs if the maximum in the DTFT of the signal is in between two adjacent bins $\\mu$ of the DFT. Since the DTFT is sampled at $\\Omega = \\frac{2 \\pi}{M}$ to derive the DFT, the maximum absolute error is given by $\\frac{\\pi}{M}$ where $M$ denotes the length of the zero-padded signal/DFT." ] }, { "cell_type": "markdown", "metadata": { "nbsphinx": "hidden" }, "source": [ "**Copyright**\n", "\n", "This notebook is provided as [Open Educational Resource](https://en.wikipedia.org/wiki/Open_educational_resources). Feel free to use the notebook for your own purposes. The text is licensed under [Creative Commons Attribution 4.0](https://creativecommons.org/licenses/by/4.0/), the code of the IPython examples under the [MIT license](https://opensource.org/licenses/MIT). Please attribute the work as follows: *Sascha Spors, Digital Signal Processing - Lecture notes featuring computational examples*." ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.13" } }, "nbformat": 4, "nbformat_minor": 1 }