{ "cells": [ { "cell_type": "markdown", "id": "9afa4177", "metadata": {}, "source": [ "## FA API - GraphQL" ] }, { "cell_type": "markdown", "id": "e0ddea68", "metadata": {}, "source": [ "This example shows you how to call the GraphQL API and visualize the output." ] }, { "cell_type": "code", "execution_count": 1, "id": "523797a5", "metadata": {}, "outputs": [], "source": [ "#environment url - REPLACE example: 'myEnvironment.fasolutions.com'\n", "instance = \"\"\n", "#secret given by FA - REPLACE \n", "secret = \"\"" ] }, { "cell_type": "code", "execution_count": 2, "id": "8e8cc950", "metadata": {}, "outputs": [], "source": [ "#Get the access token, used to authenticate the grapqhl request\n", "get_token_options = {\n", " \"data\":{\"client_id\":\"fa-api\",\"client_secret\":secret,\"grant_type\":\"client_credentials\"},\n", " \"url\": f'https://{instance}/auth/realms/fa/protocol/openid-connect/token'\n", "}" ] }, { "cell_type": "code", "execution_count": 3, "id": "17562c09", "metadata": {}, "outputs": [], "source": [ "#TOKEN CALL\n", "import requests\n", "\n", "#Generic function to make a post request\n", "def post_request(options):\n", " request = requests.post(options.get(\"url\"), data=options.get(\"data\"), json=options.get(\"json\"), headers=options.get(\"headers\"))\n", " if request.status_code == 200:\n", " response = request.json()\n", " return response\n", " else:\n", " raise Exception(f'Failed to make request, error {request.status_code}.')\n", "\n", "token = post_request(get_token_options).get(\"access_token\")" ] }, { "cell_type": "code", "execution_count": 4, "id": "3cba3d0d", "metadata": {}, "outputs": [], "source": [ "#SELECT PORTFOLIO ID\n", "portfolioId = 7" ] }, { "cell_type": "code", "execution_count": 5, "id": "c243075f", "metadata": {}, "outputs": [], "source": [ "#GET THE RAW DATA\n", "query = \"\"\"query {\n", " portfoliosByIds(ids: [%s] ) {\n", " id\n", " name\n", " graph:analytics(withoutPositionData:true,\n", " parameters: {\n", " paramsSet: {\n", " timePeriodCodes:\"GIVEN\"\n", " includeData:true\n", " drilldownEnabled:false\n", " limit: 0\n", " },\n", " includeDrilldownPositions:false\n", " }) {\n", " dailyValues:grouppedAnalytics(key:\"1\") {\n", " dailyValue:indexedReturnData {\n", " date\n", " portfolioIndex:indexedValue\n", " benchmarkIndex:benchmarkIndexedValue\n", " }\n", " }\n", " }\n", " }\n", "}\"\"\" % (portfolioId)\n", "\n", "url = f'https://{instance}/graphql' \n", "headers = {'Authorization': 'Bearer %s' % token}\n", "response = requests.post(url,headers=headers, json={'query': query})" ] }, { "cell_type": "code", "execution_count": 6, "id": "e7be47dc", "metadata": {}, "outputs": [ { "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", "
dateportfolioIndexbenchmarkIndex
02021-07-27100.000000100.000000
12021-07-2899.81147399.546536
22021-07-2999.95894099.838668
32021-07-3099.70151799.112365
42021-07-3199.70568299.112365
\n", "
" ], "text/plain": [ " date portfolioIndex benchmarkIndex\n", "0 2021-07-27 100.000000 100.000000\n", "1 2021-07-28 99.811473 99.546536\n", "2 2021-07-29 99.958940 99.838668\n", "3 2021-07-30 99.701517 99.112365\n", "4 2021-07-31 99.705682 99.112365" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#TRANSFORM THE DATA\n", "import pandas as pd\n", "import numpy as np\n", "df = pd.DataFrame(response.json()['data']['portfoliosByIds'][0][\"graph\"]['dailyValues'])\n", "df.head()\n", "\n", "#GET \n", "df2 = pd.DataFrame([x for x in df['dailyValue']])\n", "df2[\"date\"] = pd.core.tools.datetimes.to_datetime(df2[\"date\"])\n", "df2.head()" ] }, { "cell_type": "code", "execution_count": 7, "id": "9af7ae22", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY4AAAEhCAYAAABoTkdHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAABX+klEQVR4nO3deXhTZdo/8G/2pWmTbmlLF8pS9mVUQKuIWgUHEVkUwVdREK3KiALzQ0VcZ4YRX9BXhxkXRB3GbRTUIqIDgrihwoDsO6XQvWnTJs2+nt8fyUkbmrQJZDvt/bkuL8vJOSf3k6a58+w8hmEYEEIIISHixzsAQggh3EKJgxBCSFgocRBCCAkLJQ5CCCFhocRBCCEkLJQ4CCGEhEUY7wBiwe12w+WKzqhjgYAXtXvHApfj53LsLK6Wgatxt8f1MsQifpFIEPB4j0gcLhcDnc4clXurVPKo3TsWuBw/l2NncbUMXI27Pa6XIRbxZ2YmBzxOTVWEEELCQomDEEJIWChxEEIICQslDkIIIWGhxEEIISQslDgIIYSEhRIHIXHSYrbHOwRCLgglDkLi4FyzGRPf+BW7KrTxDoWQsFHiICQODtW1wsUAFU3cnYBGeq4eMXOckFgyWJ348mgDanQWTB2eg/6ZSR3OOdVoAgA0m6i5inAPJQ5CIuy5/5zAD+VtTVD/r6R/h3NOsomD+jkIB1FTFSERdKrRiB/KtbjvigIUZSahVm/tcA7DMDilMQKgGgfhJkochETQu7uqkCQWYNalueiVIkVta8fEoTHaobc6AVDiINxEiYOQCGky2rD9ZCNuHZkDpUyEXkopavVWMIz/0tenGj21DaVUSImDcBIlDkIiZF9NK9wMUDIgEwDQSymFxeGGzuLwO++kxtO/MapARX0chJOiljiWLl2K4uJi3Hzzzb5jOp0Oc+fOxYQJEzB37lzo9XoAwMGDBzFlyhRMmTIFt9xyC7755puA9wx2PSGJ4ECNHlIhHwO9o6hyUqQAgFq9FY1GG7Ye1+CNnWex+WgDcpVS5CqlaDbZO9RICEl0UUsc06dPx9q1a/2OrVmzBsXFxdi6dSuKi4uxZs0aAEBRURE+/fRTbNy4EWvXrsUzzzwDp9PZ4Z7BrickERyoacWwnGQIBZ4/q1ylJ3HU6K24798HsGzzcby7qxIAMOvSXKhkIjhcDEx2V9xiJuRCRC1xjB49Gkql0u/Y9u3bMXXqVADA1KlTsW3bNgCATCaDUOgZGWyz2cDj8QLeM9j1hMSbye7EyUYjRua2ved7eRPHz2dbUKu34g9jC/HDI2Px6b2jMevSXKTKRQDQoSmLkEQX0z4OrVYLtVoNAFCr1WhubvY9duDAAUyaNAm33HILnn/+eV8iCfV6QuLpcJ0BbgYYmZviOyYXC6CSibDtRCMAYPygTEiEbX9yqTIxAKDFTImDcEvCTAAcOXIkNm/ejPLycjz++OMYN24cJBJJRO4tEPCgUskjcq+O9+ZH7d6xwOX4EyF2hmFQ2WLBjjPN4POAsYOykSxt+7MqSJPjYI0evdPkGNo73e/afLUnYdj58S9HuBLhtb9YXC9DPOOPaeJIT0+HRqOBWq2GRqNBWlpah3P69esHmUyGkydPYvjw4WFfH4jLxURtU3fa8D5+4h37K9+dwcbDdTDaPH0Ul+SmwGW1Q2dtGymlTvLUKkbnKzvEKnR5rqtpNEKXrYhR1JER79c+ErhehljEn5mZHPB4TBNHSUkJysrKUFpairKyMlx//fUAgKqqKuTk5EAoFKKmpgYVFRXIzc0N+XpCYu2bE434YG81ru2fjiv7pGGgWoGiAGtSsf0cl/dO7fAY28fRcl4fx+lGE3ZXtuCExohTjSYMVCvwx+v6QSFJmAYC0sNF7Z24ePFi7N69Gy0tLRg3bhwWLFiA0tJSLFy4EBs2bEBOTg5effVVAMDevXvx1ltvQSgUgs/n47nnnvPVJpYtW4ZZs2Zh+PDhQa8nJFa+P92EYw1GbNhfi6HZyXhh8hAI+YEHcwDApXlKfHuqEaMKVB0ek4kEkIr4fnM5vj7WgOe/PgEXA2QkidEnXY6vjzbgYG0r3rh9BDIVkWm+JeRi8JgeMIjc4XBRU1UQXI4/1rG7GQbXrt4Ji8MNtUKMv982An3SL66Necra3fhdbgqenzgIn+yrxcpvT+PSPCX+fNMgqJM9SeK3ah0e+fQwxvVLx19vHhyJolw0Lr9vWFwvQzybqmjmOCEhqm+1weJwY+n4Imx+4IqLThoAkJYkRovZgbd/PYeV357G1X3T8Or0Yb6kAQCX5qlwz5h8fHOiEbvOtVz0cxJysShxEBKiCq3n213ftMiNZElLEmPXuRa8sfMcfj9Yjf+9ZQikIkGH8+4enY88lRRrfj4Xsecm5EJR4iAkRGe0njWmCiNQ02DlpcrAA7Dg6j54fuJA36zz80mEfBQXpvmSFyHxRImDkBCdbTYjTS6CSiaK2D0X3zAAG+4djbvH5IMfZMUEVq5SCoPNCX0nM83PaE2498N9nZ5DyMWixEFIiCq05oj0a7SnlImQp5KFdG6eyjO0t1pvxd4qHf7pXfeqvb1VehyqM2B/jR4Mw+CnM1q43N1+/AuJMUochISAYRhUNJvRJ4L9G+HKVXoSTI3Ogn//VoM3fj7XISnUezeOOqExYk+VDos+P4LdldShTiKLZhQREoImkx1GmyviNY5w5KraVts9qTHC5WbQaLQh27t8OwDUtdoAACe8e34AgN7ScaVpQi4GJQ5C2mkx2/HLWc+s7RMaI/KUMjx14wBfp3Q8E4dMJEB6khjHGoyo9SaIulb/xFHvPX5SY4TF4VnSxGynxEEiixIHIe38actJ/HSmGRIhH0liAfbXtOKJ8UVtiSOOTVWAp4P854q2VaHrWq24BG1LudcbrOABqDfYfDPSab8PEmnUx0FIO6cbTSgpysB3C67C/LGFcLkZNBisqGyxIEns+cYfT3kqKWxOt+/ftXqr72eHy40mox0jenmWdre7PP0fZkocJMIocRDiZXW4UG+woX9mEoR8nm+0U43OkzgKUmVBNxmLlTxvB7laIUZGkhh1rW2Jo8FgAwPgmv5ty7fzeYDZQYmDRBY1VRHiVdliAQD0TvV8OLNbv1brrajUWTA8J/C6PbHEdpAPVCugszh9fR2AJ3Gwj2UlSyDgAVanm2ocJOKoxkGI1zk2cXj7MTIVEgj5PJzVmlGnt6IgNbT5FtHEJrOBagV6KSWoa9dUxdY+slOkuHt0Hu65vABJYgElDhJxlDgI8TrX7OkAZxOEgM9DL6UUu861gAGQnwCJY4BagVEFKlxXlIGcFCnqDTbfXA52RFVWsgS3X5KL6SNyIBcLqamKRBwlDkK8KlssyEqWQNZukcFcpRRntGxCif82ozKRAK/PGIEBagVylFLfXA7AkzjS5CK/fc3lYgGNqiIRR4mDEK9zLRZf/waLbRoCgIIQlwaJlV4pnqXX2Ul/9QYrctrN6QBATVUkKihxEALPkiLnms2+/g0WO7IqVSZCsjSxxpL08o6w2nS4Hv+7/TQO1xmQneK/Q6BMJPBNBCQkUhLrL4GQONGaHTDZXUFrHInQv3G+7GQJJEI+Nh1pgFwkwAB1EqYOz/Y7h5qqSDRELXEsXboU3333HdLT0/Hll18CAHQ6HRYtWoSamhrk5ubilVdegVKpxM6dO/HSSy/B4XBAJBJhyZIlKC4u7nDP1atX45NPPvHtR7548WJcc8010SoC6UGqfCOqzksc3uGviTCi6nxiIR/v33Up+Hwe8lTSgMuye5qqaMkREllRa6qaPn061q5d63dszZo1KC4uxtatW1FcXIw1a9YAAFJTU/H6669j06ZNWLFiBR577LGg950zZw42btyIjRs3UtIgEaM1eZbnyFD4N/XkqWSQCvkYoFbEI6wuFabLUZAqC7qXh1wkgMXhhpuhpdVJ5EQtcYwePRpKpdLv2Pbt2zF16lQAwNSpU7Ft2zYAwJAhQ5CVlQUAKCoqgt1uh91uj1ZohHSg8258dP4mTTKRAOvnjsJtI3PiEdZFk4s9I8Sog5xEUkw7x7VaLdRqNQBArVajubm5wzlbtmzB4MGDIRYHXhPogw8+wOTJk7F06VLo9fqoxkt6Dr3VkziUATrAs1OkEAXZ0jXRJXkTB3WQk0hKqM7xU6dOYdWqVXjnnXcCPn7HHXdg/vz54PF4ePXVV7FixQq88MILXd5XIOBBpYrOGHyBgB+1e8cCl+OPZOxWN5AkESAzPbZNUtF+/dO99xZIRBF9Hi6/b1hcL0M8449p4khPT4dGo4FarYZGo/F1cgNAfX09Hn74Ybz44osoKCgIeH1GRobv5xkzZuDBBx8M6XldLgY6nfnigg9CpZJH7d6xwOX4Ixm7Rm+BUiKM+WsR9dffW9Oo15qQJopcrYnL7xsW18sQi/gzMwOvzxbT+ndJSQnKysoAAGVlZbj++usBAK2trSgtLcXixYtx2WWXBb1eo9H4ft62bRuKioqiGi/pOXQWB5Tn9W90B0nUx0GiIGqJY/HixZg1axYqKiowbtw4rF+/HqWlpdi5cycmTJiAnTt3orS0FADw/vvvo7KyEq+99hqmTJmCKVOmQKvVAgCWLVuGQ4cOAQBWrlyJyZMnY/Lkyfj111+xdOnSaIVPehi9xdktEwfbOU5zOUgk8Rim+4/Tczhc1FQVBJfjj2Ts097ejaHZyfjLpMERuV+oov36n202Y8a7e/Dnmwbh94PVEbsvl983LK6Xocc0VRGSqPQWZ4ehuN2BXMQ2VdEkQBI5lDhIj+d0MzDYnFBKu2HioKYqEgWUOEiP18rO4ZAl1Oj0iKAJgCQaKHGQHk9v8TTjdMemKj6PB5mIT5s5kYiixEF6PL2FnTXe/RIHAM8ugFTjIBFEiYP0eOw6Vd2xqQqgzZxI5FHiID2eb52qbthUBXgWaqSmKhJJlDhIj8f2cXTfpirazIlEFiUO0uPprQ6IBZ5O5O6ImqpIpHXPvxRCwsCuU8ULshkS16VIhdAYbHC6/ReJaDbb8cWhevSAxSNIhFHiID2e3tI9J/+xruufgRaLAz+cbvIdYxgGz3x1HH/eehI1emscoyNcRImD9Hh6q6PbjqgCgKv7pSMnRYKP99UC8CSNzw/VY9c5HQBQ4iBh675/LYSEqNnsQFFmUrzDiBoBn4cZv+uFv/1QgT+sP4jTTSY0mx3omy7HGa2ZEgcJG9U4SI/mcjOoa7UiVymNdyhRdcuwbBSkytBiceCqPmlYUtIPb94+EkI+D7WUOEiYqMZBerQGgw0OF4M8lSzeoUSVUibCp/eO7nA8J0VCiYOEjWocpEer0lkAAAWp3TtxBNNLKaWmKhI2ShykR6tq8SSO/G5e4wiml1JKNQ4SNkocpEer0lkgEfKRoRDHO5S4yFXKoLM4YKKNnkgYopY4li5diuLiYtx8882+YzqdDnPnzsWECRMwd+5c6PV6AMDOnTsxffp0TJ48GdOnT8cvv/wS8J7BrifkQlW1WJCvkoHfTSf/daWXd1AA1TpIOKKWOKZPn461a9f6HVuzZg2Ki4uxdetWFBcXY82aNQCA1NRUvP7669i0aRNWrFiBxx57LOA9g11PyIWq0lmQ30P7NwD4RpNR4iDhiFriGD16NJRKpd+x7du3Y+rUqQCAqVOnYtu2bQCAIUOGICsrCwBQVFQEu90Ou93e4Z7BriekM1UtFryx8ywWfX4Yk978Fbe/uwduhoHLzaBGb0W+qnsPxe0MW+OgDnISjpgOx9VqtVCr1QAAtVqN5ubmDuds2bIFgwcPhljcsc05lOsDEQh4UKnkFxF5Z/fmR+3escDl+EON/en/nMDWow3ol6lAbqoc+6p0aHEykAj5cLgYDOyljNtrEO/XX6lkoJAI0WR1hhVHvOOOBK6XIZ7xJ9Q8jlOnTmHVqlV45513Inpfl4uBTmeO6D1ZKpU8aveOBS7HH2rspxoMuKpPGl6eNgzlTSbMWrcXv55s9HWIp0sEcXsNEuH1z0mRoEJjDCuORIj7YnG9DLGIPzMzOeDxkJqq1q9f7/dvl8uFv//972EHkZ6eDo1GAwDQaDRIS0vzPVZfX4+HH34YL774IgoKCsK+npBA3AyDap0VBameb2aFaXLIRQIcqTfgpMYIAOjdg/s4ACArWYIGgy3eYRAOCSlx/Prrr7j//vuh0Whw8uRJ3H777TCZTGE/WUlJCcrKygAAZWVluP766wEAra2tKC0txeLFi3HZZZeFfT0hwWgMNticbhSketryBXweBmcrcKTegG9PNWGQWoEMhSTOUcZXNiUOEqaQEsdLL72EadOmYfLkySgtLcWTTz6Jxx9/vNNrFi9ejFmzZqGiogLjxo3D+vXrUVpaip07d2LChAnYuXMnSktLAQDvv/8+Kisr8dprr2HKlCmYMmUKtFotAGDZsmU4dOgQAAS9npBgKtkJfu1qFUOzk3GiwYDDdQZcPyAjXqEljOwUKVqtTprLQUIWUh/H2bNn8a9//Qs33ngjysvLsXHjRgwZMgQyWfAq/ssvvxzw+Lp16zocmz9/PubPnx/w/OXLl/t+Tk1NDXg9IcG0LSnS1ok4NDsZLu/eRTcMzIxHWAklO9lT42ow2NA3PaG6PRPae/+tQopUiCnDc+IdSsyFVON48MEH8cgjj+BPf/oT3n//fRQWFuK2226LdmyEXLTKFs/M8Mx2M8OHZHs6/AapFd1+ccNQZKd4Ekd9KzVXheOzg3XYeKg+3mHERUhfLzZs2ACFQgEA4PF4uPfee1FSUhLVwAi5ECc1Rjz91XG8cfsIpMrFqGyxoCDVf2Z4VrIEV/dNo9qGV5a3xlFP/RwhYxgGTUZ7j93LPaQah9VqxZNPPol58+YBAE6fPo3//ve/UQ2MkAvxfbkWZ7RmHKk3AGhbUqQ9Ho+Hl6cNw01DsuIRYsLJUEjA53maqrafbMSWY5p4h5TwTHYXrE43ms0OWB09L3mElDieeOIJjB07Fo2NjQCAwsJC/Otf/4pqYIRciKPehFGhNcPpZlCtt/bYJdNDJeTzkKmQoL7Vile/P4MP9lbHO6SE12RqW9mitrXnzboPKXG0tLTgpptuAp/vOV0oFPp+JiRRMAyDI3WexHGu2YL6VitcbqZHr0UVquxkCfZU6lDXaoPTzcQ7nISnbZc4anSUOAKSy+VoaWkBz9tOvH//fiQnB55RSEi81LZa0WJxAADONpt9tY/+Gd13P/FIyU6RQGP0fBhS4uhak7FdjaMHrvMVUuf4E088gYceegiVlZWYNWsWWlpa8Oqrr0Y7NkLCwtY2BmcpcLbZjIO1rZCJ+BigVsQ5ssSXldy20KOLEkeX2KYqAa9nNlWFlDiGDh2K999/HxUVFWAYBn369IFIJIp2bISE5Ui9AWIBDzcMyMTqHyvwQ7kWQ3NSIOT3zL02wsGOrAIAh8sdx0i4oclkh1jAQ65KRjWO823dujXg8bNnzwIAJkyYEPGACLlQR+sNGKhORv9MT9NUXasNk2jkVEjYJVl6KaWUOELQZLIjI0mM3B66Z3uniWPHjh0APMuZ79u3D1dccQUAYNeuXRgzZgwlDpIwjDYnDtcZcMeluShMa5slPjI3JY5RccflvVPxzh2/w+ajDfj2ZFO8w0l4TSY70pMk6JUixb5qPRiG8fUBs3aeacZAdVK3XAut08TxwgsvAAAeeOABbN682bcXhkajwZ/+9KfoR0dIiH460wynm8E1/dORnSLx7rXhxrAcShyh4PF4GN4rBVuOa+BwU42jK1qjHYXpcvRSSmGyu9BqdUIpa2u+N9qcWPT5YcwenYcF4/rGMdLoCGlUVU1NjS9pAEBGRoavuYqQRPDd6SakJ4kxvFcK+DweCtPk6J+RBIWE1l4Kh5DPh9PVPTrH61utmPDaLzjeYIj4vdmmKt+e7ed1kJc3mcCgbZHN7iakv6oxY8Zg3rx5mDRpEng8HjZv3ozLL7882rEREhKrw4WfK5oxcXCWb2mRJ8cXQcCjTvFwiQQ8OLrJqKpzzRa0WBzYdrIJg7K6nj5Q32pFdkrX2whbHS4YbE5kJIl9zaLlTSYMbvcc5U2ebSe6a+IIqcbxzDPPYObMmTh+/DiOHTuGmTNn4umnn452bIQExTAMzjQasfW4Biu/PQ2Lw43ritJ9jw/JTsbALBqGGy4hnweXmwHDcD956K2eOT27zrbAaHOi9N/7caBGH/DcvVU6TH5rN043dr3PkNbsGYqbkSRGQaoMMhEfxxuMfueUN3l25qvRW+HuBq/l+UKux0+YMIE6w0nCeHdXFV7feRaA58NubN80XJavimtM3YFI4Pku6XIzEAq4XWMz2Dz7i5zQGPGv/1ZhX00r9te0YmSussO5J7y7QZ5sNPpG5QXDTv5LV4gh4PMwSK3A0Xr/xHHaW+OwOd3QGGwh1WS4JKTEsXXrVqxatQparRYMw/hGEPz222/Rjo+QgI41GJCrkuLFyUPQN13u+8AjF4ed8+JwMxAK4hzMRWq1ehIHA2Dd7ioAQIvZEfDcau+yIaE0LbHLjWQkeZbqH5SVjM8O1sHpZiDk88AwDMqbTL6hutW60JrAuCSkxLFy5Uq88cYb6NevX7TjISQk9a029M1QYCDNCo8otpbhdDEAx+f46i1OSIR8SIR8XxLRWewBz63yJoxQEge7/Dw7aXJQlgI2pxtntWb0z0xCk8kOvdWJm4dm44O91ajSWTCqQBWBEiWOkL6mpaenU9IgCaWu1Ypequ71LS4RCL2Llzq7wZBcg80BpVSIq/qkIU8lxUC1As1BahyV3p0iq0JIHLV6K5LEAiilnu/dQ7yd4se8o7fYZqqr+qZCJOCFdE+uCanGMWzYMCxcuBA33HADxOK2ndQ66/NYunQpvvvuO6Snp+PLL78EAOh0OixatAg1NTXIzc3FK6+8AqVSiZaWFjzyyCM4fPgwpk2bhmeeeSbgPVevXo1PPvkEaWlpADz7ml9zzTUhF5Z0DxaHC3qrk3bviwK2xuHoBkNyW61OJEuFeHJ8EewuN57+6njApiqHy41673DaKp0l4GS+9mr0VuQqpb5zCtJkkIsE2F+jRy+lFJuPNAAAijIUyFPKUKWzoOxgHfpmJGFEr+4xryikxGEymSCTybBz506/450ljunTp+Ouu+7C448/7ju2Zs0aFBcXo7S0FGvWrMGaNWuwZMkSSCQSPProozh16hROnTrVaSxz5szxbShFeqY67x95L0ocESfy9nF0hxVyW61OpEhFkIoEkIoESJWLccY72qk9z8gnz0i8o/UGNJsdSE8SB7ij93ydFb3T2t57fB4PA7MU+OJwA7447Ekal+SmQCUXIU8lxa5zLfjutBa/H6zuWYmDnUEejtGjR6O62n9DmO3bt+O9994DAEydOhWzZ8/GkiVLIJfLMWrUKFRWVob9PKTnqfPujZ1LiSPi2moc3G+qarU6katsa85MlYnQYnF0qFGwTUlXFqbiaL0BVS2WoImDYRjUtlpxZZ80v+OPjOuDPZU6DMzy9LulyT3X56fK8OOZZgCApRttM9tp4vjzn//caZXtqaeeCuvJtFqtbwa6Wq1Gc3NzWNcDwAcffICysjIMGzYMTzzxBJTKjkPrzicQ8KBSybs870IIBPyo3TsWEil+ndmOz/fX4lhdK47VGWC0O/HZg8VIlfv/EescnrWU8tPlUHF8HaBEev0BQKnwfNDKkySdxpVocQditLuQoZT64sxJk8PmdEMslyBJIvSVocnm2Sr3xhG9sPbXSjTZXUHLpjFYYXO6UZST4nfOWJUcYwdndzj/6oFqfF+uBY/HgwOI6GsWz99Bp4lj2LBhsYojJHfccQfmz58PHo+HV199FStWrAipNuRyMdDpOlZRI0Glkkft3rGQKPFbHS488MlBHK03ICNJjPxUGY43WPDVvhpMGuq/wu2ZegOEfB7S5eKEiP1iJMrrz7J7J8016y3QSYKPx020uAPRme2Q8OCLU+r9Dny2Xo9cpcxXhpO1eiRLhMhLEkHA5+F4jR66vv41CoZh4HIzOObdHEwl5odU/lE5ySibNwYPbzgIg9ke0dcsFr+DzMzAM+47TRzTpk3z+7fRaASPx0NS0oXtqJaeng6NRgO1Wg2NRuPr5A5VRkaG7+cZM2bgwQcfvKA4SOJZsf00jtYb8OItQ1BSlAE3w+CmN3dhZ0Vzh8RR32pFVrIEAtpnI+LahuNyu6nK7nTD6nRDKW0bU5zqXYRQZ3YgV9nWzFmlsyA/VQYhn4dcpdTXdHW22YzPD9bhhMaIExojRHw+Sq/sDQB+TWChkIkE0JoCj+jiopCG4548eRJTp07F5MmTMWnSJEyfPr3LTuxASkpKUFZWBgAoKyvD9ddfH9b1Go3G9/O2bdtQVFQUdgwk8WhNdmw+0oA7L8tDSZHnywGfx8OVhan49WxLh47aulYbclK43USVqIQx6Bw32pzYW6XDl0fqYXdGJ0G1emeNJ0vbvhunyT2J4/whuRVaMwq8+9IXpMpwrsXzLf6tn8/h4321sDnduLIwDS0WBz7c6+m3zQlzQp9MJIDF0UP6OFjPPPMMnnjiCb/9OJ5++mn8+9//DnrN4sWLsXv3brS0tGDcuHFYsGABSktLsXDhQmzYsAE5OTl+28+WlJTAaDTC4XBg27ZteOedd9C/f38sW7YMs2bNwvDhw7Fy5UocP34cAJCbm0tLu3cT7KSrMb1VfsfH9k3DpiMNOFirx6V5bY/VG6y4vHdqDCPsOdgZ+NEYjrvlmAZrfjnnN8lOIhRg/MDMiD+XwTvhT9kucai8iYPdlx7wfGnRGO0Y7F3XrG+63PNlxeVGudaE4sJU/N+0YWAYBsc1RlS2WKBWiCERhrdSQY9MHGaz2Zc0AODyyy+H2dx529rLL78c8Pi6desCHv/2228DHl++fLnv55UrV3YVKuGgKu/kK/ZbH2tM71QI+DzsPNPsSxx2pxuNRjvVOKKkrcYRmZoAwzD4obwZZYfq8NOZZgzOUmD+2EL0z0jC4rIjONccnTb6Vm9fTfsaR6rMM8hC167GwU7aY1e27ZueBKebwdlmC841W3CVd/QUj8fDpCFZeH3n2bCbqYAemjjy8/Pxj3/8A1OmTAEAfPHFF8jLy4tqYKTnqGqxQMDndVjPRyERYkiWAofr2vZTYJd7CLepgIRGKGBnjkemxvHZwTqs2HYaqTIR5o8txOzR+b7klJUsQbUuOrOq2SVGUtr1cchEnuVH2tc4jtUbwQN8S9f0zfCMUvq+vAlON4N+GW39uTcNUeONnWd9e3CEQybiw+Jww80wvqX/uSykxPHXv/4Vq1evxoIFC8AwDEaNGnVBczsICaRaZ0GuUur7QGmvIE2O3edafP9mv6H2TkvsoaBc5VvkMEJNVdtONKJPuhwfzr7Ul5RY+SopKluis1+3L3G028iLx+N55nKY29arOtpgQGG6HHKxZwRZnzQ5eAC2nfAM+e6b3vY+y06R4qkbB1zQ+mgykef+Nqfb9zOXhZQ4lEpl2HM2CAlVZYsFeUHWnSpQybD5SAMsDhdkIgHOsokjlSb/RUMkO8cNVif21bTirlF5HZIG4Jkc990p7QXf380wWLn9NCYNzeqwRTDbOZ4i9f+IS5WLfDUOhmFwtN6A4sK2/jKpSIBeSilON5nAA/z2rweAW4Z1nKsRCpk3MbHvY67rNHEsX74cy5YtCzrs9Y033ohKUKTnYBgG1TorLskLPJEz35sgqnUWFGUqcK7ZgjS5yG9/ZxI5IkHkFjn89VwLXG4GV/cNPOw+XyVDi8UBo815QVv87j7Xgg0H6sDj8TomDm9yOP++KpnIt15VfasNzWYHhmT7z1Xol5HkWY9KJYU0Qh/yMpHndTXbXegOleVOf1tsn8a9994bk2BIz6M1O2B2uJAfZPmQfG9NpKrFkzjONpupmSqKItlU9dMZLZRSYYcPdRb7O6/SWfy2XQ1V2aF6AMAZbcdd+ww2JxQSQYe5PqlyEU42mvDV0Qb8t7oVADo8d990OX4o16Jv+oXNVwtE7k1AVge358ewQpo5PmbMmJgEQ3qeau/QzPwgTU/s8cp2k7JKBmQEPJdcvEg1VTEMg58rWlDcJy3oRM087++2qiX8xNFstuP701rweQi4cKHeu8Dh+TKSJNCa7Hj26xOQCPkYU6Dq0GfBdpD3y4jcFxS25mLuJiOrOk0ckydP7vTiTZs2RTQY0vOw+yAEq3EkiYVIk4tQpbNAZ3ZAb3V2aHcmkSOK0MzxFosDOosDQ7ODJ4Q87+ikqi5GVrkZBma7y6/Z6aujGjjdDKYOz0bZoXq0mO1+a5q1Wh1+HeOsO0flYqA6CX0zkvC7PukwGjp2zg9Se2IedAG1oGDYfo3uMiS308RBfRgk2tihuDmdDHEsSJWhqsXS1jFOiSNq2jZyurgaR63eu/R9J79XqUgAtUIccKMjjcGG9/ZU43iDAacaTTDZXfj3PZf5hsf+UK7FgMwkXD8gA2WH6nFGa8Zl3sTBMAxq9daAQ7bT5GJMGORZaDVQhz0A9EmX46N7LvMbUXWx2pqqukfi6HT6Y25uru8/iUSCkydP4uTJk5BKpcjNzY1VjKQbq9VbkZ0sCTgUl5WvkqFSZ/UljsI0GlEVLaL2W8dehFASB+D9UqDz/9avMdjwwCcH8NmBWrgZoLjQ07nODsU22pw4WNuK4j5pvn6I8nbNVSc1JpxttuDqfukXHH//jKSIzreQsp3jEUwcbjeDF7edwpG61ojdM1QhzZv/6quvMGPGDPznP//B119/7fuZkM643AwYpvMPoHpD1+tO5afKoDXZcbjOAImQj+xkmvwXLb7O8YscVVXjTRxdzbIuSJWjQmv2vU8O1bbi/o8PoMXswJszR+LtO36HP5Z4tq3WekdD7a3Sw+VmcEXvVGQqxEgSC/w6yDcdqYdIwMOEKCxlcqHkvuG4kescL28yYcOBOmw90Rixe4YqpDFwb7zxBjZs2ID0dE8Gb25uxpw5c/D73/8+qsER7tp9rgVLvzyGB68qxIzf9Qp6Xn2rFaO7WHeK7f/YeLgeg7MUtCpuFLGv7fk1jjNaE7492YR5VxR0ukcPq0ZvRZpc1OWchYHqJHx2sA51rTac1Bjx+KajyEqW4B+3DcdQ72isVJkIfJ5nXSkA+PVsM2QiPkb0SgGPx0Pf9CSc0XpqHA6XG/85psE1/dITasi2r48jgps57fVOjGVrd7EUUuJgGMaXNABApVJ1+U2S9Fy7z7Xg0c8Ow+lmcKBGHzRxON0Mmkx2ZCV3XuMYXaDCjYMyMSgrGTcOSpxvkd0Rj8eDkM/r0Mex/UQT1vxyDjcMzAxpcEKt3hrS0hzsiKYTGiO+OtqAjCQxPrz7Mr+OcAGfB5VMhGbvjO9d51pwWb4KYu9Cg30z5PjmeCMWfX4YJzRG6K3ODkvxx5s0Cp3jv1V6EkdNoiaOsWPHYt68eZg0aRIAT9PVuHHjohoY4a5vTjRCLhagd4D26/aajDa4GSC7i8ShlInwl0mDIx0mCULI53WYx8F+4P1WpQs5cXQ2oorVLyMJAh5wXGPE/ppWXNUnNeBkwDS5GM0mBxoMNlTprJhxSVsf6+h8Fb480oAavRWX5aswKl/pW5wwUQj5PIgFvIgmjj3eGkeNztphO9xo6zRx2O12iMViPP7449i6dSv27t0LhmEwc+ZMjB8/PlYxEo6pN9iQq5RigFqBbzppf6337h2eTSvdJhShgNdh5rjVu2/Gnio9po8M3vQIePq26g22kJZLl4oEKEyX45vjGugsjqArCKQniaA121Hp3Sujf7s5FjcOVmP8oMyEXzzQs0JuZPo4mow2VLVYkJMiQV2rDTqLo8MWy9HUaef4zJkzAQBLlizBhAkTsHTpUjz55JOUNEinGlptyE6RIl8lQ6vVCb0l8M5nDd6VbrtqqiKxJeLzOzRVscNI91bpumym1hhtcLmZkFeRHahW+Gqml7Tbd6U9T43Djhod2+nuP7Iu0ZMGENml1Q/UekZSTRziaZKLdXNVpzUOh8OBzz//HPv27cPWrVs7PD5hwoSoBUa4iWEYNBhsuKIwFXmqtnWmAnVU1lPiSEhCAa9D5zj7TbnZ7MDZZgtSU4MvxxHqUFzWQLUCXx3VIE0u8i0xc770JDG0ZgdqW60Q8AA1B98zkUwcB2tbIRHyUVKUgXd+rUSNzhp0aZdo6DRxPPfcc9i0aRMMBgN27NjR4XFKHOR8BpsTZocLWckS5KeyM4OtvhEy7dW3WpEsESJJHP4CdyR6RPxATVUupEiFaLV6tn29pF8GnC43eDxeh1FuoQ7FZbEd5JfmKYO206fJRbA53TjVaEJWSuAl+BOdVMSPWOI4ozWjSK3wrRKdUDWOUaNGYdSoUSgqKsJdd93l95jdbg9yFenJ2vdb9PLO3A22WU+DwUb9GwlIKOB36By3Ot3okyZHtd6Kw/WejbX+38ajyFCI8dSEAX7n1uqt4PO6HvTAGqhWIFki7HTCXnqSp/3+UG0rii5gP4xEIBcLIjYc91yzGaML0yAVCZCRJEaNPjobYgUT0gTATz/9tMMxtv8jmKVLl6K4uBg333yz75hOp8PcuXMxYcIEzJ07F3q9HgDQ0tKC2bNn45JLLul0H/Fg15PEwTY/ZSdLfEtKBEsc9QYbNVMlIEGA4bhW7z4SvVNlqG6xgGEYHKxtDbhciN7iQIpUFHRJj/MpJEL858ErMHGwOug56d6OX73VeUFbtyaCSHWOWx0u1LXa0DfTk0BzldKY1zg6/c02Njbi8OHDsFqtOHr0KI4cOYIjR45g165dsFg6z3DTp0/H2rVr/Y6tWbMGxcXF2Lp1K4qLi7FmzRoAgEQiwaOPPorHHnus03sGu54kDl+Ht7e2kd/JkNwGShwJSRQwcbghFfGRr5KhSmdBs9kBg80ZsOnF7HD5ZkqHSizkdzqcNC2prY+M24nj4msc57zJuq933a5cldQ3aCBWOm2q+umnn/DZZ5+hvr4eK1as8I2mUCgUWLx4cac3Hj16NKqrq/2Obd++He+99x4AYOrUqZg9ezaWLFkCuVyOUaNGobKystN7BrueJI76VhuEfB7S5J4/9DyVDN+f1uJgbStONRqhszgw43e9IOTz0Wp1htycQWLH01TVsY9DKhIgP1WGZrMDh2s8tX1TgKYXs93lW9QvUtimKgC+JlCukUWoj4Nds6tfpidx9EqR4muDBk6XO+Ra3sXqNHFMmzYNU6ZMwZdffolbbrnlop9Mq9VCrfZUR9VqNZqbm2NyvUDAg0oVnRVVBQJ+1O4dC5GOv9nqRI5SijTvqJsBOSnYeKge8z7a7ztn64kmXOZdZqR/jvKCn5/rrz2QmGWQiQXg8f3jsjkZKJPEGJTrmWfxwynPntxWp7tD/HY3kCIXRbRcySky8HmAmwEG5Kkicu9Yv/YqhTTg6xWuerMDfB7QN1MBIZ+HXulJYADwpGKokmIzl6PL4Sx8Ph8ff/xxRBJHvLhcDHS6jpu9RIJKJY/avWMh0vFXaU1QK8S+e97QLw32a/oiXyXDAHUS6lqteGzjUXy2rwa3jszB5bnJF/z8XH/tgQQtA8PAYnP4xWW2O8F3M0j3NkF9e0IDADBanR3ib7XYoZAII16uVLkYWpMdKXxE5N6xfu35bjdMdldIz1mts+CDPdX4Y0n/DiPIjte2opfSM7JMpzND4B0BV6sxQBBkQ7QLlZkZePZ/SOMgr7zySrz99tu46aabIJO1BaZSqcIKIj09HRqNBmq1GhqNBmlp4S0LcLHXk+irN9hwWX7b7N80uRh3jcrz/TsnRYp/33MZnG4G2RxtcujuhHwezM62piqGYWB1uCAV8ZHnnWfB7txodrjgZhi/CXgmuwtqReSbINPkIphsTl8zKNfIRAK43AwcLrdvb/dgdpxqwoYDdZhxSa8OW9iebTb7LfvCDmc32p2RDzqIkBIHO6rqgw8+8B3j8XjYvn17WE9WUlKCsrIylJaWoqysDNdff31MryfR5XQzaDLauuy3yIjChwqJHJGAD6e77UPI6WbgYgCpUOAbKacxtg3HtzhcfnNxzPbwO8dDwQ6kiOWaTJEkE7ctdNhV4mBHSTUa7X6Jw+VmUNliwZiCthWlFRLPfY22BEsc3377bdg3Xrx4MXbv3o2WlhaMGzcOCxYsQGlpKRYuXIgNGzYgJycHr776qu/8kpISGI1GOBwObNu2De+88w769++PZcuWYdasWRg+fHin15P4+61KBxcD34xxwk3nL3Jo9Q4hZTcjyk+VQWO0I0ksgMnugtnunzg8iSTyiWPRtf1gc3J3Bz2ZdzVfs90VcD/09upaPYmjyeg/X67BYIPN6UbvdpuZsYtCGm2xe21CShwOhwMfffQR9uzZAwAYM2YMZs6cCZEoeOFffvnlgMfXrVsX8Hiw5LR8+XLfz6mpqUGvJ/HldLmxakc5eimlIS1uRxKX8LyZ4+xIIHZp8DyVDHur9BioVuC3aj3M7UZWMQwDU5RqHAURbr+PNfY1sYYwl6PWV+Ow+R1nJ/rltVuaJR41jpDGbj333HM4cuQI7rjjDtxxxx04cuQInnvuuSiHRrhkw4E6VGjNWHxtP98HDOEmocB/kUN2ZVyp9xtzgbdGOSjLMwGt/XaodhcDl5vpcgOnnkjprWVozZ2vusEwDOq8KzA0mfzPDbQOmMLXx5FgNY5Dhw7hiy++8P27uLiY06OsSOTtPNOMoswkjOtHAxa4rmNTlecDiU0GVxSm4qezLbg0T4kP99b41TjM3g7aaDRVcV2+t8ZU1WLBZfmqoOdpzQ7YvMk6UOIQ8ICsdtsnJ/maqhKsxiEQCPwm51VVVUEgoDcGaVPbakVBqoyzHZekjUjgP3O8ranK83ExQK3AJ6VXINM7yKH9JEC29hGNpiquy0qWQCTgoTLAMi3t1XlrFXyep3O8vRq9FVnJEr8hukI+DzIRP/E6xx977DHcfffdyM/PBwDU1NTgr3/9a1QDI9zBLqU+rpNF6gh3CPl8ONvNHGebqmRC/2TAJgf/Goc3cVBTVQcCPg953iVbOsM2RxVlKtB0Xh9Hrd4WcLl6hUQIUww7x0OqcVx66aWYOXMmeDweeDweZs6ciUsuuSTasRGOYKvWOTQvo1s4f8/x80dVsdjkYG43f8CXOKjGEVCBSuZbayqYWu+IqhG9UtBosvttnFXbGngvd4VYGNN5HCEljsceewzV1dWYP38+5s+fj+rqalojiviwVescWiK9Wzi/qYrt45AGq3G0GyXU1lRFe6wEUpAqQ43OApc7+C6KtXorUmUi5KfK4HAx0Fs9CcHqcEFrsgepcQgSr6mqoqLCr3P8iiuuoM5x4sOOOc/h6KqlxJ+nc7x9U5V/HwerrakqQI2DmqoCyk+Vwe7yNO0G2yGxVu+pVWR6151qMtqhkol8e90EqtknSYQwWBOsxjFkyBDs37/f9+8DBw7g0ksvjVZMhGPqfG9oqnF0B0I+H24GcHubSNqaqvyTAZ/n6ZRt3zluoqaqThW0G1kVTJ23OSrDmzgaTZ6/r5rW4DsrKsQCmBJtyZEDBw6grKwMvXr1AgDU1taiX79+mDx5MgBg06ZN0YuQJLy6ViuUUtoCtrsQCjwjdpwuBmIhr21UlbDj90y5WBi4c5wSR0Bs4jjXYsHlhakdHrc53ahtteGGgZnIUHgTh3dkVWd7uSdJhIk3c/z8DZkIaa+u1Uod490IO9TT4XZDDD6sTjd4ACSBEoeI75c42CRD8zgCy0gSQybi46TGiP9WtuB4gxF5KhmuK8oAAJzUGOFyMxicleyrcWhNbYlDLOD57U3CUoiFidfHkZubG+04CIfV6W1+a+cQbmMX4HO62pqqpKLAO/TJxUK/meMmuwtCPq/LRfx6Kh6Ph3yVDBsP12Pj4XoAnk2q2MRx1Luf+5DsZEhFAqRIhfixXIuzzWb8UtGCnBSp30rELIVEAKvTHbPNnKhtgVwUz/IIVhT36VjtJtzUVuPwJg6nq8OIKpbcu9Ahy7PgIdU2OrPo2n44Wm/AQLUCP57RYv3+WrjcDAR8Ho42GJCeJIba20zVO1WOQ3WtqDfYMDQnGZOHZgW8p2+hQ7sLKhklDpLgdBYHrDSHo1thEwc7CdDqcEEmCvxhlCQW+K3geiH7jfc0owpUGFWgAgBU6ixwM0CL2Y4MhQRH6w0YkqXw1e7+duswWJ1uX7NVMO0XOlTJor9fCSWOHuaLw/XYsL8W7/7PJRDww18e5IM91ahssSBZKkSF1owTGiOAwB12hJt8TVXeGofF4YYkyPBauUjg11RltrtogcMwtPVjOCAVCXCu2YIbB6l9jyskQoSyfQ270GGsZo9T4uhhyg7W4ViDEaebTBioVoR1rc3pxuofK8DneTaU6Z0qx8heKRicnYzLe1NTVXfRVuNoa6oKlgw6NlU5qakqDGziaDLZYbA5wQAYmhN4u9bOtDVVxaaDnBJHD9JksuNwnafzbV+1PuzEcbrJBJebwfLJg3FdUUbATjrCfb7huO52neMBRlQBnsRx/gRAaqoKXbovcdigt3hex8FZF5I4YrsnByWOHuTHci0YADIRH79V6zHrUv/RckabE+VNJpQ3mXBGa0Z5kwmpcjGeHF8EhUSIY94RH4OzkilpdGNCPttU5enjsDhcSA2yz7dcJIDF4fbtO252uGhr4DCkt2uqqtJZkKkQX1AfRax3AYxa4li6dCm+++47pKen48svvwQA6HQ6LFq0CDU1NcjNzcUrr7wCpVIJAHjzzTexYcMG8Pl8PPXUU7j66qs73HP16tX45JNPkJbm2fNh8eLFuOaaa6JVhG7nh3IteqVIcEmeEjsrWnyLp1XrLHhj51l8c6IR7BI6cpEAfdLl2HeqCTV6K1bfOgzHG4xQSoU0Q7ybY2scDl9TlbvTpirAU9NQSDyTAeVBOtJJRxIhHylSIZpMdlS2WC54l0PfZk5cr3FMnz4dd911Fx5//HHfsTVr1qC4uBilpaVYs2YN1qxZgyVLluD06dPYvHkzNm/ejIaGBsydOxdbtmwJuOfHnDlzMG/evGiF3a0wDIPd53Q4UKvH8QYjfj3bgltH5mBApgKbj2pQ0WxGamoS/t/GI6jVWzHr0lyMLlChX0YSspIl4PN4+LFci8e+OIrXfjqLYw0GDM5Kpj03ujkR37+pyuZwBW2qYvszLI52iYNWEAhLepLYlziuK7qwrQl8TVXtmg3dDONL6JEWtd/w6NGjUV1d7Xds+/bteO+99wAAU6dOxezZs7FkyRJs374dkyZNglgsRn5+Pnr37o2DBw/S0u0XqbzJjIc/PQQegMI0OSYMysScMfmweNce+q1Kj745SpQ3mfGHsYWYc3lBh3tc3S8dk4Zm4csjDXC6GVzVl3b46+7aahxsU5U76HbAbJIw2V3I9P6f+jjCk54kxpkmE3QWBwpS5Rd0D6GAD4mQjz2VOjQa7TjVaMLpRhOsThc+mTMKvdMu7L5Bny+id+uCVquFWu0ZaqZWq9Hc3AwAaGhowMiRI33nZWVloaGhIeA9PvjgA5SVlWHYsGF44oknfE1dpCN2cbTXbx/ht1UlwzBQK8TYU6XDwFzP69fZSI47L8vDxkOeWa6DLqDjjnBLWx9H1xMA2Saso/UGgPFcQyvjhicjSYw9lToAuOCmKsCzw+CeKj2ONRgxIDMJNw/NwrBeyRd1z2ASok7ZfqMSVqDmkDvuuAPz588Hj8fDq6++ihUrVuCFF17o8v4CAQ8qVWQzbtu9+VG798Vy8nUAgN5ZKR1ivHpAJr452oCheSrweMAVA7KQLA38drhEJcd1AzOx40QjLi/KhEqVGMuLJPJrH6pELEOayQEAkMjEUCplsDrdUCVL/OJk487J8Cy89+zXJ8D+yaYrpQlXpkAS5bXPbVcbGFaQGnJM58f/7/uvgNXpQp4q+ls4xzRxpKenQ6PRQK1WQ6PR+Dq5s7OzUV9f7zuvoaHBVzNpLyMjw/fzjBkz8OCDD4b0vC4XA53OfJHRB6ZSyaN274tVp/XExXc6O8R4aU4yPv2tBh/vqUJhmhwuqx06qz3QbQAAC64qxO9ykiFn3AlT3kR+7UOViGWwmD011Ze2nsDTGw+DYQAh4/83xMbdN1mMRdf2RbpcjMP1Bnx6oBbZMlHClSmQRHntk739RwIekMxHyDGdH78IgIgH6PWd7zAYjszMwC0MMR3+UFJSgrKyMgBAWVkZrr/+et/xzZs3w263o6qqCmfPnsWIESM6XK/RaHw/b9u2DUVFRTGJm6v0Vs83x5QAnWNjeqeCB6Ch1Yah2V03P+WnyvA/l+VRx3gPoFZIoFaI4XIzGJWvwqJr+2LKsOyA5woFfPzPZXm4cbAaf7yuH35eeHXA5cJJcOyQ3F5KKWcWh4xajWPx4sXYvXs3WlpaMG7cOCxYsAClpaVYuHAhNmzYgJycHLz66qsAgKKiIkycOBE33XQTBAIBnnnmGd+IqmXLlmHWrFkYPnw4Vq5ciePHjwPwrNj7pz/9KVrhdwutVs8s3kCrZapkIgzOTsbRekNIiYP0HEqZCJsfuCLeYfQY7OzxC+0Yj4eoJY6XX3454PF169YFPP7QQw/hoYce6nB8+fLlvp9XrlwZmeB6iFarA8og/RYAcEVvlSdxXMASB4SQyGhLHInRdxiKhOgcJ9HRanUiRRp8FuqMS3KRoZKHvfQIISRyslMkSJOL8Ls87owQpcTRjektDqR0UuPISBLj/rF9EqKDkJCeSioSYMtDxfEOIyzc6IkhF0TfRY2DEEIuBCWObqzV6oRSRpVKQkhkUeLoptwM02XnOCGEXAhKHN2UyeaCmwE1VRFCIo4SRzfFTv6jpipCSKRR4uimWq2e5ZWpxkEIiTRKHN2Ur8ZBfRyEkAijxNFNtXr3L1ZSjYMQEmGUOLopPdtURX0chJAIo0+VbuZQbSs+PVjna6IKtDIuIYRcDPpU6Ua+P63Fss3HYHO6IRHyg66MSwghF4M+VeLoYG0rHvj4AO79cJ9vf+eL8b/bT6EgVYbLe6tgc7qpY5wQEhWUOOKkWmdB6ccHcLrJhEN1BqzfX3tR97M73dAY7biuKAMPXVUIgIbiEkKig76SxsnRegNcbgavzRiBf/xYgTU/n4PJ7sJJjRHlTSZcmqfCwmv7QhFiH0WDwbPdZ06KBENzUlBSlAGVjBIHISTyqMYRJ+VNJgh4QJ80ORZf2w8Olxtrfj6HM1ozeqfJ8eWRetz5r70w210h3a+u1QoAyEmRAgBWTB6MpeNpa11CSORRjSNOypvMKEiVQyzkozBdjrL7xkAmEvhqGF8dbcCzX5/AqUYjRuZ2vcFLvbfGkZUsAQDaG5wQEjVRq3EsXboUxcXFuPnmm33HdDod5s6diwkTJmDu3LnQ6/W+x958802MHz8eN954I3788ceA9+zseq4p15rQL6Ntj+FMhcSvWWqIdx/wap01pPvVt1rBQ1viIISQaIla4pg+fTrWrl3rd2zNmjUoLi7G1q1bUVxcjDVr1gAATp8+jc2bN2Pz5s1Yu3Ytnn/+ebhcHZtogl3PNRaHCzU6K/plJAU9p1eKFHyepxM9FHWtNmQoxBDR8FtCSJRF7VNm9OjRUCr9m1i2b9+OqVOnAgCmTp2Kbdu2+Y5PmjQJYrEY+fn56N27Nw4ePNjhnsGuT1Q6swPfnWrC6z9VYOFnh/GfYxoAwBmtGQzQaeIQC/nISpagSmeBm2Gw41QT3AwT9Pz6Viuyk6WRLgIhhHQQ0z4OrVYLtVoNAFCr1WhubgYANDQ0YOTIkb7zsrKy0NDQEPL10fL5wTpsP9mIv982IuxrLQ4XZv1rL7QmOwQ8QMDnweZ04feD1ShvNAEA+neSOAAgTyVDjd6KnWea8dgXR/H6jBEYVaAKeG69wYYhWclhx0kIIeFKiM5xJsA36Uh27goEPKhU8q5PPI+VAXad00EoEwcdFisQ8APe+7v9NdCa7HjpthGYMCQLz246ip9ON0GlkqPaaINUxMeQ3mkQ8IOXs69aga1HG3CsyQwAsAABn8vtZtBgsGHisJywyxksfi7gcuwsrpaBq3G3x/UyxDP+mCaO9PR0aDQaqNVqaDQapKWlAQCys7NRX1/vO6+hocFXswjl+q64XAx0OnPY8WZ5Fwg8dFYLp4vBpwfr8MyNA8Bvl9RUKnnAe3+8uxK5SimuLlDCarKhl0IMjcGG6oZWHK7Wo0+aHIbWzvsvsuQitJgd+Pa4p/ZVpzUFfK5Gow0OF4NUiSDscgaLnwu4HDuLq2Xgatztcb0MsYg/MzNwK0ZMe1JLSkpQVlYGACgrK8P111/vO75582bY7XZUVVXh7NmzGDGiY/NQsOujpXeaJ5ufa7Zg89EGbD7SgCajvcvravVW7KnS4+ahWb6aU6H3XhVaM47WG3yjpjqTp5IB8AzdBQC9d6n089W3eobiZtOIKkJIDEQtcSxevBizZs1CRUUFxo0bh/Xr16O0tBQ7d+7EhAkTsHPnTpSWlgIAioqKMHHiRNx0002477778Mwzz0AgEAAAli1bhkOHDgFA0OujJV8lA58HnG0244TGCKBthnZnvj7mqSFMGprlO1aY5kkC35drYbK7MDSkxOHf2c1uznS+8yf/EUJINEWtqerll18OeHzdunUBjz/00EN46KGHOhxfvny57+fU1NSg10eDWMhHL6UUZ7RmnPJ2aDcYbBjexXXbTzZhZK8Uvw/yXJUMQj4PXx/1JJWhOaHXOAAgWSKEzhI4cWi8tSCaw0EIiQUa9N+F3qly/Hq2GTanZ/XarmocVS0WnGo0oWRAht9xIZ+H/FQZNEY7ksQCX9NVZ2QiAdKTxMhTSZGfKvNtznS+FrMDQj4PCokgxFIRQsiFo8TRhd5pMlgcbUued5U4vj3VBAC4riijw2NsshiSnezXwd6ZSUOyMH1EDlQyIfRBahx6qwNKmYiWGSGExERCDMdNZGwHuUzER6ZC0mXi2HGqCYOzFAH7G9h+jmEhNFOxFozrAwA41WjC2ebAo7D0FgdUtEUsISRGqMbRBfbDfqBagZyUzhNHfasVR+oNAWsbnnt5ktDQ7JSw41DKREFrHDqLg5ZQJ4TEDCWOLvRO9XzYD1QrkJXceeLYcVoLACgJkjjG9UvHvVcU4IrC1LDjUEqFMNldAXcK1FuclDgIITFDiaML6UliLL6uH26/JBdqhQRakz3oNq87TjaiX4bc17x1PoVEiIeuKoREGP7LrvQmhkAd5FTjIITEEiWOENxxaS4KUmXISpaAAdAYYBJgk8mO/TWtQWsbF4vdP/z85io3w3g6x2l/cUJIjFDiCENWimeeRKDmqu9PN4EBUFKUGZXnbqtx+CcOg9UJN9P2OCGERBsljjCwE+wCJY4dp5pQkCrz25wpklRSb+I4b9kRtumKmqoIIbFC7RthYBPHSY0RKVIhzmjNGNM/A1kSAfZU6XHnZXlRm0uhlAVuqmJnk1PiIITECiWOMCSJhUiWCPHenmq8t6caAJC2pxrzLi+Ay810mC0eScE6xylxEEJijRJHmJ79/UA0GGzonymHzenGI58ext9+OIPsZAmGZCmi9rxSIR8SIT9ojUNJEwAJITFCnzZhuqZ/ut+/rxuYiR0nGnFdUUZUl/zg8XhQSoUdOsf1VOMghMQYdY5fpD/eMABqhdhvCfVo8cweP7+pygmRgAe5iBY4JITEBtU4LtLA7GRsfuCKmDyXUtpxaXW9d/IfLXBICIkVqnFwSHaKFGebzXC62/Zop1njhJBYo8TBIVf3TYPe6sSBGr3vGM0aJ4TEGiUODrmiMA1iAQ/fexdTBKjGQQiJvbh8VV23bh3Wr18PhmEwY8YMzJkzB8ePH8ezzz4Ls9mM3NxcrFq1CgpFx+GtJSUlSEpKAp/Ph0AgwGeffRaHEsSHXCzAmN6p+P50ExZd2xc8Hg86i5OWGyGExFTME8fJkyexfv16rF+/HiKRCPfddx+uvfZaLFu2DI8//jjGjBmDDRs2YO3atVi4cGHAe6xbtw5paWmxDTxBXNs/HT+dacYfNhzC2WYzdBYH0pPE8Q6LENKDxLypqry8HCNHjoRMJoNQKMTo0aPxzTffoKKiAqNHjwYAXHXVVdi6dWusQ+OEa/plICvZs7z76AIVFl3bF7f/rle8wyKE9CAxr3EMGDAAr7zyClpaWiCVSvHDDz9g2LBhGDBgALZv344bbrgB//nPf1BXVxf0HvPmzQOPx8PMmTMxc+bMGEYffyq5CF+WXh7vMAghPRiPYRim69Mia/369fjwww8hl8vRr18/SKVSzJw5E8uXL4dOp0NJSQnee+897Nq1q8O1DQ0NyMrKglarxdy5c/H000/7airBuN1uuFzRKaZAwIcryMZOXMDl+LkcO4urZeBq3O1xvQyxiF8UZGJxXBJHey+//DKysrJw5513+o5VVFRgyZIl2LBhQ6fXrl69GnK5HPPmzev0PIfDBZ3OHJF4z6dSyaN271jgcvxcjp3F1TJwNe72uF6GWMSfmZkc8HhchuNqtZ7hpLW1tdi6dStuvvlm3zG3243XX38ds2bN6nCd2WyG0Wj0/bxz504UFRXFLnBCCCHxGY67YMEC6HQ6CIVCPPvss1AqlVi3bh0+/PBDAMD48eNx6623AvA0TT311FN46623oNVq8Yc//AEA4HK5cPPNN2PcuHHxKAIhhPRYcW+qigVqqgqOy/FzOXYWV8vA1bjb43oZelxTFSGEEO6ixEEIISQslDgIIYSEpUf0cRBCCIkcqnEQQggJCyUOQgghYaHEQQghJCyUOAghhISFEgchhJCwUOIghBASFkochBBCwkKJgxBCSFgoccSAw+GAw+EA4Fk2nsu4HD+XY+c6eu3jL5K/g7gsq96T7NixA19++SUMBgP++Mc/YuDAgfEOKSw//fQT9u7di5SUFFx33XUoLCwEwzDg8XjxDq1L33//PXbv3g2lUokJEyZwKnZWeXk5xGIx8vPz4x1KWH755Rfs3r0bMpkMEydORH5+Pr32MRbN3wHVOKLol19+werVq3Hrrbfikksuwdq1a32PceEb2C+//IKVK1eiT58+EAqFuO2227Bnzx7weDwk+ko1v/32G/76178iPz8fVqsVd911F/bu3cuJ2Fk7duzApEmTsGHDBpSXl8c7nJDt2LEDK1asQFJSEvR6PZ5//nk0NzdzKmlw9bVnRft3QIkjivbt24ebbroJV155JcaNGweHw4G3334bR44cAZ/PT/jksX//fkybNg233HILZs+ejWuuuQZLlizBkSNHwOPxEjr+s2fP4oorrsCsWbPwyCOP4NFHH8Vzzz2Hffv2JXzsAGAymbBr1y488MADMJvN2LJlC86cORPvsLrU0NCAjz76CE8//TTuu+8+zJs3D5mZmTAYDPEOLWRGo5GTrz0rFr8DShxRpFQqUV5ejn//+99YvHgxsrKyYLVasXjxYhw8eBB8fmK//GKxGA0NDb5v6EVFRbj00kvxyCOPoKGhISHjZ2Pt06cPGIZBc3MzAGDGjBm4++67sWDBAlRWViZk7O3JZDLMmjULixYtwqxZs1BVVYUtW7bg9OnTfuclWgJUKpW4/fbbMXLkSABAWlqa74O4vUSLuz2pVMrJ156VnJyM22+/HSNGjAAQnd9BYv/1cFBlZSVqa2sBAFOmTMHAgQNRWVmJwYMHY+nSpfjDH/6AGTNmYN26dQn5xmsf/7Rp03DgwAE88cQTeOSRR7B371689NJLuOGGG3Du3Lk4RxoYWxXv168fNBqNbztihmEwY8YM3Hrrrfj555/jGWJIeDweevfuDcBTlvvuuw+VlZXYunUrjEYjtmzZgpqamoRLgFKpFNdeey1EIpHv/V1QUACpVAoA+PHHH6HRaBIubsDz3q+pqQHDMCgsLATArde+srIS1dXVkMvluOGGGyAWi32DciL9O6DO8Qj65ptv8Prrr0OhUGDQoEG47LLLMGfOHNTU1OCjjz7ydUwplUokJycnXJvv+fFfddVVePfdd3Hw4EHodDpcc801ADxV+ZaWljhH62/btm344osv8Le//Q0AkJKSgmeffRYLFiwA4KlxZGVlgcfjoampKZ6hBtW+DDweD06nE0KhEAzD+D7APv74YyxcuBCHDh3yJcV4O/+1Z7Hv77S0NCQnJ2Pbtm34+9//jtWrV8cjzE61f+8PHToURUVFmD59OgAk9GvPCha/SCQCEIXfAUMiwmAwMDNmzGD27t3LaDQaZsuWLcyCBQuYdevWMU6nk/mf//kf5tlnn2VWrFjBTJs2jTlx4kS8Q/YTKP758+cz77//vt95n3zyCXPTTTcxlZWVcYq0o8OHDzPjx49nrr/+eubOO+/0e6y2tpZ5+OGHmWXLljGLFi1iJk6cyJw8eTJOkQYXrAwOh4NhGIZxu90MwzDMqlWrmCuvvDJhyhAsbqfT6fv57bffZsaOHctMnz49YeJuL9jf7rvvvut3XqK99qxQ4n/rrbci+jtIrLoWhwkEAmRlZUGtViMzMxNjx47F7NmzsWfPHuzatQurV69Gnz59oFQqsXLlSgwYMCDeIfsJFP+cOXPw3//+F1988QUA4PTp09i9ezdWrVqVUEMUHQ4HFi1ahG3btkEul+OOO+7wPZaTk4Ply5dj9uzZKCkpwRtvvIGioqI4RhtYsDIIhUI4nU7weDwYjUY0NzfjrbfeSpgyBItbIBD4mknS09MhlUrx0ksvJUzc7QX7292/f7/vvW8wGKDT6RLqtWd1Fv/GjRsBABkZGZDL5ZH7HVx06iE+q1atYmbPns0YDAaGYTzfBDZt2sSsWLEizpGFJlj8q1atYhiGYWw2G2M0GuMZYlA6nc73c2lpKTNr1izfv+vr6+MRUtg6K0NtbS3DMAxjt9tjHldXOotbq9UyRqORqa6ujkdoIevsve90OhmXy8XYbLY4RxlcV3+7Wq2WqaqqitjzUY0jAhjvSJ6FCxdi8ODB+Mtf/gKj0QiFQoFRo0bh6NGjaGxsjHOUwXUV/8GDB6HRaCAWi5GUlBTnaANTKpW+ztg333wTKSkpmDdvHj7//HO88sorMJlMcY6wa52V4W9/+xvMZrOvzTqRdBb3iy++CKFQiNzc3DhHGVgo7/3m5mbw+XyIxeI4R9tRKPE3NDQgLS0NeXl5EXteShwRwHYCCgQCzJkzB6mpqbj//vtRUVGBX3/9FVarFQKBIM5RBhdK/EJh4o+j4PP5vj+kN998E2fOnMGKFStwzz33JGzCO19nZZDL5XGOLrhgcc+dOxcSiSTO0XXExsrVv91w4o/Glw0ew3BkGm0CcrlcvjcV+3N1dTWSkpLw/vvvo6qqCnV1dXjyyScxePDgOEfbEZfjbx+72+0Gn89HdXU1FAoFVCoVdu/ejaeffhp///vfE65NmsXVMnA1bsAzOS4pKQlisdhXg+DSez9h4o9Yo1cPsW3bNuYvf/mL79/tR4/8+uuvzL333sucOXPG91iitYtyOf7OYt+1axdz7733MqdOnWIYhmF+++23hBr5xeJqGbgad3vffvstc9dddzH33HMP8+abb/rFmOjvfYZJrPgpcYThwIEDzLhx45hRo0Yxixcv9h232+2M0WhkZsyYwWzZsiWOEXaOy/GHEvvWrVvjGGHXuFoGrsbd3s8//8xMnDiROXbsGLN7925m6dKlzLfffsswTNtw1kR97zNM4sVPTVVh+OGHH2Cz2TB+/HhMnToVffv2xcsvv+x7XK/X+zoKE21WKcDt+MOJncfjJdzkSoC7ZeBq3O3985//hEgkwp133gkA+Oijj/Dbb79hxYoVEAgECf3eBxIw/pilqG5Co9EwDOOZkDVt2jTm0Ucf9T3W0NAQp6hCx+X4uRw7i6tl4Grc7bUvw86dO5kFCxb4HtPr9fEKK2SJFD/VOLqwa9cunDt3DlarFXfffTcAwG63QywWw+VyYcaMGRgyZAjGjh2LPXv2YMmSJQk1ioTL8XM5dhZXy8DVuNtjy2Cz2TB79my/x86cOYOXXnoJ//jHP7Bx40ZoNBrcc889CTXkNqHjj2ma4pjvvvuOmThxIvP+++8zJSUlzLPPPut7rP1ErEsuuYQZM2YMc/z48ThEGRyX4+dy7CyuloGrcbfXWRkYhmEqKiqYhQsXMh9++CEzadIk5vTp0/EJNIhEj58SRxA1NTXMzJkzmZ9//plhGIZpbW1l7rjjDqa8vNy3bhDDeEYzXHfddQm3fg2X4+dy7CyuloGrcbfXVRncbjdTW1vLjBkzhrntttsSLmlwIf7En9UVJ2KxGA899BCKi4tht9shlUohkUig1+v9Ov+sViveffdd3xLYiYLL8XM5dhZXy8DVuNsLpQw5OTkYO3Ys7r//fvTr1y/OEfvjQvyJN3wgzmpra+FwOJCSkuJbRlwsFkMkEiE/P983YmH//v0AgGuuuSah/ni4HD+XY2dxtQxcjbu9UMuwb98+AMCqVaswaNCguMV7Pi7FT4mjne+++w6lpaV4/vnn8dhjj/n2Grbb7QA8K2RaLBZ8+eWXWLJkCTQaTTzD7YDL8XM5dhZXy8DVuNsLpwyPPfYYNBpNQg0b5lz8MW8cS0Bsm+HNN9/M/Prrr0xjYyPz9ttvM1dddZVfG+4LL7zAzJkzh7nzzjsTqm2Xy/FzOXYWV8vA1bjb43oZuBo/JQ4vp9PJPPXUU0x9fb2vE3DdunXM2LFjmfLycoZhPJuhXHvttQnXmcYw3I6fy7GzuFoGrsbdHtfLwMX4e3xT1blz53Dw4EG0trbCYDDgiy++8FUB7777btx999148803YbfbMWbMGHz44YcJ1ZnG5fi5HDuLq2Xgatztcb0MXI6/R4+q2rFjB15++WUolUoMGDAAkydPxvLly+F2u/HAAw8AACZOnIg33ngDYrEYI0aMiHPE/rgcP5djZ3G1DFyNuz2ul4Hr8ffYGsdvv/2GF198ES+++CLef/99OBwOHDx4EB999BE++ugjvPbaazh37hx2796No0ePQqfTxTtkP1yOn8uxs7haBq7G3R7Xy8D1+AH03M7xvXv3Mp9++qnv31qtlrn//vsZhmGYyspK5oknnmCeffZZZtq0aQk5M5bL8XM5dhZXy8DVuNvjehm4Hj/D9ODOcafT6duf1+l0MnV1dcyUKVN8C7ZVV1czDoeDaW1tjWeYQXE5fi7HzuJqGbgad3tcLwPX42eYHtw5LhAIoFAoAHi2YUxOToZSqYRarcbGjRvx5ptvwul0Ijk5Oc6RBsbl+LkcO4urZeBq3O1xvQxcjx/o4Z3jLKFQCKFQiJycHLz00kvYuXMnXnjhBUil0niHFhIux8/l2FlcLQNX426P62XgavyUOODJ+g6HA3v27IHT6cQ///lPFBYWxjuskHE5fi7HzuJqGbgad3tcLwNX46f9ONr57LPPMHz4cBQVFcU7lAvC5fi5HDuLq2Xgatztcb0MXIufEkc7DMMk1Po14eJy/FyOncXVMnA17va4XgauxU+JgxBCSFh67KgqQgghF4YSByGEkLBQ4iCEEBIWShyExMDq1avx9ttvB31827ZtOH36dAwjIuTCUeIgJAFQ4iBcQqOqCImS119/HWVlZcjJyUFaWhqGDh2K5ORkfPzxx3A4HOjduzf+93//F8eOHcODDz4IhUKB5ORkrF69GgDw/PPPo6WlBVKpFH/+858TZi8GQmjmOCFRcPjwYXz11VcoKyuDy+XCtGnTMHToUIwfPx633347AOD//u//sGHDBsyePRslJSW49tpr8fvf/x4AcM899+D5559HYWEhDhw4gOeffx7/+te/4lkkQnwocRASBXv27MENN9wAmUwGACgpKQEAnDp1Cq+88goMBgNMJhPGjh3b4VqTyYR9+/bh0Ucf9R2z2+2xCZyQEFDiICRKAs0EfuKJJ/Daa69h0KBB+Oyzz7B79+4O5zAMg5SUFGzcuDEWYRISNuocJyQKRo8ejW+++QZWqxVGoxE7duwA4KlNZGZmwuFwYNOmTb7zk5KSYDKZAAAKhQJ5eXn4+uuvAXgSyfHjx2NfCEKCoM5xQqKE7RzPzc1FVlYW+vfvD5lMhrVr1yI3NxcDBgyAyWTCihUrsHfvXjz99NMQi8X429/+Bh6Ph+eeew6NjY1wOp246aab8PDDD8e7SIQAoMRBCCEkTNRURQghJCyUOAghhISFEgchhJCwUOIghBASFkochBBCwkKJgxBCSFgocRBCCAkLJQ5CCCFh+f+KbwrtEWgYDwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#PLOT DATA\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "sns.set_style(\"darkgrid\")\n", "plt.xticks(rotation=45)\n", "sns.lineplot(data=df2, x='date', y='portfolioIndex')" ] }, { "cell_type": "code", "execution_count": null, "id": "c1a8d3a5", "metadata": {}, "outputs": [], "source": [ "\n" ] }, { "cell_type": "code", "execution_count": null, "id": "f84e1d8f", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "dfdd25f0", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "12680482", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "7e9bd3b4", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.10" } }, "nbformat": 4, "nbformat_minor": 5 }