{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#| hide\n", "!pip install -Uqq nixtla" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#| hide \n", "from nixtla.utils import in_colab" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#| hide \n", "IN_COLAB = in_colab()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#| hide\n", "if not IN_COLAB:\n", " from nixtla.utils import colab_badge\n", " from dotenv import load_dotenv" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Introduction to Online (Real-Time) Anomaly Detection\n", "In this notebook, we introduce the `detect_anomalies_online` method. You will learn how to quickly start using this new endpoint and understand its key differences from the historical anomaly detection endpoint. New features include:\n", "* More flexibility and control over the anomaly detection process\n", "* Perform univariate and multivariate anomaly detection\n", "* Detect anomalies on stream data" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "[![](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Nixtla/nixtla/blob/main/nbs/docs/capabilities/online-anomaly-detection/01_quickstart.ipynb)" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#| echo: false\n", "if not IN_COLAB:\n", " load_dotenv()\n", " colab_badge('docs/capabilities/online-anomaly-detection/01_quickstart')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "from nixtla import NixtlaClient\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "nixtla_client = NixtlaClient(\n", " # defaults to os.environ.get(\"NIXTLA_API_KEY\")\n", " api_key = 'my_api_key_provided_by_nixtla'\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "> 👍 Use an Azure AI endpoint\n", "> \n", "> To use an Azure AI endpoint, set the `base_url` argument:\n", "> \n", "> `nixtla_client = NixtlaClient(base_url=\"you azure ai endpoint\", api_key=\"your api_key\")`" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#| hide\n", "if not IN_COLAB:\n", " nixtla_client = NixtlaClient()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. Dataset\n", "In this notebook, we use a minute-level time series dataset that monitors server usage. This is a good example of a streaming data scenario, as the task is to detect server failures or downtime." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df = pd.read_csv('https://datasets-nixtla.s3.us-east-1.amazonaws.com/machine-1-1.csv', parse_dates=['ts'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We observe that the time series remains stable during the initial period; however, a spike occurs in the last 20 steps, indicating an anomalous behavior. Our goal is to capture this abnormal jump as soon as it appears. Let's see how the real-time anomaly detection capability of TimeGPT performs in this scenario!" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA94AAADrCAYAAACfMk6oAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAABdzUlEQVR4nO3dd1yT1/4H8E8SslgBHAxBROvEjVbRuuqg2lqt9WprHdQur7XLtrZ22dqhXdbaXq29tfLruI5eR623rRutSp04UauCQjWIA8JOSPL8/gh5SCBAQAIBPu/XK6+XPHlychJOMN/n+z3nSARBEEBERERERERELiGt6w4QERERERERNWQMvImIiIiIiIhciIE3ERERERERkQsx8CYiIiIiIiJyIQbeRERERERERC7EwJuIiIiIiIjIhRh4ExEREREREbkQA28iIiIiIiIiF2LgTURERERERORCDLyJiIhuk0QiceoWHx+P2NhYtGrVqq67bCctLQ0zZ85Eu3btoFarERAQgC5duuCJJ55AWlpajT5XXFwcJBIJLl26VKPtEhERuTOPuu4AERFRfZeQkGD387vvvotdu3Zh586ddsc7deqEsLAwPPfcc7XZvQr9/fff6NmzJ/z8/PDiiy+iffv20Ol0SEpKwtq1a5GcnIywsLAae757770XCQkJCA4OrrE2iYiI3J1EEAShrjtBRETUkMTGxuK///0vcnNz67orlZo3bx7mz5+P5ORkRERElLnfbDZDKr39ArmCggKoVCpIJJLbbouIiKi+Yak5ERFRLXJUai6RSDBr1iysXLkS7du3h1qtRq9evfDnn39CEAR8/PHHiIiIgLe3N+6++25cuHChTLvbt2/H0KFD4evrC09PT/Tv3x87duyotD83b96EVCpF8+bNHd5fOug+fPgw7r//fgQEBEClUqFHjx5Yu3at3TnWcvKtW7di+vTpaNasGTw9PaHX68stNXem/9evX8eTTz6JsLAwKJVKNGvWDP3798f27dsrfZ1ERER1iYE3ERGRG9i8eTO++eYbLFy4EKtWrUJOTg7uvfdevPjii9i3bx++/PJLfP3110hKSsKDDz4I24K1H374ASNGjICvry/+7//+D2vXrkVAQABiYmIqDb6jo6NhNpsxbtw4bNmyBdnZ2eWeu2vXLvTv3x9ZWVn46quv8PPPP6N79+6YOHEi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y2Aw4MiRI3j11Vftjo8YMQL79+93+JiEhASMGDHC7lhMTAxWrFiBoqIiyOVyJCQk4IUXXihzzuLFi8vti16vh15fUjaXnW3Z3/Ovv57hHG835Okph6enHC1a1FyblvJxVaX7NqrVcqjVcgQH+1R4HhERERERkStU6XLHjRs3YDKZEBgYaHc8MDAQ6enpDh+Tnp7u8Hyj0YgbN25UeE55bQLAggULoNFoxFtYWFi55xIRERERERHVlWrVGZSexycIQoVz+xydX/p4VducO3cudDqdeEtLS3O6/0RERERERES1pUql5k2bNoVMJiuTic7IyCiTsbYKCgpyeL6HhweaNGlS4TnltQkASqUSSqXj1VOJiIiIiIiI3EWVMt4KhQJRUVHYtm2b3fFt27ahX79+Dh8THR1d5vytW7eiV69ekMvlFZ5TXptERERERERE9UWVN9OcPXs2pkyZgl69eiE6Ohpff/01UlNTxX25586diytXruC7774DYFnB/Msvv8Ts2bPxxBNPICEhAStWrLBbrfy5557DwIED8eGHH2LMmDH4+eefsX37duzdu9fpflnL162LrBERERER1WemAhNy8rIh0Ush8Sg1LdMoQDCaIWRLICviquZUsYrGEpWozufKGn9WulmYUA3/+te/hPDwcEGhUAg9e/YUdu/eLd43bdo0YdCgQXbnx8fHCz169BAUCoXQqlUrYdmyZWXa/Omnn4T27dsLcrlc6NChg7Bu3boq9enixYsCAN5444033njjjTfeeOONN954q9XbxYsXK4xXq7yPt7vKysqCv78/UlNTodFo6ro75KZ69+6NQ4cO1XU3iFyK45waC451agw4zqmxqK9jXafToWXLlsjMzISfn1+551W51NxdSaWW6eoajYb7eFO5ZDIZxwc1eBzn1FhwrFNjwHFOjUV9H+vWeLTc+2upH0Ru4emnn67rLhC5HMc5NRYc69QYcJxTY9HQx3qDKTXPzs6GRqOBTqer11dKiIiIiIiIqH5wNg5tMBlvpVKJefPmcW9vIiIiIiIiqhXOxqENJuNNRERERERE5I4aTMabiIiIiIiIyB0x8CYiIiIiIiJyIQbe5Pb27NmD0aNHIyQkBBKJBBs3brS7Pzc3F7NmzUJoaCjUajU6duyIZcuWVdruyZMnMWjQIKjVarRo0QLz589H6ZkXu3fvRlRUFFQqFVq3bo2vvvqqJl8akZ3Kxvq1a9cQGxuLkJAQeHp64p577sH58+crbZdjndzJggUL0Lt3b/j4+KB58+YYO3Yszp07Z3eOIAh4++23ERISArVajcGDB+P06dOVts2xTu7CmXG+fv16xMTEoGnTppBIJDh27JhTbXOckzupbKwXFRXhlVdeQZcuXeDl5YWQkBBMnToVV69erbTthjbWGXiT28vLy0O3bt3w5ZdfOrz/hRdewO+//44ffvgBZ86cwQsvvIBnnnkGP//8c7ltZmdnY/jw4QgJCcGhQ4fwxRdf4JNPPsGiRYvEc1JSUjBq1CgMGDAAiYmJeO211/Dss89i3bp1Nf4aiYCKx7ogCBg7diySk5Px888/IzExEeHh4Rg2bBjy8vLKbZNjndzN7t278fTTT+PPP//Etm3bYDQaMWLECLtx/NFHH2HRokX48ssvcejQIQQFBWH48OHIyckpt12OdXInzozzvLw89O/fHwsXLnS6XY5zcjeVjfX8/HwcPXoUb775Jo4ePYr169fjr7/+wv33319huw1yrAtE9QgAYcOGDXbHIiMjhfnz59sd69mzp/DGG2+U287SpUsFjUYjFBYWiscWLFgghISECGazWRAEQZgzZ47QoUMHu8c99dRTQt++fW/zVRBVrvRYP3funABAOHXqlHjMaDQKAQEBwr///e9y2+FYJ3eXkZEhABB2794tCIIgmM1mISgoSFi4cKF4TmFhoaDRaISvvvqq3HY41smdlR7ntlJSUgQAQmJiYqXtcJyTu6torFsdPHhQACBcvny53HMa4lhnxpvqvbvuugubNm3ClStXIAgCdu3ahb/++gsxMTHiObGxsRg8eLD4c0JCAgYNGmS37H9MTAyuXr2KS5cuieeMGDHC7rliYmJw+PBhFBUVufQ1EZWm1+sBACqVSjwmk8mgUCiwd+9e8RjHOtU3Op0OABAQEADAksFIT0+3G5NKpRKDBg3C/v37xWMc61SflB7nzuI4p/rGmbGu0+kgkUjg5+cnHmsMY52BN9V7S5YsQadOnRAaGgqFQoF77rkHS5cuxV133SWeExwcjJYtW4o/p6enIzAw0K4d68/p6ekVnmM0GnHjxg1XvRwihzp06IDw8HDMnTsXmZmZMBgMWLhwIdLT06HVasXzONapPhEEAbNnz8Zdd92Fzp07AygZl47GpPU+gGOd6g9H49xZHOdUnzgz1gsLC/Hqq69i0qRJ8PX1FY83hrHuUdcdILpdS5YswZ9//olNmzYhPDwce/bswcyZMxEcHIxhw4YBsCz8UJpEIrH7WSherMH2uDPnENUGuVyOdevW4bHHHkNAQABkMhmGDRuGkSNH2p3HsU71yaxZs3DixAm7qg0rR2PS9hjHOtUXFY3zynCcU31S2VgvKirCQw89BLPZjKVLl9rd1xjGOgNvqtcKCgrw2muvYcOGDbj33nsBAF27dsWxY8fwySefiIF3aUFBQXaZEwDIyMgAUHI1rbxzPDw80KRJk5p+KUSVioqKwrFjx6DT6WAwGNCsWTP06dMHvXr1KvcxHOvkrp555hls2rQJe/bsQWhoqHg8KCgIgCWTERwcLB7PyMgok9mwxbFO7qi8cV5dHOfkriob60VFRZgwYQJSUlKwc+dOu2y3Iw1xrLPUnOq1oqIiFBUVQSq1H8oymQxms7ncx0VHR2PPnj0wGAzisa1btyIkJAStWrUSz9m2bZvd47Zu3YpevXpBLpfX3IsgqiKNRoNmzZrh/PnzOHz4MMaMGVPuuRzr5G4EQcCsWbOwfv167Ny5ExEREXb3R0REICgoyG5MGgwG7N69G/369Su3XY51cieVjfPq4jgnd+PMWLcG3efPn8f27dudCoob5Fiv7dXciKoqJydHSExMFBITEwUAwqJFi4TExERxJcRBgwYJkZGRwq5du4Tk5GRh5cqVgkqlEpYuXSq28eqrrwpTpkwRf87KyhICAwOFhx9+WDh58qSwfv16wdfXV/jkk0/Ec5KTkwVPT0/hhRdeEJKSkoQVK1YIcrlc+O9//1t7L54alcrG+tq1a4Vdu3YJFy9eFDZu3CiEh4cL48aNs2uDY53c3T//+U9Bo9EI8fHxglarFW/5+fniOQsXLhQ0Go2wfv164eTJk8LDDz8sBAcHC9nZ2eI5HOvkzpwZ5zdv3hQSExOF//3vfwIAYfXq1UJiYqKg1WrFczjOyd1VNtaLioqE+++/XwgNDRWOHTtmd45erxfbaQxjnYE3ub1du3YJAMrcpk2bJgiCIGi1WiE2NlYICQkRVCqV0L59e+HTTz8VtxoQBEGYNm2aMGjQILt2T5w4IQwYMEBQKpVCUFCQ8Pbbb9s9RhAEIT4+XujRo4egUCiEVq1aCcuWLXP1y6VGrLKx/vnnnwuhoaGCXC4XWrZsKbzxxht2/2kJAsc6uT9HYxyAsHLlSvEcs9kszJs3TwgKChKUSqUwcOBA4eTJk3btcKyTO3NmnK9cudLhOfPmzRPP4Tgnd1fZWLdul+fotmvXLrGdxjDWJYJQPAOdiIiIiIiIiGoc53gTERERERERuRADbyIiIiIiIiIXYuBNRERERERE5EIMvImIiIiIiIhciIE3ERERERERkQsx8CYiIiIiIiJyIQbeRERERERERC7EwJuIiIiIiIjIhRh4ExERNTKDBw/G888/X9fdICIiajQYeBMRERERERG5EANvIiKiRiQ2Nha7d+/G559/DolEAolEgsTERDzyyCNo1qwZ1Go12rZti5UrV9Z1V4mIiBoMj7ruABEREdWezz//HH/99Rc6d+6M+fPnAwDeeecdJCUl4bfffkPTpk1x4cIFFBQU1HFPiYiIGg4G3kRERI2IRqOBQqGAp6cngoKCAABXrlxBjx490KtXLwBAq1at6rCHREREDQ9LzYmIiBq5f/7zn1i9ejW6d++OOXPmYP/+/XXdJSIiogaFgTcREVEjN3LkSFy+fBnPP/88rl69iqFDh+Kll16q624RERE1GAy8iYiIGhmFQgGTyWR3rFmzZoiNjcUPP/yAxYsX4+uvv66j3hERETU8nONNRETUyLRq1QoHDhzApUuX4O3tjSVLliAqKgqRkZHQ6/XYvHkzOnbsWNfdJCIiajCY8SYiImpkXnrpJchkMnTq1AnNmjWDQqHA3Llz0bVrVwwcOBAymQyrV6+u624SERE1GBJBEIS67gQRERERERFRQ8WMNxEREREREZELMfAmIiIiIiIiciEG3kREREREREQuxMCbiIiIiIiIyIUYeBMRERERERG5EANvIiIiIiIiIhdi4E1ERERERETkQgy8iYiIiIiIiFyIgTcRERERERGRCzHwJiIiIiIiInIhBt5ERERERERELsTAm4iIiIiIiMiF/h+7kGTIkh8tuQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#| echo: false\n", "ax = df.tail(300).plot(x='ts', y='y', color = 'navy', title='Time Series', figsize=(12, 2))\n", "plt.axvspan('2020-02-01 21:00:00', '2020-02-01 21:02:00', color='orchid', alpha=0.3, label='Anomalous Period')\n", "plt.axvspan('2020-02-01 21:47:00', '2020-02-01 22:11:00', color='orchid', alpha=0.3)\n", "ax.legend(['Time Series', 'Anomalous Period'])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2. Detect anomalies in real time\n", "The `detect_anomalies_online` method detect anomalies in a time series leveraging TimeGPT's forecast power. It uses the forecast error in deciding the anomalous step so you can specify and tune the parameters like that of the `forecast` method. This function will return a dataframe that contains anomaly flags and anomaly score (its absolute value quantifies the abnormality of the value).\n", "\n", "To perfom real-time anomaly detection, set the following parameters:\n", "\n", "- `df`: A pandas DataFrame containing the time series data.\n", "- `time_col`: The column that identifies the datestamp.\n", "- `target_col`: The variable to forecast.\n", "- `h`: Horizon is the number of steps ahead to make forecast.\n", "- `freq`: The frequency of the time series in Pandas format.\n", "- `level`: Percentile of scores distribution at which the threshold is set, controlling how strictly anomalies are flagged. Default at 99%.\n", "- `detection_size`: The number of steps to analyze for anomaly at the end of time series." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO:nixtla.nixtla_client:Validating inputs...\n", "INFO:nixtla.nixtla_client:Preprocessing dataframes...\n", "INFO:nixtla.nixtla_client:Calling Online Anomaly Detector Endpoint...\n" ] }, { "data": { "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", "
unique_idtsyTimeGPTanomalyanomaly_scoreTimeGPT-hi-99TimeGPT-lo-99
95machine-1-1_y_292020-02-01 22:11:000.6060170.544625True18.4632660.5531610.536090
96machine-1-1_y_292020-02-01 22:12:000.0444130.570869True-158.9338500.5794040.562333
97machine-1-1_y_292020-02-01 22:13:000.0386820.560303True-157.4748800.5688390.551767
98machine-1-1_y_292020-02-01 22:14:000.0243550.521797True-150.1782400.5303330.513261
99machine-1-1_y_292020-02-01 22:15:000.0444130.467860True-127.8485600.4763960.459325
\n", "
" ], "text/plain": [ " unique_id ts y TimeGPT anomaly \\\n", "95 machine-1-1_y_29 2020-02-01 22:11:00 0.606017 0.544625 True \n", "96 machine-1-1_y_29 2020-02-01 22:12:00 0.044413 0.570869 True \n", "97 machine-1-1_y_29 2020-02-01 22:13:00 0.038682 0.560303 True \n", "98 machine-1-1_y_29 2020-02-01 22:14:00 0.024355 0.521797 True \n", "99 machine-1-1_y_29 2020-02-01 22:15:00 0.044413 0.467860 True \n", "\n", " anomaly_score TimeGPT-hi-99 TimeGPT-lo-99 \n", "95 18.463266 0.553161 0.536090 \n", "96 -158.933850 0.579404 0.562333 \n", "97 -157.474880 0.568839 0.551767 \n", "98 -150.178240 0.530333 0.513261 \n", "99 -127.848560 0.476396 0.459325 " ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "anomaly_online = nixtla_client.detect_anomalies_online(\n", " df,\n", " time_col='ts', \n", " target_col='y', \n", " freq='min', # Specify the frequency of the data\n", " h=10, # Specify the forecast horizon\n", " level=99, # Set the confidence level for anomaly detection\n", " detection_size=100 # How many steps you want for analyzing anomalies\n", ")\n", "anomaly_online.tail()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "> 📘 In this example, we use a detection size of 100 to illustrate the anomaly detection process. In practice, using a smaller detection size and running the detection more frequently improves granularity and enables more timely identification of anomalies as they occur." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From the plot, we observe that both anomalous periods were detected right as they arose. For further methods on improving detection accuracy and customizing anomaly detection, read our other tutorials on online anomaly detection." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "image/png": "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4rWlbt06xgx8IqRzZ0p1YJ988gnFxcVce+21xMfHRz128cUXM2/evDrrNtXl3nvv5dJLL2X06NFMnTqVjz/+mA8//LDBmfKaom/fvnz44Yece+65KIrCI488EpWdVZ/rrruOc845h2AwyNVXX92kbeXl5eHxePB6vXz//fe89dZbkRpksbGx3HPPPdx5551omsZJJ51EWVkZq1atwuFwNHkbTd2fK664gkcffRSfz8ecOXPqXV9MTAw33XQT9957L0lJSfTo0YNnn30Wl8vFtdde26Q+hYVrQN1yyy2UlZUxY8YMsrKyOHDgAG+++SYOh4MXXniBvn378sEHH7Bq1SoSExN58cUXycnJqRUE279/P3fddRc33HAD69ev589//jMvvPBC5PGsrCyWL1/OZZddhsViISUlhcmTJ5Ofn8+zzz7LxRdfzGeffcb//vc/4uLiGuz7FVdcwXPPPcd5553H448/Trdu3cjOzubDDz/k3nvvpVu3btx+++386U9/ol+/fgwaNIgXX3wxEmg7llXPvBd95UkpK0OpDLTadsOZUi6Xn/JyH3FxnWtaWSGEEKI+hYWHTUBSpbWPzSIkXHS7rTKl0qoypfKaEZQ6lFc9855iULB0sWLpYiVYEcB7wIPX6Y3OnkoxY+lmxZTSPtlT1iw71p42vDleNJeGaq8astdIXwLlgUhBbWuvzpU52LVrHHCwQ8zAJzp7plQHNm/ePE477bRaASmAiy66iI0bN7J+/fomrev888/npZde4rnnnmPIkCG8+uqrLFiwgMmTJx9VH+fMmUNiYiITJ07k3HPPZdq0aYwePbrR55122mlkZmYybdo0unTp0qRtDRgwgMzMTPr27cv999/PDTfcwJ///OfI40888QS///3vefrppxk0aBDTpk3j448/plevXi2+P5dccgmFhYW4XC7OP//8Btf5pz/9iYsuuoirrrqK0aNHs3PnTj7//POooZdNdfPNN/PFF19w8OBBLrjgAgYOHMh1111HXFxcpLj5I488wujRo5k2bRqTJ08mIyOjzj7OmDEDt9vNCSecwO9+9ztuvfVWrr/++sjjjz/+OHv37qVPnz6RIXaDBg3ib3/7G3/9618ZMWIE33//fVRR9frY7XaWL19Ojx49uPDCCxk0aBDXXHMNbrc7EtC6++67mTFjBjNnzmTChAnExsZywQUX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d999x/PPP8+UKVMi65g1a1YkGHP//fczYcIEHnnkEaZNmwbA7bffzqxZsyLtR4wYwYgRIyL3//jHP7J48WL+85//RAVjwr788ks2bdrEnj176N69OwBvvfUWQ4YM4YcffmDcuHGNvh5Op5NAIMCFF15Iz549ARg2bFijzwurrKxk9uzZGAwGTj31VF555RVGjx7NU089FWkzf/58unfvzi+//EL//v0B6Nu3L88++2y963377bdxu928+eabxMSEDnp/+ctfOPfcc3nmmWdIT09n7ty5zJ49m4suugiAv//973z++edN7rs4dgQCGsXFodldap34Kgp6t+5oFi+0chHN5GQ7JpMBvz9IXl4lXbrEtur2hBBCiI6qosKHzxcaQlZr9r02PDZ3RsHKqnpSVgOK2j6vb7imVF4DNaVywplSEpTqNMJBqQMHpKZUe+r0mVId2fbt2/n++++57LLLADAajUyfPp358+fXajt8+PDI75mZmQDk5eUBsHXrViZNmhTVftKkSWzdurXedaSnpwPRAZ/09HQ8Hg9lZaFIcmVlJffddx+DBw8mISEBh8PBtm3b6s2U2rp1K927d48EpIDIcw/vS31GjBjB1KlTGTZsGJdccgmvvfYaxcXFjT5v4sSJOBwOYmNj+fjjj1m4cCHDhg1j3bp1fPPNNzgcjsht4MCBAFFDFceOHdvg+rdu3cqIESMiASkIvcaaprF9+3ZKS0txOp1MmDAh8rjRaGx0veLYVFTkRtd1DAaVhITDphS2WNBf+gvue54Hs6VV+6GqCunpof9JmYFPCCFEZxbOknI4zFgsh12Xb8Njc2ekudtv5r2w9JSGM6XcHj/FpaELihKU6jyqg1JlUlalHUmmVAc2b948AoEAXbt2jSzTdR2TyURxcTGJiYmR5SaTKfJ7eApTTdNqLau5nsOX1bWOhtZ777338vnnn/P888/Tt29fbDYbF198MT6fr879qWubhy9XVbXWB4Lf74/8bjAYWLJkCatWreKLL77gz3/+Mw899BBr1qxpsGj5okWLIgGw5OTkyHJN0yLZTIcLB/eAqGBTc/YNar/24vhXPbuPDbWdrgiGZWY6OHCgTIJSQgghOjUZutd+gu088x5U15QqKfPi9QWwmKO/BoezpBwxJmJjzG3eP9E+MjNjURQFt9tPcbGHpCRb408SLe6IwtV/+9vf6NWrF1arlTFjxrBixYp623744YecfvrppKamEhcXx4QJE2oNWVq4cCGKotS6eTyeI+necSEQCPDmm2/ywgsvsHHjxsjtxx9/pGfPnrz99ttNXtegQYNYuXJl1LJVq1YxaNCgo+rjihUrmDlzJhdccAHDhg0jIyODvXv31tt+8ODBZGdns3///siyLVu2UFpaGulLamoqTqcz6nkbN26Muq8oCpMmTeKxxx5jw4YNmM3mRmszde/enT59+kQFpABGjx7N5s2bycrKom/fvlG3xgJRh+/bxo0bowquf/vtt6iqSv/+/YmPjyczM5Pvvvsu8nggEGDdunVN3oY4dnSkE9/MzNCQPadT0pKFEEJ0XoWFoZn3ag3dE61Oc7XvzHsAsTFmbNZQICqvsPYQvkNV9aQyUqTIeWdiNhtISwv9zaXYeftpdlBq0aJF3HHHHTz00ENs2LCBk08+mbPOOqveIVvLly/n9NNP59NPP2XdunVMmTKFc889lw0bNkS1i4uLw+l0Rt2sVmud6+wMPvnkE4qLi7n22msZOnRo1O3iiy9m3rx5TV7Xvffey8KFC/n73//Ojh07ePHFF/nwww+55557jqqPffv25cMPP4wEyy6//PKo7KzDnXbaaQwfPpwrrriC9evX8/333zNjxgxOPfXUyDC2X/3qV6xdu5Y333yTHTt28Ic//IGff/45so41a9bw1FNPsXbtWrKzs/nwww/Jz88/4gDb7373O4qKivjNb37D999/z+7du/niiy+45pprCAaDTV7PFVdcgdVq5eqrr+bnn3/mm2++4dZbb+Wqq66KDIW8/fbb+dOf/sTixYvZtm0bN998MyUlJUfUb9GxNRiU8npRbr8F2/P3gM/b6n0JFzuXGfiEEEJ0Zh3p2NzZBN1VM++1Y1BKUZQGh/DlhutJpcvQvc6mWzeZga+9NTso9eKLL3Lttddy3XXXMWjQIObOnUv37t155ZVX6mw/d+5c7rvvPsaNG0e/fv146qmn6NevHx9//HFUO0VRyMjIiLq1Bd2vo/m0Vr/p/uaNUZ03bx6nnXYa8fHxtR676KKL2LhxI+vXr2/Sus4//3xeeuklnnvuOYYMGcKrr77KggULmDx5crP6dLg5c+aQmJjIxIkTOffcc5k2bRqjR4+ut72iKHz00UckJiZyyimncNppp9G7d28WLVoUaTNt2jQeeeSRyP9MeXk5M2bMiDweFxfH8uXLOfvss+nfvz8PP/wwL7zwAmedddYR7UOXLl349ttvCQaDTJs2jaFDh3L77bcTHx+Pqjb97WG32/n8888pKipi3LhxXHzxxUydOpW//OUvkTZ33303M2bMYObMmUyYMIHY2FguuOCCI+q36NgaPPHVdZQD+1HzDkEbjF3PzAwHpSRTSgghROdVWNhxjs2dia7r1ZlS7TTzXlh4CF9uHcXOw5lSmakSlOpsunaVGfjaW7NqSvl8PtatW8cDDzwQtfyMM85g1apVTVqHpmmUl5eTlJQUtbyiooKePXsSDAYZOXIkTzzxBKNGjWpO95pFMSgYbAaC7iB6oNU2E8VgM6AYmlZf5vCgXU2jR4+Oqrt0eA2mkSNH1lp20003cdNNN9W7zsPbZ2Vl1Vo2efLkqGVZWVl8/fXXUW1+97vfRd0/fDhfjx49+Pe//11vPwAee+wxHnvssTofGzRoEJ999lmDz6+prv04XL9+/fjwww/rfXzp0qV1Lj98vcOGDav1etRkNBqZO3cuc+fObbA/4tjXMYfvSaaUEEKIzqu63mP7H5s7E92vowd0UEC1tV+mFEBacv2ZUs780HlSFyly3unULHYu2kezglIFBQUEg8HIcKSw9PR0cnJymrSOF154gcrKSi699NLIsoEDB0ZmQysrK+Oll15i0qRJ/Pjjj/Tr16/O9Xi9Xrze6vTa8IxwTaWaVWKGxqIH2+5qiGJQUM0y4aEQx7v8qhTwjhGUCp1c5eRUNFiQXwghhDiehWtKdYRjc2cSzpJSLWqTL863lrSqv31eXUGp3KqaUhKU6nQkKNX+jmj2vabM5FaXd999l0cffZR///vfpKWlRZaPHz+e8ePHR+5PmjSJ0aNH8+c//5mXX365znU9/fTT9WbTNJUEiIQQraGgoOOc+KalxaAoCj5fUGYVEUII0Wl1pCzmzqQjzLwXFqkpVUehc2e4plSqFDrvbKqDUlLqor00KyqTkpKCwWColRWVl5dXK3vqcIsWLeLaa6/l/fff57TTTmu4U6rKuHHj2LFjR71tZs+eTWlpaeRWc0Y3IYRoTx3pxNdkMkT6IXWlhBBCdFYd6djcmWiuUJHz9px5Lyy9nuF7ZRVeKl1+ADIkKNXphINShYUuPJ42qusjojQrKGU2mxkzZgxLliyJWr5kyRImTpxY7/PeffddZs6cyTvvvMOvf/3rRrej6zobN24kMzOz3jYWi4W4uLiomxBCtDdN0xsuptoOqoudS10pIYQQnY/PF6SsLFT2o6McmzuLoLsjZUqFC51XRtWGdeaFglSJ8VZsVlO79E20n7g4C7GxFkCKnbeXZo9fu+uuu3j99deZP38+W7du5c477yQ7O5sbb7wRCGUw1Zwt7d1332XGjBm88MILjB8/npycHHJycigtLY20eeyxx/j888/ZvXs3Gzdu5Nprr2Xjxo2RdQohxLGipMSDpoWGNCcn1zFUTlHQU9PQElOgjeo7ZWTIDHxCCCE6r/DFIpPJQGysuXaDdjg2dxYdZeY9gJQkO4oCfr9GSVl1beKcqiLnkiXVeXXtGpoYSOpKtY9m15SaPn06hYWFPP744zidToYOHcqnn35Kz549AXA6nWRnZ0fav/rqqwQCAX73u99Fzcx29dVXs3DhQgBKSkq4/vrrycnJIT4+nlGjRrF8+XJOOOGEo9y9aI3NwiaEOHZ01PdzuMh5YqIVg6GOEzCLBf3vr+FeX4pqbpurhjWLnQshhBCdTbjIeXKyre46uO1wbO4sOlJNKbPJQFKClcJiD7mFlSTGWwFw5oXOjzKlyHmn1a1bHNu2FXDwoFzAbQ9HVOj85ptv5uabb67zsXCgKWzp0qWNrm/OnDnMmTPnSLrSJAZD6EPQ5/Nhs0mRXyGOBy5X+Kpnx0qz7og1KzIzQ1d/ZPieEEKIzih8bE5O7jjH5s5A82no/tBFRIOt/YNSAGnJMRQWe8grqGRg72Sgush5FwlKdVoyA1/7OqKg1LHGaDRit9vJz8/HZDKhqu2fPiqEODK6ruNyucjLyyMhISESdO4oOmZQSjKlhBBCdF7Vx2a5ON2WtHA9KYuKYuwYwyLTU2LYurOQ3ILqGfjCmVIZaTJ8r7OS4Xvtq1MEpRRFITMzkz179rBv37727o4QogUkJCSQkZHR3t2opdGglM+Hcv99WPN8+O58DMzWVu+TZEoJIYTozBqdgKQdjs2dQbBq5r2OMHQvLD2l9gx8keF7qZIp1VlJplT76hRBKQjNHNivXz98Pl97d0UIcZRMJlOHy5AKazQopWkoO3diKA2AprVJn8KFzsvLvVRW+oiJqaPIqxBCCHGcanT4XjscmzuDjlTkPKzmDHwQysAPD9+TmlKdVzgodehQOZqmo6odI7Ovs+g0QSkAVVWxWuXKhxCi9YRPfFNTO87wPbvdRFychbIyL05nBX37JrV3l4QQQog2Ey503pGG1ncGQXfHKXIeFsmUqsqeKy7z4PMFURRIl5pjnVZ6ugOjUSUQ0MjNrYiMMhBto+OErYUQ4jiQn9/xakpBdbaU0ymzigjRHnRdR/Nq+Ev8eA95cO9yUfFzOa4dlR12NlEhjhcdsd5jZxDJlOpAQam05FBQKq8qU8qZGxq6l5Jkx2TqOP0UbUtVFbp0CQWiZAa+ttepMqWEEKK1ddQT38xMB7/8Uih1pYRoZXpQx7WtAn+Rn6A7iObS0NzBUMZAsO7naD4NxxC5KitEa+mox+bjXcesKRX6Hygq8eDzB2XmPRHRrVsc2dmlHDhQxtixXdq7O52KBKWEEKKF6LreYYcIhNOQZQY+IVqP5tco/qoQ735PvW0Ui4pqVUOZAwr4DnkpW1OKJdOCKUnqvQnR0jSt+ticnCyz77UVPaCh+6qCUh2oplR8rAWz2YDPFyS/0MWhcJFzmXmv05MZ+NqPBKWEEKKFlJV58ftDqRD1FlNtJ5mZMnxPiNYUdAcp+rwAf74PjAqOobEYHAYMdgOqTUW1GTDYDFHTouu6TtEXBXizPRR/XUjq+RkdZtp0IY4XpaUegsFQcCQpSYJSbSWcJaWYVVRTxwlKKYpCeoqd/YfKyS2sJKcqKJUhM+91euFi5wcPSlCqrUlQSgghWkh4eEBcXOgqXH30uDj0gL+tugXUzJSqbKSlEKK5AqV+Cj8rIFgWQLWqJE1LwZxmafR5iqKQcEoS+R/mEigOULqmhIRJiW3QYyE6j3CWVEKCtcGaQe1xbD6eVdeT6jgBqbD05JhQUKrAJTPviYhwUOrAAbmA29YkKCWEEC0kXOQ8NbWBFHCrFX3BW7jWl6Ja2q7GghQ6F6J1+PK8FH1egObRMMQZST4zBWO8qcnPN9gMJJyaRNH/8nFtqcDazYq1p2RzCNFSwheMGsxgbqdj8/EsMvOereO9npEZ+AoqcYaH7zV07iY6ha5dw0EpyZRqax0vdC2EEMeo6kKqHe8LZXj4XkGBC5+vnmrLQohm8WS7KfxvPppHw5RiJuX/pTUrIBVm7WYlZngom7F4eRHBykBLd1WITquwsOMem49nHXHmvbC0qrqfOXkV5BZKoXMREq4pVV7upazM28696VwkKCWEEC2kI8/uk5BgxWIJJcfm5kqxcyGOVuW2Coq+KEAP6Fi6W0k+JxXDUWQExI2Nx5RiQvdoFC8tQtf0FuytEJ1XkzKlWoCu62g+jWBFAH+RH1+OF0+2G88+N74cL/6S0IycneW93RFn3gsLZ0r9vKOAYEDHYFRISep4526ibdlspsjnhGRLtS0ZvieEEC2kSUEpnw/l949gzfHiu+UhMFvbpG+KopCR4WDfvhKczgq6d49vk+0KcbzRdZ3y9WVUrA+dsNr6x5BwUiKK4egKlCsGhcQpyeQvzsV3yEvFpnJiR8a1RJeF6NRa8tis6zrB8iD+fB+aO4jm09B8OrpPQ/NpoDWtT4pZQbUYUC1q6GYN3YzxRtQYA4py7E940KFrSlUFpbKrClpnpMSgqsf+ay6OXteusRQWujhwoIzBg1PbuzudhgSlhBCihTTpxFfTUDZvxlAaAK2JZ68tJDMzFJTKyZFMKSGOhB7UKf22GNf20HAPx+g4YkfHtdgXSGOCibiJCZQuL6Z8XSmWLpYmFUwXQtRN13RydpahuYLEBgzomo5SV/ChgWOzrusEK4L4crz4cn2RYEt9FKOCalFDs86ZQ9vSvFrkhga6TyfoCxCso8yjYlYxJRoxJpkwJZqOySCVHtRD+0rHrikVlikz74kq3brFsWlTrmRKtTEJSgkhRAvpyMP3IFTsXPNq7FmTh2twN2y97XWfnAshaglWBChZWYx3vwcUiJ+USMyglv8iY+8fg/eAB89uN8XfFJF6QTqqueNlGgjR0VVsKiP/w1yyV+bjL/TDynL2lu0k9cJ0HMMbz0IMVgTw5frw5XgJVlYHohSDginFhCHOiGquDj6FA1ENHVd1XUf3hwI2ejhQ5Qn9DLqCBEsD6D4ttN1cX2h7x2CQKlgVuFNMSof8/Eo7bCinzLwnwsIz8B08KEGptiRBKSGEaCFNmn2vnVRsKsP0gwt/no+dX+Vw0JWNMd7Y5JNz0bHoug5B0HxaZNhIzSEkeo37uqZj623HnGnp8F9kOpJARQCf04vP6cXr9BIsqyo+blRI+lVyq82QpygKCSclkZ+XQ7AsQOmqYhInJ7fKtoQ4XlVsKsO54CAAxe5QweJEm4VAaQDngoNkzqLOY5+u6Xj2ufGXewmW18iIUsGUYsacbsGcakYxHtlnqaIooaF7ZhViaz+uazqB0gCBIj/+Yn+dQSrVrGJwGFCtKkpk6J8hMgxQMSnt/lmvVc28dzR19lqT2WQgMd5KcakHgIwOeN4m2kc4KCWZUm1LglJCCNECdF3vsJlS4ZPzJMUMQH5l6CSssZNz0TS6rqMHQle/db8W+hkMFbyNLA/o6IGq++Fb8LCf4Zumg6aja4R+BgG96n5QjwSkmsO1tRJzhgXHqDgsXSU4FaZrOu7drlDAqWrIjS/Hh8/pifpCqqOjuTRUu4pjaCyW7vXXgqu5TkOc8YgyElWLSuKvkin4OA/3DheWblbsfdvnS1NL7E9H0tT9Od72uzPRNZ38D3Mj94s9oaBUgtUcWZa/OJeYobFoXg3fIS/evSVYc7xoniDuPW4UizUUiEo2Y043Y04zoxhbP+NHURVMiaGMKBt1B6k0n4ZW1MDwf5Uataqi61Yp4d8taqN18MJZXbpPQ6vxU1EJrbeqDlZd7wutAxc5D0tPtlNY4AINUo1m0HWQY2OnVx2UqmNsrWg1EpQSHYKc/HVs8vdpXGWlH683lEnRkYJSNU/O02JCX6TzXZ6oNuGT82Ptb9oaXy4Pb2vtYSVYGZpNKVgRrLoFCJSHsmiCrmDoBN1uQKGObaOjuYLofj00jKGeds1pG91OxZhgDH3BMFV90ai6Cq+YFAIlAQKlAfwFPrw5Hnz/82JKMxM7Kg5Ld2uHCE61dZBA13SCZQHKfiih+JsiNHf1lzvFqGDOtGCMNUYyI/SARsXGcoIVoSCVa0slRf/NrzPLMDxcKFAaiCyrLyOxsf0xp1uIHR1H+boySlcWh4YPBfUWeY2a2q45+9OeWnp/Wmu/W/rvczSfbcfythtr697tIlAaoNzrY+W+XDz+0Hs30VZdny1QEsC54EB1YXK/B0tABxRMSUYsWQ5MaWZUU/sOPaszSFUWQHMFo4b+6VU/w8XWNbdW9dkWqH/dJiUUWKoadkig6mKKv/qiCo1NFKiEMrfCAapwsMpfGMrqMnTQoJRnrwtHgU6w6j1u2+Int8JJ/IQErFkd5xxOtL1wUCpnfxmFa4qwJVva9HtPZ/3OJUEp0e6OlZPezqq9/z7HyodzOEsqJsaM1dpxPlrDJ+cAqVVBqYJKD0v3OBmSlkBqjI1ASQD3ble7ZWIciab+X5b/WEr+B7lRWS+qXSXuxASs3ayhLKVgKBvJm+2mYlM5mqeeIEWVcEBKD+i12pmSTCgmFcWoECj1497lQvdVt1OtKrGj47Bm2VAMCopRQTGqeLJdlK4siapbYnAYSDojGfugUMBQUaFyWwWFn+ZH7U9Tv1SrNhVzmhnyoOjzAkzJJhyjqvrSTsGp1gwShL+8BYr9BIr9+IsDBEr8BEr9BEoCodpQhz8noOPd7yH23FTiT0rCta0iMgSoprqyDGsOF2pK26bsj2NkHOUbyqjcXEHFj9VXbQ0OA4lTkrD2tkcy8dw7KyldXRIVZFOtKo4RsZgzLJGMO+8hD5VbKtC90f+XjlFx2HrZQsFNs4pnv5uizwqatD/tqWJTGXkf5BAsq/HeiTWQfFZqKNhuVFAMCpVbysl541Ct54f3J/WiALbediq3VlD4SX797S4M4BgeW1VHKDrbRNf1UAFrdzAUNHCH6gRp7iCunZVUbCqPft0tKjHDHFi720JDrowqXqeHsjUlkUwTqPosODMFx/A4VJOCYlKp3Fze5PdES7/P6muXckEa9r6OUG2kygDByiCubRWUry2L/lw1K9j7x2BOrcpcUhR8eV5cOyqjXp9wO1NKVbuqh3z5Xtw7D/tsrXotjZkWNq/JYd22g+wsKsUXCDKmSwo9Ex3YjNEBkkCxH2O8CWOyCUuyEVOKCc2jhV7n2LaZGbe5FFXBlGCCBFOdj+uaHimoHglU1QhehWtZ6cFQFlTQH4wepljXNk3VFzoUkwqaHlqfR4sUNNe8GpTWfq7aAWfe8+x1UfxVEcnm6iBlmsOK5tIo/qqIxKlIYKoTM+33oeQH8HoC/PSP3XSNiznii0vN1d7fudqTout6YzHwY0JZWRnx8fGUlpYSF3ds/9Fm/L9/YlBVbHYjMXYzdrspdLMZsdtN2Gymqp9G7DYTZosBi8UY+WmJ3FexWIyoBhUUQtfbVYjcCS8Lv3fCbyKF6isjWtUv4Ysl4eVRd2qssy4NPFS5tYK893PqfS3SpmcQMzi29grqWmfUztRYpkTfDzVTarVRFAUMdIjMgY6ivi9ZYZmzurbqh+Sx9OG8du0hbrzxE3r2TOCDDy6tv6HHg/6bK/CX+PE89RpqbMuc+Gg+Dc0dJHZ0fFQNh/L1peS8FfoiFtQ0rv5gGS5/9euZ5rAxKDWBk6f3YdIlfenaNbbDvwca+7+MPykBY7wJ924Xrq2V9bazdLdGgk2B8rqDFGH2gTFYs2wESv2Ura7jzLtK+D3RnPdOU9u2VLv4kxIIlocyrQCMiSasQ2PwJCkYjQZiYkyYzaFCunr4y4crGPqi7dYIuoNRXwbrFP4X0kMnbUSCf9XDFX1Ob1Sg5XC2/nZMSWb8hT7cO1z1trP2smGMM6LrhIZfaBAMagT8Wp0X+XW9Kljr09B0jaCm4wtquPwBvMEg3oBG0AYJ09PZ/8YB3GV+vMEgvmCQQFAnxmwk1mIm1mIiIdnKkAf6Ex9voeDF7KjAyOGMCUayHulL5c/lLfa/Ef4fbuz/t7ntdHTcv7iiAq+HUywKiVNTMNgNGGwqqq16OI9qqir4bFZCvzcyTKip9IBOoMSPv8RPoDhA5bYKKtbXX/ejWftjVLD1s+Pe0YR2/e2RLEbFpFQVt4agW4M6ntvSf5/G2sUMdWBOt4AC/nxfg++z+IkJWHrY8B70ULqiuP52Jydi6WrFm+2mdFVJo32Elt/v+tap6zplXj9Fbi+lmp+gFsr0AbCbjCTbLSTbrJgM0QGSlIvSiR8bj2o1tNqxuSOqs9i6TwvNGmiuyro1hwJQikmpP1stvB6PhuYJRgJVmjv0O6qCY0Rsxyp0ruvkvudEc2l8vG0fC9b/gtlo4N1LpkTOfdQYlfTpmTKU7zhU37lyWPiYe8enq8kuqeChyaMY0yUl8vjhx+eW/I7S3t+5WktTYzQd53K+ACAQ0Dg7IbN6ga/qVgKhIFBogQfwAPWfPlRTFQXVECp6qCih+4paVWyxapmiKKhK6ApM+H7dj4WXhZbretVBKfxT09EOX6brqKqKyahiNKmYTCpGowGTUSXo9GLQFAyqglFVUasOAOFYae6/crD2KUOnan2ajk7Vl5wm0KvWpWk6WlAPnahoOsFg1TJNiywPTxOsK4CBUJDOoKAYqPoZzmpQMBhUjEYVY9RPBaNBDT1mqFFkUiNUDybSoUjHaixrYH9qPNRgCLm54eX6jrV69S/l6xou8pfz9iFit1eGjtuHBfqUGr/XDITW3abGnaqf/jwfFZtqn0iHr1anX6EROya+TQMo4f+lQECrddu5swiAlJRGih9brWjvvI9rfSmqpfXT2g1x1R/zBlXl8aljWLkvh5/zitlVVE5ehZu8Cjer5heivr2WtLQYRo3KYMyYLgwdmobBoBAIaASDde93+FYvTUcNgOoHg1/HoCmYVQWzwYBJVTEpKkZFwYSKAQUDoASpqp1UvZrwn1nXoXxd/UEhgLLvSqu/XOo6QV0nENTwa1rocyS0JpT9fhKnpoAKRUuKI7MFRd6XVZ9zRkXBu0+n1+XpHHx2L+h6rf+78HYOvH+ILj3M7HlnP1536MtRQNcIBHV8wSDeoIYvGGT9nCISpqfj8QTY//YBXJHAh1brja5u20XSGSkUfVEQKR5b828a+vxUMP8hm/QLMyj5Tz54dIyKgqoqKChU+vyU+/yUe/1UrA1gGhZDF4+ZXqodJQjB/2gU+3w43W5ijEYcJiPxVgsOsxGjUY185hkMCkajWrXeJqrr2AP4c3yg6SgoUR8BET97sXSx4j3kifqirwEBLfSaBjSNYEkZxBoI+DX8AQ2/P4hWdYwI6DoFHg+FXi+FXi8FXi/55W4KDtQfrAwzfmskUFL/0Jcw04p1oW3l+4m1mIizmHCYTdhMBiwGAxajAbNBxWI0kKbl4t1QgckPFkNouclQ9TdUQj8tfy6h+w09MRpVcl87gF4RxG4yEmcxoxE6XoX2XyOw3YV5oJ2Sn8vwegL4qv6/gpqOFj4Oo8MBlZiRsZRtKCPoDdZ4LPzxq2BQwZBtIKavHb1SI+j0Rf63jKqK1WjAoCihc4qq/62cL7wYbQYMqoJqCP1fqJHzixrnEgalKttCiWRiqabQMRYIHW/Dx4jwRaKaxwyPBuUauDUUqv6XFHDvdEW9H3VdJxB+fTSNkt0+jJlmfBUB3IXe0Hux6vHwa6PrRF43vxNcZX48gQBefxBPIIiqKtiMBqxGI1ajAZvJgL3YgqUqcBs5T1JBrXo/agYImkA3KehmhfIt5aEgSeSiX+iX8H+1WqDiGBlL5Yby0LDcqn00qAoGJfT6G1QFY3kFllQL/gIfejD6c6Lm+0j93o0lw4KiKvid3tD7rOp9F/lZ9Xv58nysPWz49nsgWP1+DL2eVa8RULE0H3N3C55sD1pVwFevaqSqKgYl9Hnk2+8ibkQclngT7l31B5MhlKmU8v/SOLTgAN5A6P/XH9TR9OiAsrrfFwoSALmLitDCQ2n9AX7KLWZzXjGeQACTQcVkNJDZJ45+hhj6xceSZKs748mYYCRhYmJ1wKWNj83tqbFi60e0nrhj4yulN8cbyUJMqcoeT4+JHsquVWp4c7xYMjtmtpxoHTXLXWQ4bGSXVJBdUsHIjCQMaiiwGi53Ud/FpfoyiRvLqKq5bV3Xyalwo+k6XeOqRzAcq6U2murY+ATpRFRVYdyp3Qn4g6GT64AW+t1f4/eAFrpftTwYrAqsBHWCWiiVNlh1slKdBKVE7iuH/a7UsTwczAkLf+UML2so/lFHUlPdNELpvjX3X1Ei24hcsTgUfZX18NhG1LZq7EN7C5+kdozeNCz0RSJ0MxiqvshqoFcEq7+AhGNsOmi6HrkpX5Whq1QH+oIaWlWtyNCX0Kr/scMCoeEvqKHtqlHbVlWFYL4fRSdq2zXjdzmv7cbwsRmPUcOjargUDbcSxK0EaSBEEvlzaDoE/EG8viA+bwCfT8PrDeLzBat+BvB5/3979x4dVXnvDfy7L3PNPYRcIeGiLRwpXkK1gJhzRLGUV5F6TnlZb7v6HrWnWNIKdK0W2rpi8ViosDBqhbpaqlb7CktAjz3wugjlolhc9tUg1ChSISGFYJqQ6yRz2Xue94+Z2ZnJZDIzIZlL+H7W2muSPc/sy8xvnnn2bz/P3r6/PR7dt3966JID35+ASXY7rsnP9h1EBzY4sM3B3yenF57LHsgW3dcVPmCorKMY+u+Qov4LbXtdXvR/1gfZIgc9JSBnyPA6fNs+LT8b0/J9P5QuTUdzVy+a+hy4lKejsakTmtOLpuP/QNPxf2DvMG/j4PfBpii+ZIaq+pMaJmSoKmxK/I17SQqKR9mXVA/8jSHiUghAFwLdLjc6+lxo63Pi8kcams9341JvH7qcbkTKY5sO+oaFeFrdUbdL3XPESFJIku9gHQA0rwipL9VXY0xm/L841n32fEzLVBs+i23dnWbIFhkWWcZNEyZgTn4+8i0W5FssA/viBZxO37L6NA19uo5eTUOfpsGpRxnuEfS3LgQ04U8U+JN3HpcO12W3P3nge84b9PsS+LyULAVatxb6NfAnVLwYSLwoE0yQzJL/HIDvIFqSJXik8A9e13WYB/WYkGXJSCBZFBlmVUFWmQ2waQPzFAWyJMHh8Sf33B50uzxwqRKcLs3XW8PpRrcz8uepXLw4cBe/YZje/RBAjLGRG1u8qSdjjMtPzYAu4Gn3hD1nVRVkmFVkmFTYzSbkTLAiw26C3f+9t6sqrIoCiyzDLMswyaPfQ8Kp62hzudDmcOLzz3vR5nCivd8Fp6aHfRcBwFRohuoFRKcOkyJDlX2J8OAksRFvmYpx7bDhmCaYoNj9SUdZhkXxJewcmgaHpkEPru9d3tg+x/di/HxyVSi9AmZ/TPoeZX+izn8SUZJgzjNBliR4OzVjfqDeDCS7FFmGKkswNSiQnAJyUAJMgu+7q3v9kxCQPpLg7tX9833fWc0r0OtPeHe7POjzeKD461WlQ4dNVZFhVmFTfT3WXJrvPXfrXrg0Hd69Mpxt0d+faHV1ptmEueWFqJpSgoU1swGnd9heBxOXFY3bgzuKLHhY7I0lE7BgSjFumVQ4bDm6OgRf7qI409dT8qUTZ/DSiTPIMKvINJuQbTGj+LOPoTZ5kAEF2RYTssxmFGZYMTU/C7lW35DQ4ARSLD2qLnzQjkMfNuPkpcs4+flltDmcuG1KMVbP+5LxmnS81EY8mJRKMbIsYfoDFVe8HCEEPB4vnE7NmIbr5TB40vVI80VImcFnzwdPgeedTg1dXU50djrR1eVCV5cTbWd78PlHXb7GvccTMdNlmmAy7t4RvNxYO8goigybTYXFosJqVWG1KP5H3/82q+9RVfzj5AN3y9IFvJoX0H13uhK68P/te29dbh1uj9eXxHBr8Lh9CY7ghN5ApyjhS5T4D5YC84LPNEbIPUT+jAd93vEanIQcvCzh9MJjNJADJQZeE2jLqbkmKFbZ1xsCAwejQyUIg4dODk4uysEfqEdA69QGykiATVWRb7Mg325Bns2CHIsZskP2D0n1Mfmn+MgAzOGzrP4pliX4E2yKIuPa3Hy07wu/Hkkw3910PIAcuVt8vAJ3bPO0usOWaco3w+UIHxphURVcMyEH191QBDVLhT5HoKfHZXxHHQ7fQWm0HpaBnjARtw2AU+hwwguXV4fTo6Pfo6HfraPP7UGfS4PD5Rs65fF64fb6ejUNuSynF1pn8MGyhH5NQ0e/C1pQ5mnwwaUkSbCqSliK2Gzx/Qy6TQPr8yVFhNHLyUguBvXWEULAow/9vTPKSTB6v6j+3mFGrxlFQd4Xs2A2KdDP9MMc1JtGHiKRbZ1mg/Nsf8i84F4zgYNDtcyMvqZ+aIFeff7eqhmmgSFn2RYTyhcXo6QyHzk5VuTmWpFtN0Fq0SA8XmiygAsCfbrvALvX7YGjz4PeXjccDt9jIFkVTaTehf0XnOhydEPzCuj+IXTeIeoxc4EFbs0VMk+WJGRZTMjyNxAzLSaULy5CSeUE5Ob69icnxwK73TRkT8q+vzlw4dnzUbe94N5CtL3eGrVc2apyuN06Tj/1GbpdAz3SnJoOl+Y/+NZ9fyvTrOj6pAcubSAh4tICn5/X/3kKmAot0HUvHA455DM2ybI/hhSYVV8cZU22QWrVjNgy+xMkgw0VQ5KEkF5aiiQh/7Z8mDNN6D7YDkXyJS0kSYLu9cLlTyS4dB1uTYf1lmx4M32/8Z0uHS39bng8QW0G/2+o4pUge+GfJCheQIE/gQIJMvz1yaBHCYAMCT0eD/7R78Tnff3o9Q8/9vbpQybOAPiSimZfrBfOyEVegQ041WfES6bZ5EtQ+RPgqj9BU7BwAnqOdvh6IPqTNwD8iRmvP14F8r9eCLXEEtIeCm5zuVwDba/usw60/aXD6I3l9p/cMHo/+ddtr7BB+7vL6DmuyFLMdYHwJ2g170CdYJ2RCV3zovuvPca2a14BTehGkimwX5JQ4WxzGzGo++tSRQ7tyW6baIa3UzOSWYq/J6bH64UX8J88kH1tJQBOj6++7+h3Dd4Ng+IMPXERSBzGUlfLsoQvFeahamoJbiiZALP/JIjo9Q3PKfl3hB8M5qqYuCz1LgFAiRF8jSurqmJN0EF/pHJ0dQg+YTS3vBBvN10y6i6HW4PDreHz3n6cPe6IeHIp12rG1PwsTM3LwpwKN64pyYH8f7tDj3EA9LQ5cfw/T6CpXMeJ5nacOfWPkN8zRZbgGeJsaiwntdLViJJS27Ztw+bNm9HS0oLrrrsOtbW1WLBgQcTyR48exdq1a/HRRx+htLQUP/rRj7By5cqQMnv27MEjjzyCzz77DNOnT8fjjz+OZcuWjWTzCP6zZGYFZrOC7GxL9BckQfCBgVcIONwe9Hl0o6GjSr7eM+UPlSN7Rpav906Kj+8WQhg9bZxODR5PnPdtTwIhALdbD2tMd57tRcvrnxsHHy5dhwQJ5qBeAxZVRtm/liBnWias1oHEn8kkRxzmFpzc9Hh871VgnYH3rfNvPWh/t8M4AHLrXmjCi/Z+F7pcbpzv6oVZUVB0Qy4mFGcgQ1KQIRTYhAyL15+wDB76FaG3WqB3lqLI/kff37Ixb2B+cO8dKfAYPMwksK7QzFzwRvhme9yw7XkaukNH75JVkMyWoTvThXU5lIZ8zhhm4b9Oj7nEAnnQbast8CV3HR+HXtxYskjImJEJc6HZeLtsworwc4bRyRYZil2BbFN8j3b//3bfdWZi+e5qmteIwf5+32MgJgJT59letPzXJbi1gQN9VZFhN6mwm1Tf0BqTirKvFsH9VhdsJl+vDpMy9DaUrSoHgGGTFIGEQe6SArT+Vys0MZA8ABBSZymyhKJ7i9D5321hjZCRrDsg1gRJzImUr5WHn23Lj/qyUTPqiaHFQ+xPBLZpdqg5asiB6mBqroqc+XnoPHw5ajnbNDtsAApLMpEfpWzhihJc3N4cdRuTGhv/sxy2aXY0dv4t6r5PeeSahPc2Cfy2dJ/uQfOvzw8kjISA4k9YmoN6aJat8u/Phuj7U/G/p6Pp759F3+9l02Pe79GO9XiSpUByYmjid8rg6Pfg7PZGODwa+j0a+jyavw0hG0NXLaqCkv9RhN4Dl2FRFZgUOWK9Gc/+BIatZ87ORsasrNguROx2Q3r8cVhaXPD8xw8BM4dujUeWYgtkuzxsTyg5Q4alODWPnWjsBF/u4osFudix7DboXq9xoikwiZlWtLx3GT0uN7r9PUQv9jhwsacPnU436i+2o/5iO9544gK0Tg0WScaU3ExMzctChtmEj1o78Glbl+9EnCLBUmoBFAlT87Iwuzgfs4vyMbMwF1Y1PE2jpMkw2ZGIe8927dqF1atXY9u2bZg/fz6ee+45LF68GA0NDSgvLw8rf+7cOXzta1/Dd77zHbz88st455138L3vfQ8TJ07EfffdBwA4fvw4li9fjsceewzLli3Da6+9hm984xs4duwYbrnllivfS0pJwQcGvjPfZmQN+g1Qc1XkzsxOmy7WkiT5LzavpmwyMFaiSqCx2Rq9cb5i9A9K+v7mwAU9esOzbFXsB6Ipw+mEePETaF0apBuzxvxC58FS/U6GqiojM9OMzExzxDLinwUa/x49Liv+13Q0nYt+cGmb5nv/h0tSyJIE+wQLShYWwn28J+oyJ/5zAfqOdY3KugNlY02QxJNISaaxSAzFSpIlTPx6UdShPbIqx1Qu8B2Kpaz9moyY9jvZsRHre5SM+kOWfSfdJlyXg56JtlHdn3g/81iMdqzH+51IxrpzZmQhB4B7UvSyFXeXoelD56juT3B9IMlSbO0ErxfSB+9D7dIi9tSlcUCSkDM3Fx1/uhyxSM5XcnmR86vQUHW1IsvItVqMYXnGyaXe8JNLTk1DU2cvGjt6cbajGy1ZHpzubINL03G6rQun27pCyhdl2jC7OB+3/8dMzL97Kjqf/nvKt93GUtx9E7du3YoHHngADz74IGbOnIna2lpMnjwZ27dvH7L8r3/9a5SXl6O2thYzZ87Egw8+iPvvvx9btmwxytTW1uLOO+/E+vXrMWPGDKxfvx4LFy5EbW3tiHeMUl+gkTgcjvlPnmR+PoEfhuGM98p5LAQa51k35cB+TUZafrdijcvAwWW0cpK/59toLjNd1p1MY/E5xiNzdjZK/r0srJ5Rc9WQO9zEWi7WsvHUq8mOjXj2PRni/Y0ai898NLdzvNUvyayrk12/UWqzTrEjb2F+2BA9OUNG3sJ8WKewbXk1irV+CZxcGsyqqvhiQS7uunYSvr9oNp77z8X4P//2L3hqyVysmfcl3DuzArdPK8VDN/8Ttt9zK7bfcyseuvmfUPWlMuTl2676uk0ScVyMxu12w26349VXXw0ZWvfwww/jxIkTOHr0aNhrbrvtNtx444146qmnjHmBnlB9fX0wmUwoLy/HmjVrsGbNGqPMk08+idraWjQ1NcW0bbHebpBSz5AXgOOY/5SRrM9nvN4aFU4nxNf/FVqXhv4tLya0p9R4EmtcxhO/o73MdFl3MiV7f2LtPRhPL8NYyqZTbKR6D8ux2p/R3u+rtX5J5jLjMka/zZTChDDuxifb/UP22ENqXIulrRxL/RLLMYpsV2Iabhw86iNd2m7xiDVHE9fwvba2Nui6jqKi0ExeUVERLl26NORrLl26NGR5TdPQ1taGkpKSiGUiLRMAXC4XXK6BCyd2dw9/63pKXXGN+aeES9bn4ztbzYuU0tBijct44ne0l5ku606mZO9PrEN7Yh4CFGPZdIqNePY9GcZqf0Z7v6/W+iWZyyQaliTBUsJrh1GoWOqXWI5RhFfEPdz4aq7bRnS1rMEXixVCDHsR26HKD54f7zI3btyIn//85zFvM6W2VG/0Xu2S9flczZUzRZeshMJ4XHcyjbf9iRVjY/Sky/5crfVLMpdJRBSv0Ti5NNJrM16tdVtc15QqKCiAoihhPZhaW1vDejoFFBcXD1leVVVMmDBh2DKRlgkA69evR1dXlzE1N0e/mw0RpZ/xcB0kIiIiIiIaP6Ido6T6tRlTSVw9pcxmMyorK1FXVxdyTam6ujosXbp0yNfMnTsXf/zjH0PmHThwAHPmzIHJZDLK1NXVhVxT6sCBA5g3b17EbbFYLLBYBu5uFuh9xWF8RJTSnE4IjweapqOvsxuSxz0qixWagNC8EN0SFM/4v6YUERHRqBmj32YiSh1JaStPAfJXF6L/XB/0Hg1KlgrbVDu88tWRtwjsY9TLmIs47dy5U5hMJrFjxw7R0NAgVq9eLTIyMkRjY6MQQoh169aJb33rW0b5s2fPCrvdLtasWSMaGhrEjh07hMlkErt37zbKvPPOO0JRFLFp0ybx8ccfi02bNglVVcW7774b83Y1NzcLAJw4ceLEiRMnTpw4ceLEiRMnTpxSYGpubh42lxP3NaWWL1+O9vZ2bNiwAS0tLZg1axb279+PiooKAEBLSwvOnx+40vzUqVOxf/9+rFmzBs8++yxKS0vx9NNP47777jPKzJs3Dzt37sTPfvYzPPLII5g+fTp27dqFW265JebtKi0tRXNzM7Kysoa9FhXRULq7uzF58mQ0Nzfz7o005hhvlCiMNUokxhslEuONEoWxRok0nuJNCIGenh6UlpYOW04SIlpfKqLxL9bbVRKNBsYbJQpjjRKJ8UaJxHijRGGsUSJdjfEW14XOiYiIiIiIiIiIRgOTUkRERERERERElHBMShHBdzfHmpqakDs6Eo0VxhslCmONEonxRonEeKNEYaxRIl2N8cZrShERERERERERUcKxpxQRERERERERESUck1JERERERERERJRwTEoREREREREREVHCMSlFREREREREREQJx6QUpaRt27Zh6tSpsFqtqKysxNtvvx3y/N69e3HXXXehoKAAkiThxIkTUZf5m9/8BgsWLEBeXh7y8vJwxx134L333ot73cNpb2/HpEmTIEkSOjs7jfmNjY2QJClsevPNN2NeNo2dZMXbW2+9hbvvvhulpaWQJAmvv/56TNt7/vx53H333cjIyEBBQQF+8IMfwO12h5Q5deoUqqqqYLPZUFZWhg0bNoD3tUi+dIu1hx9+GJWVlbBYLLjhhhvCnmfdltrSKd7a29vx1a9+FaWlpbBYLJg8eTKqq6vR3d0dUo51W2pKp1gLxnZbekpWvG3cuBFf/vKXkZWVhcLCQtx77704ffp01GWz3Zbe0i3e0rHtxqQUpZxdu3Zh9erV+OlPf4r6+nosWLAAixcvxvnz540yDocD8+fPx6ZNm2Je7pEjR7BixQocPnwYx48fR3l5ORYtWoQLFy7Ete7hPPDAA5g9e3bE5w8ePIiWlhZjuv3222PefhobyYw3h8OB66+/Hr/61a9iXq6u61iyZAkcDgeOHTuGnTt3Ys+ePfjhD39olOnu7sadd96J0tJS/OUvf8EzzzyDLVu2YOvWrTGvh0ZfusUaAAghcP/992P58uXDlmPdlnrSLd5kWcbSpUvxxhtv4NNPP8ULL7yAgwcPYuXKlUYZ1m2pKd1iLRjbbeknmfF29OhRrFq1Cu+++y7q6uqgaRoWLVoEh8MRcblst6W3dIs3IE3bboIoxdx8881i5cqVIfNmzJgh1q1bF1b23LlzAoCor6+Pez2apomsrCzx4osvjmjdg23btk1UVVWJP/3pTwKA6OjoGJXtpLGVzHgLBkC89tprUZezf/9+IcuyuHDhgjHvlVdeERaLRXR1dQkhfLGYk5MjnE6nUWbjxo2itLRUeL3euLedRke6xVqwmpoacf3114/qdtLYSud4C3jqqafEpEmTjP9Zt6WmdI01ttvSU6rEmxBCtLa2CgDi6NGjEcuw3Zbe0i3egqVT2409pSiluN1uvP/++1i0aFHI/EWLFuHPf/7zqK6rr68PHo8H+fn5ca370UcfxZQpU0LKNDQ0YMOGDfj9738PWY78tbrnnntQWFiI+fPnY/fu3aO3MzQiyYy3WA2Ot+PHj2PWrFkoLS015t11111wuVx4//33jTJVVVWwWCwhZS5evIjGxsYr2g8amXSMtXiwbkst4yHeLl68iL1796KqqsqYx7ot9aRrrLHdlp5SLd66uroAIKQM223jRzrGWzxSqX5jUopSSltbG3RdR1FRUcj8oqIiXLp0aVTXtW7dOpSVleGOO+6Ia90FBQWYPn268b/L5cKKFSuwefNmlJeXD7muzMxMbN26Fbt378b+/fuxcOFCLF++HC+//PKo7hPFJ5nxFqvB8Xbp0qWw7c3Ly4PZbDa2eagygf9He78oNukYa7Fg3Zaa0jneVqxYAbvdjrKyMmRnZ+O3v/2t8RzrttSTjrHGdlv6SqV4E0Jg7dq1uPXWWzFr1ixjPttt40c6xlssUrF+U5O2ZqJhSJIU8r8QImzelXjiiSfwyiuv4MiRI7BarXGtu7q6GtXV1cb/69evx8yZM/HNb34z4voKCgqwZs0a4/85c+ago6MDTzzxxLCvo8RIZrxFMzjegPDtBcK3eah9ivRaSpx0i7VoWLeltnSMtyeffBI1NTU4ffo0fvKTn2Dt2rXYtm2b8TzrttSUTrHGdlv6S4V4q66uxsmTJ3Hs2LGw+Wy3jS/pFm/RpGL9xp5SlFIKCgqgKEpY9rm1tTUsSz1SW7ZswS9+8QscOHAg5OKWI133oUOH8Oqrr0JVVaiqioULFxrLq6mpifi6r3zlKzhz5swV7g1diWTG20gVFxeHbW9HRwc8Ho+xzUOVaW1tBYBR2y+KTzrG2kixbku+dI634uJizJgxA0uXLsVzzz2H7du3o6WlxXiOdVtqScdYY7stfaVKvH3/+9/HG2+8gcOHD2PSpEnDLo/ttvSVjvE2Usmu35iUopRiNptRWVmJurq6kPl1dXWYN2/eFS9/8+bNeOyxx/Dmm29izpw5o7LuPXv24MMPP8SJEydw4sQJY6jB22+/jVWrVkV8XX19PUpKSq5gb+hKJTPeRmru3Ln461//ahykAcCBAwdgsVhQWVlplHnrrbdCbjd84MABlJaWjnjcOV2ZdIy1kWLdlnzjJd4CPQVcLhcA1m2pKB1jje229JXseBNCoLq6Gnv37sWhQ4cwderUqMtkuy19pWO8jVTS67dEX1mdKJqdO3cKk8kkduzYIRoaGsTq1atFRkaGaGxsNMq0t7eL+vp6sW/fPgFA7Ny5U9TX14uWlpaIy/3lL38pzGaz2L17t2hpaTGmnp6euNb9zDPPiNtvvz3ieg4fPhx2F5cXXnhB/OEPfxANDQ3ik08+EZs3bxYmk0ls3bp1hO8SjZZkxltPT4+or68X9fX1AoDYunWrqK+vF01NTUaZwfGmaZqYNWuWWLhwofjggw/EwYMHxaRJk0R1dbVRprOzUxQVFYkVK1aIU6dOib1794rs7GyxZcuW0XrbaATSLdaEEOLMmTOivr5efPe73xVf+MIXjGW4XC4hBOu2VJZu8bZv3z7xu9/9Tpw6dUqcO3dO7Nu3T1x33XVi/vz5RhnWbakp3WJtMLbb0ksy4+2hhx4SOTk54siRIyFl+vr6jDJst40v6RZvQqRn241JKUpJzz77rKioqBBms1ncdNNNYbe+fP755wWAsKmmpibiMisqKmJ6TbR119TUiIqKiojridS4mTlzprDb7SIrK0tUVlaKl156Kda3g8ZYsuItECuDp29/+9tGmaHirampSSxZskTYbDaRn58vqqurQ24jLIQQJ0+eFAsWLBAWi0UUFxeLRx99lLcVTgHpFmtVVVVDvu7cuXNCCNZtqS6d4u3QoUNi7ty5IicnR1itVnHttdeKH//4xyG/pUKwbktV6RRrg7Hdln6SFW9DPQ9APP/880YZttvGn3SLt3Rsu0lC+PtGExERERERERERJQivKUVERERERERERAnHpBQRERERERERESUck1JERERERERERJRwTEoREREREREREVHCMSlFREREREREREQJx6QUERERERERERElHJNSRERERERERESUcExKERERERERERFRwjEpRURERERERERECcekFBERERERERERJRyTUkRERERERERElHBMShERERERERERUcL9f0cv5/ZjWf9tAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#| echo: false\n", "plt.figure(figsize=(12, 2))\n", "plt.plot(anomaly_online['ts'], anomaly_online['y'], label='y', color='navy', alpha=0.8)\n", "plt.plot(anomaly_online['ts'], anomaly_online['TimeGPT'], label='TimeGPT', color='orchid', alpha=0.7)\n", "plt.scatter(anomaly_online.loc[anomaly_online['anomaly'], 'ts'], anomaly_online.loc[anomaly_online['anomaly'], 'y'], color='orchid', label='Anomalies Detected')\n", "for t in ['2020-02-01 21:00:00', '2020-02-01 21:47:00']:\n", " plt.axvline(pd.to_datetime(t), color='red', linestyle='--', alpha=0.7, label='Anomaly Behavior Captured' if t == '2020-02-01 21:00:00' else None)\n", "\n", "plt.axvspan('2020-02-01 21:00:00', '2020-02-01 21:02:00', color='orchid', alpha=0.3, label='Anomalous Period')\n", "plt.axvspan('2020-02-01 21:47:00', '2020-02-01 22:11:00', color='orchid', alpha=0.3)\n", "plt.legend()\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For an in-depth analysis of the `detect_anomalies_online` method, refer to the tutorial (coming soon)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [] } ], "metadata": { "kernelspec": { "display_name": "python3", "language": "python", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 2 }