{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "92730ce4-1a4e-4f56-9ce3-eacee208165c",
   "metadata": {},
   "source": [
    "# Univariate Time Series Forecasting: NARMA10\n",
    "\n",
    "<h2 id=\"narma10_intro\">Introduction</h2>\n",
    "\n",
    "Time series forecasting is a crucial task in various fields, including finance, weather prediction, and signal processing. Accurate predictions of future values can enable better decision-making and planning. In recent years, machine learning techniques, such as reservoir computing, have shown promising results in addressing this challenge.\n",
    "\n",
    "In this example, we explore time series forecasting using Nonlinear AutoRegressive Moving Average (NARMA) 10 and reservoir computing. NARMA 10 is a synthetic time series generator that mimics the behavior of real-world processes by generating nonlinear and chaotic patterns. Reservoir computing, on the other hand, is a powerful machine learning framework that leverages the dynamics of a large dynamical system, known as a reservoir, to perform tasks like time series prediction.\n",
    "\n",
    "In thise example, we aim to demonstrate the effectiveness of reservoir computing in forecasting NARMA 10 time series data. We will implement a reservoir computing model, train it on historical NARMA 10 data, and evaluate its performance in predicting future values. By comparing the predictions with ground truth data, we can assess the accuracy and reliability of the model.\n",
    "\n",
    "The notebook is organized as follows:\n",
    "\n",
    "- ***Data Generation***: We generate synthetic NARMA 10 time series data to serve as our training and testing dataset.\n",
    "- ***Reservoir Computing Model***: We will be utilzing QCi's photonic reservoir emulator EmuCore.\n",
    "- ***Training***: We'll be using a simple linear regressor utilzing scikit-learn\n",
    "- ***Evaluation***: We evaluate the performance of the trained model on the testing data using Normalized Root Mean Squared Error (NRMSE). As well as this we'll make some plots to visualize the performance across the testing and training sets."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "67332136-300b-4572-b87f-2dfd2a7625f1",
   "metadata": {
    "jp-MarkdownHeadingCollapsed": true
   },
   "source": [
    "## Reservoir Computing with EmuCore\n",
    "\n",
    "EmuCore, developed by QCi, represents a cutting-edge electronic reservoir computing platform designed specifically for tackling complex time series forecasting tasks. EmuCore harnesses the principles of reservoir computing, a powerful machine learning paradigm inspired by the brain's dynamics, to efficiently process and predict time-dependent data. At the heart of EmuCore lies a large-scale dynamical system, referred to as the reservoir, composed of interconnected electronic components. These components exhibit rich nonlinear and chaotic dynamics, enabling EmuCore to capture and extract intricate patterns and dependencies present in time series data. The reservoir acts as a high-dimensional feature space where input signals are mapped and processed to generate accurate predictions.\n",
    "In this section, we explore the capabilities of EmuCore for time series forecasting tasks. We discuss the architecture and operation principles of EmuCore, highlighting its unique features and advantages. Furthermore, we demonstrate the effectiveness of EmuCore through practical examples and experiments, showcasing its ability to accurately predict complex time series data.\n",
    "\n",
    "Through the integration of advanced hardware design, innovative algorithms, and rigorous testing, EmuCore represents a groundbreaking solution for time series forecasting and other machine learning tasks. Its versatility, performance, and efficiency make it a valuable tool for researchers, engineers, and practitioners seeking to push the boundaries of predictive analytics and intelligent systems.\n",
    "\n",
    "<img src=\"_static/figures/general_reservoir_schematics.png\" alt=\"reservoir schematic\" width=\"50%\">\n",
    "\n",
    "QCI's EmuCore technology is based on a time delayed scheme. However, unlike other reservoir offerings from QCi the \n",
    "\n",
    "<img src=\"_static/figures/time_delayed_reservoir_schematic.png\" alt=\"time delayed reservoir schematic\" width=\"50%\">\n",
    "<a href=\"https://arxiv.org/pdf/2102.09049.pdf\">Photonic Reservoir Architecture and Benchmarking</a>\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3bfe317f-3dab-42d7-8c4b-6067ac31ed85",
   "metadata": {},
   "source": [
    "<h2 id=\"narma10_data_gen\">Data Generation</h2>\n",
    "\n",
    "Here we use widely used benchmark, namely NARMA10,\n",
    "\n",
    "$y_{k+1} = 0.3 y_k + 0.05 y_k \\sum_{𝑖=0}^{9} y_{k-i} + 1.5 u_k u_{k−9} + 0.1$\n",
    "\n",
    "where the input 𝑢𝑘 is drawn from a uniform distribution in the interval $[0, 0.5]$.\n",
    "\n",
    "The function below generates a NARMA10 time series and splits it into training and testing parts."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "bbeebbd6-43da-409f-90c0-ae3b29e9acd1",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "\n",
    "def NARMA10(seed, train_size, test_size):    \n",
    "    np.random.seed(seed)\n",
    "    total_size = train_size + test_size\n",
    "    utrain = 0.5 * np.random.rand(total_size, 1)\n",
    "    ytrain = np.zeros((10, 1))\n",
    "    for i in list(range(9, total_size - 1)):\n",
    "        temp = (\n",
    "            0.3 * ytrain[i]\n",
    "            + 0.05 * ytrain[i] * np.sum(ytrain[i - 10 + 1 : i + 1])\n",
    "            + 1.5 * utrain[i] * utrain[i - 10 + 1]\n",
    "            + 0.1\n",
    "        )\n",
    "        ytrain = np.append(ytrain, [temp], axis=0)\n",
    "\n",
    "    train_data = {\n",
    "        \"trainInput\": utrain[0:train_size],\n",
    "        \"trainTarget\": ytrain[0:train_size],\n",
    "    }\n",
    "\n",
    "    test_data = {\n",
    "        \"testInput\": utrain[train_size:total_size],\n",
    "        \"testTarget\": ytrain[train_size:total_size],\n",
    "    }\n",
    "\n",
    "    dataset = {\"train_data\": train_data, \"test_data\": test_data}    \n",
    "    return dataset"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "893f23b1-6f3a-4cd2-92d6-55e641b19060",
   "metadata": {},
   "source": [
    "Let us consider a time series of size 1000 with 800 samples in the training part and 200 in the testing portiong."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "ee47b306-ba91-485a-9d25-892eef50c2de",
   "metadata": {},
   "outputs": [],
   "source": [
    "TRAIN_SIZE = 800\n",
    "TEST_SIZE = 200\n",
    "\n",
    "dataset = NARMA10(seed=0, train_size=TRAIN_SIZE, test_size=TEST_SIZE)\n",
    "\n",
    "X_train = dataset[\"train_data\"][\"trainInput\"]\n",
    "y_train = dataset[\"train_data\"][\"trainTarget\"].reshape((TRAIN_SIZE))\n",
    "\n",
    "X_test = dataset[\"test_data\"][\"testInput\"]\n",
    "y_test = dataset[\"test_data\"][\"testTarget\"].reshape((TEST_SIZE))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "eb6e4be5-945b-4a9e-9c5e-561449d3474f",
   "metadata": {},
   "source": [
    "The target for this forecast is plotted below with the training portion in blue and the testing portion in red:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "8a116ccf-ef6b-4d6e-a052-e6a1c90610c5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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oEE4fPgwAODgwYPo1asXsrOzkZaWhubNm+PDDz8Mb+Puu+/G999/j8mTJ4edoB07diAYDOLee+9F/fr1Ub58eZx//vmYPHmyvQfSIEle7rx69epITExEYWFhxOeFhYXIysrSXPfEiROYPXs2nnnmGSeLSDgAOTdEWYHEjQsIAnDypPv7TUuLnHXWBB988AFGjRqF119/Ha1bt8aaNWvQv39/VKhQAX379sWrr76Kzz77DB999BHq1q2LXbt2haMPq1atQs2aNTFjxgx07doViYmJhvf/yCOP4N1338WiRYtw22234fTp02jTpg2GDh2K9PR0fPnll7jrrrvQoEEDtGvXDpMnT8aWLVvQrFmz8L23Ro0aCIVCOOecc/Dxxx+jWrVqWL58Oe6//37UqlULt912m6VjZBZPxU1ycjLatGmD/Px8dO/eHQAQCoWQn5+PQYMGaa778ccf48yZM7jzzjtdKClhJyRuCIKwjZMngYoV3d/v8eOASq4nL6NHj8bLL7+Mm2++GQBQv359bNiwAW+++Sb69u2LnTt3olGjRrjkkksQCARQr1698Lo1atQAUOrImKFx48YAgB07dgAAsrOzI8JkDz30EL7++mt89NFHaNeuHTIyMpCcnIy0tLSIfSYmJmLMmDHh9/Xr18eKFSvw0UcflU1xAwB5eXno27cv2rZti3bt2mHSpEk4ceIE+vXrBwDo06cPsrOzw1acxDvvvIPu3bujWrVqXhSb0GHfPuD114F77wVk1yMAEjdE2cEt5+b4cSApCUhNdWd/hHVOnDiBbdu24d5770X//v3Dn5eUlCAjIwOAGAa6+uqrcf7556Nr167417/+hWuuuca2Mgj/VNDAPw5UMBjECy+8gI8++gh///03iouLcebMGaSlpelua8qUKZg+fTp27tyJU6dOobi4GK1atbKtrEbxXNz07NkT+/fvx6hRo1BQUIBWrVph4cKF4STjnTt3IiEhMjVo8+bNWLp0Kb755hsvikxw0KsX8O23wLvvAv88FIQhcUOUFdwQN6dPA5UqiVGS48ctR0piD+mHe7FfCxz/p8zTpk1D+/btI76TQkwXXnghtm/fjq+++gr/+9//cNtttyE3Nxdz5861tG+JjRs3AhCdFgB48cUXMXnyZEyaNAnNmzdHhQoV8PDDD6O4uFhzO7Nnz8Zjjz2Gl19+GR06dECl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K7ifeO2114S6desKycnJQrt27YQff/zR6yLFFAAU/2bMmBFe5tSpU8KDDz4oVKlSRUhLSxNuuukmYe/evRHb2bFjh3DttdcK5cuXF6pXry48+uijwtmzZ13+NbEFK27oONvD559/LjRr1kxISUkRGjduLLz11lsR34dCIWHkyJFCZmamkJKSIlx11VXC5s2bI5Y5ePCg0KtXL6FixYpCenq60K9fP+HYsWNu/gxfU1RUJAwZMkSoW7eukJqaKpx77rnCiBEjIroW03E2x3fffafYJvft21cQBPuO66+//ipccsklQkpKipCdnS2MGzfOlvIHBEE2lCNBEARBEESMQzk3BEEQBEHEFSRuCIIgCIKIK0jcEARBEAQRV5C4IQiCIAgiriBxQxAEQRBEXEHihiAIgiCIuILEDUEQBEEQcQWJG4IgCIIg4goSNwRBlGkCgQDmz5/vdTEIgrAREjcEQTjO/v37MWDAANStWxcpKSnIyspCly5dsGzZMq+LRhBEHJLkdQEIgoh/brnlFhQXF2PWrFk499xzUVhYiPz8fBw8eNDrohEEEYeQc0MQhKMcOXIES5Yswfjx43HFFVegXr16aNeuHYYPH44bb7wRADBx4kQ0b94cFSpUQJ06dfDggw/i+PHj4W3MnDkTlStXxhdffIHzzz8faWlp6NGjB06ePIlZs2YhJycHVapUweDBgxEMBsPr5eTk4Nlnn0WvXr1QoUIFZGdnY8qUKZrl3bVrF2677TZUrlwZVatWRbdu3bBjx47w94sXL0a7du1QoUIFVK5cGZ06dcJff/1l70EjCMISJG4IgnCUihUromLFipg/fz7OnDmjuExCQgJeffVVrF+/HrNmzcK3336LJ554ImKZkydP4tVXX8Xs2bOxcOFCLF68GDfddBMWLFiABQsW4L333sObb76JuXPnRqz34osvomXLllizZg2GDRuGIUOGYNGiRYrlOHv2LLp06YJKlSphyZIlWLZsGSpWrIiuXbuiuLgYJSUl6N69Ozp37ozffvsNK1aswP33349AIGDPwSIIwh5smVucIAhCg7lz5wpVqlQRUlNThY4dOwrDhw8Xfv31V9XlP/74Y6FatWrh9zNmzBAACFu3bg1/9sADDwhpaWnCsWPHwp916dJFeOCBB8Lv69WrJ3Tt2jVi2z179hSuvfba8HsAwqeffioIgiC89957wvnnny+EQqHw92fOnBHKly8vfP3118LBgwcFAMLixYuNHwSCIFyDnBuCIBznlltuwZ49e/DZZ5+ha9euWLx4MS688ELMnDkTAPC///0PV111FbKzs1GpUiXcddddOHjwIE6ePBneRlpaGho0aBB+n5mZiZycHFSsWDHis3379kXsu0OHDlHvN27cqFjOX3/9FVu3bkWlSpXCjlPVqlVx+vRpbNu2DVWrVsXdd9+NLl264IYbbsDkyZOxd+9eq4eHIAibIXFDEIQrpKam4uqrr8bIkSOxfPly3H333Rg9ejR27NiBf/3rX2jRogU++eQTrF69OpwXU1xcHF6/XLlyEdsLBAKKn4VCIdNlPH78ONq0aYO1a9dG/G3ZsgV33HEHAGDGjBlYsWIFOnbsiDlz5uC8887Djz/+aHqfBEHYD4kbgiA8oWnTpjhx4gRWr16NUCiEl19+GRdffDHOO+887Nmzx7b9sMLjxx9/RJMmTRSXvfDCC/HHH3+gZs2aaNiwYcRfRkZGeLnWrVtj+PDhWL58OZo1a4b//ve/tpWXIAjrkLghCMJRDh48iCuvvBLvv/8+fvvtN2zfvh0ff/wxJkyYgG7duqFhw4Y4e/YsXnvtNfz555947733MHXqVNv2v2zZMkyYMAFbtmzBlClT8PHHH2PIkCGKy/bu3RvVq1dHt27dsGTJEmzfvh2LFy/G4MGDsXv3bmzfvh3Dhw/HihUr8Ndff+Gbb77BH3/8oSqWCILwBhrnhiAIR6lYsSLat2+PV155Bdu2bcPZs2dRp04d9O/fH08++STKly+PiRMnYvz48Rg+fDguu+wyjB07Fn369LFl/48++ih+/vlnjBkzBunp6Zg4cSK6dOmiuGxaWhp++OEHDB06FDfffDOOHTuG7OxsXHXVVUhPT8epU6ewadMmzJo1CwcPHkStWrUwcOBAPPDAA7aUlSAIewgIgiB4XQiCIAgnyMnJwcMPP4yHH37Y66IQBOEiFJYiCIIgCCKuIHFDEARBEERcQWEpgiAIgiDiCnJuCIIgCIKIK0jcEARBEAQRV5C4IQiCIAgiriBxQxAEQRBEXEHihiAIgiCIuILEDUEQBEEQcQWJG4IgCIIg4goSNwRBEARBxBX/DzfneZOWpZalAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "t_train = np.linspace(0, TRAIN_SIZE, TRAIN_SIZE)\n",
    "t_test = np.linspace(TRAIN_SIZE, TRAIN_SIZE + TEST_SIZE, TEST_SIZE)\n",
    "\n",
    "plt.plot(t_train, y_train, \"b\")\n",
    "plt.plot(t_test, y_test, \"r\")\n",
    "plt.legend([\"Train Data\", \"Test Data\"])\n",
    "plt.xlabel(\"Samples\")\n",
    "plt.ylabel(\"NARMA10 Time Series\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e2fa8b7a-54f7-4be5-afb1-95573ab5c59c",
   "metadata": {},
   "source": [
    "## Genearate Reservoir Output\n",
    "\n",
    "After filling out some necessary details including replacing the IP_ADDR and PORT variables with our specific hardware destination we can begin interacting with the device through the client interface. Utilizing EmuCore's direct interface we first begin by acquiring the lock. This ensures that the device is not being utilized by other users or processes and ensures that no one other than the current user can manipulate the reservoir anyway. Some of the ways we can interact with the hardware include resettign the reservoir and configuring reservoir size and attributes."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "bc12084d-acf1-49e6-8755-95db536cfdb5",
   "metadata": {},
   "outputs": [
    {
     "ename": "InactiveRpcError",
     "evalue": "acquire_lock failed due to grpc._channel._InactiveRpcError.",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31m_InactiveRpcError\u001b[0m                         Traceback (most recent call last)",
      "File \u001b[0;32m~/repos/emucore-direct/emucore_direct/client.py:153\u001b[0m, in \u001b[0;36mEmuCoreClient.acquire_lock\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    152\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 153\u001b[0m     acquire_lock_resp \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mstub\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43macquire_lock\u001b[49m\u001b[43m(\u001b[49m\u001b[43memucore_pb2\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mempty_message\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m    154\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m _InactiveRpcError \u001b[38;5;28;01mas\u001b[39;00m exc:\n",
      "File \u001b[0;32m~/repos/emucore-direct/venv/lib/python3.10/site-packages/grpc/_channel.py:946\u001b[0m, in \u001b[0;36m_UnaryUnaryMultiCallable.__call__\u001b[0;34m(self, request, timeout, metadata, credentials, wait_for_ready, compression)\u001b[0m\n\u001b[1;32m    944\u001b[0m state, call, \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_blocking(request, timeout, metadata, credentials,\n\u001b[1;32m    945\u001b[0m                               wait_for_ready, compression)\n\u001b[0;32m--> 946\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_end_unary_response_blocking\u001b[49m\u001b[43m(\u001b[49m\u001b[43mstate\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcall\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m)\u001b[49m\n",
      "File \u001b[0;32m~/repos/emucore-direct/venv/lib/python3.10/site-packages/grpc/_channel.py:849\u001b[0m, in \u001b[0;36m_end_unary_response_blocking\u001b[0;34m(state, call, with_call, deadline)\u001b[0m\n\u001b[1;32m    848\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 849\u001b[0m     \u001b[38;5;28;01mraise\u001b[39;00m _InactiveRpcError(state)\n",
      "\u001b[0;31m_InactiveRpcError\u001b[0m: <_InactiveRpcError of RPC that terminated with:\n\tstatus = StatusCode.UNAVAILABLE\n\tdetails = \"failed to connect to all addresses\"\n\tdebug_error_string = \"{\"created\":\"@1711693535.063393946\",\"description\":\"Failed to pick subchannel\",\"file\":\"src/core/ext/filters/client_channel/client_channel.cc\",\"file_line\":3260,\"referenced_errors\":[{\"created\":\"@1711693535.063391611\",\"description\":\"failed to connect to all addresses\",\"file\":\"src/core/lib/transport/error_utils.cc\",\"file_line\":167,\"grpc_status\":14}]}\"\n>",
      "\nThe above exception was the direct cause of the following exception:\n",
      "\u001b[0;31mInactiveRpcError\u001b[0m                          Traceback (most recent call last)",
      "Cell \u001b[0;32mIn[2], line 17\u001b[0m\n\u001b[1;32m     14\u001b[0m ec_client \u001b[38;5;241m=\u001b[39m EmuCoreClient(ip_addr\u001b[38;5;241m=\u001b[39mIP_ADDR)\n\u001b[1;32m     16\u001b[0m \u001b[38;5;66;03m# A a lock id and reset the device\u001b[39;00m\n\u001b[0;32m---> 17\u001b[0m lock_id, start, end \u001b[38;5;241m=\u001b[39m \u001b[43mec_client\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mwait_for_lock\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n",
      "File \u001b[0;32m~/repos/emucore-direct/emucore_direct/client.py:247\u001b[0m, in \u001b[0;36mEmuCoreClient.wait_for_lock\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    245\u001b[0m start_queue_ts \u001b[38;5;241m=\u001b[39m time\u001b[38;5;241m.\u001b[39mtime_ns()\n\u001b[1;32m    246\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m lock_id \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[0;32m--> 247\u001b[0m     lock_id \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43macquire_lock\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mlock_id\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[1;32m    248\u001b[0m     \u001b[38;5;66;03m# only sleep if didn't get lock on device\u001b[39;00m\n\u001b[1;32m    249\u001b[0m     \u001b[38;5;28;01mif\u001b[39;00m lock_id \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n",
      "File \u001b[0;32m~/repos/emucore-direct/emucore_direct/client.py:155\u001b[0m, in \u001b[0;36mEmuCoreClient.acquire_lock\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    153\u001b[0m     acquire_lock_resp \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstub\u001b[38;5;241m.\u001b[39macquire_lock(emucore_pb2\u001b[38;5;241m.\u001b[39mempty_message())\n\u001b[1;32m    154\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m _InactiveRpcError \u001b[38;5;28;01mas\u001b[39;00m exc:\n\u001b[0;32m--> 155\u001b[0m     \u001b[38;5;28;01mraise\u001b[39;00m InactiveRpcError(\n\u001b[1;32m    156\u001b[0m         \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124macquire_lock failed due to grpc._channel._InactiveRpcError.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m    157\u001b[0m     ) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mexc\u001b[39;00m\n\u001b[1;32m    158\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m message_to_dict(acquire_lock_resp)\n",
      "\u001b[0;31mInactiveRpcError\u001b[0m: acquire_lock failed due to grpc._channel._InactiveRpcError."
     ]
    }
   ],
   "source": [
    "from emucore_direct.client import EmuCoreClient\n",
    "from time import time\n",
    "\n",
    "IP_ADDR = \"172.18.41.70\"\n",
    "PORT = \"50051\"\n",
    "VBIAS = 0.31\n",
    "GAIN = 0.72\n",
    "NUM_NODES = 400\n",
    "NUM_TAPS = 400\n",
    "FEATURE_SCALING = 0.1\n",
    "DENSITY = 1.0\n",
    "\n",
    "# Instantiate an EmuCore instance\n",
    "ec_client = EmuCoreClient(ip_addr=IP_ADDR)\n",
    "\n",
    "# A a lock id and reset the device\n",
    "lock_id, start, end = ec_client.wait_for_lock()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "deb04e3a-770f-415d-8290-abe8e185cdcf",
   "metadata": {},
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "b13d5188",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Reservoir reset\n",
      "Reservoir config\n",
      "Process job\n"
     ]
    }
   ],
   "source": [
    "VBIAS = 0.31\n",
    "GAIN = 0.72\n",
    "NUM_NODES = 400\n",
    "NUM_TAPS = 400\n",
    "FEATURE_SCALING = 0.1\n",
    "DENSITY = 1.0\n",
    "# A a lock id and reset the device\n",
    "#lock_id, start, end = client.wait_for_lock()\n",
    "print(\"Reservoir reset\")\n",
    "ec_client.reservoir_reset(lock_id=lock_id)\n",
    "print(\"Reservoir config\")\n",
    "# Configure\n",
    "ec_client.rc_config(\n",
    "    lock_id=lock_id,\n",
    "    vbias=VBIAS,\n",
    "    gain=GAIN,\n",
    "    num_nodes=NUM_NODES,\n",
    "    num_taps=NUM_TAPS\n",
    ")\n",
    "\n",
    "#np.random.seed(10)\n",
    "#s=np.random.random(1, NUM_NODES , 0.5)\n",
    "#np.random.seed(10)\n",
    "#input_wgts=(2 * np.random.randint(low=0, high=2, size=(1, num_nodes)) - 1) * s.A\n",
    "print(\"Process job\")\n",
    "# Push data through reservoir\n",
    "resp_train, train_max_scale_val, train_wgts = ec_client.process_all_data(\n",
    "    input_data=X_train,\n",
    "    num_nodes=NUM_NODES,\n",
    "    density=DENSITY,\n",
    "    feature_scaling=FEATURE_SCALING,\n",
    "    lock_id=lock_id,\n",
    "    #weights=input_wgts,\n",
    "    #seed_val_weights = 10,\n",
    "    #max_scale_val=None,\n",
    ")\n",
    "\n",
    "resp_test, test_max_scale_val, test_wgts = ec_client.process_all_data(\n",
    "    input_data=X_test,\n",
    "    num_nodes=NUM_NODES,\n",
    "    density=DENSITY,\n",
    "    feature_scaling=FEATURE_SCALING,\n",
    "    lock_id=lock_id,\n",
    "    #weights=input_wgts,\n",
    "    #seed_val_weights = 10,\n",
    "    #max_scale_val=None,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "a9702a13-18e0-42c9-a0f7-f946af1ddc94",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'status': 0, 'message': 'Success'}"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ec_client.release_lock(lock_id=lock_id)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "30de4de3-9202-4060-ba92-4f051f961192",
   "metadata": {},
   "source": [
    "## Build a Linear Model\n",
    "\n",
    "Once we have the reservoir response, we can build a simple linear regression model using the reservoir response as its input."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "c1399057-4b09-4171-ab5c-437896f82f27",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train Mean Squared Error: 0.0002\n",
      "Train R-squared: 0.98\n",
      "Test Mean Squared Error: 0.0004\n",
      "Test R-squared: 0.95\n"
     ]
    }
   ],
   "source": [
    "from sklearn.linear_model import LinearRegression\n",
    "from sklearn.metrics import mean_squared_error, r2_score\n",
    "\n",
    "#resp_train = np.load(\"resp_train.npy\")\n",
    "#resp_test = np.load(\"resp_test.npy\")\n",
    "\n",
    "lin_model = LinearRegression()\n",
    "lin_model.fit(resp_train, y_train)\n",
    "\n",
    "y_pred_train = lin_model.predict(resp_train)\n",
    "y_pred_test = lin_model.predict(resp_test)\n",
    "\n",
    "# Calculate Mean Squared Error and R-squared\n",
    "mse_train = mean_squared_error(y_train, y_pred_train)\n",
    "r2_train = r2_score(y_train, y_pred_train)\n",
    "print(f\"Train Mean Squared Error: {mse_train:.4f}\")\n",
    "print(f\"Train R-squared: {r2_train:.2f}\")\n",
    "\n",
    "mse_test = mean_squared_error(y_test, y_pred_test)\n",
    "r2_test = r2_score(y_test, y_pred_test)\n",
    "print(f\"Test Mean Squared Error: {mse_test:.4f}\")\n",
    "print(f\"Test R-squared: {r2_test:.2f}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "35484147-d76d-4871-866f-ad10a125f1f7",
   "metadata": {},
   "source": [
    "We can look at the normalized root mean squared error (NRMSE), defined as,\n",
    "\n",
    "$NRMSE = \\sqrt{\\frac{1}{m} \\sum_{k=0}^{m}\\frac{(\\hat{y}_k - y_k)^2}{\\sigma^2(y)}}$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "788cd356",
   "metadata": {},
   "outputs": [],
   "source": [
    "def NRMSE(target, estimate):\n",
    "    return np.sqrt(((estimate - target) ** 2).mean()) / np.std(target)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "f8012145-eb3b-42ae-9b87-38e30ba19543",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.2247502186806958\n"
     ]
    }
   ],
   "source": [
    "print(NRMSE(y_test, y_pred_test))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "5fcf87dd-f541-42ad-9ce5-8050af6057a7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAGwCAYAAABVdURTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAABgU0lEQVR4nO3de3xU1bk38N+eCXu45AZCuCUQGES0YhTQEGhVKgq+rVqp51DrOSBaPCoIGhMI5QgGxUQSkNJXoa8V8Ry10gteKqgFBC8heEGh9lSjRJAECaIcSAIym8ys94+dmcxMJslc9sy+zO/7+eRDZjKXNczt2Ws963kkIYQAERERkUXY9B4AERERkZYY3BAREZGlMLghIiIiS2FwQ0RERJbC4IaIiIgshcENERERWQqDGyIiIrKUFL0HkGgejwdff/010tLSIEmS3sMhIiKiMAgh0NTUhEGDBsFm63xuJumCm6+//ho5OTl6D4OIiIiiUFdXh+zs7E4vk3TBTVpaGgD1Pyc9PV3n0RAREVE4GhsbkZOT4/se70zSBTfepaj09HQGN0RERCYTTkoJE4qJiIjIUhjcEBERkaUwuCEiIiJLSbqcGyIisi63242zZ8/qPQyKkizLXW7zDgeDGyIiMj0hBBoaGnDixAm9h0IxsNlsGDZsGGRZjul2GNwQEZHpeQObrKws9OzZk0VaTchbZPfIkSMYMmRITM8hgxsiIjI1t9vtC2zOOeccvYdDMejXrx++/vprtLS0oFu3blHfDhOKiYjI1Lw5Nj179tR5JBQr73KU2+2O6XYY3BARkSVwKcr8tHoOGdwQERGRpTC4ISIiIkthcENERESWwuCGyCKEEHC1uOBqcUEIofdwiKgTkiR1+vPggw/qOraXXnpJt/vXAreCE1mAEAIVuypQe7wWAODs40TxhGImWBIZ1JEjR3y/b9y4EUuWLEFNTY3vvNTU1IhuT1GUmAvfWQlnbogsQHErvsAGAGqP10JxKzqOiEhnQgAuV+J/wpw1HTBggO8nIyMDkiT5Tp86dQq33HIL+vfvj9TUVFx66aXYtm1bwPVzc3Px0EMPYcaMGUhPT8cdd9wBAHjyySeRk5ODnj174sYbb8SqVauQmZkZcN2XX34ZY8aMQffu3TF8+HCUlpaipaXFd7sAcOONN0KSJN9ps+HMDRERWY+iAPPmJf5+16wBHI6YbqK5uRn/5//8HyxfvhwOhwP/9V//heuuuw41NTUYMmSI73KVlZVYsmQJli5dCgCoqqrCnXfeiUcffRTXX389tm3bhgceeCDgtt955x3MmDEDa9aswY9+9CPU1tb6AqOlS5figw8+QFZWFp5++mlMnToVdrs9pseiFwY3REREBpKXl4e8vDzf6YceeggvvvgiXnnlFcydO9d3/o9//GPcf//9vtOLFy/Gtddei6KiIgDAyJEjsWvXLrz66qu+y5SWlqKkpAQzZ84EAAwfPhwPPfQQFixYgKVLl6Jfv34AgMzMTAwYMCCujzOeGNwQEZH1yLI6i6LH/caoubkZDz74IDZv3owjR46gpaUF33//PQ4dOhRwuXHjxgWcrqmpwY033hhw3mWXXRYQ3Ozbtw9VVVVYvny57zy3240zZ87g9OnTlqnyzOCGiIisR5JiXh7SS1FREbZu3YrKykqMGDECPXr0wE033QRFCcyj69WrV8S33dzcjNLSUkybNq3d37p37x71mI2GwQ0REZGBVFVV4dZbb/XNwjQ3N+PgwYNdXu+8887DBx98EHBe8OkxY8agpqYGI0aM6PB2unXrFnNvJ70xuCEiIjKQc889F5s2bcJ1110HSZLwwAMPwOPxdHm9e+65B5dffjlWrVqF6667Dm+++SZee+21gJIQS5YswU9/+lMMGTIEN910E2w2G/bt24d//OMfePjhhwGoO6a2b9+OiRMnwuFwoHfv3nF7rPHCreBEREQGsmrVKvTu3RsTJkzAddddhylTpmDMmDFdXm/ixIlYt24dVq1ahby8PLz++uu47777ApabpkyZgldffRV/+9vfcOmll2L8+PF47LHHMHToUN9lVq5cia1btyInJweXXHJJXB5jvEkiyUqZNjY2IiMjAydPnkR6errewyHShKvFhXmvBW57XXPtGjhSzJlzQBSJM2fO4MCBAxg2bJil8ka0MHv2bHz22Wd455139B5KWDp7LiP5/uayFBERkUVUVlbi6quvRq9evfDaa6/hmWeewRNPPKH3sBKOwQ0REZFFvP/++1ixYgWampowfPhwrFmzBr/61a/0HlbCMbghIiKyiD/+8Y96D8EQmFBMRERElsLghoiIiCyFwQ0RERFZCoMbIiIishQGN0RERGQpDG6ILEMAHrf6g6SqzUlEXbj11lvxs5/9zHf6yiuv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GNxo5PHHH0dubi66d++O/Px8vP/++3oPKWplZWW49NJLkZaWhqysLPzsZz9DTU1NwGWuvPJKSJIU8HPnnXfqNOLIPPjgg+3GPmrUKN/fz5w5gzlz5uCcc85Bamoqfv7zn+Po0aM6jjhyubm57R6jJEmYM2cOAHM+f2+//Tauu+46DBo0CJIk4aWXXgr4uxACS5YswcCBA9GjRw9MnjwZX3zxRcBljh8/jltuuQXp6enIzMzE7bffjubm5gQ+io519vjOnj2LhQsXYvTo0ejVqxcGDRqEGTNm4Ouvvw64jVDPe3l5eYIfSce6eg5vvfXWduOfOnVqwGWM/BwCXT/GUO9LSZJQUVHhu4yRn8dwvh/C+Qw9dOgQfvKTn6Bnz57IyspCcXExWlpaNBsngxsNbNy4EYWFhVi6dCk++ugj5OXlYcqUKfjmm2/0HlpU3nrrLcyZMwe7d+/G1q1bcfbsWVxzzTU4depUwOVmz56NI0eO+H5WrFih04gj94Mf/CBg7O+++67vb/fddx/++te/4k9/+hPeeustfP3115g2bZqOo43cBx98EPD4tm7dCgD4l3/5F99lzPb8nTp1Cnl5eXj88cdD/n3FihVYs2YN1q1bh/feew+9evXClClTcObMGd9lbrnlFvzP//wPtm7dildffRVvv/027rjjjkQ9hE519vhOnz6Njz76CA888AA++ugjbNq0CTU1Nbj++uvbXXbZsmUBz+s999yTiOGHpavnEACmTp0aMP4//OEPAX838nMIdP0Y/R/bkSNHsH79ekiShJ///OcBlzPq8xjO90NXn6Futxs/+clPoCgKdu3ahWeeeQYbNmzAkiVLtBuooJhddtllYs6cOb7TbrdbDBo0SJSVlek4Ku188803AoB46623fOddccUVYv78+foNKgZLly4VeXl5If924sQJ0a1bN/GnP/3Jd96nn34qAIjq6uoEjVB78+fPF06nU3g8HiGEuZ8/IYQAIF588UXfaY/HIwYMGCAqKip85504cUI4HA7xhz/8QQghxD//+U8BQHzwwQe+y7z22mtCkiRx+PDhhI09HMGPL5T3339fABBfffWV77yhQ4eKxx57LL6D00ioxzhz5kxxww03dHgdMz2HQoT3PN5www3ixz/+ccB5Znoeg78fwvkM3bJli7DZbKKhocF3mbVr14r09HThcrk0GRdn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jKdPnxbXXHON6Nevn+jWrZsYOnSomD17druDRCM/h0J0/ToVQojf/e53okePHuLEiRPtrm/057Gr7wchwvsMPXjwoLj22mtFjx49RN++fcX9998vzp49q9k4pdbBEhEREVkCc26IiIjIUhjcEBERkaUwuCEiIiJLYXBDRERElsLghoiIiCyFwQ0RERFZCoMbIiIishQGN0RERGQpDG6IyPSuvPJK3HvvvXoPg4gMgsENERERWQqDGyIiIrIUBjdEZDmbN29GRkYGnnvuOb2HQkQ6SNF7AEREWnr++edx55134vnnn8dPf/pTvYdDRDrgzA0RWcbjjz+Ou+++G3/9618Z2BAlMc7cEJEl/PnPf8Y333yDqqoqXHrppXoPh4h0xJkbIrKESy65BP369cP69eshhNB7OESkIwY3RGQJTqcTO3bswMsvv4x77rlH7+EQkY64LEVEljFy5Ejs2LEDV155JVJSUrB69Wq9h0REOmBwQ0SWct555+HNN9/ElVdeCbvdjpUrV+o9JCJKMElwcZqIiIgshDk3REREZCkMboiIiMhSGNwQERGRpTC4ISIiIkthcENERESWwuCGiIiILIXBDREREVkKgxsiIiKyFAY3REREZCkMboiIiMhSGNwQERGRpfx/1JPwyFSb0+EAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAksAAAGwCAYAAAC5ACFFAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAABRQklEQVR4nO3deVxU9foH8M+gbMMaCowoiuaC5paYiJpWUpDmklbmtVwybdEyUStaNNtoccuyvN6bppXZtcxbVtwf4hIJaoFLWpKpiTdl3C4gkDDC9/eHd85lhuEAw8ycc2Y+79drXsqZc2aewzAzz/kuz1cnhBAgIiIiIpu8lA6AiIiISM2YLBERERHJYLJEREREJIPJEhEREZEMJktEREREMpgsEREREclgskREREQko7nSAbiD6upqnD59GkFBQdDpdEqHQ0RERA0ghMClS5cQFRUFL6+624+YLDnA6dOnER0drXQYREREZIdTp06hTZs2dd7PZMkBgoKCAFz9ZQcHByscDRERETVESUkJoqOjpe/xujBZcgBz11twcDCTJSIiIo2pbwgNB3gTERERyWCyRERERCSDyRIRERGRDI5ZIiIil6qqqoLJZFI6DPIA3t7eaNasWZMfh8kSERG5hBAChYWFKCoqUjoU8iChoaEwGAxNqoPIZImIiFzCnChFRERAr9eziC85lRAC5eXlOHv2LACgVatWdj8WkyUiInK6qqoqKVFq0aKF0uGQh/D39wcAnD17FhEREXZ3yXGANxEROZ15jJJer1c4EvI05r+5poyTY7JEREQuw643cjVH/M0xWSIiIiKSwWSJiIiISAaTJSIiIhf64IMPEBoaqnQY1AiaS5ZWrFiBmJgY+Pn5IT4+Hnv37pXdf+PGjYiNjYWfnx969OiBb775ptY+v/zyC0aOHImQkBAEBATghhtuQEFBgbNOgRxECIGyyjKUVZZBCKF0OETkpiZPngydTlfrlpycXO+xMTExWLZsmcW2cePG4ddff3VStP/jiKTM1nnXvL3wwgsOidXe2DZv3uyS59JUsvTpp58iJSUFCxYsQF5eHnr16oWkpCSphoK17OxsjB8/HlOnTsW+ffswevRojB49GocOHZL2OXbsGAYNGoTY2Fjs2LEDBw8exPPPPw8/Pz9XnRbZQQiBQWsGITAtEIFpgbhxzY1MmIjIaZKTk3HmzBmL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6uoQOZoQAuXl5Th79ixCQ0ObtNgukyUiInIJ81JTNdc3I3I2Ryy2y2SJiIhcQqfToVWrVoiIiIDJZFI6HPIA3t7eTWpRMmOyRERELtWsWTOHfIERuQoHeBMRERHJYLJEREREJIPJEhEREZEMJktEREREMpgsEREREclgskREREQkg8kSERERkQzWWfJAQgiUm66ulaP35pIDREREctiy5GGEEBi0ZhAC0wIRmBaIG9fcyFXAiYiIZDBZ8jDlpnJkn8qWft51apfUykRERES1MVkiIiIiksFkiYiIiEgGkyUiIiIiGUyWiIiIiGQwWSIiIiKSwWSJiIiISAaTJSIiIiIZTJaIiIiIZDBZIiIiIpLBZImIiIhIBpMlIiIiIhlMloiIiIhkMFkiIiIiksFkiYiIiEgGkyUiIiIiGUyWiIiIiGQwWSIiIiKSwWSJiIiISAaTJSIiIiIZTJaIiIiIZDBZIiIiIpLRXOkAiBpDCIFyUznKTGVKh0JERB5Ccy1LK1asQExMDPz8/BAfH4+9e/fK7r9x40bExsbCz88PPXr0wDfffFPnvg8//DB0Oh2WLVvm4KjJEYQQGLRmEALTAhG5KFLpcIiIyENoKln69NNPkZKSggULFiAvLw+9evVCUlISzp49a3P/7OxsjB8/HlOnTsW+ffswevRojB49GocOHaq17xdffIHdu3cjKirK2adBdio3lSP7VLbFtt6G3soEQ0REHkNTydKSJUswbdo0TJkyBd26dcPKlSuh1+uxevVqm/u/9dZbSE5Oxrx589C1a1e89NJL6NOnD9555x2L/f744w889thj+Pjjj+Ht7V1vHBUVFSgpKbG4kWsZ5xpRmlqKrClZSodCRERuTjPJUmVlJXJzc5GYmCht8/LyQmJiInJycmwek5OTY7E/ACQlJVnsX11djfvvvx/z5s3Ddddd16BY0tLSEBISIt2io6PtOCNqigDvAAT4BEAHnbRNQKCssgxllWUQQigYHRERuRPNJEvnz59HVVUVIiMtx6pERkaisLDQ5jGFhYX17v/666+jefPmePzxxxscS2pqKoqLi6XbqVOnGnEm5CyDVl8dzxSYFogb19zIhImIiBzCo2fD5ebm4q233kJeXh50Ol39B/yXr68vfH19nRgZ2eOA8YD0/12ndqHcVI4AnwAFIyIiInegmZalli1bolmzZjAajRbbjUYjDAaDzWMMBoPs/llZWTh79izatm2L5s2bo3nz5jh58iTmzJmDmJgYp5wHERERaYtmkiUfHx/ExcUhMzNT2lZdXY3MzEwkJCTYPCYhIcFifwDIyMiQ9r///vtx8OBB7N+/X7pFRUVh3rx5+Ne//uW8kyEiIiLN0FQ3XEpKCiZNmoS+ffuiX79+WLZsGcrKyjBlyhQAwMSJE9G6dWukpaUBAGbNmoUhQ4Zg8eLFGD58ODZs2IAff/wRq1atAgC0aNECLVq0sHgOb29vGAwGdOnSxbUnR0RERKqkqWRp3LhxOHfuHObPn4/CwkL07t0b6enp0iDugoICeHn9r7FswIABWL9+PZ577jk888wz6NSpEzZv3ozu3bsrdQpERESkMTrBKUNNVlJSgpCQEBQXFyM4OFjpcGSVVZYhMC3QYltpaqkmBkLXjN0cs63zMdPKeRERkTIa+v2tqZYlInI+8/p7AKD31jdqpigRkTvSzABvInK+muvvsV4VEdFVTJaISGK9/p65XhURkSdjskREREQkg8kSERERkQwmS6Rpem89BkYPlH7ubeitXDBEROSWOBuONE2n0yFrSpY0rkZAICgtSOGoiIjInTBZIs3T6XRSPaWyyjKFoyF7sFwBEakZu+GISFEsV0BEasdkiYgUxXIFRKR2TJaIiIiIZDBZIiIiIpLBZImIiIhIBpMlIiIiIhlMloiIiIhkMFkiIiIiksFkiYiIiEgGkyUiIiIiGVzuhMhNcQkR+9X83QH8/RF5OiZLRG7IvISIuTL2wOiByJqSxS/8BrD+3QH8/RF5OnbDEbkhLiFiP+vfHcDfH5GnY7Lk5oQQKKssQ1llGRcnJWqk448fVzoEIlIBJktuzOZq7mDCRNRQAT4BSodARCrAZMmNsSuGiIio6ZgsEREREcngbDgiIjfBchFEzsGWJSIiN2BzjCIndRA5BJMlIiI3wDGKRM7DZImIiIhIBscskVvjGA4iImoqtiyR2xLgGA4iImo6JkvktjiGg4iIHIHdcORU7AYjIiKtY7JETmO9ejtXblcek1ciosZjNxw5jTt2g2l5YWKO4SIisg+TJaIG0nrRP3dMXomIXIHdcEQNVFeywZXpG6ZmFyDAbkBXYxcskf2YLBGR01mPXwP+N4aNnM/Txw8yUaSmYjccETmddascwG5AV/LkLlitd5+TOjBZIiKXOv74caVDIA/iyYkiOY7mkqUVK1YgJiYGfn5+iI+Px969e2X337hxI2JjY+Hn54cePXrgm2++ke4zmUx46qmn0KNHDwQEBCAqKgoTJ07E6dOnnX0aRB6LY7yISGs0lSx9+umnSElJwYIFC5CXl4devXohKSkJZ8+etbl/dnY2xo8fj6lTp2Lfvn0YPXo0Ro8ejUOHDgEAysvLkZeXh+effx55eXnYtGkT8vPzMXLkSFeeFpHHEhAoM5UpHQYRkSxNJUtLlizBtGnTMGXKFHTr1g0rV66EXq/H6tWrbe7/1ltvITk5GfPmzUPXrl3x0ksvoU+fPnjnnXcAACEhIcjIyMA999yDLl26oH///njnnXeQm5uLgoICV54akUcatHoQIhdFKvb81nWzhGDyRkS1aWY2XGVlJXJzc5Gamipt8/LyQmJiInJycmwek5OTg5SUFIttSUlJ2Lx5c53PU1xcDJ1Oh9DQ0Dr3qaioQEVFhfRzSUlJw06CiCwcMB6Q/t/b0Bv7C/e77LmtZ4gNiB4AALUGohMRaaZl6fz586iqqkJkpOVVaGRkJAoLC20eU1hY2Kj9L1++jKeeegrjx49HcHBwnbGkpaUhJCREukVHRzfybIioJuNco8vLCFgP/M0+lV2rtIHeW+/SmMj1tFyVXwvc5fermWTJ2UwmE+655x4IIfDee+/J7puamori4mLpdurUKRdFSeSeArwDoIN6at+Ykzc1xUSOx7ICzuVOv1/NdMO1bNkSzZo1g9FotNhuNBphMBhsHmMwGBq0vzlROnnyJLZt2ybbqgQAvr6+8PX1teMsiEgLArwDWLjQA7Aqv3O50+9XMy1LPj4+iIuLQ2ZmprSturoamZmZSEhIsHlMQkKCxf4AkJGRYbG/OVE6evQotm7dihYtWjjnBIhUSMA9msiJiJxJMy1LAJCSkoJJkyahb9++6NevH5YtW4aysjJMmTIFADBx4kS0bt0aaWlpAIBZs2ZhyJAhWLx4MYYPH44NGzbgxx9/xKpVqwBcTZTuuusu5OXlYcuWLaiqqpLGM4WFhcHHx0eZEyVykUGrB0mDrAdGD0T6fekKR0REpD6aSpbGjRuHc+fOYf78+SgsLETv3r2Rnp4uDeIuKCiAl9f/GssGDBiA9evX47nnnsMzzzyDTp06YfPmzejevTsA4I8//sCXX34JAOjdu7fFc23fvh033XSTS86LSCk1Z6OxsrE2mdc9Y8kDIufRVLIEADNnzsTMmTNt3rdjx45a2+6++27cfffdNvePiYlh1wMRaYKtxWBtLVBMRI6nmTFLRESeynpWUZ9VfVBaWYoyU1mtRKm3obcyQRK5Mc21LJFnYmVl8mTWs4r2F+5HUFqQRWJknGtEgHcABASC0oIUiJLIfbFliVTPfFWt5LIYWsLE0r11Cusk/b9mxfMA7wAE+KirXhWRu2CyRKpnfVXNysp1Y2Lp/vIeyoNxrrH+HYnIYdgNR5pinGtEuD6cBQPrYJ1Yunq9NXI+HXQI8NZeUT8iLWOyRJrCysoNZ5xrhN5bL41fKatk1xwRkT2YLBG5KevWhw7LOygUCRGRtnHMkodh64Jn0XvrMTB6oMU2Ti1vGndZRZ2IGo4tSx6GrQueRafTIWtKlkVlbk4tt591EciB0QORNSWLXcNEbo4tSx7CujWBrQueQ6fTIcAnQLppbWq5mlpy6lpFnVxPTX8X5P7YsuQhsqZkWXxJsnWBtIAtOWQL/y7I1diy5CF00HbrAnkmtuSQLfy7IFdjskTkIFrpFrAe9M0uWeVp5W+HyFOxG47IAbTULWA96JtdssrS0t8Okadiy5IbqHlVqvYr0zKTuuOzl9a6BWoO+maXrGXrWlOW07GnhUhrfzueiC1/xJYljbO+KgX+d2WqRpGLIlV/5SyEkL6s9N56p8ZZ87lc8XxkW80JEPa+Btbvxd6G3tLj8nVVhiMWlWbLHwFMljSp5hesgLBIlAB1XpnWXKPMHF+Aj/rWt3LlB6NcoqvT6WSTNlcmdJ7APAGiKaxbiPYX7pe6N/kF63q23l/2qKvlT42fX/aSu2jjBd1VTJY0xtbVq9nxx4+rtuikeYxM5KJIReMQEFIVc1tveld+MFo/V83n03vr60zaeKWrfp3COuHoxaPSz+74Bat2XFS6YerrnZC7oPMkHLOkMbauXs3U/EGslpXSB60ehMC0QASmBeLGNTeqZvzB8cePW/wsN46FY1zUL++hPJSmlsI416h0KISri0qrdWiCkoQQOFd+rs6LNrkLOk/DZIk8ygHjAen/anrTqznRpcaT6pqp4AKBri4qzYkMlswtSjVb+2tetAlYjveyvqDzNOyGI7flaYsGO2Iwq6f9zog8lXWr0cDogQgPCJd+HrR6kMXFpadf0DFZIrel1vFbziDgmMGsnvQ7I6KrjHONCNeHW7S010yUmlJOw12wG47cinV1asC5FarLTP+tvQJ1LfDamA83V//OiEhdArwD6hywbR7v5endmGxZIrdiXZ0acG6FanN/v5qSC/NVYkNnq7j6d6ZVZaYy1VxdmxPcXad2AeCVvxq4azkPuUTKkzBZIrdjrk5t5oxxONbTkNU0JdmeDzdX/M60LnJRpGqSYusE152+nLWI5TzcH5MlNyUgVDPTyx2Zm6XLTGWK145yR+aB6kp3b1q34KgpKbZOcEk5nlC40tMxWXJT1jMZyLEcUfGZ6qaW7k1zC8658nNMih3AVjVoAC5vIVNTlyppA5MlN8WZDKQ11q04gDpacnQ6dRRU1TpblaIHRA8AAJd3X5nXqEy/L92pz0Pug8mSm2vsYN+msL5qVLoLhbSl5jgcd+7etB4I7ClsVYOuqzq0M1ptrZNxNRWlJfVjsuTmXDWTwdZVo9JdKI3liKKO1DTuPg7H1kBgT2zdUGIdS3apUlMwWSKHsHXVqIYulIZy1ArlRHK4rt9VSiXEntilamucGGfpNV6Dk6Uvv/yywQ86cuRIu4Ih96DEVWNTcYVyInI3ti4CzePC1E5tdasanCyNHj26QfvpdDpUVVXZGw+5Aa13oxjnGqH31jeoKKP1OAgmWUSkFrZa/LXQmqnGulUNTpaqq6udGQeRImzV82lMM711cUBWviYiNdJSi78a61ZxzBJ5NEfU86k5KJmVr0lrOKbFM2i9xV9pdidLZWVl2LlzJwoKClBZWWlx3+OPP97kwMh1zAXaPOkDUs3LlZD2aHUmpdyYFk/6PKhJQFhc9LAECgF2Jkv79u3DsGHDUF5ejrKyMoSFheH8+fPQ6/WIiIhgsqQx5gJtnvQByeVKyFEEtDuTUm5Mi6e2RFivflBfq7NWE2VqHC97Dpo9ezZGjBiB//znP/D398fu3btx8uRJxMXFYdGiRY6OkZzAPDDZTAuD/hzJvFyJp00jJsezTji0WjH/+OPHlQ7BIYS42jJkbwJjvUyUXKuzuWWOF1zuz65kaf/+/ZgzZw68vLzQrFkzVFRUIDo6Gm+88QaeeeYZR8dITmAemGyca1Q6FNII6Uvovzch2D1hzTjXqNkWWjW3JNX825P7uzMnL4FpgU1OYBqSPNoqOdIYfE9ph13dcN7e3vDyuppnRUREoKCgAF27dkVISAhOnTrl0ADJeTyxQBvZh2NbGsZVFfM9SWOqntvqVrS3pa+xyWNjSo4AfE9pjV3J0vXXX48ffvgBnTp1wpAhQzB//nycP38eH374Ibp37+7oGEljrGsPmT+sPKmbz91wbAspxd6q58a5RgR4B7hs8orchaetAot8T2mLXd1wr776Klq1agUAeOWVV3DNNdfgkUcewblz57Bq1SqHBmhtxYoViImJgZ+fH+Lj47F3717Z/Tdu3IjY2Fj4+fmhR48e+OabbyzuF0Jg/vz5aNWqFfz9/ZGYmIijR4868xTcng5Xu/hKU0tRmlrKKyU34y5jW0g51mMmrbuvLLrd7JyNFuAdgAAf5Vv6anYNBqYFos+qPiitLLU4L76n1M+ulqW+fftK/4+IiEB6umsWgvz000+RkpKClStXIj4+HsuWLUNSUhLy8/MRERFRa//s7GyMHz8eaWlpuOOOO7B+/XqMHj0aeXl5UgvYG2+8geXLl2Pt2rVo3749nn/+eSQlJeHnn3+Gn5+fS87LHbn7gqiejK8rNZX5gspWMdfSylIMWjNIGlittQW5rVm3IO0v3I+gtCCL8+J7Sv3sallSypIlSzBt2jRMmTIF3bp1w8qVK6HX67F69Wqb+7/11ltITk7GvHnz0LVrV7z00kvo06cP3nnnHQBXM/5ly5bhueeew6hRo9CzZ0+sW7cOp0+fxubNm+uMo6KiAiUlJRY30ibrK1ytzmRyJgFOjSbHM19QBfgEQIf/tf4YFhtcVgPN1UVkO4V1kv7P2m7aYlfLUvv27WWbNo8fd3yTYmVlJXJzc5Gamipt8/LyQmJiInJycmwek5OTg5SUFIttSUlJUiJ04sQJFBYWIjExUbo/JCQE8fHxyMnJwb333mvzcdPS0rBw4cImnhGpgfVyJZ5WnLMhrOvOEDma9ThH4GpicfSic4dEuHr5j7yH8lBuKmepAQ2yK1l64oknLH42mUzYt28f0tPTMW/ePEfEVcv58+dRVVWFyEjLP7LIyEgcOXLE5jGFhYU29y8sLJTuN2+rax9bUlNTLZKwkpISREdHN/xkSFXYZSivZqKkhpY36wrLTHDrZq7Or3bWFy2A89ZZtJWYuWoBbB04A1mr7EqWZs2aZXP7ihUr8OOPPzYpIC3w9fWFr6+v0mEQuZRxrhHh+nDFZzVat3RxunXdzNX565pqrybWFy3O6iJzZWJG7sOhY5Zuv/12fP755458SEnLli3RrFkzGI2WRRSNRiMMBoPNYwwGg+z+5n8b85hEnkotNYSsuwQ9rfp8fTy9On9D1BwvZT1mipyvoUVG1cShydJnn32GsLAwRz6kxMfHB3FxccjMzJS2VVdXIzMzEwkJCTaPSUhIsNgfADIyMqT927dvD4PBYLFPSUkJ9uzZU+djEjWFI6ZE01Wcbm0bq/OTqzWmErl5LUVzKYUb19yoiYTJ7qKUNa8whRAoLCzEuXPn8O677zosOGspKSmYNGkS+vbti379+mHZsmUoKyvDlClTAAATJ05E69atkZaWBuBqd+GQIUOwePFiDB8+HBs2bMCPP/4o1YLS6XR44okn8PLLL6NTp05S6YCoqCiMHj3aaedBnsm6Yq/Wp0QrjePM6taQ6vwCgi1OMqzHNjV2XJN5bJ27zySVq0RuS11FRtX+frYrWbJOJLy8vBAeHo6bbroJsbGxjojLpnHjxuHcuXOYP38+CgsL0bt3b6Snp0sDtAsKCqRlWABgwIABWL9+PZ577jk888wz6NSpEzZv3mxRZfzJJ59EWVkZpk+fjqKiIgwaNAjp6emssUQOZ6veCmmfq6efOwpnOcqTqwXVEEr9fmtWC3d267UQAufKz9VZidyd2JUsLViwwNFxNNjMmTMxc+ZMm/ft2LGj1ra7774bd999d52Pp9Pp8OKLL+LFF190VIhELqfVL2x34Orp546itlmOalRz0Hlj32PWiZIrln1yZeu1rRal448f1+z7oT4NTpYaU3gxODjYrmCIyD7u+gGlZtbdMlpNONQyy9Fd2btGXc0WIqBhJTJc2Xpt/VwDowciPCDcrseqWQ5Ere+hBidLoaGhDX6hq6qq7A6IiBrOXb6wtShrSpbFLCqt1ntSyyxHd2Veo64x5MYBqeG1sh7v1tSEu2aXpVpLXTQ4Wdq+fbv0/99//x1PP/00Jk+eLM0ay8nJwdq1a6XB1UTkfO7yha1FOrCYaV1qtorwb7LxrFttAHUNhLYej9XUhLvmY6l1vFODk6UhQ4ZI/3/xxRexZMkSjB8/Xto2cuRI9OjRA6tWrcKkSZMcGyW5HfMMEX6QNg2/sEltrFtF5GZGUf3UOA7IE8e72VVnKScnB3379q21vW/fvti7d2+TgyL3F7ko0mU1NrhYrvZYv2Yss6AddU0NdzZ3XfBZzRdDxrlG1XQNOptds+Gio6Pxt7/9DW+88YbF9r///e9cI43qZGtNJlc0LathsVwh3POD3FmsXzMuR0H1acpUfevPJl5QNYwnjXezK1launQpxo4di2+//Rbx8fEAgL179+Lo0aNOW+6EtK/mF2CZqcylK28ruViurcGaVL+mTNsmz9OUriE1XFCRutnVDTds2DD8+uuvGDFiBC5evIiLFy9ixIgR+PXXXzFs2DBHx0huRFqTyYNW3rbulmCXEpHz2Ns1VHO9OCZKZM2uliXgalfcq6++6shYiNxKmams1tWtca4Rem+9bJcSl6EgR/OkljlP6hoi12lwsnTw4EF0794dXl5eOHjwoOy+PXv2bHJgRFoXuSiyVs2QhrSocRkKcjSlZ1PZunAg0pIGJ0u9e/dGYWEhIiIi0Lt3b+h0OpuzmHQ6HYtSkseyHihqz0ygmolSYxfvJDKzNaFCqb+nyEWR7H5WEbUkrzX/HtX+WdfgZOnEiRMIDw+X/k9EtZkHip4rP9fkAewN6bKjxjMXTHT32YnWg5YB188qrPkFqOYvQk+jluS1ZlFdtc94bXCy1K5dO5v/JyJLOp3OIQPYPWkQvKt42sxE61mgrh67ZE7WXDnzlWyzbmlUQ/Jas6iu2sfV2TUbbu3atfj666+ln5988kmEhoZiwIABOHnypMOCI0us1UNkPyEEzpWfq5UosaaOYwhxdTHUmp9ROjjmwsGdKFUkV4erLY3GuUanP5c7sms23Kuvvor33nsPwNVq3u+88w6WLVuGLVu2YPbs2di0aZNDg/Rk5i4DAYEb19yoiqsBIq2x1aJk72rwVJuntdg1ha2aTq6a/eqoVm9PZFeydOrUKXTs2BEAsHnzZtx1112YPn06Bg4ciJtuusmR8Xk0uQ8gtQ+GI+dg66J9rGtdDYweiHB9OJMkB7G18Ku5xcQdy2A0dYC0kkVyyT52JUuBgYG4cOEC2rZti//7v/9DSkoKAMDPzw9//vmnQwP0ZLY+gHobekuLUqp5MBz9j6P64gV49e4IxrlGJkr1MCcD9vyOPKHFzlZZEHJvdo1ZuvXWW/Hggw/iwQcftKjaffjwYcTExDgyPvov41wjSlNLkTc9D4E+gdIMAlI/6xo39o5ZsNU6wrE2jceihfWLXBRp9yLXAd7uWQXb+n3rqgWCtarMVAYB5y6S7kp2tSytWLECzz33HE6dOoXPP/8cLVq0AADk5uZi/PjxDg2QrjJ/ADmTuXvHna8IXcVWjRtzcuOIMQtsHdEetdS2qUtdNcLYXXSVI8uCNJV5LCug3s9rtZQncBS7kqXQ0FC88847tbYvXLiwyQGRcswfAAOjB9q1thL9j60aNzU/1Jo6ZkHLrSOeusK72r881JQMqJUaBkhbj2VV0+e1GssTOIpd3XAAkJWVhfvuuw8DBgzAH3/8AQD48MMP8f333zssOHI+66ZlgM3LjlJzYU537Jawl3kKc2lqKUpTS1XzQe8M1u8vtX95qCEZIHnW3fFq+rw2J9zuWJ7ArmTp888/R1JSEvz9/ZGXl4eKigoAQHFxMRfX1RjzH3dpaqlb/oGTa0g1dv57q2+si6es8O7OXx5Etrhrwm1XsvTyyy9j5cqV+Nvf/gZvb29p+8CBA5GXl+ew4Mg1pC8uN/wDJ+czdwsEpgVKN3sHB7sjd/3yqJkgu9NAXiJb7EqW8vPzMXjw4FrbQ0JCUFRU1NSYyE5KVYYl11DrcgC2SlyoqWtADazfm2oeu9QQ1gnyjWtuVDokIqeya4C3wWDAb7/9VqtMwPfff48OHTrYPoiczjwWRO2zJMg+1iUI1Oj448cVibMpdYFcwXrAv9oXDa2PdYKs9rFYzqKWCxjzTGa28DmPXS1L06ZNw6xZs7Bnzx7odDqcPn0aH3/8MebMmYNHHnnE0TFSI3jKWBBPYWsAvppbDJWaZt6UukCuYvHeZJ00t6CWC5jIRZFs4XMyu1qWnn76aVRXV2Po0KEoLy/H4MGD4evri3nz5uHBBx90dIykclyCw3nqK0HgyVgXiJQgV0PN1V3P1steeWoLnyvY1bKk0+nw7LPP4uLFizh06BB2796Nc+fOISQkBO3bt3d0jKRi5rELzqrLwkSMJQjq4spV1Dke0H7u9rurOYNY6fIXnMnsOo1qWaqoqMALL7yAjIwMqSVp9OjRWLNmDe688040a9YMs2fPdlaspEKOWIJDQEh9/zVbTbiSOdXHVTPNbFVdZ9LaMO74u1PLQrg6qCMOT9CoZGn+/Pn461//isTERGRnZ+Puu+/GlClTsHv3bixevBh33303mjVr5qxYSeXsXYJj0OpBOGA8AMCyGi3XQiM1UcsXpBbxd0da16hkaePGjVi3bh1GjhyJQ4cOoWfPnrhy5QoOHDig+SsFajp7l+AwJ0pA3eNOuBYaEREppVFjlv79738jLi4OANC9e3f4+vpi9uzZ/AIjp9PyWmhEjVVmqr8KuiuYu8gbUpWdyJ01KlmqqqqCj4+P9HPz5s0RGBjo8KCIiDyZWkohDFo9iFXZ3Yy7Dbh3lUZ1wwkhMHnyZPj6+gIALl++jIcffhgBAZZdJps2bXJchEREHqLmVHA1lEJoSBc5aYtWB9wrXXi2UcnSpEmTLH6+7777HBoMEZEnM3+JOasUBzmXdQ0mtbbaaHHAfeSiSJSmlioWd6OSpTVr1jgrDiIij6eDey666ym02mqjZtaFN5ViVwVvIiIiqk2LrTZqljUlS1oeSMlWOrsqeBORY3HQJdkizUbz8Cr25LnMhTeVXr2ALUtEKsDme+fR8pI5NQu2EpFymCwR1cP8RSvg3GnTbL53PK0vmWOdKLHFkUgZmumGu3jxIiZMmIDg4GCEhoZi6tSpKC0tlT3m8uXLmDFjBlq0aIHAwECMHTsWRuP/Fhw8cOAAxo8fj+joaPj7+6Nr16546623nH0qpDGRiyKlOjOkLe6yZI5xrlHRBVuJPJ1mkqUJEybg8OHDyMjIwJYtW/Ddd99h+vTpssfMnj0bX331FTZu3IidO3fi9OnTGDNmjHR/bm4uIiIi8NFHH+Hw4cN49tlnkZqainfeecfZp0MqZz2GCIAqZmRoiUX1Zye3yjWEca5Rs8lGgLfyYzaIPJkmuuF++eUXpKen44cffkDfvn0BAG+//TaGDRuGRYsWISoqqtYxxcXFeP/997F+/XrccsstAK6WPujatSt2796N/v3744EHHrA4pkOHDsjJycGmTZswc+ZM558YqVbNMURlpjLWvbFDzfE2vQ29lQ0GXDKHiOyniZalnJwchIaGSokSACQmJsLLywt79uyxeUxubi5MJhMSExOlbbGxsWjbti1ycnLqfK7i4mKEhYXJxlNRUYGSkhKLG7kf8xiicH04Z6rZoeZ4G7bKEblWzQsUfmY1nSZalgoLCxEREWGxrXnz5ggLC0NhYWGdx/j4+CA0NNRie2RkZJ3HZGdn49NPP8XXX38tG09aWhoWLlzY8BMgTeNMNSLSGuv6RPzMahpFW5aefvpp6HQ62duRI0dcEsuhQ4cwatQoLFiwALfddpvsvqmpqSguLpZup06dckmMShLif+NPPHEFcnMrE8eNEJEWqKU+kbtQtGVpzpw5mDx5suw+HTp0gMFgwNmzZy22X7lyBRcvXoTBYLB5nMFgQGVlJYqKiixal4xGY61jfv75ZwwdOhTTp0/Hc889V2/cvr6+0mLCnsDW9Oveht7ImpKlYFSkFTWXK2B3ABFpkaLJUnh4OMLDw+vdLyEhAUVFRcjNzUVcXBwAYNu2baiurkZ8fLzNY+Li4uDt7Y3MzEyMHTsWAJCfn4+CggIkJCRI+x0+fBi33HILJk2ahFdeecUBZ+V+rKdfA1fHoASlBali4C6pmyu7A8wz8Gr+TETUVJoYs9S1a1ckJydj2rRpWLlyJUwmE2bOnIl7771Xmgn3xx9/YOjQoVi3bh369euHkJAQTJ06FSkpKQgLC0NwcDAee+wxJCQkoH///gCudr3dcsstSEpKQkpKijSWqVmzZg1K4jxR4ZxCJH+cLLUUcOAu1cfcHeAK1hWvmcwTkSNoYjYcAHz88ceIjY3F0KFDMWzYMAwaNAirVq2S7jeZTMjPz0d5ebm0benSpbjjjjswduxYDB48GAaDAZs2bZLu/+yzz3Du3Dl89NFHaNWqlXS74YYbXHpuWhLoE4i86XkwzjXWvzORi1lXvGYyr13Wtc6Y+JKSNNGyBABhYWFYv359nffHxMTUGnTs5+eHFStWYMWKFTaPeeGFF/DCCy84MkyPoNPpEODNZTlIvY4/fhwdlndQOgy35Kq19qxnoQoIBKUFOf15yblqdpNriWaSJSKihuIae84h4Nq19mqul6jVL1mypNWLGM10wxERNZR1Fw5n4TnGubJztWbFEjWE9d+K1t6TbFkiIrejAwuJOkPNVgHjXCP03npFusbYyqQ9NWfFAtp7T7JliYjcEguJOo6tVoFwfbjFl58rabUrx5PVLJKpxfckW5aIiEiWGloFzF2ru07tkrbVLHhK5ExMloiISJYra2XVGYPV7DiAM+TIddgNR0SqxwHbBFh2rQb4BCjWDUiehy1LROQw1l0ljkpqrFsVtDY4lMiTOOtzQElMlsimmmtscX0taihnzkKrWXOHiNTLHS9umCyRTTXX2GItFWoMJjVE5G6fAxyzRDbVXGOLs02IiJRXZipTrKXf08cNsmWJ7OKOfdJERGoWuShSsZZ+d+xaawwmSyrlqsUq7eXpbxwiIlewvjBVsqXf3brWGoPdcCpVbipH5KJIpcOQxQrJ7svTm9yJ1MI8acI416h0KB6NLUsawC8qcjW2HBKph06nQ4C3Z7boqAWTJZXSe+tRmloq/Z9fVORqntzkTkRUE7vhVIpdXERE1BDsNnc+tiwREXmIhsxi5UxX7XG3bnNzQWQ1YbJEROQhGvKl6m5fvJ7CnbrNOyzvoHQItbAbjojIgzSki5/DAMjVrLsSAXW1arJliRRh3dTf29CblcKJiDyUdYsmoK5WTSZLpAjrN4aAQFBakMJRERF5LqXHq6m5K5HJEimm5htDjQP6iIg8Ccer1Y1jlkhi3Wes1BpEZaYylFWWqXq5FyIid8TxaraxZYkkaukaU/syL0RE5FnYskQWLK4q4LqrClszIczUNCOCiMiZykxlEBBKh0FW2LJEqmBrJoQZ+82JyFNELopUbAgE1Y0tS6QaNVu1at6YKBGRO7NuWWcZFfVhsqRRXAuIiMg9mFvWjXONSodCdWA3nEZxiicRkfvQ6XQI8FZnjSFiy5KmcYonKa3MpHyJB7ayEpGzsWWJiOymhjIPbGVVjtIVn4lchckSETWK9RekmZJflGpeJsGdMVElT8FkiYgapa4yD/yi9ExMVMkTMFkiokbjFyQReRIO8CYiIiKSwWSJiIiISAaTJSIiIiIZTJaIiIiIZDBZIiIiIpLBZImIiIhIhmaSpYsXL2LChAkIDg5GaGgopk6ditLSUtljLl++jBkzZqBFixYIDAzE2LFjYTTaXqjwwoULaNOmDXQ6HYqKipxwBkRERKRFmkmWJkyYgMOHDyMjIwNbtmzBd999h+nTp8seM3v2bHz11VfYuHEjdu7cidOnT2PMmDE29506dSp69uzpjNCJiIhIwzSRLP3yyy9IT0/H3//+d8THx2PQoEF4++23sWHDBpw+fdrmMcXFxXj//fexZMkS3HLLLYiLi8OaNWuQnZ2N3bt3W+z73nvvoaioCHPnznXF6RAREZGGaCJZysnJQWhoKPr27SttS0xMhJeXF/bs2WPzmNzcXJhMJiQmJkrbYmNj0bZtW+Tk5Ejbfv75Z7z44otYt24dvLwa9uuoqKhASUmJxY2IiIjckyaSpcLCQkRERFhsa968OcLCwlBYWFjnMT4+PggNDbXYHhkZKR1TUVGB8ePH480330Tbtm0bHE9aWhpCQkKkW3R0dONOiIiIiDRD0WTp6aefhk6nk70dOXLEac+fmpqKrl274r777mv0ccXFxdLt1KlTToqQiIiIlKboQrpz5szB5MmTZffp0KEDDAYDzp49a7H9ypUruHjxIgwGg83jDAYDKisrUVRUZNG6ZDQapWO2bduGn376CZ999hkAQAgBAGjZsiWeffZZLFy40OZj+/r6wtfXtyGnSERERBqnaLIUHh6O8PDwevdLSEhAUVERcnNzERcXB+BqolNdXY34+Hibx8TFxcHb2xuZmZkYO3YsACA/Px8FBQVISEgAAHz++ef4888/pWN++OEHPPDAA8jKysK1117b1NMjIiIiN6BostRQXbt2RXJyMqZNm4aVK1fCZDJh5syZuPfeexEVFQUA+OOPPzB06FCsW7cO/fr1Q0hICKZOnYqUlBSEhYUhODgYjz32GBISEtC/f38AqJUQnT9/Xno+67FORERE5Jk0McAbAD7++GPExsZi6NChGDZsGAYNGoRVq1ZJ95tMJuTn56O8vFzatnTpUtxxxx0YO3YsBg8eDIPBgE2bNikRPhFRg+i99RgYPVD6eWD0QOi99QpGRESaaFkCgLCwMKxfv77O+2NiYqQxR2Z+fn5YsWIFVqxY0aDnuOmmm2o9BhGRK+l0OmRNyUK56eqFn95bD51Op3BURJ5NM8kSEZGn0Ol0CPAJUDoMIvovzXTDERERESmByRIRkYLKKsuUDoGI6sFkiYhIQR2Wd1A6BCKqB5MlIiIXs57xBnDWG5GacYA3EZGLWc94AzjrjUjNmCwRESmAM96ItIPdcEREREQymCwRERGpAKu3qxe74YiIiFSA1dvVi8kSERGRSnAsmzqxG46IiIhIBpMlIiIiIhlMloiIiIhkMFkiIiIiksFkiYiIiEgGkyUiIiIiGUyWiIiIiGQwWSIiIiKSwWSJiIiISAaTJSIiIiIZTJaIiIiIZDBZIiIiIpLBZImIiIhIBpMlIiIiIhlMloiIiIhkMFkiIiIiksFkiYiIiEgGkyUiIiIiGUyWiIiIiGQwWSIiIiKSwWSJ6qT31mNg9EDp54HRA6H31isYERERkes1VzoAUi+dToesKVkoN5UDuJo86XQ6haMiIiJyLbYskSydTocAnwAE+AQwUSIiVWHrN7kKW5aIiEiT2PpNrsJkiYiINMvc+k3kTOyGIyIiIpLBZImIiIhIBpMlIiIiIhlMloiIiIhkMFkiIiIikqGZZOnixYuYMGECgoODERoaiqlTp6K0tFT2mMuXL2PGjBlo0aIFAgMDMXbsWBiNxlr7ffDBB+jZsyf8/PwQERGBGTNmOOs0iIiISGM0kyxNmDABhw8fRkZGBrZs2YLvvvsO06dPlz1m9uzZ+Oqrr7Bx40bs3LkTp0+fxpgxYyz2WbJkCZ599lk8/fTTOHz4MLZu3YqkpCRnngoRERFpiE4IIZQOoj6//PILunXrhh9++AF9+/YFAKSnp2PYsGH497//jaioqFrHFBcXIzw8HOvXr8ddd90FADhy5Ai6du2KnJwc9O/fH//5z3/QunVrfPXVVxg6dGiD46moqEBFRYX0c0lJCaKjo1FcXIzg4OAmni0REZGlssoyBKYFWmwrTS1ljakmKikpQUhISL3f35poWcrJyUFoaKiUKAFAYmIivLy8sGfPHpvH5ObmwmQyITExUdoWGxuLtm3bIicnBwCQkZGB6upq/PHHH+jatSvatGmDe+65B6dOnZKNJy0tDSEhIdItOjraAWdJREREaqSJZKmwsBAREREW25o3b46wsDAUFhbWeYyPjw9CQ0MttkdGRkrHHD9+HNXV1Xj11VexbNkyfPbZZ7h48SJuvfVWVFZW1hlPamoqiouLpVt9yRURERFpl6LJ0tNPPw2dTid7O3LkiNOev7q6GiaTCcuXL0dSUhL69++PTz75BEePHsX27dvrPM7X1xfBwcEWNyIiInJPiq4NN2fOHEyePFl2nw4dOsBgMODs2bMW269cuYKLFy/CYDDYPM5gMKCyshJFRUUWrUtGo1E6plWrVgCAbt26SfeHh4ejZcuWKCgosOOMiIiIyN0omiyFh4cjPDy83v0SEhJQVFSE3NxcxMXFAQC2bduG6upqxMfH2zwmLi4O3t7eyMzMxNixYwEA+fn5KCgoQEJCAgBg4MCB0vY2bdoAuFqi4Pz582jXrl2Tz4+IiIi0TxNjlrp27Yrk5GRMmzYNe/fuxa5duzBz5kzce++90ky4P/74A7Gxsdi7dy8AICQkBFOnTkVKSgq2b9+O3NxcTJkyBQkJCejfvz8AoHPnzhg1ahRmzZqF7OxsHDp0CJMmTUJsbCxuvvlmxc6XiIiI1EMTyRIAfPzxx4iNjcXQoUMxbNgwDBo0CKtWrZLuN5lMyM/PR3l5ubRt6dKluOOOOzB27FgMHjwYBoMBmzZtsnjcdevWIT4+HsOHD8eQIUPg7e2N9PR0eHt7u+zciIiISL00UWdJ7Rpap4GIiMgerLPkHG5VZ4mIiIhIKUyWiIiIiGQwWSIiIiKSwWSJiIiISAaTJSIiIiIZTJaIiIiIZDBZIiIiIpLBZImIiIhIBpMlIiIiIhlMloiIiIhkMFkiIiIiksFkiYiIiEgGkyUiIiIiGUyWiIiIiGQwWSIiIiKSwWSJiIiISAaTJSIiIiIZTJaIiIhUTu+tx8DogdLPA6MHQu+tVzAiz9Jc6QCIiIhInk6nQ9aULJSbygFcTZ50Op3CUXkOJktEREQaoNPpEOAToHQYHondcEREREQymCwRERERyWCyRERERCSDyRIRERGRDCZLRERERDKYLBERERHJYLJEREREJIPJEhEREZEMJktEREREMpgsEREREclgskREREQkg8kSERERkQwmS0REREQymisdgDsQQgAASkpKFI6EiIiIGsr8vW3+Hq8LkyUHuHTpEgAgOjpa4UiIiIiosS5duoSQkJA679eJ+tIpqld1dTVOnz6NoKAg6HQ6hz1uSUkJoqOjcerUKQQHBzvscdXE3c/R3c8P4Dm6A3c/P4Dn6A6ccX5CCFy6dAlRUVHw8qp7ZBJblhzAy8sLbdq0cdrjBwcHu+Uffk3ufo7ufn4Az9EduPv5ATxHd+Do85NrUTLjAG8iIiIiGUyWiIiIiGQwWVIxX19fLFiwAL6+vkqH4jTufo7ufn4Az9EduPv5ATxHd6Dk+XGANxEREZEMtiwRERERyWCyRERERCSDyRIRERGRDCZLRERERDKYLKnYihUrEBMTAz8/P8THx2Pv3r1Kh2SXtLQ03HDDDQgKCkJERARGjx6N/Px8i31uuukm6HQ6i9vDDz+sUMSN98ILL9SKPzY2Vrr/8uXLmDFjBlq0aIHAwECMHTsWRqNRwYgbLyYmptY56nQ6zJgxA4D2XsPvvvsOI0aMQFRUFHQ6HTZv3mxxvxAC8+fPR6tWreDv74/ExEQcPXrUYp+LFy9iwoQJCA4ORmhoKKZOnYrS0lIXnoU8uXM0mUx46qmn0KNHDwQEBCAqKgoTJ07E6dOnLR7D1uv+2muvufhMbKvvNZw8eXKt2JOTky320fJrCMDme1Kn0+HNN9+U9lHza9iQ74eGfH4WFBRg+PDh0Ov1iIiIwLx583DlyhWHxclkSaU+/fRTpKSkYMGCBcjLy0OvXr2QlJSEs2fPKh1ao+3cuRMzZszA7t27kZGRAZPJhNtuuw1lZWUW+02bNg1nzpyRbm+88YZCEdvnuuuus4j/+++/l+6bPXs2vvrqK2zcuBE7d+7E6dOnMWbMGAWjbbwffvjB4vwyMjIAAHfffbe0j5Zew7KyMvTq1QsrVqywef8bb7yB5cuXY+XKldizZw8CAgKQlJSEy5cvS/tMmDABhw8fRkZGBrZs2YLvvvsO06dPd9Up1EvuHMvLy5GXl4fnn38eeXl52LRpE/Lz8zFy5Mha+7744osWr+tjjz3mivDrVd9rCADJyckWsX/yyScW92v5NQRgcW5nzpzB6tWrodPpMHbsWIv91PoaNuT7ob7Pz6qqKgwfPhyVlZXIzs7G2rVr8cEHH2D+/PmOC1SQKvXr10/MmDFD+rmqqkpERUWJtLQ0BaNyjLNnzwoAYufOndK2IUOGiFmzZikXVBMtWLBA9OrVy+Z9RUVFwtvbW2zcuFHa9ssvvwgAIicnx0UROt6sWbPEtddeK6qrq4UQ2n4NAYgvvvhC+rm6uloYDAbx5ptvStuKioqEr6+v+OSTT4QQQvz8888CgPjhhx+kfb799luh0+nEH3/84bLYG8r6HG3Zu3evACBOnjwpbWvXrp1YunSpc4NzAFvnN2nSJDFq1Kg6j3HH13DUqFHilltusdimlddQiNrfDw35/Pzmm2+El5eXKCwslPZ57733RHBwsKioqHBIXGxZUqHKykrk5uYiMTFR2ubl5YXExETk5OQoGJljFBcXAwDCwsIstn/88cdo2bIlunfvjtTUVJSXlysRnt2OHj2KqKgodOjQARMmTEBBQQEAIDc3FyaTyeL1jI2NRdu2bTX7elZWVuKjjz7CAw88YLF4tNZfQ7MTJ06gsLDQ4jULCQlBfHy89Jrl5OQgNDQUffv2lfZJTEyEl5cX9uzZ4/KYHaG4uBg6nQ6hoaEW21977TW0aNEC119/Pd58802Hdm84244dOxAREYEuXbrgkUcewYULF6T73O01NBqN+PrrrzF16tRa92nlNbT+fmjI52dOTg569OiByMhIaZ+kpCSUlJTg8OHDDomLC+mq0Pnz51FVVWXxwgNAZGQkjhw5olBUjlFdXY0nnngCAwcORPfu3aXtf/nLX9CuXTtERUXh4MGDeOqpp5Cfn49NmzYpGG3DxcfH44MPPkCXLl1w5swZLFy4EDfeeCMOHTqEwsJC+Pj41PoCioyMRGFhoTIBN9HmzZtRVFSEyZMnS9u0/hrWZH5dbL0HzfcVFhYiIiLC4v7mzZsjLCxMk6/r5cuX8dRTT2H8+PEWi5Q+/vjj6NOnD8LCwpCdnY3U1FScOXMGS5YsUTDahklOTsaYMWPQvn17HDt2DM888wxuv/125OTkoFmzZm73Gq5duxZBQUG1uvi18hra+n5oyOdnYWGhzfeq+T5HYLJELjVjxgwcOnTIYjwPAIsxAj169ECrVq0wdOhQHDt2DNdee62rw2y022+/Xfp/z549ER8fj3bt2uEf//gH/P39FYzMOd5//33cfvvtiIqKkrZp/TX0ZCaTCffccw+EEHjvvfcs7ktJSZH+37NnT/j4+OChhx5CWlqa6pfVuPfee6X/9+jRAz179sS1116LHTt2YOjQoQpG5hyrV6/GhAkT4OfnZ7FdK69hXd8PasBuOBVq2bIlmjVrVmu0v9FohMFgUCiqpps5cya2bNmC7du3o02bNrL7xsfHAwB+++03V4TmcKGhoejcuTN+++03GAwGVFZWoqioyGIfrb6eJ0+exNatW/Hggw/K7qfl19D8usi9Bw0GQ60JF1euXMHFixc19bqaE6WTJ08iIyPDolXJlvj4eFy5cgW///67awJ0oA4dOqBly5bS36S7vIYAkJWVhfz8/Hrfl4A6X8O6vh8a8vlpMBhsvlfN9zkCkyUV8vHxQVxcHDIzM6Vt1dXVyMzMREJCgoKR2UcIgZkzZ+KLL77Atm3b0L59+3qP2b9/PwCgVatWTo7OOUpLS3Hs2DG0atUKcXFx8Pb2tng98/PzUVBQoMnXc82aNYiIiMDw4cNl99Pya9i+fXsYDAaL16ykpAR79uyRXrOEhAQUFRUhNzdX2mfbtm2orq6WEkW1MydKR48exdatW9GiRYt6j9m/fz+8vLxqdV9pwb///W9cuHBB+pt0h9fQ7P3330dcXBx69epV775qeg3r+35oyOdnQkICfvrpJ4vE15z4d+vWzWGBkgpt2LBB+Pr6ig8++ED8/PPPYvr06SI0NNRitL9WPPLIIyIkJETs2LFDnDlzRrqVl5cLIYT47bffxIsvvih+/PFHceLECfHPf/5TdOjQQQwePFjhyBtuzpw5YseOHeLEiRNi165dIjExUbRs2VKcPXtWCCHEww8/LNq2bSu2bdsmfvzxR5GQkCASEhIUjrrxqqqqRNu2bcVTTz1lsV2Lr+GlS5fEvn37xL59+wQAsWTJErFv3z5pJthrr70mQkNDxT//+U9x8OBBMWrUKNG+fXvx559/So+RnJwsrr/+erFnzx7x/fffi06dOonx48crdUq1yJ1jZWWlGDlypGjTpo3Yv3+/xXvTPIMoOztbLF26VOzfv18cO3ZMfPTRRyI8PFxMnDhR4TO7Su78Ll26JObOnStycnLEiRMnxNatW0WfPn1Ep06dxOXLl6XH0PJraFZcXCz0er147733ah2v9tewvu8HIer//Lxy5Yro3r27uO2228T+/ftFenq6CA8PF6mpqQ6Lk8mSir399tuibdu2wsfHR/Tr10/s3r1b6ZDsAsDmbc2aNUIIIQoKCsTgwYNFWFiY8PX1FR07dhTz5s0TxcXFygbeCOPGjROtWrUSPj4+onXr1mLcuHHit99+k+7/888/xaOPPiquueYaodfrxZ133inOnDmjYMT2+de//iUAiPz8fIvtWnwNt2/fbvPvctKkSUKIq+UDnn/+eREZGSl8fX3F0KFDa533hQsXxPjx40VgYKAIDg4WU6ZMEZcuXVLgbGyTO8cTJ07U+d7cvn27EEKI3NxcER8fL0JCQoSfn5/o2rWrePXVVy2SDSXJnV95ebm47bbbRHh4uPD29hbt2rUT06ZNq3XBqeXX0Oyvf/2r8Pf3F0VFRbWOV/trWN/3gxAN+/z8/fffxe233y78/f1Fy5YtxZw5c4TJZHJYnLr/BktERERENnDMEhEREZEMJktEREREMpgsEREREclgskREREQkg8kSERERkQwmS0REREQymCwRERERyWCyRERERCSDyRIRkQPpdDps3rxZ6TCIyIGYLBGR5pw7dw6PPPII2rZtC19fXxgMBiQlJWHXrl1Kh0ZEbqi50gEQETXW2LFjUVlZibVr16JDhw4wGo3IzMzEhQsXlA6NiNwQW5aISFOKioqQlZWF119/HTfffDPatWuHfv36ITU1FSNHjgQALFmyBD169EBAQACio6Px6KOPorS0VHqMDz74AKGhodiyZQu6dOkCvV6Pu+66C+Xl5Vi7di1iYmJwzTXX4PHHH0dVVZV0XExMDF566SWMHz8eAQEBaN26NVasWCEb76lTp3DPPfcgNDQUYWFhGDVqFH7//Xfp/h07dqBfv34ICAhAaGgoBg4ciJMnTzr2l0ZETcJkiYg0JTAwEIGBgdi8eTMqKips7uPl5YXly5fj8OHDWLt2LbZt24Ynn3zSYp/y8nIsX74cGzZsQHp6Onbs2IE777wT33zzDb755ht8+OGH+Otf/4rPPvvM4rg333wTvXr1wr59+/D0009j1qxZyMjIsBmHyWRCUlISgoKCkJWVhV27diEwMBDJycmorKzElStXMHr0aAwZMgQHDx5ETk4Opk+fDp1O55hfFhE5hiAi0pjPPvtMXHPNNcLPz08MGDBApKamigMHDtS5/8aNG0WLFi2kn9esWSMAiN9++03a9tBDDwm9Xi8uXbokbUtKShIPPfSQ9HO7du1EcnKyxWOPGzdO3H777dLPAMQXX3whhBDiww8/FF26dBHV1dXS/RUVFcLf31/861//EhcuXBAAxI4dOxr/SyAil2HLEhFpztixY3H69Gl8+eWXSE5Oxo4dO9CnTx988MEHAICtW7di6NChaN26NYKCgnD//ffjwoULKC8vlx5Dr9fj2muvlX6OjIxETEwMAgMDLbadPXvW4rkTEhJq/fzLL7/YjPPAgQP47bffEBQUJLWIhYWF4fLlyzh27BjCwsIwefJkJCUlYcSIEXjrrbdw5syZpv56iMjBmCwRkSb5+fnh1ltvxfPPP4/s7GxMnjwZCxYswO+//4477rgDPXv2xOeff47c3FxpXFFlZaV0vLe3t8Xj6XQ6m9uqq6vtjrG0tBRxcXHYv3+/xe3XX3/FX/7yFwDAmjVrkJOTgwEDBuDTTz9F586dsXv3brufk4gcj8kSEbmFbt26oaysDLm5uaiursbixYvRv39/dO7cGadPn3bY81gnMrt370bXrl1t7tunTx8cPXoUERER6Nixo8UtJCRE2u/6669HamoqsrOz0b17d6xfv95h8RJR0zFZIiJNuXDhAm655RZ89NFHOHjwIE6cOIGNGzfijTfewKhRo9CxY0eYTCa8/fbbOH78OD788EOsXLnSYc+/a9cuvPHGG/j111+xYsUKbNy4EbNmzbK574QJE9CyZUuMGjUKWVlZOHHiBHbs2IHHH38c//73v3HixAmkpqYiJycHJ0+exP/93//h6NGjdSZfRKQM1lkiIk0JDAxEfHw8li5dimPHjsFkMiE6OhrTpk3DM888A39/fyxZsgSvv/46UlNTMXjwYKSlpWHixIkOef45c+bgxx9/xMKFCxEcHIwlS5YgKSnJ5r56vR7fffcdnnrqKYwZMwaXLl1C69atMXToUAQHB+PPP//EkSNHsHbtWly4cAGtWrXCjBkz8NBDDzkkViJyDJ0QQigdBBGRFsTExOCJJ57AE088oXQoRORC7IYjIiIiksFkiYiIiEgGu+GIiIiIZLBliYiIiEgGkyUiIiIiGUyWiIiIiGQwWSIiIiKSwWSJiIiISAaTJSIiIiIZTJaIiIiIZDBZIiIiIpLx/yGDlhfWmrxGAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def StepPlotData(y1,y2,legend1=\"y1\",legend2=\"y2\"):\n",
    "    \n",
    "    plt.figure()\n",
    "    assert(y1.shape[0]==y2.shape[0])\n",
    "    i=np.arange(y1.shape[0])\n",
    "    plt.step(i,y1,'r', where='mid', label=legend1,alpha=0.6)\n",
    "    plt.legend()\n",
    "    plt.step(i,y2,'g', where='mid', label=legend2,alpha=0.6)\n",
    "    plt.legend()\n",
    "\n",
    "StepPlotData(y1=y_test, y2=y_pred_test, legend1=\"Target\", legend2=\"Predicted\")\n",
    "plt.xlabel(\"k\")\n",
    "plt.ylabel(\"output y[k]\")\n",
    "#plt.figure()\n",
    "#plt.imshow(test_x, cmap=\"nipy_spectral\")\n",
    "#plt.colorbar() \n",
    "\n",
    "plt.figure()\n",
    "plt.step(y_test-y_pred_test,'g', where='mid', label=\"Estimate-Target\")\n",
    "plt.legend()\n",
    "\n",
    "plt.xlabel(\"Samples\")\n",
    "plt.ylabel(\"Residual\")\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "rc_dev",
   "language": "python",
   "name": "rc_dev"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
