diff --git a/README.md b/README.md index 3e83a16..a9b7905 100644 --- a/README.md +++ b/README.md @@ -47,3 +47,11 @@ A useful statistic when working with Entropy Pooling is the effective number of scenarios introduced by [Meucci (2012)](https://ssrn.com/abstract=1971808). For a causal Bayesian nets overlay on top of Entropy Pooling, see [Vorobets (2023)](https://ssrn.com/abstract=4444291). + +Video walkthroughs +------------------ + +Video walkthroughs of the two notebook examples for this package are available here +https://youtu.be/hDt103zEML8 and here https://youtu.be/DK1Pv5tuLgo. The videos give +additional insights into the Entropy Pooling theory and its sequential refinements. +It is highly encouraged to watch these two quickly increase your understanding. \ No newline at end of file diff --git a/environment.yml b/environment.yml index 2d747bc..739b14d 100644 --- a/environment.yml +++ b/environment.yml @@ -4,7 +4,10 @@ channels: dependencies: - python=3.10 - scipy + - seaborn + - pandas - pip - pip: - fortitudo.tech - - entropy-pooling \ No newline at end of file + - entropy-pooling + - yfinance \ No newline at end of file diff --git a/example/EntropyPooling.ipynb b/example/1_EntropyPooling.ipynb similarity index 98% rename from example/EntropyPooling.ipynb rename to example/1_EntropyPooling.ipynb index 8126b55..236b816 100644 --- a/example/EntropyPooling.ipynb +++ b/example/1_EntropyPooling.ipynb @@ -7,7 +7,9 @@ "# Entropy Pooling example\n", "This notebook replicates the results of the original EP method (Table 4 and Table 7) from the Sequential Entropy Pooling Heuristics article, available on https://ssrn.com/abstract=3936392.\n", "\n", - "You can watch a video walkthrough of the example here: https://youtu.be/hDt103zEML8." + "You can watch a video walkthrough of the example here: https://youtu.be/hDt103zEML8.\n", + "\n", + "For additional useful information about Entropy Pooling and an application of the sequential heuristic H1 to S&P 500 and STOXX 50 data, see the next example as well as this video walkthrough: https://youtu.be/DK1Pv5tuLgo." ] }, { @@ -795,7 +797,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.1" + "version": "3.12.0" }, "orig_nbformat": 4, "vscode": { diff --git a/example/2_SequentialEntropyPooling.ipynb b/example/2_SequentialEntropyPooling.ipynb new file mode 100644 index 0000000..8199931 --- /dev/null +++ b/example/2_SequentialEntropyPooling.ipynb @@ -0,0 +1,606 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Sequential Entropy Pooling example\n", + "This notebook presents an elementary example of Entropy Pooling views on mean and volatility of S&P 500 and STOXX 50.\n", + "\n", + "At the end, there is an example of how to apply Entropy Pooling in a sequential way for even better results. For more on sequential Entropy Pooling, see https://ssrn.com/abstract=3936392. For a video walkthrough of the article and its accompanied code, see https://youtu.be/hDt103zEML8.\n", + "\n", + "You can watch a video walkthrough of the example and learn more about Entropy Pooling here: https://youtu.be/DK1Pv5tuLgo." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "import seaborn as sns\n", + "import yfinance as yf\n", + "import fortitudo.tech as ft\n", + "import matplotlib.pyplot as plt\n", + "from entropy_pooling import ep" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# S&P 500 and STOXX 50 data" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[*********************100%%**********************] 2 of 2 completed\n" + ] + } + ], + "source": [ + "tickers = ['^GSPC', '^STOXX50E']\n", + "data = yf.download(tickers, start='2007-03-30', end='2024-02-24')['Adj Close']\n", + "data.bfill(inplace=True)\n", + "column_names = ['S&P 500', 'STOXX 50']\n", + "data.columns = column_names" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "R_df = pd.DataFrame(\n", + " 100 * (data.iloc[1:].values / data.iloc[0:-1].values - 1),\n", + " columns=column_names)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAGwCAYAAABB4NqyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABiaUlEQVR4nO3de3yT9d3/8VeStun5fMZCOQsqoCAVT+hWAc8o80Z34DDFzckOds4Np+Bx4JnNcctunQKbbsy5+dvchodOdJuoE0QUEZBTgZ4LPaVt2ibX748rSakUKG3aNMn7+XjkkfbKlSufVEzf/R4thmEYiIiIiIQRa6ALEBEREelvCkAiIiISdhSAREREJOwoAImIiEjYUQASERGRsKMAJCIiImFHAUhERETCTkSgCxiI3G43paWlJCQkYLFYAl2OiIiIdINhGDQ0NJCbm4vVevw2HgWgLpSWlpKXlxfoMkRERKQH9u/fzymnnHLccxSAupCQkACYP8DExMQAVyMiIiLdUV9fT15enu/3+PEoAHXB2+2VmJioACQiIhJkujN8RYOgRUREJOwoAImIiEjYUQASERGRsKMxQCIiEvJcLhdtbW2BLkN6KTIyEpvN5pdrKQCJiEjIMgyD8vJyamtrA12K+ElycjLZ2dm9XqdPAUhEREKWN/xkZmYSGxurxW2DmGEYNDU1UVlZCUBOTk6vrqcAJCIiIcnlcvnCT1paWqDLET+IiYkBoLKykszMzF51h2kQtIiIhCTvmJ/Y2NgAVyL+5P3v2dsxXQpAIiIS0tTtFVr89d9TAUhERETCjgKQiIiIhB0FIBEREQk7CkAiIiIDSFVVFbfccguDBw/GbreTnZ3N9OnT+c9//tPpvN/+9receuqpREdHk5+fz/3333/Utfbu3YvFYvHd0tLSmDZtGh9++OExX3/9+vWdnuO9lZeXdzpvxYoV5OfnEx0dTUFBAe+//36nx1taWrj11ltJS0sjPj6eWbNmUVFR0YufjH8pAImIeBiGwUf7a6lv0YrBEjizZs3iww8/ZPXq1ezYsYO//OUvXHTRRdTU1PjO2bt3L3PmzGHmzJls27aNP/zhDwwdOvSY13zjjTcoKyvj1VdfpbGxkUsvvfSEi0Nu376dsrIy3y0zM9P32Nq1aykqKmLJkiVs2rSJ8ePHM336dN8aPQC33XYbf/3rX3nxxRd56623KC0t5dprr+35D8bfDDlKXV2dARh1dXWBLkVE+tEHe2uMIT9+xZjyszeM7eX1gS5Heqm5udn49NNPjebmZt8xt9ttOJxt/X5zu93dqvnw4cMGYKxfv/645+3du9ewWq3G9u3bj3venj17DMD48MMPfcf+85//GICxbt26Lp/z5ptvGoBx+PDhY1538uTJxq233ur73uVyGbm5ucbSpUsNwzCM2tpaIzIy0njxxRd952zbts0AjA0bNhy35hPp6r+r18n8/tZCiCIiHjsqGgEorWvhK0+9w9NzJlEwTAvohZLmNhdjF7/a76/76X3TiY068a/c+Ph44uPjefnllznnnHOw2+1dnjdo0CAmTZrEwoUL+ctf/kJ0dHS3a/EuJtja2nrc8yZMmIDT6eT000/nnnvu4bzzzvM9b+PGjSxatMh3rtVqpbCwkA0bNgCwceNG2traKCws9J1z6qmnMnjwYDZs2MA555zT7Xr7irrAREQ8qhucAFgsUN/Sznd/9yGGYQS4KgknERERrFq1itWrV5OcnMx5553HnXfeyZYtWzqdt2DBAgzDYNiwYVx66aXU19f7HrvyyitZuHBhl9evra3l/vvvJz4+nsmTJ3d5Tk5ODitXruSll17ipZdeIi8vj4suuohNmzYBUF1djcvlIisrq9PzsrKyfOOEysvLiYqKIjk5+ZjnBJpagEREPGoc5l/Ec84ZwuoN+6hscFLf0k5STGSAKxN/iYm08el90wPyut01a9YsLr/8cv71r3/x7rvv8o9//IOHH36YZ555hnnz5vHpp5+yatUqtm7dypgxY5g3bx4XXXQR69atIzMzk08++YSvf/3rna557rnnYrVacTgcDBs2jLVr1x4VYLxGjx7N6NGjOz13165dPPHEE/zmN7/p2Q9gAFIAEhHxqGo0W4CGpMURb4+g0dlOdaNTASiEWCyWbnVFBVp0dDSXXHIJl1xyCXfffTc33XQTS5YsYd68eWzZsgW73c7YsWMBePbZZ5k9ezbnnXced9xxBw0NDVx11VWdrrd27VrGjh1LWlraUa0y3TF58mT+/e9/A5Ceno7NZjtqRldFRQXZ2dkAZGdn09raSm1tbafXO/KcQFMXmIiIR40nAKXFR5EeHwV0dIuJBNLYsWNxOByAOf7H6XTy3nvvAWCz2XjhhRcYPnw4N998Mz/96U9943y88vLyGD58eI/CD8DmzZt9u69HRUUxceJEiouLfY+73W6Ki4uZMmUKABMnTiQyMrLTOdu3b6ekpMR3TqAN/BgsItJPqhvNLrCMeDvp8Xb21jT5jon0h5qaGq677jq++c1vMm7cOBISEvjggw94+OGHufrqqwE4//zzOffcc5k9ezbLly/njDPOYOvWrZSWlhIXF8cLL7zAt771rR5vArt8+XKGDh3KaaedRktLC8888wz//Oc/ee2113znFBUVMXfuXCZNmsTkyZNZvnw5DoeD+fPnA5CUlMSNN95IUVERqampJCYm8t3vfpcpU6YMiAHQoAAkIuLT0QJkBiCAGodagKT/xMfHU1BQwBNPPMGuXbtoa2sjLy+PBQsWcOeddwJmN966deu49957KSoq4uDBg4wYMYKbb76Z6667joKCAr72ta/x0ksv9aiG1tZWfvjDH3Lw4EFiY2MZN24cb7zxBhdffLHvnNmzZ1NVVcXixYspLy9nwoQJrFu3rtO4oieeeAKr1cqsWbNwOp1Mnz6d//3f/+3dD8iPLIamOBylvr6epKQk6urqSExMDHQ5ItIP2lxuRv70HwBsvKuQJ97YwW/fLeF7XxpB0bTRJ3i2DEQtLS3s2bOHoUOHntQ0cRnYjvff9WR+f2sMkIgIcMgzA8xqgeTYKF8LUJW6wERCkgKQiAhQ7en+So2zY7NafAHIe1xEQosCkIgIHQOgvbO/fLPAFIBEQpICkIgIHQOgvS0/agESCW0KQCIidASdNF8LkCcANWgMkEgoUgASEQFqfF1gnhagBPO+uc2Fw9kesLpEpG8oAImI0LENhrcFKC7KRnSk+RGpbjCR0KMAJCLC0S1AFotmgomEMgUgERE6Qo539pf5tWctII0DEgk5CkAiIhzdAnTk19oOQ/pTVVUVt9xyC4MHD8Zut5Odnc306dP5z3/+w/r167FYLMe9rV+/HoDm5maWLFnCqFGjsNvtpKenc91117F161bfa/34xz8mPz+fhoaGTjVceeWVXHjhhbjdbkpLS0lJSeEXv/hFp3Pee+89IiMjO+0R9kX5+flH1bds2bJO52zZsoULLriA6Oho8vLyePjhh3v5E+we7QUmImHPMAxfyEk7IgBlJHh3hFcLkPSfWbNm0drayurVqxk2bBgVFRUUFxdTU1PDjBkzKCsr8537/e9/n/r6ep577jnfsdTUVJxOJ4WFhZSUlPDYY49RUFBARUUFS5cupaCggDfeeINzzjmH++67j7/97W8UFRXx9NNPA/Dss8/y5ptv8tFHH2G1WsnNzeXJJ5/kW9/6FpdeeikjR46kubmZuXPnctNNNzFt2rTjvp/77ruPBQsW+L5PSEjwfV1fX8+0adMoLCxk5cqVfPzxx3zzm98kOTmZm2++2V8/0i4pAIlI2KtvbqfNZW6LmBZ3dBeYxgBJf6mtreVf//oX69evZ+rUqQAMGTKEyZMn+87Jzs72fR0TE4PT6ex0DOChhx5iw4YNfPjhh4wfP953nZdeeomCggJuvPFGPvnkE+x2O6tXr2bKlCnMmjWLsWPHctttt/Hwww8zfPhw3/W+/vWv86c//Yl58+bxr3/9i0WLFtHW1sYjjzxywveUkJBwVH1ezz//PK2trTz77LNERUVx2mmnsXnzZh5//PE+D0DqAhORsOedAZZgjyA60uY7rgAUggwDWh39f+vmvuPx8fHEx8fz8ssv43T2/N/dCy+8wCWXXOILP15Wq5XbbruNTz/9lI8++giAiRMnsmjRIm666Sa+8Y1vMHnyZG655Zajrrly5Up27tzJ1772NX75y1/y3HPPER8ff8Jali1bRlpaGmeeeSaPPPII7e0dy0ps2LCBCy+8kKiojj88pk+fzvbt2zl8+HBP3363qAVIRMKebxXoBHun4wpAIaitCX6W2/+ve2cpRMWd8LSIiAhWrVrFggULWLlyJWeddRZTp07l+uuvZ9y4cd1+uR07dnDxxRd3+diYMWN850yYMAGAu+66i+eee4733nuPHTt2YLFYjnpeZmYm999/P9/+9re55ZZbuPDCC09Yx/e+9z3OOussUlNTeeedd1i0aBFlZWU8/vjjAJSXlzN06NBOz8nKyvI9lpKS0u33fLLUAiQiYc+7D9iR3V/QsSZQtXaEl340a9YsSktL+ctf/sKMGTNYv349Z511FqtWrTqp6xjdbHUCeP311ykvL8ftdvPf//63y3NcLherVq0iNjaWd999t1NLzrEUFRVx0UUXMW7cOL797W/z2GOP8eSTT/aqdctf1AIkImHPOwD6yBlgR35f3RD4D2vxk8hYszUmEK97EqKjo7nkkku45JJLuPvuu7nppptYsmQJ8+bN69bzR40axbZt27p8zHt81KhRABw+fJgFCxZw1113YRgG3/nOd5g6dSrp6emdnvfoo4+ye/duPvjgA6ZOncrPfvYzFi9efFLvq6CggPb2dvbu3cvo0aPJzs6moqKi0zne7481bshf1AIkImHPG3DS4ju3AGV4AlCDs52WNle/1yV9wGIxu6L6+9ZFl9LJGDt2LA6Ho9vnX3/99bzxxhu+cT5ebrebJ554grFjx/rGB333u98lOzubO++8k5/+9KcMGjSIW2+9tdPztm7dypIlS3jqqacYM2YMTz31FA888ABbtmw5qfexefNmrFYrmZmZAEyZMoW3336btrY23zmvv/46o0eP7tPuL1AAEhGhrtn88E2Ojex0PDEmgiibtsOQ/lNTU8OXvvQlfvvb37Jlyxb27NnDiy++yMMPP8zVV1/d7evcdtttTJ48mSuvvJIXX3yRkpIS/vvf/zJr1iy2bdvGr3/9aywWC3/+85958cUXWb16NREREURERLB69WpefvllXnrpJQDa29uZO3cu1157Lddeey1gdtPNmjWLefPmHbMrbMOGDSxfvpyPPvqI3bt38/zzz3Pbbbfx9a9/3RduvvrVrxIVFcWNN97I1q1bWbt2LT//+c8pKirq5U/yxNQFJiJhr9Fptu7E2Tt/JFosFtLioyira6GmsZVTUk6uG0PkZMXHx1NQUMATTzzBrl27aGtrIy8vjwULFnDnnXd2+zrR0dH885//5Gc/+xl33nkn+/btIyEhgYsvvph3332X008/nerqar797W+zZMkSTj/9dN9zzzjjDJYsWeLrCvvf//1fDh48eNSChytWrOC00047ZleY3W7n97//Pffccw9Op5OhQ4dy2223dQo3SUlJvPbaa9x6661MnDiR9PR0Fi9e3OdT4AEsxsmMkgoT9fX1JCUlUVdXR2JiYqDLEZE+dstvN/KPT8q57+rTmDMlv9NjM5a/zWflDfzmxslcMDIjMAVKj7S0tLBnzx6GDh1KdHR0oMsRPznef9eT+f09ILrAVqxYQX5+PtHR0RQUFPD+++8f89ynn36aCy64gJSUFFJSUigsLDzq/Hnz5h219PaMGTP6+m2ISJBqdJpN+HFRRzeKJ0SbxxpaTjzjRUSCR8AD0Nq1aykqKmLJkiVs2rSJ8ePHM336dCorK7s8f/369dxwww28+eabbNiwgby8PKZNm8bBgwc7neddLtx7+93vftcfb0dEgpDDG4Ds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to25c+cycuRI5s2bx7Zt2wCora3lrrvuYsWKFd35cYqIHykAiUi/+OSTT3jnnXeIioryHVu6dClr1qxh5cqVbN26ldtuu42vf/3rvPXWW+Tl5fm6hbZv305ZWRk///nPT+o177nnHq655ho+/vhjvvnNbwKwa9cuXn75ZV555RVeeeUV3nrrLZYtW3ZS1z3Za4wfP5433ngDt9vNa6+9xrhx4wD40Y9+xK233kpeXt5Jvb6I9F5EoAsQkdD1yiuvEB8fT3t7O06nE6vVyi9/+UsAnE4nP/vZz3jjjTeYMmUKAMOGDePf//43v/rVr5g6dSqpqakAZGZm9mgg8le/+lXmz5/f6Zjb7WbVqlUkJCQA8I1vfIPi4mIefPDBbl/3ZK/x6KOP8q1vfYv8/HzGjRvHr371K95++202b97MQw89xP/8z//wwQcfMG3aNH7xi190Coki0jcUgESkz1x88cU89dRTOBwOnnjiCSIiInxjXT7//HOampq45JJLOj2ntbWVM8880y+vP2nSpKOO5efn+4ILQE5ODpWVlSd13ZO9xqBBg3jllVd83zudTqZPn87q1at54IEHSEhIYPv27cyYMYNf/epXfPe73z2pekTk5CkAiUifiYuLY8SIEQA8++yzjB8/nl//+tfceOONNDY2AvC3v/2NQYMGdXqe3W4/7nWtViuGYXQ61tUg57i4uKOORUZGdvreYrHgdrtP/Gb8eI2f/exnTJs2jYkTJ7JgwQIeeOABIiMjufbaa/nnP/+pACTSDxSARKRfWK1W7rzzToqKivjqV7/K2LFjsdvtlJSUMHXq1C6f4+0KcrlcnY5nZGRQVlbm+76+vp49e/b0XfF+tG3bNl544QU2b94MmO/NG97a2tqOeq8i0jc0CFpE+s11112HzWZjxYoVJCQkcPvtt3PbbbexevVqdu3axaZNm3jyySdZvXo1AEOGDMFisfDKK69QVVXlazX60pe+xG9+8xv+9a9/8fHHHzN37lxsNlsg31q3GIbBzTffzBNPPOFrnTrvvPN4+umn2bZtG2vWrOG8884LcJUi4UEBSET6TUREBAsXLuThhx/G4XBw//33c/fdd7N06VLGjBnDjBkz+Nvf/sbQoUMBc+zMvffey09+8hOysrJYuHAhAIsWLWLq1KlcccUVXH755cycOZPhw4cH8q11y//93/+RlZXFFVdc4Tt2zz330NLSQkFBASNGjODWW28NYIUi4cNifLEjXURERCTEqQVIREREwo4CkIiIiIQdBSAREREJOwpAIiIiEnYUgERERCTsKACJiIhI2FEAEhERkbCjACQiIiJhRwFIREREwo4CkIiIiIQdBSAREREJO/8f66hXQ496lGEAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.kdeplot(R_df)\n", + "plt.xlabel('Return in %')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Entropy Pooling views\n", + "We specify the view that the mean of STOXX 50 is half a standard deviation lower than the prior and that the volatility of S&P 500 is 20% higher relative to the prior value.\n", + "\n", + "We first use the original Entropy Pooling suggestion and fix the posterior mean of S&P 500 to its prior value when implementing the volatility view and then compare it to the sequential refinement where the mean is allowed to change according to the STOXX 50 mean view before the S&P 500 view on volatility is implemented.\n", + "\n", + "For more details on sequential Entropy Pooling, see https://ssrn.com/abstract=3936392." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Original heuristic" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "R = R_df.values\n", + "S = R.shape[0]\n", + "p = np.ones((S, 1)) / S\n", + "means_prior = p.T @ R\n", + "vols_prior = np.sqrt(p.T @ (R - means_prior)**2)\n", + "\n", + "mean_rows = R.T\n", + "vol_row = (R[:, 0] - means_prior[0, 0])[np.newaxis]**2\n", + "A = np.vstack((np.ones((1, S)), mean_rows, vol_row))\n", + "b = np.array([[1],\n", + " [means_prior[0, 0]],\n", + " [means_prior[0, 1] - 0.5 * vols_prior[0, 1]],\n", + " [(1.2 * vols_prior[0, 0])**2]])" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "RE = 0.163.\n", + "Relative ENS = 0.85.\n" + ] + } + ], + "source": [ + "q = ep(p, A, b)\n", + "relative_entropy = q.T @ (np.log(q) - np.log(p))\n", + "effective_number_scenarios = np.exp(-relative_entropy)\n", + "print(f'RE = {np.round(relative_entropy[0, 0], 3)}.')\n", + "print(f'Relative ENS = {np.round(effective_number_scenarios[0, 0], 3)}.')" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "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", + "
MeanVolatilitySkewnessKurtosis
S&P 5000.0373641.265002-0.25223915.059437
STOXX 500.0133231.398997-0.09361410.675691
\n", + "
" + ], + "text/plain": [ + " Mean Volatility Skewness Kurtosis\n", + "S&P 500 0.037364 1.265002 -0.252239 15.059437\n", + "STOXX 50 0.013323 1.398997 -0.093614 10.675691" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "stats_prior = ft.simulation_moments(R_df)\n", + "display(stats_prior)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "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", + "
MeanVolatilitySkewnessKurtosis
S&P 5000.0373641.5180020.27862514.039257
STOXX 50-0.6861761.811450-1.8402479.477816
\n", + "
" + ], + "text/plain": [ + " Mean Volatility Skewness Kurtosis\n", + "S&P 500 0.037364 1.518002 0.278625 14.039257\n", + "STOXX 50 -0.686176 1.811450 -1.840247 9.477816" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ft.simulation_moments(R_df, q)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHHCAYAAABDUnkqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABqZ0lEQVR4nO3deXhU9d3+8feZSWYm+04CIRA2QXZkEzegRlGsoqLFtpbFSqsFrUWfn2JbcKliVZDWKrQqoFUfqUvVRy0uKdSquCJuKLIHgWxk32aSmfP7YzIDMQGyT2Zyv65rLpwzZ875ZIjJzXc1TNM0EREREQkRlkAXICIiItKeFG5EREQkpCjciIiISEhRuBEREZGQonAjIiIiIUXhRkREREKKwo2IiIiEFIUbERERCSkKNyIiIhJSFG5ERJohMzOTuXPn+p9v2rQJwzDYtGlTh9/7tttuwzCMBscMw2DhwoUdfm+AdevWYRgGe/fu7ZT7ibSVwo0I8MUXX3DZZZfRt29fHA4H6enpnHPOOTz44IONzi0uLuaaa64hPT2dqKgoRo0axX333XfMaxuG4X9YLBZ69erFueee26xfir5fat9/OByOJs9/7LHHOPnkk3E4HAwaNKjJ+gEOHDjAj370I+Lj44mNjWXGjBns3r37hPW0h4MHD3LbbbexdevWTrlfV3P33Xfz4osvBrqMJnXl2kRawtDeUtLdvffee0ydOpU+ffowZ84c0tLS2L9/P++//z67du1i586dDc6fMWMGr732GgsXLmTIkCF89tlnvPfee8f8ZW0YBueccw6zZ8/GNE327NnDww8/TH5+Pq+++irnn3/+MWu77bbbuP3221m1ahXR0dH+41arlR//+McNzv3rX//KNddcw8yZM5k2bRr//e9/+fvf/84999zDzTff7D+voqKCU045hdLSUm688UbCw8N54IEHME2TrVu3kpSU1IpPsfk+/vhjxo8fz9q1axu0hHR1mZmZTJkyhXXr1gHg8XhwuVzYbDYslub/OzE6OprLLrvMf53mqKuro66urkGoNQyDBQsW8Je//KXZ12ltbW63m9raWux2e6MWJJGuKCzQBYgE2l133UVcXBwfffQR8fHxDV7Lz89v8LyyspJXXnmFa665hgceeMB/3Ol0HvceJ510EldeeaX/+SWXXMLIkSNZuXLlccONz2WXXUZy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fnmr6rRarcycOZPnn3+eL7/88rhfh6/VqqlfuAMGDOD9999v0MX2yiuvNAiUHSkrK4vw8HAefPDBBt8TK1euPOF7y8rKGnxfgDfoWCyWBt2AUVFRTX7trbF58+YGY5n279/PSy+9xLnnnutvLRkwYAClpaV8/vnn/vMOHTrEP//5z0bXa25tWVlZ2Gw2/vznPzf4nB577DFKS0sbfL811+HDhxs8t9lsDB06FNM0qa2tbfH1pHvTVHDp9q677jqqqqq45JJLGDJkCC6Xi/fee4/169eTmZnpHzMycuRIrr/+ev785z8zfvx4fvzjHxMfH89///tfnnnmGc4880zeeecd5s+fz+OPP94utfXt25dZs2YxYsQIHA4H77zzDs888wyjR4/ml7/8pf+8iIgI7rzzThYsWMDll1/uX6H4ySef5K677iIxMdF/7q9+9SseeeQRLrjgAm666SbCw8NZsWIFqamp3Hjjja2u9Z577mHjxo1MnDiR+fPnM3ToUIqKitiyZQtvvfWWvxttwIABxMfHs3r1amJiYoiKimLixIn069ePq6++mueee47zzjuPH/3oR+zatYsnn3zyuFOS25NvPZxly5bxwx/+kOnTp/Ppp5/yr3/967iLKIJ3evzChQu5/PLLOemkk6irq+Pvf/+7P/j5jB07lrfeeosVK1bQq1cv+vXrx8SJE1tV7/Dhw5k2bVqDqeAAt99+u/+cK664gptvvplLLrmE66+/nqqqKlatWsVJJ53UaJB3c2tLSUlh8eLF3H777Zx33nlcdNFFbN++nYcffpjx48c3GDzcXOeeey5paWmcfvrppKam8vXXX/OXv/yFCy64oFWtidLNBW6ilkjX8K9//cu86qqrzCFDhpjR0dGmzWYzBw4caF533XVmXl5eo/Mfe+wxc+zYsabD4TCjo6PNM88803zmmWdM0zwyZfj222/3nw+YCxYsaFVtV199tTl06FAzJibGDA8PNwcOHGjefPPNZllZWZPn/+1vfzMHDx5s2mw2c8CAAeYDDzzQYEqzz/79+83LLrvMjI2NNaOjo80f/vCH5o4dO5pV0/G+nry8PHPBggVmRkaGGR4ebqalpZlnn322+be//a3BeS+99JI5dOhQMywsrNG08OXLl5vp6emm3W43Tz/9dPPjjz8+5lTwpqZdz5kzx4yKimp0vKmpz01xu93m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yy+/THFxMbNnzyYhIYHIyEjOP/98duzY4X/fvn37uPDCC0lISCAqKophw4bx2muvsXfvXqZOnQpAQkIChmEwd+5cADweD8uWLaNfv35EREQwatQonnvuOf81fS0+//rXvxg7dix2u5133nmnUbeUx+PhjjvuoHfv3tjtdkaPHs2GDRv8r+/duxfDMFi/fj2TJ0/G4XDw1FNPddhnqJYbEQkp/plSR423gaPH3Gh/qW7JNKG2qvPvGx4JhtGmS0RERHD48GHmzp3Ljh07ePnll4mNjeXmm29m+vTpbNu2jfDwcBYsWIDL5eLtt98mKiqKbdu2ER0dTUZGBs8//zwzZ85k+/btxMbGEhERAcCyZct48sknWb16NYMGDeLtt9/myiuvJCUlhcmTJ/truOWWW7j//vvp378/CQkJbNq0qUGNf/rTn1i+fDl//etfGTNmDGvWrOGiiy7iq6++YtCgQQ2us3z5csaMGYPD4WjT53I8CjciElL8g4mjmw436pbqpmqr4O5enX/fWw+CLapVbzVNk+zsbF5//XXOP/98XnzxRd59911OO+00AJ566ikyMjJ48cUXufzyy8nJyWHmzJmMGDECgP79+/uvlZiYCECPHj2Ij48HwOl0cvfdd/PWW28xadIk/3veeecd/vrXvzYIN3fccQfnnHPOMWu9//77ufnmm7niiisA+OMf/8jGjRtZuXIlDz30kP+8G264gUsvvbRVn0dLKNyISEg5ssaNrcFxdUtJsHjllVeIjo6mtrYWj8fDT37yEy699FJeeeUVJk6c6D8vKSmJwYMH8/XXXwNw/fXXc+211/LGG2+QlZXFzJkzGTly5DHvs3PnTqqqqhqFFpfLxZgxYxocGzdu3DGvU1ZWxsGDBzn99NMbHD/99NP57LPPmn2d9qRwIyIh5cgaN99ruTkq3JimidHGrgIJMuGR3laUQNy3haZOncqqVauw2Wz06tWLsLAwXn755RO+7+qrr2batGm8+uqrvPHGGyxbtozly5dz3XXXNXl+RUUFAK+++irp6ekNXrPbG/7/ExXVutan72uv65yIwo2IhJTvr07skxTlbcmpdZuUVtcSH2lr9F4JYYbR6u6hzhYVFcXAgQMbHDv55JOpq6vjgw8+8HdLHT58mO3btzN06FD/eRkZGVxzzTVcc801LF68mEceeYTrrrsOm837/e52u/3nDh06FLvdTk5OToMuqJaKjY2lV69evPvuuw2u8+677zJhwoRWX7ctFG5EJKSUVtcCEB/ZcIqpI9xKrCOMspo6CiucCjcSVAYNGsSMGTOYP38+f/3rX4mJieGWW24hPT2dGTNmAN7xLOeffz4nnXQSxcXFbNy4kZNPPhmAvn37YhgGr7zyCtOnTyciIoKYmBhuuukmfvOb3+DxeDjjjDMoLS3l3XffJTY2ljlz5jS7vv/5n/9h6dKlDBgwgNGjR7N27Vq2bt3aoTOijkfhRkRCSqXTu9hZlL3xj7fkGDtlNXUUlLsY2KOzKxNpm7Vr1/LrX/+aH/7wh7hcLs466yxee+01/1oxbrebBQsW8N133xEbG8t5553HAw88AEB6ejq33347t9xyC/PmzWP27NmsW7eOO++8k5SUFJYtW8bu3buJj4/nlFNO4dZbb21Rbddffz2lpaXceOON5OfnM3ToUF5++eUGM6U6k2GaphmQOx/loYce4r777iM3N5dRo0bx4IMPHrMpa926dcybN6/BMbvdTk1NTbPuVVZWRlxcHKWlpcTGxra5dhHpWi5f/R4f7S3m4Z+ewvQRPRu8dsnD7/JpTgl//dlYpg1LC1CF0tFqamrYs2cP/fr169DpxtL+jvd315Lf3wFfxG/9+vUsWrSIpUuXsmXLFkaNGsW0adPIz88/5ntiY2M5dOiQ/7Fv375OrFhEurIKp3dMQVMtN7EO779wy+q7rkQkNAU83KxYsYL58+czb948hg4dyurVq4mMjGTNmjXHfI9hGKSlpfkfqampnVixiHRlvm6paLu10WuxEfXhpqZt+/SISNcW0HDjcrn45JNPyMrK8h+zWCxkZWWxefPmY76voqKCvn37kpGRwYwZM/jqq6+Oea7T6aSsrKzBQ0RC1/HG3MQ6vMfUciMS2gIabgoLC3G73Y1aXlJTU8nNzW3yPYMHD2bNmjW89NJLPPnkk3g8Hk477TS+++67Js9ftmwZcXFx/kdGRka7fx0i0nVU+MKNrYlw42+5UbgRCWUB75ZqqUmTJjF79mxGjx7N5MmTeeGFF0hJSeGvf/1rk+cvXryY0tJS/2P//v2dXLGIdJY6t8e/I3j0ccfcqFuqO+gC82Wkhdrr7yygU8GTk5OxWq3k5eU1OJ6Xl0daWvNmMoSHhzNmzBh27tzZ5Ot2u73RSosiEpoqnUcWKGuyWyqivltKLTchzTc1uqqqyr9BpAQHl8u7wrjV2njMXEsENNzYbDbGjh1LdnY2F198MeDdNj07O5uFCxc26xput5svvviC6dOnd2ClIhIMKlzeFhmb1YItrHHDtGZLdQ9Wq5X4+Hj/rNvIyEhttxEEPB4PBQUFREZGEhbWtngS8EX8Fi1axJw5cxg3bhwTJkxg5cqVVFZW+teymT17Nunp6Sxbtgzw7kx66qmnMnDgQEpKSrjvvvvYt28fV199dSC/DBHpAo4MJm76X32aLdV9+Fr/j7esiHQ9FouFPn36tDmMBjzczJo1i4KCApYsWUJubi6jR49mw4YN/kHGOTk5WCxH/gVWXFzM/Pnzyc3NJSEhgbFjx/Lee+812FtDRLqn482UAs2W6k4Mw6Bnz5706NGD2lr9fQcLm83W4Hd+a3WJFYo7k1YoFgld7+wo5MrHPmBIWgwbbjir0eu7Cio4e/l/iHGE8cVt0wJQoYi0VlCtUCwi0l4qTthyE+4/z+PpVv+uE+lWFG5EJGScqFsqpr5byjSh3KlxNyKhSuFGREJGpevYWy8AOMKt2OtnUWncjUjoUrgRkZBxvNWJfbRKsUjoU7gRkZBxom4pOHrGlLqlREKVwo2IhAzfCsXHWucG1HIj0h0EfJ0bEZH20mC2VNEe+PvFYFggcQAMnwmjf6xVikW6AYUbEQkZvm6paHsYbH8Vivd6XyjaDbs3wfBLtUqxSDegbikRCRkNBhQX7vAeHPEjsMWApxaK9miVYpFuQOFGREJGgwHFh3d6Dw48G5IHef+78FuNuRHpBhRuRCRk+AYUR9uParlJGnQk3BzecdSYG3VLiYQqhRsRCRm+bqkYowoqcr0Hkwce1XKzk9iI+m4ptdyIhCyFGxEJGb4VihNq9nsPRPUAR5y39Qa83VKaLSUS8hRuRCRkVNV3S8VU7PUeSBro/TP5JO+fh3ccGVCs2VIiIUvhRkRCgqvOg8vtASCibLf3YHJ9uEnsDxhQU0oiJYBabkRCmcKNiISEyqN2+baV7PL+h687KtwBCX0BSKzJATTmRiSUKdyISEjwDSZ2hFuwFNVPA/cNJAZ/0Imt2OM/3+MxO7VGEekcCjciEhJ8g4ljbBY4/L2WG/CPu/F1WZkmlDs17kYkFCnciEhI8HVL9bWVQW0VWML8XVGAf/xNWNFO7GHeH30adyMSmhRuRCQkVNTPlBpkrV/fJiETrOFHTvDNmCrcoVWKRUKcwo2IhARfy80AyyHvgaO7pI5+XrKPJLt3rI1WKRYJTQo3IhISfAOK+5oHvAd808B9onuAPQ5MD4Nt+YBabkRClcKNiIQEX8tNinnYeyC+b8MTDMM/BqePtQjQmBuRUKVwIyIhwRdu4jyl3gNRyY1Pik4FINVaDmiVYpFQpXAjIiHBN6A4xl3iPRDZVLjpAUBK/SrFpWq5EQlJCjciEhJ8LTfRvnATldL4pPpjvi0YyjXmRiQkKdyISEiodNYRRh2OujLvgSa7pbwtN/GeEgDK1S0lEpIUbkQkJFQ460igwvvEsEBEQuOTorzhJqbOO6BYLTcioUnhRkRCQpXLTZJR32oTkQgWa+OT6ltuImt9s6XUciMSihRuRCQkVDjrSDSO0yUF/nDjcHqni5c71XIjEooUbkQkJFQ660jCF26aGEwM/m4pm6uEMOo05kYkRCnciEhIqHTWHemWikxq+qSIBDC83VVJlCnciIQohRsRCQmVLveJu6UsFn+rTrJRSll1LaZpdlKFItJZFG5EJCRUuepIPlG3FBxZyM8opc5jUlPr6YTqRKQzKdyISNBz1XmodZskGt5tFY7ZLQX+cJNseLdp0HRwkdCjcCMiQa/a5d164Ui31HFabuoHFfcO1/5SIqFK4UZEgl5VrTegJJ9ozA1AtDf49KzfPFMtNyKhR+FGRIJeZf2mmUdmSx0n3NS33PSweLul1HIjEnoUbkQk6FW5vPtKxVHpPdCMAcW+Vh613IiEHoUbEQl6VS43CdQPJj7WvlI+9eEm0SwBtHmmSChSuBGRoFflqiPJN1MqItG7ns2x1HdLxXm0eaZIqFK4EZGg59000zuG5rhdUuBvuYl2l2kLBpEQpXAjIkGvyukmydctdbyZUuBt2anfgiGRcsqq1XIjEmoUbkQk6FW6mrEjuI/F4j8nxShVy41ICFK4EZGg5+2WasY0cJ+jVinWVHCR0KNwIyJBr8pVRxLNbLkB/6DiFKNEA4pFQpDCjYgEvQYtN80JN76WG9QtJRKKFG5EJOhVOd1Hxtw0p1uqPgAlGuWUqeVGJOQo3IhI0Kt01ZHY3NlS4J0xBSRQrpYbkRCkcCMiQa/a5SbRt4hfZNKJ3xDpDTfxRgUVzjpM0+zA6kSksynciEjQq3K6iPXtK3W8rRd8fC03RgVuj0mVy92B1YlIZ1O4EZHg5yzHatS3vjjiT3x+5JFwA2jcjUiIUbgRkaBndXm3XnBbHRDuOPEb/C033q4sjbsRCS1dItw89NBDZGZm4nA4mDhxIh9++GGz3vfMM89gGAYXX3xxxxYoIl1amNMbbjz2uOa9ob7lJo5KDDxa60YkxAQ83Kxfv55FixaxdOlStmzZwqhRo5g2bRr5+fnHfd/evXu56aabOPPMMzupUhHpqux13mngnuZ0SYG/5caKhxiqtEqxSIgJeLhZsWIF8+fPZ968eQwdOpTVq1cTGRnJmjVrjvket9vNT3/6U26//Xb69+/fidWKSFdkr62fKdXccBNmA1s04B13o24pkdAS0HDjcrn45JNPyMrK8h+zWCxkZWWxefPmY77vjjvuoEePHvz85z8/4T2cTidlZWUNHiISOmrdHqJMb7ixRDZjppRPfeuNdgYXCT0BDTeFhYW43W5SU1MbHE9NTSU3N7fJ97zzzjs89thjPPLII826x7Jly4iLi/M/MjIy2ly3iHQdVS43cfXTwFsUburPjVfLjUjICXi3VEuUl5fzs5/9jEceeYTk5GasQgosXryY0tJS/2P//v0dXKWIdKYqVx3xhjfcWFvRcuNdpVgtNyKhJCyQN09OTsZqtZKXl9fgeF5eHmlpaY3O37VrF3v37uXCCy/0H/N4PACEhYWxfft2BgwY0OA9drsdu93eAdWLSFdQ5XITi3e9mmYt4Odz1Fo3arkRCS0Bbbmx2WyMHTuW7Oxs/zGPx0N2djaTJk1qdP6QIUP44osv2Lp1q/9x0UUXMXXqVLZu3aouJ5FuqMrpJq6+5abZA4rBv02Dt1tKLTcioSSgLTcAixYtYs6cOYwbN44JEyawcuVKKisrmTdvHgCzZ88mPT2dZcuW4XA4GD58eIP3x8fHAzQ6LiLdQ6Wrjnj/1gvxzX/jUd1SmgouEloCHm5mzZpFQUEBS5YsITc3l9GjR7Nhwwb/IOOcnBwslqAaGiQinaja5SbFaMG+Uj5HbZ6plhuR0BLwcAOwcOFCFi5c2ORrmzZtOu57161b1/4FiUjQqHTVMZBWdEv5W24qKKtWy41IKFGTiIgEtSrXUWNuWtItVT+zKsGo0MaZIiFG4UZEglp1jZNYo8r7pBUtN/GGFvETCTUKNyIS1GqrSo48aVHLzZFuqUqXmzq3p13rEpHAUbgRkeBWH26clkiwhjf/ffUtNxGGCzsuzZgSCSEKNyIS1MyaYgCcYTEte6M9BizeORUJ2l9KJKQo3IhIULNUlwDgCo9r2RsN48iMKQ0qFgkpCjciEtQsrlIAam2xLX/zUWvdlKrlRiRkKNyISFALd5YA4La1sOUGGq5SrLVuREKGwo2IBLXw2jIAPI5WhJtIdUuJhCKFGxEJarY6b7gxHS3YesGnfruGeCo0oFgkhCjciEhQc9SVA2C0ZI0bn/qWm0SjXGNuREKIwo2IBLVItzfcWCJb03Jz1CrF6pYSCRkKNyIS1KI83nATFpXY8jdHavNMkVCkcCMiQS3arAAgPLoV4Ubr3IiEJIUbEQlatW4PsXjDja014SYyCYB4NOZGJJQo3IhI0KpyuYmjEgB7THLLL3D0VHCFG5GQoXAjIkGrurqGKMMJgC269QOKY6miotrZnqWJSAAp3IhI0KopP3zkSWsW8atf58ZimFBT0j5FiUjAKdyISNBylhcCUE4kWKwtv4A1DNPu3ZMqyl1GTa27PcsTkQBRuBGRoOWsKAKgwohp/UV8m2eiGVMioULhRkSClruyGIAqa+vDjeGfDq7NM0VChcKNiAQtd6W35aa6DeHm6BlTmg4uEhoUbkQkaHmqSwBwhsW2/iIR6pYSCTUKNyIStIz6cOMKb0O4iTy6W0rhRiQUKNyISNCyOEsAqLO1Yhq4T8TR+0sp3IiEAoUbEQlaVmcpAB5HfOsv4pstZVRQVqMBxSKhQOFGRIJWeK0v3LSl5ca7kJ9abkRCh8KNiAQte205AEZEK7Ze8PG33JRrQLFIiFC4EZGg5agrA8DSlnBTP+Ym0dDO4CKhQuFGRIJWpMfbchMWndiGixw1FbxK4UYkFCjciEjQivJUAGBrS7ipb7mxG3W4asrboywRCTCFGxEJTrXV2HEBYItpQ7ixReGx2AAwqoraozIRCTCFGxEJTvUL+NWZFiKj41t/HcPA7fCO2bHUFLe9LhEJOIUbEQlKZrU3iJQRSbTD1raL1Y+7CXeVYJpmW0sTkQBTuBGRoOSq8HYhlZpRRNmtbbqWJTIJgDiznEqXu821iUhgKdyISFBylh8GoJQoomxhbbqWJerIKsWaDi4S/BRuRCQo+Vpuyo0YLBajTdcyIo/sL1Vc6WpzbSISWAo3IhKUaiu94abKEt32i0Uc2RlcLTciwU/hRkSCkqfSO6C4xhrb9osdtXlmiRbyEwl6CjciEpTM+qngNeHtEG4ijnRLlVSrW0ok2CnciEhwqikBwNUe4eaozTPVciMS/BRuRCQo+Rbcq7PFtf1iR7XcaMyNSPBrVbjZvXt3e9chItIiVmcpAB57O4Qb32wpQ7OlREJBq8LNwIEDmTp1Kk8++SQ1NTXtXZOIyAmF15YB4HHEt/1i9S03sUYVZVX6mSYS7FoVbrZs2cLIkSNZtGgRaWlp/PKXv+TDDz9s79pERI7JVh9ujMj4tl8sIh4T71o57gptnikS7FoVbkaPHs2f/vQnDh48yJo1azh06BBnnHEGw4cPZ8WKFRQUFLR3nSIiR5gmEXXecGONSGj79SxW6mzegclm9eG2X09EAqpNA4rDwsK49NJLefbZZ/njH//Izp07uemmm8jIyGD27NkcOnSoveoUETnCVYkV7x5Q1qikdrmkx7czeLV2BhcJdm0KNx9//DG/+tWv6NmzJytWrOCmm25i165dvPnmmxw8eJAZM2a0V50iIkf4poGbVhwR7bBCMRy1M3ixdgYXCXKt2m1uxYoVrF27lu3btzN9+nSeeOIJpk+fjsXizUr9+vVj3bp1ZGZmtmetIiJe9a0rpUQRHRHeLpf0tQBFe8qoqfUQYWvbTuMiEjitCjerVq3iqquuYu7cufTs2bPJc3r06MFjjz3WpuJERJpUvzpxqRlNlL1tO4L7WKOO2jyzykWELaJdrisina9VPxXefPNN+vTp42+p8TFNk/3799OnTx9sNhtz5sxplyJFRBqo75YqJYpoe/u0sBiRyYB3rZuSqlp6xSvciASrVo25GTBgAIWFhY2OFxUV0a9fvzYXJSJyXL5uKTOq3VpuiPQOKI6nXPtLiQS5VoWbYw22q6iowOFwtKkgEZETqg83JUQT3V7hJuLIKsWl2l9KJKi16KfCokWLADAMgyVLlhAZGel/ze1288EHHzB69OgWF/HQQw9x3333kZuby6hRo3jwwQeZMGFCk+e+8MIL3H333ezcuZPa2loGDRrEjTfeyM9+9rMW31dEgpOn8jAWoNiMab9w4988s4Ld2l9KJKi16KfCp59+Cnhbbr744gtsNpv/NZvNxqhRo7jppptaVMD69etZtGgRq1evZuLEiaxcuZJp06axfft2evTo0ej8xMREfvvb3zJkyBBsNhuvvPIK8+bNo0ePHkybNq1F9xaR4FRXXogNKG7HAcVHNs/UzuAiwa5FPxU2btwIwLx58/jTn/5EbGxsmwtYsWIF8+fPZ968eQCsXr2aV199lTVr1nDLLbc0On/KlCkNnv/617/m8ccf55133lG4Eekm3FXeVYTLLLGEW9u0XNcRR22eWVKlMTciwaxVPxXWrl3bLsHG5XLxySefkJWVdaQgi4WsrCw2b958wvebpkl2djbbt2/nrLPOanM9IhIczErv/k/O8HbYEdynvuUmngpKtDO4SFBrdsvNpZdeyrp164iNjeXSSy897rkvvPBCs65ZWFiI2+0mNTW1wfHU1FS++eabY76vtLSU9PR0nE4nVquVhx9+mHPOOafJc51OJ06n0/+8rKysWbWJSNdlVHvDTU14O+wr5eNbodhwU1NV0n7XFZFO1+xwExcXh2EY/v8OpJiYGLZu3UpFRQXZ2dksWrSI/v37N+qyAli2bBm333575xcpIh3GWuMNNy5bfPtdNDwCt9WB1V2jncFFglyzw83atWub/O+2SE5Oxmq1kpeX1+B4Xl4eaWlpx3yfxWJh4MCBgHeH8q+//pply5Y1GW4WL17sn+UF3pabjIyMdqlfRALA4yHMVQqA29GOLTdAnT0ea1Wuv2VIRIJTq8bcVFdXU1VV5X++b98+Vq5cyRtvvNGi69hsNsaOHUt2drb/mMfjITs7m0mTJjX7Oh6Pp0HX09HsdjuxsbENHiISxJylWEzvjuBmRPuGG4/D2zVlqdHO4CLBrFVzKGfMmMGll17KNddcQ0lJCRMmTMBms1FYWMiKFSu49tprm32tRYsWMWfOHMaNG8eECRNYuXIllZWV/tlTs2fPJj09nWXLlgHebqZx48YxYMAAnE4nr732Gn//+99ZtWpVa74UEQk2Vd5WlQrTgd0ReYKTW8aITIQi787gIhK8WhVutmzZwgMPPADAc889R1paGp9++inPP/88S5YsaVG4mTVrFgUFBSxZsoTc3FxGjx7Nhg0b/IOMc3JyGuxhVVlZya9+9Su+++47IiIiGDJkCE8++SSzZs1qzZciIsGmPtyUEE1cO+0I7mON9u4MHuUup6bWjSNcO4OLBKNWhZuqqipiYmIAeOONN7j00kuxWCyceuqp7Nu3r8XXW7hwIQsXLmzytU2bNjV4/oc//IE//OEPLb6HiISI+vEwRWZMu4ebsChvuEkwvAv5pcUp3IgEo1aNuRk4cCAvvvgi+/fv5/XXX+fcc88FID8/X2NaRKRj1S/gV2K2f8uNEXnUWjfaPFMkaLUq3CxZsoSbbrqJzMxMJk6c6B/8+8YbbzBmzJh2LVBEpIH6bqki2r/lxrfWTaKhLRhEglmruqUuu+wyzjjjDA4dOsSoUaP8x88++2wuueSSditORKSR+pabYjOGtPYON0evUqwtGESCVqt3nEtLS2u0Fs2xdvIWEWk3R4WbwR3UcpNglLNfWzCIBK1WhZvKykruuecesrOzyc/Px+PxNHh99+7d7VKciEgj9QOKi4kmtt3DjW9AcQVFFQo3IsGqVeHm6quv5j//+Q8/+9nP6Nmzp39bBhGRDlc/5qa4A2ZLUb8oYDwVHFbLjUjQalW4+de//sWrr77K6aef3t71iIgcl6fqMBa8LTfxkR3TLRVt1FBaUdm+1xaRTtOq2VIJCQkkJia2dy0iIidkVnrH3JQasUTbWz1ssGn2OMz6H4u15YXte20R6TStCjd33nknS5YsabC/lIhIhzNN/75PtbaE9u8St1iotccBUFcfokQk+LTqnz3Lly9n165dpKamkpmZSXh4w6bhLVu2tEtxIiINOMswPHVA+2+a6WM6EsFZ7B/bIyLBp1Xh5uKLL27nMkREmqE+cFSZdiIiozvkFkZkIpTuIqymCNM0NWFCJAi1KtwsXbq0vesQETmxqg6cBl7PGtMDDkGcWUa5s45YR8fcR0Q6TqvG3ACUlJTw6KOPsnjxYoqKvD9wtmzZwoEDB9qtOBGRBqo7cBp4PWtMCgBJlGmtG5Eg1aqWm88//5ysrCzi4uLYu3cv8+fPJzExkRdeeIGcnByeeOKJ9q5TROSo1Ynbf9NMv6j6cGOUcrjSRWZyVMfcR0Q6TKtabhYtWsTcuXPZsWMHDofDf3z69Om8/fbb7VaciEgD/m6pmPZf48bHH27KKdJCfiJBqVXh5qOPPuKXv/xlo+Pp6enk5ua2uSgRkSZ1RstN/RYMSZRRVOnsmHuISIdqVbix2+2UlZU1Ov7tt9+SkpLS5qJERJrkCzd03Jibo7ulCjXmRiQotSrcXHTRRdxxxx3U1tYCYBgGOTk53HzzzcycObNdCxQR8euEAcVHwk2ZuqVEglSrws3y5cupqKggJSWF6upqJk+ezMCBA4mJieGuu+5q7xpFRLwqvVsiFJkxHTYV3BduEqigpEKrsIsEo1bNloqLi+PNN9/k3Xff5bPPPqOiooJTTjmFrKys9q5PROSIijwA8s2EDhxzk4iJgcUwcZZrCwaRYNTicOPxeFi3bh0vvPACe/fuxTAM+vXrR1pamlbzFJEOZVbkYwAFxHVcuLFYqbXHY3MWY1bkd8w9RKRDtahbyjRNLrroIq6++moOHDjAiBEjGDZsGPv27WPu3LlccsklHVWniHR3rioMp3ciQ4EZ33HhBnBHJANgqVLLjUgwalHLzbp163j77bfJzs5m6tSpDV7797//zcUXX8wTTzzB7Nmz27VIEREqva0oNWY4VZZIou2t6lVvFiMqBUp2EFZzWC3SIkGoRS03//u//8utt97aKNgA/OAHP+CWW27hqaeearfiRET86ruIvK02tg4NHGGxPQCI85RQ5XJ32H1EpGO0KNx8/vnnnHfeecd8/fzzz+ezzz5rc1EiIo3UDyYu7MjxNvWs0ZoOLhLMWhRuioqKSE1NPebrqampFBcXt7koEZFG/C03cR03DbyeEe1tuUnCu7+UiASXFoUbt9tNWNix+7mtVit1dXVtLkpEpJEG3VIdG258WzAkG9qCQSQYtWhEnmmazJ07F7vd3uTrTqd+CIhIB6nvlurQaeA+9Qv5JRrl7NEWDCJBp0XhZs6cOSc8RzOlRKRDNGi56biZUsCRLRgo5RN1S4kEnRb9hFi7dm1H1SEicny+lhszjkGd1HKjAcUiwalVe0uJiHS6o1pu4iNsHXuvKO8ifrFGNcVlZR17LxFpdwo3ItL1meZRY246YUCxIw6P4W3YdpZqCwaRYKNwIyJdn7MM3N4JCwVmHMkxHdxyYxjUOrwzpurKFW5Ego3CjYh0ffVdUuVE4sRGUlTTMzbbkxnp7ZqisrDD7yUi7UvhRkS6Pv9g4ngAkmM6PtxYY7yDiu3OIpx12oJBJJgo3IhI1+cPN7EAJEV1cLcUR/aXSjLKKCjXGl4iwUThRkS6vqNmSsXYw3CEWzv8lkaUN9wkG6XklSnciAQThRsR6fqOWuOmM7qkAP9aN8lGKQXlNZ1zTxFpFwo3ItL1HdVy0xldUgDEpAGQSjH56pYSCSoKNyLS9fnCDXEkR3dSy019uOlhlJCvbimRoKJwIyJd31GzpZKiO6nlJrq+5cYoJl/dUiJBReFGRLq+o7qlOrvlJs6ooqhEWzCIBBOFGxHp2tx1UOkNN/lmPMmd1XLjiMNt9QapurLczrmniLQLhRsR6drKD4HpoZYwContvJYbw8AdmQqAtVLhRiSYKNyISNdW+h0AeUYyJpbOmwoOGLHeril7TQG1bk+n3VdE2kbhRkS6tvpwc8Dj3ciy06aCA2GxPQHoQTGFFZoxJRIsFG5EpGsr3Q/Ad55EoHP2lfIxfOFG08FFgorCjYh0bb6WGzMJm9VCjD2s8+4d7R1z450OrnAjEiwUbkSka6sPNwfNZJKjbRiG0Xn3jvG23KRQorVuRIKIwo2IdG3+cJNEUmfNlPKJ8bbcqFtKJLgo3IhI1+bvlkruvDVufOpbbrRKsUhwUbgRka6rpgycpQAcMpM6b40bn/oxNwlGBUWl5Z17bxFpNYUbEem6yg4AUGWNpQpH53dLRSTgtnhbi+pKtZCfSLDoEuHmoYceIjMzE4fDwcSJE/nwww+Pee4jjzzCmWeeSUJCAgkJCWRlZR33fBEJYvVdUkVhKQCd3y111CrFnnKFG5FgEfBws379ehYtWsTSpUvZsmULo0aNYtq0aeTn5zd5/qZNm/jxj3/Mxo0b2bx5MxkZGZx77rkcOHCgkysXkQ5Xv8ZNHr5w08ktN4DFt0pxdT41te5Ov7+ItFzAw82KFSuYP38+8+bNY+jQoaxevZrIyEjWrFnT5PlPPfUUv/rVrxg9ejRDhgzh0UcfxePxkJ2d3cmVi0iHq2+5+c6sX8AvAOHGGudbyK+YQ6UaVCwSDAIablwuF5988glZWVn+YxaLhaysLDZv3tysa1RVVVFbW0tiYmJHlSkigVIfbvbWev//TursbinAiPG23KQaxRworu70+4tIy3XiUp+NFRYW4na7SU1NbXA8NTWVb775plnXuPnmm+nVq1eDgHQ0p9OJ03lkfYqysrLWFywinas+3Ox0xgOQ0olbL/jVh5selHCwROFGJBgEvFuqLe655x6eeeYZ/vnPf+JwOJo8Z9myZcTFxfkfGRkZnVyliLRa/ZibA2YytjBLp26a6RddH26MEr5TuBEJCgENN8nJyVitVvLy8hocz8vLIy0t7bjvvf/++7nnnnt44403GDly5DHPW7x4MaWlpf7H/v3726V2EelgHjeUHQS8qxP3jHN07tYLPkd1S6nlRiQ4BDTc2Gw2xo4d22AwsG9w8KRJk475vnvvvZc777yTDRs2MG7cuOPew263Exsb2+AhIkGgIg88dXgMK/kk0DOu6dbZDhebDkBP47DG3IgEiYCOuQFYtGgRc+bMYdy4cUyYMIGVK1dSWVnJvHnzAJg9ezbp6eksW7YMgD/+8Y8sWbKEp59+mszMTHJzvWtPREdHEx0dHbCvQ0TaWf14m0pbCp5qCz3jIgJTR1xv7x9GFSUlhwNTg4i0SMDDzaxZsygoKGDJkiXk5uYyevRoNmzY4B9knJOTg8VypIFp1apVuFwuLrvssgbXWbp0Kbfddltnli4iHaloNwAF4b0AAtdyY4/G7UjAWlOMpfQAHo+JxRKA7jERabaAhxuAhQsXsnDhwiZf27RpU4Pne/fu7fiCRCTw6sPNd4Z3nZmAhRvAEtcbaopJMfMprHDSIzZwtYjIiQX1bCkRCWH14WaXuwdA4LqlACPeO8sy3TisGVMiQUDhRkS6pvpws60mCYC0ALbc+MbdpBuFGlQsEgQUbkSka6oPN59XJwPQKz5wLTfEeVtuehmFmg4uEgQUbkSk66kqgupiAHLMHtjDLCREhgeunvqWm17GYQ4o3Ih0eQo3ItL1FO0BwBWRSjWOwC3g5xPnG3OjlhuRYKBwIyJdT32XVFmkN1QEcjAxAPUDitMo4mBRRWBrEZETUrgRka7Hv8ZN/erAgRxMDBDVA9MSjtUwqSs9GNhaROSEFG5EpOvxr3Hj3depZ3yAw43Fglm/DUOcM5fymtrA1iMix6VwIyJdT3242en2rlQe8G4pwBJ/ZMbU/iKNuxHpyhRuRKTr8a1x4/ROAw94txQcNaj4MPsOVwa4GBE5HoUbEelaakqhqhCAreUJQNdouTl6Ib+9h6sCXIyIHI/CjYh0LfWtNmZUD/ZXWYEu0nJzVLeUWm5EujaFGxHpWurDjTO2LwCOcAvxgVzAz+eohfz2KtyIdGkKNyLStRyuX+Mmor6lJC4isAv4+Ry1kF9OocKNSFemcCMiXUvhtwAcDPeGiT5JkYGs5oj6lptoo4bKssPU1LoDXJCIHIvCjYh0LQXfALDL411XJjMpKpDVHBEegRntnZrex8hnf5EGFYt0VQo3ItJ1eDxQuAOAz531QSKxi7TcAEZifwAyjVzNmBLpwhRuRKTrKN0PddVgtfFJWTwAmcldJ9xQH276GnmaMSXShSnciEjXUbAdADNpIHuKagDok9hFuqXAH276WXI1Y0qkC1O4EZGuo9AbbpzxA6l0uTEMyEjsAgv4+TRouVG3lEhXpXAjIl1HfctNUWQm4J0Gbg+zBrCg7zlqzI3CjUjXpXAjIl1HfbjZb+kDQN+uMg3cpz7cJBtllBYX4qrzBLggEWmKwo2IdA2m6e+W2u7uCUDfrjIN3McRixmVAkBv8jhQot3BRboihRsR6Roq8r2bZhoWPqv27gbe5VpuACNxAAD9DA0qFumqFG5EpGuob7Uhvi87i72r/2Z2wXBz9KDiPQUKNyJdkcKNiHQN9eNtSBlCTn2LSJfrloIGg4p3F1YEuBgRaYrCjYh0DQVHpoEXV9UCXWt1Yr+k+nBjyWW3Wm5EuiSFGxHpGuq7pfIdfQFIibETZQ8LZEVN87fc5LGrQC03Il2Rwo2IdA152wDYY/GGm75dsdUG/OEmxSiloqyECmddgAsSke9TuBGRwKvIh6pCwOArl3caeJ+uOJgYwBEHkd7ZXJlGHrvVeiPS5SjciEjg5X3l/TOxP18VesfbnJQaE8CCTuDoQcUadyPS5SjciEjg5Xu7pEgdyvbccgAGp3XhcJM8CIABxkGNuxHpghRuRCTw6sfb1CWfzO5Cb0vIkK4cblKGAHCS5Tu13Ih0QQo3IhJ4+d5uqUP2Abg9JrGOMNJiHQEu6jjqw81A44BabkS6IIUbEQksjxvyvwHgG7M3AEPSYjEMI5BVHV8Pb7jpbxxkf2Epbo8Z4IJE5GgKNyISWMV7oa4awiL4pDwe6OLjbQBie2OGR2Ez3KS5D3FQG2iKdCkKNyISWL6ZUimD+SavCgiCcGOxYKScBMAgdU2JdDkKNyISWP6ZUsP8M6W69GBin5STARhkfMcuDSoW6VIUbkQksOpbbqoTBnOotAaAk4Ii3AwGvDOm1HIj0rUo3IhIYNW33OwLywQgPT6CWEd4AAtqph7elpuBxgF25SvciHQlCjciEjiuKijaDcAXtelAEIy38alvuelvHGJPXmmAixGRoynciEjg5G8D0wNRKWwtsgFBFG7i+mCGR2I36oiu3s/hCmegKxKRego3IhI4uZ97/0wbydfBNJgYvDOmkn0zpr5jp7qmRLoMhRsRCZxD3nDjTh3OlwfLABjZOz6ABbVQ/UrFg4wD7NSgYpEuQ+FGRAIn9wsAvrMPwlXnISEynMykyAAX1QL1KxUPtuxnR57CjUhXoXAjIoHhcfungX/i9G67MKZPQtfeduH7UocDcLKRo24pkS5E4UZEAuPwTu+2C+FR/KcwFoAxGfGBraml0kYA0M84RE5eYYCLEREfhRsRCYxDvsHEw9nynXcq9Zg+CQEsqBWiU/FEpmA1TBIqdlJWUxvoikQEhRsRCZT6mVLViUPZX1SNYcDIjLgAF9VChoElzds1NdSyT11TIl2Ewo2IBEZ9uNkTPgCAQT2ig2Nl4u+r75o62chhpwYVi3QJCjci0vlM0z9T6uOa+sHEGUHWJeWTNhLwttzsyC8PcDEiAgo3IhIIZQeh6jAYVt46nATAmD7xga2ptdJ8M6b2sSuvLMDFiAgo3IhIIBz6DAAz+SQ+PlAFBOFgYp+kQXgsNqIMJxW5uwJdjYjQBcLNQw89RGZmJg6Hg4kTJ/Lhhx8e89yvvvqKmTNnkpmZiWEYrFy5svMKFZH2c3ALAEXxw6hyuYl1hDGwR3SAi2olaxieFO8O4UkV26lw1gW4IBEJaLhZv349ixYtYunSpWzZsoVRo0Yxbdo08vPzmzy/qqqK/v37c88995CWltbJ1YpIuzngDTdfMhCAU/snYbUE0eJ93xPWyzvu5mTLPr7N07gbkUALaLhZsWIF8+fPZ968eQwdOpTVq1cTGRnJmjVrmjx//Pjx3HfffVxxxRXY7fZOrlZE2oVpwoFPAHirzDuY+LQBSYGsqO18g4qNfXybq3AjEmgBCzcul4tPPvmErKysI8VYLGRlZbF58+ZAlSUiHa1oN9SUYFptvHgwHoDTBiYHtqa2qh9UPMyyj+1quREJuICFm8LCQtxuN6mpqQ2Op6amkpub2273cTqdlJWVNXiISAAd/BSAyoShlNdaSI62MShYx9v4pI3AxKCnUUTugX2Brkak2wv4gOKOtmzZMuLi4vyPjIyMQJck0r3Vd0ntCD8JgEkDkoNrs8ym2GNwxnsXI7TnfxbgYkQkYOEmOTkZq9VKXl5eg+N5eXntOlh48eLFlJaW+h/79+9vt2uLSCvUh5t3qvoAMKl/kI+3qReWMRaATNe3FFY4A1yNSPcWsHBjs9kYO3Ys2dnZ/mMej4fs7GwmTZrUbvex2+3ExsY2eIhIgLhr/Rtm/l9hTyAEBhPXC+vtDTcjjd0aVCwSYAHtllq0aBGPPPIIjz/+OF9//TXXXnstlZWVzJs3D4DZs2ezePFi//kul4utW7eydetWXC4XBw4cYOvWrezcuTNQX4KItET+11BXTV14NDvcqfSMc9A3KTLQVbWPXqcAMNKym+25GtsnEkhhgbz5rFmzKCgoYMmSJeTm5jJ69Gg2bNjgH2Sck5ODxXIkfx08eJAxY8b4n99///3cf//9TJ48mU2bNnV2+SLSUvVdUjmOIZjlFs4cFALjbXzShuM2rCRTRt53u4D+ga5IpNsKaLgBWLhwIQsXLmzyte8HlszMTEzT7ISqRKRDfPcRAJudmQBMGdwjgMW0s/AIKmJPIq70a4yDW4BzAl2RSLcV8rOlRKQL2fceAG9W9MNqMTg92Ne3+b5eowFILP1K/xATCSCFGxHpHGWHoHgPJgafeAYztk8CcRHhga6qXUX1nwDAyZ6dfFdcHeBqRLovhRsR6Rw53labHNsAyolk8uCUABfU/sLSfYOK97DtYGmAqxHpvhRuRKRz1HdJ/admEABTQjDckDqMWsNGrFHFgV1fBLoakW5L4UZEOsc+755x79YNpkeMnaE9Q3DNKWs4xXFDATBzPgxwMSLdl8KNiHS8qiLI/wqAjz2DmTI4JXSmgH+Pp/dEAJKKPg1wJSLdl8KNiHS8nPcB2Gukc5g4zj459QRvCF4JQ84EYLh7G/llNQGuRqR7UrgRkY5XP5j4vdrBOMItnDUoBMfb1LP3Ow2AgZaDbN+jHcJFAkHhRkQ63t53APjAM4QzB6UQYbMGuKAOFJVEns27KWjJ9ncCXIxI96RwIyIdq6IADm4FYLNnGNOGpQW2nk5QkuydEh5+UIOKRQJB4UZEOtaubMDkS08mhUYCZw8JoS0XjsHadxIAPUu3BrYQkW5K4UZEOtaONwHY6BnNhH6JJETZAlxQx0sdPgWAIZ5dFJeWB7YYkW5I4UZEOo7HDTvfAmCTexTnDg39LimAmF6DKSYOu1FLzlfvBbockW5H4UZEOs53H0NNCSVmFFvNgUwb3j3CDYbBvqgRAFTt+E+AixHpfhRuRKTj7HgDgLc9IxmbmUJ6fESAC+o8Vb3PACD+oGZMiXQ2hRsR6Tj14WajezQXje4V4GI6V9LI6QAMrPkSd43G3Yh0JoUbEekYJfsh93M8psG7jGL6iJ6BrqhTDRgygv1mKuGGm++2vB7ockS6FYUbEekYXz4HwIfmEIYNGkBiN5gldbQwq4VvYyYAUPX1GwGuRqR7UbgRkQ5hfv4PAF50n86M0ekBriYwnH0nA5CUq3E3Ip1J4UZE2l/ulxj523CaYWy0TOKcoaG7Uebx9Bh5LrWmlR61BzCL9gS6HJFuQ+FGRNrfF95Wm42eMUwdfRJR9rAAFxQYw/v3ZiuDACj87F8Brkak+1C4EZH25fHg/uxZwNsldeWpfQNcUOA4wq3sjJkIgOvrDQGuRqT7ULgRkfa1979YKw5SZkZyuNcUhqfHBbqigKoZcB4AqfnvQlVRgKsR6R4UbkSkXZnvrwLgZfckrpg0KMDVBN6QkRPZ5ulLGHXUffVioMsR6RYUbkSk/RR8i/Htv/CYBs+GX8gFI7vX2jZNGZ+ZwBvWswCo/OjpAFcj0j0o3IhIuzE3/wWAtzyncPrESTjCrQGuKPDCrBZqBl+MxzSIy//Iu7ihiHQohRsRaR8V+Xi2/i8Af7fMYP6Z/QNcUNdx+thRfGgOAcD9+bMBrkYk9CnciEi7MDc/jNXj4lPPQMacNo2EbrYi8fGc2j/J3zVVs+V/wTQDXJFIaFO4EZG2K96LZ/NDAKy1XMLPzxwQ4IK6lnCrBfeQi6g2bUSVfAu7NwW6JJGQpnAjIm1W+69bsXpcvOMexoDTf0RcZHigS+pypow+iWfcUwHw/HdFgKsRCW0KNyLSNrs2Ev7tq9SZFh6J/iW/mKxWm6acPiCZFyMupda0Ytn7Nnz3caBLEglZCjci0nrOCqpf+g0AT7jP5ZeXXUCETTOkmmILs3DxlIm86D4dAM/bywNckUjoUrgRkdYxTVwv30BE2R4OmYnkjLye0wYkB7qqLu3HE/rwjH0mHtPA8u1rcHBroEsSCUkKNyLSKp4tT2D76lnqTAt32G/kNz+cEOiSujxHuJXzp5zFy55JAJiv/AY87gBXJRJ6FG5EpOVy3sfz6v8A8CfPj1gw52caRNxMP5nYh1Xh8ygzIzAOboGP1wS6JJGQo3AjIi2T+wWuJy4jzOPkLfcYMmf8tttvjtkSkbYwfnXR6dxXNwuAujdvg/LcwBYlEmIUbkSk+Qq+xbnuYmx15XzkOYmPx61g5rg+ga4q6MwYnU7dmLl85ulPWG0Fzhd+BR5PoMsSCRkKNyLSPPs/pO7Rc7DXFLLN05cXhqzg/104JtBVBa0lF43kodgbqDHDse/Jpua/fwp0SSIhQ+FGRE5s20t4Hr+QMGcJWz0DWNXnfu6YdToWixHoyoJWhM3KLXNmstwyD4CwjXfi3PtBgKsSCQ0KNyJybHVO+NfN8I/ZWOpqyHaP4Z7U+/jj7B8QbtWPj7bqnxLNRVf9lg3mqYThpvLvV1JXlhfoskSCnn46iUjTvvsYHjkbPlgNwOq6H3Jv/BJWzzuTSFtYgIsLHSMy4km4YjW7zZ4kuvPJWX0ZZp0z0GWJBDWFGxFpqOwg/N8N8GgW5H1BCdFc5bqJZ+KuZt3Vk4iP1G7f7W3iyf04MO1Rys0I+ld9zqd/+6V2DhdpA4UbEfH+Ij30ObyyCP40Cj5ZC5j80zOZs2vu41DqFJ695jR6xkUEutKQdeZpZ7B1/L14TINT8v/JB/97Z6BLEglaalsW6c4Kd8AXz8GXz8PhHf7D39iHs6TsEj40T+a0AUms+ulYLdLXCc784WzeK9rJabv/xPjtK/h0Qx/GnDc30GWJBB2FG5HupiQHvnwBvnwOcr/wH/ZY7Xxin8Dyksm8XzMUW5iF3583hHmnZWpWVCeadOVtvP9QDqce/icnb76JL6MTGX7GRYEuSySoKNyIdAeVh71h5svnYf9R040tYZT0OounKsaxKvckKiojsRgwY3Qvrj97EANSogNXczdlWCyMu+ZvfPpAHmOq3mPAmz/nK/NRhp05I9CliQQNhRuRUJbzgXe20zevgNtVf9CAzDMoHTiDP+4bxNNfVAIQbjWYNaY3104ZQGZyVOBqFsLCbZx83fNs/fPFjK7+gAFv/ZytNRWMPuengS5NJCgYptm9huSXlZURFxdHaWkpsbGxgS5HpGPkvA+blsHuTUeO9RwFo36Mc/CFPPZZDX/5906qXG4MA340NoPrswaRHq8Bw11JTXUV3/z5EkZXvw/Auz3nMOGq+wkPb4cZa3UuKPgaDm6FQ1vh8C4Ij4SIBMgYDyfPgKiktt9HpJ205Pe3wo1IKNm3Gf5zz5FQYwmDUVfA+PnQazT//iaPO/5vG3sPVwFwSp94br9oOCN6a+PLrsrlrGHLY9dxav4/APjWOhDXWbcy/KxLwWjmWKiqIijYDgXfwKHPvGEm76ujWvOaYFhhyHQ4+zZIHtjmr0OkrRRujkPhRkJSU6Fm9E/hzBshoS+7Cyq485VtbNxeAEBKjJ3F5w/h4tHpGiwcJD7bsIaB7y8mihoA9oYPwHrSufQeNRUjKhnCo8BZBpUFULQHCr898qg63PRFHXHeFr2eo6HHyd6wU54L21/zhiDwfi+Nnw+T/x9EJnbOFyvSBIWb41C4kZDhccM3r8L7D0POZu8xSxiMuRLOWAQJfalw1vHgv3ew5p091LpNwq0GV53Rj+t+MIhou4bcBZuS/AN8/dwdjMl7HodR27I3x2VA8iBIG+ENM71GQ0K/Y7f+5G2Dt26DHa97nzviYcpiGP9zsGpZAOl8CjfHoXAjQa2mFL77CL55Db7+P6jM9x63hMOYn/pDTaWzjic27+Nvb++iuMr7S3DK4BSW/HAo/TUDKuh9tz+Hj95aj2Xvfxhs7iXaqCbaqMG0xWCL7UFkj0yM5MGQfBKknARJA8HWykHiu/4Nr/8W8rd5nycNhHP/ACed1/xuMZF2oHBzHAo3EhTqnN7uhPxvvOMkCr+t/3MHcNT/shGJMO4qGH81VY4UPs0p4eWtB3nti0OUO+sA6Jccxe8uOJkfDOmBoV9GIaW0upZnPszh8ff2crC0xn+8d0IEF4zsyfnDezIiPQ5rW7se3XXw6RPw77ugqrD+JuNh/NUw9GIId7Tt+iLNEHTh5qGHHuK+++4jNzeXUaNG8eCDDzJhwoRjnv/ss8/y+9//nr179zJo0CD++Mc/Mn369GbdS+FGuhR3rXeWSsHXkO99mPlfQ9FuDNPd5FtKHOnsixnLV/FT2WYfRW6lh++Kq9mRX4Hbc+R/58ykSK77wSBmjO5FmHbwDmm1bg8bv8nnlc8P8dbXeVS5jnzvxDjCmJCZyKDUGPqnRBEXEY4j3IoB1Hk81LpN6twmHtMk2hFGrCOctDgHabGOxqGopgz+u9zbFeobjGyLgYE/gEHTYNC5EJ3SeV+4dCtBFW7Wr1/P7NmzWb16NRMnTmTlypU8++yzbN++nR49ejQ6/7333uOss85i2bJl/PCHP+Tpp5/mj3/8I1u2bGH48OEnvJ/CTRuZJpge78MSpmbp5vK4oXgvtbnbqPzuC+oOfUV40bdEl+/GatY1+ZZSM5LtZgY7PL3ZafZit9mLLz2ZHObYM5t6xNiZOrgHl5ySzoTMRA0W7oaqXW42bs/nlc8P8t9vC/0teC0VZjHoFR9BRmIEGQmRZCRG0jshgt4JkfS1l5O0/RmMTx6Hsu+OepcB6adA39MgfRz0Hgex6c3/OeFxe1snD231Dmgu2uNdUdtV4b1GWATEZ0B8H0gZAqnDIXWod2C0hLygCjcTJ05k/Pjx/OUvfwHA4/GQkZHBddddxy233NLo/FmzZlFZWckrr7ziP3bqqacyevRoVq9efcL7Kdw0g7sOinbXtyZ84/2zaDeUHfLOxPB1i4Q5IDIZYtK8P2wS+nr/jO8D8Zm4Y9OxhDuCvivE7TGpdNVR6azD7TEJs1iwWgzCDAizGoRbDcItBnU1ZTjLi6jI30fZwW+pLdiJtWQvMZX76OHch52mp91WmA52mL351tObb83ebDcz2EVvjOg0UuMjSIm24wi3EmY1sFkt9X9aCQ8ziAwPIyXGTmqsnWG94kiLU/eAHFHn9vDVwTK25BSzu6CSvYcrqXDWUVPrwTRNwuu/n8ItFgwDKl11lFTVkldWQ637+L8a7GEWMuLtnBGZw2meTxhZ9T5pVd82Os8TlYrZcxSWxH4YCX296+jYY8BTB7U1UJELxfu8U9UPfQa1lS3+Os24DEgejCeuN57YDNyxGbhje+NI6IU1OsU73ijIfw41W3WJNxD6HuWHwFUJtdUQZvOuZRSVDLG9IbYXxKV7A2iYPdCVn1DQhBuXy0VkZCTPPfccF198sf/4nDlzKCkp4aWXXmr0nj59+rBo0SJuuOEG/7GlS5fy4osv8tlnn53wnh0VbkoKc9nz8QY8ponH4/3B4a7/0/R4m3zdHg9ut8f7324Pbo8Hj8eDx2NiMUysFrAaYDUMrBYTq+Hdtv3IcbAYR54bmPU5w/S2qOB9mKaJcdRz/2um779p8FpYXRUR1bneR00eETX5WI7RmtBSxWY0pUYM5ZZYKq1xOMNiwRaFER6B1R5FmCOKMGsYhuH7ek0M04NRWwW1lRi1VVjqqjFqK7HUVhHmribMXYXNU4PDrMFuOjENC3VGOHWGDbfFhsdqw2Ox47HaqTPCqSUMJzZchFFDODWeMJweCxa3E4vbSbjpwo7L+6fpwkb9w3QRZtYRTi026ginDiseLEbr/pepMcPZYaaziwxy7f0oiR6AM3Ew9qS+pMVF1D8c9IxzkBxtb/s4CZFWcntM8spq+K64mv1FVewvrmJ/UTX7i6s4UFzNodJqPE38b9CDYs6yfs4YYyejLTsZbOwnzPC06N6Vpp2vzEy+9PRjp5nOd2Yy5WYkBiaRhpN0o5C+Rh6Djf0MseSQbhxjmvtRarBRaomnMiyBalsitfYEsMVgcURjhkfjDo/CtNowLBYMw4JhsWJYrJgYeDDwYME0LJhHt1x7PHh/3roxPCbgwTQ9WNwurHVVhLmrCK+txFpXhaXO+/PLWleFxV2D1e0kzFODxVNLLeE4CcdtCcdtseO2RuAOi8QdHokZHuUNI/ZoLLYoLAZYzDoM043hqSWsrgqHsxB7TQGOmgLsNQXY6ipa9Hn7VIUnUmFPpcLeg3JbKlVhsdQadlyG9ydirWHDYrHUPwysFgvW+udWi4HVasFisXr/22LBEZvCsNMvaFUtx9KS398BnQtaWFiI2+0mNTW1wfHU1FS++eabJt+Tm5vb5Pm5ublNnu90OnE6nf7npaWlgPdDak87v/iAk/5zfbteMxDcQAVQZdrYZfZil9mLnZ5e7DXTyDUTOGzG48IKQJRRQyLlpBol9DIKSDcOk37Un1GGCyvlJFJOIgc7pN6j20Ks9Y+OUFf/OJFqM5zDxFMQlkZ5RG9cMX0wEvtiTzuZuLQB9EqMYmqU7QStWS4qK46zuJpIJ4i2wJCkMIYkxQINf5G46jzkllVzoLiGvLIaCiucHK50cbg8ln2VPfmkYgqHK5zUuao4ybOXgZYD9DYK6GUUEU0VUUYNbqw4zTCKiOE7M4V9nlS2mX3Za/bEg4UYh5WESBtxETYiwr3/Z1d4PGxxuXnHVUeVs46Kaje22jIGGwfIsOSRbhTS0zhMulFEGkUkGaVEGLWAkwjyiCCv8z/IE7AB7bHZiQnU1D8OmzEcMJM4aKaQZ8ZTiYMa00Y4dUQaLpKMUtIoItUooqdRhMOoA+dhHBWHcbCN5Hao51vrSZSNOLMdrnSE7/d2c9pkQn6hi2XLlnH77bc3Op6RkRGAaoLNYeCLE54l31cE7A50ESJdwtedcI9tnXCP4FIOHfQPyub7BO7qmLFQ5eXlxMUd/9oBDTfJyclYrVby8hqm6by8PNLS0pp8T1paWovOX7x4MYsWLfI/93g8FBUVkZSUFPRjQdpbWVkZGRkZ7N+/X+OROpg+686hz7lz6HPuHN39czZNk/Lycnr16nXCcwMabmw2G2PHjiU7O9s/5sbj8ZCdnc3ChQubfM+kSZPIzs5uMObmzTffZNKkSU2eb7fbsdsbDpSKj49vj/JDVmxsbLf8HycQ9Fl3Dn3OnUOfc+fozp/ziVpsfALeLbVo0SLmzJnDuHHjmDBhAitXrqSyspJ58+YBMHv2bNLT01m2bBkAv/71r5k8eTLLly/nggsu4JlnnuHjjz/mb3/7WyC/DBEREekiAh5uZs2aRUFBAUuWLCE3N5fRo0ezYcMG/6DhnJwcLJYjC5CddtppPP300/zud7/j1ltvZdCgQbz44ovNWuNGREREQl/Aww3AwoULj9kNtWnTpkbHLr/8ci6//PIOrqr7sdvtLF26tFE3nrQ/fdadQ59z59Dn3Dn0OTdfwBfxExEREWlP2nBGREREQorCjYiIiIQUhRsREREJKQo3IiIiElIUbgSAu+66i9NOO43IyMhjLnKYk5PDBRdcQGRkJD169OB//ud/qKtrnw02u7PMzEwMw2jwuOeeewJdVtB76KGHyMzMxOFwMHHiRD788MNAlxRybrvttkbfu0OGDAl0WUHv7bff5sILL6RXr14YhsGLL77Y4HXTNFmyZAk9e/YkIiKCrKwsduzYEZhiuyiFGwG8O7RffvnlXHvttU2+7na7ueCCC3C5XLz33ns8/vjjrFu3jiVLlnRypaHpjjvu4NChQ/7HddddF+iSgtr69etZtGgRS5cuZcuWLYwaNYpp06aRn58f6NJCzrBhwxp8777zzjuBLinoVVZWMmrUKB566KEmX7/33nv585//zOrVq/nggw+Iiopi2rRp1NTUdHKlXZgpcpS1a9eacXFxjY6/9tprpsViMXNzc/3HVq1aZcbGxppOp7MTKww9ffv2NR944IFAlxFSJkyYYC5YsMD/3O12m7169TKXLVsWwKpCz9KlS81Ro0YFuoyQBpj//Oc//c89Ho+ZlpZm3nffff5jJSUlpt1uN//3f/83ABV2TWq5kWbZvHkzI0aM8K8cDTBt2jTKysr46quvAlhZaLjnnntISkpizJgx3HffferuawOXy8Unn3xCVlaW/5jFYiErK4vNmzcHsLLQtGPHDnr16kX//v356U9/Sk5OTqBLCml79uwhNze3wfd3XFwcEydO1Pf3UbrECsXS9eXm5jYINoD/eW5ubiBKChnXX389p5xyComJibz33nssXryYQ4cOsWLFikCXFpQKCwtxu91Nfr9+8803AaoqNE2cOJF169YxePBgDh06xO23386ZZ57Jl19+SUxMTKDLC0m+n7dNfX/rZ/ERarkJYbfcckujwX7ff+iHfcdoyWe/aNEipkyZwsiRI7nmmmtYvnw5Dz74IE6nM8BfhcjxnX/++Vx++eWMHDmSadOm8dprr1FSUsI//vGPQJcm3ZxabkLYjTfeyNy5c497Tv/+/Zt1rbS0tEazTfLy8vyvSUNt+ewnTpxIXV0de/fuZfDgwR1QXWhLTk7GarX6vz998vLy9L3aweLj4znppJPYuXNnoEsJWb7v4by8PHr27Ok/npeXx+jRowNUVdejcBPCUlJSSElJaZdrTZo0ibvuuov8/Hx69OgBwJtvvklsbCxDhw5tl3uEkrZ89lu3bsVisfg/Z2kZm83G2LFjyc7O5uKLLwbA4/GQnZ19zA16pX1UVFSwa9cufvaznwW6lJDVr18/0tLSyM7O9oeZsrIyPvjgg2POdu2OFG4E8K5hU1RURE5ODm63m61btwIwcOBAoqOjOffccxk6dCg/+9nPuPfee8nNzeV3v/sdCxYs0A61bbB582Y++OADpk6dSkxMDJs3b+Y3v/kNV155JQkJCYEuL2gtWrSIOXPmMG7cOCZMmMDKlSuprKxk3rx5gS4tpNx0001ceOGF9O3bl4MHD7J06VKsVis//vGPA11aUKuoqGjQ+rVnzx62bt1KYmIiffr04YYbbuAPf/gDgwYNol+/fvz+97+nV69e/jAvaCq4eM2ZM8cEGj02btzoP2fv3r3m+eefb0ZERJjJycnmjTfeaNbW1gau6BDwySefmBMnTjTj4uJMh8Nhnnzyyebdd99t1tTUBLq0oPfggw+affr0MW02mzlhwgTz/fffD3RJIWfWrFlmz549TZvNZqanp5uzZs0yd+7cGeiygt7GjRub/Hk8Z84c0zS908F///vfm6mpqabdbjfPPvtsc/v27YEtuosxTNM0AxWsRERERNqbZkuJiIhISFG4ERERkZCicCMiIiIhReFGREREQorCjYiIiIQUhRsREREJKQo3IiIiElIUbkRERCSkKNyISIcqKCjg2muvpU+fPtjtdtLS0pg2bRrvvvtug/OefPJJhgwZgsPhIDMzkzvvvLPRtfbu3dtgZ/WkpCTOPfdcPv3002Pef9OmTU3uyp6bm9vgvIceeojMzEwcDgcTJ05stFFsTU0NCxYsICkpiejoaGbOnNloc04R6RoUbkSkQ82cOZNPP/2Uxx9/nG+//ZaXX36ZKVOmcPjwYf85e/fuZfbs2Vx88cV8/fXX/OMf/6Bfv37HvOZbb73FoUOHeP3116moqOD888+npKTkuHVs376dQ4cO+R9Hb0y6fv16Fi1axNKlS9myZQujRo1i2rRp5Ofn+8/5zW9+w//93//x7LPP8p///IeDBw9y6aWXtv6DEZGOE+j9H0QkdBUXF5uAuWnTpuOet3fvXtNisZxwf5w9e/aYgPnpp5/6j7377rsmYG7YsKHJ9/j26SkuLj7mdSdMmGAuWLDA/9ztdpu9evUyly1bZpqmaZaUlJjh4eHms88+6z/n66+/NgFz8+bNx61ZRDqfWm5EpMNER0cTHR3Niy++iNPpPOZ56enpjBs3joULF1JTU9Oie0RERADgcrmOe97o0aPp2bMn55xzToMuMZfLxSeffEJWVpb/mMViISsri82bNwPwySefUFtb2+CcIUOG0KdPH/85ItJ1KNyISIcJCwtj3bp1PP7448THx3P66adz66238vnnnzc4b/78+ZimSf/+/Tn//PMpKyvzv3bhhReycOHCJq9fUlLCnXfeSXR0NBMmTGjynJ49e7J69Wqef/55nn/+eTIyMpgyZQpbtmwBoLCwELfbTWpqaoP3paam+sfl5ObmYrPZiI+PP+Y5ItJ1KNyISIeaOXMmBw8e5OWXX+a8885j06ZNnHLKKaxbtw6Abdu2sW7dOtatW8eqVavo06cPU6ZM8Y93+fLLLznzzDMbXPO0004jOjqahIQEPvvsM9avX98onPgMHjyYX/7yl4wdO5bTTjuNNWvWcNppp/HAAw906NctIoGjcCMiHc7hcHDOOefw+9//nvfee4+5c+eydOlSAD7//HPsdjtDhw7FMAzWrFlD//79Of3003nkkUcoLy/noosuanC99evX89lnn1FcXMyuXbuYPn16i+qZMGECO3fuBCA5ORmr1dpo5lNeXh5paWkApKWl4XK5Gg1aPvocEek6FG5EpNMNHTqUyspKwDvexul08sEHHwBgtVp5+umnGTBgAL/4xS/47W9/6x9X45ORkcGAAQMadRM119atW+nZsycANpuNsWPHkp2d7X/d4/GQnZ3NpEmTABg7dizh4eENztm+fTs5OTn+c0Sk6wgLdAEiEroOHz7M5ZdfzlVXXcXIkSOJiYnh448/5t5772XGjBkAnHHGGZx22mnMmjWLlStXMmLECL766isOHjxIVFQUTz/9NL/85S+JjIxsVQ0rV66kX79+DBs2jJqaGh599FH+/e9/88Ybb/jPWbRoEXPmzGHcuHFMmDCBlStXUllZybx58wCIi4vj5z//OYsWLSIxMZHY2Fiuu+46Jk2axKmnntr2D0pE2pXCjYh0mOjoaCZOnMgDDzzArl27qK2tJSMjg/nz53PrrbcCYBgGGzZs4Pbbb2fRokUcOHCAgQMH8otf/ILLL7+ciRMn8tOf/pTnn3++VTW4XC5uvPFGDhw4QGRkJCNHjuStt95i6tSp/nNmzZpFQUEBS5YsITc3l9GjR7Nhw4YG43geeOABLBYLM2fOxOl0Mm3aNB5++OG2fUAi0iEM0zTNQBchIiIi0l405kZERERCisKNiIiIhBSFGxEREQkpCjciIiISUhRuREREJKQo3IiIiEhIUbgRERGRkKJwIyIiIiFF4UZERERCisKNiIiIhBSFGxEREQkpCjciIiISUv4/NcCjPCkJUwoAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHHCAYAAABDUnkqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABzoUlEQVR4nO3dd3xUVd4G8OfOTGbSe4MQEiC0IBK6KILsooCuDUWslF07Rc3yrmKhqAgWFEUWrGAHK7oWFLOwKCBIlyI9BEjvfSYzc94/7txJJpmElMm0PN+P+czk3jt3TgKGJ+f8zjmSEEKAiIiIyEuoXN0AIiIiIkdiuCEiIiKvwnBDREREXoXhhoiIiLwKww0RERF5FYYbIiIi8ioMN0RERORVGG6IiIjIqzDcEBERkVdhuCEiaqU1a9ZAkiSkp6dbj11xxRW44oornPL+kiRhwYIF1s8XLFgASZKQn5/vlPdPTEzEtGnTnPJeRC3BcEMdyh9//IGbb74ZCQkJ8PX1RVxcHK688kosX74cQO0/Dhf6qP+P17fffovx48cjIiICvr6+6NWrF+bMmYOCggLrNdXV1UhKSkKfPn1gMBgatG3ChAkICQlBZmYmAODJJ5+EJEnYvHlzg2vXrl0LSZLw+uuvN/n1Nvb1+Pr62r3+nXfeQd++feHr64uePXtavy/O8PHHH2PZsmVOez93sm3bNixYsADFxcWubkoD7tw2osZoXN0AImfZtm0bxowZg65du+Kee+5BbGwszp49i99++w2vvvoqZs2ahYkTJyIpKcn6mvLycjzwwAO48cYbMXHiROvxmJgY6/M5c+Zg6dKlGDBgAB599FGEh4djz549eP3117F27VqkpaWhd+/e8PX1xcqVK3HVVVdh8eLFmD9/vvUea9euxYYNG7B8+XJ07twZgBxu1q5di/vvvx8HDhyAVqsFABQXF+ORRx7B0KFD8eCDDzbra1+5ciUCAwOtn6vV6gbXvPHGG7j//vtx0003ITU1Fb/88gtmz56NyspKPProo838Lrfexx9/jIMHD+Lhhx9u9/dqTz/99FOLX7Nt2zYsXLgQ06ZNQ2hoaLNfV1VVBY2mfX+MN9W2o0ePQqXi78jkhgRRB3H11VeLqKgoUVRU1OBcTk6O3dfk5eUJAGL+/Pl2z3/88ccCgJg8ebIwGo0253bs2CH8/f1F//79RU1NjfX47bffLnQ6nTh69KgQQoiioiIRGxsrhg4dKkwmk809fvrpJwFALFiwwHrsvvvuE2q1Wuzdu/eCX/P8+fMFAJGXl9fkdZWVlSIiIkJcc801NsfvuOMOERAQIAoLCy/4XvWVl5e36PprrrlGJCQktPh9LqSiosLh91SsXr1aABCnT59u031efPHFZt/HZDKJqqoqu+ea++fdXm0jchcMN9Rh9O7dW1xxxRUtes2Fwk3v3r1FWFiYKCkpsXt+4cKFAoD45JNPrMdycnJEWFiYGDNmjBCiNqzs2bPH7j3qhqFt27YJSZJEampqs9qv/GOXm5srSkpKhNlstnvdd999JwCI7777zub4tm3bBADxwQcfNOt9Dh06JG677TYRGhoqUlJSrOc/+OADMWjQIOHr6yvCwsLE5MmTRUZGhvX86NGjBQCbDyXoNBYgNm3aJACITZs22dynX79+YteuXeLyyy8Xfn5+4qGHHhKnT58WAMSLL74o3njjDdG9e3eh1WrFkCFDxM6dO5vxnRTi4MGDYsyYMcLX11fExcWJZ555RrzzzjsN2jZ69GgxevRom9e+9tprIjk5Wfj5+YnQ0FAxePBg8dFHH9l87+p/KPcEIGbMmCE+/PBDkZycLDQajfjqq6+s5+r+3VTudeTIETFp0iQRFBQkwsPDxezZs20CkfL9WL16dYOvs+49L9S2hIQEMXXqVJvXnzx5Utx8880iLCxM+Pn5ieHDh4tvv/3W5hrlz27dunXi2WefFXFxcUKn04m//OUv4vjx4zbXHjt2TEycOFHExMQInU4n4uLixOTJk0VxcXHjf1jU4XFYijqMhIQEbN++HQcPHsRFF13U5vsdP34cR48exbRp0xAcHGz3milTpmD+/Pn49ttvceuttwIAoqOjsWTJEtx3332YNWsW3nzzTTz88MMYOHCg3Xu8/PLL+OGHH3DfffehoKAAXbp0wcKFC1vU1u7du6O8vBwBAQG44YYbsHTpUpuhtb179wIAhgwZYvO6wYMHQ6VSYe/evbjzzjsv+D6TJk1Cz5498dxzz0EIAQBYtGgRnnrqKdxyyy24++67kZeXh+XLl2PUqFHYu3cvQkND8cQTT6CkpATnzp3DK6+8AgA2w2gtUVBQgAkTJuDWW2/FnXfeafN1fvzxxygrK8N9990HSZLwwgsvYOLEiTh16hR8fHwavWd2djbGjBkDo9GIxx57DAEBAXjzzTfh5+d3wfa89dZbmD17Nm6++WY89NBDqK6uxoEDB7Bjxw7cfvvtmDhxIo4dO4ZPPvkEr7zyCiIjIwEAUVFR1nv897//xaeffoqZM2ciMjISiYmJTb7nLbfcgsTERCxevBi//fYbXnvtNRQVFeH999+/YHvrak7b6srJycGll16KyspKzJ49GxEREXjvvfdw3XXX4fPPP8eNN95oc/2SJUugUqkwZ84clJSU4IUXXsAdd9yBHTt2AAAMBgPGjRsHvV6PWbNmITY2FufPn8e3336L4uJihISEtOjroQ7E1emKyFl++uknoVarhVqtFiNGjBD/+te/xI8//igMBkOjr2mq52b9+vUCgHjllVeafN/g4GAxaNAgm2Nms1lcdtllAoCIj48XZWVlTd7jjTfesP7WvH79+iavrWvZsmVi5syZ4qOPPhKff/65eOihh4RGoxE9e/a06W2aMWOGUKvVdu8RFRUlbr311ibfR/kN/7bbbrM5np6eLtRqtVi0aJHN8T/++ENoNBqb440NS7W05waAWLVqlc21Sk9FRESEzRDb119/LQCI//znP01+fQ8//LAAIHbs2GE9lpubK0JCQi7Yc3P99deLfv36NXn/poZ+AAiVSiUOHTpk95y9npvrrrvO5roHH3xQABD79+8XQjS/5+ZCbavfc6N8n3755RfrsbKyMtGtWzeRmJhoHXZV/uz69u0r9Hq99dpXX31VABB//PGHEEKIvXv3CgDis88+a/DeRE1hJRh1GFdeeSW2b9+O6667Dvv378cLL7yAcePGIS4uDt98802L71dWVgYACAoKavK6oKAglJaW2hyTJAnh4eEAgBEjRlywl0L5jdnf3x8jR45sdhsfeughLF++HLfffjtuuukmLFu2DO+99x6OHz+Of//739brqqqqrAXL9fn6+qKqqqpZ73f//ffbfP7ll1/CbDbjlltuQX5+vvUjNjYWPXv2xKZNm5r9tTSXTqfD9OnT7Z6bPHkywsLCrJ9ffvnlAIBTp041ec/vv/8el1xyCYYNG2Y9FhUVhTvuuOOC7QkNDcW5c+fw+++/N6f5do0ePRrJycnNvn7GjBk2n8+aNQuA/HW0p++//x7Dhg2z+TsaGBiIe++9F+np6Th8+LDN9dOnT7f5e1f/z0Ppmfnxxx9RWVnZrm0n78JwQx3K0KFD8eWXX6KoqAg7d+7E3LlzUVZWhptvvrnBD94LUUKNEnIaU1ZW1iAAffnll/jPf/6Diy66CJ999hl++eWXJl8/e/Zs9O7dGwaDoc0zl26//XbExsbi559/th7z8/OzOz0dkKewN2f4BQC6detm8/nx48chhEDPnj0RFRVl83HkyBHk5ua2/gtpRFxcXKNBrWvXrjafK0GnqKioyXueOXMGPXv2bHC8d+/eF2zPo48+isDAQAwbNgw9e/bEjBkzsHXr1gu+rq7639cLqd/WHj16QKVS2azH0x7OnDlj93vSt29f6/m6LvTn0a1bN6SmpuLtt99GZGQkxo0bhxUrVqCkpKQ9mk9ehOGGOiStVouhQ4fiueeew8qVK1FTU4PPPvusRfdQfmAfOHCg0WvOnDmD0tJSm9+6lbAyePBgbNu2DQkJCXjggQdQU1Nj9x5PPPEEsrOz8fHHH+ORRx7Bu+++2+J/HOuLj49HYWGh9fNOnTrBZDI1CBsGgwEFBQXW6ekXUj8Emc1mSJKEDRs2YOPGjQ0+3njjjQveU5Iku8dNJlOz2lCXvSnwAKz1Qe2hb9++OHr0KNauXYuRI0fiiy++wMiRI22WAriQ5obLxtT/Hrb0e9pemvPnsXTpUhw4cACPP/44qqqqMHv2bPTr1w/nzp1zVjPJAzHcUIenFNFmZWW16HW9evVCr169sH79+kZ7b5QCzr/97W/WY08++SSysrLwxhtvICgoCMuXL8ehQ4ewdOnSBq/ftWsXVqxYgZkzZ2LQoEGYP38+4uPjcf/998NoNLaovQohBNLT022KQlNSUqzvV//9zWaz9XxL9ejRA0IIdOvWDWPHjm3wcckll1ivbewfXOW3+fqLyNXvBWhPCQkJOH78eIPjR48ebdbrAwICMHnyZKxevRoZGRm45pprsGjRIlRXVwNo/GtvrfptPXHiBMxms7UQuSXf05a0LSEhwe735M8//7Seb43+/fvjySefxJYtW/DLL7/g/PnzWLVqVavuRR0Dww11GJs2bbL7G7pSh9CcIYb65s2bh6KiItx///0NfuvdvXs3nn/+eVx00UW46aabrMeUsDJ48GAAcvC58cYb8cwzz9j842IymXDfffehU6dOeOaZZwDI/0guX74cBw8etM4qakpeXl6DYytXrkReXh7Gjx9vPfaXv/wF4eHhWLlyZYNr/f39cc011zTzO2Jr4sSJUKvVWLhwYYPvvRDCZgXngIAAu8MNPXr0AABs2bLFesxkMuHNN99sVZta4+qrr8Zvv/2GnTt3Wo/l5eXho48+uuBr636NgNxrmJycDCGEtbcuICAAQMOw0VorVqyw+VxZaXrChAkAgODgYERGRtp8TwHY1GEpWtK2q6++Gjt37sT27dutxyoqKvDmm28iMTGxRXVDAFBaWtogxPfv3x8qlQp6vb5F96KOhVPBqcOYNWsWKisrceONN1q3QNi2bRvWrVuHxMTERotQm3LHHXfg999/x6uvvorDhw/jjjvuQFhYGPbs2YN3330XERER+Pzzz+Hj4wOTyYR7770XsbGxePbZZ23u8+qrryI5ORmzZs2yFje/9tpr2LNnD7744gubmp3rrrsO1113HRYuXIjJkyc3qFuoKyEhAZMnT0b//v3h6+uLX3/9FWvXrkVKSgruu+8+63V+fn545plnMGPGDEyaNAnjxo3DL7/8gg8//BCLFi2yFj+3VI8ePfDss89i7ty5SE9Pxw033ICgoCCcPn0aX331Fe69917MmTMHgDztfN26dUhNTcXQoUMRGBiIa6+9Fv369cMll1yCuXPnorCwEOHh4Vi7dm2re65a41//+hc++OADjB8/Hg899JB1KnhCQkKTw5IAcNVVVyE2NhaXXXYZYmJicOTIEbz++uu45pprrH+uStB94okncOutt8LHxwfXXnutNVi01OnTp3Hddddh/Pjx2L59Oz788EPcfvvtGDBggPWau+++G0uWLMHdd9+NIUOGYMuWLTh27FiDe7WkbY899hg++eQTTJgwAbNnz0Z4eDjee+89nD59Gl988UWLVzP+73//i5kzZ2LSpEno1asXjEYjPvjgA6jVausvDER2uWyeFpGT/fDDD+Lvf/+76NOnjwgMDBRarVYkJSWJWbNmtXqFYsX69evFlVdeKcLCwoROpxNJSUnin//8p81Ksa+88ooAID7//HO793jppZcEAPHll1+Ks2fPisDAQPG3v/3N7rVnzpwRAQEBDab81nf33XeL5ORkERQUJHx8fERSUpJ49NFHRWlpqd3r33zzTdG7d2+h1WpFjx49xCuvvNLown91XWhl3C+++EKMHDlSBAQEiICAANGnTx8xY8YM6yrNQsgrGt9+++0iNDTUZhE/IeSF4caOHSt0Op2I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paSqBmbLAsT1a24AIN4yNHW2sMqZzSKy0ul0iI2NRUJCAh544AGMHTsW33zzDYqKijBlyhSEhYXB398fEyZMwPHjx62vO3PmDK699lqEhYUhICAA/fr1w/fff4/09HSMGTMGABAWFgZJkjBt2jQAgNlsxuLFi9GtWzf4+flhwIAB+Pzzz633VHp8fvjhBwwePBg6nQ6//vprg2Eps9mMp59+Gl26dIFOp0NKSgo2bNhgPZ+eng5JkrBu3TqMHj0avr6++Oijj9rte8hdwYmoQymskFcfDvHzsS7gV1dssA77Aa5S7G2EAGpcUEvl4w9IUptu4efnh4KCAkybNg3Hjx/HN998g+DgYDz66KO4+uqrcfjwYfj4+GDGjBkwGAzYsmULAgICcPjwYQQGBiI+Ph5ffPEFbrrpJhw9ehTBwcHw85MXrFy8eDE+/PBDrFq1Cj179sSWLVtw5513IioqCqNHj7a24bHHHsNLL72E7t27IywsDJs3b7Zp46uvvoqlS5fijTfewMCBA/Huu+/iuuuuw6FDh9CzZ0+b+yxduhQDBw6Er69vm74vTWG4IaIORZkGXr+YWKFMD88rrXZam8gJaiqB5zo7/30fzwS0ARe+zg4hBNLS0vDjjz9iwoQJWL9+PbZu3YpLL70UAPDRRx8hPj4e69evx6RJk5CRkYGbbroJ/fv3BwB0797deq/w8HAAQHR0NEJDQwEAer0ezz33HH7++WeMGDHC+ppff/0Vb7zxhk24efrpp3HllVc22taXXnoJjz76KG699VYAwPPPP49NmzZh2bJlWLFihfW6hx9+GBMnTmzV96MlGG6IqENRionDGgs3gfJvk+y5IVf59ttvERgYiJqaGpjNZtx+++2YOHEivv32WwwfPtx6XUREBHr37o0jR44AAGbPno0HHngAP/30E8aOHYubbroJF198caPvc+LECVRWVjYILQaDAQMHDrQ5NmTIkEbvU1paiszMTFx22WU2xy+77DLs37+/2fdxJIYbIupQlDVu6hcTK6w9N2UMN17Fx1/uRXHF+7bQmDFjsHLlSmi1WnTu3BkajQbffPPNBV939913Y9y4cfjuu+/w008/YfHixVi6dClmzZpl9/rycnkbku+++w5xcXE253Q62wUuAwJa1/tUn6PucyEMN0TUoTS2xo2C4cZLSVKrh4ecLSAgAElJSTbH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a/VewC1Tb38ppYg4nwv5EbmFVoWb6667Dk8//TRqamoAAJIkISMjA48++ihuuukmhzaQiMhGI8XEThmSUijTweutdcOeGyL30Kpws3TpUpSXlyMqKgpVVVUYPXo0kpKSEBQUhEWLFjm6jUREtazhxlJv48xiYkVAtPxYkSs3xbq/FHtuiNxBq/pwQ0JCsHHjRmzduhX79+9HeXk5Bg0ahLFjxzq6fUREtgosw1IRLigmVgRawk25UnPDncGJ3EmLw43ZbMaaNWvw5ZdfIj09HZIkoVu3boiNjYUQApLEpceJqB25chq4whpucgAAkZb3VtpCRK7VomEpIQSuu+463H333Th//jz69++Pfv364cyZM5g2bRpuvPHGVjVixYoVSExMhK+vL4YPH46dO3c2eu1bb72Fyy+/HGFhYQgLC8PYsWObvJ6IvEy9cJOj9Ny4cFhKWTywXG9Ehd7ovHYQkV0tCjdr1qzBli1bkJaWhr179+KTTz7B2rVrsX//fvz888/473//2+IF/NatW4fU1FTMnz8fe/bswYABAzBu3Djk5ubavX7z5s247bbbsGnTJmzfvh3x8fG46qqruDIyUUdQWQhUySuiI7w7gLoFxc7subEUFFuGpQJ1Gvhr1TbtISLXaVG4+eSTT/D4449jzJgxDc795S9/wWOPPYaPPvqoRQ14+eWXcc8992D69OlITk7GqlWr4O/vj3fffdfu9R999BEefPBBpKSkoE+fPnj77bdhNpuRlpbWovclIg+kTAMP6gxoAwDULSh25mwppecmDzCbAdT23ig1QETkOi0KNwcOHMD48eMbPT9hwgTs37+/2fczGAzYvXu3TSGySqXC2LFjsX379mbdo7KyEjU1NQgPD7d7Xq/Xo7S01OaDiDxUvZlSQG2YiHFmz40yFVyYgKoiALXDYjnsuSFyuRaFm8LCQsTExDR6PiYmBkVFRc2+X35+PkwmU4N7xsTENHul40cffRSdO3dudKbW4sWLERISYv2Ij49vdvuIyM3UCzfVNSaUVss1LlHO7LnRaAG/MPm5paiYPTdE7qNF4cZkMkGjaXyClVqthtHovGK6JUuWYO3atfjqq69s9riqa+7cuSgpKbF+nD171mntIyIHa2SmlE6jQrCvk1YnVtQrKrb23DDcELlci34aCCEwbdo06HT2u3/1+pZ1x0ZGRkKtViMn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Gua9nquna5HnmDp1qgDQ4GPTpk3Wa9LT08WECROEn5+fiIyMFP/85z9FTU2N6xrtBXbv3i2GDx8uQkJChK+vr+jbt6947rnnRHV1taub5vGWL18uunbtKrRarRg2bJj47bffXN0krzN58mTRqVMnodVqRVxcnJg8ebI4ceKEq5vl8TZt2mT35/HUqVOFEPJ08KeeekrExMQInU4n/vrXv4qjR4+6ttFOJAkhhKuCFREREZGjcbYUEREReRWGGyIiIvIqDDdERETkVRhuiIiIyKsw3BAREZFXYbghIiIir8JwQ0RERF6F4YaIiIi8CsMNETlMXl4eHnjgAXTt2hU6nQ6xsbEYN24ctm7dis2bN19wF/TNmzcDAKqqqjB//nz06tULOp0OkZGRmDRpEg4dOmR9r0cffRSJiYkoKyuzacO1116LUaNGwWw2IzMzE2FhYXjttddsrtmxYwd8fHzw008/Nfq1JCYmNmjfkiVLbK45cOAALr/8cvj6+iI+Ph4vvPBCG7+DROQQrl4imYi8x+WXXy6GDx8u/vvf/4r09HSxY8cO8dxzz4mvv/5a6PV6kZWVZf245ZZbxPjx422O6fV6UV1dLS699FLRpUsXsW7dOut9brjhBhEQECC2b98uhBCiurpa9OvXT9x9993W93/nnXdEQECAzfL+H3zwgfD39xfHjh0TQghRWVkpevfuLe6///4mv5aEhATx9NNP27SvvLzcer6kpETExMSIO+64Qxw8eFB88sknws/PT7zxxhuO/JYSUSsw3BCRQxQVFQkAYvPmzc26furUqeL6669vcHzJkiVCkiSxb98+m+Mmk0kMGTJEJCcnC7PZLIQQYteuXcLHx0f88MMP4syZMyI4OFisWLGiwT1vvPFGcemllwqTySQeeugh0b17d1FWVtZk+xISEsQrr7zS6Pl///vfIiwsTOj1euuxRx99VPTu3bvJ+xJR++OwFBE5RGBgIAIDA7F+/Xro9fpW3+fjjz/GlVdeiQEDBtgcV6lUeOSRR3D48GHs378fADB48GDMnTsXd999N+666y4MGzYMDzzwQIN7rlq1CsePH8cdd9yB119/HatXr0ZgYOAF27JkyRJERERg4MCBePHFF2E0Gq3ntm/fjlGjRkGr1VqPjRs3DkePHkVRUVFrv3wicgCGGyJyCI1GgzVr1uC9995DaGgoLrvsMjz++OM4cOBAi+5z7Ngx9O3b1+455fixY8esx5588kmoVCrs2LED77zzDiRJavC66OhoPPPMM1i7di3uvfdejBo16oLtmD17NtauXYtNmzbhvvvuw3PPPYd//etf1vPZ2dmIiYmxeY3yeXZ29oW/UCJqNww3ROQwN910EzIzM/HNN99g/Pjx2Lx5MwYNGoQ1a9a06D5CiGZfu3HjRmRnZ8NsNuP333+3e43JZMKaNWvg7++P3377zaYHpjGpqam44oorcPHFF+P+++/H0qVLsXz58jb1ShGRczDcEJFD+fr64sorr8RTTz2Fbdu2Ydq0aZg/f36zX9+rVy8cOXLE7jnleK9evQAARUVFuOeee/Dkk0/iiSeewIMPPoj8/PwGr3vppZdw6tQp7Nq1C+fOncNzzz3X4q9r+PDhMBqNSE9PBwDExsYiJyfH5hrl89jY2Bbfn4gch+GGiNpVcnIyKioqmn39rbfeip9//tlaV6Mwm8145ZVXkJycbK3HmTVrFmJjY/H444/jiSeeQFxcHGbMmGHzukOHDmH+/PlYuXIl+vbti5UrV+LZZ59t8XDZvn37oFKpEB0dDQAYMWIEtmzZgpqaGus1GzduRO/evREWFtaiexORg7m6opmIvEN+fr4YM2aM+OCDD8T+/fvFqVOnxKeffipiYmLE3//+9wbXNzZbqqqqSgwfPlzEx8eLTz/9VJw5c0bs3LmzwVTwL7/8Umi1WvHHH39YX3vgwAGh1WrF559/LoQQoqamRgwePFjcdtttNu9x6623ioEDB4qamhq7X8u2bdvEK6+8Ivbt2ydOnjwpPvzwQxEVFSWmTJlivaa4uFjExMSIu+66Sxw8eFCsXbtW+Pv7cyo4kRtguCEih6iurhaPPfaYGDRokAgJCRH+/v6id+/e4sknnxSVlZUNrm8s3AghREVFhXjiiSdEUlKS8PHxEeHh4eKmm26yBpm8vDwRHR0tFi1a1OC1ixYtEtHR0SIvL08sXLhQxMbGioKCAptrCgoKRGxsrFi4cKHd99+9e7cYPny4CAkJEb6+vqJv377iueeeE9XV1TbX7d+/X4wcOVLodDoRFxcnlixZ0pxvFRG1M0mIFlTuEREREbk51twQERGRV2G4ISIiIq/CcENEREReheGGiIiIvArDDREREXkVhhsiIiLyKgw3RERE5FUYboiIiMirMNwQERGRV2G4ISIiIq/CcENEREReheGGiIiIvMr/A26E1y5f8zPiAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.kdeplot(x=R_df.iloc[:, 0])\n", + "sns.kdeplot(x=R_df.iloc[:, 0], weights=q[:, 0])\n", + "plt.title('S&P 500 return distributions')\n", + "plt.legend(['Prior', 'Posterior'])\n", + "plt.show()\n", + "\n", + "sns.kdeplot(x=R_df.iloc[:, 1])\n", + "sns.kdeplot(x=R_df.iloc[:, 1], weights=q[:, 0])\n", + "plt.title('STOXX 50 return distributions')\n", + "plt.legend(['Prior', 'Posterior'])\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Sequential heuristic (H1)\n", + "See https://ssrn.com/abstract=3936392 for more information." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "# C0 views\n", + "mean_row = R[:, 1][np.newaxis]\n", + "A0 = np.vstack((np.ones((1, S)), mean_row))\n", + "b0 = np.array([[1.], [means_prior[0, 1] - 0.5 * vols_prior[0, 1]]])\n", + "q0 = ep(p, A0, b0)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "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", + "
MeanVolatilitySkewnessKurtosis
S&P 500-0.3630151.683497-2.2013914.289760
STOXX 50-0.6861761.937072-2.4044513.300724
\n", + "
" + ], + "text/plain": [ + " Mean Volatility Skewness Kurtosis\n", + "S&P 500 -0.363015 1.683497 -2.20139 14.289760\n", + "STOXX 50 -0.686176 1.937072 -2.40445 13.300724" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ft.simulation_moments(R_df, q0)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "# C1 views\n", + "means0 = q0.T @ R\n", + "vol_row0 = (R[:, 0] - means0[0, 0])[np.newaxis]**2\n", + "A1 = np.vstack((np.ones((1, S)), mean_rows, vol_row0))\n", + "b1 = np.array([[1.], [means0[0, 0]], [means0[0, 1]], [(1.2 * vols_prior[0, 0])**2]])\n", + "q1 = ep(p, A1, b1)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "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", + "
MeanVolatilitySkewnessKurtosis
S&P 500-0.3630151.518002-2.10734613.547514
STOXX 50-0.6861761.832161-2.21195712.250794
\n", + "
" + ], + "text/plain": [ + " Mean Volatility Skewness Kurtosis\n", + "S&P 500 -0.363015 1.518002 -2.107346 13.547514\n", + "STOXX 50 -0.686176 1.832161 -2.211957 12.250794" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ft.simulation_moments(R_df, q1)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "RE = 0.112.\n", + "Relative ENS = 0.894.\n" + ] + } + ], + "source": [ + "relative_entropy1 = q1.T @ (np.log(q1) - np.log(p))\n", + "effective_number_scenarios1 = np.exp(-relative_entropy1)\n", + "print(f'RE = {np.round(relative_entropy1[0, 0], 3)}.')\n", + "print(f'Relative ENS = {np.round(effective_number_scenarios1[0, 0], 3)}.')" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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uILPPvusUcDZtGkT7777LldeeWWb2mmz2Zg8eTIvvvgiX3/99RG/jkDVqrlfuP369ePjjz9u1MX22muvNQqUHSkvL4/o6GgefvjhRj8TixYtOupzKyoqGv1cgBl0rFZro27AuLi4Zr/2tlizZk2jsUw7d+7klVde4fzzzw9WS/r160d5eTlffvll8Ly9e/fy73//u8nrtbRteXl52O12/vrXvzb6Pj3xxBOUl5c3+nlrqf379ze6b7fbGTx4MIZhUF9f3+rXk+ObpoLLce+GG26gpqaGyy67jEGDBuF2u/noo49YsWIFubm5wTEjJ598MjfeeCN//etfGTVqFD/96U9JTk7mv//9L8899xxnnnkmH3zwATNnzuTJJ59sl7b17t2bKVOmMHToUJxOJx988AHPPfccw4cP59e//nXwvJiYGO666y5mzZrFlVdeGVyh+Omnn+buu+8mNTU1eO5vfvMbHn/8cS666CJuueUWoqOjefDBB8nIyODmm29uc1vvvfdeVq1axZgxY5g5cyaDBw/mwIEDrFu3jnfeeSfYjdavXz+Sk5NZsmQJCQkJxMXFMWbMGPr06cM111zDCy+8wAUXXMBPfvITtm7dytNPP33EKcntKbAezoIFC/jxj3/MxIkTWb9+Pf/5z3+OuIgimNPjZ8+ezZVXXskJJ5yAx+Phn//8ZzD4BYwYMYJ33nmHBx98kKysLPr06cOYMWPa1N6TTjqJCRMmNJoKDnDHHXcEz7nqqqu49dZbueyyy7jxxhupqalh8eLFnHDCCU0Gebe0benp6cydO5c77riDCy64gEsuuYRNmzbx6KOPMmrUqEaDh1vq/PPPJzMzk9NPP52MjAw2btzI3/72Ny666KI2VRPlOBe6iVoiXcN//vMf4+qrrzYGDRpkxMfHG3a73ejfv79xww03GEVFRU3Of+KJJ4wRI0YYTqfTiI+PN84880zjueeeMwzj4JThO+64I3g+YMyaNatNbbvmmmuMwYMHGwkJCUZ0dLTRv39/49ZbbzUqKiqaPf/vf/+7MXDgQMNutxv9+vUzHnrooUZTmgN27txpXHHFFUZiYqIRHx9v/PjHPzY2b97cojYd6espKioyZs2aZeTk5BjR0dFGZmamce655xp///vfG533yiuvGIMHDzaioqKaTAtfuHChkZ2dbTgcDuP00083Pv/888NOBW9u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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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88/1LuJXW81F/Gpryp+vEELs379fjBo1qtmL+L3xxhti5MiRIiwsTGi1WtG9e3fxz3/+s87Cj88++6yIjY0VKpXK7iJ+9tRuu/LncPjwYXHzzTeLgIAAERISImbNmlVnVePy8nLxf//3fyIoKEgEBASIW265RWRnZ9v9ftTXtoYW8QsODhY6nU4MGzas3kX8ak/xrj1F/dSpU+Kuu+4S3bt3FzqdToSGhorRo0eLX375xe73g0ghCdGOlXREREREDsaaGyIiIvIoDDdERETkURhuiIiIyKMw3BAREZFHYbghIiIij8JwQ0RERB6lwy3iZzabcf78eQQEBLT5kudERETUPoQQKCkpQUxMTKMLQna4cHP+/HnExcU5uxlERETUAhkZGejcuXOD13S4cKMsd56RkYHAwEAnt4aIiIiaori4GHFxcTbb0dSnw4UbZSgqMDCQ4YaIiMjNNKWkhAXFRERE5FEYboiIiMijMNwQERGRR+lwNTdERNRxmEwmVFVVObsZ1EQajabRad5NwXBDREQeRwiBzMxMFBYWOrsp1AwqlQpdu3aFRqNp1X0YboiIyOMowSYyMhK+vr5ctNUNKIvsXrhwAV26dGnVnxnDDREReRSTyWQNNmFhYc5uDjVDREQEzp8/D6PRCG9v7xbfhwXFRETkUZQaG19fXye3hJpLGY4ymUytug/DDREReSQORbmftvozY7ghIiIij8JwQ0RE5MYSEhKwfPlyZzfDpTDcEBERuYjp06dDkiRIkgSNRoMePXrgmWeegdForPc1O3bswL333uvAVro+zpYiIiJyIePGjcOaNWug1+vx3XffYebMmfD29sbcuXNtrjMYDNBoNIiIiGjV+yn38STsuSGiDu3A2SKU6uv/rZjI0bRaLaKjoxEfH48HHngAY8aMwddff43p06fjhhtuwKJFixATE4PevXsDqDsslZ6ejuuvvx7+/v4IDAzELbfcgqysLOv5BQsWIDk5GW+//Ta6du0KnU7n6C+x3bHnhog6rD3pBbjx31vQJzoAG2ZeCp232tlNonYihEBFVeumF7eEj7e61TOAfHx8kJeXBwBITU1FYGAgfv75Z7vXms1ma7D53//+B6PRiJkzZ2Ly5MnYtGmT9boTJ07giy++wJdffgm12vP+3jPcEFGHtTOtAADwV2YJXvjhL8y/tp+TW0TtpaLKhMR5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z5/H/PnzoVarcdtttzm7aW6ttLTUpvfr9OnT2Lt3L0JDQ9GlSxc88sgjeO6559CzZ0907doVTz/9NGJiYqxh3uM5e7oWuY9p06YJAHU+Nm7caL0mLS1NjB8/Xvj4+Ijw8HDxj3/8Q1RVVTmv0R5g165dYvjw4SIoKEjodDrRt29f8fzzz4vKykpnN83trVixQnTp0kVoNBoxbNgw8eeffzq7SR5n8uTJolOnTkKj0YjY2FgxefJkceLECWc3y+1t3LjR7s/jadOmCSHk6eBPP/20iIqKElqtVvz9738XR48edW6jHUgSQghnBSsiIiKitsbZUkRERORRGG6IiIjIozDcEBERkUdhuCEiIiKPwnBDREREHoXhhoiIiDwKww0RERF5FIYbIiIi8igMN0TUZnJycvDAAw+gS5cu0Gq1iI6OxtixY/HHH39g06ZNje6CvmnTJgBARUUF5s+fj169ekGr1SI8PByTJk3CoUOHrO/12GOPISEhASUlJTZtuPbaazFy5EiYzWacP38eISEheO2112yu2bZtG7y9vfHTTz/V+7UkJCTUad+SJUtsrtm/fz8uv/xy6HQ6xMXF4cUXX2zld5CI2oSzl0gmIs9x+eWXi+HDh4tff/1VpKWliW3btonnn39efPXVV0Kv14sLFy5YP2655RYxbtw4m2N6vV5UVlaKSy65RHTu3FmsX7/eep8bbrhB+Pn5ia1btwohhKisrBT9+vUTd999t/X933nnHeHn52ezvP8HH3wgfH19xbFjx4QQQpSXl4vevXuL+++/v8GvJT4+XjzzzDM27SstLbWeLyoqElFRUWLKlCni4MGD4pNPPhE+Pj7ijTfeaMtvKRG1AMMNEbWJgoICAUBs2rSpSddPmzZNXH/99XWOL1myREiSJPbu3Wtz3GQyiSFDhojExERhNpuFEELs3LlTeHt7i++//16cOXNGBAYGipUrV9a554033iguueQSYTKZxMMPPyy6desmSkpKGmxffHy8WLZsWb3n//3vf4uQkBCh1+utxx577DHRu3fvBu9LRO2Pw1JE1Cb8/f3h7++PDRs2QK/Xt/g+H3/8Ma688kokJSXZHFepVHj00Udx+PBh7Nu3DwAwePBgzJ07F3fffTfuvPNODBs2DA888ECde65evRrHjx/HlClT8Prrr2PNmjXw9/dvtC1LlixBWFgYBg4ciJdeeglGo9F6buvWrRg5ciQ0Go312NixY3H06FEUFBS09MsnojbAcENEbcLLywtr167Fe++9h+DgYFx66aV44oknsH///mbd59ixY+jbt6/dc8rxY8eOWY899dRTUKlU2LZtG9555x1IklTndZGRkXj22Wexbt063HvvvRg5cmSj7XjooYewbt06bNy4Effddx+ef/55/Otf/7Kez8zMRFRUlM1rlM8zMzMb/0KJqN0w3BBRm7nppptw/vx5fP311xg3bhw2bdqEQYMGYe3atc26jxCiydf+/PPPyMzMhNlsxo4dO+xeYzKZsHbtWvj6+uLPP/+06YGpT0pKCq644gpcdNFFuP/++7F06VKsWLGiVb1SROQYDDdE1KZ0Oh2uvPJKPP3009iyZQumT5+O+fPnN/n1vXr1wpEjR+yeU4736tULAFBQUIB77rkHTz31FJ588kk8+OCDyM3NrfO6l19+GadOncLOnTtx9uxZPP/8883+uoYPHw6j0Yi0tDQAQHR0NLKysmyuUT6Pjo5u9v2JqO0w3BBRu0pMTERZWVmTr7/11lvxyy+/WOtqFGazGcuWLUNiYqK1Hmf27NmIjo7GE088gSeffBKxsbGYOXOmzesOHTqE+fPnY9WqVejbty9WrVqF5557rtnDZXv37oVKpUJkZCQAYMSIEdi8eTOqqqqs1/z888/o3bs3QkJCmnVvImpjzq5oJiLPkJubK0aPHi0++OADsW/fPnHq1Cnx6aefiqioKHHXXXfVub6+2VIVFRVi+PDhIi4uTnz66afizJkzYvv27XWmgn/55ZdCo9GIAwcOWF+7f/9+odFoxOeffy6EEKKqqkoMHjxY3HbbbTbvceutt4qBAweKqqoqu1/Lli1bxLJly8TevXvFyZMnxYcffigiIiLE1KlTrdcUFhaKqKgoceedd4qDBw+KdevWCV9fX04FJ3IBDDdE1CYqKyvF448/LgYNGiSCgoKEr6+v6N27t3jqqadEeXl5nevrCzdCCFFWViaefPJJ0aNHD+Ht7S1CQ0PFTTfdZA0yOTk5IjIyUixatKjOaxctWiQiIyNFTk6OWLhwoYiOjhZ5eXk21+Tl5Yno6GixcOFCu++/a9cuMXz4cBEUFCR0Op3o27eveP7550VlZaXNdfv27ROXXXaZ0Gq1IjY2VixZsqQp3yoiameSEM2o3CMiIiJycay5ISIiIo/CcENEREQeheGGiIiIPArDDREREXkUhhsiIiLyKAw3RERE5FEYboiIiMijMNwQERGRR2G4ISIiIo/CcENEREQeheGGiIiIPArDDREREXmU/wezmeFYr6WNhgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.kdeplot(x=R_df.iloc[:, 0])\n", + "sns.kdeplot(x=R_df.iloc[:, 0], weights=q1[:, 0])\n", + "plt.title('S&P 500 return distributions')\n", + "plt.legend(['Prior', 'Posterior'])\n", + "plt.show()\n", + "\n", + "sns.kdeplot(x=R_df.iloc[:, 1])\n", + "sns.kdeplot(x=R_df.iloc[:, 1], weights=q1[:, 0])\n", + "plt.title('STOXX 50 return distributions')\n", + "plt.legend(['Prior', 'Posterior'])\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Comments\n", + "In this example, views and sequential Entropy Pooling is implemented in a \"handheld\" way. For practical use cases, a better interface as well as an automated implementation of sequential Entropy Pooling is recommended. If you are an institutional investor who wants to experience an elegant implementation of this, please request a demo by sending an email to demo@fortitudo.tech." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# License" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "# Copyright (c) 2021-2024, Fortitudo Technologies\n", + "# This work is licensed under BSD 3-Clause \"New\" or \"Revised\" License:\n", + "# https://github.com/fortitudo-tech/entropy-pooling/blob/main/LICENSE" + ] + } + ], + "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.12.1" + }, + "vscode": { + "interpreter": { + "hash": "9172374e710c7274e5b931ab9e79b447ac202c78814c7af0597212ccabe6bde7" + } + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/poetry.lock b/poetry.lock index 922f6ce..9e190b7 100644 --- a/poetry.lock +++ b/poetry.lock @@ -111,61 +111,61 @@ tests = ["pytest", "pytest-cov", "pytest-xdist"] [[package]] name = "fonttools" -version = "4.47.2" +version = "4.49.0" description = "Tools to manipulate font files" category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "fonttools-4.47.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3b629108351d25512d4ea1a8393a2dba325b7b7d7308116b605ea3f8e1be88df"}, - {file = "fonttools-4.47.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c19044256c44fe299d9a73456aabee4b4d06c6b930287be93b533b4737d70aa1"}, - {file = "fonttools-4.47.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b8be28c036b9f186e8c7eaf8a11b42373e7e4949f9e9f370202b9da4c4c3f56c"}, - {file = "fonttools-4.47.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f83a4daef6d2a202acb9bf572958f91cfde5b10c8ee7fb1d09a4c81e5d851fd8"}, - {file = "fonttools-4.47.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4a5a5318ba5365d992666ac4fe35365f93004109d18858a3e18ae46f67907670"}, - {file = "fonttools-4.47.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8f57ecd742545362a0f7186774b2d1c53423ed9ece67689c93a1055b236f638c"}, - {file = "fonttools-4.47.2-cp310-cp310-win32.whl", hash = "sha256:a1c154bb85dc9a4cf145250c88d112d88eb414bad81d4cb524d06258dea1bdc0"}, - {file = "fonttools-4.47.2-cp310-cp310-win_amd64.whl", hash = "sha256:3e2b95dce2ead58fb12524d0ca7d63a63459dd489e7e5838c3cd53557f8933e1"}, - {file = "fonttools-4.47.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:29495d6d109cdbabe73cfb6f419ce67080c3ef9ea1e08d5750240fd4b0c4763b"}, - {file = "fonttools-4.47.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0a1d313a415eaaba2b35d6cd33536560deeebd2ed758b9bfb89ab5d97dc5deac"}, - {file = "fonttools-4.47.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90f898cdd67f52f18049250a6474185ef6544c91f27a7bee70d87d77a8daf89c"}, - {file = "fonttools-4.47.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3480eeb52770ff75140fe7d9a2ec33fb67b07efea0ab5129c7e0c6a639c40c70"}, - {file = "fonttools-4.47.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0255dbc128fee75fb9be364806b940ed450dd6838672a150d501ee86523ac61e"}, - {file = "fonttools-4.47.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f791446ff297fd5f1e2247c188de53c1bfb9dd7f0549eba55b73a3c2087a2703"}, - {file = "fonttools-4.47.2-cp311-cp311-win32.whl", hash = "sha256:740947906590a878a4bde7dd748e85fefa4d470a268b964748403b3ab2aeed6c"}, - {file = "fonttools-4.47.2-cp311-cp311-win_amd64.whl", hash = "sha256:63fbed184979f09a65aa9c88b395ca539c94287ba3a364517698462e13e457c9"}, - {file = "fonttools-4.47.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:4ec558c543609e71b2275c4894e93493f65d2f41c15fe1d089080c1d0bb4d635"}, - {file = "fonttools-4.47.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e040f905d542362e07e72e03612a6270c33d38281fd573160e1003e43718d68d"}, - {file = "fonttools-4.47.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6dd58cc03016b281bd2c74c84cdaa6bd3ce54c5a7f47478b7657b930ac3ed8eb"}, - {file = "fonttools-4.47.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:32ab2e9702dff0dd4510c7bb958f265a8d3dd5c0e2547e7b5f7a3df4979abb07"}, - {file = "fonttools-4.47.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3a808f3c1d1df1f5bf39be869b6e0c263570cdafb5bdb2df66087733f566ea71"}, - {file = "fonttools-4.47.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ac71e2e201df041a2891067dc36256755b1229ae167edbdc419b16da78732c2f"}, - {file = "fonttools-4.47.2-cp312-cp312-win32.whl", hash = "sha256:69731e8bea0578b3c28fdb43dbf95b9386e2d49a399e9a4ad736b8e479b08085"}, - {file = "fonttools-4.47.2-cp312-cp312-win_amd64.whl", hash = "sha256:b3e1304e5f19ca861d86a72218ecce68f391646d85c851742d265787f55457a4"}, - {file = "fonttools-4.47.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:254d9a6f7be00212bf0c3159e0a420eb19c63793b2c05e049eb337f3023c5ecc"}, - {file = "fonttools-4.47.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:eabae77a07c41ae0b35184894202305c3ad211a93b2eb53837c2a1143c8bc952"}, - {file = "fonttools-4.47.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a86a5ab2873ed2575d0fcdf1828143cfc6b977ac448e3dc616bb1e3d20efbafa"}, - {file = "fonttools-4.47.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13819db8445a0cec8c3ff5f243af6418ab19175072a9a92f6cc8ca7d1452754b"}, - {file = "fonttools-4.47.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:4e743935139aa485fe3253fc33fe467eab6ea42583fa681223ea3f1a93dd01e6"}, - {file = "fonttools-4.47.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d49ce3ea7b7173faebc5664872243b40cf88814ca3eb135c4a3cdff66af71946"}, - {file = "fonttools-4.47.2-cp38-cp38-win32.whl", hash = "sha256:94208ea750e3f96e267f394d5588579bb64cc628e321dbb1d4243ffbc291b18b"}, - {file = "fonttools-4.47.2-cp38-cp38-win_amd64.whl", hash = "sha256:0f750037e02beb8b3569fbff701a572e62a685d2a0e840d75816592280e5feae"}, - {file = "fonttools-4.47.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3d71606c9321f6701642bd4746f99b6089e53d7e9817fc6b964e90d9c5f0ecc6"}, - {file = "fonttools-4.47.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:86e0427864c6c91cf77f16d1fb9bf1bbf7453e824589e8fb8461b6ee1144f506"}, - {file = "fonttools-4.47.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a00bd0e68e88987dcc047ea31c26d40a3c61185153b03457956a87e39d43c37"}, - {file = "fonttools-4.47.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5d77479fb885ef38a16a253a2f4096bc3d14e63a56d6246bfdb56365a12b20c"}, - {file = "fonttools-4.47.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5465df494f20a7d01712b072ae3ee9ad2887004701b95cb2cc6dcb9c2c97a899"}, - {file = "fonttools-4.47.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4c811d3c73b6abac275babb8aa439206288f56fdb2c6f8835e3d7b70de8937a7"}, - {file = "fonttools-4.47.2-cp39-cp39-win32.whl", hash = "sha256:5b60e3afa9635e3dfd3ace2757039593e3bd3cf128be0ddb7a1ff4ac45fa5a50"}, - {file = "fonttools-4.47.2-cp39-cp39-win_amd64.whl", hash = "sha256:7ee48bd9d6b7e8f66866c9090807e3a4a56cf43ffad48962725a190e0dd774c8"}, - {file = "fonttools-4.47.2-py3-none-any.whl", hash = "sha256:7eb7ad665258fba68fd22228a09f347469d95a97fb88198e133595947a20a184"}, - {file = "fonttools-4.47.2.tar.gz", hash = "sha256:7df26dd3650e98ca45f1e29883c96a0b9f5bb6af8d632a6a108bc744fa0bd9b3"}, + {file = "fonttools-4.49.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d970ecca0aac90d399e458f0b7a8a597e08f95de021f17785fb68e2dc0b99717"}, + {file = "fonttools-4.49.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ac9a745b7609f489faa65e1dc842168c18530874a5f5b742ac3dd79e26bca8bc"}, + {file = "fonttools-4.49.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ba0e00620ca28d4ca11fc700806fd69144b463aa3275e1b36e56c7c09915559"}, + {file = "fonttools-4.49.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdee3ab220283057e7840d5fb768ad4c2ebe65bdba6f75d5d7bf47f4e0ed7d29"}, + {file = "fonttools-4.49.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ce7033cb61f2bb65d8849658d3786188afd80f53dad8366a7232654804529532"}, + {file = "fonttools-4.49.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:07bc5ea02bb7bc3aa40a1eb0481ce20e8d9b9642a9536cde0218290dd6085828"}, + {file = "fonttools-4.49.0-cp310-cp310-win32.whl", hash = "sha256:86eef6aab7fd7c6c8545f3ebd00fd1d6729ca1f63b0cb4d621bccb7d1d1c852b"}, + {file = "fonttools-4.49.0-cp310-cp310-win_amd64.whl", hash = "sha256:1fac1b7eebfce75ea663e860e7c5b4a8831b858c17acd68263bc156125201abf"}, + {file = "fonttools-4.49.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:edc0cce355984bb3c1d1e89d6a661934d39586bb32191ebff98c600f8957c63e"}, + {file = "fonttools-4.49.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:83a0d9336de2cba86d886507dd6e0153df333ac787377325a39a2797ec529814"}, + {file = "fonttools-4.49.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:36c8865bdb5cfeec88f5028e7e592370a0657b676c6f1d84a2108e0564f90e22"}, + {file = "fonttools-4.49.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:33037d9e56e2562c710c8954d0f20d25b8386b397250d65581e544edc9d6b942"}, + {file = "fonttools-4.49.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8fb022d799b96df3eaa27263e9eea306bd3d437cc9aa981820850281a02b6c9a"}, + {file = "fonttools-4.49.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:33c584c0ef7dc54f5dd4f84082eabd8d09d1871a3d8ca2986b0c0c98165f8e86"}, + {file = "fonttools-4.49.0-cp311-cp311-win32.whl", hash = "sha256:cbe61b158deb09cffdd8540dc4a948d6e8f4d5b4f3bf5cd7db09bd6a61fee64e"}, + {file = "fonttools-4.49.0-cp311-cp311-win_amd64.whl", hash = "sha256:fc11e5114f3f978d0cea7e9853627935b30d451742eeb4239a81a677bdee6bf6"}, + {file = "fonttools-4.49.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:d647a0e697e5daa98c87993726da8281c7233d9d4ffe410812a4896c7c57c075"}, + {file = "fonttools-4.49.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f3bbe672df03563d1f3a691ae531f2e31f84061724c319652039e5a70927167e"}, + {file = "fonttools-4.49.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bebd91041dda0d511b0d303180ed36e31f4f54b106b1259b69fade68413aa7ff"}, + {file = "fonttools-4.49.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4145f91531fd43c50f9eb893faa08399816bb0b13c425667c48475c9f3a2b9b5"}, + {file = "fonttools-4.49.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ea329dafb9670ffbdf4dbc3b0e5c264104abcd8441d56de77f06967f032943cb"}, + {file = "fonttools-4.49.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c076a9e548521ecc13d944b1d261ff3d7825048c338722a4bd126d22316087b7"}, + {file = "fonttools-4.49.0-cp312-cp312-win32.whl", hash = "sha256:b607ea1e96768d13be26d2b400d10d3ebd1456343eb5eaddd2f47d1c4bd00880"}, + {file = "fonttools-4.49.0-cp312-cp312-win_amd64.whl", hash = "sha256:a974c49a981e187381b9cc2c07c6b902d0079b88ff01aed34695ec5360767034"}, + {file = "fonttools-4.49.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:b85ec0bdd7bdaa5c1946398cbb541e90a6dfc51df76dfa88e0aaa41b335940cb"}, + {file = "fonttools-4.49.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:af20acbe198a8a790618ee42db192eb128afcdcc4e96d99993aca0b60d1faeb4"}, + {file = "fonttools-4.49.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d418b1fee41a1d14931f7ab4b92dc0bc323b490e41d7a333eec82c9f1780c75"}, + {file = "fonttools-4.49.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b44a52b8e6244b6548851b03b2b377a9702b88ddc21dcaf56a15a0393d425cb9"}, + {file = "fonttools-4.49.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:7c7125068e04a70739dad11857a4d47626f2b0bd54de39e8622e89701836eabd"}, + {file = "fonttools-4.49.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:29e89d0e1a7f18bc30f197cfadcbef5a13d99806447c7e245f5667579a808036"}, + {file = "fonttools-4.49.0-cp38-cp38-win32.whl", hash = "sha256:9d95fa0d22bf4f12d2fb7b07a46070cdfc19ef5a7b1c98bc172bfab5bf0d6844"}, + {file = "fonttools-4.49.0-cp38-cp38-win_amd64.whl", hash = "sha256:768947008b4dc552d02772e5ebd49e71430a466e2373008ce905f953afea755a"}, + {file = "fonttools-4.49.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:08877e355d3dde1c11973bb58d4acad1981e6d1140711230a4bfb40b2b937ccc"}, + {file = "fonttools-4.49.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fdb54b076f25d6b0f0298dc706acee5052de20c83530fa165b60d1f2e9cbe3cb"}, + {file = "fonttools-4.49.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0af65c720520710cc01c293f9c70bd69684365c6015cc3671db2b7d807fe51f2"}, + {file = "fonttools-4.49.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f255ce8ed7556658f6d23f6afd22a6d9bbc3edb9b96c96682124dc487e1bf42"}, + {file = "fonttools-4.49.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d00af0884c0e65f60dfaf9340e26658836b935052fdd0439952ae42e44fdd2be"}, + {file = "fonttools-4.49.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:263832fae27481d48dfafcc43174644b6706639661e242902ceb30553557e16c"}, + {file = "fonttools-4.49.0-cp39-cp39-win32.whl", hash = "sha256:0404faea044577a01bb82d47a8fa4bc7a54067fa7e324785dd65d200d6dd1133"}, + {file = "fonttools-4.49.0-cp39-cp39-win_amd64.whl", hash = "sha256:b050d362df50fc6e38ae3954d8c29bf2da52be384649ee8245fdb5186b620836"}, + {file = "fonttools-4.49.0-py3-none-any.whl", hash = "sha256:af281525e5dd7fa0b39fb1667b8d5ca0e2a9079967e14c4bfe90fd1cd13e0f18"}, + {file = "fonttools-4.49.0.tar.gz", hash = "sha256:ebf46e7f01b7af7861310417d7c49591a85d99146fc23a5ba82fdb28af156321"}, ] [package.extras] -all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0,<5)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "pycairo", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0)", "xattr", "zopfli (>=0.1.4)"] +all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "pycairo", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0)", "xattr", "zopfli (>=0.1.4)"] graphite = ["lz4 (>=1.7.4.2)"] interpolatable = ["munkres", "pycairo", "scipy"] -lxml = ["lxml (>=4.0,<5)"] +lxml = ["lxml (>=4.0)"] pathops = ["skia-pathops (>=0.5.0)"] plot = ["matplotlib"] repacker = ["uharfbuzz (>=0.23.0)"] @@ -177,14 +177,14 @@ woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] [[package]] name = "fortitudo-tech" -version = "1.0.2" -description = "Python investment and risk management software maintained by Fortitudo Technologies." +version = "1.0.4" +description = "Conditional Value-at-Risk (CVaR) portfolio optimization and Entropy Pooling views / stress-testing in Python." category = "dev" optional = false python-versions = ">=3.9,<3.13" files = [ - {file = "fortitudo_tech-1.0.2-py3-none-any.whl", hash = "sha256:0dba3d97574743245670ad72181d7233fde30de7d923007775e85e97ff44ceb3"}, - {file = "fortitudo_tech-1.0.2.tar.gz", hash = "sha256:873d5b62e10cbf6f73cf054302d697ef87a22002f388b45624d9609190681a2b"}, + {file = "fortitudo_tech-1.0.4-py3-none-any.whl", hash = "sha256:8b8b8967b9ebbdf76c429deb9bce59d9a813970e0dc5664b87f33e3350b14b0a"}, + {file = "fortitudo_tech-1.0.4.tar.gz", hash = "sha256:8d19a3d5327d68d1003c00288afce81d07459460723af0254386ae871fc5fa59"}, ] [package.dependencies] @@ -196,14 +196,14 @@ scipy = ">=1.10,<2.0" [[package]] name = "importlib-resources" -version = "6.1.1" +version = "6.1.2" description = "Read resources from Python packages" category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "importlib_resources-6.1.1-py3-none-any.whl", hash = "sha256:e8bf90d8213b486f428c9c39714b920041cb02c184686a3dee24905aaa8105d6"}, - {file = "importlib_resources-6.1.1.tar.gz", hash = "sha256:3893a00122eafde6894c59914446a512f728a0c1a45f9bb9b63721b6bacf0b4a"}, + {file = "importlib_resources-6.1.2-py3-none-any.whl", hash = "sha256:9a0a862501dc38b68adebc82970140c9e4209fc99601782925178f8386339938"}, + {file = "importlib_resources-6.1.2.tar.gz", hash = "sha256:308abf8474e2dba5f867d279237cd4076482c3de7104a40b41426370e891549b"}, ] [package.dependencies] @@ -211,7 +211,7 @@ zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} [package.extras] docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-ruff", "zipp (>=3.17)"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)", "zipp (>=3.17)"] [[package]] name = "kiwisolver" @@ -329,40 +329,40 @@ files = [ [[package]] name = "matplotlib" -version = "3.8.2" +version = "3.8.3" description = "Python plotting package" category = "dev" optional = false python-versions = ">=3.9" files = [ - {file = "matplotlib-3.8.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:09796f89fb71a0c0e1e2f4bdaf63fb2cefc84446bb963ecdeb40dfee7dfa98c7"}, - {file = "matplotlib-3.8.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6f9c6976748a25e8b9be51ea028df49b8e561eed7809146da7a47dbecebab367"}, - {file = "matplotlib-3.8.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b78e4f2cedf303869b782071b55fdde5987fda3038e9d09e58c91cc261b5ad18"}, - {file = "matplotlib-3.8.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e208f46cf6576a7624195aa047cb344a7f802e113bb1a06cfd4bee431de5e31"}, - {file = "matplotlib-3.8.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:46a569130ff53798ea5f50afce7406e91fdc471ca1e0e26ba976a8c734c9427a"}, - {file = "matplotlib-3.8.2-cp310-cp310-win_amd64.whl", hash = "sha256:830f00640c965c5b7f6bc32f0d4ce0c36dfe0379f7dd65b07a00c801713ec40a"}, - {file = "matplotlib-3.8.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d86593ccf546223eb75a39b44c32788e6f6440d13cfc4750c1c15d0fcb850b63"}, - {file = "matplotlib-3.8.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9a5430836811b7652991939012f43d2808a2db9b64ee240387e8c43e2e5578c8"}, - {file = "matplotlib-3.8.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9576723858a78751d5aacd2497b8aef29ffea6d1c95981505877f7ac28215c6"}, - {file = "matplotlib-3.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ba9cbd8ac6cf422f3102622b20f8552d601bf8837e49a3afed188d560152788"}, - {file = "matplotlib-3.8.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:03f9d160a29e0b65c0790bb07f4f45d6a181b1ac33eb1bb0dd225986450148f0"}, - {file = "matplotlib-3.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:3773002da767f0a9323ba1a9b9b5d00d6257dbd2a93107233167cfb581f64717"}, - {file = "matplotlib-3.8.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:4c318c1e95e2f5926fba326f68177dee364aa791d6df022ceb91b8221bd0a627"}, - {file = "matplotlib-3.8.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:091275d18d942cf1ee9609c830a1bc36610607d8223b1b981c37d5c9fc3e46a4"}, - {file = "matplotlib-3.8.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b0f3b8ea0e99e233a4bcc44590f01604840d833c280ebb8fe5554fd3e6cfe8d"}, - {file = "matplotlib-3.8.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7b1704a530395aaf73912be741c04d181f82ca78084fbd80bc737be04848331"}, - {file = "matplotlib-3.8.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:533b0e3b0c6768eef8cbe4b583731ce25a91ab54a22f830db2b031e83cca9213"}, - {file = "matplotlib-3.8.2-cp312-cp312-win_amd64.whl", hash = "sha256:0f4fc5d72b75e2c18e55eb32292659cf731d9d5b312a6eb036506304f4675630"}, - {file = "matplotlib-3.8.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:deaed9ad4da0b1aea77fe0aa0cebb9ef611c70b3177be936a95e5d01fa05094f"}, - {file = "matplotlib-3.8.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:172f4d0fbac3383d39164c6caafd3255ce6fa58f08fc392513a0b1d3b89c4f89"}, - {file = "matplotlib-3.8.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c7d36c2209d9136cd8e02fab1c0ddc185ce79bc914c45054a9f514e44c787917"}, - {file = "matplotlib-3.8.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5864bdd7da445e4e5e011b199bb67168cdad10b501750367c496420f2ad00843"}, - {file = "matplotlib-3.8.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ef8345b48e95cee45ff25192ed1f4857273117917a4dcd48e3905619bcd9c9b8"}, - {file = "matplotlib-3.8.2-cp39-cp39-win_amd64.whl", hash = "sha256:7c48d9e221b637c017232e3760ed30b4e8d5dfd081daf327e829bf2a72c731b4"}, - {file = "matplotlib-3.8.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:aa11b3c6928a1e496c1a79917d51d4cd5d04f8a2e75f21df4949eeefdf697f4b"}, - {file = "matplotlib-3.8.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1095fecf99eeb7384dabad4bf44b965f929a5f6079654b681193edf7169ec20"}, - {file = "matplotlib-3.8.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:bddfb1db89bfaa855912261c805bd0e10218923cc262b9159a49c29a7a1c1afa"}, - {file = "matplotlib-3.8.2.tar.gz", hash = "sha256:01a978b871b881ee76017152f1f1a0cbf6bd5f7b8ff8c96df0df1bd57d8755a1"}, + {file = "matplotlib-3.8.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:cf60138ccc8004f117ab2a2bad513cc4d122e55864b4fe7adf4db20ca68a078f"}, + {file = "matplotlib-3.8.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5f557156f7116be3340cdeef7f128fa99b0d5d287d5f41a16e169819dcf22357"}, + {file = "matplotlib-3.8.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f386cf162b059809ecfac3bcc491a9ea17da69fa35c8ded8ad154cd4b933d5ec"}, + {file = "matplotlib-3.8.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3c5f96f57b0369c288bf6f9b5274ba45787f7e0589a34d24bdbaf6d3344632f"}, + {file = "matplotlib-3.8.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:83e0f72e2c116ca7e571c57aa29b0fe697d4c6425c4e87c6e994159e0c008635"}, + {file = "matplotlib-3.8.3-cp310-cp310-win_amd64.whl", hash = "sha256:1c5c8290074ba31a41db1dc332dc2b62def469ff33766cbe325d32a3ee291aea"}, + {file = "matplotlib-3.8.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:5184e07c7e1d6d1481862ee361905b7059f7fe065fc837f7c3dc11eeb3f2f900"}, + {file = "matplotlib-3.8.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d7e7e0993d0758933b1a241a432b42c2db22dfa37d4108342ab4afb9557cbe3e"}, + {file = "matplotlib-3.8.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:04b36ad07eac9740fc76c2aa16edf94e50b297d6eb4c081e3add863de4bb19a7"}, + {file = "matplotlib-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c42dae72a62f14982f1474f7e5c9959fc4bc70c9de11cc5244c6e766200ba65"}, + {file = "matplotlib-3.8.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:bf5932eee0d428192c40b7eac1399d608f5d995f975cdb9d1e6b48539a5ad8d0"}, + {file = "matplotlib-3.8.3-cp311-cp311-win_amd64.whl", hash = "sha256:40321634e3a05ed02abf7c7b47a50be50b53ef3eaa3a573847431a545585b407"}, + {file = "matplotlib-3.8.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:09074f8057917d17ab52c242fdf4916f30e99959c1908958b1fc6032e2d0f6d4"}, + {file = "matplotlib-3.8.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5745f6d0fb5acfabbb2790318db03809a253096e98c91b9a31969df28ee604aa"}, + {file = "matplotlib-3.8.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b97653d869a71721b639714b42d87cda4cfee0ee74b47c569e4874c7590c55c5"}, + {file = "matplotlib-3.8.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:242489efdb75b690c9c2e70bb5c6550727058c8a614e4c7716f363c27e10bba1"}, + {file = "matplotlib-3.8.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:83c0653c64b73926730bd9ea14aa0f50f202ba187c307a881673bad4985967b7"}, + {file = "matplotlib-3.8.3-cp312-cp312-win_amd64.whl", hash = "sha256:ef6c1025a570354297d6c15f7d0f296d95f88bd3850066b7f1e7b4f2f4c13a39"}, + {file = "matplotlib-3.8.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c4af3f7317f8a1009bbb2d0bf23dfaba859eb7dd4ccbd604eba146dccaaaf0a4"}, + {file = "matplotlib-3.8.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4c6e00a65d017d26009bac6808f637b75ceade3e1ff91a138576f6b3065eeeba"}, + {file = "matplotlib-3.8.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e7b49ab49a3bea17802df6872f8d44f664ba8f9be0632a60c99b20b6db2165b7"}, + {file = "matplotlib-3.8.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6728dde0a3997396b053602dbd907a9bd64ec7d5cf99e728b404083698d3ca01"}, + {file = "matplotlib-3.8.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:813925d08fb86aba139f2d31864928d67511f64e5945ca909ad5bc09a96189bb"}, + {file = "matplotlib-3.8.3-cp39-cp39-win_amd64.whl", hash = "sha256:cd3a0c2be76f4e7be03d34a14d49ded6acf22ef61f88da600a18a5cd8b3c5f3c"}, + {file = "matplotlib-3.8.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:fa93695d5c08544f4a0dfd0965f378e7afc410d8672816aff1e81be1f45dbf2e"}, + {file = "matplotlib-3.8.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e9764df0e8778f06414b9d281a75235c1e85071f64bb5d71564b97c1306a2afc"}, + {file = "matplotlib-3.8.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:5e431a09e6fab4012b01fc155db0ce6dccacdbabe8198197f523a4ef4805eb26"}, + {file = "matplotlib-3.8.3.tar.gz", hash = "sha256:7b416239e9ae38be54b028abbf9048aff5054a9aba5416bef0bd17f9162ce161"}, ] [package.dependencies] @@ -379,48 +379,48 @@ python-dateutil = ">=2.7" [[package]] name = "numpy" -version = "1.26.3" +version = "1.26.4" description = "Fundamental package for array computing in Python" category = "main" optional = false python-versions = ">=3.9" files = [ - {file = "numpy-1.26.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:806dd64230dbbfaca8a27faa64e2f414bf1c6622ab78cc4264f7f5f028fee3bf"}, - {file = "numpy-1.26.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02f98011ba4ab17f46f80f7f8f1c291ee7d855fcef0a5a98db80767a468c85cd"}, - {file = "numpy-1.26.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d45b3ec2faed4baca41c76617fcdcfa4f684ff7a151ce6fc78ad3b6e85af0a6"}, - {file = "numpy-1.26.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bdd2b45bf079d9ad90377048e2747a0c82351989a2165821f0c96831b4a2a54b"}, - {file = "numpy-1.26.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:211ddd1e94817ed2d175b60b6374120244a4dd2287f4ece45d49228b4d529178"}, - {file = "numpy-1.26.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b1240f767f69d7c4c8a29adde2310b871153df9b26b5cb2b54a561ac85146485"}, - {file = "numpy-1.26.3-cp310-cp310-win32.whl", hash = "sha256:21a9484e75ad018974a2fdaa216524d64ed4212e418e0a551a2d83403b0531d3"}, - {file = "numpy-1.26.3-cp310-cp310-win_amd64.whl", hash = "sha256:9e1591f6ae98bcfac2a4bbf9221c0b92ab49762228f38287f6eeb5f3f55905ce"}, - {file = "numpy-1.26.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b831295e5472954104ecb46cd98c08b98b49c69fdb7040483aff799a755a7374"}, - {file = "numpy-1.26.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9e87562b91f68dd8b1c39149d0323b42e0082db7ddb8e934ab4c292094d575d6"}, - {file = "numpy-1.26.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c66d6fec467e8c0f975818c1796d25c53521124b7cfb760114be0abad53a0a2"}, - {file = "numpy-1.26.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f25e2811a9c932e43943a2615e65fc487a0b6b49218899e62e426e7f0a57eeda"}, - {file = "numpy-1.26.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:af36e0aa45e25c9f57bf684b1175e59ea05d9a7d3e8e87b7ae1a1da246f2767e"}, - {file = "numpy-1.26.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:51c7f1b344f302067b02e0f5b5d2daa9ed4a721cf49f070280ac202738ea7f00"}, - {file = "numpy-1.26.3-cp311-cp311-win32.whl", hash = "sha256:7ca4f24341df071877849eb2034948459ce3a07915c2734f1abb4018d9c49d7b"}, - {file = "numpy-1.26.3-cp311-cp311-win_amd64.whl", hash = "sha256:39763aee6dfdd4878032361b30b2b12593fb445ddb66bbac802e2113eb8a6ac4"}, - {file = "numpy-1.26.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:a7081fd19a6d573e1a05e600c82a1c421011db7935ed0d5c483e9dd96b99cf13"}, - {file = "numpy-1.26.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:12c70ac274b32bc00c7f61b515126c9205323703abb99cd41836e8125ea0043e"}, - {file = "numpy-1.26.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f784e13e598e9594750b2ef6729bcd5a47f6cfe4a12cca13def35e06d8163e3"}, - {file = "numpy-1.26.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5f24750ef94d56ce6e33e4019a8a4d68cfdb1ef661a52cdaee628a56d2437419"}, - {file = "numpy-1.26.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:77810ef29e0fb1d289d225cabb9ee6cf4d11978a00bb99f7f8ec2132a84e0166"}, - {file = "numpy-1.26.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8ed07a90f5450d99dad60d3799f9c03c6566709bd53b497eb9ccad9a55867f36"}, - {file = "numpy-1.26.3-cp312-cp312-win32.whl", hash = "sha256:f73497e8c38295aaa4741bdfa4fda1a5aedda5473074369eca10626835445511"}, - {file = "numpy-1.26.3-cp312-cp312-win_amd64.whl", hash = "sha256:da4b0c6c699a0ad73c810736303f7fbae483bcb012e38d7eb06a5e3b432c981b"}, - {file = "numpy-1.26.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1666f634cb3c80ccbd77ec97bc17337718f56d6658acf5d3b906ca03e90ce87f"}, - {file = "numpy-1.26.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:18c3319a7d39b2c6a9e3bb75aab2304ab79a811ac0168a671a62e6346c29b03f"}, - {file = "numpy-1.26.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b7e807d6888da0db6e7e75838444d62495e2b588b99e90dd80c3459594e857b"}, - {file = "numpy-1.26.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4d362e17bcb0011738c2d83e0a65ea8ce627057b2fdda37678f4374a382a137"}, - {file = "numpy-1.26.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b8c275f0ae90069496068c714387b4a0eba5d531aace269559ff2b43655edd58"}, - {file = "numpy-1.26.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:cc0743f0302b94f397a4a65a660d4cd24267439eb16493fb3caad2e4389bccbb"}, - {file = "numpy-1.26.3-cp39-cp39-win32.whl", hash = "sha256:9bc6d1a7f8cedd519c4b7b1156d98e051b726bf160715b769106661d567b3f03"}, - {file = "numpy-1.26.3-cp39-cp39-win_amd64.whl", hash = "sha256:867e3644e208c8922a3be26fc6bbf112a035f50f0a86497f98f228c50c607bb2"}, - {file = "numpy-1.26.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3c67423b3703f8fbd90f5adaa37f85b5794d3366948efe9a5190a5f3a83fc34e"}, - {file = "numpy-1.26.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46f47ee566d98849323f01b349d58f2557f02167ee301e5e28809a8c0e27a2d0"}, - {file = "numpy-1.26.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a8474703bffc65ca15853d5fd4d06b18138ae90c17c8d12169968e998e448bb5"}, - {file = "numpy-1.26.3.tar.gz", hash = "sha256:697df43e2b6310ecc9d95f05d5ef20eacc09c7c4ecc9da3f235d39e71b7da1e4"}, + {file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"}, + {file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2"}, + {file = "numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07"}, + {file = "numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a"}, + {file = "numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20"}, + {file = "numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2"}, + {file = "numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218"}, + {file = "numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b"}, + {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b"}, + {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed"}, + {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a"}, + {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0"}, + {file = "numpy-1.26.4-cp312-cp312-win32.whl", hash = "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110"}, + {file = "numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818"}, + {file = "numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c"}, + {file = "numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be"}, + {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764"}, + {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3"}, + {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd"}, + {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c"}, + {file = "numpy-1.26.4-cp39-cp39-win32.whl", hash = "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6"}, + {file = "numpy-1.26.4-cp39-cp39-win_amd64.whl", hash = "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0"}, + {file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"}, ] [[package]] @@ -437,37 +437,41 @@ files = [ [[package]] name = "pandas" -version = "2.1.4" +version = "2.2.1" description = "Powerful data structures for data analysis, time series, and statistics" category = "dev" optional = false python-versions = ">=3.9" files = [ - {file = "pandas-2.1.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bdec823dc6ec53f7a6339a0e34c68b144a7a1fd28d80c260534c39c62c5bf8c9"}, - {file = "pandas-2.1.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:294d96cfaf28d688f30c918a765ea2ae2e0e71d3536754f4b6de0ea4a496d034"}, - {file = "pandas-2.1.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b728fb8deba8905b319f96447a27033969f3ea1fea09d07d296c9030ab2ed1d"}, - {file = "pandas-2.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00028e6737c594feac3c2df15636d73ace46b8314d236100b57ed7e4b9ebe8d9"}, - {file = "pandas-2.1.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:426dc0f1b187523c4db06f96fb5c8d1a845e259c99bda74f7de97bd8a3bb3139"}, - {file = "pandas-2.1.4-cp310-cp310-win_amd64.whl", hash = "sha256:f237e6ca6421265643608813ce9793610ad09b40154a3344a088159590469e46"}, - {file = "pandas-2.1.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b7d852d16c270e4331f6f59b3e9aa23f935f5c4b0ed2d0bc77637a8890a5d092"}, - {file = "pandas-2.1.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bd7d5f2f54f78164b3d7a40f33bf79a74cdee72c31affec86bfcabe7e0789821"}, - {file = "pandas-2.1.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0aa6e92e639da0d6e2017d9ccff563222f4eb31e4b2c3cf32a2a392fc3103c0d"}, - {file = "pandas-2.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d797591b6846b9db79e65dc2d0d48e61f7db8d10b2a9480b4e3faaddc421a171"}, - {file = "pandas-2.1.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d2d3e7b00f703aea3945995ee63375c61b2e6aa5aa7871c5d622870e5e137623"}, - {file = "pandas-2.1.4-cp311-cp311-win_amd64.whl", hash = "sha256:dc9bf7ade01143cddc0074aa6995edd05323974e6e40d9dbde081021ded8510e"}, - {file = "pandas-2.1.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:482d5076e1791777e1571f2e2d789e940dedd927325cc3cb6d0800c6304082f6"}, - {file = "pandas-2.1.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8a706cfe7955c4ca59af8c7a0517370eafbd98593155b48f10f9811da440248b"}, - {file = "pandas-2.1.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0513a132a15977b4a5b89aabd304647919bc2169eac4c8536afb29c07c23540"}, - {file = "pandas-2.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e9f17f2b6fc076b2a0078862547595d66244db0f41bf79fc5f64a5c4d635bead"}, - {file = "pandas-2.1.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:45d63d2a9b1b37fa6c84a68ba2422dc9ed018bdaa668c7f47566a01188ceeec1"}, - {file = "pandas-2.1.4-cp312-cp312-win_amd64.whl", hash = "sha256:f69b0c9bb174a2342818d3e2778584e18c740d56857fc5cdb944ec8bbe4082cf"}, - {file = "pandas-2.1.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3f06bda01a143020bad20f7a85dd5f4a1600112145f126bc9e3e42077c24ef34"}, - {file = "pandas-2.1.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ab5796839eb1fd62a39eec2916d3e979ec3130509930fea17fe6f81e18108f6a"}, - {file = "pandas-2.1.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edbaf9e8d3a63a9276d707b4d25930a262341bca9874fcb22eff5e3da5394732"}, - {file = "pandas-2.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ebfd771110b50055712b3b711b51bee5d50135429364d0498e1213a7adc2be8"}, - {file = "pandas-2.1.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8ea107e0be2aba1da619cc6ba3f999b2bfc9669a83554b1904ce3dd9507f0860"}, - {file = "pandas-2.1.4-cp39-cp39-win_amd64.whl", hash = "sha256:d65148b14788b3758daf57bf42725caa536575da2b64df9964c563b015230984"}, - {file = "pandas-2.1.4.tar.gz", hash = "sha256:fcb68203c833cc735321512e13861358079a96c174a61f5116a1de89c58c0ef7"}, + {file = "pandas-2.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8df8612be9cd1c7797c93e1c5df861b2ddda0b48b08f2c3eaa0702cf88fb5f88"}, + {file = "pandas-2.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0f573ab277252ed9aaf38240f3b54cfc90fff8e5cab70411ee1d03f5d51f3944"}, + {file = "pandas-2.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f02a3a6c83df4026e55b63c1f06476c9aa3ed6af3d89b4f04ea656ccdaaaa359"}, + {file = "pandas-2.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c38ce92cb22a4bea4e3929429aa1067a454dcc9c335799af93ba9be21b6beb51"}, + {file = "pandas-2.2.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:c2ce852e1cf2509a69e98358e8458775f89599566ac3775e70419b98615f4b06"}, + {file = "pandas-2.2.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:53680dc9b2519cbf609c62db3ed7c0b499077c7fefda564e330286e619ff0dd9"}, + {file = "pandas-2.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:94e714a1cca63e4f5939cdce5f29ba8d415d85166be3441165edd427dc9f6bc0"}, + {file = "pandas-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f821213d48f4ab353d20ebc24e4faf94ba40d76680642fb7ce2ea31a3ad94f9b"}, + {file = "pandas-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c70e00c2d894cb230e5c15e4b1e1e6b2b478e09cf27cc593a11ef955b9ecc81a"}, + {file = "pandas-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e97fbb5387c69209f134893abc788a6486dbf2f9e511070ca05eed4b930b1b02"}, + {file = "pandas-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:101d0eb9c5361aa0146f500773395a03839a5e6ecde4d4b6ced88b7e5a1a6403"}, + {file = "pandas-2.2.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7d2ed41c319c9fb4fd454fe25372028dfa417aacb9790f68171b2e3f06eae8cd"}, + {file = "pandas-2.2.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:af5d3c00557d657c8773ef9ee702c61dd13b9d7426794c9dfeb1dc4a0bf0ebc7"}, + {file = "pandas-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:06cf591dbaefb6da9de8472535b185cba556d0ce2e6ed28e21d919704fef1a9e"}, + {file = "pandas-2.2.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:88ecb5c01bb9ca927ebc4098136038519aa5d66b44671861ffab754cae75102c"}, + {file = "pandas-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:04f6ec3baec203c13e3f8b139fb0f9f86cd8c0b94603ae3ae8ce9a422e9f5bee"}, + {file = "pandas-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a935a90a76c44fe170d01e90a3594beef9e9a6220021acfb26053d01426f7dc2"}, + {file = "pandas-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c391f594aae2fd9f679d419e9a4d5ba4bce5bb13f6a989195656e7dc4b95c8f0"}, + {file = "pandas-2.2.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9d1265545f579edf3f8f0cb6f89f234f5e44ba725a34d86535b1a1d38decbccc"}, + {file = "pandas-2.2.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:11940e9e3056576ac3244baef2fedade891977bcc1cb7e5cc8f8cc7d603edc89"}, + {file = "pandas-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:4acf681325ee1c7f950d058b05a820441075b0dd9a2adf5c4835b9bc056bf4fb"}, + {file = "pandas-2.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9bd8a40f47080825af4317d0340c656744f2bfdb6819f818e6ba3cd24c0e1397"}, + {file = "pandas-2.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:df0c37ebd19e11d089ceba66eba59a168242fc6b7155cba4ffffa6eccdfb8f16"}, + {file = "pandas-2.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:739cc70eaf17d57608639e74d63387b0d8594ce02f69e7a0b046f117974b3019"}, + {file = "pandas-2.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9d3558d263073ed95e46f4650becff0c5e1ffe0fc3a015de3c79283dfbdb3df"}, + {file = "pandas-2.2.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4aa1d8707812a658debf03824016bf5ea0d516afdea29b7dc14cf687bc4d4ec6"}, + {file = "pandas-2.2.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:76f27a809cda87e07f192f001d11adc2b930e93a2b0c4a236fde5429527423be"}, + {file = "pandas-2.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:1ba21b1d5c0e43416218db63037dbe1a01fc101dc6e6024bcad08123e48004ab"}, + {file = "pandas-2.2.1.tar.gz", hash = "sha256:0ab90f87093c13f3e8fa45b48ba9f39181046e8f3317d3aadb2fffbb1b978572"}, ] [package.dependencies] @@ -478,31 +482,32 @@ numpy = [ ] python-dateutil = ">=2.8.2" pytz = ">=2020.1" -tzdata = ">=2022.1" +tzdata = ">=2022.7" [package.extras] -all = ["PyQt5 (>=5.15.6)", "SQLAlchemy (>=1.4.36)", "beautifulsoup4 (>=4.11.1)", "bottleneck (>=1.3.4)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=0.8.1)", "fsspec (>=2022.05.0)", "gcsfs (>=2022.05.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.8.0)", "matplotlib (>=3.6.1)", "numba (>=0.55.2)", "numexpr (>=2.8.0)", "odfpy (>=1.4.1)", "openpyxl (>=3.0.10)", "pandas-gbq (>=0.17.5)", "psycopg2 (>=2.9.3)", "pyarrow (>=7.0.0)", "pymysql (>=1.0.2)", "pyreadstat (>=1.1.5)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)", "pyxlsb (>=1.0.9)", "qtpy (>=2.2.0)", "s3fs (>=2022.05.0)", "scipy (>=1.8.1)", "tables (>=3.7.0)", "tabulate (>=0.8.10)", "xarray (>=2022.03.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.3)", "zstandard (>=0.17.0)"] -aws = ["s3fs (>=2022.05.0)"] -clipboard = ["PyQt5 (>=5.15.6)", "qtpy (>=2.2.0)"] -compression = ["zstandard (>=0.17.0)"] -computation = ["scipy (>=1.8.1)", "xarray (>=2022.03.0)"] +all = ["PyQt5 (>=5.15.9)", "SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)", "beautifulsoup4 (>=4.11.2)", "bottleneck (>=1.3.6)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=2022.12.0)", "fsspec (>=2022.11.0)", "gcsfs (>=2022.11.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.9.2)", "matplotlib (>=3.6.3)", "numba (>=0.56.4)", "numexpr (>=2.8.4)", "odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "pandas-gbq (>=0.19.0)", "psycopg2 (>=2.9.6)", "pyarrow (>=10.0.1)", "pymysql (>=1.0.2)", "pyreadstat (>=1.2.0)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "qtpy (>=2.3.0)", "s3fs (>=2022.11.0)", "scipy (>=1.10.0)", "tables (>=3.8.0)", "tabulate (>=0.9.0)", "xarray (>=2022.12.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)", "zstandard (>=0.19.0)"] +aws = ["s3fs (>=2022.11.0)"] +clipboard = ["PyQt5 (>=5.15.9)", "qtpy (>=2.3.0)"] +compression = ["zstandard (>=0.19.0)"] +computation = ["scipy (>=1.10.0)", "xarray (>=2022.12.0)"] consortium-standard = ["dataframe-api-compat (>=0.1.7)"] -excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.0.10)", "pyxlsb (>=1.0.9)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.3)"] -feather = ["pyarrow (>=7.0.0)"] -fss = ["fsspec (>=2022.05.0)"] -gcp = ["gcsfs (>=2022.05.0)", "pandas-gbq (>=0.17.5)"] -hdf5 = ["tables (>=3.7.0)"] -html = ["beautifulsoup4 (>=4.11.1)", "html5lib (>=1.1)", "lxml (>=4.8.0)"] -mysql = ["SQLAlchemy (>=1.4.36)", "pymysql (>=1.0.2)"] -output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.8.10)"] -parquet = ["pyarrow (>=7.0.0)"] -performance = ["bottleneck (>=1.3.4)", "numba (>=0.55.2)", "numexpr (>=2.8.0)"] -plot = ["matplotlib (>=3.6.1)"] -postgresql = ["SQLAlchemy (>=1.4.36)", "psycopg2 (>=2.9.3)"] -spss = ["pyreadstat (>=1.1.5)"] -sql-other = ["SQLAlchemy (>=1.4.36)"] +excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)"] +feather = ["pyarrow (>=10.0.1)"] +fss = ["fsspec (>=2022.11.0)"] +gcp = ["gcsfs (>=2022.11.0)", "pandas-gbq (>=0.19.0)"] +hdf5 = ["tables (>=3.8.0)"] +html = ["beautifulsoup4 (>=4.11.2)", "html5lib (>=1.1)", "lxml (>=4.9.2)"] +mysql = ["SQLAlchemy (>=2.0.0)", "pymysql (>=1.0.2)"] +output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.9.0)"] +parquet = ["pyarrow (>=10.0.1)"] +performance = ["bottleneck (>=1.3.6)", "numba (>=0.56.4)", "numexpr (>=2.8.4)"] +plot = ["matplotlib (>=3.6.3)"] +postgresql = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "psycopg2 (>=2.9.6)"] +pyarrow = ["pyarrow (>=10.0.1)"] +spss = ["pyreadstat (>=1.2.0)"] +sql-other = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)"] test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"] -xml = ["lxml (>=4.8.0)"] +xml = ["lxml (>=4.9.2)"] [[package]] name = "pillow" @@ -607,14 +612,14 @@ diagrams = ["jinja2", "railroad-diagrams"] [[package]] name = "python-dateutil" -version = "2.8.2" +version = "2.9.0.post0" description = "Extensions to the standard Python datetime module" category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ - {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, - {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, ] [package.dependencies] @@ -622,58 +627,58 @@ six = ">=1.5" [[package]] name = "pytz" -version = "2023.3.post1" +version = "2024.1" description = "World timezone definitions, modern and historical" category = "dev" optional = false python-versions = "*" files = [ - {file = "pytz-2023.3.post1-py2.py3-none-any.whl", hash = "sha256:ce42d816b81b68506614c11e8937d3aa9e41007ceb50bfdcb0749b921bf646c7"}, - {file = "pytz-2023.3.post1.tar.gz", hash = "sha256:7b4fddbeb94a1eba4b557da24f19fdf9db575192544270a9101d8509f9f43d7b"}, + {file = "pytz-2024.1-py2.py3-none-any.whl", hash = "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"}, + {file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"}, ] [[package]] name = "scipy" -version = "1.11.4" +version = "1.12.0" description = "Fundamental algorithms for scientific computing in Python" category = "main" optional = false python-versions = ">=3.9" files = [ - {file = "scipy-1.11.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bc9a714581f561af0848e6b69947fda0614915f072dfd14142ed1bfe1b806710"}, - {file = "scipy-1.11.4-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:cf00bd2b1b0211888d4dc75656c0412213a8b25e80d73898083f402b50f47e41"}, - {file = "scipy-1.11.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9999c008ccf00e8fbcce1236f85ade5c569d13144f77a1946bef8863e8f6eb4"}, - {file = "scipy-1.11.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:933baf588daa8dc9a92c20a0be32f56d43faf3d1a60ab11b3f08c356430f6e56"}, - {file = "scipy-1.11.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8fce70f39076a5aa62e92e69a7f62349f9574d8405c0a5de6ed3ef72de07f446"}, - {file = "scipy-1.11.4-cp310-cp310-win_amd64.whl", hash = "sha256:6550466fbeec7453d7465e74d4f4b19f905642c89a7525571ee91dd7adabb5a3"}, - {file = "scipy-1.11.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f313b39a7e94f296025e3cffc2c567618174c0b1dde173960cf23808f9fae4be"}, - {file = "scipy-1.11.4-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:1b7c3dca977f30a739e0409fb001056484661cb2541a01aba0bb0029f7b68db8"}, - {file = "scipy-1.11.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:00150c5eae7b610c32589dda259eacc7c4f1665aedf25d921907f4d08a951b1c"}, - {file = "scipy-1.11.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:530f9ad26440e85766509dbf78edcfe13ffd0ab7fec2560ee5c36ff74d6269ff"}, - {file = "scipy-1.11.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5e347b14fe01003d3b78e196e84bd3f48ffe4c8a7b8a1afbcb8f5505cb710993"}, - {file = "scipy-1.11.4-cp311-cp311-win_amd64.whl", hash = "sha256:acf8ed278cc03f5aff035e69cb511741e0418681d25fbbb86ca65429c4f4d9cd"}, - {file = "scipy-1.11.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:028eccd22e654b3ea01ee63705681ee79933652b2d8f873e7949898dda6d11b6"}, - {file = "scipy-1.11.4-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:2c6ff6ef9cc27f9b3db93a6f8b38f97387e6e0591600369a297a50a8e96e835d"}, - {file = "scipy-1.11.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b030c6674b9230d37c5c60ab456e2cf12f6784596d15ce8da9365e70896effc4"}, - {file = "scipy-1.11.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad669df80528aeca5f557712102538f4f37e503f0c5b9541655016dd0932ca79"}, - {file = "scipy-1.11.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ce7fff2e23ab2cc81ff452a9444c215c28e6305f396b2ba88343a567feec9660"}, - {file = "scipy-1.11.4-cp312-cp312-win_amd64.whl", hash = "sha256:36750b7733d960d7994888f0d148d31ea3017ac15eef664194b4ef68d36a4a97"}, - {file = "scipy-1.11.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6e619aba2df228a9b34718efb023966da781e89dd3d21637b27f2e54db0410d7"}, - {file = "scipy-1.11.4-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:f3cd9e7b3c2c1ec26364856f9fbe78695fe631150f94cd1c22228456404cf1ec"}, - {file = "scipy-1.11.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d10e45a6c50211fe256da61a11c34927c68f277e03138777bdebedd933712fea"}, - {file = "scipy-1.11.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91af76a68eeae0064887a48e25c4e616fa519fa0d38602eda7e0f97d65d57937"}, - {file = "scipy-1.11.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6df1468153a31cf55ed5ed39647279beb9cfb5d3f84369453b49e4b8502394fd"}, - {file = "scipy-1.11.4-cp39-cp39-win_amd64.whl", hash = "sha256:ee410e6de8f88fd5cf6eadd73c135020bfbbbdfcd0f6162c36a7638a1ea8cc65"}, - {file = "scipy-1.11.4.tar.gz", hash = "sha256:90a2b78e7f5733b9de748f589f09225013685f9b218275257f8a8168ededaeaa"}, + {file = "scipy-1.12.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:78e4402e140879387187f7f25d91cc592b3501a2e51dfb320f48dfb73565f10b"}, + {file = "scipy-1.12.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:f5f00ebaf8de24d14b8449981a2842d404152774c1a1d880c901bf454cb8e2a1"}, + {file = "scipy-1.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e53958531a7c695ff66c2e7bb7b79560ffdc562e2051644c5576c39ff8efb563"}, + {file = "scipy-1.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e32847e08da8d895ce09d108a494d9eb78974cf6de23063f93306a3e419960c"}, + {file = "scipy-1.12.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4c1020cad92772bf44b8e4cdabc1df5d87376cb219742549ef69fc9fd86282dd"}, + {file = "scipy-1.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:75ea2a144096b5e39402e2ff53a36fecfd3b960d786b7efd3c180e29c39e53f2"}, + {file = "scipy-1.12.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:408c68423f9de16cb9e602528be4ce0d6312b05001f3de61fe9ec8b1263cad08"}, + {file = "scipy-1.12.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:5adfad5dbf0163397beb4aca679187d24aec085343755fcdbdeb32b3679f254c"}, + {file = "scipy-1.12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3003652496f6e7c387b1cf63f4bb720951cfa18907e998ea551e6de51a04467"}, + {file = "scipy-1.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b8066bce124ee5531d12a74b617d9ac0ea59245246410e19bca549656d9a40a"}, + {file = "scipy-1.12.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8bee4993817e204d761dba10dbab0774ba5a8612e57e81319ea04d84945375ba"}, + {file = "scipy-1.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:a24024d45ce9a675c1fb8494e8e5244efea1c7a09c60beb1eeb80373d0fecc70"}, + {file = "scipy-1.12.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e7e76cc48638228212c747ada851ef355c2bb5e7f939e10952bc504c11f4e372"}, + {file = "scipy-1.12.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:f7ce148dffcd64ade37b2df9315541f9adad6efcaa86866ee7dd5db0c8f041c3"}, + {file = "scipy-1.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c39f92041f490422924dfdb782527a4abddf4707616e07b021de33467f917bc"}, + {file = "scipy-1.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7ebda398f86e56178c2fa94cad15bf457a218a54a35c2a7b4490b9f9cb2676c"}, + {file = "scipy-1.12.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:95e5c750d55cf518c398a8240571b0e0782c2d5a703250872f36eaf737751338"}, + {file = "scipy-1.12.0-cp312-cp312-win_amd64.whl", hash = "sha256:e646d8571804a304e1da01040d21577685ce8e2db08ac58e543eaca063453e1c"}, + {file = "scipy-1.12.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:913d6e7956c3a671de3b05ccb66b11bc293f56bfdef040583a7221d9e22a2e35"}, + {file = "scipy-1.12.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:bba1b0c7256ad75401c73e4b3cf09d1f176e9bd4248f0d3112170fb2ec4db067"}, + {file = "scipy-1.12.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:730badef9b827b368f351eacae2e82da414e13cf8bd5051b4bdfd720271a5371"}, + {file = "scipy-1.12.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6546dc2c11a9df6926afcbdd8a3edec28566e4e785b915e849348c6dd9f3f490"}, + {file = "scipy-1.12.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:196ebad3a4882081f62a5bf4aeb7326aa34b110e533aab23e4374fcccb0890dc"}, + {file = "scipy-1.12.0-cp39-cp39-win_amd64.whl", hash = "sha256:b360f1b6b2f742781299514e99ff560d1fe9bd1bff2712894b52abe528d1fd1e"}, + {file = "scipy-1.12.0.tar.gz", hash = "sha256:4bf5abab8a36d20193c698b0f1fc282c1d083c94723902c447e5d2f1780936a3"}, ] [package.dependencies] -numpy = ">=1.21.6,<1.28.0" +numpy = ">=1.22.4,<1.29.0" [package.extras] dev = ["click", "cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy", "pycodestyle", "pydevtool", "rich-click", "ruff", "types-psutil", "typing_extensions"] doc = ["jupytext", "matplotlib (>2)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (==0.9.0)", "sphinx (!=4.1.0)", "sphinx-design (>=0.2.0)"] -test = ["asv", "gmpy2", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] +test = ["asv", "gmpy2", "hypothesis", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] [[package]] name = "six" @@ -689,14 +694,14 @@ files = [ [[package]] name = "tzdata" -version = "2023.4" +version = "2024.1" description = "Provider of IANA time zone data" category = "dev" optional = false python-versions = ">=2" files = [ - {file = "tzdata-2023.4-py2.py3-none-any.whl", hash = "sha256:aa3ace4329eeacda5b7beb7ea08ece826c28d761cda36e747cfbf97996d39bf3"}, - {file = "tzdata-2023.4.tar.gz", hash = "sha256:dd54c94f294765522c77399649b4fefd95522479a664a0cec87f41bebc6148c9"}, + {file = "tzdata-2024.1-py2.py3-none-any.whl", hash = "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252"}, + {file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd"}, ] [[package]] diff --git a/pyproject.toml b/pyproject.toml index 257f4ab..bb63067 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "entropy-pooling" -version = "1.0.1" +version = "1.0.2" description = "Entropy Pooling in Python with a BSD 3-Clause license." authors = ["Fortitudo Technologies "] license = "BSD-3-Clause"