diff --git a/README.md b/README.md index 219b9f9..3215a9c 100644 --- a/README.md +++ b/README.md @@ -13,9 +13,7 @@ Hyperelastic Surrogates ## Installation -```bash -pip install hyper-surrogate -``` +- Read the [installation guide](https://jpsferreira.github.io/hyper-surrogate/installation.html) for more information. ## Usage diff --git a/docs/custom.js b/docs/custom.js new file mode 100644 index 0000000..5900142 --- /dev/null +++ b/docs/custom.js @@ -0,0 +1,10 @@ +document.addEventListener("DOMContentLoaded", function () { + renderMathInElement(document.body, { + delimiters: [ + { left: "$$", right: "$$", display: true }, + { left: "$", right: "$", display: false }, + { left: "\\[", right: "\\]", display: true }, + { left: "\\(", right: "\\)", display: false }, + ], + }); +}); diff --git a/docs/installation.md b/docs/installation.md new file mode 100644 index 0000000..ee19d20 --- /dev/null +++ b/docs/installation.md @@ -0,0 +1,54 @@ +# Installation + +## From source + +- Clone the repository + +```zsh +git clone https://github.com/jpsferreira/hyper-surrogate.git +cd hyper-surrogate +``` + +- Install dependencies + +```zsh +poetry install +``` + +or + +```zsh +uv install +``` + +- Load python environment + +```zsh +poetry shell +``` + +or + +```zsh +source .venv/bin/activate +``` + +- Run tests + +```zsh +pytest +``` + +## From PyPI + +```zsh +pip install hyper-surrogate +``` + +```zsh +poetry add hyper-surrogate +``` + +```zsh +uv add hyper-surrogate +``` diff --git a/docs/tutorial1.ipynb b/docs/tutorial1.ipynb new file mode 100644 index 0000000..b428916 --- /dev/null +++ b/docs/tutorial1.ipynb @@ -0,0 +1,338 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Import required libraries**" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import pandas as pd\n", + "import seaborn as sns\n", + "\n", + "from hyper_surrogate.deformation_gradient import DeformationGradientGenerator\n", + "from hyper_surrogate.kinematics import Kinematics as K" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "def create_dataframe(f):\n", + " # initialize the kinematics calculator\n", + " kk = K()\n", + " pstr = kk.principal_stretches(f)\n", + " return pd.DataFrame({\n", + " \"I1\": kk.invariant1(f),\n", + " \"I2\": kk.invariant2(f),\n", + " \"I3\": kk.invariant3(f),\n", + " \"Max Principal Stretch\": np.max(pstr, axis=1),\n", + " \"Min Principal Stretch\": np.min(pstr, axis=1),\n", + " })\n", + "\n", + "\n", + "def plot_invariants_distribution(df):\n", + " plt.figure(figsize=(10, 5))\n", + " plt.subplot(1, 2, 1)\n", + " # with probs instead of counts. kernel density estimation. bars without outline\n", + " sns.histplot(df[\"I1\"], kde=True, stat=\"probability\", color=\"blue\", alpha=0.5, legend=True)\n", + " # overlap I2 plot\n", + " sns.histplot(df[\"I2\"], kde=True, stat=\"probability\", color=\"red\", alpha=0.5, legend=True)\n", + " # add legend\n", + " plt.legend([\"I1\", \"I2\"])\n", + " plt.xlabel(\"value\")\n", + " plt.subplot(1, 2, 2)\n", + " # I1-I2 plot\n", + " sns.scatterplot(x=\"I1\", y=\"I2\", data=df, alpha=0.5, color=\"black\")\n", + " # label axes only subplot 2\n", + " plt.xlabel(\"I1\")\n", + " plt.ylabel(\"I2\")\n", + " plt.tight_layout()\n", + " plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Define the number of test cases**" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "SIZE = 1000" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Generate N random Deformation Gradients**" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1000, 3, 3)" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "f = DeformationGradientGenerator(seed=42, size=SIZE).generate()\n", + "f.shape" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the deformation gradients generated, we can calculate a few kinematic quantities that may useful as simulation data for a machine learning model. \n", + "\n", + "Current `DeformationGradientGenerator` can directly calculate the following quantities:\n", + "\n", + "- Invariants of the deformation gradient tensor: $I_1 = \\text{tr}(\\mathbf{F}), I_2 = \\frac{1}{2}(\\text{tr}(\\mathbf{F})^2 - \\text{tr}(\\mathbf{F}^2)), I_3 = \\text{det}(\\mathbf{F})$\n", + "\n", + "- Left Cauchy-Green tensor: $\\mathbf{B} = \\mathbf{F}^T\\mathbf{F}$\n", + "\n", + "- Right Cauchy-Green tensor: $\\mathbf{C} = \\mathbf{F}\\mathbf{F}^T$\n", + "\n", + "- Principal stretches (Sqrt of Eigenvalues of $\\mathbf{C}$): $\\lambda_1, \\lambda_2, \\lambda_3$\n", + "\n", + "- Principal directions: $\\mathbf{n}_1, \\mathbf{n}_2, \\mathbf{n}_3$\n", + "\n", + "- Right Stretch tensor: $\\mathbf{U} = \\mathbf{F}\\mathbf{F}^T$\n", + "\n", + "- Left Stretch tensor: $\\mathbf{V} = \\mathbf{F}^T\\mathbf{F}$\n", + "\n", + "- Rotation tensor: $\\mathbf{R} = \\mathbf{F}\\mathbf{U}^{-1}$" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
I1I2I3Max Principal StretchMin Principal Stretch
03.5551733.7020951.02.0688150.417534
17.8868646.1191321.07.0922000.229114
27.2911356.0036181.07.9106140.183201
34.0533224.2215591.02.8455940.305125
43.5326983.6375001.01.9128900.367945
\n", + "
" + ], + "text/plain": [ + " I1 I2 I3 Max Principal Stretch Min Principal Stretch\n", + "0 3.555173 3.702095 1.0 2.068815 0.417534\n", + "1 7.886864 6.119132 1.0 7.092200 0.229114\n", + "2 7.291135 6.003618 1.0 7.910614 0.183201\n", + "3 4.053322 4.221559 1.0 2.845594 0.305125\n", + "4 3.532698 3.637500 1.0 1.912890 0.367945" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# drop selected quantities into a dataframe\n", + "df = create_dataframe(f)\n", + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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tEWLFtlJJ51kmzdvdts5d05Ojh100EFluu69995rtWvXLng0a9as3GMUQgghhBBCCJFexL3gWrTp16+fnX/++da+fXuXP/7BBx/Yhg0b7NVXXz2g8952220uZN0/lixZErUxCyGEEEIIIYRIbbLjdWHysLOysvarMs7r4oqplRUc7latWtn8+fPda85NyDuCPOh+l3RdcsyLyzMXQgghhBBCCCESzvkm9JtiZ5988knBury8PPe6e/fuUbvOli1bbMGCBdaoUSP3mmtWqlSp0HXnzJnj8sKjeV0hhBBCCCGEECLuzjfQZmzw4MF23HHH2fHHH+/6dm/dutVVP4dLLrnEmjRp4vKtAcd69uzZBc+XLVtm06ZNc726jzjiCLf+N7/5jZ199tnWokUL10KMNmY47BdccIHbTr72FVdc4a598MEHW61atexXv/qVE97dunWL23shhBBCCCGEECJ1iav4HjRokK1Zs8buuOMOV+ysY8eOrlCaL8KGG00FdA9iulOnTgWvH3roIffo2bOnffbZZ27d0qVLndBet26dHXLIIXbiiSe6FmI89/z973935x04cKCrYk5u+D//+U9LNbZv3+4mKYqLPqhatWqFjkkIIYQQQggh0pGM/Pz8/HgPIhmh1RguOsXXcM8TjcMaNrRfbthoO3buKHKfKpWr2I033mCHPPSQbfnjH0s8Z8unn7aFy5dHeaRCCCFS9bsolqTzvQshhEjO76K4Ot8iduTl5zvh3anj5Va58v5/CDt3brKp054t1hkXQgghhBBCCBEdUq7VmCgMwrtKldr7PSIJciGEECIajB071tVfady4sWVkZNjbb79d5L5XX32124e6L0IIIUQqI/EthBBCiKhC8dQOHTrYE088Uex+b731lqvLgkgXQgghUh2FnQshhBAiqvTr1889ioOOJXQb+eijj+yss86qsLEJIYRIXzZv3mw//PCDa0dNxyw6ZNWsWbPCri/xLYQQQogKJS8vz37xi1/YLbfcYm3bti3VMXQn4REsciOEEEKUlu+//97effdd+/HHHwvW0Xr6pz/9qR166KFWESjsXAghhBAVyv3332/Z2dl2ww03lPqYe++911WU9Y9mzZrFdIxCCCFSy/F+N0x4A69Zz/aKQOJbCCGEEBXG5MmT7dFHH7XnnnvOFVorLbfddptr5eIfS5Ysiek4hRAinUB8zpw509XhYFlRYrSiINQ8XHh7WM/2ikBh50IIIYSoMD7//HNbvXq1NW/evGBdbm6u/frXv3YVzwkLjETlypXdQwghROqFY8cacrwPZHu0kPgWQgghRIVBrnfv3r0Lrevbt69bf9lll8VtXEIIkY5FwEoKx+ZzuSILksUK3tcD2R4tJL6FEEIIEVX4ATl//vyC14sWLbJp06Y5JwXHu27duoX2r1SpkjVs2NCOOuqoOIxWCCHS13UuTTj2McccY8lOixYt3Psa6V5Zz/aKQDnfQgghhIgqkyZNsk6dOrkHDBkyxD2/44474j00IYRIGBKhCFiihGPHGtx7JjQQ2kF4fc4551SYuy/nW+yDf1wbNpg1aWJWhiI4QgghRJBevXpZfn5+qfcvKs9bCCFSmURwnRMlHLsiIJKAMHr1+RZxpQE/kN55x2zGDKremHXrZtanjwS4EEIIIYQQKew6J0o4dkWB0I5nGL3CztOd/Hz7H+J72rSQ8IYJE8zef99tE0IIIYQQQqSm65wo4djpgpzvNCf7hx+sh3uSTQlas7VrzYYPpxGr2RFHmLVuHe8hCiGEEEIIkXIkiuucCOHY6YLEd5pTefz40JPjjjOj5yoPPgC+/NKMbRLfQgghhBBCxMx1jlTtvKJd53iHY6cLEt9pDA1dsletMrJJapx44r4NXbuGhPfixWZLl5o1bRrPYQohhBBCCJGSyHVOL5TzncaEGsCY/Zv/VK++bwP/2Nu3Dz33zrgQQgghhBAiZq5zt27d3FLCO3WR+E5TMvJy7bC9z9+IVNWciufw7bdmmzZV6NiEEEIIIYQQItWQ+E5T6mxebpXNLK9aNfsm0g4NGoTCzal4PmdOxQ9QCCGEEEIIIVIIie805ZCN37vlnhYtLL+oft5HkRVuZnPnVuDIhBBCCCGEECL1kPhOU+pt2Cu+Dz206J28+F60yGzXrgoamRBCCCGEENFn8+bNNnPmTJswYYJb8lqIikTVztOQyjs2Ws3t6yxvr/NdJPXqmdWpY7Z+vdmCBRU5RCGEEEIIIQ4YBPbixYtdK6+RI0fa7t27rXLlygUtvWj1RcVxISoCie805OD1891ymZnVqlKl6B0JR2/VyuyrrxR6LoQQQgghkorvv//e9dDOycmxsWPH2vLly61q1ap21FFH2UEHHeQEOdtp9aUK46IiUNh5GlJr01K3XFianQN535kUXxNCCCGEECIJHG+ENQI7Pz/fCW/Yvn27zZkzx3bu3Oles50e20JUBHK+05Cam1e4JR9BLfe2Edu4ceN++zFLWLV5c56YbdtmrapVq/CxCiGEEEIIUVYQ1Ahr2LFjR6FtCHB++9avX9+93rJlS1zGKNIPie80IzNvj1Xfuto9R4I/8+yzLvf77488st++VSpXsRtvvMGqNmvmcr67qOiaEEIIIYRIAoKCukqENMtdgd+1NWrUqLBxifRG4jvNqL5llWVYvu3MrmKb9uywtm0utozZL1q3rjcU2m/nzk02ddqz7oPJi+/jJL6FEEIIIUQSEBTUGRkZ1rhx44LQcx/h6YuutSiuALEQUUQ532lGzS2hkPMNVeu6ZU5OTbMMZgRrF3pUrlxr30F7P5Cc8628byGEEEIIkeAgqBHWsGbNGjvttNOcAAeKrtWuXdttP+ecc1RsTVQYcr7TjBp7xffGanXNNlPvvBQ0aWKWmWkN8/JCPb9btoztIIUQQgghhDgAENS0EfNF13C9Tz75ZNdmrGnTptaoUSMn0CW8RUUi8Z2mxdY2VK1X+oMqVTJjpnDpUrPPP5f4FkIIIYQQCQ/9u2kjRvE1csAJRZfgjk/lef0/CCHxnUZk5OVa9a2rCoWdlxqqniO+v/jCbPDg2AxQCCGEEEKIKILIO+aYY+I9DEv3Xuu+8jwQ7k9UApMj6YZyvtMIqpxn5ufZ7uwqtj2nRtnFN+B8CyGEEEIIIUQpe60H+fHHH916tqcbEt9pmO+9pUYjyj6WT3zPmWO2fn0MRieEEEIIIYRIxV7r4fz4449ue7oh8Z1GVN+21i23Vq9f9oOrVrUfsrJCzydPjvLIhBBCCCGEEKnaa70821MRie80ouq2dW65jUrn5WAGhddg0qRoDksIIYQQQgiRwr3Wy7M9FZH4TiOqbQ8539vKUuk8gMS3EEIIIYQQoqy91sM5+OCD3fZ0Q+I7jSqdV90eytWW8y2EEEIIIYSoiF7r4QL84IMPtnPOOSct242p1ViaUHXHesuwfNuTlWO7cmqa7dhY5nPM8uKb4ghr15rVK5+DLoQQQgghhEh91Gu9MBLfaULVvcXWttPfu6yVzveyOTPTrFUrs7lzQ0XX+vaN8iiFEEIIIYQQqYR6re9DYedpQrUDLLZWwHHHhZYKPRdCCCGEEKLCoC/2zJkzbcKECW6Zjn2ykx0532lXbC0K4vvFFyW+hRBCCCGEqCC+//57e/fddwv1zSZ3mpxqQrtFciDnO82c7+1yvoUQQgghhEgacLjDhTfwmvVywJMHOd9pQtXt6w6ozVgBHTqElkuX8i+eKbcojE4IIYQQQoiKA8GaLEXAGGe48Pawnu3KqU4O4u58P/HEEy5UokqVKta1a1ebOHFikfvOmjXLBg4c6PbPyMiwRx55ZL997r33XuvSpYv7x1O/fn3r37+/zZkzp9A+vXr1cscHH1dffbWlKtm7t1vO7m0Rne/c/EzLzT/elm+vU7qT1apldthhoefffBP1sQohhBBCCBHrEO6hQ4fa66+/biNGjHBLXrM+EWGC4EC2i8QhruL7lVdesSFDhtif/vQnmzJlinXo0MH69u1rq1evjrj/tm3brGXLlnbfffdZw4YNI+4zZswYu+6661whgpEjR9ru3butT58+tnXr1kL7XXnllbZixYqCxwMPPGCpSrW9lc535tS03KycgvXr7VC75ts7baeNt4sn3mAPzPmpE+Oldr8lvoUQQgghRBKRjCHcOPMHsl0kDnEV3w8//LATwfR+a9OmjT311FNWrVo1e/bZZyPuj6P94IMP2s9//nOrXLlyxH2Yvbr00kutbdu2Tsw/99xztnjxYptMa6wAXAcB7x+1cHRTlKrbf9yv0vnOvBx7yYbb6l2hMPR8y7APVx5rj847s+QTtm8fWk6fHqMRCyGEEEIIEZ8Q7kSDkHiKq0WC9WwXyUHcxPeuXbucIO7du/e+wWRmutfjx4+P2nU2btzoluF/sMOGDbN69eq5/IjbbrvNuerFsXPnTtu0aVOhR7JQZccGt9xRZV9o+ah1J9oaO8bqZG+0KtbM7m77smVang1fcZxN/PHw4k8o51sIIYQQQiQhyRjCTTotVc3D9QyvzznnnITNVRcJVHBt7dq1lpubaw0aNCi0ntffffddVK6Rl5dnN910k51wwgmFihBceOGFboaocePGNn36dLv11ltdXvibb75Z5LnIJb/rrrssGamy04vvg9wyNz/D3l3Txz0/v+GH9sKy5XZSve9sQJOv7PVl3e2x+WfaU8dMK1l8z5pltmePWbbq9gkhhBBCiMQnWUO4qXlFtHCyFIkTkUlp1UTuNw3ov/jii0Lrr7rqqoLn7dq1s0aNGtlpp51mCxYssMMPj+z64o6Tn+7B+W7WrJkll/MdEt+T1x9uq3YdYlVtnZ128Hh7YVlov0sP/cw+Wd3Olm2va6PXdbYi/ylTcI0PJmYG5841a9Omgu5ECCGEEEKIAw/hjhR6nugh3AhtVTVPbuIWdk7Id1ZWlq1atarQel4XVUytLFx//fX23nvv2ejRo61p06bF7kuVdZg/f36R+5BjTl548JEshIvvL9cd5ZZt7DWrnLm7YL/q2Tvt/KahkP9Xl5/m8sAjkpnJrEXouULPhRBCCCFEkqAQbpGW4jsnJ8c6d+5sn3zySaEwcV5379693OfNz893wvutt96yTz/91A7zbbGKYdq0UIg1DniqkZGfZ1V2hPLet1c5yPLzzcava+VeH2Xv7rf/OY2/thrZ223pjga20Pbl4++H8r6FEEIIIUQS4kO4zzvvPDvjjDPckteJ7HqL1CCuYeeEcQ8ePNiOO+44O/74413fblqC8ccPl1xyiTVp0sTlW/sibbNnzy54vmzZMiecyXk44ogjCkLNX3zxRXvnnXfczNXKlSvd+tq1a1vVqlVdaDnbzzzzTKtbt67L+b755pvt5JNPtva+incKUXnXFsuwfMvLyLRdOTVtwdaGtmZnbaucudMOy/vUzC4vtH+17F12eoPp9tayrjbF/s/Miih+J/EthBBCCCGSFIVwi7RrNTZo0CB76KGH7I477rCOHTs6IU2rMF+EjRZh9OD2LF++3Dp16uQerOdYnv/f/yESQzz55JOuwnmvXr2ck+0f9BT3jvuoUaNc7+/WrVvbr3/9axs4cKANHz7cUpGqOzftCznPyLBpG0IzesfUmGPZtjPiMWc1nOKW31l/W7uteuQT+4mKmTNjMm4hhBDJy9ixY+3ss892hU0zMjLs7bffLti2e/duV+iUmivVq1d3+zDZzne8EEIIkcrEveAaIeI8IvHZZ5/tFyJCWHlxlLSdImljxoyxdKFAfFcO5XvP3hQqEte62nyzIrqlHV5jlbWq/oPN3drCXvq2i93eaOr+O/kia0uX0s+N0IJY3YIQQogkgyi2Dh062OWXX24DBgwotI3WnlOmTLE//vGPbp/169fbjTfe6HIwJ02aFLcxCyGEECkvvkUFie+qXnyHis8dVX2B5RZzXN/6X9ncRS3sfzO72R9OmYppXpiDDjJr0sRs2bJQy7EePWJ2D0IIIZKLfv36uUckSAMbOXJkoXX/+Mc/XPoZEW/NmzevoFEKIYQQaRR2LmJPtZ0bC5zvNTtr2qqdB1mm5dmR1RYVe1zPg6dYJdtqc9c3sInLmkTeqW3b0BLxLYQQQpQT0sUITz+Iid0i2Llzp2vzGXwIIVKHzZs3uxbBEyZMcEteC5FqyPlOcYI539/udb0Pq77aqmZFzvcOth07yt6xmXahvTqrrXVturcZeLj4/vhjiW8hhBDlZseOHS4H/IILLii2jSfFV++6664KHZsQomL4/vvv7d133y3Ue5vWX6SjkHYqRKog5zuNxPfCraFCdkfW3FfErjjoAw6vzW7rWpTth5xvIYQQBwDF1372s5+5ei0UTC2O2267zTnk/rFkyZIKG6cQInbgcIcLb+A16+WARxdFGMQXOd8pPrNCq7F94ru+e96y+qpSHX+EjbAalXbYkk217atlIde8EL49g8S3EEKIcgrvH374wT799NNiXW+oXLmyewghUgs+A8KFt4f1bFdLsOigCIP4I+c7heFnTKbr8Z1lu3Jq2KK9znfL6qtLdXwl22H9WoaENaHnRVY8px3c+vVRHLkQQoh0EN7z5s1z7T/r1q0b7yEJIeLEli1bDmi7KB2KMEgMJL5TGF+2ZkeV2rYjL8eWbT+4IOe7tPRvNc0tX5/dxvLzw0qe16xp5qvSyv0WQggR+LE8bdo094BFixa551QzR3ifd955rq3YsGHDLDc311auXOkeu3btivfQhRAVTI0aNQ5oe7xJljDu0kQYiNijsPMUxgfw7axc237YdojlW4bVrrTV6lTaYpu2l+4cp7X4zmrm7HSh540qdYqc9714cUh8n3hiVMcvhBAiOUFYn3LKKQWvhwwZ4paDBw+2O++807ks0LFjx0LHjR492nr16lXBoxVCxJMWLVq40OdIwpD1bE9UkimMWxEGiYGc77QQ37Vs0dZDCkLO9+vZXQxVsvfYmUfOc8+37ehTdNG1mTMPfMBCCCFSAgQ0RdTCH88995z7QRppGw8JbyHSj5o1azqximgNwutzzjnHbU9Eki2MO9kjDFIFOd9pIr6Xbg/l0zWrurbM5zm71Rx7ZdYxtm3n6ftvVMVzIYQQQghxADApd9lll7nQZxxYhCCOd6IK72QsFJfMEQaphMR3uojvDSHx3aRq5A+J4uh35HzLysiz3XuOtmb1u1ql7H3tXdrv2mVvm9naMWPs+MaN3bqGjRrZuMmTo3QXQgghhBAi1UFoJ5JYTbUwbh9hEClMPpEjDFINie80Ed++2FrTquvKfJ6Dq263E5svtjE/HGq3dL7Tbuj61b6NFMe5916rl5dnCy++2KxaNWv59NPRugUhhBBCCBEDCItOJqc50UjGMO5kjDBINSS+00B878ipZUu3hZzvptXK7nz70HPE9/C5rQqL75wcs4MOMtuwwWz1av5VR2PoQgghhBAiRiRTobBEnVRI1jDuZIswSDVUcC1FycnPNz/ftjKjkWs1lml51qhK+fpxn33UXLcc8/2htnFH5cIbDwkVc7M1aw5ozEIIIYQQIrYkW6Gwsk4qDB061F5//XUbMWKEW/Ka9bGga9eutnPnTlu9erVbgsK4RXHI+U5RGuTluWVuRpYt3N0stK7KRquUmVuu87Wqu84ybI7tzjvKPl5wuJ3fdva+jfXrm82bF3K+hRBCCCFEwpJshcKiNalAuHW0BLGPHNi4caNzuOnWAO3bt3cPCW9RFHK+U5SGuSGRvSOnhi3b4YutlT3fO0iWfeiWiO9CyPkWQgghhEgKkq1QWDQnFaIt8nNzc23lypW2atUq95isgsOiBCS+U5RGe53vnTk1bOWOg0Lrqmw4oHNmZXzslh8tOML2TvDtc74B57vQBiGEEEIIkUgkY6GwRJpUqCiRL1IThZ2nKI0KnO+atnJnSHw3PFDxbWOtctYeW7Kpts1ZV89a19vbM7xevdBy+3azrVsPcORCCCGEECJWJGuhsESZVIi2yFfV+fRC4jtFabjX+SbsfNW22u55g3KI702bNhU8z8jYbt2bLLDPFh9lb89sYjd2XWJVq1Y1q1TJrE4ds/XrFXouhBBCCJHAJGK/52gI0IqaVIimyE/lqvMiMhLfKR527sT3j3ud78qlF9979uxwy2eefbZgHWfMXvwfM3vQnh2TYzbhMbvxxhtCApzQc8S3iq4JIYQQQiQ0idTvOVoC9EAmFcoi/qMl8iuyQJxIHCS+U7zg2racWrZmZ62CauelJTd3l1u2bXOx1awZCivP+OoxG9DuEBs1w2xxZm/bsjPPdu3aFRLfFF2bM0fOtxBCCCFEEpAI/Z6jLUDLM6lQVvEfrciBVK06L4pH4jvFne+VGQ0tzzKtUsYeOzin7IUmcnJqWpUqobB1yzBrXWebHZyz2X7cVdMW24n7dlTFcyGEEEIIUQZiIUDLMqlQXvEfjciBVK06L2JQ7Xz06NHlOUxUFLt3W/294vuH/FDoS/0qGy0z48ArkWdkmHWus9A9X2SnRRbfqnguhBBCCCESXIAeSOVyL/K7devmlmUNEU/VqvMiBuL7jDPOsMMPP9z+8pe/2JIlS8pzChFLVq50/2MJPP9+TzO3qkHl0oecl0Sngxa55ffWa9/KQMXzenuFvxBCCCGESG9wl2fOnGkTJkxwS14nigAtrfgv7h7Ki88dj0QyV50XMQg7X7Zsmf3vf/+z559/3u666y479dRT7YorrrD+/ftbTk5OeU4posmyZW7Bx8Lq3XULnO9o0emg791yuXWxLbveMReUHqh4fsSePVG7lhBCCCGESE5KyqeOV9szX2Bt48aNtnr1aqtdu7ZVrlx5v/1ws2NVkTwRq86LBHW+69WrZzfffLNNmzbNvvrqK2vVqpVde+211rhxY7vhhhvsm2++if5IRelZvtwtmKtbuyuUr31Izr6WYQcK/cIbVF5neVbJvlp+2H6h50dKfAshhBBCpDUl5VOz3QvQcAc4lgIUMT106FB7/fXXbdGiRbZhwwanaViGjwHNU9I9HAg+d/y8885zkcUseS3XO3U54IJrxx57rDVs2NDq1q1r9913nz377LP2z3/+07p3725PPfWUtW3bNjojFaVnxQq34ONg7a5Qm7FDKkdPfEP7mvNt5M669vnSI21Ah5X7xPfcuRLfQgghhBBpTmmLqVVk27PwCYE1a9bYaaedZp988onNmTPHOnbs6BxwL/7ZHuuK5IlQdV4kgfjevXu3vfPOO05sjxw50o477jj7xz/+YRdccIH7Q7399tvt/PPPt9mzZ0d3xKJM4nudd76jLb5rzbeRa7vamB8OtY0b33PrKtWoYdXM7PDdu23x4sXuw6QOoehCCCGEECKtKEsxtYoSoOETArm5ubZ8+XI7+eSTLT8/35o3b+6Evxf/5HgXhyqSiwoR37/61a/spZdecn+kv/jFL+yBBx4o9A+mevXq9tBDD7kwdBG/sPOQ8x0S3/WiLL7bVJ/lltPWtLD7HvmPVbYt1sjMfrlXfDdo0cJq165jixYtkAAXQgghhEgz4l1MrbRiGQG+cmUoirNTp06FNE0i3oNIw5xv3OzHH3/czRQ98sgjEWeqyJFQS7L4Ot8bLcs27qkZE+e7btYqq2MLLN+yrdpRD1m3rjfZYcddZzQZq29mN1zwvm3cuD4q1SCFEEIIIURykYjVvMsqphPxHkQaiu8//elPLqQ8vCrgnj17bOzYse55dna29ezZMzqjFOVyvldZqNJ5pYw9Vit7e9Qvc6iFJldmb2trVarUtpzq9WxHlVCO+ZG7FYYjhBBCCJGuxKOYWkl4Mb1z505X5Xzp0qVuyetIYjoR70GkYdj5KaecYitWrLD69fE490G5frYRviHi73yvtMYFrndGRvQv09y+sKn2fzZzY/OCdduqHWJVd2ywBuvmRf+CQgghhBCiXG21Yl3MLBIVWUytNHBd8rsfe+wxW7hwYcH6li1b2qBBgyKOK9HuQaSh+CbXOyOCmlu3bp3L9xZxZPduSje6p0usRUzyvT3N7Eu3nLO5se3Ky7KczFzbWv0Qq/vjPGv449yYXFMIIYQQQpSOWPWoLgvBYmrxnAjw1//iiy/s+OOPty5dutiOHTusSpUqTtew/vDDD484HlUkF3ER3wMGDHBL/kAvvfTSQmHnuN3Tp0+3Hj16RG1wohzsLRix28yWWUv3vF7l2ORdH2zzrXb2ZpdXPndzYzum9hLbWi3U67uhnG8hhBBCiITts42bW5HCNxEmAhD+a9eu3S9yN7hdIlskTM537dq13QPnm3+s/jUPen1fddVV9sILL8RutKLUIedrMjNt896w83o5sRHfxD4cXX2Bez5jb+g5YefQ4Mf5MbmmEEIIIYSITp/tRJkIqKgCvWVpfyZE3J3voUOHuiWzU7/5zW8UYp7A4ntVZqZtzWvgnh+cE7sPktbVF9iEjR1t5qZm7vW26iHxXWvbGotcG1IIIYQQQqST0CzNREBFOM5qHSaSttq5hHdiVzpfnZlpW6yhe14nhuLbO98UXcvPN8vNyrHFGVluXZuYXVUIIYQQQiSL0EyUiQC1DhNJ43wfe+yx9sknn1idOnVcA/pIBdc8U6ZMidb4RDmd79VZWbbF9jrflWL3gday6hLLydxtm/ZUsyXb61nzamttbma2Nc/NlfgWQgghhIgTXmhGcpwrWmgmykSAbx0WKfdcrcNEQolv/iB9gbX+/fvHckwiys53LMPOK2XmWuuay2z6xkNtxsZmTnzPycy23rk7rW3MriqEEEIIISpCaEajQnkiTQSodZhICvFNqHmk5yJBc74zsm2b1XPP6+Rsjeklj6m1xInvWZua2VmNpjrxDXK+hRBCCCHix4EKzWhVKE80xzkercPi3WZNJHGfb5H44ntlxkEupT/Tcq1WpW0xveTRtZa65bebmrolYedefO+J6ZWFEEIIIUQshGa0W5UluuMcS3GcCG3WRJKJb3K9i8vzDlJUNUNRcWHnK6y+W9autNWyMvJjesk2tZa55Q/bDrFte3IKxDeNzpYEeicKIYQQQojkIBYVyqPhOMdCJMdSHCdav3WRJOL7kUceie1IxIGzZ4/Z6tXu6fK9Pb7rVNoU88uSU96g8gZbtfMgm7O5sW3JyLT1NRtbnc3LrdLcuWbt2sV8DEIIIYQQiUYyhxonSoXyWIvkWIvjRGmzJpJMfA8ePDi2IxEHDsKbfl+ZmbY6PxQCXqfS5gq5NEXXEN/fbg5dd+XBR4bE9/z5FXJ9IYQQQohEItlDjROlQnmsRXKsxXEiTmKIJOjzvWnTpkLPi3uUhSeeeMJ9AFWpUsW6du1qEydOLHLfWbNm2cCBA93+hMAX5caXdM4dO3bYddddZ3Xr1nUfHJxz1apVlvT4e6hf3/bkN6hQ8X303tDz7zY3CQ3l4CPc0jnfQgghhBBpRElCke2JTqL1xC6NSE5EcZxokxgiScQ3Od+r94Y0H3TQQe51+MOvLy2vvPKKDRkyxFVPpzd4hw4drG/fvgXXCWfbtm3WsmVLu++++6xhw4blPufNN99sw4cPt9dee83GjBljy5cvtwEDBljKiO8GDSw3r37Fiu+avuhaSHyvrNvKLSvNm1ch1xdCCCGESBRiJRQrEl+hPFyAx6tCeaxEcqzFcaJNYogkCTv/9NNPC/5wRo8eHZWLP/zww3bllVe6MBF46qmn7P3337dnn33Wfve73+23f5cuXdwDIm0vzTk3btxozzzzjL344ot26qmnun2GDh1qRx99tE2YMMG6detmScvKlfvE93cVK76PrLnCMi3P1u6qZQdnN3Jh5yDxLYQQQoh0I1VCjROpQnmsRHKse5AnWps1kSTiu2fPnhGfl5ddu3bZ5MmT7bbbbitYl5mZab1797bx48fH7Jxs3717t1vnad26tTVv3tztU5T43rlzp3t4yhpeX/HO9yEVVnANqmbttsOqr7YFWxvanrxOBWHn2UwIbNhAuESFjEMIIYQQIt6kUqhxPHpiV6RIrghxnEiTGCJJ+3yvX7/eOcjffvute92mTRv3R1VUWEU4a9eutdzcXGvQIJSb7OH1d999V64xleacK1eutJycHBciH74P24ri3nvvtbvuussSGi++GzYsEN8HVZDz7ft9I75353ayHVVqG4HorvwafyPdu1fYOIQQQggh4kms3dR0JJYiuSLEcaJMYogkyfkOMnbsWPdH+thjjzkRzoPnhx12mNuWiuCmE7LuH0uWLLFEdr7zCpzvChTfNUNF1/bkdnLL2X7D7IJnQggh0gB+C5x99tnWuHFjVyD17bffLrQ9Pz/f7rjjDmvUqJFVrVrVRaPNU5qSSCESLV/aQ6G3mTNnulRLlslQ+C2SSD7vvPPsjDPOcEteR2Myw4tjomBZypUWCeN8Uyl80KBB9uSTT1pWVpZbh+N87bXXum0zZswo8Rz16tVzx4ZXGed1UcXUonFOloSnb9iwoZD7XdJ1K1eu7B4JzV7nfk/dBpaXf3BAfFeq0Irnu/M6WF7eOie++7BC4lsIIdKKrVu3uoKnl19+ecSCpg888ICbtH/++efdxP0f//hHVxx19uzZrlOJEKlAooUaJ3vrM48cZJF2zvf8+fPt17/+dYHwBp5TZZxtpYHQ786dO9snn3xSsC4vL8+97l7OEOXSnJPtlSpVKrTPnDlzbPHixeW+bsKwd9JhfU4o7D7TdlmN7O0Vdvnm1dZY1Szy4qvbjz9Wsll+w6yCZ0IIIdKAfv362V/+8hc799xz99uG602r0Ntvv905gO3bt7f//ve/rvNIuEMuRLKTKG5qKrQ+EyJtxfexxx5bkOsdhHXMdJcWxPq///1vN/PNsddcc42bLfeVyi+55JJCxdNwrKdNm+YePF+2bJl7HhT8JZ2zdu3adsUVV7j9qNpOATa2IbyTutJ5QHyvzgw5+DVslWVm5FfY5bMy8q11zeXu+cqVOQo7F0IIsR+LFi1yNVaChU/5bu7atWuxBVcpekqx0+BDCJE+rc+ESKuw8+nTpxc8v+GGG+zGG290otcLVnJHnnjiCdeDu7QQur5mzRqX98UXcceOHW3EiBEFBdNwo6lW7mFWvFOnUD4xPPTQQ+5B9fXPPvusVOeEv//97+68AwcOdF/mhLr985//tKRmzx6zdevc02V7Qvda3QqH31cErWsus6kbDrOVKyu7gmsO8uP5kVSrVoWPRwghROnYvn27m5AmDJUiqkF27Nhhr776qpsUP1B8cdNIxVGTvvCpEFECJzqa4eqp0vpMiLQR34hYiqYQLub57W9/u99+F154oRPApeX66693j0h4Qe0hHyV4/fKcE8gnY6KAR8qwZg2xfPRWs6Xb67pVNazoHzGxFN/e+d7AnED9+pa9enWo4nnXrhU+HiGEECUzd+5c69Onj5v05rv+xBNPtJdfftkVRAMKjRIlFg3xXV6IhCNqzYPz3axZs7iNR4hkys1OpdZnQqRF2DlhYgsXLnTL4h7sI+KAdwsOOcRWrM6Kq/MN69ZR5K2q7TnyyNAG5X0LIUTCcuutt7p81NWrV7s6KDhsJ5xwghPj0cYXNy1rwVWKntaqVavQQ4hUI1a52b71WSTU+kyIBHS+9Y8ywQm0GcNo9jnfFc0hlTdZRsZqy8+vT7yE7Wrd2qp8+aVZKSrgCyGEiA/jxo2zUaNGua4hPIYPH+46mJx00kmuPkr16tWjdi2qmyOyKXxKVJ13sb/66itXp0WIdKY0udnlqfQdyx7ZkWAyje4FvrsQqSzhqSZCpCPlajXm4R8Vs+IUPwvCP24RJ/HdsKGtXRt6Ws32PqlAMjLMKmV+Y7tyTzezLra79d6QwEDNACGEEImX752dve8nAaHntBMlhYu6Ki+++GKZzkf+aLAYKpFxFEjlh37z5s3tpptuctXQjzzyyIJWY/QE79+/f1TvS4hkI5a52RXV+ox/67QSDEbDtmzZ0tWM8hNu0c5pFyKlxTf/mGgfQj/vYB44z33PbxE/53vtqqD4DuV/VyTZWdMKxPeuo+uEVn7zTSgnfe/fiBBCiMShdevWNmnSJDv66KMLrf/HP/5Rrkl1znXKKacUvPa52oMHD7bnnnvO1YyhE8lVV13lnDFyzCmOqh7fIt2JdW52rHtk43iHC2/gNbWWmGhbsmRJQSFntAOFkul4kGz9xoWosFZjVDpnpprcsGrVqtmsWbNs7Nixdtxxx+1XJE1UvPjeW/TcqtreJxVMdua0vc+6hHK+qVjPoIqpYiuEECJ+MKH+0ksvRdyGAL/gggtKVfDU06tXL7d/+APh7X9w33333a66OZXUCXlv1apV1O5HiGQl2XOziYqNVP+JyJr69evb448/7qJeXnnlFfdAPxD1QlFH9RsX6UC5xDd9OPnSJC+Mll08mLWmDQghJSIOeGGL8x3HsHOolPXN3mdH2YadVc180TXlfQshREJCJfEPPvigyO2048zLy6vQMQmRTiA6Z86c6cQrPe/DHe5Y5WZHGyJZgjDRxr106NDB1ZZYsGBBIYFNG2HqPxxyyCHqNy7SgnKFnRNW7v/xI8D5h3PUUUe52TiqpIrEcL7jJb4zM360WrX22KZN2TZjRo61a9/ejL8LQoz69InLmIQQQhTNgAEDStyHH9FvvPFGhYxHiHRuLZaVleVypAnB5nky5URTXC34mcGYqflAW8CpU6c6s46IF/SDTzNBR/jIGvUbF6lOucQ3uSLffPONCz1ndu6BBx6wnJwce/rpp92HhYif+N51cEPzn1vV4hR2Dg0a7HTie/r0ynYh4vu111R0TQghEhTyLYUQidFaDJNr3rx5tm7dOlcgLRlEt4eq5mgBQs/pkoDw5h53795tderUcXphz549tnbtWtf1wBd6JP0E1G9cpDrlEt+33367K5QChJ//5Cc/ce1I6tat6/I3RPzE9/oc38Zhj1W2jXEbToMGu2zevOr2zTc5Zte0D62U+BZCiIRk6NCh8R6CEGlJrFqLxQvaiZGCStE1iq/5EHPCyinoiAhnMoH1O3fuLBDfuOC4/Ime0y5EXMR33759C54fccQR9t1337kPCGa0fMVzUYHs2WM+0Xtddkh8Z2ast4zS18aJifiG6dNzzHC+YfZss927zSpVit/AhBBCCCESBH4/U8CYtr24wkShVK5cuWB7MoZh006MOlDUiKKqOcWZGzVq5NoTE2JO5CyOuO+ORMG1WrVquZD0ZHL5hajwPt9AuwAgl0PEiTVrQm28MjNt5Z56blVW5jqz3HiL7zxbvjzbVlVpYQ34MGX2c+5cs7Zt4zcwIYQQQogEyfVGhAI50AhwnGBCr7dv3+7EaUWGYUez9zYOOAYdPb85H2Hop556qiuutmLFCnduImYR3nRbwBWX8BbpQLnEN7kad911lwsp8TNy/CP91a9+ZX/605+skpzN+BRbq1fP1m3Ick8zM9fHVXzn5GC7f0f2j309KcN+0q6d2bhxodBziW8hhBBCpDEI3ffee8+FYyPAv/3224Jt5EwPGjTIhWhXVBh2eNE3X2G9pN7bxQl23zaNczKRgOt98sknFxRXo27UkUceKdEt0opyiW9E9ptvvukKrXXv3t2tI7TkzjvvdMUhnnzyyWiPU5RGfDdsWNBmLDMzcv5QRbBt2xr739NdLNMesDxrY7+44GH7R940u8jMnrzySnvw178u2Ldho0Y2bvLkuI1VCCGEEKKiQbDiciN4Ma18HjTgEn/22WeuH3ZFCNNIRd+A16wvquhbSYKdY3ju90GAU+nct01L9PzuaEYCCHFA4vvFF1+0l19+2fr161ewrn379i70/IILLpD4ToA2Y7T7ihf5+Xn2QrsL7bGvvrYPbbB1b3i2XdTqE7MPPrBrGje2ay68sGDflk8/HbdxCiGEEELEAwQdDvCyZctcvSSEHa+JLg2Gnidq0bfSCnZEOM+TTcSWNxJAiJiIbwpBRPrDo4ACxSJE/MS3d76zCDuPM43ta7f8enljyz+xgWUExyqEEEIIkaYgQn17LUR3sLAaDjH50gjzSII12o5sSUXdIm0vSbBTXK158+aFxtm2bduEF90HEgkgRMzE9/XXX29//vOfXWsSX5GRdgH33HOP2yYqmJUr94nvvU8zKbgWZxraN5admWtrt1W3xVWONBdctGmTGTO5VavGe3hCCCGEEHEBwXzQQQfttx7Xm6rfkydPdsK1fv36hVxXiLYjW1JRt0jbixPstAxjfBRXS2TnuKhJjFRr/yaSVHwPGDCg0OtRo0ZZ06ZNrUOHDu71N99846o0nnbaadEfpSh1zve6WVbQaizeZNtOa1tvuX2zuplNXHu4tahd22zjRrPVq/nWiffwhBBCCCHiAiLvpJNOss8//9zleHvatWtnM2bMsG3bttnhhx9eSPS9/vrrrjo4UaZUE8c5pz82YesUbxs8eHC5HNlgYbRwWB8pN7s4wU4RuZEjR1pmZmah9f4eaFm8devWuIagFxdWXp5IACGiLr7pOxhk4MCBhV6r1ViihZ3HL+c7yLENljjx/fXyJnZ+gwYh8c14Jb6FEEIIkcYQWn7rrbfasGHDXCVwRDWVzr/77js76qijCvX7BkQ6/bLHjh3r9vcgyDG/CPUmtLs8bm+wMJrHF0aLJI6LE+yMm0rt4ePfsGGDffXVV1a9enVbtfe3azzc8JLCyok8KI6KbP8m0lh8E2IukqjgWgLkfEOnBott6IweLu/bmjUI9flW3rcQQgghhBPZt9xyS4EgXrt2rXXs2HE/4QoI2jlz5hQS3sBrQrwpfnwgRcTKUhitOMHepEkTd54gpKcydorI+Vz3eOVRlxRWTvX5skYCCBHTnG/PmjVr3D8k/+FBmIlIDOc7MyP+Od9wbIPFbjl5eWPL69zAXACSxLcQQggh0piiHOiZM2fapEmTIh5DeiePSCDAw8Ohg9fAVaeX+EYiEAOEi9+y5DIXJdjDhTdwXV+9nVD54DgqOo+6pLBxQv7LGgkgREzFN3ka9Pr+73//a3l5eQXFFS655BJ7/PHHrVq1auU5rSgPe/YwC+Ke7qrTwPa2iEyYsPPWdVdZ1ezdtnlXZfu+8lHWkpXkfOfnm2W4+udCCCGEEGlDcQ50ceHcDRs2dA5yJKpWrep+ixd1jdWrV7uwb8LTEepUVI+G+I0k2CPdg580IESeHPV45lGXFDZOWDwTC4MGDbLZs2e7943ieG3atHG59kIcCIUrIZSSIUOG2JgxY2z48OHuD5LHO++849b9+te/PqABiTKC1Y2Qzcy0dZmhyAPqW2RkbLJEIDszz45ttMI9H7elA2U8iZsyW58YYfFCCCGEEImSbwyIcMRrEF5Tb4kiZgjtILwmAtUfE+kaiF8fnh4pUjWa4teHpAfvAefd56YTORvPPGo/ORAJH1bO5MUrr7zitA1FpVnymvVCVLjz/cYbb7hqhb169SpYd+aZZ7p//D/72c/sySefPKBBiTLgQ7jr1bN1G0IznnXrIr7zLVHo0niZfbmkuU1c2dwupmUGuUq0Ryvig08IIYQQIhUpbRurSOHcwBIhS9g2gprnFEWmEJvfJ9I12A8Q4PQVj7X4DQ9J92HvFI0Luu7F5VFHu5+5p6QCc6A+3yKhxDe5EJHCLuhFyDYR33xvxPe2xIg6d3RpEioM4oquNWwYEt8rVpi1aRPvoQkhhBBCVBilbWNVVP61F43BgmzhuciRroFAxyQLL3gWjSJiRYnk8HvgOuvWrStVHnVJxeEOlOIKzJF3rz7fIqHEd/fu3e1Pf/qTy/mmaALwj/muu+5y20R8xXe9emaLE0l8N17mltNWNrTcdo0ty6aExLcQQgghRBoRyWEmj9s72fyeRswW5ayWpip5pGsg1glNp1BysODZgRYRK4tILm1F9ZJC86PlPBc1waE+3yLhxPcjjzxiZ5xxhjVt2tQ6dOjg1pEPwT/mjz76KNpjFMVB+HZYmzGc71CN8cTgiIN/tIOqbLcNO6ra/Mpt7Sh7LyS+I4Q9CSGEEEIkI6UJkw4vRkbdJN+Ci5xons+YMaNYh7ekquRFFW2jaBg51/SxpnjygYZyl0ckl6aiemlD82NFSSH46vMtKlx8t2vXzubNm2fDhg2z7777zq274IIL7KKLLtqvCISoIOe7YcNCznciQVHL4xovt1ELD7cvdnaxo1hBeoIvzS6EEEIIkcSU1gEO5huvWLGikPAOViI/EIe3pJzmaPWpjpVIjqXzXJ4JkiDq8y0qXHzv3r3bWrdube+9955deeWVBzwAEb2w83UrElN8Q5e94nvCykPtCoquMW6FngshhBAiyYnkABNKjkGFwL7wwgudAPciz4df08+beklEjtJ+K9gC7EAd3tKGeBd1P6U5LlYiOVbOc3kmSNTnW8RdfFeqVGm/Qg0iQXK+Z+wLO080fN7318ubhIquSXwLIYQQIgUId4CDoeTQvHlzGz16dCGRh4AjWpTca59/He3c4tKEeB9IDnesRHIsnOeyhsgfyOSFEFHv833dddfZ/fffb3v27CnP4SLGOd8J6XzvrXg+c3V921W/aWilxLcQQgghkpygSMbxDgpvwLTyIg8RmKi5xSUJ1ODYS9svO1p9wg/UeS5NiHxRkxfdunVzywMR3rx3VFGfMGGCW4a/lyJ9KFfO99dff22ffPKJffzxxy7/u3r16oW2v/nmm9Eanyhnq7FEo0nNTdawxmZbuaWmzal0jLWz90PiW0UrhBBCCJHEBEUyLrYX3oSS8xu57t4fZkSP4izz2zkRc4vLmsMdy/DsaDvP8axgHuu2aSINxDfVEgcOHBj90YiyQV6QV9wJXHANqLFG3vfwuUfZ5zu7mPva2bzZ6qlAnxBCCCGSEJ8bjahq1qyZrV271oWcU0mckHJ+L1MrCbdz9uzZ7pjFixfbL3/5y4Ic8ETKLS6PQI1leHZ5wuaLIl5RBhXVNk2kqPjOy8uzBx980ObOnet6EZ566ql25513qsJ5vEBt5+WFlG29eoVajSUi5H0jvsetPtKuZYZg7Vprt3t3vIclhBBCCFFuNxPBvWTJEtu2bZsLUSZCNCsry4Wbd+nSxb766qtCznhQdMUrtzhSUbXyCtRoiuRYEa8og3i3TRNJLr7vueceJ7Z79+7tBPdjjz1ma9assWeffTZ2IxQlh5zXq2e787PN1+tIROcbaDcGXy9vbNa0iRPfHSS+hRBCCJFEBN1Mn+ON0CbEfOXKlXbzzTe7quVffPGFffnllwXH8du5du3a+4muihSvjH369Onu4UPj+S3PuM4888yECoOPJvGKMohnuLtIAfH93//+1/75z3+6cBkYNWqUnXXWWfaf//zHMjPLVbtNRKnYmv8c4X/DQQdZQuKLrs1dV8+2HdvCqtk31l7iWwghhBBJAuKVFmGI15ycHCeyfY43Qor2YieeeKIT5DjehxxyiBPlCO+jjjrKKleuXLBvPNz6119/3dVt8mMO9hcfMWKE9e3b1z766KOECIOPNvGIMki0onoiycQ3eSrMinlwwH1fwqZN91awFnEttlanjllWliUk9apts0MPWm/fb6hjs7I7Whd719rv2mWWnx8KnRdCCCGESPBQcwT3/Pnz3TqENa43vbohPz/f5X7jZHfq1Mn9TkbcIWBxyZcuXepEO494uPULFy4sVImd3/CI8ZNPPtm59nQyioZALW2v8NLuFy0qOkQ+0YrqiSQT3/yD9B8uHio3UkxCxFF8N2yY0G3GglB0DfH92Y6u1iUz0w4mZ/37780OOyzeQxNCCCGEKDHUvEGDBoW2IbYbNmxo2dnZTmzXq1fPZsyY4dYjuNmGU47rze9o3OZvv/3WiS/c2GDhNoQ9IrRatWquP3h5hGgkQevPT82mcBDgTBr4Yw9UoJa2unc6VAFPtKJ6IsnEN/8wL7300oKQGWC27+qrry7UbkytxiqIJGkzFl507bXZbW3CykPdpIEtX242caLEtxBCCCESlmDhLAQ2AhrRynNCyhHZiO/DDz/chZ6PHz/ehXMTNUoBNkQt24899li3Hgd6/fr1dvrpp7swb177/uA+FHz06NH2k5/8pExCtChBS8g7FOW483u+PGHQ4UKfMPvSVPdOpyrg8SqqJ1JAfA8ePHi/dRdffHE0xyPKwM4lS4xpkPWVK9vcuVjfda169W22ePFay6MNWQKwadOmQq+Prj3XzPrYxKWNbM8RDSwb8f3112aDBsVtjEIIIYQQxRHM0V63bp0NGDDAiWzEYufOnW3VqlWuxRhi+t///reLDEVg9unTx+rXr+8cZ4RvnTp1nGjH4UaMDxs2zEWQeuEdHgpeFiFanKDlnEwQUFiNyYJg6DngyFOhvSxh0JGEPsczkUCbtXCChebSrQp4MlSEFwkovocOHRq7kYgywWzp1DfesFPN7KZ777X/GuFC99rIkS9bixZXWJVAqkA82LMnNIP6TFgl/J3GjOq1tnRzHXt7+g92HitxvoUQQgghEhTvCCNQCSN/6623XNswokIR0u3atXPRoYjwVq1aOZFLpCivMSJq1arlBDhOOe4wFcY5FlGMKA8Xwz4UvCxClP1WrFjhxuXFvh8HwpsJAQok44IHxT5OO/t17drVnYNJBMLemRTgPJGc2qKEPm3XOHfHjh0LRcqGT2KoCrhIV8okvkXiwIde3b3Cunv//9rMxefYlClmnTufZyed1Nuee6qj2Y717gshHuTmhnKK2ra52GrWLJyIPuyb1bZkR0P7KvcYO8/Gmk2ejFo3y9afoxBCCCESD184C0GLK4049uAk42JPnDjRTjnlFOd0B4U6FcbpAw4I7yOPPNKFlfNbjvNFysMOhoKXVoguW7bMpk2bVkjI+yrrjAVXfurUqW494hiRjug+99xz3fL999936xDj3CNGD8fiYofnYhflXOOgc33O49+HSJMYqgIu0hX1B0tiCsp9NGhnubm13NM6dWpZ7drNLTMjMf7X5uTUtCpVahd6HF071CLta+tlm6hyvm2b2cyZ8R6qEEIIIUSxhbNwc8OFt28hhhjFLUaoeqE9cuRI5wYDAt0fj7hFmCN6i8rD9kWOSyNEEfKcNyi8ud5hhx3mxs65MGQGDRpk5513nvXq1ct1MDr//PPdxALjZPyM2U8ucC5cbFxzn4vNdYqbEPD58JEmFILVvf1kRiRUBVykMrIak5XcXDtk79Mt1Rs4/QpVq1rC07rmcvt4VUdbZl1taqVK1pMP6HHjmIaN99CEEEIIISKC60tBtTZt2uwX1u1hva9uTdj4ggULnADG+WY/BDHgKnO+1atXu9fhedgIWIRsaYUoTjQi2ReC4zqEkY8dO9Zdm3PgRrONnOxgWmJeXp7bjjvuQ+E9QRc7GAJf1IQA4fS4+uwXJLy6t6qAi3RF4jtJyVy/3mjnnWcZtq36IeY/r6tVs4TnqJrL3HK5dbHJ2QHxfe218R6aEEIIIUSRIA6D4dQIXgS0F+M8fHXrMWPGOLHOOvLAt23bVki0I669APUuc7DaOc9LK0Rxor3wxbkmVNwLb45v2bKlNW3a1N577z0n/IM52Yht+pZT4C089xyCLrZ3vIvqX427zjmuu+46N57iqnurCrhIRxJCfD/xxBP24IMP2sqVK61Dhw72+OOP2/HHH1/k/q+99pr98Y9/dFUWyZu5//77XeiMhw+zSDzwwAN2yy23FPyDD5+Vu/fee+13v/udJQNZa9a45baqdSwvM7vA+U4G8X1EjVWWlZFr2/IPsYlZjc1sntn48fEelhBCCCFEsQRFpy8uFixcFuzfzQPB6wl3i2nT6wUov2kRyhQ7Qzg3atSoTEKUcyN8EdKIaAqm4bq3bdu2oB1a0NUO5mQzGYD4ZrsPdQ8SDIv391Ccc3322We7Xujh/dAjoSrgIt2Iu/h+5ZVXbMiQIfbUU0+58JhHHnnE+vbt6z7MIhVqGDdunF1wwQVOKNP78MUXX7T+/fvblClTCv7xUukxyIcffmhXXHGFDRw4sND6u+++26688sqC18k005a1t7H3pmqh4PNkEt85mXvssKrLbf62ZvaVdTPLmG+2cKHZypWh3t9CCCGEEAmIF50UUeM3KS4yord58+Z20kkn2YQJE2zmzJl24YUXut+xkdxhCIaT07qMnt7hIpbrlPa3aXBSADMLZx1XngfCm9e+gFu4m+3bj7GdpQ9dB39s+JhBzrUQZSfuVbkefvhhJ4D5x0sODSKc2bpnw1pUeR599FE744wznIN99NFH25///Gc79thj7R//+EfBPhSwCD7eeecdV32SkJsgfDgE92MGMlnI3Ot8b6lWz/LyqIiZPDnf0KpGqOrnutzjzfyMp9xvIYRICxArRLCRC8uPe0Jz+T7HeRMiUaC4GELaC2pfbAzReeKJJzrTCMFNL28KlfHbFSHK/l988YWL1MSFDi8sxmt+yy5evNi+/vprd1y4cRRe4Ky0kwL+Wt7BDhaEC7raQTebbb6quQ9dR4AHjy0qF9s71926dXNLCW8hEtj5ZtZt8uTJdttttxWso/9g7969bXwRQoz1OOVBcMrffvvtiPvTX5HWCc8///x+2+677z73Zc9sJTOUN998c0EhjHD87KGHno2J4HxvrlavIN87qcR39cX2gfWwXbs7mfXoYTZjRijv+9xz4z00IYQQMYZ0sSeffNJ9NxMWO2nSJDcJj8N2ww03xHt4Qrgw8Egh1QjcunXrupZdn3/+uVtP8TLcZpa4x7i/LAntRoRTYTyY/4wIHjFihK1du9aFZpOb7YUuAthTlh7f4U40ofAIeqqv+9xuX4mc6zLRtXTp0oL8cwwqUjgZJ6HvpH8W1+dbCJGE4pt//Mx+h+eE8Pq7776LeAwfbpH2Z30k+GLnw2LAgAGF1vPljmPOBylhQ0wA8CGFEx8JwtzvuusuSxSC4jtY6Twz7rEMpaNVjcVuuWtPe8vr1sMy//WvkPgWQgiR8vC9i4t21llnFYiGl156yfVJFiLe4DaHC++gG000ZRDMGV89nGN97jTim9+6CFovoNk+dOjQgnP7UHBfcI3JqGBhtkgh66XNocaND94H46DXN5Nds2fPLog0QXgzQVDaPG0hRBLnfMcaQnkuuuii/QpIBN3z9u3buw+4X/7yl05kB1tGeBDnwWNwvps1a2bxLri2udohSdVmzNO86iqrZFtsd35NW9Cghx3JykmT+PZJrhsRQghRZnr06GFPP/20zZ0711WB/uabb5xDWNQEeCJGoInUBee4KNHLevKhvYvMc4ykIIjeYPHfYE/s8HMHf5+SPz5v3jwn2j2LFi1y10GklzWvOjwnm9+6CHyKGyPQOSfXZ6z8+yP9Q+62ECksvuvVq+d6ChIaHoTX5GBHgvWl3Z9wID5kKOpWEuTtMGtJmBFhP+EgyCOJ8oqmR+fOtnLFChu6bp31NLMRXz9hb07m/XjWNm2YZP/820/dfjt2bLBEJisjz5rYRPveTrXPlhxuRzZqRKU8M1yPntyZEEKIVIXOIojn1q1bu98BiJd77rnHTZYXRaJFoInUJSiWmfBBDAdbhPF7MdjWizBtD8ZMv3793MRSpCrnwXODF/Hkf+OS++Jm/lyI47/+9a/Okfa/Q4Ph7yUVOws64eSt87s4SFDolyXE3YOTr4JrQiSJ+OZDrHPnzu6Di4rlkJeX515ff/31EY/p3r27237TTTcVrBs5cqRbH84zzzzjzs8MX0lMmzbN5ZtHqrCeSCC8F151leU+8QRx+3bZYadZtfz+9tBcsy4H1bS/trvK7XfWmLst0Wlm45z4Hjlqq1143HFWffhw2/Duu7bpsMPcB3edOnXiPUQhhBAx4NVXX7Vhw4a5jiWE2fIdzPc6ImTw4MERj0m0CDSRunixHN5KDMjNJjcakezbevEblDZh/I6sVKmSE7TeDcdowglH+CJQOReGEeKdfbyIHz58uMvBpvYQgp9/C6RmvPXWW7Zs2TInwv1vVM5P6gbXD4p5L8pxvCMRLvzLur0sefFFjUGIdCfuYed8kfJFe9xxx7niDrQaYwaRMBm45JJLrEmTJm7GG2688Ubr2bOn/e1vf3O5Yi+//LLLXSF8LQhfylSZZL9IRdu++uorl7ODyOM1xdYuvvjipBF8GXtjzXdWqmYbt4b6i9WutDf+PAnYs2eHNbMv3fPXXltmdW24PWlmkx9+2Ho//LDVrl3HFi1akDT/P4QQQpQeOpbgfv/85z93r9u1a+fcM77rixLfiRKBJlIf3FsEOEWBqchfq1Yt53zz94c4RgxT7Pejjz4qqDmEkOY3JfnTCGqcaoqn0ZmHCEwvUBHWRGyecMIJBSHrnIPftDjmOOEIbQwqWpBxrfDWYIj59957z50/aBr5nHR+Q3v3OehMhwv/cML7kB9IXnxwDEKIBBLfvgLkHXfc4T58Onbs6CpA+oIPhOEwkxjME2Om/Pbbb7ff//73duSRR7pK5+FhMohyCknQEzwcPjzZfuedd7oPQT5YEd/hVdQTlrw8y9g7C7uzUnXbtDuUI12rUqDseYKTm7vLmtqEva+Osgbnf2L22ml2UnYVu/Kij+zfz/d0H+wS30IIkXpQUCr43Q6EnxP9JkS8QTTiaCNQEbne1W7atKn7vekFM79hCRX3jjG9ur/88suCEHVMJY73xdj8b1DEPPuxnd/ACOJRo0Y588kXbMP5xiRCjPM62BqM1wh3WvOGE6yQHu5MRxL+nvAe3kEYE7/HEe/kiWNwMVbek0hivqxV2oVIJ+IuvoEQ86LCzD/77LP91p1//vnuURxXXXWVe0SCKuf0YExatm2zjPx8o0bl7kpVbePu5HO+oaptsKyM7yw3v7XNyTzFtlarZ9W3rbVjtoeKyQkhhEhNzj77bJfjTatPws5p20SxtcsvvzzeQxPCgbBEcBI2jlhG6OJEYxDNmDHDOd8UCiTEmr9jKpgjTINONGIVkY2xFIzawLH2rcVIjyTknCjPYAVyxDFCuXr16k7MB1uDsQ6CgjwIkwGRnOlw4e9d+6J6eAMCngkErrl69Wr3nO5ACHUENqmdhOGHi/myhrALkS71BRJCfIsysvcDjfIe+RmZtmlPcopvyM782nJzW9uSpRn2Q4uTrc23b1rLpWo1I4QQqczjjz9uf/zjH+3aa691P+hx+eg4QhScEIkAopX+2/zgR+SS/004OD/4fQ62D7E+8cQTI1ZHR4wjwMnR9qI8WMCNCBDEPXniiAkq/wdzzBG0jRo1cuemBa8X5hRaY3IgWJwtCOcqqmJ7UPgzKVCciPECnvtfuHChM8SIAgDfA5wJCKJWTj311EJtf8sSwi5EOtUXSJKu0CKS+PZzit75rpWk4hv4LP+hRajK+eHLvorzqIQQQsQSfuhT4wWBgNBYsGCB/eUvfynSyROiIkF0Uq3ci2BEL0KTcGv+ZhHSXgj71mOR8G3EfL42Ap7igjjc8+fPd846qZRMPiFgEcYI4jZt2tgRRxzhjjnjjDPcefz1POSSR8KHjxfnPOOAI8C7devmQsOLcg+9gOfaiG0vvIH3hmgAQupphxYcX3Eh7EKUlZLqC7A9mZDznYzsbWnhP1Z9znft7GQU3yGXm++tBX17uectl39tleI8LiGEEEKkfshqpPW8RgyTz0w4OO40whuHGncX15naROQ9425TqwBHO7wgoG8jxqQS24OuNuvZjgtOFx9yzDk35/AuOVEh5JSfdNJJTtz6vtyMjXpFuIFBguHjJTnPpXGmvYDnusGCb0AIPnWXfLg5+4SPQYho8EMRURzJWl9A4jvJw84LO9/JU3DNk5mxwKpWZQbVbHreMbalen2rsXW1dYv3wIQQQgiRsiGrCGrCxQktDw9lJSQbgUsF8nfeeccVUvMFxqhmfumllxaEYQNVysnPJp8a99pDIbKf/OQnTqCyf1B4016M9YSOhzvHHraxPhjO7ftyMz5qJ+BgR8qB5Tn3Ekm0lNaZ9gLdV18PwoTD+vXr3XkIg8etZ6IiWfNwReKyJcot8uKNxHeSh53n5mfY5j17ne8kDDvPyDCjTevcuWaLl2baosNOs3YzX7Le8R6YEEIIIVI2ZJWWYY899phzsIOONftRUAyne/r06a7ImS94Rug14hcHGxccEL9cgwriFDLjtT8f4pn1iF36cuMUI2RxvL1jzL6I/XA4hrBw2plFgmO5VlGOHwKYfNhIebKldaa9gGe83G+zZs0KQs95/xDkjINWgXQjkugWsaBGFKI4EgmJ7yQX31v2VLN8y0ha5xuaNg2Jbz7PFx7R24nv0+M9KCGEEEKkbMgqYho3mireiMxgWDd9tBGZI0eOdCHgFD3DaSa/GcE7ZcoU+9nPfuZcbvKeWSJCEcsIbPYJd6JxhcePH1/gXAfh+K5duzoxG3Sxge485XWvKURFv+3yVoj2Ap4K5zj+HO+rnRM5wHYmF+hAJOEtYkWLKERxJBIS30kuvjftCbWbqJG93bIykrM/avPmoSXie8HpIc/7ePLAN22K78CEEEIIkdQUFZKK0Ma9JXea0PNg0TRCxRGaCHGKouH8+hxw2orhdPtq6JwjGEqOGEdIl1VAINojCdgDda/Z50DyYRHwgwcPLujzjdgmKoDJCiYlihq3ENGiZhSiOBIJie8kL7jmxXcyhpx7GjemnyahYWaLrbmtrtPS6q9faFXoxZ5EBRSEEEIIkTggkhGMhH/7cG/ysHGpeU1rLwQ0Vcg97MMPfBxqHHAEN/nNiG/CzmkPhmPeqVOnAuGNIz5v3jwn9Akh57rhgqA4AUFFc8Qtx4W70wfqXkcDrtW2bdu06MEsEpNDE+DfQbSQ+E5253t3SHzXyk7OkHMgbapRI7Nly8wWLzab2+yEkPj+/HOz//u/eA9PCCGEEElaZI0Qadp7IcKDhc4Q2bjY5HV7IU7BNMDRRWQj2jkW8Y3wpuAaYhlRjgjwFb6pSI4A5zXCnLD0SP2HIwkIrj1ixAh3jqL6Fx+oex1rkqEHc3BygPB+ctj5f+zTDpJRxKUbNRP830FpkfhOMnKohrm3WmbI+a6W9M43kK6B+P7hB7M5zU+yE6f/z6qMHRvvYQkhhBAiiUBk4UJ/9dVXTmAhrCiYRm9tRLdv64VYpkI3RdLat2/vHHDyvCmAVqdOHXcuhDLn41jCrHHMqezdp08fe+WVVwpacLEeYUAIOwIUJx0xyvGRHHAvIDj30KFDi+xf7I8vq6tc3P7RdqhL6sEc6T2I5+QA/28omMf/42DF+USaKBCpjcR3klE3L5TXnZ+ZaTvy8mzTnlCFv1opIL7HjQuJ73ldexjdJHPoXzlvntmRR8Z7eEIIIYRIcLzI+u6775xgBtzu008/3RUMw/3G7aRq93HHHefcZoQ0gpxWYjjaONwINIqgvf32206gIc4R6whvcp5feuklV0ANcU94OgXWcNIRor7SeWn6D5emfzECuSyucnEuNETboU70HszByYFgr3Uewf7qiTJRIFKfzHgPQJSNerm5bplfjSrnqZHzDbQbg3XrzH7cU9s+9xvefz+OoxJCCCFEMhAUWbjRntWrV7sH4eP05cYR/+9//2tPPPGEc7MRWwhoRDqVzX1YOaKXPG/Ws+Q14o0wZd9bGyGPUEe485pwdUR4tPoTe/e4KFeZey7qPQjf//XXX3cuf2nOxfOZM2e6Sussw6+TTD2Yg5MD/H/2vdYB19v3V/cTBULEGjnfScYhe53vvGrVXO63DztP5pxvqFrVrEEDs1WrCD+vbEju09jwwQdmN90U7+EJIYQQIoEJiixyej3kcr///vuuNRb7ICQR2QhmRPkpp5ziXhOqzvHkdxNGTkg6lcsR2ieeeKJzucnnRrCdeuqpzjVFzCHMIZhPfqD9iRH5nBthj4tPWHSwF3lRrnJxLrRvqxaJ4LnKmr+d6D2Yg+I/OCnj8Xn74fsKESskvpOMej7sfO8HqC+4luzOtw89D4nvKrbAzB5m5ZgxoQJzcf7wFkIIIUTiEhROiFVEMy4n4eOEkiOycLkRkqybO3euK7Z2/PHH24wZM5wYJw8Ykct2HF/O2bRpU3vuueesY8eONmTIELcvIeiEK7MfoesIcBxvhDfCvbT9hyO1HwvmJPOc8HnuhSrqXK+oe470OgjCMyg0w8W+F+6IdCYvuCd/L8Xlbyd6D+ag+A9OyngoeOd7r8d7okCkBwo7TzIOCYSdWwqFnYP/fMb5nmNmu2kAzizlJ5/Ee2hCCCGESGCCwgkBjVj1YpuK54jpqVOn2rfffmuTJk1yogvB7cU64hnx6oU5z6mGjtBGQHIOQtUpqoYoRcx2797d9QRH3JM3HBTexfUf9mHds2bNss6dO7te2Yhdn5Psi4H5EGmWCxYscDnnDRo0cONlGe5kFyceEZ7cczgIfELyaXX28ssvu4kGis/5cHtPUWHZvoUa9xwkUXow+8mB4KSMh3v0aQKJMFEg0gM538kadu6d773iO9kLroH/zFu7tpKZ1bEdp5xilZ5/PpT3fc458R6eEEIIIRKUcAcWEU0xNZxphDLh5EBv7lWrVjmh6/fv0aOHTZw40VU7R2yvX7/ehVgTbo7oRbQhdDkXoejnnXdeoSrhZek/jLgeNmyYc8kRxJzbV1Bft26dE/zeRSf3HIFIeDxF3wh19z3JEZFMHnAdHw5enAtNwTlaqXHvnqDY55o+LDtYFZ5JhZKc9UTuwRzeX51JmfBq54kyUSDSA4nvZA07T0Hnm/mEevUQ38xCnmjbe/e2mojvd981e+ops0wFagghhBCiZJHlhfaaNWuccB0zZowrrsUDEcq2bt26OeGLA01YOZXMEbzkiXPcxx9/7J77c/HA3Q6v3l3a/sPz58+3+++/34V2e3xIOYXgcNKZBPAwBgQiedgUi0NsM3Z/DEI3GA4e6T0ALy65dwR+sABZUIQGw7KDxchK46wncg/m8MmBYJ/vrl27JsxEgUgPJL6TNOycgmt5lmlbCvp8J3fBNQ+R5mvX8uxk29Gtm1mtWqFE8K++MuvePd7DE0IIIUQcKE1/6nCRhVP9zTffOAebsHHCyXGwvehs27atPfroo64YGyIMAYwQ/fDDD935OH+wejmE512XZfyff/55IeHtQ8pxYn0F9SAIfUQwYelTpkxxLdK4frAAW3jhtZJc6OA23odFixYV5KoHc+UhmCOe7GHZiTw5INILie8kDTun4NoOO8gJcKiVnfzON/C5PmUKz04mQcnsrLPMXnrJ7K23JL6FEEKINKQsFbiDIou86szMTJs8ebIT1eyP8+sLjOFE4yaTP424bdeuncuLJkQb15n87mCbLdZTBb08cD0fMh4OYtdXTg8PG0cUM2bC5hG/4VXPIVy0Fyc0w9+f8ePH75cr73th+2JkCssWInpIfCdx2Pl2q+ueV8/aYdmZofXJzr5J1WNty5YVZueeu09833+/WdgMtBBCCCFSl+J6VxdVgduDWEUws+/w4cOdw03BNfYn3BwXedOmTbZ06VK3X9++fZ0jfuyxx9pLL73kBDk54IhiRPcNN9zghHp5QCBHKnjmId/aTyiE3y9jwv1GCLOfzxX3Qry8Vboj5YjznhCCT1j2cccd55xwhWULET0kvpOJrVutxt78GwqubbN6KZPv7aldm0jzPbZpU7ZNmlTZ2px7BlOxJEqZzZ5t1rZtvIcohBBCiAqiuN7VkXpdB0Ewnn322a6at8/Xxummr/dJJ53knF+KrVGtHLFJMTXCz3HEqWJODjguuc+zLm/IuRfIhLBTQC3YC9zDei9yg6HhvMa9pwJ5pFxxJg3KGw5eVI54o0aNnNNd2vOWJiVACBFC4juZ8BUqs7PNKBSx1/lOhUrnQZo23WGzZ9ewceOq2CWX1DTr3TtU8Rz3W+JbCCGESBuK611dmu041+R8I6qBJSHlVPMmlBtBjSDnPLwm5Dq8KBrCmLD1Dz74wAYOHOiOL6vQZD+KpnEerh0U4Ajoiy++uOA8wdBwhO3zzz/vJgLIwfbHERaOa3/GGWcckNA90ErlZUkJqAhSeSIgle8tnZD4TiZ8uwfCizIyAs53ahRb8zRvHhLfX3yxNzxrwICQ+H7lFbPbb4/38IQQQghRQZQUUl3SdgQL7bJwsHG3x40b5wqv4SbjRPu+2b5aOG3AwouiIXg//fRTO/fcc12vb44tq9Dk3Ljp5FizP5W2cdy5dpcuXezwww+PeBxii8JxhL7T+osK5IhwQtgZP+c4UFFW3mJkB5ISEAsSbSIgmqTyvaUbEt/JKr6Z9UxR57tZs1B1zdmzK7nK5/XI+776aiqDhB6qVimEEEKkBcX1rg5W4KZ/9ezZs11RM9xscrQR1ohR1i1evNjldnfo0MEJX8QMYpxQdAQsYdY4yZFCwoF86++++85tb9q0abmF5rJly5y497nbuN60PCvJ2WecwZ7bjMefDyc9HqLsQFICok2iTQREk1S+t3RE4juJxXeB850ilc491atTPG6G5ee3s9Gjzc4/v45Zv36hft8UX7vnnngPUQghhBAVQEm9q9lOTvdjjz1WyLFG1FIgjfxlwsqpXE74OML7vPPOc8KbKuIIadptEcaNuxzsdR0Ex5nrR9peGqHpBRRimpxzT3iv7rI4+7j5iO94ibIDTQlI1YmAaJPK95aO7IubEcmT8129ulukYsG1fXwS+m9oYXbhhaHlyy/zDRi/YQkhhBCiQvF5yYhmcpxZ8hrXG8c7XHgDr1lPfjZVzMnlfuGFF+ydd96xhx9+2N577z0X6o1IRXwjzBH0vtd1pNxxeoSzvTxCszQCqjjnPxJMICDAy3rOREkJiCbh7z/vy+rVq120A8ui3vtkIJEmOcSBI+c7JcLOUyvnO8QoM7vJRrGAs88OTTrw5TpxIhVT4jw+IYQQQlQUPi/Z5zcTYk51csLJ169f79pxET7uwe1GgK9YscLeeustlyPN8YRv414T9o0QP+WUU9xxOOQIXZa44L7XtQfnHOFdlNApSWhyHM76IYccsl/eti/gFo6/V6qacx8cw77cA4K8U6dOrohbcddMhJSA0nCgeevB9580g/D/fwsWLLDmzZsnZX50Ik1yJDqbk6AoncR3KoSdp6TzPdaysvJtwYIMY+K2RYtqZuecY/bii6HQc4lvIYQQIq3wRafIdyZcnB/ZiGUKqPGjGyGLoEVcI5ZZhzAkNJsf4hzHuiD9+vVz+3uhSDV0hC5CjcJqCHNc8UGDBtno0aMjCtrSCE0EAOcJr3TuK6l7gcD4mFBg3CNHjnTXp5+3Lxh3+umnu+sxPvZDiAdhP98PHPHJ+WIlPkqTElBRxcT8RAD/78KFN+8x70uy5kdHc5Ijlfk+SYrSSXwntfium8Lie7N16LDLpkyp7ELP//NEZ2uzaJH9x8xWP/649XjlFcvLyNjvqIaNGtm4yZPjMmIhhBBCxL7oFGKKUGIKkPF63rx5ro83Ihp3GWeZUHIcYx8uDrxGmHkBzjGIdXqBk//thT1ihgeiF3Fft27o9xYh7yNGjHDVx8sqNOvVq2dffvnlfgXdeM16KqF78cB90Nebbb6ft+8xPnXq1AIBiQAPirKg48t7xPMZM2bEVHwcaKuyaBUT8xMBzz777H7Cm8kN3ksmKpIxPzpakxypzOYkKkon8Z0CznetFCu45jnxxB1OfBN6vnLFCht33XVmDz1k9XfssPl9+hADtt8xLZ9+Oi5jFUIIIUTsCOZM16pVy4YOHWqtW7d2AhMRumTJEhdqjvuNYMb5RbjiHCOsEcyEqR999NGu6BoQAk5VdEK5+YHuXWZeI9pwnglp79ixo1uP2CF/HEHPj/2yCE3OybgZU1Ac8pr1uPNffPGFu0eqtAf7eXOPfgzBAltBURZ0fMMFZ6zFR3lblUW7mBgTAUyk8P8/GNbv34dkzo8+0EmOVOeHJCpKJ/GdLFBkzBdcq1HD8vIzbLsdnMLOt9kJJ+ywxx6r7ZzvapQGzMoya9PGbMoUsxkzIopvIYQQQqQeQdFESzAcXQTJhAkTbMCAAc7Fnj9/vtsP5xunuHfv3i7cmMrnbOc5Qqx9+/YupBwRTsg6++M0e5cZUR8MD8cNp0I5P+I/+uijcglZxsWYENE+LByHmzxyRDXi2YsHhGMQBLUfQ/h74UXZpEmT3PZIgjPRxEcsi4nx/5AifMF2bKmSH30gkxypzpYkKkon8Z0s8AHiK1pWr26bfsy3/L3/+1Kz4JpZp047rVo1s9WrzZrUax1ayYcO4vvbb83OPJOYsXgPUwghhBAxBtGEeCa0GhGCeEVQ41a/+eab1rNnT+vSpYvl5eVZq1atCgqU4XgTmouLjTvOMYhSznXCCSc4keoFmXeZqYIeDA/nWp7yCll/DYR2sNWYh3F5ENDhBMcQLiB5PxCdiM1IgjPRxEcsi4kpPzo9qZFERenUaizJQs43kedMb8rtofylqpk7rFJm4WIbqULlymYnnxx6vn1nz9ATPjT5B8Ss8Pz5cR2fEEIIIWIL4d0zZ850IpoQcPK8Ec+EaiOmKayGcz1u3Dh7/fXXnTP93XffOXccB7hhw4aurRiil2JqiOYjjzzSueUcFy52EeAcGyS8t3d5hGxxLcNYT6i4h3EHXwfHUJSATCbxUZb3paxi2Yfih59T+dGpTYso/x3FEtmGSSa+12RmWi1mXneExHetSlstlTnjDLMRI8y27Tw11Ps7MzPkfk+YYPbNN2at9zriQgghhEgpfAEyXGwEOOHiOLuI7m7dutm0adNcaPnkyZPt22+/dQKbfGkqodOGCzf5448/dvnUHEdoOWIe4U6490knneT2R9QTEo7A5xiqintwlMN7e5dHyJZUNIuld2zJDydn24e++zEUJyCT1fGNRTGxaORHJ0PLKpGcRekkvpOFvfkra7Oy7HCzAue7VnZqi28iy2+6yWzHrq62eefnVrPyLuLRQ+J77lwaeYb6fwshhBAiJasX+xZhX331lSuoRfXyE0880Qlwws4pooZbzXNf1XvKlClOSHMMedy+HZmvik41dMT8559/7vKw27Zta+PHj3d54DjiOM+Ico5F1EdDyJYkCoPiAdF98sknu2szmeD7kBclIpJJfFREMbEDyY9OlpZVIjmL0kl8J6HzbQHnu3aKi+8jjzQ74ggizHNs1MKWdu7R35mRK9WkidmyZWbTp5t17x7vYQohhBAiSiCSKSBGeDnONIIZ8UyVcfK4qQq+cOFCtx8h402aNLEzma3f227r008/tbPOOss55uzDvohYzkPLL4qtcS7yvnHRyf1GpFNojcrpxx9/vPXq1csJ82CIeTSEbHGi8EDFQ7KIj0QuJpZMLatE4v4dFYfEd5KKb+9810xx8Q1nnWX26KNm789rFRLf0LFjSHxPnWrWrRsJUvEephBCCCEOEO86Tp8+3VUvB0LCydcmHHv06NFuH4QzQgkXm/U434holghraNasmWsnhpuNQPcC3LcJI5ybQmYIeo5BuHfu3NkVRMMJpw1ZRQvZAxUPySA+EplkalklkhOJ7yQT3+tot2Vm63dUS4mc7x071ts//1a4qEheXq5R+uSkLl0sKyvLtrliay/ZB/OOdB3XnM7mg++jj2icaUZFUpxwIYQQQiQtQdcRUe3daUQxPbz79etXUHwNgYzQRhhT4XzWrFmuSjkCG7HtW25RXG3evHnuOcIboc1xiGn2ow0ZD4Q1Ypxwb8YBErLplwOdTC2rRHIi8Z0srFjhFqsKnO8aqZHznZ9nr3a+qtCqHTs22oSvHrGbL7zQFRjZuSfLqtyz1VZsqWnTVja0To1WUpo01PObsHPcb4lvIYQQIqlB3BEq7ltmIaAR34hlBDdFyMjHZh0imiXVyZmoD7bjQoB7J5tjvIhHwHMehCMh5hRjoxo61dHJASf3m2MTqTJ4IojedMqBTtaq8SJ5kPhOFvb2m1y19wvmR+98J7v4LgWVs3Mtyz6xXPupc7+d+Pah54jvmTPN+vZ1LdiEEEIIkZxQlZwK5gjOVatWudxs8r4JGSc3m9cIbULJEd8UXvM9u6lQjnCuW7euc8XJEec5rckuvvhit53cb1xyxPiLL77ohDdFzcj3Zh2Cn1Bzzo/DXh7BG02xnAiiN5lzoMvz/yJZq8aL5EHiO8nE9+qwnO9a2dssHcjK+MBy83/q8r7/cPLnoZV88Rx0ENVVzL791qx9+3gPUwghhBDlFEoIZfp2E/6NECb0HBGEaKYyOSKcgmjr1q0rcLERU7QOO+KIIwqOffvtt13ONkKddeSPI64R94SVI87/8Ic/OKFP8TafI464oor6K6+8Ui7BS446Rdpw3H3Y+2effWY/+clPyiyWK1L0FidSi8qBZsKDiAH6q/P/JdHC0Ms7cZHMVeNFciDxnQzs3Gm2bl1h57sg7Dw9ck+y7EO3nLC0qa3dVs3qVdsWSv7G/f7ss1DoucS3EEIIkZQsXrzYiW3ysxHFQKVzRPXPf/5z10YM4exzs7/88ksnjijGhltNdXP2wR3H6UZgIdQ/+uijAnGN+02eNwXa3nvvPTv99NNdvjcQvt6jRw9X0K08gnfOnDl2//33u4kCD+3KCHvnWoMHDy6TcKuowl8lidRIOc5MLnC/vGfk1NOiLZHC0A904iKZq8aLxCdko4qkyPe2ypVt496q3mv3Ot+1k7zgWmnJzFhq7RustHzLsI/m0+l8Lx06hJbff8+natzGJ4QQomzgQiKSCA1GTLVr1861lxLpCYL4P//5jwsn5++B3taEniOen3/+ebd9xIgRTgj179/fbr/9dvvHP/5ht9xyi2sN9tJLL9kDDzzgnOY6deq4cHKc56B4pI4MIhFRNWrUKJs6dao9++yz7rwIK0R6SYK3KLE3bNiwQsIbmCz45JNPXKG3oo6NZ+GvkkSqrwof7nh74Q04/OHHFHc9wvknTJjglsXteyCUZuKiJHyxPXrJs5TwFtFCzncShZxb48ZUI7O8/IywPt/p0WbrrCPn2fRVDe2dOa3tovYzQisJOz/8cLMFC8ymTIn3EIUQQpSC9evXu7ZQp5xyin344YcuxxbHE9Ek0g9EGJMxCxYscM41biqvEa2I5dWrV7v133zzjZusIeScUHJcWxxzWoqdffbZoSKtO3e6bTjOCETccwQ9IhFxPXny5ALh6Au08feIcOa65RG8iDmEdiRYT5G4sorliij8VRqRGp4DTTqAf/9w9pngKI0jX5H566pYLhKZhHC+n3jiCfcPjw9G+jhOnDix2P1fe+01V6WS/Zkp/+CDDwptv/TSS92HQfBxxhlnFNqHf/wXXXSRyxMiZOmKK65I3H+MQfHtQs6rWl5+ZlqFncOAo791y/fnHWnbdgeKq3XuHFpOnWo59CITQgiR0BCei2AaOnSocy3Jy+3Tp49rFSXSD4QZwpjfgvxdEB5O1XNEMe432xDQ/Pb79ttvC1qPEUKOuEakk7tNATXEIREUvH7jjTdc/vY777zjlrjQXbp0ca46Ez7sT8g6Vc65Br8DyRNnPedFzLPkNeuLErwcR8h8UTD2oo4tyg32ojcS0Sr8VRqR6nOg/Vj8hIUPqScioaRzlsZhjyaqWC4Smbg733wYDhkyxJ566iknvB955BHr27evC2mhIEY4FHa44IIL7N5773UFLKhWSfjRlClTCs20Ibb5UvdQATMIwpsP9pEjR7ocIXI7rrrqKne+hBbfCxe6nGeoYustOzPP0oXOjZZbi9ob7IeNB7nQ83OP/i60oVUr4oP4dLc+xXz5CSGESAz4wc13/fnnn29jxoxxBZuuvfZau/LKK4s8BkeTh4f2UyL5Ib/7r3/9q9WrV8+5z4hnRDZREIgzjBaEMkYJS6qeI7YBYUjFcwQ6IpCJHP5G+D04fPhw9zeCKPaCEZecYm0YNwh4DJjgb03OywQQOdpBJxuhyW/OogQvYg6hTri8d4WDMPZIx5bkBse68FdpRWowB5oH7yPGFu8R1eZLOmdF5a97VLFcJDJxd74ffvhh92XLP2pmHxHh1apVczk4kXj00UedsCbH5+ijj7Y///nPduyxx7q8nyCIbWYq/SMYysasKfk95BYh+Kls+fjjj9vLL79cZNhQIjnfa7aGxHc1KzzbmOoQ2eTd7ze+bbNvA0XoOnVyTy/clh7V34UQIplBZD355JMuzJec3muuucZuuOEGl9tbFEy6I3D8A4dUJDeIOH73UbWcFmBMwiDeEMG42jjU/CZs1KiR24d1iD7W8cCNRuzikLMNsY0IZ713zim6higG1iPei3JtEcn8bXJcEB+WXhSIOcZ41FFHFVzLQ0E38s/DxXJJbjATCrj73bt3t549e9qpp55q5513nvu9HC3xGO6uB11/HkxaeFfa50BzL5hWVKYPF95BYRt09Ekh8NEDkYh25Gm4Wx8cnyqWi7R2vvlHTe7NbbfdVrCOnJ7evXu7yomRYD1OeRBmz2krEYSCG8xmIrr5wPrLX/7i8oT8OfiAPe644wr255pcm16P5557bmLNuIeL722hfO/qaSa+YeDRs+3vE7rb8LmtbOeeLNcD3HHssWaff27dmN2m7djRR8d7qEIIIYoAocV3MI4ndOrUyf1QR4hRFToS/FYIfv/zPSwBnrzg+pI2iBnC38OsWbNs4MCBzulGuGGikCuNeO3Vq5eLkCAcHZGLMOU3Ga43IpDjge2A242D7h1ywsp9rjLilt+DOO68Zl8mczgvopLwc78/v1P9dtYX5dAG21P5Nmkci8inqGCkdIri3GCEPu9NsDCYd8SjKRyD42bMjJfQfCYbmEjgfQ7Pyy5NK65wR5+cfSINmPAorVt+oKhiuUhU4iq+mcXkHyCza0F4Te/ASPAhG2l/1ntwxgcMGOByyCje8fvf/9769evnRDezbuwbHtLui3oEzxM+437XXXdZYjnfay3d6N5sqTWqsdlWbKlpnyxqaWceOS+0oXbtUPj5nDlm//qX2SOPxHuoQgghigChQ7RbEKLZyNEtCsRYeAqZSE4QdYhLxDXmB4IVcYR7jWGCQPJFyhByCGVcYJxwfuNRnK9Vq1bu78gLPRxujJVBgwa5iAryvvl7QTyz9L/7eI7QnDFjRiF3muPIzfb7+P0R+V5M+wJkkQRcWcVeUW6vryYe7m7Hor93cNy8j88995xbF4wW4Lqvv/66M7r4f+Dvq6h7jeToM3mxaNEiJ+xxzoO/tWMZBu7deiESibjnfMcC+kF6yOtp3769m3XEDWfWrTzEdca9COc73cLOITMj34WeP/H18fb67Db7xDcQyYD4JmwRN6VaaJJCCCFEYkGlcwRGkLlz5yoXMw1A5OFyU5eH32d+UoVwcoQgaYeIXdzpO++80+Vl48Qi2nC2KaSGsCZHnFZh/BZ76KGH3Gvq9uAaE86OKCS/G5EeFLa421zHi22cdq5NTaHOnTs7lxZHHPFPRCS/97wo53ykRpD/HalCd1nEXlFur3foGRfPY50f7e+L95RoVA/iG/cbiAr1ufXg3fBI44jk6PP/l3Pxb5731aMwcJGOxFV880GJE+3/MXt4TW5IJFhflv39jCbXmj9/vhPf7MuHaxDf27Go88R1xl053/uFniO+35lzlO3OzbRKWXuLzh1+uC3JyrJmGzZQyc/sssviPVQhhBARuPnmm61Hjx4u7PxnP/uZ63Ly9NNPu4dIXXBFEcakCpLHjNhDrLEeAYgYJ6959OjRLjebKuUUUeN3HqHgHMe+iGSEHMKYKEocWUwWCrJhtPB7j/MQRUnU40knneSEHuKdvzuccx/6jMDltygh14yHa9GqDEGOWMcBZywITc7LBBEF2UiPOBDRWFRRMB+uHmzhFcv8aO9Uh4eCMwEwe/ZsN0nAcz8BUZILX9T4iErg/yGuOmkmqRIGzvun0HaRNOKbUCA+QAlDoWI5kLfD6+uvvz7iMRSeYPtNN91UsI6K5awviqVLl7oPdcKT/DnIPeFDluvDp59+6q5NAbaEYutWvhnSMuc7PK/ezwC3P2iG1au6xdZur2FjfjjUerfcWwQlI8NeqlbNfktxkKeekvgWQogEhXZPb731losqu/vuu12aGN1O6EQiUhcK3iJuESw42IhZHFbcaIQzfbz5rUY6Ic43ocr8rbAdwYdrjrAhSsLX4UE0kmKI+MYJp98310E4ktpAyDNh6Ag+9iXHPFxocm1+W1LEzVdCZywIKkQnopFzIcoZMy78gTrQReVOI7wRcEUVAI52frR3qsNTOoGIA59HH+7EF+XCFzc+TCzuLdah4Px9McHCe8j4eU+JVIi2KK7I3uUidYh72Dmh3MweUniF2U2+fJnBZDYNLrnkElf9kpxruPHGG91s6d/+9jc766yzXIVyQmX8bDkflORmU7QDF5sP5N/+9rd2xBFHuHwVn1dGzhBV1inuwoc6Yp9wdf6BJhQrVoSW1auH2mk58R10vutZqrFnT2h29ZlAxXu87b8H8rgPy2xra+1ye21Wm33i28xer1rVfsvsLL3ip0wJFWITQgiRcBC6y0OkBwgicn0RzggUHGuK4iKO+B3GkpxuKpDzmw1hhxgm9NsLdNxg3wMcwcM64HciIpnwaEQPYe0ILQQ6ohEhj3Dk9yWRkJyH63gRTig0Qg1hyKQAYpuoSc5JTSBCpp955hkXws5+Ph/9QImUJ85EwGuvvbbfBEGs8qP9ffCe8Bs4KPoZA5GhRTnxkd6DeLf5QhC/8MIL9uWXXxa0ffOt4oh6iJYoLqlafbRz80XqEHfxTc4NH4B33HGH+1DmA49ZST8DR3gSH7we/uGQ03P77be7QmrMZhKG5GfRCB1iZpKcHGYu+QfXp08f15IsGDY+bNgwJ7gJQ+f8iPXHHnvMEo5gyPneDz7f57t6iorv3NxQP862bS62mjVD95fx1WPWresN7vnOnZts4bQX7Wu73F6ddbT9ucfLBVXPSUjYesYZVn348FDhNR5CCCGEiCsUTfv6669d2ylEESKa32kIWR/SjDhDkOO44pDzIFoRc4ZoSfKOiYpr27atE6kIQ9YhrBGHuOYIdV8pnahHzscxXJ+UQ5asC1be5vocxzU4J5X3KchGATgghN1XQgf2j5YDHSlPHKHoK5Bznz5PukOHDhZt/H3wW5z3hAgAL8D5TU1OPf8PIjnxkd6D0lRDj1XYN///0ABMwgT7rTN2UgV4H5mIicYYKrp3uUgd4i6+ARFcVJg5uTvhnH/++e4RCT486RlaEnwIIOITnrB8b1iztXpaVDvPyalpVarUDr3IsILnOOOH2miractsw84mdsM/5ltre8dtI5P/rOHDjb+a/GHDLOPBB81q1YrnbQghhBBpDfnZ99xzj8ufRgiR8ucLiyHCcZcRwbjUuNpEQxK5iPBDQAO/+/hNSO4w1bdHjRrljkVQEVKOeYNA5jy4qxg6CHKEOOfAjAkW/gpW3uacrCffGhgPD8wZUhJ96DXrcNPZP5YOrnfECZ3HYOK9InyeyQiiPSOFNZc39zjoVPP/hvfET4hwPP/PCMEvrqd3UeOPdS50pJZm3AO1AxDgfrIEWM8kTLREcUmRD9HOzRepQ0KIb1F68c3kZ+Gw8/QDZzzT8qxX3Wk2fF0TW1rnLru01WFuW/UZL9rhg96yb4eeYEeTLz9smNk118R7yEIIIURagmDERUbcktuPm0xeNa/J0UYwI7oRlwg0hJR/3q1bN5djjchClFOc77777nPPvWBHCCMUP/zwQzv33HOdYCVqEhecSukIc8bgw6Z94S/EUevWrd04uD755YyNUHf2ZQwIb5xnRB37MFnAeRlXRYQUIyCDbc+KCms+kNzjcKfatwHj+NNPP90Jcc5fVhc71m2+IoV9M3nC/3smW/gb428hCH8n0RLFJUU+xKJ3uUgNJL6TRXzvLRaXn1/DduVmp0XBtZI4rR7i+yybuKGt7c5qYDUr7bDMzCyrVbupPWVmj7LTk0+aXX11Qci+EEIIIaJLUa4rDvN//vMfF26OKMJ9Rrghmn/5y186wYy4RmAinHCYEYIIX1zvsWPHuvMSTow4RgAjuukNTs44TiZ53OR4cwx1gRCLXB/RjXuOcOzXr1+hsGkENnnlXJ+xMx4KqnEtqnFT3ZyJAnLQcVHHjBnjthOyjCClGjuRlrEsqhUe1kwIuA9BR0TigBMhAAeae1ySU10RLnY0wr75O+F94v8f7QzD4e8nWqI43rntInmR+E50li4NLff2FM/Nq+uW1bJ3WqU9+/JZ0pFDqy6zltVX2cKtDeyzNW3t7Mb7+lP+lwJtVapY5owZZp9/bnbyyXEdqxBCCJGKeNcVN5rwaEQ0BdBwRilSRv9sRDfbEEUIWPKLEXy4k7xGyLJEoFP3h4K69AFHKFE899hjj3WdbdgHNxjxiWuNGCU0HIeVEGPCo3ngXHMMldKpgu5zuz0c98EHH7hjfAVvhDrj4bw47JyDfHLWU3zN510zocC5Yl1UK+jQ+lZowXxsJhyIKCCEPxq5x8U51bF2sctDJAebCRhfM8CnEHh4/4iEiJYorujcdpE6SHwnOkuWhJZNmxYS33WrbjXbHM+BJQanN/jG/rWwj41a3b6Q+N5gZtvOPddqvPSS2eOPS3wLIYQQMQr9XbhwoROlvsiVD11GkBMyTZE13G2ECcIZkY04RkwSAk5YN+3BOA7By7koxsb56VRDES1EMu1gOQ8OOY45ohSxhdBCpHN9xCnXQfwg1n0ldUKReY2I9u44AhuxjgjnQRg8vcHJT2d8FF5jLKURttHu9xx0aH0rtKB7j8vLGHhvyEMPFhUuTqSmSl/qSA427wERCr4QX1B404KOos3RvNeKym0XqYXEd5I533l7xXe9alskvgk9rz/Tnl54uk3f2MJW7jjItm1bY/97uotVMbMBH31kH1Og7fXXrWeDBrYiK6vguIaNGtm4yfvEuhBCCCHKBqIDgR0U3oC4ZT3iljxqRCyh3r6qOCKJJUKQ8PJXX33Vucl0p+E1BdUQl+RXE/6NY47A5Fy0CiPUnNxtloSP+6rmiHEqgiO+li5d6kLVEfHsh4intzwTAZybsdNZ56STTipUnIv7YOzAcYh6H+pN2DLXAMZLL2nukVB4iv1Gs99zMKzZt0Lz8N7h8nqYmAjmhXsYKyKU9x9xyJiJVGCyxEcClGaciSjYiwr75u/izDPPdJXbyc3n/02s+nwnalSASGwkvhMZPhiXLYvsfFfZGs+RJQyHVN5knQ5aZFM2tLRRq9pZfn6evdDuQpvw1SN28yWXmL39tmV//7192aqV2WmnFRzXcm9feCGEEEKUD8SYr1qOCEWc+t7QtIIl19sXOkPIEvaLiCZfm2JmvEa8DBkyxIWi+/7btPZCNLIf5xo/frw7HgF68cUX28SJE50YRJQSYsxx5D8Tis35ca1x0XG6EWOEnr/xxhtOOOKMIibpN44DT155eHEuBJuH7V74ch16fROGThg8zynmxni4F64VrX7PwbBm34rNC2+KxHmn2xeHiyS8uW8mBfj/xPsSqc1aSeNErNMzm/x6PwFBtAA51bHMeT/QsG+f9y9EoiHxncisWhUS4MyyNmzoVuXmHeyWdXG+RUHoOeJ7xKqOrhp8IY4/nm8OM1xuQs/3tgsRQgghxIGBmCXk2xcDI3wckYwwRBT6SuSIZEQb+5KjTVEzhB8il/04DpcbQYsops81ud8IxEsvvbRAwCPGca/Jye7Vq5c7jpxntjMJgCidMGGCC8XmOdu5JuPEPad4Gg4x40G8IcLDi3PhkvJg2+eff+7EvYcJAXLYEeqIfe6Jc+Ek46Yjdglz5zmC+ED7PfuwZoqrMbHgzxsMMWeyon///s69D4pQJggYl3f0/SQJj2CbNShqnLwH3O/7779fyHnn/eE9j1bP7PKisG+RjEh8J0O+N23G9oY5FYSdV5X49vQ8ZLY9Pv9MW7a9rlW2XoU3HnUUFTj41jGbOdNMs6BCCCFEVEDoUFwNwY076gUaAhtx2rNnT+eSIsxxXhFzCG/yvKdMmeJcWIQSAh1hjZjDlcUVR9wdffTRLreb6xDa7qtZIwgJKaeg2uTJk51gx9HmOJxarsFxCE0EPqHqONRcH/HNpACuNcexzhfn8rnBiDov6HxfcM6F0GZ/nnMNBC1j50GYO7nlvBeMnXvjOoSm+0ruhM0j4MsiENmP95LiapEKqyHGuXdfrd2LUK7JtT3+HhHjrPe59l7MRypgxnv53nvvFRLewGvWEzHAI54o7FskGxLfyZDvvTfkPOh816PgmnBUzdptvetPt3dXdLE99n9mNnHfxsxMsy5dzEaNMps40axjR7UdE0IIIaIkfOit/fvf/94JMgQmRdEQZISdDxs2zAnkM844wzm3iEf2o9I47jbi9Pbbb3eh1AhY8qvJ16XFF64yQhVRSKswCqF99tlnzq1FMCL6EV3s07ZtWzceromwJEw96FiTF86EAMLZFycjtxwxzWvOw7GEjvuiXF6M+r7gCG1yy5lI4HhELOKVXHZyxDkX6xDeHM84uCfG9vTTTxcK92b8ZckHL21l7aAIJQIgCBMXfpKDcfI+4uD7MPZIBcwYa7jwDt8Wb/EtRLIh8Z1ExdYKVzvfYuviNa4E5KxGU5z4zrUBtnH3rMIbcbs/+4zyq6FogubN4zVMIYQQImVAzOL44uRefvnlTsSRI034OOKTkOiPP/7YCT2cV0QrLvSvfvUr51I/+uijbj0CFRFMMbRRo0bZbbfd5o5DsONY40gTXv6b3/zGOebsjxD2PbrJR8YRP/HEEwv2RWwijnHeOS9iHRfcFydDVCM8mTBAQPI86EgHxSjj9gXNGA8ilmt68cq5CF8HJgNw5RkbYei0KosU7l3WfPCyhliznffUt3/jPhmDD0Pn/QHWcS9MKoRDCH1x+HMJIUqPxHcStRkLbzUm8b2PVjVX2JE1ltu8LY3t07XHWaPgxmrVzJiZnTrV7KuvJL6FEEKIAwBhSV41BdUQprjSuMZjxoxxYhP3FwF6/vnnu6XPVyaMmdzuU0891QlsHwqNK8123GpcZM6Ly437jZuLgCTsGtcWFxrR50PKg32wn3vuOVfZm7ZlCErEKRXUCS//+c9/7s4b7P/MWHxxrtJU08axZpyMF/EP3DuiH5HPOHG4fRV3hDb50rjjgFPs+4WXJx+8LCHWvHdMFJD37cW4b8vGBAjvD/C+kfPOe0v19yBsY3IhWMnew3rePyFE2ZD4TrKw82DO99x4jStB+Umjyfb3eY3tw9Xd7bLwjV27hsT3t9+aBULRhBBCCFF6ENC0AsOZxu3F8UaQtm7d2oU6IxARazjbb775piuYhqhDICP4cMTJx8ZVRaQjZBGGnNcXR0OY4jQjVhHOiDxcdM57ySWX7Nd72/fBBgQ81/NF3Tiud+/ebiwXXnihE8UIx5Kc40ih3kw0kH+NCMfd9+CAI+4ZL9em3Rn3ShV0L7Y9wcrlkfKsowHin4J1iGqux7h4v6nuTgVwqskTFYDjz/8DtnNMOITicw7y+YMCnPeP9WwXQpQNie9kcL73hp3z+Z2bV889P0TVziP2/P77vFNtyY4GtsT2VS51MJt7+OFmCxaYjR8fryEKIYQQSQsCDTGKm0oY9+mnn+5EGcW+ENds91XOEXcUUEMo434jWhHAPiwcAYs4JkwbgeirhOPYInIJzWbpK6lzLoQ6rjavfaVu8C3HENycg20+JBonncrfXIPrMY7yhnpzbt+mjEkAYEzc49tvv+2uSc66z7cOr0wO3B8OOUTKsy7P/5PwUHReE2rPOv7f0HqN95n1TApQsI73M0iksfA+0dqNMfP/nMkR3gPeT6IaVFVciLIj8Z1EzjcTpPn5odCl+tVC4UJiH9Wzd1qWvWK5drlNtqvMbGrhHXr0CInvqVOtTtiXjhBCCCGKB/HGA3eXombDhw93Yg6n96STTnIh0QhRRBrPEcm4v1QWx8lG+FLxG3GMAMc5R8TjyBK2jpuKM4topCAbApI2WwhrwqIpyIZIDBe0QL45jiyCEBHsC4sB40EwEgZeWsEYFLUcQ8g2PbMJM/c9wZlIwFXn3ITb+7By1jNmhDDX9q6xb9EFhLRHCncvagyRnHqiBSIVYWPSgDB43mvC9YH3lfeZcHkK0AUpbiyc65e//KXaeQkRJSS+ExX6ey9bVsj59pO81Svtsho5+3KWxD6y7d9OfM+yn9nabXNdl7ECDjuMBC+mwe3iraoWL4QQQpQEecOIzQ0bNjjhSM71iy++6IQhbbV8n2tEGiLOh1yTV0xeOHnZiG9cZ/pzEwZODvQvfvELlyOOgETYIgjpVf3pp586gUsht8MOO8yJcF85nHMisClkRhX1YFstxgm+NRjXpeAY1+XciGSOKw3hohbRzyQCEwS42YwfxxsHmwJzVGMnRJ3rIcTpQU6P8GCrsmC18/Aq5aUZA3Ccr5LuoxDC24/h9CO6GV8QRDi56fy/9MXW/DlLGovaeQkRPSS+ExW+RBDg9Pdu2LBgFTSsoZDzosi0iXZk9cU2b2tze35md7u70df7NjLbjPv9xht2ybZtZjz2FkERQgghRGGmTZtmjz32mBPXiF9c0/bt27vH6NGjnbBF/LKNvs+DBw927uoXX3zhKpIjPnG4aTX2zDPPOOGMKESQ4gwj+nCnEevPP/+8c4gRh+QScyzh6rjcCHrC0hGeLNkf0cg1EIYIUV8cLdgaDFGO2zxw4MD9iokV5S7j1oeLWj/BwPg5N+HtTBT4dma4+rj4OMSEc/MgzBvnnvu74IILnGBHFNOKrSTnuChhzWtfJZ0xR+r7zX3zYMKA3HoP4+D/y4ABA6xbt24F+fVysYWoWCS+Ez3fG6cWAR5wvhtIfBcJ+vqnDT63vy28yJ6d3sP+eOpkq5SVt2+HNm3MPvnE6m7YYPb882bXXBPP4QohhBAJCU6yF94IN4Q3zjeCElGMk4xQRXgimhGbiEFCyxHCuM0cg9v67LPPOke2e/fuLswcQc2+hHF7IUleMYIQ9xjXl/MiwhGtPXv2dLnUFBFDmHJuhGPQCQ4WR+P8FGnDhWYb48VxL03YNvtwz4j48CJp3CcRAIyX+/Xuus93//e//+3Cu5lAIIQel5sJCj9OCpyxH06+74vO5ABjDI6rKGEdrJJeVLE23kPui/cVsR/s0817yhjIARdCxAeJ7yTq8e3Ft5zv4jm57lR7amFvW7algb39XWs7v20oN8tBGFb37mYffmj20ENmV11VMLkhhBBCiBAISN+mCoHp22sRek3BsauuuspVGCf3G3HOdsLEEeU+LxyXGkd46tSpLlwbsco670pTlA0hynPELk42wpl9EN1MAHBtQtBfe+01F+aOWGUd7jl4JzhYHI39gNBvzl+WsG3ENWHiONw+t5yJAQ/HBduc4X7jjCOGORbB7yMFyDFH9BPmTYg9kwBMOPD+cRz3SSg9YeuI9qOPPtqJ8JKqoHuXPhJci/8f7MP1GRtj4R6YPOE9EELED4nvJOrxXRB2Xl3iuzhyMnOts/3Lxtod9vjEroXFN3TsaOtHjLA6/Kh4802z88+P11CFEEKIhAQh6aFtGAIZMYroxHmm6rhvYcV2RB7i/MMPP3T52LQjw+VGJOK0sg/nRIhzHi9oCd8mjB1BzTUQn+QnI04R4xROI4wbQckxXB/x6wVypH7ZTARQDA7nl4ev0s01Sgrb5hqcnwkCnGJAtCL6uV/uw8P5cNh9z2xee+HPvv44JimYXHjrrbdcH3LC12l5RhQBEwu8b+xPITrEONdHxPtCbby3iHhcdPDh4uF9yIFJDo7lmGBFeO6H/QmZF0LED4nvRGXx4iKd7wY1VCysJI6zp2xc5h/s88UtbNrKhtax4b4vIMvJsf9Vr243MLP817+anXdeKF5dCCGEEA5EMEISQYkQRrwipnFREXAISwQhTjhi0Is+RDlh4oheRCfh2bTe4timTZs6R5YHxyFCEdWTJ092AhaBiGjE9fZ508AYEJm85rkX4F4gM85gCDmuO33I2ReRi1vNebkexxUXtk0IOZXbuX/CwhHjiHkcfXKmWedBeBNmz/iZUPBh5BSa4764HqHyCGveM45nPePm+ght3kNEOCH877//vjvnrFmz3CQFxxNNwFhOPfVUdx7eZx8+H96H3I9p0KBB7lpBSlNYTQgReyS+E5Xvv99XoXsvCjsvPTVthZ1zxDf2xtxj7fGvjrdnznm30PbnEN88mTaNmDWzc86J11CFEEKIhAIhi9j2lbrpFY1A5DlC1otoBKkX0ghPhDdiFSeXY3kghHG2EZk42ghows0RzDjohKUjOm+44Qa3nfWIeUKzEewci2PONRDd3v1FxLIeVxv3HafdC2qWvtUYD8Qq67xjjliNFH6N8OYajI8q5r4tGIIaofuHP/zBCWfceuA+33jjjYLCawhfWo5RVM3v43OuGScTAMA9MC4EN2IYV5xzIawJlffV4rkHQtUZPxMZZ511lsuh9wI6vA95sIAald3VHkyIxEPiO9HF96GHFqxStfOycVXHz534Hjajvd1/+iirV21bwbYN5H7fcEPI+b7zTrOf/lTutxBCiLTFV/1GSPJAVBL2Tc40LiqiGkGHm0yO8q9//Wv3GpFOazAcZkTt8ccf7wQ0Ypglovy6665zIdBvvvmmc6oJ3WZ/qpgTpo6wRvATro4ARXxSIRzhfvfdd7tcaPZhfIhY3+aLfYEca8QpYh8hi2j2Pb696w2+/zeiHSHaunVrNy5ca47hvKNGjXLbGUswZJ3wcMQv98wEwrBhw1zFd+6ZY3HAzzvvPLcf17vkkksKwuS5Lsf4Fl+sZxwcy4QF7ravkk5YOiKe/alYzvvNPXH/vA/h/biLagOm9mBCJCYS34nKDz/sJ74Lws6V810qjm/0vXVutNwmr2hs/558rN12UuEQLBsyxOyxx0Lu9zvvmPXvH6+hCiGEEHGDllQ4rgha3GaKguHEfvnll05UkluNCEQMIjTffvttJ1wRvYhR1iE4Edbsh4NNyDTreSBUEaYIdgQohdRwZLkObjQuL4IbBxxHmgduM0XKEJGEceOyA6407cwYJyKVCuqI2GAeOIIXcY+rDohfwuURvBwHDz74oKvAjvvMtXHzEdeMi77kuMXBomasR/yzbuTIkS4aAMed+2McXOOBBx5w7yWTCwhlBDwuOONnooD3CkFPFAD7cAzvF/fK5APvIe47kx9ch/vggVjnvWUiQAiR3Eh8JyIU7vD5O3tnOJm0lfNdNjCyf3X8V3bpO+faPyd1sd/0GFe47Vjduvvc79tvNzv7bFU+F0IIkVYgWO+//34n/hCitPeaOHGiCwknPJqq54hpxC0OMXnDOOHXXnttQRV0HohJnFbyvsmBZj/EOiIccevDnwnDpnI5x7AOAUovcHKiccm9k0zeNy70ueee665HH3FCrsnHRqQiuhGxnA/xDj4P3Ff6JnQcAc61EN6IZPpcI/KZOGAdYp71U6ZMcWKaFmG+0Fk4jO3TTz91S/Yll51icoSaM3mB6+1bkCH2CRlHSPfp08e56X379nXnxm2vU6eOW+crxCPcmQDgPeD+fG47eMe8qArnQojkQeI7kV1v8pH25udQdNRPeFJwbadqrpWKQcfMst+OOt2Wbqptr81uaxe2m1F4h9/8xuzJJ81mzTL73//MLr00XkMVQgghKhRCsnGlEd6EePucbZxnBK0Pse7Vq5dzm3F+WU94NIKYEGi24fbiKOM2E4LuBe3LL7/sBCiiHiGOG4zQRmDi4iLYEfsI5VdeecW54whShC3itH///k68IogR8YSxMz4mDAjPRqAi9hHXCFzcegQ1YpVJA8LmEby4zuSsMwnAObiXYE44kwqEdbPO54YHQ845nn2YjEB4407794F1nJfrIZa5N7YzTgQ47x+i2Vc0xwknNJ9z8r4RBcBkBe8/z8nj5n32ue3cN/vy/yQ85FwIkXxIfCdJvrcPOc/M2GhVsvfYzjgNLdngvfrV8RPtj6NPtQfH9bALjplROLW7Th2z3//e7JZbzP74R7NBg/imi+OIhRBCiNjkc4cX32IdodcIY3K7EX/t2rVzzjeh0C+99JITfQhkRCSh1ghahDViEbGKEGZ/BOiQIUOcM0zuNU4yTjCC1Lfi8q76Pffc4wQwAhUxTHVvXHPE/2effeaEMGNFhCPMaRuGSOZc5IkzXsbBelx5nGKEMOMhTJ5K4YwXwc39EPbNOLkn+mkjhH1OOCCyGQcinmsyGcE+PlccAcwEAO8dwprz8J7iYPuK7TzY5sPJvYMNTGIQgh4s+uYrmjOBgNPPJAHvDVXNcfwR7pyb95L3W5XKhUgNJL6TLN87K3NNnAaVvFxz3Nd27xcn2rSVjeyTRS2td8uFhXe4/vpQ7je5YY8+ava738VrqEIIIURUCbbgQhziQn/99ddOQPoe3YRmI7wRx+RzEwqNG0toN6Hb5H4jlBG0iEZCt8nHJgT8qaeectdBbCI6EdVUKEd4I1Y5P6KWa+Pmcj7c5FdffdXlMRO23aNHD1egjX0Q9VyfImOci7FSaRzXGOGMcEWEc0+MBYGLEKc6ui9k9otf/MI515wDcUsuN7ngiFxfaZwxIdgZN+txthHUXJ9JCYSuL9aGC4+ARgzz/lHcjTEyEeBD5dmP99M71TznPnkwgeGLn3FOJgx4b7iGDy1nsoL3k+sguHHW/bGqVC5E6pAZ7wGIslU6z8paHadBJR++Z2j27pV2UZtQy4/7xnYJ9RHNC+R+V6lids89oed/+YvZsmVxGrEQQggRPRB6QeGN4Eb8Pv/88/bII484txthjbBDgJJ3TYssCo4RQj5+/HgXNu4rgSNmEaaIdZxahCPCEOGJyMZFRzj6EHEcZZxexC7X4PsXsYqzjWBG8HINxud7ZDMBwLUQvIwHAY6Qxf1FiJNnTa43VdJxpxGnjBHhDeRyc21caULg2UZoOtdknNwLLjLj57qEixPCjiDmfhDr3bp1c071z3/+c9czG/edEHHuhzEzEcB90Uuce8WJx3FnMoH75ByIfLZx7WC4uO/Pzf349wo4lpBzwu6Z9CAPnOsi2iW8hUgd5HwnsvgOfFjL+S49e/bscMtnnn22YF1Ve9sybL598sPR9rtHPrFVGatdHhlf7o6LLgrlfo8fb/bb35oNGxav4QshhBBRAaGMwATv2Pq+04hHtuHAIlBxgRHJiGiEK0Jw0qRJzsVFuLO/b0OGCEZQItDJ0wacbtxlcsER0lwPoUr4NOdFEDMpjvgl/JoQc98SjDFRYA2RjWhFlAIiGycbsU+FcYQ1jjPiFBeeY9kH8ctrXyiNa3p89XDukYkGtiHYcfpPOeUU1y6MSQHccZxsJhAoNocgx5H3PbwB8c0EAYIZV9r3F+dYct+ZECDfnftGMBOqfv755+8nnoP9ufl/wD3z/4H3gAkHiW0hUheJ7yTL+Zb4Lpnc3FBlurZtLraaNUMVUGHavOk29sdO9l2dpyx//QnOESgQ3/T9/sc/zI47zuzFF82uusqsZ8943YIQQghxwCByPbi+iFxcZcQnwpVQbRzbb775xolJ3GOEI0XREJq4tohX3FjfCsuHVxP+jShmOw70mWee6YQq7jguMWHTbEdw4yjzGqGMq873L+NAyOJIsyRMHBHti5shjhkf6xHWPm8cEc15EOjcA+PhmowDYc1r7gNBDUwCINy5HpMDrOfB/kwIXH/99W58b731lmt9xrUpHsf9I6h9rjn49mOch2sSXo9YnzZtmsstv+KKK9zx7I9jTY58UUJafbiFSE8Udp4kOd8KOy87OTk1rUqV2gWPCw/92q3/fENXy7dQn89CHHtsSHTDlVdiC1TwiIUQQojo4VtTITQRsDjGuLmIahxkRPQHH3zgHOzBgwe7Vl5//vOfXcEv2mchynkgrnGFccURjYhsxCkiFgccMU34NnnLXuAS1o2LixBFqHJNnF2EPcKakGq2cW4cbcaKwEcQ4x6zHjFNDjRLXyiOcHXGwXpcYwQ610boI+S9g+9BDHOf/jmTDEwm4DqTt84EBWH4OPeMD5GPE812XHEvnn3uNQ9Cxrl/wtcJkwfC1nG+eS8IGaequRxsIUQ4cr4TDWap164tIey8dpwGl9wcVXO5daj9vX2zkUmNGyPvdP/9Zu+9ZzZvntmf/mT2wAMVPUwhhBAiKiAUcZwJkybXe9y4cc5JRiCyfuDAgU7w4lRTeRux7CuDI8hxbnmOIMXhpQ81wpacZiqJI55xqhHyiNeLL77YiVLCrXGnOT/bEbuIfwQ45yfcnHxz1jMxgAD2/cPpl82+hK4zbsQ8Y0TAMyGAcOfYP/zhD+5ciGkmA7g+Y77oootcsTgcb/9ASAPj5n5wwYHxMxZCzBHmXJelz0vHZScyAOEdrDZOzja59EQSMIngq5rjhPOQ6BZCFIXEd6K63oRD194nsiW+o8OgZl868Z1rv7RNm0IhaYXgPady69lnm/3tb2bnnmvWvXs8hiqEEEIccHsxQpvpt43QRVCyDsGL4Katl889xu1lOwXOEKA4uVQ1J08asct2hCznJRwbt9gXTQOEOjnXCFzEOm3AcLFx2hG3OOdUIWc7AhqB6kPKe/bs6fLMWUerLYQ2jjKuNuNEtCOUEc5cjzxwKp3jhnNen19OgbV///vfLuwcdxynn/xqD448Y/SVxrkXBD7vB+NiogDhzZjoxc2kABMLZ5xxRiFBHczZDm/fJoQQxSHxnQT53oXDzhHfR8RhYKlB14PnW4uqK+yH7Y3suefy7KGHIuz0k5+YXXyx2QsvmF1wgdm0aWYHHRSH0QohhBDlby+G2ETEIqoJqaZVF1W1ccAJ5W7durUrnkbxM8K2EdCIYEQrLjQF2nCxydPGXUboEqb+2muvOXGKMKUqOOKV4wgVRyBzrUsuucReeOEFJ8D79Onjrvvkk0+6bYSMI3YpbIar/NxzzzkH2bcbo8o4zwljx2E/+uijneD93e9+5+6NiQRcZ0LiccN/+ctf2tChQ52oJxecc3JdJhLYH3GMSMaVB7b5sHtEPQIcsU7Iuh8b94KI53UkUa2cbSFEeZD4TjQWLdpPfOfmmq3em+qdlamc7wMhMyPfBjUeZQ8s+IU980xNF1kecaL6iSfMxo2jZ4nZ//2f2WuvmWVkxGHEQgghRNnbiyG8KRyGgMa9JnwbUYqYJmyacG0ELmKYUHKEJ44vApYcakQ7onzYsGHuOMQuS1p94TQjVk877TS777773DrOw3rELM44YeoPPfSQC8nmOedF5CKoEeicD7eYCQDC3XHLOSfjxJFHVOO8I5xxunHeKWzG+XCvEe6ch3Mj2AkR9y62z/lGbJNPjvinhRq55MA5EM+EkkO/fv2ci80EAaKb7ZyL98rndAshRDSQ+E405s8PLY84olDIOQI8K0vVzqPByXWn2oMLutqGDa1cdzE6i+1HrVpmr7xi1qOH2RtvmLPIb7klDqMVQgghCoeS4+IingmR9qHbPuzZt68iPxuhSy40rjLiFieabRx74YUXunUIVBxilpyPLiC4zbjdhGETck7+NsXYcItvvfVW5zzD+++/73LFcYg5lnEh0BG8CFsEL+IYV5zQc0Q2VdHJP2esONreqeYcuPDkbZOzTYsuJgEIf0d48+CerrnmGnvggQfc+XDqOb8vqEa4ug8fZ8l9chwQJs69MCYg1xvxDkwWMCYmEDgHxxHqHqlNmBBCHAgS34kGhb7CxPfSpaFl48ZmGXvy4jSw1CErI9+y7K+2x55zad3XX29WrVqEHWk79ve/h3a49VYz+o7+9KdxGLEQQoh0x4eSI54RvwhHhDLuM64vRcROP/10J6hxfhGRiG96WXMMIpnQcfZDJLMOMYo7jnBHxOJGI4jJs0aIIlBxown5Rozfe++91q1bNxfuffbZZzuRTq4118ON5tyEuPP6448/dqIb5xpHnPB01rPPzTff7MaMw825ENxclyrijNsLdJxqhD9uOo4278F7773nzsWxtCbDmfbOPePEuWbcONeIcGByAhF97LHHOqHv30cPY7/jjjvcUjncQohYIvGdBM73kiWhZdOmZiv3poSLAyPLhlnDpv+xpUuz7emnzW66qYgdr73WbNYscxb5hReajRpl1q1bBY9WCCFEOuNDyRGMOLo4wghpQrnZhgM8ceJEJ5oJKWcfhCRCE3H6n//8xxUv8+AyI04RtwhjhC3nQ+QiwBGfFEpDEONi44y/+uqrBeIUgct1fbVwBDVusRfhhITjYnP9Bg0aOCcb4QzkkiNsCfEmnByRj4hmf9x1BDOinXtEUHNuPwmAO8+1OSdCnfNQjRznm/FyjwhwxoGjzsSAbxHmUbE0IUQ8kfhOJMhR8jnfgRwj73w3aybxHS0ybI9dd91Gu+22uq6b2NVX82Mk0o4ZZo8+GpoUGTnS7IwzzEaPNuvUKQ6jFkIIkW7h5YhDRKd3ahHcCGIEJoIUUUuINOIR0Uq+Ms6wF+UIUpxy3w7LQzg6YeSs54EgR+RynK8uznGEkxMuftZZZ7nWXjjbjKlx48bu2mznGM7B8QhenuNgI6zHjx/vxs4273zzGueaftiMj1xu7gv3/e6773bXYHKAczMOjuN4xDgTBbRJo9L6SSed5F6T347Y5py8Zwh4L7yDLcI8KpYmhIgXEt+JxOLFZuQt0bajSZP9xDfO99fxG13K8c+HO1pW5gRbsaKJNWlwh9Wu/p+I+23csMEa1qplz1eqZMdt3GjrO3e2yw8+2L7JySm0X8NGjWzc5MkVNHohhEgdKNp122232Y033miPPPKIpTPB8HIPTi9CGEGKSPUFxbwAp3o3x+Fy04ILF5nCZX4/wtNxmr0AR8jiRtPWC/cZ0ev3pbr3pZde6qqaE9qOK8z5Of7qq692kwKsw93GbcdJZgw45z7vmzByqqdzHSYOEMOIbs7jBT3F3HDpCZMn9NwXSiMnGzcbgc/+TAqw5B4Q/D4MnTB4rs04ea84nkkDRDeh9OwrR1sIkWhIfCdiyPnhh5tlZkYU3yI6ULd8xkXn2avzJ9tV7zWxzD232jeDq1jNyqE2JEFq/PnPNgtrfMcO136szrJl9tamTWbnn18oQqEl8etCCCHKBELxX//6l7Vv397SnWB4eTgI4WDPakBM4y7jBJPbjQDF7UVAI3hxihG/uMu45T7nG4GKqKUvNj2sCVPnGEQtx3z44Yfu3DxHEBPWjegfM2aMc8ER2DjnVAmnbRlj4Hxcn/PTtxtxz/UIbedcnJv9CA9nTIhi2p0hrL3L7cdGpXPamnEs98P7Qrg5eeKdO3d2OdxUQh8xYkTBe0VhNZx//z7SLk3CWwiRaOxTeCIhi60Fc74JOxfR5bJO06xV3bW2dlt1e3h89+J3Ji79kktCkyNEKLz0Eslr/PqpqOEKIURKgYi76KKL7N///rdzNtMdX6k8HBxk3h9EJc+9qESEki9N3jZ52bjGOMG0/kJs4/7iLFPtHJebMHNysjkPwvqCCy5wwvuxxx5zvbtfeuklJ6DJ3+bB/x/OiximZdno0aNdeDeVxlnHsYhjirDhtONYU4iNe2CiAMfe44uicTxj4zrcC0ucc5YIb5a445wPwc57wnVw3hH7REdQqZ1jce0jwfU5TgghEg0534nofIf1lJTzHTuyM/PsL6d8aj97/Wf20Pgedk2XSVa/+taiDyDU/IIL6K9iNnWq2SefhP4HnX12RQ5bCCFSguuuu87lEpP7+5e//KXYfRFgPDyIylQDsRsJQq2pao7opcI4IhrnGXHK5MXnn3/uws3pmY3ARYzjEBPOTRg/7ciOP/54914TOo74xmUmPBuhfvHFF7t9ELSEcyOyuQ7vMa43+dtUCieUnArpv/rVr+zNN990rvUrr7ziHGzEMg47yz/84Q+urdm1115rN9xwgyvixlgZ84svvuhEOpMBPpebiQWca8LVmTBAtHNPuOSIeN4X8sBxsxHvTD4w7vK8l0IIEU8kvhO80jntKZcvDz2X+I4NA9t8a50bLbfJKxrbHaNPsad+8l7xB9BwHbFNXv6HHxIL6MITzkSY44JTpE0IIUSxvPzyy64VFmHnpYE2V3fddZelMuQ5RwJhioC95JJLXHg+Bcao9s1kBOKYyuC0GSNcnP0Qr1QVR6STV42jzesvv/zS5UV79/kXv/iFC932vbAR4YR3Ey6OQw6IY1xwrklOOWPEmaayOpMm3r0GQscJDWcigEJnhNCzZHw8/LkYe58+fZxYJ+ydfXCxubbvIc56hDfnjlSRvKj3qrTbhRAibcPOn3jiCfcBS75Q165dXQGP4iA0itld9m/Xrp0LsfLwJXTrrbe69YRjMYPKlxVfRkG4Hl8CwQcFXxIt7HzVqlARdL7XGjWK39BSmcyMfHu470fu+dOTO9vUFQ1LPgiB3bmz2f/9n1n9+mbbttk/+MFwyilm06fHftBCCJHE4KASPjxs2DD3XV4aKMiGAPQPzpFqIDAJ444EOdwUOSO3G5eafGh6dyOczz//fFdwjX343YOTTOg1TjM52YSdI0b9OagSzu8tRPpNN91k5557rnPQmzZt6gqhkdeNM47wRSjjlON4c46PPvrI5X7jrLM84YQTnINNXjdLQscR0owB9/l///ufC0sfMmSIXX/99fbb3/7W+vfv78T/wIED3dg6derkBDiTAdwL42HSgHNzLJXJw/O3i3uvwtuLCSFEohB38U24Eh/If/rTn9wMOAU2+vbt675UIsGXCDlKV1xxhfvS4QOcB6FYwBcS5/njH//oloRFUaSED/FwaGdBhU//IIwqbjDrvHBhkW3GEN57J5ZFlCCczv+I63DQdBvYaorlW4Zd+14f27YtNONfIg0bml15pVnPnraD12PGhNqQXXMNcYIxvgMhhEhOKMbF9zyhzIQj80DIkXvMc+/EBkHUEXocfKQaCEx+r4SLymDLLN4bL0YRp3yX4VLjbPs8bELPAUFMETLypQkNx03GsX7++eddaDm/oxDKONqYF4hnzApcaRxyws0R0JwfFx2hTF45xdcIace4IOccsY7rTeE0nGvMD189nXPQSozr4mwzacL1mExhAgDhzRLThL+HosR2ed4rIYRINOIedv7www/blVdeaZdddpl7/dRTT9n7779vzz77rP3ud7/bb/9HH33UfXnccsst7vWf//xnGzlypP3jH/9wxzKry+sgbCPXiaIhfEF4+GDmSyMhYAafIl6ELgfiy4M9vkV02LPHyWR75tlnC61vbq9ZJZtjE5a3tMF/X2f/HVLX/ZAokexss169rPfs2fYFzverr/KH7Cqj2003mf361/z6iNXtCCFE0kH+8owZMwqt43cAUW1Er/kw5nSEyDzei2Cfbx9yTZ4zvaypUo7AJcQbdxtTApHL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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_invariants_distribution(df)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Generate N random Uniaxial Deformation Gradients**" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "f_uni = DeformationGradientGenerator(seed=42, size=SIZE).generate(mode=\"uniaxial\")\n", + "df_uni = create_dataframe(f_uni)\n", + "plot_invariants_distribution(df_uni)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Generate N random Equibiaxial Deformation Gradients**" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAHqCAYAAAAZLi26AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA9CxJREFUeJzsnQWYXIX1vk/c3ZW4EjfirmgIEDRBCrRooaXIDy3tHykFikPxQiAQEmIkxBNC3Ik7cVfi9n/eM7nLZLPx3Z2Zne99nmFm7lybsDs73/3O+U66Y8eOHTMhhBBCCCGEEEIkO+mTf5dCCCGEEEIIIYQAiW4hhBBCCCGEECKFkOgWQgghhBBCCCFSCIluIYQQQgghhBAihZDoFkIIIYQQQgghUgiJbiGEEEIIIYQQIoWQ6BZCCCGEEEIIIVIIiW4hhBBCCCGEECKFyJhSO07rHD161NatW2e5cuWydOnSRfp0hBBCCOfYsWO2e/duK168uKVPnzauretvrhBCiFj+myvRfZ7wx79UqVKRPg0hhBAiSVavXm0lS5a0tID+5gohhIjlv7kS3ecJV9uDf+DcuXNH+nSEEEIIZ9euXS5Qg79TaQH9zRVCCBHLf3Mlus+ToLyNP/76AiCEECLaSEtl2PqbK4QQIpb/5qaNZi8hhBBCCCGEECIKkegWQgghhBBCCCFSCIluIYQQQgghhBAihVBPtxBCiJjnyJEjdujQIYsHMmXKZBkyZIj0aQghhBDiLJHoFkIIEdPzMTds2GA7duyweCJv3rxWtGjRNBWWJoQQQqRVJLqFEELELIHgLly4sGXPnj3Ni1AuMuzdu9c2bdrkz4sVKxbpUxJCCCHEGZDoFkIIEbMl5YHgLlCggMUL2bJl83uEN+9dpeZCCCFEdKMgNSGEEDFJ0MONwx1vBO85XvrYhRBCiFhGolsIIURMk9ZLypMiHt+zEEIIEatIdAshhBBCCCGEECmERLcQQgghhBBCCJFCSHQLIYQQqcytt95qV111lT8eN26cXX755Va8eHEvG//+++8jfXpCCCGESEYkuoUQQogIsmfPHqtVq5a9/fbbkT4VIYQQIs2xe/dumzt3rk2aNMnveZ7aaGSYEEIIEUE6d+7sNyGEEEIkLytXrrQBAwbYtm3bEpblz5/frrjiCitTpoylFhLdQggh0gzHjpnt3Zv6x2WClwLFhRBCiOhh9+7d1qdPH1u+fLkdPHjQMmfObHny5HEBjhC/7bbbLFeuXPFTXk5JHVcasmbNao0aNbIpU6acct3//ve/1rx5c8uXL5/f2rVrd9L6x44ds6efftqKFStm2bJl83WWLFlywjr8Y990002WO3duy5s3r91xxx3222+/pdh7FEIIkfIguHPmTP1bJIS+EEIIIU7NnDlzbOTIkTZ//nxbunSp38+aNct27NjhWvDXX3+1uHG6e/fubQ8//LC99957Lrhff/1169ixoy1atMgKFy580vpjxoyxG264wZo0aeIi/aWXXrIOHTrYvHnzrESJEr7Oyy+/bG+88YZ99tlnVrZsWXvqqad8n/xDsw0guNevX2/Dhw+3Q4cO+ZWOu+66y3r16mWxzqpVq2zLli3Jtr+CBQta6dKlk21/QgghhBBCCJGSLjeie9++fScs5zk6s3bt2qlquEZcdL/66qt25513uugFxPfgwYPt448/tscee+yk9b/88ssTnn/44Yf23Xff+VWMHj16uMuNcH/yySftyiuv9HU+//xzK1KkiCfCXn/99bZgwQIbOnSoTZ061erXr+/rvPnmm9alSxd75ZVXPEE2lgV31SpVbG+iH7ALIXu2bLZg4UIJbyFE1EOZdySKljiuEEIIIaKDX0/jYiO8d+7caTkpVYsH0U1t/fTp0+3xxx9PWJY+fXovB584ceJZ7WPv3r3uVNMQDytWrLANGzb4PgKo3cdFZ5+Ibu4pKQ8EN7A+x548ebJ17dr1pOMcOHDAbwG7du2yaASHG8H9RdeuVrVQoQve34LNm+3mfv18vxLdQohoh77qHDkifRZCCCGEiCS//fabj+HETF23bt1Jr6MPL7roovgQ3Qi5I0eOuAsdDs8XLlx4Vvt49NFH/R8zENkI7mAfifcZvMZ94tL1jBkzunAP1knMCy+8YM8995zFCgjuusWKRfo0hBBCnMUXA3rNArh4TM8Zf5N0sVMIIYQ4d3CxN2/ebG3btvWK6HDhjXbEZE2tELWoKC+/EF588UX7+uuvvc876NVOKXDj6T0Pd7pLlSqVoscUQgiR9pk2bZq1bt064Xnwt6Znz5726aefRvDMhBBCiNjkoosucjcbsd2iRQtvQd6/f79rRoK0q1atmqrnE1HRTUBXhgwZbOPGjScs53nRokVPuy2914juESNGWM2aNROWB9uxD9LLw/dJw3ywzqZNm07Y3+HDhz3F7lTHzZIli9+EEEKICyVcTLdq1cq/DAghhBAiecDFZhY3o8HCK5nRns2aNUtVlzviI8OYlVavXj23/AOOHj3qzxs3bnzK7Ugnf/755z0MLbwvG0grRziH7xNXml7tYJ/cExVPP3nAqFGj/Nj0fgshhBBCCCGEiF3KlCnjYd3XXHONderUye95npq93FFTXk4ZHSV0iOeGDRt68viePXsS0sxJJGcUGD3VwIgwZnAz2ot/yODKBXX73GiY//Of/2z/+Mc/rGLFigkjw6jdv+qqq3xdygn4hyc1nbR0gtjuu+8+D1mL5eRyIYQQQgghhBAhcLQvvvhiizQRF93du3f3JneENAKaEnAc7CAIjRFYpIoHvPvuu556zpWKcJ555hl79tln/fHf/vY3F+7M3cbRpoSAfYb3fTN6DKFNcz3779atm8/2FkIIIYQQQggh0ozoBsQvt6QgJC2clStXnnF/uN1///vf/XYqSIXFLRdCCCGEEEIIIdK06BZCCCGEEEIIIc6W3bt326+//uqjN2kzplc7tQPSzhaJbiGEEEIIIYQQMcPKlSs9mZzpU+GVzCSWk/sVbUQ0vVwIIYQQQgghhDgXhzux4Aaes5zXow2JbiGEEEIIIYQQMeNyZ8qUyfLkyePh24yLZv52ILwpOY82VF4uhBBCCCGEECImBHevXr1s4sSJCcsY+cxEqnXr1tmRI0e8xzvakNMthBBCpDK33nqrXXXVVf74hRdesAYNGnj4S+HChX35okWLIn2KQgghRFSWle/cufOE5YjtkSNHWqFChfw5oWrRhkS3EEIIEUHGjh1r9957r02aNMmGDx9uhw4dsg4dOtiePXsifWpCCCFE1PDrr796+Thl5dmyZTtJeB87dszD1EgxjzZUXi6EEEJEkKFDh57w/NNPP3XHe/r06daiRYuInZcQQggRTfx2vGw8S5YsVrlyZa8K27dv3wnrXHnllVE5NkyiWwghhIgigrI5rtYLIYQQwk4qG8+bN6/Vrl3b/2YePHjQMmfObI0aNYpKlxskuoUQQqQdjh0z27s39Y+bPbtZunQXvJujR4/an//8Z2vatKldfPHFlpb68J566inr16+fbdq0yerUqWP/+c9/vJddCCGEOBsQ1FyQDkaF4XhTGQYsr1ixokUrEt1CCCHSDgjuSASoUPKWI8cF74be7rlz59r48eMtLfGHP/zB39f//vc/T5n94osvrF27djZ//nwrUaJEpE9PCCFEDJArVy674oorTprRjeCO1rLyAIluIYQQIgq47777bNCgQTZu3DgrWbKkpRXot/vuu++sf//+CT3qzz77rA0cONDeffdd+8c//hHpUxRCCBEjlClTxm677TYPVaPHm5JzHPBoFtwg0S2EECLtQJl3JOZzctzzhLTV+++/30uvx4wZY2XLlrW0xOHDh31uatasWU9YTvLsqRz9AwcO+C1g165dKX6eQgghYoNcuXLFXAuWRLcQQoi0A33VyVDmnZpQUt6rVy93gvkisWHDBl+e1EiUWIT31LhxY3v++eetatWqVqRIEfvqq69s4sSJVqFChSS3YXb5c889l+rnKoQQInqyQH6NMTf7dEh0CyGEEBGEEmto1arVCcs/+eQTu/XWWy0tQC/37bff7v3bGTJksLp169oNN9zgY9GS4vHHH7eHH374BKe7VKlSqXjGQgghIsXKlSuT7Numn5vy8lhEolsIIYRIZZjFHV5entYpX768jR071vbs2eMCulixYta9e3crV65ckuuTSMtNCCFE/DncAxIJbuA5y+nnjkXHO32kT0AIIYQQ8UGOHDlccG/fvt1+/PFHT5sVQgghAigpTyy4A1jO67GInG4hhBBCpCgIbBz9ypUr29KlS+2RRx6xKlWquGMhhBBCBNDDfSGvRytyuoUQQgiRouzcudMD4xDaPXr0sGbNmrkQz5QpU6RPTQghRBSRM2fOC3o9WpHTLYQQQogU5brrrvObEEIIcbq0ckrICUvbv3+/bd682UdOhoepkWIei0h0CyGEEEIIIYSIiNieP3++ff/9914VxbjMffv2eehm06ZNbd26dS68EdzkgMRiiBpIdAshhIhp4iH9OzHx+J6FEEKkvdFgP//8sw0ePNjFNWTLls3zP4oUKeLO9+WXX+7LYn1Ot3q6hRBCxCRBP/DevXst3gjes3qihRBCxPJosF27diUIbsDlXrRokT9Onz69C+6LL744pgU3yOkWQggRk2TIkMHy5s1rmzZt8ufZs2e3dOnSWVp3uBHcvGfeO/8GQgghRKzx66+/2vr16z0YDeHN37MsWbJYxowZXXhTal64cOGYTStPjES3EEKImKVo0aJ+HwjveAHBHbx3IYQQItZY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hg197vaePXs8zRx69OhhJUqU8H5qwKGef3z2NI8JESAqnx+wChUq+PK//vWvdvnll3tJOaPAGEeGo37DDTf461wposycYxMygGN9//33u+C+5JJLLNbJeOiQNQmelC+f/AeoVCl0z1xASl3y5En+YwghhBBCCBGnUD6Oy01ZOaOUme6Eo12nTh0vKWeMcrp06Xzc8vLly/01hadFNxEV3d27d7fNmzfb008/7SFmtWvX9rlzQbga7jMBAQGIaH7YAl555RW/tWzZ0saMGePL1qxZ4wJ769atVqhQIWvWrJmPAuNxwGuvveb77datm6eSMxv8nXfesbRAkS1bLBMzzXPksOz58iX/AbiCVro0/3NCoWoNGyb/MYQQQgghhIjT4DRmcSOmKRnft2+fTZ482ScvUam7YsUKLzPHmESUYxqyDqajSsujl4gHqd13331+S4pASAeUKVPGAwROx9dff33GY1Ka8fbbb/strVH0eGr5lsKFrXRKHYREdIluIYQQQgghktXh/uKLL1xkE9hMRW7FihW9fJzxYEx/ypgxo1fuIrpxu3HE77333pMmQonoImI93SJlKLxli99vC3P2k51gXvevv5qRki6EEEIIIYS4IAh+PnTokFfxIrgJUfvPf/7jFbtU6ZYvX96qV69uZcuWdYGOAGc5lcMiuom40y2Skf37Le/xkQI7ChRIueMULBjq5eZYK1f+LsKFEEIIIYQQ51VW/tlnn9nPP//sU5UIUSOHitba7du3e5st6eSEQyO2g4yr8MA1Eb1IdKcl1qzx0oVlZnYgW7aUO066dGYE102fziU5iW4hhBBCCCHOE1xrxHbhwoWtadOm/hx27dpl06ZNc4ebQDXcb0rLg9HFTIMCpZZHPyovT0vQZ21m41PjWMfT4l10CyGEEEIIIc4Lxhfv2LHDS8WZuU35OInk9G0XLFjQnWyEN6Xn9HUTpIbrjQBXanlsIKc7LbF6dYLovialj1W2rBnJ8tu2hW7586f0EYUQQgghhEhzgvv999+3H3/80dPIEdalS5f2tHKeM+1p9uzZ1rx5c5s6dar3bzMOmfnclJpfeeWVSi2PASS60wpHjnh5eaqJ7ixZQqPD6OnG7VaKuRBCCCGEEGcNZeRffvml/fTTT15KTho5gpqxYEOGDLH69etbjRo1fCwY45Bvv/12d7fz5cvnzjcOtwR3bKDy8rTC+vVmhw/b/syZbWFqHbN8+dD98uWpdUQhhBBCCCHSBIz7Yh733r17vbSc0ciUjgfCm8A0Rh3jcI8YMcLTzQlcQ3BffPHFEtwxhER3Guvn3pySqeWJKVcudI/bffRo6h1XCCGEEEKIGHa4586da0uWLLEDBw64sM6ePbu/hvDmFowDQ1gjxOnvps9bPdyxicrL0wpr1/rdFnqrcb1Tg6JFzbJm9VFltm6dWcmSqXNcIYQQQgghYhCc6gEDBvgM7iJFinhIGqXllI0fPXrUXW5AcFNGvmfPHu/tBtZRD3dsItGdxkT31tQMNCNIrUwZs4ULzVaskOgWQgghhBDiNA53ILgR1wUKFPBANOZyB8Kbvm7KzcuVK+fuNjeENm54s2bN5HLHKCovTwvs2WN2/ArY1rx5U/fYpJgDolsIIYQQQgiRJKtWrfLZ2owFq1q1qh08eNBFd9euXa1atWo+ixsaNmxoN9xwgxUtWtQWL16ckGpeBrNLxCRyutMClHZDwYJ2OFOm1D120NdNT/mhQ2apfXwhhBBCCCFiABzun3/+2SpUqGCff/6593Uzh7t69eruer/33nsurunhxtlmnFjQx62y8thGojsNlZZb8eKpf2yC23LmNPvtt9Cc8ECECyGEEEIIIRJKy4cPH+7Cedy4ce56E562fv1627Fjh+XNm9emTZvmJeSVKlWyOnXq+LzunDlzajRYGkDl5WnJ6Y6E6E6X7nehrRJzIYQQQgghTkoqnzBhgm3evNnD0QhTy5Qpk5eNk16O6EZUI8Rh9OjRliNHDp/PrdFgaQM53bHOsWO/O90lSpht357650Cgw5w5CWPLhBBCCCGEiHfCk8oJSWPOdocOHaxkyZJeQo6LTYDauuMGGiFqlJfjfpNqLtIOEt2xDgFqe/eGksQZ4RUp0Q2I/8OHzTLqx0oIIYQQQsS3w92nTx9bvny5B6ZRPt60aVMX4PPmzfN19u3bZ9myZfNQNZxvyJIli7vhwegwkTZQeXlaKS0vUiRyYpcxZfR1Hznyu+suhBBCCCFEnIKwpnycQDRSyBkBNnLkSJs5c6YVKlTIBTchaQhyys5JNS9btqy73SSZE54m0g4S3WlFdBcrFrlzoK+7dOnQ419/jdx5CCGEEEIIEWFIHR81apT3ZSO4SSjfsmWL1a9f32dyt2zZ0ipWrOjuNo42ZeYI7p49e7ojjkDXPO60heqAY50NGyIvuoEPhvnz1dcthBBCCCHiuqycsWD79++3b7/91vu6Ed0kkuN8N2/e3KZPn+4CvFOnTgkl5eXLl7dff/3VChcurPFgaRCJ7rQiuunnjiTB1ThE99GjoR5zIYQQQggh4qysfMqUKTZx4kQPRUNs06OdMWPGhP7u4sWL27Bhwyx9+vTuhiPAmzRpYnXr1tV4sDSKRHcsQ6rhnj2h8m56uiNJ4cJmWbOa7d9vtn59KEldCCGEEEKIOHK5Fy9e7H3ZCGqer1ixwooVK+Zl5DjajAdr1KiRzZkzx4X4nj17rEiRIi66JbbTLrIj04LLXaCA2fHEw6jo61aJuRBCCCGEiLNZ3GPGjHFxTU82Y7+2b9/uz48dO2YbNmzwADUes2zv3r0+Fqx06dLWpUsXCe40jpzuWAZHORpKywMQ3YsXh8LUGjeO9NkIIYQQQgiRotCzTQ/3pk2bvCebULQyZcq4043A5j5gwYIFVqFCBS8nZ043peWMDGOGt0jbSHTHMhs3RpfoDu/rPnYs5H4LIYQQQgiRRh3uCRMmWP/+/W3GjBnuXlNaftNNN7mw5jXC0wJ3m3JyhDYl5TjhrIvgZrlI26i8PJaJlhC1ABLUKXPft89s8+ZIn40QQgghhBAp6nIPGjTI+7ZxrhHPpJZPnjzZS8ybNm3qTjbhaZSWX3zxxd7PjSuO8M6dO7e1adPGxbpI2+iySqxy8KDZ1q2hx5EOUQvIkMGsZEmzFStCJeaEqwkhhBBCCJEGWbdund+OHDnizyklR2Rv27bN08sffPBBa9WqlTvauN242zjflStXtpIlS/pytkeIi7SNRHesl5bnzBm6RQuUmCO6KTFv0CDSZyOEEEIIIUSKwEgwoHQ8IHPmzJY3b14X3vR69+vXz9PLKSPv2LGjVa1a1Xu/A6GeP39+HxMm0jYS3bFKtJWWBwQfGjjd6usWQgghhBBpFOZt42wHpeXcFyhQwEX1gQMHfBRYgwYNXFjjarOcmd3hgvvKK69UcnkcINEdq2zaFF2l5QHM5yalcfdusx07zPLli/QZCSGEEEIIkewharjaNWvWtEmTJrnYxt1mFjd93SxnJnfZsmXd+QaEeMWKFf01Us5xuCW44wOJ7lgX3dHWN02QGsJ79eqQ2y3RLYQQQggh0liA2oABA7w/u3z58t6XvXXrVh8VhtsdBKRt3rzZnfAABDnPL7nkkoiev0h9lF4ei1C2Ha2iG0qVCt0jvIUQQsQ9fBGltDLx7d577430qQkhxDk73H369LGFCxfaokWLbNiwYVa4cGEvI8e5vvTSS61EiRI2dOhQmzNnjrvd4eBwi/hDTncsQun2/v2hfumCBS1qRfeaNZE+EyGEEFHA1KlTE3oYYe7cuda+fXu79tprI3peQghxriCkR44c6eJ7w4YN7mwHI8Bwux9++GFbtmyZjwnjNYR57dq13eVWaFr8Iqc7Fglc7gIFzDJG4XUTxoYF58nFASGEEHEN82mLFi2acGOuLSWZLVu2jPSpCSHEGUFgc7Fw3LhxLqjp0+ZCIqIaGAdGkjmCmr7t7t27+zpU9Ozbt8/L0BWaFt9EoWITZySaS8uBshl6ubdvD7ndFSpE+oyEEEJECbg/X3zxhbtBfCFNCr60cgvYtWtXKp6hEEKc2L9NOfny5cv9swhXe+/evda0aVPr37+/i2+E9OLFi23NmjVWrVo1GzFihAvsTp06eV83Y8KaNGkiwR3HyOmORaJddINKzIUQQiTB999/7z2Ot9566ynXeeGFF3ymbXArFfxNEUKIVHS3Z86caa+++qrP20Zs41hv377d1q5daz/99JPVqlUrYUQYr+F0I7JxvceOHWuDBw+2rFmzeo+3BHd8I9Edi8SS6FaYmhBCiDA++ugj69y5s8+3PRWPP/64f4ENbqv1t0QIkcru9muvveYXCfv162fTp0/38vIMGTK4y12yZEnbsmWLz+GmVxshXrlyZWvWrJnNnj3bZ3aznFRz7tXHLVReHmscPWq2eXNsOd2cM7O7hRBCxDW4QZRd9u3b97Tr8SWVmxBCRMLh/vjjj+2HH37wADRKyo8ePeoXAHGtGQeGm12wYEF3uikn57ONdQhZo20G9xvhzXgwBLpcbiHRHWvQJ01oAwFq0TwDu1Ahs8yZad4LXSQoUiTSZySEECLCfPLJJz5ah5E6QggRjcyaNcsvDNKfffHFF3sqOQ43gpuycuZvI7gR1bTKINK/+eYby5cvnwvy5s2bu/DOnDmzt8cUK1Ys0m9JRAES3bFaWo6ojWb3mHMjxXz58lCJuUS3EELENbhAiO6ePXv6l1UhhIg2Nm7caKtWrfKZ2w0bNnQRXaFCBVu6dKknlSO+KSunv5vXeMyFxBtvvNETzIN2GMS6RoSJcCKu2t5++20rU6aMXz1q1KiRTZky5ZTrzps3z7p16+brcwXp9ddfTzJ8hV8Uyjj4Jbjqqqt8Pl44rVq18u3Db3/84x8tJghKyxHd0U4wOky9eEIIEfdQVs6X2dtvvz3SpyKEEEn2caNLcK1JK+/Vq5eNGjXK7rjjDqtYsaKHowUjwujfRpMMHz7cXnzxRQ9aGzBggP3yyy9Ws2ZN++233zQiTJxARC819+7d20eGvPfeey64EdEdO3Z0kYxgTgzBBeXKlbNrr73WHnrooST3SVLgvffe68KbX4wnnnjCOnToYPPnz7ccOXIkrHfnnXfa3//+94Tn2bNnt5hgy5bYEd1KMBdCCHEc/hbjBAkhRLRBiTiimeCzTJkyeak4fduMAfv8889dn1BKjrtdvXp1r9Z58803XagDs7urVKni7jYl6ExnqFevngS3iA7RTQQ/4ve2227z54hvovUJL3jsscdOWh8hzQ2Seh2GDh16wvNPP/3UBTypgy1atDhBZBctWtRijlh0urdtM9uzJ9JnI4QQQgghxEkQhLZt2zbvwz5w4IBVqlTJhTVmH5MWEOFUxhKaNmnSJKtRo4atWLHClwGzutkeUU4POBcYJbhFVJSXHzx40IVwu3btfj+Z9On9+cSJE5PtOPRWACUe4Xz55ZcegkDPBaNJcNGjHlLAY8npzpr19/NUibkQQgghhIgyh5tRYEuWLPHxX1WrVnU9UqhQIc+foGp23Lhxrk248ZjScnq7Me8Q1hh5bMMyILE8eCxExJ1ugge4KsQPeDg8X7hwYbKFtvz5z3+2pk2burgOIOyAUAOuXBHt/+ijj3pJ++lGmHDVi1sA4wNSHS4g0EvCL3LevBYTUGKOO4/ozpMn0mcjhBBCCCGEl4bTu718+XL/Xo8WKFu2rLVu3dr1wXfffecOOK41ZiGZUjxHpzCBAbG9detWF+YIcErLEdyI8sRmnxBpOj6U3m6uXo0fP/6E5XfddVfCY8pDiPJv27at92OUL18+yX0R0Pbcc89ZVJSWFywY3cnliUX3jBmhvu6wCx9CCCGEEEJEyuH+4osvPABt3759ljNnTtu/f79X4dK73blzZ/v+++/dsWbsF+uQYI6zjfDG2WZ95nFTOctyDD3ENrpCieUiMRFTbvyA8oNMNH84PE+OXuv77rvPBg0aZKNHj/ah9KeDEDfgl+lUUIJOqXpwYxxAREV3rBCEqa1bZ+mOHIn02QghhBBCiDiHgOWpU6d6VSxBy/Rm079NiBpzuhHVvJY3b17Phpo5c6bP7UYDsC7Vutddd52VKFHCxTc3dA2CW4nlIqqcboIKSPUbOXKkj/UCfrh5jmA+XygBuf/++61fv342ZswYLxM5E/xywemG11Mywi2ixFI/dwDlNdmyme3bZ9m2bo302QghhBBCiDgvK6dEnDZTxoChSXC+yXdCRGMM4nzXqlXLtm/fbgsWLPAS8qDMnJJyliPaWb99+/Y++piQtSZNmkhwi+grL2dcGCEF9evX9wH0jAwj8S9IM+/Ro4f/MFPaDfygc2UqeEwkP4KZXwwG1wcl5czV69+/v//Qb9iwwZdTGkKfBSXkvN6lSxcvCaFng/FjJJszVy+qiaXk8gBSHXG7Fy+2HImqGoQQQgghhEgtENc//fSTz9emfBzXGlebfu02bdq4DkErIKJxvVetWuWmILAubjYzu1nOY3RIUFqOZpHgFlEpurt37+4z8J5++mkXx7Vr1/aRX0G4Gj/Q/CIEMDuvTp06Cc9feeUVv7Vs2dJdbXj33Xf9vlWrVicc65NPPvGZeVzNGjFiRILAL1WqlA+3f/LJJy2qYbZpLJaXA+X9ixdbToluIYQQQggRIebNm+fjhBkHRvtpUC6+adMmb0klRA1jj9c7dOjgrjazutEjCHG2KV26tIesIb5xxTH16OVWH7dIdtEd/FAmB5SSn6qcPBDSAVyForTjdJzpdUT22LFjLebYvRt7P+QcFyhgMcXxvu4cx6sOhBBCCCGESG2Xm9FgiGpKzKmCZZoSwWmBs43xd8stt7i7zbqMEGvWrJmLcKpq0RlUzPKcmdxAL7j6uEWKiO5OnTr5lR7KwCkPR8iKFCZwuemRjrXZfyVK+MWCzHv3mn5ShBBCCCFEagvuadOmuZimH5sxwASjEZKGQ03PNqKZLCjEN4L8mmuusSlTpnivN73fH374of32229Wt25dTzdHC1WqVMnbUyW4RYqIbnqp//e//9lnn33mY7Togbjjjjs8EI3ybZGCIWqxVloOmTKRUucJ5o0jfS5CCCGEECJuwNUeMGCA5ziRI0XPNuXiJJMH478oEUffILA///xzF9eUjpMVxSxv1qNnG6ebdXG/2ZfEtkjRkWH8EBI+RnjA5MmT/SrPPffc4ymADzzwgM2ePft8ditOR5D8HWul5QHHx7Y1ifR5CCGEEEKIuHG4mcWNe02bKoK5efPm/hqON5OJcL8Z+VWlShUX28BIMFLL3377bXe8GQ/Wtm1bu+yyy+ySSy6x7NmzS3CL1A1So8SCudokgb/44ov28ccf2zvvvGONGze29957z6pXr36hhxDhojsWnW6gBWHKFIluIYQQQgiRKjD1aPDgwR7GjACnIrdRo0bew03GE243/dn0cjdt2tQFONpmwoQJvj3Ce9u2bbbxeBgwwWvAbG8hUtzpBnobKLdg9Ba9ED/++KO99dZb/kO5dOlSX3bttdee7+5FWnO6j/f9kz2fft++SJ+NEEIIIYRIwyCyGQuG4AZKw+nl7tu3rzvelI537drVOnbs6CXmw4YN8ylKVPIyBYl1gv2Eo6RykWpO9/33329fffWV//CS8Pfyyy/bxRdfnPA6V38Y5UW5uUgGDh3i0lpsi+7cue1gjhyWec8ey86s9aZNI31GQgghhBAijUIfduBMA3O1GQFGbzaTmEgfZ4QYI4oR2O3atXNDkeUknNO3zXqUkTPiOBDcSioXqSa6KdV488037eqrr/ZeiFP1ffODKpKBbdtC91mzmmXPbjFJunS2p0gRy7x8ueWYMyfSZyOEEEIIIdIgVN2iVUgn37NnjxUqVMjdavqwcbQR2fny5fMWWNLL9+3b58t++OEHr+RlndWrV3u5Obc6dep4flXOnDnd4ZbgFqkmup955hlr0qSJ90CEQ9w+PRAtWrTw11q2bHleJyVOkVyOy82c7nOEq3ykMZ4NfCAxJiEl2Jo3r+WjvOfnn23GjBlnXJ8LN6VLl06RcxFCCCGEEGkLSsPfeOMNW7FiheuRIUOGuEjG3WYZZiHCGVGNo/3CCy/4903mcSO26flOd/y7Nu43wdE1atSI9NsS8Sq6W7dubevXr/erQ4nFHa+R+CeiI0SN/yf02h86fPis1s+UMaPdd999yS68OY9+s2bZIxj2M2davXr1zrhNtmzZbeHCBRLeQgghhBDijA43gnv58uXuSnNfrFgxLzMnII252hs2bPDScdLIMZoQ27jhbFurVi0X6LxO0FqnTp2sdu3akX5bIp5FN73cwVWgcOiTUJpfdIWo4XAjuKtW6WrZsxc6w7qbbcHCfr5Ncotu9rmCkQxcOzCzJ6/ra5vynjqEYvPmBdav3822ZcsWiW4hhBBCCHFaKClHaAdaZdKkSdahQwd/vmjRIitVqpQnkeN2I8CnTZvmBiKiG5GNG07PNnBfrVq1iL4fEceimx5uQHDfeuutJ/Rz424zdJ6ycxF9yeUI7ly5ilkkof5hqpkxHbHegZ02q1jdiJ6PEEIIIYSIbejXXrJkia1cudIrKXfs2OGJ5fRnk0hO7zZjwOjLLl++vJeWz54920eJXX755bZr1y53wtkHzjbuuMLSRERFd+B+cvWIH8QgSh/ogWBY/J133pnsJxnXHDsW++PCwphwXHSXXD3RZtW+NdKnI4QQQgghYhSE9hdffGE///yzu9WjRo3yCsnLLrvMk8kZETZ58mTbv3+/3XbbbZ5Ojhi/4YYb/H7gwIE+Noz2WErPEd3169eX4BaRFd2ffPKJ35cpU8b++te/qpQ8NSAAbT9F2V7rYrHOxOP3pdYgv4UQQgghhDh36MP+8MMPbebMmQkhaHnz5nXHevjw4e56//TTT5YpUyarWLGibdq0yY3DsmXLusAGhPfSpUt9XfKHMBQluEVUpZeLVE4up8ogU6YzJpJv377d73ds3+5hd8FcwWgT3YU3zbOs+3fY/qx5I3xGQgghhBAilqBHe+TIkTZgwADP/2EGN053w4YN3dn+5ZdfPL0cQU7fNi2y//3vf728HIGNww0kl3NDjAMBbEJEVHTTC8EPN3PtmFeXVJBawNmMgxLnn1x+ukTyX47fjxo92haEzUk/ePCARQObuOUuaYV3rbGSaybZ0gqdIn1KQgghhBAihgR3v379/DHONiOLEd58PyYc7eKLL7YqVap4mTkjwXid6lxaYBkbRik648Jom0WE45AH4WmMExMioqKbQIEgOO2qq65KkZMRSZBEP/fpEsl3b1titnK0lS3T2qrnr2jbti2xFStH+wdOtLCsSC0X3aVW/SzRLYQQQgghzlpwv/baazZ06FDr3LmzzZ0718vHaX1dtWqVj/uiZBwBjvvNZCUSzTEML730Uuvbt68/JjyNEGgEN/3c+/btU3iaiA7RHV5SrvLyVOQ0IWpJJZJn2xsqR8+aNZ+/xhiwaGNZ0drWeMlgK73650ifihBCCCGEiJGU8i+//NLdaqCFErGNEKdHG/cagV2oUCEfD0aQGkFrixcv9nXo3b7xxhvdiEKMI7opJ2deN664BLeIup5ukYqkQHL5waMZbeP+PJY1w0ErmHm3naZTIEVYWqSW35dYO9nSHzlkRzP83qsuhBBCCCFEYn799VcfBZYxY0i+LFiwwNq2beuONgKbkWDAiLAiRYpY//79XWBTMk5b7Nq1a+3HH3/0FHPWESIqRTe93Kfr4w6HwfMiGTh6lH/Mk3q6z5f1+/LaRyvb2LjN1ezQsdD/+iJZdtiVxadat5KTLbXYkK+s7cua17Lt32FFN862dcXrp9qxhRBCCCFEbM7ipmwcd7pChQouwgcNGmQNGjTw7Kly5cp5eTk93fRyM6+bcLXGjRt7ujnbUYqO+12jRo1IvyURZ5y16H799ddT9kzEyZBEjvDmil7u3Be0q2m769pbi++x/UdDYRFZ0x8MOd4H8toHK9rbjxtr2aNl3rLU4Fi69La6VBOrtOQH7+uW6BZCCCGEEEmBSP7oo488YZxebsrCKR8n+AzhTVI56+Bgk3vEMsrH6d2uVq2aTZkyxVavXm1FixZ1l5ze77vvvttL04WIOtHds2fPlD0TcfrS8guoAV9sl1rvtQ/aUctgNfP8an8q96NVzrXODhzNZGM2V7cPlrezX/cWtkcWPWo3WWiEQkqzulRTF930dU++5MFUOaYQQgghhIgth/vrr7+2iRMnes81wpn+bUQ2wWcdOnTwdajIJaH8lVde8cA01kF0T5061StwGQsWlKXjljNqDJGuPm4RdaKblD8CCoLHpyNYT0S+n3vdgeLWx150wd2+8Gz7W+X+ljH9UX8ta4ZD1qnoLGuUf4k9Ofd6m7+7lH1pQ+y2XW9asRPz2ZKdVaWa+n0pwtSYjZjajeVCCCGEECKqwbWmd5uy8REjRljXrl3d2a5atapNnz7dRfVvv/1mlStXtu3bt1uXLl38nlJzhPjs2bM9WC0YC5YtWzYfFYYQZ9+UoguRGqQ/2xX5wd20aVPCTDyeJ74Fy0UysWXLBYnuI8fS25vrHrJDltOqZ593guAOJ1/mPfZSzS+sbLbVtseK2o0/PGA79me1lGRdiQZ2JH1Gy717neXdsTJFjyWEEEIIIWILHGwcbcw+erO5EY7WqVMnX0bqOOXjuNU422vWrHFHnP7tFi1auPONyA4X3IjzYAQyYl2IqHO6R40a5b0TMHr06JQ8JxEQhKidp+juv66+rThQ3rLadru32LuWMf2pw9hyZjxgz1R4wx785V5bsauM/XHQZfZVtz6WUhzKlN3WF6trJddO8RLzHfnKptixhBBCCCFE7IDY/vnnn71/G+caoYwOoa97y5YtnkKOmMbsY90SJUq4yKanG2HN/G7KzNmW8DTWxeEOBDcQrCZE1Inuli1bJvlYpILTfR7J5fuOZLdPV7b2x23tccufiat5p99P/ky77Brrbp+lm2C9511sHcsvtcwZf7GU7OtGdBOmNqfmzSl2HCGEEEIIETsO94QJE2zw4MFeRXvo0CFbuHCh92TT002pOeIZEb1v3z5ftn//fh8PhsvNMtZBaJNSnpSjjYBnlJgQUVdenhiuHBFWcMcdd/jt3//+t0aFJScHDlD3ct5O99htl9nuw9msRObVVtf+e9bblbQpdk/Vr/zx/UM62fL1Gfzxju3bbf369SfdCKO40L5unG4hhBBCCBHfYhuHmrRxKmwpIWdMWKtWraxs2bI+j5tZ27jbiG4SzHHCGzVq5CXmlI8jzHG8mzZtaq1bt7ZrrrkmoVI3gOeEsClETUSl0x3OuHHj7PLLL/crTPXrh8Y9vfHGG/b3v//dBg4c6H0UIplC1LJnN8t6rv3V2e2n7V380TUFe1v6dSf3cSfFwYO7/T7P/J5W0srZmkNN7L2J15nZtzZq9GhbkERbQaaMGe2+++7zn4VzZXXpkOguvGmuZd2/w/ZnzXvO+xBCCCGEELENJeJ9+vSx5cuXW7FixeyHH35wcV2+fHkX4SSRI66PHj1ql112mR04cMCD0BDfCO169epZunTpvMz86quv9jnegagmpZx1cbwpKcfhluAWMSG67733Xuvevbu9++67ftUJuNJ0zz33+GukCopI9nPfanuP5rLiWbdZo1yTbNFZbnX48H6/L1+moz2SdYQ9tLCRrbNrzKyLlS2zz6rnr3jC+nv3brYFC/t5/8z5iO7fcha1bfnKWf7ty63kmkm2tEKnc96HEEIIIYSIbYf7iy++8B5uSsMRxHy3pGQckY3wnj9/vgvtunXrujgvUKCAu+IsZ32ccIT57bffflLZOK8rpVzEpOheunSp/8AHght4/PDDD9vnn3+enOcXvwSiO1FJzJlg+pbZH/3xNSUnWfp0Z+dyh5M1a367qMhRu/a3SdZ7DW70W5Y+8xOWK1exFOnrRnTT1y3RLYQQQggRX1BCHghuXOsyZcrYDTfc4H3ZhKAxinjx4sXugE+bNs2KFy/uWqRmzZpeQo4YR4QzsztxKbkQMS26ucrEzDzSAcNhWa1atZLr3OKb8xTdGw+QAl7DMqY7aO0Kz7G9F9Bm37PMWBuyoZLtOlzWhm+9xhoWS/4KBvq6a835n/q6hRBCCCHikK1bt/roL4LQqlSpYpMnT7aRI0f6GDDSyhs2bOil5QjqefPmeVgaFbarV6/2llfEesGCBd3R5vkVV1zhwl2ImBTdc+bMSXj8wAMP2IMPPuhXmS655BJfNmnSJHv77bftxRdfTJkzjTfOU3T/sjOULF895zTLlWm/7b2AU8iW4aB1KPKx9Vn7qI3eeoX12LvOSmU/3mueTAR93SXWTrb0Rw7Z0QyZknX/QgghhBAiOpk1a5b17dvXvvrqK2vcuLEHqCHCcbER1jt27LB169a5E05rK2XitDSynHZWZnfzHIeccnQCfgcMGOB93OrbFjEpumvXru0BBVxxCvjb3/520no33nij/1KI1Bfdh4+mt3m7mvvjBnmSZ5Z6pZxTzGyIHbHO9vayTvbCxV9aunSWbGwuVM32Zstv2fdts2LrZ9jako2Sb+dCCCHOG9yj6dOnu7uECxUOX26/+eYb69GjR8TOTwgR233cmHcYdgScMfaLG6PC9uzZYzNnzvSKWnq6Cxcu7M41IWlMT6KUnFFilKUjtgMQ4IhupikRnKY+bhGTonvFihUpeybixHFhe/acs+ieur2C7TlCAvhGq5Jjtpmd+CXpfAgJ7Actg7Wzydsq2sStlaxJwcWWXBxLl95WlW5uVRb1t4t+HSfRLYQQUQD9k/RHrlq1yi+4N2vWzL7++mvvqQS+2OIkSXQLIc4nqRw3mp7tESNGuFhGcHMfmHuIax6TYE7pONORuAiIHqEMnVZXSs4pRec5fd58VgUkNZtbiJiY000S4NneRDK53Oc4LmzM5kBkf20Z0h1JxhNaYi3zD/JHuN0Hj55XFMAp+fWi0Ii5Mr+OTdb9CiGEOD8effRRd4k2bdpkixYt8jJN5t4iwoUQ4kIcbgQ3bjQJ5YCbvWXLFh/nxYW9QoUK+T2fOwjp0aNHu9hm29KlS/uy2bNne2trpUqVXHC3bdvWNm/enHAc9iVENHFB6omYfv4Ac6UqHAIMROqOCztyLJ070SH6sXGynlKHgn1szm9tbd3+/NZ7dRO75aJxybbvlReF+tBLrxpv6Y4esWPpf0/FF0IIkfpQ4okDhcMUuEyMBW3evLl/Ac6RI0ekT1EIEYNQ9o3ghuzZs/ucbVztQ4cOebk4ZeSUllNizjJKyRHclJPT8sKFQHq4EeV8DpEthXin75secKAlRiagSBOim8H1Xbt29QCD8D7voKwj+KEXqdfPvWh3Cdt5KIdlSb/HDhwlCTx5L3xkSb/f/lh+mP1jwTX25arm1qHIbMtu65Nl3xuL1rIDmXNZ1gM7rcjGObahWJ1k2a8QQojzIxjdE8Df93fffdfuu+8+a9mypfXq1Sui5yeEiE3Cy74ZN4yY3rhxoz/HuaZlZdeuXe58I6YR3qzDHO5AqOOMoz0Q16xDynkAy6688kqFqIm0IbpJLueHnzh/7qdMmeJJg3/5y1/slVdeSf6zjFfRnS/fWW8yaWvI5S6XY5Yt2H04RU6rTaG5NmBdfZuzs4y9u6yD/aX0wmTZ79H0GW1V6WZWcekQ7+uW6BZCiMjC2B7m4VatWvWE5W+99Zbfq6JNCHE+hJd9Y+K1atXKK2apnMXdZlpSixYt3MHG1Sa0kYwJLgISvMY6PMYhZz53z549fX2EOvvG4ZbgFjHd0x3OxIkT7e9//7uXnDErjxshKy+88IKPExOpX14+cVslv6+Qc3pKnZWHqj1QYYilt6M2dkt1m7nrxC9jyVFirr5uIYSIPFSzMcInKRDeN9xwwwnTTIQQ4kzQk43ALlKkSMKN3mwC0RDPTz31lD9GXDMdgZnchKdRYs4yBDihacE9wnv8+PGWOXNmF+nkUEhwizQluikfD36oEd70UQBXlwhcERfI1q3nVF6++UAuW/pbMUtnx6x8jpkpemrlc260riUYI2b25q89bL/lTtYwNZxu0xc5IYSIKI8//rj98MMPp3z9nXfe8RJPIYQ428TyTz75xEPU0ArcU01Tr149F9QYeAjs//3vf37Pa2iMUqVK+UVAwtIoNQd6uatXr27169e3sWPH2k8//eSCXog0V17OlSSuTFFazhWpl19+2a8yffDBB1auXLnkP8t44jzGhU3dVsHvq+Raazky7rKU5o6yI310GKFqP9pr9qBNvuB9ri9ezw5mym7Z9221QpvnJ1O3uBBCiPPh6quvPuM69Hl/9913qXI+QojYBUHcp08fLydHOON2k1AOO3bssDvvvNPLw/v27ZtwMY/xYbjY9GgTmtalSxfr2LGjO9x89lCOPmbMGO/xZh+ayy3SpNP95JNPJvxSUGZOqiCJplwVf+ONN85pX2+//bYnFfLLhYCnP/xUUGbSrVs3X59fuNdff/289klZyr333uvlKvR/sM8gxCHibN9+zuPCZu8MJTTWy7fcUoNsGQ7ZY1W+t3R21GbZ7fb90voXvM8jGTLbmpKNf3e7hRBCRAzSgc90y5377Cud1q5dazfffLP/3c2WLZvVqFHDnSwhRNoV2nPnzvU52rSlDh8+3NasWeNhabjTTEigV3vBggW+PqIbtxuopq1YsaKPB2NON/vC3EO0M0mBi31Tp05NaHHh+77mcos06XRzpSmgQoUKtnDhQo//5xcjfDD9mejdu7c9/PDD9t5777k4RkSzb8pOChcufNL6JBTipF977bX20EMPnfc+2Xbw4MH27bff+hcH0li5qv/zz6R+x1ZpOczeUcbva+VZaTtClTcpTo08q6xbkR+tz8bO9vDYntak4kdWq+jGC+7rLrdiZKivu2SjZDtXIYQQ5wZloMkF44CY8d26dWsbMmSIO1yMBuI7gxAibZaSDxo0yAPPcKKZn12zZk2/+IbxBTjWJJQXLVrUX+c7+6xZs1x8oyUIcUScU3rOd3/ccVzyDh062LBhw1xw09NN2Tnray63SJNOdzirV6/2G+Uf5yK44dVXX/WSkttuu82qVavmQplfzo8//jjJ9Rs0aGD/+te/7Prrr/dftPPZ586dO+2jjz7y9dq0aeO9JHy54IobV99ibVzYhv15bOOBvB5uVj3PGktNbire38rbUNt/JLNd+fUNtmpnngvan/q6hRAi7fHSSy95XyZ/axs2bOitaXxxLl++fKRPTQiRzOBKI7ipaKHXmt7tESNGJPRdE5iGGCd5HDON8YSMDuO7Ot/z+e7euHFjH0vMOuRFcY/zTXI5Jed169b1fm+c8LZt27qA11xukSZFNz/cJAziElPGzY3HlJ0HIQdngitWBCW0a9fu95NJn96fU4ZyPpzNPnmdcwxfh9Eo/OKe73EjKbp/OV5aXinXOsuW4aClJhnSHbNudqOVzb3Rft2Z11p+equt3JH3vPe3tmQjO5whs+X6bb0V3rU6Wc9VCCFEZOBLN4FHVKlRcVanTh3773//G+nTEkKkAFSxII75vWecMM/JgVq2bJm3oX7//fcuvNESiG5mcFMavn79ev9syJQpkwtwHG8C0zD1mjRp4vctW7a0kiVLWvv27RNGhSHaL7/8cqWWi7RZXn7//fd72AEBalyNAgTrs88+679g77777hn3QUkJKeiMCwiH55Srnw9ns88NGzZ4Xwi/5InX4bVTwVU2bgF8GESD6A76uWvl+dUiQTbbbt9c9prdMPQRW7qtgF3y4R/ss6v6WccKy855X4czZrW1JRrZRat+sorrZ6TI+QohhEhd6MPkewGtX0888YT3YjJelL/FfHGO6N9cIUSylpXTw01LCZONaD1FSONMI6b5nSbwDK3AhTjWoeqU8WC33nqrr0PbKusRnsZ3dW7h1a1cuOO1IJdJc7lFmhbdvXr1sq+//to6d+6csIxeDcrHmN15NqI71mAG+XPPPZfyBzpH0T1nx3HRnTcyohtK5NxuY3p+ap2/vNl+2VTEOn15i91We6Y92WKclct3PBjuHPq6JbqFECLtQPAqX7D/3//7f/6cL+EELNH+dSrRnWp/c4UQyQKl47jbCGcqT3GpCUzkIhtuN2FntKEikitVquRl5AQd07dNWTkiev78+V6NymMqU6mkZb1w0c1j9qGkchEX5eX8wPOLkBj6tLhyfTbQi0EPR+LUcJ4TqnA+nM0+uefDgPEC53JcZpbSDx7c6GNPbtJTmh+kL56F6N5+KLet3lfQ53NfnHuVRZISuXfb5D/81+5tEEqK/2RWHav05v3W5cub7JOZtW37/uxntZ9fy7T0+8rrlGorhBBpAVwpvjiHQ0gSI38i+TdXCJF8gptpBFxg47s4oWi1a9e2mTNnengaTnTQw80FN8KM+b3G1WZdSsS5yPb555/bV1995aXoXJzjuzpByOFVL5SZq39bxI3oJu37+eefP+GXgMf//Oc//bWzAXFOiNnIkSMTlvHLyvOgZP1cOZt98jpX4cLX4ReaP/6nOy4XGhiPEn5LbrIE5XPZsoVuZ2DRnrJ+XzbHJsuVKZQGGUmyZTpsb3X5wSbc/qF1LL/UjhxLb0OWVrTbB1xltf73iv1gQ83sVjt8+NSBe6tLNfG+7vx7NpoidoQQIvYhuZy/s+EwKuh0X5xT42+uECJ5SsoJSfzyyy9t1KhRPkqYmdxUwDIODH1AjzftnzjdlIfznRsnnARytiehHBEeQPAaieU44gjy4DUE95VXXqlycpG2y8sZqRUOvxCEGdSqVcufE5KAg0yK4NlCfxelZZSdkWjKeC9+MUkehx49eliJEiW8zAzYP6UnwWOunjFegJ4OrpadzT4JfLvjjjt8PX55+UNOjzqC+5JLLrFIkiX4wDnL0vIle0LVBlVyrbVoonGpNTb05i9s4ZaC1md+Nft2fjWbs7GorTFGzXW0r78+aC1akEZP0N2J2x7KlN1Wl2pqZVeOtvaRegNCCCGSDcZ0EoREefl1113nJaUffPCB34QQsV9STu82htaKFSt8GcnjfL+mDRW9wJgwerP53k14MSFqCHCWIb4JPSbRPIASc4T7//3f/7nophKV9HL1b4u4EN2I1XC6det2wnP6uc+V7t27+2y+p59+2kPMKEUZOnRoQhAaV8L4RQwgcIFyk4BXXnnFb6QZjhkz5qz2Ca+99prvl/fAFTjmeL/zzjsWaRKc7gIFzmr9JXtDortylInugCoFt3hfN7fxC47YQ98ctWn2R9u7t5QNHWrG9ZPrrjPLkePE7ZaXa+ei+/d8eSGEELEK/Zr9+vXzknFcMFrRuCB+0003RfrUhBDnAcKaQDTML4KK0QhUliKQAVebMnKMOELVgO/b9HUTtIYIZ2oQIYts07p1a/+OHz4BCRec7/MYZ82bN1cPt4gf0U3pSEpAOfqpStIDIR1AHzm/hBeyT+CX/u233/ZbNJHgdOfLd8Z1+VdYujdUmlcl1zqLdsrn3WR17QObZv+yZs2W2pQppY12Psank6MTXjmI6G476v+sjZmtOHIkkqcthBAiGbjsssv8JoSIbSgHD9xtxDYVqMzkJvyMfm4mCSHAEeZMHWAdhDlVqYh0RDSONSIbIc56TECi2pRZ3oDrzb7YJghOEyIue7oDuALFkHpuPBbJ5HSfTYialbPfjuSwTOkOe0937HDIqlXbYnfeacbUNsLav/ySdoHf11hXrJ7tzZzTuPSQ/TzHxwkhhBBCiOQDgTxo0CDPUKKCFEFNeTghxszaRixTCo5Ypg+bnmzWofKUCtNNmzZ5ayo5D4h1HG/KxQlYI+mc1woVKuT7oKebEnX1cIu4HhnGVSr6oEkZ5GoW8AtHD/abb77pQ+3FBTjdZ1Fevs4a+H35nBssU/rYc4MLFgw53B99ZLZpk9nAgbQshF47lj6DLSrewOqsHG25Jk82u+WWSJ+uEEIIIURcQ9snvdtDhgxxx5uwNJxtBHb16tUT+rIRyTjfjAqjLRQxjRCnRJxpQfR509PNrXz58i7K2S9l5OwLod61a1efciDBLeLa6SaEjLl6AwcO9Dh/bv379/dlf/nLX5L/LOMALlNk3rv3rJ3utcdFdyyUlp8KnG56utOlM5s712zevN9fW1Ciod/nmhIaQSaEEEIIISIHAnvYsGHuWGO2IapxrXGkGetH+DHON2Fpt99+u61Zs8aNunnz5nkp+YQJE3wZgWq42ZSOU5pO/hI3XO177rnHnnjiCQ9DluAWFu9O93fffeepgq1atUpY1qVLF//FIZn03XffTc5zjAsSxmOd5biwwOmuHMOiG8jfa97cbNw483A1QuizZEF0N/LXc86aZcbFCFVPCCGEEEJEpKwcgU0fNq40LaX0Z1PtynMmFOB8owMYCUbZOH3cjzzyiIvwrVu3eiYTzjXCPXDEWR9Xu1ixYj51SCJbpGXOS3TTexGeBh7ALxqviXMnNPDs7FzuI0fT2XqrG9XJ5ecCohunm/7un382a9PGbFOe0rbKzEqTZMnC9hogJoQQQggRieA0Zm7jbs+cOdPbSCtXrmyLFi3y3mvG/9HTjaimrBznGzHN3G7KxykrJxyZEnRC09AK+fLl830guNW3LeKB8xLdzLR+5plnvKebJHAg8v+5557z18S5U/EcRPeKXYXtkOW0zOkOWunsWyzW4YJnu3Zm33xjRgu3/wilS2cjzOx2VhgxQqJbCCGEECIVof/6448/doebMvHixYv7936cbB43adLEg88Y/cXs7fXr17sLHpSQ036KCCfp/NJLL/V1EOCEqvE6gluzt0W8cF6im/manTp18mCEWrVq+bLZs2f7L+KPP/6Y3OcYF5yL071gWwm/L5NtrWVId+YRarFAlSpUSoRC1WjjrlTJfhfdw4ebvfRSpE9RCCGEECJuHO7Ro0fbOPr/zLxE/ODBgx6eVrZsWZs0aZLNmTPHR3sxk5vANNpOcb/p3+ZG8BquNv3buOWI94AWLVp437cEt4gXzitIjVh/ejteeOGFhPCDF1980ZdROiJSWHRvLen3F2WL/dLyAMLUKDMH3O6DB9PbyODFmTNJ74jg2QkhhBBCxE8PNyIZpzqAMWGMCMZ0o1+b7/w41/Rq8xrbUEJegXAeM3+NG6XmI0eOPEFwA885BtsJEQ+cs9N96NAhTyVkTt+dDFsWqV5ePj/B6V5jaYlq1czGjOFqqtmiRQWM6eP7KlSwbEuXmo0aFYo6F0IIIYQQKcavv/7qJeHh+U040oz0ojSc0LOWLVu688269Hojnhn3hQAHwtJKlSrl94kFN7Aex2B7Ss6FSOucs+hmjh69HCL5SLdvn5U8B9G9MKy8PC2RPr1Zo0ZmP/xgtnBhQV+2q1GjkOimxFyiWwghhBAiRSEUDZijTe82opkRXjjZK1asSJjNTT82I8NYnxvr43yTWM521157rfeCB8sDgtTy8GMJkdY5r/Lye++911566SUvGxEXTpY1Icf6MFcHzzAubNeBLLZqd6E0V14eUKMGF3bMtm/n36Gx7UaFA1kBYR/YQgghhBAi+UE043JjslFO3rlzZxsxYoQtXrzYxTJCmhnbhKaR6UQoGmXkONsVK1b0NlSc7CFDhtiuXbvcJUd4B4Kb1HK2h5w5c0b43QoRxUFqU6dO9f6MYcOG+S8Wv5zh9O3bN7nOLy7Isnq13+/JkcP2bthw2nWnbijn97lsjeXOuMfMcltagjB8YgEYz212p+2uVzl0IYJ/o19+MatZM9KnKIQQQgiRZgPUCEXmez4l45s2bbIbb7wxIbkcgY3w3r59uwtn5nUzuWjWrFkurBHkhKwF4hpRHYh4qmXZNhDc7Au3XIh44LxEd968ea1bt27JfzZxysH58/1+0fbt9sMHH5x23Wl2t98XsTl28OABS4vUrRuI7u6269Di0DyxgQPNBg2S6BZCCCGESEYQ14jtDRs2WL9+/bzkm/nb8+bN875tRoCRVF6mTBl/jgAn44mKVxzto0ePWqVKlVxk42xXq1YtQVwTxtauXTvv3aYfPADBrfncIp44J9HNL9W//vUvLy/hl65Nmzb27LPP+tUscf5kXLnS7w/mKWP1ync47bpTVl1vtsWssP2SZsv7S5Y0y5dvn23fnt1GjcpnLS+77HfR/cQTkT49IYQQQog0AWIbl/r99993Uf3VV1+5OGYsMGPAcKpxqRHQzNxGbONuswwTjnWZYoSIpucbUy78++mRI0e8J/zyyy93vYCgZ5+azy3ijXMS3f/85z9dZHPFil+cN954w/s5Pv7445Q7wzgg18aNfv9b9oKWK1ex06675mDZBKfbLNQfk9ag7ad8+e02bVo2GzYsnz3X59LQC5MmmW3ebFYo1NMuhBBCCCHO3+HGwUZwL1iwwEqUKJFgsuFuUw5euHBhLyVn1jYzt1lGuTjf/4EebpYjrFk36N0OB+GNblBKuYhnzkl0f/755/bOO+/Y3XeHSpwJVbj00kvtww8/PKFkRJwbuY73ce/MnMOynmY9csSW7wmNbyhiv5hZdJRaBx+8F7pOOCHRXdymTs1lmzPntkK1a4dqzocONbvllgs4WyGEEEIIQck35d8IbsDNpnQ8e/bsLry5R2Azk7tFixa2ceNGW7ZsmZUtW9ZWr17t923btnXBTTk6on0pE2cSod5tIc5RdK9atcq6dOmS8BzHmyta/LJRhiLOg337LMe2bf5we6ac9vtExJPZdjCn7TmS1dLZEStgiyIuug8e3O33ffv1S/Z958lDv/p0O3KknpHLdzcl5ohuSswluoUQQgghLghKvXG7AQe7dOnSXvqN+w3M2K5evbqXndO7fdlll/lsbcZ/4XAjpglOa9SokYvqrVu3usnCOgHq3RbiPEQ3PRokF4bDLyn9HeI8SZ/eRv/lL9b33/+28hkyn3bVX/eGyqqLZNpoGQ8dtEhz+HBoXnvZMp0tf/5Sp11327Yltn7l6HM8wjdmVs+++cbs7v93mdk//hFyuvl5Y66YEEIIIYQ4LxDYiGG+y19zzTWeVM49/dq43whovvs3aNDAhfSgQYNcfAdjw6644ooTSsbZ12233eYOunq3hbgA0c2VrVtvvTUh6h+Y4ffHP/7xhLFhGhl2DmTJYuvq1LG3zOy1JPpgwlm1t6DfF8+81iyKrnNkzZr/jL3oe/eeW3n576L7JRszxmzTRQ2sML3clKmPH2/WuvV5n68QQgghRLyDIF6xYoXddNNNHqY2dOhQF+ANGzb02dxUsXIbPXq0i+3wqlZE+IABA1xkh4tqHqt3W4iTOadG7J49e3pIAle4gtvNN9/s/R/hy0TKEIjuElnWWHyw0qpU2WtHj5oNHpLe7NLjgWqUmAshhBBCiLOCMvIZM2a4W80c7l9+IRvIrGrVqh6UFp69M23aNPv222/tp59+8mpW+rSZWpQYhDeuthAimZ3uTz755FxWF8lMUF5eAqc7TmjRYqctXJjdJ4bddtNlZp9+GhLd//53pE9NCCGEECImxoJ98cUX9vPPP9u+fft8GYYZPdq43QSmVahQwXbu3OlJ5EBA8ty5c61169Ze1YrTHc6BAwd8fULWQGXkQpweRY7HEAnl5XHjdCO6d/j9sGFmB1q0D/VyL15sdvxDXgghhBBCnNrh7tOnzwmCG+jfpm8bF3vDhg2e2cRYL8LTMmTI4C2liHGC0OjNpkebbRDbJJ5Tjj5//nzflv1jzCHuhRDJ4HSLyLHncBbbcjB3Qk/3aosPqlTZZ8WLm61bZzZmRm7r2KKF2ciRZoMHm/35z5E+PSGEEEKIqBXclIojlGvXru3O9GKMCzNPHB9DaI6Zl50zjQj3m3JzRDcjw6pVq+bON4IcgU5+E443jjbuN+sHc7mDoLVrr73WS9UVpCbEiUh0xwir9xbw+3yZfrOcGfZYvMBnOa3c//2veYl5R0aHIbq//16iWwghhBAiCXCdcaAR1LNnz/a+bWZpt2/f3pPHJ0yYYOvXr3fXGjd7y5YtVrRoUS8p53G+fPncHS9VqpQnmo8cOdKFNfthO0R748aNfWwwINRxyt9++20vTQ9g36ScM3ZMiHhG5eUx1s99UfbzSQGPbS6/PHSP6D52VdfQk59+ojYqouclhBBCCBGNDjc93Ahl3G1C0CgtX7NmjQ0cONCFMGJ87dq1PpMbIU7vNsFpLMflzp07t7vYy5cvt169elmnTp28B5z7q666yh9TWn7kyBE/ZqFChfx4gQhPnHIezAMXIl6R0x1j/dylc2yxeKNtW8aSma1aZfbLrousZv36RGuG3O677or06QkhhBBCRA2EmwU93Hnz5rVmzZp5iTjCF0eaSUTcI6xxrr///nufRkQZeL169XwSUSDSA+j9njJlirvklI8jyCkdR2QjvOkB5zEl6adKOdcoMRHPSHTHmujOFn+iO3t2s3btQqHl3Gp26xYS3d99J9EthBBCCBEGQrpWrVp2+PBhK1u2rC1cuNDdZkQx4pjl1113nZeSb9261Xbt2uWuNWKacvPy5ct7iTjrIsTZH8KZ7bJkyeJha7jnONstWrTwbenxprz8VKOD6fEWIp5ReXmMsHpfqKe7VPb4E92JS8wN0Q2jRvGXJaLnJYQQQggRTb3cP/zwg3399dc2duxYe+mll2zcuHF25ZVXujNdrFgxD0fDeS5dunRConkgpgk/YzY3ArtgwYLukPOc1whk4x5Bz+NAxAOOeuXKlX0/ScF+hYhn5HTHAEePpbN1+/L745LZtpkdsriDMDWYPNlsS76KVrBGDbNffjEbMMCsZ89In54QQgghREShfBxHG1GNQ83IL0Q1JeGUm9etW9d7uHnOawSh4Uwjqik5pwx92bJlnnCOSMYlx+EmVI1wNcrISSxv27atrVixwkvJCV9r3ry593RzfNZPDD3kCH4h4hmJ7hhg84HcduhYRsuQ7ogVybrTtuyyuKNECbOaNc3mzAnN7L7xmmtCovubbyS6hRBCCBG3IHZxrglGo5Sc0V70T+NEUzqOWCbBHNFdsmRJF9QIZmZt0/9NfzaBa4hnoFQccLNbtmzpzjY93Zdccolvy35xvBHqFStWTOjVJqUc0R8uvBHcuOwaGybiHYnuGGDtcZe7eNbtliHdUYtXOnUKie6hQ81u/L/uZs88E1LgW7eaFQiV3wshhBBCxIvYnjdvnjvTONoEo9FXTQAaIprS8AIFCngJOMI6U6ZMvj4J5BMnTvTXueFCsw77oZ+bNHN6vXkNl3vw4MHudCO0w3uzEzvYjAW77bbb/AKA5nQLcSIS3bEkuiktj2M6dzZ7+eWQ6D76aWVLX6eO2cyZClQTQgghRFyB8zxz5kz79ttvPciMcnHKyikd79Chg40ZM8aFN2Ibt5t7RoEhvCkpZ91KlSp5L3Z4HzZBajjjbMsNsd25c2cfHUaf95kcbJ4rpVyIk5HojiHRXSLORXeTJnyYm23ebDZjhln9668Pie6vvpLoFkIIIURcsGjRIvvmm288MG3BggXeZ42zTLk3Apx521WqVLG+fft6uBnjwYK+bFLJcbB5vUiRIiftGxGO292gQYMT3OogpI3ScnrAOSbCWwhxdkh0xwAS3SEyZw7N7GY8N253/Vu6mz36qNnYsWbr1pkVLx7pUxRCCCGESDE2btxoH330kbvOuM8IalxuHlNuTq82bjUiG8caR7xp06Z22WWX+eMKFSq4qMb9PhWI6cRuNYJ79OjRJ/Vr08dNWbkQ4vRoZFgMsHb/cdGdNb5Fd1BiDkOGmBlXXrG/GVfRu3ekT00IIYQQIsVA+JJCTok4jjShaPRsUzoO9HUTplaiRAkPOLvrrrvshhtucAH+1Vdf2dSpUz1Qje3LlSuX5DGSShoPUtETJ5PznOW8LoQ4PRLdsTQuLLtEdyC6J03iw97MbroptODzzyN6XkIIIYQQKQXCdsKECS5yKS1nZNfcuXNt+/btLpQJOQvE98GDBz0YjV7t8ePH24gRIzxcjdJyEsirV69ujRo1crcc55zXNm3a5KXkSfVpE4yW1CgwYDmvCyFOj8rLo5ytB3PagaOZLL0dtSJZdli8U6qUWfXqZvPmmQ0fbta9e3ezP//ZbNasULQ5c8WEEEIIIdKYyz1o0KCEcDT6s5mjTck4qeP169d3AY7zTW836+F833333ZY5c2YvNWeUGCFqQ4cO9RJ0gtVwxZm1jQBHbCPWw8eQ0dfNsRgfFh64Fk54orkQImkkumOkn7to1h2WMX38jgtLPDoM0U1fd/fuBcwuv9ysb9+Q2/3KK5E+PSGEEEKIZAEnev78+R6QhvjFjSYIbdWqVda6dWsXwpSLI7IRyYwNQ1z/+OOP1qpVK1u2bJmLaUQzc7npwSa5nH0iyoFQtBYtWvjMboQ7I8OGDx/u7nngmBPYVrp06STD0zgnIcTpUXl5lLN2X2j+dLyHqCVVYu6jw7gO0aNHaMEXX5iFjbMQQgghhIhV6L/+5JNPbODAgS64CU1buHChl4fjTONYd+zY0Zo1a+YC/G9/+5s1bNjQ+74RzwhrershcL7379+f8DiARPLA4UZof/311z7ve9y4cda7d2+bNm2az+0mFZ3zOFMPuBDiZOR0x4jTXTLbVksrbNmy4KzX4cpqYnLkSGfZstW0DRsy2OzZZnVQ4QULcjnYbNgwsy5dUuS8hRBCCCFSA/q1n3zySfvll1+8F5uZ2iSOd+3a1cU07jQl4ozvose7Ro0aXi6O64ywJtGcPu1ATNPnDbjkweNw2AZYH3E/cuRIF+NA+TpOOCKc82nSpIm736ea1S2EiFLR/fbbb9u//vUvL52pVauWvfnmm36l7lR8++239tRTT3l/C1fwXnrpJesSJrSCIInEvPzyy/bII4/4Y8YbJA5+eOGFF+yxxx6zaBTdxdOA003HD/9n+va9+ay3ufnmU637vZldaV9/vcPqvJQ3FKj2n/+YffSRRLcQQgghYhb6qT///HMXuIhkBDaBZQSeUTZOGvnMmTO9H5vvzrjepJazHePBEMEI53AxTV83++E7Mo8DcLYR9PSCA2KaVPQxY8YkrMP+J0+e7MKe78847bjb3CS4hYgR0U3ZysMPP2zvvfeeJym+/vrrXiqzaNEiD4JIDMmNjD9AIDNzsFevXnbVVVfZjBkzEmYKrl+//oRthgwZYnfccYd169bthOV///vf7c4770x4Ho0fHGlpRjcf+1xvfbhMa6ucP1TudCr27t1iCxb2tauvvtoK4WIn4s3JG+zT2YSpZbCXXjKzP/whJLoHDDDbsMGsaNEUfCdCCCGEECkDphA3BDCiG/FNSXjt2rXdvUYkB4FqmE6IbwLVENP0a/M6AhxHm+1ZlxFhwXqEqVE+jkvOd2++Q9MjTiAar3FjOUIbwQ3c47ADrnfiOd5CiCgX3a+++qoL39tuu82fI74HDx5sH3/8cZKu83/+8x/r1KlTgmP9/PPPe9jDW2+95dsCKYzh9O/f33tdEs8kRGQnXjeaoCIoLYnugFJZ81mlXMVOuw4TH8lqr1mwoBUrdvK63ar96qJ7zpyctmOHWV4+/C+5JDRL7NNPzaKsYkEIIYQQ4kwglqnkpFQc9xlXG6HNPW4334mo8rz22mtdZJNgjrhGQBOoxna40YhqnpNqzmNcafqyN2/e7EnmlStXdtGO4GY9jhusR1n5pEmT3NkmXI319uzZ4wIeQa7gNCFiTHTzITF9+nR7/PHHE5bRt9KuXTubOHFiktuwHGc8HJzx77+n3Djp1EdE/GeffXbSay+++KKLdtIYb7zxRnvooYe8zCYpSH3kFkBfTUqz7WBO2380s48LK5ZV48LCKZ6LHvcFduRIVRsxwuyaa8zsrrtCovvDD83+9jd+mCJ9mkIIIYQQZwTRi5PM91nENnO4EcgI7YIFC/prONG41o0bN3ZDif5rBDNBanx/JjyNKtG8efMm9FuHh5xhNmFyBaPAuFF+jouNC45gD+ZxI7wR5vPmzfPtcM9LlSrlol/BaULEmOgmAZGrbUWKFDlhOc9JZ0wKeleSWp/lSYHY5sOCMuVwHnjgAatbt65/KFGyjvCnLB3nPSkoZ3/uuecsNQlc7iJZd1qm9EdS9dixwVAzq+op5i66r7suNLN72TKzUaPM2rWL9AkKIYQQQpwWWioJLiONnO+i9erV89FfCF8MKoQxopjvzVRo4kjffvvt/rxChQruVrMNrnbNmjUTEsWTaptkGa8hvDkWLjZl7IwWQ/jzfRrxjYPO92suACDoeY1ebwWnCRGj5eUpDWXqN910k5fEhBPulvMBRYnO3Xff7eKaD5/EIMrDt8Hp5opfSrJ2f9orLU9ehpjZQy66KcVPlyMHyWtm77wTukl0CyGEECKKoceaQGAc6jlz5viysWPH2nXXXedONM4zpeOIbkTvNddc4yFruNqIY5LFEcGkmnfo0MEd6dNB6fqAAQN8v4hqerkJYeO7L0ZY0MON045h9eCDD3pZOt+jcdTlcgsRg6KbchnSFSkBD4fnp+q1ZvnZrs88Qa4eEtZ2JgiM4IOGDyPKaRLDh1FSYjxVksuzSnQnzTjLmvWIrV2bwX75hYsnZnbvvSHB3b+/2apVZqVLR/okhRBCCCFOAveY76rLly/3kvAA2hlnzZrlpdwElgW91nzfRTAjlOnbLl++vPdaU2KOGZRUBk7i4wWCG3C5+f7MeDLaK3HXAxD5lJbT101JOzeOJYQ4PyLa9Iq7TDkMJTUBXLXjOf0qScHy8PWBILWk1v/oo498/4whOxN8uFE+k1RieqRYvz+f3xfPtj3SpxKlHLD69X87nlB/fFG1amZt2vCDZPbuuxE9OyGEEEKIU0GJN7O2IXyMFyXdOOB836XH+5NPPvH1EMj79u1LKCEfNWqUl5ZTZo4bnXgUblLHCwQ30DNO0DCVmxhPON3AcxLKcdGDkWOgADUhYri8nJLtnj17eh8Ks7kZGcaVtCDNvEePHn61jbJvoMylZcuW9u9//9suvfRS+/rrr23atGn2wQcfnLBfrvgxz5v1kgpjYwwCHzSU5PCcEDVmQpMOGS1s2Be66llUIWqnpEmTXTZ+fB4vMX/00eML778/1NP93/+aPfOMWaLWAiGEEEKISIFjTTAac7cR0p07d/b+asTu6tWrvbIyKPlGjJNWjrtNivns2bO9OjN79uxWp04dF8qsk1hQJwXl6oGTjnNNv3iOHDl87jbzvXHUEd8I+GBcWDByLOgTF0LEqOju3r27X2l7+umnPbyBGYQESQRhaXzI4EAHNGnSxGdzP/nkk/bEE0/4BxFXARPPC0SMk+rITO/E8CHG688++6x/8BAWgehOnIoeaTYcCES3nO5T0aTJTq7J2vjxXGgx88qoyy4LlZVTXv7ll2Z33BHp0xRCCCGE8MrKN954w0vKMZkQtPRqM0WHEnPcbcQujjbVl5SMI4iHDRvmBhVmEQbR+PHjva+bNk2EMd9lw13ppMCpxjGn9ZL9A4IdR5v53gQM85x+bs6hePHiXoIeJKErQE2IGBbdcN999/ktKcaMGXPSMmYTcjsdd911l9+Sgg8V5g9GMweOZLRtB0MfbnK6T02pUgetYkWzJUvM6Dro2pWf6ozE05v99a9mVDpQNaHxYUIIETG4yJ14Agj5KaeaVCJEWnW4A8EdmEAYRLjaGEqMwCUIjT5qhDA924EoLleunPdcUxW6YMECF+sIbkQxBhKPWY92S8Rx4KbjWuNg46jTtx2koQcE2xDihnuOMMcAo0+8ffv2LrgZrSvBLUQaEN3iZDYed7mzZThguTOGrkaKk+EPT716JW3JksL2xReb7aKLVvvy9PXrW40cOSzDggW29K23bFezZmcM9eOPihBCiJSBEtYRI0YkPEcACBFPIIIDwR38DtC/HfRjB2HBlHwjounZpqKTdSgjZ1tK0enxpgqUG250lSpVvGUSt5oKUdLOEfccj35vXOuqVat6yyZCnn0hthH8vMY2tHpyHAQ6wvtUI8eEEOeH/uJFKRv2h0R3saw7LF26SJ9N9LH+t9+Mfxb68M06+fiwvn33Wd++9RLW+ZeZ/ZUWhQcftLZn2F/2bNlswcKFEt5CCJFCIDBONZlEiLQMqeGIanq4KSnH4Q4uOiFycbFxn3GscZ15nXZKSsARxKyTJ08eDxtme8rOGYfLdxZENQYEY8dozeS1IUOGeG94ILiBdQgYZqwY61CyHowCwy3ndZztSy65JML/WkKkTSS6o5T1x0W3SsuTZsf+/XbMzN5q3drqlC1vbT47aAeOlLZvrnnGyudf7+tk+u03O/bVV9bm2DFbcNVVtvcUyfQLNm+2m/v18z9OEt1CCJEyLFmyxF05vuQjLAhI1WeuSOswinbQoEEushHO3ONQUzaOIMZVxnUm16hNmzb25ptvem93q1atXGzTEkmVCI43QWhM7CFAmOk8EyZM8P2zL0rDWQ8BvWzZMnepccwR1oErjvNNb/YPP/zgv4vBKLAApZMLkXJIdEe5060QtdNTIV8+a1KqoLUu+6sNXVrRft3ZxK6tPuH3FWrUMJszx6rMn292FqPjhBBCJD+kLX/66afex01KM/3dzZs39/nASZWw4vhxC59IIkSsgUv9yy+/ePAZoWeUfdOv3b9/fxe4pI8Taobw5XcD4Y0rzo1MI9alJQMXHOebfmzE8r333us91zNnzkyY733ZZZd5XzbLCGuj/5sS9WCWN79nOOWI/mrVqvm+wlE6uRApi0R3lBLM6JbTfXZ0Kr/URffQpRXsr03CRHeLFma//EJSiNm6dWbFi0fyNIUQIi6hDzWAGcOIcL7gf/PNN3ZHEhMmcMETB68JEUsw2osybwQ2gYEIX37mO3Xq5OHBAwcO9PJxhHiFChX8d+Szzz5L2J7ycErAEcmFChWyt99+291q0sd5DTGN+03SOOIdcY+wD8rW6ddmXW6UqyPGccQpced8GL/LxSz6u5VOLkTKI9EdpWwM6+kWZ6ZzxaX25x/NflpV2n47mNlyZj5+BbdAgQS328aONUtihJwQQojUBXeOlOalS5cm+frjjz9+whhPxAEzjIWIBQhDGzBggJeV414juBG2pJRzoQnB27VrV1/OPQFohKaFV3cAgpwycl6jLYOgM0rU+d3hMeXpLVq0cJf8yy+/9P1RSUKwGsflHkcc15vHZCqwT4T5vHnz7PLLL/cSdoWmCZHySHRHKerpDsEM96Tgai7s2L7d/8AUzrbTyuXbZsu357dRK8raFZUX/b5y8+a/u93r15sVK5Zapy+EECIJ6E2l7/SWW25J8nWcOW5CxCL0TlMiTr81P8eIXp5TJs6NFHL6rXGcuQCFy4woRwwHwWfAdqyPa06/NmIekYzIpjyd2dyIasrTKRenfJxy9D/84Q8ejEbvN0KfCS3sHwHP+VC2jmvOvi6++OKI/lsJES9IdEch+45ktp2HcsS16D54cLff9+3XL8nXfzl+P2r0aFswerRlypjR2la/2pZvb+4l5ieI7oIFT3S7r78+Nd6CEEKI4/z1r391Vw1Hbd26dfbMM894v+kNqj4SaSyhHLeZEm7MAQQzP+fccLMRupR9U9LNDdeZ8m+WkTxOijnb8Rohg9u2bfNtcaEJSANK0ukDR3S3bdvWQ9goGwfWQVRTGYLQ5neO86IPnP7yoUOH+jEIbMMJ5+KXECJ1kOiO4hC1nBn3Wc6M+y0eOXw49L7Lluls+fOfXFK4e9sSs5WjrWyZ1lY2a15bsLCfNSs62/47u7kNWVrBjh3jj4+d7HYvWiS3WwghUhlECAKbJGX6U5s1a2aTJk3yx0LEOjjalJMjkinhRvwinBHTuM8IZ+AxwpvnuMy407Vr1/bXAgeadSgdD8rRy5Qp4/sPKvwC4c2x2IbRqUFZOeuznP1+9913LrxZF0HP9pzbpk2b/LxAaeVCpB4S3VE+ozveyZo1v+XKdbJAzrZ3y/HX81n27AX9cdPiiyxLhsO2ckc+m7+5kFUvvPlEt5sSKoS33G4hhEhVvv7660ifghApAk5yILgBQUu5N+5ziRIlvLID8RuUjiOoeY7zTRAaF56YjU2ZOMJ58ODBPl4P0U6LHTfGhlE2Hg7Cmv5uRDlOOAnpn3zyiZesI6YR5Ih/XkeMc5wgZA0HXmnlQqQuEt1RiPq5z4/smQ5a+/LLbNDiyvbdgmpWvfDYE1cgyXzu3JDbvWaNWcmSkTpVIYQQQqQBKCkPBDcONr3aCG1G4iFqv//+e08bRxgjhlletWpVH+9FOCDCnBnb9F8juNkWUYxAxw0nRI1ebHqvWYdANaBkPDxxnOc45YhszoG+cUQ354TbHQhuoI+cEnOFpwmRekh0RyGa0X3+dKu64LjormpPt0wkunG7mdU9a5bZsGFmt92WqAZdCCGEEOLsCfqiEbcI33HjxrkrjdNMSvmdd97pIpj+bdbFuSYQjZFfxYoV81FhiG2cbgQ3YnvLli1eho5jjohmOSKZ+doIcV5j9Bhl4+HiH4ccKCNnPbZDeLMeDjvH4By7dOlywrZCiJRHojsK2aAZ3ecNAWoZ0h21ORuL2tJt+a1C/tDV5wRatzabN48BmMSLmlWvHqlTFUIIIUSMl5bjIiNwSRpnVjb91zjXlI8PGzbM52NTRt6qVSsvB6eUnNJwXG+c8MAp5zVgbBjCG7HMfliX/U6dOtXFfOPGje3RRx89STSHh6Ih7AlZGzlypAtvXkOI16xZ091xCW4hUh+J7ihEPd3nT/5s+6x12RU2Ynl5+25+VXu02c8nrpA7t1mTJqG+bvqjKleO1KkKIYQQIsbD0xgPRgk4optAsyZNmrhwJhAN8YzLTTk39/RV0+uNCA9KuwOxHJSN08sNuNKIZ3q12Q6hzHxuHPV+/fq5Sx4unsND0dgHYpsZ3vSYU65OYFv9+vVVUi5EhJDojuryconu85np3a74JBfdX8+pYD3K9zlpvXTlylnhadMs/Y4dZpMnm5UrF4GzFUIIIUQsEczeJvAM9xkBjBNNXzaO94oVK3w95mcjuOndphc7KDkPgssIMevYsaOvQwk5ieKUf1P6jXAHxDL7BkT30qVLfTwYYnzs2LFedt66dWu/B/bNfoP+coQ3Y8GC40lwCxFZJLqjjN8OZ7Hdh7P5Y4nu85vp/Zv1N7MbbNbmsvbyB0Msj60+aZu66dPbFTz46SfLqPFhQgghhDgNiF5c7YEDB/rouwULFrgoRvTibvMa7jLCHKE9evRoF8KEnzGLG0EdQMjZSy+9ZA0bNvTnvE4pOn3aCHHGe+GU456TdE7gGjO2w+d1sw1O+2233ebLuV1xxRUnJKkHgjs8cE2IeGf37t3e1kGVSdDmkRq/HxLdUepy58m0x7JlCF3hFOc+03vI4mU2/7eKtrvkK9am8MgT1t+7d7PNXNjPOhcsaJm2bLFi06dH5LyFEEIIEf0sWrTI+vfvb2PGjHFXmi/qfHGnJBx3m3LyypUr+xd3hDeil+o7As94Ts93eM82+8MZb9CggYemBf3XCOsOHTp43zaON2XppJyznGPhoHNc4DmBbIgHRD5wAQARHglBIUQstYVsS3RhigtWQdVISiHRHaUhaurnvrCZ3q2LLHXRPXnXJXZz+fknrXvMzHZdcokVGDTICi5YYHUicL5CCCGEiG4Qtp9//rn3UM+dO9cd5goVKnjpNmIaJ5pycwLS+PJOWTcl4IBbzTLEMyKcfu6gxxq4T9x/Xbp0aRfKuNzM3ab8nF5uHG4EN+vgmgeOd3iAGiCwAxEuRDyy+xRONssTC27geXjVSEoh0R2lTncRie4LomWhBfbOsk42d1dp27A/jxXNuvOkdQ5S6lW9uqWbN8/eZ8Hx8BIhhBBCCFyxGTNmeGAZYpsZ28zcRmTjXPMlHlFMzzWONWXhlJrTy40wpo/6559/PuFLPuXjCPHAKWf7oP8aFxzRjVhAVF9//fXWq1cv7+EOYL844wh1CMSE3G0h7LRONr8fiQV3AMvDq0ZSAonuKGN9QnK5ZnRfCIWy7LLaeVfazB1lbeSmGnZT6fFJr0iQyZIl1uDgQVv97bdmDRqk9qkKIYQQIspYtWqVj/uaN2+e924jivv27euON+Xf9HTzJZ3527jPuNp16tRxQUzPNiPCli1b5k54IJABYU1JeqNGjRLcagLZcM0R32vWrPFj8xr7RHhTVo6gR6SznP2xLvvOmDGjO+KRKJcVIprYfQYnmwT/05G4aiS5SZ+iexfnjJLLk492hef4/fCNtewY9eRJQf/V8SCT4u+8Y7ZmTSqeoRBCCCGijVmzZtmzzz5r99xzj73yyiv2/vvveyBaz549vdx84sSJ7nTjKteqVctatmxp7du3d4eZ/mvca0rRv/vuO2vatOkJIWpZsmRxZ5z1KTlHcBcuXNh++OEH+/777z2orXfv3p54zrr0ejdr1szX49iIfwQ3wrpz5872448/nlJkBP3fQsQDvx6feZ8ULA/G8Z2K8LF7KYGc7ihDPd3JR4tC8+31JZfar3sL2dLfilrFXKHRGYnZUrWqrR0/3hozpuPBB82++y7Vz1UIIYQQkQdh+69//cvdakQx7jKBaAhxerJxsgcPHuw93JMmTbLy5ctbly5d7I033vA+7GrVqrlYpl8b0YsIb9OmjX/h37t3r2XPnt0fU67OfdGiRW3IkCF+rPCgNNxsBDe93uwrqYC0M4mMlC6XFSKa+O0MTjW/N+Fj9cJheTDSL6WQ6I4icGPldCcfOTMesCYFF9nYzdVt+KaapxTdli6d3WVmczJksHR9+5oNGGB2hQ8UE0IIIUQcwfxtXO3A9aK0nPJxyr+nTJliDz74oJepVq9e3UUyywOhzJd2BDcg1gExTeo57jf93JSXs82TTz7p6eW8HojoICgtgDJzhMSSJUsS9h/eq30mkZHS5bJCRBM5z+BUc8ErkmP1VF4eRew9mtP2Hgl9WBfJItGdHHQoPNvv6es+cuzUP+5zubp9882hJ/fcwwDM1DpFIYQQQkQBiF7KtwsUKOD90sGYL+Zyk0DOl3qELI416zFbGxHNWC/EMo54AL3XlI0TsIZTzY1tENms+9NPP3lfOOCQs99wwR2sj+PNfZ8+fbx3m6Co4FwZO0YPOGPMOI/ULpcVIpq46KKLXEAnBcsJKQzG6l1zzTXWqVMnv+d5SrvcIKc7ith2qLDf58+827JkOBzp00kTNMi/zHJn3GvbDuayGdvL+vNTsf7OO63ozz+bLV1q9sADZp9/nqrnKoQQQojUBwE7f/5876nOkSOHLV682EU2jjTONQ4ZN0rBCUvjni/x+fLl84AzRnrhjjN/GxecbRDX9HOTdI4YR3zjdJcqVcpLxukLp9cbJ519cyxENLBesD7HCQLXgl5tytnpAafcnQsAS5cu9e2ZFc55p1a5rBDRRK5cuc7KyY7UWD2J7ihi68GQ6C4qlzvZyJT+iLUuPNf6r2toP26sdVrRfSxbNrPPPjNr3tzsf/8z69o1dBNCCCFEmgTnmLFe9GnjKteoUcPKlSvnzjPzuEkQR9gighG/06dPTxDKvIYrjshmnBhucyDSca0R8qSY47DhaiOSd+3aZZMnT3ZBjZvNPlkfwYxoR3izH15n9FiVKlUSHHFAxOOSIyoIV6PHnN5vzj0Q/SSsp0a5rIjfi1T83vAzR3o/F48qVqwYFT9vZY472dE4Qk+iO4rYftzpLppNojs56Vx0lovucZur2c4KQ0/fU9Gkidkjj5i99JLZ3XebNW1qVjj0/0UIIYQQaW/EUCCGcbn5sv7HP/7RPv30U3evERUIY5yx22+/3QU6IWiMA+vQoYP3arM9AmTUqFHuahOQhqPdrVs3F+GBCw7si+MgyilfZ/8dO3Z0MY9bzf4oZycVnf0H2+Gusw1im3ue46ZzXJxzliHiEd3MB48GkSHSHojtCRMm2KBBgxJG4fFzS1XHzTffHBVj6nJFyMk+ExLdUcTWQHTL6U5WKudaZ5VyrrPFvxW3HzfUss55T+12O889Z/bDD6SpmP3xj6E08+OlXUIIIYSIfbGNuEZAIIopP6UvmlJxysc///xz/+J+66232tq1a/110szpqabXG+GdKVMmK1mypItd3GeW8RrLcMaZn03ZNyIYxxyhTbgaLjnONA4cYhw3vHXr1nbTTTe5aMadw+1GbAeCGycxcLO5OICTjWDH5Q56vgMQQBLcIqV+b8KrQgL4eWU5P9933323fv5OgUR3FPZ0F8u2PdKnkua4ovg0e2XxFTZwfX3rmKff6VcmeZTy8gYNzPr1Cz3u0SO1TlUIIYQQKQRCO+j5JISMEWH0ZuMsBz3diGVExerVq11s0yeNkEYUE7yEW414xmlGaFPujdDgdZxrysN5ne0pbcUVRLzjgrMvApwQ7TiGiGS2o0ebslj2g7ghRT0YKRYIbuB1jh8+UixcdCs8TaQUXKjiok+44A4X3vyuaEzdqVF6eRSKbjndyU+bwnMtR4b9tmZfAftld+Uzb1Crltmzz4Ye33tvKFxNCCGEEDFfTh6ELFEWjiPNDO7Zs2d7WTaiGfc6SBJHFCO4WRdxjJimlxoBzToIbErCEcOMENuzZ49vhxNNKjnbtWvXzu68804PeaJ/mx5tXHWEN73cuO3BXO3wQCgcdo7B6DCOQ3/3pZde6r3ejRs3dgEfhKyBwtNESkIVBr8Dp4LfDY2pOzVyuqOI7YcK+X0x9XQnO9kyHLT2RebY9+sa2pAtLaz92Wz0t7+Z/fij2bhxZt27m02YEHLBhRBCCBFzIGrDU40Rxrjd3AhPI4UcMYyQRRDjflPCTfk4AnrhwoUukBHc5cuXd4GNE81oMBzyYM42Qp4y9b59+9qKFStcMPM6LnTDhg19bnezZs38eTDXG8IFSxAIxVgywtrq1q1r48aNsx9//NHLeBE/lLLTS8tFAN6LwtNESsLPazB/Pim4wKRKi1Mj0R01FLKDx7JaOjtmhbLsjPTJpEkuLzbNRffkHbXtEit65g0yZjT78kuz2rXNZswwe+wxs9deS41TFUIIIUQyE4jawJ0OUsgRuIhl7hHaCO5ChQq5wEVYUyaOsEWUsw4CvVGjRv56ILoRI8H+WQ9hjYAPxo4BpewcF0ed/YULbkhKsFDOW6JECRsxYoSfR1DKGzjwM2bM8N5zzkuCW6QkVFFQEULGQOISc34e+b1QpcWpUXl51FDW/1swyy7LnP5IpE8mTVIu5yarnnuVHbEMNt3uPruNSpY0+/TT0OPXXzcbODBFz1EIIYQQKQOiluRxyskJMCOBHMeYtHAcaeZz/+Mf/3CXmhJwelQR0pRxIyaKFClic+bMcbf6iy++cMd7/Pjx7jYTboYAx9GmRxzXGxGCsA9GgCGyESsIFMrYCW/jtVOVhuPM8zoiJxDcAQhv3g/uIs68BLdIafgZ42f9sssu85/JgCC9/Nprr9XP4WmQ0x01hCL21c+dsnQrMdnm7SptU+1e23f4ubPb6LLLzB56KORy33qr2ezZITEuhBBCiKhPKQ/m9VIizjIEK7CMMDTKtBG9OMr0ZTO+i+CzLl26JIhiXGsEOgFnhKdRzk3ZNzfmdSM2mNWNcGe/rMOxeY19UHKOeEck43IT6IbwDwRLUqXhnDfnh5gPAtYCeI6oR8irj1akFlRU8DPPPHsuIHExiQtO0TKnO5qR6I4yp1szulOWFoUWWOFlW2zTwULWZ/El9rdSZxmQ9sILod7u6dPNrrvObMwYmldS+nSFEEIIcY4gTnGk586d6+IYt5lebgRu165d7euvv3ZRjWBF/CIWCCnDvWZ9HpMmjhCnlxrhjFCnhJzXSGdGoAdBad98840LbGZzE3qGC4j4Zh36wYMQNnrHWUYIGmXr1atX92MjxjlWYhDvJJhzwwWnBB6Rg4DH3eb9BOuJtH3BiP//0SJqOQ9ENzdx9kh0Rw1yulODDOmO2hWFR9qHa7rb+7+0t7+2OcPM7gD6rnr3NqtXz2ziRLOHHzZ7662UPl0hhBBCnAOIaPqpuacvmzAzBDZCAWeudOnS9qc//clFOOXjlIJz/+2337rgpu+aEVz0adesWdN7WCdOnOiiGaGLaCZE7e2333ZxfcsttyT0aiOU6LGm1xoXmv3iCuKk8zol5fRzU97OXGN6vwPhjoDmeDjbgdDi/HHMgfWCPlqcc9bnfJVYnrbH2gXw/5lEe5xmEZtIdEeZ060Z3SlPuwI/2xdrOtjynUWs74KqVi7fyfMGk6R8+VCwGuXmb79t1rCh5ncLIYQQUQLil8Cx7777zt1g+rSZuY04DcpfmY2NkGVW9pQpU7yUHEGMi4yo5p5+7g4dOvhrCN2gfJt94lCTIk5fK6Xm7JvtEMXc40pPmjTJX2df9I0jmOglR/AHoWgEsbEferUJbkOQ47RzEQDnG9iOOdycMynqwbxuBDejxijrVWJ52h5rF8Bzlgez3EXsIdEdNcjpTi2yZzhgDe1NG2dP23NjW9onV446+40vvdTsmWfMnnvO7O67zSitqVMnJU9XCCGEEGdRTk45LmO9KANHvA4ZMsRfR/AuWbLEXWaEM48Z2YVIRuDiTBOKRuk2ILZvuukmLzFHDNODjZjG/cZ9Zr833HCDl5CzL4QvbjX7oD+bdSkrpzS9QYMG3ifOObIOwhkXPBDcQGI67jzHp38bwc954q7jiiPgEf444dxzPoHDLQGWtsfahRPMcqe9QcQeEt1RwNGjv4tuzehOHS6x12xmpkds7qYiNmrFOYrmp582mzrV7IcfzK6+OtTnnUQvlhBCCCFSvhS3T58+7gZTdo2Y7datmyeQT5s2zYUwghcRjBhGjNPLjaDFta5QoYL3bAPPg7JtXGoEOSIbR5nniB5EfQCOOf3i3NOv/eWXX7pwRhjT340bTYk5JcEkpHMxgHPAFQ9PIycVnXOl3JwLA4j9LVu2+HkivtnH7bffbtWqVYvIv7FIPc4UiqfQvNglKkaG0RfDBxIfRpTbUO5zOui7IciC9Wni58MpHOYVcvUy/EYZUTh8cHIVkw8+PlTvuOOOiP0g79xJEEYWS29HrFCWXRE5h3gjm+2wP9QY6Y8/mH6ZmaU7+43Tpzf74guzcuX4ax8KVjt0KOVOVgghhBCnLMVFlCK4EcbXXHONl3fjEOMK0pNN8jgCGHGN24xLjPt8ySWXeMk3zjLfK1kHFxF3mu+Y7A9xTo83Ypk+a4Rx7dq1fX2C0HCbR48e7eO/GBeGyGf2N6J65syZ7oIjuNlvvXr1XDgj4hHXlJUjqrlHpCPe6UHn3Ont5rgcn5Jy3md4erlIm5wpFE+hebFLxEV379697eGHH7ZnnnnGwycosenYsaN/eCUFVzIp6UEk82F21VVX+Y2EynAQ2VzVDG5fffXVCa8juOfNm2fDhw+3QYMG+ZXRu+66yyLB5s2hX6C8mbZ40JdIHe6qMcLyZNlvy7aXMLNbzm3jfPnM+vUzy5HDbOTI0EgxIYQQQqQKCFDcYfqqEdUYLJRfT5482cu+6edGRAOvE6aG0YLYxkFGLN99990unhG+3HC56bmmnBsBjThGPCOUcZ4RwxyPcnWc7Ztvvtl27drlfduUqLNPhDg3ytfZF655u3bt/Lso4WnsY/Dgwb5fktQJWePG/igV5wICFwdw0LlxXMrJg9JikbbhZyipJHtQaF5sE3HR/eqrr9qdd97pwQB8qL333nt+hfDjjz9Ocv3//Oc/LqgfeeQRq1q1qj3//PPeM/NWoiRpPlDpiwlulBMFEJAxdOhQ+/DDD91Z54PxzTff9BESQTJkarJ5cw6/z59pc6ofO57Jk2Wf/V/zccef/T/bt+8cfx1q1gwFq6VLFwpWe/fdlDhNIYQQQiQqKf/ss888JA1Xe+zYsW6kUNqNQ4xLjUnD9zucaZ4H47743te+fXsXtCSLd+/e3Q0fZmwjtnG/Ee2IdNZFQNMvjqinpxu3+uqrr3bxzfdG9oFgRxhTMUmJOm43fduUjVNNyYUAXuO7Kd91cSsR6aSi85zvvazLWDIEN++D19kGF5z9gUqL0z5ceCGlPLHw5rlC82KbiPZ084FHWMXjjz+esIwPFq4I8kGUFCzHGQ8HZ/z7778/YRmBFHw4IrbbtGlj//jHP/yDMdgHH4KU9gRwTI7NByNXHiPhdOfPtDFVjyvM7m80xf4zuY6t3V3C/ve/dNa06Tnu4Morzf75T7MnnjC7/34zrqq3aZNCZyuEEELEN0FJOWXipJXzHNFL4BkONCIVEUs5ON8xaUOkIhKHG/FMqTfbIdwRMohstkWUU8rNPX3ciHfc7ksvvdSfs1++tyLGcaoDgY17jsCmTJ39cF642whsYL3wYCy+f+Koc2z6w9mW/VDSzjZB3zcgzhHjnFfwXKR9aLnFjIzWOd0iBkU3JTN8sPCBEg7Pw4MqwqG/Jan1WR6AE85VSD5gKfl54oknrHPnzi62uRIZzF8Mhw9sPgDD9xMOvULcAignSi7kdEeOrBkP2/2N+tpjI+62Tz8tao88EpoMdk489pjZ/PmhPu9rrjGbNMmsUqUUOmMhhBAifkEsI4D5Psf3PALGEMJ8j0OsUMmIWMZo4R73mCpG8n/47sd3Ob7DBaXnhLABY7zYJ8IXAc2ILtxsStZXrVqV0NPNsQLHmfUR2Yz1CpLPw+F7JeskhmNQUo6Yp2oTsT5+/Hhr1aqVH5fSc7bjXDl2UHKs0uL4AYGtlPK0RZpML7/++usTHnOFkw/M8uXLu/vNh9n58MILL9hzjIlKAbZsCUR30n3sImVpV3aGmY20Awfa+hSw4cNDFeNnDSv/979mS5eGBDehfVRqJLo4JIQQQogLE9y9evWyqVOn+mguhDSiF/caIUxlI6Xi9HrjJuNoI7oxZ3DEEbqIZ5YtWrTIvxtS4Xj55Zd7KTniF0GMo813xoYNG/pznGhABBcvXtx7vYH9Id5xyxPPVg7KgU8Xfhb0lnM+XCDAQec86P8O0s0RXxxHpcVCxDYRFd2kNHIljw/FcHhOH3ZSsPxc1gdKdzgWvT+IbtZNHNTGFUo+LE+1H0rgw8vauUpK0mTylpdvSqvXQaKakMC+27JkWWwjR6a3Tz81u+22c9xJ1qxmtDg0aWK2fLnZZZfR4xAKWhNCCCFEspSV79y50/u06dmeP3++J4xjriBMcaapdKREG2GO8KVElx5utgnKtIP9IW4Ru1Rehgfu4qBTNUnpOLlBbMt3SL6zsg/6u3HVg35u7k9VDsxxOI9wQY54530Eo8m4QMA5Eu7LRQAMIy4qcEEBUc+FBLncQsQ2EQ1S48OEQIqRpD8fhwAJnjdu3DjJbVgevj7wIXWq9YFESK6CBlcmWZe+H3p9AkaNGuXH5grjqa5G8uEbfksOaNvZulVOd+RZZnffvd4fPfhgyLQ+Z3C2hwwxIztg2jSz7t25mpPsZyqEEELEC4hWxDTf/fguhvuMEEUwI3j57kYJNsKZSTZUJrIOU24ISbvllltcILMOTna48MVwIeUc4ct30gCWUe5N+nj//v293ByhTbI4x6FnnGNXrFjRM4U++eSThLFguN7cB6504mAsvn+SYM49M8LZnpJ4LhRQXs6McfaLyMZVJ3ldgluI2Cfitirucc+ePT3UjA/J119/3ct4uGIIPXr08A89PkThwQcftJYtW9q///1vD7cgOZIyog8++MBf5wojZeB8aOFa09P9t7/9zT/YCFwD+me4gklqOmnpfAjfd999XpbOB1xqwkXXNm2W2PDhCy1Pxu1mlrrHF79z000bbcaMEjZ+PC0KZj//zMWWc9wJvdwDB9rR1q0t/eDBtuW662zV//3fOdarnwhVGvzBF0IIIeKtnBxHm9GuZP3gFiNimcVNfzbf+RCliGZuCGNu9F3z3RCHmO+J1113nX+XDPJ4ENykg9Mbzvc+8nwIOGMfiHiCddk3lZSM+UK0kw3Ea+wf8Y9I5/sj5eqcFy48312TKgEPgrGWLFniTjYXDdgPveZsz7H4vorDzjqAE67EaiHSDhEX3VyFJCHy6aef9g+92rVr+xW/ICyNK5PBqARo0qSJ9/M8+eSTHpAWXGUMwgYo/SGdklESXEXkw7RDhw4+WixIkoQvv/zShTbl5uwfkf7GG2+k+vun+rhnz2k2fPjNlj7d1al+fPE7GTOaUV1Wu7YZRRAPPGD23nvnrpdXlShhjxw7ZhSqFezXz17r18/+3wWcV/Zs2WzBwoUS3kIIIeLK4Ubw0ueMOA0CyYLSbF6vU6eOl3sjpnk9SPpGxPLdju+XuMSIdwybKVOmuHjH4cZZpmqRKkgccpYhqgEhjJvN90hK1xlJ9t133/lyxDpti/fcc4+L9IBgjvapwq8QzkHielJwfEwhLhQosfrU8P9dqd4iFom46AbEL7ekIMgiMddee63fkoK+mB9//PGMx+TqIeJdiHBKljT7/PNQSzbFE+XKmT366Lntg9Kzbw4etL/WqmUNZs+2f5rZna1a2bbzSDRfsHmz3dyvn+9TolsIIUS8gLBCTCO4AeOE73gIYcrNEdmIaV5n1jXCC9GMA44oR5zPnj3bbrrpJi/9njlzpv8dRRQjfjFtqKx86623XKjTl41IB8bN4kYjvEePHu1CPXC5cbeZ4813TUaRhXOmOdpnep0AN3rIRdLw/zupwDrK96kmECKaiQrRLUQ00aWL2X/+E3K6mQZWsKDZHXec+34ykA/ATE1K08aNszJkCmiUmBBCCHFGB5PnlI4HLjal4Ahp3GmW0zLI+jjPJH3jeFINifiivJywW6onEdkIdXqtEeg43GxDzzbrMLaL9Sk/R7gj7lmOa84xEdnsk3NgO/q9EeAcM3DGA840R/tCX49nNzoI0gsX3HCm0n4hogWJbiGS4P77ucpu9u9/m/3hD2ZMC0GEnzOMqKOH7JdfzL75hsZxYlFT4IyFEEKI2HUw6dsmnIySbUQygpfUcEQbTnTgTtNCiPDFvSabhzZCXGrEOE425dsIZLarUqWKjwZDjPHajBkzXCgjrEktZ7844QMHDvTybpx03GzENaG7kyZN8oR0ysoDB5x9EuLGeYaPAzubOdq8Tk5L8D45PhcBOCbHTwuBaefqRp+tQGedxIL7bEv7hYgGJLqFOAX/+lfoHuFNovnKlWYvvxzq/T5raAi/8kpqxswWLQo1jffoEapjF0IIIeIcsnsmTpzoYpTeaUQz5eNQvXp1T/R+5513EnJ5CMnF8aYXm/JxJtEguG+++WYv+6a0PAgpQzzfcMMN7lazX0Qz5eKElgUg5HHNKUtHyCOCWY8ANoLNCFjjIgDCG4c9mLzDvhGKTMhB+BPQeyanldebNWvmGUIkoQfQI/7AAw/EvFN7rm70uQj0Cy3dFyLSSHSLuCXo3dq8ZYvf//DDD7ZgwYIT1iFUrWvXqtavX1177TWzoUM32N13T7KCBfeccr/0X58A4S/XXGNGhsCKFaT4md16a2jEmBBCCBGHINBwrT/88EN3pumbRojiNhMoRso3QWoI4Hbt2nk5OIG7CGjKyBHpONQIbHqhEcPsB9GNQEdEI5ZJMccFxekmqBdhzj4R7oHwI5D39ttv9225BRcD2CfuKdsHPd2Bi84+OAbCnOMz0ozvFQSvnUo8857HjRvnpeuI++C8mdfN8vLly6e48E7JILJzcaPPVaDHS2m+SLtIdIu44+DBUDlY3379/J7hHASUP/XUU6fZqquZfWYLFhS1P/+5rZk9ZmbvmtnvyaWJ2R1+1RV7nDlk//sfg+ND94zFY6a3EEIIEUcgdBG/L7/8sgecMQIWkY3gJnUcMU5pOS72vHnz7Oqrr3ZHmt5rQEC/+uqrLsARwQSeUY4eniaOqKa0PCjZxsVGNCN2caxxsBG9lJmznNcDKPuGpUuXWuvWrRP6xgGRzPqcH0IcgRiEvfGYqTiMNEuqlDoQpcFFgdQukU7pILJzcaPPtVyc/4+ca1LbnE1pvxCRRqJbxB2HD4f+mJYt09ny5y9lu7ctsWMrR9t9xepb+TwnJoTv3LnK1q2fZsWLbbQD2R63r9ffayv2VTWzt61Mtvvt6iIfWamsv5eI7d+/3YatHG2jw/5oJ5A5c6in+7PPzDZsCMWkI7zz5k2dNy6EEEJEGBxOeqUR0NwjmhG/lG+TJo5wRpQipOlzRlhTRk4VGWKcv61dunTx5ayLS0x5N/c44/v27XNhzP6CVPLAVQ7EMoKc9dkeoU+vN68HsH4A5eP169e3pk2bJoh0StvZN6XqgeAGjo1bf6pgr0iWSKdGENm5uNHn+m/BuXFxIKmLBpplLmIBiW4Rt2TNmt9y5Spm2faGysER3LWL1DhhnY12zI6tn2ZV8pS1IkUKWruS31j/dQ3sg+XtbOW+Kvbaypetc9GZdkfZkZY/8x7bvXu9TV05+nQHNbv5ZrNPPuGye0h4U2qeO3dKv10hhBAi4lC2HbjS1113nS8jnAwhhQjHVaZHG8GNG434Yn0EL84ygrpkyZLeV42Ixhln2aZNmxJ6wQOBR6/0kiVL7KeffrKGDRv6PO6gpJr9I5zZHmHOPgho457nCHkcccrYgbLz4BxwqRHr4YI7gHVO5VpHskQ6NYLIzsWNPp9/C9x4Lg5oTreIRSS6hTgH0qc7Zl1LTLFmBRe68B6xqab9sKGujdlc3XpcNNba5/7+zDvJkSMUpobw3r7d7NNPzXr2NMuTJzXeghBCCJHqEGRGEjh9z7jbCOBevXq5Y41wQmDjZA4ePNgFOW4zs7IRuwh1XPBAtCGu2R/b1qpVywV14IySDI6bTX804JAzxxsXGnFP7ziijW1wvHHVEfCMJqOcHCglp6QdNx5xDghthCOjx5jRfSrRiGg/lZMbyRLpMznLnBP/Ty5EzJ6LG32+/xbsQynlIhaR6BbiPCiUZZf9X9W+dmXxqfbWsk62aHcJe295BxuQpZZdZL8Sy3b6HeBsI7RxusOFt0rNhRBCpCEoa541a5a9+eab7iS3bNnS+7gRwwgrksQRubjb9G/XqVPHA9Bwm4NS8j59+rgQpOSclHC2JbAsGP2FmGc9kspZj7LvqVOn2pgxY9zJRoCTgk4gG885XhDYhnPdpk0bF/eEqQECHdHPSDIuEoQLUZx4nHYuDAT94EFZPPukbB2SEuWRKpHm/wHviXMLRpTxvoJRaPx78/9h1KhRF9zrfbZutMrFRbwh0S3EBXBxntX2Tp0P7ceNtey/y9vZugNFbJ0NNrMhtnr3kNNvjMBGaNPjHS688+VLrdMXQgghUjS4iz7sd99916eD4ALjRNMnza1GjRruViPQENyI2VtvvdVdZYQ0bjTCmmAyyrbppR4yZIiLRfbD9ohgRn4hmhGVJJrjUCMueY5TTVo42/OcfSHsEPmIeErPP/jggwRHm7JywtBwvRH2CMZAQPJeeE84woh13HEEKwnmbI/DzvmezqlN7RLpIDyN2eJc/EB8B+8xGKvG+wjS3JOj1/ts3WiVi4t4QqJbiGQoOe9cdJa1KLjAPl5a1/ptbG3HrLP9cUR7W7B7iv2jzSjLlin0x/wkuCJOTzfCmyu93Et4CyHSMC+++KI9/vjj9uCDD9rrr78e6dMRKQTl3yNGjHBxjDBlxBaOMDcEMKKXMnGENSIVEYsIRpjjRAdl5k8//bQ7yIhFStCfeOIJd7oR1Qhterk/+eQTF7042bi6OLkcl9tll13mwpqRXJSisx+E3f333299+/b1kDaEMvvj3BCijP/CGUd48ph7RCmilfeBYKXknZ50UteD3m/eF8IRpxZOVa6dWiXS4eFpvEfK9Ul0D95jixYt/DEhcUn1p6dGorrKxUW8INEtRDKRI+MBu7VEX/tt4302zF6xI8eutFcnNbERK8pZ72v6WJWCieZ3h5eaB8KbcLXA8c6fP7XfghBCpCiU/L7//vvuIIq0C8KO/88IUgQdrjEuM6IPAYqYRvwipgGxStk34hVHFgGNSKxbt64NGzbMXfIAXFpELYKd/SCGCVpjG0QiJew4qOwbJxzhj3AEXF3EPWXrH3/8sTvmnGsg/nCsEaoIUC4KDB8+3M8LEPicM7dAlHNctsGhZ/vAQeciA447FwdSYjTX+YancdGidu3aCaFw/P+gn5355UGpeWomqgsRT4Q+SYQQyUZOI4jlKvt7k39a4Ry/2ZyNRa3eB3fZF3NO8yWTq98Ib1JSd+0Khaxt3Jiapy2EECkKX95vuukm++9//+tuoUh7IFi5sPLkk0/aoEGDvGQcgYc4Rugyd5uRWszZDgQz5eWIU8Rh0aJFfV42ohVXGmG9gRGbYSCI6dlGxELg4CKycck5BxxuhD6zvRHxAcGcbo6BIC1UqJA1atTIOnfu7PeknSP02R5RyrkF8Jgebo7He0LAIuhx0UldR+zj7uNu/+c///F9JFWuzfmlFkkJ5mBGOBcK+DfjdirBndKJ6kLEExLdQqQQDYvOsFl3v2dtyi63vYcy2y39rranRrW2Y8dOsQF/2HC4ixThL6UL7xxhXxaEECKWuffee+3SSy/1EmCR9gh6h3/44QcXxQg+hDZik9JrXGzEHeshhnFc6bVGfOMSlypVypPBCVBbvHixi8LAFQ8HkUgZeLioDRxcLuZQRcFrlKqzHq8hMitUqOD7xIlGnHOP6KaUvXfv3h7W9umnn3oJefPmzX17+s45FwQ6Yh/HHWeciwmI+aCUPTy1HEHOhYXE5x1erp1anM1YriBFPClSOlFdiHhC5eVCpCDFcv1mw27+nz01uo29ML65/eOnlrZ8Rz77+Ir+liVjEleW+QOJ4/3VVwwztYo//GCXReLEhRAiGfn6669txowZ7oKeDTig4cFOBD2J6CXoHcYNxvEN5llTmj1lyhS/0DJ27NiEFO2vvvrKrr/+evvDH/7g2yOOEdsIVcRst27dEsq6EcuUhbNPhC1l6ghbBH1iB5d1KD0PRpOxPsvYN+Kbc0Eksz+Sy/kZw0lHfFKezvHpEefCAG48Ljb74OcPQc8yerl5b6zLe0WUcjEhSC3neJD4/CJRrn02Y7mUIi5E6iDRLUQKseN4bxrcX+0LK5h+uT36083W65eatmpbJvu049tWMHemhD/UCWTNanbzzWZ9+lj6xYutn5mtGTDArG7dyLwRIYS4AHASCU2jP5bS3rPhhRdesOeeey7Fz00kD7i3/L1DxCJquSEucZZxmUn9prcbNxt3G2FLCTkBaH/5y188TI3Z1+GiD0FIGjiCOLFjiwuNyMaJDoQ4zxG/iHoS0BHrbEeQGudHSTn94KzDzyTu+5IlS/wcEdLsBzEdnC/hXpwvohwBzTnTw41Yx23HJaesHfHNehw/3PEOgt7OxX3mokSQ5I3Y5RwTjyw7FxF8toJaKeJCpDwS3UIkIwcP/t6rNWr0aFswenTYqx/YDfY/6239bPzaqtbu46utR4au9vD9t58svDNlMuve3bb27m0FFi+2Mnz5zJHD7JFHUu/NCCFEMkAfL4KFXtkAhA9p0m+99ZYLtQwZMpywDenmDz/8cMJznEaEjYguApGIeEUg4nQvXLjQBRsiD3cZ0YqonTZtmotrxCzCllLtILEc8YogDhd9iFr2n9ilRayznH3gWNO7jQhmH/RkX3755S4qcdZxr1mGYx2UdeN6Myu8ffv2Xk6Og80y4PzZFzOruYhAuveECRO855x+bkrMq1Sp4iKVbTl/9sOIMn6OEd78PeeYQdn52ZZrB+X5vF9+H/j3+Pnnn70Mnn/H8w1jO5e52UoRFyLlkOgWIhk5fPj3crKyZVpb9fwVT3i9HrO9f3vHnl36gK082sY+O9Lfeuz8zieHnUT69PZry5b28eLF5lL7b38zW7vW7N//Nkv0BVUIIaIVxisRiBUOIgDx8uijj54kuAHxEjiHIjoJF4lcVCFMrH79+i6i27Rp4yXeCO1gpjZ93ISVffPNN1a+fHkPSkNAI/bCHd5wUZjYpUXYcgEG15zeakRxENKGMO3SpYs76dCpUyd7/vnnXTwjPDk26yKycdBxu+nfRnBzjiznnAhDA86Z9HUuFnHjXCl5r1atmh8bkY/zjbOOWz5+/Hh/Xwju7t27+/NwTleuHT7aC7jgQEI6Ip+LAPSr8/twvrOzJaiFiDwS3UKkEFmz5rNcuYqdtLxhrn32So4v7ZHZN9mvR1vZXSMK2NCe/SxThqMn7yRdOvubmd3w4INW8j//MeO2dGmo51tlX0KIGCCpL/y4hogdCYHYBGFKWBpiFZGLu4vbi9BG7FL23aRJE08jp8wawYgwxh2m55mE7w4dOliDBg3cLabMPHH5c+Dohru0CNxgzjTHDk82p5SbUmzOBxGLAx6Ielx1AtFwn3Hbca85NqXi9JNTEo4gx6VnBBgXCHC9OXe2Yx0yCbggQFAbYpx+bt5X4JzTo46zzvvnHBDgnDfbciGC/QXha4md5sSjvTiXYG4275n3hrOfWrOzhRDJj0S3EBGgWu419myFN+yJxffbqNU17I+DDtmHVwxAYyfJph49rGSTJqF088GDzZo1Mxs40Kx06dQ+dSGEEHHucDPjmvYARCxuLyKZsDREN6XcN954owtMUrxxahHDiG0cZkR2UMlAlQP7SRwultjRDQQmbnriEWLhIHA5P5LIcd9nz57tZdoIV0Q6x+G4iHDuceRJIuciABcF2J5ecPrAubBAcBpil+0ooWemNeviuON0sw/+DTgW5excKODfAEEeOPaI5y+//NLvg/7zYsWKnVAmnvj9Jw5hC8LZAjQ7W4jYQ6JbiAhRJedyu8a62zfp+tvHs+paqTy77NlWY069wXXX0ZxldsUVZnPmmDVsaNavn1njxql52kIIccGMGXOazzoRdSBAaRFADCOmcWIptcbBRbQyDgwHGhGLe4zARZAimHGVaSVg28C9ZTtcYZxwhHlShDu6uMP0hSNGgzFi3CN4EfTBnGn2i1hnn4hbnnPuJUqUcLGOgEZYsz+EM73blKVfddVV7opzzpShDxkyxJP2uUDA+pR333333e5e49Yj4jkuPeUcOygrZxvOM+jb5rgzZ850kR+MEOMiBNuHX1RIHK6WOHAwCGcL0OxsIWIPiW4hIkhlG2RP1PrA/jHrj/bc2FZWJMMSu6rCtITXN2/Z4vf8wYaCRYta6SlTzC6/PCS8W7Y0e+01s3vu8VJ0IYQQIjmhrHrUqFEuXmkLoNwa8Xr11Ve78KS0GgGLOGX5v/71L7+ogiuM0AxKuHG5Ecn0SlPCzXOWA9tTQo0YRegiMnHQEd4414MGDXKxOnHiRC/tZj2C2xC6ZAYg5hHZlHCzDc4wjxG0CHAuFFAWzj4Q+rjZPOa4vBaUnnPDfUcQ06eNmw2UkHMMnnMhAKHN9sF5Ahcl6AnneBwDEOA4/4jwwJ0OSuTZPriokHi0F+eBQx/0dIeHrWp2thCxiUS3EBFOOs8w60/W1HbYz/aYPTjqRpsz6g0rYnP9tdDAMSaI3ez32bJlt4ULF1hpAlruuMPs22/N7ruPmjuz99/nMn/E3o8QQoi0BXOt/+///s+FI2IYoUuoGOXRlJgjPnG66YGmRxrhSa824hhBTv80jxGalIYjUnG9EY0IbsqrcZgRobjlpITjgCOWEea407wWpJ0jRAkjY1sEKa+zfwLUcH/Znv2T+E2J90033eQXCjg2LjnhaYjvZs2aeQ86ohe3G9ce15r9ENTGxQIEM+FquOK8b94D58aNc0ZEI9BxpdkGMRyEsgWjwniN7QOXOyDo0w6EeOLQOP7tuJgQpJcHoYKanS1E7CLRLUSEk87Llulsf8230vYsnW+zdlez/llG2L8rv2A5M+6zZXu3mC3sa1df/YXxN7tfv5v9SwV9Zta7t9kll4RSzb/4IuR8s6xKlUi/NSGEEDEOzvb777/v5eEIWhzqoFwaQcpjXGLEOM9xjRGzCFxENaKS5QjWzp07JwhTRGvgRpM+zvLA8cYhRrQiZhGWiG36svmbh9Al6IwZ2kFfNKFlzPdGQDOHm3sELWKf8xkxYoSfCxeueY74ZT8c56OPPvJjI7g5Hq5548aN7fXXX3dxTxgc0K+NOOZ9si7vAVHM+bGM98ENZ5zUcf6dgh5sBDPwnhPDOuFl4olD49g/veUXMqdbCBE9SHQLEWGyZs1veXMXtWdrDLK7pxe39QeK2Ftr/2T/qP6VBb51wYJVT96QcnLm2NarF+r3RnQzB/fVV83uvlvl5kIIIc4bAsFwgRG4uNA4xYhVhDZilfJxhCmClXJoXGeEIYFjuN5sE6SII2YRwIGQRZhSio1ID8Z+MSILcckxKD3H+cVhR7gzfgsRjxj+y1/+4g4w59a/f3+rUaOGi1ouSFN6jmjlwgAXBRDMlL8TrIbjzeuIbtz4a665xgVtEHCGo45rz34YC8Z74Xx43yyjjJz3GfSnB73ovBfK1en7RoSH92AH8+VZB9EfDu8lcZl4Ukn/wQg0IURsI9EtRJSQJ9Ne+3v13nbfzDtswtbK9v26hlY9d39/bcuWUE93eH93ArlyWabPP7eLnnnGck+ebPanP9nOXr3s16eftsP585+wKo6Du+RCCCHEaUCcEkSGcAzStOmTRmQjLllGvzFQ/oywRGgjoFkHVxiRjYM7ffp0L7WmDB0nm8eI0O+//95nblOWffnll7sQRQhz+8c//uHONWIWEcxYMZLD6b9G8Ddv3txTwXmdYzJzm+NxHgjvoKecUDREM+Xq/A3EfaaUfNiwYS6kEfU47dyzPiIZ0czfSvbHObEdghsQ7iwjcC2YQc75IthbtWp1Qg8254tbzYUILj4E4Krjvsu1FiJ+kOgWIoqolGu9/bH8MHtzaRd7b3l7u6fcGOPPfN++oZ7u8P7uxLDeA2b2IgL+p5+saPv29mcz+ypsnezZstmChQslvIUQQpwArnRQ2ozoRBgjSrkPyr8R0rjKLAtKzinzRpAiuFkfUUtZOAForEOQGiXhOOTBfhDtCHrEKY/ZluPiaHMOOMcIZcQ82wZzv5kNjsON4MUFp4ycc8Wtxn0OnOYg5AwXHLF+ySWXuFhnP4h9RDfH+/Of/+zl86SXk2LOa926dfMLDr1793YRznvk/QbOPvcIb841CF/DmW/fvr0fPxglBpwnFx3oDWc7LlRwHNx9Es+FEPGDRLcQUUbX4lNs8taKNmV7Reu1+k92zP5jD5dpaqWy5rMF3t99tRUqWPCU2y/fts3Kjhplhbdts15m9l6JEra6WTObdfCg3dyv3+894UIIIeIexDbClhsgjJk5jWCkRxnRGAhjXG8EJMISlxZRShk3fdSISAQ5Ipv+aoQq4htB+s0337jIRcAiUlkfAUoJO8FmlHbzt2348OF+DjjICHyOi7uO0MYRZ/sgzIxQNMQ0xyWAjHU5JkKc0vUgQZwSdi4A8D45Lj3ZXBxAYOOk33vvve6Y8755j5Shd+zY0QU5ZeqUxuNSMw4Mx5uycvq3Wc55Iu55v5TXP/DAA35O4T3YEFzMUF+2EPGLRLcQUQYVbI9W6W+3T/uTbTpQ1syet1JZJ1v57AVth5nVLFjQnYVTwmuEqf38s9m4cZZ77Vqr3qeP5atTJ6FHXAghRHyDCEX0IlhxbYNZ14hI+qAZFda1a1cXmZR/IzQRzJdeeqmLz169ermQxBWuXr26h6VRsn3LLbe4GKcknAu8CF0u9iKKKTvnOIhOHHFELiIewUp5N3/bENOsxz44XuA2I5I5N0Qx54OgR/Aj3jkWN86R4DVGjLEfSrvZN+eJ+4wQRyCzX86B56Sfsy7H4fhcJMCVp2+cCwiEt3FubENiO2XviHQuJHBhgHNDgD/22GOndK8T92kLIeIPiW4hopD8mX+zv1YaYE/Nu8HM/mKr9j1u5bOHRpCcFRkymLVowV96s8GDzZYvt+LTphkdZYf69DGrUcPs+GxRIYQQ8QXOL6KSILIgFZxyb/qkEcP0KCOkGQGGAAecYEQqo7jIFiGMjFJpxCqiFgFPafZ3333nbi6l4/369bMbb7zRnXHELusiuhGwiPDgAjLiGQHL/lmOQKZEHPHN+fEcoU+IGcFibMfjQDSzPedECTmp64hz3G5cctx6liPUSQzHJUfAc46cB6Xm7CsokUe0sw3vk31wcYKyckQ+x3vrrbe8HL179+5+QYGLBhyfdYUQ4lRIdAsRpTQruMiq5x5n83a1sN4b7rHm+V86950QpEYP+Lx5dmDYMCu2e7fZCy+YffON2bPPmnXvLvEthBBxBCISdxvxi6jG8aXkmhnVCFhKoYOUboTm9ddf7+XVCFaE+ahRo/ye/dAPzXLWRzQjdseNG+fJ4DjS7B8nmrAzHrNvhCrCmrJyhCouMgKdnmxELaXkOM2ErpE+zn4Q7TjWnDOBaAhjXGjgIgGCnrTzp59+2kvGEfcIdUrj77//ft8nYptjc46EpeHMBy44IWhBDzvHQohzPrjYXJDA7ee4OOdUANDvzWsIbgQ4x1bJuBDidEh0CxHFtC/8ic3bVc3WHShjfTd2tPL23vnVq198sc3Pm9fnkr5GP9uyZWa33GL26KNm991ndtddZgUKpMRbEEIIEUUgfBG1iEYEJsKXx4hJBDJiFYcYcUpYGQIXgczILhxf3GxELCXpuN8IXAQ3IGwJFMMlZxmCFEGN+1y/fn1r27ZtQm93IPo5BwQ86/fo0cMFPcFo3ONI01tOIBpOOqKZG2ngJKIHpee41gh7zic4F4Q9PeiEr+Hg415zHmxDuTsl6LjVuNScI8fjfSO2ea88R4gj6jkHnHTSyR966CF339kPpegcV4JbCHEmJLqFiGJyZNxl5hnkX1jv9ZfaXVbpvPd1LEMGe9vM/tC/v9UeN87sjTfM1q0ze+IJs+efD7neN95o1ro1g0eT9X0IIYSIjnRyhDMudhBUNm3aNHd+Bw4c6M4t47AQtQhLSrkZe4UwJ7Eb8ctornbt2rnYxP2lBBxxiyhmv7jOCF32jQgmiZw+b4LIKN9GUBNQxvbM3CZEDXGL8KWsHYGMOOYCAOfFa8zZRtDTIx4I8mA+OIIXofzjjz9anTp1EsLYglnZQ4cOtfv+f3tnAqZT+b/xm7HM2JexjKXshizZEpGEQsqSJfvSHv+IlPxEktCvkl8kEpKRLUuyJY0UlezbMGPJiLFGjDHGmPO/7ud1xoxGZvXOnPf+XNfT+57znvOc53TGOc99vlu/fsaqTZd6jov7Mf6bMdi03PN8OXbbms4+aWnneHk+PB5j2ZlgzRbbSogmhEgKmlkLke4JgH/Ogdh3qSaWYRresAJS1FtMjhwuoT1oEDBvHjB+PLB9OzBzpqsVLgx07Ai0bg088ABrr9yyL7oF0mKQGtCiYZdZSSmqRy6EEDeglZYu4rQyr1ixwohJCnC6b9OFnBm/aTHm7xTnjOO2k48xGzezblNAU8hSrNvlveiGTfdyWpEHDx5s3LQZC02hStHM2tt0ZZ87d66Jw6YlmXHgzAxOi/Xbb79t1tGFnEKY4pau2kxYxhhsxo3T0swXBVxmsrRff/3VCF870RqPw3s+re8sxUURTeHM3ymweV4cE/u13dR5PIp87sOs6RTm3J5u9oSC+tlnnzVjZBI0jp0iXCJbCJFcJLqFyAB0KDoV/z38EUJjGiIg6AheK8aUaCmEArdHD5eb+c8/AwEBAJOsnToFTJzoatymQQOgSRMWHAXuvdcVJ35dcFfy90fE5cspH8v1OuNWqvSkeuRCCGFDt/Hvv//eWKwZs00BSos1xSfFKi3atCb37t3biEwKWYrrWbNmGfHKDOZ16tQxApyilFbouGW97CzgtJDTHZ0vUGmxbt68uXEfp7C1XdkZb81nB63l7Mu2MFP8cyy0YrN0GS3g7Jei2a4bTis2vzO+mmMmPD6t4RTr3JbCnP0xDpvj5QsBWtoprBnfTVdyWsIp9NkXodh+7733zP8P9suXAhT3tPILIURqIdEtRAagQNbT6FZsKab92QnvbmqLnnU/QZFcl1Knc8Z8N2zoah9/DNA1b8EC1+exY8Data5mQyFbvTqy58mD3pcv48l69VCkeHFE+/ggmiL9ejxdUlgREoI3AwMxsXFj1CtfPkWnE3T6tOqRCyEEYAQy3a6XL1+OMmXKGMFKKDoZt8wM4Yy7phBlnDcFOYVqzZo1TTI0Qgv5+PHjjXs3E41xX4pifqdFm4LaFsu0OnM9hS4t6CwhRmHMfe0s4LSyU+jSus4x2cKaLtss3bV27VpjVf7000/N9rR2s1+KcI7RFtyEfXMM/KSrOK33PG7jxo1j64hzmS7rtoimW3tCdbPtxGxCCJEWSHQLkUF4rFAglv9ZDmFRtTDwu0cR0G5R6h+EmcxbtnQ1ywL273cJ7nXraC4xpccQGmoapy8Tuc8vv8Tvw9sbyJkToBs7XdMpxG9u3CbO8tGsWeELoHzevKj5bzXIhRBCJBrGWdPyTOsyX0Lada8ZD00hTNdpWqdpBWcCNIp0Wru5Pa3fdt1pltzithS/jJ9mjWqKZtuNnJZuCmi6l1NUUxjTmk4Bz374SXHN9RS6/E4RzuNQ4HMsFO50+7aPxxcEjBXnS4NnnnnGCGsKewpyvgiguGffHC/HwXhruqLTlZ4WdG7DMdNSH9dqTYGtutlCiDuNRLcQGQSvTBZa4Xl8nmkT5uyqhl7Vt6NZWZfVIk2gBdzf39X69nWt+/tvYMcOYOdOnPz1V2wICEDzggWRIyICsN3MIyNd7ezZRB+q9fWGJUuAZcsSFOZmOVcuIG9e1oi58Ulhz7EKIYSHQxHLbOP09KGbNMUuLdoU2hTQHTt2NG7hdMOmqzVjlelyTkFLsUzRSvFMYcxGMU3hThduCnW6cfM7rcQUu4zXtmOrGfNN4c4a4LSGUxSzXzb2RfgCgLHUhPtQeNsZ0DlOwt8ZK851hK7qTMJGizdd1Vm2i31TlHMc7J+u47Rusw8ei+dCl3iesyzYQoj0gES3EBmIYtiCXpXXYfqeh/HSisew68XJ8M4SfecGwMnSgw+adqx+fTwZEIAtTz7psk7HxLiENwW43bh85YpLhPPzFu1qRASyXrvmOgY/7f0Ta5339Y1t+by8UJkTuqtX0/R/hRBCpCconkeNGoVNmzaZZYrkXr16mVhpJjRj5m6KVlqmKWgZt0w3cH6nuKZQppCm6GV2cQpyCndmF6cYZ6ZyxknT5Zv9xE2iyT7oss04bQpvlqekqzit6zweM4XHjQW3E5bZmcdpsab45rHpDm5va2dY58sDbse+6CrPsTDGmxZyurdTwJMPP/zQ9MEs7A888ECsm7kQQrgbiW4hMhiv11mKlUfq4MBfBTHmpwYY2Xgd0gWM5aZr4HX3wKQwf9cu9Fi0CN+1aoUmdGdMSJxTwF+4EL9dusTgRCAszNUAlAGwh1namQCOid/q1LnRaPHw8kqDkxdCCPdAazGtyyNHjjS1qylAGzRoYBKb0SJMKzAzjVOwUhBT9FLgUkBTsNIibFukKb7pwk3xzX1t6zTdwumCTrFLF3Aek2LWTnZGEU2rMgV6hw4d0LNnTyO4eWzGaDMWm9ZrimFannlM7sf9GVfOTx6X9b0ffvhhjB07Nl7ZL25L1/X69esbyzst30zGRpg53U6U9sEHH5gXAMo2LoRIb6QL0T1p0iT897//NZkjWQvy448/NrFCt2LBggV48803zUOGN9Vx48ahJWNQrycHGTZsmCmJQdcjvvFkPUnewPkAsuHNmW9l4zJmzBgMGTIkDc9UiJSTO1skJjRfiY4LO2LshgboUnUXKvom3pU7vRIDIJoTrHz5Er9TdDTApDq0uFxvl44fx7XTp5GHv23e7GqTJ7u25wsBZmF/+GFXq13bZSkXQogMCOOWWWebwpjzGlqkKZxZNmvdunXGQvzCCy8Ygc3YaSY2o4Way7SE0xWbCcxouWZf7IOC2y7tRUsyxTjFMo/BRoszrcwUt9yenxTU7Jdx2dyHx6JFmu7nTFzGZGXMKk7RzszizKZOod66dWsjkCnKKbhp8aZ7PLejRZ3LFN52BnOWBOO8jr/x5QHd3SngmXmdxxBCiPSK20X3vHnzMHDgQJOlsm7duvjoo49MMgy+LaWL0c1s3LgRnTt3NgKZcT1z5swxmTdZEoOJMXjj53eKcgp4xvX079/f1GfkgykurA/JOow2eiMqMgrtK+9Fi3IhWHmgPF5Y3go/9PjCM8Oas2S54Vp+nf1hYag1dSoWf/ghql25gpx79yLHnj3IERQEL1rGf/jB1ejmmCMHwmvUwMX77sOFevUQWabMP+LDVfNbCJHeoKWZlueAgADjTs5a2hSmjLfm/YrJxFiGi8nMaJlmnDZFOOdEtrs2RevMmTPx+uuvm30ZD05hS4FNoUzXbEJBzMRmtJRTgNMoQkFO4cw++DuNGtyXCcu4P0U/52IcAy3YHAePwbHx+LRSs6QY96Whhdb5Pn36GAs8G+O3169fbyzsFNPct1atWmjRooWxwNP9nOJeFm0hREbB7aKb8TcUvnxLSSi++XZ0+vTpCVqdJ0yYYG7UgwcPNsuMX2Kpi4kTJ5p9+QaUy3Hhb3xI2Nk7bezakkJkNKgLJ7Vcjns+6Yt1f5TGlzuro0f1He4eVrogLDzc1PxuO3BgvPUsZMZ0Og8CeBgAp5MFIyKQd8MG0zB+PFj9fCnzufEF33Xru2p+CyHSC3aNa4pQuoyzDjYtxBTgFNWc01Ac0wjx2muvYdq0acaCzfWM06YrN0UrRbtdyuvbb7811nBarLkfBTy3oVWbApnLtks4hTWTlVG0M2aax+T8iu7e9B6kAKbFmy7l3IfHZV8U4ryHUqQ3atTICGku0wuRVnUaWSiwu3TpYjKR83cKbBpS+LvEtRAio+NW0c2bNuOP3njjjdh1fAjQHZwJQRKC62kZjwst40uY9fgW8AHBt6h8MxsX3uwp2nnj543+lVdeMfFNCWG7VdmwjIUQ7oCZXIk3wjCg5jKM2dQOr6xqitp51iO/943kY3S7s7PEehLnmSSIL9tuU/P7iGXh1NmzyH38OHIfO2ZauZgYDAJMu+rtjdDChdEvNBRnTpyQ6BZCuA2K5N9++w1ffPGFKYdFz0C6btONm8t0t6arOIUzrdkUt1999ZURsxTBtus1RbZdMsyuYU1hy/kN3b0pjpcuXWripyneuY5Cm/O0GTNmGAHPvjlX4r4U66zhzbkb75G0aNO6zTkXQwYplvmi4NixY+aZREs4rdsMD+Q2FStWNKKc+9I7kS8TaGGXq7gQwmm4VXTzQcCbd9z6iYTLjPlJCN7EE9qe6xOCDw26TtElnbFONi+//LJ5WPGBQpd1PlD4IKDlPSHozs4kJUK4i6ioi+Zz0eLFseu8MB2FsA2nI6ug26zKeALPxf6WNUsW9OvXzyOFNymXP//ta34zz0PVqq7vfKl28KCrNnlwMLJGRqJsaChWUoA3bw506wZ07Qow34RH+vILIdwBBeqqVavw5ZdfGgFLyy/dvyliOa+hVZn3eVqVbeMARTEt2z169DDGCobYca5kC3I7Vpr7ML6bophx3ZwPUbxzHd3SKcxp6Z4yZYqZs3GexP3ZKNYZI06DBYU/8+jQJZwhfxTedBOnZZrbMXs5XdQZrsNSZbSo87woyu3yZPXq1TNx37JmCyGciNvdy9MSPphYk5IPjcl2IqXrxLWWV6tWzTx8nn/+eSOu+bC5GYryuPvQ0s3YKSHuFNHRkeazdKkWKFDgxt9ervAVGBJcBdvwLDpVOIfKuQ4iIuI0gvYtNpMdTxXdSYb/7itXdjWWLQsNxanNm5Fp714UOncO+PhjVytXziW+e/ViRkZ3j1oI4WAYu8zYaSY3o3s13cPpVm5nH6eIpUilQKaVmMu0QHM73vspruntRzdwxklTGLMvznkooOk+zm0Zf03rMo9lW5kphCnU2R+t3Ey4xuNS0PPYFNYU9PRO5H5MsMZxcJvatWub32nYYD/8je7mtGIzszrHxL55bPbPY0psCyGcjFtFNx8OdHGy6zHacPlWsdZcn5jtbcHNGCMm9Ihr5U4IumrR7YpvXunudDN8wCQkxoW403h7F0Du3DcsuHVzR6Dlha1YcaImPv2zF6bWmuLW8TkClhVj9lxvb9TduxdBEyag3G+/AQxjOXAAoNfL228ztgV47jmgVStlQRdCpCqcjzC/DWOu6b7NWG5m9e7UqZNJjMaEs4yD5hyIgptzGIpsilmKaRoHaJHmfIj70uPPDk+iEOb2nO/wO+dJTIZWsGBBI5C5HedNnPfQtZ0WdPZFl3DuRzh/Y5gg++d3Cm5atPlSgHMqJnOjwOdY2DdjwLt37y7XcSGER+JW0c03rcxGSdcouiMR3py5TLfYhKD7EX8fMGBA7DomTuP6mwU33Z0CAwPNQ+R28IHEh1pCGdOFSO88V2YNNpytiD8iCmPhn/ejVf6Ft9yWE6HUILX6Se9wenmBNb9ffhkIDweWLgVmzADWrgVWrXI1vvTr0wd45hkj1oUQIjlQ4HI+QoMB50OcI1GwstILYUw1XcspbGl55jblypUzIXac+1Accx9+ZyIyivSnn37aiHK6h9N9m8KcMdRcpqWZ+W0onukVyPhqCm66rlNw01vKNjhwjsRtCIW3vZ5x4Gyca3Ec3Idlv1ivm0neVDdbCCHSgXs5XbZ79uxpXJGYAZMlw+iaZGczZzwS43/o9k1Y/ouZLz/44AM89thjmDt3rikFNnXqVPM7HzTt27c3rlJ8O8w3s3a8t50QhO5QTEhCNyc+ALjMmKRu3bqZB4cQGY28WS/jxTLfYez+tvjiyEOonSPwllm9+XeemlykEPUUcuVyuZazMf572jSXAOc95t13mfzBZfXmS0GW21HstxAiCZZthsLNnz/fzFsohMuWLYt27drhxRdfNPHcdA+naKZFmVDIMpksY6u5P0U3RS6tyZwjvf/++yazuC3eKaorV65skqVxP863uK1t0aYHIgU/5060dFNo0xWc8zM7QZotvO1s5xTUPC6FOK3dnGuxnjZrcPPFgBBCiHQguukmxbeqw4cPNw8ZvsFlwhA7WRofMrzp29SvX9/U5h42bBiGDh1qHjjMXM4bP2EyEGb0JOwrLrR6P/TQQ+bhQrH+1ltvmQcF3wRTdN+cFV2IjMQjRXZg1Yl7sf3v0pgU2g2tMTZZWb0Ty4qQELwZGGiSFXokZcu6RDbdzJctA6ZMAb77zvWdjfek/v1dAt3HJ3Y33tNoYUoNVENcCGfAJGaffPKJMQLw5T/FMcUvRfbXX39tEqAxKSznShTNnPcwURot0hS9LOdFcX748GEjdCl+Kd55r2GGcbqPr1692tyvFy5caPqgSzgTn1FgHz161Bgw6GVI93IelxVfKMT5nXMkGjuYJZ1im61GjRp47rnnzDg4Lopuztdk1RZCiHQouglv8rdyJ2fyj5uhyxJbQpQqVSr2LeytYNbyX3/9NZmjFSJ9QqPqKxW+xXNbXsCOi5VRBP3xAm6UEEtSVu9EEJRKwjHDw1judu1cjZnPmWxt5kxg927g2WeBIUOA5583Ajw0MhKV/P0RcflyqhxaNcSFyNhQ1FLs0ihA7zxm+KZwpfBmvPXevXuNIGeMNIU4XcYpclnLmnHdFM+2RZqWaApuCm1ap+262YsWLTKimpZzCmy6mtO6zfkV92OsNcu3UthTmLMPWsGZ+IxheozL5u+0nNOTkMs8JsPxaD3nnEqJ0IQQIgOIbiFE6nBXjrN4qexqjA9phbUYi71nx8HPL8bdw8rwJCl+vU8feHXogIJLlqDQ/PnIfvy4cT2P+eADXH7wQRS6fBmj27ZFpUKFUjam06fRbfFiM8GW6BYi40F3cFqmGZ9ND7xmzZqZpLA0CtDazHhtupHTO4ax1zQoUAxTcNvu4vQMZPw0Xc5/+uknI5RZWYUCmp5/jKmmKzkzjtM1nLAfWqXpZUgLOcU33cF5fFqy6dLOPim0Kahp6ablnN6DDOGjuGZIIC3dEtpCCJE4JLqFcBiP+23GhlMlsenv6uj3w9PY5j8D3llc2WZF0khpHDwDY1oDeJ1Z5q9cQcU1a3AAwNlt21CkRQtAiRuF8FgLN3PPrFixwiSDpVDmyz3msOH9Zvbs2cZazfW0KNMiTaHMvDe0ftPVnPHfe/bsMcKXVm5+0prN8l1t27Y1yddYJoxWacZu21Cg03WcopzimbW5uR+3oxWbLwOYnJa1vbnM3Dp8KcBtmOlcVm0hhEg6Et1COAwaM/rd9SVe3FUE+84Vx/+taIHPnljm7mFlSFItDt6yEBwWBq8NG1D23DkU+eMPYPJkgEmGmBm95I2660II5wptunzb5b2WL19uctlwmVZnuo/v27fPiFtatJctW2bWFSpUyAhdxmXzk3WxabWmRZoimNnOKYIp0pndnH0zaSy35TomNrMFNS3VFN20pLOONzOfs9GFnVZ29sn9mLCWYp+/SWALIUTKkegWwoHky3oRbdEdczKtxrRttVC72HHkyr7L3cPKsKRKHHyxYgjIlg0dFy3C8uLFUfTYMSA42NVKlQIeeghQ/VohHCm2d+7caRot1hTAhKKWyRBphWZcN125mdyV4phJYymQbWFMN3O6lW/YsMG4m3OfXbt2mfjr5s2bG0HOUl0U7xTNFN90GaeAZ2JaxnRTbNNNnLlvuMwSXxT07733nkmwRiHPUBXGiUtoCyFE6iLRLYRDKYvvMaTOEry7qR3+b2VLvNHwF3cPSQDYCmBH3booWqwYsGEDsGMHgztdyddY45viWzHaQjgCil+WKKX7Ny3OTJC2cuVKI8Qpoil2KXS7d++O0aNHm3WM3z5+/LgRxCypSndyuoIvXrzYxICzWgvFO63gXGaMNt3EGQvOHA+MBedvdDOnm/igQYNMXDfdxinM+Umx/vzzz5tx3H///UaoCyGESDskuoVwMH2rr0ZIeEUs2HsPJvw6GMBsdw9J2BQsCDzxBNCoEfDTT8C2bcDhw65WpoxLfMvtXIgMy/79+zF+/HiT7Ixim4nP6NbNT1qpKX5tV3BmCX/zzTfx8ssvG2s1s4zzk6XB6CJOkUyBbXP+/HljMaeIptWa7ugU2SwDxozltJLTkk1rOuOxGeNNSzf74iddySnuGTMuq7YQQqQ9Et1CODy+e3rrpQg644vdp4oAWI0LV+LX7xZuJm9eoFUrV2w3xff27cChQ67GWuAU3yVKuHuUQogkQBfwKVOmmHhrlvZiBvDq1asbSzYt0rRwM6M4xTEt07SG06Wcda+ZhZy/0xWcMd8UzxTZTH7GzwsXLpg4cCZdozBnpnL2Q8HNDOOM+V67dq2xfrNPxmuz3Jes2UII4T4kuoVwOLmyRWFFlwDcO6UH/rpcCcM3/gctqy1AzmxX3T00EZd8+YDHHwcaNgTWr3e5nR886GrlyrnEd/Hi7h6lEOJfOHnypHEH37Rpk0mURsHLsl0Ux4yZZuIzuo7T1ZwWblq66R7ORov1fffdZyzVLNdFSzQt1dyOFm1apQnLetHFnMeixZpimvsMGDDA1POmAH/66adjE6jRfV3WbCGEcC8S3UI4GE70SBaE4YWqg/Hupg+w71wFPD67NT5vNjleKbEcOXKYpD0iHYhvup3HFd8HDrgaM6hTfDMeXAiRLmBcNF3Fg4ODTSx1YGAgSpcubcp18R5Md/IGDRoY0UzBzXstY7JpraY1mzCBGgUy3cpZt9vf39+UEPPz8zPraM2mcGYSNIpxrqPwprDmMVmfm31SfDMDuRBCiPSFRLcQDiQq6qL5XLR4cey6fdf/64W1CDxaBY9Mb4WOaIesiDS/ZM2SBf369ZPwTi/kzw+0bu0S33Q7p/gOCXG1ChXgU6WKu0cohMdDsU3X8XXr1plkaSy1RWHMbOSsoU1LNuO42SiQmUmcVmtCwW27mXMflhOrWrWq+c7SYbR+M5ka27fffosmTZoYQb5jxw4jvCnsGevdqVMns43is4UQIv0i0S2EA4mOdgnp0qVaoEABl0vixb9CgD8C0bvIMHx5egwOxLTA8txbMazsJFyLPI6gfYvNZFCiO51RoMAN8U3L986dpsxYpeBg8JWKz/79QM2a7h6lEB4Zt717924jvOnCTQszRfWcOXOMaGbSMrqUM46bpcEWLlyIoUOHmqRp27ZtMxZyWrdpCadY5z4U7ozvZvw2Y8GZAI1lv5gFne7nFN5PPvmkSY5GV3KWGeMxhRBCpG8kuoVwMN7eBZA7t6u+tE/EGfN5T/4jeK9oAIbs7oodFyth5KHX8Eap8W4eqUiU+G7TJlZ8W7t2oY1lAV26AAsWAG+9BVSr5u5RCuF4GEvNmtsLFiwwLuK///67sUp37tzZCGNmEacoZmM8NrdnnDUt29y2f//+2Lp1q4nNZlZzxn0z4Vrv3r1NLHi3bt2M6GYCNQpq9vPKK6+YpGq0jNNizlraEttCCJFxkOgWwgOpli8U71WdjSG7umL3hbswJHgw2mGRu4clEltqrG1b7PX3x47589E5UyZkYhgBW/v2wIgRgFzPhUh1aJmmWKZwptXajtFmFnFatBmXTWFM129uSyHOeGuW6OJvjNOmJ9Hnn3+Ohg0bmszido1tupZTWFOkczt+vvrqqyhXrpxcxoUQwgFkdvcAhBDuoUreo/i4xnT4ZruAo5HF8Dl+wZ6zKk2VUbiSLx+6AgiaPx/o1MlVH27hQqBqVVcito0b3T1EIRwDk5qtWLHClOJiIjQKa5boojs446wZv003c4prWq9ZBozJzvhJAc5PxnfT5fzMmTNYunQpZsyYYdzL6TrOz2HDhuGll15Cq1atMGjQIJP1XIJbCCGcgUS3EB5M6Zyn8EnNabjb+xjCUQxtlg7C/M15ERYW9q+NE0eRPogsUwaYO9cV692hg0t8L1sGPPCAyxV9+XKAbuhCiGTBpGijRo0ysdUs5UWBTTdvxl7zfkh3b8KEaBTeTGpG4c1lZhRnmTB+0iJOV3K6oDOu+/Lly1i2bJnZjkKeIp0x2qyz/eCDD6quthBCOAi5lwvh4RTKfgFvlx6B4UHdcCT6IXRe3het0QfVEHDLfZjpvHDTpnd0nOI20KWcVu/gYOC//wVmzQJ+/hlo1cr126uvuizi3t7uHqkQ6R7GYVNcM2b7woULaN++PRYvXmzWMdaaMdrchtZuWrJZT5sx2lzXsmVL4zbOJGuXLl0yVnGW92rcuDHGjx9v+mPSNVq0uX+zZs2MSFc9bSGEcC4S3UIIZLf+Qjc8ijU5vsOmiEZYjNnIWaw9OhRZaQyncYmIOG0yndONUqRDKlQAPvsMGDkS+Ogj4NNPgd27gV69gEGDgD59gBdeAGghF0LEg5ZoZiVnWS4mM1u/fr0R0hTJdC+ngGb8NjOOcxtapwndx5mRvEePHuaTic7YGNNN1/GHHnrIWLRfe+01kxiN1nFaxFlfW0JbCCGcj0S3EMKQBVEYUHIall7Kgnl/PoDZx9vgvFUCA8qvgFemGHcPTySVYsWA994Dhg51Ce/Jk1njyGUFf/99oEUL4KWXgObNAS8vd49WCLdCa/WGDRvM58yZM40rOGO19+/fb5KZ0dWbVmuKa9bkfv31143V+9ixYybpGV9CUkDTAs7EabVq1TJJ17gf+6KA5/oSJUqYdRLaQgjhWUh0CyFiyZzJwgtl16CI93l8fKAlvg2rjdNX8mBE5YXw8Ypy9/BEcsiXDxgyBBg82BXf/cknwOrVwIoVrlaiBNC1K8KaNkXY9djUlMKaxHSVFSKjZCRn3DaFM5dLlSqFokWLmvhsuomfO3fOxHDTQm1vwxJf999/v7F60/pN93LGah86dAh+fn6mPNgTTzxh3MZLly6tfw9CCOHhSHQLIf5B2+K/m1jvd4La47e/KmDA9l4YU3UOCmQLd/fQRHKhNZtZzdlCQlzW7xkzgD//BMaNg9+4cTgOYD6AJQCCU3CoHD4+CNq3T0JDpGsonH/88UeTgZxZyWnJpis5k57de++9aNOmjYnjJswwXrFiReM6TpHNeG1as2n1pjBnnPfp06dRvnx5dO/e3ZQTo+VbCCGEIBLdQogEaeC7Hx9Wn4n/7O6C4PBi6LvtaYyrGoD8CHP30MRNpYySRdeuyNShA/L+9BOyzpuHolu2oBZg2jgAl/Plw9+lSuF8qVKIKFTIlRU9MeM5fRrdFi82ZZEkuoXN5MmTTaP1mLAc1vDhw9GCYQ53EIpqxmyzsaZ2mTJljPhmEjTW0CYU0XQbDw4ONtZsCu2dO3eiV69epnIDRTrdyCnUmTSNmca5vkiRIqhevbr5FEIIIeIi0S2EuCWV8xzDxBrT8Pqubjh2uSD6bXsaQ8tMdPewBICw8HBQBnfr1i1V+isIYGOdOqjw11/A4cPwOX8ePtu3o+j27QDjT5l4rXRpV8uTJ1WOKTwHxjKPHTvWWIIpar/44gu0bt3aCFoK8DsBrdMU2xwHXcrpKt6lSxcjnimuac3mOpb4YoZxtvr16xtrON3N6YJOV/GOHTuamGy6ljMjee3ate/I+IUQQmRcJLqFEP9KcZ9zmFTjc/xnd2fsuVASw0MGoC02oiFUq9udnI+MBKtvT2zcGPXKl09RXytCQvBmYCAOlyyJCi1bApGRLhf0/ftdnxcvAjt2uBph7LctwBkTThGeSEu48Ewef/zxeMujR482lu9ff/31johuWrhpZafg3rRpk8kkTmixplWb46hTp44R5fyNlmu6iDM2m+KaLwoY082M49WqVcPZs2fRqFEjuZALIYRIFBLdQojbkjdrBD6o9gVGBbXHhrP+WICFyHTsfwAC3T00j6dc/vyo6eeXoj6CzpyJv4K1vKtWdbXoaODIEWP9Bl2Djx8HaA1n27LFtX2uXC7xXaIEcnl7I2eKRiOcDstsLViwwMRQ16tXL8FtaHGOW5aQVueUsHfvXiOkKa4potkIBTa/U3jTYs3M4hTezDZON3Ja6IcMGWLEdlRUFBo0aGB+oyBXBnIhhBCJRaJbCJEosntFY+Q98/HfvQ9h9ZkHMS/4FU6FYVk73T00kZbQIli2rKsRWsEpwg8dcpUgO3kSCA8H9u0zrYL5qwCi2rQB7rsPqF79RmOMtyziHsuuXbuMyGYmcLpwM0kZa1knxJgxYzCSteZTifPnz5tmEx0dbRKmHTlyxLi807X88uXLZpnZyyms/f39jfWb4p/lvphcTfHaQgghkoNEtxAi0bBe90slAxB55gf8iLcAjMD/tn2HplV+RZbMquXtEdAKXrGiq5GrV13W72PHTCb0qNBQZLt0Cd5HjwJsX38dv3xZtWrMogX4+wN0zeVn8eJA5sxuOyVxZ2D2byYto8V54cKF6Nmzp4mXTkh4v/HGGxg4cGA8Szety8mFIjoiIsJ8p6s43cqZhZwx5SztxfrbdCXnWGjV5rHatWtn3McltIUQQqQUiW4hRJKgofIhjETRCnkxL/hlrPzjEbSffxe+enIhfLJGu3t44k6TNStw992uxmRVYWFoPnUqNnzyCcpT5Nix4Hv30twIrF/vanHJmdMl4inA7cZlxqr7+LjnvESqky1bNpQrV858Z7mt33//HRMmTMCUKVP+sS3jp9lSC4ppurMzYdrGjRvh5eVlLNsc06pVq9C5c2eTSZ0vBPLkyWOs3GVt7w4hhBAihUh0CyGSRYPiyzAveD2yZp6Hpfv90ezLHvim81co4HPZ3UMTbuY0gIt16wI1a95YGRXF+mYuAX7dFd00Jmq7dAnYutXVbn7DQ5d027JeocKN74whl3U8Q0Prcty47bSE1mq6jQ8dOhTvvvuuEd50L+cYKMhbtWpltmEJMCGEECK1kegWQqSAJRjT4G28s+k/2HD0LjSc0Rurus5GybwpS3okHEi2bDdiu+NC93QmaYsrxNko0GkZZ/w423ffxd+PFnCK8LhC3Bbm1+sti/QD3cVpSWbt9osXL2LOnDlYt24dVq9efcfGUKVKFeM6Pn78eJPJnFZtup0zeRrHJTdyIYQQaYVEtxAiWYSzjBTr73ptxKJW76Hrypex93Rh1P2sF75q+T9UyB8Wu22OHDmQV0JI3Mo93RbPTzxxY71lAcyqzrJlcVtwMHDgAHD5cvwyZnGheLpZiFepApQqhdCjR3Hm5mztycTX19eINXF7mAm8R48eCAsLM/cClt2i4G7WrNkdHQeFNRsTpAkhhBB3ColuIUSSiIpyie3fN282nz8EBsIPgeiEzzEbqxF2qRKaL3gZnfE47sJGs03WLFnQr18/CW+ReOhaXqiQqzVoEP83ljGjdTyuELe/nzjhyqjOdlPseEyePDgSHo6tMTHYBmA7S0nR2J7MIebw8UHQvn0S3ong888/d/cQhBBCCLch0S2ESBLR0ZHm09e3GnBmJ0qXaox7CpQ362pHf4Z3DvbFvktlEZApEINLf4aq2dYiaN9ikzlYottzCKJ7eCrBuN8Ek2oVK+ZqjRvHrsp88SK8Q0OR/cgReF9v2f/4A96HDyPzhQtoCJhmE5M5MyLz50dEoUK4VLiwaVy+XWmzoNOn0W3xYmM1l+gWQgghxL8h0S2ESBbZsuYyn97e+ZE7t5/5nhvA+Bpz8fbe9vjlr4oYc+hFvHRXbhTEYjePVtwpwsLDQbnarVu3VOuT/Vkp7CMrAH8ANQCMrlgRJZjA68QJZI6MRI6zZ03zZSw5ocCnmGeyNjaWNGOGdSGEEEKIZCDRLYRIVby9rmJUlXn4ILgVVp6oiYmhPfAQQvCcdcrdQxN3gPORkUYgT2zcGPVY8iuFrAgJwZuBganSn91Xl3vuQYmqVV1x43//DYSFxdYZNzXHKcjpvs5mQ+u3LcBZL5r7CiGEEEIkAoluIUSq45UpBoMrfAPfbBfxZWgjhKE2YqyV7h6WuIOUy58fNf1cHhApIeh60rPU6M/uKxa6kOfL52qVKrnWxcQw69cNEc7G/c6dc7Vdu8xm93p54UcAxSdMANq0AerVA4oWTdH4hBBCCOFMJLqFEGkC9Uyf0oHw89qHLIdfgVfm7u4ekhC3h7W/KZ7ZatVyrYuMjC/C//zTuKU/yN9mzXI1xp4XK4ZLVaviUrVq5jOCWdOZnT2RKBu6EEII4UwkuoUQaUqD/Fux5fBldw9DiOTj7Q2ULetqxLKwbssWzFq+HHUB1GMNaIaCHz9uWoHrtaf5V88c/7/EaSf/5TDKhi6EEEI4E4luIYQQIilkyoRj2bNjBoBajRsjunx57IyKQs5Tp1zt5Enz6XPlyj+ypV/JlctkSo/w9TXtsq8voim2lQ1dCCGEcCwS3UIIIUQyiRdrfvfdN35gorWzZ13u6EePuj5PnUL28HDT8sdN0pY7N8rkz49ed374QgghhLgDZEY6YNKkSShVqhS8vb1Rt25dbNq06V+3X7BgAfz9/c32VatWxYoVK+L9blkWhg8fDj8/P/j4+KBp06YICQmJt81ff/2Frl27Ik+ePMiXLx+efvpphIeHp8n5CSGE8MCkBr6+wL33Ao8/Drz4IjBkCNC9O9C0KVClClCwoGvbixeRLzQUNd09ZiGEEEI4U3TPmzcPAwcOxIgRI7B161ZUr14djz76KE4xe2wCbNy4EZ07dzYiedu2bWjTpo1pu3fvjt3mvffew//+9z98+umn+O2335AzZ07TZyST4VyHgnvPnj1Ys2YNvv32W6xfvx7PPffcHTlnIYQQHgjrf5cpAzzwAPDkk0C/fsAbbwC9e+No/fqY7+7xCSGEEMKZovvDDz/Es88+i969e6Ny5cpGKOfIkQPTp09PcPsJEyagefPmGDx4MCpVqoRRo0ahZs2amDhxYqyV+6OPPsKwYcPQunVrVKtWDbNmzcLx48exZMkSs01QUBBWrVqFadOmGct6gwYN8PHHH2Pu3LlmOyGEEOKOkC0bcNddOF2lCn5291iEEEII4TzRHRUVhS1bthj379gBZc5sln/5hXle/wnXx92e0Iptb3/48GGcOHEi3jZ58+Y14trehp90Ka9du3bsNtyex6ZlXAghhBBCCCGEyPCJ1Jil9dq1ayhSpEi89Vzet29fgvtQUCe0Pdfbv9vr/m2bwoULx/s9S5YsKFCgQOw2N3PlyhXTbP7++2/zeeHCBaSUiIgI8xl07jAir1297fZ/X/gTHOWVcyHIey3+8UMu/Bmvr3/bNjH93txfYseRUN+nr39PzHneru+442IJnsSOI6G+U+sck3qeiek7ueeZ1teS256NOJGo84y8ch5H+LIrLAy+UVEJbsPMzWTX6dPwOcKtk0967Ss9jy299uVJ57n/zBnzydwiKX2u2PvT88sp2OeSGs9cIYQQIrVI9DPXciPHjh3j6KyNGzfGWz948GDrvvvuS3CfrFmzWnPmzIm3btKkSVbhwoXN9w0bNpg+jx8/Hm+bDh06WB07djTfR48ebVWoUOEffRcqVMj65JNPEjzuiBEjTL9qampqamoZoR09etRyCjwXd///VFNTU1NTQzKfuW61dPv6+sLLywsnT9KGdwMuFy1aNMF9uP7ftrc/uY7Zy+Nucy+zyF7f5uZEbdHR0Saj+a2O+8Ybb5iEbzYxMTFm+4IFCyITs9Sm8A1JyZIlcfToUZNN3el42vl64jl72vl64jl72vlmpHPm2/aLFy+iWLFicAo8F/5/z507t565KcSTz9+Tz93Tz1/n7pnnfifOP7HPXLeK7mzZsqFWrVpYu3atyUBui1ku92NW1wSoV6+e+X3AgAGx65iBnOtJ6dKljXDmNrbI5v9sxmq/yJIt1/s4f/68iSfn8ckPP/xgjs3Y74TInj27aXFhXHhqwj8ET/rH4Gnn64nn7Gnn64nn7Gnnm1HOmblMnARzrpQoUcLjrmNa4snn78nn7unnr3P3zHNP6/NPzDPXraKb0Hrcs2dPk9TsvvvuM5nHL126ZLKZkx49eqB48eIYM2aMWe7fvz8aNWqEDz74AI899pjJOL5582ZMnTrV/M434BTk77zzDsqXL29E+JtvvmnePtjCnlnPmQGdWdOZLf3q1atG5D/11FOOsgwIIYQQQgghhHAvbhfdnTp1wunTpzF8+HCTxIzWaZbzshOhhYaGmjfcNvXr18ecOXNMSbChQ4caYc1SYFWqVInd5rXXXjPCnXW3adFmSTD26e3tHbtNQECAEdpNmjQx/T/55JOmtrcQQgghhBBCCOEY0U0ofm/lTr5u3bp/rOvQoYNpt4LW7rffftu0W8FM5RTv6QG6rY8YMeIf7utOxdPO1xPP2dPO1xPP2dPO11PP2Yl4+nX05PP35HP39PPXuXvmuaen88/EbGpuHYEQQgghhBBCCOFQbvhtCyGEEEIIIYQQIlWR6BZCCCGEEEIIIdIIiW4hhBBCCCGEECKNkOh2I5MnT0a1atVi68axfvjKlSvdPaw7xtixY2NLvDmVt956y5xj3Obv7w8nc+zYMXTr1g0FCxaEj48Pqlatasr6OZVSpUr94xqz9e3bF07k2rVrpgwjyzHy+pYtWxajRo2Ck9ODXLx40dyn7r77bnPOrKLx+++/u3tYIpWeqwsWLDD3ZVY44f1qxYoV8JTznzlz5j/uXXErvXjCHMNJ1z8p5+6ka5+cuZaTrntSz99J1z65804m6q5Zs6ZJrlauXDnz/8Qjspd7KiVKlDA3RpY944T1iy++QOvWrbFt2zbcc889cDKcsE6ZMsVMDpwOr+X3338fu5wli3P/2Z07dw4PPPAAGjdubCZ6hQoVQkhICPLnzw8n/y1TiNrs3r0bzZo1+9cKCxmZcePGmYk971f82+aDrXfv3sibNy9efvllOJFnnnnGXNcvv/wSxYoVw+zZs9G0aVPs3bsXxYsXd/fwRAqeqxs3bkTnzp0xZswYtGrVylQ1adOmDbZu3RqvFKmT5xUU5/v3749d5gTcU+YYTrv+SZ1fOenaJ2Wu5cTrntS5plOu/blkzDsPHz6Mxx57DC+88IIpIb127VrznPfz88Ojjz6adoNl9nKRfsifP781bdo0y8lcvHjRKl++vLVmzRqrUaNGVv/+/S2nMmLECKt69eqWp/D6669bDRo0sDwZ/j2XLVvWiomJsZzIY489ZvXp0yfeunbt2lldu3a1nEhERITl5eVlffvtt/HW16xZ0/rPf/7jtnGJ1HmuduzY0fxNx6Vu3brW888/b3nC+c+YMcPKmzev5alzDKdd/6Scu5OufVLnWk677kk9fydd+9eTMe987bXXrHvuuSfeuk6dOlmPPvqolZbIvTydQEvZ3LlzcenSJeMO5mTodss3TLQUeQJ840brWJkyZdC1a1eEhobCqXzzzTeoXbu2sfIWLlwYNWrUwGeffQZPISoqylhB+/Tpk2HfGt8OulbzrXBwcLBZ3rFjB37++We0aNECTiQ6Otrcn292vaMLG89bZOzn6i+//PKPZxEtHVzvKfOK8PBwEzpRsmRJYxXfs2cPPGWO4bTrn9T5lZOufVLmWk677smZazrl2n+TjHmnu66/c/1cMwi7du0yD8PIyEjkypULixcvRuXKleFUOAGg+46nxEPWrVvXxIlUrFgRYWFhGDlyJBo2bGhcVXPnzg2ncejQIeN6PHDgQAwdOtRcZ7ocZ8uWDT179oTTWbJkCc6fP49evXrBqQwZMgQXLlww8WJeXl5mYj969GjzkHci/HfKezTj1itVqoQiRYrgq6++Mg9nxoGJjP1cPXHihLmmceEy13vC+fPZNH36dOOK/Pfff+P99983L9Y4AaerutPnGE66/kk9dydd+6TOtZx03ZNz/k669oeSMe+81fXn3Oby5cvmpXqakKZ2dHFbrly5YoWEhFibN2+2hgwZYvn6+lp79uyxnEhoaKhVuHBha8eOHbHrnO5efjPnzp2z8uTJ49gQgqxZs1r16tWLt+7//u//rPvvv9/yBB555BGrVatWlpP56quvrBIlSpjPnTt3WrNmzbIKFChgzZw503IqBw4csB588EFmijOu5nXq1DHu9P7+/u4emkjhc5X3rDlz5sRbN2nSJPOs8sR5RVRUlAmPGTZsmOUJcwynXP/UmF9l5Guf1LmWU657as01M/K1z5qMeSdDMN59991465YvX26e8QwpSytk6XYzfBNjW0tq1apl3tBMmDDBJMFwGlu2bMGpU6dMtkAbWsnWr1+PiRMn4sqVK8Zy5mTy5cuHChUq4MCBA3AiTEJxs0WF1sGvv/4aTufIkSMmicmiRYvgZAYPHmys3U899ZRZZpZQnjsT0jjVm4EZ2n/88Ufjpss34fw779Spk3HjExn7uVq0aFGcPHky3jouc70nziuyZs1q3DMz4jMqOXMMp1z/1JhfZeRrn9S5llOue2rNNTPytfdLxrzzVtefyeXSzMqtkmHpj5iYGHNzdCJNmjQxbm/bt2+PbYzDoFsqvztdcNsxNAcPHjQ3CSfCDJJxs2ESxv4ybsjpzJgxw8QTMZ7OyURERCBz5viPDv7b5b3L6eTMmdP822W21NWrV5s4OJGxn6t0w2aOgrisWbPGUblVkjKvoFDjczojPqOSM8dwyvVPjflVRr72SZ1rOeW6p9ZcMyNf+weSMe902/VPMxu6uC10+/rxxx+tw4cPGzdNLmfKlMn67rvvLE/B6e7lgwYNstatW2eu8YYNG6ymTZsaV79Tp05ZTmTTpk1WlixZrNGjRxv3xoCAACtHjhzW7NmzLSdz7do166677jJZNJ1Oz549reLFi5ts3vy7XrRokfmbZjZQp7Jq1Spr5cqV1qFDh8z9mVlimemWLnkiYz1Xu3fvbtbZ8L7Me9b7779vBQUFmSzAdFfctWuX5QnnP3LkSGv16tXWwYMHrS1btlhPPfWU5e3t7Zgwt5vnGE6//kk5dydd+9vNtZx+3ZN6/k669psSMe/kufP/gQ2f5dxm8ODB5voztIChY3zWpyUS3W6EZXfuvvtuK1u2bFahQoWsJk2aeJTg9gTRzRIEfn5+5hpTqHCZ8aFOZtmyZVaVKlWs7Nmzm5jXqVOnWk6HDy++w9y/f7/ldC5cuGD+zfIlAx/SZcqUMaWzGEfqVObNm2fOk/+OixYtavXt29c6f/68u4clkvFc5TOHL47iMn/+fKtChQpmH5aRYWyfp5z/gAEDzL9lbl+kSBGrZcuW1tatWy2nzjGcfv2Tcu5Ouva3m2s5/bon9fyddO0TM+/kufP/QVwCAwOte++91/w/4POdZdTSmkz8T9ra0oUQQgghhBBCCM9EMd1CCCGEEEIIIUQaIdEthBBCCCGEEEKkERLdQgghhBBCCCFEGiHRLYQQQgghhBBCpBES3UIIIYQQQgghRBoh0S2EEEIIIYQQQqQREt1CCCGEEEIIIUQaIdEthBBCCCGEEEKkERLdQgi3UqpUKXz00UfuHoYQQgghhBBpgkS3EEIIIYQQDqVXr15o06aN+b5+/Xo8/vjjKFasGDJlyoQlS5a4e3hCeAQS3UIIIYQQQngAly5dQvXq1TFp0iR3D0UIj0KiWwiRbKZOnWrelsfExMRb37p1a/Tp0wcHDx4034sUKYJcuXKhTp06+P7772/Z3x9//GHevG/fvj123fnz5826devWxa7bvXs3WrRoYfpk3927d8eZM2fS6CyFEEIIZ8Bn5zvvvIO2bdu6eyhCeBQS3UKIZNOhQwecPXsWgYGBsev++usvrFq1Cl27dkV4eDhatmyJtWvXYtu2bWjevLlxawsNDU32MSnCH374YdSoUQObN282xzp58iQ6duyYSmclhBBCCCFE6pElFfsSQngY+fPnN2/N58yZgyZNmph1CxcuhK+vLxo3bozMmTMbNzabUaNGYfHixfjmm2/Qr1+/ZB1z4sSJRnC/++67seumT5+OkiVLIjg4GBUqVEiFMxNCCCGEECJ1kKVbCJEiaNH++uuvceXKFbMcEBCAp556yghuWrpfffVVVKpUCfny5TPu4EFBQSmydO/YscNY1tmX3fz9/c1vdGcXQgghhBAiPSFLtxAiRdBd3LIsLF++3MRs//TTTxg/frz5jYJ7zZo1eP/991GuXDn4+Pigffv2iIqKSrAvCnXC/myuXr0abxsKeR5z3Lhx/9jfz88vlc9OCCGEEEKIlCHRLYRIEd7e3mjXrp2xcB84cAAVK1ZEzZo1zW8bNmwwpUrshC0UzEyWdisKFSpkPsPCwowLOYmbVI2wb1rWWd87SxbdwoQQQgghRPpG7uVCiFRxMaelm7HV/G5Tvnx5LFq0yAhnuoV36dLlH5nO40JL+P3334+xY8caN/Qff/wRw4YNi7dN3759TbK2zp074/fffzcu5atXr0bv3r1x7dq1ND1PIYQQIiPDl998JtsvtA8fPmy+pyTsSwhxeyS6hRAphtnECxQogP379xthbfPhhx+aZGv169c3LuGPPvporBX8VlC4R0dHo1atWhgwYIApbRIXliijBZ0C+5FHHkHVqlXNdowZt93ThRBCCPFPWPWDnmS2N9nAgQPN9+HDh7t7aEI4mkxW3OBJIYQQQgghhBBCpBoyCwkhhBBCCCGEEGmERLcQQgghhBBCCJFGSHQLIYQQQgghhBBphES3EEIIIYQQQgiRRkh0CyGEEEIIIYQQaYREtxBCCCGEEEIIkUZIdAshhBBCCCGEEGmERLcQQgghhBBCCJFGSHQLIYQQQgghhBBphES3EEIIIYQQQgiRRkh0CyGEEEIIIYQQaYREtxBCCCGEEEIIgbTh/wG/2Ajmm7z8MgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "f_biaxial = DeformationGradientGenerator(seed=42, size=SIZE).generate(mode=\"biaxial\")\n", + "df_biaxial = create_dataframe(f_biaxial)\n", + "plot_invariants_distribution(df_biaxial)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "hyper-surrogate-lMkffKrT-py3.11", + "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.11.2" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/hyper_surrogate/deformation_gradient.py b/hyper_surrogate/deformation_gradient.py index a0a5aa9..e485575 100644 --- a/hyper_surrogate/deformation_gradient.py +++ b/hyper_surrogate/deformation_gradient.py @@ -260,6 +260,7 @@ def generate( stretch_max: float = 3.0, shear_min: float = -1, shear_max: float = 1, + mode: str | None = None, ) -> Any: """ Generates a random deformation gradient. @@ -269,11 +270,39 @@ def generate( stretch_max (float): Maximum value for stretch. Default is 3.0. shear_min (float): Minimum value for shear. Default is -1. shear_max (float): Maximum value for shear. Default is 1. + mode (str): Mode for deformation gradient generation. + Options are 'uniaxial', 'shear', 'biaxial', or None. + Default is None. Returns: Any: Generated random deformation gradient. - """ + + def generate_uniaxial() -> Any: + u = self.generator.uniform(stretch_min, stretch_max) + return self.rotate(self.uniaxial(u), self.generate_rotation()) + + def generate_shear() -> Any: + s = self.generator.uniform(shear_min, shear_max) + return self.rotate(self.shear(s), self.generate_rotation()) + + def generate_biaxial() -> Any: + b1 = self.generator.uniform(stretch_min, stretch_max) + b2 = self.generator.uniform(stretch_min, stretch_max) + return self.rotate(self.biaxial(b1, b2), self.generate_rotation()) + + # Map modes to corresponding functions + mode_map = { + "uniaxial": generate_uniaxial, + "shear": generate_shear, + "biaxial": generate_biaxial, + } + + # If mode is specified, use the corresponding function + if mode in mode_map: + return mode_map[mode]() + + # Default: combine all modes u, s, b1, b2 = ( self.generator.uniform(stretch_min, stretch_max), self.generator.uniform(shear_min, shear_max), @@ -290,11 +319,7 @@ def generate( self.generate_rotation(), self.generate_rotation(), ) - - # rotate deformation gradients fu = self.rotate(fu, r1) fs = self.rotate(fs, r2) fb = self.rotate(fb, r3) - - # Compute deformation gradient return np.matmul(np.matmul(fb, fu), fs) diff --git a/hyper_surrogate/kinematics.py b/hyper_surrogate/kinematics.py index a8a0a23..7f57d36 100644 --- a/hyper_surrogate/kinematics.py +++ b/hyper_surrogate/kinematics.py @@ -4,18 +4,28 @@ class Kinematics: - """A class that provides various kinematic methods.""" + """ + A class that provides various kinematic methods. + + Attributes: + None: This class does not have any attributes. + + Methods: + jacobian: Compute the Jacobian of the deformation gradient. + invariant1: Calculate the first invariant of each tensor in the batch. + invariant2: Calculate the second invariant of the deformation gradient tensor. + invariant3: Calculate the third invariant of the deformation gradient tensor. + right_cauchy_green: Compute the right Cauchy-Green deformation tensor for a batch of deformation gradients. + left_cauchy_green: Compute the left Cauchy-Green deformation tensor for a batch of deformation gradients. + rotation_tensor: Compute the rotation tensors. + pushforward: Forward tensor configuration. + principal_stretches: Compute the principal stretches. + principal_directions: Compute the principal directions. + + """ - def __init__(self) -> None: - """ - Initialize the Kinematics object. - - Returns: - None - """ - pass - - def jacobian(self, f: np.ndarray) -> Any: + @staticmethod + def jacobian(f: np.ndarray) -> Any: """ Compute the Jacobian of the deformation gradient. @@ -28,45 +38,45 @@ def jacobian(self, f: np.ndarray) -> Any: return np.linalg.det(f) @staticmethod - def invariant1(F: np.ndarray) -> Any: + def invariant1(f: np.ndarray) -> Any: """ Calculate the first invariant of each tensor in the batch. Args: - F: 4D tensor of shape (N, 3, 3, 3). + f: 4D tensor of shape (N, 3, 3, 3). Returns: The first invariant of each tensor in the batch. """ # einsum - return np.einsum("nii->n", F) + return np.einsum("nii->n", f) @staticmethod - def invariant2(F: np.ndarray) -> Any: + def invariant2(f: np.ndarray) -> Any: """ Calculate the second invariant of the deformation gradient tensor. Args: - F: 4D tensor of shape (N, 3, 3, 3). + f: 4D tensor of shape (N, 3, 3, 3). Returns: The second invariant. """ # use einsum to calculate the second invariant: 0.5 * (np.trace(F) ** 2 - np.trace(np.matmul(F, F))) - return 0.5 * (np.einsum("nii->n", F) ** 2 - np.einsum("nij,nji->n", F, F)) + return 0.5 * (np.einsum("nii->n", f) ** 2 - np.einsum("nij,nji->n", f, f)) @staticmethod - def invariant3(F: np.ndarray) -> Any: + def invariant3(f: np.ndarray) -> Any: """ Calculate the third invariant of the deformation gradient tensor. Args: - F: The deformation gradient tensor as a 3D array. + f: The deformation gradient tensor as a 3D array. Returns: The third invariant. """ - return np.linalg.det(F) + return np.linalg.det(f) @staticmethod def right_cauchy_green(f: np.ndarray) -> Any: @@ -110,19 +120,6 @@ def left_cauchy_green(f: np.ndarray) -> Any: # and 'jk' are the indices for the second matrix (transposed to 'kj' for multiplication). return np.einsum("nij,nkj->nik", f, f) - @staticmethod - def rotation_tensor(f: np.ndarray) -> Any: - """ - Compute the rotation tensors. - - Args: - f (np.ndarray): The deformation gradients. batched with shape (N, 3, 3). - - Returns: - np.ndarray: The rotation tensors. batched with shape (N, 3, 3). - """ - return np.einsum("nij,njk->nik", f, np.linalg.inv(f)) - @staticmethod def pushforward(f: np.ndarray, tensor2D: np.ndarray) -> Any: """ @@ -161,3 +158,41 @@ def principal_directions(self, f: np.ndarray) -> np.ndarray: np.ndarray: The principal directions. """ return np.linalg.eig(self.right_cauchy_green(f))[1] + + def right_stretch_tensor(self, f: np.ndarray) -> Any: + """ + Compute the right stretch tensor. + + Args: + f (np.ndarray): The deformation gradient. + + Returns: + np.ndarray: The right stretch tensor. + """ + v, vv = np.linalg.eig(self.right_cauchy_green(f)) + return np.einsum("...ij,...j->...ij", vv, v) + + def left_stretch_tensor(self, f: np.ndarray) -> Any: + """ + Compute the left stretch tensor. + + Args: + f (np.ndarray): The deformation gradient. + + Returns: + np.ndarray: The left stretch tensor. + """ + v, vv = np.linalg.eig(self.left_cauchy_green(f)) + return np.einsum("...ij,...j->...ij", vv, v) + + def rotation_tensor(self, f: np.ndarray) -> Any: + """ + Compute the rotation tensors. + + Args: + f (np.ndarray): The deformation gradients. batched with shape (N, 3, 3). + + Returns: + np.ndarray: The rotation tensors. batched with shape (N, 3, 3). + """ + return np.einsum("nij,njk->nik", f, np.linalg.inv(self.right_stretch_tensor(f))) diff --git a/hyper_surrogate/materials.py b/hyper_surrogate/materials.py index 35db3d7..3ec36be 100644 --- a/hyper_surrogate/materials.py +++ b/hyper_surrogate/materials.py @@ -126,4 +126,8 @@ def __init__(self) -> None: @property def sef(self) -> Expr: - return (self.invariant1 - 3) * Symbol("C10") + (self.invariant2 - 3) * Symbol("C01") + return ( + (self.invariant1 - 3) * Symbol("C10") + + (self.invariant2 - 3) * Symbol("C01") + + 0.25 * Symbol("KBULK") * (self.invariant3 - 1 - 2 * log(self.invariant3**0.5)) + ) diff --git a/hyper_surrogate/reporter.py b/hyper_surrogate/reporter.py index f3f4e34..2aa7529 100644 --- a/hyper_surrogate/reporter.py +++ b/hyper_surrogate/reporter.py @@ -33,10 +33,8 @@ class Reporter: "visualize_determinants", ] - def __init__(self, tensor: np.ndarray, save_dir: Path): + def __init__(self, tensor: np.ndarray): self.tensor = tensor # tensor is a np.array (N,3,3) - self.save_dir = save_dir - # Path.mkdir(Path(self.save_dir), parents=True, exist_ok=True) self.pdf_metadata = { "Title": "Generation Session Report", "Author": "João Ferreira", @@ -87,13 +85,13 @@ def generate_figures(self) -> list[matplotlib.figure.Figure]: fig_list.append(fig_item) return fig_list - def create_report(self, layout: str = "combined") -> None: + def create_report(self, save_dir: Path, layout: str = "combined") -> None: """Create final pdf report.""" fig_list = self.generate_figures() fig_list_pbar = tqdm(fig_list, total=len(fig_list), leave=False) fig_list_pbar.set_description(f"Creating {layout} pdf report.") if layout == "combined": - with PdfPages(Path(self.save_dir, "report.pdf"), metadata=self.pdf_metadata) as pp_combined: + with PdfPages(Path(save_dir, "report.pdf"), metadata=self.pdf_metadata) as pp_combined: for fig in fig_list_pbar: fig_list_pbar.update(1) title = fig.axes[0].get_title() @@ -101,7 +99,7 @@ def create_report(self, layout: str = "combined") -> None: else: for fig in fig_list_pbar: title = fig.axes[0].get_title() - file_name = Path(self.save_dir, f"{title}.pdf") + file_name = Path(save_dir, f"{title}.pdf") with PdfPages(file_name, metadata=self.pdf_metadata) as pp_single: fig.savefig(pp_single, format="pdf", bbox_inches="tight") fig_list_pbar.update(1) diff --git a/hyper_surrogate/symbolic.py b/hyper_surrogate/symbolic.py index ea63c3c..54a49d0 100644 --- a/hyper_surrogate/symbolic.py +++ b/hyper_surrogate/symbolic.py @@ -17,7 +17,7 @@ class SymbolicHandler: """ - A class that handles symbolic computations using SymPy. + A class that handles symbolic computations for Continuum Mechanics Hyperelastic Frameworks using SymPy. Attributes: c_tensor (Matrix): A 3x3 matrix of symbols. diff --git a/hyper_surrogate/umat_handler.py b/hyper_surrogate/umat_handler.py index cbe7563..36c4fed 100644 --- a/hyper_surrogate/umat_handler.py +++ b/hyper_surrogate/umat_handler.py @@ -26,7 +26,6 @@ def common_subexpressions(tensor: sym.Matrix, var_name: str) -> List[str]: Perform common subexpression elimination on a vector or matrix and generate Fortran code. Args: - vector (list): The symbolic vector or matrix to process. var_name (str): The base name for the variables in the Fortran code. Returns: diff --git a/mkdocs.yml b/mkdocs.yml index ba0b1d5..cb8076a 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -9,13 +9,16 @@ copyright: Maintained by Florian. nav: - Home: index.md + - Installation: installation.md - Modules: modules.md + - Tutorial1: tutorial1.ipynb plugins: - search - mkdocstrings: handlers: python: collector: griffe + - mknotebooks theme: name: material feature: @@ -50,3 +53,21 @@ markdown_extensions: permalink: true - pymdownx.arithmatex: generic: true + - pymdownx.superfences: + - pymdownx.inlinehilite + - pymdownx.highlight + - pymdownx.extra + - pymdownx.caret + - pymdownx.mark + - pymdownx.smartsymbols + - pymdownx.tasklist + - pymdownx.emoji + - pymdownx.magiclink + +extra_javascript: + - https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.js + - https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/contrib/auto-render.min.js + - custom.js + +extra_css: + - https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.css diff --git a/poetry.lock b/poetry.lock index 713dd36..164c216 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,161 @@ -# This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand. + +[[package]] +name = "anyio" +version = "4.7.0" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +optional = false +python-versions = ">=3.9" +files = [ + {file = "anyio-4.7.0-py3-none-any.whl", hash = "sha256:ea60c3723ab42ba6fff7e8ccb0488c898ec538ff4df1f1d5e642c3601d07e352"}, + {file = "anyio-4.7.0.tar.gz", hash = "sha256:2f834749c602966b7d456a7567cafcb309f96482b5081d14ac93ccd457f9dd48"}, +] + +[package.dependencies] +exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} +idna = ">=2.8" +sniffio = ">=1.1" +typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""} + +[package.extras] +doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx_rtd_theme"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21)"] +trio = ["trio (>=0.26.1)"] + +[[package]] +name = "appnope" +version = "0.1.4" +description = "Disable App Nap on macOS >= 10.9" +optional = false +python-versions = ">=3.6" +files = [ + {file = "appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c"}, + {file = "appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee"}, +] + +[[package]] +name = "argon2-cffi" +version = "23.1.0" +description = "Argon2 for Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "argon2_cffi-23.1.0-py3-none-any.whl", hash = "sha256:c670642b78ba29641818ab2e68bd4e6a78ba53b7eff7b4c3815ae16abf91c7ea"}, + {file = "argon2_cffi-23.1.0.tar.gz", hash = "sha256:879c3e79a2729ce768ebb7d36d4609e3a78a4ca2ec3a9f12286ca057e3d0db08"}, +] + +[package.dependencies] +argon2-cffi-bindings = "*" + +[package.extras] +dev = ["argon2-cffi[tests,typing]", "tox (>4)"] +docs = ["furo", "myst-parser", "sphinx", "sphinx-copybutton", "sphinx-notfound-page"] +tests = ["hypothesis", "pytest"] +typing = ["mypy"] + +[[package]] +name = "argon2-cffi-bindings" +version = "21.2.0" +description = "Low-level CFFI bindings for Argon2" +optional = false +python-versions = ">=3.6" +files = [ + {file = "argon2-cffi-bindings-21.2.0.tar.gz", hash = "sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9524464572e12979364b7d600abf96181d3541da11e23ddf565a32e70bd4dc0d"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b746dba803a79238e925d9046a63aa26bf86ab2a2fe74ce6b009a1c3f5c8f2ae"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58ed19212051f49a523abb1dbe954337dc82d947fb6e5a0da60f7c8471a8476c"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:bd46088725ef7f58b5a1ef7ca06647ebaf0eb4baff7d1d0d177c6cc8744abd86"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_i686.whl", hash = "sha256:8cd69c07dd875537a824deec19f978e0f2078fdda07fd5c42ac29668dda5f40f"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:f1152ac548bd5b8bcecfb0b0371f082037e47128653df2e8ba6e914d384f3c3e"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win32.whl", hash = "sha256:603ca0aba86b1349b147cab91ae970c63118a0f30444d4bc80355937c950c082"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win_amd64.whl", hash = "sha256:b2ef1c30440dbbcba7a5dc3e319408b59676e2e039e2ae11a8775ecf482b192f"}, + {file = "argon2_cffi_bindings-21.2.0-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e415e3f62c8d124ee16018e491a009937f8cf7ebf5eb430ffc5de21b900dad93"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3e385d1c39c520c08b53d63300c3ecc28622f076f4c2b0e6d7e796e9f6502194"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3e3cc67fdb7d82c4718f19b4e7a87123caf8a93fde7e23cf66ac0337d3cb3f"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a22ad9800121b71099d0fb0a65323810a15f2e292f2ba450810a7316e128ee5"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9f8b450ed0547e3d473fdc8612083fd08dd2120d6ac8f73828df9b7d45bb351"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:93f9bf70084f97245ba10ee36575f0c3f1e7d7724d67d8e5b08e61787c320ed7"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3b9ef65804859d335dc6b31582cad2c5166f0c3e7975f324d9ffaa34ee7e6583"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4966ef5848d820776f5f562a7d45fdd70c2f330c961d0d745b784034bd9f48d"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20ef543a89dee4db46a1a6e206cd015360e5a75822f76df533845c3cbaf72670"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed2937d286e2ad0cc79a7087d3c272832865f779430e0cc2b4f3718d3159b0cb"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5e00316dabdaea0b2dd82d141cc66889ced0cdcbfa599e8b471cf22c620c329a"}, +] + +[package.dependencies] +cffi = ">=1.0.1" + +[package.extras] +dev = ["cogapp", "pre-commit", "pytest", "wheel"] +tests = ["pytest"] + +[[package]] +name = "arrow" +version = "1.3.0" +description = "Better dates & times for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "arrow-1.3.0-py3-none-any.whl", hash = "sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80"}, + {file = "arrow-1.3.0.tar.gz", hash = "sha256:d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85"}, +] + +[package.dependencies] +python-dateutil = ">=2.7.0" +types-python-dateutil = ">=2.8.10" + +[package.extras] +doc = ["doc8", "sphinx (>=7.0.0)", "sphinx-autobuild", "sphinx-autodoc-typehints", "sphinx_rtd_theme (>=1.3.0)"] +test = ["dateparser (==1.*)", "pre-commit", "pytest", "pytest-cov", "pytest-mock", "pytz (==2021.1)", "simplejson (==3.*)"] + +[[package]] +name = "asttokens" +version = "3.0.0" +description = "Annotate AST trees with source code positions" +optional = false +python-versions = ">=3.8" +files = [ + {file = "asttokens-3.0.0-py3-none-any.whl", hash = "sha256:e3078351a059199dd5138cb1c706e6430c05eff2ff136af5eb4790f9d28932e2"}, + {file = "asttokens-3.0.0.tar.gz", hash = "sha256:0dcd8baa8d62b0c1d118b399b2ddba3c4aff271d0d7a9e0d4c1681c79035bbc7"}, +] + +[package.extras] +astroid = ["astroid (>=2,<4)"] +test = ["astroid (>=2,<4)", "pytest", "pytest-cov", "pytest-xdist"] + +[[package]] +name = "async-lru" +version = "2.0.4" +description = "Simple LRU cache for asyncio" +optional = false +python-versions = ">=3.8" +files = [ + {file = "async-lru-2.0.4.tar.gz", hash = "sha256:b8a59a5df60805ff63220b2a0c5b5393da5521b113cd5465a44eb037d81a5627"}, + {file = "async_lru-2.0.4-py3-none-any.whl", hash = "sha256:ff02944ce3c288c5be660c42dbcca0742b32c3b279d6dceda655190240b99224"}, +] + +[package.dependencies] +typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} + +[[package]] +name = "attrs" +version = "24.3.0" +description = "Classes Without Boilerplate" +optional = false +python-versions = ">=3.8" +files = [ + {file = "attrs-24.3.0-py3-none-any.whl", hash = "sha256:ac96cd038792094f438ad1f6ff80837353805ac950cd2aa0e0625ef19850c308"}, + {file = "attrs-24.3.0.tar.gz", hash = "sha256:8f5c07333d543103541ba7be0e2ce16eeee8130cb0b3f9238ab904ce1e85baff"}, +] + +[package.extras] +benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] [[package]] name = "babel" @@ -14,6 +171,45 @@ files = [ [package.extras] dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] +[[package]] +name = "beautifulsoup4" +version = "4.12.3" +description = "Screen-scraping library" +optional = false +python-versions = ">=3.6.0" +files = [ + {file = "beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed"}, + {file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"}, +] + +[package.dependencies] +soupsieve = ">1.2" + +[package.extras] +cchardet = ["cchardet"] +chardet = ["chardet"] +charset-normalizer = ["charset-normalizer"] +html5lib = ["html5lib"] +lxml = ["lxml"] + +[[package]] +name = "bleach" +version = "6.2.0" +description = "An easy safelist-based HTML-sanitizing tool." +optional = false +python-versions = ">=3.9" +files = [ + {file = "bleach-6.2.0-py3-none-any.whl", hash = "sha256:117d9c6097a7c3d22fd578fcd8d35ff1e125df6736f554da4e432fdd63f31e5e"}, + {file = "bleach-6.2.0.tar.gz", hash = "sha256:123e894118b8a599fd80d3ec1a6d4cc7ce4e5882b1317a7e1ba69b56e95f991f"}, +] + +[package.dependencies] +tinycss2 = {version = ">=1.1.0,<1.5", optional = true, markers = "extra == \"css\""} +webencodings = "*" + +[package.extras] +css = ["tinycss2 (>=1.1.0,<1.5)"] + [[package]] name = "cachetools" version = "5.5.0" @@ -27,15 +223,94 @@ files = [ [[package]] name = "certifi" -version = "2024.8.30" +version = "2024.12.14" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"}, - {file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"}, + {file = "certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56"}, + {file = "certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db"}, ] +[[package]] +name = "cffi" +version = "1.17.1" +description = "Foreign Function Interface for Python calling C code." +optional = false +python-versions = ">=3.8" +files = [ + {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"}, + {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be"}, + {file = "cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c"}, + {file = "cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"}, + {file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"}, + {file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8"}, + {file = "cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65"}, + {file = "cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9"}, + {file = "cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d"}, + {file = "cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a"}, + {file = "cffi-1.17.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1"}, + {file = "cffi-1.17.1-cp38-cp38-win32.whl", hash = "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8"}, + {file = "cffi-1.17.1-cp38-cp38-win_amd64.whl", hash = "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e"}, + {file = "cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7"}, + {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"}, + {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, +] + +[package.dependencies] +pycparser = "*" + [[package]] name = "cfgv" version = "3.4.0" @@ -60,112 +335,114 @@ files = [ [[package]] name = "charset-normalizer" -version = "3.3.2" +version = "3.4.1" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false -python-versions = ">=3.7.0" +python-versions = ">=3.7" files = [ - {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, - {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-win32.whl", hash = "sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-win32.whl", hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-win32.whl", hash = "sha256:7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-win32.whl", hash = "sha256:ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-win32.whl", hash = "sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765"}, + {file = "charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85"}, + {file = "charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3"}, ] [[package]] name = "click" -version = "8.1.7" +version = "8.1.8" description = "Composable command line interface toolkit" optional = false python-versions = ">=3.7" files = [ - {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, - {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, + {file = "click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2"}, + {file = "click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"}, ] [package.dependencies] @@ -182,78 +459,84 @@ files = [ {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] +[[package]] +name = "comm" +version = "0.2.2" +description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." +optional = false +python-versions = ">=3.8" +files = [ + {file = "comm-0.2.2-py3-none-any.whl", hash = "sha256:e6fb86cb70ff661ee8c9c14e7d36d6de3b4066f1441be4063df9c5009f0a64d3"}, + {file = "comm-0.2.2.tar.gz", hash = "sha256:3fd7a84065306e07bea1773df6eb8282de51ba82f77c72f9c85716ab11fe980e"}, +] + +[package.dependencies] +traitlets = ">=4" + +[package.extras] +test = ["pytest"] + [[package]] name = "contourpy" -version = "1.3.0" +version = "1.3.1" description = "Python library for calculating contours of 2D quadrilateral grids" optional = false -python-versions = ">=3.9" +python-versions = ">=3.10" files = [ - {file = "contourpy-1.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:880ea32e5c774634f9fcd46504bf9f080a41ad855f4fef54f5380f5133d343c7"}, - {file = "contourpy-1.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:76c905ef940a4474a6289c71d53122a4f77766eef23c03cd57016ce19d0f7b42"}, - {file = "contourpy-1.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:92f8557cbb07415a4d6fa191f20fd9d2d9eb9c0b61d1b2f52a8926e43c6e9af7"}, - {file = "contourpy-1.3.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:36f965570cff02b874773c49bfe85562b47030805d7d8360748f3eca570f4cab"}, - {file = "contourpy-1.3.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cacd81e2d4b6f89c9f8a5b69b86490152ff39afc58a95af002a398273e5ce589"}, - {file = "contourpy-1.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:69375194457ad0fad3a839b9e29aa0b0ed53bb54db1bfb6c3ae43d111c31ce41"}, - {file = "contourpy-1.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7a52040312b1a858b5e31ef28c2e865376a386c60c0e248370bbea2d3f3b760d"}, - {file = "contourpy-1.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3faeb2998e4fcb256542e8a926d08da08977f7f5e62cf733f3c211c2a5586223"}, - {file = "contourpy-1.3.0-cp310-cp310-win32.whl", hash = "sha256:36e0cff201bcb17a0a8ecc7f454fe078437fa6bda730e695a92f2d9932bd507f"}, - {file = "contourpy-1.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:87ddffef1dbe5e669b5c2440b643d3fdd8622a348fe1983fad7a0f0ccb1cd67b"}, - {file = "contourpy-1.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0fa4c02abe6c446ba70d96ece336e621efa4aecae43eaa9b030ae5fb92b309ad"}, - {file = "contourpy-1.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:834e0cfe17ba12f79963861e0f908556b2cedd52e1f75e6578801febcc6a9f49"}, - {file = "contourpy-1.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dbc4c3217eee163fa3984fd1567632b48d6dfd29216da3ded3d7b844a8014a66"}, - {file = "contourpy-1.3.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4865cd1d419e0c7a7bf6de1777b185eebdc51470800a9f42b9e9decf17762081"}, - {file = "contourpy-1.3.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:303c252947ab4b14c08afeb52375b26781ccd6a5ccd81abcdfc1fafd14cf93c1"}, - {file = "contourpy-1.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:637f674226be46f6ba372fd29d9523dd977a291f66ab2a74fbeb5530bb3f445d"}, - {file = "contourpy-1.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:76a896b2f195b57db25d6b44e7e03f221d32fe318d03ede41f8b4d9ba1bff53c"}, - {file = "contourpy-1.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e1fd23e9d01591bab45546c089ae89d926917a66dceb3abcf01f6105d927e2cb"}, - {file = "contourpy-1.3.0-cp311-cp311-win32.whl", hash = "sha256:d402880b84df3bec6eab53cd0cf802cae6a2ef9537e70cf75e91618a3801c20c"}, - {file = "contourpy-1.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:6cb6cc968059db9c62cb35fbf70248f40994dfcd7aa10444bbf8b3faeb7c2d67"}, - {file = "contourpy-1.3.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:570ef7cf892f0afbe5b2ee410c507ce12e15a5fa91017a0009f79f7d93a1268f"}, - {file = "contourpy-1.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:da84c537cb8b97d153e9fb208c221c45605f73147bd4cadd23bdae915042aad6"}, - {file = "contourpy-1.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0be4d8425bfa755e0fd76ee1e019636ccc7c29f77a7c86b4328a9eb6a26d0639"}, - {file = "contourpy-1.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9c0da700bf58f6e0b65312d0a5e695179a71d0163957fa381bb3c1f72972537c"}, - {file = "contourpy-1.3.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eb8b141bb00fa977d9122636b16aa67d37fd40a3d8b52dd837e536d64b9a4d06"}, - {file = "contourpy-1.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3634b5385c6716c258d0419c46d05c8aa7dc8cb70326c9a4fb66b69ad2b52e09"}, - {file = "contourpy-1.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0dce35502151b6bd35027ac39ba6e5a44be13a68f55735c3612c568cac3805fd"}, - {file = "contourpy-1.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:aea348f053c645100612b333adc5983d87be69acdc6d77d3169c090d3b01dc35"}, - {file = "contourpy-1.3.0-cp312-cp312-win32.whl", hash = "sha256:90f73a5116ad1ba7174341ef3ea5c3150ddf20b024b98fb0c3b29034752c8aeb"}, - {file = "contourpy-1.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:b11b39aea6be6764f84360fce6c82211a9db32a7c7de8fa6dd5397cf1d079c3b"}, - {file = "contourpy-1.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:3e1c7fa44aaae40a2247e2e8e0627f4bea3dd257014764aa644f319a5f8600e3"}, - {file = "contourpy-1.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:364174c2a76057feef647c802652f00953b575723062560498dc7930fc9b1cb7"}, - {file = "contourpy-1.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:32b238b3b3b649e09ce9aaf51f0c261d38644bdfa35cbaf7b263457850957a84"}, - {file = "contourpy-1.3.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d51fca85f9f7ad0b65b4b9fe800406d0d77017d7270d31ec3fb1cc07358fdea0"}, - {file = "contourpy-1.3.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:732896af21716b29ab3e988d4ce14bc5133733b85956316fb0c56355f398099b"}, - {file = "contourpy-1.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d73f659398a0904e125280836ae6f88ba9b178b2fed6884f3b1f95b989d2c8da"}, - {file = "contourpy-1.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c6c7c2408b7048082932cf4e641fa3b8ca848259212f51c8c59c45aa7ac18f14"}, - {file = "contourpy-1.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f317576606de89da6b7e0861cf6061f6146ead3528acabff9236458a6ba467f8"}, - {file = "contourpy-1.3.0-cp313-cp313-win32.whl", hash = "sha256:31cd3a85dbdf1fc002280c65caa7e2b5f65e4a973fcdf70dd2fdcb9868069294"}, - {file = "contourpy-1.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:4553c421929ec95fb07b3aaca0fae668b2eb5a5203d1217ca7c34c063c53d087"}, - {file = "contourpy-1.3.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:345af746d7766821d05d72cb8f3845dfd08dd137101a2cb9b24de277d716def8"}, - {file = "contourpy-1.3.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3bb3808858a9dc68f6f03d319acd5f1b8a337e6cdda197f02f4b8ff67ad2057b"}, - {file = "contourpy-1.3.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:420d39daa61aab1221567b42eecb01112908b2cab7f1b4106a52caaec8d36973"}, - {file = "contourpy-1.3.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4d63ee447261e963af02642ffcb864e5a2ee4cbfd78080657a9880b8b1868e18"}, - {file = "contourpy-1.3.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:167d6c890815e1dac9536dca00828b445d5d0df4d6a8c6adb4a7ec3166812fa8"}, - {file = "contourpy-1.3.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:710a26b3dc80c0e4febf04555de66f5fd17e9cf7170a7b08000601a10570bda6"}, - {file = "contourpy-1.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:75ee7cb1a14c617f34a51d11fa7524173e56551646828353c4af859c56b766e2"}, - {file = "contourpy-1.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:33c92cdae89ec5135d036e7218e69b0bb2851206077251f04a6c4e0e21f03927"}, - {file = "contourpy-1.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a11077e395f67ffc2c44ec2418cfebed032cd6da3022a94fc227b6faf8e2acb8"}, - {file = "contourpy-1.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e8134301d7e204c88ed7ab50028ba06c683000040ede1d617298611f9dc6240c"}, - {file = "contourpy-1.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e12968fdfd5bb45ffdf6192a590bd8ddd3ba9e58360b29683c6bb71a7b41edca"}, - {file = "contourpy-1.3.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fd2a0fc506eccaaa7595b7e1418951f213cf8255be2600f1ea1b61e46a60c55f"}, - {file = "contourpy-1.3.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4cfb5c62ce023dfc410d6059c936dcf96442ba40814aefbfa575425a3a7f19dc"}, - {file = "contourpy-1.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68a32389b06b82c2fdd68276148d7b9275b5f5cf13e5417e4252f6d1a34f72a2"}, - {file = "contourpy-1.3.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:94e848a6b83da10898cbf1311a815f770acc9b6a3f2d646f330d57eb4e87592e"}, - {file = "contourpy-1.3.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:d78ab28a03c854a873787a0a42254a0ccb3cb133c672f645c9f9c8f3ae9d0800"}, - {file = "contourpy-1.3.0-cp39-cp39-win32.whl", hash = "sha256:81cb5ed4952aae6014bc9d0421dec7c5835c9c8c31cdf51910b708f548cf58e5"}, - {file = "contourpy-1.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:14e262f67bd7e6eb6880bc564dcda30b15e351a594657e55b7eec94b6ef72843"}, - {file = "contourpy-1.3.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:fe41b41505a5a33aeaed2a613dccaeaa74e0e3ead6dd6fd3a118fb471644fd6c"}, - {file = "contourpy-1.3.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eca7e17a65f72a5133bdbec9ecf22401c62bcf4821361ef7811faee695799779"}, - {file = "contourpy-1.3.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:1ec4dc6bf570f5b22ed0d7efba0dfa9c5b9e0431aeea7581aa217542d9e809a4"}, - {file = "contourpy-1.3.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:00ccd0dbaad6d804ab259820fa7cb0b8036bda0686ef844d24125d8287178ce0"}, - {file = "contourpy-1.3.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ca947601224119117f7c19c9cdf6b3ab54c5726ef1d906aa4a69dfb6dd58102"}, - {file = "contourpy-1.3.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:c6ec93afeb848a0845a18989da3beca3eec2c0f852322efe21af1931147d12cb"}, - {file = "contourpy-1.3.0.tar.gz", hash = "sha256:7ffa0db17717a8ffb127efd0c95a4362d996b892c2904db72428d5b52e1938a4"}, + {file = "contourpy-1.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a045f341a77b77e1c5de31e74e966537bba9f3c4099b35bf4c2e3939dd54cdab"}, + {file = "contourpy-1.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:500360b77259914f7805af7462e41f9cb7ca92ad38e9f94d6c8641b089338124"}, + {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2f926efda994cdf3c8d3fdb40b9962f86edbc4457e739277b961eced3d0b4c1"}, + {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:adce39d67c0edf383647a3a007de0a45fd1b08dedaa5318404f1a73059c2512b"}, + {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abbb49fb7dac584e5abc6636b7b2a7227111c4f771005853e7d25176daaf8453"}, + {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0cffcbede75c059f535725c1680dfb17b6ba8753f0c74b14e6a9c68c29d7ea3"}, + {file = "contourpy-1.3.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ab29962927945d89d9b293eabd0d59aea28d887d4f3be6c22deaefbb938a7277"}, + {file = "contourpy-1.3.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:974d8145f8ca354498005b5b981165b74a195abfae9a8129df3e56771961d595"}, + {file = "contourpy-1.3.1-cp310-cp310-win32.whl", hash = "sha256:ac4578ac281983f63b400f7fe6c101bedc10651650eef012be1ccffcbacf3697"}, + {file = "contourpy-1.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:174e758c66bbc1c8576992cec9599ce8b6672b741b5d336b5c74e35ac382b18e"}, + {file = "contourpy-1.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3e8b974d8db2c5610fb4e76307e265de0edb655ae8169e8b21f41807ccbeec4b"}, + {file = "contourpy-1.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:20914c8c973f41456337652a6eeca26d2148aa96dd7ac323b74516988bea89fc"}, + {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19d40d37c1c3a4961b4619dd9d77b12124a453cc3d02bb31a07d58ef684d3d86"}, + {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:113231fe3825ebf6f15eaa8bc1f5b0ddc19d42b733345eae0934cb291beb88b6"}, + {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4dbbc03a40f916a8420e420d63e96a1258d3d1b58cbdfd8d1f07b49fcbd38e85"}, + {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a04ecd68acbd77fa2d39723ceca4c3197cb2969633836ced1bea14e219d077c"}, + {file = "contourpy-1.3.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c414fc1ed8ee1dbd5da626cf3710c6013d3d27456651d156711fa24f24bd1291"}, + {file = "contourpy-1.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:31c1b55c1f34f80557d3830d3dd93ba722ce7e33a0b472cba0ec3b6535684d8f"}, + {file = "contourpy-1.3.1-cp311-cp311-win32.whl", hash = "sha256:f611e628ef06670df83fce17805c344710ca5cde01edfdc72751311da8585375"}, + {file = "contourpy-1.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:b2bdca22a27e35f16794cf585832e542123296b4687f9fd96822db6bae17bfc9"}, + {file = "contourpy-1.3.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0ffa84be8e0bd33410b17189f7164c3589c229ce5db85798076a3fa136d0e509"}, + {file = "contourpy-1.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805617228ba7e2cbbfb6c503858e626ab528ac2a32a04a2fe88ffaf6b02c32bc"}, + {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ade08d343436a94e633db932e7e8407fe7de8083967962b46bdfc1b0ced39454"}, + {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:47734d7073fb4590b4a40122b35917cd77be5722d80683b249dac1de266aac80"}, + {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2ba94a401342fc0f8b948e57d977557fbf4d515f03c67682dd5c6191cb2d16ec"}, + {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efa874e87e4a647fd2e4f514d5e91c7d493697127beb95e77d2f7561f6905bd9"}, + {file = "contourpy-1.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1bf98051f1045b15c87868dbaea84f92408337d4f81d0e449ee41920ea121d3b"}, + {file = "contourpy-1.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:61332c87493b00091423e747ea78200659dc09bdf7fd69edd5e98cef5d3e9a8d"}, + {file = "contourpy-1.3.1-cp312-cp312-win32.whl", hash = "sha256:e914a8cb05ce5c809dd0fe350cfbb4e881bde5e2a38dc04e3afe1b3e58bd158e"}, + {file = "contourpy-1.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:08d9d449a61cf53033612cb368f3a1b26cd7835d9b8cd326647efe43bca7568d"}, + {file = "contourpy-1.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a761d9ccfc5e2ecd1bf05534eda382aa14c3e4f9205ba5b1684ecfe400716ef2"}, + {file = "contourpy-1.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:523a8ee12edfa36f6d2a49407f705a6ef4c5098de4f498619787e272de93f2d5"}, + {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece6df05e2c41bd46776fbc712e0996f7c94e0d0543af1656956d150c4ca7c81"}, + {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:573abb30e0e05bf31ed067d2f82500ecfdaec15627a59d63ea2d95714790f5c2"}, + {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fa36448e6a3a1a9a2ba23c02012c43ed88905ec80163f2ffe2421c7192a5d7"}, + {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ea9924d28fc5586bf0b42d15f590b10c224117e74409dd7a0be3b62b74a501c"}, + {file = "contourpy-1.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5b75aa69cb4d6f137b36f7eb2ace9280cfb60c55dc5f61c731fdf6f037f958a3"}, + {file = "contourpy-1.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:041b640d4ec01922083645a94bb3b2e777e6b626788f4095cf21abbe266413c1"}, + {file = "contourpy-1.3.1-cp313-cp313-win32.whl", hash = "sha256:36987a15e8ace5f58d4d5da9dca82d498c2bbb28dff6e5d04fbfcc35a9cb3a82"}, + {file = "contourpy-1.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:a7895f46d47671fa7ceec40f31fae721da51ad34bdca0bee83e38870b1f47ffd"}, + {file = "contourpy-1.3.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9ddeb796389dadcd884c7eb07bd14ef12408aaae358f0e2ae24114d797eede30"}, + {file = "contourpy-1.3.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:19c1555a6801c2f084c7ddc1c6e11f02eb6a6016ca1318dd5452ba3f613a1751"}, + {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:841ad858cff65c2c04bf93875e384ccb82b654574a6d7f30453a04f04af71342"}, + {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4318af1c925fb9a4fb190559ef3eec206845f63e80fb603d47f2d6d67683901c"}, + {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:14c102b0eab282427b662cb590f2e9340a9d91a1c297f48729431f2dcd16e14f"}, + {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05e806338bfeaa006acbdeba0ad681a10be63b26e1b17317bfac3c5d98f36cda"}, + {file = "contourpy-1.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4d76d5993a34ef3df5181ba3c92fabb93f1eaa5729504fb03423fcd9f3177242"}, + {file = "contourpy-1.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:89785bb2a1980c1bd87f0cb1517a71cde374776a5f150936b82580ae6ead44a1"}, + {file = "contourpy-1.3.1-cp313-cp313t-win32.whl", hash = "sha256:8eb96e79b9f3dcadbad2a3891672f81cdcab7f95b27f28f1c67d75f045b6b4f1"}, + {file = "contourpy-1.3.1-cp313-cp313t-win_amd64.whl", hash = "sha256:287ccc248c9e0d0566934e7d606201abd74761b5703d804ff3df8935f523d546"}, + {file = "contourpy-1.3.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b457d6430833cee8e4b8e9b6f07aa1c161e5e0d52e118dc102c8f9bd7dd060d6"}, + {file = "contourpy-1.3.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb76c1a154b83991a3cbbf0dfeb26ec2833ad56f95540b442c73950af2013750"}, + {file = "contourpy-1.3.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:44a29502ca9c7b5ba389e620d44f2fbe792b1fb5734e8b931ad307071ec58c53"}, + {file = "contourpy-1.3.1.tar.gz", hash = "sha256:dfd97abd83335045a913e3bcc4a09c0ceadbe66580cf573fe961f4a825efa699"}, ] [package.dependencies] @@ -268,83 +551,73 @@ test-no-images = ["pytest", "pytest-cov", "pytest-rerunfailures", "pytest-xdist" [[package]] name = "coverage" -version = "7.6.1" +version = "7.6.10" description = "Code coverage measurement for Python" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "coverage-7.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b06079abebbc0e89e6163b8e8f0e16270124c154dc6e4a47b413dd538859af16"}, - {file = "coverage-7.6.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cf4b19715bccd7ee27b6b120e7e9dd56037b9c0681dcc1adc9ba9db3d417fa36"}, - {file = "coverage-7.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61c0abb4c85b095a784ef23fdd4aede7a2628478e7baba7c5e3deba61070a02"}, - {file = "coverage-7.6.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fd21f6ae3f08b41004dfb433fa895d858f3f5979e7762d052b12aef444e29afc"}, - {file = "coverage-7.6.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f59d57baca39b32db42b83b2a7ba6f47ad9c394ec2076b084c3f029b7afca23"}, - {file = "coverage-7.6.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a1ac0ae2b8bd743b88ed0502544847c3053d7171a3cff9228af618a068ed9c34"}, - {file = "coverage-7.6.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e6a08c0be454c3b3beb105c0596ebdc2371fab6bb90c0c0297f4e58fd7e1012c"}, - {file = "coverage-7.6.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f5796e664fe802da4f57a168c85359a8fbf3eab5e55cd4e4569fbacecc903959"}, - {file = "coverage-7.6.1-cp310-cp310-win32.whl", hash = "sha256:7bb65125fcbef8d989fa1dd0e8a060999497629ca5b0efbca209588a73356232"}, - {file = "coverage-7.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:3115a95daa9bdba70aea750db7b96b37259a81a709223c8448fa97727d546fe0"}, - {file = "coverage-7.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7dea0889685db8550f839fa202744652e87c60015029ce3f60e006f8c4462c93"}, - {file = "coverage-7.6.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ed37bd3c3b063412f7620464a9ac1314d33100329f39799255fb8d3027da50d3"}, - {file = "coverage-7.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d85f5e9a5f8b73e2350097c3756ef7e785f55bd71205defa0bfdaf96c31616ff"}, - {file = "coverage-7.6.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bc572be474cafb617672c43fe989d6e48d3c83af02ce8de73fff1c6bb3c198d"}, - {file = "coverage-7.6.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c0420b573964c760df9e9e86d1a9a622d0d27f417e1a949a8a66dd7bcee7bc6"}, - {file = "coverage-7.6.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1f4aa8219db826ce6be7099d559f8ec311549bfc4046f7f9fe9b5cea5c581c56"}, - {file = "coverage-7.6.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:fc5a77d0c516700ebad189b587de289a20a78324bc54baee03dd486f0855d234"}, - {file = "coverage-7.6.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b48f312cca9621272ae49008c7f613337c53fadca647d6384cc129d2996d1133"}, - {file = "coverage-7.6.1-cp311-cp311-win32.whl", hash = "sha256:1125ca0e5fd475cbbba3bb67ae20bd2c23a98fac4e32412883f9bcbaa81c314c"}, - {file = "coverage-7.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:8ae539519c4c040c5ffd0632784e21b2f03fc1340752af711f33e5be83a9d6c6"}, - {file = "coverage-7.6.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:95cae0efeb032af8458fc27d191f85d1717b1d4e49f7cb226cf526ff28179778"}, - {file = "coverage-7.6.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5621a9175cf9d0b0c84c2ef2b12e9f5f5071357c4d2ea6ca1cf01814f45d2391"}, - {file = "coverage-7.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:260933720fdcd75340e7dbe9060655aff3af1f0c5d20f46b57f262ab6c86a5e8"}, - {file = "coverage-7.6.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07e2ca0ad381b91350c0ed49d52699b625aab2b44b65e1b4e02fa9df0e92ad2d"}, - {file = "coverage-7.6.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c44fee9975f04b33331cb8eb272827111efc8930cfd582e0320613263ca849ca"}, - {file = "coverage-7.6.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:877abb17e6339d96bf08e7a622d05095e72b71f8afd8a9fefc82cf30ed944163"}, - {file = "coverage-7.6.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3e0cadcf6733c09154b461f1ca72d5416635e5e4ec4e536192180d34ec160f8a"}, - {file = "coverage-7.6.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c3c02d12f837d9683e5ab2f3d9844dc57655b92c74e286c262e0fc54213c216d"}, - {file = "coverage-7.6.1-cp312-cp312-win32.whl", hash = "sha256:e05882b70b87a18d937ca6768ff33cc3f72847cbc4de4491c8e73880766718e5"}, - {file = "coverage-7.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:b5d7b556859dd85f3a541db6a4e0167b86e7273e1cdc973e5b175166bb634fdb"}, - {file = "coverage-7.6.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a4acd025ecc06185ba2b801f2de85546e0b8ac787cf9d3b06e7e2a69f925b106"}, - {file = "coverage-7.6.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a6d3adcf24b624a7b778533480e32434a39ad8fa30c315208f6d3e5542aeb6e9"}, - {file = "coverage-7.6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0c212c49b6c10e6951362f7c6df3329f04c2b1c28499563d4035d964ab8e08c"}, - {file = "coverage-7.6.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6e81d7a3e58882450ec4186ca59a3f20a5d4440f25b1cff6f0902ad890e6748a"}, - {file = "coverage-7.6.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78b260de9790fd81e69401c2dc8b17da47c8038176a79092a89cb2b7d945d060"}, - {file = "coverage-7.6.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a78d169acd38300060b28d600344a803628c3fd585c912cacc9ea8790fe96862"}, - {file = "coverage-7.6.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2c09f4ce52cb99dd7505cd0fc8e0e37c77b87f46bc9c1eb03fe3bc9991085388"}, - {file = "coverage-7.6.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6878ef48d4227aace338d88c48738a4258213cd7b74fd9a3d4d7582bb1d8a155"}, - {file = "coverage-7.6.1-cp313-cp313-win32.whl", hash = "sha256:44df346d5215a8c0e360307d46ffaabe0f5d3502c8a1cefd700b34baf31d411a"}, - {file = "coverage-7.6.1-cp313-cp313-win_amd64.whl", hash = "sha256:8284cf8c0dd272a247bc154eb6c95548722dce90d098c17a883ed36e67cdb129"}, - {file = "coverage-7.6.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:d3296782ca4eab572a1a4eca686d8bfb00226300dcefdf43faa25b5242ab8a3e"}, - {file = "coverage-7.6.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:502753043567491d3ff6d08629270127e0c31d4184c4c8d98f92c26f65019962"}, - {file = "coverage-7.6.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a89ecca80709d4076b95f89f308544ec8f7b4727e8a547913a35f16717856cb"}, - {file = "coverage-7.6.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a318d68e92e80af8b00fa99609796fdbcdfef3629c77c6283566c6f02c6d6704"}, - {file = "coverage-7.6.1-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13b0a73a0896988f053e4fbb7de6d93388e6dd292b0d87ee51d106f2c11b465b"}, - {file = "coverage-7.6.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4421712dbfc5562150f7554f13dde997a2e932a6b5f352edcce948a815efee6f"}, - {file = "coverage-7.6.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:166811d20dfea725e2e4baa71fffd6c968a958577848d2131f39b60043400223"}, - {file = "coverage-7.6.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:225667980479a17db1048cb2bf8bfb39b8e5be8f164b8f6628b64f78a72cf9d3"}, - {file = "coverage-7.6.1-cp313-cp313t-win32.whl", hash = "sha256:170d444ab405852903b7d04ea9ae9b98f98ab6d7e63e1115e82620807519797f"}, - {file = "coverage-7.6.1-cp313-cp313t-win_amd64.whl", hash = "sha256:b9f222de8cded79c49bf184bdbc06630d4c58eec9459b939b4a690c82ed05657"}, - {file = "coverage-7.6.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6db04803b6c7291985a761004e9060b2bca08da6d04f26a7f2294b8623a0c1a0"}, - {file = "coverage-7.6.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f1adfc8ac319e1a348af294106bc6a8458a0f1633cc62a1446aebc30c5fa186a"}, - {file = "coverage-7.6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a95324a9de9650a729239daea117df21f4b9868ce32e63f8b650ebe6cef5595b"}, - {file = "coverage-7.6.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b43c03669dc4618ec25270b06ecd3ee4fa94c7f9b3c14bae6571ca00ef98b0d3"}, - {file = "coverage-7.6.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8929543a7192c13d177b770008bc4e8119f2e1f881d563fc6b6305d2d0ebe9de"}, - {file = "coverage-7.6.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:a09ece4a69cf399510c8ab25e0950d9cf2b42f7b3cb0374f95d2e2ff594478a6"}, - {file = "coverage-7.6.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:9054a0754de38d9dbd01a46621636689124d666bad1936d76c0341f7d71bf569"}, - {file = "coverage-7.6.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0dbde0f4aa9a16fa4d754356a8f2e36296ff4d83994b2c9d8398aa32f222f989"}, - {file = "coverage-7.6.1-cp38-cp38-win32.whl", hash = "sha256:da511e6ad4f7323ee5702e6633085fb76c2f893aaf8ce4c51a0ba4fc07580ea7"}, - {file = "coverage-7.6.1-cp38-cp38-win_amd64.whl", hash = "sha256:3f1156e3e8f2872197af3840d8ad307a9dd18e615dc64d9ee41696f287c57ad8"}, - {file = "coverage-7.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:abd5fd0db5f4dc9289408aaf34908072f805ff7792632250dcb36dc591d24255"}, - {file = "coverage-7.6.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:547f45fa1a93154bd82050a7f3cddbc1a7a4dd2a9bf5cb7d06f4ae29fe94eaf8"}, - {file = "coverage-7.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:645786266c8f18a931b65bfcefdbf6952dd0dea98feee39bd188607a9d307ed2"}, - {file = "coverage-7.6.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9e0b2df163b8ed01d515807af24f63de04bebcecbd6c3bfeff88385789fdf75a"}, - {file = "coverage-7.6.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:609b06f178fe8e9f89ef676532760ec0b4deea15e9969bf754b37f7c40326dbc"}, - {file = "coverage-7.6.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:702855feff378050ae4f741045e19a32d57d19f3e0676d589df0575008ea5004"}, - {file = "coverage-7.6.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:2bdb062ea438f22d99cba0d7829c2ef0af1d768d1e4a4f528087224c90b132cb"}, - {file = "coverage-7.6.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9c56863d44bd1c4fe2abb8a4d6f5371d197f1ac0ebdee542f07f35895fc07f36"}, - {file = "coverage-7.6.1-cp39-cp39-win32.whl", hash = "sha256:6e2cd258d7d927d09493c8df1ce9174ad01b381d4729a9d8d4e38670ca24774c"}, - {file = "coverage-7.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:06a737c882bd26d0d6ee7269b20b12f14a8704807a01056c80bb881a4b2ce6ca"}, - {file = "coverage-7.6.1-pp38.pp39.pp310-none-any.whl", hash = "sha256:e9a6e0eb86070e8ccaedfbd9d38fec54864f3125ab95419970575b42af7541df"}, - {file = "coverage-7.6.1.tar.gz", hash = "sha256:953510dfb7b12ab69d20135a0662397f077c59b1e6379a768e97c59d852ee51d"}, + {file = "coverage-7.6.10-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5c912978f7fbf47ef99cec50c4401340436d200d41d714c7a4766f377c5b7b78"}, + {file = "coverage-7.6.10-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a01ec4af7dfeb96ff0078ad9a48810bb0cc8abcb0115180c6013a6b26237626c"}, + {file = "coverage-7.6.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3b204c11e2b2d883946fe1d97f89403aa1811df28ce0447439178cc7463448a"}, + {file = "coverage-7.6.10-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:32ee6d8491fcfc82652a37109f69dee9a830e9379166cb73c16d8dc5c2915165"}, + {file = "coverage-7.6.10-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675cefc4c06e3b4c876b85bfb7c59c5e2218167bbd4da5075cbe3b5790a28988"}, + {file = "coverage-7.6.10-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f4f620668dbc6f5e909a0946a877310fb3d57aea8198bde792aae369ee1c23b5"}, + {file = "coverage-7.6.10-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:4eea95ef275de7abaef630c9b2c002ffbc01918b726a39f5a4353916ec72d2f3"}, + {file = "coverage-7.6.10-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e2f0280519e42b0a17550072861e0bc8a80a0870de260f9796157d3fca2733c5"}, + {file = "coverage-7.6.10-cp310-cp310-win32.whl", hash = "sha256:bc67deb76bc3717f22e765ab3e07ee9c7a5e26b9019ca19a3b063d9f4b874244"}, + {file = "coverage-7.6.10-cp310-cp310-win_amd64.whl", hash = "sha256:0f460286cb94036455e703c66988851d970fdfd8acc2a1122ab7f4f904e4029e"}, + {file = "coverage-7.6.10-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ea3c8f04b3e4af80e17bab607c386a830ffc2fb88a5484e1df756478cf70d1d3"}, + {file = "coverage-7.6.10-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:507a20fc863cae1d5720797761b42d2d87a04b3e5aeb682ef3b7332e90598f43"}, + {file = "coverage-7.6.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d37a84878285b903c0fe21ac8794c6dab58150e9359f1aaebbeddd6412d53132"}, + {file = "coverage-7.6.10-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a534738b47b0de1995f85f582d983d94031dffb48ab86c95bdf88dc62212142f"}, + {file = "coverage-7.6.10-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d7a2bf79378d8fb8afaa994f91bfd8215134f8631d27eba3e0e2c13546ce994"}, + {file = "coverage-7.6.10-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6713ba4b4ebc330f3def51df1d5d38fad60b66720948112f114968feb52d3f99"}, + {file = "coverage-7.6.10-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ab32947f481f7e8c763fa2c92fd9f44eeb143e7610c4ca9ecd6a36adab4081bd"}, + {file = "coverage-7.6.10-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7bbd8c8f1b115b892e34ba66a097b915d3871db7ce0e6b9901f462ff3a975377"}, + {file = "coverage-7.6.10-cp311-cp311-win32.whl", hash = "sha256:299e91b274c5c9cdb64cbdf1b3e4a8fe538a7a86acdd08fae52301b28ba297f8"}, + {file = "coverage-7.6.10-cp311-cp311-win_amd64.whl", hash = "sha256:489a01f94aa581dbd961f306e37d75d4ba16104bbfa2b0edb21d29b73be83609"}, + {file = "coverage-7.6.10-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:27c6e64726b307782fa5cbe531e7647aee385a29b2107cd87ba7c0105a5d3853"}, + {file = "coverage-7.6.10-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c56e097019e72c373bae32d946ecf9858fda841e48d82df7e81c63ac25554078"}, + {file = "coverage-7.6.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c7827a5bc7bdb197b9e066cdf650b2887597ad124dd99777332776f7b7c7d0d0"}, + {file = "coverage-7.6.10-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:204a8238afe787323a8b47d8be4df89772d5c1e4651b9ffa808552bdf20e1d50"}, + {file = "coverage-7.6.10-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e67926f51821b8e9deb6426ff3164870976fe414d033ad90ea75e7ed0c2e5022"}, + {file = "coverage-7.6.10-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e78b270eadb5702938c3dbe9367f878249b5ef9a2fcc5360ac7bff694310d17b"}, + {file = "coverage-7.6.10-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:714f942b9c15c3a7a5fe6876ce30af831c2ad4ce902410b7466b662358c852c0"}, + {file = "coverage-7.6.10-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:abb02e2f5a3187b2ac4cd46b8ced85a0858230b577ccb2c62c81482ca7d18852"}, + {file = "coverage-7.6.10-cp312-cp312-win32.whl", hash = "sha256:55b201b97286cf61f5e76063f9e2a1d8d2972fc2fcfd2c1272530172fd28c359"}, + {file = "coverage-7.6.10-cp312-cp312-win_amd64.whl", hash = "sha256:e4ae5ac5e0d1e4edfc9b4b57b4cbecd5bc266a6915c500f358817a8496739247"}, + {file = "coverage-7.6.10-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:05fca8ba6a87aabdd2d30d0b6c838b50510b56cdcfc604d40760dae7153b73d9"}, + {file = "coverage-7.6.10-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9e80eba8801c386f72e0712a0453431259c45c3249f0009aff537a517b52942b"}, + {file = "coverage-7.6.10-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a372c89c939d57abe09e08c0578c1d212e7a678135d53aa16eec4430adc5e690"}, + {file = "coverage-7.6.10-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ec22b5e7fe7a0fa8509181c4aac1db48f3dd4d3a566131b313d1efc102892c18"}, + {file = "coverage-7.6.10-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26bcf5c4df41cad1b19c84af71c22cbc9ea9a547fc973f1f2cc9a290002c8b3c"}, + {file = "coverage-7.6.10-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4e4630c26b6084c9b3cb53b15bd488f30ceb50b73c35c5ad7871b869cb7365fd"}, + {file = "coverage-7.6.10-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2396e8116db77789f819d2bc8a7e200232b7a282c66e0ae2d2cd84581a89757e"}, + {file = "coverage-7.6.10-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:79109c70cc0882e4d2d002fe69a24aa504dec0cc17169b3c7f41a1d341a73694"}, + {file = "coverage-7.6.10-cp313-cp313-win32.whl", hash = "sha256:9e1747bab246d6ff2c4f28b4d186b205adced9f7bd9dc362051cc37c4a0c7bd6"}, + {file = "coverage-7.6.10-cp313-cp313-win_amd64.whl", hash = "sha256:254f1a3b1eef5f7ed23ef265eaa89c65c8c5b6b257327c149db1ca9d4a35f25e"}, + {file = "coverage-7.6.10-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:2ccf240eb719789cedbb9fd1338055de2761088202a9a0b73032857e53f612fe"}, + {file = "coverage-7.6.10-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:0c807ca74d5a5e64427c8805de15b9ca140bba13572d6d74e262f46f50b13273"}, + {file = "coverage-7.6.10-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2bcfa46d7709b5a7ffe089075799b902020b62e7ee56ebaed2f4bdac04c508d8"}, + {file = "coverage-7.6.10-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4e0de1e902669dccbf80b0415fb6b43d27edca2fbd48c74da378923b05316098"}, + {file = "coverage-7.6.10-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f7b444c42bbc533aaae6b5a2166fd1a797cdb5eb58ee51a92bee1eb94a1e1cb"}, + {file = "coverage-7.6.10-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b330368cb99ef72fcd2dc3ed260adf67b31499584dc8a20225e85bfe6f6cfed0"}, + {file = "coverage-7.6.10-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:9a7cfb50515f87f7ed30bc882f68812fd98bc2852957df69f3003d22a2aa0abf"}, + {file = "coverage-7.6.10-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6f93531882a5f68c28090f901b1d135de61b56331bba82028489bc51bdd818d2"}, + {file = "coverage-7.6.10-cp313-cp313t-win32.whl", hash = "sha256:89d76815a26197c858f53c7f6a656686ec392b25991f9e409bcef020cd532312"}, + {file = "coverage-7.6.10-cp313-cp313t-win_amd64.whl", hash = "sha256:54a5f0f43950a36312155dae55c505a76cd7f2b12d26abeebbe7a0b36dbc868d"}, + {file = "coverage-7.6.10-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:656c82b8a0ead8bba147de9a89bda95064874c91a3ed43a00e687f23cc19d53a"}, + {file = "coverage-7.6.10-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ccc2b70a7ed475c68ceb548bf69cec1e27305c1c2606a5eb7c3afff56a1b3b27"}, + {file = "coverage-7.6.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5e37dc41d57ceba70956fa2fc5b63c26dba863c946ace9705f8eca99daecdc4"}, + {file = "coverage-7.6.10-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0aa9692b4fdd83a4647eeb7db46410ea1322b5ed94cd1715ef09d1d5922ba87f"}, + {file = "coverage-7.6.10-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa744da1820678b475e4ba3dfd994c321c5b13381d1041fe9c608620e6676e25"}, + {file = "coverage-7.6.10-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:c0b1818063dc9e9d838c09e3a473c1422f517889436dd980f5d721899e66f315"}, + {file = "coverage-7.6.10-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:59af35558ba08b758aec4d56182b222976330ef8d2feacbb93964f576a7e7a90"}, + {file = "coverage-7.6.10-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7ed2f37cfce1ce101e6dffdfd1c99e729dd2ffc291d02d3e2d0af8b53d13840d"}, + {file = "coverage-7.6.10-cp39-cp39-win32.whl", hash = "sha256:4bcc276261505d82f0ad426870c3b12cb177752834a633e737ec5ee79bbdff18"}, + {file = "coverage-7.6.10-cp39-cp39-win_amd64.whl", hash = "sha256:457574f4599d2b00f7f637a0700a6422243b3565509457b2dbd3f50703e11f59"}, + {file = "coverage-7.6.10-pp39.pp310-none-any.whl", hash = "sha256:fd34e7b3405f0cc7ab03d54a334c17a9e802897580d964bd8c2001f4b9fd488f"}, + {file = "coverage-7.6.10.tar.gz", hash = "sha256:7fb105327c8f8f0682e29843e2ff96af9dcbe5bab8eeb4b398c6a33a16d80a23"}, ] [package.dependencies] @@ -368,6 +641,63 @@ files = [ docs = ["ipython", "matplotlib", "numpydoc", "sphinx"] tests = ["pytest", "pytest-cov", "pytest-xdist"] +[[package]] +name = "debugpy" +version = "1.8.11" +description = "An implementation of the Debug Adapter Protocol for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "debugpy-1.8.11-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:2b26fefc4e31ff85593d68b9022e35e8925714a10ab4858fb1b577a8a48cb8cd"}, + {file = "debugpy-1.8.11-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61bc8b3b265e6949855300e84dc93d02d7a3a637f2aec6d382afd4ceb9120c9f"}, + {file = "debugpy-1.8.11-cp310-cp310-win32.whl", hash = "sha256:c928bbf47f65288574b78518449edaa46c82572d340e2750889bbf8cd92f3737"}, + {file = "debugpy-1.8.11-cp310-cp310-win_amd64.whl", hash = "sha256:8da1db4ca4f22583e834dcabdc7832e56fe16275253ee53ba66627b86e304da1"}, + {file = "debugpy-1.8.11-cp311-cp311-macosx_14_0_universal2.whl", hash = "sha256:85de8474ad53ad546ff1c7c7c89230db215b9b8a02754d41cb5a76f70d0be296"}, + {file = "debugpy-1.8.11-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ffc382e4afa4aee367bf413f55ed17bd91b191dcaf979890af239dda435f2a1"}, + {file = "debugpy-1.8.11-cp311-cp311-win32.whl", hash = "sha256:40499a9979c55f72f4eb2fc38695419546b62594f8af194b879d2a18439c97a9"}, + {file = "debugpy-1.8.11-cp311-cp311-win_amd64.whl", hash = "sha256:987bce16e86efa86f747d5151c54e91b3c1e36acc03ce1ddb50f9d09d16ded0e"}, + {file = "debugpy-1.8.11-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:84e511a7545d11683d32cdb8f809ef63fc17ea2a00455cc62d0a4dbb4ed1c308"}, + {file = "debugpy-1.8.11-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce291a5aca4985d82875d6779f61375e959208cdf09fcec40001e65fb0a54768"}, + {file = "debugpy-1.8.11-cp312-cp312-win32.whl", hash = "sha256:28e45b3f827d3bf2592f3cf7ae63282e859f3259db44ed2b129093ca0ac7940b"}, + {file = "debugpy-1.8.11-cp312-cp312-win_amd64.whl", hash = "sha256:44b1b8e6253bceada11f714acf4309ffb98bfa9ac55e4fce14f9e5d4484287a1"}, + {file = "debugpy-1.8.11-cp313-cp313-macosx_14_0_universal2.whl", hash = "sha256:8988f7163e4381b0da7696f37eec7aca19deb02e500245df68a7159739bbd0d3"}, + {file = "debugpy-1.8.11-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c1f6a173d1140e557347419767d2b14ac1c9cd847e0b4c5444c7f3144697e4e"}, + {file = "debugpy-1.8.11-cp313-cp313-win32.whl", hash = "sha256:bb3b15e25891f38da3ca0740271e63ab9db61f41d4d8541745cfc1824252cb28"}, + {file = "debugpy-1.8.11-cp313-cp313-win_amd64.whl", hash = "sha256:d8768edcbeb34da9e11bcb8b5c2e0958d25218df7a6e56adf415ef262cd7b6d1"}, + {file = "debugpy-1.8.11-cp38-cp38-macosx_14_0_x86_64.whl", hash = "sha256:ad7efe588c8f5cf940f40c3de0cd683cc5b76819446abaa50dc0829a30c094db"}, + {file = "debugpy-1.8.11-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:189058d03a40103a57144752652b3ab08ff02b7595d0ce1f651b9acc3a3a35a0"}, + {file = "debugpy-1.8.11-cp38-cp38-win32.whl", hash = "sha256:32db46ba45849daed7ccf3f2e26f7a386867b077f39b2a974bb5c4c2c3b0a280"}, + {file = "debugpy-1.8.11-cp38-cp38-win_amd64.whl", hash = "sha256:116bf8342062246ca749013df4f6ea106f23bc159305843491f64672a55af2e5"}, + {file = "debugpy-1.8.11-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:654130ca6ad5de73d978057eaf9e582244ff72d4574b3e106fb8d3d2a0d32458"}, + {file = "debugpy-1.8.11-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23dc34c5e03b0212fa3c49a874df2b8b1b8fda95160bd79c01eb3ab51ea8d851"}, + {file = "debugpy-1.8.11-cp39-cp39-win32.whl", hash = "sha256:52d8a3166c9f2815bfae05f386114b0b2d274456980d41f320299a8d9a5615a7"}, + {file = "debugpy-1.8.11-cp39-cp39-win_amd64.whl", hash = "sha256:52c3cf9ecda273a19cc092961ee34eb9ba8687d67ba34cc7b79a521c1c64c4c0"}, + {file = "debugpy-1.8.11-py2.py3-none-any.whl", hash = "sha256:0e22f846f4211383e6a416d04b4c13ed174d24cc5d43f5fd52e7821d0ebc8920"}, + {file = "debugpy-1.8.11.tar.gz", hash = "sha256:6ad2688b69235c43b020e04fecccdf6a96c8943ca9c2fb340b8adc103c655e57"}, +] + +[[package]] +name = "decorator" +version = "5.1.1" +description = "Decorators for Humans" +optional = false +python-versions = ">=3.5" +files = [ + {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, + {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, +] + +[[package]] +name = "defusedxml" +version = "0.7.1" +description = "XML bomb protection for Python stdlib modules" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, + {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, +] + [[package]] name = "deptry" version = "0.12.0" @@ -388,13 +718,13 @@ tomli = {version = ">=2.0.1,<3.0.0", markers = "python_version < \"3.11\""} [[package]] name = "distlib" -version = "0.3.8" +version = "0.3.9" description = "Distribution utilities" optional = false python-versions = "*" files = [ - {file = "distlib-0.3.8-py2.py3-none-any.whl", hash = "sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784"}, - {file = "distlib-0.3.8.tar.gz", hash = "sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64"}, + {file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"}, + {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}, ] [[package]] @@ -411,6 +741,34 @@ files = [ [package.extras] test = ["pytest (>=6)"] +[[package]] +name = "executing" +version = "2.1.0" +description = "Get the currently executing AST node of a frame, and other information" +optional = false +python-versions = ">=3.8" +files = [ + {file = "executing-2.1.0-py2.py3-none-any.whl", hash = "sha256:8d63781349375b5ebccc3142f4b30350c0cd9c79f921cde38be2be4637e98eaf"}, + {file = "executing-2.1.0.tar.gz", hash = "sha256:8ea27ddd260da8150fa5a708269c4a10e76161e2496ec3e587da9e3c0fe4b9ab"}, +] + +[package.extras] +tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich"] + +[[package]] +name = "fastjsonschema" +version = "2.21.1" +description = "Fastest Python implementation of JSON schema" +optional = false +python-versions = "*" +files = [ + {file = "fastjsonschema-2.21.1-py3-none-any.whl", hash = "sha256:c9e5b7e908310918cf494a434eeb31384dd84a98b57a30bcb1f535015b554667"}, + {file = "fastjsonschema-2.21.1.tar.gz", hash = "sha256:794d4f0a58f848961ba16af7b9c85a3e88cd360df008c59aac6fc5ae9323b5d4"}, +] + +[package.extras] +devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"] + [[package]] name = "filelock" version = "3.16.1" @@ -429,59 +787,61 @@ typing = ["typing-extensions (>=4.12.2)"] [[package]] name = "fonttools" -version = "4.54.1" +version = "4.55.3" description = "Tools to manipulate font files" optional = false python-versions = ">=3.8" files = [ - {file = "fonttools-4.54.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7ed7ee041ff7b34cc62f07545e55e1468808691dddfd315d51dd82a6b37ddef2"}, - {file = "fonttools-4.54.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:41bb0b250c8132b2fcac148e2e9198e62ff06f3cc472065dff839327945c5882"}, - {file = "fonttools-4.54.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7965af9b67dd546e52afcf2e38641b5be956d68c425bef2158e95af11d229f10"}, - {file = "fonttools-4.54.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:278913a168f90d53378c20c23b80f4e599dca62fbffae4cc620c8eed476b723e"}, - {file = "fonttools-4.54.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0e88e3018ac809b9662615072dcd6b84dca4c2d991c6d66e1970a112503bba7e"}, - {file = "fonttools-4.54.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:4aa4817f0031206e637d1e685251ac61be64d1adef111060df84fdcbc6ab6c44"}, - {file = "fonttools-4.54.1-cp310-cp310-win32.whl", hash = "sha256:7e3b7d44e18c085fd8c16dcc6f1ad6c61b71ff463636fcb13df7b1b818bd0c02"}, - {file = "fonttools-4.54.1-cp310-cp310-win_amd64.whl", hash = "sha256:dd9cc95b8d6e27d01e1e1f1fae8559ef3c02c76317da650a19047f249acd519d"}, - {file = "fonttools-4.54.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5419771b64248484299fa77689d4f3aeed643ea6630b2ea750eeab219588ba20"}, - {file = "fonttools-4.54.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:301540e89cf4ce89d462eb23a89464fef50915255ece765d10eee8b2bf9d75b2"}, - {file = "fonttools-4.54.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76ae5091547e74e7efecc3cbf8e75200bc92daaeb88e5433c5e3e95ea8ce5aa7"}, - {file = "fonttools-4.54.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82834962b3d7c5ca98cb56001c33cf20eb110ecf442725dc5fdf36d16ed1ab07"}, - {file = "fonttools-4.54.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d26732ae002cc3d2ecab04897bb02ae3f11f06dd7575d1df46acd2f7c012a8d8"}, - {file = "fonttools-4.54.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:58974b4987b2a71ee08ade1e7f47f410c367cdfc5a94fabd599c88165f56213a"}, - {file = "fonttools-4.54.1-cp311-cp311-win32.whl", hash = "sha256:ab774fa225238986218a463f3fe151e04d8c25d7de09df7f0f5fce27b1243dbc"}, - {file = "fonttools-4.54.1-cp311-cp311-win_amd64.whl", hash = "sha256:07e005dc454eee1cc60105d6a29593459a06321c21897f769a281ff2d08939f6"}, - {file = "fonttools-4.54.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:54471032f7cb5fca694b5f1a0aaeba4af6e10ae989df408e0216f7fd6cdc405d"}, - {file = "fonttools-4.54.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8fa92cb248e573daab8d032919623cc309c005086d743afb014c836636166f08"}, - {file = "fonttools-4.54.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a911591200114969befa7f2cb74ac148bce5a91df5645443371aba6d222e263"}, - {file = "fonttools-4.54.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93d458c8a6a354dc8b48fc78d66d2a8a90b941f7fec30e94c7ad9982b1fa6bab"}, - {file = "fonttools-4.54.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5eb2474a7c5be8a5331146758debb2669bf5635c021aee00fd7c353558fc659d"}, - {file = "fonttools-4.54.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c9c563351ddc230725c4bdf7d9e1e92cbe6ae8553942bd1fb2b2ff0884e8b714"}, - {file = "fonttools-4.54.1-cp312-cp312-win32.whl", hash = "sha256:fdb062893fd6d47b527d39346e0c5578b7957dcea6d6a3b6794569370013d9ac"}, - {file = "fonttools-4.54.1-cp312-cp312-win_amd64.whl", hash = "sha256:e4564cf40cebcb53f3dc825e85910bf54835e8a8b6880d59e5159f0f325e637e"}, - {file = "fonttools-4.54.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6e37561751b017cf5c40fce0d90fd9e8274716de327ec4ffb0df957160be3bff"}, - {file = "fonttools-4.54.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:357cacb988a18aace66e5e55fe1247f2ee706e01debc4b1a20d77400354cddeb"}, - {file = "fonttools-4.54.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8e953cc0bddc2beaf3a3c3b5dd9ab7554677da72dfaf46951e193c9653e515a"}, - {file = "fonttools-4.54.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:58d29b9a294573d8319f16f2f79e42428ba9b6480442fa1836e4eb89c4d9d61c"}, - {file = "fonttools-4.54.1-cp313-cp313-win32.whl", hash = "sha256:9ef1b167e22709b46bf8168368b7b5d3efeaaa746c6d39661c1b4405b6352e58"}, - {file = "fonttools-4.54.1-cp313-cp313-win_amd64.whl", hash = "sha256:262705b1663f18c04250bd1242b0515d3bbae177bee7752be67c979b7d47f43d"}, - {file = "fonttools-4.54.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ed2f80ca07025551636c555dec2b755dd005e2ea8fbeb99fc5cdff319b70b23b"}, - {file = "fonttools-4.54.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9dc080e5a1c3b2656caff2ac2633d009b3a9ff7b5e93d0452f40cd76d3da3b3c"}, - {file = "fonttools-4.54.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d152d1be65652fc65e695e5619e0aa0982295a95a9b29b52b85775243c06556"}, - {file = "fonttools-4.54.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8583e563df41fdecef31b793b4dd3af8a9caa03397be648945ad32717a92885b"}, - {file = "fonttools-4.54.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:0d1d353ef198c422515a3e974a1e8d5b304cd54a4c2eebcae708e37cd9eeffb1"}, - {file = "fonttools-4.54.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:fda582236fee135d4daeca056c8c88ec5f6f6d88a004a79b84a02547c8f57386"}, - {file = "fonttools-4.54.1-cp38-cp38-win32.whl", hash = "sha256:e7d82b9e56716ed32574ee106cabca80992e6bbdcf25a88d97d21f73a0aae664"}, - {file = "fonttools-4.54.1-cp38-cp38-win_amd64.whl", hash = "sha256:ada215fd079e23e060157aab12eba0d66704316547f334eee9ff26f8c0d7b8ab"}, - {file = "fonttools-4.54.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f5b8a096e649768c2f4233f947cf9737f8dbf8728b90e2771e2497c6e3d21d13"}, - {file = "fonttools-4.54.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4e10d2e0a12e18f4e2dd031e1bf7c3d7017be5c8dbe524d07706179f355c5dac"}, - {file = "fonttools-4.54.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:31c32d7d4b0958600eac75eaf524b7b7cb68d3a8c196635252b7a2c30d80e986"}, - {file = "fonttools-4.54.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c39287f5c8f4a0c5a55daf9eaf9ccd223ea59eed3f6d467133cc727d7b943a55"}, - {file = "fonttools-4.54.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:a7a310c6e0471602fe3bf8efaf193d396ea561486aeaa7adc1f132e02d30c4b9"}, - {file = "fonttools-4.54.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:d3b659d1029946f4ff9b6183984578041b520ce0f8fb7078bb37ec7445806b33"}, - {file = "fonttools-4.54.1-cp39-cp39-win32.whl", hash = "sha256:e96bc94c8cda58f577277d4a71f51c8e2129b8b36fd05adece6320dd3d57de8a"}, - {file = "fonttools-4.54.1-cp39-cp39-win_amd64.whl", hash = "sha256:e8a4b261c1ef91e7188a30571be6ad98d1c6d9fa2427244c545e2fa0a2494dd7"}, - {file = "fonttools-4.54.1-py3-none-any.whl", hash = "sha256:37cddd62d83dc4f72f7c3f3c2bcf2697e89a30efb152079896544a93907733bd"}, - {file = "fonttools-4.54.1.tar.gz", hash = "sha256:957f669d4922f92c171ba01bef7f29410668db09f6c02111e22b2bce446f3285"}, + {file = "fonttools-4.55.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1dcc07934a2165ccdc3a5a608db56fb3c24b609658a5b340aee4ecf3ba679dc0"}, + {file = "fonttools-4.55.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f7d66c15ba875432a2d2fb419523f5d3d347f91f48f57b8b08a2dfc3c39b8a3f"}, + {file = "fonttools-4.55.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:27e4ae3592e62eba83cd2c4ccd9462dcfa603ff78e09110680a5444c6925d841"}, + {file = "fonttools-4.55.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62d65a3022c35e404d19ca14f291c89cc5890032ff04f6c17af0bd1927299674"}, + {file = "fonttools-4.55.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d342e88764fb201286d185093781bf6628bbe380a913c24adf772d901baa8276"}, + {file = "fonttools-4.55.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:dd68c87a2bfe37c5b33bcda0fba39b65a353876d3b9006fde3adae31f97b3ef5"}, + {file = "fonttools-4.55.3-cp310-cp310-win32.whl", hash = "sha256:1bc7ad24ff98846282eef1cbeac05d013c2154f977a79886bb943015d2b1b261"}, + {file = "fonttools-4.55.3-cp310-cp310-win_amd64.whl", hash = "sha256:b54baf65c52952db65df39fcd4820668d0ef4766c0ccdf32879b77f7c804d5c5"}, + {file = "fonttools-4.55.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8c4491699bad88efe95772543cd49870cf756b019ad56294f6498982408ab03e"}, + {file = "fonttools-4.55.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5323a22eabddf4b24f66d26894f1229261021dacd9d29e89f7872dd8c63f0b8b"}, + {file = "fonttools-4.55.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5480673f599ad410695ca2ddef2dfefe9df779a9a5cda89503881e503c9c7d90"}, + {file = "fonttools-4.55.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da9da6d65cd7aa6b0f806556f4985bcbf603bf0c5c590e61b43aa3e5a0f822d0"}, + {file = "fonttools-4.55.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e894b5bd60d9f473bed7a8f506515549cc194de08064d829464088d23097331b"}, + {file = "fonttools-4.55.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:aee3b57643827e237ff6ec6d28d9ff9766bd8b21e08cd13bff479e13d4b14765"}, + {file = "fonttools-4.55.3-cp311-cp311-win32.whl", hash = "sha256:eb6ca911c4c17eb51853143624d8dc87cdcdf12a711fc38bf5bd21521e79715f"}, + {file = "fonttools-4.55.3-cp311-cp311-win_amd64.whl", hash = "sha256:6314bf82c54c53c71805318fcf6786d986461622dd926d92a465199ff54b1b72"}, + {file = "fonttools-4.55.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f9e736f60f4911061235603a6119e72053073a12c6d7904011df2d8fad2c0e35"}, + {file = "fonttools-4.55.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7a8aa2c5e5b8b3bcb2e4538d929f6589a5c6bdb84fd16e2ed92649fb5454f11c"}, + {file = "fonttools-4.55.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:07f8288aacf0a38d174445fc78377a97fb0b83cfe352a90c9d9c1400571963c7"}, + {file = "fonttools-4.55.3-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8d5e8916c0970fbc0f6f1bece0063363bb5857a7f170121a4493e31c3db3314"}, + {file = "fonttools-4.55.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ae3b6600565b2d80b7c05acb8e24d2b26ac407b27a3f2e078229721ba5698427"}, + {file = "fonttools-4.55.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:54153c49913f45065c8d9e6d0c101396725c5621c8aee744719300f79771d75a"}, + {file = "fonttools-4.55.3-cp312-cp312-win32.whl", hash = "sha256:827e95fdbbd3e51f8b459af5ea10ecb4e30af50221ca103bea68218e9615de07"}, + {file = "fonttools-4.55.3-cp312-cp312-win_amd64.whl", hash = "sha256:e6e8766eeeb2de759e862004aa11a9ea3d6f6d5ec710551a88b476192b64fd54"}, + {file = "fonttools-4.55.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a430178ad3e650e695167cb53242dae3477b35c95bef6525b074d87493c4bf29"}, + {file = "fonttools-4.55.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:529cef2ce91dc44f8e407cc567fae6e49a1786f2fefefa73a294704c415322a4"}, + {file = "fonttools-4.55.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e75f12c82127486fac2d8bfbf5bf058202f54bf4f158d367e41647b972342ca"}, + {file = "fonttools-4.55.3-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:859c358ebf41db18fb72342d3080bce67c02b39e86b9fbcf1610cca14984841b"}, + {file = "fonttools-4.55.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:546565028e244a701f73df6d8dd6be489d01617863ec0c6a42fa25bf45d43048"}, + {file = "fonttools-4.55.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:aca318b77f23523309eec4475d1fbbb00a6b133eb766a8bdc401faba91261abe"}, + {file = "fonttools-4.55.3-cp313-cp313-win32.whl", hash = "sha256:8c5ec45428edaa7022f1c949a632a6f298edc7b481312fc7dc258921e9399628"}, + {file = "fonttools-4.55.3-cp313-cp313-win_amd64.whl", hash = "sha256:11e5de1ee0d95af4ae23c1a138b184b7f06e0b6abacabf1d0db41c90b03d834b"}, + {file = "fonttools-4.55.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:caf8230f3e10f8f5d7593eb6d252a37caf58c480b19a17e250a63dad63834cf3"}, + {file = "fonttools-4.55.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b586ab5b15b6097f2fb71cafa3c98edfd0dba1ad8027229e7b1e204a58b0e09d"}, + {file = "fonttools-4.55.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a8c2794ded89399cc2169c4d0bf7941247b8d5932b2659e09834adfbb01589aa"}, + {file = "fonttools-4.55.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf4fe7c124aa3f4e4c1940880156e13f2f4d98170d35c749e6b4f119a872551e"}, + {file = "fonttools-4.55.3-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:86721fbc389ef5cc1e2f477019e5069e8e4421e8d9576e9c26f840dbb04678de"}, + {file = "fonttools-4.55.3-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:89bdc5d88bdeec1b15af790810e267e8332d92561dce4f0748c2b95c9bdf3926"}, + {file = "fonttools-4.55.3-cp38-cp38-win32.whl", hash = "sha256:bc5dbb4685e51235ef487e4bd501ddfc49be5aede5e40f4cefcccabc6e60fb4b"}, + {file = "fonttools-4.55.3-cp38-cp38-win_amd64.whl", hash = "sha256:cd70de1a52a8ee2d1877b6293af8a2484ac82514f10b1c67c1c5762d38073e56"}, + {file = "fonttools-4.55.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bdcc9f04b36c6c20978d3f060e5323a43f6222accc4e7fcbef3f428e216d96af"}, + {file = "fonttools-4.55.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c3ca99e0d460eff46e033cd3992a969658c3169ffcd533e0a39c63a38beb6831"}, + {file = "fonttools-4.55.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22f38464daa6cdb7b6aebd14ab06609328fe1e9705bb0fcc7d1e69de7109ee02"}, + {file = "fonttools-4.55.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ed63959d00b61959b035c7d47f9313c2c1ece090ff63afea702fe86de00dbed4"}, + {file = "fonttools-4.55.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5e8d657cd7326eeaba27de2740e847c6b39dde2f8d7cd7cc56f6aad404ddf0bd"}, + {file = "fonttools-4.55.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:fb594b5a99943042c702c550d5494bdd7577f6ef19b0bc73877c948a63184a32"}, + {file = "fonttools-4.55.3-cp39-cp39-win32.whl", hash = "sha256:dc5294a3d5c84226e3dbba1b6f61d7ad813a8c0238fceea4e09aa04848c3d851"}, + {file = "fonttools-4.55.3-cp39-cp39-win_amd64.whl", hash = "sha256:aedbeb1db64496d098e6be92b2e63b5fac4e53b1b92032dfc6988e1ea9134a4d"}, + {file = "fonttools-4.55.3-py3-none-any.whl", hash = "sha256:f412604ccbeee81b091b420272841e5ec5ef68967a9790e80bffd0e30b8e2977"}, + {file = "fonttools-4.55.3.tar.gz", hash = "sha256:3983313c2a04d6cc1fe9251f8fc647754cf49a61dac6cb1e7249ae67afaafc45"}, ] [package.extras] @@ -498,6 +858,17 @@ ufo = ["fs (>=2.2.0,<3)"] unicode = ["unicodedata2 (>=15.1.0)"] woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] +[[package]] +name = "fqdn" +version = "1.5.1" +description = "Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers" +optional = false +python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4, <4" +files = [ + {file = "fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014"}, + {file = "fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f"}, +] + [[package]] name = "ghp-import" version = "2.1.0" @@ -515,29 +886,117 @@ python-dateutil = ">=2.8.1" [package.extras] dev = ["flake8", "markdown", "twine", "wheel"] +[[package]] +name = "gitdb" +version = "4.0.12" +description = "Git Object Database" +optional = false +python-versions = ">=3.7" +files = [ + {file = "gitdb-4.0.12-py3-none-any.whl", hash = "sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf"}, + {file = "gitdb-4.0.12.tar.gz", hash = "sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571"}, +] + +[package.dependencies] +smmap = ">=3.0.1,<6" + +[[package]] +name = "gitpython" +version = "3.1.44" +description = "GitPython is a Python library used to interact with Git repositories" +optional = false +python-versions = ">=3.7" +files = [ + {file = "GitPython-3.1.44-py3-none-any.whl", hash = "sha256:9e0e10cda9bed1ee64bc9a6de50e7e38a9c9943241cd7f585f6df3ed28011110"}, + {file = "gitpython-3.1.44.tar.gz", hash = "sha256:c87e30b26253bf5418b01b0660f818967f3c503193838337fe5e573331249269"}, +] + +[package.dependencies] +gitdb = ">=4.0.1,<5" + +[package.extras] +doc = ["sphinx (>=7.1.2,<7.2)", "sphinx-autodoc-typehints", "sphinx_rtd_theme"] +test = ["coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock", "mypy", "pre-commit", "pytest (>=7.3.1)", "pytest-cov", "pytest-instafail", "pytest-mock", "pytest-sugar", "typing-extensions"] + [[package]] name = "griffe" -version = "1.3.2" +version = "1.5.4" description = "Signatures for entire Python programs. Extract the structure, the frame, the skeleton of your project, to generate API documentation or find breaking changes in your API." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "griffe-1.3.2-py3-none-any.whl", hash = "sha256:2e34b5e46507d615915c8e6288bb1a2234bd35dee44d01e40a2bc2f25bd4d10c"}, - {file = "griffe-1.3.2.tar.gz", hash = "sha256:1ec50335aa507ed2445f2dd45a15c9fa3a45f52c9527e880571dfc61912fd60c"}, + {file = "griffe-1.5.4-py3-none-any.whl", hash = "sha256:ed33af890586a5bebc842fcb919fc694b3dc1bc55b7d9e0228de41ce566b4a1d"}, + {file = "griffe-1.5.4.tar.gz", hash = "sha256:073e78ad3e10c8378c2f798bd4ef87b92d8411e9916e157fd366a17cc4fd4e52"}, ] [package.dependencies] colorama = ">=0.4" +[[package]] +name = "h11" +version = "0.14.0" +description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +optional = false +python-versions = ">=3.7" +files = [ + {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, + {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, +] + +[[package]] +name = "httpcore" +version = "1.0.7" +description = "A minimal low-level HTTP client." +optional = false +python-versions = ">=3.8" +files = [ + {file = "httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd"}, + {file = "httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c"}, +] + +[package.dependencies] +certifi = "*" +h11 = ">=0.13,<0.15" + +[package.extras] +asyncio = ["anyio (>=4.0,<5.0)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +trio = ["trio (>=0.22.0,<1.0)"] + +[[package]] +name = "httpx" +version = "0.28.1" +description = "The next generation HTTP client." +optional = false +python-versions = ">=3.8" +files = [ + {file = "httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad"}, + {file = "httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"}, +] + +[package.dependencies] +anyio = "*" +certifi = "*" +httpcore = "==1.*" +idna = "*" + +[package.extras] +brotli = ["brotli", "brotlicffi"] +cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +zstd = ["zstandard (>=0.18.0)"] + [[package]] name = "identify" -version = "2.6.1" +version = "2.6.4" description = "File identification library for Python" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "identify-2.6.1-py2.py3-none-any.whl", hash = "sha256:53863bcac7caf8d2ed85bd20312ea5dcfc22226800f6d6881f232d861db5a8f0"}, - {file = "identify-2.6.1.tar.gz", hash = "sha256:91478c5fb7c3aac5ff7bf9b4344f803843dc586832d5f110d672b19aa1984c98"}, + {file = "identify-2.6.4-py2.py3-none-any.whl", hash = "sha256:993b0f01b97e0568c179bb9196391ff391bfb88a99099dbf5ce392b68f42d0af"}, + {file = "identify-2.6.4.tar.gz", hash = "sha256:285a7d27e397652e8cafe537a6cc97dd470a970f48fb2e9d979aa38eae5513ac"}, ] [package.extras] @@ -568,15 +1027,140 @@ files = [ {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, ] +[[package]] +name = "ipykernel" +version = "6.29.5" +description = "IPython Kernel for Jupyter" +optional = false +python-versions = ">=3.8" +files = [ + {file = "ipykernel-6.29.5-py3-none-any.whl", hash = "sha256:afdb66ba5aa354b09b91379bac28ae4afebbb30e8b39510c9690afb7a10421b5"}, + {file = "ipykernel-6.29.5.tar.gz", hash = "sha256:f093a22c4a40f8828f8e330a9c297cb93dcab13bd9678ded6de8e5cf81c56215"}, +] + +[package.dependencies] +appnope = {version = "*", markers = "platform_system == \"Darwin\""} +comm = ">=0.1.1" +debugpy = ">=1.6.5" +ipython = ">=7.23.1" +jupyter-client = ">=6.1.12" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +matplotlib-inline = ">=0.1" +nest-asyncio = "*" +packaging = "*" +psutil = "*" +pyzmq = ">=24" +tornado = ">=6.1" +traitlets = ">=5.4.0" + +[package.extras] +cov = ["coverage[toml]", "curio", "matplotlib", "pytest-cov", "trio"] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "trio"] +pyqt5 = ["pyqt5"] +pyside6 = ["pyside6"] +test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.23.5)", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "ipython" +version = "8.31.0" +description = "IPython: Productive Interactive Computing" +optional = false +python-versions = ">=3.10" +files = [ + {file = "ipython-8.31.0-py3-none-any.whl", hash = "sha256:46ec58f8d3d076a61d128fe517a51eb730e3aaf0c184ea8c17d16e366660c6a6"}, + {file = "ipython-8.31.0.tar.gz", hash = "sha256:b6a2274606bec6166405ff05e54932ed6e5cfecaca1fc05f2cacde7bb074d70b"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +decorator = "*" +exceptiongroup = {version = "*", markers = "python_version < \"3.11\""} +jedi = ">=0.16" +matplotlib-inline = "*" +pexpect = {version = ">4.3", markers = "sys_platform != \"win32\" and sys_platform != \"emscripten\""} +prompt_toolkit = ">=3.0.41,<3.1.0" +pygments = ">=2.4.0" +stack_data = "*" +traitlets = ">=5.13.0" +typing_extensions = {version = ">=4.6", markers = "python_version < \"3.12\""} + +[package.extras] +all = ["ipython[black,doc,kernel,matplotlib,nbconvert,nbformat,notebook,parallel,qtconsole]", "ipython[test,test-extra]"] +black = ["black"] +doc = ["docrepr", "exceptiongroup", "intersphinx_registry", "ipykernel", "ipython[test]", "matplotlib", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "sphinxcontrib-jquery", "tomli", "typing_extensions"] +kernel = ["ipykernel"] +matplotlib = ["matplotlib"] +nbconvert = ["nbconvert"] +nbformat = ["nbformat"] +notebook = ["ipywidgets", "notebook"] +parallel = ["ipyparallel"] +qtconsole = ["qtconsole"] +test = ["packaging", "pickleshare", "pytest", "pytest-asyncio (<0.22)", "testpath"] +test-extra = ["curio", "ipython[test]", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.23)", "pandas", "trio"] + +[[package]] +name = "ipywidgets" +version = "8.1.5" +description = "Jupyter interactive widgets" +optional = false +python-versions = ">=3.7" +files = [ + {file = "ipywidgets-8.1.5-py3-none-any.whl", hash = "sha256:3290f526f87ae6e77655555baba4f36681c555b8bdbbff430b70e52c34c86245"}, + {file = "ipywidgets-8.1.5.tar.gz", hash = "sha256:870e43b1a35656a80c18c9503bbf2d16802db1cb487eec6fab27d683381dde17"}, +] + +[package.dependencies] +comm = ">=0.1.3" +ipython = ">=6.1.0" +jupyterlab-widgets = ">=3.0.12,<3.1.0" +traitlets = ">=4.3.1" +widgetsnbextension = ">=4.0.12,<4.1.0" + +[package.extras] +test = ["ipykernel", "jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"] + +[[package]] +name = "isoduration" +version = "20.11.0" +description = "Operations with ISO 8601 durations" +optional = false +python-versions = ">=3.7" +files = [ + {file = "isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042"}, + {file = "isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9"}, +] + +[package.dependencies] +arrow = ">=0.15.0" + +[[package]] +name = "jedi" +version = "0.19.2" +description = "An autocompletion tool for Python that can be used for text editors." +optional = false +python-versions = ">=3.6" +files = [ + {file = "jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9"}, + {file = "jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0"}, +] + +[package.dependencies] +parso = ">=0.8.4,<0.9.0" + +[package.extras] +docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alabaster (==0.7.12)", "babel (==2.9.1)", "chardet (==4.0.0)", "commonmark (==0.8.1)", "docutils (==0.17.1)", "future (==0.18.2)", "idna (==2.10)", "imagesize (==1.2.0)", "mock (==1.0.1)", "packaging (==20.9)", "pyparsing (==2.4.7)", "pytz (==2021.1)", "readthedocs-sphinx-ext (==2.1.4)", "recommonmark (==0.5.0)", "requests (==2.25.1)", "six (==1.15.0)", "snowballstemmer (==2.1.0)", "sphinx (==1.8.5)", "sphinx-rtd-theme (==0.4.3)", "sphinxcontrib-serializinghtml (==1.1.4)", "sphinxcontrib-websupport (==1.2.4)", "urllib3 (==1.26.4)"] +qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] +testing = ["Django", "attrs", "colorama", "docopt", "pytest (<9.0.0)"] + [[package]] name = "jinja2" -version = "3.1.4" +version = "3.1.5" description = "A very fast and expressive template engine." optional = false python-versions = ">=3.7" files = [ - {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, - {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, + {file = "jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"}, + {file = "jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb"}, ] [package.dependencies] @@ -585,127 +1169,421 @@ MarkupSafe = ">=2.0" [package.extras] i18n = ["Babel (>=2.7)"] +[[package]] +name = "json5" +version = "0.10.0" +description = "A Python implementation of the JSON5 data format." +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "json5-0.10.0-py3-none-any.whl", hash = "sha256:19b23410220a7271e8377f81ba8aacba2fdd56947fbb137ee5977cbe1f5e8dfa"}, + {file = "json5-0.10.0.tar.gz", hash = "sha256:e66941c8f0a02026943c52c2eb34ebeb2a6f819a0be05920a6f5243cd30fd559"}, +] + +[package.extras] +dev = ["build (==1.2.2.post1)", "coverage (==7.5.3)", "mypy (==1.13.0)", "pip (==24.3.1)", "pylint (==3.2.3)", "ruff (==0.7.3)", "twine (==5.1.1)", "uv (==0.5.1)"] + +[[package]] +name = "jsonpointer" +version = "3.0.0" +description = "Identify specific nodes in a JSON document (RFC 6901)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942"}, + {file = "jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef"}, +] + +[[package]] +name = "jsonschema" +version = "4.23.0" +description = "An implementation of JSON Schema validation for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jsonschema-4.23.0-py3-none-any.whl", hash = "sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566"}, + {file = "jsonschema-4.23.0.tar.gz", hash = "sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4"}, +] + +[package.dependencies] +attrs = ">=22.2.0" +fqdn = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +idna = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +isoduration = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +jsonpointer = {version = ">1.13", optional = true, markers = "extra == \"format-nongpl\""} +jsonschema-specifications = ">=2023.03.6" +referencing = ">=0.28.4" +rfc3339-validator = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +rfc3986-validator = {version = ">0.1.0", optional = true, markers = "extra == \"format-nongpl\""} +rpds-py = ">=0.7.1" +uri-template = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +webcolors = {version = ">=24.6.0", optional = true, markers = "extra == \"format-nongpl\""} + +[package.extras] +format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] +format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=24.6.0)"] + +[[package]] +name = "jsonschema-specifications" +version = "2024.10.1" +description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" +optional = false +python-versions = ">=3.9" +files = [ + {file = "jsonschema_specifications-2024.10.1-py3-none-any.whl", hash = "sha256:a09a0680616357d9a0ecf05c12ad234479f549239d0f5b55f3deea67475da9bf"}, + {file = "jsonschema_specifications-2024.10.1.tar.gz", hash = "sha256:0f38b83639958ce1152d02a7f062902c41c8fd20d558b0c34344292d417ae272"}, +] + +[package.dependencies] +referencing = ">=0.31.0" + +[[package]] +name = "jupyter" +version = "1.1.1" +description = "Jupyter metapackage. Install all the Jupyter components in one go." +optional = false +python-versions = "*" +files = [ + {file = "jupyter-1.1.1-py2.py3-none-any.whl", hash = "sha256:7a59533c22af65439b24bbe60373a4e95af8f16ac65a6c00820ad378e3f7cc83"}, + {file = "jupyter-1.1.1.tar.gz", hash = "sha256:d55467bceabdea49d7e3624af7e33d59c37fff53ed3a350e1ac957bed731de7a"}, +] + +[package.dependencies] +ipykernel = "*" +ipywidgets = "*" +jupyter-console = "*" +jupyterlab = "*" +nbconvert = "*" +notebook = "*" + +[[package]] +name = "jupyter-client" +version = "8.6.3" +description = "Jupyter protocol implementation and client libraries" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_client-8.6.3-py3-none-any.whl", hash = "sha256:e8a19cc986cc45905ac3362915f410f3af85424b4c0905e94fa5f2cb08e8f23f"}, + {file = "jupyter_client-8.6.3.tar.gz", hash = "sha256:35b3a0947c4a6e9d589eb97d7d4cd5e90f910ee73101611f01283732bd6d9419"}, +] + +[package.dependencies] +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +python-dateutil = ">=2.8.2" +pyzmq = ">=23.0" +tornado = ">=6.2" +traitlets = ">=5.3" + +[package.extras] +docs = ["ipykernel", "myst-parser", "pydata-sphinx-theme", "sphinx (>=4)", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pytest (<8.2.0)", "pytest-cov", "pytest-jupyter[client] (>=0.4.1)", "pytest-timeout"] + +[[package]] +name = "jupyter-console" +version = "6.6.3" +description = "Jupyter terminal console" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jupyter_console-6.6.3-py3-none-any.whl", hash = "sha256:309d33409fcc92ffdad25f0bcdf9a4a9daa61b6f341177570fdac03de5352485"}, + {file = "jupyter_console-6.6.3.tar.gz", hash = "sha256:566a4bf31c87adbfadf22cdf846e3069b59a71ed5da71d6ba4d8aaad14a53539"}, +] + +[package.dependencies] +ipykernel = ">=6.14" +ipython = "*" +jupyter-client = ">=7.0.0" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +prompt-toolkit = ">=3.0.30" +pygments = "*" +pyzmq = ">=17" +traitlets = ">=5.4" + +[package.extras] +test = ["flaky", "pexpect", "pytest"] + +[[package]] +name = "jupyter-core" +version = "5.7.2" +description = "Jupyter core package. A base package on which Jupyter projects rely." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_core-5.7.2-py3-none-any.whl", hash = "sha256:4f7315d2f6b4bcf2e3e7cb6e46772eba760ae459cd1f59d29eb57b0a01bd7409"}, + {file = "jupyter_core-5.7.2.tar.gz", hash = "sha256:aa5f8d32bbf6b431ac830496da7392035d6f61b4f54872f15c4bd2a9c3f536d9"}, +] + +[package.dependencies] +platformdirs = ">=2.5" +pywin32 = {version = ">=300", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""} +traitlets = ">=5.3" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "traitlets"] +test = ["ipykernel", "pre-commit", "pytest (<8)", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "jupyter-events" +version = "0.11.0" +description = "Jupyter Event System library" +optional = false +python-versions = ">=3.9" +files = [ + {file = "jupyter_events-0.11.0-py3-none-any.whl", hash = "sha256:36399b41ce1ca45fe8b8271067d6a140ffa54cec4028e95491c93b78a855cacf"}, + {file = "jupyter_events-0.11.0.tar.gz", hash = "sha256:c0bc56a37aac29c1fbc3bcfbddb8c8c49533f9cf11f1c4e6adadba936574ab90"}, +] + +[package.dependencies] +jsonschema = {version = ">=4.18.0", extras = ["format-nongpl"]} +python-json-logger = ">=2.0.4" +pyyaml = ">=5.3" +referencing = "*" +rfc3339-validator = "*" +rfc3986-validator = ">=0.1.1" +traitlets = ">=5.3" + +[package.extras] +cli = ["click", "rich"] +docs = ["jupyterlite-sphinx", "myst-parser", "pydata-sphinx-theme (>=0.16)", "sphinx (>=8)", "sphinxcontrib-spelling"] +test = ["click", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.19.0)", "pytest-console-scripts", "rich"] + +[[package]] +name = "jupyter-lsp" +version = "2.2.5" +description = "Multi-Language Server WebSocket proxy for Jupyter Notebook/Lab server" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter-lsp-2.2.5.tar.gz", hash = "sha256:793147a05ad446f809fd53ef1cd19a9f5256fd0a2d6b7ce943a982cb4f545001"}, + {file = "jupyter_lsp-2.2.5-py3-none-any.whl", hash = "sha256:45fbddbd505f3fbfb0b6cb2f1bc5e15e83ab7c79cd6e89416b248cb3c00c11da"}, +] + +[package.dependencies] +jupyter-server = ">=1.1.2" + +[[package]] +name = "jupyter-server" +version = "2.15.0" +description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." +optional = false +python-versions = ">=3.9" +files = [ + {file = "jupyter_server-2.15.0-py3-none-any.whl", hash = "sha256:872d989becf83517012ee669f09604aa4a28097c0bd90b2f424310156c2cdae3"}, + {file = "jupyter_server-2.15.0.tar.gz", hash = "sha256:9d446b8697b4f7337a1b7cdcac40778babdd93ba614b6d68ab1c0c918f1c4084"}, +] + +[package.dependencies] +anyio = ">=3.1.0" +argon2-cffi = ">=21.1" +jinja2 = ">=3.0.3" +jupyter-client = ">=7.4.4" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-events = ">=0.11.0" +jupyter-server-terminals = ">=0.4.4" +nbconvert = ">=6.4.4" +nbformat = ">=5.3.0" +overrides = ">=5.0" +packaging = ">=22.0" +prometheus-client = ">=0.9" +pywinpty = {version = ">=2.0.1", markers = "os_name == \"nt\""} +pyzmq = ">=24" +send2trash = ">=1.8.2" +terminado = ">=0.8.3" +tornado = ">=6.2.0" +traitlets = ">=5.6.0" +websocket-client = ">=1.7" + +[package.extras] +docs = ["ipykernel", "jinja2", "jupyter-client", "myst-parser", "nbformat", "prometheus-client", "pydata-sphinx-theme", "send2trash", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-openapi (>=0.8.0)", "sphinxcontrib-spelling", "sphinxemoji", "tornado", "typing-extensions"] +test = ["flaky", "ipykernel", "pre-commit", "pytest (>=7.0,<9)", "pytest-console-scripts", "pytest-jupyter[server] (>=0.7)", "pytest-timeout", "requests"] + +[[package]] +name = "jupyter-server-terminals" +version = "0.5.3" +description = "A Jupyter Server Extension Providing Terminals." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_server_terminals-0.5.3-py3-none-any.whl", hash = "sha256:41ee0d7dc0ebf2809c668e0fc726dfaf258fcd3e769568996ca731b6194ae9aa"}, + {file = "jupyter_server_terminals-0.5.3.tar.gz", hash = "sha256:5ae0295167220e9ace0edcfdb212afd2b01ee8d179fe6f23c899590e9b8a5269"}, +] + +[package.dependencies] +pywinpty = {version = ">=2.0.3", markers = "os_name == \"nt\""} +terminado = ">=0.8.3" + +[package.extras] +docs = ["jinja2", "jupyter-server", "mistune (<4.0)", "myst-parser", "nbformat", "packaging", "pydata-sphinx-theme", "sphinxcontrib-github-alt", "sphinxcontrib-openapi", "sphinxcontrib-spelling", "sphinxemoji", "tornado"] +test = ["jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-jupyter[server] (>=0.5.3)", "pytest-timeout"] + +[[package]] +name = "jupyterlab" +version = "4.3.4" +description = "JupyterLab computational environment" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyterlab-4.3.4-py3-none-any.whl", hash = "sha256:b754c2601c5be6adf87cb5a1d8495d653ffb945f021939f77776acaa94dae952"}, + {file = "jupyterlab-4.3.4.tar.gz", hash = "sha256:f0bb9b09a04766e3423cccc2fc23169aa2ffedcdf8713e9e0fb33cac0b6859d0"}, +] + +[package.dependencies] +async-lru = ">=1.0.0" +httpx = ">=0.25.0" +ipykernel = ">=6.5.0" +jinja2 = ">=3.0.3" +jupyter-core = "*" +jupyter-lsp = ">=2.0.0" +jupyter-server = ">=2.4.0,<3" +jupyterlab-server = ">=2.27.1,<3" +notebook-shim = ">=0.2" +packaging = "*" +setuptools = ">=40.8.0" +tomli = {version = ">=1.2.2", markers = "python_version < \"3.11\""} +tornado = ">=6.2.0" +traitlets = "*" + +[package.extras] +dev = ["build", "bump2version", "coverage", "hatch", "pre-commit", "pytest-cov", "ruff (==0.6.9)"] +docs = ["jsx-lexer", "myst-parser", "pydata-sphinx-theme (>=0.13.0)", "pytest", "pytest-check-links", "pytest-jupyter", "sphinx (>=1.8,<8.1.0)", "sphinx-copybutton"] +docs-screenshots = ["altair (==5.4.1)", "ipython (==8.16.1)", "ipywidgets (==8.1.5)", "jupyterlab-geojson (==3.4.0)", "jupyterlab-language-pack-zh-cn (==4.2.post3)", "matplotlib (==3.9.2)", "nbconvert (>=7.0.0)", "pandas (==2.2.3)", "scipy (==1.14.1)", "vega-datasets (==0.9.0)"] +test = ["coverage", "pytest (>=7.0)", "pytest-check-links (>=0.7)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter (>=0.5.3)", "pytest-timeout", "pytest-tornasync", "requests", "requests-cache", "virtualenv"] +upgrade-extension = ["copier (>=9,<10)", "jinja2-time (<0.3)", "pydantic (<3.0)", "pyyaml-include (<3.0)", "tomli-w (<2.0)"] + +[[package]] +name = "jupyterlab-pygments" +version = "0.3.0" +description = "Pygments theme using JupyterLab CSS variables" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyterlab_pygments-0.3.0-py3-none-any.whl", hash = "sha256:841a89020971da1d8693f1a99997aefc5dc424bb1b251fd6322462a1b8842780"}, + {file = "jupyterlab_pygments-0.3.0.tar.gz", hash = "sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d"}, +] + +[[package]] +name = "jupyterlab-server" +version = "2.27.3" +description = "A set of server components for JupyterLab and JupyterLab like applications." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyterlab_server-2.27.3-py3-none-any.whl", hash = "sha256:e697488f66c3db49df675158a77b3b017520d772c6e1548c7d9bcc5df7944ee4"}, + {file = "jupyterlab_server-2.27.3.tar.gz", hash = "sha256:eb36caca59e74471988f0ae25c77945610b887f777255aa21f8065def9e51ed4"}, +] + +[package.dependencies] +babel = ">=2.10" +jinja2 = ">=3.0.3" +json5 = ">=0.9.0" +jsonschema = ">=4.18.0" +jupyter-server = ">=1.21,<3" +packaging = ">=21.3" +requests = ">=2.31" + +[package.extras] +docs = ["autodoc-traits", "jinja2 (<3.2.0)", "mistune (<4)", "myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-copybutton", "sphinxcontrib-openapi (>0.8)"] +openapi = ["openapi-core (>=0.18.0,<0.19.0)", "ruamel-yaml"] +test = ["hatch", "ipykernel", "openapi-core (>=0.18.0,<0.19.0)", "openapi-spec-validator (>=0.6.0,<0.8.0)", "pytest (>=7.0,<8)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter[server] (>=0.6.2)", "pytest-timeout", "requests-mock", "ruamel-yaml", "sphinxcontrib-spelling", "strict-rfc3339", "werkzeug"] + +[[package]] +name = "jupyterlab-widgets" +version = "3.0.13" +description = "Jupyter interactive widgets for JupyterLab" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jupyterlab_widgets-3.0.13-py3-none-any.whl", hash = "sha256:e3cda2c233ce144192f1e29914ad522b2f4c40e77214b0cc97377ca3d323db54"}, + {file = "jupyterlab_widgets-3.0.13.tar.gz", hash = "sha256:a2966d385328c1942b683a8cd96b89b8dd82c8b8f81dda902bb2bc06d46f5bed"}, +] + [[package]] name = "kiwisolver" -version = "1.4.7" +version = "1.4.8" description = "A fast implementation of the Cassowary constraint solver" optional = false -python-versions = ">=3.8" +python-versions = ">=3.10" files = [ - {file = "kiwisolver-1.4.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8a9c83f75223d5e48b0bc9cb1bf2776cf01563e00ade8775ffe13b0b6e1af3a6"}, - {file = "kiwisolver-1.4.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:58370b1ffbd35407444d57057b57da5d6549d2d854fa30249771775c63b5fe17"}, - {file = "kiwisolver-1.4.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:aa0abdf853e09aff551db11fce173e2177d00786c688203f52c87ad7fcd91ef9"}, - {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8d53103597a252fb3ab8b5845af04c7a26d5e7ea8122303dd7a021176a87e8b9"}, - {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:88f17c5ffa8e9462fb79f62746428dd57b46eb931698e42e990ad63103f35e6c"}, - {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88a9ca9c710d598fd75ee5de59d5bda2684d9db36a9f50b6125eaea3969c2599"}, - {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f4d742cb7af1c28303a51b7a27aaee540e71bb8e24f68c736f6f2ffc82f2bf05"}, - {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e28c7fea2196bf4c2f8d46a0415c77a1c480cc0724722f23d7410ffe9842c407"}, - {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e968b84db54f9d42046cf154e02911e39c0435c9801681e3fc9ce8a3c4130278"}, - {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0c18ec74c0472de033e1bebb2911c3c310eef5649133dd0bedf2a169a1b269e5"}, - {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8f0ea6da6d393d8b2e187e6a5e3fb81f5862010a40c3945e2c6d12ae45cfb2ad"}, - {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:f106407dda69ae456dd1227966bf445b157ccc80ba0dff3802bb63f30b74e895"}, - {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:84ec80df401cfee1457063732d90022f93951944b5b58975d34ab56bb150dfb3"}, - {file = "kiwisolver-1.4.7-cp310-cp310-win32.whl", hash = "sha256:71bb308552200fb2c195e35ef05de12f0c878c07fc91c270eb3d6e41698c3bcc"}, - {file = "kiwisolver-1.4.7-cp310-cp310-win_amd64.whl", hash = "sha256:44756f9fd339de0fb6ee4f8c1696cfd19b2422e0d70b4cefc1cc7f1f64045a8c"}, - {file = "kiwisolver-1.4.7-cp310-cp310-win_arm64.whl", hash = "sha256:78a42513018c41c2ffd262eb676442315cbfe3c44eed82385c2ed043bc63210a"}, - {file = "kiwisolver-1.4.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d2b0e12a42fb4e72d509fc994713d099cbb15ebf1103545e8a45f14da2dfca54"}, - {file = "kiwisolver-1.4.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2a8781ac3edc42ea4b90bc23e7d37b665d89423818e26eb6df90698aa2287c95"}, - {file = "kiwisolver-1.4.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:46707a10836894b559e04b0fd143e343945c97fd170d69a2d26d640b4e297935"}, - {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef97b8df011141c9b0f6caf23b29379f87dd13183c978a30a3c546d2c47314cb"}, - {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ab58c12a2cd0fc769089e6d38466c46d7f76aced0a1f54c77652446733d2d02"}, - {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:803b8e1459341c1bb56d1c5c010406d5edec8a0713a0945851290a7930679b51"}, - {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f9a9e8a507420fe35992ee9ecb302dab68550dedc0da9e2880dd88071c5fb052"}, - {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18077b53dc3bb490e330669a99920c5e6a496889ae8c63b58fbc57c3d7f33a18"}, - {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6af936f79086a89b3680a280c47ea90b4df7047b5bdf3aa5c524bbedddb9e545"}, - {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:3abc5b19d24af4b77d1598a585b8a719beb8569a71568b66f4ebe1fb0449460b"}, - {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:933d4de052939d90afbe6e9d5273ae05fb836cc86c15b686edd4b3560cc0ee36"}, - {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:65e720d2ab2b53f1f72fb5da5fb477455905ce2c88aaa671ff0a447c2c80e8e3"}, - {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3bf1ed55088f214ba6427484c59553123fdd9b218a42bbc8c6496d6754b1e523"}, - {file = "kiwisolver-1.4.7-cp311-cp311-win32.whl", hash = "sha256:4c00336b9dd5ad96d0a558fd18a8b6f711b7449acce4c157e7343ba92dd0cf3d"}, - {file = "kiwisolver-1.4.7-cp311-cp311-win_amd64.whl", hash = "sha256:929e294c1ac1e9f615c62a4e4313ca1823ba37326c164ec720a803287c4c499b"}, - {file = "kiwisolver-1.4.7-cp311-cp311-win_arm64.whl", hash = "sha256:e33e8fbd440c917106b237ef1a2f1449dfbb9b6f6e1ce17c94cd6a1e0d438376"}, - {file = "kiwisolver-1.4.7-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:5360cc32706dab3931f738d3079652d20982511f7c0ac5711483e6eab08efff2"}, - {file = "kiwisolver-1.4.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:942216596dc64ddb25adb215c3c783215b23626f8d84e8eff8d6d45c3f29f75a"}, - {file = "kiwisolver-1.4.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:48b571ecd8bae15702e4f22d3ff6a0f13e54d3d00cd25216d5e7f658242065ee"}, - {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ad42ba922c67c5f219097b28fae965e10045ddf145d2928bfac2eb2e17673640"}, - {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:612a10bdae23404a72941a0fc8fa2660c6ea1217c4ce0dbcab8a8f6543ea9e7f"}, - {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9e838bba3a3bac0fe06d849d29772eb1afb9745a59710762e4ba3f4cb8424483"}, - {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:22f499f6157236c19f4bbbd472fa55b063db77a16cd74d49afe28992dff8c258"}, - {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:693902d433cf585133699972b6d7c42a8b9f8f826ebcaf0132ff55200afc599e"}, - {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4e77f2126c3e0b0d055f44513ed349038ac180371ed9b52fe96a32aa071a5107"}, - {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:657a05857bda581c3656bfc3b20e353c232e9193eb167766ad2dc58b56504948"}, - {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4bfa75a048c056a411f9705856abfc872558e33c055d80af6a380e3658766038"}, - {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:34ea1de54beef1c104422d210c47c7d2a4999bdecf42c7b5718fbe59a4cac383"}, - {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:90da3b5f694b85231cf93586dad5e90e2d71b9428f9aad96952c99055582f520"}, - {file = "kiwisolver-1.4.7-cp312-cp312-win32.whl", hash = "sha256:18e0cca3e008e17fe9b164b55735a325140a5a35faad8de92dd80265cd5eb80b"}, - {file = "kiwisolver-1.4.7-cp312-cp312-win_amd64.whl", hash = "sha256:58cb20602b18f86f83a5c87d3ee1c766a79c0d452f8def86d925e6c60fbf7bfb"}, - {file = "kiwisolver-1.4.7-cp312-cp312-win_arm64.whl", hash = "sha256:f5a8b53bdc0b3961f8b6125e198617c40aeed638b387913bf1ce78afb1b0be2a"}, - {file = "kiwisolver-1.4.7-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2e6039dcbe79a8e0f044f1c39db1986a1b8071051efba3ee4d74f5b365f5226e"}, - {file = "kiwisolver-1.4.7-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a1ecf0ac1c518487d9d23b1cd7139a6a65bc460cd101ab01f1be82ecf09794b6"}, - {file = "kiwisolver-1.4.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7ab9ccab2b5bd5702ab0803676a580fffa2aa178c2badc5557a84cc943fcf750"}, - {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f816dd2277f8d63d79f9c8473a79fe54047bc0467754962840782c575522224d"}, - {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf8bcc23ceb5a1b624572a1623b9f79d2c3b337c8c455405ef231933a10da379"}, - {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dea0bf229319828467d7fca8c7c189780aa9ff679c94539eed7532ebe33ed37c"}, - {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c06a4c7cf15ec739ce0e5971b26c93638730090add60e183530d70848ebdd34"}, - {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:913983ad2deb14e66d83c28b632fd35ba2b825031f2fa4ca29675e665dfecbe1"}, - {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5337ec7809bcd0f424c6b705ecf97941c46279cf5ed92311782c7c9c2026f07f"}, - {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4c26ed10c4f6fa6ddb329a5120ba3b6db349ca192ae211e882970bfc9d91420b"}, - {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c619b101e6de2222c1fcb0531e1b17bbffbe54294bfba43ea0d411d428618c27"}, - {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:073a36c8273647592ea332e816e75ef8da5c303236ec0167196793eb1e34657a"}, - {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3ce6b2b0231bda412463e152fc18335ba32faf4e8c23a754ad50ffa70e4091ee"}, - {file = "kiwisolver-1.4.7-cp313-cp313-win32.whl", hash = "sha256:f4c9aee212bc89d4e13f58be11a56cc8036cabad119259d12ace14b34476fd07"}, - {file = "kiwisolver-1.4.7-cp313-cp313-win_amd64.whl", hash = "sha256:8a3ec5aa8e38fc4c8af308917ce12c536f1c88452ce554027e55b22cbbfbff76"}, - {file = "kiwisolver-1.4.7-cp313-cp313-win_arm64.whl", hash = "sha256:76c8094ac20ec259471ac53e774623eb62e6e1f56cd8690c67ce6ce4fcb05650"}, - {file = "kiwisolver-1.4.7-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5d5abf8f8ec1f4e22882273c423e16cae834c36856cac348cfbfa68e01c40f3a"}, - {file = "kiwisolver-1.4.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:aeb3531b196ef6f11776c21674dba836aeea9d5bd1cf630f869e3d90b16cfade"}, - {file = "kiwisolver-1.4.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b7d755065e4e866a8086c9bdada157133ff466476a2ad7861828e17b6026e22c"}, - {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08471d4d86cbaec61f86b217dd938a83d85e03785f51121e791a6e6689a3be95"}, - {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7bbfcb7165ce3d54a3dfbe731e470f65739c4c1f85bb1018ee912bae139e263b"}, - {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5d34eb8494bea691a1a450141ebb5385e4b69d38bb8403b5146ad279f4b30fa3"}, - {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9242795d174daa40105c1d86aba618e8eab7bf96ba8c3ee614da8302a9f95503"}, - {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:a0f64a48bb81af7450e641e3fe0b0394d7381e342805479178b3d335d60ca7cf"}, - {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:8e045731a5416357638d1700927529e2b8ab304811671f665b225f8bf8d8f933"}, - {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:4322872d5772cae7369f8351da1edf255a604ea7087fe295411397d0cfd9655e"}, - {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:e1631290ee9271dffe3062d2634c3ecac02c83890ada077d225e081aca8aab89"}, - {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:edcfc407e4eb17e037bca59be0e85a2031a2ac87e4fed26d3e9df88b4165f92d"}, - {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:4d05d81ecb47d11e7f8932bd8b61b720bf0b41199358f3f5e36d38e28f0532c5"}, - {file = "kiwisolver-1.4.7-cp38-cp38-win32.whl", hash = "sha256:b38ac83d5f04b15e515fd86f312479d950d05ce2368d5413d46c088dda7de90a"}, - {file = "kiwisolver-1.4.7-cp38-cp38-win_amd64.whl", hash = "sha256:d83db7cde68459fc803052a55ace60bea2bae361fc3b7a6d5da07e11954e4b09"}, - {file = "kiwisolver-1.4.7-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3f9362ecfca44c863569d3d3c033dbe8ba452ff8eed6f6b5806382741a1334bd"}, - {file = "kiwisolver-1.4.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e8df2eb9b2bac43ef8b082e06f750350fbbaf2887534a5be97f6cf07b19d9583"}, - {file = "kiwisolver-1.4.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f32d6edbc638cde7652bd690c3e728b25332acbadd7cad670cc4a02558d9c417"}, - {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:e2e6c39bd7b9372b0be21456caab138e8e69cc0fc1190a9dfa92bd45a1e6e904"}, - {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:dda56c24d869b1193fcc763f1284b9126550eaf84b88bbc7256e15028f19188a"}, - {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79849239c39b5e1fd906556c474d9b0439ea6792b637511f3fe3a41158d89ca8"}, - {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5e3bc157fed2a4c02ec468de4ecd12a6e22818d4f09cde2c31ee3226ffbefab2"}, - {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3da53da805b71e41053dc670f9a820d1157aae77b6b944e08024d17bcd51ef88"}, - {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8705f17dfeb43139a692298cb6637ee2e59c0194538153e83e9ee0c75c2eddde"}, - {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:82a5c2f4b87c26bb1a0ef3d16b5c4753434633b83d365cc0ddf2770c93829e3c"}, - {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce8be0466f4c0d585cdb6c1e2ed07232221df101a4c6f28821d2aa754ca2d9e2"}, - {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:409afdfe1e2e90e6ee7fc896f3df9a7fec8e793e58bfa0d052c8a82f99c37abb"}, - {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5b9c3f4ee0b9a439d2415012bd1b1cc2df59e4d6a9939f4d669241d30b414327"}, - {file = "kiwisolver-1.4.7-cp39-cp39-win32.whl", hash = "sha256:a79ae34384df2b615eefca647a2873842ac3b596418032bef9a7283675962644"}, - {file = "kiwisolver-1.4.7-cp39-cp39-win_amd64.whl", hash = "sha256:cf0438b42121a66a3a667de17e779330fc0f20b0d97d59d2f2121e182b0505e4"}, - {file = "kiwisolver-1.4.7-cp39-cp39-win_arm64.whl", hash = "sha256:764202cc7e70f767dab49e8df52c7455e8de0df5d858fa801a11aa0d882ccf3f"}, - {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:94252291e3fe68001b1dd747b4c0b3be12582839b95ad4d1b641924d68fd4643"}, - {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:5b7dfa3b546da08a9f622bb6becdb14b3e24aaa30adba66749d38f3cc7ea9706"}, - {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd3de6481f4ed8b734da5df134cd5a6a64fe32124fe83dde1e5b5f29fe30b1e6"}, - {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a91b5f9f1205845d488c928e8570dcb62b893372f63b8b6e98b863ebd2368ff2"}, - {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40fa14dbd66b8b8f470d5fc79c089a66185619d31645f9b0773b88b19f7223c4"}, - {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:eb542fe7933aa09d8d8f9d9097ef37532a7df6497819d16efe4359890a2f417a"}, - {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:bfa1acfa0c54932d5607e19a2c24646fb4c1ae2694437789129cf099789a3b00"}, - {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:eee3ea935c3d227d49b4eb85660ff631556841f6e567f0f7bda972df6c2c9935"}, - {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f3160309af4396e0ed04db259c3ccbfdc3621b5559b5453075e5de555e1f3a1b"}, - {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a17f6a29cf8935e587cc8a4dbfc8368c55edc645283db0ce9801016f83526c2d"}, - {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:10849fb2c1ecbfae45a693c070e0320a91b35dd4bcf58172c023b994283a124d"}, - {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:ac542bf38a8a4be2dc6b15248d36315ccc65f0743f7b1a76688ffb6b5129a5c2"}, - {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8b01aac285f91ca889c800042c35ad3b239e704b150cfd3382adfc9dcc780e39"}, - {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:48be928f59a1f5c8207154f935334d374e79f2b5d212826307d072595ad76a2e"}, - {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f37cfe618a117e50d8c240555331160d73d0411422b59b5ee217843d7b693608"}, - {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:599b5c873c63a1f6ed7eead644a8a380cfbdf5db91dcb6f85707aaab213b1674"}, - {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:801fa7802e5cfabe3ab0c81a34c323a319b097dfb5004be950482d882f3d7225"}, - {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:0c6c43471bc764fad4bc99c5c2d6d16a676b1abf844ca7c8702bdae92df01ee0"}, - {file = "kiwisolver-1.4.7.tar.gz", hash = "sha256:9893ff81bd7107f7b685d3017cc6583daadb4fc26e4a888350df530e41980a60"}, + {file = "kiwisolver-1.4.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:88c6f252f6816a73b1f8c904f7bbe02fd67c09a69f7cb8a0eecdbf5ce78e63db"}, + {file = "kiwisolver-1.4.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c72941acb7b67138f35b879bbe85be0f6c6a70cab78fe3ef6db9c024d9223e5b"}, + {file = "kiwisolver-1.4.8-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ce2cf1e5688edcb727fdf7cd1bbd0b6416758996826a8be1d958f91880d0809d"}, + {file = "kiwisolver-1.4.8-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:c8bf637892dc6e6aad2bc6d4d69d08764166e5e3f69d469e55427b6ac001b19d"}, + {file = "kiwisolver-1.4.8-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:034d2c891f76bd3edbdb3ea11140d8510dca675443da7304205a2eaa45d8334c"}, + {file = "kiwisolver-1.4.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d47b28d1dfe0793d5e96bce90835e17edf9a499b53969b03c6c47ea5985844c3"}, + {file = "kiwisolver-1.4.8-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb158fe28ca0c29f2260cca8c43005329ad58452c36f0edf298204de32a9a3ed"}, + {file = "kiwisolver-1.4.8-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5536185fce131780ebd809f8e623bf4030ce1b161353166c49a3c74c287897f"}, + {file = "kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:369b75d40abedc1da2c1f4de13f3482cb99e3237b38726710f4a793432b1c5ff"}, + {file = "kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:641f2ddf9358c80faa22e22eb4c9f54bd3f0e442e038728f500e3b978d00aa7d"}, + {file = "kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d561d2d8883e0819445cfe58d7ddd673e4015c3c57261d7bdcd3710d0d14005c"}, + {file = "kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:1732e065704b47c9afca7ffa272f845300a4eb959276bf6970dc07265e73b605"}, + {file = "kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:bcb1ebc3547619c3b58a39e2448af089ea2ef44b37988caf432447374941574e"}, + {file = "kiwisolver-1.4.8-cp310-cp310-win_amd64.whl", hash = "sha256:89c107041f7b27844179ea9c85d6da275aa55ecf28413e87624d033cf1f6b751"}, + {file = "kiwisolver-1.4.8-cp310-cp310-win_arm64.whl", hash = "sha256:b5773efa2be9eb9fcf5415ea3ab70fc785d598729fd6057bea38d539ead28271"}, + {file = "kiwisolver-1.4.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a4d3601908c560bdf880f07d94f31d734afd1bb71e96585cace0e38ef44c6d84"}, + {file = "kiwisolver-1.4.8-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:856b269c4d28a5c0d5e6c1955ec36ebfd1651ac00e1ce0afa3e28da95293b561"}, + {file = "kiwisolver-1.4.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c2b9a96e0f326205af81a15718a9073328df1173a2619a68553decb7097fd5d7"}, + {file = "kiwisolver-1.4.8-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c5020c83e8553f770cb3b5fc13faac40f17e0b205bd237aebd21d53d733adb03"}, + {file = "kiwisolver-1.4.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dace81d28c787956bfbfbbfd72fdcef014f37d9b48830829e488fdb32b49d954"}, + {file = "kiwisolver-1.4.8-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:11e1022b524bd48ae56c9b4f9296bce77e15a2e42a502cceba602f804b32bb79"}, + {file = "kiwisolver-1.4.8-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b9b4d2892fefc886f30301cdd80debd8bb01ecdf165a449eb6e78f79f0fabd6"}, + {file = "kiwisolver-1.4.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a96c0e790ee875d65e340ab383700e2b4891677b7fcd30a699146f9384a2bb0"}, + {file = "kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:23454ff084b07ac54ca8be535f4174170c1094a4cff78fbae4f73a4bcc0d4dab"}, + {file = "kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:87b287251ad6488e95b4f0b4a79a6d04d3ea35fde6340eb38fbd1ca9cd35bbbc"}, + {file = "kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:b21dbe165081142b1232a240fc6383fd32cdd877ca6cc89eab93e5f5883e1c25"}, + {file = "kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:768cade2c2df13db52475bd28d3a3fac8c9eff04b0e9e2fda0f3760f20b3f7fc"}, + {file = "kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d47cfb2650f0e103d4bf68b0b5804c68da97272c84bb12850d877a95c056bd67"}, + {file = "kiwisolver-1.4.8-cp311-cp311-win_amd64.whl", hash = "sha256:ed33ca2002a779a2e20eeb06aea7721b6e47f2d4b8a8ece979d8ba9e2a167e34"}, + {file = "kiwisolver-1.4.8-cp311-cp311-win_arm64.whl", hash = "sha256:16523b40aab60426ffdebe33ac374457cf62863e330a90a0383639ce14bf44b2"}, + {file = "kiwisolver-1.4.8-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d6af5e8815fd02997cb6ad9bbed0ee1e60014438ee1a5c2444c96f87b8843502"}, + {file = "kiwisolver-1.4.8-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bade438f86e21d91e0cf5dd7c0ed00cda0f77c8c1616bd83f9fc157fa6760d31"}, + {file = "kiwisolver-1.4.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b83dc6769ddbc57613280118fb4ce3cd08899cc3369f7d0e0fab518a7cf37fdb"}, + {file = "kiwisolver-1.4.8-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:111793b232842991be367ed828076b03d96202c19221b5ebab421ce8bcad016f"}, + {file = "kiwisolver-1.4.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:257af1622860e51b1a9d0ce387bf5c2c4f36a90594cb9514f55b074bcc787cfc"}, + {file = "kiwisolver-1.4.8-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:69b5637c3f316cab1ec1c9a12b8c5f4750a4c4b71af9157645bf32830e39c03a"}, + {file = "kiwisolver-1.4.8-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:782bb86f245ec18009890e7cb8d13a5ef54dcf2ebe18ed65f795e635a96a1c6a"}, + {file = "kiwisolver-1.4.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc978a80a0db3a66d25767b03688f1147a69e6237175c0f4ffffaaedf744055a"}, + {file = "kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:36dbbfd34838500a31f52c9786990d00150860e46cd5041386f217101350f0d3"}, + {file = "kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:eaa973f1e05131de5ff3569bbba7f5fd07ea0595d3870ed4a526d486fe57fa1b"}, + {file = "kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a66f60f8d0c87ab7f59b6fb80e642ebb29fec354a4dfad687ca4092ae69d04f4"}, + {file = "kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:858416b7fb777a53f0c59ca08190ce24e9abbd3cffa18886a5781b8e3e26f65d"}, + {file = "kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:085940635c62697391baafaaeabdf3dd7a6c3643577dde337f4d66eba021b2b8"}, + {file = "kiwisolver-1.4.8-cp312-cp312-win_amd64.whl", hash = "sha256:01c3d31902c7db5fb6182832713d3b4122ad9317c2c5877d0539227d96bb2e50"}, + {file = "kiwisolver-1.4.8-cp312-cp312-win_arm64.whl", hash = "sha256:a3c44cb68861de93f0c4a8175fbaa691f0aa22550c331fefef02b618a9dcb476"}, + {file = "kiwisolver-1.4.8-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:1c8ceb754339793c24aee1c9fb2485b5b1f5bb1c2c214ff13368431e51fc9a09"}, + {file = "kiwisolver-1.4.8-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:54a62808ac74b5e55a04a408cda6156f986cefbcf0ada13572696b507cc92fa1"}, + {file = "kiwisolver-1.4.8-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:68269e60ee4929893aad82666821aaacbd455284124817af45c11e50a4b42e3c"}, + {file = "kiwisolver-1.4.8-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:34d142fba9c464bc3bbfeff15c96eab0e7310343d6aefb62a79d51421fcc5f1b"}, + {file = "kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ddc373e0eef45b59197de815b1b28ef89ae3955e7722cc9710fb91cd77b7f47"}, + {file = "kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:77e6f57a20b9bd4e1e2cedda4d0b986ebd0216236f0106e55c28aea3d3d69b16"}, + {file = "kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08e77738ed7538f036cd1170cbed942ef749137b1311fa2bbe2a7fda2f6bf3cc"}, + {file = "kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5ce1e481a74b44dd5e92ff03ea0cb371ae7a0268318e202be06c8f04f4f1246"}, + {file = "kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:fc2ace710ba7c1dfd1a3b42530b62b9ceed115f19a1656adefce7b1782a37794"}, + {file = "kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:3452046c37c7692bd52b0e752b87954ef86ee2224e624ef7ce6cb21e8c41cc1b"}, + {file = "kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:7e9a60b50fe8b2ec6f448fe8d81b07e40141bfced7f896309df271a0b92f80f3"}, + {file = "kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:918139571133f366e8362fa4a297aeba86c7816b7ecf0bc79168080e2bd79957"}, + {file = "kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e063ef9f89885a1d68dd8b2e18f5ead48653176d10a0e324e3b0030e3a69adeb"}, + {file = "kiwisolver-1.4.8-cp313-cp313-win_amd64.whl", hash = "sha256:a17b7c4f5b2c51bb68ed379defd608a03954a1845dfed7cc0117f1cc8a9b7fd2"}, + {file = "kiwisolver-1.4.8-cp313-cp313-win_arm64.whl", hash = "sha256:3cd3bc628b25f74aedc6d374d5babf0166a92ff1317f46267f12d2ed54bc1d30"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:370fd2df41660ed4e26b8c9d6bbcad668fbe2560462cba151a721d49e5b6628c"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:84a2f830d42707de1d191b9490ac186bf7997a9495d4e9072210a1296345f7dc"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:7a3ad337add5148cf51ce0b55642dc551c0b9d6248458a757f98796ca7348712"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7506488470f41169b86d8c9aeff587293f530a23a23a49d6bc64dab66bedc71e"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f0121b07b356a22fb0414cec4666bbe36fd6d0d759db3d37228f496ed67c880"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d6d6bd87df62c27d4185de7c511c6248040afae67028a8a22012b010bc7ad062"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:291331973c64bb9cce50bbe871fb2e675c4331dab4f31abe89f175ad7679a4d7"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:893f5525bb92d3d735878ec00f781b2de998333659507d29ea4466208df37bed"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b47a465040146981dc9db8647981b8cb96366fbc8d452b031e4f8fdffec3f26d"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:99cea8b9dd34ff80c521aef46a1dddb0dcc0283cf18bde6d756f1e6f31772165"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:151dffc4865e5fe6dafce5480fab84f950d14566c480c08a53c663a0020504b6"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:577facaa411c10421314598b50413aa1ebcf5126f704f1e5d72d7e4e9f020d90"}, + {file = "kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:be4816dc51c8a471749d664161b434912eee82f2ea66bd7628bd14583a833e85"}, + {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:e7a019419b7b510f0f7c9dceff8c5eae2392037eae483a7f9162625233802b0a"}, + {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:286b18e86682fd2217a48fc6be6b0f20c1d0ed10958d8dc53453ad58d7be0bf8"}, + {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4191ee8dfd0be1c3666ccbac178c5a05d5f8d689bbe3fc92f3c4abec817f8fe0"}, + {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7cd2785b9391f2873ad46088ed7599a6a71e762e1ea33e87514b1a441ed1da1c"}, + {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c07b29089b7ba090b6f1a669f1411f27221c3662b3a1b7010e67b59bb5a6f10b"}, + {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:65ea09a5a3faadd59c2ce96dc7bf0f364986a315949dc6374f04396b0d60e09b"}, + {file = "kiwisolver-1.4.8.tar.gz", hash = "sha256:23d5f023bdc8c7e54eb65f03ca5d5bb25b601eac4d7f1a042888a1f45237987e"}, ] [[package]] @@ -725,120 +1603,115 @@ testing = ["coverage", "pyyaml"] [[package]] name = "markupsafe" -version = "2.1.5" +version = "3.0.2" description = "Safely add untrusted strings to HTML/XML markup." optional = false -python-versions = ">=3.7" +python-versions = ">=3.9" files = [ - {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, - {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, + {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, ] [[package]] name = "matplotlib" -version = "3.9.2" +version = "3.10.0" description = "Python plotting package" optional = false -python-versions = ">=3.9" +python-versions = ">=3.10" files = [ - {file = "matplotlib-3.9.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:9d78bbc0cbc891ad55b4f39a48c22182e9bdaea7fc0e5dbd364f49f729ca1bbb"}, - {file = "matplotlib-3.9.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c375cc72229614632c87355366bdf2570c2dac01ac66b8ad048d2dabadf2d0d4"}, - {file = "matplotlib-3.9.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d94ff717eb2bd0b58fe66380bd8b14ac35f48a98e7c6765117fe67fb7684e64"}, - {file = "matplotlib-3.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab68d50c06938ef28681073327795c5db99bb4666214d2d5f880ed11aeaded66"}, - {file = "matplotlib-3.9.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:65aacf95b62272d568044531e41de26285d54aec8cb859031f511f84bd8b495a"}, - {file = "matplotlib-3.9.2-cp310-cp310-win_amd64.whl", hash = "sha256:3fd595f34aa8a55b7fc8bf9ebea8aa665a84c82d275190a61118d33fbc82ccae"}, - {file = "matplotlib-3.9.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d8dd059447824eec055e829258ab092b56bb0579fc3164fa09c64f3acd478772"}, - {file = "matplotlib-3.9.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c797dac8bb9c7a3fd3382b16fe8f215b4cf0f22adccea36f1545a6d7be310b41"}, - {file = "matplotlib-3.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d719465db13267bcef19ea8954a971db03b9f48b4647e3860e4bc8e6ed86610f"}, - {file = "matplotlib-3.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8912ef7c2362f7193b5819d17dae8629b34a95c58603d781329712ada83f9447"}, - {file = "matplotlib-3.9.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7741f26a58a240f43bee74965c4882b6c93df3e7eb3de160126d8c8f53a6ae6e"}, - {file = "matplotlib-3.9.2-cp311-cp311-win_amd64.whl", hash = "sha256:ae82a14dab96fbfad7965403c643cafe6515e386de723e498cf3eeb1e0b70cc7"}, - {file = "matplotlib-3.9.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ac43031375a65c3196bee99f6001e7fa5bdfb00ddf43379d3c0609bdca042df9"}, - {file = "matplotlib-3.9.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:be0fc24a5e4531ae4d8e858a1a548c1fe33b176bb13eff7f9d0d38ce5112a27d"}, - {file = "matplotlib-3.9.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf81de2926c2db243c9b2cbc3917619a0fc85796c6ba4e58f541df814bbf83c7"}, - {file = "matplotlib-3.9.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6ee45bc4245533111ced13f1f2cace1e7f89d1c793390392a80c139d6cf0e6c"}, - {file = "matplotlib-3.9.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:306c8dfc73239f0e72ac50e5a9cf19cc4e8e331dd0c54f5e69ca8758550f1e1e"}, - {file = "matplotlib-3.9.2-cp312-cp312-win_amd64.whl", hash = "sha256:5413401594cfaff0052f9d8b1aafc6d305b4bd7c4331dccd18f561ff7e1d3bd3"}, - {file = "matplotlib-3.9.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:18128cc08f0d3cfff10b76baa2f296fc28c4607368a8402de61bb3f2eb33c7d9"}, - {file = "matplotlib-3.9.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4876d7d40219e8ae8bb70f9263bcbe5714415acfdf781086601211335e24f8aa"}, - {file = "matplotlib-3.9.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d9f07a80deab4bb0b82858a9e9ad53d1382fd122be8cde11080f4e7dfedb38b"}, - {file = "matplotlib-3.9.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7c0410f181a531ec4e93bbc27692f2c71a15c2da16766f5ba9761e7ae518413"}, - {file = "matplotlib-3.9.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:909645cce2dc28b735674ce0931a4ac94e12f5b13f6bb0b5a5e65e7cea2c192b"}, - {file = "matplotlib-3.9.2-cp313-cp313-win_amd64.whl", hash = "sha256:f32c7410c7f246838a77d6d1eff0c0f87f3cb0e7c4247aebea71a6d5a68cab49"}, - {file = "matplotlib-3.9.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:37e51dd1c2db16ede9cfd7b5cabdfc818b2c6397c83f8b10e0e797501c963a03"}, - {file = "matplotlib-3.9.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b82c5045cebcecd8496a4d694d43f9cc84aeeb49fe2133e036b207abe73f4d30"}, - {file = "matplotlib-3.9.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f053c40f94bc51bc03832a41b4f153d83f2062d88c72b5e79997072594e97e51"}, - {file = "matplotlib-3.9.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dbe196377a8248972f5cede786d4c5508ed5f5ca4a1e09b44bda889958b33f8c"}, - {file = "matplotlib-3.9.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5816b1e1fe8c192cbc013f8f3e3368ac56fbecf02fb41b8f8559303f24c5015e"}, - {file = "matplotlib-3.9.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:cef2a73d06601437be399908cf13aee74e86932a5ccc6ccdf173408ebc5f6bb2"}, - {file = "matplotlib-3.9.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e0830e188029c14e891fadd99702fd90d317df294c3298aad682739c5533721a"}, - {file = "matplotlib-3.9.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:03ba9c1299c920964e8d3857ba27173b4dbb51ca4bab47ffc2c2ba0eb5e2cbc5"}, - {file = "matplotlib-3.9.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1cd93b91ab47a3616b4d3c42b52f8363b88ca021e340804c6ab2536344fad9ca"}, - {file = "matplotlib-3.9.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6d1ce5ed2aefcdce11904fc5bbea7d9c21fff3d5f543841edf3dea84451a09ea"}, - {file = "matplotlib-3.9.2-cp39-cp39-win_amd64.whl", hash = "sha256:b2696efdc08648536efd4e1601b5fd491fd47f4db97a5fbfd175549a7365c1b2"}, - {file = "matplotlib-3.9.2-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:d52a3b618cb1cbb769ce2ee1dcdb333c3ab6e823944e9a2d36e37253815f9556"}, - {file = "matplotlib-3.9.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:039082812cacd6c6bec8e17a9c1e6baca230d4116d522e81e1f63a74d01d2e21"}, - {file = "matplotlib-3.9.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6758baae2ed64f2331d4fd19be38b7b4eae3ecec210049a26b6a4f3ae1c85dcc"}, - {file = "matplotlib-3.9.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:050598c2b29e0b9832cde72bcf97627bf00262adbc4a54e2b856426bb2ef0697"}, - {file = "matplotlib-3.9.2.tar.gz", hash = "sha256:96ab43906269ca64a6366934106fa01534454a69e471b7bf3d79083981aaab92"}, + {file = "matplotlib-3.10.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2c5829a5a1dd5a71f0e31e6e8bb449bc0ee9dbfb05ad28fc0c6b55101b3a4be6"}, + {file = "matplotlib-3.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a2a43cbefe22d653ab34bb55d42384ed30f611bcbdea1f8d7f431011a2e1c62e"}, + {file = "matplotlib-3.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:607b16c8a73943df110f99ee2e940b8a1cbf9714b65307c040d422558397dac5"}, + {file = "matplotlib-3.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:01d2b19f13aeec2e759414d3bfe19ddfb16b13a1250add08d46d5ff6f9be83c6"}, + {file = "matplotlib-3.10.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e6c6461e1fc63df30bf6f80f0b93f5b6784299f721bc28530477acd51bfc3d1"}, + {file = "matplotlib-3.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:994c07b9d9fe8d25951e3202a68c17900679274dadfc1248738dcfa1bd40d7f3"}, + {file = "matplotlib-3.10.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:fd44fc75522f58612ec4a33958a7e5552562b7705b42ef1b4f8c0818e304a363"}, + {file = "matplotlib-3.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c58a9622d5dbeb668f407f35f4e6bfac34bb9ecdcc81680c04d0258169747997"}, + {file = "matplotlib-3.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:845d96568ec873be63f25fa80e9e7fae4be854a66a7e2f0c8ccc99e94a8bd4ef"}, + {file = "matplotlib-3.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5439f4c5a3e2e8eab18e2f8c3ef929772fd5641876db71f08127eed95ab64683"}, + {file = "matplotlib-3.10.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4673ff67a36152c48ddeaf1135e74ce0d4bce1bbf836ae40ed39c29edf7e2765"}, + {file = "matplotlib-3.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:7e8632baebb058555ac0cde75db885c61f1212e47723d63921879806b40bec6a"}, + {file = "matplotlib-3.10.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4659665bc7c9b58f8c00317c3c2a299f7f258eeae5a5d56b4c64226fca2f7c59"}, + {file = "matplotlib-3.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d44cb942af1693cced2604c33a9abcef6205601c445f6d0dc531d813af8a2f5a"}, + {file = "matplotlib-3.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a994f29e968ca002b50982b27168addfd65f0105610b6be7fa515ca4b5307c95"}, + {file = "matplotlib-3.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b0558bae37f154fffda54d779a592bc97ca8b4701f1c710055b609a3bac44c8"}, + {file = "matplotlib-3.10.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:503feb23bd8c8acc75541548a1d709c059b7184cde26314896e10a9f14df5f12"}, + {file = "matplotlib-3.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:c40ba2eb08b3f5de88152c2333c58cee7edcead0a2a0d60fcafa116b17117adc"}, + {file = "matplotlib-3.10.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96f2886f5c1e466f21cc41b70c5a0cd47bfa0015eb2d5793c88ebce658600e25"}, + {file = "matplotlib-3.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:12eaf48463b472c3c0f8dbacdbf906e573013df81a0ab82f0616ea4b11281908"}, + {file = "matplotlib-3.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2fbbabc82fde51391c4da5006f965e36d86d95f6ee83fb594b279564a4c5d0d2"}, + {file = "matplotlib-3.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad2e15300530c1a94c63cfa546e3b7864bd18ea2901317bae8bbf06a5ade6dcf"}, + {file = "matplotlib-3.10.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3547d153d70233a8496859097ef0312212e2689cdf8d7ed764441c77604095ae"}, + {file = "matplotlib-3.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:c55b20591ced744aa04e8c3e4b7543ea4d650b6c3c4b208c08a05b4010e8b442"}, + {file = "matplotlib-3.10.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9ade1003376731a971e398cc4ef38bb83ee8caf0aee46ac6daa4b0506db1fd06"}, + {file = "matplotlib-3.10.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:95b710fea129c76d30be72c3b38f330269363fbc6e570a5dd43580487380b5ff"}, + {file = "matplotlib-3.10.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cdbaf909887373c3e094b0318d7ff230b2ad9dcb64da7ade654182872ab2593"}, + {file = "matplotlib-3.10.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d907fddb39f923d011875452ff1eca29a9e7f21722b873e90db32e5d8ddff12e"}, + {file = "matplotlib-3.10.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:3b427392354d10975c1d0f4ee18aa5844640b512d5311ef32efd4dd7db106ede"}, + {file = "matplotlib-3.10.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5fd41b0ec7ee45cd960a8e71aea7c946a28a0b8a4dcee47d2856b2af051f334c"}, + {file = "matplotlib-3.10.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:81713dd0d103b379de4516b861d964b1d789a144103277769238c732229d7f03"}, + {file = "matplotlib-3.10.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:359f87baedb1f836ce307f0e850d12bb5f1936f70d035561f90d41d305fdacea"}, + {file = "matplotlib-3.10.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ae80dc3a4add4665cf2faa90138384a7ffe2a4e37c58d83e115b54287c4f06ef"}, + {file = "matplotlib-3.10.0.tar.gz", hash = "sha256:b886d02a581b96704c9d1ffe55709e49b4d2d52709ccebc4be42db856e511278"}, ] [package.dependencies] @@ -853,7 +1726,21 @@ pyparsing = ">=2.3.1" python-dateutil = ">=2.7" [package.extras] -dev = ["meson-python (>=0.13.1)", "numpy (>=1.25)", "pybind11 (>=2.6)", "setuptools (>=64)", "setuptools_scm (>=7)"] +dev = ["meson-python (>=0.13.1,<0.17.0)", "pybind11 (>=2.13.2,!=2.13.3)", "setuptools (>=64)", "setuptools_scm (>=7)"] + +[[package]] +name = "matplotlib-inline" +version = "0.1.7" +description = "Inline Matplotlib backend for Jupyter" +optional = false +python-versions = ">=3.8" +files = [ + {file = "matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca"}, + {file = "matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90"}, +] + +[package.dependencies] +traitlets = "*" [[package]] name = "mergedeep" @@ -866,6 +1753,20 @@ files = [ {file = "mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8"}, ] +[[package]] +name = "mistune" +version = "3.1.0" +description = "A sane and fast Markdown parser with useful plugins and renderers" +optional = false +python-versions = ">=3.8" +files = [ + {file = "mistune-3.1.0-py3-none-any.whl", hash = "sha256:b05198cf6d671b3deba6c87ec6cf0d4eb7b72c524636eddb6dbf13823b52cee1"}, + {file = "mistune-3.1.0.tar.gz", hash = "sha256:dbcac2f78292b9dc066cd03b7a3a26b62d85f8159f2ea5fd28e55df79908d667"}, +] + +[package.dependencies] +typing-extensions = {version = "*", markers = "python_version < \"3.11\""} + [[package]] name = "mkdocs" version = "1.6.1" @@ -930,13 +1831,13 @@ pyyaml = ">=5.1" [[package]] name = "mkdocs-material" -version = "9.5.39" +version = "9.5.49" description = "Documentation that simply works" optional = false python-versions = ">=3.8" files = [ - {file = "mkdocs_material-9.5.39-py3-none-any.whl", hash = "sha256:0f2f68c8db89523cb4a59705cd01b4acd62b2f71218ccb67e1e004e560410d2b"}, - {file = "mkdocs_material-9.5.39.tar.gz", hash = "sha256:25faa06142afa38549d2b781d475a86fb61de93189f532b88e69bf11e5e5c3be"}, + {file = "mkdocs_material-9.5.49-py3-none-any.whl", hash = "sha256:c3c2d8176b18198435d3a3e119011922f3e11424074645c24019c2dcf08a360e"}, + {file = "mkdocs_material-9.5.49.tar.gz", hash = "sha256:3671bb282b4f53a1c72e08adbe04d2481a98f85fed392530051f80ff94a9621d"}, ] [package.dependencies] @@ -970,13 +1871,13 @@ files = [ [[package]] name = "mkdocstrings" -version = "0.26.1" +version = "0.26.2" description = "Automatic documentation from sources, for MkDocs." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "mkdocstrings-0.26.1-py3-none-any.whl", hash = "sha256:29738bfb72b4608e8e55cc50fb8a54f325dc7ebd2014e4e3881a49892d5983cf"}, - {file = "mkdocstrings-0.26.1.tar.gz", hash = "sha256:bb8b8854d6713d5348ad05b069a09f3b79edbc6a0f33a34c6821141adb03fe33"}, + {file = "mkdocstrings-0.26.2-py3-none-any.whl", hash = "sha256:1248f3228464f3b8d1a15bd91249ce1701fe3104ac517a5f167a0e01ca850ba5"}, + {file = "mkdocstrings-0.26.2.tar.gz", hash = "sha256:34a8b50f1e6cfd29546c6c09fbe02154adfb0b361bb758834bf56aa284ba876e"}, ] [package.dependencies] @@ -996,13 +1897,13 @@ python-legacy = ["mkdocstrings-python-legacy (>=0.2.1)"] [[package]] name = "mkdocstrings-python" -version = "1.11.1" +version = "1.13.0" description = "A Python handler for mkdocstrings." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "mkdocstrings_python-1.11.1-py3-none-any.whl", hash = "sha256:a21a1c05acef129a618517bb5aae3e33114f569b11588b1e7af3e9d4061a71af"}, - {file = "mkdocstrings_python-1.11.1.tar.gz", hash = "sha256:8824b115c5359304ab0b5378a91f6202324a849e1da907a3485b59208b797322"}, + {file = "mkdocstrings_python-1.13.0-py3-none-any.whl", hash = "sha256:b88bbb207bab4086434743849f8e796788b373bd32e7bfefbf8560ac45d88f97"}, + {file = "mkdocstrings_python-1.13.0.tar.gz", hash = "sha256:2dbd5757e8375b9720e81db16f52f1856bf59905428fd7ef88005d1370e2f64c"}, ] [package.dependencies] @@ -1010,6 +1911,23 @@ griffe = ">=0.49" mkdocs-autorefs = ">=1.2" mkdocstrings = ">=0.26" +[[package]] +name = "mknotebooks" +version = "0.8.0" +description = "Plugin for mkdocs to generate markdown documents from jupyter notebooks." +optional = false +python-versions = "*" +files = [ + {file = "mknotebooks-0.8.0-py3-none-any.whl", hash = "sha256:4a9b998260c09bcc311455a19a44cc395a30ee82dc1e86e3316dd09f2445ebd3"}, +] + +[package.dependencies] +gitpython = "*" +jupyter-client = "*" +markdown = ">=3.3.3" +mkdocs = ">=1.5.0" +nbconvert = ">=6.0.0" + [[package]] name = "mpmath" version = "1.3.0" @@ -1029,47 +1947,59 @@ tests = ["pytest (>=4.6)"] [[package]] name = "mypy" -version = "1.11.2" +version = "1.14.1" description = "Optional static typing for Python" optional = false python-versions = ">=3.8" files = [ - {file = "mypy-1.11.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d42a6dd818ffce7be66cce644f1dff482f1d97c53ca70908dff0b9ddc120b77a"}, - {file = "mypy-1.11.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:801780c56d1cdb896eacd5619a83e427ce436d86a3bdf9112527f24a66618fef"}, - {file = "mypy-1.11.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:41ea707d036a5307ac674ea172875f40c9d55c5394f888b168033177fce47383"}, - {file = "mypy-1.11.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6e658bd2d20565ea86da7d91331b0eed6d2eee22dc031579e6297f3e12c758c8"}, - {file = "mypy-1.11.2-cp310-cp310-win_amd64.whl", hash = "sha256:478db5f5036817fe45adb7332d927daa62417159d49783041338921dcf646fc7"}, - {file = "mypy-1.11.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:75746e06d5fa1e91bfd5432448d00d34593b52e7e91a187d981d08d1f33d4385"}, - {file = "mypy-1.11.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a976775ab2256aadc6add633d44f100a2517d2388906ec4f13231fafbb0eccca"}, - {file = "mypy-1.11.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cd953f221ac1379050a8a646585a29574488974f79d8082cedef62744f0a0104"}, - {file = "mypy-1.11.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:57555a7715c0a34421013144a33d280e73c08df70f3a18a552938587ce9274f4"}, - {file = "mypy-1.11.2-cp311-cp311-win_amd64.whl", hash = "sha256:36383a4fcbad95f2657642a07ba22ff797de26277158f1cc7bd234821468b1b6"}, - {file = "mypy-1.11.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e8960dbbbf36906c5c0b7f4fbf2f0c7ffb20f4898e6a879fcf56a41a08b0d318"}, - {file = "mypy-1.11.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:06d26c277962f3fb50e13044674aa10553981ae514288cb7d0a738f495550b36"}, - {file = "mypy-1.11.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6e7184632d89d677973a14d00ae4d03214c8bc301ceefcdaf5c474866814c987"}, - {file = "mypy-1.11.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:3a66169b92452f72117e2da3a576087025449018afc2d8e9bfe5ffab865709ca"}, - {file = "mypy-1.11.2-cp312-cp312-win_amd64.whl", hash = "sha256:969ea3ef09617aff826885a22ece0ddef69d95852cdad2f60c8bb06bf1f71f70"}, - {file = "mypy-1.11.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:37c7fa6121c1cdfcaac97ce3d3b5588e847aa79b580c1e922bb5d5d2902df19b"}, - {file = "mypy-1.11.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4a8a53bc3ffbd161b5b2a4fff2f0f1e23a33b0168f1c0778ec70e1a3d66deb86"}, - {file = "mypy-1.11.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2ff93107f01968ed834f4256bc1fc4475e2fecf6c661260066a985b52741ddce"}, - {file = "mypy-1.11.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:edb91dded4df17eae4537668b23f0ff6baf3707683734b6a818d5b9d0c0c31a1"}, - {file = "mypy-1.11.2-cp38-cp38-win_amd64.whl", hash = "sha256:ee23de8530d99b6db0573c4ef4bd8f39a2a6f9b60655bf7a1357e585a3486f2b"}, - {file = "mypy-1.11.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:801ca29f43d5acce85f8e999b1e431fb479cb02d0e11deb7d2abb56bdaf24fd6"}, - {file = "mypy-1.11.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:af8d155170fcf87a2afb55b35dc1a0ac21df4431e7d96717621962e4b9192e70"}, - {file = "mypy-1.11.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f7821776e5c4286b6a13138cc935e2e9b6fde05e081bdebf5cdb2bb97c9df81d"}, - {file = "mypy-1.11.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:539c570477a96a4e6fb718b8d5c3e0c0eba1f485df13f86d2970c91f0673148d"}, - {file = "mypy-1.11.2-cp39-cp39-win_amd64.whl", hash = "sha256:3f14cd3d386ac4d05c5a39a51b84387403dadbd936e17cb35882134d4f8f0d24"}, - {file = "mypy-1.11.2-py3-none-any.whl", hash = "sha256:b499bc07dbdcd3de92b0a8b29fdf592c111276f6a12fe29c30f6c417dd546d12"}, - {file = "mypy-1.11.2.tar.gz", hash = "sha256:7f9993ad3e0ffdc95c2a14b66dee63729f021968bff8ad911867579c65d13a79"}, -] - -[package.dependencies] -mypy-extensions = ">=1.0.0" + {file = "mypy-1.14.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:52686e37cf13d559f668aa398dd7ddf1f92c5d613e4f8cb262be2fb4fedb0fcb"}, + {file = "mypy-1.14.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1fb545ca340537d4b45d3eecdb3def05e913299ca72c290326be19b3804b39c0"}, + {file = "mypy-1.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:90716d8b2d1f4cd503309788e51366f07c56635a3309b0f6a32547eaaa36a64d"}, + {file = "mypy-1.14.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2ae753f5c9fef278bcf12e1a564351764f2a6da579d4a81347e1d5a15819997b"}, + {file = "mypy-1.14.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e0fe0f5feaafcb04505bcf439e991c6d8f1bf8b15f12b05feeed96e9e7bf1427"}, + {file = "mypy-1.14.1-cp310-cp310-win_amd64.whl", hash = "sha256:7d54bd85b925e501c555a3227f3ec0cfc54ee8b6930bd6141ec872d1c572f81f"}, + {file = "mypy-1.14.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f995e511de847791c3b11ed90084a7a0aafdc074ab88c5a9711622fe4751138c"}, + {file = "mypy-1.14.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d64169ec3b8461311f8ce2fd2eb5d33e2d0f2c7b49116259c51d0d96edee48d1"}, + {file = "mypy-1.14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ba24549de7b89b6381b91fbc068d798192b1b5201987070319889e93038967a8"}, + {file = "mypy-1.14.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:183cf0a45457d28ff9d758730cd0210419ac27d4d3f285beda038c9083363b1f"}, + {file = "mypy-1.14.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f2a0ecc86378f45347f586e4163d1769dd81c5a223d577fe351f26b179e148b1"}, + {file = "mypy-1.14.1-cp311-cp311-win_amd64.whl", hash = "sha256:ad3301ebebec9e8ee7135d8e3109ca76c23752bac1e717bc84cd3836b4bf3eae"}, + {file = "mypy-1.14.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:30ff5ef8519bbc2e18b3b54521ec319513a26f1bba19a7582e7b1f58a6e69f14"}, + {file = "mypy-1.14.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cb9f255c18052343c70234907e2e532bc7e55a62565d64536dbc7706a20b78b9"}, + {file = "mypy-1.14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8b4e3413e0bddea671012b063e27591b953d653209e7a4fa5e48759cda77ca11"}, + {file = "mypy-1.14.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:553c293b1fbdebb6c3c4030589dab9fafb6dfa768995a453d8a5d3b23784af2e"}, + {file = "mypy-1.14.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fad79bfe3b65fe6a1efaed97b445c3d37f7be9fdc348bdb2d7cac75579607c89"}, + {file = "mypy-1.14.1-cp312-cp312-win_amd64.whl", hash = "sha256:8fa2220e54d2946e94ab6dbb3ba0a992795bd68b16dc852db33028df2b00191b"}, + {file = "mypy-1.14.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:92c3ed5afb06c3a8e188cb5da4984cab9ec9a77ba956ee419c68a388b4595255"}, + {file = "mypy-1.14.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:dbec574648b3e25f43d23577309b16534431db4ddc09fda50841f1e34e64ed34"}, + {file = "mypy-1.14.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8c6d94b16d62eb3e947281aa7347d78236688e21081f11de976376cf010eb31a"}, + {file = "mypy-1.14.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d4b19b03fdf54f3c5b2fa474c56b4c13c9dbfb9a2db4370ede7ec11a2c5927d9"}, + {file = "mypy-1.14.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0c911fde686394753fff899c409fd4e16e9b294c24bfd5e1ea4675deae1ac6fd"}, + {file = "mypy-1.14.1-cp313-cp313-win_amd64.whl", hash = "sha256:8b21525cb51671219f5307be85f7e646a153e5acc656e5cebf64bfa076c50107"}, + {file = "mypy-1.14.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7084fb8f1128c76cd9cf68fe5971b37072598e7c31b2f9f95586b65c741a9d31"}, + {file = "mypy-1.14.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8f845a00b4f420f693f870eaee5f3e2692fa84cc8514496114649cfa8fd5e2c6"}, + {file = "mypy-1.14.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:44bf464499f0e3a2d14d58b54674dee25c031703b2ffc35064bd0df2e0fac319"}, + {file = "mypy-1.14.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c99f27732c0b7dc847adb21c9d47ce57eb48fa33a17bc6d7d5c5e9f9e7ae5bac"}, + {file = "mypy-1.14.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:bce23c7377b43602baa0bd22ea3265c49b9ff0b76eb315d6c34721af4cdf1d9b"}, + {file = "mypy-1.14.1-cp38-cp38-win_amd64.whl", hash = "sha256:8edc07eeade7ebc771ff9cf6b211b9a7d93687ff892150cb5692e4f4272b0837"}, + {file = "mypy-1.14.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3888a1816d69f7ab92092f785a462944b3ca16d7c470d564165fe703b0970c35"}, + {file = "mypy-1.14.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:46c756a444117c43ee984bd055db99e498bc613a70bbbc120272bd13ca579fbc"}, + {file = "mypy-1.14.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:27fc248022907e72abfd8e22ab1f10e903915ff69961174784a3900a8cba9ad9"}, + {file = "mypy-1.14.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:499d6a72fb7e5de92218db961f1a66d5f11783f9ae549d214617edab5d4dbdbb"}, + {file = "mypy-1.14.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:57961db9795eb566dc1d1b4e9139ebc4c6b0cb6e7254ecde69d1552bf7613f60"}, + {file = "mypy-1.14.1-cp39-cp39-win_amd64.whl", hash = "sha256:07ba89fdcc9451f2ebb02853deb6aaaa3d2239a236669a63ab3801bbf923ef5c"}, + {file = "mypy-1.14.1-py3-none-any.whl", hash = "sha256:b66a60cc4073aeb8ae00057f9c1f64d49e90f918fbcef9a977eb121da8b8f1d1"}, + {file = "mypy-1.14.1.tar.gz", hash = "sha256:7ec88144fe9b510e8475ec2f5f251992690fcf89ccb4500b214b4226abcd32d6"}, +] + +[package.dependencies] +mypy_extensions = ">=1.0.0" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typing-extensions = ">=4.6.0" +typing_extensions = ">=4.6.0" [package.extras] dmypy = ["psutil (>=4.0)"] +faster-cache = ["orjson"] install-types = ["pip"] mypyc = ["setuptools (>=50)"] reports = ["lxml"] @@ -1085,6 +2015,96 @@ files = [ {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, ] +[[package]] +name = "nbclient" +version = "0.10.2" +description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." +optional = false +python-versions = ">=3.9.0" +files = [ + {file = "nbclient-0.10.2-py3-none-any.whl", hash = "sha256:4ffee11e788b4a27fabeb7955547e4318a5298f34342a4bfd01f2e1faaeadc3d"}, + {file = "nbclient-0.10.2.tar.gz", hash = "sha256:90b7fc6b810630db87a6d0c2250b1f0ab4cf4d3c27a299b0cde78a4ed3fd9193"}, +] + +[package.dependencies] +jupyter-client = ">=6.1.12" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +nbformat = ">=5.1" +traitlets = ">=5.4" + +[package.extras] +dev = ["pre-commit"] +docs = ["autodoc-traits", "flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "mock", "moto", "myst-parser", "nbconvert (>=7.1.0)", "pytest (>=7.0,<8)", "pytest-asyncio", "pytest-cov (>=4.0)", "sphinx (>=1.7)", "sphinx-book-theme", "sphinxcontrib-spelling", "testpath", "xmltodict"] +test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>=7.1.0)", "pytest (>=7.0,<8)", "pytest-asyncio", "pytest-cov (>=4.0)", "testpath", "xmltodict"] + +[[package]] +name = "nbconvert" +version = "7.16.5" +description = "Converting Jupyter Notebooks (.ipynb files) to other formats. Output formats include asciidoc, html, latex, markdown, pdf, py, rst, script. nbconvert can be used both as a Python library (`import nbconvert`) or as a command line tool (invoked as `jupyter nbconvert ...`)." +optional = false +python-versions = ">=3.8" +files = [ + {file = "nbconvert-7.16.5-py3-none-any.whl", hash = "sha256:e12eac052d6fd03040af4166c563d76e7aeead2e9aadf5356db552a1784bd547"}, + {file = "nbconvert-7.16.5.tar.gz", hash = "sha256:c83467bb5777fdfaac5ebbb8e864f300b277f68692ecc04d6dab72f2d8442344"}, +] + +[package.dependencies] +beautifulsoup4 = "*" +bleach = {version = "!=5.0.0", extras = ["css"]} +defusedxml = "*" +jinja2 = ">=3.0" +jupyter-core = ">=4.7" +jupyterlab-pygments = "*" +markupsafe = ">=2.0" +mistune = ">=2.0.3,<4" +nbclient = ">=0.5.0" +nbformat = ">=5.7" +packaging = "*" +pandocfilters = ">=1.4.1" +pygments = ">=2.4.1" +traitlets = ">=5.1" + +[package.extras] +all = ["flaky", "ipykernel", "ipython", "ipywidgets (>=7.5)", "myst-parser", "nbsphinx (>=0.2.12)", "playwright", "pydata-sphinx-theme", "pyqtwebengine (>=5.15)", "pytest (>=7)", "sphinx (==5.0.2)", "sphinxcontrib-spelling", "tornado (>=6.1)"] +docs = ["ipykernel", "ipython", "myst-parser", "nbsphinx (>=0.2.12)", "pydata-sphinx-theme", "sphinx (==5.0.2)", "sphinxcontrib-spelling"] +qtpdf = ["pyqtwebengine (>=5.15)"] +qtpng = ["pyqtwebengine (>=5.15)"] +serve = ["tornado (>=6.1)"] +test = ["flaky", "ipykernel", "ipywidgets (>=7.5)", "pytest (>=7)"] +webpdf = ["playwright"] + +[[package]] +name = "nbformat" +version = "5.10.4" +description = "The Jupyter Notebook format" +optional = false +python-versions = ">=3.8" +files = [ + {file = "nbformat-5.10.4-py3-none-any.whl", hash = "sha256:3b48d6c8fbca4b299bf3982ea7db1af21580e4fec269ad087b9e81588891200b"}, + {file = "nbformat-5.10.4.tar.gz", hash = "sha256:322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a"}, +] + +[package.dependencies] +fastjsonschema = ">=2.15" +jsonschema = ">=2.6" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +traitlets = ">=5.1" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["pep440", "pre-commit", "pytest", "testpath"] + +[[package]] +name = "nest-asyncio" +version = "1.6.0" +description = "Patch asyncio to allow nested event loops" +optional = false +python-versions = ">=3.5" +files = [ + {file = "nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c"}, + {file = "nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe"}, +] + [[package]] name = "nodeenv" version = "1.9.1" @@ -1096,6 +2116,46 @@ files = [ {file = "nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f"}, ] +[[package]] +name = "notebook" +version = "7.3.2" +description = "Jupyter Notebook - A web-based notebook environment for interactive computing" +optional = false +python-versions = ">=3.8" +files = [ + {file = "notebook-7.3.2-py3-none-any.whl", hash = "sha256:e5f85fc59b69d3618d73cf27544418193ff8e8058d5bf61d315ce4f473556288"}, + {file = "notebook-7.3.2.tar.gz", hash = "sha256:705e83a1785f45b383bf3ee13cb76680b92d24f56fb0c7d2136fe1d850cd3ca8"}, +] + +[package.dependencies] +jupyter-server = ">=2.4.0,<3" +jupyterlab = ">=4.3.4,<4.4" +jupyterlab-server = ">=2.27.1,<3" +notebook-shim = ">=0.2,<0.3" +tornado = ">=6.2.0" + +[package.extras] +dev = ["hatch", "pre-commit"] +docs = ["myst-parser", "nbsphinx", "pydata-sphinx-theme", "sphinx (>=1.3.6)", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["importlib-resources (>=5.0)", "ipykernel", "jupyter-server[test] (>=2.4.0,<3)", "jupyterlab-server[test] (>=2.27.1,<3)", "nbval", "pytest (>=7.0)", "pytest-console-scripts", "pytest-timeout", "pytest-tornasync", "requests"] + +[[package]] +name = "notebook-shim" +version = "0.2.4" +description = "A shim layer for notebook traits and config" +optional = false +python-versions = ">=3.7" +files = [ + {file = "notebook_shim-0.2.4-py3-none-any.whl", hash = "sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef"}, + {file = "notebook_shim-0.2.4.tar.gz", hash = "sha256:b4b2cfa1b65d98307ca24361f5b30fe785b53c3fd07b7a47e89acb5e6ac638cb"}, +] + +[package.dependencies] +jupyter-server = ">=1.8,<3" + +[package.extras] +test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync"] + [[package]] name = "numpy" version = "1.26.4" @@ -1141,15 +2201,26 @@ files = [ {file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"}, ] +[[package]] +name = "overrides" +version = "7.7.0" +description = "A decorator to automatically detect mismatch when overriding a method." +optional = false +python-versions = ">=3.6" +files = [ + {file = "overrides-7.7.0-py3-none-any.whl", hash = "sha256:c7ed9d062f78b8e4c1a7b70bd8796b35ead4d9f510227ef9c5dc7626c60d7e49"}, + {file = "overrides-7.7.0.tar.gz", hash = "sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a"}, +] + [[package]] name = "packaging" -version = "24.1" +version = "24.2" description = "Core utilities for Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, - {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, + {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, + {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, ] [[package]] @@ -1255,19 +2326,45 @@ xml = ["lxml (>=4.9.2)"] [[package]] name = "pandas-stubs" -version = "2.2.2.240909" +version = "2.2.3.241126" description = "Type annotations for pandas" optional = false python-versions = ">=3.10" files = [ - {file = "pandas_stubs-2.2.2.240909-py3-none-any.whl", hash = "sha256:e230f5fa4065f9417804f4d65cd98f86c002efcc07933e8abcd48c3fad9c30a2"}, - {file = "pandas_stubs-2.2.2.240909.tar.gz", hash = "sha256:3c0951a2c3e45e3475aed9d80b7147ae82f176b9e42e9fb321cfdebf3d411b3d"}, + {file = "pandas_stubs-2.2.3.241126-py3-none-any.whl", hash = "sha256:74aa79c167af374fe97068acc90776c0ebec5266a6e5c69fe11e9c2cf51f2267"}, + {file = "pandas_stubs-2.2.3.241126.tar.gz", hash = "sha256:cf819383c6d9ae7d4dabf34cd47e1e45525bb2f312e6ad2939c2c204cb708acd"}, ] [package.dependencies] numpy = ">=1.23.5" types-pytz = ">=2022.1.1" +[[package]] +name = "pandocfilters" +version = "1.5.1" +description = "Utilities for writing pandoc filters in python" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pandocfilters-1.5.1-py2.py3-none-any.whl", hash = "sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc"}, + {file = "pandocfilters-1.5.1.tar.gz", hash = "sha256:002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e"}, +] + +[[package]] +name = "parso" +version = "0.8.4" +description = "A Python Parser" +optional = false +python-versions = ">=3.6" +files = [ + {file = "parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18"}, + {file = "parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d"}, +] + +[package.extras] +qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] +testing = ["docopt", "pytest"] + [[package]] name = "pathspec" version = "0.12.1" @@ -1279,100 +2376,105 @@ files = [ {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, ] +[[package]] +name = "pexpect" +version = "4.9.0" +description = "Pexpect allows easy control of interactive console applications." +optional = false +python-versions = "*" +files = [ + {file = "pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523"}, + {file = "pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"}, +] + +[package.dependencies] +ptyprocess = ">=0.5" + [[package]] name = "pillow" -version = "10.4.0" +version = "11.1.0" description = "Python Imaging Library (Fork)" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "pillow-10.4.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:4d9667937cfa347525b319ae34375c37b9ee6b525440f3ef48542fcf66f2731e"}, - {file = "pillow-10.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:543f3dc61c18dafb755773efc89aae60d06b6596a63914107f75459cf984164d"}, - {file = "pillow-10.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7928ecbf1ece13956b95d9cbcfc77137652b02763ba384d9ab508099a2eca856"}, - {file = "pillow-10.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4d49b85c4348ea0b31ea63bc75a9f3857869174e2bf17e7aba02945cd218e6f"}, - {file = "pillow-10.4.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:6c762a5b0997f5659a5ef2266abc1d8851ad7749ad9a6a5506eb23d314e4f46b"}, - {file = "pillow-10.4.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a985e028fc183bf12a77a8bbf36318db4238a3ded7fa9df1b9a133f1cb79f8fc"}, - {file = "pillow-10.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:812f7342b0eee081eaec84d91423d1b4650bb9828eb53d8511bcef8ce5aecf1e"}, - {file = "pillow-10.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ac1452d2fbe4978c2eec89fb5a23b8387aba707ac72810d9490118817d9c0b46"}, - {file = "pillow-10.4.0-cp310-cp310-win32.whl", hash = "sha256:bcd5e41a859bf2e84fdc42f4edb7d9aba0a13d29a2abadccafad99de3feff984"}, - {file = "pillow-10.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:ecd85a8d3e79cd7158dec1c9e5808e821feea088e2f69a974db5edf84dc53141"}, - {file = "pillow-10.4.0-cp310-cp310-win_arm64.whl", hash = "sha256:ff337c552345e95702c5fde3158acb0625111017d0e5f24bf3acdb9cc16b90d1"}, - {file = "pillow-10.4.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:0a9ec697746f268507404647e531e92889890a087e03681a3606d9b920fbee3c"}, - {file = "pillow-10.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dfe91cb65544a1321e631e696759491ae04a2ea11d36715eca01ce07284738be"}, - {file = "pillow-10.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5dc6761a6efc781e6a1544206f22c80c3af4c8cf461206d46a1e6006e4429ff3"}, - {file = "pillow-10.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e84b6cc6a4a3d76c153a6b19270b3526a5a8ed6b09501d3af891daa2a9de7d6"}, - {file = "pillow-10.4.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:bbc527b519bd3aa9d7f429d152fea69f9ad37c95f0b02aebddff592688998abe"}, - {file = "pillow-10.4.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:76a911dfe51a36041f2e756b00f96ed84677cdeb75d25c767f296c1c1eda1319"}, - {file = "pillow-10.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:59291fb29317122398786c2d44427bbd1a6d7ff54017075b22be9d21aa59bd8d"}, - {file = "pillow-10.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:416d3a5d0e8cfe4f27f574362435bc9bae57f679a7158e0096ad2beb427b8696"}, - {file = "pillow-10.4.0-cp311-cp311-win32.whl", hash = "sha256:7086cc1d5eebb91ad24ded9f58bec6c688e9f0ed7eb3dbbf1e4800280a896496"}, - {file = "pillow-10.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cbed61494057c0f83b83eb3a310f0bf774b09513307c434d4366ed64f4128a91"}, - {file = "pillow-10.4.0-cp311-cp311-win_arm64.whl", hash = "sha256:f5f0c3e969c8f12dd2bb7e0b15d5c468b51e5017e01e2e867335c81903046a22"}, - {file = "pillow-10.4.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:673655af3eadf4df6b5457033f086e90299fdd7a47983a13827acf7459c15d94"}, - {file = "pillow-10.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:866b6942a92f56300012f5fbac71f2d610312ee65e22f1aa2609e491284e5597"}, - {file = "pillow-10.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29dbdc4207642ea6aad70fbde1a9338753d33fb23ed6956e706936706f52dd80"}, - {file = "pillow-10.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf2342ac639c4cf38799a44950bbc2dfcb685f052b9e262f446482afaf4bffca"}, - {file = "pillow-10.4.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:f5b92f4d70791b4a67157321c4e8225d60b119c5cc9aee8ecf153aace4aad4ef"}, - {file = "pillow-10.4.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:86dcb5a1eb778d8b25659d5e4341269e8590ad6b4e8b44d9f4b07f8d136c414a"}, - {file = "pillow-10.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:780c072c2e11c9b2c7ca37f9a2ee8ba66f44367ac3e5c7832afcfe5104fd6d1b"}, - {file = "pillow-10.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:37fb69d905be665f68f28a8bba3c6d3223c8efe1edf14cc4cfa06c241f8c81d9"}, - {file = "pillow-10.4.0-cp312-cp312-win32.whl", hash = "sha256:7dfecdbad5c301d7b5bde160150b4db4c659cee2b69589705b6f8a0c509d9f42"}, - {file = "pillow-10.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:1d846aea995ad352d4bdcc847535bd56e0fd88d36829d2c90be880ef1ee4668a"}, - {file = "pillow-10.4.0-cp312-cp312-win_arm64.whl", hash = "sha256:e553cad5179a66ba15bb18b353a19020e73a7921296a7979c4a2b7f6a5cd57f9"}, - {file = "pillow-10.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8bc1a764ed8c957a2e9cacf97c8b2b053b70307cf2996aafd70e91a082e70df3"}, - {file = "pillow-10.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6209bb41dc692ddfee4942517c19ee81b86c864b626dbfca272ec0f7cff5d9fb"}, - {file = "pillow-10.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bee197b30783295d2eb680b311af15a20a8b24024a19c3a26431ff83eb8d1f70"}, - {file = "pillow-10.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ef61f5dd14c300786318482456481463b9d6b91ebe5ef12f405afbba77ed0be"}, - {file = "pillow-10.4.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:297e388da6e248c98bc4a02e018966af0c5f92dfacf5a5ca22fa01cb3179bca0"}, - {file = "pillow-10.4.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:e4db64794ccdf6cb83a59d73405f63adbe2a1887012e308828596100a0b2f6cc"}, - {file = "pillow-10.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bd2880a07482090a3bcb01f4265f1936a903d70bc740bfcb1fd4e8a2ffe5cf5a"}, - {file = "pillow-10.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4b35b21b819ac1dbd1233317adeecd63495f6babf21b7b2512d244ff6c6ce309"}, - {file = "pillow-10.4.0-cp313-cp313-win32.whl", hash = "sha256:551d3fd6e9dc15e4c1eb6fc4ba2b39c0c7933fa113b220057a34f4bb3268a060"}, - {file = "pillow-10.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:030abdbe43ee02e0de642aee345efa443740aa4d828bfe8e2eb11922ea6a21ea"}, - {file = "pillow-10.4.0-cp313-cp313-win_arm64.whl", hash = "sha256:5b001114dd152cfd6b23befeb28d7aee43553e2402c9f159807bf55f33af8a8d"}, - {file = "pillow-10.4.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:8d4d5063501b6dd4024b8ac2f04962d661222d120381272deea52e3fc52d3736"}, - {file = "pillow-10.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7c1ee6f42250df403c5f103cbd2768a28fe1a0ea1f0f03fe151c8741e1469c8b"}, - {file = "pillow-10.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b15e02e9bb4c21e39876698abf233c8c579127986f8207200bc8a8f6bb27acf2"}, - {file = "pillow-10.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a8d4bade9952ea9a77d0c3e49cbd8b2890a399422258a77f357b9cc9be8d680"}, - {file = "pillow-10.4.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:43efea75eb06b95d1631cb784aa40156177bf9dd5b4b03ff38979e048258bc6b"}, - {file = "pillow-10.4.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:950be4d8ba92aca4b2bb0741285a46bfae3ca699ef913ec8416c1b78eadd64cd"}, - {file = "pillow-10.4.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d7480af14364494365e89d6fddc510a13e5a2c3584cb19ef65415ca57252fb84"}, - {file = "pillow-10.4.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:73664fe514b34c8f02452ffb73b7a92c6774e39a647087f83d67f010eb9a0cf0"}, - {file = "pillow-10.4.0-cp38-cp38-win32.whl", hash = "sha256:e88d5e6ad0d026fba7bdab8c3f225a69f063f116462c49892b0149e21b6c0a0e"}, - {file = "pillow-10.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:5161eef006d335e46895297f642341111945e2c1c899eb406882a6c61a4357ab"}, - {file = "pillow-10.4.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:0ae24a547e8b711ccaaf99c9ae3cd975470e1a30caa80a6aaee9a2f19c05701d"}, - {file = "pillow-10.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:298478fe4f77a4408895605f3482b6cc6222c018b2ce565c2b6b9c354ac3229b"}, - {file = "pillow-10.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:134ace6dc392116566980ee7436477d844520a26a4b1bd4053f6f47d096997fd"}, - {file = "pillow-10.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:930044bb7679ab003b14023138b50181899da3f25de50e9dbee23b61b4de2126"}, - {file = "pillow-10.4.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:c76e5786951e72ed3686e122d14c5d7012f16c8303a674d18cdcd6d89557fc5b"}, - {file = "pillow-10.4.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:b2724fdb354a868ddf9a880cb84d102da914e99119211ef7ecbdc613b8c96b3c"}, - {file = "pillow-10.4.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dbc6ae66518ab3c5847659e9988c3b60dc94ffb48ef9168656e0019a93dbf8a1"}, - {file = "pillow-10.4.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:06b2f7898047ae93fad74467ec3d28fe84f7831370e3c258afa533f81ef7f3df"}, - {file = "pillow-10.4.0-cp39-cp39-win32.whl", hash = "sha256:7970285ab628a3779aecc35823296a7869f889b8329c16ad5a71e4901a3dc4ef"}, - {file = "pillow-10.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:961a7293b2457b405967af9c77dcaa43cc1a8cd50d23c532e62d48ab6cdd56f5"}, - {file = "pillow-10.4.0-cp39-cp39-win_arm64.whl", hash = "sha256:32cda9e3d601a52baccb2856b8ea1fc213c90b340c542dcef77140dfa3278a9e"}, - {file = "pillow-10.4.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:5b4815f2e65b30f5fbae9dfffa8636d992d49705723fe86a3661806e069352d4"}, - {file = "pillow-10.4.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:8f0aef4ef59694b12cadee839e2ba6afeab89c0f39a3adc02ed51d109117b8da"}, - {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f4727572e2918acaa9077c919cbbeb73bd2b3ebcfe033b72f858fc9fbef0026"}, - {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ff25afb18123cea58a591ea0244b92eb1e61a1fd497bf6d6384f09bc3262ec3e"}, - {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:dc3e2db6ba09ffd7d02ae9141cfa0ae23393ee7687248d46a7507b75d610f4f5"}, - {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:02a2be69f9c9b8c1e97cf2713e789d4e398c751ecfd9967c18d0ce304efbf885"}, - {file = "pillow-10.4.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:0755ffd4a0c6f267cccbae2e9903d95477ca2f77c4fcf3a3a09570001856c8a5"}, - {file = "pillow-10.4.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:a02364621fe369e06200d4a16558e056fe2805d3468350df3aef21e00d26214b"}, - {file = "pillow-10.4.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:1b5dea9831a90e9d0721ec417a80d4cbd7022093ac38a568db2dd78363b00908"}, - {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b885f89040bb8c4a1573566bbb2f44f5c505ef6e74cec7ab9068c900047f04b"}, - {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87dd88ded2e6d74d31e1e0a99a726a6765cda32d00ba72dc37f0651f306daaa8"}, - {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:2db98790afc70118bd0255c2eeb465e9767ecf1f3c25f9a1abb8ffc8cfd1fe0a"}, - {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f7baece4ce06bade126fb84b8af1c33439a76d8a6fd818970215e0560ca28c27"}, - {file = "pillow-10.4.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:cfdd747216947628af7b259d274771d84db2268ca062dd5faf373639d00113a3"}, - {file = "pillow-10.4.0.tar.gz", hash = "sha256:166c1cd4d24309b30d61f79f4a9114b7b2313d7450912277855ff5dfd7cd4a06"}, -] - -[package.extras] -docs = ["furo", "olefile", "sphinx (>=7.3)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"] + {file = "pillow-11.1.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:e1abe69aca89514737465752b4bcaf8016de61b3be1397a8fc260ba33321b3a8"}, + {file = "pillow-11.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c640e5a06869c75994624551f45e5506e4256562ead981cce820d5ab39ae2192"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a07dba04c5e22824816b2615ad7a7484432d7f540e6fa86af60d2de57b0fcee2"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e267b0ed063341f3e60acd25c05200df4193e15a4a5807075cd71225a2386e26"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bd165131fd51697e22421d0e467997ad31621b74bfc0b75956608cb2906dda07"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:abc56501c3fd148d60659aae0af6ddc149660469082859fa7b066a298bde9482"}, + {file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:54ce1c9a16a9561b6d6d8cb30089ab1e5eb66918cb47d457bd996ef34182922e"}, + {file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:73ddde795ee9b06257dac5ad42fcb07f3b9b813f8c1f7f870f402f4dc54b5269"}, + {file = "pillow-11.1.0-cp310-cp310-win32.whl", hash = "sha256:3a5fe20a7b66e8135d7fd617b13272626a28278d0e578c98720d9ba4b2439d49"}, + {file = "pillow-11.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:b6123aa4a59d75f06e9dd3dac5bf8bc9aa383121bb3dd9a7a612e05eabc9961a"}, + {file = "pillow-11.1.0-cp310-cp310-win_arm64.whl", hash = "sha256:a76da0a31da6fcae4210aa94fd779c65c75786bc9af06289cd1c184451ef7a65"}, + {file = "pillow-11.1.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:e06695e0326d05b06833b40b7ef477e475d0b1ba3a6d27da1bb48c23209bf457"}, + {file = "pillow-11.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:96f82000e12f23e4f29346e42702b6ed9a2f2fea34a740dd5ffffcc8c539eb35"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3cd561ded2cf2bbae44d4605837221b987c216cff94f49dfeed63488bb228d2"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f189805c8be5ca5add39e6f899e6ce2ed824e65fb45f3c28cb2841911da19070"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:dd0052e9db3474df30433f83a71b9b23bd9e4ef1de13d92df21a52c0303b8ab6"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:837060a8599b8f5d402e97197d4924f05a2e0d68756998345c829c33186217b1"}, + {file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:aa8dd43daa836b9a8128dbe7d923423e5ad86f50a7a14dc688194b7be5c0dea2"}, + {file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0a2f91f8a8b367e7a57c6e91cd25af510168091fb89ec5146003e424e1558a96"}, + {file = "pillow-11.1.0-cp311-cp311-win32.whl", hash = "sha256:c12fc111ef090845de2bb15009372175d76ac99969bdf31e2ce9b42e4b8cd88f"}, + {file = "pillow-11.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fbd43429d0d7ed6533b25fc993861b8fd512c42d04514a0dd6337fb3ccf22761"}, + {file = "pillow-11.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:f7955ecf5609dee9442cbface754f2c6e541d9e6eda87fad7f7a989b0bdb9d71"}, + {file = "pillow-11.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2062ffb1d36544d42fcaa277b069c88b01bb7298f4efa06731a7fd6cc290b81a"}, + {file = "pillow-11.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a85b653980faad27e88b141348707ceeef8a1186f75ecc600c395dcac19f385b"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9409c080586d1f683df3f184f20e36fb647f2e0bc3988094d4fd8c9f4eb1b3b3"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7fdadc077553621911f27ce206ffcbec7d3f8d7b50e0da39f10997e8e2bb7f6a"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:93a18841d09bcdd774dcdc308e4537e1f867b3dec059c131fde0327899734aa1"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:9aa9aeddeed452b2f616ff5507459e7bab436916ccb10961c4a382cd3e03f47f"}, + {file = "pillow-11.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3cdcdb0b896e981678eee140d882b70092dac83ac1cdf6b3a60e2216a73f2b91"}, + {file = "pillow-11.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:36ba10b9cb413e7c7dfa3e189aba252deee0602c86c309799da5a74009ac7a1c"}, + {file = "pillow-11.1.0-cp312-cp312-win32.whl", hash = "sha256:cfd5cd998c2e36a862d0e27b2df63237e67273f2fc78f47445b14e73a810e7e6"}, + {file = "pillow-11.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:a697cd8ba0383bba3d2d3ada02b34ed268cb548b369943cd349007730c92bddf"}, + {file = "pillow-11.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:4dd43a78897793f60766563969442020e90eb7847463eca901e41ba186a7d4a5"}, + {file = "pillow-11.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ae98e14432d458fc3de11a77ccb3ae65ddce70f730e7c76140653048c71bfcbc"}, + {file = "pillow-11.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cc1331b6d5a6e144aeb5e626f4375f5b7ae9934ba620c0ac6b3e43d5e683a0f0"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:758e9d4ef15d3560214cddbc97b8ef3ef86ce04d62ddac17ad39ba87e89bd3b1"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b523466b1a31d0dcef7c5be1f20b942919b62fd6e9a9be199d035509cbefc0ec"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:9044b5e4f7083f209c4e35aa5dd54b1dd5b112b108648f5c902ad586d4f945c5"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:3764d53e09cdedd91bee65c2527815d315c6b90d7b8b79759cc48d7bf5d4f114"}, + {file = "pillow-11.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:31eba6bbdd27dde97b0174ddf0297d7a9c3a507a8a1480e1e60ef914fe23d352"}, + {file = "pillow-11.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b5d658fbd9f0d6eea113aea286b21d3cd4d3fd978157cbf2447a6035916506d3"}, + {file = "pillow-11.1.0-cp313-cp313-win32.whl", hash = "sha256:f86d3a7a9af5d826744fabf4afd15b9dfef44fe69a98541f666f66fbb8d3fef9"}, + {file = "pillow-11.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:593c5fd6be85da83656b93ffcccc2312d2d149d251e98588b14fbc288fd8909c"}, + {file = "pillow-11.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:11633d58b6ee5733bde153a8dafd25e505ea3d32e261accd388827ee987baf65"}, + {file = "pillow-11.1.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:70ca5ef3b3b1c4a0812b5c63c57c23b63e53bc38e758b37a951e5bc466449861"}, + {file = "pillow-11.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:8000376f139d4d38d6851eb149b321a52bb8893a88dae8ee7d95840431977081"}, + {file = "pillow-11.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ee85f0696a17dd28fbcfceb59f9510aa71934b483d1f5601d1030c3c8304f3c"}, + {file = "pillow-11.1.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:dd0e081319328928531df7a0e63621caf67652c8464303fd102141b785ef9547"}, + {file = "pillow-11.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e63e4e5081de46517099dc30abe418122f54531a6ae2ebc8680bcd7096860eab"}, + {file = "pillow-11.1.0-cp313-cp313t-win32.whl", hash = "sha256:dda60aa465b861324e65a78c9f5cf0f4bc713e4309f83bc387be158b077963d9"}, + {file = "pillow-11.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ad5db5781c774ab9a9b2c4302bbf0c1014960a0a7be63278d13ae6fdf88126fe"}, + {file = "pillow-11.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:67cd427c68926108778a9005f2a04adbd5e67c442ed21d95389fe1d595458756"}, + {file = "pillow-11.1.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:bf902d7413c82a1bfa08b06a070876132a5ae6b2388e2712aab3a7cbc02205c6"}, + {file = "pillow-11.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c1eec9d950b6fe688edee07138993e54ee4ae634c51443cfb7c1e7613322718e"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e275ee4cb11c262bd108ab2081f750db2a1c0b8c12c1897f27b160c8bd57bbc"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4db853948ce4e718f2fc775b75c37ba2efb6aaea41a1a5fc57f0af59eee774b2"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:ab8a209b8485d3db694fa97a896d96dd6533d63c22829043fd9de627060beade"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:54251ef02a2309b5eec99d151ebf5c9904b77976c8abdcbce7891ed22df53884"}, + {file = "pillow-11.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5bb94705aea800051a743aa4874bb1397d4695fb0583ba5e425ee0328757f196"}, + {file = "pillow-11.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:89dbdb3e6e9594d512780a5a1c42801879628b38e3efc7038094430844e271d8"}, + {file = "pillow-11.1.0-cp39-cp39-win32.whl", hash = "sha256:e5449ca63da169a2e6068dd0e2fcc8d91f9558aba89ff6d02121ca8ab11e79e5"}, + {file = "pillow-11.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:3362c6ca227e65c54bf71a5f88b3d4565ff1bcbc63ae72c34b07bbb1cc59a43f"}, + {file = "pillow-11.1.0-cp39-cp39-win_arm64.whl", hash = "sha256:b20be51b37a75cc54c2c55def3fa2c65bb94ba859dde241cd0a4fd302de5ae0a"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8c730dc3a83e5ac137fbc92dfcfe1511ce3b2b5d7578315b63dbbb76f7f51d90"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:7d33d2fae0e8b170b6a6c57400e077412240f6f5bb2a342cf1ee512a787942bb"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a8d65b38173085f24bc07f8b6c505cbb7418009fa1a1fcb111b1f4961814a442"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:015c6e863faa4779251436db398ae75051469f7c903b043a48f078e437656f83"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:d44ff19eea13ae4acdaaab0179fa68c0c6f2f45d66a4d8ec1eda7d6cecbcc15f"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d3d8da4a631471dfaf94c10c85f5277b1f8e42ac42bade1ac67da4b4a7359b73"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:4637b88343166249fe8aa94e7c4a62a180c4b3898283bb5d3d2fd5fe10d8e4e0"}, + {file = "pillow-11.1.0.tar.gz", hash = "sha256:368da70808b36d73b4b390a8ffac11069f8a5c85f29eff1f1b01bcf3ef5b2a20"}, +] + +[package.extras] +docs = ["furo", "olefile", "sphinx (>=8.1)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"] fpx = ["olefile"] mic = ["olefile"] -tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] +tests = ["check-manifest", "coverage (>=7.4.2)", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout", "trove-classifiers (>=2024.10.12)"] typing = ["typing-extensions"] xmp = ["defusedxml"] @@ -1425,6 +2527,100 @@ nodeenv = ">=0.11.1" pyyaml = ">=5.1" virtualenv = ">=20.10.0" +[[package]] +name = "prometheus-client" +version = "0.21.1" +description = "Python client for the Prometheus monitoring system." +optional = false +python-versions = ">=3.8" +files = [ + {file = "prometheus_client-0.21.1-py3-none-any.whl", hash = "sha256:594b45c410d6f4f8888940fe80b5cc2521b305a1fafe1c58609ef715a001f301"}, + {file = "prometheus_client-0.21.1.tar.gz", hash = "sha256:252505a722ac04b0456be05c05f75f45d760c2911ffc45f2a06bcaed9f3ae3fb"}, +] + +[package.extras] +twisted = ["twisted"] + +[[package]] +name = "prompt-toolkit" +version = "3.0.48" +description = "Library for building powerful interactive command lines in Python" +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "prompt_toolkit-3.0.48-py3-none-any.whl", hash = "sha256:f49a827f90062e411f1ce1f854f2aedb3c23353244f8108b89283587397ac10e"}, + {file = "prompt_toolkit-3.0.48.tar.gz", hash = "sha256:d6623ab0477a80df74e646bdbc93621143f5caf104206aa29294d53de1a03d90"}, +] + +[package.dependencies] +wcwidth = "*" + +[[package]] +name = "psutil" +version = "6.1.1" +description = "Cross-platform lib for process and system monitoring in Python." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +files = [ + {file = "psutil-6.1.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:9ccc4316f24409159897799b83004cb1e24f9819b0dcf9c0b68bdcb6cefee6a8"}, + {file = "psutil-6.1.1-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:ca9609c77ea3b8481ab005da74ed894035936223422dc591d6772b147421f777"}, + {file = "psutil-6.1.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:8df0178ba8a9e5bc84fed9cfa61d54601b371fbec5c8eebad27575f1e105c0d4"}, + {file = "psutil-6.1.1-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:1924e659d6c19c647e763e78670a05dbb7feaf44a0e9c94bf9e14dfc6ba50468"}, + {file = "psutil-6.1.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:018aeae2af92d943fdf1da6b58665124897cfc94faa2ca92098838f83e1b1bca"}, + {file = "psutil-6.1.1-cp27-none-win32.whl", hash = "sha256:6d4281f5bbca041e2292be3380ec56a9413b790579b8e593b1784499d0005dac"}, + {file = "psutil-6.1.1-cp27-none-win_amd64.whl", hash = "sha256:c777eb75bb33c47377c9af68f30e9f11bc78e0f07fbf907be4a5d70b2fe5f030"}, + {file = "psutil-6.1.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:fc0ed7fe2231a444fc219b9c42d0376e0a9a1a72f16c5cfa0f68d19f1a0663e8"}, + {file = "psutil-6.1.1-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:0bdd4eab935276290ad3cb718e9809412895ca6b5b334f5a9111ee6d9aff9377"}, + {file = "psutil-6.1.1-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b6e06c20c05fe95a3d7302d74e7097756d4ba1247975ad6905441ae1b5b66003"}, + {file = "psutil-6.1.1-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97f7cb9921fbec4904f522d972f0c0e1f4fabbdd4e0287813b21215074a0f160"}, + {file = "psutil-6.1.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33431e84fee02bc84ea36d9e2c4a6d395d479c9dd9bba2376c1f6ee8f3a4e0b3"}, + {file = "psutil-6.1.1-cp36-cp36m-win32.whl", hash = "sha256:384636b1a64b47814437d1173be1427a7c83681b17a450bfc309a1953e329603"}, + {file = "psutil-6.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:8be07491f6ebe1a693f17d4f11e69d0dc1811fa082736500f649f79df7735303"}, + {file = "psutil-6.1.1-cp37-abi3-win32.whl", hash = "sha256:eaa912e0b11848c4d9279a93d7e2783df352b082f40111e078388701fd479e53"}, + {file = "psutil-6.1.1-cp37-abi3-win_amd64.whl", hash = "sha256:f35cfccb065fff93529d2afb4a2e89e363fe63ca1e4a5da22b603a85833c2649"}, + {file = "psutil-6.1.1.tar.gz", hash = "sha256:cf8496728c18f2d0b45198f06895be52f36611711746b7f30c464b422b50e2f5"}, +] + +[package.extras] +dev = ["abi3audit", "black", "check-manifest", "coverage", "packaging", "pylint", "pyperf", "pypinfo", "pytest-cov", "requests", "rstcheck", "ruff", "sphinx", "sphinx_rtd_theme", "toml-sort", "twine", "virtualenv", "vulture", "wheel"] +test = ["pytest", "pytest-xdist", "setuptools"] + +[[package]] +name = "ptyprocess" +version = "0.7.0" +description = "Run a subprocess in a pseudo terminal" +optional = false +python-versions = "*" +files = [ + {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, + {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, +] + +[[package]] +name = "pure-eval" +version = "0.2.3" +description = "Safely evaluate AST nodes without side effects" +optional = false +python-versions = "*" +files = [ + {file = "pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0"}, + {file = "pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42"}, +] + +[package.extras] +tests = ["pytest"] + +[[package]] +name = "pycparser" +version = "2.22" +description = "C parser in Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, + {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, +] + [[package]] name = "pygments" version = "2.18.0" @@ -1441,13 +2637,13 @@ windows-terminal = ["colorama (>=0.4.6)"] [[package]] name = "pymdown-extensions" -version = "10.11.2" +version = "10.13" description = "Extension pack for Python Markdown." optional = false python-versions = ">=3.8" files = [ - {file = "pymdown_extensions-10.11.2-py3-none-any.whl", hash = "sha256:41cdde0a77290e480cf53892f5c5e50921a7ee3e5cd60ba91bf19837b33badcf"}, - {file = "pymdown_extensions-10.11.2.tar.gz", hash = "sha256:bc8847ecc9e784a098efd35e20cba772bc5a1b529dfcef9dc1972db9021a1049"}, + {file = "pymdown_extensions-10.13-py3-none-any.whl", hash = "sha256:80bc33d715eec68e683e04298946d47d78c7739e79d808203df278ee8ef89428"}, + {file = "pymdown_extensions-10.13.tar.gz", hash = "sha256:e0b351494dc0d8d14a1f52b39b1499a00ef1566b4ba23dc74f1eba75c736f5dd"}, ] [package.dependencies] @@ -1459,13 +2655,13 @@ extra = ["pygments (>=2.12)"] [[package]] name = "pyparsing" -version = "3.1.4" +version = "3.2.1" description = "pyparsing module - Classes and methods to define and execute parsing grammars" optional = false -python-versions = ">=3.6.8" +python-versions = ">=3.9" files = [ - {file = "pyparsing-3.1.4-py3-none-any.whl", hash = "sha256:a6a7ee4235a3f944aa1fa2249307708f893fe5717dc603503c6c7969c070fb7c"}, - {file = "pyparsing-3.1.4.tar.gz", hash = "sha256:f86ec8d1a83f11977c9a6ea7598e8c27fc5cddfa5b07ea2241edbbde1d7bc032"}, + {file = "pyparsing-3.2.1-py3-none-any.whl", hash = "sha256:506ff4f4386c4cec0590ec19e6302d3aedb992fdc02c761e90416f158dacf8e1"}, + {file = "pyparsing-3.2.1.tar.gz", hash = "sha256:61980854fd66de3a90028d679a954d5f2623e83144b5afe5ee86f43d762e5f0a"}, ] [package.extras] @@ -1544,6 +2740,20 @@ files = [ [package.dependencies] six = ">=1.5" +[[package]] +name = "python-json-logger" +version = "3.2.1" +description = "JSON Log Formatter for the Python Logging Package" +optional = false +python-versions = ">=3.8" +files = [ + {file = "python_json_logger-3.2.1-py3-none-any.whl", hash = "sha256:cdc17047eb5374bd311e748b42f99d71223f3b0e186f4206cc5d52aefe85b090"}, + {file = "python_json_logger-3.2.1.tar.gz", hash = "sha256:8eb0554ea17cb75b05d2848bc14fb02fbdbd9d6972120781b974380bfa162008"}, +] + +[package.extras] +dev = ["backports.zoneinfo", "black", "build", "freezegun", "mdx_truly_sane_lists", "mike", "mkdocs", "mkdocs-awesome-pages-plugin", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-material (>=8.5)", "mkdocstrings[python]", "msgspec", "msgspec-python313-pre", "mypy", "orjson", "pylint", "pytest", "tzdata", "validate-pyproject[all]"] + [[package]] name = "pytz" version = "2024.2" @@ -1555,6 +2765,48 @@ files = [ {file = "pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a"}, ] +[[package]] +name = "pywin32" +version = "308" +description = "Python for Window Extensions" +optional = false +python-versions = "*" +files = [ + {file = "pywin32-308-cp310-cp310-win32.whl", hash = "sha256:796ff4426437896550d2981b9c2ac0ffd75238ad9ea2d3bfa67a1abd546d262e"}, + {file = "pywin32-308-cp310-cp310-win_amd64.whl", hash = "sha256:4fc888c59b3c0bef905ce7eb7e2106a07712015ea1c8234b703a088d46110e8e"}, + {file = "pywin32-308-cp310-cp310-win_arm64.whl", hash = "sha256:a5ab5381813b40f264fa3495b98af850098f814a25a63589a8e9eb12560f450c"}, + {file = "pywin32-308-cp311-cp311-win32.whl", hash = "sha256:5d8c8015b24a7d6855b1550d8e660d8daa09983c80e5daf89a273e5c6fb5095a"}, + {file = "pywin32-308-cp311-cp311-win_amd64.whl", hash = "sha256:575621b90f0dc2695fec346b2d6302faebd4f0f45c05ea29404cefe35d89442b"}, + {file = "pywin32-308-cp311-cp311-win_arm64.whl", hash = "sha256:100a5442b7332070983c4cd03f2e906a5648a5104b8a7f50175f7906efd16bb6"}, + {file = "pywin32-308-cp312-cp312-win32.whl", hash = "sha256:587f3e19696f4bf96fde9d8a57cec74a57021ad5f204c9e627e15c33ff568897"}, + {file = "pywin32-308-cp312-cp312-win_amd64.whl", hash = "sha256:00b3e11ef09ede56c6a43c71f2d31857cf7c54b0ab6e78ac659497abd2834f47"}, + {file = "pywin32-308-cp312-cp312-win_arm64.whl", hash = "sha256:9b4de86c8d909aed15b7011182c8cab38c8850de36e6afb1f0db22b8959e3091"}, + {file = "pywin32-308-cp313-cp313-win32.whl", hash = "sha256:1c44539a37a5b7b21d02ab34e6a4d314e0788f1690d65b48e9b0b89f31abbbed"}, + {file = "pywin32-308-cp313-cp313-win_amd64.whl", hash = "sha256:fd380990e792eaf6827fcb7e187b2b4b1cede0585e3d0c9e84201ec27b9905e4"}, + {file = "pywin32-308-cp313-cp313-win_arm64.whl", hash = "sha256:ef313c46d4c18dfb82a2431e3051ac8f112ccee1a34f29c263c583c568db63cd"}, + {file = "pywin32-308-cp37-cp37m-win32.whl", hash = "sha256:1f696ab352a2ddd63bd07430080dd598e6369152ea13a25ebcdd2f503a38f1ff"}, + {file = "pywin32-308-cp37-cp37m-win_amd64.whl", hash = "sha256:13dcb914ed4347019fbec6697a01a0aec61019c1046c2b905410d197856326a6"}, + {file = "pywin32-308-cp38-cp38-win32.whl", hash = "sha256:5794e764ebcabf4ff08c555b31bd348c9025929371763b2183172ff4708152f0"}, + {file = "pywin32-308-cp38-cp38-win_amd64.whl", hash = "sha256:3b92622e29d651c6b783e368ba7d6722b1634b8e70bd376fd7610fe1992e19de"}, + {file = "pywin32-308-cp39-cp39-win32.whl", hash = "sha256:7873ca4dc60ab3287919881a7d4f88baee4a6e639aa6962de25a98ba6b193341"}, + {file = "pywin32-308-cp39-cp39-win_amd64.whl", hash = "sha256:71b3322d949b4cc20776436a9c9ba0eeedcbc9c650daa536df63f0ff111bb920"}, +] + +[[package]] +name = "pywinpty" +version = "2.0.14" +description = "Pseudo terminal support for Windows from Python." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pywinpty-2.0.14-cp310-none-win_amd64.whl", hash = "sha256:0b149c2918c7974f575ba79f5a4aad58bd859a52fa9eb1296cc22aa412aa411f"}, + {file = "pywinpty-2.0.14-cp311-none-win_amd64.whl", hash = "sha256:cf2a43ac7065b3e0dc8510f8c1f13a75fb8fde805efa3b8cff7599a1ef497bc7"}, + {file = "pywinpty-2.0.14-cp312-none-win_amd64.whl", hash = "sha256:55dad362ef3e9408ade68fd173e4f9032b3ce08f68cfe7eacb2c263ea1179737"}, + {file = "pywinpty-2.0.14-cp313-none-win_amd64.whl", hash = "sha256:074fb988a56ec79ca90ed03a896d40707131897cefb8f76f926e3834227f2819"}, + {file = "pywinpty-2.0.14-cp39-none-win_amd64.whl", hash = "sha256:5725fd56f73c0531ec218663bd8c8ff5acc43c78962fab28564871b5fce053fd"}, + {file = "pywinpty-2.0.14.tar.gz", hash = "sha256:18bd9529e4a5daf2d9719aa17788ba6013e594ae94c5a0c27e83df3278b0660e"}, +] + [[package]] name = "pyyaml" version = "6.0.2" @@ -1631,107 +2883,243 @@ files = [ [package.dependencies] pyyaml = "*" +[[package]] +name = "pyzmq" +version = "26.2.0" +description = "Python bindings for 0MQ" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pyzmq-26.2.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:ddf33d97d2f52d89f6e6e7ae66ee35a4d9ca6f36eda89c24591b0c40205a3629"}, + {file = "pyzmq-26.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dacd995031a01d16eec825bf30802fceb2c3791ef24bcce48fa98ce40918c27b"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89289a5ee32ef6c439086184529ae060c741334b8970a6855ec0b6ad3ff28764"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5506f06d7dc6ecf1efacb4a013b1f05071bb24b76350832c96449f4a2d95091c"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ea039387c10202ce304af74def5021e9adc6297067f3441d348d2b633e8166a"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a2224fa4a4c2ee872886ed00a571f5e967c85e078e8e8c2530a2fb01b3309b88"}, + {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:28ad5233e9c3b52d76196c696e362508959741e1a005fb8fa03b51aea156088f"}, + {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:1c17211bc037c7d88e85ed8b7d8f7e52db6dc8eca5590d162717c654550f7282"}, + {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b8f86dd868d41bea9a5f873ee13bf5551c94cf6bc51baebc6f85075971fe6eea"}, + {file = "pyzmq-26.2.0-cp310-cp310-win32.whl", hash = "sha256:46a446c212e58456b23af260f3d9fb785054f3e3653dbf7279d8f2b5546b21c2"}, + {file = "pyzmq-26.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:49d34ab71db5a9c292a7644ce74190b1dd5a3475612eefb1f8be1d6961441971"}, + {file = "pyzmq-26.2.0-cp310-cp310-win_arm64.whl", hash = "sha256:bfa832bfa540e5b5c27dcf5de5d82ebc431b82c453a43d141afb1e5d2de025fa"}, + {file = "pyzmq-26.2.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:8f7e66c7113c684c2b3f1c83cdd3376103ee0ce4c49ff80a648643e57fb22218"}, + {file = "pyzmq-26.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3a495b30fc91db2db25120df5847d9833af237546fd59170701acd816ccc01c4"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77eb0968da535cba0470a5165468b2cac7772cfb569977cff92e240f57e31bef"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ace4f71f1900a548f48407fc9be59c6ba9d9aaf658c2eea6cf2779e72f9f317"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:92a78853d7280bffb93df0a4a6a2498cba10ee793cc8076ef797ef2f74d107cf"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:689c5d781014956a4a6de61d74ba97b23547e431e9e7d64f27d4922ba96e9d6e"}, + {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0aca98bc423eb7d153214b2df397c6421ba6373d3397b26c057af3c904452e37"}, + {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:1f3496d76b89d9429a656293744ceca4d2ac2a10ae59b84c1da9b5165f429ad3"}, + {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5c2b3bfd4b9689919db068ac6c9911f3fcb231c39f7dd30e3138be94896d18e6"}, + {file = "pyzmq-26.2.0-cp311-cp311-win32.whl", hash = "sha256:eac5174677da084abf378739dbf4ad245661635f1600edd1221f150b165343f4"}, + {file = "pyzmq-26.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:5a509df7d0a83a4b178d0f937ef14286659225ef4e8812e05580776c70e155d5"}, + {file = "pyzmq-26.2.0-cp311-cp311-win_arm64.whl", hash = "sha256:c0e6091b157d48cbe37bd67233318dbb53e1e6327d6fc3bb284afd585d141003"}, + {file = "pyzmq-26.2.0-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:ded0fc7d90fe93ae0b18059930086c51e640cdd3baebdc783a695c77f123dcd9"}, + {file = "pyzmq-26.2.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:17bf5a931c7f6618023cdacc7081f3f266aecb68ca692adac015c383a134ca52"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55cf66647e49d4621a7e20c8d13511ef1fe1efbbccf670811864452487007e08"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4661c88db4a9e0f958c8abc2b97472e23061f0bc737f6f6179d7a27024e1faa5"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea7f69de383cb47522c9c208aec6dd17697db7875a4674c4af3f8cfdac0bdeae"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:7f98f6dfa8b8ccaf39163ce872bddacca38f6a67289116c8937a02e30bbe9711"}, + {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e3e0210287329272539eea617830a6a28161fbbd8a3271bf4150ae3e58c5d0e6"}, + {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:6b274e0762c33c7471f1a7471d1a2085b1a35eba5cdc48d2ae319f28b6fc4de3"}, + {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:29c6a4635eef69d68a00321e12a7d2559fe2dfccfa8efae3ffb8e91cd0b36a8b"}, + {file = "pyzmq-26.2.0-cp312-cp312-win32.whl", hash = "sha256:989d842dc06dc59feea09e58c74ca3e1678c812a4a8a2a419046d711031f69c7"}, + {file = "pyzmq-26.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:2a50625acdc7801bc6f74698c5c583a491c61d73c6b7ea4dee3901bb99adb27a"}, + {file = "pyzmq-26.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:4d29ab8592b6ad12ebbf92ac2ed2bedcfd1cec192d8e559e2e099f648570e19b"}, + {file = "pyzmq-26.2.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9dd8cd1aeb00775f527ec60022004d030ddc51d783d056e3e23e74e623e33726"}, + {file = "pyzmq-26.2.0-cp313-cp313-macosx_10_15_universal2.whl", hash = "sha256:28c812d9757fe8acecc910c9ac9dafd2ce968c00f9e619db09e9f8f54c3a68a3"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d80b1dd99c1942f74ed608ddb38b181b87476c6a966a88a950c7dee118fdf50"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8c997098cc65e3208eca09303630e84d42718620e83b733d0fd69543a9cab9cb"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ad1bc8d1b7a18497dda9600b12dc193c577beb391beae5cd2349184db40f187"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:bea2acdd8ea4275e1278350ced63da0b166421928276c7c8e3f9729d7402a57b"}, + {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:23f4aad749d13698f3f7b64aad34f5fc02d6f20f05999eebc96b89b01262fb18"}, + {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:a4f96f0d88accc3dbe4a9025f785ba830f968e21e3e2c6321ccdfc9aef755115"}, + {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ced65e5a985398827cc9276b93ef6dfabe0273c23de8c7931339d7e141c2818e"}, + {file = "pyzmq-26.2.0-cp313-cp313-win32.whl", hash = "sha256:31507f7b47cc1ead1f6e86927f8ebb196a0bab043f6345ce070f412a59bf87b5"}, + {file = "pyzmq-26.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:70fc7fcf0410d16ebdda9b26cbd8bf8d803d220a7f3522e060a69a9c87bf7bad"}, + {file = "pyzmq-26.2.0-cp313-cp313-win_arm64.whl", hash = "sha256:c3789bd5768ab5618ebf09cef6ec2b35fed88709b104351748a63045f0ff9797"}, + {file = "pyzmq-26.2.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:034da5fc55d9f8da09015d368f519478a52675e558c989bfcb5cf6d4e16a7d2a"}, + {file = "pyzmq-26.2.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:c92d73464b886931308ccc45b2744e5968cbaade0b1d6aeb40d8ab537765f5bc"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:794a4562dcb374f7dbbfb3f51d28fb40123b5a2abadee7b4091f93054909add5"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aee22939bb6075e7afededabad1a56a905da0b3c4e3e0c45e75810ebe3a52672"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ae90ff9dad33a1cfe947d2c40cb9cb5e600d759ac4f0fd22616ce6540f72797"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:43a47408ac52647dfabbc66a25b05b6a61700b5165807e3fbd40063fcaf46386"}, + {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:25bf2374a2a8433633c65ccb9553350d5e17e60c8eb4de4d92cc6bd60f01d306"}, + {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_i686.whl", hash = "sha256:007137c9ac9ad5ea21e6ad97d3489af654381324d5d3ba614c323f60dab8fae6"}, + {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:470d4a4f6d48fb34e92d768b4e8a5cc3780db0d69107abf1cd7ff734b9766eb0"}, + {file = "pyzmq-26.2.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3b55a4229ce5da9497dd0452b914556ae58e96a4381bb6f59f1305dfd7e53fc8"}, + {file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9cb3a6460cdea8fe8194a76de8895707e61ded10ad0be97188cc8463ffa7e3a8"}, + {file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8ab5cad923cc95c87bffee098a27856c859bd5d0af31bd346035aa816b081fe1"}, + {file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ed69074a610fad1c2fda66180e7b2edd4d31c53f2d1872bc2d1211563904cd9"}, + {file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:cccba051221b916a4f5e538997c45d7d136a5646442b1231b916d0164067ea27"}, + {file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:0eaa83fc4c1e271c24eaf8fb083cbccef8fde77ec8cd45f3c35a9a123e6da097"}, + {file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:9edda2df81daa129b25a39b86cb57dfdfe16f7ec15b42b19bfac503360d27a93"}, + {file = "pyzmq-26.2.0-cp37-cp37m-win32.whl", hash = "sha256:ea0eb6af8a17fa272f7b98d7bebfab7836a0d62738e16ba380f440fceca2d951"}, + {file = "pyzmq-26.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:4ff9dc6bc1664bb9eec25cd17506ef6672d506115095411e237d571e92a58231"}, + {file = "pyzmq-26.2.0-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:2eb7735ee73ca1b0d71e0e67c3739c689067f055c764f73aac4cc8ecf958ee3f"}, + {file = "pyzmq-26.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1a534f43bc738181aa7cbbaf48e3eca62c76453a40a746ab95d4b27b1111a7d2"}, + {file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:aedd5dd8692635813368e558a05266b995d3d020b23e49581ddd5bbe197a8ab6"}, + {file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8be4700cd8bb02cc454f630dcdf7cfa99de96788b80c51b60fe2fe1dac480289"}, + {file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fcc03fa4997c447dce58264e93b5aa2d57714fbe0f06c07b7785ae131512732"}, + {file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:402b190912935d3db15b03e8f7485812db350d271b284ded2b80d2e5704be780"}, + {file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8685fa9c25ff00f550c1fec650430c4b71e4e48e8d852f7ddcf2e48308038640"}, + {file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:76589c020680778f06b7e0b193f4b6dd66d470234a16e1df90329f5e14a171cd"}, + {file = "pyzmq-26.2.0-cp38-cp38-win32.whl", hash = "sha256:8423c1877d72c041f2c263b1ec6e34360448decfb323fa8b94e85883043ef988"}, + {file = "pyzmq-26.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:76589f2cd6b77b5bdea4fca5992dc1c23389d68b18ccc26a53680ba2dc80ff2f"}, + {file = "pyzmq-26.2.0-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:b1d464cb8d72bfc1a3adc53305a63a8e0cac6bc8c5a07e8ca190ab8d3faa43c2"}, + {file = "pyzmq-26.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4da04c48873a6abdd71811c5e163bd656ee1b957971db7f35140a2d573f6949c"}, + {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:d049df610ac811dcffdc147153b414147428567fbbc8be43bb8885f04db39d98"}, + {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:05590cdbc6b902101d0e65d6a4780af14dc22914cc6ab995d99b85af45362cc9"}, + {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c811cfcd6a9bf680236c40c6f617187515269ab2912f3d7e8c0174898e2519db"}, + {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6835dd60355593de10350394242b5757fbbd88b25287314316f266e24c61d073"}, + {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc6bee759a6bddea5db78d7dcd609397449cb2d2d6587f48f3ca613b19410cfc"}, + {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c530e1eecd036ecc83c3407f77bb86feb79916d4a33d11394b8234f3bd35b940"}, + {file = "pyzmq-26.2.0-cp39-cp39-win32.whl", hash = "sha256:367b4f689786fca726ef7a6c5ba606958b145b9340a5e4808132cc65759abd44"}, + {file = "pyzmq-26.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:e6fa2e3e683f34aea77de8112f6483803c96a44fd726d7358b9888ae5bb394ec"}, + {file = "pyzmq-26.2.0-cp39-cp39-win_arm64.whl", hash = "sha256:7445be39143a8aa4faec43b076e06944b8f9d0701b669df4af200531b21e40bb"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:706e794564bec25819d21a41c31d4df2d48e1cc4b061e8d345d7fb4dd3e94072"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b435f2753621cd36e7c1762156815e21c985c72b19135dac43a7f4f31d28dd1"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:160c7e0a5eb178011e72892f99f918c04a131f36056d10d9c1afb223fc952c2d"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c4a71d5d6e7b28a47a394c0471b7e77a0661e2d651e7ae91e0cab0a587859ca"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:90412f2db8c02a3864cbfc67db0e3dcdbda336acf1c469526d3e869394fe001c"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2ea4ad4e6a12e454de05f2949d4beddb52460f3de7c8b9d5c46fbb7d7222e02c"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:fc4f7a173a5609631bb0c42c23d12c49df3966f89f496a51d3eb0ec81f4519d6"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:878206a45202247781472a2d99df12a176fef806ca175799e1c6ad263510d57c"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:17c412bad2eb9468e876f556eb4ee910e62d721d2c7a53c7fa31e643d35352e6"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:0d987a3ae5a71c6226b203cfd298720e0086c7fe7c74f35fa8edddfbd6597eed"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:39887ac397ff35b7b775db7201095fc6310a35fdbae85bac4523f7eb3b840e20"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:fdb5b3e311d4d4b0eb8b3e8b4d1b0a512713ad7e6a68791d0923d1aec433d919"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:226af7dcb51fdb0109f0016449b357e182ea0ceb6b47dfb5999d569e5db161d5"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bed0e799e6120b9c32756203fb9dfe8ca2fb8467fed830c34c877e25638c3fc"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:29c7947c594e105cb9e6c466bace8532dc1ca02d498684128b339799f5248277"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:cdeabcff45d1c219636ee2e54d852262e5c2e085d6cb476d938aee8d921356b3"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35cffef589bcdc587d06f9149f8d5e9e8859920a071df5a2671de2213bef592a"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18c8dc3b7468d8b4bdf60ce9d7141897da103c7a4690157b32b60acb45e333e6"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7133d0a1677aec369d67dd78520d3fa96dd7f3dcec99d66c1762870e5ea1a50a"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:6a96179a24b14fa6428cbfc08641c779a53f8fcec43644030328f44034c7f1f4"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:4f78c88905461a9203eac9faac157a2a0dbba84a0fd09fd29315db27be40af9f"}, + {file = "pyzmq-26.2.0.tar.gz", hash = "sha256:070672c258581c8e4f640b5159297580a9974b026043bd4ab0470be9ed324f1f"}, +] + +[package.dependencies] +cffi = {version = "*", markers = "implementation_name == \"pypy\""} + +[[package]] +name = "referencing" +version = "0.35.1" +description = "JSON Referencing + Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "referencing-0.35.1-py3-none-any.whl", hash = "sha256:eda6d3234d62814d1c64e305c1331c9a3a6132da475ab6382eaa997b21ee75de"}, + {file = "referencing-0.35.1.tar.gz", hash = "sha256:25b42124a6c8b632a425174f24087783efb348a6f1e0008e63cd4466fedf703c"}, +] + +[package.dependencies] +attrs = ">=22.2.0" +rpds-py = ">=0.7.0" + [[package]] name = "regex" -version = "2024.9.11" +version = "2024.11.6" description = "Alternative regular expression module, to replace re." optional = false python-versions = ">=3.8" files = [ - {file = "regex-2024.9.11-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1494fa8725c285a81d01dc8c06b55287a1ee5e0e382d8413adc0a9197aac6408"}, - {file = "regex-2024.9.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0e12c481ad92d129c78f13a2a3662317e46ee7ef96c94fd332e1c29131875b7d"}, - {file = "regex-2024.9.11-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:16e13a7929791ac1216afde26f712802e3df7bf0360b32e4914dca3ab8baeea5"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46989629904bad940bbec2106528140a218b4a36bb3042d8406980be1941429c"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a906ed5e47a0ce5f04b2c981af1c9acf9e8696066900bf03b9d7879a6f679fc8"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e9a091b0550b3b0207784a7d6d0f1a00d1d1c8a11699c1a4d93db3fbefc3ad35"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ddcd9a179c0a6fa8add279a4444015acddcd7f232a49071ae57fa6e278f1f71"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6b41e1adc61fa347662b09398e31ad446afadff932a24807d3ceb955ed865cc8"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ced479f601cd2f8ca1fd7b23925a7e0ad512a56d6e9476f79b8f381d9d37090a"}, - {file = "regex-2024.9.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:635a1d96665f84b292e401c3d62775851aedc31d4f8784117b3c68c4fcd4118d"}, - {file = "regex-2024.9.11-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:c0256beda696edcf7d97ef16b2a33a8e5a875affd6fa6567b54f7c577b30a137"}, - {file = "regex-2024.9.11-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:3ce4f1185db3fbde8ed8aa223fc9620f276c58de8b0d4f8cc86fd1360829edb6"}, - {file = "regex-2024.9.11-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:09d77559e80dcc9d24570da3745ab859a9cf91953062e4ab126ba9d5993688ca"}, - {file = "regex-2024.9.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7a22ccefd4db3f12b526eccb129390942fe874a3a9fdbdd24cf55773a1faab1a"}, - {file = "regex-2024.9.11-cp310-cp310-win32.whl", hash = "sha256:f745ec09bc1b0bd15cfc73df6fa4f726dcc26bb16c23a03f9e3367d357eeedd0"}, - {file = "regex-2024.9.11-cp310-cp310-win_amd64.whl", hash = "sha256:01c2acb51f8a7d6494c8c5eafe3d8e06d76563d8a8a4643b37e9b2dd8a2ff623"}, - {file = "regex-2024.9.11-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2cce2449e5927a0bf084d346da6cd5eb016b2beca10d0013ab50e3c226ffc0df"}, - {file = "regex-2024.9.11-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3b37fa423beefa44919e009745ccbf353d8c981516e807995b2bd11c2c77d268"}, - {file = "regex-2024.9.11-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:64ce2799bd75039b480cc0360907c4fb2f50022f030bf9e7a8705b636e408fad"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a4cc92bb6db56ab0c1cbd17294e14f5e9224f0cc6521167ef388332604e92679"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d05ac6fa06959c4172eccd99a222e1fbf17b5670c4d596cb1e5cde99600674c4"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:040562757795eeea356394a7fb13076ad4f99d3c62ab0f8bdfb21f99a1f85664"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6113c008a7780792efc80f9dfe10ba0cd043cbf8dc9a76ef757850f51b4edc50"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8e5fb5f77c8745a60105403a774fe2c1759b71d3e7b4ca237a5e67ad066c7199"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:54d9ff35d4515debf14bc27f1e3b38bfc453eff3220f5bce159642fa762fe5d4"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:df5cbb1fbc74a8305b6065d4ade43b993be03dbe0f8b30032cced0d7740994bd"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:7fb89ee5d106e4a7a51bce305ac4efb981536301895f7bdcf93ec92ae0d91c7f"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:a738b937d512b30bf75995c0159c0ddf9eec0775c9d72ac0202076c72f24aa96"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e28f9faeb14b6f23ac55bfbbfd3643f5c7c18ede093977f1df249f73fd22c7b1"}, - {file = "regex-2024.9.11-cp311-cp311-win32.whl", hash = "sha256:18e707ce6c92d7282dfce370cd205098384b8ee21544e7cb29b8aab955b66fa9"}, - {file = "regex-2024.9.11-cp311-cp311-win_amd64.whl", hash = "sha256:313ea15e5ff2a8cbbad96ccef6be638393041b0a7863183c2d31e0c6116688cf"}, - {file = "regex-2024.9.11-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b0d0a6c64fcc4ef9c69bd5b3b3626cc3776520a1637d8abaa62b9edc147a58f7"}, - {file = "regex-2024.9.11-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:49b0e06786ea663f933f3710a51e9385ce0cba0ea56b67107fd841a55d56a231"}, - {file = "regex-2024.9.11-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5b513b6997a0b2f10e4fd3a1313568e373926e8c252bd76c960f96fd039cd28d"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee439691d8c23e76f9802c42a95cfeebf9d47cf4ffd06f18489122dbb0a7ad64"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a8f877c89719d759e52783f7fe6e1c67121076b87b40542966c02de5503ace42"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:23b30c62d0f16827f2ae9f2bb87619bc4fba2044911e2e6c2eb1af0161cdb766"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85ab7824093d8f10d44330fe1e6493f756f252d145323dd17ab6b48733ff6c0a"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8dee5b4810a89447151999428fe096977346cf2f29f4d5e29609d2e19e0199c9"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:98eeee2f2e63edae2181c886d7911ce502e1292794f4c5ee71e60e23e8d26b5d"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:57fdd2e0b2694ce6fc2e5ccf189789c3e2962916fb38779d3e3521ff8fe7a822"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:d552c78411f60b1fdaafd117a1fca2f02e562e309223b9d44b7de8be451ec5e0"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:a0b2b80321c2ed3fcf0385ec9e51a12253c50f146fddb2abbb10f033fe3d049a"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:18406efb2f5a0e57e3a5881cd9354c1512d3bb4f5c45d96d110a66114d84d23a"}, - {file = "regex-2024.9.11-cp312-cp312-win32.whl", hash = "sha256:e464b467f1588e2c42d26814231edecbcfe77f5ac414d92cbf4e7b55b2c2a776"}, - {file = "regex-2024.9.11-cp312-cp312-win_amd64.whl", hash = "sha256:9e8719792ca63c6b8340380352c24dcb8cd7ec49dae36e963742a275dfae6009"}, - {file = "regex-2024.9.11-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c157bb447303070f256e084668b702073db99bbb61d44f85d811025fcf38f784"}, - {file = "regex-2024.9.11-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4db21ece84dfeefc5d8a3863f101995de646c6cb0536952c321a2650aa202c36"}, - {file = "regex-2024.9.11-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:220e92a30b426daf23bb67a7962900ed4613589bab80382be09b48896d211e92"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb1ae19e64c14c7ec1995f40bd932448713d3c73509e82d8cd7744dc00e29e86"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f47cd43a5bfa48f86925fe26fbdd0a488ff15b62468abb5d2a1e092a4fb10e85"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9d4a76b96f398697fe01117093613166e6aa8195d63f1b4ec3f21ab637632963"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ea51dcc0835eea2ea31d66456210a4e01a076d820e9039b04ae8d17ac11dee6"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7aaa315101c6567a9a45d2839322c51c8d6e81f67683d529512f5bcfb99c802"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c57d08ad67aba97af57a7263c2d9006d5c404d721c5f7542f077f109ec2a4a29"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f8404bf61298bb6f8224bb9176c1424548ee1181130818fcd2cbffddc768bed8"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:dd4490a33eb909ef5078ab20f5f000087afa2a4daa27b4c072ccb3cb3050ad84"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:eee9130eaad130649fd73e5cd92f60e55708952260ede70da64de420cdcad554"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6a2644a93da36c784e546de579ec1806bfd2763ef47babc1b03d765fe560c9f8"}, - {file = "regex-2024.9.11-cp313-cp313-win32.whl", hash = "sha256:e997fd30430c57138adc06bba4c7c2968fb13d101e57dd5bb9355bf8ce3fa7e8"}, - {file = "regex-2024.9.11-cp313-cp313-win_amd64.whl", hash = "sha256:042c55879cfeb21a8adacc84ea347721d3d83a159da6acdf1116859e2427c43f"}, - {file = "regex-2024.9.11-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:35f4a6f96aa6cb3f2f7247027b07b15a374f0d5b912c0001418d1d55024d5cb4"}, - {file = "regex-2024.9.11-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:55b96e7ce3a69a8449a66984c268062fbaa0d8ae437b285428e12797baefce7e"}, - {file = "regex-2024.9.11-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cb130fccd1a37ed894824b8c046321540263013da72745d755f2d35114b81a60"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:323c1f04be6b2968944d730e5c2091c8c89767903ecaa135203eec4565ed2b2b"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be1c8ed48c4c4065ecb19d882a0ce1afe0745dfad8ce48c49586b90a55f02366"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b5b029322e6e7b94fff16cd120ab35a253236a5f99a79fb04fda7ae71ca20ae8"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6fff13ef6b5f29221d6904aa816c34701462956aa72a77f1f151a8ec4f56aeb"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:587d4af3979376652010e400accc30404e6c16b7df574048ab1f581af82065e4"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:079400a8269544b955ffa9e31f186f01d96829110a3bf79dc338e9910f794fca"}, - {file = "regex-2024.9.11-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:f9268774428ec173654985ce55fc6caf4c6d11ade0f6f914d48ef4719eb05ebb"}, - {file = "regex-2024.9.11-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:23f9985c8784e544d53fc2930fc1ac1a7319f5d5332d228437acc9f418f2f168"}, - {file = "regex-2024.9.11-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:ae2941333154baff9838e88aa71c1d84f4438189ecc6021a12c7573728b5838e"}, - {file = "regex-2024.9.11-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:e93f1c331ca8e86fe877a48ad64e77882c0c4da0097f2212873a69bbfea95d0c"}, - {file = "regex-2024.9.11-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:846bc79ee753acf93aef4184c040d709940c9d001029ceb7b7a52747b80ed2dd"}, - {file = "regex-2024.9.11-cp38-cp38-win32.whl", hash = "sha256:c94bb0a9f1db10a1d16c00880bdebd5f9faf267273b8f5bd1878126e0fbde771"}, - {file = "regex-2024.9.11-cp38-cp38-win_amd64.whl", hash = "sha256:2b08fce89fbd45664d3df6ad93e554b6c16933ffa9d55cb7e01182baaf971508"}, - {file = "regex-2024.9.11-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:07f45f287469039ffc2c53caf6803cd506eb5f5f637f1d4acb37a738f71dd066"}, - {file = "regex-2024.9.11-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4838e24ee015101d9f901988001038f7f0d90dc0c3b115541a1365fb439add62"}, - {file = "regex-2024.9.11-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6edd623bae6a737f10ce853ea076f56f507fd7726bee96a41ee3d68d347e4d16"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c69ada171c2d0e97a4b5aa78fbb835e0ffbb6b13fc5da968c09811346564f0d3"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:02087ea0a03b4af1ed6ebab2c54d7118127fee8d71b26398e8e4b05b78963199"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:69dee6a020693d12a3cf892aba4808fe168d2a4cef368eb9bf74f5398bfd4ee8"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:297f54910247508e6e5cae669f2bc308985c60540a4edd1c77203ef19bfa63ca"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ecea58b43a67b1b79805f1a0255730edaf5191ecef84dbc4cc85eb30bc8b63b9"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:eab4bb380f15e189d1313195b062a6aa908f5bd687a0ceccd47c8211e9cf0d4a"}, - {file = "regex-2024.9.11-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0cbff728659ce4bbf4c30b2a1be040faafaa9eca6ecde40aaff86f7889f4ab39"}, - {file = "regex-2024.9.11-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:54c4a097b8bc5bb0dfc83ae498061d53ad7b5762e00f4adaa23bee22b012e6ba"}, - {file = "regex-2024.9.11-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:73d6d2f64f4d894c96626a75578b0bf7d9e56dcda8c3d037a2118fdfe9b1c664"}, - {file = "regex-2024.9.11-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:e53b5fbab5d675aec9f0c501274c467c0f9a5d23696cfc94247e1fb56501ed89"}, - {file = "regex-2024.9.11-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0ffbcf9221e04502fc35e54d1ce9567541979c3fdfb93d2c554f0ca583a19b35"}, - {file = "regex-2024.9.11-cp39-cp39-win32.whl", hash = "sha256:e4c22e1ac1f1ec1e09f72e6c44d8f2244173db7eb9629cc3a346a8d7ccc31142"}, - {file = "regex-2024.9.11-cp39-cp39-win_amd64.whl", hash = "sha256:faa3c142464efec496967359ca99696c896c591c56c53506bac1ad465f66e919"}, - {file = "regex-2024.9.11.tar.gz", hash = "sha256:6c188c307e8433bcb63dc1915022deb553b4203a70722fc542c363bf120a01fd"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ff590880083d60acc0433f9c3f713c51f7ac6ebb9adf889c79a261ecf541aa91"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:658f90550f38270639e83ce492f27d2c8d2cd63805c65a13a14d36ca126753f0"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:164d8b7b3b4bcb2068b97428060b2a53be050085ef94eca7f240e7947f1b080e"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3660c82f209655a06b587d55e723f0b813d3a7db2e32e5e7dc64ac2a9e86fde"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d22326fcdef5e08c154280b71163ced384b428343ae16a5ab2b3354aed12436e"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1ac758ef6aebfc8943560194e9fd0fa18bcb34d89fd8bd2af18183afd8da3a2"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:997d6a487ff00807ba810e0f8332c18b4eb8d29463cfb7c820dc4b6e7562d0cf"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:02a02d2bb04fec86ad61f3ea7f49c015a0681bf76abb9857f945d26159d2968c"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f02f93b92358ee3f78660e43b4b0091229260c5d5c408d17d60bf26b6c900e86"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:06eb1be98df10e81ebaded73fcd51989dcf534e3c753466e4b60c4697a003b67"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:040df6fe1a5504eb0f04f048e6d09cd7c7110fef851d7c567a6b6e09942feb7d"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabbfc59f2c6edba2a6622c647b716e34e8e3867e0ab975412c5c2f79b82da2"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:8447d2d39b5abe381419319f942de20b7ecd60ce86f16a23b0698f22e1b70008"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:da8f5fc57d1933de22a9e23eec290a0d8a5927a5370d24bda9a6abe50683fe62"}, + {file = "regex-2024.11.6-cp310-cp310-win32.whl", hash = "sha256:b489578720afb782f6ccf2840920f3a32e31ba28a4b162e13900c3e6bd3f930e"}, + {file = "regex-2024.11.6-cp310-cp310-win_amd64.whl", hash = "sha256:5071b2093e793357c9d8b2929dfc13ac5f0a6c650559503bb81189d0a3814519"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5478c6962ad548b54a591778e93cd7c456a7a29f8eca9c49e4f9a806dcc5d638"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c89a8cc122b25ce6945f0423dc1352cb9593c68abd19223eebbd4e56612c5b7"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:94d87b689cdd831934fa3ce16cc15cd65748e6d689f5d2b8f4f4df2065c9fa20"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1062b39a0a2b75a9c694f7a08e7183a80c63c0d62b301418ffd9c35f55aaa114"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:167ed4852351d8a750da48712c3930b031f6efdaa0f22fa1933716bfcd6bf4a3"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d548dafee61f06ebdb584080621f3e0c23fff312f0de1afc776e2a2ba99a74f"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a19f302cd1ce5dd01a9099aaa19cae6173306d1302a43b627f62e21cf18ac0"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bec9931dfb61ddd8ef2ebc05646293812cb6b16b60cf7c9511a832b6f1854b55"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9714398225f299aa85267fd222f7142fcb5c769e73d7733344efc46f2ef5cf89"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:202eb32e89f60fc147a41e55cb086db2a3f8cb82f9a9a88440dcfc5d37faae8d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:4181b814e56078e9b00427ca358ec44333765f5ca1b45597ec7446d3a1ef6e34"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:068376da5a7e4da51968ce4c122a7cd31afaaec4fccc7856c92f63876e57b51d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f2c4184420d881a3475fb2c6f4d95d53a8d50209a2500723d831036f7c45"}, + {file = "regex-2024.11.6-cp311-cp311-win32.whl", hash = "sha256:c36f9b6f5f8649bb251a5f3f66564438977b7ef8386a52460ae77e6070d309d9"}, + {file = "regex-2024.11.6-cp311-cp311-win_amd64.whl", hash = "sha256:02e28184be537f0e75c1f9b2f8847dc51e08e6e171c6bde130b2687e0c33cf60"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:52fb28f528778f184f870b7cf8f225f5eef0a8f6e3778529bdd40c7b3920796a"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdd6028445d2460f33136c55eeb1f601ab06d74cb3347132e1c24250187500d9"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805e6b60c54bf766b251e94526ebad60b7de0c70f70a4e6210ee2891acb70bf2"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b85c2530be953a890eaffde05485238f07029600e8f098cdf1848d414a8b45e4"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb26437975da7dc36b7efad18aa9dd4ea569d2357ae6b783bf1118dabd9ea577"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abfa5080c374a76a251ba60683242bc17eeb2c9818d0d30117b4486be10c59d3"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b7fa6606c2881c1db9479b0eaa11ed5dfa11c8d60a474ff0e095099f39d98e"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c32f75920cf99fe6b6c539c399a4a128452eaf1af27f39bce8909c9a3fd8cbe"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:982e6d21414e78e1f51cf595d7f321dcd14de1f2881c5dc6a6e23bbbbd68435e"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a7c2155f790e2fb448faed6dd241386719802296ec588a8b9051c1f5c481bc29"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149f5008d286636e48cd0b1dd65018548944e495b0265b45e1bffecce1ef7f39"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e5364a4502efca094731680e80009632ad6624084aff9a23ce8c8c6820de3e51"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0a86e7eeca091c09e021db8eb72d54751e527fa47b8d5787caf96d9831bd02ad"}, + {file = "regex-2024.11.6-cp312-cp312-win32.whl", hash = "sha256:32f9a4c643baad4efa81d549c2aadefaeba12249b2adc5af541759237eee1c54"}, + {file = "regex-2024.11.6-cp312-cp312-win_amd64.whl", hash = "sha256:a93c194e2df18f7d264092dc8539b8ffb86b45b899ab976aa15d48214138e81b"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a6ba92c0bcdf96cbf43a12c717eae4bc98325ca3730f6b130ffa2e3c3c723d84"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:525eab0b789891ac3be914d36893bdf972d483fe66551f79d3e27146191a37d4"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:086a27a0b4ca227941700e0b31425e7a28ef1ae8e5e05a33826e17e47fbfdba0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bde01f35767c4a7899b7eb6e823b125a64de314a8ee9791367c9a34d56af18d0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b583904576650166b3d920d2bcce13971f6f9e9a396c673187f49811b2769dc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c4de13f06a0d54fa0d5ab1b7138bfa0d883220965a29616e3ea61b35d5f5fc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cde6e9f2580eb1665965ce9bf17ff4952f34f5b126beb509fee8f4e994f143c"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d7f453dca13f40a02b79636a339c5b62b670141e63efd511d3f8f73fba162b3"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:59dfe1ed21aea057a65c6b586afd2a945de04fc7db3de0a6e3ed5397ad491b07"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b97c1e0bd37c5cd7902e65f410779d39eeda155800b65fc4d04cc432efa9bc6e"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d1e379028e0fc2ae3654bac3cbbef81bf3fd571272a42d56c24007979bafb6"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:13291b39131e2d002a7940fb176e120bec5145f3aeb7621be6534e46251912c4"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f51f88c126370dcec4908576c5a627220da6c09d0bff31cfa89f2523843316d"}, + {file = "regex-2024.11.6-cp313-cp313-win32.whl", hash = "sha256:63b13cfd72e9601125027202cad74995ab26921d8cd935c25f09c630436348ff"}, + {file = "regex-2024.11.6-cp313-cp313-win_amd64.whl", hash = "sha256:2b3361af3198667e99927da8b84c1b010752fa4b1115ee30beaa332cabc3ef1a"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:3a51ccc315653ba012774efca4f23d1d2a8a8f278a6072e29c7147eee7da446b"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ad182d02e40de7459b73155deb8996bbd8e96852267879396fb274e8700190e3"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ba9b72e5643641b7d41fa1f6d5abda2c9a263ae835b917348fc3c928182ad467"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40291b1b89ca6ad8d3f2b82782cc33807f1406cf68c8d440861da6304d8ffbbd"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cdf58d0e516ee426a48f7b2c03a332a4114420716d55769ff7108c37a09951bf"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a36fdf2af13c2b14738f6e973aba563623cb77d753bbbd8d414d18bfaa3105dd"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1cee317bfc014c2419a76bcc87f071405e3966da434e03e13beb45f8aced1a6"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50153825ee016b91549962f970d6a4442fa106832e14c918acd1c8e479916c4f"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ea1bfda2f7162605f6e8178223576856b3d791109f15ea99a9f95c16a7636fb5"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:df951c5f4a1b1910f1a99ff42c473ff60f8225baa1cdd3539fe2819d9543e9df"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:072623554418a9911446278f16ecb398fb3b540147a7828c06e2011fa531e773"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f654882311409afb1d780b940234208a252322c24a93b442ca714d119e68086c"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:89d75e7293d2b3e674db7d4d9b1bee7f8f3d1609428e293771d1a962617150cc"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:f65557897fc977a44ab205ea871b690adaef6b9da6afda4790a2484b04293a5f"}, + {file = "regex-2024.11.6-cp38-cp38-win32.whl", hash = "sha256:6f44ec28b1f858c98d3036ad5d7d0bfc568bdd7a74f9c24e25f41ef1ebfd81a4"}, + {file = "regex-2024.11.6-cp38-cp38-win_amd64.whl", hash = "sha256:bb8f74f2f10dbf13a0be8de623ba4f9491faf58c24064f32b65679b021ed0001"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5704e174f8ccab2026bd2f1ab6c510345ae8eac818b613d7d73e785f1310f839"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:220902c3c5cc6af55d4fe19ead504de80eb91f786dc102fbd74894b1551f095e"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e7e351589da0850c125f1600a4c4ba3c722efefe16b297de54300f08d734fbf"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5056b185ca113c88e18223183aa1a50e66507769c9640a6ff75859619d73957b"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2e34b51b650b23ed3354b5a07aab37034d9f923db2a40519139af34f485f77d0"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5670bce7b200273eee1840ef307bfa07cda90b38ae56e9a6ebcc9f50da9c469b"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08986dce1339bc932923e7d1232ce9881499a0e02925f7402fb7c982515419ef"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:93c0b12d3d3bc25af4ebbf38f9ee780a487e8bf6954c115b9f015822d3bb8e48"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:764e71f22ab3b305e7f4c21f1a97e1526a25ebdd22513e251cf376760213da13"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f056bf21105c2515c32372bbc057f43eb02aae2fda61052e2f7622c801f0b4e2"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:69ab78f848845569401469da20df3e081e6b5a11cb086de3eed1d48f5ed57c95"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:86fddba590aad9208e2fa8b43b4c098bb0ec74f15718bb6a704e3c63e2cef3e9"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:684d7a212682996d21ca12ef3c17353c021fe9de6049e19ac8481ec35574a70f"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a03e02f48cd1abbd9f3b7e3586d97c8f7a9721c436f51a5245b3b9483044480b"}, + {file = "regex-2024.11.6-cp39-cp39-win32.whl", hash = "sha256:41758407fc32d5c3c5de163888068cfee69cb4c2be844e7ac517a52770f9af57"}, + {file = "regex-2024.11.6-cp39-cp39-win_amd64.whl", hash = "sha256:b2837718570f95dd41675328e111345f9b7095d821bac435aac173ac80b19983"}, + {file = "regex-2024.11.6.tar.gz", hash = "sha256:7ab159b063c52a0333c884e4679f8d7a85112ee3078fe3d9004b2dd875585519"}, ] [[package]] @@ -1755,6 +3143,143 @@ urllib3 = ">=1.21.1,<3" socks = ["PySocks (>=1.5.6,!=1.5.7)"] use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] +[[package]] +name = "rfc3339-validator" +version = "0.1.4" +description = "A pure python RFC3339 validator" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa"}, + {file = "rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b"}, +] + +[package.dependencies] +six = "*" + +[[package]] +name = "rfc3986-validator" +version = "0.1.1" +description = "Pure python rfc3986 validator" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "rfc3986_validator-0.1.1-py2.py3-none-any.whl", hash = "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9"}, + {file = "rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055"}, +] + +[[package]] +name = "rpds-py" +version = "0.22.3" +description = "Python bindings to Rust's persistent data structures (rpds)" +optional = false +python-versions = ">=3.9" +files = [ + {file = "rpds_py-0.22.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:6c7b99ca52c2c1752b544e310101b98a659b720b21db00e65edca34483259967"}, + {file = "rpds_py-0.22.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:be2eb3f2495ba669d2a985f9b426c1797b7d48d6963899276d22f23e33d47e37"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70eb60b3ae9245ddea20f8a4190bd79c705a22f8028aaf8bbdebe4716c3fab24"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4041711832360a9b75cfb11b25a6a97c8fb49c07b8bd43d0d02b45d0b499a4ff"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:64607d4cbf1b7e3c3c8a14948b99345eda0e161b852e122c6bb71aab6d1d798c"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e69b0a0e2537f26d73b4e43ad7bc8c8efb39621639b4434b76a3de50c6966e"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc27863442d388870c1809a87507727b799c8460573cfbb6dc0eeaef5a11b5ec"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e79dd39f1e8c3504be0607e5fc6e86bb60fe3584bec8b782578c3b0fde8d932c"}, + {file = "rpds_py-0.22.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e0fa2d4ec53dc51cf7d3bb22e0aa0143966119f42a0c3e4998293a3dd2856b09"}, + {file = "rpds_py-0.22.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fda7cb070f442bf80b642cd56483b5548e43d366fe3f39b98e67cce780cded00"}, + {file = "rpds_py-0.22.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cff63a0272fcd259dcc3be1657b07c929c466b067ceb1c20060e8d10af56f5bf"}, + {file = "rpds_py-0.22.3-cp310-cp310-win32.whl", hash = "sha256:9bd7228827ec7bb817089e2eb301d907c0d9827a9e558f22f762bb690b131652"}, + {file = "rpds_py-0.22.3-cp310-cp310-win_amd64.whl", hash = "sha256:9beeb01d8c190d7581a4d59522cd3d4b6887040dcfc744af99aa59fef3e041a8"}, + {file = "rpds_py-0.22.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d20cfb4e099748ea39e6f7b16c91ab057989712d31761d3300d43134e26e165f"}, + {file = "rpds_py-0.22.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:68049202f67380ff9aa52f12e92b1c30115f32e6895cd7198fa2a7961621fc5a"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb4f868f712b2dd4bcc538b0a0c1f63a2b1d584c925e69a224d759e7070a12d5"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bc51abd01f08117283c5ebf64844a35144a0843ff7b2983e0648e4d3d9f10dbb"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0f3cec041684de9a4684b1572fe28c7267410e02450f4561700ca5a3bc6695a2"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7ef9d9da710be50ff6809fed8f1963fecdfecc8b86656cadfca3bc24289414b0"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59f4a79c19232a5774aee369a0c296712ad0e77f24e62cad53160312b1c1eaa1"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1a60bce91f81ddaac922a40bbb571a12c1070cb20ebd6d49c48e0b101d87300d"}, + {file = "rpds_py-0.22.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e89391e6d60251560f0a8f4bd32137b077a80d9b7dbe6d5cab1cd80d2746f648"}, + {file = "rpds_py-0.22.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e3fb866d9932a3d7d0c82da76d816996d1667c44891bd861a0f97ba27e84fc74"}, + {file = "rpds_py-0.22.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1352ae4f7c717ae8cba93421a63373e582d19d55d2ee2cbb184344c82d2ae55a"}, + {file = "rpds_py-0.22.3-cp311-cp311-win32.whl", hash = "sha256:b0b4136a252cadfa1adb705bb81524eee47d9f6aab4f2ee4fa1e9d3cd4581f64"}, + {file = "rpds_py-0.22.3-cp311-cp311-win_amd64.whl", hash = "sha256:8bd7c8cfc0b8247c8799080fbff54e0b9619e17cdfeb0478ba7295d43f635d7c"}, + {file = "rpds_py-0.22.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:27e98004595899949bd7a7b34e91fa7c44d7a97c40fcaf1d874168bb652ec67e"}, + {file = "rpds_py-0.22.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1978d0021e943aae58b9b0b196fb4895a25cc53d3956b8e35e0b7682eefb6d56"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:655ca44a831ecb238d124e0402d98f6212ac527a0ba6c55ca26f616604e60a45"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:feea821ee2a9273771bae61194004ee2fc33f8ec7db08117ef9147d4bbcbca8e"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:22bebe05a9ffc70ebfa127efbc429bc26ec9e9b4ee4d15a740033efda515cf3d"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3af6e48651c4e0d2d166dc1b033b7042ea3f871504b6805ba5f4fe31581d8d38"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e67ba3c290821343c192f7eae1d8fd5999ca2dc99994114643e2f2d3e6138b15"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:02fbb9c288ae08bcb34fb41d516d5eeb0455ac35b5512d03181d755d80810059"}, + {file = "rpds_py-0.22.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f56a6b404f74ab372da986d240e2e002769a7d7102cc73eb238a4f72eec5284e"}, + {file = "rpds_py-0.22.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0a0461200769ab3b9ab7e513f6013b7a97fdeee41c29b9db343f3c5a8e2b9e61"}, + {file = "rpds_py-0.22.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8633e471c6207a039eff6aa116e35f69f3156b3989ea3e2d755f7bc41754a4a7"}, + {file = "rpds_py-0.22.3-cp312-cp312-win32.whl", hash = "sha256:593eba61ba0c3baae5bc9be2f5232430453fb4432048de28399ca7376de9c627"}, + {file = "rpds_py-0.22.3-cp312-cp312-win_amd64.whl", hash = "sha256:d115bffdd417c6d806ea9069237a4ae02f513b778e3789a359bc5856e0404cc4"}, + {file = "rpds_py-0.22.3-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:ea7433ce7e4bfc3a85654aeb6747babe3f66eaf9a1d0c1e7a4435bbdf27fea84"}, + {file = "rpds_py-0.22.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6dd9412824c4ce1aca56c47b0991e65bebb7ac3f4edccfd3f156150c96a7bf25"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20070c65396f7373f5df4005862fa162db5d25d56150bddd0b3e8214e8ef45b4"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0b09865a9abc0ddff4e50b5ef65467cd94176bf1e0004184eb915cbc10fc05c5"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3453e8d41fe5f17d1f8e9c383a7473cd46a63661628ec58e07777c2fff7196dc"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f5d36399a1b96e1a5fdc91e0522544580dbebeb1f77f27b2b0ab25559e103b8b"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:009de23c9c9ee54bf11303a966edf4d9087cd43a6003672e6aa7def643d06518"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1aef18820ef3e4587ebe8b3bc9ba6e55892a6d7b93bac6d29d9f631a3b4befbd"}, + {file = "rpds_py-0.22.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f60bd8423be1d9d833f230fdbccf8f57af322d96bcad6599e5a771b151398eb2"}, + {file = "rpds_py-0.22.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:62d9cfcf4948683a18a9aff0ab7e1474d407b7bab2ca03116109f8464698ab16"}, + {file = "rpds_py-0.22.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9253fc214112405f0afa7db88739294295f0e08466987f1d70e29930262b4c8f"}, + {file = "rpds_py-0.22.3-cp313-cp313-win32.whl", hash = "sha256:fb0ba113b4983beac1a2eb16faffd76cb41e176bf58c4afe3e14b9c681f702de"}, + {file = "rpds_py-0.22.3-cp313-cp313-win_amd64.whl", hash = "sha256:c58e2339def52ef6b71b8f36d13c3688ea23fa093353f3a4fee2556e62086ec9"}, + {file = "rpds_py-0.22.3-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:f82a116a1d03628a8ace4859556fb39fd1424c933341a08ea3ed6de1edb0283b"}, + {file = "rpds_py-0.22.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3dfcbc95bd7992b16f3f7ba05af8a64ca694331bd24f9157b49dadeeb287493b"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59259dc58e57b10e7e18ce02c311804c10c5a793e6568f8af4dead03264584d1"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5725dd9cc02068996d4438d397e255dcb1df776b7ceea3b9cb972bdb11260a83"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:99b37292234e61325e7a5bb9689e55e48c3f5f603af88b1642666277a81f1fbd"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:27b1d3b3915a99208fee9ab092b8184c420f2905b7d7feb4aeb5e4a9c509b8a1"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f612463ac081803f243ff13cccc648578e2279295048f2a8d5eb430af2bae6e3"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f73d3fef726b3243a811121de45193c0ca75f6407fe66f3f4e183c983573e130"}, + {file = "rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:3f21f0495edea7fdbaaa87e633a8689cd285f8f4af5c869f27bc8074638ad69c"}, + {file = "rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:1e9663daaf7a63ceccbbb8e3808fe90415b0757e2abddbfc2e06c857bf8c5e2b"}, + {file = "rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a76e42402542b1fae59798fab64432b2d015ab9d0c8c47ba7addddbaf7952333"}, + {file = "rpds_py-0.22.3-cp313-cp313t-win32.whl", hash = "sha256:69803198097467ee7282750acb507fba35ca22cc3b85f16cf45fb01cb9097730"}, + {file = "rpds_py-0.22.3-cp313-cp313t-win_amd64.whl", hash = "sha256:f5cf2a0c2bdadf3791b5c205d55a37a54025c6e18a71c71f82bb536cf9a454bf"}, + {file = "rpds_py-0.22.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:378753b4a4de2a7b34063d6f95ae81bfa7b15f2c1a04a9518e8644e81807ebea"}, + {file = "rpds_py-0.22.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3445e07bf2e8ecfeef6ef67ac83de670358abf2996916039b16a218e3d95e97e"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b2513ba235829860b13faa931f3b6846548021846ac808455301c23a101689d"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eaf16ae9ae519a0e237a0f528fd9f0197b9bb70f40263ee57ae53c2b8d48aeb3"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:583f6a1993ca3369e0f80ba99d796d8e6b1a3a2a442dd4e1a79e652116413091"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4617e1915a539a0d9a9567795023de41a87106522ff83fbfaf1f6baf8e85437e"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c150c7a61ed4a4f4955a96626574e9baf1adf772c2fb61ef6a5027e52803543"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2fa4331c200c2521512595253f5bb70858b90f750d39b8cbfd67465f8d1b596d"}, + {file = "rpds_py-0.22.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:214b7a953d73b5e87f0ebece4a32a5bd83c60a3ecc9d4ec8f1dca968a2d91e99"}, + {file = "rpds_py-0.22.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:f47ad3d5f3258bd7058d2d506852217865afefe6153a36eb4b6928758041d831"}, + {file = "rpds_py-0.22.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f276b245347e6e36526cbd4a266a417796fc531ddf391e43574cf6466c492520"}, + {file = "rpds_py-0.22.3-cp39-cp39-win32.whl", hash = "sha256:bbb232860e3d03d544bc03ac57855cd82ddf19c7a07651a7c0fdb95e9efea8b9"}, + {file = "rpds_py-0.22.3-cp39-cp39-win_amd64.whl", hash = "sha256:cfbc454a2880389dbb9b5b398e50d439e2e58669160f27b60e5eca11f68ae17c"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:d48424e39c2611ee1b84ad0f44fb3b2b53d473e65de061e3f460fc0be5f1939d"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:24e8abb5878e250f2eb0d7859a8e561846f98910326d06c0d51381fed59357bd"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b232061ca880db21fa14defe219840ad9b74b6158adb52ddf0e87bead9e8493"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac0a03221cdb5058ce0167ecc92a8c89e8d0decdc9e99a2ec23380793c4dcb96"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb0c341fa71df5a4595f9501df4ac5abfb5a09580081dffbd1ddd4654e6e9123"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bf9db5488121b596dbfc6718c76092fda77b703c1f7533a226a5a9f65248f8ad"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b8db6b5b2d4491ad5b6bdc2bc7c017eec108acbf4e6785f42a9eb0ba234f4c9"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b3d504047aba448d70cf6fa22e06cb09f7cbd761939fdd47604f5e007675c24e"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:e61b02c3f7a1e0b75e20c3978f7135fd13cb6cf551bf4a6d29b999a88830a338"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:e35ba67d65d49080e8e5a1dd40101fccdd9798adb9b050ff670b7d74fa41c566"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:26fd7cac7dd51011a245f29a2cc6489c4608b5a8ce8d75661bb4a1066c52dfbe"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:177c7c0fce2855833819c98e43c262007f42ce86651ffbb84f37883308cb0e7d"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:bb47271f60660803ad11f4c61b42242b8c1312a31c98c578f79ef9387bbde21c"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:70fb28128acbfd264eda9bf47015537ba3fe86e40d046eb2963d75024be4d055"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:44d61b4b7d0c2c9ac019c314e52d7cbda0ae31078aabd0f22e583af3e0d79723"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f0e260eaf54380380ac3808aa4ebe2d8ca28b9087cf411649f96bad6900c728"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b25bc607423935079e05619d7de556c91fb6adeae9d5f80868dde3468657994b"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fb6116dfb8d1925cbdb52595560584db42a7f664617a1f7d7f6e32f138cdf37d"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a63cbdd98acef6570c62b92a1e43266f9e8b21e699c363c0fef13bd530799c11"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2b8f60e1b739a74bab7e01fcbe3dddd4657ec685caa04681df9d562ef15b625f"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:2e8b55d8517a2fda8d95cb45d62a5a8bbf9dd0ad39c5b25c8833efea07b880ca"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:2de29005e11637e7a2361fa151f780ff8eb2543a0da1413bb951e9f14b699ef3"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:666ecce376999bf619756a24ce15bb14c5bfaf04bf00abc7e663ce17c3f34fe7"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:5246b14ca64a8675e0a7161f7af68fe3e910e6b90542b4bfb5439ba752191df6"}, + {file = "rpds_py-0.22.3.tar.gz", hash = "sha256:e32fee8ab45d3c2db6da19a5323bc3362237c8b653c70194414b892fd06a080d"}, +] + [[package]] name = "seaborn" version = "0.13.2" @@ -1776,17 +3301,105 @@ dev = ["flake8", "flit", "mypy", "pandas-stubs", "pre-commit", "pytest", "pytest docs = ["ipykernel", "nbconvert", "numpydoc", "pydata_sphinx_theme (==0.10.0rc2)", "pyyaml", "sphinx (<6.0.0)", "sphinx-copybutton", "sphinx-design", "sphinx-issues"] stats = ["scipy (>=1.7)", "statsmodels (>=0.12)"] +[[package]] +name = "send2trash" +version = "1.8.3" +description = "Send file to trash natively under Mac OS X, Windows and Linux" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +files = [ + {file = "Send2Trash-1.8.3-py3-none-any.whl", hash = "sha256:0c31227e0bd08961c7665474a3d1ef7193929fedda4233843689baa056be46c9"}, + {file = "Send2Trash-1.8.3.tar.gz", hash = "sha256:b18e7a3966d99871aefeb00cfbcfdced55ce4871194810fc71f4aa484b953abf"}, +] + +[package.extras] +nativelib = ["pyobjc-framework-Cocoa", "pywin32"] +objc = ["pyobjc-framework-Cocoa"] +win32 = ["pywin32"] + +[[package]] +name = "setuptools" +version = "75.6.0" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +optional = false +python-versions = ">=3.9" +files = [ + {file = "setuptools-75.6.0-py3-none-any.whl", hash = "sha256:ce74b49e8f7110f9bf04883b730f4765b774ef3ef28f722cce7c273d253aaf7d"}, + {file = "setuptools-75.6.0.tar.gz", hash = "sha256:8199222558df7c86216af4f84c30e9b34a61d8ba19366cc914424cdbd28252f6"}, +] + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.7.0)"] +core = ["importlib_metadata (>=6)", "jaraco.collections", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more_itertools", "more_itertools (>=8.8)", "packaging", "packaging (>=24.2)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test (>=5.5)", "packaging (>=24.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] +type = ["importlib_metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (>=1.12,<1.14)", "pytest-mypy"] + [[package]] name = "six" -version = "1.16.0" +version = "1.17.0" description = "Python 2 and 3 compatibility utilities" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +files = [ + {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, + {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, +] + +[[package]] +name = "smmap" +version = "5.0.2" +description = "A pure Python implementation of a sliding window memory map manager" +optional = false +python-versions = ">=3.7" +files = [ + {file = "smmap-5.0.2-py3-none-any.whl", hash = "sha256:b30115f0def7d7531d22a0fb6502488d879e75b260a9db4d0819cfb25403af5e"}, + {file = "smmap-5.0.2.tar.gz", hash = "sha256:26ea65a03958fa0c8a1c7e8c7a58fdc77221b8910f6be2131affade476898ad5"}, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +description = "Sniff out which async library your code is running under" +optional = false +python-versions = ">=3.7" +files = [ + {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, + {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, +] + +[[package]] +name = "soupsieve" +version = "2.6" +description = "A modern CSS selector implementation for Beautiful Soup." +optional = false +python-versions = ">=3.8" +files = [ + {file = "soupsieve-2.6-py3-none-any.whl", hash = "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9"}, + {file = "soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb"}, +] + +[[package]] +name = "stack-data" +version = "0.6.3" +description = "Extract data from python stack frames and tracebacks for informative displays" +optional = false +python-versions = "*" files = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, + {file = "stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695"}, + {file = "stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9"}, ] +[package.dependencies] +asttokens = ">=2.1.0" +executing = ">=1.2.0" +pure-eval = "*" + +[package.extras] +tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] + [[package]] name = "sympy" version = "1.13.3" @@ -1804,26 +3417,115 @@ mpmath = ">=1.1.0,<1.4" [package.extras] dev = ["hypothesis (>=6.70.0)", "pytest (>=7.1.0)"] +[[package]] +name = "terminado" +version = "0.18.1" +description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." +optional = false +python-versions = ">=3.8" +files = [ + {file = "terminado-0.18.1-py3-none-any.whl", hash = "sha256:a4468e1b37bb318f8a86514f65814e1afc977cf29b3992a4500d9dd305dcceb0"}, + {file = "terminado-0.18.1.tar.gz", hash = "sha256:de09f2c4b85de4765f7714688fff57d3e75bad1f909b589fde880460c753fd2e"}, +] + +[package.dependencies] +ptyprocess = {version = "*", markers = "os_name != \"nt\""} +pywinpty = {version = ">=1.1.0", markers = "os_name == \"nt\""} +tornado = ">=6.1.0" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] +test = ["pre-commit", "pytest (>=7.0)", "pytest-timeout"] +typing = ["mypy (>=1.6,<2.0)", "traitlets (>=5.11.1)"] + +[[package]] +name = "tinycss2" +version = "1.4.0" +description = "A tiny CSS parser" +optional = false +python-versions = ">=3.8" +files = [ + {file = "tinycss2-1.4.0-py3-none-any.whl", hash = "sha256:3a49cf47b7675da0b15d0c6e1df8df4ebd96e9394bb905a5775adb0d884c5289"}, + {file = "tinycss2-1.4.0.tar.gz", hash = "sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7"}, +] + +[package.dependencies] +webencodings = ">=0.4" + +[package.extras] +doc = ["sphinx", "sphinx_rtd_theme"] +test = ["pytest", "ruff"] + [[package]] name = "tomli" -version = "2.0.2" +version = "2.2.1" description = "A lil' TOML parser" optional = false python-versions = ">=3.8" files = [ - {file = "tomli-2.0.2-py3-none-any.whl", hash = "sha256:2ebe24485c53d303f690b0ec092806a085f07af5a5aa1464f3931eec36caaa38"}, - {file = "tomli-2.0.2.tar.gz", hash = "sha256:d46d457a85337051c36524bc5349dd91b1877838e2979ac5ced3e710ed8a60ed"}, + {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, + {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"}, + {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"}, + {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"}, + {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"}, + {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"}, + {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"}, + {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"}, + {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"}, + {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"}, + {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"}, + {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"}, + {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"}, + {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"}, +] + +[[package]] +name = "tornado" +version = "6.4.2" +description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." +optional = false +python-versions = ">=3.8" +files = [ + {file = "tornado-6.4.2-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e828cce1123e9e44ae2a50a9de3055497ab1d0aeb440c5ac23064d9e44880da1"}, + {file = "tornado-6.4.2-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:072ce12ada169c5b00b7d92a99ba089447ccc993ea2143c9ede887e0937aa803"}, + {file = "tornado-6.4.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a017d239bd1bb0919f72af256a970624241f070496635784d9bf0db640d3fec"}, + {file = "tornado-6.4.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c36e62ce8f63409301537222faffcef7dfc5284f27eec227389f2ad11b09d946"}, + {file = "tornado-6.4.2-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bca9eb02196e789c9cb5c3c7c0f04fb447dc2adffd95265b2c7223a8a615ccbf"}, + {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:304463bd0772442ff4d0f5149c6f1c2135a1fae045adf070821c6cdc76980634"}, + {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:c82c46813ba483a385ab2a99caeaedf92585a1f90defb5693351fa7e4ea0bf73"}, + {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:932d195ca9015956fa502c6b56af9eb06106140d844a335590c1ec7f5277d10c"}, + {file = "tornado-6.4.2-cp38-abi3-win32.whl", hash = "sha256:2876cef82e6c5978fde1e0d5b1f919d756968d5b4282418f3146b79b58556482"}, + {file = "tornado-6.4.2-cp38-abi3-win_amd64.whl", hash = "sha256:908b71bf3ff37d81073356a5fadcc660eb10c1476ee6e2725588626ce7e5ca38"}, + {file = "tornado-6.4.2.tar.gz", hash = "sha256:92bad5b4746e9879fd7bf1eb21dce4e3fc5128d71601f80005afa39237ad620b"}, ] [[package]] name = "tox" -version = "4.21.2" +version = "4.23.2" description = "tox is a generic virtualenv management and test command line tool" optional = false python-versions = ">=3.8" files = [ - {file = "tox-4.21.2-py3-none-any.whl", hash = "sha256:13d996adcd792e7c82994b0e116d85efd84f0c6d185254d83d156f73f86b2038"}, - {file = "tox-4.21.2.tar.gz", hash = "sha256:49381ff102296753e378fa5ff30e42a35e695f149b4dbf8a2c49d15fdb5797b2"}, + {file = "tox-4.23.2-py3-none-any.whl", hash = "sha256:452bc32bb031f2282881a2118923176445bac783ab97c874b8770ab4c3b76c38"}, + {file = "tox-4.23.2.tar.gz", hash = "sha256:86075e00e555df6e82e74cfc333917f91ecb47ffbc868dcafbd2672e332f4a2c"}, ] [package.dependencies] @@ -1840,67 +3542,110 @@ typing-extensions = {version = ">=4.12.2", markers = "python_version < \"3.11\"" virtualenv = ">=20.26.6" [package.extras] -docs = ["furo (>=2024.8.6)", "sphinx (>=8.0.2)", "sphinx-argparse-cli (>=1.18.2)", "sphinx-autodoc-typehints (>=2.4.4)", "sphinx-copybutton (>=0.5.2)", "sphinx-inline-tabs (>=2023.4.21)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=24.8)"] -testing = ["build[virtualenv] (>=1.2.2)", "covdefaults (>=2.3)", "detect-test-pollution (>=1.2)", "devpi-process (>=1.0.2)", "diff-cover (>=9.2)", "distlib (>=0.3.8)", "flaky (>=3.8.1)", "hatch-vcs (>=0.4)", "hatchling (>=1.25)", "psutil (>=6)", "pytest (>=8.3.3)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "pytest-xdist (>=3.6.1)", "re-assert (>=1.1)", "setuptools (>=75.1)", "time-machine (>=2.15)", "wheel (>=0.44)"] +test = ["devpi-process (>=1.0.2)", "pytest (>=8.3.3)", "pytest-mock (>=3.14)"] [[package]] name = "tqdm" -version = "4.66.5" +version = "4.67.1" description = "Fast, Extensible Progress Meter" optional = false python-versions = ">=3.7" files = [ - {file = "tqdm-4.66.5-py3-none-any.whl", hash = "sha256:90279a3770753eafc9194a0364852159802111925aa30eb3f9d85b0e805ac7cd"}, - {file = "tqdm-4.66.5.tar.gz", hash = "sha256:e1020aef2e5096702d8a025ac7d16b1577279c9d63f8375b63083e9a5f0fcbad"}, + {file = "tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2"}, + {file = "tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2"}, ] [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} [package.extras] -dev = ["pytest (>=6)", "pytest-cov", "pytest-timeout", "pytest-xdist"] +dev = ["nbval", "pytest (>=6)", "pytest-asyncio (>=0.24)", "pytest-cov", "pytest-timeout"] +discord = ["requests"] notebook = ["ipywidgets (>=6)"] slack = ["slack-sdk"] telegram = ["requests"] +[[package]] +name = "traitlets" +version = "5.14.3" +description = "Traitlets Python configuration system" +optional = false +python-versions = ">=3.8" +files = [ + {file = "traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f"}, + {file = "traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7"}, +] + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] +test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,<8.2)", "pytest-mock", "pytest-mypy-testing"] + +[[package]] +name = "types-python-dateutil" +version = "2.9.0.20241206" +description = "Typing stubs for python-dateutil" +optional = false +python-versions = ">=3.8" +files = [ + {file = "types_python_dateutil-2.9.0.20241206-py3-none-any.whl", hash = "sha256:e248a4bc70a486d3e3ec84d0dc30eec3a5f979d6e7ee4123ae043eedbb987f53"}, + {file = "types_python_dateutil-2.9.0.20241206.tar.gz", hash = "sha256:18f493414c26ffba692a72369fea7a154c502646301ebfe3d56a04b3767284cb"}, +] + [[package]] name = "types-pytz" -version = "2024.2.0.20241003" +version = "2024.2.0.20241221" description = "Typing stubs for pytz" optional = false python-versions = ">=3.8" files = [ - {file = "types-pytz-2024.2.0.20241003.tar.gz", hash = "sha256:575dc38f385a922a212bac00a7d6d2e16e141132a3c955078f4a4fd13ed6cb44"}, - {file = "types_pytz-2024.2.0.20241003-py3-none-any.whl", hash = "sha256:3e22df1336c0c6ad1d29163c8fda82736909eb977281cb823c57f8bae07118b7"}, + {file = "types_pytz-2024.2.0.20241221-py3-none-any.whl", hash = "sha256:8fc03195329c43637ed4f593663df721fef919b60a969066e22606edf0b53ad5"}, + {file = "types_pytz-2024.2.0.20241221.tar.gz", hash = "sha256:06d7cde9613e9f7504766a0554a270c369434b50e00975b3a4a0f6eed0f2c1a9"}, +] + +[[package]] +name = "types-requests" +version = "2.32.0.20241016" +description = "Typing stubs for requests" +optional = false +python-versions = ">=3.8" +files = [ + {file = "types-requests-2.32.0.20241016.tar.gz", hash = "sha256:0d9cad2f27515d0e3e3da7134a1b6f28fb97129d86b867f24d9c726452634d95"}, + {file = "types_requests-2.32.0.20241016-py3-none-any.whl", hash = "sha256:4195d62d6d3e043a4eaaf08ff8a62184584d2e8684e9d2aa178c7915a7da3747"}, ] +[package.dependencies] +urllib3 = ">=2" + [[package]] name = "types-seaborn" -version = "0.13.2.20241003" +version = "0.13.2.20241204" description = "Typing stubs for seaborn" optional = false python-versions = ">=3.9" files = [ - {file = "types-seaborn-0.13.2.20241003.tar.gz", hash = "sha256:3490ac30d554388dfd44f9edf1d1a7f34b74077192114096f20c63fb651d9e12"}, - {file = "types_seaborn-0.13.2.20241003-py3-none-any.whl", hash = "sha256:7b26e9b21387b55683afde71ddc03774c4f05853adb35a68ce7f163afbf123ee"}, + {file = "types_seaborn-0.13.2.20241204-py3-none-any.whl", hash = "sha256:e9aeaa434e5caef50d49037144c2f43c5975bb780e705290f905fb0c546e6f20"}, + {file = "types_seaborn-0.13.2.20241204.tar.gz", hash = "sha256:463fc9ddaf4f792bfc871f766b22ba3d470a26492ee07e749d9c005a8fcaf46b"}, ] [package.dependencies] matplotlib = {version = ">=3.8", markers = "python_version >= \"3.9\""} -numpy = ">=1.20,<2.1.0" +numpy = ">=1.20" pandas-stubs = "*" [[package]] name = "types-tqdm" -version = "4.66.0.20240417" +version = "4.67.0.20241221" description = "Typing stubs for tqdm" optional = false python-versions = ">=3.8" files = [ - {file = "types-tqdm-4.66.0.20240417.tar.gz", hash = "sha256:16dce9ef522ea8d40e4f5b8d84dd8a1166eefc13ceee7a7e158bf0f1a1421a31"}, - {file = "types_tqdm-4.66.0.20240417-py3-none-any.whl", hash = "sha256:248aef1f9986b7b8c2c12b3cb4399fc17dba0a29e7e3f3f9cd704babb879383d"}, + {file = "types_tqdm-4.67.0.20241221-py3-none-any.whl", hash = "sha256:a1f1c9cda5c2d8482d2c73957a5398bfdedda10f6bc7b3b4e812d5c910486d29"}, + {file = "types_tqdm-4.67.0.20241221.tar.gz", hash = "sha256:e56046631056922385abe89aeb18af5611f471eadd7918a0ad7f34d84cd4c8cc"}, ] +[package.dependencies] +types-requests = "*" + [[package]] name = "typing-extensions" version = "4.12.2" @@ -1923,15 +3668,29 @@ files = [ {file = "tzdata-2024.2.tar.gz", hash = "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc"}, ] +[[package]] +name = "uri-template" +version = "1.3.0" +description = "RFC 6570 URI Template Processor" +optional = false +python-versions = ">=3.7" +files = [ + {file = "uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7"}, + {file = "uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363"}, +] + +[package.extras] +dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake8-commas", "flake8-comprehensions", "flake8-continuation", "flake8-datetimez", "flake8-docstrings", "flake8-import-order", "flake8-literal", "flake8-modern-annotations", "flake8-noqa", "flake8-pyproject", "flake8-requirements", "flake8-typechecking-import", "flake8-use-fstring", "mypy", "pep8-naming", "types-PyYAML"] + [[package]] name = "urllib3" -version = "2.2.3" +version = "2.3.0" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac"}, - {file = "urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9"}, + {file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"}, + {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"}, ] [package.extras] @@ -1942,13 +3701,13 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "virtualenv" -version = "20.26.6" +version = "20.28.1" description = "Virtual Python Environment builder" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "virtualenv-20.26.6-py3-none-any.whl", hash = "sha256:7345cc5b25405607a624d8418154577459c3e0277f5466dd79c49d5e492995f2"}, - {file = "virtualenv-20.26.6.tar.gz", hash = "sha256:280aede09a2a5c317e409a00102e7077c6432c5a38f0ef938e643805a7ad2c48"}, + {file = "virtualenv-20.28.1-py3-none-any.whl", hash = "sha256:412773c85d4dab0409b83ec36f7a6499e72eaf08c80e81e9576bca61831c71cb"}, + {file = "virtualenv-20.28.1.tar.gz", hash = "sha256:5d34ab240fdb5d21549b76f9e8ff3af28252f5499fb6d6f031adac4e5a8c5329"}, ] [package.dependencies] @@ -1962,47 +3721,107 @@ test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess [[package]] name = "watchdog" -version = "5.0.3" +version = "6.0.0" description = "Filesystem events monitoring" optional = false python-versions = ">=3.9" files = [ - {file = "watchdog-5.0.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:85527b882f3facda0579bce9d743ff7f10c3e1e0db0a0d0e28170a7d0e5ce2ea"}, - {file = "watchdog-5.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:53adf73dcdc0ef04f7735066b4a57a4cd3e49ef135daae41d77395f0b5b692cb"}, - {file = "watchdog-5.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e25adddab85f674acac303cf1f5835951345a56c5f7f582987d266679979c75b"}, - {file = "watchdog-5.0.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f01f4a3565a387080dc49bdd1fefe4ecc77f894991b88ef927edbfa45eb10818"}, - {file = "watchdog-5.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:91b522adc25614cdeaf91f7897800b82c13b4b8ac68a42ca959f992f6990c490"}, - {file = "watchdog-5.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d52db5beb5e476e6853da2e2d24dbbbed6797b449c8bf7ea118a4ee0d2c9040e"}, - {file = "watchdog-5.0.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:94d11b07c64f63f49876e0ab8042ae034674c8653bfcdaa8c4b32e71cfff87e8"}, - {file = "watchdog-5.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:349c9488e1d85d0a58e8cb14222d2c51cbc801ce11ac3936ab4c3af986536926"}, - {file = "watchdog-5.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:53a3f10b62c2d569e260f96e8d966463dec1a50fa4f1b22aec69e3f91025060e"}, - {file = "watchdog-5.0.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:950f531ec6e03696a2414b6308f5c6ff9dab7821a768c9d5788b1314e9a46ca7"}, - {file = "watchdog-5.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ae6deb336cba5d71476caa029ceb6e88047fc1dc74b62b7c4012639c0b563906"}, - {file = "watchdog-5.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1021223c08ba8d2d38d71ec1704496471ffd7be42cfb26b87cd5059323a389a1"}, - {file = "watchdog-5.0.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:752fb40efc7cc8d88ebc332b8f4bcbe2b5cc7e881bccfeb8e25054c00c994ee3"}, - {file = "watchdog-5.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a2e8f3f955d68471fa37b0e3add18500790d129cc7efe89971b8a4cc6fdeb0b2"}, - {file = "watchdog-5.0.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b8ca4d854adcf480bdfd80f46fdd6fb49f91dd020ae11c89b3a79e19454ec627"}, - {file = "watchdog-5.0.3-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:90a67d7857adb1d985aca232cc9905dd5bc4803ed85cfcdcfcf707e52049eda7"}, - {file = "watchdog-5.0.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:720ef9d3a4f9ca575a780af283c8fd3a0674b307651c1976714745090da5a9e8"}, - {file = "watchdog-5.0.3-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:223160bb359281bb8e31c8f1068bf71a6b16a8ad3d9524ca6f523ac666bb6a1e"}, - {file = "watchdog-5.0.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:560135542c91eaa74247a2e8430cf83c4342b29e8ad4f520ae14f0c8a19cfb5b"}, - {file = "watchdog-5.0.3-py3-none-manylinux2014_aarch64.whl", hash = "sha256:dd021efa85970bd4824acacbb922066159d0f9e546389a4743d56919b6758b91"}, - {file = "watchdog-5.0.3-py3-none-manylinux2014_armv7l.whl", hash = "sha256:78864cc8f23dbee55be34cc1494632a7ba30263951b5b2e8fc8286b95845f82c"}, - {file = "watchdog-5.0.3-py3-none-manylinux2014_i686.whl", hash = "sha256:1e9679245e3ea6498494b3028b90c7b25dbb2abe65c7d07423ecfc2d6218ff7c"}, - {file = "watchdog-5.0.3-py3-none-manylinux2014_ppc64.whl", hash = "sha256:9413384f26b5d050b6978e6fcd0c1e7f0539be7a4f1a885061473c5deaa57221"}, - {file = "watchdog-5.0.3-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:294b7a598974b8e2c6123d19ef15de9abcd282b0fbbdbc4d23dfa812959a9e05"}, - {file = "watchdog-5.0.3-py3-none-manylinux2014_s390x.whl", hash = "sha256:26dd201857d702bdf9d78c273cafcab5871dd29343748524695cecffa44a8d97"}, - {file = "watchdog-5.0.3-py3-none-manylinux2014_x86_64.whl", hash = "sha256:0f9332243355643d567697c3e3fa07330a1d1abf981611654a1f2bf2175612b7"}, - {file = "watchdog-5.0.3-py3-none-win32.whl", hash = "sha256:c66f80ee5b602a9c7ab66e3c9f36026590a0902db3aea414d59a2f55188c1f49"}, - {file = "watchdog-5.0.3-py3-none-win_amd64.whl", hash = "sha256:f00b4cf737f568be9665563347a910f8bdc76f88c2970121c86243c8cfdf90e9"}, - {file = "watchdog-5.0.3-py3-none-win_ia64.whl", hash = "sha256:49f4d36cb315c25ea0d946e018c01bb028048023b9e103d3d3943f58e109dd45"}, - {file = "watchdog-5.0.3.tar.gz", hash = "sha256:108f42a7f0345042a854d4d0ad0834b741d421330d5f575b81cb27b883500176"}, + {file = "watchdog-6.0.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d1cdb490583ebd691c012b3d6dae011000fe42edb7a82ece80965b42abd61f26"}, + {file = "watchdog-6.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bc64ab3bdb6a04d69d4023b29422170b74681784ffb9463ed4870cf2f3e66112"}, + {file = "watchdog-6.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c897ac1b55c5a1461e16dae288d22bb2e412ba9807df8397a635d88f671d36c3"}, + {file = "watchdog-6.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6eb11feb5a0d452ee41f824e271ca311a09e250441c262ca2fd7ebcf2461a06c"}, + {file = "watchdog-6.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ef810fbf7b781a5a593894e4f439773830bdecb885e6880d957d5b9382a960d2"}, + {file = "watchdog-6.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:afd0fe1b2270917c5e23c2a65ce50c2a4abb63daafb0d419fde368e272a76b7c"}, + {file = "watchdog-6.0.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bdd4e6f14b8b18c334febb9c4425a878a2ac20efd1e0b231978e7b150f92a948"}, + {file = "watchdog-6.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c7c15dda13c4eb00d6fb6fc508b3c0ed88b9d5d374056b239c4ad1611125c860"}, + {file = "watchdog-6.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6f10cb2d5902447c7d0da897e2c6768bca89174d0c6e1e30abec5421af97a5b0"}, + {file = "watchdog-6.0.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:490ab2ef84f11129844c23fb14ecf30ef3d8a6abafd3754a6f75ca1e6654136c"}, + {file = "watchdog-6.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:76aae96b00ae814b181bb25b1b98076d5fc84e8a53cd8885a318b42b6d3a5134"}, + {file = "watchdog-6.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a175f755fc2279e0b7312c0035d52e27211a5bc39719dd529625b1930917345b"}, + {file = "watchdog-6.0.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e6f0e77c9417e7cd62af82529b10563db3423625c5fce018430b249bf977f9e8"}, + {file = "watchdog-6.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:90c8e78f3b94014f7aaae121e6b909674df5b46ec24d6bebc45c44c56729af2a"}, + {file = "watchdog-6.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e7631a77ffb1f7d2eefa4445ebbee491c720a5661ddf6df3498ebecae5ed375c"}, + {file = "watchdog-6.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:c7ac31a19f4545dd92fc25d200694098f42c9a8e391bc00bdd362c5736dbf881"}, + {file = "watchdog-6.0.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:9513f27a1a582d9808cf21a07dae516f0fab1cf2d7683a742c498b93eedabb11"}, + {file = "watchdog-6.0.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7a0e56874cfbc4b9b05c60c8a1926fedf56324bb08cfbc188969777940aef3aa"}, + {file = "watchdog-6.0.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:e6439e374fc012255b4ec786ae3c4bc838cd7309a540e5fe0952d03687d8804e"}, + {file = "watchdog-6.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:7607498efa04a3542ae3e05e64da8202e58159aa1fa4acddf7678d34a35d4f13"}, + {file = "watchdog-6.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:9041567ee8953024c83343288ccc458fd0a2d811d6a0fd68c4c22609e3490379"}, + {file = "watchdog-6.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:82dc3e3143c7e38ec49d61af98d6558288c415eac98486a5c581726e0737c00e"}, + {file = "watchdog-6.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:212ac9b8bf1161dc91bd09c048048a95ca3a4c4f5e5d4a7d1b1a7d5752a7f96f"}, + {file = "watchdog-6.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:e3df4cbb9a450c6d49318f6d14f4bbc80d763fa587ba46ec86f99f9e6876bb26"}, + {file = "watchdog-6.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:2cce7cfc2008eb51feb6aab51251fd79b85d9894e98ba847408f662b3395ca3c"}, + {file = "watchdog-6.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:20ffe5b202af80ab4266dcd3e91aae72bf2da48c0d33bdb15c66658e685e94e2"}, + {file = "watchdog-6.0.0-py3-none-win32.whl", hash = "sha256:07df1fdd701c5d4c8e55ef6cf55b8f0120fe1aef7ef39a1c6fc6bc2e606d517a"}, + {file = "watchdog-6.0.0-py3-none-win_amd64.whl", hash = "sha256:cbafb470cf848d93b5d013e2ecb245d4aa1c8fd0504e863ccefa32445359d680"}, + {file = "watchdog-6.0.0-py3-none-win_ia64.whl", hash = "sha256:a1914259fa9e1454315171103c6a30961236f508b9b623eae470268bbcc6a22f"}, + {file = "watchdog-6.0.0.tar.gz", hash = "sha256:9ddf7c82fda3ae8e24decda1338ede66e1c99883db93711d8fb941eaa2d8c282"}, ] [package.extras] watchmedo = ["PyYAML (>=3.10)"] +[[package]] +name = "wcwidth" +version = "0.2.13" +description = "Measures the displayed width of unicode strings in a terminal" +optional = false +python-versions = "*" +files = [ + {file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"}, + {file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"}, +] + +[[package]] +name = "webcolors" +version = "24.11.1" +description = "A library for working with the color formats defined by HTML and CSS." +optional = false +python-versions = ">=3.9" +files = [ + {file = "webcolors-24.11.1-py3-none-any.whl", hash = "sha256:515291393b4cdf0eb19c155749a096f779f7d909f7cceea072791cb9095b92e9"}, + {file = "webcolors-24.11.1.tar.gz", hash = "sha256:ecb3d768f32202af770477b8b65f318fa4f566c22948673a977b00d589dd80f6"}, +] + +[[package]] +name = "webencodings" +version = "0.5.1" +description = "Character encoding aliases for legacy web content" +optional = false +python-versions = "*" +files = [ + {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, + {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, +] + +[[package]] +name = "websocket-client" +version = "1.8.0" +description = "WebSocket client for Python with low level API options" +optional = false +python-versions = ">=3.8" +files = [ + {file = "websocket_client-1.8.0-py3-none-any.whl", hash = "sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526"}, + {file = "websocket_client-1.8.0.tar.gz", hash = "sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da"}, +] + +[package.extras] +docs = ["Sphinx (>=6.0)", "myst-parser (>=2.0.0)", "sphinx-rtd-theme (>=1.1.0)"] +optional = ["python-socks", "wsaccel"] +test = ["websockets"] + +[[package]] +name = "widgetsnbextension" +version = "4.0.13" +description = "Jupyter interactive widgets for Jupyter Notebook" +optional = false +python-versions = ">=3.7" +files = [ + {file = "widgetsnbextension-4.0.13-py3-none-any.whl", hash = "sha256:74b2692e8500525cc38c2b877236ba51d34541e6385eeed5aec15a70f88a6c71"}, + {file = "widgetsnbextension-4.0.13.tar.gz", hash = "sha256:ffcb67bc9febd10234a362795f643927f4e0c05d9342c727b65d2384f8feacb6"}, +] + [metadata] lock-version = "2.0" python-versions = ">=3.10,<4.0" -content-hash = "1af12d24ee7e0f611d7817d3da324ead02ccf8ab292579b8c33242dd3af456a3" +content-hash = "df1f98fcc5e743c0f6bb021d388fd5c01eb85dc6c0c57043d00ff01f2cb20f5e" diff --git a/pyproject.toml b/pyproject.toml index d44933d..2d12868 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,6 +17,7 @@ sympy = "^1.12" matplotlib = "^3.8.3" seaborn = "^0.13.2" tqdm = "^4.66.5" +pandas = "^2.2.3" [tool.poetry.group.dev.dependencies] pytest = "^7.2.0" @@ -27,12 +28,15 @@ pre-commit = "^3.4.0" tox = "^4.11.1" types-tqdm = "^4.66.0.20240106" types-seaborn = "^0.13.2.20240311" +jupyter = "^1.1.1" [tool.poetry.group.docs.dependencies] mkdocs-material = "^9.2.7" mkdocstrings = "^0.26.1" mkdocs = "^1.6.1" mkdocstrings-python = "^1.11.1" +mknotebooks = "^0.8.0" +pymdown-extensions = "^10.13" [build-system] requires = ["poetry-core>=1.0.0"] diff --git a/tests/test_deformation_gradient.py b/tests/test_deformation_gradient.py index b31b663..10ec29b 100644 --- a/tests/test_deformation_gradient.py +++ b/tests/test_deformation_gradient.py @@ -114,3 +114,8 @@ def test_rotate(self, deformation_generator): deformation_gradient = deformation_generator.uniaxial([2.0, 3.0]) R = np.array([[[1, 0, 0], [0, 0, 1], [0, -1, 0]], [[1, 0, 0], [0, 0, 1], [0, -1, 0]]]) assert np.all(deformation_generator.rotate(deformation_gradient, R) == deformation_gradient) + + @pytest.mark.parametrize("mode", ["uniaxial", "biaxial", "shear"]) + def test_generate_modes(self, deformation_generator, mode): + deformation_gradient = deformation_generator.generate(mode=mode) + assert isinstance(deformation_gradient, np.ndarray) diff --git a/tests/test_kinematics.py b/tests/test_kinematics.py index 8d9fb0f..f6cd79d 100644 --- a/tests/test_kinematics.py +++ b/tests/test_kinematics.py @@ -68,11 +68,6 @@ def test_pushforward(def_gradients, K): assert np.allclose(forwards, np.array([f @ np.eye(3) @ f.T for f in def_gradients])) -def test_rotation_tensor(def_gradients, K): - rotation_tensors = K.rotation_tensor(def_gradients) - assert np.allclose(rotation_tensors, np.array([f @ np.linalg.inv(f) for f in def_gradients])) - - def test_principal_stretches(def_gradients, K): principal_stretches = K.principal_stretches(def_gradients) assert np.allclose( @@ -87,3 +82,18 @@ def test_principal_directions(def_gradients, K): principal_directions, np.array([np.linalg.eig(f.T @ f)[1] for f in def_gradients]), ) + + +def test_right_stretch_tensor(def_gradients, K): + right_stretch_tensor = K.right_stretch_tensor(def_gradients) + assert right_stretch_tensor.shape == (SIZE, 3, 3) + + +def test_left_stretch_tensor(def_gradients, K): + left_stretch_tensor = K.left_stretch_tensor(def_gradients) + assert left_stretch_tensor.shape == (SIZE, 3, 3) + + +def test_rotation_tensor(def_gradients, K): + rotation_tensor = K.rotation_tensor(def_gradients) + assert rotation_tensor.shape == (SIZE, 3, 3) diff --git a/tests/test_material.py b/tests/test_material.py index 58c7338..8a7ef6b 100644 --- a/tests/test_material.py +++ b/tests/test_material.py @@ -82,4 +82,6 @@ def test_mooneyrivlin_sef(): mooneyrivlin = MooneyRivlin() assert mooneyrivlin.sef == (mooneyrivlin.invariant1 - 3) * sym.Symbol("C10") + ( mooneyrivlin.invariant2 - 3 - ) * sym.Symbol("C01") + ) * sym.Symbol("C01") + 0.25 * sym.Symbol("KBULK") * ( + mooneyrivlin.invariant3 - 1 - 2 * sym.log(mooneyrivlin.invariant3**0.5) + ) diff --git a/tests/test_neohooke.py b/tests/test_neohooke.py index 5159e57..1b6b4a8 100644 --- a/tests/test_neohooke.py +++ b/tests/test_neohooke.py @@ -90,6 +90,15 @@ def test_lambdify_sef(neohooke, c_tensor): {"C10": 0, "KBULK": 1000}, [PK2_VOL0, PK2_VOL_UNI, PK2_VOL_ARBITRARY, PK2_VOL_ARBITRARY2], ), + ( + {"C10": 1, "KBULK": 1000}, + [ + PK2_ISO0 + PK2_VOL0, + PK2_ISO_UNI + PK2_VOL_UNI, + PK2_ISO_ARBITRARY + PK2_VOL_ARBITRARY, + PK2_ISO_ARBITRARY2 + PK2_VOL_ARBITRARY2, + ], + ), ], ) def test_lambdify_pk2(neohooke, c_tensor, params, expected_values): @@ -112,6 +121,15 @@ def test_lambdify_pk2(neohooke, c_tensor, params, expected_values): {"C10": 0, "KBULK": 1000}, [CMAT_VOL0, CMAT_VOL_UNI, CMAT_VOL_ARBITRARY, CMAT_VOL_ARBITRARY2], ), + ( + {"C10": 1, "KBULK": 1000}, + [ + CMAT_ISO0 + CMAT_VOL0, + CMAT_ISO_UNI + CMAT_VOL_UNI, + CMAT_ISO_ARBITRARY + CMAT_VOL_ARBITRARY, + CMAT_ISO_ARBITRARY2 + CMAT_VOL_ARBITRARY2, + ], + ), ], ) def test_lambdify_cmat(neohooke, c_tensor, params, expected_values): diff --git a/tests/test_reporter.py b/tests/test_reporter.py index f66f5ae..d107644 100644 --- a/tests/test_reporter.py +++ b/tests/test_reporter.py @@ -1,25 +1,41 @@ -# Generated by CodiumAI import numpy as np -from click import Path +import pytest from hyper_surrogate.reporter import Reporter -class TestReporter: - """Test the Reporter class.""" +@pytest.fixture +def tensor(): + return np.random.rand(2, 3, 3) - # The class can be instantiated with a tensor and a save directory. - def test_instantiation(self): - tensor = np.random.rand(10, 3, 3) - save_dir = Path("path/to/save/dir") - reporter = Reporter(tensor, save_dir) - assert reporter.tensor.shape == (10, 3, 3) - assert reporter.save_dir == save_dir +@pytest.fixture +def reporter(tensor): + return Reporter(tensor) - # The tensor input must be a numpy array with shape (N,3,3). - def test_tensor_shape(self): - tensor = np.random.rand(10, 3, 3) - save_dir = Path("path/to/save/dir") - reporter = Reporter(tensor, save_dir) - assert reporter.tensor.shape == (10, 3, 3) + +# The class can be instantiated with a tensor and a save directory. +def test_statistics(reporter): + # basic_statistics returns a tuple with mean, median, std_dev, and value_range + assert len(reporter.basic_statistics()) == 4 + + +def test_fig_eigenvalues(reporter): + # visualize_eigenvalues returns a list of figures + assert len(reporter.visualize_eigenvalues()) == 1 + + +def test_fig_determinants(reporter): + # visualize_determinants returns a list of figures + assert len(reporter.visualize_determinants()) == 1 + + +def test_generate_figures(reporter): + # generate_figures returns a list of figures + assert len(reporter.generate_figures()) == 2 + + +def test_generate_report(tmp_path, reporter): + # create_report saves a pdf file + reporter.create_report(tmp_path) + assert (tmp_path / "report.pdf").exists() diff --git a/tests/test_symbolic_rules.py b/tests/test_symbolic_rules.py index d8d1942..e44fddc 100644 --- a/tests/test_symbolic_rules.py +++ b/tests/test_symbolic_rules.py @@ -65,6 +65,13 @@ def smat(handler, sef, f) -> sym.Matrix: # testing +def test_f_symbols(handler): + # assert f_symbols + f_symbols = handler.f_symbols() + assert isinstance(f_symbols, list) + assert all(isinstance(f, sym.Symbol) for f in f_symbols) + + def test_c_symbols(handler): # assert c_symbols c_symbols = handler.c_symbols() @@ -184,11 +191,23 @@ def test_reduce_2nd_order(handler, pk2): assert handler.reduce_2nd_order(pk2).shape == (6, 1) +def test_reduce_2nd_order_with_wrong_shape(handler): + # reduce order of pk2. assert shape + with pytest.raises(ValueError): + handler.reduce_2nd_order(np.ones((3, 4))) + + def test_reduce_4th_order(handler, cmat): # reduce order of cmat. assert shape assert handler.reduce_4th_order(cmat).shape == (6, 6) +def test_reduce_4th_order_with_wrong_shape(handler): + # reduce order of cmat. assert shape + with pytest.raises(ValueError): + handler.reduce_4th_order(np.ones((3, 4, 3, 4))) + + @pytest.mark.slow def test_pushforward_2nd_order(handler, pk2, f): # pushforward pk2 to cauchy stress tensor. assert shape @@ -199,3 +218,14 @@ def test_pushforward_2nd_order(handler, pk2, f): def test_pushforward_4th_order(handler, cmat, f): # pushforward cmat to spatial stiffness tensor. assert shape assert handler.pushforward_4th_order(cmat, f).shape == (3, 3, 3, 3) + + +def test_jr(handler, sigma): + # jaumann rate tensor. assert shape + assert handler.jr(sigma).shape == (3, 3, 3, 3) + + +def test_jr_with_wrong_shape(handler): + # jaumann rate tensor. assert shape + with pytest.raises(ValueError): + handler.jr(np.ones((3, 4)))