{ "cells": [ { "cell_type": "markdown", "id": "a1b2c3d4e5f60001", "metadata": {}, "source": "# Time Series - Gaps and epochs" }, { "cell_type": "markdown", "id": "a1b2c3d4e5f60002", "metadata": {}, "source": [ "Real time series are rarely perfect. This tutorial builds a synthetic series with two kinds of gaps -- small scattered dropouts and larger block outages -- and walks through how `plans` represents, inspects, and fills them.\n", "\n", "Covered here:\n", "\n", "- Injecting realistic gaps into a synthetic series\n", "- The `.gapsize` attribute and what counts as a \"small\" gap\n", "- **Epochs**: continuous stretches of data separated by gaps too large to bridge\n", "- Visualizing epochs with `.view_epochs()`\n", "- Filling small gaps with `.interpolate_gaps()`, including the different interpolation methods and the `is_interpolation` flag column\n", "\n", "Gap-filling only ever applies *within* an epoch -- bridging the gap *between* epochs is a different, harder problem (it usually needs an external predictor or reference series) and is out of scope here." ] }, { "cell_type": "markdown", "id": "a1b2c3d4e5f60003", "metadata": {}, "source": [ "## Notebook setup\n", "\n", "For users running this tutorial as a Jupyter Notebook, this cell must be executed first:" ] }, { "cell_type": "code", "id": "a1b2c3d4e5f60004", "metadata": { "ExecuteTime": { "end_time": "2026-08-25T19:24:47.721789Z", "start_time": "2026-08-25T19:24:46.767098Z" } }, "source": [ "import sys\n", "from pathlib import Path\n", "import pprint\n", "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "\n", "# Install `plans` in `google.colab`.\n", "# Use `pip install plans` for other environments.\n", "\n", "if \"google.colab\" in sys.modules:\n", " import os\n", " os.system(f\"{sys.executable} -m pip install -q plans\")\n", "\n", "# This avoids warnings related to uninstalled fonts\n", "import logging\n", "logging.getLogger('matplotlib.font_manager').setLevel(logging.ERROR)\n", "\n", "# define output folder\n", "OUTPUT_DIR = Path(\"outputs/time-series\")\n", "OUTPUT_DIR.mkdir(parents=True, exist_ok=True)\n", "print(f\"Outputs will be saved to: ./{OUTPUT_DIR}\")\n", "\n", "# fixed seed so the injected gaps are reproducible\n", "RNG_SEED = 42\n", "np.random.seed(RNG_SEED)" ], "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Outputs will be saved to: ./outputs\\time-series\n" ] } ], "execution_count": 1 }, { "cell_type": "markdown", "id": "a1b2c3d4e5f60006", "metadata": {}, "source": [ "## Create a perfect synthetic series\n", "\n", "Same starting point as the upscaling tutorial: a Trend-Seasonality-Noise archetype series." ] }, { "cell_type": "code", "id": "a1b2c3d4e5f60007", "metadata": { "ExecuteTime": { "end_time": "2026-08-25T19:24:48.075368Z", "start_time": "2026-08-25T19:24:47.730565Z" } }, "source": [ "from plans.datasets import TimeSeries\n", "\n", "df_perfect = TimeSeries.make_synthetic_tsn(\n", " start=\"2020-01-01\",\n", " end=\"2021-01-01\",\n", " base=100,\n", " freq=\"1h\",\n", " trend=0.001,\n", " noise_sd=4.0,\n", " amplitude=50,\n", " seasonal_period=\"YS\",\n", " minor_amplitude=20,\n", " minor_seasonal_period=\"D\"\n", ")\n", "print(f\"Rows: {len(df_perfect)}\")\n", "df_perfect.head()" ], "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Rows: 8785\n" ] }, { "data": { "text/plain": [ " datetime level\n", "0 2020-01-01 00:00:00 101.986857\n", "1 2020-01-01 01:00:00 104.660089\n", "2 2020-01-01 02:00:00 112.664284\n", "3 2020-01-01 03:00:00 120.344550\n", "4 2020-01-01 04:00:00 116.530954" ], "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
datetimelevel
02020-01-01 00:00:00101.986857
12020-01-01 01:00:00104.660089
22020-01-01 02:00:00112.664284
32020-01-01 03:00:00120.344550
42020-01-01 04:00:00116.530954
\n", "
" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "execution_count": 2 }, { "cell_type": "markdown", "id": "a1b2c3d4e5f60008", "metadata": {}, "source": [ "## Inject gaps\n", "\n", "Three kinds of imperfection, applied on a copy of the perfect data:\n", "\n", "1. **Scattered small gaps** -- each row has an independent, small probability of being null. Mimics random sensor dropouts or bad readings. These are small enough to interpolate across.\n", "2. **Two large block gaps** -- contiguous runs of nulls, long enough to represent real outages (e.g. equipment failure, maintenance). These are what split the record into separate **epochs**.\n", "\n", "Two block gaps means the series ends up with **three epochs**: before the first outage, between the two outages, and after the second." ] }, { "cell_type": "code", "id": "a1b2c3d4e5f60009", "metadata": { "ExecuteTime": { "end_time": "2026-08-25T19:24:48.234283Z", "start_time": "2026-08-25T19:24:48.085974Z" } }, "source": [ "df_gappy = df_perfect.copy()\n", "n = len(df_gappy)\n", "\n", "# -- scattered small gaps (~3% of records, independently) --\n", "SMALL_GAP_FRACTION = 0.03\n", "mask_small = np.random.rand(n) < SMALL_GAP_FRACTION\n", "df_gappy.loc[mask_small, \"level\"] = np.nan\n", "print(f\"Scattered small gaps injected: {mask_small.sum()} records\")\n", "\n", "# -- large block gap #1 (~10 days), placed near the middle --\n", "BLOCK_1_HOURS = 24 * 10\n", "block_1_start = n // 2\n", "block_1_end = block_1_start + BLOCK_1_HOURS\n", "df_gappy.loc[block_1_start:block_1_end, \"level\"] = np.nan\n", "print(f\"Block gap #1 injected: rows {block_1_start} to {block_1_end} \"\n", " f\"({BLOCK_1_HOURS} hours / {BLOCK_1_HOURS / 24:.0f} days)\")\n", "\n", "# -- large block gap #2 (~8 days), placed near the end --\n", "BLOCK_2_HOURS = 24 * 8\n", "block_2_start = 3 * n // 4\n", "block_2_end = block_2_start + BLOCK_2_HOURS\n", "df_gappy.loc[block_2_start:block_2_end, \"level\"] = np.nan\n", "print(f\"Block gap #2 injected: rows {block_2_start} to {block_2_end} \"\n", " f\"({BLOCK_2_HOURS} hours / {BLOCK_2_HOURS / 24:.0f} days)\")\n", "\n", "print(f\"\\nTotal null records: {df_gappy['level'].isna().sum()} / {n} \"\n", " f\"({100 * df_gappy['level'].isna().sum() / n:.1f}%)\")\n", "\n", "fig, ax = plt.subplots(figsize=(6, 3))\n", "ax.plot(df_gappy[\"datetime\"], df_gappy[\"level\"], color=\"orange\", linewidth=0.8)\n", "ax.set_title(\"Imperfect series: scattered small gaps + two large block gaps\")\n", "ax.set_xlabel(\"datetime\")\n", "ax.set_ylabel(\"level\")\n", "plt.tight_layout()\n", "plt.show()" ], "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Scattered small gaps injected: 262 records\n", "Block gap #1 injected: rows 4392 to 4632 (240 hours / 10 days)\n", "Block gap #2 injected: rows 6588 to 6780 (192 hours / 8 days)\n", "\n", "Total null records: 678 / 8785 (7.7%)\n" ] }, { "data": { "text/plain": [ "
" ], "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkwAAAEiCAYAAAALco10AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAZ+NJREFUeJztnQeYFEXax/+7wJJZWHKOkjMioCBREZV8BhAxcIAeGOBM3GcCPcEz62G6U1APRFAERAWUjOQcRTKS88KSl+3v+ddsz/TksBO6Z97f88zuTHd1d3V1d9Xbb6okTdM0CIIgCIIgCF5J9r5KEARBEARBICIwCYIgCIIg+EEEJkEQBEEQBD+IwCQIgiAIguAHEZgEQRAEQRD8IAKTIAiCIAiCH0RgEgRBEARB8IMITIIgCIIgCH4QgUkQBEEQBMEPIjBZnK+++gq1a9dGnjx5ULRoUSQK7dq1Ux/BGixYsABJSUnqv5Xr/OCDD6JKlSoxrZcQPLyOL7/8MqwI+7n69ev7Lbd37151nuPHj49IPcaPH6/2v3r1aiQqCSswxcPF//3331UHXr16dfznP//Bp59+GvZjLF26VHU0Z86cCfu+heA5dOiQuh7r1693Wzdx4kS8++67MamXIBj56aefLCugCII3ElZgigf45puVlYX33ntPCU533313RASmkSNHmk5gmjNnjvokosDE6yECk2B2gYn3qSDEEyIwWZDz58+r/8eOHVP/E8kUd+HCBfU/JSVFfYTIQoH80qVLsa6GECMiaeKxev8rJB4iMBmglqZQoULYv38/7rzzTvW9fPnyGDt2rFq/adMmdOjQAQULFkTlypXVG70nM9+iRYswePBgFC9eHEWKFEH//v1x+vRpt+P9/PPPaNOmjdpf4cKFcccdd2DLli0e67Rr1y7cfvvtqtx9992n/CheeuklVaZkyZJuNvpA9q2b9aiZ4j7y58+PWrVq4f/+7//UOu7v6aefVt+rVq2qjsEPbeXe2LFjB3r37o0yZcogX758qFChAu69916kp6c7lfvf//6HZs2aqWOmpaWpMn/++adH2/2aNWtw8803o0CBAvjHP/7h1Yfp8uXLqk1q1KiBvHnzomLFinjmmWfUciO//PILWrdurQRNti3PWd+vDu8Btk0gfPDBB6hXr56qX7FixXD99de73RsHDx7EgAEDUK5cOVU3tuejjz6KK1euqPWnTp3CU089hQYNGqg68b7p0qULNmzY4KRRbN68ufr+0EMP2a8H7zu2xY8//oh9+/bZlxt9bQJtG243dOhQTJgwQZ0Ty86aNct+Dg8//DBKly6tlnP9559/7tYeBw4cQI8ePdS9V6pUKQwbNsztON44d+4cnnzySVV3HoPb33LLLVi7dq3bfbFx40a0bdtWtTvP69tvv1XrFy5ciBYtWtjv519//dXpGGyjv/3tb2ody/A5veuuu3ze16EImnx+eL1Zv/bt22Pr1q3qvPhM6wRy3Y3+VN988426V/l8sX27devm9twE+gxGCp6f3mfq9yI/pGnTpujVq5dTeZ471/N66vA8uWzbtm32ZevWrVNtwzZiW3Xs2BHLly8PqY6B3gN6n857iuV5P7I9dXie1apVU/u44YYbsHjx4hz1Tb5gP3jjjTeqY7H/+PjjjwPabt68efaxgH1e9+7dndo10D7KExzXeN5sk+3bt8MX+vPK+rP8q6++inHjxrmNKdOnT1fjlV4Pupy88soruHbtmtfxwV+7BNJHB0LuoLeIc3hR+FBygP7Xv/6lBg4OILzZKEhQWOEDz4tCQahVq1bqIhlhed6Y7DB5E3300UfqAdU7Pd1Z+4EHHkDnzp3x+uuvK80Jy3EgZ8dgHOwyMzNVOa5788031UVnp/Tll1/i+++/V9uxA2nYsGFQ++YNzAeJDuODBg1SyymY/fDDD/jnP/+pzvOPP/7A119/jXfeeQclSpRQ21G48gQfLB6TncBjjz2mOmw+hDNnzlQmvdTUVFWO+37hhReUoPbXv/4Vx48fVzc025z1M2rMTp48qa4HO/x+/fqpwdrbAMXBY8mSJepc6tSpowRc1pvnMG3aNFWOQiOFYbbVqFGj1AO5c+dO/Pbbb07747VlJ6lpms/7hb5jjz/+OP7yl7/giSeeUNoYtuuKFSvQt29fuxmNnQrbgHWjkz7bhQM8rw01Zbt371Z1ZKfN++no0aP45JNPVAfDgZadB8+JdX7xxRfVfnjtCDsLCvYcECms8JwJ74lg2sbYwU6ePFndx7zmvC9Yn5YtW9oFKt4DFMrZwZ49e1YJOeTixYtqIKPAyXZhvXk/cp+B8Mgjj6h24THq1q2rrj/rzQ6eg62xo+Z15H3BNuP9ze98XlkX7oft/8Ybb6hrQ6GCLw5k1apVytTM8uy42Vlze3bAbGs+XzllxIgRqv/o2rWreiYoAPG/q7YukOtuhM8Or8Gzzz6rNMw0wXbq1EmZaDlgBPoMRhK+LPKe54sJr70R3rPsT4wCI5/J5ORkJWzofRi/8x7jvUpYhttSWKKgwT6L7cRrpgvIwRDsPUBhifXhs6drmFie9ynrxZcC7oMvChyQjUJVsM+fJ3i/84WZfWafPn3U80lhhn0HX2K8wZcF9p8U6jge8flkX3vTTTeplxB9LAikj3LlxIkT6mWG15DXgIKNN7gvvjTw3uWzwfH0v//9r+p/XaGQyr5r+PDh6j/7DrY7+xk+z8G2SyB9dMBoCcq4ceM4EmqrVq2yL3vggQfUstdee82+7PTp01r+/Pm1pKQkbdKkSfblv//+uyr70ksvue2zWbNm2pUrV+zL//Wvf6nl06dPV7/PnTunFS1aVBs4cKBTnY4cOaKlpqY6Ldfr9Nxzz7mdA4/NdcePH7cvC2bfN998s1a4cGFt3759TmWzsrLs39944w11jD179vhpUU1bt26dKjtlyhSvZfbu3avlypVL++c//+m0fNOmTVru3Lmdlrdt21bt7+OPP3bbD9fxo/PVV19pycnJ2uLFi53KcVvu47ffflO/33nnHbc284R+bH90795dq1evns8y/fv3V3Uz3muubX3p0iXt2rVrTuvY5nnz5tVGjRplX8Z9sF6811y54447tMqVK7stD7RtCH+z7JYtW5zKDhgwQCtbtqx24sQJp+X33nuvuq8uXLigfr/77rtqH5MnT7aXOX/+vFajRg21fP78+T5aSlP7GjJkSEDXZuLEiW7PI+u+fPly+/LZs2e7tZdeVyPLli1T5b788kv7MtbVtc58Hj21seuzxnu5R48eTstffvlltT/uQyfQ667XpXz58trZs2fty9nOXP7ee+8F/AwGg7d7zR+8hp6eH9aLy7du3ap+z5gxQ51rt27dtHvuucdermHDhlrPnj3tv9mWKSkp2q5du+zLDh06pPov9mOBnIexrw70HtD79NatW2uZmZn25ZcvX9aKFy+uNW/eXLt69ap9+fjx41X5UPomf/f7W2+95XT8xo0ba6VKlbKPNbxvXK+XXubkyZP2ZRs2bFD1Yb8UTB81zjBmHj58WPV71apVU326Px577DE1hvL+1GGd0tLS3MYXT9dm8ODBWoECBdTzEmy7BNJHB4qY5DxArYcOtR1U21IiNjpVcxnX8Q3RFUrofAPSocSbO3du5QhJ+OZFSZ4SMaV0/ZMrVy71pjR//ny3fXIfgRDovqnVoemQUnilSpWc9qFrwYJFf3udPXu23dfIlalTp6o3LralsX58E77uuuvczp1vIDQ/+WPKlCnqzY1vRsb90oRK9P3q2iuqfVkPb1Ab6E+7pO+PWh2+sXqCx+AbJDUNVAO7orc1z5Nv2bqWk5oV3VxoNEeFQqBto0PtBrU7OmyH7777Tp0Dvxv3QW0GNVt6HXmPly1bVr3N6fBtnc9EILA9+ebHN15fsG2oHXB9HnmeRm2D/t34nFITo3P16lXV1jSVcPuctjWZO3eu0gpTK2GEGh9Xgr3u1HzqmjLCdmZ7631LIM+gN1jeeG35IRkZGU7LPLkXBIquFWXfo2uSaGampoLfCfuvzZs328uyXRjgQe0NNSU6PG9qCKi5ofYhGIK9BwYOHKj6UB1GV3MbLmffrkMLBDVMOXn+PMFjUHOnQw0Kf1PLSJOUJw4fPqw0j7RG0O1Bh1o8trd+zwTaR+mwv2MfwXbjdaR7ij9o1qc1pnHjxvZlrBPby9e1oYmebcV7gfenq5tEIO3ir48OBhGYXKDN39XkxE6IKlbXG4fLPXUeHPiNsAPkw63baeljQPjA8FjGDzsG3ZnbeFMYVby+CHTf+gASSH6PQKFJgWpUqlppyuFgShu/0XeC9eOgyzZyrR/NLq7nTlNTIM7d3C/V9q77rFmzplqv7/eee+5R6mgKxTTvcdClGteX8OQLmkZ4fanO5jkNGTLEybxHwZSdub925vGpouc+OIiy/Vh/qo5z6nsSaNvouJqYeQ4cxJi2wnUfujCr74OmZw48rs8KBYBAoBmLgyV9PNimNCN4einx9jxyO9dlxPic0ixBFT/LGtua5xgOPx+2AWE7GOEA4TqYBnvdXfsWtgGPo/ctgTyDvtre9frqgp5xWZMmTRAqfOZ4DrpwxP8cDGmOp5DMa83nh+2iC0y8/zhYerqHKIiwrKsflz+CvQdcnwlv15h9tWuermCfP0/QNMuXdiP69t587/Q6ems3CiI0LwbaR+ncf//9qs40w7F/DgS9X3DF0zK2Vc+ePdWzSxMs24ruGMT12gTSLv766GAQHyYXjG8RgSwPRAvhij44075PzYorxjcW17fQcO873Lz11lvqjYYaHApotB2PHj1aOWdykGP92MnT/8VTm+p+N57eNnzB/dJ59O233/a4Xh9IuT++FfGtjk7SfPOhgykFTNbX23X2Bjse+qnRR4T7oibmww8/VJ1xMGHVr732mvLrosaPDo4cXHnN6Y8TqjAXbNt4a3P9+Oy06BvnCd33JKdQ88iBkr55vB70WaAfHjWT9MUIx3NKAYDOpmxbvvWyY+Y9SeE5p20dLJG47v6eQW9Qe0U/RyPURDDw49Zbbw36mfQGj0EtHIUWagH4rHCwpiaAAhRfnNgP5EQw80ew90BOzjnY58/s9OrVS/nPMp0N76twQoGV2isKSvTXpF8UlRjU+lHwCeWZCFcfTURgigB8o6CDmw5V2lSP0jmN6M5xjLigw2Y4CXTfumqbb/O+CMU8x86Bn+eff145VlKjQyd5RkWwfhy8+MamvwmEA+6XjrV0OPZXZw5ILMcPOzEOWnTopxAVyvXgGw41V/zQ6ZYdCp1z6dzItyM+/P7amc6VvGc+++wztw5Ed7Ynvs7N27pg2sYTPAeagWga8dc+VM/zXHmNjcfyF0FjhNpYmrP44Zssnb3ZnkaBKSewrSn4UbDQoSNouHKN6SYKBhMYNRM04bhqpAO97q4aZB22M4/jKrD6egZ99QlGk5cOzbPBPhe+7jMKxBRWJk2apO4pBi3wmaQgpQtMXKYLv7z/aNb1dA/RRMNtgxU6cnoPGK+xsa+nKZaaDeP1yOnzR6h9ozbIqE2hwzjxlnler6O3duP9xf1RGAykjzIKm9QMUeCgoPncc8/BH6wL28oV12V0heBzwhckah119uzZk6N28dVHUyALFDHJRQCaLmjf1WE0BR8kvcOnmpw3KAdqYzkdqkhDJdB9sxPiDcmwcEY0eXsb12/EQDoSqnV5nkbYabND08NneaOyI6Rk76qd428+LKFqJhiJwYgIV/gmq0e2MKLDFd2ubgzxDTStgGt9aT7kAMNzYfvz3Ol7wchDT1nl9TZgm7i2B30feE5GfF0PrvNkTgi0bbzBujFMnW9mnjpV4/3KlwJ2YnqIP6E5JZAs9Bw8XetPwZ9q92DCr/3hqa0ZOeQathwqHBipyeVzb+Tf//53QHXxdN11+GZPvw4dtjNfxvS+JZBnMBr4uk91Uxs1hxQsdLMpl1PzxOdEL6O3ETVc1JgZzU+MKGRoOAUt9nnRvAfo68NUBHymjO3NKE1XoTinzx/hMRgVqMNBn7/ZjzM9i7cXD/ZtX3zxhdN14DNMzaP+Ah9oH2WEWlGmw6DA4XqfexuXli1b5pRwl30x28uILiQbj8lzpUYo1Hbx10cHg2iYIgAvGjtNPiiU7nmx+VAztJTw4eZNRlsw356pBuYF5iBNMxHfBj11roEQzL7ff/99VS+Wo1Mu34bZIbGcfmPrNx01MNwXndnpHOhqNyYM/2SYLUOkqT3izUzToD7g6m9bfMvlg6aH4VJ7wTcImmFYDz6IwcLzpS8Sw8mpKeJ5svOj0MPldIJlJ0c1L01yzPPBtx5qMHh9aKowmiMCTSvAjpymTx6P/hl8O2b7cv+6cy6FV3ZQVDXrYcUc5Dgw0mGVpgiGyLNu9Ani2zXDjtmZuL7xs/1YntoC7p/XgY7NvHa8VjQv0oeFjrQ0a/BaBdo2vhgzZozalseioys7HHZ4VJUzdFkXRLmO58/2o7mFnTbvgUBC9SkI8DrQkblRo0aq/tw3nTWNmoCcwrZmnThQ8zzYkfM4HADDAe8Dhi+zznzmb7vtNqVhoBmab/VGLUOg112HJjvepyxPgYFpBfi2z3YP9BmMBnq/QXMgB0seX3fSZ335zLBvNDrC8wWOZhdiFJgI+ww9fxo1jxRIOTBSCKTvVbTvAQ669K9j/WnOZ1/P/owh8XxGjdc4HM8fXxooYPIYvK58ztlH80XEGGDkCk3aFKZpdmQKED2tAM/bmLcvkD7K0775gkOfIPZFup+RJ5gKgrn3aOJlm+lpBRhwxL5Dby8+A/Tzo/aP9w6X8zp564cDaZdA+uiA0RIUb2kFChYs6FaW4YuewhIZXsxQbtd9Lly4UBs0aJBWrFgxrVChQtp9993nFNZpDBXu3LmzCqXOly+fVr16de3BBx/UVq9e7bdO3tIKBLNvsnnzZhW+y1QELFerVi3thRdecCrzyiuvqHBmhp36SjGwe/du7eGHH1bH4r4YMtq+fXvt119/dSv73XffqVBdnhs/tWvXVqHI27dv99vu+jpj6C5hGOnrr7+utmGoMtufKR5GjhyppaenqzJz585VYablypVTYcr836dPH+2PP/5w238gj8cnn3yiwpoZYsxj8tyffvpp+/F0mLqBobslS5ZU5RiOy/NlGCxhuOzf//53FbrPNBY33XSTCnP2dJ5MT1G3bl0Vum4MI87IyND69u2rriWXG8PfA2kbwu28hfUfPXpUratYsaKWJ08erUyZMlrHjh21Tz/91O1cGSbOMOASJUpoTzzxhDZr1iy/aQXYFmy7Ro0aqXBx3hf8/uGHH4b0PHo7J6YKeeihh1Td+HzyOWFaAm5vDPkPNa0AYQg6nyO2Ea9nhw4dtG3btqn75JFHHrGXC/S663X5+uuvtREjRqiwaZbn+RrTggTzDEYyrQDPn6HkvN8ZTu76LN11111q2TfffON0j/Ke4XN58eJFt32uXbtWXSteM5bjeS1dujTg8zCmFQj0HvA0Thh5//331TZ8pm644QaVIoDP1W233eZULtDnzxP6/c6+u1WrVuq68pj//ve/ncp5SitAeO15X/F+KVKkiNa1a1d7Wodg+qhxHtqCKTHYf7IvmjZtms/zYEqBNm3aqH1XqFBBGz16tGo/7pOpOHTYhi1btlT1Zf/8zDPP2NODGJ/FQNsl0D46EJL4JzgRS/AG3y745sc3Yn9vDIIgJBY0i/DtmdoSPZt+oNC3g74yfOM3pmwQzAWdkqnRp+uBJxOc4Ayd7qkppJ9vsAE3TDLKSL9Afa/CgfgwCYIghBmaPlzRJ0Z2nTZDsCZ0EnfVN9DHjCYmucb+nwn6FtHcRjNrsMJSrBAfJkEQhDBDXwpqnOlYS18s+oFwShD6U9CXQrA+TNPAKVHoL0bfJ/rzMdqRKRK4THCGflQUJOkfRf87thWDFOhAbhVEYBIEQQgzjP6iYzIdkjko6I7gvsL6BWvBsHWmM2DwDLVKdMhnsAMDJAJJtpto3H777Sqqkw7ZdOZmsBGFJmP6ALMjPkyCIAiCIAh+EB8mQRAEQRAEP4jAJAiCIAiC4AfxYcoOBWV2YiaxCjV1vSAIgiAI5oTeR0yOy2SXgc7N6ooITNnz0VhtAkRBEARBEILjzz//9DkJtS9EYALs6dHZkMHOSSQIgiAIgrlhtCoVI0FPh2JABCbDzNoUlkRgEgRBEIT4JCkHbjfi9C0IgiAIguAHEZgEQRAEQRD8IAKTIAiCIAiCH0RgEgRBEARB8IMITIIgCIIgCH4QgUkQBEEQBMEPIjAJQqyYmAScWhPrWgiCIAgBIAKTIMSSE8tjXQNBEAQhAERgEqzF2R3A/Nujc6xLJ4BrlyJ8EJm7UBAEwQqIwCRYi2sXgJNR0spMLQkse9B/uVVDgP1TAt9vxm7glza27zLZsyAIgiWIqcC0aNEidO3aVc0ezHTl06ZNc1rPZZ4+b7zxhr1MlSpV3NaPGTMmBmcjRIckTjsdvcOd/d3xfc8E4Npl9zI7PgQ2vhj4Pg/+CBxfkv1DBCZBEAQrEFOB6fz582jUqBHGjh3rcf3hw4edPp9//rkSiHr37u1UbtSoUU7lHnvssSidgRB1knjL5lBgSt/qvmxqGeDYYt/bLesH/Pmd7fuRecDMut7LXjoOZF0FMi8A654BzmyxLc88D5xabSgYgsB04WDw2wiCIAg5IqaT73bp0kV9vFGmTBmn39OnT0f79u1RrVo1p+Wcfdi1rBDPGqYsYPeXQJW+QLLLLXx+P5BSDMjjY0bqH+sBt64AStzgWHbpKHDoZyClKLBpJHDltGPd1bM2AciIlgkgy/FbCUcXgdz5bb+nlgJqDQPKdga2vWH7dF4F7PkK2POl4XSCFJhYj2kVgN4ngLzFg9tWEARBiH8fpqNHj+LHH3/EgAED3NbRBFe8eHE0adJEmesyMzmYeefy5cs4e/as00ewmIZp+QPAsYXu66dXBhY7ayCdfIcYyk/mtADmdXZev3U08FNDmxbp6DzH8qX9gB9q6BWw/dOuAUm5gFnNs/e9C/i2mMvxdrr7X10947xs7VPA8oeBtX/3e+o4vhSYf5vte9YV/+UFQRCE+NAwBcMXX3yhNEm9evVyWv7444+jadOmSEtLw9KlSzFixAhllnv77be97mv06NEYOXJkFGotREzDpH/3BIUXIzs+AQpWdi9/ZE4Ax9OAi4cNh08Gzu0CTiyz1cNoXsty8W86+ANQ7WHH7xUDgcsnnMtkngN2jwOKt3QsWzPcpvFKrQvU/z/H8p2fAKfXWu1dRxAEIS6wjMBE/6X77rsP+fLlc1o+fPhw+/eGDRsiJSUFgwcPVkJR3rx5Pe6LQpVxO2qYKlasGMHaC2FDmbA8+DAZzWE0jxk5tgAo1gQo1th9O5rb8hTxc0yDcJKVCfxyk02gKXyd5/Kn1zu+L+7p+H7uD+/HSM7l+L79Hcd3o8BkdHY31kkQBEGIOJbodRcvXozt27fjr3/9q9+yLVq0UCa5vXv3ei1DQapIkSJOH8GEZF2zZcKe28HmLK1IdmiYKDzR12jvRGByAcd21y46vtMEl77NZkLzxJRU33U4sxE4udLZ8ZvCErl6zr08j/dzEwTN8d+C30YQBEGIGpYQmD777DM0a9ZMRdT5Y/369UhOTkapUqWiUjchQlw+ZdO0zLoeODofOLvdISQZhR8KJ0vvs33X/ZNo9trwvKPMmQ3AlVPA4UBMcEFw6QjCzukNARbUgIw9QZQXBEEQLGuSy8jIwM6dDsfYPXv2KIGH/kiVKlWym8umTJmCt956y237ZcuWYcWKFSpyjv5N/D1s2DD069cPxYq5OOAK1uK3Pi4+RprDFGUXmJKB8/s8b7/lnzYfIp1tb3o/1indL8gE/NzYc8qDNt85a86oZaMwSUHwttW27933ZvtqGaB2LX85IMWPJk0QBEEwr8C0evVqJezo6H5FDzzwAMaPH6++T5o0CZqmoU+fPh5Na1z/8ssvq8i3qlWrKoHJ6J8kWJTji7ysMPgwzW3n35wWCLOawbToWrNfWrus0BxmSgpLZM0TQOPXgSK1HMV+rAtU6AHc/H2UKiwIghCfxFRgateunRKGfDFo0CD18QSj45Yvl8lL445pld3ncLPfJ3GaGbvK/cGVPzLXPSrvwHTbp9JdQOvJjuU0UZ7baUuP0FmeF0EQhLj1YRLimG/yA3u/dnagvrDfQ0HdJBeCwOQvCs4MMD/TcvccY15Z5kPA8jSv3aGfgJMrQqubIAiCIAKTEGH2fwesGWb7fjE7uswINUlL+wLTqzgcuz2xoAuwaxyw1TGPYFzd5myH3Z/HuhaCIAiCdUcSwdKsfxbY/q7t+/dlgBNetBx0Xp5ZGzhhCOE3cvkksOllW06lYAlFKxV1wlzHAzM8mzQX9QLO/xnYfHVM6yAIgiAoRGASwgu1RNNsEY4euewyJ5srnLLEGzTVpWdPYhsMVkjyeMaQ7DIcLOrusiA7d9WB74GDLsIUM5e7+hJyvro/PghvnQRBECyMBUYSwVIwZ9IFDxqMnf+1/ffj5G+a27xQdUSVS8cit+/jS4C1hsjRHR8BJwzO35wnz5iCQefCgcjVSRAEwWKIwCSEF1dtjj5NycqBtv+LewFb/xXbOrmS1syaWqlQoZZuxV/dTZ6J1AaCIAhBIj2iEB42vgQcW+S4peigzWzdrhFvWiawzWQCk6fHIMkwt5tV0XM4eROaltztZwdJwOrHgUkp4a6ZIAiC5RCBSQgPm0cB6551CCdrHvc+dYg+F5xZbnNPAlVyAggJntIPuDrLH/nFfTJjQRCEBEQEJiHMJBmEIi+3l+7HRAErKlXyd5t70MTkMkzmG8/s/NT2f8XDwI6PndddPQtkZsSkWoIgCGZDBCYheA7OBM7+4XkqEj054rUL3sP5maSRQlO0THP+BCaP9QyTc3qhajA1Kwc7vm9/H7hyxmZO1Z3DjY7fJ1fZrtuRecC6px3LuSwmzvyCIAjRQwQmIXgWdgWW3GUbJM9sBvZOcghJOz9xlDv0s/d9fB3grVfSdQ61UAhBwxRKVmxOcmtlaHpj3ixqmzwx+wbgyK/Ahv9znsx4TisPc90JgiDEFzGdS06wEExieHgWUP4OhzaJ85Yt7ul9m7XZGb4jndCRGiRfflHRSlxpdUfxjJ3Azp2+y3DCX7096VR+z0WZckUQhIRANEyCe3h5xl735czTs/BO52W+hKWoEkIUnJHTa8NTjYQJwzcIoJkXHN+pcaQZL+pO/YIgCJEnUXp4IdCkkz83AWZUdV+XsTsWNQpMO+RPs0PNib953MKBx3oEqd3KWxymx3hNNr/qnHxz1d+AjD0xqZYgCEIkEYFJcDC3gyNLtzGHz6XjwLq/w7SYRrPjQTgq0xFxwYbnDT8M7b39nVjURhAEIeqYZaQRzMjSfjafleUPwtyYeHLdIrURF2z5p8N3zRKTGQuCIIQXcfoWvLN3AnDdEODyidjVgbmArEKuvPHnCO7KppdiXQNBEISYIBomwTcc8E+udPw+YfgeDU6vz9n2KcUQNdK35lxguiF7kmJBEATBVIjAlCicWguc3phz/6A5LWA+fCRNTCluLf+qXPks7BiefR2W9QcO/BDrygiCIMSPwLRo0SJ07doV5cqVQ1JSEqZNm+a0/sEHH1TLjZ/bbrvNqcypU6dw3333oUiRIihatCgGDBiAjAyZzsGNXZ8B+yYGv53p/Zf8EeMM1MFqmAIJyTeWqT4ApmvrE0uBbW9kL9KALWNsgQOSbkAQBAsTU4Hp/PnzaNSoEcaOHeu1DAWkw4cP2z9ff/2103oKS1u2bMEvv/yCmTNnKiFs0KBBUah9gggOnNXe7Fy76H1drAfpYAUmo/nT3znVGga0iIAJr1iT0LYzTo/CVA7pvwNaJrBhBDC1lEOIEgRBsCAxdfru0qWL+vgib968KFOmjMd127Ztw6xZs7Bq1Spcf/31atkHH3yA22+/HW+++abSXAnGwSwRo5tirGHaGKST9OaR/svEWgj0xrTyju8XDwM/1gHuMeS48jT/oCAIgkUwvQ/TggULUKpUKdSqVQuPPvooTp48aV+3bNkyZYbThSXSqVMnJCcnY8UK79M1XL58GWfPnnX6JARXTkXfaTvWxFq4uHgwgkKgizCYWi/M+w9z+zPa8uyO8O1bEAQhiphaYKI57ssvv8TcuXPx+uuvY+HChUojde3aNbX+yJEjSpgykjt3bqSlpal13hg9ejRSU1Ptn4oVKyLu4EB1Jd24ANj5qbvTNiO7OJmqMVGl5XMLJZlHwxQJNNv9jxPLgOnVwm8+NZrWcqqVNCa2PDgDmFkzZ/sTBEGIEaYWmO69915069YNDRo0QI8ePZSPEs1v1DrlhBEjRiA9Pd3++fPP7OzW8cTv7wDfFjXkMfIiOHDeuGB9S/J5NpGaB808GqaI+mxpQFaYpnUxcmZD+AROCuOuzKyTs30KgiDEAFMLTK5Uq1YNJUqUwM7sGdXp23Ts2DGnMpmZmSpyzpvfk+4Xxag64yfuOLvN9n9KKvDHWODMJsc6ozaJWZuDdUwOdzLG/GUROeJQw2Q0cdFXSCclDZbg7O+xroEgCEJ8C0wHDhxQPkxly9oG2FatWuHMmTNYs2aNvcy8efOQlZWFFi3MmC8oRuz+Ajj3h2ezy4WDwU8+G+6525IDyD0UKoHWtYgFtR5Xzjj/9jZlSUQF0jBwfh/wS5tY10IQBMG8AhPzJa1fv159yJ49e9T3/fv3q3VPP/00li9fjr179yo/pu7du6NGjRro3LmzKl+nTh3l5zRw4ECsXLkSv/32G4YOHapMeRIh52Jiycr2ezFOe8JZ5Y/MCX5/4RaYIjl9iJM/js+CsB5acD5PRnIXDHttgmL148Dl7ACOhV2B40tiWx9BEAQzC0yrV69GkyZN1IcMHz5cfX/xxReRK1cubNy4Ufkw1axZUyWkbNasGRYvXqxMajoTJkxA7dq10bFjR5VOoHXr1vj0009jeFYmwSgoZF0BrrpoI5bdD6x5MgiBwki4BaZI3oZa/JqJ3K6dFw3TpWMBbBtl/vgAODDD9v3cLoffXdZVm8ZToukEQTAZMc3D1K5dO2g+Ou7Zs2f73Qcj4iZODCGDtQBcTQeOLQx+u8M/5+y4qXWd513zZkoKC1bUHAVKgAJTQNvGgD+/A8reAtR+EtjyGrB2uC1I4dDPwMkVQF/NFumZp3CEhWpBEASTC0xCDMmTGpqwpOf7CWsG8AgKTLHWpEQUl3O7fDyIbU2QxPTQj8A0l5Qem152fP82DbhyGmj8OlD3mahXTxAEwYi8tsUtmn/tUqgkpyBnuA7WomGKujBoBY0NhSWy/llg9/hY10YQhATHAr2m4JOrGe4O3csHALvHwbxEUYi5dDR6x7IUJtAwBcO+SbGugSAICY6Y5KzOlMJAoRq2yU7p80F2f26twTaiPkxxTOa5+NYwJYxpVRAEK2CxXlPwCIWlaHJ6bQ53IAJSzLGawBTPplVBECyB1XpNQX/b5pQme75yXp6end07GhSoFKPoLiExBSZBEITYIiY5K7LvG2BpH/flP9YFOi2OTh3CakYTgSn6RLjNc+U3zHkXIQ0TncKZr6nEDWE8jiAIgmdEYLIi6Zu9r/u1TXQGNddpOXKC+DDFn4Yp3Pt39WH6qbFjkuAOc4EyHcJ7PEEQBBdEL29FtMzw7CcnGoCcpCUQYo+n7N/5wzidUOZ5hJWjc4Ef6zl+68ISWXhneI8lCILgARGYrEgk516LCaJhMgVm92tidvj5twP7v7VWvQVBiAukpzErm14Bji1yX/7LzbZpJDyRUgxRI3fhMO5MBKaIkL9s/HUHnJZnyV3Wq7cgCJZHehozcekEcGSu7fumF4G1f3cvc3yxOTRP4TyW+DBFhouHgytvVU2N672oZQErB4fXz04QhITHoj1knLJ6KDCvk2FBEpBl8Ff6qaHv7aMpMCXnJF7AagKS1eobIpYVmJLdBaadnwKZF4DDvwC/vxOrmgmCEEdYtIeMAxj1c+2K87Ks7N8TswfoU6uAVY8AJ5bblp3ZZJ4BL3eh+MjDlLeE43uxxh4KJCVQ0kSLCobG+55ateNLspcnAcsfAtYOj1nVBEEIAL7cnNsFsyMCU6zY/i7wTV6XhR4GZk46OqeV+Qa85Dy2/wWrWHegvnEiULqj43f7X9zLFA8wx8+9YYpcjCVWDSagwLT7S+BKOnD8N2DtMNvy78sBFw/GunaCIHhj25vA5ZPA5ILADzVsOQZNjAhMseLUGg8LPQhMmsvEumYRPPTBleaPUKKddNKaxc6HqUofIDnF8TtfCeBeF61f5+WB7Sun2r1S7WB5galYU8QsRcLyB2wma/W8SLcmCJZg3dPArv86fv92L8yM9Cxmmkw0pxOMehI8PJqZwjm4hiAwGTm3A7h0FFGh0t3uy6571LPmLFhyKvTVeQoxJ8eCaw7vhZxyYb+tw/V2HrNbABcORLtWgiDEiRhinZoKIV7OpAhrmHIo5F09G71BrLVB3XvPZdv/kq1CCL+PBHHgJ2W8FwpWNtdzQLX/yZXAwR9iUSFBEOIg2MQ6NY07DIPLxpeAw3O8DJpJwb1hR4szG2OvVWjkJR9VtYf8b5vLYIozRiLmlLrP+l5foEJg++nxJ6yHZhIHcg/3pH6NC1YFDv4E7JkQ9VoJgpDN6fXA4t6WCzaJqcC0aNEidO3aFeXKlUNSUhKmTZtmX3f16lU8++yzaNCgAQoWLKjK9O/fH4cOHXLaR5UqVdS2xs+YMWNgKrKuAWf/8D64bB5ly7nkSVuTU5Pa6XWIKKH4MIWLoo08L29hsInr9PWlwQnhHNr+6GFhElB9oO/tAtXIBSpYhZWcdlyaOd4a3Z41Q93ypAIL7wCW9Yt2rQRBME6cfTp7eqN1HvINmpSYCkznz59Ho0aNMHbsWLd1Fy5cwNq1a/HCCy+o/1OnTsX27dvRrVs3t7KjRo3C4cOH7Z/HHnsMpmLnJ8DMWr4HTk6oe2imuQSSQDBL/ShglLkFaD87+MHa0znkKQLcneH43fxDoNn7jt9FGwA1h3rwf9Lcl183xFY30nCUlzpoQMvxQOU+QK/jtmUVewPFW9oG+c6rYHqc7ukYvjVmnvOwMLtukiRVEGLHlXRbOh0GZ+Qol19siGmNu3Tpoj6eSE1NxS+/OId5//vf/8YNN9yA/fv3o1KlSvblhQsXRpkyZWBK9k60pRAgzDycUtS5A1//nO/tjZOMRpI8RYGroWRGjqXAZBig6zwD1DIIynf+DsysHeBuPJwDhZ/cBW3fKeyU7wYUKG87xqm1QMGKwPUfAEXqAKuHZG+UZNtXan2HaXD3OCAX00dkD9TVHwZWDAByFbBNZaOHvbNMtQdsH502LnOm6YKav3xcoXL5RHxomHxd45z63AmC4J3z+4CDM4Hqf83u91z4tihQtb/txTDJegKTyXo136SnpyuTW9GiutBhgya44sWLo0mTJnjjjTeQmWminDhL77NFgpFvixmmq8juuLe+DnMQouBDZ9pYJ5xsPweoMdh5fREXjZ5P/AyiHebYhCWdNEP4fM2/Ocx9+UrbBIUag4C7zwMtPwc6zAUavOy+z+ZjbWkNSKeFDg2UP6o+iIiR02hFXSgpUMl8ApN+ja/E6H4VhERg08u2GSu+yecYG/QkzSezteR84dMyLZn3zTIi3qVLl5RPU58+fVCkSBH78scffxxNmzZFWloali5dihEjRiiz3Ntvv+11X5cvX1YfnbNnzyKqtltTRGXlJN9TjKGpiuaxq+m232UDFDa8UboDcHR+zuvVY5/je+4Ctv9lOribgnQB68RK23FL3Rz4MajG7nUMmFrKsazm48De/wFXTiG26IKnCbU4umZpYddY10QQEoPMDCBvceD3t2z5llyDMCg0eXtWTWo6t4TARAfwu+++G5qm4aOPPnJaN3y4Y9qDhg0bIiUlBYMHD8bo0aORN68HlSCg1o0cORKxIcmcpoFY+iL1Pgl8VzywshW6A/VGAAXKASjnx5k7QFrT9OVy/uG+PmW7AEd+dV5W4gbgttWB7+Pm6UDZW4Fc+YAynRz7q9YfOPcHcHiW7XeLz4EVDztvywSd+tQ7iSgwZeyOdQ0EITE5tdZlAV0XMoGz271swP7DnAKT2fTmXoWlffv2KZ8mo3bJEy1atFAmub1793otQy0UzXv6588/oxjCvfGFbB+U7EElJQ1IdIEpr0sbFL4OuH2TZ2Ho5mm27OCBcPtmoIpLNFSDUe7mu+Rc7gkrAz1GoNR+AuiTQ1NxhW42YcktQjDJuYOp6iECjP5SkUYXMmP1MkBToDdEsyQI4SfzIjCvsy0S3Buupjdqws/v9W7VMLG1I7cVhKUdO3Zg/vz5yk/JH+vXr0dycjJKlTKYLFyg5smb9ini/PkdcGyBw75rFl+PLIeJMuLwnF0FtO57gelVgHJ3Aq0nORyudbrtBtY8Edxxitaz+RE1edOxrMEL/re7K915yhRTopkjgakRarkIHdnzBOhwH058PUsW9JcQBNOTsRs4Mge4dgFILuy5jGs0HIWlfZO971MJTCHOuBDPAlNGRgZ27txp/71nzx4l8NAfqWzZsvjLX/6iUgrMnDkT165dw5EjR1Q5rqfpbdmyZVixYgXat2+vIuX4e9iwYejXrx+KFYvCG3Wg03Hsn+zdUToRO3Kes6vAxMzQ3ffbnLlz53ffplBVoO2M4I9FzVH+0sFtw5QCVsNo8/ckOJhFMI8oPoTCkCJABUGwc+WMLXCJ6VZcX2h94WmMO+UjTYpomDyzevVqJey4+iM98MADePnllzFjhm2AbNzYOXkjtU3t2rVTWqJJkyapsnTirlq1qhKYjH5NMcffQJUQA5krXs6ZofpCYNR/3mY2ZBSmCiIwCkzZ3/OXs4Xwbh3jfp/lKwNcsr2AxA0mdRQVhLjgcvaL/lVPApMHjfemkUCle4JXCojA5BkKPXTk9oavdYTRccuXBzibfKzYN8n3+kTVMDX7wObPJW/+oUGfpCp9bR+FB2GBQlLle20Ck6uQGm/CkiIRXz4EwaTsHgccnAEUDibFC2wpCMxpkZMeJvbE4SVgkkd/AhPD7RuPAUq29l229nCg0T/DWr2Eolgjm/O8q4aJDtKFqnneptJdsCSx1NbS6XViEnApp8k/BcHsGlzN00rg2BLg0M/uWqkTS4M7zoHvYVbicLS2GPFokqNA5BqJ5ub0fQ24bjBwy2Lf+2r6FlDvH2GvYtzh0Rzlwa+Jprjr/mbLGZXiJYgiLBl4tfg0yW17G1g/wn25nlPmghUnTRaEbM5stuUKDIT93wE/1Xc877+2cU5+G2qksYlNcnE4WluMeDTJ8Ya3TwEToNO3EGGSgI7zgF6HbVnGFVmRE3YuHMjZ9oWqm7M740ShysTpisvbN+fMOpSdF0sQrMJPDYDf7gus7NG5fgoYXmBc07b4xIR53LIRgSnmxKGjqj9hiFOLJMcorUO830feEnkqrZ7m+zq1/CJ7eRg6rMzziDsNU8Yex/fzBk0SnWAvuUx5tOklYIHneTIFwdS4zinJXEvMzK2zcnBgiWCN1hMGoARKbvNGKYvAFGviMbLHVaXacYHz7w6/AKkxyNOTyPeR6rxcBKTiLYBWXwIlbnRkDDcmD40poQhtEX6WZhh8vqZnJ8mkFonT1DCHmBF/WdXXDJfs44JJMfQTzJc0uYBtwnAdOnLv/jKAFyvD8xjMS1hqXZgVEZjiAc58byaMcwRR41G6LXDzDCC/YQJbIQoYOqyW44FihkmDyQ0fAVXvB0q0ctlOsznbx5KQTLZ+OuVU3d8iTEwpZtMiXbvooSp+6rL9HWDHJ+GtjyCE+9n77R7b/xOMRjea2Fz8HLe95W+nQVTAvO4aAXt39urVK+CdTp06NdT6JCBJ1nQcL1gVOG8wUbhpmFzOq0JX29xnf7wfleolHNUGOCdEdaVES+/rGrwMlL/TXD4EzAYcbiEr3M+Jp5QYdkHJBG0oCP7Y/QWw50ug41zfzxHNdOlbnZ8lfZomsnmU+zYnV4RWJ7PNsxqKwJSamhrZmiQq+nQSVnMc777bFkZtsSiHuIUCKT86rSd7TxvgSp5CQOl2LguzO617M4FJpp5BKQiiYP7mSwGz1Z/fF/ljCUJO2fEhcHKly0IPAhPnf1toeKnaOwEoVCOIAwUjBMWBwDRu3LjI1kTIASbxg7rhP8DKgbaBOo+HeYXqvwAUvz4WNUs8cpJLyfiGx4mJ79gGbBgBHJgGc6PF3l+Q7cSPIFiVQDQ86VudNU5hPX4cmORcyczMxIIFC7Br1y707dtXzeV26NAhFClSBIUKFQpvLQUD7PQ1c+Ry6nUUmGqYp63GX4HyXYEUaiOTgNIdncvnK2HzmRFMjmabBLl8dhI6Oujn8jC/H6dHiEU0nDfObresql8QYoOnl4gsW7btuY5py3KMFh8appBG2n379qFBgwbo3r07hgwZguPHj6vlr7/+Op566qlw11HwdzNFM9KOSQ310PV8pdydgznRLW3bufICJVpEr15CeOG8fsbJjpu9CxSsYvFJimPQEdNszUlLEyVCVrD+M0HN0Z7xwWfoTgANU0gC0xNPPIHrr78ep0+fRv78jjfPnj17Yu5cf8msBEvj2skzE3dZyTcTV5S62X0ZheM7tgJ3/m5hjU2M6qtn/2Y+m6PzHcv5Fn/1bGzqJAi+oI9SWNEiVNYCAtPixYvx/PPPIyUlxWl5lSpVcPDgwXDVLcEw+dtmkze91zOX830gWBhqD2s97nld7vxAkVrAvVdsc9FV6O6YN7DHAaB7AJFt0TQfuzq9n9mEmL4x//42MLeDc2qBKRJMI0SJC4eAk6sDHHfC/ZxqiathysrKwrVr7pFQBw4cUL5MQijkQKoO95s+5xtzpaKPtBLNPwHazw5vHQTzwmkOOBfdDR8DpdrYlhUoDxSsDOQ2PP/JKTF+MTDJS4geNXrtQqxrIiQyC+8AZjePzbEv6pnwE1DDdOutt+Ldd9+1/05KSkJGRgZeeukl3H777eGsnxALmKbgxgmOjKvUOhSq6r08/ZbK3hq16gkmwlVYNya0MyYwtZNk004losCkt9XKRz2X43QrxikoBCGccAof1xQYer6zSyeA6QGmIYk08aZheuutt/Dbb7+hbt26uHTpkoqS081xdPwWLEZel1nra/7Nlv05nyECzmyDkGASfHRuubOjZSl4N3vfsMy8b5ARYXYLYP1zwOHsyXh3fuy5HKdb2fJaVKsmJDDzbgEuHbV9n1rSORFx5XtjVi2YuH8IKa1AhQoVsGHDBkyaNAkbN25U2qUBAwbgvvvuc3ICFyxwg9H3hA/NrGa23zUGA/X+4V2ejkWSTMG8uE3oqzm0ktMqOpyamcyRMD9XtN4gTROFpgFbfbxITkqx+YWRCweiVitB8EiBikDJ7PklY4EWZwITtUr58uVDv379wl8jIQRyMDDQCTetqc15l5Mq0i9Fp+Eo4OD15sj5JJgUl86tSh/g6ALPpihd4G7xGTBfTLh2sq4afph3sBBMCH2DUtJsaVz8kn1vZV3znb2fUZ0/NUTUKFzTZcaLODPJlSpVCg888AB++eUX5QAuxBimrQ+WVv9zFrY4lcZdLiHOfMtoPMZ5mQhMghMuA3zzD4E7szMAt53pfs9QYHKduDNimEXDFAS7/gtsftXx+/tywN6JsayRYGZ4f6wdFljZjF3mnLoqOY/z7z/NO6NASKPfF198gQsXLqjEleXLl8eTTz6J1atdwxUF08KEgyVbOQ8qfEPxNJ2JkU4LgVuXRbx6goVINkzA6Qo1l7xndMFJlc8dWoedWs/CJrkg2fiCY55GahD+/D7WNRLMTIaXSdB1Tm9wMXOZTIuZ5CKG7BiLuBKYmKByypQpOHr0KF577TVs3boVLVu2RM2aNTFqlIdZi72waNEidO3aFeXKlVORdtOmOUuWmqbhxRdfRNmyZZVvVKdOnbBjxw6nMqdOnVK+U5ySpWjRosqXij5Vgg/K3haanZgJDfXIOUEgNYcAHQ3JGD3dM4WqOGuYGAlWtnNwxwnJ78mPwHTAkMk81uz92n3Ztcu2/6LVFTxFVNonP/dzn//c2BFwYMootGRYhRzVlDmXHnroIcyZM0c5fxcsWBAjR44MePvz58+jUaNGGDvWs0T5r3/9C++//z4+/vhjrFixQu2/c+fOyodKh8LSli1blHlw5syZSggbNGhQTk4rvrluCNDqC8dbhlXfwgVzQM1k6XaBl6fARA2Tp2zi3kgpFhm/hjMbYRqW9nVf9o2uvZNnVDCQsRuYYUgBcPhnYL2fCZ+vnjP8MJnAlJSUGAITBZfJkyejR48eaNq0qdL2PP300wFv36VLF7z66qtKY+UKtUvM9cSM4jT9NWzYEF9++aWa4FfXRG3btg2zZs3Cf//7X7Ro0QKtW7fGBx98oKL3WM4U6OHUsaScITdWnkK2ud70VAJ66LcgRANOyMxpVuo8A7T7KbBtrpyOjIbJSpqbc7uAlYNjXQvBDBz4wT3H2VYXX1Ny6Tiwmy/HAH67x11zaRqSYRVCquns2bOV03fp0qXx6KOPqv/UMnFS3jFjPFy4ENizZw+OHDmizHA6qampSjBatszmR8P/NMNxXjsdlk9OTlYaKW9cvnwZZ8+edfpEjMI1EFM4PUT1gY7fuimOb+0M/c5dIGZVExKQZu8AxZvbfJmCSWB5ztkUHx4s8mbLN/DdnwM7P7X9Zk6nXeNiXSvBzCwfAEwtBSx/0H3ddy5592JNUpwLTNQIXbx4UWl8KNR88sknuPnmIFTsAcD9EgpjRvhbX8f/jNgzkjt3bqSlpdnLeGL06NFK+NI/FStWROSIYadcdwTQ3EuSPEGIdadIfzhGZ0bsmHGiYcq8AFw+6fjNnE4rHgbSf3c2ubCcIPBeOWDeSDM3TlknYCyk+F46e1t5zrgRI0Zg+PDh9t/UMEVMaIplp1z3GSClqHOYpoXsxUIcUaEncKOLYzPvxUp32b43Gm3LxbI7nJoTf/e6RQQm5kfT+c7wgvhjHaDDr0CZjsDU0raJkbusi0kVBRPwc1OgaENgT7YZTgg7IfUYFJZ27dql/Iv69OmDY8eOqeU///yzcsAOB2XKlLELZ0b4W1/H//qxdTIzM5UvlV7GE3nz5lVRdcZP5IilgJJkzjBSIfHIlQJU8TLdQsNXgOoDnJcZJ/GNFMG+zLjW0R9FGyDsXD7u/HtetsvCtYvA6fXhP55gHU6vM6+wVPg6JKzAtHDhQjRo0ED5CU2dOtUexs/pUjgBbzioWrWqEnrmzp3rpAniMVu1suUQ4v8zZ85gzZo19jLz5s1TyTTp62QKYqlh0o9Np+9mH8SuHoLgi/rPA/lKOi9rPxsokdPpGcJskuP8isFguvBtwVJcOAgc/BFY94zzcitaCbT4eGkPaTR/7rnnVHQbQ/lTUlLsyzt06IDly5cHvB8KWuvXr1cf3dGb3/fv36/yMjEhJo8zY8YMbNq0Cf3791c5mxiVR+rUqYPbbrsNAwcOxMqVK9WEwEOHDsW9996rypmCmPpJGJJS1hoaw3oIQpAw/UCnBUBDQ9brsJMc2fLp4dG2B8WsG2z/d3xsy9UTSETUtreBbW9GvGpCkEyrACy8E9j2BqyPhnggJB8mCi8TJ7qn66cD9okTJwLeD7ODt2/f3v5b9ytiBN748ePxzDPPqFxNzKtETRLTBjCNAOex05kwYYISkjp27Kii43r37q1yN5mHGL4NJDuEWUW1B4FqD8WqNoIQWKfa9kdbJB3fpAOaIytKTt9WcBI/tcr2f9Wjtv/5ygC9DvveZt3fbf/rPBXhygk54te2tnkYBWsJTAzlP3z4sDKbGVm3bp2aKiVQ2rVrp/IteYNaJmYO95U9nBFxnoQ30xCrTpYpA1xpKaHIgonJne1LWN6QN4wpMXLlB44tBvZ/E9z+/GlX4lFgcuWS92hhwWJzxnGanOUPWTR3noZ4IKQegCavZ599VoXuU6ihzxDNYU899ZQymwkx0jClNQMq2MyVgmA5Gr8GdF7pvCwl1Tb9SutJwT9LTjOgh+PZjKHAVKRO6NtyoOU0GvsmA5kXw1krIZykb/VuGuU1JMeXOE9zYnbylnBkJ48DQuoBOH9c7dq1VSg+/ZDq1q2LNm3a4MYbb1SRc0KU30rv/AMo1Q6oMVgcTQXrkrugzRTnjb5Z7nnFajvSg8TsWS5omCsvEnAamcpeIgw94aq1py+Tnu15lw+TzoHpIVZQCAhd6PHE/u+ApfcB6wKfKUOwiEmOjt7/+c9/1MS49Gei0NSkSRNcd118hA5aSsN063KgyHVAp+wJUFPSfD+YgmBlrhsMpG8G/vi37Xf+stEzE3h9+YmGFtnHMRhJFfB5uayzT+AKYOOLQIXuoVVP8M2JFcCclg5XiT+nAhl7gDrZ/mNL/uJsSj7+G+IDDQkpMBkTPXrCGB339ttv56xW8USkNEyFagA1BgElXNInVOpt+whCvNL4X0DtYcCM6g6Vfyhkng/Ps6w7l+enn0kY5rDMVQC4diFwB3ZGUvnSMM3xkmLFKCzZDhJMLYVgMGZqJ8seADIzgPzl3fOT2SddjgO0BBWY6NAdCPRpEoyEuT16n7C9CdZ/AcjvPTmnIMQtufPb5kjsuhMoVNXmCBss1MTmdcn95Bc/GqZwmcM5z+PFnExzEmI9pO+OHHrbTilmswYwbQZZ2gfYlT1HoBA/AtP8+dkmHyFyGib6Khxb5LtM3uJA87E5rpYgWJ7C1UPfNle+MEbJ6YJGmAQmV8GFfYK/fsHI+hHe1zETdK3HvB048GMI3n2RODda49GOZWuGAbv+a/t+9QzwcxPnbY7G89iqAYnuwyQEQxCdUPOPgB/rOS/rOA+4eNSmoq8opjZBCA9a+NMKaNcQHnJoxv/9Le/rTq0BDs0GFvcKra+iiSXriiM/1tntwJFfbQJd6yDTPsQbe74ClmVHiesC09d5AC0zptUSwocITJEmmE7ZU4dLv4jSjuSegiCEy7ciTJm+k8JskruwHxHl0I/uPlL6edDXhlpsT/5Orb4Esq4CKwbYnJdpXqLGxI6FBabz+4CfGgN3nQ5t+yunHcKSETMLS0VqA2d/h6ko3xWoch/MighMkYaZdgMlkGkMBEEIA1nB++z4M8lZJaXHJecJy52c4L8rAfQ8ZBOMqEkqXMOxntOt5DFMVO4kLFkcat5ycj7fpoWzNonr9F3770DptjArFkxdazEKlAt8EtHcBRzfC2X7Z+jOgYIghA8l3JjVJBdhvGVMv3bJ9v/cDmBmHeCH62yaE50TSx1JE6mRCYaDM0NzznflwA/OdQoHv90HLO4d2ai4hEXzX6TWE5Z5hkRgigaBvHneuR1Irev43W2nbcZ2XXASBME3DV8JvCzTEQSd8iPZ96DAMPF46Kf2TnSY7Kg5+bmZe9npPpJ1Xs2w+TYZ2TIa2D3e+VihaOQWdQM2hCk58t6vgQsHgX0RmFqLmjohMDjHqY4ITAkOpyI46chR5ZUiNd2Xlb1VQn0FIVDquwykxiCJqg84vtP/hqalcDl9x0uuGd13aucnzstPrw1uPysHAzNrO0x/FEouH3cuM7sFMPuG0OqZU9Nn1jXgxHJgaV//OawCSUj5U0PP6za+BHMTjbFF81+k8HW2Z4uapnylYGZEYIo0mediXQNBSExqPW773+sY0PJz53UnVwIZu4Lbn1cByyK+S5Em84LzhL9TS9uEk2kVbGY+Iwy9p9+QkallgTXDbdvs/sL7cXL6EkmT5JxW2XU96ryOyVApBLlCjdmlbKHv6lnb/ytnbJFxZzZ5Ps5m75PGJwyaF4Gp1f+cp0Tqcw1o9i5QrBHMjAhMkSY5j2dzQN1nHb/r/Z/je4OXgaoygbEgBEyFnkBxQzbrWsOA21Y7Omtv5jd9gM+pwBQnE4vmmMkFbdqk83sdyzxF43mDgtbB6cCpVcDyB71rkvZPBv4IMRfdpldsc7bZcRG+zu/xPKceNWbzb7V9n5Jqy530bTFgh4Vz4umpIaKtMMiVH6hq3kg4X4jAFGmSPAhMvY8Djcc4fjd61fG9wUtAKx9vV4IgOHPzVKCzwexdqg2Q1sy/RiJofwnpLv2y40NnATLoNk5yCEretBN0qF49NLTpbf543/14nlIB7JlgS6VwMVtb5hpdOLcDLM/p9TE6sAarIj1ApEl2ydxwV3qsaiIIiaFtYsZ8UrCi87q063OWIydS80JGg9yFo3Mc14mAg/U3cjKT+hlY9/wPmFwIOLYkiAMEkpwzC1jWz/b9e8PkzlmXgdMbgziWEG8+fxbuASyqYTLmMWn2AdByXNSrJAhxrW3SEy9yvjl9dniFS0cdrPbDygJT1IJHsoD6LwUulDJFgDfTqD9ha+vrtv8b/w849DNC4tpF92V/fuf8++wfDs3Wz+b2sbEGGqyKhXsAi5DsI49SraHOIZWCIESP3IaXl7jvLqMkMKVvc8ybpjt+G6GZywjTFtD3af0/3AdU5n3ylcw3fbPtP6dlWdQjtPpeOeW+zOiDRWbWCm3f8U4+l2vrieYfui9jQlQ955fFsHIPIAiCEJopoMt6oO4zCaRhilLdqVG6eNBPGQ8ahq2GyWp15rYHNr0MHJkH/NLGc/SaEDu0ADS01z0auG+vBTB9D1ClShUkJSW5fYYMGaLWt2vXzm3dI488AtORWh9oYXjzEgQhuqQZZoln+HLQUUJJFhaOwlj3AhVytj01DIEKVFvHAPM6AseXAHNaIsdIXrvwcflEaNv1Om6zvFCYauRBUDYxpp9LbtWqVbh2zSHJbt68Gbfccgvuuusu+7KBAwdi1ChHzosCBQxTjJiFGgOB6gNiXQtBSFyafwQ0fSd+Bls6sTOfkRsUmLLMW/dv8vle7ynyLbUekL4ldCFMMA/5Sng315kc0wtMJUuWdPo9ZswYVK9eHW3btnUSkMqUCWKS21iQZeJZqwUhUXKiecqLZtnoHi/1oXDktspEApM/FtwWX+bQROWu7ASfcYSl7sIrV67gf//7Hx5++GFletOZMGECSpQogfr162PEiBG4cMF3srTLly/j7NmzTp+IUyIM6mRBEGJHsGkIYoaFhKNoTYcSz21jVvJEKZVFFDG9hsnItGnTcObMGTz4oCOyrG/fvqhcuTLKlSuHjRs34tlnn8X27dsxdepUr/sZPXo0Ro4cGaVaZ89dJQiCtXGd3sO0eBIKwtgHXTiA6KNFT2DiVB3BJsQUbFw3BDgwFajocJlxotrDsDJJmmY6PbNXOnfujJSUFPzwww9ey8ybNw8dO3bEzp07lenOm4aJHx1qmCpWrIj09HQUKRJsqLEgCAnBoVnAgi4wDcWaep4YNznF3acnJc1zCL1VSK0LpG/N+Ysp56vT57rzleRT5gANjb4eroGeSiI5L3Bv7NIJcJxPTU3N0ThvGQ3Tvn378Ouvv/rUHJEWLWxzSvkSmPLmzas+giAIgaNZoz4eHaDNVncT5BBynXhXJ8lH7jwhNCGKkxdTYLI4lvFhGjduHEqVKoU77rjDZ7n1623z45Qta0hpLwiCYBo/mhhgHUNC7OvvOp2V4Ju0ZkBb71YfRZFaQKEqsDqWEJiysrKUwPTAAw8gd27Hzbxr1y688sorWLNmDfbu3YsZM2agf//+uPnmm9GwYcOY1lkQhDijeAugeHbwRrWHgFuXwToEIXDEQsNSsKqfAmESmAJJrxBqfqFEJV9ZoGRroJIXv6U4whKiNE1x+/fvV9FxRujPxHXvvvsuzp8/r/yQevfujeeffz5mdRUEIY7zx3ReZptgtuRNwNnfYR2CEDgKVHSfHiTWhL2tJVouLBSoBNw0wTZHauvJiHcsITDdeuut8OSbTgFp4cKFMamTIAgJSvk7TDLoWtzMFotzsY8j8dR2UaLtj8DeCcC+ibbf+crYksEaJ5SPcywhMAmCIAgunLb5ayaED5M/8gfos+ovQs5M0Ek6y8fkw9EmfxkglyFLe6/DSDQs4cMkCIJgWjzllqk5FGjzPZCvFMxBMAJTrDVnIZDsZ7oVK55j/nIwHUmJLTIk9tkLgiDklBs+Be69CuQv71h2/QdAxR5AXpMITJkZiGvO70HcYab5/+xCd5It8KHcnUhERGASBEHI6cDGUHR9Koj2s2FpYjJQx7nJMCRiJDBVusfxvcHLzmk18hQGKnQF2vlJIxCniA+TIAhCKBRrAjQY5RjY2s8BLh4GStxgYi1BIFixzvFIjK5D60nAxG8cGdb1yMnC1wFN30IiIxomQRCEUMiVAjR4wSEUFazoLCwFMujJPJOCN2ItbFO7VKCy7XuP/UBKUSQ6IjAJgiBEDCtqa2JQ52smigYzklIsMSZ7pqaU8w26zqnHF4C7ZSJiHRGYBEEQIkXpDp6XMzNyav3A9pHHYm/2ufIHv01Ow/0LVYvM8fKWQMgEen3NQIVuQPHmntflLhDt2pgW8WESBEGIFPT54Dxaqx5xLCtxI3DL4sD3oV2DtUxBMdBQ0cfGdFjE3Fq4ppjbAkQ0TIIgCJEUPnTHWZ3qfw1uH5nnEF2SLOh7E6Fj5miKGIsITM3eBwrSV0nEAX9ICwmCIESSUm1szt00G92+Eaj+kPP6Vl86/67QA6jaH9bFRXgp2tC6CRWzroa+LcPwrUDRerb/NQYBpdrFujamRgQmQRCEaNBtF1C0gfvyqvc7/279LZC3JGJGTjVEWiZioiWJBHmLx5eG6Y4tQHIex28K8gUq2L4z0Wqn+eauf4wRgUkQBCHWVOzlLLBE22/JyNntOdvebd66KJjoIjUFTU7m4Iv1/H2enO9pHi7RCkjKJSktQkCcvgVBEGKOUahIio2WJmIaKs26JrmcmNWuXQp9WyaJzGlaAW9twkz0WRa+v2KIaJgEQRBiTf3ngeItzKFhyimx0KwEKjAVqRPkjnNwLhf2xzgHk4vgeu8V2/9c+YA8hcKw/8RDBCZBEIRYU6wx0OK/jt/+BKbKfSNepbgcyjjnX1BY2Gx1y2+O7x3nOfsuCSEhApMgCIIZKFof+Msp23ejyaTHn+5lb5oQ3mPrjr9hIQY+TPTJsYJfUbRg0syClRy/S7ePZW3iBhGYBEEQzDYVR+MxtoSCYRdm4mkKF5P7MEWb+i85vt+xKWfJKMvdAVTsGZZqxRMiMAmCIJiNfCWjnH1ZBCbPWEgjxalNijUNz77azQx+upkEwNQC08svv4ykpCSnT+3ate3rL126hCFDhqB48eIoVKgQevfujaNHj8a0zoIgCGHXbqR5mefLjAJHTAba5MgIQKGY8OiPFg3ylXZOcJorL9BhDtBtt3O56/4WnfokAKYWmEi9evVw+PBh+2fJkiX2dcOGDcMPP/yAKVOmYOHChTh06BB69TLkMxEEQYgHgem2lUCFnkABg1+KaTVMLvs6syGM+/Z2yACGsjObgfQtQe44y3zaOuZP4qTOjV8Hrv/AtqzN97ZlTLRZqKqj7F3pQLP3IlufBML0eZhy586NMmXKuC1PT0/HZ599hokTJ6JDB9uM4OPGjUOdOnWwfPlytGzZMga1FQRBCBOcqmKvwbn75qmRO1ZY53+LRVqBAJy+z++Ljg9TxMyDrvVKAvIU8Z2AkuuFxNEw7dixA+XKlUO1atVw3333Yf9+W26LNWvW4OrVq+jUqZO9LM11lSpVwrJly2JYY0EQhDBw3WDglkU530+DUfEwFORc4As0ks5ISAlEk6IjTKeFyV9JCBhTPyUtWrTA+PHjMWvWLHz00UfYs2cP2rRpg3PnzuHIkSNISUlB0aLOjpGlS5dW63xx+fJlnD171ukjCIJgKeq/EFi58nf61zRYXcMUCCEJTCY0yZEqfWxpKISoYmqTXJcuXezfGzZsqASoypUrY/Lkycif38M8OQEyevRojBw5Mky1FARBiAENRwG/vwNkZvguxySYfp2Xk8wzF12kiIapLJrHEaKOpa4stUk1a9bEzp07lV/TlStXcObMGacyjJLz5PNkZMSIEcoHSv/8+aeHxHCCIAimJwBtToHy8ZVvKJoaptAOFGAxSw2/gtUEpoyMDOzatQtly5ZFs2bNkCdPHsydO9e+fvv27crHqVWrVj73kzdvXhQpUsTpIwiCYDl0Qef2jZ7X0yE4f1n35U3eAlLSHL8ZXRXvREtgCtS8GYyQWqSW7b9MbxJTTC0wPfXUUypdwN69e7F06VL07NkTuXLlQp8+fZCamooBAwZg+PDhmD9/vnICf+ihh5SwJBFygiAkBPqgy0lldY1FjUeAcrf71zpxEladkysQ90RLYDoRpqCju88DDV8Feh0DSrRynkBXiAmm9mE6cOCAEo5OnjyJkiVLonXr1iplAL+Td955B8nJySphJR25O3fujA8//DDW1RYEQYgOFHwydtsmle1zDZiYrd3IVSCwsPREImomuTCRuwBQ//9iXQvBKgLTpEmTfK7Ply8fxo4dqz6CIAgJx63LgGsXnZcx4/MNHwO1h7n7OtFER6HKn6N4PCI+Q0IOkTtIEATBquQrBRSs7PjdfrYteo4+SSVvdCwvXCO4/eYvh7jDjBqmsl2Ain9x/P7LqVjWRvCDCEyCIAjxQtlbPedc6rgA6HnIsEADmn8INBjpnCm6VFub1ioeiZTAlLtgYOWqDwRSirmnfHCl1hNAkzecl1Xo4dl5X4gqpjbJCYIgCGEgJRUAPwYqdLN9PPo2mTT5pBkFpnrPA0fnAUd+8V6m13EgpShwbCFw5TTQfR8wvbK7wMR8Wc3edd++QnfbR4gpomESBEFINLwmsuTypAASXVqQSAlM3K8//yiaSOmYr6ccKFgJaPGZY/JcwRKIwCQIgpDo2M1yGnDpKHDpCNDjIHDvVUcOoEajYWkyz0dQEPMzlOqCUpnODsGt+sNAKtNBJDk77AumRQQmQRCEhMOLBokmOZqMSIFyNq2Irm2q9xwsTaSymVO7ZNRe+cqVdP17QB/XCX2THNsF6g8lxAQRmARBEAQbFI4q9ghNm0Rn80D8bHSNVbgoc2vs0gowQrFcF2ctUVKQrsF1nwPqPCVZvC2AOH0LgiAkHD58mCj4OGmTAvBn4mDf87At2eKJlcCcFkCBCkC5O4GdHzuXLdo4zBP0ZsVOYOqyweZQr++798nAp0bRSWti+wimRzRMgiAIiUbBau7L8qQC5e90X250AL/nsi31gJGKvYH2v9iEJVLiBtv/km2AQlWdy6bWBfIa5rBz5bpHgziJYE1tYcxsznQMapfZQ6hukvN0bi0+D99xhZgiApMgCEIicfcFoFxn9+V3nQHqP+++nDmBav/d9j1XCtBhLtB1J1BjMFC+K9Div0BpFyFKRxcoWI4k+3FqZm6oSAlMOdUwXZ89o0RyikGw1IUwH/uu/lDOjiuYBhGYBEEQEonc+YMrT5+mpm86fifnAgpXt02/0naGLb+QK8VbAFXvdwwxLKfQAvc5av5RgBUMUGAqXBM5oubfsr9Q46Y5C2HFm3veRibLjSvEh0kQBEEIL52X2/6nNbOlKXB1KucUIN/6MM2psl4EoU4LgV8NGq2O80MXFDm1zKVj3rcp1gRo9p5jqhjjd6OGqc7TQK0n3bcXR+64QjRMgiAIQmSgQNLkdd/+REUbuieVTK1vS+7oiVI3A3dnhMfU1uuozVGb5C0J1HzMeT2Fo1JtbBo1UutxoNJfHH5duoM3/9NcKcQ1IjAJgiAIUUJzF5g4R1qV+xy/y94G1Bxi8xO665zn3YQjX1Ha9c6O2rWHezCt+XMUlyE0kZCrLQiCIESeJm86HKeN2qL6LzhridT3bMEqTyGgj4cJakPlrrO2/7kLA7etcs50zlQKSS4mtLIenOMVLhomISEQHyZBEAQh8tTJjrQzChx07GaqAZq+Uhtkr3OZy86nyS1IgSUPBaU1QAEv5r5KvYHkKcCSu4D2s4Gy/hzUfRyfeaiEuEIEJkEQBCG2MF9TneEGISTAyX9D0fCkNfW+jk7a9FGiKZDaLV8Zvn0Jcz0O2NIPCHGFCEyCIAiCeUhy0TCRtObAKYMJjRRrChStH5k6+BKWdGd2+4TFHihQPuxVEmKPCEyCIAhC7J2/7XjQMN22EvihJnBuh2NZlzURraEgWMrpe/To0WjevDkKFy6MUqVKoUePHti+3XkOonbt2iEpKcnp88gjj8SszoIgCIIfkvPZ/qekefb98ZQMM+tq5OslCFbVMC1cuBBDhgxRQlNmZib+8Y9/4NZbb8XWrVtRsKAjrHTgwIEYNWqU/XeBAtlzGgmCIAjmg0kkvZm0mrtE0ulUvhc4+ENEqyUIlhWYZs2a5fR7/PjxStO0Zs0a3HzzzU4CUpkyZWJQQ0EQBCEqNB5t+whCjDC1Sc6V9PR09T8tzVmNO2HCBJQoUQL169fHiBEjcOHChRjVUBAEQRCEeMTUGiYjWVlZePLJJ3HTTTcpwUinb9++qFy5MsqVK4eNGzfi2WefVX5OU6dO9bqvy5cvq4/O2bPZycwEQRAEQRCsLDDRl2nz5s1YsmSJ0/JBgwbZvzdo0ABly5ZFx44dsWvXLlSvnj3/jwdn8pEjR0a8zoIgCIIgxAeWMMkNHToUM2fOxPz581Ghgu/sqS1atFD/d+7c6bUMzXY07+mfP//8M+x1FgRBEAQhfjC1hknTNDz22GP4/vvvsWDBAlStWtXvNuvXr1f/qWnyRt68edVHEARBEATB8gITzXATJ07E9OnTVS6mI0eOqOWpqanInz+/Mrtx/e23347ixYsrH6Zhw4apCLqGDRvGuvqCIAiCIMQJSRrVOCaFSSg9MW7cODz44IPKlNavXz/l23T+/HlUrFgRPXv2xPPPP48iRYoEfBw6fVMIo3kumO0EQRAEQTA/4RjnTa1h8ifLUUBicstwHUei5QRBEAQh/jibPb7nREdkaoEpWpw7d84ugAmCIAiCEL/jfWpqavyZ5KKZ4+nQoUPKT8qbGTAnUi0FMZoPxdznG2mr4JE2Cx5ps9CQdgseaTPztBdFHQpLzNmYnBxaggDRMDG3QnKy33QFOYUXXx6YwJC2Ch5ps+CRNgsNabfgkTYzR3uFqlmyVB4mQRAEQRCEWCICkyAIgiAIgh9EYIowTJD50ksvSaLMAJC2Ch5ps+CRNgsNabfgkTaLr/YSp29BEARBEAQ/iIZJEARBEATBDyIwCYIgCIIg+EEEJkEQBEEQBD8kpMA0evRoNG/eXCWqLFWqFHr06IHt27c7lbl06ZKa/JeT+hYqVAi9e/fG0aNH7es3bNiAPn36qCRbnAi4Tp06eO+999yOtWDBAjRt2lQ5sdWoUQPjx4/3Wz+6lb344osoW7as2nenTp2wY8cOpzL//Oc/ceONN6JAgQIoWrQoIkk8tFe3bt1QqVIl5MuXT5W7//77VbLSSBAP7VWlShWVxNX4GTNmDCKF1duM+3RtL/2zatUqRAqrtxtZu3YtbrnlFtWPsY6DBg1CRkYGErXNpk6diltvvVUdm/fP+vXr3cp8+umnaNeuncpVxDJnzpyB1dvr8OHD6Nu3L2rWrKlyIz755JMB13Hs2LGqz2L/3qJFC6xcuTIy7aUlIJ07d9bGjRunbd68WVu/fr12++23a5UqVdIyMjLsZR555BGtYsWK2ty5c7XVq1drLVu21G688Ub7+s8++0x7/PHHtQULFmi7du3SvvrqKy1//vzaBx98YC+ze/durUCBAtrw4cO1rVu3qnW5cuXSZs2a5bN+Y8aM0VJTU7Vp06ZpGzZs0Lp166ZVrVpVu3jxor3Miy++qL399ttq3ywbSeKhvdhWy5Yt0/bu3av99ttvWqtWrdQnEsRDe1WuXFkbNWqUdvjwYfvHWP9wY/U2u3z5slNb8fPXv/5VlcnKytIihdXb7eDBg1qxYsVUHX///Xdt5cqVqm69e/fWErXNvvzyS23kyJHaf/7zHwZkaevWrXMr884772ijR49WH5Y5ffq0ZvX22rNnjyrzxRdfaI0bN9aeeOKJgOo3adIkLSUlRfv888+1LVu2aAMHDtSKFi2qHT16NOztlZACkyvHjh1Tjbhw4UL1+8yZM1qePHm0KVOm2Mts27ZNleGg642//e1vWvv27e2/n3nmGa1evXpOZe655x51A3qDnWuZMmW0N954w76M9cmbN6/29ddfu5XnjRxpgSme2ktn+vTpWlJSknblyhUt0lixvSgwsZOJFVZsMyO8r0qWLKmEzmhitXb75JNPtFKlSmnXrl2zl9m4caOq344dO7REazMjFCC8CUw68+fPj7jAFK32MtK2bduABaYbbrhBGzJkiP0376Vy5cop4Sjc7ZWQJjlX0tPT1f+0tDT1f82aNbh69apSH+vUrl1bmXSWLVvmcz/6PgjLGvdBOnfu7HMfe/bswZEjR5y2Yzp3qhl9bRdNrN5ep06dwoQJE5RJM0+ePIg0Vm0vmuCoYm/SpAneeOMNZGZmIlpYtc10ZsyYgZMnT+Khhx5CNLFau12+fBkpKSlOc3vRZEOWLFmCRGszK5AeofYKhStXrqjjG4/Ne4m/I9HOCS8wceJd2kpvuukm1K9fXy3jQ86H2NU3qHTp0mqdJ5YuXYpvvvlG2d91WJbbuO6DEwxevHjR4370/Xvaztuxo4mV2+vZZ59FwYIFlRCwf/9+TJ8+HZHGqu31+OOPY9KkSZg/fz4GDx6M1157Dc888wyigVXbzMhnn32mBsdIz1Fp9Xbr0KGD+k6BnIPf6dOn8dxzz9l9WhKtzcxOVgTbKxROnDiBa9euRW28THiBiY5qmzdvVoNDqHD77t27qwyldNYLFGo56CCnfxYvXgyzY+X2evrpp7Fu3TrMmTMHuXLlQv/+/ZVTaiSxansNHz5cOUk2bNgQjzzyCN566y188MEHSiMQaazaZjoHDhzA7NmzMWDAAEQTK7ZbvXr18MUXX6j7iwEsZcqUQdWqVdWAF+qM8vHeZrFkSAzbi+1jbC+2X7TJjQRm6NChmDlzJhYtWuT0JsiHlm879KQ3Ss30+uc6I1u3bkXHjh2VpPz88887rWNZY6SAvg966lPtzMgtqqd1ypcvb3+rYjlGlhi3a9y4MWKJ1durRIkS6sMoDEZpMGJj+fLlaNWqFSKB1dvLCPdDk9zevXtRq1YtRIp4aLNx48YpLSb3FS2s3G6MjOKHy6kBZhTT22+/jWrVqiHR2szMDI1we/nj+uuvd4oYpFDN6EO+/HpqZ9djhwUtAaEzIp3E6Bj2xx9/uK3Xndi+/fZb+zJGcLg6sTFqgA6LTz/9tMfj0Omvfv36Tsv69OkTkKPkm2++aV+Wnp4eU6fveGovnX379qn60Qkw3MRje/3vf//TkpOTtVOnTmmRIF7ajGUZBfb3v/9diwbx0m5GGFHF6LJIOTKbuc3M6PQdrfbKidP30KFDnZy+y5cvHxGn74QUmB599FElZDDE0RgGfOHCBacwSYZOzps3T4VJuoahb9q0SUXB9OvXz2kfjCBwDSvlDcKogbFjxwYcisuwSEZyMWKke/fubmHfHPD5IDH8tFChQuo7P+fOnZP2cmmv5cuXq/BVtg/TCjD0lSGv1atX1y5duiTt5dJeS5cuVRFyDCFmCDCFJdalf//+WqSwepvp/Prrr6pD5r6jQTy0G5/NNWvWaNu3b9f+/e9/q3Dz9957T0vUNjt58qTqq3788Ud1LzFsnr+5fx1+5zI99cCiRYvUb25r1fYi+jjWrFkzrW/fvuo7UwX4gu1DIXz8+PEqfcOgQYPUPXfkyJGwt1dCCkxsME8famt0+EAz7JE5QnjT9+zZ0+mGfemllzzug+HYrhItc0owT0S1atWcjuFLon/hhRe00qVLqxuhY8eOqjMx8sADD3g8fiQ0JlZvL3bUDF9NS0tT66tUqaIe8AMHDmiRwOrtxcGrRYsWqpPMly+fVqdOHe21116LiHAZL21m1CAY889Emnhot/vvv189m9xvw4YNVR6iRG4zlvG0bx7T3/ED2b+Z2wsBlPEEhW4KbGxnapz4kmwkXO2VlF1JQRAEQRAEwQsJHyUnCIIgCILgDxGYBEEQBEEQ/CACkyAIgiAIgh9EYBIEQRAEQfCDCEyCIAiCIAh+EIFJEARBEATBDyIwCYIgCIIg+EEEJkEQBEEQBD+IwCQIgulo164dnnzyyYQ7tiAI5kUEJkEQLM2CBQvUDPecLT0c202dOhWvvPJKmGspCILVyR3rCgiCIJiJtLS0WFdBEAQTIhomQRBiyvnz59G/f38UKlQIZcuWxVtvveW0/quvvsL111+PwoULo0yZMujbty+OHTum1u3duxft27dX34sVK6Y0Rg8++KD6nZWVhdGjR6Nq1arInz8/GjVqhG+//dbvdq4muSpVquDVV1+117Fy5cqYMWMGjh8/ju7du6tlDRs2xOrVq53qvWTJErRp00Ydu2LFinj88cfVuQqCYE1EYBIEIaY8/fTTWLhwIaZPn445c+YoU9natWvt669evapMZBs2bMC0adOUsKMLNxREvvvuO/V9+/btOHz4MN577z31m8LSl19+iY8//hhbtmzBsGHD0K9fP3UsX9t54p133sFNN92EdevW4Y477sD999+vBCjuj3WtXr26+q3PZb5r1y7cdttt6N27NzZu3IhvvvlGCVBDhw6NaFsKghBBNEEQhBhx7tw5LSUlRZs8ebJ92cmTJ7X8+fNrTzzxhMdtVq1aRalEbUvmz5+vfp8+fdpe5tKlS1qBAgW0pUuXOm07YMAArU+fPl63I23btnU6duXKlbV+/frZfx8+fFht98ILL9iXLVu2TC3jOv04gwYNctrv4sWLteTkZO3ixYtBtpIgCGZAfJgEQYgZ1MRcuXIFLVq0cPIhqlWrlv33mjVr8PLLLysN0+nTp5Wpjezfvx9169b1uN+dO3fiwoULuOWWW5yW81hNmjQJup40uemULl1a/W/QoIHbMpoKaTZkXalZmjBhgr0MtU+s+549e1CnTp2g6yAIQmwRgUkQBNNCn5/OnTurD4WPkiVLKkGJvyn8eCMjI0P9//HHH1G+fHmndXnz5g26Hnny5LF/p7+Tt2W6MMfjDx48WPktuVKpUqWgjy8IQuwRgUkQhJhB3x8KHitWrLALEtQi/fHHH2jbti1+//13nDx5EmPGjFF+R8TVuTolJUX9v3btmn0ZNU8UjChccT+e8LRduGjatCm2bt2KGjVqhH3fgiDEBnH6FgQhZjDCbMCAAcrxe968edi8ebNy6E5OtnVNFKIo2HzwwQfYvXu3ik5zzZHEqDVqeGbOnKki16jdYUTdU089pRy9v/jiC2X6o3M298Pf3rYLF88++yyWLl2qnLzXr1+PHTt2KKd2cfoWBOsiApMgCDHljTfeUOH3Xbt2RadOndC6dWs0a9ZMraMJbvz48ZgyZYrSGlHT9OabbzptT5PbyJEj8dxzzylfIl0ooWD1wgsvqGg5+gwxao0mOqYZ8LVdOKDPE6PxqCnjudFv6sUXX0S5cuXCdgxBEKJLEj2/o3xMQRAEQRAESyEaJkEQBEEQBD+IwCQIgiAIguAHEZgEQRAEQRD8IAKTIAiCIAiCH0RgEgRBEARB8IMITIIgCIIgCH4QgUkQBEEQBMEPIjAJgiAIgiD4QQQmQRAEQRAEP4jAJAiCIAiC4AcRmARBEARBEPwgApMgCIIgCAJ88/+yD/BtA3bzGAAAAABJRU5ErkJggg==" }, "metadata": {}, "output_type": "display_data" } ], "execution_count": 3 }, { "cell_type": "markdown", "id": "a1b2c3d4e5f6000c", "metadata": {}, "source": [ "## Save and load through the `TimeSeries` object\n", "\n", "Same workflow as the upscaling tutorial: export to CSV, then load through `.load_data()`." ] }, { "cell_type": "code", "id": "a1b2c3d4e5f6000d", "metadata": { "ExecuteTime": { "end_time": "2026-08-25T19:24:48.289993Z", "start_time": "2026-08-25T19:24:48.242041Z" } }, "source": [ "file_csv = OUTPUT_DIR / \"time_series_gaps.csv\"\n", "df_gappy.to_csv(file_csv, sep=\";\", index=False)\n", "print(f\"Saved to: {file_csv}\")\n", "\n", "ts = TimeSeries(name=\"Gappy\", alias=\"gap\")\n", "ts.load_data(\n", " file_data=file_csv,\n", " input_dtfield=\"datetime\",\n", " input_varfield=\"level\",\n", " in_sep=\";\",\n", ")" ], "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Saved to: outputs\\time-series\\time_series_gaps.csv\n" ] } ], "execution_count": 4 }, { "cell_type": "markdown", "id": "a1b2c3d4e5f6000f", "metadata": {}, "source": [ "## Inspect the imperfect data\n", "\n", "The `.gapsize` attribute is the key threshold here: it defines, in number of consecutive missing records, how large a gap is allowed to be before it's treated as a hard break rather than something fillable. Any run of nulls **shorter** than `.gapsize` stays inside the same epoch (a \"small gap\"); any run **at or above** it breaks the series into a new epoch." ] }, { "cell_type": "code", "id": "a1b2c3d4e5f60010", "metadata": { "ExecuteTime": { "end_time": "2026-08-25T19:24:48.565457Z", "start_time": "2026-08-25T19:24:48.294274Z" } }, "source": [ "v = ts.varfield\n", "n_total = len(ts.data)\n", "n_null = ts.data[v].isna().sum()\n", "print(f\"Total records: {n_total}\")\n", "print(f\"Null records: {n_null} ({100 * n_null / n_total:.1f}%)\")\n", "print(f\"Detected native frequency (dtfreq): {ts.dtfreq}\")\n", "print(f\"Gap-size tolerance attribute (.gapsize): {ts.gapsize}\")\n", "\n", "ts.view_specs[\"n_dates\"] = 5\n", "ts.view()" ], "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Total records: 8785\n", "Null records: 678 (7.7%)\n", "Detected native frequency (dtfreq): h\n", "Gap-size tolerance attribute (.gapsize): 6\n" ] }, { "data": { "text/plain": [ "
" ], "image/png": "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" }, "metadata": {}, "output_type": "display_data" } ], "execution_count": 5 }, { "cell_type": "markdown", "id": "a1b2c3d4e5f60012", "metadata": {}, "source": [ "## Epochs\n", "\n", "An **epoch** is a continuous chunk of data where any internal gaps stay below the `.gapsize` tolerance -- only small, fillable gaps live inside an epoch. A gap at or above `.gapsize` records ends the current epoch and starts a new one; epoch `0` is reserved for the gap itself.\n", "\n", "`.get_epochs()` computes this labeling and returns (or sets, with `inplace=True`) a DataFrame with the extra `id_epoch` column." ] }, { "cell_type": "code", "id": "a1b2c3d4e5f60013", "metadata": { "ExecuteTime": { "end_time": "2026-08-25T19:24:48.776723Z", "start_time": "2026-08-25T19:24:48.575005Z" } }, "source": "df_epochs = ts.get_epochs()\ndf_epochs.head(10)", "outputs": [ { "data": { "text/plain": [ " datetime v id_epoch\n", "0 2020-01-01 00:00:00 101.986857 1\n", "1 2020-01-01 01:00:00 104.660089 1\n", "2 2020-01-01 02:00:00 112.664284 1\n", "3 2020-01-01 03:00:00 120.344550 1\n", "4 2020-01-01 04:00:00 116.530954 1\n", "5 2020-01-01 05:00:00 118.565793 1\n", "6 2020-01-01 06:00:00 126.537440 1\n", "7 2020-01-01 07:00:00 122.645609 1\n", "8 2020-01-01 08:00:00 NaN 1\n", "9 2020-01-01 09:00:00 116.643258 1" ], "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
datetimevid_epoch
02020-01-01 00:00:00101.9868571
12020-01-01 01:00:00104.6600891
22020-01-01 02:00:00112.6642841
32020-01-01 03:00:00120.3445501
42020-01-01 04:00:00116.5309541
52020-01-01 05:00:00118.5657931
62020-01-01 06:00:00126.5374401
72020-01-01 07:00:00122.6456091
82020-01-01 08:00:00NaN1
92020-01-01 09:00:00116.6432581
\n", "
" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "execution_count": 6 }, { "cell_type": "markdown", "id": "a1d2f51a741e99b5", "metadata": {}, "source": "`.update_epochs_stats()` summarizes each epoch: how many records it holds, how many small gaps it contains, and its start/end timestamps. The result is stored in `.epochs_stats`." }, { "cell_type": "code", "id": "fd8d7d8e85356a4b", "metadata": { "ExecuteTime": { "end_time": "2026-08-25T19:24:49.082891Z", "start_time": "2026-08-25T19:24:48.783499Z" } }, "source": "ts.update_epochs_stats()\nts.epochs_stats", "outputs": [ { "data": { "text/plain": [ " name id_epoch n_epoch n_gaps_small start \\\n", "0 Gappy 1 4392 137 2020-01-01 00:00:00 \n", "1 Gappy 2 1955 54 2020-07-12 01:00:00 \n", "2 Gappy 3 2003 53 2020-10-09 13:00:00 \n", "\n", " end color \n", "0 2020-07-01 23:00:00 #1b9e77 \n", "1 2020-10-01 11:00:00 #66a61e \n", "2 2020-12-31 23:00:00 #666666 " ], "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nameid_epochn_epochn_gaps_smallstartendcolor
0Gappy143921372020-01-01 00:00:002020-07-01 23:00:00#1b9e77
1Gappy21955542020-07-12 01:00:002020-10-01 11:00:00#66a61e
2Gappy32003532020-10-09 13:00:002020-12-31 23:00:00#666666
\n", "
" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "execution_count": 7 }, { "cell_type": "markdown", "id": "d2e50a684548f31c", "metadata": {}, "source": [ "`.view_epochs()` plots each epoch in its own color, with the gaps highlighted in red. With two block gaps injected, three epochs should be visible." ] }, { "cell_type": "code", "id": "85b32e8bd8f17962", "metadata": { "ExecuteTime": { "end_time": "2026-08-25T19:24:49.463813Z", "start_time": "2026-08-25T19:24:49.088626Z" } }, "source": "ts.view_epochs(show=True)", "outputs": [ { "data": { "text/plain": [ "
" ], "image/png": "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" }, "metadata": {}, "output_type": "display_data" } ], "execution_count": 8 }, { "cell_type": "markdown", "id": "7c018c96a8bd98e", "metadata": {}, "source": [ "## Interpolate small gaps\n", "\n", "`.interpolate_gaps()` fills the small gaps **within** each epoch. It never bridges the gap *between* epochs -- those records remain untouched (epoch `0` stays `NaN`).\n", "\n", "Supported methods:\n", "\n", "- ``linear``: linear interpolation\n", "- ``nearest``: uses the value of the closest data point\n", "- ``zero``: fills gaps with zeros\n", "- ``constant``: fills gaps with a constant value provided via the `constant` parameter\n", "- ``slinear``: first order spline interpolation\n", "- ``quadratic``: second order spline interpolation\n", "- ``cubic``: third order spline interpolation\n", "\n", "**Caveat:** none of these methods prevent artifact values from occurring (e.g. negative values, or spline overshoot near sharp transitions) -- check your data range afterward.\n", "\n", "With `inplace=False`, the returned DataFrame includes an `is_interpolation` flag column: `1` where the value was originally missing and got filled (or, for unfillable epoch-0 gaps, was missing and stayed `NaN`), `0` where the original value was already present. This makes it easy to later distinguish observed data from filled data downstream." ] }, { "cell_type": "code", "id": "b56589256bacfdcf", "metadata": { "ExecuteTime": { "end_time": "2026-08-25T19:24:50.174498Z", "start_time": "2026-08-25T19:24:49.471971Z" } }, "source": [ "df_interpolation_linear = ts.interpolate_gaps(method=\"linear\", inplace=False)\n", "df_interpolation_linear.head(20)" ], "outputs": [ { "data": { "text/plain": [ " datetime v id_epoch is_interpolation \\\n", "0 2020-01-01 00:00:00 101.986857 1 0 \n", "1 2020-01-01 01:00:00 104.660089 1 0 \n", "2 2020-01-01 02:00:00 112.664284 1 0 \n", "3 2020-01-01 03:00:00 120.344550 1 0 \n", "4 2020-01-01 04:00:00 116.530954 1 0 \n", "5 2020-01-01 05:00:00 118.565793 1 0 \n", "6 2020-01-01 06:00:00 126.537440 1 0 \n", "7 2020-01-01 07:00:00 122.645609 1 0 \n", "8 2020-01-01 08:00:00 NaN 1 1 \n", "9 2020-01-01 09:00:00 116.643258 1 0 \n", "10 2020-01-01 10:00:00 108.513976 1 0 \n", "11 2020-01-01 11:00:00 103.717872 1 0 \n", "12 2020-01-01 12:00:00 101.409023 1 0 \n", "13 2020-01-01 13:00:00 87.648436 1 0 \n", "14 2020-01-01 14:00:00 NaN 1 1 \n", "15 2020-01-01 15:00:00 84.160178 1 0 \n", "16 2020-01-01 16:00:00 79.216394 1 0 \n", "17 2020-01-01 17:00:00 82.563462 1 0 \n", "18 2020-01-01 18:00:00 77.029655 1 0 \n", "19 2020-01-01 19:00:00 75.730782 1 0 \n", "\n", " v_interpolation \n", "0 101.986857 \n", "1 104.660089 \n", "2 112.664284 \n", "3 120.344550 \n", "4 116.530954 \n", "5 118.565793 \n", "6 126.537440 \n", "7 122.645609 \n", "8 119.644434 \n", "9 116.643258 \n", "10 108.513976 \n", "11 103.717872 \n", "12 101.409023 \n", "13 87.648436 \n", "14 85.904307 \n", "15 84.160178 \n", "16 79.216394 \n", "17 82.563462 \n", "18 77.029655 \n", "19 75.730782 " ], "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
datetimevid_epochis_interpolationv_interpolation
02020-01-01 00:00:00101.98685710101.986857
12020-01-01 01:00:00104.66008910104.660089
22020-01-01 02:00:00112.66428410112.664284
32020-01-01 03:00:00120.34455010120.344550
42020-01-01 04:00:00116.53095410116.530954
52020-01-01 05:00:00118.56579310118.565793
62020-01-01 06:00:00126.53744010126.537440
72020-01-01 07:00:00122.64560910122.645609
82020-01-01 08:00:00NaN11119.644434
92020-01-01 09:00:00116.64325810116.643258
102020-01-01 10:00:00108.51397610108.513976
112020-01-01 11:00:00103.71787210103.717872
122020-01-01 12:00:00101.40902310101.409023
132020-01-01 13:00:0087.6484361087.648436
142020-01-01 14:00:00NaN1185.904307
152020-01-01 15:00:0084.1601781084.160178
162020-01-01 16:00:0079.2163941079.216394
172020-01-01 17:00:0082.5634621082.563462
182020-01-01 18:00:0077.0296551077.029655
192020-01-01 19:00:0075.7307821075.730782
\n", "
" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "execution_count": 9 }, { "cell_type": "markdown", "id": "a1b2c3d4e5f60014", "metadata": {}, "source": "Quick check: how many records were actually filled, versus how many stayed as unfillable gaps (epoch 0)?" }, { "cell_type": "code", "id": "a1b2c3d4e5f60015", "metadata": { "ExecuteTime": { "end_time": "2026-08-25T19:24:50.186846Z", "start_time": "2026-08-25T19:24:50.182553Z" } }, "source": [ "n_filled = df_interpolation_linear[\"is_interpolation\"].sum()\n", "n_still_na = df_interpolation_linear[f\"{v}_interpolation\"].isna().sum()\n", "print(f\"Records flagged as interpolation: {n_filled}\")\n", "print(f\"Records still NaN after interpolation (epoch-0 / between-epoch gaps): {n_still_na}\")" ], "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Records flagged as interpolation: 678\n", "Records still NaN after interpolation (epoch-0 / between-epoch gaps): 435\n" ] } ], "execution_count": 10 }, { "cell_type": "code", "id": "21e46de3c43c1b6b", "metadata": { "ExecuteTime": { "end_time": "2026-08-25T19:24:50.393142Z", "start_time": "2026-08-25T19:24:50.196629Z" } }, "source": [ "df_interpolation_nearest = ts.interpolate_gaps(method=\"nearest\", inplace=False)\n", "df_interpolation_nearest.head(20)" ], "outputs": [ { "data": { "text/plain": [ " datetime v id_epoch is_interpolation \\\n", "0 2020-01-01 00:00:00 101.986857 1 0 \n", "1 2020-01-01 01:00:00 104.660089 1 0 \n", "2 2020-01-01 02:00:00 112.664284 1 0 \n", "3 2020-01-01 03:00:00 120.344550 1 0 \n", "4 2020-01-01 04:00:00 116.530954 1 0 \n", "5 2020-01-01 05:00:00 118.565793 1 0 \n", "6 2020-01-01 06:00:00 126.537440 1 0 \n", "7 2020-01-01 07:00:00 122.645609 1 0 \n", "8 2020-01-01 08:00:00 NaN 1 1 \n", "9 2020-01-01 09:00:00 116.643258 1 0 \n", "10 2020-01-01 10:00:00 108.513976 1 0 \n", "11 2020-01-01 11:00:00 103.717872 1 0 \n", "12 2020-01-01 12:00:00 101.409023 1 0 \n", "13 2020-01-01 13:00:00 87.648436 1 0 \n", "14 2020-01-01 14:00:00 NaN 1 1 \n", "15 2020-01-01 15:00:00 84.160178 1 0 \n", "16 2020-01-01 16:00:00 79.216394 1 0 \n", "17 2020-01-01 17:00:00 82.563462 1 0 \n", "18 2020-01-01 18:00:00 77.029655 1 0 \n", "19 2020-01-01 19:00:00 75.730782 1 0 \n", "\n", " v_interpolation \n", "0 101.986857 \n", "1 104.660089 \n", "2 112.664284 \n", "3 120.344550 \n", "4 116.530954 \n", "5 118.565793 \n", "6 126.537440 \n", "7 122.645609 \n", "8 122.645609 \n", "9 116.643258 \n", "10 108.513976 \n", "11 103.717872 \n", "12 101.409023 \n", "13 87.648436 \n", "14 87.648436 \n", "15 84.160178 \n", "16 79.216394 \n", "17 82.563462 \n", "18 77.029655 \n", "19 75.730782 " ], "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
datetimevid_epochis_interpolationv_interpolation
02020-01-01 00:00:00101.98685710101.986857
12020-01-01 01:00:00104.66008910104.660089
22020-01-01 02:00:00112.66428410112.664284
32020-01-01 03:00:00120.34455010120.344550
42020-01-01 04:00:00116.53095410116.530954
52020-01-01 05:00:00118.56579310118.565793
62020-01-01 06:00:00126.53744010126.537440
72020-01-01 07:00:00122.64560910122.645609
82020-01-01 08:00:00NaN11122.645609
92020-01-01 09:00:00116.64325810116.643258
102020-01-01 10:00:00108.51397610108.513976
112020-01-01 11:00:00103.71787210103.717872
122020-01-01 12:00:00101.40902310101.409023
132020-01-01 13:00:0087.6484361087.648436
142020-01-01 14:00:00NaN1187.648436
152020-01-01 15:00:0084.1601781084.160178
162020-01-01 16:00:0079.2163941079.216394
172020-01-01 17:00:0082.5634621082.563462
182020-01-01 18:00:0077.0296551077.029655
192020-01-01 19:00:0075.7307821075.730782
\n", "
" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "execution_count": 11 }, { "cell_type": "markdown", "id": "6b80c8ed89d9052", "metadata": {}, "source": "Testing with the `constant` approach -- useful for flagging filled values distinctly rather than blending them into the natural range of the data:" }, { "cell_type": "code", "id": "fadf2c03df357660", "metadata": { "ExecuteTime": { "end_time": "2026-08-25T19:24:50.601108Z", "start_time": "2026-08-25T19:24:50.399752Z" } }, "source": [ "df_interpolation_constant = ts.interpolate_gaps(method=\"constant\", constant=666, inplace=False)\n", "df_interpolation_constant.head(20)" ], "outputs": [ { "data": { "text/plain": [ " datetime v id_epoch is_interpolation \\\n", "0 2020-01-01 00:00:00 101.986857 1 0 \n", "1 2020-01-01 01:00:00 104.660089 1 0 \n", "2 2020-01-01 02:00:00 112.664284 1 0 \n", "3 2020-01-01 03:00:00 120.344550 1 0 \n", "4 2020-01-01 04:00:00 116.530954 1 0 \n", "5 2020-01-01 05:00:00 118.565793 1 0 \n", "6 2020-01-01 06:00:00 126.537440 1 0 \n", "7 2020-01-01 07:00:00 122.645609 1 0 \n", "8 2020-01-01 08:00:00 NaN 1 1 \n", "9 2020-01-01 09:00:00 116.643258 1 0 \n", "10 2020-01-01 10:00:00 108.513976 1 0 \n", "11 2020-01-01 11:00:00 103.717872 1 0 \n", "12 2020-01-01 12:00:00 101.409023 1 0 \n", "13 2020-01-01 13:00:00 87.648436 1 0 \n", "14 2020-01-01 14:00:00 NaN 1 1 \n", "15 2020-01-01 15:00:00 84.160178 1 0 \n", "16 2020-01-01 16:00:00 79.216394 1 0 \n", "17 2020-01-01 17:00:00 82.563462 1 0 \n", "18 2020-01-01 18:00:00 77.029655 1 0 \n", "19 2020-01-01 19:00:00 75.730782 1 0 \n", "\n", " v_interpolation \n", "0 101.986857 \n", "1 104.660089 \n", "2 112.664284 \n", "3 120.344550 \n", "4 116.530954 \n", "5 118.565793 \n", "6 126.537440 \n", "7 122.645609 \n", "8 666.000000 \n", "9 116.643258 \n", "10 108.513976 \n", "11 103.717872 \n", "12 101.409023 \n", "13 87.648436 \n", "14 666.000000 \n", "15 84.160178 \n", "16 79.216394 \n", "17 82.563462 \n", "18 77.029655 \n", "19 75.730782 " ], "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
datetimevid_epochis_interpolationv_interpolation
02020-01-01 00:00:00101.98685710101.986857
12020-01-01 01:00:00104.66008910104.660089
22020-01-01 02:00:00112.66428410112.664284
32020-01-01 03:00:00120.34455010120.344550
42020-01-01 04:00:00116.53095410116.530954
52020-01-01 05:00:00118.56579310118.565793
62020-01-01 06:00:00126.53744010126.537440
72020-01-01 07:00:00122.64560910122.645609
82020-01-01 08:00:00NaN11666.000000
92020-01-01 09:00:00116.64325810116.643258
102020-01-01 10:00:00108.51397610108.513976
112020-01-01 11:00:00103.71787210103.717872
122020-01-01 12:00:00101.40902310101.409023
132020-01-01 13:00:0087.6484361087.648436
142020-01-01 14:00:00NaN11666.000000
152020-01-01 15:00:0084.1601781084.160178
162020-01-01 16:00:0079.2163941079.216394
172020-01-01 17:00:0082.5634621082.563462
182020-01-01 18:00:0077.0296551077.029655
192020-01-01 19:00:0075.7307821075.730782
\n", "
" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "execution_count": 12 }, { "cell_type": "markdown", "id": "466df72cb8fefc56", "metadata": {}, "source": [ "## Apply in place\n", "\n", "`inplace=True` burns the interpolated values directly into `ts.data` (note: the `is_interpolation` flag itself is only returned in the `inplace=False` DataFrame -- it is not currently persisted onto the object)." ] }, { "cell_type": "code", "id": "a3f1c82d5d770e3", "metadata": { "ExecuteTime": { "end_time": "2026-08-25T19:24:50.833998Z", "start_time": "2026-08-25T19:24:50.606565Z" } }, "source": "ts.interpolate_gaps(method=\"linear\", inplace=True)", "outputs": [], "execution_count": 13 }, { "cell_type": "markdown", "id": "d5c7a09bce4b14d9", "metadata": {}, "source": "Re-running the epoch analysis should now show zero small gaps per epoch -- only the between-epoch gaps remain:" }, { "cell_type": "code", "id": "6c59f7f098bb38c3", "metadata": { "ExecuteTime": { "end_time": "2026-08-25T19:24:51.048391Z", "start_time": "2026-08-25T19:24:50.839232Z" } }, "source": [ "ts.update_epochs_stats()\n", "ts.epochs_stats" ], "outputs": [ { "data": { "text/plain": [ " name id_epoch n_epoch n_gaps_small start \\\n", "0 Gappy 1 4392 0 2020-01-01 00:00:00 \n", "1 Gappy 2 1955 0 2020-07-12 01:00:00 \n", "2 Gappy 3 2003 0 2020-10-09 13:00:00 \n", "\n", " end color \n", "0 2020-07-01 23:00:00 #1b9e77 \n", "1 2020-10-01 11:00:00 #66a61e \n", "2 2020-12-31 23:00:00 #666666 " ], "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nameid_epochn_epochn_gaps_smallstartendcolor
0Gappy1439202020-01-01 00:00:002020-07-01 23:00:00#1b9e77
1Gappy2195502020-07-12 01:00:002020-10-01 11:00:00#66a61e
2Gappy3200302020-10-09 13:00:002020-12-31 23:00:00#666666
\n", "
" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "execution_count": 14 }, { "cell_type": "markdown", "id": "45a7863b002f199d", "metadata": {}, "source": "View epochs again -- there should be no red line marking small gaps:" }, { "cell_type": "code", "id": "dfbf15b140184d2e", "metadata": { "ExecuteTime": { "end_time": "2026-08-25T19:24:51.191779Z", "start_time": "2026-08-25T19:24:51.054804Z" } }, "source": "ts.view_epochs(show=True)", "outputs": [ { "data": { "text/plain": [ "
" ], "image/png": "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" }, "metadata": {}, "output_type": "display_data" } ], "execution_count": 15 }, { "cell_type": "markdown", "id": "a1b2c3d4e5f60016", "metadata": {}, "source": [ "## Recap\n", "\n", "- Gaps come in two flavors: small (fillable) and large (epoch-breaking), separated by the `.gapsize` threshold.\n", "- `.get_epochs()` / `.update_epochs_stats()` / `.view_epochs()` let you inspect and visualize epoch structure before deciding how to handle gaps.\n", "- `.interpolate_gaps()` fills only the small, within-epoch gaps; between-epoch gaps require a different strategy (e.g. an external predictor) and are out of scope here.\n", "- The `is_interpolation` flag column (returned with `inplace=False`) lets you track which values are observed versus filled -- useful for downstream QA or for excluding filled values from certain analyses.\n", "- This tutorial deliberately stopped before combining gap-filling with `.scale_up()` -- that pairing (clean first vs. tolerate via `bad_max`) is a natural next tutorial." ] } ], "metadata": { "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 5 }