diff --git a/.env b/.env new file mode 100644 index 0000000..0c4754f --- /dev/null +++ b/.env @@ -0,0 +1,21 @@ +ALADIN_HOST=localhost +ALADIN_PORT=3000 + +LTI_KEY=SOME_KEY + +MONGO_HOST=localhost +MONGO_PORT=27017 +MONGO_USER=aladin +MONGO_PW=aladin +MONGO_DB=aladin + +REVERSE_PROXY_HOST=localhost +REVERSE_PROXY_PORT=80 + +HUGGINGFACE_TOKEN=YOUR_TOKEN + +POSTGRES_HOST=localhost +POSTGRES_DB=db +POSTGRES_USER=testUser +POSTGRES_PW=abc124 +POSTGRES_PORT=5432 \ No newline at end of file diff --git a/.gitignore b/.gitignore index 90c9d12..2bb1cfd 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,8 @@ node_modules /dist coverage coverage/* -.env \ No newline at end of file +.env +*.pyc +*.cpython-* + + diff --git a/.ipynb_checkpoints/Clusteranalyse-checkpoint.ipynb b/.ipynb_checkpoints/Clusteranalyse-checkpoint.ipynb deleted file mode 100644 index 4625093..0000000 --- a/.ipynb_checkpoints/Clusteranalyse-checkpoint.ipynb +++ /dev/null @@ -1,3304 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 46, - "id": "a8557a1f", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'x': [15, 28, 30, 19, 18, 22, 10, 27, 22, 23], 'y': [17, 26, 17, 13, 18, 10, 11, 20, 6, 30]}\n" - ] - }, - { - "data": { - "image/png": "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ZqzLSEicdgEAAFYRPgAAgFWEDwAAYFVU4aOqqkqTJ09Wenq6srKytHDhQh07diyizbJly+RwOCKmadOmxbRoAACQuKIKHw0NDVqxYoUaGxtVV1enCxcuqLi4WB0dHRHtSkpK5PP5wtPbb78d06IBAEDiiupul9ra2ojPW7duVVZWlj755BPddddd4flOp1Nutzs2FQIAgKQyoms+AoGAJCkzM/IxsvX19crKytLNN9+sRx55RG1tbf1uIxQKKRgMRkwAACB5OYwxZjgrGmO0YMECnTp1Sh988EF4/uuvv66rr75a+fn58nq9evrpp3XhwgV98skncjqdvbZTUVGhysrKXvMDgYAyMjKGUxoAALAsGAzK5XIN6fd72OFjxYoVeuutt/Thhx8qNze333Y+n0/5+fnavn277rvvvl7LQ6GQQqFQRPF5eXmEDwAAEkg04WNYTzhdtWqVdu7cqb179w4YPCTJ4/EoPz9fx48f73O50+ns84gIAABITlGFD2OMVq1apZqaGtXX16ugoGDQdU6cOKHW1lZ5PLxoBwAARHnB6YoVK7Rt2za9+uqrSk9Pl9/vl9/v19mzZyVJZ86c0eOPP66PPvpIn3/+uerr61VaWqprr71W995776h0AAAAJJaorvlwOPp+W9/WrVu1bNkynT17VgsXLtShQ4d0+vRpeTwezZkzR7/85S+Vl5c3pL8RzTkjAAAQH0btmo/Bcsr48eP17rvvRrNJAABwmeHdLgAAwCrCBwAAsIrwAQAArCJ8AAAAqwgfAADAKsIHAACwivABAACsInwAAACrCB8AAMAqwgcAALCK8AEAAKwifAAAAKsIHwAAwCrCBwAAsIrwAQAArCJ8AAAAqwgfAADAKsIHAACwivABAACsInwAAACrCB8AAMAqwgcAALCK8AEAAKwifAAAAKsIHwAAwCrCBwAAsIrwAQAArCJ8AAAAqwgfAADAKsIHAACwivABAACsInwAAACrCB8AAMAqwgcAALCK8AEAAKwifAAAAKsIHwAAwCrCBwAAsIrwAQAArCJ8AAAAqwgfAADAKsIHAACwivABAACsInwAAACrCB8AAMAqwgcAALCK8AEAAKwifAAAAKsIHwAAwCrCBwAAsIrwAQAArCJ8AAAAqwgfAADAKsIHAACwivABAACsInwAAACrCB8AAMAqwgcAALBq3FgXAADA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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "#Clusteranalyse\n", - "\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import random\n", - "\n", - "#functions\n", - "def generate_random_number_array(n, rangeStart, rangeEnd):\n", - " array = [random.randint(rangeStart, rangeEnd) for _ in range(n)]\n", - " return array\n", - "\n", - "def generate_x_y_array(n, rangeStart, rangeEnd):\n", - " XYDict = {\n", - " \"x\": generate_random_number_array(n, rangeStart, rangeEnd),\n", - " \"y\": generate_random_number_array(n, rangeStart, rangeEnd)\n", - " }\n", - " return XYDict\n", - "\n", - " \n", - "# Beispielaufruf der Funktion mit n = 10 ; Range von 5 bis 30\n", - "#INPUT\n", - "numberOfDataPoints = 10\n", - "rangeStart = 5\n", - "rangeEnd = 30\n", - "\n", - "#ToDo\n", - "#INPUT: set number of clusters\n", - "#schrittweises lösen der aufgabe \n", - "#mockup carpet\n", - "#scikpy -> beobachter möglich?\n", - "\n", - "#dendogramm -> visualisierung über carpet edotor (online) -> visualisierungsalgos\n", - "#algo: numpy -> verteilung der einzelnen punkte -> häfung der punkte in gegebenen clusters -> verteilung \"schön\" machen (Noise-Verfahren)\n", - "\n", - "dictArray = generate_x_y_array(numberOfDataPoints, rangeStart, rangeEnd)\n", - "print(dictArray)\n", - "\n", - "plt.scatter(dictArray[\"x\"], dictArray[\"y\"])\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "866cde95", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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wbrOnTurd+/eKioqcmCillm2bJk2bdqkJ5980ulRJLWjaz5OmjFjhsLDw9WlSxeNGDFC7733ntMj+WXz5s2KjY3Vv//9b/Xr10/h4eGKj4/X1KlTfbczbu327Nmj8847r8Evtr59+/qeDwUnTpxocF8iSb51u3fvtj1Si9TV1am2tlZHjx7Vk08+qXXr1oVs5JaXl2v16tW6/PLL1aNHD6fHaVcmTpyo0047TdOmTdMXX3yhyspKvfHGG3rqqac0Y8YMRUVFOT1is5WXl+vjjz/W+eef7/QofikpKVFOTo7mzp2rbt26OT2OpHYUHzExMbr99tv11FNPaePGjXriiSdUVFSkjIwMrVu3zunxmuybb75RdXW1rrvuOo0dO1bvvPOO7r77bi1dulRXXHGFTAh8Z1xpaaliY2MbrD+5rrS01PZIzdK7d29t3bpVdXV1vnW1tbW+Izeh8j5Omj59ujp27Kj4+Hjdcccd+tvf/qYpU6Y4PVazrFixQjU1NbrxxhudHqXd+d3vfqcPPvhAe/bs0dlnn60uXbpo1KhRmjhxop544gmnx2uRGTNmqKqqSrNnz3Z6FL9Mnz5d55xzjqZNm+b0KP/L0ZM+DisrKzPdunUzffv2dXqUJktLSzOSTEFBQb31CxYsMJLM+vXrHZqs6dLS0szIkSMbrD98+HCj7621evbZZ40kM23aNPP111+br776ytx4440mLCzMSDIrV650ekS/fPnll2bbtm3mzTffNFOnTjUdOnQwjz32mNNjNUv//v3NGWecYf773/86PUqzheo1HwcPHjQ9e/Y0v//9783q1avNpk2bzLx580yXLl3M5MmTnR6v2ebMmWMkmb///e9Oj+KX1atXm4iICLN3717futZwzUe7jg9jjJk6daqRZKqrq50epUnS09ONJPPxxx/XW79v3z4jyTz66KMOTdZ06enpZsCAAQ3W79mzx0gyTz31lANTNc/cuXNN586djSQjyQwePNjMmjXLSDLvvvuu0+O1yNSpU014eLgpKSlxehS/fPLJJ0aSuf32250epUVCNT7Gjh1r4uPjzfHjx+utf+6554wkU1hY6NBkzZeXl2ckmUceecTpUfxy8gLZO++805SVlfmWcePGmaioKFNWVtbg78mWdnPa5VTM/5ymCJWLvE5eF/FLJ99Hhw6t/6/0ggsu0Oeff67a2tp6609eIxFKH32eNWuWjh07pt27d+vQoUPasmWLysrKFBUVpYsvvtjp8Vpk4MCBqq2t1RdffOH0KH559tlnJUk33XSTw5O0T7t27VLv3r0bXNtx8uPOoXJN10kPPPCA8vLylJeXp3vvvdfpcfxy7Ngxffvtt5o/f75OP/1037JixQpVVVXp9NNP1x/+8AdHZmv9v6mCqKysTG+88Yb69eunTp06OT1Ok1x77bWSpDVr1tRb/9Zbb0mS0tPTrc/kr2uuuUbHjx/Xyy+/XG/9kiVLlJycrEGDBjk0WfO43W716dNHqamp+uqrr7Rq1SrdfPPN8ng8To/WIhs3blSHDh101llnOT1Kk3m9Xi1btkwDBw4MqYhtS5KTk7V3714dP3683voPPvhAklrNBY9N8dBDDykvL09z5szR/fff7/Q4fktMTNTGjRsbLCNGjFCnTp20ceNGPfzww47MFrqfo/PT+PHj1b17d/Xv319xcXHav3+/5s+fr2+//VbPP/+80+M1WVZWlkaNGqUHH3xQdXV1Sk9P1/bt2/XAAw/oqquu0iWXXOL0iL8pOztbmZmZmjZtmioqKtSzZ0+tWLFCa9eu1bJlyxQWFub0iE2yZ88evfzyy+rfv7/cbrc++eQTzZ07N+S+bfaWW25Rly5dNHDgQCUkJOjYsWN66aWXtGrVKt19993q2rWr0yM22auvvqrvvvsupI96rFmzRlVVVaqsrJT005d2rV69WpJ0xRVX1Ptod2uUk5Oj0aNHKzMzU3fccYfi4uK0detWFRQUqHfv3srOznZ6xCaZP3++/vKXv2jkyJG68sorG3xLbij8Q69Tp07KyMhosP75559XWFhYo89Z48jJHgcUFBSYfv36mZiYGBMWFma6du1qrrnmGvPRRx85PZrfqqurzaxZs0xKSooJDw833bt3N7m5uSF1cV1lZaX505/+ZBITE01ERITp27evWbFihdNj+WXfvn1m6NChJjY21kRERJiePXuaOXPmOHYOtbmee+45c+mll5q4uDgTHh5uTjvtNDNs2DDzwgsvOD2a3zIzM01UVJSpqKhwepRmS01N9V1D9Mvl4MGDTo/XJBs2bDBZWVkmMTHReDwe06tXL3PnnXeaY8eOOT1akw0bNuyUfw+h/quzNVxw6jImBD6bCQAA2ox2fc0HAACwj/gAAABWER8AAMAq4gMAAFhFfAAAAKuIDwAAYBXxAQAArCI+AACAVcQHAACwivgAAABWER8AAMAq4gMAAFj1/wHa6fqknUAxSgAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "from scipy.cluster.hierarchy import dendrogram, linkage\n", - "\n", - "data = list(zip(dictArray[\"x\"], dictArray[\"y\"]))\n", - "\n", - "linkage_data = linkage(data, method='ward', metric='euclidean')\n", - "dendrogram(linkage_data)\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "39bab90c", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "from sklearn.cluster import AgglomerativeClustering\n", - "\n", - "\n", - "data = list(zip(dictArray[\"x\"], dictArray[\"y\"]))\n", - "\n", - "#INPUT\n", - "#Anzahl Cluster\n", - "numberOfCluster = 3;\n", - "\n", - "hierarchical_cluster = AgglomerativeClustering(n_clusters=numberOfCluster, affinity='euclidean', linkage='ward')\n", - "labels = hierarchical_cluster.fit_predict(data)\n", - "\n", - "plt.scatter(dictArray[\"x\"], dictArray[\"y\"], c=labels)\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "66b49468", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[ 1. 8. 3.16227766 2. ]\n", - " [ 5. 6. 4.47213595 2. ]\n", - " [ 3. 7. 5. 2. ]\n", - " [ 2. 4. 6.08276253 2. ]\n", - " [ 0. 9. 8.54400375 2. ]\n", - " [10. 13. 8.74642784 4. ]\n", - " [11. 14. 16.98528775 4. ]\n", - " [12. 15. 18.2254401 6. ]\n", - " [16. 17. 29.16904752 10. ]]\n" - ] - }, - { - "ename": "NameError", - "evalue": "name 'X' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m/var/folders/bs/5wndg3791vz7vxsh2h7qj_mw0000gn/T/ipykernel_41173/2459418396.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlinkage_matrix\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0mdct\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 7\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdct\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrow\u001b[0m \u001b[0;32min\u001b[0m \u001b[0menumerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlinkage_matrix\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mX\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mNameError\u001b[0m: name 'X' is not defined" - ] - } - ], - "source": [ - "#linkage_matrix = linkage(X, \"single\")\n", - "linkage_matrix = linkage_data\n", - "\n", - "print(linkage_matrix)\n", - "\n", - "dct = dict([(i, {i}) for i in range(X.shape[0])])\n", - "print(list(dct.values()))\n", - "for i, row in enumerate(linkage_matrix, X.shape[0]):\n", - " dct[i] = dct[row[0]].union(dct[row[1]])\n", - " del dct[row[0]]\n", - " del dct[row[1]]\n", - " print(list(dct.values()))" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "561dff9e", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 1 ---\n", - "Aktuelle Cluster: [[0], [1], [2], [3], [4], [5], [6], [7], [8], [9]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 3. 6. 0.13477076 2. ]\n", - " [ 0. 2. 0.14306129 2. ]\n", - " [ 1. 5. 0.18963685 2. ]\n", - " [ 9. 10. 0.32105694 3. ]\n", - " [ 4. 12. 0.35501172 3. ]\n", - " [11. 13. 0.37333899 5. ]\n", - " [ 8. 15. 0.68619926 6. ]\n", - " [14. 16. 0.92078621 9. ]\n", - " [ 7. 17. 1.06516792 10. ]]\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAqQAAAIOCAYAAABuwR8hAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABwtklEQVR4nO3dfVxUVeI/8M/laUCeUUCEERkBRRRTSUMjpUK0JFqg2jVNK9tMVFDM1XJ9IF1WUn+aK2RWpvsqs3DyuyqJrmjiGmulmCuooSCKUPiAGMWDw/n9QUyOMygDA1fw83695mVz5txzz507xIdzzz0jCSEEiIiIiIhkYiZ3B4iIiIjo/sZASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASveNjz76CJIk4dtvvzX4+rhx49CrVy+dsl69emHy5Mlt37k2cODAAUiShPT09LvWnTx5st6xm0JRUREkScKKFStM3rYhlZWVWLZsGYKDg+Hg4ACFQoFevXrhpZdewtGjR7X1Gj8LRUVFbdKPw4cPY/HixaioqGiT9uXUVp8VOfz3v//FH/7wB/Ts2RMKhQLu7u4ICQlBYmKi0W2NGjUK/fv3b1V/Gn9mDxw4oC3LyMjA4sWLDdb/29/+hu3btze7/c2bN+OPf/wj+vTpAzMzs05zHqlzYCAluoMvvvgCf/3rX+XuRpv761//ii+++ELubrTK2bNnMWjQIPz9739HWFgYtmzZgj179mDJkiX48ccfMWTIEFy/fr1d+nL48GEsWbKkUwbSzmLXrl0YPnw4KisrkZKSgj179mDNmjUYMWIEtm7dKkufBg8ejK+//hqDBw/WlmVkZGDJkiUG6xsbSP/5z3/i5MmTGDp0KHr37t3a7hKZlIXcHSC6lw0aNMhkbQkhUF1dDRsbm1a18+uvv7a6jdt19F9OGo0Gf/jDH3D58mV8/fXXOiNVI0eOxKRJk/Dll1/C0tJSxl623i+//IIuXbrI3Y1OISUlBT4+PsjMzISFxe+/Cv/4xz8iJSWlXftSV1cHSZLg4OCAhx56qM32k5mZCTOzhnGocePG4X//+1+b7YvIWBwhJboDQ5fsKysrMWfOHPj4+MDKygqenp5ISEhAVVWVTj1JkjB9+nS8++67CAgIgEKhwKZNmwAAS5YswbBhw+Di4gIHBwcMHjwYH3zwAYQQevsfN24c1Go1Bg0aBGtra+1oSUlJCf785z9DqVTCysoKPXr0QGxsLH788UedNurq6vDmm2+iR48ecHBwwOOPP47Tp0/r1DF0Gfbzzz/HsGHD4OjoiC5dukClUuGll17SqVNRUYHExESoVCooFAq4ubnhiSeewKlTp/Tey1WrVsHHxwd2dnYICQlBTk6OXp1vv/0WTz31FFxcXGBtbY1Bgwbhs88+06t3u+3bt+PEiROYP39+k5dNx44de8cw19T0jFGjRmHUqFHa5/X19Vi6dCn69OkDGxsbODk5ISgoCGvWrAEALF68GK+//joAwMfHB5Ik6V2G3bp1K0JCQmBraws7OztERETg2LFjOvudPHky7OzscOLECYwePRr29vZ47LHHAAB79+5FVFQUvLy8YG1tDV9fX7z66qu4fPmyThuLFy+GJEk4efIk/vSnP8HR0RHu7u546aWX9EaL161bh0ceeQRubm6wtbXFgAEDkJKSgrq6uibfMwB47LHH0LdvX73PrhACvr6+ePLJJ7VlaWlpGDhwIOzs7GBvb4++ffvijTfe0NmurKwMr776Kry8vGBlZQUfHx8sWbIEN2/evGM/jHXlyhV069ZNJ4w2agxtt/rkk08QEhICOzs72NnZ4YEHHsAHH3ygV++bb75BaGio9mfm73//O+rr67WvN16W/+c//4nExER4enpCoVCgoKBA75L95MmTsW7dOgDQfo4ap5pIkoSqqips2rRJW37r59QQQ8dFdK/gCCnddzQajcFfbrf/QjXkl19+wciRI3Hx4kW88cYbCAoKwsmTJ7Fw4UKcOHEC//73vyFJkrb+9u3bkZ2djYULF6J79+5wc3MD0DC38tVXX0XPnj0BADk5OZgxYwZKSkqwcOFCnX0ePXoU+fn5WLBgAXx8fGBra4uSkhI8+OCDqKur0/bjypUryMzMxLVr1+Du7q7d/o033sCIESPw/vvvo7KyEn/5y18QGRmJ/Px8mJubGzzOr7/+Gs899xyee+45LF68GNbW1jh//jyysrK0dW7cuIGHH34YRUVF+Mtf/oJhw4bh559/xsGDB1FaWoq+fftq665btw59+/bF6tWrATRMEXjiiSdQWFgIR0dHAMD+/fsxZswYDBs2DO+++y4cHR3x6aef4rnnnsMvv/xy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IB63h9HfXgUgoaAgAd26RTV5+b4DLPBDTWirc8dL9kRERNRsFRXZqKm5w9d3QqCm5gIqKvTXkrW0tAQA/PLLL23UO2prjeeu8VyaCkdIiYiIqNlqa5v3tZyG6pmbm8PJyQk//fQTAKBLly6Qmlrknu4pQgj88ssv+Omnn+Dk5ARzE69owEBKREREzWZl1bw1Ypuq1717dwDQhlLqWJycnLTn0JQYSImIiKjZnJxCoVB4oaamBIbnkUpQKLzg5GR4LVlJkuDh4QE3NzfU1dW1aV/JtCwtLU0+MtqIgZSIiIiaTZLM4eu75re77CXohtKGy+++vqvvuh6publ5m4Ub6nh4UxMREREZxdU1GoGB6VAodNeSVSi8uOQTtQhHSImIiMhorq7R6NYtSr5vaqJOhYGUiIiIWkSSzOHsPErublAnwEv2RERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmpRIE1NTYWPjw+sra0xZMgQZGdnN2u7//znP7CwsMADDzzQkt0SERERUSdkdCDdunUrEhIS8Oabb+LYsWMIDQ3F2LFjUVxcfMftrl+/jhdeeAGPPfZYiztLRERERJ2PJIQQxmwwbNgwDB48GGlpadqygIAAPP3000hOTm5yuz/+8Y/w8/ODubk5tm/fjtzc3Gbvs7KyEo6Ojrh+/TocHByM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TJw4EcHBwQgJCcF7772H4uJiTJ06FUDD6GZJSQk2b94MoCGMvvDCC1izZg0eeugh7eiqjY0NHB0dTXgoRERERNQRGR1In3vuOVy5cgVJSUkoLS1F//79kZGRAW9vbwBAaWmpzpqk69evx82bNxEXF4e4uDht+aRJk/DRRx+1/giIiIiIqEMzeh1SOXAdUiIiIqJ7W7utQ0pEREREZGoMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkZSF3B6iBRgNkZwOlpYCHBxAaCpiby90rIiIiorbHQHoPUKuB+Hjg4sXfy7y8gDVrgOho+fpFRERE1B54yV5majUQG6sbRgGgpKShXK2Wp19ERERE7YWBVEYaTcPIqBD6rzWWJSQ01CMiIiLqrBhIZZSdrT8yeishgAsXGuoRERERdVYMpDIqLTVtPSIiIqKOiIFURh4epq1HRERE1BExkMooNLThbnpJMvy6JAFKZUM9IiIios6KgVRG5uYNSzsB+qG08fnq1VyPlIiIiDo3BlKZRUcD6emAp6duuZdXQznXISUiIqLOjgvj3wOio4GoKH5TExEREd2fGEjvEebmwKhRcveCiIiIqP3xkj0RERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsLOTuQHMIIQAAlZWVMveEiIiIiAxpzGmNuc0Y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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 2 ---\n", - "Aktuelle Cluster: [[0], [1], [2], [4], [5], [7], [8], [9], [3, 6]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 3. 6. 0.13477076 2. ]\n", - " [ 0. 2. 0.14306129 2. ]\n", - " [ 1. 5. 0.18963685 2. ]\n", - " [ 9. 10. 0.32105694 3. ]\n", - " [ 4. 12. 0.35501172 3. ]\n", - " [11. 13. 0.37333899 5. ]\n", - " [ 8. 15. 0.68619926 6. ]\n", - " [14. 16. 0.92078621 9. ]\n", - " [ 7. 17. 1.06516792 10. ]]\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAqQAAAIOCAYAAABuwR8hAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABwp0lEQVR4nO3dfVxUVeI/8M/laSBgeFBAhAkZQUUUUklDIqVENCVaoPyuq2llm4kPKOZquT6QLiupP80VMivTfZVZOLqrEuiKJG6xVoq5gg8oiBoUZohRPDic3x8skyODMjBwBT/v12teNmfOPffcuUN8OPfcM5IQQoCIiIiISCZmcneAiIiIiO5vDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKR03/jggw8gSRK+/vprg6+PHz8evXr10ivr1asXpk6d2v6dawfZ2dmQJAlpaWl3rTt16tQmx24KxcXFkCQJq1evNnnbhlRWVmLlypUICgqCUqmEQqFAr1698MILL+DYsWO6eo2fheLi4nbpxxdffIFly5ahoqKiXdqXU3t9VuTwn//8B7/73e/w4IMPQqFQwM3NDcHBwUhISDC6rZEjR2LAgAFt6k/jz2x2drauLD09HcuWLTNY/y9/+Qt2797dorZLS0uxePFiBAcHo3v37lAqlRgyZAjeeecdaLXaNvWbyBQYSInuYNeuXfjzn/8sdzfa3Z///Gfs2rVL7m60yfnz5zFo0CD89a9/RVhYGLZv3479+/dj+fLl+P777zFkyBBcv369Q/ryxRdfYPny5V0ykHYV+/btw/Dhw1FZWYnk5GTs378f69evR0hICHbs2CFLnwYPHowvv/wSgwcP1pWlp6dj+fLlBusbE0i/+eYbbNu2DU888QS2bduGnTt3YsSIEXjllVfw0ksvmaL7RG1iIXcHiO5lgwYNMllbQghUV1fDxsamTe38+uuvbW7jdr179zZpex1Nq9Xid7/7Ha5evYovv/xSb6RqxIgRmDJlCj777DNYWlrK2Mu2++WXX/DAAw/I3Y0uITk5Gd7e3sjMzISFxW+/Cv/v//4PycnJHdqXuro6SJIEpVKJRx55pF32ERISgvPnz+v9DISHh6O2thYbN27E8uXLoVKp2mXfRC3BEVKiOzB0yb6yshLz58+Ht7c3rKys4OHhgfj4eFRVVenVkyQJM2fOxNtvvw0/Pz8oFAps3boVALB8+XIMGzYMzs7OUCqVGDx4MN577z0IIZrsf/z48dBoNBg0aBCsra11oyVXrlzBH//4R6hUKlhZWaFnz56IjY3F999/r9dGXV0dXn/9dfTs2RNKpRKjRo3CmTNn9OoYugz76aefYtiwYXBwcMADDzwAtVqNF154Qa9ORUUFEhISoFaroVAo4OrqiieffBKnT59u8l6uXbsW3t7esLOzQ3BwMHJzc5vU+frrr/HUU0/B2dkZ1tbWGDRoED755JMm9W63e/dunDx5EosWLWr2sunYsWPvGOaam54xcuRIjBw5Uve8vr4eK1asQN++fWFjYwNHR0cEBARg/fr1AIBly5bh1VdfBQB4e3tDkqQml2F37NiB4OBg2Nraws7ODhERETh+/LjefqdOnQo7OzucPHkSo0ePhr29PZ544gkAwIEDBxAVFQVPT09YW1vDx8cHL7/8Mq5evarXxrJlyyBJEk6dOoXf//73cHBwgJubG1544YUmo8UbN27EY489BldXV9ja2mLgwIFITk5GXV1ds+8ZADzxxBPo169fk8+uEAI+Pj4YN26criw1NRWBgYGws7ODvb09+vXrh9dee01vu7KyMrz88svw9PSElZUVvL29sXz5cty8efOO/TDWjz/+iO7du+uF0UZmZk1/NX700UcIDg6GnZ0d7Ozs8NBDD+G9995rUu+rr75CaGio7mfmr3/9K+rr63WvN16W//vf/46EhAR4eHhAoVCgsLCwySX7qVOnYuPGjQCg+xw1TjWRJAlVVVXYunWrrvzWz+ntnJycDP5BNnToUADA5cuX7/h+EbU3jpDSfUer1Rr85Xb7L1RDfvnlF4wYMQKXL1/Ga6+9hoCAAJw6dQpLlizByZMn8a9//QuSJOnq7969Gzk5OViyZAl69OgBV1dXAA1zK19++WU8+OCDAIDc3FzMmjULV65cwZIlS/T2eezYMRQUFGDx4sXw9vaGra0trly5gocffhh1dXW6fvz444/IzMzETz/9BDc3N932r732GkJCQvDuu++isrISf/rTnxAZGYmCggKYm5sbPM4vv/wSEyZMwIQJE7Bs2TJYW1vj4sWLyMrK0tW5ceMGHn30URQXF+NPf/oThg0bhp9//hmHDx9GaWkp+vXr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iIiIiLo+C2MqX716FVqtFm5ubnrlbm5uKCsrM7jNuXPnsHDhQuTk5MDComW7q6mpQU1Nje55ZWWlMd0kIiIiok6kVTc1SZKk91wI0aQMALRaLSZOnIjly5ejT58+LW4/KSkJDg4OuodKpWpNN4mIiIioEzAqkHbv3h3m5uZNRkN/+OGHJqOmAHDjxg18/fXXmDlzJiwsLGBhYYHExEScOHECFhYWyMrKMrifRYsW4fr167rHpUuXjOkmEREREXUiRl2yt7KywpAhQ3DgwAH87ne/05UfOHAAUVFRTeorlUqcPHlSrywlJQVZWVlIS0uDt7e3wf0oFAooFApjukZEREREnZRRgRQA5s2bh8mTJyMoKAjBwcF45513UFJSgunTpwNoGN28cuUKtm3bBjMzMwwYMEBve1dXV1hbWzcpJyIiIiLT0AqBnIoKlNbWwt3KCqGOjjA3ML3yXmF0IJ0wYQJ+/PFHJCYmorS0FAMGDEB6ejq8vLwAAKWlpXddk5SIiIiI2oemvBxzCgtx+ZYbxD0VCqz38UG0i4uMPWue0euQyoHrkBIRERHdnaa8HLGnTuH2cNc4Nprm799uobTD1iElIiIionuTVgjMKSxsEkYB6MriCwuhvQfHIhlIiYiIiLqAnIoKvcv0txMALtXUIKeiosP61FIMpERERERdQGltrUnrdSQGUiIiIqIuwN3KyqT1OhIDKREREVEXEOroCE+FAs0t7iQBUCkUCHV07MBetQwDKREREVEXYC5JWO/jAwBNQmnj83U+PvfkeqQMpERERERdRLSLC9L8/eFx2zdeeioU7brkU1sZvTA+EREREd27ol1cENW9e9f+piYiIiIiureZSxJGOjnJ3Y0W4yV7IiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkq1YF0pSUFHh7e8Pa2hpDhgxBTk5Os3U1Gg3Cw8Ph4uICpVKJ4OBgZGZmtrrDRERERNS1GB1Id+zYgfj4eLz++us4fvw4QkNDMXbsWJSUlBisf/jwYYSHhyM9PR3ffPMNwsLCEBkZiePHj7e580RERETU+UlCCGHMBsOGDcPgwYORmpqqK/Pz88PTTz+NpKSkFrXh7++PCRMmYMmSJS2qX1lZCQcHB1y/fh1KpdKY7hIRERFRB2hLXjNqhLS2thbffPMNRo8erVc+evRofPHFFy1qo76+Hjdu3ICzs7MxuyYiIiKiLsrCmMpXr16FVquFm5ubXrmbmxvKyspa1MaaNWtQVVWFZ599ttk6NTU1qKmp0T2vrKw0pptERERE1Im06qYmSZL0ngshmpQZsn37dixbtgw7duyAq6trs/WSkpLg4OCge6hUqtZ0k4iIiIg6AaMCaffu3WFubt5kNPSHH35oMmp6ux07duDFF1/EJ598glGjRt2x7qJFi3D9+nXd49KlS8Z0k4iIiIg6EaMCqZWVFYYMGYIDBw7olR84cADDhw9vdrvt27dj6tSp+OijjzBu3Li77kehUECpVOo9iIiIiKhrMmoOKQDMmzcPkydPRlBQEIKDg/HOO++gpKQE06dPB9AwunnlyhVs27YNQEMYfe6557B+/Xo88sgjutFVGxsbODg4mPBQiIiIiKgzMjqQTpgwAT/++CMSExNRWlqKAQMGID09HV5eXgCA0tJSvTVJN23ahJs3byIuLg5xcXG68ilTpuCDDz5o+xEQERERUadm9DqkcuA6pERERET3tg5bh5SIiIiIyNQYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJykLuDlADIbSoqMhBbW0prKzc4egYCkkyl7tbRERERO2OgfQeUF6uQWHhHNTUXNaVKRSe8PFZDxeXaBl7RkRERNT+eMleZuXlGpw6FasXRgGgpuYKTp2KRXm5RqaeEREREXUMBlIZCaFFYeEcAMLQqwCAwsJ4CKHt0H4RERERdSQGUhlVVOQ0GRnVJ1BTcwkVFTkd1iciIiKijsZAKqPa2lKT1iMiIiLqjBhIZWRl5W7SekRERESdEQOpjBwdQ6FQeAKQmqkhQaFQwdExtCO7RURERNShGEhlJEnm8PFZ3/js9lcBAD4+67geKREREXVpDKQyc3GJhr9/GhQKD71yhcIT/v5pXIeUiIiIujwujH8PcHGJRvfuUfymJiIiIrovMZDeIyTJHE5OI+XuBhEREVGH4yV7IiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWVnI3YGWEEIAACorK2XuCREREREZ0pjTGnObMTpFIL1x4wYAQKVSydwT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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 3 ---\n", - "Aktuelle Cluster: [[1], [4], [5], [7], [8], [9], [3, 6], [0, 2]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 3. 6. 0.13477076 2. ]\n", - " [ 0. 2. 0.14306129 2. ]\n", - " [ 1. 5. 0.18963685 2. ]\n", - " [ 9. 10. 0.32105694 3. ]\n", - " [ 4. 12. 0.35501172 3. ]\n", - " [11. 13. 0.37333899 5. ]\n", - " [ 8. 15. 0.68619926 6. ]\n", - " [14. 16. 0.92078621 9. ]\n", - " [ 7. 17. 1.06516792 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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QIcOHSA1tso93VeEEPj111/x888/w97eHqZGnl/DQEpERERN18LFZLt27QoA2lBK7Yu9vb32HBoTAykRERE1XQsXk5UkCS4uLnB2dkZNTU0rd5aMydzc3Ogjo/UYSImIiKjpjLSYrKmpaauFG2p/eFMTERERGYaLyZKRcYSUiIiIDMfFZMmIGEiJiIioebiYLBkJL9kTERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJqlmBNDk5GR4eHrC0tMSAAQOQmZnZpO3+85//wMzMDI8++mhzdktEREREDyCDA+mWLVsQGxuL+fPn49ixYwgKCsKoUaNQWFh41+1u3LiBl156CU8//XSzO0tEREREDx5JCCEM2WDQoEF47LHHkJKSoi3z8fHBn/70JyQkJDS63V/+8hd4eXnB1NQU27ZtQ3Z2dpP3WV5eDjs7O9y4cQO2traGdJeIiIiI2kBL8ppBI6TV1dX44YcfMGLECJ3yESNG4NChQ41ut3HjRpw7dw6LFi0yqHNERERE9OAzM6TylStXoNFo0KVLF53yLl26oKSkRO82Z8+exdy5c5GZmQkzs6btrqqqClVVVdrn5eXlhnSTiIiIiNqRZt3UJEmSznMhRIMyANBoNBg/fjyWLFkCb2/vJrefkJAAOzs77UOpVDanm0RERETUDhgUSDt37gxT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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 4 ---\n", - "Aktuelle Cluster: [[1], [5], [7], [8], [3, 6], [0, 2], [4, 9]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 3. 6. 0.13477076 2. ]\n", - " [ 0. 2. 0.14306129 2. ]\n", - " [ 1. 5. 0.18963685 2. ]\n", - " [ 9. 10. 0.32105694 3. ]\n", - " [ 4. 12. 0.35501172 3. ]\n", - " [11. 13. 0.37333899 5. ]\n", - " [ 8. 15. 0.68619926 6. ]\n", - " [14. 16. 0.92078621 9. ]\n", - " [ 7. 17. 1.06516792 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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4vTCKAAICEiQEH8gHlMGTGnx8n0nWOCHWmCuc8e77ImIiKjVckpydC7T305A4FL1JeSU6D++09raGgDw888/m61/ZF7N5675XJoKR0iJiIio1cputPLxnQbqWVpawtnZGT/88AMAoFu3btr1Q+neJoTAzz//jB9++AHOzs4mX9GAgZSIiIhazaN7Kx/f2UK93r17A4A2lFLn4uzsrD2HpsRASkRERK0W2jcUXo5eKK0uNTiPVIIEL0cvhPY1vJisJEnw8PCAu7s7GhoazN1dMiFra2uzrfXKQEpEREStZmlhiZSJKYj5MAYSJJ1QKqHp8vuWiVvuuh6ppaUlF7InLd7UREREREaJCohC+tPp8HS87fGdjl5c8onaRBKdYO2F6upqODk5oaqqCo6OjnJ3h4iIiCDvk5ro3tOevMZL9kRERNQmlhaWGNdvnNzdoC6Al+yJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhk1aZAmpqaCh8fH9ja2mL48OHIyclp1Xb/+c9/YGVlhQceeKAtuyUiIiKiLsjoQLpr1y7Ex8dj+fLlOHnyJEJDQzFp0iSUlJTccbuqqio8++yzePTRR9vcWSIiIiLqeiQhhDBmg5EjR+LBBx9EWlqatiwgIABPPvkkkpKSWtzu//2//wc/Pz9YWlpiz549yMvLa/U+q6ur4eTkhKqqKjg6OhrTXSIiIiLqAO3Ja0aNkNbX1+Orr77ChAkTdMonTJiAY8eOtbjd22+/jfPnz2PVqlVGdY6IiIiIuj4rYypfvXoVGo0GvXr10inv1asXysvLDW7z3XffYenSpcjJyYGVVet2V1dXh7q6Ou376upqY7pJRERERJ1Im25qkiRJ570QQq8MADQaDaZOnYo1a9bA39+/1e0nJSXByclJ+1IqlW3pJhERERF1AkYF0p49e8LS0lJvNPSHH37QGzUFgBs3buDLL7/EvHnzYGVlBSsrKyQmJuLUqVOwsrJCVlaWwf0sW7YMVVVV2telS5eM6SYRERERdSJGXbK3sbHB8OHDcejQIfz+97/Xlh86dAhTpkzRq+/o6IjTp0/rlKWmpiIrKwvp6enw8fExuB+FQgGFQmFM14iIiIiokzIqkALAokWLMH36dAQHByMkJAR///vfUVJSgjlz5gBoGt0sLS3Fe++9BwsLCwwePFhne3d3d9ja2uqVExEREZFpaDQa5OTkoKysDB4eHggNDYWlpaXc3WqR0YH0mWeewY8//ojExESUlZVh8ODByMjIgLe3NwCgrKzsrmuSEhEREZF5qNVqxMXF4fLly9oyLy8vpKSkICoqSsaetczodUjlwHVIiYiIiO5OrVYjJiYGt8e75pvP09PTzRZKO2wdUiIiIiK6N2k0GsTFxemFUQDasvj4eGg0mo7u2l0xkBIRERF1ATk5OTqX6W8nhMClS5eQk5PTgb1qHQZSIiIioi6grKzMpPU6EgMpERERURfg4eFh0nodiYGUiIiIqAsIDQ2Fl5eXwadnAk03NimVSoSGhnZwz+6OgZSIiIioC7C0tERKSgoA/ce8N7/fsmXLPbkeKQMpERERURcRFRWF9PR0eHp66pR7eXmZdcmn9uI6pERERERdjBxPampPXjP6SU1EREREdG+ztLTEuHHj5O5Gq/GSPRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIiklWbAmlqaip8fHxga2uL4cOHIycnp8W6arUa4eHhcHNzg6OjI0JCQpCZmdnmDhMRERFR12J0IN21axfi4+OxfPlynDx5EqGhoZg0aRJKSkoM1s/OzkZ4eDgyMjLw1VdfISwsDJGRkTh58mS7O09EREREnZ8khBDGbDBy5Eg8+OCDSEtL05YFBATgySefRFJSUqvaCAwMxDPPPIOVK1e2qn51dTWcnJxQVVUFR0dHY7pLRERERB2gPXnNqBHS+vp6fPXVV5gwYYJO+YQJE3Ds2LFWtdHY2IgbN27A1dXVmF0TERERURdlZUzlq1evQqPRoFevXjrlvXr1Qnl5eava2LRpE2pqavD000+3WKeurg51dXXa99XV1cZ0k4iIiIg6kTbd1CRJks57IYRemSE7d+7E6tWrsWvXLri7u7dYLykpCU5OTtqXUqlsSzeJiIiIqBMwKpD27NkTlpaWeqOhP/zwg96o6e127dqFF154AR9++CHGjx9/x7rLli1DVVWV9nXp0iVjuklEREREnYhRgdTGxgbDhw/HoUOHdMoPHTqEUaNGtbjdzp07MXPmTPzzn//EY489dtf9KBQKODo66ryIiIiIqGsyag4pACxatAjTp09HcHAwQkJC8Pe//x0lJSWYM2cOgKbRzdLSUrz33nsAmsLos88+i5SUFDz00EPa0VU7Ozs4OTmZ8FCIiIiIqDMyOpA+88wz+PHHH5GYmIiysjIMHjwYGRkZ8Pb2BgCUlZXprEm6fft23Lx5E7GxsYiNjdWWz5gxA++88077j4CIiIiIOjWj1yGVA9chJSIiIrq3ddg6pEREREREpsZASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWVnJ3gH6l0QA5OUBZGeDhAYSGApaWcveKiIiIyOwYSO8FajUQFwdcvvxbmZcXkJICREXJ1y8iIiKiDsBL9nJTq4GYGN0wCgClpU3larU8/SIiIiLqIAykctJomkZGhdD/rLksPr6pHhEREVEXxUAqp5wc/ZHRWwkBXLrUVI+IiIioi2IglVNZmWnrEREREXVCDKRy8vAwbT0iIiKiToiBVE6hoU1300uS4c8lCVAqm+oRERERdVEMpHKytGxa2gnQD6XN77ds4XqkRERE1KUxkMotKgpITwc8PXXLvbyayrkOKREREXVxXBj/XhAVBUyZwic1ERER0X2JgfReYWkJjBsndy+IiIiIOhwv2RMRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcnKSu4OtIYQ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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 5 ---\n", - "Aktuelle Cluster: [[1], [5], [7], [8], [3, 6], [0, 2], [4, 9]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 3. 6. 0.13477076 2. ]\n", - " [ 0. 2. 0.14306129 2. ]\n", - " [ 1. 5. 0.18963685 2. ]\n", - " [ 9. 10. 0.32105694 3. ]\n", - " [ 4. 12. 0.35501172 3. ]\n", - " [11. 13. 0.37333899 5. ]\n", - " [ 8. 15. 0.68619926 6. ]\n", - " [14. 16. 0.92078621 9. ]\n", - " [ 7. 17. 1.06516792 10. ]]\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAqQAAAIOCAYAAABuwR8hAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABw30lEQVR4nO3dfVhU1aI/8O/mbUDeUVCEERkBRRQzORoqKSWiFtIFqt/xaFrpiUQFxTyaXl9Q40rqlbxCHns5dW7HLJy8VyXRKxl4lGOleDyCFgqiBIYpYBQvDuv3BzE5zqAMDGzR7+d55rFZs/baa8+G/Lr22mtLQggBIiIiIiKZmMndASIiIiJ6uDGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQ0kPjL3/5CyRJwtdff23w86effhr9+/fXKevfvz9mzZrV+Z3rBEeOHIEkScjIyLhn3VmzZukduymUlJRAkiRs3LjR5G0bUlNTg/Xr1yMoKAgODg5QKBTo378/XnrpJZw8eVJbr+VnoaSkpFP6cezYMaxevRpVVVWd0r6cOutnRQ7/+Mc/8G//9m/o168fFAoFevfujeDgYCQmJhrd1vjx4zFkyJAO9afld/bIkSPasszMTKxevdpg/TfeeAN79uxpc/v9+/eHJEl6r9jY2A71m8gULOTuANH97LPPPoODg4Pc3eh0//7v/474+Hi5u9EhFy5cwMSJE/HDDz8gNjYWa9asgZ2dHUpKSvDJJ59gxIgRqKqqgqOjY6f35dixY1izZg1mzZoFJyenTt8fGW///v2YOnUqxo8fj5SUFLi7u6O8vBxff/01Pv74Y2zatKnL+/Too4/i+PHjGDx4sLYsMzMT27ZtMxhK33jjDcTExOCZZ55p8z7GjBmj9w/E3r17t7fLRCbDQEp0F8OHDzdZW0II1NXVwcbGpkPt/PLLLx1u404DBgwwaXtdTaPR4N/+7d9w7do1HD9+XGekaty4cZg5cyY+//xzWFpaytjLjvv555/Ro0cPubvxQEhJSYG3tzeysrJgYfHbX4X/7//9P6SkpHRpXxobGyFJEhwcHPDYY4916r6cnJw6fR9E7cFL9kR3YeiSfU1NDRYvXgxvb29YWVnBw8MDCQkJqK2t1aknSRLmzZuHt99+G/7+/lAoFPjggw8AAGvWrMGoUaPg4uICBwcHPProo3j33XchhNDb/9NPPw21Wo3hw4fD2toaa9asAQCUlZXhj3/8I5RKJaysrNC3b1/ExMTg6tWrOm00NjZi+fLl6Nu3LxwcHDBhwgScP39ep46hy7CffvopRo0aBUdHR/To0QMqlQovvfSSTp2qqiokJiZCpVJBoVDAzc0NU6ZMwblz5/S+y82bN8Pb2xt2dnYIDg5GXl6eXp2vv/4aU6dOhYuLC6ytrTF8+HB88sknevXutGfPHpw5cwbLli1r9bLp5MmT7xrmWpueMX78eIwfP177vqmpCevWrcPAgQNhY2MDJycnBAYGIjU1FQCwevVqvPbaawAAb29v7WXR2y/D7tq1C8HBwbC1tYWdnR3Cw8Nx6tQpnf3OmjULdnZ2OHPmDCZOnAh7e3s8+eSTAIBDhw4hMjISnp6esLa2ho+PD1555RVcu3ZNp43Vq1dDkiScPXsWv//97+Ho6IjevXvjpZdeQnV1tU7dbdu24fHHH4ebmxtsbW0xdOhQpKSkoLGxsdXvDACefPJJDBo0SO9nVwgBHx8fPPXUU9qy9PR0DBs2DHZ2drC3t8egQYPw+uuv62xXUVGBV155BZ6enrCysoK3tzfWrFmDW7du3bUfxvrxxx/Rq1cvnTDawsxM/6/Gv/3tbwgODoadnR3s7OzwyCOP4N1339Wr99VXXyEkJET7O/Mf//EfaGpq0n7ecln+r3/9KxITE+Hh4QGFQoGioiK9S/azZs3Ctm3bAEDnEnvLVJja2lp88MEH2vLbf06JuhuOkNJDR6PRGPzL7c6/UA35+eefMW7cOFy5cgWvv/46AgMDcfbsWaxcuRJnzpzB//3f/0GSJG39PXv2IDc3FytXrkSfPn3g5uYGoHlu5SuvvIJ+/foBAPLy8jB//nyUlZVh5cqVOvs8efIkCgsLsWLFCnh7e8PW1hZlZWX43e9+h8bGRm0/fvzxR2RlZeHGjRs6l+Bef/11jBkzBu+88w5qamrwpz/9CRERESgsLIS5ubnB4zx+/Dief/55PP/881i9ejWsra1x6dIlZGdna+vcvHkTY8eORUlJCf70pz9h1KhR+Omnn5CTk4Py8nIMGjRIW3fbtm0YNGgQtmzZAqB5isCUKVNQXFysvYT+xRdfYNKkSRg1ahTefvttODo64uOPP8bzzz+Pn3/++a5zeQ8ePAgARl26bK+UlBSsXr0aK1aswOOPP47GxkacO3dOO1909uzZuH79OrZu3Qq1Wg13d3cA0F6GfeONN7BixQq8+OKLWLFiBRoaGvDmm28iJCQEJ06c0Llc29DQgKlTp+KVV17B0qVLtT+3Fy5cQHBwMGbPng1HR0eUlJRg8+bNGDt2LM6cOaM3EhwdHY3nn38eL7/8sja4A8B7772nrXPhwgVMmzZN+w+t06dPY/369Th37pxOvTvFx8cjMjIShw8fxoQJE7Tln3/+OS5cuIC33noLAPDxxx9j7ty5mD9/PjZu3AgzMzMUFRWhoKBAu01FRQVGjhwJMzMzrFy5EgMGDMDx48exbt06lJSU4P333zf6fLUmODgY77zzDhYsWIA//OEPePTRR1sdQV+5ciXWrl2LqKgoJCYmwtHREf/6179w6dIlnXoVFRX4wx/+gMTERKxatQqfffYZli1bhr59++KFF17Qqbts2TIEBwfj7bffhpmZGdzc3FBRUaFT59///d9RW1uLjIwMHD9+XFvu7u6O48eP44knnkBoaCj+/d//HQDaNL0oJycH9vb2qKurg6+vL15++WUkJCS0+v8Coi4jiB4S77//vgBw15eXl5fONl5eXmLmzJna98nJycLMzEx89dVXOvUyMjIEAJGZmaktAyAcHR3F9evX79ovjUYjGhsbRVJSkujZs6doamrS2b+5ubk4f/68zjYvvfSSsLS0FAUFBa22+8UXXwgAYsqUKTrln3zyiQAgjh8/ri2bOXOmzrFv3LhRABBVVVWttp+UlCQAiEOHDrVap7i4WAAQQ4cOFbdu3dKWnzhxQgAQO3fu1JYNGjRIDB8+XDQ2Nuq08fTTTwt3d3eh0Wha3c+kSZMEAFFXV9dqndu1/CwUFxdry+481y3GjRsnxo0bp9OfRx555K7tv/nmm3rtCyFEaWmpsLCwEPPnz9cpv3nzpujTp4947rnntGUzZ84UAMR777131301NTWJxsZGcenSJQFA/M///I/2s1WrVgkAIiUlRWebuXPnCmtra52ftdu1/Ex++OGHwtzcXOdn+M6fFY1GI1QqlYiMjNRpY/LkyWLAgAHafcybN084OTnd9VheeeUVYWdnJy5duqRT3vLzePbs2btub4xr166JsWPHan/3LS0txejRo0VycrK4efOmtt7FixeF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ycLcHOAV1+5H06RB/IF4vTAKAAICEiQkHEhA5MDIVi/fd4MFfqgVnXXueJc9ERERtVluaa7OZfo7CQhcrrmM3FL9x3daWloCAH7++edO6x91rpZz13IuTYUjpERERNRm5Tfb+PhOA/XMzc3h5OSEH374AQDQo0cP7fqhdH8TQuDnn3/GDz/8ACcnJ5OvaMBASkRERG3mbt/Gx3e2Uq9Pnz4AoA2l1L04OTlpz6EpMZASERFRm4X0C4GngyfKasoMziOVIMHTwRMh/QwvJitJEtzd3eHm5obGxsbO7i6ZkKWlZaet9cpASkRERG1mbmaO1EmpiPkkBhIknVAqofny+5ZJW+65Hqm5uTkXsict3tRERERERonyj0LGcxnwcLjj8Z0OnlzyidpFEt1g7YWamho4OjqiuroaDg4OcneHiIiIIO+Tmuj+05G8xkv2RERE1C7mZuYY33+83N2gBwAv2RMRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmqXYE0LS0N3t7esLa2xogRI5Cbm9um7f7+97/DwsICjzzySHt2S0REREQPIKMD6a5du5CQkIDly5fj1KlTCAkJweTJk1FaWnrX7aqrq/HCCy/gySefbHdniYiIiOjBIwkhhDEbjBo1Co8++ijS09O1Zf7+/njmmWeQnJzc6nb/7//9P/j6+sLc3Bx79uxBfn5+m/dZU1MDR0dHVFdXw8HBwZjuEhEREVEX6EheM2qEtKGhAd988w0mTpyoUz5x4kQcO3as1e3ef/99XLhwAatWrTKqc0RERET04LMwpvK1a9eg0WjQu3dvnfLevXujoqLC4Dbfffcdli5ditzcXFhYtG139fX1qK+v176vqakxpptERERE1I2066YmSZJ03gsh9MoAQKPRYNq0aVizZg38/Pza3H5ycjIcHR21L6VS2Z5uEhEREVE3YFQg7dWrF8zNzfVGQ3/44Qe9UVMAuHnzJr7++mvMmzcPFhYWsLCwQFJSEk6fPg0LCwtkZ2cb3M+yZctQXV2tfV2+fNmYbhIRERFRN2LUJXsrKyuMGDEChw4dwr/9279pyw8dOoTIyEi9+g4ODjhz5oxOWVpaGrKzs5GRkQFvb2+D+1EoFFAoFMZ0jYiIiIi6KaMCKQAsWrQIM2bMQFBQEIKDg/HnP/8ZpaWliI2NBdA8ullWVoYPP/wQZmZmGDJkiM72bm5usLa21isnIiIiItPQaDTIzc1FeXk53N3dERISAnNzc7m71SqjA+nzzz+PH3/8EUlJSSgvL8eQIUOQmZkJLy8vAEB5efk91yQlIiIios6hVqsRHx+PK1euaMs8PT2RmpqKqKgoGXvWOqPXIZUD1yElIiIiuje1Wo2YmBjcGe9abj7PyMjotFDaZeuQEhEREdH9SaPRID4+Xi+MAtCWJSQkQKPRdHXX7omBlIiIiOgBkJubq3OZ/k5CCFy+fBm5ubld2Ku2YSAlIiIiegCUl5ebtF5XYiAlIiIiegC4u7ubtF5XYiAlIiIiegCEhITA09PT4NMzgeYbm5RKJUJCQrq4Z/fGQEpERET0ADA3N0dqaioA/ce8t7zfsmXLfbkeKQMpERER0QMiKioKGRkZ8PDw0Cn39PTs1CWfOorrkBIRERE9YOR4UlNH8prRT2oiIiIiovububk5xo8fL3c32oyX7ImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkazaFUjT0tLg7e0Na2trjBgxArm5ua3WVavVCAsLg6urKxwcHBAcHIysrKx2d5iIiIiIHixGB9Jdu3YhISEBy5cvx6lTpxASEoLJkyejtLTUYP2cnByEhYUhMzMT33zzDUJDQxEREYFTp051uPNERERE1P1JQghhzAajRo3Co48+ivT0dG2Zv78/nnnmGSQnJ7epjYCAADz//PNYuXJlm+rX1NTA0dER1dXVcHBwMKa7RERERNQFOpLXjBohbWhowDfffIOJEyfqlE+cOBHHjh1rUxtNTU24efMmXFxcjNk1ERERET2gLIypfO3aNWg0GvTu3VunvHfv3qioqGhTG5s2bUJtbS2ee+65VuvU19ejvr5e+76mpsaYbhIRERFRN9Kum5okSdJ5L4TQKzNk586dWL16NXbt2gU3N7dW6yUnJ8PR0VH7UiqV7ekmEREREXUDRgXSXr16wdzcXG809IcfftAbNb3Trl278PLLL+OTTz7BhAkT7lp32bJlqK6u1r4uX75sTDeJiIiIqBsxKpBaWVlhxIgROHTokE75oUOHMHr06Fa327lzJ2bNmoW//e1veOqpp+65H4VCAQcHB50XERERET2YjJpDCgCLFi3CjBkzEBQUhODgYPz5z39GaWkpYmNjATSPbpaVleHDDz8E0BxGX3jhBaSmpuKxxx7Tjq7a2NjA0dHRhIdCRERERN2R0YH0+eefx48//oikpCSUl5djyJAhyMzMhJeXFwCgvLxcZ03S7du349atW4iLi0NcXJy2fObMmfjLX/7S8SMgIiIiom7N6HVI5cB1SImIiIjub122DikRERERkakxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSlYXcHaBfaTRAbi5QXg64uwMhIYC5udy9IiIiIup0DKT3A7UaiI8Hrlz5rczTE0hNBaKi5OsXERERURfgJXu5qdVATIxuGAWAsrLmcrVann4RERERdREGUjlpNM0jo0Lof9ZSlpDQXI+IiIjoAcVAKqfcXP2R0dsJAVy+3FyPiIiI6AHFQCqn8nLT1iMiIiLqhhhI5eTubtp6RERERN0QA6mcQkKa76aXJMOfSxKgVDbXIyIiInpAMZDKydy8eWknQD+UtrzfsoXrkRIREdEDjYFUblFRQEYG4OGhW+7p2VzOdUiJiIjoAceF8e8HUVFAZCSf1EREREQPJQbS+4W5OTB+vNy9ICIiIupyvGRPRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiI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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 6 ---\n", - "Aktuelle Cluster: [[1], [5], [7], [8], [3, 6], [0, 2], [4, 9]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 3. 6. 0.13477076 2. ]\n", - " [ 0. 2. 0.14306129 2. ]\n", - " [ 1. 5. 0.18963685 2. ]\n", - " [ 9. 10. 0.32105694 3. ]\n", - " [ 4. 12. 0.35501172 3. ]\n", - " [11. 13. 0.37333899 5. ]\n", - " [ 8. 15. 0.68619926 6. ]\n", - " [14. 16. 0.92078621 9. ]\n", - " [ 7. 17. 1.06516792 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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GEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJqVSBNTU2Fl5cXrK2tMWzYMGRnZzdbV61WIywsDC4uLrC3t0dwcDAyMzNb3WEiIiIi6lqMDqQ7d+5EfHw8li1bhpMnTyIkJAQTJ05EcXGxwfpHjhxBWFgYMjIy8PXXXyM0NBQRERE4efJkmztPRERERJ2fJIQQxmwwYsQIPPzww0hLS9OW+fn54amnnkJSUlKL2vD398ezzz6LFStWtKh+VVUVHBwcUFlZCXt7e2O6S0REREQdoC15zagR0rq6Onz99dcYP368Tvn48eNx7NixFrXR0NCAmzdvwtnZ2ZhdExEREVEXZWFM5WvXrkGj0aBXr1465b169UJZWVmL2ti4cSOqq6vxzDPPNFuntrYWtbW12vdVVVXGdJOIiIiIOpFW3dQkSZLOeyGEXpkhO3bswKpVq7Bz5064uro2Wy8pKQkODg7al1KpbE03iYiIiKgTMCqQ9uzZE+bm5nqjod9//73eqOmddu7ciRdffBEfffQRxo0bd9e6S5cuRWVlpfZ16dIlY7pJRERERJ2IUYHUysoKw4YNw8GDB3XKDx48iJEjRza73Y4dOzBjxgz885//xBNPPHHP/SgUCtjb2+u8iIiIiKhrMmoOKQAsXLgQ06ZNQ1BQEIKDg/H3v/8dxcXFmD17NoDG0c2SkhK8//77ABrD6HPPPYeUlBQ88sgj2tFVGxsbODg4mPBQiIiIiKgzMjqQPvvss/jhhx+QmJiI0tJSDB48GBkZGfD09AQAlJaW6qxJum3bNty6dQuxsbGIjY3Vlk+fPh3vvvtu24+AiIiIiDo1o9chlQPXISUiIiK6v3XYOqRERERERKbGQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVhZyd4B+odEA2dlAaSng5gaEhADm5nL3ioiIiKjdMZDeD9RqIC4OuHz51zIPDyAlBYiKkq9fRERERB2Al+zlplYDMTG6YRQASkoay9VqefpFRERE1EEYSOWk0TSOjAqh/1lTWXx8Yz0iIiKiLoqBVE7Z2fojo7cTArh0qbEeERERURfFQCqn0lLT1iMiIiLqhBhI5eTmZtp6RERERJ0QA6mcQkIa76aXJMOfSxKgVDbWIyIiIuqiGEjlZG7euLQToB9Km95v3sz1SImIiKhLYyCVW1QUkJ4OuLvrlnt4NJZzHVIiIiLq4rgw/v0gKgqIjOSTmoiIiOiBxEB6vzA3B8aOlbsXRERERB2Ol+yJiIiISFYMpEREREQk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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 7 ---\n", - "Aktuelle Cluster: [[1], [5], [7], [8], [3, 6], [0, 2], [4, 9]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 3. 6. 0.13477076 2. ]\n", - " [ 0. 2. 0.14306129 2. ]\n", - " [ 1. 5. 0.18963685 2. ]\n", - " [ 9. 10. 0.32105694 3. ]\n", - " [ 4. 12. 0.35501172 3. ]\n", - " [11. 13. 0.37333899 5. ]\n", - " [ 8. 15. 0.68619926 6. ]\n", - " [14. 16. 0.92078621 9. ]\n", - " [ 7. 17. 1.06516792 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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KRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkaxaFUhTU1Ph5eUFa2trDB8+HNnZ2c3WVavVCA0NhYuLC+zt7REUFITMzMxWd5iIiIiIuhajA+nOnTsRHx+PZcuW4dSpUwgODsakSZNQXFxssP7Ro0cRGhqKjIwMfP311wgJCUF4eDhOnTrV5s4TERERUecnCSGEMTuMHDkSDz/8MNLS0rRlfn5+ePrpp5GUlNSiNvz9/TFlyhSsWLGiRfWrqqrg4OCAyspK2NvbG9NdIiIiIuoAbclrRo2Q1tXV4euvv8aECRN0yidMmIDjx4+3qI2GhgbcvHkTzs7OxhyaiIiIiLooC2MqX7t2DRqNBr169dIp79WrF8rKylrUxsaNG1FdXY1nn3222Tq1tbWora3Vvq+qqjKmm0RERETUibTqoSZJknTeCyH0ygzZsWMHVq1ahZ07d8LV1bXZeklJSXBwcNC+lEpla7pJRERERJ2AUYG0Z8+eMDc31xsN/eGHH/RGTe+0c+dOvPTSS/j4448xfvz4u9ZdunQpKisrta/Lly8b000iIiIi6kSMCqRWVlYYPnw4Dh06pFN+6NAhjBo1qtn9duzYgZkzZ+If//gHnnjiiXseR6FQwN7eXudFRERERF2TUXNIAWDhwoWYPn06AgMDERQUhL/97W8oLi5GTEwMgMbRzZKSEnzwwQcAGsPo888/j5SUFDzyyCPa0VUbGxs4ODiY8FSIiIiIqDMyOpBOmTIFP/74IxITE1FaWorBgwcjIyMDnp6eAIDS0lKdNUm3bduGW7duITY2FrGxsdryGTNm4L333mv7GRARERFRp2b0OqRy4DqkRERERPe3DluHlIiIiIjI1BhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcnKQu4O0K80GiA7GygtBdzcgOBgwNxc7l4RERERtTsG0vuBWg3ExQFXrvxW5uEBpKQAkZHy9YuIiIioA/CWvdzUaiA6WjeMAkBJSWO5Wi1Pv4iIiIg6CAOpnDSaxpFRIfS3NZXFxzfWIyIiIuqiGEjllJ2tPzJ6OyGAy5cb6xERERF1UQykciotNW09IiIiok6IgVRObm6mrUdERETUCTGQyik4uPFpekkyvF2SAKWysR4RERFRF8VAKidz88alnQD9UNr0fvNmrkdKREREXRoDqdwiI4H0dMDdXbfcw6OxnOuQEhERURfHhfHvB5GRQEQEv6mJiIiIHkgMpPcLc3Ng3Di5e0FERETU4XjLnoiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYWcnegJYQQAICqqiqZe0JEREREhjTltKbcZoxOEUhv3rwJAFAqlTL3hIiIiIju5ubNm3BwcDBqH0m0JsZ2sIaGBnz//ffo3r07JEkyev+qqioolUpcvnwZ9vb27dBDkguvbdfG69t18dp2bby+Xdfdrq0QAjdv3kSfPn1gZmbcrNBOMUJqZmYGDw+PNrdjb2/PX4wuite2a+P17bp4bbs2Xt+uq7lra+zIaBM+1EREREREsmIgJSIiIiJZPRCBVKFQYOXKlVAoFHJ3hUyM17Zr4/XtunhtuzZe366rva5tp3ioiYiIiIi6rgdihJSIiIiI7l8MpEREREQkKwZSIiIiIpIVAykRERERyarLBNLU1FR4eXnB2toaw4cPR3Z29l3rf/755xg+fDisra2hUqnw5ptvdlBPyVjGXFu1Wo3Q0FC4uLjA3t4eQUFByMzM7MDekrGM/d1t8u9//xsWFhZ46KGH2reD1GrGXtva2losW7YMnp6eUCgU6N+/P955550O6i0Zy9jr++GHH2Lo0KHo1q0b3Nzc8MILL+DHH3/soN5SSx09ehTh4eHo06cPJEnCnj177rmPSTKV6AI++ugjYWlpKbZv3y7y8vJEXFycsLW1FZcuXTJY/+LFi6Jbt24iLi5O5OXlie3btwtLS0uRnp7ewT2nezH22sbFxYn169eLEydOiG+//VYsXbpUWFpaipMnT3Zwz6kljL2+TSoqKoRKpRITJkwQQ4cO7ZjOklFac22feuopMXLkSHHo0CFRWFgo/vOf/4h///vfHdhrailjr292drYwMzMTKSkp4uLFiyI7O1v4+/uLp59+uoN7TveSkZEhli1bJnbt2iUAiN27d9+1vqkyVZcIpCNGjBAxMTE6ZQMHDhRLliwxWH/x4sVi4MCBOmUvv/yyeOSRR9qtj9Q6xl5bQwYNGiRWr15t6q6RCbT2+k6ZMkUsX75crFy5koH0PmXstf3000+Fg4OD+PHHHzuie9RGxl7f119/XahUKp2yN954Q3h4eLRbH6ntWhJITZWpOv0t+7q6Onz99deYMGGCTvmECRNw/Phxg/t88cUXevXDwsLw1Vdfob6+vt36SsZpzbW9U0NDA27evAlnZ+f26CK1QWuv77vvvosLFy5g5cqV7d1FaqXWXNv/+7//Q2BgIJKTk+Hu7g5fX18sWrQIv/zyS0d0mYzQmus7atQoXLlyBRkZGRBC4OrVq0hPT8cTTzzREV2mdmSqTGVh6o51tGvXrkGj0aBXr1465b169UJZWZnBfcrKygzWv3XrFq5duwY3N7d26y+1XGuu7Z02btyI6upqPPvss+3RRWqD1lzf7777DkuWLEF2djYsLDr9/766rNZc24sXL+LYsWOwtrbG7t27ce3aNcyZMwfXr1/nPNL7TGuu76hRo/Dhhx9iypQpqKmpwa1bt/DUU09hy5YtHdFlakemylSdfoS0iSRJOu+FEHpl96pvqJzkZ+y1bbJjxw6sWrUKO3fuhKura3t1j9qopddXo9Fg6tSpWL16NXx9fTuqe9QGxvzuNjQ0QJIkfPjhhxgxYgQmT56MTZs24b333uMo6X3KmOubl5eH+fPnY8WKFfj6669x4MABFBYWIiYmpiO6Su3MFJmq0w8x9OzZE+bm5nr/Kvvhhx/0EnuT3r17G6xvYWGBHj16tFtfyTitubZNdu7ciZdeegmffPIJxo8f357dpFYy9vrevHkTX331FU6dOoW5c+cCaAwxQghYWFjg4MGDeOyxxzqk73R3rfnddXNzg7u7OxwcHLRlfn5+EELgypUr8PHxadc+U8u15vomJSVh9OjRePXVVwEAAQEBsLW1RXBwMNauXcs7k52YqTJVpx8htbKywvDhw3Ho0CGd8kOHDmHUqFEG9wkKCtKrf/DgQQQGBsLS0rLd+krGac21BRpHRmfOnIl//OMfnJ90HzP2+trb2+PMmTPIzc3VvmJiYjBgwADk5uZi5MiRHdV1uofW/O6OHj0a33//PX766Sdt2bfffgszMzN4eHi0a3/JOK25vj///DPMzHQjh7m5OYDfRtOoczJZpjLqEaj7VNPyE2+//bbIy8sT8fHxwtbWVhQVFQkhhFiyZImYPn26tn7TEgULFiwQeXl54u233+ayT/cpY6/tP/7xD2FhYSG2bt0qSktLta+Kigq5ToHuwtjreyc+ZX//Mvba3rx5U3h4eIjo6Ghx9uxZ8fnnnwsfHx8xa9YsuU6B7sLY6/vuu+8KCwsLkZqaKi5cuCCOHTsmAgMDxYgRI+Q6BWrGzZs3xalTp8SpU6cEALFp0yZx6tQp7ZJe7ZWpukQgFUKIrVu3Ck9PT2FlZSUefvhh8fnnn2u3zZgxQ4wdO1an/pEjR8SwYcOElZWV6Nevn0hLS+vgHlNLGXNtx44dKwDovWbMmNHxHacWMfZ393YMpPc3Y69tfn6+GD9+vLCxsREeHh5i4cKF4ueff+7gXlNLGXt933jjDTFo0CBhY2Mj3NzcxHPPPSeuXLnSwb2me/nss8/u+vdoe2UqSQiOlRMRERGRfDr9HFIiIiIi6twYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIiktX/BzqXKjjuR+p5AAAAAElFTkSuQmCC\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 8 ---\n", - "Aktuelle Cluster: [[1], [5], [7], [8], [3, 6], [0, 2], [4, 9]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 3. 6. 0.13477076 2. ]\n", - " [ 0. 2. 0.14306129 2. ]\n", - " [ 1. 5. 0.18963685 2. ]\n", - " [ 9. 10. 0.32105694 3. ]\n", - " [ 4. 12. 0.35501172 3. ]\n", - " [11. 13. 0.37333899 5. ]\n", - " [ 8. 15. 0.68619926 6. ]\n", - " [14. 16. 0.92078621 9. ]\n", - " [ 7. 17. 1.06516792 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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b9++4qWXXhJFRUU6fVm+fLno06ePMDMz07tzeu/evSIkJETY29sLhUIhPD09RXR0tPjnP/+prTNz5kxha2trcD/z8vJEaGio6N69u3BychLPPPOMKC4u1vtMm+6yLy8v11nf0P7v27dPDB06VFhbWwt3d3fx6quvis8++0yv73d/V+703nvvCQDio48+0lv2/vvvi5CQENGrVy9hZWWl/b7+97//1alXXl4uFi5cKLy8vISlpaVwdnYWI0aMECtWrBA//vijwe22xu7du8W0adOEj4+PzndlxowZBmev+OCDD8Sjjz4qrK2thZ2dnRg2bJjOz9C4ceOEv7+/3np3f17N/VzeuezOz7u2tlbMnj1buLi4CEmSdI5bbm6uGDNmjOjWrZsAoPM9NaS0tFTMnz9feHt7C2tra9GnTx/x5JNP6sy4QSQXSYgWTL5IRER0H1FRUcjJyUFRUVGnfyoWEXUsnrInIqJWq62txcmTJ3HixAl8+umn2LJlC8MoERmNI6RERNRqRUVF8PLygr29PaZNm4a//OUvzT4BjIioOQykRERERCQrToxPRERERLJiICUiIiIiWTGQEhEREZGsOsVd9g0NDfjuu+/QvXv3Dn/cGhERERHdnxACt27dQp8+fWBmZtyYZ6cIpN99951JnyFMRERERO3jypUrRj9VrVME0u7duwNo3EF7e3uZe0NEREREd6uqqoJSqdTmNmN0ikDadJre3t6egZSIiIjoAdaayyt5UxMRERERyYqBlIiIiIhkxUBKRERERLLqFNeQEhERUdei0WhQX18vdzfICJaWljA3N2+XthlIiYiIqMMIIVBWVoaKigq5u0Kt4OjoiN69e5t8XngGUiIiIuowTWHU1dUV3bp14wNvOgkhBH766Sd8//33AAA3NzeTts9ASkRERB1Co9Fow2iPHj3k7g4ZycbGBgDw/fffw9XV1aSn73lTExEREXWIpmtGu3XrJnNPqLWajp2pr/9lICUiIqIOxdP0nVd7HTsGUiIiIiKSFQMpERERkYlIkoS9e/fK3Y1Oh4GUiIiIqAXKysqwYMECqFQqKBQKKJVKhIeH48iRI+2yvaNHj0KSpHadIuvmzZuYMWMGHBwc4ODggBkzZsgyJRfvsiciIqJOR6MBsrOB0lLAzQ0IDgbaac52AEBRURHGjBkDR0dHJCUlISAgAPX19cjI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ovbHQEpERB0qMhJIS2u82/7OqZ88PBrDKM+4dg7qfDViD8biatUdj++090DypGRE+vEgknEYSImIqMNFRgIREUB2NlBa2njNaHAwR0Y7C3W+GtEfR0Pgrsd3VpUg+uNopD2bxlBKRmEgJSIiWZibAzzj2vloGjSIPRirF0YBQEBAgoS4g3GIGBDR7On7TjDBDzWjvY4d77InIiKiFssuztY5TX83AYErVVeQXaz/+E5LS0sAwE8//dRu/aP21XTsmo6lqXCElIiIiFqs9FYLH99poJ65uTkcHR3x/fffAwC6deumnT+UHmxCCPz000/4/vvv4ejoaPIZDRhIiYiIqMXcurfw8Z3N1OvduzcAaEMpdS6Ojo7aY2hKDKRERETUYsF9g+Fh74GSqhKD15FKkOBh74HgvoYnk5UkCW5ubnB1dUV9fX17d5dMyNLSst3memUgJSIiohYzNzNH8qRkRH8cDQmSTiiV0Hj6feukrfedj9Tc3JwT2ZMWb2oiIiIio0T6RSLt2TS429/1+E57D075RK0iiU4w90JVVRUcHBxQWVkJe3t7ubtDREREkPdJTfTgaUte4yl7IiIiahVzM3OM7zde7m5QF8BT9kREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJqVSBNSUmBl5cXrK2tMWLECGRnZ7dovX/961+wsLDAI4880prNEhEREVEXZHQg3b17N+Li4rBixQqcOnUKwcHBmDx5MoqLi++5XmVlJZ5//nn86le/anVniYiIiKjrkYQQwpgVRo0aheHDhyM1NVVb5ufnh6effhqJiYnNrveb3/wGPj4+MDc3x969e5Gbm9vibVZVVcHBwQGVlZWwt7c3prtERERE1AHakteMGiGtq6vD119/jYkTJ+qUT5w4EcePH292vXfffRcXL17E6tWrjeocEREREXV9FsZUvn79OjQaDXr16qVT3qtXL5SVlRlc59tvv8WyZcuQnZ0NC4uWba62tha1tbXa91VVVcZ0k4iIiIg6kVbd1CRJks57IYReGQBoNBpMmzYNa9euha+vb4vbT0xMhIODg/alVCpb000iIiIi6gSMCqQ9e/aEubm53mjo999/rzdqCgC3bt3Cf/7zH8yfPx8WFhawsLBAQkICTp8+DQsLC2RmZhrczvLly1FZWal9XblyxZhuEhEREVEnYtQpeysrK4wYMQKHDx/Gr3/9a2354cOHERERoVff3t4eZ86c0SlLSUlBZmYm0tLS4OXlZXA7CoUCCoXCmK4RERERUSdlVCAFgMWLF2PGjBkIDAxEUFAQ/vrXv6K4uBhz584F0Di6WVJSgg8++ABmZmYYPHiwzvqurq6wtrbWKyciIiIi09BoNMjOzkZpaSnc3NwQHBwMc3NzubvVLKMD6XPPPYcffvgBCQkJKC0txeDBg5Geng5PT08AQGlp6X3nJCUiIiKi9qFWqxEbG4urV69qyzw8PJCcnIzIyEgZe9Y8o+chlQPnISUiIiK6P7VajejoaNwd75puPk9LS2u3UNph85ASERER0YNJo9EgNjZWL4wC0JbFxcVBo9F0dNfui4GUiIiIqAvIzs7WOU1/NyEErly5guzs7A7sVcswkBIRERF1AaWlpSat15EYSImIiIi6ADc3N5PW60gMpERERERdQHBwMDw8PAw+PRNovLFJqVQiODi4g3t2fwykRERERF2Aubk5kpOTAeg/5r3p/datWx/I+UgZSImIiIi6iMjISKSlpcHd3V2n3MPDo12nfGorzkNKRERE1MXI8aSmtuQ1o5/UREREREQPNnNzc4wfP17ubrQYT9kTERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZtSqQpqSkwMvLC9bW1hgxYgSys7ObratWqxEaGgoXFxfY29sjKCgIGRkZre4wEREREXUtRgfS3bt3Iy4uDitWrMCpU6cQHByMyZMno7i42GD9rKwshIaGIj09HV9//TVCQkIQHh6OU6dOtbnzRERERNT5SUIIYcwKo0aNwvDhw5Gamqot8/Pzw9NPP43ExMQWteHv74/nnnsOq1atalH9qqoqODg4oLKyEvb29sZ0l4iIiIg6QFvymlEjpHV1dfj6668xceJEnfKJEyfi+PHjLWqjoaEBt27dgrOzszGbJiIiIqIuysKYytevX4dGo0GvXr10ynv16oWysrIWtbF582ZUV1fj2WefbbZObW0tamtrte+rqqqM6SYRERERdSKtuqlJkiSd90IIvTJDdu3ahTVr1mD37t1wdXVttl5iYiIcHBy0L6VS2ZpuEhEREVEnYFQg7dmzJ8zNzfVGQ7///nu9UdO77d69Gy+99BI+/vhjTJgw4Z51ly9fjsrKSu3rypUrxnSTiIiIiDoRowKplZUVRowYgcOHD+uUHz58GKNHj252vV27dmHWrFn4+9//jieffPK+21EoFLC3t9d5EREREVHXZNQ1pACwePFizJgxA4GBgQgKCsJf//pXFBcXY+7cuQAaRzdLSkrwwQcfAGgMo88//zySk5Px2GOPaUdXbWxs4ODgYMJdISIiIqLOyOhA+txzz+GHH35AQkICSktLMXjwYKSnp8PT0xMAUFpaqjMn6Y4dO3D79m3ExMQgJiZGWz5z5ky89957bd8DIiIiIurUjJ6HVA6ch5SIiIjowdZh85ASEREREZkaAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWVnI3QH6H40GyM4GSksBNzcgOBgwN5e7V0RERETtjoH0QaBWA7GxwNWrv5R5eADJyUBkpHz9IiIiIuoAPGUvN7UaiI7WDaMAUFLSWK5Wy9MvIiIiog7CQConjaZxZFQI/WVNZXFxjfWIiIiIuigGUjllZ+uPjN5JCODKlcZ6RERERF0UA6mcSktNW4+IiIioE2IglZObm2nrEREREXVCDKRyCg5uvJtekgwvlyRAqWysR0RERNRFMZDKydy8cWonQD+UNr3fupXzkRIREVGXxkAqt8hIIC0NcHfXLffwaCznPKRERETUxXFi/AdBZCQQEcEnNREREdFDiYH0QWFuDowfL3cviIiIiDocT9kTERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJykLuDrSEEAIAUFVVJXNPiIiIiMiQppzWlNuM0SkC6a1btwAASqVS5p4QERER0b3cunULDg4ORq0jidbE2A7W0NCA7777Dt27d4ckSUavX1VVBaVSiStXrsDe3r4dekhy4bHt2nh8uy4e266Nx7frutexFULg1q1b6NOnD8zMjLsqtFOMkJqZmcHDw6PN7djb2/MHo4vise3aeHy7Lh7bro3Ht+tq7tgaOzLahDc1EREREZGsGEiJiIiISFYPRSBVKBRYvXo1FAqF3F0hE+Ox7dp4fLsuHtuujce362qvY9spbmoiIiIioq7roRghJSIiIqIHFwMpEREREcmKgZSIiIiIZMVASkRERESy6jKBNCUlBV5eXrC2tsaIESOQnZ19z/pffPEFRowYAWtra6hUKrz55psd1FMyljHHVq1WIzQ0FC4uLrC3t0dQUBAyMjI6sLdkLGN/dpv861//goWFBR555JH27SC1mrHHtra2FitWrICnpycUCgX69++Pd955p4N6S8Yy9vh++OGHGDp0KLp16wY3Nze88MIL+OGHHzqot9RSWVlZCA8PR58+fSBJEvbu3XvfdUySqUQX8NFHHwlLS0uxc+dOkZeXJ2JjY4Wtra24fPmywfqXLl0S3bp1E7GxsSIvL0/s3LlTWFpairS0tA7uOd2Pscc2NjZWbNy4UZw4cUJcuHBBLF++XFhaWoqTJ092cM+pJYw9vk0qKiqESqUSEydOFEOHDu2YzpJRWnNsp06dKkaNGiUOHz4sCgsLxb///W/xr3/9qwN7TS1l7PHNzs4WZmZmIjk5WVy6dElkZ2cLf39/8fTTT3dwz+l+0tPTxYoVK8SePXsEAPHpp5/es76pMlWXCKQjR44Uc+fO1SkbOHCgWLZsmcH6S5cuFQMHDtQpe/nll8Vjjz3Wbn2k1jH22BoyaNAgsXbtWlN3jUygtcf3ueeeEytXrhSrV69mIH1AGXtsP/vsM+Hg4CB++OGHjugetZGxx/f1118XKpVKp+yNN94QHh4e7dZHaruWBFJTZapOf8q+rq4OX3/9NSZOnKhTPnHiRBw/ftzgOl9++aVe/bCwMPznP/9BfX19u/WVjNOaY3u3hoYG3Lp1C87Ozu3RRWqD1h7fd999FxcvXsTq1avbu4vUSq05tv/v//0/BAYGIikpCe7u7vD19cWSJUvw888/d0SXyQitOb6jR4/G1atXkZ6eDiEErl27hrS0NDz55JMd0WVqR6bKVBam7lhHu379OjQaDXr16qVT3qtXL5SVlRlcp6yszGD927dv4/r163Bzc2u3/lLLtebY3m3z5s2orq7Gs88+2x5dpDZozfH99ttvsWzZMmRnZ8PCotP/76vLas2xvXTpEo4dOwZra2t8+umnuH79OubNm4cbN27wOtIHTGuO7+jRo/Hhhx/iueeeQ01NDW7fvo2pU6di27ZtHdFlakemylSdfoS0iSRJOu+FEHpl96tvqJzkZ+yxbbJr1y6sWbMGu3fvhqura3t1j9qopcdXo9Fg2rRpWLt2LXx9fTuqe9QGxvzsNjQ0QJIkfPjhhxg5ciSmTJmCLVu24L333uMo6QPKmOObl5eHhQsXYtWqVfj6669x8OBBFBYWYu7cuR3RVWpnpshUnX6IoWfPnjA3N9f7q+z777/XS+xNevfubbC+hYUFevTo0W59JeO05tg22b17N1566SV88sknmDBhQnt2k1rJ2ON769Yt/Oc//8GpU6cwf/58AI0hRggBCwsLHDp0CE888USH9J3urTU/u25ubnB3d4eDg4O2zM/PD0IIXL16FT4+Pu3aZ2q51hzfxMREjBkzBq+++ioAICAgALa2tggODsb69et5ZrITM1Wm6vQjpFZWVhgxYgQOHz6sU3748GGMHj3a4DpBQUF69Q8dOoTAwEBYWlq2W1/JOK05tkDjyOisWbPw97//ndcnPcCMPb729vY4c+YMcnNzta+5c+diwIAByM3NxahRozqq63QfrfnZHTNmDL777jv8+OOP2rILFy7AzMwMHh4e7dpfMk5rju9PP/0EMzPdyGFubg7gl9E06pxMlqmMugXqAdU0/cTbb78t8vLyRFxcnLC1tRVFRUVCCCGWLVsmZsyYoa3fNEXBokWLRF5ennj77bc57dMDythj+/e//11YWFiI7du3i9LSUu2roqJCrl2gezD2+N6Nd9k/uIw9trdu3RIeHh4iOjpanD17VnzxxRfCx8dHzJ49W65doHsw9vi+++67wsLCQqSkpIiLFy+KY8eOicDAQDFy5Ei5doGacevWLXHq1Clx6tQpAUBs2bJFnDp1SjulV3tlqi4RSIUQYvv27cLT01NYWVmJ4cOHiy+++EK7bObMmWLcuHE69Y8ePSqGDRsmrKysRL9+/URqamoH95hayphjO27cOAFA7zVz5syO7zi1iLE/u3diIH2wGXts8/PzxYQJE4SNjY3w8PAQixcvFj/99FMH95paytjj+8Ybb4hBgwYJGxsb4ebmJn73u9+Jq1evdnCv6X4+//zze/4eba9MJQnBsXIiIiIikk+nv4aUiIiIiDo3BlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGT1/wENbUelHIcUSQAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 9 ---\n", - "Aktuelle Cluster: [[1], [5], [7], [8], [3, 6], [0, 2], [4, 9]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 3. 6. 0.13477076 2. ]\n", - " [ 0. 2. 0.14306129 2. ]\n", - " [ 1. 5. 0.18963685 2. ]\n", - " [ 9. 10. 0.32105694 3. ]\n", - " [ 4. 12. 0.35501172 3. ]\n", - " [11. 13. 0.37333899 5. ]\n", - " [ 8. 15. 0.68619926 6. ]\n", - " [14. 16. 0.92078621 9. ]\n", - " [ 7. 17. 1.06516792 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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GxcvXkRUVBTc3NwwbNgwHDx4UOf72bNnj953ExAQAODOPwMJCQk62zT3Rr2goCD85S9/wUcffYQffvgB8+bNQ2FhofbGprKyMgBo1s/67d8z0PBdG/r+DP1etyUXFxfs378fAPDQQw/ByckJc+bMwYYNGwAAHh4e7dofottxDimREVxcXGBjY9PknDoXFxed97fOJ230wQcfwNLSEnv37oW1tbW2vKnlWwy14erqisuXLxvRc+NNnDgREydORE1NDbKzs5GYmIhJkyahd+/eCA4ONmkfGr+3xYsXa+8Avt2d7gAODw/HP//5T+zevRuLFi1qUR+sra1RU1OjV3716lWd82phYYH58+dj/vz5KC8vx3//+1+8+uqrCA8Px6VLl+5441RjO2lpadoRzTsxdO6//fZbnDp1Cu+88w6mTp2qLc/Pz79re03ZvXs3qqqqoFardfqVk5PTrO0dHBwwdepUvPnmm1iwYAG2bduGSZMmwdHRUafe888/j+effx5VVVU4cuQIli9fjscffxzfffcdvLy84OLigsDAQKxZs8bgfnr27NlkH/785z/j8ccf175vDN3GsLS0xPLly/G///u/+PbbbwE0/K4BwOXLl6FUKo1usymGzm1b+8Mf/oDc3FwUFhaiqqoKvr6++PrrrwE0/COUSE4MpERGePzxx/G3v/0N3bp1g7e3d4vakCQJFhYWOpewf/31V/zrX/9qdhvjx4/Hv/71L5w7d67Nl2pRKBQYNWoUHB0dkZGRgZMnTyI4OBjjx4/HsmXLkJmZiUceeaRV++jbty98fX1x6tQp/O1vfzN6+4kTJ2LgwIFITEzE448/bvBO+4yMDO3dz4b07t1b78aO7777DufOndP7h0YjR0dHREdHo7i4GHFxcSgsLET//v2bHIUODw+HhYUFzp8/3+JLto1B5vbAtWXLlha111SbQghs3bq12W3MnTsXKSkpiI6ORnl5OWbPnt1kXVtbW4wfPx61tbV48skncebMGXh5eeHxxx9Heno6+vTpY3Cqy5307NnzjoH1diUlJQZHKRunPDS2NXbsWJibmyM1NRXBwcFG9ckUbv1Zun25t6ZGX++mcUUNIQTWr1+Pnj174qmnnmp1X4lag4GUyAhxcXHYuXMnHn74YcybNw+BgYGor69HUVERDhw4gPj4eAwbNuyObTz22GPYsGEDJk2a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1K4iI4G0tIa77W9d+snTsyGM8oprx6DOUyN2fywuV97y+E57TySPS0akP08iGYeBlIiI2l1kJDBxIpCVBZSUNMwZDQnhyGhHoc5TI/rDaAjc9vjOymJEfxiNtKfTGErJKAykREQkC3NzgFdcOx5NvQax+2P1wigACAhIkBC3Pw4T+05s8vJ9B1jgh5rQVueOd9kTERFRs2UVZelcpr+dgMClykvIKtJ/fKelpSUA4Jdffmmz/lHbajx3jefSVDhCSkRERM1WcqOZj+80UM/c3ByOjo748ccfAQBdunTRrh9K9zYhBH755Rf8+OOPcHR0NPmKBgykRERE1GzuXZv5+M4m6vXo0QMAtKGUOhZHR0ftOTQlBlIiIiJqtpBeIfC090RxZbHBeaQSJHjaeyKkl+HFZCVJgru7O9zc3FBXV9fW3SUTsrS0bLO1XhlIiYiIqNnMzcyRPC4Z0R9GQ4KkE0olNFx+3zhu413XIzU3N+dC9qTFm5qIiIjIKJH+kUh7Og0e9rc9vtPek0s+UYtIogOsvVBZWQkHBwdUVFTA3t5e7u4QERER5H1SE917WpPXeMmeiIiIWsTczByje4+WuxvUCfCSPRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkaxaFEhTUlLg7e0Na2trDBkyBFlZWc3a7rPPPoOFhQUeeOCBluyWiIiIiDohowPpjh07EBcXhyVLluDkyZMICQnB+PHjUVRUdMftKioq8Nxzz+HRRx9tcWeJiIiIqPORhBDCmA2GDRuGBx98EKmpqdoyf39/PPnkk0hMTGxyu//5n/+Br68vzM3NsXv3buTk5DR7n5WVlXBwcEBFRQXs7e2N6S4RERERtYPW5DWjRkhra2vx9ddfY+zYsTrlY8eOxbFjx5rcbtu2bTh//jyWL19uVOeIiIiIqPOzMKby1atXodFo0L17d53y7t27o7S01OA233//PRYtWoSsrCxYWDRvdzU1NaipqdG+r6ysNKabRERERNSBtOimJkmSdN4LIfTKAECj0WDSpElYuXIl/Pz8mt1+YmIiHBwctC+lUtmSbhIRERFRB2BUIHVxcYG5ubneaOiPP/6oN2oKADdu3MBXX32F2bNnw8LCAhYWFkhISMCpU6dgYWGBzMxMg/tZvHgxKioqtK9Lly4Z000iIiIi6kCMumRvZWWFIUOG4ODBg/jjH/+oLT948CAmTpyoV9/e3h6nT5/WKUtJSUFmZibS0tLg7e1tcD8KhQIKhcKYrhERERFRB2VUIAWA+fPnY8qUKQgKCkJwcDD++c9/oqioCDNnzgTQMLpZXFyM9957D2ZmZhgwYIDO9m5ubrC2ttYrJyIiIiLT0Gg0yMrKQklJCdzd3RESEgJzc3O5u9UkowPpM888g59++gkJCQkoKSnBgAEDkJ6eDi8vLwBASUnJXdckJSIiIqK2oVarERsbi8uXL2vLPD09kZycjMjISBl71jSj1yGVA9chJSIiIro7tVqN6Oho3B7vGm8+T0tLa7NQ2m7rkBIRERHRvUmj0SA2NlYvjALQlsXFxUGj0bR31+6KgZSIiIioE8jKytK5TH87IQQuXbqErKysduxV8zCQEhEREXUCJSUlJq3XnhhIiYiIiDoBd3d3k9ZrTwykRERERJ1ASEgIPD09DT49E2i4sUmpVCIkJKSde3Z3DKREREREnYC5uTmSk5MB6D/mvfH9xo0b78n1SBlIiYiIiDqJyMhIpKWlwcPDQ6fc09OzTZd8ai2uQ0pERETUycjxpKbW5DWjn9RERERERPc2c3NzjB49Wu5uNBsv2RMRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlm1KJCmpKTA29sb1tbWGDJkCLKyspqsq1arERYWBldXV9jb2yM4OBgZGRkt7jARERERdS5GB9IdO3YgLi4OS5YswcmTJxESEoLx48ejqKjIYP0jR44gLCwM6enp+PrrrxEaGoqIiAicPHmy1Z0nIiIioo5PEkIIYzYYNmwYHnzwQaSmpmrL/P398eSTTyIxMbFZbQQEBOCZZ57BsmXLmlW/srISDg4OqKiogL29vTHdJSIiIqJ20Jq8ZtQIaW1tLb7++muMHTtWp3zs2LE4duxYs9qor6/HjRs34OzsbMyuiYiIiKiTsjCm8tWrV6HRaNC9e3ed8u7du6O0tLRZbaxfvx5VVVV4+umnm6xTU1ODmpoa7fvKykpjuklEREREHUiLbmqSJEnnvRBCr8yQ7du3Y8WKFdixYwfc3NyarJeYmAgHBwftS6lUtqSbRERERNQBGBVIXVxcYG5urjca+uOPP+qNmt5ux44dePHFF/Hhhx9izJgxd6y7ePFiVFRUaF+XLl0ypptERERE1IEYFUitrKwwZMgQHDx4UKf84MGDGD58eJPbbd++HdOmTcO///1vPPbYY3fdj0KhgL29vc6LiIiIiDono+aQAsD8+fMxZcoUBAUFITg4GP/85z9RVFSEmTNnAmgY3SwuLsZ7770HoCGMPvfcc0hOTsZDDz2kHV21sbGBg4ODCQ+FiIiIiDoiowPpM888g59++gkJCQkoKSnBgAEDkJ6eDi8vLwBASUmJzpqkW7Zswc2bNxETE4OYmBht+dSpU/HOO++0/giIiIiIqEMzeh1SOXAdUiIiIqJ7W7utQ0pEREREZGoMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkZSF3B+g3Gg2QlQWUlADu7kBICGBuLneviIiIiNocA+m9QK0GYmOBy5d/L/P0BJKTgchI+fpFRERE1A54yV5uajUQHa0bRgGguLihXK2Wp19ERERE7YSBVE4aTcPIqBD6nzWWxcU11CMiIiLqpBhI5ZSVpT8yeishgEuXGuoRERERdVIMpHIqKTFtPSIiIqIOiIFUTu7upq1HRERE1AExkMopJKThbnpJMvy5JAFKZUM9IiIiok6KgVRO5uYNSzsB+qG08f3GjVyPlIiIiDo1BlK5RUYCaWmAh4duuadnQznXISUiIqJOjgvj3wsiI4GJE/mkJiIiIrovMZDeK8zNgdGj5e4FERERUbvjJXsiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZWcjdgeYQQgAAKisrZe4JERERERnSmNMac5sxOkQgvXHjBgBAqVTK3BMiIiIiupMbN27AwcHBqG0k0ZIY287q6+vxww8/oGvXrpAkyejtKysroVQqcenSJdjb27dBD0kuPLedG89v58Vz27nx/HZedzq3QgjcuHEDPXv2hJmZcbNCO8QIqZmZGTw9PVvdjr29PX8xOime286N57fz4rnt3Hh+O6+mzq2xI6ONeFMTEREREcmKgZSIiIiIZHVfBFKFQoHly5dDoVDI3RUyMZ7bzo3nt/Piue3ceH47r7Y6tx3ipiYiIiIi6rzuixFSIiIiIrp3MZASERERkawYSImIiIhIVgykRERERCSrThNIU1JS4O3tDWtrawwZMgRZWVl3rP/pp59iyJAhsLa2hkqlwhtvvNFOPSVjGXNu1Wo1wsLC4OrqCnt7ewQHByMjI6Mde0vGMvZ3t9Fnn30GCwsLPPDAA23bQWoxY89tTU0NlixZAi8vLygUCvTp0wdvv/12O/WWjGXs+X3//fcxaNAgdOnSBe7u7nj++efx008/tVNvqbmOHDmCiIgI9OzZE5IkYffu3XfdxiSZSnQCH3zwgbC0tBRbt24Vubm5IjY2Vtja2oqLFy8arH/hwgXRpUsXERsbK3Jzc8XWrVuFpaWlSEtLa+ee090Ye25jY2PF2rVrxfHjx8V3330nFi9eLCwtLcWJEyfauefUHMae30bl5eVCpVKJsWPHikGDBrVPZ8koLTm3TzzxhBg2bJg4ePCgKCgoEF988YX47LPP2rHX1FzGnt+srCxhZmYmkpOTxYULF0RWVpYICAgQTz75ZDv3nO4mPT1dLFmyROzcuVMAELt27bpjfVNlqk4RSIcOHSpmzpypU9avXz+xaNEig/UXLlwo+vXrp1P20ksviYceeqjN+kgtY+y5NaR///5i5cqVpu4amUBLz+8zzzwjli5dKpYvX85Aeo8y9tx+/PHHwsHBQfz000/t0T1qJWPP72uvvSZUKpVO2euvvy48PT3brI/Ues0JpKbKVB3+kn1tbS2+/vprjB07Vqd87NixOHbsmMFtPv/8c7364eHh+Oqrr1BXV9dmfSXjtOTc3q6+vh43btyAs7NzW3SRWqGl53fbtm04f/48li9f3tZdpBZqybn9v//7PwQFBSEpKQkeHh7w8/PDggUL8Ouvv7ZHl8kILTm/w4cPx+XLl5Geng4hBK5cuYK0tDQ89thj7dFlakOmylQWpu5Ye7t69So0Gg26d++uU969e3eUlpYa3Ka0tNRg/Zs3b+Lq1atwd3dvs/5S87Xk3N5u/fr1qKqqwtNPP90WXaRWaMn5/f7777Fo0SJkZWXBwqLD/++r02rJub1w4QKOHj0Ka2tr7Nq1C1evXsWsWbNw7do1ziO9x7Tk/A4fPhzvv/8+nnnmGVRXV+PmzZt44oknsGnTpvboMrUhU2WqDj9C2kiSJJ33Qgi9srvVN1RO8jP23Dbavn07VqxYgR07dsDNza2tuket1Nzzq9FoMGnSJKxcuRJ+fn7t1T1qBWN+d+vr6yFJEt5//30MHToUEyZMwIYNG/DOO+9wlPQeZcz5zc3Nxdy5c7Fs2TJ8/fXX2L9/PwoKCjBz5sz26Cq1MVNkqg4/xODi4gJzc3O9f5X9+OOPeom9UY8ePQzWt7CwQLdu3dqsr2SclpzbRjt27MCLL76Ijz76CGPGjGnLblILGXt+b9y4ga+++gonT57E7NmzATSEGCEELCwscODAATzyyCPt0ne6s5b87rq7u8PDwwMODg7aMn9/fwghcPnyZfj6+rZpn6n5WnJ+ExMTMWLECLzyyisAgMDAQNja2iIkJASrV6/mlckOzFSZqsOPkFpZWWHIkCE4ePCgTvnBgwcxfPhwg9sEBwfr1T9w4ACCgoJgaWnZZn0l47Tk3AINI6PTpk3Dv//9b85PuocZe37t7e1x+vRp5OTkaF8zZ85E3759kZOTg2HDhrVX1+kuWvK7O2LECPzwww/4+eeftWXfffcdzMzM4Onp2ab9JeO05Pz+8ssvMDPTjRzm5uYAfh9No47JZJnKqFug7lGNy0+89dZbIjc3V8TFxQlbW1tRWFgohBBi0aJFYsqUKdr6jUsUzJs3T+Tm5oq33nqLyz7do4w9t//+97+FhYWF2Lx5sygpKdG+ysvL5ToEugNjz+/teJf9vcvYc3vjxg3h6ekpoqOjxZkzZ8Snn34qfH19xfTp0+U6BLoDY8/vtm3bhIWFhUhJSRHnz58XR48eFUFBQWLo0KFyHQI14caNG+LkyZPi5MmTAoDYsGGDOHnypHZJr7bKVJ0ikAohxObNm4WXl5ewsrISDz74oPj000+1n02dOlWMGjVKp/7hw4fF4MGDhZWVlejdu7dITU1t5x5TcxlzbkeNGiUA6L2mTp3a/h2nZjH2d/dWDKT3NmPPbV5enhgzZoywsbERnp6eYv78+eKXX35p515Tcxl7fl9//XXRv39/YWNjI9zd3cWzzz4rLl++3M69prv55JNP7vj3aFtlKkkIjpUTERERkXw6/BxSIiIiIurYGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpLV/wfxKkZnaGboZgAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 10 ---\n", - "Finale Cluster: [[1], [5], [7], [8], [3, 6], [0, 2], [4, 9]]\n" - ] - }, - { - "data": { - "image/png": "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uni7vHxp+vTpSklJ0TPPPKPq1avr2LFjmjx5su677z4tX75cDz74oLdLzHc2b96sJk2aqEGDBnr//fdljNGrr76q5s2ba9WqVYqJifF2ifnSqVOnFBkZqc6dO6tMmTI6d+6cPvzwQz3xxBPas2ePRo0a5e0S86WPPvpITzzxhDp27Ki5c+eqSJEi2rVrlw4ePOjt0jxncEusXr3aSDKjRo3ydikFQps2bUzbtm1Nt27dTOHChb1dTr6VlZVlsrKyjDHGHDt2zEgyY8aM8W5R+dyqVauMJPPpp596u5QCY+TIkUaS+f33313an3zySSPJnDhxwkuV5W//+c9/jCTz0UcfubS3aNHCREREmIyMDC9Vlr8dOXIkR9uZM2dMeHi4ad68uRcqyv9atmxpwsPDzblz55xtqampJjQ01DRq1MiLlRVMDRs2NJGRkd4uI1/av3+/KVy4sHnqqae8XcotwaVrt8isWbPkcDjUs2dPb5eS733wwQdas2aNpk2b5u1S8r3sS66A28nf31+SFBIS4tJevHhx+fj4KCAgwBtl5XuLFi1SkSJF9Pjjj7u09+jRQwcPHtR///tfL1WWv4WFheVoK1KkiKpXr659+/Z5oaL8b926dWratKkKFSrkbCtatKiaNGmi9evX69ChQ16sruAJDQ2Vnx8XNbkzc+ZMnTt3Ts8//7y3S7klCDq3wOnTp7VgwQI1b95c0dHR3i4nXzt69KgGDhyoV155RWXLlvV2ObDY008/LT8/PxUrVkwtW7bUt99+6+2S8q1u3bqpePHieuqpp/THH3/ozJkz+vzzz/XOO+/o6aefVuHChb1dYr70448/qlq1ajk+MNWqVcv5PHLn9OnT+u677/SXv/zF26XkSxcvXlRgYGCO9uy27du3/9klFShZWVnKyMjQsWPHNG3aNC1fvtyaD/K32jfffKMSJUro559/Vp06deTn56ewsDD17dtXqamp3i7PYwSdW2DevHlKS0tTr169vF1KvpeQkKAqVaroqaee8nYpsFRISIieeeYZvfPOO1q1apVef/117du3T02bNtXy5cu9XV6+VL58eW3YsEE//vijKlasqGLFiqlt27bq1q2bXn/9dW+Xl2+lpKSoRIkSOdqz21JSUv7skgqsp59+WufOndPIkSO9XUq+VL16dW3cuFFZWVnOtoyMDOdZQ46160tISJC/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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "from scipy.cluster.hierarchy import linkage, dendrogram\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "import pandas as pd\n", - "\n", - "# Beispiel Daten - hier können Sie Ihre eigenen Daten eingeben\n", - "np.random.seed(0)\n", - "num_points = 10 # Anzahl der Datenpunkte\n", - "num_dimensions = 2 # Anzahl der Dimensionen der Datenpunkte\n", - "X = np.random.random_sample([num_points, num_dimensions])\n", - "\n", - "# Initialisierung: Jeder Datenpunkt ist ein Cluster\n", - "clusters = [[i] for i in range(X.shape[0])]\n", - "\n", - "# Schleife für jeden Schritt der hierarchischen Clusteranalyse\n", - "for step in range(X.shape[0] - 1):\n", - " print(f\"\\n--- Schritt {step + 1} ---\")\n", - " print(\"Aktuelle Cluster:\", clusters)\n", - "\n", - " # Berechnung der Abstandsmatrix mit Ward-Methode\n", - " linkage_matrix = linkage(X, 'ward')\n", - "\n", - " # Ausgabe der Abstandsmatrix\n", - " print(\"Abstandsmatrix nach Linkage:\")\n", - " print(linkage_matrix)\n", - "\n", - " # Tabelle mit den Abständen zwischen den Clustern erstellen\n", - " distances = []\n", - " for i in range(len(linkage_matrix)):\n", - " cluster1, cluster2, distance, _ = linkage_matrix[i]\n", - " cluster1, cluster2 = int(cluster1), int(cluster2) # Konvertiere zu ganzzahligen Indizes\n", - " if cluster1 < len(clusters) and cluster2 < len(clusters):\n", - " distances.append([cluster1, cluster2, distance, len(clusters[cluster1]), len(clusters[cluster2])])\n", - "\n", - " # Tabelle als DataFrame erstellen und ausgeben\n", - " #columns = ['Cluster 1', 'Cluster 2', 'Abstand', 'Größe Cluster 1', 'Größe Cluster 2']\n", - " #distance_table = pd.DataFrame(distances, columns=columns)\n", - " #print(\"Tabelle mit Abständen zwischen Clustern:\")\n", - " #print(distance_table)\n", - "\n", - " # Streudiagramm zeichnen\n", - " colors = ['b', 'g', 'r', 'c', 'm', 'y', 'k']\n", - " plt.figure(figsize=(8, 6))\n", - " for idx, cluster in enumerate(clusters):\n", - " for point_idx in cluster:\n", - " plt.scatter(X[point_idx, 0], X[point_idx, 1], color=colors[idx % len(colors)], label=f'Cluster {idx}')\n", - " plt.title('Hierarchische Clusteranalyse - Schritt {}'.format(step + 1))\n", - " plt.legend()\n", - " plt.show()\n", - "\n", - " # Wenn nur noch ein Cluster übrig ist, breche die Schleife ab\n", - " if len(clusters) == 1:\n", - " break\n", - "\n", - " # Identifiziere die beiden nächsten Cluster\n", - " cluster1, cluster2 = int(linkage_matrix[step][0]), int(linkage_matrix[step][1])\n", - "\n", - " # Überprüfe, ob die Cluster existieren, bevor sie zusammengeführt werden\n", - " if cluster1 < len(clusters) and cluster2 < len(clusters):\n", - " new_cluster = clusters[cluster1] + clusters[cluster2]\n", - " del clusters[max(cluster1, cluster2)]\n", - " del clusters[min(cluster1, cluster2)]\n", - " clusters.append(new_cluster)\n", - "\n", - "# Ausgabe des finalen Clusters\n", - "print(f\"\\n--- Schritt {X.shape[0]} ---\")\n", - "print(\"Finale Cluster:\", clusters)\n", - "\n", - "# Dendrogramm erstellen und anzeigen\n", - "plt.figure(figsize=(10, 7))\n", - "plt.title('Hierarchische Clusteranalyse - Methode: Ward')\n", - "dendrogram(linkage_matrix)\n", - "plt.show()\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "1334f577", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 1 ---\n", - "Aktuelle Cluster: [[0], [1], [2], [3], [4], [5], [6], [7], [8], [9]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 2. 6. 0.54664466 2. ]\n", - " [ 3. 5. 0.5524637 2. ]\n", - " [ 7. 9. 0.56261506 2. ]\n", - " [ 0. 4. 1.14694608 2. ]\n", - " [ 1. 10. 1.18606925 3. ]\n", - " [12. 14. 1.42401155 5. ]\n", - " [11. 13. 2.15864694 4. ]\n", - " [ 8. 16. 3.73691206 5. ]\n", - " [15. 17. 4.64006144 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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IqK7MawSERERkcFiWCUiIiIig8WwSkREREQGi2GViIiIiAwWwyoRERERGSyGVSIiIiIyWAyrRERERGSwGFaJiIiIyGAxrBIRERGRwerT0wXoWuvTY2tra3u4EiIiIiLSpjWntea29vS6sPrjjz8CAKRSaQ9XQkRERETt+fHHH2FjY9NuH0HsSKR9iDQ3N+P69euwsrKCIAg9Xc4jrba2FlKpFFevXoW1tXVPl0PdjJ//o4uf/aONn/+jqzOfvSiK+PHHHzFgwAAYGbU/KrXXXVk1MjKCm5tbT5dBd7G2tub/YT3C+Pk/uvjZP9r4+T+6OvrZ3++KaiveYEVEREREBothlYiIiIgMFsMq6Y1EIsGaNWsgkUh6uhTqAfz8H1387B9t/PwfXfr67HvdDVZERERE1HvwyioRERERGSyGVSIiIiIyWAyrRERERGSwGFaJiIiIyGAxrJLelZaW4o033oBMJoO5uTkee+wxrFmzBo2NjT1dGnWTTZs2Ydy4cejbty9sbW17uhzSs4SEBMhkMpiZmWH06NHIzs7u6ZKoG2RlZSEkJAQDBgyAIAg4cOBAT5dE3SQmJgZPPPEErKys4OTkhBdffBFFRUU62z/DKuldYWEhmpubsXv3bpw/fx5//vOfsWvXLrz99ts9XRp1k8bGRrz00kt46623eroU0rNPP/0UkZGReOedd3DmzBkEBARgypQpKCsr6+nSSM/q6urg6+uL9957r6dLoW721VdfISIiAjk5OTh69Cju3LmDSZMmoa6uTif759RV1CPeffddJCYm4vLlyz1dCnWjjz/+GJGRkaiuru7pUkhPxo4di1GjRiExMVHV5uXlhRdffBExMTE9WBl1J0EQ8MUXX+DFF1/s6VKoB1RVVcHJyQlfffUVnn766QfeH6+sUo+oqamBvb19T5dBRDrU2NiI//znP5g0aZJa+6RJk/D111/3UFVE1N1qamoAQGd/zzOsUre7dOkSdu7cifnz5/d0KUSkQzdv3oRSqYSzs7Nau7OzMyorK3uoKiLqTqIoIioqCk899RSGDx+uk30yrFKXrV27FoIgtLucPn1abZvr169j8uTJeOmllzB37tweqpx0oSufPz0aBEFQey2KokYbEfVOCxcuxLfffov9+/frbJ99dLYneuQsXLgQr776art9Bg8erPrf169fR2BgIPz9/fH+++/ruTrSt85+/tT7OTg4wNjYWOMq6o0bNzSuthJR77No0SL885//RFZWFtzc3HS2X4ZV6jIHBwc4ODh0qG95eTkCAwMxevRo7N27F0ZGvKj/sOvM50+PBlNTU4wePRpHjx7Fr371K1X70aNHMX369B6sjIj0SRRFLFq0CF988QUyMzMhk8l0un+GVdK769evY+LEiRg4cCDi4uJQVVWlWte/f/8erIy6S1lZGW7duoWysjIolUrk5eUBANzd3WFpadmzxZFORUVFYdasWfDz81P9ilJWVsYx6o+A27dvo7i4WPW6pKQEeXl5sLe3x8CBA3uwMtK3iIgI/O1vf8M//vEPWFlZqX5dsbGxgbm5+QPvn1NXkd59/PHH+M1vfqN1Hb9+j4Y5c+YgKSlJo/348eOYOHFi9xdEepWQkIDY2FhUVFRg+PDh+POf/6yT6WvIsGVmZiIwMFCjffbs2fj444+7vyDqNm2NSd+7dy/mzJnz4PtnWCUiIiIiQ8WBg0RERERksBhWiYiIiMhgMawSERERkcFiWCUiIiIig8WwSkREREQGi2GViIiIiAwWwyoRERERGSyGVSIiIiIyWAyrRERERGSwGFaJiIiIyGAxrBIRERGRwWJYJSIiIiKD9f8BLy06DEM9ug0AAAAASUVORK5CYII=\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 2 ---\n", - "Aktuelle Cluster: [[0], [1], [3], [4], [5], [7], [8], [9], [2, 6]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 2. 6. 0.54664466 2. ]\n", - " [ 3. 5. 0.5524637 2. ]\n", - " [ 7. 9. 0.56261506 2. ]\n", - " [ 0. 4. 1.14694608 2. ]\n", - " [ 1. 10. 1.18606925 3. ]\n", - " [12. 14. 1.42401155 5. ]\n", - " [11. 13. 2.15864694 4. ]\n", - " [ 8. 16. 3.73691206 5. ]\n", - " [15. 17. 4.64006144 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 3 ---\n", - "Aktuelle Cluster: [[0], [1], [3], [5], [8], [9], [2, 6], [4, 7]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 2. 6. 0.54664466 2. ]\n", - " [ 3. 5. 0.5524637 2. ]\n", - " [ 7. 9. 0.56261506 2. ]\n", - " [ 0. 4. 1.14694608 2. ]\n", - " [ 1. 10. 1.18606925 3. ]\n", - " [12. 14. 1.42401155 5. ]\n", - " [11. 13. 2.15864694 4. ]\n", - " [ 8. 16. 3.73691206 5. ]\n", - " [15. 17. 4.64006144 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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rBIRkS6VCliwALh69dc2d3dgyxYgIqL76iKiB45RH7dKRET3IZUKiIrSDqoAUFbW3K5SdU9dRPRAYlglIqJfqdXNV1T13c7Q0hYT09yPiKgLMKwSEdGvsrJ0r6jeThSBK1ea+xERdQGGVSIi+lV5uWH7ERHdI4ZVIiL6VXufGMgnCxJRF2FYJSKiXwUFNd/1Lwj61wsCIJc39yMi6gIMq0RE9CsTk+bpqQDdwNryevNmzrdKRF2GYZWIiLRFRADJyYCbm3a7u3tzO+dZJaIuxIcCEBGRrogIYPJkPsFKD7UoIquqCuUNDXA1M0OQnR1MWhs2QUT3jGGViIj0MzEBxo7t7iokRVVZiQVFRbhaX69pc5fJsMXTExFOTt1YGVHPxWEARERE7aCqrETU+fNaQRUAyurrEXX+PFSVld1UGVHPxrBKRER0F2pRxIKiIuh5rpemLaaoCGp9T/4ionvCsEpERHQXWVVVOldUbycCuFJfj6yqqi6riehBwbBKRER0F+UNDQbtR0Ttx7BKRER0F65mZgbtR0Ttx7BKRER0F0F2dnCXydDaBFUCALlMhiA7uy6siujBwLBKRER0FyaCgC2engCgE1hbXm/29OR8q0RGwLBKRETUDhFOTkj29YWbTKbV7i6TIdnXl/OsEhkJHwpARETUThFOTpjs6MgnWBF1IYZVIiKiDjARBIy1t+/uMogeGBwGQERERESSxbBKRERERJLFsEpEREREksWwSkRERESSxbBKRERERJLFsEpEREREksWwSkRERESSxbBKRERERJLFsEpEREREksWwSkRERESSxbBKRERERJLFsEpEREREksWwSkRERESSxbBKRERERJLFsEpEREREksWwSkRERESSxbBKRERERJLFsEpEREREksWwSkRERESSxbBKRERERJLFsEpEREREksWwSkRERESSxbBKRERERJLFsEpEREREksWwSkRERESSxbBKRERERJLFsEpEREREksWwSkRERESSxbBKRERERJLFsEpEREREksWwSkRERESSxbBKRERERJJl9LCamJgIhUIBc3NzjBgxAllZWW32P3HiBEaMGAFzc3MolUrs2LHD2CUSERERkUQZNax+/PHHiImJwVtvvYUzZ84gKCgIEyZMQGlpqd7+xcXFmDhxIoKCgnDmzBm8+eabmD9/PlJSUoxZJhERERFJlCCKomisnY8aNQqPPPIIkpKSNG0+Pj547rnnEBcXp9P/D3/4Az777DPk5+dr2mbPno2zZ8/i5MmT7TpmTU0NbG1tUV1dDRsbm3s/CSIiIiIyqI7kNaNdWW1oaMB//vMfjBs3Tqt93Lhx+Oqrr/Ruc/LkSZ3+YWFhOH36NBobG41VKhERERFJVG9j7fj69etQq9VwcXHRandxcUFFRYXebSoqKvT2v3XrFq5fvw5XV1edberr61FfX695XVNTY4DqiYiIiEgKjH6DlSAIWq9FUdRpu1t/fe0t4uLiYGtrq1nkcvk9VkxEREREUmG0sOro6AgTExOdq6jXrl3TuXraol+/fnr79+7dG3379tW7zbJly1BdXa1Zrly5YpgTICIiIqJuZ7SwamZmhhEjRuDYsWNa7ceOHcPo0aP1bhMYGKjT/+jRowgICICpqanebWQyGWxsbLQWIiIiIuoZjDoMYNGiRXj//ffxwQcfID8/HwsXLkRpaSlmz54NoPmq6EsvvaTpP3v2bFy+fBmLFi1Cfn4+PvjgA+zevRuLFy82ZplEREREJFFGu8EKAF544QX88MMPWLNmDcrLyzF06FAcPnwYHh4eAIDy8nKtOVcVCgUOHz6MhQsXYvv27ejfvz+2bt2KyMhIY5ZJRERERBJl1HlWuwPnWSUiIiKSNknMs0pEREREdK8YVomIiIhIshhWiYiIiEiyGFaJiIiISLIYVomIiIhIshhWiYiIiEiyGFaJiIiISLIYVomIiIhIsoz6BCsiIiLqWdRqNbKyslBeXg5XV1cEBQXBxMSku8uiHoxhlYiIiNpFpVJhwYIFuHr1qqbN3d0dW7ZsQURERDdWRj0ZhwEQERHRXalUKkRFRWkFVQAoKytDVFQUVCpVN1VGPR3DKhEREbVJrVZjwYIFEEVRZ11LW0xMDNRqdVeXRg8AhlUiIiJqU1ZWls4V1duJoogrV64gKyurC6uiBwXDKhEREbWpvLzcoP2IOoJhlYiIiNrk6upq0H5EHcGwSkRERG0KCgqCu7s7BEHQu14QBMjlcgQFBXVxZfQgYFglIiKiNpmYmGDLli0AoBNYW15v3rz5gZ5vVa1WIyMjA/v27UNGRgZvNjMghlUiIiK6q4iICCQnJ8PNzU2r3d3dHcnJyQ/0PKsqlQoDBw5ESEgIpkyZgpCQEAwcOJDTeRmIIOqbh+I+VlNTA1tbW1RXV8PGxqa7yyEiIupR+AQrbS3zz94Zp1quOD/oQb41HclrDKtEREREnaBWqzFw4MBWp/USBAHu7u4oLi5+oAO9Ph3JaxwGQERERNQJnH+2azCsEhEREXUC55/tGgyrRERERJ3A+We7BsMqERERUSdw/tmuwbBKRERE1Amcf7ZrMKwSERERdRLnnzU+Tl1FREREdI84/2zHdCSv9e6imoiIiIh6LBMTE4wdO7a7y+iROAyAiIiIiCSLYZWIiIiIJIthlYiIiIgki2GViIiIiCSLYZWIiIiIJIthlYiIiIgki2GViIiIiCSLYZWIiIiIJIthlYiIiIgki2GViIiIiCSLYZWIiIiIJIthlYiIiIgki2GViIiIiCSLYZWIiIiIJIthlYiIiIgki2GViIiIiCSLYZWIiIiIJIthlYiIiIgki2GViIiIiCSLYZWIiIiIJIthlYiIiIgki2GViIiIiCSLYZWIiIiIJIthlYiIiIgki2GViIiIiCSLYZWIiIiIJIthlYiIiIgky6hh9ccff8S0adNga2sLW1tbTJs2DVVVVW1uM2PGDAiCoLU89thjxiyTiIiIiCSqtzF3PmXKFFy9ehVHjhwBALz66quYNm0aDh482OZ248ePx549ezSvzczMjFkmEREREUmU0cJqfn4+jhw5guzsbIwaNQoAsGvXLgQGBqKwsBDe3t6tbiuTydCvXz9jlUZERERE9wmjDQM4efIkbG1tNUEVAB577DHY2triq6++anPbjIwMODs7Y9CgQZg1axauXbvWat/6+nrU1NRoLURERETUMxgtrFZUVMDZ2Vmn3dnZGRUVFa1uN2HCBPztb39Deno6Nm7ciK+//hpPPvkk6uvr9faPi4vTjIm1tbWFXC432DkQERERUffqcFhdtWqVzg1Qdy6nT58GAAiCoLO9KIp621u88MILeOaZZzB06FCEh4fj888/x4ULF5Camqq3/7Jly1BdXa1Zrly50tFTIiIiIiKJ6vCY1blz5+LFF19ss8/AgQPxzTff4Pvvv9dZV1lZCRcXl3Yfz9XVFR4eHvj222/1rpfJZJDJZO3eHxERERHdPzocVh0dHeHo6HjXfoGBgaiursapU6cwcuRIAMC///1vVFdXY/To0e0+3g8//IArV67A1dW1o6USERER0X3OaGNWfXx8MH78eMyaNQvZ2dnI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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 4 ---\n", - "Aktuelle Cluster: [[0], [1], [3], [5], [8], [9], [2, 6], [4, 7]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 2. 6. 0.54664466 2. ]\n", - " [ 3. 5. 0.5524637 2. ]\n", - " [ 7. 9. 0.56261506 2. ]\n", - " [ 0. 4. 1.14694608 2. ]\n", - " [ 1. 10. 1.18606925 3. ]\n", - " [12. 14. 1.42401155 5. ]\n", - " [11. 13. 2.15864694 4. ]\n", - " [ 8. 16. 3.73691206 5. ]\n", - " [15. 17. 4.64006144 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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UdEdt/v8888xevRomJubQ6lUYufOncYsk4iIiIgkyqhh9fPPP0dUVBRycnJw7Ngx3Lx5ExMnTtQ7lUOrkpISTJkyBYGBgTh16hRee+01LFq0CKmpqcYslYiIiIgkyKjDAI4cOaL1eu/evXB2dsZ///tfPPbYY3q32blzJwYNGoStW7cCALy9vfH1118jISEBERERxiyXiIiIiCSmW6euqqmpAfDr82v1OXHiBCZOnKjVFhoaiq+//lrnSQ5ERERE1Lt12w1WoigiJiYGjz76KEaMGNFmv8rKSri4uGi1ubi44ObNm7h27RpcXbWfNNHQ0ICGhgbN69raWsMWTkREREQ9ptuurC5YsADffPMN9u/ff8e+gqA9eW/rVLC3twMtN3HZ2tpqlnvp8WFERERE1L5uCasLFy7EJ598gs8++wzu7u7t9h0wYAAqKyu12q5evYq+ffuif//+Ov1XrFiBmpoazXL58mWD1k5EREREPceoYVUURSxYsAAqlQoZGRkderRXQEAAjh07ptV29OhR+Pv7w9TUVKe/TCaDjY2N1kJEREQkdYIg4MCBAz1dhuQZNaxGRUXhb3/7G/7xj3/A2toalZWVqKysxC+//KLps2LFCrzwwgua1/PmzcOlS5cQExODgoICvPvuu9izZw+WLl1qzFKJiIiIDKayshILFy6EUqmETCaDXC5HWFgYjh8/bpTjZWZmQhAEVFdXG2X/paWleOmll6BQKGBhYYEHHngAq1evRmNjo1GOdyuj3mCVnJwMAJgwYYJW+969ezF79mwAQEVFBcrKyjTrFAoFDh8+jCVLliAxMREDBw7E9u3bOW0VERERdY1aDWRnAxUVgKsrEBgImBjvcaulpaUYP3487OzsEB8fD19fXzQ1NSE9PR1RUVEoLCw02rHvliiKUKvV6NtXOyIWFhaiubkZu3btgoeHB7799lvMnTsXdXV1SEhIMHpRvUpNTY0IQKypqenpUoiIiOgu/PLLL2J+fr74yy+/dH0nqami6O4uisCvi7t7S7uRTJ48WXRzcxNv3Lihs+7HH3/U/G8A4scffyyKoih+9tlnIgCt9adOnRIBiCUlJaIoimJpaak4depU0c7OTuzXr584fPhwMS0tTSwpKREBaC2zZs0SRVEUm5ubxU2bNokKhUI0NzcXfX19xY8++khzjNbjHjlyRBw9erRoamoq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rUQRuHy5pR8RUTdgWCUiol9VVBi2HxHRXWJYJSKiX3X0iYF8siARdROGVSIi+lVgYMtd/4Kgf70gAHJ5Sz8iom7AsEpERL8yMWmZngrQDaytr7du5XyrRNRtGFaJiEhbeDiQkgK4uWm3u7u3tHOeVSLqRnwoABER6QoPB6ZN4xOs9FCLIrKrq1HR2AhXMzME2tnBpK1hE0R01xhWiYhIPxMTYMKEnq5CUlRVVVhcXIwrDQ2aNneZDNs8PBDu5NSDlRH1XhwGQERE1AGqqipEnj2rFVQBoLyhAZFnz0JVVdVDlRH1bgyrREREd6AWRSwuLoae53pp2qKLi6HW9+QvIrorDKtERER3kF1drXNF9VYigMsNDciuru62mojuFwyrREREd1DR2GjQfkTUcQyrREREd+BqZmbQfkTUcQyrREREdxBoZwd3mQxtTVAlAJDLZAi0s+vGqojuDwyrREREd2AiCNjm4QEAOoG19fVWDw/Ot0pkBAyrREREHRDu5IQUHx+4yWRa7e4yGVJ8fDjPKpGR8KEAREREHRTu5IRpjo58ghVRN2JYJSIi6gQTQcAEe/ueLoPovsFhAEREREQkWQyrRERERCRZDKtEREREJFkMq0REREQkWQyrRERERCRZDKtEREREJFkMq0REREQkWQyrRERERCRZDKtEREREJFkMq0REREQkWQyrRERERCRZDKtEREREJFkMq0REREQkWQyrRERERCRZDKtEREREJFkMq0REREQkWQyrRERERCRZDKtEREREJFkMq0REREQkWQyrRERERCRZDKtEREREJFkMq0REREQkWQyrRERERCRZDKtEREREJFkMq0REREQkWQyrRERERCRZDKtEREREJFkMq0REREQkWQyrRERERCRZDKtEREREJFkMq0REREQkWQyrRERERCRZRg+rSUlJUCgUMDc3x+jRo5Gdnd1u/88//xyjR4+Gubk5lEoldu7caewSiYiIiEiijBpWP/jgA0RHR+P111/HqVOnEBgYiMmTJ6OsrExv/5KSEkyZMgWBgYE4deoUXnvtNSxatAipqanGLJOIiIiIJEoQRVE01s7Hjh2Lhx56CMnJyZo2b29vPPPMM4iLi9Pp/+qrr+KTTz5BQUGBpm3evHk4ffo0Tpw40aFj1tbWwtbWFjU1NbCxsbn7kyAiIiIig+pMXjPaldXGxkb897//xcSJE7XaJ06ciC+//FLvNidOnNDpHxoaiq+//hpNTU3GKpWIiIiIJKqvsXZ87do1qNVquLi4aLW7uLigsrJS7zaVlZV6+9+8eRPXrl2Dq6urzjYNDQ1oaGjQvK6trTVA9UREREQkBUa/wUoQBK3XoijqtN2pv772VnFxcbC1tdUscrn8LismIiIiIqkwWlh1dHSEiYmJzlXUq1ev6lw9bTVgwAC9/fv27Yv+/fvr3WbFihWoqanRLJcvXzbMCRARERFRjzNaWDUzM8Po0aNx7NgxrfZjx45h3LhxercJCAjQ6X/06FH4+/vD1NRU7zYymQw2NjZaCxERERH1DkYdBhATE4N33nkH7777LgoKCrBkyRKUlZVh3rx5AFquir7wwgua/vPmzcOlS5cQExODgoICvPvuu9izZw+WLl1qzDKJiIiISKKMdoMVADz33HP44YcfsG7dOlRUVGDEiBE4fPgwBg8eDACoqKjQmnNVoVDg8OHDWLJkCRITEzFw4EBs374dERERxiyTiIiIiCTKqPOs9gTOs0pEREQkbZKYZ5WIiIiI6G4xrBIRERGRZDGsEhEREZFkMawSERERkWQxrBIRERGRZDGsEhEREZFkMawSERERkWQxrBIRERGRZBn1CVZERETUu6jVamRnZ6OiogKurq4IDAyEiYlJT5dFvRjDKhEREXWISqXC4sWLceXKFU2bu7s7tm3bhvDw8B6sjHozDgMgIiKiO1KpVIiMjNQKqgBQXl6OyMhIqFSqHqqMejuGVSIiImqXWq3G4sWLIYqizrrWtujoaKjV6u4uje4DDKtERETUruzsbJ0rqrcSRRGXL19GdnZ2N1ZF9wuGVSIiImpXRUWFQfsRdQbDKhEREbXL1dXVoP2IOoNhlYiIiNoVGBgId3d3CIKgd70gCJDL5QgMDOzmyuh+wLBKRERE7TIxMcG2bdsAQCewtr7eunXrfT3fqlqtRmZmJvbv34/MzEzebGZADKtERER0R+Hh4UhJSYGbm5tWu7u7O1JSUu7reVZVKhWGDBmC4OBgTJ8+HcHBwRgyZAin8zIQQdQ3D8U9rLa2Fra2tqipqYGNjU1Pl0NERNSr8AlW2lrnn709TrVecb7fg3xbOpPXGFaJiIiIukCtVmPIkCFtTuslCALc3d1RUlJyXwd6fTqT1zgMgIiIiKgLOP9s92BYJSIiIuoCzj/bPRhWiYiIiLqA8892D4ZVIiIioi7g/LPdg2GViIiIqAs4/2z3YFglIiIi6iLOP2t8nLqKiIiI6C5x/tnO6Uxe69tNNRERERH1WiYmJpgwYUJPl9ErcRgAEREREUkWwyoRERERSRbDKhERERFJFsMqEREREUkWwyoRERERSRbDKhERERFJFsMqEREREUkWwyoRERERSRbDKhERERFJFsMqEREREUkWwyoRERERSRbDKhERERFJFsMqEREREUkWwyoRERERSRbDKhERERFJFsMqEREREUkWwyoRERERSRbDKhERERFJFsMqEREREUkWwyoRERERSRbDKhERERFJFsMqEREREUkWwyoRERERSRbDKhERERFJFsMqEREREUkWwyoRERERSRbDKhERERFJllHD6o8//oiZM2fC1tYWtra2mDlzJqqrq9vdZvbs2RAEQWt55JFHjFkmEREREUlUX2PufPr06bhy5QqOHDkCAPjDH/6AmTNn4uDBg+1uN2nSJOzdu1fz2szMzJhlEhEREZFEGS2sFhQU4MiRI8jJycHYsWMBALt370ZAQACKiorg5eXV5rYymQwDBgwwVmlEREREdI8w2jCAEydOwNbWVhNUAeCRRx6Bra0tvvzyy3a3zczMhLOzM4YOHYq5c+fi6tWrbfZtaGhAbW2t1kJEREREvYPRwmplZSWcnZ112p2dnVFZWdnmdpMnT8bf//53ZGRkYPPmzfjqq6/w+OOPo6GhQW//uLg4zZhYW1tbyOVyg50DEREREfWsTofVNWvW6NwAdfvy9ddfAwAEQdDZXhRFve2tnnvuOTz11FMYMWIEwsLC8Omnn+LcuXNIS0vT23/FihWoqanRLJcvX+7sKRERERGRRHV6zOqCBQvw/PPPt9tnyJAh+Oabb/D999/rrKuqqoKLi0uHj+fq6orBgwfj/PnzetfLZDLIZLIO74+IiIiI7h2dDquOjo5wdHS8Y7+AgADU1NTg5MmTGDNmDADgP//5D2pqajBu3LgOH++HH37A5cuX4erq2tlSiYiIiOgeZ7Qxq97e3pg0aRLmzp2LnJwc5OTkYO7cuZg6darWTADDhg3Dxx9/DAC4ceMGli5dihMnTqC0tBSZmZkICwuDo6MjfvOb3xirVCIiIiKSKKM+FODvf/87Ro4ciYkTJ2LixInw9fXFX//6V60+RUVFqKmpAQCYmJjgzJkzmDZtGoYOHYpZs2Zh6NChOHHiBKytrY1ZKhERERFJkCCKotjTRRhSbW0tbG1tUVNTAxsbm54uh4iIiIhu05m8ZtQrq0REREREd4NhlYiIiIgki2GViIiIiCSLYZWIiIiIJIthlYiIiIgki2GViIiIiCSLYZWIiIiIJIthlYiIiIgki2GViIiIiCSLYZWIiIiIJIthlYiIiIgki2GViIiIiCSLYZWIiIiIJIthlYiIiIgki2GViIiIiCSLYZWIiIiIJIthlYiIiIgki2GViIiIiCSLYZWIiIiIJIthlYiIiIgkq29PF0BEREQ9SxTVqK7ORmNjBczMXGFnFwhBMOnpsogAMKwSERHd16qqVCguXoyGhiuaNpnMHR4e2+DkFN6DlRG14DAAIiKi+1RVlQpnz0ZqBVUAaGgox9mzkaiqUvVQZUS/YlglIiK6D4miGsXFiwGI+tYCAIqLoyGK6m6ti+h2DKtERET3oerqbJ0rqtpENDRcRnV1drfVRKQPwyoREdF9qLGxwqD9iIyFYZWIiOg+ZGbmatB+RMbCsEpERHQfsrMLhEzmDkBoo4cAmUwOO7vA7iyLSAfDKhER0X1IEEzg4bGt9dXtawEAHh5bOd8q9TiGVSIiovuUk1M4fHxSIJO5abXLZO7w8UnhPKskCXwoABER0X3MySkcjo7T+AQrkiyGVSIiovucIJjA3n5CT5dBpBeHARARERGRZDGsEhEREZFkcRgAERHdN9RqIDsbqKgAXF2BwEDAhEMziSSNYZWIiO4LKhWweDFw5ZYnjLq7A9u2AeG86Z1IsjgMgIiIej2VCoiM1A6qAFBe3tKuUvVMXUR0ZwyrRETUq6nVLVdURVF3XWtbdHRLPyKSHoZVIiLq1bKzda+o3koUgcuXW/oRkfQwrBIRUa9WUWHYfkTUvRhWiYioV3N1NWw/IupeDKtERNSrBQa23PUvCPrXCwIgl7f0IyLpYVglIqJezcSkZXoqQDewtr7eupXzrRJJFcMqERH1euHhQEoK4Oam3e7u3tLOeVaJpIsPBSAiovtCeDgwbRqfYEV0r2FYJSKi+4aJCTBhQk9XQUSdwWEARERERCRZDKtEREREJFkMq0REREQkWQyrRERERCRZvMGKiIiI6D6mblYjuywbFT9VwNXaFYGDAmHSRzrTZDCsEhEREd2nVAUqLD6yGFdqr2ja3G3csW3SNoR7S2MCYg4DICIiIroPqQpUiPwwUiuoAkB5bTkiP4yEqkDVQ5VpY1glIiIius+om9VYfGQxRIg661rboo9EQ92s7u7SdBg1rG7cuBHjxo1Dv379YGdn16FtRFHEmjVrMHDgQFhYWGDChAk4e/asMcskIiIiuq9kl2XrXFG9lQgRl2svI7ssuxur0s+oYbWxsRHPPvssXnnllQ5vEx8fjy1btuCtt97CV199hQEDBiAkJAQ//fSTESslIiIiun9U/FRh0H7GZNSwunbtWixZsgQjR47sUH9RFLF161a8/vrrCA8Px4gRI7Bv3z78/PPP+Mc//mHMUomIiIjuG67WrgbtZ0ySGrNaUlKCyspKTJw4UdMmk8kQFBSEL7/8Uu82DQ0NqK2t1VqIiIiIqG2BgwLhbuMOAYLe9QIEyG3kCBwU2M2V6ZJUWK2srAQAuLi4aLW7uLho1t0uLi4Otra2mkUulxu9TiIiIqJ7mUkfE2ybtA0AdAJr6+utk7ZKYr7VTofVNWvWQBCEdpevv/76rooSBO03TRRFnbZWK1asQE1NjWa5fPnyXR2biIiI6H4Q7h2OlN+mwM3GTavd3cYdKb9Nkcw8q51+KMCCBQvw/PPPt9tnyJAhXSpmwIABAFqusLq6/jpG4urVqzpXW1vJZDLIZLIuHY+IiIjofhbuHY5pXtN61xOsHB0d4ejoaIxaoFAoMGDAABw7dgyjRo0C0DKjwOeff45NmzYZ5ZhERERE9zOTPiaYMGRCT5fRJqOOWS0rK0NeXh7KysqgVquRl5eHvLw83LhxQ9Nn2LBh+PjjjwG0/PwfHR2NN954Ax9//DG+/fZbzJ49G/369cP06dONWSoRERERSVCnr6x2xqpVq7Bv3z7N69arpZ999hkmTJgAACgqKkJNTY2mz7Jly/DLL79g/vz5+PHHHzF27FgcPXoU1tbWxiyViIiIiCRIEEVR9zlb97Da2lrY2tqipqYGNjY2PV0OEREREd2mM3lNUlNXERERERHdimGViIiIiCSLYZWIiIiIJIthlYiIiIgki2GViIiIiCSLYZWIiIiIJIthlYiIiIgki2GViIiIiCSLYZWIiIiIJIthlYiIiIgkq29PF2BorU+Pra2t7eFKiIiIiEif1pzWmtva0+vC6k8//QQAkMvlPVwJEREREbXnp59+gq2tbbt9BLEjkfYe0tzcjO+++w7W1tYQBKGny7mv1dbWQi6X4/Lly7Cxsenpcqib8fO/f/Gzv7/x879/deazF0URP/30EwYOHIg+fdofldrrrqz26dMH7u7uPV0G3cLGxob/h3Uf4+d//+Jnf3/j53//6uhnf6crqq14gxURERERSRbDKhERERFJFsMqGY1MJsPq1ashk8l6uhTqAfz871/87O9v/PzvX8b67HvdDVZERERE1HvwyioRERERSRbDKhERERFJFsMqEREREUkWwyoRERERSRbDKhldaWkpXnrpJSgUClhYWOCBBx7A6tWr0djY2NOlUTfZuHEjxo0bh379+sHOzq6nyyEjS0pKgkKhgLm5OUaPHo3s7OyeLom6QVZWFsLCwjBw4EAIgoADBw70dEnUTeLi4vDwww/D2toazs7OeOaZZ1BUVGSw/TOsktEVFhaiubkZu3btwtmzZ/GXv/wFO3fuxGuvvdbTpVE3aWxsxLPPPotXXnmlp0shI/vggw8QHR2N119/HadOnUJgYCAmT56MsrKyni6NjKyurg5+fn546623eroU6maff/45oqKikJOTg2PHjuHmzZuYOHEi6urqDLJ/Tl1FPeLNN99EcnIyLl682NOlUDd67733EB0djerq6p4uhYxk7NixeOihh5CcnKxp8/b2xjPPPIO4uLgerIy6kyAI+Pjjj/HMM8/0dCnUA6qqquDs7IzPP/8cjz322F3vj1dWqUfU1NTAwcGhp8sgIgNqbGzEf//7X0ycOFGrfeLEifjyyy97qCoi6m41NTUAYLC/5xlWqdtduHABO3bswLx583q6FCIyoGvXrkGtVsPFxUWr3cXFBZWVlT1UFRF1J1EUERMTg0cffRQjRowwyD4ZVqnL1qxZA0EQ2l2+/vprrW2+++47TJo0Cc8++yzmzJnTQ5WTIXTl86f7gyAIWq9FUdRpI6LeacGCBfjmm2+wf/9+g+2zr8H2RPedBQsW4Pnnn2+3z5AhQzT/+7vvvkNwcDACAgLw9ttvG7k6MrbOfv7U+zk6OsLExETnKurVq1d1rrYSUe+zcOFCfPLJJ8jKyoK7u7vB9suwSl3m6OgIR0fHDvUtLy9HcHAwRo8ejb1796JPH17Uv9d15vOn+4OZmRlGjx6NY8eO4Te/+Y2m/dixY5g2bVoPVkZExiSKIhYuXIiPP/4YmZmZUCgUBt0/wyoZ3XfffYcJEyZg0KBBSEhIQFVVlWbdgAEDerAy6i5lZWW4fv06ysrKoFarkZeXBwDw8PCAlZVVzxZHBhUTE4OZM2fC399f8ytKWVkZx6jfB27cuIHi4mLN65KSEuTl5cHBwQGDBg3qwcrI2KKiovCPf/wD//rXv2Btba35dcXW1hYWFhZ3vX9OXUVG99577+H3v/+93nX8+t0fZs+ejX379um0f/bZZ5gwYUL3F0RGlZSUhPj4eFRUVGDEiBH4y1/+YpDpa0jaMjMzERwcrNM+a9YsvPfee91fEHWbtsak7927F7Nnz777/TOsEhEREZFUceAgEREREUkWwyoRERERSRbDKhERERFJFsMqEREREUkWwyoRERERSRbDKhERERFJFsMqEREREUkWwyoRERERSRbDKhERERFJFsMqEREREUkWwyoRERERSRbDKhERERFJ1v8HS40tztQ6vRsAAAAASUVORK5CYII=\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 5 ---\n", - "Aktuelle Cluster: [[1], [3], [5], [9], [2, 6], [4, 7], [0, 8]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 2. 6. 0.54664466 2. ]\n", - " [ 3. 5. 0.5524637 2. ]\n", - " [ 7. 9. 0.56261506 2. ]\n", - " [ 0. 4. 1.14694608 2. ]\n", - " [ 1. 10. 1.18606925 3. ]\n", - " [12. 14. 1.42401155 5. ]\n", - " [11. 13. 2.15864694 4. ]\n", - " [ 8. 16. 3.73691206 5. ]\n", - " [15. 17. 4.64006144 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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IjJZDKtEREREZLIYVomIiIjIZDGsEhEREZHJYlglIiIiIpPFsEpEREREJothlYiIiIhMFsMqEREREZkshlUiIiIiMlkMq0RERERkshhWiYiIiMhkMawSERERkcliWCUiIiIik8WwSkREREQmi2GViIiIiEwWwyoRERERmSyGVSIiIiIyWQyrRERERGSyGFaJiIiIyGQxrBIRERGRyWJYJSIiIiKTxbBKRERERCaLYZWIiIiITJbRw2pKSgq8vLxgaWmJUaNGIScnp936X375JUaNGgVLS0solUps27bN2F0kIiIiIhNl1LD6ySefIC4uDq+99hpOnjyJ4OBgTJ48GWVlZXrrl5SUYMqUKQgODsbJkyfx6quvYsGCBUhPTzdmN4mIiIjIRElCCGGsxseMGYMHH3wQqampmjI/Pz8888wzSExM1Kn/xz/+Ef/4xz9QUFCgKYuOjsapU6dw7NixDp2ztrYW9vb2qKmpgZ2d3Z1fBBEREREZVGfymtFGVhsbG/Hvf/8bEydO1CqfOHEijh49qveYY8eO6dQPCwvDN998g6amJmN1lYiIiIhMVF9jNfzDDz9ArVbD1dVVq9zV1RWVlZV6j6msrNRb/8aNG/jhhx/g5uamc0xDQwMaGho0r2traw3QeyIiIiIyBUa/wUqSJK3XQgidstvV11feKjExEfb29ppNoVDcYY+JiIiIyFQYLaw6OTnBzMxMZxT1ypUrOqOnrfr376+3ft++fXHffffpPWbZsmWoqanRbBcvXjTMBRARERFRjzNaWLWwsMCoUaNw6NAhrfJDhw5h7Nixeo8JCgrSqX/w4EEEBgbC3Nxc7zEymQx2dnZaGxERERH1DkadBrBo0SK88847eO+991BQUICFCxeirKwM0dHRAFpGRV988UVN/ejoaFy4cAGLFi1CQUEB3nvvPbz77rtYvHixMbtJRERERCbKaDdYAcBzzz2HH3/8EQkJCaioqMCwYcOwf/9+eHp6AgAqKiq01lz18vLC/v37sXDhQmzduhUDBgzAm2++icjISGN2k4iIiIhMlFHXWe0JXGeViIiIyLSZxDqrRERERER3imGViIiIiEwWwyoRERERmSyGVSIiIiIyWQyrRERERGSyGFaJiIiIyGQxrBIRERGRyWJYJSIiIiKTZdQnWBEREVHvItQC1TnVaKxohIWbBeTBckhmUk93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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 6 ---\n", - "Aktuelle Cluster: [[1], [3], [5], [9], [2, 6], [4, 7], [0, 8]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 2. 6. 0.54664466 2. ]\n", - " [ 3. 5. 0.5524637 2. ]\n", - " [ 7. 9. 0.56261506 2. ]\n", - " [ 0. 4. 1.14694608 2. ]\n", - " [ 1. 10. 1.18606925 3. ]\n", - " [12. 14. 1.42401155 5. ]\n", - " [11. 13. 2.15864694 4. ]\n", - " [ 8. 16. 3.73691206 5. ]\n", - " [15. 17. 4.64006144 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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8atf/UqUlpZq9GXp0qViwIABok+fPlp3eO/evVsEBwcLGxsbIZPJhIeHh4iMjBT/93//p64zc+ZMYWlpqfM68/PzRUhIiLC2thb29vbi5ZdfFmVlZVrvaetqAFVVVRrH67r+PXv2CH9/f2Fubi7c3NzEb3/7W/Hll19q9f3u78qdPv30UwFA/O1vf9Pat2PHDhEcHCxcXFyEmZmZ+vv67bffatSrqqoSCxYsEJ6ensLU1FQ4ODiIUaNGibffflvcunVL53m74vPPPxfTpk0TgwcP1viuzJgxQ+cqG5999pl44oknhLm5ubCyshIjR47U+DM0fvx44evrq3Xc3e9XW38u79x35/vd0NAgZs+eLZycnIQkSRqfW15enhg3bpzo16+fAKDxPW3L7t271ddha2srXnzxRb2uskDUEZIQHVgskoiISM8iIiKQm5uL0tLSB/5pYURkOJwGQERE3aahoQEnT57E8ePHsWvXLmzYsIFBlYjaxZFVIiLqNqWlpfD09ISNjQ2mTZuG999/v80noxERAQyrRERERGTEuFAaERERERkthlUiIiIiMloMq0RERERktHrdagDNzc24cuUKrK2tu/3xdERERER0b0II/PDDDxgwYMA9H9/b68LqlStX9Po8ZiIiIiIyjEuXLt3zSXO9LqxaW1sDaLl4GxubHu4NEREREd2ttrYWcrlcndva0+vCautP/zY2NgyrREREREasI1M2eYMVERERERkthlUiIiIiMloMq0RERERktHrdnFUiIiLqfVQqFZqamnq6G9QJpqamMDExue92GFaJiIjIaAkhUFlZierq6p7uCnWBnZ0d+vfvf19r3zOsEhERkdFqDarOzs7o168fH/jzgBBC4Mcff8S1a9cAAK6url1ui2GViIiIjJJKpVIH1UceeaSnu0OdZGFhAQC4du0anJ2duzwlgDdYERERkVFqnaPar1+/Hu4JdVXrZ3c/840ZVomIiMio8af/B5c+PjuGVSIiIiIyWgyrRERERD1AkiTs3r27p7th9BhWiYiIiPSssrIS8+fPh0KhgEwmg1wuR1hYGA4fPmyQ82VlZUGSJIMu8XXz5k3MmDEDtra2sLW1xYwZM7plSTGuBkBERES9mkoF5OQAFRWAqysQFAToYa36NpWWlmLcuHGws7NDUlIS/Pz80NTUhIyMDERHR6OwsNBwJ79P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3QuihwanARARERGR0WJYJSIiIiKjxbBKREREREaLYZWIiIiIjBbDKhEREREZLYZVIiIiIjJaDKtEREREZLQYVomIiIjIaDGsEhEREZHRYlglIiIiIqPFsEpERERERothlYiIiIiMFsMqERERERkthlUiIiIiMloMq0RERERktBhWiYiIiMhoMawSERERkdFiWCUiIiIio8WwSkRERERGi2GViIiIiIwWwyoRERERGS2GVSIiIiIyWgyrRERERGS0GFaJiIiIyGgxrBIRERGR0WJYJSIiIiKjxbBKREREREaLYZWIiIiIjBbDKhEREREZLYZVIiIiIjJaDKtEREREZLQYVomIiIjIaBk8rKakpMDT0xPm5uYYNWoUcnJy2q3/1VdfYdSoUTA3N4dCocDWrVsN3UUiIiIiMlIGDauff/45YmNj8fbbb+PUqVMICgrC5MmTUVZWprN+SUkJpkyZgqCgIJw6dQpvvfUWFixYgPT0dEN2k4iIiIiMlCSEEIZqfMyYMXj88ceRmpqqLvPx8cFLL72ExMRErfq/+93v8M9//hMFBQXqsqioKJw+fRrHjh3r0Dlra2tha2uLmpoa2NjY3P9FEBEREZFedSavGWxktbGxEf/+978xceJEjfKJEyfi6NGjOo85duyYVv3Q0FCcOHECTU1NhuoqERERERmpvoZq+Pr161CpVHBxcdEod3FxQWVlpc5jKisrdda/ffs2rl+/DldXV61jGhoa0NDQoH5dW1urh94TERERkTEw+A1WkiRpvBZCaJXdq76u8laJiYmwtbVVb3K5/D57TERERETGwmBh1dHRESYmJlqjqNeuXdMaPW3Vv39/nfX79u2LRx55ROcxS5cuRU1NjXq7dOmSfi6AiIiIiHqcwcKqmZkZRo0ahUOHDmmUHzp0CGPHjtV5TGBgoFb9gwcPIiAgAKampjqPkclksLGx0diIiIiIqHcw6DSAuLg4fPjhh/j4449RUFCAhQsXoqysDFFRUQBaRkVff/11df2oqChcvHgRcXFxKCgowMcff4yPPvoIixYtMmQ3iYiIiMhIGewGKwB49dVX8f333yMhIQEVFRUYPnw49u/fDw8PDwBARUWFxpqrnp6e2L9/PxYuXIgtW7ZgwIABeO+99xAREWHIbhIRERGRkTLoOqs9geusEhERERk3o1hnlYiIiIjofjGsEhEREZHRYlglIiIiIqPFsEpERERERothlYiIiIiMFsMqERERERkthlUiIiIiMloMq0RERERktAz6BCsiIiLqXYRKoDqnGo0VjTBzNYNdkB0kE6mnu0W9GMMqERERdUiVsgrFMcVouNygLpO5y+C1yQtO4U492DPqzTgNgIiIiO6pSlmFs5FnNYIqADSUN+Bs5FlUKat6qGfU2zGsEhERUbuESqA4phgQuna2/KM4thhCpasC0f1hWCUiIqJ2VedUa42oahBAw6UGVOdUd1uf6OHBsEpERETtaqxo1Gs9os5gWCUiIqJ2mbma6bUeUWcwrBIREVG77ILsIHOXAW2tUCUBMrkMdkF23dktekgwrBIREVG7JBMJXpu8/vvi7p0t//Da6PVQr7cqVAI3s27i6s6ruJl1kzeb6RHXWSUiIqJ7cgp3gm+ar+51Vjc+3Ouscv1Zw5KEEL0q+tfW1sLW1hY1NTWwsbHp6e4QERH1KnyClabW9We1lvX671vim+bLwKpDZ/IaR1aJiIiowyQTCfYT7Hu6G0bhnuvPSi3rzzpOdXyoA/394pxVIiIioi7g+rPdg2GViIiIqAu4/mz3YFglIiIi6gKuP9s9GFaJiIiIuoDrz3YPhlUiIiKiLuD6s92DYZWIiIioi1rXn5W5yTTKZe4yLlulJ1y6ioiIiOg+OIU7wXGqI9efNRCGVSIiIqL7xPVnDYfTAIiIiIjIaDGsEhEREZHRYlglIiIiIqPFsEpERERERothlYiIiIiMFsMqERERERkthlUiIiIiMloMq0RERERktBhWiYiIiMhoMawSERERkdFiWCUiIiIio8WwSkRERERGi2GViIiIiIwWwyoRERERGS2GVSIiIiIyWgyrRERERGS0GFaJiIiIyGgxrBIRERGR0WJYJSIiIiKjxbBKREREREaLYZWIiIiIjBbDKhEREREZLYZVIiIiIjJaDKtEREREZLQYVomIiIjIaDGsEhEREZHRYlglIiIiIqNl0LB68+ZNzJgxA7a2trC1tcWMGTNQXV3d7jGzZs2CJEka25NPPmnIbhIRERGRkepryManTZuGy5cv48CBAwCAX//615gxYwb27NnT7nGTJk3CJ598on5tZmZmyG4SERERkZEyWFgtKCjAgQMHkJubizFjxgAAtm/fjsDAQBQVFcHb27vNY2UyGfr372+orhERERHRA8Jg0wCOHTsGW1tbdVAFgCeffBK2trY4evRou8dmZWXB2dkZQ4YMwZw5c3Dt2rU26zY0NKC2tlZjIyIiIqLewWBhtbKyEs7Ozlrlzs7OqKysbPO4yZMn4y9/+QsyMzOxfv16fPPNN3jmmWfQ0NCgs35iYqJ6TqytrS3kcrneroGIiIiIelanw+rKlSu1boC6eztx4gQAQJIkreOFEDrLW7366qt4/vnnMXz4cISFheHLL7/EuXPnsG/fPp31ly5dipqaGvV26dKlzl4SERERERmpTs9ZnTdvHl577bV26wwaNAjffvstrl69qrWvqqoKLi4uHT6fq6srPDw88N133+ncL5PJIJPJOtweERERET04Oh1WHR0d4ejoeM96gYGBqKmpwfHjxzF69GgAwL/+9S/U1NRg7NixHT7f999/j0uXLsHV1bWzXSUiIiKiB5zB5qz6+Phg0qRJmDNnDnJzc5Gbm4s5c+bghRde0FgJYOjQodi1axcA4NatW1i0aBGOHTuG0tJSZGVlISwsDI6OjvjZz35mqK4SERERkZEy6EMB/vKXv2DEiBGYOHEiJk6cCD8/P/zpT3/SqFNUVISamhoAgImJCc6cOYOpU6diyJAhmDlzJoYMGYJjx47B2trakF0lIiIiIiMkCSFET3dCn2pra2Fra4uamhrY2Nj0dHeIiIiI6C6dyWsGHVklIiIiIrofDKtEREREZLQYVomIiIjIaDGsEhEREZHRYlglIiIiIqPFsEpERERERothlYiIiIiMFsMqERERERkthlUiIiIiMloMq0RERERktBhWiYiIiMhoMawSERERkdFiWCUiIiIio8WwSkRERERGi2GViIiIiIwWwyoRERERGS2GVSIiIiIyWgyrRERERGS0GFaJiIiIyGgxrBIRERGR0erb0x0gIiKinqUSAjnV1ahobISrmRmC7OxgIkk93S0iAAyrREREDzVlVRViiotxuaFBXeYuk2GTlxfCnZx6sGdELTgNgIiI6CGlrKpC5NmzGkEVAMobGhB59iyUVVU91DOi/2FYJSIiegiphEBMcTGEjn2tZbHFxVAJXTWIug/DKhER0UMop7paa0T1TgLApYYG5FRXd1ufiHRhWCUiInoIVTQ26rUekaEwrBIRET2EXM3M9FqPyFAYVomIiB5CQXZ2cJfJ0NYCVRIAuUyGIDu7buwVkTaG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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 7 ---\n", - "Aktuelle Cluster: [[1], [3], [5], [9], [2, 6], [4, 7], [0, 8]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 2. 6. 0.54664466 2. ]\n", - " [ 3. 5. 0.5524637 2. ]\n", - " [ 7. 9. 0.56261506 2. ]\n", - " [ 0. 4. 1.14694608 2. ]\n", - " [ 1. 10. 1.18606925 3. ]\n", - " [12. 14. 1.42401155 5. ]\n", - " [11. 13. 2.15864694 4. ]\n", - " [ 8. 16. 3.73691206 5. ]\n", - " [15. 17. 4.64006144 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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jBbDKhEREREZLYZVIiIiIjJaDKtEREREZLQYVomIiIjIaDGsEhEREZHRYlglIiIiIqPFsEpERERERothlYiIiIiMFsMqERERERkthlUiIiIiMloMq0RERERktBhWiYiIiMhoMawSERERkdFiWCUiIiIio8WwSkRERERGi2GViIiIiIyWwcNqSkoKPD09YW5ujtGjRyMnJ6fd/l988QVGjx4Nc3NzKBQKbN++3dAlEhEREZGRMmhY/eSTTxAXF4c333wTp0+fRlBQEKZMmYKysjKd/UtKSjB16lQEBQXh9OnTeOONN7Bw4UKkp6cbskwiIiIiMlKSEEIYavCxY8fikUceQWpqqrrNx8cHzz33HBITE7X6/+53v8M//vEPFBQUqNuio6Nx5swZnDhxokPHrK2tha2tLWpqamBjY3PvJ0FEREREetWZvGawK6uNjY3497//jUmTJmm0T5o0CcePH9e5z4kTJ7T6h4aG4uuvv0ZTU5OhSiUiIiIiI9XXUAN///33UKlUcHFx0Wh3cXFBZWWlzn0qKyt19r916xa+//57uLq6au3T0NCAhoYG9fPa2lo9VE9ERERExsDgP7CSJEnjuRBCq+1u/XW1t0pMTIStra36IZfL77FiIiIiIjIWBgurjo6OMDEx0bqKeu3aNa2rp60GDBigs3/fvn3Rv39/nfssX74cNTU16sfly5f1cwJERERE1OMMFlbNzMwwevRoHDlyRKP9yJEjGDdunM59AgMDtfofPnwYAQEBMDU11bmPTCaDjY2NxoOIiIiIegeDTgNYvHgx3n//fXz44YcoKCjAokWLUFZWhujoaAAtV0Vffvlldf/o6GhcunQJixcvRkFBAT788EN88MEHWLJkiSHLJCIiIiIjZbAfWAHACy+8gB9++AEJCQmoqKjAiBEjcPDgQXh4eAAAKioqNNZc9fT0xMGDB7Fo0SJs27YNAwcOxDvvvIOIiAhDlklERERERsqg66z2BK6zSkRERGTcjGKdVSIiIiKie8WwSkRERERGi2GViIiIiIwWwyoRERERGS2GVSIiIiIyWgyrRERERGS0GFaJiIiIyGgxrBIRERGR0TLoHayIiIiodxEqgeqcajRWNMLM1Qx2QXaQTKSeLot6MYZVIiIi6pAqZRWKY4vRcKVB3SZzl8Frixecwp16sDLqzTgNgIiIiO6qSlmFc5Hn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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 8 ---\n", - "Aktuelle Cluster: [[1], [3], [5], [9], [2, 6], [4, 7], [0, 8]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 2. 6. 0.54664466 2. ]\n", - " [ 3. 5. 0.5524637 2. ]\n", - " [ 7. 9. 0.56261506 2. ]\n", - " [ 0. 4. 1.14694608 2. ]\n", - " [ 1. 10. 1.18606925 3. ]\n", - " [12. 14. 1.42401155 5. ]\n", - " [11. 13. 2.15864694 4. ]\n", - " [ 8. 16. 3.73691206 5. ]\n", - " [15. 17. 4.64006144 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 9 ---\n", - "Aktuelle Cluster: [[1], [3], [5], [9], [2, 6], [4, 7], [0, 8]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 2. 6. 0.54664466 2. ]\n", - " [ 3. 5. 0.5524637 2. ]\n", - " [ 7. 9. 0.56261506 2. ]\n", - " [ 0. 4. 1.14694608 2. ]\n", - " [ 1. 10. 1.18606925 3. ]\n", - " [12. 14. 1.42401155 5. ]\n", - " [11. 13. 2.15864694 4. ]\n", - " [ 8. 16. 3.73691206 5. ]\n", - " [15. 17. 4.64006144 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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xK9+9StRXFys0Zdly5aJvn37ih49emjd4b1v3z4RHBwsbGxshEwmEx4eHiIyMlL861//UteZMWOGsLS01Hmdubm5IiQkRFhbWwt7e3vx0ksviZKSEq33tHk1gIqKCo3jdV3//v37xdChQ4W5ublwc3MTv/3tb8Vnn32m1fd7vyt3+/jjjwUA8be//U1r365du0RwcLBwcXERZmZm6u/rN998o1GvoqJCLFiwQHh6egpTU1Ph4OAghg8fLt566y1x+/ZtneftiD179oipU6cKb29vje/K9OnTda6y8cknn4gnn3xSmJubCysrKzFs2DCNP0Njx44Vfn5+Wsfd+3619Ofy7n13v991dXVi1qxZwsnJSUiSpPG55eTkiNGjR4tevXoJABrfU13eeOMN0a9fP2FmZiYcHR1FRESE1vtP1BkkIdqwWCQREZGeRUREIDs7G8XFxQ/908KIyHA4DYCIiDpNXV0dTp8+jVOnTmHv3r3YuHEjgyoRtYojq0RE1GmKi4vh6ekJGxsbTJ06Fe+9916LT0YjIgIYVomIiIjIiPGhAERERERktBhWiYiIiMhoMawSERERkdHqdqsBNDY24rvvvoO1tXWXPJ6OiIiIiFonhMAPP/yAvn37okeP1sdOu11Y/e677/T6PGYiIiIiMowrV67c90lz3S6sWltbA2i6eBsbmy7uDRERERHdq7q6GnK5XJ3bWtPtwmrzT/82NjYMq0RERERGrC1TNnmDFREREREZLYZVIiIiIjJaDKtEREREZLS63ZxVIiIi6n5UKhUaGhq6uhvUDqampjAxMXngdhhWiYiIyGgJIVBeXo7Kysqu7gp1gJ2dHfr06fNAa98zrBIREZHRag6qzs7O6NWrFx/485AQQuDHH3/E9evXAQCurq4dbothlYiIiIySSqVSB9XevXt3dXeonSwsLAAA169fh7Ozc4enBPAGKyIiIjJKzXNUe/Xq1cU9oY5q/uweZL4xwyoREREZNf70//DSx2fHsEpERERERothlYiIiKgLSJKEffv2dXU3jB7DKhEREZGelZeXY/78+VAoFJDJZJDL5QgLC8OxY8cMcr6MjAxIkmTQJb5u3bqF6dOnw9bWFra2tpg+fXqnLCnG1QCIiIioW1OpgKwsoKwMcHUFgoIAPaxV36Li4mKMHj0adnZ2SEhIgL+/PxoaGpCWloaoqCjk5+cb7uQPSAgBlUqFnj21I+LUqVNx9epVHD58GADw61//GtOnT8f+/fsN2ieOrBIREVGHqVQqZGRkYPfu3cjIyIBKperqLmlQKoH+/YHgYGDq1KZ/9u/fVG4oc+fOhSRJOHXqFCIjIzFgwAD4+flh0aJFyM7O1nmMrpHRnJwcSJKE4uJiAMDly5cRFhYGe3t7WFpaws/PD4cOHUJxcTGCg4MBAPb29pAkCTNnzgTQFD4TEhKgUChgYWGBoUOHIiUlReu8aWlpCAgIgEwmQ1ZWllb/8vLycPjwYXzwwQcIDAxEYGAgduzYgQMHDqCgoEA/b1wLOLJKREREHaJUKhEdHY2rV6+qy9zd3bF582aEh4d3Yc+aKJVAZCQghGZ5aWlTeUoKoO9u3rx5E4cPH8a6detgaWmptd/Ozq7DbUdFRaG+vh6ZmZmwtLREbm4urKysIJfLkZqaioiICBQUFMDGxka9xuny5cuhVCqRnJwMb29vZGZmYtq0aXBycsLYsWPVbS9ZsgSJiYlQKBQ6+3jy5EnY2tpi5MiR6rKnnnoKtra2OHHiBHx8fDp8XffDsEpERETtplQqERkZCXFPEiwtLUVkZCRSUlK6NLCqVEB0tHZQBZrKJAmIiQGmTNHvlIDCwkIIITBw4ED9NfpfJSUliIiIwJAhQwAACoVCvc/BwQEA4OzsrA6bNTU12LhxI9LT0xEYGKg+5osvvsD27ds1wmpcXBxCQkJaPHd5eTmcnZ21yp2dnVFeXv7A19YaTgMgIiKidlGpVIiOjtYKqgDUZTExMV06JSArC7hrwFeLEMCVK0319Kn5+g2xNuyCBQuwdu1ajB49GitXrsQ333zTav3c3FzU1tYiJCQEVlZW6u2TTz7BxYsXNeoGBATc9/y6rkkIYfB1cBlWiYiIqF2ysrI0fvq/lxACV65c0Tn3sbOUlem3Xlt5e3tDkiTk5eW167gePZoi2d3/A3DvU59mzZqFS5cuYfr06Th37hwCAgKwZcuWFttsbGwEABw8eBA5OTnqLTc3V2PeKgCdUxbu1qdPH1y7dk2rvKKiAi4uLq1f3ANiWCUiIqJ2KWtjwmtrPUNwddVvvbZycHBAaGgotm7dipqaGq39LS315OTkBEDzPcvJydGqJ5fLMWfOHCiVSsTGxmLHjh0AADMzMwDQGM0eNGgQZDIZSkpK4OXlpbHJ5fJ2XVdgYCCqqqpw6tQpddmXX36JqqoqjBo1ql1ttRfDKhEREbWLaxsTXlvrGUJQEODu3jQ3VRdJAuTypnr6lpSUBJVKhREjRiA1NRXffvst8vLy8O6776rnjt6rOUCuWrUKFy5cwMGDB7FhwwaNOjExMUhLS0NRURFOnz6N9PR0+Pr6AgA8PDwgSRIOHDiAiooK3L59G9bW1li8eDEWLlyIXbt24eLFizhz5gy2bt2KXbt2teuafH19MWHCBMyePRvZ2dnIzs7G7NmzMXnyZIPeXAUAEN1MVVWVACCqqqq6uitERETd0p07d4S7u7uQJEkA0NokSRJyuVzcuXPngc7z008/idzcXPHTTz916PjUVCEkqWlrmqXatDWXpaY+UPda9d1334moqCjh4eEhzMzMhJubm3jhhRfE8ePH1XUAiL1796pff/HFF2LIkCHC3NxcBAUFiU8//VQAEEVFRUIIIebNmycee+wxIZPJhJOTk5g+fbq4ceOG+vi4uDjRp08fIUmSmDFjhhBCiMbGRrF582bh4+MjTE1NhZOTkwgNDRWff/65EEKI48ePCwDi1q1b972m77//Xrz66qvC2tpaWFtbi1dfffW+x7X0GbYnr0lC6LpP7uFVXV0NW1tbVFVVwcbGpqu7Q0RE1C01rwYAaM6zbL7ZRh+rAdTW1qKoqAienp4wNzfvYD+bVgW4e4qtXA5s2qT/ZatIW0ufYXvyGqcBEBERUbuFh4cjJSUFbm5uGuXu7u5dvmzV3cLDgeJi4Phx4K9/bfpnURGD6sOE66wSERFRh4SHh2PKlCnIyspCWVkZXF1dERQUBBNDPsu0A0xMgHHjuroX1FEMq0RERNRhJiYmGMckSAbEaQBEREREZLQYVomIiIjIaDGsEhEREZHRYlglIiIiIqPFsEpERERERothlYiIiIiMFsMqERERUReQJAn79u3r6m4YPYZVIiIiIj0rLy/H/PnzoVAoIJPJIJfLERYWhmPHjhnkfBkZGZAkCZWVlQZpHwDWrVuHUaNGoVevXrCzszPYee7FhwIQERFRt6ZqVCGrJAtlP5TB1doVQf2CYNLDcE/ZKi4uxujRo2FnZ4eEhAT4+/ujoaEBaWlpiIqKQn5+vsHO/aCEEFCpVOjZUzsi1tfX46WXXkJgYCA+/PDDTusTR1aJiIio21LmKdF/c38E7wrGVOVUBO8KRv/N/aHMUxrsnHPnzoUkSTh16hQiIyMxYMAA+Pn5YdGiRcjOztZ5jK6R0ZycHEiShOLiYgDA5cuXERYWBnt7e1haWsLPzw+HDh1CcXExgoODAQD29vaQJAkzZ84E0BQ+ExISoFAoYGFhgaFDhyIlJUXrvGlpaQgICIBMJkNWVpbOPq5evRoLFy7EkCFDHvxNageOrBIREVG3pMxTIvLvkRAQGuWl1aWI/HskUn6egnDfcL2e8+bNmzh8+DDWrVsHS0tLrf0P8vN5VFQU6uvrkZmZCUtLS+Tm5sLKygpyuRypqamIiIhAQUEBbGxsYGFhAQBYvnw5lEolkpOT4e3tjczMTEybNg1OTk4YO3asuu0lS5YgMTERCoWiU3/ibwuGVSIiIup2VI0qRB+O1gqqACAgIEFCzOEYTPGZotcpAYWFhRBCYODAgXprs1lJSQkiIiLUI5sKhUK9z8HBAQDg7OysDps1NTXYuHEj0tPTERgYqD7miy++wPbt2zXCalxcHEJCQvTeZ31gWCUiIqJuJ6skC1err7a4X0DgSvUVZJVkYVz/cXo7rxBN4ViSJL212WzBggV44403cOTIETz33HOIiIiAv79/i/Vzc3NRW1urFULr6+sxbNgwjbKAgAC991dfOGeViIiIup2yH8r0Wq+tvL29IUkS8vLy2nVcjx5Nkaw57AJAQ0ODRp1Zs2bh0qVLmD59Os6dO4eAgABs2bKlxTYbGxsBAAcPHkROTo56y83N1Zi3CkDnlAVjwbBKRERE3Y6rtate67WVg4MDQkNDsXXrVtTU1Gjtb2lpKScnJwBAWdn/wnNOTo5WPblcjjlz5kCpVCI2NhY7duwAAJiZmQEAVCqVuu6gQYMgk8lQUlICLy8vjU0ul3f0EjsdwyoRERF1O0H9guBu4w4Jun+OlyBBbiNHUL8gvZ87KSkJKpUKI0aMQGpqKr799lvk5eXh3XffVc8dvVdzgFy1ahUuXLiAgwcPYsOGDRp1YmJikJaWhqKiIpw+fRrp6enw9fUFAHh4eECSJBw4cAAVFRW4ffs2rK2tsXjxYixcuBC7du3CxYsXcebMGWzduhW7du1q93WVlJQgJycHJSUlUKlU6pHa27dvt/9NageGVSIiIup2THqYYPOEzQCgFVibX2+asMkg6616enri9OnTCA4ORmxsLAYPHoyQkBAcO3YMycnJOo8xNTXF7t27kZ+fj6FDh2L9+vVYu3atRh2VSoWoqCj4+vpiwoQJ8PHxQVJSEgDAzc0Nq1evxtKlS+Hi4oJ58+YBANasWYMVK1YgPj4evr6+CA0Nxf79++Hp6dnu61qxYgWGDRuGlStX4vbt2xg2bBiGDRuGr7/+ut1ttYck7p4c0Q1UV1fD1tYWVVVVsLGx6eruEBERUQfV1taiqKgInp6eMDc371Abyjwlog9Ha9xsJbeRY9OETXpftoq0tfQZtievcTUAIiIi6rbCfcMxxWdKpz7BivSLYZWIiIi6NZMeJnpdnoo6l0HnrMbHx+PJJ5+EtbU1nJ2d8eKLL6KgoOC+x33++ecYPnw4zM3NoVAosG3bNkN2k4iIiIiMlEHD6ueff46oqChkZ2fj6NGjuHPnDsaPH69zKYdmRUVFmDRpEoKCgnDmzBm8+eabWLBgAVJTUw3ZVSIiIiIyQgadBnD48GGN1zt37oSzszP+/e9/4+mnn9Z5zLZt29CvXz9s2rQJAODr64uvv/4aiYmJiIiIMGR3iYiIiMjIdOrSVVVVVQD+9/xaXU6ePInx48drlIWGhuLrr7/WepIDEREREXVvnXaDlRACixYtwpgxYzB48OAW65WXl8PFxUWjzMXFBXfu3MGNGzfg6qr5pIm6ujrU1dWpX1dXV+u340RERETUZTptZHXevHn45ptvsHv37vvWlSTNxXubl4K9txxouonL1tZWvT1Mjw8jIiIiotZ1SlidP38+/vnPf+L48eNwd3dvtW6fPn1QXl6uUXb9+nX07NkTvXv31qq/bNkyVFVVqbcrV67ote9ERERE1HUMGlaFEJg3bx6USiXS09Pb9GivwMBAHD16VKPsyJEjCAgIgKmpqVZ9mUwGGxsbjY2IiIjI2EmShH379nV1N4yeQcNqVFQU/vznP+Ovf/0rrK2tUV5ejvLycvz000/qOsuWLcNrr72mfj1nzhxcvnwZixYtQl5eHj766CN8+OGHWLx4sSG7SkRERKQ35eXlmD9/PhQKBWQyGeRyOcLCwnDs2DGDnC8jIwOSJKGystIg7RcXF+NXv/oVPD09YWFhgcceewwrV65EfX29Qc53N4PeYJWcnAwAGDdunEb5zp07MXPmTABAWVkZSkpK1Ps8PT1x6NAhLFy4EFu3bkXfvn3x7rvvctkqIiIi6hiVCsjKAsrKAFdXICgIMDHc41aLi4sxevRo2NnZISEhAf7+/mhoaEBaWhqioqKQn59vsHM/KCEEVCoVevbUjIj5+flobGzE9u3b4eXlhf/85z+YPXs2ampqkJiYaPBOdStVVVUCgKiqqurqrhAREdED+Omnn0Rubq746aefOt5IaqoQ7u5CAP/b3N2byg1k4sSJws3NTdy+fVtr361bt9T/DkDs3btXCCHE8ePHBQCN/WfOnBEARFFRkRBCiOLiYjF58mRhZ2cnevXqJQYNGiQOHjwoioqKBACNbcaMGUIIIRobG8X69euFp6enMDc3F/7+/uLTTz9Vn6P5vIcPHxbDhw8XpqamIj09vU3XmZCQIDw9PVut09Jn2J681mlLVxERERF1KqUSiIxsiqh3Ky1tKk9JAcLD9XrKmzdv4vDhw1i3bh0sLS219tvZ2XW47aioKNTX1yMzMxOWlpbIzc2FlZUV5HI5UlNTERERgYKCAtjY2MDCwgIAsHz5ciiVSiQnJ8Pb2xuZmZmYNm0anJycMHbsWHXbS5YsQWJiIhQKRZv7WFVV1era+frCsEpERETdj0oFREdrB1WgqUySgJgYYMoUvU4JKCwshBACAwcO1FubzUpKShAREYEhQ4YAABQKhXpfc2h0dnZWh82amhps3LgR6enpCAwMVB/zxRdfYPv27RphNS4uDiEhIW3uy8WLF7FlyxZs2LDhQS/rvhhWiYiIqPvJygKuXm15vxDAlStN9e65t+ZBiFbWhn9QCxYswBtvvIEjR47gueeeQ0REBPz9/Vusn5ubi9raWq0QWl9fj2HDhmmUBQQEtLkf3333HSZMmICXXnoJs2bNat9FdECnPm6ViIiIqFOUlem3Xht5e3tDkiTk5eW167gePZoimbhrJPjex8zPmjULly5dwvTp03Hu3DkEBARgy5YtLbbZ2NgIADh48CBycnLUW25uLlJSUjTq6pqyoMt3332H4OBgBAYG4v3332/TMQ+KYZWIiIi6n3sez/7A9drIwcEBoaGh2Lp1K2pqarT2t7S0lJOTE4CmVZKa5eTkaNWTy+WYM2cOlEolYmNjsWPHDgCAmZkZAEClUqnrDho0CDKZDCUlJfDy8tLYOvLEz9LSUowbNw5PPPEEdu7cqQ7YhsawSkRERN1PUBDg7t40N1UXSQLk8qZ6epaUlASVSoURI0YgNTUV3377LfLy8vDuu++q547eqzlArlq1ChcuXMDBgwe15oPGxMQgLS0NRUVFOH36NNLT0+Hr6wsA8PDwgCRJOHDgACoqKnD79m1YW1tj8eLFWLhwIXbt2oWLFy/izJkz2Lp1K3bt2tWua/ruu+8wbtw4yOVyJCYmoqKiQr1+vqExrBIREVH3Y2ICbN7c9O/3Btbm15s2GWS9VU9PT5w+fRrBwcGIjY3F4MGDERISgmPHjqnXoL+Xqakpdu/ejfz8fAwdOhTr16/H2rVrNeqoVCpERUXB19cXEyZMgI+PD5KSkgAAbm5uWL16NZYuXQoXFxfMmzcPALBmzRqsWLEC8fHx8PX1RWhoKPbv39+mp4re7ciRIygsLER6ejrc3d3h6uqq3gxNEkLXbXIPr+rqatja2qKqqoqPXiUiInqI1dbWoqioCJ6enjA3N+9YI0pl06oAd99sJZc3BVU9L1tF2lr6DNuT17gaABEREXVf4eFNy1N14hOsSL8YVomIiKh7MzHR6/JU1Lk4Z5WIiIiIjBbDKhEREREZLYZVIiIiIjJaDKtEREREZLQYVomIiIjIaDGsEhEREZHRYlglIiIiIqPFsEpERETUBSRJwr59+7q6G0aPYZWIiIhIz8rLyzF//nwoFArIZDLI5XKEhYXh2LFjBjlfRkYGJElCZWWlQdoHgBdeeAH9+vWDubk5XF1dMX36dHz33XcGO18zhlUiIiLq1lRCIOPWLey+dg0Zt25BJYRBz1dcXIzhw4cjPT0dCQkJOHfuHA4fPozg4GBERUUZ9NwPSgiBO3fu6NwXHByMv//97ygoKEBqaiouXryIyMhIg/eJYZWIiIi6LWVFBfpnZyP47FlMzctD8Nmz6J+dDWVFhcHOOXfuXEiShFOnTiEyMhIDBgyAn58fFi1ahOzsbJ3H6BoZzcnJgSRJKC4uBgBcvnwZYWFhsLe3h6WlJfz8/HDo0CEUFxcjODgYAGBvbw9JkjBz5kwATeEzISEBCoUCFhYWGDp0KFJSUrTOm5aWhoCAAMhkMmRlZens48KFC/HUU0/Bw8MDo0aNwtKlS5GdnY2GhoYHf9Na0dOgrRMRERF1EWVFBSLPn8e946ildXWIPH8eKX5+CHdy0us5b968icOHD2PdunWwtLTU2m9nZ9fhtqOiolBfX4/MzExYWloiNzcXVlZWkMvlSE1NRUREBAoKCmBjYwMLCwsAwPLly6FUKpGcnAxvb29kZmZi2rRpcHJywtixY9VtL1myBImJiVAoFG3q482bN/GXv/wFo0aNgqmpaYevqS0YVomIiKjbUQmB6MJCraAKAAKABCCmsBBTHB1hIkl6O29hYSGEEBg4cKDe2mxWUlKCiIgIDBkyBACgUCjU+xwcHAAAzs7O6rBZU1ODjRs3Ij09HYGBgepjvvjiC2zfvl0jrMbFxSEkJOS+ffjd736H9957Dz/++COeeuopHDhwQF+X1yJOAyAiIqJuJ6uyElfr6lrcLwBcqatDlp5vSBL/nQ8r6TEAN1uwYAHWrl2L0aNHY+XKlfjmm29arZ+bm4va2lqEhITAyspKvX3yySe4ePGiRt2AgIA29eG3v/0tzpw5gyNHjsDExASvvfaa+poNhSOrRERE1O2U1dfrtV5beXt7Q5Ik5OXl4cUXX2zzcT16NI0f3h387p0LOmvWLISGhuLgwYM4cuQI4uPjsWHDBsyfP19nm42NjQCAgwcPws3NTWOfTCbTeK1ryoIujo6OcHR0xIABA+Dr6wu5XI7s7Gz1yK0hcGSViIiIuh1XMzO91msrBwcHhIaGYuvWraipqdHa39LSUk7/nTtbVlamLsvJydGqJ5fLMWfOHCiVSsTGxmLHjh0AALP/XodKpVLXHTRoEGQyGUpKSuDl5aWxyeXyjl6iWnOwrmtlBFsfGFaJiIio2wmys4O7TIaWfoyXAMhlMgQ9wA1PLUlKSoJKpcKIESOQmpqKb7/9Fnl5eXj33XdbHIFsDpCrVq3ChQsXcPDgQWzYsEGjTkxMDNLS0lBUVITTp08jPT0dvr6+AAAPDw9IkoQDBw6goqICt2/fhrW1NRYvXoyFCxdi165duHjxIs6cOYOtW7di165d7bqmU6dO4b333kNOTg4uX76M48ePY+rUqXjssccMOqoKMKwSERFRN2QiSdjs5QUAWoG1+fUmLy+93lzVzNPTE6dPn0ZwcDBiY2MxePBghISE4NixY0hOTtZ5jKmpKXbv3o38/HwMHToU69evx9q1azXqqFQqREVFwdfXFxMmTICPjw+SkpIAAG5ubli9ejWWLl0KFxcXzJs3DwCwZs0arFixAvHx8fD19UVoaCj2798PT0/Pdl2ThYUFlEolnn32Wfj4+OD111/H4MGD8fnnn2tNKdA3SRh6Vmwnq66uhq2tLaqqqmBjY9PV3SEiIqIOqq2tRVFRETw9PWFubt6hNpQVFYguLNS42Uouk2GTl5fel60ibS19hu3Ja7zBioiIiLqtcCcnTHF0RFZlJcrq6+FqZoYgOzuDjKiSYTCsEhERUbdmIkkYZ2/f1d2gDuKcVSIiIiIyWgyrRERERGS0GFaJiIiIyGgxrBIRERGR0WJYJSIiIiKjxbBKREREREaLYZWIiIiIjBbDKhEREVEXkCQJ+/bt6+puGD2GVSIiIiI9Ky8vx/z586FQKCCTySCXyxEWFoZjx44Z5HwZGRmQJAmVlZUGaf9udXV1ePzxxyFJEnJycgx+Pj7BioiIiLo1oRKozKpEfVk9zFzNYBdkB8nEcI9bLS4uxujRo2FnZ4eEhAT4+/ujoaEBaWlpiIqKQn5+vsHO/aCEEFCpVOjZs+WIuGTJEvTt2xdnz57tlD5xZJWIiIi6rQplBbL7Z+Ns8FnkTc3D2eCzyO6fjQplhcHOOXfuXEiShFOnTiEyMhIDBgyAn58fFi1ahOzsbJ3H6BoZzcnJgSRJKC4uBgBcvnwZYWFhsLe3h6WlJfz8/HDo0CEUFxcjODgYAGBvbw9JkjBz5kwATeEzISEBCoUCFhYWGDp0KFJSUrTOm5aWhoCAAMhkMmRlZbV4bZ999hmOHDmCxMTEB3uT2oEjq0RERNQtVSgrcD7yPCA0y+tK63A+8jz8UvzgFO6k13PevHkThw8fxrp162Bpaam1387OrsNtR0VFob6+HpmZmbC0tERubi6srKwgl8uRmpqKiIgIFBQUwMbGBhYWFgCA5cuXQ6lUIjk5Gd7e3sjMzMS0adPg5OSEsWPHqttesmQJEhMToVAoWuzjtWvXMHv2bOzbtw+9evXq8HW0F8MqERERdTtCJVAYXagVVJt2ApCAwphCOE5x1OuUgMLCQgghMHDgQL212aykpAQREREYMmQIAEChUKj3OTg4AACcnZ3VYbOmpgYbN25Eeno6AgMD1cd88cUX2L59u0ZYjYuLQ0hISIvnFkJg5syZmDNnDgICAtSjvZ2BYZWIiIi6ncqsStRdrWu5ggDqrtShMqsS9uPs9XZeIZrSsSTpf07sggUL8MYbb+DIkSN47rnnEBERAX9//xbr5+bmora2ViuE1tfXY9iwYRplAQEBrZ57y5YtqK6uxrJlyzp+AR3EOatERETU7dSX1eu1Xlt5e3tDkiTk5eW167gePZoiWXPYBYCGhgaNOrNmzcKlS5cwffp0nDt3DgEBAdiyZUuLbTY2NgIADh48iJycHPWWm5urMW8VgM4pC3dLT09HdnY2ZDIZevbsCS8vLwBNIXfGjBltv9AOYFglIiKibsfM1Uyv9drKwcEBoaGh2Lp1K2pqarT2t7S0lJNT09zZsrIydZmuZaHkcjnmzJkDpVKJ2NhY7NixAwBgZtZ0HSqVSl130KBBkMlkKCkpgZeXl8Yml8vbdV3vvvsuzp49qw68hw4dAgDs2bMH69ata1db7cVpAERERNTt2AXZQeYuQ11pne55qxIgc5fBLshO7+dOSkrCqFGjMGLECMTFxcHf3x937tzB0aNHkZycrHPUtTlArlq1CmvXrsW3336LDRs2aNSJiYnBxIkTMWDAANy6dQvp6enw9fUFAHh4eECSJBw4cACTJk2ChYUFrK2tsXjxYixcuBCNjY0YM2YMqqurceLECVhZWbVrRLRfv34ar62srAAAjz32GNzd3dv7FrULR1aJiIio25FMJHht9vrvi3t3Nv3Da5OXQdZb9fT0xOnTpxEcHIzY2FgMHjwYISEhOHbsGJKTk3UeY2pqit27dyM/Px9Dhw7F+vXrsXbtWo06KpUKUVFR8PX1xYQJE+Dj44OkpCQAgJubG1avXo2lS5fCxcUF8+bNAwCsWbMGK1asQHx8PHx9fREaGor9+/fD09NT79dtKJK4e3JEN1BdXQ1bW1tUVVXBxsamq7tDREREHVRbW4uioiJ4enrC3Ny8Q21UKCtQGF2ocbOVTC6D1yYvvS9bRdpa+gzbk9c4DYCIiIi6LadwJzhOcezUJ1iRfjGsEhERUbcmmUh6XZ6KOhfnrBIRERGR0WJYJSIiIiKjxbBKREREREbLoGE1MzMTYWFh6Nu3LyRJwr59+1qtn5GRAUmStLb8/HxDdpOIiIiIjJRBb7CqqanB0KFD8ctf/hIRERFtPq6goEBjGYPmpzoQERER0aPFoGF14sSJmDhxYruPc3Z2hp2dnf47REREREQPFaOcszps2DC4urri2WefxfHjx1utW1dXh+rqao2NiIiIiLoHowqrrq6ueP/995GamgqlUgkfHx88++yzyMzMbPGY+Ph42Nraqje5XN6JPSYiIiLqmLbcz0NGFlZ9fHwwe/ZsPPHEEwgMDERSUhKef/55JCYmtnjMsmXLUFVVpd6uXLnSiT0mIiJDEUKFW7cycO3abty6lQEhVF3dJaI2Ky8vx/z586FQKCCTySCXyxEWFoZjx44Z5HzNN6lXVlYapP271dXV4fHHH4ckScjJyTH4+Yz+CVZPPfUU/vznP7e4XyaTQSaTdWKPiIjI0CoqlCgsjEZd3VV1mUzmDi+vzXByCu/CntHDSKhEpz5utbi4GKNHj4adnR0SEhLg7++PhoYGpKWlISoqyqhXORJCQKVSoWfPliPikiVL0LdvX5w9e7ZT+mRUI6u6nDlzBq6url3dDSIi6iQVFUqcPx+pEVQBoK6uFOfPR6KiQtlFPaOHUYWyAtn9s3E2+CzypubhbPBZZPfPRoWywmDnnDt3LiRJwqlTpxAZGYkBAwbAz88PixYtQnZ2ts5jdI2M5uTkQJIkFBcXAwAuX76MsLAw2Nvbw9LSEn5+fjh06BCKi4sRHBwMALC3t4ckSZg5cyaApvCZkJAAhUIBCwsLDB06FCkpKVrnTUtLQ0BAAGQyGbKyslq8ts8++wxHjhxp9VdvfTPoyOrt27dRWFiofl1UVIScnBw4ODigX79+WLZsGUpLS/HJJ58AADZt2oT+/fvDz88P9fX1+POf/4zU1FSkpqYasptERGQkhFChsDAagNC1F4CEwsIYODpOgSSZdHLv6GFToazA+cjzWl+nutI6nI88D78UPziF63d5zJs3b+Lw4cNYt24dLC0ttfY/yGpHUVFRqK+vR2ZmJiwtLZGbmwsrKyvI5XKkpqYiIiJCvfynhYUFAGD58uVQKpVITk6Gt7c3MjMzMW3aNDg5OWHs2LHqtpcsWYLExEQoFIoW+3jt2jXMnj0b+/btQ69evTp8He1l0LD69ddfq5M+ACxatAgAMGPGDHz88ccoKytDSUmJen99fT0WL16M0tJSWFhYwM/PDwcPHsSkSZMM2U0iIjISlZVZWiOqmgTq6q6gsjIL9vbjOqlX9DASKoHC6MLW/r8HhTGFcJziqNcpAYWFhRBCYODAgXprs1lJSQkiIiIwZMgQAIBCoVDvc3BwAKC5/GdNTQ02btyI9PR0BAYGqo/54osvsH37do2wGhcXh5CQkBbPLYTAzJkzMWfOHAQEBKhHezuDQcPquHHjIISub0mTjz/+WOP1kiVLsGTJEkN2iYiIjFh9fZle69GjqzKrEnVX61quIIC6K3WozKqE/Th7vZ23OfdIkv7nxC5YsABvvPEGjhw5gueeew4RERHw9/dvsX5ubi5qa2u1Qmh9fT2GDRumURYQENDqubds2YLq6mosW7as4xfQQUY/Z5WIiB4dZmZtu0ehrfXo0VVfVq/Xem3l7e0NSZKQl5fXruN69GiKZHcP8jU0NGjUmTVrFi5duoTp06fj3LlzCAgIwJYtW1pss7GxEQBw8OBB5OTkqLfc3FyNeasAdE5ZuFt6ejqys7Mhk8nQs2dPeHl5AWgKuTNmzGj7hXYAwyoRERkNO7sgyGTuAFoalZIgk8lhZxfUmd2ih5CZq5le67WVg4MDQkNDsXXrVtTU1Gjtb2lpqeZHy5eV/e9XA13LQsnlcsyZMwdKpRKxsbHYsWMHAMDMrOk6VKr/LfE2aNAgyGQylJSUwMvLS2Nr77r07777Ls6ePasOvIcOHQIA7NmzB+vWrWtXW+1l9EtXERHRo0OSTODltRnnz0eiKbDePZWsKcB6eW3izVV0X3ZBdpC5y1BXWqd73qoEyNxlsAuy0/u5k5KSMGrUKIwYMQJxcXHw9/fHnTt3cPToUSQnJ+scdW0OkKtWrcLatWvx7bffYsOGDRp1YmJiMHHiRAwYMAC3bt1Ceno6fH19AQAeHh6QJAkHDhzApEmTYGFhAWtrayxevBgLFy5EY2MjxowZg+rqapw4cQJWVlbtGhHt16+fxmsrKysAwGOPPQZ3d/f2vkXtwpFVIiIyKk5O4fDzS4FM5qZRLpO5w88vheusUptIJhK8Nnv998W9O5v+4bXJyyDrrXp6euL06dMIDg5GbGwsBg8ejJCQEBw7dgzJyck6jzE1NcXu3buRn5+PoUOHYv369Vi7dq1GHZVKhaioKPj6+mLChAnw8fFBUlISAMDNzQ2rV6/G0qVL4eLignnz5gEA1qxZgxUrViA+Ph6+vr4IDQ3F/v374enpqffrNhRJtHYH1EOouroatra2qKqqgo2NTVd3h4iIOkgIFSors1BfXwYzM1fY2QVxRPURU1tbi6KiInh6esLc3LxDbVQoK1AYXahxs5VMLoPXJi+9L1tF2lr6DNuT1zgNgIiIjJIkmXB5KnpgTuFOcJzi2KlPsCL9YlglIiKibk0ykfS6PBV1Ls5ZJSIiIiKjxbBKREREREaLYZWIiIiIjBbDKhEREREZLYZVIiIiIjJaDKtEREREZLQYVomIiIi6gCRJ2LdvX1d3w+gxrBIRERHpWXl5OebPnw+FQgGZTAa5XI6wsDAcO3bMIOfLyMiAJEmorKw0SPsA0L9/f0iSpLEtXbrUYOdrxocCEBEREelRcXExRo8eDTs7OyQkJMDf3x8NDQ1IS0tDVFQU8vPzu7qLLRJCQKVSoWdP3RExLi4Os2fPVr+2srIyeJ84skpERETdmhAq3LqVgWvXduPWrQwIoTLo+ebOnQtJknDq1ClERkZiwIAB8PPzw6JFi5Cdna3zGF0jozk5OZAkCcXFxQCAy5cvIywsDPb29rC0tISfnx8OHTqE4uJiBAcHAwDs7e0hSRJmzpwJoCl8JiQkQKFQwMLCAkOHDkVKSorWedPS0hAQEACZTIasrKwWr83a2hp9+vRRb50RVjmySkRERN1WRYUShYXRqKu7qi6Tydzh5bUZTk7hej/fzZs3cfjwYaxbtw6WlpZa++3s7DrcdlRUFOrr65GZmQlLS0vk5ubCysoKcrkcqampiIiIQEFBAWxsbGBhYQEAWL58OZRKJZKTk+Ht7Y3MzExMmzYNTk5OGDt2rLrtJUuWIDExEQqFotU+rl+/HmvWrIFcLsdLL72E3/72tzAzM+vwNbUFwyoRERF1SxUVSpw/HwlAaJTX1ZXi/PlI+Pml6D2wFhYWQgiBgQMH6rVdACgpKUFERASGDBkCAFAoFOp9Dg4OAABnZ2d12KypqcHGjRuRnp6OwMBA9TFffPEFtm/frhFW4+LiEBIS0ur5o6Oj8cQTT8De3h6nTp3CsmXLUFRUhA8++ECfl6mFYZWIiIi6HSFUKCyMxr1B9b97AUgoLIyBo+MUSJKJHs/bdD5JkvTWZrMFCxbgjTfewJEjR/Dcc88hIiIC/v7+LdbPzc1FbW2tVgitr6/HsGHDNMoCAgLue/6FCxeq/93f3x/29vaIjIzE+vXr0bt373ZeTdtxzioRERF1O5WVWRo//WsTqKu7gsrKludndoS3tzckSUJeXl67juvRoymSNYddAGhoaNCoM2vWLFy6dAnTp0/HuXPnEBAQgC1btrTYZmNjIwDg4MGDyMnJUW+5ubka81YB6JyycD9PPfUUgKbRZENiWCUiIqJup76+TK/12srBwQGhoaHYunUrampqtPa3tLSUk5MTAKCs7H/9ycnJ0aonl8sxZ84cKJVKxMbGYseOHQCgnjeqUv3v5rFBgwZBJpOhpKQEXl5eGptcLu/oJaqdOXMGAODq6vrAbbWG0wCIiIio2zEza1uAamu99khKSsKoUaMwYsQIxMXFwd/fH3fu3MHRo0eRnJysc9S1OUCuWrUKa9euxbfffosNGzZo1ImJicHEiRMxYMAA3Lp1C+np6fD19QUAeHh4QJIkHDhwAJMmTYKFhQWsra2xePFiLFy4EI2NjRgzZgyqq6tx4sQJWFlZYcaMGW2+ppMnTyI7OxvBwcGwtbXFV199hYULF+KFF15Av379HuwNuw+OrBIREVG3Y2cXBJnMHUBLc0clyGRy2NkF6f3cnp6eOH36NIKDgxEbG4vBgwcjJCQEx44dQ3Jyss5jTE1NsXv3buTn52Po0KFYv3491q5dq1FHpVIhKioKvr6+mDBhAnx8fJCUlAQAcHNzw+rVq7F06VK4uLhg3rx5AIA1a9ZgxYoViI+Ph6+vL0JDQ7F//354enq265pkMhn27NmDcePGYdCgQVixYgVmz56N3bt3d+Adah9J3D05ohuorq6Gra0tqqqqYGNj09XdISIiog6qra1FUVERPD09YW5u3u7j/7caAKB5o1VTgDXEagCkqaXPsD15jSOrRERE1C05OYXDzy8FMpmbRrlM5s6g+hDhnFUiIiLqtpycwuHoOAWVlVmory+DmZkr7OyC9LpcFRkWwyoRERF1a5JkAnv7cV3dDeogTgMgIiIiIqPFsEpERERERothlYiIiIiMFsMqERERERkthlUiIiIiMloMq0RERERktBhWiYiIiLqAJEnYt29fV3fD6DGsEhEREelZeXk55s+fD4VCAZlMBrlcjrCwMBw7dswg58vIyIAkSaisrDRI+wDQv39/SJKksS1dutRg52vGhwIQERER6VFxcTFGjx4NOzs7JCQkwN/fHw0NDUhLS0NUVBTy8/O7uostEkJApVKhZ0/dETEuLg6zZ89Wv7aysjJ4nziySkRERN2aECrcupWBa9d249atDAihMuj55s6dC0mScOrUKURGRmLAgAHw8/PDokWLkJ2drfMYXSOjOTk5kCQJxcXFAIDLly8jLCwM9vb2sLS0hJ+fHw4dOoTi4mIEBwcDAOzt7SFJEmbOnAmgKXwmJCRAoVDAwsICQ4cORUpKitZ509LSEBAQAJlMhqysrBavzdraGn369FFvnRFWObJKRERE3VZFhRKFhdGoq7uqLpPJ3OHltRlOTuF6P9/Nmzdx+PBhrFu3DpaWllr77ezsOtx2VFQU6uvrkZmZCUtLS+Tm5sLKygpyuRypqamIiIhAQUEBbGxsYGFhAQBYvnw5lEolkpOT4e3tjczMTEybNg1OTk4YO3asuu0lS5YgMTERCoWi1T6uX78ea9asgVwux0svvYTf/va3MDMz6/A1tQXDKhEREXVLFRVKnD8fCUBolNfVleL8+Uj4+aXoPbAWFhZCCIGBAwfqtV0AKCkpQUREBIYMGQIAUCgU6n0ODg4AAGdnZ3XYrKmpwcaNG5Geno7AwED1MV988QW2b9+uEVbj4uIQEhLS6vmjo6PxxBNPwN7eHqdOncKyZctQVFSEDz74QJ+XqYVhlYiIiLodIVQoLIzGvUH1v3sBSCgsjIGj4xRIkokez9t0PkmS9NZmswULFuCNN97AkSNH8NxzzyEiIgL+/v4t1s/NzUVtba1WCK2vr8ewYcM0ygICAu57/oULF6r/3d/fH/b29oiMjMT69evRu3fvdl5N23HOKhEREXU7lZVZGj/9axOoq7uCysqW52d2hLe3NyRJQl5eXruO69GjKZI1h10AaGho0Kgza9YsXLp0CdOnT8e5c+cQEBCALVu2tNhmY2MjAODgwYPIyclRb7m5uRrzVgHonLJwP0899RSAptFkQ2JYJSIiom6nvr5Mr/XaysHBAaGhodi6dStqamq09re0tJSTkxMAoKzsf/3JycnRqieXyzFnzhwolUrExsZix44dAKCeN6pS/e/msUGDBkEmk6GkpAReXl4am1wu7+glqp05cwYA4Orq+sBttYbTAIiIiKjbMTNrW4Bqa732SEpKwqhRozBixAjExcXB398fd+7cwdGjR5GcnKxz1LU5QK5atQpr167Ft99+iw0bNmjUiYmJwcSJEzFgwADcunUL6enp8PX1BQB4eHhAkiQcOHAAkyZNgoWFBaytrbF48WIsXLgQjY2NGDNmDKqrq3HixAlYWVlhxowZbb6mkydPIjs7G8HBwbC1tcVXX32FhQsX4oUXXkC/fv0e7A27D46sEhERUbdjZxcEmcwdQEtzRyXIZHLY2QXp/dyenp44ffo0goODERsbi8GDByMkJATHjh1DcnKyzmNMTU2xe/du5OfnY+jQoVi/fj3Wrl2rUUelUiEqKgq+vr6YMGECfHx8kJSUBABwc3PD6tWrsXTpUri4uGDevHkAgDVr1mDFihWIj4+Hr68vQkNDsX//fnh6erbrmmQyGfbs2YNx48Zh0KBBWLFiBWbPno3du3d34B1qH0ncPTmiG6iuroatrS2qqqpgY2PT1d0hIiKiDqqtrUVRURE8PT1hbm7e7uP/txoAoHmjVVOANcRqAKSppc+wPXmNI6tERETULTk5hcPPLwUymZtGuUzmzqD6EOGcVSIiIuq2nJzC4eg4BZWVWaivL4OZmSvs7IL0ulwVGRbDKhEREXVrkmQCe/txXd0N6iBOAyAiIiIio8WwSkRERERGi2GViIiIiIwWwyoRERERGS2GVSIiIiIyWgYNq5mZmQgLC0Pfvn0hSRL27dt332M+//xzDB8+HObm5lAoFNi2bZshu0hERERERsygYbWmpgZDhw7Fe++916b6RUVFmDRpEoKCgnDmzBm8+eabWLBgAVJTUw3ZTSIiIqJO19aBvEedQcPqxIkTsXbtWoSHt+0JEdu2bUO/fv2wadMm+Pr6YtasWXj99deRmJhoyG4SERER6VV5eTnmz58PhUIBmUwGuVyOsLAwHDt2zCDny8jIgCRJqKysNEj7zQ4ePIiRI0fCwsICjo6Obc54D8KoHgpw8uRJjB8/XqMsNDQUH374IRoaGmBqaqp1TF1dHerq6tSvq6urDd5PIiIiopYUFxdj9OjRsLOzQ0JCAvz9/dHQ0IC0tDRERUUhPz+/q7vYIiEEVCoVevbUjoipqamYPXs23n77bTzzzDMQQuDcuXMG75NR3WBVXl4OFxcXjTIXFxfcuXMHN27c0HlMfHw8bG1t1ZtcLu+MrhIREdFDQqVSISMjA7t370ZGRgZUKpVBzzd37lxIkoRTp04hMjISAwYMgJ+fHxYtWoTs7Gydx+gaGc3JyYEkSSguLgYAXL58GWFhYbC3t4elpSX8/Pxw6NAhFBcXIzg4GABgb28PSZIwc+ZMAE3hMyEhAQqFAhYWFhg6dChSUlK0zpuWloaAgADIZDJkZWVp9e/OnTuIjo7GO++8gzlz5mDAgAHw8fFBZGSkft60VhjVyCrQNH/jbkIIneXNli1bhkWLFqlfV1dXM7ASERERAECpVCI6OhpXr15Vl7m7u2Pz5s0G+Qn75s2bOHz4MNatWwdLS0ut/XZ2dh1uOyoqCvX19cjMzISlpSVyc3NhZWUFuVyO1NRUREREoKCgADY2NrCwsAAALF++HEqlEsnJyfD29kZmZiamTZsGJycnjB07Vt32kiVLkJiYCIVCobOPp0+fRmlpKXr06IFhw4ahvLwcjz/+OBITE+Hn59fha2oLowqrffr0QXl5uUbZ9evX0bNnT/Tu3VvnMTKZDDKZrDO6R0RERA8RpVKJyMhI9cBXs9LSUkRGRiIlJUXvgbWwsBBCCAwcOFCv7QJASUkJIiIiMGTIEACAQqFQ73NwcAAAODs7q8NmTU0NNm7ciPT0dAQGBqqP+eKLL7B9+3aNsBoXF4eQkJAWz33p0iUAwKpVq7Bx40b0798fGzZswNixY3HhwgX1+Q3BqKYBBAYG4ujRoxplR44cQUBAgM75qkRERES6qFQqREdHawVV4H+/2sbExOh9SsD9fhF+EAsWLMDatWsxevRorFy5Et98802r9XNzc1FbW4uQkBBYWVmpt08++QQXL17UqBsQENBqW42NjQCAt956CxERERg+fDh27twJSZLw6aefPtiF3YdBw+rt27eRk5ODnJwcAE1LU+Xk5KCkpARA00/4r732mrr+nDlzcPnyZSxatAh5eXn46KOP8OGHH2Lx4sWG7CYRERF1M1lZWRo//d9LCIErV67onJ/5ILy9vSFJEvLy8tp1XI8ePdT9atbQ0KBRZ9asWbh06RKmT5+Oc+fOISAgAFu2bGmxzeaAefDgQXUey8nJQW5ursa8VQA6pyzczdXVFQAwaNAgdZlMJoNCoVDnOkMxaFj9+uuvMWzYMAwbNgwAsGjRIgwbNgwrVqwAAJSVlWlcoKenJw4dOoSMjAw8/vjjWLNmDd59911EREQYsptERETUzZSVlem1Xls5ODggNDQUW7duRU1Njdb+lpaWcnJy0upP82Df3eRyOebMmQOlUonY2Fjs2LEDAGBmZgYAGiPFgwYNgkwmQ0lJCby8vDS29t7fM3z4cMhkMhQUFKjLGhoaUFxcDA8Pj3a11V4GnbM6btw4ncPvzT7++GOtsrFjx+L06dMG7BURERF1d80jgfqq1x5JSUkYNWoURowYgbi4OPj7++POnTs4evQokpOTdY66NgfIVatWYe3atfj222+xYcMGjToxMTGYOHEiBgwYgFu3biE9PR2+vr4AAA8PD0iShAMHDmDSpEmwsLCAtbU1Fi9ejIULF6KxsRFjxoxBdXU1Tpw4ASsrK8yYMaPN12RjY4M5c+Zg5cqVkMvl8PDwwDvvvAMAeOmllx7g3bo/o5qzSkRERKQPQUFBcHd3b3HuqCRJkMvlCAoK0vu5PT09cfr0aQQHByM2NhaDBw9GSEgIjh07huTkZJ3HmJqaYvfu3cjPz8fQoUOxfv16rF27VqOOSqVCVFQUfH19MWHCBPj4+CApKQkA4ObmhtWrV2Pp0qVwcXHBvHnzAABr1qzBihUrEB8fD19fX4SGhmL//v3w9PRs93W98847eOWVVzB9+nQ8+eSTuHz5MtLT02Fvb9/uttpDEq0NfT6EqqurYWtri6qqKtjY2HR1d4iIiKiDamtrUVRUBE9PT5ibm7f7+ObVAADNuaDNAdYQqwGQppY+w/bkNY6sEhERUbcUHh6OlJQUuLm5aZS7u7szqD5EjGqdVSIiIiJ9Cg8Px5QpU5CVlYWysjK4uroiKCgIJiYmXd01aiOGVSIiIurWTExMMG7cuK7uBnUQpwEQERERkdFiWCUiIiIio8WwSkRERERGi2GViIiIiIwWwyoRERERGS2GVSIiIiIyWgyrRERERF1AkiTs27evq7th9BhWiYiIiPSsvLwc8+fPh0KhgEwmg1wuR1hYGI4dO2aQ82VkZECSJFRWVhqk/WYHDx7EyJEjYWFhAUdHx055ChgfCkBERESkR8XFxRg9ejTs7OyQkJAAf39/NDQ0IC0tDVFRUcjPz+/qLrZICAGVSoWePbUjYmpqKmbPno23334bzzzzDIQQOHfunMH7xJFVIiIi6tZUKhUyMjKwe/duZGRkQKVSGfR8c+fOhSRJOHXqFCIjIzFgwAD4+flh0aJFyM7O1nmMrpHRnJwcSJKE4uJiAMDly5cRFhYGe3t7WFpaws/PD4cOHUJxcTGCg4MBAPb29pAkCTNnzgTQFD4TEhKgUChgYWGBoUOHIiUlReu8aWlpCAgIgEwmQ1ZWllb/7ty5g+joaLzzzjuYM2cOBgwYAB8fH0RGRurnTWsFR1aJiIio21IqlYiOjsbVq1fVZe7u7ti8ebNBfsK+efMmDh8+jHXr1sHS0lJrv52dXYfbjoqKQn19PTIzM2FpaYnc3FxYWVlBLpcjNTUVERERKCgogI2NDSwsLAAAy5cvh1KpRHJyMry9vZGZmYlp06bByckJY8eOVbe9ZMkSJCYmQqFQ6Ozj6dOnUVpaih49emDYsGEoLy/H448/jsTERPj5+XX4mtqCYZWIiIi6JaVSicjISAghNMpLS0sRGRmJlJQUvQfWwsJCCCEwcOBAvbYLACUlJYiIiMCQIUMAAAqFQr3PwcEBAODs7KwOmzU1Ndi4cSPS09MRGBioPuaLL77A9u3bNcJqXFwcQkJCWjz3pUuXAACrVq3Cxo0b0b9/f2zYsAFjx47FhQsX1Oc3BE4DICIiom5HpVIhOjpaK6gCUJfFxMTofUpAc9uSJOm1XQBYsGAB1q5di9GjR2PlypX45ptvWq2fm5uL2tpahISEwMrKSr198sknuHjxokbdgICAVttqbGwEALz11luIiIjA8OHDsXPnTkiShE8//fTBLuw+GFaJiIio28nKytL46f9eQghcuXJF5/zMB+Ht7Q1JkpCXl9eu43r06KHuV7OGhgaNOrNmzcKlS5cwffp0nDt3DgEBAdiyZUuLbTYHzIMHDyInJ0e95ebmasxbBaBzysLdXF1dAQCDBg1Sl8lkMigUCpSUlLThCjuOYZWIiIi6nbKyMr3WaysHBweEhoZi69atqKmp0drf0tJSTk5OWv3JycnRqieXyzFnzhwolUrExsZix44dAAAzMzMA0BgpHjRoEGQyGUpKSuDl5aWxyeXydl3X8OHDIZPJUFBQoC5raGhAcXExPDw82tVWezGsEhERUbfTPBKor3rtkZSUBJVKhREjRiA1NRXffvst8vLy8O6776rnjt6rOUCuWrUKFy5cwMGDB7FhwwaNOjExMUhLS0NRURFOnz6N9PR0+Pr6AgA8PDwgSRIOHDiAiooK3L59G9bW1li8eDEWLlyIXbt24eLFizhz5gy2bt2KXbt2teuabGxsMGfOHKxcuRJHjhxBQUEB3njjDQDASy+91IF3qe0YVomIiKjbCQoKgru7e4tzRyVJglwuR1BQkN7P7enpidOnTyM4OBixsbEYPHgwQkJCcOzYMSQnJ+s8xtTUFLt370Z+fj6GDh2K9evXY+3atRp1VCoVoqKi4OvriwkTJsDHxwdJSUkAADc3N6xevRpLly6Fi4sL5s2bBwBYs2YNVqxYgfj4ePj6+iI0NBT79++Hp6dnu6/rnXfewSuvvILp06fjySefxOXLl5Geng57e/t2t9UektA18/ghVl1dDVtbW1RVVcHGxqaru0NEREQdVFtbi6KiInh6esLc3LzdxzevBgBozgVtDrCGWA2ANLX0GbYnr3FklYiIiLql8PBwpKSkwM3NTaPc3d2dQfUhwnVWiYiIqNsKDw/HlClTkJWVhbKyMri6uiIoKAgmJiZd3TVqI4ZVIiIi6tZMTEwwbty4ru4GdRCnARARERGR0WJYJSIiIiKjxbBKRERERq2bLVz0SNHHZ8ewSkREREbJ1NQUAPDjjz92cU+oo5o/u+bPsiN4gxUREREZJRMTE9jZ2eH69esAgF69erW4yD8ZFyEEfvzxR1y/fh12dnYPtPoCwyoREREZrT59+gCAOrDSw8XOzk79GXYUwyoREREZLUmS4OrqCmdnZzQ0NHR1d6gdTE1N9bKeLcPqA1KpVFxomIiIyMBMTEz49+sjimH1ASiVSkRHR+Pq1avqMnd3d2zevJmPcCMiIiLSA64G0EFKpRKRkZEaQRUASktLERkZCaVS2UU9IyIiIuo+GFY7QKVSITo6WufaYc1lMTExUKlUnd01IiIiom6FYbUDsrKytEZU7yaEwJUrV5CVldWJvSIiIiLqfhhWO6CsrEyv9YiIiIhIN4bVDnB1ddVrPSIiIiLSjWG1A4KCguDu7t7iUzQkSYJcLkdQUFAn94yIiIioe2FY7QATExNs3rwZALQCa/PrTZs2cT04IiIiogfEsNpB4eHhSElJgZubm0a5u7s7UlJSuM4qERERkR5IQtf6Sw+x6upq2NraoqqqCjY2NgY/H59gRURERNQ+7clrfILVAzIxMcG4ceO6uhtERERE3RKnARARERGR0WJYJSIiIiKjxbBKREREREaLYZWIiIiIjBbDKhEREREZLYZVIiIiIjJaDKtEREREZLQYVomIiIjIaDGsEhEREZHRMnhYTUpKgqenJ8zNzTF8+HBkZWW1WDcjIwOSJGlt+fn5hu4mERERERkhg4bVPXv2ICYmBm+99RbOnDmDoKAgTJw4ESUlJa0eV1BQgLKyMvXm7e1tyG4SERERkZEyaFjduHEjfvWrX2HWrFnw9fXFpk2bIJfLkZyc3Opxzs7O6NOnj3ozMTExZDeJiIiIyEgZLKzW19fj3//+N8aPH69RPn78eJw4caLVY4cNGwZXV1c8++yzOH78eKt16+rqUF1drbERERERUfdgsLB648YNqFQquLi4aJS7uLigvLxc5zGurq54//33kZqaCqVSCR8fHzz77LPIzMxs8Tzx8fGwtbVVb3K5XK/XQURERERdp6ehTyBJksZrIYRWWTMfHx/4+PioXwcGBuLKlStITEzE008/rfOYZcuWYdGiRerX1dXVDKxERERE3YTBRlYdHR1hYmKiNYp6/fp1rdHW1jz11FP49ttvW9wvk8lgY2OjsRERERFR92CwsGpmZobhw4fj6NGjGuVHjx7FqFGj2tzOmTNn4Orqqu/uEREREdFDwKDTABYtWoTp06cjICAAgYGBeP/991FSUoI5c+YAaPoJv7S0FJ988gkAYNOmTejfvz/8/PxQX1+PP//5z0hNTUVqaqohu0lERERERsqgYfXll1/G999/j7i4OJSVlWHw4ME4dOgQPDw8AABlZWUaa67W19dj8eLFKC0thYWFBfz8/HDw4EFMmjTJkN0kIiIiIiMlCSFEV3dCn6qrq2Fra4uqqirOXyUiIiIyQu3JawZfDYCIiB5OqkYVskqyUPZDGVytXRHULwgmPfiQFiLqXAyrRESkRZmnRPThaFytvqouc7dxx+YJmxHuG96FPSOiR41BH7dKREQPH2WeEpF/j9QIqgBQWl2KyL9HQpmn7KKeEdGjiGGViIjUVI0qRB+OhoD27QzNZTGHY6BqVHV214joEcWwSkREalklWVojqncTELhSfQVZJVmd2CsiepQxrBIRkVrZD2V6rUdE9KAYVomISM3Vum1PDGxrPSKiB8WwSkREakH9guBu4w4Jks79EiTIbeQI6hfUyT0jokcVwyoREamZ9DDB5gmbAUArsDa/3jRhE9dbJaJOw7BKREQawn3DkfLzFLjZuGmUu9u4I+XnKVxnlYg6FR+3SkREOvEJVi1QqYCsLKCsDHB1BYKCABO+L0TtwcetEhHRAzPpYYJx/cd1dTeMi1IJREcDV+9a3svdHdi8GQjniDORIXAaABERUVsolUBkpGZQBYDS0qZyJZ/sRWQIDKtERET3o1I1jajqmjnXXBYT01SPiPSKYZWIiOh+srK0R1TvJgRw5UpTPSLSK4ZVIiKi+ylr4xO72lqPiNqMYZWIiOh+XNv4xK621iOiNmNYJSIiup+goKa7/iXdT/aCJAFyeVM9ItIrhlUiIqL7MTFpWp4K0A6sza83beJ6q0QGwLBKRETUFuHhQEoK4Kb5ZC+4uzeVc51VIoPgQwGIiIjaKjwcmDKFT7Ai6kQMq0RERO1hYgKMG9fVvSB6ZHAaABEREREZLYZVIiIiIjJaDKtEREREZLQYVomIiIjIaDGsEhEREZHRYlglIiIiIqPFsEpERERERothlYiIiIiMFsMqERERERkthlUiIiIiMloMq0RERERktBhWiYiIiMhoMawSERERkdFiWCUiIiIio8WwSkRERERGi2GViIiIiIwWwyoRERERGS2GVSIiIiIyWgyrRERERGS0GFaJiIiIyGgxrBIRERGR0WJYJSIiIiKjxbBKREREREaLYZWIiIiIjBbDKhEREREZLYZVIiIiIjJaDKtEREREZLQYVomIiIjIaDGsEhEREZHRYlglIiIiIqPFsEpERERERothlYiIiIiMlsHDalJSEjw9PWFubo7hw4cjKyur1fqff/45hg8fDnNzcygUCmzbts3QXSQiIiIiI2XQsLpnzx7ExMTgrbfewpkzZxAUFISJEyeipKREZ/2ioiJMmjQJQUFBOHPmDN58800sWLAAqamphuwmERERERkpSQghDNX4yJEj8cQTTyA5OVld5uvrixdffBHx8fFa9X/3u9/hn//8J/Ly8tRlc+bMwdmzZ3Hy5Mk2nbO6uhq2traoqqqCjY3Ng18EEREREelVe/KawUZW6+vr8e9//xvjx4/XKB8/fjxOnDih85iTJ09q1Q8NDcXXX3+NhoYGQ3WViIiIiIxUT0M1fOPGDahUKri4uGiUu7i4oLy8XOcx5eXlOuvfuXMHN27cgKurq9YxdXV1qKurU7+urq7WQ++JiIiIyBgY/AYrSZI0XgshtMruV19XebP4+HjY2tqqN7lc/oA9JiIiIiJjYbCw6ujoCBMTE61R1OvXr2uNnjbr06ePzvo9e/ZE7969dR6zbNkyVFVVqbcrV67o5wKIiIiIqMsZLKyamZlh+PDhOHr0qEb50aNHMWrUKJ3HBAYGatU/cuQIAgICYGpqqvMYmUwGGxsbjY2IiIiIugeDTgNYtGgRPvjgA3z00UfIy8vDwoULUVJSgjlz5gBoGhV97bXX1PXnzJmDy5cvY9GiRcjLy8NHH32EDz/8EIsXLzZkN4mIiIjISBnsBisAePnll/H9998jLi4OZWVlGDx4MA4dOgQPDw8AQFlZmcaaq56enjh06BAWLlyIrVu3om/fvnj33XcRERFhyG4SERERkZEy6DqrXYHrrBIREREZ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K1euPNC5iYiIiB4F4eFASgrg5qZZ7u7eVG4s66y2+6EA8+bNwyuvvNJqnf79+3eoM3369AHQNMLqetckievXr2uNtjaTyWSQyWQdOh8RERHRoyw8HJgypZs9wcrR0RGOjo6G6As8PT3Rp08fHD16FMOGDQPQtKLA559/jvXr1xvknERERESPMhMTYNy4ru5Fyww6Z7WkpAQ5OTkoKSmBSqVCTk4OcnJycPv2bXWdgQMHYu/evQCafv6PiYnB22+/jb179+I///kPZs6ciV69emHq1KmG7CoRERERGaF2j6y2x4oVK7Br1y716+bR0uPHj2PcfyN8QUEBqqqq1HWWLFmCn376CXPnzsWtW7cwcuRIHDlyBNbW1obsKhEREREZIUkIXQ/aenhVV1fD1tYWVVVVsLGx6eruEBEREdE92pPXjGrpKiIiIiKiuzGsEhEREZHRYlglIiIiIqPFsEpERERERothlYiIiIiMFsMqERERERkthlUiIiIiMloMq0RERERktBhWiYiIiMhoMawSERERkdHq2dUd0Lfmp8dWV1d3cU+IiIiISJfmnNac21rT7cLqDz/8AACQy+Vd3BMiIiIias0PP/wAW1vbVutIoi2R9iHS2NiI7777DtbW1pAkqau780irrq6GXC7HlStXYGNj09XdoU7Gz//Rxc/+0cbP/9HVns9eCIEffvgBffv2RY8erc9K7XYjqz169IC7u3tXd4PuYmNjw/9gPcL4+T+6+Nk/2vj5P7ra+tnfb0S1GW+wIiIiIiKjxbBKREREREaLYZUMRiaTYeXKlZDJZF3dFeoC/PwfXfzsH238/B9dhvrsu90NVkRERETUfXBklYiIiIiMFsMqERERERkthlUiIiIiMloMq0RERERktBhWyeCKi4vxq1/9Cp6enrCwsMBjjz2GlStXor6+vqu7Rp1k3bp1GDVqFHr16gU7O7uu7g4ZWFJSEjw9PWFubo7hw4cjKyurq7tEnSAzMxNhYWHo27cvJEnCvn37urpL1Eni4+Px5JNPwtraGs7OznjxxRdRUFCgt/YZVsng8vPz0djYiO3bt+P8+fP44x//iG3btuHNN9/s6q5RJ6mvr8dLL72EN954o6u7Qga2Z88exMTE4K233sKZM2cQFBSEiRMnoqSkpKu7RgZWU1ODoUOH4r333uvqrlAn+/zzzxEVFYXs7GwcPXoUd+7cwfjx41FTU6OX9rl0FXWJd955B8nJybh06VJXd4U60ccff4yYmBhUVlZ2dVfIQEaOHIknnngCycnJ6jJfX1+8+OKLiI+P78KeUWeSJAl79+7Fiy++2NVdoS5QUVEBZ2dnfP7553j66acfuD2OrFKXqKqqgoODQ1d3g4j0qL6+Hv/+978xfvx4jfLx48fjxIkTXdQrIupsVVVVAKC3v+cZVqnTXbx4EVu2bMGcOXO6uitEpEc3btyASqWCi4uLRrmLiwvKy8u7qFdE1JmEEFi0aBHGjBmDwYMH66VNhlXqsFWrVkGSpFa3r7/+WuOY7777DhMmTMBLL72EWbNmdVHPSR868vnTo0GSJI3XQgitMiLqnubNm4dvvvkGu3fv1lubPfXWEj1y5s2bh1deeaXVOv3791f/+3fffYfg4GAEBgbi/fffN3DvyNDa+/lT9+fo6AgTExOtUdTr169rjbYSUfczf/58/POf/0RmZibc3d311i7DKnWYo6MjHB0d21S3tLQUwcHBGD58OHbu3IkePTio/7Brz+dPjwYzMzMMHz4cR48exc9+9jN1+dGjRzFlypQu7BkRGZIQAvPnz8fevXuRkZEBT09PvbbPsEoG991332HcuHHo168fEhMTUVFRod7Xp0+fLuwZdZaSkhLcvHkTJSUlUKlUyMnJAQB4eXnBysqqaztHerVo0SJMnz4dAQEB6l9RSkpKOEf9EXD79m0UFhaqXxcVFSEnJwcODg7o169fF/aMDC0qKgp//etf8Y9//APW1tbqX1dsbW1hYWHxwO1z6SoyuI8//hi//OUvde7j1+/RMHPmTOzatUur/Pjx4xg3blznd4gMKikpCQkJCSgrK8PgwYPxxz/+US/L15Bxy8jIQHBwsFb5jBkz8PHHH3d+h6jTtDQnfefOnZg5c+aDt8+wSkRERETGihMHiYiIiMhoMawSERERkdFiWCUiIiIio8WwSkRERERGi2GViIiIiIwWwyoRERERGS2GVSIiIiIyWgyrRERERGS0GFaJiIiIyGgxrBIRERGR0WJYJSIiIiKjxbBKREREREbr/wEfjHz9Yv4qXQAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 10 ---\n", - "Finale Cluster: [[1], [3], [5], [9], [2, 6], [4, 7], [0, 8]]\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAy0AAAJcCAYAAAD0GUvWAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA8kElEQVR4nO3de7zVc7748feufe22U0l2JbkVkzByyaGLSyk1cRh+miFiGLcR41ZCNcjD7cFcXGbIdSYGwxyOGEbhUKMIuc4wSkJI99Jtf39/dNrHau/SjqxP9Xw+HutR+7u/67vea+21a73297u+uyDLsiwAAAASVSffAwAAAKyNaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmiBPLrzzjujoKAgJk2aVOPn+/TpE9tuu23Osm233TZOOOGEDT/cBjBu3LgoKCiIBx988BvXPeGEE6rd9+/C1KlTo6CgIK699trvfNs1mTdvXlxxxRXRqVOnaNSoUZSUlMS2224bAwcOjFdeeaVqvVXPhalTp26QOV588cUYNmxYzJkzZ4NsP5821HPl+7bqOVBQUBDjxo2r9vksy2KHHXaIgoKC6Nat23rdxk033RR33nlnteW1+d78tr6Pr1efPn2iYcOGsXz58pzlkydPjoKCgth6662rXef555+PgoKC+PWvf71BZ9tUnq/wfRMtsJF5+OGH45JLLsn3GBvcJZdcEg8//HC+x/hW3n///dhjjz3iqquuiu7du8fo0aPjb3/7WwwfPjxmzpwZe+65Z8ydO/d7meXFF1+M4cOHb5LRsqlp2LBh3H777dWWP/vss/H+++9Hw4YN13vba4qWTU337t1jwYIF1X4gNG7cuKhfv358+umn8c4771T73KrrAukpzPcAQO3sscce39m2siyLr776KsrKyr7VdhYvXvytt7G67bff/jvd3vdtxYoVccQRR8QXX3wR48ePjw4dOlR9rmvXrjFgwIAYM2ZMFBUV5XHKb2/RokVRr169fI+xSTnmmGPij3/8Y/zud7+LRo0aVS2//fbbo3PnzjFv3rw8TrdxWBUe48aNi3333bdq+bhx46Jfv34xduzYGDt2bLRv3z7nc82aNcv5Xl0fy5Yti4KCgigs9BILvkv2tMBGpqbDw+bNmxfnnXdetG3bNoqLi6Nly5YxaNCgWLhwYc56BQUFceaZZ8Ytt9wSO++8c5SUlMRdd90VERHDhw+PffbZJ5o0aRKNGjWKH/7wh3H77bdHlmXVbr9Pnz7xl7/8JfbYY48oLS2N4cOHR0TEjBkz4pRTTonWrVtHcXFxVFRUxFFHHRUzZ87M2cayZcvi4osvjoqKimjUqFEcfPDB8e677+asU9MhFA888EDss88+UV5eHvXq1YvtttsuBg4cmLPOnDlz4pe//GVst912UVJSEs2bN4/evXtX+6lqRMT1118fbdu2jQYNGkTnzp1jwoQJ1daZNGlS/OhHP4omTZpEaWlp7LHHHvHnP/+52nqre+SRR2LKlCkxePDgNb4I6tWr11pf8K/pUMBu3brlHB5UWVkZl19+ebRr1y7KysqicePG0bFjx7jxxhsjImLYsGFx/vnnR0RE27ZtazwE6f7774/OnTtH/fr1o0GDBtGzZ8+YPHlyzu2ecMIJ0aBBg5gyZUr06NEjGjZsGAcddFBERDz11FPRr1+/aNWqVZSWlsYOO+wQp556anzxxRc52xg2bFgUFBTEm2++Gccee2yUl5fHVlttFQMHDqy21+l3v/tddOnSJZo3bx7169ePXXfdNa6++upYtmzZGh+ziIiDDjoo2rdvX+25u+rwqsMOO6xq2c033xy77bZbNGjQIBo2bBjt27ePIUOG5Fzv008/jVNPPTVatWoVxcXF0bZt2xg+fHi1Q4++K8cee2xERIwePbpq2dy5c+Ohhx6q9nxfZenSpXH55ZdH+/bto6SkJLbccss48cQT4/PPP69aZ9ttt40333wznn322arnwOrfY+vyvRkRMWrUqNhtt92itLQ0mjRpEkcccUS8/fbb1da78847o127dlFSUhI777xz3H333es9f23svvvuscUWW+Q8xysrK+P555+Pbt26RdeuXWPs2LE5tz9+/Pjo1q1bFBQUxHvvvRcnnnhi7LjjjlGvXr1o2bJl9O3bN6ZMmZJzO6sOq7vnnnvil7/8ZbRs2TJKSkrivffeq9X9B76ZHwNAAlasWFHjC6DVX3TVZNGiRdG1a9f46KOPYsiQIdGxY8d4880349JLL40pU6bE008/HQUFBVXrP/LII/H888/HpZdeGi1atIjmzZtHxMr3epx66qmxzTbbRETEhAkT4qyzzooZM2bEpZdemnObr7zySrz99tsxdOjQaNu2bdSvXz9mzJgRe+21VyxbtqxqjlmzZsWTTz4Zs2fPjq222qrq+kOGDIn/+I//iNtuuy3mzZsXF154YfTt2zfefvvtqFu3bo33c/z48XHMMcfEMcccE8OGDYvS0tKYNm1aPPPMM1XrzJ8/P/bff/+YOnVqXHjhhbHPPvvEggUL4rnnnotPPvkk56eqv/vd76J9+/Zxww03RMTKw9F69+4dH3zwQZSXl0dExNixY+PQQw+NffbZJ2655ZYoLy+P++67L4455phYtGjRWt9b9Le//S0iIg4//PBv+Ap+e1dffXUMGzYshg4dGl26dIlly5bFO++8U3Uo2Mknnxxffvll/OY3v4m//OUvVcfz77LLLhERceWVV8bQoUPjxBNPjKFDh8bSpUvjmmuuiQMOOCBeeumlqvUiVr64+9GPfhSnnnpqXHTRRVXP2/fffz86d+4cJ598cpSXl8fUqVPj+uuvj/333z+mTJlSbY/SkUceGcccc0ycdNJJVXEXsfLF8Crvv/9+9O/fvyrGX3vttbjiiivinXfeyVlvdWeffXb069cv/v73v8fBBx9ctXzMmDHx/vvvV71n4b777ovTTz89zjrrrLj22mujTp068d5778Vbb71VdZ1PP/009t5776hTp05ceumlsf3228f48ePj8ssvj6lTp8Ydd9xR66/XN2nUqFEcddRRMWrUqDj11FMjYmXA1KlTJ4455piq5+wqlZWV0a9fv3j++efjggsuiP322y+mTZsWl112WXTr1i0mTZoUZWVl8fDDD8dRRx0V5eXlcdNNN0VERElJSc621uV7c+TIkTFkyJA49thjY+TIkTFr1qwYNmxYdO7cOSZOnBg77rhjRKx8wX7iiSdGv3794rrrrou5c+fGsGHDYsmSJVGnTp1az//1bd5xxx1r/f6rU6dOdOnSJZ5++ulYvnx5FBYWxquvvhqzZ8+Orl27xooVK+Kyyy6rWn/ChAmxePHiqj00H3/8cTRt2jSuuuqq2HLLLePLL7+Mu+66K/bZZ5+YPHlytGvXLuf2Bg8eHJ07d45bbrkl6tSpE82bN1/n+w+sowzImzvuuCOLiLVe2rRpk3OdNm3aZAMGDKj6eOTIkVmdOnWyiRMn5qz34IMPZhGRPf7441XLIiIrLy/Pvvzyy7XOtWLFimzZsmXZiBEjsqZNm2aVlZU5t1+3bt3s3XffzbnOwIEDs6Kiouytt95a43bHjh2bRUTWu3fvnOV//vOfs4jIxo8fX7VswIABOff92muvzSIimzNnzhq3P2LEiCwisqeeemqN63zwwQdZRGS77rprtnz58qrlL730UhYR2ejRo6uWtW/fPttjjz2yZcuW5WyjT58+2dZbb52tWLFijbdz6KGHZhGRffXVV2tc5+tWPRc++OCDqmWrf61X6dq1a9a1a9eceXbfffe1bv+aa66ptv0sy7IPP/wwKywszM4666yc5fPnz89atGiRHX300VXLBgwYkEVENmrUqLXeVmVlZbZs2bJs2rRpWURkf/3rX6s+d9lll2URkV199dU51zn99NOz0tLSnOfa1616Tt59991Z3bp1c57Dqz9XVqxYkW233XZZv379crbRq1evbPvtt6+6jTPPPDNr3LjxWu/LqaeemjVo0CCbNm1azvJVz8c333xzrdevjVXPgYkTJ1Z9r7zxxhtZlmXZXnvtlZ1wwglZlmXZD37wg5yv/+jRo7OIyB566KGc7U2cODGLiOymm26qWrb6dVdZ1+/N2bNnZ2VlZdXW+/DDD7OSkpKsf//+WZat/BpUVFRkP/zhD3O+plOnTs2Kiopyvl61mf+uu+7K6tatm9111101PoZfd8MNN2QRkb344otZlmXZddddl2299dZZlmXZW2+9lfP4Dh8+PIuINf77tXz58mzp0qXZjjvumJ1zzjnVHrcuXbrkrF+b+w+sG6kPCbj77rtj4sSJ1S7777//N173scceiw4dOsTuu+8ey5cvr7r07NmzxrMQHXjggbHFFltU284zzzwTBx98cJSXl0fdunWjqKgoLr300pg1a1Z89tlnOet27Ngxdtppp5xlY8aMie7du8fOO+/8jTP/6Ec/qra9iIhp06at8Tp77bVXREQcffTR8ec//zlmzJhRbZ0xY8bETjvtlPPT9TU57LDDcvbqrD7De++9F++880785Cc/iYjIeWx79+4dn3zySY2HzeTD3nvvHa+99lqcfvrp8eSTT9bqPQ9PPvlkLF++PI4//vic+1haWhpdu3at8SxWRx55ZLVln332Wfz85z+P1q1bR2FhYRQVFUWbNm0iImo8bKim58BXX32V81ybPHly/OhHP4qmTZtWPSePP/74WLFiRfzzn/9c432qU6dOnHnmmfHYY4/Fhx9+GBEr99o88cQTcfrpp1ftedx7771jzpw5ceyxx8Zf//rXaoeyRaz8/urevXtUVFTkPD69evWKiJVvjl+TysrKnOusWLFijeuurmvXrrH99tvHqFGjYsqUKTFx4sQ1Hhr22GOPRePGjaNv3745t7f77rtHixYtavwarsk3fW+OHz8+Fi9eXG0vR+vWrePAAw+Mv//97xER8e6778bHH38c/fv3z9nT26ZNm9hvv/3We/5Vz9Pjjz/+G+/L19/XsurPrl27RkTEzjvvHM2bN686RGzcuHGx1VZbVf37tXz58rjyyitjl112ieLi4igsLIzi4uL417/+VePzefXvidrcf2DdiBZIwM477xydOnWqdll1mNLazJw5M15//fUoKirKuTRs2DCyLKv2QqymU32+9NJL0aNHj4iI+MMf/hAvvPBCTJw4MS6++OKIWPlG+2/axueffx6tWrVap/vbtGnTnI9XHaKy+u18XZcuXeKRRx6pesHSqlWr6NChQ85x/9/lDKveh3PeeedVe2xPP/30iIgaX+Susuowuw8++GCd5vk2Bg8eHNdee21MmDAhevXqFU2bNo2DDjpojafS/rpV93Ovvfaqdj/vv//+avexXr16OW8Oj1j54rxHjx7xl7/8JS644IL4+9//Hi+99FLVe4Rq+rp+0+P/4YcfxgEHHBAzZsyIG2+8MZ5//vmYOHFi/O53v1vjNr9u4MCBUVZWFrfccktErDwcsKysLOeF/3HHHRejRo2KadOmxZFHHhnNmzePffbZJ5566qmcx+fRRx+t9tj84Ac/iIi1PwdGjBiRc53anFyioKAgTjzxxLj33nvjlltuiZ122ikOOOCAGtedOXNmzJkzJ4qLi6vN+emnn651xtV909dl1qxZEVHzvwEVFRVVn1/1Z4sWLaqtt/qy73L+r9t1112jWbNmMXbs2Kr3s6yKloiV/6aMGzculixZEuPHj885a9i5554bl1xySRx++OHx6KOPxj/+8Y+YOHFi7LbbbjU+91Z/PGpz/4F14z0tsJFr1qxZlJWVrfEY/2bNmuV8/PWf+q1y3333RVFRUTz22GNRWlpatfyRRx6pcZs1bWPLLbeMjz76qBaT116/fv2iX79+sWTJkpgwYUKMHDky+vfvH9tuu2107tz5O51h1eM2ePDg+M///M8a11n9uPav69mzZ/z+97+PRx55JC666KL1mqG0tDSWLFlSbfkXX3yR83UtLCyMc889N84999yYM2dOPP300zFkyJDo2bNnTJ8+fa1v9l+1nQcffLBqz8ja1PS1f+ONN+K1116LO++8MwYMGFC1fNWbkdfHI488EgsXLoy//OUvOXO9+uqr63T98vLyGDBgQNx2221x3nnnxR133BH9+/ePxo0b56x34oknxoknnhgLFy6M5557Li677LLo06dP/POf/4w2bdpEs2bNomPHjnHFFVfUeDsVFRVrnOGUU06JPn36VH28+vtHvskJJ5wQl156adxyyy1rvP2IlV/Dpk2bxhNPPFHj57/NKZJXtypqPvnkk2qf+/jjj6ueT6vW+/TTT6utt/qyDTV/QUFBdO3aNZ544ol46aWXYs6cOTnR0rVr1xg2bFiMHz8+vvrqq5xouffee+P444+PK6+8MmebX3zxRbXn0Krb+rra3H9g3YgW2Mj16dMnrrzyymjatGm0bdt2vbax6vScXz9cavHixXHPPfes8zZ69eoV99xzT7z77rtrfTH/XSgpKYmuXbtG48aN48knn4zJkydH586do1evXnHppZfGM888EwceeOC3uo127drFjjvuGK+99lq1Fy7rol+/frHrrrvGyJEjo0+fPjWeQezJJ5+MAw44YI1Rse2228brr7+es+yf//xnvPvuu9VidJXGjRvHUUcdFTNmzIhBgwbF1KlTY5dddlnj3qyePXtGYWFhvP/++zUe9rUuVr1gW/1F+a233rpe21vTNrMsiz/84Q/rvI1f/OIXcdNNN8VRRx0Vc+bMiTPPPHON69avXz969eoVS5cujcMPPzzefPPNaNOmTfTp0ycef/zx2H777Ws8rHJtKioq1ho136Rly5Zx/vnnxzvvvJMTg6vr06dP3HfffbFixYrYZ5991rrNkpKSb9xLtTadO3eOsrKyuPfee+PHP/5x1fKPPvoonnnmmTjqqKMiYuX3z9Zbbx2jR4+Oc889t+rrOW3atHjxxRdzHpfazF9b3bt3j4ceeiiuueaaaN68ec7hq127do1Zs2bFb37zm6p1VykoKKj2fP7v//7vmDFjRuywww7feLu1uf/AuhEtsJEbNGhQPPTQQ9GlS5c455xzomPHjlFZWRkffvhh/O1vf4tf/vKX3/hC4LDDDovrr78++vfvH6ecckrMmjUrrr322lr9ZHjEiBExZsyY6NKlSwwZMiR23XXXmDNnTjzxxBNx7rnn5py5a31ceuml8dFHH8VBBx0UrVq1ijlz5sSNN94YRUVFVT89HTRoUNx///3Rr1+/uOiii2LvvfeOxYsXx7PPPht9+vSp9S+Nu/XWW6NXr17Rs2fPOOGEE6Jly5bx5Zdfxttvvx2vvPJKPPDAA2u8bt26dePhhx+OHj16ROfOneO0006L7t27R/369WPatGnx4IMPxqOPPhqzZ89e4zaOO+64+OlPfxqnn356HHnkkTFt2rS4+uqrY8stt8xZr2/fvtGhQ4fo1KlTbLnlljFt2rS44YYbok2bNlVnctp1110jIuLGG2+MAQMGRFFRUbRr1y623XbbGDFiRFx88cXx73//Ow499NDYYostYubMmfHSSy9F/fr1q05pvSbt27eP7bffPi666KLIsiyaNGkSjz76aM5hVrV1yCGHRHFxcRx77LFxwQUXxFdffRU333zzWh+v1e20005x6KGHxpgxY2L//feP3XbbLefzP/vZz6KsrCz+4z/+I7beeuv49NNPY+TIkVFeXl71HqoRI0bEU089Ffvtt1/84he/iHbt2sVXX30VU6dOjccffzxuueWWdT4kcX1cddVV37jO//t//y/++Mc/Ru/evePss8+OvffeO4qKiuKjjz6KsWPHRr9+/eKII46IiJXPg/vuuy/uv//+2G677aK0tLTqubEuGjduHJdcckkMGTIkjj/++Dj22GNj1qxZMXz48CgtLa06I1edOnXiV7/6VZx88slxxBFHxM9+9rOYM2dODBs2rNrhUbWZ/+67746BAwfGqFGjavW+llVnTvu6Dh06RNOmTePhhx+Oli1bVn2vRKwMqTvvvDPat28fHTt2jJdffjmuueaadf5a1+b+A+sozycCgM3a188WVJPDDjvsG88elmVZtmDBgmzo0KFZu3btsuLi4qy8vDzbdddds3POOSf79NNPq9aLiOyMM86o8bZGjRqVtWvXLispKcm22267bOTIkdntt99e4xmtDjvssBq3MX369GzgwIFZixYtsqKioqyioiI7+uijs5kzZ2ZZ9n9n2nnggQdyrrfqjF533HFH1bLVzwj12GOPZb169cpatmyZFRcXZ82bN8969+6dPf/88znbmj17dnb22Wdn22yzTVZUVJQ1b948O+yww7J33nkn57auueaaavNHRHbZZZflLHvttdeyo48+OmvevHlWVFSUtWjRIjvwwAOzW265pcbHYHVz5szJfvWrX2U//OEPswYNGmRFRUXZNttsk/30pz/NXnjhhar1ajp7WGVlZXb11Vdn2223XVZaWpp16tQpe+aZZ6qdPey6667L9ttvv6xZs2ZZcXFxts0222QnnXRSNnXq1JxZBg8enFVUVGR16tTJIiIbO3Zs1eceeeSRrHv37lmjRo2ykpKSrE2bNtlRRx2VPf3001XrDBgwIKtfv36N9/Ott97KDjnkkKxhw4bZFltskf34xz/OPvzww2qP6aqzh33++ec516/p/j/66KPZbrvtlpWWlmYtW7bMzj///GzMmDHVZl/9ufJ1d955ZxYR2X333Vftc3fddVfWvXv3bKuttsqKi4urnq+vv/56znqff/559otf/CJr27ZtVlRUlDVp0iTbc889s4svvjhbsGBBjbe7Pr7p34NVajoD2LJly7Jrr7226vFq0KBB1r59++zUU0/N/vWvf1WtN3Xq1KxHjx5Zw4YNc85OWJvvzSzLsttuuy3r2LFj1b83/fr1q/FMarfddlu24447ZsXFxdlOO+2UjRo1qsav17rOv+oxWn2etWnRokUWEdlvf/vbap87/PDDs4jIfvKTn+Qsnz17dnbSSSdlzZs3z+rVq5ftv//+2fPPP1/te29Nj1tt7z/wzQqybB1+EQQAbISOPPLImDBhQkydOrXa74oBYOPh8DAANilLliyJV155JV566aV4+OGH4/rrrxcsABs5e1oA2KRMnTo12rZtG40aNYr+/fvHb3/725yTTACw8REtAABA0vxySQAAIGmiBQAASJpoAQAAkva9nz2ssrIyPv7442jYsGHVb4gFAAA2P1mWxfz586OioiLq1Fnz/pTvPVo+/vjjaN269fd9swAAQKKmT58erVq1WuPnv/doadiwYUSsHKxRo0bf980DAACJmDdvXrRu3bqqEdbke4+WVYeENWrUSLQAAADf+LYRb8QHAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAklaY7wEgn7Isi8XLVuR7DABWU1ZUNwoKCvI9BpAI0cJmK8uyOOqW8fHytNn5HgWA1XRqs0U88PPOwgWICIeHsRlbvGyFYAFI1KRps+0JB6rY0wIRMWnowVGvuG6+xwDY7C1auiI6Xf50vscAEiNaICLqFdeNesW+HQAAUuTwMAAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkvatomXkyJFRUFAQgwYN+o7GAQAAyLXe0TJx4sT4/e9/Hx07dvwu5wEAAMixXtGyYMGC+MlPfhJ/+MMfYosttviuZwIAAKiyXtFyxhlnxGGHHRYHH3zwdz0PAABAjsLaXuG+++6LV155JSZOnLhO6y9ZsiSWLFlS9fG8efNqe5MAAMBmrFZ7WqZPnx5nn3123HvvvVFaWrpO1xk5cmSUl5dXXVq3br1egwIAAJunWkXLyy+/HJ999lnsueeeUVhYGIWFhfHss8/Gr3/96ygsLIwVK1ZUu87gwYNj7ty5VZfp06d/Z8MDAACbvlodHnbQQQfFlClTcpadeOKJ0b59+7jwwgujbt261a5TUlISJSUl325KAABgs1WraGnYsGF06NAhZ1n9+vWjadOm1ZYDAAB8F77VL5cEAADY0Gp99rDVjRs37jsYAwAAoGb2tAAAAEkTLQAAQNJECwAAkDTRAgAAJE20AAAASRMtAABA0kQLAACQNNECAAAkTbQAAABJEy0AAEDSRAsAAJA00QIAACRNtAAAAEkTLQAAQNJECwAAkDTRAgAAJE20AAAASRMtAABA0kQLAACQNNECAAAkTbQAAABJK8z3AACQkizLYvGyFfkeY7O1aOnyGv/O96+sqG4UFBTkewyICNECAFWyLIujbhkfL0+bne9RiIhOl/893yNs1jq12SIe+Hln4UISHB4GAP9r8bIVggX+16Rps+11JBn2tABADSYNPTjqFdfN9xjwvVu0dEV0uvzpfI8BOUQLANSgXnHdqFfsv0mAFDg8DAAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAklaraLn55pujY8eO0ahRo2jUqFF07tw5xowZs6FmAwAAqF20tGrVKq666qqYNGlSTJo0KQ488MDo169fvPnmmxtqPgAAYDNXWJuV+/btm/PxFVdcETfffHNMmDAhfvCDH3yngwEAAETUMlq+bsWKFfHAAw/EwoULo3Pnzmtcb8mSJbFkyZKqj+fNm7e+NwkAAGyGav1G/ClTpkSDBg2ipKQkfv7zn8fDDz8cu+yyyxrXHzlyZJSXl1ddWrdu/a0GBgAANi+1jpZ27drFq6++GhMmTIjTTjstBgwYEG+99dYa1x88eHDMnTu36jJ9+vRvNTAAALB5qfXhYcXFxbHDDjtERESnTp1i4sSJceONN8att95a4/olJSVRUlLy7aYEAAA2W9/697RkWZbznhUAAIDvUq32tAwZMiR69eoVrVu3jvnz58d9990X48aNiyeeeGJDzQcAAGzmahUtM2fOjOOOOy4++eSTKC8vj44dO8YTTzwRhxxyyIaaDwAA2MzVKlpuv/32DTUHAABAjb71e1oAAAA2JNECAAAkTbQAAABJEy0AAEDSRAsAAJA00QIAACRNtAAAAEkTLQAAQNJECwAAkDTRAgAAJE20AAAASRMtAABA0kQLAACQNNECAAAkTbQAAABJEy0AAEDSRAsAAJA00QIAACRNtAAAAEkTLQAAQNJECwAAkDTRAgAAJE20AAAASRMtAABA0kQLAACQNNECAAAkTbQAAABJEy0AAEDSRAsAAJA00QIAACRNtAAAAEkTLQAAQNJECwAAkDTRAgAAJE20AAAASRMtAABA0kQLAACQNNECAAAkTbQAAABJEy0AAEDSRAsAAJA00QIAACRNtAAAAEkTLQAAQNJECwAAkDTRAgAAJE20AAAASRMtAABA0kQLAACQNNECAAAkTbQAAABJEy0AAEDSRAsAAJA00QIAACRNtAAAAEkTLQAAQNJECwAAkDTRAgAAJE20AAAASRMtAABA0kQLAACQNNECAAAkTbQAAABJEy0AAEDSRAsAAJA00QIAACRNtAAAAEkTLQAAQNJECwAAkDTRAgAAJE20AAAASRMtAABA0kQLAACQNNECAAAkTbQAAABJEy0AAEDSRAsAAJA00QIAACRNtAAAAEkTLQAAQNJECwAAkDTRAgAAJE20AAAASRMtAABA0grzPQAAwIaSZVksXr4432NsVBYtW/G1vy+OKKibx2k2LmWFZVFQUJDvMTZJogUA2CRlWRbHjzk+Xv381XyPslHJKosi4lcREdHtz12joM6y/A60Edmj+R5x16F3CZcNQLQAAJukxcsXC5b1UFBnWTTc+aJ8j7FRmvzZ5Fi8fHHUK6qX71E2OaIFANjkjTt6XJQVluV7DDZRi5cvjm5/7pbvMTZpogUA2OSVFZb56TdsxJw9DAAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKTVKlpGjhwZe+21VzRs2DCaN28ehx9+eLz77rsbajYAAIDaRcuzzz4bZ5xxRkyYMCGeeuqpWL58efTo0SMWLly4oeYDAAA2c4W1WfmJJ57I+fiOO+6I5s2bx8svvxxdunT5TgcDAACIqGW0rG7u3LkREdGkSZM1rrNkyZJYsmRJ1cfz5s37NjcJAABsZtb7jfhZlsW5554b+++/f3To0GGN640cOTLKy8urLq1bt17fmwQAADZD6x0tZ555Zrz++usxevTota43ePDgmDt3btVl+vTp63uTAADAZmi9Dg8766yz4r/+67/iueeei1atWq113ZKSkigpKVmv4QAAAGoVLVmWxVlnnRUPP/xwjBs3Ltq2bbuh5gIAAIiIWkbLGWecEX/605/ir3/9azRs2DA+/fTTiIgoLy+PsrKyDTIgAACweavVe1puvvnmmDt3bnTr1i223nrrqsv999+/oeYDAAA2c7U+PAwAAOD7tN5nDwMAAPg+iBYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASFphvgdgHWRZxLJF+Z5i07N0xdf+vigi6uZtlE1WUb2IgoJ8TwEAbORES+qyLGJUz4jp/8j3JJuerCQi7lj592t2iChYktdxNkmt940Y+IRwAQC+FdGSumWLBMsGUq9gSUwt7Z/vMTZt0yesfA4X18/3JADARky0bEzOey+iuF6+p4BvtnRRxLU75HsKAGATIVo2JsX1/MQaAIDNjrOHAQAASRMtAABA0kQLAACQNNECAAAkTbQAAABJEy0AAEDSRAsAAJA00QIAACRNtAAAAEkTLQAAQNJECwAAkDTRAgAAJE20AAAASRMtAABA0kQLAACQNNECAAAkTbQAAABJEy0AAEDSRAsAAJA00QIAACRNtAAAAEkrzPcAsNnJsohli/I9xYa1dFHNf9+UFdWLKCjI9xQAsEkSLfB9yrKIUT0jpv8j35N8f67dId8TfD9a7xsx8AnhAgAbgMPD4Pu0bNHmFSybk+kTNv09aACQJ/a0QL6c915Ecb18T8G3tXTR5rM3CQDyRLRAvhTXiyiun+8pAGCjkWVZLF6+ON9jVPP1mVKcLyKirLAsCjbiQ5hFCwAAycuyLI4fc3y8+vmr+R5lrbr9uVu+R6jRHs33iLsOvWujDRfvaQEAIHmLly9OPlhSNvmzycnuBVoX9rQAALBRGXf0uCgrLMv3GBuFxcsXJ7v3pzZECwAAG5WywrKoV+RkNpsTh4cBAABJEy0AAEDSRAsAAJA00QIAACRNtAAAAEkTLQAAQNJECwAAkDTRAgAAJE20AAAASat1tDz33HPRt2/fqKioiIKCgnjkkUc2wFgAAAAr1TpaFi5cGLvttlv89re/3RDzAAAA5Cis7RV69eoVvXr12hCzAAAAVOM9LQAAQNJqvaeltpYsWRJLliyp+njevHkb+iYBAIBNyAbf0zJy5MgoLy+vurRu3XpD3yQAALAJ2eDRMnjw4Jg7d27VZfr06Rv6JgEAgE3IBj88rKSkJEpKSjb0zQAAAJuoWkfLggUL4r333qv6+IMPPohXX301mjRpEttss813OhwAAECto2XSpEnRvXv3qo/PPffciIgYMGBA3Hnnnd/ZYAAAABHrES3dunWLLMs2xCwAAADV+D0tAABA0kQLAACQNNECAAAkTbQAAABJEy0AAEDSRAsAAJA00QIAACRNtAAAAEkTLQAAQNJECwAAkDTRAgAAJE20AAAASRMtAABA0kQLAACQNNECAAAkTbQAAABJEy0AAEDSRAsAAJA00QIAACRNtAAAAEkTLQAAQNJECwAAkDTRAgAAJE20AAAASRMtAABA0kQLAACQNNECAAAkTbQAAABJEy0AAEDSRAsAAJA00QIAACRNtAAAAEkTLQAAQNJECwAAkDTRAgAAJE20AAAASRMtAABA0kQLAACQNNECAAAkTbQAAABJK8z3AMnIsohli/I9RXVLF9X895QU1YsoKMj3FAAAbKJES8TKYBnVM2L6P/I9ydpdu0O+J6hZ630jBj4hXAA2U1mWxeLli/M9RjVfnynF+SIiygrLosD/n/CNREvEyj0sqQdLyqZPWPkYFtfP9yRsyuwNXT/2hLKBZVkWx485Pl79/NV8j7JW3f7cLd8j1GiP5nvEXYfeJVzgG4iW1Z33XkRxvXxPsXFYuijdvT9sWuwNXX/2hLKBLV6+OPlgSdnkzybH4uWLo16R1x6wNqJldcX17DGA1Ngbuv7sCeV7NO7ocVFWWJbvMTYKi5cvTnbvD6RItAAbF3tD1409oeRBWWGZPQbABiFagI2LvaEAsNnxe1oAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKStV7TcdNNN0bZt2ygtLY0999wznn/++e96LgAAgIhYj2i5//77Y9CgQXHxxRfH5MmT44ADDohevXrFhx9+uCHmAwAANnO1jpbrr78+TjrppDj55JNj5513jhtuuCFat24dN99884aYDwAA2MwV1mblpUuXxssvvxwXXXRRzvIePXrEiy++WON1lixZEkuWLKn6eO7cuRERMW/evNrOuuEsXRixJFv593nzIopX5HeejYXHrfY8ZuvH41Z7HrP1smjp8qhcsigiVv4/tby4Vv9NbpYWLVsUKxavfH7Nmzcvlhctz/NEGwePW+15zNZP6o/bqibIsmztK2a1MGPGjCwishdeeCFn+RVXXJHttNNONV7nsssuyyLCxcXFxcXFxcXFxcWlxsv06dPX2iHr9SOkgoKCnI+zLKu2bJXBgwfHueeeW/VxZWVlfPnll9G0adM1XgcAANj0ZVkW8+fPj4qKirWuV6toadasWdStWzc+/fTTnOWfffZZbLXVVjVep6SkJEpKSnKWNW7cuDY3CwAAbKLKy8u/cZ1avRG/uLg49txzz3jqqadylj/11FOx33771W46AACAdVDrw8POPffcOO6446JTp07RuXPn+P3vfx8ffvhh/PznP98Q8wEAAJu5WkfLMcccE7NmzYoRI0bEJ598Eh06dIjHH3882rRpsyHmAwAANnMF2TeeXwwAACB/av3LJQEAAL5PogUAAEiaaAEAAJK2WUfLCSecEAUFBWu8TJgwId8jJuull16Knj17RsOGDaNBgwbRvXv3eOGFF/I9VtLmz58fF1xwQfTo0SO23HLLKCgoiGHDhuV7rKQ988wzMXDgwGjfvn3Ur18/WrZsGf369YuXX34536Ml73/+53+id+/escUWW0RZWVnsuOOO8atf/SrfYyVt8uTJcfjhh0dFRUXUq1cv2rdvHyNGjIhFixble7Qkvfrqq3HYYYfFNttsE2VlZdGkSZPo3Llz3HvvvfkeLWnjxo3zumM9LFiwIAYNGhQVFRVRWloau+++e9x33335Hmujctttt0VBQUE0aNAg36Osl1qfPWxTcskll9R4qua+fftGSUlJ7LXXXnmYKn0TJ06MLl26xN577x333HNPZFkWV199dRx00EExduzY6Ny5c75HTNKsWbPi97//fey2225x+OGHx2233ZbvkZJ38803x6xZs+Lss8+OXXbZJT7//PO47rrrYt99940nn3wyDjzwwHyPmKQ//elPcdxxx8XRRx8dd999dzRo0CDef//9+Pjjj/M9WrLeeuut2G+//aJdu3Zxww03RLNmzeK5556LESNGxMsvvxx//etf8z1icubMmROtW7eOY489Nlq2bBkLFy6MP/7xj3HcccfF1KlTY+jQofkeMWlXXnlldO/ePWdZhw4d8jRN+v7zP/8zJk6cGFdddVXstNNO8ac//SmOPfbYqKysjP79++d7vOTNmDEjzjvvvKioqIi5c+fme5z1k5Fj3LhxWURkQ4cOzfcoyerZs2e21VZbZQsXLqxaNm/evKxZs2bZfvvtl8fJ0lZZWZlVVlZmWZZln3/+eRYR2WWXXZbfoRI3c+bMasvmz5+fbbXVVtlBBx2Uh4nS99FHH2X169fPTjvttHyPslG5+OKLs4jI3nvvvZzlp5xyShYR2ZdffpmnyTY+++yzT9a6det8j5GssWPHZhGRPfDAA/keZaPx3//931lEZH/6059ylh9yyCFZRUVFtnz58jxNtvHo06dP1rdv32zAgAFZ/fr18z3OetmsDw+rye233x4FBQUxcODAfI+SrBdeeCG6desW9erVq1rWsGHD6NKlS7z44ovxySef5HG6dK3a/c+6a968ebVlDRo0iF122SWmT5+eh4nSd9ttt8XChQvjwgsvzPcoG5WioqKIiCgvL89Z3rhx46hTp04UFxfnY6yNUrNmzaKwcLM+kIPv2MMPPxwNGjSIH//4xznLTzzxxPj444/jH//4R54m2zjce++98eyzz8ZNN92U71G+FdHyNXPnzo0HH3wwDjrooGjbtm2+x0nW0qVLo6SkpNryVcumTJnyfY/EZmTu3LnxyiuvxA9+8IN8j5Kk5557Lpo0aRLvvPNO7L777lFYWBjNmzePn//85zFv3rx8j5esAQMGROPGjeO0006Lf//73zF//vx47LHH4tZbb40zzjgj6tevn+8Rk1VZWRnLly+Pzz//PG666aZ48sknRfM6OOOMM6KwsDAaNWoUPXv2jP/5n//J90jJeuONN2LnnXeuFsMdO3as+jw1++yzz2LQoEFx1VVXRatWrfI9zrciWr5m9OjRsXjx4jjppJPyPUrSdtlll5gwYUJUVlZWLVu+fHnVTzpmzZqVr9HYDJxxxhmxcOHCuPjii/M9SpJmzJgRixYtih//+MdxzDHHxNNPPx3nn39+3H333dG7d+/I/D7hGm277bYxfvz4eOONN2L77bePRo0aRd++fWPAgAFx44035nu8pJ1++ulRVFQUzZs3j3POOSd+/etfx6mnnprvsZJVXl4eZ599dtx6660xduzYuPHGG2P69OnRrVu3ePLJJ/M9XpJmzZoVTZo0qbZ81TKvO9bs9NNPj3bt2sVpp52W71G+Nftvv+b222+Ppk2bxhFHHJHvUZJ21llnxUknnRRnnnlmXHzxxVFZWRnDhw+PadOmRUREnTpamA3jkksuiT/+8Y/xm9/8Jvbcc898j5OkysrK+Oqrr+Kyyy6Liy66KCIiunXrFsXFxTFo0KD4+9//HgcffHCep0zP1KlTo2/fvrHVVlvFgw8+GFtuuWX84x//iMsvvzwWLFgQt99+e75HTNaQIUPi5JNPjs8++yweffTROPPMM2PhwoVx3nnn5Xu0JO2xxx6xxx57VH18wAEHxBFHHBG77rprXHDBBdGzZ888TpeutR1e7dDrmj300EPx6KOPxuTJkzeJx8iry//1+uuvx6RJk+KnP/1pjYc+8X8GDhwYV111Vdxzzz3RqlWr2GabbeKtt96q+g+qZcuWeZ6QTdHw4cPj8ssvjyuuuCLOPPPMfI+TrKZNm0ZEVHvh06tXr4iIeOWVV773mTYGF110UcybNy+efPLJOPLII6NLly5x/vnnxw033BCjRo2KZ599Nt8jJmubbbaJTp06Re/evePmm2+OU045JQYPHhyff/55vkfbaDRu3Dj69OkTr7/+eixevDjf4ySnadOmNe5N+fLLLyMiatwLs7lbsGBBnHHGGXHWWWdFRUVFzJkzJ+bMmRNLly6NiJVn/1u4cGGep6wd0fK/Vv0U7eSTT87zJBuHCy+8ML744ouYMmVKTJ06NV588cWYPXt21K9f30/A+c4NHz48hg0bFsOGDYshQ4bke5ykrTrGe3WrDguzJ7Rmr776auyyyy7V3ruy6tT3jplfd3vvvXcsX748/v3vf+d7lI3Kqu/RTeEn4t+1XXfdNd5+++1Yvnx5zvJV76F1qujqvvjii5g5c2Zcd911scUWW1RdRo8eHQsXLowtttgifvKTn+R7zFrxv1dELFmyJO69997Ye++9PfFroaSkJDp06BBt2rSJDz/8MO6///742c9+FmVlZfkejU3Ir371qxg2bFgMHTo0LrvssnyPk7wjjzwyIiLGjBmTs/zxxx+PiIh99933e59pY1BRURFvvvlmLFiwIGf5+PHjIyI2+jewfp/Gjh0bderUie222y7fo2w0Zs+eHY899ljsvvvuUVpamu9xknPEEUfEggUL4qGHHspZftddd0VFRUXss88+eZosXS1atIixY8dWu/Ts2TNKS0tj7Nixcfnll+d7zFrxnpaIeOSRR+LLL7+0l2UdvfHGG/HQQw9Fp06doqSkJF577bW46qqr/MbtdTBmzJhYuHBhzJ8/PyJW/kK7Bx98MCIievfunXMaaSKuu+66uPTSS+PQQw+Nww47rNpvi/YCvLoePXpE3759Y8SIEVFZWRn77rtvTJo0KYYPHx59+vSJ/fffP98jJmnQoEFx+OGHxyGHHBLnnHNONGvWLCZMmBAjR46MXXbZperwOv7PKaecEo0aNYq99947ttpqq/jiiy/igQceiPvvvz/OP//82HLLLfM9YpL69+9fdUhds2bN4l//+ldcd911MXPmzLjzzjvzPV6SevXqFYccckicdtppMW/evNhhhx1i9OjR8cQTT8S9994bdevWzfeIySktLY1u3bpVW37nnXdG3bp1a/xc8vL8e2KScMghh2T169fP5s2bl+9RNgrvvvtu1qVLl6xJkyZZcXFxtsMOO2RDhw7NFixYkO/RktemTZssImq8fPDBB/keLzldu3Zd4+Pln681W7RoUXbhhRdmrVu3zgoLC7NtttkmGzx4cPbVV1/le7SkPfPMM1mPHj2yFi1aZGVlZdlOO+2U/fKXv8y++OKLfI+WpFGjRmUHHHBA1qxZs6ywsDBr3Lhx1rVr1+yee+7J92hJGzlyZLb77rtn5eXlWd26dbMtt9wyO+KII7KXXnop36Mlbf78+dkvfvGLrEWLFllxcXHWsWPHbPTo0fkea6OzMf9yyYIsc/5LAAAgXd7TAgAAJE20AAAASRMtAABA0kQLAACQNNECAAAkTbQAAABJEy0AAEDSRAsAAJA00QIAACRNtAAAAEkTLQAAQNJECwAAkLT/D7bnR8mrAmMfAAAAAElFTkSuQmCC\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "from scipy.cluster.hierarchy import linkage, dendrogram\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "import pandas as pd\n", - "\n", - "# Anzahl der Datenpunktansammlungen (Cluster)\n", - "num_clusters = 2\n", - "\n", - "# Anzahl der Datenpunkte pro Cluster\n", - "points_per_cluster = 5\n", - "\n", - "# Größe des \"Noise\"-Bereichs\n", - "noise_scale = 1\n", - "\n", - "# Beispiel Daten - Clusterpunkte und \"Noise\" Punkte\n", - "np.random.seed(0)\n", - "clusters = []\n", - "for _ in range(num_clusters):\n", - " cluster_center = np.random.rand(2) * (1 - noise_scale)\n", - " cluster = cluster_center + np.random.randn(points_per_cluster, 2) * noise_scale\n", - " clusters.append(cluster)\n", - "\n", - "# Zusammenführen der Clusterpunkte\n", - "X = np.concatenate(clusters, axis=0)\n", - "\n", - "# Initialisierung: Jeder Datenpunkt ist ein Cluster\n", - "clusters = [[i] for i in range(X.shape[0])]\n", - "\n", - "# Schleife für jeden Schritt der hierarchischen Clusteranalyse\n", - "for step in range(X.shape[0] - 1):\n", - " print(f\"\\n--- Schritt {step + 1} ---\")\n", - " print(\"Aktuelle Cluster:\", clusters)\n", - "\n", - " # Berechnung der Abstandsmatrix mit Ward-Methode\n", - " linkage_matrix = linkage(X, 'ward')\n", - "\n", - " # Ausgabe der Abstandsmatrix\n", - " print(\"Abstandsmatrix nach Linkage:\")\n", - " print(linkage_matrix)\n", - "\n", - " # Tabelle mit den Abständen zwischen den Clustern erstellen\n", - " distances = []\n", - " for i in range(len(linkage_matrix)):\n", - " cluster1, cluster2, distance, _ = linkage_matrix[i]\n", - " cluster1, cluster2 = int(cluster1), int(cluster2) # Konvertiere zu ganzzahligen Indizes\n", - " if cluster1 < len(clusters) and cluster2 < len(clusters):\n", - " distances.append([cluster1, cluster2, distance, len(clusters[cluster1]), len(clusters[cluster2])])\n", - "\n", - " # Streudiagramm zeichnen\n", - " colors = ['b', 'g', 'r', 'c', 'm', 'y', 'k']\n", - " plt.figure(figsize=(8, 6))\n", - " for idx, cluster in enumerate(clusters):\n", - " for point_idx in cluster:\n", - " plt.scatter(X[point_idx, 0], X[point_idx, 1], color=colors[idx % len(colors)], label=f'Cluster {idx}')\n", - " plt.title('Hierarchische Clusteranalyse - Schritt {}'.format(step + 1))\n", - " plt.legend()\n", - " plt.show()\n", - "\n", - " # Wenn nur noch ein Cluster übrig ist, breche die Schleife ab\n", - " if len(clusters) == 1:\n", - " break\n", - "\n", - " # Identifiziere die beiden nächsten Cluster\n", - " cluster1, cluster2 = int(linkage_matrix[step][0]), int(linkage_matrix[step][1])\n", - "\n", - " # Überprüfe, ob die Cluster existieren, bevor sie zusammengeführt werden\n", - " if cluster1 < len(clusters) and cluster2 < len(clusters):\n", - " new_cluster = clusters[cluster1] + clusters[cluster2]\n", - " del clusters[max(cluster1, cluster2)]\n", - " del clusters[min(cluster1, cluster2)]\n", - " clusters.append(new_cluster)\n", - "\n", - "# Ausgabe des finalen Clusters\n", - "print(f\"\\n--- Schritt {X.shape[0]} ---\")\n", - "print(\"Finale Cluster:\", clusters)\n", - "\n", - "# Dendrogramm erstellen und anzeigen\n", - "plt.figure(figsize=(10, 7))\n", - "plt.title('Hierarchische Clusteranalyse - Methode: Ward')\n", - "dendrogram(linkage_matrix)\n", - "plt.show()\n" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "id": "1a4f2193", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[array([[0.59180595, 0.86775975],\n", - " [0.68068795, 0.54594264],\n", - " [0.588941 , 0.62853471],\n", - " [0.48361027, 0.68473028],\n", - " [0.50833651, 0.78909778]]), array([[0.55562643, 0.86640441],\n", - " [0.66064801, 0.81252115],\n", - " [0.54254688, 0.7476274 ],\n", - " [0.25594112, 0.89839883],\n", - " [0.59768372, 0.75882047]])]\n", - "[[0.59180595 0.86775975]\n", - " [0.68068795 0.54594264]\n", - " [0.588941 0.62853471]\n", - " [0.48361027 0.68473028]\n", - " [0.50833651 0.78909778]\n", - " [0.55562643 0.86640441]\n", - " [0.66064801 0.81252115]\n", - " [0.54254688 0.7476274 ]\n", - " [0.25594112 0.89839883]\n", - " [0.59768372 0.75882047]]\n", - "\n", - "--- Schritt 1 ---\n", - "Aktuelle Cluster: [[0], [1], [2], [3], [4], [5], [6], [7], [8], [9]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 0. 5. 0.0362049 2. ]\n", - " [ 4. 7. 0.05376004 2. ]\n", - " [ 6. 9. 0.08275424 2. ]\n", - " [ 3. 11. 0.10797673 3. ]\n", - " [ 1. 2. 0.12344616 2. ]\n", - " [10. 12. 0.13930155 4. ]\n", - " [13. 15. 0.23028243 7. ]\n", - " [14. 16. 0.37874766 9. ]\n", - " [ 8. 17. 0.47988728 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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URGmTZumrDN06FBMmjQJPj4+CAoKwueffw53d3eVoHu3hQsXoqqqSrldunSpLZdCRERERHqoizaVu3fvDolEojbqeuXKFbXR2SZxcXEIDAzEW2+9BQDw9vaGqakpgoKCsGLFCtjZ2akdY2BggCeeeKLFkVipVAqpVKpN94mIiIjoEaHVSKyRkRF8fX2RmZmpUp6ZmYmAgACNx/z+++8wMFA9jUQiAdA4gquJKIrIy8vTGHCJiIiIiLQaiQWAOXPmIDIyEn5+fvD398eHH36IkpIS5fSAhQsXorS0FNu3bwcAjB07Fq+99hqSk5MRGhqKsrIyxMTEYPDgwejVqxcAYPny5Rg6dCjc3NxQXV2N9evXIy8vD4mJiTq8VCIiIiJ6VGgdYidMmIBr164hNjYWZWVl6N+/P9LS0uDo6AgAKCsrU1kzdvLkyfjtt9/w/vvvY+7cubC0tMTTTz+NVatWKetUVlbi9ddfR3l5OSwsLDBw4EBkZ2dj8ODBOrhEIiIiInrUCGJzn+nrmerqalhYWKCqqgrm5uYd3R0iIiIiuosu81qbVicgIiIiIupIDLFEREREpHcYYomIiIhI7zDEEhEREZHeYYglIiIiIr3DEEtEREREeochloiIiIj0DkMsEREREekdhlgiIiIi0jsMsURERESkdxhiiYiIiEjvMMQSERERkd5hiCUiIiIivcMQS0RERER6hyGWiIiIiPQOQywRERER6R2GWCIiIiLSOwyxRERERKR3GGKJiIiISO8wxBIRERGR3mGIJSIiIiK9wxBLRERERHqHIZaIiIiI9A5DLBERERHpHYZYIiIiItI7DLFEREREpHcYYomIiIhI7zDEEhEREZHeYYglIiIiIr3DEEtEREREeochloiIiIj0DkMsEREREekdhlgiIiIi0jtdOroDRERERNRIoVAgJycHZWVlsLOzQ1BQECQSSUd366HEEEtERET0EJDL5YiOjsbly5eVZQ4ODli3bh3CwsI6sGcPJ04nICIiIupgcrkcERERKgEWAEpLSxEREQG5XN5BPXt4McQSERERdSCFQoHo6GiIoqi2r6ksJiYGCoXiQXftocYQS0RERNSBcnJy1EZg7ySKIi5duoScnJwH2KuHH0MsERERUQcqKyvTab3OgiGWiIiIqAPZ2dnptF5nwRBLRERE1IGCgoLg4OAAQRA07hcEATKZDEFBQQ+4Zw83hlgiIiKiDiSRSLBu3ToAUAuyTT8nJCRwvdi7MMQSERERdbCwsDCkpKTA3t5epdzBwQEpKSlcJ1YDQdS0noMeqq6uhoWFBaqqqmBubt7R3SEiIiLS2qP+jV26zGv8xi4iIiKih4REIsHw4cM7uht6gdMJiIiIiEjvMMQSERERkd5hiCUiIiIivdOmEJuUlARnZ2cYGxvD19f3nl+D9umnn8LHxwePPfYY7Ozs8Morr+DatWsqdVJTU9GvXz9IpVL069cPu3btakvXiIiIiKgT0DrE7ty5EzExMVi0aBGOHz+OoKAgjB49GiUlJRrrHzp0CC+99BKmTJmCU6dO4YsvvsD333+PqVOnKuscOXIEEyZMQGRkJE6cOIHIyEiMHz8e3333XduvjIiIiIgeWVovsTVkyBAMGjQIycnJyjJPT0+88MILiIuLU6u/evVqJCcn4/z588qyDRs2ID4+HpcuXQIATJgwAdXV1fjqq6+UdUaNGgUrKyvs2LGjVf3iEltEREREDzdd5jWtRmLr6urw448/IiQkRKU8JCQEhw8f1nhMQEAALl++jLS0NIiiiF9//RUpKSl47rnnlHWOHDmi1mZoaGizbRIRERFR56ZViL169SoUCgVsbW1Vym1tbVFeXq7xmICAAHz66aeYMGECjIyM0LNnT1haWmLDhg3KOuXl5Vq1CQC1tbWorq5W2YiIiIioc2jTg113f6+vKIpqZU3y8/Mxa9YsLFmyBD/++CPS09NRVFSEadOmtblNAIiLi4OFhYVyk8lkbbkUIiIiItJDWoXY7t27QyKRqI2QXrlyRW0ktUlcXBwCAwPx1ltvwdvbG6GhoUhKSsKWLVtQVlYGAOjZs6dWbQLAwoULUVVVpdya5tcSERER0aNPqxBrZGQEX19fZGZmqpRnZmYiICBA4zG///47DAxUT9P0HcBNz5T5+/urtbl///5m2wQAqVQKc3NzlY2IiIiIOocu2h4wZ84cREZGws/PD/7+/vjwww9RUlKinB6wcOFClJaWYvv27QCAsWPH4rXXXkNycjJCQ0NRVlaGmJgYDB48GL169QIAREdH46mnnsKqVaswbtw4/Oc//8HXX3+NQ4cO6fBSiYiIiOhRoXWInTBhAq5du4bY2FiUlZWhf//+SEtLg6OjIwCgrKxMZc3YyZMn47fffsP777+PuXPnwtLSEk8//TRWrVqlrBMQEIDPPvsMixcvxjvvvIM+ffpg586dGDJkiA4ukYiIiIgeNVqvE/uw4jqxRERERA+3DlsnloiIiIjoYcAQS0RERER6R+s5sURERG0hKkRU5lSirqwORnZGsAyyhCBpfj1wIqKWMMQSEVG7q5BXoDC6ELWXa5VlUgcpXNe5wibMpgN7RkT6itMJiIioXVXIK3Aq4pRKgAWA2tJanIo4hQp5RQf1jIj0GUMsERG1G1EhojC6ENC0Ds7/ygpjCiEqHomFcojoAWKIJSKidlOZU6k2AqtCBGov1aIyp/KB9YmIHg0MsURE1G7qyup0Wo+IqAlDLBERtRsjOyOd1iMiasIQS0RE7cYyyBJSBynQ3EpaAiCVSWEZZPkgu0VEjwCGWCIiajeCRIDrOtf//XD3zsY/XBNcuV4sEWmNIZaIiNqVTZgNvFK8ILWXqpRLHaTwSvHiOrFE1Cb8sgMiImp3NmE26D6uO7+xi4h0hiGWiIgeCEEiwGq4VUd3g4geEZxOQERERER6hyGWiIiIiPQOQywRERER6R2GWCIiIiLSOwyxRERERKR3GGKJiIiISO8wxBIRERGR3mGIJSIiIiK9wxBLRERERHqHIZaIiIiI9A5DLBERERHpHYZYIiIiItI7DLFEREREpHcYYomIiIhI7zDEEhEREZHeYYglIiIiIr3DEEtEREREeochloiIiIj0DkMsEREREekdhlgiIiIi0jsMsURERESkdxhiiYiIiEjvMMQSERERkd5hiCUiIiIivdOloztAREREekyhAHJygLIywM4OCAoCJJKO7hV1AgyxRERE1DZyORAdDVy+/GeZgwOwbh0QFtZx/aJOgdMJiIiISHtyORARoRpgAaC0tLFcLu+YflGnwRBLRERE2lEoGkdgRVF9X1NZTExjPaJ2whBLRERE2snJUR+BvZMoApcuNdYjaicMsURERKSdsjLd1iNqA4ZYIiIi0o6dnW7rEbUBQywRERFpJyiocRUCQdC8XxAAmayxHlE7YYglIiIi7UgkjctoAepBtunnhASuF0vtiiGWiIiItBcWBqSkAPb2quUODo3lXCeW2hm/7ICIiIjaJiwMGDeO39hFHaJNI7FJSUlwdnaGsbExfH19kdPCEhqTJ0+GIAhqm5eXl7LO1q1bNdapqalpS/eIiIjoQZFIgOHDgb/+tfFPBlh6QLQOsTt37kRMTAwWLVqE48ePIygoCKNHj0ZJSYnG+uvWrUNZWZlyu3TpEqytrfHiiy+q1DM3N1epV1ZWBmNj47ZdFRERERE90rSeTrB27VpMmTIFU6dOBQAkJCQgIyMDycnJiIuLU6tvYWEBCwsL5c+7d+/GjRs38Morr6jUEwQBPXv21LY7RERE7Uah4CflRA8rrUZi6+rq8OOPPyIkJESlPCQkBIcPH25VG5s3b8aIESPg6OioUn7z5k04OjrCwcEBY8aMwfHjx1tsp7a2FtXV1SobERGRrsjlgJMTEBwMTJzY+KeTU2M5EXU8rULs1atXoVAoYGtrq1Jua2uL8vLyex5fVlaGr776SjmK26Rv377YunUrvvzyS+zYsQPGxsYIDAzEuXPnmm0rLi5OOcprYWEBmUymzaUQERE1Sy4HIiLUv1m1tLSxnEGWqOO16cEu4a414URRVCvTZOvWrbC0tMQLL7ygUj506FBMmjQJPj4+CAoKwueffw53d3ds2LCh2bYWLlyIqqoq5Xbp0qW2XAoREZEKhQKIjgZEUX1fU1lMTGM9Iuo4Ws2J7d69OyQSidqo65UrV9RGZ+8miiK2bNmCyMhIGBkZtVjXwMAATzzxRIsjsVKpFFKptPWdJyIiaoWcHPUR2DuJInDpUmO94cMfWLeI6C5ajcQaGRnB19cXmZmZKuWZmZkICAho8dhvv/0WhYWFmDJlyj3PI4oi8vLyYMfvXCYiogesrEy39YiofWi9OsGcOXMQGRkJPz8/+Pv748MPP0RJSQmmTZsGoPFj/tLSUmzfvl3luM2bN2PIkCHo37+/WpvLly/H0KFD4ebmhurqaqxfvx55eXlITExs42URERG1TWvHTzjOQtSxtA6xEyZMwLVr1xAbG4uysjL0798faWlpytUGysrK1NaMraqqQmpqKtY1fc/yXSorK/H666+jvLwcFhYWGDhwILKzszF48OA2XBIREVHbBQU1fnNqaanmebGC0Lg/KOjB942I/iSIoqb/RfVPdXU1LCwsUFVVBXNz847uDhER6bGm1QkA1SDb9AxzSkrjN64SkXZ0mdfatDoBERHRoywsrDGo2turljs4MMASPSy0nk5ARETUGYSFAePG8Ru7iB5WDLFERETNkEi4jBbRw4rTCYiIiIhI7zDEEhEREZHeYYglIiIiIr3DEEtEREREeochloiIiIj0DkMsEREREekdhlgiIiIi0jsMsURERESkdxhiiYiIiEjvMMQSERERkd5hiCUiIiIivcMQS0RERER6hyGWiIiIiPQOQywRERER6R2GWCIiIiLSOwyxRERERKR3GGKJiIiISO8wxBIRERGR3mGIJSIiIiK9wxBLRERERHqHIZaIiIiI9A5DLBERERHpHYZYIiIiItI7DLFEREREpHcYYomIiIhI7zDEEhEREZHeYYglIiIiIr3DEEtEREREeochloiIiIj0DkMsEREREekdhlgiIiIi0jsMsURERESkdxhiiYiIiEjvdOnoDjxIDQ0NqKur6+hukBYMDQ0hkUg6uhtERET0kOk0Ibaurg5FRUVoaGjo6K6QliwtLdGzZ08IgtDRXSEiIqKHRKcIsaIooqysDBKJBDKZDAYGnEWhD0RRxO+//44rV64AAOzs7Dq4R0RERPSw6BQh9vbt2/j999/Rq1cvPPbYYx3dHdKCiYkJAODKlSvo0aMHpxYQERERgE7yYJdCoQAAGBkZdXBPqC2a/uFRX1/fwT0hIiKih0WnCLFNOKdSP/F9IyIiort1qhD7qBIEAbt37+7obhARERE9MAyxD7ny8nLMnDkTLi4ukEqlkMlkGDt2LA4cONAu5zt48CAEQUBlZWW7tA8AN27cQGRkJCwsLGBhYYHIyMh2PR8RERE9ejrFg136qri4GIGBgbC0tER8fDy8vb1RX1+PjIwMREVF4fTp0x3dxWaJogiFQoEuXdRvsYkTJ+Ly5ctIT08HALz++uuIjIzEnj17HnQ3iYiISE9xJFYLCgVw8CCwY0fjn/97XqzdTJ8+HYIg4OjRo4iIiIC7uzu8vLwwZ84c5ObmajxG00hqXl4eBEFAcXExAODixYsYO3YsrKysYGpqCi8vL6SlpaG4uBjBwcEAACsrKwiCgMmTJwNoDKXx8fFwcXGBiYkJfHx8kJKSonbejIwM+Pn5QSqVIicnR61/BQUFSE9Px0cffQR/f3/4+/tj06ZN2Lt3L86cOaObF46IiIgeeRyJbSW5HIiOBi5f/rPMwQFYtw4IC9P9+a5fv4709HSsXLkSpqamavstLS3b3HZUVBTq6uqQnZ0NU1NT5Ofnw8zMDDKZDKmpqQgPD8eZM2dgbm6uXOJq8eLFkMvlSE5OhpubG7KzszFp0iTY2Nhg2LBhyrbnz5+P1atXw8XFRWMfjxw5AgsLCwwZMkRZNnToUFhYWODw4cPw8PBo83URERFR58EQ2wpyORARAYiianlpaWN5Sorug2xhYSFEUUTfvn112zCAkpIShIeHY8CAAQAAFxcX5T5ra2sAQI8ePZQh9NatW1i7di2ysrLg7++vPObQoUPYuHGjSoiNjY3FyJEjmz13eXk5evTooVbeo0cPlJeX3/e1ERERUefQpukESUlJcHZ2hrGxMXx9fTV+bNxk8uTJEARBbfPy8lKpl5qain79+kEqlaJfv37YtWtXW7qmcwpF4wjs3QEW+LMsJkb3UwvE/zXeHstLzZo1CytWrEBgYCCWLl2Kn376qcX6+fn5qKmpwciRI2FmZqbctm/fjvPnz6vU9fPzu+f5NV2TKIpcSouIiIhaTesQu3PnTsTExGDRokU4fvw4goKCMHr0aJSUlGisv27dOpSVlSm3S5cuwdraGi+++KKyzpEjRzBhwgRERkbixIkTiIyMxPjx4/Hdd9+1/cp0JCdHdQrB3UQRuHSpsZ4uubm5QRAEFBQUaHVc01fqinek7ru/JGDq1Km4cOECIiMjcfLkSfj5+WHDhg3NttnQ0AAA2LdvH/Ly8pRbfn6+yrxYABqnPtypZ8+e+PXXX9XKKyoqYGtr2/LFEREREf2P1iF27dq1mDJlCqZOnQpPT08kJCRAJpMhOTlZY30LCwv07NlTuf3www+4ceMGXnnlFWWdhIQEjBw5EgsXLkTfvn2xcOFCPPPMM0hISGjzhelKWZlu67WWtbU1QkNDkZiYiFu3bqntb25JKhsbm//1588O5eXlqdWTyWSYNm0a5HI55s6di02bNgH481vNFHcMLTeNkJeUlMDV1VVlk8lkWl2Xv78/qqqqcPToUWXZd999h6qqKgQEBGjVFhEREXVeWoXYuro6/PjjjwgJCVEpDwkJweHDh1vVxubNmzFixAg4Ojoqy44cOaLWZmhoaKvbbE92drqtp42kpCQoFAoMHjwYqampOHfuHAoKCrB+/Xrl3NS7NQXLZcuW4ezZs9i3bx/WrFmjUicmJgYZGRkoKirCsWPHkJWVBU9PTwCAo6MjBEHA3r17UVFRgZs3b6Jr166YN28eZs+ejW3btuH8+fM4fvw4EhMTsW3bNq2uydPTE6NGjcJrr72G3Nxc5Obm4rXXXsOYMWP4UBcRERG1mlYh9urVq1AoFGof+9ra2rbqoZyysjJ89dVXmDp1qkp5eXm51m3W1taiurpaZWsPQUGNqxA0N11TEACZrLGerjk7O+PYsWMIDg7G3Llz0b9/f4wcORIHDhxoduTb0NAQO3bswOnTp+Hj44NVq1ZhxYoVKnUUCgWioqKUgdLDwwNJSUkAAHt7eyxfvhwLFiyAra0tZsyYAQB49913sWTJEsTFxcHT0xOhoaHYs2cPnJ2dtb6uTz/9FAMGDEBISAhCQkLg7e2NTz75ROt2iIiIqPNq0+oEdz+A09qHcrZu3QpLS0u88MIL991mXFwcli9f3roO3weJpHEZrYiIxsB65wNeTd1LSGis1x7s7Ozw/vvv4/3332+2jnjXU2eBgYFqD2vdWael+a8A8M477+Cdd95RKRMEAbNmzcKsWbM0HjN8+HC1fjTH2toa//d//9equkRERESaaDUS2717d0gkErUR0itXrtzzoRxRFLFlyxZERkYq51026dmzp9ZtLly4EFVVVcrt0qVL2lyKVsLCGpfRsrdXLXdwaJ/ltYiIiIioZVqFWCMjI/j6+iIzM1OlPDMz854P5Xz77bcoLCzElClT1Pb5+/urtbl///4W25RKpTA3N1fZ2lNYGFBcDHzzDfDvfzf+WVTEAEtERETUEbSeTjBnzhxERkbCz88P/v7++PDDD1FSUoJp06YBaBwhLS0txfbt21WO27x5M4YMGYL+/furtRkdHY2nnnoKq1atwrhx4/Cf//wHX3/9NQ4dOtTGy2ofEgkwfHhH94KIiIiItA6xEyZMwLVr1xAbG4uysjL0798faWlpytUGysrK1NaMraqqQmpqKtatW6exzYCAAHz22WdYvHgx3nnnHfTp0wc7d+5U+WpSIiIiIqImgtjap3EectXV1bCwsEBVVZXa1IKamhoUFRUpv2WM9AvfPyIiokdDS3lNW2362lkiIiIioo7EEEtEREREeochloiIiIj0DkMsEREREekdhthHgCAI2L17d0d3g4iIiOiBYYh9yJWXl2PmzJlwcXGBVCqFTCbD2LFjceDAgXY538GDByEIAiorK9ulfQBYuXIlAgIC8Nhjj8HS0rLdzkNERESPLq3XiaUHp7i4GIGBgbC0tER8fDy8vb1RX1+PjIwMREVF4fTp0x3dxWaJogiFQoEuXdRvsbq6Orz44ovw9/fH5s2bO6B3REREpO84EqsFRYMCB4sPYsfJHThYfBCKBkW7nm/69OkQBAFHjx5FREQE3N3d4eXlhTlz5iA3N1fjMZpGUvPy8iAIAoqLiwEAFy9exNixY2FlZQVTU1N4eXkhLS0NxcXFCA4OBgBYWVlBEARMnjwZQGMojY+Ph4uLC0xMTODj44OUlBS182ZkZMDPzw9SqRQ5OTka+7h8+XLMnj0bAwYMuP8XiYhaRSGKOHjjBnb8+isO3rgBxaOxRDgRdWIciW0leYEc0enRuFx9WVnmYO6AdaPWIcwzTOfnu379OtLT07Fy5UqYmpqq7b+fj+GjoqJQV1eH7OxsmJqaIj8/H2ZmZpDJZEhNTUV4eDjOnDkDc3NzmJiYAAAWL14MuVyO5ORkuLm5ITs7G5MmTYKNjQ2GDRumbHv+/PlYvXo1XFxcOFWA6CEhr6hAdGEhLtfWKsscpFKsc3VFmI1NB/aMiKjtGGJbQV4gR8TnERChOnJRWl2KiM8jkDI+RedBtrCwEKIoom/fvjptFwBKSkoQHh6uHAl1cXFR7rO2tgYA9OjRQxlCb926hbVr1yIrKwv+/v7KYw4dOoSNGzeqhNjY2FiMHDlS530moraRV1Qg4tQp3D3uWlpbi4hTp5Di5cUgS0R6idMJ7kHRoEB0erRagAWgLItJj9H51IKmbwMWBEGn7QLArFmzsGLFCgQGBmLp0qX46aefWqyfn5+PmpoajBw5EmZmZspt+/btOH/+vEpdPz8/nfeXiNpGIYqILizU8NsLyrKYwkJOLSAivcQQew85JTkqUwjuJkLEpepLyCnRPP+zrdzc3CAIAgoKCrQ6zsCg8S0V7/hLqb6+XqXO1KlTceHCBURGRuLkyZPw8/PDhg0bmm2zoaEBALBv3z7k5eUpt/z8fJV5sQA0Tn0goo6RU1mpMoXgbiKAS7W1yGnH1UiIiNoLQ+w9lP1WptN6rWVtbY3Q0FAkJibi1q1bavubWwLL5n8fC5aV/dmfvLw8tXoymQzTpk2DXC7H3LlzsWnTJgCAkZERAECh+HNkuV+/fpBKpSgpKYGrq6vKJpPJ2nqJRNTOyurqdFqPiOhhwhB7D3Zd7XRaTxtJSUlQKBQYPHgwUlNTce7cORQUFGD9+vXKual3awqWy5Ytw9mzZ7Fv3z6sWbNGpU5MTAwyMjJQVFSEY8eOISsrC56engAAR0dHCIKAvXv3oqKiAjdv3kTXrl0xb948zJ49G9u2bcP58+dx/PhxJCYmYtu2bVpfV0lJCfLy8lBSUgKFQqEc2b1586b2LxIRNcvuf/8o1VU9IqKHCUPsPQT1DoKDuQMEaJ6bKkCAzFyGoN5BOj+3s7Mzjh07huDgYMydOxf9+/fHyJEjceDAASQnJ2s8xtDQEDt27MDp06fh4+ODVatWYcWKFSp1FAoFoqKi4OnpiVGjRsHDwwNJSUkAAHt7eyxfvhwLFiyAra0tZsyYAQB49913sWTJEsTFxcHT0xOhoaHYs2cPnJ2dtb6uJUuWYODAgVi6dClu3ryJgQMHYuDAgfjhhx+0bouImhdkaQkHqbSZ316AAEAmlSKIK4kQkR4SRPHRmNFfXV0NCwsLVFVVwdzcXGVfTU0NioqK4OzsDGNjY63bblqdAIDKA15NwbY9ViegP93v+0fUmTWtTgBA5QGvpmDL1QmI6EFqKa9piyOxrRDmGYaU8SmwN7dXKXcwd2CAJaKHWpiNDVK8vGAvlaqUO0ilDLBEpNe4TmwrhXmGYZzHOOSU5KDstzLYdbVDUO8gSAwkHd01IqIWhdnYYFz37siprERZXR3sjIwQZGkJSTss4UdE9KAwxGpBYiDBcKfhHd0NIiKtSQQBw62sOrobREQ6w+kERERERKR3GGKJiIiISO8wxBIRERGR3mGIJSIiIiK9wxBLRERERHqHIZaIiIiI9A5D7CNAEATs3r27o7tBRERE9MAwxD7kysvLMXPmTLi4uEAqlUImk2Hs2LE4cOBAu5zv4MGDEAQBlZWV7dJ+cXExpkyZAmdnZ5iYmKBPnz5YunQp6urq2uV8RERE9Gjilx08xIqLixEYGAhLS0vEx8fD29sb9fX1yMjIQFRUFE6fPt3RXWyWKIpQKBTo0kX1Fjt9+jQaGhqwceNGuLq64ueff8Zrr72GW7duYfXq1R3UWyIiItI3HInVhkIBHDwI7NjR+KdC0a6nmz59OgRBwNGjRxEREQF3d3d4eXlhzpw5yM3N1XiMppHUvLw8CIKA4uJiAMDFixcxduxYWFlZwdTUFF5eXkhLS0NxcTGCg4MBAFZWVhAEAZMnTwbQGErj4+Ph4uICExMT+Pj4ICUlRe28GRkZ8PPzg1QqRU5Ojlr/Ro0ahY8//hghISFwcXHB888/j3nz5kEul+vmRSMiIqJOgSOxrSWXA9HRwOXLf5Y5OADr1gFhYTo/3fXr15Geno6VK1fC1NRUbb+lpWWb246KikJdXR2ys7NhamqK/Px8mJmZQSaTITU1FeHh4Thz5gzMzc1hYmICAFi8eDHkcjmSk5Ph5uaG7OxsTJo0CTY2Nhg2bJiy7fnz52P16tVwcXFpdR+rqqpgbW3d5ushIiKizochtjXkciAiAhBF1fLS0sbylBSdB9nCwkKIooi+ffvqtF0AKCkpQXh4OAYMGAAAcHFxUe5rCpM9evRQhtBbt25h7dq1yMrKgr+/v/KYQ4cOYePGjSohNjY2FiNHjmx1X86fP48NGzZgzZo193tZRERE1IkwxN6LQtE4Ant3gAUaywQBiIkBxo0DJBKdnVb83/kEQdBZm01mzZqFN998E/v378eIESMQHh4Ob2/vZuvn5+ejpqZGLZzW1dVh4MCBKmV+fn6t7scvv/yCUaNG4cUXX8TUqVO1uwgiIiLq1Dgn9l5yclSnENxNFIFLlxrr6ZCbmxsEQUBBQYFWxxkYGPyvW3+G7vr6epU6U6dOxYULFxAZGYmTJ0/Cz88PGzZsaLbNhoYGAMC+ffuQl5en3PLz81XmxQLQOPVBk19++QXBwcHw9/fHhx9+2KpjiIiIiJowxN5LWZlu67WStbU1QkNDkZiYiFu3bqntb24JLBsbm/9158/+5OXlqdWTyWSYNm0a5HI55s6di02bNgEAjIyMAACKOx5a69evH6RSKUpKSuDq6qqyyWQyra+ttLQUw4cPx6BBg/Dxxx8rgzcRERFRazE93IudnW7raSEpKQkKhQKDBw9Gamoqzp07h4KCAqxfv145N/VuTcFy2bJlOHv2LPbt26c23zQmJgYZGRkoKirCsWPHkJWVBU9PTwCAo6MjBEHA3r17UVFRgZs3b6Jr166YN28eZs+ejW3btuH8+fM4fvw4EhMTsW3bNq2u6ZdffsHw4cMhk8mwevVqVFRUoLy8HOXl5W17kYiIiKhT4pzYewkKalyFoLRU87xYQWjcHxSk81M7Ozvj2LFjWLlyJebOnYuysjLY2NjA19cXycnJGo8xNDTEjh078Oabb8LHxwdPPPEEVqxYgRdffFFZR6FQICoqCpcvX4a5uTlGjRqFf/3rXwAAe3t7LF++HAsWLMArr7yCl156CVu3bsW7776LHj16IC4uDhcuXIClpSUGDRqEt99+W6tr2r9/PwoLC1FYWAgHBweVfaKm15eIiIhIA0F8RJJDdXU1LCwsUFVVBXNzc5V9NTU1KCoqgrOzM4yNjbVvvGl1AkA1yDY9dNUOqxPQn+77/SMiIqKHQkt5TVucTtAaYWGNQdXeXrXcwYEBloiIiKgDcDpBa4WFNS6jlZPT+BCXnV3jFAIdLqtFRERERK3DEKsNiQQYPryje0FERETU6XE6ARERERHpHYZYIiIiItI7DLFEREREpHcYYomIiIhI7zDEEhEREZHeYYglIiIiIr3DEPsIEAQBu3fv7uhuEBERET0wDLEPufLycsycORMuLi6QSqWQyWQYO3YsDhw40C7nO3jwIARBQGVlZbu0DwDPP/88evfuDWNjY9jZ2SEyMhK//PJLu52PiIiIHj0MsVpQiCIO3riBHb/+ioM3bkAhiu16vuLiYvj6+iIrKwvx8fE4efIk0tPTERwcjKioqHY99/0SRRG3b9/WuC84OBiff/45zpw5g9TUVJw/fx4REREPuIdERESkz9oUYpOSkuDs7AxjY2P4+voiJyenxfq1tbVYtGgRHB0dIZVK0adPH2zZskW5f+vWrRAEQW2rqalpS/fahbyiAk65uQg+cQITCwoQfOIEnHJzIa+oaLdzTp8+HYIg4OjRo4iIiIC7uzu8vLwwZ84c5ObmajxG00hqXl4eBEFAcXExAODixYsYO3YsrKysYGpqCi8vL6SlpaG4uBjBwcEAACsrKwiCgMmTJwNoDKXx8fFwcXGBiYkJfHx8kJKSonbejIwM+Pn5QSqVNntfzJ49G0OHDoWjoyMCAgKwYMEC5Obmor6+/v5fNCIiIuoUtP7a2Z07dyImJgZJSUkIDAzExo0bMXr0aOTn56N3794ajxk/fjx+/fVXbN68Ga6urrhy5YraKJ25uTnOnDmjUmZsbKxt99qFvKICEadO4e5x19LaWkScOoUULy+E2djo9JzXr19Heno6Vq5cCVNTU7X9lpaWbW47KioKdXV1yM7OhqmpKfLz82FmZgaZTIbU1FSEh4fjzJkzMDc3h4mJCQBg8eLFkMvlSE5OhpubG7KzszFp0iTY2Nhg2LBhyrbnz5+P1atXw8XFpVV9vH79Oj799FMEBATA0NCwzddEREREnYvWIXbt2rWYMmUKpk6dCgBISEhARkYGkpOTERcXp1Y/PT0d3377LS5cuABra2sAgJOTk1o9QRDQs2dPbbvT7hSiiOjCQrUACwAiAAFATGEhxnXvDokg6Oy8hYWFEEURffv21VmbTUpKShAeHo4BAwYAAFxcXJT7mt6jHj16KEPorVu3sHbtWmRlZcHf3195zKFDh7Bx40aVEBsbG4uRI0fesw9///vf8f777+P333/H0KFDsXfvXl1dHhEREXUCWk0nqKurw48//oiQkBCV8pCQEBw+fFjjMV9++SX8/PwQHx8Pe3t7uLu7Y968efjjjz9U6t28eROOjo5wcHDAmDFjcPz48Rb7Ultbi+rqapWtPeRUVuJybW2z+0UAl2prkaPjB6HE/823FXQYjJvMmjULK1asQGBgIJYuXYqffvqpxfr5+fmoqanByJEjYWZmpty2b9+O8+fPq9T18/NrVR/eeustHD9+HPv374dEIsFLL72kvGYiIiKie9FqJPbq1atQKBSwtbVVKbe1tUV5ebnGYy5cuIBDhw7B2NgYu3btwtWrVzF9+nRcv35dOS+2b9++2Lp1KwYMGIDq6mqsW7cOgYGBOHHiBNzc3DS2GxcXh+XLl2vT/TYpq6vTab3WcnNzgyAIKCgowAsvvNDq4wwMGv9dcmcgvHuu6dSpUxEaGop9+/Zh//79iIuLw5o1azBz5kyNbTY0NAAA9u3bB3t7e5V9UqlU5WdNUx806d69O7p37w53d3d4enpCJpMhNzdXOdJLRERE1JI2Pdh19+igKIrNjhg2NDRAEAR8+umnGDx4MJ599lmsXbsWW7duVY7GDh06FJMmTYKPjw+CgoLw+eefw93dHRs2bGi2DwsXLkRVVZVyu3TpUlsu5Z7sjIx0Wq+1rK2tERoaisTERNy6dUttf3NLYNn8b25uWVmZsiwvL0+tnkwmw7Rp0yCXyzF37lxs2rQJAGD0v+tQKBTKuv369YNUKkVJSQlcXV1VNplM1tZLVGoK3LUtjHgTERER3UmrENu9e3dIJBK1UdcrV66ojc42sbOzg729PSwsLJRlnp6eEEURly9f1twpAwM88cQTOHfuXLN9kUqlMDc3V9naQ5ClJRykUjT3ob4AQCaVIug+HrRqTlJSEhQKBQYPHozU1FScO3cOBQUFWL9+fbMjlk3BctmyZTh79iz27duHNWvWqNSJiYlBRkYGioqKcOzYMWRlZcHT0xMA4OjoCEEQsHfvXlRUVODmzZvo2rUr5s2bh9mzZ2Pbtm04f/48jh8/jsTERGzbtk2razp69Cjef/995OXl4eLFi/jmm28wceJE9OnTh6OwRERE1GpahVgjIyP4+voiMzNTpTwzMxMBAQEajwkMDMQvv/yCmzdvKsvOnj0LAwMDODg4aDxGFEXk5eXBzs5Om+61C4kgYJ2rKwCoBdmmnxNcXXX6UFcTZ2dnHDt2DMHBwZg7dy769++PkSNH4sCBA0hOTtZ4jKGhIXbs2IHTp0/Dx8cHq1atwooVK1TqKBQKREVFwdPTE6NGjYKHhweSkpIAAPb29li+fDkWLFgAW1tbzJgxAwDw7rvvYsmSJYiLi4OnpydCQ0OxZ88eODs7a3VNJiYmkMvleOaZZ+Dh4YFXX30V/fv3x7fffqs2NYGIiIioOYKo5dM0O3fuRGRkJD744AP4+/vjww8/xKZNm3Dq1Ck4Ojpi4cKFKC0txfbt2wE0PrDl6emJoUOHYvny5bh69SqmTp2KYcOGKT/CXr58OYYOHQo3NzdUV1dj/fr1+OSTT/Df//4XgwcPblW/qqurYWFhgaqqKrVR2ZqaGhQVFSnXtm0LeUUFogsLVR7ykkmlSHB11fnyWqRKF+8fERERdbyW8pq2tF5ia8KECbh27RpiY2NRVlaG/v37Iy0tDY6OjgAa52KWlJQo65uZmSEzMxMzZ86En58funXrhvHjx6uMDlZWVuL1119HeXk5LCwsMHDgQGRnZ7c6wD4IYTY2GNe9O3IqK1FWVwc7IyMEWVq2ywgsEREREbVM65HYh1V7j8RSx+H7R0RE9GjQ5Uhsm1YnICIiIiLqSAyxRERERKR3GGKJiIiISO8wxBIRERGR3mGIJSIiIiK9wxBLRERERHqHIZaIiIiI9A5D7CNAEATs3r27o7tBRERE9MAwxD7kysvLMXPmTLi4uEAqlUImk2Hs2LE4cOBAu5zv4MGDEAQBlZWV7dL+nWpra/H4449DEATk5eW1+/mIiIjo0aH11852ZqJCRGVOJerK6mBkZwTLIEsIkvb72tni4mIEBgbC0tIS8fHx8Pb2Rn19PTIyMhAVFYXTp0+327nvlyiKUCgU6NKl+Vts/vz56NWrF06cOPEAe0ZERESPAo7EtlKFvAK5Trk4EXwCBRMLcCL4BHKdclEhr2i3c06fPh2CIODo0aOIiIiAu7s7vLy8MGfOHOTm5mo8RtNIal5eHgRBQHFxMQDg4sWLGDt2LKysrGBqagovLy+kpaWhuLgYwcHBAAArKysIgoDJkycDaAyl8fHxcHFxgYmJCXx8fJCSkqJ23oyMDPj5+UEqlSInJ6fZa/vqq6+wf/9+rF69+v5eJCIiIuqUOBLbChXyCpyKOAWIquW1pbU4FXEKXilesAmz0ek5r1+/jvT0dKxcuRKmpqZq+y0tLdvcdlRUFOrq6pCdnQ1TU1Pk5+fDzMwMMpkMqampCA8Px5kzZ2Bubg4TExMAwOLFiyGXy5GcnAw3NzdkZ2dj0qRJsLGxwbBhw5Rtz58/H6tXr4aLi0uzffz111/x2muvYffu3XjsscfafB1ERETUeTHE3oOoEFEYXagWYBt3AhCAwphCdB/XXadTCwoLCyGKIvr27auzNpuUlJQgPDwcAwYMAAC4uLgo91lbWwMAevTooQyht27dwtq1a5GVlQV/f3/lMYcOHcLGjRtVQmxsbCxGjhzZ7LlFUcTkyZMxbdo0+Pn5KUeHiYiIiLTBEHsPlTmVqL1c23wFEai9VIvKnEpYDbfS2XlFsTE1C4Lu59zOmjULb775Jvbv348RI0YgPDwc3t7ezdbPz89HTU2NWjitq6vDwIEDVcr8/PxaPPeGDRtQXV2NhQsXtv0CiIiIqNPjnNh7qCur02m91nJzc4MgCCgoKNDqOAODxre0KQQDQH19vUqdqVOn4sKFC4iMjMTJkyfh5+eHDRs2NNtmQ0MDAGDfvn3Iy8tTbvn5+SrzYgFonPpwp6ysLOTm5kIqlaJLly5wdXUF0Bh+X3755dZfKBERtR+FAjh4ENixo/FPhaKje0SkhiH2HozsjHRar7Wsra0RGhqKxMRE3Lp1S21/c0tg2dg0zs0tKytTlmlavkomk2HatGmQy+WYO3cuNm3aBAAwMmq8DsUdv7D69esHqVSKkpISuLq6qmwymUyr61q/fj1OnDihDMJpaWkAgJ07d2LlypVatUVERO1ALgecnIDgYGDixMY/nZway4keIpxOcA+WQZaQOkhRW1qreV6sAEgdpLAMstT5uZOSkhAQEIDBgwcjNjYW3t7euH37NjIzM5GcnKxxlLYpWC5btgwrVqzAuXPnsGbNGpU6MTExGD16NNzd3XHjxg1kZWXB09MTAODo6AhBELB37148++yzMDExQdeuXTFv3jzMnj0bDQ0NePLJJ1FdXY3Dhw/DzMxMqxHU3r17q/xsZmYGAOjTpw8cHBy0fYmIiEiX5HIgIgIQ7/oLr7S0sTwlBQgL65i+Ed2FI7H3IEgEuK5z/d8Pd+9s/MM1wbVd1ot1dnbGsWPHEBwcjLlz56J///4YOXIkDhw4gOTkZI3HGBoaYseOHTh9+jR8fHywatUqrFixQqWOQqFAVFQUPD09MWrUKHh4eCApKQkAYG9vj+XLl2PBggWwtbXFjBkzAADvvvsulixZgri4OHh6eiI0NBR79uyBs7Ozzq+biIg6gEIBREerB1jgz7KYGE4toIeGIIqa7lb9U11dDQsLC1RVVcHc3FxlX01NDYqKiuDs7AxjY+M2tV8hr0BhdKHKQ15SmRSuCa46X16LVOni/SMions4eLBx6sC9fPMNMHx4e/eGHlEt5TVtcTpBK9mE2aD7uO4P9Bu7iIiIHpg7nqXQST2idsYQqwVBIuh0GS0iIqKHhp2dbusRtTPOiSUiIiIgKAhwcACaW59cEACZrLEe0UOAIZaIiIgAiQRYt67xv+8Osk0/JyQ01iN6CDDEEhERUaOwsMZltOztVcsdHLi8Fj10OCeWiIiI/hQWBowbB+TkND7EZWfXOIWAI7D0kGGIJSIiIlUSCZfRoocepxMQERERkd5hiCUiIiIivcMQ+wgQBAG7d+/u6G4QERERPTAMsQ+58vJyzJw5Ey4uLpBKpZDJZBg7diwOHDjQLuc7ePAgBEFAZWVlu7QPAE5OThAEQWVbsGBBu52PiIiIHj18sEsLoqhAZWUO6urKYGRkB0vLIAhC+z2tWVxcjMDAQFhaWiI+Ph7e3t6or69HRkYGoqKicPr06XY79/0SRREKhQJdumi+xWJjY/Haa68pfzYzM3tQXSMiIqJHAEdiW6miQo7cXCecOBGMgoKJOHEiGLm5TqiokLfbOadPnw5BEHD06FFERETA3d0dXl5emDNnDnJzczUeo2kkNS8vD4IgoLi4GABw8eJFjB07FlZWVjA1NYWXlxfS0tJQXFyM4OBgAICVlRUEQcDkyZMBNIbS+Ph4uLi4wMTEBD4+PkhJSVE7b0ZGBvz8/CCVSpGTk9PstXXt2hU9e/ZUbgyxREREpA2OxLZCRYUcp05FABBVymtrS3HqVAS8vFJgY6PbBaCvX7+O9PR0rFy5Eqampmr7LS0t29x2VFQU6urqkJ2dDVNTU+Tn58PMzAwymQypqakIDw/HmTNnYG5uDhMTEwDA4sWLIZfLkZycDDc3N2RnZ2PSpEmwsbHBsGHDlG3Pnz8fq1evhouLS4t9XLVqFd59913IZDK8+OKLeOutt2BkZNTmayIiIqLOhSH2HkRRgcLCaNwdYP+3F4CAwsIYdO8+TqdTCwoLCyGKIvr27auzNpuUlJQgPDwcAwYMAAC4uLgo91lbWwMAevTooQyht27dwtq1a5GVlQV/f3/lMYcOHcLGjRtVQmxsbCxGjhzZ4vmjo6MxaNAgWFlZ4ejRo1i4cCGKiorw0Ucf6fIyiYiI6BHGEHsPlZU5qK293EINEbW1l1BZmQMrq+E6O68oNoZm4e7vr9aBWbNm4c0338T+/fsxYsQIhIeHw9vbu9n6+fn5qKmpUQundXV1GDhwoEqZn5/fPc8/e/Zs5X97e3vDysoKERERWLVqFbp166bl1RAREVFnxDmx91BXV6bTeq3l5uYGQRBQUFCg1XEGBo1vaVMIBoD6+nqVOlOnTsWFCxcQGRmJkydPws/PDxs2bGi2zYaGBgDAvn37kJeXp9zy8/NV5sUC0Dj14V6GDh0KoHH0mYiIiKg1GGLvwcjITqf1Wsva2hqhoaFITEzErVu31PY3twSWjY0NAKCs7M9QnZeXp1ZPJpNh2rRpkMvlmDt3LjZt2gQAynmpCoVCWbdfv36QSqUoKSmBq6uryiaTydp6iUrHjx8HANjZ6fY1JCIiokcXpxPcg6VlEKRSB9TWlkLzvFgBUqkDLC2DdH7upKQkBAQEYPDgwYiNjYW3tzdu376NzMxMJCcnaxylbQqWy5Ytw4oVK3Du3DmsWbNGpU5MTAxGjx4Nd3d33LhxA1lZWfD09AQAODo6QhAE7N27F88++yxMTEzQtWtXzJs3D7Nnz0ZDQwOefPJJVFdX4/DhwzAzM8PLL7/c6ms6cuQIcnNzERwcDAsLC3z//feYPXs2nn/+efTu3fv+XjAiIiLqNDgSew+CIIGr67qmn+7eCwBwdU1ol/VinZ2dcezYMQQHB2Pu3Lno378/Ro4ciQMHDiA5OVnjMYaGhtixYwdOnz4NHx8frFq1CitWrFCpo1AoEBUVBU9PT4waNQoeHh5ISkoCANjb22P58uVYsGABbG1tMWPGDADAu+++iyVLliAuLg6enp4IDQ3Fnj174OzsrNU1SaVS7Ny5E8OHD0e/fv2wZMkSvPbaa9ixY0cbXiEiIiLqrATxzsmTeqy6uhoWFhaoqqqCubm5yr6amhoUFRXB2dkZxsbGbWq/okKOwsJolYe8pFIZXF0TdL68FqnSxftHREREHa+lvKYtTidoJRubMHTvPu6BfmMXEREREWnGEKsFQZDodBktIiIiImobzoklIiIiIr3DEEtEREREeochloiIiIj0DkMsEREREekdhlgiIiIi0jsMsURERESkd9oUYpOSkpQLz/v6+iInJ6fF+rW1tVi0aBEcHR0hlUrRp08fbNmyRaVOamoq+vXrB6lUin79+mHXrl1t6RoRERERdQJah9idO3ciJiYGixYtwvHjxxEUFITRo0ejpKSk2WPGjx+PAwcOYPPmzThz5gx27NiBvn37KvcfOXIEEyZMQGRkJE6cOIHIyEiMHz8e3333XduuqpMRBAG7d+/u6G4QERERPTBah9i1a9diypQpmDp1Kjw9PZGQkACZTIbk5GSN9dPT0/Htt98iLS0NI0aMgJOTEwYPHoyAgABlnYSEBIwcORILFy5E3759sXDhQjzzzDNISEho84U9KsrLyzFz5ky4uLhAKpVCJpNh7NixOHDgQLuc7+DBgxAEAZWVle3SfpN9+/ZhyJAhMDExQffu3REWxq/uJSIiotbTKsTW1dXhxx9/REhIiEp5SEgIDh8+rPGYL7/8En5+foiPj4e9vT3c3d0xb948/PHHH8o6R44cUWszNDS02TY7ikKhwMGDB7Fjxw4cPHgQCoWiXc9XXFwMX19fZGVlIT4+HidPnkR6ejqCg4MRFRXVrue+X6Io4vbt2xr3paamIjIyEq+88gpOnDiB//73v5g4ceID7iERERHpM61C7NWrV6FQKGBra6tSbmtri/Lyco3HXLhwAYcOHcLPP/+MXbt2ISEhASkpKSohrLy8XKs2gcZ5ttXV1Spbe5LL5XByckJwcDAmTpyI4OBgODk5QS6Xt9s5p0+fDkEQcPToUURERMDd3R1eXl6YM2cOcnNzNR6jaSQ1Ly8PgiCguLgYAHDx4kWMHTsWVlZWMDU1hZeXF9LS0lBcXIzg4GAAgJWVFQRBwOTJkwE0htL4+Hi4uLjAxMQEPj4+SElJUTtvRkYG/Pz8IJVKNc6Vvn37NqKjo/Hee+9h2rRpcHd3h4eHByIiInTzohEREVGn0KUtBwmCoPKzKIpqZU0aGhogCAI+/fRTWFhYAGickhAREYHExESYmJho3SYAxMXFYfny5W3pvtbkcjkiIiIgiqJKeWlpKSIiIpCSkqLzj8OvX7+O9PR0rFy5Eqampmr7LS0t29x2VFQU6urqkJ2dDVNTU+Tn58PMzAwymQypqakIDw/HmTNnYG5urnx/Fi9eDLlcjuTkZLi5uSE7OxuTJk2CjY0Nhg0bpmx7/vz5WL16NVxcXDT28dixYygtLYWBgQEGDhyI8vJyPP7441i9ejW8vLzafE1ERETUuWgVYrt37w6JRKI2QnrlyhW1kdQmdnZ2sLe3VwZYAPD09IQoirh8+TLc3NzQs2dPrdoEgIULF2LOnDnKn6urqyGTybS5nFZRKBSIjo5WC7DAn0E7JiYG48aNg0Qi0dl5CwsLIYqiygNwulJSUoLw8HAMGDAAAODi4qLcZ21tDQDo0aOHMoTeunULa9euRVZWFvz9/ZXHHDp0CBs3blQJsbGxsRg5cmSz575w4QIAYNmyZVi7di2cnJywZs0aDBs2DGfPnlWen4iIiKglWk0nMDIygq+vLzIzM1XKMzMzVR7UulNgYCB++eUX3Lx5U1l29uxZGBgYwMHBAQDg7++v1ub+/fubbRMApFIpzM3NVbb2kJOTg8uXLze7XxRFXLp06Z7LjGmrKTS3NBrdVrNmzcKKFSsQGBiIpUuX4qeffmqxfn5+PmpqajBy5EiYmZkpt+3bt+P8+fMqdf38/Fpsq6GhAQCwaNEihIeHw9fXFx9//DEEQcAXX3xxfxdGREREnYbWqxPMmTMHH330EbZs2YKCggLMnj0bJSUlmDZtGoDGEdKXXnpJWX/ixIno1q0bXnnlFeTn5yM7OxtvvfUWXn31VeVH1dHR0di/fz9WrVqF06dPY9WqVfj6668RExOjm6u8D2VlZTqt11pubm4QBAEFBQVaHWdg0PiW3jlyXF9fr1Jn6tSpuHDhAiIjI3Hy5En4+flhw4YNzbbZFDz37duHvLw85Zafn68yLxaAxqkPd7KzswMA9OvXT1kmlUrh4uLS4jJtRERERHfSOsROmDABCQkJiI2NxeOPP47s7GykpaXB0dERQGOYuzOMmJmZITMzE5WVlfDz88Pf/vY3jB07FuvXr1fWCQgIwGeffYaPP/4Y3t7e2Lp1K3bu3IkhQ4bo4BLvT1Po0lW91rK2tkZoaCgSExNx69Yttf3NLYFlY2MDQDVU5+XlqdWTyWSYNm0a5HI55s6di02bNgFoHG0HoLLyQtOXUJSUlMDV1VVl03YKh6+vL6RSKc6cOaMsq6+vR3FxsfIeIiIiIrqXNj3YNX36dEyfPl3jvq1bt6qV9e3bV226wN0iIiIeyifUg4KC4ODggNLSUo3zYgVBgIODA4KCgnR+7qSkJAQEBGDw4MGIjY2Ft7c3bt++jczMTCQnJ2scpW0KlsuWLcOKFStw7tw5rFmzRqVOTEwMRo8eDXd3d9y4cQNZWVnw9PQEADg6OkIQBOzduxfPPvssTExM0LVrV8ybNw+zZ89GQ0MDnnzySVRXV+Pw4cMwMzPDyy+/3OprMjc3x7Rp07B06VLIZDI4OjrivffeAwC8+OKL9/FqERERUWfSpq+d7UwkEgnWrVsHQH1+atPPCQkJOn2oq4mzszOOHTuG4OBgzJ07F/3798fIkSNx4MCBZr9cwtDQEDt27MDp06fh4+ODVatWYcWKFSp1FAoFoqKi4OnpiVGjRsHDwwNJSUkAAHt7eyxfvhwLFiyAra0tZsyYAQB49913sWTJEsTFxcHT0xOhoaHYs2cPnJ2dtb6u9957D3/5y18QGRmJJ554AhcvXkRWVhasrKy0bouIiIg6J0HUNLyoh6qrq2FhYYGqqiq1h7xqampQVFQEZ2dnGBsbt6l9uVyO6OholYe8ZDIZEhIS+G1T7UwX7x8RERF1vJbymrbaNJ2gMwoLC8O4ceOQk5ODsrIy2NnZISgoqF1GYImIiIioZQyxWpBIJBg+fHhHd4OIiIio0+OcWCIiIiLSOwyxRERERKR3GGKJiIiISO8wxBIRERGR3mGIJSIiIiK9wxBLRERERHqHIZaIiIiI9A5D7CNAEATs3r27o7tBRERE9MAwxD7kysvLMXPmTLi4uEAqlUImk2Hs2LE4cOBAu5zv4MGDEAQBlZWV7dq+pu37779vl3MSERHRo4ff2KUFhQLIyQHKygA7OyAoCGjPb50tLi5GYGAgLC0tER8fD29vb9TX1yMjIwNRUVE4ffp0+538PomiCIVCgS5dVG+xgIAAlJWVqZS98847+Prrr+Hn5/cgu0hERER6jCOxrSSXA05OQHAwMHFi459OTo3l7WX69OkQBAFHjx5FREQE3N3d4eXlhTlz5iA3N1fjMZpGUvPy8iAIAoqLiwEAFy9exNixY2FlZQVTU1N4eXkhLS0NxcXFCA4OBgBYWVlBEARMnjwZQGMojY+Ph4uLC0xMTODj44OUlBS182ZkZMDPzw9SqRQ5OTlq/TMyMkLPnj2VW7du3fDll1/i1VdfhSAIunnhiIiI6JHHkdhWkMuBiAhAFFXLS0sby1NSgLAw3Z7z+vXrSE9Px8qVK2Fqaqq239LSss1tR0VFoa6uDtnZ2TA1NUV+fj7MzMwgk8mQmpqK8PBwnDlzBubm5jAxMQEALF68GHK5HMnJyXBzc0N2djYmTZoEGxsbDBs2TNn2/PnzsXr1ari4uLSqj19++SWuXr2qDMtERERErcEQew8KBRAdrR5ggcYyQQBiYoBx43Q7taCwsBCiKKJv3766a/R/SkpKEB4ejgEDBgAAXFxclPusra0BAD169FCG0Fu3bmHt2rXIysqCv7+/8phDhw5h48aNKiE2NjYWI0eObHVfNm/ejNDQUMhksvu9LCIiIupEGGLvIScHuHy5+f2iCFy61Fhv+HDdnVf8X2puj4/YZ82ahTfffBP79+/HiBEjEB4eDm9v72br5+fno6amRi2c1tXVYeDAgSpl2sxrvXz5MjIyMvD5559rdwFERETU6XFO7D3c9QzSfddrLTc3NwiCgIKCAq2OMzBofEvFO4aO6+vrVepMnToVFy5cQGRkJE6ePAk/Pz9s2LCh2TYbGhoAAPv27UNeXp5yy8/PV5kXC0Dj1IfmfPzxx+jWrRuef/75Vh9DREREBDDE3pOdnW7rtZa1tTVCQ0ORmJiIW7duqe1vbgksGxsbAFBZASAvL0+tnkwmw7Rp0yCXyzF37lxs2rQJQOODVwCgUCiUdfv16wepVIqSkhK4urqqbG2dBiCKIj7++GO89NJLMDQ0bFMbRERE1HkxxN5DUBDg4NA491UTQQBkssZ6upaUlASFQoHBgwcjNTUV586dQ0FBAdavX6+cm3q3pmC5bNkynD17Fvv27cOaNWtU6sTExCAjIwNFRUU4duwYsrKy4OnpCQBwdHSEIAjYu3cvKioqcPPmTXTt2hXz5s3D7NmzsW3bNpw/fx7Hjx9HYmIitm3b1qZry8rKQlFREaZMmdKm44mIiKhzY4i9B4kEWLeu8b/vDrJNPycktM96sc7Ozjh27BiCg4Mxd+5c9O/fHyNHjsSBAweQnJys8RhDQ0Ps2LEDp0+fho+PD1atWoUVK1ao1FEoFIiKioKnpydGjRoFDw8PJCUlAQDs7e2xfPlyLFiwALa2tpgxYwYA4N1338WSJUsQFxcHT09PhIaGYs+ePXB2dm7TtW3evBkBAQHK8ExERESkDUEUNT13r3+qq6thYWGBqqoqmJubq+yrqalBUVERnJ2dYWxs3Kb25fLGVQrufMhLJmsMsLpeXotU6eL9IyIioo7XUl7TFlcnaKWwsMZltB7kN3YRERERkWYMsVqQSHS7jBYRERERtQ3nxBIRERGR3mGIJSIiIiK9wxBLRERERHqHIZaIiIiI9A5DLBERERHpHYZYIiIiItI7DLFEREREpHcYYh8BgiBg9+7dHd0NIiIiogeGIfYhV15ejpkzZ8LFxQVSqRQymQxjx47FgQMH2uV8Bw8ehCAIqKysbJf2AeDs2bMYN24cunfvDnNzcwQGBuKbb75pt/MRERHRo4ff2KUFRYMCOSU5KPutDHZd7RDUOwgSg/b73tni4mIEBgbC0tIS8fHx8Pb2Rn19PTIyMhAVFYXTp0+327nvlyiKUCgU6NJF/RZ77rnn4O7ujqysLJiYmCAhIQFjxozB+fPn0bNnzw7oLREREekbjsS2krxADqd1TgjeFoyJ8okI3hYMp3VOkBfI2+2c06dPhyAIOHr0KCIiIuDu7g4vLy/MmTMHubm5Go/RNJKal5cHQRBQXFwMALh48SLGjh0LKysrmJqawsvLC2lpaSguLkZwcDAAwMrKCoIgYPLkyQAaQ2l8fDxcXFxgYmICHx8fpKSkqJ03IyMDfn5+kEqlyMnJUevf1atXUVhYiAULFsDb2xtubm745z//id9//x2nTp3SzQtHREREjzyOxLaCvECOiM8jIEJUKS+tLkXE5xFIGZ+CMM8wnZ7z+vXrSE9Px8qVK2Fqaqq239LSss1tR0VFoa6uDtnZ2TA1NUV+fj7MzMwgk8mQmpqK8PBwnDlzBubm5jAxMQEALF68GHK5HMnJyXBzc0N2djYmTZoEGxsbDBs2TNn2/PnzsXr1ari4uGjsY7du3eDp6Ynt27dj0KBBkEql2LhxI2xtbeHr69vmayIiIqLOhSH2HhQNCkSnR6sFWAAQIUKAgJj0GIzzGKfTqQWFhYUQRRF9+/bVWZtNSkpKEB4ejgEDBgAAXFxclPusra0BAD169FCG0Fu3bmHt2rXIysqCv7+/8phDhw5h48aNKiE2NjYWI0eObPbcgiAgMzMT48aNQ9euXWFgYABbW1ukp6ffVzAnIiKizoUh9h5ySnJwufpys/tFiLhUfQk5JTkY7jRcZ+cVxcbQLAiCztpsMmvWLLz55pvYv38/RowYgfDwcHh7ezdbPz8/HzU1NWrhtK6uDgMHDlQp8/Pza/Hcoihi+vTp6NGjB3JycmBiYoKPPvoIY8aMwffffw87O7u2XxgRERF1GpwTew9lv5XptF5rubm5QRAEFBQUaHWcgUHjW9oUggGgvr5epc7UqVNx4cIFREZG4uTJk/Dz88OGDRuabbOhoQEAsG/fPuTl5Sm3/Px8lXmxADROfbhTVlYW9u7di88++wyBgYEYNGgQkpKSYGJigm3btml1rURERNR5McTeg13X1o0MtrZea1lbWyM0NBSJiYm4deuW2v7mlsCysbEBAJSV/Rmq8/Ly1OrJZDJMmzYNcrkcc+fOxaZNmwAARkZGAACFQqGs269fP0ilUpSUlMDV1VVlk8lkWl3X77//DuDPsN3EwMBAGZaJiIiI7oUh9h6CegfBwdwBAjR/rC9AgMxchqDeQTo/d1JSEhQKBQYPHozU1FScO3cOBQUFWL9+vXJu6t2aguWyZctw9uxZ7Nu3D2vWrFGpExMTg4yMDBQVFeHYsWPIysqCp6cnAMDR0RGCIGDv3r2oqKjAzZs30bVrV8ybNw+zZ8/Gtm3bcP78eRw/fhyJiYlaj576+/vDysoKL7/8Mk6cOIGzZ8/irbfeQlFREZ577rm2vVBERETU6TDE3oPEQIJ1o9YBgFqQbfo5YVRCu6wX6+zsjGPHjiE4OBhz585F//79MXLkSBw4cADJyckajzE0NMSOHTtw+vRp+Pj4YNWqVVixYoVKHYVCgaioKHh6emLUqFHw8PBAUlISAMDe3h7Lly/HggULYGtrixkzZgAA3n33XSxZsgRxcXHw9PREaGgo9uzZA2dnZ62uqXv37khPT8fNmzfx9NNPw8/PD4cOHcJ//vMf+Pj4tOFVIiIios5IEO+cPKnHqqurYWFhgaqqKpibm6vsq6mpQVFREZydnWFsbNym9uUFckSnR6s85CUzlyFhVILOl9ciVbp4/4iIiKjjtZTXtMXVCVopzDMM4zzGPdBv7CIiIiIizRhitSAxkOh0GS0iIiIiahvOiSUiIiIivcMQS0RERER6hyGWiIiIiPROm0JsUlKS8klxX19f5OTkNFv34MGDEARBbTt9+rSyztatWzXWqampaUv3iIiIiOgRp/WDXTt37kRMTAySkpIQGBiIjRs3YvTo0cjPz0fv3r2bPe7MmTMqSyk0fbNUE3Nzc5w5c0aljMspEREREZEmWofYtWvXYsqUKZg6dSoAICEhARkZGUhOTkZcXFyzx/Xo0QOWlpbN7hcEAT179tS2O0RERETUCWk1naCurg4//vgjQkJCVMpDQkJw+PDhFo8dOHAg7Ozs8Mwzz+Cbb75R23/z5k04OjrCwcEBY8aMwfHjx1tsr7a2FtXV1SobEREREXUOWoXYq1evQqFQwNbWVqXc1tYW5eXlGo+xs7PDhx9+iNTUVMjlcnh4eOCZZ55Bdna2sk7fvn2xdetWfPnll9ixYweMjY0RGBiIc+fONduXuLg4WFhYKDeZTKbNpTxSBEHA7t27O7obREREpEcUDQocLD6IHSd34GDxQSgaFB3dJa206cEuQRBUfhZFUa2siYeHB1577TUMGjQI/v7+SEpKwnPPPYfVq1cr6wwdOhSTJk2Cj48PgoKC8Pnnn8Pd3R0bNmxotg8LFy5EVVWVcrt06VJbLuWhV15ejpkzZ8LFxQVSqRQymQxjx47FgQMH2uV8TQ/iVVZWtkv7AHDs2DGMHDkSlpaW6NatG15//XXcvHmz3c5HREREquQFcjitc0LwtmBMlE9E8LZgOK1zgrxA3tFdazWtQmz37t0hkUjURl2vXLmiNjrbkqFDh7Y4ympgYIAnnniixTpSqRTm5uYqW7tTKICDB4EdOxr/VLTvv1iKi4vh6+uLrKwsxMfH4+TJk0hPT0dwcDCioqLa9dz3SxRF3L59W638l19+wYgRI+Dq6orvvvsO6enpOHXqFCZPnvzgO0lERNQJyQvkiPg8AperL6uUl1aXIuLzCL0JslqFWCMjI/j6+iIzM1OlPDMzEwEBAa1u5/jx47Czs2t2vyiKyMvLa7HOAyeXA05OQHAwMHFi459OTo3l7WT69OkQBAFHjx5FREQE3N3d4eXlhTlz5iA3N1fjMZpGUvPy8iAIAoqLiwEAFy9exNixY2FlZQVTU1N4eXkhLS0NxcXFCA4OBgBYWVlBEARluBRFEfHx8XBxcYGJiQl8fHyQkpKidt6MjAz4+flBKpVqXHpt7969MDQ0RGJiIjw8PPDEE08gMTERqampKCws1M0LR0RERBopGhSITo+GCFFtX1NZTHqMXkwt0Hp1gjlz5iAyMhJ+fn7w9/fHhx9+iJKSEkybNg1A48f8paWl2L59O4DG1QucnJzg5eWFuro6/N///R9SU1ORmpqqbHP58uUYOnQo3NzcUF1djfXr1yMvLw+JiYk6usz7JJcDERGAeNcbXlraWJ6SAoSF6fSU169fR3p6OlauXAlTU1O1/S2t9HAvUVFRqKurQ3Z2NkxNTZGfnw8zMzPIZDKkpqYiPDxcuSSaiYkJAGDx4sWQy+VITk6Gm5sbsrOzMWnSJNjY2GDYsGHKtufPn4/Vq1fDxcVFYx9ra2thZGQEA4M///3UdI5Dhw7B1dW1zddFRERELcspyVEbgb2TCBGXqi8hpyQHw52GP7iOtYHWIXbChAm4du0aYmNjUVZWhv79+yMtLQ2Ojo4AgLKyMpSUlCjr19XVYd68eSgtLYWJiQm8vLywb98+PPvss8o6lZWVeP3111FeXg4LCwsMHDgQ2dnZGDx4sA4u8T4pFEB0tHqABRrLBAGIiQHGjQMkEp2dtrCwEKIoom/fvjprs0lJSQnCw8MxYMAAAICLi4tyn7W1NQDVJdFu3bqFtWvXIisrC/7+/spjDh06hI0bN6qE2NjYWIwcObLZcz/99NOYM2cO3nvvPURHR+PWrVt4++23ATTeO0RERNR+yn5r3d+1ra3XkbQOsUDjx9zTp0/XuG/r1q0qP8+fPx/z589vsb1//etf+Ne//tWWrrS/nBzgcvP/YoEoApcuNdYbPlxnpxX/F5qbe2DufsyaNQtvvvkm9u/fjxEjRiA8PBze3t7N1s/Pz0dNTY1aOK2rq8PAgQNVyvz8/Fo8t5eXF7Zt24Y5c+Zg4cKFkEgkmDVrFmxtbSHR4T8CiIiISJ1d19ZN1WxtvY7UptUJOpXWjg7qeBTRzc0NgiCgoKBAq+OaPqYX7xg5rq+vV6kzdepUXLhwAZGRkTh58iT8/PxaXAmioaEBALBv3z7k5eUpt/z8fJV5sQA0Tn2428SJE1FeXo7S0lJcu3YNy5YtQ0VFBZydnVt9nURERKS9oN5BcDB3gADNg2QCBMjMZQjqHfSAe6Y9hth7ae3DZTp+CM3a2hqhoaFITEzErVu31PY3twRW09f53vnRfF5enlo9mUyGadOmQS6XY+7cudi0aROAxof3AEBxx8oL/fr1g1QqRUlJCVxdXVW2+1mf19bWFmZmZti5cyeMjY1bnIZARERE909iIMG6UesAQC3INv2cMCoBEoOH/9NRhth7CQoCHBwa575qIgiATNZYT8eSkpKgUCgwePBgpKam4ty5cygoKMD69euVc1Pv1hQsly1bhrNnz2Lfvn1Ys2aNSp2YmBhkZGSgqKgIx44dQ1ZWFjw9PQEAjo6OEAQBe/fuRUVFBW7evImuXbti3rx5mD17NrZt24bz58/j+PHjSExMxLZt27S+rvfffx/Hjh3D2bNnkZiYiBkzZiAuLu6+HlYjIiKi1gnzDEPK+BTYm9urlDuYOyBlfArCPHX7sHq7ER8RVVVVIgCxqqpKbd8ff/wh5ufni3/88UfbGk9NFUVBaNwaZ8E2bk1lqan32fvm/fLLL2JUVJTo6OgoGhkZifb29uLzzz8vfvPNN8o6AMRdu3Ypfz506JA4YMAA0djYWAwKChK/+OILEYBYVFQkiqIozpgxQ+zTp48olUpFGxsbMTIyUrx69ary+NjYWLFnz56iIAjiyy+/LIqiKDY0NIjr1q0TPTw8RENDQ9HGxkYMDQ0Vv/32W1EURfGbb74RAYg3bty45zVFRkaK1tbWopGRkejt7S1u3769xfr3/f4RERGRmtuK2+I3Rd+I//7p3+I3Rd+ItxW32/2cLeU1bQmiqOmxe/1TXV0NCwsLVFVVqX3xQU1NDYqKiuDs7AxjY+O2nUAub1yl4M6HvGQyICFB58trkSqdvH9ERETU4VrKa9pq0+oEnVJYWOMyWjk5jQ9x2dk1TiHgE/VEREREDxxDrDYkEp0uo0VEREREbcMHu4iIiIhI7zDEEhEREZHeYYglIiIiIr3TqULsI7IQQ6fT9I1hRERERE06xYNdhoaGEAQBFRUVsLGxgdDcFxfQQ0UURdTV1aGiogIGBgbKbxMjIiIi6hQhViKRwMHBAZcvX0ZxcXFHd4e09Nhjj6F3794wMOhUHxwQERFRCzpFiAUAMzMzuLm5ob6+vqO7QlqQSCTo0qULR8+JiIhIRacJsUBjIJLwywmIiIiI9B4/nyUiIiIivcMQS0RERER6hyGWiIiIiPTOIzMntmkN2Orq6g7uCRERERFp0pTTdLF2/yMTYn/77TcAgEwm6+CeEBEREVFLfvvtN1hYWNxXG4L4iHyNVUNDA3755Rd07dqVyzHpUHV1NWQyGS5dugRzc/OO7g49BHhP0N14T9CdeD/Q3e68J7p27YrffvsNvXr1uu/13x+ZkVgDAwM4ODh0dDceWebm5vxlRCp4T9DdeE/QnXg/0N2a7on7HYFtwge7iIiIiEjvMMQSERERkd5hiKUWSaVSLF26FFKptKO7Qg8J3hN0N94TdCfeD3S39ronHpkHu4iIiIio8+BILBERERHpHYZYIiIiItI7DLFEREREpHcYYomIiIhI7zDEEpKSkuDs7AxjY2P4+voiJyen2bqHDh1CYGAgunXrBhMTE/Tt2xf/+te/HmBv6UHQ5p6403//+1906dIFjz/+ePt2kB44be6JgwcPQhAEte306dMPsMfUnrT9HVFbW4tFixbB0dERUqkUffr0wZYtWx5Qb+lB0OaemDx5ssbfEV5eXtqdVKRO7bPPPhMNDQ3FTZs2ifn5+WJ0dLRoamoqXrx4UWP9Y8eOif/+97/Fn3/+WSwqKhI/+eQT8bHHHhM3btz4gHtO7UXbe6JJZWWl6OLiIoaEhIg+Pj4PprP0QGh7T3zzzTciAPHMmTNiWVmZcrt9+/YD7jm1h7b8jnj++efFIUOGiJmZmWJRUZH43Xffif/9738fYK+pPWl7T1RWVqr8brh06ZJobW0tLl26VKvzcomtTm7IkCEYNGgQkpOTlWWenp544YUXEBcX16o2wsLCYGpqik8++aS9ukkPUFvvib/85S9wc3ODRCLB7t27kZeX9wB6Sw+CtvfEwYMHERwcjBs3bsDS0vIB9pQeBG3vh/T0dPzlL3/BhQsXYG1t/SC7Sg/I/WaJ3bt3IywsDEVFRXB0dGz1eTmdoBOrq6vDjz/+iJCQEJXykJAQHD58uFVtHD9+HIcPH8awYcPao4v0gLX1nvj4449x/vx5LF26tL27SA/Y/fyeGDhwIOzs7PDMM8/gm2++ac9u0gPSlvvhyy+/hJ+fH+Lj42Fvbw93d3fMmzcPf/zxx4PoMrUzXWSJzZs3Y8SIEVoFWADoolVteqRcvXoVCoUCtra2KuW2trYoLy9v8VgHBwdUVFTg9u3bWLZsGaZOndqeXaUHpC33xLlz57BgwQLk5OSgSxf+SnnUtOWesLOzw4cffghfX1/U1tbik08+wTPPPIODBw/iqaeeehDdpnbSlvvhwoULOHToEIyNjbFr1y5cvXoV06dPx/Xr1zkv9hFwP1kCAMrKyvDVV1/h3//+t9bn5t84BEEQVH4WRVGt7G45OTm4efMmcnNzsWDBAri6uuKvf/1re3aTHqDW3hMKhQITJ07E8uXL4e7u/qC6Rx1Am98THh4e8PDwUP7s7++PS5cuYfXq1Qyxjwht7oeGhgYIgoBPP/0UFhYWAIC1a9ciIiICiYmJMDExaff+UvtrS5YAgK1bt8LS0hIvvPCC1udkiO3EunfvDolEovYvpStXrqj9i+puzs7OAIABAwbg119/xbJlyxhiHwHa3hO//fYbfvjhBxw/fhwzZswA0PgXliiK6NKlC/bv34+nn376gfSd2sf9/J6409ChQ/F///d/uu4ePWBtuR/s7Oxgb2+vDLBA43xJURRx+fJluLm5tWufqX3dz+8IURSxZcsWREZGwsjISOtzc05sJ2ZkZARfX19kZmaqlGdmZiIgIKDV7YiiiNraWl13jzqAtveEubk5Tp48iby8POU2bdo0eHh4IC8vD0OGDHlQXad2oqvfE8ePH4ednZ2uu0cPWFvuh8DAQPzyyy+4efOmsuzs2bMwMDCAg4NDu/aX2t/9/I749ttvUVhYiClTprTt5G1dToEeDU3LYmzevFnMz88XY2JiRFNTU7G4uFgURVFcsGCBGBkZqaz//vvvi19++aV49uxZ8ezZs+KWLVtEc3NzcdGiRR11CaRj2t4Td1u6dCmX2HrEaHtP/Otf/xJ37dolnj17Vvz555/FBQsWiADE1NTUjroE0iFt74fffvtNdHBwECMiIsRTp06J3377rejm5iZOnTq1oy6BdKytf29MmjRJHDJkSJvPy+kEndyECRNw7do1xMbGoqysDP3790daWpryCcGysjKUlJQo6zc0NGDhwoUoKipCly5d0KdPH/zzn//EG2+80VGXQDqm7T1Bjz5t74m6ujrMmzcPpaWlMDExgZeXF/bt24dnn322oy6BdEjb+8HMzAyZmZmYOXMm/Pz80K1bN4wfPx4rVqzoqEsgHWvL3xtVVVVITU3FunXr2nxerhNLRERERHqHc2KJiIiISO8wxBIRERGR3mGIJSIiIiK9wxBLRERERHqHIZaIiIiI9A5DLBERERHpHYZYIiIiItI7DLFEREREpHcYYomIiIhI7zDEEhEREZHeYYglIiIiIr3DEEtEREREeuf/AwHcaPpRRM2MAAAAAElFTkSuQmCC\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 2 ---\n", - "Aktuelle Cluster: [[1], [2], [3], [4], [6], [7], [8], [9], [0, 5]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 0. 5. 0.0362049 2. ]\n", - " [ 4. 7. 0.05376004 2. ]\n", - " [ 6. 9. 0.08275424 2. ]\n", - " [ 3. 11. 0.10797673 3. ]\n", - " [ 1. 2. 0.12344616 2. ]\n", - " [10. 12. 0.13930155 4. ]\n", - " [13. 15. 0.23028243 7. ]\n", - " [14. 16. 0.37874766 9. ]\n", - " [ 8. 17. 0.47988728 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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AC5cuNBoX+Li4mBlZaXaZDKZLpdCRERERAasRQ92CYKg9loURY2yBnl5eZg1axaWLFmC48ePIy0tDYWFhZg2bZqqzrBhwzBp0iR4e3sjMDAQn332Gfr06aMWdO+1cOFCVFRUqLYrV6605FKIiIiIyAB10qWynZ0djI2NNUZdr127pjE62yAuLg4BAQF46623AABeXl6wsLBAYGAgVq5cCUdHR41jjIyM8MQTTzQ5EiuRSCCRSHTpPhERERE9InQaiTU1NYWPjw8yMjLUyjMyMuDv76/1mD/++ANGRuqnMTY2BlA/gquNKIrIzc3VGnCJiIiIiHQaiQWAOXPmIDIyEr6+vvDz88MHH3yA4uJi1fSAhQsXoqSkBDt37gQAjBs3Dq+99hqSkpIQEhIChUKBmJgYDBkyBN27dwcALF++HMOGDYO7uzsqKyuxYcMG5ObmYtOmTXq8VCIiIiJ6VOgcYidMmIDffvsNsbGxUCgUGDBgAFJTU+Hi4gIAUCgUamvGTp48GTdv3sR7772HuXPnwtraGk8//TRWr16tqlNeXo7XX38dpaWlsLKywqBBg5CdnY0hQ4bo4RKJiIiI6FEjiI39Tt/AVFZWwsrKChUVFZBKpe3dHSIiIiK6hz7zWotWJyAiIiIiak8MsURERERkcBhiiYiIiMjgMMQSERERkcFhiCUiIiIig8MQS0REREQGhyGWiIiIiAwOQywRERERGRyGWCIiIiIyOAyxRERERGRwGGKJiIiIyOAwxBIRERGRwWGIJSIiIiKDwxBLRERERAaHIZaIiIiIDA5DLBEREREZHIZYIiIiIjI4DLFEREREZHAYYomIiIjI4DDEEhEREZHBYYglIiIiIoPDEEtEREREBochloiIiIgMDkMsERERERkchlgiIiIiMjgMsURERERkcBhiiYiIiMjgMMQSERERkcFhiCUiIiIig8MQS0REREQGhyGWiIiIiAwOQywRERERGRyGWCIiIiIyOJ3auwNEREREVE9UiijPKUeNogamjqawDrSGYCy0d7ceSgyxRERERA+BMnkZCqILUH21WlUmcZag9/resA+zb8eePZw4nYCIiIionZXJy3Am4oxagAWA6pJqnIk4gzJ5WTv17OHFEEtERETUjkSliILoAkDUtrP+PwUxBRCV2ip0XAyxRERERO2oPKdcYwRWjQhUX6lGeU55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7hARkQFrWJ2g3t1/TdY/xOzpmcxltohaQJ95rUWrExARET3K7O3D4OmZDInESa1cInFmgCV6SOg8nYCIiKgjsLcPg51dKL+xi+ghxRBLRETUCEEw5jJaRA8pTicgIiIiIoPDEEtEREREBochloiIiIgMDkMsERERERkchlgiIiIiMjgMsURERERkcBhiiYiIiMjgMMQSERERkcFhiCUiIiIig8MQS0REREQGhyGWiIiIiAwOQywRERERGRyGWCIiIiIyOAyxRERERGRwGGKJiIiIyOAwxBIRERGRwWGIJSIiIiKDwxBLRERERAaHIZaIiIiIDA5DLBEREREZHIZYIiIiIjI4DLFEREREZHAYYomIiIjI4DDEEhEREZHBYYglIiIiIoPDEEtEREREBochloiIiIgMDkMsERERERkchlgiIiIiMjgMsURERERkcBhiiYiIiMjgMMQSERERkcFhiCUiIiIig9OpvTvQlurq6lBTU9Pe3SAdmJiYwNjYuL27QURERA+ZDhNia2pqUFhYiLq6uvbuCunI2toa3bp1gyAI7d0VIiIiekh0iBAriiIUCgWMjY0hk8lgZMRZFIZAFEX88ccfuHbtGgDA0dGxnXtERERED4sOEWLv3LmDP/74A927d8djjz3W3t0hHZibmwMArl27hq5du3JqAREREQHoIA92KZVKAICpqWk794RaouEfHrW1te3cEyIiInpYdIgQ24BzKg0TPzciIiK6V4cKsY8qQRCwZ8+e9u4GERERUZthiH3IlZaWYubMmXBzc4NEIoFMJsO4ceNw8ODBVjlfVlYWBEFAeXl5q7QPAL///jsiIyNhZWUFKysrREZGtur5iIiI6NHTIR7sMlRFRUUICAiAtbU14uPj4eXlhdraWqSnpyMqKgpnz55t7y42ShRFKJVKdOqkeYtNnDgRV69eRVpaGgDg9ddfR2RkJPbu3dvW3SQiIiIDxZFYHSiVQFYWsGtX/X//97xYq5k+fToEQcCxY8cQERGBPn36wNPTE3PmzMHRo0e1HqNtJDU3NxeCIKCoqAgAcPnyZYwbNw42NjawsLCAp6cnUlNTUVRUhKCgIACAjY0NBEHA5MmTAdSH0vj4eLi5ucHc3Bze3t5ITk7WOG96ejp8fX0hkUiQk5Oj0b/8/HykpaXhww8/hJ+fH/z8/LBlyxbs27cP586d088b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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 3 ---\n", - "Aktuelle Cluster: [[1], [2], [3], [4], [7], [8], [0, 5], [6, 9]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 0. 5. 0.0362049 2. ]\n", - " [ 4. 7. 0.05376004 2. ]\n", - " [ 6. 9. 0.08275424 2. ]\n", - " [ 3. 11. 0.10797673 3. ]\n", - " [ 1. 2. 0.12344616 2. ]\n", - " [10. 12. 0.13930155 4. ]\n", - " [13. 15. 0.23028243 7. ]\n", - " [14. 16. 0.37874766 9. ]\n", - " [ 8. 17. 0.47988728 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 4 ---\n", - "Aktuelle Cluster: [[1], [2], [3], [4], [7], [8], [0, 5], [6, 9]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 0. 5. 0.0362049 2. ]\n", - " [ 4. 7. 0.05376004 2. ]\n", - " [ 6. 9. 0.08275424 2. ]\n", - " [ 3. 11. 0.10797673 3. ]\n", - " [ 1. 2. 0.12344616 2. ]\n", - " [10. 12. 0.13930155 4. ]\n", - " [13. 15. 0.23028243 7. ]\n", - " [14. 16. 0.37874766 9. ]\n", - " [ 8. 17. 0.47988728 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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RA8zmzAbeKV5QWqv+gCx1EHKAEv0gNB6OgEREVFXYBNmg55je/Ibu4geUAyxREREzRAkApfRInpAcToBEREREekdhlgiIiIi0jsMsURERESkdxhiiYiIiEjvMMQSERERkd5hiCUiIiIivcMQS0RERER6hyGWiIiIiPQOQywRERER6R2GWCIiIiLSOwyxRERERKR3GGKJiIiISO8wxBIRERGR3mGIJSIiIiK9wxBLRERERHqHIZaIiIiI9A5DLBERERHpHYZYIiIiItI7DLFEREREpHcYYomIiIhI7zDEEhEREZHeYYglIiIiIr3DEEtEREREeochloiIiIj0DkMsEREREekdhlgiIiIi0jsMsURERESkdxhiiYiIiEjvMMQSERERkd5hiCUiIiIivcMQS0RERER6hyGWiIiIiPQOQywRERER6Z1und2BjtTQ0IC6urrO7gZpwdDQEBKJpLO7QURERA+YLhNi6+rqUFRUhIaGhs7uCmnJ0tISvXv3hiAInd0VIiIiekB0iRAriiLKysogkUggk8lgYMBZFPpAFEX8/vvvuHLlCgDAzs6uk3tERERED4ouEWJv376N33//HX369MEjjzzS2d0hLZiYmAAArly5gl69enFqAREREQHoIg92KRQKAICRkVEn94TaoukfHvX19Z3cEyIiInpQdIkQ24RzKvUT3zciIiK6W5cKsQ8rQRCwc+fOzu4GERERUYdhiH3AlZeXY8aMGXBxcYFUKoVMJsOYMWOwf//+djnfgQMHIAgCKisr26V9ALhx4wYiIyNhYWEBCwsLREZGtuv5iIiI6OHTJR7s0lfFxcUIDAyEpaUlEhMT4e3tjfr6emRmZiIqKgqnT5/u7C42SxRFKBQKdOumfotNmDABly9fxt69ewEAb7zxBiIjI7Fr166O7iYRERHpKY7EakGhAA4cALZvb/zzf8+LtZtp06ZBEAQcOXIEERERcHd3h5eXF2bPno28vDyNx2gaSc3Pz4cgCCguLgYAXLx4EWPGjIGVlRVMTU3h5eWFjIwMFBcXIzg4GABgZWUFQRAwadIkAI2hNDExES4uLjAxMYGPjw/S0tLUzpuZmQk/Pz9IpVLk5uaq9e/UqVPYu3cvPvroI/j7+8Pf3x8bNmzA7t27cebMGd28cERERPTQ40hsK8nlQHQ0cPnyn2UODsCaNUBYmO7Pd/36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KIro1q0b9u3bh6effrpD+k7t435+T9xp6NCh+L//+z9dd486WFvuBzs7O9jb2ysDLNA4X1IURVy+fBlubm7t2mdqX/fzO0IURWzatAmRkZEwMjLS+tycE9uFGRkZwdfXF1lZWSrlWVlZCAgIaHU7oiiitrZW192jTqDtPWFubo4TJ04gPz9fuU2dOhUeHh7Iz8/HkCFDOqrr1E509Xvi2LFjsLOz03X3qIO15X4IDAzEL7/8gps3byrLzp49CwMDAzg4OLRrf6n93c/viG+//RaFhYWYPHly207e1uUU6OHQtCzGxo0bxYKCAjEmJkY0NTUVi4uLRVEUxXnz5omRkZHK+u+//7745ZdfimfPnhXPnj0rbtq0STQ3Nxfnz5/fWZdAOqbtPXG3RYsWcYmth4y298S//vUv8YsvvhDPnj0r/vzzz+K8efNEAGJ6enpnXQLpkLb3w2+//SY6ODiIERER4smTJ8Vvv/1WdHNzE6dMmdJZl0A61ta/NyZOnCgOGTKkzefldIIubvz48bh27Rri4+NRVlaGAQMGICMjQ/mEYFlZGUpKSpT1GxoaEBcXh6KiInTr1g19+/bFP//5T7z55puddQmkY9reE/Tw0/aeqKurw5w5c1BaWgoTExN4eXlhz549eO655zrrEkiHtL0fzMzMkJWVhRkzZsDPzw89evTAuHHjsGzZss66BNKxtvy9UVVVhfT0dKxZs6bN5+U6sURERESkdzgnloiIiIj0DkMsEREREekdhlgiIiIi0jsMsURERESkdxhiiYiIiEjvMMQSERERkd5hiCUiIiIivcMQS0RERER6hyGWiIiIiPQOQywRERER6R2GWCIiIiLSOwyxRERERKR3/j8INDV6UiBvIwAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 5 ---\n", - "Aktuelle Cluster: [[1], [2], [3], [4], [7], [8], [0, 5], [6, 9]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 0. 5. 0.0362049 2. ]\n", - " [ 4. 7. 0.05376004 2. ]\n", - " [ 6. 9. 0.08275424 2. ]\n", - " [ 3. 11. 0.10797673 3. ]\n", - " [ 1. 2. 0.12344616 2. ]\n", - " [10. 12. 0.13930155 4. ]\n", - " [13. 15. 0.23028243 7. ]\n", - " [14. 16. 0.37874766 9. ]\n", - " [ 8. 17. 0.47988728 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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3bp1yjr9+/fHli1b8OWXX2L79u0wMTFBYGAgzp0712xfEhMTYWlpqdykUqk2l0JEREREeqxND3YJgqDysyiKamVNCgsLMXPmTCxcuBA//vgj9u7di+LiYkydOlVZZ9iwYZg4cSJ8fHwQFBSEzz77DB4eHipB927x8fGoqqpSbpcuXWrLpRARERGRHuqmTeWePXvC0NBQbdT1ypUraqOzTRITExEYGIi3334bAODt7Q0zMzMEBQVh2bJlsLe3VzvGwMAATzzxRIsjsRKJBBKJRJvuExEREdFDQquRWGNjY/j6+iI7O1ulPDs7GwEBARqP+f3332FgoHoaQ0NDAI0juJqIooiCggKNAZeIiIiISKuRWACYPXs2oqKi4OfnB39/f3z44YcoLS1VTg+Ij49HWVkZtm3bBgAYM2YMXn/9daSlpSEsLAxyuRyxsbEYMmQI+vTpAwBYsmQJhg0bBnd3d1RXV2Pt2rUoKChASkqKDi+ViIiIiB4WWofY8ePH49q1a0hISIBcLsfAgQORmZkJJycnAIBcLldZM3bSpEn47bff8P777yMuLg5WVlZ4+umnsWLFCmWdyspKvPHGGygvL4elpSUGDx6M3NxcDBkyRAeXSEREREQPG0Fs7jN9PVNdXQ1LS0tUVVXBwsKis7tDRERERHfRZV5r0+oERERERESdiSGWiIiIiPQOQywRERER6R2GWCIiIiLSOwyxRERERKR3GGKJiIiISO8wxBIRERGR3mGIJSIiIiK9wxBLRERERHqHIZaIiIiI9A5DLBERERHpHYZYIiIiItI7DLFEREREpHcYYomIiIhI7zDEEhEREZHeYYglIiIiIr3DEEtEREREeochloiIiIj0DkMsEREREekdhlgiIiIi0jsMsURERESkdxhiiYiIiEjvMMQSERERkd5hiCUiIiIivcMQS0RERER6hyGWiIiIiPQOQywRERER6R2GWCIiIiLSOwyxRERERKR3GGKJiIiISO8wxBIRERGR3mGIJSIiIiK9wxBLRERERHqnW2d3gIiIiIgaKRRAXh4glwP29kBQEGBo2Nm9ejAxxBIRERE9AGQyICYGuHz5zzJHR2DNGiA8vPP69aDidAIiIiKiTiaTAZGRqgEWAMrKGstlss7p14OMIZaIiIioEykUjSOwoqi+r6ksNraxHv2JIZaIiIioE+XlqY/A3kkU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V7oXl9kiagNd5rU2rU5ARET0MLMNt4VXuhckDqoPEEscJQywRA8IracTEBERdQW24bboObYnv7GL6AHFEEtERNQMwVDgMlpEDyhOJyAiIiIivcMQS0RERER6hyGWiIiIiPQOQywRERER6R2GWCIiIiLSOwyxRERERKR3GGKJiIiISO8wxBIRERGR3mGIJSIiIiK9wxBLRERERHqHIZaIiIiI9A5DLBERERHpHYZYIiIiItI7DLFEREREpHcYYomIiIhI7zDEEhEREZHeYYglIiIiIr3DEEtEREREeochloiIiIj0DkMsEREREekdhlgiIiIi0jsMsURERESkdxhiiYiIiEjvMMQSERERkd5hiCUiIiIivcMQS0RERER6hyGWiIiIiPQOQywRERER6R2GWCIiIiLSOwyxRERERKR3GGKJiIiISO8wxBIRERGR3mGIJSIiIiK9062zO9CRGhoaUFdX19ndIC0YGRnB0NCws7tBRERED5guE2Lr6upQXFyMhoaGzu4KacnKygq9e/eGIAid3RUiIiJ6QHSJECuKIuRyOQwNDSGVSmFgwFkU+kAURfz++++4cuUKAMDe3r6Te0REREQPii4RYm/fvo3ff/8dffr0wSOPPNLZ3SEtmJqaAgCuXLmCXr16cWoBERERAegiD3YpFAoAgLGxcSf3hNqi6R8e9fX1ndwTIiIielB0iRDbhHMq9RPfNyIiIrpblwqxDytBELBz587O7gYRERFRh2GIfcCVl5djxowZcHV1hUQigVQqxZgxY7B///52Od+BAwcgCAIqKyvbpX0AuHHjBqKiomBpaQlLS0tERUW16/mIiIjo4dMlHuzSVyUlJQgMDISVlRWSkpLg7e2N+vp6ZGVlITo6GqdPn+7sLjZLFEUoFAp066Z+i02YMAGXL1/G3r17AQBvvPEGoqKisGvXro7uJhEREekpjsRqQaEADhwAtm9v/PN/z4u1m2nTpkEQBBw5cgSRkZHw8PCAl5cXZs+ejfz8fI3HaBpJLSgogCAIKCkpAQBcvHgRY8aMgbW1NczMzODl5YXMzEyUlJQgODgYAGBtbQ1BEDBp0iQAjaE0KSkJrq6uMDU1hY+PD9LT09XOm5WVBT8/P0gkEuTl5an179SpU9i7dy8++ugj+Pv7w9/fHxs2bMDu3btx5swZ3bxwRERE9NDjSGwryWRATAxw+fKfZY6OwJo1QHi47s93/fp17N27F8uXL4eZmZnafisrqza3HR0djbq6OuTm5sLMzAyFhYUwNzeHVCpFRkYGIiIicObMGVhYWCiXuFqwYAFkMhnS0tLg7u6O3NxcTJw4Eba2thg+fLiy7blz52LlypVwdXXV2MfDhw/D0tISQ4cOVZYNGzYMlpaWOHToEPr169fm6yIiIqKugyG2FWQyIDISEEXV8rKyxvL0dN0H2aKiIoiiiP79++u2YQClpaWIiIjAoEGDAACurq7KfTY2NgCAXr16KUPorVu3sHr1auTk5MDf3195zMGDB7F+/XqVEJuQkICQkJBmz11eXo5evXqplffq1Qvl5eX3fW1ERETUNbRpOkFqaipcXFxgYmICX19fjR8bN5k0aRIEQVDbvLy8VOplZGRgwIABkEgkGDBgAL744ou2dE3nFIrGEdi7AyzwZ1lsrO6nFoj/a7w9lpeaOXMmli1bhsDAQCxatAg//fRTi/ULCwtRU1ODkJAQmJubK7dt27bh/PnzKnX9/PzueX5N1ySKIpfSIiIiolbTOsTu2LEDsbGxmD9/Po4dO4agoCCMGjUKpaWlGuuvWbMGcrlcuV26dAk2NjZ46aWXlHUOHz6M8ePHIyoqCsePH0dUVBTGjRuH7777ru1XpiN5eapTCO4misClS431dMnd3R2CIODUqVNaHdf0lbriHan77i8JmDJlCi5cuICoqCicOHECfn5+WLduXbNtNjQ0AAD27NmDgoIC5VZYWKgyLxaAxqkPd+rduzd+/fVXtfKKigrY2dm1fHFERERE/6N1iF29ejUmT56MKVOmwNPTE8nJyZBKpUhLS9NY39LSEr1791ZuP/zwA27cuIFXX31VWSc5ORkhISGIj49H//79ER8fj2eeeQbJycltvjBdkct1W6+1bGxsEBYWhpSUFNy6dUttf3NLUtna2v6vP392qKCgQK2eVCrF1KlTIZPJEBcXhw0bNgD481vNFHcMLTeNkJeWlsLNzU1lk0qlWl2Xv78/qqqqcOTIEWXZd999h6qqKgQEBGjVFhEREXVdWoXYuro6/PjjjwgNDVUpDw0NxaFDh1rVxsaNG/Hss8/CyclJWXb48GG1NsPCwlrdZnuyt9dtPW2kpqZCoVBgyJAhyMjIwLlz53Dq1CmsXbtWOTf1bk3BcvHixTh79iz27NmDVatWqdSJjY1FVlYWiouLcfToUeTk5MDT0xMA4OTkBEEQsHv3blRUVODmzZvo3r075syZg1mzZmHr1q04f/48jh07hpSUFGzdulWra/L09MTIkSPx+uuvIz8/H/n5+Xj99dcxevRoPtRFREREraZViL169SoUCoXax752dnateihHLpfjq6++wpQpU1TKy8vLtW6ztrYW1dXVKlt7CApqXIWguemaggBIpY31dM3FxQVHjx5FcHAw4uLiMHDgQISEhGD//v3NjnwbGRlh+/btOH36NHx8fLBixQosW7ZMpY5CoUB0dLQyUPbr1w+pqakAAAcHByxZsgTz5s2DnZ0dpk+fDgBYunQpFi5ciMTERHh6eiIsLAy7du2Ci4uL1tf1ySefYNCgQQgNDUVoaCi8vb3x8ccfa90OERERdV1tWp3g7gdwWvtQzpYtW2BlZYUXX3zxvttMTEzEkiVLWtfh+2Bo2LiMVmRkY2C98wGvpu4lJzfWaw/29vZ4//338f777zdbR7zrqbPAwEC1h7XurNPS/FcAePfdd/Huu++qlAmCgJkzZ2LmzJkajxkxYoRaP5pjY2ODf/3rX62qS0RERKSJViOxPXv2hKGhodoI6ZUrV+75UI4oiti0aROioqKU8y6b9O7dW+s24+PjUVVVpdwuXbqkzaVoJTy8cRktBwfVckfH9llei4iIiIhaplWINTY2hq+vL7Kzs1XKs7Oz7/lQzrfffouioiJMnjxZbZ+/v79am/v27WuxTYlEAgsLC5WtPYWHAyUlwDffAP/+d+OfxcUMsERERESdQevpBLNnz0ZUVBT8/Pzg7++PDz/8EKWlpZg6dSqAxhHSsrIybNu2TeW4jRs3YujQoRg4cKBamzExMXjqqaewYsUKjB07Fv/5z3/w9ddf4+DBg228rPZhaAiMGNHZvSAiIiIirUPs+PHjce3aNSQkJEAul2PgwIHIzMxUrjYgl8vV1oytqqpCRkYG1qxZo7HNgIAAfPrpp1iwYAHeffdd9O3bFzt27FD5alIiIiIioiaC2NqncR5w1dXVsLS0RFVVldrUgpqaGhQXFyu/ZYz0C98/IiKih0NLeU1bbfraWSIiIiKizsQQS0RERER6hyGWiIiIiPQOQywRERER6R2G2IeAIAjYuXNnZ3eDiIiIqMMwxD7gysvLMWPGDLi6ukIikUAqlWLMmDHYv39/u5zvwIEDEAQBlZWV7dI+ACxfvhwBAQF45JFHYGVl1W7nISIiooeX1uvEUscpKSlBYGAgrKyskJSUBG9vb9TX1yMrKwvR0dE4ffp0Z3exWaIoQqFQoFs39Vusrq4OL730Evz9/bFx48ZO6B0RERHpO47EakHRoMCBkgPYfmI7DpQcgKJB0a7nmzZtGgRBwJEjRxAZGQkPDw94eXlh9uzZyM/P13iMppHUgoICCIKAkpISAMDFixcxZswYWFtbw8zMDF5eXsjMzERJSQmCg4MBANbW1hAEAZMmTQLQGEqTkpLg6uoKU1NT+Pj4ID09Xe28WVlZ8PPzg0QiQV5ensY+LlmyBLNmzcKgQYPu/0UiotZRKIADB4Dt2xv/VLTv7y8iovbGkdhWkp2SIWZvDC5XX1aWOVo4Ys3INQj3DNf5+a5fv469e/di+fLlMDMzU9t/Px/DR0dHo66uDrm5uTAzM0NhYSHMzc0hlUqRkZGBiIgInDlzBhYWFjA1NQUALFiwADKZDGlpaXB3d0dubi4mTpwIW1tbDB8+XNn23LlzsXLlSri6unKqANGDQiYDYmKAy3/+/oKjI7BmDRCu+99fREQdgSG2FWSnZIj8LBIiVL/crKy6DJGfRSJ9XLrOg2xRURFEUUT//v112i4AlJaWIiIiQjkS6urqqtxnY2MDAOjVq5cyhN66dQurV69GTk4O/P39lcccPHgQ69evVwmxCQkJCAkJ0XmfiaiNZDIgMhK4+8sZy8oay9PTGWSJSC9xOsE9KBoUiNkboxZgASjLYvfG6nxqQdO3AQuCoNN2AWDmzJlYtmwZAgMDsWjRIvz0008t1i8sLERNTQ1CQkJgbm6u3LZt24bz58+r1PXz89N5f4mojRSKxhFYTd8u3lQWG8upBUSklxhi7yGvNE9lCsHdRIi4VH0JeaWa53+2lbu7OwRBwKlTp7Q6zsCg8S0V7/hLq76+XqXOlClTcOHCBURFReHEiRPw8/PDunXrmm2zoaEBALBnzx4UFBQot8LCQpV5sQA0Tn0gok6Sl6c6heBuoghcutRYj4hIzzDE3oP8N7lO67WWjY0NwsLCkJKSglu3bqntb24JLFtb28b+yP/sT0FBgVo9qVSKqVOnQiaTIS4uDhs2bAAAGBsbAwAUd4zMDBgwABKJBKWlpXBzc1PZpFJpWy+RiNqbvJW/l1pbj4joAcIQew/23e11Wk8bqampUCgUGDJkCDIyMnDu3DmcOnUKa9euVc5NvVtTsFy8eDHOnj2LPXv2YNWqVSp1YmNjkZWVheLiYhw9ehQ5OTnw9PQEADg5OUEQBOzevRsVFRW4efMmunfvjjlz5mDWrFnYunUrzp8/j2PHjiElJQVbt27V+rpKS0tRUFCA0tJSKBQK5cjuzZs3tX+RiKh59q38vdTaekREDxCG2HsIejQIjhaOEKB5bqoAAVILKYIeDdL5uV1cXHD06FEEBwcjLi4OAwcOREhICPbv34+0tDSNxxgZGWH79u04ffo0fHx8sGLFCixbtkyljkKhQHR0NDw9PTFy5Ej069cPqampAAAHBwcsWbIE8+bNg52dHaZPnw4AWLp0KRYuXIjExER4enoiLCwMu3btgouLi9bXtXDhQgwePBiLFi3CzZs3MXjwYAwePBg//PCD1m0RUQuCghpXIWhubr0gAFJpYz0iIj0jiKKmGf/6p7q6GpaWlqiqqoKFhYXKvpqaGhQXF8PFxQUmJiZat920OgEAlQe8moJte6xOQH+63/ePqEtrWp0AUH3AqynYcnUCIupALeU1bXEkthXCPcORPi4dDhYOKuWOFo4MsET0YAsPbwyqDqq/v+DoyABLRHqN68S2UrhnOMb2G4u80jzIf5PDvrs9gh4NgqGBYWd3jYioZeHhwNixjasQyOWNc2CDggBD/v4iIv3FEKsFQwNDjHAe0dndICLSnqEhMGJEZ/eCiEhnOJ2AiIiIiPQOQywRERER6R2GWCIiIiLSOwyxRERERKR3GGKJiIiISO8wxBIRERGR3mGIfQgIgoCdO3d2djeIiIiIOgxD7AOuvLwcM2bMgKurKyQSCaRSKcaMGYP9+/e3y/kOHDgAQRBQWVnZLu2XlJRg8uTJcHFxgampKfr27YtFixahrq6uXc5HREREDyd+2cEDrKSkBIGBgbCyskJSUhK8vb1RX1+PrKwsREdH4/Tp053dxWaJogiFQoFu3VRvsdOnT6OhoQHr16+Hm5sbfv75Z7z++uu4desWVq5c2Um9JSIiIn3DkVhtKBTAgQPA9u2NfyoU7Xq6adOmQRAEHDlyBJGRkfDw8ICXlxdmz56N/Px8jcdoGkktKCiAIAgoKSkBAFy8eBFjxoyBtbU1zMzM4OXlhczMTJSUlCA4OBgAYG1tDUEQMGnSJACNoTQpKQmurq4wNTWFj48P0tPT1c6blZUFPz8/SCQS5OXlqfVv5MiR2Lx5M0JDQ+Hq6ooXXngBc+bMgUwm082LRkRERF0CR2JbSyYDYmKAy5f/LHN0BNasafxech27fv069u7di+XLl8PMzExtv5WVVZvbjo6ORl1dHXJzc2FmZobCwkKYm5tDKpUiIyMDEREROHPmDCwsLGBqagoAWLBgAWQyGdLS0uDu7o7c3FxMnDgRtra2GD58uLLtuXPnYuXKlXB1dW11H6uqqmBjY9Pm6yEiIqKuhyG2NWQyIDISEEXV8rKyxvL0dJ0H2aKiIoiiiP79++u0XQAoLS1FREQEBg0aBABwdXVV7msKk7169VKG0Fu3bmH16tXIycmBv7+/8piDBw9i/fr1KiE2ISEBISEhre7L+fPnsW7dOqxatep+L4uIiIi6EIbYe1EoGkdg7w6wQGOZIACxscDYsYChoc5OK/7vfIIg6KzNJjNnzsRbb72Fffv24dlnn0VERAS8vb2brV9YWIiamhq1cFpXV4fBgwerlPn5+bW6H7/88gtGjhyJl156CVOmTNHuIoiIiKhL45zYe8nLU51CcDdRBC5daqynQ+7u7hAEAadOndLqOAMDg/9168/QXV9fr1JnypQpuHDhAqKionDixAn4+flh3bp1zbbZ0NAAANizZw8KCgqUW2Fhocq8WAAapz5o8ssvvyA4OBj+/v748MMPW3UMERERUROG2HuRy3Vbr5VsbGwQFhaGlJQU3Lp1S21/c0tg2dra/q87f/anoKBArZ5UKsXUqVMhk8kQFxeHDRs2AACMjY0BAIo7HlobMGAAJBIJSktL4ebmprJJpVKtr62srAwjRozA448/js2bNyuDNxEREVFrMT3ci729butpITU1FQqFAkOGDEFGRgbOnTuHU6dOYe3atcq5qXdrCpaLFy/G2bNnsWfPHrX5prGxscjKykJxcTGOHj2KnJwceHp6AgCcnJwgCAJ2796NiooK3Lx5E927d8ecOXMwa9YsbN26FefPn8exY8eQkpKCrVu3anVNv/zyC0aMGAGpVIqVK1eioqIC5eXlKC8vb9uLRERERF0S58TeS1BQ4yoEZWWa58UKQuP+oCCdn9rFxQVHjx7F8uXLERcXB7lcDltbW/j6+iItLU3jMUZGRti+fTveeust+Pj44IknnsCyZcvw0ksvKesoFApER0fj8uXLsLCwwMiRI/HPf/4TAODg4IAlS5Zg3rx5ePXVV/Hyyy9jy5YtWLp0KXr16oXExERcuHABVlZWePzxx/HOO+9odU379u1DUVERioqK4OjoqLJP1PT6EhEREWkgiA9JcqiuroalpSWqqqpgYWGhsq+mpgbFxcVwcXGBiYmJ9o03rU4AqAbZpoeu2mF1AvrTfb9/RERE9EBoKa9pi9MJWiM8vDGoOjioljs6MsASERERdQJOJ2it8PDGZbTy8hof4rK3b5xCoMNltYiIiIiodRhitWFoCIwY0dm9ICIiIuryOJ2AiIiIiPQOQywRERER6R2GWCIiIiLSOwyxRERERKR3GGKJiIiISO8wxBIRERGR3mGIfQgIgoCdO3d2djeIiIiIOgxD7AOuvLwcM2bMgKurKyQSCaRSKcaMGYP9+/e3y/kOHDgAQRBQWVnZLu0DwAsvvIBHH30UJiYmsLe3R1RUFH755Zd2Ox8RERE9fBhitaAQRRy4cQPbf/0VB27cgEIU2/V8JSUl8PX1RU5ODpKSknDixAns3bsXwcHBiI6Obtdz3y9RFHH79m2N+4KDg/HZZ5/hzJkzyMjIwPnz5xEZGdnBPSQiIiJ91qYQm5qaChcXF5iYmMDX1xd5eXkt1q+trcX8+fPh5OQEiUSCvn37YtOmTcr9W7ZsgSAIaltNTU1butcuZBUVcM7PR/Dx45hw6hSCjx+Hc34+ZBUV7XbOadOmQRAEHDlyBJGRkfDw8ICXlxdmz56N/Px8jcdoGkktKCiAIAgoKSkBAFy8eBFjxoyBtbU1zMzM4OXlhczMTJSUlCA4OBgAYG1tDUEQMGnSJACNoTQpKQmurq4wNTWFj48P0tPT1c6blZUFPz8/SCSSZu+LWbNmYdiwYXByckJAQADmzZuH/Px81NfX3/+LRkRERF2C1l87u2PHDsTGxiI1NRWBgYFYv349Ro0ahcLCQjz66KMajxk3bhx+/fVXbNy4EW5ubrhy5YraKJ2FhQXOnDmjUmZiYqJt99qFrKICkSdP4u5x17LaWkSePIl0Ly+E29rq9JzXr1/H3r17sXz5cpiZmantt7KyanPb0dHRqKurQ25uLszMzFBYWAhzc3NIpVJkZGQgIiICZ86cgYWFBUxNTQEACxYsgEwmQ1paGtzd3ZGbm4uJEyfC1tYWw4cPV7Y9d+5crFy5Eq6urq3q4/Xr1/HJJ58gICAARkZGbb4mIiIi6lq0DrGrV6/G5MmTMWXKFABAcnIysrKykJaWhsTERLX6e/fuxbfffosLFy7AxsYGAODs7KxWTxAE9O7dW9vutDuFKCKmqEgtwAKACEAAEFtUhLE9e8JQEHR23qKiIoiiiP79++uszSalpaWIiIjAoEGDAACurq7KfU3vUa9evZQh9NatW1i9ejVycnLg7++vPObgwYNYv369SohNSEhASEjIPfvw97//He+//z5+//13DBs2DLt379bV5REREVEXoNV0grq6Ovz4448IDQ1VKQ8NDcWhQ4c0HvPll1/Cz88PSUlJcHBwgIeHB+bMmYM//vhDpd7Nmzfh5OQER0dHjB49GseOHWuxL7W1taiurlbZ2kNeZSUu19Y2u18EcKm2Fnk6fhBK/N98W0GHwbjJzJkzsWzZMgQGBmLRokX46aefWqxfWFiImpoahISEwNzcXLlt27YN58+fV6nr5+fXqj68/fbbOHbsGPbt2wdDQ0O8/PLLymsmIiIiuhetRmKvXr0KhUIBOzs7lXI7OzuUl5drPObChQs4ePAgTExM8MUXX+Dq1auYNm0arl+/rpwX279/f2zZsgWDBg1CdXU11qxZg8DAQBw/fhzu7u4a201MTMSSJUu06X6byOvqdFqvtdzd3SEIAk6dOoUXX3yx1ccZGDT+u+TOQHj3XNMpU6YgLCwMe/bswb59+5CYmIhVq1ZhxowZGttsaGgAAOzZswcODg4q+yQSicrPmqY+aNKzZ0/07NkTHh4e8PT0hFQqRX5+vnKkl4iIiKglbXqw6+7RQVEUmx0xbGhogCAI+OSTTzBkyBA899xzWL16NbZs2aIcjR02bBgmTpwIHx8fBAUF4bPPPoOHhwfWrVvXbB/i4+NRVVWl3C5dutSWS7kne2NjndZrLRsbG4SFhSElJQW3bt1S29/cEli2/5ubK5fLlWUFBQVq9aRSKaZOnQqZTIa4uDhs2LABAGD8v+tQKBTKugMGDIBEIkFpaSnc3NxUNqlU2tZLVGoK3LUtjHgTERER3UmrENuzZ08YGhqqjbpeuXJFbXS2ib29PRwcHGBpaaks8/T0hCiKuHz5suZOGRjgiSeewLlz55rti0QigYWFhcrWHoKsrOAokaC5D/UFAFKJBEH38aBVc1JTU6FQKDBkyBBkZGTg3LlzOHXqFNauXdvsiGVTsFy8eDHOnj2LPXv2YNWqVSp1YmNjkZWVheLiYhw9ehQ5OTnw9PQEADg5OUEQBOzevRsVFRW4efMmunfvjjlz5mDWrFnYunUrzp8/j2PHjiElJQVbt27V6pqOHDmC999/HwUFBbh48SK++eYbTJgwAX379uUoLBEREbWaViHW2NgYvr6+yM7OVinPzs5GQECAxmMCAwPxyy+/4ObNm8qys2fPwsDAAI6OjhqPEUURBQUFsLe316Z77cJQELDGzQ0A1IJs08/Jbm46fairiYuLC44ePYrg4GDExcVh4MCBCAkJwf79+5GWlqbxGCMjI2zfvh2nT5+Gj48PVqxYgWXLlqnUUSgUiI6OhqenJ0aOHIl+/fohNTUVAODg4IAlS5Zg3rx5sLOzw/Tp0wEAS5cuxcKFC5GYmAhPT0+EhYVh165dcHFx0eqaTE1NIZPJ8Mwzz6Bfv3547bXXMHDgQHz77bdqUxOIiIiImiOIWj5Ns2PHDkRFReGDDz6Av78/PvzwQ2zYsAEnT56Ek5MT4uPjUVZWhm3btgFofGDL09MTw4YNw5IlS3D16lVMmTIFw4cPV36EvWTJEgwbNgzu7u6orq7G2rVr8fHHH+O///0vhgwZ0qp+VVdXw9LSElVVVWqjsjU1NSguLlaubdsWsooKxBQVqTzkJZVIkOzmpvPltUiVLt4/IiIi6nwt5TVtab3E1vjx43Ht2jUkJCRALpdj4MCByMzMhJOTE4DGuZilpaXK+ubm5sjOzsaMGTPg5+eHHj16YNy4cSqjg5WVlXjjjTdQXl4OS0tLDB48GLm5ua0OsB0h3NYWY3v2RF5lJeR1dbA3NkaQlVW7jMASERERUcu0Hol9ULX3SCx1Hr5/REREDwddjsS2aXUCIiIiIqLOxBBLRERERHqHIZaIiIiI9A5DLBERERHpHYZYIiIiItI7DLFEREREpHcYYomIiIhI7zDEPgQEQcDOnTs7uxtEREREHYYh9gFXXl6OGTNmwNXVFRKJBFKpFGPGjMH+/fvb5XwHDhyAIAiorKxsl/bvVFtbi8ceewyCIKCgoKDdz0dEREQPD62/drYrExUiKvMqUSevg7G9MayCrCAYtt/XzpaUlCAwMBBWVlZISkqCt7c36uvrkZWVhejoaJw+fbrdzn2/RFGEQqFAt27N32Jz585Fnz59cPz48Q7sGRERET0MOBLbShWyCuQ75+N48HGcmnAKx4OPI985HxWyinY757Rp0yAIAo4cOYLIyEh4eHjAy8sLs2fPRn5+vsZjNI2kFhQUQBAElJSUAAAuXryIMWPGwNraGmZmZvDy8kJmZiZKSkoQHBwMALC2toYgCJg0aRKAxlCalJQEV1dXmJqawsfHB+np6WrnzcrKgp+fHyQSCfLy8pq9tq+++gr79u3DypUr7+9FIiIioi6JI7GtUCGrwMnIk4CoWl5bVouTkSfhle4F23BbnZ7z+vXr2Lt3L5YvXw4zMzO1/VZWVm1uOzo6GnV1dcjNzYWZmRkKCwthbm4OqVSKjIwMRERE4MyZM7CwsICpqSkAYMGCBZDJZEhLS4O7uztyc3MxceJE2NraYvjw4cq2586di5UrV8LV1bXZPv766694/fXXsXPnTjzyyCNtvg4iIiLquhhi70FUiCiKKVILsI07AQhAUWwReo7tqdOpBUVFRRBFEf3799dZm01KS0sRERGBQYMGAQBcXV2V+2xsbAAAvXr1UobQW7duYfXq1cjJyYG/v7/ymIMHD2L9+vUqITYhIQEhISHNnlsURUyaNAlTp06Fn5+fcnSYiIiISBsMsfdQmVeJ2su1zVcQgdpLtajMq4T1CGudnVcUG1OzIOh+zu3MmTPx1ltvYd++fXj22WcREREBb2/vZusXFhaipqZGLZzW1dVh8ODBKmV+fn4tnnvdunWorq5GfHx82y+AiIiIujzOib2HOnmdTuu1lru7OwRBwKlTp7Q6zsCg8S1tCsEAUF9fr1JnypQpuHDhAqKionDixAn4+flh3bp1zbbZ0NAAANizZw8KCgqUW2Fhocq8WAAapz7cKScnB/n5+ZBIJOjWrRvc3NwANIbfV155pfUXSkRE7UbRoMCBkgPYfmI7DpQcgKJB0dldIlLDkdh7MLY31mm91rKxsUFYWBhSUlIwc+ZMtXBYWVmpcc6prW3j3Fy5XA5r68aRYU3LV0mlUkydOhVTp05FfHw8NmzYgBkzZsDYuPE6FIo/f2ENGDAAEokEpaWlKlMH2mLt2rVYtmyZ8udffvkFYWFh2LFjB4YOHXpfbRMR0f2TnZIhZm8MLldfVpY5Wjhizcg1CPcM78SeEaliiL0HqyArSBwlqC2r1TwvVgAkjhJYBVnp/NypqakICAjAkCFDkJCQAG9vb9y+fRvZ2dlIS0vTOErr5uYGqVSKxYsXY9myZTh37hxWrVqlUic2NhajRo2Ch4cHbty4gZycHHh6egIAnJycIAgCdu/ejeeeew6mpqbo3r075syZg1mzZqGhoQFPPvkkqqurcejQIZibm2s1gvroo4+q/Gxubg4A6Nu3LxwdHbV9iYiISIdkp2SI/CwS4l1/4ZVVlyHys0ikj0tnkKUHBqcT3INgKMBtjdv/frh7Z+Mfbslu7bJerIuLC44ePYrg4GDExcVh4MCBCAkJwf79+5GWlqbxGCMjI2zfvh2nT5+Gj48PVqxYoTLyCTSOskZHR8PT0xMjR45Ev379kJqaCgBwcHDAkiVLMG/ePNjZ2WH69OkAgKVLl2LhwoVITEyEp6cnwsLCsGvXLri4uOj8uomIqOMpGhSI2RujFmABKMti98ZyagE9MATxzsmTeqy6uhqWlpaoqqqChYWFyr6amhoUFxfDxcUFJiYmbWq/QlaBopgilYe8JFIJ3JLddL68FqnSxftHREQtO1ByAMFbg+9Z75tXvsEI5xHt3yF6KLWU17TF6QStZBtui55je3boN3YRERF1FPlvcp3WI2pvDLFaEAwFnS6jRURE9KCw726v03pE7Y1zYomIiAhBjwbB0cIRgtoDII0ECJBaSBH0aFAH94xIM4ZYIiIigqGBIdaMXAMAakG26efkkckwNDDs8L4RacIQS0RERACAcM9wpI9Lh4OFg0q5o4Ujl9eiBw7nxBIREZFSuGc4xvYbi7zSPMh/k8O+uz2CHg3iCCw9cBhiiYiISIWhgSGX0aIHHqcTEBEREZHeYYglIiIiIr3DEPsQEAQBO3fu7OxuEBEREXUYhtgHXHl5OWbMmAFXV1dIJBJIpVKMGTMG+/fvb5fzHThwAIIgoLKysl3aBwBnZ2cIgqCyzZs3r93OR0RERA8fPtilBVFUoLIyD3V1chgb28PKKgiC0H5Pa5aUlCAwMBBWVlZISkqCt7c36uvrkZWVhejoaJw+fbrdzn2/RFGEQqFAt26ab7GEhAS8/vrryp/Nzc07qmtERET0EOBIbCtVVMiQn++M48eDcerUBBw/Hoz8fGdUVMja7ZzTpk2DIAg4cuQIIiMj4eHhAS8vL8yePRv5+fkaj9E0klpQUABBEFBSUgIAuHjxIsaMGQNra2uYmZnBy8sLmZmZKCkpQXBwMADA2toagiBg0qRJABpDaVJSElxdXWFqagofHx+kp6ernTcrKwt+fn6QSCTIy8tr9tq6d++O3r17KzeGWCIiItIGR2JboaJChpMnIwGIKuW1tWU4eTISXl7psLXV7QLQ169fx969e7F8+XKYmZmp7beysmpz29HR0airq0Nubi7MzMxQWFgIc3NzSKVSZGRkICIiAmfOnIGFhQVMTU0BAAsWLIBMJkNaWhrc3d2Rm5uLiRMnwtbWFsOHD1e2PXfuXKxcuRKurq4t9nHFihVYunQppFIpXnrpJbz99tswNjZu8zURERFR18IQew+iqEBRUQzuDrD/2wtAQFFRLHr2HKvTqQVFRUUQRRH9+/fXWZtNSktLERERgUGDBgEAXF1dlftsbGwAAL169VKG0Fu3bmH16tXIycmBv7+/8piDBw9i/fr1KiE2ISEBISEhLZ4/JiYGjz/+OKytrXHkyBHEx8ejuLgYH330kS4vk4iIiB5iDLH3UFmZh9rayy3UEFFbewmVlXmwth6hs/OKYmNoFgThHjW1N3PmTLz11lvYt28fnn32WURERMDb27vZ+oWFhaipqVELp3V1dRg8eLBKmZ+f3z3PP2vWLOV/e3t7w9raGpGRkVixYgV69Oih5dUQERFRV8Q5sfdQVyfXab3Wcnd3hyAIOHXqlFbHGRg0vqVNIRgA6uvrVepMmTIFFy5cQFRUFE6cOAE/Pz+sW7eu2TYbGhoAAHv27EFBQYFyKywsVJkXC0Dj1Id7GTZsGIDG0WciIiKi1mCIvQdjY3ud1mstGxsbhIWFISUlBbdu3VLb39wSWLa2tgAAufzPUF1QUKBWTyqVYurUqZDJZIiLi8OGDRsAQDkvVaFQKOsOGDAAEokEpaWlcHNzU9mkUmlbL1Hp2LFjAAB7e92+hkRERPTw4nSCe7CyCoJE4oja2jJonhcrQCJxhJVVkM7PnZqaioCAAAwZMgQJCQnw9vbG7du3kZ2djbS0NI2jtE3BcvHixVi2bBnOnTuHVatWqdSJjY3FqFGj4OHhgRs3biAnJweenp4AACcnJwiCgN27d+O5556Dqakpunfvjjlz5mDWrFloaGjAk08+ierqahw6dAjm5uZ45ZVXWn1Nhw8fRn5+PoKDg2FpaYnvv/8es2bNwgsvvIBHH330/l4wIiIi6jI4EnsPgmAIN7c1TT/dvRcA4OaW3C7rxbq4uODo0aMIDg5GXFwcBg4ciJCQEOzfvx9paWkajzEyMsL27dtx+vRp+Pj4YMWKFVi2bJlKHYVCgejoaHh6emLkyJHo168fUlNTAQAODg5YsmQJ5s2bBzs7O0yfPh0AsHTpUixcuBCJiYnw9PREWFgYdu3aBRcXF62uSSKRYMeOHRgxYgQGDBiAhQsX4vXXX8f27dvb8AoRERFRVyWId06e1GPV1dWwtLREVVUVLCwsVPbV1NSguLgYLi4uMDExaVP7FRUyFBXFqDzkJZFI4eaWrPPltUiVLt4/IiIi6nwt5TVtcTpBK9nahqNnz7Ed+o1dRERERKQZQ6wWBMFQp8toEREREVHbcE4sEREREekdhlgiIiIi0jsMsURERESkdxhiiYiIiEjvMMQSERERkd5hiCUiIiIivdOmEJuamqpceN7X1xd5eXkt1q+trcX8+fPh5OQEiUSCvn37YtOmTSp1MjIyMGDAAEgkEgwYMABffPFFW7pGRERERF2A1iF2x44diI2Nxfz583Hs2DEEBQVh1KhRKC0tbfaYcePGYf/+/di4cSPOnDmD7du3o3///sr9hw8fxvjx4xEVFYXjx48jKioK48aNw3fffde2q+piBEHAzp07O7sbRERERB1G6xC7evVqTJ48GVOmTIGnpyeSk5MhlUqRlpamsf7evXvx7bffIjMzE88++yycnZ0xZMgQBAQEKOskJycjJCQE8fHx6N+/P+Lj4/HMM88gOTm5zRf2sCgvL8eMGTPg6uoKiUQCqVSKMWPGYP/+/e1yvgMHDkAQBFRWVrZL+0327NmDoUOHwtTUFD179kR4OL+6l4iIiFpPqxBbV1eHH3/8EaGhoSrloaGhOHTokMZjvvzyS/j5+SEpKQkODg7w8PDAnDlz8McffyjrHD58WK3NsLCwZtvsLAqFAgcOHMD27dtx4MABKBSKdj1fSUkJfH19kZOTg6SkJJw4cQJ79+5FcHAwoqOj2/Xc90sURdy+fVvjvoyMDERFReHVV1/F8ePH8d///hcTJkzo4B4SERGRPtMqxF69ehUKhQJ2dnYq5XZ2digvL9d4zIULF3Dw4EH8/PPP+OKLL5CcnIz09HSVEFZeXq5Vm0DjPNvq6mqVrT3JZDI4OzsjODgYEyZMQHBwMJydnSGTydrtnNOmTYMgCDhy5AgiIyPh4eEBLy8vzJ49G/n5+RqP0TSSWlBQAEEQUFJSAgC4ePEixowZA2tra5iZmcHLywuZmZkoKSlBcHAwAMDa2hqCIGDSpEkAGkNpUlISXF1dYWpqCh8fH6Snp6udNysrC35+fpBIJBrnSt++fRsxMTF47733MHXqVHh4eKBfv36IjIzUzYtGREREXUK3thwkCILKz6IoqpU1aWhogCAI+OSTT2BpaQmgcUpCZGQkUlJSYGpqqnWbAJCYmIglS5a0pftak8lkiIyMhCiKKuVlZWWIjIxEenq6zj8Ov379Ovbu3Yvly5fDzMxMbb+VlVWb246OjkZdXR1yc3NhZmaGwsJCmJubQyqVIiMjAxEREThz5gwsLCyU78+CBQsgk8mQlpYGd3d35ObmYuLEibC1tcXw4cOVbc+dOxcrV66Eq6urxj4ePXoUZWVlMDAwwODBg1FeXo7HHnsMK1euhJeXV5uviYiIiLoWrUJsz549YWhoqDZCeuXKFbWR1Cb29vZwcHBQBlgA8PT0hCiKuHz5Mtzd3dG7d2+t2gSA+Ph4zJ49W/lzdXU1pFKpNpfTKgqFAjExMWoBFvgzaMfGxmLs2LEwNDTU2XmLioogiqLKA3C6UlpaioiICAwaNAgA4OrqqtxnY2MDAOjVq5cyhN66dQurV69GTk4O/P39lcccPHgQ69evVwmxCQkJCAkJafbcFy5cAAAsXrwYq1evhrOzM1atWoXhw4fj7NmzyvMTERERtUSr6QTGxsbw9fVFdna2Snl2drbKg1p3CgwMxC+//IKbN28qy86ePQsDAwM4OjoCAPz9/dXa3LdvX7NtAoBEIoGFhYXK1h7y8vJw+fLlZveLoohLly7dc5kxbTWF5pZGo9tq5syZWLZsGQIDA7Fo0SL89NNPLdYvLCxETU0NQkJCYG5urty2bduG8+fPq9T18/Nrsa2GhgYAwPz58xEREQFfX19s3rwZgiDg888/v78LIyIioi5D69UJZs+ejY8++gibNm3CqVOnMGvWLJSWlmLq1KkAGkdIX375ZWX9CRMmoEePHnj11VdRWFiI3NxcvP3223jttdeUH1XHxMRg3759WLFiBU6fPo0VK1bg66+/RmxsrG6u8j7I5XKd1mstd3d3CIKAU6dOaXWcgUHjW3rnyHF9fb1KnSlTpuDChQuIiorCiRMn4Ofnh3Xr1jXbZlPw3LNnDwoKCpRbYWGhyrxYABqnPtzJ3t4eADBgwABlmUQigaura4vLtBERERHdSesQO378eCQnJyMhIQGPPfYYcnNzkZmZCScnJwCNYe7OMGJubo7s7GxUVlbCz88Pf/vb3zBmzBisXbtWWScgIACffvopNm/eDG9vb2zZsgU7duzA0KFDdXCJ96cpdOmqXmvZ2NggLCwMKSkpuHXrltr+5pbAsrW1BaAaqgsKCtTqSaVSTJ06FTKZDHFxcdiwYQOAxtF2ACorLzR9CUVpaSnc3NxUNm2ncPj6+kIikeDMmTPKsvr6epSUlCjvISIiIqJ7adODXdOmTcO0adM07tuyZYtaWf/+/dWmC9wtMjLygXxCPSgoCI6OjigrK9M4L1YQBDg6OiIoKEjn505NTUVAQACGDBmChIQEeHt74/bt28jOzkZaWprGUdqmYLl48WIsW7YM586dw6pVq1TqxMbGYtSoUfDw8MCNGzeQk5MDT09PAICTkxMEQcDu3bvx3HPPwdTUFN27d8ecOXMwa9YsNDQ04Mknn0R1dTUOHToEc3NzvPLKK62+JgsLC0ydOhWLFi2CVCqFk5MT3nvvPQDASy+9dB+vFhEREXUlbfra2a7E0NAQa9asAaA+P7Xp5+TkZJ0+1NXExcUFR48eRXBwMOLi4jBw4ECEhIRg//79zX65hJGREbZv347Tp0/Dx8cHK1aswLJly1TqKBQKREdHw9PTEyNHjkS/fv2QmpoKAHBwcMCSJUswb9482NnZYfr06QCApUuXYuHChUhMTISnpyfCwsKwa9cuuLi4aH1d7733Hv7yl78gKioKTzzxBC5evIicnBxYW1tr3RYRERF1TYKoaXhRD1VXV8PS0hJVVVVqD3nV1NSguLgYLi4uMDExaVP7MpkMMTExKg95SaVSJCcn89um2pku3j8iIiLqfC3lNW21aTpBVxQeHo6xY8ciLy8Pcrkc9vb2CAoKapcRWCIiIiJqGUOsFgwNDTFixIjO7gYRERFRl8c5sURERESkdxhiiYiIiEjvMMQSERERkd5hiCUiIiIivcMQS0RERER6hyGWiIiIiPQOQywRERER6R2G2IeAIAjYuXNnZ3eDiIiIqMMwxD7gysvLMWPGDLi6ukIikUAqlWLMmDHYv39/u5zvwIEDEAQBlZWV7dJ+kz179mDo0KEwNTVFz549+dW9REREpBV+Y5cWFApFh37tbElJCQIDA2FlZYWkpCR4e3ujvr4eWVlZiI6OxunTp9vt3PdLFEUoFAp066Z+i2VkZOD111/HP/7xDzz99NMQRREnTpzohF4SERGRvuJIbCvJZDI4OzsjODgYEyZMQHBwMJydnSGTydrtnNOmTYMgCDhy5AgiIyPh4eEBLy8vzJ49G/n5+RqP0TSSWlBQAEEQUFJSAgC4ePEixowZA2tra5iZmcHLywuZmZkoKSlBcHAwAMDa2hqCIGDSpEkAGkNpUlISXF1dYWpqCh8fH6Snp6udNysrC35+fpBIJMjLy1Pr3+3btxETE4P33nsPU6dOhYeHB/r164fIyEjdvGhERETUJXAkthVkMhkiIyMhiqJKeVlZGSIjI5Genq7zj8OvX7+OvXv3Yvny5TAzM1Pbb2Vl1ea2o6OjUVdXh9zcXJiZmaGwsBDm5uaQSqXIyMhAREQEzpw5AwsLC5iamgIAFixYAJlMhrS0NLi7uyM3NxcTJ06Era0thg8frmx77ty5WLlyJVxdXTX28ejRoygrK4OBgQEGDx6M8vJyPPbYY1i5ciW8vLzafE1ERETUtTDE3oNCoUBMTIxagAUaRycFQUBsbCzGjh2r06kFRUVFEEUR/fv311mbTUpLSxEREYFBgwYBAFxdXZX7bGxsAAC9evVShtBbt25h9erVyMnJgb+/v/KYgwcPYv369SohNiEhASEhIc2e+8KFCwCAxYsXY/Xq1XB2dsaqVaswfPhwnD17Vnl+IiIiopZwOsE95OXl4fLly83uF0URly5d0vjR+f1oCs2CIOi0XQCYOXMmli1bhsDAQCxatAg//fRTi/ULCwtRU1ODkJAQmJubK7dt27bh/PnzKnX9/PxabKuhoQEAMH/+fERERMDX1xebN2+GIAj4/PPP7+/CiIiIqMtgiL0HuVyu03qt5e7uDkEQcOrUKa2OMzBofEvvHDmur69XqTNlyhRcuHABUVFROHHiBPz8/LBu3bpm22wKnnv27EFBQYFyKywsVJkXC0Dj1Ic72dvbAwAGDBigLJNIJHB1dUVpaWkrrpCIiIiIIfaemkKXruq1lo2NDcLCwpCSkoJbt26p7W9uCSxbW1sAqqG6oKBArZ5UKsXUqVMhk8kQFxeHDRs2AACMjY0BNE6jaDJgwABIJBKUlpbCzc1NZZNKpVpdl6+vLyQSCc6cOaMsq6+vR0lJCZycnLRqi4iIiLouhth7CAoKgqOjY7Mf6wuCAKlUiqCgIJ2fOzU1FQqFAkOGDEFGRgbOnTuHU6dOYe3atcq5qXdrCpaLFy/G2bNnsWfPHqxatUqlTmxsLLKyslBcXIyjR48iJycHnp6eAAAnJycIgoDdu3ejoqICN2/eRPfu3TFnzhzMmjULW7duxfnz53Hs2DGkpKRg69atWl2ThYUFpk6dikWLFmHfvn04c+YM3nrrLQDASy+91IZXiYiIiLoihth7MDQ0xJo1awCoz09t+jk5Obld1ot1cXHB0aNHERwcjLi4OAwcOBAhISHYv38/0tLSNB5jZGSE7du34/Tp0/Dx8cGKFSuwbNkylToKhQLR0dHw9PTEyJEj0a9fP6SmpgIAHBwcsGTJEsybNw92dnaYPn06AGDp0qVYuHAhEhMT4enpibCwMOzatQsuLi5aX9d7772Hv/zlL4iKisITTzyBixcvIicnB9bW1lq3RURERF2TIGp67F4PVVdXw9LSElVVVbCwsFDZV1NTg+LiYri4uMDExKRN7ctkMsTExKg85CWVSpGcnMxvm2pnunj/iIiIqPO1lNe0xSW2Wik8PBxjx47t0G/sIiIiIiLNGGK1YGhoiBEjRnR2N4iIiIi6PM6JJSIiIiK9wxBLRERERHqHIZaIiIiI9A5DLBERERHpHYZYIiIiItI7DLFEREREpHcYYomIiIhI7zDEPgQEQcDOnTs7uxtEREREHYYh9gFXXl6OGTNmwNXVFRKJBFKpFGPGjMH+/fvb5XwHDhyAIAiorKxs1/Y1bd9//327nJOIiIgePvzGLi0oFEBeHiCXA/b2QFAQ0J7fOltSUoLAwEBYWVkhKSkJ3t7eqK+vR1ZWFqKjo3H69On2O/l9EkURCoUC3bqp3mIBAQGQy+UqZe+++y6+/vpr+Pn5dWQXiYiISI9xJLaVZDLA2RkIDgYmTGj809m5sby9TJs2DYIg4MiRI4iMjISHhwe8vLwwe/Zs5OfnazxG00hqQUEBBEFASUkJAODixYsYM2YMrK2tYWZmBi8vL2RmZqKkpATBwcEAAGtrawiCgEmTJgFoDKVJSUlwdXWFqakpfHx8kJ6ernberKws+Pn5QSKRIC8vT61/xsbG6N27t3Lr0aMHvvzyS7z22msQBEE3LxwRERE99DgS2woyGRAZCYiianlZWWN5ejoQHq7bc16/fh179+7F8uXLYWZmprbfysqqzW1HR0ejrq4Oubm5MDMzQ2FhIczNzSGVSpGRkYGIiAicOXMGFhYWMDU1BQAsWLAAMpkMaWlpcHd3R25uLiZOnAhbW1sMHz5c2fbcuXOxcuVKuLq6tqqPX375Ja5evaoMy0REREStwRB7DwoFEBOjHmCBxjJBAGJjgbFjdTu1oKioCKIoon///rpr9H9KS0sRERGBQYMGAQBcXV2V+2xsbAAAvXr1UobQW7duYfXq1cjJyYG/v7/ymIMHD2L9+vUqITYhIQEhISGt7svGjRsRFhYGqVR6v5dFREREXQhD7D3k5QGXLze/XxSBS5ca640Yobvziv9Lze3xEfvMmTPx1ltvYd++fXj22WcREREBb2/vZusXFhaipqZGLZzW1dVh8ODBKmXazGu9fPkysrKy8Nlnn2l3AURERNTlcU7sPdz1DNJ912std3d3CIKAU6dOaXWcgUHjWyreMXRcX1+vUmfKlCm4cOECoqKicOLECfj5+WHdunXNttnQ0AAA2LNnDwoKCpRbYWGhyrxYABqnPjRn8+bN6NGjB1544YVWH0NEREQEMMTek729buu1lo2NDcLCwpCSkoJbt26p7W9uCSxbW1sAUFkBoKCgQK2eVCrF1KlTIZPJEBcXhw0bNgBofPAKABQKhbLugAEDIJFIUFpaCjc3N5WtrdMARFHE5s2b8fLLL8PIyKhNbRAREVHXxRB7D0FBgKNj49xXTQQBkEob6+laamoqFAoFhgwZgoyMDJw7dw6nTp3C2rVrlXNT79YULBcvXoyzZ89iz549WLVqlUqd2NhYZGVlobi4GEePHkVOTg48PT0BAE5OThAEAbt370ZFRQVu3ryJ7t27Y86cOZg1axa2bt2K8+fP49ixY0hJScHWrVvbdG05OTkoLi7G5MmT23Q8ERERdW0MsfdgaAisWdP433cH2aafk5PbZ71YFxcXHD16FMHBwYiLi8PAgQMREhKC/fv3Iy0tTeMxRkZG2L59O06fPg0fHx+sWLECy5YtU6mjUCgQHR0NT09PjBw5Ev369UNqaioAwMHBAUuWLMG8efNgZ2eH6dOnAwCWLl2KhQsXIjExEZ6enggLC8OuXbvg4uLSpmvbuHEjAgIClOGZiIiISBuCKGp67l7/VFdXw9LSElVVVbCwsFDZV1NTg+LiYri4uMDExKRN7ctkjasU3PmQl1TaGGB1vbwWqdLF+0dERESdr6W8pi2uTtBK4eGNy2h15Dd2EREREZFmDLFaMDTU7TJaRERERNQ2nBNLRERERHqHIZaIiIiI9A5DLBERERHpnTaF2NTUVOWT4r6+vsjLy2u27oEDByAIgtp2+vRpZZ0tW7ZorFNTU9OW7hERERHRQ07rB7t27NiB2NhYpKamIjAwEOvXr8eoUaNQWFiIRx99tNnjzpw5o7KUQtM3SzWxsLDAmTNnVMq4nBIRERERaaJ1iF29ejUmT56MKVOmAACSk5ORlZWFtLQ0JCYmNntcr169YGVl1ex+QRDQu3dvbbtDRERERF2QVtMJ6urq8OOPPyI0NFSlPDQ0FIcOHWrx2MGDB8Pe3h7PPPMMvvnmG7X9N2/ehJOTExwdHTF69GgcO3asxfZqa2tRXV2tshERERFR16BViL169SoUCgXs7OxUyu3s7FBeXq7xGHt7e3z44YfIyMiATCZDv3798MwzzyA3N1dZp3///tiyZQu+/PJLbN++HSYmJggMDMS5c+ea7UtiYiIsLS2Vm1Qq1eZSHiqCIGDnzp2d3Q0iIiLSIwoFcOAAsH17458KRWf3SDtterBLEASVn0VRVCtr0q9fP7z++ut4/PHH4e/vj9TUVDz//PNYuXKlss6wYcMwceJE+Pj4ICgoCJ999hk8PDywbt26ZvsQHx+Pqqoq5Xbp0qW2XMoDr7y8HDNmzICrqyskEgmkUinGjBmD/fv3t8v5mh7Eq6ysbNf2NW3ff/99u5yTiIiIVMlkgLMzEBwMTJjQ+Kezc2O5vtBqTmzPnj1haGioNup65coVtdHZlgwbNgz/+te/mt1vYGCAJ554osWRWIlEAolE0upz6oJC0bFfO1tSUoLAwEBYWVkhKSkJ3t7eqK+vR1ZWFqKjo1VWeHjQiKIIhUKBbt1Ub7GAgADI5XKVsnfffRdff/01/Pz8OrKLREREXZJMBkRGAqKoWl5W1lieng6Eh3dO37Sh1UissbExfH19kZ2drVKenZ2NgICAVrdz7Ngx2NvbN7tfFEUUFBS0WKejdca/WKZNmwZBEHDkyBFERkbCw8MDXl5emD17NvLz8zUeo2kktaCgAIIgoKSkBABw8eJFjBkzBtbW1jAzM4OXlxcyMzNRUlKC4OBgAIC1tTUEQcCkSZMANL4nSUlJcHV1hampKXx8fJCenq523qysLPj5+UEikWhces3Y2Bi9e/dWbj169MCXX36J1157rdnRfCIiItINhQKIiVEPsMCfZbGx+jG1QOvVCWbPno2oqCj4+fnB398fH374IUpLSzF16lQAjR/zl5WVYdu2bQAaVy9wdnaGl5cX6urq8K9//QsZGRnIyMhQtrlkyRIMGzYM7u7uqK6uxtq1a1FQUICUlBQdXeb96Yx/sVy/fh179+7F8uXLYWZmpra/pZUe7iU6Ohp1dXXIzc2FmZkZCgsLYW5uDqlUioyMDERERCiXRDM1NQUALFiwADKZDGlpaXB3d0dubi4mTpwIW1tbDB8+XNn23LlzsXLlSri6uraqj19++SWuXr2qDMtERETUfvLygMuXm98visClS431RozosG61idYhdvz48bh27RoSEhIgl8sxcOBAZGZmwsnJCQAgl8tRWlqqrF9XV4c5c+agrKwMpqam8PLywp49e/Dcc88p61RWVuKNN95AeXk5LC0tMXjwYOTm5mLIkCE6uMT7c69/sQhC479Yxo7V7dSCoqIiiKKI/v37667R/yktLUVERAQGDRoEAHB1dVXus7GxAaC6JNqtW7ewevVq5OTkwN/fX3nMwYMHsX79epUQm5CQgJCQkFb3ZePGjQgLC+vSD+YRERF1lLtm9N13vc6kdYgFGj/mnjZtmsZ9W7ZsUfl57ty5mDt3bovt/fOf/8Q///nPtnSl3XXWv1jE/6Xm9viIfebMmXjrrbewb98+PPvss4iIiIC3t3ez9QsLC1FTU6MWTuvq6jB48GCVMm3mtV6+fBlZWVn47LPPtLsAIiIiapPWztR8gGZ0NqtNqxN0JZ31LxZ3d3cIgoBTp05pdZyBQeNbKt4xdFxfX69SZ8qUKbhw4QKioqJw4sQJ+Pn5tbgSRENDAwBgz549KCgoUG6FhYUq82IBaJz60JzNmzejR48eeOGFF1p9DBEREbVdUBDg6Nj4SbImggBIpY31HnQMsffQWf9isbGxQVhYGFJSUnDr1i21/c0tgdX0db53rgBQUFCgVk8qlWLq1KmQyWSIi4vDhg0bADQ+eAUAijtmdA8YMAASiQSlpaVwc3NT2do6DUAURWzevBkvv/wyjIyM2tQGERERacfQEFizpvG/7w6yTT8nJ7fv6ku6whB7D535L5bU1FQoFAoMGTIEGRkZOHfuHE6dOoW1a9cq56berSlYLl68GGfPnsWePXuwatUqlTqxsbHIyspCcXExjh49ipycHHh6egIAnJycIAgCdu/ejYqKCty8eRPdu3fHnDlzMGvWLGzduhXnz5/HsWPHkJKSgq1bt7bp2nJyclBcXIzJkye36XgiIiJqm/DwxofSHRxUyx0d9Wd5LYAh9p46818sLi4uOHr0KIKDgxEXF4eBAwciJCQE+/fvR1pamsZjjIyMsH37dpw+fRo+Pj5YsWIFli1bplJHoVAgOjoanp6eGDlyJPr164fU1FQAgIODA5YsWYJ58+bBzs4O06dPBwAsXboUCxcuRGJiIjw9PREWFoZdu3bBxcWlTde2ceNGBAQEKMMzERERdZzwcKCkBPjmG+Df/278s7hYfwIsAAiiqOm5e/1TXV0NS0tLVFVVwcLCQmVfTU0NiouL4eLiAhMTkza1L5M1rlJw50NeUmljgNWnN1wf6eL9IyIios7XUl7TVptWJ+iKwsMbl9HqyG/sIiIiIiLNGGK1YGj44C/8S0RERNQVcE4sEREREekdhlgiIiIi0jsMsURERESkd7pUiH1IFmLocpq+MYyIiIioSZd4sMvIyAiCIKCiogK2trYQmvvmAnqgiKKIuro6VFRUwMDAQPltYkRERERdIsQaGhrC0dERly9fRklJSWd3h7T0yCOP4NFHH4WBQZf64ICIiIha0CVCLACYm5vD3d0d9fX1nd0V0oKhoSG6devG0XMiIiJS0WVCLNAYiAz57QREREREeo+fzxIRERGR3mGIJSIiIiK9wxBLRERERHrnoZkT27QGbHV1dSf3hIiIiIg0acppuli7/6EJsb/99hsAQCqVdnJPiIiIiKglv/32GywtLe+rDUF8SL7GqqGhAb/88gu6d+/O5Zh0qLq6GlKpFJcuXYKFhUVnd4ceALwn6G68J+hOvB/obnfeE927d8dvv/2GPn363Pf67w/NSKyBgQEcHR07uxsPLQsLC/4yIhW8J+huvCfoTrwf6G5N98T9jsA24YNdRERERKR3GGKJiIiISO8wxFKLJBIJFi1aBIlE0tldoQcE7wm6G+8JuhPvB7pbe90TD82DXURERETUdXAkloiIiIj0DkMsEREREekdhlgiIiIi0jsMsURERESkdxhiCampqXBxcYGJiQl8fX2Rl5fXbN2DBw8iMDAQPXr0gKmpKfr3749//vOfHdhb6gja3BN3+u9//4tu3brhsccea98OUofT5p44cOAABEFQ206fPt2BPab2pO3viNraWsyfPx9OTk6QSCTo27cvNm3a1EG9pY6gzT0xadIkjb8jvLy8tDupSF3ap59+KhoZGYkbNmwQCwsLxZiYGNHMzEy8ePGixvpHjx4V//3vf4s///yzWFxcLH788cfiI488Iq5fv76De07tRdt7okllZaXo6uoqhoaGij4+Ph3TWeoQ2t4T33zzjQhAPHPmjCiXy5Xb7du3O7jn1B7a8jvihRdeEIcOHSpmZ2eLxcXF4nfffSf+97//7cBeU3vS9p6orKxU+d1w6dIl0cbGRly0aJFW5+USW13c0KFD8fjjjyMtLU1Z5unpiRdffBGJiYmtaiM8PBxmZmb4+OOP26ub1IHaek/85S9/gbu7OwwNDbFz504UFBR0QG+pI2h7Txw4cADBwcG4ceMGrKysOrCn1BG0vR/27t2Lv/zlL7hw4QJsbGw6sqvUQe43S+zcuRPh4eEoLi6Gk5NTq8/L6QRdWF1dHX788UeEhoaqlIeGhuLQoUOtauPYsWM4dOgQhg8f3h5dpA7W1nti8+bNOH/+PBYtWtTeXaQOdj+/JwYPHgx7e3s888wz+Oabb9qzm9RB2nI/fPnll/Dz80NSUhIcHBzg4eGBOXPm4I8//uiILlM700WW2LhxI5599lmtAiwAdNOqNj1Url69CoVCATs7O5VyOzs7lJeXt3iso6MjKioqcPv2bSxevBhTpkxpz65SB2nLPXHu3DnMmzcPeXl56NaNv1IeNm25J+zt7fHhhx/C19cXtbW1+Pjjj/HMM8/gwIEDeOqppzqi29RO2nI/XLhwAQcPHoSJiQm++OILXL16FdOmTcP169c5L/YhcD9ZAgDkcjm++uor/Pvf/9b63PwbhyAIgsrPoiiqld0tLy8PN2/eRH5+PubNmwc3Nzf89a9/bc9uUgdq7T2hUCgwYcIELFmyBB4eHh3VPeoE2vye6NevH/r166f82d/fH5cuXcLKlSsZYh8S2twPDQ0NEAQBn3zyCSwtLQEAq1evRmRkJFJSUmBqatru/aX215YsAQBbtmyBlZUVXnzxRa3PyRDbhfXs2ROGhoZq/1K6cuWK2r+o7ubi4gIAGDRoEH799VcsXryYIfYhoO098dtvv+GHH37AsWPHMH36dACNf2GJoohu3bph3759ePrppzuk79Q+7uf3xJ2GDRuGf/3rX7ruHnWwttwP9vb2cHBwUAZYoHG+pCiKuHz5Mtzd3du1z9S+7ud3hCiK2LRpE6KiomBsbKz1uTkntgszNjaGr68vsrOzVcqzs7MREBDQ6nZEUURtba2uu0edQNt7wsLCAidOnEBBQYFymzp1Kvr164eCggIMHTq0o7pO7URXvyeOHTsGe3t7XXePOlhb7ofAwED88ssvuHnzprLs7NmzMDAwgKOjY7v2l9rf/fyO+Pbbb1FUVITJkye37eRtXU6BHg5Ny2Js3LhRLCwsFGNjY0UzMzOxpKREFEVRnDdvnhgVFaWs//7774tffvmlePbsWfHs2bPipk2bRAsLC3H+/PmddQmkY9reE3dbtGgRl9h6yGh7T/zzn/8Uv/jiC/Hs2bPizz//LM6bN08EIGZkZHTWJZAOaXs//Pbbb6Kjo6MYGRkpnjx5Uvz2229Fd3d3ccqUKZ11CaRjbf17Y+LEieLQoUPbfF5OJ+jixo8fj2vXriEhIQFyuRwDBw5EZmam8glBuVyO0tJSZf2GhgbEx8ejuLgY3bp1Q9++ffF///d/ePPNNzvrEkjHtL0n6OGn7T1RV1eHOXPmoKysDKampvDy8sKePXvw3HPPddYlkA5pez+Ym5sjOzsbM2bMgJ+fH3r06IFx48Zh2bJlnXUJpGNt+XujqqoKGRkZWLNmTZvPy3ViiYiIiEjvcE4sEREREekdhlgiIiIi0jsMsURERESkdxhiiYiIiEjvMMQSERERkd5hiCUiIiIivcMQS0RERER6hyGWiIiIiPQOQywRERER6R2GWCIiIiLSOwyxRERERKR3GGKJiIiISO/8f7OGDx5by77PAAAAAElFTkSuQmCC\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 6 ---\n", - "Aktuelle Cluster: [[1], [4], [7], [8], [0, 5], [6, 9], [2, 3]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 0. 5. 0.0362049 2. ]\n", - " [ 4. 7. 0.05376004 2. ]\n", - " [ 6. 9. 0.08275424 2. ]\n", - " [ 3. 11. 0.10797673 3. ]\n", - " [ 1. 2. 0.12344616 2. ]\n", - " [10. 12. 0.13930155 4. ]\n", - " [13. 15. 0.23028243 7. ]\n", - " [14. 16. 0.37874766 9. ]\n", - " [ 8. 17. 0.47988728 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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jcLkyZORnJyM0NBQlJaWIiYmBgMHDkSPHj0AANHR0XjuueewfPlyjB49Gv/+97/x3Xff4dChQ1q8VCIiIiJ6XGgcYseOHYsbN24gPj4epaWl6NevH9LS0uDo6AgAKC0tVVozdsKECfj999/x0UcfITY2FhYWFnj++eexfPlyRR1/f3989dVXmD9/Pt5//3306tUL27dvx6BBg7RwiURERET0uNF4ndhHFdeJJSIiInq0ddg6sUREREREjwKGWCIiIiLSORrPiSUiImoNeb0c2cXZKP29FHZd7RDYMxD6evod3S0i0lEMsURE1OZk+TJE74vG5arLijIHMwesGb4GYR5hHdgzItJVnE5ARERtSpYvQ8TXEUoBFgBKqkoQ8XUEZPmyDuoZEekyhlgiImoz8no5ovdFQ4TqQjiNZTH7YiCvl7d314hIxzHEEhFRm8kuzlYZgb2XCBGXqi4huzi7HXtFRI8DhlgiImozpb+XarUeEVEjhlgiImozdl3ttFqPiKgRQywREbWZwJ6BcDBzgABB7X4BAqRmUgT2DGznnhGRrmOIJSKiNqOvp481w9cAgEqQbXy9evhqrhdLRBpjiCUiojYV5hGGlDEpsDezVyp3MHNAypgUrhNLRK0iiKKouu6JDqqqqoK5uTkqKythZmbW0d0hIqL78Bu7iEibeY3f2EVERO1CX08fQ52GdnQ3iOgxwekERERERKRzGGKJiIiISOcwxBIRERGRzmGIJSIiIiKdwxBLRERERDqHIZaIiIiIdA5DLBERERHpHIZYIiIiItI5DLFEREREpHMYYomIiIhI5zDEEhEREZHOYYglIiIiIp3DEEtEREREOochloiIiIh0DkMsEREREekchlgiIiIi0jkMsURERESkcxhiiYiIiEjnMMQSERERkc5hiCUiIiIincMQS0REREQ6hyGWiIiIiHQOQywRERER6RyGWCIiIiLSOV06ugNERESku0RRjoqKbNTWlsLQ0A4WFoEQBP2O7hZ1AgyxRERE1Crl5TIUFESjpuayokwicYCr6xrY2IR1YM+oM+B0AiIiItJYebkMp05FKAVYAKipKcGpUxEoL5d1UM+os2CIJSIiIo2IohwFBdEARHV7AQAFBTEQRXm79os6F4ZYIiIi0khFRbbKCKwyETU1l1BRkd1ufaLOhyGWiIiINFJbW6rVekStwRBLREREGjE0tNNqPaLWYIglIiIijVhYBEIicQAgNFFDgEQihYVFYHt2izoZhlgiIiLSiCDow9V1TeOr+/cCAFxdV3O9WGpTDLFERESkMRubMHh6pkAisVcql0gc4OmZwnViqc3xyw6IiIioVWxswmBtPZrf2EUdolUjsUlJSXB2doaRkRF8fHyQnd30EhoTJkyAIAgqm6enp6LO5s2b1daprq5uTfeIiIionQiCPiwth8LW9q+wtBzKAEvtRuMQu337dsTExGDevHk4fvw4AgMDMWLECBQXF6utv2bNGpSWliq2S5cuwcrKCq+++qpSPTMzM6V6paWlMDIyat1VEREREdFjTePpBKtWrcLEiRMxadIkAMDq1auRnp6O5ORkJCQkqNQ3NzeHubm54vXOnTtx69YtvPHGG0r1BEFA9+7dNe0OERFR25HLgexsoLQUsLMDAgMBfY40Ej0KNBqJra2txS+//IKQkBCl8pCQEBw+fLhFbXz22WcYNmwYHB0dlcpv374NR0dHODg4YOTIkTh+/Hiz7dTU1KCqqkppIyIi0hqZDHByAoKCgHHjGv7r5NRQTkQdTqMQe/36dcjlctja2iqV29raoqys7IHHl5aWYu/evYpR3EZ9+vTB5s2b8e2332Lbtm0wMjJCQEAAzp0712RbCQkJilFec3NzSKVSTS6FiIioaTIZEBEBXL7vq1VLShrKGWSJOlyrHuwSBOU14URRVClTZ/PmzbCwsMArr7yiVD548GCMHz8e3t7eCAwMxNdffw13d3esW7euybbi4uJQWVmp2C5dutSaSyEiIlImlwPR0YAoqu5rLIuJaahHRB1Gozmx1tbW0NfXVxl1vXbtmsro7P1EUcSmTZsQGRkJQ0PDZuvq6enhmWeeaXYkViKRQCKRtLzzRERELZGdrToCey9RBC5daqg3dGi7dYuIlGk0EmtoaAgfHx9kZGQolWdkZMDf37/ZY3/44QcUFBRg4sSJDzyPKIrIzc2FnR2/c5mIiNpZaal26xFRm9B4dYJZs2YhMjISvr6+8PPzwyeffILi4mJMmTIFQMOv+UtKSrB161al4z777DMMGjQI/fr1U2lz8eLFGDx4MNzc3FBVVYW1a9ciNzcX69evb+VlERERtVJLB1A40ELUoTQOsWPHjsWNGzcQHx+P0tJS9OvXD2lpaYrVBkpLS1XWjK2srERqairWrFmjrklUVFTgrbfeQllZGczNzTFgwABkZWVh4MCBrbgkIiKihxAYCDg4NDzEpW5erCA07A8MbP++EZGCIIrq/oTqnqqqKpibm6OyshJmZmYd3R0iItJljasTAMpBtvEh5pQUICys/ftFpOO0mddatToBERHRYy0srCGo2tsrlzs4MMASPSI0nk5ARETUKYSFAaNH8xu7iB5RDLFERERN0dfnMlpEjyhOJyAiIiIincMQS0REREQ6hyGWiIiIiHQOQywRERER6RyGWCIiIiLSOQyxRERERKRzGGKJiIiISOcwxBIRERGRzmGIJSIiIiKdwxBLRERERDqHIZaIiIiIdA5DLBERERHpHIZYIiIiItI5DLFEREREpHMYYomIiIhI5zDEEhEREZHOYYglIiIiIp3DEEtEREREOochloiIiIh0DkMsEREREekchlgiIiIi0jkMsURERESkcxhiiYiIiEjnMMQSERERkc5hiCUiIiIincMQS0REREQ6hyGWiIiIiHQOQywRERER6RyGWCIiIiLSOQyxRERERKRzGGKJiIiISOcwxBIRERGRzmGIJSIiIiKd06WjO9Ce6uvrUVtb29HdIA0YGBhAX1+/o7tBREREj5hOE2Jra2tRWFiI+vr6ju4KacjCwgLdu3eHIAgd3RUiIiJ6RHSKECuKIkpLS6Gvrw+pVAo9Pc6i0AWiKOKPP/7AtWvXAAB2dnYd3CMiIiJ6VHSKEHv37l388ccf6NGjB5544omO7g5pwNjYGABw7do1dOvWjVMLiIiICEAnebBLLpcDAAwNDTu4J9Qajf/wqKur6+CeEBER0aOiU4TYRpxTqZv4uREREdH9OlWIfVwJgoCdO3d2dDeIiIiI2g1D7COurKwM06dPh4uLCyQSCaRSKUaNGoUDBw60yfkOHjwIQRBQUVHRJu0DwK1btxAZGQlzc3OYm5sjMjKyTc9HREREj59O8WCXrioqKkJAQAAsLCyQmJgILy8v1NXVIT09HVFRUTh9+nRHd7FJoihCLpejSxfVW2zcuHG4fPky9u3bBwB46623EBkZiV27drV3N4mIiEhHcSRWA3I5cPAgsG1bw3//+7xYm5k6dSoEQcDRo0cREREBd3d3eHp6YtasWcjJyVF7jLqR1NzcXAiCgKKiIgDAxYsXMWrUKFhaWsLExASenp5IS0tDUVERgoKC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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 7 ---\n", - "Aktuelle Cluster: [[1], [4], [7], [8], [0, 5], [6, 9], [2, 3]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 0. 5. 0.0362049 2. ]\n", - " [ 4. 7. 0.05376004 2. ]\n", - " [ 6. 9. 0.08275424 2. ]\n", - " [ 3. 11. 0.10797673 3. ]\n", - " [ 1. 2. 0.12344616 2. ]\n", - " [10. 12. 0.13930155 4. ]\n", - " [13. 15. 0.23028243 7. ]\n", - " [14. 16. 0.37874766 9. ]\n", - " [ 8. 17. 0.47988728 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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l1/C3d1dKejeKy4uDlVVVYrt0qVLbbkUIiIiItJB3TSpbG1tDX19fZVR16tXr6qMzjZJSEiAv78/3nnnHQCAl5cXTExMEBAQgKVLl8LOzk7lGD09PTz11FMtjsRKJBJIJBJNuk9EREREjwiNRmINDQ0xePBgZGRkKJVnZGTAz89P7TG///479PSUT6Ovrw+gcQRXHVEUkZeXpzbgEhERERFpNBILALNnz0ZERAR8fHzg6+uLjz/+GCUlJYrpAXFxcSgtLcW2bdsAAGPGjMGUKVOQnJyMkJAQlJWVISYmBkOGDEGvXr0AAEuWLMGwYcPg5uaG6upqrF27Fnl5eVi/fr0WL5WIiIiIHhUah9jx48fj+vXriI+PR1lZGQYMGIC0tDQ4OjoCAMrKypTWjJ00aRJ+++03fPjhh4iNjYWFhQWeffZZLF++XFGnsrISb775JsrLy2Fubo5BgwYhKysLQ4YM0cIlEhEREdGjRhCb+0xfx1RXV8Pc3BxVVVUwMzPr7O4QERER0T20mdfatDoBEREREVFnYoglIiIiIp3DEEtEREREOochloiIiIh0DkMsEREREekchlgiIiIi0jkMsURERESkcxhiiYiIiEjnMMQSERERkc5hiCUiIiIincMQS0REREQ6hyGWiIiIiHQOQywRERER6RyGWCIiIiLSOQyxRERERKRzGGKJiIiISOcwxBIRERGRzmGIJSIiIiKdwxBLRERERDqHIZaIiIiIdA5DLBERERHpHIZYIiIiItI5DLFEREREpHMYYomIiIhI5zDEEhEREZHOYYglIiIiIp3DEEtEREREOochloiIiIh0DkMsEREREekchlgiIiIi0jkMsURERESkcxhiiYiIiEjnMMQSERERkc7p1tkdICIiIqJGoihHZWU26urKYGhoBwuLAAiCfmd366HEEEtERET0EKiokKGwMBq1tZcVZRKJA1xd18DGJrQTe/Zw4nQCIiIiok5WUSHDqVPhSgEWAGprS3HqVDgqKmSd1LOHF0MsERERUScSRTkKC6MBiOr2AgAKC2MgivIO7dfDjiGWiIiIqBNVVmarjMAqE1FbewmVldkd1iddwBBLRERE1Inq6sq0Wq+rYIglIiIi6kSGhnZarddVMMQSERERdSILiwBIJA4AhGZqCJBIpLCwCOjIbj30GGKJiIiIOpEg6MPVdU3TT/fu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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 8 ---\n", - "Aktuelle Cluster: [[1], [4], [7], [8], [0, 5], [6, 9], [2, 3]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 0. 5. 0.0362049 2. ]\n", - " [ 4. 7. 0.05376004 2. ]\n", - " [ 6. 9. 0.08275424 2. ]\n", - " [ 3. 11. 0.10797673 3. ]\n", - " [ 1. 2. 0.12344616 2. ]\n", - " [10. 12. 0.13930155 4. ]\n", - " [13. 15. 0.23028243 7. ]\n", - " [14. 16. 0.37874766 9. ]\n", - " [ 8. 17. 0.47988728 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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bUVjY2Oxe/fu4sSJE8WioiKVvsTFxYndunUTDQwM1J4437VrlxgSEiJaWFiIEolEdHZ2FiMiIsRvv/1WWef1118XzczMNF5nXl6eOHToULFz586itbW1+Oqrr4rFxcVq72nD6gRlZWUqx2u6/t27d4u+vr6iiYmJ6OjoKL777rvivn371Pp+/71yry1btogAxC+//FJt39atW8WQkBDR3t5eNDY2Vt6vv/zyi0q9srIyccaMGaKrq6toZGQk2tjYiH5+fuK8efPE27dvazxvS+zYsUMcN26c6OHhoXKvREZGalz1Y9u2beLTTz8tmpiYiObm5mK/fv1U/gwNHjxY9Pb2Vjvu/versT+X9+679/2urq4WJ02aJNrZ2YmCIKh8brm5uWJQUJD4xBNPiABU7lNN5HK5OG3aNNHd3V00MTERu3XrJr700ksqK5UQPSoEUWzGwpdEREQ6EB4ejpycHBQVFen9t6MRUfvidAIiImpV1dXVOH78OI4dO4adO3di1apVDLBE9NA4EktERK2qqKgIrq6usLCwwLhx4/DRRx81+k1wRETNxRBLRERERHqHX3ZARERERHqHIZaIiIiI9A5DLBERERHpncdmdYK6ujr89ttv6Ny5c5t/VR8RERERPZgoivj999/RrVs3GBg83FjqYxNif/vtN51+ZzURERERtY7Lly8/9LfrPTYhtnPnzgDq3xQLC4t27g0RERER3a+yshJSqVSZ2x7GYxNiG6YQWFhYMMQSERERPcJ0MfWTD3YRERERkd5hiCUiIiIivcMQS0RERER6hyGWiIiIiPQOQywRERER6R2GWCIiIiLSOwyxRERERKR3GGKJiIiISO8wxBIRERGR3mGIJSIiIiK9wxBLRERERHqHIZaIiIiI9E6LQmxSUhJcXV1hYmICPz8/ZGdnN1l//fr18PLygqmpKXr27Ilt27ap1UlNTUXv3r0hkUjQu3dv7Ny5syVdIyIiIqIOQOsQu2PHDsTExGDevHk4ceIEgoODMWLECBQXF2usn5ycjLi4OCxatAinT5/G4sWLERUVhd27dyvrHD16FGPHjkVkZCROnjyJyMhIjBkzBj/88EPLr6wVKUQRh27dwvarV3Ho1i0oRLG9u0RERETUoQiiqF0CGzhwIPr374/k5GRlmZeXF1555RUkJCSo1Q8MDERQUBA++OADZVlMTAx+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rKxU2YiIiIioY9AqxF6/fh0KhQL29vYq5fb29igtLdV4TGBgIL744guMHTsWxsbG6Nq1K6ysrLBu3TplnV69emHLli345ptvsH37dpiYmCAoKAjnz59vtC8JCQmwtLRUblKpVJtLISIiIiI91qIHuwRBUHktiqJaWYO8vDzMmDEDCxYswM8//4z9+/ejsLAQU6ZMUdYZNGgQxo8fD19fXwQHB+Orr76Cp6enStC9X1xcHCoqKpTb5cuXW3IpRERERKSHOmlT2dbWFoaGhmqjrteuXVMbnW2QkJCAoKAgvPvuuwAAHx8fmJmZITg4GEuXLoWDg4PaMQYGBnj66aebHImVSCSQSCTadJ+IiIiIHhNajcQaGxvDz88PGRkZKuUZGRkIDAzUeMwff/wBAwPV0xgaGgKoH8HVRBRF5Obmagy4RERERERajcQCwKxZsxAZGQl/f38EBATgk08+QXFxsXJ6QFxcHEpKSrBt2zYAwKhRozB58mQkJycjNDQUcrkcMTExGDBgALp16wYAWLx4MQYNGgQPDw9UVlZi7dq1yM3Nxfr163V4qURERET0uNA6xI4dOxY3btxAfHw85HI5+vTpg7S0NDg7OwMA5HK5ypqxEyZMwO+//46PPvoIsbGxsLKywnPPPYfly5cr65SXl+Ott95CaWkpLC0t0a9fP2RlZWHAgAE6uEQiIiIietwIYmO/09czlZWVsLS0REVFBSwsLNq7O0RERER0H13mtRatTkBERERE1J4YYomIiIhI7zDEEhEREZHeYYglIiIiIr3DEEtEREREeochloiIiIj0DkMsEREREekdhlgiIiIi0jsMsURERESkdxhiiYiIiEjvMMQSERERkd5hiCUiIiIivcMQS0RERER6hyGWiIiIiPQOQywRERER6R2GWCIiIiLSOwyxRERERKR3GGKJiIiISO8wxBIRERGR3mGIJSIiIiK9wxBLRERERHqHIZaIiIiI9A5DLBERERHpHYZYIiIiItI7DLFEREREpHcYYomIiIhI7zDEEhEREZHeYYglIiIiIr3DEEtEREREeochloiIiIj0DkMsEREREekdhlgiIiIi0jsMsURERESkdzq1dweIiIiIqJ4oKlBeno2aGjmMjR1gZRUMQTBs7249khhiiYiIiB4BZWUyFBREo7r6irJMInGCu/sa2NmFtWPPHk2cTkBERETUzsrKZDh9OkIlwAJAdXUJTp+OQFmZrJ169uhiiCUiIiJqR6KoQEFBNABR014AQEFBDERR0ab9etQxxBIRERG1o/LybLURWFUiqqsvo7w8u836pA8YYomIiIjaUU2NXKf1OgqGWCIiIqJ2ZGzsoNN6HQVDLBEREVE7srIKhkTiBEBopIYAiUQKK6vgtuzWI48hloiIiKgdCYIh3N3XNLy6fy8AwN19NdeLvQ9DLBEREVE7s7MLg7d3CiQSR5VyicQJ3t4pXCdWA37ZAREREdEjwM4uDLa2o/mNXc3EEEtERET0iBAEQ1hbD2nvbugFTicgIiIiIr3DEEtEREREeochloiIiIj0TotCbFJSElxdXWFiYgI/Pz9kZzf9NWhffPEFfH198cQTT8DBwQFvvPEGbty4oVInNTUVvXv3hkQiQe/evbFz586WdI2IiIiIOgCtQ+yOHTsQExODefPm4cSJEwgODsaIESNQXFyssf7hw4fx2muvYeLEiTh9+jS+/vpr/Pjjj5g0aZKyztGjRzF27FhERkbi5MmTiIyMxJgxY/DDDz+0/MqIiIiI6LEliKIoanPAwIED0b9/fyQnJyvLvLy88MorryAhIUGt/ooVK5CcnIwLFy4oy9atW4fExERcvnwZADB27FhUVlZi3759yjrDhw+HtbU1tm/f3qx+VVZWwtLSEhUVFbCwsNDmkoiIiIioDegyr2k1EltTU4Off/4Zw4YNUykfNmwYjhw5ovGYwMBAXLlyBWlpaRBFEVevXkVKSgpeeuklZZ2jR4+qtRkaGtpom0RERETUsWkVYq9fvw6FQgF7e3uVcnt7e5SWlmo8JjAwEF988QXGjh0LY2NjdO3aFVZWVli3bp2yTmlpqVZtAkB1dTUqKytVNiIiIiLqGFr0YJcgqH6vryiKamUN8vLyMGPGDCxYsAA///wz9u/fj8LCQkyZMqXFbQJAQkICLC0tlZtUKm3JpRARERGRHtIqxNra2sLQ0FBthPTatWtqI6kNEhISEBQUhHfffRc+Pj4IDQ1FUlISNm/eDLlcDgDo2rWrVm0CQFxcHCoqKpRbw/xaIiIiInr8aRVijY2N4efnh4yMDJXyjIwMBAYGajzmjz/+gIGB6mkMDeu/A7jhmbKAgAC1Ng8cONBomwAgkUhgYWGhshERERFRx9BJ2wNmzZqFyMhI+Pv7IyAgAJ988gmKi4uV0wPi4uJQUlKCbdu2AQBGjRqFyZMnIzk5GaGhoZDL5YiJicGAAQPQrVs3AEB0dDSeffZZLF++HKNHj8a///1vfPvttzh8+LAOL5WIiIiIHhdah9ixY8fixo0biI+Ph1wuR58+fZCWlgZnZ2cAgFwuV1kzdsKECfj999/x0UcfITY2FlZWVnjuueewfPlyZZ3AwEB8+eWXmD9/Pt5//3306NEDO3bswMCBA3VwiURERET0uNF6ndhHFdeJJSIiInq0tds6sUREREREjwKGWCIiIiLSO1rPiSUiImoJRZ0C2cXZkP8uh0NnBwR3D4ahgWF7d4uI9BRDLBERtTpZvgzR+6NxpfKKsszJwglrhq9BmFdYO/aMiPQVpxMQEVGrkuXLEPFVhEqABYCSyhJEfBUBWb6snXpGRPqMIZaIiFqNok6B6P3REKG+EE5DWcz+GCjqFG3dNSLScwyxRETUarKLs9VGYO8lQsTlysvILs5uw14R0eOAIZaIiFqN/He5TusRETVgiCUiolbj0NlBp/WIiBowxBIRUasJ7h4MJwsnCBA07hcgQGohRXD34DbuGRHpO4ZYIiJqNYYGhlgzfA0AqAXZhterh6/merFEpDWGWCIialVhXmFIGZMCRwtHlXInCyekjEnhOrFE1CKCKIrq657oocrKSlhaWqKiogIWFhbt3R0iIroPv7GLiHSZ1/iNXURE1CYMDQwxxGVIe3eDiB4TnE5ARERERHqHIZaIiIiI9A5DLBERERHpHYZYIiIiItI7DLFEREREpHcYYomIiIhI7zDEEhEREZHeYYglIiIiIr3DEEtEREREeochloiIiIj0DkMsEREREekdhlgiIiIi0jsMsURERESkdxhiiYiIiEjvMMQSERERkd5hiCUiIiIivcMQS0RERER6hyGWiIiIiPQOQywRERER6R2GWCIiIiLSOwyxRERERKR3GGKJiIiISO8wxBIRERGR3mGIJSIiIiK906m9O0BERET6SxQVKC/PRk2NHMbGDrCyCoYgGLZ3t6gDYIglIiKiFikrk6GgIBrV1VeUZRKJE9zd18DOLqwde0YdAacTEBERkdbKymQ4fTpCJcACQHV1CU6fjkBZmaydekYdBUMsERERaUUUFSgoiAYgatoLACgoiIEoKtq0X9SxMMQSERGRVsrLs9VGYFWJqK6+jPLy7DbrE3U8DLFERESklZoauU7rEbUEQywRERFpxdjYQaf1iFqCIZaIiIi0YmUVDInECYDQSA0BEokUVlbBbdkt6mAYYomIiEgrgmAId/c1Da/u3wsAcHdfzfViqVUxxBIREZHW7OzC4O2dAonEUaVcInGCt3cK14mlVscvOyAiIqIWsbMLg63taH5jF7WLFo3EJiUlwdXVFSYmJvDz80N2duNLaEyYMAGCIKht3t7eyjpbtmzRWKeqqqol3SMiIqI2IgiGsLYeAnv7v8LaeggDLLUZrUPsjh07EBMTg3nz5uHEiRMIDg7GiBEjUFxcrLH+mjVrIJfLldvly5dhY2ODV199VaWehYWFSj25XA4TE5OWXRURERERPda0nk6watUqTJw4EZMmTQIArF69Gunp6UhOTkZCQoJafUtLS1haWipf79q1C7du3cIbb7yhUk8QBHTt2lXb7hAREbUehQLIzgbkcsDBAQgOBgw50kj0KNBqJLampgY///wzhg0bplI+bNgwHDlypFltbNq0CS+88AKcnZ1Vym/fvg1nZ2c4OTlh5MiROHHiRJPtVFdXo7KyUmUjIiLSGZkMcHEBQkKAcePq/+viUl9ORO1OqxB7/fp1KBQK2Nvbq5Tb29ujtLT0gcfL5XLs27dPOYrboFevXtiyZQu++eYbbN++HSYmJggKCsL58+cbbSshIUE5ymtpaQmpVKrNpRARETVOJgMiIoAr9321aklJfTmDLFG7a9GDXYKguiacKIpqZZps2bIFVlZWeOWVV1TKBw0ahPHjx8PX1xfBwcH46quv4OnpiXXr1jXaVlxcHCoqKpTb5cuXW3IpREREqhQKIDoaEEX1fQ1lMTH19Yio3Wg1J9bW1haGhoZqo67Xrl1TG529nyiK2Lx5MyIjI2FsbNxkXQMDAzz99NNNjsRKJBJIJJLmd56IiKg5srPVR2DvJYrA5cv19YYMabNuEZEqrUZijY2N4efnh4yMDJXyjIwMBAYGNnns999/j4KCAkycOPGB5xFFEbm5uXBw4HcuExFRG5PLdVuPiFqF1qsTzJo1C5GRkfD390dAQAA++eQTFBcXY8qUKQDqf81fUlKCbdu2qRy3adMmDBw4EH369FFrc/HixRg0aBA8PDxQWVmJtWvXIjc3F+vXr2/hZREREbVQcwdQONBC1K60DrFjx47FjRs3EB8fD7lcjj59+iAtLU252oBcLldbM7aiogKpqalYs2aNpiZRXl6Ot956C6WlpbC0tES/fv2QlZWFAQMGtOCSiIiIHkJwMODkVP8Ql6Z5sYJQvz84uO37RkRKgihq+hOqfyorK2FpaYmKigpYWFi0d3eIiEifNaxOAKgG2YaHmFNSgLCwtu8XkZ7TZV5r0eoEREREj7WwsPqg6uioWu7kxABL9IjQejoBERFRhxAWBowezW/sInpEMcQSERE1xtCQy2gRPaI4nYCIiIiI9A5DLBERERHpHYZYIiIiItI7DLFEREREpHcYYomIiIhI7zDEEhEREZHeYYglIiIiIr3DEEtEREREeochloiIiIj0DkMsEREREekdhlgiIiIi0jsMsURERESkdxhiiYiIiEjvMMQSERERkd5hiCUiIiIivcMQS0RERER6hyGWiIiIiPQOQywRERER6R2GWCIiIiLSOwyxRERERKR3GGKJiIiISO8wxBIRERGR3mGIJSIiIiK9wxBLRERERHqHIZaIiIiI9A5DLBERERHpHYZYIiIiItI7DLFEREREpHcYYomIiIhI7zDEEhEREZHeYYglIiIiIr3DEEtEREREeochloiIiIj0Tqf27kBbqqurQ01NTXt3g7RgZGQEQ0PD9u4GERERPWI6TIitqalBYWEh6urq2rsrpCUrKyt07doVgiC0d1eIiIjoEdEhQqwoipDL5TA0NIRUKoWBAWdR6ANRFPHHH3/g2rVrAAAHB4d27hERERE9KjpEiL179y7++OMPdOvWDU888UR7d4e0YGpqCgC4du0aunTpwqkFREREBKCDPNilUCgAAMbGxu3cE2qJhn941NbWtnNPiIiI6FHRIUJsA86p1E/83IiIiOh+HSrEPq4EQcCuXbvauxtEREREbYYh9hFXWlqK6dOnw83NDRKJBFKpFKNGjcLBgwdb5XyHDh2CIAgoLy9vlfYB4NatW4iMjISlpSUsLS0RGRnZqucjIiKix0+HeLBLXxUVFSEoKAhWVlZITEyEj48PamtrkZ6ejqioKJw5c6a9u9goURShUCjQqZP6LTZu3DhcuXIF+/fvBwC89dZbiIyMxO7du9u6m0RERKSnOBKrBYUCOHQI2L69/r//fV6s1UydOhWCIODYsWOIiIiAp6cnvL29MWvWLOTk5Gg8RtNIam5uLgRBQFFREQDg0qVLGDVq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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 9 ---\n", - "Aktuelle Cluster: [[1], [4], [7], [8], [0, 5], [6, 9], [2, 3]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 0. 5. 0.0362049 2. ]\n", - " [ 4. 7. 0.05376004 2. ]\n", - " [ 6. 9. 0.08275424 2. ]\n", - " [ 3. 11. 0.10797673 3. ]\n", - " [ 1. 2. 0.12344616 2. ]\n", - " [10. 12. 0.13930155 4. ]\n", - " [13. 15. 0.23028243 7. ]\n", - " [14. 16. 0.37874766 9. ]\n", - " [ 8. 17. 0.47988728 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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yQilAAsAdXVlOHkyApWVsi7q2YOLIZaIiIioC4miHEVFMQBEdXsBAEVFsRBFeaf260HHEEtERETUhaqqclVGYJWJqKu7iKqq3E7rky5giCUiIiLqQvX15Vqt110wxBIRERF1IUNDO63W6y4YYomIiIi6kIVFACQSBwBCCzUESCRSWFgEdGa3HngMsURERERdSBD04eq6uvmnu/cCAFxdV3G92LswxBIRERF1MRubMHh6pkEisVcql0gc4OmZxnVi1eCXHRARERE9AGxswmBtPY7f2NVGDLFEREREDwhB0Iel5aiu7oZO4HQCIiIiItI5DLFEREREpHMYYomIiIhI57QrxKakpMDZ2RlGRkYYOnQocnNb/xq0zz//HN7e3njkkUdgZ2eH1157DdeuXVOqk56ejoEDB0IikWDgwIHYvn17e7pGRERERN2AxiF227ZtiI2Nxfz583Hs2DEEBARgzJgxKC0tVVv/4MGDeOWVVzB58mScPHkSX331FX744QdERUUp6hw+fBjjx49HZGQkjh8/jsjISLz88sv4/vvv239lRERERPTQEkRRFDU5YPjw4Xj88ceRmpqqKPPw8MCLL76IxMRElforVqxAamoqzp07pyhbu3YtkpKScPHiRQDA+PHjUVNTgz179ijqjB49GpaWlti6dWub+lVTUwNzc3NUV1fDzMxMk0siIiIiok6gzbym0UhsfX09fvrpJwQHByuVBwcH49ChQ2qP8fPzw6VLl5CRkQFRFHH58mWkpaXh+eefV9Q5fPiwSpshISEttklERERE3ZtGIfbq1auQy+WwtbVVKre1tUVFRYXaY/z8/PD5559j/PjxMDQ0RO/evWFhYYG1a9cq6lRUVGjUJgDU1dWhpqZGaSMiIiKi7qFdD3YJgvL3+oqiqFLWrKCgADNnzsTChQvx008/Ye/evSguLsbUqVPb3SYAJCYmwtzcXLFJpdL2XAoRERER6SCNQqy1tTX09fVVRkivXLmiMpLaLDExEf7+/nj77bfh5eWFkJAQpKSkYOPGjSgvLwcA9O7dW6M2ASA+Ph7V1dWKrXl+LRERERE9/DQKsYaGhhg6dCiysrKUyrOysuDn56f2mN9//x16esqn0ddv+g7g5mfKfH19Vdrct29fi20CgEQigZmZmdJGRERERN1DD00PmD17NiIjI+Hj4wNfX1989NFHKC0t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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 10 ---\n", - "Finale Cluster: [[1], [4], [7], [8], [0, 5], [6, 9], [2, 3]]\n" - ] - }, - { - "data": { - "image/png": "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jh07dOrUKZegExcXp6lTp2rbtm367bffXILOypUrNWDAAL344osu2zx+/HiBayh/X5fy5PgBFA1BB7gBde3aVS+++KIqVaqkmJiYYm0j/1aol07lyszM1Ouvv17kbSQkJOj111/XDz/8cMUAcD0EBgYqLi5OFSpU0MaNG5WUlKTY2FglJCRo8uTJ+vTTT3X33Xdf0z7q1aunOnXq6Ouvvy7wZqcounfvrsaNG2vGjBnq2rWr2zuvbdy4UW3atCk0iNSsWVPffPONS9u///1v/fDDDwUCbL4KFSro/vvvV2pqqsaMGaPk5GQ1bNiw0FGzTp06yc/PTwcOHHA7Ja0o8t/kXf5G/tVXXy3W9grbpjFGf//734u8jUcffVTz58/X/fffr1OnTmn06NGF9g0JCVFCQoKys7PVo0cPfffdd4qOjlbXrl21fv161a5d2+2UzyuJjIy8YhC6mmrVqumpp57S999/7xIgL9e1a1e99dZbys3NVatWra64zcDAwKuOhl1JbGysgoODtXLlSj3wwAPO9l9++UWffvqp7r//fkkXXz9Vq1bVqlWrNHbsWOfzefDgQW3dutXlvHhSv6fat2+vNWvW6OWXX1Z4eLjL1Nq4uDilp6frr3/9q7NvPofDUeB6/uc//6nU1FTdfPPNV92vJ8cPoGgIOsANaMyYMVqzZo3atm2rxx9/XE2aNFFeXp5SUlL00Ucf6Yknnrjqm4cuXbpozpw56tevnx566CGlp6dr1qxZHv0Fevr06dqwYYPatm2rCRMmqHHjxjp16pQ+/PBDjR071uWOZ8UxefJk/fLLL+rQoYOqV6+uU6dOad68efL393f+lXbMmDFavXq1unfvrnHjxqlly5bKzMzUZ599pq5du3r8RYCvvvqqEhIS1KlTJw0aNEjVqlXTiRMntH//fn311Vd65513Cl3X19dX77//vuLj4xUbG6uHH35Y7du3V0hIiA4ePKh3331X69at08mTJwvdRv/+/fXggw9q5MiR6tWrlw4ePKiXXnpJlStXdunXrVs3NWrUSC1atFDlypV18OBBzZ07V9HR0c47YDVu3FiSNG/ePA0cOFD+/v6qV6+eatasqenTp2vixIn6z3/+o3vvvVc33XSTjhw5oh07digkJMR5+/DC1K9fX7Vr19a4ceNkjFHFihW1bt06lylgnurYsaMCAgLUt29f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4nnKyMhQjn+OlysqHThvnuOcFQ/nzXOcs+LhvHmupJ+z/ExgjLlyR+OB1NRUI8l8+eWXLu0vvPCCqVu3rtt16tSpY1544QWXti+//NJIMr/++qvbdaZMmWIksbCwsLCwsLCwsLCwuF0OHTp0xexSrCEIh8Ph8rMxpkDb1fq7a883fvx4jR071vlzXl6eTpw4oUqVKl1xPwAAAADsZozRmTNnFBkZecV+HgWdsLAw+fr66vDhwy7tR48eVUREhNt1qlSp4ra/n5+fKlWq5HadwMBABQYGurRVqFDBk1IBAAAAWCo0NPSqfTy6GUFAQICaN2+uxMREl/bExES1bt3a7TqxsbEF+n/00Udq0aKF28/nAAAAAMC18viua2PHjtXixYu1dOlS7d+/X48//rhSUlI0YsQISRennQ0YMMDZf8SIETp48KDGjh2r/fv3a+nSpVqyZImefPLJ63cUAAAAAHAJjz+j06dPH6Wnp2v69OlKS0tTo0aNtH79ekVHR0uS0tLSXL5TJyYmRuvXr9fjjz+uV155RZGRkfrLX/6iXr16Xb+jAAAAAIBLOIy52n3ZAAAAAKB08XjqGgAAAACUdAQdAAAAANYh6AAAAACwDkGnGJKSktSjRw9FRkaqTJkyql+/vqZPn67z5897u7QS7cyZM3r66acVHx+vypUry+FwaOrUqd4uq0T79NNPNWTIENWvX18hISGqVq2aunfvrt27d3u7tBJrz5496tKli2rUqKHg4GBVrFhRsbGxWrlypbdLK1UWL14sh8OhsmXLeruUEmvQoEFyOByFLtu3b/d2iSXS2bNnNWbMGEVGRiooKEhNmzbVW2+95e2ySrTNmzdznRXTF198oc6dO+umm25ScHCw6tSpo+eee87bZZVoO3bsUKdOnVSuXDmVLVtW7du315dffuntsorF47uu3ej27dun1q1bq169epo7d67CwsL0+eefa/r06dq9e7f+8Y9/eLvEEis9PV2LFi3Srbfeqh49emjx4sXeLqnEW7BggdLT0/XYY4+pYcOGOnbsmGbPnq077rhDGzdu1N133+3tEkucU6dOKSoqSn379lW1atV07tw5vfHGG+rfv7+Sk5M1adIkb5dY4qWmpurJJ59UZGSkTp8+7e1ySqxnn33W+dUKl+rWrZsCAwN1++23e6Gqku9//ud/tHPnTs2cOVN169bVm2++qb59+yovL0/9+vXzdnkl2osvvqj27du7tDVq1MhL1ZR8b775pvr376/evXtrxYoVKlu2rA4cOKBff/3V26WVWDt37lTbtm3VsmVLvf766zLG6KWXXlKHDh20adMmxcbGertEzxh4ZOLEiUaS+emnn1zaH3roISPJnDhxwkuVlXx5eXkmLy/PGGPMsWPHjCQzZcoU7xZVwh05cqRA25kzZ0xERITp0KGDFyoqvVq1amWioqK8XUap0LVrV9OtWzczcOBAExIS4u1ySpXNmzcbSWbSpEneLqVE+uc//2kkmTfffNOlvWPHjiYyMtLk5OR4qbKSbdOmTUaSeeedd7xdSqnxyy+/mJCQEPPwww97u5RSpVOnTiYiIsKcO3fO2ZaRkWHCwsJM69atvVhZ8TB1zUP+/v6SpNDQUJf2ChUqyMfHRwEBAd4oq1TIH2ZH0YWHhxdoK1u2rBo2bKhDhw55oaLSKywsTH5+DGJfzcqVK/XZZ59p/vz53i6lVFqyZIkcDoeGDBni7VJKpPfff19ly5bVAw884NI+ePBg/frrr/rXv/7lpcpgm8WLF+vcuXN65plnvF1KqfLll1+qXbt2KlOmjLOtXLlyatu2rbZu3aq0tDQvVuc5go6HBg4cqAoVKujhhx/Wf/7zH505c0YffPCBXn31VY0aNUohISHeLhGWO336tL766ivdcsst3i6lRMvLy1NOTo6OHTum+fPna+PGjfwP7yqOHj2qMWPGaObMmapevbq3yyl1Tp8+rXfffVcdOnRQTEyMt8spkb799ls1aNCgwB8dmjRp4nwchRs1apT8/PxUvnx5derUSV988YW3SyqxPv/8c1WsWFHff/+9mjZtKj8/P4WHh2vEiBHKyMjwdnklVnZ2tgIDAwu057ft3bv3jy7pmhB0PFSzZk1t27ZN3377rWrXrq3y5curW7duGjhwoObNm+ft8nADGDVqlM6dO6eJEyd6u5QSbeTIkfL391d4eLgef/xx/eUvf9Hw4cO9XVaJNnLkSNWrV08PP/ywt0splVatWqXMzEwNHTrU26WUWOnp6apYsWKB9vy29PT0P7qkUiE0NFSPPfaYXn31VW3atEnz5s3ToUOH1K5dO23cuNHb5ZVIqampOn/+vB544AH16dNHH3/8sZ566imtWLFCnTt3ljHG2yWWSA0bNtT27duVl5fnbMvJyXGOtpa21yjzODyUnJysbt26KSIiQu+++64qV66sf/3rX3r++ed19uxZLVmyxNslwmLPPvus3njjDf31r39V8+bNvV1OiTZhwgQNGzZMR48e1bp16zR69GidO3dOTz75pLdLK5HWrFmjdevWKSkpiSmmxbRkyRJVqlRJPXv29HYpJdqVri+uPfeaNWumZs2aOX9u06aNevbsqcaNG+vpp59Wp06dvFhdyZSXl6fffvtNU6ZM0bhx4yRJ7dq1U0BAgMaMGaNPPvlE99xzj5erLHkeeeQRDR06VKNHj9bEiROVl5enadOm6eDBg5IkH5/SNUZSuqotAcaNG6eMjAxt3LhRvXr1Utu2bfXUU09p7ty5Wrp0qT777DNvlwhLTZs2Tc8//7xeeOEFjR492tvllHg1atRQixYt1LlzZy1YsEAPPfSQxo8fr2PHjnm7tBLn7NmzGjVqlB555BFFRkbq1KlTOnXqlLKzsyVdvJPduXPnvFxlyfbNN99o165devDBB91O+8BFlSpVcvsX4RMnTkiS29EeuFehQgV17dpV33zzjTIzM71dTolTqVIlSSoQAhMSEiRJX3311R9eU2kwZMgQzZw5U6+//rqqV6+uGjVqaN++fc4/ElarVs3LFXqGoOOhPXv2qGHDhgU+i5N/G1HmF+P3MG3aNE2dOlVTp07VhAkTvF1OqdSyZUvl5OToP//5j7dLKXGOHz+uI0eOaPbs2brpppucy6pVq3Tu3DnddNNN+tOf/uTtMku0/NH8YcOGebmSkq1x48bav3+/cnJyXNrz5/1zq2TP5E+/YiSsoPzPfV0u/5yVtpGJP9Izzzyj48ePa+/evUpOTtbWrVt18uRJhYSElLrZJDzLHoqMjNR3332ns2fPurRv27ZNkvgAL6675557TlOnTtWkSZM0ZcoUb5dTam3atEk+Pj6qVauWt0spcapUqaJNmzYVWDp16qSgoCBt2rRJzz//vLfLLLGysrK0cuVKtWzZkjfqV9GzZ0+dPXtWa9ascWlfvny5IiMj1apVKy9VVvqcPHlSH3zwgZo2baqgoCBvl1Pi9OrVS5K0YcMGl/b169dLku64444/vKbSJDAwUI0aNVJ0dLRSUlK0evVq/fnPf1ZwcLC3S/MIn9Hx0JgxY9SjRw917NhRjz/+uMLCwrR9+3bNmDFDDRs2dA6Jwr0NGzbo3LlzOnPmjKSLX8D67rvvSpI6d+7scjtDSLNnz9bkyZN17733qkuXLgW+AZtf1AU99NBDKl++vFq2bKmIiAgdP35c77zzjlavXq2nnnpKlStX9naJJU5QUJDatWtXoH3ZsmXy9fV1+xj+z9q1a3XixAlGc4ogISFBHTt21MMPP6yMjAzdfPPNWrVqlT788EOtXLlSvr6+3i6xROrXr59zOm5YWJh+/PFHzZ49W0eOHNGyZcu8XV6JFB8fr27dumn69OnKy8vTHXfcoV27dmnatGnq2rWr7rrrLm+XWCJ9++23WrNmjVq0aKHAwEB9/fXXmjlzpurUqaPnnnvO2+V5zsvf41MqffrppyY+Pt5UqVLFBAcHm7p165onnnjCHD9+3NullXjR0dFGktvl559/9nZ5JU5cXFyh54uXr3tLly41bdq0MWFhYcbPz89UqFDBxMXFmddff93bpZU6fGFo0XTs2NGEhISYjIwMb5dSKpw5c8Y8+uijpkqVKiYgIMA0adLErFq1yttllWgzZswwTZs2NaGhocbX19dUrlzZ9OzZ0+zYscPbpZVo58+fN88884yJiooyfn5+pkaNGmb8+PHmt99+83ZpJdYPP/xg2rZtaypWrGgCAgLMzTffbCZNmmTOnj3r7dKKxWEM99cDAAAAYBc+owMAAADAOgQdAAAAANYh6AAAAACwDkEHAAAAgHUIOgAAAACsQ9ABAAAAYB2CDgAAAADrEHQAAAAAWIegAwAAAMA6BB0AAAAA1iHoAAAAALAOQQcAAACAdf4/uTDWU0oRxAEAAAAASUVORK5CYII=\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "#Clusteranalyse\n", - "\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import random\n", - "from scipy.cluster.hierarchy import linkage, dendrogram\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "import pandas as pd\n", - "\n", - "#functions\n", - "def generate_random_number_array(n, rangeStart, rangeEnd):\n", - " array = [random.randint(rangeStart, rangeEnd) for _ in range(n)]\n", - " return array\n", - "\n", - "def generate_x_y_array(n, rangeStart, rangeEnd):\n", - " XYDict = {\n", - " \"x\": generate_random_number_array(n, rangeStart, rangeEnd),\n", - " \"y\": generate_random_number_array(n, rangeStart, rangeEnd)\n", - " }\n", - " return XYDict\n", - "\n", - "def generate_clusters(n_clusters, m_points_per_cluster):\n", - " # Generate random cluster centers\n", - " cluster_centers = np.random.rand(n_clusters, 2)\n", - " noise_scale = 0.05\n", - "\n", - " # Generate points for each cluster\n", - " points = []\n", - " for center in cluster_centers:\n", - " cluster_points = np.random.randn(m_points_per_cluster, 2) + center\n", - " points.extend(cluster_points)\n", - "\n", - " # Add noise to the points\n", - " noisy_points = points + (noise_scale * np.random.randn(len(points), 2))\n", - "\n", - " return np.array(noisy_points)\n", - "\n", - "\n", - "\n", - "# Anzahl der Datenpunktansammlungen (Cluster)\n", - "num_clusters = 2\n", - "# Anzahl der Datenpunkte pro Cluster\n", - "points_per_cluster = 5\n", - "\n", - "# Größe des \"Noise\"-Bereichs\n", - "noise_scale = 0.1\n", - "\n", - "# Beispiel Daten - Clusterpunkte und \"Noise\" Punkte\n", - "np.random.seed(0)\n", - "clusters = []\n", - "for _ in range(num_clusters):\n", - " cluster_center = np.random.rand(2) * (1 - noise_scale)\n", - " cluster = cluster_center + np.random.randn(points_per_cluster, 2) * noise_scale\n", - " clusters.append(cluster)\n", - "print(clusters) \n", - "\n", - "# Zusammenführen der Clusterpunkte\n", - "X = np.concatenate(clusters, axis=0)\n", - "print(X)\n", - "\n", - "# Initialisierung: Jeder Datenpunkt ist ein Cluster\n", - "clusters = [[i] for i in range(X.shape[0])]\n", - "#print(clusters)\n", - "\n", - "# Schleife für jeden Schritt der hierarchischen Clusteranalyse\n", - "for step in range(X.shape[0] - 1):\n", - " print(f\"\\n--- Schritt {step + 1} ---\")\n", - " print(\"Aktuelle Cluster:\", clusters)\n", - "\n", - " # Berechnung der Abstandsmatrix mit Ward-Methode\n", - " linkage_matrix = linkage(X, 'ward')\n", - "\n", - " # Ausgabe der Abstandsmatrix\n", - " print(\"Abstandsmatrix nach Linkage:\")\n", - " print(linkage_matrix)\n", - "\n", - " # Tabelle mit den Abständen zwischen den Clustern erstellen\n", - " distances = []\n", - " for i in range(len(linkage_matrix)):\n", - " cluster1, cluster2, distance, _ = linkage_matrix[i]\n", - " cluster1, cluster2 = int(cluster1), int(cluster2) # Konvertiere zu ganzzahligen Indizes\n", - " if cluster1 < len(clusters) and cluster2 < len(clusters):\n", - " distances.append([cluster1, cluster2, distance, len(clusters[cluster1]), len(clusters[cluster2])])\n", - "\n", - " # Streudiagramm zeichnen\n", - " colors = ['b', 'g', 'r', 'c', 'm', 'y', 'k']\n", - " plt.figure(figsize=(8, 6))\n", - " for idx, cluster in enumerate(clusters):\n", - " for point_idx in cluster:\n", - " plt.scatter(X[point_idx, 0], X[point_idx, 1], color=colors[idx % len(colors)], label=f'Cluster {idx}')\n", - " plt.title('Hierarchische Clusteranalyse - Schritt {}'.format(step + 1))\n", - " plt.legend()\n", - " plt.show()\n", - "\n", - " # Wenn nur noch ein Cluster übrig ist, breche die Schleife ab\n", - " if len(clusters) == 1:\n", - " break\n", - "\n", - " # Identifiziere die beiden nächsten Cluster\n", - " cluster1, cluster2 = int(linkage_matrix[step][0]), int(linkage_matrix[step][1])\n", - "\n", - " # Überprüfe, ob die Cluster existieren, bevor sie zusammengeführt werden\n", - " if cluster1 < len(clusters) and cluster2 < len(clusters):\n", - " new_cluster = clusters[cluster1] + clusters[cluster2]\n", - " del clusters[max(cluster1, cluster2)]\n", - " del clusters[min(cluster1, cluster2)]\n", - " clusters.append(new_cluster)\n", - "\n", - "# Ausgabe des finalen Clusters\n", - "print(f\"\\n--- Schritt {X.shape[0]} ---\")\n", - "print(\"Finale Cluster:\", clusters)\n", - "\n", - "# Dendrogramm erstellen und anzeigen\n", - "plt.figure(figsize=(10, 7))\n", - "plt.title('Hierarchische Clusteranalyse - Methode: Ward')\n", - "dendrogram(linkage_matrix)\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 45, - "id": "edd42b72", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[19 11]\n", - " [13 10]\n", - " [22 9]\n", - " [21 10]\n", - " [18 16]\n", - " [20 17]]\n", - "[[0], [1], [2], [3], [4], [5]]\n", - "\n", - "--- Schritt 1 ---\n", - "Aktuelle Cluster: [[0], [1], [2], [3], [4], [5]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 2. 3. 1.41421356 2. ]\n", - " [ 4. 5. 2.23606798 2. ]\n", - " [ 0. 6. 3.36650165 3. ]\n", - " [ 1. 8. 9.38971068 4. ]\n", - " [ 7. 9. 10.62230358 6. ]]\n" - ] - }, - { - "data": { - "image/png": "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H390tvv2229NDw8P849//ONF++vTp48pyfzss89c5nfs2NGMjo52fi77c3n77beX66Ns2ZYtW5zz4uPjzcr+avb19a3wN3s57rrrrnL/vQOuFsbY8av37rvv6vPPPy839erV65Lrrl27Vp07d9aNN96oX375xTlFR0eXO1UqSb/97W/VoEGDcv1s3rxZ/fr1U0BAgDw8POTp6akZM2bohx9+0KlTp1zadu3aVe3atXOZ9/HHHysqKkrh4eGXrHnw4MHl+pNUblTmfDfffLMk6d5779W//vUvHT9+vFybjz/+WO3atXMZzarMXXfd5TKKemEN6enpOnDggP74xz9Kkst3e+edd+rkyZPlTv3XlO7du2vPnj0aM2aMkpOTlZeXd9nrJicn65dfftEDDzzgso/e3t7q06dPud+PVDoqeaFTp07psccek91uV926deXp6alWrVpJktLS0sq1r+g3cO7cOZff2pdffqnBgwerYcOGzt/kAw88IIfDoUOHDlW6T3Xq1NHYsWO1du1aZWVlSSodJV2/fr3GjBnjHOnv3r27cnJy9Ic//EEffvhhuVP+Uumfr6ioKIWEhLh8PzExMZKkbdu2VVpHSUmJyzoOh6PStpLUsGFDpaSk6PPPP9eLL76oIUOG6NChQ5o2bZq6dOnirG/jxo1yOByKj4+/aH+S1KxZM3Xv3t1lXteuXSv8s1bRcQWuF4RN/OqFh4crMjKy3FR2OvdivvvuO3311Vfy9PR0mfz8/GSaZrm/QMtOoZ5v165dGjBggCTpjTfe0P/+7//q888/15///GdJpTcAXaqP06dPq0WLFpe1vw0bNnT5bLPZKtzO+W6//XatXr3aGYxatGihzp07a/ny5ZbUUHad6RNPPFHuux0zZowkVRhOypRdjpCRkXFZ9VyJadOmaf78+dq5c6diYmLUsGFD3XHHHZU+Uut8Zft58803l9vP999/v9w+1qtXr9yp0ZKSEg0YMEBJSUl66qmntGnTJu3atct5DWxFx/VS339WVpZ69+6t48ePa9GiRc4QVna94MV+K5L00EMPycfHR6+99pqk0ssmfHx8XK7xHTFihP7+97/ryJEjiouLU5MmTXTLLbdo48aNLt/PmjVryn03nTp1knTx38Ds2bNd1rncm94iIyP19NNP64MPPtCJEyc0adIkZWZmOm8SOn36tCRd1m/9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Pvnkk+bHH39crvYLfyvne+edd0xJ5j//+c9yy5YtW2ZGRUWZTZs2Nb28vJy/16+++sql3enTp83x48eboaGhpqenpxkUFGT+5je/Mf/85z+b+fn5FW63Ot5//31z+PDhZtu2bV1+KyNGjKjwKQ/vvvuuefPNN5ve3t5m/fr1zW7durn8GerTp4/ZqVOncutd+H1V9ufy/GXnf9+FhYXm6NGjzcaNG5uGYbgct9TUVPO2224z69WrZ0py+Z1WpOz3UNF04Z9FwEqGaV7GwwYBALhAXFycdu7cqczMzGv+bU0ArMNpdADAZSssLNTu3bu1a9curVq1SgsWLCBoArgoRjYBAJctMzNToaGh8vf31/Dhw/Xqq69W+mYqAJAImwAAALAQD3UHAACAZQibAAAAsAxhEwAAAJapdXejl5SU6MSJE/Lz8+P1XgAAALWQaZr68ccfFRISojp1Lj52WevC5okTJ9z6PloAAABY4+jRo5d801etC5t+fn6SSov39/ev4WoAAABwoby8PNntdmduu5haFzbLTp37+/sTNgEAAGqxy7nkkRuEAAAAYBnCJgAAACxD2AQAAIBlat01mwAA4NfH4XCouLi4pstAFXh6esrDw+OK+yFsAgAAy5imqezsbOXk5NR0KaiGwMBANWvW7IqefU7YBAAAlikLmk2aNFG9evV4Ycs1wjRN/fTTTzp16pQkKTg4uNp9ETYBAIAlHA6HM2g2bNiwpstBFfn4+EiSTp06pSZNmlT7lDo3CAEAAEuUXaNZr169Gq4E1VV27K7kelvCJgAAsBSnzq9d7jh2hE0AAABYhrAJAABQDYZhaPXq1TVdRq1H2AQAALhAdna2xo0bp7CwMNlsNtntdsXGxmrTpk2WbG/r1q0yDMPSR0SdPXtWI0aMUEBAgAICAjRixIir8kgq7kYHAAC1msMhpaRIJ09KwcFS796SG541XqnMzEzddtttCgwMVGJiorp27ari4mIlJycrPj5eBw4csG7jV8g0TTkcDtWtWz7iDR8+XMeOHdP69eslSX/60580YsQIrVmzxtKaGNkEAOBXxDQdOnt2q777brnOnt0q03TUdElXJClJat1aioqShg8v/Wfr1qXzrTJmzBgZhqFdu3Zp2LBhateunTp16qTJkydr586dFa5T0chkamqqDMNQZmamJOnIkSOKjY1VgwYN5Ovr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gKvJUeJQSlaKTv54UsF+werdsrc86lj3VqTMzEzddtttCgwMVGJiorp27ari4mIlJycrPj5eBw4csGzbV8o0TTkcDtWtWz7iFRUV6Xe/+5169Oiht95666rVxMgmAACotZLSktR6UWtFLYvS8KThiloWpdaLWispLcmybY4ZM0aGYWjXrl0aNmyY2rVrp06dOmny5MnauXNnhetUNDKZmpoqwzCUmZkpSTpy5IhiY2PVoEED+fr6qlOnTvroo4+UmZnpfBV4gwYNZBiGRo0aJak0PCYmJiosLEw+Pj6KiIjQihUrym03OTlZkZGRstlsSklJqbDGWbNmadKkSerSpcuVf0lVwMgmAAColZLSkjTsX8NkyvXN2sfzjmvYv4Zpxb0rNDR8qFu3eebMGa1fv15z586Vr69vueVXcvo5Pj5eRUVF2r59u3x9fbV//37Vr19fdrtdK1euVFxcnA4ePCh/f3/5+PhIkqZPn66kpCQtXbpUbdu21fbt23X//fercePG6tOnj7Pvp556SvPnz1dYWNhVPUV+OQibAACg1nGUODRh/YRyQVOSTJkyZGji+oka0n6IW0+pp6enyzRNdejQwW19lsnKylJcXJxzZDEsLMy5LCgoSJLUpEkTZ1gsKCjQggULtHnzZvXo0cO5zieffKLXX3/dJWzOnj1b/fv3d3vN7kDYBAAAtU5KVoqO5R2rdLkpU0fzjiolK0V9W/d123ZNszTcGobhtj7LjB8/Xo8//rg2bNigfv36KS4uTl27dq20/f79+3Xu3LlyIbKoqEjdunVzmRcZGen2et2FazYBAECtc/LHk25td7natm0rwzCUlpZWpfXq1CmNVGVhVZKKi4td2owePVrffvutRowYob179yoyMlKvvPJKpX2WlJRIktatW6fU1FTntH//fpfrNiVVeMq/tiBsAgCAWifYL9it7S5XUFCQoqOjtXjxYhUUFJRbXtmjiRo3bixJOnny/8JvampquXZ2u12PPfaYkpKSNGXKFL3xxhuSJC8vL0mSw+Fwtu3YsaNsNpuysrLUpk0bl8lut1d3F686wiYAAKh1erfsrRb+LWSo4tPZhgzZ/e3q3bK327e9ZMkSORwOde/eXStXrtQ333yjtLQ0vfzyy85rJy9UFgBnzpypQ4cOad26dXrppZdc2kycOFHJycnKyMjQ7t27tXnzZoWH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+fn5yTCMmi7nVy0vL092u11Hjx6Vv79/TZeDq4Tjfv3hmF9/OObXn6t9zE3T1I8//qiQkBDVqXPxqzJr3chmnTp11KJFi5ou47ri7+/Pf4yuQxz36w/H/PrDMb/+XM1jfqkRzTLcIAQAAADLEDYBAABgGcLmdcxms+m5556TzWar6VJwFXHcrz8c8+sPx/z6U5uPea27QQgAAAC/HoxsAgAAwDKETQAAAFiGsAkAAADLEDYBAABgGcLmdWD79u2KjY1VSEiIDMPQ6tWrK2376KOPyjAMLVy48KrVB/e7nGOelpamwYMHKyAgQH5+frr11luVlZV19YuFW1zqmOfn52vs2LFq0aKFfHx8FB4erqVLl9ZMsXCLhIQE3XzzzfLz81OTJk1099136+DBgy5tTNPUzJkzFRISIh8fH/Xt21f79u2roYpxpS51zIuLi/X000+rS5cu8vX1VUhIiB544AGdOHGiBqsmbF4XCgoKFBERoVdfffWi7VavXq3PPvtMISEhV6kyWOVSx/zw4cPq1auXOnTooK1bt2rPnj169tln5e3tfZUrhbtc6phPmjRJ69ev13/9138pLS1NkyZN0rhx4/Thhx9e5UrhLtu2bVN8fLx27typjRs36pdfftGAAQNUUFDgbJOYmKgFCxbo1Vdf1eeff65mzZqpf//++vHHH2uwclTXpY75Tz/9pN27d+vZZ5/V7t27lZSUpEOHDmnw4ME1W7iJ64okc9WqVeXmHzt2zGzevLn59ddfm61atTL/+te/XvXaYI2Kjvl9991n3n///TVTECxX0THv1KmTOXv2bJd5N910kzl9+vSrWBmsdOrUKVOSuW3bNtM0TbOkpMRs1qyZ+eKLLzrbnDt3zgwICDBfe+21mioTbnThMa/Irl27TEnmkSNHrmJlrhjZhEpKSjRixAg9+eST6tSpU02XA4uVlJRo3bp1ateunaKjo9WkSRPdcsstF728Ate+Xr166X/+5390/PhxmaapLVu26NChQ4qOjq7p0uAmubm5kqSgoCBJUkZGhrKzszVgwABnG5vNpj59+mjHjh01UiPc68JjXlkbwzAUGBh4laoqj7AJzZs3T3Xr1tX48eNruhRcBadOnVJ+fr5efPFFDRw4UBs2bNA999yjoUOHatu2bTVdHizy8ssvq2PHjmrRooW8vLw0cOBALVmyRL169arp0uAGpmlq8uTJ6tWrlzp37ixJys7OliQ1bdrUpW3Tpk2dy3DtquiYX+jcuXOaOnWqhg8fLn9//6tc4f+pW2NbRq3w//7f/9OiRYu0e/duGYZR0+XgKigpKZEkDRkyRJMmTZIk3XjjjdqxY4dee+019enTpybLg0Vefvll7dy5U//zP/+jVq1aafv27RozZoyCg4PVr1+/mi4PV2js2LH66quv9Mknn5RbduF/203T5L/3vwIXO+ZS6c1Cv//971VSUqIlS5Zc5epcMbJ5nUtJSdGpU6fUsmVL1a1bV3Xr1tWRI0c0ZcoUtW7duqbLgwUaNWqkunXrqmPHji7zw8PDuRv9V+rnn3/WM888owULFig2NlZdu3bV2LFjdd9992n+/Pk1XR6u0Lhx4/Q///M/2rJli1q0aOGc36xZM0kqN4p56tSpcqOduLZUdszLFBcX695771VGRoY2btxYo6OaEmHzujdixAh99dVXSk1NdU4hISF68sknlZycXNPlwQJeXl66+eabyz0i5dChQ2rVqlUNVQUrFRcXq7i4WHXquP4n38PDwznSjWuPaZoaO3askpKStHnzZoWGhrosDw0NVbNmzbRx40bnvKKiIm3btk09e/a82uXCDS51zKX/C5rffPON/v3vf6thw4Y1UKkrTqNfB/Lz85Wenu78nJGRodTUVAUFBally5blfoienp5q1qyZ2rdvf7VLhZtc6pg/+eSTuu+++3T77bcrKipK69ev15o1a7R169aaKxpX5FLHvE+fPnryySfl4+OjVq1aadu2bXr33Xe1YMGCGqwaVyI+Pl7//d//rQ8//FB+fn7OEcyAgAD5+PjIMAxNnDhRL7zwgtq2bau2bdvqhRdeUL169TR8+PAarh7Vcalj/ssvv2jYsGHavXu31q5dK4fD4WwTFBQkLy+vmim8xu6Dx1WzZcsWU1K5aeTIkRW259FH177LOeZvvfWW2aZNG9Pb29uMiIgwV69eXXMF44pd6pifPHnSHDVqlBkSEmJ6e3ub7du3N1966SWzpKSkZgtHtVV0vCWZb7/9trNNSUmJ+dxzz5nNmjUzbTabefvtt5t79+6tuaJxRS51zDMyMipts2XLlhqr2/hP8QAAAIDbcc0mAAAALEPYBAAAgGUImwAAALAMYRMAAACWIWwCAADAMoRNAAAAWIawCQAAAMsQNgEAAGAZwiYAAAAsQ9gEAACAZQibAAAAsAxhEwAAAJb5/2OtPSHP4Y3jAAAAAElFTkSuQmCC\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 2 ---\n", - "Aktuelle Cluster: [[0], [1], [4], [5], [2, 3]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 2. 3. 1.41421356 2. ]\n", - " [ 4. 5. 2.23606798 2. ]\n", - " [ 0. 6. 3.36650165 3. ]\n", - " [ 1. 8. 9.38971068 4. ]\n", - " [ 7. 9. 10.62230358 6. ]]\n" - ] - }, - { - "data": { - "image/png": "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ePCg/Pz85O3tLUmaNm2aUlJStGzZMrVr1047duzQ/fffr2bNmqlv376Ovp966inNnz9f4eHhVdb4zTff6OGHH9aaNWvUsGHDGu9HdRE2AQBAvWPaTWU9nlUhaJYtlGRIWROy1HRIU5eeUs/KypJpmurYsaPL+iyXm5urxMREde3aVZIUHh7uWBYYGChJat68uSMsFhYWasGCBUpLS1NMTIxjnQ8//FCvvfaaU9icNWuWBgwYUOW2TdPUqFGj9Oijjyo6Otox2lobCJsAAKDeyUvPU9GxoqobmFLR0SLlpeepcb/GLtuuaZalW8Nw/TWh48eP12OPPaZNmzapf//+SkxMVLdu3apsv3//fp0/f75CiCwuLlb37t2d5kVHR19y26+88ooKCgo0derUmu9ADXHNJgAAqHeKTxa7tN2VateunQzDUGZmZrXWa9CgLFKVh1VJKikpcWozevRoff311xoxYoT27t2r6OhovfLKK1X2WVpaKklav369MjIyHNP+/fudrtuUVOkp/wulpaVp586dstlscnd3V0REhKSykDpy5Mgr39EaIGwCAIB6xzPI06XtrlRgYKDi4uK0ZMkSFRYWVlhe1aOJmjUru3b05MmTjnmVPVYoNDRUjz76qFJSUjR58mS9/vrrkiRPz7L9sNvtjradOnWSzWZTbm6uIiIinKbQ0NBq7dfLL7+sPXv2OALrhg0bJEnvvvuu5syZU62+qovT6AAAoN4J6BMgW4hNRceLKr9u05BsITYF9Alw+baXLl2qnj17qkePHpo1a5a6deumn376SZs3b9ayZcsqHfUsD4AzZszQ7Nmz9dVXX+mll15yajNhwgTFx8erffv2Onv2rNLS0hQZGSlJatOmjQzD0Lp163THHXfI29tbvr6+euKJJzRx4kSVlpaqd+/eKigo0EcffaRGjRpVa0SydevWTp8bNWokSbrhhhsUEhJS3a+oWhjZBAAA9Y7hZihiUcR/P1y8sOyPiIURljxvMywsTLt371ZsbKwmT56sLl26aMCAAdqyZYuWLVtW6ToeHh5asWKFDhw4oKioKM2dO1ezZ892amO325WUlKTIyEgNGjRIHTp00NKlSyVJrVq10syZMzVlyhS1aNFCY8eOlSQ9//zzmj59upKTkxUZGam4uDitXbtWYWFhLt9vqxjmhRcX1AMFBQXy9/dXfn6+/Pz86rocAABQQ+fPn1d2drbCwsLk5eVVoz7OpJxR1uNZTjcL2UJtilgY4fLHHqGiqo5hdfIap9EBAEC91WxoMzUd0rRW3yAE1yJsAgCAes1wM1z6eCPULq7ZBAAAgGUImwAAALAMYRMAAACWIWwCAADAMoRNAAAAWIawCQAAAMsQNgEAAGAZwiYAAEANGIahNWvW1HUZ9R5hEwAA4CKnTp3SuHHjFB4eLpvNptDQUCUkJGjLli2WbG/btm0yDEN5eXmW9H+hoqIi3XjjjTIMQxkZGZZvjzcIAQCAes20m7X6usqcnBz16tVLAQEBmjdvnrp166aSkhKlpqYqKSlJBw4csGzbV8s0Tdntdrm7Vx3xnnrqKQUHB2vPnj21UhMjmwAAoN46k3JGO9vu1J7YPcocnqk9sXu0s+1OnUk5Y9k2x4wZI8MwtGvXLg0bNkzt27dX586dNWnSJO3cubPSdSobmczIyJBhGMrJyZEkHTlyRAkJCWrcuLF8fHzUuXNnbdiwQTk5OYqNjZUkNW7cWIZhaNSoUZLKwuO8efMUHh4ub29vRUVFaeXKlRW2m5qaqujoaNlsNqWnp1e5bx988IE2bdqk+fPnX92XVA3VDps7duxQQkKCgoODK71WYdSoUTIMw2m69dZbXVUvAAC4TpxJOaN9w/ap6FiR0/yi40XaN2yfJYHzu+++08aNG5WUlCQfH58KywMCAmrcd1JSkoqKirRjxw7t3btXc+fOVaNGjRQaGqpVq1ZJkg4ePKiTJ09q0aJFkqRp06bpzTff1LJly7Rv3z5NnDhR999/v7Zv3+7U91NPPaXk5GRlZmaqW7dulW7/m2++0cMPP6x33nlHDRs2rPF+VFe1T6MXFhYqKipKDz74oBITEyttM2jQIL355puOz56enjWvEAAAXHdMu6msx7Mks7KFkgwpa0KWmg5p6tJT6llZWTJNUx07dnRZn+Vyc3OVmJiorl27SpLCw8MdywIDAyVJzZs3dwTawsJCLViwQGlpaYqJiXGs8+GHH+q1115T3759HevPmjVLAwYMqHLbpmlq1KhRevTRRxUdHe0Yba0N1Q6b8fHxio+Pv2Qbm82mli1b1rgoAABwfctLz6swounElIqOFikvPU+N+zV22XZNsyzdGobrrwkdP368HnvsMW3atEn9+/dXYmJilaOQkrR//36dP3++QogsLi5W9+7dneZFR0dfctuvvPKKCgoKNHXq1JrvQA1Zcs3mtm3b1Lx5c7Vv314PP/ywTp8+XWXboqIiFRQUOE0AAOD6Vnyy2KXtrlS7du1kGIYyMzOrtV6DBmWRqjysSlJJSYlTm9GjR+vrr7/WiBEjtHfvXkVHR+uVV16pss/S0lJJ0vr165WRkeGY9u/f73TdpqRKT/lfKC0tTTt37pTNZpO7u7siIiIklYXUkSNHXvmO1oDLw2Z8fLz+9re/KS0tTS+99JI+/fRT/fKXv1RRUeX/d5KcnCx/f3/HFBoa6uqSAADANcYz6MouwbvSdlcqMDBQcXFxWrJkiQoLCyssr+rRRM2aNZMknTx50jGvsscKhYaG6tFHH1VKSoomT56s119/XdL/XXJot9sdbTt16iSbzabc3FxFREQ4TdXNSy+//LL27NnjCKwbNmyQJL377ruaM2dOtfqqLpc/+ui+++5z/HOXLl0UHR2tNm3aaP369Ro6dGiF9lOnTtWkSZMcnwsKCgicAABc5wL6BMgWYlPR8aLKr9s0JFuITQF9Aly+7aVLl6pnz57q0aOHZs2apW7duumnn37S5s2btWzZskpHPcsD4IwZMzR79mx99dVXeumll5zaTJgwQfHx8Wrfvr3Onj2rtLQ0RUZGSpLatGkjwzC0bt063XHHHfL29pavr6+eeOIJTZw4UaWlperdu7cKCgr00UcfqVGjRtUakWzdurXT50aNGkmSbrjhBoWEhFT3K6oWyx99FBQUpDZt2uirr76qdLnNZpOfn5/TBAAArm+Gm6GIRRH//XDxwrI/IhZGWPK8zbCwMO3evVuxsbGaPHmyunTpogEDBmjLli1atmxZpet4eHhoxYoVOnDggKKiojR37lzNnj3bqY3dbldSUpIiIyM1aNAgdejQQUuXLpUktWrVSjNnztSUKVPUokULjR07VpL0/PPPa/r06UpOTlZkZKTi4uK0du1ahYWFuXy/rWKYF15cUN2VDUOrV6/W3XffXWWb//znP2rVqpX+/Oc/64EHHrhsnwUFBfL391d+fj7BEwCAa9j58+eVnZ2tsLAweXl51aiPMylnlPV4ltPNQrZQmyIWRqjZ0GauKhVVqOoYVievVfs0+rlz55SVleX4nJ2drYyMDAUGBiowMFAzZsxQYmKigoKClJOTo2eeeUZNmzbVPffcU91NAQCA61yzoc3UdEjTWn2DEFyr2mHzs88+czzlXpLjesuRI0dq2bJl2rt3r95++23l5eUpKChIsbGxevfdd+Xr6+u6qgEAwHXDcDNc+ngj1K5qh81+/frpUmfeU1NTr6ogAAAA/HzwbnQAAABYhrAJAAAsdRX3IqOOueLYETYBAIAlPDw8JEk//PBDHVeCmio/duXHsiZc/lB3AAAASXJzc1NAQIDjtdUNGza05J3jcD3TNPXDDz/o9OnTCggIkJubW437ImwCAADLtGzZUpIcgRPXloCAAMcxrCnCJgAAsIxhGAoKClLz5s1VUlJS1+WgGjw8PK5qRLMcYRMAAFjOzc3NJcEF1x5uEAIAAIBlCJsAAACwDGETAAAAliFsAgAAwDKETQAAAFiGsAkAAADLEDYBAABgGcImAAAALEPYBAAAgGUImwAAALAMYRMAAACWIWwCAADAMoRNAAAAWIawCQAAAMsQNgEAAGAZwiYAAAAsQ9gEAACAZQibAAAAsAxhEwAAAJYhbAIAAMAyhE0AAABYhrAJAAAAyxA2AQAAYBnCJgAAACxD2AQAAIBlCJsAAACwDGETAAAAliFsAgAAwDKETQAAAFiGsAkAAADLEDYBAABgGcImAAAALEPYBAAAgGUImwAAALBMtcPmjh07lJCQoODgYBmGoTVr1lTZ9pFHHpFhGFq4cOFVlAgAAIBrVbXDZmFhoaKiorR48eJLtluzZo0++eQTBQcH17g4AAAAXNvcq7tCfHy84uPjL9nm+PHjGjt2rFJTU3XnnXfWuDgAAABc21x+zWZpaalGjBihJ598Up07d3Z19wAAALiGVHtk83Lmzp0rd3d3jR8//oraFxUVqaioyPG5oKDA1SUBAACgjrh0ZPPf//63Fi1apLfeekuGYVzROsnJyfL393dMoaGhriwJAAAAdcilYTM9PV2nT59W69at5e7uLnd3dx05ckSTJ09W27ZtK11n6tSpys/Pd0xHjx51ZUkAAACoQy49jT5ixAj179/faV5cXJxGjBihBx98sNJ1bDabbDabK8sAAABAPVHtsHnu3DllZWU5PmdnZysjI0OBgYFq3bq1mjRp4tTew8NDLVu2VIcOHa6+WgAAAFxTqh02P/vsM8XGxjo+T5o0SZI0cuRIvfXWWy4rDAAAANe+aofNfv36yTTNK26fk5NT3U0AAADgZ4J3owMAAMAyhE0AAABYhrAJAAAAyxA2AQAAYBnCJgAAACxD2AQAAIBlCJsAAACwDGETAAAAliFsAgAAwDKETQAAAFiGsAkAAADLEDYBAABgGcImAAAALEPYBAAAgGUImwAAALAMYRMAAACWIWwCAADAMoRNAAAAWIawCQAAAMsQNgEAAGAZwiYAAAAsQ9gEAACAZQibAAAAsAxhEwAAAJYhbAIAAMAyhE0AAABYhrAJAAAAyxA2AQAAYBnCJgAAACxD2AQAAIBlCJsAAACwDGETAAAAliFsAgAAwDKETQAAAFiGsAkAAADLEDYBAABgGcImAAAALEPYBAAAgGUImwAAALAMYRMAAACWIWwCAADAMoRNAAAAWKbaYXPHjh1KSEhQcHCwDMPQmjVrnJbPmDFDHTt2lI+Pjxo3bqz+/fvrk08+cVW9AAAAuIZUO2wWFhYqKipKixcvrnR5+/bttXjxYu3du1cffvih2rZtq4EDB+rMmTNXXSwAAACuLYZpmmaNVzYMrV69WnfffXeVbQoKCuTv769//etfuv322y/bZ3n7/Px8+fn51bQ0AAAAWKQ6ec3dykKKi4v15z//Wf7+/oqKiqq0TVFRkYqKihyfCwoKrCwJAAAAtciSG4TWrVunRo0aycvLS3/605+0efNmNW3atNK2ycnJ8vf3d0yhoaFWlAQAAIA6YEnYjI2NVUZGhj766CMNGjRI9957r06fPl1p26lTpyo/P98xHT161IqSAAAAUAcsCZs+Pj6KiIjQrbfeqjfeeEPu7u564403Km1rs9nk5+fnNAEAAODnoVaes2maptN1mQAAALg+VPsGoXPnzikrK8vxOTs7WxkZGQoMDFSTJk00Z84c3XXXXQoKCtJ//vMfLV26VMeOHdOvfvUrlxYOAACA+q/aYfOzzz5TbGys4/OkSZMkSSNHjtSrr76qAwcOaPny5fr222/VpEkT3XzzzUpPT1fnzp1dVzUAAACuCVf1nE0r8JxNAACA+q06eY13owMAAMAyhE0AAABYhrAJAAAAyxA2AQAAYBnCJgAAACxD2AQAAIBlCJsAAACwDGETAAAAliFsAgAAwDKETQAAAFiGsAkAAADLEDYBAABgGcImAAAALEPYBAAAgGUImwAAALAMYRMAAACWIWwCAADAMoRNAAAAWIawCQAAAMsQNgEAAGAZwiYAAAAsQ9gEAACAZQibAAAAsAxhEwAAAJYhbAIAAMAyhE0AAABYhrAJAAAAyxA2AQAAYBnCJgAAACxD2AQAAIBlCJsAAACwDGETAAAAliFsAgAAwDKETQAAAFiGsAkAAADLEDYBAABgGcImAAAALEPYBAAAgGUImwAAALAMYRMAAACWIWwCAADAMtUOmzt27FBCQoKCg4NlGIbWrFnjWFZSUqKnn35aXbt2lY+Pj4KDg/XAAw/oxIkTrqwZAAAA14hqh83CwkJFRUVp8eLFFZb98MMP2r17t5599lnt3r1bKSkpOnTokO666y6XFAsAAIBri2GaplnjlQ1Dq1ev1t13311lm08//VQ9evTQkSNH1Lp168v2WVBQIH9/f+Xn58vPz6+mpQEAAMAi1clrll+zmZ+fL8MwFBAQYPWmAAAAUM+4W9n5+fPnNWXKFA0fPrzK1FtUVKSioiLH54KCAitLAgAAQC2ybGSzpKREv/71r1VaWqqlS5dW2S45OVn+/v6OKTQ01KqSAAAAUMssCZslJSW69957lZ2drc2bN1/yXP7UqVOVn5/vmI4ePWpFSQAAAKgDLj+NXh40v/rqK23dulVNmjS5ZHubzSabzebqMgAAAFAPVDtsnjt3TllZWY7P2dnZysjIUGBgoIKDgzVs2DDt3r1b69atk91u16lTpyRJgYGB8vT0dF3lAAAAqPeq/eijbdu2KTY2tsL8kSNHasaMGQoLC6t0va1bt6pfv36X7Z9HHwEAANRv1clr1R7Z7Nevny6VT6/isZ0AAAD4meHd6AAAALAMYRMAAACWIWwCAADAMoRNAAAAWIawCQAAAMsQNgEAAGAZwiYAAAAsQ9gEAACAZQibAAAAsAxhEwAAAJYhbAIAAMAyhE0AAABYhrAJAAAAyxA2AQAAYBnCJgAAACxD2AQAAIBlCJsAAACwDGETAAAAliFsAgAAwDKETQAAAFiGsAkAAADLEDYBAABgGcImAAAALEPYBAAAgGUImwAAALAMYRMAAACWIWwCAADAMoRNAAAAWIawCQAAAMsQNgEAAGAZwiYAAAAsQ9gEAACAZQibAAAAsAxhEwAAAJYhbAIAAMAyhE0AAABYhrAJAAAAyxA2AQAAYBnCJgAAACxD2AQAAIBlCJsAAACwjHtdFwAAgKvZ7VJ6unTypBQUJPXpI7m51XVVwPWp2iObO3bsUEJCgoKDg2UYhtasWeO0PCUlRXFxcWratKkMw1BGRoaLSgUA4PJSUqS2baXYWGn48LI/27Ytmw+g9lU7bBYWFioqKkqLFy+ucnmvXr304osvXnVxAABUR0qKNGyYdOyY8/zjx8vmEziB2lft0+jx8fGKj4+vcvmIESMkSTk5OTUuCgCA6rLbpccfl0yz4jLTlAxDmjBBGjKEU+pAbarzG4SKiopUUFDgNAEAUF3p6RVHNC9kmtLRo2XtANSeOg+bycnJ8vf3d0yhoaF1XRIA4Bp08qRr2wFwjToPm1OnTlV+fr5jOnr0aF2XBAC4BgUFubYdANeo80cf2Ww22Wy2ui4DAHCN69NHCgkpuxmosus2DaNseZ8+tV8bcD2r85FNAABcwc1NWrSo7J8Nw3lZ+eeFC7k5CKht1R7ZPHfunLKyshyfs7OzlZGRocDAQLVu3VrfffedcnNzdeLECUnSwYMHJUktW7ZUy5YtXVQ2AAAVDR0qrVxZdlf6hTcLhYSUBc2hQ+usNOC6ZZhmZScbqrZt2zbFxsZWmD9y5Ei99dZbeuutt/Tggw9WWP7cc89pxowZl+2/oKBA/v7+ys/Pl5+fX3VKAwBAEm8QAqxWnbxW7bBpNcImAABA/VadvMY1mwAAALAMYRMAAACWIWwCAADAMoRNAAAAWIawCQAAAMsQNgEAAGAZwiYAAAAsQ9gEAACAZQibAAAAsAxhEwAAAJYhbAIAAMAyhE0AAABYhrAJAAAAyxA2AQAAYBnCJgAAACxD2AQAAIBlCJsAAACwDGETAAAAliFsAgAAwDKETQAAAFiGsAkAAADLEDYBAABgGcImAAAALEPYBAAAgGUImwAAALAMYRMAAACWIWwCAADAMoRNAAAAWIawCQAAAMsQNgEAAGAZwiYAAAAsQ9gEAACAZQibAAAAsAxhEwAAAJYhbAIAAMAyhE0AAABYhrAJAAAAyxA2AQAAYBnCJgAAACxD2AQAAIBlCJsAAACwTLXD5o4dO5SQkKDg4GAZhqE1a9Y4LTdNUzNmzFBwcLC8vb3Vr18/7du3z1X1upy91K5tOdu0Yu8KbcvZJnupva5LAgAANWDaTZ3ddlbfrPhGZ7edlWk367okSHKv7gqFhYWKiorSgw8+qMTExArL582bpwULFuitt95S+/btNXv2bA0YMEAHDx6Ur6+vS4p2lZTMFD2+8XEdKzjmmBfiF6JFgxZpaOTQOqwMAABUx5mUM8p6PEtFx4oc82whNkUsilCzoc3qsDIYpmnWOPYbhqHVq1fr7rvvllQ2qhkcHKwJEybo6aefliQVFRWpRYsWmjt3rh555JHL9llQUCB/f3/l5+fLz8+vpqVdVkpmiob9Y5hMOe++IUOStPLelQROAACuAWdSzmjfsH3SxYmm7D/p6ryyM4HTxaqT11x6zWZ2drZOnTqlgQMHOubZbDb17dtXH330kSs3dVXspXY9vvHxCkFTkmPehI0TOKUOAEA9Z9pNZT2eVTFoSo55WROyOKVeh1waNk+dOiVJatGihdP8Fi1aOJZdrKioSAUFBU6T1dJz051OnV/MlKmjBUeVnptueS0AAKDm8tLznE6dV2BKRUeLlJeeV2s1wZkld6MbhuH02TTNCvPKJScny9/f3zGFhoZaUZKTk9+fdGk7AABQN4pPFru0HVzPpWGzZcuWklRhFPP06dMVRjvLTZ06Vfn5+Y7p6NGjriypUkG+QS5tBwAA6oZnkKdL28H1XBo2w8LC1LJlS23evNkxr7i4WNu3b1fPnj0rXcdms8nPz89pslqf1n0U4hfiuBnoYoYMhfqFqk/rPpbXAgAAai6gT4BsITZV8Z90yZBsoTYF9AmozbJwgWqHzXPnzikjI0MZGRmSym4KysjIUG5urgzD0IQJE/TCCy9o9erV+vLLLzVq1Cg1bNhQw4cPd3XtNebWwE2LBi2SpAqBs/zzwkEL5dbArdZrAwAAV85wMxSxKOK/Hy5eWPZHxMIIGW5VpVFYrdqPPtq2bZtiY2MrzB85cqTeeustmaapmTNn6rXXXtPZs2d1yy23aMmSJerSpcsV9V9bjz6SKn/OZqhfqBYOWshjjwAAuIZU+pzNUJsiFvKcTStUJ69d1XM2rVCbYVMqewxSem66Tn5/UkG+QerTug8jmgAAXINMu6m89DwVnyyWZ5CnAvoEMKJpkerktWq/Qejnxq2Bm/q17VfXZQAAgKtkuBlq3K9xXZeBi1jy6CMAAABAImwCAADAQoRNAAAAWIawCQAAAMsQNgEAAGAZwiYAAAAsQ9gEAACAZQibAAAAsAxhEwAAAJYhbAIAAMAyhE0AAABYhrAJAAAAyxA2AQAAYBnCJgAAACxD2AQAAIBlCJsAAACwDGETAAAAliFsAgAAwDKETQAAAFiGsAkAAADLEDYBAABgGcImAAAALEPYBAAAgGUImwAAALAMYRMAAACWIWwCAADAMoRNAAAAWIawCQAAAMsQNgEAAGAZwiYAAAAsQ9gEAACAZQibAAAAsAxhEwAAAJYhbAIAAMAyhE0AAABYhrAJAAAAyxA2AQAAYBnCJgAAACxD2AQAAIBlCJsAAACwjHtdFwAAAICaM+2m8tLzVHyyWJ5BngroEyDDzajrshwsGdn8/vvvNWHCBLVp00be3t7q2bOnPv30Uys2BQAAcN06k3JGO9vu1J7YPcocnqk9sXu0s+1OnUk5U9elOVgSNkePHq3NmzfrnXfe0d69ezVw4ED1799fx48ft2JzAAAA150zKWe0b9g+FR0rcppfdLxI+4btqzeB0zBN03Rlhz/++KN8fX31/vvv684773TMv/HGGzV48GDNnj37kusXFBTI399f+fn58vPzc2VpAAAAPwum3dTOtjsrBE0HQ7KF2HRr9q2WnFKvTl5z+TWbP/30k+x2u7y8vJzme3t768MPP6zQvqioSEVF//dFFRQUuLokAACAn5W89Lyqg6YkmVLR0SLlpeepcb/GtVdYJVx+Gt3X11cxMTF6/vnndeLECdntdv3P//yPPvnkE508ebJC++TkZPn7+zum0NBQV5cEAADws1J8stil7axkyTWb77zzjkzTVKtWrWSz2fTyyy9r+PDhcnNzq9B26tSpys/Pd0xHjx61oiQAAICfDc8gT5e2s5IlYfOGG27Q9u3bde7cOR09elS7du1SSUmJwsLCKrS12Wzy8/NzmgAAAFC1gD4BsoXYpKouxzQkW6hNAX0CarOsSln6UHcfHx8FBQXp7NmzSk1N1ZAhQ6zcHAAAwHXBcDMUsSjivx8uXlj2R8TCiHrxvE1LwmZqaqo2btyo7Oxsbd68WbGxserQoYMefPBBKzYHAABw3Wk2tJk6r+wsWyub03xbiE2dV3ZWs6HN6qgyZ5a8QSg/P19Tp07VsWPHFBgYqMTERM2ZM0ceHh5WbA4AAOC61GxoMzUd0rRev0HI5c/ZvFo8ZxMAAKB+q05es/SaTQAAAFzfCJsAAACwDGETAAAAliFsAgAAwDKETQAAAFiGsAkAAADLEDYBAABgGcImAAAALEPYBAAAgGUImwAAALAMYRMAAACWIWwCAADAMoRNAAAAWMa9rgu4mGmakqSCgoI6rgQAAACVKc9p5bntUupd2Pz+++8lSaGhoXVcCQAAAC7l+++/l7+//yXbGOaVRNJaVFpaqhMnTsjX11eGYdR1OT9rBQUFCg0N1dGjR+Xn51fX5aCWcNyvPxzz6w/H/PpT28fcNE19//33Cg4OVoMGl74qs96NbDZo0EAhISF1XcZ1xc/Pj38ZXYc47tcfjvn1h2N+/anNY365Ec1y3CAEAAAAyxA2AQAAYBnC5nXMZrPpueeek81mq+tSUIs47tcfjvn1h2N+/anPx7ze3SAEAACAnw9GNgEAAGAZwiYAAAAsQ9gEAACAZQibAAAAsAxh8zqwY8cOJSQkKDg4WIZhaM2aNVW2feSRR2QYhhYuXFhr9cH1ruSYZ2Zm6q677pK/v798fX116623Kjc3t/aLhUtc7pifO3dOY8eOVUhIiLy9vRUZGally5bVTbFwieTkZN18883y9fVV8+bNdffdd+vgwYNObUzT1IwZMxQcHCxvb2/169dP+/btq6OKcbUud8xLSkr09NNPq2vXrvLx8VFwcLAeeOABnThxog6rJmxeFwoLCxUVFaXFixdfst2aNWv0ySefKDg4uJYqg1Uud8wPHz6s3r17q2PHjtq2bZv27NmjZ599Vl5eXrVcKVzlcsd84sSJ2rhxo/7nf/5HmZmZmjhxosaNG6f333+/liuFq2zfvl1JSUnauXOnNm/erJ9++kkDBw5UYWGho828efO0YMECLV68WJ9++qlatmypAQMG6Pvvv6/DylFTlzvmP/zwg3bv3q1nn31Wu3fvVkpKig4dOqS77rqrbgs3cV2RZK5evbrC/GPHjpmtWrUyv/zyS7NNmzbmn/70p1qvDdao7Jjfd9995v333183BcFylR3zzp07m7NmzXKad9NNN5nTpk2rxcpgpdOnT5uSzO3bt5umaZqlpaVmy5YtzRdffNHR5vz586a/v7/56quv1lWZcKGLj3lldu3aZUoyjxw5UouVOWNkEyotLdWIESP05JNPqnPnznVdDixWWlqq9evXq3379oqLi1Pz5s11yy23XPLyClz7evfurX/+8586fvy4TNPU1q1bdejQIcXFxdV1aXCR/Px8SVJgYKAkKTs7W6dOndLAgQMdbWw2m/r27auPPvqoTmqEa118zKtqYxiGAgICaqmqigib0Ny5c+Xu7q7x48fXdSmoBadPn9a5c+f04osvatCgQdq0aZPuueceDR06VNu3b6/r8mCRl19+WZ06dVJISIg8PT01aNAgLV26VL17967r0uACpmlq0qRJ6t27t7p06SJJOnXqlCSpRYsWTm1btGjhWIZrV2XH/GLnz5/XlClTNHz4cPn5+dVyhf/Hvc62jHrh3//+txYtWqTdu3fLMIy6Lge1oLS0VJI0ZMgQTZw4UZJ044036qOPPtKrr76qvn371mV5sMjLL7+snTt36p///KfatGmjHTt2aMyYMQoKClL//v3rujxcpbFjx+qLL77Qhx9+WGHZxf9uN02Tf9//DFzqmEtlNwv9+te/VmlpqZYuXVrL1TljZPM6l56ertOnT6t169Zyd3eXu7u7jhw5osmTJ6tt27Z1XR4s0LRpU7m7u6tTp05O8yMjI7kb/Wfqxx9/1DPPPKMFCxYoISFB3bp109ixY3Xfffdp/vz5dV0ertK4ceP0z3/+U1u3blVISIhjfsuWLSWpwijm6dOnK4x24tpS1TEvV1JSonvvvVfZ2dnavHlznY5qSoTN696IESP0xRdfKCMjwzEFBwfrySefVGpqal2XBwt4enrq5ptvrvCIlEOHDqlNmzZ1VBWsVFJSopKSEjVo4PyvfDc3N8dIN649pmlq7NixSklJUVpamsLCwpyWh4WFqWXLltq8ebNjXnFxsbZv366ePXvWdrlwgcsdc+n/guZXX32lf/3rX2rSpEkdVOqM0+jXgXPnzikrK8vxOTs7WxkZGQoMDFTr1q0r/BA9PDzUsmVLdejQobZLhYtc7pg/+eSTuu+++3TbbbcpNjZWGzdu1Nq1a7Vt27a6KxpX5XLHvG/fvnryySfl7e2tNm3aaPv27Xr77be1YMGCOqwaVyMpKUn/+7//q/fff1++vr6OEUx/f395e3vLMAxNmDBBL7zwgtq1a6d27drphRdeUMOGDTV8+PA6rh41cblj/tNPP2nYsGHavXu31q1bJ7vd7mgTGBgoT0/Puim8zu6DR63ZunWrKanCNHLkyErb8+ija9+VHPM33njDjIiIML28vMyoqChzzZo1dVcwrtrljvnJkyfNUaNGmcHBwaaXl5fZoUMH86WXXjJLS0vrtnDUWGXHW5L55ptvOtqUlpaazz33nNmyZUvTZrOZt912m7l37966KxpX5XLHPDs7u8o2W7durbO6jf8WDwAAALgc12wCAADAMoRNAAAAWIawCQAAAMsQNgEAAGAZwiYAAAAsQ9gEAACAZQibAAAAsAxhEwAAAJYhbAIAAMAyhE0AAABYhrAJAAAAyxA2AQAAYJn/DzlqcolvWSs/AAAAAElFTkSuQmCC\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 3 ---\n", - "Aktuelle Cluster: [[0], [1], [4], [5], [2, 3]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 2. 3. 1.41421356 2. ]\n", - " [ 4. 5. 2.23606798 2. ]\n", - " [ 0. 6. 3.36650165 3. ]\n", - " [ 1. 8. 9.38971068 4. ]\n", - " [ 7. 9. 10.62230358 6. ]]\n" - ] - }, - { - "data": { - "image/png": "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cXHmDTfc4NjG2LFjTX9//0vuy8MPP2w2bNjQPHz4sNP8st/j3r17L7l+VXz77bdmr169HH/33d3dzR49ephJSUnmDz/84Gj39ddfm25ubuZvf/vbS/bXp08fU5L5ySefOM3v2LGjGRsb6/hc9vfytttuK9dH2bKtW7c65iUmJpqV/afZ29u7wt/spXz88cdO/8674447zPz8/Cr1AVwtTqPjZ++tt97Sp59+Wm7q1avXZdddu3atOnfurBtvvFHnz593TLGxseVOlUql10Q1atSoXD9btmxRv3795OfnJzc3N7m7u2v69On67rvvdOrUKae2Xbt2Vbt27ZzmffDBB4qJiVFERMRlax48eHC5/iSVG5W50M033yxJuueee/TPf/5Tx44dK9fmgw8+ULt27ZxGsypz5513Oo2iXlxDZmam9u/fr9/+9reS5PTd3nHHHTpx4kS5U/+1pXv37tq9e7fGjBmjlJQU5efnX/G6KSkpOn/+vO6//36nffT09FSfPn3K/X6k0lHJi506dUqPPPKIgoODVb9+fbm7uyskJESSlJGRUa59Rb+Bc+fOOf3WPv/8cw0ePFiNGzd2/Cbvv/9+2e12HTx4sNJ9qlevnsaOHau1a9cqJydHUuko6YYNGzRmzBjHSH/37t2Vm5ur3/zmN3r//fcrvAN67dq1iomJUVBQkNP3ExcXJ0navn17pXWUlJQ4rWO32yttK0mNGzdWamqqPv30U73wwgsaMmSIDh48qKlTp6pLly6O+jZt2iS73a7ExMRL9idJLVq0UPfu3Z3mde3atcK/axUd15rQpUsXffrpp9q+fbsWLVqkzz//XP3799ePP/5YK/Xg+kTYxM9eRESEoqKiyk1lp3Mv5ZtvvtEXX3whd3d3p8nHx0emaZb7D2jZKdQL7dy5UwMGDJAkvfbaa/rf//1fffrpp/rDH/4gqfQGoMv1cfr0abVq1eqK9rdx48ZOn202W4XbudBtt92m1atXO4JRq1at1LlzZ6cbDFxZQ9l1po8//ni573bMmDGSdMnHs5RdjpCVlXVF9VyNqVOnav78+UpLS1NcXJwaN26s22+/vdJHal2obD9vvvnmcvv57rvvltvHBg0alDs1WlJSogEDBig5OVlPPvmkNm/erJ07dzquga3ouF7u+8/JyVHv3r117NgxLVq0yBHCyq4XvNRvRZIefPBB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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 4 ---\n", - "Aktuelle Cluster: [[0], [1], [4], [5], [2, 3]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 2. 3. 1.41421356 2. ]\n", - " [ 4. 5. 2.23606798 2. ]\n", - " [ 0. 6. 3.36650165 3. ]\n", - " [ 1. 8. 9.38971068 4. ]\n", - " [ 7. 9. 10.62230358 6. ]]\n" - ] - }, - { - "data": { - "image/png": "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NJ3nHztWNn/5cmnIEJdu8syZM1q/fr1mz54tHx+fCssDAgJq3HdCQoKKi4u1fft2+fj4aN++fWrQoIFCQkK0YsUKxcfH68CBA/Lz85O3t7ckaerUqUpOTtaSJUvUtm1bbd++XQ888ICaNGmiPn36OPp++umnNXfuXIWFhV12jXl5eQoMDKzx/lwuwiYAAKh77HbpiScqBk2pbJ5hSOPHS4MHu/SUekZGhkzTVIcOHVzWZ7ns7GzFx8erS5cukqSwsDDHsvLQ17RpU0dYLCws1Lx587R582b16NHDsc7HH3+sN954wylszpw5U/3797/sWg4dOqTXXntNr7zyypXu1iURNgEAQN2TmiodPVr1ctOUjhwpa9e3r8s2a/433BqG4bI+y40bN06PP/64NmzYoH79+ik+Pl5du3atsv2+fft07ty5CiGyuLhY3bp1c5oXFRV12XUcP35cAwcO1G9+8xuNGjWqejtRA1yzCQAA6p4TJ1zb7jK1bdtWhmEoPT29WuvVq1cWqczzRmJLSkqc2owaNUrffvuthg8frj179igqKkqvvfZalX2WlpZKktauXau0tDTHtG/fPqfrNiVVesq/MsePH1d0dLR69Oihv/zlL5e1zpUibAIAgLonKMi17S5TYGCgYmJitGjRIhUWFlZYXtWjiZo0aSJJOnFe+E1LS6vQLiQkRI899piSk5M1adIkvfnmm5IkT09PSZLdbne07dixo2w2m7KzsxUeHu40hYSEVHvfjh07pr59++qmm27S22+/7QjIViNsAgCAuqd3b6lly7JrMytjGFJISFk7F1u8eLHsdru6d++uFStW6JtvvlF6erpeffVVx7WTFyoPgNOnT9fBgwe1du3aCtdDjh8/XikpKcrMzNSuXbu0efNmRURESJJat24twzC0Zs0a5eTkqKCgQL6+vnryySc1YcIELV26VIcOHdKXX36pRYsWaenSpdXap+PHj6tv374KCQnR3LlzlZOTo5MnT+rkyZM1+5KqgbAJAADqHjc3acGCsn++MHCWf54/35LnbYaGhmrXrl2Kjo7WpEmT1LlzZ/Xv31+bNm3SkiVLKl3Hw8NDy5Yt0/79+xUZGak5c+Zo1qxZTm3sdrsSEhIUERGhgQMHqn379lq8eLEkqUWLFpoxY4YmT56sZs2aacyYMZKkF198UdOmTVNiYqIiIiIUExOj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9fWVYRi1Xc4vWn5+vkJCQnTkyBH5+fnVdjm4Sjju1x+O+fWHY379udrH3DRN/fDDDwoODla9ehe/KrPOjWzWq1dPLVu2rO0yrit+fn78y+g6xHG//nDMrz8c8+vP1TzmlxrRLMcNQgAAALAMYRMAAACWIWxex2w2m1544QXZbLbaLgVXEcf9+sMxv/5wzK8/dfmY17kbhAAAAPDLwcgmAAAALEPYBAAAgGUImwAAALAMYRMAAACWIWxeB7Zv3664uDgFBwfLMAytWrWqyraPPvqoDMPQ/Pnzr1p9cL3LOebp6em6++675e/vL19fX916663Kzs6++sXCJS51zAsKCjRmzBi1bNlS3t7eioiI0JIlS2qnWLhEYmKibr75Zvn6+qpp06a65557dODAAac2pmlq+vTpCg4Olre3t/r27au9e/fWUsW4Upc65iUlJXrmmWfUpUsX+fj4KDg4WA8++KCOHz9ei1UTNq8LhYWFioyM1MKFCy/abtWqVfrss88UHBx8lSqDVS51zA8dOqRevXqpQ4cO2rp1q3bv3q3nn39eXl5eV7lSuMqljvmECRO0fv16/c///I/S09M1YcIEjR07Vh9++OFVrhSusm3bNiUkJGjHjh3auHGjfv75Zw0YMECFhYWONklJSZo3b54WLlyozz//XM2bN1f//v31ww8/1GLlqKlLHfMff/xRu3bt0vPPP69du3YpOTlZBw8e1N133127hZu4rkgyV65cWWH+0aNHzRYtWphff/212bp1a/PPf/7zVa8N1qjsmN9///3mAw88UDsFwXKVHfNOnTqZM2fOdJp30003mVOnTr2KlcFKp0+fNiWZ27ZtM03TNEtLS83mzZubL7/8sqPNuXPnTH9/f/P111+vrTLhQhce88rs3LnTlGQePnz4KlbmjJFNqLS0VMOHD9dTTz2lTp061XY5sFhpaanWrl2rdu3aKSYmRk2bNtUtt9xy0csrcO3r1auX/v3vf+vYsWMyTVNbtmzRwYMHFRMTU9ulwUXy8vIkSYGBgZKkzMxMnTx5UgMGDHC0sdls6tOnjz755JNaqRGudeExr6qNYRgKCAi4SlVVRNiE5syZI3d3d40bN662S8FVcPr0aRUUFOjll1/WwIEDtWHDBt17770aMmSItm3bVtvlwSKvvvqqOnbsqJYtW8rT01MDBw7U4sWL1atXr9ouDS5gmqYmTpyoXr16qXPnzpKkkydPSpKaNWvm1LZZs2aOZbh2VXbML3Tu3DlNnjxZw4YNk5+f31Wu8P+419qWUSf8v//3/7RgwQLt2rVLhmHUdjm4CkpLSyVJgwcP1oQJEyRJN954oz755BO9/vrr6tOnT22WB4u8+uqr2rFjh/7973+rdevW2r59u0aPHq2goCD169evtsvDFRozZoy++uorffzxxxWWXfjvdtM0+ff9L8DFjrlUdrPQb3/7W5WWlmrx4sVXuTpnjGxe51JTU3X69Gm1atVK7u7ucnd31+HDhzVp0iS1adOmtsuDBRo3bix3d3d17NjRaX5ERAR3o/9C/fTTT3r22Wc1b948xcXFqWvXrhozZozuv/9+zZ07t7bLwxUaO3as/v3vf2vLli1q2bKlY37z5s0lqcIo5unTpyuMduLaUtUxL1dSUqL77rtPmZmZ2rhxY62OakqEzeve8OHD9dVXXyktLc0xBQcH66mnnlJKSkptlwcLeHp66uabb67wiJSDBw+qdevWtVQVrFRSUqKSkhLVq+f8r3w3NzfHSDeuPaZpasyYMUpOTtbmzZsVGhrqtDw0NFTNmzfXxo0bHfOKi4u1bds29ezZ82qXCxe41DGX/i9ofvPNN/rPf/6jRo0a1UKlzjiNfh0oKChQRkaG43NmZqbS0tIUGBioVq1aVfghenh4qHnz5mrfvv3VLhUucqlj/tRTT+n+++/X7bffrujoaK1fv16rV6/W1q1ba69oXJFLHfM+ffroqaeekre3t1q3bq1t27bp3Xff1bx582qxalyJhIQE/eMf/9CHH34oX19fxwimv7+/vL29ZRiGxo8fr5deeklt27ZV27Zt9dJLL6l+/foaNmxYLVePmrjUMf/55581dOhQ7dq1S2vWrJHdbne0CQwMlKenZ+0UXmv3weOq2bJliympwjRixIhK2/Poo2vf5Rzzt956ywwPDze9vLzMyMhIc9WqVbVXMK7YpY75iRMnzJEjR5rBwcGml5eX2b59e/OVV14xS0tLa7dw1Fhlx1uS+fbbbzvalJaWmi+88ILZvHlz02azmbfffru5Z8+e2isaV+RSxzwzM7PKNlu2bKm1uo3/Fg8AAAC4HNdsAgAAwDKETQAAAFiGsAkAAADLEDYBAABgGcImAAAALEPYBAAAgGUImwAAALAMYRMAAACWIWwCAADAMoRNAAAAWIawCQAAAMsQNgEAAGCZ/w+8O3/rO3QYsgAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 5 ---\n", - "Aktuelle Cluster: [[0], [1], [4], [5], [2, 3]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 2. 3. 1.41421356 2. ]\n", - " [ 4. 5. 2.23606798 2. ]\n", - " [ 0. 6. 3.36650165 3. ]\n", - " [ 1. 8. 9.38971068 4. ]\n", - " [ 7. 9. 10.62230358 6. ]]\n" - ] - }, - { - "data": { - "image/png": "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3Xd199136+effz7vtbMbNmyQpGqdTqypxMREzZgxQ9OmTdMtt9yikpIS7du3z3F95ujRo/Xjjz/qpZdeUlJSkgIDAyXJcWr0+eef17Rp03T//fdr2rRpKi4u1l/+8hf17t1bO3bscDqFWlxcrMGDB+vhhx/WlClTHL/bgwcPqmfPnho9erT8/PyUnZ2tBQsWqFevXtq9e3eFEdy4uDjdfffdevDBBx2hXJJef/11R5uDBw9q+PDhjv+J2rVrl+bMmaN9+/Y5tTvXY489piFDhmjTpk3q16+fY/5HH32kgwcP6sUXX5QkvfvuuxozZozGjRunefPmqV69esrMzNTevXsd65w4cUI9evRQvXr1NH36dF1zzTX69NNPNXv2bGVnZ+uNN96o9vGqSs+ePfX3v/9d48eP1z333KPrrruuypHv6dOn67nnntPQoUM1efJk+fn56euvv9ahQ4ec2p04cUL33HOPJk+erGeffVarVq3S1KlTFRQUpPvuu8+p7dSpU9WzZ0+9/PLLqlevnpo1a6YTJ044tXnmmWdUWFioFStW6NNPP3XMDwwM1Keffqrf//73ioqK0jPPPCNJF3XJz/bt2+Xj46MzZ86oXbt2evDBBzVhwoQq/10AWMIEfqPeeOMNU9J5pzZt2jit06ZNG3PkyJGOzwkJCWa9evXMzz//3KndihUrTEnmunXrHPMkmX5+fuaPP/543rrsdrtZUlJizpo1y2zcuLFZWlrqtH03Nzdz//79Tus88MADpru7u7l3794q+92yZYspybztttuc5r///vumJPPTTz91zBs5cqTTvs+bN8+UZObm5lbZ/6xZs0xJ5saNG6tsk5WVZUoyu3btav7666+O+Tt27DAlme+8845jXseOHc3u3bubJSUlTn0MGjTIDAwMNO12e5XbGThwoCnJPHPmTJVtzlb+W8jKynLMO/dYl+vTp4/Zp08fp3quvfba8/b/l7/8pUL/pmmaOTk5Zv369c1x48Y5zf/pp5/MFi1amHfddZdj3siRI01J5uuvv37ebZWWlpolJSXmoUOHTEnmhx9+6Fj27LPPmpLMxMREp3XGjBljenp6Ov3Wzlb+m3zrrbdMNzc3p9/wub8Vu91uhoaGmkOGDHHqIyYmxrzmmmsc2xg7dqzp7+9/3n15+OGHzYYNG5qHDh1yml/+e9yzZ89516+O77//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Od0JXhPTp0/XkSNHdOutt6pVq1bKzc3VokWL5O7urj59+ji+i/fee09DhgzRlClT1KNHD/3yyy/atm2bBg0apKioqGpt85VXXlFMTIyio6M1atQotWzZUj/++KMyMjK0c+dOffDBB1Wu6+bmplWrVmnAgAHq2bOnHn30UUVFRcnb21uHDh3SihUrtHr1ap0+fbrKPkaMGKF7771XY8aMUVxcnA4dOqTExETHyFa52NhYdenSRZGRkWratKkOHTqkhQsXqk2bNmrXrp0kqWvXrpKkRYsWaeTIkXJ3d1eHDh3Utm1bzZo1S3/+85/17bffauDAgWrUqJG+++477dixQ97e3o5HW1WlY8eOuuaaazRlyhSZpqmAgACtXr3a6XR0dfXv318eHh764x//qCeffFJnzpzRsmXLzvt9nat9+/YaOHCgPvroI/Xq1UsRERFOyx966CF5eXnp5ptvVmBgoE6cOKGEhAT5+fk5rhGeNWuWNm7cqJtuuknjx49Xhw4ddObMGWVnZ2vdunV6+eWXL/rSjQuJjo5Wq1atFBsbq44dO6q0tFTp6emaP3++GjZs6HjJQdu2bfX000/rueee0y+//OJ4hNTevXv1/fffX/B4Xary39LcuXMVExMjNzc3devWTR4eHuratau2bt2q1atXKzAwUD4+PlX+z+e//vUvJSUl6fbbb1ebNm2Um5urDz74QO+++65GjRpV4XgBlqrd+5MA65TfgXzuneTlbr/99gvejW6apllQUGBOmzbN7NChg+nh4WH6+fmZXbt2NSdOnGieOHHC0U6SGR8fX+m2Xn/9dbNDhw6mzWYzQ0NDzYSEBPO1116r9A7p22+/vdI+Dh8+bD7wwANmixYtTHd3dzMoKMi86667zO+++840zf+7s/WDDz5wWq/8DvE33njDMe/cO4zXrFljxsTEmC1btjQ9PDzMZs2ambfddpuZmprq1Nfp06fNxx57zGzdurXp7u5uNmvWzLz99tvNffv2OW3rL3/5S4X6JZnPPvus07xdu3aZd911l9msWTPT3d3dbNGihfn73//efPnllyv9Ds6Vm5trPvfcc+Z1111nNmzY0HR3dzdbt25t3nvvveb//u//OtpVdjd6aWmpmZiYaIaGhpqenp5mZGSkuXnz5gp3o8+fP9+86aabzCZNmpgeHh5m69atzQcffNDMzs52qmXq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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 6 ---\n", - "Finale Cluster: [[0], [1], [4], [5], [2, 3]]\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAzYAAAJcCAYAAAArVzHJAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA5O0lEQVR4nO3deXRV9bn44TdASMIUBGSUyQlUQKkDxaqAWhTBotVqwSpCbWlRK1InUBGsgnVa9tYqVStgrYhDsVevaLWC9V6hoqK1jtXKIBZRZBBExv37g0V+hoSpJpx85XnWOkuyzz57v+fkJOaTs89OXpZlWQAAACSsWq4HAAAA+KqEDQAAkDxhAwAAJE/YAAAAyRM2AABA8oQNAACQPGEDAAAkT9gAAADJEzYAAEDyhA1UcRMmTIi8vLx48cUXy72+T58+0aZNm1LL2rRpE2effXblD1cJpk+fHnl5efHQQw9tc92zzz67zH2vCHPmzIm8vLy48cYbK3zb5Vm+fHlce+21ccghh0S9evWioKAg2rRpE4MGDYqXX365ZL1Nz4U5c+ZUyhzPP/98jBo1KpYuXVop28+lynqu7GybngN5eXkxffr0MtdnWRZ777135OXlRffu3f+jfdx2220xYcKEMst35Gvzq9oZn68+ffpE3bp1Y926daWWz549O/Ly8qJZs2ZlbvPcc89FXl5e/Nd//VelzvZ1eb7CziZs4GtoypQpceWVV+Z6jEp35ZVXxpQpU3I9xlfy3nvvRefOneO6666LHj16xKRJk+LPf/5zjB49Oj766KM4+OCDY9myZTtllueffz5Gjx79tQybr5u6devG7373uzLLn3322Xjvvfeibt26//G2txQ2Xzc9evSIFStWlPml0fTp06N27dqxcOHCeOutt8pct+m2QNVTI9cDABWvc+fOFbatLMviiy++iKKioq+0nVWrVn3lbWxur732qtDt7Wzr16+Pk08+OT755JOYMWNGdOjQoeS6bt26xYABA2Lq1KmRn5+fwym/us8//zxq1aqV6zG+Vk4//fT4wx/+EL/5zW+iXr16Jct/97vfRdeuXWP58uU5nC4Nm+Jk+vTp8c1vfrNk+fTp06Nv374xbdq0mDZtWrRv377UdY0aNSr1tfqfWLt2beTl5UWNGn4Mg4rkFRv4GirvULTly5fHRRddFG3bto2aNWtGixYtYujQobFy5cpS6+Xl5cV5550X48aNi/322y8KCgpi4sSJERExevTo6NKlSzRo0CDq1asX3/jGN+J3v/tdZFlWZv99+vSJP/7xj9G5c+coLCyM0aNHR0TEggUL4sc//nG0bNkyatasGc2bN49TTz01Pvroo1LbWLt2bVx++eXRvHnzqFevXhx77LHx9ttvl1qnvMM1HnzwwejSpUsUFxdHrVq1Ys8994xBgwaVWmfp0qXx85//PPbcc88oKCiIxo0bxwknnFDmt7MRETfffHO0bds26tSpE127do2ZM2eWWefFF1+M73znO9GgQYMoLCyMzp07xwMPPFBmvc098sgj8dprr8Xw4cO3+INSr169thoFWzrssHv37qUORdqwYUNcc8010a5duygqKor69etHp06d4le/+lVERIwaNSouvvjiiIho27ZtuYc7TZ48Obp27Rq1a9eOOnXqxHHHHRezZ88utd+zzz476tSpE6+99lr07Nkz6tatG8ccc0xERDz11FPRt2/f2GOPPaKwsDD23nvvGDx4cHzyySeltjFq1KjIy8uL119/Pfr16xfFxcXRpEmTGDRoUJlXr37zm9/EUUcdFY0bN47atWtHx44d4/rrr4+1a9du8TGLiDjmmGOiffv2ZZ67mw7l6t27d8my22+/PQ488MCoU6dO1K1bN9q3bx8jRowodbuFCxfG4MGDY4899oiaNWtG27ZtY/To0WUOc6oo/fr1i4iISZMmlSxbtmxZPPzww2We75usWbMmrrnmmmjfvn0UFBTE7rvvHgMHDoyPP/64ZJ02bdrE66+/Hs8++2zJc2Dzr7Ht+dqMiLj77rvjwAMPjMLCwmjQoEGcfPLJ8eabb5ZZb8KECdGuXbsoKCiI/fbbL+65557/eP4dcdBBB8Vuu+1W6jm+YcOGeO6556J79+7RrVu3mDZtWqn9z5gxI7p37x55eXnx7rvvxsCBA2OfffaJWrVqRYsWLeLEE0+M1157rdR+Nh3C9/vf/z5+/vOfR4sWLaKgoCDefffdHbr/wLb5VQEkYv369eX+kLT5D2bl+fzzz6Nbt27xwQcfxIgRI6JTp07x+uuvx8iRI+O1116Lp59+OvLy8krWf+SRR+K5556LkSNHRtOmTaNx48YRsfG9J4MHD45WrVpFRMTMmTPj/PPPjwULFsTIkSNL7fPll1+ON998M6644opo27Zt1K5dOxYsWBCHHnporF27tmSOxYsXx5NPPhlLliyJJk2alNx+xIgR8a1vfSvuuuuuWL58eVx66aVx4oknxptvvhnVq1cv937OmDEjTj/99Dj99NNj1KhRUVhYGHPnzo1nnnmmZJ3PPvssjjjiiJgzZ05ceuml0aVLl1ixYkX89a9/jX//+9+lfjv7m9/8Jtq3bx+33HJLRGw89O2EE06I999/P4qLiyMiYtq0aXH88cdHly5dYty4cVFcXBz3339/nH766fH5559v9b1Of/7znyMi4qSTTtrGZ/Cru/7662PUqFFxxRVXxFFHHRVr166Nt956q+Sws3POOSc+/fTT+PWvfx1//OMfS95fsP/++0dExJgxY+KKK66IgQMHxhVXXBFr1qyJG264IY488sh44YUXStaL2PgD4He+850YPHhwXHbZZSXP2/feey+6du0a55xzThQXF8ecOXPi5ptvjiOOOCJee+21Mq9MnXLKKXH66afHD3/4w5IAjNj4A/Mm7733XvTv378k2F999dW49tpr46233iq13uYuuOCC6Nu3b/zlL3+JY489tmT51KlT47333it5D8X9998fQ4YMifPPPz9uvPHGqFatWrz77rvxxhtvlNxm4cKFcdhhh0W1atVi5MiRsddee8WMGTPimmuuiTlz5sT48eN3+PO1LfXq1YtTTz017r777hg8eHBEbIycatWqxemnn17ynN1kw4YN0bdv33juuefikksuicMPPzzmzp0bV111VXTv3j1efPHFKCoqiilTpsSpp54axcXFcdttt0VEREFBQaltbc/X5tixY2PEiBHRr1+/GDt2bCxevDhGjRoVXbt2jVmzZsU+++wTERt/qB84cGD07ds3brrppli2bFmMGjUqVq9eHdWqVdvh+b+8zfHjx2/1669atWpx1FFHxdNPPx3r1q2LGjVqxCuvvBJLliyJbt26xfr16+Oqq64qWX/mzJmxatWqkld6Pvzww2jYsGFcd911sfvuu8enn34aEydOjC5dusTs2bOjXbt2pfY3fPjw6Nq1a4wbNy6qVasWjRs33u77D2ynDKjSxo8fn0XEVi+tW7cudZvWrVtnAwYMKPl47NixWbVq1bJZs2aVWu+hhx7KIiJ7/PHHS5ZFRFZcXJx9+umnW51r/fr12dq1a7Orr746a9iwYbZhw4ZS+69evXr29ttvl7rNoEGDsvz8/OyNN97Y4nanTZuWRUR2wgknlFr+wAMPZBGRzZgxo2TZgAEDSt33G2+8MYuIbOnSpVvc/tVXX51FRPbUU09tcZ33338/i4isY8eO2bp160qWv/DCC1lEZJMmTSpZ1r59+6xz587Z2rVrS22jT58+WbNmzbL169dvcT/HH398FhHZF198scV1vmzTc+H9998vWbb553qTbt26Zd26dSs1z0EHHbTV7d9www1ltp9lWTZv3rysRo0a2fnnn19q+WeffZY1bdo0O+2000qWDRgwIIuI7O67797qvjZs2JCtXbs2mzt3bhYR2Z/+9KeS66666qosIrLrr7++1G2GDBmSFRYWlnqufdmm5+Q999yTVa9evdRzePPnyvr167M999wz69u3b6lt9OrVK9trr71K9nHeeedl9evX3+p9GTx4cFanTp1s7ty5pZZvej6+/vrrW739jtj0HJg1a1bJ18o//vGPLMuy7NBDD83OPvvsLMuy7IADDij1+Z80aVIWEdnDDz9canuzZs3KIiK77bbbSpZtfttNtvdrc8mSJVlRUVGZ9ebNm5cVFBRk/fv3z7Js4+egefPm2Te+8Y1Sn9M5c+Zk+fn5pT5fOzL/xIkTs+rVq2cTJ04s9zH8sltuuSWLiOz555/PsizLbrrppqxZs2ZZlmXZG2+8UerxHT16dBYRW/z+tW7dumzNmjXZPvvsk1144YVlHrejjjqq1Po7cv+B7ePXAZCIe+65J2bNmlXmcsQRR2zzto899lh06NAhDjrooFi3bl3J5bjjjiv37EpHH3107LbbbmW288wzz8Sxxx4bxcXFUb169cjPz4+RI0fG4sWLY9GiRaXW7dSpU+y7776llk2dOjV69OgR++233zZn/s53vlNmexERc+fO3eJtDj300IiIOO200+KBBx6IBQsWlFln6tSpse+++5b6Lf2W9O7du9SrQ5vP8O6778Zbb70VZ5xxRkREqcf2hBNOiH//+9/lHqKTC4cddli8+uqrMWTIkHjyySd36D0YTz75ZKxbty7OOuusUvexsLAwunXrVu7ZuU455ZQyyxYtWhQ/+clPomXLllGjRo3Iz8+P1q1bR0SUe4hSec+BL774otRzbfbs2fGd73wnGjZsWPKcPOuss2L9+vXxzjvvbPE+VatWLc4777x47LHHYt68eRGx8dWfJ554IoYMGVLyCuZhhx0WS5cujX79+sWf/vSnMofNRWz8+urRo0c0b9681OPTq1eviNj4hv4t2bBhQ6nbrF+/fovrbq5bt26x1157xd133x2vvfZazJo1a4uHoT322GNRv379OPHEE0vt76CDDoqmTZuW+znckm19bc6YMSNWrVpV5tWSli1bxtFHHx1/+ctfIiLi7bffjg8//DD69+9f6hXj1q1bx+GHH/4fz7/peXrWWWdt8758+X02m/7brVu3iIjYb7/9onHjxiWHo02fPj2aNGlS8v1r3bp1MWbMmNh///2jZs2aUaNGjahZs2b885//LPf5vPnXxI7cf2D7CBtIxH777ReHHHJImcumQ6K25qOPPoq///3vkZ+fX+pSt27dyLKszA9r5Z3m9IUXXoiePXtGRMSdd94Z//d//xezZs2Kyy+/PCI2nhxgW9v4+OOPY4899tiu+9uwYcNSH286HGbz/XzZUUcdFY888kjJDzV77LFHdOjQodT7ECpyhk3vC7rooovKPLZDhgyJiCj3B+FNNh3S9/7772/XPF/F8OHD48Ybb4yZM2dGr169omHDhnHMMcds8TTiX7bpfh566KFl7ufkyZPL3MdatWqVekN7xMYf4Hv27Bl//OMf45JLLom//OUv8cILL5S8Z6m8z+u2Hv958+bFkUceGQsWLIhf/epX8dxzz8WsWbPiN7/5zRa3+WWDBg2KoqKiGDduXERsPPSwqKioVByceeaZcffdd8fcuXPjlFNOicaNG0eXLl3iqaeeKvX4PProo2UemwMOOCAitv4cuPrqq0vdZkdOiJGXlxcDBw6Me++9N8aNGxf77rtvHHnkkeWu+9FHH8XSpUujZs2aZeZcuHDhVmfc3LY+L4sXL46I8r8HNG/evOT6Tf9t2rRpmfU2X1aR839Zx44do1GjRjFt2rSS99dsCpuIjd9Tpk+fHqtXr44ZM2aUOhvasGHD4sorr4yTTjopHn300fjb3/4Ws2bNigMPPLDc597mj8eO3H9g+3iPDewCGjVqFEVFRVt8z0GjRo1Kffzl3x5ucv/990d+fn489thjUVhYWLL8kUceKXeb5W1j9913jw8++GAHJt9xffv2jb59+8bq1atj5syZMXbs2Ojfv3+0adMmunbtWqEzbHrchg8fHt/97nfLXWfz4+y/7Ljjjos77rgjHnnkkbjsssv+oxkKCwtj9erVZZZ/8sknpT6vNWrUiGHDhsWwYcNi6dKl8fTTT8eIESPiuOOOi/nz52/1BAWbtvPQQw+VvMKyNeV97v/xj3/Eq6++GhMmTIgBAwaULN/0Bur/xCOPPBIrV66MP/7xj6XmeuWVV7br9sXFxTFgwIC466674qKLLorx48dH//79o379+qXWGzhwYAwcODBWrlwZf/3rX+Oqq66KPn36xDvvvBOtW7eORo0aRadOneLaa68tdz/Nmzff4gw//vGPo0+fPiUfb/5+lm05++yzY+TIkTFu3Lgt7j9i4+ewYcOG8cQTT5R7/Vc5PfTmNoXPv//97zLXffjhhyXPp03rLVy4sMx6my+rrPnz8vKiW7du8cQTT8QLL7wQS5cuLRU23bp1i1GjRsWMGTPiiy++KBU29957b5x11lkxZsyYUtv85JNPyjyHNu3ry3bk/gPbR9jALqBPnz4xZsyYaNiwYbRt2/Y/2samU5N++dCsVatWxe9///vt3kavXr3i97//fbz99ttb/YG/IhQUFES3bt2ifv368eSTT8bs2bOja9eu0atXrxg5cmQ888wzcfTRR3+lfbRr1y722WefePXVV8v8cLM9+vbtGx07doyxY8dGnz59yj0z2pNPPhlHHnnkFsOjTZs28fe//73UsnfeeSfefvvtMsG6Sf369ePUU0+NBQsWxNChQ2POnDmx//77b/FVseOOOy5q1KgR7733XrmHmG2PTT/Ubf6D+29/+9v/aHtb2maWZXHnnXdu9zZ+9rOfxW233RannnpqLF26NM4777wtrlu7du3o1atXrFmzJk466aR4/fXXo3Xr1tGnT594/PHHY6+99ir3EM6tad68+VbDZ1tatGgRF198cbz11lulgnFzffr0ifvvvz/Wr18fXbp02eo2CwoKtvlq19Z07do1ioqK4t57743vfe97Jcs/+OCDeOaZZ+LUU0+NiI1fP82aNYtJkybFsGHDSj6fc+fOjeeff77U47Ij8++oHj16xMMPPxw33HBDNG7cuNShst26dYvFixfHr3/965J1N8nLyyvzfP6f//mfWLBgQey9997b3O+O3H9g+wgb2AUMHTo0Hn744TjqqKPiwgsvjE6dOsWGDRti3rx58ec//zl+/vOfb/OHhd69e8fNN98c/fv3jx//+MexePHiuPHGG3foN8xXX311TJ06NY466qgYMWJEdOzYMZYuXRpPPPFEDBs2rNQZyf4TI0eOjA8++CCOOeaY2GOPPWLp0qXxq1/9KvLz80t+Czt06NCYPHly9O3bNy677LI47LDDYtWqVfHss89Gnz59dvgP7/32t7+NXr16xXHHHRdnn312tGjRIj799NN488034+WXX44HH3xwi7etXr16TJkyJXr27Bldu3aNn/70p9GjR4+oXbt2zJ07Nx566KF49NFHY8mSJVvcxplnnhk/+MEPYsiQIXHKKafE3Llz4/rrr4/dd9+91HonnnhidOjQIQ455JDYfffdY+7cuXHLLbdE69atS85Q1bFjx4iI+NWvfhUDBgyI/Pz8aNeuXbRp0yauvvrquPzyy+Nf//pXHH/88bHbbrvFRx99FC+88ELUrl275HTeW9K+ffvYa6+94rLLLossy6JBgwbx6KOPljqka0d9+9vfjpo1a0a/fv3ikksuiS+++CJuv/32rT5em9t3333j+OOPj6lTp8YRRxwRBx54YKnrf/SjH0VRUVF861vfimbNmsXChQtj7NixUVxcXPKerquvvjqeeuqpOPzww+NnP/tZtGvXLr744ouYM2dOPP744zFu3LjtPvzxP3Hddddtc53vf//78Yc//CFOOOGEuOCCC+Kwww6L/Pz8+OCDD2LatGnRt2/fOPnkkyNi4/Pg/vvvj8mTJ8eee+4ZhYWFJc+N7VG/fv248sorY8SIEXHWWWdFv379YvHixTF69OgoLCwsOdNYtWrV4he/+EWcc845cfLJJ8ePfvSjWLp0aYwaNarMoVg7Mv8999wTgwYNirvvvnuH3mez6YxwX9ahQ4do2LBhTJkyJVq0aFHytRKxMbYmTJgQ7du3j06dOsVLL70UN9xww3Z/rnfk/gPbKccnLwC24ctnQSpP7969t3lWtCzLshUrVmRXXHFF1q5du6xmzZpZcXFx1rFjx+zCCy/MFi5cWLJeRGTnnntuufu6++67s3bt2mUFBQXZnnvumY0dOzb73e9+V+6Zunr37l3uNubPn58NGjQoa9q0aZafn581b948O+2007KPPvooy7L/fwahBx98sNTtNp2pbPz48SXLNj/T1WOPPZb16tUra9GiRVazZs2scePG2QknnJA999xzpba1ZMmS7IILLshatWqV5efnZ40bN8569+6dvfXWW6X2dcMNN5SZPyKyq666qtSyV199NTvttNOyxo0bZ/n5+VnTpk2zo48+Ohs3bly5j8Hmli5dmv3iF7/IvvGNb2R16tTJ8vPzs1atWmU/+MEPsv/7v/8rWa+8s6Jt2LAhu/7667M999wzKywszA455JDsmWeeKXNWtJtuuik7/PDDs0aNGmU1a9bMWrVqlf3whz/M5syZU2qW4cOHZ82bN8+qVauWRUQ2bdq0kuseeeSRrEePHlm9evWygoKCrHXr1tmpp56aPf300yXrDBgwIKtdu3a59/ONN97Ivv3tb2d169bNdtttt+x73/teNm/evDKP6aazon388celbl/e/X/00UezAw88MCssLMxatGiRXXzxxdnUqVPLzL75c+XLJkyYkEVEdv/995e5buLEiVmPHj2yJk2aZDVr1ix5vv79738vtd7HH3+c/exnP8vatm2b5efnZw0aNMgOPvjg7PLLL89WrFhR7n7/E9v6frBJeWc2W7t2bXbjjTeWPF516tTJ2rdvnw0ePDj75z//WbLenDlzsp49e2Z169YtddbFHfnazLIsu+uuu7JOnTqVfL/p27dvuWeIu+uuu7J99tknq1mzZrbvvvtmd999d7mfr+2df9NjtPk8W9O0adMsIrJbb721zHUnnXRSFhHZGWecUWr5kiVLsh/+8IdZ48aNs1q1amVHHHFE9txzz5X52tvS47aj9x/Ytrws244/ggEAX1OnnHJKzJw5M+bMmVPmb+kAkA6HogGwy1m9enW8/PLL8cILL8SUKVPi5ptvFjUAifOKDQC7nDlz5kTbtm2jXr160b9//7j11ltLnRgDgPQIGwAAIHn+QCcAAJA8YQMAACRP2AAAAMmrcmdF27BhQ3z44YdRt27dkr/CCwAA7HqyLIvPPvssmjdvHtWqbf01mSoXNh9++GG0bNky12MAAABVxPz582OPPfbY6jpVLmzq1q0bERuHr1evXo6nAQAAcmX58uXRsmXLkkbYmioXNpsOP6tXr56wAQAAtustKk4eAAAAJE/YAAAAyRM2AABA8oQNAACQPGEDAAAkT9gAAADJEzYAAEDyhA0AAJA8YQMAACRP2AAAAMkTNgAAQPKEDQAAkDxhAwAAJE/YAAAAyRM2AABA8oQNAACQPGEDAAAkT9gAAADJEzYAAEDyhA0AAJA8YQMAACSvRq4HgPJkWRar1q7P9RgAX0lRfvXIy8vL9RgAuwRhQ5WTZVmcOm5GvDR3Sa5HAfhKDmm9Wzz4k67iBmAncCgaVc6qtetFDfC18OLcJV59BthJvGJDlfbiFcdGrZrVcz0GwA75fM36OOSap3M9BsAuRdhQpdWqWT1q1fQ0BQBg6xyKBgAAJE/YAAAAyRM2AABA8oQNAACQPGEDAAAkT9gAAADJEzYAAEDyhA0AAJA8YQMAACRP2AAAAMkTNgAAQPKEDQAAkDxhAwAAJE/YAAAAyRM2AABA8oQNAACQPGEDAAAkT9gAAADJEzYAAEDyhA0AAJA8YQMAACRP2AAAAMkTNgAAQPJ2OGz++te/xoknnhjNmzePvLy8eOSRR0pdn2VZjBo1Kpo3bx5FRUXRvXv3eP311ytqXgAAgDJ2OGxWrlwZBx54YNx6663lXn/99dfHzTffHLfeemvMmjUrmjZtGt/+9rfjs88++8rDAgAAlKfGjt6gV69e0atXr3Kvy7Isbrnllrj88svju9/9bkRETJw4MZo0aRL33XdfDB48+KtNCwAAUI4KfY/N+++/HwsXLoyePXuWLCsoKIhu3brF888/X+5tVq9eHcuXLy91AQAA2BEVGjYLFy6MiIgmTZqUWt6kSZOS6zY3duzYKC4uLrm0bNmyIkcCAAB2AZVyVrS8vLxSH2dZVmbZJsOHD49ly5aVXObPn18ZIwEAAF9jO/wem61p2rRpRGx85aZZs2YlyxctWlTmVZxNCgoKoqCgoCLHAAAAdjEV+opN27Zto2nTpvHUU0+VLFuzZk08++yzcfjhh1fkrgAAAErs8Cs2K1asiHfffbfk4/fffz9eeeWVaNCgQbRq1SqGDh0aY8aMiX322Sf22WefGDNmTNSqVSv69+9foYMDAABsssNh8+KLL0aPHj1KPh42bFhERAwYMCAmTJgQl1xySaxatSqGDBkSS5YsiS5dusSf//znqFu3bsVNDQAA8CU7HDbdu3ePLMu2eH1eXl6MGjUqRo0a9VXmAgAA2G6VclY0AACAnUnYAAAAyRM2AABA8oQNAACQPGEDAAAkT9gAAADJEzYAAEDyhA0AAJA8YQMAACRP2AAAAMkTNgAAQPKEDQAAkDxhAwAAJE/YAAAAyRM2AABA8oQNAACQPGEDAAAkT9gAAADJEzYAAEDyhA0AAJA8YQMAACSvRq4HAKCsLMti1dr1uR6D/9Dna9aV+2/SU5RfPfLy8nI9BrAdhA1AFZNlWZw6bka8NHdJrkehAhxyzV9yPQJfwSGtd4sHf9JV3EACHIoGUMWsWrte1EAV8eLcJV49hUR4xQagCnvximOjVs3quR4Ddjmfr1kfh1zzdK7HAHaAsAGowmrVrB61avpWDQDb4lA0AAAgecIGAABInrABAACSJ2wAAIDkCRsAACB5wgYAAEiesAEAAJInbAAAgOQJGwAAIHnCBgAASJ6wAQAAkidsAACA5AkbAAAgecIGAABInrABAACSJ2wAAIDkCRsAACB5wgYAAEiesAEAAJInbAAAgOQJGwAAIHnCBgAASJ6wAQAAkidsAACA5AkbAAAgecIGAABInrABAACSJ2wAAIDkCRsAACB5wgYAAEiesAEAAJInbAAAgOQJGwAAIHnCBgAASJ6wAQAAkidsAACA5AkbAAAgecIGAABInrABAACSJ2wAAIDkCRsAACB5wgYAAEiesAEAAJInbAAAgOQJGwAAIHnCBgAASJ6wAQAAkidsAACA5AkbAAAgecIGAABInrABAACSJ2wAAIDkCRsAACB5wgYAAEiesAEAAJInbAAAgOQJGwAAIHnCBgAASJ6wAQAAklfhYbNu3bq44oorom3btlFUVBR77rlnXH311bFhw4aK3hUAAEBERNSo6A3+8pe/jHHjxsXEiRPjgAMOiBdffDEGDhwYxcXFccEFF1T07gAAACo+bGbMmBF9+/aN3r17R0REmzZtYtKkSfHiiy9W9K4AAAAiohIORTviiCPiL3/5S7zzzjsREfHqq6/G//7v/8YJJ5xQ0bsCAACIiEp4xebSSy+NZcuWRfv27aN69eqxfv36uPbaa6Nfv37lrr969epYvXp1ycfLly+v6JEAAICvuQp/xWby5Mlx7733xn333Rcvv/xyTJw4MW688caYOHFiueuPHTs2iouLSy4tW7as6JEAAICvuQoPm4svvjguu+yy+P73vx8dO3aMM888My688MIYO3ZsuesPHz48li1bVnKZP39+RY8EAAB8zVX4oWiff/55VKtWupeqV6++xdM9FxQUREFBQUWPAQAA7EIqPGxOPPHEuPbaa6NVq1ZxwAEHxOzZs+Pmm2+OQYMGVfSuAAAAIqISwubXv/51XHnllTFkyJBYtGhRNG/ePAYPHhwjR46s6F0BAABERCWETd26deOWW26JW265paI3DQAAUK4KP3kAAADAziZsAACA5AkbAAAgecIGAABInrABAACSJ2wAAIDkCRsAACB5wgYAAEiesAEAAJInbAAAgOQJGwAAIHnCBgAASJ6wAQAAkidsAACA5AkbAAAgecIGAABInrABAACSJ2wAAIDkCRsAACB5wgYAAEiesAEAAJInbAAAgOQJGwAAIHnCBgAASJ6wAQAAkidsAACA5AkbAAAgecIGAABInrABAACSJ2wAAIDkCRsAACB5wgYAAEiesAEAAJInbAAAgOQJGwAAIHnCBgAASJ6wAQAAkidsAACA5AkbAAAgecIGAABInrABAACSJ2wAAIDkCRsAACB5wgYAAEiesAEAAJInbAAAgOQJGwAAIHnCBgAASJ6wAQAAkidsAACA5AkbAAAgecIGAABInrABAACSJ2wAAIDkCRsAACB5wgYAAEiesAEAAJInbAAAgOQJGwAAIHnCBgAASJ6wAQAAkidsAACA5AkbAAAgecIGAABInrABAACSJ2wAAIDkCRsAACB5wgYAAEiesAEAAJInbAAAgOQJGwAAIHnCBgAASJ6wAQAAkidsAACA5AkbAAAgecIGAABInrABAACSJ2wAAIDkCRsAACB5wgYAAEiesAEAAJInbAAAgOQJGwAAIHnCBgAASJ6wAQAAkidsAACA5FVK2CxYsCB+8IMfRMOGDaNWrVpx0EEHxUsvvVQZuwIAAIgaFb3BJUuWxLe+9a3o0aNHTJ06NRo3bhzvvfde1K9fv6J3BQAAEBGVEDa//OUvo2XLljF+/PiSZW3atKno3QAAAJSo8EPR/vu//zsOOeSQ+N73vheNGzeOzp07x5133rnF9VevXh3Lly8vdQEAANgRFR42//rXv+L222+PffbZJ5588sn4yU9+Ej/72c/innvuKXf9sWPHRnFxccmlZcuWFT0SAADwNVfhYbNhw4b4xje+EWPGjInOnTvH4MGD40c/+lHcfvvt5a4/fPjwWLZsWcll/vz5FT0SAADwNVfhYdOsWbPYf//9Sy3bb7/9Yt68eeWuX1BQEPXq1St1AQAA2BEVHjbf+ta34u233y617J133onWrVtX9K4AAAAiohLC5sILL4yZM2fGmDFj4t1334377rsv7rjjjjj33HMrelcAAAARUQlhc+ihh8aUKVNi0qRJ0aFDh/jFL34Rt9xy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yy67rNTynj17xvPPP19m/dWrV8fq1atLPl62bFlERCxfvryiR0vDmpURq7ON/16+PKLm+tzOw87nObDL+3zNutiw+vOI2Pi9cF3NCv9WTQI+X/t5rF+18et/+fLlsS5/XY4nYmfzHMBz4P83QZZl21y3wv9v+cknn8T69eujSZMmpZY3adIkFi5cWGb9sWPHxujRo8ssb9myZUWPlp7rmud6AnLNc2CX1+yWXE9AVdDsp81yPQI55jnArv4c+Oyzz6K4uHir61TarwHz8vJKfZxlWZllERHDhw+PYcOGlXy8YcOG+PTTT6Nhw4blrg8AAOwasiyLzz77LJo33/Yveys8bBo1ahTVq1cv8+rMokWLyryKExFRUFAQBQUFpZbVr1+/oscCAAAStK1Xajap8JMH1KxZMw4++OB46qmnSi1/6qmn4vDDD6/o3QEAAFTOoWjDhg2LM888Mw455JDo2rVr3HHHHTFv3rz4yU9+Uhm7AwAAdnGVEjann356LF68OK6++ur497//HR06dIjHH388WrduXRm7AwAAdnF52facOw0AAKAKq5Q/0AkAALAzCRsAACB5wgYAAEiesKnC7rrrrsjLy4s6derkehR2gunTp0deXl65l5kzZ+Z6PHaSzz77LC655JLo2bNn7L777pGXlxejRo3K9VjsRCtWrIihQ4dG8+bNo7CwMA466KC4//77cz0WO9EzzzwTgwYNivbt20ft2rWjRYsW0bdv33jppZdyPRo7ySuvvBK9e/eOVq1aRVFRUTRo0CC6du0a9957b65Hq9Iq5axofHULFiyIiy66KJo3bx7Lli3L9TjsRGPGjIkePXqUWtahQ4ccTcPOtnjx4rjjjjviwAMPjJNOOinuuuuuXI/ETvbd7343Zs2aFdddd13su+++cd9990W/fv1iw4YN0b9//1yPx05w++23x+LFi+OCCy6I/fffPz7++OO46aab4pvf/GY8+eSTcfTRR+d6RCrZ0qVLo2XLltGvX79o0aJFrFy5Mv7whz/EmWeeGXPmzIkrrrgi1yNWSc6KVkWdeOKJkZeXFw0aNIiHHnooVqxYkeuRqGTTp0+PHj16xIMPPhinnnpqrschRzZ9S87Ly4tPPvkkdt9997jqqqu8arOLePzxx6N3794lMbNJz5494/XXX4958+ZF9erVczghO8OiRYuicePGpZatWLEi9t577+jQoUM8/fTTOZqMXPvmN78ZH374YcybNy/Xo1RJDkWrgu6999549tln47bbbsv1KMBOtunwQ3ZNU6ZMiTp16sT3vve9UssHDhwYH374Yfztb3/L0WTsTJtHTUREnTp1Yv/994/58+fnYCKqikaNGkWNGg642hJhU8UsWrQohg4dGtddd13sscceuR6HHDj33HOjRo0aUa9evTjuuOPif//3f3M9ErCT/OMf/4j99tuvzA8unTp1KrmeXdOyZcvi5ZdfjgMOOCDXo7ATbdiwIdatWxcff/xx3HbbbfHkk0/GpZdemuuxqizJV8UMGTIk2rVrFz/96U9zPQo7WXFxcVxwwQXRvXv3aNiwYbz77rtxww03RPfu3eN//ud/4rjjjsv1iEAlW7x4cey5555lljdo0KDkenZN5557bqxcuTIuv/zyXI/CTjRkyJD47W9/GxERNWvWjP/6r/+KwYMH53iqqkvYVCEPP/xwPProozF79myHouyCOnfuHJ07dy75+Mgjj4yTTz45OnbsGJdccomwgV3E1r7/+3/DrunKK6+MP/zhD/HrX/86Dj744FyPw040YsSIOOecc2LRokXx6KOPxnnnnRcrV66Miy66KNejVUnCpopYsWJFnHvuuXH++edH8+bNY+nSpRERsWbNmojYeHaM/Pz8qF27dg6nZGerX79+9OnTJ8aNGxerVq2KoqKiXI8EVKKGDRuW+6rMp59+GhH//5Ubdh2jR4+Oa665Jq699to477zzcj0OO1mrVq2iVatWERFxwgknRETE8OHDY8CAAbH77rvncrQqyXtsqohPPvkkPvroo7jppptit912K7lMmjQpVq5cGbvttlucccYZuR6THPjyWbKAr7eOHTvGm2++GevWrSu1/LXXXosIp37f1YwePTpGjRoVo0aNihEjRuR6HKqAww47LNatWxf/+te/cj1KleQVmyqiadOmMW3atDLLr7vuunj22Wdj6tSp0ahRoxxMRi4tWbIkHnvssTjooIOisLAw1+MAlezkk0+OO++8Mx5++OE4/fTTS5ZPnDgxmjdvHl26dMnhdOxMv/jFL2LUqFFxxRVXxFVXXZXrcagipk2bFtWqVSv3vXgImyqjsLAwunfvXmb5hAkTonr16uVex9dL//79o1WrVnHIIYdEo0aN4p///GfcdNNN8dFHH8WECRNyPR470dSpU2PlypXx2WefRUTEG2+8EQ899FBEbDwUoVatWrkcj0rUq1ev+Pa3vx0//elPY/ny5bH33nvHpEmT4oknnoh7773X37DZRdx0000xcuTIOP7446N3794xc+bMUtd/85vfzNFk7Cw//vGPo169enHYYYdFkyZN4pNPPokHH3wwJk+eHBdffLHD0LbAH+is4s4++2x/oHMXcd1118XkyZPj/fffjxUrVkSDBg3iiCOOiOHDh8ehhx6a6/HYidq0aRNz584t97r3338/2rRps3MHYqdasWJFXH755fHAAw/Ep59+Gu3bt4/hw4fH97///VyPxk7SvXv3ePbZZ7d4vR/dvv7Gjx8f48ePjzfffDOWLl0aderUiQMPPDDOOeec+MEPfpDr8aosYQMAACTPyQMAAIDkCRsAACB5wgYAAEiesAEAAJInbAAAgOQJGwAAIHnCBgAASJ6wAQAAkidsAACA5AkbAAAgecIGAABInrABAACS9/8AAK7uabJW2rkAAAAASUVORK5CYII=\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "#Clusteranalyse\n", - "\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import random\n", - "from scipy.cluster.hierarchy import linkage, dendrogram\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "import pandas as pd\n", - "\n", - "#functions\n", - "def generate_clusters(n_clusters, m_points_per_cluster):\n", - " # Generate random cluster centers\n", - " cluster_centers = np.random.randint(0, 30, size=(n_clusters, 2))\n", - " noise_scale = 1\n", - "\n", - " # Generate points for each cluster\n", - " points = []\n", - " for center in cluster_centers:\n", - " cluster_points = np.random.randint(-5, 5, size=(m_points_per_cluster, 2)) + center\n", - " points.extend(cluster_points)\n", - "\n", - " # Add noise to the points\n", - " noisy_points = points + (np.random.randint(-2, 2, size=(len(points), 2)))\n", - " \n", - " return np.array(noisy_points)\n", - "\n", - "# Anzahl der Datenpunktansammlungen (Cluster)\n", - "num_clusters = 2\n", - "# Anzahl der Datenpunkte pro Cluster\n", - "points_per_cluster = 3\n", - "rangeStart = 1\n", - "rangeEnd = 6\n", - "\n", - "clusters = generate_clusters(num_clusters, points_per_cluster)\n", - "print(clusters)\n", - "X = clusters\n", - "\n", - "# Initialisierung: Jeder Datenpunkt ist ein Cluster\n", - "clusters = [[i] for i in range(X.shape[0])]\n", - "print(clusters)\n", - "\n", - "\n", - "# Schleife für jeden Schritt der hierarchischen Clusteranalyse\n", - "for step in range(X.shape[0] - 1):\n", - " print(f\"\\n--- Schritt {step + 1} ---\")\n", - " print(\"Aktuelle Cluster:\", clusters)\n", - "\n", - " # Berechnung der Abstandsmatrix mit Ward-Methode\n", - " linkage_matrix = linkage(X, 'ward')\n", - "\n", - " # Ausgabe der Abstandsmatrix\n", - " print(\"Abstandsmatrix nach Linkage:\")\n", - " print(linkage_matrix)\n", - "\n", - " # Tabelle mit den Abständen zwischen den Clustern erstellen\n", - " distances = []\n", - " for i in range(len(linkage_matrix)):\n", - " cluster1, cluster2, distance, _ = linkage_matrix[i]\n", - " cluster1, cluster2 = int(cluster1), int(cluster2) # Konvertiere zu ganzzahligen Indizes\n", - " if cluster1 < len(clusters) and cluster2 < len(clusters):\n", - " distances.append([cluster1, cluster2, distance, len(clusters[cluster1]), len(clusters[cluster2])])\n", - "\n", - " # Streudiagramm zeichnen\n", - " colors = ['b', 'g', 'r', 'c', 'm', 'y', 'k']\n", - " plt.figure(figsize=(8, 6))\n", - " for idx, cluster in enumerate(clusters):\n", - " for point_idx in cluster:\n", - " plt.scatter(X[point_idx, 0], X[point_idx, 1], color=colors[idx % len(colors)], label=f'Cluster {idx}')\n", - " plt.title('Hierarchische Clusteranalyse - Schritt {}'.format(step + 1))\n", - " plt.legend()\n", - " plt.show()\n", - "\n", - " # Wenn nur noch ein Cluster übrig ist, breche die Schleife ab\n", - " if len(clusters) == 1:\n", - " break\n", - "\n", - " # Identifiziere die beiden nächsten Cluster\n", - " cluster1, cluster2 = int(linkage_matrix[step][0]), int(linkage_matrix[step][1])\n", - "\n", - " # Überprüfe, ob die Cluster existieren, bevor sie zusammengeführt werden\n", - " if cluster1 < len(clusters) and cluster2 < len(clusters):\n", - " new_cluster = clusters[cluster1] + clusters[cluster2]\n", - " del clusters[max(cluster1, cluster2)]\n", - " del clusters[min(cluster1, cluster2)]\n", - " clusters.append(new_cluster)\n", - "\n", - "# Ausgabe des finalen Clusters\n", - "print(f\"\\n--- Schritt {X.shape[0]} ---\")\n", - "print(\"Finale Cluster:\", clusters)\n", - "\n", - "# Dendrogramm erstellen und anzeigen\n", - "plt.figure(figsize=(10, 7))\n", - "plt.title('Hierarchische Clusteranalyse - Methode: Ward')\n", - "dendrogram(linkage_matrix)\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "7c9c83ed", - "metadata": {}, - "outputs": [ - { - "ename": "ExecutableNotFound", - "evalue": "failed to execute PosixPath('dot'), make sure the Graphviz executables are on your systems' PATH", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/graphviz/backend/execute.py\u001b[0m in \u001b[0;36mrun_check\u001b[0;34m(cmd, input_lines, encoding, quiet, **kwargs)\u001b[0m\n\u001b[1;32m 80\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 81\u001b[0;31m \u001b[0mproc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msubprocess\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcmd\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 82\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mOSError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/opt/anaconda3/lib/python3.9/subprocess.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(input, capture_output, timeout, check, *popenargs, **kwargs)\u001b[0m\n\u001b[1;32m 504\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 505\u001b[0;31m \u001b[0;32mwith\u001b[0m \u001b[0mPopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mpopenargs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mprocess\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 506\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/opt/anaconda3/lib/python3.9/subprocess.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, user, group, extra_groups, encoding, errors, text, umask)\u001b[0m\n\u001b[1;32m 950\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 951\u001b[0;31m self._execute_child(args, executable, preexec_fn, close_fds,\n\u001b[0m\u001b[1;32m 952\u001b[0m \u001b[0mpass_fds\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcwd\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0menv\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/opt/anaconda3/lib/python3.9/subprocess.py\u001b[0m in \u001b[0;36m_execute_child\u001b[0;34m(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session)\u001b[0m\n\u001b[1;32m 1820\u001b[0m \u001b[0merr_msg\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstrerror\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merrno_num\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1821\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mchild_exception_type\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merrno_num\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merr_msg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merr_filename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1822\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mchild_exception_type\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merr_msg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: PosixPath('dot')", - "\nThe above exception was the direct cause of the following exception:\n", - "\u001b[0;31mExecutableNotFound\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m/var/folders/bs/5wndg3791vz7vxsh2h7qj_mw0000gn/T/ipykernel_63053/831696634.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 58\u001b[0m \u001b[0mpoints_per_cluster\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m3\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 59\u001b[0m \u001b[0;31m#Hauptfunktion ausfuehren\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 60\u001b[0;31m \u001b[0mfoo\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmain\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnum_clusters\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mpoints_per_cluster\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 61\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfoo\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 62\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"abc\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/var/folders/bs/5wndg3791vz7vxsh2h7qj_mw0000gn/T/ipykernel_63053/831696634.py\u001b[0m in \u001b[0;36mmain\u001b[0;34m(num_clusters, points_per_cluster)\u001b[0m\n\u001b[1;32m 50\u001b[0m \u001b[0mdotTable\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcreate_dot_table\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mclusters\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 51\u001b[0m \u001b[0mdotTable\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msave\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'table.dot'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 52\u001b[0;31m \u001b[0mdotTable\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrender\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'table'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mformat\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'png'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcleanup\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 53\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 54\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/graphviz/_tools.py\u001b[0m in \u001b[0;36mwrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 169\u001b[0m category=category)\n\u001b[1;32m 170\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 171\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 172\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 173\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mwrapper\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/graphviz/rendering.py\u001b[0m in \u001b[0;36mrender\u001b[0;34m(self, filename, directory, view, cleanup, format, renderer, formatter, neato_no_op, quiet, quiet_view, outfile, engine, raise_if_result_exists, overwrite_source)\u001b[0m\n\u001b[1;32m 120\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilepath\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 121\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 122\u001b[0;31m \u001b[0mrendered\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_render\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 123\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 124\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mcleanup\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/graphviz/_tools.py\u001b[0m in \u001b[0;36mwrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 169\u001b[0m category=category)\n\u001b[1;32m 170\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 171\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 172\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 173\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mwrapper\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/graphviz/backend/rendering.py\u001b[0m in \u001b[0;36mrender\u001b[0;34m(engine, format, filepath, renderer, formatter, neato_no_op, quiet, outfile, raise_if_result_exists, overwrite_filepath)\u001b[0m\n\u001b[1;32m 322\u001b[0m \u001b[0mcmd\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 323\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 324\u001b[0;31m execute.run_check(cmd,\n\u001b[0m\u001b[1;32m 325\u001b[0m \u001b[0mcwd\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfilepath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mparent\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mfilepath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mparent\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mparts\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 326\u001b[0m \u001b[0mquiet\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mquiet\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/graphviz/backend/execute.py\u001b[0m in \u001b[0;36mrun_check\u001b[0;34m(cmd, input_lines, encoding, quiet, **kwargs)\u001b[0m\n\u001b[1;32m 82\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mOSError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 83\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0merrno\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0merrno\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mENOENT\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 84\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mExecutableNotFound\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcmd\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 85\u001b[0m \u001b[0;32mraise\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 86\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mExecutableNotFound\u001b[0m: failed to execute PosixPath('dot'), make sure the Graphviz executables are on your systems' PATH" - ] - } - ], - "source": [ - "#Clusteranalyse\n", - "\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import random\n", - "from scipy.cluster.hierarchy import linkage, dendrogram\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "import pandas as pd\n", - "import graphviz\n", - "\n", - "#functions\n", - "def generate_clusters(n_clusters, m_points_per_cluster):\n", - " # Generate random cluster centers\n", - " cluster_centers = np.random.randint(0, 30, size=(n_clusters, 2))\n", - " noise_scale = 1\n", - "\n", - " # Generate points for each cluster\n", - " points = []\n", - " for center in cluster_centers:\n", - " cluster_points = np.random.randint(-5, 5, size=(m_points_per_cluster, 2)) + center\n", - " points.extend(cluster_points)\n", - "\n", - " # Add noise to the points\n", - " noisy_points = points + (np.random.randint(-2, 2, size=(len(points), 2)))\n", - " \n", - " return np.array(noisy_points)\n", - "\n", - "#def generate_task_definition():\n", - "def save_plot(path, filename):\n", - " plt.savefig(\"{}{}.png\".format(path, filename))\n", - "\n", - "def create_dot_table(array):\n", - " \n", - " dotTable = graphviz.Digraph('dotTable', comment='task definition table')\n", - " \n", - " # Add nodes to the graph for each element in the array\n", - " for i in range(array.shape[0]):\n", - " row_label = f'Row{i+1}'\n", - " dotTable.node(row_label, shape='plaintext', label=f'<
{array[i, 0]}{array[i, 1]}
>')\n", - "\n", - " # Add edges between consecutive rows (if needed)\n", - " for i in range(array.shape[0] - 1):\n", - " dotTable.edge(f'Row{i+1}', f'Row{i+2}')\n", - "\n", - " return dotTable\n", - " \n", - "def main(num_clusters,points_per_cluster):\n", - " clusters = generate_clusters(num_clusters, points_per_cluster)\n", - " dotTable = create_dot_table(clusters)\n", - " dotTable.save('table.dot')\n", - " dotTable.render('table', format='png', cleanup=True)\n", - "\n", - " \n", - "# Anzahl der Datenpunktansammlungen (Cluster)\n", - "num_clusters = 2\n", - "# Anzahl der Datenpunkte pro Cluster\n", - "points_per_cluster = 3\n", - "#Hauptfunktion ausfuehren\n", - "foo = main(num_clusters,points_per_cluster)\n", - "print(foo)\n", - "print(\"abc\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "9fa0e1cf", - "metadata": {}, - "outputs": [], - "source": [ - "print(\"fo\")" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "fe99c316", - "metadata": {}, - "outputs": [ - { - "ename": "ValueError", - "evalue": "all the input array dimensions for the concatenation axis must match exactly, but along dimension 0, the array at index 0 has size 6 and the array at index 1 has size 5", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m/var/folders/bs/5wndg3791vz7vxsh2h7qj_mw0000gn/T/ipykernel_63053/1285465837.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 65\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 66\u001b[0m \u001b[0;31m# Add a new column at the end\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 67\u001b[0;31m \u001b[0mcondensed_distances\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhstack\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mcondensed_distances\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnew_col\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 68\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 69\u001b[0m \u001b[0mnum_clusters\u001b[0m \u001b[0;34m-=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m<__array_function__ internals>\u001b[0m in \u001b[0;36mhstack\u001b[0;34m(*args, **kwargs)\u001b[0m\n", - "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/numpy/core/shape_base.py\u001b[0m in \u001b[0;36mhstack\u001b[0;34m(tup)\u001b[0m\n\u001b[1;32m 343\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0m_nx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconcatenate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marrs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 344\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 345\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0m_nx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconcatenate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marrs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 346\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 347\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m<__array_function__ internals>\u001b[0m in \u001b[0;36mconcatenate\u001b[0;34m(*args, **kwargs)\u001b[0m\n", - "\u001b[0;31mValueError\u001b[0m: all the input array dimensions for the concatenation axis must match exactly, but along dimension 0, the array at index 0 has size 6 and the array at index 1 has size 5" - ] - } - ], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "3e7c446b", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHFCAYAAAAOmtghAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA3LElEQVR4nO3de1xVdb7/8ffmIqDATkhuioJZaojmiCXeumCYlj8t64xdrSmPTqaWXQyn0WoqzLFJrUbTLG+Tds6QlzILpwRrBk0UlczMEhMRwisQ6pbL+v1h7NNWQLYCm718PR+P9XjM/q7vd63Pl+/kfj/WWntvi2EYhgAAAEzCw9UFAAAA1CfCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDXCJ2rRpk26//Xa1bdtWPj4+Cg0NVXx8vJ588kl7n7///e9auHCh64o8D4vFoueff97+euHChbJYLNq3b5/LagLgeoQb4BK0Zs0a9e7dW8XFxZo+fbpSU1M1a9Ys9enTRx988IG9X1MPN2e79dZblZGRofDwcFeXAsCFvFxdAIDGN336dEVHR+uzzz6Tl9f//TMwYsQITZ8+/YKOWVZWJovF4nC8xtaqVSu1atWq0c9rGIZOnTolPz+/Rj83gHNx5Qa4BB05ckSXX355tUHEw+PMPwtRUVHauXOn0tPTZbFYZLFYFBUVJUlKS0uTxWLRkiVL9OSTT6p169by8fHRDz/8IEn617/+pYSEBAUGBqp58+bq06ePPv/8c4fzPPjgg/bj/dbzzz8vi8Xi0FZcXKxRo0YpODhY/v7+uuWWW/T999+fM7a621Lr1q3T0KFD1aZNG/n6+qpDhw4aPXq0Dh8+fM74VatWqWvXrvLx8VH79u01a9asauuxWCx67LHHNHfuXHXu3Fk+Pj5atGiRJOmFF17Qddddp6CgIAUGBup3v/udFixYoLN/ozgqKkq33XabPv74Y3Xv3l1+fn7q3LmzPv74Y/tcOnfurBYtWujaa69VZmbmOfUCqB5XboBLUHx8vN555x2NHz9e9957r373u9/J29vboc+KFSt05513ymq16u9//7skycfHx6FPUlKS4uPjNXfuXHl4eCgkJERLly7VAw88oKFDh2rRokXy9vbW22+/rYEDB+qzzz5TQkKCU7UahqFhw4bpP//5j6ZMmaKePXvq3//+twYNGlSn8T/++KPi4+P1yCOPyGq1at++ffrb3/6mvn37Kjs72z7vTz/9VHfccYf69++vDz74QOXl5ZoxY4Z+/vnnao+7cuVKffnll5oyZYrCwsIUEhIiSdq3b59Gjx6ttm3bSpI2btyocePGKS8vT1OmTHE4xvbt25WUlKQ//elPslqteuGFF3THHXcoKSlJn3/+uV555RVZLBZNmjRJt912m3Jycrg6BNSFAeCSc/jwYaNv376GJEOS4e3tbfTu3dtITk42SkpK7P1iYmKM66+//pzx69evNyQZ/fv3d2gvLS01goKCjCFDhji0V1RUGN26dTOuvfZae9vIkSONdu3anXPsqVOnGr/9p2nt2rWGJGPWrFkO/V5++WVDkjF16lR723vvvWdIMnJycqqdd2VlpVFWVmb89NNPhiRj1apV9n09e/Y0IiMjDZvNZm8rKSkxgoODjbP/qZRkWK1W4+jRo9We57fzLisrM1588UUjODjYqKystO9r166d4efnZxw4cMDetm3bNkOSER4ebpSWltrbV65caUgyVq9eXev5AJzBbSngEhQcHKwvv/xSmzdv1rRp0zR06FB9//33SkpKUmxsbLW3bKozfPhwh9f/+c9/dPToUY0cOVLl5eX2rbKyUrfccos2b96s0tJSp2pdv369JOnee+91aL/nnnvqNL6wsFBjxoxRZGSkvLy85O3trXbt2kmSdu3aJUkqLS1VZmamhg0bpmbNmtnH+vv7a8iQIdUe96abblLLli3Paf/iiy80YMAAWa1WeXp6ytvbW1OmTNGRI0dUWFjo0Peaa65R69at7a87d+4sSbrhhhvUvHnzc9p/+umnOs0ZuNRxWwq4hMXFxSkuLk7SmQeCJ02apNdff13Tp0+v04PFZ38qqeoWzp133lnjmKNHj6pFixZ1rvHIkSPy8vJScHCwQ3tYWNh5x1ZWVioxMVEHDx7Un//8Z8XGxqpFixaqrKxUr169dPLkSUnSsWPHZBiGQkNDzzlGdW3SuXOXpK+//lqJiYm64YYbNH/+fLVp00bNmjXTypUr9fLLL9vPVyUoKMjhdVWwqqn91KlT550zAMINgF95e3tr6tSpev311/XNN9/UaczZD9pefvnlkqQ33nhDvXr1qnZMVVjw9fWVzWY7Z//ZV42Cg4NVXl6uI0eOOAScgoKC89b3zTffaPv27Vq4cKFGjhxpb6968LlKy5YtZbFYqn2+pqbznD13SVq+fLm8vb318ccfy9fX196+cuXK89YKoP5wWwq4BOXn51fbXnWbJiIiQtKZB4jPvtpQmz59+uiyyy7Tt99+a78qdPZWdRUiKipKhYWFDoHi9OnT+uyzzxyOeeONN0qS/vGPfzi0v//+++etpyqAnP0g9Ntvv+3wukWLFoqLi9PKlSt1+vRpe/svv/xi//RSXVR9FN7T09PedvLkSS1ZsqTOxwBw8bhyA1yCBg4cqDZt2mjIkCHq1KmTKisrtW3bNr322mvy9/fXhAkTJEmxsbFavny5PvjgA7Vv316+vr6KjY2t8bj+/v564403NHLkSB09elR33nmnQkJCdOjQIW3fvl2HDh3SnDlzJEm///3vNWXKFI0YMUJPP/20Tp06pdmzZ6uiosLhmImJierfv7+eeeYZlZaWKi4uTv/+97/rFBg6deqkK664Qs8++6wMw1BQUJA++ugjrVu37py+L774om699VYNHDhQEyZMUEVFhf7617/K399fR48erdPf9dZbb9Xf/vY33XPPPfrv//5vHTlyRDNmzDgnXAFoWIQb4BL03HPPadWqVXr99deVn58vm82m8PBwDRgwQElJSfYHWF944QXl5+dr1KhRKikpUbt27c770wb33Xef2rZtq+nTp2v06NEqKSlRSEiIrrnmGj344IP2ftHR0Vq1apUmT56sO++8U+Hh4Zo4caIOHTqkF154wd7Pw8NDq1ev1sSJEzV9+nSdPn1affr00SeffKJOnTrVWou3t7c++ugjTZgwQaNHj5aXl5cGDBigf/3rX/aPale55ZZblJKSoilTpuj3v/+9wsLC9Oijj+rgwYN1vvJy00036d1339Wrr76qIUOGqHXr1ho1apRCQkL08MMP1+kYAC6exTDO+mYpAICkMw9ZV32iKTU11dXlAKgjrtwAwK8efvhh3XzzzQoPD1dBQYHmzp2rXbt2adasWa4uDYATCDcA8KuSkhI99dRTOnTokLy9vfW73/1On3zyiQYMGODq0gA4gdtSAADAVPgoOAAAMBXCDQAAMBXCDQAAMJVL7oHiyspKHTx4UAEBAdV+fToAAGh6DMNQSUmJIiIi5OFR+7WZSy7cHDx4UJGRka4uAwAAXIDc3Fy1adOm1j6XXLgJCAiQ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XKsTv8xT2amvJIuHmvneLD//h+XpGeayugAAuFS5LNzURX5+vvbv329/HR0drU8++URPPPGE3nrrLUVERGj27NkaPny4C6uUPL2iFHDZKy6tAQAAnGExqp7IvUQUFxfLarWqqKhIgYGBri4HAADUgTPv3y7/nhsAAID6RLgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmckHhZsmSJerTp48iIiL0008/SZJmzpypVatW1WtxAAAAznI63MyZM0cTJ07U4MGDdfz4cVVUVEiSLrvsMs2cObO+6wMAAHCK0+HmjTfe0Pz58/WnP/1Jnp6e9va4uDhlZ2fXa3EAAADOcjrc5OTkqHv37ue0+/j4qLS0tF6KAgAAuFBOh5vo6Ght27btnPa1a9fq6quvro+aAAAALpiXswOefvppjR07VqdOnZJhGPr666+1bNkyJScn65133mmIGgEAAOrM6XDz0EMPqby8XM8884xOnDihe+65R61bt9asWbM0YsSIhqgRAACgziyGYRgXOvjw4cOqrKxUSEhIfdbUoIqLi2W1WlVUVKTAwEBXlwMAAOrAmfdvp5+5OXnypE6cOCFJuvzyy3Xy5EnNnDlTqampF1YtAABAPXI63AwdOlSLFy+WJB0/flzXXnutXnvtNQ0dOlRz5syp9wIBAACc4XS42bp1q/r16ydJ+uc//6mwsDD99NNPWrx4sWbPnl3vBQIAADjD6XBz4sQJBQQESJJSU1N1xx13yMPDQ7169bL/FAMAAICrOB1uOnTooJUrVyo3N1efffaZEhMTJUmFhYU8oAsAAFzO6XAzZcoUPfXUU4qKitJ1112n+Ph4SWeu4lT3zcUAAACN6YI+Cl5QUKD8/Hx169ZNHh5n8tHXX3+twMBAderUqd6LrE98FBwAAPfjzPu301/iJ0lhYWEKCwtzaLv22msv5FAAAAD1yulwU1paqmnTpunzzz9XYWGhKisrHfbv3bu33ooDAABwltPh5pFHHlF6erruv/9+hYeHy2KxNERdAAAAF8TpcLN27VqtWbNGffr0aYh6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Z24AAAAuBuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYikvDTXJysnr27KmAgACFhIRo2LBh2r17d61j0tLSZLFYztm+++67RqoaAAA0ZS4NN+np6Ro7dqw2btyodevWqby8XImJiSotLT3v2N27dys/P9++XXnllY1QMQAAaOq8XHnyTz/91OH1e++9p5CQEG3ZskX9+/evdWxISIguu+yyBqwOAAC4oyb1zE1RUZEkKSgo6Lx9u3fvrvDwcCUkJGj9+vU19rPZbCouLnbYAACAeTWZcGMYhiZOnKi+ffuqS5cuNfYLDw/XvHnzlJKSog8//FAdO3ZUQkKCNmzYUG3/5ORkWa1W+xYZGdlQUwAAAE2AxTAMw9VFSNLYsWO1Zs0affXVV2rTpo1TY4cMGSKLxaLVq1efs89ms8lms9lfFxcXKzIyUkVFRQoMDLzougEAQMMrLi6W1Wqt0/t3k7hyM27cOK1evVrr1693OthIUq9evbRnz55q9/n4+CgwMNBhAwAA5uXSB4oNw9C4ceO0YsUKpaWlKTo6+oKOk5WVpfDw8HquDgAAuCOXhpuxY8fq/fff16pVqxQQEKCCggJJktVqlZ+fnyQpKSlJeXl5Wrx4sSRp5syZioqKUkxMjE6fPq2lS5cqJSVFKSkpLpsHAABoOlwabubMmSNJuuGGGxza33vvPT344IOSpPz8fO3fv9++7/Tp03rqqaeUl5cnPz8/xcTEaM2aNRo8eHBjlQ0AAJqwJvNAcWNx5oEkAADQNLjdA8UAAAD1hXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMxcvVBQAAAPdmGIZ27D6oLzK+1768o/Ly9FC3Tq2V0PsqtQ69rNHrcemVm+TkZPXs2VMBAQEKCQnRsGHDtHv37vOOS09PV48ePeTr66v27dtr7ty5jVAtAAA4m2EY+mDNVr219Evt3luok6fKVFJq03+ycvSXtz7Ttl0HGr0ml4ab9PR0jR07Vhs3btS6detUXl6uxMRElZaW1jgmJydHgwcPVr9+/ZSVlaXJkydr/PjxSklJacTKAQCAJG3ZmasvNu6RJFUahr29stJQZaWhecv/o+JfTjVqTRbD+E0lLnbo0CGFhIQoPT1d/fv3r7bPpEmTtHr1au3atcveNmbMGG3fvl0ZGRnnPUdxcbGsVquKiooUGBhYb7UDAHApevXtf2nvgSOqKU5YLNKwAV016PqrL+o8zrx/N6kHiouKiiRJQUFBNfbJyMhQYmKiQ9vAgQOVmZmpsrKyc/rbbDYVFxc7bAAA4OIZhqGcWoLNmT7S3tzDjVhVEwo3hmFo4sSJ6tu3r7p06VJjv4KCAoWGhjq0hYaGqry8XIcPn/vHS05OltVqtW+RkZH1XjsAAJcqi4el9v0WycOjceNGkwk3jz32mHbs2KFly5adt6/F4viHrEqMZ7dLUlJSkoqKiuxbbm5u/RQMAMAlzmKx6OorQuVRS8AxDKnzFaE17m8ITeKj4OPGjdPq1au1YcMGtWnTpta+YWFhKigocGgrLCyUl5eXgoODz+nv4+MjHx+feq0XAACccXPfTsr+Pr/afRaLRc19vdXrmqhGrcmlV24Mw9Bjjz2mDz/8UF988YWio6PPOyY+Pl7r1q1zaEtNTVVcXJy8vb0bqlQAAFCNTu1Ddc+QHpLkcAXHIsnPx0sTHrxBvj6N+/7s0k9LPfroo3r//fe1atUqdezY0d5utVrl5+cn6cxtpby8PC1evFjSmY+Cd+nSRaNHj9aoUaOUkZGhMWPGaNmyZRo+fPh5z8mnpQAAqH/5h4q14esflHPgyJkv8evcWr27R6tF8/q5e+LM+7dLw011z8hI0nvvvacHH3xQkvTggw9q3759SktLs+9PT0/XE088oZ07dyoiIkKTJk3SmDFj6nROwg0AAO7HbcKNKxBuAABwP277PTcAAAAXi3ADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMpUn8KnhjqvpC5uLiYhdXAgAA6qrqfbsuP6xwyYWbkpISSVJkZKSLKwEAAM4qKSmR1Wqttc8l99tSlZWVOnjwoAICAmr84c4LVVxcrMjISOXm5pryd6vMPj/J/HNkfu7P7HNkfu6voeZoGIZKSkoUEREhD4/an6q55K7ceHh4qE2bNg16jsDAQNP+n1Yy//wk88+R+bk/s8+R+bm/hpjj+a7YVOGBYgAAYCqEGwAAYCqEm3rk4+OjqVOnysfHx9WlNAizz08y/xyZn/sz+xyZn/trCnO85B4oBgAA5saVGwAAYCqEGwAAYCqEGwAAYCqEGwAAYCqEmzrasGGDhgwZooiICFksFq1cufK8Y9LT09WjRw/5+vqqffv2mjt3bsMXehGcnWNaWposFss523fffdc4BTspOTlZPXv2VEBAgEJCQjRs2DDt3r37vOPcZR0vZH7utIZz5sxR165d7V8MFh8fr7Vr19Y6xl3Wroqzc3Sn9atOcnKyLBaLHn/88Vr7uds6VqnL/NxtDZ9//vlzag0LC6t1jCvWj3BTR6WlperWrZvefPPNOvXPycnR4MGD1a9fP2VlZWny5MkaP368UlJSGrjSC+fsHKvs3r1b+fn59u3KK69soAovTnp6usaOHauNGzdq3bp1Ki8vV2JiokpLS2sc407reCHzq+IOa9imTRtNmzZNmZmZyszM1E033aShQ4dq586d1fZ3p7Wr4uwcq7jD+p1t8+bNmjdvnrp27VprP3dcR6nu86viTmsYExPjUGt2dnaNfV22fgacJslYsWJFrX2eeeYZo1OnTg5to0ePNnr16tWAldWfusxx/fr1hiTj2LFjjVJTfSssLDQkGenp6TX2ced1rMv83H0NW7ZsabzzzjvV7nPntfut2uborutXUlJiXHnllca6deuM66+/3pgwYUKNfd1xHZ2Zn7ut4dSpU41u3brVub+r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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "leaf_2\n", - "\n", - "4\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "---Inital Iteration---\n", - "DIGRAPH - Abstandsmatrix\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "table\n", - "\n", - "0\n", - "\n", - "2 - 3\n", - "\n", - "5 - 2\n", - "\n", - "5 - 3\n", - "\n", - "1 - 4\n", - "\n", - "4 - 5\n", - "\n", - "2 - 3\n", - "\n", - "0.0\n", - "\n", - "3.16\n", - "\n", - "3.0\n", - "\n", - "1.41\n", - "\n", - "2.83\n", - "\n", - "5 - 2\n", - "\n", - "3.16\n", - "\n", - "0.0\n", - "\n", - "1.0\n", - "\n", - "4.47\n", - "\n", - "3.16\n", - "\n", - "5 - 3\n", - "\n", - "3.0\n", - "\n", - "1.0\n", - "\n", - "0.0\n", - "\n", - "4.12\n", - "\n", - "2.24\n", - "\n", - "1 - 4\n", - "\n", - "1.41\n", - "\n", - "4.47\n", - "\n", - "4.12\n", - "\n", - "0.0\n", - "\n", - "3.16\n", - "\n", - "4 - 5\n", - "\n", - "2.83\n", - "\n", - "3.16\n", - "\n", - "2.24\n", - "\n", - "3.16\n", - "\n", - "0.0\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "\n", - "---Next Iteration---\n", - "DIGRAPH - Abstandsmatrix\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "table\n", - "\n", - "1\n", - "\n", - "2 - 3\n", - "\n", - "5 - 3\n", - "\n", - "1 - 4\n", - "\n", - "4 - 5\n", - "\n", - "2 - 3\n", - "\n", - "0.0\n", - "\n", - "3.0\n", - "\n", - "1.41\n", - "\n", - "2.83\n", - "\n", - "5 - 3\n", - "\n", - "3.0\n", - "\n", - "0.0\n", - "\n", - "4.12\n", - "\n", - "2.24\n", - "\n", - "1 - 4\n", - "\n", - "1.41\n", - "\n", - "4.12\n", - "\n", - "0.0\n", - "\n", - "3.16\n", - "\n", - "4 - 5\n", - "\n", - "2.83\n", - "\n", - "2.24\n", - "\n", - "3.16\n", - "\n", - "0.0\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "table\n", - "\n", - "1\n", - "\n", - "2 - 3\n", - "\n", - "5 - 3\n", - "\n", - "1 - 4\n", - "\n", - "4 - 5\n", - "\n", - "2 - 3\n", - "\n", - "0.0\n", - "\n", - "3.0\n", - "\n", - "1.41\n", - "\n", - "2.83\n", - "\n", - "5 - 3\n", - "\n", - "3.0\n", - "\n", - "0.0\n", - "\n", - "4.12\n", - "\n", - "2.24\n", - "\n", - "1 - 4\n", - "\n", - "1.41\n", - "\n", - "4.12\n", - "\n", - "0.0\n", - "\n", - "3.16\n", - "\n", - "4 - 5\n", - "\n", - "2.83\n", - "\n", - "2.24\n", - "\n", - "3.16\n", - "\n", - "0.0\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "\n", - "---Next Iteration---\n", - "-------\n", - "DIGRAPH - Abstandsmatrix\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "table\n", - "\n", - "2\n", - "\n", - "2 - 3\n", - "\n", - "5 - 3\n", - "\n", - "4 - 5\n", - "\n", - "2 - 3\n", - "\n", - "0.0\n", - "\n", - "3.0\n", - "\n", - "2.83\n", - "\n", - "5 - 3\n", - "\n", - "3.0\n", - "\n", - "0.0\n", - "\n", - "2.24\n", - "\n", - "4 - 5\n", - "\n", - "2.83\n", - "\n", - "2.24\n", - "\n", - "0.0\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "table\n", - "\n", - "2\n", - "\n", - "2 - 3\n", - "\n", - "5 - 3\n", - "\n", - "4 - 5\n", - "\n", - "2 - 3\n", - "\n", - "0.0\n", - "\n", - "3.0\n", - "\n", - "2.83\n", - "\n", - "5 - 3\n", - "\n", - "3.0\n", - "\n", - "0.0\n", - "\n", - "2.24\n", - "\n", - "4 - 5\n", - "\n", - "2.83\n", - "\n", - "2.24\n", - "\n", - "0.0\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "\n", - "---Next Iteration---\n", - "-------\n", - "DIGRAPH - Abstandsmatrix\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "table\n", - "\n", - "3\n", - "\n", - "2 - 3\n", - "\n", - "5 - 3\n", - "\n", - "2 - 3\n", - "\n", - "0.0\n", - "\n", - "3.0\n", - "\n", - "5 - 3\n", - "\n", - "3.0\n", - "\n", - "0.0\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "table\n", - "\n", - "3\n", - "\n", - "2 - 3\n", - "\n", - "5 - 3\n", - "\n", - "2 - 3\n", - "\n", - "0.0\n", - "\n", - "3.0\n", - "\n", - "5 - 3\n", - "\n", - "3.0\n", - "\n", - "0.0\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "'{\"Dendogram\": \"// Dendrogram\\\\ndigraph {\\\\n\\\\tleaf_2 [label=4]\\\\n}\\\\n\", \"DigraphIteration0\": \"// Distance Matrix\\\\ndigraph {\\\\n\\\\ttable [label=<
02 - 35 - 25 - 31 - 44 - 5
2 - 30.03.163.01.412.83
5 - 23.160.01.04.473.16
5 - 33.01.00.04.122.24
1 - 41.414.474.120.03.16
4 - 52.833.162.243.160.0
> shape=plaintext]\\\\n}\\\\n\", \"DigraphIteration1\": \"// Distance Matrix\\\\ndigraph {\\\\n\\\\ttable [label=<
12 - 35 - 31 - 44 - 5
2 - 30.03.01.412.83
5 - 33.00.04.122.24
1 - 41.414.120.03.16
4 - 52.832.243.160.0
> shape=plaintext]\\\\n}\\\\n\", \"DigraphIteration2\": \"// Distance Matrix\\\\ndigraph {\\\\n\\\\ttable [label=<
22 - 35 - 34 - 5
2 - 30.03.02.83
5 - 33.00.02.24
4 - 52.832.240.0
> shape=plaintext]\\\\n}\\\\n\", \"DigraphIteration3\": \"// Distance Matrix\\\\ndigraph {\\\\n\\\\ttable [label=<
32 - 35 - 3
2 - 30.03.0
5 - 33.00.0
> shape=plaintext]\\\\n}\\\\n\"}'" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "#Clusteranalyse\n", - "\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import random\n", - "from scipy.cluster.hierarchy import linkage, dendrogram\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "import pandas as pd\n", - "from graphviz import Digraph\n", - "import graphviz\n", - "#from IPython.display import display\n", - "import math\n", - "import json\n", - "import sys\n", - "\n", - "#functions\n", - "def generate_clusters(n_clusters, m_points_per_cluster, rangeStart, rangeEnd):\n", - " # Generate random cluster centers\n", - " cluster_centers = np.random.randint(rangeStart, rangeEnd, size=(n_clusters, 2))\n", - " noise_scale = 1\n", - "\n", - " # Generate points for each cluster\n", - " points = []\n", - " for center in cluster_centers:\n", - " cluster_points = np.random.randint(-5, 5, size=(m_points_per_cluster, 2)) + center\n", - " points.extend(cluster_points)\n", - "\n", - " # Add noise to the points\n", - " noisy_points = points + (np.random.randint(-2, 2, size=(len(points), 2)))\n", - " \n", - " return np.array(noisy_points)\n", - "\n", - "def is_element_in_array(cluster_array, single_point):\n", - " for sub_array in cluster_array:\n", - " for element in sub_array:\n", - " if element[0] == single_point[0] and element[1] == single_point[1]:\n", - " return True\n", - " return False\n", - "\n", - "def is_element_in_array_location(cluster_array, single_point):\n", - " i = 0\n", - " j = 0\n", - " for sub_array in cluster_array:\n", - " for element in sub_array:\n", - " if element[0] == single_point[0] and element[1] == single_point[1]:\n", - " #print(\"LOCATION\")\n", - " #print(element[0])\n", - " #print(element[1])\n", - " return [i, j]\n", - " j += 1\n", - " i += 1\n", - " return False\n", - "\n", - "def check_array_exists(arrayName):\n", - " if 'clusters' in dir():\n", - " return True\n", - " else:\n", - " return False\n", - "\n", - "#todo\n", - "def manhattan_distance(point1, point2):\n", - " return np.sum(np.abs(point1 + point2))\n", - "\n", - "#ready\n", - "def euclidean_distance(array1, array2):\n", - " return round(math.sqrt((pow((array1[0] - array2[0]), 2)) + (pow((array1[1] - array2[1]), 2))),2)\n", - "\n", - "#todo\n", - "def maximum_distance(point1, point2):\n", - " return np.max([[point1],[point2]])\n", - "\n", - "def calculate_inital_abstraction_matrix(data, distance_function):\n", - " #print(data)\n", - " #print(distance_function)\n", - " # Initialize clusters with each data point as a separate cluster\n", - " array = np.zeros((data.shape[0],data.shape[0]))\n", - " \n", - " for iteration_number_row in range(len(data)):\n", - " \n", - " for iteration_number_column in range(len(data)):\n", - " array[iteration_number_row, iteration_number_column] = distance_function(data[iteration_number_row],data[iteration_number_column])\n", - "\n", - " return array\n", - "\n", - "def single_linkage_get_indices(inital_abstraction_matrix):\n", - "\n", - " # Exclude diagonal elements and zeros\n", - " lower_triangular = np.tril(inital_abstraction_matrix, k=-1)\n", - " lower_triangular[lower_triangular == 0] = np.inf\n", - " \n", - " min_index = np.unravel_index(np.argmin(lower_triangular), lower_triangular.shape)\n", - " \n", - " # Adjust indices to consider the original matrix\n", - " #adjusted_indices = (min_index[0] + 1, min_index[1])\n", - "\n", - " #print(min_index)\n", - " return min_index\n", - "\n", - "#get nearest of 2 points to get the new center of the cluster\n", - "def get_nearest_point(data, point_a, point_b, distance_function):\n", - " #get the point that is more near the other points\n", - " # Calculate distances for both points\n", - " distances_to_a = [distance_function(point_a, point) for point in data]\n", - " distances_to_b = [distance_function(point_b, point) for point in data]\n", - "\n", - " # Find the index of the nearest point for each given point for both points\n", - " nearest_point_index_a = np.argmin(distances_to_a)\n", - " nearest_point_index_b = np.argmin(distances_to_b)\n", - " \n", - " sum_distance_to_a = 0\n", - " for distance in distances_to_a:\n", - " sum_distance_to_a += float(distance)\n", - " \n", - " sum_distance_to_b = 0\n", - " for distance in distances_to_b:\n", - " sum_distance_to_b += float(distance)\n", - "\n", - " \n", - " # Compare the distances\n", - " #[[nearest_point][point_to_delete]]\n", - " if sum_distance_to_a < sum_distance_to_b:\n", - " nearest_point = [data[nearest_point_index_a] , data[nearest_point_index_b]]\n", - " elif sum_distance_to_a > sum_distance_to_b:\n", - " nearest_point = [data[nearest_point_index_b] , data[nearest_point_index_a]]\n", - " else: #equal\n", - " nearest_point = [data[nearest_point_index_a] , data[nearest_point_index_b]]\n", - " \n", - " return nearest_point\n", - "\n", - "def createScatterDiagram(data):\n", - " # Streudiagramm zeichnen\n", - " # Extract x and y coordinates\n", - " x = data[:, 0]\n", - " y = data[:, 1]\n", - "\n", - " # Generate random colors\n", - " colors = np.random.rand(len(x), 3)\n", - "\n", - " # Create scatter plot with random colors\n", - " plt.scatter(x, y, marker='o', color=colors)\n", - "\n", - " # Add labels and title\n", - " plt.xlabel('X-Achse')\n", - " plt.ylabel('Y-Achse')\n", - " plt.title('Streudiagram')\n", - "\n", - " # Display the plot\n", - " plt.show()\n", - "\n", - "def createDigraph(distanceMatrix, points, iterationNumber):\n", - " #transform matrix\n", - " \n", - " points = points.astype(str)\n", - " distanceMatrix = distanceMatrix.astype(str)\n", - " pointsY = np.array([[' - '.join(row)] for row in points]) \n", - " pointsX = np.array([[' - '.join(row)] for row in points]) \n", - " #pointsX = np.insert(pointsX, 0, 'Iteration {}'.format(iterationNumber), axis=0)\n", - " pointsX = np.insert(pointsX, 0, str(iterationNumber), axis=0)\n", - "\n", - " # Concatenate arr1 and arr2 vertically\n", - " distanceMatrix = np.concatenate((pointsY, distanceMatrix), axis=1)\n", - " \n", - " Array2d = np.array([np.concatenate(pointsX.T)])\n", - " distanceMatrixNew = np.append(Array2d, distanceMatrix, axis=0)\n", - " \n", - " # Create a Digraph object\n", - " dot = Digraph(comment='Distance Matrix')\n", - "\n", - " # Create a single table for the entire matrix\n", - " table_label = f'<'\n", - " for i in range(distanceMatrixNew.shape[0]):\n", - " table_label += ''\n", - " for j in range(distanceMatrixNew.shape[1]):\n", - " table_label += f''\n", - " table_label += ''\n", - " table_label += '
{distanceMatrixNew[i, j]}
>'\n", - "\n", - " # Add a single node to the graph with the entire table as label\n", - " dot.node('table', label=table_label, shape='plaintext')\n", - " \n", - " # Save the graph as a PNG file\n", - " #dot.render('directed_graph', format='png', cleanup=True)\n", - " \n", - " display(dot)\n", - " \n", - " return str(dot)\n", - "\n", - "# Helper function to recursively add nodes and edges to the graph\n", - "def add_nodes_edges(dot, node_id, Z, dendrogram_data):\n", - " if node_id < len(Z):\n", - " # Internal node\n", - " child1, child2 = Z[node_id, 0], Z[node_id, 1]\n", - " dot.node(f'node_{node_id}', label=str(Z[node_id, 2]))\n", - " add_nodes_edges(dot, int(child1), Z, dendrogram_data)\n", - " add_nodes_edges(dot, int(child2), Z, dendrogram_data)\n", - " dot.edge(f'node_{node_id}', f'node_{int(child1)}')\n", - " dot.edge(f'node_{node_id}', f'node_{int(child2)}')\n", - " else:\n", - " # Leaf node\n", - " leaf_index = node_id - len(Z)\n", - " dot.node(f'leaf_{leaf_index}', label=str(dendrogram_data['ivl'][leaf_index]))\n", - "\n", - "\n", - "def createDendogramDotLanguage(data, distanceMethod):\n", - " \n", - " if distanceMethod == 'manhattan':\n", - " linkage_data = linkage(data, method='single', metric='cityblock')\n", - "\n", - " elif distanceMethod == 'euclidean':\n", - " linkage_data = linkage(data, method='single', metric='euclidean')\n", - "\n", - " elif distanceMethod == 'maximum':\n", - " linkage_data = linkage(data, method='single', metric='maximum')\n", - "\n", - " else:\n", - " return ''\n", - " \n", - " #dendrogram(linkage_data)\n", - " \n", - " #print(linkage_data)\n", - "\n", - " #plt.show()\n", - " \n", - " # Create a dendrogram\n", - " dendrogram_data = dendrogram(linkage_data, no_plot=True)\n", - "\n", - " # Create a Graphviz graph\n", - " dot = graphviz.Digraph(comment='Dendrogram')\n", - "\n", - " # Add nodes and edges to the graph\n", - " add_nodes_edges(dot, len(linkage_data) * 2 - 2, linkage_data, dendrogram_data)\n", - " display(dot)\n", - " \n", - " return str(dot)\n", - "\n", - "\n", - "def clusterAnalysisMain(numClusters, pointsPerCluster, nodeRangeStart, nodeRangeEnd, distanceMethod, linkageMethod):\n", - " #data = generate_clusters(numClusters, pointsPerCluster, nodeRangeStart, nodeRangeEnd)\n", - " data = np.array([[2, 3],\n", - " [5, 2],\n", - " [5, 3],\n", - " [1, 4],\n", - " [4, 5]])\n", - " \n", - " \n", - " createScatterDiagram(data)\n", - " jsonDict = {}\n", - " \n", - " jsonDict[\"Dendogram\"] = createDendogramDotLanguage(data, distanceMethod)\n", - " \n", - " \n", - " for iteration in range(data.shape[0]):\n", - " #erste iteration\n", - " if(iteration == 0):\n", - " \n", - " clusters = []\n", - " \n", - " #inital abstraction matrix\n", - " print(\"---Inital Iteration---\")\n", - " #get distance method\n", - " if distanceMethod == 'manhattan':\n", - " matrix = calculate_inital_abstraction_matrix(data, manhattan_distance)\n", - "\n", - " elif distanceMethod == 'euclidean':\n", - " matrix = calculate_inital_abstraction_matrix(data, euclidean_distance)\n", - "\n", - " elif distanceMethod == 'maximum':\n", - " matrix = calculate_inital_abstraction_matrix(data, maximum_distance)\n", - "\n", - " else:\n", - " break\n", - " \n", - " #matrix = calculate_inital_abstraction_matrix(data, euclidean_distance)\n", - " single_linkage_indices = single_linkage_get_indices(matrix)\n", - " #print(single_linkage_indices)\n", - " \n", - " #get two points from given index that are the first cluster\n", - " point_a = data[single_linkage_indices[0]]\n", - " point_b = data[single_linkage_indices[1]]\n", - " \n", - " \n", - " if distanceMethod == 'manhattan':\n", - " nearest_point = get_nearest_point(data, point_a, point_b, manhattan_distance)\n", - "\n", - " elif distanceMethod == 'euclidean':\n", - " nearest_point = get_nearest_point(data, point_a, point_b, euclidean_distance)\n", - "\n", - " elif distanceMethod == 'maximum':\n", - " nearest_point = get_nearest_point(data, point_a, point_b, maximum_distance)\n", - "\n", - " else:\n", - " break\n", - " \n", - " #nearest_point = get_nearest_point(data, point_a, point_b, euclidean_distance)\n", - " #delete the point from the dataset, that is not nearest\n", - " point_to_remove = nearest_point[1]\n", - " \n", - " \n", - " #create Digraph\n", - " #TODO -> oberste Zeile noch hinzufügen\n", - " print(\"DIGRAPH - Abstandsmatrix\")\n", - " jsonDict[\"DigraphIteration{}\".format(iteration)] = createDigraph(matrix, data, iteration)\n", - " \n", - " \n", - " #define cluster elements\n", - " #clusters = np.array([[point_a, point_b]])\n", - " clusters.append([point_a, point_b])\n", - " #print(\"Aktuelle Cluster:\")\n", - " #print(clusters)\n", - " \n", - " #define new dataset\n", - " new_data = np.array([point for point in data if not np.array_equal(point, point_to_remove)])\n", - " #print(\"Neuer Hauptdatensatz\")\n", - " #print(new_data)\n", - "\n", - " #alle weiteren iterationen \n", - " elif(iteration > 0):\n", - " \n", - " if len(new_data) == 1:\n", - " continue\n", - " \n", - " print(\"\")\n", - " print(\"\")\n", - " print(\"---Next Iteration---\")\n", - " \n", - " \n", - " if distanceMethod == 'manhattan':\n", - " matrix = calculate_inital_abstraction_matrix(new_data, manhattan_distance)\n", - " \n", - " elif distanceMethod == 'euclidean':\n", - " matrix = calculate_inital_abstraction_matrix(new_data, euclidean_distance)\n", - "\n", - " elif distanceMethod == 'maximum':\n", - " matrix = calculate_inital_abstraction_matrix(new_data, maximum_distance)\n", - "\n", - " else:\n", - " break\n", - " #matrix = calculate_inital_abstraction_matrix(new_data, euclidean_distance)\n", - "\n", - " #get the two points with the new minimum distance\n", - " single_linkage_indices = single_linkage_get_indices(matrix)\n", - " \n", - " #get two points from given index that are the new cluster\n", - " point_a = new_data[single_linkage_indices[0]]\n", - " point_b = new_data[single_linkage_indices[1]]\n", - " \n", - " #nearest_point = get_nearest_point(data, point_a, point_b, euclidean_distance)\n", - " #delete the point from the dataset, that is not nearest\n", - " #point_to_remove = nearest_point[1]\n", - " \n", - " #add point to current cluster\n", - " if is_element_in_array(clusters, point_a) or is_element_in_array(clusters, point_b):\n", - " #print(\"Erweitere Cluster\")\n", - " \n", - " #get element number of the cluster and append point to the current cluster\n", - " if is_element_in_array(clusters, point_a):\n", - " arrayLocation = is_element_in_array_location(clusters, point_a)\n", - " pointToAppend = point_b\n", - " elif is_element_in_array(clusters, point_b):\n", - " arrayLocation = is_element_in_array_location(clusters, point_b)\n", - " pointToAppend = point_a\n", - " \n", - " #print(arrayLocation)\n", - " \n", - " #append pointToAppend to cluster:\n", - " #clusters = np.insert(clusters, arrayLocation[0], pointToAppend, axis=arrayLocation[1])\n", - " #print(clusters[arrayLocation[0]])\n", - " #clusters[arrayLocation[0], arrayLocation[1]]\n", - " \n", - " #newClusters1 = clusters[arrayLocation[0]]\n", - " #print(clusters[arrayLocation[0]])\n", - " pointsToAppend = np.vstack([clusters[arrayLocation[0]], pointToAppend])\n", - " \n", - " newClusters = []\n", - " \n", - " newClusters.append(pointsToAppend)\n", - "\n", - " #newClusters = np.append(clusters[arrayLocation[0]], [pointToAppend], axis=0)\n", - " #newClusters = np.array([[point_a, point_b]])\n", - " clusterCounter = 0\n", - " \n", - " for cluster in clusters:\n", - " if clusterCounter == arrayLocation[0]:\n", - " clusterCounter += 1\n", - " \n", - " else:\n", - " #newClusters = np.concatenate([newClusters, [cluster]]) #dimensions are not valid! -> was anderes einfallen lassen!! #letztes puzzelstück -> wie den bums richtig zusammenfügen???!!!\n", - " newClusters.append(cluster)\n", - " clusterCounter += 1\n", - " \n", - " \n", - " #print(\"UPDATED CLUSTER:\")\n", - " #print(newClusters)\n", - " print(\"-------\")\n", - " \n", - " clusters = newClusters\n", - "\n", - " #create new cluster\n", - " else:\n", - " #print(\"Definiere neues Cluster\")\n", - " #define cluster elements if ist an new cluster\n", - " #clusters = np.append(clusters,[[point_a, point_b]], axis=0)\n", - " clusters.append([point_a, point_b])\n", - " #print(clusters)\n", - " \n", - " #print(\"Aktuelle Cluster:\")\n", - " #print(clusters)\n", - " \n", - " print(\"DIGRAPH - Abstandsmatrix\")\n", - " createDigraph(matrix, new_data, iteration)\n", - " jsonDict[\"DigraphIteration{}\".format(iteration)] = createDigraph(matrix, new_data, iteration)\n", - "\n", - " \n", - " if distanceMethod == 'manhattan':\n", - " nearest_point = get_nearest_point(data, point_a, point_b, manhattan_distance)\n", - " \n", - " elif distanceMethod == 'euclidean':\n", - " nearest_point = get_nearest_point(data, point_a, point_b, euclidean_distance)\n", - "\n", - " elif distanceMethod == 'maximum':\n", - " nearest_point = get_nearest_point(data, point_a, point_b, maximum_distance)\n", - "\n", - " else:\n", - " break\n", - " \n", - " #nearest_point = get_nearest_point(data, point_a, point_b, euclidean_distance)\n", - " #delete the point from the dataset, that is not nearest\n", - " point_to_remove = nearest_point[1]\n", - " \n", - "\n", - " \n", - " #define new dataset\n", - " new_data = np.array([point for point in new_data if not np.array_equal(point, point_to_remove)])\n", - " #print(\"Neuer Hauptdatensatz\")\n", - " #print(new_data)\n", - " return json.dumps(jsonDict)\n", - " \n", - "# Anzahl der Datenpunktansammlungen (Cluster)\n", - "#numClusters = int(sys.argv[1])\n", - "#pointsPerCluster = int(sys.argv[2])\n", - "#nodeRangeStart = int(sys.argv[3])\n", - "#nodeRangeEnd = int(sys.argv[4])\n", - "#distanceMethod = int(sys.argv[5])\n", - "#linkageMethod = int(sys.argv[6])\n", - "\n", - "numClusters = 2\n", - "pointsPerCluster = 3\n", - "nodeRangeStart = 0\n", - "nodeRangeEnd = 25\n", - "distanceMethod = 'euclidean'\n", - "linkageMethod = 'single'\n", - "#Hauptfunktion ausfuehren\n", - "clusterAnalysisMain(numClusters, pointsPerCluster, nodeRangeStart, nodeRangeEnd, distanceMethod, linkageMethod)\n", - "\n", - "\n", - "#TODO\n", - "#Eingabevalidierung!!!" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "7942a038", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "3bb05ef1", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "---Inital Iteration---\n", - "DIGRAPH - Abstandsmatrix\n", - "\n", - "\n", - "---Next Iteration---\n", - "DIGRAPH - Abstandsmatrix\n", - "\n", - "\n", - "---Next Iteration---\n", - "-------\n", - "DIGRAPH - Abstandsmatrix\n", - "\n", - "\n", - "---Next Iteration---\n", - "-------\n", - "DIGRAPH - Abstandsmatrix\n", - "{'Dendogram': '// Dendrogram\\ndigraph {\\n\\tleaf_2 [label=4]\\n}\\n', 'DigraphIteration0': [[0.0, 3.16, 3.0, 1.41, 2.83], [3.16, 0.0, 1.0, 4.47, 3.16], [3.0, 1.0, 0.0, 4.12, 2.24], [1.41, 4.47, 4.12, 0.0, 3.16], [2.83, 3.16, 2.24, 3.16, 0.0]], 'DigraphIteration1': [[0.0, 3.0, 1.41, 2.83], [3.0, 0.0, 4.12, 2.24], [1.41, 4.12, 0.0, 3.16], [2.83, 2.24, 3.16, 0.0]], 'DigraphIteration2': [[0.0, 3.0, 2.83], [3.0, 0.0, 2.24], [2.83, 2.24, 0.0]], 'DigraphIteration3': [[0.0, 3.0], [3.0, 0.0]]}\n" - ] - }, - { - "data": { - "text/plain": [ - "'{\"Dendogram\": \"// Dendrogram\\\\ndigraph {\\\\n\\\\tleaf_2 [label=4]\\\\n}\\\\n\", \"DigraphIteration0\": [[0.0, 3.16, 3.0, 1.41, 2.83], [3.16, 0.0, 1.0, 4.47, 3.16], [3.0, 1.0, 0.0, 4.12, 2.24], [1.41, 4.47, 4.12, 0.0, 3.16], [2.83, 3.16, 2.24, 3.16, 0.0]], \"DigraphIteration1\": [[0.0, 3.0, 1.41, 2.83], [3.0, 0.0, 4.12, 2.24], [1.41, 4.12, 0.0, 3.16], [2.83, 2.24, 3.16, 0.0]], \"DigraphIteration2\": [[0.0, 3.0, 2.83], [3.0, 0.0, 2.24], [2.83, 2.24, 0.0]], \"DigraphIteration3\": [[0.0, 3.0], [3.0, 0.0]], \"iterations\": 4}'" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "#Clusteranalyse\n", - "\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import random\n", - "from scipy.cluster.hierarchy import linkage, dendrogram\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "import pandas as pd\n", - "from graphviz import Digraph\n", - "import graphviz\n", - "#from IPython.display import display\n", - "import math\n", - "import json\n", - "import sys\n", - "import os\n", - "\n", - "#functions\n", - "def generate_clusters(n_clusters, m_points_per_cluster, rangeStart, rangeEnd):\n", - " # Generate random cluster centers\n", - " cluster_centers = np.random.randint(rangeStart, rangeEnd, size=(n_clusters, 2))\n", - " noise_scale = 1\n", - "\n", - " # Generate points for each cluster\n", - " points = []\n", - " for center in cluster_centers:\n", - " cluster_points = np.random.randint(-5, 5, size=(m_points_per_cluster, 2)) + center\n", - " points.extend(cluster_points)\n", - "\n", - " # Add noise to the points\n", - " noisy_points = points + (np.random.randint(-2, 2, size=(len(points), 2)))\n", - " \n", - " return np.array(noisy_points)\n", - "\n", - "def is_element_in_array(cluster_array, single_point):\n", - " for sub_array in cluster_array:\n", - " for element in sub_array:\n", - " if element[0] == single_point[0] and element[1] == single_point[1]:\n", - " return True\n", - " return False\n", - "\n", - "def is_element_in_array_location(cluster_array, single_point):\n", - " i = 0\n", - " j = 0\n", - " for sub_array in cluster_array:\n", - " for element in sub_array:\n", - " if element[0] == single_point[0] and element[1] == single_point[1]:\n", - " #print(\"LOCATION\")\n", - " #print(element[0])\n", - " #print(element[1])\n", - " return [i, j]\n", - " j += 1\n", - " i += 1\n", - " return False\n", - "\n", - "def check_array_exists(arrayName):\n", - " if 'clusters' in dir():\n", - " return True\n", - " else:\n", - " return False\n", - "\n", - "#todo\n", - "def manhattan_distance(point1, point2):\n", - " return np.sum(np.abs(point1 + point2))\n", - "\n", - "#ready\n", - "def euclidean_distance(array1, array2):\n", - " return round(math.sqrt((pow((array1[0] - array2[0]), 2)) + (pow((array1[1] - array2[1]), 2))),2)\n", - "\n", - "#todo\n", - "def maximum_distance(point1, point2):\n", - " return np.max([[point1],[point2]])\n", - "\n", - "def calculate_inital_abstraction_matrix(data, distance_function):\n", - " \n", - " # Initialize clusters with each data point as a separate cluster\n", - " array = np.zeros((data.shape[0],data.shape[0]))\n", - " \n", - " for iteration_number_row in range(len(data)):\n", - " \n", - " for iteration_number_column in range(len(data)):\n", - " array[iteration_number_row, iteration_number_column] = distance_function(data[iteration_number_row],data[iteration_number_column])\n", - "\n", - " return array\n", - "\n", - "def single_linkage_get_indices(inital_abstraction_matrix):\n", - "\n", - " # Exclude diagonal elements and zeros\n", - " lower_triangular = np.tril(inital_abstraction_matrix, k=-1)\n", - " lower_triangular[lower_triangular == 0] = np.inf\n", - " \n", - " min_index = np.unravel_index(np.argmin(lower_triangular), lower_triangular.shape)\n", - " \n", - " # Adjust indices to consider the original matrix\n", - " #adjusted_indices = (min_index[0] + 1, min_index[1])\n", - "\n", - " #print(min_index)\n", - " return min_index\n", - "\n", - "#get nearest of 2 points to get the new center of the cluster\n", - "def get_nearest_point(data, point_a, point_b, distance_function):\n", - " #get the point that is more near the other points\n", - " # Calculate distances for both points\n", - " distances_to_a = [distance_function(point_a, point) for point in data]\n", - " distances_to_b = [distance_function(point_b, point) for point in data]\n", - "\n", - " # Find the index of the nearest point for each given point for both points\n", - " nearest_point_index_a = np.argmin(distances_to_a)\n", - " nearest_point_index_b = np.argmin(distances_to_b)\n", - " \n", - " sum_distance_to_a = 0\n", - " for distance in distances_to_a:\n", - " sum_distance_to_a += float(distance)\n", - " \n", - " sum_distance_to_b = 0\n", - " for distance in distances_to_b:\n", - " sum_distance_to_b += float(distance)\n", - "\n", - " \n", - " # Compare the distances\n", - " #[[nearest_point][point_to_delete]]\n", - " if sum_distance_to_a < sum_distance_to_b:\n", - " nearest_point = [data[nearest_point_index_a] , data[nearest_point_index_b]]\n", - " elif sum_distance_to_a > sum_distance_to_b:\n", - " nearest_point = [data[nearest_point_index_b] , data[nearest_point_index_a]]\n", - " else: #equal\n", - " nearest_point = [data[nearest_point_index_a] , data[nearest_point_index_b]]\n", - " \n", - " return nearest_point\n", - "\n", - "def createScatterDiagram(data):\n", - " # Streudiagramm zeichnen\n", - " # Extract x and y coordinates\n", - " x = data[:, 0]\n", - " y = data[:, 1]\n", - "\n", - " # Generate random colors\n", - " colors = np.random.rand(len(x), 3)\n", - "\n", - " # Create scatter plot with random colors\n", - " plt.scatter(x, y, marker='o', color=colors)\n", - "\n", - " # Add labels and title\n", - " plt.xlabel('X-Achse')\n", - " plt.ylabel('Y-Achse')\n", - " plt.title('Streudiagram')\n", - "\n", - " # #display the plot\n", - " plt.show()\n", - "\n", - "def createDigraph(distanceMatrix, points, iterationNumber):\n", - " #transform matrix\n", - " \n", - " #print(distanceMatrix)\n", - "\n", - " points = points.astype(str)\n", - " distanceMatrix = distanceMatrix.astype(str)\n", - " pointsY = np.array([[' - '.join(row)] for row in points]) \n", - " pointsX = np.array([[' - '.join(row)] for row in points]) \n", - " #pointsX = np.insert(pointsX, 0, 'Iteration {}'.format(iterationNumber), axis=0)\n", - " pointsX = np.insert(pointsX, 0, str(iterationNumber), axis=0)\n", - "\n", - " # Concatenate arr1 and arr2 vertically\n", - " distanceMatrix = np.concatenate((pointsY, distanceMatrix), axis=1)\n", - " \n", - " Array2d = np.array([np.concatenate(pointsX.T)])\n", - " distanceMatrixNew = np.append(Array2d, distanceMatrix, axis=0)\n", - " \n", - " # Create a Digraph object\n", - " dot = Digraph(comment='Distance Matrix')\n", - "\n", - " # Create a single table for the entire matrix\n", - " table_label = f'<'\n", - " for i in range(distanceMatrixNew.shape[0]):\n", - " table_label += ''\n", - " for j in range(distanceMatrixNew.shape[1]):\n", - " table_label += f''\n", - " table_label += ''\n", - " table_label += '
{distanceMatrixNew[i, j]}
>'\n", - "\n", - " # Add a single node to the graph with the entire table as label\n", - " dot.node('table', label=table_label, shape='plaintext')\n", - " \n", - " # Save the graph as a PNG file\n", - " #dot.render('directed_graph', format='png', cleanup=True)\n", - " \n", - " #display(dot)\n", - " \n", - " return str(dot)\n", - "\n", - "\n", - "\n", - "# Helper function to recursively add nodes and edges to the graph\n", - "def add_nodes_edges(dot, node_id, Z, dendrogram_data):\n", - " if node_id < len(Z):\n", - " # Internal node\n", - " child1, child2 = Z[node_id, 0], Z[node_id, 1]\n", - " dot.node(f'node_{node_id}', label=str(Z[node_id, 2]))\n", - " add_nodes_edges(dot, int(child1), Z, dendrogram_data)\n", - " add_nodes_edges(dot, int(child2), Z, dendrogram_data)\n", - " dot.edge(f'node_{node_id}', f'node_{int(child1)}')\n", - " dot.edge(f'node_{node_id}', f'node_{int(child2)}')\n", - " else:\n", - " # Leaf node\n", - " leaf_index = node_id - len(Z)\n", - " dot.node(f'leaf_{leaf_index}', label=str(dendrogram_data['ivl'][leaf_index]))\n", - "\n", - "\n", - "def createDendogramDotLanguage(data, distanceMethod):\n", - " \n", - " if distanceMethod == 'manhattan':\n", - " linkage_data = linkage(data, method='single', metric='cityblock')\n", - "\n", - " elif distanceMethod == 'euclidean':\n", - " linkage_data = linkage(data, method='single', metric='euclidean')\n", - "\n", - " elif distanceMethod == 'maximum':\n", - " linkage_data = linkage(data, method='single', metric='maximum')\n", - "\n", - " else:\n", - " return ''\n", - " \n", - " #dendrogram(linkage_data)\n", - " \n", - " #print(linkage_data)\n", - "\n", - " #plt.show()\n", - " \n", - " # Create a dendrogram\n", - " dendrogram_data = dendrogram(linkage_data, no_plot=True)\n", - "\n", - " # Create a Graphviz graph\n", - " dot = graphviz.Digraph(comment='Dendrogram')\n", - "\n", - " # Add nodes and edges to the graph\n", - " add_nodes_edges(dot, len(linkage_data) * 2 - 2, linkage_data, dendrogram_data)\n", - " #display(dot)\n", - " \n", - " return str(dot)\n", - "\n", - "\n", - "def clusterAnalysisMain(numClusters, pointsPerCluster, nodeRangeStart, nodeRangeEnd, distanceMethod, linkageMethod):\n", - " #data = generate_clusters(numClusters, pointsPerCluster, nodeRangeStart, nodeRangeEnd)\n", - " data = np.array([[2, 3],\n", - " [5, 2],\n", - " [5, 3],\n", - " [1, 4],\n", - " [4, 5]])\n", - " \n", - " \n", - " #createScatterDiagram(data)\n", - " jsonDict = {}\n", - " \n", - " jsonDict[\"Dendogram\"] = createDendogramDotLanguage(data, distanceMethod)\n", - " \n", - " \n", - " for iteration in range(data.shape[0]):\n", - " #erste iteration\n", - " if(iteration == 0):\n", - " \n", - " clusters = []\n", - " \n", - " #inital abstraction matrix\n", - " print(\"---Inital Iteration---\")\n", - " #get distance method\n", - " if distanceMethod == 'manhattan':\n", - " matrix = calculate_inital_abstraction_matrix(data, manhattan_distance)\n", - "\n", - " elif distanceMethod == 'euclidean':\n", - " matrix = calculate_inital_abstraction_matrix(data, euclidean_distance)\n", - "\n", - " elif distanceMethod == 'maximum':\n", - " matrix = calculate_inital_abstraction_matrix(data, maximum_distance)\n", - "\n", - " else:\n", - " break\n", - " \n", - " #matrix = calculate_inital_abstraction_matrix(data, euclidean_distance)\n", - " single_linkage_indices = single_linkage_get_indices(matrix)\n", - " #print(single_linkage_indices)\n", - " \n", - " #get two points from given index that are the first cluster\n", - " point_a = data[single_linkage_indices[0]]\n", - " point_b = data[single_linkage_indices[1]]\n", - " \n", - " \n", - " if distanceMethod == 'manhattan':\n", - " nearest_point = get_nearest_point(data, point_a, point_b, manhattan_distance)\n", - "\n", - " elif distanceMethod == 'euclidean':\n", - " nearest_point = get_nearest_point(data, point_a, point_b, euclidean_distance)\n", - "\n", - " elif distanceMethod == 'maximum':\n", - " nearest_point = get_nearest_point(data, point_a, point_b, maximum_distance)\n", - "\n", - " else:\n", - " break\n", - " \n", - " #nearest_point = get_nearest_point(data, point_a, point_b, euclidean_distance)\n", - " #delete the point from the dataset, that is not nearest\n", - " point_to_remove = nearest_point[1]\n", - " \n", - " \n", - " #create Digraph\n", - " #TODO -> oberste Zeile noch hinzufügen\n", - " print(\"DIGRAPH - Abstandsmatrix\")\n", - " jsonDict[\"DigraphIteration{}\".format(iteration)] = matrix.tolist() #createDigraph(matrix, data, iteration)\n", - " \n", - " \n", - " #define cluster elements\n", - " #clusters = np.array([[point_a, point_b]])\n", - " clusters.append([point_a, point_b])\n", - " #print(\"Aktuelle Cluster:\")\n", - " #print(clusters)\n", - " \n", - " #define new dataset\n", - " new_data = np.array([point for point in data if not np.array_equal(point, point_to_remove)])\n", - " #print(\"Neuer Hauptdatensatz\")\n", - " #print(new_data)\n", - "\n", - " #alle weiteren iterationen \n", - " elif(iteration > 0):\n", - " \n", - " if len(new_data) == 1:\n", - " continue\n", - " \n", - " print(\"\")\n", - " print(\"\")\n", - " print(\"---Next Iteration---\")\n", - " \n", - " \n", - " if distanceMethod == 'manhattan':\n", - " matrix = calculate_inital_abstraction_matrix(new_data, manhattan_distance)\n", - " \n", - " elif distanceMethod == 'euclidean':\n", - " matrix = calculate_inital_abstraction_matrix(new_data, euclidean_distance)\n", - "\n", - " elif distanceMethod == 'maximum':\n", - " matrix = calculate_inital_abstraction_matrix(new_data, maximum_distance)\n", - "\n", - " else:\n", - " break\n", - " #matrix = calculate_inital_abstraction_matrix(new_data, euclidean_distance)\n", - "\n", - " #get the two points with the new minimum distance\n", - " single_linkage_indices = single_linkage_get_indices(matrix)\n", - " \n", - " #get two points from given index that are the new cluster\n", - " point_a = new_data[single_linkage_indices[0]]\n", - " point_b = new_data[single_linkage_indices[1]]\n", - " \n", - " #nearest_point = get_nearest_point(data, point_a, point_b, euclidean_distance)\n", - " #delete the point from the dataset, that is not nearest\n", - " #point_to_remove = nearest_point[1]\n", - " \n", - " #add point to current cluster\n", - " if is_element_in_array(clusters, point_a) or is_element_in_array(clusters, point_b):\n", - " #print(\"Erweitere Cluster\")\n", - " \n", - " #get element number of the cluster and append point to the current cluster\n", - " if is_element_in_array(clusters, point_a):\n", - " arrayLocation = is_element_in_array_location(clusters, point_a)\n", - " pointToAppend = point_b\n", - " elif is_element_in_array(clusters, point_b):\n", - " arrayLocation = is_element_in_array_location(clusters, point_b)\n", - " pointToAppend = point_a\n", - " \n", - " #print(arrayLocation)\n", - " \n", - " #append pointToAppend to cluster:\n", - " #clusters = np.insert(clusters, arrayLocation[0], pointToAppend, axis=arrayLocation[1])\n", - " #print(clusters[arrayLocation[0]])\n", - " #clusters[arrayLocation[0], arrayLocation[1]]\n", - " \n", - " #newClusters1 = clusters[arrayLocation[0]]\n", - " #print(clusters[arrayLocation[0]])\n", - " pointsToAppend = np.vstack([clusters[arrayLocation[0]], pointToAppend])\n", - " \n", - " newClusters = []\n", - " \n", - " newClusters.append(pointsToAppend)\n", - "\n", - " #newClusters = np.append(clusters[arrayLocation[0]], [pointToAppend], axis=0)\n", - " #newClusters = np.array([[point_a, point_b]])\n", - " clusterCounter = 0\n", - " \n", - " for cluster in clusters:\n", - " if clusterCounter == arrayLocation[0]:\n", - " clusterCounter += 1\n", - " \n", - " else:\n", - " #newClusters = np.concatenate([newClusters, [cluster]]) #dimensions are not valid! -> was anderes einfallen lassen!! #letztes puzzelstück -> wie den bums richtig zusammenfügen???!!!\n", - " newClusters.append(cluster)\n", - " clusterCounter += 1\n", - " \n", - " \n", - " #print(\"UPDATED CLUSTER:\")\n", - " #print(newClusters)\n", - " print(\"-------\")\n", - " \n", - " clusters = newClusters\n", - "\n", - " #create new cluster\n", - " else:\n", - " #print(\"Definiere neues Cluster\")\n", - " #define cluster elements if ist an new cluster\n", - " #clusters = np.append(clusters,[[point_a, point_b]], axis=0)\n", - " clusters.append([point_a, point_b])\n", - " #print(clusters)\n", - " \n", - " #print(\"Aktuelle Cluster:\")\n", - " #print(clusters)\n", - " \n", - " print(\"DIGRAPH - Abstandsmatrix\")\n", - " #createDigraph(matrix, new_data, iteration)\n", - " jsonDict[\"DigraphIteration{}\".format(iteration)] = matrix.tolist() #createDigraph(matrix, new_data, iteration)\n", - "\n", - " \n", - " if distanceMethod == 'manhattan':\n", - " nearest_point = get_nearest_point(data, point_a, point_b, manhattan_distance)\n", - " \n", - " elif distanceMethod == 'euclidean':\n", - " nearest_point = get_nearest_point(data, point_a, point_b, euclidean_distance)\n", - "\n", - " elif distanceMethod == 'maximum':\n", - " nearest_point = get_nearest_point(data, point_a, point_b, maximum_distance)\n", - "\n", - " else:\n", - " break\n", - " \n", - " #nearest_point = get_nearest_point(data, point_a, point_b, euclidean_distance)\n", - " #delete the point from the dataset, that is not nearest\n", - " point_to_remove = nearest_point[1]\n", - " \n", - "\n", - " \n", - " #define new dataset\n", - " new_data = np.array([point for point in new_data if not np.array_equal(point, point_to_remove)])\n", - " #print(\"Neuer Hauptdatensatz\")\n", - " #print(jsonDict)\n", - "\n", - " print(jsonDict)\n", - " jsonDict[\"iterations\"] = iteration\n", - " with open(\"data.json\", \"w+\", encoding=\"utf8\") as f:\n", - " json.dump(jsonDict, f)\n", - "\n", - " return json.dumps(jsonDict)\n", - " \n", - "# Anzahl der Datenpunktansammlungen (Cluster)\n", - "#numClusters = int(sys.argv[1])\n", - "#pointsPerCluster = int(sys.argv[2])\n", - "#nodeRangeStart = int(sys.argv[3])\n", - "#nodeRangeEnd = int(sys.argv[4])\n", - "#distanceMethod = int(sys.argv[5])\n", - "#linkageMethod = int(sys.argv[6])\n", - "\n", - "numClusters = 2\n", - "pointsPerCluster = 3\n", - "nodeRangeStart = 0\n", - "nodeRangeEnd = 30\n", - "distanceMethod = 'euclidean'\n", - "linkageMethod = 'single'\n", - "#Hauptfunktion ausfuehren\n", - "clusterAnalysisMain(numClusters, pointsPerCluster, nodeRangeStart, nodeRangeEnd, distanceMethod, linkageMethod)\n", - "\n", - "\n", - "#TODO\n", - "#Eingabevalidierung!!!" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b619364a", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.13" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..5be0973 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,22 @@ +{ + "workbench.colorCustomizations": { + "activityBar.activeBackground": "#93e6fc", + "activityBar.background": "#93e6fc", + "activityBar.foreground": "#15202b", + "activityBar.inactiveForeground": "#15202b99", + "activityBarBadge.background": "#fa45d4", + "activityBarBadge.foreground": "#15202b", + "commandCenter.border": "#15202b99", + "sash.hoverBorder": "#93e6fc", + "statusBar.background": "#61dafb", + "statusBar.foreground": "#15202b", + "statusBarItem.hoverBackground": "#2fcefa", + "statusBarItem.remoteBackground": "#61dafb", + "statusBarItem.remoteForeground": "#15202b", + "titleBar.activeBackground": "#61dafb", + "titleBar.activeForeground": "#15202b", + "titleBar.inactiveBackground": "#61dafb99", + "titleBar.inactiveForeground": "#15202b99" + }, + "peacock.color": "#61dafb" +} \ No newline at end of file diff --git a/Antwort.json b/Antwort.json deleted file mode 100644 index 8095f08..0000000 --- a/Antwort.json +++ /dev/null @@ -1 +0,0 @@ -{"Ueberreaktion":"nein","SmilesReaction":"[NH3+]c1ccccc1>ClCl>","Position":"meta","Reagenz":"ClCl","Smiles":"[NH3+]c1cc(Cl)ccc1","Parameter":"-I","Erstsubsti":"[NH3+]","Benzol":"c1cccc1","ReagenzText":"ReagenzAlpha"}eagenzAlpha"} \ No newline at end of file diff --git a/Clusteranalyse.ipynb b/Clusteranalyse.ipynb deleted file mode 100644 index 4625093..0000000 --- a/Clusteranalyse.ipynb +++ /dev/null @@ -1,3304 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 46, - "id": "a8557a1f", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'x': [15, 28, 30, 19, 18, 22, 10, 27, 22, 23], 'y': [17, 26, 17, 13, 18, 10, 11, 20, 6, 30]}\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAh8AAAGdCAYAAACyzRGfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAiwUlEQVR4nO3dfWyV9f3/8ddp0VPQ9mxV23O61qbxNl2VhMmtTG6+oZZkFdREhcHK3IwyICPMiJiYttlCASPJNlxn3MQZVMwiNRC1WgMtOqwFoZOCYWw7zi6eYzduzimVHqD9/P5gPT8PvT3t6afnHJ6P5Eo81/W5rr4/ufic8/K6dRhjjAAAACxJGesCAADA5YXwAQAArCJ8AAAAqwgfAADAKsIHAACwivABAACsInwAAACrCB8AAMCqcWNdwKW6u7v15ZdfKj09XQ6HY6zLAQAAQ2CMUXt7u3JycpSSMvCxjbgLH19++aXy8vLGugwAADAMra2tys3NHbBN3IWP9PR0SReLz8jIGONqAADAUASDQeXl5YV/xwcSd+Gj51RLRkYG4QMAgAQzlEsmuOAUAABYRfgAAABWET4AAIBVhA8AAGAV4QMAAFhF+AAAAFYRPgAAgFWEDwAAYFXcPWQMAC4HXd1GTd6TamvvVFZ6mqYUZCo1hfdZ4fIQ1ZGP6upq3X777eGnj06fPl3vvPNOeLkxRhUVFcrJydH48eM1e/ZsHTlyJOZFA0Aiq23xaebG3Vr0QqN+vr1Zi15o1MyNu1Xb4hvr0gArogofubm52rBhgw4cOKADBw5o7ty5WrBgQThgbNq0SZs3b9aWLVu0f/9+ud1uzZs3T+3t7aNSPAAkmtoWn5ZvOyhfoDNivj/QqeXbDhJAcFlwGGPMSDaQmZmpZ555Rg8//LBycnK0evVqrV27VpIUCoWUnZ2tjRs36tFHHx3S9oLBoFwulwKBAO92AZBUurqNZm7c3St49HBIcrvS9OHauZyCQcKJ5vd72BecdnV1afv27ero6ND06dPl9Xrl9/tVXFwcbuN0OjVr1izt27ev3+2EQiEFg8GICQCSUZP3ZL/BQ5KMJF+gU03ek/aKAsZA1OHj8OHDuvrqq+V0OvXYY4+ppqZGhYWF8vv9kqTs7OyI9tnZ2eFlfamqqpLL5QpPeXl50ZYEAAmhrb3/4DGcdkCiijp83HLLLWpublZjY6OWL1+usrIyHT16NLz80lfpGmMGfL3uunXrFAgEwlNra2u0JQFAQshKT4tpOyBRRX2r7ZVXXqkbb7xRknTHHXdo//79+vWvfx2+zsPv98vj8YTbt7W19Toa8k1Op1NOpzPaMgAg4UwpyJTHlSZ/oFN9XWzXc83HlIJM26UBVo34IWPGGIVCIRUUFMjtdquuri687Ny5c2poaNCMGTNG+mcAIOGlpjhUXloo6WLQ+Kaez+WlhVxsiqQX1ZGPp556SvPnz1deXp7a29u1fft21dfXq7a2Vg6HQ6tXr9b69et100036aabbtL69es1YcIELV68eLTqB4CEUlLkUfWSSarcdTTi4lO3K03lpYUqKfIMsDaQHKIKH1999ZWWLl0qn88nl8ul22+/XbW1tZo3b54k6YknntDZs2f1s5/9TKdOndLUqVP13nvvKT09fVSKB4BEVFLk0bxCN084xWVrxM/5iDWe8wEAQOKx8pwPAACA4SB8AAAAqwgfAADAKsIHAACwivABAACsInwAAACrCB8AAMAqwgcAALCK8AEAAKwifAAAAKsIHwAAwCrCBwAAsIrwAQAArCJ8AAAAqwgfAADAKsIHAACwivABAACsInwAAACrCB8AAMAqwgcAALCK8AEAAKwifAAAAKsIHwAAwCrCBwAAsIrwAQAArCJ8AAAAqwgfAADAKsIHAACwivABAACsInwAAACrCB8AAMAqwgcAALCK8AEAAKwifAAAAKsIHwAAwCrCBwAAsIrwAQAArCJ8AAAAqwgfAADAKsIHAACwivABAACsInwAAACrCB8AAMAqwgcAALBq3FgXAABAIurqNmrynlRbe6ey0tM0pSBTqSmOsS4rIRA+AACIUm2LT5W7jsoX6AzP87jSVF5aqJIizxhWlhg47QIAQBRqW3xavu1gRPCQJH+gU8u3HVRti2+MKkschA8AAIaoq9uoctdRmT6W9cyr3HVUXd19tUAPwgcAAEPU5D3Z64jHNxlJvkCnmrwn7RWVgAgfAAAMUVt7/8FjOO0uV4QPAACGKCs9LabtLleEDwAAhmhKQaY8rjT1d0OtQxfveplSkGmzrIRD+AAAYIhSUxwqLy2UpF4BpOdzeWkhz/sYBOEDAIAolBR5VL1kktyuyFMrbleaqpdM4jkfQ8BDxgAAiFJJkUfzCt084XSYCB8AAAxDaopD02+4ZqzLSEicdgEAAFYRPgAAgFWEDwAAYFVU4aOqqkqTJ09Wenq6srKytHDhQh07diyizbJly+RwOCKmadOmxbRoAACQuKIKHw0NDVqxYoUaGxtVV1enCxcuqLi4WB0dHRHtSkpK5PP5wtPbb78d06IBAEDiiupul9ra2ojPW7duVVZWlj755BPddddd4flOp1Nutzs2FQIAgKQyoms+AoGAJCkzM/IxsvX19crKytLNN9+sRx55RG1tbf1uIxQKKRgMRkwAACB5OYwxZjgrGmO0YMECnTp1Sh988EF4/uuvv66rr75a+fn58nq9evrpp3XhwgV98skncjqdvbZTUVGhysrKXvMDgYAyMjKGUxoAALAsGAzK5XIN6fd72OFjxYoVeuutt/Thhx8qNze333Y+n0/5+fnavn277rvvvl7LQ6GQQqFQRPF5eXmEDwAAEkg04WNYTzhdtWqVdu7cqb179w4YPCTJ4/EoPz9fx48f73O50+ns84gIAABITlGFD2OMVq1apZqaGtXX16ugoGDQdU6cOKHW1lZ5PLxoBwAARHnB6YoVK7Rt2za9+uqrSk9Pl9/vl9/v19mzZyVJZ86c0eOPP66PPvpIn3/+uerr61VaWqprr71W995776h0AAAAJJaorvlwOPp+W9/WrVu1bNkynT17VgsXLtShQ4d0+vRpeTwezZkzR7/85S+Vl5c3pL8RzTkjAAAQH0btmo/Bcsr48eP17rvvRrNJAABwmeHdLgAAwCrCBwAAsIrwAQAArCJ8AAAAqwgfAADAKsIHAACwivABAACsInwAAACrCB8AAMAqwgcAALCK8AEAAKwifAAAAKsIHwAAwCrCBwAAsIrwAQAArCJ8AAAAqwgfAADAKsIHAACwivABAACsInwAAACrCB8AAMAqwgcAALCK8AEAAKwifAAAAKsIHwAAwCrCBwAAsIrwAQAArCJ8AAAAqwgfAADAKsIHAACwivABAACsInwAAACrCB8AAMAqwgcAALCK8AEAAKwifAAAAKsIHwAAwCrCBwAAsIrwAQAArCJ8AAAAqwgfAADAKsIHAACwivABAACsInwAAACrCB8AAMAqwgcAALCK8AEAAKwifAAAAKsIHwAAwCrCBwAAsIrwAQAArCJ8AAAAqwgfAADAKsIHAACwivABAACsInwAAACrCB8AAMAqwgcAALBq3FgXAADA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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "#Clusteranalyse\n", - "\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import random\n", - "\n", - "#functions\n", - "def generate_random_number_array(n, rangeStart, rangeEnd):\n", - " array = [random.randint(rangeStart, rangeEnd) for _ in range(n)]\n", - " return array\n", - "\n", - "def generate_x_y_array(n, rangeStart, rangeEnd):\n", - " XYDict = {\n", - " \"x\": generate_random_number_array(n, rangeStart, rangeEnd),\n", - " \"y\": generate_random_number_array(n, rangeStart, rangeEnd)\n", - " }\n", - " return XYDict\n", - "\n", - " \n", - "# Beispielaufruf der Funktion mit n = 10 ; Range von 5 bis 30\n", - "#INPUT\n", - "numberOfDataPoints = 10\n", - "rangeStart = 5\n", - "rangeEnd = 30\n", - "\n", - "#ToDo\n", - "#INPUT: set number of clusters\n", - "#schrittweises lösen der aufgabe \n", - "#mockup carpet\n", - "#scikpy -> beobachter möglich?\n", - "\n", - "#dendogramm -> visualisierung über carpet edotor (online) -> visualisierungsalgos\n", - "#algo: numpy -> verteilung der einzelnen punkte -> häfung der punkte in gegebenen clusters -> verteilung \"schön\" machen (Noise-Verfahren)\n", - "\n", - "dictArray = generate_x_y_array(numberOfDataPoints, rangeStart, rangeEnd)\n", - "print(dictArray)\n", - "\n", - "plt.scatter(dictArray[\"x\"], dictArray[\"y\"])\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "866cde95", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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wbrOnTurd+/eKioqcmCillm2bJk2bdqkJ5980ulRJLWjaz5OmjFjhsLDw9WlSxeNGDFC7733ntMj+WXz5s2KjY3Vv//9b/Xr10/h4eGKj4/X1KlTfbczbu327Nmj8847r8Evtr59+/qeDwUnTpxocF8iSb51u3fvtj1Si9TV1am2tlZHjx7Vk08+qXXr1oVs5JaXl2v16tW6/PLL1aNHD6fHaVcmTpyo0047TdOmTdMXX3yhyspKvfHGG3rqqac0Y8YMRUVFOT1is5WXl+vjjz/W+eef7/QofikpKVFOTo7mzp2rbt26OT2OpHYUHzExMbr99tv11FNPaePGjXriiSdUVFSkjIwMrVu3zunxmuybb75RdXW1rrvuOo0dO1bvvPOO7r77bi1dulRXXHGFTAh8Z1xpaaliY2MbrD+5rrS01PZIzdK7d29t3bpVdXV1vnW1tbW+Izeh8j5Omj59ujp27Kj4+Hjdcccd+tvf/qYpU6Y4PVazrFixQjU1NbrxxhudHqXd+d3vfqcPPvhAe/bs0dlnn60uXbpo1KhRmjhxop544gmnx2uRGTNmqKqqSrNnz3Z6FL9Mnz5d55xzjqZNm+b0KP/L0ZM+DisrKzPdunUzffv2dXqUJktLSzOSTEFBQb31CxYsMJLM+vXrHZqs6dLS0szIkSMbrD98+HCj7621evbZZ40kM23aNPP111+br776ytx4440mLCzMSDIrV650ekS/fPnll2bbtm3mzTffNFOnTjUdOnQwjz32mNNjNUv//v3NGWecYf773/86PUqzheo1HwcPHjQ9e/Y0v//9783q1avNpk2bzLx580yXLl3M5MmTnR6v2ebMmWMkmb///e9Oj+KX1atXm4iICLN3717futZwzUe7jg9jjJk6daqRZKqrq50epUnS09ONJPPxxx/XW79v3z4jyTz66KMOTdZ06enpZsCAAQ3W79mzx0gyTz31lANTNc/cuXNN586djSQjyQwePNjMmjXLSDLvvvuu0+O1yNSpU014eLgpKSlxehS/fPLJJ0aSuf32250epUVCNT7Gjh1r4uPjzfHjx+utf+6554wkU1hY6NBkzZeXl2ckmUceecTpUfxy8gLZO++805SVlfmWcePGmaioKFNWVtbg78mWdnPa5VTM/5ymCJWLvE5eF/FLJ99Hhw6t/6/0ggsu0Oeff67a2tp6609eIxFKH32eNWuWjh07pt27d+vQoUPasmWLysrKFBUVpYsvvtjp8Vpk4MCBqq2t1RdffOH0KH559tlnJUk33XSTw5O0T7t27VLv3r0bXNtx8uPOoXJN10kPPPCA8vLylJeXp3vvvdfpcfxy7Ngxffvtt5o/f75OP/1037JixQpVVVXp9NNP1x/+8AdHZmv9v6mCqKysTG+88Yb69eunTp06OT1Ok1x77bWSpDVr1tRb/9Zbb0mS0tPTrc/kr2uuuUbHjx/Xyy+/XG/9kiVLlJycrEGDBjk0WfO43W716dNHqamp+uqrr7Rq1SrdfPPN8ng8To/WIhs3blSHDh101llnOT1Kk3m9Xi1btkwDBw4MqYhtS5KTk7V3714dP3683voPPvhAklrNBY9N8dBDDykvL09z5szR/fff7/Q4fktMTNTGjRsbLCNGjFCnTp20ceNGPfzww47MFrqfo/PT+PHj1b17d/Xv319xcXHav3+/5s+fr2+//VbPP/+80+M1WVZWlkaNGqUHH3xQdXV1Sk9P1/bt2/XAAw/oqquu0iWXXOL0iL8pOztbmZmZmjZtmioqKtSzZ0+tWLFCa9eu1bJlyxQWFub0iE2yZ88evfzyy+rfv7/cbrc++eQTzZ07N+S+bfaWW25Rly5dNHDgQCUkJOjYsWN66aWXtGrVKt19993q2rWr0yM22auvvqrvvvsupI96rFmzRlVVVaqsrJT005d2rV69WpJ0xRVX1Ptod2uUk5Oj0aNHKzMzU3fccYfi4uK0detWFRQUqHfv3srOznZ6xCaZP3++/vKXv2jkyJG68sorG3xLbij8Q69Tp07KyMhosP75559XWFhYo89Z48jJHgcUFBSYfv36mZiYGBMWFma6du1qrrnmGvPRRx85PZrfqqurzaxZs0xKSooJDw833bt3N7m5uSF1cV1lZaX505/+ZBITE01ERITp27evWbFihdNj+WXfvn1m6NChJjY21kRERJiePXuaOXPmOHYOtbmee+45c+mll5q4uDgTHh5uTjvtNDNs2DDzwgsvOD2a3zIzM01UVJSpqKhwepRmS01N9V1D9Mvl4MGDTo/XJBs2bDBZWVkmMTHReDwe06tXL3PnnXeaY8eOOT1akw0bNuyUfw+h/quzNVxw6jImBD6bCQAA2ox2fc0HAACwj/gAAABWER8AAMAq4gMAAFhFfAAAAKuIDwAAYBXxAQAArCI+AACAVcQHAACwivgAAABWER8AAMAq4gMAAFj1/wHa6fqknUAxSgAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "from scipy.cluster.hierarchy import dendrogram, linkage\n", - "\n", - "data = list(zip(dictArray[\"x\"], dictArray[\"y\"]))\n", - "\n", - "linkage_data = linkage(data, method='ward', metric='euclidean')\n", - "dendrogram(linkage_data)\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "39bab90c", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "from sklearn.cluster import AgglomerativeClustering\n", - "\n", - "\n", - "data = list(zip(dictArray[\"x\"], dictArray[\"y\"]))\n", - "\n", - "#INPUT\n", - "#Anzahl Cluster\n", - "numberOfCluster = 3;\n", - "\n", - "hierarchical_cluster = AgglomerativeClustering(n_clusters=numberOfCluster, affinity='euclidean', linkage='ward')\n", - "labels = hierarchical_cluster.fit_predict(data)\n", - "\n", - "plt.scatter(dictArray[\"x\"], dictArray[\"y\"], c=labels)\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "66b49468", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[ 1. 8. 3.16227766 2. ]\n", - " [ 5. 6. 4.47213595 2. ]\n", - " [ 3. 7. 5. 2. ]\n", - " [ 2. 4. 6.08276253 2. ]\n", - " [ 0. 9. 8.54400375 2. ]\n", - " [10. 13. 8.74642784 4. ]\n", - " [11. 14. 16.98528775 4. ]\n", - " [12. 15. 18.2254401 6. ]\n", - " [16. 17. 29.16904752 10. ]]\n" - ] - }, - { - "ename": "NameError", - "evalue": "name 'X' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m/var/folders/bs/5wndg3791vz7vxsh2h7qj_mw0000gn/T/ipykernel_41173/2459418396.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlinkage_matrix\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0mdct\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 7\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdct\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrow\u001b[0m \u001b[0;32min\u001b[0m \u001b[0menumerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlinkage_matrix\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mX\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mNameError\u001b[0m: name 'X' is not defined" - ] - } - ], - "source": [ - "#linkage_matrix = linkage(X, \"single\")\n", - "linkage_matrix = linkage_data\n", - "\n", - "print(linkage_matrix)\n", - "\n", - "dct = dict([(i, {i}) for i in range(X.shape[0])])\n", - "print(list(dct.values()))\n", - "for i, row in enumerate(linkage_matrix, X.shape[0]):\n", - " dct[i] = dct[row[0]].union(dct[row[1]])\n", - " del dct[row[0]]\n", - " del dct[row[1]]\n", - " print(list(dct.values()))" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "561dff9e", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 1 ---\n", - "Aktuelle Cluster: [[0], [1], [2], [3], [4], [5], [6], [7], [8], [9]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 3. 6. 0.13477076 2. ]\n", - " [ 0. 2. 0.14306129 2. ]\n", - " [ 1. 5. 0.18963685 2. ]\n", - " [ 9. 10. 0.32105694 3. ]\n", - " [ 4. 12. 0.35501172 3. ]\n", - " [11. 13. 0.37333899 5. ]\n", - " [ 8. 15. 0.68619926 6. ]\n", - " [14. 16. 0.92078621 9. ]\n", - " [ 7. 17. 1.06516792 10. ]]\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAqQAAAIOCAYAAABuwR8hAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABwtklEQVR4nO3dfVxUVeI/8M/laUCeUUCEERkBRRRTSUMjpUK0JFqg2jVNK9tMVFDM1XJ9IF1WUn+aK2RWpvsqs3DyuyqJrmjiGmulmCuooSCKUPiAGMWDw/n9QUyOMygDA1fw83695mVz5txzz507xIdzzz0jCSEEiIiIiIhkYiZ3B4iIiIjo/sZASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASveNjz76CJIk4dtvvzX4+rhx49CrVy+dsl69emHy5Mlt37k2cODAAUiShPT09LvWnTx5st6xm0JRUREkScKKFStM3rYhlZWVWLZsGYKDg+Hg4ACFQoFevXrhpZdewtGjR7X1Gj8LRUVFbdKPw4cPY/HixaioqGiT9uXUVp8VOfz3v//FH/7wB/Ts2RMKhQLu7u4ICQlBYmKi0W2NGjUK/fv3b1V/Gn9mDxw4oC3LyMjA4sWLDdb/29/+hu3btze7/c2bN+OPf/wj+vTpAzMzs05zHqlzYCAluoMvvvgCf/3rX+XuRpv761//ii+++ELubrTK2bNnMWjQIPz9739HWFgYtmzZgj179mDJkiX48ccfMWTIEFy/fr1d+nL48GEsWbKkUwbSzmLXrl0YPnw4KisrkZKSgj179mDNmjUYMWIEtm7dKkufBg8ejK+//hqDBw/WlmVkZGDJkiUG6xsbSP/5z3/i5MmTGDp0KHr37t3a7hKZlIXcHSC6lw0aNMhkbQkhUF1dDRsbm1a18+uvv7a6jdt19F9OGo0Gf/jDH3D58mV8/fXXOiNVI0eOxKRJk/Dll1/C0tJSxl623i+//IIuXbrI3Y1OISUlBT4+PsjMzISFxe+/Cv/4xz8iJSWlXftSV1cHSZLg4OCAhx56qM32k5mZCTOzhnGocePG4X//+1+b7YvIWBwhJboDQ5fsKysrMWfOHPj4+MDKygqenp5ISEhAVVWVTj1JkjB9+nS8++67CAgIgEKhwKZNmwAAS5YswbBhw+Di4gIHBwcMHjwYH3zwAYQQevsfN24c1Go1Bg0aBGtra+1oSUlJCf785z9DqVTCysoKPXr0QGxsLH788UedNurq6vDmm2+iR48ecHBwwOOPP47Tp0/r1DF0Gfbzzz/HsGHD4OjoiC5dukClUuGll17SqVNRUYHExESoVCooFAq4ubnhiSeewKlTp/Tey1WrVsHHxwd2dnYICQlBTk6OXp1vv/0WTz31FFxcXGBtbY1Bgwbhs88+06t3u+3bt+PEiROYP39+k5dNx44de8cw19T0jFGjRmHUqFHa5/X19Vi6dCn69OkDGxsbODk5ISgoCGvWrAEALF68GK+//joAwMfHB5Ik6V2G3bp1K0JCQmBraws7OztERETg2LFjOvudPHky7OzscOLECYwePRr29vZ47LHHAAB79+5FVFQUvLy8YG1tDV9fX7z66qu4fPmyThuLFy+GJEk4efIk/vSnP8HR0RHu7u546aWX9EaL161bh0ceeQRubm6wtbXFgAEDkJKSgrq6uibfMwB47LHH0LdvX73PrhACvr6+ePLJJ7VlaWlpGDhwIOzs7GBvb4++ffvijTfe0NmurKwMr776Kry8vGBlZQUfHx8sWbIEN2/evGM/jHXlyhV069ZNJ4w2agxtt/rkk08QEhICOzs72NnZ4YEHHsAHH3ygV++bb75BaGio9mfm73//O+rr67WvN16W/+c//4nExER4enpCoVCgoKBA75L95MmTsW7dOgDQfo4ap5pIkoSqqips2rRJW37r59QQQ8dFdK/gCCnddzQajcFfbrf/QjXkl19+wciRI3Hx4kW88cYbCAoKwsmTJ7Fw4UKcOHEC//73vyFJkrb+9u3bkZ2djYULF6J79+5wc3MD0DC38tVXX0XPnj0BADk5OZgxYwZKSkqwcOFCnX0ePXoU+fn5WLBgAXx8fGBra4uSkhI8+OCDqKur0/bjypUryMzMxLVr1+Du7q7d/o033sCIESPw/vvvo7KyEn/5y18QGRmJ/Px8mJubGzzOr7/+Gs899xyee+45LF68GNbW1jh//jyysrK0dW7cuIGHH34YRUVF+Mtf/oJhw4bh559/xsGDB1FaWoq+fftq665btw59+/bF6tWrATRMEXjiiSdQWFgIR0dHAMD+/fsxZswYDBs2DO+++y4cHR3x6aef4rnnnsMvv/xy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IB63h9HfXgUgoaAgAd26RTV5+b4DLPBDTWirc8dL9kRERNRsFRXZqKm5w9d3QqCm5gIqKvTXkrW0tAQA/PLLL23UO2prjeeu8VyaCkdIiYiIqNlqa5v3tZyG6pmbm8PJyQk//fQTAKBLly6Qmlrknu4pQgj88ssv+Omnn+Dk5ARzE69owEBKREREzWZl1bw1Ypuq1717dwDQhlLqWJycnLTn0JQYSImIiKjZnJxCoVB4oaamBIbnkUpQKLzg5GR4LVlJkuDh4QE3NzfU1dW1aV/JtCwtLU0+MtqIgZSIiIiaTZLM4eu75re77CXohtKGy+++vqvvuh6publ5m4Ub6nh4UxMREREZxdU1GoGB6VAodNeSVSi8uOQTtQhHSImIiMhorq7R6NYtSr5vaqJOhYGUiIiIWkSSzOHsPErublAnwEv2RERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmpRIE1NTYWPjw+sra0xZMgQZGdnN2u7//znP7CwsMADDzzQkt0SERERUSdkdCDdunUrEhIS8Oabb+LYsWMIDQ3F2LFjUVxcfMftrl+/jhdeeAGPPfZYiztLRERERJ2PJIQQxmwwbNgwDB48GGlpadqygIAAPP3000hOTm5yuz/+8Y/w8/ODubk5tm/fjtzc3Gbvs7KyEo6Ojrh+/TocHByM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TJw4EcHBwQgJCcF7772H4uJiTJ06FUDD6GZJSQk2b94MoCGMvvDCC1izZg0eeugh7eiqjY0NHB0dTXgoRERERNQRGR1In3vuOVy5cgVJSUkoLS1F//79kZGRAW9vbwBAaWmpzpqk69evx82bNxEXF4e4uDht+aRJk/DRRx+1/giIiIiIqEMzeh1SOXAdUiIiIqJ7W7utQ0pEREREZGoMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkZSF3B6iBRgNkZwOlpYCHBxAaCpiby90rIiIiorbHQHoPUKuB+Hjg4sXfy7y8gDVrgOho+fpFRERE1B54yV5majUQG6sbRgGgpKShXK2Wp19ERERE7YWBVEYaTcPIqBD6rzWWJSQ01CMiIiLqrBhIZZSdrT8yeishgAsXGuoRERERdVYMpDIqLTVtPSIiIqKOiIFURh4epq1HRERE1BExkMooNLThbnpJMvy6JAFKZUM9IiIios6KgVRG5uYNSzsB+qG08fnq1VyPlIiIiDo3BlKZRUcD6emAp6duuZdXQznXISUiIqLOjgvj3wOio4GoKH5TExEREd2fGEjvEebmwKhRcveCiIiIqP3xkj0RERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsLOTuQHMIIQAAlZWVMveEiIiIiAxpzGmNuc0Y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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 2 ---\n", - "Aktuelle Cluster: [[0], [1], [2], [4], [5], [7], [8], [9], [3, 6]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 3. 6. 0.13477076 2. ]\n", - " [ 0. 2. 0.14306129 2. ]\n", - " [ 1. 5. 0.18963685 2. ]\n", - " [ 9. 10. 0.32105694 3. ]\n", - " [ 4. 12. 0.35501172 3. ]\n", - " [11. 13. 0.37333899 5. ]\n", - " [ 8. 15. 0.68619926 6. ]\n", - " [14. 16. 0.92078621 9. ]\n", - " [ 7. 17. 1.06516792 10. ]]\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAqQAAAIOCAYAAABuwR8hAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABwp0lEQVR4nO3dfVxUVeI/8M/laSBgeFBAhAkZQUUUUklDIqVENCVaoPyuq2llm4kPKOZquT6QLiupP80VMivTfZVZOLqrEuiKJG6xVoq5gg8oiBoUZohRPDic3x8skyODMjBwBT/v12teNmfOPffcuUN8OPfcM5IQQoCIiIiISCZmcneAiIiIiO5vDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKR03/jggw8gSRK+/vprg6+PHz8evXr10ivr1asXpk6d2v6dawfZ2dmQJAlpaWl3rTt16tQmx24KxcXFkCQJq1evNnnbhlRWVmLlypUICgqCUqmEQqFAr1698MILL+DYsWO6eo2fheLi4nbpxxdffIFly5ahoqKiXdqXU3t9VuTwn//8B7/73e/w4IMPQqFQwM3NDcHBwUhISDC6rZEjR2LAgAFt6k/jz2x2drauLD09HcuWLTNY/y9/+Qt2797dorZLS0uxePFiBAcHo3v37lAqlRgyZAjeeecdaLXaNvWbyBQYSInuYNeuXfjzn/8sdzfa3Z///Gfs2rVL7m60yfnz5zFo0CD89a9/RVhYGLZv3479+/dj+fLl+P777zFkyBBcv369Q/ryxRdfYPny5V0ykHYV+/btw/Dhw1FZWYnk5GTs378f69evR0hICHbs2CFLnwYPHowvv/wSgwcP1pWlp6dj+fLlBusbE0i/+eYbbNu2DU888QS2bduGnTt3YsSIEXjllVfw0ksvmaL7RG1iIXcHiO5lgwYNMllbQghUV1fDxsamTe38+uuvbW7jdr179zZpex1Nq9Xid7/7Ha5evYovv/xSb6RqxIgRmDJlCj777DNYWlrK2Mu2++WXX/DAAw/I3Y0uITk5Gd7e3sjMzISFxW+/Cv/v//4PycnJHdqXuro6SJIEpVKJRx55pF32ERISgvPnz+v9DISHh6O2thYbN27E8uXLoVKp2mXfRC3BEVKiOzB0yb6yshLz58+Ht7c3rKys4OHhgfj4eFRVVenVkyQJM2fOxNtvvw0/Pz8oFAps3boVALB8+XIMGzYMzs7OUCqVGDx4MN577z0IIZrsf/z48dBoNBg0aBCsra11oyVXrlzBH//4R6hUKlhZWaFnz56IjY3F999/r9dGXV0dXn/9dfTs2RNKpRKjRo3CmTNn9OoYugz76aefYtiwYXBwcMADDzwAtVqNF154Qa9ORUUFEhISoFaroVAo4OrqiieffBKnT59u8l6uXbsW3t7esLOzQ3BwMHJzc5vU+frrr/HUU0/B2dkZ1tbWGDRoED755JMm9W63e/dunDx5EosWLWr2sunYsWPvGOaam54xcuRIjBw5Uve8vr4eK1asQN++fWFjYwNHR0cEBARg/fr1AIBly5bh1VdfBQB4e3tDkqQml2F37NiB4OBg2Nraws7ODhERETh+/LjefqdOnQo7OzucPHkSo0ePhr29PZ544gkAwIEDBxAVFQVPT09YW1vDx8cHL7/8Mq5evarXxrJlyyBJEk6dOoXf//73cHBwgJubG1544YUmo8UbN27EY489BldXV9ja2mLgwIFITk5GXV1ds+8ZADzxxBPo169fk8+uEAI+Pj4YN26criw1NRWBgYGws7ODvb09+vXrh9dee01vu7KyMrz88svw9PSElZUVvL29sXz5cty8efOO/TDWjz/+iO7du+uF0UZmZk1/NX700UcIDg6GnZ0d7Ozs8NBDD+G9995rUu+rr75CaGio7mfmr3/9K+rr63WvN16W//vf/46EhAR4eHhAoVCgsLCwySX7qVOnYuPGjQCg+xw1TjWRJAlVVVXYunWrrvzWz+ntnJycDP5BNnToUADA5cuX7/h+EbU3jpDSfUer1Rr85Xb7L1RDfvnlF4wYMQKXL1/Ga6+9hoCAAJw6dQpLlizByZMn8a9//QuSJOnq7969Gzk5OViyZAl69OgBV1dXAA1zK19++WU8+OCDAIDc3FzMmjULV65cwZIlS/T2eezYMRQUFGDx4sXw9vaGra0trly5gocffhh1dXW6fvz444/IzMzETz/9BDc3N932r732GkJCQvDuu++isrISf/rTnxAZGYmCggKYm5sbPM4vv/wSEyZMwIQJE7Bs2TJYW1vj4sWLyMrK0tW5ceMGHn30URQXF+NPf/oThg0bhp9//hmHDx9GaWkp+vXr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iIiIiLo+C2MqX716FVqtFm5ubnrlbm5uKCsrM7jNuXPnsHDhQuTk5MDComW7q6mpQU1Nje55ZWWlMd0kIiIiok6kVTc1SZKk91wI0aQMALRaLSZOnIjly5ejT58+LW4/KSkJDg4OuodKpWpNN4mIiIioEzAqkHbv3h3m5uZNRkN/+OGHJqOmAHDjxg18/fXXmDlzJiwsLGBhYYHExEScOHECFhYWyMrKMrifRYsW4fr167rHpUuXjOkmEREREXUiRl2yt7KywpAhQ3DgwAH87ne/05UfOHAAUVFRTeorlUqcPHlSrywlJQVZWVlIS0uDt7e3wf0oFAooFApjukZEREREnZRRgRQA5s2bh8mTJyMoKAjBwcF45513UFJSgunTpwNoGN28cuUKtm3bBjMzMwwYMEBve1dXV1hbWzcpJyIiIiLT0AqBnIoKlNbWwt3KCqGOjjA3ML3yXmF0IJ0wYQJ+/PFHJCYmorS0FAMGDEB6ejq8vLwAAKWlpXddk5SIiIiI2oemvBxzCgtx+ZYbxD0VCqz38UG0i4uMPWue0euQyoHrkBIRERHdnaa8HLGnTuH2cNc4Nprm799uobTD1iElIiIionuTVgjMKSxsEkYB6MriCwuhvQfHIhlIiYiIiLqAnIoKvcv0txMALtXUIKeiosP61FIMpERERERdQGltrUnrdSQGUiIiIqIuwN3KyqT1OhIDKREREVEXEOroCE+FAs0t7iQBUCkUCHV07MBetQwDKREREVEXYC5JWO/jAwBNQmnj83U+PvfkeqQMpERERERdRLSLC9L8/eFx2zdeeioU7brkU1sZvTA+EREREd27ol1cENW9e9f+piYiIiIiureZSxJGOjnJ3Y0W4yV7IiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkq1YF0pSUFHh7e8Pa2hpDhgxBTk5Os3U1Gg3Cw8Ph4uICpVKJ4OBgZGZmtrrDRERERNS1GB1Id+zYgfj4eLz++us4fvw4QkNDMXbsWJSUlBisf/jwYYSHhyM9PR3ffPMNwsLCEBkZiePHj7e580RERETU+UlCCGHMBsOGDcPgwYORmpqqK/Pz88PTTz+NpKSkFrXh7++PCRMmYMmSJS2qX1lZCQcHB1y/fh1KpdKY7hIRERFRB2hLXjNqhLS2thbffPMNRo8erVc+evRofPHFFy1qo76+Hjdu3ICzs7MxuyYiIiKiLsrCmMpXr16FVquFm5ubXrmbmxvKyspa1MaaNWtQVVWFZ599ttk6NTU1qKmp0T2vrKw0pptERERE1Im06qYmSZL0ngshmpQZsn37dixbtgw7duyAq6trs/WSkpLg4OCge6hUqtZ0k4iIiIg6AaMCaffu3WFubt5kNPSHH35oMmp6ux07duDFF1/EJ598glGjRt2x7qJFi3D9+nXd49KlS8Z0k4iIiIg6EaMCqZWVFYYMGYIDBw7olR84cADDhw9vdrvt27dj6tSp+OijjzBu3Li77kehUECpVOo9iIiIiKhrMmoOKQDMmzcPkydPRlBQEIKDg/HOO++gpKQE06dPB9AwunnlyhVs27YNQEMYfe6557B+/Xo88sgjutFVGxsbODg4mPBQiIiIiKgzMjqQTpgwAT/++CMSExNRWlqKAQMGID09HV5eXgCA0tJSvTVJN23ahJs3byIuLg5xcXG68ilTpuCDDz5o+xEQERERUadm9DqkcuA6pERERET3tg5bh5SIiIiIyNQYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJykLuDlADIbSoqMhBbW0prKzc4egYCkkyl7tbRERERO2OgfQeUF6uQWHhHNTUXNaVKRSe8PFZDxeXaBl7RkRERNT+eMleZuXlGpw6FasXRgGgpuYKTp2KRXm5RqaeEREREXUMBlIZCaFFYeEcAMLQqwCAwsJ4CKHt0H4RERERdSQGUhlVVOQ0GRnVJ1BTcwkVFTkd1iciIiKijsZAKqPa2lKT1iMiIiLqjBhIZWRl5W7SekRERESdEQOpjBwdQ6FQeAKQmqkhQaFQwdExtCO7RURERNShGEhlJEnm8PFZ3/js9lcBAD4+67geKREREXVpDKQyc3GJhr9/GhQKD71yhcIT/v5pXIeUiIiIujwujH8PcHGJRvfuUfymJiIiIrovMZDeIyTJHE5OI+XuBhEREVGH4yV7IiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWVnI3YGWEEIAACorK2XuCREREREZ0pjTGnObMTpFIL1x4wYAQKVSydwT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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 3 ---\n", - "Aktuelle Cluster: [[1], [4], [5], [7], [8], [9], [3, 6], [0, 2]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 3. 6. 0.13477076 2. ]\n", - " [ 0. 2. 0.14306129 2. ]\n", - " [ 1. 5. 0.18963685 2. ]\n", - " [ 9. 10. 0.32105694 3. ]\n", - " [ 4. 12. 0.35501172 3. ]\n", - " [11. 13. 0.37333899 5. ]\n", - " [ 8. 15. 0.68619926 6. ]\n", - " [14. 16. 0.92078621 9. ]\n", - " [ 7. 17. 1.06516792 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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QIcOHSA1tso93VeEEPj111/x888/w97eHqZGnl/DQEpERERN18LFZLt27QoA2lBK7Yu9vb32HBoTAykRERE1XQsXk5UkCS4uLnB2dkZNTU0rd5aMydzc3Ogjo/UYSImIiKjpjLSYrKmpaauFG2p/eFMTERERGYaLyZKRcYSUiIiIDMfFZMmIGEiJiIioebiYLBkJL9kTERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJqlmBNDk5GR4eHrC0tMSAAQOQmZnZpO3+85//wMzMDI8++mhzdktEREREDyCDA+mWLVsQGxuL+fPn49ixYwgKCsKoUaNQWFh41+1u3LiBl156CU8//XSzO0tEREREDx5JCCEM2WDQoEF47LHHkJKSoi3z8fHBn/70JyQkJDS63V/+8hd4eXnB1NQU27ZtQ3Z2dpP3WV5eDjs7O9y4cQO2traGdJeIiIiI2kBL8ppBI6TV1dX44YcfMGLECJ3yESNG4NChQ41ut3HjRpw7dw6LFi0yqHNERERE9OAzM6TylStXoNFo0KVLF53yLl26oKSkRO82Z8+exdy5c5GZmQkzs6btrqqqClVVVdrn5eXlhnSTiIiIiNqRZt3UJEmSznMhRIMyANBoNBg/fjyWLFkCb2/vJrefkJAAOzs77UOpVDanm0RERETUDhgUSDt37gxT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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 4 ---\n", - "Aktuelle Cluster: [[1], [5], [7], [8], [3, 6], [0, 2], [4, 9]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 3. 6. 0.13477076 2. ]\n", - " [ 0. 2. 0.14306129 2. ]\n", - " [ 1. 5. 0.18963685 2. ]\n", - " [ 9. 10. 0.32105694 3. ]\n", - " [ 4. 12. 0.35501172 3. ]\n", - " [11. 13. 0.37333899 5. ]\n", - " [ 8. 15. 0.68619926 6. ]\n", - " [14. 16. 0.92078621 9. ]\n", - " [ 7. 17. 1.06516792 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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4vTCKAAICEiQEH8gHlMGTGnx8n0nWOCHWmCuc8e77ImIiKjVckpydC7T305A4FL1JeSU6D++09raGgDw888/m61/ZF7N5675XJoKR0iJiIio1cputPLxnQbqWVpawtnZGT/88AMAoFu3btr1Q+neJoTAzz//jB9++AHOzs4mX9GAgZSIiIhazaN7Kx/f2UK93r17A4A2lFLn4uzsrD2HpsRASkRERK0W2jcUXo5eKK0uNTiPVIIEL0cvhPY1vJisJEnw8PCAu7s7GhoazN1dMiFra2uzrfXKQEpEREStZmlhiZSJKYj5MAYSJJ1QKqHp8vuWiVvuuh6ppaUlF7InLd7UREREREaJCohC+tPp8HS87fGdjl5c8onaRBKdYO2F6upqODk5oaqqCo6OjnJ3h4iIiCDvk5ro3tOevMZL9kRERNQmlhaWGNdvnNzdoC6Al+yJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhk1aZAmpqaCh8fH9ja2mL48OHIyclp1Xb/+c9/YGVlhQceeKAtuyUiIiKiLsjoQLpr1y7Ex8dj+fLlOHnyJEJDQzFp0iSUlJTccbuqqio8++yzePTRR9vcWSIiIiLqeiQhhDBmg5EjR+LBBx9EWlqatiwgIABPPvkkkpKSWtzu//2//wc/Pz9YWlpiz549yMvLa/U+q6ur4eTkhKqqKjg6OhrTXSIiIiLqAO3Ja0aNkNbX1+Orr77ChAkTdMonTJiAY8eOtbjd22+/jfPnz2PVqlVGdY6IiIiIuj4rYypfvXoVGo0GvXr10inv1asXysvLDW7z3XffYenSpcjJyYGVVet2V1dXh7q6Ou376upqY7pJRERERJ1Im25qkiRJ570QQq8MADQaDaZOnYo1a9bA39+/1e0nJSXByclJ+1IqlW3pJhERERF1AkYF0p49e8LS0lJvNPSHH37QGzUFgBs3buDLL7/EvHnzYGVlBSsrKyQmJuLUqVOwsrJCVlaWwf0sW7YMVVVV2telS5eM6SYRERERdSJGXbK3sbHB8OHDcejQIfz+97/Xlh86dAhTpkzRq+/o6IjTp0/rlKWmpiIrKwvp6enw8fExuB+FQgGFQmFM14iIiIiokzIqkALAokWLMH36dAQHByMkJAR///vfUVJSgjlz5gBoGt0sLS3Fe++9BwsLCwwePFhne3d3d9ja2uqVExEREZFpaDQa5OTkoKysDB4eHggNDYWlpaXc3WqR0YH0mWeewY8//ojExESUlZVh8ODByMjIgLe3NwCgrKzsrmuSEhEREZF5qNVqxMXF4fLly9oyLy8vpKSkICoqSsaetczodUjlwHVIiYiIiO5OrVYjJiYGt8e75pvP09PTzRZKO2wdUiIiIiK6N2k0GsTFxemFUQDasvj4eGg0mo7u2l0xkBIRERF1ATk5OTqX6W8nhMClS5eQk5PTgb1qHQZSIiIioi6grKzMpPU6EgMpERERURfg4eFh0nodiYGUiIiIqAsIDQ2Fl5eXwadnAk03NimVSoSGhnZwz+6OgZSIiIioC7C0tERKSgoA/ce8N7/fsmXLPbkeKQMpERERURcRFRWF9PR0eHp66pR7eXmZdcmn9uI6pERERERdjBxPampPXjP6SU1EREREdG+ztLTEuHHj5O5Gq/GSPRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIiklWbAmlqaip8fHxga2uL4cOHIycnp8W6arUa4eHhcHNzg6OjI0JCQpCZmdnmDhMRERFR12J0IN21axfi4+OxfPlynDx5EqGhoZg0aRJKSkoM1s/OzkZ4eDgyMjLw1VdfISwsDJGRkTh58mS7O09EREREnZ8khBDGbDBy5Eg8+OCDSEtL05YFBATgySefRFJSUqvaCAwMxDPPPIOVK1e2qn51dTWcnJxQVVUFR0dHY7pLRERERB2gPXnNqBHS+vp6fPXVV5gwYYJO+YQJE3Ds2LFWtdHY2IgbN27A1dXVmF0TERERURdlZUzlq1evQqPRoFevXjrlvXr1Qnl5eava2LRpE2pqavD000+3WKeurg51dXXa99XV1cZ0k4iIiIg6kTbd1CRJks57IYRemSE7d+7E6tWrsWvXLri7u7dYLykpCU5OTtqXUqlsSzeJiIiIqBMwKpD27NkTlpaWeqOhP/zwg96o6e127dqFF154AR9++CHGjx9/x7rLli1DVVWV9nXp0iVjuklEREREnYhRgdTGxgbDhw/HoUOHdMoPHTqEUaNGtbjdzp07MXPmTPzzn//EY489dtf9KBQKODo66ryIiIiIqGsyag4pACxatAjTp09HcHAwQkJC8Pe//x0lJSWYM2cOgKbRzdLSUrz33nsAmsLos88+i5SUFDz00EPa0VU7Ozs4OTmZ8FCIiIiIqDMyOpA+88wz+PHHH5GYmIiysjIMHjwYGRkZ8Pb2BgCUlZXprEm6fft23Lx5E7GxsYiNjdWWz5gxA++88077j4CIiIiIOjWj1yGVA9chJSIiIrq3ddg6pEREREREpsZASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWVnJ3gH6l0QA5OUBZGeDhAYSGApaWcveKiIiIyOwYSO8FajUQFwdcvvxbmZcXkJICREXJ1y8iIiKiDsBL9nJTq4GYGN0wCgClpU3larU8/SIiIiLqIAykctJomkZGhdD/rLksPr6pHhEREVEXxUAqp5wc/ZHRWwkBXLrUVI+IiIioi2IglVNZmWnrEREREXVCDKRy8vAwbT0iIiKiToiBVE6hoU1300uS4c8lCVAqm+oRERERdVEMpHKytGxa2gnQD6XN77ds4XqkRERE1KUxkMotKgpITwc8PXXLvbyayrkOKREREXVxXBj/XhAVBUyZwic1ERER0X2JgfReYWkJjBsndy+IiIiIOhwv2RMRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcnKSu4OtIYQ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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 5 ---\n", - "Aktuelle Cluster: [[1], [5], [7], [8], [3, 6], [0, 2], [4, 9]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 3. 6. 0.13477076 2. ]\n", - " [ 0. 2. 0.14306129 2. ]\n", - " [ 1. 5. 0.18963685 2. ]\n", - " [ 9. 10. 0.32105694 3. ]\n", - " [ 4. 12. 0.35501172 3. ]\n", - " [11. 13. 0.37333899 5. ]\n", - " [ 8. 15. 0.68619926 6. ]\n", - " [14. 16. 0.92078621 9. ]\n", - " [ 7. 17. 1.06516792 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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zz+Pn3/++a5zeQ8ePAgARl26bK+UlBSsXr0aK1aswOOPP47GxkacO3dOO1909uzZuH79OrZu3Qq1Wg13d3cA0F6GfeONN7BixQq8+OKLWLFiBRoaGvDmm28iJCQEJ06c0Llc29DQgKlTp+KVV17B0qVLtT+3Fy5cQHBwMGbPng1HR0eUlJRg8+bNGDt2LM6cOaM3EhwdHY3nn38eL7/8sja4A8B7772nrXPhwgVMmzZN+w+t06dPY/369Th37pxOvTvFx8cjMjIShw8fxoQJE7Tln3/+OS5cuIC33noLAPDxxx9j7ty5mD9/PjZu3AgzMzMUFRWhoKBAu01FRQVGjhwJMzMzrFy5EgMGDMDx48exbt06lJSU4P333zf6fLUmODgY77zzDhYsWIA//OEPePTRR1sdQV+5ciXWrl2LqKgoJCYmwtHREf/6179w6dIlnXoVFRX4wx/+gMTERKxatQqfffYZli1bhr59++KFF17Qqbts2TIEBwfj7bffhpmZGdzc3FBRUaFT59///d9RW1uLjIwMHD9+XFvu7u6O48eP44knnkBoaCj+/d//HQDaNL0oJycH9vb2qKurg6+vL15++WUkJCS0+v8Coi4jiB4S77//vgBw15eXl5fONl5eXmLmzJna98nJycLMzEx89dVXOvUyMjIEAJGZmaktAyAcHR3F9evX79ovjUYjGhsbRVJSkujZs6doamrS2b+5ubk4f/68zjYvvfSSsLS0FAUFBa22+8UXXwgAYsqUKTrln3zyiQAgjh8/ri2bOXOmzrFv3LhRABBVVVWttp+UlCQAiEOHDrVap7i4WAAQQ4cOFbdu3dKWnzhxQgAQO3fu1JYNGjRIDB8+XDQ2Nuq08fTTTwt3d3eh0Wha3c+kSZMEAFFXV9dqndu1/CwUFxdry+481y3GjRsnxo0bp9OfRx555K7tv/nmm3rtCyFEaWmpsLCwEPPnz9cpv3nzpujTp4947rnntGUzZ84UAMR777131301NTWJxsZGcenSJQFA/M///I/2s1WrVgkAIiUlRWebuXPnCmtra52ftdu1/Ex++OGHwtzcXOdn+M6fFY1GI1QqlYiMjNRpY/LkyWLAgAHafcybN084OTnd9VheeeUVYWdnJy5duqRT3vLzePbs2btub4xr166JsWPHan/3LS0txejRo0VycrK4efOmtt7FixeF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ycLcHOAV1+5H06RB/IF4vTAKAAICEiQkHEhA5MDIVi/fd4MFfqgVnXXueJc9ERERtVluaa7OZfo7CQhcrrmM3FL9x3daWloCAH7++edO6x91rpZz13IuTYUjpERERNRm5Tfb+PhOA/XMzc3h5OSEH374AQDQo0cP7fqhdH8TQuDnn3/GDz/8ACcnJ5OvaMBASkRERG3mbt/Gx3e2Uq9Pnz4AoA2l1L04OTlpz6EpMZASERFRm4X0C4GngyfKasoMziOVIMHTwRMh/QwvJitJEtzd3eHm5obGxsbO7i6ZkKWlZaet9cpASkRERG1mbmaO1EmpiPkkBhIknVAqofny+5ZJW+65Hqm5uTkXsict3tRERERERonyj0LGcxnwcLjj8Z0OnlzyidpFEt1g7YWamho4OjqiuroaDg4OcneHiIiIIO+Tmuj+05G8xkv2RERE1C7mZuYY33+83N2gBwAv2RMRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmqXYE0LS0N3t7esLa2xogRI5Cbm9um7f7+97/DwsICjzzySHt2S0REREQPIKMD6a5du5CQkIDly5fj1KlTCAkJweTJk1FaWnrX7aqrq/HCCy/gySefbHdniYiIiOjBIwkhhDEbjBo1Co8++ijS09O1Zf7+/njmmWeQnJzc6nb/7//9P/j6+sLc3Bx79uxBfn5+m/dZU1MDR0dHVFdXw8HBwZjuEhEREVEX6EheM2qEtKGhAd988w0mTpyoUz5x4kQcO3as1e3ef/99XLhwAatWrTKqc0RERET04LMwpvK1a9eg0WjQu3dvnfLevXujoqLC4Dbfffcdli5ditzcXFhYtG139fX1qK+v176vqakxpptERERE1I2066YmSZJ03gsh9MoAQKPRYNq0aVizZg38/Pza3H5ycjIcHR21L6VS2Z5uEhEREVE3YFQg7dWrF8zNzfVGQ3/44Qe9UVMAuHnzJr7++mvMmzcPFhYWsLCwQFJSEk6fPg0LCwtkZ2cb3M+yZctQXV2tfV2+fNmYbhIRERFRN2LUJXsrKyuMGDEChw4dwr/9279pyw8dOoTIyEi9+g4ODjhz5oxOWVpaGrKzs5GRkQFvb2+D+1EoFFAoFMZ0jYiIiIi6KaMCKQAsWrQIM2bMQFBQEIKDg/HnP/8ZpaWliI2NBdA8ullWVoYPP/wQZmZmGDJkiM72bm5usLa21isnIiIiItPQaDTIzc1FeXk53N3dERISAnNzc7m71SqjA+nzzz+PH3/8EUlJSSgvL8eQIUOQmZkJLy8vAEB5efk91yQlIiIios6hVqsRHx+PK1euaMs8PT2RmpqKqKgoGXvWOqPXIZUD1yElIiIiuje1Wo2YmBjcGe9abj7PyMjotFDaZeuQEhEREdH9SaPRID4+Xi+MAtCWJSQkQKPRdHXX7omBlIiIiOgBkJubq3OZ/k5CCFy+fBm5ubld2Ku2YSAlIiIiegCUl5ebtF5XYiAlIiIiegC4u7ubtF5XYiAlIiIiegCEhITA09PT4NMzgeYbm5RKJUJCQrq4Z/fGQEpERET0ADA3N0dqaioA/ce8t7zfsmXLfbkeKQMpERER0QMiKioKGRkZ8PDw0Cn39PTs1CWfOorrkBIRERE9YOR4UlNH8prRT2oiIiIiovububk5xo8fL3c32oyX7ImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkazaFUjT0tLg7e0Na2trjBgxArm5ua3WVavVCAsLg6urKxwcHBAcHIysrKx2d5iIiIiIHixGB9Jdu3YhISEBy5cvx6lTpxASEoLJkyejtLTUYP2cnByEhYUhMzMT33zzDUJDQxEREYFTp051uPNERERE1P1JQghhzAajRo3Co48+ivT0dG2Zv78/nnnmGSQnJ7epjYCAADz//PNYuXJlm+rX1NTA0dER1dXVcHBwMKa7RERERNQFOpLXjBohbWhowDfffIOJEyfqlE+cOBHHjh1rUxtNTU24efMmXFxcjNk1ERERET2gLIypfO3aNWg0GvTu3VunvHfv3qioqGhTG5s2bUJtbS2ee+65VuvU19ejvr5e+76mpsaYbhIRERFRN9Kum5okSdJ5L4TQKzNk586dWL16NXbt2gU3N7dW6yUnJ8PR0VH7UiqV7ekmEREREXUDRgXSXr16wdzcXG809IcfftAbNb3Trl278PLLL+OTTz7BhAkT7lp32bJlqK6u1r4uX75sTDeJiIiIqBsxKpBaWVlhxIgROHTokE75oUOHMHr06Fa327lzJ2bNmoW//e1veOqpp+65H4VCAQcHB50XERERET2YjJpDCgCLFi3CjBkzEBQUhODgYPz5z39GaWkpYmNjATSPbpaVleHDDz8E0BxGX3jhBaSmpuKxxx7Tjq7a2NjA0dHRhIdCRERERN2R0YH0+eefx48//oikpCSUl5djyJAhyMzMhJeXFwCgvLxcZ03S7du349atW4iLi0NcXJy2fObMmfjLX/7S8SMgIiIiom7N6HVI5cB1SImIiIjub122DikRERERkakxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSlYXcHaBfaTRAbi5QXg64uwMhIYC5udy9IiIiIup0DKT3A7UaiI8Hrlz5rczTE0hNBaKi5OsXERERURfgJXu5qdVATIxuGAWAsrLmcrVann4RERERdREGUjlpNM0jo0Lof9ZSlpDQXI+IiIjoAcVAKqfcXP2R0dsJAVy+3FyPiIiI6AHFQCqn8nLT1iMiIiLqhhhI5eTubtp6RERERN0QA6mcQkKa76aXJMOfSxKgVDbXIyIiInpAMZDKydy8eWknQD+UtrzfsoXrkRIREdEDjYFUblFRQEYG4OGhW+7p2VzOdUiJiIjoAceF8e8HUVFAZCSf1EREREQPJQbS+4W5OTB+vNy9ICIiIupyvGRPRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiI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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 6 ---\n", - "Aktuelle Cluster: [[1], [5], [7], [8], [3, 6], [0, 2], [4, 9]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 3. 6. 0.13477076 2. ]\n", - " [ 0. 2. 0.14306129 2. ]\n", - " [ 1. 5. 0.18963685 2. ]\n", - " [ 9. 10. 0.32105694 3. ]\n", - " [ 4. 12. 0.35501172 3. ]\n", - " [11. 13. 0.37333899 5. ]\n", - " [ 8. 15. 0.68619926 6. ]\n", - " [14. 16. 0.92078621 9. ]\n", - " [ 7. 17. 1.06516792 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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GEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJqVSBNTU2Fl5cXrK2tMWzYMGRnZzdbV61WIywsDC4uLrC3t0dwcDAyMzNb3WEiIiIi6lqMDqQ7d+5EfHw8li1bhpMnTyIkJAQTJ05EcXGxwfpHjhxBWFgYMjIy8PXXXyM0NBQRERE4efJkmztPRERERJ2fJIQQxmwwYsQIPPzww0hLS9OW+fn54amnnkJSUlKL2vD398ezzz6LFStWtKh+VVUVHBwcUFlZCXt7e2O6S0REREQdoC15zagR0rq6Onz99dcYP368Tvn48eNx7NixFrXR0NCAmzdvwtnZ2ZhdExEREVEXZWFM5WvXrkGj0aBXr1465b169UJZWVmL2ti4cSOqq6vxzDPPNFuntrYWtbW12vdVVVXGdJOIiIiIOpFW3dQkSZLOeyGEXpkhO3bswKpVq7Bz5064uro2Wy8pKQkODg7al1KpbE03iYiIiKgTMCqQ9uzZE+bm5nqjod9//73eqOmddu7ciRdffBEfffQRxo0bd9e6S5cuRWVlpfZ16dIlY7pJRERERJ2IUYHUysoKw4YNw8GDB3XKDx48iJEjRza73Y4dOzBjxgz885//xBNPPHHP/SgUCtjb2+u8iIiIiKhrMmoOKQAsXLgQ06ZNQ1BQEIKDg/H3v/8dxcXFmD17NoDG0c2SkhK8//77ABrD6HPPPYeUlBQ88sgj2tFVGxsbODg4mPBQiIiIiKgzMjqQPvvss/jhhx+QmJiI0tJSDB48GBkZGfD09AQAlJaW6qxJum3bNty6dQuxsbGIjY3Vlk+fPh3vvvtu24+AiIiIiDo1o9chlQPXISUiIiK6v3XYOqRERERERKbGQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVhZyd4B+odEA2dlAaSng5gaEhADm5nL3ioiIiKjdMZDeD9RqIC4OuHz51zIPDyAlBYiKkq9fRERERB2Al+zlplYDMTG6YRQASkoay9VqefpFRERE1EEYSOWk0TSOjAqh/1lTWXx8Yz0iIiKiLoqBVE7Z2fojo7cTArh0qbEeERERURfFQCqn0lLT1iMiIiLqhBhI5eTmZtp6RERERJ0QA6mcQkIa76aXJMOfSxKgVDbWIyIiIuqiGEjlZG7euLQToB9Km95v3sz1SImIiKhLYyCVW1QUkJ4OuLvrlnt4NJZzHVIiIiLq4rgw/v0gKgqIjOSTmoiIiOiBxEB6vzA3B8aOlbsXRERERB2Ol+yJiIiISFYMpEREREQk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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 7 ---\n", - "Aktuelle Cluster: [[1], [5], [7], [8], [3, 6], [0, 2], [4, 9]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 3. 6. 0.13477076 2. ]\n", - " [ 0. 2. 0.14306129 2. ]\n", - " [ 1. 5. 0.18963685 2. ]\n", - " [ 9. 10. 0.32105694 3. ]\n", - " [ 4. 12. 0.35501172 3. ]\n", - " [11. 13. 0.37333899 5. ]\n", - " [ 8. 15. 0.68619926 6. ]\n", - " [14. 16. 0.92078621 9. ]\n", - " [ 7. 17. 1.06516792 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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KRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkaxaFUhTU1Ph5eUFa2trDB8+HNnZ2c3WVavVCA0NhYuLC+zt7REUFITMzMxWd5iIiIiIuhajA+nOnTsRHx+PZcuW4dSpUwgODsakSZNQXFxssP7Ro0cRGhqKjIwMfP311wgJCUF4eDhOnTrV5s4TERERUecnCSGEMTuMHDkSDz/8MNLS0rRlfn5+ePrpp5GUlNSiNvz9/TFlyhSsWLGiRfWrqqrg4OCAyspK2NvbG9NdIiIiIuoAbclrRo2Q1tXV4euvv8aECRN0yidMmIDjx4+3qI2GhgbcvHkTzs7OxhyaiIiIiLooC2MqX7t2DRqNBr169dIp79WrF8rKylrUxsaNG1FdXY1nn3222Tq1tbWora3Vvq+qqjKmm0RERETUibTqoSZJknTeCyH0ygzZsWMHVq1ahZ07d8LV1bXZeklJSXBwcNC+lEpla7pJRERERJ2AUYG0Z8+eMDc31xsN/eGHH/RGTe+0c+dOvPTSS/j4448xfvz4u9ZdunQpKisrta/Lly8b000iIiIi6kSMCqRWVlYYPnw4Dh06pFN+6NAhjBo1qtn9duzYgZkzZ+If//gHnnjiiXseR6FQwN7eXudFRERERF2TUXNIAWDhwoWYPn06AgMDERQUhL/97W8oLi5GTEwMgMbRzZKSEnzwwQcAGsPo888/j5SUFDzyyCPa0VUbGxs4ODiY8FSIiIiIqDMyOpBOmTIFP/74IxITE1FaWorBgwcjIyMDnp6eAIDS0lKdNUm3bduGW7duITY2FrGxsdryGTNm4L333mv7GRARERFRp2b0OqRy4DqkRERERPe3DluHlIiIiIjI1BhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcnKQu4O0K80GiA7GygtBdzcgOBgwNxc7l4RERERtTsG0vuBWg3ExQFXrvxW5uEBpKQAkZHy9YuIiIioA/CWvdzUaiA6WjeMAkBJSWO5Wi1Pv4iIiIg6CAOpnDSaxpFRIfS3NZXFxzfWIyIiIuqiGEjllJ2tPzJ6OyGAy5cb6xERERF1UQykciotNW09IiIiok6IgVRObm6mrUdERETUCTGQyik4uPFpekkyvF2SAKWysR4RERFRF8VAKidz88alnQD9UNr0fvNmrkdKREREXRoDqdwiI4H0dMDdXbfcw6OxnOuQEhERURfHhfHvB5GRQEQEv6mJiIiIHkgMpPcLc3Ng3Di5e0FERETU4XjLnoiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYWcnegJYQQAICqqiqZe0JEREREhjTltKbcZoxOEUhv3rwJAFAqlTL3hIiIiIju5ubNm3BwcDBqH0m0JsZ2sIaGBnz//ffo3r07JEkyev+qqioolUpcvnwZ9vb27dBDkguvbdfG69t18dp2bby+Xdfdrq0QAjdv3kSfPn1gZmbcrNBOMUJqZmYGDw+PNrdjb2/PX4wuite2a+P17bp4bbs2Xt+uq7lra+zIaBM+1EREREREsmIgJSIiIiJZPRCBVKFQYOXKlVAoFHJ3hUyM17Zr4/XtunhtuzZe366rva5tp3ioiYiIiIi6rgdihJSIiIiI7l8MpEREREQkKwZSIiIiIpIVAykRERERyarLBNLU1FR4eXnB2toaw4cPR3Z29l3rf/755xg+fDisra2hUqnw5ptvdlBPyVjGXFu1Wo3Q0FC4uLjA3t4eQUFByMzM7MDekrGM/d1t8u9//xsWFhZ46KGH2reD1GrGXtva2losW7YMnp6eUCgU6N+/P955550O6i0Zy9jr++GHH2Lo0KHo1q0b3Nzc8MILL+DHH3/soN5SSx09ehTh4eHo06cPJEnCnj177rmPSTKV6AI++ugjYWlpKbZv3y7y8vJEXFycsLW1FZcuXTJY/+LFi6Jbt24iLi5O5OXlie3btwtLS0uRnp7ewT2nezH22sbFxYn169eLEydOiG+//VYsXbpUWFpaipMnT3Zwz6kljL2+TSoqKoRKpRITJkwQQ4cO7ZjOklFac22feuopMXLkSHHo0CFRWFgo/vOf/4h///vfHdhrailjr292drYwMzMTKSkp4uLFiyI7O1v4+/uLp59+uoN7TveSkZEhli1bJnbt2iUAiN27d9+1vqkyVZcIpCNGjBAxMTE6ZQMHDhRLliwxWH/x4sVi4MCBOmUvv/yyeOSRR9qtj9Q6xl5bQwYNGiRWr15t6q6RCbT2+k6ZMkUsX75crFy5koH0PmXstf3000+Fg4OD+PHHHzuie9RGxl7f119/XahUKp2yN954Q3h4eLRbH6ntWhJITZWpOv0t+7q6Onz99deYMGGCTvmECRNw/Phxg/t88cUXevXDwsLw1Vdfob6+vt36SsZpzbW9U0NDA27evAlnZ+f26CK1QWuv77vvvosLFy5g5cqV7d1FaqXWXNv/+7//Q2BgIJKTk+Hu7g5fX18sWrQIv/zyS0d0mYzQmus7atQoXLlyBRkZGRBC4OrVq0hPT8cTTzzREV2mdmSqTGVh6o51tGvXrkGj0aBXr1465b169UJZWZnBfcrKygzWv3XrFq5duwY3N7d26y+1XGuu7Z02btyI6upqPPvss+3RRWqD1lzf7777DkuWLEF2djYsLDr9/766rNZc24sXL+LYsWOwtrbG7t27ce3aNcyZMwfXr1/nPNL7TGuu76hRo/Dhhx9iypQpqKmpwa1bt/DUU09hy5YtHdFlakemylSdfoS0iSRJOu+FEHpl96pvqJzkZ+y1bbJjxw6sWrUKO3fuhKura3t1j9qopddXo9Fg6tSpWL16NXx9fTuqe9QGxvzuNjQ0QJIkfPjhhxgxYgQmT56MTZs24b333uMo6X3KmOubl5eH+fPnY8WKFfj6669x4MABFBYWIiYmpiO6Su3MFJmq0w8x9OzZE+bm5nr/Kvvhhx/0EnuT3r17G6xvYWGBHj16tFtfyTitubZNdu7ciZdeegmffPIJxo8f357dpFYy9vrevHkTX331FU6dOoW5c+cCaAwxQghYWFjg4MGDeOyxxzqk73R3rfnddXNzg7u7OxwcHLRlfn5+EELgypUr8PHxadc+U8u15vomJSVh9OjRePXVVwEAAQEBsLW1RXBwMNauXcs7k52YqTJVpx8htbKywvDhw3Ho0CGd8kOHDmHUqFEG9wkKCtKrf/DgQQQGBsLS0rLd+krGac21BRpHRmfOnIl//OMfnJ90HzP2+trb2+PMmTPIzc3VvmJiYjBgwADk5uZi5MiRHdV1uofW/O6OHj0a33//PX766Sdt2bfffgszMzN4eHi0a3/JOK25vj///DPMzHQjh7m5OYDfRtOoczJZpjLqEaj7VNPyE2+//bbIy8sT8fHxwtbWVhQVFQkhhFiyZImYPn26tn7TEgULFiwQeXl54u233+ayT/cpY6/tP/7xD2FhYSG2bt0qSktLta+Kigq5ToHuwtjreyc+ZX//Mvba3rx5U3h4eIjo6Ghx9uxZ8fnnnwsfHx8xa9YsuU6B7sLY6/vuu+8KCwsLkZqaKi5cuCCOHTsmAgMDxYgRI+Q6BWrGzZs3xalTp8SpU6cEALFp0yZx6tQp7ZJe7ZWpukQgFUKIrVu3Ck9PT2FlZSUefvhh8fnnn2u3zZgxQ4wdO1an/pEjR8SwYcOElZWV6Nevn0hLS+vgHlNLGXNtx44dKwDovWbMmNHxHacWMfZ393YMpPc3Y69tfn6+GD9+vLCxsREeHh5i4cKF4ueff+7gXlNLGXt933jjDTFo0CBhY2Mj3NzcxHPPPSeuXLnSwb2me/nss8/u+vdoe2UqSQiOlRMRERGRfDr9HFIiIiIi6twYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIiktX/BzqXKjjuR+p5AAAAAElFTkSuQmCC\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 8 ---\n", - "Aktuelle Cluster: [[1], [5], [7], [8], [3, 6], [0, 2], [4, 9]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 3. 6. 0.13477076 2. ]\n", - " [ 0. 2. 0.14306129 2. ]\n", - " [ 1. 5. 0.18963685 2. ]\n", - " [ 9. 10. 0.32105694 3. ]\n", - " [ 4. 12. 0.35501172 3. ]\n", - " [11. 13. 0.37333899 5. ]\n", - " [ 8. 15. 0.68619926 6. ]\n", - " [14. 16. 0.92078621 9. ]\n", - " [ 7. 17. 1.06516792 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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b9++4qWXXhJFRUU6fVm+fLno06ePMDMz07tzeu/evSIkJETY29sLhUIhPD09RXR0tPjnP/+prTNz5kxha2trcD/z8vJEaGio6N69u3BychLPPPOMKC4u1vtMm+6yLy8v11nf0P7v27dPDB06VFhbWwt3d3fx6quvis8++0yv73d/V+703nvvCQDio48+0lv2/vvvi5CQENGrVy9hZWWl/b7+97//1alXXl4uFi5cKLy8vISlpaVwdnYWI0aMECtWrBA//vijwe22xu7du8W0adOEj4+PzndlxowZBmev+OCDD8Sjjz4qrK2thZ2dnRg2bJjOz9C4ceOEv7+/3np3f17N/VzeuezOz7u2tlbMnj1buLi4CEmSdI5bbm6uGDNmjOjWrZsAoPM9NaS0tFTMnz9feHt7C2tra9GnTx/x5JNP6sy4QSQXSYgWTL5IRER0H1FRUcjJyUFRUVGnfyoWEXUsnrInIqJWq62txcmTJ3HixAl8+umn2LJlC8MoERmNI6RERNRqRUVF8PLygr29PaZNm4a//OUvzT4BjIioOQykRERERCQrToxPRERERLJiICUiIiIiWTGQEhEREZGsOsVd9g0NDfjuu+/QvXv3Dn/cGhERERHdnxACt27dQp8+fWBmZtyYZ6cIpN99951JnyFMRERERO3jypUrRj9VrVME0u7duwNo3EF7e3uZe0NEREREd6uqqoJSqdTmNmN0ikDadJre3t6egZSIiIjoAdaayyt5UxMRERERyYqBlIiIiIhkxUBKRERERLLqFNeQEhERUdei0WhQX18vdzfICJaWljA3N2+XthlIiYiIqMMIIVBWVoaKigq5u0Kt4OjoiN69e5t8XngGUiIiIuowTWHU1dUV3bp14wNvOgkhBH766Sd8//33AAA3NzeTts9ASkRERB1Co9Fow2iPHj3k7g4ZycbGBgDw/fffw9XV1aSn73lTExEREXWIpmtGu3XrJnNPqLWajp2pr/9lICUiIqIOxdP0nVd7HTsGUiIiIiKSFQMpERERkYlIkoS9e/fK3Y1Oh4GUiIiIqAXKysqwYMECqFQqKBQKKJVKhIeH48iRI+2yvaNHj0KSpHadIuvmzZuYMWMGHBwc4ODggBkzZsgyJRfvsiciIqJOR6MBsrOB0lLAzQ0IDgbaac52AEBRURHGjBkDR0dHJCUlISAgAPX19cjI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ovbHQEpERB0qMhJIS2u82/7OqZ88PBrDKM+4dg7qfDViD8biatUdj++090DypGRE+vEgknEYSImIqMNFRgIREUB2NlBa2njNaHAwR0Y7C3W+GtEfR0Pgrsd3VpUg+uNopD2bxlBKRmEgJSIiWZibAzzj2vloGjSIPRirF0YBQEBAgoS4g3GIGBDR7On7TjDBDzWjvY4d77InIiKiFssuztY5TX83AYErVVeQXaz/+E5LS0sAwE8//dRu/aP21XTsmo6lqXCElIiIiFqs9FYLH99poJ65uTkcHR3x/fffAwC6deumnT+UHmxCCPz000/4/vvv4ejoaPIZDRhIiYiIqMXcurfw8Z3N1OvduzcAaEMpdS6Ojo7aY2hKDKRERETUYsF9g+Fh74GSqhKD15FKkOBh74HgvoYnk5UkCW5ubnB1dUV9fX17d5dMyNLSst3memUgJSIiohYzNzNH8qRkRH8cDQmSTiiV0Hj6feukrfedj9Tc3JwT2ZMWb2oiIiIio0T6RSLt2TS429/1+E57D075RK0iiU4w90JVVRUcHBxQWVkJe3t7ubtDREREkPdJTfTgaUte4yl7IiIiahVzM3OM7zde7m5QF8BT9kREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJqVSBNSUmBl5cXrK2tMWLECGRnZ7dovX/961+wsLDAI4880prNEhEREVEXZHQg3b17N+Li4rBixQqcOnUKwcHBmDx5MoqLi++5XmVlJZ5//nn86le/anVniYiIiKjrkYQQwpgVRo0aheHDhyM1NVVb5ufnh6effhqJiYnNrveb3/wGPj4+MDc3x969e5Gbm9vibVZVVcHBwQGVlZWwt7c3prtERERE1AHakteMGiGtq6vD119/jYkTJ+qUT5w4EcePH292vXfffRcXL17E6tWrjeocEREREXV9FsZUvn79OjQaDXr16qVT3qtXL5SVlRlc59tvv8WyZcuQnZ0NC4uWba62tha1tbXa91VVVcZ0k4iIiIg6kVbd1CRJks57IYReGQBoNBpMmzYNa9euha+vb4vbT0xMhIODg/alVCpb000iIiIi6gSMCqQ9e/aEubm53mjo999/rzdqCgC3bt3Cf/7zH8yfPx8WFhawsLBAQkICTp8+DQsLC2RmZhrczvLly1FZWal9XblyxZhuEhEREVEnYtQpeysrK4wYMQKHDx/Gr3/9a2354cOHERERoVff3t4eZ86c0SlLSUlBZmYm0tLS4OXlZXA7CoUCCoXCmK4RERERUSdlVCAFgMWLF2PGjBkIDAxEUFAQ/vrXv6K4uBhz584F0Di6WVJSgg8++ABmZmYYPHiwzvqurq6wtrbWKyciIiIi09BoNMjOzkZpaSnc3NwQHBwMc3NzubvVLKMD6XPPPYcffvgBCQkJKC0txeDBg5Geng5PT08AQGlp6X3nJCUiIiKi9qFWqxEbG4urV69qyzw8PJCcnIzIyEgZe9Y8o+chlQPnISUiIiK6P7VajejoaNwd75puPk9LS2u3UNph85ASERER0YNJo9EgNjZWL4wC0JbFxcVBo9F0dNfui4GUiIiIqAvIzs7WOU1/NyEErly5guzs7A7sVcswkBIRERF1AaWlpSat15EYSImIiIi6ADc3N5PW60gMpERERERdQHBwMDw8PAw+PRNovLFJqVQiODi4g3t2fwykRERERF2Aubk5kpOTAeg/5r3p/datWx/I+UgZSImIiIi6iMjISKSlpcHd3V2n3MPDo12nfGorzkNKRERE1MXI8aSmtuQ1o5/UREREREQPNnNzc4wfP17ubrQYT9kTERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZtSqQpqSkwMvLC9bW1hgxYgSys7ObratWqxEaGgoXFxfY29sjKCgIGRkZre4wEREREXUtRgfS3bt3Iy4uDitWrMCpU6cQHByMyZMno7i42GD9rKwshIaGIj09HV9//TVCQkIQHh6OU6dOtbnzRERERNT5SUIIYcwKo0aNwvDhw5Gamqot8/Pzw9NPP43ExMQWteHv74/nnnsOq1atalH9qqoqODg4oLKyEvb29sZ0l4iIiIg6QFvymlEjpHV1dfj6668xceJEnfKJEyfi+PHjLWqjoaEBt27dgrOzszGbJiIiIqIuysKYytevX4dGo0GvXr10ynv16oWysrIWtbF582ZUV1fj2WefbbZObW0tamtrte+rqqqM6SYRERERdSKtuqlJkiSd90IIvTJDdu3ahTVr1mD37t1wdXVttl5iYiIcHBy0L6VS2ZpuEhEREVEnYFQg7dmzJ8zNzfVGQ7///nu9UdO77d69Gy+99BI+/vhjTJgw4Z51ly9fjsrKSu3rypUrxnSTiIiIiDoRowKplZUVRowYgcOHD+uUHz58GKNHj252vV27dmHWrFn4+9//jieffPK+21EoFLC3t9d5EREREVHXZNQ1pACwePFizJgxA4GBgQgKCsJf//pXFBcXY+7cuQAaRzdLSkrwwQcfAGgMo88//zySk5Px2GOPaUdXbWxs4ODgYMJdISIiIqLOyOhA+txzz+GHH35AQkICSktLMXjwYKSnp8PT0xMAUFpaqjMn6Y4dO3D79m3ExMQgJiZGWz5z5ky89957bd8DIiIiIurUjJ6HVA6ch5SIiIjowdZh85ASEREREZkaAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWVnI3QH6H40GyM4GSksBNzcgOBgwN5e7V0RERETtjoH0QaBWA7GxwNWrv5R5eADJyUBkpHz9IiIiIuoAPGUvN7UaiI7WDaMAUFLSWK5Wy9MvIiIiog7CQConjaZxZFQI/WVNZXFxjfWIiIiIuigGUjllZ+uPjN5JCODKlcZ6RERERF0UA6mcSktNW4+IiIioE2IglZObm2nrEREREXVCDKRyCg5uvJtekgwvlyRAqWysR0RERNRFMZDKydy8cWonQD+UNr3fupXzkRIREVGXxkAqt8hIIC0NcHfXLffwaCznPKRERETUxXFi/AdBZCQQEcEnNREREdFDiYH0QWFuDowfL3cviIiIiDocT9kTERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJykLuDrSEEAIAUFVVJXNPiIiIiMiQppzWlNuM0SkC6a1btwAASqVS5p4QERER0b3cunULDg4ORq0jidbE2A7W0NCA7777Dt27d4ckSUavX1VVBaVSiStXrsDe3r4dekhy4bHt2nh8uy4e266Nx7frutexFULg1q1b6NOnD8zMjLsqtFOMkJqZmcHDw6PN7djb2/MHo4vise3aeHy7Lh7bro3Ht+tq7tgaOzLahDc1EREREZGsGEiJiIiISFYPRSBVKBRYvXo1FAqF3F0hE+Ox7dp4fLsuHtuujce362qvY9spbmoiIiIioq7roRghJSIiIqIHFwMpEREREcmKgZSIiIiIZMVASkRERESy6jKBNCUlBV5eXrC2tsaIESOQnZ19z/pffPEFRowYAWtra6hUKrz55psd1FMyljHHVq1WIzQ0FC4uLrC3t0dQUBAyMjI6sLdkLGN/dpv861//goWFBR555JH27SC1mrHHtra2FitWrICnpycUCgX69++Pd955p4N6S8Yy9vh++OGHGDp0KLp16wY3Nze88MIL+OGHHzqot9RSWVlZCA8PR58+fSBJEvbu3XvfdUySqUQX8NFHHwlLS0uxc+dOkZeXJ2JjY4Wtra24fPmywfqXLl0S3bp1E7GxsSIvL0/s3LlTWFpairS0tA7uOd2Pscc2NjZWbNy4UZw4cUJcuHBBLF++XFhaWoqTJ092cM+pJYw9vk0qKiqESqUSEydOFEOHDu2YzpJRWnNsp06dKkaNGiUOHz4sCgsLxb///W/xr3/9qwN7TS1l7PHNzs4WZmZmIjk5WVy6dElkZ2cLf39/8fTTT3dwz+l+0tPTxYoVK8SePXsEAPHpp5/es76pMlWXCKQjR44Uc+fO1SkbOHCgWLZsmcH6S5cuFQMHDtQpe/nll8Vjjz3Wbn2k1jH22BoyaNAgsXbtWlN3jUygtcf3ueeeEytXrhSrV69mIH1AGXtsP/vsM+Hg4CB++OGHjugetZGxx/f1118XKpVKp+yNN94QHh4e7dZHaruWBFJTZapOf8q+rq4OX3/9NSZOnKhTPnHiRBw/ftzgOl9++aVe/bCwMPznP/9BfX19u/WVjNOaY3u3hoYG3Lp1C87Ozu3RRWqD1h7fd999FxcvXsTq1avbu4vUSq05tv/v//0/BAYGIikpCe7u7vD19cWSJUvw888/d0SXyQitOb6jR4/G1atXkZ6eDiEErl27hrS0NDz55JMd0WVqR6bKVBam7lhHu379OjQaDXr16qVT3qtXL5SVlRlcp6yszGD927dv4/r163Bzc2u3/lLLtebY3m3z5s2orq7Gs88+2x5dpDZozfH99ttvsWzZMmRnZ8PCotP/76vLas2xvXTpEo4dOwZra2t8+umnuH79OubNm4cbN27wOtIHTGuO7+jRo/Hhhx/iueeeQ01NDW7fvo2pU6di27ZtHdFlakemylSdfoS0iSRJOu+FEHpl96tvqJzkZ+yxbbJr1y6sWbMGu3fvhqura3t1j9qopcdXo9Fg2rRpWLt2LXx9fTuqe9QGxvzsNjQ0QJIkfPjhhxg5ciSmTJmCLVu24L333uMo6QPKmOObl5eHhQsXYtWqVfj6669x8OBBFBYWYu7cuR3RVWpnpshUnX6IoWfPnjA3N9f7q+z777/XS+xNevfubbC+hYUFevTo0W59JeO05tg22b17N1566SV88sknmDBhQnt2k1rJ2ON769Yt/Oc//8GpU6cwf/58AI0hRggBCwsLHDp0CE888USH9J3urTU/u25ubnB3d4eDg4O2zM/PD0IIXL16FT4+Pu3aZ2q51hzfxMREjBkzBq+++ioAICAgALa2tggODsb69et5ZrITM1Wm6vQjpFZWVhgxYgQOHz6sU3748GGMHj3a4DpBQUF69Q8dOoTAwEBYWlq2W1/JOK05tkDjyOisWbPw97//ndcnPcCMPb729vY4c+YMcnNzta+5c+diwIAByM3NxahRozqq63QfrfnZHTNmDL777jv8+OOP2rILFy7AzMwMHh4e7dpfMk5rju9PP/0EMzPdyGFubg7gl9E06pxMlqmMugXqAdU0/cTbb78t8vLyRFxcnLC1tRVFRUVCCCGWLVsmZsyYoa3fNEXBokWLRF5ennj77bc57dMDythj+/e//11YWFiI7du3i9LSUu2roqJCrl2gezD2+N6Nd9k/uIw9trdu3RIeHh4iOjpanD17VnzxxRfCx8dHzJ49W65doHsw9vi+++67wsLCQqSkpIiLFy+KY8eOicDAQDFy5Ei5doGacevWLXHq1Clx6tQpAUBs2bJFnDp1SjulV3tlqi4RSIUQYvv27cLT01NYWVmJ4cOHiy+++EK7bObMmWLcuHE69Y8ePSqGDRsmrKysRL9+/URqamoH95hayphjO27cOAFA7zVz5syO7zi1iLE/u3diIH2wGXts8/PzxYQJE4SNjY3w8PAQixcvFj/99FMH95paytjj+8Ybb4hBgwYJGxsb4ebmJn73u9+Jq1evdnCv6X4+//zze/4eba9MJQnBsXIiIiIikk+nv4aUiIiIiDo3BlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGT1/wENbUelHIcUSQAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 9 ---\n", - "Aktuelle Cluster: [[1], [5], [7], [8], [3, 6], [0, 2], [4, 9]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 3. 6. 0.13477076 2. ]\n", - " [ 0. 2. 0.14306129 2. ]\n", - " [ 1. 5. 0.18963685 2. ]\n", - " [ 9. 10. 0.32105694 3. ]\n", - " [ 4. 12. 0.35501172 3. ]\n", - " [11. 13. 0.37333899 5. ]\n", - " [ 8. 15. 0.68619926 6. ]\n", - " [14. 16. 0.92078621 9. ]\n", - " [ 7. 17. 1.06516792 10. ]]\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAqQAAAIOCAYAAABuwR8hAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABxPklEQVR4nO3dfVxUVeI/8M/laUCQJwFFGJERUEQxk9VQSSkRtcgWqL5rmla6maigmKvp+oC6rKR+JVfItbLaX2sWju5XJdGVTMzISjETtFAQJTBMAaN4cDi/P4jJcQZlYOAKft6v17xszpx77rlzIT+ee+65khBCgIiIiIhIJmZyd4CIiIiI7m8MpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpHTfeOeddyBJEr766iuDnz/++OPo3bu3Tlnv3r0xbdq0tu9cGzh8+DAkSUJaWtpd606bNk3v2E2hsLAQkiRh3bp1Jm/bkMrKSqxZswZBQUGwt7eHQqFA79698cILL+DEiRPaeo0/C4WFhW3Sj2PHjmHFihUoLy9vk/bl1FY/K3L44osv8Mc//hG9evWCQqFA9+7dERwcjPj4eKPbGj16NAYMGNCq/jT+zh4+fFhblp6ejhUrVhis/7e//Q27d+9udvs3btzA3Llz4eHhAYVCAT8/PyQlJUGj0bSq30SmwEBKdAe7du3CX//6V7m70eb++te/YteuXXJ3o1XOnz+PwYMH4+9//ztCQ0Oxfft2HDhwACtXrsSVK1cwZMgQVFRUtEtfjh07hpUrV3bKQNpZ7Nu3D8OHD0dlZSWSkpJw4MABJCcnY8SIEdixY4csfXrwwQfx+eef48EHH9SWpaenY+XKlQbrGxNIb968ibCwMPy///f/8Oqrr2Lv3r2IiIjAokWLMG/ePFN0n6hVLOTuANG9bPDgwSZrSwiB6upq2NjYtKqdX3/9tdVt3K5Pnz4mba+9aTQa/PGPf8TVq1fx+eef64xUjRo1ClOnTsXHH38MS0tLGXvZer/88gu6dOkidzc6haSkJHh7eyMjIwMWFr//Vfg///M/SEpKate+1NXVQZIk2Nvb46GHHmqTfaSlpeGLL77Azp07ERkZCQAICwvDzz//jM2bNyMmJgZ9+/Ztk30TNQdHSInuwNAl+8rKSixYsADe3t6wsrKCh4cH4uLiUFVVpVNPkiTMnj0bb7zxBvz9/aFQKPDuu+8CAFauXIlhw4bB2dkZ9vb2ePDBB/HWW29BCKG3/8cffxxqtRqDBw+GtbW1drSkuLgYf/7zn6FUKmFlZYWePXsiOjoaV65c0Wmjrq4OS5YsQc+ePWFvb48xY8bg3LlzOnUMXYb96KOPMGzYMDg4OKBLly5QqVR44YUXdOqUl5cjPj4eKpUKCoUCbm5umDBhAs6ePav3XW7YsAHe3t6ws7NDcHAwsrOz9ep89dVXeOKJJ+Ds7Axra2sMHjwYH374oV692+3evRunT5/G4sWLm7xsOn78+DuGuaamZ4wePRqjR4/Wvq+vr8fq1avRt29f2NjYwNHREYGBgUhOTgYArFixAq+88goAwNvbG5Ik6V2G3bFjB4KDg2Fraws7OzuEh4fj5MmTOvudNm0a7OzscPr0aYwdOxZdu3bFo48+CgA4ePAgJk6cCE9PT1hbW8PHxwcvvfQSrl69qtPGihUrIEkSzpw5gz/96U9wcHBA9+7d8cILL+iNFm/evBkPP/ww3NzcYGtri4EDByIpKQl1dXVNfmcA8Oijj6Jfv356P7tCCPj4+OCxxx7TlqWmpmLQoEGws7ND165d0a9fP7z66qs625WWluKll16Cp6cnrKys4O3tjZUrV+LmzZt37IexfvrpJ7i4uOiE0UZmZvp/Nf773/9GcHAw7OzsYGdnhwceeABvvfWWXr0vv/wSISEh2t+Zv//976ivr9d+3nhZ/l//+hfi4+O1l8/z8/P1LtlPmzYNmzdvBgDtz1HjVBNJklBVVYV3331XW37rz+ntPvvsM0iShPHjx+uUP/7446ivr+/wV0io4+MIKd13NBqNwb/cbv8L1ZBffvkFo0aNwuXLl/Hqq68iMDAQZ86cwbJly3D69Gn897//hSRJ2vq7d+9GVlYWli1bhh49esDNzQ1Aw9zKl156Cb169QIAZGdnY86cOSguLsayZct09nnixAnk5eVh6dKl8Pb2hq2tLYqLi/GHP/wBdXV12n789NNPyMjIwPXr19G9e3ft9q+++ipGjBiBN998E5WVlfjLX/6CiIgI5OXlwdzc3OBxfv7553jmmWfwzDPPYMWKFbC2tsbFixeRmZmprXPjxg2MHDkShYWF+Mtf/oJhw4bh559/xpEjR1BSUoJ+/fpp627evBn9+vXDxo0bATRMEZgwYQIKCgrg4OAAAPjkk08wbtw4DBs2DG+88QYcHBzwwQcf4JlnnsEvv/xyx7m8Bw4cAAA8+eSTdzmDrZeUlIQVK1Zg6dKlePjhh1FXV4ezZ89qL89Pnz4d165dw6ZNm6BWq+Hu7g4A6N+/P4CGy6xLly7F888/j6VLl6K2thavvfYaQkJCcPz4cW09AKitrcUTTzyBl156CYsWLdL+3J4/fx7BwcGYPn06HBwcUFhYiA0bNmDkyJE4ffq03khwVFQUnnnmGbz44ova4A4Ab7/9trbO+fPnMWnSJO0/tE6dOoU1a9bg7NmzOvVuFxsbi4kTJ+LQoUMYM2aMtvzjjz/G+fPn8frrrwMAPvjgA8yaNQtz5szBunXrYGZmhvz8fOTm5mq3KS0txdChQ2FmZoZly5ahT58++Pzzz7F69WoUFhZi27ZtRp+vpgQHB+PNN9/E3Llz8eyzz+LBBx9scgR92bJlWLVqFSIjIxEfHw8HBwd8++23uHjxok690tJSPPvss4iPj8fy5cuxa9cuLF68GD179sRzzz2nU3fx4sUIDg7GG2+8ATMzM7i5uaG0tFSnzl//+ldUVVUhLS0Nn3/+ubbc3d0dn3/+OR555BGEhoZqpxXZ29s3eby1tbUwMzPTO0aFQgEA+Oabb+7yjRG1MUF0n9i2bZsAcMeXl5eXzjZeXl5i6tSp2veJiYnCzMxMfPnllzr10tLSBACRnp6uLQMgHBwcxLVr1+7YL41GI+rq6kRCQoLo1q2bqK+v19m/ubm5OHfunM42L7zwgrC0tBS5ublNtvvJJ58IAGLChAk65R9++KEAID7//HNt2dSpU3WOfd26dQKAKC8vb7L9hIQEAUAcPHiwyToFBQUCgBg4cKC4efOmtvz48eMCgNi+fbu2rF+/fmLw4MGirq5Op43HH39cuLu7C41G0+R+xo0bJwCI6urqJuvcqvFnoaCgQFt2+7luNGrUKDFq1Cid/jzwwAN3bP+1117Ta18IIYqKioSFhYWYM2eOTvmNGzdEjx49xNNPP60tmzp1qgAg3n777Tvuq76+XtTV1YmLFy8KAOI///mP9rPly5cLACIpKUlnm1mzZglra2udn7VbNf5Mvvfee8Lc3FznZ/j2nxWNRiNUKpWYOHGiThvjx48Xffr00e5j9uzZwtHR8Y7H8tJLLwk7Oztx8eJFnfLGn8czZ87ccXtjXL16VYwcOVL7u29paSmGDx8uEhMTxY0bN7T1Lly4IMzNzcWzzz57x/ZGjRolAIgvvvhCp7x///4iPDxc+77x9/Lhhx/Wa6Pxs08++URbFhMTI5r6q9rW1tbgz6whGzduFABEVlaWTvlf//pXAUCMHTu2We0QtRVesqf7znvvvYcvv/xS7zVy5Mi7brt3714MGDAADzzwAG7evKl9hYeH612WBYBHHnkETk5Oeu1kZmZizJgxcHBwgLm5OSwtLbFs2TL89NNP+PHHH3XqBgYGws/PT6fs448/RmhoKPz9/e/a5yeeeEKvPQB6ozu3+sMf/gAAePrpp/Hhhx+iuLhYr87HH38MPz8/nVGxpjz22GM6o7G39yE/Px9nz57Fs88+CwA63+2ECRNQUlKiN81ALkOHDsWpU6cwa9YsZGRkoLKystnbZmRk4ObNm3juued0jtHa2hqjRo3S+/kBGkY3b/fjjz9i5syZUCqVsLCwgKWlJby8vAAAeXl5evUN/QxUV1fr/KydPHkSTzzxBLp166b9mXzuueeg0Wjw3XffNXlMZmZmmD17Nvbu3YuioiIADaOt+/fvx6xZs7RXDIYOHYry8nL86U9/wn/+8x+96QVAw+9XaGgoevbsqfP9NF5m/vTTT5vsR319vc42d7tzvFu3bsjKysKXX36Jv//975g4cSK+++47LF68GAMHDtT27+DBg9BoNIiJibljewDQo0cPDB06VKcsMDDQ4O+aofPalp599lk4Ozvjz3/+M7744guUl5dj+/bt2hFsQ9MUiNoTfwLpvuPv74+goCC9V+Ol4zu5cuUKvvnmG1haWuq8unbtCiGE3l+yjZdrb3X8+HGMHTsWALB161Z89tln+PLLL7FkyRIADTct3a2NsrIyeHp6Nut4u3XrpvO+8RLd7fu51cMPP4zdu3drw5OnpycGDBiA7du3t0kfGue9LliwQO+7nTVrFgAYDDCNGqc+FBQUNKs/rbF48WKsW7cO2dnZGD9+PLp164ZHH320yeXEbtV4nH/4wx/0jnPHjh16x9ilSxe9y7D19fUYO3Ys1Go1Fi5ciEOHDuH48ePaObmGzuvdvv+ioiKEhISguLgYycnJ2qDWOH/xTj8rAPDCCy/AxsYGb7zxBoCGKRo2NjY6c46nTJmCt99+GxcvXkRUVBTc3NwwbNgwHDx4UOf72bNnj953ExAQAODOPwMJCQk62zT3Rr2goCD85S9/wUcffYQffvgB8+bNQ2FhofbGprKyMgBo1s/67d8z0PBdG/r+DP1etyUXFxfs378fAPDQQw/ByckJc+bMwYYNGwAAHh4e7dofottxDimREVxcXGBjY9PknDoXFxed97fOJ230wQcfwNLSEnv37oW1tbW2vKnlWwy14erqisuXLxvRc+NNnDgREydORE1NDbKzs5GYmIhJkyahd+/eCA4ONmkfGr+3xYsXa+8Avt2d7gAODw/HP//5T+zevRuLFi1qUR+sra1RU1OjV3716lWd82phYYH58+dj/vz5KC8vx3//+1+8+uqrCA8Px6VLl+5441RjO2lpadoRzTsxdO6//fZbnDp1Cu+88w6mTp2qLc/Pz79re03ZvXs3qqqqoFardfqVk5PTrO0dHBwwdepUvPnmm1iwYAG2bduGSZMmwdHRUafe888/j+effx5VVVU4cuQIli9fjscffxzfffcdvLy84OLigsDAQKxZs8bgfnr27NlkH/785z/j8ccf175vDN3GsLS0xPLly/G///u/+PbbbwE0/K4BwOXLl6FUKo1usymGzm1b+8Mf/oDc3FwUFhaiqqoKvr6++PrrrwE0/COUSE4MpERGePzxx/G3v/0N3bp1g7e3d4vakCQJFhYWOpewf/31V/zrX/9qdhvjx4/Hv/71L5w7d67Nl2pRKBQYNWoUHB0dkZGRgZMnTyI4OBjjx4/HsmXLkJmZiUceeaRV++jbty98fX1x6tQp/O1vfzN6+4kTJ2LgwIFITEzE448/bvBO+4yMDO3dz4b07t1b78aO7777DufOndP7h0YjR0dHREdHo7i4GHFxcSgsLET//v2bHIUODw+HhYUFzp8/3+JLto1B5vbAtWXLlha111SbQghs3bq12W3MnTsXKSkpiI6ORnl5OWbPnt1kXVtbW4wfPx61tbV48skncebMGXh5eeHxxx9Heno6+vTpY3Cqy5307NnzjoH1diUlJQZHKRunPDS2NXbsWJibmyM1NRXBwcFG9ckUbv1Zun25t6ZGX++mcUUNIQTWr1+Pnj174qmnnmp1X4lag4GUyAhxcXHYuXMnHn74YcybNw+BgYGor69HUVERDhw4gPj4eAwbNuyObTz22GPYsGEDJk2a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1K4iI4G0tIa77W9d+snTsyGM8oprx6DOUyN2fywuV97y+E57TySPS0akP08iGYeBlIiI2l1kJDBxIpCVBZSUNMwZDQnhyGhHoc5TI/rDaAjc9vjOymJEfxiNtKfTGErJKAykREQkC3NzgFdcOx5NvQax+2P1wigACAhIkBC3Pw4T+05s8vJ9B1jgh5rQVueOd9kTERFRs2UVZelcpr+dgMClykvIKtJ/fKelpSUA4Jdffmmz/lHbajx3jefSVDhCSkRERM1WcqOZj+80UM/c3ByOjo748ccfAQBdunTRrh9K9zYhBH755Rf8+OOPcHR0NPmKBgykRERE1GzuXZv5+M4m6vXo0QMAtKGUOhZHR0ftOTQlBlIiIiJqtpBeIfC090RxZbHBeaQSJHjaeyKkl+HFZCVJgru7O9zc3FBXV9fW3SUTsrS0bLO1XhlIiYiIqNnMzcyRPC4Z0R9GQ4KkE0olNFx+3zhu413XIzU3N+dC9qTFm5qIiIjIKJH+kUh7Og0e9rc9vtPek0s+UYtIogOsvVBZWQkHBwdUVFTA3t5e7u4QERER5H1SE917WpPXeMmeiIiIWsTczByje4+WuxvUCfCSPRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkawYSImIiIhIVgykRERERCQrBlIiIiIikhUDKRERERHJioGUiIiIiGTFQEpEREREsmIgJSIiIiJZMZASERERkaxaFEhTUlLg7e0Na2trDBkyBFlZWc3a7rPPPoOFhQUeeOCBluyWiIiIiDohowPpjh07EBcXhyVLluDkyZMICQnB+PHjUVRUdMftKioq8Nxzz+HRRx9tcWeJiIiIqPORhBDCmA2GDRuGBx98EKmpqdoyf39/PPnkk0hMTGxyu//5n/+Br68vzM3NsXv3buTk5DR7n5WVlXBwcEBFRQXs7e2N6S4RERERtYPW5DWjRkhra2vx9ddfY+zYsTrlY8eOxbFjx5rcbtu2bTh//jyWL19uVOeIiIiIqPOzMKby1atXodFo0L17d53y7t27o7S01OA233//PRYtWoSsrCxYWDRvdzU1NaipqdG+r6ysNKabRERERNSBtOimJkmSdN4LIfTKAECj0WDSpElYuXIl/Pz8mt1+YmIiHBwctC+lUtmSbhIRERFRB2BUIHVxcYG5ubneaOiPP/6oN2oKADdu3MBXX32F2bNnw8LCAhYWFkhISMCpU6dgYWGBzMxMg/tZvHgxKioqtK9Lly4Z000iIiIi6kCMumRvZWWFIUOG4ODBg/jjH/+oLT948CAmTpyoV9/e3h6nT5/WKUtJSUFmZibS0tLg7e1tcD8KhQIKhcKYrhERERFRB2VUIAWA+fPnY8qUKQgKCkJwcDD++c9/oqioCDNnzgTQMLpZXFyM9957D2ZmZhgwYIDO9m5ubrC2ttYrJyIiIiLT0Gg0yMrKQklJCdzd3RESEgJzc3O5u9UkowPpM888g59++gkJCQkoKSnBgAEDkJ6eDi8vLwBASUnJXdckJSIiIqK2oVarERsbi8uXL2vLPD09kZycjMjISBl71jSj1yGVA9chJSIiIro7tVqN6Oho3B7vGm8+T0tLa7NQ2m7rkBIRERHRvUmj0SA2NlYvjALQlsXFxUGj0bR31+6KgZSIiIioE8jKytK5TH87IQQuXbqErKysduxV8zCQEhEREXUCJSUlJq3XnhhIiYiIiDoBd3d3k9ZrTwykRERERJ1ASEgIPD09DT49E2i4sUmpVCIkJKSde3Z3DKREREREnYC5uTmSk5MB6D/mvfH9xo0b78n1SBlIiYiIiDqJyMhIpKWlwcPDQ6fc09OzTZd8ai2uQ0pERETUycjxpKbW5DWjn9RERERERPc2c3NzjB49Wu5uNBsv2RMRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlkxkBIRERGRrBhIiYiIiEhWDKREREREJCsGUiIiIiKSFQMpEREREcmKgZSIiIiIZMVASkRERESyYiAlIiIiIlm1KJCmpKTA29sb1tbWGDJkCLKyspqsq1arERYWBldXV9jb2yM4OBgZGRkt7jARERERdS5GB9IdO3YgLi4OS5YswcmTJxESEoLx48ejqKjIYP0jR44gLCwM6enp+PrrrxEaGoqIiAicPHmy1Z0nIiIioo5PEkIIYzYYNmwYHnzwQaSmpmrL/P398eSTTyIxMbFZbQQEBOCZZ57BsmXLmlW/srISDg4OqKiogL29vTHdJSIiIqJ20Jq8ZtQIaW1tLb7++muMHTtWp3zs2LE4duxYs9qor6/HjRs34OzsbMyuiYiIiKiTsjCm8tWrV6HRaNC9e3ed8u7du6O0tLRZbaxfvx5VVVV4+umnm6xTU1ODmpoa7fvKykpjuklEREREHUiLbmqSJEnnvRBCr8yQ7du3Y8WKFdixYwfc3NyarJeYmAgHBwftS6lUtqSbRERERNQBGBVIXVxcYG5urjca+uOPP+qNmt5ux44dePHFF/Hhhx9izJgxd6y7ePFiVFRUaF+XLl0ypptERERE1IEYFUitrKwwZMgQHDx4UKf84MGDGD58eJPbbd++HdOmTcO///1vPPbYY3fdj0KhgL29vc6LiIiIiDono+aQAsD8+fMxZcoUBAUFITg4GP/85z9RVFSEmTNnAmgY3SwuLsZ7770HoCGMPvfcc0hOTsZDDz2kHV21sbGBg4ODCQ+FiIiIiDoiowPpM888g59++gkJCQkoKSnBgAEDkJ6eDi8vLwBASUmJzpqkW7Zswc2bNxETE4OYmBht+dSpU/HOO++0/giIiIiIqEMzeh1SOXAdUiIiIqJ7W7utQ0pEREREZGoMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkxUBKRERERLJiICUiIiIiWTGQEhEREZGsGEiJiIiISFYMpEREREQkKwZSIiIiIpIVAykRERERyYqBlIiIiIhkZSF3B+g3Gg2QlQWUlADu7kBICGBuLneviIiIiNocA+m9QK0GYmOBy5d/L/P0BJKTgchI+fpFRERE1A54yV5uajUQHa0bRgGguLihXK2Wp19ERERE7YSBVE4aTcPIqBD6nzWWxcU11CMiIiLqpBhI5ZSVpT8yeishgEuXGuoRERERdVIMpHIqKTFtPSIiIqIOiIFUTu7upq1HRERE1AExkMopJKThbnpJMvy5JAFKZUM9IiIiok6KgVRO5uYNSzsB+qG08f3GjVyPlIiIiDo1BlK5RUYCaWmAh4duuadnQznXISUiIqJOjgvj3wsiI4GJE/mkJiIiIrovMZDeK8zNgdGj5e4F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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 10 ---\n", - "Finale Cluster: [[1], [5], [7], [8], [3, 6], [0, 2], [4, 9]]\n" - ] - }, - { - "data": { - "image/png": "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uni7vHxp+vTpSklJ0TPPPKPq1avr2LFjmjx5su677z4tX75cDz74oLdLzHc2b96sJk2aqEGDBnr//fdljNGrr76q5s2ba9WqVYqJifF2ifnSqVOnFBkZqc6dO6tMmTI6d+6cPvzwQz3xxBPas2ePRo0a5e0S86WPPvpITzzxhDp27Ki5c+eqSJEi2rVrlw4ePOjt0jxncEusXr3aSDKjRo3ydikFQps2bUzbtm1Nt27dTOHChb1dTr6VlZVlsrKyjDHGHDt2zEgyY8aM8W5R+dyqVauMJPPpp596u5QCY+TIkUaS+f33313an3zySSPJnDhxwkuV5W//+c9/jCTz0UcfubS3aNHCREREmIyMDC9Vlr8dOXIkR9uZM2dMeHi4ad68uRcqyv9atmxpwsPDzblz55xtqampJjQ01DRq1MiLlRVMDRs2NJGRkd4uI1/av3+/KVy4sHnqqae8XcotwaVrt8isWbPkcDjUs2dPb5eS733wwQdas2aNpk2b5u1S8r3sS66A28nf31+SFBIS4tJevHhx+fj4KCAgwBtl5XuLFi1SkSJF9Pjjj7u09+jRQwcPHtR///tfL1WWv4WFheVoK1KkiKpXr659+/Z5oaL8b926dWratKkKFSrkbCtatKiaNGmi9evX69ChQ16sruAJDQ2Vnx8XNbkzc+ZMnTt3Ts8//7y3S7klCDq3wOnTp7VgwQI1b95c0dHR3i4nXzt69KgGDhyoV155RWXLlvV2ObDY008/LT8/PxUrVkwtW7bUt99+6+2S8q1u3bqpePHieuqpp/THH3/ozJkz+vzzz/XOO+/o6aefVuHChb1dYr70448/qlq1ajk+MNWqVcv5PHLn9OnT+u677/SXv/zF26XkSxcvXlRgYGCO9uy27du3/9klFShZWVnKyMjQsWPHNG3aNC1fvtyaD/K32jfffKMSJUro559/Vp06deTn56ewsDD17dtXqamp3i7PYwSdW2DevHlKS0tTr169vF1KvpeQkKAqVaroqaee8nYpsFRISIieeeYZvfPOO1q1apVef/117du3T02bNtXy5cu9XV6+VL58eW3YsEE//vijKlasqGLFiqlt27bq1q2bXn/9dW+Xl2+lpKSoRIkSOdqz21JSUv7skgqsp59+WufOndPIkSO9XUq+VL16dW3cuFFZWVnOtoyMDOdZQ46160tISJC/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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "from scipy.cluster.hierarchy import linkage, dendrogram\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "import pandas as pd\n", - "\n", - "# Beispiel Daten - hier können Sie Ihre eigenen Daten eingeben\n", - "np.random.seed(0)\n", - "num_points = 10 # Anzahl der Datenpunkte\n", - "num_dimensions = 2 # Anzahl der Dimensionen der Datenpunkte\n", - "X = np.random.random_sample([num_points, num_dimensions])\n", - "\n", - "# Initialisierung: Jeder Datenpunkt ist ein Cluster\n", - "clusters = [[i] for i in range(X.shape[0])]\n", - "\n", - "# Schleife für jeden Schritt der hierarchischen Clusteranalyse\n", - "for step in range(X.shape[0] - 1):\n", - " print(f\"\\n--- Schritt {step + 1} ---\")\n", - " print(\"Aktuelle Cluster:\", clusters)\n", - "\n", - " # Berechnung der Abstandsmatrix mit Ward-Methode\n", - " linkage_matrix = linkage(X, 'ward')\n", - "\n", - " # Ausgabe der Abstandsmatrix\n", - " print(\"Abstandsmatrix nach Linkage:\")\n", - " print(linkage_matrix)\n", - "\n", - " # Tabelle mit den Abständen zwischen den Clustern erstellen\n", - " distances = []\n", - " for i in range(len(linkage_matrix)):\n", - " cluster1, cluster2, distance, _ = linkage_matrix[i]\n", - " cluster1, cluster2 = int(cluster1), int(cluster2) # Konvertiere zu ganzzahligen Indizes\n", - " if cluster1 < len(clusters) and cluster2 < len(clusters):\n", - " distances.append([cluster1, cluster2, distance, len(clusters[cluster1]), len(clusters[cluster2])])\n", - "\n", - " # Tabelle als DataFrame erstellen und ausgeben\n", - " #columns = ['Cluster 1', 'Cluster 2', 'Abstand', 'Größe Cluster 1', 'Größe Cluster 2']\n", - " #distance_table = pd.DataFrame(distances, columns=columns)\n", - " #print(\"Tabelle mit Abständen zwischen Clustern:\")\n", - " #print(distance_table)\n", - "\n", - " # Streudiagramm zeichnen\n", - " colors = ['b', 'g', 'r', 'c', 'm', 'y', 'k']\n", - " plt.figure(figsize=(8, 6))\n", - " for idx, cluster in enumerate(clusters):\n", - " for point_idx in cluster:\n", - " plt.scatter(X[point_idx, 0], X[point_idx, 1], color=colors[idx % len(colors)], label=f'Cluster {idx}')\n", - " plt.title('Hierarchische Clusteranalyse - Schritt {}'.format(step + 1))\n", - " plt.legend()\n", - " plt.show()\n", - "\n", - " # Wenn nur noch ein Cluster übrig ist, breche die Schleife ab\n", - " if len(clusters) == 1:\n", - " break\n", - "\n", - " # Identifiziere die beiden nächsten Cluster\n", - " cluster1, cluster2 = int(linkage_matrix[step][0]), int(linkage_matrix[step][1])\n", - "\n", - " # Überprüfe, ob die Cluster existieren, bevor sie zusammengeführt werden\n", - " if cluster1 < len(clusters) and cluster2 < len(clusters):\n", - " new_cluster = clusters[cluster1] + clusters[cluster2]\n", - " del clusters[max(cluster1, cluster2)]\n", - " del clusters[min(cluster1, cluster2)]\n", - " clusters.append(new_cluster)\n", - "\n", - "# Ausgabe des finalen Clusters\n", - "print(f\"\\n--- Schritt {X.shape[0]} ---\")\n", - "print(\"Finale Cluster:\", clusters)\n", - "\n", - "# Dendrogramm erstellen und anzeigen\n", - "plt.figure(figsize=(10, 7))\n", - "plt.title('Hierarchische Clusteranalyse - Methode: Ward')\n", - "dendrogram(linkage_matrix)\n", - "plt.show()\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "1334f577", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 1 ---\n", - "Aktuelle Cluster: [[0], [1], [2], [3], [4], [5], [6], [7], [8], [9]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 2. 6. 0.54664466 2. ]\n", - " [ 3. 5. 0.5524637 2. ]\n", - " [ 7. 9. 0.56261506 2. ]\n", - " [ 0. 4. 1.14694608 2. ]\n", - " [ 1. 10. 1.18606925 3. ]\n", - " [12. 14. 1.42401155 5. ]\n", - " [11. 13. 2.15864694 4. ]\n", - " [ 8. 16. 3.73691206 5. ]\n", - " [15. 17. 4.64006144 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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IqK7MawSERERkcFiWCUiIiIig8WwSkREREQGi2GViIiIiAwWwyoRERERGSyGVSIiIiIyWAyrRERERGSwGFaJiIiIyGAxrBIRERGRwerT0wXoWuvTY2tra3u4EiIiIiLSpjWntea29vS6sPrjjz8CAKRSaQ9XQkRERETt+fHHH2FjY9NuH0HsSKR9iDQ3N+P69euwsrKCIAg9Xc4jrba2FlKpFFevXoW1tXVPl0PdjJ//o4uf/aONn/+jqzOfvSiK+PHHHzFgwAAYGbU/KrXXXVk1MjKCm5tbT5dBd7G2tub/YT3C+Pk/uvjZP9r4+T+6OvrZ3++KaiveYEVEREREBothlYiIiIgMFsMq6Y1EIsGaNWsgkUh6uhTqAfz8H1387B9t/PwfXfr67HvdDVZERERE1HvwyioRERERGSyGVSIiIiIyWAyrRERERGSwGFaJiIiIyGAxrJLelZaW4o033oBMJoO5uTkee+wxrFmzBo2NjT1dGnWTTZs2Ydy4cejbty9sbW17uhzSs4SEBMhkMpiZmWH06NHIzs7u6ZKoG2RlZSEkJAQDBgyAIAg4cOBAT5dE3SQmJgZPPPEErKys4OTkhBdffBFFRUU62z/DKuldYWEhmpubsXv3bpw/fx5//vOfsWvXLrz99ts9XRp1k8bGRrz00kt46623eroU0rNPP/0UkZGReOedd3DmzBkEBARgypQpKCsr6+nSSM/q6urg6+uL9957r6dLoW721VdfISIiAjk5OTh69Cju3LmDSZMmoa6uTif759RV1CPeffddJCYm4vLlyz1dCnWjjz/+GJGRkaiuru7pUkhPxo4di1GjRiExMVHV5uXlhRdffBExMTE9WBl1J0EQ8MUXX+DFF1/s6VKoB1RVVcHJyQlfffUVnn766QfeH6+sUo+oqamBvb19T5dBRDrU2NiI//znP5g0aZJa+6RJk/D111/3UFVE1N1qamoAQGd/zzOsUre7dOkSdu7cifnz5/d0KUSkQzdv3oRSqYSzs7Nau7OzMyorK3uoKiLqTqIoIioqCk899RSGDx+uk30yrFKXrV27FoIgtLucPn1abZvr169j8uTJeOmllzB37tweqpx0oSufPz0aBEFQey2KokYbEfVOCxcuxLfffov9+/frbJ99dLYneuQsXLgQr776art9Bg8erPrf169fR2BgIPz9/fH+++/ruTrSt85+/tT7OTg4wNjYWOMq6o0bNzSuthJR77No0SL885//RFZWFtzc3HS2X4ZV6jIHBwc4ODh0qG95eTkCAwMxevRo7N27F0ZGvKj/sOvM50+PBlNTU4wePRpHjx7Fr371K1X70aNHMX369B6sjIj0SRRFLFq0CF988QUyMzMhk8l0un+GVdK769evY+LEiRg4cCDi4uJQVVWlWte/f/8erIy6S1lZGW7duoWysjIolUrk5eUBANzd3WFpadmzxZFORUVFYdasWfDz81P9ilJWVsYx6o+A27dvo7i4WPW6pKQEeXl5sLe3x8CBA3uwMtK3iIgI/O1vf8M//vEPWFlZqX5dsbGxgbm5+QPvn1NXkd59/PHH+M1vfqN1Hb9+j4Y5c+YgKSlJo/348eOYOHFi9xdEepWQkIDY2FhUVFRg+PDh+POf/6yT6WvIsGVmZiIwMFCjffbs2fj444+7vyDqNm2NSd+7dy/mzJnz4PtnWCUiIiIiQ8WBg0RERERksBhWiYiIiMhgMawSERERkcFiWCUiIiIig8WwSkREREQGi2GViIiIiAwWwyoRERERGSyGVSIiIiIyWAyrRERERGSwGFaJiIiIyGAxrBIRERGRwWJYJSIiIiKD9f8BLy06DEM9ug0AAAAASUVORK5CYII=\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 2 ---\n", - "Aktuelle Cluster: [[0], [1], [3], [4], [5], [7], [8], [9], [2, 6]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 2. 6. 0.54664466 2. ]\n", - " [ 3. 5. 0.5524637 2. ]\n", - " [ 7. 9. 0.56261506 2. ]\n", - " [ 0. 4. 1.14694608 2. ]\n", - " [ 1. 10. 1.18606925 3. ]\n", - " [12. 14. 1.42401155 5. ]\n", - " [11. 13. 2.15864694 4. ]\n", - " [ 8. 16. 3.73691206 5. ]\n", - " [15. 17. 4.64006144 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 3 ---\n", - "Aktuelle Cluster: [[0], [1], [3], [5], [8], [9], [2, 6], [4, 7]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 2. 6. 0.54664466 2. ]\n", - " [ 3. 5. 0.5524637 2. ]\n", - " [ 7. 9. 0.56261506 2. ]\n", - " [ 0. 4. 1.14694608 2. ]\n", - " [ 1. 10. 1.18606925 3. ]\n", - " [12. 14. 1.42401155 5. ]\n", - " [11. 13. 2.15864694 4. ]\n", - " [ 8. 16. 3.73691206 5. ]\n", - " [15. 17. 4.64006144 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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rBIRkS6VCliwALh69dc2d3dgyxYgIqL76iKiB45RH7dKRET3IZUKiIrSDqoAUFbW3K5SdU9dRPRAYlglIqJfqdXNV1T13c7Q0hYT09yPiKgLMKwSEdGvsrJ0r6jeThSBK1ea+xERdQGGVSIi+lV5uWH7ERHdI4ZVIiL6VXufGMgnCxJRF2FYJSKiXwUFNd/1Lwj61wsCIJc39yMi6gIMq0RE9CsTk+bpqQDdwNryevNmzrdKRF2GYZWIiLRFRADJyYCbm3a7u3tzO+dZJaIuxIcCEBGRrogIYPJkPsFKD7UoIquqCuUNDXA1M0OQnR1MWhs2QUT3jGGViIj0MzEBxo7t7iokRVVZiQVFRbhaX69pc5fJsMXTExFOTt1YGVHPxWEARERE7aCqrETU+fNaQRUAyurrEXX+PFSVld1UGVHPxrBKRER0F2pRxIKiIuh5rpemLaaoCGp9T/4ionvCsEpERHQXWVVVOldUbycCuFJfj6yqqi6riehBwbBKRER0F+UNDQbtR0Ttx7BKRER0F65mZgbtR0Ttx7BKRER0F0F2dnCXydDaBFUCALlMhiA7uy6siujBwLBKRER0FyaCgC2engCgE1hbXm/29OR8q0RGwLBKRETUDhFOTkj29YWbTKbV7i6TIdnXl/OsEhkJHwpARETUThFOTpjs6MgnWBF1IYZVIiKiDjARBIy1t+/uMogeGBwGQERERESSxbBKRERERJLFsEpEREREksWwSkRERESSxbBKRERERJLFsEpEREREksWwSkRERESSxbBKRERERJLFsEpEREREksWwSkRERESSxbBKRERERJLFsEpEREREksWwSkRERESSxbBKRERERJLFsEpEREREksWwSkRERESSxbBKRERERJLFsEpEREREksWwSkRERESSxbBKRERERJLFsEpEREREksWwSkRERESSxbBKRERERJLFsEpEREREksWwSkRERESSxbBKRERERJLFsEpEREREksWwSkRERESSxbBKRERERJLFsEpEREREksWwSkRERESSxbBKRERERJJl9LCamJgIhUIBc3NzjBgxAllZWW32P3HiBEaMGAFzc3MolUrs2LHD2CUSERERkUQZNax+/PHHiImJwVtvvYUzZ84gKCgIEyZMQGlpqd7+xcXFmDhxIoKCgnDmzBm8+eabmD9/PlJSUoxZJhERERFJlCCKomisnY8aNQqPPPIIkpKSNG0+Pj547rnnEBcXp9P/D3/4Az777DPk5+dr2mbPno2zZ8/i5MmT7TpmTU0NbG1tUV1dDRsbm3s/CSIiIiIyqI7kNaNdWW1oaMB//vMfjBs3Tqt93Lhx+Oqrr/Ruc/LkSZ3+YWFhOH36NBobG41VKhERERFJVG9j7fj69etQq9VwcXHRandxcUFFRYXebSoqKvT2v3XrFq5fvw5XV1edberr61FfX695XVNTY4DqiYiIiEgKjH6DlSAIWq9FUdRpu1t/fe0t4uLiYGtrq1nkcvk9VkxEREREUmG0sOro6AgTExOdq6jXrl3TuXraol+/fnr79+7dG3379tW7zbJly1BdXa1Zrly5YpgTICIiIqJuZ7SwamZmhhEjRuDYsWNa7ceOHcPo0aP1bhMYGKjT/+jRowgICICpqanebWQyGWxsbLQWIiIiIuoZjDoMYNGiRXj//ffxwQcfID8/HwsXLkRpaSlmz54NoPmq6EsvvaTpP3v2bFy+fBmLFi1Cfn4+PvjgA+zevRuLFy82ZplEREREJFFGu8EKAF544QX88MMPWLNmDcrLyzF06FAcPnwYHh4eAIDy8nKtOVcVCgUOHz6MhQsXYvv27ejfvz+2bt2KyMhIY5ZJRERERBJl1HlWuwPnWSUiIiKSNknMs0pEREREdK8YVomIiIhIshhWiYiIiEiyGFaJiIiISLIYVomIiIhIshhWiYiIiEiyGFaJiIiISLIYVomIiIhIsoz6BCsiIiLqWdRqNbKyslBeXg5XV1cEBQXBxMSku8uiHoxhlYiIiNpFpVJhwYIFuHr1qqbN3d0dW7ZsQURERDdWRj0ZhwEQERHRXalUKkRFRWkFVQAoKytDVFQUVCpVN1VGPR3DKhEREbVJrVZjwYIFEEVRZ11LW0xMDNRqdVeXRg8AhlUiIiJqU1ZWls4V1duJoogrV64gKyurC6uiBwXDKhEREbWpvLzcoP2IOoJhlYiIiNrk6upq0H5EHcGwSkRERG0KCgqCu7s7BEHQu14QBMjlcgQFBXVxZfQgYFglIiKiNpmYmGDLli0AoBNYW15v3rz5gZ5vVa1WIyMjA/v27UNGRgZvNjMghlUiIiK6q4iICCQnJ8PNzU2r3d3dHcnJyQ/0PKsqlQoDBw5ESEgIpkyZgpCQEAwcOJDTeRmIIOqbh+I+VlNTA1tbW1RXV8PGxqa7yyEiIupR+AQrbS3zz94Zp1quOD/oQb41HclrDKtEREREnaBWqzFw4MBWp/USBAHu7u4oLi5+oAO9Ph3JaxwGQERERNQJnH+2azCsEhEREXUC55/tGgyrRERERJ3A+We7BsMqERERUSdw/tmuwbBKRERE1Amcf7ZrMKwSERERdRLnnzU+Tl1FREREdI84/2zHdCSv9e6imoiIiIh6LBMTE4wdO7a7y+iROAyAiIiIiCSLYZWIiIiIJIthlYiIiIgki2GViIiIiCSLYZWIiIiIJIthlYiIiIgki2GViIiIiCSLYZWIiIiIJIthlYiIiIgki2GViIiIiCSLYZWIiIiIJIthlYiIiIgki2GViIiIiCSLYZWIiIiIJIthlYiIiIgki2GViIiIiCSLYZWIiIiIJIthlYiIiIgki2GViIiIiCSLYZWIiIiIJIthlYiIiIgki2GViIiIiCSLYZWIiIiIJIthlYiIiIgki2GViIiIiCSLYZWIiIiIJIthlYiIiIgky6hh9ccff8S0adNga2sLW1tbTJs2DVVVVW1uM2PGDAiCoLU89thjxiyTiIiIiCSqtzF3PmXKFFy9ehVHjhwBALz66quYNm0aDh482OZ248ePx549ezSvzczMjFkmEREREUmU0cJqfn4+jhw5guzsbIwaNQoAsGvXLgQGBqKwsBDe3t6tbiuTydCvXz9jlUZERERE9wmjDQM4efIkbG1tNUEVAB577DHY2triq6++anPbjIwMODs7Y9CgQZg1axauXbvWat/6+nrU1NRoLURERETUMxgtrFZUVMDZ2Vmn3dnZGRUVFa1uN2HCBPztb39Deno6Nm7ciK+//hpPPvkk6uvr9faPi4vTjIm1tbWFXC432DkQERERUffqcFhdtWqVzg1Qdy6nT58GAAiCoLO9KIp621u88MILeOaZZzB06FCEh4fj888/x4ULF5Camqq3/7Jly1BdXa1Zrly50tFTIiIiIiKJ6vCY1blz5+LFF19ss8/AgQPxzTff4Pvvv9dZV1lZCRcXl3Yfz9XVFR4eHvj222/1rpfJZJDJZO3eHxERERHdPzocVh0dHeHo6HjXfoGBgaiursapU6cwcuRIAMC///1vVFdXY/To0e0+3g8//IArV67A1dW1o6USERER0X3OaGNWfXx8MH78eMyaNQvZ2dnI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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 4 ---\n", - "Aktuelle Cluster: [[0], [1], [3], [5], [8], [9], [2, 6], [4, 7]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 2. 6. 0.54664466 2. ]\n", - " [ 3. 5. 0.5524637 2. ]\n", - " [ 7. 9. 0.56261506 2. ]\n", - " [ 0. 4. 1.14694608 2. ]\n", - " [ 1. 10. 1.18606925 3. ]\n", - " [12. 14. 1.42401155 5. ]\n", - " [11. 13. 2.15864694 4. ]\n", - " [ 8. 16. 3.73691206 5. ]\n", - " [15. 17. 4.64006144 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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UdEdt/v8888xevRomJubQ6lUYufOncYsk4iIiIgkyqhh9fPPP0dUVBRycnJw7Ngx3Lx5ExMnTtQ7lUOrkpISTJkyBYGBgTh16hRee+01LFq0CKmpqcYslYiIiIgkyKjDAI4cOaL1eu/evXB2dsZ///tfPPbYY3q32blzJwYNGoStW7cCALy9vfH1118jISEBERERxiyXiIiIiCSmW6euqqmpAfDr82v1OXHiBCZOnKjVFhoaiq+//lrnSQ5ERERE1Lt12w1WoigiJiYGjz76KEaMGNFmv8rKSri4uGi1ubi44ObNm7h27RpcXbWfNNHQ0ICGhgbN69raWsMWTkREREQ9ptuurC5YsADffPMN9u/ff8e+gqA9eW/rVLC3twMtN3HZ2tpqlnvp8WFERERE1L5uCasLFy7EJ598gs8++wzu7u7t9h0wYAAqKyu12q5evYq+ffuif//+Ov1XrFiBmpoazXL58mWD1k5EREREPceoYVUURSxYsAAqlQoZGRkderRXQEAAjh07ptV29OhR+Pv7w9TUVKe/TCaDjY2N1kJEREQkdYIg4MCBAz1dhuQZNaxGRUXhb3/7G/7xj3/A2toalZWVqKysxC+//KLps2LFCrzwwgua1/PmzcOlS5cQExODgoICvPvuu9izZw+WLl1qzFKJiIiIDKayshILFy6EUqmETCaDXC5HWFgYjh8/bpTjZWZmQhAEVFdXG2X/paWleOmll6BQKGBhYYEHHngAq1evRmNjo1GOdyuj3mCVnJwMAJgwYYJW+969ezF79mwAQEVFBcrKyjTrFAoFDh8+jCVLliAxMREDBw7E9u3bOW0VERERdY1aDWRnAxUVgKsrEBgImBjvcaulpaUYP3487OzsEB8fD19fXzQ1NSE9PR1RUVEoLCw02rHvliiKUKvV6NtXOyIWFhaiubkZu3btgoeHB7799lvMnTsXdXV1SEhIMHpRvUpNTY0IQKypqenpUoiIiOgu/PLLL2J+fr74yy+/dH0nqami6O4uisCvi7t7S7uRTJ48WXRzcxNv3Lihs+7HH3/U/G8A4scffyyKoih+9tlnIgCt9adOnRIBiCUlJaIoimJpaak4depU0c7OTuzXr584fPhwMS0tTSwpKREBaC2zZs0SRVEUm5ubxU2bNokKhUI0NzcXfX19xY8++khzjNbjHjlyRBw9erRoamoq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rUQRuHy5pR8RUTdgWCUiol9VVBi2HxHRXWJYJSKiX3X0iYF8siARdROGVSIi+lVgYMtd/4Kgf70gAHJ5Sz8iom7AsEpERL8yMWmZngrQDaytr7du5XyrRNRtGFaJiEhbeDiQkgK4uWm3u7u3tHOeVSLqRnwoABER6QoPB6ZN4xOs9FCLIrKrq1HR2AhXMzME2tnBpK1hE0R01xhWiYhIPxMTYMKEnq5CUlRVVVhcXIwrDQ2aNneZDNs8PBDu5NSDlRH1XhwGQERE1AGqqipEnj2rFVQBoLyhAZFnz0JVVdVDlRH1bgyrREREd6AWRSwuLoae53pp2qKLi6HW9+QvIrorDKtERER3kF1drXNF9VYigMsNDciuru62mojuFwyrREREd1DR2GjQfkTUcQyrREREd+BqZmbQfkTUcQyrREREdxBoZwd3mQxtTVAlAJDLZAi0s+vGqojuDwyrREREd2AiCNjm4QEAOoG19fVWDw/Ot0pkBAyrREREHRDu5IQUHx+4yWRa7e4yGVJ8fDjPKpGR8KEAREREHRTu5IRpjo58ghVRN2JYJSIi6gQTQcAEe/ueLoPovsFhAEREREQkWQyrRERERCRZDKtEREREJFkMq0REREQkWQyrRERERCRZDKtEREREJFkMq0REREQkWQyrRERERCRZDKtEREREJFkMq0REREQkWQyrRERERCRZDKtEREREJFkMq0REREQkWQyrRERERCRZDKtEREREJFkMq0REREQkWQyrRERERCRZDKtEREREJFkMq0REREQkWQyrRERERCRZDKtEREREJFkMq0REREQkWQyrRERERCRZDKtEREREJFkMq0REREQkWQyrRERERCRZDKtEREREJFkMq0REREQkWQyrRERERCRZDKtEREREJFkMq0REREQkWQyrRERERCRZRg+rSUlJUCgUMDc3x+jRo5Gdnd1u/88//xyjR4+Gubk5lEoldu7caewSiYiIiEiijBpWP/jgA0RHR+P111/HqVOnEBgYiMmTJ6OsrExv/5KSEkyZMgWBgYE4deoUXnvtNSxatAipqanGLJOIiIiIJEoQRVE01s7Hjh2Lhx56CMnJyZo2b29vPPPMM4iLi9Pp/+qrr+KTTz5BQUGBpm3evHk4ffo0Tpw40aFj1tbWwtbWFjU1NbCxsbn7kyAiIiIig+pMXjPaldXGxkb897//xcSJE7XaJ06ciC+//FLvNidOnNDpHxoaiq+//hpNTU3GKpWIiIiIJKqvsXZ87do1qNVquLi4aLW7uLigsrJS7zaVlZV6+9+8eRPXrl2Dq6urzjYNDQ1oaGjQvK6trTVA9UREREQkBUa/wUoQBK3XoijqtN2pv772VnFxcbC1tdUscrn8LismIiIiIqkwWlh1dHSEiYmJzlXUq1ev6lw9bTVgwAC9/fv27Yv+/fvr3WbFihWoqanRLJcvXzbMCRARERFRjzNaWDUzM8Po0aNx7NgxrfZjx45h3LhxercJCAjQ6X/06FH4+/vD1NRU7zYymQw2NjZaCxERERH1DkYdBhATE4N33nkH7777LgoKCrBkyRKUlZVh3rx5AFquir7wwgua/vPmzcOlS5cQExODgoICvPvuu9izZw+WLl1qzDKJiIiISKKMdoMVADz33HP44YcfsG7dOlRUVGDEiBE4fPgwBg8eDACoqKjQmnNVoVDg8OHDWLJkCRITEzFw4EBs374dERERxiyTiIiIiCTKqPOs9gTOs0pEREQkbZKYZ5WIiIiI6G4xrBIRERGRZDGsEhEREZFkMawSERERkWQxrBIRERGRZDGsEhEREZFkMawSERERkWQxrBIRERGRZBn1CVZERETUu6jVamRnZ6OiogKurq4IDAyEiYlJT5dFvRjDKhEREXWISqXC4sWLceXKFU2bu7s7tm3bhvDw8B6sjHozDgMgIiKiO1KpVIiMjNQKqgBQXl6OyMhIqFSqHqqMejuGVSIiImqXWq3G4sWLIYqizrrWtujoaKjV6u4uje4DDKtERETUruzsbJ0rqrcSRRGXL19GdnZ2N1ZF9wuGVSIiImpXRUWFQfsRdQbDKhEREbXL1dXVoP2IOoNhlYiIiNoVGBgId3d3CIKgd70gCJDL5QgMDOzmyuh+wLBKRERE7TIxMcG2bdsAQCewtr7eunXrfT3fqlqtRmZmJvbv34/MzEzebGZADKtERER0R+Hh4UhJSYGbm5tWu7u7O1JSUu7reVZVKhWGDBmC4OBgTJ8+HcHBwRgyZAin8zIQQdQ3D8U9rLa2Fra2tqipqYGNjU1Pl0NERNSr8AlW2lrnn709TrVecb7fg3xbOpPXGFaJiIiIukCtVmPIkCFtTuslCALc3d1RUlJyXwd6fTqT1zgMgIiIiKgLOP9s92BYJSIiIuoCzj/bPRhWiYiIiLqA8892D4ZVIiIioi7g/LPdg2GViIiIqAs4/2z3YFglIiIi6iLOP2t8nLqKiIiI6C5x/tnO6Uxe69tNNRERERH1WiYmJpgwYUJPl9ErcRgAEREREUkWwyoRERERSRbDKhERERFJFsMqEREREUkWwyoRERERSRbDKhERERFJFsMqEREREUkWwyoRERERSRbDKhERERFJFsMqEREREUkWwyoRERERSRbDKhERERFJFsMqEREREUkWwyoRERERSRbDKhERERFJFsMqEREREUkWwyoRERERSRbDKhERERFJFsMqEREREUkWwyoRERERSRbDKhERERFJFsMqEREREUkWwyoRERERSRbDKhERERFJFsMqEREREUkWwyoRERERSRbDKhERERFJllHD6o8//oiZM2fC1tYWtra2mDlzJqqrq9vdZvbs2RAEQWt55JFHjFkmEREREUlUX2PufPr06bhy5QqOHDkCAPjDH/6AmTNn4uDBg+1uN2nSJOzdu1fz2szMzJhlEhEREZFEGS2sFhQU4MiRI8jJycHYsWMBALt370ZAQACKiorg5eXV5rYymQwDBgwwVmlEREREdI8w2jCAEydOwNbWVhNUAeCRRx6Bra0tvvzyy3a3zczMhLOzM4YOHYq5c+fi6tWrbfZtaGhAbW2t1kJEREREvYPRwmplZSWcnZ112p2dnVFZWdnmdpMnT8bf//53ZGRkYPPmzfjqq6/w+OOPo6GhQW//uLg4zZhYW1tbyOVyg50DEREREfWsTofVNWvW6NwAdfvy9ddfAwAEQdDZXhRFve2tnnvuOTz11FMYMWIEwsLC8Omnn+LcuXNIS0vT23/FihWoqanRLJcvX+7sKRERERGRRHV6zOqCBQvw/PPPt9tnyJAh+Oabb/D999/rrKuqqoKLi0uHj+fq6orBgwfj/PnzetfLZDLIZLIO74+IiIiI7h2dDquOjo5wdHS8Y7+AgADU1NTg5MmTGDNmDADgP//5D2pqajBu3LgOH++HH37A5cuX4erq2tlSiYiIiOgeZ7Qxq97e3pg0aRLmzp2LnJwc5OTkYO7cuZg6darWTADDhg3Dxx9/DAC4ceMGli5dihMnTqC0tBSZmZkICwuDo6MjfvOb3xirVCIiIiKSKKM+FODvf/87Ro4ciYkTJ2LixInw9fXFX//6V60+RUVF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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 5 ---\n", - "Aktuelle Cluster: [[1], [3], [5], [9], [2, 6], [4, 7], [0, 8]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 2. 6. 0.54664466 2. ]\n", - " [ 3. 5. 0.5524637 2. ]\n", - " [ 7. 9. 0.56261506 2. ]\n", - " [ 0. 4. 1.14694608 2. ]\n", - " [ 1. 10. 1.18606925 3. ]\n", - " [12. 14. 1.42401155 5. ]\n", - " [11. 13. 2.15864694 4. ]\n", - " [ 8. 16. 3.73691206 5. ]\n", - " [15. 17. 4.64006144 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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IjJZDKtEREREZLIYVomIiIjIZDGsEhEREZHJYlglIiIiIpPFsEpEREREJothlYiIiIhMFsMqEREREZkshlUiIiIiMlkMq0RERERkshhWiYiIiMhkMawSERERkcliWCUiIiIik8WwSkREREQmi2GViIiIiEwWwyoRERERmSyGVSIiIiIyWQyrRERERGSyGFaJiIiIyGQxrBIRERGRyWJYJSIiIiKTxbBKRERERCaLYZWIiIiITJbRw2pKSgq8vLxgaWmJUaNGIScnp936X375JUaNGgVLS0solUps27bN2F0kIiIiIhNl1LD6ySefIC4uDq+99hpOnjyJ4OBgTJ48GWVlZXrrl5SUYMqUKQgODsbJkyfx6quvYsGCBUhPTzdmN4mIiIjIRElCCGGsxseMGYMHH3wQqampmjI/Pz8888wzSExM1Kn/xz/+Ef/4xz9QUFCgKYuOjsapU6dw7NixDp2ztrYW9vb2qKmpgZ2d3Z1fBBEREREZVGfymtFGVhsbG/Hvf/8bEydO1CqfOHEijh49qveYY8eO6dQPCwvDN998g6amJmN1lYiIiIhMVF9jNfzDDz9ArVbD1dVVq9zV1RWVlZV6j6msrNRb/8aNG/jhhx/g5uamc0xDQwMaGho0r2traw3QeyIiIiIyBUa/wUqSJK3XQgidstvV11feKjExEfb29ppNoVDcYY+JiIiIyFQYLaw6OTnBzMxMZxT1ypUrOqOnrfr376+3ft++fXHffffpPWbZsmWoqanRbBcvXjTMBRARERFRjzNaWLWwsMCoUaNw6NAhrfJDhw5h7Nixeo8JCgrSqX/w4EEEBgbC3Nxc7zEymQx2dnZaGxERERH1DkadBrBo0SK88847eO+991BQUICFCxeirKwM0dHRAFpGRV988UVN/ejoaFy4cAGLFi1CQUEB3nvvPbz77rtYvHixMbtJRERERCbKaDdYAcBzzz2HH3/8EQkJCaioqMCwYcOwf/9+eHp6AgAqKiq01lz18vLC/v37sXDhQmzduhUDBgzAm2++icjISGN2k4iIiIhMlFHXWe0JXGeViIiIyLSZxDqrRERERER3imGViIiIiEwWwyoRERERmSyGVSIiIiIyWQyrRERERGSyGFaJiIiIyGQxrBIRERGRyWJYJSIiIiKTZdQnWBEREVHvItQC1TnVaKxohIWbBeTBckhmUk93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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 6 ---\n", - "Aktuelle Cluster: [[1], [3], [5], [9], [2, 6], [4, 7], [0, 8]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 2. 6. 0.54664466 2. ]\n", - " [ 3. 5. 0.5524637 2. ]\n", - " [ 7. 9. 0.56261506 2. ]\n", - " [ 0. 4. 1.14694608 2. ]\n", - " [ 1. 10. 1.18606925 3. ]\n", - " [12. 14. 1.42401155 5. ]\n", - " [11. 13. 2.15864694 4. ]\n", - " [ 8. 16. 3.73691206 5. ]\n", - " [15. 17. 4.64006144 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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8atf/UqUlpZq9GXp0qViwIABok+fPlp3eO/evVsEBwcLGxsbIZPJhIeHh4iMjBT/93//p64zc+ZMYWlpqfM68/PzRUhIiLC2thb29vbi5ZdfFmVlZVrvaetqAFVVVRrH67r+PXv2CH9/f2Fubi7c3NzEb3/7W/Hll19q9f3u78qdPv30UwFA/O1vf9Pat2PHDhEcHCxcXFyEmZmZ+vv67bffatSrqqoSCxYsEJ6ensLU1FQ4ODiIUaNGibffflvcunVL53m74vPPPxfTpk0TgwcP1viuzJgxQ+cqG5999pl44oknhLm5ubCyshIjR47U+DM0fvx44evrq3Xc3e9XW38u79x35/vd0NAgZs+eLZycnIQkSRqfW15enhg3bpzo16+fAKDxPW3L7t271ddha2srXnzxRb2uskDUEZIQHVgskoiISM8iIiKQm5uL0tLSB/5pYURkOJwGQERE3aahoQEnT57E8ePHsWvXLmzYsIFBlYjaxZFVIiLqNqWlpfD09ISNjQ2mTZuG999/v80noxERAQyrRERERGTEuFAaERERERkthlUiIiIiMloMq0RERERktHrdagDNzc24cuUKrK2tu/3xdERERER0b0II/PDDDxgwYMA9H9/b68LqlStX9Po8ZiIiIiIyjEuXLt3zSXO9LqxaW1sDaLl4GxubHu4NEREREd2ttrYWcrlcndva0+vCautP/zY2NgyrREREREasI1M2eYMVERERERkthlUiIiIiMloMq0RERERktHrdnFUiIiLqfVQqFZqamnq6G9QJpqamMDExue92GFaJiIjIaAkhUFlZierq6p7uCnWBnZ0d+vfvf19r3zOsEhERkdFqDarOzs7o168fH/jzgBBC4Mcff8S1a9cAAK6url1ui2GViIiIjJJKpVIH1UceeaSnu0OdZGFhAQC4du0anJ2duzwlgDdYERERkVFqnaPar1+/Hu4JdVXrZ3c/840ZVomIiMio8af/B5c+PjuGVSIiIiIyWgyrRERERD1AkiTs3r27p7th9BhWiYiIiPSssrIS8+fPh0KhgEwmg1wuR1hYGA4fPmyQ82VlZUGSJIMu8XXz5k3MmDEDtra2sLW1xYwZM7plSTGuBkBERES9mkoF5OQAFRWAqysQFAToYa36NpWWlmLcuHGws7NDUlIS/Pz80NTUhIyMDERHR6OwsNBwJ79PQgioVCr07asdEadNm4bLly/jwIEDAIBf//rXmDFjBvbs2WPQPnFklYiIiLpMpVIhKysLO3fuRFZWFlQqVU93SYNSCQwaBAQHA9Omtfxz0KCWckOZO3cuJEnC8ePHERkZiSFDhsDX1xdxcXHIzc3VeYyukdG8vDxIkoTS0lIAwMWLFxEWFgZ7e3tYWlrC19cX+/fvR2lpKYKDgwEA9vb2kCQJs2bNAtASPpOSkqBQKGBhYQF/f3+kpaVpnTcjIwMBAQGQyWTIycnR6l9BQQEOHDiADz/8EIGBgQgMDMT27duxd+9eFBUV6eeNawNHVomIiKhLlEolYmJicPnyZXWZu7s7Nm3ahPDw8B7sWQulEoiMBITQLC8vbylPSwP03c0bN27gwIEDWLt2LSwtLbX229nZdbnt6OhoNDY2Ijs7G5aWlsjPz4eVlRXkcjnS09MRERGBoqIi2NjYqNc4XbZsGZRKJVJTUzF48GBkZ2dj+vTpcHJywvjx49VtL168GMnJyVAoFDr7eOzYMdja2mLMmDHqsieffBK2trY4evQovL29u3xd98KwSkRERJ2mVCoRGRkJcVcSLC8vR2RkJNLS0no0sKpUQEyMdlAFWsokCYiNBaZO1e+UgOLiYgghMHToUP01+l9lZWWIiIjAiBEjAAAKhUK9z8HBAQDg7OysDpt1dXXYsGEDMjMzERgYqD7m66+/xrZt2zTCakJCAkJCQto8d2VlJZydnbXKnZ2dUVlZed/X1h5OAyAiIqJOUalUiImJ0QqqANRlsbGxPTolICcHuGPAV4sQwKVLLfX0qfX6DbE27IIFC7BmzRqMGzcOK1aswLfffttu/fz8fNTX1yMkJARWVlbq7bPPPsP58+c16gYEBNzz/LquSQhh8HVwGVaJiIioU3JycjR++r+bEAKXLl3SOfexu1RU6LdeRw0ePBiSJKGgoKBTx/Xp0xLJ7vwfgLuf+jR79mxcuHABM2bMwJkzZxAQEIDNmze32WZzczMAYN++fcjLy1Nv+fn5GvNWAeicsnCn/v374+rVq1rlVVVVcHFxaf/i7hPDKhEREXVKRQcTXkfrGYKrq37rdZSDgwNCQ0OxZcsW1NXVae1va6knJycnAJrvWV5enlY9uVyOqKgoKJVKxMfHY/v27QAAMzMzANAYzR42bBhkMhnKysrg5eWlscnl8k5dV2BgIGpqanD8+HF12b/+9S/U1NRg7NixnWqrsxhWiYiIqFNcO5jwOlrPEIKCAHf3lrmpukgSIJe31NO3lJQUqFQqjB49Gunp6fjuu+9QUFCA9957Tz139G6tAXLlypU4d+4c9u3bh/Xr12vUiY2NRUZGBkpKSnDy5ElkZmbCx8cHAODh4QFJkrB3715UVVXh1q1bsLa2xqJFi7Bw4ULs2LED58+fx6lTp7Blyxbs2LGjU9fk4+ODSZMmYc6cOcjNzUVubi7mzJmDF154waA3VwEARC9TU1MjAIiampqe7goREVGvdPv2beHu7i4kSRIAtDZJkoRcLhe3b9++r/P89NNPIj8/X/z0009dOj49XQhJatlaZqm2bK1l6en31b12XblyRURHRwsPDw9hZmYm3NzcxIsvviiOHDmirgNA7Nq1S/3666+/FiNGjBDm5uYiKChIfPHFFwKAKCkpEUIIMW/ePPHoo48KmUwmnJycxIwZM8T169fVxyckJIj+/fsLSZLEzJkzhRBCNDc3i02bNglvb29hamoqnJycRGhoqPjqq6+EEEIcOXJEABA3b9685zV9//334he/+IWwtrYW1tbW4he/+MU9j2vrM+xMXpOE0HWf3IOrtrYWtra2qKmpgY2NTU93h4iIqFdqXQ0A0Jxn2XqzjT5WA6ivr0dJSQk8PT1hbm7exX62rApw5xRbuRzYuFH/y1aRtrY+w87kNU4DICIiok4LDw9HWloa3NzcNMrd3d17fNmqO4WHA6WlwJEjwF//2vLPkhIG1QcJ11klIiKiLgkPD8fUqVORk5ODiooKuLq6IigoCCaGfJZpF5iYABMm9HQvqKsYVomIiKjLTExMMIFJkAyI0wCIiIiIyGgxrBIRERGR0WJYJSIiIiKjxbBKREREREaLYZWIiIiIjBbDKhEREREZLYZVIiIioh4gSRJ2797d090wegyrRERERHpWWVmJ+fPnQ6FQQCaTQS6XIywsDIcPHzbI+bKysiBJEqqrqw3SPgCsXbsWY8eORb9+/WBnZ2ew89yNDwUgIiKiXk3VrEJOWQ4qfqiAq7UrggYGwaSP4Z6yVVpainHjxsHOzg5JSUnw8/NDU1MTMjIyEB0djcLCQoOd+34JIaBSqdC3r3ZEbGxsxMsvv4zAwEB89NFH3dYnjqwSERFRr6UsUGLQpkEI3hGMacppCN4RjEGbBkFZoDTYOefOnQtJknD8+HFERkZiyJAh8PX1RVxcHHJzc3Ueo2tkNC8vD5IkobS0FABw8eJFhIWFwd7eHpaWlvD19cX+/ftRWlqK4OBgAIC9vT0kScKsWbMAtITPpKQkKBQKWFhYwN/fH2lpaVrnzcjIQEBAAGQyGXJycnT2cdWqVVi4cCFGjBhx/29SJ3BklYiIiHolZYESkX+PhIDQKC+vLUfk3yOR9koawn3C9XrOGzdu4MCBA1i7di0sLS219t/Pz+fR0dFobGxEdnY2LC0tkZ+fDysrK8jlcqSnpyMiIgJFRUWwsbGBhYUFAGDZsmVQKpVITU3F4MGDkZ2djenTp8PJyQnjx49Xt7148WIkJydDoVB060/8HcGwSkRERL2OqlmFmAMxWkEVAAQEJEiIPRCLqd5T9ToloLi4GEIIDB06VG9ttiorK0NERIR6ZFOhUKj3OTg4AACcnZ3VYbOurg4bNmxAZmYmAgMD1cd8/fXX2LZtm0ZYTUhIQEhIiN77rA8Mq0RERNTr5JTl4HLt5Tb3Cwhcqr2EnLIcTBg0QW/nFaIlHEuSpLc2Wy1YsABvvvkmDh48iOeeew4RERHw8/Nrs35+fj7q6+u1QmhjYyNGjhypURYQEKD3/uoL56wSERFRr1PxQ4Ve63XU4MGDIUkSCgoKOnVcnz4tkaw17AJAU1OTRp3Zs2fjwoULmDFjBs6cOYOAgABs3ry5zTabm5sBAPv27UNeXp56y8/P15i3CkDnlAVjwbBKREREvY6rtate63WUg4MDQkNDsWXLFtTV1Wntb2tpKScnJwBARcX/wnNeXp5WPblcjqioKCiVSsTHx2P79u0AADMzMwCASqVS1x02bBhkMhnKysrg5eWlscnl8q5eYrdjWCUiIqJeJ2hgENxt3CFB98/xEiTIbeQIGhik93OnpKRApVJh9OjRSE9Px3fffYeCggK899576rmjd2sNkCtXrsS5c+ewb98+rF+/XqNObGwsMjIyUFJSgpMnTyIzMxM+Pj4AAA8PD0iShL1796Kqqgq3bt2CtbU1Fi1ahIULF2LHjh04f/48Tp06hS1btmDHjh2dvq6ysjLk5eWhrKwMKpVKPVJ769atzr9JncCwSkRERL2OSR8TbJq0CQC0Amvr642TNhpkvVVPT0+cPHkSwcHBiI+Px/DhwxESEoLDhw8jNTVV5zGmpqbYuXMnCgsL4e/vj3Xr1mHNmjUadVQqFaKjo+Hj44NJkybB29sbKSkpAAA3NzesWrUKS5YsgYuLC+bNmwcAWL16NZYvX47ExET4+PggNDQUe/bsgaenZ6eva/ny5Rg5ciRWrFiBW7duYeTIkRg5ciROnDjR6bY6QxJ3To7oBWpra2Fra4uamhrY2Nj0dHeIiIioi+rr61FSUgJPT0+Ym5t3qQ1lgRIxB2I0braS28ixcdJGvS9bRdra+gw7k9e4GgARERH1WuE+4ZjqPbVbn2BF+sWwSkRERL2aSR8TvS5PRd3LoHNWExMT8cQTT8Da2hrOzs546aWXUFRUdM/jvvrqK4waNQrm5uZQKBTYunWrIbtJREREREbKoGH1q6++QnR0NHJzc3Ho0CHcvn0bEydO1LmUQ6uSkhJMmTIFQUFBOHXqFN566y0sWLAA6enphuwqERERERkhg04DOHDggMbrTz75BM7Ozvj3v/+Np59+WucxW7duxcCBA7Fx40YAgI+PD06cOIHk5GREREQYsrtEREREZGS6demqmpoaAP97fq0ux44dw8SJEzXKQkNDceLECa0nORARERFR79ZtN1gJIRAXF4ennnoKw4cPb7NeZWUlXFxcNMpcXFxw+/ZtXL9+Ha6umk+aaGhoQENDg/p1bW2tfjtORERERD2m20ZW582bh2+//RY7d+68Z11J0ly8t3Up2LvLgZabuGxtbdXbg/T4MCIiIiJqX7eE1fnz5+Of//wnjhw5And393br9u/fH5WVlRpl165dQ9++ffHII49o1V+6dClqamrU26VLl/TadyIiIiLqOQYNq0IIzJs3D0qlEpmZmR16tFdgYCAOHTqkUXbw4EEEBATA1NRUq75MJoONjY3GRkRERGTsJEnC7t27e7obRs+gYTU6Ohp//vOf8de//hXW1taorKxEZWUlfvrpJ3WdpUuX4vXXX1e/joqKwsWLFxEXF4eCggJ8/PHH+Oijj7Bo0SJDdpWIiIhIbyorKzF//nwoFArIZDLI5XKEhYXh8OHDBjlfVlYWJElCdXW1QdovLS3Fr371K3h6esLCwgKPPvooVqxYgcbGRoOc704GvcEqNTUVADBhwgSN8k8++QSzZs0CAFRUVKCsrEy9z9PTE/v378fChQuxZcsWDBgwAO+99x6XrSIiIqKuUamAnBygogJwdQWCggATwz1utbS0FOPGjYOdnR2SkpLg5+eHpqYmZGRkIDo6GoWFhQY79/0SQkClUqFvX82IWFhYiObmZmzbtg1eXl74z3/+gzlz5qCurg7JyckG71SvUlNTIwCImpqanu4KERER3YeffvpJ5Ofni59++qnrjaSnC+HuLgTwv83dvaXcQCZPnizc3NzErVu3tPbdvHlT/e8AxK5du4QQQhw5ckQA0Nh/6tQpAUCUlJQIIYQoLS0VL7zwgrCzsxP9+vUTw4YNE/v27RMlJSUCgMY2c+ZMIYQQzc3NYt26dcLT01OYm5sLPz8/8cUXX6jP0XreAwcOiFGjRglTU1ORmZnZoetMSkoSnp6e7dZp6zPsTF7rtqWriIiIiLqVUglERrZE1DuVl7eUp6UB4eF6PeWNGzdw4MABrF27FpaWllr77ezsutx2dHQ0GhsbkZ2dDUtLS+Tn58PKygpyuRzp6emIiIhAUVERbGxsYGFhAQBYtmwZlEolUlNTMXjwYGRnZ2P69OlwcnLC+PHj1W0vXrwYycnJUCgUHe5jTU1Nu2vn6wvDKhEREfU+KhUQE6MdVIGWMkkCYmOBqVP1OiWguLgYQggMHTpUb222KisrQ0REBEaMGAEAUCgU6n2todHZ2VkdNuvq6rBhwwZkZmYiMDBQfczXX3+Nbdu2aYTVhIQEhISEdLgv58+fx+bNm7F+/fr7vax7YlglIiKi3icnB7h8ue39QgCXLrXUu+vemvsh2lkb/n4tWLAAb775Jg4ePIjnnnsOERER8PPza7N+fn4+6uvrtUJoY2MjRo4cqVEWEBDQ4X5cuXIFkyZNwssvv4zZs2d37iK6oFsft0pERETULSoq9FuvgwYPHgxJklBQUNCp4/r0aYlk4o6R4LsfMz979mxcuHABM2bMwJkzZxAQEIDNmze32WZzczMAYN++fcjLy1Nv+fn5SEtL06ira8qCLleuXEFwcDACAwPxwQcfdOiY+8WwSkRERL3PXY9nv+96HeTg4IDQ0FBs2bIFdXV1WvvbWlrKyckJQMsqSa3y8vK06snlckRFRUGpVCI+Ph7bt28HAJiZmQEAVCqVuu6wYcMgk8lQVlYGLy8vja0rT/wsLy/HhAkT8Pjjj+OTTz5RB2xDY1glIiKi3icoCHB3b5mbqoskAXJ5Sz09S0lJgUqlwujRo5Geno7vvvsOBQUFeO+999RzR+/WGiBXrlyJc+fOYd++fVrzQWNjY5GRkYGSkhKcPHkSmZmZ8PHxAQB4eHhAkiTs3bsXVVVVuHXrFqytrbFo0SIsXLgQO3bswPnz53Hq1Cls2bIFO3bs6NQ1XblyBRMmTIBcLkdycjKqqqrU6+cbGsMqERER9T4mJsCmTS3/fndgbX29caNB1lv19PTEyZMnERwcjPj4eAwfPhwhISE4fPiweg36u5mammLnzp0oLCyEv78/1q1bhzVr1mjUUalUiI6Oho+PDyZNmgRvb2+kpKQAANzc3LBq1SosWbIELi4umDdvHgBg9erVWL58ORITE+Hj44PQ0FDs2bOnQ08VvdPBgwdRXFyMzMxMuLu7w9XVVb0ZmiSErtvkHly1tbWwtbVFTU0NH71KRET0AKuvr0dJSQk8PT1hbm7etUaUypZVAe682Uoubwmqel62irS19Rl2Jq9xNQAiIiLqvcLDW5an6sYnWJF+MawSERFR72Ziotflqah7cc4qERERERkthlUiIiIiMloMq0RERERktBhWiYiIiMhoMawSERERkdFiWCUiIiIio8WwSkRERERGi2GViIiIqAdIkoTdu3f3dDeMHsMqERERkZ5VVlZi/vz5UCgUkMlkkMvlCAsLw+HDhw1yvqysLEiShOrqaoO0DwAvvvgiBg4cCHNzc7i6umLGjBm4cuWKwc7XimGViIiIejWVEMi6eRM7r15F1s2bUAlh0POVlpZi1KhRyMzMRFJSEs6cOYMDBw4gODgY0dHRBj33/RJC4Pbt2zr3BQcH4+9//zuKioqQnp6O8+fPIzIy0uB9YlglIiKiXktZVYVBubkIPn0a0woKEHz6NAbl5kJZVWWwc86dOxeSJOH48eOIjIzEkCFD4Ovri7i4OOTm5uo8RtfIaF5eHiRJQmlpKQDg4sWLCAsLg729PSwtLeHr64v9+/ejtLQUwcHBAAB7e3tIkoRZs2YBaAmfSUlJUCgUsLCwgL+/P9LS0rTOm5GRgYCAAMhkMuTk5Ojs48KFC/Hkk0/Cw8MDY8eOxZIlS5Cbm4umpqb7f9Pa0degrRMRERH1EGVVFSLPnsXd46jlDQ2IPHsWab6+CHdy0us5b9y4gQMHDmDt2rWwtLTU2m9nZ9fltqOjo9HY2Ijs7GxYWloiPz8fVlZWkMvlSE9PR0REBIqKimBjYwMLCwsAwLJly6BUKpGamorBgwcjOzsb06dPh5OTE8aPH69ue/HixUhOToZCoehQH2/cuIG//OUvGDt2LExNTbt8TR3BsEpERES9jkoIxBQXawVVABAAJACxxcWY6ugIE0nS23mLi4shhMDQoUP11marsrIyREREYMSIEQAAhUKh3ufg4AAAcHZ2VofNuro6bNiwAZmZmQgMDFQf8/XXX2Pbtm0aYTUhIQEhISH37MPvfvc7vP/++/jxxx/x5JNPYu/evfq6vDZxGgARERH1OjnV1bjc0NDmfgHgUkMDcvR8Q5L473xYSY8BuNWCBQuwZs0ajBs3DitWrMC3337bbv38/HzU19cjJCQEVlZW6u2zzz7D+fPnNeoGBAR0qA+//e1vcerUKRw8eBAmJiZ4/fXX1ddsKBxZJSIiol6norFRr/U6avDgwZAkCQUFBXjppZc6fFyfPi3jh3cGv7vngs6ePRuhoaHYt28fDh48iMTERKxfvx7z58/X2WZzczMAYN++fXBzc9PYJ5PJNF7rmrKgi6OjIxwdHTFkyBD4+PhALpcjNzdXPXJrCBxZJSIiol7H1cxMr/U6ysHBAaGhodiyZQvq6uq09re1tJTTf+fOVlRUqMvy8vK06snlckRFRUGpVCI+Ph7bt28HAJj99zpUKpW67rBhwyCTyVBWVgYvLy+NTS6Xd/US1VqDdUM7I9j6wLBKREREvU6QnR3cZTK09WO8BEAukyHoPm54aktKSgpUKhVGjx6N9PR0fPfddygoKMB7773X5ghka4BcuXIlzp07h3379mH9+vUadWJjY5GRkYGSkhKcPHkSmZmZ8PHxAQB4eHhAkiTs3bsXVVVVuHXrFqytrbFo0SIsXLgQO3bswPnz53Hq1Cls2bIFO3bs6NQ1HT9+HO+//z7y8vJw8eJFHDlyBNOmTcOjjz5q0FFVgGGViIiIeiETScImLy8A0Aqsra83ennp9eaqVp6enjh58iSCg4MRHx+P4cOHIyQkBIcPH0ZqaqrOY0xNTbFz504UFhbC398f69atw5o1azTqqFQqREdHw8fHB5MmTYK3tzdSUlIAAG5ubli1ahWWLFkCFxcXzJs3DwCwevVqLF++HImJifDx8UFoaCj27NkDT0/PTl2ThYUFlEolnn32WXh7e+ONN97A8OHD8dVXX2lNKdA3SRh6Vmw3q62tha2tLWpqamBjY9PT3SEiIqIuqq+vR0lJCTw9PWFubt6lNpRVVYgpLta42Uouk2Gjl5fel60ibW19hp3Ja7zBioiIiHqtcCcnTHV0RE51NSoaG+FqZoYgOzuDjKiSYTCsEhERUa9mIkmYYG/f092gLuKcVSIiIiIyWgyrRERERGS0GFaJiIiIyGgxrBIRERGR0WJYJSIiIiKjxbBKREREREaLYZWIiIiIjBbDKhEREVEPkCQJu3fv7uluGD2GVSIiIiI9q6ysxPz586FQKCCTySCXyxEWFobDhw8b5HxZWVmQJAnV1dUGaf9ODQ0NeOyxxyBJEvLy8gx+Pj7BioiIiHo1oRKozqlGY0UjzFzNYBdkB8nEcI9bLS0txbhx42BnZ4ekpCT4+fmhqakJGRkZiI6ORmFhocHOfb+EEFCpVOjbt+2IuHjxYgwYMACnT5/ulj5xZJWIiIh6rSplFXIH5eJ08GkUTCvA6eDTyB2UiypllcHOOXfuXEiShOPHjyMyMhJDhgyBr68v4uLikJubq/MYXSOjeXl5kCQJpaWlAICLFy8iLCwM9vb2sLS0hK+vL/bv34/S0lIEBwcDAOzt7SFJEmbNmgWgJXwmJSVBoVDAwsIC/v7+SEtL0zpvRkYGAgICIJPJkJOT0+a1ffnllzh48CCSk5Pv703qBI6sEhERUa9UpazC2cizgNAsbyhvwNnIs/BN84VTuJNez3njxg0cOHAAa9euhaWlpdZ+Ozu7LrcdHR2NxsZGZGdnw9LSEvn5+bCysoJcLkd6ejoiIiJQVFQEGxsbWFhYAACWLVsGpVKJ1NRUDB48GNnZ2Zg+fTqcnJwwfvx4dduLFy9GcnIyFApFm328evUq5syZg927d6Nfv35dvo7OYlglIiKiXkeoBIpjirWCastOABJQHFsMx6mOep0SUFxcDCEEhg4dqrc2W5WVlSEiIgIjRowAACgUCvU+BwcHAICzs7M6bNbV1WHDhg3IzMxEYGCg+pivv/4a27Zt0wirCQkJCAkJafPcQgjMmjULUVFRCAgIUI/2dgeGVSIiIup1qnOq0XC5oe0KAmi41IDqnGrYT7DX23mFaEnHkqT/ObELFizAm2++iYMHD+K5555DREQE/Pz82qyfn5+P+vp6rRDa2NiIkSNHapQFBAS0e+7NmzejtrYWS5cu7foFdBHnrBIREVGv01jRqNd6HTV48GBIkoSCgoJOHdenT0skaw27ANDU1KRRZ/bs2bhw4QJmzJiBM2fOICAgAJs3b26zzebmZgDAvn37kJeXp97y8/M15q0C0Dll4U6ZmZnIzc2FTCZD37594eXlBaAl5M6cObPjF9oFDKtERETU65i5mum1Xkc5ODggNDQUW7ZsQV1dndb+tpaWcnJqmTtbUVGhLtO1LJRcLkdUVBSUSiXi4+Oxfft2AICZWct1qFQqdd1hw4ZBJpOhrKwMXl5eGptcLu/Udb333ns4ffq0OvDu378fAPD5559j7dq1nWqrszgNgIiIiHoduyA7yNxlaChv0D1vVQJk7jLYBdnp/dwpKSkYO3YsRo8ejYSEBPj5+eH27ds4dOgQUlNTdY66tgbIlStXYs2aNfjuu++wfv16jTqxsbGYPHkyhgwZgps3byIzMxM+Pj4AAA8PD0iShL1792LKlCmwsLCAtbU1Fi1ahIULF6K5uRlPPfUUamtrcfToUVhZWXVqRHTgwIEar62srAAAjz76KNzd3Tv7FnUKR1aJiIio15FMJHht8vrvi7t3tvzDa6OXQdZb9fT0xMmTJxEcHIz4+HgMHz4cISEhOHz4MFJTU3UeY2pqip07d6KwsBD+/v5Yt24d1qxZo1FHpVIhOjoaPj4+mDRpEry9vZGSkgIAcHNzw6pVq7BkyRK4uLhg3rx5AIDVq1dj+fLlSExMhI+PD0JDQ7Fnzx54enrq/boNRRJ3To7oBWpra2Fra4uamhrY2Nj0dHeIiIioi+rr61FSUgJPT0+Ym5t3qY0qZRWKY4o1braSyWXw2uil92WrSFtbn2Fn8hqnARAREVGv5RTuBMepjt36BCvSL4ZVIiIi6tUkE0mvy1NR9+KcVSIiIiIyWgyrRERERGS0GFaJiIiIyGgZNKxmZ2cjLCwMAwYMgCRJ2L17d7v1s7KyIEmS1lZYWGjIbhIRERGRkTLoDVZ1dXXw9/fHL3/5S0RERHT4uKKiIo1lDFqf6kBEREREDxeDhtXJkydj8uTJnT7O2dkZdnZ2+u8QERERET1QjHLO6siRI+Hq6opnn30WR44cabduQ0MDamtrNTYiIiIi6h2MKqy6urrigw8+QHp6OpRKJby9vfHss88iOzu7zWMSExNha2ur3uRyeTf2mIiIiKhrOnI/DxlZWPX29sacOXPw+OOPIzAwECkpKXj++eeRnJzc5jFLly5FTU2Nert06VI39piIiAxFCBVu3szC1as7cfNmFoRQ9XSXiDqssrIS8+fPh0KhgEwmg1wuR1hYGA4fPmyQ87XepF5dXW2Q9u/U0NCAxx57DJIkIS8vz+DnM/onWD355JP485//3OZ+mUwGmUzWjT0iIiJDq6pSorg4Bg0Nl9VlMpk7vLw2wckpvAd7Rg8ioRLd+rjV0tJSjBs3DnZ2dkhKSoKfnx+ampqQkZGB6Ohoo17lSAgBlUqFvn3bjoiLFy/GgAEDcPr06W7pk1GNrOpy6tQpuLq69nQ3iIiom1RVKXH2bKRGUAWAhoZynD0biaoqZQ/1jB5EVcoq5A7Kxeng0yiYVoDTwaeROygXVcoqg51z7ty5kCQJx48fR2RkJIYMGQJfX1/ExcUhNzdX5zG6Rkbz8vIgSRJKS0sBABcvXkRYWBjs7e1haWkJX19f7N+/H6WlpQgODgYA2NvbQ5IkzJo1C0BL+ExKSoJCoYCFhQX8/f2Rlpamdd6MjAwEBARAJpMhJyenzWv78ssvcfDgwXZ/9dY3g46s3rp1C8XFxerXJSUlyMvLg4ODAwYOHIilS5eivLwcn332GQBg48aNGDRoEHx9fdHY2Ig///nPSE9PR3p6uiG7SURERkIIFYqLYwAIXXsBSCgujoWj41RIkkk3944eNFXKKpyNPKv1dWoob8DZyLPwTfOFU7h+l8e8ceMGDhw4gLVr18LS0lJr//2sdhQdHY3GxkZkZ2fD0tIS+fn5sLKyglwuR3p6OiIiItTLf1pYWAAAli1bBqVSidTUVAwePBjZ2dmYPn06nJycMH78eHXbixcvRnJyMhQKRZt9vHr1KubMmYPdu3ejX79+Xb6OzjJoWD1x4oQ66QNAXFwcAGDmzJn49NNPUVFRgbKyMvX+xsZGLFq0COXl5bCwsICvry/27duHKVOmGLKbRERkJKqrc7RGVDUJNDRcQnV1DuztJ3RTr+hBJFQCxTHF7f1/D4pji+E41VGvUwKKi4shhMDQoUP11marsrIyREREYMSIEQAAhUKh3ufg4ABAc/nPuro6bNiwAZmZmQgMDFQf8/XXX2Pbtm0aYTUhIQEhISFtnlsIgVmzZiEqKgoBAQHq0d7uYNCwOmHCBAih61vS4tNPP9V4vXjxYixevNiQXSIiIiPW2Fih13r08KrOqUbD5Ya2Kwig4VIDqnOqYT/BXm/nbc09kqT/ObELFizAm2++iYMHD+K5555DREQE/Pz82qyfn5+P+vp6rRDa2NiIkSNHapQFBAS0e+7NmzejtrYWS5cu7foFdJHRz1klIqKHh5lZx+5R6Gg9eng1VjTqtV5HDR48GJIkoaCgoFPH9enTEsnuHORramrSqDN79mxcuHABM2bMwJkzZxAQEIDNmze32WZzczMAYN++fcjLy1Nv+fn5GvNWAeicsnCnzMxM5ObmQiaToW/fvvDy8gLQEnJnzpzZ8QvtAoZVIiIyGnZ2QZDJ3AG0NSolQSaTw84uqDu7RQ8gM1czvdbrKAcHB4SGhmLLli2oq6vT2t/W0lKtj5avqPjfrwa6loWSy+WIioqCUqlEfHw8tm/fDgAwM2u5DpXqf0u8DRs2DDKZDGVlZfDy8tLYOrsu/XvvvYfTp0+rA+/+/fsBAJ9//jnWrl3bqbY6y+iXriIiooeHJJnAy2sTzp6NREtgvXMqWUuA9fLayJur6J7sguwgc5ehobxB97xVCZC5y2AXZKf3c6ekpGDs2LEYPXo0EhIS4Ofnh9u3b+PQoUNITU3VOeraGiBXrlyJNWvW4LvvvsP69es16sTGxmLy5MkYMmQIbt68iczMTPj4+AAAPDw8IEkS9u7diylTpsDCwgLW1tZYtGgRFi5ciObmZjz11FOora3F0aNHYWVl1akR0YEDB2q8trKyAgA8+uijcHd37+xb1CkcWSUiIqPi5BQOX980yGRuGuUymTt8fdO4zip1iGQiwWuT139f3L2z5R9eG70Mst6qp6cnTp48ieDgYMTHx2P48OEICQnB4cOHkZqaqvMYU1NT7Ny5E4WFhfD398e6deuwZs0ajToqlQrR0dHw8fHBpEmT4O3tjZSUFACAm5sbVq1ahSVLlsDFxQXz5s0DAKxevRrLly9HYmIifHx8EBoaij179sDT01Pv120okmjvDqgHUG1tLWxtbVFTUwMbG5ue7g4REXWRECpUV+egsbECZmausLML4ojqQ6a+vh4lJSXw9PSEubl5l9qoUlahOKZY42YrmVwGr41eel+2irS19Rl2Jq9xGgARERklSTLh8lR035zCneA41bFbn2BF+sWwSkRERL2aZCLpdXkq6l6cs0pERERERothlYiIiIiMFsMqERERERkthlUiIiIiMloMq0RERERktBhWiYiIiMhoMawSERER9QBJkrB79+6e7obRY1glIiIi0rPKykrMnz8fCoUCMpkMcrkcYWFhOHz4sEHOl5WVBUmSUF1dbZD2AWDQoEGQJEljW7JkicHO14oPBSAiIiLSo9LSUowbNw52dnZISkqCn58fmpqakJGRgejoaBQWFvZ0F9skhIBKpULfvrojYkJCAubMmaN+bWVlZfA+cWSViIiIejUhVLh5MwtXr+7EzZtZEEJl0PPNnTsXkiTh+PHjiIyMxJAhQ+Dr64u4uDjk5ubqPEbXyGheXh4kSUJpaSkA4OLFiwgLC4O9vT0sLS3h6+uL/fv3o7S0FMHBwQAAe3t7SJKEWbNmAWgJn0lJSVAoFLCwsIC/vz/S0tK0zpuRkYGAgADIZDLk5OS0eW3W1tbo37+/euuOsMqRVSIiIuq1qqqUKC6OQUPDZXWZTOYOL69NcHIK1/v5bty4gQMHDmDt2rWwtLTU2m9nZ9fltqOjo9HY2Ijs7GxYWloiPz8fVlZWkMvlSE9PR0REBIqKimBjYwMLCwsAwLJly6BUKpGamorBgwcjOzsb06dPh5OTE8aPH69ue/HixUhOToZCoWi3j+vWrcPq1ashl8vx8ssv47e//S3MzMy6fE0dwbBKREREvVJVlRJnz0YCEBrlDQ3lOHs2Er6+aXoPrMXFxRBCYOjQoXptFwDKysoQERGBESNGAAAUCoV6n4ODAwDA2dlZHTbr6uqwYcMGZGZmIjAwUH3M119/jW3btmmE1YSEBISEhLR7/piYGDz++OOwt7fH8ePHsXTpUpSUlODDDz/U52VqYVglIiKiXkcIFYqLY3B3UP3vXgASiotj4eg4FZJkosfztpxPkiS9tdlqwYIFePPNN3Hw4EE899xziIiIgJ+fX5v18/PzUV9frxVCGxsbMXLkSI2ygICAe55/4cKF6n/38/ODvb09IiMjsW7dOjzyyCOdvJqO45xVIiIi6nWqq3M0fvrXJtDQcAnV1W3Pz+yKwYMHQ5IkFBQUdOq4Pn1aIllr2AWApqYmjTqzZ8/GhQsXMGPGDJw5cwYBAQHYvHlzm202NzcDAPbt24e8vDz1lp+frzFvFYDOKQv38uSTTwJoGU02JIZVIiIi6nUaGyv0Wq+jHBwcEBoaii1btqCurk5rf1tLSzk5OQEAKir+15+8vDytenK5HFFRUVAqlYiPj8f27dsBQD1vVKX6381jw4YNg0wmQ1lZGby8vDQ2uVze1UtUO3XqFADA1dX1vttqD6cBEBERUa9jZtaxANXRep2RkpKCsWPHYvTo0UhISICfnx9u376NQ4cOITU1Veeoa2uAXLlyJdasWYPvvvsO69ev16gTGxuLyZMnY8iQIbh58yYyMzPh4+MDAPDw8IAkSdi7dy+mTJkCCwsLWFtbY9GiRVi4cCGam5vx1FNPoba2FkePHoWVlRVmzpzZ4Ws6duwYcnNzERwcDFtbW3zzzTdYuHAhXnzxRQwcOPD+3rB74MgqERER9Tp2dkGQydwBtDV3VIJMJoedXZDez+3p6YmTJ08iODgY8fHxGD58OEJCQnD48GGkpqbqPMbU1BQ7d+5EYWEh/P39sW7dOqxZs0ajjkqlQnR0NHx8fDBp0iR4e3sjJSUFAODm5oZVq1ZhyZIlcHFxwbx58wAAq1evxvLly5GYmAgfHx+EhoZiz5498PT07NQ1yWQyfP7555gwYQKGDRuG5cuXY86cOdi5c2cX3qHOkcSdkyN6gdraWtja2qKmpgY2NjY93R0iIiLqovr6epSUlMDT0xPm5uadPv5/qwEAmjdatQRYQ6wGQJra+gw7k9c4skpERES9kpNTOHx90yCTuWmUy2TuDKoPEM5ZJSIiol7LySkcjo5TUV2dg8bGCpiZucLOLkivy1WRYTGsEhERUa8mSSawt5/Q092gLuI0ACIiIiIyWgyrRERERGS0GFaJiIiIyGgxrBIRERGR0WJYJSIiIiKjxbBKREREREaLYZWIiIioB0iShN27d/d0N4wewyoRERGRnlVWVmL+/PlQKBSQyWSQy+UICwvD4cOHDXK+rKwsSJKE6upqg7QPAIMGDYIkSRrbkiVLDHa+VnwoABEREZEelZaWYty4cbCzs0NSUhL8/PzQ1NSEjIwMREdHo7CwsKe72CYhBFQqFfr21R0RExISMGfOHPVrKysrg/eJI6tERETUqwmhws2bWbh6dSdu3syCECqDnm/u3LmQJAnHjx9HZGQkhgwZAl9fX8TFxSE3N1fnMbpGRvPy8iBJEkpLSwEAFy9eRFhYGOzt7WFpaQlfX1/s378fpaWlCA4OBgDY29tDkiTMmjULQEv4TEpKgkKhgIWFBfz9/ZGWlqZ13oyMDAQEBEAmkyEnJ6fNa7O2tkb//v3VW3eEVY6sEhERUa9VVaVEcXEMGhouq8tkMnd4eW2Ck1O43s9348YNHDhwAGvXroWlpaXWfjs7uy63HR0djcbGRmRnZ8PS0hL5+fmwsrKCXC5Heno6IiIiUFRUBBsbG1hYWAAAli1bBqVSidTUVAwePBjZ2dmYPn06nJycMH78eHXbixcvRnJyMhQKRbt9XLduHVavXg25XI6XX34Zv/3tb2FmZtbla+oIhlUiIiLqlaqqlDh7NhKA0ChvaCjH2bOR8PVN03tgLS4uhhACQ4cO1Wu7AFBWVoaIiAiMGDECAKBQKNT7HBwcAADOzs7qsFlXV4cNGzYgMzMTgYGB6mO+/vprbNu2TSOsJiQkICQkpN3zx8TE4PHHH4e9vT2OHz+OpUuXoqSkBB9++KE+L1MLwyoRERH1OkKoUFwcg7uD6n/3ApBQXBwLR8epkCQTPZ635XySJOmtzVYLFizAm2++iYMHD+K5555DREQE/Pz82qyfn5+P+vp6rRDa2NiIkSNHapQFBATc8/wLFy5U/7ufnx/s7e0RGRmJdevW4ZFHHunk1XQc56wSERFRr1NdnaPx0782gYaGS6iubnt+ZlcMHjwYkiShoKCgU8f16dMSyVrDLgA0NTVp1Jk9ezYuXLiAGTNm4MyZMwgICMDmzZvbbLO5uRkAsG/fPuTl5am3/Px8jXmrAHROWbiXJ598EkDLaLIhMawSERFRr9PYWKHXeh3l4OCA0NBQbNmyBXV1dVr721paysnJCQBQUfG//uTl5WnVk8vliIqKglKpRHx8PLZv3w4A6nmjKtX/bh4bNmwYZDIZysrK4OXlpbHJ5fKuXqLaqVOnAACurq733VZ7OA2AiIiIeh0zs44FqI7W64yUlBSMHTsWo0ePRkJCAvz8/HD79m0cOnQIqampOkddWwPkypUrsWbNGnz33XdYv369Rp3Y2FhMnjwZQ4YMwc2bN5GZmQkfHx8AgIeHByRJwt69ezFlyhRYWFjA2toaixYtwsKFC9Hc3IynnnoKtbW1OHr0KKysrDBz5swOX9OxY8eQm5uL4OBg2Nra4ptvvsHChQvx4osvYuDAgff3ht0DR1aJiIio17GzC4JM5g6grbmjEmQyOezsgvR+bk9PT5w8eRLBwcGIj4/H8OHDERISgsOHDyM1NVXnMaampti5cycKCwvh7++PdevWYc2aNRp1VCoVoqOj4ePjg0mTJsHb2xspKSkAADc3N6xatQpLliyBi4sL5s2bBwBYvXo1li9fjsTERPj4+CA0NBR79uyBp6dnp65JJpPh888/x4QJEzBs2DAsX74cc+bMwc6dO7vwDnWOJO6cHNEL1NbWwtbWFjU1NbCxsenp7hAREVEX1dfXo6SkBJ6enjA3N+/08f9bDQDQvNGqJcAaYjUA0tTWZ9iZvMaRVSIiIuqVnJzC4eubBpnMTaNcJnNnUH2AcM4qERER9VpOTuFwdJyK6uocNDZWwMzMFXZ2QXpdrooMi2GViIiIejVJMoG9/YSe7gZ1EacBEBEREZHRYlglIiIiIqPFsEpERERERothlYiIiIiMFsMqERERERktg4bV7OxshIWFYcCAAZAkCbt3777nMV999RVGjRoFc3NzKBQKbN261ZBdJCIiIiIjZtCwWldXB39/f7z//vsdql9SUoIpU6YgKCgIp06dwltvvYUFCxYgPT3dkN0kIiIi6nYdHch72Bk0rE6ePBlr1qxBeHjHnhCxdetWDBw4EBs3boSPjw9mz56NN954A8nJyYbsJhEREZFeVVZWYv78+VAoFJDJZJDL5QgLC8Phw4cNcr6srCxIkoTq6mqDtN9q3759GDNmDCwsLODo6NjhjHc/jOqhAMeOHcPEiRM1ykJDQ/HRRx+hqakJpqamWsc0NDSgoaFB/bq2ttbg/SQiIiJqS2lpKcaNGwc7OzskJSXBz88PTU1NyMjIQHR0NAoLC3u6i20SQkClUqFvX+2ImJ6ejjlz5uCdd97BM888AyEEzpw5Y/A+GdUNVpWVlXBxcdEoc3Fxwe3bt3H9+nWdxyQmJsLW1la9yeXy7ugqERERPSBUKhWysrKwc+dOZGVlQaVSGfR8c+fOhSRJOH78OCIjIzFkyBD4+voiLi4Oubm5Oo/RNTKal5cHSZJQWloKALh48SLCwsJgb28PS0tL+Pr6Yv/+/SgtLUVwcDAAwN7eHpIkYdasWQBawmdSUhIUCgUsLCzg7++PtLQ0rfNmZGQgICAAMpkMOTk5Wv27ffs2YmJi8O677yIqKgpDhgyBt7c3IiMj9fOmtcOoRlaBlvkbdxJC6CxvtXTpUsTFxalf19bWMrASERERAECpVCImJgaXL19Wl7m7u2PTpk0G+Qn7xo0bOHDgANauXQtLS0ut/XZ2dl1uOzo6Go2NjcjOzoalpSXy8/NhZWUFuVyO9PR0REREoKioCDY2NrCwsAAALFu2DEqlEqmpqRg8eDCys7Mxffp0ODk5Yfz48eq2Fy9ejOTkZCgUCp19PHnyJMrLy9GnTx+MHDkSlZWVeOyxx5CcnAxfX98uX1NHGFVY7d+/PyorKzXKrl27hr59++KRRx7ReYxMJoNMJuuO7hEREdEDRKlUIjIyUj3w1aq8vByRkZFIS0vTe2AtLi6GEAJDhw7Va7sAUFZWhoiICIwYMQIAoFAo1PscHBwAAM7OzuqwWVdXhw0bNiAzMxOBgYHqY77++mts27ZNI6wmJCQgJCSkzXNfuHABALBy5Ups2LABgwYNwvr16zF+/HicO3dOfX5DMKppAIGBgTh06JBG2cGDBxEQEKBzvioRERGRLiqVCjExMVpBFfjfr7axsbF6nxJwr1+E78eCBQuwZs0ajBs3DitWrMC3337bbv38/HzU19cjJCQEVlZW6u2zzz7D+fPnNeoGBAS021ZzczMA4O2330ZERARGjRqFTz75BJIk4Ysvvri/C7sHg4bVW7duIS8vD3l5eQBalqbKy8tDWVkZgJaf8F9//XV1/aioKFy8eBFxcXEoKCjAxx9/jI8++giLFi0yZDeJiIiol8nJydH46f9uQghcunRJ5/zM+zF48GBIkoSCgoJOHdenTx91v1o1NTVp1Jk9ezYuXLiAGTNm4MyZMwgICMDmzZvbbLM1YO7bt0+dx/Ly8pCfn68xbxWAzikLd3J1dQUADBs2TF0mk8mgUCjUuc5QDBpWT5w4gZEjR2LkyJEAgLi4OIwcORLLly8HAFRUVGhcoKenJ/bv34+srCw89thjWL16Nd577z1EREQYsptERETUy1RUVOi1Xkc5ODggNDQUW7ZsQV1dndb+tpaWcnJy0upP62DfneRyOaKioqBUKhEfH4/t27cDAMzMzABAY6R42LBhkMlkKCsrg5eXl8bW2ft7Ro0aBZlMhqKiInVZU1MTSktL4eHh0am2Osugc1YnTJigc/i91aeffqpVNn78eJw8edKAvSIiIqLernUkUF/1OiMlJQVjx47F6NGjkZCQAD8/P9y+fRuHDh1CamqqzlHX1gC5cuVKrFmzBt999x3Wr1+vUSc2NhaTJ0/GkCFDcPPmTWRmZsLHxwcA4OHhAUmSsHfvXkyZMgUWFhawtrbGokWLsHDhQjQ3N+Opp55CbW0tjh49CisrK8ycObPD12RjY4OoqCisWLECcrkcHh4eePfddwEAL7/88n28W/dmVHNWiYiIiPQhKCgI7u7ubc4dlSQJcrkcQUFBej+3p6cnTp48ieDgYMTHx2P48OEICQnB4cOHkZqaqvMYU1NT7Ny5E4WFhfD398e6deuwZs0ajToqlQrR0dHw8fHBpEmT4O3tjZSUFACAm5sbVq1ahSVLlsDFxQXz5s0DAKxevRrLly9HYmIifHx8EBoaij179sDT07PT1/Xuu+/itddew4wZM/DEE0/g4sWLyMzMhL29fafb6gxJtDf0+QCqra2Fra0tampqYGNj09PdISIioi6qr69HSUkJPD09YW5u3unjW1cDADTngrYGWEOsBkCa2voMO5PXOLJKREREvVJ4eDjS0tLg5uamUe7u7s6g+gAxqnVWiYiIiPQpPDwcU6dORU5ODioqKuDq6oqgoCCYmJj0dNeogxhWiYiIqFczMTHBhAkTerob1EWcBkBERERERothlYiIiIiMFsMqERERERkthlUiIiIiMloMq0RERERktBhWiYiIiMhoMawSERER9QBJkrB79+6e7obRY1glIiIi0rPKykrMnz8fCoUCMpkMcrkcYWFhOHz4sEHOl5WVBUmSUF1dbZD2W+3btw9jxoyBhYUFHB0du+UpYHwoABEREZEelZaWYty4cbCzs0NSUhL8/PzQ1NSEjIwMREdHo7CwsKe72CYhBFQqFfr21Y6I6enpmDNnDt555x0888wzEELgzJkzBu8TR1aJiIioV1OpVMjKysLOnTuRlZUFlUpl0PPNnTsXkiTh+PHjiIyMxJAhQ+Dr64u4uDjk5ubqPEbXyGheXh4kSUJpaSkA4OLFiwgLC4O9vT0sLS3h6+uL/fv3o7S0FMHBwQAAe3t7SJKEWbNmAWgJn0lJSVAoFLCwsIC/vz/S0tK0zpuRkYGAgADIZDLk5ORo9e/27duIiYnBu+++i6ioKAwZMgTe3t6IjIzUz5vWDo6sEhERUa+lVCoRExODy5cvq8vc3d2xadMmg/yEfePGDRw4cABr166FpaWl1n47O7sutx0dHY3GxkZkZ2fD0tIS+fn5sLKyglwuR3p6OiIiIlBUVAQbGxtYWFgAAJYtWwalUonU1FQMHjwY2dnZmD59OpycnDB+/Hh124sXL0ZycjIUCoXOPp48eRLl5eXo06cPRo4cicrKSjz22GNITk6Gr69vl6+pIxhWiYiIqFdSKpWIjIyEEEKjvLy8HJGRkUhLS9N7YC0uLoYQAkOHDtVruwBQVlaGiIgIjBgxAgCgUCjU+xwcHAAAzs7O6rBZV1eHDRs2IDMzE4GBgepjvv76a2zbtk0jrCYkJCAkJKTNc1+4cAEAsHLlSmzYsAGDBg3C+vXrMX78eJw7d059fkPgNAAiIiLqdVQqFWJiYrSCKgB1WWxsrN6nBLS2LUmSXtsFgAULFmDNmjUYN24cVqxYgW+//bbd+vn5+aivr0dISAisrKzU22effYbz589r1A0ICGi3rebmZgDA22+/jYiICIwaNQqffPIJJEnCF198cX8Xdg8Mq0RERNTr5OTkaPz0fzchBC5duqRzfub9GDx4MCRJQkFBQaeO69Onj7pfrZqamjTqzJ49GxcuXMCMGTNw5swZBAQEYPPmzW222Row9+3bh7y8PPWWn5+vMW8VgM4pC3dydXUFAAwbNkxdJpPJoFAoUFZW1oEr7DqGVSIiIup1Kioq9FqvoxwcHBAaGootW7agrq5Oa39bS0s5OTlp9ScvL0+rnlwuR1RUFJRKJeLj47F9+3YAgJmZGQBojBQPGzYMMpkMZWVl8PLy0tjkcnmnrmvUqFGQyWQoKipSlzU1NaG0tBQeHh6daquzGFaJiIio12kdCdRXvc5ISUmBSqXC6NGjkZ6eju+++w4FBQV477331HNH79YaIFeuXIlz585h3759WL9+vUad2NhYZGRkoKSkBCdPnkRmZiZ8fHwAAB4eHpAkCXv37kVVVRVu3boFa2trLFq0CAsXLsSOHTtw/vx5nDp1Clu2bMGOHTs6dU02NjaIiorCihUrcPDgQRQVFeHNN98EALz88stdeJc6jmGViIiIep2goCC4u7u3OXdUkiTI5XIEBQXp/dyenp44efIkgoODER8fj+HDhyMkJASHDx9GamqqzmNMTU2xc+dOFBYWwt/fH+vWrcOaNWs06qhUKkRHR8PHxweTJk2Ct7c3UlJSAABubm5YtWoVlixZAhcXF8ybNw8AsHr1aixfvhyJiYnw8fFBaGgo9uzZA09Pz05f17vvvovXXnsNM2bMwBNPPIGLFy8iMzMT9vb2nW6rMySha+bxA6y2tha2traoqamBjY1NT3eHiIiIuqi+vh4lJSXw9PSEubl5p49vXQ0A0JwL2hpgDbEaAGlq6zPsTF7jyCoRERH1SuHh4UhLS4Obm5tGubu7O4PqA4TrrBIREVGvFR4ejqlTpyInJwcVFRVwdXVFUFAQTExMerpr1EEMq0RERNSrmZiYYMKECT3dDeoiTgMgIiIiIqPFsEpERERERothlYiIiIxaL1u46KGij8+OYZWIiIiMkqmpKQDgxx9/7OGeUFe1fnatn2VX8AYrIiIiMkomJiaws7PDtWvXAAD9+vVrc5F/Mi5CCPz444+4du0a7Ozs7mv1BYZVIiIiMlr9+/cHAHVgpQeLnZ2d+jPsKoZVIiIiMlqSJMHV1RXOzs5oamrq6e5QJ5iamuplPVuG1fukUqm40DAREZGBmZiY8O/XhxTD6n1QKpWIiYnB5cuX1WXu7u7YtGkTH+FGREREpAdcDaCLlEolIiMjNYIqAJSXlyMyMhJKpbKHekZERETUezCsdoFKpUJMTIzOtcNay2JjY6FSqbq7a0RERES9CsNqF+Tk5GiNqN5JCIFLly4hJyenG3tFRERE1PswrHZBRUWFXusRERERkW4Mq13g6uqq13pEREREpBvDahcEBQXB3d29zadoSJIEuVyOoKCgbu4ZERERUe/CsNoFJiYm2LRpEwBoBdbW1xs3buR6cERERET3iWG1i8LDw5GWlgY3NzeNcnd3d6SlpXGdVSIiIiI9kISu9ZceYLW1tbC1tUVNTQ1sbGwMfj4+wYqIiIioczqT1/gEq/tkYmKCCRMm9HQ3iIiIiHolTgMgIiIiIqPFsEpERERERothlYiIiIiMFsMqERERERkthlUiIiIiMloMq0RERERktBhWiYiIiMhoMawSERERkdFiWCUiIiIio2XwsJqSkgJPT0+Ym5tj1KhRyMnJabNuVlYWJEnS2goLCw3dTSIiIiIyQgYNq59//jliY2Px9ttv49SpUwgKCsLkyZNRVlbW7nFFRUWoqKhQb4MHDzZkN4mIiIjISBk0rG7YsAG/+tWvMHv2bPj4+GDjxo2Qy+VITU1t9zhnZ2f0799fvZmYmBiym0RERERkpAwWVhsbG/Hvf/8bEydO1CifOHEijh492u6xI0eOhKurK5599lkcOXKk3boNDQ2ora3V2IiIiIiodzBYWL1+/TpUKhVcXFw0yl1cXFBZWanzGFdXV3zwwQdIT0+HUqmEt7c3nn32WWRnZ7d5nsTERNja2qo3uVyu1+sgIiIiop7T19AnkCRJ47UQQquslbe3N7y9vdWvAwMDcenSJSQnJ+Ppp5/WeczSpUsRFxenfl1bW8vASkRERNRLGGxk1dHRESYmJlqjqNeuXdMabW3Pk08+ie+++67N/TKZDDY2NhobEREREfUOBgurZmZmGDVqFA4dOqRRfujQIYwdO7bD7Zw6dQqurq767h4RERERPQAMOg0gLi4OM2bMQEBAAAIDA/HBBx+grKwMUVFRAFp+wi8vL8dnn30GANi4cSMGDRoEX19fNDY24s9//jPS09ORnp5uyG4SERERkZEyaFh99dVX8f333yMhIQEVFRUYPnw49u/fDw8PDwBARUWFxpqrjY2NWLRoEcrLy2FhYQFfX1/s27cPU6ZMMWQ3iYiIiMhISUII0dOd0Kfa2lrY2tqipqaG81eJiIiIjFBn8prBVwMgIqIHk6pZhZyyHFT8UAFXa1cEDQyCSR8+pIWIuhfDKhERaVEWKBFzIAaXay+ry9xt3LFp0iaE+4T3YM+I6GFj0MetEhHRg0dZoETk3yM1gioAlNeWI/LvkVAWKHuoZ0T0MGJYJSIiNVWzCjEHYiCgfTtDa1nsgViomlXd3TUiekgxrBIRkVpOWY7WiOqdBAQu1V5CTllON/aKiB5mDKtERKRW8UOFXusREd0vhlUiIlJzte7YEwM7Wo+I6H4xrBIRkVrQwCC427hDgqRzvwQJchs5ggYGdXPPiOhhxbBKRERqJn1MsGnSJgDQCqytrzdO2sj1Vomo2zCsEhGRhnCfcKS9kgY3GzeNcncbd6S9ksZ1VomoW/Fxq0REpBOfYNUGlQrIyQEqKgBXVyAoCDDh+0LUGXzcKhER3TeTPiaYMGhCT3fDuCiVQEwMcPmO5b3c3YFNm4BwjjgTGQKnARAREXWEUglERmoGVQAoL28pV/LJXkSGwLBKRER0LypVy4iqrplzrWWxsS31iEivGFaJiIjuJSdHe0T1TkIAly611CMivWJYJSIiupeKDj6xq6P1iKjDGFaJiIjuxbWDT+zqaD0i6jCGVSIionsJCmq561/S/WQvSBIgl7fUIyK9YlglIiK6FxOTluWpAO3A2vp640aut0pkAAyrREREHREeDqSlAW6aT/aCu3tLOddZJTIIPhSAiIioo8LDgalT+QQrom7EsEpERNQZJibAhAk93QuihwanARARERGR0WJYJSIiIiKjxbBKREREREaLYZWIiIiIjBbDKhEREREZLYZVIiIiIjJaDKtEREREZLQYVomIiIjIaDGsEhEREZHRYlglIiIiIqPFsEpERERERothlYiIiIiMFsMqERERERkthlUiIiIiMloMq0RERERktBhWiYiIiMhoMawSERERkdFiWCUiIiIio8WwSkRERERGi2GViIiIiIwWwyoRERERGS2GVSIiIiIyWgyrRERERGS0GFaJiIiIyGgxrBIRERGR0WJYJSIiIiKjxbBKREREREaLYZWIiIiIjBbDKhEREREZLYZVIiIiIjJaDKtEREREZLQYVomIiIjIaBk8rKakpMDT0xPm5uYYNWoUcnJy2q3/1VdfYdSoUTA3N4dCocDWrVsN3UUiIiIiMlIGDauff/45YmNj8fbbb+PUqVMICgrC5MmTUVZWprN+SUkJpkyZgqCgIJw6dQpvvfUWFixYgPT0dEN2k4iIiIiMlCSEEIZqfMyYMXj88ceRmpqqLvPx8cFLL72ExMRErfq/+93v8M9//hMFBQXqsqioKJw+fRrHjh3r0Dlra2tha2uLmpoa2NjY3P9FEBEREZFedSavGWxktbGxEf/+978xceJEjfKJEyfi6NGjOo85duyYVv3Q0FCcOHECTU1NhuoqERERERmpvoZq+Pr161CpVHBxcdEod3FxQWVlpc5jKisrdda/ffs2rl+/DldXV61jGhoa0NDQoH5dW1urh94TERERkTEw+A1WkiRpvBZCaJXdq76u8laJiYmwtbVVb3K5/D57TERERETGwmBh1dHRESYmJlqjqNeuXdMaPW3Vv39/nfX79u2LRx55ROcxS5cuRU1NjXq7dOmSfi6AiIiIiHqcwcKqmZkZRo0ahUOHDmmUHzp0CGPHjtV5TGBgoFb9gwcPIiAgAKampjqPkclksLGx0diIiIiIqHcw6DSAuLg4fPjhh/j4449RUFCAhQsXoqysDFFRUQBaRkVff/11df2oqChcvHgRcXFxKCgowMcff4yPPvoIixYtMmQ3iYiIiMhIGewGKwB49dVX8f333yMhIQEVFRUYPnw49u/fDw8PDwBARUWFxpqrnp6e2L9/PxYuXIgtW7ZgwIABeO+99xAREWHIbhIRERGRkTLoOqs9geusEhERERk3o1hnlYiIiIjofjGsEhEREZHRYlglIiIiIqPFsEpERERERothlYiIiIiMFsMqERERERkthlUiIiIiMloMq0RERERktAz6BCsiIiLqXYRKoDqnGo0VjTBzNYNdkB0kE6mnu0W9GMMqERERdUiVsgrFMcVouNygLpO5y+C1yQtO4U492DPqzTgNgIiIiO6pSlmFs5FnNYIqADSUN+Bs5FlUKat6qGfU2zGsEhERUbuESqA4phgQuna2/KM4thhCpasC0f1hWCUiIqJ2VedUa42oahBAw6UGVOdUd1uf6OHBsEpERETtaqxo1Gs9os5gWCUiIqJ2mbma6bUeUWcwrBIREVG77ILsIHOXAW2tUCUBMrkMdkF23dktekgwrBIREVG7JBMJXpu8/vvi7p0t//Da6PVQr7cqVAI3s27i6s6ruJl1kzeb6RHXWSUiIqJ7cgp3gm+ar+51Vjc+3Ouscv1Zw5KEEL0q+tfW1sLW1hY1NTWwsbHp6e4QERH1KnyClabW9We1lvX671vim+bLwKpDZ/IaR1aJiIiowyQTCfYT7Hu6G0bhnuvPSi3rzzpOdXyoA/394pxVIiIioi7g+rPdg2GViIiIqAu4/mz3YFglIiIi6gKuP9s9GFaJiIiIuoDrz3YPhlUiIiKiLuD6s92DYZWIiIioi1rXn5W5yTTKZe4yLlulJ1y6ioiIiOg+OIU7wXGqI9efNRCGVSIiIqL7xPVnDYfTAIiIiIjIaDGsEhEREZHRYlglIiIiIqPFsEpERERERothlYiIiIiMFsMqERERERkthlUiIiIiMloMq0RERERktBhWiYiIiMhoMawSERERkdFiWCUiIiIio8WwSkRERERGi2GViIiIiIwWwyoRERERGS2GVSIiIiIyWgyrRERERGS0GFaJiIiIyGgxrBIRERGR0WJYJSIiIiKjxbBKREREREaLYZWIiIiIjBbDKhEREREZLYZVIiIiIjJaDKtEREREZLQYVomIiIjIaDGsEhEREZHRYlglIiIiIqNl0LB68+ZNzJgxA7a2trC1tcWMGTNQXV3d7jGzZs2CJEka25NPPmnIbhIRERGRkepryManTZuGy5cv48CBAwCAX//615gxYwb27NnT7nGTJk3CJ598on5tZmZmyG4SERERkZEyWFgtKCjAgQMHkJubizFjxgAAtm/fjsDAQBQVFcHb27vNY2UyGfr372+orhERERHRA8Jg0wCOHTsGW1tbdVAFgCeffBK2trY4evRou8dmZWXB2dkZQ4YMwZw5c3Dt2rU26zY0NKC2tlZjIyIiIqLewWBhtbKyEs7Ozlrlzs7OqKysbPO4yZMn4y9/+QsyMzOxfv16fPPNN3jmmWfQ0NCgs35iYqJ6TqytrS3kcrneroGIiIiIelanw+rKlSu1boC6eztx4gQAQJIkreOFEDrLW7366qt4/vnnMXz4cISFheHLL7/EuXPnsG/fPp31ly5dipqaGvV26dKlzl4SERERERmpTs9ZnTdvHl577bV26wwaNAjffvstrl69qrWvqqoKLi4uHT6fq6srPDw88N133+ncL5PJIJPJOtweERERET04Oh1WHR0d4ejoeM96gYGBqKmpwfHjxzF69GgAwL/+9S/U1NRg7NixHT7f999/j0uXLsHV1bWzXSUiIiKiB5zB5qz6+Phg0qRJmDNnDnJzc5Gbm4s5c+bghRde0FgJYOjQodi1axcA4NatW1i0aBGOHTuG0tJSZGVlISwsDI6OjvjZz35mqK4SERERkZEy6EMB/vKXv2DEiBGYOHEiJk6cCD8/P/zpT3/SqFNUVISamhoAgImJCc6cOYOpU6diyJAhmDlzJoYMGYJjx47B2trakF0lIiIiIiMkCSFET3dCn2pra2Fra4uamhrY2Nj0dHeIiIiI6C6dyWsGHVklIiIiIrofDKtEREREZLQYVomIiIjIaDGsEhEREZHRYlglIiIiIqPFsEpERERERothlYiIiIiMFsMqERERERkthlUiIiIiMloMq0RERERktBhWiYiIiMhoMawSERERkdFiWCUiIiIio8WwSkRERERGi2GViIiIiIwWwyoRERERGS2GVSIiIiIyWgyrRERERGS0GFaJiIiIyGgxrBIRERGR0erb0x0gIiKinqUSAjnV1ahobISrmRmC7OxgIkk93S0iAAyrREREDzVlVRViiotxuaFBXeYuk2GTlxfCnZx6sGdELTgNgIiI6CGlrKpC5NmzGkEVAMobGhB59iyUVVU91DOi/2FYJSIiegiphEBMcTGEjn2tZbHFxVAJXTWIug/DKhER0UMop7paa0T1TgLApYYG5FRXd1ufiHRhWCUiInoIVTQ26rUekaEwrBIRET2EXM3M9FqPyFAYVomIiB5CQXZ2cJfJ0NYCVRIAuUyGIDu7buwVkTaG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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 7 ---\n", - "Aktuelle Cluster: [[1], [3], [5], [9], [2, 6], [4, 7], [0, 8]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 2. 6. 0.54664466 2. ]\n", - " [ 3. 5. 0.5524637 2. ]\n", - " [ 7. 9. 0.56261506 2. ]\n", - " [ 0. 4. 1.14694608 2. ]\n", - " [ 1. 10. 1.18606925 3. ]\n", - " [12. 14. 1.42401155 5. ]\n", - " [11. 13. 2.15864694 4. ]\n", - " [ 8. 16. 3.73691206 5. ]\n", - " [15. 17. 4.64006144 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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jBbDKhEREREZLYZVIiIiIjJaDKtEREREZLQYVomIiIjIaDGsEhEREZHRYlglIiIiIqPFsEpERERERothlYiIiIiMFsMqERERERkthlUiIiIiMloMq0RERERktBhWiYiIiMhoMawSERERkdFiWCUiIiIio8WwSkRERERGi2GViIiIiIyWwcNqSkoKPD09YW5ujtGjRyMnJ6fd/l988QVGjx4Nc3NzKBQKbN++3dAlEhEREZGRMmhY/eSTTxAXF4c333wTp0+fRlBQEKZMmYKysjKd/UtKSjB16lQEBQXh9OnTeOONN7Bw4UKkp6cbskwiIiIiMlKSEEIYavCxY8fikUceQWpqqrrNx8cHzz33HBITE7X6/+53v8M//vEPFBQUqNuio6Nx5swZnDhxokPHrK2tha2tLWpqamBjY3PvJ0FEREREetWZvGawK6uNjY3497//jUmTJmm0T5o0CcePH9e5z4kTJ7T6h4aG4uuvv0ZTU5OhSiUiIiIiI9XXUAN///33UKlUcHFx0Wh3cXFBZWWlzn0qKyt19r916xa+//57uLq6au3T0NCAhoYG9fPa2lo9VE9ERERExsDgP7CSJEnjuRBCq+1u/XW1t0pMTIStra36IZfL77FiIiIiIjIWBgurjo6OMDEx0bqKeu3aNa2rp60GDBigs3/fvn3Rv39/nfssX74cNTU16sfly5f1cwJERERE1OMMFlbNzMwwevRoHDlyRKP9yJEjGDdunM59AgMDtfofPnwYAQEBMDU11bmPTCaDjY2NxoOIiIiIegeDTgNYvHgx3n//fXz44YcoKCjAokWLUFZWhujoaAAtV0Vffvlldf/o6GhcunQJixcvRkFBAT788EN88MEHWLJkiSHLJCIiIiIjZbAfWAHACy+8gB9++AEJCQmoqKjAiBEjcPDgQXh4eAAAKioqNNZc9fT0xMGDB7Fo0SJs27YNAwcOxDvvvIOIiAhDlklERERERsqg66z2BK6zSkRERGTcjGKdVSIiIiKie8WwSkRERERGi2GViIiIiIwWwyoRERERGS2GVSIiIiIyWgyrRERERGS0GFaJiIiIyGgxrBIRERGR0TLoHayIiIiodxEqgeqcajRWNMLM1Qx2QXaQTKSeLot6MYZVIiIi6pAqZRWKY4vRcKVB3SZzl8Frixecwp16sDLqzTgNgIiIiO6qSlmFc5Hn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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 8 ---\n", - "Aktuelle Cluster: [[1], [3], [5], [9], [2, 6], [4, 7], [0, 8]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 2. 6. 0.54664466 2. ]\n", - " [ 3. 5. 0.5524637 2. ]\n", - " [ 7. 9. 0.56261506 2. ]\n", - " [ 0. 4. 1.14694608 2. ]\n", - " [ 1. 10. 1.18606925 3. ]\n", - " [12. 14. 1.42401155 5. ]\n", - " [11. 13. 2.15864694 4. ]\n", - " [ 8. 16. 3.73691206 5. ]\n", - " [15. 17. 4.64006144 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 9 ---\n", - "Aktuelle Cluster: [[1], [3], [5], [9], [2, 6], [4, 7], [0, 8]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 2. 6. 0.54664466 2. ]\n", - " [ 3. 5. 0.5524637 2. ]\n", - " [ 7. 9. 0.56261506 2. ]\n", - " [ 0. 4. 1.14694608 2. ]\n", - " [ 1. 10. 1.18606925 3. ]\n", - " [12. 14. 1.42401155 5. ]\n", - " [11. 13. 2.15864694 4. ]\n", - " [ 8. 16. 3.73691206 5. ]\n", - " [15. 17. 4.64006144 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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xK9+9StRXFys0Zdly5aJvn37ih49emjd4b1v3z4RHBwsbGxshEwmEx4eHiIyMlL861//UteZMWOGsLS01Hmdubm5IiQkRFhbWwt7e3vx0ksviZKSEq33tHk1gIqKCo3jdV3//v37xdChQ4W5ublwc3MTv/3tb8Vnn32m1fd7vyt3+/jjjwUA8be//U1r365du0RwcLBwcXERZmZm6u/rN998o1GvoqJCLFiwQHh6egpTU1Ph4OAghg8fLt566y1x+/ZtneftiD179oipU6cKb29vje/K9OnTda6y8cknn4gnn3xSmJubCysrKzFs2DCNP0Njx44Vfn5+Wsfd+3619Ofy7n13v991dXVi1qxZwsnJSUiSpPG55eTkiNGjR4tevXoJABrfU13eeOMN0a9fP2FmZiYcHR1FRESE1vtP1BkkIdqwWCQREZGeRUREIDs7G8XFxQ/908KIyHA4DYCIiDpNXV0dTp8+jVOnTmHv3r3YuHEjgyoRtYojq0RE1GmKi4vh6ekJGxsbTJ06Fe+9916LT0YjIgIYVomIiIjIiPGhAERERERktBhWiYiIiMhoMawSERERkdHqdqsBNDY24rvvvoO1tXWXPJ6OiIiIiFonhMAPP/yAvn37okeP1sdOu11Y/e677/T6PGYiIiIiMowrV67c90lz3S6sWltbA2i6eBsbmy7uDRERERHdq7q6GnK5XJ3bWtPtwmrzT/82NjYMq0RERERGrC1TNnmDFREREREZLYZVIiIiIjJaDKtEREREZLS63ZxVIiIi6n5UKhUaGhq6uhvUDqampjAxMXngdhhWiYiIyGgJIVBeXo7Kysqu7gp1gJ2dHfr06fNAa98zrBIREZHRag6qzs7O6NWrFx/485AQQuDHH3/E9evXAQCurq4dbothlYiIiIySSqVSB9XevXt3dXeonSwsLAAA169fh7Ozc4enBPAGKyIiIjJKzXNUe/Xq1cU9oY5q/uweZL4xwyoREREZNf70//DSx2fHsEpERERERothlYiIiKgLSJKEffv2dXU3jB7DKhEREZGelZeXY/78+VAoFJDJZJDL5QgLC8OxY8cMcr6MjAxIkmTQJb5u3bqF6dOnw9bWFra2tpg+fXqnLCnG1QCIiIioW1OpgKwsoKwMcHUFgoIAPaxV36Li4mKMHj0adnZ2SEhIgL+/PxoaGpCWloaoqCjk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6kQMq0RERO1hYgKMG9fVvSB6ZHAaABEREREZLYZVIiIiIjJaDKtEREREZLQYVomIiIjIaDGsEhEREZHRYlglIiIiIqPFsEpERERERothlYiIiIiMFsMqERERERkthlUiIiIiMloMq0RERERktBhWiYiIiMhoMawSERERkdFiWCUiIiIio8WwSkRERERGi2GViIiIiIwWwyoRERERGS2GVSIiIiIyWgyrRERERGS0GFaJiIiIyGgxrBIRERGR0WJYJSIiIiKjxbBKREREREaLYZWIiIiIjBbDKhEREREZLYZVIiIiIjJaDKtEREREZLQYVomIiIjIaDGsEhEREZHRYlglIiIiIqPFsEpERERERothlYiIiIiMlsHDalJSEjw9PWFubo7hw4cjKyur1fqff/45hg8fDnNzcygUCmzbts3QXSQiIiIiI2XQsLpnzx7ExMTgrbfewpkzZxAUFISJEyeipKREZ/2ioiJMmjQJQUFBOHPmDN58800sWLAAqamphuwmERERERkpSQghDNX4yJEj8cQTTyA5OVld5uvrixdffBHx8fFa9X/3u9/hn//8J/Ly8tRlc+bMwdmzZ3Hy5Mk2nbO6uhq2traoqqqCjY3Ng18EEREREelVe/KawUZW6+vr8e9//xvjx4/XKB8/fjxOnDih85iTJ09q1Q8NDcXXX3+NhoYGQ3WViIiIiIxUT0M1fOPGDahUKri4uGiUu7i4oLy8XOcx5eXlOuvfuXMHN27cgKurq9YxdXV1qKurU7+urq7WQ++JiIiIyBgY/AYrSZI0XgshtMruV19XebP4+HjY2tqqN7lc/oA9JiIiIiJjYbCw6ujoCBMTE61R1OvXr2uNnjbr06ePzvo9e/ZE7969dR6zbNkyVFVVqbcrV67o5wKIiIiIqMsZLKyamZlh+PDhOHr0qEb50aNHMWrUKJ3HBAYGatU/cuQIAgICYGpqqvMYmUwGGxsbjY2IiIiIugeDTgNYtGgRPvjgA3z00UfIy8vDwoULUVJSgjlz5gBoGhV97bXX1PXnzJmDy5cvY9GiRcjLy8NHH32EDz/8EIsXLzZkN4mIiIjISBnsBisAePnll/H9998jLi4OZWVlGDx4MA4dOgQPDw8AQFlZmcaaq56enjh06BAWLlyIrVu3om/fvnj33XcRERFhyG4SERERkZEy6DqrXYHrrBIREREZ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K1euPNC5iYiIiB4F4eFASgrg5qZZ7u7eVG4s66y2+6EA8+bNwyuvvNJqnf79+3eoM3369AHQNMLqetckievXr2uNtjaTyWSQyWQdOh8RERHRoyw8HJgypZs9wcrR0RGOjo6G6As8PT3Rp08fHD16FMOGDQPQtKLA559/jvXr1xvknERERESPMhMTYNy4ru5Fyww6Z7WkpAQ5OTkoKSmBSqVCTk4OcnJycPv2bXWdgQMHYu/evQCafv6PiYnB22+/jb179+I///kPZs6ciV69emHq1KmG7CoRERERGaF2j6y2x4oVK7Br1y716+bR0uPHj2PcfyN8QUEBqqqq1HWWLFmCn376CXPnzsWtW7cwcuRIHDlyBNbW1obsKhEREREZIUkIXQ/aenhVV1fD1tYWVVVVsLGx6eruEBEREdE92pPXjGrpKiIiIiKiuzGsEhEREZHRYlglIiIiIqPFsEpERERERothlYiIiIiMFsMqERERERkthlUiIiIiMloMq0RERERktBhWiYiIiMhoMawSERERkdHq2dUd0Lfmp8dWV1d3cU+IiIiISJfmnNac21rT7cLqDz/8AACQy+Vd3BMiIiIias0PP/wAW1vbVutIoi2R9iHS2NiI7777DtbW1pAkqau780irrq6GXC7HlStXYGNj09XdoU7Gz//Rxc/+0cbP/9HVns9eCIEffvgBffv2RY8erc9K7XYjqz169IC7u3tXd4PuYmNjw/9gPcL4+T+6+Nk/2vj5P7ra+tnfb0S1GW+wIiIiIiKjxbBKREREREaLYZUMRiaTYeXKlZDJZF3dFeoC/PwfXfzsH238/B9dhvrsu90NVkRERETUfXBklYiIiIiMFsMqERERERkthlUiIiIiMloMq0RERERktBhWyeCKi4vxq1/9Cp6enrCwsMBjjz2GlStXor6+vqu7Rp1k3bp1GDVqFHr16gU7O7uu7g4ZWFJSEjw9PWFubo7hw4cjKyurq7tEnSAzMxNhYWHo27cvJEnCvn37urpL1Eni4+Px5JNPwtraGs7OznjxxRdRUFCgt/YZVsng8vPz0djYiO3bt+P8+fP44x//iG3btuHNN9/s6q5RJ6mvr8dLL72EN954o6u7Qga2Z88exMTE4K233sKZM2cQFBSEiRMnoqSkpKu7RgZWU1ODoUOH4r333uvqrlAn+/zzzxEVFYXs7GwcPXoUd+7cwfjx41FTU6OX9rl0FXWJd955B8nJybh06VJXd4U60ccff4yYmBhUVlZ2dVfIQEaOHIknnngCycnJ6jJfX1+8+OKLiI+P78KeUWeSJAl79+7Fiy++2NVdoS5QUVEBZ2dnfP7553j66acfuD2OrFKXqKqqgoODQ1d3g4j0qL6+Hv/+978xfvx4jfLx48fjxIkTXdQrIupsVVVVAKC3v+cZVqnTXbx4EVu2bMGcOXO6uitEpEc3btyASqWCi4uLRrmLiwvKy8u7qFdE1JmEEFi0aBHGjBmDwYMH66VNhlXqsFWrVkGSpFa3r7/+WuOY7777DhMmTMBLL72EWbNmdVHPSR868vnTo0GSJI3XQgitMiLqnubNm4dvvvkGu3fv1lubPfXWEj1y5s2bh1deeaXVOv3791f/+3fffYfg4GAEBgbi/fffN3DvyNDa+/lT9+fo6AgTExOtUdTr169rjbYSUfczf/58/POf/0RmZibc3d311i7DKnWYo6MjHB0d21S3tLQUwcHBGD58OHbu3IkePTio/7Brz+dPjwYzMzMMHz4cR48exc9+9jN1+dGjRzFlypQu7BkRGZIQAvPnz8fevXuRkZEBT09PvbbPsEoG991332HcuHHo168fEhMTUVFRod7Xp0+fLuwZdZaSkhLcvHkTJSUlUKlUyMnJAQB4eXnBysqqaztHerVo0SJMnz4dAQEB6l9RSkpKOEf9EXD79m0UFhaqXxcVFSEnJwcODg7o169fF/aMDC0qKgp//etf8Y9//APW1tbqX1dsbW1hYWHxwO1z6SoyuI8//hi//OUvde7j1+/RMHPmTOzatUur/Pjx4xg3blznd4gMKikpCQkJCSgrK8PgwYPxxz/+US/L15Bxy8jIQHBwsFb5jBkz8PHHH3d+h6jTtDQnfefOnZg5c+aDt8+wSkRERETGihMHiYiIiMhoMawSERERkdFiWCUiIiIio8WwSkRERERGi2GViIiIiIwWwyoRERERGS2GVSIiIiIyWgyrRERERGS0GFaJiIiIyGgxrBIRERGR0WJYJSIiIiKjxbBKREREREbr/wEfjHz9Yv4qXQAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 10 ---\n", - "Finale Cluster: [[1], [3], [5], [9], [2, 6], [4, 7], [0, 8]]\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAy0AAAJcCAYAAAD0GUvWAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA8kElEQVR4nO3de7zVc7748feufe22U0l2JbkVkzByyaGLSyk1cRh+miFiGLcR41ZCNcjD7cFcXGbIdSYGwxyOGEbhUKMIuc4wSkJI99Jtf39/dNrHau/SjqxP9Xw+HutR+7u/67vea+21a73297u+uyDLsiwAAAASVSffAwAAAKyNaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmiBPLrzzjujoKAgJk2aVOPn+/TpE9tuu23Osm233TZOOOGEDT/cBjBu3LgoKCiIBx988BvXPeGEE6rd9+/C1KlTo6CgIK699trvfNs1mTdvXlxxxRXRqVOnaNSoUZSUlMS2224bAwcOjFdeeaVqvVXPhalTp26QOV588cUYNmxYzJkzZ4NsP5821HPl+7bqOVBQUBDjxo2r9vksy2KHHXaIgoKC6Nat23rdxk033RR33nlnteW1+d78tr6Pr1efPn2iYcOGsXz58pzlkydPjoKCgth6662rXef555+PgoKC+PWvf71BZ9tUnq/wfRMtsJF5+OGH45JLLsn3GBvcJZdcEg8//HC+x/hW3n///dhjjz3iqquuiu7du8fo0aPjb3/7WwwfPjxmzpwZe+65Z8ydO/d7meXFF1+M4cOHb5LRsqlp2LBh3H777dWWP/vss/H+++9Hw4YN13vba4qWTU337t1jwYIF1X4gNG7cuKhfv358+umn8c4771T73KrrAukpzPcAQO3sscce39m2siyLr776KsrKyr7VdhYvXvytt7G67bff/jvd3vdtxYoVccQRR8QXX3wR48ePjw4dOlR9rmvXrjFgwIAYM2ZMFBUV5XHKb2/RokVRr169fI+xSTnmmGPij3/8Y/zud7+LRo0aVS2//fbbo3PnzjFv3rw8TrdxWBUe48aNi3333bdq+bhx46Jfv34xduzYGDt2bLRv3z7nc82aNcv5Xl0fy5Yti4KCgigs9BILvkv2tMBGpqbDw+bNmxfnnXdetG3bNoqLi6Nly5YxaNCgWLhwYc56BQUFceaZZ8Ytt9wSO++8c5SUlMRdd90VERHDhw+PffbZJ5o0aRKNGjWKH/7wh3H77bdHlmXVbr9Pnz7xl7/8JfbYY48oLS2N4cOHR0TEjBkz4pRTTonWrVtHcXFxVFRUxFFHHRUzZ87M2cayZcvi4osvjoqKimjUqFEcfPDB8e677+asU9MhFA888EDss88+UV5eHvXq1YvtttsuBg4cmLPOnDlz4pe//GVst912UVJSEs2bN4/evXtX+6lqRMT1118fbdu2jQYNGkTnzp1jwoQJ1daZNGlS/OhHP4omTZpEaWlp7LHHHvHnP/+52nqre+SRR2LKlCkxePDgNb4I6tWr11pf8K/pUMBu3brlHB5UWVkZl19+ebRr1y7KysqicePG0bFjx7jxxhsjImLYsGFx/vnnR0RE27ZtazwE6f7774/OnTtH/fr1o0GDBtGzZ8+YPHlyzu2ecMIJ0aBBg5gyZUr06NEjGjZsGAcddFBERDz11FPRr1+/aNWqVZSWlsYOO+wQp556anzxxRc52xg2bFgUFBTEm2++Gccee2yUl5fHVlttFQMHDqy21+l3v/tddOnSJZo3bx7169ePXXfdNa6++upYtmzZGh+ziIiDDjoo2rdvX+25u+rwqsMOO6xq2c033xy77bZbNGjQIBo2bBjt27ePIUOG5Fzv008/jVNPPTVatWoVxcXF0bZt2xg+fHi1Q4++K8cee2xERIwePbpq2dy5c+Ohhx6q9nxfZenSpXH55ZdH+/bto6SkJLbccss48cQT4/PPP69aZ9ttt40333wznn322arnwOrfY+vyvRkRMWrUqNhtt92itLQ0mjRpEkcccUS8/fbb1da78847o127dlFSUhI777xz3H333es9f23svvvuscUWW+Q8xysrK+P555+Pbt26RdeuXWPs2LE5tz9+/Pjo1q1bFBQUxHvvvRcnnnhi7LjjjlGvXr1o2bJl9O3bN6ZMmZJzO6sOq7vnnnvil7/8ZbRs2TJKSkrivffeq9X9B76ZHwNAAlasWFHjC6DVX3TVZNGiRdG1a9f46KOPYsiQIdGxY8d4880349JLL40pU6bE008/HQUFBVXrP/LII/H888/HpZdeGi1atIjmzZtHxMr3epx66qmxzTbbRETEhAkT4qyzzooZM2bEpZdemnObr7zySrz99tsxdOjQaNu2bdSvXz9mzJgRe+21VyxbtqxqjlmzZsWTTz4Zs2fPjq222qrq+kOGDIn/+I//iNtuuy3mzZsXF154YfTt2zfefvvtqFu3bo33c/z48XHMMcfEMcccE8OGDYvS0tKYNm1aPPPMM1XrzJ8/P/bff/+YOnVqXHjhhbHPPvvEggUL4rnnnotPPvkk56eqv/vd76J9+/Zxww03RMTKw9F69+4dH3zwQZSXl0dExNixY+PQQw+NffbZJ2655ZYoLy+P++67L4455phYtGjRWt9b9Le//S0iIg4//PBv+Ap+e1dffXUMGzYshg4dGl26dIlly5bFO++8U3Uo2Mknnxxffvll/OY3v4m//OUvVcfz77LLLhERceWVV8bQoUPjxBNPjKFDh8bSpUvjmmuuiQMOOCBeeumlqvUiVr64+9GPfhSnnnpqXHTRRVXP2/fffz86d+4cJ598cpSXl8fUqVPj+uuvj/333z+mTJlSbY/SkUceGcccc0ycdNJJVXEXsfLF8Crvv/9+9O/fvyrGX3vttbjiiivinXfeyVlvdWeffXb069cv/v73v8fBBx9ctXzMmDHx/vvvV71n4b777ovTTz89zjrrrLj22mujTp068d5778Vbb71VdZ1PP/009t5776hTp05ceumlsf3228f48ePj8ssvj6lTp8Ydd9xR66/XN2nUqFEcddRRMWrUqDj11FMjYmXA1KlTJ4455piq5+wqlZWV0a9fv3j++efjggsuiP322y+mTZsWl112WXTr1i0mTZoUZWVl8fDDD8dRRx0V5eXlcdNNN0VERElJSc621uV7c+TIkTFkyJA49thjY+TIkTFr1qwYNmxYdO7cOSZOnBg77rhjRKx8wX7iiSdGv3794rrrrou5c+fGsGHDYsmSJVGnTp1az//1bd5xxx1r/f6rU6dOdOnSJZ5++ulYvnx5FBYWxquvvhqzZ8+Orl27xooVK+Kyyy6rWn/ChAmxePHiqj00H3/8cTRt2jSuuuqq2HLLLePLL7+Mu+66K/bZZ5+YPHlytGvXLuf2Bg8eHJ07d45bbrkl6tSpE82bN1/n+w+sowzImzvuuCOLiLVe2rRpk3OdNm3aZAMGDKj6eOTIkVmdOnWyiRMn5qz34IMPZhGRPf7441XLIiIrLy/Pvvzyy7XOtWLFimzZsmXZiBEjsqZNm2aVlZU5t1+3bt3s3XffzbnOwIEDs6Kiouytt95a43bHjh2bRUTWu3fvnOV//vOfs4jIxo8fX7VswIABOff92muvzSIimzNnzhq3P2LEiCwisqeeemqN63zwwQdZRGS77rprtnz58qrlL730UhYR2ejRo6uWtW/fPttjjz2yZcuW5WyjT58+2dZbb52tWLFijbdz6KGHZhGRffXVV2tc5+tWPRc++OCDqmWrf61X6dq1a9a1a9eceXbfffe1bv+aa66ptv0sy7IPP/wwKywszM4666yc5fPnz89atGiRHX300VXLBgwYkEVENmrUqLXeVmVlZbZs2bJs2rRpWURkf/3rX6s+d9lll2URkV199dU51zn99NOz0tLSnOfa1616Tt59991Z3bp1c57Dqz9XVqxYkW233XZZv379crbRq1evbPvtt6+6jTPPPDNr3LjxWu/LqaeemjVo0CCbNm1azvJVz8c333xzrdevjVXPgYkTJ1Z9r7zxxhtZlmXZXnvtlZ1wwglZlmXZD37wg5yv/+jRo7OIyB566KGc7U2cODGLiOymm26qWrb6dVdZ1+/N2bNnZ2VlZdXW+/DDD7OSkpKsf//+WZat/BpUVFRkP/zhD3O+plOnTs2Kiopyvl61mf+uu+7K6tatm9111101PoZfd8MNN2QRkb344otZlmXZddddl2299dZZlmXZW2+9lfP4Dh8+PIuINf77tXz58mzp0qXZjjvumJ1zzjnVHrcuXbrkrF+b+w+sG6kPCbj77rtj4sSJ1S7777//N173scceiw4dOsTuu+8ey5cvr7r07NmzxrMQHXjggbHFFltU284zzzwTBx98cJSXl0fdunWjqKgoLr300pg1a1Z89tlnOet27Ngxdtppp5xlY8aMie7du8fOO+/8jTP/6Ec/qra9iIhp06at8Tp77bVXREQcffTR8ec//zlmzJhRbZ0xY8bETjvtlPPT9TU57LDDcvbqrD7De++9F++880785Cc/iYjIeWx79+4dn3zySY2HzeTD3nvvHa+99lqcfvrp8eSTT9bqPQ9PPvlkLF++PI4//vic+1haWhpdu3at8SxWRx55ZLVln332Wfz85z+P1q1bR2FhYRQVFUWbNm0iImo8bKim58BXX32V81ybPHly/OhHP4qmTZtWPSePP/74WLFiRfzzn/9c432qU6dOnHnmmfHYY4/Fhx9+GBEr99o88cQTcfrpp1ftedx7771jzpw5ceyxx8Zf//rXaoeyRaz8/urevXtUVFTkPD69evWKiJVvjl+TysrKnOusWLFijeuurmvXrrH99tvHqFGjYsqUKTFx4sQ1Hhr22GOPRePGjaNv3745t7f77rtHixYtavwarsk3fW+OHz8+Fi9eXG0vR+vWrePAAw+Mv//97xER8e6778bHH38c/fv3z9nT26ZNm9hvv/3We/5Vz9Pjjz/+G+/L19/XsurPrl27RkTEzjvvHM2bN686RGzcuHGx1VZbVf37tXz58rjyyitjl112ieLi4igsLIzi4uL417/+VePzefXvidrcf2DdiBZIwM477xydOnWqdll1mNLazJw5M15//fUoKirKuTRs2DCyLKv2QqymU32+9NJL0aNHj4iI+MMf/hAvvPBCTJw4MS6++OKIWPlG+2/axueffx6tWrVap/vbtGnTnI9XHaKy+u18XZcuXeKRRx6pesHSqlWr6NChQ85x/9/lDKveh3PeeedVe2xPP/30iIgaX+Susuowuw8++GCd5vk2Bg8eHNdee21MmDAhevXqFU2bNo2DDjpojafS/rpV93Ovvfaqdj/vv//+avexXr16OW8Oj1j54rxHjx7xl7/8JS644IL4+9//Hi+99FLVe4Rq+rp+0+P/4YcfxgEHHBAzZsyIG2+8MZ5//vmYOHFi/O53v1vjNr9u4MCBUVZWFrfccktErDwcsKysLOeF/3HHHRejRo2KadOmxZFHHhnNmzePffbZJ5566qmcx+fRRx+t9tj84Ac/iIi1PwdGjBiRc53anFyioKAgTjzxxLj33nvjlltuiZ122ikOOOCAGtedOXNmzJkzJ4qLi6vN+emnn651xtV909dl1qxZEVHzvwEVFRVVn1/1Z4sWLaqtt/qy73L+r9t1112jWbNmMXbs2Kr3s6yKloiV/6aMGzculixZEuPHj885a9i5554bl1xySRx++OHx6KOPxj/+8Y+YOHFi7LbbbjU+91Z/PGpz/4F14z0tsJFr1qxZlJWVrfEY/2bNmuV8/PWf+q1y3333RVFRUTz22GNRWlpatfyRRx6pcZs1bWPLLbeMjz76qBaT116/fv2iX79+sWTJkpgwYUKMHDky+vfvH9tuu2107tz5O51h1eM2ePDg+M///M8a11n9uPav69mzZ/z+97+PRx55JC666KL1mqG0tDSWLFlSbfkXX3yR83UtLCyMc889N84999yYM2dOPP300zFkyJDo2bNnTJ8+fa1v9l+1nQcffLBqz8ja1PS1f+ONN+K1116LO++8MwYMGFC1fNWbkdfHI488EgsXLoy//OUvOXO9+uqr63T98vLyGDBgQNx2221x3nnnxR133BH9+/ePxo0b56x34oknxoknnhgLFy6M5557Li677LLo06dP/POf/4w2bdpEs2bNomPHjnHFFVfUeDsVFRVrnOGUU06JPn36VH28+vtHvskJJ5wQl156adxyyy1rvP2IlV/Dpk2bxhNPPFHj57/NKZJXtypqPvnkk2qf+/jjj6ueT6vW+/TTT6utt/qyDTV/QUFBdO3aNZ544ol46aWXYs6cOTnR0rVr1xg2bFiMHz8+vvrqq5xouffee+P444+PK6+8MmebX3zxRbXn0Krb+rra3H9g3YgW2Mj16dMnrrzyymjatGm0bdt2vbax6vScXz9cavHixXHPPfes8zZ69eoV99xzT7z77rtrfTH/XSgpKYmuXbtG48aN48knn4zJkydH586do1evXnHppZfGM888EwceeOC3uo127drFjjvuGK+99lq1Fy7rol+/frHrrrvGyJEjo0+fPjWeQezJJ5+MAw44YI1Rse2228brr7+es+yf//xnvPvuu9VidJXGjRvHUUcdFTNmzIhBgwbF1KlTY5dddlnj3qyePXtGYWFhvP/++zUe9rUuVr1gW/1F+a233rpe21vTNrMsiz/84Q/rvI1f/OIXcdNNN8VRRx0Vc+bMiTPPPHON69avXz969eoVS5cujcMPPzzefPPNaNOmTfTp0ycef/zx2H777Ws8rHJtKioq1ho136Rly5Zx/vnnxzvvvJMTg6vr06dP3HfffbFixYrYZ5991rrNkpKSb9xLtTadO3eOsrKyuPfee+PHP/5x1fKPPvoonnnmmTjqqKMiYuX3z9Zbbx2jR4+Oc889t+rrOW3atHjxxRdzHpfazF9b3bt3j4ceeiiuueaaaN68ec7hq127do1Zs2bFb37zm6p1VykoKKj2fP7v//7vmDFjRuywww7feLu1uf/AuhEtsJEbNGhQPPTQQ9GlS5c455xzomPHjlFZWRkffvhh/O1vf4tf/vKX3/hC4LDDDovrr78++vfvH6ecckrMmjUrrr322lr9ZHjEiBExZsyY6NKlSwwZMiR23XXXmDNnTjzxxBNx7rnn5py5a31ceuml8dFHH8VBBx0UrVq1ijlz5sSNN94YRUVFVT89HTRoUNx///3Rr1+/uOiii2LvvfeOxYsXx7PPPht9+vSp9S+Nu/XWW6NXr17Rs2fPOOGEE6Jly5bx5Zdfxttvvx2vvPJKPPDAA2u8bt26dePhhx+OHj16ROfOneO0006L7t27R/369WPatGnx4IMPxqOPPhqzZ89e4zaOO+64+OlPfxqnn356HHnkkTFt2rS4+uqrY8stt8xZr2/fvtGhQ4fo1KlTbLnlljFt2rS44YYbok2bNlVnctp1110jIuLGG2+MAQMGRFFRUbRr1y623XbbGDFiRFx88cXx73//Ow499NDYYostYubMmfHSSy9F/fr1q05pvSbt27eP7bffPi666KLIsiyaNGkSjz76aM5hVrV1yCGHRHFxcRx77LFxwQUXxFdffRU333zzWh+v1e20005x6KGHxpgxY2L//feP3XbbLefzP/vZz6KsrCz+4z/+I7beeuv49NNPY+TIkVFeXl71HqoRI0bEU089Ffvtt1/84he/iHbt2sVXX30VU6dOjccffzxuueWWdT4kcX1cddVV37jO//t//y/++Mc/Ru/evePss8+OvffeO4qKiuKjjz6KsWPHRr9+/eKII46IiJXPg/vuuy/uv//+2G677aK0tLTqubEuGjduHJdcckkMGTIkjj/++Dj22GNj1qxZMXz48CgtLa06I1edOnXiV7/6VZx88slxxBFHxM9+9rOYM2dODBs2rNrhUbWZ/+67746BAwfGqFGjavW+llVnTvu6Dh06RNOmTePhhx+Oli1bVn2vRKwMqTvvvDPat28fHTt2jJdffjmuueaadf5a1+b+A+sozycCgM3a188WVJPDDjvsG88elmVZtmDBgmzo0KFZu3btsuLi4qy8vDzbdddds3POOSf79NNPq9aLiOyMM86o8bZGjRqVtWvXLispKcm22267bOTIkdntt99e4xmtDjvssBq3MX369GzgwIFZixYtsqKioqyioiI7+uijs5kzZ2ZZ9n9n2nnggQdyrrfqjF533HFH1bLVzwj12GOPZb169cpatmyZFRcXZ82bN8969+6dPf/88znbmj17dnb22Wdn22yzTVZUVJQ1b948O+yww7J33nkn57auueaaavNHRHbZZZflLHvttdeyo48+OmvevHlWVFSUtWjRIjvwwAOzW265pcbHYHVz5szJfvWrX2U//OEPswYNGmRFRUXZNttsk/30pz/NXnjhhar1ajp7WGVlZXb11Vdn2223XVZaWpp16tQpe+aZZ6qdPey6667L9ttvv6xZs2ZZcXFxts0222QnnXRSNnXq1JxZBg8enFVUVGR16tTJIiIbO3Zs1eceeeSRrHv37lmjRo2ykpKSrE2bNtlRRx2VPf3001XrDBgwIKtfv36N9/Ott97KDjnkkKxhw4bZFltskf34xz/OPvzww2qP6aqzh33++ec516/p/j/66KPZbrvtlpWWlmYtW7bMzj///GzMmDHVZl/9ufJ1d955ZxYR2X333Vftc3fddVfWvXv3bKuttsqKi4urnq+vv/56znqff/559otf/CJr27ZtVlRUlDVp0iTbc889s4svvjhbsGBBjbe7Pr7p34NVajoD2LJly7Jrr7226vFq0KBB1r59++zUU0/N/vWvf1WtN3Xq1KxHjx5Zw4YNc85OWJvvzSzLsttuuy3r2LFj1b83/fr1q/FMarfddlu24447ZsXFxdlOO+2UjRo1qsav17rOv+oxWn2etWnRokUWEdlvf/vbap87/PDDs4jIfvKTn+Qsnz17dnbSSSdlzZs3z+rVq5ftv//+2fPPP1/te29Nj1tt7z/wzQqybB1+EQQAbISOPPLImDBhQkydOrXa74oBYOPh8DAANilLliyJV155JV566aV4+OGH4/rrrxcsABs5e1oA2KRMnTo12rZtG40aNYr+/fvHb3/725yTTACw8REtAABA0vxySQAAIGmiBQAASJpoAQAAkva9nz2ssrIyPv7442jYsGHVb4gFAAA2P1mWxfz586OioiLq1Fnz/pTvPVo+/vjjaN269fd9swAAQKKmT58erVq1WuPnv/doadiwYUSsHKxRo0bf980DAACJmDdvXrRu3bqqEdbke4+WVYeENWrUSLQAAADf+LYRb8QHAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAklaY7wEgn7Isi8XLVuR7DABWU1ZUNwoKCvI9BpAI0cJmK8uyOOqW8fHytNn5HgWA1XRqs0U88PPOwgWICIeHsRlbvGyFYAFI1KRps+0JB6rY0wIRMWnowVGvuG6+xwDY7C1auiI6Xf50vscAEiNaICLqFdeNesW+HQAAUuTwMAAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkvatomXkyJFRUFAQgwYN+o7GAQAAyLXe0TJx4sT4/e9/Hx07dvwu5wEAAMixXtGyYMGC+MlPfhJ/+MMfYosttviuZwIAAKiyXtFyxhlnxGGHHRYHH3zwdz0PAABAjsLaXuG+++6LV155JSZOnLhO6y9ZsiSWLFlS9fG8efNqe5MAAMBmrFZ7WqZPnx5nn3123HvvvVFaWrpO1xk5cmSUl5dXXVq3br1egwIAAJunWkXLyy+/HJ999lnsueeeUVhYGIWFhfHss8/Gr3/96ygsLIwVK1ZUu87gwYNj7ty5VZfp06d/Z8MDAACbvlodHnbQQQfFlClTcpadeOKJ0b59+7jwwgujbt261a5TUlISJSUl325KAABgs1WraGnYsGF06NAhZ1n9+vWjadOm1ZYDAAB8F77VL5cEAADY0Gp99rDVjRs37jsYAwAAoGb2tAAAAEkTLQAAQNJECwAAkDTRAgAAJE20AAAASRMtAABA0kQLAACQNNECAAAkTbQAAABJEy0AAEDSRAsAAJA00QIAACRNtAAAAEkTLQAAQNJECwAAkDTRAgAAJE20AAAASRMtAABA0kQLAACQNNECAAAkTbQAAABJK8z3AACQkizLYvGyFfkeY7O1aOnyGv/O96+sqG4UFBTkewyICNECAFWyLIujbhkfL0+bne9RiIhOl/893yNs1jq12SIe+Hln4UISHB4GAP9r8bIVggX+16Rps+11JBn2tABADSYNPTjqFdfN9xjwvVu0dEV0uvzpfI8BOUQLANSgXnHdqFfsv0mAFDg8DAAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAklaraLn55pujY8eO0ahRo2jUqFF07tw5xowZs6FmAwAAqF20tGrVKq666qqYNGlSTJo0KQ488MDo169fvPnmmxtqPgAAYDNXWJuV+/btm/PxFVdcETfffHNMmDAhfvCDH3yngwEAAETUMlq+bsWKFfHAAw/EwoULo3Pnzmtcb8mSJbFkyZKqj+fNm7e+NwkAAGyGav1G/ClTpkSDBg2ipKQkfv7zn8fDDz8cu+yyyxrXHzlyZJSXl1ddWrdu/a0GBgAANi+1jpZ27drFq6++GhMmTIjTTjstBgwYEG+99dYa1x88eHDMnTu36jJ9+vRvNTAAALB5qfXhYcXFxbHDDjtERESnTp1i4sSJceONN8att95a4/olJSVRUlLy7aYEAAA2W9/697RkWZbznhUAAIDvUq32tAwZMiR69eoVrVu3jvnz58d9990X48aNiyeeeGJDzQcAAGzmahUtM2fOjOOOOy4++eSTKC8vj44dO8YTTzwRhxxyyIaaDwAA2MzVKlpuv/32DTUHAABAjb71e1oAAAA2JNECAAAkTbQAAABJEy0AAEDSRAsAAJA00QIAACRNtAAAAEkTLQAAQNJECwAAkDTRAgAAJE20AAAASRMtAABA0kQLAACQNNECAAAkTbQAAABJEy0AAEDSRAsAAJA00QIAACRNtAAAAEkTLQAAQNJECwAAkDTRAgAAJE20AAAASRMtAABA0kQLAACQNNECAAAkTbQAAABJEy0AAEDSRAsAAJA00QIAACRNtAAAAEkTLQAAQNJECwAAkDTRAgAAJE20AAAASRMtAABA0kQLAACQNNECAAAkTbQAAABJEy0AAEDSRAsAAJA00QIAACRNtAAAAEkTLQAAQNJECwAAkDTRAgAAJE20AAAASRMtAABA0kQLAACQNNECAAAkTbQAAABJEy0AAEDSRAsAAJA00QIAACRNtAAAAEkTLQAAQNJECwAAkDTRAgAAJE20AAAASRMtAABA0kQLAACQNNECAAAkTbQAAABJEy0AAEDSRAsAAJA00QIAACRNtAAAAEkTLQAAQNJECwAAkDTRAgAAJE20AAAASRMtAABA0kQLAACQNNECAAAkTbQAAABJEy0AAEDSRAsAAJA00QIAACRNtAAAAEkTLQAAQNJECwAAkDTRAgAAJE20AAAASRMtAABA0grzPQAAwIaSZVksXr4432NsVBYtW/G1vy+OKKibx2k2LmWFZVFQUJDvMTZJogUA2CRlWRbHjzk+Xv381XyPslHJKosi4lcREdHtz12joM6y/A60Edmj+R5x16F3CZcNQLQAAJukxcsXC5b1UFBnWTTc+aJ8j7FRmvzZ5Fi8fHHUK6qX71E2OaIFANjkjTt6XJQVluV7DDZRi5cvjm5/7pbvMTZpogUA2OSVFZb56TdsxJw9DAAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKTVKlpGjhwZe+21VzRs2DCaN28ehx9+eLz77rsbajYAAIDaRcuzzz4bZ5xxRkyYMCGeeuqpWL58efTo0SMWLly4oeYDAAA2c4W1WfmJJ57I+fiOO+6I5s2bx8svvxxdunT5TgcDAACIqGW0rG7u3LkREdGkSZM1rrNkyZJYsmRJ1cfz5s37NjcJAABsZtb7jfhZlsW5554b+++/f3To0GGN640cOTLKy8urLq1bt17fmwQAADZD6x0tZ555Zrz++usxevTota43ePDgmDt3btVl+vTp63uTAADAZmi9Dg8766yz4r/+67/iueeei1atWq113ZKSkigpKVmv4QAAAGoVLVmWxVlnnRUPP/xwjBs3Ltq2bbuh5gIAAIiIWkbLGWecEX/605/ir3/9azRs2DA+/fTTiIgoLy+PsrKyDTIgAACweavVe1puvvnmmDt3bnTr1i223nrrqsv999+/oeYDAAA2c7U+PAwAAOD7tN5nDwMAAPg+iBYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASFphvgdgHWRZxLJF+Z5i07N0xdf+vigi6uZtlE1WUb2IgoJ8TwEAbORES+qyLGJUz4jp/8j3JJuerCQi7lj592t2iChYktdxNkmt940Y+IRwAQC+FdGSumWLBMsGUq9gSUwt7Z/vMTZt0yesfA4X18/3JADARky0bEzOey+iuF6+p4BvtnRRxLU75HsKAGATIVo2JsX1/MQaAIDNjrOHAQAASRMtAABA0kQLAACQNNECAAAkTbQAAABJEy0AAEDSRAsAAJA00QIAACRNtAAAAEkTLQAAQNJECwAAkDTRAgAAJE20AAAASRMtAABA0kQLAACQNNECAAAkTbQAAABJEy0AAEDSRAsAAJA00QIAACRNtAAAAEkrzPcAsNnJsohli/I9xYa1dFHNf9+UFdWLKCjI9xQAsEkSLfB9yrKIUT0jpv8j35N8f67dId8TfD9a7xsx8AnhAgAbgMPD4Pu0bNHmFSybk+kTNv09aACQJ/a0QL6c915Ecb18T8G3tXTR5rM3CQDyRLRAvhTXiyiun+8pAGCjkWVZLF6+ON9jVPP1mVKcLyKirLAsCjbiQ5hFCwAAycuyLI4fc3y8+vmr+R5lrbr9uVu+R6jRHs33iLsOvWujDRfvaQEAIHmLly9OPlhSNvmzycnuBVoX9rQAALBRGXf0uCgrLMv3GBuFxcsXJ7v3pzZECwAAG5WywrKoV+RkNpsTh4cBAABJEy0AAEDSRAsAAJA00QIAACRNtAAAAEkTLQAAQNJECwAAkDTRAgAAJE20AAAASat1tDz33HPRt2/fqKioiIKCgnjkkUc2wFgAAAAr1TpaFi5cGLvttlv89re/3RDzAAAA5Cis7RV69eoVvXr12hCzAAAAVOM9LQAAQNJqvaeltpYsWRJLliyp+njevHkb+iYBAIBNyAbf0zJy5MgoLy+vurRu3XpD3yQAALAJ2eDRMnjw4Jg7d27VZfr06Rv6JgEAgE3IBj88rKSkJEpKSjb0zQAAAJuoWkfLggUL4r333qv6+IMPPohXX301mjRpEttss813OhwAAECto2XSpEnRvXv3qo/PPffciIgYMGBA3Hnnnd/ZYAAAABHrES3dunWLLMs2xCwAAADV+D0tAABA0kQLAACQNNECAAAkTbQAAABJEy0AAEDSRAsAAJA00QIAACRNtAAAAEkTLQAAQNJECwAAkDTRAgAAJE20AAAASRMtAABA0kQLAACQNNECAAAkTbQAAABJEy0AAEDSRAsAAJA00QIAACRNtAAAAEkTLQAAQNJECwAAkDTRAgAAJE20AAAASRMtAABA0kQLAACQNNECAAAkTbQAAABJEy0AAEDSRAsAAJA00QIAACRNtAAAAEkTLQAAQNJECwAAkDTRAgAAJE20AAAASRMtAABA0kQLAACQNNECAAAkTbQAAABJK8z3AMnIsohli/I9RXVLF9X895QU1YsoKMj3FAAAbKJES8TKYBnVM2L6P/I9ydpdu0O+J6hZ630jBj4hXAA2U1mWxeLli/M9RjVfnynF+SIiygrLosD/n/CNREvEyj0sqQdLyqZPWPkYFtfP9yRsyuwNXT/2hLKBZVkWx485Pl79/NV8j7JW3f7cLd8j1GiP5nvEXYfeJVzgG4iW1Z33XkRxvXxPsXFYuijdvT9sWuwNXX/2hLKBLV6+OPlgSdnkzybH4uWLo16R1x6wNqJldcX17DGA1Ngbuv7sCeV7NO7ocVFWWJbvMTYKi5cvTnbvD6RItAAbF3tD1409oeRBWWGZPQbABiFagI2LvaEAsNnxe1oAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKSJFgAAIGmiBQAASJpoAQAAkiZaAACApIkWAAAgaaIFAABImmgBAACSJloAAICkiRYAACBpogUAAEiaaAEAAJImWgAAgKStV7TcdNNN0bZt2ygtLY0999wznn/++e96LgAAgIhYj2i5//77Y9CgQXHxxRfH5MmT44ADDohevXrFhx9+uCHmAwAANnO1jpbrr78+TjrppDj55JNj5513jhtuuCFat24dN99884aYDwAA2MwV1mblpUuXxssvvxwXXXRRzvIePXrEiy++WON1lixZEkuWLKn6eO7cuRERMW/evNrOuuEsXRixJFv593nzIopX5HeejYXHrfY8ZuvH41Z7HrP1smjp8qhcsigiVv4/tby4Vv9NbpYWLVsUKxavfH7Nmzcvlhctz/NEGwePW+15zNZP6o/bqibIsmztK2a1MGPGjCwishdeeCFn+RVXXJHttNNONV7nsssuyyLCxcXFxcXFxcXFxcWlxsv06dPX2iHr9SOkgoKCnI+zLKu2bJXBgwfHueeeW/VxZWVlfPnll9G0adM1XgcAANj0ZVkW8+fPj4qKirWuV6toadasWdStWzc+/fTTnOWfffZZbLXVVjVep6SkJEpKSnKWNW7cuDY3CwAAbKLKy8u/cZ1avRG/uLg49txzz3jqqadylj/11FOx33771W46AACAdVDrw8POPffcOO6446JTp07RuXPn+P3vfx8ffvhh/PznP98Q8wEAAJu5WkfLMcccE7NmzYoRI0bEJ598Eh06dIjHH3882rRpsyHmAwAANnMF2TeeXwwAACB/av3LJQEAAL5PogUAAEiaaAEAAJK2WUfLCSecEAUFBWu8TJgwId8jJuull16Knj17RsOGDaNBgwbRvXv3eOGFF/I9VtLmz58fF1xwQfTo0SO23HLLKCgoiGHDhuV7rKQ988wzMXDgwGjfvn3Ur18/WrZsGf369YuXX34536Ml73/+53+id+/escUWW0RZWVnsuOOO8atf/SrfYyVt8uTJcfjhh0dFRUXUq1cv2rdvHyNGjIhFixble7Qkvfrqq3HYYYfFNttsE2VlZdGkSZPo3Llz3HvvvfkeLWnjxo3zumM9LFiwIAYNGhQVFRVRWloau+++e9x33335Hmujctttt0VBQUE0aNAg36Osl1qfPWxTcskll9R4qua+fftGSUlJ7LXXXnmYKn0TJ06MLl26xN577x333HNPZFkWV199dRx00EExduzY6Ny5c75HTNKsWbPi97//fey2225x+OGHx2233ZbvkZJ38803x6xZs+Lss8+OXXbZJT7//PO47rrrYt99940nn3wyDjzwwHyPmKQ//elPcdxxx8XRRx8dd999dzRo0CDef//9+Pjjj/M9WrLeeuut2G+//aJdu3Zxww03RLNmzeK5556LESNGxMsvvxx//etf8z1icubMmROtW7eOY489Nlq2bBkLFy6MP/7xj3HcccfF1KlTY+jQofkeMWlXXnlldO/ePWdZhw4d8jRN+v7zP/8zJk6cGFdddVXstNNO8ac//SmOPfbYqKysjP79++d7vOTNmDEjzjvvvKioqIi5c+fme5z1k5Fj3LhxWURkQ4cOzfcoyerZs2e21VZbZQsXLqxaNm/evKxZs2bZfvvtl8fJ0lZZWZlVVlZmWZZln3/+eRYR2WWXXZbfoRI3c+bMasvmz5+fbbXVVtlBBx2Uh4nS99FHH2X169fPTjvttHyPslG5+OKLs4jI3nvvvZzlp5xyShYR2ZdffpmnyTY+++yzT9a6det8j5GssWPHZhGRPfDAA/keZaPx3//931lEZH/6059ylh9yyCFZRUVFtnz58jxNtvHo06dP1rdv32zAgAFZ/fr18z3OetmsDw+rye233x4FBQUxcODAfI+SrBdeeCG6desW9erVq1rWsGHD6NKlS7z44ovxySef5HG6dK3a/c+6a968ebVlDRo0iF122SWmT5+eh4nSd9ttt8XChQvjwgsvzPcoG5WioqKIiCgvL89Z3rhx46hTp04UFxfnY6yNUrNmzaKwcLM+kIPv2MMPPxwNGjSIH//4xznLTzzxxPj444/jH//4R54m2zjce++98eyzz8ZNN92U71G+FdHyNXPnzo0HH3wwDjrooGjbtm2+x0nW0qVLo6SkpNryVcumTJnyfY/EZmTu3LnxyiuvxA9+8IN8j5Kk5557Lpo0aRLvvPNO7L777lFYWBjNmzePn//85zFv3rx8j5esAQMGROPGjeO0006Lf//73zF//vx47LHH4tZbb40zzjgj6tevn+8Rk1VZWRnLly+Pzz//PG666aZ48sknRfM6OOOMM6KwsDAaNWoUPXv2jP/5n//J90jJeuONN2LnnXeuFsMdO3as+jw1++yzz2LQoEFx1VVXRatWrfI9zrciWr5m9OjRsXjx4jjppJPyPUrSdtlll5gwYUJUVlZWLVu+fHnVTzpmzZqVr9HYDJxxxhmxcOHCuPjii/M9SpJmzJgRixYtih//+MdxzDHHxNNPPx3nn39+3H333dG7d+/I/D7hGm277bYxfvz4eOONN2L77bePRo0aRd++fWPAgAFx44035nu8pJ1++ulRVFQUzZs3j3POOSd+/etfx6mnnprvsZJVXl4eZ599dtx6660xduzYuPHGG2P69OnRrVu3ePLJJ/M9XpJmzZoVTZo0qbZ81TKvO9bs9NNPj3bt2sVpp52W71G+Nftvv+b222+Ppk2bxhFHHJHvUZJ21llnxUknnRRnnnlmXHzxxVFZWRnDhw+PadOmRUREnTpamA3jkksuiT/+8Y/xm9/8Jvbcc898j5OkysrK+Oqrr+Kyyy6Liy66KCIiunXrFsXFxTFo0KD4+9//HgcffHCep0zP1KlTo2/fvrHVVlvFgw8+GFtuuWX84x//iMsvvzwWLFgQt99+e75HTNaQIUPi5JNPjs8++yweffTROPPMM2PhwoVx3nnn5Xu0JO2xxx6xxx57VH18wAEHxBFHHBG77rprXHDBBdGzZ888TpeutR1e7dDrmj300EPx6KOPxuTJkzeJx8iry//1+uuvx6RJk+KnP/1pjYc+8X8GDhwYV111Vdxzzz3RqlWr2GabbeKtt96q+g+qZcuWeZ6QTdHw4cPj8ssvjyuuuCLOPPPMfI+TrKZNm0ZEVHvh06tXr4iIeOWVV773mTYGF110UcybNy+efPLJOPLII6NLly5x/vnnxw033BCjRo2KZ599Nt8jJmubbbaJTp06Re/evePmm2+OU045JQYPHhyff/55vkfbaDRu3Dj69OkTr7/+eixevDjf4ySnadOmNe5N+fLLLyMiatwLs7lbsGBBnHHGGXHWWWdFRUVFzJkzJ+bMmRNLly6NiJVn/1u4cGGep6wd0fK/Vv0U7eSTT87zJBuHCy+8ML744ouYMmVKTJ06NV588cWYPXt21K9f30/A+c4NHz48hg0bFsOGDYshQ4bke5ykrTrGe3WrDguzJ7Rmr776auyyyy7V3ruy6tT3jplfd3vvvXcsX748/v3vf+d7lI3Kqu/RTeEn4t+1XXfdNd5+++1Yvnx5zvJV76F1qujqvvjii5g5c2Zcd911scUWW1RdRo8eHQsXLowtttgifvKTn+R7zFrxv1dELFmyJO69997Ye++9PfFroaSkJDp06BBt2rSJDz/8MO6///742c9+FmVlZfkejU3Ir371qxg2bFgMHTo0LrvssnyPk7wjjzwyIiLGjBmTs/zxxx+PiIh99933e59pY1BRURFvvvlmLFiwIGf5+PHjIyI2+jewfp/Gjh0bderUie222y7fo2w0Zs+eHY899ljsvvvuUVpamu9xknPEEUfEggUL4qGHHspZftddd0VFRUXss88+eZosXS1atIixY8dWu/Ts2TNKS0tj7Nixcfnll+d7zFrxnpaIeOSRR+LLL7+0l2UdvfHGG/HQQw9Fp06doqSkJF577bW46qqr/MbtdTBmzJhYuHBhzJ8/PyJW/kK7Bx98MCIievfunXMaaSKuu+66uPTSS+PQQw+Nww47rNpvi/YCvLoePXpE3759Y8SIEVFZWRn77rtvTJo0KYYPHx59+vSJ/fffP98jJmnQoEFx+OGHxyGHHBLnnHNONGvWLCZMmBAjR46MXXbZperwOv7PKaecEo0aNYq99947ttpqq/jiiy/igQceiPvvvz/OP//82HLLLfM9YpL69+9fdUhds2bN4l//+ldcd911MXPmzLjzzjvzPV6SevXqFYccckicdtppMW/evNhhhx1i9OjR8cQTT8S9994bdevWzfeIySktLY1u3bpVW37nnXdG3bp1a/xc8vL8e2KScMghh2T169fP5s2bl+9RNgrvvvtu1qVLl6xJkyZZcXFxtsMOO2RDhw7NFixYkO/RktemTZssImq8fPDBB/keLzldu3Zd4+Pln681W7RoUXbhhRdmrVu3zgoLC7NtttkmGzx4cPbVV1/le7SkPfPMM1mPHj2yFi1aZGVlZdlOO+2U/fKXv8y++OKLfI+WpFGjRmUHHHBA1qxZs6ywsDBr3Lhx1rVr1+yee+7J92hJGzlyZLb77rtn5eXlWd26dbMtt9wyO+KII7KXXnop36Mlbf78+dkvfvGLrEWLFllxcXHWsWPHbPTo0fkea6OzMf9yyYIsc/5LAAAgXd7TAgAAJE20AAAASRMtAABA0kQLAACQNNECAAAkTbQAAABJEy0AAEDSRAsAAJA00QIAACRNtAAAAEkTLQAAQNJECwAAkLT/D7bnR8mrAmMfAAAAAElFTkSuQmCC\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "from scipy.cluster.hierarchy import linkage, dendrogram\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "import pandas as pd\n", - "\n", - "# Anzahl der Datenpunktansammlungen (Cluster)\n", - "num_clusters = 2\n", - "\n", - "# Anzahl der Datenpunkte pro Cluster\n", - "points_per_cluster = 5\n", - "\n", - "# Größe des \"Noise\"-Bereichs\n", - "noise_scale = 1\n", - "\n", - "# Beispiel Daten - Clusterpunkte und \"Noise\" Punkte\n", - "np.random.seed(0)\n", - "clusters = []\n", - "for _ in range(num_clusters):\n", - " cluster_center = np.random.rand(2) * (1 - noise_scale)\n", - " cluster = cluster_center + np.random.randn(points_per_cluster, 2) * noise_scale\n", - " clusters.append(cluster)\n", - "\n", - "# Zusammenführen der Clusterpunkte\n", - "X = np.concatenate(clusters, axis=0)\n", - "\n", - "# Initialisierung: Jeder Datenpunkt ist ein Cluster\n", - "clusters = [[i] for i in range(X.shape[0])]\n", - "\n", - "# Schleife für jeden Schritt der hierarchischen Clusteranalyse\n", - "for step in range(X.shape[0] - 1):\n", - " print(f\"\\n--- Schritt {step + 1} ---\")\n", - " print(\"Aktuelle Cluster:\", clusters)\n", - "\n", - " # Berechnung der Abstandsmatrix mit Ward-Methode\n", - " linkage_matrix = linkage(X, 'ward')\n", - "\n", - " # Ausgabe der Abstandsmatrix\n", - " print(\"Abstandsmatrix nach Linkage:\")\n", - " print(linkage_matrix)\n", - "\n", - " # Tabelle mit den Abständen zwischen den Clustern erstellen\n", - " distances = []\n", - " for i in range(len(linkage_matrix)):\n", - " cluster1, cluster2, distance, _ = linkage_matrix[i]\n", - " cluster1, cluster2 = int(cluster1), int(cluster2) # Konvertiere zu ganzzahligen Indizes\n", - " if cluster1 < len(clusters) and cluster2 < len(clusters):\n", - " distances.append([cluster1, cluster2, distance, len(clusters[cluster1]), len(clusters[cluster2])])\n", - "\n", - " # Streudiagramm zeichnen\n", - " colors = ['b', 'g', 'r', 'c', 'm', 'y', 'k']\n", - " plt.figure(figsize=(8, 6))\n", - " for idx, cluster in enumerate(clusters):\n", - " for point_idx in cluster:\n", - " plt.scatter(X[point_idx, 0], X[point_idx, 1], color=colors[idx % len(colors)], label=f'Cluster {idx}')\n", - " plt.title('Hierarchische Clusteranalyse - Schritt {}'.format(step + 1))\n", - " plt.legend()\n", - " plt.show()\n", - "\n", - " # Wenn nur noch ein Cluster übrig ist, breche die Schleife ab\n", - " if len(clusters) == 1:\n", - " break\n", - "\n", - " # Identifiziere die beiden nächsten Cluster\n", - " cluster1, cluster2 = int(linkage_matrix[step][0]), int(linkage_matrix[step][1])\n", - "\n", - " # Überprüfe, ob die Cluster existieren, bevor sie zusammengeführt werden\n", - " if cluster1 < len(clusters) and cluster2 < len(clusters):\n", - " new_cluster = clusters[cluster1] + clusters[cluster2]\n", - " del clusters[max(cluster1, cluster2)]\n", - " del clusters[min(cluster1, cluster2)]\n", - " clusters.append(new_cluster)\n", - "\n", - "# Ausgabe des finalen Clusters\n", - "print(f\"\\n--- Schritt {X.shape[0]} ---\")\n", - "print(\"Finale Cluster:\", clusters)\n", - "\n", - "# Dendrogramm erstellen und anzeigen\n", - "plt.figure(figsize=(10, 7))\n", - "plt.title('Hierarchische Clusteranalyse - Methode: Ward')\n", - "dendrogram(linkage_matrix)\n", - "plt.show()\n" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "id": "1a4f2193", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[array([[0.59180595, 0.86775975],\n", - " [0.68068795, 0.54594264],\n", - " [0.588941 , 0.62853471],\n", - " [0.48361027, 0.68473028],\n", - " [0.50833651, 0.78909778]]), array([[0.55562643, 0.86640441],\n", - " [0.66064801, 0.81252115],\n", - " [0.54254688, 0.7476274 ],\n", - " [0.25594112, 0.89839883],\n", - " [0.59768372, 0.75882047]])]\n", - "[[0.59180595 0.86775975]\n", - " [0.68068795 0.54594264]\n", - " [0.588941 0.62853471]\n", - " [0.48361027 0.68473028]\n", - " [0.50833651 0.78909778]\n", - " [0.55562643 0.86640441]\n", - " [0.66064801 0.81252115]\n", - " [0.54254688 0.7476274 ]\n", - " [0.25594112 0.89839883]\n", - " [0.59768372 0.75882047]]\n", - "\n", - "--- Schritt 1 ---\n", - "Aktuelle Cluster: [[0], [1], [2], [3], [4], [5], [6], [7], [8], [9]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 0. 5. 0.0362049 2. ]\n", - " [ 4. 7. 0.05376004 2. ]\n", - " [ 6. 9. 0.08275424 2. ]\n", - " [ 3. 11. 0.10797673 3. ]\n", - " [ 1. 2. 0.12344616 2. ]\n", - " [10. 12. 0.13930155 4. ]\n", - " [13. 15. 0.23028243 7. ]\n", - " [14. 16. 0.37874766 9. ]\n", - " [ 8. 17. 0.47988728 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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URGmTZumrDN06FBMmjQJPj4+CAoKwueffw53d3eVoHu3hQsXoqqqSrldunSpLZdCRERERHqoizaVu3fvDolEojbqeuXKFbXR2SZxcXEIDAzEW2+9BQDw9vaGqakpgoKCsGLFCtjZ2akdY2BggCeeeKLFkVipVAqpVKpN94mIiIjoEaHVSKyRkRF8fX2RmZmpUp6ZmYmAgACNx/z+++8wMFA9jUQiAdA4gquJKIrIy8vTGHCJiIiIiLQaiQWAOXPmIDIyEn5+fvD398eHH36IkpIS5fSAhQsXorS0FNu3bwcAjB07Fq+99hqSk5MRGhqKsrIyxMTEYPDgwejVqxcAYPny5Rg6dCjc3NxQXV2N9evXIy8vD4mJiTq8VCIiIiJ6VGgdYidMmIBr164hNjYWZWVl6N+/P9LS0uDo6AgAKCsrU1kzdvLkyfjtt9/w/vvvY+7cubC0tMTTTz+NVatWKetUVlbi9ddfR3l5OSwsLDBw4EBkZ2dj8ODBOrhEIiIiInrUCGJzn+nrmerqalhYWKCqqgrm5uYd3R0iIiIiuosu81qbVicgIiIiIupIDLFEREREpHcYYomIiIhI7zDEEhEREZHeYYglIiIiIr3DEEtEREREeochloiIiIj0DkMsEREREekdhlgiIiIi0jsMsURERESkdxhiiYiIiEjvMMQSERERkd5hiCUiIiIivcMQS0RERER6hyGWiIiIiPQOQywRERER6R2GWCIiIiLSOwyxRERERKR3GGKJiIiISO8wxBIRERGR3mGIJSIiIiK9wxBLRERERHqHIZaIiIiI9A5DLBERERHpHYZYIiIiItI7DLFEREREpHcYYomIiIhI7zDEEhEREZHeYYglIiIiIr3DEEtEREREeochloiIiIj0DkMsEREREekdhlgiIiIi0jtdOroDRERERNRIoVAgJycHZWVlsLOzQ1BQECQSSUd366HEEEtERET0EJDL5YiOjsbly5eVZQ4ODli3bh3CwsI6sGcPJ04nICIiIupgcrkcERERKgEWAEpLSxEREQG5XN5BPXt4McQSERERdSCFQoHo6GiIoqi2r6ksJiYGCoXiQXftocYQS0RERNSBcnJy1EZg7ySKIi5duoScnJwH2KuHH0MsERERUQcqKyvTab3OgiGWiIiIqAPZ2dnptF5nwRBLRERE1IGCgoLg4OAAQRA07hcE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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 2 ---\n", - "Aktuelle Cluster: [[1], [2], [3], [4], [6], [7], [8], [9], [0, 5]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 0. 5. 0.0362049 2. ]\n", - " [ 4. 7. 0.05376004 2. ]\n", - " [ 6. 9. 0.08275424 2. ]\n", - " [ 3. 11. 0.10797673 3. ]\n", - " [ 1. 2. 0.12344616 2. ]\n", - " [10. 12. 0.13930155 4. ]\n", - " [13. 15. 0.23028243 7. ]\n", - " [14. 16. 0.37874766 9. ]\n", - " [ 8. 17. 0.47988728 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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AC5cuNBoX+Li4mBlZaXaZDKZLpdCRERERAasRQ92CYKg9loURY2yBnl5eZg1axaWLFmC48ePIy0tDYWFhZg2bZqqzrBhwzBp0iR4e3sjMDAQn332Gfr06aMWdO+1cOFCVFRUqLYrV6605FKIiIiIyAB10qWynZ0djI2NNUZdr127pjE62yAuLg4BAQF46623AABeXl6wsLBAYGAgVq5cCUdHR41jjIyM8MQTTzQ5EiuRSCCRSHTpPhERERE9InQaiTU1NYWPjw8yMjLUyjMyMuDv76/1mD/++ANGRuqnMTY2BlA/gquNKIrIzc3VGnCJiIiIiHQaiQWAOXPmIDIyEr6+vvDz88MHH3yA4uJi1fSAhQsXoqSkBDt37gQAjBs3Dq+99hqSkpIQEhIChUKBmJgYDBkyBN27dwcALF++HMOGDYO7uzsqKyuxYcMG5ObmYtOmTXq8VCIiIiJ6VOgcYidMmIDffvsNsbGxUCgUGDBgAFJTU+Hi4gIAUCgUamvGTp48GTdv3sR7772HuXPnwtraGk8//TRWr16tqlNeXo7XX38dpaWlsLKywqBBg5CdnY0hQ4bo4RKJiIiI6FEjiI39Tt/AVFZWwsrKChUVFZBKpe3dHSIiIiK6hz7zWotWJyAiIiIiak8MsURERERkcBhiiYiIiMjgMMQSERERkcFhiCUiIiIig8MQS0REREQGhyGWiIiIiAwOQywRERERGRyGWCIiIiIyOAyxRERERGRwGGKJiIiIyOAwxBIRERGRwWGIJSIiIiKDwxBLRERERAaHIZaIiIiIDA5DLBEREREZHIZYIiIiIjI4DLFEREREZHAYYomIiIjI4DDEEhEREZHBYYglIiIiIoPDEEtEREREBochloiIiIgMDkMsERERERkchlgiIiIiMjgMsURERERkcBhiiYiIiMjgMMQSERERkcFhiCUiIiIig8MQS0REREQGhyGWiIiIiAwOQywRERERGRyGWCIiIiIyOJ3auwNEREREVE9UiijPKUeNogamjqawDrSGYCy0d7ceSgyxRERERA+BMnkZCqILUH21WlUmcZag9/resA+zb8eePZw4nYCIiIionZXJy3Am4oxagAWA6pJqnIk4gzJ5WTv17OHFEEtERETUjkSliILoAkDUtrP+PwUxBRCV2ip0XAyxRERERO2oPKdcYwRWjQhUX6lGeU55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7hARkQFrWJ2g3t1/TdY/xOzpmcxltohaQJ95rUWrExARET3K7O3D4OmZDInESa1cInFmgCV6SOg8nYCIiKgjsLcPg51dKL+xi+ghxRBLRETUCEEw5jJaRA8pTicgIiIiIoPDEEtEREREBochloiIiIgMDkMsERERERkchlgiIiIiMjgMsURERERkcBhiiYiIiMjgMMQSERERkcFhiCUiIiIig8MQS0REREQGhyGWiIiIiAwOQywRERERGRyGWCIiIiIyOAyxRERERGRwGGKJiIiIyOAwxBIRERGRwWGIJSIiIiKDwxBLRERERAaHIZaIiIiIDA5DLBEREREZHIZYIiIiIjI4DLFEREREZHAYYomIiIjI4DDEEhEREZHBYYglIiIiIoPDEEtEREREBochloiIiIgMDkMsERERERkchlgiIiIiMjgMsURERERkcBhiiYiIiMjgMMQSERERkcFhiCUiIiIig9OpvTvQlurq6lBTU9Pe3SAdmJiYwNjYuL27QURERA+ZDhNia2pqUFhYiLq6uvbuCunI2toa3bp1gyAI7d0VIiIiekh0iBAriiIUCgWMjY0hk8lgZMRZFIZAFEX88ccfuHbtGgDA0dGxnXtERERED4sOEWLv3LmDP/74A927d8djjz3W3t0hHZibmwMArl27hq5du3JqAREREQHoIA92KZVKAICpqWk794RaouEfHrW1te3cEyIiInpYdIgQ24BzKg0TPzciIiK6V4cKsY8qQRCwZ8+e9u4GERERUZthiH3IlZaWYubMmXBzc4NEIoFMJsO4ceNw8ODBVjlfVlYWBEFAeXl5q7QPAL///jsiIyNhZWUFKysrREZGtur5iIiI6NHTIR7sMlRFRUUICAiAtbU14uPj4eXlhdraWqSnpyMqKgpnz55t7y42ShRFKJVKdOqkeYtNnDgRV69eRVpaGgDg9ddfR2RkJPbu3dvW3SQiIiIDxZFYHSiVQFYWsGtX/X//97xYq5k+fToEQcCxY8cQERGBPn36wNPTE3PmzMHRo0e1HqNtJDU3NxeCIKCoqAgAcPnyZYwbNw42NjawsLCAp6cnUlNTUVRUhKCgIACAjY0NBEHA5MmTAdSH0vj4eLi5ucHc3Bze3t5ITk7WOG96ejp8fX0hkUiQk5Oj0b/8/HykpaXhww8/hJ+fH/z8/LBlyxbs27cP586d088b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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 3 ---\n", - "Aktuelle Cluster: [[1], [2], [3], [4], [7], [8], [0, 5], [6, 9]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 0. 5. 0.0362049 2. ]\n", - " [ 4. 7. 0.05376004 2. ]\n", - " [ 6. 9. 0.08275424 2. ]\n", - " [ 3. 11. 0.10797673 3. ]\n", - " [ 1. 2. 0.12344616 2. ]\n", - " [10. 12. 0.13930155 4. ]\n", - " [13. 15. 0.23028243 7. ]\n", - " [14. 16. 0.37874766 9. ]\n", - " [ 8. 17. 0.47988728 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 4 ---\n", - "Aktuelle Cluster: [[1], [2], [3], [4], [7], [8], [0, 5], [6, 9]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 0. 5. 0.0362049 2. ]\n", - " [ 4. 7. 0.05376004 2. ]\n", - " [ 6. 9. 0.08275424 2. ]\n", - " [ 3. 11. 0.10797673 3. ]\n", - " [ 1. 2. 0.12344616 2. ]\n", - " [10. 12. 0.13930155 4. ]\n", - " [13. 15. 0.23028243 7. ]\n", - " [14. 16. 0.37874766 9. ]\n", - " [ 8. 17. 0.47988728 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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RA8zmzAbeKV5QWqv+gCx1EHKAEv0gNB6OgEREVFXYBNmg55je/Ibu4geUAyxREREzRAkApfRInpAcToBEREREekdhlgiIiIi0jsMsURERESkdxhiiYiIiEjvMMQSERERkd5hiCUiIiIivcMQS0RERER6hyGWiIiIiPQOQywRERER6R2GWCIiIiLSOwyxRERERKR3GGKJiIiISO8wxBIRERGR3mGIJSIiIiK9wxBLRERERHqHIZaIiIiI9A5DLBERERHpHYZYIiIiItI7DLFEREREpHcYYomIiIhI7zDEEhEREZHeYYglIiIiIr3DEEtEREREeochloiIiIj0DkMsEREREekdhlgiIiIi0jsMsURERESkdxhiiYiIiEjvMMQSERERkd5hiCUiIiIivcMQS0RERER6hyGWiIiIiPQOQywRERER6Z1und2BjtTQ0IC6urrO7gZpwdDQEBKJpLO7QURERA+YLhNi6+rqUFRUhIaGhs7uCmnJ0tISvXv3hiAInd0VIiIiekB0iRAriiLKysogkUggk8lgYMBZFPpAFEX8/vvvuHLlCgDAzs6uk3tERERED4ouEWJv376N33//HX369MEjjzzS2d0hLZiYmAAArly5gl69enFqAREREQHoIg92KRQKAICRkVEn94TaoukfHvX19Z3cEyIiInpQdIkQ24RzKvUT3zciIiK6W5cKsQ8rQRCwc+fOzu4GERERUYdhiH3AlZeXY8aMGXBxcYFUKoVMJsOYMWOwf//+djnfgQMHIAgCKisr26V9ALhx4wYiIyNhYWEBCwsLREZGtuv5iIiI6OHTJR7s0lfFxcUIDAyEpaUlEhMT4e3tjfr6emRmZiIqKgqnT5/u7C42SxRFKBQKdOumfotNmDABly9fxt69ewEAb7zxBiIjI7Fr166O7iYRERHpKY7EakGhAA4cALZvb/zzf8+LtZtp06ZBEAQcOXIEERERcHd3h5eXF2bPno28vDyNx2gaSc3Pz4cgCCguLgYAXLx4EWPGjIGVlRVMTU3h5eWFjIwMFBcXIzg4GABgZWUFQRAwadIkAI2hNDExES4uLjAxMYGPjw/S0tLUzpuZmQk/Pz9IpVLk5uaq9e/UqVPYu3cvPvroI/j7+8Pf3x8bNmzA7t27cebMGd28cERERPTQ40hsK8nlQHQ0cPnyn2UODsCaNUBYmO7Pd/36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KIro1q0b9u3bh6effrpD+k7t435+T9xp6NCh+L//+z9dd486WFvuBzs7O9jb2ysDLNA4X1IURVy+fBlubm7t2mdqX/fzO0IURWzatAmRkZEwMjLS+tycE9uFGRkZwdfXF1lZWSrlWVlZCAgIaHU7oiiitrZW192jTqDtPWFubo4TJ04gPz9fuU2dOhUeHh7Iz8/HkCFDOqrr1E509Xvi2LFjsLOz03X3qIO15X4IDAzEL7/8gps3byrLzp49CwMDAzg4OLRrf6n93c/viG+//RaFhYWYPHly207e1uUU6OHQtCzGxo0bxYKCAjEmJkY0NTUVi4uLRVEUxXnz5omRkZHK+u+//7745ZdfimfPnhXPnj0rbtq0STQ3Nxfnz5/fWZdAOqbtPXG3RYsWcYmth4y298S//vUv8YsvvhDPnj0r/vzzz+K8efNEAGJ6enpnXQLpkLb3w2+//SY6ODiIERER4smTJ8Vvv/1WdHNzE6dMmdJZl0A61ta/NyZOnCgOGTKkzefldIIubvz48bh27Rri4+NRVlaGAQMGICMjQ/mEYFlZGUpKSpT1GxoaEBcXh6KiInTr1g19+/bFP//5T7z55puddQmkY9reE/Tw0/aeqKurw5w5c1BaWgoTExN4eXlhz549eO655zrrEkiHtL0fzMzMkJWVhRkzZsDPzw89evTAuHHjsGzZss66BNKxtvy9UVVVhfT0dKxZs6bN5+U6sURERESkdzgnloiIiIj0DkMsEREREekdhlgiIiIi0jsMsURERESkdxhiiYiIiEjvMMQSERERkd5hiCUiIiIivcMQS0RERER6hyGWiIiIiPQOQywRERER6R2GWCIiIiLSOwyxRERERKR3/j8INDV6UiBvIwAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 5 ---\n", - "Aktuelle Cluster: [[1], [2], [3], [4], [7], [8], [0, 5], [6, 9]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 0. 5. 0.0362049 2. ]\n", - " [ 4. 7. 0.05376004 2. ]\n", - " [ 6. 9. 0.08275424 2. ]\n", - " [ 3. 11. 0.10797673 3. ]\n", - " [ 1. 2. 0.12344616 2. ]\n", - " [10. 12. 0.13930155 4. ]\n", - " [13. 15. 0.23028243 7. ]\n", - " [14. 16. 0.37874766 9. ]\n", - " [ 8. 17. 0.47988728 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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3bp1yjr9+/fHli1b8OWXX2L79u0wMTFBYGAgzp0712xfEhMTYWlpqdykUqk2l0JEREREeqxND3YJgqDysyiKamVNCgsLMXPmTCxcuBA//vgj9u7di+LiYkydOlVZZ9iwYZg4cSJ8fHwQFBSEzz77DB4eHipB927x8fGoqqpSbpcuXWrLpRARERGRHuqmTeWePXvC0NBQbdT1ypUraqOzTRITExEYGIi3334bAODt7Q0zMzMEBQVh2bJlsLe3VzvGwMAATzzxRIsjsRKJBBKJRJvuExEREdFDQquRWGNjY/j6+iI7O1ulPDs7GwEBARqP+f3332FgoHoaQ0NDAI0juJqIooiCggKNAZeIiIiISKuRWACYPXs2oqKi4OfnB39/f3z44YcoLS1VTg+Ij49HWVkZtm3bBgAYM2YMXn/9daSlpSEsLAxyuRyxsbEYMmQI+vTpAwBYsmQJhg0bBnd3d1RXV2Pt2rUoKChASkqKDi+ViIiIiB4WWofY8ePH49q1a0hISIBcLsfAgQORmZkJJycnAIBcLldZM3bSpEn47bff8P777yMuLg5WVlZ4+umnsWLFCmWdyspKvPHGGygvL4elpSUGDx6M3NxcDBkyRAeXSEREREQPG0Fs7jN9PVNdXQ1LS0tUVVXBwsKis7tDRERERHfRZV5r0+oERERERESdiSGWiIiIiPQOQywRERER6R2GWCIiIiLSOwyxRERERKR3GGKJiIiISO8wxBIRERGR3mGIJSIiIiK9wxBLRERERHqHIZaIiIiI9A5DLBERERHpHYZYIiIiItI7DLFEREREpHcYYomIiIhI7zDEEhEREZHeYYglIiIiIr3DEEtEREREeochloiIiIj0DkMsEREREekdhlgiIiIi0jsMsURERESkdxhiiYiIiEjvMMQSERERkd5hiCUiIiIivcMQS0RERER6hyGWiIiIiPQOQywRERER6R2GWCIiIiLSOwyxRERERKR3GGKJiIiISO8wxBIRERGR3mGIJSIiIiK9wxBLRERERHqnW2d3gIiIiIgaKRRAXh4glwP29kBQEGBo2Nm9ejAxxBIRERE9AGQyICYGuHz5zzJHR2DNGiA8vPP69aDidAIiIiKiTiaTAZGRqgEWAMrKGstlss7p14OMIZaIiIioEykUjSOwoqi+r6ksNraxHv2JIZaIiIioE+XlqY/A3kkU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V7oXl9kiagNd5rU2rU5ARET0MLMNt4VXuhckDqoPEEscJQywRA8IracTEBERdQW24bboObYnv7GL6AHFEEtERNQMwVDgMlpEDyhOJyAiIiIivcMQS0RERER6hyGWiIiIiPQOQywRERER6R2GWCIiIiLSOwyxRERERKR3GGKJiIiISO8wxBIRERGR3mGIJSIiIiK9wxBLRERERHqHIZaIiIiI9A5DLBERERHpHYZYIiIiItI7DLFEREREpHcYYomIiIhI7zDEEhEREZHeYYglIiIiIr3DEEtEREREeochloiIiIj0DkMsEREREekdhlgiIiIi0jsMsURERESkdxhiiYiIiEjvMMQSERERkd5hiCUiIiIivcMQS0RERER6hyGWiIiIiPQOQywRERER6R2GWCIiIiLSOwyxRERERKR3GGKJiIiISO8wxBIRERGR3mGIJSIiIiK9062zO9CRGhoaUFdX19ndIC0YGRnB0NCws7tBRERED5guE2Lr6upQXFyMhoaGzu4KacnKygq9e/eGIAid3RUiIiJ6QHSJECuKIuRyOQwNDSGVSmFgwFkU+kAURfz++++4cuUKAMDe3r6Te0REREQPii4RYm/fvo3ff/8dffr0wSOPPNLZ3SEtmJqaAgCuXLmCXr16cWoBERERAegiD3YpFAoAgLGxcSf3hNqi6R8e9fX1ndwTIiIielB0iRDbhHMq9RPfNyIiIrpblwqxDytBELBz587O7gYRERFRh2GIfcCVl5djxowZcHV1hUQigVQqxZgxY7B///52Od+BAwcgCAIqKyvbpX0AuHHjBqKiomBpaQlLS0tERUW16/mIiIjo4dMlHuzSVyUlJQgMDISVlRWSkpLg7e2N+vp6ZGVlITo6GqdPn+7sLjZLFEUoFAp066Z+i02YMAGXL1/G3r17AQBvvPEGoqKisGvXro7uJhEREekpjsRqQaEADhwAtm9v/PN/z4u1m2nTpkEQBBw5cgSRkZHw8PCAl5cXZs+ejfz8fI3HaBpJLSgogCAIKCkpAQBcvHgRY8aMgbW1NczMzODl5YXMzEyUlJQgODgYAGBtbQ1BEDBp0iQAjaE0KSkJrq6uMDU1hY+PD9LT09XOm5WVBT8/P0gkEuTl5an179SpU9i7dy8++ugj+Pv7w9/fHxs2bMDu3btx5swZ3bxwRERE9NDjSGwryWRATAxw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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 6 ---\n", - "Aktuelle Cluster: [[1], [4], [7], [8], [0, 5], [6, 9], [2, 3]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 0. 5. 0.0362049 2. ]\n", - " [ 4. 7. 0.05376004 2. ]\n", - " [ 6. 9. 0.08275424 2. ]\n", - " [ 3. 11. 0.10797673 3. ]\n", - " [ 1. 2. 0.12344616 2. ]\n", - " [10. 12. 0.13930155 4. ]\n", - " [13. 15. 0.23028243 7. ]\n", - " [14. 16. 0.37874766 9. ]\n", - " [ 8. 17. 0.47988728 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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jcLkyZORnJyM0NBQlJaWIiYmBgMHDkSPHj0AANHR0XjuueewfPlyjB49Gv/+97/x3Xff4dChQ1q8VCIiIiJ6XGgcYseOHYsbN24gPj4epaWl6NevH9LS0uDo6AgAKC0tVVozdsKECfj999/x0UcfITY2FhYWFnj++eexfPlyRR1/f3989dVXmD9/Pt5//3306tUL27dvx6BBg7RwiURERET0uNF4ndhHFdeJJSIiInq0ddg6sUREREREjwKGWCIiIiLSORrPiSUiImoNeb0c2cXZKP29FHZd7RDYMxD6evod3S0i0lEMsURE1OZk+TJE74vG5arLijIHMwesGb4GYR5hHdgzItJVnE5ARERtSpYvQ8TXEUoBFgBKqkoQ8XUEZPmyDuoZEekyhlgiImoz8no5ovdFQ4TqQjiNZTH7YiCvl7d314hIxzHEEhFRm8kuzlYZgb2XCBGXqi4huzi7HXtFRI8DhlgiImozpb+XarUeEVEjhlgiImozdl3ttFqPiKgRQywREbWZwJ6BcDBzgABB7X4BAqRmUgT2DGznnhGRrmOIJSKiNqOvp481w9cAgEqQbXy9evhqrhdLRBpjiCUiojYV5hGGlDEpsDezVyp3MHNAypgUrhNLRK0iiKKouu6JDqqqqoK5uTkqKythZmbW0d0hIqL78Bu7iEibeY3f2EVERO1CX08fQ52GdnQ3iOgxwekERERERKRzGGKJiIiISOcwxBIRERGRzmGIJSIiIiKdwxBLRERERDqHIZaIiIiIdA5DLBERERHpHIZYIiIiItI5DLFEREREpHMYYomIiIhI5zDEEhEREZHOYYglIiIiIp3DEEtEREREOochloiIiIh0DkMsEREREekchlgiIiIi0jkMsURERESkcxhiiYiIiEjnMMQSERERkc5hiCUiIiIincMQS0REREQ6hyGWiIiIiHQOQywRERER6RyGWCIiIiLSOV06ugNERESku0RRjoqKbNTWlsLQ0A4WFoEQBP2O7hZ1AgyxRERE1Crl5TIUFESjpuayokwicYCr6xrY2IR1YM+oM+B0AiIiItJYebkMp05FKAVYAKipKcGpUxEoL5d1UM+os2CIJSIiIo2IohwFBdEARHV7AQAFBTEQRXm79os6F4ZYIiIi0khFRbbKCKwyETU1l1BRkd1ufaLOhyGWiIiINFJbW6rVekStwRBLREREGjE0tNNqPaLWYIglIiIijVhYBEIicQAgNFFDgEQihYVFYHt2izoZhlgiIiLSiCDow9V1TeOr+/cCAFxdV3O9WGpTDLFERESkMRubMHh6pkAisVcql0gc4OmZwnViqc3xyw6IiIioVWxswmBtPZrf2EUdolUjsUlJSXB2doaRkRF8fHyQnd30EhoTJkyAIAgqm6enp6LO5s2b1daprq5uTfeIiIionQiCPiwth8LW9q+wtBzKAEvtRuMQu337dsTExGDevHk4fvw4AgMDMWLECBQXF6utv2bNGpSWliq2S5cuwcrKCq+++qpSPTMzM6V6paWlMDIyat1VEREREdFjTePpBKtWrcLEiRMxadIkAMDq1auRnp6O5ORkJCQkqNQ3NzeHubm54vXOnTtx69YtvPHGG0r1BEFA9+7dNe0OERFR25HLgexsoLQUsLMDAgMBfY40Ej0KNBqJra2txS+//IKQkBCl8pCQEBw+fLhFbXz22WcYNmwYHB0dlcpv374NR0dHODg4YOTIkTh+/Hiz7dTU1KCqqkppIyIi0hqZDHByAoKCgHHjGv7r5NRQTkQdTqMQe/36dcjlctja2iqV29raoqys7IHHl5aWYu/evYpR3EZ9+vTB5s2b8e2332Lbtm0wMjJCQEAAzp0712RbCQkJilFec3NzSKVSTS6FiIioaTIZEBEBXL7vq1VLShrKGWSJOlyrHuwSBOU14URRVClTZ/PmzbCwsMArr7yiVD548GCMHz8e3t7eCAwMxNdffw13d3esW7euybbi4uJQWVmp2C5dutSaSyEiIlImlwPR0YAoqu5rLIuJaahHRB1Gozmx1tbW0NfXVxl1vXbtmsro7P1EUcSmTZsQGRkJQ0PDZuvq6enhmWeeaXYkViKRQCKRtLzzRERELZGdrToCey9RBC5daqg3dGi7dYuIlGk0EmtoaAgfHx9kZGQolWdkZMDf37/ZY3/44QcUFBRg4sSJDzyPKIrIzc2FnR2/c5mIiNpZaal26xFRm9B4dYJZs2YhMjISvr6+8PPzwyeffILi4mJMmTIFQMOv+UtKSrB161al4z777DMMGjQI/fr1U2lz8eLFGDx4MNzc3FBVVYW1a9ciNzcX69evb+VlERERtVJLB1A40ELUoTQOsWPHjsWNGzcQHx+P0tJS9OvXD2lpaYrVBkpLS1XWjK2srERqairWrFmjrklUVFTgrbfeQllZGczNzTFgwABkZWVh4MCBrbgkIiKihxAYCDg4NDzEpW5erCA07A8MbP++EZGCIIrq/oTqnqqqKpibm6OyshJmZmYd3R0iItJljasTAMpBtvEh5pQUICys/ftFpOO0mddatToBERHRYy0srCGo2tsrlzs4MMASPSI0nk5ARETUKYSFAaNH8xu7iB5RDLFERERN0dfnMlpEjyhOJyAiIiIincMQS0REREQ6hyGWiIiIiHQOQywRERER6RyGWCIiIiLSOQyxRERERKRzGGKJiIiISOcwxBIRERGRzmGIJSIiIiKdwxBLRERERDqHIZaIiIiIdA5DLBERERHpHIZYIiIiItI5DLFEREREpHMYYomIiIhI5zDEEhEREZHOYYglIiIiIp3DEEtEREREOochloiIiIh0DkMsEREREekchlgiIiIi0jkMsURERESkcxhiiYiIiEjnMMQSERERkc5hiCUiIiIincMQS0REREQ6hyGWiIiIiHQOQywRERER6RyGWCIiIiLSOQyxRERERKRzGGKJiIiISOcwxBIRERGRzmGIJSIiIiKd06WjO9Ce6uvrUVtb29HdIA0YGBhAX1+/o7tBREREj5hOE2Jra2tRWFiI+vr6ju4KacjCwgLdu3eHIAgd3RUiIiJ6RHSKECuKIkpLS6Gvrw+pVAo9Pc6i0AWiKOKPP/7AtWvXAAB2dnYd3CMiIiJ6VHSKEHv37l388ccf6NGjB5544omO7g5pwNjYGABw7do1dOvWjVMLiIiICEAnebBLLpcDAAwNDTu4J9Qajf/wqKur6+CeEBER0aOiU4TYRpxTqZv4uREREdH9OlWIfVwJgoCdO3d2dDeIiIiI2g1D7COurKwM06dPh4uLCyQSCaRSKUaNGoUDBw60yfkOHjwIQRBQUVHRJu0DwK1btxAZGQlzc3OYm5sjMjKyTc9HREREj59O8WCXrioqKkJAQAAsLCyQmJgILy8v1NXVIT09HVFRUTh9+nRHd7FJoihCLpejSxfVW2zcuHG4fPky9u3bBwB46623EBkZiV27drV3N4mIiEhHcSRWA3I5cPAgsG1bw3//+7xYm5k6dSoEQcDRo0cREREBd3d3eHp6YtasWcjJyVF7jLqR1NzcXAiCgKKiIgDAxYsXMWrUKFhaWsLExASenp5IS0tDUVERgoKC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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 7 ---\n", - "Aktuelle Cluster: [[1], [4], [7], [8], [0, 5], [6, 9], [2, 3]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 0. 5. 0.0362049 2. ]\n", - " [ 4. 7. 0.05376004 2. ]\n", - " [ 6. 9. 0.08275424 2. ]\n", - " [ 3. 11. 0.10797673 3. ]\n", - " [ 1. 2. 0.12344616 2. ]\n", - " [10. 12. 0.13930155 4. ]\n", - " [13. 15. 0.23028243 7. ]\n", - " [14. 16. 0.37874766 9. ]\n", - " [ 8. 17. 0.47988728 10. ]]\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAIOCAYAAACvRlWNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB+P0lEQVR4nO3dfVxUVeIG8OeCMBDIWyAijLwIKKKQSSoQKRWgpdkPSHddKUssExUUcyXNF9JlJXV9SchMU9vWLBjdVBRJMnCVrAQzwRcURAkUX4C0eHG4vz9YZh1nQAYHcOT5fj73U5x77rnnzlzx8cy5ZwRRFEUQEREREekQvc7uABERERGRphhiiYiIiEjnMMQSERERkc5hiCUiIiIincMQS0REREQ6hyGWiIiIiHQOQywRERER6RyGWCIiIiLSOQyxRERERKRzGGKJ7rJlyxYIgoAff/xR7f7Ro0fDyclJqczJyQmTJk1q/861g0OHDkEQBKSkpNy37qRJk1SuXRuKi4shCAJWrFih9bbVqa6uxrJly+Dj4wMzMzNIJBI4OTnhjTfewPHjxxX1mu6F4uLidunHkSNHsHjxYlRWVrZL+52pve6VzvD999/j//7v/9C7d29IJBLY2trC19cXsbGxGrc1YsQIDBgw4IH60/Rn9tChQ4qytLQ0LF68WG39v/3tb9i1a5dGbTe3TZ069YH6TqRtDLFED2jnzp147733Orsb7e69997Dzp07O7sbD+T8+fMYNGgQ/v73vyMwMBDbt2/HgQMHsGTJEly5cgWDBw9GVVVVh/TlyJEjWLJkySMZYh8Ve/fuhZ+fH6qrq5GYmIgDBw5gzZo18Pf3x44dOzqlT08++SSOHj2KJ598UlGWlpaGJUuWqK2vSYhtavve7dVXXwUA/N///d8D959Im7p1dgeIdN2gQYO01pYoiqipqYGxsfEDtfPHH388cBv36tOnj1bb62hyuRz/93//h2vXruHo0aNKI2LDhw/Ha6+9hn379sHAwKATe/ngfv/9dzz22GOd3Y1HQmJiIpydnZGeno5u3f731+Wf/vQnJCYmdmhf6uvrIQgCzMzMMGzYsHY5h7q2RVHEX/7yFzg6OiIoKKhdzkvUVhyJJXpA6qYTVFdXY86cOXB2doahoSHs7e0RExOD27dvK9UTBAHTp0/HRx99BA8PD0gkEmzduhUAsGTJEgwdOhRWVlYwMzPDk08+iU2bNkEURZXzjx49GjKZDIMGDYKRkZFiVKa0tBRvvvkmpFIpDA0N0atXL4SHh+PKlStKbdTX12P+/Pno1asXzMzM8Pzzz+PMmTNKddR9RPzVV19h6NChMDc3x2OPPQYXFxe88cYbSnUqKysRGxsLFxcXSCQS9OjRAy+88AJOnz6t8lquWrUKzs7OMDU1ha+vL3JyclTq/Pjjj3jppZdgZWUFIyMjDBo0CF9++aVKvXvt2rULJ0+eRFxcXLMf6Y4aNarFANjc1JERI0ZgxIgRip8bGhqwdOlS9O3bF8bGxrCwsICXlxfWrFkDAFi8eDHeeecdAICzs7Pi49q7PyLesWMHfH19YWJiAlNTU4SEhCA3N1fpvJMmTYKpqSlOnjyJ4OBgdO/eHc899xwAICMjA2PHjoWDgwOMjIzg6uqKt956C9euXVNqY/HixRAEAadOncKf//xnmJubw9bWFm+88YbKqPT69evxzDPPoEePHjAxMcHAgQORmJiI+vr6Zl8zAHjuuefQr18/lXtXFEW4urrixRdfVJQlJyfD29sbpqam6N69O/r164d3331X6bjy8nK89dZbcHBwgKGhIZydnbFkyRLcuXOnxX5o6vr167C2tlYKsE309FT/+vzXv/4FX19fmJqawtTUFE888QQ2bdqkUu+HH35AQECA4s/M3//+dzQ0NCj2N32s/9lnnyE2Nhb29vaQSCQoLCxUmU4wadIkrF+/HgCUPvpvmqZz+/ZtbN26VVF+933aGt9++y0uXLiA119/Xe01E3UmjsQSqSGXy9X+hXjvX8Lq/P777xg+fDguX76Md999F15eXjh16hQWLlyIkydP4ptvvoEgCIr6u3btQnZ2NhYuXIiePXuiR48eABrnir711lvo3bs3ACAnJwczZsxAaWkpFi5cqHTO48ePo6CgAAsWLICzszNMTExQWlqKp556CvX19Yp+XL9+Henp6bh58yZsbW0Vx7/77rvw9/fHJ598gurqavz1r3/FmDFjUFBQAH19fbXXefToUYwfPx7jx4/H4sWLYWRkhIsXLyIzM1NR57fffsPTTz+N4uJi/PWvf8XQoUNx69YtZGVloaysDP369VPUXb9+Pfr164fVq1cDaJy+8MILL6CoqAjm5uYAGv9CHTlyJIYOHYqPPvoI5ubm+OKLLzB+/Hj8/vvvLc5NPnDgAADg5Zdfvs87+OASExOxePFiLFiwAM888wzq6+tx+vRpxdSByMhI3LhxA+vWrYNMJoOdnR0AoH///gAaPwJesGABXn/9dSxYsAB1dXX44IMPEBAQgGPHjinqAUBdXR1eeuklvPXWW5g3b57ivj1//jx8fX0RGRkJc3NzFBcXY9WqVXj66adx8uRJlRHnsLAwjB8/HpMnT1aEfQDYvHmzos758+cxYcIExT/OTpw4gWXLluH06dNK9e4VHR2NsWPH4uDBg3j++ecV5fv27cP58+exdu1aAMAXX3yBadOmYcaMGVixYgX09PRQWFiI/Px8xTHl5eUYMmQI9PT0sHDhQvTp0wdHjx7F0qVLUVxcjE8//VTj96s5vr6++OSTTzBz5kz85S9/wZNPPtnsSP3ChQvx/vvvIzQ0FLGxsTA3N8cvv/yCixcvKtUrLy/HX/7yF8TGxmLRokXYuXMn4uLi0KtXL8XH9k3i4uLg6+uLjz76CHp6eujRowfKy8uV6rz33nu4ffs2UlJScPToUUW5nZ0djh49imeffRaBgYGKKU9mZmYavQabNm2Cnp4eXn/9dY2OI+oQIhEpfPrppyKAFjdHR0elYxwdHcXXXntN8XNCQoKop6cn/vDDD0r1UlJSRABiWlqaogyAaG5uLt64caPFfsnlcrG+vl6Mj48XH3/8cbGhoUHp/Pr6+uKZM2eUjnnjjTdEAwMDMT8/v9l2v/32WxGA+MILLyiVf/nllyIA8ejRo4qy1157TenaV6xYIQIQKysrm20/Pj5eBCBmZGQ0W6eoqEgEIA4cOFC8c+eOovzYsWMiAHH79u2Ksn79+omDBg0S6+vrldoYPXq0aGdnJ8rl8mbPM3LkSBGAWFNT02yduzXdC0VFRYqye9/rJsOHDxeHDx+u1J8nnniixfY/+OADlfZFURRLSkrEbt26iTNmzFAq/+2338SePXuK48aNU5S99tprIgBx8+bNLZ6roaFBrK+vFy9evCgCEP/9738r9i1atEgEICYmJiodM23aNNHIyEjpXrtb0z25bds2UV9fX+kevvdekcvloouLizh27FilNkaNGiX26dNHcY7p06eLFhYWLV7LW2+9JZqamooXL15UKm+6H0+dOtXi8Zq4du2a+PTTTyv+7BsYGIh+fn5iQkKC+NtvvynqXbhwQdTX1xf/8pe/tNje8OHDRQDi999/r1Tev39/MSQkRPFz05/LZ555RqWNpn3ffvutoiwqKkps7q9zExMTtfdsa9y8eVM0MjJS6hvRw4SfDRCpsW3bNvzwww8q29NPP33fY/fs2YMBAwbgiSeewJ07dxRbSEiIykfGAPDss8/C0tJSpZ3MzEw8//zzMDc3h76+PgwMDLBw4UJcv34dV69eVarr5eUFd3d3pbJ9+/YhMDAQHh4e9+3zSy+9pNIeAJVRpLs99dRTAIBx48bhyy+/RGlpqUqdffv2wd3dXWn0rTkvvvii0qjvvX0oLCzE6dOn8Ze//AUAlF7bF154AWVlZSpTIDrLkCFDcOLECUybNg3p6emorq5u9bHp6em4c+cOXn31VaVrNDIywvDhw1XuH6BxFPVeV69exdSpUyGVStGtWzcYGBjA0dERAFBQUKBSX909UFNTo3Sv5ebm4qWXXsLjjz+uuCdfffVVyOVynD17ttlr0tPTw/Tp07Fnzx6UlJQAaBzV3b9/P6ZNm6b4ZGLIkCGorKzEn//8Z/z73/9WmfoANP75CgwMRK9evZRen1GjRgEAvvvuu2b70dDQoHSMXC5vti4APP7448jOzsYPP/yAv//97xg7dizOnj2LuLg4DBw4UNG/jIwMyOVyREVFtdgeAPTs2RNDhgxRKvPy8lL7Z03d+9qRPv/8c9TU1CAyMrJT+0HUHIZYIjU8PDzg4+OjsjV9rN2SK1eu4Oeff4aBgYHS1r17d4iiqPIXc9NHyXc7duwYgoODAQAbN27Ef/7zH/zwww+YP38+gMYHt+7XRkVFBRwcHFp1vY8//rjSzxKJRO157vbMM89g165disDl4OCAAQMGYPv27e3Sh6Z5vHPmzFF5badNmwYAakNPk6ZpGUVFRa3qz4OIi4vDihUrkJOTg1GjRuHxxx/Hc8891+zSbXdrus6nnnpK5Tp37Nihco2PPfaYykfEDQ0NCA4Ohkwmw9y5c3Hw4EEcO3ZMMcdY3ft6v9e/pKQEAQEBKC0txZo1axThrmk+Zkv3CgC88cYbMDY2xkcffQSgcfqIsbGx0hzqiIgIbN68GRcvXkRYWBh69OiBoUOHIiMjQ+n12b17t8pr4+npCaDleyA+Pl7pmNY+rOjj44O//vWv+Oqrr/Drr79i1qxZKC4uVjzcVVFRAQCtutfvfZ2Bxtda3eun7s91R9q0aRNsbGwwduzYTu0HUXM4J5ZIy6ytrWFsbNzsHEFra2uln++eH9vkiy++gIGBAfbs2QMjIyNFeXNL5ahrw8bGBpcvX9ag55obO3Ysxo4di9raWuTk5CAhIQETJkyAk5MTfH19tdqHptctLi4OoaGhauv07du32eNDQkLw8ccfY9euXZg3b16b+mBkZITa2lqV8mvXrim9r926dcPs2bMxe/ZsVFZW4ptvvsG7776LkJAQXLp0qcWHx5raSUlJUYyctkTde//LL7/gxIkT2LJlC1577TVFeWFh4X3ba86uXbtw+/ZtyGQypX7l5eW16nhzc3O89tpr+OSTTzBnzhx8+umnmDBhAiwsLJTqvf7663j99ddx+/ZtZGVlYdGiRRg9ejTOnj0LR0dHWFtbw8vLC8uWLVN7nl69ejXbhzfffBOjR49W/NwU1DVhYGCARYsW4R//+Ad++eUXAI1/1gDg8uXLkEqlGrfZHHXvbUfJzc1Fbm4uYmNjdX7FDnp0McQSadno0aPxt7/9DY8//jicnZ3b1IYgCOjWrZvSx+t//PEHPvvss1a3MWrUKHz22Wc4c+ZMi+FOGyQSCYYPHw4LCwukp6cjNzcXvr6+GDVqFBYuXIjMzEw8++yzD3SOvn37ws3NDSdOnMDf/vY3jY8fO3YsBg4ciISEBIwePVrtCgXp6emKp8bVcXJyws8//6xUdvbsWZw5c0blHydNLCwsEB4ejtLSUsTExKC4uBj9+/dvdrQ7JCQE3bp1w/nz59v8cXJT+Lk3pG3YsKFN7TXXpiiK2LhxY6vbmDlzJpKSkhAeHo7KykpMnz692bomJiYYNWoU6urq8PLLL+PUqVNwdHTE6NGjkZaWhj59+qidhtOSXr16tRhy71VWVqZ2NLRpOkZTW8HBwdDX10dycjJ8fX016pM23H0v3bu0XnOjvPfTtKrC5MmTH7yDRO2EIZZIy2JiYpCamopnnnkGs2bNgpeXFxoaGlBSUoIDBw4gNjYWQ4cObbGNF198EatWrcKECRPw5ptv4vr161ixYoVGI0fx8fHYt28fnnnmGbz77rsYOHAgKisrsX//fsyePVtpZYC2WLhwIS5fvoznnnsODg4OqKysxJo1a2BgYIDhw4crXosdO3Zg7NixmDdvHoYMGYI//vgD3333HUaPHo3AwECNzrlhwwaMGjUKISEhmDRpEuzt7XHjxg0UFBTg+PHj+Oqrr5o9Vl9fHzt37kRwcDB8fX3x9ttvIzAwECYmJrh48SJSUlKwe/du3Lx5s9k2IiIiMHHiREybNg1hYWG4ePEiEhMTFSNxTcaMGYMBAwbAx8cHNjY2uHjxIlavXg1HR0e4ubkBAAYOHAgAWLNmDV577TUYGBigb9++cHJyQnx8PObPn48LFy5g5MiRsLS0xJUrV3Ds2DGYmJg0u7B9k379+qFPnz6YN28eRFGElZUVdu/erfSxvKaCgoJgaGiIP//5z5g7dy5qamqQnJzc4ut1L3d3d4wcORL79u3D008/DW9vb6X9U6ZMgbGxMfz9/WFnZ4fy8nIkJCTA3NxcMQc7Pj4eGRkZ8PPzw8yZM9G3b1/U1NSguLgYaWlp+Oijj1o9heV+QkJC4ODggDFjxqBfv35oaGhAXl4eVq5cCVNTU0RHRwNo/MfNu+++i/fffx9//PGHYqmy/Px8XLt27b7v14NqupeWL1+OUaNGQV9fH15eXjA0NMTAgQNx6NAh7N69G3Z2dujevft9/1FbU1ODf/3rX/Dz82vVnHqiTtPJD5YRPVSanki/d2WBJi+++OJ9VycQRVG8deuWuGDBArFv376ioaGhaG5uLg4cOFCcNWuWWF5erqgHQIyKilJ7rs2bN4t9+/YVJRKJ6OLiIiYkJIibNm1S+8T8iy++qLaNS5cuiW+88YbYs2dP0cDAQOzVq5c4btw48cqVK6Io/u9J56+++krpuKYVAz799FNF2b1PnO/Zs0ccNWqUaG9vLxoaGoo9evQQX3jhBTE7O1uprZs3b4rR0dFi7969RQMDA7FHjx7iiy++KJ4+fVrpXB988IFK/wGIixYtUio7ceKEOG7cOLFHjx6igYGB2LNnT/HZZ58VP/roI7Wvwb0qKyvF999/X3zyySdFU1NT0cDAQOzdu7c4ceJE8T//+Y+inrrVCRoaGsTExETRxcVFNDIyEn18fMTMzEyV1QlWrlwp+vn5idbW1qKhoaHYu3dvcfLkyWJxcbFSX+Li4sRevXqJenp6Kk+c79q1SwwMDBTNzMxEiUQiOjo6iuHh4eI333yjqPPaa6+JJiYmaq8zPz9fDAoKErt37y5aWlqKr7zyilhSUqLymjatTlBRUaF0vLrr3717t+jt7S0aGRmJ9vb24jvvvCPu27dPpe/33it327JliwhA/OKLL1T2bd26VQwMDBRtbW1FQ0NDxf36888/K9WrqKgQZ86cKTo7O4sGBgailZWVOHjwYHH+/PnirVu31J63LXbs2CFOmDBBdHNzU7pXIiIi1K76sW3bNvGpp54SjYyMRFNTU3HQoEFKf4aGDx8uenp6qhx37+vV3J/Lu/fd/XrX1taKkZGRoo2NjSgIgtL7lpeXJ/r7+4uPPfaYCEDpPm3O559/3qpVL4g6myCKrVj4koiISAvCwsKQk5OD4uJizrUkogfC6QRERNSuamtrcfz4cRw7dgw7d+7EqlWrGGCJ6IFxJJaIiNpVcXExnJ2dYWZmhgkTJuDDDz9s9pvgiIhaiyGWiIiIiHQOv+yAiIiIiHQOQywRERER6RyGWCIiIiLSOY/M6gQNDQ349ddf0b179079qj4iIiIiUk8URfz222/o1asX9PQebCz1kQmxv/76q1a/s5qIiIiI2selS5ce+Nv1HpkQ2717dwCNL4qZmVkn94aIiIiI7lVdXQ2pVKrIbQ/ikQmxTVMIzMzMGGKJiIiIHmLamPrJB7uIiIiISOcwxBIRERGRzmGIJSIiIiKdwxBLRERERDqHIZaIiIiIdA5DLBERERHpHIZYIiIiItI5DLFEREREpHMYYomIiIhI5zDEEhEREZHOYYglIiIiIp3DEEtEREREOqdNITYpKQnOzs4wMjLC4MGDkZ2d3WL99evXw8PDA8bGxujbty+2bdumUic1NRX9+/eHRCJB//79sXPnzrZ0jYiIiIi6AI1D7I4dOxATE4P58+cjNzcXAQEBGDVqFEpKStTWT05ORlxcHBYvXoxTp05hyZIliIqKwu7duxV1jh49ivHjxyMiIgInTpxAREQExo0bh++//77tV9aO5KKIQzdvYvuVKzh08ybkotjZXSIiIiLqUgRR1CyBDR06FE8++SSSk5MVZR4eHnj55ZeRkJCgUt/Pzw/+/v744IMPFGUxMTH48ccfcfjwYQDA+PHjUV1djX379inqjBw5EpaWlti+fXur+lVdXQ1zc3NUVVXBzMxMk0vSiKyiAtGFhbhcW6soc5BIsMbVFaE2Nu12XiIiIiJdp828ptFIbF1dHX766ScEBwcrlQcHB+PIkSNqj6mtrYWRkZFSmbGxMY4dO4b6+noAjSOx97YZEhLSbJtN7VZXVytt7U1WUYHwU6eUAiwAlNbWIvzUKcgqKtq9D0RERESkYYi9du0a5HI5bG1tlcptbW1RXl6u9piQkBB88skn+OmnnyCKIn788Uds3rwZ9fX1uHbtGgCgvLxcozYBICEhAebm5opNKpVqcikak4siogsLoW7YuqksprCQUwuIiIiIOkCbHuwSBEHpZ1EUVcqavPfeexg1ahSGDRsGAwMDjB07FpMmTQIA6Ovrt6lNAIiLi0NVVZViu3TpUlsupdWyKytVRmDvJgK4VFuL7MrKdu0HEREREWkYYq2traGvr68yQnr16lWVkdQmxsbG2Lx5M37//XcUFxejpKQETk5O6N69O6ytrQEAPXv21KhNAJBIJDAzM1Pa2lNZXZ1W6xERERFR22kUYg0NDTF48GBkZGQolWdkZMDPz6/FYw0MDODg4AB9fX188cUXGD16NPT0Gk/v6+ur0uaBAwfu22ZHsjM01Go9IiIiImq7bpoeMHv2bERERMDHxwe+vr74+OOPUVJSgqlTpwJo/Ji/tLRUsRbs2bNncezYMQwdOhQ3b97EqlWr8Msvv2Dr1q2KNqOjo/HMM89g+fLlGDt2LP7973/jm2++Uaxe8DAIsLCAg0SC0tpatfNiBTSuUhBgYdHBPSMiIiLqejQOsePHj8f169cRHx+PsrIyDBgwAGlpaXB0dAQAlJWVKa0ZK5fLsXLlSpw5cwYGBgYIDAzEkSNH4OTkpKjj5+eHL774AgsWLMB7772HPn36YMeOHRg6dOiDX6GW6AsC1ri6IvzUKQiAUpBtmrm72tUV+i3M4yUiIiIi7dB4ndiHVWeuEyuVSLCa68QSERERtUibeU3jkdiuLtTGBmOtrZFdWYmyujrYGRoiwMKCI7BEREREHYghtg30BQEjLC07uxtEREREXVab1oklIiIiIupMDLFEREREpHMYYomIiIhI5zDEEhEREZHOYYglIiIiIp3DEEtEREREOochloiIiIh0DkMsEREREekchlgiIiIi0jkMsURERESkcxhiiYiIiEjnMMQSERERkc5hiCUiIiIincMQS0REREQ6hyGWiIiIiHQOQywRERER6RyGWCIiIiLSOQyxRERERKRzGGKJiIiISOcwxBIRERGRzmGIJSIiIiKdwxBLRERERDqHIZaIiIiIdA5DLBERERHpHIZYIiIiItI53Tq7A0RERPRwE+UiKrMrUVdWB0M7Q1gEWEDQFzq7W9TFMcQSERG1M10OgRWyChRGF6L2cq2iTOIggesaV9iE2nRiz6irY4glIiJqR7ocAitkFTgVfgoQlctrS2txKvwUPFM8H/proEcX58QSERG1k6YQeHeABf4XAitkFZ3Us/sT5SIKowtVAmzjzsb/FMYUQpSrq0DU/hhiiYiI2oGuh8DK7EqV8K1EBGov1aIyu7LD+kR0N4ZYIiKidqDrIbCurE6r9Yi0jSGWiIioHeh6CDS0M9RqPSJtY4glIiJqB7oeAi0CLCBxkADNLaIgABKpBBYBFh3ZLSIFhlgiIqJ2oOshUNAX4LrG9b8/3Luz8T+uq111ZqkwevQwxBIREbWDRyEE2oTawDPFExJ7iVK5xEHC5bWo0wmiKD6cj0VqqLq6Gubm5qiqqoKZmVlnd4eIiAhAM+vESiVwXf3wrxPbRJe/rIEeLtrMa/yyAyIionZkE2oD67HWOh0CBX0BliMsO7sbREoYYomIiNoZQyCR9nFOLBERERHpHIZYIiIiItI5DLFEREREpHMYYomIiIhI5zDEEhEREZHOYYglIiIiIp3DEEtEREREOochloiIiIh0DkMsEREREemcNoXYpKQkODs7w8jICIMHD0Z2dnaL9T///HN4e3vjscceg52dHV5//XVcv35dsX/Lli0QBEFlq6mpaUv3iIiIiOgRp3GI3bFjB2JiYjB//nzk5uYiICAAo0aNQklJidr6hw8fxquvvorJkyfj1KlT+Oqrr/DDDz8gMjJSqZ6ZmRnKysqUNiMjo7ZdFRERERE90jQOsatWrcLkyZMRGRkJDw8PrF69GlKpFMnJyWrr5+TkwMnJCTNnzoSzszOefvppvPXWW/jxxx+V6gmCgJ49eyptRERERETqaBRi6+rq8NNPPyE4OFipPDg4GEeOHFF7jJ+fHy5fvoy0tDSIoogrV64gJSUFL774olK9W7duwdHREQ4ODhg9ejRyc3Nb7EttbS2qq6uVNiIiIiLqGjQKsdeuXYNcLoetra1Sua2tLcrLy9Ue4+fnh88//xzjx4+HoaEhevbsCQsLC6xbt05Rp1+/ftiyZQu+/vprbN++HUZGRvD398e5c+ea7UtCQgLMzc0Vm1Qq1eRSiIiIiEiHtenBLkEQlH4WRVGlrEl+fj5mzpyJhQsX4qeffsL+/ftRVFSEqVOnKuoMGzYMEydOhLe3NwICAvDll1/C3d1dKejeKy4uDlVVVYrt0qVLbbkUIiIiItJB3TSpbG1tDX19fZVR16tXr6qMzjZJSEiAv78/3nnnHQCAl5cXTExMEBAQgKVLl8LOzk7lGD09PTz11FMtjsRKJBJIJBJNuk9EREREjwiNRmINDQ0xePBgZGRkKJVnZGTAz89P7TG///479PSUT6Ovrw+gcQRXHVEUkZeXpzbgEhERERFpNBILALNnz0ZERAR8fHzg6+uLjz/+GCUlJYrpAXFxcSgtLcW2bdsAAGPGjMGUKVOQnJyMkJAQlJWVISYmBkOGDEGvXr0AAEuWLMGwYcPg5uaG6upqrF27Fnl5eVi/fr0WL5WIiIiIHhUah9jx48fj+vXriI+PR1lZGQYMGIC0tDQ4OjoCAMrKypTWjJ00aRJ+++03fPjhh4iNjYWFhQWeffZZLF++XFGnsrISb775JsrLy2Fubo5BgwYhKysLQ4YM0cIlEhEREdGjRhCb+0xfx1RXV8Pc3BxVVVUwMzPr7O4QERER0T20mdfatDoBEREREVFnYoglIiIiIp3DEEtEREREOochloiIiIh0DkMsEREREekchlgiIiIi0jkMsURERESkcxhiiYiIiEjnMMQSERERkc5hiCUiIiIincMQS0REREQ6hyGWiIiIiHQOQywRERER6RyGWCIiIiLSOQyxRERERKRzGGKJiIiISOcwxBIRERGRzmGIJSIiIiKdwxBLRERERDqHIZaIiIiIdA5DLBERERHpHIZYIiIiItI5DLFEREREpHMYYomIiIhI5zDEEhEREZHOYYglIiIiIp3DEEtEREREOochloiIiIh0DkMsEREREekchlgiIiIi0jkMsURERESkcxhiiYiIiEjnMMQSERERkc7p1tkdICIiIqJGoihHZWU26urKYGhoBwuLAAiCfmd366HEEEtERET0EKiokKGwMBq1tZcVZRKJA1xd18DGJrQTe/Zw4nQCIiIiok5WUSHDqVPhSgEWAGprS3HqVDgqKmSd1LOHF0MsERERUScSRTkKC6MBiOr2AgAKC2MgivIO7dfDjiGWiIiIqBNVVmarjMAqE1FbewmVldkd1iddwBBLRERE1Inq6sq0Wq+rYIglIiIi6kSGhnZarddVMMQSERERdSILiwBIJA4AhGZqCJBIpLCwCOjIbj30GGKJiIiIOpEg6MPVdU3TT/fu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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 8 ---\n", - "Aktuelle Cluster: [[1], [4], [7], [8], [0, 5], [6, 9], [2, 3]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 0. 5. 0.0362049 2. ]\n", - " [ 4. 7. 0.05376004 2. ]\n", - " [ 6. 9. 0.08275424 2. ]\n", - " [ 3. 11. 0.10797673 3. ]\n", - " [ 1. 2. 0.12344616 2. ]\n", - " [10. 12. 0.13930155 4. ]\n", - " [13. 15. 0.23028243 7. ]\n", - " [14. 16. 0.37874766 9. ]\n", - " [ 8. 17. 0.47988728 10. ]]\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAIOCAYAAACvRlWNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB+4klEQVR4nO3de1hU1eI+8HeDMBDILRARRi4CiiikkApESqVoafYD0nM8UpZaJioo5lfSvKAejqTmJSEzTe10zILRk4oiSQYeJSvFTPCCgigNihcgLS4O+/cHhzmOMyCDAzjyfp5nPzVrr7322jNbfF2svUYQRVEEEREREZEeMWjvDhARERERaYshloiIiIj0DkMsEREREekdhlgiIiIi0jsMsURERESkdxhiiYiIiEjvMMQSERERkd5hiCUiIiIivcMQS0RERER6hyGW6B5btmyBIAj46aefNO4fOXIkXFxcVMpcXFwwYcKE1u9cKzh06BAEQUBKSsoD606YMEHt2nWhqKgIgiBgxYoVOm9bk8rKSixbtgz+/v6wsLCARCKBi4sL3nzzTRw/flxZr+FeKCoqapV+HDlyBIsWLUJ5eXmrtN+eWuteaQ8//PAD/t//+3/o3r07JBIJ7O3tERAQgNjYWK3bGjJkCPr06fNQ/Wn4M3vo0CFlWVpaGhYtWqSx/t///nfs2rWr2e1XVlZi3rx58PT0xBNPPAFHR0e8+uqrOH369EP1m6g1MMQSPaSdO3fi/fffb+9utLr3338fO3fubO9uPJQLFy6gX79++Mc//oGQkBBs374dBw4cwOLFi3H16lX4+fmhoqKiTfpy5MgRLF68+LEMsY+LvXv3IjAwEJWVlUhMTMSBAwewZs0aBAUFYceOHe3Sp/79++Po0aPo37+/siwtLQ2LFy/WWF/bEDtq1CisXr0akydPxt69e/GPf/wDubm5CAgIwKVLlx62+0Q61am9O0Ck7/r166eztkRRRFVVFUxNTR+qnT///POh27hfjx49dNpeW1MoFPh//+//4fr16zh69KjKiNjgwYPx+uuvY9++fTAyMmrHXj68P/74A0888UR7d+OxkJiYCFdXV6Snp6NTp//9dfmXv/wFiYmJbdqX2tpaCIIACwsLDBo0qFXOUVBQgKysLMyfPx/vvvuustzd3R2BgYGQyWSYOXNmq5ybqCU4Ekv0kDRNJ6isrMTs2bPh6uoKY2NjODo6IiYmBnfu3FGpJwgCpk2bho8//hheXl6QSCTYunUrAGDx4sUYOHAgbGxsYGFhgf79+2PTpk0QRVHt/CNHjoRMJkO/fv1gYmKiHJUpKSnBW2+9BalUCmNjY3Tr1g0RERG4evWqShu1tbWYN28eunXrBgsLC7zwwgs4e/asSh1NvyL++uuvMXDgQFhaWuKJJ56Am5sb3nzzTZU65eXliI2NhZubGyQSCbp06YIXX3wRZ86cUXsvV61aBVdXV5ibmyMgIAA5OTlqdX766Se8/PLLsLGxgYmJCfr164evvvpKrd79du3ahVOnTiEuLq7RX+mOGDGiyQDY2NSRIUOGYMiQIcrXdXV1WLp0KXr27AlTU1NYWVnBx8cHa9asAQAsWrRIGRJcXV0hCILar4h37NiBgIAAmJmZwdzcHKGhoThx4oTKeSdMmABzc3OcOnUKw4YNQ+fOnfH8888DADIyMjB69Gg4OTnBxMQE7u7uePvtt3H9+nWVNhYtWgRBEHD69Gn89a9/haWlJezt7fHmm2+qjUqvX78ezz77LLp06QIzMzP07dsXiYmJqK2tbfQ9A4Dnn38evXr1Urt3RVGEu7s7XnrpJWVZcnIyfH19YW5ujs6dO6NXr1547733VI4rLS3F22+/DScnJxgbG8PV1RWLFy/G3bt3m+yHtm7cuAFbW1uVANvAwED9r89//etfCAgIgLm5OczNzfHUU09h06ZNavV+/PFHBAcHK//M/OMf/0BdXZ1yf8OUgc8//xyxsbFwdHSERCJBQUGB2nSCCRMmYP369QCgvI8apsEIgoA7d+5g69atyvJ779P7NfwDztLSUqXcysoKAGBiYtLk+0XU1jgSS6SBQqHQ+Bfi/X8Ja/LHH39g8ODBuHLlCt577z34+Pjg9OnTWLBgAU6dOoVvv/0WgiAo6+/atQvZ2dlYsGABunbtii5dugConyv69ttvo3v37gCAnJwcTJ8+HSUlJViwYIHKOY8fP478/HzMnz8frq6uMDMzQ0lJCZ5++mnU1tYq+3Hjxg2kp6fj1q1bsLe3Vx7/3nvvISgoCJ9++ikqKyvxf//3fxg1ahTy8/NhaGio8TqPHj2KsWPHYuzYsVi0aBFMTExw6dIlZGZmKuv8/vvveOaZZ1BUVIT/+7//w8CBA3H79m1kZWVBLpejV69eyrrr169Hr169sHr1agD10xdefPFFFBYWKv9S/e677zB8+HAMHDgQH3/8MSwtLfHll19i7Nix+OOPP5qcm3zgwAEAwCuvvPKAT/DhJSYmYtGiRZg/fz6effZZ1NbW4syZM8qpA5MmTcLNmzexbt06yGQyODg4AAB69+4NoP5XwPPnz8cbb7yB+fPno6amBh988AGCg4Nx7NgxZT0AqKmpwcsvv4y3334bc+fOVd63Fy5cQEBAACZNmgRLS0sUFRVh1apVeOaZZ3Dq1Cm1Eefw8HCMHTsWEydOVIZ9ANi8ebOyzoULFzBu3DjlP85OnjyJZcuW4cyZMyr17hcdHY3Ro0fj4MGDeOGFF5Tl+/btw4ULF7B27VoAwJdffompU6di+vTpWLFiBQwMDFBQUIC8vDzlMaWlpRgwYAAMDAywYMEC9OjRA0ePHsXSpUtRVFSEzz77TOvPqzEBAQH49NNPMWPGDPztb39D//79Gx2pX7BgAZYsWYKwsDDExsbC0tISv/76q9qv4EtLS/G3v/0NsbGxWLhwIXbu3Im4uDh069YNr732mkrduLg4BAQE4OOPP4aBgQG6dOmC0tJSlTrvv/8+7ty5g5SUFBw9elRZ7uDggKNHj+K5555DSEiIcsqThYVFo9fr7OyM0aNH48MPP4Sfnx+efvppXLlyBTNmzED37t3xl7/8Rav3j6jViUSk9Nlnn4kAmtycnZ1VjnF2dhZff/115euEhATRwMBA/PHHH1XqpaSkiADEtLQ0ZRkA0dLSUrx582aT/VIoFGJtba0YHx8vPvnkk2JdXZ3K+Q0NDcWzZ8+qHPPmm2+KRkZGYl5eXqPtfvfddyIA8cUXX1Qp/+qrr0QA4tGjR5Vlr7/+usq1r1ixQgQglpeXN9p+fHy8CEDMyMhotE5hYaEIQOzbt6949+5dZfmxY8dEAOL27duVZb169RL79esn1tbWqrQxcuRI0cHBQVQoFI2eZ/jw4SIAsaqqqtE692q4FwoLC5Vl93/WDQYPHiwOHjxYpT9PPfVUk+1/8MEHau2LoigWFxeLnTp1EqdPn65S/vvvv4tdu3YVx4wZoyx7/fXXRQDi5s2bmzxXXV2dWFtbK166dEkEIP773/9W7lu4cKEIQExMTFQ5ZurUqaKJiYnKvXavhnty27ZtoqGhoco9fP+9olAoRDc3N3H06NEqbYwYMULs0aOH8hzTpk0TraysmryWt99+WzQ3NxcvXbqkUt5wP54+fbrJ47Vx/fp18ZlnnlH+2TcyMhIDAwPFhIQE8ffff1fWu3jxomhoaCj+7W9/a7K9wYMHiwDEH374QaW8d+/eYmhoqPJ1w5/LZ599Vq2Nhn3fffedsiwqKkps7K9zMzMzjfdsY2pqasTJkyer/Mzz8fFRu0+JHgWcTkCkwbZt2/Djjz+qbc8888wDj92zZw/69OmDp556Cnfv3lVuoaGhar8yBoDnnnsO1tbWau1kZmbihRdegKWlJQwNDWFkZIQFCxbgxo0buHbtmkpdHx8feHp6qpTt27cPISEh8PLyemCfX375ZbX2ADT5IMfTTz8NABgzZgy++uorlJSUqNXZt28fPD09VUbfGvPSSy+pjPre34eCggKcOXMGf/vb3wBA5b198cUXIZfL1aZAtJcBAwbg5MmTmDp1KtLT01FZWdnsY9PT03H37l289tprKtdoYmKCwYMHq90/QP0o6v2uXbuGKVOmQCqVolOnTjAyMoKzszMAID8/X62+pnugqqpK5V47ceIEXn75ZTz55JPKe/K1116DQqHAuXPnGr0mAwMDTJs2DXv27EFxcTGA+lHd/fv3Y+rUqcrfTAwYMADl5eX461//in//+99qUx+A+j9fISEh6Natm8r7M2LECADA999/32g/6urqVI5RKBSN1gWAJ598EtnZ2fjxxx/xj3/8A6NHj8a5c+cQFxeHvn37KvuXkZEBhUKBqKioJtsDgK5du2LAgAEqZT4+Phr/rGn6XFvbO++8g9TUVHz44Yf4/vvvsWPHDhgbG+O5557jg130yGGIJdLAy8sL/v7+atv9c8U0uXr1Kn755RcYGRmpbJ07d4Yoimp/MTf8Kvlex44dw7BhwwAAGzduxH/+8x/8+OOPmDdvHoD6B7ce1EZZWRmcnJyadb1PPvmkymuJRKLxPPd69tlnsWvXLmXgcnJyQp8+fbB9+/ZW6UPDPN7Zs2ervbdTp04FAI2hp0HDtIzCwsJm9edhxMXFYcWKFcjJycGIESPw5JNP4vnnn2906bZ7NVzn008/rXadO3bsULvGJ554Qu1XxHV1dRg2bBhkMhnmzJmDgwcP4tixY8o5xpo+1we9/8XFxQgODkZJSQnWrFmjDHcN8zGbulcA4M0334SpqSk+/vhjAPXTR0xNTVXmUEdGRmLz5s24dOkSwsPD0aVLFwwcOBAZGRkq78/u3bvV3htvb28ATd8D8fHxKsc092FFf39//N///R++/vpr/Pbbb5g5cyaKioqUD3eVlZUBQLPu9fvfZ6D+vdb0/mn6c92a9u/fj02bNmHDhg2IiYnBs88+izFjxiAjIwM3b95sdBkvovbCObFEOmZrawtTU9NG5wja2tqqvL53fmyDL7/8EkZGRtizZ4/KwxSNLZWjqQ07OztcuXJFi55rb/To0Rg9ejSqq6uRk5ODhIQEjBs3Di4uLggICNBpHxret7i4OISFhWms07Nnz0aPDw0NxSeffIJdu3Zh7ty5LeqDiYkJqqur1cqvX7+u8rl26tQJs2bNwqxZs1BeXo5vv/0W7733HkJDQ3H58uUmHx5raCclJUU5ctoUTZ/9r7/+ipMnT2LLli14/fXXleUFBQUPbK8xu3btwp07dyCTyVT6lZub26zjLS0t8frrr+PTTz/F7Nmz8dlnn2HcuHHKh4YavPHGG3jjjTdw584dZGVlYeHChRg5ciTOnTsHZ2dn2NrawsfHB8uWLdN4nm7dujXah7feegsjR45Uvm4I6towMjLCwoUL8eGHH+LXX38FUP9nDQCuXLkCqVSqdZuN0fTZtqaGz7LhtywNrKys4O7urrxeokcFQyyRjo0cORJ///vf8eSTT8LV1bVFbQiCgE6dOqn8ev3PP//E559/3uw2RowYgc8//xxnz55tMtzpgkQiweDBg2FlZYX09HScOHECAQEBGDFiBBYsWIDMzEw899xzD3WOnj17wsPDAydPnsTf//53rY8fPXo0+vbti4SEBIwcOVLjCgXp6enKp8Y1cXFxwS+//KJSdu7cOZw9e1btHycNrKysEBERgZKSEsTExKCoqAi9e/dudLQ7NDQUnTp1woULF1r86+SG8HN/SNuwYUOL2musTVEUsXHjxma3MWPGDCQlJSEiIgLl5eWYNm1ao3XNzMwwYsQI1NTU4JVXXsHp06fh7OyMkSNHIi0tDT169NA4Dacp3bp1azLk3k8ul2scDW2YjtHQ1rBhw2BoaIjk5GQEBARo1SdduPdeun9pvcZGeTVpuJ6cnByVf6jcuHED586dU658QfSoYIgl0rGYmBikpqbi2WefxcyZM+Hj44O6ujoUFxfjwIEDiI2NxcCBA5ts46WXXsKqVaswbtw4vPXWW7hx4wZWrFih1chRfHw89u3bh2effRbvvfce+vbti/Lycuzfvx+zZs1SWRmgJRYsWIArV67g+eefh5OTE8rLy7FmzRoYGRlh8ODByvdix44dGD16NObOnYsBAwbgzz//xPfff4+RI0ciJCREq3Nu2LABI0aMQGhoKCZMmABHR0fcvHkT+fn5OH78OL7++utGjzU0NMTOnTsxbNgwBAQE4J133kFISAjMzMxw6dIlpKSkYPfu3bh161ajbURGRmL8+PGYOnUqwsPDcenSJSQmJipH4hqMGjUKffr0gb+/P+zs7HDp0iWsXr0azs7O8PDwAAD07dsXALBmzRq8/vrrMDIyQs+ePeHi4oL4+HjMmzcPFy9exPDhw2FtbY2rV6/i2LFjMDMza3Rh+wa9evVCjx49MHfuXIiiCBsbG+zevVvl1/LaGjp0KIyNjfHXv/4Vc+bMQVVVFZKTk5t8v+7n6emJ4cOHY9++fXjmmWfg6+ursn/y5MkwNTVFUFAQHBwcUFpaioSEBFhaWipHB+Pj45GRkYHAwEDMmDEDPXv2RFVVFYqKipCWloaPP/642VNYHiQ0NBROTk4YNWoUevXqhbq6OuTm5mLlypUwNzdHdHQ0gPp/3Lz33ntYsmQJ/vzzT+VSZXl5ebh+/foDP6+H1XAvLV++HCNGjIChoSF8fHxgbGyMvn374tChQ9i9ezccHBzQuXPnRv9RGxYWhgULFuCdd97BlStX0L9/f8jlcnzwwQf4448/lNdL9Mho5wfLiB4pDU+k37+yQIOXXnrpgasTiKIo3r59W5w/f77Ys2dP0djYWLS0tBT79u0rzpw5UywtLVXWAyBGRUVpPNfmzZvFnj17ihKJRHRzcxMTEhLETZs2aXxi/qWXXtLYxuXLl8U333xT7Nq1q2hkZCR269ZNHDNmjHj16lVRFP/3pPPXX3+tclzDigGfffaZsuz+J8737NkjjhgxQnR0dBSNjY3FLl26iC+++KKYnZ2t0tatW7fE6OhosXv37qKRkZHYpUsX8aWXXhLPnDmjcq4PPvhArf8AxIULF6qUnTx5UhwzZozYpUsX0cjISOzatav43HPPiR9//LHG9+B+5eXl4pIlS8T+/fuL5ubmopGRkdi9e3dx/Pjx4n/+8x9lPU2rE9TV1YmJiYmim5ubaGJiIvr7+4uZmZlqqxOsXLlSDAwMFG1tbUVjY2Oxe/fu4sSJE8WioiKVvsTFxYndunUTDQwM1J4437VrlxgSEiJaWFiIEolEdHZ2FiMiIsRvv/1WWef1118XzczMNF5nXl6eOHToULFz586itbW1+Oqrr4rFxcVq72nD6gRlZWUqx2u6/t27d4u+vr6iiYmJ6OjoKL777rvivn371Pp+/71yry1btogAxC+//FJt39atW8WQkBDR3t5eNDY2Vt6vv/zyi0q9srIyccaMGaKrq6toZGQk2tjYiH5+fuK8efPE27dvazxvS+zYsUMcN26c6OHhoXKvREZGalz1Y9u2beLTTz8tmpiYiObm5mK/fv1U/gwNHjxY9Pb2Vjvu/versT+X9+679/2urq4WJ02aJNrZ2YmCIKh8brm5uWJQUJD4xBNPiABU7lNN5HK5OG3aNNHd3V00MTERu3XrJr700ksqK5UQPSoEUWzGwpdEREQ6EB4ejpycHBQVFen9t6MRUfvidAIiImpV1dXVOH78OI4dO4adO3di1apVDLBE9NA4EktERK2qqKgIrq6usLCwwLhx4/DRRx81+k1wRETNxRBLRERERHqHX3ZARERERHqHIZaIiIiI9A5DLBERERHpncdmdYK6ujr89ttv6Ny5c5t/VR8RERERPZgoivj999/RrVs3GBg83FjqYxNif/vtN51+ZzURERERtY7Lly8/9LfrPTYhtnPnzgDq3xQLC4t27g0RERER3a+yshJSqVSZ2x7GYxNiG6YQWFhYMMQSERERPcJ0MfWTD3YRERERkd5hiCUiIiIivcMQS0RERER6hyGWiIiIiPQOQywRERER6R2GWCIiIiLSOwyxRERERKR3GGKJiIiISO8wxBIRERGR3mGIJSIiIiK9wxBLRERERHqHIZaIiIiI9E6LQmxSUhJcXV1hYmICPz8/ZGdnN1l//fr18PLygqmpKXr27Ilt27ap1UlNTUXv3r0hkUjQu3dv7Ny5syVdIyIiIqIOQOsQu2PHDsTExGDevHk4ceIEgoODMWLECBQXF2usn5ycjLi4OCxatAinT5/G4sWLERUVhd27dyvrHD16FGPHjkVkZCROnjyJyMhIjBkzBj/88EPLr6wVKUQRh27dwvarV3Ho1i0oRLG9u0RERETUoQiiqF0CGzhwIPr374/k5GRlmZeXF1555RUkJCSo1Q8MDERQUBA++OADZVlMTAx+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rKxU2YiIiIioY9AqxF6/fh0KhQL29vYq5fb29igtLdV4TGBgIL744guMHTsWxsbG6Nq1K6ysrLBu3TplnV69emHLli345ptvsH37dpiYmCAoKAjnz59vtC8JCQmwtLRUblKpVJtLISIiIiI91qIHuwRBUHktiqJaWYO8vDzMmDEDCxYswM8//4z9+/ejsLAQU6ZMUdYZNGgQxo8fD19fXwQHB+Orr76Cp6enStC9X1xcHCoqKpTb5cuXW3IpRERERKSHOmlT2dbWFoaGhmqjrteuXVMbnW2QkJCAoKAgvPvuuwAAHx8fmJmZITg4GEuXLoWDg4PaMQYGBnj66aebHImVSCSQSCTadJ+IiIiIHhNajcQaGxvDz88PGRkZKuUZGRkIDAzUeMwff/wBAwPV0xgaGgKoH8HVRBRF5Obmagy4RERERERajcQCwKxZsxAZGQl/f38EBATgk08+QXFxsXJ6QFxcHEpKSrBt2zYAwKhRozB58mQkJycjNDQUcrkcMTExGDBgALp16wYAWLx4MQYNGgQPDw9UVlZi7dq1yM3Nxfr163V4qURERET0uNA6xI4dOxY3btxAfHw85HI5+vTpg7S0NDg7OwMA5HK5ypqxEyZMwO+//46PPvoIsbGxsLKywnPPPYfly5cr65SXl+Ott95CaWkpLC0t0a9fP2RlZWHAgAE6uEQiIiIietwIYmO/09czlZWVsLS0REVFBSwsLNq7O0RERER0H13mtRatTkBERERE1J4YYomIiIhI7zDEEhEREZHeYYglIiIiIr3DEEtEREREeochloiIiIj0DkMsEREREekdhlgiIiIi0jsMsURERESkdxhiiYiIiEjvMMQSERERkd5hiCUiIiIivcMQS0RERER6hyGWiIiIiPQOQywRERER6R2GWCIiIiLSOwyxRERERKR3GGKJiIiISO8wxBIRERGR3mGIJSIiIiK9wxBLRERERHqHIZaIiIiI9A5DLBERERHpHYZYIiIiItI7DLFEREREpHcYYomIiIhI7zDEEhEREZHeYYglIiIiIr3DEEtEREREeochloiIiIj0DkMsEREREekdhlgiIiIi0jsMsURERESkdzq1dweIiIiIqJ4oKlBeno2aGjmMjR1gZRUMQTBs7249khhiiYiIiB4BZWUyFBREo7r6irJMInGCu/sa2NmFtWPPHk2cTkBERETUzsrKZDh9OkIlwAJAdXUJTp+OQFmZrJ169uhiiCUiIiJqR6KoQEFBNABR014AQEFBDERR0ab9etQxxBIRERG1o/LybLURWFUiqqsvo7w8u836pA8YYomIiIjaUU2NXKf1OgqGWCIiIqJ2ZGzsoNN6HQVDLBEREVE7srIKhkTiBEBopIYAiUQKK6vgtuzWI48hloiIiKgdCYIh3N3XNLy6fy8AwN19NdeLvQ9DLBEREVE7s7MLg7d3CiQSR5VyicQJ3t4pXCdWA37ZAREREdEjwM4uDLa2o/mNXc3EEEtERET0iBAEQ1hbD2nvbugFTicgIiIiIr3DEEtEREREeochloiIiIj0TotCbFJSElxdXWFiYgI/Pz9kZzf9NWhffPEFfH198cQTT8DBwQFvvPEGbty4oVInNTUVvXv3hkQiQe/evbFz586WdI2IiIiIOgCtQ+yOHTsQExODefPm4cSJEwgODsaIESNQXFyssf7hw4fx2muvYeLEiTh9+jS+/vpr/Pjjj5g0aZKyztGjRzF27FhERkbi5MmTiIyMxJgxY/DDDz+0/MqIiIiI6LEliKIoanPAwIED0b9/fyQnJyvLvLy88MorryAhIUGt/ooVK5CcnIwLFy4oy9atW4fExERcvnwZADB27FhUVlZi3759yjrDhw+HtbU1tm/f3qx+VVZWwtLSEhUVFbCwsNDmkoiIiIioDegyr2k1EltTU4Off/4Zw4YNUykfNmwYjhw5ovGYwMBAXLlyBWlpaRBFEVevXkVKSgpeeuklZZ2jR4+qtRkaGtpom0RERETUsWkVYq9fvw6FQgF7e3uVcnt7e5SWlmo8JjAwEF988QXGjh0LY2NjdO3aFVZWVli3bp2yTmlpqVZtAkB1dTUqKytVNiIiIiLqGFr0YJcgqH6vryiKamUN8vLyMGPGDCxYsAA///wz9u/fj8LCQkyZMqXFbQJAQkICLC0tlZtUKm3JpRARERGRHtIqxNra2sLQ0FBthPTatWtqI6kNEhISEBQUhHfffRc+Pj4IDQ1FUlISNm/eDLlcDgDo2rWrVm0CQFxcHCoqKpRbw/xaIiIiInr8aRVijY2N4efnh4yMDJXyjIwMBAYGajzmjz/+gIGB6mkMDeu/A7jhmbKAgAC1Ng8cONBomwAgkUhgYWGhshERERFRx9BJ2wNmzZqFyMhI+Pv7IyAgAJ988gmKi4uV0wPi4uJQUlKCbdu2AQBGjRqFyZMnIzk5GaGhoZDL5YiJicGAAQPQrVs3AEB0dDSeffZZLF++HKNHj8a///1vfPvttzh8+LAOL5WIiIiIHhdah9ixY8fixo0biI+Ph1wuR58+fZCWlgZnZ2cAgFwuV1kzdsKECfj999/x0UcfITY2FlZWVnjuueewfPlyZZ3AwEB8+eWXmD9/Pt5//3306NEDO3bswMCBA3VwiURERET0uNF6ndhHFdeJJSIiInq0tds6sUREREREjwKGWCIiIiLSO1rPiSUiImoJRZ0C2cXZkP8uh0NnBwR3D4ahgWF7d4uI9BRDLBERtTpZvgzR+6NxpfKKsszJwglrhq9BmFdYO/aMiPQVpxMQEVGrkuXLEPFVhEqABYCSyhJEfBUBWb6snXpGRPqMIZaIiFqNok6B6P3REKG+EE5DWcz+GCjqFG3dNSLScwyxRETUarKLs9VGYO8lQsTlysvILs5uw14R0eOAIZaIiFqN/He5TusRETVgiCUiolbj0NlBp/WIiBowxBIRUasJ7h4MJwsnCBA07hcgQGohRXD34DbuGRHpO4ZYIiJqNYYGhlgzfA0AqAXZhterh6/merFEpDWGWCIialVhXmFIGZMCRwtHlXInCyekjEnhOrFE1CKCKIrq657oocrKSlhaWqKiogIWFhbt3R0iIroPv7GLiHSZ1/iNXURE1CYMDQwxxGVIe3eDiB4TnE5ARERERHqHIZaIiIiI9A5DLBERERHpHYZYIiIiItI7DLFEREREpHcYYomIiIhI7zDEEhEREZHeYYglIiIiIr3DEEtEREREeochloiIiIj0DkMsEREREekdhlgiIiIi0jsMsURERESkdxhiiYiIiEjvMMQSERERkd5hiCUiIiIivcMQS0RERER6hyGWiIiIiPQOQywRERER6R2GWCIiIiLSOwyxRERERKR3GGKJiIiISO8wxBIRERGR3mGIJSIiIiK906m9O0BERET6SxQVKC/PRk2NHMbGDrCyCoYgGLZ3t6gDYIglIiKiFikrk6GgIBrV1VeUZRKJE9zd18DOLqwde0YdAacTEBERkdbKymQ4fTpCJcACQHV1CU6fjkBZmaydekYdBUMsERERaUUUFSgoiAYgatoLACgoiIEoKtq0X9SxMMQSERGRVsrLs9VGYFWJqK6+jPLy7DbrE3U8DLFERESklZoauU7rEbUEQywRERFpxdjYQaf1iFqCIZaIiIi0YmUVDInECYDQSA0BEokUVlbBbdkt6mAYYomIiEgrgmAId/c1Da/u3wsAcHdfzfViqVUxxBIREZHW7OzC4O2dAonEUaVcInGCt3cK14mlVscvOyAiIqIWsbMLg63taH5jF7WLFo3EJiUlwdXVFSYmJvDz80N2duNLaEyYMAGCIKht3t7eyjpbtmzRWKeqqqol3SMiIqI2IgiGsLYeAnv7v8LaeggDLLUZrUPsjh07EBMTg3nz5uHEiRMIDg7GiBEjUFxcrLH+mjVrIJfLldvly5dhY2ODV199VaWehYWFSj25XA4TE5OWXRURERERPda0nk6watUqTJw4EZMmTQIArF69Gunp6UhOTkZCQoJafUtLS1haWipf79q1C7du3cIbb7yhUk8QBHTt2lXb7hAREbUehQLIzgbkcsDBAQgOBgw50kj0KNBqJLampgY///wzhg0bplI+bNgwHDlypFltbNq0CS+88AKcnZ1Vym/fvg1nZ2c4OTlh5MiROHHiRJPtVFdXo7KyUmUjIiLSGZkMcHEBQkKAcePq/+viUl9ORO1OqxB7/fp1KBQK2Nvbq5Tb29ujtLT0gcfL5XLs27dPOYrboFevXtiyZQu++eYbbN++HSYmJggKCsL58+cbbSshIUE5ymtpaQmpVKrNpRARETVOJgMiIoAr9321aklJfTmDLFG7a9GDXYKguiacKIpqZZps2bIFVlZWeOWVV1TKBw0ahPHjx8PX1xfBwcH46quv4OnpiXXr1jXaVlxcHCoqKpTb5cuXW3IpREREqhQKIDoaEEX1fQ1lMTH19Yio3Wg1J9bW1haGhoZqo67Xrl1TG529nyiK2Lx5MyIjI2FsbNxkXQMDAzz99NNNjsRKJBJIJJLmd56IiKg5srPVR2DvJYrA5cv19YYMabNuEZEqrUZijY2N4efnh4yMDJXyjIwMBAYGNnns999/j4KCAkycOPGB5xFFEbm5uXBw4HcuExFRG5PLdVuPiFqF1qsTzJo1C5GRkfD390dAQAA++eQTFBcXY8qUKQDqf81fUlKCbdu2qRy3adMmDBw4EH369FFrc/HixRg0aBA8PDxQWVmJtWvXIjc3F+vXr2/hZREREbVQcwdQONBC1K60DrFjx47FjRs3EB8fD7lcjj59+iAtLU252oBcLldbM7aiogKpqalYs2aNpiZRXl6Ot956C6WlpbC0tES/fv2QlZWFAQMGtOCSiIiIHkJwMODkVP8Ql6Z5sYJQvz84uO37RkRKgihq+hOqfyorK2FpaYmKigpYWFi0d3eIiEifNaxOAKgG2YaHmFNSgLCwtu8XkZ7TZV5r0eoEREREj7WwsPqg6uioWu7kxABL9IjQejoBERFRhxAWBowezW/sInpEMcQSERE1xtCQy2gRPaI4nYCIiIiI9A5DLBERERHpHYZYIiIiItI7DLFEREREpHcYYomIiIhI7zDEEhEREZHeYYglIiIiIr3DEEtEREREeochloiIiIj0DkMsEREREekdhlgiIiIi0jsMsURERESkdxhiiYiIiEjvMMQSERERkd5hiCUiIiIivcMQS0RERER6hyGWiIiIiPQOQywRERER6R2GWCIiIiLSOwyxRERERKR3GGKJiIiISO8wxBIRERGR3mGIJSIiIiK9wxBLRERERHqHIZaIiIiI9A5DLBERERHpHYZYIiIiItI7DLFEREREpHcYYomIiIhI7zDEEhEREZHeYYglIiIiIr3DEEtEREREeochloiIiIj0Tqf27kBbqqurQ01NTXt3g7RgZGQEQ0PD9u4GERERPWI6TIitqalBYWEh6urq2rsrpCUrKyt07doVgiC0d1eIiIjoEdEhQqwoipDL5TA0NIRUKoWBAWdR6ANRFPHHH3/g2rVrAAAHB4d27hERERE9KjpEiL179y7++OMPdOvWDU888UR7d4e0YGpqCgC4du0aunTpwqkFREREBKCDPNilUCgAAMbGxu3cE2qJhn941NbWtnNPiIiI6FHRIUJsA86p1E/83IiIiOh+HSrEPq4EQcCuXbvauxtEREREbYYh9hFXWlqK6dOnw83NDRKJBFKpFKNGjcLBgwdb5XyHDh2CIAgoLy9vlfYB4NatW4iMjISlpSUsLS0RGRnZqucjIiKix0+HeLBLXxUVFSEoKAhWVlZITEyEj48PamtrkZ6ejqioKJw5c6a9u9goURShUCjQqZP6LTZu3DhcuXIF+/fvBwC89dZbiIyMxO7du9u6m0RERKSnOBKrBYUCOHQI2L69/r//fV6s1UydOhWCIODYsWOIiIiAp6cnvL29MWvWLOTk5Gg8RtNIam5uLgRBQFFREQDg0qVLGDVq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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 9 ---\n", - "Aktuelle Cluster: [[1], [4], [7], [8], [0, 5], [6, 9], [2, 3]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 0. 5. 0.0362049 2. ]\n", - " [ 4. 7. 0.05376004 2. ]\n", - " [ 6. 9. 0.08275424 2. ]\n", - " [ 3. 11. 0.10797673 3. ]\n", - " [ 1. 2. 0.12344616 2. ]\n", - " [10. 12. 0.13930155 4. ]\n", - " [13. 15. 0.23028243 7. ]\n", - " [14. 16. 0.37874766 9. ]\n", - " [ 8. 17. 0.47988728 10. ]]\n" - ] - }, - { - "data": { - "image/png": "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yQilAAsAdXVlOHkyApWVsi7q2YOLIZaIiIioC4miHEVFMQBEdXsBAEVFsRBFeaf260HHEEtERETUhaqqclVGYJWJqKu7iKqq3E7rky5giCUiIiLqQvX15Vqt110wxBIRERF1IUNDO63W6y4YYomIiIi6kIVFACQSBwBCCzUESCRSWFgEdGa3HngMsURERERdSBD04eq6uvmnu/cCAFxdV3G92LswxBIRERF1MRubMHh6pkEisVcql0gc4OmZxnVi1eCXHRARERE9AGxswmBtPY7f2NVGDLFEREREDwhB0Iel5aiu7oZO4HQCIiIiItI5DLFEREREpHMYYomIiIhI57QrxKakpMDZ2RlGRkYYOnQocnNb/xq0zz//HN7e3njkkUdgZ2eH1157DdeuXVOqk56ejoEDB0IikWDgwIHYvn17e7pGRERERN2AxiF227ZtiI2Nxfz583Hs2DEEBARgzJgxKC0tVVv/4MGDeOWVVzB58mScPHkSX331FX744QdERUUp6hw+fBjjx49HZGQkjh8/jsjISLz88sv4/vvv239lRERERPTQEkRRFDU5YPjw4Xj88ceRmpqqKPPw8MCLL76IxMRElforVqxAamoqzp07pyhbu3YtkpKScPHiRQDA+PHjUVNTgz179ijqjB49GpaWlti6dWub+lVTUwNzc3NUV1fDzMxMk0siIiIiok6gzbym0UhsfX09fvrpJwQHByuVBwcH49ChQ2qP8fPzw6VLl5CRkQFRFHH58mWkpaXh+eefV9Q5fPiwSpshISEttklERERE3ZtGIfbq1auQy+WwtbVVKre1tUVFRYXaY/z8/PD5559j/PjxMDQ0RO/evWFhYYG1a9cq6lRUVGjUJgDU1dWhpqZGaSMiIiKi7qFdD3YJgvL3+oqiqFLWrKCgADNnzsTChQvx008/Ye/evSguLsbUqVPb3SYAJCYmwtzcXLFJpdL2XAoRERER6SCNQqy1tTX09fVVRkivXLmiMpLaLDExEf7+/nj77bfh5eWFkJAQpKSkYOPGjSgvLwcA9O7dW6M2ASA+Ph7V1dWKrXl+LRERERE9/DQKsYaGhhg6dCiysrKUyrOysuDn56f2mN9//x16esqn0ddv+g7g5mfKfH19Vdrct29fi20CgEQigZmZmdJGRERERN1DD00PmD17NiIjI+Hj4wNfX1989NFHKC0t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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 10 ---\n", - "Finale Cluster: [[1], [4], [7], [8], [0, 5], [6, 9], [2, 3]]\n" - ] - }, - { - "data": { - "image/png": "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jh07dOrUKZegExcXp6lTp2rbtm367bffXILOypUrNWDAAL344osu2zx+/HiBayh/X5fy5PgBFA1BB7gBde3aVS+++KIqVaqkmJiYYm0j/1aol07lyszM1Ouvv17kbSQkJOj111/XDz/8cMUAcD0EBgYqLi5OFSpU0MaNG5WUlKTY2FglJCRo8uTJ+vTTT3X33Xdf0z7q1aunOnXq6Ouvvy7wZqcounfvrsaNG2vGjBnq2rWr2zuvbdy4UW3atCk0iNSsWVPffPONS9u///1v/fDDDwUCbL4KFSro/vvvV2pqqsaMGaPk5GQ1bNiw0FGzTp06yc/PTwcOHHA7Ja0o8t/kXf5G/tVXXy3W9grbpjFGf//734u8jUcffVTz58/X/fffr1OnTmn06NGF9g0JCVFCQoKys7PVo0cPfffdd4qOjlbXrl21fv161a5d2+2UzyuJjIy8YhC6mmrVqumpp57S999/7xIgL9e1a1e99dZbys3NVatWra64zcDAwKuOhl1JbGysgoODtXLlSj3wwAPO9l9++UWffvqp7r//fkkXXz9Vq1bVqlWrNHbsWOfzefDgQW3dutXlvHhSv6fat2+vNWvW6OWXX1Z4eLjL1Nq4uDilp6frr3/9q7NvPofDUeB6/uc//6nU1FTdfPPNV92vJ8cPoGgIOsANaMyYMVqzZo3atm2rxx9/XE2aNFFeXp5SUlL00Ucf6Yknnrjqm4cuXbpozpw56tevnx566CGlp6dr1qxZHv0Fevr06dqwYYPatm2rCRMmqHHjxjp16pQ+/PBDjR071uWOZ8UxefJk/fLLL+rQoYOqV6+uU6dOad68efL393f+lXbMmDFavXq1unfvrnHjxqlly5bKzMzUZ599pq5du3r8RYCvvvqqEhIS1KlTJw0aNEjVqlXTiRMntH//fn311Vd65513Cl3X19dX77//vuLj4xUbG6uHH35Y7du3V0hIiA4ePKh3331X69at08mTJwvdRv/+/fXggw9q5MiR6tWrlw4ePKiXXnpJlStXdunXrVs3NWrUSC1atFDlypV18OBBzZ07V9HR0c47YDVu3FiSNG/ePA0cOFD+/v6qV6+eatasqenTp2vixIn6z3/+o3vvvVc33XSTjhw5oh07digkJMR5+/DC1K9fX7Vr19a4ceNkjFHFihW1bt06lylgnurYsaMCAgLUt29f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4nnKyMhQjn+OlysqHThvnuOcFQ/nzXOcs+LhvHmupJ+z/ExgjLlyR+OB1NRUI8l8+eWXLu0vvPCCqVu3rtt16tSpY1544QWXti+//NJIMr/++qvbdaZMmWIksbCwsLCwsLCwsLCwuF0OHTp0xexSrCEIh8Ph8rMxpkDb1fq7a883fvx4jR071vlzXl6eTpw4oUqVKl1xPwAAAADsZozRmTNnFBkZecV+HgWdsLAw+fr66vDhwy7tR48eVUREhNt1qlSp4ra/n5+fKlWq5HadwMBABQYGurRVqFDBk1IBAAAAWCo0NPSqfTy6GUFAQICaN2+uxMREl/bExES1bt3a7TqxsbEF+n/00Udq0aKF28/nAAAAAMC18viua2PHjtXixYu1dOlS7d+/X48//rhSUlI0YsQISRennQ0YMMDZf8SIETp48KDGjh2r/fv3a+nSpVqyZImefPLJ63cUAAAAAHAJjz+j06dPH6Wnp2v69OlKS0tTo0aNtH79ekVHR0uS0tLSXL5TJyYmRuvXr9fjjz+uV155RZGRkfrLX/6iXr16Xb+jAAAAAIBLOIy52n3ZAAAAAKB08XjqGgAAAACUdAQdAAAAANYh6AAAAACwDkGnGJKSktSjRw9FRkaqTJkyql+/vqZPn67z5897u7QS7cyZM3r66acVHx+vypUry+FwaOrUqd4uq0T79NNPNWTIENWvX18hISGqVq2aunfvrt27d3u7tBJrz5496tKli2rUqKHg4GBVrFhRsbGxWrlypbdLK1UWL14sh8OhsmXLeruUEmvQoEFyOByFLtu3b/d2iSXS2bNnNWbMGEVGRiooKEhNmzbVW2+95e2ySrTNmzdznRXTF198oc6dO+umm25ScHCw6tSpo+eee87bZZVoO3bsUKdOnVSuXDmVLVtW7du315dffuntsorF47uu3ej27dun1q1bq169epo7d67CwsL0+eefa/r06dq9e7f+8Y9/eLvEEis9PV2LFi3Srbfeqh49emjx4sXeLqnEW7BggdLT0/XYY4+pYcOGOnbsmGbPnq077rhDGzdu1N133+3tEkucU6dOKSoqSn379lW1atV07tw5vfHGG+rfv7+Sk5M1adIkb5dY4qWmpurJJ59UZGSkTp8+7e1ySqxnn33W+dUKl+rWrZsCAwN1++23e6Gqku9//ud/tHPnTs2cOVN169bV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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "#Clusteranalyse\n", - "\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import random\n", - "from scipy.cluster.hierarchy import linkage, dendrogram\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "import pandas as pd\n", - "\n", - "#functions\n", - "def generate_random_number_array(n, rangeStart, rangeEnd):\n", - " array = [random.randint(rangeStart, rangeEnd) for _ in range(n)]\n", - " return array\n", - "\n", - "def generate_x_y_array(n, rangeStart, rangeEnd):\n", - " XYDict = {\n", - " \"x\": generate_random_number_array(n, rangeStart, rangeEnd),\n", - " \"y\": generate_random_number_array(n, rangeStart, rangeEnd)\n", - " }\n", - " return XYDict\n", - "\n", - "def generate_clusters(n_clusters, m_points_per_cluster):\n", - " # Generate random cluster centers\n", - " cluster_centers = np.random.rand(n_clusters, 2)\n", - " noise_scale = 0.05\n", - "\n", - " # Generate points for each cluster\n", - " points = []\n", - " for center in cluster_centers:\n", - " cluster_points = np.random.randn(m_points_per_cluster, 2) + center\n", - " points.extend(cluster_points)\n", - "\n", - " # Add noise to the points\n", - " noisy_points = points + (noise_scale * np.random.randn(len(points), 2))\n", - "\n", - " return np.array(noisy_points)\n", - "\n", - "\n", - "\n", - "# Anzahl der Datenpunktansammlungen (Cluster)\n", - "num_clusters = 2\n", - "# Anzahl der Datenpunkte pro Cluster\n", - "points_per_cluster = 5\n", - "\n", - "# Größe des \"Noise\"-Bereichs\n", - "noise_scale = 0.1\n", - "\n", - "# Beispiel Daten - Clusterpunkte und \"Noise\" Punkte\n", - "np.random.seed(0)\n", - "clusters = []\n", - "for _ in range(num_clusters):\n", - " cluster_center = np.random.rand(2) * (1 - noise_scale)\n", - " cluster = cluster_center + np.random.randn(points_per_cluster, 2) * noise_scale\n", - " clusters.append(cluster)\n", - "print(clusters) \n", - "\n", - "# Zusammenführen der Clusterpunkte\n", - "X = np.concatenate(clusters, axis=0)\n", - "print(X)\n", - "\n", - "# Initialisierung: Jeder Datenpunkt ist ein Cluster\n", - "clusters = [[i] for i in range(X.shape[0])]\n", - "#print(clusters)\n", - "\n", - "# Schleife für jeden Schritt der hierarchischen Clusteranalyse\n", - "for step in range(X.shape[0] - 1):\n", - " print(f\"\\n--- Schritt {step + 1} ---\")\n", - " print(\"Aktuelle Cluster:\", clusters)\n", - "\n", - " # Berechnung der Abstandsmatrix mit Ward-Methode\n", - " linkage_matrix = linkage(X, 'ward')\n", - "\n", - " # Ausgabe der Abstandsmatrix\n", - " print(\"Abstandsmatrix nach Linkage:\")\n", - " print(linkage_matrix)\n", - "\n", - " # Tabelle mit den Abständen zwischen den Clustern erstellen\n", - " distances = []\n", - " for i in range(len(linkage_matrix)):\n", - " cluster1, cluster2, distance, _ = linkage_matrix[i]\n", - " cluster1, cluster2 = int(cluster1), int(cluster2) # Konvertiere zu ganzzahligen Indizes\n", - " if cluster1 < len(clusters) and cluster2 < len(clusters):\n", - " distances.append([cluster1, cluster2, distance, len(clusters[cluster1]), len(clusters[cluster2])])\n", - "\n", - " # Streudiagramm zeichnen\n", - " colors = ['b', 'g', 'r', 'c', 'm', 'y', 'k']\n", - " plt.figure(figsize=(8, 6))\n", - " for idx, cluster in enumerate(clusters):\n", - " for point_idx in cluster:\n", - " plt.scatter(X[point_idx, 0], X[point_idx, 1], color=colors[idx % len(colors)], label=f'Cluster {idx}')\n", - " plt.title('Hierarchische Clusteranalyse - Schritt {}'.format(step + 1))\n", - " plt.legend()\n", - " plt.show()\n", - "\n", - " # Wenn nur noch ein Cluster übrig ist, breche die Schleife ab\n", - " if len(clusters) == 1:\n", - " break\n", - "\n", - " # Identifiziere die beiden nächsten Cluster\n", - " cluster1, cluster2 = int(linkage_matrix[step][0]), int(linkage_matrix[step][1])\n", - "\n", - " # Überprüfe, ob die Cluster existieren, bevor sie zusammengeführt werden\n", - " if cluster1 < len(clusters) and cluster2 < len(clusters):\n", - " new_cluster = clusters[cluster1] + clusters[cluster2]\n", - " del clusters[max(cluster1, cluster2)]\n", - " del clusters[min(cluster1, cluster2)]\n", - " clusters.append(new_cluster)\n", - "\n", - "# Ausgabe des finalen Clusters\n", - "print(f\"\\n--- Schritt {X.shape[0]} ---\")\n", - "print(\"Finale Cluster:\", clusters)\n", - "\n", - "# Dendrogramm erstellen und anzeigen\n", - "plt.figure(figsize=(10, 7))\n", - "plt.title('Hierarchische Clusteranalyse - Methode: Ward')\n", - "dendrogram(linkage_matrix)\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 45, - "id": "edd42b72", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[19 11]\n", - " [13 10]\n", - " [22 9]\n", - " [21 10]\n", - " [18 16]\n", - " [20 17]]\n", - "[[0], [1], [2], [3], [4], [5]]\n", - "\n", - "--- Schritt 1 ---\n", - "Aktuelle Cluster: [[0], [1], [2], [3], [4], [5]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 2. 3. 1.41421356 2. ]\n", - " [ 4. 5. 2.23606798 2. ]\n", - " [ 0. 6. 3.36650165 3. ]\n", - " [ 1. 8. 9.38971068 4. ]\n", - " [ 7. 9. 10.62230358 6. ]]\n" - ] - }, - { - "data": { - "image/png": "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H390tvv2229NDw8P849//ONF++vTp48pyfzss89c5nfs2NGMjo52fi77c3n77beX66Ns2ZYtW5zz4uPjzcr+avb19a3wN3s57rrrrnL/vQOuFsbY8av37rvv6vPPPy839erV65Lrrl27Vp07d9aNN96oX375xTlFR0eXO1UqSb/97W/VoEGDcv1s3rxZ/fr1U0BAgDw8POTp6akZM2bohx9+0KlTp1zadu3aVe3atXOZ9/HHHysqKkrh4eGXrHnw4MHl+pNUblTmfDfffLMk6d5779W//vUvHT9+vFybjz/+WO3atXMZzarMXXfd5TKKemEN6enpOnDggP74xz9Kkst3e+edd+rkyZPlTv3XlO7du2vPnj0aM2aMkpOTlZeXd9nrJicn65dfftEDDzzgso/e3t7q06dPud+PVDoqeaFTp07psccek91uV926deXp6alWrVpJktLS0sq1r+g3cO7cOZff2pdffqnBgwerYcOGzt/kAw88IIfDoUOHDlW6T3Xq1NHYsWO1du1aZWVlSSodJV2/fr3GjBnjHOnv3r27cnJy9Ic//EEffvhhuVP+Uumfr6ioKIWEhLh8PzExMZKkbdu2VVpHSUmJyzoOh6PStpLUsGFDpaSk6PPPP9eLL76oIUOG6NChQ5o2bZq6dOnirG/jxo1yOByKj4+/aH+S1KxZM3Xv3t1lXteuXSv8s1bRcQWuF4RN/OqFh4crMjKy3FR2OvdivvvuO3311Vfy9PR0mfz8/GSaZrm/QMtOoZ5v165dGjBggCTpjTfe0P/+7//q888/15///GdJpTcAXaqP06dPq0WLFpe1vw0bNnT5bLPZKtzO+W6//XatXr3aGYxatGihzp07a/ny5ZbUUHad6RNPPFHuux0zZowkVRhOypRdjpCRkXFZ9VyJadOmaf78+dq5c6diYmLUsGFD3XHHHZU+Uut8Zft58803l9vP999/v9w+1qtXr9yp0ZKSEg0YMEBJSUl66qmntGnTJu3atct5DWxFx/VS339WVpZ69+6t48ePa9GiRc4QVna94MV+K5L00EMPycfHR6+99pqk0ssmfHx8XK7xHTFihP7+97/ryJEjiouLU5MmTXTLLbdo48aNLt/PmjVryn03nTp1knTx38Ds2bNd1rncm94iIyP19NNP64MPPtCJEyc0adIkZWZmOm8SOn36tCRd1m/9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Pvnkk+bHH39crvYLfyvne+edd0xJ5j//+c9yy5YtW2ZGRUWZTZs2Nb28vJy/16+++sql3enTp83x48eboaGhpqenpxkUFGT+5je/Mf/85z+b+fn5FW63Ot5//31z+PDhZtu2bV1+KyNGjKjwKQ/vvvuuefPNN5ve3t5m/fr1zW7durn8GerTp4/ZqVOncutd+H1V9ufy/GXnf9+FhYXm6NGjzcaNG5uGYbgct9TUVPO2224z69WrZ0py+Z1WpOz3UNF04Z9FwEqGaV7GwwYBALhAXFycdu7cqczMzGv+bU0ArMNpdADAZSssLNTu3bu1a9curVq1SgsWLCBoArgoRjYBAJctMzNToaGh8vf31/Dhw/Xqq69W+mYqAJAImwAAALAQD3UHAACAZQibAAAAsAxhEwAAAJapdXejl5SU6MSJE/Lz8+P1XgAAALWQaZr68ccfFRISojp1Lj52WevC5okTJ9z6PloAAABY4+jRo5d801etC5t+fn6SSov39/ev4WoAAABwoby8PNntdmduu5haFzbLTp37+/sTNgEAAGqxy7nkkRuEAAAAYBnCJgAAACxD2AQAAIBlat01mwAA4NfH4XCouLi4pstAFXh6esrDw+OK+yFsAgAAy5imqezsbOXk5NR0KaiGwMBANWvW7IqefU7YBAAAlikLmk2aNFG9evV4Ycs1wjRN/fTTTzp16pQkKTg4uNp9ETYBAIAlHA6HM2g2bNiwpstBFfn4+EiSTp06pSZNmlT7lDo3CAEAAEuUXaNZr169Gq4E1VV27K7kelvCJgAAsBSnzq9d7jh2hE0AAABYhrAJAABQDYZhaPXq1TVdRq1H2AQAALhAdna2xo0bp7CwMNlsNtntdsXGxmrTpk2WbG/r1q0yDMPSR0SdPXtWI0aMUEBAgAICAjRixIir8kgq7kYHAAC1msMhpaRIJ09KwcFS796SG541XqnMzEzddtttCgwMVGJiorp27ari4mIlJycrPj5eBw4csG7jV8g0TTkcDtWtWz7iDR8+XMeOHdP69eslSX/60580YsQIrVmzxtKaGNkEAOBXxDQdOnt2q777brnOnt0q03TUdElXJClJat1aioqShg8v/Wfr1qXzrTJmzBgZhqFdu3Zp2LBhateunTp16qTJkydr586dFa5T0chkamqqDMNQZmamJOnIkSOKjY1VgwYN5Ovr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gKvJUeJQSlaKTv54UsF+werdsrc86lj3VqTMzEzddtttCgwMVGJiorp27ari4mIlJycrPj5eBw4csGzbV8o0TTkcDtWtWz7iFRUV6Xe/+5169Oiht95666rVxMgmAACotZLSktR6UWtFLYvS8KThiloWpdaLWispLcmybY4ZM0aGYWjXrl0aNmyY2rVrp06dOmny5MnauXNnhetUNDKZmpoqwzCUmZkpSTpy5IhiY2PVoEED+fr6qlOnTvroo4+UmZnpfBV4gwYNZBiGRo0aJak0PCYmJiosLEw+Pj6KiIjQihUrym03OTlZkZGRstlsSklJqbDGWbNmadKkSerSpcuVf0lVwMgmAAColZLSkjTsX8NkyvXN2sfzjmvYv4Zpxb0rNDR8qFu3eebMGa1fv15z586Vr69vueVXcvo5Pj5eRUVF2r59u3x9fbV//37Vr19fdrtdK1euVFxcnA4ePCh/f3/5+PhIkqZPn66kpCQtXbpUbdu21fbt23X//fercePG6tOnj7Pvp556SvPnz1dYWNhVPUV+OQibAACg1nGUODRh/YRyQVOSTJkyZGji+oka0n6IW0+pp6enyzRNdejQwW19lsnKylJcXJxzZDEsLMy5LCgoSJLUpEkTZ1gsKCjQggULtHnzZvXo0cO5zieffKLXX3/dJWzOnj1b/fv3d3vN7kDYBAAAtU5KVoqO5R2rdLkpU0fzjiolK0V9W/d123ZNszTcGobhtj7LjB8/Xo8//rg2bNigfv36KS4uTl27dq20/f79+3Xu3LlyIbKoqEjdunVzmRcZGen2et2FazYBAECtc/LHk25td7natm0rwzCUlpZWpfXq1CmNVGVhVZKKi4td2owePVrffvutRowYob179yoyMlKvvPJKpX2WlJRIktatW6fU1FTntH//fpfrNiVVeMq/tiBsAgCAWifYL9it7S5XUFCQoqOjtXjxYhUUFJRbXtmjiRo3bixJOnny/8JvampquXZ2u12PPfaYkpKSNGXKFL3xxhuSJC8vL0mSw+Fwtu3YsaNsNpuysrLUpk0bl8lut1d3F686wiYAAKh1erfsrRb+LWSo4tPZhgzZ/e3q3bK327e9ZMkSORwOde/eXStXrtQ333yjtLQ0vfzyy85rJy9UFgBnzpypQ4cOad26dXrppZdc2kycOFHJycnKyMjQ7t27tXnzZoWH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+fn5yTCMmi7nVy0vL092u11Hjx6Vv79/TZeDq4Tjfv3hmF9/OObXn6t9zE3T1I8//qiQkBDVqXPxqzJr3chmnTp11KJFi5ou47ri7+/Pf4yuQxz36w/H/PrDMb/+XM1jfqkRzTLcIAQAAADLEDYBAABgGcLmdcxms+m5556TzWar6VJwFXHcrz8c8+sPx/z6U5uPea27QQgAAAC/HoxsAgAAwDKETQAAAFiGsAkAAADLEDYBAABgGcLmdWD79u2KjY1VSEiIDMPQ6tWrK2376KOPyjAMLVy48KrVB/e7nGOelpamwYMHKyAgQH5+frr11luVlZV19YuFW1zqmOfn52vs2LFq0aKFfHx8FB4erqVLl9ZMsXCLhIQE3XzzzfLz81OTJk1099136+DBgy5tTNPUzJkzFRISIh8fH/Xt21f79u2roYpxpS51zIuLi/X000+rS5cu8vX1VUhIiB544AGdOHGiBqsmbF4XCgoKFBERoVdfffWi7VavXq3PPvtMISEhV6kyWOVSx/zw4cPq1auXOnTooK1bt2rPnj169tln5e3tfZUrhbtc6phPmjRJ69ev13/9138pLS1NkyZN0rhx4/Thhx9e5UrhLtu2bVN8fLx27typjRs36pdfftGAAQNUUFDgbJOYmKgFCxbo1Vdf1eeff65mzZqpf//++vHHH2uwclTXpY75Tz/9pN27d+vZZ5/V7t27lZSUpEOHDmnw4ME1W7iJ64okc9WqVeXmHzt2zGzevLn59ddfm61atTL/+te/XvXaYI2Kjvl9991n3n///TVTECxX0THv1KmTOXv2bJd5N910kzl9+vSrWBmsdOrUKVOSuW3bNtM0TbOkpMRs1qyZ+eKLLzrbnDt3zgwICDBfe+21mioTbnThMa/Irl27TEnmkSNHrmJlrhjZhEpKSjRixAg9+eST6tSpU02XA4uVlJRo3bp1ateunaKjo9WkSRPdcsstF728Ate+Xr166X/+5390/PhxmaapLVu26NChQ4qOjq7p0uAmubm5kqSgoCBJUkZGhrKzszVgwABnG5vNpj59+mjHjh01UiPc68JjXlkbwzAUGBh4laoqj7AJzZs3T3Xr1tX48eNruhRcBadOnVJ+fr5efPFFDRw4UBs2bNA999yjoUOHatu2bTVdHizy8ssvq2PHjmrRooW8vLw0cOBALVmyRL169arp0uAGpmlq8uTJ6tWrlzp37ixJys7OliQ1bdrUpW3Tpk2dy3DtquiYX+jcuXOaOnWqhg8fLn9//6tc4f+pW2NbRq3w//7f/9OiRYu0e/duGYZR0+XgKigpKZEkDRkyRJMmTZIk3XjjjdqxY4dee+019enTpybLg0Vefvll7dy5U//zP/+jVq1aafv27RozZoyCg4PVr1+/mi4PV2js2LH66quv9Mknn5RbduF/203T5L/3vwIXO+ZS6c1Cv//971VSUqIlS5Zc5epcMbJ5nUtJSdGpU6fUsmVL1a1bV3Xr1tWRI0c0ZcoUtW7duqbLgwUaNWqkunXrqmPHji7zw8PDuRv9V+rnn3/WM888owULFig2NlZdu3bV2LFjdd9992n+/Pk1XR6u0Lhx4/Q///M/2rJli1q0aOGc36xZM0kqN4p56tSpcqOduLZUdszLFBcX695771VGRoY2btxYo6OaEmHzujdixAh99dVXSk1NdU4hISF68sknlZycXNPlwQJeXl66+eabyz0i5dChQ2rVqlUNVQUrFRcXq7i4WHXquP4n38PDwznSjWuPaZoaO3askpKStHnzZoWGhrosDw0NVbNmzbRx40bnvKKiIm3btk09e/a82uXCDS51zKX/C5rffPON/v3vf6thw4Y1UKkrTqNfB/Lz85Wenu78nJGRodTUVAUFBally5blfoienp5q1qyZ2rdvf7VLhZtc6pg/+eSTuu+++3T77bcrKipK69ev15o1a7R169aaKxpX5FLHvE+fPnryySfl4+OjVq1aadu2bXr33Xe1YMGCGqwaVyI+Pl7//d//rQ8//FB+fn7OEcyAgAD5+PjIMAxNnDhRL7zwgtq2bau2bdvqhRdeUL169TR8+PAarh7Vcalj/ssvv2jYsGHavXu31q5dK4fD4WwTFBQkLy+vmim8xu6Dx1WzZcsWU1K5aeTIkRW259FH177LOeZvvfWW2aZNG9Pb29uMiIgwV69eXXMF44pd6pifPHnSHDVqlBkSEmJ6e3ub7du3N1966SWzpKSkZgtHtVV0vCWZb7/9trNNSUmJ+dxzz5nNmjUzbTabefvtt5t79+6tuaJxRS51zDMyMipts2XLlhqr2/hP8QAAAIDbcc0mAAAALEPYBAAAgGUImwAAALAMYRMAAACWIWwCAADAMoRNAAAAWIawCQAAAMsQNgEAAGAZwiYAAAAsQ9gEAACAZQibAAAAsAxhEwAAAJb5/2OtPSHP4Y3jAAAAAElFTkSuQmCC\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 2 ---\n", - "Aktuelle Cluster: [[0], [1], [4], [5], [2, 3]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 2. 3. 1.41421356 2. ]\n", - " [ 4. 5. 2.23606798 2. ]\n", - " [ 0. 6. 3.36650165 3. ]\n", - " [ 1. 8. 9.38971068 4. ]\n", - " [ 7. 9. 10.62230358 6. ]]\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAApsAAAIOCAYAAAD3OcaUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABbL0lEQVR4nO3deVxWdd7/8feR5QKRRVxBUCFccCMbsnBJmVSkJEucmnEyrbGpRM2lRRszNY10zNFyqWmasu65nSZFG5dER1zoV2aNYaaoYSCuaZNAUgJdnN8fDNftJaCC1wHM1/PxOA+7zvme7/mc61zWu+/ZDNM0TQEAAAAWaFDXBQAAAODni7AJAAAAyxA2AQAAYBnCJgAAACxD2AQAAIBlCJsAAACwDGETAAAAliFsAgAAwDKETQAAAFiGsImfrbfeekuGYeizzz6rdPngwYPVtm1bp3lt27bVqFGjrC/OAtu2bZNhGFq5cuVl244aNarCvrtCTk6ODMPQ/PnzXd53ZQoKCjRnzhxFR0fLz89PNptNbdu21UMPPaTdu3c72pX/FnJyciyp46OPPtKMGTOUl5dnSf91yarfSl345JNPdM8996h169ay2Wxq0aKFYmJiNHny5Gr31a9fP3Xp0uWq6in/O7tt2zbHvA0bNmjGjBmVtn/hhRe0Zs2aK+r75MmTmjZtmmJiYtS0aVP5+fnpF7/4hf785z/LbrdfVd1AdRE2gQusXr1azz77bF2XYblnn31Wq1evrusyrsrhw4fVvXt3vfjii4qNjdWKFSu0adMmzZw5U998841+8YtfKD8/v1Zq+eijjzRz5syfZdj8uVi/fr169uypgoICzZs3T5s2bdKiRYvUq1cvvfvuu3VS00033aSPP/5YN910k2Pehg0bNHPmzErbVyds/vvf/9bbb7+t22+/XW+//bZWrVqlvn376rHHHtPDDz/sivKBK+Ze1wUA9Un37t1d1pdpmjp//ry8vb2vqp8ff/zxqvu42A033ODS/mqb3W7XPffco2+//VYff/yx0whT3759NXLkSH3wwQfy8PCowyqv3g8//KCGDRvWdRk/C/PmzVNYWJhSU1Pl7v5//+n79a9/rXnz5tVqLSUlJTIMQ35+frr11lst2UavXr10+PBhp78DAwYMUHFxsZYsWaKZM2cqNDTUkm0DF2NkE7hAZafRCwoK9MQTTygsLEyenp5q1aqVJkyYoMLCQqd2hmFo7NixevXVVxUZGSmbzably5dLkmbOnKlbbrlFgYGB8vPz00033aQ33nhDpmlW2P7gwYOVkpKi7t27y8vLyzHKcfz4cf3+979XaGioPD09FRwcrGHDhumbb75x6qOkpER/+MMfFBwcLD8/P/Xv318HDx50alPZqdH33ntPt9xyi/z9/dWwYUOFh4froYcecmqTl5enyZMnKzw8XDabTc2bN9cdd9yhAwcOVPguFyxYoLCwMDVq1EgxMTHauXNnhTafffaZ7rrrLgUGBsrLy0vdu3fXP/7xjwrtLrZmzRrt3btXU6dOrfJUZnx8/CWDWlWXTPTr10/9+vVzfC4tLdXs2bPVoUMHeXt7KyAgQN26ddOiRYskSTNmzNCTTz4pSQoLC5NhGBVOjb777ruKiYmRj4+PGjVqpLi4OH3++edO2x01apQaNWqkvXv3auDAgfL19dXtt98uSdq8ebOGDBmikJAQeXl5KSIiQo888oi+/fZbpz5mzJghwzC0b98+/eY3v5G/v79atGihhx56qMIo75IlS3TbbbepefPm8vHxUdeuXTVv3jyVlJRU+Z1J0u23366OHTtW+O2apqmIiAjdeeedjnnLli1TVFSUGjVqJF9fX3Xs2FHPPPOM03qnTp3SI488opCQEHl6eiosLEwzZ87UTz/9dMk6qus///mPmjZt6hQ0yzVoUPE/hf/7v/+rmJgYNWrUSI0aNdKNN96oN954o0K7Tz/9VH369HH8nXnxxRdVWlrqWF5+qvydd97R5MmT1apVK9lsNmVlZVU4jT5q1CgtWbJEkhy/o/LLPwzDUGFhoZYvX+6Yf+Hv9GKNGzeu9H+2evToIUk6duzYJb8vwJUY2cTPnt1ur/Q/XBf/x7IyP/zwg/r27atjx47pmWeeUbdu3bRv3z5Nnz5de/fu1b/+9S8ZhuFov2bNGqWnp2v69Olq2bKlmjdvLqnsWsZHHnlErVu3liTt3LlT48aN0/HjxzV9+nSnbe7evVuZmZmaNm2awsLC5OPjo+PHj+vmm29WSUmJo47//Oc/Sk1N1dmzZ9WiRQvH+s8884x69eqlv/zlLyooKNDTTz+thIQEZWZmys3NrdL9/Pjjj3Xffffpvvvu04wZM+Tl5aUjR44oLS3N0eb7779X7969lZOTo6efflq33HKLzp07px07dujkyZPq2LGjo+2SJUvUsWNHLVy4UFLZafs77rhD2dnZ8vf3lyRt3bpVgwYN0i233KJXX31V/v7++vvf/6777rtPP/zwwyWvnd20aZMk6e67777MEbx68+bN04wZMzRt2jTddtttKikp0YEDBxynzEePHq3vvvtOr7zyilJSUhQUFCRJ6tSpk6SyU5/Tpk3Tgw8+qGnTpqm4uFh//OMf1adPH+3atcvRTpKKi4t111136ZFHHtGUKVMcv9vDhw8rJiZGo0ePlr+/v3JycrRgwQL17t1be/furRAqEhMTdd999+l3v/udI5RL0l//+ldHm8OHD2v48OGO/4nas2eP5syZowMHDji1u9jjjz+uIUOGaMuWLerfv79j/gcffKDDhw/r5ZdfliT9/e9/15gxYzRu3DjNnz9fDRo0UFZWlvbv3+9Y59SpU+rRo4caNGig6dOn64YbbtDHH3+s2bNnKycnR2+++Wa1j1dVYmJi9Je//EXjx4/Xb3/7W910001VjnxPnz5dzz//vIYOHarJkyfL399fX375pY4cOeLU7tSpU/rtb3+ryZMn67nnntPq1as1depUBQcH64EHHnBqO3XqVMXExOjVV19VgwYN1Lx5c506dcqpzbPPPqvCwkKtXLlSH3/8sWN+UFCQPv74Y/3yl79UbGys41IfPz+/an8PaWlpcnd3V/v27au9LlBjJvAz9eabb5qSLjm1adPGaZ02bdqYI0eOdHxOTk42GzRoYH766adO7VauXGlKMjds2OCYJ8n09/c3v/vuu0vWZbfbzZKSEnPWrFlmkyZNzNLSUqftu7m5mQcPHnRa56GHHjI9PDzM/fv3V9nv1q1bTUnmHXfc4TT/H//4hynJ/Pjjjx3zRo4c6bTv8+fPNyWZeXl5VfY/a9YsU5K5efPmKttkZ2ebksyuXbuaP/30k2P+rl27TEnmihUrHPM6duxodu/e3SwpKXHqY/DgwWZQUJBpt9ur3M6gQYNMSeb58+erbHOh8t9Cdna2Y97Fx7pc3759zb59+zrVc+ONN16y/z/+8Y8V+jdN08zNzTXd3d3NcePGOc3//vvvzZYtW5r33nuvY97IkSNNSeZf//rXS26rtLTULCkpMY8cOWJKMt9//33Hsueee86UZM6bN89pnTFjxpheXl5Ov7ULlf8m3377bdPNzc3pN3zxb8Vut5vh4eHmkCFDnPqIj483b7jhBsc2xo4dawYEBFxyXx555BGzUaNG5pEjR5zml/8e9+3bd8n1q+Pbb781e/fu7fi77+HhYfbs2dNMTk42v//+e0e7r7/+2nRzczN/+9vfXrK/vn37mpLMTz75xGl+p06dzLi4OMfn8r+Xt912W4U+ypdt3brVMS8pKcms6j/NPj4+lf5mr1RqaqrZoEEDc+LEiTXuA6gJTqPjZ+/tt9/Wp59+WmHq3bv3Zdddt26dunTpohtvvFE//fSTY4qLi6twqlSSfvnLX6px48YV+klLS1P//v3l7+8vNzc3eXh4aPr06frPf/6j06dPO7Xt1q1bhVGHDz74QLGxsYqMjLxszXfddVeF/iRVGJW50M033yxJuvfee/WPf/xDx48fr9Dmgw8+UPv27Z1Gs6py5513Oo2iXlxDVlaWDhw4oN/+9reS5PTd3nHHHTp58mSFU/91pUePHtqzZ4/GjBmj1NRUFRQUXPG6qamp+umnn/TAAw847aOXl5f69u1b4fcjlY1KXuz06dN69NFHFRoaKnd3d3l4eKhNmzaSpMzMzArtK/sNnD9/3um39vnnn+uuu+5SkyZNHL/JBx54QHa7XYcOHapynxo0aKCxY8dq3bp1ys3NlVQ2Srpx40aNGTPGMdLfo0cP5eXl6Te/+Y3ef//9Cqf8pbK/X7GxsQoODnb6fuLj4yVJ27dvr7KO0tJSp3Uud4d1kyZNlJ6erk8//VQvvviihgwZokOHDmnq1Knq2rWro77NmzfLbrcrKSnpkv1JUsuWLR2npct169at0r9rlR3X2rR7927de++9uvXWW5WcnFynteD6Q9jEz15kZKSio6MrTOWncy/lm2++0RdffCEPDw+nydfXV6ZpVvgPaPkp1Avt2rVLAwcOlCS9/vrr+n//7//p008/1R/+8AdJZTcAXa6PM2fOKCQk5Ir2t0mTJk6fbTZbpdu50G233aY1a9Y4glFISIi6dOmiFStWWFJD+XWmTzzxRIXvdsyYMZJUaTgpV345QnZ29hXVczWmTp2q+fPna+fOnYqPj1eTJk10++23V/lIrQuV7+fNN99cYT/ffffdCvvYsGHDCqdGS0tLNXDgQKWkpOipp57Sli1btGvXLsc1sJUd18t9/7m5uerTp4+OHz+uRYsWOUJY+fWCl/qtSNJDDz0kb29vvfrqq5LKLpvw9vZ2usZ3xIgR+utf/6ojR44oMTFRzZs31y233KLNmzc7fT9r166t8N107txZ0qV/A7NmzXJa50pveouOjtbTTz+t9957TydOnNDEiROVk5PjuEnozJkzknRFv/WLv2ep7Luu7Pur7O91bfn88881YMAAtWvXThs2bHD8HoDawjWbwCU0bdpU3t7eVV7D1rRpU6fPF16/We7vf/+7PDw8tG7dOnl5eTnmV/UIk8r6aNasmeUX9A8ZMkRDhgxRUVGRdu7cqeTkZA0fPlxt27ZVTEyMS2so/96mTp2qoUOHVtqmQ4cOVa4fFxenP//5z1qzZo2mTJlSoxq8vLxUVFRUYf63337rdFzd3d01adIkTZo0SXl5efrXv/6lZ555RnFxcTp69Oglb0Iq72flypWOkchLqezYf/nll9qzZ4/eeustjRw50jE/Kyvrsv1VZc2aNSosLFRKSopTXRkZGVe0vr+/v0aOHKm//OUveuKJJ/Tmm29q+PDhCggIcGr34IMP6sEHH1RhYaF27Nih5557ToMHD9ahQ4fUpk0bNW3aVN26ddOcOXMq3U5wcHCVNfz+97/X4MGDHZ9rEqA8PDz03HPP6U9/+pO+/PJLSWV/16SyG2hcebd2Zce2Nnz++efq37+/2rRpo02bNl3R/2QDrkbYBC5h8ODBeuGFF9SkSROFhYXVqA/DMOTu7u50WvnHH3/UO++8c8V9xMfH65133tHBgwcvGcJcwWazqW/fvgoICFBqaqo+//xzxcTEKD4+XtOnT1daWpp++ctfXtU2OnTooHbt2mnPnj164YUXqr3+kCFD1LVrVyUnJ2vw4MGV3pGemprquEu4Mm3bttUXX3zhNO/QoUM6ePBghf+JKBcQEKBhw4bp+PHjmjBhgnJyctSpU6cqR4/j4uLk7u6uw4cP1/g0anlIuThMvfbaazXqr6o+TdPU66+/fsV9jB8/XkuXLtWwYcOUl5ensWPHVtnWx8dH8fHxKi4u1t133619+/apTZs2Gjx4sDZs2KAbbrih0stPLiU4OPiSYfRiJ0+erHR0sfwyhPK+Bg4cKDc3Ny1btkwxMTHVqskVLvwtXfzIs6pGTauSkZGh/v37KyQkRJs3b672dwy4CmETuIQJEyZo1apVuu222zRx4kR169ZNpaWlys3N1aZNmzR58mTdcsstl+zjzjvv1IIFCzR8+HD9/ve/13/+8x/Nnz+/WiMxs2bN0gcffKDbbrtNzzzzjLp27aq8vDxt3LhRkyZNcroTvCamT5+uY8eO6fbbb1dISIjy8vK0aNEieXh4qG/fvo7v4t1339WQIUM0ZcoU9ejRQz/++KO2b9+uwYMHKzY2tlrbfO211xQfH6+4uDiNGjVKrVq10nfffafMzEzt3r1b7733XpXrurm5afXq1Ro4cKBiYmL02GOPKTY2Vj4+Pjpy5IhWrlyptWvX6uzZs1X2MWLECN1///0aM2aMEhMTdeTIEc2bN88xslUuISFBXbp0UXR0tJo1a6YjR45o4cKFatOmjdq1aydJ6tq1qyRp0aJFGjlypDw8PNShQwe1bdtWs2bN0h/+8Ad9/fXXGjRokBo3bqxvvvlGu3btko+PT5UP8C7XsWNH3XDDDZoyZYpM01RgYKDWrl3rdDq6ugYMGCBPT0/95je/0VNPPaXz589r2bJll/y+Lta+fXsNGjRIH3zwgXr37q2oqCin5Q8//LC8vb3Vq1cvBQUF6dSpU0pOTpa/v7/jGuFZs2Zp8+bN6tmzp8aPH68OHTro/PnzysnJ0YYNG/Tqq69e8aUblxMXF6eQkBAlJCSoY8eOKi0tVUZGhl566SU1atRIjz/+uKSy/wl55pln9Pzzz+vHH390PEJq//79+vbbby97vK5W+W9p7ty5io+Pl5ubm7p16yZPT0917dpV27Zt09q1axUUFCRfX98q/+fz4MGDjuur58yZo6+++kpfffWVY/kNN9xQ4bcOWKaOb1ACLFN+B/LFd5KXu/POOy97N7ppmua5c+fMadOmmR06dDA9PT1Nf39/s2vXrubEiRPNU6dOOdpJMpOSkird1l//+lezQ4cOps1mM8PDw83k5GTzjTfeqPQO6TvvvLPSPo4ePWo+9NBDZsuWLU0PDw8zODjYvPfee81vvvnGNM3/u7P1vffec1qv/A7xN9980zHv4juM161bZ8bHx5utWrUyPT09zebNm5t33HGHmZ6e7tTX2bNnzccff9xs3bq16eHhYTZv3ty88847zQMHDjht649//GOF+iWZzz33nNO8PXv2mPfee6/ZvHlz08PDw2zZsqX5y1/+0nz11Vcr/Q4ulpeXZz7//PPmTTfdZDZq1Mj08PAwW7dubd5///3m//t//8/RrrK70UtLS8158+aZ4eHhppeXlxkdHW2mpaVVuBv9pZdeMnv27Gk2bdrU9PT0NFu3bm3+7ne/M3NycpxqmTp1qhkcHGw2aNCgwh3Ga9asMWNjY00/Pz/TZrOZbdq0MYcNG2b+61//crQZOXKk6ePjU+l+7t+/3xwwYIDp6+trNm7c2PzVr35l5ubmVvhOy+9GP3PmjNP6le3/2rVrzaioKNPLy8ts1aqV+eSTT5offPBBhdov/q1c6K233jIlmX//+98rLFu+fLkZGxtrtmjRwvT09HT8Xr/44gundmfOnDHHjx9vhoWFmR4eHmZgYKD5i1/8wvzDH/5gnjt3rtLt1sS7775rDh8+3GzXrp3Tb2XEiBGVPuXh7bffNm+++WbTy8vLbNSokdm9e3env0N9+/Y1O3fuXGG9i7+vqv5eXrjswu+7qKjIHD16tNmsWTPTMAyn45aRkWH26tXLbNiwoSnJ6Xd6scs9jePCfQGsZpjmFTxsEACAiyQmJmrnzp3Kycm55t/WBMA6nEYHAFyxoqIi7d69W7t27dLq1au1YMECgiaAS2JkEwBwxXJychQWFiY/Pz8NHz5cixcvrvLNVAAgETYBAABgIR7qDgAAAMsQNgEAAGAZwiYAAAAsU+/uRi8tLdWJEyfk6+tbZ6/3AgAAQNVM09T333+v4OBgNWhw6bHLehc2T5w44dL30QIAAMAaR48eveybvupd2PT19ZVUVryfn18dVwMAAICLFRQUKDQ01JHbLqXehc3yU+d+fn6ETQAAgHrsSi555AYhAAAAWIawCQAAAMsQNgEAAGCZenfNJgAA+Pmx2+0qKSmp6zJQDR4eHnJzc7vqfgibAADAMqZp6tSpU8rLy6vrUlADAQEBatmy5VU9+5ywCQAALFMeNJs3b66GDRvywpZrhGma+uGHH3T69GlJUlBQUI37ImwCAABL2O12R9Bs0qRJXZeDavL29pYknT59Ws2bN6/xKXVuEAIAAJYov0azYcOGdVwJaqr82F3N9baETQAAYClOnV+7XHHsCJsAAACwDGETAACgBgzD0Jo1a+q6jHqPsAkAAHCRU6dOady4cQoPD5fNZlNoaKgSEhK0ZcsWS7a3bds2GYZh6SOizp49qxEjRsjf31/+/v4aMWJErTySirvRAQBAvWa3S+np0smTUlCQ1KeP5IJnjVcpJydHvXr1UkBAgObNm6du3bqppKREqampSkpK0oEDB6zb+FUyTVN2u13u7hUj3vDhw3Xs2DFt3LhRkvT73/9eI0aM0Nq1ay2tiZFNAAB+RuymqW1nz2rFN99o29mzsptmXZd0VVJSpLZtpdhYafjwsj/bti2bb5UxY8bIMAzt2rVLw4YNU/v27dW5c2dNmjRJO3furHSdykYmMzIyZBiGcnJyJElHjhxRQkKCGjduLB8fH3Xu3FkbNmxQTk6OYmNjJUmNGzeWYRgaNWqUpLLwOG/ePIWHh8vb21tRUVFauXJlhe2mpqYqOjpaNptN6enpFerLzMzUxo0b9Ze//EUxMTGKiYnR66+/rnXr1ungwYOu+eKqUO2wuWPHDiUkJCg4OLjSaxUMw6h0+uMf/+iqmgEAQCVSzpxR2507Fbtnj4ZnZip2zx613blTKWfO1HVpNZKSIg0bJh075jz/+PGy+VYEzu+++04bN25UUlKSfHx8KiwPCAiocd9JSUkqKirSjh07tHfvXs2dO1eNGjVSaGioVq1aJUk6ePCgTp48qUWLFkmSpk2bpjfffFPLli3Tvn37NHHiRN1///3avn27U99PPfWUkpOTlZmZqW7dulXY9scffyx/f3/dcsstjnm33nqr/P399dFHH9V4n65EtU+jFxYWKioqSg8++KASExMrLD958qTT5w8++EC/+93vKm0LAABcI+XMGQ3bt08Xj2MeLyrSsH37tLJzZw1t1qxOaqsJu116/HGpsoFZ05QMQ5owQRoyxLWn1LOysmSapjp27Oi6Tv8rNzdXiYmJ6tq1qyQpPDzcsSwwMFCS1Lx5c0egLSws1IIFC5SWlqaYmBjHOh9++KFee+019e3b17H+rFmzNGDAgCq3ferUKTVv3rzC/ObNm+vUqVNXvW+XUu2wGR8fr/j4+CqXt2zZ0unz+++/r9jYWKcvFAAAuI7dNPV4VlaFoClJpiRD0oSsLA1p2lRu18gzL9PTK45oXsg0paNHy9r16+e67Zr/TbdWPBt0/Pjxeuyxx7Rp0yb1799fiYmJlY5Cltu/f7/Onz9fIUQWFxere/fuTvOio6Mvu/3K9sk0Tcufg2rpNZvffPON1q9fr9/97ndVtikqKlJBQYHTBAAArlx6Xp6OFRVVudyUdLSoSOm1cOexq1x0ovSq212pdu3ayTAMZWZmVmu9Bg3KIpV5wVDsxW/dGT16tL7++muNGDFCe/fuVXR0tF555ZUq+ywtLZUkrV+/XhkZGY5p//79TtdtSqr0lP+FWrZsqW+++abC/DNnzqhFixaX3rmrZGnYXL58uXx9fTV06NAq2yQnJztuwff391doaKiVJQEA8LNzsrjYpe3qg6Ag17a7UoGBgYqLi9OSJUtUWFhYYXlVjwpq9t9LFC68nDAjI6NCu9DQUD366KNKSUnR5MmT9frrr0uSPD09JZW9T75cp06dZLPZlJubq4iICKepunkpJiZG+fn52rVrl2PeJ598ovz8fPXs2bNafVWXpWHzr3/9q37729/Ky8uryjZTp05Vfn6+Yzp69KiVJQEA8LMT9N+g4qp29UGfPlJISNm1mZUxDCk0tKydqy1dulR2u109evTQqlWr9NVXXykzM1Mvv/yy49rJi5UHwBkzZujQoUNav369XnrpJac2EyZMUGpqqrKzs7V7926lpaUpMjJSktSmTRsZhqF169bpzJkzOnfunHx9ffXEE09o4sSJWr58uQ4fPqzPP/9cS5Ys0fLly6u1T5GRkRo0aJAefvhh7dy5Uzt37tTDDz+swYMHq0OHDjX7oq6QZWEzPT1dBw8e1OjRoy/Zzmazyc/Pz2kCAABXrk9AgEJsNlV15Z0hKdRmU5+ruJO6trm5Sf+9IbtC4Cz/vHChNc/bDAsL0+7duxUbG6vJkyerS5cuGjBggLZs2aJly5ZVuo6Hh4dWrFihAwcOKCoqSnPnztXs2bOd2tjtdiUlJTmCX4cOHbR06VJJUqtWrTRz5kxNmTJFLVq00NixYyVJzz//vKZPn67k5GRFRkYqLi5Oa9euVVhYWLX3629/+5u6du2qgQMHauDAgerWrZveeeedavdTXYZp1vwBXIZhaPXq1br77rsrLBs1apS+/PJLffbZZ9Xqs6CgQP7+/srPzyd4AgBwhcrvRpfkdKNQeU6ri7vRz58/r+zsbIWFhV3yLOelpKSU3ZV+4c1CoaFlQfMSV+nBRao6htXJa9W+G/3cuXPKyspyfM7OzlZGRoYCAwPVunVrRwHvvfdeheFjAABgjaHNmmll5856PCvL6WahEJtNCyMirqnHHl1o6NCyxxvV5huE4FrVDpufffaZ4yn3kjRp0iRJ0siRI/XWW29Jkv7+97/LNE395je/cU2VAADgsoY2a6YhTZsqPS9PJ4uLFeTpqT4BAdfM446q4ubm2scboXZd1Wl0K3AaHQCAnwdXnEZH3XLFaXTejQ4AAADLEDYBAABgGcImAAAALEPYBAAAgGUImwAAALAMYRMAAACWIWwCAADUgGEYWrNmTV2XUe8RNgEAAC5y6tQpjRs3TuHh4bLZbAoNDVVCQoK2bNliyfa2bdsmwzCUl5dnSf+SNGfOHPXs2VMNGzZUQECAZdu5WLXfIAQAAFCb7KV2peem6+T3JxXkG6Q+rfvIrYF176vMyclRr169FBAQoHnz5qlbt24qKSlRamqqkpKSdODAAcu2fbVM05Tdbpe7e8WIV1xcrF/96leKiYnRG2+8UWs1MbIJAADqrZTMFLVd1Faxy2M1PGW4YpfHqu2itkrJTLFsm2PGjJFhGNq1a5eGDRum9u3bq3Pnzpo0aZJ27txZ6TqVjUxmZGTIMAzl5ORIko4cOaKEhAQ1btxYPj4+6ty5szZs2KCcnBzHq8AbN24swzA0atQoSWXhcd68eQoPD5e3t7eioqK0cuXKCttNTU1VdHS0bDab0tPTK61x5syZmjhxorp27Xr1X1I1MLIJAADqpZTMFA37xzCZcn6z9vGC4xr2j2Faee9KDY0c6tJtfvfdd9q4caPmzJkjHx+fCsuv5vRzUlKSiouLtWPHDvn4+Gj//v1q1KiRQkNDtWrVKiUmJurgwYPy8/OTt7e3JGnatGlKSUnRsmXL1K5dO+3YsUP333+/mjVrpr59+zr6fuqppzR//nyFh4fX6inyK0HYBAAA9Y691K7HNz5eIWhKkilThgxN2DhBQzoMcekp9aysLJmmqY4dO7qsz3K5ublKTEx0jCyGh4c7lgUGBkqSmjdv7giLhYWFWrBggdLS0hQTE+NY58MPP9Rrr73mFDZnzZqlAQMGuLxmVyBsAgCAeic9N13HCo5VudyUqaMFR5Wem65+bfu5bLumWRZuDcNwWZ/lxo8fr8cee0ybNm1S//79lZiYqG7dulXZfv/+/Tp//nyFEFlcXKzu3bs7zYuOjnZ5va7CNZsAAKDeOfn9SZe2u1Lt2rWTYRjKzMys1noNGpRFqvKwKkklJSVObUaPHq2vv/5aI0aM0N69exUdHa1XXnmlyj5LS0slSevXr1dGRoZj2r9/v9N1m5IqPeVfXxA2AQBAvRPkG+TSdlcqMDBQcXFxWrJkiQoLCyssr+rRRM2aNZMknTz5f+E3IyOjQrvQ0FA9+uijSklJ0eTJk/X6669Lkjw9PSVJdrvd0bZTp06y2WzKzc1VRESE0xQaGlrTXax1hE0AAFDv9GndRyF+ITJU+elsQ4ZC/ULVp3Ufl2976dKlstvt6tGjh1atWqWvvvpKmZmZevnllx3XTl6sPADOmDFDhw4d0vr16/XSSy85tZkwYYJSU1OVnZ2t3bt3Ky0tTZGRkZKkNm3ayDAMrVu3TmfOnNG5c+fk6+urJ554QhMnTtTy5ct1+PBhff7551qyZImWL19e7f3Kzc1VRkaGcnNzZbfbHSOl586dq/6XVA2ETQAAUO+4NXDTokGLJKlC4Cz/vHDQQkuetxkWFqbdu3crNjZWkydPVpcuXTRgwABt2bJFy5Ytq3QdDw8PrVixQgcOHFBUVJTmzp2r2bNnO7Wx2+1KSkpSZGSkBg0apA4dOmjp0qWSpFatWmnmzJmaMmWKWrRoobFjx0qSnn/+eU2fPl3JycmKjIxUXFyc1q5dq7CwsGrv1/Tp09W9e3c999xzOnfunLp3767u3bvrs88+q3Zf1WGYF15cUA8UFBTI399f+fn58vPzq+tyAABADZ0/f17Z2dkKCwuTl5dXjfpIyUzR4xsfd7pZKNQvVAsHLXT5Y49QUVXHsDp5jbvRAQBAvTU0cqiGdBhSq28QgmsRNgEAQL3m1sDNpY83Qu3imk0AAABYhrAJAAAAyxA2AQAAYBnCJgAAACxD2AQAAIBlCJsAAACwDGETAAAAliFsAgAA1IBhGFqzZk1dl1HvETYBAAAucurUKY0bN07h4eGy2WwKDQ1VQkKCtmzZYsn2tm3bJsMwlJeXZ0n/OTk5+t3vfqewsDB5e3vrhhtu0HPPPafi4mJLtnch3iAEAADqN7tdSk+XTp6UgoKkPn0kN+teV5mTk6NevXopICBA8+bNU7du3VRSUqLU1FQlJSXpwIEDlm37apmmKbvdLnd354h34MABlZaW6rXXXlNERIS+/PJLPfzwwyosLNT8+fMtrYmRTQAAUH+lpEht20qxsdLw4WV/tm1bNt8iY8aMkWEY2rVrl4YNG6b27durc+fOmjRpknbu3FnpOpWNTGZkZMgwDOXk5EiSjhw5ooSEBDVu3Fg+Pj7q3LmzNmzYoJycHMXGxkqSGjduLMMwNGrUKEll4XHevHkKDw+Xt7e3oqKitHLlygrbTU1NVXR0tGw2m9LT0yvUN2jQIL355psaOHCgwsPDddddd+mJJ55QioXfYzlGNgEAQP2UkiINGyaZpvP848fL5q9cKQ0d6tJNfvfdd9q4caPmzJkjHx+fCssDAgJq3HdSUpKKi4u1Y8cO+fj4aP/+/WrUqJFCQ0O1atUqJSYm6uDBg/Lz85O3t7ckadq0aUpJSdGyZcvUrl077dixQ/fff7+aNWumvn37Ovp+6qmnNH/+fIWHh19xjfn5+QoMDKzx/lwpwiYAAKh/7Hbp8ccrBk2pbJ5hSBMmSEOGuPSUelZWlkzTVMeOHV3WZ7nc3FwlJiaqa9eukqTw8HDHsvLQ17x5c0dYLCws1IIFC5SWlqaYmBjHOh9++KFee+01p7A5a9YsDRgw4IprOXz4sF555RW99NJLV7tbl0XYBAAA9U96unTsWNXLTVM6erSsXb9+Ltus+d9waxiGy/osN378eD322GPatGmT+vfvr8TERHXr1q3K9vv379f58+crhMji4mJ1797daV50dPQV13HixAkNGjRIv/rVrzR69Ojq7UQNcM0mAACof06edG27K9SuXTsZhqHMzMxqrdegQVmkMi8YiS0pKXFqM3r0aH399dcaMWKE9u7dq+joaL3yyitV9llaWipJWr9+vTIyMhzT/v37na7blFTpKf/KnDhxQrGxsYqJidGf//znK1rnahE2AQBA/RMU5Np2VygwMFBxcXFasmSJCgsLKyyv6tFEzZo1kySdvCD8ZmRkVGgXGhqqRx99VCkpKZo8ebJef/11SZKnp6ckyW63O9p26tRJNptNubm5ioiIcJpCQ0OrvW/Hjx9Xv379dNNNN+nNN990BGSrETYBAED906ePFBJSdm1mZQxDCg0ta+diS5culd1uV48ePbRq1Sp99dVXyszM1Msvv+y4dvJi5QFwxowZOnTokNavX1/hesgJEyYoNTVV2dnZ2r17t9LS0hQZGSlJatOmjQzD0Lp163TmzBmdO3dOvr6+euKJJzRx4kQtX75chw8f1ueff64lS5Zo+fLl1dqnEydOqF+/fgoNDdX8+fN15swZnTp1SqdOnarZl1QNhE0AAFD/uLlJixaV/fPFgbP888KFljxvMywsTLt371ZsbKwmT56sLl26aMCAAdqyZYuWLVtW6ToeHh5asWKFDhw4oKioKM2dO1ezZ892amO325WUlKTIyEgNGjRIHTp00NKlSyVJrVq10syZMzVlyhS1aNFCY8eOlSQ9//zzmj59upKTkxUZGam4uDitXbtWYWFh1dqnTZs2KSsrS2lpaQoJCVFQUJBjspphmpXd5lV3CgoK5O/vr/z8fPn5+dV1OQAAoIbOnz+v7OxshYWFycvLq2adpKSU3ZV+4c1CoaFlQdPFjz1CRVUdw+rkNe5GBwAA9dfQoWWPN6rFNwjBtQibAACgfnNzc+njjVC7qn3N5o4dO5SQkKDg4GAZhqE1a9ZUaJOZmam77rpL/v7+8vX11a233qrc3FxX1AsAqA67Xdq2TVqxouzPC+50BYDaUO2wWVhYqKioKC1evLjS5YcPH1bv3r3VsWNHbdu2TXv27NGzzz5b82s1AAA1UwfvlAaAi1X7NHp8fLzi4+OrXP6HP/xBd9xxh+bNm+eYd+HrmAAAtaAO3ikNAJVx6aOPSktLtX79erVv315xcXFq3ry5brnllkpPtQMALHK5d0pLZe+U5pQ6gFrg0rB5+vRpnTt3Ti+++KIGDRqkTZs26Z577tHQoUO1ffv2StcpKipSQUGB0wQAuArVeac0AFjMpXejl7/Dc8iQIZo4caIk6cYbb9RHH32kV199VX379q2wTnJysmbOnOnKMgDg+lZH75QGgMq4dGSzadOmcnd3V6dOnZzmR0ZGVnk3+tSpU5Wfn++Yjh496sqSAOD6U0fvlAaAyrg0bHp6eurmm2/WwYMHneYfOnRIbdq0qXQdm80mPz8/pwkAcBXq8J3SwPWkqkdAwlm1w+a5c+eUkZGhjIwMSVJ2drYyMjIcI5dPPvmk3n33Xb3++uvKysrS4sWLtXbtWo0ZM8alhQMAqlCH75QGfi5OnTqlcePGKTw8XDabTaGhoUpISNCWLVss2d62bdtkGIby8vIs6V+S7rrrLrVu3VpeXl4KCgrSiBEjdOLECcu2V67aYfOzzz5T9+7d1b17d0nSpEmT1L17d02fPl2SdM899+jVV1/VvHnz1LVrV/3lL3/RqlWr1Lt3b9dWDgCo2tChZY83atXKeX5ICI89wjXHbpradvasVnzzjbadPSt7ZU9acKGcnBz94he/UFpamubNm6e9e/dq48aNio2NVVJSkqXbvlqmaeqnn36qdFlsbKz+8Y9/6ODBg1q1apUOHz6sYcOG1UpR9Up+fr4pyczPz6/rUgDg2vfTT6a5datp/u//lv350091XRGuIz/++KO5f/9+88cff6xxH6tOnzZDPvrI1Natjinko4/MVadPu7BSZ/Hx8WarVq3Mc+fOVVh29uxZxz9LMlevXm2apmlu3brVlOS0/PPPPzclmdnZ2aZpmmZOTo45ePBgMyAgwGzYsKHZqVMnc/369WZ2drYpyWkaOXKkaZqmWVpaas6dO9cMCwszvby8zG7dupnvvfeeYxvl2924caP5i1/8wvTw8DDT0tKuaD/ff/990zAMs7i4uMo2VR3D6uQ13o0OAD9nvFMa17CUM2c0bN8+XTyOebyoSMP27dPKzp01tFkzl27zu+++08aNGzVnzhz5+PhUWB4QEFDjvpOSklRcXKwdO3bIx8dH+/fvV6NGjRQaGqpVq1YpMTFRBw8elJ+fn7y9vSVJ06ZNU0pKipYtW6Z27dppx44duv/++9WsWTOnp/w89dRTmj9/vsLDw6+oxu+++05/+9vf1LNnT3l4eNR4n64EYRMAANQ7dtPU41lZFYKmVDb0Z0iakJWlIU2byq2qm+FqICsrS6ZpqmPHji7rs1xubq4SExPVtWtXSc5vWAwMDJQkNW/e3BEWCwsLtWDBAqWlpSkmJsaxzocffqjXXnvNKWzOmjVLAwYMuGwNTz/9tBYvXqwffvhBt956q9atW+eq3auSS+9GBwAAcIX0vDwdKyqqcrkp6WhRkdJdfEON+d/rQQ0XBthy48eP1+zZs9WrVy8999xz+uKLLy7Zfv/+/Tp//rwGDBigRo0aOaa3335bhw8fdmobHR19RTU8+eST+vzzz7Vp0ya5ubnpgQcecOyzVRjZBAAA9c7J4mKXtrtS7dq1k2EYyszM1N13333F6zVoUDZ+d2FwKykpcWozevRoxcXFaf369dq0aZOSk5P10ksvady4cZX2Wf6ynPXr16vVRTf72Ww2p8+VnfKvTNOmTdW0aVO1b99ekZGRCg0N1c6dOx0jp1ZgZBMAANQ7QZ6eLm13pQIDAxUXF6clS5aosLCwwvKqHk3U7L/Xjp684M1c5Y+JvFBoaKgeffRRpaSkaPLkyXr99dcllT2rXJLsdrujbadOnWSz2ZSbm6uIiAinKTQ0tKa76FAejIsuMYLsCoRNAABQ7/QJCFCIzaaqTmYbkkJtNvW5iht2qrJ06VLZ7Xb16NFDq1at0ldffaXMzEy9/PLLVY4AlgfAGTNm6NChQ1q/fr1eeuklpzYTJkxQamqqsrOztXv3bqWlpSkyMlKS1KZNGxmGoXXr1unMmTM6d+6cfH199cQTT2jixIlavny5Dh8+rM8//1xLlizR8uXLq7VPu3bt0uLFi5WRkaEjR45o69atGj58uG644QZLRzUlwiYAAKiH3AxDiyIiJKlC4Cz/vDAiwqU3B5ULCwvT7t27FRsbq8mTJ6tLly4aMGCAtmzZomXLllW6joeHh1asWKEDBw4oKipKc+fO1ezZs53a2O12JSUlKTIyUoMGDVKHDh20dOlSSVKrVq00c+ZMTZkyRS1atNDYsWMlSc8//7ymT5+u5ORkRUZGKi4uTmvXrlVYWFi19snb21spKSm6/fbb1aFDBz300EPq0qWLtm/fXuGUvKsZptVXhVZTQUGB/P39lZ+fz6srAQC4hp0/f17Z2dkKCwuTl5dXjfpIOXNGj2dlOd0sFGqzaWFEhMsfe4SKqjqG1clr3CAEAADqraHNmmlI06ZKz8vTyeJiBXl6qk9AgCUjmrAGYRMAANRrboahfo0b13UZqCGu2QQAAIBlCJsAAACwDGETAAAAliFsAgAAwDKETQAAAFiGsAkAAADLEDYBAABgGcImAABADRiGoTVr1tR1GfUeYRMAAOAip06d0rhx4xQeHi6bzabQ0FAlJCRoy5Ytlmxv27ZtMgxDeXl5lvR/oaKiIt14440yDEMZGRmWb483CAEAgHrNtJvKS89T8clieQZ5KqBPgAw3615XmZOTo169eikgIEDz5s1Tt27dVFJSotTUVCUlJenAgQOWbftqmaYpu90ud/eqI95TTz2l4OBg7dmzp1ZqYmQTAADUW2dSzmhn253aE7tHmcMztSd2j3a23akzKWcs2+aYMWNkGIZ27dqlYcOGqX379urcubMmTZqknTt3VrpOZSOTGRkZMgxDOTk5kqQjR44oISFBjRs3lo+Pjzp37qwNGzYoJydHsbGxkqTGjRvLMAyNGjVKUll4nDdvnsLDw+Xt7a2oqCitXLmywnZTU1MVHR0tm82m9PT0Kvftgw8+0KZNmzR//vyr+5KqgZFNAABQL51JOaN9w/ZJpvP8ouNF2jdsnzqv7KxmQ5u5dJvfffedNm7cqDlz5sjHx6fC8oCAgBr3nZSUpOLiYu3YsUM+Pj7av3+/GjVqpNDQUK1atUqJiYk6ePCg/Pz85O3tLUmaNm2aUlJStGzZMrVr1047duzQ/fffr2bNmqlv376Ovp966inNnz9f4eHhVdb4zTff6OGHH9aaNWvUsGHDGu9HdRE2AQBAvWPaTWU9nlUhaJYtlGRIWROy1HRIU5eeUs/KypJpmurYsaPL+iyXm5urxMREde3aVZIUHh7uWBYYGChJat68uSMsFhYWasGCBUpLS1NMTIxjnQ8//FCvvfaaU9icNWuWBgwYUOW2TdPUqFGj9Oijjyo6Otox2lobCJsAAKDeyUvPU9GxoqobmFLR0SLlpeepcb/GLtuuaZalW8Nw/TWh48eP12OPPaZNmzapf//+SkxMVLdu3apsv3//fp0/f75CiCwuLlb37t2d5kVHR19y26+88ooKCgo0derUmu9ADXHNJgAAqHeKTxa7tN2VateunQzDUGZmZrXWa9CgLFKVh1VJKikpcWozevRoff311xoxYoT27t2r6OhovfLKK1X2WVpaKklav369MjIyHNP+/fudrtuUVOkp/wulpaVp586dstlscnd3V0REhKSykDpy5Mgr39EaIGwCAIB6xzPI06XtrlRgYKDi4uK0ZMkSFRYWVlhe1aOJmjUru3b05MmTjnmVPVYoNDRUjz76qFJSUjR58mS9/vrrkiRPz7L9sNvtjradOnWSzWZTbm6uIiIinKbQ0NBq7dfLL7+sPXv2OALrhg0bJEnvvvuu5syZU62+qovT6AAAoN4J6BMgW4hNRceLKr9u05BsITYF9Alw+baXLl2qnj17qkePHpo1a5a6deumn376SZs3b9ayZcsqHfUsD4AzZszQ7Nmz9dVXX+mll15yajNhwgTFx8erffv2Onv2rNLS0hQZGSlJatOmjQzD0Lp163THHXfI29tbvr6+euKJJzRx4kSVlpaqd+/eKigo0EcffaRGjRpVa0SydevWTp8bNWokSbrhhhsUEhJS3a+oWhjZBAAA9Y7hZihiUcR/P1y8sOyPiIURljxvMywsTLt371ZsbKwmT56sLl26aMCAAdqyZYuWLVtW6ToeHh5asWKFDhw4oKioKM2dO1ezZ892amO325WUlKTIyEgNGjRIHTp00NKlSyVJrVq10syZMzVlyhS1aNFCY8eOlSQ9//zzmj59upKTkxUZGam4uDitXbtWYWFhLt9vqxjmhRcX1AMFBQXy9/dXfn6+/Pz8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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 3 ---\n", - "Aktuelle Cluster: [[0], [1], [4], [5], [2, 3]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 2. 3. 1.41421356 2. ]\n", - " [ 4. 5. 2.23606798 2. ]\n", - " [ 0. 6. 3.36650165 3. ]\n", - " [ 1. 8. 9.38971068 4. ]\n", - " [ 7. 9. 10.62230358 6. ]]\n" - ] - }, - { - "data": { - "image/png": "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cXHmDTfc4NjG2LFjTX9//0vuy8MPP2w2bNjQPHz4sNP8st/j3r17L7l+VXz77bdmr169HH/33d3dzR49ephJSUnmDz/84Gj39ddfm25ubuZvf/vbS/bXp08fU5L5ySefOM3v2LGjGRsb6/hc9vfytttuK9dH2bKtW7c65iUmJpqV/afZ29u7wt/spXz88cdO/8674447zPz8/Cr1AVwtTqPjZ++tt97Sp59+Wm7q1avXZdddu3atOnfurBtvvFHnz593TLGxseVOlUql10Q1atSoXD9btmxRv3795OfnJzc3N7m7u2v69On67rvvdOrUKae2Xbt2Vbt27ZzmffDBB4qJiVFERMRlax48eHC5/iSVG5W50M033yxJuueee/TPf/5Tx44dK9fmgw8+ULt27ZxGsypz5513Oo2iXlxDZmam9u/fr9/+9reS5PTd3nHHHTpx4kS5U/+1pXv37tq9e7fGjBmjlJQU5efnX/G6KSkpOn/+vO6//36nffT09FSfPn3K/X6k0lHJi506dUqPPPKIgoODVb9+fbm7uyskJESSlJGRUa59Rb+Bc+fOOf3WPv/8cw0ePFiNGzd2/Cbvv/9+2e12HTx4sNJ9qlevnsaOHau1a9cqJydHUuko6YYNGzRmzBjHSH/37t2Vm5ur3/zmN3r//fcrvAN67dq1iomJUVBQkNP3ExcXJ0navn17pXWUlJQ4rWO32yttK0mNGzdWamqqPv30U73wwgsaMmSIDh48qKlTp6pLly6O+jZt2iS73a7ExMRL9idJLVq0UPfu3Z3mde3atcK/axUd15rQpUsXffrpp9q+fbsWLVqkzz//XP3799ePP/5YK/Xg+kTYxM9eRESEoqKiyk1lp3Mv5ZtvvtEXX3whd3d3p8nHx0emaZb7D2jZKdQL7dy5UwMGDJAkvfbaa/rf//1fffrpp/rDH/4gqfQGoMv1cfr0abVq1eqK9rdx48ZOn202W4XbudBtt92m1atXO4JRq1at1LlzZ6cbDFxZQ9l1po8//ni573bMmDGSdMnHs5RdjpCVlXVF9VyNqVOnav78+UpLS1NcXJwaN26s22+/vdJHal2obD9vvvnmcvv57rvvltvHBg0alDs1WlJSogEDBig5OVlPPvmkNm/erJ07dzquga3ouF7u+8/JyVHv3r117NgxLVq0yBHCyq4XvNRvRZIefPBB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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 4 ---\n", - "Aktuelle Cluster: [[0], [1], [4], [5], [2, 3]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 2. 3. 1.41421356 2. ]\n", - " [ 4. 5. 2.23606798 2. ]\n", - " [ 0. 6. 3.36650165 3. ]\n", - " [ 1. 8. 9.38971068 4. ]\n", - " [ 7. 9. 10.62230358 6. ]]\n" - ] - }, - { - "data": { - "image/png": "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NJ3nHztWNn/5cmnIEJdu8syZM1q/fr1mz54tHx+fCssDAgJq3HdCQoKKi4u1fft2+fj4aN++fWrQoIFCQkK0YsUKxcfH68CBA/Lz85O3t7ckaerUqUpOTtaSJUvUtm1bbd++XQ888ICaNGmiPn36OPp++umnNXfuXIWFhV12jXl5eQoMDKzx/lwuwiYAAKh77HbpiScqBk2pbJ5hSOPHS4MHu/SUekZGhkzTVIcOHVzWZ7ns7GzFx8erS5cukqSwsDDHsvLQ17RpU0dYLCws1Lx587R582b16NHDsc7HH3+sN954wylszpw5U/3797/sWg4dOqTXXntNr7zyypXu1iURNgEAQN2TmiodPVr1ctOUjhwpa9e3r8s2a/433BqG4bI+y40bN06PP/64NmzYoH79+ik+Pl5du3atsv2+fft07ty5CiGyuLhY3bp1c5oXFRV12XUcP35cAwcO1G9+8xuNGjWqejtRA1yzCQAA6p4TJ1zb7jK1bdtWhmEoPT29WuvVq1cWqczzRmJLSkqc2owaNUrffvuthg8frj179igqKkqvvfZalX2WlpZKktauXau0tDTHtG/fPqfrNiVVesq/MsePH1d0dLR69Oihv/zlL5e1zpUibAIAgLonKMi17S5TYGCgYmJitGjRIhUWFlZYXtWjiZo0aSJJOnFe+E1LS6vQLiQkRI899piSk5M1adIkvfnmm5IkT09PSZLdbne07dixo2w2m7KzsxUeHu40hYSEVHvfjh07pr59++qmm27S22+/7QjIViNsAgCAuqd3b6lly7JrMytjGFJISFk7F1u8eLHsdru6d++uFStW6JtvvlF6erpeffVVx7WTFyoPgNOnT9fBgwe1du3aCtdDjh8/XikpKcrMzNSuXbu0efNmRURESJJat24twzC0Zs0a5eTkqKCgQL6+vnryySc1YcIELV26VIcOHdKXX36pRYsWaenSpdXap+PHj6tv374KCQnR3LlzlZOTo5MnT+rkyZM1+5KqgbAJAADqHjc3acGCsn++MHCWf54/35LnbYaGhmrXrl2Kjo7WpEmT1LlzZ/Xv31+bNm3SkiVLKl3Hw8NDy5Yt0/79+xUZGak5c+Zo1qxZTm3sdrsSEhIUERGhgQMHqn379lq8eLEkqUWLFpoxY4YmT56sZs2aacyYMZKkF198UdOmTVNiYqIiIiIUExOj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9fWVYRi1Xc4vWn5+vkJCQnTkyBH5+fnVdjm4Sjju1x+O+fWHY379udrH3DRN/fDDDwoODla9ehe/KrPOjWzWq1dPLVu2rO0yrit+fn78y+g6xHG//nDMrz8c8+vP1TzmlxrRLMcNQgAAALAMYRMAAACWIWxex2w2m1544QXZbLbaLgVXEcf9+sMxv/5wzK8/dfmY17kbhAAAAPDLwcgmAAAALEPYBAAAgGUImwAAALAMYRMAAACWIWxeB7Zv3664uDgFBwfLMAytWrWqyraPPvqoDMPQ/Pnzr1p9cL3LOebp6em6++675e/vL19fX916663Kzs6++sXCJS51zAsKCjRmzBi1bNlS3t7eioiI0JIlS2qnWLhEYmKibr75Zvn6+qpp06a65557dODAAac2pmlq+vTpCg4Olre3t/r27au9e/fWUsW4Upc65iUlJXrmmWfUpUsX+fj4KDg4WA8++KCOHz9ei1UTNq8LhYWFioyM1MKFCy/abtWqVfrss88UHBx8lSqDVS51zA8dOqRevXqpQ4cO2rp1q3bv3q3nn39eXl5eV7lSuMqljvmECRO0fv16/c///I/S09M1YcIEjR07Vh9++OFVrhSusm3bNiUkJGjHjh3auHGjfv75Zw0YMECFhYWONklJSZo3b54WLlyozz//XM2bN1f//v31ww8/1GLlqKlLHfMff/xRu3bt0vPPP69du3YpOTlZBw8e1N133127hZu4rkgyV65cWWH+0aNHzRYtWphff/212bp1a/PPf/7zVa8N1qjsmN9///3mAw88UDsFwXKVHfNOnTqZM2fOdJp30003mVOnTr2KlcFKp0+fNiWZ27ZtM03TNEtLS83mzZubL7/8sqPNuXPnTH9/f/P111+vrTLhQhce88rs3LnTlGQePnz4KlbmjJFNqLS0VMOHD9dTTz2lTp061XY5sFhpaanWrl2rdu3aKSYmRk2bNtUtt9xy0csrcO3r1auX/v3vf+vYsWMyTVNbtmzRwYMHFRMTU9ulwUXy8vIkSYGBgZKkzMxMnTx5UgMGDHC0sdls6tOnjz755JNaqRGudeExr6qNYRgKCAi4SlVVRNiE5syZI3d3d40bN662S8FVcPr0aRUUFOjll1/WwIEDtWHDBt17770aMmSItm3bVtvlwSKvvvqqOnbsqJYtW8rT01MDBw7U4sWL1atXr9ouDS5gmqYmTpyoXr16qXPnzpKkkydPSpKaNWvm1LZZs2aOZbh2VXbML3Tu3DlNnjxZw4YNk5+f31Wu8P+419qWUSf8v//3/7RgwQLt2rVLhmHUdjm4CkpLSyVJgwcP1oQJEyRJN954oz755BO9/vrr6tOnT22WB4u8+uqr2rFjh/7973+rdevW2r59u0aPHq2goCD169evtsvDFRozZoy++uorffzxxxWWXfjvdtM0+ff9L8DFjrlUdrPQb3/7W5WWlmrx4sVXuTpnjGxe51JTU3X69Gm1atVK7u7ucnd31+HDhzVp0iS1adOmtsuDBRo3bix3d3d17NjRaX5ERAR3o/9C/fTTT3r22Wc1b948xcXFqWvXrhozZozuv/9+zZ07t7bLwxUaO3as/v3vf2vLli1q2bKlY37z5s0lqcIo5unTpyuMduLaUtUxL1dSUqL77rtPmZmZ2rhxY62OakqEzeve8OHD9dVXXyktLc0xBQcH66mnnlJKSkptlwcLeHp66uabb67wiJSDBw+qdevWtVQVrFRSUqKSkhLVq+f8r3w3NzfHSDeuPaZpasyYMUpOTtbmzZsVGhrqtDw0NFTNmzfXxo0bHfOKi4u1bds29ezZ82qXCxe41DGX/i9ofvPNN/rPf/6jRo0a1UKlzjiNfh0oKChQRkaG43NmZqbS0tIUGBioVq1aVfghenh4qHnz5mrfvv3VLhUucqlj/tRTT+n+++/X7bffrujoaK1fv16rV6/W1q1ba69oXJFLHfM+ffroqaeekre3t1q3bq1t27bp3Xff1bx582qxalyJhIQE/eMf/9CHH34oX19fxwimv7+/vL29ZRiGxo8fr5deeklt27ZV27Zt9dJLL6l+/foaNmxYLVePmrjUMf/55581dOhQ7dq1S2vWrJHdbne0CQwMlKenZ+0UXmv3weOq2bJliympwjRixIhK2/Poo2vf5Rzzt956ywwPDze9vLzMyMhIc9WqVbVXMK7YpY75iRMnzJEjR5rBwcGml5eX2b59e/OVV14xS0tLa7dw1Fhlx1uS+fbbbzvalJaWmi+88ILZvHlz02azmbfffru5Z8+e2isaV+RSxzwzM7PKNlu2bKm1uo3/Fg8AAAC4HNdsAgAAwDKETQAAAFiGsAkAAADLEDYBAABgGcImAAAALEPYBAAAgGUImwAAALAMYRMAAACWIWwCAADAMoRNAAAAWIawCQAAAMsQNgEAAGCZ/w+8O3/rO3QYsgAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 5 ---\n", - "Aktuelle Cluster: [[0], [1], [4], [5], [2, 3]]\n", - "Abstandsmatrix nach Linkage:\n", - "[[ 2. 3. 1.41421356 2. ]\n", - " [ 4. 5. 2.23606798 2. ]\n", - " [ 0. 6. 3.36650165 3. ]\n", - " [ 1. 8. 9.38971068 4. ]\n", - " [ 7. 9. 10.62230358 6. ]]\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAApsAAAIOCAYAAAD3OcaUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABbGElEQVR4nO3deVxWdd7/8fcR4QKRRVxBUSFccCMbsixNmVSkREucuscyrWwqUXNp0cZMTSMZdbRcapoWa2baFGlcEh1Xuousn2GmqGEgrmklEJRAF+f3B8N1ewmo4HUE8/V8PM7DrnO+53s+5zqX9e57NsM0TVMAAACABerVdgEAAAD47SJsAgAAwDKETQAAAFiGsAkAAADLEDYBAABgGcImAAAALEPYBAAAgGUImwAAALAMYRMAAACWIWziN+vNN9+UYRj64osvKl0+aNAgtW3b1mle27ZtNWrUKOuLs8DWrVtlGIZWrFhxwbajRo2qsO+ukJ2dLcMwNG/ePJf3XZn8/HzNmTNHkZGR8vX1lc1mU9u2bfXAAw9o586djnblv4Xs7GxL6vjkk080Y8YM5ebmWtJ/bbLqt1IbPvvsM915551q3bq1bDabmjdvrp49e2ry5MnV7qtv377q0qXLJdVT/nd269atjnnr1q3TjBkzKm3//PPPKzk5+aL7b9u2rQzDqDA98sgjl1Q3UF31a7sAoC5ZtWqVfH19a7sMyz3zzDN67LHHaruMS3Lw4EENGDBAJ0+e1COPPKKZM2eqYcOGys7O1vvvv6/f/e53ys3NlZ+fn+W1fPLJJ5o5c6ZGjRolf39/y7eH6lu7dq0GDx6svn37KjExUYGBgTp+/Li++OILvfvuu5o/f/5lr+m6667Tp59+qk6dOjnmrVu3TkuWLKk0cD7//PMaNmyY7rjjjovexs0331zhf/6aN29e05KBGiFsAmfp3r27y/oyTVNnzpyRl5fXJfXzyy+/XHIf57rmmmtc2t/lZrfbdeedd+r777/Xp59+6jTC1KdPH40cOVIfffSR3N3da7HKS/fzzz+rQYMGtV3Gb0JiYqJCQkKUkpKi+vX/7z99//M//6PExMTLWktJSYkMw5Cvr69uvPFGS7fl7+9v+TaAC+E0OnCWyk6j5+fn6/HHH1dISIg8PDzUsmVLTZgwQYWFhU7tDMPQ2LFj9fLLLys8PFw2m03Lly+XJM2cOVM33HCDAgIC5Ovrq+uuu06vvfaaTNOssP1BgwYpKSlJ3bt3l6enp2bOnClJOnr0qP70pz8pODhYHh4eCgoK0rBhw/Tdd9859VFSUqI///nPCgoKkq+vr/r166f9+/c7tans1OgHH3ygG264QX5+fmrQoIFCQ0P1wAMPOLXJzc3V5MmTFRoaKpvNpmbNmum2227Tvn37KnyXCxYsUEhIiBo2bKiePXsqLS2tQpsvvvhCgwcPVkBAgDw9PdW9e3e9//77FdqdKzk5Wbt379bUqVOrPJUZExNz3qBW1SUTffv2Vd++fR2fS0tLNXv2bHXo0EFeXl7y9/dXt27dtGjRIknSjBkz9MQTT0iSQkJCHKcqzz41+t5776lnz57y9vZWw4YNFR0drS+//NJpu6NGjVLDhg21e/duDRgwQD4+Prr11lslSRs3btSQIUPUqlUreXp6KiwsTA8//LC+//57pz5mzJghwzC0Z88e/fGPf5Sfn5+aN2+uBx54QHl5eU5tlyxZoltuuUXNmjWTt7e3unbtqsTERJWUlFT5nUnSrbfeqo4dO1b47ZqmqbCwMN1+++2OecuWLVNERIQaNmwoHx8fdezYUU8//bTTeidOnNDDDz+sVq1aycPDQyEhIZo5c6Z+/fXX89ZRXT/88IOaNGniFDTL1atX8T+F//rXv9SzZ081bNhQDRs21LXXXqvXXnutQrvPP/9cvXv3dvydeeGFF1RaWupYXn6q/O2339bkyZPVsmVL2Ww2ZWZmVjiNPmrUKC1ZskSSnE57l1+eUlhYqOXLlzvmn/07BeoyRjbxm2e32yv9D9e5/7GszM8//6w+ffroyJEjevrpp9WtWzft2bNH06dP1+7du/Wf//xHhmE42icnJys1NVXTp09XixYt1KxZM0ll1zI+/PDDat26tSQpLS1N48aN09GjRzV9+nSnbe7cuVMZGRmaNm2aQkJC5O3traNHj+r6669XSUmJo44ffvhBKSkpOn36tNNpsaefflo333yz/v73vys/P19PPfWUYmNjlZGRITc3t0r389NPP9Xdd9+tu+++WzNmzJCnp6cOHTqkzZs3O9r89NNP6tWrl7Kzs/XUU0/phhtuUEFBgbZv367jx4+rY8eOjrZLlixRx44dtXDhQkllp+1vu+02ZWVlOU5rb9myRQMHDtQNN9ygl19+WX5+fnr33Xd199136+effz7vtbMbNmyQpGqdTqypxMREzZgxQ9OmTdMtt9yikpIS7du3z3F95ujRo/Xjjz/qpZdeUlJSkgIDAyXJcWr0+eef17Rp03T//fdr2rRpKi4u1l/+8hf17t1bO3bscDqFWlxcrMGDB+vhhx/WlClTHL/bgwcPqmfPnho9erT8/PyUnZ2tBQsWqFevXtq9e3eFEdy4uDjdfffdevDBBx2hXJJef/11R5uDBw9q+PDhjv+J2rVrl+bMmaN9+/Y5tTvXY489piFDhmjTpk3q16+fY/5HH32kgwcP6sUXX5QkvfvuuxozZozGjRunefPmqV69esrMzNTevXsd65w4cUI9evRQvXr1NH36dF1zzTX69NNPNXv2bGVnZ+uNN96o9vGqSs+ePfX3v/9d48eP1z333KPrrruuypHv6dOn67nnntPQoUM1efJk+fn56euvv9ahQ4ec2p04cUL33HOPJk+erGeffVarVq3S1KlTFRQUpPvuu8+p7dSpU9WzZ0+9/PLLqlevnpo1a6YTJ044tXnmmWdUWFioFStW6NNPP3XMDwwM1Keffqrf//73ioqK0jPPPCNJF3XJz/bt2+Xj46MzZ86oXbt2evDBBzVhwoQq/10AWMIEfqPeeOMNU9J5pzZt2jit06ZNG3PkyJGOzwkJCWa9evXMzz//3KndihUrTEnmunXrHPMkmX5+fuaPP/543rrsdrtZUlJizpo1y2zcuLFZWlrqtH03Nzdz//79Tus88MADpru7u7l3794q+92yZYspybztttuc5r///vumJPPTTz91zBs5cqTTvs+bN8+UZObm5lbZ/6xZs0xJ5saNG6tsk5WVZUoyu3btav7666+O+Tt27DAlme+8845jXseOHc3u3bubJSUlTn0MGjTIDAwMNO12e5XbGThwoCnJPHPmTJVtzlb+W8jKynLMO/dYl+vTp4/Zp08fp3quvfba8/b/l7/8pUL/pmmaOTk5Zv369c1x48Y5zf/pp5/MFi1amHfddZdj3siRI01J5uuvv37ebZWWlpolJSXmoUOHTEnmhx9+6Fj27LPPmpLMxMREp3XGjBljenp6Ov3Wzlb+m3zrrbdMNzc3p9/wub8Vu91uhoaGmkOGDHHqIyYmxrzmmmsc2xg7dqzp7+9/3n15+OGHzYYNG5qHDh1yml/+e9yzZ89516+O77//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Od0JXhPTp0/XkSNHdOutt6pVq1bKzc3VokWL5O7urj59+ji+i/fee09DhgzRlClT1KNHD/3yyy/atm2bBg0apKioqGpt85VXXlFMTIyio6M1atQotWzZUj/++KMyMjK0c+dOffDBB1Wu6+bmplWrVmnAgAHq2bOnHn30UUVFRcnb21uHDh3SihUrtHr1ap0+fbrKPkaMGKF7771XY8aMUVxcnA4dOqTExETHyFa52NhYdenSRZGRkWratKkOHTqkhQsXqk2bNmrXrp0kqWvXrpKkRYsWaeTIkXJ3d1eHDh3Utm1bzZo1S3/+85/17bffauDAgWrUqJG+++477dixQ97e3o5HW1WlY8eOuuaaazRlyhSZpqmAgACtXr3a6XR0dfXv318eHh764x//qCeffFJnzpzRsmXLzvt9nat9+/YaOHCgPvroI/Xq1UsRERFOyx966CF5eXnp5ptvVmBgoE6cOKGEhAT5+fk5rhGeNWuWNm7cqJtuuknjx49Xhw4ddObMGWVnZ2vdunV6+eWXL/rSjQuJjo5Wq1atFBsbq44dO6q0tFTp6emaP3++GjZs6HjJQdu2bfX000/rueee0y+//OJ4hNTevXv1/fffX/B4Xary39LcuXMVExMjNzc3devWTR4eHuratau2bt2q1atXKzAwUD4+PlX+z+e//vUvJSUl6fbbb1ebNm2Um5urDz74QO+++65GjRpV4XgBlqrd+5MA65TfgXzuneTlbr/99gvejW6apllQUGBOmzbN7NChg+nh4WH6+fmZXbt2NSdOnGieOHHC0U6SGR8fX+m2Xn/9dbNDhw6mzWYzQ0NDzYSEBPO1116r9A7p22+/vdI+Dh8+bD7wwANmixYtTHd3dzMoKMi86667zO+++840zf+7s/WDDz5wWq/8DvE33njDMe/cO4zXrFljxsTEmC1btjQ9PDzMZs2ambfddpuZmprq1Nfp06fNxx57zGzdurXp7u5uNmvWzLz99tvNffv2OW3rL3/5S4X6JZnPPvus07xdu3aZd911l9msWTPT3d3dbNGihfn73//efPnllyv9Ds6Vm5trPvfcc+Z1111nNmzY0HR3dzdbt25t3nvvveb//u//OtpVdjd6aWmpmZiYaIaGhpqenp5mZGSkuXnz5gp3o8+fP9+86aabzCZNmpgeHh5m69atzQcffNDMzs52qmXq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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Schritt 6 ---\n", - "Finale Cluster: [[0], [1], [4], [5], [2, 3]]\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAzYAAAJcCAYAAAArVzHJAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA5O0lEQVR4nO3deXRV9bn44TdASMIUBGSUyQlUQKkDxaqAWhTBotVqwSpCbWlRK1InUBGsgnVa9tYqVStgrYhDsVevaLWC9V6hoqK1jtXKIBZRZBBExv37g0V+hoSpJpx85XnWOkuyzz57v+fkJOaTs89OXpZlWQAAACSsWq4HAAAA+KqEDQAAkDxhAwAAJE/YAAAAyRM2AABA8oQNAACQPGEDAAAkT9gAAADJEzYAAEDyhA1UcRMmTIi8vLx48cUXy72+T58+0aZNm1LL2rRpE2effXblD1cJpk+fHnl5efHQQw9tc92zzz67zH2vCHPmzIm8vLy48cYbK3zb5Vm+fHlce+21ccghh0S9evWioKAg2rRpE4MGDYqXX365ZL1Nz4U5c+ZUyhzPP/98jBo1KpYuXVop28+lynqu7GybngN5eXkxffr0MtdnWRZ777135OXlRffu3f+jfdx2220xYcKEMst35Gvzq9oZn68+ffpE3bp1Y926daWWz549O/Ly8qJZs2ZlbvPcc89FXl5e/Nd//VelzvZ1eb7CziZs4GtoypQpceWVV+Z6jEp35ZVXxpQpU3I9xlfy3nvvRefOneO6666LHj16xKRJk+LPf/5zjB49Oj766KM4+OCDY9myZTtllueffz5Gjx79tQybr5u6devG7373uzLLn3322Xjvvfeibt26//G2txQ2Xzc9evSIFStWlPml0fTp06N27dqxcOHCeOutt8pct+m2QNVTI9cDABWvc+fOFbatLMviiy++iKKioq+0nVWrVn3lbWxur732qtDt7Wzr16+Pk08+OT755JOYMWNGdOjQoeS6bt26xYABA2Lq1KmRn5+fwym/us8//zxq1aqV6zG+Vk4//fT4wx/+EL/5zW+iXr16Jct/97vfRdeuXWP58uU5nC4Nm+Jk+vTp8c1vfrNk+fTp06Nv374xbdq0mDZtWrRv377UdY0aNSr1tfqfWLt2beTl5UWNGn4Mg4rkFRv4GirvULTly5fHRRddFG3bto2aNWtGixYtYujQobFy5cpS6+Xl5cV5550X48aNi/322y8KCgpi4sSJERExevTo6NKlSzRo0CDq1asX3/jGN+J3v/tdZFlWZv99+vSJP/7xj9G5c+coLCyM0aNHR0TEggUL4sc//nG0bNkyatasGc2bN49TTz01Pvroo1LbWLt2bVx++eXRvHnzqFevXhx77LHx9ttvl1qnvMM1HnzwwejSpUsUFxdHrVq1Ys8994xBgwaVWmfp0qXx85//PPbcc88oKCiIxo0bxwknnFDmt7MRETfffHO0bds26tSpE127do2ZM2eWWefFF1+M73znO9GgQYMoLCyMzp07xwMPPFBmvc098sgj8dprr8Xw4cO3+INSr169thoFWzrssHv37qUORdqwYUNcc8010a5duygqKor69etHp06d4le/+lVERIwaNSouvvjiiIho27ZtuYc7TZ48Obp27Rq1a9eOOnXqxHHHHRezZ88utd+zzz476tSpE6+99lr07Nkz6tatG8ccc0xERDz11FPRt2/f2GOPPaKwsDD23nvvGDx4cHzyySeltjFq1KjIy8uL119/Pfr16xfFxcXRpEmTGDRoUJlXr37zm9/EUUcdFY0bN47atWtHx44d4/rrr4+1a9du8TGLiDjmmGOiffv2ZZ67mw7l6t27d8my22+/PQ488MCoU6dO1K1bN9q3bx8jRowodbuFCxfG4MGDY4899oiaNWtG27ZtY/To0WUOc6oo/fr1i4iISZMmlSxbtmxZPPzww2We75usWbMmrrnmmmjfvn0UFBTE7rvvHgMHDoyPP/64ZJ02bdrE66+/Hs8++2zJc2Dzr7Ht+dqMiLj77rvjwAMPjMLCwmjQoEGcfPLJ8eabb5ZZb8KECdGuXbsoKCiI/fbbL+65557/eP4dcdBBB8Vuu+1W6jm+YcOGeO6556J79+7RrVu3mDZtWqn9z5gxI7p37x55eXnx7rvvxsCBA2OfffaJWrVqRYsWLeLEE0+M1157rdR+Nh3C9/vf/z5+/vOfR4sWLaKgoCDefffdHbr/wLb5VQEkYv369eX+kLT5D2bl+fzzz6Nbt27xwQcfxIgRI6JTp07x+uuvx8iRI+O1116Lp59+OvLy8krWf+SRR+K5556LkSNHRtOmTaNx48YRsfG9J4MHD45WrVpFRMTMmTPj/PPPjwULFsTIkSNL7fPll1+ON998M6644opo27Zt1K5dOxYsWBCHHnporF27tmSOxYsXx5NPPhlLliyJJk2alNx+xIgR8a1vfSvuuuuuWL58eVx66aVx4oknxptvvhnVq1cv937OmDEjTj/99Dj99NNj1KhRUVhYGHPnzo1nnnmmZJ3PPvssjjjiiJgzZ05ceuml0aVLl1ixYkX89a9/jX//+9+lfjv7m9/8Jtq3bx+33HJLRGw89O2EE06I999/P4qLiyMiYtq0aXH88cdHly5dYty4cVFcXBz3339/nH766fH5559v9b1Of/7znyMi4qSTTtrGZ/Cru/7662PUqFFxxRVXxFFHHRVr166Nt956q+Sws3POOSc+/fTT+PWvfx1//OMfS95fsP/++0dExJgxY+KKK66IgQMHxhVXXBFr1qyJG264IY488sh44YUXStaL2PgD4He+850YPHhwXHbZZSXP2/feey+6du0a55xzThQXF8ecOXPi5ptvjiOOOCJee+21Mq9MnXLKKXH66afHD3/4w5IAjNj4A/Mm7733XvTv378k2F999dW49tpr46233iq13uYuuOCC6Nu3b/zlL3+JY489tmT51KlT47333it5D8X9998fQ4YMifPPPz9uvPHGqFatWrz77rvxxhtvlNxm4cKFcdhhh0W1atVi5MiRsddee8WMGTPimmuuiTlz5sT48eN3+PO1LfXq1YtTTz017r777hg8eHBEbIycatWqxemnn17ynN1kw4YN0bdv33juuefikksuicMPPzzmzp0bV111VXTv3j1efPHFKCoqiilTpsSpp54axcXFcdttt0VEREFBQaltbc/X5tixY2PEiBHRr1+/GDt2bCxevDhGjRoVXbt2jVmzZsU+++wTERt/qB84cGD07ds3brrppli2bFmMGjUqVq9eHdWqVdvh+b+8zfHjx2/1669atWpx1FFHxdNPPx3r1q2LGjVqxCuvvBJLliyJbt26xfr16+Oqq64qWX/mzJmxatWqkld6Pvzww2jYsGFcd911sfvuu8enn34aEydOjC5dusTs2bOjXbt2pfY3fPjw6Nq1a4wbNy6qVasWjRs33u77D2ynDKjSxo8fn0XEVi+tW7cudZvWrVtnAwYMKPl47NixWbVq1bJZs2aVWu+hhx7KIiJ7/PHHS5ZFRFZcXJx9+umnW51r/fr12dq1a7Orr746a9iwYbZhw4ZS+69evXr29ttvl7rNoEGDsvz8/OyNN97Y4nanTZuWRUR2wgknlFr+wAMPZBGRzZgxo2TZgAEDSt33G2+8MYuIbOnSpVvc/tVXX51FRPbUU09tcZ33338/i4isY8eO2bp160qWv/DCC1lEZJMmTSpZ1r59+6xz587Z2rVrS22jT58+WbNmzbL169dvcT/HH398FhHZF198scV1vmzTc+H9998vWbb553qTbt26Zd26dSs1z0EHHbTV7d9www1ltp9lWTZv3rysRo0a2fnnn19q+WeffZY1bdo0O+2000qWDRgwIIuI7O67797qvjZs2JCtXbs2mzt3bhYR2Z/+9KeS66666qosIrLrr7++1G2GDBmSFRYWlnqufdmm5+Q999yTVa9evdRzePPnyvr167M999wz69u3b6lt9OrVK9trr71K9nHeeedl9evX3+p9GTx4cFanTp1s7ty5pZZvej6+/vrrW739jtj0HJg1a1bJ18o//vGPLMuy7NBDD83OPvvsLMuy7IADDij1+Z80aVIWEdnDDz9canuzZs3KIiK77bbbSpZtfttNtvdrc8mSJVlRUVGZ9ebNm5cVFBRk/fv3z7Js4+egefPm2Te+8Y1Sn9M5c+Zk+fn5pT5fOzL/xIkTs+rVq2cTJ04s9zH8sltuuSWLiOz555/PsizLbrrppqxZs2ZZlmXZG2+8UerxHT16dBYRW/z+tW7dumzNmjXZPvvsk1144YVlHrejjjqq1Po7cv+B7ePXAZCIe+65J2bNmlXmcsQRR2zzto899lh06NAhDjrooFi3bl3J5bjjjiv37EpHH3107LbbbmW288wzz8Sxxx4bxcXFUb169cjPz4+RI0fG4sWLY9GiRaXW7dSpU+y7776llk2dOjV69OgR++233zZn/s53vlNmexERc+fO3eJtDj300IiIOO200+KBBx6IBQsWlFln6tSpse+++5b6Lf2W9O7du9SrQ5vP8O6778Zbb70VZ5xxRkREqcf2hBNOiH//+9/lHqKTC4cddli8+uqrMWTIkHjyySd36D0YTz75ZKxbty7OOuusUvexsLAwunXrVu7ZuU455ZQyyxYtWhQ/+clPomXLllGjRo3Iz8+P1q1bR0SUe4hSec+BL774otRzbfbs2fGd73wnGjZsWPKcPOuss2L9+vXxzjvvbPE+VatWLc4777x47LHHYt68eRGx8dWfJ554IoYMGVLyCuZhhx0WS5cujX79+sWf/vSnMofNRWz8+urRo0c0b9681OPTq1eviNj4hv4t2bBhQ6nbrF+/fovrbq5bt26x1157xd133x2vvfZazJo1a4uHoT322GNRv379OPHEE0vt76CDDoqmTZuW+znckm19bc6YMSNWrVpV5tWSli1bxtFHHx1/+ctfIiLi7bffjg8//DD69+9f6hXj1q1bx+GHH/4fz7/peXrWWWdt8758+X02m/7brVu3iIjYb7/9onHjxiWHo02fPj2aNGlS8v1r3bp1MWbMmNh///2jZs2aUaNGjahZs2b885//LPf5vPnXxI7cf2D7CBtIxH777ReHHHJImcumQ6K25qOPPoq///3vkZ+fX+pSt27dyLKszA9r5Z3m9IUXXoiePXtGRMSdd94Z//d//xezZs2Kyy+/PCI2nhxgW9v4+OOPY4899tiu+9uwYcNSH286HGbz/XzZUUcdFY888kjJDzV77LFHdOjQodT7ECpyhk3vC7rooovKPLZDhgyJiCj3B+FNNh3S9/7772/XPF/F8OHD48Ybb4yZM2dGr169omHDhnHMMcds8TTiX7bpfh566KFl7ufkyZPL3MdatWqVekN7xMYf4Hv27Bl//OMf45JLLom//OUv8cILL5S8Z6m8z+u2Hv958+bFkUceGQsWLIhf/epX8dxzz8WsWbPiN7/5zRa3+WWDBg2KoqKiGDduXERsPPSwqKioVByceeaZcffdd8fcuXPjlFNOicaNG0eXLl3iqaeeKvX4PProo2UemwMOOCAitv4cuPrqq0vdZkdOiJGXlxcDBw6Me++9N8aNGxf77rtvHHnkkeWu+9FHH8XSpUujZs2aZeZcuHDhVmfc3LY+L4sXL46I8r8HNG/evOT6Tf9t2rRpmfU2X1aR839Zx44do1GjRjFt2rSS99dsCpuIjd9Tpk+fHqtXr44ZM2aUOhvasGHD4sorr4yTTjopHn300fjb3/4Ws2bNigMPPLDc597mj8eO3H9g+3iPDewCGjVqFEVFRVt8z0GjRo1Kffzl3x5ucv/990d+fn489thjUVhYWLL8kUceKXeb5W1j9913jw8++GAHJt9xffv2jb59+8bq1atj5syZMXbs2Ojfv3+0adMmunbtWqEzbHrchg8fHt/97nfLXWfz4+y/7Ljjjos77rgjHnnkkbjsssv+oxkKCwtj9erVZZZ/8sknpT6vNWrUiGHDhsWwYcNi6dKl8fTTT8eIESPiuOOOi/nz52/1BAWbtvPQQw+VvMKyNeV97v/xj3/Eq6++GhMmTIgBAwaULN/0Bur/xCOPPBIrV66MP/7xj6XmeuWVV7br9sXFxTFgwIC466674qKLLorx48dH//79o379+qXWGzhwYAwcODBWrlwZf/3rX+Oqq66KPn36xDvvvBOtW7eORo0aRadOneLaa68tdz/Nmzff4gw//vGPo0+fPiUfb/5+lm05++yzY+TIkTFu3Lgt7j9i4+ewYcOG8cQTT5R7/Vc5PfTmNoXPv//97zLXffjhhyXPp03rLVy4sMx6my+rrPnz8vKiW7du8cQTT8QLL7wQS5cuLRU23bp1i1GjRsWMGTPiiy++KBU29957b5x11lkxZsyYUtv85JNPyjyHNu3ry3bk/gPbR9jALqBPnz4xZsyYaNiwYbRt2/Y/2samU5N++dCsVatWxe9///vt3kavXr3i97//fbz99ttb/YG/IhQUFES3bt2ifv368eSTT8bs2bOja9eu0atXrxg5cmQ888wzcfTRR3+lfbRr1y722WefePXVV8v8cLM9+vbtGx07doyxY8dGnz59yj0z2pNPPhlHHnnkFsOjTZs28fe//73UsnfeeSfefvvtMsG6Sf369ePUU0+NBQsWxNChQ2POnDmx//77b/FVseOOOy5q1KgR7733XrmHmG2PTT/Ubf6D+29/+9v/aHtb2maWZXHnnXdu9zZ+9rOfxW233RannnpqLF26NM4777wtrlu7du3o1atXrFmzJk466aR4/fXXo3Xr1tGnT594/PHHY6+99ir3EM6tad68+VbDZ1tatGgRF198cbz11lulgnFzffr0ifvvvz/Wr18fXbp02eo2CwoKtvlq19Z07do1ioqK4t57743vfe97Jcs/+OCDeOaZZ+LUU0+NiI1fP82aNYtJkybFsGHDSj6fc+fOjeeff77U47Ij8++oHj16xMMPPxw33HBDNG7cuNShst26dYvFixfHr3/965J1N8nLyyvzfP6f//mfWLBgQey9997b3O+O3H9g+wgb2AUMHTo0Hn744TjqqKPiwgsvjE6dOsWGDRti3rx58ec//zl+/vOfb/OHhd69e8fNN98c/fv3jx//+MexePHiuPHGG3foN8xXX311TJ06NY466qgYMWJEdOzYMZYuXRpPPPFEDBs2rNQZyf4TI0eOjA8++CCOOeaY2GOPPWLp0qXxq1/9KvLz80t+Czt06NCYPHly9O3bNy677LI47LDDYtWqVfHss89Gnz59dvgP7/32t7+NXr16xXHHHRdnn312tGjRIj799NN488034+WXX44HH3xwi7etXr16TJkyJXr27Bldu3aNn/70p9GjR4+oXbt2zJ07Nx566KF49NFHY8mSJVvcxplnnhk/+MEPYsiQIXHKKafE3Llz4/rrr4/dd9+91HonnnhidOjQIQ455JDYfffdY+7cuXHLLbdE69atS85Q1bFjx4iI+NWvfhUDBgyI/Pz8aNeuXbRp0yauvvrquPzyy+Nf//pXHH/88bHbbrvFRx99FC+88ELUrl275HTeW9K+ffvYa6+94rLLLossy6JBgwbx6KOPljqka0d9+9vfjpo1a0a/fv3ikksuiS+++CJuv/32rT5em9t3333j+OOPj6lTp8YRRxwRBx54YKnrf/SjH0VRUVF861vfimbNmsXChQtj7NixUVxcXPKerquvvjqeeuqpOPzww+NnP/tZtGvXLr744ouYM2dOPP744zFu3LjtPvzxP3Hddddtc53vf//78Yc//CFOOOGEuOCCC+Kwww6L/Pz8+OCDD2LatGnRt2/fOPnkkyNi4/Pg/vvvj8mTJ8eee+4ZhYWFJc+N7VG/fv248sorY8SIEXHWWWdFv379YvHixTF69OgoLCwsOdNYtWrV4he/+EWcc845cfLJJ8ePfvSjWLp0aYwaNarMoVg7Mv8999wTgwYNirvvvnuH3mez6YxwX9ahQ4do2LBhTJkyJVq0aFHytRKxMbYmTJgQ7du3j06dOsVLL70UN9xww3Z/rnfk/gPbKccnLwC24ctnQSpP7969t3lWtCzLshUrVmRXXHFF1q5du6xmzZpZcXFx1rFjx+zCCy/MFi5cWLJeRGTnnntuufu6++67s3bt2mUFBQXZnnvumY0dOzb73e9+V+6Zunr37l3uNubPn58NGjQoa9q0aZafn581b948O+2007KPPvooy7L/fwahBx98sNTtNp2pbPz48SXLNj/T1WOPPZb16tUra9GiRVazZs2scePG2QknnJA999xzpba1ZMmS7IILLshatWqV5efnZ40bN8569+6dvfXWW6X2dcMNN5SZPyKyq666qtSyV199NTvttNOyxo0bZ/n5+VnTpk2zo48+Ohs3bly5j8Hmli5dmv3iF7/IvvGNb2R16tTJ8vPzs1atWmU/+MEPsv/7v/8rWa+8s6Jt2LAhu/7667M999wzKywszA455JDsmWeeKXNWtJtuuik7/PDDs0aNGmU1a9bMWrVqlf3whz/M5syZU2qW4cOHZ82bN8+qVauWRUQ2bdq0kuseeeSRrEePHlm9evWygoKCrHXr1tmpp56aPf300yXrDBgwIKtdu3a59/ONN97Ivv3tb2d169bNdtttt+x73/teNm/evDKP6aazon388celbl/e/X/00UezAw88MCssLMxatGiRXXzxxdnUqVPLzL75c+XLJkyYkEVEdv/995e5buLEiVmPHj2yJk2aZDVr1ix5vv79738vtd7HH3+c/exnP8vatm2b5efnZw0aNMgOPvjg7PLLL89WrFhR7n7/E9v6frBJeWc2W7t2bXbjjTeWPF516tTJ2rdvnw0ePDj75z//WbLenDlzsp49e2Z169YtddbFHfnazLIsu+uuu7JOnTqVfL/p27dvuWeIu+uuu7J99tknq1mzZrbvvvtmd999d7mfr+2df9NjtPk8W9O0adMsIrJbb721zHUnnXRSFhHZGWecUWr5kiVLsh/+8IdZ48aNs1q1amVHHHFE9txzz5X52tvS47aj9x/Ytrws244/ggEAX1OnnHJKzJw5M+bMmVPmb+kAkA6HogGwy1m9enW8/PLL8cILL8SUKVPi5ptvFjUAifOKDQC7nDlz5kTbtm2jXr160b9//7j11ltLnRgDgPQIGwAAIHn+QCcAAJA8YQMAACRP2AAAAMmrcmdF27BhQ3z44YdRt27dkr/CCwAA7HqyLIvPPvssmjdvHtWqbf01mSoXNh9++GG0bNky12MAAABVxPz582OPPfbY6jpVLmzq1q0bERuHr1evXo6nAQAAcmX58uXRsmXLkkbYmioXNpsOP6tXr56wAQAAtustKk4eAAAAJE/YAAAAyRM2AABA8oQNAACQPGEDAAAkT9gAAADJEzYAAEDyhA0AAJA8YQMAACRP2AAAAMkTNgAAQPKEDQAAkDxhAwAAJE/YAAAAyRM2AABA8oQNAACQPGEDAAAkT9gAAADJEzYAAEDyhA0AAJA8YQMAACSvRq4HgPJkWRar1q7P9RgAX0lRfvXIy8vL9RgAuwRhQ5WTZVmcOm5GvDR3Sa5HAfhKDmm9Wzz4k67iBmAncCgaVc6qtetFDfC18OLcJV59BthJvGJDlfbiFcdGrZrVcz0GwA75fM36OOSap3M9BsAuRdhQpdWqWT1q1fQ0BQBg6xyKBgAAJE/YAAAAyRM2AABA8oQNAACQPGEDAAAkT9gAAADJEzYAAEDyhA0AAJA8YQMAACRP2AAAAMkTNgAAQPKEDQAAkDxhAwAAJE/YAAAAyRM2AABA8oQNAACQPGEDAAAkT9gAAADJEzYAAEDyhA0AAJA8YQMAACRP2AAAAMkTNgAAQPJ2OGz++te/xoknnhjNmzePvLy8eOSRR0pdn2VZjBo1Kpo3bx5FRUXRvXv3eP311ytqXgAAgDJ2OGxWrlwZBx54YNx6663lXn/99dfHzTffHLfeemvMmjUrmjZtGt/+9rfjs88++8rDAgAAlKfGjt6gV69e0atXr3Kvy7Isbrnllrj88svju9/9bkRETJw4MZo0aRL33XdfDB48+KtNCwAAUI4KfY/N+++/HwsXLoyePXuWLCsoKIhu3brF888/X+5tVq9eHcuXLy91AQAA2BEVGjYLFy6MiIgmTZqUWt6kSZOS6zY3duzYKC4uLrm0bNmyIkcCAAB2AZVyVrS8vLxSH2dZVmbZJsOHD49ly5aVXObPn18ZIwEAAF9jO/wem61p2rRpRGx85aZZs2YlyxctWlTmVZxNCgoKoqCgoCLHAAAAdjEV+opN27Zto2nTpvHUU0+VLFuzZk08++yzcfjhh1fkrgAAAErs8Cs2K1asiHfffbfk4/fffz9eeeWVaNCgQbRq1SqGDh0aY8aMiX322Sf22WefGDNmTNSqVSv69+9foYMDAABsssNh8+KLL0aPHj1KPh42bFhERAwYMCAmTJgQl1xySaxatSqGDBkSS5YsiS5dusSf//znqFu3bsVNDQAA8CU7HDbdu3ePLMu2eH1eXl6MGjUqRo0a9VXmAgAA2G6VclY0AACAnUnYAAAAyRM2AABA8oQNAACQPGEDAAAkT9gAAADJEzYAAEDyhA0AAJA8YQMAACRP2AAAAMkTNgAAQPKEDQAAkDxhAwAAJE/YAAAAyRM2AABA8oQNAACQPGEDAAAkT9gAAADJEzYAAEDyhA0AAJA8YQMAACSvRq4HAKCsLMti1dr1uR6D/9Dna9aV+2/SU5RfPfLy8nI9BrAdhA1AFZNlWZw6bka8NHdJrkehAhxyzV9yPQJfwSGtd4sHf9JV3EACHIoGUMWsWrte1EAV8eLcJV49hUR4xQagCnvximOjVs3quR4Ddjmfr1kfh1zzdK7HAHaAsAGowmrVrB61avpWDQDb4lA0AAAgecIGAABInrABAACSJ2wAAIDkCRsAACB5wgYAAEiesAEAAJInbAAAgOQJGwAAIHnCBgAASJ6wAQAAkidsAACA5AkbAAAgecIGAABInrABAACSJ2wAAIDkCRsAACB5wgYAAEiesAEAAJInbAAAgOQJGwAAIHnCBgAASJ6wAQAAkidsAACA5AkbAAAgecIGAABInrABAACSJ2wAAIDkCRsAACB5wgYAAEiesAEAAJInbAAAgOQJGwAAIHnCBgAASJ6wAQAAkidsAACA5AkbAAAgecIGAABInrABAACSJ2wAAIDkCRsAACB5wgYAAEiesAEAAJInbAAAgOQJGwAAIHnCBgAASJ6wAQAAkidsAACA5AkbAAAgecIGAABInrABAACSJ2wAAIDkCRsAACB5wgYAAEiesAEAAJInbAAAgOQJGwAAIHnCBgAASJ6wAQAAklfhYbNu3bq44oorom3btlFUVBR77rlnXH311bFhw4aK3hUAAEBERNSo6A3+8pe/jHHjxsXEiRPjgAMOiBdffDEGDhwYxcXFccEFF1T07gAAACo+bGbMmBF9+/aN3r17R0REmzZtYtKkSfHiiy9W9K4AAAAiohIORTviiCPiL3/5S7zzzjsREfHqq6/G//7v/8YJJ5xQ0bsCAACIiEp4xebSSy+NZcuWRfv27aN69eqxfv36uPbaa6Nfv37lrr969epYvXp1ycfLly+v6JEAAICvuQp/xWby5Mlx7733xn333Rcvv/xyTJw4MW688caYOHFiueuPHTs2iouLSy4tW7as6JEAAICvuQoPm4svvjguu+yy+P73vx8dO3aMM888My688MIYO3ZsuesPHz48li1bVnKZP39+RY8EAAB8zVX4oWiff/55VKtWupeqV6++xdM9FxQUREFBQUWPAQAA7EIqPGxOPPHEuPbaa6NVq1ZxwAEHxOzZs+Pmm2+OQYMGVfSuAAAAIqISwubXv/51XHnllTFkyJBYtGhRNG/ePAYPHhwjR46s6F0BAABERCWETd26deOWW26JW265paI3DQAAUK4KP3kAAADAziZsAACA5AkbAAAgecIGAABInrABAACSJ2wAAIDkCRsAACB5wgYAAEiesAEAAJInbAAAgOQJGwAAIHnCBgAASJ6wAQAAkidsAACA5AkbAAAgecIGAABInrABAACSJ2wAAIDkCRsAACB5wgYAAEiesAEAAJInbAAAgOQJGwAAIHnCBgAASJ6wAQAAkidsAACA5AkbAAAgecIGAABInrABAACSJ2wAAIDkCRsAACB5wgYAAEiesAEAAJInbAAAgOQJGwAAIHnCBgAASJ6wAQAAkidsAACA5AkbAAAgecIGAABInrABAACSJ2wAAIDkCRsAACB5wgYAAEiesAEAAJInbAAAgOQJGwAAIHnCBgAASJ6wAQAAkidsAACA5AkbAAAgecIGAABInrABAACSJ2wAAIDkCRsAACB5wgYAAEiesAEAAJInbAAAgOQJGwAAIHnCBgAASJ6wAQAAkidsAACA5AkbAAAgecIGAABInrABAACSJ2wAAIDkCRsAACB5wgYAAEiesAEAAJInbAAAgOQJGwAAIHnCBgAASJ6wAQAAkidsAACA5AkbAAAgecIGAABInrABAACSJ2wAAIDkCRsAACB5wgYAAEiesAEAAJInbAAAgOQJGwAAIHnCBgAASJ6wAQAAkidsAACA5FVK2CxYsCB+8IMfRMOGDaNWrVpx0EEHxUsvvVQZuwIAAIgaFb3BJUuWxLe+9a3o0aNHTJ06NRo3bhzvvfde1K9fv6J3BQAAEBGVEDa//OUvo2XLljF+/PiSZW3atKno3QAAAJSo8EPR/vu//zsOOeSQ+N73vheNGzeOzp07x5133rnF9VevXh3Lly8vdQEAANgRFR42//rXv+L222+PffbZJ5588sn4yU9+Ej/72c/innvuKXf9sWPHRnFxccmlZcuWFT0SAADwNVfhYbNhw4b4xje+EWPGjInOnTvH4MGD40c/+lHcfvvt5a4/fPjwWLZsWcll/vz5FT0SAADwNVfhYdOsWbPYf//9Sy3bb7/9Yt68eeWuX1BQEPXq1St1AQAA2BEVHjbf+ta34u233y617J133onWrVtX9K4AAAAiohLC5sILL4yZM2fGmDFj4t1334377rsv7rjjjjj33HMrelcAAAARUQlhc+ihh8aUKVNi0qRJ0aFDh/jFL34Rt9xy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yy67rNTynj17xvPPP19m/dWrV8fq1atLPl62bFlERCxfvryiR0vDmpURq7ON/16+PKLm+tzOw87nObDL+3zNutiw+vOI2Pi9cF3NCv9WTQI+X/t5rF+18et/+fLlsS5/XY4nYmfzHMBz4P83QZZl21y3wv9v+cknn8T69eujSZMmpZY3adIkFi5cWGb9sWPHxujRo8ssb9myZUWPlp7rmud6AnLNc2CX1+yWXE9AVdDsp81yPQI55jnArv4c+Oyzz6K4uHir61TarwHz8vJKfZxlWZllERHDhw+PYcOGlXy8YcOG+PTTT6Nhw4blrg8AAOwasiyLzz77LJo33/Yveys8bBo1ahTVq1cv8+rMokWLyryKExFRUFAQBQUFpZbVr1+/oscCAAAStK1Xajap8JMH1KxZMw4++OB46qmnSi1/6qmn4vDDD6/o3QEAAFTOoWjDhg2LM888Mw455JDo2rVr3HHHHTFv3rz4yU9+Uhm7AwAAdnGVEjann356LF68OK6++ur497//HR06dIjHH388WrduXRm7AwAAdnF52facOw0AAKAKq5Q/0AkAALAzCRsAACB5wgYAAEiesKnC7rrrrsjLy4s6derkehR2gunTp0deXl65l5kzZ+Z6PHaSzz77LC655JLo2bNn7L777pGXlxejRo3K9VjsRCtWrIihQ4dG8+bNo7CwMA466KC4//77cz0WO9EzzzwTgwYNivbt20ft2rWjRYsW0bdv33jppZdyPRo7ySuvvBK9e/eOVq1aRVFRUTRo0CC6du0a9957b65Hq9Iq5axofHULFiyIiy66KJo3bx7Lli3L9TjsRGPGjIkePXqUWtahQ4ccTcPOtnjx4rjjjjviwAMPjJNOOinuuuuuXI/ETvbd7343Zs2aFdddd13su+++cd9990W/fv1iw4YN0b9//1yPx05w++23x+LFi+OCCy6I/fffPz7++OO46aab4pvf/GY8+eSTcfTRR+d6RCrZ0qVLo2XLltGvX79o0aJFrFy5Mv7whz/EmWeeGXPmzIkrrrgi1yNWSc6KVkWdeOKJkZeXFw0aNIiHHnooVqxYkeuRqGTTp0+PHj16xIMPPhinnnpqrschRzZ9S87Ly4tPPvkkdt9997jqqqu8arOLePzxx6N3794lMbNJz5494/XXX4958+ZF9erVczghO8OiRYuicePGpZatWLEi9t577+jQoUM8/fTTOZqMXPvmN78ZH374YcybNy/Xo1RJDkWrgu6999549tln47bbbsv1KMBOtunwQ3ZNU6ZMiTp16sT3vve9UssHDhwYH374Yfztb3/L0WTsTJtHTUREnTp1Yv/994/58+fnYCKqikaNGkWNGg642hJhU8UsWrQohg4dGtddd13sscceuR6HHDj33HOjRo0aUa9evTjuuOPif//3f3M9ErCT/OMf/4j99tuvzA8unTp1KrmeXdOyZcvi5ZdfjgMOOCDXo7ATbdiwIdatWxcff/xx3HbbbfHkk0/GpZdemuuxqizJV8UMGTIk2rVrFz/96U9zPQo7WXFxcVxwwQXRvXv3aNiwYbz77rtxww03RPfu3eN//ud/4rjjjsv1iEAlW7x4cey5555lljdo0KDkenZN5557bqxcuTIuv/zyXI/CTjRkyJD47W9/GxERNWvWjP/6r/+KwYMH53iqqkvYVCEPP/xwPProozF79myHouyCOnfuHJ07dy75+Mgjj4yTTz45OnbsGJdccomwgV3E1r7/+3/DrunKK6+MP/zhD/HrX/86Dj744FyPw040YsSIOOecc2LRokXx6KOPxnnnnRcrV66Miy66KNejVUnCpopYsWJFnHvuuXH++edH8+bNY+nSpRERsWbNmojYeHaM/Pz8qF27dg6nZGerX79+9OnTJ8aNGxerVq2KoqKiXI8EVKKGDRuW+6rMp59+GhH//5Ubdh2jR4+Oa665Jq699to477zzcj0OO1mrVq2iVatWERFxwgknRETE8OHDY8CAAbH77rvncrQqyXtsqohPPvkkPvroo7jppptit912K7lMmjQpVq5cGbvttlucccYZuR6THPjyWbKAr7eOHTvGm2++GevWrSu1/LXXXosIp37f1YwePTpGjRoVo0aNihEjRuR6HKqAww47LNatWxf/+te/cj1KleQVmyqiadOmMW3atDLLr7vuunj22Wdj6tSp0ahRoxxMRi4tWbIkHnvssTjooIOisLAw1+MAlezkk0+OO++8Mx5++OE4/fTTS5ZPnDgxmjdvHl26dMnhdOxMv/jFL2LUqFFxxRVXxFVXXZXrcagipk2bFtWqVSv3vXgImyqjsLAwunfvXmb5hAkTonr16uVex9dL//79o1WrVnHIIYdEo0aN4p///GfcdNNN8dFHH8WECRNyPR470dSpU2PlypXx2WefRUTEG2+8EQ899FBEbDwUoVatWrkcj0rUq1ev+Pa3vx0//elPY/ny5bH33nvHpEmT4oknnoh7773X37DZRdx0000xcuTIOP7446N3794xc+bMUtd/85vfzNFk7Cw//vGPo169enHYYYdFkyZN4pNPPokHH3wwJk+eHBdffLHD0LbAH+is4s4++2x/oHMXcd1118XkyZPj/fffjxUrVkSDBg3iiCOOiOHDh8ehhx6a6/HYidq0aRNz584t97r3338/2rRps3MHYqdasWJFXH755fHAAw/Ep59+Gu3bt4/hw4fH97///VyPxk7SvXv3ePbZZ7d4vR/dvv7Gjx8f48ePjzfffDOWLl0aderUiQMPPDDOOeec+MEPfpDr8aosYQMAACTPyQMAAIDkCRsAACB5wgYAAEiesAEAAJInbAAAgOQJGwAAIHnCBgAASJ6wAQAAkidsAACA5AkbAAAgecIGAABInrABAACS9/8AAK7uabJW2rkAAAAASUVORK5CYII=\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "#Clusteranalyse\n", - "\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import random\n", - "from scipy.cluster.hierarchy import linkage, dendrogram\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "import pandas as pd\n", - "\n", - "#functions\n", - "def generate_clusters(n_clusters, m_points_per_cluster):\n", - " # Generate random cluster centers\n", - " cluster_centers = np.random.randint(0, 30, size=(n_clusters, 2))\n", - " noise_scale = 1\n", - "\n", - " # Generate points for each cluster\n", - " points = []\n", - " for center in cluster_centers:\n", - " cluster_points = np.random.randint(-5, 5, size=(m_points_per_cluster, 2)) + center\n", - " points.extend(cluster_points)\n", - "\n", - " # Add noise to the points\n", - " noisy_points = points + (np.random.randint(-2, 2, size=(len(points), 2)))\n", - " \n", - " return np.array(noisy_points)\n", - "\n", - "# Anzahl der Datenpunktansammlungen (Cluster)\n", - "num_clusters = 2\n", - "# Anzahl der Datenpunkte pro Cluster\n", - "points_per_cluster = 3\n", - "rangeStart = 1\n", - "rangeEnd = 6\n", - "\n", - "clusters = generate_clusters(num_clusters, points_per_cluster)\n", - "print(clusters)\n", - "X = clusters\n", - "\n", - "# Initialisierung: Jeder Datenpunkt ist ein Cluster\n", - "clusters = [[i] for i in range(X.shape[0])]\n", - "print(clusters)\n", - "\n", - "\n", - "# Schleife für jeden Schritt der hierarchischen Clusteranalyse\n", - "for step in range(X.shape[0] - 1):\n", - " print(f\"\\n--- Schritt {step + 1} ---\")\n", - " print(\"Aktuelle Cluster:\", clusters)\n", - "\n", - " # Berechnung der Abstandsmatrix mit Ward-Methode\n", - " linkage_matrix = linkage(X, 'ward')\n", - "\n", - " # Ausgabe der Abstandsmatrix\n", - " print(\"Abstandsmatrix nach Linkage:\")\n", - " print(linkage_matrix)\n", - "\n", - " # Tabelle mit den Abständen zwischen den Clustern erstellen\n", - " distances = []\n", - " for i in range(len(linkage_matrix)):\n", - " cluster1, cluster2, distance, _ = linkage_matrix[i]\n", - " cluster1, cluster2 = int(cluster1), int(cluster2) # Konvertiere zu ganzzahligen Indizes\n", - " if cluster1 < len(clusters) and cluster2 < len(clusters):\n", - " distances.append([cluster1, cluster2, distance, len(clusters[cluster1]), len(clusters[cluster2])])\n", - "\n", - " # Streudiagramm zeichnen\n", - " colors = ['b', 'g', 'r', 'c', 'm', 'y', 'k']\n", - " plt.figure(figsize=(8, 6))\n", - " for idx, cluster in enumerate(clusters):\n", - " for point_idx in cluster:\n", - " plt.scatter(X[point_idx, 0], X[point_idx, 1], color=colors[idx % len(colors)], label=f'Cluster {idx}')\n", - " plt.title('Hierarchische Clusteranalyse - Schritt {}'.format(step + 1))\n", - " plt.legend()\n", - " plt.show()\n", - "\n", - " # Wenn nur noch ein Cluster übrig ist, breche die Schleife ab\n", - " if len(clusters) == 1:\n", - " break\n", - "\n", - " # Identifiziere die beiden nächsten Cluster\n", - " cluster1, cluster2 = int(linkage_matrix[step][0]), int(linkage_matrix[step][1])\n", - "\n", - " # Überprüfe, ob die Cluster existieren, bevor sie zusammengeführt werden\n", - " if cluster1 < len(clusters) and cluster2 < len(clusters):\n", - " new_cluster = clusters[cluster1] + clusters[cluster2]\n", - " del clusters[max(cluster1, cluster2)]\n", - " del clusters[min(cluster1, cluster2)]\n", - " clusters.append(new_cluster)\n", - "\n", - "# Ausgabe des finalen Clusters\n", - "print(f\"\\n--- Schritt {X.shape[0]} ---\")\n", - "print(\"Finale Cluster:\", clusters)\n", - "\n", - "# Dendrogramm erstellen und anzeigen\n", - "plt.figure(figsize=(10, 7))\n", - "plt.title('Hierarchische Clusteranalyse - Methode: Ward')\n", - "dendrogram(linkage_matrix)\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "7c9c83ed", - "metadata": {}, - "outputs": [ - { - "ename": "ExecutableNotFound", - "evalue": "failed to execute PosixPath('dot'), make sure the Graphviz executables are on your systems' PATH", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/graphviz/backend/execute.py\u001b[0m in \u001b[0;36mrun_check\u001b[0;34m(cmd, input_lines, encoding, quiet, **kwargs)\u001b[0m\n\u001b[1;32m 80\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 81\u001b[0;31m \u001b[0mproc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msubprocess\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcmd\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 82\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mOSError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/opt/anaconda3/lib/python3.9/subprocess.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(input, capture_output, timeout, check, *popenargs, **kwargs)\u001b[0m\n\u001b[1;32m 504\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 505\u001b[0;31m \u001b[0;32mwith\u001b[0m \u001b[0mPopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mpopenargs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mprocess\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 506\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/opt/anaconda3/lib/python3.9/subprocess.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, user, group, extra_groups, encoding, errors, text, umask)\u001b[0m\n\u001b[1;32m 950\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 951\u001b[0;31m self._execute_child(args, executable, preexec_fn, close_fds,\n\u001b[0m\u001b[1;32m 952\u001b[0m \u001b[0mpass_fds\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcwd\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0menv\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/opt/anaconda3/lib/python3.9/subprocess.py\u001b[0m in \u001b[0;36m_execute_child\u001b[0;34m(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session)\u001b[0m\n\u001b[1;32m 1820\u001b[0m \u001b[0merr_msg\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstrerror\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merrno_num\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1821\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mchild_exception_type\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merrno_num\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merr_msg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merr_filename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1822\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mchild_exception_type\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merr_msg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: PosixPath('dot')", - "\nThe above exception was the direct cause of the following exception:\n", - "\u001b[0;31mExecutableNotFound\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m/var/folders/bs/5wndg3791vz7vxsh2h7qj_mw0000gn/T/ipykernel_63053/831696634.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 58\u001b[0m \u001b[0mpoints_per_cluster\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m3\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 59\u001b[0m \u001b[0;31m#Hauptfunktion ausfuehren\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 60\u001b[0;31m \u001b[0mfoo\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmain\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnum_clusters\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mpoints_per_cluster\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 61\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfoo\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 62\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"abc\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/var/folders/bs/5wndg3791vz7vxsh2h7qj_mw0000gn/T/ipykernel_63053/831696634.py\u001b[0m in \u001b[0;36mmain\u001b[0;34m(num_clusters, points_per_cluster)\u001b[0m\n\u001b[1;32m 50\u001b[0m \u001b[0mdotTable\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcreate_dot_table\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mclusters\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 51\u001b[0m \u001b[0mdotTable\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msave\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'table.dot'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 52\u001b[0;31m \u001b[0mdotTable\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrender\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'table'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mformat\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'png'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcleanup\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 53\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 54\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/graphviz/_tools.py\u001b[0m in \u001b[0;36mwrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 169\u001b[0m category=category)\n\u001b[1;32m 170\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 171\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 172\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 173\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mwrapper\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/graphviz/rendering.py\u001b[0m in \u001b[0;36mrender\u001b[0;34m(self, filename, directory, view, cleanup, format, renderer, formatter, neato_no_op, quiet, quiet_view, outfile, engine, raise_if_result_exists, overwrite_source)\u001b[0m\n\u001b[1;32m 120\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilepath\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 121\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 122\u001b[0;31m \u001b[0mrendered\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_render\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 123\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 124\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mcleanup\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/graphviz/_tools.py\u001b[0m in \u001b[0;36mwrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 169\u001b[0m category=category)\n\u001b[1;32m 170\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 171\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 172\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 173\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mwrapper\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/graphviz/backend/rendering.py\u001b[0m in \u001b[0;36mrender\u001b[0;34m(engine, format, filepath, renderer, formatter, neato_no_op, quiet, outfile, raise_if_result_exists, overwrite_filepath)\u001b[0m\n\u001b[1;32m 322\u001b[0m \u001b[0mcmd\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 323\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 324\u001b[0;31m execute.run_check(cmd,\n\u001b[0m\u001b[1;32m 325\u001b[0m \u001b[0mcwd\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfilepath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mparent\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mfilepath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mparent\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mparts\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 326\u001b[0m \u001b[0mquiet\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mquiet\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/graphviz/backend/execute.py\u001b[0m in \u001b[0;36mrun_check\u001b[0;34m(cmd, input_lines, encoding, quiet, **kwargs)\u001b[0m\n\u001b[1;32m 82\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mOSError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 83\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0merrno\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0merrno\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mENOENT\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 84\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mExecutableNotFound\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcmd\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 85\u001b[0m \u001b[0;32mraise\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 86\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mExecutableNotFound\u001b[0m: failed to execute PosixPath('dot'), make sure the Graphviz executables are on your systems' PATH" - ] - } - ], - "source": [ - "#Clusteranalyse\n", - "\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import random\n", - "from scipy.cluster.hierarchy import linkage, dendrogram\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "import pandas as pd\n", - "import graphviz\n", - "\n", - "#functions\n", - "def generate_clusters(n_clusters, m_points_per_cluster):\n", - " # Generate random cluster centers\n", - " cluster_centers = np.random.randint(0, 30, size=(n_clusters, 2))\n", - " noise_scale = 1\n", - "\n", - " # Generate points for each cluster\n", - " points = []\n", - " for center in cluster_centers:\n", - " cluster_points = np.random.randint(-5, 5, size=(m_points_per_cluster, 2)) + center\n", - " points.extend(cluster_points)\n", - "\n", - " # Add noise to the points\n", - " noisy_points = points + (np.random.randint(-2, 2, size=(len(points), 2)))\n", - " \n", - " return np.array(noisy_points)\n", - "\n", - "#def generate_task_definition():\n", - "def save_plot(path, filename):\n", - " plt.savefig(\"{}{}.png\".format(path, filename))\n", - "\n", - "def create_dot_table(array):\n", - " \n", - " dotTable = graphviz.Digraph('dotTable', comment='task definition table')\n", - " \n", - " # Add nodes to the graph for each element in the array\n", - " for i in range(array.shape[0]):\n", - " row_label = f'Row{i+1}'\n", - " dotTable.node(row_label, shape='plaintext', label=f'<
{array[i, 0]}{array[i, 1]}
>')\n", - "\n", - " # Add edges between consecutive rows (if needed)\n", - " for i in range(array.shape[0] - 1):\n", - " dotTable.edge(f'Row{i+1}', f'Row{i+2}')\n", - "\n", - " return dotTable\n", - " \n", - "def main(num_clusters,points_per_cluster):\n", - " clusters = generate_clusters(num_clusters, points_per_cluster)\n", - " dotTable = create_dot_table(clusters)\n", - " dotTable.save('table.dot')\n", - " dotTable.render('table', format='png', cleanup=True)\n", - "\n", - " \n", - "# Anzahl der Datenpunktansammlungen (Cluster)\n", - "num_clusters = 2\n", - "# Anzahl der Datenpunkte pro Cluster\n", - "points_per_cluster = 3\n", - "#Hauptfunktion ausfuehren\n", - "foo = main(num_clusters,points_per_cluster)\n", - "print(foo)\n", - "print(\"abc\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "9fa0e1cf", - "metadata": {}, - "outputs": [], - "source": [ - "print(\"fo\")" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "fe99c316", - "metadata": {}, - "outputs": [ - { - "ename": "ValueError", - "evalue": "all the input array dimensions for the concatenation axis must match exactly, but along dimension 0, the array at index 0 has size 6 and the array at index 1 has size 5", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m/var/folders/bs/5wndg3791vz7vxsh2h7qj_mw0000gn/T/ipykernel_63053/1285465837.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 65\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 66\u001b[0m \u001b[0;31m# Add a new column at the end\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 67\u001b[0;31m \u001b[0mcondensed_distances\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhstack\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mcondensed_distances\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnew_col\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 68\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 69\u001b[0m \u001b[0mnum_clusters\u001b[0m \u001b[0;34m-=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m<__array_function__ internals>\u001b[0m in \u001b[0;36mhstack\u001b[0;34m(*args, **kwargs)\u001b[0m\n", - "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/numpy/core/shape_base.py\u001b[0m in \u001b[0;36mhstack\u001b[0;34m(tup)\u001b[0m\n\u001b[1;32m 343\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0m_nx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconcatenate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marrs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 344\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 345\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0m_nx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconcatenate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marrs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 346\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 347\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m<__array_function__ internals>\u001b[0m in \u001b[0;36mconcatenate\u001b[0;34m(*args, **kwargs)\u001b[0m\n", - "\u001b[0;31mValueError\u001b[0m: all the input array dimensions for the concatenation axis must match exactly, but along dimension 0, the array at index 0 has size 6 and the array at index 1 has size 5" - ] - } - ], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "3e7c446b", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHFCAYAAAAOmtghAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA3LElEQVR4nO3de1xVdb7/8ffmIqDATkhuioJZaojmiCXeumCYlj8t64xdrSmPTqaWXQyn0WoqzLFJrUbTLG+Tds6QlzILpwRrBk0UlczMEhMRwisQ6pbL+v1h7NNWQLYCm718PR+P9XjM/q7vd63Pl+/kfj/WWntvi2EYhgAAAEzCw9UFAAAA1CfCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDXCJ2rRpk26//Xa1bdtWPj4+Cg0NVXx8vJ588kl7n7///e9auHCh64o8D4vFoueff97+euHChbJYLNq3b5/LagLgeoQb4BK0Zs0a9e7dW8XFxZo+fbpSU1M1a9Ys9enTRx988IG9X1MPN2e79dZblZGRofDwcFeXAsCFvFxdAIDGN336dEVHR+uzzz6Tl9f//TMwYsQITZ8+/YKOWVZWJovF4nC8xtaqVSu1atWq0c9rGIZOnTolPz+/Rj83gHNx5Qa4BB05ckSXX355tUHEw+PMPwtRUVHauXOn0tPTZbFYZLFYFBUVJUlKS0uTxWLRkiVL9OSTT6p169by8fHRDz/8IEn617/+pYSEBAUGBqp58+bq06ePPv/8c4fzPPjgg/bj/dbzzz8vi8Xi0FZcXKxRo0YpODhY/v7+uuWWW/T999+fM7a621Lr1q3T0KFD1aZNG/n6+qpDhw4aPXq0Dh8+fM74VatWqWvXrvLx8VH79u01a9asauuxWCx67LHHNHfuXHXu3Fk+Pj5atGiRJOmFF17Qddddp6CgIAUGBup3v/udFixYoLN/ozgqKkq33XabPv74Y3Xv3l1+fn7q3LmzPv74Y/tcOnfurBYtWujaa69VZmbmOfUCqB5XboBLUHx8vN555x2NHz9e9957r373u9/J29vboc+KFSt05513ymq16u9//7skycfHx6FPUlKS4uPjNXfuXHl4eCgkJERLly7VAw88oKFDh2rRokXy9vbW22+/rYEDB+qzzz5TQkKCU7UahqFhw4bpP//5j6ZMmaKePXvq3//+twYNGlSn8T/++KPi4+P1yCOPyGq1at++ffrb3/6mvn37Kjs72z7vTz/9VHfccYf69++vDz74QOXl5ZoxY4Z+/vnnao+7cuVKffnll5oyZYrCwsIUEhIiSdq3b59Gjx6ttm3bSpI2btyocePGKS8vT1OmTHE4xvbt25WUlKQ//elPslqteuGFF3THHXcoKSlJn3/+uV555RVZLBZNmjRJt912m3Jycrg6BNSFAeCSc/jwYaNv376GJEOS4e3tbfTu3dtITk42SkpK7P1iYmKM66+//pzx69evNyQZ/fv3d2gvLS01goKCjCFDhji0V1RUGN26dTOuvfZae9vIkSONdu3anXPsqVOnGr/9p2nt2rWGJGPWrFkO/V5++WVDkjF16lR723vvvWdIMnJycqqdd2VlpVFWVmb89NNPhiRj1apV9n09e/Y0IiMjDZvNZm8rKSkxgoODjbP/qZRkWK1W4+jRo9We57fzLisrM1588UUjODjYqKystO9r166d4efnZxw4cMDetm3bNkOSER4ebpSWltrbV65caUgyVq9eXev5AJzBbSngEhQcHKwvv/xSmzdv1rRp0zR06FB9//33SkpKUmxsbLW3bKozfPhwh9f/+c9/dPToUY0cOVLl5eX2rbKyUrfccos2b96s0tJSp2pdv369JOnee+91aL/nnnvqNL6wsFBjxoxRZGSkvLy85O3trXbt2kmSdu3aJUkqLS1VZmamhg0bpmbNmtnH+vv7a8iQIdUe96abblLLli3Paf/iiy80YMAAWa1WeXp6ytvbW1OmTNGRI0dUWFjo0Peaa65R69at7a87d+4sSbrhhhvUvHnzc9p/+umnOs0ZuNRxWwq4hMXFxSkuLk7SmQeCJ02apNdff13Tp0+v04PFZ38qqeoWzp133lnjmKNHj6pFixZ1rvHIkSPy8vJScHCwQ3tYWNh5x1ZWVioxMVEHDx7Un//8Z8XGxqpFixaqrKxUr169dPLkSUnSsWPHZBiGQkNDzzlGdW3SuXOXpK+//lqJiYm64YYbNH/+fLVp00bNmjXTypUr9fLLL9vPVyUoKMjhdVWwqqn91KlT550zAMINgF95e3tr6tSpev311/XNN9/UaczZD9pefvnlkqQ33nhDvXr1qnZMVVjw9fWVzWY7Z//ZV42Cg4NVXl6uI0eOOAScgoKC89b3zTffaPv27Vq4cKFGjhxpb6968LlKy5YtZbFYqn2+pqbznD13SVq+fLm8vb318ccfy9fX196+cuXK89YKoP5wWwq4BOXn51fbXnWbJiIiQtKZB4jPvtpQmz59+uiyyy7Tt99+a78qdPZWdRUiKipKhYWFDoHi9OnT+uyzzxyOeeONN0qS/vGPfzi0v//+++etpyqAnP0g9Ntvv+3wukWLFoqLi9PKlSt1+vRpe/svv/xi//RSXVR9FN7T09PedvLkSS1ZsqTOxwBw8bhyA1yCBg4cqDZt2mjIkCHq1KmTKisrtW3bNr322mvy9/fXhAkTJEmxsbFavny5PvjgA7Vv316+vr6KjY2t8bj+/v564403NHLkSB09elR33nmnQkJCdOjQIW3fvl2HDh3SnDlzJEm///3vNWXKFI0YMUJPP/20Tp06pdmzZ6uiosLhmImJierfv7+eeeYZlZaWKi4uTv/+97/rFBg6deqkK664Qs8++6wMw1BQUJA++ugjrVu37py+L774om699VYNHDhQEyZMUEVFhf7617/K399fR48erdPf9dZbb9Xf/vY33XPPPfrv//5vHTlyRDNmzDgnXAFoWIQb4BL03HPPadWqVXr99deVn58vm82m8PBwDRgwQElJSfYHWF944QXl5+dr1KhRKikpUbt27c770wb33Xef2rZtq+nTp2v06NEqKSlRSEiIrrnmGj344IP2ftHR0Vq1apUmT56sO++8U+Hh4Zo4caIOHTqkF154wd7Pw8NDq1ev1sSJEzV9+nSdPn1affr00SeffKJOnTrVWou3t7c++ugjTZgwQaNHj5aXl5cGDBigf/3rX/aPale55ZZblJKSoilTpuj3v/+9wsLC9Oijj+rgwYN1vvJy00036d1339Wrr76qIUOGqHXr1ho1apRCQkL08MMP1+kYAC6exTDO+mYpAICkMw9ZV32iKTU11dXlAKgjrtwAwK8efvhh3XzzzQoPD1dBQYHmzp2rXbt2adasWa4uDYATCDcA8KuSkhI99dRTOnTokLy9vfW73/1On3zyiQYMGODq0gA4gdtSAADAVPgoOAAAMBXCDQAAMBXCDQAAMJVL7oHiyspKHTx4UAEBAdV+fToAAGh6DMNQSUmJIiIi5OFR+7WZSy7cHDx4UJGRka4uAwAAXIDc3Fy1adOm1j6XXLgJCAiQ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XKsTv8xT2amvJIuHmvneLD//h+XpGeayugAAuFS5LNzURX5+vvbv329/HR0drU8++URPPPGE3nrrLUVERGj27NkaPny4C6uUPL2iFHDZKy6tAQAAnGExqp7IvUQUFxfLarWqqKhIgYGBri4HAADUgTPv3y7/nhsAAID6RLgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmckHhZsmSJerTp48iIiL0008/SZJmzpypVatW1WtxAAAAznI63MyZM0cTJ07U4MGDdfz4cVVUVEiSLrvsMs2cObO+6wMAAHCK0+HmjTfe0Pz58/WnP/1Jnp6e9va4uDhlZ2fXa3EAAADOcjrc5OTkqHv37ue0+/j4qLS0tF6KAgAAuFBOh5vo6Ght27btnPa1a9fq6quvro+aAAAALpiXswOefvppjR07VqdOnZJhGPr666+1bNkyJScn65133mmIGgEAAOrM6XDz0EMPqby8XM8884xOnDihe+65R61bt9asWbM0YsSIhqgRAACgziyGYRgXOvjw4cOqrKxUSEhIfdbUoIqLi2W1WlVUVKTAwEBXlwMAAOrAmfdvp5+5OXnypE6cOCFJuvzyy3Xy5EnNnDlTqampF1YtAABAPXI63AwdOlSLFy+WJB0/flzXXnutXnvtNQ0dOlRz5syp9wIBAACc4XS42bp1q/r16ydJ+uc//6mwsDD99NNPWrx4sWbPnl3vBQIAADjD6XBz4sQJBQQESJJSU1N1xx13yMPDQ7169bL/FAMAAICrOB1uOnTooJUrVyo3N1efffaZEhMTJUmFhYU8oAsAAFzO6XAzZcoUPfXUU4qKitJ1112n+Ph4SWeu4lT3zcUAAACN6YI+Cl5QUKD8/Hx169ZNHh5n8tHXX3+twMBAderUqd6LrE98FBwAAPfjzPu301/iJ0lhYWEKCwtzaLv22msv5FAAAAD1yulwU1paqmnTpunzzz9XYWGhKisrHfbv3bu33ooDAABwltPh5pFHHlF6erruv/9+hYeHy2KxNERdAAAAF8TpcLN27VqtWbNGffr0aYh6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Z24AAAAuBuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYikvDTXJysnr27KmAgACFhIRo2LBh2r17d61j0tLSZLFYztm+++67RqoaAAA0ZS4NN+np6Ro7dqw2btyodevWqby8XImJiSotLT3v2N27dys/P9++XXnllY1QMQAAaOq8XHnyTz/91OH1e++9p5CQEG3ZskX9+/evdWxISIguu+yyBqwOAAC4oyb1zE1RUZEkKSgo6Lx9u3fvrvDwcCUkJGj9+vU19rPZbCouLnbYAACAeTWZcGMYhiZOnKi+ffuqS5cuNfYLDw/XvHnzlJKSog8//FAdO3ZUQkKCNmzYUG3/5ORkWa1W+xYZGdlQUwAAAE2AxTAMw9VFSNLYsWO1Zs0affXVV2rTpo1TY4cMGSKLxaLVq1efs89ms8lms9lfFxcXKzIyUkVFRQoMDLzougEAQMMrLi6W1Wqt0/t3k7hyM27cOK1evVrr1693OthIUq9evbRnz55q9/n4+CgwMNBhAwAA5uXSB4oNw9C4ceO0YsUKpaWlKTo6+oKOk5WVpfDw8HquDgAAuCOXhpuxY8fq/fff16pVqxQQEKCCggJJktVqlZ+fnyQpKSlJeXl5Wrx4sSRp5syZioqKUkxMjE6fPq2lS5cqJSVFKSkpLpsHAABoOlwabubMmSNJuuGGGxza33vvPT344IOSpPz8fO3fv9++7/Tp03rqqaeUl5cnPz8/xcTEaM2aNRo8eHBjlQ0AAJqwJvNAcWNx5oEkAADQNLjdA8UAAAD1hXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMxcvVBQAAAPdmGIZ27D6oLzK+1768o/Ly9FC3Tq2V0PsqtQ69rNHrcemVm+TkZPXs2VMBAQEKCQnRsGHDtHv37vOOS09PV48ePeTr66v27dtr7ty5jVAtAAA4m2EY+mDNVr219Evt3luok6fKVFJq03+ycvSXtz7Ttl0HGr0ml4ab9PR0jR07Vhs3btS6detUXl6uxMRElZaW1jgmJydHgwcPVr9+/ZSVlaXJkydr/PjxSklJacTKAQCAJG3ZmasvNu6RJFUahr29stJQZaWhecv/o+JfTjVqTRbD+E0lLnbo0CGFhIQoPT1d/fv3r7bPpEmTtHr1au3atcveNmbMGG3fvl0ZGRnnPUdxcbGsVquKiooUGBhYb7UDAHApevXtf2nvgSOqKU5YLNKwAV016PqrL+o8zrx/N6kHiouKiiRJQUFBNfbJyMhQYmKiQ9vAgQOVmZmpsrKyc/rbbDYVFxc7bAAA4OIZhqGcWoLNmT7S3tzDjVhVEwo3hmFo4sSJ6tu3r7p06VJjv4KCAoWGhjq0hYaGqry8XIcPn/vHS05OltVqtW+RkZH1XjsAAJcqi4el9v0WycOjceNGkwk3jz32mHbs2KFly5adt6/F4viHrEqMZ7dLUlJSkoqKiuxbbm5u/RQMAMAlzmKx6OorQuVRS8AxDKnzFaE17m8ITeKj4OPGjdPq1au1YcMGtWnTpta+YWFhKigocGgrLCyUl5eXgoODz+nv4+MjHx+feq0XAACccXPfTsr+Pr/afRaLRc19vdXrmqhGrcmlV24Mw9Bjjz2mDz/8UF988YWio6PPOyY+Pl7r1q1zaEtNTVVcXJy8vb0bqlQAAFCNTu1Ddc+QHpLkcAXHIsnPx0sTHrxBvj6N+/7s0k9LPfroo3r//fe1atUqdezY0d5utVrl5+cn6cxtpby8PC1evFjSmY+Cd+nSRaNHj9aoUaOUkZGhMWPGaNmyZRo+fPh5z8mnpQAAqH/5h4q14esflHPgyJkv8evcWr27R6tF8/q5e+LM+7dLw011z8hI0nvvvacHH3xQkvTggw9q3759SktLs+9PT0/XE088oZ07dyoiIkKTJk3SmDFj6nROwg0AAO7HbcKNKxBuAABwP277PTcAAAAXi3ADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMpUn8KnhjqvpC5uLiYhdXAgAA6qrqfbsuP6xwyYWbkpISSVJkZKSLKwEAAM4qKSmR1Wqttc8l99tSlZWVOnjwoAICAmr84c4LVVxcrMjISOXm5pryd6vMPj/J/HNkfu7P7HNkfu6voeZoGIZKSkoUEREhD4/an6q55K7ceHh4qE2bNg16jsDAQNP+n1Yy//wk88+R+bk/s8+R+bm/hpjj+a7YVOGBYgAAYCqEGwAAYCqEm3rk4+OjqVOnysfHx9WlNAizz08y/xyZn/sz+xyZn/trCnO85B4oBgAA5saVGwAAYCqEGwAAYCqEGwAAYCqEGwAAYCqEmzrasGGDhgwZooiICFksFq1cufK8Y9LT09WjRw/5+vqqffv2mjt3bsMXehGcnWNaWposFss523fffdc4BTspOTlZPXv2VEBAgEJCQjRs2DDt3r37vOPcZR0vZH7utIZz5sxR165d7V8MFh8fr7Vr19Y6xl3Wroqzc3Sn9atOcnKyLBaLHn/88Vr7uds6VqnL/NxtDZ9//vlzag0LC6t1jCvWj3BTR6WlperWrZvefPPNOvXPycnR4MGD1a9fP2VlZWny5MkaP368UlJSGrjSC+fsHKvs3r1b+fn59u3KK69soAovTnp6usaOHauNGzdq3bp1Ki8vV2JiokpLS2sc407reCHzq+IOa9imTRtNmzZNmZmZyszM1E033aShQ4dq586d1fZ3p7Wr4uwcq7jD+p1t8+bNmjdvnrp27VprP3dcR6nu86viTmsYExPjUGt2dnaNfV22fgacJslYsWJFrX2eeeYZo1OnTg5to0ePNnr16tWAldWfusxx/fr1hiTj2LFjjVJTfSssLDQkGenp6TX2ced1rMv83H0NW7ZsabzzzjvV7nPntfut2uborutXUlJiXHnllca6deuM66+/3pgwYUKNfd1xHZ2Zn7ut4dSpU41u3brVub+r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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "leaf_2\n", - "\n", - "4\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "---Inital Iteration---\n", - "DIGRAPH - Abstandsmatrix\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "table\n", - "\n", - "0\n", - "\n", - "2 - 3\n", - "\n", - "5 - 2\n", - "\n", - "5 - 3\n", - "\n", - "1 - 4\n", - "\n", - "4 - 5\n", - "\n", - "2 - 3\n", - "\n", - "0.0\n", - "\n", - "3.16\n", - "\n", - "3.0\n", - "\n", - "1.41\n", - "\n", - "2.83\n", - "\n", - "5 - 2\n", - "\n", - "3.16\n", - "\n", - "0.0\n", - "\n", - "1.0\n", - "\n", - "4.47\n", - "\n", - "3.16\n", - "\n", - "5 - 3\n", - "\n", - "3.0\n", - "\n", - "1.0\n", - "\n", - "0.0\n", - "\n", - "4.12\n", - "\n", - "2.24\n", - "\n", - "1 - 4\n", - "\n", - "1.41\n", - "\n", - "4.47\n", - "\n", - "4.12\n", - "\n", - "0.0\n", - "\n", - "3.16\n", - "\n", - "4 - 5\n", - "\n", - "2.83\n", - "\n", - "3.16\n", - "\n", - "2.24\n", - "\n", - "3.16\n", - "\n", - "0.0\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "\n", - "---Next Iteration---\n", - "DIGRAPH - Abstandsmatrix\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "table\n", - "\n", - "1\n", - "\n", - "2 - 3\n", - "\n", - "5 - 3\n", - "\n", - "1 - 4\n", - "\n", - "4 - 5\n", - "\n", - "2 - 3\n", - "\n", - "0.0\n", - "\n", - "3.0\n", - "\n", - "1.41\n", - "\n", - "2.83\n", - "\n", - "5 - 3\n", - "\n", - "3.0\n", - "\n", - "0.0\n", - "\n", - "4.12\n", - "\n", - "2.24\n", - "\n", - "1 - 4\n", - "\n", - "1.41\n", - "\n", - "4.12\n", - "\n", - "0.0\n", - "\n", - "3.16\n", - "\n", - "4 - 5\n", - "\n", - "2.83\n", - "\n", - "2.24\n", - "\n", - "3.16\n", - "\n", - "0.0\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "table\n", - "\n", - "1\n", - "\n", - "2 - 3\n", - "\n", - "5 - 3\n", - "\n", - "1 - 4\n", - "\n", - "4 - 5\n", - "\n", - "2 - 3\n", - "\n", - "0.0\n", - "\n", - "3.0\n", - "\n", - "1.41\n", - "\n", - "2.83\n", - "\n", - "5 - 3\n", - "\n", - "3.0\n", - "\n", - "0.0\n", - "\n", - "4.12\n", - "\n", - "2.24\n", - "\n", - "1 - 4\n", - "\n", - "1.41\n", - "\n", - "4.12\n", - "\n", - "0.0\n", - "\n", - "3.16\n", - "\n", - "4 - 5\n", - "\n", - "2.83\n", - "\n", - "2.24\n", - "\n", - "3.16\n", - "\n", - "0.0\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "\n", - "---Next Iteration---\n", - "-------\n", - "DIGRAPH - Abstandsmatrix\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "table\n", - "\n", - "2\n", - "\n", - "2 - 3\n", - "\n", - "5 - 3\n", - "\n", - "4 - 5\n", - "\n", - "2 - 3\n", - "\n", - "0.0\n", - "\n", - "3.0\n", - "\n", - "2.83\n", - "\n", - "5 - 3\n", - "\n", - "3.0\n", - "\n", - "0.0\n", - "\n", - "2.24\n", - "\n", - "4 - 5\n", - "\n", - "2.83\n", - "\n", - "2.24\n", - "\n", - "0.0\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "table\n", - "\n", - "2\n", - "\n", - "2 - 3\n", - "\n", - "5 - 3\n", - "\n", - "4 - 5\n", - "\n", - "2 - 3\n", - "\n", - "0.0\n", - "\n", - "3.0\n", - "\n", - "2.83\n", - "\n", - "5 - 3\n", - "\n", - "3.0\n", - "\n", - "0.0\n", - "\n", - "2.24\n", - "\n", - "4 - 5\n", - "\n", - "2.83\n", - "\n", - "2.24\n", - "\n", - "0.0\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "\n", - "---Next Iteration---\n", - "-------\n", - "DIGRAPH - Abstandsmatrix\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "table\n", - "\n", - "3\n", - "\n", - "2 - 3\n", - "\n", - "5 - 3\n", - "\n", - "2 - 3\n", - "\n", - "0.0\n", - "\n", - "3.0\n", - "\n", - "5 - 3\n", - "\n", - "3.0\n", - "\n", - "0.0\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "table\n", - "\n", - "3\n", - "\n", - "2 - 3\n", - "\n", - "5 - 3\n", - "\n", - "2 - 3\n", - "\n", - "0.0\n", - "\n", - "3.0\n", - "\n", - "5 - 3\n", - "\n", - "3.0\n", - "\n", - "0.0\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "'{\"Dendogram\": \"// Dendrogram\\\\ndigraph {\\\\n\\\\tleaf_2 [label=4]\\\\n}\\\\n\", \"DigraphIteration0\": \"// Distance Matrix\\\\ndigraph {\\\\n\\\\ttable [label=<
02 - 35 - 25 - 31 - 44 - 5
2 - 30.03.163.01.412.83
5 - 23.160.01.04.473.16
5 - 33.01.00.04.122.24
1 - 41.414.474.120.03.16
4 - 52.833.162.243.160.0
> shape=plaintext]\\\\n}\\\\n\", \"DigraphIteration1\": \"// Distance Matrix\\\\ndigraph {\\\\n\\\\ttable [label=<
12 - 35 - 31 - 44 - 5
2 - 30.03.01.412.83
5 - 33.00.04.122.24
1 - 41.414.120.03.16
4 - 52.832.243.160.0
> shape=plaintext]\\\\n}\\\\n\", \"DigraphIteration2\": \"// Distance Matrix\\\\ndigraph {\\\\n\\\\ttable [label=<
22 - 35 - 34 - 5
2 - 30.03.02.83
5 - 33.00.02.24
4 - 52.832.240.0
> shape=plaintext]\\\\n}\\\\n\", \"DigraphIteration3\": \"// Distance Matrix\\\\ndigraph {\\\\n\\\\ttable [label=<
32 - 35 - 3
2 - 30.03.0
5 - 33.00.0
> shape=plaintext]\\\\n}\\\\n\"}'" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "#Clusteranalyse\n", - "\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import random\n", - "from scipy.cluster.hierarchy import linkage, dendrogram\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "import pandas as pd\n", - "from graphviz import Digraph\n", - "import graphviz\n", - "#from IPython.display import display\n", - "import math\n", - "import json\n", - "import sys\n", - "\n", - "#functions\n", - "def generate_clusters(n_clusters, m_points_per_cluster, rangeStart, rangeEnd):\n", - " # Generate random cluster centers\n", - " cluster_centers = np.random.randint(rangeStart, rangeEnd, size=(n_clusters, 2))\n", - " noise_scale = 1\n", - "\n", - " # Generate points for each cluster\n", - " points = []\n", - " for center in cluster_centers:\n", - " cluster_points = np.random.randint(-5, 5, size=(m_points_per_cluster, 2)) + center\n", - " points.extend(cluster_points)\n", - "\n", - " # Add noise to the points\n", - " noisy_points = points + (np.random.randint(-2, 2, size=(len(points), 2)))\n", - " \n", - " return np.array(noisy_points)\n", - "\n", - "def is_element_in_array(cluster_array, single_point):\n", - " for sub_array in cluster_array:\n", - " for element in sub_array:\n", - " if element[0] == single_point[0] and element[1] == single_point[1]:\n", - " return True\n", - " return False\n", - "\n", - "def is_element_in_array_location(cluster_array, single_point):\n", - " i = 0\n", - " j = 0\n", - " for sub_array in cluster_array:\n", - " for element in sub_array:\n", - " if element[0] == single_point[0] and element[1] == single_point[1]:\n", - " #print(\"LOCATION\")\n", - " #print(element[0])\n", - " #print(element[1])\n", - " return [i, j]\n", - " j += 1\n", - " i += 1\n", - " return False\n", - "\n", - "def check_array_exists(arrayName):\n", - " if 'clusters' in dir():\n", - " return True\n", - " else:\n", - " return False\n", - "\n", - "#todo\n", - "def manhattan_distance(point1, point2):\n", - " return np.sum(np.abs(point1 + point2))\n", - "\n", - "#ready\n", - "def euclidean_distance(array1, array2):\n", - " return round(math.sqrt((pow((array1[0] - array2[0]), 2)) + (pow((array1[1] - array2[1]), 2))),2)\n", - "\n", - "#todo\n", - "def maximum_distance(point1, point2):\n", - " return np.max([[point1],[point2]])\n", - "\n", - "def calculate_inital_abstraction_matrix(data, distance_function):\n", - " #print(data)\n", - " #print(distance_function)\n", - " # Initialize clusters with each data point as a separate cluster\n", - " array = np.zeros((data.shape[0],data.shape[0]))\n", - " \n", - " for iteration_number_row in range(len(data)):\n", - " \n", - " for iteration_number_column in range(len(data)):\n", - " array[iteration_number_row, iteration_number_column] = distance_function(data[iteration_number_row],data[iteration_number_column])\n", - "\n", - " return array\n", - "\n", - "def single_linkage_get_indices(inital_abstraction_matrix):\n", - "\n", - " # Exclude diagonal elements and zeros\n", - " lower_triangular = np.tril(inital_abstraction_matrix, k=-1)\n", - " lower_triangular[lower_triangular == 0] = np.inf\n", - " \n", - " min_index = np.unravel_index(np.argmin(lower_triangular), lower_triangular.shape)\n", - " \n", - " # Adjust indices to consider the original matrix\n", - " #adjusted_indices = (min_index[0] + 1, min_index[1])\n", - "\n", - " #print(min_index)\n", - " return min_index\n", - "\n", - "#get nearest of 2 points to get the new center of the cluster\n", - "def get_nearest_point(data, point_a, point_b, distance_function):\n", - " #get the point that is more near the other points\n", - " # Calculate distances for both points\n", - " distances_to_a = [distance_function(point_a, point) for point in data]\n", - " distances_to_b = [distance_function(point_b, point) for point in data]\n", - "\n", - " # Find the index of the nearest point for each given point for both points\n", - " nearest_point_index_a = np.argmin(distances_to_a)\n", - " nearest_point_index_b = np.argmin(distances_to_b)\n", - " \n", - " sum_distance_to_a = 0\n", - " for distance in distances_to_a:\n", - " sum_distance_to_a += float(distance)\n", - " \n", - " sum_distance_to_b = 0\n", - " for distance in distances_to_b:\n", - " sum_distance_to_b += float(distance)\n", - "\n", - " \n", - " # Compare the distances\n", - " #[[nearest_point][point_to_delete]]\n", - " if sum_distance_to_a < sum_distance_to_b:\n", - " nearest_point = [data[nearest_point_index_a] , data[nearest_point_index_b]]\n", - " elif sum_distance_to_a > sum_distance_to_b:\n", - " nearest_point = [data[nearest_point_index_b] , data[nearest_point_index_a]]\n", - " else: #equal\n", - " nearest_point = [data[nearest_point_index_a] , data[nearest_point_index_b]]\n", - " \n", - " return nearest_point\n", - "\n", - "def createScatterDiagram(data):\n", - " # Streudiagramm zeichnen\n", - " # Extract x and y coordinates\n", - " x = data[:, 0]\n", - " y = data[:, 1]\n", - "\n", - " # Generate random colors\n", - " colors = np.random.rand(len(x), 3)\n", - "\n", - " # Create scatter plot with random colors\n", - " plt.scatter(x, y, marker='o', color=colors)\n", - "\n", - " # Add labels and title\n", - " plt.xlabel('X-Achse')\n", - " plt.ylabel('Y-Achse')\n", - " plt.title('Streudiagram')\n", - "\n", - " # Display the plot\n", - " plt.show()\n", - "\n", - "def createDigraph(distanceMatrix, points, iterationNumber):\n", - " #transform matrix\n", - " \n", - " points = points.astype(str)\n", - " distanceMatrix = distanceMatrix.astype(str)\n", - " pointsY = np.array([[' - '.join(row)] for row in points]) \n", - " pointsX = np.array([[' - '.join(row)] for row in points]) \n", - " #pointsX = np.insert(pointsX, 0, 'Iteration {}'.format(iterationNumber), axis=0)\n", - " pointsX = np.insert(pointsX, 0, str(iterationNumber), axis=0)\n", - "\n", - " # Concatenate arr1 and arr2 vertically\n", - " distanceMatrix = np.concatenate((pointsY, distanceMatrix), axis=1)\n", - " \n", - " Array2d = np.array([np.concatenate(pointsX.T)])\n", - " distanceMatrixNew = np.append(Array2d, distanceMatrix, axis=0)\n", - " \n", - " # Create a Digraph object\n", - " dot = Digraph(comment='Distance Matrix')\n", - "\n", - " # Create a single table for the entire matrix\n", - " table_label = f'<'\n", - " for i in range(distanceMatrixNew.shape[0]):\n", - " table_label += ''\n", - " for j in range(distanceMatrixNew.shape[1]):\n", - " table_label += f''\n", - " table_label += ''\n", - " table_label += '
{distanceMatrixNew[i, j]}
>'\n", - "\n", - " # Add a single node to the graph with the entire table as label\n", - " dot.node('table', label=table_label, shape='plaintext')\n", - " \n", - " # Save the graph as a PNG file\n", - " #dot.render('directed_graph', format='png', cleanup=True)\n", - " \n", - " display(dot)\n", - " \n", - " return str(dot)\n", - "\n", - "# Helper function to recursively add nodes and edges to the graph\n", - "def add_nodes_edges(dot, node_id, Z, dendrogram_data):\n", - " if node_id < len(Z):\n", - " # Internal node\n", - " child1, child2 = Z[node_id, 0], Z[node_id, 1]\n", - " dot.node(f'node_{node_id}', label=str(Z[node_id, 2]))\n", - " add_nodes_edges(dot, int(child1), Z, dendrogram_data)\n", - " add_nodes_edges(dot, int(child2), Z, dendrogram_data)\n", - " dot.edge(f'node_{node_id}', f'node_{int(child1)}')\n", - " dot.edge(f'node_{node_id}', f'node_{int(child2)}')\n", - " else:\n", - " # Leaf node\n", - " leaf_index = node_id - len(Z)\n", - " dot.node(f'leaf_{leaf_index}', label=str(dendrogram_data['ivl'][leaf_index]))\n", - "\n", - "\n", - "def createDendogramDotLanguage(data, distanceMethod):\n", - " \n", - " if distanceMethod == 'manhattan':\n", - " linkage_data = linkage(data, method='single', metric='cityblock')\n", - "\n", - " elif distanceMethod == 'euclidean':\n", - " linkage_data = linkage(data, method='single', metric='euclidean')\n", - "\n", - " elif distanceMethod == 'maximum':\n", - " linkage_data = linkage(data, method='single', metric='maximum')\n", - "\n", - " else:\n", - " return ''\n", - " \n", - " #dendrogram(linkage_data)\n", - " \n", - " #print(linkage_data)\n", - "\n", - " #plt.show()\n", - " \n", - " # Create a dendrogram\n", - " dendrogram_data = dendrogram(linkage_data, no_plot=True)\n", - "\n", - " # Create a Graphviz graph\n", - " dot = graphviz.Digraph(comment='Dendrogram')\n", - "\n", - " # Add nodes and edges to the graph\n", - " add_nodes_edges(dot, len(linkage_data) * 2 - 2, linkage_data, dendrogram_data)\n", - " display(dot)\n", - " \n", - " return str(dot)\n", - "\n", - "\n", - "def clusterAnalysisMain(numClusters, pointsPerCluster, nodeRangeStart, nodeRangeEnd, distanceMethod, linkageMethod):\n", - " #data = generate_clusters(numClusters, pointsPerCluster, nodeRangeStart, nodeRangeEnd)\n", - " data = np.array([[2, 3],\n", - " [5, 2],\n", - " [5, 3],\n", - " [1, 4],\n", - " [4, 5]])\n", - " \n", - " \n", - " createScatterDiagram(data)\n", - " jsonDict = {}\n", - " \n", - " jsonDict[\"Dendogram\"] = createDendogramDotLanguage(data, distanceMethod)\n", - " \n", - " \n", - " for iteration in range(data.shape[0]):\n", - " #erste iteration\n", - " if(iteration == 0):\n", - " \n", - " clusters = []\n", - " \n", - " #inital abstraction matrix\n", - " print(\"---Inital Iteration---\")\n", - " #get distance method\n", - " if distanceMethod == 'manhattan':\n", - " matrix = calculate_inital_abstraction_matrix(data, manhattan_distance)\n", - "\n", - " elif distanceMethod == 'euclidean':\n", - " matrix = calculate_inital_abstraction_matrix(data, euclidean_distance)\n", - "\n", - " elif distanceMethod == 'maximum':\n", - " matrix = calculate_inital_abstraction_matrix(data, maximum_distance)\n", - "\n", - " else:\n", - " break\n", - " \n", - " #matrix = calculate_inital_abstraction_matrix(data, euclidean_distance)\n", - " single_linkage_indices = single_linkage_get_indices(matrix)\n", - " #print(single_linkage_indices)\n", - " \n", - " #get two points from given index that are the first cluster\n", - " point_a = data[single_linkage_indices[0]]\n", - " point_b = data[single_linkage_indices[1]]\n", - " \n", - " \n", - " if distanceMethod == 'manhattan':\n", - " nearest_point = get_nearest_point(data, point_a, point_b, manhattan_distance)\n", - "\n", - " elif distanceMethod == 'euclidean':\n", - " nearest_point = get_nearest_point(data, point_a, point_b, euclidean_distance)\n", - "\n", - " elif distanceMethod == 'maximum':\n", - " nearest_point = get_nearest_point(data, point_a, point_b, maximum_distance)\n", - "\n", - " else:\n", - " break\n", - " \n", - " #nearest_point = get_nearest_point(data, point_a, point_b, euclidean_distance)\n", - " #delete the point from the dataset, that is not nearest\n", - " point_to_remove = nearest_point[1]\n", - " \n", - " \n", - " #create Digraph\n", - " #TODO -> oberste Zeile noch hinzufügen\n", - " print(\"DIGRAPH - Abstandsmatrix\")\n", - " jsonDict[\"DigraphIteration{}\".format(iteration)] = createDigraph(matrix, data, iteration)\n", - " \n", - " \n", - " #define cluster elements\n", - " #clusters = np.array([[point_a, point_b]])\n", - " clusters.append([point_a, point_b])\n", - " #print(\"Aktuelle Cluster:\")\n", - " #print(clusters)\n", - " \n", - " #define new dataset\n", - " new_data = np.array([point for point in data if not np.array_equal(point, point_to_remove)])\n", - " #print(\"Neuer Hauptdatensatz\")\n", - " #print(new_data)\n", - "\n", - " #alle weiteren iterationen \n", - " elif(iteration > 0):\n", - " \n", - " if len(new_data) == 1:\n", - " continue\n", - " \n", - " print(\"\")\n", - " print(\"\")\n", - " print(\"---Next Iteration---\")\n", - " \n", - " \n", - " if distanceMethod == 'manhattan':\n", - " matrix = calculate_inital_abstraction_matrix(new_data, manhattan_distance)\n", - " \n", - " elif distanceMethod == 'euclidean':\n", - " matrix = calculate_inital_abstraction_matrix(new_data, euclidean_distance)\n", - "\n", - " elif distanceMethod == 'maximum':\n", - " matrix = calculate_inital_abstraction_matrix(new_data, maximum_distance)\n", - "\n", - " else:\n", - " break\n", - " #matrix = calculate_inital_abstraction_matrix(new_data, euclidean_distance)\n", - "\n", - " #get the two points with the new minimum distance\n", - " single_linkage_indices = single_linkage_get_indices(matrix)\n", - " \n", - " #get two points from given index that are the new cluster\n", - " point_a = new_data[single_linkage_indices[0]]\n", - " point_b = new_data[single_linkage_indices[1]]\n", - " \n", - " #nearest_point = get_nearest_point(data, point_a, point_b, euclidean_distance)\n", - " #delete the point from the dataset, that is not nearest\n", - " #point_to_remove = nearest_point[1]\n", - " \n", - " #add point to current cluster\n", - " if is_element_in_array(clusters, point_a) or is_element_in_array(clusters, point_b):\n", - " #print(\"Erweitere Cluster\")\n", - " \n", - " #get element number of the cluster and append point to the current cluster\n", - " if is_element_in_array(clusters, point_a):\n", - " arrayLocation = is_element_in_array_location(clusters, point_a)\n", - " pointToAppend = point_b\n", - " elif is_element_in_array(clusters, point_b):\n", - " arrayLocation = is_element_in_array_location(clusters, point_b)\n", - " pointToAppend = point_a\n", - " \n", - " #print(arrayLocation)\n", - " \n", - " #append pointToAppend to cluster:\n", - " #clusters = np.insert(clusters, arrayLocation[0], pointToAppend, axis=arrayLocation[1])\n", - " #print(clusters[arrayLocation[0]])\n", - " #clusters[arrayLocation[0], arrayLocation[1]]\n", - " \n", - " #newClusters1 = clusters[arrayLocation[0]]\n", - " #print(clusters[arrayLocation[0]])\n", - " pointsToAppend = np.vstack([clusters[arrayLocation[0]], pointToAppend])\n", - " \n", - " newClusters = []\n", - " \n", - " newClusters.append(pointsToAppend)\n", - "\n", - " #newClusters = np.append(clusters[arrayLocation[0]], [pointToAppend], axis=0)\n", - " #newClusters = np.array([[point_a, point_b]])\n", - " clusterCounter = 0\n", - " \n", - " for cluster in clusters:\n", - " if clusterCounter == arrayLocation[0]:\n", - " clusterCounter += 1\n", - " \n", - " else:\n", - " #newClusters = np.concatenate([newClusters, [cluster]]) #dimensions are not valid! -> was anderes einfallen lassen!! #letztes puzzelstück -> wie den bums richtig zusammenfügen???!!!\n", - " newClusters.append(cluster)\n", - " clusterCounter += 1\n", - " \n", - " \n", - " #print(\"UPDATED CLUSTER:\")\n", - " #print(newClusters)\n", - " print(\"-------\")\n", - " \n", - " clusters = newClusters\n", - "\n", - " #create new cluster\n", - " else:\n", - " #print(\"Definiere neues Cluster\")\n", - " #define cluster elements if ist an new cluster\n", - " #clusters = np.append(clusters,[[point_a, point_b]], axis=0)\n", - " clusters.append([point_a, point_b])\n", - " #print(clusters)\n", - " \n", - " #print(\"Aktuelle Cluster:\")\n", - " #print(clusters)\n", - " \n", - " print(\"DIGRAPH - Abstandsmatrix\")\n", - " createDigraph(matrix, new_data, iteration)\n", - " jsonDict[\"DigraphIteration{}\".format(iteration)] = createDigraph(matrix, new_data, iteration)\n", - "\n", - " \n", - " if distanceMethod == 'manhattan':\n", - " nearest_point = get_nearest_point(data, point_a, point_b, manhattan_distance)\n", - " \n", - " elif distanceMethod == 'euclidean':\n", - " nearest_point = get_nearest_point(data, point_a, point_b, euclidean_distance)\n", - "\n", - " elif distanceMethod == 'maximum':\n", - " nearest_point = get_nearest_point(data, point_a, point_b, maximum_distance)\n", - "\n", - " else:\n", - " break\n", - " \n", - " #nearest_point = get_nearest_point(data, point_a, point_b, euclidean_distance)\n", - " #delete the point from the dataset, that is not nearest\n", - " point_to_remove = nearest_point[1]\n", - " \n", - "\n", - " \n", - " #define new dataset\n", - " new_data = np.array([point for point in new_data if not np.array_equal(point, point_to_remove)])\n", - " #print(\"Neuer Hauptdatensatz\")\n", - " #print(new_data)\n", - " return json.dumps(jsonDict)\n", - " \n", - "# Anzahl der Datenpunktansammlungen (Cluster)\n", - "#numClusters = int(sys.argv[1])\n", - "#pointsPerCluster = int(sys.argv[2])\n", - "#nodeRangeStart = int(sys.argv[3])\n", - "#nodeRangeEnd = int(sys.argv[4])\n", - "#distanceMethod = int(sys.argv[5])\n", - "#linkageMethod = int(sys.argv[6])\n", - "\n", - "numClusters = 2\n", - "pointsPerCluster = 3\n", - "nodeRangeStart = 0\n", - "nodeRangeEnd = 25\n", - "distanceMethod = 'euclidean'\n", - "linkageMethod = 'single'\n", - "#Hauptfunktion ausfuehren\n", - "clusterAnalysisMain(numClusters, pointsPerCluster, nodeRangeStart, nodeRangeEnd, distanceMethod, linkageMethod)\n", - "\n", - "\n", - "#TODO\n", - "#Eingabevalidierung!!!" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "7942a038", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "3bb05ef1", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "---Inital Iteration---\n", - "DIGRAPH - Abstandsmatrix\n", - "\n", - "\n", - "---Next Iteration---\n", - "DIGRAPH - Abstandsmatrix\n", - "\n", - "\n", - "---Next Iteration---\n", - "-------\n", - "DIGRAPH - Abstandsmatrix\n", - "\n", - "\n", - "---Next Iteration---\n", - "-------\n", - "DIGRAPH - Abstandsmatrix\n", - "{'Dendogram': '// Dendrogram\\ndigraph {\\n\\tleaf_2 [label=4]\\n}\\n', 'DigraphIteration0': [[0.0, 3.16, 3.0, 1.41, 2.83], [3.16, 0.0, 1.0, 4.47, 3.16], [3.0, 1.0, 0.0, 4.12, 2.24], [1.41, 4.47, 4.12, 0.0, 3.16], [2.83, 3.16, 2.24, 3.16, 0.0]], 'DigraphIteration1': [[0.0, 3.0, 1.41, 2.83], [3.0, 0.0, 4.12, 2.24], [1.41, 4.12, 0.0, 3.16], [2.83, 2.24, 3.16, 0.0]], 'DigraphIteration2': [[0.0, 3.0, 2.83], [3.0, 0.0, 2.24], [2.83, 2.24, 0.0]], 'DigraphIteration3': [[0.0, 3.0], [3.0, 0.0]]}\n" - ] - }, - { - "data": { - "text/plain": [ - "'{\"Dendogram\": \"// Dendrogram\\\\ndigraph {\\\\n\\\\tleaf_2 [label=4]\\\\n}\\\\n\", \"DigraphIteration0\": [[0.0, 3.16, 3.0, 1.41, 2.83], [3.16, 0.0, 1.0, 4.47, 3.16], [3.0, 1.0, 0.0, 4.12, 2.24], [1.41, 4.47, 4.12, 0.0, 3.16], [2.83, 3.16, 2.24, 3.16, 0.0]], \"DigraphIteration1\": [[0.0, 3.0, 1.41, 2.83], [3.0, 0.0, 4.12, 2.24], [1.41, 4.12, 0.0, 3.16], [2.83, 2.24, 3.16, 0.0]], \"DigraphIteration2\": [[0.0, 3.0, 2.83], [3.0, 0.0, 2.24], [2.83, 2.24, 0.0]], \"DigraphIteration3\": [[0.0, 3.0], [3.0, 0.0]], \"iterations\": 4}'" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "#Clusteranalyse\n", - "\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import random\n", - "from scipy.cluster.hierarchy import linkage, dendrogram\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "import pandas as pd\n", - "from graphviz import Digraph\n", - "import graphviz\n", - "#from IPython.display import display\n", - "import math\n", - "import json\n", - "import sys\n", - "import os\n", - "\n", - "#functions\n", - "def generate_clusters(n_clusters, m_points_per_cluster, rangeStart, rangeEnd):\n", - " # Generate random cluster centers\n", - " cluster_centers = np.random.randint(rangeStart, rangeEnd, size=(n_clusters, 2))\n", - " noise_scale = 1\n", - "\n", - " # Generate points for each cluster\n", - " points = []\n", - " for center in cluster_centers:\n", - " cluster_points = np.random.randint(-5, 5, size=(m_points_per_cluster, 2)) + center\n", - " points.extend(cluster_points)\n", - "\n", - " # Add noise to the points\n", - " noisy_points = points + (np.random.randint(-2, 2, size=(len(points), 2)))\n", - " \n", - " return np.array(noisy_points)\n", - "\n", - "def is_element_in_array(cluster_array, single_point):\n", - " for sub_array in cluster_array:\n", - " for element in sub_array:\n", - " if element[0] == single_point[0] and element[1] == single_point[1]:\n", - " return True\n", - " return False\n", - "\n", - "def is_element_in_array_location(cluster_array, single_point):\n", - " i = 0\n", - " j = 0\n", - " for sub_array in cluster_array:\n", - " for element in sub_array:\n", - " if element[0] == single_point[0] and element[1] == single_point[1]:\n", - " #print(\"LOCATION\")\n", - " #print(element[0])\n", - " #print(element[1])\n", - " return [i, j]\n", - " j += 1\n", - " i += 1\n", - " return False\n", - "\n", - "def check_array_exists(arrayName):\n", - " if 'clusters' in dir():\n", - " return True\n", - " else:\n", - " return False\n", - "\n", - "#todo\n", - "def manhattan_distance(point1, point2):\n", - " return np.sum(np.abs(point1 + point2))\n", - "\n", - "#ready\n", - "def euclidean_distance(array1, array2):\n", - " return round(math.sqrt((pow((array1[0] - array2[0]), 2)) + (pow((array1[1] - array2[1]), 2))),2)\n", - "\n", - "#todo\n", - "def maximum_distance(point1, point2):\n", - " return np.max([[point1],[point2]])\n", - "\n", - "def calculate_inital_abstraction_matrix(data, distance_function):\n", - " \n", - " # Initialize clusters with each data point as a separate cluster\n", - " array = np.zeros((data.shape[0],data.shape[0]))\n", - " \n", - " for iteration_number_row in range(len(data)):\n", - " \n", - " for iteration_number_column in range(len(data)):\n", - " array[iteration_number_row, iteration_number_column] = distance_function(data[iteration_number_row],data[iteration_number_column])\n", - "\n", - " return array\n", - "\n", - "def single_linkage_get_indices(inital_abstraction_matrix):\n", - "\n", - " # Exclude diagonal elements and zeros\n", - " lower_triangular = np.tril(inital_abstraction_matrix, k=-1)\n", - " lower_triangular[lower_triangular == 0] = np.inf\n", - " \n", - " min_index = np.unravel_index(np.argmin(lower_triangular), lower_triangular.shape)\n", - " \n", - " # Adjust indices to consider the original matrix\n", - " #adjusted_indices = (min_index[0] + 1, min_index[1])\n", - "\n", - " #print(min_index)\n", - " return min_index\n", - "\n", - "#get nearest of 2 points to get the new center of the cluster\n", - "def get_nearest_point(data, point_a, point_b, distance_function):\n", - " #get the point that is more near the other points\n", - " # Calculate distances for both points\n", - " distances_to_a = [distance_function(point_a, point) for point in data]\n", - " distances_to_b = [distance_function(point_b, point) for point in data]\n", - "\n", - " # Find the index of the nearest point for each given point for both points\n", - " nearest_point_index_a = np.argmin(distances_to_a)\n", - " nearest_point_index_b = np.argmin(distances_to_b)\n", - " \n", - " sum_distance_to_a = 0\n", - " for distance in distances_to_a:\n", - " sum_distance_to_a += float(distance)\n", - " \n", - " sum_distance_to_b = 0\n", - " for distance in distances_to_b:\n", - " sum_distance_to_b += float(distance)\n", - "\n", - " \n", - " # Compare the distances\n", - " #[[nearest_point][point_to_delete]]\n", - " if sum_distance_to_a < sum_distance_to_b:\n", - " nearest_point = [data[nearest_point_index_a] , data[nearest_point_index_b]]\n", - " elif sum_distance_to_a > sum_distance_to_b:\n", - " nearest_point = [data[nearest_point_index_b] , data[nearest_point_index_a]]\n", - " else: #equal\n", - " nearest_point = [data[nearest_point_index_a] , data[nearest_point_index_b]]\n", - " \n", - " return nearest_point\n", - "\n", - "def createScatterDiagram(data):\n", - " # Streudiagramm zeichnen\n", - " # Extract x and y coordinates\n", - " x = data[:, 0]\n", - " y = data[:, 1]\n", - "\n", - " # Generate random colors\n", - " colors = np.random.rand(len(x), 3)\n", - "\n", - " # Create scatter plot with random colors\n", - " plt.scatter(x, y, marker='o', color=colors)\n", - "\n", - " # Add labels and title\n", - " plt.xlabel('X-Achse')\n", - " plt.ylabel('Y-Achse')\n", - " plt.title('Streudiagram')\n", - "\n", - " # #display the plot\n", - " plt.show()\n", - "\n", - "def createDigraph(distanceMatrix, points, iterationNumber):\n", - " #transform matrix\n", - " \n", - " #print(distanceMatrix)\n", - "\n", - " points = points.astype(str)\n", - " distanceMatrix = distanceMatrix.astype(str)\n", - " pointsY = np.array([[' - '.join(row)] for row in points]) \n", - " pointsX = np.array([[' - '.join(row)] for row in points]) \n", - " #pointsX = np.insert(pointsX, 0, 'Iteration {}'.format(iterationNumber), axis=0)\n", - " pointsX = np.insert(pointsX, 0, str(iterationNumber), axis=0)\n", - "\n", - " # Concatenate arr1 and arr2 vertically\n", - " distanceMatrix = np.concatenate((pointsY, distanceMatrix), axis=1)\n", - " \n", - " Array2d = np.array([np.concatenate(pointsX.T)])\n", - " distanceMatrixNew = np.append(Array2d, distanceMatrix, axis=0)\n", - " \n", - " # Create a Digraph object\n", - " dot = Digraph(comment='Distance Matrix')\n", - "\n", - " # Create a single table for the entire matrix\n", - " table_label = f'<'\n", - " for i in range(distanceMatrixNew.shape[0]):\n", - " table_label += ''\n", - " for j in range(distanceMatrixNew.shape[1]):\n", - " table_label += f''\n", - " table_label += ''\n", - " table_label += '
{distanceMatrixNew[i, j]}
>'\n", - "\n", - " # Add a single node to the graph with the entire table as label\n", - " dot.node('table', label=table_label, shape='plaintext')\n", - " \n", - " # Save the graph as a PNG file\n", - " #dot.render('directed_graph', format='png', cleanup=True)\n", - " \n", - " #display(dot)\n", - " \n", - " return str(dot)\n", - "\n", - "\n", - "\n", - "# Helper function to recursively add nodes and edges to the graph\n", - "def add_nodes_edges(dot, node_id, Z, dendrogram_data):\n", - " if node_id < len(Z):\n", - " # Internal node\n", - " child1, child2 = Z[node_id, 0], Z[node_id, 1]\n", - " dot.node(f'node_{node_id}', label=str(Z[node_id, 2]))\n", - " add_nodes_edges(dot, int(child1), Z, dendrogram_data)\n", - " add_nodes_edges(dot, int(child2), Z, dendrogram_data)\n", - " dot.edge(f'node_{node_id}', f'node_{int(child1)}')\n", - " dot.edge(f'node_{node_id}', f'node_{int(child2)}')\n", - " else:\n", - " # Leaf node\n", - " leaf_index = node_id - len(Z)\n", - " dot.node(f'leaf_{leaf_index}', label=str(dendrogram_data['ivl'][leaf_index]))\n", - "\n", - "\n", - "def createDendogramDotLanguage(data, distanceMethod):\n", - " \n", - " if distanceMethod == 'manhattan':\n", - " linkage_data = linkage(data, method='single', metric='cityblock')\n", - "\n", - " elif distanceMethod == 'euclidean':\n", - " linkage_data = linkage(data, method='single', metric='euclidean')\n", - "\n", - " elif distanceMethod == 'maximum':\n", - " linkage_data = linkage(data, method='single', metric='maximum')\n", - "\n", - " else:\n", - " return ''\n", - " \n", - " #dendrogram(linkage_data)\n", - " \n", - " #print(linkage_data)\n", - "\n", - " #plt.show()\n", - " \n", - " # Create a dendrogram\n", - " dendrogram_data = dendrogram(linkage_data, no_plot=True)\n", - "\n", - " # Create a Graphviz graph\n", - " dot = graphviz.Digraph(comment='Dendrogram')\n", - "\n", - " # Add nodes and edges to the graph\n", - " add_nodes_edges(dot, len(linkage_data) * 2 - 2, linkage_data, dendrogram_data)\n", - " #display(dot)\n", - " \n", - " return str(dot)\n", - "\n", - "\n", - "def clusterAnalysisMain(numClusters, pointsPerCluster, nodeRangeStart, nodeRangeEnd, distanceMethod, linkageMethod):\n", - " #data = generate_clusters(numClusters, pointsPerCluster, nodeRangeStart, nodeRangeEnd)\n", - " data = np.array([[2, 3],\n", - " [5, 2],\n", - " [5, 3],\n", - " [1, 4],\n", - " [4, 5]])\n", - " \n", - " \n", - " #createScatterDiagram(data)\n", - " jsonDict = {}\n", - " \n", - " jsonDict[\"Dendogram\"] = createDendogramDotLanguage(data, distanceMethod)\n", - " \n", - " \n", - " for iteration in range(data.shape[0]):\n", - " #erste iteration\n", - " if(iteration == 0):\n", - " \n", - " clusters = []\n", - " \n", - " #inital abstraction matrix\n", - " print(\"---Inital Iteration---\")\n", - " #get distance method\n", - " if distanceMethod == 'manhattan':\n", - " matrix = calculate_inital_abstraction_matrix(data, manhattan_distance)\n", - "\n", - " elif distanceMethod == 'euclidean':\n", - " matrix = calculate_inital_abstraction_matrix(data, euclidean_distance)\n", - "\n", - " elif distanceMethod == 'maximum':\n", - " matrix = calculate_inital_abstraction_matrix(data, maximum_distance)\n", - "\n", - " else:\n", - " break\n", - " \n", - " #matrix = calculate_inital_abstraction_matrix(data, euclidean_distance)\n", - " single_linkage_indices = single_linkage_get_indices(matrix)\n", - " #print(single_linkage_indices)\n", - " \n", - " #get two points from given index that are the first cluster\n", - " point_a = data[single_linkage_indices[0]]\n", - " point_b = data[single_linkage_indices[1]]\n", - " \n", - " \n", - " if distanceMethod == 'manhattan':\n", - " nearest_point = get_nearest_point(data, point_a, point_b, manhattan_distance)\n", - "\n", - " elif distanceMethod == 'euclidean':\n", - " nearest_point = get_nearest_point(data, point_a, point_b, euclidean_distance)\n", - "\n", - " elif distanceMethod == 'maximum':\n", - " nearest_point = get_nearest_point(data, point_a, point_b, maximum_distance)\n", - "\n", - " else:\n", - " break\n", - " \n", - " #nearest_point = get_nearest_point(data, point_a, point_b, euclidean_distance)\n", - " #delete the point from the dataset, that is not nearest\n", - " point_to_remove = nearest_point[1]\n", - " \n", - " \n", - " #create Digraph\n", - " #TODO -> oberste Zeile noch hinzufügen\n", - " print(\"DIGRAPH - Abstandsmatrix\")\n", - " jsonDict[\"DigraphIteration{}\".format(iteration)] = matrix.tolist() #createDigraph(matrix, data, iteration)\n", - " \n", - " \n", - " #define cluster elements\n", - " #clusters = np.array([[point_a, point_b]])\n", - " clusters.append([point_a, point_b])\n", - " #print(\"Aktuelle Cluster:\")\n", - " #print(clusters)\n", - " \n", - " #define new dataset\n", - " new_data = np.array([point for point in data if not np.array_equal(point, point_to_remove)])\n", - " #print(\"Neuer Hauptdatensatz\")\n", - " #print(new_data)\n", - "\n", - " #alle weiteren iterationen \n", - " elif(iteration > 0):\n", - " \n", - " if len(new_data) == 1:\n", - " continue\n", - " \n", - " print(\"\")\n", - " print(\"\")\n", - " print(\"---Next Iteration---\")\n", - " \n", - " \n", - " if distanceMethod == 'manhattan':\n", - " matrix = calculate_inital_abstraction_matrix(new_data, manhattan_distance)\n", - " \n", - " elif distanceMethod == 'euclidean':\n", - " matrix = calculate_inital_abstraction_matrix(new_data, euclidean_distance)\n", - "\n", - " elif distanceMethod == 'maximum':\n", - " matrix = calculate_inital_abstraction_matrix(new_data, maximum_distance)\n", - "\n", - " else:\n", - " break\n", - " #matrix = calculate_inital_abstraction_matrix(new_data, euclidean_distance)\n", - "\n", - " #get the two points with the new minimum distance\n", - " single_linkage_indices = single_linkage_get_indices(matrix)\n", - " \n", - " #get two points from given index that are the new cluster\n", - " point_a = new_data[single_linkage_indices[0]]\n", - " point_b = new_data[single_linkage_indices[1]]\n", - " \n", - " #nearest_point = get_nearest_point(data, point_a, point_b, euclidean_distance)\n", - " #delete the point from the dataset, that is not nearest\n", - " #point_to_remove = nearest_point[1]\n", - " \n", - " #add point to current cluster\n", - " if is_element_in_array(clusters, point_a) or is_element_in_array(clusters, point_b):\n", - " #print(\"Erweitere Cluster\")\n", - " \n", - " #get element number of the cluster and append point to the current cluster\n", - " if is_element_in_array(clusters, point_a):\n", - " arrayLocation = is_element_in_array_location(clusters, point_a)\n", - " pointToAppend = point_b\n", - " elif is_element_in_array(clusters, point_b):\n", - " arrayLocation = is_element_in_array_location(clusters, point_b)\n", - " pointToAppend = point_a\n", - " \n", - " #print(arrayLocation)\n", - " \n", - " #append pointToAppend to cluster:\n", - " #clusters = np.insert(clusters, arrayLocation[0], pointToAppend, axis=arrayLocation[1])\n", - " #print(clusters[arrayLocation[0]])\n", - " #clusters[arrayLocation[0], arrayLocation[1]]\n", - " \n", - " #newClusters1 = clusters[arrayLocation[0]]\n", - " #print(clusters[arrayLocation[0]])\n", - " pointsToAppend = np.vstack([clusters[arrayLocation[0]], pointToAppend])\n", - " \n", - " newClusters = []\n", - " \n", - " newClusters.append(pointsToAppend)\n", - "\n", - " #newClusters = np.append(clusters[arrayLocation[0]], [pointToAppend], axis=0)\n", - " #newClusters = np.array([[point_a, point_b]])\n", - " clusterCounter = 0\n", - " \n", - " for cluster in clusters:\n", - " if clusterCounter == arrayLocation[0]:\n", - " clusterCounter += 1\n", - " \n", - " else:\n", - " #newClusters = np.concatenate([newClusters, [cluster]]) #dimensions are not valid! -> was anderes einfallen lassen!! #letztes puzzelstück -> wie den bums richtig zusammenfügen???!!!\n", - " newClusters.append(cluster)\n", - " clusterCounter += 1\n", - " \n", - " \n", - " #print(\"UPDATED CLUSTER:\")\n", - " #print(newClusters)\n", - " print(\"-------\")\n", - " \n", - " clusters = newClusters\n", - "\n", - " #create new cluster\n", - " else:\n", - " #print(\"Definiere neues Cluster\")\n", - " #define cluster elements if ist an new cluster\n", - " #clusters = np.append(clusters,[[point_a, point_b]], axis=0)\n", - " clusters.append([point_a, point_b])\n", - " #print(clusters)\n", - " \n", - " #print(\"Aktuelle Cluster:\")\n", - " #print(clusters)\n", - " \n", - " print(\"DIGRAPH - Abstandsmatrix\")\n", - " #createDigraph(matrix, new_data, iteration)\n", - " jsonDict[\"DigraphIteration{}\".format(iteration)] = matrix.tolist() #createDigraph(matrix, new_data, iteration)\n", - "\n", - " \n", - " if distanceMethod == 'manhattan':\n", - " nearest_point = get_nearest_point(data, point_a, point_b, manhattan_distance)\n", - " \n", - " elif distanceMethod == 'euclidean':\n", - " nearest_point = get_nearest_point(data, point_a, point_b, euclidean_distance)\n", - "\n", - " elif distanceMethod == 'maximum':\n", - " nearest_point = get_nearest_point(data, point_a, point_b, maximum_distance)\n", - "\n", - " else:\n", - " break\n", - " \n", - " #nearest_point = get_nearest_point(data, point_a, point_b, euclidean_distance)\n", - " #delete the point from the dataset, that is not nearest\n", - " point_to_remove = nearest_point[1]\n", - " \n", - "\n", - " \n", - " #define new dataset\n", - " new_data = np.array([point for point in new_data if not np.array_equal(point, point_to_remove)])\n", - " #print(\"Neuer Hauptdatensatz\")\n", - " #print(jsonDict)\n", - "\n", - " print(jsonDict)\n", - " jsonDict[\"iterations\"] = iteration\n", - " with open(\"data.json\", \"w+\", encoding=\"utf8\") as f:\n", - " json.dump(jsonDict, f)\n", - "\n", - " return json.dumps(jsonDict)\n", - " \n", - "# Anzahl der Datenpunktansammlungen (Cluster)\n", - "#numClusters = int(sys.argv[1])\n", - "#pointsPerCluster = int(sys.argv[2])\n", - "#nodeRangeStart = int(sys.argv[3])\n", - "#nodeRangeEnd = int(sys.argv[4])\n", - "#distanceMethod = int(sys.argv[5])\n", - "#linkageMethod = int(sys.argv[6])\n", - "\n", - "numClusters = 2\n", - "pointsPerCluster = 3\n", - "nodeRangeStart = 0\n", - "nodeRangeEnd = 30\n", - "distanceMethod = 'euclidean'\n", - "linkageMethod = 'single'\n", - "#Hauptfunktion ausfuehren\n", - "clusterAnalysisMain(numClusters, pointsPerCluster, nodeRangeStart, nodeRangeEnd, distanceMethod, linkageMethod)\n", - "\n", - "\n", - "#TODO\n", - "#Eingabevalidierung!!!" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b619364a", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.13" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/bash.exe.stackdump b/bash.exe.stackdump new file mode 100644 index 0000000..346ee89 --- /dev/null +++ b/bash.exe.stackdump @@ -0,0 +1,29 @@ +Stack trace: +Frame Function Args +0007FFFF9F80 00021006118E (00021028DEE8, 000210272B3E, 000000000000, 0007FFFF8E80) msys-2.0.dll+0x2118E +0007FFFF9F80 0002100469BA (000000000000, 000000000000, 000000000000, 000000000004) msys-2.0.dll+0x69BA +0007FFFF9F80 0002100469F2 (00021028DF99, 0007FFFF9E38, 000000000000, 000000000000) msys-2.0.dll+0x69F2 +0007FFFF9F80 00021006A41E (000000000000, 000000000000, 000000000000, 000000000000) msys-2.0.dll+0x2A41E +0007FFFF9F80 00021006A545 (0007FFFF9F90, 000000000000, 000000000000, 000000000000) msys-2.0.dll+0x2A545 +0001004F94B7 00021006B9A5 (0007FFFF9F90, 000000000000, 000000000000, 000000000000) msys-2.0.dll+0x2B9A5 +End of stack trace +Loaded modules: +000100400000 bash.exe +7FFB27F60000 ntdll.dll +7FFAF1890000 aswhook.dll +7FFB267E0000 KERNEL32.DLL +7FFB251B0000 KERNELBASE.dll +7FFB26500000 USER32.dll +7FFB25D00000 win32u.dll +7FFB279A0000 GDI32.dll +7FFB255B0000 gdi32full.dll +7FFB256E0000 msvcp_win.dll +7FFB25BB0000 ucrtbase.dll +000210040000 msys-2.0.dll +7FFB273F0000 advapi32.dll +7FFB277B0000 msvcrt.dll +7FFB27E70000 sechost.dll +7FFB25DB0000 RPCRT4.dll +7FFB246F0000 CRYPTBASE.DLL +7FFB25910000 bcryptPrimitives.dll +7FFB27950000 IMM32.DLL diff --git a/data.json b/data.json deleted file mode 100644 index ccd25d5..0000000 --- a/data.json +++ /dev/null @@ -1 +0,0 @@ -{"Dendogram": "// Dendrogram\ndigraph {\n\tleaf_3 [label=0]\n}\n", "DigraphIteration0": [[0.0, 11.4, 8.6, 7.21, 17.2, 9.43], [11.4, 0.0, 4.0, 13.04, 20.25, 14.04], [8.6, 4.0, 0.0, 9.06, 16.55, 10.05], [7.21, 13.04, 9.06, 0.0, 10.0, 2.24], [17.2, 20.25, 16.55, 10.0, 0.0, 7.81], [9.43, 14.04, 10.05, 2.24, 7.81, 0.0]], "DigraphIteration1": [[0.0, 11.4, 8.6, 7.21, 17.2], [11.4, 0.0, 4.0, 13.04, 20.25], [8.6, 4.0, 0.0, 9.06, 16.55], [7.21, 13.04, 9.06, 0.0, 10.0], [17.2, 20.25, 16.55, 10.0, 0.0]], "DigraphIteration2": [[0.0, 8.6, 7.21, 17.2], [8.6, 0.0, 9.06, 16.55], [7.21, 9.06, 0.0, 10.0], [17.2, 16.55, 10.0, 0.0]], "DigraphIteration3": [[0.0, 9.06, 16.55], [9.06, 0.0, 10.0], [16.55, 10.0, 0.0]], "DigraphIteration4": [[0.0, 10.0], [10.0, 0.0]], "iterations": 5} \ No newline at end of file diff --git a/directed_graph.png b/directed_graph.png deleted file mode 100644 index d1e1468..0000000 Binary files a/directed_graph.png and /dev/null differ diff --git a/docker-compose.yml b/docker-compose.yml index 504e120..387167d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -11,7 +11,7 @@ services: - ./:/server ports: - ${ALADIN_PORT}:${ALADIN_PORT} - + reverse-proxy: build: context: services/nginx @@ -25,13 +25,13 @@ services: - ${REVERSE_PROXY_PORT}:${REVERSE_PROXY_PORT} - ${ALADIN_PORT}:${ALADIN_PORT} - 3000:3000 - + postgres_2: build: context: services/postgres dockerfile: postgres.Dockerfile container_name: postgres_2 - user: 999:999 + user: 999:999 environment: POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PW} @@ -40,7 +40,7 @@ services: - ${POSTGRES_PORT}:${POSTGRES_PORT} volumes: - postgres-data:/var/lib/postgresql/data - + mongodb: build: context: services/mongodb @@ -55,7 +55,7 @@ services: volumes: - "mongodb_data:/bitnami/mongodb" restart: unless-stopped - + # maxima: # build: # context: services/maxima @@ -63,7 +63,7 @@ services: # container_name: maxima # volumes: # - ./services/maxima/:/worker/ - + volumes: mongodb_data: - postgres-data: + postgres-data: \ No newline at end of file diff --git a/model_result.xlsx b/model_result.xlsx new file mode 100644 index 0000000..cdca310 Binary files /dev/null and b/model_result.xlsx differ diff --git a/optimized_feed.json b/optimized_feed.json new file mode 100644 index 0000000..705cf30 --- /dev/null +++ b/optimized_feed.json @@ -0,0 +1,9610 @@ +{ + "optimized_feed": 240.0, + "details": { + "c_ox_sat": 0.008008081, + "t_combined": [ + 0.0, + 0.100418410041841, + 0.200836820083682, + 0.301255230125523, + 0.401673640167364, + 0.502092050209205, + 0.602510460251046, + 0.702928870292887, + 0.803347280334728, + 0.9037656903765691, + 1.00418410041841, + 1.104602510460251, + 1.205020920502092, + 1.3054393305439331, + 1.405857740585774, + 1.506276150627615, + 1.606694560669456, + 1.707112970711297, + 1.8075313807531381, + 1.907949790794979, + 2.00836820083682, + 2.1087866108786613, + 2.209205020920502, + 2.309623430962343, + 2.410041841004184, + 2.510460251046025, + 2.6108786610878663, + 2.711297071129707, + 2.811715481171548, + 2.912133891213389, + 3.01255230125523, + 3.1129707112970713, + 3.213389121338912, + 3.313807531380753, + 3.414225941422594, + 3.514644351464435, + 3.6150627615062763, + 3.715481171548117, + 3.815899581589958, + 3.916317991631799, + 4.01673640167364, + 4.117154811715481, + 4.2175732217573225, + 4.317991631799163, + 4.418410041841004, + 4.518828451882845, + 4.619246861924686, + 4.7196652719665275, + 4.820083682008368, + 4.920502092050209, + 5.02092050209205, + 5.121338912133891, + 5.2217573221757325, + 5.322175732217573, + 5.422594142259414, + 5.523012552301255, + 5.623430962343096, + 5.7238493723849375, + 5.824267782426778, + 5.924686192468619, + 6.02510460251046, + 6.125523012552301, + 6.2259414225941425, + 6.326359832635983, + 6.426778242677824, + 6.527196652719665, + 6.627615062761506, + 6.7280334728033475, + 6.828451882845188, + 6.928870292887029, + 7.02928870292887, + 7.129707112970711, + 7.2301255230125525, + 7.330543933054393, + 7.430962343096234, + 7.531380753138075, + 7.631799163179916, + 7.7322175732217575, + 7.832635983263598, + 7.933054393305439, + 8.03347280334728, + 8.133891213389122, + 8.234309623430962, + 8.334728033472803, + 8.435146443514645, + 8.535564853556485, + 8.635983263598327, + 8.736401673640167, + 8.836820083682008, + 8.93723849372385, + 9.03765690376569, + 9.138075313807532, + 9.238493723849372, + 9.338912133891213, + 9.439330543933055, + 9.539748953974895, + 9.640167364016737, + 9.740585774058577, + 9.841004184100418, + 9.94142259414226, + 10.0418410041841, + 10.142259414225942, + 10.242677824267782, + 10.343096234309623, + 10.443514644351465, + 10.543933054393305, + 10.644351464435147, + 10.744769874476987, + 10.845188284518828, + 10.94560669456067, + 11.04602510460251, + 11.146443514644352, + 11.246861924686192, + 11.347280334728033, + 11.447698744769875, + 11.548117154811715, + 11.648535564853557, + 11.748953974895397, + 11.849372384937238, + 11.94979079497908, + 12.05020920502092, + 12.150627615062762, + 12.251046025104602, + 12.351464435146443, + 12.451882845188285, + 12.552301255230125, + 12.652719665271967, + 12.753138075313807, + 12.853556485355648, + 12.95397489539749, + 13.05439330543933, + 13.154811715481172, + 13.255230125523012, + 13.355648535564853, + 13.456066945606695, + 13.556485355648535, + 13.656903765690377, + 13.757322175732217, + 13.857740585774058, + 13.9581589958159, + 14.05857740585774, + 14.158995815899582, + 14.259414225941422, + 14.359832635983263, + 14.460251046025105, + 14.560669456066945, + 14.661087866108787, + 14.761506276150627, + 14.861924686192468, + 14.96234309623431, + 15.06276150627615, + 15.163179916317992, + 15.263598326359832, + 15.364016736401673, + 15.464435146443515, + 15.564853556485355, + 15.665271966527197, + 15.765690376569037, + 15.866108786610878, + 15.96652719665272, + 16.06694560669456, + 16.1673640167364, + 16.267782426778243, + 16.368200836820083, + 16.468619246861923, + 16.569037656903767, + 16.669456066945607, + 16.769874476987447, + 16.87029288702929, + 16.97071129707113, + 17.07112970711297, + 17.17154811715481, + 17.271966527196653, + 17.372384937238493, + 17.472803347280333, + 17.573221757322177, + 17.673640167364017, + 17.774058577405857, + 17.8744769874477, + 17.97489539748954, + 18.07531380753138, + 18.17573221757322, + 18.276150627615063, + 18.376569037656903, + 18.476987447698743, + 18.577405857740587, + 18.677824267782427, + 18.778242677824267, + 18.87866108786611, + 18.97907949790795, + 19.07949790794979, + 19.17991631799163, + 19.280334728033473, + 19.380753138075313, + 19.481171548117153, + 19.581589958158997, + 19.682008368200837, + 19.782426778242677, + 19.88284518828452, + 19.98326359832636, + 20.0836820083682, + 20.18410041841004, + 20.284518828451883, + 20.384937238493723, + 20.485355648535563, + 20.585774058577407, + 20.686192468619247, + 20.786610878661087, + 20.88702928870293, + 20.98744769874477, + 21.08786610878661, + 21.18828451882845, + 21.288702928870293, + 21.389121338912133, + 21.489539748953973, + 21.589958158995817, + 21.690376569037657, + 21.790794979079497, + 21.89121338912134, + 21.99163179916318, + 22.09205020920502, + 22.19246861924686, + 22.292887029288703, + 22.393305439330543, + 22.493723849372383, + 22.594142259414227, + 22.694560669456067, + 22.794979079497907, + 22.89539748953975, + 22.99581589958159, + 23.09623430962343, + 23.19665271966527, + 23.297071129707113, + 23.397489539748953, + 23.497907949790793, + 23.598326359832637, + 23.698744769874477, + 23.799163179916317, + 23.89958158995816, + 24.0, + 24.0, + 24.10041841004184, + 24.200836820083683, + 24.301255230125523, + 24.401673640167363, + 24.502092050209207, + 24.602510460251047, + 24.702928870292887, + 24.803347280334727, + 24.90376569037657, + 25.00418410041841, + 25.10460251046025, + 25.205020920502093, + 25.305439330543933, + 25.405857740585773, + 25.506276150627613, + 25.606694560669457, + 25.707112970711297, + 25.807531380753137, + 25.90794979079498, + 26.00836820083682, + 26.10878661087866, + 26.209205020920503, + 26.309623430962343, + 26.410041841004183, + 26.510460251046027, + 26.610878661087867, + 26.711297071129707, + 26.811715481171547, + 26.91213389121339, + 27.01255230125523, + 27.11297071129707, + 27.213389121338913, + 27.313807531380753, + 27.414225941422593, + 27.514644351464433, + 27.615062761506277, + 27.715481171548117, + 27.815899581589957, + 27.9163179916318, + 28.01673640167364, + 28.11715481171548, + 28.217573221757323, + 28.317991631799163, + 28.418410041841003, + 28.518828451882847, + 28.619246861924687, + 28.719665271966527, + 28.820083682008367, + 28.92050209205021, + 29.02092050209205, + 29.12133891213389, + 29.221757322175733, + 29.322175732217573, + 29.422594142259413, + 29.523012552301253, + 29.623430962343097, + 29.723849372384937, + 29.82426778242678, + 29.92468619246862, + 30.02510460251046, + 30.1255230125523, + 30.225941422594143, + 30.326359832635983, + 30.426778242677823, + 30.527196652719667, + 30.627615062761507, + 30.728033472803347, + 30.828451882845187, + 30.92887029288703, + 31.02928870292887, + 31.12970711297071, + 31.230125523012553, + 31.330543933054393, + 31.430962343096233, + 31.531380753138073, + 31.631799163179917, + 31.732217573221757, + 31.8326359832636, + 31.93305439330544, + 32.03347280334728, + 32.13389121338912, + 32.23430962343096, + 32.3347280334728, + 32.43514644351465, + 32.53556485355649, + 32.63598326359833, + 32.73640167364017, + 32.83682008368201, + 32.937238493723854, + 33.03765690376569, + 33.13807531380753, + 33.23849372384937, + 33.33891213389121, + 33.43933054393305, + 33.53974895397489, + 33.64016736401673, + 33.74058577405857, + 33.84100418410042, + 33.94142259414226, + 34.0418410041841, + 34.14225941422594, + 34.24267782426778, + 34.34309623430963, + 34.44351464435147, + 34.54393305439331, + 34.64435146443515, + 34.74476987447699, + 34.84518828451883, + 34.94560669456067, + 35.046025104602506, + 35.14644351464435, + 35.24686192468619, + 35.34728033472803, + 35.44769874476987, + 35.54811715481171, + 35.64853556485356, + 35.7489539748954, + 35.84937238493724, + 35.94979079497908, + 36.05020920502092, + 36.15062761506276, + 36.2510460251046, + 36.35146443514644, + 36.45188284518829, + 36.55230125523013, + 36.65271966527197, + 36.75313807531381, + 36.85355648535565, + 36.953974895397494, + 37.05439330543933, + 37.15481171548117, + 37.25523012552301, + 37.35564853556485, + 37.45606694560669, + 37.55648535564853, + 37.65690376569037, + 37.75732217573221, + 37.85774058577406, + 37.9581589958159, + 38.05857740585774, + 38.15899581589958, + 38.25941422594142, + 38.35983263598327, + 38.46025104602511, + 38.56066945606695, + 38.66108786610879, + 38.76150627615063, + 38.86192468619247, + 38.96234309623431, + 39.062761506276146, + 39.16317991631799, + 39.26359832635983, + 39.36401673640167, + 39.46443514644351, + 39.56485355648535, + 39.6652719665272, + 39.76569037656904, + 39.86610878661088, + 39.96652719665272, + 40.06694560669456, + 40.1673640167364, + 40.26778242677824, + 40.36820083682008, + 40.46861924686192, + 40.56903765690377, + 40.66945606694561, + 40.76987447698745, + 40.870292887029294, + 40.970711297071134, + 41.07112970711297, + 41.17154811715481, + 41.27196652719665, + 41.37238493723849, + 41.47280334728033, + 41.57322175732217, + 41.67364016736401, + 41.77405857740585, + 41.8744769874477, + 41.97489539748954, + 42.07531380753138, + 42.17573221757322, + 42.27615062761507, + 42.37656903765691, + 42.47698744769875, + 42.57740585774059, + 42.67782426778243, + 42.77824267782427, + 42.87866108786611, + 42.97907949790795, + 43.079497907949786, + 43.179916317991626, + 43.28033472803347, + 43.38075313807531, + 43.48117154811715, + 43.581589958159, + 43.68200836820084, + 43.78242677824268, + 43.88284518828452, + 43.98326359832636, + 44.0836820083682, + 44.18410041841004, + 44.28451882845188, + 44.38493723849372, + 44.48535564853556, + 44.58577405857741, + 44.68619246861925, + 44.78661087866109, + 44.887029288702934, + 44.987447698744774, + 45.08786610878661, + 45.18828451882845, + 45.28870292887029, + 45.38912133891213, + 45.48953974895397, + 45.58995815899581, + 45.69037656903765, + 45.79079497907949, + 45.89121338912134, + 45.99163179916318, + 46.09205020920502, + 46.19246861924686, + 46.29288702928871, + 46.39330543933055, + 46.49372384937239, + 46.59414225941423, + 46.69456066945607, + 46.79497907949791, + 46.89539748953975, + 46.99581589958159, + 47.096234309623426, + 47.196652719665266, + 47.29707112970711, + 47.39748953974895, + 47.49790794979079, + 47.59832635983264, + 47.69874476987448, + 47.79916317991632, + 47.89958158995816, + 48.0, + 48.0, + 48.10041841004184, + 48.20083682008368, + 48.30125523012552, + 48.40167364016737, + 48.50209205020921, + 48.60251046025105, + 48.70292887029289, + 48.80334728033473, + 48.90376569037657, + 49.00418410041841, + 49.10460251046025, + 49.20502092050209, + 49.30543933054393, + 49.40585774058577, + 49.50627615062761, + 49.60669456066945, + 49.7071129707113, + 49.80753138075314, + 49.90794979079498, + 50.00836820083682, + 50.10878661087866, + 50.2092050209205, + 50.30962343096234, + 50.41004184100419, + 50.51046025104603, + 50.61087866108787, + 50.71129707112971, + 50.81171548117155, + 50.91213389121339, + 51.012552301255226, + 51.11297071129707, + 51.21338912133891, + 51.31380753138075, + 51.41422594142259, + 51.51464435146443, + 51.61506276150627, + 51.71548117154812, + 51.81589958158996, + 51.9163179916318, + 52.01673640167364, + 52.11715481171548, + 52.21757322175732, + 52.31799163179916, + 52.41841004184101, + 52.51882845188285, + 52.61924686192469, + 52.71966527196653, + 52.82008368200837, + 52.92050209205021, + 53.02092050209205, + 53.12133891213389, + 53.22175732217573, + 53.32217573221757, + 53.42259414225941, + 53.52301255230125, + 53.62343096234309, + 53.72384937238494, + 53.82426778242678, + 53.92468619246862, + 54.02510460251046, + 54.1255230125523, + 54.22594142259414, + 54.32635983263599, + 54.42677824267783, + 54.52719665271967, + 54.62761506276151, + 54.72803347280335, + 54.82845188284519, + 54.92887029288703, + 55.029288702928866, + 55.12970711297071, + 55.23012552301255, + 55.33054393305439, + 55.43096234309623, + 55.53138075313807, + 55.63179916317991, + 55.73221757322176, + 55.8326359832636, + 55.93305439330544, + 56.03347280334728, + 56.13389121338912, + 56.23430962343096, + 56.3347280334728, + 56.43514644351465, + 56.53556485355649, + 56.63598326359833, + 56.73640167364017, + 56.83682008368201, + 56.937238493723854, + 57.03765690376569, + 57.13807531380753, + 57.23849372384937, + 57.33891213389121, + 57.43933054393305, + 57.53974895397489, + 57.64016736401673, + 57.74058577405857, + 57.84100418410042, + 57.94142259414226, + 58.0418410041841, + 58.14225941422594, + 58.24267782426778, + 58.34309623430963, + 58.44351464435147, + 58.54393305439331, + 58.64435146443515, + 58.74476987447699, + 58.84518828451883, + 58.94560669456067, + 59.046025104602506, + 59.14644351464435, + 59.24686192468619, + 59.34728033472803, + 59.44769874476987, + 59.54811715481171, + 59.64853556485356, + 59.7489539748954, + 59.84937238493724, + 59.94979079497908, + 60.05020920502092, + 60.15062761506276, + 60.2510460251046, + 60.35146443514644, + 60.45188284518829, + 60.55230125523013, + 60.65271966527197, + 60.75313807531381, + 60.85355648535565, + 60.953974895397494, + 61.05439330543933, + 61.15481171548117, + 61.25523012552301, + 61.35564853556485, + 61.45606694560669, + 61.55648535564853, + 61.65690376569037, + 61.75732217573221, + 61.85774058577406, + 61.9581589958159, + 62.05857740585774, + 62.15899581589958, + 62.25941422594142, + 62.35983263598327, + 62.46025104602511, + 62.56066945606695, + 62.66108786610879, + 62.76150627615063, + 62.86192468619247, + 62.96234309623431, + 63.062761506276146, + 63.16317991631799, + 63.26359832635983, + 63.36401673640167, + 63.46443514644351, + 63.56485355648535, + 63.6652719665272, + 63.76569037656904, + 63.86610878661088, + 63.96652719665272, + 64.06694560669456, + 64.1673640167364, + 64.26778242677824, + 64.36820083682008, + 64.46861924686192, + 64.56903765690376, + 64.6694560669456, + 64.76987447698744, + 64.8702928870293, + 64.97071129707113, + 65.07112970711297, + 65.17154811715481, + 65.27196652719665, + 65.3723849372385, + 65.47280334728033, + 65.57322175732217, + 65.67364016736401, + 65.77405857740585, + 65.87447698744771, + 65.97489539748955, + 66.07531380753139, + 66.17573221757323, + 66.27615062761507, + 66.3765690376569, + 66.47698744769875, + 66.57740585774059, + 66.67782426778243, + 66.77824267782427, + 66.8786610878661, + 66.97907949790795, + 67.07949790794979, + 67.17991631799163, + 67.28033472803347, + 67.3807531380753, + 67.48117154811715, + 67.581589958159, + 67.68200836820084, + 67.78242677824268, + 67.88284518828452, + 67.98326359832636, + 68.0836820083682, + 68.18410041841004, + 68.28451882845188, + 68.38493723849372, + 68.48535564853556, + 68.58577405857741, + 68.68619246861925, + 68.7866108786611, + 68.88702928870293, + 68.98744769874477, + 69.08786610878661, + 69.18828451882845, + 69.2887029288703, + 69.38912133891213, + 69.48953974895397, + 69.58995815899581, + 69.69037656903765, + 69.7907949790795, + 69.89121338912133, + 69.99163179916317, + 70.09205020920501, + 70.19246861924685, + 70.2928870292887, + 70.39330543933055, + 70.49372384937239, + 70.59414225941423, + 70.69456066945607, + 70.7949790794979, + 70.89539748953975, + 70.99581589958159, + 71.09623430962343, + 71.19665271966527, + 71.29707112970712, + 71.39748953974896, + 71.4979079497908, + 71.59832635983264, + 71.69874476987448, + 71.79916317991632, + 71.89958158995816, + 72.0, + 72.0, + 72.10041841004184, + 72.20083682008368, + 72.30125523012552, + 72.40167364016736, + 72.5020920502092, + 72.60251046025104, + 72.7029288702929, + 72.80334728033473, + 72.90376569037657, + 73.00418410041841, + 73.10460251046025, + 73.2050209205021, + 73.30543933054393, + 73.40585774058577, + 73.50627615062761, + 73.60669456066945, + 73.7071129707113, + 73.80753138075313, + 73.90794979079497, + 74.00836820083683, + 74.10878661087867, + 74.2092050209205, + 74.30962343096235, + 74.41004184100419, + 74.51046025104603, + 74.61087866108787, + 74.7112970711297, + 74.81171548117155, + 74.91213389121339, + 75.01255230125523, + 75.11297071129707, + 75.2133891213389, + 75.31380753138075, + 75.4142259414226, + 75.51464435146444, + 75.61506276150628, + 75.71548117154812, + 75.81589958158996, + 75.9163179916318, + 76.01673640167364, + 76.11715481171548, + 76.21757322175732, + 76.31799163179916, + 76.418410041841, + 76.51882845188284, + 76.61924686192468, + 76.71966527196653, + 76.82008368200837, + 76.92050209205021, + 77.02092050209205, + 77.1213389121339, + 77.22175732217573, + 77.32217573221757, + 77.42259414225941, + 77.52301255230125, + 77.6234309623431, + 77.72384937238493, + 77.82426778242677, + 77.92468619246861, + 78.02510460251045, + 78.1255230125523, + 78.22594142259415, + 78.32635983263599, + 78.42677824267783, + 78.52719665271967, + 78.6276150627615, + 78.72803347280335, + 78.82845188284519, + 78.92887029288703, + 79.02928870292887, + 79.1297071129707, + 79.23012552301255, + 79.3305439330544, + 79.43096234309624, + 79.53138075313808, + 79.63179916317992, + 79.73221757322176, + 79.8326359832636, + 79.93305439330544, + 80.03347280334728, + 80.13389121338912, + 80.23430962343096, + 80.3347280334728, + 80.43514644351464, + 80.53556485355648, + 80.63598326359832, + 80.73640167364016, + 80.83682008368201, + 80.93723849372385, + 81.0376569037657, + 81.13807531380753, + 81.23849372384937, + 81.33891213389121, + 81.43933054393305, + 81.5397489539749, + 81.64016736401673, + 81.74058577405857, + 81.84100418410041, + 81.94142259414227, + 82.0418410041841, + 82.14225941422595, + 82.24267782426779, + 82.34309623430963, + 82.44351464435147, + 82.5439330543933, + 82.64435146443515, + 82.74476987447699, + 82.84518828451883, + 82.94560669456067, + 83.0460251046025, + 83.14644351464435, + 83.24686192468619, + 83.34728033472803, + 83.44769874476988, + 83.54811715481172, + 83.64853556485356, + 83.7489539748954, + 83.84937238493724, + 83.94979079497908, + 84.05020920502092, + 84.15062761506276, + 84.2510460251046, + 84.35146443514644, + 84.45188284518828, + 84.55230125523012, + 84.65271966527197, + 84.75313807531381, + 84.85355648535565, + 84.9539748953975, + 85.05439330543933, + 85.15481171548117, + 85.25523012552301, + 85.35564853556485, + 85.4560669456067, + 85.55648535564853, + 85.65690376569037, + 85.75732217573221, + 85.85774058577405, + 85.9581589958159, + 86.05857740585773, + 86.15899581589959, + 86.25941422594143, + 86.35983263598327, + 86.4602510460251, + 86.56066945606695, + 86.66108786610879, + 86.76150627615063, + 86.86192468619247, + 86.9623430962343, + 87.06276150627615, + 87.16317991631799, + 87.26359832635983, + 87.36401673640168, + 87.46443514644352, + 87.56485355648536, + 87.6652719665272, + 87.76569037656904, + 87.86610878661088, + 87.96652719665272, + 88.06694560669456, + 88.1673640167364, + 88.26778242677824, + 88.36820083682008, + 88.46861924686192, + 88.56903765690376, + 88.6694560669456, + 88.76987447698744, + 88.8702928870293, + 88.97071129707113, + 89.07112970711297, + 89.17154811715481, + 89.27196652719665, + 89.3723849372385, + 89.47280334728033, + 89.57322175732217, + 89.67364016736401, + 89.77405857740585, + 89.87447698744771, + 89.97489539748955, + 90.07531380753139, + 90.17573221757323, + 90.27615062761507, + 90.3765690376569, + 90.47698744769875, + 90.57740585774059, + 90.67782426778243, + 90.77824267782427, + 90.8786610878661, + 90.97907949790795, + 91.07949790794979, + 91.17991631799163, + 91.28033472803347, + 91.3807531380753, + 91.48117154811715, + 91.581589958159, + 91.68200836820084, + 91.78242677824268, + 91.88284518828452, + 91.98326359832636, + 92.0836820083682, + 92.18410041841004, + 92.28451882845188, + 92.38493723849372, + 92.48535564853556, + 92.58577405857741, + 92.68619246861925, + 92.7866108786611, + 92.88702928870293, + 92.98744769874477, + 93.08786610878661, + 93.18828451882845, + 93.2887029288703, + 93.38912133891213, + 93.48953974895397, + 93.58995815899581, + 93.69037656903765, + 93.7907949790795, + 93.89121338912133, + 93.99163179916317, + 94.09205020920501, + 94.19246861924685, + 94.2928870292887, + 94.39330543933055, + 94.49372384937239, + 94.59414225941423, + 94.69456066945607, + 94.7949790794979, + 94.89539748953975, + 94.99581589958159, + 95.09623430962343, + 95.19665271966527, + 95.29707112970712, + 95.39748953974896, + 95.4979079497908, + 95.59832635983264, + 95.69874476987448, + 95.79916317991632, + 95.89958158995816, + 96.0 + ], + "y_combined": [ + [ + 0.05, + 0.0, + 5.0, + 0.0, + 0.008008081, + 0.2095, + 0.0004147 + ], + [ + 0.051040628404175635, + 0.19882294919866952, + 4.999869921449477, + 8.678124765026317e-05, + 0.007972620645001786, + 0.20945138548397318, + 0.0004633145160267991 + ], + [ + 0.05280606737502854, + 0.3961329158565307, + 4.999649241578121, + 0.00034430324596565655, + 0.007963718401015982, + 0.2094331969149166, + 0.0004815030850833999 + ], + [ + 0.05485082938161062, + 0.5927551603291775, + 4.999393646327298, + 0.0007722825485155005, + 0.007957209033169405, + 0.20942430733782608, + 0.00049039266217393 + ], + [ + 0.057086106731576915, + 0.788852258399225, + 4.999114236658552, + 0.0013726020622124874, + 0.007972096387825096, + 0.20941781833046821, + 0.0004968816695318027 + ], + [ + 0.059481617100806246, + 0.9844772205951494, + 4.998814797862398, + 0.0021483296365824092, + 0.007978012464547154, + 0.20941218729593888, + 0.000502512704061142 + ], + [ + 0.06202557354785094, + 1.1796479126077204, + 4.998496803306517, + 0.0031034272502034692, + 0.007973759647257411, + 0.20940688762848192, + 0.0005078123715180936 + ], + [ + 0.06471398599633232, + 1.3743669983961413, + 4.998160751750457, + 0.00424261997420281, + 0.007977838412885829, + 0.20940168718322416, + 0.0005130128167758334 + ], + [ + 0.06754681428916352, + 1.56862913479816, + 4.997806648213853, + 0.005571325335808516, + 0.007971777891758982, + 0.20939646281194313, + 0.000518237188056862 + ], + [ + 0.07052628368303067, + 1.7624241321583767, + 4.99743421453962, + 0.007095612144705226, + 0.00795523473407755, + 0.20939114197195485, + 0.0005235580280451638 + ], + [ + 0.07365607184757422, + 1.9557384841560055, + 4.997042991019053, + 0.008822176222344337, + 0.007948421571082333, + 0.20938567817944143, + 0.0005290218205585675 + ], + [ + 0.07694089858232497, + 2.1485561409759906, + 4.996632387677208, + 0.010758327014280936, + 0.007934055277651486, + 0.20938003581023718, + 0.0005346641897628479 + ], + [ + 0.08038625928059974, + 2.340859008521681, + 4.9962017175899245, + 0.012911981962874302, + 0.007935972158542984, + 0.2093741897824709, + 0.000540510217529122 + ], + [ + 0.0839983121611002, + 2.5326271572095447, + 4.995750210979862, + 0.015291666542951181, + 0.007942722160443862, + 0.20936811667607205, + 0.0005465833239279787 + ], + [ + 0.08778377693085117, + 2.7238390048474934, + 4.995277027883644, + 0.01790651904470076, + 0.007958598682863404, + 0.20936179706747302, + 0.0005529029325270068 + ], + [ + 0.09174990591210044, + 2.9144713617231632, + 4.994781261760988, + 0.020766298954102796, + 0.007950567363944139, + 0.20935520971368368, + 0.000559490286316331 + ], + [ + 0.09590441578840309, + 3.1044995451803366, + 4.99426194802645, + 0.02388139877264377, + 0.00794644056342704, + 0.20934833947044304, + 0.0005663605295569687 + ], + [ + 0.10025551558750595, + 3.2938973133311604, + 4.993718060551562, + 0.02726285848494088, + 0.007940550220223204, + 0.2093411686514912, + 0.0005735313485088222 + ], + [ + 0.10481188394207518, + 3.4826368899812365, + 4.993148514507242, + 0.030922382743418825, + 0.007932750034439854, + 0.20933368017855505, + 0.0005810198214449604 + ], + [ + 0.10958267336521221, + 3.67068893723668, + 4.992552165829349, + 0.03487236034362492, + 0.007925109925957678, + 0.2093258570594698, + 0.000588842940530203 + ], + [ + 0.11457751854094775, + 3.8580225184554076, + 4.991927810182383, + 0.039125885920180535, + 0.00792052604621822, + 0.20931768212208085, + 0.0005970178779191311 + ], + [ + 0.1198065486765552, + 4.044605051572016, + 4.991274181415431, + 0.043696783747240384, + 0.007920863609534826, + 0.20930913768867798, + 0.0006055623113220228 + ], + [ + 0.12528041290302092, + 4.230402236246882, + 4.990589948387123, + 0.048599633551489954, + 0.007911169063009274, + 0.20930020339669936, + 0.000614496603300628 + ], + [ + 0.13101026354196887, + 4.415378056967104, + 4.989873717057255, + 0.05384979839837866, + 0.007908848452460225, + 0.20929086241695402, + 0.0006238375830459897 + ], + [ + 0.13700780072824503, + 4.5994946707302145, + 4.98912402490897, + 0.05946345437399533, + 0.007930371595759877, + 0.20928109708612505, + 0.0006336029138749395 + ], + [ + 0.14328532985717343, + 4.782712269162978, + 4.988339333767855, + 0.06545762208245313, + 0.007926610078187473, + 0.20927088029901803, + 0.0006438197009819896 + ], + [ + 0.14985570335639015, + 4.964989152411381, + 4.987518037080453, + 0.07185020058584991, + 0.007918129453138613, + 0.20926019318000708, + 0.0006545068199929447 + ], + [ + 0.15673239895298194, + 5.146281548858398, + 4.986658450130879, + 0.078660002747344, + 0.007905163956437254, + 0.2092490133262133, + 0.00066568667378672 + ], + [ + 0.1639295322715295, + 5.326543554286528, + 4.98575880846606, + 0.08590679273891855, + 0.007889658456980796, + 0.20923731764725187, + 0.0006773823527481298 + ], + [ + 0.17146188508913449, + 5.505727040106219, + 4.98481726436386, + 0.09361132548882575, + 0.007874452779343299, + 0.20922508224652403, + 0.0006896177534759815 + ], + [ + 0.17934493407807559, + 5.6837815586801534, + 4.983831883240242, + 0.10179538813016424, + 0.007863702908449571, + 0.20921228248094045, + 0.0007024175190595557 + ], + [ + 0.1875948681101235, + 5.860654267686679, + 4.982800641486236, + 0.11048184359241714, + 0.007878980452450468, + 0.20919889603911024, + 0.0007158039608897963 + ], + [ + 0.196228697812396, + 6.036289682072581, + 4.981721412773453, + 0.11969467576747099, + 0.00787197820748918, + 0.20918488615520592, + 0.0007298138447940757 + ], + [ + 0.2052641584169749, + 6.210629805794939, + 4.9805919801978815, + 0.12945903767587075, + 0.00786905454235717, + 0.20917022896717297, + 0.000744471032827036 + ], + [ + 0.21471984987602966, + 6.383613822891266, + 4.979410018765499, + 0.1398013009242366, + 0.007864547311007192, + 0.2091548928986951, + 0.0007598071013049009 + ], + [ + 0.22461523492991736, + 6.55517804880152, + 4.978173095633763, + 0.1507491079608351, + 0.007856686862700784, + 0.20913884587135445, + 0.0007758541286455464 + ], + [ + 0.23497068120368964, + 6.7252557981631504, + 4.976878664849542, + 0.16233142632405043, + 0.007846026443286627, + 0.2091220548203171, + 0.0007926451796829435 + ], + [ + 0.24580750446332647, + 6.893777248112192, + 4.975524061942087, + 0.1745786052371409, + 0.00783373717433924, + 0.20910448533773254, + 0.0008102146622674621 + ], + [ + 0.2571480112437689, + 7.060669300376501, + 4.974106498594531, + 0.187522434574212, + 0.007822004588638895, + 0.20908610175641462, + 0.000828598243585396 + ], + [ + 0.26901554394904276, + 7.225855436388122, + 4.9726230570063725, + 0.20119620622910048, + 0.007814042213782846, + 0.2090668671486538, + 0.0008478328513462157 + ], + [ + 0.28143455435472353, + 7.389255517400858, + 4.971070680705663, + 0.2156347778821181, + 0.007797629932223099, + 0.20904673831899837, + 0.0008679616810016289 + ], + [ + 0.2944305868520037, + 7.550785748987095, + 4.969446176643502, + 0.23087463953274792, + 0.007785881098361408, + 0.20902567802300373, + 0.0008890219769962664 + ], + [ + 0.3080303549639094, + 7.710358470589343, + 4.967746205629513, + 0.2469539822513947, + 0.0078077492682495, + 0.20900365188444062, + 0.000911048115559392 + ], + [ + 0.3222619429757948, + 7.867881711414879, + 4.965967257128028, + 0.26391276889493853, + 0.007802243123755577, + 0.20898059586769097, + 0.0009341041323090222 + ], + [ + 0.33715461674630953, + 8.023259465549133, + 4.9641056729067135, + 0.28179280934341217, + 0.0077913237090147846, + 0.20895646904550105, + 0.0009582309544989504 + ], + [ + 0.352739031132671, + 8.176391231791776, + 4.962157621108418, + 0.30063783654304127, + 0.0077751902631263406, + 0.2089312217093377, + 0.0009834782906622938 + ], + [ + 0.36904725988187315, + 8.327171878890999, + 4.960119092514769, + 0.32049358591786886, + 0.007754887056311374, + 0.20890480217553042, + 0.0010098978244695838 + ], + [ + 0.3861128604459965, + 8.475491443537791, + 4.9579858924442535, + 0.34140787734712263, + 0.007732468741869531, + 0.20887715685522915, + 0.0010375431447708743 + ], + [ + 0.4039709409025933, + 8.621234921819756, + 4.95575363238718, + 0.3634306997847723, + 0.007711304177686812, + 0.20884823038075984, + 0.0010664696192401492 + ], + [ + 0.4226582305225918, + 8.764282051299213, + 4.953417721184681, + 0.38661429850011186, + 0.0076960383890355, + 0.2088179656342974, + 0.0010967343657026238 + ], + [ + 0.44221312870867185, + 8.904507130287788, + 4.95097335891142, + 0.41101326517655024, + 0.007705000532265088, + 0.2087863096470114, + 0.001128390352988618 + ], + [ + 0.4626759602107214, + 9.04177845395341, + 4.9484155049736644, + 0.4366846291834067, + 0.007689424870920929, + 0.20875317491512907, + 0.0011615250848709539 + ], + [ + 0.4840887319831608, + 9.175958668370276, + 4.9457389085021095, + 0.4636879537901513, + 0.007677175266041835, + 0.2087185068708863, + 0.0011961931291137185 + ], + [ + 0.5064954829427275, + 9.306904026827581, + 4.942938064632164, + 0.4920854321580702, + 0.007662518099113893, + 0.20868223138529413, + 0.0012324686147058693 + ], + [ + 0.5299422708090096, + 9.434464314309952, + 4.94000721614888, + 0.521941987229228, + 0.00764412691817795, + 0.2086442734882175, + 0.0012704265117824808 + ], + [ + 0.5544772722456915, + 9.558482560928438, + 4.936940340969294, + 0.5533253728487176, + 0.007622900980741826, + 0.20860455596125796, + 0.0013101440387420476 + ], + [ + 0.5801508835140159, + 9.678794752528157, + 4.933731139560754, + 0.5863062767617103, + 0.007600474600277775, + 0.2085629986027413, + 0.0013517013972587143 + ], + [ + 0.6070158196547155, + 9.795229542503765, + 4.930373022543167, + 0.6209584251277487, + 0.00757956362146915, + 0.20851951845781178, + 0.0013951815421882074 + ], + [ + 0.635127268792811, + 9.907607860503049, + 4.926859091400905, + 0.6573586880675265, + 0.007551416361859206, + 0.2084740205666584, + 0.0014406794333415994 + ], + [ + 0.6645428814001242, + 10.01574282550826, + 4.92318213982499, + 0.6955871864657859, + 0.00752506314800234, + 0.20842641952470872, + 0.0014882804752912708 + ], + [ + 0.6953228778292331, + 10.119439440162939, + 4.919334640271352, + 0.7357273985075494, + 0.007536253252179763, + 0.20837664531410943, + 0.0015380546858905716 + ], + [ + 0.7275306039457596, + 10.218493457735612, + 4.915308674506786, + 0.7778662637657308, + 0.007520291139053509, + 0.20832454877488754, + 0.0015901512251124612 + ], + [ + 0.7612320107534659, + 10.312692237262247, + 4.9110959986558225, + 0.8220942917159152, + 0.007498325159649662, + 0.2082700392098869, + 0.001644660790113114 + ], + [ + 0.7964961509401647, + 10.401813722382176, + 4.906687981132485, + 0.8685056633709682, + 0.007470513808783505, + 0.20821300568429205, + 0.0017016943157079916 + ], + [ + 0.8333952412715107, + 10.48562622509764, + 4.902075594841067, + 0.917198331977435, + 0.0074373470238338745, + 0.20815333254143528, + 0.0017613674585647485 + ], + [ + 0.8720048009492071, + 10.563888073045602, + 4.897249399881355, + 0.9682741195248284, + 0.007400469454523915, + 0.20809090015964102, + 0.0018237998403589871 + ], + [ + 0.9124037967156625, + 10.636347249624341, + 4.892199525410548, + 1.0218388079067038, + 0.00736288934182562, + 0.2080255852654568, + 0.0018891147345431929 + ], + [ + 0.9546747949132598, + 10.702741028149036, + 4.886915650635848, + 1.0780022231738438, + 0.007328962523598866, + 0.20795726112779328, + 0.0019574388722067336 + ], + [ + 0.9989040467758769, + 10.762795737660397, + 4.881386994153021, + 1.1368783117783572, + 0.0073185940558933, + 0.20788581460931635, + 0.002028885390683671 + ], + [ + 1.0451821017598477, + 10.816225565316572, + 4.875602237280026, + 1.198585202383695, + 0.0072859122377670164, + 0.20781104917025256, + 0.0021036508297474464 + ], + [ + 1.0936032142766376, + 10.862733600374876, + 4.8695495982154275, + 1.2632452605261302, + 0.007255515881276492, + 0.2077328443507037, + 0.002181855649296328 + ], + [ + 1.1442661307057878, + 10.902010344758287, + 4.863216733661782, + 1.3309851206168652, + 0.007221907925339269, + 0.20765103591326564, + 0.002263664086734359 + ], + [ + 1.1972740448187082, + 10.933733779357343, + 4.856590744397667, + 1.4019357021886771, + 0.0071835863311243055, + 0.20756545822869, + 0.0023492417713100156 + ], + [ + 1.252734807759387, + 10.957568984819716, + 4.849658149030083, + 1.4762322002531725, + 0.007141326344722855, + 0.20747594148360737, + 0.002438758516392658 + ], + [ + 1.3107611389216312, + 10.97316778922826, + 4.842404857634804, + 1.55401404710934, + 0.0070967244796454765, + 0.20738231006329258, + 0.002532389936707418 + ], + [ + 1.3714708295539846, + 10.98016846363844, + 4.8348161463057595, + 1.6354248397599656, + 0.007052564282358116, + 0.20728438340985073, + 0.002630316590149287 + ], + [ + 1.434987081796503, + 10.978195208228318, + 4.826876614775444, + 1.7206122259157717, + 0.00700069380890143, + 0.20718195291264282, + 0.0027327470873571608 + ], + [ + 1.5014384298393275, + 10.966858459973409, + 4.81857019627009, + 1.8097277423232072, + 0.0069500926901372535, + 0.20707483598189155, + 0.002839864018108473 + ], + [ + 1.5709589697740736, + 10.945754688251977, + 4.8098801287782464, + 1.9029265935084223, + 0.006932923094009511, + 0.2069628872775883, + 0.002951812722411707 + ], + [ + 1.6436896566923063, + 10.914464288238259, + 4.800788792913466, + 2.000367356349836, + 0.006888231908789994, + 0.20684576876903177, + 0.003068931230968237 + ], + [ + 1.7197769515880663, + 10.872554450975475, + 4.791277881051497, + 2.102211615741191, + 0.006836100779460332, + 0.20672329060144198, + 0.0031914093985580174 + ], + [ + 1.7993739865542093, + 10.819577479932828, + 4.781328251680728, + 2.208623490263551, + 0.006776623725271566, + 0.20659521482558982, + 0.003319485174410167 + ], + [ + 1.8826406293923603, + 10.755071257030751, + 4.77091992132596, + 2.31976904651199, + 0.006710730605240578, + 0.2064612960975485, + 0.0034534039024514897 + ], + [ + 1.9697437369235764, + 10.678559497826377, + 4.760032032884559, + 2.435815574816313, + 0.00664071919669885, + 0.20632128382268425, + 0.0035934161773157683 + ], + [ + 2.0608574095743943, + 10.589552168783873, + 4.748642823803207, + 2.5569307005150597, + 0.00657054595423575, + 0.2061749241876842, + 0.0037397758123157757 + ], + [ + 2.156163249754314, + 10.487546093590836, + 4.736729593780717, + 2.683281299162293, + 0.0065058563390757345, + 0.20602196210067752, + 0.0038927378993224887 + ], + [ + 2.2558505724465756, + 10.372025880904236, + 4.724268678444185, + 2.81503217879876, + 0.006458322590265473, + 0.20586215810117722, + 0.004052541898822778 + ], + [ + 2.3601176476028964, + 10.242463228877998, + 4.7112352940496445, + 2.952344474693268, + 0.006384924541301793, + 0.20569507498148384, + 0.00421962501851617 + ], + [ + 2.4691699517232846, + 10.098322090207335, + 4.697603756034595, + 3.0953737221135635, + 0.006311231935977406, + 0.20552049591767885, + 0.0043942040823211565 + ], + [ + 2.5832221386823693, + 9.939057369306674, + 4.683347232664709, + 3.2442675094699753, + 0.0062318260386148615, + 0.20533808647737653, + 0.004576613522623493 + ], + [ + 2.7024975839870318, + 9.764118590594538, + 4.668437802001626, + 3.3991626539979003, + 0.006146492906781266, + 0.2051475239506708, + 0.004767176049329213 + ], + [ + 2.827228660604856, + 9.572952806977232, + 4.652846417424398, + 3.5601817824806967, + 0.0060573657122417295, + 0.20494848851934508, + 0.004966211480654941 + ], + [ + 2.95765693640951, + 9.365008369134037, + 4.636542882948816, + 3.7274291963248802, + 0.005968054934946726, + 0.2047406643323351, + 0.005174035667664904 + ], + [ + 3.0940334107452307, + 9.139739495127506, + 4.619495823656852, + 3.900985863867467, + 0.0058799092673975225, + 0.20452372349709275, + 0.0053909765029072545 + ], + [ + 3.236619011358968, + 8.896611424771534, + 4.601672623580134, + 4.080903345763166, + 0.0057805991367985655, + 0.20429725313880298, + 0.005617446861197042 + ], + [ + 3.3856832564395614, + 8.63511027672054, + 4.5830395929450605, + 4.267196415600441, + 0.005686085617190386, + 0.2040610118079948, + 0.005853688192005213 + ], + [ + 3.5415058016331833, + 8.354749183326577, + 4.563561774795858, + 4.459834060201013, + 0.005592500402203556, + 0.2038146402647383, + 0.0061000597352617 + ], + [ + 3.704376088229701, + 8.055079932586318, + 4.543202988971293, + 4.658728489179547, + 0.00547674633586001, + 0.2035576476689583, + 0.006357052331041689 + ], + [ + 3.874591289224515, + 7.73571022466184, + 4.521926088846941, + 4.863721682012127, + 0.00535291075740604, + 0.2032898050176224, + 0.006624894982377629 + ], + [ + 4.052457011314632, + 7.396318921162012, + 4.499692873585676, + 5.074568838762089, + 0.005224195343081945, + 0.20301084757798535, + 0.006903852422014643 + ], + [ + 4.238285757546965, + 7.036679284411405, + 4.476464280306635, + 5.290917987758723, + 0.005098054578068971, + 0.2027206017305458, + 0.007194098269454215 + ], + [ + 4.432395745244466, + 6.656686381142617, + 4.452200531844447, + 5.512284770930638, + 0.004978066703880749, + 0.20241893890148074, + 0.007495761098519269 + ], + [ + 4.635109419018416, + 6.256391093179829, + 4.426861322622703, + 5.738021186803121, + 0.004852611613191206, + 0.20210565434492983, + 0.007809045655070176 + ], + [ + 4.846748765084406, + 5.836047614099927, + 4.400406404364454, + 5.967276771029686, + 0.0047235749474810775, + 0.2017807996978142, + 0.008133900302185805 + ], + [ + 5.067632899806579, + 5.396166173257689, + 4.372795887524182, + 6.198950338025661, + 0.004567289977293723, + 0.2014442695923498, + 0.008470430407650211 + ], + [ + 5.298065407918249, + 4.937596393765226, + 4.3439918240102235, + 6.43163007072834, + 0.004414999912702296, + 0.20109696969896343, + 0.00881773030103657 + ], + [ + 5.538328681345421, + 4.461611824226807, + 4.313958914831827, + 6.663519472522346, + 0.004266766821122735, + 0.2007398929892484, + 0.009174807010751618 + ], + [ + 5.788665827973576, + 3.9700340290307365, + 4.282666771503307, + 6.892346779231436, + 0.004116173890397523, + 0.2003745912040674, + 0.009540108795932605 + ], + [ + 6.049251292405219, + 3.4653956364952543, + 4.250093588449352, + 7.115256316977188, + 0.003959485719283668, + 0.20000377818534368, + 0.009910921814656314 + ], + [ + 6.320141671120573, + 2.951156741253439, + 4.216232291109932, + 7.32868318282981, + 0.0037975531694157626, + 0.1996322476046665, + 0.010282452395333512 + ], + [ + 6.601184716811727, + 2.432006694235468, + 4.181101910398539, + 7.528219965318213, + 0.0036391943682019165, + 0.1992687774961557, + 0.010645922503844274 + ], + [ + 6.891836411392611, + 1.9143179102109242, + 4.14477044857593, + 7.708501690572951, + 0.0035032308102491143, + 0.19893030265814218, + 0.010984397341857815 + ], + [ + 7.190750007705448, + 1.406935668796034, + 4.107406249036825, + 7.863177055195897, + 0.003398921570113335, + 0.19865178363643907, + 0.011262916363560945 + ], + [ + 7.494660504155385, + 0.9230089563846986, + 4.069417436980583, + 7.985143372042886, + 0.003358174827114987, + 0.1985199856537716, + 0.011394714346228393 + ], + [ + 7.794594750697759, + 0.4859791701401305, + 4.0319256561627865, + 8.06757618847785, + 0.0035211918705374554, + 0.19880918534519612, + 0.011105514654803895 + ], + [ + 8.059455548981942, + 0.15607336026948615, + 3.9988180563772624, + 8.107835858646645, + 0.004487893669293878, + 0.20062415671964293, + 0.00929054328035706 + ], + [ + 8.221174852503136, + 0.045767353558585425, + 3.978603143437113, + 8.119498493735316, + 0.006157387246414779, + 0.2045994098073783, + 0.0053152901926217105 + ], + [ + 8.330228632052343, + 0.038751906302922606, + 3.9649714209934626, + 8.125399317465016, + 0.0063880506934517745, + 0.20562545470088342, + 0.00428924529911661 + ], + [ + 8.436085777241368, + 0.03792620919604765, + 3.9517392778448346, + 8.131030084305529, + 0.006378217930973172, + 0.20568140754779976, + 0.004233292452200242 + ], + [ + 8.541863332469228, + 0.03727962421898454, + 3.938517083441352, + 8.136629127833205, + 0.006384922151243754, + 0.20568328652621218, + 0.00423141347378783 + ], + [ + 8.64764093179098, + 0.036657982165521456, + 3.925294883526134, + 8.14220314678192, + 0.006390734567224165, + 0.20568330494574066, + 0.0042313950542593425 + ], + [ + 8.753420535406358, + 0.0360566914677889, + 3.9120724330742114, + 8.147753102720044, + 0.0063925178989498775, + 0.20568324362120213, + 0.004231456378797855 + ], + [ + 8.859201859263827, + 0.03547549519565514, + 3.898849767592028, + 8.153279778599064, + 0.006405834523629486, + 0.20568324361090462, + 0.004231456389095397 + ], + [ + 8.964985606724296, + 0.03491232471083482, + 3.8856267991594695, + 8.158783940537072, + 0.006408649437423809, + 0.2056831824777359, + 0.004231517522264104 + ], + [ + 9.07077187051943, + 0.03436629305392669, + 3.8724035161850776, + 8.164266303768157, + 0.0064009528648114235, + 0.20568305979249785, + 0.00423164020750216 + ], + [ + 9.176560504125568, + 0.033836994393080314, + 3.8591799369843107, + 8.169727545464282, + 0.006391230922786248, + 0.2056829217784428, + 0.004231778221557224 + ], + [ + 9.282351665133579, + 0.03332348442039273, + 3.845956041858309, + 8.17516831809841, + 0.006376773375084741, + 0.20568275015791437, + 0.004231949842085614 + ], + [ + 9.388144639271538, + 0.03282648423213502, + 3.8327319200910646, + 8.180589223300052, + 0.006383934220313953, + 0.2056827047971177, + 0.004231995202882305 + ], + [ + 9.493940050147318, + 0.03234423183884814, + 3.819507493731592, + 8.18599086822928, + 0.006392859526802226, + 0.2056826670219221, + 0.004232032978077908 + ], + [ + 9.599738114555413, + 0.03187575317587397, + 3.80628273568058, + 8.191373825479467, + 0.0063967568188510494, + 0.20568259818882242, + 0.004232101811177573 + ], + [ + 9.705538836805205, + 0.03142050067790923, + 3.7930576453993554, + 8.196738634635562, + 0.006396856142015452, + 0.20568250709725747, + 0.004232192902742558 + ], + [ + 9.811342274879468, + 0.030977847845715372, + 3.7798322156400728, + 8.202085814821325, + 0.006392213894045334, + 0.20568238712145767, + 0.004232312878542336 + ], + [ + 9.917148338880967, + 0.03054746715798296, + 3.766606457639885, + 8.207415860034406, + 0.006386918655611634, + 0.20568226174671814, + 0.0042324382532818615 + ], + [ + 10.02295696991541, + 0.03012899367211689, + 3.7533803787605793, + 8.21272924428091, + 0.0063836138881444345, + 0.2056821470518757, + 0.004232552948124301 + ], + [ + 10.128768059393915, + 0.029722176605099727, + 3.7401539925757663, + 8.218026419434382, + 0.006386398728526864, + 0.20568206969517294, + 0.00423263030482706 + ], + [ + 10.234582125698305, + 0.02932560324278717, + 3.7269272342877175, + 8.223307838242615, + 0.006378396092331581, + 0.20568192123168658, + 0.004232778768313415 + ], + [ + 10.34039822205643, + 0.028940632344538923, + 3.7137002222429523, + 8.228573895228017, + 0.006390376228318886, + 0.20568190150120869, + 0.004232798498791337 + ], + [ + 10.446216977192432, + 0.028565678039494277, + 3.700472877850952, + 8.233825011957482, + 0.006401939253999184, + 0.20568188003330334, + 0.004232819966696672 + ], + [ + 10.552038537895413, + 0.028200078160869876, + 3.687245182763079, + 8.23906157876612, + 0.006408279028693908, + 0.2056818267358144, + 0.0042328732641856055 + ], + [ + 10.657863104914663, + 0.027843082538495028, + 3.674017111885673, + 8.244283974066157, + 0.006403001653760363, + 0.20568169917342988, + 0.004233000826570156 + ], + [ + 10.763690473427644, + 0.027494716564039352, + 3.66078869082155, + 8.249492551766918, + 0.006392890235812152, + 0.2056815390209845, + 0.004233160979015512 + ], + [ + 10.86952065725099, + 0.027154608643502425, + 3.6475599178436315, + 8.254687657876055, + 0.0063779374530044085, + 0.2056813424228806, + 0.004233357577119377 + ], + [ + 10.975352831290335, + 0.0268239770911294, + 3.634330896088713, + 8.259869602031836, + 0.006382237004507578, + 0.20568127793941346, + 0.0042334220605865355 + ], + [ + 11.081187470089139, + 0.026501608621392867, + 3.621101566238863, + 8.265038718735621, + 0.006391360013135081, + 0.20568124545355188, + 0.004233454546448114 + ], + [ + 11.187024861680818, + 0.02618665094311912, + 3.607871892289903, + 8.27019532688336, + 0.006395723428261251, + 0.2056811810591516, + 0.004233518940848406 + ], + [ + 11.292864948807559, + 0.025878914784079433, + 3.5946418813990606, + 8.275339721780265, + 0.006396720629051056, + 0.2056810954520918, + 0.00423360454790822 + ], + [ + 11.398707793002021, + 0.025577996675044942, + 3.5814115258747528, + 8.2804721929462, + 0.006392179751981097, + 0.20568097236865135, + 0.004233727631348665 + ], + [ + 11.50455323407529, + 0.025283919663826652, + 3.568180845740595, + 8.285593013979492, + 0.006386607513681343, + 0.20568084170024972, + 0.004233858299750315 + ], + [ + 11.610401151699493, + 0.024996641530426265, + 3.554949856037569, + 8.29070244992953, + 0.0063830423582059165, + 0.2056807248648001, + 0.004233975135199887 + ], + [ + 11.716251376116922, + 0.02471622346699164, + 3.5417185779853906, + 8.2958007539703, + 0.00638575522779545, + 0.20568065421817822, + 0.004234045781821792 + ], + [ + 11.822104485402598, + 0.024441325520743358, + 3.5284869393246807, + 8.300888195545271, + 0.006378072973829761, + 0.2056805041564692, + 0.0042341958435307865 + ], + [ + 11.927959330110163, + 0.024173868789800105, + 3.5152550837362346, + 8.3059649821607, + 0.006390797017741535, + 0.20568050995201306, + 0.004234190047986936 + ], + [ + 12.033816667435815, + 0.02391219274797047, + 3.502022916570528, + 8.3110313721276, + 0.006402508736926197, + 0.20568051028480758, + 0.004234189715192418 + ], + [ + 12.1396766743521, + 0.023655738801568602, + 3.4887904157059926, + 8.316087596312714, + 0.006407783663233981, + 0.20568046461050773, + 0.0042342353894922755 + ], + [ + 12.245539566444078, + 0.023403881480878533, + 3.475557554194495, + 8.321133880954164, + 0.006400498182902386, + 0.2056803238419033, + 0.004234376158096704 + ], + [ + 12.351404983198696, + 0.023157086211957157, + 3.4623243771001686, + 8.326170428242662, + 0.006390206198113836, + 0.20568015849322144, + 0.0042345415067785545 + ], + [ + 12.457272978138741, + 0.02291504627712474, + 3.4490908777326625, + 8.33119744577961, + 0.0063755387996794945, + 0.20567995362261376, + 0.004234746377386257 + ], + [ + 12.563142443545441, + 0.022679648029518582, + 3.4358571945568257, + 8.336215098542935, + 0.006383354367782141, + 0.20567993278449617, + 0.004234767215503834 + ], + [ + 12.669014198418068, + 0.022449155548557424, + 3.422623225197747, + 8.3412236057879, + 0.006392517088662432, + 0.2056799227894464, + 0.004234777210553613 + ], + [ + 12.774888476037018, + 0.022222940100777123, + 3.4093889404953783, + 8.346223164247235, + 0.006396177644474006, + 0.20567986955882003, + 0.004234830441179985 + ], + [ + 12.880765255723386, + 0.022000859858229273, + 3.396154343034582, + 8.35121395404315, + 0.006394422893785811, + 0.20567977390421338, + 0.004234926095786623 + ], + [ + 12.986644465167593, + 0.021782874307958777, + 3.382919441854056, + 8.356196149595233, + 0.006388776948980984, + 0.20567964597928207, + 0.004235054020717949 + ], + [ + 13.092525902114499, + 0.021569192765398853, + 3.3696842622356926, + 8.36116991613462, + 0.00638379079387254, + 0.20567952297243552, + 0.004235177027564486 + ], + [ + 13.198409429320122, + 0.02135990726312929, + 3.3564488213349892, + 8.366135415784223, + 0.006382183224477887, + 0.20567942862071478, + 0.004235271379285226 + ], + [ + 13.304294926192252, + 0.021155084618779366, + 3.343213134225973, + 8.371092805045341, + 0.006386104768878834, + 0.20567938387052548, + 0.004235316129474537 + ], + [ + 13.410182942467586, + 0.02095352993107815, + 3.3299771321915568, + 8.376042260788338, + 0.006382454211862845, + 0.2056792694113817, + 0.004235430588618311 + ], + [ + 13.51607220531397, + 0.020757490153982264, + 3.316740974335759, + 8.38098389315581, + 0.006398940824249519, + 0.20567934325950946, + 0.0042353567404905205 + ], + [ + 13.621963958408783, + 0.020564471824012383, + 3.303504505198907, + 8.385917892504992, + 0.00640717240089849, + 0.20567934457689202, + 0.00423535542310798 + ], + [ + 13.727858406252027, + 0.020373945907744353, + 3.2902676992185014, + 8.390844409165604, + 0.006402324152533652, + 0.20567922657400206, + 0.004235473425997947 + ], + [ + 13.833755238995288, + 0.020186355849186603, + 3.277030595125594, + 8.39576357348699, + 0.00639130292917863, + 0.20567904879365995, + 0.004235651206340051 + ], + [ + 13.939653994705266, + 0.020002435990320908, + 3.2637932506618466, + 8.400675506559207, + 0.006383805641204256, + 0.2056789022366711, + 0.004235797763328906 + ], + [ + 14.04555494926701, + 0.019821533573055845, + 3.2505556313416286, + 8.405580350242104, + 0.0063738433371115675, + 0.2056787261738905, + 0.004235973826109518 + ], + [ + 14.151456595760374, + 0.01964636166915743, + 3.237317925529958, + 8.410478182056796, + 0.006390918860549983, + 0.2056788249254193, + 0.004235875074580725 + ], + [ + 14.257360836853572, + 0.019473205779516004, + 3.2240798953933094, + 8.415369193042716, + 0.006395845152342922, + 0.2056788031830518, + 0.004235896816948226 + ], + [ + 14.363267446549019, + 0.01930236723324392, + 3.2108415691813783, + 8.420253500384801, + 0.006392758792256585, + 0.20567870186022194, + 0.004235998139778085 + ], + [ + 14.469176161916836, + 0.019134223901304273, + 3.1976029797604015, + 8.425131213119283, + 0.006386936074017438, + 0.20567857181059226, + 0.004236128189407729 + ], + [ + 14.57508675486346, + 0.018969089860548172, + 3.184364155642074, + 8.430002439564783, + 0.006382555539933373, + 0.20567845559225967, + 0.00423624440774034 + ], + [ + 14.680999058079404, + 0.018807167457910723, + 3.171125117740081, + 8.434867287206762, + 0.006382342523377461, + 0.20567838336530897, + 0.004236316634691036 + ], + [ + 14.786913009066762, + 0.01864846423021664, + 3.1578858738666615, + 8.439725864245256, + 0.0063868584602028815, + 0.20567836371388692, + 0.004236336286113077 + ], + [ + 14.892828723671512, + 0.018492655165289144, + 3.1446464095410676, + 8.444578281162842, + 0.006393356374029174, + 0.20567836910322937, + 0.004236330896770633 + ], + [ + 14.998746130491652, + 0.01833976840291632, + 3.13140673368855, + 8.449424642045676, + 0.006402511568012346, + 0.20567840967448406, + 0.0042362903255159685 + ], + [ + 15.104665603181216, + 0.018188995088632153, + 3.1181667996023545, + 8.454265063796301, + 0.006407145198175049, + 0.2056784016174437, + 0.0042362983825563 + ], + [ + 15.210587852746691, + 0.018038892843039465, + 3.10492651840667, + 8.459099672115439, + 0.006395163795421895, + 0.20567819766071185, + 0.004236502339288129 + ], + [ + 15.31651180448484, + 0.017891393799935974, + 3.091686024439401, + 8.463928525060462, + 0.006385311330962867, + 0.20567801467408223, + 0.0042366853259177715 + ], + [ + 15.422437123696549, + 0.01774703505179345, + 3.078445359537937, + 8.468751705352078, + 0.006382709672132431, + 0.20567791748787514, + 0.004236782512124885 + ], + [ + 15.528363705673245, + 0.017605921638443215, + 3.06520453679085, + 8.473569301855234, + 0.006388305653629661, + 0.20567792356323616, + 0.004236776436763834 + ], + [ + 15.634291827245875, + 0.01746744045168173, + 3.0519635215942715, + 8.478381415028213, + 0.006396851744872737, + 0.20567797251739095, + 0.004236727482609055 + ], + [ + 15.740221930512917, + 0.017330666294994, + 3.0387222586858913, + 8.48318815136665, + 0.006400912458414122, + 0.2056779664118264, + 0.004236733588173584 + ], + [ + 15.846155011716126, + 0.017193630887261245, + 3.0254806235354903, + 8.487989634259531, + 0.006385346652777297, + 0.20567769984844847, + 0.004237000151551526 + ], + [ + 15.952089006629942, + 0.017060148020423688, + 3.012238874171263, + 8.49278587255483, + 0.006381966949496597, + 0.20567759235246602, + 0.00423710764753399 + ], + [ + 16.058024362085433, + 0.01692929221937567, + 2.9989969547393267, + 8.497576964262727, + 0.006383246326660639, + 0.20567754874476318, + 0.00423715125523682 + ], + [ + 16.163961021188904, + 0.016801090480464183, + 2.985754872351393, + 8.502362987745554, + 0.0063894188609153755, + 0.205677576828138, + 0.004237123171862006 + ], + [ + 16.26989922846164, + 0.016675001502604425, + 2.972512596442301, + 8.507144031487215, + 0.006396461239898271, + 0.20567762249921048, + 0.004237077500789516 + ], + [ + 16.375839559616747, + 0.01654985913577958, + 2.9592700550479125, + 8.511920195502343, + 0.006396168157353605, + 0.20567756358326714, + 0.00423713641673287 + ], + [ + 16.481782090453688, + 0.016425445490580573, + 2.946027238693295, + 8.516691557310955, + 0.006387852160761943, + 0.20567738164930044, + 0.0042373183506995765 + ], + [ + 16.5877254843901, + 0.016304212775988248, + 2.9327843144512435, + 8.52145813985662, + 0.006389149057382601, + 0.20567734728915832, + 0.004237352710841673 + ], + [ + 16.69367105836277, + 0.016183596959464964, + 2.9195411177046595, + 8.526220068400022, + 0.006382775228444418, + 0.20567718561922152, + 0.004237514380778506 + ], + [ + 16.799617249399233, + 0.016066485453066236, + 2.9062978438251017, + 8.53097734992258, + 0.006388044077043515, + 0.20567721636973824, + 0.004237483630261777 + ], + [ + 16.905564581441514, + 0.0159518179114731, + 2.8930544273198167, + 8.535730074506596, + 0.006397638228084107, + 0.2056773272822268, + 0.0042373727177732225 + ], + [ + 17.011514232089787, + 0.01583729764248692, + 2.8798107209887824, + 8.540478358103204, + 0.0063973042672797, + 0.20567727254015467, + 0.004237427459845348 + ], + [ + 17.117466123883226, + 0.015723004443177816, + 2.8665667345146026, + 8.545222264361309, + 0.006388565785179727, + 0.20567706517048925, + 0.004237634829510727 + ], + [ + 17.223419186743076, + 0.015610898840737984, + 2.8533226016571214, + 8.549961814381035, + 0.006383723380801178, + 0.20567692208355193, + 0.004237777916448076 + ], + [ + 17.32937356126956, + 0.015500651658253133, + 2.840078304841311, + 8.554697076968536, + 0.006380931268545495, + 0.20567681136148858, + 0.004237888638511416 + ], + [ + 17.43532814341533, + 0.015394291166441044, + 2.8268339820730897, + 8.559428068385195, + 0.006390908757698265, + 0.2056769562093207, + 0.004237743790679337 + ], + [ + 17.541284547674202, + 0.015288698591192447, + 2.8135894315407306, + 8.564154917601766, + 0.006396449219206811, + 0.20567702038421937, + 0.0042376796157806325 + ], + [ + 17.647244210843027, + 0.015181091957884625, + 2.8003444736446275, + 8.568877745857968, + 0.006383881631297608, + 0.20567670807365204, + 0.004237991926347977 + ], + [ + 17.753204983599847, + 0.015075483736549274, + 2.787099377050025, + 8.573596520909609, + 0.006374861280740194, + 0.2056764568874886, + 0.004238243112511432 + ], + [ + 17.85916587025103, + 0.014973703022993355, + 2.773854266218627, + 8.578311257537989, + 0.006377892049234392, + 0.20567646755767363, + 0.004238232442326387 + ], + [ + 17.96512677709562, + 0.014875871698416334, + 2.7606091528630534, + 8.5830220073822, + 0.006392513091621763, + 0.20567675587082845, + 0.0042379441291715446 + ], + [ + 18.071089163668304, + 0.014779169481400999, + 2.747363854541468, + 8.587728887881617, + 0.006405140365913858, + 0.2056770194994987, + 0.0042376805005012825 + ], + [ + 18.177057076176276, + 0.01467587504850213, + 2.7341178654779714, + 8.592432127383436, + 0.006383022563618875, + 0.20567642755515242, + 0.004238272444847597 + ], + [ + 18.283023532845945, + 0.014579165071404889, + 2.7208720583942627, + 8.597131478426306, + 0.006384163987971521, + 0.205676407147984, + 0.004238292852016001 + ], + [ + 18.388990906715176, + 0.014484489115846034, + 2.707626136660609, + 8.60182709692994, + 0.006388276685823041, + 0.2056764685175674, + 0.004238231482432599 + ], + [ + 18.49495919530644, + 0.014391802297316778, + 2.694380100586701, + 8.60651903236684, + 0.006394892881214381, + 0.2056766098932423, + 0.0042380901067576885 + ], + [ + 18.600930482395654, + 0.014297103710153237, + 2.681133689700549, + 8.611207426798396, + 0.006389101613827205, + 0.20567640195213205, + 0.004238298047867931 + ], + [ + 18.706903396788157, + 0.014202943416384681, + 2.6678870754014863, + 8.615892269411965, + 0.006381432147741367, + 0.20567612299574986, + 0.004238577004250138 + ], + [ + 18.812876027947727, + 0.014112896113863786, + 2.65464049650654, + 8.620573523539697, + 0.006384226699375122, + 0.20567616050725437, + 0.0042385394927456285 + ], + [ + 18.918848551698197, + 0.014026581659613362, + 2.6413939310377312, + 8.625251243724913, + 0.006395089201300413, + 0.205676475235796, + 0.00423822476420402 + ], + [ + 19.024824572184393, + 0.013937119207682463, + 2.6281469284769567, + 8.62992563647128, + 0.0063918352995430685, + 0.20567632937439378, + 0.004238370625606223 + ], + [ + 19.130801680087036, + 0.01384903043795066, + 2.6148997899891264, + 8.634596641801277, + 0.006389611809764481, + 0.20567621144963152, + 0.004238488550368454 + ], + [ + 19.236780757075817, + 0.013760597795249319, + 2.6016524053655288, + 8.639264344548435, + 0.006383592550113737, + 0.2056759395417563, + 0.004238760458243703 + ], + [ + 19.342757260436603, + 0.013680396436913446, + 2.5884053424454305, + 8.643928581988984, + 0.0063971132662811936, + 0.20567643658268345, + 0.004238263417316575 + ], + [ + 19.448738691869163, + 0.013594150105649044, + 2.5751576635163604, + 8.648589738343649, + 0.0063913946725507546, + 0.20567617181281658, + 0.004238528187183438 + ], + [ + 19.554721832641707, + 0.013507923007054485, + 2.5619097709197924, + 8.653247710021214, + 0.006383726698347012, + 0.20567579929464486, + 0.004238900705355151 + ], + [ + 19.66070257006609, + 0.01342947805122366, + 2.5486621787417447, + 8.657902350200763, + 0.006392328976422628, + 0.20567615149680693, + 0.004238548503193099 + ], + [ + 19.76668694587439, + 0.013347308767251497, + 2.535414131765707, + 8.662553976960462, + 0.0063898082905830605, + 0.20567599860954777, + 0.004238701390452239 + ], + [ + 19.872674165971645, + 0.01326288133100776, + 2.52216572925355, + 8.667202594670659, + 0.006380776282026997, + 0.20567550103897003, + 0.004239198961030001 + ], + [ + 19.9786574696656, + 0.013188989346518078, + 2.508917816291806, + 8.671847929527804, + 0.006391504323398545, + 0.20567602541883911, + 0.004238674581160911 + ], + [ + 20.08464063681909, + 0.013118418689639415, + 2.49566992039762, + 8.676490195910056, + 0.0064055838995008005, + 0.20567680135054742, + 0.00423789864945258 + ], + [ + 20.190635505267256, + 0.01302865847453019, + 2.482420561841599, + 8.68112998278631, + 0.0063826130326212, + 0.20567543635902108, + 0.004239263640978943 + ], + [ + 20.296620885005925, + 0.01295989713464936, + 2.469172389374265, + 8.685766342471586, + 0.006395695104643521, + 0.20567620868114492, + 0.0042384913188550895 + ], + [ + 20.402613943019748, + 0.012879507740444038, + 2.4559232571225373, + 8.690400111183132, + 0.00638740924955087, + 0.20567565082929556, + 0.004239049170704448 + ], + [ + 20.508605109174376, + 0.012805622687492397, + 2.442674361353209, + 8.695030878996384, + 0.006388480552598835, + 0.2056756903846651, + 0.00423900961533489 + ], + [ + 20.61459761435526, + 0.012732072074520416, + 2.429425298205598, + 8.699658832691389, + 0.0063887212427596665, + 0.20567567382094257, + 0.0042390261790574355 + ], + [ + 20.720593274653993, + 0.012655372629137499, + 2.4161758406682567, + 8.704284092407978, + 0.006383325103996288, + 0.20567523555768807, + 0.004239464442311949 + ], + [ + 20.826583538766958, + 0.012591725646764184, + 2.402927057654136, + 8.708906292598176, + 0.006394684008768651, + 0.20567608594805736, + 0.0042386140519426515 + ], + [ + 20.93258701565148, + 0.012505764352905496, + 2.3896766230435706, + 8.713526339004375, + 0.006375709309704968, + 0.20567450077172753, + 0.004240199228272482 + ], + [ + 21.03857197999721, + 0.01245769276430599, + 2.3764285025003544, + 8.718142778184566, + 0.006403247876488173, + 0.20567681425595596, + 0.004237885744044029 + ], + [ + 21.144579952348415, + 0.01236864166919287, + 2.363177505956454, + 8.722757589453728, + 0.006380032658571887, + 0.2056747411756978, + 0.004239958824302203 + ], + [ + 21.250573686352066, + 0.012309300262654511, + 2.3499282892059976, + 8.727369058344586, + 0.006390886898519368, + 0.20567570300432028, + 0.004238996995679712 + ], + [ + 21.250573686352066, + 0.012309300262654511, + 7.349928289205998, + 8.727369058344586, + 0.006390886898519368, + 0.20567570300432028, + 0.004238996995679712 + ], + [ + 21.35659919276965, + 0.012206958448531773, + 7.3366751009038, + 8.731964689839455, + 0.006376667135825415, + 0.2056757458497919, + 0.004238954150208085 + ], + [ + 21.462614875391473, + 0.012125995491715454, + 7.323423140576072, + 8.736557134691397, + 0.0063639242432408745, + 0.2056743582712668, + 0.0042403417287332065 + ], + [ + 21.56861417892275, + 0.012078809967647828, + 7.310173227634661, + 8.741146133759742, + 0.006381614207831453, + 0.20567635154442668, + 0.0042383484555733215 + ], + [ + 21.67463325961596, + 0.011996716133461167, + 7.29692084254801, + 8.74573341676426, + 0.006367143551463634, + 0.20567463319820606, + 0.004240066801793945 + ], + [ + 21.780647572453525, + 0.011926292477184299, + 7.283669053443313, + 8.750317858953162, + 0.006362866002354975, + 0.20567405697251606, + 0.004240643027483934 + ], + [ + 21.88665081666562, + 0.011879475627469698, + 7.2704186479168005, + 8.754899191790079, + 0.006377398670681612, + 0.2056758547762303, + 0.0042388452237696675 + ], + [ + 21.992667035458965, + 0.011810583040564069, + 7.257166620567633, + 8.759478573361886, + 0.006373126259937177, + 0.20567529300370702, + 0.004239406996292986 + ], + [ + 22.09868693645021, + 0.011737231522474561, + 7.243914132943726, + 8.76405559497987, + 0.006365210812007431, + 0.20567420249055263, + 0.0042404975094473855 + ], + [ + 22.204699046637774, + 0.011681179677192854, + 7.230662619170282, + 8.768629744339282, + 0.006370068428344597, + 0.20567482921639013, + 0.004239870783609878 + ], + [ + 22.310706707864597, + 0.011636055219395423, + 7.217411661516928, + 8.773201205127382, + 0.006381999465266493, + 0.20567651015189448, + 0.004238189848105542 + ], + [ + 22.41672885295511, + 0.011565881630935767, + 7.2041588933806135, + 8.777770893076353, + 0.006375336798542972, + 0.2056755467475464, + 0.004239153252453605 + ], + [ + 22.52275617287063, + 0.011488309846458747, + 7.1909054783911746, + 8.78233839621208, + 0.006363599983376795, + 0.2056737629040612, + 0.004240937095938814 + ], + [ + 22.628779132732465, + 0.011421419178182412, + 7.177652608408444, + 8.78690329240508, + 0.006359101178483726, + 0.20567301326636167, + 0.004241686733638336 + ], + [ + 22.734798522246415, + 0.011363684994725098, + 7.1644001847192005, + 8.791465643868603, + 0.006360309495405543, + 0.2056731378871435, + 0.004241562112856483 + ], + [ + 22.84081551452753, + 0.01131285240833531, + 7.1511480606840605, + 8.796025533055126, + 0.006365468292374928, + 0.20567390418166107, + 0.004240795818338934 + ], + [ + 22.946836974894946, + 0.011255866906951876, + 7.1378953781381345, + 8.800583300922758, + 0.006366187562209552, + 0.20567398053418803, + 0.004240719465811963 + ], + [ + 23.052860303715406, + 0.011197638409388798, + 7.1246424620355775, + 8.805138851688344, + 0.006365764553197971, + 0.20567387016373045, + 0.004240829836269542 + ], + [ + 23.15887428677069, + 0.01115943101583853, + 7.111390714153668, + 8.809691688322452, + 0.006376747603664122, + 0.20567573158555905, + 0.004238968414440959 + ], + [ + 23.264903970478436, + 0.011093672568567957, + 7.0981370036902005, + 8.814243000727954, + 0.006371143386612752, + 0.20567473983340911, + 0.004239960166590901 + ], + [ + 23.370933686435805, + 0.011030086807805805, + 7.084883289195528, + 8.818792080725412, + 0.006366675420837493, + 0.2056739131088513, + 0.004240786891148676 + ], + [ + 23.476963923446746, + 0.010967724383774285, + 7.071629509569159, + 8.823338972472119, + 0.006362787385029079, + 0.20567315708783138, + 0.004241542912168636 + ], + [ + 23.5829856795443, + 0.01092365237208698, + 7.058376790056966, + 8.82788327920166, + 0.006368570155037883, + 0.2056741906105971, + 0.004240509389402912 + ], + [ + 23.689015186135276, + 0.010867035730006143, + 7.045123101733093, + 8.832425777795985, + 0.006367219676623345, + 0.20567390553327095, + 0.0042407944667290694 + ], + [ + 23.795043117976746, + 0.010815554511097487, + 7.031869610252909, + 8.836966057169922, + 0.0063683151403561, + 0.20567408351011662, + 0.004240616489883398 + ], + [ + 23.901070211948046, + 0.010767789745958928, + 7.018616223506497, + 8.841504171701525, + 0.006370998657230058, + 0.20567458181984347, + 0.004240118180156543 + ], + [ + 24.007095207952187, + 0.01072611197890366, + 7.0053630990059785, + 8.846040084359407, + 0.006376369304072858, + 0.20567563638065858, + 0.004239063619341415 + ], + [ + 24.113135385947114, + 0.010657695940349361, + 6.992108076756612, + 8.850574620491027, + 0.00636816597846705, + 0.2056739613856327, + 0.00424073861436731 + ], + [ + 24.219175632299205, + 0.010591215092430214, + 6.9788530459626, + 8.855107094844678, + 0.0063609635681977925, + 0.20567243593754783, + 0.004242264062452154 + ], + [ + 24.325200764581197, + 0.01055546912052004, + 6.965599904427351, + 8.859636823341026, + 0.006368305663382773, + 0.2056739299415733, + 0.004240770058426696 + ], + [ + 24.431229668093344, + 0.010514588681732667, + 6.9523462914883325, + 8.864164702544707, + 0.006372798504668625, + 0.2056748605461674, + 0.004239839453832593 + ], + [ + 24.537274769578264, + 0.010444963726425486, + 6.939090653802718, + 8.868691330019029, + 0.006363745314316002, + 0.20567288218563373, + 0.004241817814366259 + ], + [ + 24.643306326664757, + 0.0104030351325785, + 6.925836709166905, + 8.873215343351202, + 0.006367250433820972, + 0.2056736122466566, + 0.004241087753343411 + ], + [ + 24.74933706088742, + 0.010364635747497412, + 6.912582867389073, + 8.877737351296515, + 0.006372022197134041, + 0.20567464471750388, + 0.0042400552824961284 + ], + [ + 24.855386629867475, + 0.010292431623246546, + 6.899326671266567, + 8.882258284800642, + 0.0063616431856000025, + 0.2056722815367459, + 0.004242418463254101 + ], + [ + 24.96141123741667, + 0.010269538398576257, + 6.886073595322917, + 8.88677613227715, + 0.0063726505806259125, + 0.20567475557118353, + 0.004239944428816473 + ], + [ + 25.067457550834277, + 0.01020735499738158, + 6.872817806145715, + 8.891293073877575, + 0.006366419948777543, + 0.20567329858038785, + 0.004241401419612163 + ], + [ + 25.173493097903172, + 0.0101675019708852, + 6.8595633627621035, + 8.895807622786096, + 0.006369570608548229, + 0.20567400518138665, + 0.004240694818613358 + ], + [ + 25.27953358721175, + 0.010120143211040404, + 6.846308301598531, + 8.900320525132257, + 0.006369335062430109, + 0.20567392693305714, + 0.004240773066942838 + ], + [ + 25.385570903582057, + 0.010080665691055365, + 6.833053637052241, + 8.90483142205017, + 0.006372160845316809, + 0.20567458230835678, + 0.004240117691643228 + ], + [ + 25.491616421267032, + 0.0100274624642499, + 6.819797947341619, + 8.90934085705514, + 0.006369193702803144, + 0.20567384572751868, + 0.004240854272481312 + ], + [ + 25.597654346126745, + 0.009990497145035663, + 6.806543206734155, + 8.913848114940047, + 0.00637261791164637, + 0.2056746643849956, + 0.004240035615004386 + ], + [ + 25.703710752942815, + 0.009920260558895944, + 6.7932861558821465, + 8.918354418246787, + 0.006362699681463462, + 0.20567218103127335, + 0.004242518968726651 + ], + [ + 25.809743534046795, + 0.009896655562044578, + 6.780032058244149, + 8.922857841282914, + 0.006370975822340261, + 0.2056742255233849, + 0.004240474476615095 + ], + [ + 25.91578560065097, + 0.009857202322690438, + 6.7667767999186275, + 8.927359917190815, + 0.00637282677544722, + 0.20567467763576375, + 0.004240022364236261 + ], + [ + 26.021839720190297, + 0.009796632887174469, + 6.753520034976211, + 8.931860789044594, + 0.006366460418501485, + 0.20567302920017097, + 0.004241670799829029 + ], + [ + 26.127885148760704, + 0.00975430269900659, + 6.740264356404912, + 8.93635951603791, + 0.006366938837946555, + 0.20567312525534223, + 0.00424157474465777 + ], + [ + 26.233916834824864, + 0.009739780219755287, + 6.727010395646891, + 8.940855884407958, + 0.006377584685490764, + 0.2056758901690105, + 0.004238809830989516 + ], + [ + 26.339973536255165, + 0.009679496209147187, + 6.713753307968104, + 8.945351689557244, + 0.006371067646958613, + 0.20567416270722455, + 0.0042405372927754575 + ], + [ + 26.446032674540106, + 0.009616285173394542, + 6.7004959156824855, + 8.949845909037906, + 0.006363492972081251, + 0.20567211906959476, + 0.004242580930405245 + ], + [ + 26.55207559497897, + 0.009585533400337624, + 6.687240550627628, + 8.954337702304162, + 0.006367586935972907, + 0.20567319153108155, + 0.0042415084689184585 + ], + [ + 26.658127704508033, + 0.009539011118286183, + 6.673984036936495, + 8.958828249245704, + 0.006365882685636751, + 0.20567269935982058, + 0.00424200064017943 + ], + [ + 26.764168973200203, + 0.009514714579137419, + 6.660728878349974, + 8.963316646068217, + 0.006371889853784114, + 0.2056743237623811, + 0.004240376237618899 + ], + [ + 26.870219701204192, + 0.00947410478607304, + 6.6474725373494765, + 8.967803838900542, + 0.0063719761182479025, + 0.20567433315276973, + 0.004240366847230268 + ], + [ + 26.97626831661217, + 0.00943912944202459, + 6.634216460423478, + 8.972289309498674, + 0.006373885530890093, + 0.20567485349707598, + 0.004239846502924021 + ], + [ + 27.082322078192927, + 0.009395997443523874, + 6.6209597402258815, + 8.97677340680167, + 0.006372847760942023, + 0.2056745517822903, + 0.0042401482177096975 + ], + [ + 27.188374396535696, + 0.009357201695156341, + 6.607703200433035, + 8.981255840517486, + 0.006373184959620582, + 0.20567463639489938, + 0.004240063605100606 + ], + [ + 27.294428582340647, + 0.009316443866871681, + 6.5944464272074175, + 8.985736778049915, + 0.006372741155018906, + 0.20567449876128607, + 0.0042402012387139235 + ], + [ + 27.400481318515435, + 0.009280007071147232, + 6.581189835185568, + 8.990216079050086, + 0.006373633871195568, + 0.20567474556590531, + 0.004239954434094706 + ], + [ + 27.506539199902708, + 0.009235361668715542, + 6.567932600012159, + 8.994694060485692, + 0.006371694148491899, + 0.20567417132855914, + 0.0042405286714408815 + ], + [ + 27.61259492240432, + 0.009196356691172377, + 6.554675634699458, + 8.999170399432824, + 0.006371525878642442, + 0.20567410892627483, + 0.004240591073725175 + ], + [ + 27.718659984586502, + 0.009141159125176228, + 6.541417501926686, + 9.00364563526364, + 0.0063660226191477485, + 0.20567246469809608, + 0.004242235301903932 + ], + [ + 27.824714171977867, + 0.009108112923482698, + 6.5281607285027645, + 9.00811885823168, + 0.0063676039023791405, + 0.2056729129130047, + 0.004241787086995297 + ], + [ + 27.930777296683186, + 0.009059613610777555, + 6.514902837914599, + 9.012590983729321, + 0.006364161720741724, + 0.20567185414280437, + 0.004242845857195635 + ], + [ + 28.036824574016507, + 0.009042673399064135, + 6.501646928247935, + 9.017060897111158, + 0.006370620635584308, + 0.20567378032624917, + 0.004240919673750835 + ], + [ + 28.142874204482624, + 0.009022746776897423, + 6.488390724439672, + 9.021529439250134, + 0.006375944304159756, + 0.20567538866762833, + 0.004239311332371693 + ], + [ + 28.248948490511495, + 0.008957508223520387, + 6.475131438686064, + 9.025997634870766, + 0.006367026043288534, + 0.2056726479979964, + 0.004242052002003644 + ], + [ + 28.35500881612089, + 0.008920211167722977, + 6.461873897984889, + 9.030463741622475, + 0.006366763773923975, + 0.20567254388132183, + 0.004242156118678159 + ], + [ + 28.461060587926074, + 0.00890058671608808, + 6.448617426509241, + 9.03492801614819, + 0.006371819832497337, + 0.20567409297302916, + 0.004240607026970848 + ], + [ + 28.5671248508914, + 0.008858693973695963, + 6.435359393638576, + 9.039391427186635, + 0.006369948702011384, + 0.20567349586494688, + 0.004241204135053136 + ], + [ + 28.673196434687064, + 0.008804331798025046, + 6.422100445664118, + 9.043853750565123, + 0.006364274284209265, + 0.20567168978785594, + 0.004243010212144052 + ], + [ + 28.77924661534806, + 0.008791982803817006, + 6.408844173081495, + 9.048313696196725, + 0.006371144702020153, + 0.20567384257726024, + 0.004240857422739762 + ], + [ + 28.885314496795747, + 0.008747447807119639, + 6.395585687900536, + 9.052773048596215, + 0.0063682790977011555, + 0.20567291604095533, + 0.004241783959044651 + ], + [ + 28.991372632141946, + 0.00872278959164225, + 6.382328420982259, + 9.057230572550553, + 0.006371240217633223, + 0.20567384691971916, + 0.004240853080280842 + ], + [ + 29.09744169782887, + 0.008678768525098295, + 6.3690697877713935, + 9.061687217984247, + 0.006368405494953987, + 0.20567291934400875, + 0.004241780655991254 + ], + [ + 29.203502956520545, + 0.008650921404359906, + 6.355812130434936, + 9.066142146870757, + 0.006370237912448538, + 0.2056734957690814, + 0.00424120423091861 + ], + [ + 29.309574727626526, + 0.008604483145157472, + 6.3425531590466875, + 9.070596199461832, + 0.006366595421977008, + 0.20567229123362288, + 0.004242408766377109 + ], + [ + 29.415630834057364, + 0.00858910367779576, + 6.329296145742833, + 9.075048201918726, + 0.006371838149420863, + 0.20567399243079257, + 0.004240707569207431 + ], + [ + 29.52171186273884, + 0.008527776620492243, + 6.316036017157647, + 9.07949999964957, + 0.006363850455545749, + 0.20567133856514083, + 0.004243361434859173 + ], + [ + 29.627768270159866, + 0.008514476358825279, + 6.3027789662300195, + 9.083949365511545, + 0.006369471261106326, + 0.20567318357274803, + 0.004241516427251992 + ], + [ + 29.733837195048793, + 0.00847874062902699, + 6.289520350618903, + 9.088397986345528, + 0.006368649063680259, + 0.20567289269125152, + 0.004241807308748464 + ], + [ + 29.839913357876537, + 0.008430575264485023, + 6.276260830265436, + 9.09284563322385, + 0.006364297734603307, + 0.20567141157063576, + 0.004243288429364239 + ], + [ + 29.945972013884607, + 0.008416908300249952, + 6.263003498264427, + 9.097291201738303, + 0.00636949723177591, + 0.20567314631031025, + 0.004241553689689752 + ], + [ + 30.052039996550192, + 0.0083868290518192, + 6.249745000431229, + 9.101735910948959, + 0.006370044586996819, + 0.20567331667081531, + 0.004241383329184695 + ], + [ + 30.158120268017118, + 0.008334709450444566, + 6.236484966497862, + 9.106179903473056, + 0.006364475997102547, + 0.205671399528445, + 0.004243300471555025 + ], + [ + 30.264186040492675, + 0.008311351782665146, + 6.223226744938418, + 9.110621984047565, + 0.006366736862703603, + 0.20567215428924224, + 0.004242545710757759 + ], + [ + 30.370248723764437, + 0.008295104446505708, + 6.209968909529448, + 9.115062675038212, + 0.006370842077678859, + 0.20567355103709545, + 0.004241148962904541 + ], + [ + 30.476314529621664, + 0.008274173952657707, + 6.196710683797296, + 9.119502266620875, + 0.006373570399125707, + 0.20567448558676596, + 0.004240214413234038 + ], + [ + 30.582392122597383, + 0.008232117155376169, + 6.18345098467533, + 9.123941156509767, + 0.006370550654867149, + 0.20567342484790524, + 0.004241275152094781 + ], + [ + 30.688467380276517, + 0.008195712061733433, + 6.170191577465439, + 9.128378719318343, + 0.0063690059979264755, + 0.20567287169464596, + 0.004241828305354056 + ], + [ + 30.79454392375692, + 0.0081580800513676, + 6.156932009530389, + 9.132815127930163, + 0.006367093623455498, + 0.20567218365041842, + 0.004242516349581595 + ], + [ + 30.90062215799025, + 0.008118446005464458, + 6.143672230251221, + 9.137250407553575, + 0.00636462140244922, + 0.20567129013984592, + 0.004243409860154086 + ], + [ + 31.00669149519805, + 0.008096880160690791, + 6.1304135631002445, + 9.141684094949062, + 0.006366838361072702, + 0.20567205754062212, + 0.004242642459377871 + ], + [ + 31.11276451509138, + 0.008069515080804933, + 6.117154435613579, + 9.146116761791646, + 0.006367469087165905, + 0.20567226456581608, + 0.0042424354341839225 + ], + [ + 31.218840547491933, + 0.00803761217820721, + 6.10389493156351, + 9.15054838773987, + 0.006366861082059842, + 0.2056720293129734, + 0.004242670687026607 + ], + [ + 31.324919703728003, + 0.008000953767491166, + 6.090635037034002, + 9.15497898431562, + 0.006364983436136157, + 0.20567133391101136, + 0.0042433660889886265 + ], + [ + 31.430988978512726, + 0.007984194387679304, + 6.077376377685913, + 9.159407980844447, + 0.006368162531929599, + 0.20567246439809184, + 0.00424223560190818 + ], + [ + 31.537062548393315, + 0.007960439792291928, + 6.06411718145084, + 9.163836018707611, + 0.006369476651190272, + 0.2056729258692865, + 0.004241774130713485 + ], + [ + 31.643136259174643, + 0.007937559686501023, + 6.050857967603172, + 9.168262921153891, + 0.00637094689983043, + 0.2056734483427886, + 0.004241251657211389 + ], + [ + 31.749207524195217, + 0.007920450871401537, + 6.0375990594756015, + 9.172688581496054, + 0.0063738019195520215, + 0.20567448450730025, + 0.004240215492699775 + ], + [ + 31.855298774881224, + 0.007866564571000037, + 6.024337653139851, + 9.177114008831971, + 0.006367341379336632, + 0.2056721004255716, + 0.0042425995744283735 + ], + [ + 31.961378625623606, + 0.007835415761184215, + 6.011077671797052, + 9.18153780968401, + 0.006366573938801768, + 0.20567180180538794, + 0.004242898194612092 + ], + [ + 32.067453126720814, + 0.007815521439488602, + 5.997818359159901, + 9.185960262798247, + 0.0063685698562889435, + 0.2056725243724817, + 0.004242175627518311 + ], + [ + 32.17352608389667, + 0.007799655813885581, + 5.984559239512919, + 9.190381546330038, + 0.006371497234738138, + 0.2056735994201159, + 0.004241100579884136 + ], + [ + 32.27960723215996, + 0.007769347797234652, + 5.971299095980007, + 9.194802103572432, + 0.006370778919759237, + 0.2056733228338631, + 0.00424137716613688 + ], + [ + 32.3856996983917, + 0.0077186631432290985, + 5.95803753770104, + 9.199222078251346, + 0.00636503125703951, + 0.20567115315772902, + 0.0042435468422709795 + ], + [ + 32.491767595306534, + 0.007715647933896567, + 5.9447790505866855, + 9.203639882220582, + 0.006370926690753602, + 0.2056733558520657, + 0.0042413441479343065 + ], + [ + 32.5978567733488, + 0.007673345172437654, + 5.931517903331402, + 9.208057564246717, + 0.006367167252925703, + 0.20567192467237644, + 0.004242775327623567 + ], + [ + 32.70393516664611, + 0.007652556359974594, + 5.918258104169238, + 9.212473704073767, + 0.00636860859554904, + 0.20567245587788158, + 0.004242244122118432 + ], + [ + 32.81001297678041, + 0.007633927454351632, + 5.904998377902451, + 9.216888763925466, + 0.006370512574812142, + 0.20567316768689525, + 0.004241532313104759 + ], + [ + 32.916103281990544, + 0.007592649934479707, + 5.891737089751184, + 9.221303333362103, + 0.006366917667453051, + 0.20567178262746522, + 0.004242917372534782 + ], + [ + 33.022172288483496, + 0.007592801443024488, + 5.878478463939565, + 9.225715915839194, + 0.006373211897789452, + 0.2056741829779215, + 0.004240517022078511 + ], + [ + 33.12827306051004, + 0.007533748663379179, + 5.865215867436247, + 9.230128877542247, + 0.006365326232998863, + 0.20567113758076427, + 0.004243562419235742 + ], + [ + 33.23434789729734, + 0.007524900100415307, + 5.851956512837835, + 9.234539663249453, + 0.0063693539428702805, + 0.20567267765592032, + 0.00424202234407968 + ], + [ + 33.340434257034424, + 0.007495219281070763, + 5.838695717870699, + 9.238949942417129, + 0.006368392966845131, + 0.2056722932297048, + 0.004242406770295217 + ], + [ + 33.44652157142441, + 0.00746473853305497, + 5.825434803571951, + 9.243359253637745, + 0.006367210391246001, + 0.20567182015974284, + 0.004242879840257175 + ], + [ + 33.55259968728012, + 0.00745270384896768, + 5.812175039089987, + 9.247767153117177, + 0.006370317593381006, + 0.20567301824122267, + 0.004241681758777331 + ], + [ + 33.65869154510791, + 0.007415607622142616, + 5.798913556861514, + 9.252174666042915, + 0.006367512775666755, + 0.2056719096514929, + 0.0042427903485071135 + ], + [ + 33.76477433261357, + 0.00739670020998932, + 5.785653208423306, + 9.25658078704677, + 0.006368917008738132, + 0.20567244764518608, + 0.0042422523548139145 + ], + [ + 33.87085589510568, + 0.007381098430254087, + 5.772393013111793, + 9.260985870961838, + 0.006371038187363882, + 0.20567327141926356, + 0.00424142858073646 + ], + [ + 33.97695064461849, + 0.007341467410525416, + 5.759131169422691, + 9.265390563708182, + 0.006367564394553868, + 0.20567188802049105, + 0.004242811979508943 + ], + [ + 34.08303838892763, + 0.007316088633932988, + 5.745870201384048, + 9.269793976810785, + 0.00636735007212124, + 0.20567178999722738, + 0.004242910002772633 + ], + [ + 34.18911861481152, + 0.007305928503029243, + 5.732610173148562, + 9.274196094277412, + 0.006370580777316475, + 0.20567306315951847, + 0.004241636840481545 + ], + [ + 34.295201851548384, + 0.0072910156115041525, + 5.719349768556454, + 9.278597388851024, + 0.0063726702239501045, + 0.20567388785801194, + 0.004240812141988062 + ], + [ + 34.4012950894576, + 0.00725808924420321, + 5.706088113817803, + 9.282998176210894, + 0.006370620692680267, + 0.2056730590707657, + 0.0042416409292343115 + ], + [ + 34.50739004902789, + 0.007222841634222782, + 5.692826243871516, + 9.287398096552153, + 0.006368025376986414, + 0.20567200603676739, + 0.004242693963232641 + ], + [ + 34.613483383869394, + 0.007191611324593678, + 5.679564577016328, + 9.291797008350095, + 0.006366318119597597, + 0.20567130496774744, + 0.004243395032252576 + ], + [ + 34.719575030129356, + 0.00716451301136746, + 5.666303121233833, + 9.296194915154457, + 0.006365515344796973, + 0.2056709657697327, + 0.00424373423026731 + ], + [ + 34.82566582390392, + 0.007139955146563454, + 5.6530417720120125, + 9.300591860187081, + 0.006365251875688619, + 0.20567084356547988, + 0.004243856434520124 + ], + [ + 34.93175650290261, + 0.007116532818994434, + 5.639780437137176, + 9.304987882230387, + 0.00636520936753966, + 0.2056708107488785, + 0.0042438892511215 + ], + [ + 35.03784476818325, + 0.007098600262344156, + 5.626519403977096, + 9.309382884351013, + 0.0063663505739799345, + 0.20567126164850252, + 0.004243438351497484 + ], + [ + 35.14393663949498, + 0.007074736889310912, + 5.61325792006313, + 9.313777139452649, + 0.006366142069829721, + 0.2056711619674483, + 0.004243538032551694 + ], + [ + 35.25002535185294, + 0.007057762457905495, + 5.599996831018385, + 9.318170355527066, + 0.006367418560198608, + 0.20567167213782797, + 0.004243027862172034 + ], + [ + 35.35611871149612, + 0.007032871072412899, + 5.586735161062987, + 9.322562882471818, + 0.006366919948452638, + 0.205671453036369, + 0.0042432469636310205 + ], + [ + 35.46220438738882, + 0.007023434865504402, + 5.573474451576399, + 9.326954183405547, + 0.006369770836477585, + 0.20567261741411771, + 0.004242082585882279 + ], + [ + 35.56829455130612, + 0.007006371307154181, + 5.560213181086738, + 9.331344800534081, + 0.0063709105081365645, + 0.20567307885929909, + 0.004241621140700905 + ], + [ + 35.6743910554216, + 0.006978160923848233, + 5.546951118072302, + 9.335734823379799, + 0.00636958385385311, + 0.20567252051619672, + 0.004242179483803299 + ], + [ + 35.780489246135154, + 0.006947623539063856, + 5.533688844233108, + 9.340124049897243, + 0.0063677312676318635, + 0.2056717403943938, + 0.004242959605606206 + ], + [ + 35.886583618506, + 0.0069251900085307285, + 5.520427047686752, + 9.344512243565447, + 0.006367613890846243, + 0.20567167952092855, + 0.004243020479071454 + ], + [ + 35.99267343657419, + 0.006912249634878728, + 5.507165820428229, + 9.348899377970588, + 0.006369514329937437, + 0.20567246195510366, + 0.004242238044896327 + ], + [ + 36.09877016583687, + 0.006887060043378375, + 5.493903729270394, + 9.353285963085247, + 0.0063687397111805285, + 0.2056721277921794, + 0.004242572207820607 + ], + [ + 36.204870405655974, + 0.00685606322795096, + 5.4806411992930055, + 9.357671854393413, + 0.006366697742205305, + 0.20567125916283727, + 0.004243440837162729 + ], + [ + 36.31096064285516, + 0.006844871511760151, + 5.467379919643108, + 9.362056463972552, + 0.006368869218690737, + 0.20567216142970382, + 0.004242538570296183 + ], + [ + 36.417056056616055, + 0.006824702897840121, + 5.4541179929229955, + 9.366440464224048, + 0.006369087432467498, + 0.20567224350768137, + 0.004242456492318634 + ], + [ + 36.52316172317774, + 0.006785929888754713, + 5.440854784602784, + 9.370824082202565, + 0.006365331654149788, + 0.20567064203251703, + 0.004244057967482983 + ], + [ + 36.62924449040388, + 0.006791393175628701, + 5.427594438699518, + 9.375205870062084, + 0.006370923948250573, + 0.205673003712524, + 0.0042416962874759915 + ], + [ + 36.73534900896312, + 0.006756442704102284, + 5.414331373879612, + 9.379587791433526, + 0.006367932462168637, + 0.20567172305073886, + 0.004242976949261151 + ], + [ + 36.841444548452664, + 0.006739331596555675, + 5.401069431443419, + 9.38396850134783, + 0.0063686907172444025, + 0.20567203401499057, + 0.004242665985009439 + ], + [ + 36.94754579802581, + 0.006712205587841914, + 5.387806775246776, + 9.38834865193442, + 0.00636730867932108, + 0.20567143397521606, + 0.004243266024783943 + ], + [ + 37.053637383006865, + 0.006704207356542328, + 5.374545327124144, + 9.392727572136348, + 0.006369911197108584, + 0.20567253846875885, + 0.004242161531241148 + ], + [ + 37.159743680455364, + 0.006669118814549206, + 5.361282039943082, + 9.397106337338878, + 0.006366824811894381, + 0.20567120358137758, + 0.004243496418622403 + ], + [ + 37.265834305214376, + 0.006664535461182188, + 5.348020711848205, + 9.401483620851856, + 0.006370071241563039, + 0.2056725904398245, + 0.004242109560175536 + ], + [ + 37.37194012131334, + 0.0066319460874550845, + 5.334757484835835, + 9.40586077827415, + 0.006367470033123112, + 0.20567145907538426, + 0.00424324092461575 + ], + [ + 37.47803796089552, + 0.006615258922211769, + 5.321495254888062, + 9.410236804815339, + 0.006368143580076953, + 0.20567173972823213, + 0.004242960271767858 + ], + [ + 37.58413397673309, + 0.006602808581452599, + 5.308233252908366, + 9.41461197183688, + 0.006369664233184172, + 0.20567238869667173, + 0.0042423113033282795 + ], + [ + 37.69023924733732, + 0.006573590080442741, + 5.294970094082838, + 9.418986768561906, + 0.0063677033701057695, + 0.20567152796350596, + 0.00424317203649404 + ], + [ + 37.79634452901725, + 0.006545121311315717, + 5.281706933872846, + 9.423360795044475, + 0.0063658851981800305, + 0.2056707247605766, + 0.004243975239423399 + ], + [ + 37.90243081227462, + 0.006553429854739378, + 5.268446148465674, + 9.427733226478484, + 0.006371566796918248, + 0.20567319462144454, + 0.004241505378555469 + ], + [ + 38.00853687880193, + 0.006525000092710674, + 5.2551828901497615, + 9.432105760532883, + 0.006369709456029487, + 0.20567237435429903, + 0.00424232564570097 + ], + [ + 38.114642623780064, + 0.006497935410317052, + 5.241919672027494, + 9.436477524969069, + 0.006368112606710207, + 0.20567166612447654, + 0.0042430338755234664 + ], + [ + 38.220747882841934, + 0.006472543222731732, + 5.2286565146447606, + 9.440848516755372, + 0.0063668409992138865, + 0.20567109761456126, + 0.004243602385438755 + ], + [ + 38.3268492777723, + 0.006455224073041391, + 5.215393840278465, + 9.445218591302899, + 0.00636718647341792, + 0.20567123920918287, + 0.004243460790817125 + ], + [ + 38.43295036284855, + 0.006439233449789625, + 5.202131204643933, + 9.449587911127901, + 0.0063677760492490635, + 0.20567148870104826, + 0.00424321129895175 + ], + [ + 38.53904655013225, + 0.006433264831318607, + 5.188869181233471, + 9.4539562789343, + 0.006370356397459441, + 0.20567262029567235, + 0.004242079704327669 + ], + [ + 38.64515149863736, + 0.006411422352502476, + 5.175606062670332, + 9.45832429611697, + 0.006369715692447702, + 0.20567232866990012, + 0.004242371330099868 + ], + [ + 38.751256721573924, + 0.006389789724489126, + 5.162342909803262, + 9.462691595242456, + 0.00636909919954476, + 0.2056720468279667, + 0.0042426531720332955 + ], + [ + 38.85735868389851, + 0.006375059775846345, + 5.1490801645126885, + 9.467058029858885, + 0.006369842084284579, + 0.2056723687434532, + 0.00424233125654679 + ], + [ + 38.96346656989224, + 0.0063498195213813075, + 5.135816678763472, + 9.471424005023461, + 0.006368465432612036, + 0.20567174720571613, + 0.004242952794283886 + ], + [ + 39.06957178702403, + 0.0063303530400773125, + 5.122553526621998, + 9.475789148751796, + 0.006368222693312036, + 0.20567162968766978, + 0.004243070312330245 + ], + [ + 39.1756729023584, + 0.006319371741712184, + 5.109290887205202, + 9.480153403218337, + 0.006369640529897002, + 0.20567225600464878, + 0.004242443995351245 + ], + [ + 39.281783350082875, + 0.0062914094406140725, + 5.096027081239643, + 9.484517356483716, + 0.006367675481379715, + 0.2056713664052696, + 0.004243333594730413 + ], + [ + 39.38789134541668, + 0.006268797213959009, + 5.082763581822917, + 9.48888050113883, + 0.006366754063761098, + 0.20567094273638278, + 0.00424375726361725 + ], + [ + 39.49399844950612, + 0.0062485725032562596, + 5.069500193811737, + 9.493242908730565, + 0.006366288581884117, + 0.20567072219165897, + 0.004243977808341036 + ], + [ + 39.60009777332545, + 0.006243789038015503, + 5.056237778334321, + 9.497604282984424, + 0.006368834908937897, + 0.20567186074105395, + 0.0042428392589460625 + ], + [ + 39.70620212555248, + 0.006230165028826458, + 5.042974734305942, + 9.501965185916118, + 0.006369617290703758, + 0.20567220651044782, + 0.004242493489552189 + ], + [ + 39.81231225516773, + 0.006206276881161122, + 5.029710968104036, + 9.5063256541192, + 0.00636837081702178, + 0.2056716347365206, + 0.0042430652634793935 + ], + [ + 39.918427425501704, + 0.006173516513049207, + 5.016446571812289, + 9.510685659878424, + 0.006365384657907381, + 0.20567026980905326, + 0.004244430190946733 + ], + [ + 40.024523689139244, + 0.006177266912966497, + 5.003184538857597, + 9.515044167270458, + 0.006369489776232106, + 0.20567212598472126, + 0.004242574015278755 + ], + [ + 40.130629264724675, + 0.006164038919278359, + 4.989921341909418, + 9.519402408708151, + 0.006370262831725445, + 0.20567247101929162, + 0.004242228980708406 + ], + [ + 40.23674522149495, + 0.006131806024165251, + 4.976656847313134, + 9.523760430630892, + 0.0063673358463679185, + 0.20567112848688707, + 0.004243571513112943 + ], + [ + 40.34284718480002, + 0.006126758769853954, + 4.9633941019, + 9.528117180737274, + 0.006369656535769458, + 0.2056721796111932, + 0.004242520388806827 + ], + [ + 40.44895927904854, + 0.0061031721565198965, + 4.950130090118935, + 9.532473709196314, + 0.006368371528247555, + 0.20567158463472324, + 0.004243115365276782 + ], + [ + 40.55506782369635, + 0.006086971093317347, + 4.936866522037959, + 9.536829425439878, + 0.006368498373499396, + 0.20567163400514832, + 0.004243065994851682 + ], + [ + 40.661178569739945, + 0.006067252449747003, + 4.923602678782509, + 9.54118458260491, + 0.0063679293900010875, + 0.2056713648675195, + 0.004243335132480496 + ], + [ + 40.76728722551351, + 0.006052145028709216, + 4.910339096810813, + 9.54553899941784, + 0.006368228867074429, + 0.2056714939888504, + 0.004243206011149626 + ], + [ + 40.87339945567309, + 0.006030906929716826, + 4.897075068040866, + 9.549892927675383, + 0.006367337773741366, + 0.20567107470721682, + 0.004243625292783171 + ], + [ + 40.979507563222924, + 0.006018124112210106, + 4.883811554597137, + 9.554246035113913, + 0.0063680456825416345, + 0.20567139282196664, + 0.004243307178033345 + ], + [ + 41.085620803844996, + 0.0059962516386699825, + 4.870547399519378, + 9.55859872651914, + 0.006367002393389755, + 0.2056709022610087, + 0.004243797738991308 + ], + [ + 41.191723102084275, + 0.005995750877074216, + 4.857284612239468, + 9.562950309884283, + 0.006370007515264607, + 0.2056722855967925, + 0.004242414403207503 + ], + [ + 41.297841517777584, + 0.005965336347181596, + 4.844019810277804, + 9.567301959880611, + 0.006367311538792548, + 0.20567102782267002, + 0.004243672177329977 + ], + [ + 41.403951193031624, + 0.0059521129200950365, + 4.830756100871049, + 9.571652604772785, + 0.006367863125590847, + 0.20567127539920357, + 0.004243424600796436 + ], + [ + 41.5100590484734, + 0.005942962000996166, + 4.817492618940827, + 9.576002547179673, + 0.006369165086258388, + 0.20567187332107795, + 0.004242826678922061 + ], + [ + 41.616176603695564, + 0.00591604858809961, + 4.804227924538057, + 9.5803522895241, + 0.006367097122654526, + 0.20567090193491916, + 0.004243798065080854 + ], + [ + 41.72228998283322, + 0.005897667059717302, + 4.79096375214585, + 9.584701233473826, + 0.006366626715397893, + 0.2056706735648288, + 0.004244026435171198 + ], + [ + 41.82839610804463, + 0.005893644583648597, + 4.777700486494424, + 9.589049251567975, + 0.006368836203397094, + 0.20567169849348282, + 0.004243001506517181 + ], + [ + 41.93450826982851, + 0.005878789857946758, + 4.764436466271438, + 9.593396923073868, + 0.006368993532721187, + 0.2056717646554303, + 0.004242935344569701 + ], + [ + 42.040624592659036, + 0.005856655023636225, + 4.751171925917623, + 9.597744169046441, + 0.00636777209033037, + 0.20567118447872598, + 0.004243515521274026 + ], + [ + 42.1467399180315, + 0.005837012308246466, + 4.737907510246065, + 9.602090770044656, + 0.0063670048629062784, + 0.20567081603913276, + 0.004243883960867257 + ], + [ + 42.2528538806877, + 0.005820551264710917, + 4.7246432649140395, + 9.606436712919615, + 0.006366818778490487, + 0.20567071985251933, + 0.00424398014748066 + ], + [ + 42.358961730055704, + 0.0058162692510087865, + 4.711379783743039, + 9.610781797668853, + 0.006368879990051354, + 0.20567168377283693, + 0.004243016227163054 + ], + [ + 42.46507906998086, + 0.005794595181084144, + 4.698115116252395, + 9.61512669936847, + 0.0063676944268465496, + 0.20567111640660377, + 0.004243583593396277 + ], + [ + 42.57118610349212, + 0.005793039107048222, + 4.684851737063488, + 9.619470569023855, + 0.006370220902985292, + 0.20567230408789625, + 0.0042423959121037505 + ], + [ + 42.67730392915312, + 0.0057716190056039006, + 4.671587008855862, + 9.623814317244152, + 0.006369054324435406, + 0.20567174514688374, + 0.004242954853116275 + ], + [ + 42.78341716747707, + 0.005759473583552281, + 4.658322854065369, + 9.628157285853675, + 0.006369587463601772, + 0.2056719914021261, + 0.004242708597873915 + ], + [ + 42.889531567980406, + 0.005745703798376683, + 4.645058554002452, + 9.63249972664226, + 0.006369803987379202, + 0.20567208822279853, + 0.004242611777201443 + ], + [ + 42.9956516134218, + 0.005721812448369499, + 4.631793548322277, + 9.636841835406726, + 0.006368146736577714, + 0.20567129312114343, + 0.004243406878856576 + ], + [ + 43.10177331975086, + 0.0056953464618871765, + 4.618528335031145, + 9.641183443089723, + 0.006366009570635786, + 0.2056702669784339, + 0.004244433021566109 + ], + [ + 43.207885660370664, + 0.00568719305329136, + 4.605264292453669, + 9.64552408210089, + 0.006367216486975019, + 0.2056708347687541, + 0.004243865231245909 + ], + [ + 43.314004165659966, + 0.00566792359241463, + 4.5919994792925065, + 9.649864421109717, + 0.006366376413805745, + 0.20567042483055953, + 0.004244275169440493 + ], + [ + 43.42011385899576, + 0.005665913427766379, + 4.578735767625532, + 9.65420381925473, + 0.00636867180714045, + 0.2056715154985924, + 0.004243184501407598 + ], + [ + 43.526229800502556, + 0.005652623759247053, + 4.565471274937183, + 9.658542926216581, + 0.0063688917504907, + 0.2056716144415956, + 0.004243085558404421 + ], + [ + 43.632352378119435, + 0.005627315325228774, + 4.552205952735073, + 9.662881762851173, + 0.006366913011255096, + 0.20567065788137306, + 0.004244042118626928 + ], + [ + 43.73846838062306, + 0.0056150164012884266, + 4.53894145242212, + 9.66721976611134, + 0.006367287590340851, + 0.2056708304175123, + 0.004243869582487697 + ], + [ + 43.8445841798016, + 0.005603652244294405, + 4.525676977524802, + 9.6715572111325, + 0.006367818873434643, + 0.20567107812129395, + 0.00424362187870604 + ], + [ + 43.95069999438006, + 0.005592804812037682, + 4.512412500702495, + 9.675894110910539, + 0.0063684264658201125, + 0.2056713641889629, + 0.004243335811037099 + ], + [ + 44.056820855914076, + 0.005572937182040899, + 4.499147393010743, + 9.680230684672324, + 0.006367390342414782, + 0.2056708577601238, + 0.004243842239876193 + ], + [ + 44.16293574777949, + 0.005564921830724294, + 4.485883031527566, + 9.684566461097287, + 0.006368482908491891, + 0.20567137809183075, + 0.00424332190816927 + ], + [ + 44.26905348912465, + 0.005552043990444614, + 4.472618313859421, + 9.688901823196899, + 0.006368682911541371, + 0.20567146839689338, + 0.004243231603106633 + ], + [ + 44.375177527589805, + 0.005527769670967319, + 4.459352809051277, + 9.693236920442367, + 0.0063668228086743595, + 0.2056705605306367, + 0.004244139469363323 + ], + [ + 44.4812897005974, + 0.005526509386156339, + 4.446088787425327, + 9.697570976722723, + 0.0063690829400631956, + 0.20567164978939825, + 0.004243050210601774 + ], + [ + 44.58741486565371, + 0.005501160302771759, + 4.432823141793288, + 9.701905062452155, + 0.0063670104163118324, + 0.20567063687491186, + 0.004244063125088149 + ], + [ + 44.69352844613852, + 0.005498286590393985, + 4.419558944232687, + 9.706238125720786, + 0.006368950178701584, + 0.20567157307296366, + 0.004243126927036359 + ], + [ + 44.79965316005585, + 0.005474838604289642, + 4.406293354993021, + 9.710571145795539, + 0.006367198769098618, + 0.2056707139331443, + 0.0042439860668556945 + ], + [ + 44.90576802809475, + 0.005470563939300351, + 4.393028996488159, + 9.714903225657368, + 0.00636885769560106, + 0.2056715158190824, + 0.0042431841809176 + ], + [ + 45.011892508194826, + 0.0054485933061292225, + 4.379763436475649, + 9.719235201374074, + 0.00636735213135615, + 0.2056707741673638, + 0.0042439258326362 + ], + [ + 45.118011255448515, + 0.005437999238760116, + 4.366498593068938, + 9.723566416907184, + 0.006367858287808271, + 0.20567101525513193, + 0.004243684744868066 + ], + [ + 45.22412929556054, + 0.005429256003584676, + 4.353233838054935, + 9.727897091129707, + 0.006368679954812631, + 0.20567141074339632, + 0.004243289256603701 + ], + [ + 45.330254470131706, + 0.005407500449912192, + 4.339968191233539, + 9.732227565709335, + 0.006367183348823404, + 0.20567067106959583, + 0.004244028930404166 + ], + [ + 45.43637835092999, + 0.005388701700478286, + 4.326702706133753, + 9.736557479360457, + 0.006366203641543878, + 0.20567018296243159, + 0.004244517037568402 + ], + [ + 45.542492772974875, + 0.005388326114182612, + 4.313438403378143, + 9.740886486058422, + 0.006368465322577554, + 0.2056712871975569, + 0.004243412802443119 + ], + [ + 45.64861457656146, + 0.005374464144453987, + 4.30017317792982, + 9.745215309618183, + 0.006368333226511172, + 0.20567121594975696, + 0.004243484050243044 + ], + [ + 45.75474297940008, + 0.005348595467743374, + 4.286907127574993, + 9.749543919047786, + 0.006366077946976277, + 0.2056700986031453, + 0.004244601396854716 + ], + [ + 45.860860404977316, + 0.005344019546472675, + 4.273642449377838, + 9.753871563983779, + 0.006367557333009494, + 0.2056708214354811, + 0.00424387856451892 + ], + [ + 45.96698315826503, + 0.005329840847919672, + 4.2603771052168735, + 9.758198945566553, + 0.006367337307594941, + 0.2056707062397097, + 0.004243993760290287 + ], + [ + 46.0730998565197, + 0.005327620611805515, + 4.24711251793504, + 9.762525581711031, + 0.006369202259242357, + 0.20567162138993175, + 0.004243078610068272 + ], + [ + 46.179220022413574, + 0.005319315685729696, + 4.2338474971983056, + 9.766851880991393, + 0.006369985640055668, + 0.20567200383478068, + 0.004242696165219322 + ], + [ + 46.28534600027273, + 0.005300482382810929, + 4.220581749965911, + 9.771177945749915, + 0.00636891803876355, + 0.20567146970014524, + 0.004243230299854775 + ], + [ + 46.39147022598512, + 0.005285449076634439, + 4.207316221751863, + 9.775503455227938, + 0.006368505446092236, + 0.2056712593855091, + 0.004243440614490908 + ], + [ + 46.49759467659142, + 0.005270466985489578, + 4.194050665426075, + 9.779828497020734, + 0.006368092258186344, + 0.20567104832130012, + 0.004243651678699856 + ], + [ + 46.60371831323669, + 0.0052575030112976, + 4.180785210845416, + 9.784153028031785, + 0.006368019862758998, + 0.2056710067264653, + 0.004243693273534705 + ], + [ + 46.60371831323669, + 0.0052575030112976, + 9.180785210845416, + 9.784153028031785, + 0.006368019862758998, + 0.2056710067264653, + 0.004243693273534705 + ], + [ + 46.6064973000544, + 1.0036211168134118e-06, + 9.180437837493203, + 9.784263255537333, + 0.008008242791496145, + 0.2094245249273034, + 0.000490175072696628 + ], + [ + 46.60649797505016, + -2.722855998566814e-07, + 9.180437753118733, + 9.784263281451892, + 0.008008036112051382, + 0.2094986427717476, + 0.00041605722825240103 + ], + [ + 46.60649815195836, + -6.065475167433701e-07, + 9.180437731005206, + 9.784263288106025, + 0.00800798098132706, + 0.20949992453950955, + 0.00041477546049045326 + ], + [ + 46.60649818942857, + -6.77219815564772e-07, + 9.180437726321426, + 9.784263289389044, + 0.008007969314675482, + 0.20949994161540644, + 0.00041475838459358554 + ], + [ + 46.60649765965309, + 3.244244581029444e-07, + 9.180437792543362, + 9.784263268810472, + 0.008008134539877379, + 0.20950002777895216, + 0.0004146722210478562 + ], + [ + 46.6064968815365, + 1.7955672891076272e-06, + 9.18043788980793, + 9.784263238624252, + 0.008008377172380156, + 0.20950015373556755, + 0.00041454626443246406 + ], + [ + 46.606497806141505, + 4.7834004818506245e-08, + 9.180437774232312, + 9.78426327412607, + 0.008008088907577397, + 0.20950000410606687, + 0.0004146958939331401 + ], + [ + 46.60649824502193, + -7.817070929125998e-07, + 9.180437719372252, + 9.784263290925614, + 0.008007952086512091, + 0.20949993308704706, + 0.00041476691295293895 + ], + [ + 46.60649880300675, + -1.8363301693052192e-06, + 9.180437649624153, + 9.78426331224348, + 0.008007778175644954, + 0.20949984280474848, + 0.00041485719525152575 + ], + [ + 46.60649799156888, + -3.0223101062393557e-07, + 9.180437751053887, + 9.784263280807046, + 0.008008031192639532, + 0.20949997413802104, + 0.00041472586197897454 + ], + [ + 46.606497246203126, + 1.1069990062906201e-06, + 9.180437844224604, + 9.78426325188396, + 0.008008263610885684, + 0.2095000947881441, + 0.0004146052118559133 + ], + [ + 46.606497232826435, + 1.132457710113803e-06, + 9.180437845896693, + 9.784263251196913, + 0.008008267807471403, + 0.20950009696430277, + 0.0004146030356972426 + ], + [ + 46.606497864472686, + -6.149805480098813e-08, + 9.180437766940909, + 9.784263275437379, + 0.008008070873494168, + 0.20949999474584707, + 0.0004147052541529346 + ], + [ + 46.60649825607349, + -8.015881734282891e-07, + 9.180437717990806, + 9.784263290340816, + 0.008007948811072202, + 0.20949993139014877, + 0.00041476860985124354 + ], + [ + 46.60649780375862, + 5.361357755540905e-08, + 9.180437774530166, + 9.784263272759222, + 0.008008089864938709, + 0.20950000460068524, + 0.0004146953993147701 + ], + [ + 46.606497275484045, + 1.0524551559110034e-06, + 9.180437840564485, + 9.784263252203878, + 0.008008254630533403, + 0.20950009012186083, + 0.00041460987813918363 + ], + [ + 46.60649647133052, + 2.5728142576081837e-06, + 9.180437941083675, + 9.784263221017936, + 0.008008505352600054, + 0.20950022027406398, + 0.00041447972593605203 + ], + [ + 46.60649734791896, + 9.158096956507524e-07, + 9.180437831510117, + 9.784263254710567, + 0.008008232047954386, + 0.20950007841257107, + 0.00041462158742892744 + ], + [ + 46.606498067794604, + -4.448522714142158e-07, + 9.180437741525662, + 9.784263282269483, + 0.008008007654741049, + 0.20949996193372633, + 0.00041473806627365806 + ], + [ + 46.6064978870939, + -1.0311916878053576e-07, + 9.180437764113249, + 9.784263275167282, + 0.008008064013831797, + 0.20949999118285187, + 0.00041470881714812425 + ], + [ + 46.60649754923476, + 5.357442212460677e-07, + 9.180437806345644, + 9.784263261968993, + 0.00800816942188944, + 0.20950004588536694, + 0.00041465411463306197 + ], + [ + 46.606497258013555, + 1.0864499249236216e-06, + 9.180437842748294, + 9.784263250561793, + 0.008008260210673563, + 0.20950009302421288, + 0.0004146069757871263 + ], + [ + 46.606497977428766, + -2.7342595436735154e-07, + 9.18043775282139, + 9.784263278187284, + 0.008008035924022763, + 0.20949997660159114, + 0.00041472339840883916 + ], + [ + 46.60649816349154, + -6.249940234844948e-07, + 9.180437729563543, + 9.78426328519465, + 0.008007977938850906, + 0.2094999465087953, + 0.00041475349120468046 + ], + [ + 46.606498190446764, + -6.757881412055254e-07, + 9.18043772619414, + 9.784263286071697, + 0.008007969552523668, + 0.2094999421539907, + 0.00041475784600928967 + ], + [ + 46.606497627506485, + 3.885534308571222e-07, + 9.180437796561675, + 9.78426326421214, + 0.008008145117877898, + 0.2095000332767461, + 0.0004146667232539093 + ], + [ + 46.60649734342515, + 9.257964748122263e-07, + 9.180437832071844, + 9.784263253045646, + 0.00800823372717715, + 0.20950007927726638, + 0.00041462072273362066 + ], + [ + 46.60649781557626, + 3.335460397912513e-08, + 9.18043777305295, + 9.784263271133588, + 0.008008086519629698, + 0.20950000286625112, + 0.0004146971337488653 + ], + [ + 46.60649783072844, + 4.8756317660218244e-09, + 9.180437771158926, + 9.784263271552954, + 0.008008081832413076, + 0.20950000043462608, + 0.0004146995653739327 + ], + [ + 46.60649873929797, + -1.7125374459907978e-06, + 9.180437657587737, + 9.784263306429875, + 0.008007798587604219, + 0.20949985339963692, + 0.0004148466003630786 + ], + [ + 46.6064979541471, + -2.2813094148098225e-07, + 9.180437755731596, + 9.784263276006454, + 0.008008043413904426, + 0.20949998048190355, + 0.0004147195180964723 + ], + [ + 46.606497097557614, + 1.3914022349968663e-06, + 9.180437862805277, + 9.784263242750097, + 0.008008310544759789, + 0.20950011914284963, + 0.00041458085715038187 + ], + [ + 46.60649724367252, + 1.1153094355156279e-06, + 9.180437844540911, + 9.784263248259728, + 0.008008264979094777, + 0.2095000954958212, + 0.00041460450417880494 + ], + [ + 46.60649730665524, + 9.963857698063993e-07, + 9.180437836668071, + 9.784263250548712, + 0.008008245346161279, + 0.20950008531541417, + 0.000414614684585816 + ], + [ + 46.60649821340166, + -7.175638224715269e-07, + 9.180437723324765, + 9.784263285338257, + 0.008007962665628787, + 0.2094999385795743, + 0.00041476142042569283 + ], + [ + 46.60649779838601, + 6.712653991188654e-08, + 9.180437775201721, + 9.784263269195389, + 0.008008092094321816, + 0.20950000575766875, + 0.0004146942423312423 + ], + [ + 46.606497348772756, + 9.172896593814485e-07, + 9.18043783140338, + 9.784263251649422, + 0.008008232367194232, + 0.20950007855296068, + 0.0004146214470393332 + ], + [ + 46.60649649069017, + 2.539571315567544e-06, + 9.180437938663701, + 9.784263218409581, + 0.008008499870742092, + 0.20950021742754157, + 0.00041448257245843854 + ], + [ + 46.60649757855605, + 4.831669574488969e-07, + 9.180437802680466, + 9.784263260247494, + 0.008008160707189472, + 0.2095000413748853, + 0.00041465862511470993 + ], + [ + 46.606498050656526, + -4.0909817366567056e-07, + 9.180437743667913, + 9.784263278252524, + 0.008008013541031676, + 0.20949996498887347, + 0.00041473501112654246 + ], + [ + 46.60649789005848, + -1.0536739744317513e-07, + 9.180437763742669, + 9.784263271925536, + 0.00800806364357497, + 0.20949999099043853, + 0.00041470900956147583 + ], + [ + 46.60649751382899, + 6.060333844798875e-07, + 9.180437810771355, + 9.78426325724601, + 0.008008181014418254, + 0.2095000519028593, + 0.00041464809714070736 + ], + [ + 46.60649726269947, + 1.0809472963014888e-06, + 9.180437842162545, + 9.78426324738677, + 0.008008259303185779, + 0.2095000925531903, + 0.00041460744680969894 + ], + [ + 46.606498002313266, + -3.1711094923012563e-07, + 9.18043774971082, + 9.78426327578983, + 0.00800802871918134, + 0.2094999728617643, + 0.00041472713823570374 + ], + [ + 46.60649783800875, + -6.3075160948990275e-09, + 9.180437770248883, + 9.784263269254007, + 0.008008079982240615, + 0.20949999947767023, + 0.0004147005223297959 + ], + [ + 46.606498191225306, + -6.739033260864961e-07, + 9.180437726096814, + 9.78426328274509, + 0.008007969865119818, + 0.209499942315067, + 0.000414757684933011 + ], + [ + 46.60649801671218, + -3.438389803647874e-07, + 9.18043774791096, + 9.784263275853213, + 0.00800802436624622, + 0.20949997058118544, + 0.00041472941881457527 + ], + [ + 46.606497360998716, + 8.959318518587919e-07, + 9.180437829875146, + 9.784263250366577, + 0.008008228796131793, + 0.20950007671588963, + 0.00041462328411038423 + ], + [ + 46.60649782301772, + 2.264363904405695e-08, + 9.18043777212277, + 9.784263268064038, + 0.008008084753157778, + 0.2095000019492869, + 0.0004146980507131159 + ], + [ + 46.606497793138786, + 7.929759313685626e-08, + 9.180437775857637, + 9.784263266741437, + 0.008008094092334325, + 0.20950000680165853, + 0.0004146931983414812 + ], + [ + 46.60649872399973, + -1.6802622080047446e-06, + 9.180437659500019, + 9.784263302484687, + 0.00800780391103641, + 0.20949985616193934, + 0.0004148438380606494 + ], + [ + 46.60649791792507, + -1.5629838796025252e-07, + 9.18043776025935, + 9.784263271251724, + 0.008008055261176159, + 0.20949998663170624, + 0.0004147133682937648 + ], + [ + 46.60649706581927, + 1.4547579160657357e-06, + 9.180437866772573, + 9.784263238169132, + 0.008008320977222469, + 0.20950012456019, + 0.0004145754398100338 + ], + [ + 46.606497258170286, + 1.0912584033236522e-06, + 9.180437842728697, + 9.784263245463064, + 0.00800826101186671, + 0.20950009343670362, + 0.00041460656329636044 + ], + [ + 46.60649834458175, + -9.623641695705447e-07, + 9.180437706927265, + 9.784263287212559, + 0.0080079223117659, + 0.2094999176243276, + 0.00041478237567243764 + ], + [ + 46.6064982325444, + -7.503973515334466e-07, + 9.180437720931934, + 9.784263282722305, + 0.008007957250844246, + 0.209499935767405, + 0.00041476423259502427 + ], + [ + 46.606497791738285, + 8.305079362728805e-08, + 9.1804377760327, + 9.784263265581792, + 0.008008094721398863, + 0.20950000712115205, + 0.0004146928788479772 + ], + [ + 46.60649708325908, + 1.4225917236264218e-06, + 9.1804378645926, + 9.7842632380394, + 0.00800831566514295, + 0.20950012180635771, + 0.00041457819364230155 + ], + [ + 46.60649652126488, + 2.485127865331015e-06, + 9.180437934841876, + 9.784263216233251, + 0.008008490891861382, + 0.20950021276653497, + 0.00041448723346504515 + ], + [ + 46.6064976319076, + 3.8566753008552717e-07, + 9.180437796011534, + 9.784263258947826, + 0.008008144627339439, + 0.20950003302798925, + 0.00041466697201076826 + ], + [ + 46.606498064029, + -4.310223937501563e-07, + 9.180437741996359, + 9.78426327541292, + 0.008008009925337529, + 0.20949996311192065, + 0.0004147368880793487 + ], + [ + 46.60649788083502, + -8.457369710331408e-08, + 9.180437764895608, + 9.784263268212316, + 0.008008067073818292, + 0.20949999277079204, + 0.0004147072292079693 + ], + [ + 46.60649753784085, + 5.64013289573821e-07, + 9.18043780776988, + 9.784263254799711, + 0.008008174082167753, + 0.20950004830416383, + 0.0004146516958361721 + ], + [ + 46.60649724714872, + 1.113700524984994e-06, + 9.180437844106399, + 9.784263243431248, + 0.0080082647053601, + 0.20950009535625672, + 0.00041460464374329495 + ], + [ + 46.606498023027626, + -3.529123635888136e-07, + 9.180437747121534, + 9.784263273231327, + 0.008008022814556875, + 0.20949996979685018, + 0.0004147302031498217 + ], + [ + 46.606497959188324, + -2.3203145344260237e-07, + 9.180437755101444, + 9.784263270571351, + 0.008008042727449888, + 0.20949998014559673, + 0.0004147198544032958 + ], + [ + 46.60649819083471, + -6.698079202398233e-07, + 9.180437726145646, + 9.784263279373022, + 0.008007970542138643, + 0.2094999426658408, + 0.0004147573341592281 + ], + [ + 46.606497474877095, + 6.838356715525264e-07, + 9.180437815640351, + 9.78426325157686, + 0.008008193815807186, + 0.20950005855897014, + 0.0004146414410298674 + ], + [ + 46.606497343524154, + 9.323209460232616e-07, + 9.180437832059472, + 9.784263246337776, + 0.008008234797668285, + 0.2095000798296892, + 0.00041462017031080423 + ], + [ + 46.60649783026308, + 1.2303835193407175e-08, + 9.180437771217106, + 9.784263264986489, + 0.00800808304792365, + 0.2095000010641805, + 0.000414698935819477 + ], + [ + 46.6064987051261, + -1.6413592811756004e-06, + 9.180437661859225, + 9.78426329853289, + 0.008007810322665834, + 0.20949985949559743, + 0.0004148405044025856 + ], + [ + 46.606498698977155, + -1.629603002534687e-06, + 9.180437662627844, + 9.784263298163552, + 0.0080078122657697, + 0.20949986049882027, + 0.00041483950117972334 + ], + [ + 46.60649758243658, + 4.813088976652965e-07, + 9.180437802195415, + 9.784263254919376, + 0.008008160413059818, + 0.20950004122189766, + 0.0004146587781023405 + ], + [ + 46.60649706024881, + 1.468642649979563e-06, + 9.180437867468882, + 9.784263234599992, + 0.008008323265823828, + 0.20950012574665686, + 0.00041457425334315783 + ], + [ + 46.60649727284279, + 1.0668775083998572e-06, + 9.180437840894637, + 9.784263242672575, + 0.0080082569902977, + 0.20950009134945946, + 0.00041460865054055015 + ], + [ + 46.606498239799656, + -7.60886907671969e-07, + 9.180437720025031, + 9.784263279776141, + 0.008007955522821084, + 0.20949993487497554, + 0.0004147651250244583 + ], + [ + 46.60649823733721, + -7.561022650688897e-07, + 9.180437720332836, + 9.784263279551563, + 0.008007956310532797, + 0.2094999352788856, + 0.00041476472111440406 + ], + [ + 46.60649778400621, + 1.0102533488575523e-07, + 9.180437776999215, + 9.784263261925814, + 0.008008097686628649, + 0.2095000086601733, + 0.00041469133982669274 + ], + [ + 46.606497050253125, + 1.4883422874190714e-06, + 9.180437868718348, + 9.784263233410853, + 0.008008326509259044, + 0.20950012743527735, + 0.00041457256472265377 + ], + [ + 46.60649655036884, + 2.433465651184445e-06, + 9.180437931203885, + 9.78426321399912, + 0.008008482371036792, + 0.20950020834372268, + 0.0004144916562773289 + ], + [ + 46.606498263553384, + -8.050244722826671e-07, + 9.180437717055815, + 9.784263279925268, + 0.008007948245338754, + 0.20949993109447665, + 0.0004147689055233597 + ], + [ + 46.60649808432735, + -4.660399520235915e-07, + 9.180437739459075, + 9.784263272840835, + 0.008008004149270076, + 0.20949996011217198, + 0.0004147398878280196 + ], + [ + 46.606497872805846, + -6.603764603413592e-08, + 9.180437765899262, + 9.784263264544999, + 0.008008070131690805, + 0.20949999435783834, + 0.00041470564216165205 + ], + [ + 46.606497283026314, + 1.0491041592995348e-06, + 9.180437839621701, + 9.7842632415875, + 0.008008254058813634, + 0.2095000898313838, + 0.0004146101686162124 + ], + [ + 46.60649725359417, + 1.1048720395467334e-06, + 9.180437843300718, + 9.784263240323583, + 0.008008263249401223, + 0.20950009460033048, + 0.0004146053996695153 + ], + [ + 46.606497874212096, + -6.81923159353588e-08, + 9.180437765723473, + 9.784263264095461, + 0.008008069778275138, + 0.2094999941785292, + 0.0004147058214708255 + ], + [ + 46.6064980159249, + -3.359324648577391e-07, + 9.180437748009377, + 9.784263269404498, + 0.008008025592154452, + 0.2094999712482437, + 0.0004147287517562951 + ], + [ + 46.606498189422304, + -6.637806115438625e-07, + 9.180437726322198, + 9.784263275961145, + 0.008007971537738502, + 0.2094999431821238, + 0.00041475681787621186 + ], + [ + 46.606497461451944, + 7.126129558867881e-07, + 9.180437817318492, + 9.784263247660837, + 0.008008198569365464, + 0.20950006102699795, + 0.0004146389730020618 + ], + [ + 46.606497334366225, + 9.529890243493683e-07, + 9.180437833204204, + 9.784263242628688, + 0.008008238206919887, + 0.20950008159893396, + 0.00041461840106602404 + ], + [ + 46.60649713115553, + 1.3373109617923427e-06, + 9.18043785860554, + 9.784263234622854, + 0.008008301608369359, + 0.20950011450879527, + 0.0004145854912047351 + ], + [ + 46.60649870370402, + -1.6353155238396694e-06, + 9.180437662036974, + 9.78426329512249, + 0.008007811315410574, + 0.20949986000972975, + 0.0004148399902702652 + ], + [ + 46.606498676534216, + -1.5838199728230672e-06, + 9.180437665433198, + 9.784263293941384, + 0.008007819816494616, + 0.20949986441841847, + 0.00041483558158154855 + ], + [ + 46.606497717817206, + 2.2877281240271492e-07, + 9.180437785272826, + 9.78426325675045, + 0.00800811877812817, + 0.2095000196062235, + 0.0004146803937765123 + ], + [ + 46.60649704982441, + 1.4917045074574312e-06, + 9.180437868771923, + 9.784263230842436, + 0.008008327070007067, + 0.20950012772069207, + 0.0004145722793079502 + ], + [ + 46.606497288790905, + 1.0400856555853279e-06, + 9.180437838901108, + 9.784263239930718, + 0.008008252571050391, + 0.20950008905582454, + 0.0004146109441754785 + ], + [ + 46.60649824929441, + -7.754812147093082e-07, + 9.18043771883817, + 9.784263276787406, + 0.00800795311589145, + 0.20949993362533334, + 0.00041476637466664743 + ], + [ + 46.60649823619754, + -7.505909868362612e-07, + 9.180437720475283, + 9.784263276150657, + 0.008007957220093951, + 0.2094999357508708, + 0.0004147642491291843 + ], + [ + 46.606497770218816, + 1.3048134326802498e-07, + 9.18043777872262, + 9.784263258001877, + 0.008008102558629954, + 0.20950001118881728, + 0.0004146888111827337 + ], + [ + 46.60649700807519, + 1.5714322099159524e-06, + 9.180437873990574, + 9.7842632284281, + 0.008008340209712934, + 0.20950013454576902, + 0.00041456545423095725 + ], + [ + 46.606496583140114, + 2.3748708395386135e-06, + 9.180437927107455, + 9.784263211906262, + 0.008008472706914987, + 0.20950020332736455, + 0.00041449667263545334 + ], + [ + 46.60649783113394, + 1.583229995886425e-08, + 9.180437771108226, + 9.784263259845119, + 0.008008083641154358, + 0.20950000137448946, + 0.00041469862551056996 + ], + [ + 46.60649809582899, + -4.844271226113281e-07, + 9.180437738021345, + 9.784263269928521, + 0.008008001117151504, + 0.2094999585377368, + 0.0004147414622631912 + ], + [ + 46.60649828045148, + -8.332882538450782e-07, + 9.180437714943533, + 9.784263276896157, + 0.008007943607294359, + 0.20949992867683526, + 0.0004147713231647475 + ], + [ + 46.60649728956452, + 1.040100445293504e-06, + 9.180437838804401, + 9.784263238483291, + 0.008008252571421336, + 0.20950008905697798, + 0.00041461094302203046 + ], + [ + 46.60649725519809, + 1.1051965006356195e-06, + 9.180437843100206, + 9.784263237028792, + 0.008008263303067734, + 0.20950009462818744, + 0.0004146053718125696 + ], + [ + 46.60649694897469, + 1.6842917798384254e-06, + 9.18043788137813, + 9.784263225013882, + 0.008008358826487339, + 0.2095001442148504, + 0.0004145557851496235 + ], + [ + 46.60649804388783, + -3.8543885540288547e-07, + 9.180437744513991, + 9.784263267127587, + 0.008008017428651691, + 0.20949996700956236, + 0.0004147329904376395 + ], + [ + 46.6064988904328, + -1.9856187905322766e-06, + 9.180437638695869, + 9.78426329963166, + 0.008007753583306786, + 0.20949983002372172, + 0.000414869976278262 + ], + [ + 46.60649745896496, + 7.206706434241152e-07, + 9.180437817629347, + 9.784263244208583, + 0.008008199891853007, + 0.20950006171180485, + 0.0004146382881951441 + ], + [ + 46.606497324494086, + 9.750077484474133e-07, + 9.180437834438207, + 9.784263238891613, + 0.008008241838765548, + 0.2095000834840493, + 0.0004146165159507036 + ], + [ + 46.60649646564599, + 2.5987689714181554e-06, + 9.180437941794223, + 9.784263205589827, + 0.00800850962118684, + 0.20950022249818048, + 0.00041447750181952084 + ], + [ + 46.6064986858632, + -1.5982343569723935e-06, + 9.180437664267075, + 9.78426329107983, + 0.008007817431149152, + 0.20949986318337144, + 0.00041483681662855126 + ], + [ + 46.60649865386565, + -1.5376097156180222e-06, + 9.180437668266764, + 9.78426328970991, + 0.008007827437695384, + 0.20949986837464207, + 0.0004148316253579177 + ], + [ + 46.606497700420526, + 2.6501541584782505e-07, + 9.180437787447403, + 9.784263252723896, + 0.008008124755996947, + 0.20950002270878382, + 0.0004146772912161743 + ], + [ + 46.606497033191964, + 1.5265037309328705e-06, + 9.180437870850966, + 9.784263226844, + 0.008008332809663586, + 0.20950013070006393, + 0.00041456929993607705 + ], + [ + 46.60649628294743, + 2.9449343148648563e-06, + 9.180437964631533, + 9.784263197755132, + 0.008008566736422513, + 0.20950025213622792, + 0.00041444786377208605 + ], + [ + 46.6064982280787, + -7.32017080176375e-07, + 9.18043772149013, + 9.784263272611618, + 0.008007960280268664, + 0.20949993734227246, + 0.00041476265772755173 + ], + [ + 46.60649823635927, + -7.475397174838079e-07, + 9.180437720455053, + 9.784263272799839, + 0.008007957723929171, + 0.20949993601216688, + 0.0004147639878331324 + ], + [ + 46.60649841590032, + -1.0867597337899851e-06, + 9.180437698012422, + 9.784263279536441, + 0.0080079018301324, + 0.20949990697990414, + 0.00041479302009588323 + ], + [ + 46.60649698923789, + 1.61039843394465e-06, + 9.180437876345227, + 9.784263224345734, + 0.008008346637097638, + 0.20950013788110727, + 0.00041456211889272443 + ], + [ + 46.60649661979322, + 2.3089381264343755e-06, + 9.180437922525812, + 9.784263209962853, + 0.008008461832567352, + 0.20950019768283815, + 0.00041450231716184726 + ], + [ + 46.60649779967773, + 7.865449203249776e-08, + 9.180437775040252, + 9.784263255275183, + 0.008008093990104728, + 0.20950000674681207, + 0.00041469325318793345 + ], + [ + 46.6064981088988, + -5.057783175491057e-07, + 9.180437736387619, + 9.784263267076401, + 0.008007997596003026, + 0.2094999567098404, + 0.00041474329015960215 + ], + [ + 46.60649869080076, + -1.605643030617551e-06, + 9.180437663649876, + 9.784263289344896, + 0.00800781625058924, + 0.20949986255635283, + 0.0004148374436471897 + ], + [ + 46.606497276377524, + 1.0683844058851737e-06, + 9.180437840452777, + 9.784263234619722, + 0.008008257236872462, + 0.20950009147738133, + 0.000414608522618655 + ], + [ + 46.60649725857444, + 1.1021709173270236e-06, + 9.180437842678161, + 9.784263233801882, + 0.00800826280419661, + 0.20950009436929815, + 0.0004146056307018475 + ], + [ + 46.606497105072684, + 1.3925552496784653e-06, + 9.180437861865887, + 9.784263227680075, + 0.008008310674089147, + 0.20950011923025502, + 0.00041458076974497116 + ], + [ + 46.606498075494116, + -4.418319517101809e-07, + 9.180437740563208, + 9.784263264990566, + 0.0080080081292128, + 0.20949996218179162, + 0.0004147378182083895 + ], + [ + 46.60649821702883, + -7.092160720760419e-07, + 9.180437722871373, + 9.78426327027336, + 0.008007964054388342, + 0.20949993929721666, + 0.00041476070278333816 + ], + [ + 46.60649745169078, + 7.377761365462386e-07, + 9.180437818538627, + 9.784263240573809, + 0.0080082027129475, + 0.20950006317459266, + 0.00041463682540734866 + ], + [ + 46.60649731622002, + 9.94006120356566e-07, + 9.180437835472471, + 9.784263235215592, + 0.008008244972428854, + 0.20950008511066506, + 0.0004146148893349621 + ], + [ + 46.606496560486654, + 2.4228357411287463e-06, + 9.18043792993914, + 9.784263205892207, + 0.008008480605903794, + 0.20950020743623887, + 0.0004144925637611431 + ], + [ + 46.606498687631436, + -1.5982207598934159e-06, + 9.180437664046037, + 9.784263287791683, + 0.008007817433369466, + 0.20949986318463426, + 0.0004148368153657498 + ], + [ + 46.60649862688275, + -1.4832424696522148e-06, + 9.180437671639625, + 9.78426328531098, + 0.008007836404510502, + 0.20949987302921458, + 0.0004148269707854211 + ], + [ + 46.60649770505394, + 2.596145040792337e-07, + 9.180437786868229, + 9.784263249544379, + 0.008008123848307937, + 0.20950002223993586, + 0.0004146777600641715 + ], + [ + 46.60649701946472, + 1.5558109993270311e-06, + 9.18043787256688, + 9.78426322295756, + 0.008008337643384541, + 0.20950013320910155, + 0.0004145667908984542 + ], + [ + 46.60649730817419, + 1.0101832853440732e-06, + 9.180437836478196, + 9.7842632339381, + 0.00800824762864804, + 0.20950008649619759, + 0.0004146135038024268 + ], + [ + 46.606498242554956, + -7.560284904178761e-07, + 9.180437719680603, + 9.784263269815131, + 0.008007956320220205, + 0.2094999352852823, + 0.0004147647147177039 + ], + [ + 46.60649823622671, + -7.439317167755792e-07, + 9.18043772047163, + 9.784263269437327, + 0.008007958319592196, + 0.20949993632119937, + 0.00041476367880063486 + ], + [ + 46.60649812993105, + -5.427756730916613e-07, + 9.180437733758593, + 9.78426326512512, + 0.008007991524605608, + 0.20949995354860745, + 0.00041474645139256066 + ], + [ + 46.60649696890725, + 1.652188261417128e-06, + 9.180437878886568, + 9.78426322020526, + 0.00800835352955489, + 0.2095001414587357, + 0.00041455854126431124 + ], + [ + 46.60649765397473, + 3.572801521087087e-07, + 9.180437793253136, + 9.784263246469916, + 0.008008139948905387, + 0.20950003060206346, + 0.0004146693979365526 + ], + [ + 46.60649782607278, + 3.211058563510789e-08, + 9.180437771740875, + 9.784263252939347, + 0.008008086312330943, + 0.20950000276006314, + 0.00041469723993685256 + ], + [ + 46.60649812116634, + -5.256124211026508e-07, + 9.180437734854179, + 9.784263264192804, + 0.0080079943251257, + 0.20949995501192792, + 0.00041474498807208366 + ], + [ + 46.606497844645745, + -2.662537581738248e-09, + 9.180437769419258, + 9.784263253318116, + 0.008008080584724285, + 0.20949999978779438, + 0.00041470021220560985 + ], + [ + 46.60649726722834, + 1.0890362176900596e-06, + 9.180437841596436, + 9.784263230910872, + 0.00800826064357486, + 0.20950009324535723, + 0.0004146067546427769 + ], + [ + 46.60649736672776, + 9.011119407854721e-07, + 9.180437829159011, + 9.78426323457695, + 0.00800822966062418, + 0.20950007716412308, + 0.0004146228358769062 + ], + [ + 46.60649720509651, + 1.206821886279954e-06, + 9.180437849362917, + 9.784263228184116, + 0.008008280041373009, + 0.20950010332678665, + 0.00041459667321337923 + ], + [ + 46.606498104566626, + -4.934346234778665e-07, + 9.180437736929154, + 9.784263262755223, + 0.008007999619789225, + 0.20949995776425628, + 0.0004147422357437295 + ], + [ + 46.60649820388877, + -6.810191272038143e-07, + 9.180437724513883, + 9.784263266409823, + 0.008007968705441092, + 0.2094999417111798, + 0.00041475828882020374 + ], + [ + 46.60649743610492, + 7.705964205173609e-07, + 9.180437820486858, + 9.784263236616209, + 0.00800820812663688, + 0.20950006598454718, + 0.0004146340154528205 + ], + [ + 46.60649732107017, + 9.88194901705396e-07, + 9.180437834866202, + 9.78426323204504, + 0.008008244013765278, + 0.2095000846132263, + 0.00041461538677367257 + ], + [ + 46.606497978167525, + -2.5380433112685795e-07, + 9.180437752729036, + 9.784263257197312, + 0.008008039162509462, + 0.20949997828561454, + 0.0004147217143854609 + ], + [ + 46.60649868701718, + -1.5937029744229838e-06, + 9.18043766412283, + 9.784263284411418, + 0.008007818178340134, + 0.20949986357128828, + 0.0004148364287117252 + ], + [ + 46.60649802733612, + -3.4645162853667485e-07, + 9.18043774658296, + 9.784263258791666, + 0.008008023882546478, + 0.20949997035540774, + 0.0004147296445922808 + ], + [ + 46.60649768243833, + 3.057234069895978e-07, + 9.180437789695187, + 9.784263245316238, + 0.008008131453131524, + 0.2095000261853347, + 0.0004146738146653246 + ], + [ + 46.60649700741989, + 1.5819380922947996e-06, + 9.18043787407249, + 9.784263219135717, + 0.008008341952616661, + 0.20950013544599233, + 0.0004145645540076572 + ], + [ + 46.60649784918934, + -9.170115761759244e-09, + 9.180437768851313, + 9.784263251411616, + 0.008008079509969429, + 0.20949999923161228, + 0.00041470076838772855 + ], + [ + 46.60649824906621, + -7.64981588087114e-07, + 9.180437718866704, + 9.784263266710367, + 0.008007954844008352, + 0.2094999345186347, + 0.00041476548136529684 + ], + [ + 46.606498084214785, + -4.531739061771855e-07, + 9.180437739473133, + 9.784263260183124, + 0.008008006285363472, + 0.2094999612200412, + 0.000414738779958818 + ], + [ + 46.60649805080598, + -3.898404422371682e-07, + 9.180437743649232, + 9.784263258717804, + 0.0080080167430161, + 0.20949996663841108, + 0.0004147333615889191 + ], + [ + 46.606496950350234, + 1.6906256532096239e-06, + 9.180437881206199, + 9.784263216132704, + 0.008008359869241874, + 0.20950014474951995, + 0.0004145552504800595 + ], + [ + 46.60649728681566, + 1.0547699175948607e-06, + 9.180437839148025, + 9.784263228904337, + 0.008008255010777635, + 0.20950009032190908, + 0.0004146096780909009 + ], + [ + 46.60649784055316, + 8.09181465455607e-09, + 9.18043776993084, + 9.784263250142644, + 0.00800808235109143, + 0.2095000007034438, + 0.00041469929655620243 + ], + [ + 46.606498241022294, + -7.488220998697467e-07, + 9.1804377198722, + 9.784263265447045, + 0.008007957516745674, + 0.2094999359054907, + 0.0004147640945092947 + ], + [ + 46.60649781314047, + 6.025197069449526e-08, + 9.18043777335743, + 9.784263248746713, + 0.008008090958319926, + 0.2095000051701491, + 0.0004146948298509131 + ], + [ + 46.60649725643217, + 1.1128020241231398e-06, + 9.180437842945969, + 9.784263227137956, + 0.008008264563853049, + 0.20950009528011784, + 0.00041460471988214955 + ], + [ + 46.60649736849511, + 9.011270299906829e-07, + 9.180437828938098, + 9.784263231288978, + 0.008008229662470872, + 0.20950007716516933, + 0.0004146228348306869 + ], + [ + 46.60649726638126, + 1.0943232784394426e-06, + 9.180437841702322, + 9.784263227192426, + 0.008008261487559539, + 0.20950009369571343, + 0.00041460630428660024 + ], + [ + 46.60649813716678, + -5.517050719589586e-07, + 9.180437732854134, + 9.78426326065501, + 0.008007990010417548, + 0.20949995277585567, + 0.00041474722414434786 + ], + [ + 46.60649788663672, + -7.787987445815776e-08, + 9.180437764170394, + 9.784263250774371, + 0.008008068184771086, + 0.20949999335087555, + 0.000414706649124469 + ], + [ + 46.60649742187251, + 8.008583601126078e-07, + 9.180437822265919, + 9.784263232710588, + 0.008008213118474475, + 0.20950006857513165, + 0.00041463142486833056 + ], + [ + 46.60649673303457, + 2.1032284262509204e-06, + 9.180437908370662, + 9.784263205966349, + 0.008008427951762313, + 0.20950018008221494, + 0.0004145199177850621 + ], + [ + 46.60649805660079, + -3.987202654538153e-07, + 9.180437742924886, + 9.784263256866472, + 0.008008015259380262, + 0.20949996587595462, + 0.0004147341240453508 + ], + [ + 46.6064986841829, + -1.5849881577947208e-06, + 9.180437664477122, + 9.784263280945288, + 0.008007819615594242, + 0.20949986431742124, + 0.0004148356825787518 + ], + [ + 46.60649812018261, + -5.185858053444731e-07, + 9.180437734977161, + 9.784263258987938, + 0.00800799549858945, + 0.20949995562129994, + 0.00041474437870005844 + ], + [ + 46.60649766697677, + 3.3830848396007137e-07, + 9.180437791627892, + 9.784263241363716, + 0.008008136828776501, + 0.2095000289747269, + 0.0004146710252731279 + ], + [ + 46.60649669094048, + 2.1835922414240898e-06, + 9.180437913632428, + 9.784263203554586, + 0.008008441198257495, + 0.2095001869588161, + 0.0004145130411839118 + ], + [ + 46.606497851878544, + -1.0897401310067177e-08, + 9.180437768515171, + 9.784263248158918, + 0.008008079220373986, + 0.20949999907927486, + 0.00041470092072513654 + ], + [ + 46.606498257344796, + -7.772753170786217e-07, + 9.180437717831886, + 9.784263263673392, + 0.008007952816778224, + 0.2094999334662098, + 0.00041476653379020285 + ], + [ + 46.60649867122734, + -1.5595130302989663e-06, + 9.180437666096571, + 9.784263279461957, + 0.008007823833120065, + 0.20949986650300753, + 0.000414833496992501 + ], + [ + 46.606498035165274, + -3.569179235598511e-07, + 9.180437745604332, + 9.784263254759582, + 0.008008022173487983, + 0.20949996945623126, + 0.00041473054376874665 + ], + [ + 46.60649693229513, + 1.7281148072116162e-06, + 9.180437883463103, + 9.784263212078962, + 0.008008366052500932, + 0.20950014795916044, + 0.0004145520408395504 + ], + [ + 46.60649723220549, + 1.1613627577747233e-06, + 9.18043784597431, + 9.784263223441467, + 0.008008272576654025, + 0.2095000994410939, + 0.00041460055890612943 + ], + [ + 46.60649785849177, + -2.246403909178353e-08, + 9.180437767688526, + 9.784263247478846, + 0.008008077311413724, + 0.20949999808748385, + 0.00041470191251617776 + ], + [ + 46.606498274782055, + -8.092851196423414e-07, + 9.180437715652236, + 9.784263263391981, + 0.00800794754600462, + 0.2094999307292408, + 0.00041476927075920016 + ], + [ + 46.60649780222208, + 8.424827008905106e-08, + 9.180437774722229, + 9.784263244969651, + 0.008008094916742174, + 0.20950000722462514, + 0.00041469277537488846 + ], + [ + 46.60649723807384, + 1.1508646680414009e-06, + 9.180437845240759, + 9.784263223072202, + 0.008008270841988312, + 0.2095000985388778, + 0.0004146014611222134 + ], + [ + 46.60649636456443, + 2.8023774765208186e-06, + 9.180437954429436, + 9.784263189169424, + 0.008008543258616484, + 0.20950023993868605, + 0.0004144600613139548 + ], + [ + 46.6064973145738, + 1.0065747375375226e-06, + 9.180437835678266, + 9.784263225695536, + 0.008008247015965923, + 0.20950008618290647, + 0.0004146138170935284 + ], + [ + 46.60649872011562, + -1.650360455241435e-06, + 9.180437659985538, + 9.78426327977552, + 0.008007808852851076, + 0.2094998587227084, + 0.00041484127729160666 + ], + [ + 46.60649787392283, + -5.048827659231237e-08, + 9.180437765759638, + 9.78426324692704, + 0.008008072694454, + 0.2094999956906938, + 0.00041470430930623205 + ], + [ + 46.60649740794505, + 8.305440054193936e-07, + 9.18043782400686, + 9.784263228816563, + 0.00800821801509064, + 0.20950007111663052, + 0.00041462888336947403 + ], + [ + 46.60649634710142, + 2.836169994074148e-06, + 9.180437956612318, + 9.78426318771584, + 0.008008548802840557, + 0.2095002428254414, + 0.00041445717455860115 + ], + [ + 46.60649804077052, + -3.654392945593176e-07, + 9.18043774490368, + 9.78426325290086, + 0.008008020748450433, + 0.20949996872422874, + 0.00041473127577125815 + ], + [ + 46.606498680780156, + -1.5751982360689018e-06, + 9.180437664902476, + 9.784263277456786, + 0.008007821230142497, + 0.20949986515564736, + 0.0004148348443526378 + ], + [ + 46.60649818874239, + -6.44835705297453e-07, + 9.180437726407197, + 9.7842632582753, + 0.008007974655837056, + 0.20949994480581285, + 0.00041475519418714374 + ], + [ + 46.606497649487245, + 3.7472775322250303e-07, + 9.180437793814088, + 9.784263237332464, + 0.008008142836476252, + 0.2095000320927681, + 0.00041466790723190594 + ], + [ + 46.606496890075924, + 1.8105093145601937e-06, + 9.180437888740505, + 9.784263207868191, + 0.008008379636112506, + 0.20950015501485486, + 0.0004145449851451615 + ], + [ + 46.606497845685396, + 4.16462652837651e-09, + 9.180437769289323, + 9.784263244565706, + 0.008008081704571157, + 0.20950000036731103, + 0.00041469963268895476 + ], + [ + 46.60649826541873, + -7.891815592446211e-07, + 9.180437716822661, + 9.784263260627945, + 0.008007950853454168, + 0.20949993244703125, + 0.0004147675529687387 + ], + [ + 46.606498828395075, + -1.8532389052375782e-06, + 9.180437646450619, + 9.784263282136497, + 0.008007775387525373, + 0.20949984135730862, + 0.0004148586426914043 + ], + [ + 46.60649800562338, + -2.9771538936723404e-07, + 9.180437749297079, + 9.784263250264253, + 0.00800803193745542, + 0.20949997452455105, + 0.0004147254754489556 + ], + [ + 46.60649691460671, + 1.7649112805393318e-06, + 9.180437885674161, + 9.784263208038809, + 0.008008372121509587, + 0.20950015110950532, + 0.000414548890494669 + ], + [ + 46.60649725170873, + 1.127848442316887e-06, + 9.180437843536403, + 9.78426322083864, + 0.008008267048521738, + 0.2095000965717972, + 0.00041460342820283277 + ], + [ + 46.6064978846551, + -6.856699029543977e-08, + 9.180437764418107, + 9.78426324513116, + 0.008008069707391742, + 0.20949999414059448, + 0.00041470585940551623 + ], + [ + 46.606499006312234, + -2.1888082786513674e-06, + 9.180437624210967, + 9.78426328822961, + 0.008007720057284617, + 0.20949981262878745, + 0.0004148873712125779 + ], + [ + 46.60649780052856, + 9.080533285388111e-08, + 9.180437774933928, + 9.784263241548738, + 0.008008095998819152, + 0.20950000778488526, + 0.0004146922151147239 + ], + [ + 46.60649722145278, + 1.1856433558735211e-06, + 9.180437847318398, + 9.784263219073273, + 0.008008276578496662, + 0.2095001015164802, + 0.0004145984835197961 + ], + [ + 46.60649642614621, + 2.6893186408914586e-06, + 9.18043794673172, + 9.784263188187929, + 0.0080085245679903, + 0.20950023025086947, + 0.0004144697491305287 + ], + [ + 46.60649737127089, + 9.027493359765292e-07, + 9.180437828591137, + 9.784263224526343, + 0.008008229892741877, + 0.20950007729424458, + 0.00041462270575543924 + ], + [ + 46.606498535514724, + -1.2979993495635107e-06, + 9.18043768306066, + 9.784263269267951, + 0.008007866940900077, + 0.20949988889011412, + 0.00041481110988590404 + ], + [ + 46.60649788013054, + -5.8868919789856946e-08, + 9.180437764983683, + 9.784263243811916, + 0.008008071312035134, + 0.2094999949714896, + 0.00041470502851041904 + ], + [ + 46.606497394205164, + 8.598754927261058e-07, + 9.180437825724356, + 9.784263224929331, + 0.008008222853309578, + 0.2095000736278998, + 0.00041462637210020094 + ], + [ + 46.60649722651694, + 1.1770779914040299e-06, + 9.180437846685386, + 9.784263218260588, + 0.00800827515981897, + 0.20950010078642967, + 0.00041459921357032454 + ], + [ + 46.60649804543163, + -3.7089490111289504e-07, + 9.180437744321047, + 9.784263249724777, + 0.008008019848673931, + 0.20949996825706824, + 0.00041473174293179974 + ], + [ + 46.60649817614574, + -6.178301444512393e-07, + 9.180437727981783, + 9.784263254596866, + 0.008007979120408598, + 0.20949994712224634, + 0.0004147528777536669 + ], + [ + 46.606498196289344, + -6.557472970611971e-07, + 9.180437725463834, + 9.78426325521105, + 0.008007972857327, + 0.20949994386957077, + 0.0004147561304292197 + ], + [ + 46.60649763148254, + 4.121214929637311e-07, + 9.18043779606469, + 9.784263233280797, + 0.008008149004879322, + 0.2095000352943476, + 0.0004146647056523975 + ], + [ + 46.606497376847244, + 8.937003001290212e-07, + 9.180437827894105, + 9.784263223248832, + 0.008008228433150905, + 0.20950007652956953, + 0.00041462347043047 + ], + [ + 46.60649784343885, + 1.176708128785224e-08, + 9.180437769570151, + 9.784263241123499, + 0.008008082958863086, + 0.20950000101800176, + 0.0004146989819982547 + ], + [ + 46.606498273808626, + -8.016846259061954e-07, + 9.180437715773929, + 9.784263257594136, + 0.008007948791682337, + 0.2094999313767672, + 0.00041476862323280866 + ], + [ + 46.60649880138225, + -1.7988180309186655e-06, + 9.18043764982722, + 9.78426327773933, + 0.008007784362643365, + 0.20949984601621172, + 0.0004148539837882989 + ], + [ + 46.6064979599878, + -2.0808754665199503e-07, + 9.180437755001526, + 9.78426324514671, + 0.008008046719675543, + 0.20949998219783672, + 0.0004147178021633137 + ], + [ + 46.60649726057055, + 1.1142799132686843e-06, + 9.180437842428683, + 9.784263217996381, + 0.008008264811518825, + 0.20950009541141293, + 0.0004146045885870638 + ], + [ + 46.60649728151807, + 1.0748508027885448e-06, + 9.180437839810248, + 9.784263218633813, + 0.008008258305407905, + 0.20950009203239395, + 0.0004146079676060493 + ], + [ + 46.60649790895408, + -1.1114528548768487e-07, + 9.180437761380743, + 9.784263242711358, + 0.008008062684768502, + 0.20949999049543633, + 0.00041470950456369386 + ], + [ + 46.60649826297832, + -7.801996943104725e-07, + 9.180437717127713, + 9.784263256165318, + 0.008007952338983043, + 0.2094999332212306, + 0.00041476677876942146 + ], + [ + 46.60649779066562, + 1.12806905285375e-07, + 9.180437776166803, + 9.784263237811867, + 0.008008099628245958, + 0.2095000096683887, + 0.0004146903316113067 + ], + [ + 46.60649727281562, + 1.0919416135563233e-06, + 9.180437840898051, + 9.784263217658637, + 0.00800826114323024, + 0.20950009350236248, + 0.00041460649763751467 + ], + [ + 46.606496499653424, + 2.553713246547439e-06, + 9.180437937543328, + 9.784263187668854, + 0.00800850220122836, + 0.20950021863867843, + 0.00041448136132156535 + ], + [ + 46.6064974232309, + 8.078794793110878e-07, + 9.180437822096144, + 9.784263223173978, + 0.00800821424659099, + 0.20950006917242395, + 0.0004146308275760492 + ], + [ + 46.60649808854857, + -4.496443603576964e-07, + 9.180437738931436, + 9.784263248628065, + 0.008008006864355509, + 0.20949996152341732, + 0.0004147384765826985 + ], + [ + 46.606497881521705, + -5.814308966455436e-08, + 9.180437764809794, + 9.784263240509866, + 0.008008071432459603, + 0.20949999503341202, + 0.00041470496658799856 + ], + [ + 46.60649750700084, + 6.500273172216927e-07, + 9.1804378116249, + 9.784263225896625, + 0.008008188271525163, + 0.20950005566952062, + 0.0004146443304793846 + ], + [ + 46.606497304660735, + 1.032708458218843e-06, + 9.180437836917418, + 9.784263217919388, + 0.00800825134645572, + 0.20950008842324178, + 0.00041461157675824257 + ], + [ + 46.60649804748103, + -3.71412744529871e-07, + 9.180437744064884, + 9.784263246447459, + 0.00800801976329829, + 0.20949996821280792, + 0.00041473178719207097 + ], + [ + 46.606497277488174, + 1.0844036755798877e-06, + 9.180437840313994, + 9.784263216543733, + 0.008008259870615935, + 0.20950009285526244, + 0.000414607144737548 + ], + [ + 46.606497277488174, + 1.0844036755798877e-06, + 14.180437840313994, + 9.784263216543733, + 0.008008259870615935, + 0.20950009285526244, + 0.000414607144737548 + ], + [ + 46.60649788546581, + -6.47440719188519e-08, + 14.180437764316787, + 9.784263239806974, + 0.008008070345578388, + 0.2094999944728316, + 0.0004147055271683894 + ], + [ + 46.606498740269295, + -1.6804795747317112e-06, + 14.180437657466355, + 9.784263272573066, + 0.008007803921441056, + 0.20949985615110345, + 0.00041484384889657345 + ], + [ + 46.60649858954889, + -1.3954178730449323e-06, + 14.180437676306408, + 9.784263266623242, + 0.008007850931863823, + 0.20949988055220367, + 0.00041481944779634447 + ], + [ + 46.606497582859504, + 5.078483041374471e-07, + 14.180437802142581, + 9.784263227596664, + 0.008008164794979778, + 0.20950004349713977, + 0.00041465650286023664 + ], + [ + 46.60649699107946, + 1.6266961320739908e-06, + 14.180437876115088, + 9.784263204637801, + 0.008008349285687956, + 0.20950013927302114, + 0.0004145607269788678 + ], + [ + 46.60649651227182, + 2.531984608112088e-06, + 14.180437935966042, + 9.784263186030149, + 0.008008498546967892, + 0.2095002167747617, + 0.0004144832252383309 + ], + [ + 46.60649828116795, + -8.117784655853182e-07, + 14.180437714854019, + 9.78426325405963, + 0.00800794714906574, + 0.20949993051604832, + 0.00041476948395169035 + ], + [ + 46.60649815007462, + -5.638257251729758e-07, + 14.180437731240687, + 9.78426324887231, + 0.008007988042665911, + 0.2094999517420343, + 0.0004147482579657057 + ], + [ + 46.606498127178774, + -5.20349432351113e-07, + 14.180437734102671, + 9.784263247795767, + 0.008007995268637167, + 0.20949995547387862, + 0.0004147445261213882 + ], + [ + 46.6064967112527, + 2.1564863752496382e-06, + 14.180437911093428, + 9.784263193045263, + 0.008008436635021673, + 0.20950018462591607, + 0.00041451537408393496 + ], + [ + 46.6064969235458, + 1.755292981629538e-06, + 14.18043788455679, + 9.784263201103283, + 0.008008370462288548, + 0.20950015027853033, + 0.0004145497214696668 + ], + [ + 46.60649796907193, + -2.2097887980488651e-07, + 14.180437753866023, + 9.784263241215633, + 0.008008044575037761, + 0.2094999810949326, + 0.0004147189050673932 + ], + [ + 46.60649807412782, + -4.1944833840700777e-07, + 14.180437740734035, + 9.784263245137144, + 0.008008011849474424, + 0.2094999641021636, + 0.0004147358978364261 + ], + [ + 46.60649825309769, + -7.575942906943548e-07, + 14.180437718362803, + 9.784263251857412, + 0.008007956140165515, + 0.2094999351616773, + 0.0004147648383227019 + ], + [ + 46.606497164521414, + 1.3004238493622992e-06, + 14.180437854434839, + 9.784263209721274, + 0.008008295468031232, + 0.20950011133872362, + 0.00041458866127638415 + ], + [ + 46.606497627223796, + 4.258540791674311e-07, + 14.180437796597046, + 9.784263227434794, + 0.008008151243399082, + 0.2095000364670461, + 0.00041466353295389647 + ], + [ + 46.606497616455904, + 4.464084114633361e-07, + 14.180437797943032, + 9.784263226821006, + 0.008008154608439186, + 0.20950003822688182, + 0.0004146617731181719 + ], + [ + 46.60649824718493, + -7.458006568864818e-07, + 14.180437719101905, + 9.784263251013355, + 0.008007958023347268, + 0.2094999361612272, + 0.00041476383877280453 + ], + [ + 46.60649782559906, + 5.134919081845635e-08, + 14.180437771800138, + 9.784263234578106, + 0.008008089496375116, + 0.20950000441053898, + 0.0004146955894610274 + ], + [ + 46.606497307673536, + 1.030617119186323e-06, + 14.18043783654083, + 9.784263214431524, + 0.008008250982458083, + 0.20950008824235655, + 0.00041461175764344034 + ], + [ + 46.606497636056126, + 4.099662771611715e-07, + 14.180437795493003, + 9.784263226966454, + 0.008008148626160474, + 0.20950003510793364, + 0.00041466489206639306 + ], + [ + 46.60649742441276, + 8.10228560233046e-07, + 14.180437821948424, + 9.784263218636323, + 0.008008214615794882, + 0.20950006937530136, + 0.0004146306246986594 + ], + [ + 46.60649879932741, + -1.7887644618686897e-06, + 14.180437650084093, + 9.784263271491108, + 0.008007786066367137, + 0.20949984687782325, + 0.0004148531221767416 + ], + [ + 46.60649816511598, + -5.897040685001721e-07, + 14.180437729360522, + 9.784263246896337, + 0.00800798379671294, + 0.2094999495287875, + 0.00041475047121249423 + ], + [ + 46.606497198647105, + 1.2375315661343714e-06, + 14.18043785016913, + 9.784263209417883, + 0.008008285111723345, + 0.20950010595919316, + 0.00041459404080685736 + ], + [ + 46.606497161844366, + 1.3072338745300552e-06, + 14.180437854769474, + 9.784263207868817, + 0.008008296597517098, + 0.20950011192336573, + 0.00041458807663428314 + ], + [ + 46.60649818524627, + -6.272602722788045e-07, + 14.180437726844238, + 9.78426324717427, + 0.008007977594869499, + 0.20949994631456428, + 0.00041475368543572214 + ], + [ + 46.60649827975298, + -8.057486484824645e-07, + 14.1804377150309, + 9.784263250650215, + 0.00800794814512181, + 0.209499931031032, + 0.0004147689689680092 + ], + [ + 46.60649787305658, + -3.678807059395045e-08, + 14.180437765867946, + 9.784263234831098, + 0.008008074956674374, + 0.20949999686162968, + 0.00041470313837031823 + ], + [ + 46.60649718506502, + 1.264011786485004e-06, + 14.18043785186689, + 9.784263208089678, + 0.008008289474093285, + 0.20950010822647142, + 0.0004145917735285782 + ], + [ + 46.606496536849086, + 2.4895352577165225e-06, + 14.18043793289388, + 9.784263182966072, + 0.008008491546020373, + 0.2095002131367855, + 0.00041448686321452003 + ], + [ + 46.60649825034206, + -7.495129402774053e-07, + 14.180437718707264, + 9.784263248879158, + 0.00800795742309601, + 0.20949993584915352, + 0.00041476415084650025 + ], + [ + 46.60649809390856, + -4.536183772173921e-07, + 14.18043773826145, + 9.78426324267624, + 0.008008006211192785, + 0.20949996117686034, + 0.00041473882313966846 + ], + [ + 46.60649789594743, + -7.925485519970184e-08, + 14.180437763006589, + 9.7842632349074, + 0.008008067953722348, + 0.20949999322643204, + 0.00041470677356796526 + ], + [ + 46.606497299993585, + 1.0475511729879748e-06, + 14.180437837500818, + 9.784263211719592, + 0.008008253771443354, + 0.20950008969542608, + 0.00041461030457392586 + ], + [ + 46.606497286446086, + 1.073289239209105e-06, + 14.180437839194257, + 9.784263211069495, + 0.008008258008188272, + 0.2095000918932632, + 0.00041460810673680815 + ], + [ + 46.60649791288191, + -1.1076416559016871e-07, + 14.180437760889777, + 9.784263235056551, + 0.008008062759718973, + 0.20949999053419419, + 0.0004147094658058107 + ], + [ + 46.606498064088974, + -3.9645016783445546e-07, + 14.180437741988897, + 9.784263240729496, + 0.008008015622801998, + 0.20949996606833032, + 0.00041473393166968685 + ], + [ + 46.60649817400031, + -6.040914905536221e-07, + 14.18043772824998, + 9.784263244831322, + 0.00800798140165554, + 0.20949994829411445, + 0.00041475170588554385 + ], + [ + 46.60649737356803, + 9.09232869821146e-07, + 14.180437828304015, + 9.784263213788952, + 0.008008230964250032, + 0.20950007785295122, + 0.0004146221470488004 + ], + [ + 46.606497420742016, + 8.202249576003505e-07, + 14.180437822407267, + 9.784263215437624, + 0.008008216283185265, + 0.20950007023040687, + 0.0004146297695931355 + ], + [ + 46.60649796075313, + -2.0049033224303906e-07, + 14.180437754905878, + 9.784263236132325, + 0.008008047956060423, + 0.20949998284697788, + 0.00041471715302212665 + ], + [ + 46.606498813879405, + -1.81304898723059e-06, + 14.180437648265093, + 9.7842632688275, + 0.008007782062092359, + 0.20949984480239786, + 0.00041485519760213333 + ], + [ + 46.60649858065476, + -1.3720243413498067e-06, + 14.180437677418173, + 9.784263259700355, + 0.008007854790438789, + 0.2094998825548215, + 0.0004148174451784818 + ], + [ + 46.60649745737845, + 7.516042469956892e-07, + 14.180437817827713, + 9.784263216213096, + 0.00800820497270741, + 0.2095000643602087, + 0.00041463563979132116 + ], + [ + 46.606496998354366, + 1.6195244921477615e-06, + 14.180437875205724, + 9.784263198337447, + 0.008008348102232103, + 0.20950013865932143, + 0.00041456134067857804 + ], + [ + 46.606497521526634, + 6.306386235051767e-07, + 14.180437809809193, + 9.784263218385782, + 0.00800818501656119, + 0.20950005399985427, + 0.000414646000145701 + ], + [ + 46.606498323775675, + -8.857443150209339e-07, + 14.180437709528062, + 9.784263249122352, + 0.008007934955913915, + 0.2094999241880508, + 0.00041477581194918436 + ], + [ + 46.6064981205795, + -5.014880725313079e-07, + 14.180437734927581, + 9.784263241155323, + 0.008007998321926734, + 0.2094999570785611, + 0.00041474292143892777 + ], + [ + 46.606497568026164, + 5.432411905201046e-07, + 14.180437803996748, + 9.784263219672997, + 0.00800817062457144, + 0.20950004652502738, + 0.000414653474972647 + ], + [ + 46.606496668827326, + 2.2432687212312532e-06, + 14.1804379163966, + 9.78426318482851, + 0.008008450943332608, + 0.20950019205565662, + 0.0004145079443434088 + ], + [ + 46.606496903994284, + 1.7988309324787164e-06, + 14.180437887000734, + 9.784263193771936, + 0.008008377638099402, + 0.20950015400522956, + 0.0004145459947704288 + ], + [ + 46.60649801664011, + -3.0432210378391313e-07, + 14.180437747920008, + 9.784263236469751, + 0.008008030842967721, + 0.20949997396595427, + 0.0004147260340457209 + ], + [ + 46.606498054164774, + -3.7512997805519703e-07, + 14.180437743229424, + 9.784263237787497, + 0.008008019157599371, + 0.2094999678961776, + 0.00041473210382238023 + ], + [ + 46.606497964736086, + -2.0591258465929267e-07, + 14.180437754408011, + 9.784263234178788, + 0.008008047098257365, + 0.2094999823899715, + 0.00041471761002849 + ], + [ + 46.606497191985525, + 1.2550864324352485e-06, + 14.18043785100183, + 9.78426320419933, + 0.008008287990836329, + 0.20950010745835473, + 0.0004145925416452809 + ], + [ + 46.60649767806868, + 3.3631455755275e-07, + 14.180437790241436, + 9.784263222817215, + 0.00800813647802922, + 0.20950002880149213, + 0.0004146711985078765 + ], + [ + 46.60649812382347, + -5.061765808932389e-07, + 14.180437734522089, + 9.784263239836509, + 0.008007997551468068, + 0.2094999566826305, + 0.0004147433173695018 + ], + [ + 46.60649823940665, + -7.245159741901861e-07, + 14.18043772007419, + 9.784263244132964, + 0.008007961532071717, + 0.20949993798382946, + 0.000414762016170558 + ], + [ + 46.60649786387578, + -1.4465183301153716e-08, + 14.180437767015547, + 9.784263229509698, + 0.008008078643051225, + 0.2094999987729399, + 0.00041470122706009193 + ], + [ + 46.606497320018214, + 1.0138618835739928e-06, + 14.180437834997743, + 9.784263208326278, + 0.008008248224689924, + 0.20950008681415344, + 0.0004146131858465715 + ], + [ + 46.606497702545994, + 2.9085238213191903e-07, + 14.180437787181774, + 9.784263222950994, + 0.0080081289827182, + 0.20950002491050285, + 0.0004146750894971516 + ], + [ + 46.606497725010264, + 2.4855060977836475e-07, + 14.180437784373742, + 9.784263223652276, + 0.008008122016804491, + 0.20950002129563583, + 0.00041467870436419097 + ], + [ + 46.606498814911646, + -1.8116428696736973e-06, + 14.180437648136067, + 9.784263265509837, + 0.008007782294508168, + 0.20949984492014515, + 0.00041485507985487407 + ], + [ + 46.60649813596793, + -5.280234328376687e-07, + 14.18043773300403, + 9.78426323919358, + 0.008007993968199538, + 0.20949995480908265, + 0.000414745190917353 + ], + [ + 46.60649718519472, + 1.269542964707004e-06, + 14.180437851850682, + 9.784263202318328, + 0.008008290407993541, + 0.20950010870642818, + 0.00041459129357182377 + ], + [ + 46.60649719867324, + 1.2441916793637107e-06, + 14.180437850165868, + 9.78426320270939, + 0.00800828620089964, + 0.20950010652626436, + 0.0004145934737356546 + ], + [ + 46.606497221431006, + 1.2013105789120333e-06, + 14.180437847321148, + 9.784263203446457, + 0.008008279109141841, + 0.20950010285599557, + 0.00041459714400441283 + ], + [ + 46.60649825029508, + -7.43479218348833e-07, + 14.180437718713131, + 9.784263242932383, + 0.00800795841313554, + 0.20949993636305722, + 0.000414763636942793 + ], + [ + 46.60649784353276, + 2.5602766668270554e-08, + 14.180437769558425, + 9.784263227113959, + 0.00800808524470949, + 0.20950000220264756, + 0.0004146977973524568 + ], + [ + 46.60649738751858, + 8.878595454425744e-07, + 14.180437826560192, + 9.784263209327882, + 0.008008227486937664, + 0.20950007603079118, + 0.00041462396920884245 + ], + [ + 46.606496515813284, + 2.535881151827273e-06, + 14.180437935523356, + 9.784263175575356, + 0.008008499186590837, + 0.20950021710422195, + 0.000414482895778057 + ], + [ + 46.60649765296177, + 3.863284432709766e-07, + 14.180437793379797, + 9.78426321929753, + 0.008008144724930975, + 0.20950003308331336, + 0.00041466691668668994 + ], + [ + 46.60649807638308, + -4.13905958405391e-07, + 14.180437740452133, + 9.7842632354184, + 0.008008012760523665, + 0.20949996457847683, + 0.00041473542152319293 + ], + [ + 46.606497874301084, + -3.175531548065696e-08, + 14.180437765712389, + 9.784263227493705, + 0.008008075786438324, + 0.20949999729269528, + 0.0004147027073047428 + ], + [ + 46.606497421724576, + 8.239685357076308e-07, + 14.180437822284455, + 9.784263209874483, + 0.00800821693567401, + 0.20950007055861194, + 0.0004146294413880694 + ], + [ + 46.60649736386121, + 9.335234272635109e-07, + 14.18043782951737, + 9.784263207473948, + 0.00800823495945656, + 0.20950007992910036, + 0.0004146200708996436 + ], + [ + 46.60649816694993, + -5.845172893720001e-07, + 14.180437729131278, + 9.784263238313326, + 0.008007984633947689, + 0.2094999499704302, + 0.00041475002956979916 + ], + [ + 46.60649797559644, + -2.225826446270745e-07, + 14.180437753050466, + 9.784263230737025, + 0.008008044318353995, + 0.2094999809625412, + 0.0004147190374588337 + ], + [ + 46.60649814532949, + -5.433115284999089e-07, + 14.180437731833834, + 9.784263237145453, + 0.008007991423889535, + 0.20949995349733758, + 0.000414746502662428 + ], + [ + 46.60649771457271, + 2.711571827185469e-07, + 14.180437785678427, + 9.784263220374472, + 0.008008125787166961, + 0.20950002323145422, + 0.0004146767685457563 + ], + [ + 46.60649749080512, + 6.943585039560266e-07, + 14.180437813649378, + 9.784263211557585, + 0.008008195526386895, + 0.20950005945641645, + 0.00041464054358357597 + ], + [ + 46.606498004939276, + -2.7744192908968156e-07, + 14.180437749382607, + 9.784263231257711, + 0.008008035265715401, + 0.20949997625898698, + 0.0004147237410130448 + ], + [ + 46.60649819753827, + -6.413621117867998e-07, + 14.180437725307735, + 9.784263238513091, + 0.008007975261594195, + 0.20949994510726094, + 0.00041475489273907714 + ], + [ + 46.60649857553015, + -1.355756102285615e-06, + 14.18043767805875, + 9.784263252922093, + 0.00800785747408081, + 0.20949988394768423, + 0.00041481605231577496 + ], + [ + 46.60649755554392, + 5.725771177228961e-07, + 14.18043780555703, + 9.784263213452272, + 0.008008175456936913, + 0.20950004903032315, + 0.00041465096967685045 + ], + [ + 46.60649699921274, + 1.6244840377574095e-06, + 14.180437875098427, + 9.784263191788272, + 0.008008348921346385, + 0.20950013908608375, + 0.0004145609139162524 + ], + [ + 46.606497551139604, + 5.812365611974203e-07, + 14.180437806107566, + 9.784263212948959, + 0.008008176869423267, + 0.20950004977040096, + 0.0004146502295990422 + ], + [ + 46.60649877116235, + -1.7249459096807606e-06, + 14.180437653604725, + 9.784263259830055, + 0.008007796601643285, + 0.20949985234454632, + 0.0004148476554536777 + ], + [ + 46.60649809490896, + -4.4637988107213613e-07, + 14.1804377381364, + 9.784263233585124, + 0.008008007409024883, + 0.20949996179639768, + 0.0004147382036023319 + ], + [ + 46.60649750841406, + 6.624744022006885e-07, + 14.180437811448261, + 9.78426321083252, + 0.008008190270096645, + 0.2095000567249706, + 0.00041464327502938926 + ], + [ + 46.60649661370468, + 2.354054735150117e-06, + 14.180437923286933, + 9.784263176121403, + 0.008008469213030061, + 0.20950020154272872, + 0.000414498457271296 + ], + [ + 46.60649690604525, + 1.8015323193827467e-06, + 14.180437886744365, + 9.78426318727241, + 0.008008378081830967, + 0.20950015423618143, + 0.0004145457638185539 + ], + [ + 46.60649834474112, + -9.180621943307236e-07, + 14.180437706907385, + 9.784263242615324, + 0.008007929644476653, + 0.20949992141736906, + 0.0004147785826309288 + ], + [ + 46.60649802151298, + -3.0682242913006605e-07, + 14.1804377473109, + 9.784263229946186, + 0.008008030422314502, + 0.2094999737460385, + 0.00041472625396151103 + ], + [ + 46.60649759554847, + 4.985622180398181e-07, + 14.180437800556462, + 9.784263213384687, + 0.008008163243186647, + 0.20950004269337, + 0.0004146573066299917 + ], + [ + 46.60649670295295, + 2.1861159741376067e-06, + 14.1804379121309, + 9.784263178785597, + 0.008008441535023945, + 0.20950018716771066, + 0.0004145128322893451 + ], + [ + 46.60649776778407, + 1.732956381768454e-07, + 14.180437779027011, + 9.784263219696472, + 0.0080081095959113, + 0.20950001484568945, + 0.0004146851543105568 + ], + [ + 46.6064985585222, + -1.3213934516581838e-06, + 14.180437680184749, + 9.784263250055723, + 0.008007863126709765, + 0.20949988688787463, + 0.00041481311212538454 + ], + [ + 46.60649822253157, + -6.860335291826261e-07, + 14.180437722183578, + 9.784263236900678, + 0.008007967877199975, + 0.20949994128033836, + 0.00041475871966166375 + ], + [ + 46.606497830218224, + 5.574083673423914e-08, + 14.180437771222742, + 9.78426322163249, + 0.008008090220019422, + 0.20950000478303718, + 0.00041469521696283043 + ], + [ + 46.606496972231525, + 1.6778619084857795e-06, + 14.180437878471079, + 9.784263188375657, + 0.008008357710254741, + 0.2095001436540345, + 0.0004145563459655179 + ], + [ + 46.606497757726785, + 1.9311794532891706e-07, + 14.180437780284171, + 9.784263218498742, + 0.008008112864868298, + 0.20950001654359368, + 0.0004146834564063225 + ], + [ + 46.606498236896606, + -7.125818227111935e-07, + 14.18043772038794, + 9.784263236846975, + 0.008007963508535705, + 0.20949993900699893, + 0.00041476099300107467 + ], + [ + 46.60649886953685, + -1.9083255674015433e-06, + 14.18043764130791, + 9.784263261034727, + 0.00800776635759224, + 0.20949983664664656, + 0.0004148633533534401 + ], + [ + 46.606498111469556, + -4.7513182551374565e-07, + 14.180437736066326, + 9.784263231669323, + 0.008008002690252137, + 0.2094999593370027, + 0.00041474066299729533 + ], + [ + 46.60649728400281, + 1.0892923093202048e-06, + 14.180437839499666, + 9.784263199590983, + 0.008008260658351956, + 0.20950009326916377, + 0.0004146067308362303 + ], + [ + 46.60649723564866, + 1.1808730989553647e-06, + 14.180437845543937, + 9.784263197554935, + 0.008008275758408468, + 0.2095001011058511, + 0.0004145988941489184 + ], + [ + 46.606497880380445, + -3.781123141068314e-08, + 14.180437764952464, + 9.784263222291512, + 0.00800807478144073, + 0.20949999677380834, + 0.000414703226191647 + ], + [ + 46.60649828156574, + -7.960136489701842e-07, + 14.180437714804299, + 9.784263237558179, + 0.008007949754039918, + 0.20949993186975518, + 0.00041476813024481416 + ], + [ + 46.60649781611646, + 8.401036001644436e-08, + 14.180437772985456, + 9.784263219477287, + 0.008008094875887682, + 0.20950000720273262, + 0.0004146927972674045 + ], + [ + 46.60649722042871, + 1.210244326021199e-06, + 14.180437847446422, + 9.784263196368766, + 0.008008280600288062, + 0.20950010361918625, + 0.0004145963808137557 + ], + [ + 46.606496457745145, + 2.6522352626093047e-06, + 14.180437942781866, + 9.784263166754808, + 0.008008518372363575, + 0.20950022706825938, + 0.00041447293174062556 + ], + [ + 46.606497475131455, + 7.2907632343902e-07, + 14.18043781560858, + 9.784263205865031, + 0.008008201226921516, + 0.20950006242367294, + 0.00041463757632707735 + ], + [ + 46.60649853724706, + -1.2785898845595668e-06, + 14.18043768284413, + 9.784263246650498, + 0.008007870180712211, + 0.2094998905555161, + 0.00041480944448390463 + ], + [ + 46.60649783352199, + 5.191545135199674e-08, + 14.180437770809762, + 9.78426321933974, + 0.008008089583983555, + 0.20950000445598937, + 0.00041469554401064965 + ], + [ + 46.606497339695665, + 9.855892282807682e-07, + 14.180437832538052, + 9.784263200159172, + 0.00800824355908236, + 0.2095000843877467, + 0.00041461561225330254 + ], + [ + 46.60649734683021, + 9.722997514966072e-07, + 14.180437831646232, + 9.784263200236524, + 0.008008241354949399, + 0.20950008325188577, + 0.0004146167481142264 + ], + [ + 46.60649824385715, + -7.233242772571558e-07, + 14.180437719517863, + 9.784263234699525, + 0.0080079617451805, + 0.2094999380872578, + 0.0004147619127422031 + ], + [ + 46.6064981941609, + -6.292071375438231e-07, + 14.180437725729899, + 9.78426323261251, + 0.008007977262794326, + 0.20949994614996556, + 0.00041475385003446476 + ], + [ + 46.606498119260806, + -4.87449986061077e-07, + 14.18043773509241, + 9.78426322955922, + 0.008008000634831364, + 0.20949995827991977, + 0.0004147417200802163 + ], + [ + 46.606497409250466, + 8.549062351631802e-07, + 14.180437823843704, + 9.784263202036977, + 0.008008222012994372, + 0.20950007320016614, + 0.0004146267998338596 + ], + [ + 46.606497523136824, + 6.398179876039348e-07, + 14.18043780960791, + 9.78426320622456, + 0.008008186536616679, + 0.2095000547917742, + 0.0004146452082257798 + ], + [ + 46.60649804119845, + -3.39407369005705e-07, + 14.18043774485021, + 9.784263226076563, + 0.008008025046708498, + 0.209499970954044, + 0.000414729045956009 + ], + [ + 46.60649802362404, + -3.060188199294589e-07, + 14.180437747047005, + 9.784263225233179, + 0.008008030563531691, + 0.20949997381909252, + 0.00041472618090747983 + ], + [ + 46.60649855816079, + -1.3163391628638876e-06, + 14.180437680229915, + 9.784263245670681, + 0.00800786397398731, + 0.20949988732295405, + 0.0004148126770459542 + ], + [ + 46.60649752591784, + 6.351611635222761e-07, + 14.180437809260281, + 9.784263205731342, + 0.008008185776746637, + 0.20950005438790606, + 0.0004146456120939536 + ], + [ + 46.60649706244133, + 1.5115356828461452e-06, + 14.180437867194847, + 9.784263187646678, + 0.008008330311518506, + 0.20950012942328552, + 0.00041457057671447317 + ], + [ + 46.60649757684806, + 5.392165509078355e-07, + 14.180437802894005, + 9.784263207360757, + 0.008008169939706378, + 0.20950004617304022, + 0.0004146538269597637 + ], + [ + 46.60649809961046, + -4.4889108212468526e-07, + 14.180437737548703, + 9.784263227389848, + 0.00800800699157168, + 0.20949996158154358, + 0.00041473841845641915 + ], + [ + 46.60649809162419, + -4.3358945040917644e-07, + 14.180437738546985, + 9.784263226877622, + 0.008008009521778225, + 0.2094999628964176, + 0.0004147371035824198 + ], + [ + 46.60649747888151, + 7.248824052804406e-07, + 14.180437815139822, + 9.784263203114467, + 0.008008200560831968, + 0.20950006206749186, + 0.0004146379325081344 + ], + [ + 46.60649723450288, + 1.1870338210297093e-06, + 14.180437845687145, + 9.784263193516038, + 0.008008276788635024, + 0.2095001016395145, + 0.00041459836048552204 + ], + [ + 46.606496933665404, + 1.7558994587066342e-06, + 14.180437883291827, + 9.784263181756824, + 0.008008370553899824, + 0.2095001503299339, + 0.00041454967006609815 + ], + [ + 46.606497964832414, + -1.9330648996950676e-07, + 14.180437754395951, + 9.784263221394237, + 0.008008049125009563, + 0.20949998345937682, + 0.0004147165406232221 + ], + [ + 46.60649800825104, + -2.751705879826487e-07, + 14.180437748968622, + 9.78426322285346, + 0.008008035651211188, + 0.2094999764611825, + 0.00041472353881749435 + ], + [ + 46.60649756836215, + 5.565356972977373e-07, + 14.180437803954733, + 9.784263205756227, + 0.008008172803132634, + 0.20950004765634564, + 0.00041465234365437053 + ], + [ + 46.606496878018106, + 1.8617423372946284e-06, + 14.180437890247742, + 9.784263178964475, + 0.008008388069897072, + 0.20950015940269265, + 0.0004145405973073536 + ], + [ + 46.60649786932534, + -1.2077926482093706e-08, + 14.180437766334336, + 9.784263217030599, + 0.00800807902775742, + 0.2094999989770076, + 0.0004147010229923929 + ], + [ + 46.6064986097477, + -1.4116522612189596e-06, + 14.180437673781544, + 9.78426324545243, + 0.008007848243871993, + 0.20949987916086302, + 0.00041482083913697967 + ], + [ + 46.606498143933536, + -5.308712661080963e-07, + 14.180437732008315, + 9.784263227290248, + 0.008007993485545373, + 0.2094999545708169, + 0.00041474542918310794 + ], + [ + 46.60649780252183, + 1.1467841543536571e-07, + 14.180437774684778, + 9.784263213984481, + 0.00800809993875065, + 0.2095000098285773, + 0.00041469017142271115 + ], + [ + 46.60649688192013, + 1.8551545060300097e-06, + 14.18043788975999, + 9.784263178326354, + 0.00800838697781955, + 0.20950015883549186, + 0.00041454116450814115 + ], + [ + 46.60649781088898, + 9.920088280491335e-08, + 14.180437773638886, + 9.784263213967296, + 0.00800809737707629, + 0.2095000085048167, + 0.00041469149518328144 + ], + [ + 46.60649825223206, + -7.349935987561478e-07, + 14.180437718470998, + 9.78426323085977, + 0.0080079598122418, + 0.20949993708816395, + 0.00041476291183608146 + ], + [ + 46.60649866346278, + -1.5122128320936281e-06, + 14.180437667067162, + 9.784263246540652, + 0.008007831677158472, + 0.20949987055662309, + 0.00041482944337691355 + ], + [ + 46.606498091611435, + -4.310115354625054e-07, + 14.180437738548575, + 9.784263224323313, + 0.008008009966051282, + 0.20949996311419256, + 0.00041473688580744256 + ], + [ + 46.60649696144406, + 1.7056079506702803e-06, + 14.180437879819497, + 9.784263180606382, + 0.00800836228993586, + 0.20950014602735872, + 0.0004145539726412662 + ], + [ + 46.60649732780929, + 1.013231649955905e-06, + 14.18043783402384, + 9.784263194528544, + 0.008008248128123105, + 0.20950008676234372, + 0.00041461323765628504 + ], + [ + 46.60649790044604, + -6.916395608680629e-08, + 14.18043776244425, + 9.784263216485767, + 0.008008069610764048, + 0.20949999408966805, + 0.00041470591033196955 + ], + [ + 46.60649832440826, + -8.704819188167606e-07, + 14.180437709448965, + 9.78426323268848, + 0.00800793747980165, + 0.20949992549274002, + 0.0004147745072599843 + ], + [ + 46.606497758929784, + 1.9869927642265443e-07, + 14.180437780133774, + 9.784263210689636, + 0.008008113788026443, + 0.2095000170224207, + 0.00041468297757931626 + ], + [ + 46.60649720990531, + 1.2367163971659423e-06, + 14.180437848761832, + 9.784263189384504, + 0.00800828496475579, + 0.20950010588512977, + 0.0004145941148702173 + ], + [ + 46.60649636217738, + 2.8394786994565978e-06, + 14.180437954727823, + 9.78426315648872, + 0.008008549289761073, + 0.20950024310654167, + 0.00041445689345835375 + ], + [ + 46.606497492895244, + 7.020748955210984e-07, + 14.18043781338809, + 9.784263199970562, + 0.008008196772244557, + 0.2095000601118269, + 0.0004146398881731098 + ], + [ + 46.60649885925704, + -1.8807706913449761e-06, + 14.180437642592867, + 9.7842632525165, + 0.008007770913349718, + 0.20949983900302657, + 0.0004148609969734387 + ], + [ + 46.60649779707295, + 1.2740173685012185e-07, + 14.180437775365878, + 9.784263211351654, + 0.008008102032661195, + 0.209500010920018, + 0.0004146890799820405 + ], + [ + 46.60649733801665, + 9.953420249071507e-07, + 14.180437832747918, + 9.784263193515635, + 0.00800824516690851, + 0.20950008522247937, + 0.00041461477752064465 + ], + [ + 46.60649620779504, + 3.1321034843937915e-06, + 14.18043797402562, + 9.784263149757159, + 0.008008597509455746, + 0.20950026815089262, + 0.00041443184910739577 + ], + [ + 46.60649830950583, + -8.408472613443577e-07, + 14.180437711311772, + 9.784263230650891, + 0.008007942366247323, + 0.2094999280263783, + 0.0004147719736217067 + ], + [ + 46.606498770290585, + -1.7117868144169919e-06, + 14.180437653713675, + 9.784263248285324, + 0.008007798756387897, + 0.2094998534673877, + 0.0004148465326123082 + ], + [ + 46.606498099394905, + -4.433139317746272e-07, + 14.180437737575636, + 9.784263222211854, + 0.008008007913043886, + 0.20949996206053598, + 0.00041473793946403747 + ], + [ + 46.606497388336486, + 9.010214007629953e-07, + 14.18043782645794, + 9.784263194651384, + 0.008008229617401984, + 0.20950007714791175, + 0.00041462285208828726 + ], + [ + 46.606496915278136, + 1.795461105220273e-06, + 14.180437885590234, + 9.784263176245666, + 0.008008377096239062, + 0.2095001537207059, + 0.00041454627929407323 + ], + [ + 46.606498073564445, + -3.9401252068454286e-07, + 14.180437740804441, + 9.784263220744647, + 0.00800801604138596, + 0.2094999662794483, + 0.0004147337205517242 + ], + [ + 46.60649833379249, + -8.858202151943227e-07, + 14.180437708275937, + 9.78426323064856, + 0.008007934941499383, + 0.20949992417620028, + 0.00041477582379973306 + ], + [ + 46.606498691767484, + -1.562358005155575e-06, + 14.180437663529059, + 9.784263244269683, + 0.008007823424237153, + 0.20949986626577535, + 0.00041483373422465355 + ], + [ + 46.606497477575026, + 7.331291809828447e-07, + 14.180437815303119, + 9.784263197287075, + 0.008008201931268848, + 0.2095000627748727, + 0.0004146372251272948 + ], + [ + 46.60649661354934, + 2.3666298437569335e-06, + 14.180437923306323, + 9.784263163833959, + 0.008008471285416954, + 0.2095002026159952, + 0.00041449738400482967 + ], + [ + 46.60649761519745, + 4.7330285254154666e-07, + 14.180437798100309, + 9.784263202257044, + 0.008008159070407358, + 0.20950004053254404, + 0.0004146594674559649 + ], + [ + 46.606498101571546, + -4.4601924209409157e-07, + 14.180437737303546, + 9.784263220886352, + 0.008008007464754777, + 0.20949996182721403, + 0.00041473817278596435 + ], + [ + 46.606498925573014, + -2.003545992485643e-06, + 14.180437634303361, + 9.784263252484442, + 0.008007750681364102, + 0.2094998284965061, + 0.0004148715034938691 + ], + [ + 46.606497447114045, + 7.915164498872608e-07, + 14.180437819110734, + 9.784263195308998, + 0.008008211548392543, + 0.209500067771946, + 0.0004146322280540241 + ], + [ + 46.60649716489729, + 1.3251563041554783e-06, + 14.18043785438783, + 9.784263184292744, + 0.00800829954563337, + 0.20950011345606864, + 0.0004145865439313571 + ], + [ + 46.60649689032633, + 1.8444094722969618e-06, + 14.180437888709198, + 9.784263173504309, + 0.008008385147742528, + 0.20950015790950105, + 0.0004145420904989678 + ], + [ + 46.60649797460942, + -2.0521050312446116e-07, + 14.180437753173814, + 9.784263215192656, + 0.008008047160517716, + 0.20949998243995407, + 0.0004147175600459489 + ], + [ + 46.606498348010284, + -9.109164745165589e-07, + 14.18043770649871, + 9.784263229415545, + 0.008007930813751707, + 0.20949992203186224, + 0.000414777968137769 + ], + [ + 46.606497548195065, + 6.012404405769676e-07, + 14.18043780647561, + 9.784263198397918, + 0.008008180174803056, + 0.20950005148366915, + 0.00041464851633083593 + ], + [ + 46.606497294905594, + 1.0801960871741459e-06, + 14.180437838136791, + 9.78426318849684, + 0.008008259157688682, + 0.20950009248663118, + 0.00041460751336879636 + ], + [ + 46.60649786230376, + 7.77601154303501e-09, + 14.180437767212021, + 9.784263210179578, + 0.008008082303966452, + 0.20950000067996213, + 0.000414699320037864 + ], + [ + 46.60649865687869, + -1.4941698986607724e-06, + 14.180437667890157, + 9.784263240690432, + 0.008007834637543119, + 0.20949987209662613, + 0.00041482790337389407 + ], + [ + 46.60649808515936, + -4.1321249755484855e-07, + 14.180437739355073, + 9.784263218472542, + 0.008008012883070768, + 0.2094999646411194, + 0.00041473535888062027 + ], + [ + 46.60649777540074, + 1.7252921787596425e-07, + 14.180437778074898, + 9.784263206357906, + 0.008008109477990372, + 0.20950001478150404, + 0.0004146852184959529 + ], + [ + 46.60649705684571, + 1.5310361650804618e-06, + 14.180437867894277, + 9.784263178508422, + 0.008008333511880336, + 0.20950013108365825, + 0.00041456891634176834 + ], + [ + 46.606497318499905, + 1.036558594193237e-06, + 14.180437835187501, + 9.784263188441187, + 0.008008251948009198, + 0.20950008875122422, + 0.0004146112487757926 + ], + [ + 46.60649827071912, + -7.63361683714525e-07, + 14.1804377161601, + 9.784263224992555, + 0.008007955133577964, + 0.20949993465975572, + 0.0004147653402442785 + ], + [ + 46.60649825064819, + -7.252846903781443e-07, + 14.180437718668962, + 9.784263224083963, + 0.008007961417041414, + 0.20949993791980034, + 0.000414762080199651 + ], + [ + 46.60649807423663, + -3.915830854422407e-07, + 14.180437740720402, + 9.784263217070382, + 0.008008016472055951, + 0.20949996649353125, + 0.0004147335064687349 + ], + [ + 46.60649690276444, + 1.8231159884666893e-06, + 14.180437887154426, + 9.784263171764252, + 0.008008381665570432, + 0.20950015608679756, + 0.0004145439132024832 + ], + [ + 46.606497759704204, + 2.0330770895027084e-07, + 14.180437780036955, + 9.784263204647026, + 0.008008114547204447, + 0.20950001741946994, + 0.00041468258053007246 + ], + [ + 46.60649792350032, + -1.0616540406129724e-07, + 14.180437759562441, + 9.78426321079401, + 0.008008063508289814, + 0.20949999092219945, + 0.0004147090778005684 + ], + [ + 46.6064981363115, + -5.08334930021249e-07, + 14.180437732961044, + 9.784263218868746, + 0.008007997190860107, + 0.20949995649268754, + 0.00041474350731245644 + ], + [ + 46.60649774506784, + 2.31484678216733e-07, + 14.180437781866502, + 9.784263203574422, + 0.008008119197513498, + 0.20950001983289573, + 0.0004146801671042723 + ], + [ + 46.60649720761551, + 1.2476242475450893e-06, + 14.180437849048046, + 9.784263182716979, + 0.008008286762689788, + 0.20950010681871647, + 0.00041459318128352513 + ], + [ + 46.60649752512174, + 6.475767832564823e-07, + 14.18043780935977, + 9.784263194789935, + 0.008008187821193578, + 0.20950005545609943, + 0.0004146445439005703 + ], + [ + 46.60649751404065, + 6.686815736990068e-07, + 14.180437810744902, + 9.784263194205677, + 0.00800819126352757, + 0.20950005725332646, + 0.0004146427466735417 + ], + [ + 46.60649824419885, + -7.114893287918891e-07, + 14.180437719475126, + 9.784263222231749, + 0.008007963680168722, + 0.2094999390985955, + 0.0004147609014044905 + ], + [ + 46.60649777749071, + 1.7100071344302817e-07, + 14.180437777813646, + 9.78426320401606, + 0.008008109230590203, + 0.20950001465783655, + 0.00041468534216344594 + ], + [ + 46.60649734126806, + 9.957750210709705e-07, + 14.180437832341477, + 9.78426318706147, + 0.00800824523785424, + 0.20950008525944497, + 0.0004146147405550265 + ], + [ + 46.60649675331983, + 2.107410644612998e-06, + 14.180437905835007, + 9.784263164218872, + 0.008008428574091795, + 0.20950018043391677, + 0.00041451956608325527 + ], + [ + 46.60649838693383, + -9.806368259986877e-07, + 14.180437701633254, + 9.784263227055241, + 0.008007919315480725, + 0.20949991606016596, + 0.00041478393983403075 + ], + [ + 46.606498796154675, + -1.7541019689722536e-06, + 14.180437650480647, + 9.784263242703998, + 0.008007791779461903, + 0.2094998498448015, + 0.0004148501551985266 + ], + [ + 46.606497865246986, + 5.870685997182966e-09, + 14.180437766844108, + 9.784263206634485, + 0.008008081994712049, + 0.20950000051845596, + 0.00041469948154403916 + ], + [ + 46.606497354970855, + 9.706771593775098e-07, + 14.180437830628625, + 9.784263186783816, + 0.008008241103603176, + 0.20950008311157536, + 0.0004146168884246311 + ], + [ + 46.60649706020414, + 1.5280440809212155e-06, + 14.18043786747446, + 9.784263175281174, + 0.008008333013373687, + 0.20950013082722604, + 0.0004145691727739769 + ], + [ + 46.606498133023265, + -4.998330897981405e-07, + 14.180437733372065, + 9.784263216456226, + 0.008007998595270453, + 0.2094999572258747, + 0.0004147427741253235 + ], + [ + 46.60649832579456, + -8.641210509506891e-07, + 14.180437709275651, + 9.784263223760288, + 0.008007938519221616, + 0.20949992603369955, + 0.00041477396630048137 + ], + [ + 46.60649797298538, + -1.9699491768139276e-07, + 14.1804377533768, + 9.784263209984491, + 0.008008048548684803, + 0.2094999831530744, + 0.00041471684692563464 + ], + [ + 46.606497409585195, + 8.682396137003921e-07, + 14.180437823801823, + 9.784263188083639, + 0.008008224209613016, + 0.2095000743420465, + 0.0004146256579534907 + ], + [ + 46.60649658463953, + 2.4278592590191275e-06, + 14.180437926920032, + 9.784263156141138, + 0.008008481380329236, + 0.20950020785740495, + 0.00041449214259504734 + ], + [ + 46.60649770400379, + 3.120022570671807e-07, + 14.1804377869995, + 9.784263199101359, + 0.00800813248370111, + 0.209500026729799, + 0.000414673270201004 + ], + [ + 46.60649809944526, + -4.354198456779967e-07, + 14.180437737569317, + 9.78426321422446, + 0.00800800921232198, + 0.20949996273454724, + 0.000414737265452767 + ], + [ + 46.60649839516807, + -9.943068905998532e-07, + 14.180437700603969, + 9.78426322547668, + 0.008007917073840423, + 0.20949991489379996, + 0.0004147851062000378 + ], + [ + 46.606497423146784, + 8.434060075334299e-07, + 14.180437822106626, + 9.78426318780318, + 0.008008220104607082, + 0.20950007221516123, + 0.00041462778483879924 + ], + [ + 46.60649719558831, + 1.2737156147953329e-06, + 14.180437850551437, + 9.784263178898176, + 0.008008291061834594, + 0.20950010905198765, + 0.00041459094801236197 + ], + [ + 46.60649678910696, + 2.0423362825045394e-06, + 14.180437901361605, + 9.784263163020725, + 0.008008417822953981, + 0.20950017486233938, + 0.00041452513766065475 + ], + [ + 46.606497979057835, + -2.0704054536525236e-07, + 14.180437752617749, + 9.784263208784841, + 0.008008046857215307, + 0.20949998228309166, + 0.00041471771690833824 + ], + [ + 46.60649896100024, + -2.063166751869638e-06, + 14.180437629874946, + 9.784263246499183, + 0.008007740852251413, + 0.20949982339032136, + 0.00041487660967865923 + ], + [ + 46.60649753218147, + 6.380947027915019e-07, + 14.180437808477294, + 9.784263191198427, + 0.008008186252702656, + 0.20950005464040325, + 0.000414645359596755 + ], + [ + 46.60649732788757, + 1.0244248723407727e-06, + 14.180437834014029, + 9.784263183190296, + 0.008008249959857636, + 0.20950008771187284, + 0.00041461228812715676 + ], + [ + 46.60649715484778, + 1.3517079956574801e-06, + 14.180437855644001, + 9.784263176351233, + 0.008008303942215817, + 0.20950011573718094, + 0.0004145842628190596 + ], + [ + 46.60649872055651, + -1.6079657464930534e-06, + 14.180437659930409, + 9.784263236564366, + 0.008007815873582467, + 0.20949986235587736, + 0.00041483764412263293 + ], + [ + 46.60649868277593, + -1.5364101353534163e-06, + 14.18043766465298, + 9.784263234972808, + 0.00800782768134097, + 0.20949986848180732, + 0.0004148315181926984 + ], + [ + 46.60649770553287, + 3.11189647426467e-07, + 14.180437786808357, + 9.784263197082351, + 0.008008132363069102, + 0.20950002666111983, + 0.0004146733388801877 + ], + [ + 46.60649704358222, + 1.5626899752174692e-06, + 14.180437869552188, + 9.784263171416544, + 0.008008338731468929, + 0.2095001337934848, + 0.00041456620651522127 + ], + [ + 46.60649636662088, + 2.8425726473665794e-06, + 14.180437954172355, + 9.784263145165976, + 0.00800854976699274, + 0.20950024336434522, + 0.00041445663565477177 + ], + [ + 46.60649827832008, + -7.711485757640985e-07, + 14.180437715209955, + 9.784263218703503, + 0.008007953848939932, + 0.20949993399434727, + 0.0004147660056527405 + ], + [ + 46.60649822507975, + -6.703710983994723e-07, + 14.180437721864996, + 9.784263216519207, + 0.00800797047205126, + 0.20949994262069133, + 0.0004147573793086746 + ], + [ + 46.60649831280795, + -8.360219675248384e-07, + 14.180437710898973, + 9.784263219710448, + 0.00800794321219784, + 0.2094999284490261, + 0.0004147715509739004 + ], + [ + 46.60649685430076, + 1.9213123686300673e-06, + 14.180437893212373, + 9.78426316331538, + 0.008008397856874905, + 0.20950016449315678, + 0.0004145355068432351 + ], + [ + 46.60649678725008, + 2.0481949369182748e-06, + 14.18043790159371, + 9.784263160600732, + 0.008008418763339787, + 0.20950017535371745, + 0.0004145246462825604 + ], + [ + 46.60649792901238, + -1.1000342832691464e-07, + 14.180437758873419, + 9.784263204424455, + 0.008008062875944237, + 0.20949999059554686, + 0.00041470940445315557 + ], + [ + 46.606498120173974, + -4.7124935633699156e-07, + 14.180437734978222, + 9.784263211667449, + 0.008008003306202535, + 0.20949995966740667, + 0.00041474033259333355 + ], + [ + 46.60649845841941, + -1.1104924792485327e-06, + 14.180437692697542, + 9.784263224530122, + 0.00800789794845554, + 0.20949990495047785, + 0.0004147950495221491 + ], + [ + 46.60649720806429, + 1.2533556905602781e-06, + 14.180437848991932, + 9.784263176154399, + 0.008008287707031436, + 0.20950010730936114, + 0.0004145926906388818 + ], + [ + 46.60649751315259, + 6.76741990987316e-07, + 14.180437810855896, + 9.784263187789778, + 0.00800819261546777, + 0.20950005794532026, + 0.0004146420546797634 + ], + [ + 46.60649748149819, + 7.367810173641174e-07, + 14.180437814812695, + 9.784263186370014, + 0.00800820249175418, + 0.2095000630855302, + 0.00041463691446980106 + ], + [ + 46.60649824106151, + -6.989798002380251e-07, + 14.180437719867278, + 9.784263215532096, + 0.00800796574193401, + 0.2094999401692619, + 0.0004147598307380859 + ], + [ + 46.6064976681174, + 3.8425393445201156e-07, + 14.180437791485291, + 9.784263193305964, + 0.00800814435999247, + 0.20950003290243027, + 0.0004146670975697626 + ] + ] + } +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 82f4a31..63b6c07 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,7 +27,6 @@ "dotenv": "^8.2.0", "express": "^4.17.1", "fp-ts": "^2.15.0", - "graphology-types": "^0.24.7", "huggingface": "^1.3.0", "lodash": "^4.17.21", "ltijs": "github:plc-dev/ltijs", @@ -50,7 +49,7 @@ "@types/jest": "^29.4.0", "@types/lodash": "^4.14.191", "@types/ltijs": "^4.0.6", - "@types/node": "^18.14.2", + "@types/node": "^18.19.123", "@typescript-eslint/eslint-plugin": "^5.52.0", "@typescript-eslint/parser": "^5.52.0", "eslint": "^8.34.0", @@ -58,25 +57,16 @@ "prettier": "^2.8.4", "reflect-metadata": "^0.1.13", "ts-jest": "^29.0.5", - "ts-node": "^10.9.2", + "ts-node": "^10.9.1", "typescript": "^4.9.5" } }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/gen-mapping": "^0.1.0", "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { @@ -84,45 +74,44 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "dependencies": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" + "@babel/highlight": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz", - "integrity": "sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.0.tgz", + "integrity": "sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz", - "integrity": "sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.0.tgz", + "integrity": "sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.2", - "@babel/parser": "^7.23.3", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.3", - "@babel/types": "^7.23.3", - "convert-source-map": "^2.0.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.21.0", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.21.0", + "@babel/helpers": "^7.21.0", + "@babel/parser": "^7.21.0", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0", + "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" + "json5": "^2.2.2", + "semver": "^6.3.0" }, "engines": { "node": ">=6.9.0" @@ -132,12 +121,25 @@ "url": "https://opencollective.com/babel" } }, + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/generator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.3.tgz", - "integrity": "sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==", + "version": "7.21.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.1.tgz", + "integrity": "sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==", "dependencies": { - "@babel/types": "^7.23.3", + "@babel/types": "^7.21.0", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -146,57 +148,94 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", "dependencies": { - "@babel/types": "^7.22.15" + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", + "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", + "@babel/compat-data": "^7.20.5", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", "lru-cache": "^5.1.1", - "semver": "^6.3.1" + "semver": "^6.3.0" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" } }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", - "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz", + "integrity": "sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "semver": "^6.3.1" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-member-expression-to-functions": "^7.21.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/helper-split-export-declaration": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -206,13 +245,12 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.0.tgz", + "integrity": "sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", - "semver": "^6.3.1" + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.3.1" }, "engines": { "node": ">=6.9.0" @@ -222,118 +260,139 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", - "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" + "resolve": "^1.14.2", + "semver": "^6.1.2" }, "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "dependencies": { + "@babel/types": "^7.18.6" + }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", + "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", "dependencies": { - "@babel/types": "^7.23.0" + "@babel/types": "^7.21.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", "dependencies": { - "@babel/types": "^7.22.15" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", + "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.2", + "@babel/types": "^7.21.2" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -343,121 +402,186 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5" + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", + "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.20.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.20.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", - "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", - "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", + "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0" + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/parser": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.3.tgz", - "integrity": "sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==", + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.2.tgz", + "integrity": "sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==", "bin": { "parser": "bin/babel-parser.js" }, @@ -466,11 +590,11 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", - "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -480,13 +604,13 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", - "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", + "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.23.3" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.7" }, "engines": { "node": ">=6.9.0" @@ -495,25 +619,31 @@ "@babel/core": "^7.13.0" } }, - "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz", - "integrity": "sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==", + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, "engines": { "node": ">=6.9.0" }, @@ -521,45 +651,59 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", + "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.12.0" } }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -568,34 +712,43 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", - "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "engines": { "node": ">=6.9.0" @@ -604,12 +757,16 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", - "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" }, "engines": { "node": ">=6.9.0" @@ -618,34 +775,44 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", - "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -654,54 +821,53 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", + "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { + "node_modules/@babel/plugin-syntax-bigint": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -709,21 +875,21 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.12.13" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { + "node_modules/@babel/plugin-syntax-class-static-block": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -734,88 +900,71 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", - "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.3" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", - "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.3.tgz", - "integrity": "sha512-59GsVNavGxAXCDDbakWSMJhajASb4kBCqDjqJsv+p5nKdbz7istmZ3HrX3L2LuiI80+zsOADCvooqQH3qGCucQ==", + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", - "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -824,123 +973,78 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", - "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.3.tgz", - "integrity": "sha512-QPZxHrThbQia7UdvfpaRRlq/J9ciz1J4go0k+lPBXbgaNeY7IQrBj/9ceWjvMMI07/ZBzHl/F0R/2K0qH7jCVw==", + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", - "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.3.tgz", - "integrity": "sha512-PENDVxdr7ZxKPyi5Ffc0LjXdnJyrJxyqF5T5YjlVg4a0VFfQHW0r8iAtRiDXkfHlu1wwcvdtnndGYIeJLSuRMQ==", + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.3.tgz", - "integrity": "sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", - "@babel/helper-split-export-declaration": "^7.22.6", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", - "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", - "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", - "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { "node": ">=6.9.0" @@ -949,12 +1053,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", - "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { "node": ">=6.9.0" @@ -963,13 +1067,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.3.tgz", - "integrity": "sha512-vTG+cTGxPFou12Rj7ll+eD5yWeNl5/8xvQvF08y5Gv3v4mZQoyFf8/n9zg4q5vvCWt5jmgymfzMAldO7orBn7A==", + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", + "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -978,13 +1081,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", - "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", + "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -993,13 +1095,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.3.tgz", - "integrity": "sha512-yCLhW34wpJWRdTxxWtFZASJisihrfyMOTOQexhVzA78jlU+dH7Dw+zQgcPepQ5F3C6bAIiblZZ+qBggJdHiBAg==", + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", + "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -1008,12 +1111,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz", - "integrity": "sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==", + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1022,14 +1125,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", - "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", + "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", "dependencies": { - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -1038,13 +1139,20 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.3.tgz", - "integrity": "sha512-H9Ej2OiISIZowZHaBwF0tsJOih1PftXJtE8EWqlEIwpc7LMTGq0rPOrywKLQ4nefzx8/HMR0D3JGXoMHYvhi0A==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" + "node_modules/@babel/plugin-transform-classes": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", + "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" }, "engines": { "node": ">=6.9.0" @@ -1053,27 +1161,21 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", - "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, + "node_modules/@babel/plugin-transform-classes/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=4" } }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.3.tgz", - "integrity": "sha512-+pD5ZbxofyOygEp+zZAfujY2ShNCXRpDRIPOiBmTO693hhyOEteZgl876Xs9SAHPQpcV0vz8LvA/T+w8AzyX8A==", + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", + "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/template": "^7.20.7" }, "engines": { "node": ">=6.9.0" @@ -1082,12 +1184,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", - "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz", + "integrity": "sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -1096,13 +1198,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", - "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1111,14 +1213,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", - "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -1127,15 +1227,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", - "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1144,13 +1242,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", - "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz", + "integrity": "sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==", "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -1159,27 +1256,28 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", - "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", + "node_modules/@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -1188,13 +1286,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.3.tgz", - "integrity": "sha512-xzg24Lnld4DYIdysyf07zJ1P+iIfJpxtVFOzX4g+bsJ3Ng5Le7rXx9KwqKzuyaUeRnt+I1EICwQITqc0E2PmpA==", + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1203,13 +1300,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.3.tgz", - "integrity": "sha512-s9GO7fIBi/BLsZ0v3Rftr6Oe4t0ctJ8h4CCXfPoEJwmvAPMyNrfkOOJzm6b9PX9YXcCJWWQd/sBF/N26eBiMVw==", + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", + "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -1218,16 +1315,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.3.tgz", - "integrity": "sha512-VxHt0ANkDmu8TANdE9Kc0rndo/ccsmfe2Cx2y5sI4hu3AukHQ5wAu4cM7j3ba8B9548ijVyclBU+nuDQftZsog==", + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz", + "integrity": "sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==", "dependencies": { - "@babel/compat-data": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.23.3" + "@babel/helper-module-transforms": "^7.21.2", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-simple-access": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -1236,13 +1331,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", - "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", + "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20" + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-identifier": "^7.19.1" }, "engines": { "node": ">=6.9.0" @@ -1251,13 +1348,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.3.tgz", - "integrity": "sha512-LxYSb0iLjUamfm7f1D7GpiS4j0UAC8AOiehnsGAP8BEsIX8EOi3qV6bbctw8M7ZvLtcoZfZX5Z7rN9PlWk0m5A==", + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1266,28 +1363,27 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.3.tgz", - "integrity": "sha512-zvL8vIfIUgMccIAK1lxjvNv572JHFJIKb4MWBz5OGdBQA0fB0Xluix5rmOby48exiJc987neOmP/m9Fnpkz3Tg==", + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", + "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", - "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1296,13 +1392,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", - "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1311,15 +1407,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.3.tgz", - "integrity": "sha512-a5m2oLNFyje2e/rGKjVfAELTVI5mbA0FeZpBnkOWWV7eSmKQ+T/XW0Vf+29ScLzSxX+rnsarvU0oie/4m6hkxA==", + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz", + "integrity": "sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -1329,11 +1422,11 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", - "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1343,12 +1436,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", - "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", + "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "regenerator-transform": "^0.15.2" + "@babel/helper-plugin-utils": "^7.20.2", + "regenerator-transform": "^0.15.1" }, "engines": { "node": ">=6.9.0" @@ -1358,11 +1451,11 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", - "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1372,11 +1465,11 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", - "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1386,12 +1479,12 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", - "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", + "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" }, "engines": { "node": ">=6.9.0" @@ -1401,11 +1494,11 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", - "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1415,11 +1508,11 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", - "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -1429,11 +1522,11 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", - "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -1443,14 +1536,13 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.3.tgz", - "integrity": "sha512-ogV0yWnq38CFwH20l2Afz0dfKuZBx9o/Y2Rmh5vuSS0YD1hswgEgTfyTzuSrT2q9btmHRSqYoSfwFUVaC1M1Jw==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.0.tgz", + "integrity": "sha512-xo///XTPp3mDzTtrqXoBlK9eiAYW3wv9JXglcn/u1bi60RW11dEUxIgA8cbnDhutS1zacjMRmAwxE0gMklLnZg==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-typescript": "^7.23.3" + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-typescript": "^7.20.0" }, "engines": { "node": ">=6.9.0" @@ -1460,26 +1552,11 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", - "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", - "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -1489,12 +1566,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", - "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1503,42 +1580,38 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", - "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, "node_modules/@babel/preset-env": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.3.tgz", - "integrity": "sha512-ovzGc2uuyNfNAs/jyjIGxS8arOHS5FENZaNn4rtE7UdKMMkqHCvboHfcuhWLZNX5cB44QfcGNWjaevxMzzMf+Q==", - "dependencies": { - "@babel/compat-data": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.3", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", + "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", + "dependencies": { + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.20.1", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.2", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.23.3", - "@babel/plugin-syntax-import-attributes": "^7.23.3", - "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-import-assertions": "^7.20.0", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -1548,61 +1621,45 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.23.3", - "@babel/plugin-transform-async-generator-functions": "^7.23.3", - "@babel/plugin-transform-async-to-generator": "^7.23.3", - "@babel/plugin-transform-block-scoped-functions": "^7.23.3", - "@babel/plugin-transform-block-scoping": "^7.23.3", - "@babel/plugin-transform-class-properties": "^7.23.3", - "@babel/plugin-transform-class-static-block": "^7.23.3", - "@babel/plugin-transform-classes": "^7.23.3", - "@babel/plugin-transform-computed-properties": "^7.23.3", - "@babel/plugin-transform-destructuring": "^7.23.3", - "@babel/plugin-transform-dotall-regex": "^7.23.3", - "@babel/plugin-transform-duplicate-keys": "^7.23.3", - "@babel/plugin-transform-dynamic-import": "^7.23.3", - "@babel/plugin-transform-exponentiation-operator": "^7.23.3", - "@babel/plugin-transform-export-namespace-from": "^7.23.3", - "@babel/plugin-transform-for-of": "^7.23.3", - "@babel/plugin-transform-function-name": "^7.23.3", - "@babel/plugin-transform-json-strings": "^7.23.3", - "@babel/plugin-transform-literals": "^7.23.3", - "@babel/plugin-transform-logical-assignment-operators": "^7.23.3", - "@babel/plugin-transform-member-expression-literals": "^7.23.3", - "@babel/plugin-transform-modules-amd": "^7.23.3", - "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-modules-systemjs": "^7.23.3", - "@babel/plugin-transform-modules-umd": "^7.23.3", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.23.3", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.3", - "@babel/plugin-transform-numeric-separator": "^7.23.3", - "@babel/plugin-transform-object-rest-spread": "^7.23.3", - "@babel/plugin-transform-object-super": "^7.23.3", - "@babel/plugin-transform-optional-catch-binding": "^7.23.3", - "@babel/plugin-transform-optional-chaining": "^7.23.3", - "@babel/plugin-transform-parameters": "^7.23.3", - "@babel/plugin-transform-private-methods": "^7.23.3", - "@babel/plugin-transform-private-property-in-object": "^7.23.3", - "@babel/plugin-transform-property-literals": "^7.23.3", - "@babel/plugin-transform-regenerator": "^7.23.3", - "@babel/plugin-transform-reserved-words": "^7.23.3", - "@babel/plugin-transform-shorthand-properties": "^7.23.3", - "@babel/plugin-transform-spread": "^7.23.3", - "@babel/plugin-transform-sticky-regex": "^7.23.3", - "@babel/plugin-transform-template-literals": "^7.23.3", - "@babel/plugin-transform-typeof-symbol": "^7.23.3", - "@babel/plugin-transform-unicode-escapes": "^7.23.3", - "@babel/plugin-transform-unicode-property-regex": "^7.23.3", - "@babel/plugin-transform-unicode-regex": "^7.23.3", - "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.6", - "babel-plugin-polyfill-corejs3": "^0.8.5", - "babel-plugin-polyfill-regenerator": "^0.5.3", - "core-js-compat": "^3.31.0", - "semver": "^6.3.1" + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.20.2", + "@babel/plugin-transform-classes": "^7.20.2", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.20.2", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.19.6", + "@babel/plugin-transform-modules-commonjs": "^7.19.6", + "@babel/plugin-transform-modules-systemjs": "^7.19.6", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.20.1", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.19.0", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.20.2", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", + "semver": "^6.3.0" }, "engines": { "node": ">=6.9.0" @@ -1611,29 +1668,37 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", "@babel/types": "^7.4.4", "esutils": "^2.0.2" }, "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/preset-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz", - "integrity": "sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.21.0.tgz", + "integrity": "sha512-myc9mpoVA5m1rF8K8DgLEatOYFDpwC+RkMkjZ0Du6uI62YvDe8uxIEYVs/VCdSJ097nlALiU/yBC7//3nI+hNg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-syntax-jsx": "^7.23.3", - "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-typescript": "^7.23.3" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.21.0", + "@babel/plugin-transform-typescript": "^7.21.0" }, "engines": { "node": ">=6.9.0" @@ -1648,42 +1713,42 @@ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" }, "node_modules/@babel/runtime": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", - "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", + "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", "dependencies": { - "regenerator-runtime": "^0.14.0" + "regenerator-runtime": "^0.13.11" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.3.tgz", - "integrity": "sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==", - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.3", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.3", - "@babel/types": "^7.23.3", + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.2.tgz", + "integrity": "sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==", + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.21.1", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.21.2", + "@babel/types": "^7.21.2", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1691,13 +1756,21 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/types": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.3.tgz", - "integrity": "sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==", + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.2.tgz", + "integrity": "sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==", "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" }, "engines": { @@ -1732,39 +1805,15 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, "node_modules/@eslint/eslintrc": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", - "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", + "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.6.0", + "espree": "^9.4.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -1779,60 +1828,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/js": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.53.0.tgz", - "integrity": "sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/@hpcc-js/wasm": { "version": "1.20.1", "resolved": "https://registry.npmjs.org/@hpcc-js/wasm/-/wasm-1.20.1.tgz", @@ -1870,12 +1865,12 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^2.0.1", + "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", "minimatch": "^3.0.5" }, @@ -1897,9 +1892,9 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, "node_modules/@istanbuljs/load-nyc-config": { @@ -1917,133 +1912,139 @@ "node": ">=8" } }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, "engines": { "node": ">=8" } }, - "node_modules/@jest/console": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", - "dev": true, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@jest/console/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dependencies": { - "color-convert": "^2.0.1" + "p-locate": "^4.1.0" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@jest/console/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "p-try": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=6" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@jest/console/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dependencies": { - "color-name": "~1.1.4" + "p-limit": "^2.2.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=8" } }, - "node_modules/@jest/console/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "engines": { + "node": ">=8" + } }, - "node_modules/@jest/console/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "engines": { "node": ">=8" } }, - "node_modules/@jest/console/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/@jest/console": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.5.0.tgz", + "integrity": "sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "slash": "^3.0.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/core": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.5.0.tgz", + "integrity": "sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==", "dev": true, "dependencies": { - "@jest/console": "^29.7.0", - "@jest/reporters": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", + "@jest/console": "^29.5.0", + "@jest/reporters": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", + "jest-changed-files": "^29.5.0", + "jest-config": "^29.5.0", + "jest-haste-map": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-resolve-dependencies": "^29.5.0", + "jest-runner": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "jest-watcher": "^29.5.0", "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", + "pretty-format": "^29.5.0", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, @@ -2059,160 +2060,90 @@ } } }, - "node_modules/@jest/core/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/core/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/core/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@jest/environment": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.5.0.tgz", + "integrity": "sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==", "dev": true, "dependencies": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", + "@jest/fake-timers": "^29.5.0", + "@jest/types": "^29.5.0", "@types/node": "*", - "jest-mock": "^29.7.0" + "jest-mock": "^29.5.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.5.0.tgz", + "integrity": "sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==", "dev": true, "dependencies": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" + "expect": "^29.5.0", + "jest-snapshot": "^29.5.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.5.0.tgz", + "integrity": "sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==", "dev": true, "dependencies": { - "jest-get-type": "^29.6.3" + "jest-get-type": "^29.4.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/fake-timers": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.5.0.tgz", + "integrity": "sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==", "dev": true, "dependencies": { - "@jest/types": "^29.6.3", + "@jest/types": "^29.5.0", "@sinonjs/fake-timers": "^10.0.2", "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" + "jest-message-util": "^29.5.0", + "jest-mock": "^29.5.0", + "jest-util": "^29.5.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/globals": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.5.0.tgz", + "integrity": "sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==", "dev": true, "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" + "@jest/environment": "^29.5.0", + "@jest/expect": "^29.5.0", + "@jest/types": "^29.5.0", + "jest-mock": "^29.5.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/reporters": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.5.0.tgz", + "integrity": "sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==", "dev": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", + "@jest/console": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@jridgewell/trace-mapping": "^0.3.15", "@types/node": "*", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", @@ -2220,13 +2151,13 @@ "glob": "^7.1.3", "graceful-fs": "^4.2.9", "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-instrument": "^5.1.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "jest-worker": "^29.5.0", "slash": "^3.0.0", "string-length": "^4.0.1", "strip-ansi": "^6.0.0", @@ -2244,143 +2175,24 @@ } } }, - "node_modules/@jest/reporters/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, + "node_modules/@jest/schemas": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", + "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", "dependencies": { - "color-convert": "^2.0.1" + "@sinclair/typebox": "^0.25.16" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/reporters/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@jest/source-map": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.4.3.tgz", + "integrity": "sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/reporters/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/reporters/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/reporters/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", - "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@jest/reporters/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@jest/reporters/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@jest/reporters/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/reporters/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", + "@jridgewell/trace-mapping": "^0.3.15", "callsites": "^3.0.0", "graceful-fs": "^4.2.9" }, @@ -2389,13 +2201,13 @@ } }, "node_modules/@jest/test-result": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.5.0.tgz", + "integrity": "sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==", "dev": true, "dependencies": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", + "@jest/console": "^29.5.0", + "@jest/types": "^29.5.0", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" }, @@ -2404,14 +2216,14 @@ } }, "node_modules/@jest/test-sequencer": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz", + "integrity": "sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==", "dev": true, "dependencies": { - "@jest/test-result": "^29.7.0", + "@jest/test-result": "^29.5.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", + "jest-haste-map": "^29.5.0", "slash": "^3.0.0" }, "engines": { @@ -2419,21 +2231,21 @@ } }, "node_modules/@jest/transform": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz", + "integrity": "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==", "dependencies": { "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", + "@jest/types": "^29.5.0", + "@jridgewell/trace-mapping": "^0.3.15", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", + "jest-haste-map": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.5.0", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", @@ -2443,76 +2255,12 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/transform/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/transform/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/transform/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/transform/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/@jest/transform/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/transform/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", + "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", "dependencies": { - "@jest/schemas": "^29.6.3", + "@jest/schemas": "^29.4.3", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", @@ -2523,87 +2271,22 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/types/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/types/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/types/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/types/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/@jest/types/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "engines": { "node": ">=6.0.0" } @@ -2617,26 +2300,17 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@mongodb-js/saslprep": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.1.tgz", - "integrity": "sha512-t7c5K033joZZMspnHg/gWPE4kandgc2OxE74aYOtGKfgB9VPuVJPix0H6fhmm2erj5PBJ21mqcx34lpIGtUCsQ==", - "optional": true, + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "dependencies": { - "sparse-bitfield": "^3.0.3" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, "node_modules/@nodelib/fs.scandir": { @@ -2675,9 +2349,9 @@ } }, "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" + "version": "0.25.24", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", + "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==" }, "node_modules/@sindresorhus/is": { "version": "4.6.0", @@ -2691,21 +2365,21 @@ } }, "node_modules/@sinonjs/commons": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", "dev": true, "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz", + "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==", "dev": true, "dependencies": { - "@sinonjs/commons": "^3.0.0" + "@sinonjs/commons": "^2.0.0" } }, "node_modules/@szmarczak/http-timer": { @@ -2738,15 +2412,15 @@ "dev": true }, "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", "dev": true }, "node_modules/@types/babel__core": { - "version": "7.20.4", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.4.tgz", - "integrity": "sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", + "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==", "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", @@ -2756,34 +2430,34 @@ } }, "node_modules/@types/babel__generator": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz", - "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==", + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", "dependencies": { "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__traverse": { - "version": "7.20.4", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", - "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", + "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", "dependencies": { - "@babel/types": "^7.20.7" + "@babel/types": "^7.3.0" } }, "node_modules/@types/body-parser": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", "dev": true, "dependencies": { "@types/connect": "*", @@ -2810,18 +2484,18 @@ } }, "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/cors": { - "version": "2.8.16", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.16.tgz", - "integrity": "sha512-Trx5or1Nyg1Fq138PCuWqoApzvoSLWzZ25ORBiHMbbUT42g578lH1GT4TwYDbiUOLFuDsCkfLneT2105fsFWGg==", + "version": "2.8.13", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz", + "integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==", "dependencies": { "@types/node": "*" } @@ -2836,9 +2510,9 @@ } }, "node_modules/@types/express": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "version": "4.17.17", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", + "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", "dev": true, "dependencies": { "@types/body-parser": "*", @@ -2848,9 +2522,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.41", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz", - "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==", + "version": "4.17.35", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", + "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", "dev": true, "dependencies": { "@types/node": "*", @@ -2870,49 +2544,43 @@ } }, "node_modules/@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", + "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", "dependencies": { "@types/node": "*" } }, "node_modules/@types/http-cache-semantics": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", - "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==" - }, - "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", - "dev": true + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" }, "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" }, "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", "dependencies": { "@types/istanbul-lib-report": "*" } }, "node_modules/@types/jest": { - "version": "29.5.8", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.8.tgz", - "integrity": "sha512-fXEFTxMV2Co8ZF5aYFJv+YeA08RTYJfhtN5c9JSv/mFEMe+xxjufCb+PHL+bJcMs/ebPUsBu+UNTEz+ydXrR6g==", + "version": "29.4.0", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.4.0.tgz", + "integrity": "sha512-VaywcGQ9tPorCX/Jkkni7RWGFfI11whqzs8dvxF41P17Z+z872thvEvlIbznjPJ02kl1HMX3LmLOonsj2n7HeQ==", "dev": true, "dependencies": { "expect": "^29.0.0", @@ -2920,9 +2588,9 @@ } }, "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", "dev": true }, "node_modules/@types/keyv": { @@ -2934,24 +2602,24 @@ } }, "node_modules/@types/lodash": { - "version": "4.14.201", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.201.tgz", - "integrity": "sha512-y9euML0cim1JrykNxADLfaG0FgD1g/yTHwUs/Jg9ZIU7WKj2/4IW9Lbb1WZbvck78W/lfGXFfe+u2EGfIJXdLQ==", + "version": "4.14.194", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.194.tgz", + "integrity": "sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==", "dev": true }, "node_modules/@types/ltijs": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@types/ltijs/-/ltijs-4.0.9.tgz", - "integrity": "sha512-vfx9wN3hvnTzlnPih67jTu/6JKHzetxs0r6TCu0QLQaGHZ3SPv+qdxarHNjXRelRyS1BecCpnbMUTRSY3y1zDA==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@types/ltijs/-/ltijs-4.0.6.tgz", + "integrity": "sha512-flyUUd42Ge5dVFxKqI6WNbBITpiLpHUvfnz5iC++hFzY6JsmmE8LvfGy3LwPSjUfgKz+/ejkbmspSrXvsYYGow==", "dev": true, "dependencies": { "@types/express": "*" } }, "node_modules/@types/mime": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", "dev": true }, "node_modules/@types/minimatch": { @@ -2970,9 +2638,10 @@ } }, "node_modules/@types/node": { - "version": "18.18.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.9.tgz", - "integrity": "sha512-0f5klcuImLnG4Qreu9hPj/rEfFq6YRc5n2mAjSsH+ec/mJL+3voBH0+8T7o8RpFjH7ovc+TRsL/c7OYIQsPTfQ==", + "version": "18.19.123", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.123.tgz", + "integrity": "sha512-K7DIaHnh0mzVxreCR9qwgNxp3MH9dltPNIEddW9MYUlcKAzm+3grKNSTe2vCJHI1FaLpvpL5JGJrz1UZDKYvDg==", + "license": "MIT", "dependencies": { "undici-types": "~5.26.4" } @@ -2987,41 +2656,47 @@ "pg-types": "^2.2.0" } }, + "node_modules/@types/prettier": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", + "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", + "dev": true + }, "node_modules/@types/qs": { - "version": "6.9.10", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.10.tgz", - "integrity": "sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==", + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", "dev": true }, "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", "dev": true }, "node_modules/@types/responselike": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", - "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", "dependencies": { "@types/node": "*" } }, "node_modules/@types/seedrandom": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-3.0.8.tgz", - "integrity": "sha512-TY1eezMU2zH2ozQoAFAQFOPpvP15g+ZgSfTZt31AUUH/Rxtnz3H+A/Sv1Snw2/amp//omibc+AEkTaA8KUeOLQ==" + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-3.0.5.tgz", + "integrity": "sha512-kopEpYpFQvQdYsZkZVwht/0THHmTFFYXDaqV/lM45eweJ8kcGVDgZHs0RVTolSq55UPZNmjhKc9r7UvLu/mQQg==" }, "node_modules/@types/semver": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.5.tgz", - "integrity": "sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==", + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", "dev": true }, "node_modules/@types/send": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", + "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", "dev": true, "dependencies": { "@types/mime": "^1", @@ -3029,20 +2704,19 @@ } }, "node_modules/@types/serve-static": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", - "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", + "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", "dev": true, "dependencies": { - "@types/http-errors": "*", "@types/mime": "*", "@types/node": "*" } }, "node_modules/@types/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", "dev": true }, "node_modules/@types/uuid": { @@ -3051,9 +2725,9 @@ "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==" }, "node_modules/@types/webidl-conversions": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", - "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==" + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog==" }, "node_modules/@types/whatwg-url": { "version": "8.2.2", @@ -3065,32 +2739,32 @@ } }, "node_modules/@types/yargs": { - "version": "17.0.31", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.31.tgz", - "integrity": "sha512-bocYSx4DI8TmdlvxqGpVNXOgCNR1Jj0gNPhhAY+iz1rgKDAaYrAYdFYnhDV1IFuiuVc9HkOwyDcFxaTElF3/wg==", + "version": "17.0.22", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.22.tgz", + "integrity": "sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g==", "dependencies": { "@types/yargs-parser": "*" } }, "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "version": "5.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.52.0.tgz", + "integrity": "sha512-lHazYdvYVsBokwCdKOppvYJKaJ4S41CgKBcPvyd0xjZNbvQdhn/pnJlGtQksQ/NhInzdaeaSarlBjDXHuclEbg==", "dev": true, "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", + "@typescript-eslint/scope-manager": "5.52.0", + "@typescript-eslint/type-utils": "5.52.0", + "@typescript-eslint/utils": "5.52.0", "debug": "^4.3.4", - "graphemer": "^1.4.0", + "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", + "regexpp": "^3.2.0", "semver": "^7.3.7", "tsutils": "^3.21.0" }, @@ -3111,48 +2785,15 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "version": "5.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.52.0.tgz", + "integrity": "sha512-e2KiLQOZRo4Y0D/b+3y08i3jsekoSkOYStROYmPUnGMEoA0h+k2qOH5H6tcjIc68WDvGwH+PaOrP1XRzLJ6QlA==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/scope-manager": "5.52.0", + "@typescript-eslint/types": "5.52.0", + "@typescript-eslint/typescript-estree": "5.52.0", "debug": "^4.3.4" }, "engines": { @@ -3172,13 +2813,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "version": "5.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.52.0.tgz", + "integrity": "sha512-AR7sxxfBKiNV0FWBSARxM8DmNxrwgnYMPwmpkC1Pl1n+eT8/I2NAUPuwDy/FmDcC6F8pBfmOcaxcxRHspgOBMw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" + "@typescript-eslint/types": "5.52.0", + "@typescript-eslint/visitor-keys": "5.52.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3189,13 +2830,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "version": "5.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.52.0.tgz", + "integrity": "sha512-tEKuUHfDOv852QGlpPtB3lHOoig5pyFQN/cUiZtpw99D93nEBjexRLre5sQZlkMoHry/lZr8qDAt2oAHLKA6Jw==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", + "@typescript-eslint/typescript-estree": "5.52.0", + "@typescript-eslint/utils": "5.52.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -3216,9 +2857,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "version": "5.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.52.0.tgz", + "integrity": "sha512-oV7XU4CHYfBhk78fS7tkum+/Dpgsfi91IIDy7fjCyq2k6KB63M6gMC0YIvy+iABzmXThCRI6xpCEyVObBdWSDQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3229,13 +2870,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "version": "5.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.52.0.tgz", + "integrity": "sha512-WeWnjanyEwt6+fVrSR0MYgEpUAuROxuAH516WPjUblIrClzYJj0kBbjdnbQXLpgAN8qbEuGywiQsXUVDiAoEuQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", + "@typescript-eslint/types": "5.52.0", + "@typescript-eslint/visitor-keys": "5.52.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -3255,52 +2896,19 @@ } } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "version": "5.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.52.0.tgz", + "integrity": "sha512-As3lChhrbwWQLNk2HC8Ree96hldKIqk98EYvypd3It8Q1f8d5zWyIoaZEp2va5667M4ZyE7X8UUR+azXrFl+NA==", "dev": true, "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/scope-manager": "5.52.0", + "@typescript-eslint/types": "5.52.0", + "@typescript-eslint/typescript-estree": "5.52.0", "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", "semver": "^7.3.7" }, "engines": { @@ -3314,46 +2922,13 @@ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "version": "5.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.52.0.tgz", + "integrity": "sha512-qMwpw6SU5VHCPr99y274xhbm+PRViK/NATY6qzt+Et7+mThGuFSl/ompj2/hrBlRP/kq+BFdgagnOSgw9TB0eA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/types": "5.52.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -3364,12 +2939,6 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, "node_modules/@zxing/text-encoding": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", @@ -3389,9 +2958,9 @@ } }, "node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -3410,9 +2979,9 @@ } }, "node_modules/acorn-walk": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz", - "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "dev": true, "engines": { "node": ">=0.4.0" @@ -3454,6 +3023,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -3463,14 +3044,17 @@ } }, "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/anymatch": { @@ -3492,12 +3076,10 @@ "dev": true }, "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true }, "node_modules/array-flatten": { "version": "1.1.1", @@ -3513,10 +3095,26 @@ "node": ">=8" } }, + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, "node_modules/async": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" }, "node_modules/available-typed-arrays": { "version": "1.0.5", @@ -3530,9 +3128,9 @@ } }, "node_modules/aws-sdk": { - "version": "2.1494.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1494.0.tgz", - "integrity": "sha512-i7wIEBUzhIOuCeE8moB4rXUr7y+5rviiGJ6hsdQJdqwDxzStkmV7+cvKllNVx3+kuv0jdNbkVZ+wHBANi91Wxw==", + "version": "2.1378.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1378.0.tgz", + "integrity": "sha512-9ZY11zkc3nMSejrrj08NdL+7hgiY7GZE3Sk7eVhH4VAJeoNqAMAyxc61Sg9yi83Y1i5rRWIcIgX9CYwenokyWQ==", "dependencies": { "buffer": "4.9.2", "events": "1.1.1", @@ -3566,14 +3164,14 @@ } }, "node_modules/babel-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz", + "integrity": "sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==", "dependencies": { - "@jest/transform": "^29.7.0", + "@jest/transform": "^29.5.0", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", + "babel-preset-jest": "^29.5.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "slash": "^3.0.0" @@ -3585,70 +3183,6 @@ "@babel/core": "^7.8.0" } }, - "node_modules/babel-jest/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/babel-jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/babel-jest/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/babel-jest/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/babel-jest/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-jest/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", @@ -3665,9 +3199,9 @@ } }, "node_modules/babel-plugin-jest-hoist": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz", + "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==", "dependencies": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", @@ -3679,39 +3213,47 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", - "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.3", - "semver": "^6.3.1" + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" }, "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz", - "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3", - "core-js-compat": "^3.33.1" + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" }, "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "@babel/core": "^7.0.0-0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", - "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3" + "@babel/helper-define-polyfill-provider": "^0.3.3" }, "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "@babel/core": "^7.0.0-0" } }, "node_modules/babel-preset-current-node-syntax": { @@ -3737,11 +3279,11 @@ } }, "node_modules/babel-preset-jest": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz", + "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==", "dependencies": { - "babel-plugin-jest-hoist": "^29.6.3", + "babel-plugin-jest-hoist": "^29.5.0", "babel-preset-current-node-syntax": "^1.0.0" }, "engines": { @@ -3824,6 +3366,11 @@ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, "node_modules/body-parser": { "version": "1.20.1", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", @@ -3880,15 +3427,79 @@ "node": ">=8" } }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + }, "node_modules/browser-or-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-2.1.1.tgz", - "integrity": "sha512-8CVjaLJGuSKMVTxJ2DpBl5XnlNDiT4cQFeuCJJrvJmts9YrTZDizTX7PjC2s6W4x+MBGZeEY6dGMrF04/6Hgqg==" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-1.3.0.tgz", + "integrity": "sha512-0F2z/VSnLbmEeBcUrSuDH5l0HxTXdQQzLjkmBR4cYfvg1zJrKSlmIZFqyFR8oX0NrwPhy3c3HQ6i3OxMbew4Tg==" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dependencies": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } }, "node_modules/browserslist": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", "funding": [ { "type": "opencollective", @@ -3897,17 +3508,13 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.13" + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" }, "bin": { "browserslist": "cli.js" @@ -3981,6 +3588,11 @@ "node": ">=4" } }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + }, "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -4029,13 +3641,12 @@ } }, "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dependencies": { - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4059,9 +3670,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001561", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001561.tgz", - "integrity": "sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==", + "version": "1.0.30001462", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001462.tgz", + "integrity": "sha512-PDd20WuOBPiasZ7KbFnmQRyuLE7cFXW2PVd7dmALzbkUXEP46upAuCDm9eY9vho8fgNMGmbAX92QBZHzcnWIqw==", "funding": [ { "type": "opencollective", @@ -4070,24 +3681,22 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" } ] }, "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/char-regex": { @@ -4100,9 +3709,9 @@ } }, "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", "funding": [ { "type": "github", @@ -4113,10 +3722,19 @@ "node": ">=8" } }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, "node_modules/cjs-module-lexer": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", - "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", "dev": true }, "node_modules/cliui": { @@ -4154,23 +3772,26 @@ } }, "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", "dev": true }, "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { - "color-name": "1.1.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/commander": { "version": "2.20.3", @@ -4240,11 +3861,11 @@ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, "node_modules/core-js-compat": { - "version": "3.33.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.2.tgz", - "integrity": "sha512-axfo+wxFVxnqf8RvxTzoAlzW4gRoacrHeoFlc9n0x50+7BEyZL/Rt3hicaED1/CEd7I6tPCPVUYcJwCMO5XUYw==", + "version": "3.29.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.29.0.tgz", + "integrity": "sha512-ScMn3uZNAFhK2DGoEfErguoiAHhV2Ju+oJo/jK08p7B3f3UhocUrCCkTvnZaiS+edl5nlIoiBXKcwMc6elv4KQ==", "dependencies": { - "browserslist": "^4.22.1" + "browserslist": "^4.21.5" }, "funding": { "type": "opencollective", @@ -4268,95 +3889,43 @@ "node": ">= 0.10" } }, - "node_modules/create-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", - "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "prompts": "^2.0.1" - }, - "bin": { - "create-jest": "bin/create-jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/create-jest/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" } }, - "node_modules/create-jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, - "node_modules/create-jest/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/create-jest/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/create-jest/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, - "node_modules/create-jest/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "node_modules/create-require": { @@ -4379,6 +3948,27 @@ "node": ">= 8" } }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, "node_modules/data-uri-to-buffer": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", @@ -4437,18 +4027,10 @@ } }, "node_modules/dedent": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", - "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", - "dev": true, - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" - }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } - } + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true }, "node_modules/deep-is": { "version": "0.1.4", @@ -4457,9 +4039,9 @@ "dev": true }, "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.0.tgz", + "integrity": "sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==", "dev": true, "engines": { "node": ">=0.10.0" @@ -4473,19 +4055,6 @@ "node": ">=10" } }, - "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", - "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/denque": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", @@ -4502,6 +4071,15 @@ "node": ">= 0.8" } }, + "node_modules/des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, "node_modules/destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", @@ -4530,14 +4108,29 @@ } }, "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", + "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", "dev": true, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -4597,9 +4190,28 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.581", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.581.tgz", - "integrity": "sha512-6uhqWBIapTJUxgPTCHH9sqdbxIMPt7oXl0VcAL1kOtlU6aECdcMncCrX5Z7sHQ/invtrC9jUQUef7+HhO8vVFw==" + "version": "1.4.324", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.324.tgz", + "integrity": "sha512-m+eBs/kh3TXnCuqDF6aHLLRwLK2U471JAbZ1KYigf0TM96fZglxv0/ZFBvyIxnLKsIWUoDiVnHTA2mhYz1fqdA==" + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, "node_modules/emittery": { "version": "0.13.1", @@ -4643,6 +4255,11 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==" + }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -4657,56 +4274,61 @@ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, "engines": { - "node": ">=0.8.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.53.0.tgz", - "integrity": "sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==", + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.34.0.tgz", + "integrity": "sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg==", "dev": true, "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.3", - "@eslint/js": "8.53.0", - "@humanwhocodes/config-array": "^0.11.13", + "@eslint/eslintrc": "^1.4.1", + "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", + "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "globals": "^13.19.0", - "graphemer": "^1.4.0", + "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", + "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "bin": { @@ -4732,89 +4354,46 @@ "node": ">=8.0.0" } }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "eslint-visitor-keys": "^2.0.0" }, "engines": { - "node": ">=8" + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" + "url": "https://github.com/sponsors/mysticatea" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "peerDependencies": { + "eslint": ">=5" } }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, "engines": { - "node": ">=7.0.0" + "node": ">=10" } }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", @@ -4822,9 +4401,6 @@ }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/estraverse": { @@ -4836,172 +4412,66 @@ "node": ">=4.0" } }, - "node_modules/eslint/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "node_modules/espree": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", "dev": true, "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" }, "engines": { - "node": ">=10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, "engines": { - "node": ">=8" + "node": ">=0.10" } }, - "node_modules/eslint/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=4.0" } }, - "node_modules/eslint/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "dependencies": { - "p-locate": "^5.0.0" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" + "node": ">=4.0" } }, "node_modules/esrecurse/node_modules/estraverse": { @@ -5046,6 +4516,15 @@ "node": ">=0.4.x" } }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, "node_modules/execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -5079,16 +4558,16 @@ } }, "node_modules/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.5.0.tgz", + "integrity": "sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==", "dev": true, "dependencies": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" + "@jest/expect-utils": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -5155,9 +4634,9 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -5201,18 +4680,23 @@ "punycode": "^1.3.2" } }, + "node_modules/fast-url-parser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + }, "node_modules/fast-xml-parser": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.3.2.tgz", - "integrity": "sha512-rmrXUXwbJedoXkStenj1kkljNF7ugn5ZjR9FJcwmCfcCbtOMDghPajbc+Tck6vE6F5XsDmx+Pr2le9fw8+pXBg==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.2.tgz", + "integrity": "sha512-DLzIPtQqmvmdq3VUKR7T6omPK/VCRNqgFlGtbESfyhcH2R4I8EzK1/K6E8PkRCK2EabWrUHK32NjYRbEFnnz0Q==", "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" - }, { "type": "paypal", "url": "https://paypal.me/naturalintelligence" + }, + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" } ], "dependencies": { @@ -5323,41 +4807,44 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, "dependencies": { - "locate-path": "^5.0.0", + "locate-path": "^6.0.0", "path-exists": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/flat-cache": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", - "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", + "flatted": "^3.1.0", "rimraf": "^3.0.2" }, "engines": { - "node": ">=12.0.0" + "node": "^10.12.0 || >=12.0.0" } }, "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, "node_modules/follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", "funding": [ { "type": "individual", @@ -5401,9 +4888,9 @@ } }, "node_modules/fp-ts": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-2.16.1.tgz", - "integrity": "sha512-by7U5W8dkIzcvDofUcO42yl9JbnHTEDBrzu3pt5fKT+Z4Oy85I21K80EYJYdjQGC2qum4Vo55Ag57iiIK4FYuA==" + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-2.15.0.tgz", + "integrity": "sha512-3o6EllAvGuCsDgjM+frscLKDRPR9pqbrg13tJ13z86F4eni913kBV8h85rM6zpu2fEvJ8RWA0ouYlUWwHEmxTg==" }, "node_modules/fresh": { "version": "0.5.2", @@ -5419,9 +4906,9 @@ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "hasInstallScript": true, "optional": true, "os": [ @@ -5432,12 +4919,9 @@ } }, "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "node_modules/gensync": { "version": "1.0.0-beta.2", @@ -5456,14 +4940,14 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", "dependencies": { - "function-bind": "^1.1.2", + "function-bind": "^1.1.1", + "has": "^1.0.3", "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "has-symbols": "^1.0.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5521,11 +5005,18 @@ } }, "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/globby": { @@ -5584,21 +5075,16 @@ } }, "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", "dev": true }, - "node_modules/graphology-types": { - "version": "0.24.7", - "resolved": "https://registry.npmjs.org/graphology-types/-/graphology-types-0.24.7.tgz", - "integrity": "sha512-tdcqOOpwArNjEr0gNQKCXwaNCWnQJrog14nJNQPeemcLnXQUUGrsCWpWkVKt46zLjcS6/KGoayeJfHHyPDlvwA==" - }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -5606,23 +5092,16 @@ "dependencies": { "function-bind": "^1.1.1" }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "engines": { - "node": ">=4" + "node": ">= 0.4.0" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", - "dependencies": { - "get-intrinsic": "^1.2.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" } }, "node_modules/has-proto": { @@ -5661,15 +5140,26 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", "dependencies": { - "function-bind": "^1.1.2" + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" }, "engines": { - "node": ">= 0.4" + "node": ">=4" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, "node_modules/helmet": { @@ -5680,6 +5170,16 @@ "node": ">=14.0.0" } }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -5780,15 +5280,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/import-local": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", @@ -5836,9 +5327,9 @@ "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" }, "node_modules/ipaddr.js": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", - "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", "engines": { "node": ">= 10" } @@ -5876,11 +5367,11 @@ } }, "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dependencies": { - "hasown": "^2.0.0" + "has": "^1.0.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5968,11 +5459,15 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", "dependencies": { - "which-typed-array": "^1.1.11" + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -6002,9 +5497,9 @@ } }, "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "engines": { "node": ">=8" } @@ -6024,37 +5519,24 @@ "node": ">=8" } }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", "dev": true, "dependencies": { "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", + "make-dir": "^3.0.0", "supports-color": "^7.1.0" }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { "node": ">=8" } @@ -6074,9 +5556,9 @@ } }, "node_modules/istanbul-reports": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, "dependencies": { "html-escaper": "^2.0.0", @@ -6087,15 +5569,15 @@ } }, "node_modules/jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.5.0.tgz", + "integrity": "sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==", "dev": true, "dependencies": { - "@jest/core": "^29.7.0", - "@jest/types": "^29.6.3", + "@jest/core": "^29.5.0", + "@jest/types": "^29.5.0", "import-local": "^3.0.2", - "jest-cli": "^29.7.0" + "jest-cli": "^29.5.0" }, "bin": { "jest": "bin/jest.js" @@ -6113,13 +5595,12 @@ } }, "node_modules/jest-changed-files": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz", + "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==", "dev": true, "dependencies": { "execa": "^5.0.0", - "jest-util": "^29.7.0", "p-limit": "^3.1.0" }, "engines": { @@ -6127,28 +5608,28 @@ } }, "node_modules/jest-circus": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.5.0.tgz", + "integrity": "sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==", "dev": true, "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", + "@jest/environment": "^29.5.0", + "@jest/expect": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", - "dedent": "^1.0.0", + "dedent": "^0.7.0", "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", + "jest-each": "^29.5.0", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", + "pretty-format": "^29.5.0", "pure-rand": "^6.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" @@ -6157,205 +5638,66 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-circus/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/jest-cli": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.5.0.tgz", + "integrity": "sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "@jest/core": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/jest-circus/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-circus/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-circus/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-circus/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", - "dev": true, - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-cli/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-cli/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-cli/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-cli/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-cli/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-config": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "node_modules/jest-config": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz", + "integrity": "sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", + "@jest/test-sequencer": "^29.5.0", + "@jest/types": "^29.5.0", + "babel-jest": "^29.5.0", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", + "jest-circus": "^29.5.0", + "jest-environment-node": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-runner": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", "micromatch": "^4.0.4", "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", + "pretty-format": "^29.5.0", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, @@ -6375,1253 +5717,389 @@ } } }, - "node_modules/jest-config/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/jest-diff": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz", + "integrity": "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "chalk": "^4.0.0", + "diff-sequences": "^29.4.3", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-config/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/jest-docblock": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz", + "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "detect-newline": "^3.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-config/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/jest-each": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.5.0.tgz", + "integrity": "sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "@jest/types": "^29.5.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.4.3", + "jest-util": "^29.5.0", + "pretty-format": "^29.5.0" }, "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-config/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-config/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-config/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/jest-environment-node": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.5.0.tgz", + "integrity": "sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "@jest/environment": "^29.5.0", + "@jest/fake-timers": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "jest-mock": "^29.5.0", + "jest-util": "^29.5.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "node_modules/jest-get-type": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", + "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-diff/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, + "node_modules/jest-haste-map": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz", + "integrity": "sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==", "dependencies": { - "color-convert": "^2.0.1" + "@jest/types": "^29.5.0", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.5.0", + "jest-worker": "^29.5.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "optionalDependencies": { + "fsevents": "^2.3.2" } }, - "node_modules/jest-diff/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/jest-leak-detector": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz", + "integrity": "sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-diff/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/jest-matcher-utils": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz", + "integrity": "sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "chalk": "^4.0.0", + "jest-diff": "^29.5.0", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" }, "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-diff/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-diff/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-diff/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/jest-message-util": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz", + "integrity": "sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.5.0", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-docblock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "node_modules/jest-mock": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.5.0.tgz", + "integrity": "sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==", "dev": true, "dependencies": { - "detect-newline": "^3.0.0" + "@jest/types": "^29.5.0", + "@types/node": "*", + "jest-util": "^29.5.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-each": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-each/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-each/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-each/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-each/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-environment-node": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-leak-detector": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", - "dev": true, - "dependencies": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-matcher-utils/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-matcher-utils/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-message-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-message-util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-message-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-message-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-mock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", - "dev": true, - "dependencies": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-resolve/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-resolve/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-resolve/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-resolve/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-resolve/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", - "dev": true, - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-runner/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-runner/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-runner/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-runner/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-runner/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-runtime/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-runtime/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-runtime/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-runtime/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-runtime/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-snapshot": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-snapshot/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-snapshot/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-snapshot/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-snapshot/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/jest-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-validate": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" + "node": ">=6" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" + "peerDependencies": { + "jest-resolve": "*" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } } }, - "node_modules/jest-validate/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "node_modules/jest-regex-util": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz", + "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-validate/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/jest-resolve": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.5.0.tgz", + "integrity": "sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" }, "engines": { - "node": ">=7.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-validate/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-validate/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/jest-resolve-dependencies": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz", + "integrity": "sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==", "dev": true, + "dependencies": { + "jest-regex-util": "^29.4.3", + "jest-snapshot": "^29.5.0" + }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-validate/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/jest-runner": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.5.0.tgz", + "integrity": "sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "@jest/console": "^29.5.0", + "@jest/environment": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.4.3", + "jest-environment-node": "^29.5.0", + "jest-haste-map": "^29.5.0", + "jest-leak-detector": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-resolve": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-util": "^29.5.0", + "jest-watcher": "^29.5.0", + "jest-worker": "^29.5.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-watcher": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", - "dev": true, - "dependencies": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", + "node_modules/jest-runtime": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.5.0.tgz", + "integrity": "sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.5.0", + "@jest/fake-timers": "^29.5.0", + "@jest/globals": "^29.5.0", + "@jest/source-map": "^29.4.3", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", "@types/node": "*", - "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-mock": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-watcher/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/jest-snapshot": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.5.0.tgz", + "integrity": "sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.5.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.5.0", + "semver": "^7.3.5" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-watcher/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "node_modules/jest-util": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz", + "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-watcher/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/jest-validate": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz", + "integrity": "sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "@jest/types": "^29.5.0", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.4.3", + "leven": "^3.1.0", + "pretty-format": "^29.5.0" }, "engines": { - "node": ">=7.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-watcher/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-watcher/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-watcher/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/jest-watcher": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.5.0.tgz", + "integrity": "sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.5.0", + "string-length": "^4.0.1" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz", + "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==", "dependencies": { "@types/node": "*", - "jest-util": "^29.7.0", + "jest-util": "^29.5.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, @@ -7629,14 +6107,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -7659,18 +6129,28 @@ "node": ">= 0.6.0" } }, + "node_modules/js-sdsl": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", + "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" @@ -7727,56 +6207,20 @@ } }, "node_modules/jsonwebtoken": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", - "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.1.tgz", + "integrity": "sha512-K8wx7eJ5TPvEjuiVSkv167EVboBDv9PZdDoF7BgeQnBLVvZWW9clr2PsQHVJDTKaEIH5JBIwHujGcHp7GgI2eg==", "dependencies": { "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", + "lodash": "^4.17.21", "ms": "^2.1.1", - "semver": "^7.5.4" + "semver": "^7.3.8" }, "engines": { "node": ">=12", "npm": ">=6" } }, - "node_modules/jsonwebtoken/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jsonwebtoken/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jsonwebtoken/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "node_modules/jwa": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", @@ -7802,9 +6246,9 @@ "integrity": "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ==" }, "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", + "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==", "dependencies": { "json-buffer": "3.0.1" } @@ -7847,14 +6291,18 @@ "dev": true }, "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, "dependencies": { - "p-locate": "^4.1.0" + "p-locate": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lodash": { @@ -7867,36 +6315,6 @@ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" }, - "node_modules/lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" - }, - "node_modules/lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" - }, - "node_modules/lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" - }, - "node_modules/lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" - }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" - }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -7909,11 +6327,6 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "node_modules/lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" - }, "node_modules/lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", @@ -7923,16 +6336,19 @@ } }, "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dependencies": { - "yallist": "^3.0.2" + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, "node_modules/ltijs": { "version": "5.9.3", - "resolved": "git+ssh://git@github.com/plc-dev/ltijs.git#0cee9810fd0cf4a431d6f0730aa0e58f63b78a9f", + "resolved": "git+ssh://git@github.com/plc-dev/ltijs.git#ab8861c5d244d5f9af04d110fb7664e223d1f0a7", "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.21.0", @@ -7990,9 +6406,9 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/ltijs/node_modules/bson": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/bson/-/bson-5.5.1.tgz", - "integrity": "sha512-ix0EwukN2EpC0SRWIj/7B5+A6uQMQy6KMREI9qQqvgpkV2frH63T0UDVd1SYedL6dNCmDBYB3QtXi4ISk9YT+g==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-5.4.0.tgz", + "integrity": "sha512-WRZ5SQI5GfUuKnPTNmAYPiKIof3ORXAF4IRU5UcgmivNIon01rWQlw5RUH954dpu8yGL8T59YShVddIPaU/gFA==", "engines": { "node": ">=14.20.1" } @@ -8006,11 +6422,11 @@ } }, "node_modules/ltijs/node_modules/mongodb": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.9.0.tgz", - "integrity": "sha512-g+GCMHN1CoRUA+wb1Agv0TI4YTSiWr42B5ulkiAfLLHitGK1R+PkSAf3Lr5rPZwi/3F04LiaZEW0Kxro9Fi2TA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.7.0.tgz", + "integrity": "sha512-zm82Bq33QbqtxDf58fLWBwTjARK3NSvKYjyz997KSy6hpat0prjeX/kxjbPVyZY60XYPDNETaHkHJI2UCzSLuw==", "dependencies": { - "bson": "^5.5.0", + "bson": "^5.4.0", "mongodb-connection-string-url": "^2.6.0", "socks": "^2.7.1" }, @@ -8018,12 +6434,12 @@ "node": ">=14.20.1" }, "optionalDependencies": { - "@mongodb-js/saslprep": "^1.1.0" + "saslprep": "^1.0.3" }, "peerDependencies": { - "@aws-sdk/credential-providers": "^3.188.0", - "@mongodb-js/zstd": "^1.0.0", - "kerberos": "^1.0.0 || ^2.0.0", + "@aws-sdk/credential-providers": "^3.201.0", + "@mongodb-js/zstd": "^1.1.0", + "kerberos": "^2.0.1", "mongodb-client-encryption": ">=2.3.0 <3", "snappy": "^7.2.2" }, @@ -8046,13 +6462,13 @@ } }, "node_modules/ltijs/node_modules/mongoose": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-7.6.4.tgz", - "integrity": "sha512-kadPkS/f5iZJrrMxxOvSoOAErXmdnb28lMvHmuYgmV1ZQTpRqpp132PIPHkJMbG4OC2H0eSXYw/fNzYTH+LUcw==", + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-7.4.1.tgz", + "integrity": "sha512-o3E5KHHiHdaiwCJG3+9r70sncRKki71Ktf/TfXdW6myu+53rtZ56uLl5ylkQiCf60V3COJuOeekcxXVsjQ7cBA==", "dependencies": { - "bson": "^5.5.0", + "bson": "^5.4.0", "kareem": "2.5.1", - "mongodb": "5.9.0", + "mongodb": "5.7.0", "mpath": "0.9.0", "mquery": "5.0.0", "ms": "2.1.3", @@ -8110,52 +6526,28 @@ "integrity": "sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ==" }, "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "dependencies": { - "semver": "^7.5.3" + "semver": "^6.0.0" }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-dir/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/make-dir/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-dir/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "semver": "bin/semver.js" + } }, "node_modules/make-error": { "version": "1.3.6", @@ -8171,6 +6563,16 @@ "tmpl": "1.0.5" } }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -8224,6 +6626,23 @@ "node": ">=8.6" } }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, "node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -8271,6 +6690,16 @@ "node": ">=4" } }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -8282,34 +6711,56 @@ "node": "*" } }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/minio": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/minio/-/minio-7.1.3.tgz", - "integrity": "sha512-xPrLjWkTT5E7H7VnzOjF//xBp9I40jYB4aWhb2xTFopXXfw+Wo82DDWngdUju7Doy3Wk7R8C4LAgwhLHHnf0wA==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/minio/-/minio-7.1.0.tgz", + "integrity": "sha512-AgT23/TaViYieZiFofoCakidPmHiv3ag6/YiX1/hFdowbzMNr2dT2Ido3qWEThjn2Y252VH5i9OVUb+9wevZFA==", "dependencies": { - "async": "^3.2.4", - "block-stream2": "^2.1.0", - "browser-or-node": "^2.1.1", + "async": "^3.1.0", + "block-stream2": "^2.0.0", + "browser-or-node": "^1.3.0", "buffer-crc32": "^0.2.13", - "fast-xml-parser": "^4.2.2", + "crypto-browserify": "^3.12.0", + "es6-error": "^4.1.1", + "fast-xml-parser": "^4.1.3", "ipaddr.js": "^2.0.1", "json-stream": "^1.0.0", "lodash": "^4.17.21", - "mime-types": "^2.1.35", - "query-string": "^7.1.3", - "through2": "^4.0.2", + "mime-types": "^2.1.14", + "mkdirp": "^0.5.1", + "query-string": "^7.1.1", + "through2": "^3.0.1", "web-encoding": "^1.1.5", - "xml": "^1.0.1", + "xml": "^1.0.0", "xml2js": "^0.5.0" }, "engines": { - "node": "^16 || ^18 || >=20" + "node": ">8 <=19" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" } }, "node_modules/mongodb": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.7.4.tgz", - "integrity": "sha512-K5q8aBqEXMwWdVNh94UQTwZ6BejVbFhh1uB6c5FKtPE9eUMZPUO3sRZdgIEcHSrAWmxzpG/FeODDKL388sqRmw==", + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.7.3.tgz", + "integrity": "sha512-Psm+g3/wHXhjBEktkxXsFMZvd3nemI0r3IPsE0bU+4//PnvNWKkzhZcEsbPcYiWqe8XqXJJEg4Tgtr7Raw67Yw==", "dependencies": { "bl": "^2.2.1", "bson": "^1.1.4", @@ -8365,15 +6816,15 @@ } }, "node_modules/mongoose": { - "version": "5.13.21", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.13.21.tgz", - "integrity": "sha512-EvSrXrCBogenxY131qKasFcT1Pj+9Pg5AXj17vQ8S1mOEArK3CpOx965u1wTIrdnQ7DjFC+SRwPxNcqUjMAVyQ==", + "version": "5.13.17", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.13.17.tgz", + "integrity": "sha512-kzlwQgrWaQflFSdENNGN4+FQEm/yOMgR1T1okIp5fARGQ8YKdjO+0U9Ikzsv5OVSFIkE0ATyJj2XxawYbf2bpA==", "dependencies": { "@types/bson": "1.x || 4.0.x", "@types/mongodb": "^3.5.27", "bson": "^1.1.4", "kareem": "2.3.2", - "mongodb": "3.7.4", + "mongodb": "3.7.3", "mongoose-legacy-pluralize": "1.0.2", "mpath": "0.8.4", "mquery": "3.2.5", @@ -8556,9 +7007,9 @@ } }, "node_modules/node-fetch": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", + "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -8578,9 +7029,9 @@ "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" }, "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==" }, "node_modules/normalize-path": { "version": "3.0.0", @@ -8622,9 +7073,9 @@ } }, "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -8672,17 +7123,17 @@ } }, "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" }, "engines": { "node": ">= 0.8.0" @@ -8712,25 +7163,15 @@ } }, "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-locate/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, "dependencies": { - "p-try": "^2.0.0" + "p-limit": "^3.0.2" }, "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -8761,6 +7202,18 @@ "node": ">=6" } }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -8839,15 +7292,30 @@ "node": ">=8" } }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, "node_modules/pg": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.3.tgz", - "integrity": "sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.0.tgz", + "integrity": "sha512-meLUVPn2TWgJyLmy7el3fQQVwft4gU5NGyvV0XbD41iU9Jbg8lCH4zexhIkihDzVHJStlt6r088G6/fWeNjhXA==", "dependencies": { "buffer-writer": "2.0.0", "packet-reader": "1.0.0", - "pg-connection-string": "^2.6.2", - "pg-pool": "^3.6.1", + "pg-connection-string": "^2.6.0", + "pg-pool": "^3.6.0", "pg-protocol": "^1.6.0", "pg-types": "^2.1.0", "pgpass": "1.x" @@ -8856,7 +7324,7 @@ "node": ">= 8.0.0" }, "optionalDependencies": { - "pg-cloudflare": "^1.1.1" + "pg-cloudflare": "^1.1.0" }, "peerDependencies": { "pg-native": ">=3.0.1" @@ -8868,15 +7336,15 @@ } }, "node_modules/pg-cloudflare": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz", - "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.0.tgz", + "integrity": "sha512-tGM8/s6frwuAIyRcJ6nWcIvd3+3NmUKIs6OjviIm1HPPFEt5MzQDOTBQyhPWg/m0kCl95M6gA1JaIXtS8KovOA==", "optional": true }, "node_modules/pg-connection-string": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz", - "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==" + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.0.tgz", + "integrity": "sha512-x14ibktcwlHKoHxx9X3uTVW9zIGR41ZB6QNhHb21OPNdCCO3NaRnpJuwKIQSR4u+Yqjx4HCvy7Hh7VSy1U4dGg==" }, "node_modules/pg-int8": { "version": "1.0.1", @@ -8887,9 +7355,9 @@ } }, "node_modules/pg-pool": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.1.tgz", - "integrity": "sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.0.tgz", + "integrity": "sha512-clFRf2ksqd+F497kWFyM21tMjeikn60oGDmqMT8UBrynEwVEX/5R5xd2sdvdo1cZCFlguORNpVuqxIj+aK4cfQ==", "peerDependencies": { "pg": ">=8.0" } @@ -8923,9 +7391,9 @@ } }, "node_modules/pgsql-ast-parser": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/pgsql-ast-parser/-/pgsql-ast-parser-11.1.0.tgz", - "integrity": "sha512-c0XnjHzUyg2Z/3iB2Akk6+jDtsza4Jqw4bC5SSt9pQ3b+K4aQC75gJQDvsNYvFqQNaPHLCUunDLPc5SZsQQLIA==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/pgsql-ast-parser/-/pgsql-ast-parser-11.0.1.tgz", + "integrity": "sha512-ds6WgKw/Ljv4hs0lGTDBd1qEcOa5SsMAqKEaHhY8UbvyuD0mN0R1VVesvcsiEE5ffZ4879jqAry4DHkC1LkdCw==", "dependencies": { "moo": "^0.5.1", "nearley": "^2.19.5" @@ -8948,9 +7416,9 @@ } }, "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", "engines": { "node": ">= 6" } @@ -8967,6 +7435,58 @@ "node": ">=8" } }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/postgres-array": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", @@ -9012,9 +7532,9 @@ } }, "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.4.tgz", + "integrity": "sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==", "dev": true, "bin": { "prettier": "bin-prettier.js" @@ -9027,12 +7547,12 @@ } }, "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz", + "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==", "dev": true, "dependencies": { - "@jest/schemas": "^29.6.3", + "@jest/schemas": "^29.4.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" }, @@ -9090,6 +7610,24 @@ "node": ">= 0.10" } }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -9100,14 +7638,17 @@ } }, "node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "engines": { + "node": ">=6" + } }, "node_modules/pure-rand": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", - "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.0.tgz", + "integrity": "sha512-rLSBxJjP+4DQOgcJAx6RZHT2he2pkhQdSnofG5VWyVl6GRq/K02ISOuOLcsMOrtKDIJb8JN2zm3FFzWNbezdPw==", "dev": true, "funding": [ { @@ -9208,6 +7749,23 @@ "node": ">=4" } }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -9269,9 +7827,9 @@ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" }, "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", "dependencies": { "regenerate": "^1.4.2" }, @@ -9280,14 +7838,14 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", "dependencies": { "@babel/runtime": "^7.8.4" } @@ -9297,10 +7855,22 @@ "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.1.tgz", + "integrity": "sha512-nCOzW2V/X15XpLsK2rlgdwrysrBq+AauCn+omItIz4R1pIcmeot5zvjdmOBRLzEH/CkC6IxMJVmxDe3QcMuNVQ==", "dependencies": { "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", @@ -9349,11 +7919,11 @@ } }, "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dependencies": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.9.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -9381,18 +7951,28 @@ "node": ">=8" } }, - "node_modules/resolve-from": { + "node_modules/resolve-cwd/node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, "engines": { "node": ">=8" } }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.1.tgz", + "integrity": "sha512-OEJWVeimw8mgQuj3HfkNl4KqRevH7lzeQNaWRPfx0PPse7Jk6ozcsG4FKVgtzDsC1KUF+YlTHh17NcgHOPykLw==", "dev": true, "engines": { "node": ">=10" @@ -9442,6 +8022,15 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -9512,11 +8101,17 @@ "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==" }, "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dependencies": { + "lru-cache": "^6.0.0" + }, "bin": { "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/send": { @@ -9574,25 +8169,23 @@ "node": ">= 0.8.0" } }, - "node_modules/set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", - "dependencies": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -9861,14 +8454,14 @@ "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" }, "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -9902,11 +8495,12 @@ "dev": true }, "node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", "dependencies": { - "readable-stream": "3" + "inherits": "^2.0.4", + "readable-stream": "2 || 3" } }, "node_modules/tmpl": { @@ -9952,18 +8546,10 @@ "node": ">=12" } }, - "node_modules/tr46/node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "engines": { - "node": ">=6" - } - }, "node_modules/ts-jest": { - "version": "29.1.1", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.1.tgz", - "integrity": "sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==", + "version": "29.0.5", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.0.5.tgz", + "integrity": "sha512-PL3UciSgIpQ7f6XjVOmbi96vmDHUqAyqDr8YxzopDqX3kfgYtX1cuNeBjP+L9sFXi6nzsGGA6R3fP3DDDJyrxA==", "dev": true, "dependencies": { "bs-logger": "0.x", @@ -9972,7 +8558,7 @@ "json5": "^2.2.3", "lodash.memoize": "4.x", "make-error": "1.x", - "semver": "^7.5.3", + "semver": "7.x", "yargs-parser": "^21.0.1" }, "bin": { @@ -9986,7 +8572,7 @@ "@jest/types": "^29.0.0", "babel-jest": "^29.0.0", "jest": "^29.0.0", - "typescript": ">=4.3 <6" + "typescript": ">=4.3" }, "peerDependenciesMeta": { "@babel/core": { @@ -10003,43 +8589,10 @@ } } }, - "node_modules/ts-jest/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ts-jest/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ts-jest/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "dev": true, "dependencies": { "@cspotcode/source-map-support": "^0.8.0", @@ -10122,9 +8675,9 @@ } }, "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, "engines": { "node": ">=10" @@ -10161,7 +8714,8 @@ "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "license": "MIT" }, "node_modules/unfetch": { "version": "5.0.0", @@ -10213,9 +8767,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", "funding": [ { "type": "opencollective", @@ -10224,10 +8778,6 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" } ], "dependencies": { @@ -10235,7 +8785,7 @@ "picocolors": "^1.0.0" }, "bin": { - "update-browserslist-db": "cli.js" + "browserslist-lint": "cli.js" }, "peerDependencies": { "browserslist": ">= 4.21.0" @@ -10250,15 +8800,6 @@ "punycode": "^2.1.0" } }, - "node_modules/uri-js/node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/url": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", @@ -10313,19 +8854,25 @@ "dev": true }, "node_modules/v8-to-istanbul": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz", - "integrity": "sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", + "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" + "convert-source-map": "^1.6.0" }, "engines": { "node": ">=10.12.0" } }, + "node_modules/v8-to-istanbul/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -10397,15 +8944,16 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", "dependencies": { "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", + "call-bind": "^1.0.2", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" }, "engines": { "node": ">= 0.4" @@ -10414,6 +8962,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -10430,36 +8987,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -10519,14 +9046,15 @@ } }, "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/yargs": { - "version": "17.6.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.0.tgz", - "integrity": "sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g==", + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", + "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "dev": true, "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -10534,7 +9062,7 @@ "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" + "yargs-parser": "^21.1.1" }, "engines": { "node": ">=12" @@ -10571,323 +9099,563 @@ } }, "dependencies": { - "@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true - }, "@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", "requires": { - "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/gen-mapping": "^0.1.0", "@jridgewell/trace-mapping": "^0.3.9" } }, "@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "requires": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" + "@babel/highlight": "^7.18.6" } }, "@babel/compat-data": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz", - "integrity": "sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==" + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.0.tgz", + "integrity": "sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==" }, "@babel/core": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz", - "integrity": "sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.0.tgz", + "integrity": "sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==", "requires": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.2", - "@babel/parser": "^7.23.3", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.3", - "@babel/types": "^7.23.3", - "convert-source-map": "^2.0.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.21.0", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.21.0", + "@babel/helpers": "^7.21.0", + "@babel/parser": "^7.21.0", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0", + "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "dependencies": { + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } } }, "@babel/generator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.3.tgz", - "integrity": "sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==", + "version": "7.21.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.1.tgz", + "integrity": "sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==", "requires": { - "@babel/types": "^7.23.3", + "@babel/types": "^7.21.0", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } } }, "@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", "requires": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.18.6" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", "requires": { - "@babel/types": "^7.22.15" + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" } }, "@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", + "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", "requires": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", + "@babel/compat-data": "^7.20.5", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", "lru-cache": "^5.1.1", - "semver": "^6.3.1" + "semver": "^6.3.0" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } } }, "@babel/helper-create-class-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", - "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz", + "integrity": "sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==", "requires": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "semver": "^6.3.1" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-member-expression-to-functions": "^7.21.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/helper-split-export-declaration": "^7.18.6" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.0.tgz", + "integrity": "sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg==", "requires": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", - "semver": "^6.3.1" + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.3.1" } }, "@babel/helper-define-polyfill-provider": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", - "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", "requires": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } } }, "@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==" + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==" + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "requires": { + "@babel/types": "^7.18.6" + } }, "@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", "requires": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" } }, "@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "requires": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.18.6" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", + "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", "requires": { - "@babel/types": "^7.23.0" + "@babel/types": "^7.21.0" } }, "@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", "requires": { - "@babel/types": "^7.22.15" + "@babel/types": "^7.18.6" } }, "@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", + "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", "requires": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.2", + "@babel/types": "^7.21.2" } }, "@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", "requires": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.18.6" } }, "@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==" + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==" }, "@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", "requires": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" } }, "@babel/helper-replace-supers": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", - "requires": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5" + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", + "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" } }, "@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", "requires": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.20.2" } }, "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", "requires": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.20.0" } }, "@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "requires": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.18.6" } }, "@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==" + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==" }, "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==" + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" }, "@babel/helper-validator-option": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", - "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==" + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==" }, "@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", "requires": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" } }, "@babel/helpers": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", - "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", + "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", "requires": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0" + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0" } }, "@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "requires": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } } }, "@babel/parser": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.3.tgz", - "integrity": "sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==" + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.2.tgz", + "integrity": "sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==" }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", - "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", "requires": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", - "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", + "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.7" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", + "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "requires": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", "requires": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.23.3" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz", - "integrity": "sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==", + "@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", "requires": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "requires": {} + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", + "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } }, "@babel/plugin-syntax-async-generators": { "version": "7.8.4", @@ -10938,19 +9706,11 @@ } }, "@babel/plugin-syntax-import-assertions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", - "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", - "requires": { - "@babel/helper-plugin-utils": "^7.22.5" - } - }, - "@babel/plugin-syntax-import-attributes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", - "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", "requires": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-syntax-import-meta": { @@ -10970,11 +9730,12 @@ } }, "@babel/plugin-syntax-jsx": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", - "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-syntax-logical-assignment-operators": { @@ -11042,490 +9803,345 @@ } }, "@babel/plugin-syntax-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", - "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.22.5" - } - }, - "@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", + "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", - "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.22.5" - } - }, - "@babel/plugin-transform-async-generator-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.3.tgz", - "integrity": "sha512-59GsVNavGxAXCDDbakWSMJhajASb4kBCqDjqJsv+p5nKdbz7istmZ3HrX3L2LuiI80+zsOADCvooqQH3qGCucQ==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", + "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", "requires": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20", - "@babel/plugin-syntax-async-generators": "^7.8.4" + "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", - "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", + "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", "requires": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20" + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", - "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", "requires": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.3.tgz", - "integrity": "sha512-QPZxHrThbQia7UdvfpaRRlq/J9ciz1J4go0k+lPBXbgaNeY7IQrBj/9ceWjvMMI07/ZBzHl/F0R/2K0qH7jCVw==", - "requires": { - "@babel/helper-plugin-utils": "^7.22.5" - } - }, - "@babel/plugin-transform-class-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", - "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", + "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - } - }, - "@babel/plugin-transform-class-static-block": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.3.tgz", - "integrity": "sha512-PENDVxdr7ZxKPyi5Ffc0LjXdnJyrJxyqF5T5YjlVg4a0VFfQHW0r8iAtRiDXkfHlu1wwcvdtnndGYIeJLSuRMQ==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" + "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-transform-classes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.3.tgz", - "integrity": "sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", - "@babel/helper-split-export-declaration": "^7.22.6", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", + "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-split-export-declaration": "^7.18.6", "globals": "^11.1.0" + }, + "dependencies": { + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + } } }, "@babel/plugin-transform-computed-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", - "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", + "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", "requires": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.15" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/template": "^7.20.7" } }, "@babel/plugin-transform-destructuring": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", - "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz", + "integrity": "sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==", "requires": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", - "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", - "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", - "requires": { - "@babel/helper-plugin-utils": "^7.22.5" - } - }, - "@babel/plugin-transform-dynamic-import": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.3.tgz", - "integrity": "sha512-vTG+cTGxPFou12Rj7ll+eD5yWeNl5/8xvQvF08y5Gv3v4mZQoyFf8/n9zg4q5vvCWt5jmgymfzMAldO7orBn7A==", - "requires": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", - "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - } - }, - "@babel/plugin-transform-export-namespace-from": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.3.tgz", - "integrity": "sha512-yCLhW34wpJWRdTxxWtFZASJisihrfyMOTOQexhVzA78jlU+dH7Dw+zQgcPepQ5F3C6bAIiblZZ+qBggJdHiBAg==", - "requires": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz", - "integrity": "sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==", - "requires": { - "@babel/helper-plugin-utils": "^7.22.5" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", - "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", - "requires": { - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5" - } - }, - "@babel/plugin-transform-json-strings": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.3.tgz", - "integrity": "sha512-H9Ej2OiISIZowZHaBwF0tsJOih1PftXJtE8EWqlEIwpc7LMTGq0rPOrywKLQ4nefzx8/HMR0D3JGXoMHYvhi0A==", - "requires": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", - "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.22.5" - } - }, - "@babel/plugin-transform-logical-assignment-operators": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.3.tgz", - "integrity": "sha512-+pD5ZbxofyOygEp+zZAfujY2ShNCXRpDRIPOiBmTO693hhyOEteZgl876Xs9SAHPQpcV0vz8LvA/T+w8AzyX8A==", - "requires": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", - "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", - "requires": { - "@babel/helper-plugin-utils": "^7.22.5" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", - "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", - "requires": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", - "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", "requires": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" + "@babel/helper-plugin-utils": "^7.18.9" } }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", - "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", "requires": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, - "@babel/plugin-transform-modules-umd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", - "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", + "@babel/plugin-transform-for-of": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz", + "integrity": "sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==", "requires": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.20.2" } }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" } }, - "@babel/plugin-transform-new-target": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", - "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", + "@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", "requires": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.18.9" } }, - "@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.3.tgz", - "integrity": "sha512-xzg24Lnld4DYIdysyf07zJ1P+iIfJpxtVFOzX4g+bsJ3Ng5Le7rXx9KwqKzuyaUeRnt+I1EICwQITqc0E2PmpA==", + "@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", "requires": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + "@babel/helper-plugin-utils": "^7.18.6" } }, - "@babel/plugin-transform-numeric-separator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.3.tgz", - "integrity": "sha512-s9GO7fIBi/BLsZ0v3Rftr6Oe4t0ctJ8h4CCXfPoEJwmvAPMyNrfkOOJzm6b9PX9YXcCJWWQd/sBF/N26eBiMVw==", + "@babel/plugin-transform-modules-amd": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", + "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", "requires": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2" } }, - "@babel/plugin-transform-object-rest-spread": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.3.tgz", - "integrity": "sha512-VxHt0ANkDmu8TANdE9Kc0rndo/ccsmfe2Cx2y5sI4hu3AukHQ5wAu4cM7j3ba8B9548ijVyclBU+nuDQftZsog==", + "@babel/plugin-transform-modules-commonjs": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz", + "integrity": "sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==", "requires": { - "@babel/compat-data": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.23.3" + "@babel/helper-module-transforms": "^7.21.2", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-simple-access": "^7.20.2" } }, - "@babel/plugin-transform-object-super": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", - "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "@babel/plugin-transform-modules-systemjs": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", + "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", "requires": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20" + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-identifier": "^7.19.1" } }, - "@babel/plugin-transform-optional-catch-binding": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.3.tgz", - "integrity": "sha512-LxYSb0iLjUamfm7f1D7GpiS4j0UAC8AOiehnsGAP8BEsIX8EOi3qV6bbctw8M7ZvLtcoZfZX5Z7rN9PlWk0m5A==", + "@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", "requires": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, - "@babel/plugin-transform-optional-chaining": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.3.tgz", - "integrity": "sha512-zvL8vIfIUgMccIAK1lxjvNv572JHFJIKb4MWBz5OGdBQA0fB0Xluix5rmOby48exiJc987neOmP/m9Fnpkz3Tg==", + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", + "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", "requires": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" } }, - "@babel/plugin-transform-parameters": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", - "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", + "@babel/plugin-transform-new-target": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", "requires": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.18.6" } }, - "@babel/plugin-transform-private-methods": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", - "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" } }, - "@babel/plugin-transform-private-property-in-object": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.3.tgz", - "integrity": "sha512-a5m2oLNFyje2e/rGKjVfAELTVI5mbA0FeZpBnkOWWV7eSmKQ+T/XW0Vf+29ScLzSxX+rnsarvU0oie/4m6hkxA==", + "@babel/plugin-transform-parameters": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz", + "integrity": "sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==", "requires": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-transform-property-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", - "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", "requires": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-regenerator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", - "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", + "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", "requires": { - "@babel/helper-plugin-utils": "^7.22.5", - "regenerator-transform": "^0.15.2" + "@babel/helper-plugin-utils": "^7.20.2", + "regenerator-transform": "^0.15.1" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", - "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", "requires": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", - "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", "requires": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-spread": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", - "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", + "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", "requires": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", - "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", "requires": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-template-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", - "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", "requires": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", - "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", "requires": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.3.tgz", - "integrity": "sha512-ogV0yWnq38CFwH20l2Afz0dfKuZBx9o/Y2Rmh5vuSS0YD1hswgEgTfyTzuSrT2q9btmHRSqYoSfwFUVaC1M1Jw==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.0.tgz", + "integrity": "sha512-xo///XTPp3mDzTtrqXoBlK9eiAYW3wv9JXglcn/u1bi60RW11dEUxIgA8cbnDhutS1zacjMRmAwxE0gMklLnZg==", "requires": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-typescript": "^7.23.3" + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-typescript": "^7.20.0" } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", - "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.22.5" - } - }, - "@babel/plugin-transform-unicode-property-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", - "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", - "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - } - }, - "@babel/plugin-transform-unicode-sets-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", - "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/preset-env": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.3.tgz", - "integrity": "sha512-ovzGc2uuyNfNAs/jyjIGxS8arOHS5FENZaNn4rtE7UdKMMkqHCvboHfcuhWLZNX5cB44QfcGNWjaevxMzzMf+Q==", - "requires": { - "@babel/compat-data": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.3", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", + "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", + "requires": { + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.20.1", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.2", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.23.3", - "@babel/plugin-syntax-import-attributes": "^7.23.3", - "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-import-assertions": "^7.20.0", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -11535,83 +10151,74 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.23.3", - "@babel/plugin-transform-async-generator-functions": "^7.23.3", - "@babel/plugin-transform-async-to-generator": "^7.23.3", - "@babel/plugin-transform-block-scoped-functions": "^7.23.3", - "@babel/plugin-transform-block-scoping": "^7.23.3", - "@babel/plugin-transform-class-properties": "^7.23.3", - "@babel/plugin-transform-class-static-block": "^7.23.3", - "@babel/plugin-transform-classes": "^7.23.3", - "@babel/plugin-transform-computed-properties": "^7.23.3", - "@babel/plugin-transform-destructuring": "^7.23.3", - "@babel/plugin-transform-dotall-regex": "^7.23.3", - "@babel/plugin-transform-duplicate-keys": "^7.23.3", - "@babel/plugin-transform-dynamic-import": "^7.23.3", - "@babel/plugin-transform-exponentiation-operator": "^7.23.3", - "@babel/plugin-transform-export-namespace-from": "^7.23.3", - "@babel/plugin-transform-for-of": "^7.23.3", - "@babel/plugin-transform-function-name": "^7.23.3", - "@babel/plugin-transform-json-strings": "^7.23.3", - "@babel/plugin-transform-literals": "^7.23.3", - "@babel/plugin-transform-logical-assignment-operators": "^7.23.3", - "@babel/plugin-transform-member-expression-literals": "^7.23.3", - "@babel/plugin-transform-modules-amd": "^7.23.3", - "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-modules-systemjs": "^7.23.3", - "@babel/plugin-transform-modules-umd": "^7.23.3", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.23.3", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.3", - "@babel/plugin-transform-numeric-separator": "^7.23.3", - "@babel/plugin-transform-object-rest-spread": "^7.23.3", - "@babel/plugin-transform-object-super": "^7.23.3", - "@babel/plugin-transform-optional-catch-binding": "^7.23.3", - "@babel/plugin-transform-optional-chaining": "^7.23.3", - "@babel/plugin-transform-parameters": "^7.23.3", - "@babel/plugin-transform-private-methods": "^7.23.3", - "@babel/plugin-transform-private-property-in-object": "^7.23.3", - "@babel/plugin-transform-property-literals": "^7.23.3", - "@babel/plugin-transform-regenerator": "^7.23.3", - "@babel/plugin-transform-reserved-words": "^7.23.3", - "@babel/plugin-transform-shorthand-properties": "^7.23.3", - "@babel/plugin-transform-spread": "^7.23.3", - "@babel/plugin-transform-sticky-regex": "^7.23.3", - "@babel/plugin-transform-template-literals": "^7.23.3", - "@babel/plugin-transform-typeof-symbol": "^7.23.3", - "@babel/plugin-transform-unicode-escapes": "^7.23.3", - "@babel/plugin-transform-unicode-property-regex": "^7.23.3", - "@babel/plugin-transform-unicode-regex": "^7.23.3", - "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.6", - "babel-plugin-polyfill-corejs3": "^0.8.5", - "babel-plugin-polyfill-regenerator": "^0.5.3", - "core-js-compat": "^3.31.0", - "semver": "^6.3.1" + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.20.2", + "@babel/plugin-transform-classes": "^7.20.2", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.20.2", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.19.6", + "@babel/plugin-transform-modules-commonjs": "^7.19.6", + "@babel/plugin-transform-modules-systemjs": "^7.19.6", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.20.1", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.19.0", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.20.2", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } } }, "@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", "requires": { "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", "@babel/types": "^7.4.4", "esutils": "^2.0.2" } }, "@babel/preset-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz", - "integrity": "sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.21.0.tgz", + "integrity": "sha512-myc9mpoVA5m1rF8K8DgLEatOYFDpwC+RkMkjZ0Du6uI62YvDe8uxIEYVs/VCdSJ097nlALiU/yBC7//3nI+hNg==", "requires": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-syntax-jsx": "^7.23.3", - "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-typescript": "^7.23.3" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.21.0", + "@babel/plugin-transform-typescript": "^7.21.0" } }, "@babel/regjsgen": { @@ -11620,47 +10227,54 @@ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" }, "@babel/runtime": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", - "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", + "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", "requires": { - "regenerator-runtime": "^0.14.0" + "regenerator-runtime": "^0.13.11" } }, "@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", "requires": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" } }, "@babel/traverse": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.3.tgz", - "integrity": "sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==", - "requires": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.3", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.3", - "@babel/types": "^7.23.3", + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.2.tgz", + "integrity": "sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==", + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.21.1", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.21.2", + "@babel/types": "^7.21.2", "debug": "^4.1.0", "globals": "^11.1.0" + }, + "dependencies": { + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + } } }, "@babel/types": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.3.tgz", - "integrity": "sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==", + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.2.tgz", + "integrity": "sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==", "requires": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" } }, @@ -11691,82 +10305,45 @@ } } }, - "@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^3.3.0" - } - }, - "@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", - "dev": true - }, "@eslint/eslintrc": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", - "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", + "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.6.0", + "espree": "^9.4.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - } } }, - "@eslint/js": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.53.0.tgz", - "integrity": "sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==", - "dev": true - }, "@hpcc-js/wasm": { "version": "1.20.1", "resolved": "https://registry.npmjs.org/@hpcc-js/wasm/-/wasm-1.20.1.tgz", "integrity": "sha512-M1Blw6CdDkiurEmUTDFf7DDOVXOVblSKHBcc/+pUiBj2lIXgxkVOZhIm54zNspQdpurv7KKJ7VbylYMQRm4IyQ==", "requires": { "yargs": "17.6.0" + }, + "dependencies": { + "yargs": { + "version": "17.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.0.tgz", + "integrity": "sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g==", + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + } + } } }, "@huggingface/inference": { @@ -11775,12 +10352,12 @@ "integrity": "sha512-Xna7arltBSBoKaH3diGi3sYvkExgJMd/pF4T6vl2YbmDccbr1G/X5EPZ2048p+YgrJYG1jTYFCtY6Dr3HvJaow==" }, "@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", "dev": true, "requires": { - "@humanwhocodes/object-schema": "^2.0.1", + "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", "minimatch": "^3.0.5" } @@ -11792,9 +10369,9 @@ "dev": true }, "@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, "@istanbuljs/load-nyc-config": { @@ -11807,524 +10384,300 @@ "get-package-type": "^0.1.0", "js-yaml": "^3.13.1", "resolve-from": "^5.0.0" - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==" - }, - "@jest/console": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", - "dev": true, - "requires": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "color-convert": "^2.0.1" + "sprintf-js": "~1.0.2" } }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "requires": { - "color-name": "~1.1.4" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "requires": { - "has-flag": "^4.0.0" + "p-limit": "^2.2.0" } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" } } }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==" + }, + "@jest/console": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.5.0.tgz", + "integrity": "sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==", + "dev": true, + "requires": { + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "slash": "^3.0.0" + } + }, "@jest/core": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.5.0.tgz", + "integrity": "sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==", "dev": true, "requires": { - "@jest/console": "^29.7.0", - "@jest/reporters": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", + "@jest/console": "^29.5.0", + "@jest/reporters": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", + "jest-changed-files": "^29.5.0", + "jest-config": "^29.5.0", + "jest-haste-map": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-resolve-dependencies": "^29.5.0", + "jest-runner": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "jest-watcher": "^29.5.0", "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", + "pretty-format": "^29.5.0", "slash": "^3.0.0", "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } } }, "@jest/environment": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.5.0.tgz", + "integrity": "sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==", "dev": true, "requires": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", + "@jest/fake-timers": "^29.5.0", + "@jest/types": "^29.5.0", "@types/node": "*", - "jest-mock": "^29.7.0" + "jest-mock": "^29.5.0" } }, "@jest/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.5.0.tgz", + "integrity": "sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==", "dev": true, "requires": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" + "expect": "^29.5.0", + "jest-snapshot": "^29.5.0" } }, "@jest/expect-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.5.0.tgz", + "integrity": "sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==", "dev": true, "requires": { - "jest-get-type": "^29.6.3" + "jest-get-type": "^29.4.3" } }, "@jest/fake-timers": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.5.0.tgz", + "integrity": "sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==", "dev": true, "requires": { - "@jest/types": "^29.6.3", + "@jest/types": "^29.5.0", "@sinonjs/fake-timers": "^10.0.2", "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" + "jest-message-util": "^29.5.0", + "jest-mock": "^29.5.0", + "jest-util": "^29.5.0" } }, "@jest/globals": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", - "dev": true, - "requires": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" - } - }, - "@jest/reporters": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", - "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", - "dev": true, - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.5.0.tgz", + "integrity": "sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==", + "dev": true, + "requires": { + "@jest/environment": "^29.5.0", + "@jest/expect": "^29.5.0", + "@jest/types": "^29.5.0", + "jest-mock": "^29.5.0" + } + }, + "@jest/reporters": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.5.0.tgz", + "integrity": "sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@jridgewell/trace-mapping": "^0.3.15", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "jest-worker": "^29.5.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" } }, "@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", + "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", "requires": { - "@sinclair/typebox": "^0.27.8" + "@sinclair/typebox": "^0.25.16" } }, "@jest/source-map": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.4.3.tgz", + "integrity": "sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==", "dev": true, "requires": { - "@jridgewell/trace-mapping": "^0.3.18", + "@jridgewell/trace-mapping": "^0.3.15", "callsites": "^3.0.0", "graceful-fs": "^4.2.9" } }, "@jest/test-result": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.5.0.tgz", + "integrity": "sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==", "dev": true, "requires": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", + "@jest/console": "^29.5.0", + "@jest/types": "^29.5.0", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "@jest/test-sequencer": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz", + "integrity": "sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==", "dev": true, "requires": { - "@jest/test-result": "^29.7.0", + "@jest/test-result": "^29.5.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", + "jest-haste-map": "^29.5.0", "slash": "^3.0.0" } }, "@jest/transform": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz", + "integrity": "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==", "requires": { "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", + "@jest/types": "^29.5.0", + "@jridgewell/trace-mapping": "^0.3.15", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", + "jest-haste-map": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.5.0", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", "write-file-atomic": "^4.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } } }, "@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", + "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", "requires": { - "@jest/schemas": "^29.6.3", + "@jest/schemas": "^29.4.3", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^17.0.8", "chalk": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } } }, "@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, "@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" }, "@jridgewell/set-array": { "version": "1.1.2", @@ -12332,26 +10685,17 @@ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" }, "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "@mongodb-js/saslprep": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.1.tgz", - "integrity": "sha512-t7c5K033joZZMspnHg/gWPE4kandgc2OxE74aYOtGKfgB9VPuVJPix0H6fhmm2erj5PBJ21mqcx34lpIGtUCsQ==", - "optional": true, + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "requires": { - "sparse-bitfield": "^3.0.3" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, "@nodelib/fs.scandir": { @@ -12381,9 +10725,9 @@ } }, "@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" + "version": "0.25.24", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", + "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==" }, "@sindresorhus/is": { "version": "4.6.0", @@ -12391,21 +10735,21 @@ "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" }, "@sinonjs/commons": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", "dev": true, "requires": { "type-detect": "4.0.8" } }, "@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz", + "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==", "dev": true, "requires": { - "@sinonjs/commons": "^3.0.0" + "@sinonjs/commons": "^2.0.0" } }, "@szmarczak/http-timer": { @@ -12435,15 +10779,15 @@ "dev": true }, "@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", "dev": true }, "@types/babel__core": { - "version": "7.20.4", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.4.tgz", - "integrity": "sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", + "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==", "requires": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", @@ -12453,34 +10797,34 @@ } }, "@types/babel__generator": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz", - "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==", + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", "requires": { "@babel/types": "^7.0.0" } }, "@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", "requires": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, "@types/babel__traverse": { - "version": "7.20.4", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", - "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", + "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", "requires": { - "@babel/types": "^7.20.7" + "@babel/types": "^7.3.0" } }, "@types/body-parser": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", "dev": true, "requires": { "@types/connect": "*", @@ -12507,18 +10851,18 @@ } }, "@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", "dev": true, "requires": { "@types/node": "*" } }, "@types/cors": { - "version": "2.8.16", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.16.tgz", - "integrity": "sha512-Trx5or1Nyg1Fq138PCuWqoApzvoSLWzZ25ORBiHMbbUT42g578lH1GT4TwYDbiUOLFuDsCkfLneT2105fsFWGg==", + "version": "2.8.13", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz", + "integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==", "requires": { "@types/node": "*" } @@ -12532,9 +10876,9 @@ } }, "@types/express": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "version": "4.17.17", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", + "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", "dev": true, "requires": { "@types/body-parser": "*", @@ -12544,9 +10888,9 @@ } }, "@types/express-serve-static-core": { - "version": "4.17.41", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz", - "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==", + "version": "4.17.35", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", + "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", "dev": true, "requires": { "@types/node": "*", @@ -12566,49 +10910,43 @@ } }, "@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", + "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", "requires": { "@types/node": "*" } }, "@types/http-cache-semantics": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", - "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==" - }, - "@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", - "dev": true + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" }, "@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" }, "@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", "requires": { "@types/istanbul-lib-coverage": "*" } }, "@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", "requires": { "@types/istanbul-lib-report": "*" } }, "@types/jest": { - "version": "29.5.8", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.8.tgz", - "integrity": "sha512-fXEFTxMV2Co8ZF5aYFJv+YeA08RTYJfhtN5c9JSv/mFEMe+xxjufCb+PHL+bJcMs/ebPUsBu+UNTEz+ydXrR6g==", + "version": "29.4.0", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.4.0.tgz", + "integrity": "sha512-VaywcGQ9tPorCX/Jkkni7RWGFfI11whqzs8dvxF41P17Z+z872thvEvlIbznjPJ02kl1HMX3LmLOonsj2n7HeQ==", "dev": true, "requires": { "expect": "^29.0.0", @@ -12616,9 +10954,9 @@ } }, "@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", "dev": true }, "@types/keyv": { @@ -12630,24 +10968,24 @@ } }, "@types/lodash": { - "version": "4.14.201", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.201.tgz", - "integrity": "sha512-y9euML0cim1JrykNxADLfaG0FgD1g/yTHwUs/Jg9ZIU7WKj2/4IW9Lbb1WZbvck78W/lfGXFfe+u2EGfIJXdLQ==", + "version": "4.14.194", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.194.tgz", + "integrity": "sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==", "dev": true }, "@types/ltijs": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@types/ltijs/-/ltijs-4.0.9.tgz", - "integrity": "sha512-vfx9wN3hvnTzlnPih67jTu/6JKHzetxs0r6TCu0QLQaGHZ3SPv+qdxarHNjXRelRyS1BecCpnbMUTRSY3y1zDA==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@types/ltijs/-/ltijs-4.0.6.tgz", + "integrity": "sha512-flyUUd42Ge5dVFxKqI6WNbBITpiLpHUvfnz5iC++hFzY6JsmmE8LvfGy3LwPSjUfgKz+/ejkbmspSrXvsYYGow==", "dev": true, "requires": { "@types/express": "*" } }, "@types/mime": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", "dev": true }, "@types/minimatch": { @@ -12666,9 +11004,9 @@ } }, "@types/node": { - "version": "18.18.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.9.tgz", - "integrity": "sha512-0f5klcuImLnG4Qreu9hPj/rEfFq6YRc5n2mAjSsH+ec/mJL+3voBH0+8T7o8RpFjH7ovc+TRsL/c7OYIQsPTfQ==", + "version": "18.19.123", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.123.tgz", + "integrity": "sha512-K7DIaHnh0mzVxreCR9qwgNxp3MH9dltPNIEddW9MYUlcKAzm+3grKNSTe2vCJHI1FaLpvpL5JGJrz1UZDKYvDg==", "requires": { "undici-types": "~5.26.4" } @@ -12683,41 +11021,47 @@ "pg-types": "^2.2.0" } }, + "@types/prettier": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", + "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", + "dev": true + }, "@types/qs": { - "version": "6.9.10", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.10.tgz", - "integrity": "sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==", + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", "dev": true }, "@types/range-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", "dev": true }, "@types/responselike": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", - "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", "requires": { "@types/node": "*" } }, "@types/seedrandom": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-3.0.8.tgz", - "integrity": "sha512-TY1eezMU2zH2ozQoAFAQFOPpvP15g+ZgSfTZt31AUUH/Rxtnz3H+A/Sv1Snw2/amp//omibc+AEkTaA8KUeOLQ==" + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-3.0.5.tgz", + "integrity": "sha512-kopEpYpFQvQdYsZkZVwht/0THHmTFFYXDaqV/lM45eweJ8kcGVDgZHs0RVTolSq55UPZNmjhKc9r7UvLu/mQQg==" }, "@types/semver": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.5.tgz", - "integrity": "sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==", + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", "dev": true }, "@types/send": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", + "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", "dev": true, "requires": { "@types/mime": "^1", @@ -12725,20 +11069,19 @@ } }, "@types/serve-static": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", - "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", + "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", "dev": true, "requires": { - "@types/http-errors": "*", "@types/mime": "*", "@types/node": "*" } }, "@types/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", "dev": true }, "@types/uuid": { @@ -12747,9 +11090,9 @@ "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==" }, "@types/webidl-conversions": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", - "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==" + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog==" }, "@types/whatwg-url": { "version": "8.2.2", @@ -12761,201 +11104,117 @@ } }, "@types/yargs": { - "version": "17.0.31", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.31.tgz", - "integrity": "sha512-bocYSx4DI8TmdlvxqGpVNXOgCNR1Jj0gNPhhAY+iz1rgKDAaYrAYdFYnhDV1IFuiuVc9HkOwyDcFxaTElF3/wg==", + "version": "17.0.22", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.22.tgz", + "integrity": "sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g==", "requires": { "@types/yargs-parser": "*" } }, "@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" }, "@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "version": "5.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.52.0.tgz", + "integrity": "sha512-lHazYdvYVsBokwCdKOppvYJKaJ4S41CgKBcPvyd0xjZNbvQdhn/pnJlGtQksQ/NhInzdaeaSarlBjDXHuclEbg==", "dev": true, "requires": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", + "@typescript-eslint/scope-manager": "5.52.0", + "@typescript-eslint/type-utils": "5.52.0", + "@typescript-eslint/utils": "5.52.0", "debug": "^4.3.4", - "graphemer": "^1.4.0", + "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", + "regexpp": "^3.2.0", "semver": "^7.3.7", "tsutils": "^3.21.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } } }, "@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "version": "5.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.52.0.tgz", + "integrity": "sha512-e2KiLQOZRo4Y0D/b+3y08i3jsekoSkOYStROYmPUnGMEoA0h+k2qOH5H6tcjIc68WDvGwH+PaOrP1XRzLJ6QlA==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/scope-manager": "5.52.0", + "@typescript-eslint/types": "5.52.0", + "@typescript-eslint/typescript-estree": "5.52.0", "debug": "^4.3.4" } }, "@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "version": "5.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.52.0.tgz", + "integrity": "sha512-AR7sxxfBKiNV0FWBSARxM8DmNxrwgnYMPwmpkC1Pl1n+eT8/I2NAUPuwDy/FmDcC6F8pBfmOcaxcxRHspgOBMw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" + "@typescript-eslint/types": "5.52.0", + "@typescript-eslint/visitor-keys": "5.52.0" } }, "@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "version": "5.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.52.0.tgz", + "integrity": "sha512-tEKuUHfDOv852QGlpPtB3lHOoig5pyFQN/cUiZtpw99D93nEBjexRLre5sQZlkMoHry/lZr8qDAt2oAHLKA6Jw==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", + "@typescript-eslint/typescript-estree": "5.52.0", + "@typescript-eslint/utils": "5.52.0", "debug": "^4.3.4", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "version": "5.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.52.0.tgz", + "integrity": "sha512-oV7XU4CHYfBhk78fS7tkum+/Dpgsfi91IIDy7fjCyq2k6KB63M6gMC0YIvy+iABzmXThCRI6xpCEyVObBdWSDQ==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "version": "5.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.52.0.tgz", + "integrity": "sha512-WeWnjanyEwt6+fVrSR0MYgEpUAuROxuAH516WPjUblIrClzYJj0kBbjdnbQXLpgAN8qbEuGywiQsXUVDiAoEuQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", + "@typescript-eslint/types": "5.52.0", + "@typescript-eslint/visitor-keys": "5.52.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", "semver": "^7.3.7", "tsutils": "^3.21.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } } }, "@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "version": "5.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.52.0.tgz", + "integrity": "sha512-As3lChhrbwWQLNk2HC8Ree96hldKIqk98EYvypd3It8Q1f8d5zWyIoaZEp2va5667M4ZyE7X8UUR+azXrFl+NA==", "dev": true, "requires": { - "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/scope-manager": "5.52.0", + "@typescript-eslint/types": "5.52.0", + "@typescript-eslint/typescript-estree": "5.52.0", "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", "semver": "^7.3.7" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } } }, "@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "version": "5.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.52.0.tgz", + "integrity": "sha512-qMwpw6SU5VHCPr99y274xhbm+PRViK/NATY6qzt+Et7+mThGuFSl/ompj2/hrBlRP/kq+BFdgagnOSgw9TB0eA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/types": "5.52.0", "eslint-visitor-keys": "^3.3.0" } }, - "@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, "@zxing/text-encoding": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", @@ -12972,9 +11231,9 @@ } }, "acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true }, "acorn-jsx": { @@ -12985,9 +11244,9 @@ "requires": {} }, "acorn-walk": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz", - "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "dev": true }, "ajv": { @@ -13014,6 +11273,14 @@ "dev": true, "requires": { "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + } } }, "ansi-regex": { @@ -13022,11 +11289,11 @@ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" } }, "anymatch": { @@ -13045,12 +11312,10 @@ "dev": true }, "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true }, "array-flatten": { "version": "1.1.1", @@ -13063,10 +11328,28 @@ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, "async": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" }, "available-typed-arrays": { "version": "1.0.5", @@ -13074,9 +11357,9 @@ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" }, "aws-sdk": { - "version": "2.1494.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1494.0.tgz", - "integrity": "sha512-i7wIEBUzhIOuCeE8moB4rXUr7y+5rviiGJ6hsdQJdqwDxzStkmV7+cvKllNVx3+kuv0jdNbkVZ+wHBANi91Wxw==", + "version": "2.1378.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1378.0.tgz", + "integrity": "sha512-9ZY11zkc3nMSejrrj08NdL+7hgiY7GZE3Sk7eVhH4VAJeoNqAMAyxc61Sg9yi83Y1i5rRWIcIgX9CYwenokyWQ==", "requires": { "buffer": "4.9.2", "events": "1.1.1", @@ -13106,62 +11389,17 @@ } }, "babel-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz", + "integrity": "sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==", "requires": { - "@jest/transform": "^29.7.0", + "@jest/transform": "^29.5.0", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", + "babel-preset-jest": "^29.5.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } } }, "babel-plugin-istanbul": { @@ -13177,9 +11415,9 @@ } }, "babel-plugin-jest-hoist": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz", + "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==", "requires": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", @@ -13188,30 +11426,37 @@ } }, "babel-plugin-polyfill-corejs2": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", - "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", "requires": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.3", - "semver": "^6.3.1" + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } } }, "babel-plugin-polyfill-corejs3": { - "version": "0.8.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz", - "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", "requires": { - "@babel/helper-define-polyfill-provider": "^0.4.3", - "core-js-compat": "^3.33.1" + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" } }, "babel-plugin-polyfill-regenerator": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", - "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", "requires": { - "@babel/helper-define-polyfill-provider": "^0.4.3" + "@babel/helper-define-polyfill-provider": "^0.3.3" } }, "babel-preset-current-node-syntax": { @@ -13234,11 +11479,11 @@ } }, "babel-preset-jest": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz", + "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==", "requires": { - "babel-plugin-jest-hoist": "^29.6.3", + "babel-plugin-jest-hoist": "^29.5.0", "babel-preset-current-node-syntax": "^1.0.0" } }, @@ -13303,6 +11548,11 @@ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" }, + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, "body-parser": { "version": "1.20.1", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", @@ -13337,37 +11587,101 @@ } } }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + }, + "browser-or-node": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-1.3.0.tgz", + "integrity": "sha512-0F2z/VSnLbmEeBcUrSuDH5l0HxTXdQQzLjkmBR4cYfvg1zJrKSlmIZFqyFR8oX0NrwPhy3c3HQ6i3OxMbew4Tg==" + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", "requires": { - "fill-range": "^7.0.1" + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" } }, - "browser-or-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-2.1.1.tgz", - "integrity": "sha512-8CVjaLJGuSKMVTxJ2DpBl5XnlNDiT4cQFeuCJJrvJmts9YrTZDizTX7PjC2s6W4x+MBGZeEY6dGMrF04/6Hgqg==" + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } }, "browserslist": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", "requires": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.13" + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" } }, "bs-logger": { @@ -13423,6 +11737,11 @@ "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==" }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + }, "bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -13458,13 +11777,12 @@ } }, "call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "requires": { - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" } }, "callsites": { @@ -13479,18 +11797,17 @@ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, "caniuse-lite": { - "version": "1.0.30001561", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001561.tgz", - "integrity": "sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==" + "version": "1.0.30001462", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001462.tgz", + "integrity": "sha512-PDd20WuOBPiasZ7KbFnmQRyuLE7cFXW2PVd7dmALzbkUXEP46upAuCDm9eY9vho8fgNMGmbAX92QBZHzcnWIqw==" }, "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, "char-regex": { @@ -13500,14 +11817,23 @@ "dev": true }, "ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==" + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==" + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } }, "cjs-module-lexer": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", - "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", "dev": true }, "cliui": { @@ -13535,23 +11861,23 @@ "dev": true }, "collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", "dev": true }, "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "color-name": "1.1.3" + "color-name": "~1.1.4" } }, "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "commander": { "version": "2.20.3", @@ -13608,11 +11934,11 @@ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, "core-js-compat": { - "version": "3.33.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.2.tgz", - "integrity": "sha512-axfo+wxFVxnqf8RvxTzoAlzW4gRoacrHeoFlc9n0x50+7BEyZL/Rt3hicaED1/CEd7I6tPCPVUYcJwCMO5XUYw==", + "version": "3.29.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.29.0.tgz", + "integrity": "sha512-ScMn3uZNAFhK2DGoEfErguoiAHhV2Ju+oJo/jK08p7B3f3UhocUrCCkTvnZaiS+edl5nlIoiBXKcwMc6elv4KQ==", "requires": { - "browserslist": "^4.22.1" + "browserslist": "^4.21.5" } }, "core-util-is": { @@ -13629,72 +11955,47 @@ "vary": "^1" } }, - "create-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", - "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", - "dev": true, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", "requires": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "prompts": "^2.0.1" + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" } } }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, "create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", @@ -13712,6 +12013,24 @@ "which": "^2.0.1" } }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, "data-uri-to-buffer": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", @@ -13746,11 +12065,10 @@ } }, "dedent": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", - "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", - "dev": true, - "requires": {} + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true }, "deep-is": { "version": "0.1.4", @@ -13759,9 +12077,9 @@ "dev": true }, "deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.0.tgz", + "integrity": "sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==", "dev": true }, "defer-to-connect": { @@ -13769,16 +12087,6 @@ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" }, - "define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", - "requires": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - } - }, "denque": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", @@ -13789,6 +12097,15 @@ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, "destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", @@ -13807,11 +12124,28 @@ "dev": true }, "diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", + "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", "dev": true }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, "dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -13859,9 +12193,30 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "electron-to-chromium": { - "version": "1.4.581", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.581.tgz", - "integrity": "sha512-6uhqWBIapTJUxgPTCHH9sqdbxIMPt7oXl0VcAL1kOtlU6aECdcMncCrX5Z7sHQ/invtrC9jUQUef7+HhO8vVFw==" + "version": "1.4.324", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.324.tgz", + "integrity": "sha512-m+eBs/kh3TXnCuqDF6aHLLRwLK2U471JAbZ1KYigf0TM96fZglxv0/ZFBvyIxnLKsIWUoDiVnHTA2mhYz1fqdA==" + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } }, "emittery": { "version": "0.13.1", @@ -13896,6 +12251,11 @@ "is-arrayish": "^0.2.1" } }, + "es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==" + }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -13907,106 +12267,62 @@ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true }, "eslint": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.53.0.tgz", - "integrity": "sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==", + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.34.0.tgz", + "integrity": "sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg==", "dev": true, "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.3", - "@eslint/js": "8.53.0", - "@humanwhocodes/config-array": "^0.11.13", + "@eslint/eslintrc": "^1.4.1", + "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", + "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "globals": "^13.19.0", - "graphemer": "^1.4.0", + "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", + "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, "eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, "requires": { "esrecurse": "^4.3.0", @@ -14018,73 +12334,6 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true } } }, @@ -14098,21 +12347,38 @@ "estraverse": "^4.1.1" } }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } + } + }, "eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", "dev": true }, "espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", "dev": true, "requires": { - "acorn": "^8.9.0", + "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "eslint-visitor-keys": "^3.3.0" } }, "esprima": { @@ -14121,9 +12387,9 @@ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, "esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, "requires": { "estraverse": "^5.1.0" @@ -14175,6 +12441,15 @@ "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", "integrity": "sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==" }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, "execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -14199,16 +12474,16 @@ "dev": true }, "expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.5.0.tgz", + "integrity": "sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==", "dev": true, "requires": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" + "@jest/expect-utils": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0" } }, "express": { @@ -14271,9 +12546,9 @@ "dev": true }, "fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -14311,12 +12586,19 @@ "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", "requires": { "punycode": "^1.3.2" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + } } }, "fast-xml-parser": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.3.2.tgz", - "integrity": "sha512-rmrXUXwbJedoXkStenj1kkljNF7ugn5ZjR9FJcwmCfcCbtOMDghPajbc+Tck6vE6F5XsDmx+Pr2le9fw8+pXBg==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.2.tgz", + "integrity": "sha512-DLzIPtQqmvmdq3VUKR7T6omPK/VCRNqgFlGtbESfyhcH2R4I8EzK1/K6E8PkRCK2EabWrUHK32NjYRbEFnnz0Q==", "requires": { "strnum": "^1.0.5" } @@ -14399,35 +12681,35 @@ } }, "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, "requires": { - "locate-path": "^5.0.0", + "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "flat-cache": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", - "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, "requires": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", + "flatted": "^3.1.0", "rimraf": "^3.0.2" } }, "flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, "follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" }, "for-each": { "version": "0.3.3", @@ -14451,9 +12733,9 @@ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" }, "fp-ts": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-2.16.1.tgz", - "integrity": "sha512-by7U5W8dkIzcvDofUcO42yl9JbnHTEDBrzu3pt5fKT+Z4Oy85I21K80EYJYdjQGC2qum4Vo55Ag57iiIK4FYuA==" + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-2.15.0.tgz", + "integrity": "sha512-3o6EllAvGuCsDgjM+frscLKDRPR9pqbrg13tJ13z86F4eni913kBV8h85rM6zpu2fEvJ8RWA0ouYlUWwHEmxTg==" }, "fresh": { "version": "0.5.2", @@ -14466,15 +12748,15 @@ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "optional": true }, "function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "gensync": { "version": "1.0.0-beta.2", @@ -14487,14 +12769,14 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, "get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", "requires": { - "function-bind": "^1.1.2", + "function-bind": "^1.1.1", + "has": "^1.0.3", "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "has-symbols": "^1.0.3" } }, "get-package-type": { @@ -14531,9 +12813,13 @@ } }, "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } }, "globby": { "version": "11.1.0", @@ -14576,21 +12862,16 @@ } }, "graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, - "graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", "dev": true }, - "graphology-types": { - "version": "0.24.7", - "resolved": "https://registry.npmjs.org/graphology-types/-/graphology-types-0.24.7.tgz", - "integrity": "sha512-tdcqOOpwArNjEr0gNQKCXwaNCWnQJrog14nJNQPeemcLnXQUUGrsCWpWkVKt46zLjcS6/KGoayeJfHHyPDlvwA==" - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -14600,17 +12881,9 @@ } }, "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" - }, - "has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", - "requires": { - "get-intrinsic": "^1.2.2" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "has-proto": { "version": "1.0.1", @@ -14630,12 +12903,23 @@ "has-symbols": "^1.0.2" } }, - "hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "requires": { - "function-bind": "^1.1.2" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, "helmet": { @@ -14643,6 +12927,16 @@ "resolved": "https://registry.npmjs.org/helmet/-/helmet-6.2.0.tgz", "integrity": "sha512-DWlwuXLLqbrIOltR6tFQXShj/+7Cyp0gLi6uAb8qMdFh/YBBFbKSgQ6nbXmScYd8emMctuthmgIa7tUfo9Rtyg==" }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, "html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -14716,14 +13010,6 @@ "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - } } }, "import-local": { @@ -14761,9 +13047,9 @@ "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" }, "ipaddr.js": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", - "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==" }, "is-arguments": { "version": "1.1.1", @@ -14786,11 +13072,11 @@ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==" }, "is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "requires": { - "hasown": "^2.0.0" + "has": "^1.0.3" } }, "is-extglob": { @@ -14845,11 +13131,15 @@ "dev": true }, "is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", "requires": { - "which-typed-array": "^1.1.11" + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" } }, "isarray": { @@ -14873,9 +13163,9 @@ } }, "istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==" + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==" }, "istanbul-lib-instrument": { "version": "5.2.1", @@ -14887,34 +13177,24 @@ "@istanbuljs/schema": "^0.1.2", "istanbul-lib-coverage": "^3.2.0", "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } } }, "istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", "dev": true, "requires": { "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", + "make-dir": "^3.0.0", "supports-color": "^7.1.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } } }, "istanbul-lib-source-maps": { @@ -14929,9 +13209,9 @@ } }, "istanbul-reports": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, "requires": { "html-escaper": "^2.0.0", @@ -14939,583 +13219,226 @@ } }, "jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.5.0.tgz", + "integrity": "sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==", "dev": true, "requires": { - "@jest/core": "^29.7.0", - "@jest/types": "^29.6.3", + "@jest/core": "^29.5.0", + "@jest/types": "^29.5.0", "import-local": "^3.0.2", - "jest-cli": "^29.7.0" + "jest-cli": "^29.5.0" } }, "jest-changed-files": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz", + "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==", "dev": true, "requires": { "execa": "^5.0.0", - "jest-util": "^29.7.0", "p-limit": "^3.1.0" } }, "jest-circus": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.5.0.tgz", + "integrity": "sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==", "dev": true, "requires": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", + "@jest/environment": "^29.5.0", + "@jest/expect": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", - "dedent": "^1.0.0", + "dedent": "^0.7.0", "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", + "jest-each": "^29.5.0", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", + "pretty-format": "^29.5.0", "pure-rand": "^6.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } } }, "jest-cli": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.5.0.tgz", + "integrity": "sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==", "dev": true, "requires": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", + "@jest/core": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", "chalk": "^4.0.0", - "create-jest": "^29.7.0", "exit": "^0.1.2", + "graceful-fs": "^4.2.9", "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", + "jest-config": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "prompts": "^2.0.1", "yargs": "^17.3.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } } }, "jest-config": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz", + "integrity": "sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==", "dev": true, "requires": { "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", + "@jest/test-sequencer": "^29.5.0", + "@jest/types": "^29.5.0", + "babel-jest": "^29.5.0", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", + "jest-circus": "^29.5.0", + "jest-environment-node": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-runner": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", "micromatch": "^4.0.4", "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", + "pretty-format": "^29.5.0", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } } }, "jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz", + "integrity": "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==", "dev": true, "requires": { "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "diff-sequences": "^29.4.3", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" } }, "jest-docblock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz", + "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==", "dev": true, "requires": { "detect-newline": "^3.0.0" } }, "jest-each": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.5.0.tgz", + "integrity": "sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==", "dev": true, "requires": { - "@jest/types": "^29.6.3", + "@jest/types": "^29.5.0", "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "jest-get-type": "^29.4.3", + "jest-util": "^29.5.0", + "pretty-format": "^29.5.0" } }, "jest-environment-node": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.5.0.tgz", + "integrity": "sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==", "dev": true, "requires": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", + "@jest/environment": "^29.5.0", + "@jest/fake-timers": "^29.5.0", + "@jest/types": "^29.5.0", "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" + "jest-mock": "^29.5.0", + "jest-util": "^29.5.0" } }, "jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", + "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", "dev": true }, "jest-haste-map": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz", + "integrity": "sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==", "requires": { - "@jest/types": "^29.6.3", + "@jest/types": "^29.5.0", "@types/graceful-fs": "^4.1.3", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "fsevents": "^2.3.2", "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.5.0", + "jest-worker": "^29.5.0", "micromatch": "^4.0.4", "walker": "^1.0.8" } }, "jest-leak-detector": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", - "dev": true, - "requires": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - } - }, - "jest-matcher-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz", + "integrity": "sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==", "dev": true, "requires": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" } }, - "jest-message-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "jest-matcher-utils": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz", + "integrity": "sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^29.5.0", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" + } + }, + "jest-message-util": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz", + "integrity": "sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.5.0", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" } }, "jest-mock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.5.0.tgz", + "integrity": "sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==", "dev": true, "requires": { - "@jest/types": "^29.6.3", + "@jest/types": "^29.5.0", "@types/node": "*", - "jest-util": "^29.7.0" + "jest-util": "^29.5.0" } }, "jest-pnp-resolver": { @@ -15526,564 +13449,189 @@ "requires": {} }, "jest-regex-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==" + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz", + "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==" }, "jest-resolve": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.5.0.tgz", + "integrity": "sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==", "dev": true, "requires": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", + "jest-haste-map": "^29.5.0", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", "resolve": "^1.20.0", "resolve.exports": "^2.0.0", "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } } }, "jest-resolve-dependencies": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz", + "integrity": "sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==", "dev": true, "requires": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" + "jest-regex-util": "^29.4.3", + "jest-snapshot": "^29.5.0" } }, "jest-runner": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.5.0.tgz", + "integrity": "sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==", "dev": true, "requires": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", + "@jest/console": "^29.5.0", + "@jest/environment": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.13.1", "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", + "jest-docblock": "^29.4.3", + "jest-environment-node": "^29.5.0", + "jest-haste-map": "^29.5.0", + "jest-leak-detector": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-resolve": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-util": "^29.5.0", + "jest-watcher": "^29.5.0", + "jest-worker": "^29.5.0", "p-limit": "^3.1.0", "source-map-support": "0.5.13" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } } }, "jest-runtime": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", - "dev": true, - "requires": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.5.0.tgz", + "integrity": "sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==", + "dev": true, + "requires": { + "@jest/environment": "^29.5.0", + "@jest/fake-timers": "^29.5.0", + "@jest/globals": "^29.5.0", + "@jest/source-map": "^29.4.3", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", "@types/node": "*", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", + "jest-haste-map": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-mock": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } } }, "jest-snapshot": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.5.0.tgz", + "integrity": "sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==", "dev": true, "requires": { "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", "@babel/plugin-syntax-jsx": "^7.7.2", "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", + "@jest/expect-utils": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^29.7.0", + "expect": "^29.5.0", "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", + "jest-diff": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } + "pretty-format": "^29.5.0", + "semver": "^7.3.5" } }, "jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz", + "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==", "requires": { - "@jest/types": "^29.6.3", + "@jest/types": "^29.5.0", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", "graceful-fs": "^4.2.9", "picomatch": "^2.2.3" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } } }, "jest-validate": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz", + "integrity": "sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==", "dev": true, "requires": { - "@jest/types": "^29.6.3", + "@jest/types": "^29.5.0", "camelcase": "^6.2.0", "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", + "jest-get-type": "^29.4.3", "leven": "^3.1.0", - "pretty-format": "^29.7.0" + "pretty-format": "^29.5.0" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, "camelcase": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } } } }, "jest-watcher": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.5.0.tgz", + "integrity": "sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==", "dev": true, "requires": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "emittery": "^0.13.1", - "jest-util": "^29.7.0", + "jest-util": "^29.5.0", "string-length": "^4.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } } }, "jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz", + "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==", "requires": { "@types/node": "*", - "jest-util": "^29.7.0", + "jest-util": "^29.5.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, "supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -16099,18 +13647,24 @@ "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.16.0.tgz", "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==" }, + "js-sdsl": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", + "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", + "dev": true + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" } }, "jsesc": { @@ -16152,43 +13706,14 @@ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" }, "jsonwebtoken": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", - "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.1.tgz", + "integrity": "sha512-K8wx7eJ5TPvEjuiVSkv167EVboBDv9PZdDoF7BgeQnBLVvZWW9clr2PsQHVJDTKaEIH5JBIwHujGcHp7GgI2eg==", "requires": { "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", + "lodash": "^4.17.21", "ms": "^2.1.1", - "semver": "^7.5.4" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } + "semver": "^7.3.8" } }, "jwa": { @@ -16216,9 +13741,9 @@ "integrity": "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ==" }, "keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", + "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==", "requires": { "json-buffer": "3.0.1" } @@ -16252,11 +13777,12 @@ "dev": true }, "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, "requires": { - "p-locate": "^4.1.0" + "p-locate": "^5.0.0" } }, "lodash": { @@ -16269,36 +13795,6 @@ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" }, - "lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" - }, - "lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" - }, - "lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" - }, - "lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" - }, "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -16311,22 +13807,17 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" - }, "lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" }, "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "requires": { - "yallist": "^3.0.2" + "yallist": "^4.0.0" } }, "ltijs": { @@ -16383,9 +13874,9 @@ } }, "bson": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/bson/-/bson-5.5.1.tgz", - "integrity": "sha512-ix0EwukN2EpC0SRWIj/7B5+A6uQMQy6KMREI9qQqvgpkV2frH63T0UDVd1SYedL6dNCmDBYB3QtXi4ISk9YT+g==" + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-5.4.0.tgz", + "integrity": "sha512-WRZ5SQI5GfUuKnPTNmAYPiKIof3ORXAF4IRU5UcgmivNIon01rWQlw5RUH954dpu8yGL8T59YShVddIPaU/gFA==" }, "kareem": { "version": "2.5.1", @@ -16393,24 +13884,24 @@ "integrity": "sha512-7jFxRVm+jD+rkq3kY0iZDJfsO2/t4BBPeEb2qKn2lR/9KhuksYk5hxzfRYWMPV8P/x2d0kHD306YyWLzjjH+uA==" }, "mongodb": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.9.0.tgz", - "integrity": "sha512-g+GCMHN1CoRUA+wb1Agv0TI4YTSiWr42B5ulkiAfLLHitGK1R+PkSAf3Lr5rPZwi/3F04LiaZEW0Kxro9Fi2TA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.7.0.tgz", + "integrity": "sha512-zm82Bq33QbqtxDf58fLWBwTjARK3NSvKYjyz997KSy6hpat0prjeX/kxjbPVyZY60XYPDNETaHkHJI2UCzSLuw==", "requires": { - "@mongodb-js/saslprep": "^1.1.0", - "bson": "^5.5.0", + "bson": "^5.4.0", "mongodb-connection-string-url": "^2.6.0", + "saslprep": "^1.0.3", "socks": "^2.7.1" } }, "mongoose": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-7.6.4.tgz", - "integrity": "sha512-kadPkS/f5iZJrrMxxOvSoOAErXmdnb28lMvHmuYgmV1ZQTpRqpp132PIPHkJMbG4OC2H0eSXYw/fNzYTH+LUcw==", + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-7.4.1.tgz", + "integrity": "sha512-o3E5KHHiHdaiwCJG3+9r70sncRKki71Ktf/TfXdW6myu+53rtZ56uLl5ylkQiCf60V3COJuOeekcxXVsjQ7cBA==", "requires": { - "bson": "^5.5.0", + "bson": "^5.4.0", "kareem": "2.5.1", - "mongodb": "5.9.0", + "mongodb": "5.7.0", "mpath": "0.9.0", "mquery": "5.0.0", "ms": "2.1.3", @@ -16454,36 +13945,18 @@ } }, "make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { - "semver": "^7.5.3" + "semver": "^6.0.0" }, "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } @@ -16502,6 +13975,16 @@ "tmpl": "1.0.5" } }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -16543,6 +14026,22 @@ "picomatch": "^2.3.1" } }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -16572,6 +14071,16 @@ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + }, "minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -16580,31 +14089,47 @@ "brace-expansion": "^1.1.7" } }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + }, "minio": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/minio/-/minio-7.1.3.tgz", - "integrity": "sha512-xPrLjWkTT5E7H7VnzOjF//xBp9I40jYB4aWhb2xTFopXXfw+Wo82DDWngdUju7Doy3Wk7R8C4LAgwhLHHnf0wA==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/minio/-/minio-7.1.0.tgz", + "integrity": "sha512-AgT23/TaViYieZiFofoCakidPmHiv3ag6/YiX1/hFdowbzMNr2dT2Ido3qWEThjn2Y252VH5i9OVUb+9wevZFA==", "requires": { - "async": "^3.2.4", - "block-stream2": "^2.1.0", - "browser-or-node": "^2.1.1", + "async": "^3.1.0", + "block-stream2": "^2.0.0", + "browser-or-node": "^1.3.0", "buffer-crc32": "^0.2.13", - "fast-xml-parser": "^4.2.2", + "crypto-browserify": "^3.12.0", + "es6-error": "^4.1.1", + "fast-xml-parser": "^4.1.3", "ipaddr.js": "^2.0.1", "json-stream": "^1.0.0", "lodash": "^4.17.21", - "mime-types": "^2.1.35", - "query-string": "^7.1.3", - "through2": "^4.0.2", + "mime-types": "^2.1.14", + "mkdirp": "^0.5.1", + "query-string": "^7.1.1", + "through2": "^3.0.1", "web-encoding": "^1.1.5", - "xml": "^1.0.1", + "xml": "^1.0.0", "xml2js": "^0.5.0" } }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "requires": { + "minimist": "^1.2.6" + } + }, "mongodb": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.7.4.tgz", - "integrity": "sha512-K5q8aBqEXMwWdVNh94UQTwZ6BejVbFhh1uB6c5FKtPE9eUMZPUO3sRZdgIEcHSrAWmxzpG/FeODDKL388sqRmw==", + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.7.3.tgz", + "integrity": "sha512-Psm+g3/wHXhjBEktkxXsFMZvd3nemI0r3IPsE0bU+4//PnvNWKkzhZcEsbPcYiWqe8XqXJJEg4Tgtr7Raw67Yw==", "requires": { "bl": "^2.2.1", "bson": "^1.1.4", @@ -16634,15 +14159,15 @@ } }, "mongoose": { - "version": "5.13.21", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.13.21.tgz", - "integrity": "sha512-EvSrXrCBogenxY131qKasFcT1Pj+9Pg5AXj17vQ8S1mOEArK3CpOx965u1wTIrdnQ7DjFC+SRwPxNcqUjMAVyQ==", + "version": "5.13.17", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.13.17.tgz", + "integrity": "sha512-kzlwQgrWaQflFSdENNGN4+FQEm/yOMgR1T1okIp5fARGQ8YKdjO+0U9Ikzsv5OVSFIkE0ATyJj2XxawYbf2bpA==", "requires": { "@types/bson": "1.x || 4.0.x", "@types/mongodb": "^3.5.27", "bson": "^1.1.4", "kareem": "2.3.2", - "mongodb": "3.7.4", + "mongodb": "3.7.3", "mongoose-legacy-pluralize": "1.0.2", "mpath": "0.8.4", "mquery": "3.2.5", @@ -16775,9 +14300,9 @@ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" }, "node-fetch": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", + "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", "requires": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -16790,9 +14315,9 @@ "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" }, "node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==" }, "normalize-path": { "version": "3.0.0", @@ -16819,9 +14344,9 @@ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" }, "object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==" + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" }, "on-finished": { "version": "2.4.1", @@ -16854,17 +14379,17 @@ "integrity": "sha512-RV2Zp2MY2aeYK5G+B/Sps8lW5NHAzE5QClbFP15j+PWmP+T9PxlJXBOOLoSAdgwFvS4t0aMR4vpedMkbHfh0nA==" }, "optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, "requires": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" } }, "p-cancelable": { @@ -16882,21 +14407,12 @@ } }, "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, "requires": { - "p-limit": "^2.2.0" - }, - "dependencies": { - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - } + "p-limit": "^3.0.2" } }, "p-try": { @@ -16918,6 +14434,18 @@ "callsites": "^3.0.0" } }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, "parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -16975,31 +14503,43 @@ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, "pg": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.3.tgz", - "integrity": "sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.0.tgz", + "integrity": "sha512-meLUVPn2TWgJyLmy7el3fQQVwft4gU5NGyvV0XbD41iU9Jbg8lCH4zexhIkihDzVHJStlt6r088G6/fWeNjhXA==", "requires": { "buffer-writer": "2.0.0", "packet-reader": "1.0.0", - "pg-cloudflare": "^1.1.1", - "pg-connection-string": "^2.6.2", - "pg-pool": "^3.6.1", + "pg-cloudflare": "^1.1.0", + "pg-connection-string": "^2.6.0", + "pg-pool": "^3.6.0", "pg-protocol": "^1.6.0", "pg-types": "^2.1.0", "pgpass": "1.x" } }, "pg-cloudflare": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz", - "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.0.tgz", + "integrity": "sha512-tGM8/s6frwuAIyRcJ6nWcIvd3+3NmUKIs6OjviIm1HPPFEt5MzQDOTBQyhPWg/m0kCl95M6gA1JaIXtS8KovOA==", "optional": true }, "pg-connection-string": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz", - "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==" + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.0.tgz", + "integrity": "sha512-x14ibktcwlHKoHxx9X3uTVW9zIGR41ZB6QNhHb21OPNdCCO3NaRnpJuwKIQSR4u+Yqjx4HCvy7Hh7VSy1U4dGg==" }, "pg-int8": { "version": "1.0.1", @@ -17007,9 +14547,9 @@ "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==" }, "pg-pool": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.1.tgz", - "integrity": "sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.0.tgz", + "integrity": "sha512-clFRf2ksqd+F497kWFyM21tMjeikn60oGDmqMT8UBrynEwVEX/5R5xd2sdvdo1cZCFlguORNpVuqxIj+aK4cfQ==", "requires": {} }, "pg-protocol": { @@ -17038,9 +14578,9 @@ } }, "pgsql-ast-parser": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/pgsql-ast-parser/-/pgsql-ast-parser-11.1.0.tgz", - "integrity": "sha512-c0XnjHzUyg2Z/3iB2Akk6+jDtsza4Jqw4bC5SSt9pQ3b+K4aQC75gJQDvsNYvFqQNaPHLCUunDLPc5SZsQQLIA==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/pgsql-ast-parser/-/pgsql-ast-parser-11.0.1.tgz", + "integrity": "sha512-ds6WgKw/Ljv4hs0lGTDBd1qEcOa5SsMAqKEaHhY8UbvyuD0mN0R1VVesvcsiEE5ffZ4879jqAry4DHkC1LkdCw==", "requires": { "moo": "^0.5.1", "nearley": "^2.19.5" @@ -17057,9 +14597,9 @@ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, "pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==" + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==" }, "pkg-dir": { "version": "4.2.0", @@ -17068,6 +14608,45 @@ "dev": true, "requires": { "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + } } }, "postgres-array": { @@ -17100,18 +14679,18 @@ "dev": true }, "prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.4.tgz", + "integrity": "sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==", "dev": true }, "pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz", + "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==", "dev": true, "requires": { - "@jest/schemas": "^29.6.3", + "@jest/schemas": "^29.4.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" }, @@ -17155,6 +14734,26 @@ } } }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -17165,14 +14764,14 @@ } }, "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" }, "pure-rand": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", - "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.0.tgz", + "integrity": "sha512-rLSBxJjP+4DQOgcJAx6RZHT2he2pkhQdSnofG5VWyVl6GRq/K02ISOuOLcsMOrtKDIJb8JN2zm3FFzWNbezdPw==", "dev": true }, "qs": { @@ -17224,6 +14823,23 @@ "ret": "^0.2.0" } }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, "range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -17273,22 +14889,22 @@ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" }, "regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", "requires": { "regenerate": "^1.4.2" } }, "regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, "regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", "requires": { "@babel/runtime": "^7.8.4" } @@ -17298,10 +14914,16 @@ "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, "regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.1.tgz", + "integrity": "sha512-nCOzW2V/X15XpLsK2rlgdwrysrBq+AauCn+omItIz4R1pIcmeot5zvjdmOBRLzEH/CkC6IxMJVmxDe3QcMuNVQ==", "requires": { "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", @@ -17337,11 +14959,11 @@ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" }, "resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "requires": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.9.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -17358,17 +14980,26 @@ "dev": true, "requires": { "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } } }, "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true }, "resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.1.tgz", + "integrity": "sha512-OEJWVeimw8mgQuj3HfkNl4KqRevH7lzeQNaWRPfx0PPse7Jk6ozcsG4FKVgtzDsC1KUF+YlTHh17NcgHOPykLw==", "dev": true }, "responselike": { @@ -17399,6 +15030,15 @@ "glob": "^7.1.3" } }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, "run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -17438,9 +15078,12 @@ "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==" }, "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "requires": { + "lru-cache": "^6.0.0" + } }, "send": { "version": "0.18.0", @@ -17495,22 +15138,20 @@ "send": "0.18.0" } }, - "set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", - "requires": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - } - }, "setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -17713,11 +15354,11 @@ "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "requires": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" } }, "supports-preserve-symlinks-flag": { @@ -17742,11 +15383,12 @@ "dev": true }, "through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", "requires": { - "readable-stream": "3" + "inherits": "^2.0.4", + "readable-stream": "2 || 3" } }, "tmpl": { @@ -17778,19 +15420,12 @@ "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", "requires": { "punycode": "^2.1.1" - }, - "dependencies": { - "punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==" - } } }, "ts-jest": { - "version": "29.1.1", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.1.tgz", - "integrity": "sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==", + "version": "29.0.5", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.0.5.tgz", + "integrity": "sha512-PL3UciSgIpQ7f6XjVOmbi96vmDHUqAyqDr8YxzopDqX3kfgYtX1cuNeBjP+L9sFXi6nzsGGA6R3fP3DDDJyrxA==", "dev": true, "requires": { "bs-logger": "0.x", @@ -17799,40 +15434,14 @@ "json5": "^2.2.3", "lodash.memoize": "4.x", "make-error": "1.x", - "semver": "^7.5.3", + "semver": "7.x", "yargs-parser": "^21.0.1" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } } }, "ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "dev": true, "requires": { "@cspotcode/source-map-support": "^0.8.0", @@ -17881,9 +15490,9 @@ "dev": true }, "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true }, "type-is": { @@ -17941,9 +15550,9 @@ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" }, "update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", "requires": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -17956,14 +15565,6 @@ "dev": true, "requires": { "punycode": "^2.1.0" - }, - "dependencies": { - "punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true - } } }, "url": { @@ -18016,14 +15617,22 @@ "dev": true }, "v8-to-istanbul": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz", - "integrity": "sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", + "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", "dev": true, "requires": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" + "convert-source-map": "^1.6.0" + }, + "dependencies": { + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + } } }, "vary": { @@ -18077,17 +15686,24 @@ } }, "which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", "requires": { "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", + "call-bind": "^1.0.2", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" } }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, "wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -18096,29 +15712,6 @@ "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - } } }, "wrappy": { @@ -18165,14 +15758,15 @@ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" }, "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yargs": { - "version": "17.6.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.0.tgz", - "integrity": "sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g==", + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", + "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "dev": true, "requires": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -18180,7 +15774,7 @@ "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" + "yargs-parser": "^21.1.1" } }, "yargs-parser": { diff --git a/package.json b/package.json index e25eaeb..26d09a5 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,6 @@ "dotenv": "^8.2.0", "express": "^4.17.1", "fp-ts": "^2.15.0", - "graphology-types": "^0.24.7", "huggingface": "^1.3.0", "lodash": "^4.17.21", "ltijs": "github:plc-dev/ltijs", @@ -62,7 +61,7 @@ "@types/jest": "^29.4.0", "@types/lodash": "^4.14.191", "@types/ltijs": "^4.0.6", - "@types/node": "^18.14.2", + "@types/node": "^18.19.123", "@typescript-eslint/eslint-plugin": "^5.52.0", "@typescript-eslint/parser": "^5.52.0", "eslint": "^8.34.0", @@ -70,7 +69,7 @@ "prettier": "^2.8.4", "reflect-metadata": "^0.1.13", "ts-jest": "^29.0.5", - "ts-node": "^10.9.2", + "ts-node": "^10.9.1", "typescript": "^4.9.5" } } diff --git a/phasen_eingaben.json b/phasen_eingaben.json new file mode 100644 index 0000000..c404be8 --- /dev/null +++ b/phasen_eingaben.json @@ -0,0 +1,6 @@ +{ + "Phase_0": 1, + "Phase_1": 1, + "Phase_2": 2, + "Phase_3": 3 +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml deleted file mode 100644 index 7cee299..0000000 --- a/pnpm-lock.yaml +++ /dev/null @@ -1,5849 +0,0 @@ -lockfileVersion: 5.4 - -specifiers: - '@babel/core': ^7.21.0 - '@babel/preset-env': ^7.20.2 - '@babel/preset-typescript': ^7.21.0 - '@hpcc-js/wasm': ^1.5.2 - '@types/cors': ^2.8.8 - '@types/dotenv': ^8.2.0 - '@types/express': ^4.17.8 - '@types/glob': ^8.1.0 - '@types/jest': ^29.4.0 - '@types/lodash': ^4.14.191 - '@types/ltijs': ^4.0.6 - '@types/node': ^18.14.2 - '@types/pg': ^7.14.7 - '@types/seedrandom': ^3.0.5 - '@types/uuid': ^8.3.0 - '@typescript-eslint/eslint-plugin': ^5.52.0 - '@typescript-eslint/parser': ^5.52.0 - alea: ^1.0.1 - aws-sdk: ^2.806.0 - axios: ^0.21.4 - babel-jest: ^29.5.0 - cors: ^2.8.5 - dotenv: ^8.2.0 - eslint: ^8.34.0 - express: ^4.17.1 - fp-ts: ^2.15.0 - huggingface: ^1.3.0 - jest: ^29.5.0 - lodash: ^4.17.21 - ltijs: github:plc-dev/ltijs - minio: ^7.0.18 - mongoose: ^5.11.5 - n-lines: ^1.0.5 - node: ^15.3.0 - pg: ^8.5.1 - pgsql-ast-parser: ^11.0.0 - prettier: ^2.8.4 - randexp: ^0.5.3 - reflect-metadata: ^0.1.13 - seedrandom: ^3.0.5 - simplex-noise: ^4.0.1 - squirrelly: ^9.0.0 - ts-jest: ^29.0.5 - ts-node: ^10.9.1 - typescript: ^4.9.5 - uuid: ^8.3.1 - -dependencies: - '@babel/core': 7.24.0 - '@babel/preset-env': 7.24.0_@babel+core@7.24.0 - '@babel/preset-typescript': 7.23.3_@babel+core@7.24.0 - '@hpcc-js/wasm': 1.20.1 - '@types/cors': 2.8.17 - '@types/dotenv': 8.2.0 - '@types/pg': 7.14.11 - '@types/seedrandom': 3.0.8 - '@types/uuid': 8.3.4 - alea: 1.0.1 - aws-sdk: 2.1568.0 - axios: 0.21.4 - babel-jest: 29.7.0_@babel+core@7.24.0 - cors: 2.8.5 - dotenv: 8.6.0 - express: 4.18.3 - fp-ts: 2.16.2 - huggingface: 1.4.0 - lodash: 4.17.21 - ltijs: github.com/plc-dev/ltijs/0cee9810fd0cf4a431d6f0730aa0e58f63b78a9f - minio: 7.1.3 - mongoose: 5.13.22 - n-lines: 1.0.5 - node: 15.14.0 - pg: 8.11.3 - pgsql-ast-parser: 11.2.0 - randexp: 0.5.3 - reflect-metadata: 0.1.14 - seedrandom: 3.0.5 - simplex-noise: 4.0.1 - squirrelly: 9.0.0 - uuid: 8.3.2 - -devDependencies: - '@types/express': 4.17.21 - '@types/glob': 8.1.0 - '@types/jest': 29.5.12 - '@types/lodash': 4.14.202 - '@types/ltijs': 4.0.11 - '@types/node': 18.19.21 - '@typescript-eslint/eslint-plugin': 5.62.0_gceg25gd4xew4ky25uvc7u6nti - '@typescript-eslint/parser': 5.62.0_4lxgoysztp3gakdxqfzw7vhg4u - eslint: 8.57.0 - jest: 29.7.0_urq7nd5blqdixwihszklq7sfzm - prettier: 2.8.8 - ts-jest: 29.1.2_xanl3p34lwsjo2pltycbrvorsu - ts-node: 10.9.2_sfbn2lbqthqn47xp43a2wedjse - typescript: 4.9.5 - -packages: - - /@aashutoshrathi/word-wrap/1.2.6: - resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} - engines: {node: '>=0.10.0'} - dev: true - - /@ampproject/remapping/2.2.1: - resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/gen-mapping': 0.3.4 - '@jridgewell/trace-mapping': 0.3.23 - - /@babel/code-frame/7.23.5: - resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.23.4 - chalk: 2.4.2 - - /@babel/compat-data/7.23.5: - resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} - engines: {node: '>=6.9.0'} - - /@babel/core/7.24.0: - resolution: {integrity: sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==} - engines: {node: '>=6.9.0'} - dependencies: - '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.6 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3_@babel+core@7.24.0 - '@babel/helpers': 7.24.0 - '@babel/parser': 7.24.0 - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.0 - '@babel/types': 7.24.0 - convert-source-map: 2.0.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - /@babel/generator/7.23.6: - resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.0 - '@jridgewell/gen-mapping': 0.3.4 - '@jridgewell/trace-mapping': 0.3.23 - jsesc: 2.5.2 - - /@babel/helper-annotate-as-pure/7.22.5: - resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.0 - dev: false - - /@babel/helper-builder-binary-assignment-operator-visitor/7.22.15: - resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.0 - dev: false - - /@babel/helper-compilation-targets/7.23.6: - resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/helper-validator-option': 7.23.5 - browserslist: 4.23.0 - lru-cache: 5.1.1 - semver: 6.3.1 - - /@babel/helper-create-class-features-plugin/7.24.0_@babel+core@7.24.0: - resolution: {integrity: sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.20_@babel+core@7.24.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - semver: 6.3.1 - dev: false - - /@babel/helper-create-regexp-features-plugin/7.22.15_@babel+core@7.24.0: - resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-annotate-as-pure': 7.22.5 - regexpu-core: 5.3.2 - semver: 6.3.1 - dev: false - - /@babel/helper-define-polyfill-provider/0.5.0_@babel+core@7.24.0: - resolution: {integrity: sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.0 - debug: 4.3.4 - lodash.debounce: 4.0.8 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/helper-environment-visitor/7.22.20: - resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} - engines: {node: '>=6.9.0'} - - /@babel/helper-function-name/7.23.0: - resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.24.0 - '@babel/types': 7.24.0 - - /@babel/helper-hoist-variables/7.22.5: - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.0 - - /@babel/helper-member-expression-to-functions/7.23.0: - resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.0 - dev: false - - /@babel/helper-module-imports/7.22.15: - resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.0 - - /@babel/helper-module-transforms/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.20 - - /@babel/helper-optimise-call-expression/7.22.5: - resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.0 - dev: false - - /@babel/helper-plugin-utils/7.24.0: - resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} - engines: {node: '>=6.9.0'} - - /@babel/helper-remap-async-to-generator/7.22.20_@babel+core@7.24.0: - resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-wrap-function': 7.22.20 - dev: false - - /@babel/helper-replace-supers/7.22.20_@babel+core@7.24.0: - resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - dev: false - - /@babel/helper-simple-access/7.22.5: - resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.0 - - /@babel/helper-skip-transparent-expression-wrappers/7.22.5: - resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.0 - dev: false - - /@babel/helper-split-export-declaration/7.22.6: - resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.0 - - /@babel/helper-string-parser/7.23.4: - resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} - engines: {node: '>=6.9.0'} - - /@babel/helper-validator-identifier/7.22.20: - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} - engines: {node: '>=6.9.0'} - - /@babel/helper-validator-option/7.23.5: - resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} - engines: {node: '>=6.9.0'} - - /@babel/helper-wrap-function/7.22.20: - resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-function-name': 7.23.0 - '@babel/template': 7.24.0 - '@babel/types': 7.24.0 - dev: false - - /@babel/helpers/7.24.0: - resolution: {integrity: sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.0 - '@babel/types': 7.24.0 - transitivePeerDependencies: - - supports-color - - /@babel/highlight/7.23.4: - resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.22.20 - chalk: 2.4.2 - js-tokens: 4.0.0 - - /@babel/parser/7.24.0: - resolution: {integrity: sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.24.0 - - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.13.0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.23.4_@babel+core@7.24.0 - dev: false - - /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/7.23.7_@babel+core@7.24.0: - resolution: {integrity: sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-proposal-private-property-in-object/7.21.0-placeholder-for-preset-env.2_@babel+core@7.24.0: - resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - dev: false - - /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.24.0: - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - - /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.24.0: - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - - /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.24.0: - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - - /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.24.0: - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.24.0: - resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.24.0: - resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-syntax-import-assertions/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-syntax-import-attributes/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.24.0: - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - - /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.24.0: - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - - /@babel/plugin-syntax-jsx/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - - /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.24.0: - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - - /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.24.0: - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - - /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.24.0: - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - - /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.24.0: - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - - /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.24.0: - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - - /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.24.0: - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - - /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.24.0: - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.24.0: - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - - /@babel/plugin-syntax-typescript/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - - /@babel/plugin-syntax-unicode-sets-regex/7.18.6_@babel+core@7.24.0: - resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-regexp-features-plugin': 7.22.15_@babel+core@7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-transform-arrow-functions/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-transform-async-generator-functions/7.23.9_@babel+core@7.24.0: - resolution: {integrity: sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-remap-async-to-generator': 7.22.20_@babel+core@7.24.0 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.24.0 - dev: false - - /@babel/plugin-transform-async-to-generator/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-remap-async-to-generator': 7.22.20_@babel+core@7.24.0 - dev: false - - /@babel/plugin-transform-block-scoped-functions/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-transform-block-scoping/7.23.4_@babel+core@7.24.0: - resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-transform-class-properties/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-class-features-plugin': 7.24.0_@babel+core@7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-transform-class-static-block/7.23.4_@babel+core@7.24.0: - resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.12.0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-class-features-plugin': 7.24.0_@babel+core@7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.24.0 - dev: false - - /@babel/plugin-transform-classes/7.23.8_@babel+core@7.24.0: - resolution: {integrity: sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-replace-supers': 7.22.20_@babel+core@7.24.0 - '@babel/helper-split-export-declaration': 7.22.6 - globals: 11.12.0 - dev: false - - /@babel/plugin-transform-computed-properties/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/template': 7.24.0 - dev: false - - /@babel/plugin-transform-destructuring/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-transform-dotall-regex/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-regexp-features-plugin': 7.22.15_@babel+core@7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-transform-duplicate-keys/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-transform-dynamic-import/7.23.4_@babel+core@7.24.0: - resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.24.0 - dev: false - - /@babel/plugin-transform-exponentiation-operator/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-transform-export-namespace-from/7.23.4_@babel+core@7.24.0: - resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.24.0 - dev: false - - /@babel/plugin-transform-for-of/7.23.6_@babel+core@7.24.0: - resolution: {integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - dev: false - - /@babel/plugin-transform-function-name/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-transform-json-strings/7.23.4_@babel+core@7.24.0: - resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.24.0 - dev: false - - /@babel/plugin-transform-literals/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-transform-logical-assignment-operators/7.23.4_@babel+core@7.24.0: - resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.24.0 - dev: false - - /@babel/plugin-transform-member-expression-literals/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-transform-modules-amd/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-module-transforms': 7.23.3_@babel+core@7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-transform-modules-commonjs/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-module-transforms': 7.23.3_@babel+core@7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-simple-access': 7.22.5 - dev: false - - /@babel/plugin-transform-modules-systemjs/7.23.9_@babel+core@7.24.0: - resolution: {integrity: sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.3_@babel+core@7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-validator-identifier': 7.22.20 - dev: false - - /@babel/plugin-transform-modules-umd/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-module-transforms': 7.23.3_@babel+core@7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-transform-named-capturing-groups-regex/7.22.5_@babel+core@7.24.0: - resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-regexp-features-plugin': 7.22.15_@babel+core@7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-transform-new-target/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-transform-nullish-coalescing-operator/7.23.4_@babel+core@7.24.0: - resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.24.0 - dev: false - - /@babel/plugin-transform-numeric-separator/7.23.4_@babel+core@7.24.0: - resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.24.0 - dev: false - - /@babel/plugin-transform-object-rest-spread/7.24.0_@babel+core@7.24.0: - resolution: {integrity: sha512-y/yKMm7buHpFFXfxVFS4Vk1ToRJDilIa6fKRioB9Vjichv58TDGXTvqV0dN7plobAmTW5eSEGXDngE+Mm+uO+w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.24.0 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.24.0 - '@babel/plugin-transform-parameters': 7.23.3_@babel+core@7.24.0 - dev: false - - /@babel/plugin-transform-object-super/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-replace-supers': 7.22.20_@babel+core@7.24.0 - dev: false - - /@babel/plugin-transform-optional-catch-binding/7.23.4_@babel+core@7.24.0: - resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.24.0 - dev: false - - /@babel/plugin-transform-optional-chaining/7.23.4_@babel+core@7.24.0: - resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.24.0 - dev: false - - /@babel/plugin-transform-parameters/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-transform-private-methods/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-class-features-plugin': 7.24.0_@babel+core@7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-transform-private-property-in-object/7.23.4_@babel+core@7.24.0: - resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.24.0_@babel+core@7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.24.0 - dev: false - - /@babel/plugin-transform-property-literals/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-transform-regenerator/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - regenerator-transform: 0.15.2 - dev: false - - /@babel/plugin-transform-reserved-words/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-transform-shorthand-properties/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-transform-spread/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - dev: false - - /@babel/plugin-transform-sticky-regex/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-transform-template-literals/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-transform-typeof-symbol/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-transform-typescript/7.23.6_@babel+core@7.24.0: - resolution: {integrity: sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.24.0_@babel+core@7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-typescript': 7.23.3_@babel+core@7.24.0 - dev: false - - /@babel/plugin-transform-unicode-escapes/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-transform-unicode-property-regex/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-regexp-features-plugin': 7.22.15_@babel+core@7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-transform-unicode-regex/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-regexp-features-plugin': 7.22.15_@babel+core@7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/plugin-transform-unicode-sets-regex/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-regexp-features-plugin': 7.22.15_@babel+core@7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - - /@babel/preset-env/7.24.0_@babel+core@7.24.0: - resolution: {integrity: sha512-ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.24.0 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.7_@babel+core@7.24.0 - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2_@babel+core@7.24.0 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.24.0 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.24.0 - '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.24.0 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.24.0 - '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.24.0 - '@babel/plugin-syntax-import-assertions': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-syntax-import-attributes': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.24.0 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.24.0 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.24.0 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.24.0 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.24.0 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.24.0 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.24.0 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.24.0 - '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.24.0 - '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.24.0 - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6_@babel+core@7.24.0 - '@babel/plugin-transform-arrow-functions': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-transform-async-generator-functions': 7.23.9_@babel+core@7.24.0 - '@babel/plugin-transform-async-to-generator': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-transform-block-scoped-functions': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-transform-block-scoping': 7.23.4_@babel+core@7.24.0 - '@babel/plugin-transform-class-properties': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-transform-class-static-block': 7.23.4_@babel+core@7.24.0 - '@babel/plugin-transform-classes': 7.23.8_@babel+core@7.24.0 - '@babel/plugin-transform-computed-properties': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-transform-destructuring': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-transform-dotall-regex': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-transform-duplicate-keys': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-transform-dynamic-import': 7.23.4_@babel+core@7.24.0 - '@babel/plugin-transform-exponentiation-operator': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-transform-export-namespace-from': 7.23.4_@babel+core@7.24.0 - '@babel/plugin-transform-for-of': 7.23.6_@babel+core@7.24.0 - '@babel/plugin-transform-function-name': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-transform-json-strings': 7.23.4_@babel+core@7.24.0 - '@babel/plugin-transform-literals': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-transform-logical-assignment-operators': 7.23.4_@babel+core@7.24.0 - '@babel/plugin-transform-member-expression-literals': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-transform-modules-amd': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-transform-modules-commonjs': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-transform-modules-systemjs': 7.23.9_@babel+core@7.24.0 - '@babel/plugin-transform-modules-umd': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5_@babel+core@7.24.0 - '@babel/plugin-transform-new-target': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4_@babel+core@7.24.0 - '@babel/plugin-transform-numeric-separator': 7.23.4_@babel+core@7.24.0 - '@babel/plugin-transform-object-rest-spread': 7.24.0_@babel+core@7.24.0 - '@babel/plugin-transform-object-super': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-transform-optional-catch-binding': 7.23.4_@babel+core@7.24.0 - '@babel/plugin-transform-optional-chaining': 7.23.4_@babel+core@7.24.0 - '@babel/plugin-transform-parameters': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-transform-private-methods': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-transform-private-property-in-object': 7.23.4_@babel+core@7.24.0 - '@babel/plugin-transform-property-literals': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-transform-regenerator': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-transform-reserved-words': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-transform-shorthand-properties': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-transform-spread': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-transform-sticky-regex': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-transform-template-literals': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-transform-typeof-symbol': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-transform-unicode-escapes': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-transform-unicode-property-regex': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-transform-unicode-regex': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-transform-unicode-sets-regex': 7.23.3_@babel+core@7.24.0 - '@babel/preset-modules': 0.1.6-no-external-plugins_@babel+core@7.24.0 - babel-plugin-polyfill-corejs2: 0.4.8_@babel+core@7.24.0 - babel-plugin-polyfill-corejs3: 0.9.0_@babel+core@7.24.0 - babel-plugin-polyfill-regenerator: 0.5.5_@babel+core@7.24.0 - core-js-compat: 3.36.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/preset-modules/0.1.6-no-external-plugins_@babel+core@7.24.0: - resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} - peerDependencies: - '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/types': 7.24.0 - esutils: 2.0.3 - dev: false - - /@babel/preset-typescript/7.23.3_@babel+core@7.24.0: - resolution: {integrity: sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-syntax-jsx': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-transform-modules-commonjs': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-transform-typescript': 7.23.6_@babel+core@7.24.0 - dev: false - - /@babel/regjsgen/0.8.0: - resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} - dev: false - - /@babel/runtime/7.24.0: - resolution: {integrity: sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==} - engines: {node: '>=6.9.0'} - dependencies: - regenerator-runtime: 0.14.1 - dev: false - - /@babel/template/7.24.0: - resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.23.5 - '@babel/parser': 7.24.0 - '@babel/types': 7.24.0 - - /@babel/traverse/7.24.0: - resolution: {integrity: sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.6 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.24.0 - '@babel/types': 7.24.0 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - - /@babel/types/7.24.0: - resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.23.4 - '@babel/helper-validator-identifier': 7.22.20 - to-fast-properties: 2.0.0 - - /@bcoe/v8-coverage/0.2.3: - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - dev: true - - /@cspotcode/source-map-support/0.8.1: - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/trace-mapping': 0.3.9 - dev: true - - /@eslint-community/eslint-utils/4.4.0_eslint@8.57.0: - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - dependencies: - eslint: 8.57.0 - eslint-visitor-keys: 3.4.3 - dev: true - - /@eslint-community/regexpp/4.10.0: - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - dev: true - - /@eslint/eslintrc/2.1.4: - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - ajv: 6.12.6 - debug: 4.3.4 - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.1 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@eslint/js/8.57.0: - resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /@hpcc-js/wasm/1.20.1: - resolution: {integrity: sha512-M1Blw6CdDkiurEmUTDFf7DDOVXOVblSKHBcc/+pUiBj2lIXgxkVOZhIm54zNspQdpurv7KKJ7VbylYMQRm4IyQ==} - hasBin: true - dependencies: - yargs: 17.6.0 - dev: false - - /@humanwhocodes/config-array/0.11.14: - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} - dependencies: - '@humanwhocodes/object-schema': 2.0.2 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@humanwhocodes/module-importer/1.0.1: - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - dev: true - - /@humanwhocodes/object-schema/2.0.2: - resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} - dev: true - - /@istanbuljs/load-nyc-config/1.1.0: - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} - dependencies: - camelcase: 5.3.1 - find-up: 4.1.0 - get-package-type: 0.1.0 - js-yaml: 3.14.1 - resolve-from: 5.0.0 - - /@istanbuljs/schema/0.1.3: - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} - - /@jest/console/29.7.0: - resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.6.3 - '@types/node': 18.19.21 - chalk: 4.1.2 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - slash: 3.0.0 - dev: true - - /@jest/core/29.7.0_ts-node@10.9.2: - resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 18.19.21 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - ci-info: 3.9.0 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-changed-files: 29.7.0 - jest-config: 29.7.0_urq7nd5blqdixwihszklq7sfzm - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-resolve-dependencies: 29.7.0 - jest-runner: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - jest-watcher: 29.7.0 - micromatch: 4.0.5 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-ansi: 6.0.1 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - ts-node - dev: true - - /@jest/environment/29.7.0: - resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 18.19.21 - jest-mock: 29.7.0 - dev: true - - /@jest/expect-utils/29.7.0: - resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - jest-get-type: 29.6.3 - dev: true - - /@jest/expect/29.7.0: - resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - expect: 29.7.0 - jest-snapshot: 29.7.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@jest/fake-timers/29.7.0: - resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.6.3 - '@sinonjs/fake-timers': 10.3.0 - '@types/node': 18.19.21 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-util: 29.7.0 - dev: true - - /@jest/globals/29.7.0: - resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/types': 29.6.3 - jest-mock: 29.7.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@jest/reporters/29.7.0: - resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.23 - '@types/node': 18.19.21 - chalk: 4.1.2 - collect-v8-coverage: 1.0.2 - exit: 0.1.2 - glob: 7.2.3 - graceful-fs: 4.2.11 - istanbul-lib-coverage: 3.2.2 - istanbul-lib-instrument: 6.0.2 - istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.7 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - jest-worker: 29.7.0 - slash: 3.0.0 - string-length: 4.0.2 - strip-ansi: 6.0.1 - v8-to-istanbul: 9.2.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@jest/schemas/29.6.3: - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@sinclair/typebox': 0.27.8 - - /@jest/source-map/29.6.3: - resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jridgewell/trace-mapping': 0.3.23 - callsites: 3.1.0 - graceful-fs: 4.2.11 - dev: true - - /@jest/test-result/29.7.0: - resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/console': 29.7.0 - '@jest/types': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - collect-v8-coverage: 1.0.2 - dev: true - - /@jest/test-sequencer/29.7.0: - resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/test-result': 29.7.0 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - slash: 3.0.0 - dev: true - - /@jest/transform/29.7.0: - resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@babel/core': 7.24.0 - '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.23 - babel-plugin-istanbul: 6.1.1 - chalk: 4.1.2 - convert-source-map: 2.0.0 - fast-json-stable-stringify: 2.1.0 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 - micromatch: 4.0.5 - pirates: 4.0.6 - slash: 3.0.0 - write-file-atomic: 4.0.2 - transitivePeerDependencies: - - supports-color - - /@jest/types/29.6.3: - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/schemas': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 18.19.21 - '@types/yargs': 17.0.32 - chalk: 4.1.2 - - /@jridgewell/gen-mapping/0.3.4: - resolution: {integrity: sha512-Oud2QPM5dHviZNn4y/WhhYKSXksv+1xLEIsNrAbGcFzUN3ubqWRFT5gwPchNc5NuzILOU4tPBDTZ4VwhL8Y7cw==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.23 - - /@jridgewell/resolve-uri/3.1.2: - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - /@jridgewell/set-array/1.2.1: - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - - /@jridgewell/sourcemap-codec/1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - - /@jridgewell/trace-mapping/0.3.23: - resolution: {integrity: sha512-9/4foRoUKp8s96tSkh8DlAAc5A0Ty8vLXld+l9gjKKY6ckwI8G15f0hskGmuLZu78ZlGa1vtsfOa+lnB4vG6Jg==} - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - - /@jridgewell/trace-mapping/0.3.9: - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - dev: true - - /@mongodb-js/saslprep/1.1.4: - resolution: {integrity: sha512-8zJ8N1x51xo9hwPh6AWnKdLGEC5N3lDa6kms1YHmFBoRhTpJR6HG8wWk0td1MVCu9cD4YBrvjZEtd5Obw0Fbnw==} - requiresBuild: true - dependencies: - sparse-bitfield: 3.0.3 - dev: false - optional: true - - /@nodelib/fs.scandir/2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - dev: true - - /@nodelib/fs.stat/2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - dev: true - - /@nodelib/fs.walk/1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 - dev: true - - /@sinclair/typebox/0.27.8: - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - - /@sindresorhus/is/4.6.0: - resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} - engines: {node: '>=10'} - dev: false - - /@sinonjs/commons/3.0.1: - resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} - dependencies: - type-detect: 4.0.8 - dev: true - - /@sinonjs/fake-timers/10.3.0: - resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} - dependencies: - '@sinonjs/commons': 3.0.1 - dev: true - - /@szmarczak/http-timer/4.0.6: - resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} - engines: {node: '>=10'} - dependencies: - defer-to-connect: 2.0.1 - dev: false - - /@tsconfig/node10/1.0.9: - resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} - dev: true - - /@tsconfig/node12/1.0.11: - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - dev: true - - /@tsconfig/node14/1.0.3: - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - dev: true - - /@tsconfig/node16/1.0.4: - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - dev: true - - /@types/babel__core/7.20.5: - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - dependencies: - '@babel/parser': 7.24.0 - '@babel/types': 7.24.0 - '@types/babel__generator': 7.6.8 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.5 - - /@types/babel__generator/7.6.8: - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} - dependencies: - '@babel/types': 7.24.0 - - /@types/babel__template/7.4.4: - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - dependencies: - '@babel/parser': 7.24.0 - '@babel/types': 7.24.0 - - /@types/babel__traverse/7.20.5: - resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} - dependencies: - '@babel/types': 7.24.0 - - /@types/body-parser/1.19.5: - resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} - dependencies: - '@types/connect': 3.4.38 - '@types/node': 18.19.21 - dev: true - - /@types/bson/4.0.5: - resolution: {integrity: sha512-vVLwMUqhYJSQ/WKcE60eFqcyuWse5fGH+NMAXHuKrUAPoryq3ATxk5o4bgYNtg5aOM4APVg7Hnb3ASqUYG0PKg==} - dependencies: - '@types/node': 18.19.21 - dev: false - - /@types/cacheable-request/6.0.3: - resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} - dependencies: - '@types/http-cache-semantics': 4.0.4 - '@types/keyv': 3.1.4 - '@types/node': 18.19.21 - '@types/responselike': 1.0.3 - dev: false - - /@types/connect/3.4.38: - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - dependencies: - '@types/node': 18.19.21 - dev: true - - /@types/cors/2.8.17: - resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} - dependencies: - '@types/node': 18.19.21 - dev: false - - /@types/dotenv/8.2.0: - resolution: {integrity: sha512-ylSC9GhfRH7m1EUXBXofhgx4lUWmFeQDINW5oLuS+gxWdfUeW4zJdeVTYVkexEW+e2VUvlZR2kGnGGipAWR7kw==} - deprecated: This is a stub types definition. dotenv provides its own type definitions, so you do not need this installed. - dependencies: - dotenv: 8.6.0 - dev: false - - /@types/express-serve-static-core/4.17.43: - resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==} - dependencies: - '@types/node': 18.19.21 - '@types/qs': 6.9.12 - '@types/range-parser': 1.2.7 - '@types/send': 0.17.4 - dev: true - - /@types/express/4.17.21: - resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} - dependencies: - '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.17.43 - '@types/qs': 6.9.12 - '@types/serve-static': 1.15.5 - dev: true - - /@types/glob/8.1.0: - resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} - dependencies: - '@types/minimatch': 5.1.2 - '@types/node': 18.19.21 - dev: true - - /@types/graceful-fs/4.1.9: - resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} - dependencies: - '@types/node': 18.19.21 - - /@types/http-cache-semantics/4.0.4: - resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} - dev: false - - /@types/http-errors/2.0.4: - resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} - dev: true - - /@types/istanbul-lib-coverage/2.0.6: - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - - /@types/istanbul-lib-report/3.0.3: - resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} - dependencies: - '@types/istanbul-lib-coverage': 2.0.6 - - /@types/istanbul-reports/3.0.4: - resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - dependencies: - '@types/istanbul-lib-report': 3.0.3 - - /@types/jest/29.5.12: - resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} - dependencies: - expect: 29.7.0 - pretty-format: 29.7.0 - dev: true - - /@types/json-schema/7.0.15: - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - dev: true - - /@types/keyv/3.1.4: - resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} - dependencies: - '@types/node': 18.19.21 - dev: false - - /@types/lodash/4.14.202: - resolution: {integrity: sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==} - dev: true - - /@types/ltijs/4.0.11: - resolution: {integrity: sha512-qxrSdA9IIySaiEC8ct+LSFekmfP57cbRAWff4+KNvRqVhKTKsTRCFJxD+13+i5WlyEUkqe0nFnU0amkhMGoFcQ==} - dependencies: - '@types/express': 4.17.21 - dev: true - - /@types/mime/1.3.5: - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - dev: true - - /@types/mime/3.0.4: - resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} - dev: true - - /@types/minimatch/5.1.2: - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - dev: true - - /@types/mongodb/3.6.20: - resolution: {integrity: sha512-WcdpPJCakFzcWWD9juKoZbRtQxKIMYF/JIAM4JrNHrMcnJL6/a2NWjXxW7fo9hxboxxkg+icff8d7+WIEvKgYQ==} - dependencies: - '@types/bson': 4.0.5 - '@types/node': 18.19.21 - dev: false - - /@types/node/18.19.21: - resolution: {integrity: sha512-2Q2NeB6BmiTFQi4DHBzncSoq/cJMLDdhPaAoJFnFCyD9a8VPZRf7a1GAwp1Edb7ROaZc5Jz/tnZyL6EsWMRaqw==} - dependencies: - undici-types: 5.26.5 - - /@types/pg/7.14.11: - resolution: {integrity: sha512-EnZkZ1OMw9DvNfQkn2MTJrwKmhJYDEs5ujWrPfvseWNoI95N8B4HzU/Ltrq5ZfYxDX/Zg8mTzwr6UAyTjjFvXA==} - dependencies: - '@types/node': 18.19.21 - pg-protocol: 1.6.0 - pg-types: 2.2.0 - dev: false - - /@types/qs/6.9.12: - resolution: {integrity: sha512-bZcOkJ6uWrL0Qb2NAWKa7TBU+mJHPzhx9jjLL1KHF+XpzEcR7EXHvjbHlGtR/IsP1vyPrehuS6XqkmaePy//mg==} - dev: true - - /@types/range-parser/1.2.7: - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - dev: true - - /@types/responselike/1.0.3: - resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} - dependencies: - '@types/node': 18.19.21 - dev: false - - /@types/seedrandom/3.0.8: - resolution: {integrity: sha512-TY1eezMU2zH2ozQoAFAQFOPpvP15g+ZgSfTZt31AUUH/Rxtnz3H+A/Sv1Snw2/amp//omibc+AEkTaA8KUeOLQ==} - dev: false - - /@types/semver/7.5.8: - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - dev: true - - /@types/send/0.17.4: - resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} - dependencies: - '@types/mime': 1.3.5 - '@types/node': 18.19.21 - dev: true - - /@types/serve-static/1.15.5: - resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==} - dependencies: - '@types/http-errors': 2.0.4 - '@types/mime': 3.0.4 - '@types/node': 18.19.21 - dev: true - - /@types/stack-utils/2.0.3: - resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} - dev: true - - /@types/uuid/8.3.4: - resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} - dev: false - - /@types/webidl-conversions/7.0.3: - resolution: {integrity: sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==} - dev: false - - /@types/whatwg-url/8.2.2: - resolution: {integrity: sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==} - dependencies: - '@types/node': 18.19.21 - '@types/webidl-conversions': 7.0.3 - dev: false - - /@types/yargs-parser/21.0.3: - resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - - /@types/yargs/17.0.32: - resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} - dependencies: - '@types/yargs-parser': 21.0.3 - - /@typescript-eslint/eslint-plugin/5.62.0_gceg25gd4xew4ky25uvc7u6nti: - resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 5.62.0_4lxgoysztp3gakdxqfzw7vhg4u - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0_4lxgoysztp3gakdxqfzw7vhg4u - '@typescript-eslint/utils': 5.62.0_4lxgoysztp3gakdxqfzw7vhg4u - debug: 4.3.4 - eslint: 8.57.0 - graphemer: 1.4.0 - ignore: 5.3.1 - natural-compare-lite: 1.4.0 - semver: 7.6.0 - tsutils: 3.21.0_typescript@4.9.5 - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/parser/5.62.0_4lxgoysztp3gakdxqfzw7vhg4u: - resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0_typescript@4.9.5 - debug: 4.3.4 - eslint: 8.57.0 - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/scope-manager/5.62.0: - resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - dev: true - - /@typescript-eslint/type-utils/5.62.0_4lxgoysztp3gakdxqfzw7vhg4u: - resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '*' - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/typescript-estree': 5.62.0_typescript@4.9.5 - '@typescript-eslint/utils': 5.62.0_4lxgoysztp3gakdxqfzw7vhg4u - debug: 4.3.4 - eslint: 8.57.0 - tsutils: 3.21.0_typescript@4.9.5 - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/types/5.62.0: - resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /@typescript-eslint/typescript-estree/5.62.0_typescript@4.9.5: - resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.6.0 - tsutils: 3.21.0_typescript@4.9.5 - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/utils/5.62.0_4lxgoysztp3gakdxqfzw7vhg4u: - resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0_eslint@8.57.0 - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0_typescript@4.9.5 - eslint: 8.57.0 - eslint-scope: 5.1.1 - semver: 7.6.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/visitor-keys/5.62.0: - resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.62.0 - eslint-visitor-keys: 3.4.3 - dev: true - - /@ungap/structured-clone/1.2.0: - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - dev: true - - /@zxing/text-encoding/0.9.0: - resolution: {integrity: sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==} - requiresBuild: true - dev: false - optional: true - - /accepts/1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} - dependencies: - mime-types: 2.1.35 - negotiator: 0.6.3 - dev: false - - /acorn-jsx/5.3.2_acorn@8.11.3: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 8.11.3 - dev: true - - /acorn-walk/8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} - engines: {node: '>=0.4.0'} - dev: true - - /acorn/8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true - - /ajv/6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - dev: true - - /alea/1.0.1: - resolution: {integrity: sha512-QU+wv+ziDXaMxRdsQg/aH7sVfWdhKps5YP97IIwFkHCsbDZA3k87JXoZ5/iuemf4ntytzIWeScrRpae8+lDrXA==} - dev: false - - /ansi-escapes/4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.21.3 - dev: true - - /ansi-regex/5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - /ansi-styles/3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - dependencies: - color-convert: 1.9.3 - - /ansi-styles/4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - dependencies: - color-convert: 2.0.1 - - /ansi-styles/5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - dev: true - - /anymatch/3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - - /arg/4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - dev: true - - /argparse/1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - dependencies: - sprintf-js: 1.0.3 - - /argparse/2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - dev: true - - /array-flatten/1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - dev: false - - /array-union/2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - dev: true - - /async/3.2.5: - resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} - dev: false - - /available-typed-arrays/1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} - dependencies: - possible-typed-array-names: 1.0.0 - dev: false - - /aws-sdk/2.1568.0: - resolution: {integrity: sha512-ECGJlhn4tnvC+MwNxGDGbhKEOwqLtmtEb3VK5s0z8pcU60Uv1b8+wRPKjqM/eJ+J4N5CL92Y5aq5xAdTquBZRQ==} - engines: {node: '>= 10.0.0'} - dependencies: - buffer: 4.9.2 - events: 1.1.1 - ieee754: 1.1.13 - jmespath: 0.16.0 - querystring: 0.2.0 - sax: 1.2.1 - url: 0.10.3 - util: 0.12.5 - uuid: 8.0.0 - xml2js: 0.6.2 - dev: false - - /axios/0.21.4: - resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} - dependencies: - follow-redirects: 1.15.5 - transitivePeerDependencies: - - debug - dev: false - - /babel-jest/29.7.0_@babel+core@7.24.0: - resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.8.0 - dependencies: - '@babel/core': 7.24.0 - '@jest/transform': 29.7.0 - '@types/babel__core': 7.20.5 - babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3_@babel+core@7.24.0 - chalk: 4.1.2 - graceful-fs: 4.2.11 - slash: 3.0.0 - transitivePeerDependencies: - - supports-color - - /babel-plugin-istanbul/6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} - dependencies: - '@babel/helper-plugin-utils': 7.24.0 - '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: 5.2.1 - test-exclude: 6.0.0 - transitivePeerDependencies: - - supports-color - - /babel-plugin-jest-hoist/29.6.3: - resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@babel/template': 7.24.0 - '@babel/types': 7.24.0 - '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.20.5 - - /babel-plugin-polyfill-corejs2/0.4.8_@babel+core@7.24.0: - resolution: {integrity: sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.24.0 - '@babel/helper-define-polyfill-provider': 0.5.0_@babel+core@7.24.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: false - - /babel-plugin-polyfill-corejs3/0.9.0_@babel+core@7.24.0: - resolution: {integrity: sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-define-polyfill-provider': 0.5.0_@babel+core@7.24.0 - core-js-compat: 3.36.0 - transitivePeerDependencies: - - supports-color - dev: false - - /babel-plugin-polyfill-regenerator/0.5.5_@babel+core@7.24.0: - resolution: {integrity: sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-define-polyfill-provider': 0.5.0_@babel+core@7.24.0 - transitivePeerDependencies: - - supports-color - dev: false - - /babel-preset-current-node-syntax/1.0.1_@babel+core@7.24.0: - resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.0 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.24.0 - '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.24.0 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.24.0 - '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.24.0 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.24.0 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.24.0 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.24.0 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.24.0 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.24.0 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.24.0 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.24.0 - '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.24.0 - - /babel-preset-jest/29.6.3_@babel+core@7.24.0: - resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.0 - babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.24.0 - - /balanced-match/1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - /base64-js/1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - dev: false - - /bl/2.2.1: - resolution: {integrity: sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==} - dependencies: - readable-stream: 2.3.8 - safe-buffer: 5.2.1 - dev: false - - /block-stream2/2.1.0: - resolution: {integrity: sha512-suhjmLI57Ewpmq00qaygS8UgEq2ly2PCItenIyhMqVjo4t4pGzqMvfgJuX8iWTeSDdfSSqS6j38fL4ToNL7Pfg==} - dependencies: - readable-stream: 3.6.2 - dev: false - - /bluebird/3.5.1: - resolution: {integrity: sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==} - dev: false - - /body-parser/1.20.2: - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.11.0 - raw-body: 2.5.2 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - dev: false - - /brace-expansion/1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - /braces/3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - dependencies: - fill-range: 7.0.1 - - /browser-or-node/2.1.1: - resolution: {integrity: sha512-8CVjaLJGuSKMVTxJ2DpBl5XnlNDiT4cQFeuCJJrvJmts9YrTZDizTX7PjC2s6W4x+MBGZeEY6dGMrF04/6Hgqg==} - dev: false - - /browserslist/4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001591 - electron-to-chromium: 1.4.687 - node-releases: 2.0.14 - update-browserslist-db: 1.0.13_browserslist@4.23.0 - - /bs-logger/0.2.6: - resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} - engines: {node: '>= 6'} - dependencies: - fast-json-stable-stringify: 2.1.0 - dev: true - - /bser/2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - dependencies: - node-int64: 0.4.0 - - /bson/1.1.6: - resolution: {integrity: sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==} - engines: {node: '>=0.6.19'} - dev: false - - /bson/5.5.1: - resolution: {integrity: sha512-ix0EwukN2EpC0SRWIj/7B5+A6uQMQy6KMREI9qQqvgpkV2frH63T0UDVd1SYedL6dNCmDBYB3QtXi4ISk9YT+g==} - engines: {node: '>=14.20.1'} - dev: false - - /buffer-crc32/0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - dev: false - - /buffer-equal-constant-time/1.0.1: - resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} - dev: false - - /buffer-from/1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - dev: true - - /buffer-writer/2.0.0: - resolution: {integrity: sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==} - engines: {node: '>=4'} - dev: false - - /buffer/4.9.2: - resolution: {integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==} - dependencies: - base64-js: 1.5.1 - ieee754: 1.1.13 - isarray: 1.0.0 - dev: false - - /bytes/3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} - dev: false - - /cacheable-lookup/5.0.4: - resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} - engines: {node: '>=10.6.0'} - dev: false - - /cacheable-request/7.0.4: - resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} - engines: {node: '>=8'} - dependencies: - clone-response: 1.0.3 - get-stream: 5.2.0 - http-cache-semantics: 4.1.1 - keyv: 4.5.4 - lowercase-keys: 2.0.0 - normalize-url: 6.1.0 - responselike: 2.0.1 - dev: false - - /call-bind/1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} - engines: {node: '>= 0.4'} - dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - set-function-length: 1.2.1 - dev: false - - /callsites/3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - dev: true - - /camelcase/5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - - /camelcase/6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - dev: true - - /caniuse-lite/1.0.30001591: - resolution: {integrity: sha512-PCzRMei/vXjJyL5mJtzNiUCKP59dm8Apqc3PH8gJkMnMXZGox93RbE76jHsmLwmIo6/3nsYIpJtx0O7u5PqFuQ==} - - /chalk/2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - - /chalk/4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - /char-regex/1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} - dev: true - - /ci-info/3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} - - /cjs-module-lexer/1.2.3: - resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} - dev: true - - /cliui/8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - - /clone-response/1.0.3: - resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} - dependencies: - mimic-response: 1.0.1 - dev: false - - /co/4.6.0: - resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - dev: true - - /collect-v8-coverage/1.0.2: - resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} - dev: true - - /color-convert/1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - dependencies: - color-name: 1.1.3 - - /color-convert/2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - dependencies: - color-name: 1.1.4 - - /color-name/1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - - /color-name/1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - /commander/2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - dev: false - - /concat-map/0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - /content-disposition/0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} - dependencies: - safe-buffer: 5.2.1 - dev: false - - /content-type/1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} - dev: false - - /convert-source-map/2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - - /cookie-parser/1.4.6: - resolution: {integrity: sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==} - engines: {node: '>= 0.8.0'} - dependencies: - cookie: 0.4.1 - cookie-signature: 1.0.6 - dev: false - - /cookie-signature/1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - dev: false - - /cookie/0.4.1: - resolution: {integrity: sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==} - engines: {node: '>= 0.6'} - dev: false - - /cookie/0.5.0: - resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} - engines: {node: '>= 0.6'} - dev: false - - /core-js-compat/3.36.0: - resolution: {integrity: sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==} - dependencies: - browserslist: 4.23.0 - dev: false - - /core-util-is/1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - dev: false - - /cors/2.8.5: - resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} - engines: {node: '>= 0.10'} - dependencies: - object-assign: 4.1.1 - vary: 1.1.2 - dev: false - - /create-jest/29.7.0_urq7nd5blqdixwihszklq7sfzm: - resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-config: 29.7.0_urq7nd5blqdixwihszklq7sfzm - jest-util: 29.7.0 - prompts: 2.4.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - dev: true - - /create-require/1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - dev: true - - /cross-spawn/7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - dev: true - - /data-uri-to-buffer/4.0.1: - resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} - engines: {node: '>= 12'} - dev: false - - /debug/2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.0.0 - dev: false - - /debug/3.1.0: - resolution: {integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.0.0 - dev: false - - /debug/4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - - /decode-uri-component/0.2.2: - resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} - engines: {node: '>=0.10'} - dev: false - - /decompress-response/6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} - dependencies: - mimic-response: 3.1.0 - dev: false - - /dedent/1.5.1: - resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true - dev: true - - /deep-is/0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - dev: true - - /deepmerge/4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - dev: true - - /defer-to-connect/2.0.1: - resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} - engines: {node: '>=10'} - dev: false - - /define-data-property/1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 - gopd: 1.0.1 - dev: false - - /denque/1.5.1: - resolution: {integrity: sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==} - engines: {node: '>=0.10'} - dev: false - - /depd/2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - dev: false - - /destroy/1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - dev: false - - /detect-newline/3.1.0: - resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} - engines: {node: '>=8'} - dev: true - - /diff-sequences/29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true - - /diff/4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} - dev: true - - /dir-glob/3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - dependencies: - path-type: 4.0.0 - dev: true - - /discontinuous-range/1.0.0: - resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==} - dev: false - - /doctrine/3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dependencies: - esutils: 2.0.3 - dev: true - - /dotenv/8.6.0: - resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} - engines: {node: '>=10'} - dev: false - - /drange/1.1.1: - resolution: {integrity: sha512-pYxfDYpued//QpnLIm4Avk7rsNtAtQkUES2cwAYSvD/wd2pKD71gN2Ebj3e7klzXwjocvE8c5vx/1fxwpqmSxA==} - engines: {node: '>=4'} - dev: false - - /ecdsa-sig-formatter/1.0.11: - resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} - dependencies: - safe-buffer: 5.2.1 - dev: false - - /ee-first/1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - dev: false - - /electron-to-chromium/1.4.687: - resolution: {integrity: sha512-Ic85cOuXSP6h7KM0AIJ2hpJ98Bo4hyTUjc4yjMbkvD+8yTxEhfK9+8exT2KKYsSjnCn2tGsKVSZwE7ZgTORQCw==} - - /emittery/0.13.1: - resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} - engines: {node: '>=12'} - dev: true - - /emoji-regex/8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - /encodeurl/1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} - dev: false - - /end-of-stream/1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - dependencies: - once: 1.4.0 - dev: false - - /error-ex/1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - dependencies: - is-arrayish: 0.2.1 - dev: true - - /es-define-property/1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.4 - dev: false - - /es-errors/1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - dev: false - - /escalade/3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} - - /escape-html/1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - dev: false - - /escape-string-regexp/1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - - /escape-string-regexp/2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} - dev: true - - /escape-string-regexp/4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - dev: true - - /eslint-scope/5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - dev: true - - /eslint-scope/7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - dev: true - - /eslint-visitor-keys/3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /eslint/8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - dependencies: - '@eslint-community/eslint-utils': 4.4.0_eslint@8.57.0 - '@eslint-community/regexpp': 4.10.0 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.0 - '@humanwhocodes/config-array': 0.11.14 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.5.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 - ignore: 5.3.1 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.3 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - dev: true - - /espree/9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2_acorn@8.11.3 - eslint-visitor-keys: 3.4.3 - dev: true - - /esprima/4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - - /esquery/1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} - dependencies: - estraverse: 5.3.0 - dev: true - - /esrecurse/4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - dependencies: - estraverse: 5.3.0 - dev: true - - /estraverse/4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - dev: true - - /estraverse/5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - dev: true - - /esutils/2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - /etag/1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} - dev: false - - /events/1.1.1: - resolution: {integrity: sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==} - engines: {node: '>=0.4.x'} - dev: false - - /execa/5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - dev: true - - /exit/0.1.2: - resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} - engines: {node: '>= 0.8.0'} - dev: true - - /expect/29.7.0: - resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/expect-utils': 29.7.0 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - dev: true - - /express/4.18.3: - resolution: {integrity: sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw==} - engines: {node: '>= 0.10.0'} - dependencies: - accepts: 1.3.8 - array-flatten: 1.1.1 - body-parser: 1.20.2 - content-disposition: 0.5.4 - content-type: 1.0.5 - cookie: 0.5.0 - cookie-signature: 1.0.6 - debug: 2.6.9 - depd: 2.0.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - finalhandler: 1.2.0 - fresh: 0.5.2 - http-errors: 2.0.0 - merge-descriptors: 1.0.1 - methods: 1.1.2 - on-finished: 2.4.1 - parseurl: 1.3.3 - path-to-regexp: 0.1.7 - proxy-addr: 2.0.7 - qs: 6.11.0 - range-parser: 1.2.1 - safe-buffer: 5.2.1 - send: 0.18.0 - serve-static: 1.15.0 - setprototypeof: 1.2.0 - statuses: 2.0.1 - type-is: 1.6.18 - utils-merge: 1.0.1 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - dev: false - - /fast-deep-equal/3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - dev: true - - /fast-glob/3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - dev: true - - /fast-json-stable-stringify/2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - /fast-levenshtein/2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - dev: true - - /fast-url-parser/1.1.3: - resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} - dependencies: - punycode: 1.4.1 - dev: false - - /fast-xml-parser/4.3.5: - resolution: {integrity: sha512-sWvP1Pl8H03B8oFJpFR3HE31HUfwtX7Rlf9BNsvdpujD4n7WMhfmu8h9wOV2u+c1k0ZilTADhPqypzx2J690ZQ==} - hasBin: true - dependencies: - strnum: 1.0.5 - dev: false - - /fastq/1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} - dependencies: - reusify: 1.0.4 - dev: true - - /fb-watchman/2.0.2: - resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - dependencies: - bser: 2.1.1 - - /fetch-blob/3.2.0: - resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} - engines: {node: ^12.20 || >= 14.13} - dependencies: - node-domexception: 1.0.0 - web-streams-polyfill: 3.3.3 - dev: false - - /file-entry-cache/6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flat-cache: 3.2.0 - dev: true - - /fill-range/7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - dependencies: - to-regex-range: 5.0.1 - - /filter-obj/1.1.0: - resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==} - engines: {node: '>=0.10.0'} - dev: false - - /finalhandler/1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} - engines: {node: '>= 0.8'} - dependencies: - debug: 2.6.9 - encodeurl: 1.0.2 - escape-html: 1.0.3 - on-finished: 2.4.1 - parseurl: 1.3.3 - statuses: 2.0.1 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - dev: false - - /find-up/4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - - /find-up/5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - dev: true - - /flat-cache/3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flatted: 3.3.1 - keyv: 4.5.4 - rimraf: 3.0.2 - dev: true - - /flatted/3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - dev: true - - /follow-redirects/1.15.5: - resolution: {integrity: sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - dev: false - - /for-each/0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - dependencies: - is-callable: 1.2.7 - dev: false - - /formdata-polyfill/4.0.10: - resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} - engines: {node: '>=12.20.0'} - dependencies: - fetch-blob: 3.2.0 - dev: false - - /forwarded/0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} - dev: false - - /fp-ts/2.16.2: - resolution: {integrity: sha512-CkqAjnIKFqvo3sCyoBTqgJvF+bHrSik584S9nhTjtBESLx26cbtVMR/T9a6ApChOcSDAaM3JydDmWDUn4EEXng==} - dev: false - - /fresh/0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} - dev: false - - /fs.realpath/1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - /fsevents/2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - optional: true - - /function-bind/1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - /gensync/1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - - /get-caller-file/2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - - /get-intrinsic/1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} - engines: {node: '>= 0.4'} - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - hasown: 2.0.1 - dev: false - - /get-package-type/0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} - - /get-stream/5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} - engines: {node: '>=8'} - dependencies: - pump: 3.0.0 - dev: false - - /get-stream/6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - dev: true - - /glob-parent/5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - dependencies: - is-glob: 4.0.3 - dev: true - - /glob-parent/6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - dependencies: - is-glob: 4.0.3 - dev: true - - /glob/7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - - /globals/11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - - /globals/13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.20.2 - dev: true - - /globby/11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.1 - merge2: 1.4.1 - slash: 3.0.0 - dev: true - - /gopd/1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - dependencies: - get-intrinsic: 1.2.4 - dev: false - - /got/11.8.6: - resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} - engines: {node: '>=10.19.0'} - dependencies: - '@sindresorhus/is': 4.6.0 - '@szmarczak/http-timer': 4.0.6 - '@types/cacheable-request': 6.0.3 - '@types/responselike': 1.0.3 - cacheable-lookup: 5.0.4 - cacheable-request: 7.0.4 - decompress-response: 6.0.0 - http2-wrapper: 1.0.3 - lowercase-keys: 2.0.0 - p-cancelable: 2.1.1 - responselike: 2.0.1 - dev: false - - /graceful-fs/4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - /graphemer/1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - dev: true - - /has-flag/3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - - /has-flag/4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - /has-property-descriptors/1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - dependencies: - es-define-property: 1.0.0 - dev: false - - /has-proto/1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} - engines: {node: '>= 0.4'} - dev: false - - /has-symbols/1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} - dev: false - - /has-tostringtag/1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} - dependencies: - has-symbols: 1.0.3 - dev: false - - /hasown/2.0.1: - resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==} - engines: {node: '>= 0.4'} - dependencies: - function-bind: 1.1.2 - - /helmet/6.2.0: - resolution: {integrity: sha512-DWlwuXLLqbrIOltR6tFQXShj/+7Cyp0gLi6uAb8qMdFh/YBBFbKSgQ6nbXmScYd8emMctuthmgIa7tUfo9Rtyg==} - engines: {node: '>=14.0.0'} - dev: false - - /html-escaper/2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - dev: true - - /http-cache-semantics/4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - dev: false - - /http-errors/2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 - dev: false - - /http2-wrapper/1.0.3: - resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} - engines: {node: '>=10.19.0'} - dependencies: - quick-lru: 5.1.1 - resolve-alpn: 1.2.1 - dev: false - - /huggingface/1.4.0: - resolution: {integrity: sha512-1R79GhEZRkAzpC6KZMJT++V3EhEjODHyOTeVNOjP3zD7p4HZ1rDfuw2ucjIjLWWljGyvxWWASEIvXF2hHqCJzw==} - engines: {node: '>=14'} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - dependencies: - isomorphic-unfetch: 4.0.2 - dev: false - - /human-signals/2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - dev: true - - /iconv-lite/0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - dependencies: - safer-buffer: 2.1.2 - dev: false - - /ieee754/1.1.13: - resolution: {integrity: sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==} - dev: false - - /ignore/5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} - engines: {node: '>= 4'} - dev: true - - /import-fresh/3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - dev: true - - /import-local/3.1.0: - resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} - engines: {node: '>=8'} - hasBin: true - dependencies: - pkg-dir: 4.2.0 - resolve-cwd: 3.0.0 - dev: true - - /imurmurhash/0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - /inflight/1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - - /inherits/2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - /ip-address/9.0.5: - resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} - engines: {node: '>= 12'} - dependencies: - jsbn: 1.1.0 - sprintf-js: 1.1.3 - dev: false - - /ipaddr.js/1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} - dev: false - - /ipaddr.js/2.1.0: - resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==} - engines: {node: '>= 10'} - dev: false - - /is-arguments/1.1.1: - resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - has-tostringtag: 1.0.2 - dev: false - - /is-arrayish/0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - dev: true - - /is-callable/1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - dev: false - - /is-core-module/2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} - dependencies: - hasown: 2.0.1 - - /is-extglob/2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - dev: true - - /is-fullwidth-code-point/3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - /is-generator-fn/2.1.0: - resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} - engines: {node: '>=6'} - dev: true - - /is-generator-function/1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.2 - dev: false - - /is-glob/4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - dev: true - - /is-number/7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - /is-path-inside/3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - dev: true - - /is-stream/2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - dev: true - - /is-typed-array/1.1.13: - resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} - engines: {node: '>= 0.4'} - dependencies: - which-typed-array: 1.1.14 - dev: false - - /isarray/1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - dev: false - - /isexe/2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - dev: true - - /isomorphic-unfetch/4.0.2: - resolution: {integrity: sha512-1Yd+CF/7al18/N2BDbsLBcp6RO3tucSW+jcLq24dqdX5MNbCNTw1z4BsGsp4zNmjr/Izm2cs/cEqZPp4kvWSCA==} - dependencies: - node-fetch: 3.3.2 - unfetch: 5.0.0 - dev: false - - /istanbul-lib-coverage/3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} - engines: {node: '>=8'} - - /istanbul-lib-instrument/5.2.1: - resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} - engines: {node: '>=8'} - dependencies: - '@babel/core': 7.24.0 - '@babel/parser': 7.24.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.2 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - /istanbul-lib-instrument/6.0.2: - resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==} - engines: {node: '>=10'} - dependencies: - '@babel/core': 7.24.0 - '@babel/parser': 7.24.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.2 - semver: 7.6.0 - transitivePeerDependencies: - - supports-color - dev: true - - /istanbul-lib-report/3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} - engines: {node: '>=10'} - dependencies: - istanbul-lib-coverage: 3.2.2 - make-dir: 4.0.0 - supports-color: 7.2.0 - dev: true - - /istanbul-lib-source-maps/4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} - engines: {node: '>=10'} - dependencies: - debug: 4.3.4 - istanbul-lib-coverage: 3.2.2 - source-map: 0.6.1 - transitivePeerDependencies: - - supports-color - dev: true - - /istanbul-reports/3.1.7: - resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} - engines: {node: '>=8'} - dependencies: - html-escaper: 2.0.2 - istanbul-lib-report: 3.0.1 - dev: true - - /jest-changed-files/29.7.0: - resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - execa: 5.1.1 - jest-util: 29.7.0 - p-limit: 3.1.0 - dev: true - - /jest-circus/29.7.0: - resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 18.19.21 - chalk: 4.1.2 - co: 4.6.0 - dedent: 1.5.1 - is-generator-fn: 2.1.0 - jest-each: 29.7.0 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - p-limit: 3.1.0 - pretty-format: 29.7.0 - pure-rand: 6.0.4 - slash: 3.0.0 - stack-utils: 2.0.6 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - dev: true - - /jest-cli/29.7.0_urq7nd5blqdixwihszklq7sfzm: - resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/core': 29.7.0_ts-node@10.9.2 - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - chalk: 4.1.2 - create-jest: 29.7.0_urq7nd5blqdixwihszklq7sfzm - exit: 0.1.2 - import-local: 3.1.0 - jest-config: 29.7.0_urq7nd5blqdixwihszklq7sfzm - jest-util: 29.7.0 - jest-validate: 29.7.0 - yargs: 17.7.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - dev: true - - /jest-config/29.7.0_urq7nd5blqdixwihszklq7sfzm: - resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@types/node': '*' - ts-node: '>=9.0.0' - peerDependenciesMeta: - '@types/node': - optional: true - ts-node: - optional: true - dependencies: - '@babel/core': 7.24.0 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 18.19.21 - babel-jest: 29.7.0_@babel+core@7.24.0 - chalk: 4.1.2 - ci-info: 3.9.0 - deepmerge: 4.3.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-circus: 29.7.0 - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - micromatch: 4.0.5 - parse-json: 5.2.0 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - ts-node: 10.9.2_sfbn2lbqthqn47xp43a2wedjse - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - dev: true - - /jest-diff/29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - chalk: 4.1.2 - diff-sequences: 29.6.3 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - dev: true - - /jest-docblock/29.7.0: - resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - detect-newline: 3.1.0 - dev: true - - /jest-each/29.7.0: - resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - jest-get-type: 29.6.3 - jest-util: 29.7.0 - pretty-format: 29.7.0 - dev: true - - /jest-environment-node/29.7.0: - resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 18.19.21 - jest-mock: 29.7.0 - jest-util: 29.7.0 - dev: true - - /jest-get-type/29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true - - /jest-haste-map/29.7.0: - resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.6.3 - '@types/graceful-fs': 4.1.9 - '@types/node': 18.19.21 - anymatch: 3.1.3 - fb-watchman: 2.0.2 - graceful-fs: 4.2.11 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 - jest-worker: 29.7.0 - micromatch: 4.0.5 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.3 - - /jest-leak-detector/29.7.0: - resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - dev: true - - /jest-matcher-utils/29.7.0: - resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - chalk: 4.1.2 - jest-diff: 29.7.0 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - dev: true - - /jest-message-util/29.7.0: - resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@babel/code-frame': 7.23.5 - '@jest/types': 29.6.3 - '@types/stack-utils': 2.0.3 - chalk: 4.1.2 - graceful-fs: 4.2.11 - micromatch: 4.0.5 - pretty-format: 29.7.0 - slash: 3.0.0 - stack-utils: 2.0.6 - dev: true - - /jest-mock/29.7.0: - resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.6.3 - '@types/node': 18.19.21 - jest-util: 29.7.0 - dev: true - - /jest-pnp-resolver/1.2.3_jest-resolve@29.7.0: - resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true - dependencies: - jest-resolve: 29.7.0 - dev: true - - /jest-regex-util/29.6.3: - resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - /jest-resolve-dependencies/29.7.0: - resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - jest-regex-util: 29.6.3 - jest-snapshot: 29.7.0 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-resolve/29.7.0: - resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - chalk: 4.1.2 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-pnp-resolver: 1.2.3_jest-resolve@29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - resolve: 1.22.8 - resolve.exports: 2.0.2 - slash: 3.0.0 - dev: true - - /jest-runner/29.7.0: - resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/console': 29.7.0 - '@jest/environment': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 18.19.21 - chalk: 4.1.2 - emittery: 0.13.1 - graceful-fs: 4.2.11 - jest-docblock: 29.7.0 - jest-environment-node: 29.7.0 - jest-haste-map: 29.7.0 - jest-leak-detector: 29.7.0 - jest-message-util: 29.7.0 - jest-resolve: 29.7.0 - jest-runtime: 29.7.0 - jest-util: 29.7.0 - jest-watcher: 29.7.0 - jest-worker: 29.7.0 - p-limit: 3.1.0 - source-map-support: 0.5.13 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-runtime/29.7.0: - resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/globals': 29.7.0 - '@jest/source-map': 29.6.3 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 18.19.21 - chalk: 4.1.2 - cjs-module-lexer: 1.2.3 - collect-v8-coverage: 1.0.2 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - slash: 3.0.0 - strip-bom: 4.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-snapshot/29.7.0: - resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@babel/core': 7.24.0 - '@babel/generator': 7.23.6 - '@babel/plugin-syntax-jsx': 7.23.3_@babel+core@7.24.0 - '@babel/plugin-syntax-typescript': 7.23.3_@babel+core@7.24.0 - '@babel/types': 7.24.0 - '@jest/expect-utils': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.24.0 - chalk: 4.1.2 - expect: 29.7.0 - graceful-fs: 4.2.11 - jest-diff: 29.7.0 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - natural-compare: 1.4.0 - pretty-format: 29.7.0 - semver: 7.6.0 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-util/29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.6.3 - '@types/node': 18.19.21 - chalk: 4.1.2 - ci-info: 3.9.0 - graceful-fs: 4.2.11 - picomatch: 2.3.1 - - /jest-validate/29.7.0: - resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.6.3 - camelcase: 6.3.0 - chalk: 4.1.2 - jest-get-type: 29.6.3 - leven: 3.1.0 - pretty-format: 29.7.0 - dev: true - - /jest-watcher/29.7.0: - resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 18.19.21 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - emittery: 0.13.1 - jest-util: 29.7.0 - string-length: 4.0.2 - dev: true - - /jest-worker/29.7.0: - resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@types/node': 18.19.21 - jest-util: 29.7.0 - merge-stream: 2.0.0 - supports-color: 8.1.1 - - /jest/29.7.0_urq7nd5blqdixwihszklq7sfzm: - resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/core': 29.7.0_ts-node@10.9.2 - '@jest/types': 29.6.3 - import-local: 3.1.0 - jest-cli: 29.7.0_urq7nd5blqdixwihszklq7sfzm - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - dev: true - - /jmespath/0.16.0: - resolution: {integrity: sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==} - engines: {node: '>= 0.6.0'} - dev: false - - /js-tokens/4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - /js-yaml/3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - - /js-yaml/4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - dependencies: - argparse: 2.0.1 - dev: true - - /jsbn/1.1.0: - resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} - dev: false - - /jsesc/0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true - dev: false - - /jsesc/2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - - /json-buffer/3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - - /json-parse-even-better-errors/2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - dev: true - - /json-schema-traverse/0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - dev: true - - /json-stable-stringify-without-jsonify/1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - dev: true - - /json-stream/1.0.0: - resolution: {integrity: sha512-H/ZGY0nIAg3QcOwE1QN/rK/Fa7gJn7Ii5obwp6zyPO4xiPNwpIMjqy2gwjBEGqzkF/vSWEIBQCBuN19hYiL6Qg==} - dev: false - - /json5/2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - - /jsonwebtoken/9.0.2: - resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} - engines: {node: '>=12', npm: '>=6'} - dependencies: - jws: 3.2.2 - lodash.includes: 4.3.0 - lodash.isboolean: 3.0.3 - lodash.isinteger: 4.0.4 - lodash.isnumber: 3.0.3 - lodash.isplainobject: 4.0.6 - lodash.isstring: 4.0.1 - lodash.once: 4.1.1 - ms: 2.1.3 - semver: 7.6.0 - dev: false - - /jwa/1.4.1: - resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} - dependencies: - buffer-equal-constant-time: 1.0.1 - ecdsa-sig-formatter: 1.0.11 - safe-buffer: 5.2.1 - dev: false - - /jws/3.2.2: - resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} - dependencies: - jwa: 1.4.1 - safe-buffer: 5.2.1 - dev: false - - /kareem/2.3.2: - resolution: {integrity: sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ==} - dev: false - - /kareem/2.5.1: - resolution: {integrity: sha512-7jFxRVm+jD+rkq3kY0iZDJfsO2/t4BBPeEb2qKn2lR/9KhuksYk5hxzfRYWMPV8P/x2d0kHD306YyWLzjjH+uA==} - engines: {node: '>=12.0.0'} - dev: false - - /keyv/4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - dependencies: - json-buffer: 3.0.1 - - /kleur/3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - dev: true - - /leven/3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} - dev: true - - /levn/0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - dev: true - - /lines-and-columns/1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - dev: true - - /locate-path/5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - dependencies: - p-locate: 4.1.0 - - /locate-path/6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - dependencies: - p-locate: 5.0.0 - dev: true - - /lodash.debounce/4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - dev: false - - /lodash.includes/4.3.0: - resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} - dev: false - - /lodash.isboolean/3.0.3: - resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} - dev: false - - /lodash.isinteger/4.0.4: - resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} - dev: false - - /lodash.isnumber/3.0.3: - resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} - dev: false - - /lodash.isplainobject/4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - dev: false - - /lodash.isstring/4.0.1: - resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} - dev: false - - /lodash.memoize/4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} - dev: true - - /lodash.merge/4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - dev: true - - /lodash.once/4.1.1: - resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} - dev: false - - /lodash/4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - dev: false - - /lowercase-keys/2.0.0: - resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} - engines: {node: '>=8'} - dev: false - - /lru-cache/5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - dependencies: - yallist: 3.1.1 - - /lru-cache/6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - dependencies: - yallist: 4.0.0 - - /make-dir/4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} - engines: {node: '>=10'} - dependencies: - semver: 7.6.0 - dev: true - - /make-error/1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - dev: true - - /makeerror/1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} - dependencies: - tmpl: 1.0.5 - - /media-typer/0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} - dev: false - - /memory-pager/1.5.0: - resolution: {integrity: sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==} - dev: false - optional: true - - /merge-descriptors/1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} - dev: false - - /merge-stream/2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - - /merge2/1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - dev: true - - /methods/1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} - dev: false - - /micromatch/4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} - dependencies: - braces: 3.0.2 - picomatch: 2.3.1 - - /mime-db/1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - dev: false - - /mime-types/2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - dependencies: - mime-db: 1.52.0 - dev: false - - /mime/1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true - dev: false - - /mimic-fn/2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - dev: true - - /mimic-response/1.0.1: - resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} - engines: {node: '>=4'} - dev: false - - /mimic-response/3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} - dev: false - - /minimatch/3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - dependencies: - brace-expansion: 1.1.11 - - /minio/7.1.3: - resolution: {integrity: sha512-xPrLjWkTT5E7H7VnzOjF//xBp9I40jYB4aWhb2xTFopXXfw+Wo82DDWngdUju7Doy3Wk7R8C4LAgwhLHHnf0wA==} - engines: {node: ^16 || ^18 || >=20} - dependencies: - async: 3.2.5 - block-stream2: 2.1.0 - browser-or-node: 2.1.1 - buffer-crc32: 0.2.13 - fast-xml-parser: 4.3.5 - ipaddr.js: 2.1.0 - json-stream: 1.0.0 - lodash: 4.17.21 - mime-types: 2.1.35 - query-string: 7.1.3 - through2: 4.0.2 - web-encoding: 1.1.5 - xml: 1.0.1 - xml2js: 0.5.0 - dev: false - - /mongodb-connection-string-url/2.6.0: - resolution: {integrity: sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==} - dependencies: - '@types/whatwg-url': 8.2.2 - whatwg-url: 11.0.0 - dev: false - - /mongodb/3.7.4: - resolution: {integrity: sha512-K5q8aBqEXMwWdVNh94UQTwZ6BejVbFhh1uB6c5FKtPE9eUMZPUO3sRZdgIEcHSrAWmxzpG/FeODDKL388sqRmw==} - engines: {node: '>=4'} - peerDependencies: - aws4: '*' - bson-ext: '*' - kerberos: '*' - mongodb-client-encryption: '*' - mongodb-extjson: '*' - snappy: '*' - peerDependenciesMeta: - aws4: - optional: true - bson-ext: - optional: true - kerberos: - optional: true - mongodb-client-encryption: - optional: true - mongodb-extjson: - optional: true - snappy: - optional: true - dependencies: - bl: 2.2.1 - bson: 1.1.6 - denque: 1.5.1 - optional-require: 1.1.8 - safe-buffer: 5.2.1 - optionalDependencies: - saslprep: 1.0.3 - dev: false - - /mongodb/5.9.1: - resolution: {integrity: sha512-NBGA8AfJxGPeB12F73xXwozt8ZpeIPmCUeWRwl9xejozTXFes/3zaep9zhzs1B/nKKsw4P3I4iPfXl3K7s6g+Q==} - engines: {node: '>=14.20.1'} - peerDependencies: - '@aws-sdk/credential-providers': ^3.188.0 - '@mongodb-js/zstd': ^1.0.0 - kerberos: ^1.0.0 || ^2.0.0 - mongodb-client-encryption: '>=2.3.0 <3' - snappy: ^7.2.2 - peerDependenciesMeta: - '@aws-sdk/credential-providers': - optional: true - '@mongodb-js/zstd': - optional: true - kerberos: - optional: true - mongodb-client-encryption: - optional: true - snappy: - optional: true - dependencies: - bson: 5.5.1 - mongodb-connection-string-url: 2.6.0 - socks: 2.8.1 - optionalDependencies: - '@mongodb-js/saslprep': 1.1.4 - dev: false - - /mongoose-legacy-pluralize/1.0.2_mongoose@5.13.22: - resolution: {integrity: sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==} - peerDependencies: - mongoose: '*' - dependencies: - mongoose: 5.13.22 - dev: false - - /mongoose/5.13.22: - resolution: {integrity: sha512-p51k/c4X/MfqeQ3I1ranlDiggLzNumZrTDD9CeezHwZxt2/btf+YZD7MCe07RAY2NgFYVMayq6jMamw02Jmf9w==} - engines: {node: '>=4.0.0'} - dependencies: - '@types/bson': 4.0.5 - '@types/mongodb': 3.6.20 - bson: 1.1.6 - kareem: 2.3.2 - mongodb: 3.7.4 - mongoose-legacy-pluralize: 1.0.2_mongoose@5.13.22 - mpath: 0.8.4 - mquery: 3.2.5 - ms: 2.1.2 - optional-require: 1.0.3 - regexp-clone: 1.0.0 - safe-buffer: 5.2.1 - sift: 13.5.2 - sliced: 1.0.1 - transitivePeerDependencies: - - aws4 - - bson-ext - - kerberos - - mongodb-client-encryption - - mongodb-extjson - - snappy - - supports-color - dev: false - - /mongoose/7.6.9: - resolution: {integrity: sha512-3lR1fA/gS1E9Bn0woFqIysnnjCFDYtVo3yY+rGsVg1Q7kHX+gUTgAHTEKXrkwKxk2gHFdUfAsLt/Zjrdf6+nZA==} - engines: {node: '>=14.20.1'} - dependencies: - bson: 5.5.1 - kareem: 2.5.1 - mongodb: 5.9.1 - mpath: 0.9.0 - mquery: 5.0.0 - ms: 2.1.3 - sift: 16.0.1 - transitivePeerDependencies: - - '@aws-sdk/credential-providers' - - '@mongodb-js/zstd' - - kerberos - - mongodb-client-encryption - - snappy - - supports-color - dev: false - - /moo/0.5.2: - resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==} - dev: false - - /mpath/0.8.4: - resolution: {integrity: sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g==} - engines: {node: '>=4.0.0'} - dev: false - - /mpath/0.9.0: - resolution: {integrity: sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==} - engines: {node: '>=4.0.0'} - dev: false - - /mquery/3.2.5: - resolution: {integrity: sha512-VjOKHHgU84wij7IUoZzFRU07IAxd5kWJaDmyUzQlbjHjyoeK5TNeeo8ZsFDtTYnSgpW6n/nMNIHvE3u8Lbrf4A==} - engines: {node: '>=4.0.0'} - dependencies: - bluebird: 3.5.1 - debug: 3.1.0 - regexp-clone: 1.0.0 - safe-buffer: 5.1.2 - sliced: 1.0.1 - transitivePeerDependencies: - - supports-color - dev: false - - /mquery/5.0.0: - resolution: {integrity: sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==} - engines: {node: '>=14.0.0'} - dependencies: - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: false - - /ms/2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - dev: false - - /ms/2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - /ms/2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - dev: false - - /n-lines/1.0.5: - resolution: {integrity: sha512-9ExLqMhOIgJIvs+gEAddg5y28BltUkMXxEKvxF0Pv/U/CRJuEJjO2WxGQMjicF1NzJIQoSc5dbX8DIGc4gPOHQ==} - dev: false - - /natural-compare-lite/1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} - dev: true - - /natural-compare/1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - dev: true - - /nearley/2.20.1: - resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==} - hasBin: true - dependencies: - commander: 2.20.3 - moo: 0.5.2 - railroad-diagrams: 1.0.0 - randexp: 0.4.6 - dev: false - - /negotiator/0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} - dev: false - - /node-bin-setup/1.1.3: - resolution: {integrity: sha512-opgw9iSCAzT2+6wJOETCpeRYAQxSopqQ2z+N6BXwIMsQQ7Zj5M8MaafQY8JMlolRR6R1UXg2WmhKp0p9lSOivg==} - dev: false - - /node-domexception/1.0.0: - resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} - engines: {node: '>=10.5.0'} - dev: false - - /node-fetch/3.3.2: - resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - data-uri-to-buffer: 4.0.1 - fetch-blob: 3.2.0 - formdata-polyfill: 4.0.10 - dev: false - - /node-int64/0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - - /node-releases/2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - - /node/15.14.0: - resolution: {integrity: sha512-svKWxg++g9+ddISNEdh/Mw1XXEnhMkgL4vgsztO3+QtneathEVYAFUPzXvW/d37vk+mZSdcoIsLgMLAOaO+Vvg==} - engines: {npm: '>=5.0.0'} - hasBin: true - requiresBuild: true - dependencies: - node-bin-setup: 1.1.3 - dev: false - - /normalize-path/3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - /normalize-url/6.1.0: - resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} - engines: {node: '>=10'} - dev: false - - /npm-run-path/4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - dependencies: - path-key: 3.1.1 - dev: true - - /object-assign/4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - dev: false - - /object-inspect/1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} - dev: false - - /on-finished/2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} - dependencies: - ee-first: 1.1.1 - dev: false - - /once/1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - dependencies: - wrappy: 1.0.2 - - /onetime/5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - dependencies: - mimic-fn: 2.1.0 - dev: true - - /optional-require/1.0.3: - resolution: {integrity: sha512-RV2Zp2MY2aeYK5G+B/Sps8lW5NHAzE5QClbFP15j+PWmP+T9PxlJXBOOLoSAdgwFvS4t0aMR4vpedMkbHfh0nA==} - engines: {node: '>=4'} - dev: false - - /optional-require/1.1.8: - resolution: {integrity: sha512-jq83qaUb0wNg9Krv1c5OQ+58EK+vHde6aBPzLvPPqJm89UQWsvSuFy9X/OSNJnFeSOKo7btE0n8Nl2+nE+z5nA==} - engines: {node: '>=4'} - dependencies: - require-at: 1.0.6 - dev: false - - /optionator/0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} - engines: {node: '>= 0.8.0'} - dependencies: - '@aashutoshrathi/word-wrap': 1.2.6 - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - dev: true - - /p-cancelable/2.1.1: - resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} - engines: {node: '>=8'} - dev: false - - /p-limit/2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - dependencies: - p-try: 2.2.0 - - /p-limit/3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - dependencies: - yocto-queue: 0.1.0 - dev: true - - /p-locate/4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - dependencies: - p-limit: 2.3.0 - - /p-locate/5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - dependencies: - p-limit: 3.1.0 - dev: true - - /p-try/2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - - /packet-reader/1.0.0: - resolution: {integrity: sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==} - dev: false - - /parent-module/1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - dependencies: - callsites: 3.1.0 - dev: true - - /parse-json/5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - dependencies: - '@babel/code-frame': 7.23.5 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 - dev: true - - /parse-link-header/2.0.0: - resolution: {integrity: sha512-xjU87V0VyHZybn2RrCX5TIFGxTVZE6zqqZWMPlIKiSKuWh/X5WZdt+w1Ki1nXB+8L/KtL+nZ4iq+sfI6MrhhMw==} - dependencies: - xtend: 4.0.2 - dev: false - - /parseurl/1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} - dev: false - - /path-exists/4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - /path-is-absolute/1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - /path-key/3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - dev: true - - /path-parse/1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - /path-to-regexp/0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} - dev: false - - /path-type/4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - dev: true - - /pg-cloudflare/1.1.1: - resolution: {integrity: sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==} - requiresBuild: true - dev: false - optional: true - - /pg-connection-string/2.6.2: - resolution: {integrity: sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==} - dev: false - - /pg-int8/1.0.1: - resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} - engines: {node: '>=4.0.0'} - dev: false - - /pg-pool/3.6.1_pg@8.11.3: - resolution: {integrity: sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==} - peerDependencies: - pg: '>=8.0' - dependencies: - pg: 8.11.3 - dev: false - - /pg-protocol/1.6.0: - resolution: {integrity: sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==} - dev: false - - /pg-types/2.2.0: - resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} - engines: {node: '>=4'} - dependencies: - pg-int8: 1.0.1 - postgres-array: 2.0.0 - postgres-bytea: 1.0.0 - postgres-date: 1.0.7 - postgres-interval: 1.2.0 - dev: false - - /pg/8.11.3: - resolution: {integrity: sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==} - engines: {node: '>= 8.0.0'} - peerDependencies: - pg-native: '>=3.0.1' - peerDependenciesMeta: - pg-native: - optional: true - dependencies: - buffer-writer: 2.0.0 - packet-reader: 1.0.0 - pg-connection-string: 2.6.2 - pg-pool: 3.6.1_pg@8.11.3 - pg-protocol: 1.6.0 - pg-types: 2.2.0 - pgpass: 1.0.5 - optionalDependencies: - pg-cloudflare: 1.1.1 - dev: false - - /pgpass/1.0.5: - resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} - dependencies: - split2: 4.2.0 - dev: false - - /pgsql-ast-parser/11.2.0: - resolution: {integrity: sha512-/8KCcQjePoQDOtfZQuoV/4Y3WpmQVp7E+RFayAdjJpdBdu2dBnKnuQe9XU4g5Td5qC0G+i/fFK/DlNjvWwg+FA==} - dependencies: - moo: 0.5.2 - nearley: 2.20.1 - dev: false - - /picocolors/1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - - /picomatch/2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - /pirates/4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} - - /pkg-dir/4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - dependencies: - find-up: 4.1.0 - dev: true - - /possible-typed-array-names/1.0.0: - resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} - engines: {node: '>= 0.4'} - dev: false - - /postgres-array/2.0.0: - resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} - engines: {node: '>=4'} - dev: false - - /postgres-bytea/1.0.0: - resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==} - engines: {node: '>=0.10.0'} - dev: false - - /postgres-date/1.0.7: - resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} - engines: {node: '>=0.10.0'} - dev: false - - /postgres-interval/1.2.0: - resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} - engines: {node: '>=0.10.0'} - dependencies: - xtend: 4.0.2 - dev: false - - /prelude-ls/1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - dev: true - - /prettier/2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} - hasBin: true - dev: true - - /pretty-format/29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/schemas': 29.6.3 - ansi-styles: 5.2.0 - react-is: 18.2.0 - dev: true - - /process-nextick-args/2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - dev: false - - /prompts/2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 - dev: true - - /proxy-addr/2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} - dependencies: - forwarded: 0.2.0 - ipaddr.js: 1.9.1 - dev: false - - /pump/3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - dev: false - - /punycode/1.3.2: - resolution: {integrity: sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==} - dev: false - - /punycode/1.4.1: - resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} - dev: false - - /punycode/2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - /pure-rand/6.0.4: - resolution: {integrity: sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==} - dev: true - - /qs/6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} - engines: {node: '>=0.6'} - dependencies: - side-channel: 1.0.5 - dev: false - - /query-string/7.1.3: - resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==} - engines: {node: '>=6'} - dependencies: - decode-uri-component: 0.2.2 - filter-obj: 1.1.0 - split-on-first: 1.1.0 - strict-uri-encode: 2.0.0 - dev: false - - /querystring/0.2.0: - resolution: {integrity: sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==} - engines: {node: '>=0.4.x'} - deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead. - dev: false - - /queue-microtask/1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - dev: true - - /quick-lru/5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} - dev: false - - /railroad-diagrams/1.0.0: - resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==} - dev: false - - /randexp/0.4.6: - resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==} - engines: {node: '>=0.12'} - dependencies: - discontinuous-range: 1.0.0 - ret: 0.1.15 - dev: false - - /randexp/0.5.3: - resolution: {integrity: sha512-U+5l2KrcMNOUPYvazA3h5ekF80FHTUG+87SEAmHZmolh1M+i/WyTCxVzmi+tidIa1tM4BSe8g2Y/D3loWDjj+w==} - engines: {node: '>=4'} - dependencies: - drange: 1.1.1 - ret: 0.2.2 - dev: false - - /range-parser/1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} - dev: false - - /rasha/1.2.5: - resolution: {integrity: sha512-KxtX+/fBk+wM7O3CNgwjSh5elwFilLvqWajhr6wFr2Hd63JnKTTi43Tw+Jb1hxJQWOwoya+NZWR2xztn3hCrTw==} - hasBin: true - dev: false - - /raw-body/2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} - engines: {node: '>= 0.8'} - dependencies: - bytes: 3.1.2 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - dev: false - - /react-is/18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - dev: true - - /readable-stream/2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - dev: false - - /readable-stream/3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - dev: false - - /reflect-metadata/0.1.14: - resolution: {integrity: sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==} - dev: false - - /regenerate-unicode-properties/10.1.1: - resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} - engines: {node: '>=4'} - dependencies: - regenerate: 1.4.2 - dev: false - - /regenerate/1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - dev: false - - /regenerator-runtime/0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - dev: false - - /regenerator-transform/0.15.2: - resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - dependencies: - '@babel/runtime': 7.24.0 - dev: false - - /regexp-clone/1.0.0: - resolution: {integrity: sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==} - dev: false - - /regexpu-core/5.3.2: - resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} - engines: {node: '>=4'} - dependencies: - '@babel/regjsgen': 0.8.0 - regenerate: 1.4.2 - regenerate-unicode-properties: 10.1.1 - regjsparser: 0.9.1 - unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.1.0 - dev: false - - /regjsparser/0.9.1: - resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} - hasBin: true - dependencies: - jsesc: 0.5.0 - dev: false - - /require-at/1.0.6: - resolution: {integrity: sha512-7i1auJbMUrXEAZCOQ0VNJgmcT2VOKPRl2YGJwgpHpC9CE91Mv4/4UYIUm4chGJaI381ZDq1JUicFii64Hapd8g==} - engines: {node: '>=4'} - dev: false - - /require-directory/2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - - /resolve-alpn/1.2.1: - resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} - dev: false - - /resolve-cwd/3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} - engines: {node: '>=8'} - dependencies: - resolve-from: 5.0.0 - dev: true - - /resolve-from/4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - dev: true - - /resolve-from/5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - - /resolve.exports/2.0.2: - resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} - engines: {node: '>=10'} - dev: true - - /resolve/1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - dependencies: - is-core-module: 2.13.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - /responselike/2.0.1: - resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} - dependencies: - lowercase-keys: 2.0.0 - dev: false - - /ret/0.1.15: - resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} - engines: {node: '>=0.12'} - dev: false - - /ret/0.2.2: - resolution: {integrity: sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==} - engines: {node: '>=4'} - dev: false - - /reusify/1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - dev: true - - /rimraf/3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true - dependencies: - glob: 7.2.3 - dev: true - - /run-parallel/1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - dependencies: - queue-microtask: 1.2.3 - dev: true - - /safe-buffer/5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - dev: false - - /safe-buffer/5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - dev: false - - /safer-buffer/2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - dev: false - - /saslprep/1.0.3: - resolution: {integrity: sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==} - engines: {node: '>=6'} - requiresBuild: true - dependencies: - sparse-bitfield: 3.0.3 - dev: false - optional: true - - /sax/1.2.1: - resolution: {integrity: sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==} - dev: false - - /sax/1.3.0: - resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} - dev: false - - /seedrandom/3.0.5: - resolution: {integrity: sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==} - dev: false - - /semver/6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - - /semver/7.6.0: - resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - - /send/0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} - engines: {node: '>= 0.8.0'} - dependencies: - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - fresh: 0.5.2 - http-errors: 2.0.0 - mime: 1.6.0 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: 1.2.1 - statuses: 2.0.1 - transitivePeerDependencies: - - supports-color - dev: false - - /serve-static/1.15.0: - resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} - engines: {node: '>= 0.8.0'} - dependencies: - encodeurl: 1.0.2 - escape-html: 1.0.3 - parseurl: 1.3.3 - send: 0.18.0 - transitivePeerDependencies: - - supports-color - dev: false - - /set-function-length/1.2.1: - resolution: {integrity: sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==} - engines: {node: '>= 0.4'} - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - gopd: 1.0.1 - has-property-descriptors: 1.0.2 - dev: false - - /setprototypeof/1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - dev: false - - /shebang-command/2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - dependencies: - shebang-regex: 3.0.0 - dev: true - - /shebang-regex/3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - dev: true - - /side-channel/1.0.5: - resolution: {integrity: sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 - object-inspect: 1.13.1 - dev: false - - /sift/13.5.2: - resolution: {integrity: sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA==} - dev: false - - /sift/16.0.1: - resolution: {integrity: sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ==} - dev: false - - /signal-exit/3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - - /simplex-noise/4.0.1: - resolution: {integrity: sha512-zl/+bdSqW7HJOQ0oDbxrNYaF4F5ik0i7M6YOYmEoIJNtg16NpvWaTTM1Y7oV/7T0jFljawLgYPS81Uu2rsfo1A==} - dev: false - - /sisteransi/1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - dev: true - - /slash/3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - - /sliced/1.0.1: - resolution: {integrity: sha512-VZBmZP8WU3sMOZm1bdgTadsQbcscK0UM8oKxKVBs4XAhUo2Xxzm/OFMGBkPusxw9xL3Uy8LrzEqGqJhclsr0yA==} - dev: false - - /smart-buffer/4.2.0: - resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} - engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - dev: false - - /socks/2.8.1: - resolution: {integrity: sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==} - engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} - dependencies: - ip-address: 9.0.5 - smart-buffer: 4.2.0 - dev: false - - /source-map-support/0.5.13: - resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - dev: true - - /source-map/0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - dev: true - - /sparse-bitfield/3.0.3: - resolution: {integrity: sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==} - dependencies: - memory-pager: 1.5.0 - dev: false - optional: true - - /split-on-first/1.1.0: - resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} - engines: {node: '>=6'} - dev: false - - /split2/4.2.0: - resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} - engines: {node: '>= 10.x'} - dev: false - - /sprintf-js/1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - - /sprintf-js/1.1.3: - resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} - dev: false - - /squirrelly/9.0.0: - resolution: {integrity: sha512-MutQSfwrpIxvdUOFJ8XOfRSioLy+9O10bmBVWLik4uzJkD5TbeNSTOCKqLjzZJVcgdJNyLc8JRFUN15qFlZx9Q==} - engines: {node: '>=6.0.0'} - dev: false - - /stack-utils/2.0.6: - resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} - engines: {node: '>=10'} - dependencies: - escape-string-regexp: 2.0.0 - dev: true - - /statuses/2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} - dev: false - - /strict-uri-encode/2.0.0: - resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} - engines: {node: '>=4'} - dev: false - - /string-length/4.0.2: - resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} - engines: {node: '>=10'} - dependencies: - char-regex: 1.0.2 - strip-ansi: 6.0.1 - dev: true - - /string-width/4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - - /string_decoder/1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - dependencies: - safe-buffer: 5.1.2 - dev: false - - /string_decoder/1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - dependencies: - safe-buffer: 5.2.1 - dev: false - - /strip-ansi/6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - dependencies: - ansi-regex: 5.0.1 - - /strip-bom/4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - dev: true - - /strip-final-newline/2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - dev: true - - /strip-json-comments/3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - dev: true - - /strnum/1.0.5: - resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} - dev: false - - /supports-color/5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - dependencies: - has-flag: 3.0.0 - - /supports-color/7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - dependencies: - has-flag: 4.0.0 - - /supports-color/8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - dependencies: - has-flag: 4.0.0 - - /supports-preserve-symlinks-flag/1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - /test-exclude/6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} - dependencies: - '@istanbuljs/schema': 0.1.3 - glob: 7.2.3 - minimatch: 3.1.2 - - /text-table/0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - dev: true - - /through2/4.0.2: - resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} - dependencies: - readable-stream: 3.6.2 - dev: false - - /tmpl/1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - - /to-fast-properties/2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - - /to-regex-range/5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - dependencies: - is-number: 7.0.0 - - /toidentifier/1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - dev: false - - /tr46/3.0.0: - resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} - engines: {node: '>=12'} - dependencies: - punycode: 2.3.1 - dev: false - - /ts-jest/29.1.2_xanl3p34lwsjo2pltycbrvorsu: - resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==} - engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@babel/core': '>=7.0.0-beta.0 <8' - '@jest/types': ^29.0.0 - babel-jest: ^29.0.0 - esbuild: '*' - jest: ^29.0.0 - typescript: '>=4.3 <6' - peerDependenciesMeta: - '@babel/core': - optional: true - '@jest/types': - optional: true - babel-jest: - optional: true - esbuild: - optional: true - dependencies: - '@babel/core': 7.24.0 - babel-jest: 29.7.0_@babel+core@7.24.0 - bs-logger: 0.2.6 - fast-json-stable-stringify: 2.1.0 - jest: 29.7.0_urq7nd5blqdixwihszklq7sfzm - jest-util: 29.7.0 - json5: 2.2.3 - lodash.memoize: 4.1.2 - make-error: 1.3.6 - semver: 7.6.0 - typescript: 4.9.5 - yargs-parser: 21.1.1 - dev: true - - /ts-node/10.9.2_sfbn2lbqthqn47xp43a2wedjse: - resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.9 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 18.19.21 - acorn: 8.11.3 - acorn-walk: 8.3.2 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 4.9.5 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - dev: true - - /tslib/1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - dev: true - - /tsutils/3.21.0_typescript@4.9.5: - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - dependencies: - tslib: 1.14.1 - typescript: 4.9.5 - dev: true - - /type-check/0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - dev: true - - /type-detect/4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - dev: true - - /type-fest/0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - dev: true - - /type-fest/0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - dev: true - - /type-is/1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} - dependencies: - media-typer: 0.3.0 - mime-types: 2.1.35 - dev: false - - /typescript/4.9.5: - resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} - engines: {node: '>=4.2.0'} - hasBin: true - dev: true - - /undici-types/5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - - /unfetch/5.0.0: - resolution: {integrity: sha512-3xM2c89siXg0nHvlmYsQ2zkLASvVMBisZm5lF3gFDqfF2xonNStDJyMpvaOBe0a1Edxmqrf2E0HBdmy9QyZaeg==} - dev: false - - /unicode-canonical-property-names-ecmascript/2.0.0: - resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} - engines: {node: '>=4'} - dev: false - - /unicode-match-property-ecmascript/2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} - dependencies: - unicode-canonical-property-names-ecmascript: 2.0.0 - unicode-property-aliases-ecmascript: 2.1.0 - dev: false - - /unicode-match-property-value-ecmascript/2.1.0: - resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} - engines: {node: '>=4'} - dev: false - - /unicode-property-aliases-ecmascript/2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} - engines: {node: '>=4'} - dev: false - - /unpipe/1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - dev: false - - /update-browserslist-db/1.0.13_browserslist@4.23.0: - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: 4.23.0 - escalade: 3.1.2 - picocolors: 1.0.0 - - /uri-js/4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - dependencies: - punycode: 2.3.1 - dev: true - - /url/0.10.3: - resolution: {integrity: sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==} - dependencies: - punycode: 1.3.2 - querystring: 0.2.0 - dev: false - - /util-deprecate/1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - dev: false - - /util/0.12.5: - resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} - dependencies: - inherits: 2.0.4 - is-arguments: 1.1.1 - is-generator-function: 1.0.10 - is-typed-array: 1.1.13 - which-typed-array: 1.1.14 - dev: false - - /utils-merge/1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} - dev: false - - /uuid/8.0.0: - resolution: {integrity: sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==} - hasBin: true - dev: false - - /uuid/8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true - dev: false - - /v8-compile-cache-lib/3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - dev: true - - /v8-to-istanbul/9.2.0: - resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} - engines: {node: '>=10.12.0'} - dependencies: - '@jridgewell/trace-mapping': 0.3.23 - '@types/istanbul-lib-coverage': 2.0.6 - convert-source-map: 2.0.0 - dev: true - - /vary/1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} - dev: false - - /walker/1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - dependencies: - makeerror: 1.0.12 - - /web-encoding/1.1.5: - resolution: {integrity: sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==} - dependencies: - util: 0.12.5 - optionalDependencies: - '@zxing/text-encoding': 0.9.0 - dev: false - - /web-streams-polyfill/3.3.3: - resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} - engines: {node: '>= 8'} - dev: false - - /webidl-conversions/7.0.0: - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} - engines: {node: '>=12'} - dev: false - - /whatwg-url/11.0.0: - resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} - engines: {node: '>=12'} - dependencies: - tr46: 3.0.0 - webidl-conversions: 7.0.0 - dev: false - - /which-typed-array/1.1.14: - resolution: {integrity: sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==} - engines: {node: '>= 0.4'} - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.2 - dev: false - - /which/2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - dependencies: - isexe: 2.0.0 - dev: true - - /wrap-ansi/7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - /wrappy/1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - /write-file-atomic/4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - dependencies: - imurmurhash: 0.1.4 - signal-exit: 3.0.7 - - /xml/1.0.1: - resolution: {integrity: sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==} - dev: false - - /xml2js/0.5.0: - resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} - engines: {node: '>=4.0.0'} - dependencies: - sax: 1.3.0 - xmlbuilder: 11.0.1 - dev: false - - /xml2js/0.6.2: - resolution: {integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==} - engines: {node: '>=4.0.0'} - dependencies: - sax: 1.2.1 - xmlbuilder: 11.0.1 - dev: false - - /xmlbuilder/11.0.1: - resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} - engines: {node: '>=4.0'} - dev: false - - /xtend/4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - dev: false - - /y18n/5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - - /yallist/3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - - /yallist/4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - - /yargs-parser/21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - - /yargs/17.6.0: - resolution: {integrity: sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g==} - engines: {node: '>=12'} - dependencies: - cliui: 8.0.1 - escalade: 3.1.2 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 21.1.1 - dev: false - - /yargs/17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} - dependencies: - cliui: 8.0.1 - escalade: 3.1.2 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 21.1.1 - dev: true - - /yn/3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - dev: true - - /yocto-queue/0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - dev: true - - github.com/plc-dev/ltijs/0cee9810fd0cf4a431d6f0730aa0e58f63b78a9f: - resolution: {tarball: https://codeload.github.com/plc-dev/ltijs/tar.gz/0cee9810fd0cf4a431d6f0730aa0e58f63b78a9f} - name: ltijs - version: 5.9.3 - engines: {node: '>=12.13.0'} - dependencies: - '@babel/runtime': 7.24.0 - body-parser: 1.20.2 - cookie-parser: 1.4.6 - cors: 2.8.5 - debug: 4.3.4 - express: 4.18.3 - fast-url-parser: 1.1.3 - got: 11.8.6 - helmet: 6.2.0 - jsonwebtoken: 9.0.2 - mongoose: 7.6.9 - parse-link-header: 2.0.0 - rasha: 1.2.5 - transitivePeerDependencies: - - '@aws-sdk/credential-providers' - - '@mongodb-js/zstd' - - kerberos - - mongodb-client-encryption - - snappy - - supports-color - dev: false diff --git a/src/Aladin.zip b/src/Aladin.zip deleted file mode 100644 index 70f0bab..0000000 Binary files a/src/Aladin.zip and /dev/null differ diff --git a/src/Legacy/Tasks/SQL/ERDs/airport.dot b/src/Legacy/Tasks/SQL/ERDs/airport.dot index 60c8408..6e7dc05 100644 --- a/src/Legacy/Tasks/SQL/ERDs/airport.dot +++ b/src/Legacy/Tasks/SQL/ERDs/airport.dot @@ -1,136 +1,136 @@ -digraph "compactRelationshipsDiagram" { - graph [ - rankdir="RL" - bgcolor="transparent" - - labeljust="l" - nodesep="0.18" - ranksep="0.46" - fontname="Helvetica" - fontsize="11" - ration="compress" - ]; - node [ - fontname="Helvetica" - fontsize="11" - shape="plaintext" - ]; - edge [ - arrowsize="0.8" - ]; - "aircrafts_data" [ - label=< - - - - - -
aircrafts_data[table]
aircraft_code
...
9 rows2 >
> - - target="_top" - tooltip="aircrafts_data" - ]; - "airports_data" [ - label=< - - - - - -
airports_data[table]
airport_code
...
104 rows2 >
> - - target="_top" - tooltip="airports_data" - ]; - "boarding_passes" [ - label=< - - - - - - - -
boarding_passes[table]
ticket_no
flight_id
boarding_no
seat_no
< 2579.686 rows
> - - target="_top" - tooltip="boarding_passes" - ]; - "bookings" [ - label=< - - - - - -
bookings[table]
book_ref
...
262.788 rows1 >
> - - target="_top" - tooltip="bookings" - ]; - "flights" [ - label=< - - - - - - - - - - -
flights[table]
flight_id
flight_no
scheduled_departure
departure_airport
arrival_airport
aircraft_code
...
< 333.121 rows1 >
> - - target="_top" - tooltip="flights" - ]; - "seats" [ - label=< - - - - - - -
seats[table]
aircraft_code
seat_no
...
< 11.339 rows
> - - target="_top" - tooltip="seats" - ]; - "ticket_flights" [ - label=< - - - - - - -
ticket_flights[table]
ticket_no
flight_id
...
< 21.045.726 rows2 >
> - - target="_top" - tooltip="ticket_flights" - ]; - "tickets" [ - label=< - - - - - - -
tickets[table]
ticket_no
book_ref
...
< 1366.733 rows1 >
> - - target="_top" - tooltip="tickets" - ]; - "boarding_passes":"flight_id":w -> "ticket_flights":"flight_id":e [arrowhead=none dir=back arrowtail=crowodot]; - "boarding_passes":"ticket_no":w -> "ticket_flights":"ticket_no":e [arrowhead=none dir=back arrowtail=crowodot]; - "flights":"aircraft_code":w -> "aircrafts_data":"aircraft_code":e [arrowhead=none dir=back arrowtail=crowodot]; - "flights":"arrival_airport":w -> "airports_data":"airport_code":e [arrowhead=none dir=back arrowtail=crowodot]; - "flights":"departure_airport":w -> "airports_data":"airport_code":e [arrowhead=none dir=back arrowtail=crowodot]; - "seats":"aircraft_code":w -> "aircrafts_data":"aircraft_code":e [arrowhead=none dir=back arrowtail=crowodot]; - "ticket_flights":"flight_id":w -> "flights":"flight_id":e [arrowhead=none dir=back arrowtail=crowodot]; - "ticket_flights":"ticket_no":w -> "tickets":"ticket_no":e [arrowhead=none dir=back arrowtail=crowodot]; - "tickets":"book_ref":w -> "bookings":"book_ref":e [arrowhead=none dir=back arrowtail=crowodot]; -} +digraph "compactRelationshipsDiagram" { + graph [ + rankdir="RL" + bgcolor="transparent" + + labeljust="l" + nodesep="0.18" + ranksep="0.46" + fontname="Helvetica" + fontsize="11" + ration="compress" + ]; + node [ + fontname="Helvetica" + fontsize="11" + shape="plaintext" + ]; + edge [ + arrowsize="0.8" + ]; + "aircrafts_data" [ + label=< + + + + + +
aircrafts_data[table]
aircraft_code
...
9 rows2 >
> + + target="_top" + tooltip="aircrafts_data" + ]; + "airports_data" [ + label=< + + + + + +
airports_data[table]
airport_code
...
104 rows2 >
> + + target="_top" + tooltip="airports_data" + ]; + "boarding_passes" [ + label=< + + + + + + + +
boarding_passes[table]
ticket_no
flight_id
boarding_no
seat_no
< 2579.686 rows
> + + target="_top" + tooltip="boarding_passes" + ]; + "bookings" [ + label=< + + + + + +
bookings[table]
book_ref
...
262.788 rows1 >
> + + target="_top" + tooltip="bookings" + ]; + "flights" [ + label=< + + + + + + + + + + +
flights[table]
flight_id
flight_no
scheduled_departure
departure_airport
arrival_airport
aircraft_code
...
< 333.121 rows1 >
> + + target="_top" + tooltip="flights" + ]; + "seats" [ + label=< + + + + + + +
seats[table]
aircraft_code
seat_no
...
< 11.339 rows
> + + target="_top" + tooltip="seats" + ]; + "ticket_flights" [ + label=< + + + + + + +
ticket_flights[table]
ticket_no
flight_id
...
< 21.045.726 rows2 >
> + + target="_top" + tooltip="ticket_flights" + ]; + "tickets" [ + label=< + + + + + + +
tickets[table]
ticket_no
book_ref
...
< 1366.733 rows1 >
> + + target="_top" + tooltip="tickets" + ]; + "boarding_passes":"flight_id":w -> "ticket_flights":"flight_id":e [arrowhead=none dir=back arrowtail=crowodot]; + "boarding_passes":"ticket_no":w -> "ticket_flights":"ticket_no":e [arrowhead=none dir=back arrowtail=crowodot]; + "flights":"aircraft_code":w -> "aircrafts_data":"aircraft_code":e [arrowhead=none dir=back arrowtail=crowodot]; + "flights":"arrival_airport":w -> "airports_data":"airport_code":e [arrowhead=none dir=back arrowtail=crowodot]; + "flights":"departure_airport":w -> "airports_data":"airport_code":e [arrowhead=none dir=back arrowtail=crowodot]; + "seats":"aircraft_code":w -> "aircrafts_data":"aircraft_code":e [arrowhead=none dir=back arrowtail=crowodot]; + "ticket_flights":"flight_id":w -> "flights":"flight_id":e [arrowhead=none dir=back arrowtail=crowodot]; + "ticket_flights":"ticket_no":w -> "tickets":"ticket_no":e [arrowhead=none dir=back arrowtail=crowodot]; + "tickets":"book_ref":w -> "bookings":"book_ref":e [arrowhead=none dir=back arrowtail=crowodot]; +} diff --git a/src/Legacy/Tasks/SQL/ERDs/northwind.dot b/src/Legacy/Tasks/SQL/ERDs/northwind.dot index 58f7694..d766f9c 100644 --- a/src/Legacy/Tasks/SQL/ERDs/northwind.dot +++ b/src/Legacy/Tasks/SQL/ERDs/northwind.dot @@ -1,251 +1,251 @@ -digraph "northwind" { - graph [ - rankdir="RL" - labeljust="l" - nodesep="0.18" - ranksep="0.46" - fontname="Helvetica" - fontsize="11" - ration="compress" - bgcolor="transparent" - ]; - node [ - fontname="Helvetica" - fontsize="11" - shape="plaintext" - ]; - edge [ - arrowsize="0.8" - ]; - "categories" [ - label=< - - - - - - - -
categories[table]
category_id
category_name
description
picture
8 rows1 >
> - - target="_top" - tooltip="categories" - ]; - "customer_customer_demo" [ - label=< - - - - - -
customer_customer_demo[table]
customer_id
customer_type_id
< 20 rows
> - - target="_top" - tooltip="customer_customer_demo" - ]; - "customer_demographics" [ - label=< - - - - - -
customer_demographics[table]
customer_type_id
customer_desc
0 rows1 >
> - - target="_top" - tooltip="customer_demographics" - ]; - "customers" [ - label=< - - - - - - - - - - - - - - -
customers[table]
customer_id
company_name
contact_name
contact_title
address
city
region
postal_code
country
phone
fax
91 rows2 >
> - - target="_top" - tooltip="customers" - ]; - "employee_territories" [ - label=< - - - - - -
employee_territories[table]
employee_id
territory_id
< 249 rows
> - - target="_top" - tooltip="employee_territories" - ]; - "employees" [ - label=< - - - - - - - - - - - - - - - - - - - - - -
employees[table]
employee_id
last_name
first_name
title
title_of_courtesy
birth_date
hire_date
address
city
region
postal_code
country
home_phone
extension
photo
notes
reports_to
photo_path
< 19 rows3 >
> - - target="_top" - tooltip="employees" - ]; - "order_details" [ - label=< - - - - - - - - -
order_details[table]
order_id
product_id
unit_price
quantity
discount
< 22,155 rows
> - - target="_top" - tooltip="order_details" - ]; - "orders" [ - label=< - - - - - - - - - - - - - - - - - -
orders[table]
order_id
customer_id
employee_id
order_date
required_date
shipped_date
ship_via
freight
ship_name
ship_address
ship_city
ship_region
ship_postal_code
ship_country
< 3830 rows1 >
> - - target="_top" - tooltip="orders" - ]; - "products" [ - label=< - - - - - - - - - - - - - -
products[table]
product_id
product_name
supplier_id
category_id
quantity_per_unit
unit_price
units_in_stock
units_on_order
reorder_level
discontinued
< 277 rows1 >
> - - target="_top" - tooltip="products" - ]; - "region" [ - label=< - - - - - -
region[table]
region_id
region_description
4 rows1 >
> - - target="_top" - tooltip="region" - ]; - "shippers" [ - label=< - - - - - - -
shippers[table]
shipper_id
company_name
phone
6 rows1 >
> - - target="_top" - tooltip="shippers" - ]; - "suppliers" [ - label=< - - - - - - - - - - - - - - - -
suppliers[table]
supplier_id
company_name
contact_name
contact_title
address
city
region
postal_code
country
phone
fax
homepage
29 rows1 >
> - - target="_top" - tooltip="suppliers" - ]; - "territories" [ - label=< - - - - - - -
territories[table]
territory_id
territory_description
region_id
< 153 rows1 >
> - - target="_top" - tooltip="territories" - ]; - "customer_customer_demo":"customer_id":w -> "customers":"customer_id":e [arrowhead=none dir=back arrowtail=crowodot]; - "customer_customer_demo":"customer_type_id":w -> "customer_demographics":"customer_type_id":e [arrowhead=none dir=back arrowtail=crowodot]; - "employee_territories":"employee_id":w -> "employees":"employee_id":e [arrowhead=none dir=back arrowtail=crowodot]; - "employee_territories":"territory_id":w -> "territories":"territory_id":e [arrowhead=none dir=back arrowtail=crowodot]; - "employees":"reports_to":w -> "employees":"employee_id":e [arrowhead=none dir=back arrowtail=crowodot]; - "order_details":"order_id":w -> "orders":"order_id":e [arrowhead=none dir=back arrowtail=crowodot]; - "order_details":"product_id":w -> "products":"product_id":e [arrowhead=none dir=back arrowtail=crowodot]; - "orders":"customer_id":w -> "customers":"customer_id":e [arrowhead=none dir=back arrowtail=crowodot]; - "orders":"employee_id":w -> "employees":"employee_id":e [arrowhead=none dir=back arrowtail=crowodot]; - "orders":"ship_via":w -> "shippers":"shipper_id":e [arrowhead=none dir=back arrowtail=crowodot]; - "products":"category_id":w -> "categories":"category_id":e [arrowhead=none dir=back arrowtail=crowodot]; - "products":"supplier_id":w -> "suppliers":"supplier_id":e [arrowhead=none dir=back arrowtail=crowodot]; - "territories":"region_id":w -> "region":"region_id":e [arrowhead=none dir=back arrowtail=crowodot]; -} +digraph "northwind" { + graph [ + rankdir="RL" + labeljust="l" + nodesep="0.18" + ranksep="0.46" + fontname="Helvetica" + fontsize="11" + ration="compress" + bgcolor="transparent" + ]; + node [ + fontname="Helvetica" + fontsize="11" + shape="plaintext" + ]; + edge [ + arrowsize="0.8" + ]; + "categories" [ + label=< + + + + + + + +
categories[table]
category_id
category_name
description
picture
8 rows1 >
> + + target="_top" + tooltip="categories" + ]; + "customer_customer_demo" [ + label=< + + + + + +
customer_customer_demo[table]
customer_id
customer_type_id
< 20 rows
> + + target="_top" + tooltip="customer_customer_demo" + ]; + "customer_demographics" [ + label=< + + + + + +
customer_demographics[table]
customer_type_id
customer_desc
0 rows1 >
> + + target="_top" + tooltip="customer_demographics" + ]; + "customers" [ + label=< + + + + + + + + + + + + + + +
customers[table]
customer_id
company_name
contact_name
contact_title
address
city
region
postal_code
country
phone
fax
91 rows2 >
> + + target="_top" + tooltip="customers" + ]; + "employee_territories" [ + label=< + + + + + +
employee_territories[table]
employee_id
territory_id
< 249 rows
> + + target="_top" + tooltip="employee_territories" + ]; + "employees" [ + label=< + + + + + + + + + + + + + + + + + + + + + +
employees[table]
employee_id
last_name
first_name
title
title_of_courtesy
birth_date
hire_date
address
city
region
postal_code
country
home_phone
extension
photo
notes
reports_to
photo_path
< 19 rows3 >
> + + target="_top" + tooltip="employees" + ]; + "order_details" [ + label=< + + + + + + + + +
order_details[table]
order_id
product_id
unit_price
quantity
discount
< 22,155 rows
> + + target="_top" + tooltip="order_details" + ]; + "orders" [ + label=< + + + + + + + + + + + + + + + + + +
orders[table]
order_id
customer_id
employee_id
order_date
required_date
shipped_date
ship_via
freight
ship_name
ship_address
ship_city
ship_region
ship_postal_code
ship_country
< 3830 rows1 >
> + + target="_top" + tooltip="orders" + ]; + "products" [ + label=< + + + + + + + + + + + + + +
products[table]
product_id
product_name
supplier_id
category_id
quantity_per_unit
unit_price
units_in_stock
units_on_order
reorder_level
discontinued
< 277 rows1 >
> + + target="_top" + tooltip="products" + ]; + "region" [ + label=< + + + + + +
region[table]
region_id
region_description
4 rows1 >
> + + target="_top" + tooltip="region" + ]; + "shippers" [ + label=< + + + + + + +
shippers[table]
shipper_id
company_name
phone
6 rows1 >
> + + target="_top" + tooltip="shippers" + ]; + "suppliers" [ + label=< + + + + + + + + + + + + + + + +
suppliers[table]
supplier_id
company_name
contact_name
contact_title
address
city
region
postal_code
country
phone
fax
homepage
29 rows1 >
> + + target="_top" + tooltip="suppliers" + ]; + "territories" [ + label=< + + + + + + +
territories[table]
territory_id
territory_description
region_id
< 153 rows1 >
> + + target="_top" + tooltip="territories" + ]; + "customer_customer_demo":"customer_id":w -> "customers":"customer_id":e [arrowhead=none dir=back arrowtail=crowodot]; + "customer_customer_demo":"customer_type_id":w -> "customer_demographics":"customer_type_id":e [arrowhead=none dir=back arrowtail=crowodot]; + "employee_territories":"employee_id":w -> "employees":"employee_id":e [arrowhead=none dir=back arrowtail=crowodot]; + "employee_territories":"territory_id":w -> "territories":"territory_id":e [arrowhead=none dir=back arrowtail=crowodot]; + "employees":"reports_to":w -> "employees":"employee_id":e [arrowhead=none dir=back arrowtail=crowodot]; + "order_details":"order_id":w -> "orders":"order_id":e [arrowhead=none dir=back arrowtail=crowodot]; + "order_details":"product_id":w -> "products":"product_id":e [arrowhead=none dir=back arrowtail=crowodot]; + "orders":"customer_id":w -> "customers":"customer_id":e [arrowhead=none dir=back arrowtail=crowodot]; + "orders":"employee_id":w -> "employees":"employee_id":e [arrowhead=none dir=back arrowtail=crowodot]; + "orders":"ship_via":w -> "shippers":"shipper_id":e [arrowhead=none dir=back arrowtail=crowodot]; + "products":"category_id":w -> "categories":"category_id":e [arrowhead=none dir=back arrowtail=crowodot]; + "products":"supplier_id":w -> "suppliers":"supplier_id":e [arrowhead=none dir=back arrowtail=crowodot]; + "territories":"region_id":w -> "region":"region_id":e [arrowhead=none dir=back arrowtail=crowodot]; +} diff --git a/src/Legacy/Tasks/SQL/ERDs/sports.dot b/src/Legacy/Tasks/SQL/ERDs/sports.dot index 64f35b1..6495129 100644 --- a/src/Legacy/Tasks/SQL/ERDs/sports.dot +++ b/src/Legacy/Tasks/SQL/ERDs/sports.dot @@ -1,1161 +1,1161 @@ -digraph "compactRelationshipsDiagram" { - graph [ - rankdir="RL" - bgcolor="transparent" - - labeljust="l" - nodesep="0.18" - ranksep="0.46" - fontname="Helvetica" - fontsize="11" - ration="compress" - ]; - node [ - fontname="Helvetica" - fontsize="11" - shape="plaintext" - ]; - edge [ - arrowsize="0.8" - ]; - "addresses" [ - label=< - - - - - - - - - -
addresses[table]
id
location_id
locality
region
postal_code
...
< 10 rows
> - - target="_top" - tooltip="addresses" - ]; - "affiliation_phases" [ - label=< - - - - - - - - - -
affiliation_phases[table]
id
affiliation_id
ancestor_affiliation_id
start_season_id
end_season_id
...
< 455 rows
> - - target="_top" - tooltip="affiliation_phases" - ]; - "affiliations" [ - label=< - - - - - - - -
affiliations[table]
id
affiliation_key
affiliation_type
publisher_id
< 129 rows10 >
> - - target="_top" - tooltip="affiliations" - ]; - "affiliations_documents" [ - label=< - - - - - -
affiliations_documents[table]
affiliation_id
document_id
< 21.234 rows
> - - target="_top" - tooltip="affiliations_documents" - ]; - "affiliations_events" [ - label=< - - - - - -
affiliations_events[table]
affiliation_id
event_id
< 213.052 rows
> - - target="_top" - tooltip="affiliations_events" - ]; - "affiliations_media" [ - label=< - - - - - -
affiliations_media[table]
affiliation_id
media_id
< 20 rows
> - - target="_top" - tooltip="affiliations_media" - ]; - "american_football_action_participants" [ - label=< - - - - - - - - - -
american_football_action_participants[table]
id
american_football_action_play_id
person_id
participant_role
score_type
...
< 2213 rows
> - - target="_top" - tooltip="american_football_action_participants" - ]; - "american_football_action_plays" [ - label=< - - - - - - - - - -
american_football_action_plays[table]
id
american_football_event_state_id
play_type
score_attempt_type
drive_result
...
< 1179 rows1 >
> - - target="_top" - tooltip="american_football_action_plays" - ]; - "american_football_event_states" [ - label=< - - - - - - - - -
american_football_event_states[table]
id
event_id
current_state
team_in_possession_id
...
< 2193 rows1 >
> - - target="_top" - tooltip="american_football_event_states" - ]; - "baseball_action_contact_details" [ - label=< - - - - - - -
baseball_action_contact_details[table]
id
baseball_action_pitch_id
...
< 10 rows
> - - target="_top" - tooltip="baseball_action_contact_details" - ]; - "baseball_action_pitches" [ - label=< - - - - - - - - - -
baseball_action_pitches[table]
id
baseball_action_play_id
baseball_defensive_group_id
umpire_call
pitch_type
...
< 20 rows1 >
> - - target="_top" - tooltip="baseball_action_pitches" - ]; - "baseball_action_plays" [ - label=< - - - - - - - -
baseball_action_plays[table]
id
baseball_event_state_id
play_type
...
< 117 rows1 >
> - - target="_top" - tooltip="baseball_action_plays" - ]; - "baseball_action_substitutions" [ - label=< - - - - - - - - - - -
baseball_action_substitutions[table]
id
baseball_event_state_id
person_original_id
person_original_position_id
person_replacing_id
person_replacing_position_id
...
< 50 rows
> - - target="_top" - tooltip="baseball_action_substitutions" - ]; - "baseball_defensive_group" [ - label=< - - - - -
baseball_defensive_group[table]
id
0 rows2 >
> - - target="_top" - tooltip="baseball_defensive_group" - ]; - "baseball_defensive_players" [ - label=< - - - - - - - -
baseball_defensive_players[table]
id
baseball_defensive_group_id
player_id
position_id
< 30 rows
> - - target="_top" - tooltip="baseball_defensive_players" - ]; - "baseball_event_states" [ - label=< - - - - - - - - - - - - -
baseball_event_states[table]
id
event_id
current_state
runner_on_first_id
runner_on_second_id
runner_on_third_id
pitcher_id
batter_id
...
< 617 rows2 >
> - - target="_top" - tooltip="baseball_event_states" - ]; - "basketball_event_states" [ - label=< - - - - - - -
basketball_event_states[table]
id
event_id
...
< 10 rows
> - - target="_top" - tooltip="basketball_event_states" - ]; - "bookmakers" [ - label=< - - - - - - - -
bookmakers[table]
id
publisher_id
location_id
...
< 20 rows5 >
> - - target="_top" - tooltip="bookmakers" - ]; - "core_person_stats" [ - label=< - - - - - - -
core_person_stats[table]
id
position_id
...
< 11.582 rows
> - - target="_top" - tooltip="core_person_stats" - ]; - "document_classes" [ - label=< - - - - - -
document_classes[table]
id
name
6 rows1 >
> - - target="_top" - tooltip="document_classes" - ]; - "document_contents" [ - label=< - - - - - - -
document_contents[table]
id
document_id
...
< 1414 rows
> - - target="_top" - tooltip="document_contents" - ]; - "document_fixtures" [ - label=< - - - - - - - - -
document_fixtures[table]
id
fixture_key
publisher_id
document_class_id
...
< 212 rows2 >
> - - target="_top" - tooltip="document_fixtures" - ]; - "document_fixtures_events" [ - label=< - - - - - - - - -
document_fixtures_events[table]
id
document_fixture_id
event_id
latest_document_id
...
< 34.428 rows
> - - target="_top" - tooltip="document_fixtures_events" - ]; - "document_package_entry" [ - label=< - - - - - - - -
document_package_entry[table]
id
document_package_id
document_id
...
< 20 rows
> - - target="_top" - tooltip="document_package_entry" - ]; - "document_packages" [ - label=< - - - - - -
document_packages[table]
id
...
0 rows1 >
> - - target="_top" - tooltip="document_packages" - ]; - "documents" [ - label=< - - - - - - - - - - - - -
documents[table]
id
doc_id
publisher_id
date_time
priority
revision_id
document_fixture_id
source_id
...
< 3414 rows9 >
> - - target="_top" - tooltip="documents" - ]; - "documents_media" [ - label=< - - - - - - - -
documents_media[table]
id
document_id
media_id
media_caption_id
< 30 rows
> - - target="_top" - tooltip="documents_media" - ]; - "events" [ - label=< - - - - - - - - -
events[table]
id
event_key
publisher_id
site_id
...
< 24.350 rows20 >
> - - target="_top" - tooltip="events" - ]; - "events_documents" [ - label=< - - - - - -
events_documents[table]
event_id
document_id
< 27.915 rows
> - - target="_top" - tooltip="events_documents" - ]; - "events_media" [ - label=< - - - - - -
events_media[table]
event_id
media_id
< 20 rows
> - - target="_top" - tooltip="events_media" - ]; - "events_sub_seasons" [ - label=< - - - - - -
events_sub_seasons[table]
event_id
sub_season_id
< 24.350 rows
> - - target="_top" - tooltip="events_sub_seasons" - ]; - "ice_hockey_event_states" [ - label=< - - - - - - -
ice_hockey_event_states[table]
id
event_id
...
< 151 rows
> - - target="_top" - tooltip="ice_hockey_event_states" - ]; - "injury_phases" [ - label=< - - - - - - - - - - -
injury_phases[table]
id
person_id
injury_status
start_date_time
end_date_time
season_id
...
< 2771 rows
> - - target="_top" - tooltip="injury_phases" - ]; - "key_aliases" [ - label=< - - - - - - -
key_aliases[table]
id
key_id
key_root_id
< 10 rows
> - - target="_top" - tooltip="key_aliases" - ]; - "key_roots" [ - label=< - - - - - -
key_roots[table]
id
key_type
0 rows1 >
> - - target="_top" - tooltip="key_roots" - ]; - "latest_revisions" [ - label=< - - - - - - -
latest_revisions[table]
id
revision_id
latest_document_id
< 1295 rows
> - - target="_top" - tooltip="latest_revisions" - ]; - "locations" [ - label=< - - - - - - -
locations[table]
id
country_code
...
0 rows8 >
> - - target="_top" - tooltip="locations" - ]; - "media" [ - label=< - - - - - - - - -
media[table]
id
publisher_id
credit_id
creation_location_id
...
< 30 rows8 >
> - - target="_top" - tooltip="media" - ]; - "media_captions" [ - label=< - - - - - - - -
media_captions[table]
id
media_id
caption_author_id
...
< 20 rows1 >
> - - target="_top" - tooltip="media_captions" - ]; - "media_contents" [ - label=< - - - - - - -
media_contents[table]
id
media_id
...
< 10 rows
> - - target="_top" - tooltip="media_contents" - ]; - "media_keywords" [ - label=< - - - - - - -
media_keywords[table]
id
media_id
...
< 10 rows
> - - target="_top" - tooltip="media_keywords" - ]; - "motor_racing_event_states" [ - label=< - - - - - - -
motor_racing_event_states[table]
id
event_id
...
< 10 rows
> - - target="_top" - tooltip="motor_racing_event_states" - ]; - "outcome_totals" [ - label=< - - - - - - -
outcome_totals[table]
id
standing_subgroup_id
...
< 10 rows
> - - target="_top" - tooltip="outcome_totals" - ]; - "participants_events" [ - label=< - - - - - - - - - - -
participants_events[table]
id
participant_type
participant_id
event_id
alignment
event_outcome
...
< 18.700 rows1 >
> - - target="_top" - tooltip="participants_events" - ]; - "periods" [ - label=< - - - - - - -
periods[table]
id
participant_event_id
...
< 1548 rows1 >
> - - target="_top" - tooltip="periods" - ]; - "person_event_metadata" [ - label=< - - - - - - - - - - - -
person_event_metadata[table]
id
person_id
event_id
status
role_id
position_id
team_id
...
< 54.002 rows
> - - target="_top" - tooltip="person_event_metadata" - ]; - "person_phases" [ - label=< - - - - - - - - - - - - - -
person_phases[table]
id
person_id
membership_type
membership_id
role_id
phase_status
regular_position_id
start_season_id
end_season_id
...
< 50 rows
> - - target="_top" - tooltip="person_phases" - ]; - "persons" [ - label=< - - - - - - - - - - - -
persons[table]
id
person_key
publisher_id
birth_location_id
hometown_location_id
residence_location_id
death_location_id
...
< 53.937 rows16 >
> - - target="_top" - tooltip="persons" - ]; - "persons_documents" [ - label=< - - - - - -
persons_documents[table]
person_id
document_id
< 20 rows
> - - target="_top" - tooltip="persons_documents" - ]; - "persons_media" [ - label=< - - - - - -
persons_media[table]
person_id
media_id
< 20 rows
> - - target="_top" - tooltip="persons_media" - ]; - "positions" [ - label=< - - - - - - -
positions[table]
id
affiliation_id
abbreviation
< 173 rows6 >
> - - target="_top" - tooltip="positions" - ]; - "publishers" [ - label=< - - - - - - -
publishers[table]
id
publisher_key
...
1 row12 >
> - - target="_top" - tooltip="publishers" - ]; - "roles" [ - label=< - - - - - - -
roles[table]
id
role_key
...
0 rows3 >
> - - target="_top" - tooltip="roles" - ]; - "seasons" [ - label=< - - - - - - - - -
seasons[table]
id
season_key
publisher_id
league_id
...
< 24 rows8 >
> - - target="_top" - tooltip="seasons" - ]; - "sites" [ - label=< - - - - - - - -
sites[table]
id
site_key
publisher_id
location_id
< 20 rows2 >
> - - target="_top" - tooltip="sites" - ]; - "soccer_event_states" [ - label=< - - - - - - -
soccer_event_states[table]
id
event_id
...
< 10 rows
> - - target="_top" - tooltip="soccer_event_states" - ]; - "standing_subgroups" [ - label=< - - - - - - -
standing_subgroups[table]
id
standing_id
affiliation_id
< 20 rows1 >
> - - target="_top" - tooltip="standing_subgroups" - ]; - "standings" [ - label=< - - - - - - - - -
standings[table]
id
affiliation_id
sub_season_id
publisher_id
...
< 30 rows1 >
> - - target="_top" - tooltip="standings" - ]; - "sub_periods" [ - label=< - - - - - - -
sub_periods[table]
id
period_id
...
< 10 rows
> - - target="_top" - tooltip="sub_periods" - ]; - "sub_seasons" [ - label=< - - - - - - - - -
sub_seasons[table]
id
sub_season_key
season_id
sub_season_type
...
< 14 rows2 >
> - - target="_top" - tooltip="sub_seasons" - ]; - "team_phases" [ - label=< - - - - - - - - - - -
team_phases[table]
id
team_id
start_season_id
end_season_id
affiliation_id
role_id
...
< 5368 rows
> - - target="_top" - tooltip="team_phases" - ]; - "teams" [ - label=< - - - - - - - -
teams[table]
id
publisher_id
home_site_id
...
< 2128 rows10 >
> - - target="_top" - tooltip="teams" - ]; - "teams_documents" [ - label=< - - - - - -
teams_documents[table]
team_id
document_id
< 2435 rows
> - - target="_top" - tooltip="teams_documents" - ]; - "teams_media" [ - label=< - - - - - -
teams_media[table]
team_id
media_id
< 20 rows
> - - target="_top" - tooltip="teams_media" - ]; - "tennis_event_states" [ - label=< - - - - - - -
tennis_event_states[table]
id
event_id
...
< 10 rows
> - - target="_top" - tooltip="tennis_event_states" - ]; - "wagering_moneylines" [ - label=< - - - - - - - - -
wagering_moneylines[table]
id
bookmaker_id
event_id
team_id
...
< 30 rows
> - - target="_top" - tooltip="wagering_moneylines" - ]; - "wagering_odds_lines" [ - label=< - - - - - - - - -
wagering_odds_lines[table]
id
bookmaker_id
event_id
team_id
...
< 30 rows
> - - target="_top" - tooltip="wagering_odds_lines" - ]; - "wagering_runlines" [ - label=< - - - - - - - - -
wagering_runlines[table]
id
bookmaker_id
event_id
team_id
...
< 30 rows
> - - target="_top" - tooltip="wagering_runlines" - ]; - "wagering_straight_spread_lines" [ - label=< - - - - - - - - -
wagering_straight_spread_lines[table]
id
bookmaker_id
event_id
team_id
...
< 30 rows
> - - target="_top" - tooltip="wagering_straight_spread_lines" - ]; - "wagering_total_score_lines" [ - label=< - - - - - - - - -
wagering_total_score_lines[table]
id
bookmaker_id
event_id
team_id
...
< 30 rows
> - - target="_top" - tooltip="wagering_total_score_lines" - ]; - "weather_conditions" [ - label=< - - - - - - -
weather_conditions[table]
id
event_id
...
< 10 rows
> - - target="_top" - tooltip="weather_conditions" - ]; - "addresses":"location_id":w -> "locations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "affiliation_phases":"affiliation_id":w -> "affiliations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "affiliation_phases":"ancestor_affiliation_id":w -> "affiliations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "affiliation_phases":"end_season_id":w -> "seasons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "affiliation_phases":"start_season_id":w -> "seasons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "affiliations":"publisher_id":w -> "publishers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "affiliations_documents":"affiliation_id":w -> "affiliations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "affiliations_documents":"document_id":w -> "documents":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "affiliations_events":"affiliation_id":w -> "affiliations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "affiliations_events":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "affiliations_media":"affiliation_id":w -> "affiliations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "affiliations_media":"media_id":w -> "media":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "american_football_action_participants":"american_football_action_play_id":w -> "american_football_action_plays":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "american_football_action_participants":"person_id":w -> "persons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "american_football_action_plays":"american_football_event_state_id":w -> "american_football_event_states":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "american_football_event_states":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "american_football_event_states":"team_in_possession_id":w -> "teams":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "baseball_action_contact_details":"baseball_action_pitch_id":w -> "baseball_action_pitches":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "baseball_action_pitches":"baseball_action_play_id":w -> "baseball_action_plays":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "baseball_action_pitches":"baseball_defensive_group_id":w -> "baseball_defensive_group":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "baseball_action_plays":"baseball_event_state_id":w -> "baseball_event_states":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "baseball_action_substitutions":"baseball_event_state_id":w -> "baseball_event_states":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "baseball_action_substitutions":"person_original_id":w -> "persons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "baseball_action_substitutions":"person_original_position_id":w -> "positions":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "baseball_action_substitutions":"person_replacing_id":w -> "persons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "baseball_action_substitutions":"person_replacing_position_id":w -> "positions":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "baseball_defensive_players":"baseball_defensive_group_id":w -> "baseball_defensive_group":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "baseball_defensive_players":"player_id":w -> "persons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "baseball_defensive_players":"position_id":w -> "positions":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "baseball_event_states":"batter_id":w -> "persons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "baseball_event_states":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "baseball_event_states":"pitcher_id":w -> "persons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "baseball_event_states":"runner_on_first_id":w -> "persons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "baseball_event_states":"runner_on_second_id":w -> "persons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "baseball_event_states":"runner_on_third_id":w -> "persons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "basketball_event_states":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "bookmakers":"location_id":w -> "locations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "bookmakers":"publisher_id":w -> "publishers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "core_person_stats":"position_id":w -> "positions":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "document_contents":"document_id":w -> "documents":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "document_fixtures":"document_class_id":w -> "document_classes":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "document_fixtures":"publisher_id":w -> "publishers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "document_fixtures_events":"document_fixture_id":w -> "document_fixtures":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "document_fixtures_events":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "document_fixtures_events":"latest_document_id":w -> "documents":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "document_package_entry":"document_id":w -> "documents":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "document_package_entry":"document_package_id":w -> "document_packages":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "documents":"document_fixture_id":w -> "document_fixtures":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "documents":"publisher_id":w -> "publishers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "documents":"source_id":w -> "publishers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "documents_media":"document_id":w -> "documents":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "documents_media":"media_caption_id":w -> "media_captions":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "documents_media":"media_id":w -> "media":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "events":"publisher_id":w -> "publishers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "events":"site_id":w -> "sites":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "events_documents":"document_id":w -> "documents":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "events_documents":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "events_media":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "events_media":"media_id":w -> "media":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "events_sub_seasons":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "events_sub_seasons":"sub_season_id":w -> "sub_seasons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "ice_hockey_event_states":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "injury_phases":"person_id":w -> "persons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "injury_phases":"season_id":w -> "seasons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "key_aliases":"key_root_id":w -> "key_roots":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "latest_revisions":"latest_document_id":w -> "documents":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "media":"creation_location_id":w -> "locations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "media":"credit_id":w -> "persons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "media":"publisher_id":w -> "publishers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "media_captions":"caption_author_id":w -> "persons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "media_captions":"media_id":w -> "media":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "media_contents":"media_id":w -> "media":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "media_keywords":"media_id":w -> "media":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "motor_racing_event_states":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "outcome_totals":"standing_subgroup_id":w -> "standing_subgroups":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "participants_events":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "periods":"participant_event_id":w -> "participants_events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "person_event_metadata":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "person_event_metadata":"person_id":w -> "persons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "person_event_metadata":"position_id":w -> "positions":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "person_event_metadata":"role_id":w -> "roles":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "person_event_metadata":"team_id":w -> "teams":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "person_phases":"end_season_id":w -> "seasons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "person_phases":"person_id":w -> "persons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "person_phases":"regular_position_id":w -> "positions":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "person_phases":"role_id":w -> "roles":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "person_phases":"start_season_id":w -> "seasons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "persons":"birth_location_id":w -> "locations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "persons":"death_location_id":w -> "locations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "persons":"hometown_location_id":w -> "locations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "persons":"publisher_id":w -> "publishers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "persons":"residence_location_id":w -> "locations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "persons_documents":"document_id":w -> "documents":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "persons_documents":"person_id":w -> "persons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "persons_media":"media_id":w -> "media":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "persons_media":"person_id":w -> "persons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "positions":"affiliation_id":w -> "affiliations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "seasons":"league_id":w -> "affiliations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "seasons":"publisher_id":w -> "publishers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "sites":"location_id":w -> "locations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "sites":"publisher_id":w -> "publishers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "soccer_event_states":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "standing_subgroups":"affiliation_id":w -> "affiliations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "standing_subgroups":"standing_id":w -> "standings":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "standings":"affiliation_id":w -> "affiliations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "standings":"publisher_id":w -> "publishers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "standings":"sub_season_id":w -> "sub_seasons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "sub_periods":"period_id":w -> "periods":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "sub_seasons":"season_id":w -> "seasons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "team_phases":"affiliation_id":w -> "affiliations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "team_phases":"end_season_id":w -> "seasons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "team_phases":"role_id":w -> "roles":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "team_phases":"start_season_id":w -> "seasons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "team_phases":"team_id":w -> "teams":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "teams":"home_site_id":w -> "sites":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "teams":"publisher_id":w -> "publishers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "teams_documents":"document_id":w -> "documents":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "teams_documents":"team_id":w -> "teams":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "teams_media":"media_id":w -> "media":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "teams_media":"team_id":w -> "teams":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "tennis_event_states":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "wagering_moneylines":"bookmaker_id":w -> "bookmakers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "wagering_moneylines":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "wagering_moneylines":"team_id":w -> "teams":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "wagering_odds_lines":"bookmaker_id":w -> "bookmakers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "wagering_odds_lines":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "wagering_odds_lines":"team_id":w -> "teams":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "wagering_runlines":"bookmaker_id":w -> "bookmakers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "wagering_runlines":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "wagering_runlines":"team_id":w -> "teams":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "wagering_straight_spread_lines":"bookmaker_id":w -> "bookmakers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "wagering_straight_spread_lines":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "wagering_straight_spread_lines":"team_id":w -> "teams":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "wagering_total_score_lines":"bookmaker_id":w -> "bookmakers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "wagering_total_score_lines":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "wagering_total_score_lines":"team_id":w -> "teams":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "weather_conditions":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; -} +digraph "compactRelationshipsDiagram" { + graph [ + rankdir="RL" + bgcolor="transparent" + + labeljust="l" + nodesep="0.18" + ranksep="0.46" + fontname="Helvetica" + fontsize="11" + ration="compress" + ]; + node [ + fontname="Helvetica" + fontsize="11" + shape="plaintext" + ]; + edge [ + arrowsize="0.8" + ]; + "addresses" [ + label=< + + + + + + + + + +
addresses[table]
id
location_id
locality
region
postal_code
...
< 10 rows
> + + target="_top" + tooltip="addresses" + ]; + "affiliation_phases" [ + label=< + + + + + + + + + +
affiliation_phases[table]
id
affiliation_id
ancestor_affiliation_id
start_season_id
end_season_id
...
< 455 rows
> + + target="_top" + tooltip="affiliation_phases" + ]; + "affiliations" [ + label=< + + + + + + + +
affiliations[table]
id
affiliation_key
affiliation_type
publisher_id
< 129 rows10 >
> + + target="_top" + tooltip="affiliations" + ]; + "affiliations_documents" [ + label=< + + + + + +
affiliations_documents[table]
affiliation_id
document_id
< 21.234 rows
> + + target="_top" + tooltip="affiliations_documents" + ]; + "affiliations_events" [ + label=< + + + + + +
affiliations_events[table]
affiliation_id
event_id
< 213.052 rows
> + + target="_top" + tooltip="affiliations_events" + ]; + "affiliations_media" [ + label=< + + + + + +
affiliations_media[table]
affiliation_id
media_id
< 20 rows
> + + target="_top" + tooltip="affiliations_media" + ]; + "american_football_action_participants" [ + label=< + + + + + + + + + +
american_football_action_participants[table]
id
american_football_action_play_id
person_id
participant_role
score_type
...
< 2213 rows
> + + target="_top" + tooltip="american_football_action_participants" + ]; + "american_football_action_plays" [ + label=< + + + + + + + + + +
american_football_action_plays[table]
id
american_football_event_state_id
play_type
score_attempt_type
drive_result
...
< 1179 rows1 >
> + + target="_top" + tooltip="american_football_action_plays" + ]; + "american_football_event_states" [ + label=< + + + + + + + + +
american_football_event_states[table]
id
event_id
current_state
team_in_possession_id
...
< 2193 rows1 >
> + + target="_top" + tooltip="american_football_event_states" + ]; + "baseball_action_contact_details" [ + label=< + + + + + + +
baseball_action_contact_details[table]
id
baseball_action_pitch_id
...
< 10 rows
> + + target="_top" + tooltip="baseball_action_contact_details" + ]; + "baseball_action_pitches" [ + label=< + + + + + + + + + +
baseball_action_pitches[table]
id
baseball_action_play_id
baseball_defensive_group_id
umpire_call
pitch_type
...
< 20 rows1 >
> + + target="_top" + tooltip="baseball_action_pitches" + ]; + "baseball_action_plays" [ + label=< + + + + + + + +
baseball_action_plays[table]
id
baseball_event_state_id
play_type
...
< 117 rows1 >
> + + target="_top" + tooltip="baseball_action_plays" + ]; + "baseball_action_substitutions" [ + label=< + + + + + + + + + + +
baseball_action_substitutions[table]
id
baseball_event_state_id
person_original_id
person_original_position_id
person_replacing_id
person_replacing_position_id
...
< 50 rows
> + + target="_top" + tooltip="baseball_action_substitutions" + ]; + "baseball_defensive_group" [ + label=< + + + + +
baseball_defensive_group[table]
id
0 rows2 >
> + + target="_top" + tooltip="baseball_defensive_group" + ]; + "baseball_defensive_players" [ + label=< + + + + + + + +
baseball_defensive_players[table]
id
baseball_defensive_group_id
player_id
position_id
< 30 rows
> + + target="_top" + tooltip="baseball_defensive_players" + ]; + "baseball_event_states" [ + label=< + + + + + + + + + + + + +
baseball_event_states[table]
id
event_id
current_state
runner_on_first_id
runner_on_second_id
runner_on_third_id
pitcher_id
batter_id
...
< 617 rows2 >
> + + target="_top" + tooltip="baseball_event_states" + ]; + "basketball_event_states" [ + label=< + + + + + + +
basketball_event_states[table]
id
event_id
...
< 10 rows
> + + target="_top" + tooltip="basketball_event_states" + ]; + "bookmakers" [ + label=< + + + + + + + +
bookmakers[table]
id
publisher_id
location_id
...
< 20 rows5 >
> + + target="_top" + tooltip="bookmakers" + ]; + "core_person_stats" [ + label=< + + + + + + +
core_person_stats[table]
id
position_id
...
< 11.582 rows
> + + target="_top" + tooltip="core_person_stats" + ]; + "document_classes" [ + label=< + + + + + +
document_classes[table]
id
name
6 rows1 >
> + + target="_top" + tooltip="document_classes" + ]; + "document_contents" [ + label=< + + + + + + +
document_contents[table]
id
document_id
...
< 1414 rows
> + + target="_top" + tooltip="document_contents" + ]; + "document_fixtures" [ + label=< + + + + + + + + +
document_fixtures[table]
id
fixture_key
publisher_id
document_class_id
...
< 212 rows2 >
> + + target="_top" + tooltip="document_fixtures" + ]; + "document_fixtures_events" [ + label=< + + + + + + + + +
document_fixtures_events[table]
id
document_fixture_id
event_id
latest_document_id
...
< 34.428 rows
> + + target="_top" + tooltip="document_fixtures_events" + ]; + "document_package_entry" [ + label=< + + + + + + + +
document_package_entry[table]
id
document_package_id
document_id
...
< 20 rows
> + + target="_top" + tooltip="document_package_entry" + ]; + "document_packages" [ + label=< + + + + + +
document_packages[table]
id
...
0 rows1 >
> + + target="_top" + tooltip="document_packages" + ]; + "documents" [ + label=< + + + + + + + + + + + + +
documents[table]
id
doc_id
publisher_id
date_time
priority
revision_id
document_fixture_id
source_id
...
< 3414 rows9 >
> + + target="_top" + tooltip="documents" + ]; + "documents_media" [ + label=< + + + + + + + +
documents_media[table]
id
document_id
media_id
media_caption_id
< 30 rows
> + + target="_top" + tooltip="documents_media" + ]; + "events" [ + label=< + + + + + + + + +
events[table]
id
event_key
publisher_id
site_id
...
< 24.350 rows20 >
> + + target="_top" + tooltip="events" + ]; + "events_documents" [ + label=< + + + + + +
events_documents[table]
event_id
document_id
< 27.915 rows
> + + target="_top" + tooltip="events_documents" + ]; + "events_media" [ + label=< + + + + + +
events_media[table]
event_id
media_id
< 20 rows
> + + target="_top" + tooltip="events_media" + ]; + "events_sub_seasons" [ + label=< + + + + + +
events_sub_seasons[table]
event_id
sub_season_id
< 24.350 rows
> + + target="_top" + tooltip="events_sub_seasons" + ]; + "ice_hockey_event_states" [ + label=< + + + + + + +
ice_hockey_event_states[table]
id
event_id
...
< 151 rows
> + + target="_top" + tooltip="ice_hockey_event_states" + ]; + "injury_phases" [ + label=< + + + + + + + + + + +
injury_phases[table]
id
person_id
injury_status
start_date_time
end_date_time
season_id
...
< 2771 rows
> + + target="_top" + tooltip="injury_phases" + ]; + "key_aliases" [ + label=< + + + + + + +
key_aliases[table]
id
key_id
key_root_id
< 10 rows
> + + target="_top" + tooltip="key_aliases" + ]; + "key_roots" [ + label=< + + + + + +
key_roots[table]
id
key_type
0 rows1 >
> + + target="_top" + tooltip="key_roots" + ]; + "latest_revisions" [ + label=< + + + + + + +
latest_revisions[table]
id
revision_id
latest_document_id
< 1295 rows
> + + target="_top" + tooltip="latest_revisions" + ]; + "locations" [ + label=< + + + + + + +
locations[table]
id
country_code
...
0 rows8 >
> + + target="_top" + tooltip="locations" + ]; + "media" [ + label=< + + + + + + + + +
media[table]
id
publisher_id
credit_id
creation_location_id
...
< 30 rows8 >
> + + target="_top" + tooltip="media" + ]; + "media_captions" [ + label=< + + + + + + + +
media_captions[table]
id
media_id
caption_author_id
...
< 20 rows1 >
> + + target="_top" + tooltip="media_captions" + ]; + "media_contents" [ + label=< + + + + + + +
media_contents[table]
id
media_id
...
< 10 rows
> + + target="_top" + tooltip="media_contents" + ]; + "media_keywords" [ + label=< + + + + + + +
media_keywords[table]
id
media_id
...
< 10 rows
> + + target="_top" + tooltip="media_keywords" + ]; + "motor_racing_event_states" [ + label=< + + + + + + +
motor_racing_event_states[table]
id
event_id
...
< 10 rows
> + + target="_top" + tooltip="motor_racing_event_states" + ]; + "outcome_totals" [ + label=< + + + + + + +
outcome_totals[table]
id
standing_subgroup_id
...
< 10 rows
> + + target="_top" + tooltip="outcome_totals" + ]; + "participants_events" [ + label=< + + + + + + + + + + +
participants_events[table]
id
participant_type
participant_id
event_id
alignment
event_outcome
...
< 18.700 rows1 >
> + + target="_top" + tooltip="participants_events" + ]; + "periods" [ + label=< + + + + + + +
periods[table]
id
participant_event_id
...
< 1548 rows1 >
> + + target="_top" + tooltip="periods" + ]; + "person_event_metadata" [ + label=< + + + + + + + + + + + +
person_event_metadata[table]
id
person_id
event_id
status
role_id
position_id
team_id
...
< 54.002 rows
> + + target="_top" + tooltip="person_event_metadata" + ]; + "person_phases" [ + label=< + + + + + + + + + + + + + +
person_phases[table]
id
person_id
membership_type
membership_id
role_id
phase_status
regular_position_id
start_season_id
end_season_id
...
< 50 rows
> + + target="_top" + tooltip="person_phases" + ]; + "persons" [ + label=< + + + + + + + + + + + +
persons[table]
id
person_key
publisher_id
birth_location_id
hometown_location_id
residence_location_id
death_location_id
...
< 53.937 rows16 >
> + + target="_top" + tooltip="persons" + ]; + "persons_documents" [ + label=< + + + + + +
persons_documents[table]
person_id
document_id
< 20 rows
> + + target="_top" + tooltip="persons_documents" + ]; + "persons_media" [ + label=< + + + + + +
persons_media[table]
person_id
media_id
< 20 rows
> + + target="_top" + tooltip="persons_media" + ]; + "positions" [ + label=< + + + + + + +
positions[table]
id
affiliation_id
abbreviation
< 173 rows6 >
> + + target="_top" + tooltip="positions" + ]; + "publishers" [ + label=< + + + + + + +
publishers[table]
id
publisher_key
...
1 row12 >
> + + target="_top" + tooltip="publishers" + ]; + "roles" [ + label=< + + + + + + +
roles[table]
id
role_key
...
0 rows3 >
> + + target="_top" + tooltip="roles" + ]; + "seasons" [ + label=< + + + + + + + + +
seasons[table]
id
season_key
publisher_id
league_id
...
< 24 rows8 >
> + + target="_top" + tooltip="seasons" + ]; + "sites" [ + label=< + + + + + + + +
sites[table]
id
site_key
publisher_id
location_id
< 20 rows2 >
> + + target="_top" + tooltip="sites" + ]; + "soccer_event_states" [ + label=< + + + + + + +
soccer_event_states[table]
id
event_id
...
< 10 rows
> + + target="_top" + tooltip="soccer_event_states" + ]; + "standing_subgroups" [ + label=< + + + + + + +
standing_subgroups[table]
id
standing_id
affiliation_id
< 20 rows1 >
> + + target="_top" + tooltip="standing_subgroups" + ]; + "standings" [ + label=< + + + + + + + + +
standings[table]
id
affiliation_id
sub_season_id
publisher_id
...
< 30 rows1 >
> + + target="_top" + tooltip="standings" + ]; + "sub_periods" [ + label=< + + + + + + +
sub_periods[table]
id
period_id
...
< 10 rows
> + + target="_top" + tooltip="sub_periods" + ]; + "sub_seasons" [ + label=< + + + + + + + + +
sub_seasons[table]
id
sub_season_key
season_id
sub_season_type
...
< 14 rows2 >
> + + target="_top" + tooltip="sub_seasons" + ]; + "team_phases" [ + label=< + + + + + + + + + + +
team_phases[table]
id
team_id
start_season_id
end_season_id
affiliation_id
role_id
...
< 5368 rows
> + + target="_top" + tooltip="team_phases" + ]; + "teams" [ + label=< + + + + + + + +
teams[table]
id
publisher_id
home_site_id
...
< 2128 rows10 >
> + + target="_top" + tooltip="teams" + ]; + "teams_documents" [ + label=< + + + + + +
teams_documents[table]
team_id
document_id
< 2435 rows
> + + target="_top" + tooltip="teams_documents" + ]; + "teams_media" [ + label=< + + + + + +
teams_media[table]
team_id
media_id
< 20 rows
> + + target="_top" + tooltip="teams_media" + ]; + "tennis_event_states" [ + label=< + + + + + + +
tennis_event_states[table]
id
event_id
...
< 10 rows
> + + target="_top" + tooltip="tennis_event_states" + ]; + "wagering_moneylines" [ + label=< + + + + + + + + +
wagering_moneylines[table]
id
bookmaker_id
event_id
team_id
...
< 30 rows
> + + target="_top" + tooltip="wagering_moneylines" + ]; + "wagering_odds_lines" [ + label=< + + + + + + + + +
wagering_odds_lines[table]
id
bookmaker_id
event_id
team_id
...
< 30 rows
> + + target="_top" + tooltip="wagering_odds_lines" + ]; + "wagering_runlines" [ + label=< + + + + + + + + +
wagering_runlines[table]
id
bookmaker_id
event_id
team_id
...
< 30 rows
> + + target="_top" + tooltip="wagering_runlines" + ]; + "wagering_straight_spread_lines" [ + label=< + + + + + + + + +
wagering_straight_spread_lines[table]
id
bookmaker_id
event_id
team_id
...
< 30 rows
> + + target="_top" + tooltip="wagering_straight_spread_lines" + ]; + "wagering_total_score_lines" [ + label=< + + + + + + + + +
wagering_total_score_lines[table]
id
bookmaker_id
event_id
team_id
...
< 30 rows
> + + target="_top" + tooltip="wagering_total_score_lines" + ]; + "weather_conditions" [ + label=< + + + + + + +
weather_conditions[table]
id
event_id
...
< 10 rows
> + + target="_top" + tooltip="weather_conditions" + ]; + "addresses":"location_id":w -> "locations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "affiliation_phases":"affiliation_id":w -> "affiliations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "affiliation_phases":"ancestor_affiliation_id":w -> "affiliations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "affiliation_phases":"end_season_id":w -> "seasons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "affiliation_phases":"start_season_id":w -> "seasons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "affiliations":"publisher_id":w -> "publishers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "affiliations_documents":"affiliation_id":w -> "affiliations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "affiliations_documents":"document_id":w -> "documents":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "affiliations_events":"affiliation_id":w -> "affiliations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "affiliations_events":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "affiliations_media":"affiliation_id":w -> "affiliations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "affiliations_media":"media_id":w -> "media":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "american_football_action_participants":"american_football_action_play_id":w -> "american_football_action_plays":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "american_football_action_participants":"person_id":w -> "persons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "american_football_action_plays":"american_football_event_state_id":w -> "american_football_event_states":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "american_football_event_states":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "american_football_event_states":"team_in_possession_id":w -> "teams":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "baseball_action_contact_details":"baseball_action_pitch_id":w -> "baseball_action_pitches":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "baseball_action_pitches":"baseball_action_play_id":w -> "baseball_action_plays":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "baseball_action_pitches":"baseball_defensive_group_id":w -> "baseball_defensive_group":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "baseball_action_plays":"baseball_event_state_id":w -> "baseball_event_states":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "baseball_action_substitutions":"baseball_event_state_id":w -> "baseball_event_states":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "baseball_action_substitutions":"person_original_id":w -> "persons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "baseball_action_substitutions":"person_original_position_id":w -> "positions":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "baseball_action_substitutions":"person_replacing_id":w -> "persons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "baseball_action_substitutions":"person_replacing_position_id":w -> "positions":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "baseball_defensive_players":"baseball_defensive_group_id":w -> "baseball_defensive_group":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "baseball_defensive_players":"player_id":w -> "persons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "baseball_defensive_players":"position_id":w -> "positions":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "baseball_event_states":"batter_id":w -> "persons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "baseball_event_states":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "baseball_event_states":"pitcher_id":w -> "persons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "baseball_event_states":"runner_on_first_id":w -> "persons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "baseball_event_states":"runner_on_second_id":w -> "persons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "baseball_event_states":"runner_on_third_id":w -> "persons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "basketball_event_states":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "bookmakers":"location_id":w -> "locations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "bookmakers":"publisher_id":w -> "publishers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "core_person_stats":"position_id":w -> "positions":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "document_contents":"document_id":w -> "documents":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "document_fixtures":"document_class_id":w -> "document_classes":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "document_fixtures":"publisher_id":w -> "publishers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "document_fixtures_events":"document_fixture_id":w -> "document_fixtures":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "document_fixtures_events":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "document_fixtures_events":"latest_document_id":w -> "documents":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "document_package_entry":"document_id":w -> "documents":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "document_package_entry":"document_package_id":w -> "document_packages":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "documents":"document_fixture_id":w -> "document_fixtures":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "documents":"publisher_id":w -> "publishers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "documents":"source_id":w -> "publishers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "documents_media":"document_id":w -> "documents":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "documents_media":"media_caption_id":w -> "media_captions":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "documents_media":"media_id":w -> "media":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "events":"publisher_id":w -> "publishers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "events":"site_id":w -> "sites":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "events_documents":"document_id":w -> "documents":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "events_documents":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "events_media":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "events_media":"media_id":w -> "media":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "events_sub_seasons":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "events_sub_seasons":"sub_season_id":w -> "sub_seasons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "ice_hockey_event_states":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "injury_phases":"person_id":w -> "persons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "injury_phases":"season_id":w -> "seasons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "key_aliases":"key_root_id":w -> "key_roots":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "latest_revisions":"latest_document_id":w -> "documents":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "media":"creation_location_id":w -> "locations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "media":"credit_id":w -> "persons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "media":"publisher_id":w -> "publishers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "media_captions":"caption_author_id":w -> "persons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "media_captions":"media_id":w -> "media":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "media_contents":"media_id":w -> "media":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "media_keywords":"media_id":w -> "media":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "motor_racing_event_states":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "outcome_totals":"standing_subgroup_id":w -> "standing_subgroups":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "participants_events":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "periods":"participant_event_id":w -> "participants_events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "person_event_metadata":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "person_event_metadata":"person_id":w -> "persons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "person_event_metadata":"position_id":w -> "positions":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "person_event_metadata":"role_id":w -> "roles":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "person_event_metadata":"team_id":w -> "teams":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "person_phases":"end_season_id":w -> "seasons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "person_phases":"person_id":w -> "persons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "person_phases":"regular_position_id":w -> "positions":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "person_phases":"role_id":w -> "roles":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "person_phases":"start_season_id":w -> "seasons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "persons":"birth_location_id":w -> "locations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "persons":"death_location_id":w -> "locations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "persons":"hometown_location_id":w -> "locations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "persons":"publisher_id":w -> "publishers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "persons":"residence_location_id":w -> "locations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "persons_documents":"document_id":w -> "documents":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "persons_documents":"person_id":w -> "persons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "persons_media":"media_id":w -> "media":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "persons_media":"person_id":w -> "persons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "positions":"affiliation_id":w -> "affiliations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "seasons":"league_id":w -> "affiliations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "seasons":"publisher_id":w -> "publishers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "sites":"location_id":w -> "locations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "sites":"publisher_id":w -> "publishers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "soccer_event_states":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "standing_subgroups":"affiliation_id":w -> "affiliations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "standing_subgroups":"standing_id":w -> "standings":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "standings":"affiliation_id":w -> "affiliations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "standings":"publisher_id":w -> "publishers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "standings":"sub_season_id":w -> "sub_seasons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "sub_periods":"period_id":w -> "periods":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "sub_seasons":"season_id":w -> "seasons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "team_phases":"affiliation_id":w -> "affiliations":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "team_phases":"end_season_id":w -> "seasons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "team_phases":"role_id":w -> "roles":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "team_phases":"start_season_id":w -> "seasons":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "team_phases":"team_id":w -> "teams":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "teams":"home_site_id":w -> "sites":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "teams":"publisher_id":w -> "publishers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "teams_documents":"document_id":w -> "documents":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "teams_documents":"team_id":w -> "teams":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "teams_media":"media_id":w -> "media":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "teams_media":"team_id":w -> "teams":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "tennis_event_states":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "wagering_moneylines":"bookmaker_id":w -> "bookmakers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "wagering_moneylines":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "wagering_moneylines":"team_id":w -> "teams":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "wagering_odds_lines":"bookmaker_id":w -> "bookmakers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "wagering_odds_lines":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "wagering_odds_lines":"team_id":w -> "teams":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "wagering_runlines":"bookmaker_id":w -> "bookmakers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "wagering_runlines":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "wagering_runlines":"team_id":w -> "teams":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "wagering_straight_spread_lines":"bookmaker_id":w -> "bookmakers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "wagering_straight_spread_lines":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "wagering_straight_spread_lines":"team_id":w -> "teams":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "wagering_total_score_lines":"bookmaker_id":w -> "bookmakers":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "wagering_total_score_lines":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "wagering_total_score_lines":"team_id":w -> "teams":"id":e [arrowhead=none dir=back arrowtail=crowodot]; + "weather_conditions":"event_id":w -> "events":"id":e [arrowhead=none dir=back arrowtail=crowodot]; +} diff --git a/src/Tasks/Chemistry/.gitkeep b/src/Tasks/Chemistry/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/Tasks/Chemistry/SubstitutionSelector.ts b/src/Tasks/Chemistry/SubstitutionSelector.ts deleted file mode 100644 index 5e065fd..0000000 --- a/src/Tasks/Chemistry/SubstitutionSelector.ts +++ /dev/null @@ -1,157 +0,0 @@ -export interface SubstitutionParameters { - seed: string; -} - -export type Position = "para" | "meta" | "orto"; - -import { RNG } from "../../Util/Randomizer"; - -export const selectSubstitution = (parameters: SubstitutionParameters) => { - const { seed } = parameters; - - const rng = new RNG(seed); - - const reagentIndex = rng.intBetween(0, reagents.length); - const substituentIndex = rng.intBetween(0, substituents.length); - - const reagent = reagents[reagentIndex]; - - const selectedSubstituent = substituents[substituentIndex]; - const position = selectedSubstituent.position as Position; - - return { - smiles: productBuilderBasedOnPosition[position](selectedSubstituent.firstSubstituent, reagent.smiles), - position: position, - parameter: selectedSubstituent.effects.join(", "), - hasOverReacted: selectedSubstituent.hasOverReacted, - reagent: reagent.smiles, - reactionSmiles: `${selectedSubstituent.firstSubstituent}c1ccccc1>${reagent.smiles}>`, - firstSubstituent: selectedSubstituent.firstSubstituent, - benzol: "c1cccc1", - reagentText: reagent.reagent, - }; -}; - -const productBuilderBasedOnPosition: { [positon in Position]: Function } = { - para: (firstSubstituentSmiles: string, reagentSmiles: string) => - `${firstSubstituentSmiles}c1ccc(${reagentSmiles})cc1`, - meta: (firstSubstituentSmiles: string, reagentSmiles: string) => - `${firstSubstituentSmiles}c1cc(${reagentSmiles})ccc1`, - orto: (firstSubstituentSmiles: string, reagentSmiles: string) => "[error]", -}; - -const answer = { - firstSubstituent: "[NH3+]", - benzol: "c1cccc1", - reagentText: "reagentAlpha", -}; - -const reagents = [ - { - reagent: "Bromierung", - smiles: "BrBr", - inMolecule: "Br", - }, - { - reagent: "reagentAlpha", - smiles: "ClCl", - inMolecule: "Cl", - }, - { - reagent: "reagentBeta", - smiles: "II", - inMolecule: "I", - }, - { - reagent: "reagentGamma", - smiles: "FF", - inMolecule: "F", - }, -]; - -const substituents = [ - { - firstSubstituent: "[O]", - effects: ["+M"], - position: "para", - hasOverReacted: false, - }, - { - firstSubstituent: "N", - effects: ["+M", "-I"], - position: "para", - hasOverReacted: false, - }, - { - firstSubstituent: "[OH]", - effects: ["+M", "-I"], - position: "para", - hasOverReacted: false, - }, - { - firstSubstituent: "O=C([R])N", - effects: ["+M", "-I"], - position: "para", - hasOverReacted: false, - }, - { - firstSubstituent: "O=C([R])O", - effects: ["+M", "-I"], - position: "para", - hasOverReacted: false, - }, - { - firstSubstituent: "c1ccccc1", - effects: ["+M", "-I"], - position: "para", - hasOverReacted: false, - }, - { - firstSubstituent: "[A]", - effects: ["+M", "-I"], - position: "para", - hasOverReacted: false, - }, - { - firstSubstituent: "[Cl]", - effects: ["+I"], - position: "para", - hasOverReacted: false, - }, - { - firstSubstituent: "[Br]", - effects: ["+I"], - position: "para", - hasOverReacted: false, - }, - { - firstSubstituent: "[NH3+]", - effects: ["-I"], - position: "meta", - hasOverReacted: false, - }, - { - firstSubstituent: "O=C([R])", - effects: ["-M", "-I"], - position: "meta", - hasOverReacted: false, - }, - { - firstSubstituent: "[CN]", - effects: ["-M", "-I"], - position: "meta", - hasOverReacted: false, - }, - { - firstSubstituent: "O=S(=O)(O)", - effects: ["-M", "-I"], - position: "meta", - hasOverReacted: false, - }, - { - firstSubstituent: "O=[N+](O)", - effects: ["-M", "-I"], - position: "meta", - hasOverReacted: false, - }, -]; diff --git a/src/Tasks/ClusterAnalysis/clusterAnalysis.py b/src/Tasks/ClusterAnalysis/clusterAnalysis.py deleted file mode 100644 index 6dc21f1..0000000 --- a/src/Tasks/ClusterAnalysis/clusterAnalysis.py +++ /dev/null @@ -1,625 +0,0 @@ -#Clusteranalyse - -import numpy as np -import matplotlib.pyplot as plt -import random -from scipy.cluster.hierarchy import linkage, dendrogram -import matplotlib.pyplot as plt -import numpy as np -import pandas as pd -from graphviz import Digraph -import graphviz -#from IPython.display import display -import math -import json -import sys -import os -import pathlib -import base64 -import string - -#functions -def generate_clusters(n_clusters, m_points_per_cluster, rangeStart, rangeEnd): - # Generate random cluster centers - cluster_centers = np.random.randint(rangeStart, rangeEnd, size=(n_clusters, 2)) - noise_scale = 1 - - # Generate points for each cluster - points = [] - for center in cluster_centers: - cluster_points = np.random.randint(-5, 5, size=(m_points_per_cluster, 2)) + center - points.extend(cluster_points) - - # Add noise to the points - noisy_points = points + (np.random.randint(-2, 2, size=(len(points), 2))) - - return np.array(noisy_points) - -def is_element_in_array(cluster_array, single_point): - for sub_array in cluster_array: - for element in sub_array: - if element[0] == single_point[0] and element[1] == single_point[1]: - return True - return False - -def is_element_in_array_location(cluster_array, single_point): - i = 0 - j = 0 - for sub_array in cluster_array: - for element in sub_array: - if element[0] == single_point[0] and element[1] == single_point[1]: - #print("LOCATION") - #print(element[0]) - #print(element[1]) - return [i, j] - j += 1 - i += 1 - return False - -def check_array_exists(arrayName): - if 'clusters' in dir(): - return True - else: - return False - -#todo -def manhattan_distance(point1, point2): - return np.sum(np.abs(point1 + point2)) - -#ready -def euclidean_distance(array1, array2): - return round(math.sqrt((pow((array1[0] - array2[0]), 2)) + (pow((array1[1] - array2[1]), 2))),2) - -#todo -def maximum_distance(point1, point2): - return np.max([[point1],[point2]]) - -def calculate_inital_abstraction_matrix(data, distance_function): - - # Initialize clusters with each data point as a separate cluster - array = np.zeros((data.shape[0],data.shape[0])) - - for iteration_number_row in range(len(data)): - - for iteration_number_column in range(len(data)): - array[iteration_number_row, iteration_number_column] = distance_function(data[iteration_number_row],data[iteration_number_column]) - - return array - -def single_linkage_get_indices(inital_abstraction_matrix): - - # Exclude diagonal elements and zeros - lower_triangular = np.tril(inital_abstraction_matrix, k=-1) - lower_triangular[lower_triangular == 0] = np.inf - - min_index = np.unravel_index(np.argmin(lower_triangular), lower_triangular.shape) - - # Adjust indices to consider the original matrix - #adjusted_indices = (min_index[0] + 1, min_index[1]) - - #print(min_index) - return min_index - -#get nearest of 2 points to get the new center of the cluster -def get_nearest_point(data, point_a, point_b, distance_function): - #get the point that is more near the other points - # Calculate distances for both points - distances_to_a = [distance_function(point_a, point) for point in data] - distances_to_b = [distance_function(point_b, point) for point in data] - - # Find the index of the nearest point for each given point for both points - nearest_point_index_a = np.argmin(distances_to_a) - nearest_point_index_b = np.argmin(distances_to_b) - - sum_distance_to_a = 0 - for distance in distances_to_a: - sum_distance_to_a += float(distance) - - sum_distance_to_b = 0 - for distance in distances_to_b: - sum_distance_to_b += float(distance) - - - # Compare the distances - #[[nearest_point][point_to_delete]] - if sum_distance_to_a < sum_distance_to_b: - nearest_point = [data[nearest_point_index_a] , data[nearest_point_index_b]] - elif sum_distance_to_a > sum_distance_to_b: - nearest_point = [data[nearest_point_index_b] , data[nearest_point_index_a]] - else: #equal - nearest_point = [data[nearest_point_index_a] , data[nearest_point_index_b]] - - return nearest_point - -def createScatterDiagram(data): - # Streudiagramm zeichnen - # Extract x and y coordinates - x = data[:, 0] - y = data[:, 1] - - # Generate random colors - colors = np.random.rand(len(x), 3) - - # Create scatter plot with random colors - plt.scatter(x, y, marker='o', color=colors) - - # Add labels and title - plt.xlabel('X-Achse') - plt.ylabel('Y-Achse') - plt.title('Streudiagram') - - # #display the plot - plt.show() - -def createDigraph(distanceMatrix, points, iterationNumber): - #transform matrix - - #print(distanceMatrix) - - points = points.astype(str) - distanceMatrix = distanceMatrix.astype(str) - pointsY = np.array([[' - '.join(row)] for row in points]) - pointsX = np.array([[' - '.join(row)] for row in points]) - #pointsX = np.insert(pointsX, 0, 'Iteration {}'.format(iterationNumber), axis=0) - pointsX = np.insert(pointsX, 0, str(iterationNumber), axis=0) - - # Concatenate arr1 and arr2 vertically - distanceMatrix = np.concatenate((pointsY, distanceMatrix), axis=1) - - Array2d = np.array([np.concatenate(pointsX.T)]) - distanceMatrixNew = np.append(Array2d, distanceMatrix, axis=0) - - # Create a Digraph object - dot = Digraph(comment='Distance Matrix') - - # Create a single table for the entire matrix - table_label = f'<' - for i in range(distanceMatrixNew.shape[0]): - table_label += '' - for j in range(distanceMatrixNew.shape[1]): - table_label += f'' - table_label += '' - table_label += '
{distanceMatrixNew[i, j]}
>' - - # Add a single node to the graph with the entire table as label - dot.node('table', label=table_label, shape='plaintext') - - # Save the graph as a PNG file - #dot.render('directed_graph', format='png', cleanup=True) - - #display(dot) - - return str(dot) - - - -# Helper function to recursively add nodes and edges to the graph -def add_nodes_edges(dot, node_id, Z, dendrogram_data): - if node_id < len(Z): - # Internal node - child1, child2 = Z[node_id, 0], Z[node_id, 1] - dot.node(f'node_{node_id}', label=str(Z[node_id, 2])) - add_nodes_edges(dot, int(child1), Z, dendrogram_data) - add_nodes_edges(dot, int(child2), Z, dendrogram_data) - dot.edge(f'node_{node_id}', f'node_{int(child1)}') - dot.edge(f'node_{node_id}', f'node_{int(child2)}') - else: - # Leaf node - leaf_index = node_id - len(Z) - dot.node(f'leaf_{leaf_index}', label=str(dendrogram_data['ivl'][leaf_index])) - - -def createDendogramDotLanguage(data, distanceMethod): - - if distanceMethod == 'manhattan': - linkage_data = linkage(data, method='single', metric='cityblock') - - elif distanceMethod == 'euclidean': - linkage_data = linkage(data, method='single', metric='euclidean') - - elif distanceMethod == 'maximum': - linkage_data = linkage(data, method='single', metric='maximum') - - else: - return '' - - #dendrogram(linkage_data) - - #print(linkage_data) - - #plt.show() - - # Create a dendrogram - dendrogram_data = dendrogram(linkage_data, no_plot=True) - - # Create a Graphviz graph - dot = graphviz.Digraph(comment='Dendrogram') - - # Add nodes and edges to the graph - add_nodes_edges(dot, len(linkage_data) * 2 - 2, linkage_data, dendrogram_data) - #display(dot) - - return str(dot) - -def array_to_html_table(array): - letter = list(string.ascii_uppercase) - letterPosition = 0 - - html = '\n' - html += '' - for row in array: - html += '\n' - html += f'' - for item in row: - html += f'\n' - html += '\n' - letterPosition += 1 - html += '
Name Datenpunkt Position X-Achse Position Y-Achse
{letter[letterPosition]}{item}
' - return html - -def generate_task_description(numClusters, pointsPerCluster, nodeRangeStart, nodeRangeEnd, distanceMethod, linkageMethod, diagramHelpBoolean, dendogramBoolean, distanceMatrixBoolean, data): - finalDescription = "" - - #add the main task descripton to the variable - finalDescription += "

In dieser Aufgabe sollen Sie zeigen, dass Sie die hierarchische Clusteranalyse verstanden haben und diese anwenden koennen.


" - - #add example data to description - finalDescription += "

Sie erhalten eine Sammlung von Datenpunkten, für die Sie die Analyse durchführen sollen.


" - finalDescription += array_to_html_table(data) - finalDescription += "

" - - #add more task description - if str(diagramHelpBoolean) == "false": - finalDescription += "

Zeichnen Sie im ersten Schritt die Datenpunkte in ein Koordinatensystem als visuelle Hilfe ein, oder nutzen Sie alternativ das Streudiagramm, welches Ihnen ALADIN als Hilfestellung bietet.

" - - #if diagram help checkbox is checked - if str(diagramHelpBoolean) == "true": - finalDescription += "

Sie haben bei der Aufgabenerstellung ausgewaehlt, dass Ihnen das Streudiagramm angezeigt werden soll. Das folgende Diagramm zeigt die verteilten Datenpunkte im Koordinatensystem.


" - - #add base64 img - #TODO - print_diagram(data) - with open("streudiagramm.png", "rb") as image_file: - encoded_string = str(base64.b64encode(image_file.read())) - - finalDescription += f'
Streudiagramm

' - - #help description for calculating distance matrix - if str(distanceMatrixBoolean) == "true": - finalDescription += f"

Hilfe zur Distanzberechnung

So haben die {str(distanceMethod)} Methode zur Berechnung der Distanz gewaehlt. Diese wird wie folgt berechnet:

" - if distanceMethod == 'manhattan': - finalDescription += '


a==^ Datenpunkt 1

' - finalDescription += '

b==^ Datenpunkt 2

' - finalDescription += '

d(a,b)=i=1n|ai-bi|



' - - elif distanceMethod == 'euclidean': - finalDescription += '


a==^ Datenpunkt 1

' - finalDescription += '

b==^ Datenpunkt 2

' - finalDescription += '

d(a,b)=|a-b|



' - - elif distanceMethod == 'maximum': - finalDescription += '


a==^ Datenpunkt 1

' - finalDescription += '

b==^ Datenpunkt 2

' - finalDescription += '

d(a,b)=max(a,b)



' - - #help description for draw the dendrogram - if str(dendogramBoolean) == "true": - finalDescription += "

Um ein Dendrogramm aus einer Distanzmatrix zu erstellen, verwendet man zuerst einen hierarchischen Clustering-Algorithmus (wie z.B. Single-Linkage, Complete-Linkage oder Average-Linkage), um die Cluster-Hierarchie aus der Distanzmatrix zu erzeugen. Anschließend stellt man diese Hierarchie graphisch als Dendrogramm dar, wobei die Länge der Verbindungslinien die Distanzen oder Ähnlichkeiten zwischen den Clustern repräsentiert.

" - - - finalDescription += "

Berechnen Sie nun im nächsten Schritt die einzelnen Distanzmatrizen bis zu einer 2x2 Matrix und gebe sie Ihre Lösung in den Editor ein.

" - finalDescription += f"

Nutzen Sie für die Berechnung der Distanzen zwischen den einzelnen Datenpunkten die Berechnungsmethode {distanceMethod}

" - - return finalDescription - -def generate_task_description_preview(numClusters, pointsPerCluster, nodeRangeStart, nodeRangeEnd, distanceMethod, linkageMethod, diagramHelpBoolean, dendogramBoolean, distanceMatrixBoolean, data): - finalDescription = "" - - #add the main task descripton to the variable - finalDescription += "

Vorschau der Datentabelle:


" - - finalDescription += array_to_html_table(data) - finalDescription += "

" - - #if diagram help checkbox is checked - finalDescription += "

Vorschau des Streudiagramms:


" - - #add base64 img - print_diagram(data) - with open("streudiagramm.png", "rb") as image_file: - encoded_string = str(base64.b64encode(image_file.read())) - - finalDescription += f'
Streudiagramm

' - - return finalDescription - - -def print_diagram(data): - # Streudiagramm zeichnen - # Extracting X and Y coordinates from the data - - x = [point[0] for point in data] - y = [point[1] for point in data] - - length = len(x) - matrixHeaders = list(string.ascii_uppercase) - - n = matrixHeaders[0:length] - - # Erstellen des Plots - plt.figure(figsize=(6, 4)) - plt.scatter(x, y) # Verwendung von scatter() anstelle von plot() - - # Hinzufügen von Beschriftungen an jedem Punkt - for i, label in enumerate(n): - plt.text(x[i], y[i], n[i], fontsize=12) - - plt.title('Streudiagramm') - plt.xlabel('X-Achse') - plt.ylabel('Y-Achse') - - # Display the plot - #plt.show() - plt.savefig('streudiagramm.png') - -def generate_matrix_headers(data, iterationNumber): - x = [point[0] for point in data] - length = len(x) - matrixHeaders = list(string.ascii_uppercase) - - return matrixHeaders[0:(length)] #- int(iterationNumber))] - -#def clusterAnalysisMain(numClusters, pointsPerCluster, nodeRangeStart, nodeRangeEnd, distanceMethod, linkageMethod): -def clusterAnalysisMain(): - - #get data from CLI - numClusters = int(sys.argv[2]) - pointsPerCluster = int(sys.argv[1]) - nodeRangeStart = int(sys.argv[9]) - nodeRangeEnd = int(sys.argv[10]) - diagramHelpBoolean = sys.argv[4] - dendogramBoolean = sys.argv[5] - distanceMethod = sys.argv[7] - linkageMethod = sys.argv[8] - distanceMatrixBoolean = sys.argv[6] - - #generate data for a task for the student - data = generate_clusters(numClusters, pointsPerCluster, nodeRangeStart, nodeRangeEnd) - - #Testdata - data = np.array([[2, 3],[5, 2],[5, 3],[1, 4],[4, 5]]) - - - #print(data) - - taskDescription = generate_task_description(numClusters, pointsPerCluster, nodeRangeStart, nodeRangeEnd, distanceMethod, linkageMethod, diagramHelpBoolean, dendogramBoolean, distanceMatrixBoolean, data) - - taskDescriptionPreview = generate_task_description_preview(numClusters, pointsPerCluster, nodeRangeStart, nodeRangeEnd, distanceMethod, linkageMethod, diagramHelpBoolean, dendogramBoolean, distanceMatrixBoolean, data) - #TODO: atrribute richtig machen aus Fronted -> destrukturieren - #aufgabenbeschreibung generieren - - - - #createScatterDiagram(data) - jsonDict = {} - #jsonDict["Dendogram"] = createDendogramDotLanguage(data, distanceMethod) - jsonDict["taskDescription"] = taskDescription - jsonDict["taskDescriptionPreview"] = taskDescriptionPreview - - - for iteration in range(data.shape[0]): - #erste iteration - if(iteration == 0): - - clusters = [] - - #inital abstraction matrix - print("---Inital Iteration---") - #get distance method - if distanceMethod == 'manhattan': - matrix = calculate_inital_abstraction_matrix(data, manhattan_distance) - - elif distanceMethod == 'euclidean': - matrix = calculate_inital_abstraction_matrix(data, euclidean_distance) - - elif distanceMethod == 'maximum': - matrix = calculate_inital_abstraction_matrix(data, maximum_distance) - - else: - break - - #matrix = calculate_inital_abstraction_matrix(data, euclidean_distance) - single_linkage_indices = single_linkage_get_indices(matrix) - #print(single_linkage_indices) - - #get two points from given index that are the first cluster - point_a = data[single_linkage_indices[0]] - point_b = data[single_linkage_indices[1]] - - - if distanceMethod == 'manhattan': - nearest_point = get_nearest_point(data, point_a, point_b, manhattan_distance) - - elif distanceMethod == 'euclidean': - nearest_point = get_nearest_point(data, point_a, point_b, euclidean_distance) - - elif distanceMethod == 'maximum': - nearest_point = get_nearest_point(data, point_a, point_b, maximum_distance) - - else: - break - - #nearest_point = get_nearest_point(data, point_a, point_b, euclidean_distance) - #delete the point from the dataset, that is not nearest - point_to_remove = nearest_point[1] - - - #create Digraph - #TODO -> oberste Zeile noch hinzufügen - #print("DIGRAPH - Abstandsmatrix") - jsonDict["DigraphIteration{}".format(iteration)] = matrix.tolist() #createDigraph(matrix, data, iteration) - - #matrix headers - jsonDict["DigraphIterationHeader{}".format(iteration)] = generate_matrix_headers(data, iteration) - - #define cluster elements - #clusters = np.array([[point_a, point_b]]) - clusters.append([point_a, point_b]) - #print("Aktuelle Cluster:") - #print(clusters) - - #define new dataset - new_data = np.array([point for point in data if not np.array_equal(point, point_to_remove)]) - #print("Neuer Hauptdatensatz") - #print(new_data) - - #alle weiteren iterationen - elif(iteration > 0): - - if len(new_data) == 1: - continue - - if distanceMethod == 'manhattan': - matrix = calculate_inital_abstraction_matrix(new_data, manhattan_distance) - - elif distanceMethod == 'euclidean': - matrix = calculate_inital_abstraction_matrix(new_data, euclidean_distance) - - elif distanceMethod == 'maximum': - matrix = calculate_inital_abstraction_matrix(new_data, maximum_distance) - - else: - break - #matrix = calculate_inital_abstraction_matrix(new_data, euclidean_distance) - - #get the two points with the new minimum distance - single_linkage_indices = single_linkage_get_indices(matrix) - - #get two points from given index that are the new cluster - point_a = new_data[single_linkage_indices[0]] - point_b = new_data[single_linkage_indices[1]] - - #matrix headers - jsonDict["DigraphIterationHeader{}".format(iteration)] = generate_matrix_headers(new_data, iteration) - - #nearest_point = get_nearest_point(data, point_a, point_b, euclidean_distance) - #delete the point from the dataset, that is not nearest - #point_to_remove = nearest_point[1] - - #add point to current cluster - if is_element_in_array(clusters, point_a) or is_element_in_array(clusters, point_b): - #print("Erweitere Cluster") - - #get element number of the cluster and append point to the current cluster - if is_element_in_array(clusters, point_a): - arrayLocation = is_element_in_array_location(clusters, point_a) - pointToAppend = point_b - elif is_element_in_array(clusters, point_b): - arrayLocation = is_element_in_array_location(clusters, point_b) - pointToAppend = point_a - - #print(arrayLocation) - - #append pointToAppend to cluster: - #clusters = np.insert(clusters, arrayLocation[0], pointToAppend, axis=arrayLocation[1]) - #print(clusters[arrayLocation[0]]) - #clusters[arrayLocation[0], arrayLocation[1]] - - #newClusters1 = clusters[arrayLocation[0]] - #print(clusters[arrayLocation[0]]) - pointsToAppend = np.vstack([clusters[arrayLocation[0]], pointToAppend]) - - newClusters = [] - - newClusters.append(pointsToAppend) - - #newClusters = np.append(clusters[arrayLocation[0]], [pointToAppend], axis=0) - #newClusters = np.array([[point_a, point_b]]) - clusterCounter = 0 - - for cluster in clusters: - if clusterCounter == arrayLocation[0]: - clusterCounter += 1 - - else: - #newClusters = np.concatenate([newClusters, [cluster]]) #dimensions are not valid! -> was anderes einfallen lassen!! #letztes puzzelstück -> wie den bums richtig zusammenfügen???!!! - newClusters.append(cluster) - clusterCounter += 1 - - - #print("UPDATED CLUSTER:") - #print(newClusters) - print("-------") - - clusters = newClusters - - #create new cluster - else: - #print("Definiere neues Cluster") - #define cluster elements if ist an new cluster - #clusters = np.append(clusters,[[point_a, point_b]], axis=0) - clusters.append([point_a, point_b]) - #print(clusters) - - #createDigraph(matrix, new_data, iteration) - jsonDict["DigraphIteration{}".format(iteration)] = matrix.tolist() #createDigraph(matrix, new_data, iteration) - - - if distanceMethod == 'manhattan': - nearest_point = get_nearest_point(data, point_a, point_b, manhattan_distance) - - elif distanceMethod == 'euclidean': - nearest_point = get_nearest_point(data, point_a, point_b, euclidean_distance) - - elif distanceMethod == 'maximum': - nearest_point = get_nearest_point(data, point_a, point_b, maximum_distance) - - else: - break - - #nearest_point = get_nearest_point(data, point_a, point_b, euclidean_distance) - #delete the point from the dataset, that is not nearest - point_to_remove = nearest_point[1] - - - - #define new dataset - new_data = np.array([point for point in new_data if not np.array_equal(point, point_to_remove)]) - #print("Neuer Hauptdatensatz") - #print(jsonDict) - - #print(jsonDict) - #jsonDict["taskDescription"] = - jsonDict["iterations"] = iteration - with open(f"{pathlib.Path(__file__).parent.resolve()}/data.json", "w+", encoding="utf8") as f: - json.dump(jsonDict, f) - - return json.dumps(jsonDict) - -# Anzahl der Datenpunktansammlungen (Cluster) -#numClusters = int(sys.argv[1]) -#pointsPerCluster = int(sys.argv[2]) -#nodeRangeStart = int(sys.argv[3]) -#nodeRangeEnd = int(sys.argv[4]) -#distanceMethod = int(sys.argv[5]) -#linkageMethod = int(sys.argv[6]) - -#numClusters = 2 -#pointsPerCluster = 3 -#nodeRangeStart = 0 -#nodeRangeEnd = 25 -#distanceMethod = 'euclidean' -#linkageMethod = 'single' -#Hauptfunktion ausfuehren -#clusterAnalysisMain(numClusters, pointsPerCluster, nodeRangeStart, nodeRangeEnd, distanceMethod, linkageMethod) - -#EXECUTE -clusterAnalysisMain() - - -#TODO -#Eingabevalidierung!!! - - -#algo überarbeiten zur generierung der einzelnen punkte für dei clusteranalyse -#leute sollen verstehen was diese aufgabe soll -> "wir wollen hierarchsiche clusteranalyse üben oder in der prüfung abfragen" \ No newline at end of file diff --git a/src/Tasks/ClusterAnalysis/data.json b/src/Tasks/ClusterAnalysis/data.json deleted file mode 100644 index e15f61c..0000000 --- a/src/Tasks/ClusterAnalysis/data.json +++ /dev/null @@ -1 +0,0 @@ -{"taskDescription": "

In dieser Aufgabe sollen Sie zeigen, dass Sie die hierarchische Clusteranalyse verstanden haben und diese anwenden koennen.


Sie erhalten eine Sammlung von Datenpunkten, f\u00fcr die Sie die Analyse durchf\u00fchren sollen.


\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Name Datenpunkt Position X-Achse Position Y-Achse
A23
B52
C53
D14
E45


Zeichnen Sie im ersten Schritt die Datenpunkte in ein Koordinatensystem als visuelle Hilfe ein, oder nutzen Sie alternativ das Streudiagramm, welches Ihnen ALADIN als Hilfestellung bietet.

Berechnen Sie nun im n\u00e4chsten Schritt die einzelnen Distanzmatrizen bis zu einer 2x2 Matrix und gebe sie Ihre L\u00f6sung in den Editor ein.

Nutzen Sie f\u00fcr die Berechnung der Distanzen zwischen den einzelnen Datenpunkten die Berechnungsmethode euclidean

", "taskDescriptionPreview": "

Vorschau der Datentabelle:


\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Name Datenpunkt Position X-Achse Position Y-Achse
A23
B52
C53
D14
E45



Vorschau des Streudiagramms:



\"Streudiagramm\"

", "DigraphIteration0": [[0.0, 3.16, 3.0, 1.41, 2.83], [3.16, 0.0, 1.0, 4.47, 3.16], [3.0, 1.0, 0.0, 4.12, 2.24], [1.41, 4.47, 4.12, 0.0, 3.16], [2.83, 3.16, 2.24, 3.16, 0.0]], "DigraphIterationHeader0": ["A", "B", "C", "D", "E"], "DigraphIterationHeader1": ["A", "B", "C", "D"], "DigraphIteration1": [[0.0, 3.0, 1.41, 2.83], [3.0, 0.0, 4.12, 2.24], [1.41, 4.12, 0.0, 3.16], [2.83, 2.24, 3.16, 0.0]], "DigraphIterationHeader2": ["A", "B", "C"], "DigraphIteration2": [[0.0, 3.0, 2.83], [3.0, 0.0, 2.24], [2.83, 2.24, 0.0]], "DigraphIterationHeader3": ["A", "B"], "DigraphIteration3": [[0.0, 3.0], [3.0, 0.0]], "iterations": 4} \ No newline at end of file diff --git a/src/Tasks/ClusterAnalysis/wrapperFunctionCallPython.ts b/src/Tasks/ClusterAnalysis/wrapperFunctionCallPython.ts deleted file mode 100644 index eda56ab..0000000 --- a/src/Tasks/ClusterAnalysis/wrapperFunctionCallPython.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { exec } from "child_process"; -import fs from "fs"; -const path = require("path"); - -function runPythonScript(scriptPath: string, args: any): Promise { - try { - return new Promise((resolve, reject) => { - const command = `python ${scriptPath} ${args.join(" ")}`; - console.log(command); - exec(command, (error, stdout, stderr) => { - if (error) { - reject(error.message); - return; - } - if (stderr) { - reject(stderr); - return; - } - resolve(stdout); - }); - }); - } catch { - console.log("Error"); - } -} - -export async function clusterAnalysisMain(parameter: any) { - let result = { foo: "bar" }; - console.log("PARAMETER:"); - console.log(parameter); - try { - let pythonScriptPath = "clusterAnalysis.py"; - pythonScriptPath = path.join(__dirname, pythonScriptPath); - //console.log(parameter["distance"]); - - const argumentsToPythonScript = [...Object.values(parameter), ...parameter["nodeRange"]]; - //delete argumentsToPythonScript[2]; - //console.log("ARGUMENTS TO PYTHON SCRIPT"); - //console.log(argumentsToPythonScript); - (await runPythonScript(pythonScriptPath, argumentsToPythonScript)) as any; - - //let foo = fs.readFileSync(path.join(__dirname, 'data.json'), 'utf-8'); - - result = JSON.parse(fs.readFileSync(path.join(__dirname, "data.json"), "utf-8")); - console.log(result); - //insofern kryptsiche Zeichen in der JSON Ausgabe vorhanden sind .> Workaround mittels File - } catch (error) { - console.error("Error running Python script:", error); - } - return result; -} diff --git a/src/Tasks/DecisionTrees/DataSampler.py b/src/Tasks/DecisionTrees/DataSampler.py deleted file mode 100644 index 3f3269e..0000000 --- a/src/Tasks/DecisionTrees/DataSampler.py +++ /dev/null @@ -1,59 +0,0 @@ -import pandas as pd -import numpy as np -from DecisionTreeTaskFunction import * - -data_path_csv = 'src/Tasks/DecisionTrees/datasets/spiel.csv' # Originaler Datensatz -generated_data_path_csv = 'src/Tasks/DecisionTrees/datasets/generated_dataset.csv' # Generierter Datensatz - -data = pd.read_csv(data_path_csv) -df = pd.DataFrame(data) - -# Beispiel: Lösungsbaum-Struktur von spiel.csv -# decision_tree = {'Aussicht': {'sonnig': {'Luftfeuchtigkeit': {'hoch': 'nein', 'normal': 'ja'}}, -# 'bewölkt': 'ja', -# 'regnerisch': {'Wind': {'nein': 'ja', 'ja': 'nein'}}}} - -decision_tree_original = get_decisiontree_structure(data_path_csv) - -# Prüfung, ob Baumstrukur aus generierten Datensatz gleich wie Struktur des Lösungsbaums -def check_generated_tree(original_tree, generated_tree): - original_json = json.loads(json.dumps(original_tree, sort_keys=True)) - generated_json = json.loads(json.dumps(generated_tree, sort_keys=True)) - return original_json == generated_json - -# Bootstrap-Sampling-Funktion -def bootstrap_sample(data): - sample = data.sample(n=len(data), replace=True) # samplen der Datensätze in gleicher Größe wie die original Daten - return sample - -# Funktion zum Generieren von Datenpunkten basierend auf dem Entscheidungsbaum -def generate_data_point(tree): - current_node = tree - while isinstance(current_node, dict): - feature = list(current_node.keys())[0] - values = list(current_node[feature].keys()) - selected_value = np.random.choice(values) - current_node = current_node[feature][selected_value] - return current_node - -# Bootstrap-Sampling und Daten generieren -def sample_data(): - while True: - num_samples = 5 - - data = pd.concat([bootstrap_sample(df.apply(generate_data_point, axis=1)) for _ in range(num_samples)], ignore_index=True) - - # als JSON speichern für die Ausgabe als Tabelle - data.to_json('src/Tasks/DecisionTrees/datasets/generated_dataset.json',orient='records',lines=True) - - # als CSV speichern für die Berechnung des Entscheidungsbaumes - data.to_csv('src/Tasks/DecisionTrees/datasets/generated_dataset.csv', index=False) - - # Entscheidungsbaum-Struktur für den generierten Datensatz erstellen - decision_tree_generated = get_decisiontree_structure(generated_data_path_csv) - - if check_generated_tree(decision_tree_original, decision_tree_generated): - print("Die generierter Datensatz entspricht der Struktur des originalen Entscheidungsbaum.") - break - -sample_data() diff --git a/src/Tasks/DecisionTrees/DecisionTreeTask.py b/src/Tasks/DecisionTrees/DecisionTreeTask.py deleted file mode 100644 index 7690fb4..0000000 --- a/src/Tasks/DecisionTrees/DecisionTreeTask.py +++ /dev/null @@ -1,71 +0,0 @@ -import sys -import ast -import json -import pandas as pd -import numpy as np -from DecisionTreeTaskFunction import * - -# generierten Datensatz für die Berechnung verwenden -data_path_csv = 'src/Tasks/DecisionTrees/datasets/generated_dataset.csv' -dataframe = pd.read_csv(data_path_csv) - -# Merkmale, Zielmerkmal und Klassen abstrahieren -attributes = dataframe.columns[:-1] -target_attribute = dataframe.columns[-1] -classes = dataframe[target_attribute].unique() - -# Funktion für den Beginn der Aufgabe - Lösungsbaum berechnen und Überprüfung des eingegebenen Entscheidungsbaums -def start_decisiontree_task(received_nodes, received_edges, classes): - dt = build_decision_tree(dataframe, attributes, target_attribute, 0, received_nodes) - - decision_tree_structure_dict = decisiontree_structure(dt) - entropy_infogain_dict = extract_entropy_and_infogain(dt) - - tree_list = [] - build_decision_tree_list(decision_tree_structure_dict, tree_list=tree_list) - tree_list = add_parent_label(tree_list) - tree_list = add_child_node(tree_list) - - nodes_list = [item for item in tree_list if item[3] == 'node'] - edges_list = [item for item in tree_list if item[3] == 'edge'] - - edges_list = add_entropy(edges_list, entropy_infogain_dict) - nodes_list = add_infogain(nodes_list, entropy_infogain_dict) - - # Werte des Lösungsbaum in zwei Listen aufgeteilt, für die Überprüfung des eingegebnen Baums (seperate Listen für Knoten und Kante) - solutions_nodes, solutions_edges = prepare_lists(nodes_list, edges_list) - - # Überprüfung des eingegebenen Entscheidungsbaums - results_nodes, results_edges = validateGraph(solutions_nodes, solutions_edges, received_nodes, received_edges, classes) - - correctNodesCount = 0 - correctEdgesCount = 0 - - # Überprüfung, ob Entscheidungsbaum vollständig gelöst - for r in results_nodes: - if r['result'] == True: - correctNodesCount += 1 - - for r in results_edges: - if r['result'] == True: - correctEdgesCount += 1 - - if(len(solutions_nodes) == correctNodesCount and len(solutions_edges) == correctEdgesCount and len(solutions_nodes) == len(received_nodes) and len(solutions_edges) == len(received_edges)): - result = { 'nodes': results_nodes, 'edges': results_edges, 'finished': True, 'entropies': entropy_infogain_dict } - else: - result = { 'nodes': results_nodes, 'edges': results_edges, 'finished': False, 'entropies': entropy_infogain_dict } - - return (json.dumps(result)) - - -# Erhalt der Nodes- und Edges-Liste aus WrapperValidateDecisionTree.ts -received_nodes_list, received_edges_list = sys.argv[1], sys.argv[2] if len(sys.argv) <= 3 else (None, None) - -modified_nodes_list_1 = ast.literal_eval(received_nodes_list) -modified_nodes_list_2 = [tuple(inner) for inner in modified_nodes_list_1] # Inhalt der Liste als Tupel umwandeln -current_nodes_list = [(x[0], x[1], 0 if x[2] is None else x[2], x[3], x[4]) for x in modified_nodes_list_2] # Wert in Tupel prüfen, ob 3. Element None ist (Wurzelknoten) → mit 0 ersetzen - -modified_nodes_list = ast.literal_eval(received_edges_list) -current_edges_list = [tuple(inner) for inner in modified_nodes_list] - -print(start_decisiontree_task(current_nodes_list, current_edges_list, classes)) diff --git a/src/Tasks/DecisionTrees/DecisionTreeTaskFunction.py b/src/Tasks/DecisionTrees/DecisionTreeTaskFunction.py deleted file mode 100644 index 1fe21f0..0000000 --- a/src/Tasks/DecisionTrees/DecisionTreeTaskFunction.py +++ /dev/null @@ -1,340 +0,0 @@ -import sys -import ast -import json -import re -import pandas as pd -import numpy as np - -nodes_list = [] -edges_list = [] - -### ID3-Algorithmus ### -# Berechnung der Entropie -def entropy(labels): - unique_labels, label_counts = np.unique(labels, return_counts=True) - probabilities = label_counts / label_counts.sum() - entropy = -np.sum(probabilities * np.log2(probabilities)) - entropy = round(entropy, 5) - return entropy if entropy > 0.0 else -entropy - -# Berechnung des Informationsgewinns -def information_gain(data, feature, target): - total_entropy = entropy(data[target]) - weighted_entropy = 0 - - unique_values = data[feature].unique() - gain_info = {'entropies': {}, 'infogain': {}} - - for value in unique_values: - subset = data[data[feature] == value] - subset_entropy = entropy(subset[target]) - - weight = len(subset) / len(data) - weighted_entropy += weight * subset_entropy - - # Entropie der Ausprägung speichern - gain_info['entropies'][f"{feature} = {value}"] = subset_entropy - - # Informationsgewinn des Attributs speichern - information_gain = round(total_entropy - weighted_entropy, 5) - gain_info['infogain'][feature] = information_gain - return gain_info - -# Bestes Merkmal auswählen -def choose_best_feature(data, features, target): - best_feature_list = [] - best_feature = None - max_info_gain = -1 - best_feature_info = {"entropies": {}, "infogain": {}} - - for feature in features: - feature_info = information_gain(data, feature, target) - - if feature_info["infogain"][feature] > max_info_gain: - max_info_gain = feature_info["infogain"][feature] - best_feature = feature - best_feature_info = feature_info - best_feature_list = [(best_feature, best_feature_info)] - elif feature_info["infogain"][feature] == max_info_gain: - best_feature = feature - best_feature_info = feature_info - best_feature_list.append((best_feature, best_feature_info)) - - return best_feature_list - -# Überprüfen, ob mehrere Lösungen vorhanden sind -def check_multiple_solutions(best_feature, solutions, level): - for tuple in solutions: - if level == tuple[1] and best_feature == tuple[2]: - return True - break - -# Hauptfunktion: Lösungsbaum berechnen -def build_decision_tree(data, features, target, level, solutions): - if len(data[target].unique()) == 1: - return data[target].iloc[0] - if len(features) == 0: - return data[target].mode().iloc[0] - - best_feature = None - best_feature_info = None - option_selected = False - - best_feature_list = choose_best_feature(data, features, target) - - # Wenn Mehrfachlösungen vorhanden sind - if len(best_feature_list) > 1: - for index, tupel in enumerate(best_feature_list): - best_feature = tupel[0] - best_feature_info = tupel[1] - - option_selected = check_multiple_solutions(best_feature, solutions, level) - if option_selected: - break - else: - for tupel in best_feature_list: - best_feature = tupel[0] - best_feature_info = tupel[1] - option_selected = True - - tree = {best_feature: best_feature_info} - unique_values = data[best_feature].unique() - for value in unique_values: - subset = data[data[best_feature] == value] - sub_features = features.drop(best_feature) - tree[best_feature][value] = build_decision_tree(subset, sub_features, target, level+2, solutions) - return tree -### ID3-Algorithmus ### - -# Struktur des Entscheidungsbaums abstrahieren -def decisiontree_structure(tree): - new_tree = {} - for key, value in tree.items(): - if key != 'entropies' and key != 'infogain': - if isinstance(value, dict): - new_value = decisiontree_structure(value) - if new_value: - new_tree[key] = new_value - else: - new_tree[key] = value - return new_tree - -# Gesamtliste aller Werte (Knoten und Kanten) des Lösungsbaums erstellen -def build_decision_tree_list(tree, level=0, tree_list=None, counter=0, parent_counter=None): - if tree_list is None: - tree_list = [] - - node_type = 'node' if level % 2 == 0 else 'edge' - - for key, value in tree.items(): - tree_list.append((counter, level, key, node_type, parent_counter)) - counter += 1 - - if isinstance(value, dict): - counter = build_decision_tree_list(value, level + 1, tree_list, counter, parent_counter=counter - 1) - elif node_type == 'edge': - tree_list.append((counter, level + 1, value, 'node', counter - 1)) - counter += 1 - - return counter - -# Entropie und Informationsgewinn abstrahieren -def extract_entropy_and_infogain(tree, result_dict=None, count_dict=None, level=None): - if result_dict is None: - result_dict = {'entropies': {}, 'infogain': {}} - if count_dict is None: - count_dict = {} - - if level is None: - level = 0 - - if 'entropies' in tree: - for key, value in tree['entropies'].items(): - count_dict_key = f"{key}_count" - if count_dict_key not in count_dict: - count_dict[count_dict_key] = 1 - else: - count_dict[count_dict_key] += 1 - - modified_key = f"{key}{count_dict[count_dict_key]}" - result_dict['entropies'][modified_key] = {'value': value, 'level': level} - - if 'infogain' in tree: - for key, value in tree['infogain'].items(): - count_dict_key = f"{key}_count" - if count_dict_key not in count_dict: - count_dict[count_dict_key] = 1 - else: - count_dict[count_dict_key] += 1 - - modified_key = f"{key}{count_dict[count_dict_key]}" - result_dict['infogain'][modified_key] = {'value': value, 'level': level-1} - - for key, value in tree.items(): - if isinstance(value, dict): - extract_entropy_and_infogain(value, result_dict, count_dict, level + 1) - - return result_dict - -# Entropie-Werte der Kantenliste hinzufügen -def add_entropy(edges_list, entropy_dict): - new_edges_list = [] - attribute_counts = {} - for index, edge in enumerate(edges_list): - attribute = f'{edge[5]} = {edge[2]}' - count = attribute_counts.get(attribute, 1) - - while True: - key = f'{attribute}{count}' - - if key in entropy_dict['entropies'] and edge[1] == entropy_dict['entropies'][key]['level']: - value = entropy_dict['entropies'][key]['value'] - new_edges_list.append(edge + (value,)) - count += 1 - else: - break - - attribute_counts[attribute] = count - return new_edges_list - -# Informationsgewinn-Werte der Knotenliste hinzufügen -def add_infogain(nodes_list, infogain_dict): - new_nodes_list = [] - attribute_counts = {} - - for index, node in enumerate(nodes_list): - attribute = node[2] - count = attribute_counts.get(attribute, 1) - - key = f'{attribute}{count}' - - if key in infogain_dict['infogain'] and node[1] == infogain_dict['infogain'][key]['level']: - value = infogain_dict['infogain'][key]['value'] - new_nodes_list.append(node + (value,)) - count += 1 - else: - value = 0 - new_nodes_list.append(node + (value,)) - - attribute_counts[attribute] = count - - return new_nodes_list - -# Bezeichnung des Übergeordeneten Objekts dem Knoten bzw. der Kante hinzufügen -def add_parent_label(tree_list): - new_tree_list = [] - - # NODES - for item in tree_list: - for i in tree_list: - if item[3] == 'node' and item[4] == i[0]: - new_tree_list.append(item + (i[2],)) - break - elif item[3] == 'node' and item[4] is None: - new_tree_list.append(item + ('None',)) - break - - # EDGES - for item in tree_list: - for i in tree_list: - if item[3] == 'edge' and item[4] == i[0]: - new_tree_list.append(item + (i[2],)) - break - - return new_tree_list - -# Bezeichnung und Ebene des Zielknoten der Kante hinzufügen -def add_child_node(tree_list): - # NODE(ID, LEVEL, LABEL, TYPE, PARENTID, PARENTLABEL) - nodes_list = [item for item in tree_list if item[3] == 'node'] - - result = [] - for item in tree_list: - if item[3] == 'edge': - for i in tree_list: - if i[3] == 'node' and item[0] == i[4]: - child_id = i[0] - child_label = i[2] - result.append(item + (child_id, child_label)) - - result = result + nodes_list - return result - -# Liste mit Lösungswerten des Lösungsentscheidungsbaum vorbereiten für die Überprüfung -def prepare_lists(nodes_list, edges_list): - # NODE (KEY, LEVEL, LABEL, PARENTID, PARENTLABEL, INFOGAIN) - solutions_nodes = [(node[0], node[1], re.sub(r"(\s)+", "_", node[2]).strip(), node[4], re.sub(r"(\s)+", "_",node[5]).strip(), node[6]) for node in nodes_list] - # EDGE (KEY, LEVEL, LABEL, PARENTID, PARENTLABEL, CHILDID, CHILDLABEL, ENTROPY) - solutions_edges = [(edge[0], edge[1], re.sub(r"(\s)+", "_", edge[2]).strip(), edge[4], re.sub(r"(\s)+", "_", edge[5]).strip(), edge[6], re.sub(r"(\s)+", "_", edge[7]).strip(), edge[8]) for edge in edges_list] - return solutions_nodes, solutions_edges - -# Validierung der übergebenen Werte des erstellen Entscheidungsbaum mit den berechneten Lösungswerten -def validateGraph(solution_nodes_list, solution_edges_list, received_nodes_list, received_edges_list, classes): - # SOLUTIONS_NODES (ID, LEVEL, LABEL, PARENTID, PARENTEDGELABEL, INFOGAIN) - # RECEIVED_NODES (KEY, LEVEL, LABEL, PARENTEDGELABEL, INFOGAIN) - - # SOLUTIONS_EDGES (ID, LEVEL, LABEL, PARENTID, PARENTNODELABEL, CHILDID, CHILDNODELABEL, ENTROPY) - # RECEIVED_EDGES (KEY, LEVEL, LABEL, PARENTKEY, PARENTNODELABEL, CHILDKEY, CHILDNODELABEL, ENTROPY) - - results_nodes = [] - results_edges = [] - - # 1. PRÜFUNG - EDGES - for received_edge in received_edges_list: - result = False - for solution_edge in solution_edges_list: - if (received_edge[1] == solution_edge[1] and # (LEVEL == LEVEL) - received_edge[2] == solution_edge[2] and # (LABEL == LABEL) - received_edge[4] == solution_edge[4] and # (PARENTNODELABEL == PARENTNODELABEL) - received_edge[6] == solution_edge[6] and # (CHILDNODELABEL == CHILDNODELABEL) - received_edge[7] == solution_edge[7] # (ENTROPY == ENTROPY) - ): - result = True - break - - results_edges.append({'key': received_edge[0], 'result': result}) - - # 2. PRÜFUNG - NODES - for received_node in received_nodes_list: - result = False - for solution_node in solution_nodes_list: - # WURZELKNOTEN PRÜFEN - if (received_node[0] == '1' and # (KEY == 1) - received_node[2] == solution_node[1] and # (LEVEL == LEVEL) - received_node[1] == solution_node[2] and # (LABEL == LABEL) - received_node[3] == 'None' and # (PARENTEDGELABEL == 'NONE') - received_node[4] == solution_node[5]): # (INFOGAIN == INFOGAIN) - result = True - break - - elif (received_node[1] == solution_node[1] and # (LEVEL == LEVEL) - received_node[2] == solution_node[2] and # (LABEL == LABEL) - received_node[3] == solution_node[4] and # (PARENTEDGELABEL == PARENTEDGELABEL) - received_node[4] == solution_node[5]): # (INFOGAIN == INFOGAIN) - result = True - break - - elif (received_node[2] in classes): # (LABEL IN CLASSES['ja', 'nein']) - for solution_edge in solution_edges_list: - if (received_node[2] == solution_edge[6] and - received_node[3] == solution_edge[2] and - received_node[4] == 'decision'): - result = True - break - - results_nodes.append({'key': received_node[0], 'result': result}) - return results_nodes, results_edges - -# Struktur des Entscheidungsbaums erhalten (Funktion für die Datengenerierung) -def get_decisiontree_structure(data_path_csv): - dataframe = pd.read_csv(data_path_csv) - received_nodes = [] - - target_attribute = dataframe.columns[-1] - classes = dataframe[target_attribute].unique() - attributes = dataframe.columns[:-1] - - dt = build_decision_tree(dataframe, attributes, target_attribute, 0, received_nodes) - dt_struct = decisiontree_structure(dt) - - return dt_struct \ No newline at end of file diff --git a/src/Tasks/DecisionTrees/Task.ts b/src/Tasks/DecisionTrees/Task.ts deleted file mode 100644 index 68b71c4..0000000 --- a/src/Tasks/DecisionTrees/Task.ts +++ /dev/null @@ -1,174 +0,0 @@ -import { TaskGenerator } from "../../Legacy/genericGraphs/TaskGenerator"; -import { Constructor } from "../../Legacy/genericGraphs/Utility"; -import { Gozintograph, GozintographVertex } from "./WrapperDecisionTree"; -import { GozintographGenerator2, GozintographConfig } from "./WrapperDecisionTree"; - -export class DecisionTreeTaskGenerator extends TaskGenerator { - constructor( - graphConstructor: Constructor = Gozintograph, - generatorConstructor: Constructor = GozintographGenerator2 - ) { - super(graphConstructor, generatorConstructor); - } - - public generateTask(config: GozintographConfig) { - config["type"] = "digraph"; - config["edgeDirection"] = "forward"; - config.style = { - graph: { rankdir: "BT", splines: "polyline", bgcolor: "transparent" }, - vertex: { shape: "circle", style: "filled" }, - edge: {}, - }; - super.generateTask(config); - - const graphGenerator = new this.graphGeneratorConstructor(this.rng); - this.graph = graphGenerator.generateGraph(this.graphConstructor, config); - - const transpose = (adjacencyMatrix: Array>) => - adjacencyMatrix[0].map((_, colIndex) => adjacencyMatrix.map((row) => row[colIndex])); - const [labelVector, valueVector, adjacencyMatrix] = this.orderGraphSemantically(this.graph); - // const vertices = Object.values(this.graph.getVertices()); - // const valueVector = vertices.map((vertex) => vertex.getProperty("value" as keyof GozintographVertex)); - // const labelVector = vertices.map((vertex) => vertex.getProperty("label" as keyof GozintographVertex)); - const solution = this.calculateSolution(transpose(adjacencyMatrix), valueVector); - - const dotGraph = this.graph.dotGraph(); - const { nodes, edges, paths } = this.graph.serialize(); - - return { - dotDescription: dotGraph, - edges, - nodes, - paths, - valueVector: [valueVector], - labelVector, - solution, - adjacencyMatrix: transpose(adjacencyMatrix), - longestPath: this.graph.getLongestPathLength(), - }; - } - - private orderGraphSemantically(graph: Gozintograph) { - const labelOrder: { [key: string]: number } = { P: 400, B: 300, K: 200, R: 100 }; - const vertices = Object.values(graph.getVertices()); - - const labelSort = (v1: GozintographVertex, v2: GozintographVertex) => { - const labels = [v1, v2].map((v) => v.getProperty("label" as keyof GozintographVertex)); - const splitAtIndex = (s: string, index: number): [label: string, index: number] => [ - s.substring(0, index), - parseInt(s.substring(index)), - ]; - const [l1, l2] = labels.map((label) => splitAtIndex(label, 1)); - - return labelOrder[l2[0]] - labelOrder[l1[0]] + (l1[1] - l2[1]); - }; - const edges = graph.getEdges(); - - return vertices.sort(labelSort).reduce( - (sortedGraph, vertex, i, sortedVertices) => { - sortedGraph[0].push(vertex.getProperty("label" as keyof GozintographVertex)); - sortedGraph[1].push(vertex.getProperty("value" as keyof GozintographVertex)); - - const row = sortedVertices.map((sortedVertex) => { - const parents = vertex.getParents(); - const vertexID = vertex.getId(); - const parentID = sortedVertex.getId(); - if (parentID in parents) { - return parseInt(edges[`${parents[parentID].getId()}__${vertexID}`].getLabel()); - } else { - return 0; - } - }); - sortedGraph[2].push(row); - - return sortedGraph; - }, - [[], [], []] - ); - } - - private longestPathLength() { - const roots = this.graph.getLeafs(); - const vertices = this.graph.getVertices(); - const rootVertices = roots.map((root) => vertices[root]); - - const findPath = (vertex: GozintographVertex, path: Array, paths: Array>) => { - const childs = Object.values(vertex.getChilds()); - if (childs.length) { - childs.forEach((child) => { - let newPath = [...path]; - newPath.push({ between: [vertex.getId(), child.getId()] }); - findPath(child, newPath, paths); - }); - } else if (path.length) { - paths.push(path); - path = []; - } - return paths; - }; - - const paths = rootVertices.reduce((paths, root) => findPath(root, [], paths), []); - this.graph.setPaths(paths); - - const longestPathLength = paths.reduce((longestPath, path) => (path.length > longestPath ? path.length : longestPath), 0); - - this.graph.setLongestPathLength(longestPathLength); - return longestPathLength; - } - - private calculateSolution(matrix: Array>, valueVector: Array): Array> { - const transpose = (matrix: Array>) => - matrix[0].map((element, elementIndex) => matrix.map((row) => row[elementIndex])); - const sum = (list: Array): number => list.reduce((sum, element) => (sum += element), 0); - const matmul = (m1: Array>, m2: Array>) => - m1.map((row) => transpose(m2).map((column) => sum(row.map((element, elementIndex) => element * column[elementIndex])))); - const matadd = (m1: Array>, m2: Array>) => - m1.map((row, i) => row.map((element, j) => (m2[i][j] += element))); - const unity = (matrix: Array>) => { - return matrix.reduce((unityMatrix, rows, i) => { - const unityRow = rows.reduce((unityRow, row, j) => { - unityRow[j] = i === j ? 1 : 0; - return unityRow; - }, []); - unityMatrix.push(unityRow); - return unityMatrix; - }, [] as Array>); - }; - - let current = matrix; - let result = matrix; - const longestPathLength = this.longestPathLength(); - for (let i = 1; i < longestPathLength; i++) { - result = matmul(current, result); - result = matadd(current, result); - } - result = matadd(result, unity(matrix)); - - const resultVector = result.reduce((vector, row) => { - const scalar = row.reduce((scalar, element, i) => { - scalar += element * valueVector[i]; - return scalar; - }, 0); - vector.push(scalar); - return vector; - }, [] as Array); - - return [resultVector]; - } -} - -// const tg = new GozintographTaskGenerator(); -// const t = tg.generateTask({ -// nodeAmount: 10, -// edgeDensity: 0.2, -// nodeValueRange: [1, 10], -// edgeWeightRange: [1, 10], -// seed: "", -// style: { vertex: {}, edge: {}, graph: {} }, -// }); -// console.log(t.paths); - -// nodeAmount: number; -// edgeDensity: number; -// nodeValueRange: [number, number]; -// edgeWeightRange: [number, number]; diff --git a/src/Tasks/DecisionTrees/WrapperDataSampler.ts b/src/Tasks/DecisionTrees/WrapperDataSampler.ts deleted file mode 100644 index 2ba77d1..0000000 --- a/src/Tasks/DecisionTrees/WrapperDataSampler.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { exec } from 'child_process'; -import * as fs from 'fs'; - -/* Funktion für die ausführung des Python-Skripts (DataSampler.py) */ -function runPythonScript(scriptPath: string, args: string[]): Promise { - return new Promise((resolve, reject) => { - const command = `python ${scriptPath} ${args.join(' ')}`; - exec(command, (error, stdout, stderr) => { - if (error) { - reject(error.message); - return; - } - if (stderr) { - reject(stderr); - return; - } - resolve(stdout); - }); - }); -} - -/* Funktion für das Auslesen einer JSON-Datei (generated_dataset.json) */ -async function readJsonFile(filePath: string): Promise { - return new Promise((resolve, reject) => { - fs.readFile(filePath, 'utf-8', (err, data) => { - if (err) { - reject(err); - return; - } - - try { - const jsonData = data.split('\n').filter(Boolean).map(line => JSON.parse(line)); - resolve(jsonData); - } catch (parseError) { - reject(parseError); - } - }); - }); -} - -/* Tabelle aus einem JSON erstellen */ -function generateTableFromJson(jsonArray: Array, tableColumns: string[]) { - return jsonArray.map((jsonObj) => { - const tableRow: Record = {}; - tableColumns.forEach((column, index) => { - tableRow[column] = jsonObj[column]; - }); - return tableRow; - }); -} - -/* Wrapper-Funktion */ -export async function DataSamplingGenerator() { - try { - const pythonScriptPath = 'src/Tasks/DecisionTrees/DataSampler.py'; - const argumentsToPythonScript = ['']; - await runPythonScript(pythonScriptPath, argumentsToPythonScript); - - const filename = 'src/Tasks/DecisionTrees/datasets/generated_dataset.json'; - - try { - const jsonData = await readJsonFile(filename); - const tableColumns = Array.from(new Set(jsonData.flatMap(Object.keys))); - - const tableData = generateTableFromJson(jsonData, tableColumns); - console.log('Table: ', tableData); - - return { "table": tableData }; - } catch (jsonError) { - console.error(`Error parsing JSON file ${filename}: ${jsonError}`); - } - } catch (error) { - console.error('Error running Python script: ', error); - } -} diff --git a/src/Tasks/DecisionTrees/WrapperDecisionTree.ts b/src/Tasks/DecisionTrees/WrapperDecisionTree.ts deleted file mode 100644 index b4c8e3a..0000000 --- a/src/Tasks/DecisionTrees/WrapperDecisionTree.ts +++ /dev/null @@ -1,232 +0,0 @@ -import { GraphGenerator } from "../../Legacy/genericGraphs/GraphGeneration"; -import { Vertex, Edge, Graph, VertexParameters, EdgeParameters, GraphParameters } from "../../Legacy/genericGraphs/Graph"; -import { Constructor, mapAttributesToDot } from "../../Legacy/genericGraphs/Utility"; -import { TaskConfig } from "../../Legacy/genericGraphs/TaskGenerator"; -import { ensureType, statefulCounter } from "../../Legacy/helpers/helperFunctions"; - -export interface GozintographConfig extends TaskConfig { - nodeAmount: number; - edgeDensity: number; - nodeValueRange: [number, number]; - edgeWeightRange: [number, number]; -} -export interface PlanVertexParameters extends VertexParameters {} -interface GozintographParameters extends GraphParameters {} - -export class GozintographVertex extends Vertex { - private value: string; - private label: string; - constructor(args: PlanVertexParameters) { - super(args); - this.value = args.value; - this.label = args.label; - } - - public getProperty(property: keyof GozintographVertex): any { - return this[property]; - } - public setProperty(property: keyof GozintographVertex, value: any) { - this[property] = value; - } - public getChilds(): { [id: number]: GozintographVertex } { - return this.childs as { [id: number]: GozintographVertex }; - } - public getParents(): { [id: number]: GozintographVertex } { - return this.parents as { [id: number]: GozintographVertex }; - } - public dotVertex() { - return `${this.id} [label="${this.label}" tooltip="${this.value}"]`; - } - public serialize() { - return { id: this.id, label: this.label, value: this.value, parents: Object.keys(this.parents), childs: Object.keys(this.childs) }; - } -} - -export class GozintographEdge extends Edge { - public dotEdge() { - const weight = this.label; - const parentId = this.parentVertices[0].getId(); - const childId = this.childVertices[0].getId(); - return `${parentId} -> ${childId} [label="${weight}"]`; - } - - public serialize() { - const [from, to] = this.id.split("__"); - return { between: [from, to], weight: this.label }; - } -} - -export class Gozintograph extends Graph { - private adjacencyMatrix: Array>; - private roots: Array; - private leafs: Array; - private paths: Array>; - private longestPathLength: number; - constructor( - args: GozintographParameters, - vertexConstructor: Constructor = GozintographVertex, - edgeConstructor: Constructor = GozintographEdge - ) { - super(args, vertexConstructor, edgeConstructor); - } - - public getAdjacencyMatrix() { - return this.adjacencyMatrix; - } - public setAdjacencyMatrix(adjacencyMatrix: Array>) { - this.adjacencyMatrix = adjacencyMatrix; - } - public getRoots() { - return this.roots; - } - public setRoots(roots: Array) { - this.roots = roots; - } - public getLeafs() { - return this.leafs; - } - public setLeafs(leafs: Array) { - this.leafs = leafs; - } - public getPaths() { - return this.paths; - } - public setPaths(paths: Array>) { - this.paths = paths; - } - public getLongestPathLength() { - return this.longestPathLength; - } - public setLongestPathLength(longestPathLength: number) { - this.longestPathLength = longestPathLength; - } - - public dotGraph() { - const rankString = `{ rank=max; ${this.roots.join(";")} }\n }`; - return super.dotGraph().replace("}", rankString); - } - public serialize() { - const edges = Object.values(this.edges).map((edge) => edge.serialize()); - const vertices = Object.values(this.vertices).map((vertex) => vertex.serialize()); - return { nodes: vertices, edges, paths: this.paths }; - } -} - -export class GozintographGenerator2 extends GraphGenerator { - public generateGraph(graphConstructor: Constructor, config: GozintographConfig) { - GozintographVertex.resetCounter(); - config.type = "digraph"; - const graph = super.generateGraph(graphConstructor, config); - - const nodeAmount = ensureType("int", config.nodeAmount); - const edgeDensity = ensureType("float", config.edgeDensity); - const edgeWeightRange = config.edgeWeightRange.map((value) => ensureType("int", value)) as [number, number]; - const nodeValueRange = config.nodeValueRange.map((value) => ensureType("int", value)) as [number, number]; - - const adjacencyMatrix = this.generateAdjacencyMatrix(edgeDensity, nodeAmount, edgeWeightRange); - this.graph.setAdjacencyMatrix(adjacencyMatrix); - this.buildGraph(adjacencyMatrix, nodeValueRange); - - return graph; - } - - private generateAdjacencyMatrix(edgeDensity: number, nodeAmount: number, edgeWeightRange: [number, number]) { - const randomDAG = (x: number, n: number) => { - const length = (n * (n - 1)) / 2; - const dag = new Array(length).fill(1); - for (let i = 0; i < length; i++) { - if (this.rng.floatBetween(0, 1) > x) { - dag[i] = 0; - if (!isConnected(n, dag)) dag[i] = 1; - } - } - return dag; - }; - - const dagIndex = (n: number, i: number, j: number) => n * i + j - ((i + 1) * (i + 2)) / 2; - - const isConnected = (n: number, dag: Array) => { - const reached = new Array(n).fill(false); - reached[0] = true; - const queue = [0]; - - while (queue.length > 0) { - const x = queue.shift(); - for (let i = 0; i < n; i++) { - if (i !== n && !reached[i]) { - const j = i < x ? dagIndex(n, i, x) : dagIndex(n, x, i); - if (dag[j] !== 0) { - reached[i] = true; - queue.push(i); - } - } - } - } - return reached.every((x) => x); - }; - - const dagToAdjacencyMatrix = (n: number, dag: Array, edgeWeightRange: [number, number]) => { - const [min, max] = edgeWeightRange; - let adjacencyMatrix = Array(n) - .fill(null) - .map(() => Array(n).fill(0)); - for (let i = 0; i < n; i++) { - for (let j = i + 1; j < n; j++) { - const k = dagIndex(n, i, j); - - if (dag[k]) adjacencyMatrix[j][i] = this.rng.intBetween(min, max); - } - } - return adjacencyMatrix; - }; - - return dagToAdjacencyMatrix(nodeAmount, randomDAG(edgeDensity, nodeAmount), edgeWeightRange); - } - - private buildGraph(adjacencyMatrix: Array>, nodeValueRange: [number, number]) { - const rootVertices = this.findRoots(adjacencyMatrix); - const leafVertices = this.findLeafs(adjacencyMatrix); - this.graph.setLeafs(leafVertices); - this.graph.setRoots(rootVertices); - const [min, max] = nodeValueRange; - const labels: { [key: string]: any } = { - P: statefulCounter(), - B: statefulCounter(), - K: statefulCounter(), - R: statefulCounter(), - }; - adjacencyMatrix.forEach((row, i) => { - const labelType = this.assignLabel(rootVertices, leafVertices, i); - const vertex = this.graph.createVertex({ - value: this.rng.intBetween(min, max), - label: `${labelType}${labels[labelType].next().value}`, - }); - row.forEach((neighbour, j) => { - if (neighbour) { - const vertices = this.graph.getVertices(); - const parent = vertices[j]; - this.graph.createEdge({ parentVertices: [parent], childVertices: [vertex], label: neighbour.toString() }); - } - }); - }); - } - - private assignLabel(rootVertices: Array, leafVertices: Array, i: number) { - let labelType = "B"; - if (leafVertices.includes(i)) labelType = this.rng.coinFlip() ? "R" : "K"; - else if (rootVertices.includes(i)) labelType = "P"; - - return labelType; - } - - private findRoots(adjacencyMatrix: Array>) { - const transpose = (adjacencyMatrix: Array>) => - adjacencyMatrix[0].map((_, colIndex) => adjacencyMatrix.map((row) => row[colIndex])); - - return this.findLeafs(transpose(adjacencyMatrix)); - } - - private findLeafs(adjacencyMatrix: Array>) { - return adjacencyMatrix.map((vertex, i) => (vertex.every((weight) => !weight) ? i : -1)).filter((isLeaf) => isLeaf !== -1); - } -} \ No newline at end of file diff --git a/src/Tasks/DecisionTrees/WrapperValidateDecisionTree.ts b/src/Tasks/DecisionTrees/WrapperValidateDecisionTree.ts deleted file mode 100644 index c050c95..0000000 --- a/src/Tasks/DecisionTrees/WrapperValidateDecisionTree.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { float } from 'aws-sdk/clients/cloudfront'; -import { exec } from 'child_process'; -import * as fs from 'fs'; - -/* Funktion für die ausführung des Python-Skripts (DecisionTreeTask.py) */ -function runPythonScript(scriptPath: string, args: string[]): Promise { - return new Promise((resolve, reject) => { - const command = `python ${scriptPath} ${args.join(' ')}`; - exec(command, (error, stdout, stderr) => { - if (error) { - reject(error.message); - return; - } - if (stderr) { - reject(stderr); - return; - } - resolve(stdout); - }); - }); -} - -/* Funktionen, für die strukturierung der übergebenen Lösungeswerte aus CARPET in Listen */ -function createNodesList(nodes: any[]): [string, string, number, string, any][] { - // NODE (KEY, LEVEL, LABEL, PARENTEDGE, INFOGAIN) - return nodes.map((node: any) => [node['key'], node['attributes']['level'], node['attributes']['name'], node['attributes']['parentedge'], node['attributes']['infogain']]); -} - -function createEdgesList(edges: any[]): [string, any, string, string, string, string, string, float][] { - // EDGE (KEY, LEVEL, LABEL, PARENTKEY, PARENTNODELABEL, CHILDKEY, CHILDNODELABEL, ENTROPY) - return edges.map((edge: any) => [edge['key'], edge['attributes']['level'], edge['attributes']['name'], edge['source'], edge['attributes']['parentnode'], edge['target'], edge['attributes']['childnode'], edge['attributes']['entropy']]); -} - -/* Wrapper-Funktion */ -export async function DecisionTreeValidator(graph: any) { - const nodes = graph['graph']['nodes']; - const edges = graph['graph']['edges']; - - const actual_nodes = createNodesList(nodes); - const actual_edges = createEdgesList(edges); - - console.log("--- Erhaltener DecisionTree ---"); - console.log("Nodes: \n", actual_nodes); - console.log("Edges: \n", actual_edges); - - try { - const pythonScriptPath = 'src/Tasks/DecisionTrees/DecisionTreeTask.py'; - const jsonStringNodes = JSON.stringify(actual_nodes); - const jsonStringEdges = JSON.stringify(actual_edges); - - const modifiedJsonStringNodes = jsonStringNodes.replace(/"([^"]+)"/g, (_, p1) => `'${p1}'`); - const modifiedJsonStringEdges = jsonStringEdges.replace(/"([^"]+)"(,|\])/g, (_, p1, p2) => `'${p1}'${p2}`); - - const argumentsToPythonScript = [modifiedJsonStringNodes, modifiedJsonStringEdges]; - - const result = await runPythonScript(pythonScriptPath, argumentsToPythonScript); - const parsedResult = JSON.parse(result); - - return {'solution_nodes_list': parsedResult['nodes'], 'solution_edges_list': parsedResult['edges'], 'status': parsedResult['finished'], 'entropies': parsedResult['entropies']} - - } catch(error) { - console.error('Error running Python script: ', error); - } -} diff --git a/src/Tasks/DecisionTrees/__pycache__/DecisionTreeTaskFunction.cpython-311.pyc b/src/Tasks/DecisionTrees/__pycache__/DecisionTreeTaskFunction.cpython-311.pyc deleted file mode 100644 index 9502d27..0000000 Binary files a/src/Tasks/DecisionTrees/__pycache__/DecisionTreeTaskFunction.cpython-311.pyc and /dev/null differ diff --git a/src/Tasks/DecisionTrees/__pycache__/DecisionTreeTaskFunction.cpython-312.pyc b/src/Tasks/DecisionTrees/__pycache__/DecisionTreeTaskFunction.cpython-312.pyc deleted file mode 100644 index be77c73..0000000 Binary files a/src/Tasks/DecisionTrees/__pycache__/DecisionTreeTaskFunction.cpython-312.pyc and /dev/null differ diff --git a/src/Tasks/DecisionTrees/datasets/generated_dataset.csv b/src/Tasks/DecisionTrees/datasets/generated_dataset.csv deleted file mode 100644 index 983a7cf..0000000 --- a/src/Tasks/DecisionTrees/datasets/generated_dataset.csv +++ /dev/null @@ -1,71 +0,0 @@ -Aussicht,Temperatur,Luftfeuchtigkeit,Wind,Spiel -bewölkt,kalt,normal,ja,ja -regnerisch,mild,hoch,nein,ja -regnerisch,kalt,normal,nein,ja -regnerisch,mild,normal,nein,ja -bewölkt,mild,hoch,ja,ja -sonnig,mild,normal,ja,ja -bewölkt,kalt,normal,ja,ja -sonnig,kalt,normal,nein,ja -sonnig,mild,normal,ja,ja -regnerisch,mild,hoch,nein,ja -regnerisch,kalt,normal,ja,nein -bewölkt,heiß,normal,nein,ja -bewölkt,heiß,normal,nein,ja -bewölkt,heiß,normal,nein,ja -sonnig,mild,normal,ja,ja -regnerisch,mild,normal,nein,ja -sonnig,heiß,hoch,ja,nein -sonnig,mild,normal,ja,ja -bewölkt,heißt,hoch,nein,ja -regnerisch,kalt,normal,nein,ja -bewölkt,mild,hoch,ja,ja -sonnig,mild,normal,ja,ja -regnerisch,mild,hoch,ja,nein -sonnig,mild,normal,ja,ja -regnerisch,mild,hoch,ja,nein -sonnig,kalt,normal,nein,ja -bewölkt,kalt,normal,ja,ja -sonnig,heiß,hoch,nein,nein -bewölkt,kalt,normal,ja,ja -sonnig,kalt,normal,nein,ja -regnerisch,mild,hoch,ja,nein -regnerisch,kalt,normal,nein,ja -regnerisch,kalt,normal,ja,nein -regnerisch,mild,hoch,nein,ja -regnerisch,mild,hoch,ja,nein -sonnig,heiß,hoch,nein,nein -regnerisch,kalt,normal,nein,ja -sonnig,mild,hoch,nein,nein -sonnig,kalt,normal,nein,ja -regnerisch,kalt,normal,ja,nein -sonnig,mild,hoch,nein,nein -bewölkt,heißt,hoch,nein,ja -regnerisch,kalt,normal,ja,nein -regnerisch,kalt,normal,ja,nein -regnerisch,mild,hoch,ja,nein -sonnig,kalt,normal,nein,ja -bewölkt,heißt,hoch,nein,ja -regnerisch,kalt,normal,nein,ja -bewölkt,heißt,hoch,nein,ja -bewölkt,heiß,normal,nein,ja -sonnig,mild,hoch,nein,nein -bewölkt,heiß,normal,nein,ja -sonnig,heiß,hoch,nein,nein -bewölkt,kalt,normal,ja,ja -sonnig,kalt,normal,nein,ja -bewölkt,heißt,hoch,nein,ja -regnerisch,kalt,normal,nein,ja -bewölkt,heißt,hoch,nein,ja -sonnig,kalt,normal,nein,ja -regnerisch,mild,normal,nein,ja -sonnig,kalt,normal,nein,ja -sonnig,heiß,hoch,nein,nein -regnerisch,kalt,normal,ja,nein -regnerisch,mild,normal,nein,ja -bewölkt,heiß,normal,nein,ja -sonnig,mild,hoch,nein,nein -sonnig,kalt,normal,nein,ja -regnerisch,kalt,normal,ja,nein -bewölkt,mild,hoch,ja,ja -regnerisch,kalt,normal,nein,ja diff --git a/src/Tasks/DecisionTrees/datasets/generated_dataset.json b/src/Tasks/DecisionTrees/datasets/generated_dataset.json deleted file mode 100644 index e42ec68..0000000 --- a/src/Tasks/DecisionTrees/datasets/generated_dataset.json +++ /dev/null @@ -1,70 +0,0 @@ -{"Aussicht":"bew\u00f6lkt","Temperatur":"kalt","Luftfeuchtigkeit":"normal","Wind":"ja","Spiel":"ja"} -{"Aussicht":"regnerisch","Temperatur":"mild","Luftfeuchtigkeit":"hoch","Wind":"nein","Spiel":"ja"} -{"Aussicht":"regnerisch","Temperatur":"kalt","Luftfeuchtigkeit":"normal","Wind":"nein","Spiel":"ja"} -{"Aussicht":"regnerisch","Temperatur":"mild","Luftfeuchtigkeit":"normal","Wind":"nein","Spiel":"ja"} -{"Aussicht":"bew\u00f6lkt","Temperatur":"mild","Luftfeuchtigkeit":"hoch","Wind":"ja","Spiel":"ja"} -{"Aussicht":"sonnig","Temperatur":"mild","Luftfeuchtigkeit":"normal","Wind":"ja","Spiel":"ja"} -{"Aussicht":"bew\u00f6lkt","Temperatur":"kalt","Luftfeuchtigkeit":"normal","Wind":"ja","Spiel":"ja"} -{"Aussicht":"sonnig","Temperatur":"kalt","Luftfeuchtigkeit":"normal","Wind":"nein","Spiel":"ja"} -{"Aussicht":"sonnig","Temperatur":"mild","Luftfeuchtigkeit":"normal","Wind":"ja","Spiel":"ja"} -{"Aussicht":"regnerisch","Temperatur":"mild","Luftfeuchtigkeit":"hoch","Wind":"nein","Spiel":"ja"} -{"Aussicht":"regnerisch","Temperatur":"kalt","Luftfeuchtigkeit":"normal","Wind":"ja","Spiel":"nein"} -{"Aussicht":"bew\u00f6lkt","Temperatur":"hei\u00df","Luftfeuchtigkeit":"normal","Wind":"nein","Spiel":"ja"} -{"Aussicht":"bew\u00f6lkt","Temperatur":"hei\u00df","Luftfeuchtigkeit":"normal","Wind":"nein","Spiel":"ja"} -{"Aussicht":"bew\u00f6lkt","Temperatur":"hei\u00df","Luftfeuchtigkeit":"normal","Wind":"nein","Spiel":"ja"} -{"Aussicht":"sonnig","Temperatur":"mild","Luftfeuchtigkeit":"normal","Wind":"ja","Spiel":"ja"} -{"Aussicht":"regnerisch","Temperatur":"mild","Luftfeuchtigkeit":"normal","Wind":"nein","Spiel":"ja"} -{"Aussicht":"sonnig","Temperatur":"hei\u00df","Luftfeuchtigkeit":"hoch","Wind":"ja","Spiel":"nein"} -{"Aussicht":"sonnig","Temperatur":"mild","Luftfeuchtigkeit":"normal","Wind":"ja","Spiel":"ja"} -{"Aussicht":"bew\u00f6lkt","Temperatur":"hei\u00dft","Luftfeuchtigkeit":"hoch","Wind":"nein","Spiel":"ja"} -{"Aussicht":"regnerisch","Temperatur":"kalt","Luftfeuchtigkeit":"normal","Wind":"nein","Spiel":"ja"} -{"Aussicht":"bew\u00f6lkt","Temperatur":"mild","Luftfeuchtigkeit":"hoch","Wind":"ja","Spiel":"ja"} -{"Aussicht":"sonnig","Temperatur":"mild","Luftfeuchtigkeit":"normal","Wind":"ja","Spiel":"ja"} -{"Aussicht":"regnerisch","Temperatur":"mild","Luftfeuchtigkeit":"hoch","Wind":"ja","Spiel":"nein"} -{"Aussicht":"sonnig","Temperatur":"mild","Luftfeuchtigkeit":"normal","Wind":"ja","Spiel":"ja"} -{"Aussicht":"regnerisch","Temperatur":"mild","Luftfeuchtigkeit":"hoch","Wind":"ja","Spiel":"nein"} -{"Aussicht":"sonnig","Temperatur":"kalt","Luftfeuchtigkeit":"normal","Wind":"nein","Spiel":"ja"} -{"Aussicht":"bew\u00f6lkt","Temperatur":"kalt","Luftfeuchtigkeit":"normal","Wind":"ja","Spiel":"ja"} -{"Aussicht":"sonnig","Temperatur":"hei\u00df","Luftfeuchtigkeit":"hoch","Wind":"nein","Spiel":"nein"} -{"Aussicht":"bew\u00f6lkt","Temperatur":"kalt","Luftfeuchtigkeit":"normal","Wind":"ja","Spiel":"ja"} -{"Aussicht":"sonnig","Temperatur":"kalt","Luftfeuchtigkeit":"normal","Wind":"nein","Spiel":"ja"} -{"Aussicht":"regnerisch","Temperatur":"mild","Luftfeuchtigkeit":"hoch","Wind":"ja","Spiel":"nein"} -{"Aussicht":"regnerisch","Temperatur":"kalt","Luftfeuchtigkeit":"normal","Wind":"nein","Spiel":"ja"} -{"Aussicht":"regnerisch","Temperatur":"kalt","Luftfeuchtigkeit":"normal","Wind":"ja","Spiel":"nein"} -{"Aussicht":"regnerisch","Temperatur":"mild","Luftfeuchtigkeit":"hoch","Wind":"nein","Spiel":"ja"} -{"Aussicht":"regnerisch","Temperatur":"mild","Luftfeuchtigkeit":"hoch","Wind":"ja","Spiel":"nein"} -{"Aussicht":"sonnig","Temperatur":"hei\u00df","Luftfeuchtigkeit":"hoch","Wind":"nein","Spiel":"nein"} -{"Aussicht":"regnerisch","Temperatur":"kalt","Luftfeuchtigkeit":"normal","Wind":"nein","Spiel":"ja"} -{"Aussicht":"sonnig","Temperatur":"mild","Luftfeuchtigkeit":"hoch","Wind":"nein","Spiel":"nein"} -{"Aussicht":"sonnig","Temperatur":"kalt","Luftfeuchtigkeit":"normal","Wind":"nein","Spiel":"ja"} -{"Aussicht":"regnerisch","Temperatur":"kalt","Luftfeuchtigkeit":"normal","Wind":"ja","Spiel":"nein"} -{"Aussicht":"sonnig","Temperatur":"mild","Luftfeuchtigkeit":"hoch","Wind":"nein","Spiel":"nein"} -{"Aussicht":"bew\u00f6lkt","Temperatur":"hei\u00dft","Luftfeuchtigkeit":"hoch","Wind":"nein","Spiel":"ja"} -{"Aussicht":"regnerisch","Temperatur":"kalt","Luftfeuchtigkeit":"normal","Wind":"ja","Spiel":"nein"} -{"Aussicht":"regnerisch","Temperatur":"kalt","Luftfeuchtigkeit":"normal","Wind":"ja","Spiel":"nein"} -{"Aussicht":"regnerisch","Temperatur":"mild","Luftfeuchtigkeit":"hoch","Wind":"ja","Spiel":"nein"} -{"Aussicht":"sonnig","Temperatur":"kalt","Luftfeuchtigkeit":"normal","Wind":"nein","Spiel":"ja"} -{"Aussicht":"bew\u00f6lkt","Temperatur":"hei\u00dft","Luftfeuchtigkeit":"hoch","Wind":"nein","Spiel":"ja"} -{"Aussicht":"regnerisch","Temperatur":"kalt","Luftfeuchtigkeit":"normal","Wind":"nein","Spiel":"ja"} -{"Aussicht":"bew\u00f6lkt","Temperatur":"hei\u00dft","Luftfeuchtigkeit":"hoch","Wind":"nein","Spiel":"ja"} -{"Aussicht":"bew\u00f6lkt","Temperatur":"hei\u00df","Luftfeuchtigkeit":"normal","Wind":"nein","Spiel":"ja"} -{"Aussicht":"sonnig","Temperatur":"mild","Luftfeuchtigkeit":"hoch","Wind":"nein","Spiel":"nein"} -{"Aussicht":"bew\u00f6lkt","Temperatur":"hei\u00df","Luftfeuchtigkeit":"normal","Wind":"nein","Spiel":"ja"} -{"Aussicht":"sonnig","Temperatur":"hei\u00df","Luftfeuchtigkeit":"hoch","Wind":"nein","Spiel":"nein"} -{"Aussicht":"bew\u00f6lkt","Temperatur":"kalt","Luftfeuchtigkeit":"normal","Wind":"ja","Spiel":"ja"} -{"Aussicht":"sonnig","Temperatur":"kalt","Luftfeuchtigkeit":"normal","Wind":"nein","Spiel":"ja"} -{"Aussicht":"bew\u00f6lkt","Temperatur":"hei\u00dft","Luftfeuchtigkeit":"hoch","Wind":"nein","Spiel":"ja"} -{"Aussicht":"regnerisch","Temperatur":"kalt","Luftfeuchtigkeit":"normal","Wind":"nein","Spiel":"ja"} -{"Aussicht":"bew\u00f6lkt","Temperatur":"hei\u00dft","Luftfeuchtigkeit":"hoch","Wind":"nein","Spiel":"ja"} -{"Aussicht":"sonnig","Temperatur":"kalt","Luftfeuchtigkeit":"normal","Wind":"nein","Spiel":"ja"} -{"Aussicht":"regnerisch","Temperatur":"mild","Luftfeuchtigkeit":"normal","Wind":"nein","Spiel":"ja"} -{"Aussicht":"sonnig","Temperatur":"kalt","Luftfeuchtigkeit":"normal","Wind":"nein","Spiel":"ja"} -{"Aussicht":"sonnig","Temperatur":"hei\u00df","Luftfeuchtigkeit":"hoch","Wind":"nein","Spiel":"nein"} -{"Aussicht":"regnerisch","Temperatur":"kalt","Luftfeuchtigkeit":"normal","Wind":"ja","Spiel":"nein"} -{"Aussicht":"regnerisch","Temperatur":"mild","Luftfeuchtigkeit":"normal","Wind":"nein","Spiel":"ja"} -{"Aussicht":"bew\u00f6lkt","Temperatur":"hei\u00df","Luftfeuchtigkeit":"normal","Wind":"nein","Spiel":"ja"} -{"Aussicht":"sonnig","Temperatur":"mild","Luftfeuchtigkeit":"hoch","Wind":"nein","Spiel":"nein"} -{"Aussicht":"sonnig","Temperatur":"kalt","Luftfeuchtigkeit":"normal","Wind":"nein","Spiel":"ja"} -{"Aussicht":"regnerisch","Temperatur":"kalt","Luftfeuchtigkeit":"normal","Wind":"ja","Spiel":"nein"} -{"Aussicht":"bew\u00f6lkt","Temperatur":"mild","Luftfeuchtigkeit":"hoch","Wind":"ja","Spiel":"ja"} -{"Aussicht":"regnerisch","Temperatur":"kalt","Luftfeuchtigkeit":"normal","Wind":"nein","Spiel":"ja"} diff --git a/src/Tasks/DecisionTrees/datasets/spiel.csv b/src/Tasks/DecisionTrees/datasets/spiel.csv deleted file mode 100644 index b657791..0000000 --- a/src/Tasks/DecisionTrees/datasets/spiel.csv +++ /dev/null @@ -1,15 +0,0 @@ -Aussicht,Temperatur,Luftfeuchtigkeit,Wind,Spiel -sonnig,heiß,hoch,nein,nein -sonnig,heiß,hoch,ja,nein -bewölkt,heißt,hoch,nein,ja -regnerisch,mild,hoch,nein,ja -regnerisch,kalt,normal,nein,ja -regnerisch,kalt,normal,ja,nein -bewölkt,kalt,normal,ja,ja -sonnig,mild,hoch,nein,nein -sonnig,kalt,normal,nein,ja -regnerisch,mild,normal,nein,ja -sonnig,mild,normal,ja,ja -bewölkt,mild,hoch,ja,ja -bewölkt,heiß,normal,nein,ja -regnerisch,mild,hoch,ja,nein \ No newline at end of file diff --git a/src/Tasks/Experimentieren/generateExperimentierenData.py b/src/Tasks/Experimentieren/generateExperimentierenData.py new file mode 100644 index 0000000..a9a998f --- /dev/null +++ b/src/Tasks/Experimentieren/generateExperimentierenData.py @@ -0,0 +1,7 @@ + + + + + +def generateExperimentierenDataMain(): + return True \ No newline at end of file diff --git a/src/Tasks/Experimentieren/internData/frontendUserData.json b/src/Tasks/Experimentieren/internData/frontendUserData.json new file mode 100644 index 0000000..e69de29 diff --git a/src/Tasks/Experimentieren/wrapperFunctionCallPython.ts b/src/Tasks/Experimentieren/wrapperFunctionCallPython.ts new file mode 100644 index 0000000..cd25bf5 --- /dev/null +++ b/src/Tasks/Experimentieren/wrapperFunctionCallPython.ts @@ -0,0 +1,21 @@ +import fs from "fs"; +const path = require("path"); + +function saveFrontendUserData(userDataObject: Record) : boolean{ + const filePath = path.join(__dirname, "/internData/frontendUserData.json"); + + let jsonString = JSON.stringify(userDataObject, null, 4); + + try { + fs.writeFileSync(filePath, jsonString, "utf-8"); + return true; + } catch (error) { + return false; + } +} + + +export function generateExperimentierenDataMain(userDataObject: any) { + const check = saveFrontendUserData(userDataObject); + return check; +} \ No newline at end of file diff --git a/src/Tasks/Ferment/Input/__init__.py b/src/Tasks/Ferment/Input/__init__.py new file mode 100644 index 0000000..0f2dcb8 --- /dev/null +++ b/src/Tasks/Ferment/Input/__init__.py @@ -0,0 +1,4 @@ + + +#Das Hinzufügen der '__init__.py'-Datei im Input-Verzeichnis ist wichtig, +#damit Python das Input-Verzeichnis als Paket behandelt und die darin enthaltenen Module importieren kann. \ No newline at end of file diff --git a/src/Tasks/Ferment/Input/inputBaseClass.py b/src/Tasks/Ferment/Input/inputBaseClass.py new file mode 100644 index 0000000..d49cb1c --- /dev/null +++ b/src/Tasks/Ferment/Input/inputBaseClass.py @@ -0,0 +1,14 @@ +from abc import ABC, abstractmethod + + + +class InputBase(ABC): + + @abstractmethod + def find_pfad(): + pass + + @abstractmethod + def ladeJson(self): + pass + diff --git a/src/Tasks/Ferment/Input/json_Input.py b/src/Tasks/Ferment/Input/json_Input.py new file mode 100644 index 0000000..4ed3c4a --- /dev/null +++ b/src/Tasks/Ferment/Input/json_Input.py @@ -0,0 +1,106 @@ +import os +import json +from Input.inputBaseClass import InputBase + +class JsonInput(InputBase): + + + + def __init__(self,datei_name): #Konstruktor + self.__jsonName = datei_name # private variable + + # Deklaration des Attributs außerhalb des Konstruktors + __data = None + + def set_data(self,data): + self.__data=data + + def get_data(self): + return self.__data + + def get_jsonName(self): + return self.__jsonName + + def set_jsonName(self, value): + self.__jsonName = value + + + + + + def find_pfad(self): + root_directory = os.path.abspath('src/Tasks/Ferment') # Den absoluten Pfad des Projektnamens ermitteln + + for root, dirs, files in os.walk(root_directory): + for file in files: + if file.lower() == self.__jsonName.lower(): # Wenn die Datei gefunden wurde + return os.path.join(root, file) # Dateipfad zurückgeben, sobald die Datei gefunden wurde + return None # Wenn die Datei nicht gefunden wurde, wird None zurückgegeben + + + def ladeJson(self): + # Vollständiger Pfad zur JSON-Datei + json_path = self.find_pfad() + if json_path is None : + print('Pfad zur Datei nicht gefunden.!!!') + return None + + print('Datei gefunden:', json_path) # Fügen Sie Debugging-Ausgabe hinzu + try: + # Öffne die JSON-Datei und lade sie + with open(json_path, 'r') as file: + data = json.load(file) + self.set_data(data) + + except FileNotFoundError: + print(f"Die Datei '{self.__jsonName}' konnte nicht geladen werden.") + return None + + + def get_Value(self): + ''' + parameter = None + parameter = list(self.__data.keys())[0] + + if parameter == None : + print('Error : Fehler beim Einlesen des Parameters.') + + if isinstance(self.__data[parameter][element], dict): + element_dict = self.__data[parameter][element] + value = list(element_dict.items())[1] + value = value[1] + + else : + value = self.__data[parameter][element] + + + + if isinstance(value, int): + return value + elif isinstance(value,str): + return value + elif isinstance(value,float): + return value + else : + array = [float(val) for val in value] + return array''' + # JSON-String zu Python-Dictionary konvertieren + data = self.__data + + # Array initialisieren + result = [] + + for key, value in data.items(): + if isinstance(value, dict): + result.extend(list(value.values())) + else: + # Wenn der Wert kein Dictionary ist oder kein Array enthält + result.append(value) + + for i, r in enumerate(result): + if isinstance(r, int): + result[i]=int(r) + elif isinstance(r,list): + result[i] = [float(val) for val in r] + + return result diff --git a/src/Tasks/Ferment/berechnungen.py b/src/Tasks/Ferment/berechnungen.py new file mode 100644 index 0000000..26e4013 --- /dev/null +++ b/src/Tasks/Ferment/berechnungen.py @@ -0,0 +1,183 @@ +import pandas as pd +import numpy as np +import os +from scipy.integrate import solve_ivp +from openpyxl import Workbook +from differentialgleichung import ODE_Bioreactor_Monod + + + + +from array import array + + + +def berechnung_der_Tabelle1(parameter_werte,modull,data,zuluft,feed,phasen_anzahl): + #float array deklarieren + const_array= [array('d', [0] * 20) for _ in range(phasen_anzahl)] + + for i in range(phasen_anzahl): + const_array[i][0]=parameter_werte[i][0] + const_array[i][1]=parameter_werte[i][1] + const_array[i][3]=float(zuluft[i]) #0.2 #Modell H7-k7 + const_array[i][4]=0.2095 + const_array[i][5]=0.0004147 + const_array[i][14]=parameter_werte[i][2] + const_array[i][19]=float(feed[i]) #0.1 #Modell H10-K10 + if i == 0: #Phase 1 + + const_array[0][2]=data.get(modull, {}).get("RQ") #SVERWEIS(Modell!$B$3;Tabelle1[#Alle];13;FALSCH) + const_array[0][6]=data.get(modull, {}).get("ks_ox") #SVERWEIS(Modell!$B$3;Tabelle1[#Alle];12;FALSCH) + const_array[0][7]=data.get(modull, {}).get("Yxox") #SVERWEIS(Modell!$B$3;Tabelle1[#Alle];14;FALSCH) + const_array[0][8]=data.get(modull, {}).get("Produktbildung") #SVERWEIS(Modell!$B$3;Tabelle1[#Alle];15;FALSCH) + const_array[0][9]=data.get(modull, {}).get("ap") #SVERWEIS(Modell!$B$3;Tabelle1[#Alle];16;FALSCH) + const_array[0][10]=data.get(modull, {}).get("bp") #SVERWEIS(Modell!$B$3;Tabelle1[#Alle];17;FALSCH) + const_array[0][11]=data.get(modull, {}).get("kp_max") #SVERWEIS(Modell!$B$3;Tabelle1[#Alle];18;FALSCH) + const_array[0][12]=data.get(modull, {}).get("km_s1p") #SVERWEIS(Modell!$B$3;Tabelle1[#Alle];19;FALSCH) + const_array[0][13]=data.get(modull, {}).get("Ypx_mu") #SVERWEIS(Modell!$B$3;Tabelle1[#Alle];20;FALSCH) + const_array[0][15]=data.get(modull, {}).get("Ks_s1x") #SVERWEIS(Modell!$B$3;Tabelle1[#Alle];8;FALSCH) + const_array[0][16]=data.get(modull, {}).get("Yxs1") #SVERWEIS(Modell!$B$3;Tabelle1[#Alle];10;FALSCH) + const_array[0][17]=data.get(modull, {}).get("Ks_s2x") #SVERWEIS(Modell!$B$3;Tabelle1[#Alle];9;FALSCH) + const_array[0][18]=data.get(modull, {}).get("Yxs2") #SVERWEIS(Modell!$B$3;Tabelle1[#Alle];11;FALSCH) + else : #alle anderen Phasen + const_array[i][2]=const_array[i-1][2] + const_array[i][6]=const_array[i-1][6] + const_array[i][7]=const_array[i-1][7] + const_array[i][8]=const_array[i-1][8] + const_array[i][9]=const_array[i-1][9] + const_array[i][10]=const_array[i-1][10] + const_array[i][11]=const_array[i-1][11] + const_array[i][12]=const_array[i-1][12] + const_array[i][13]=const_array[i-1][13] + const_array[i][15]=const_array[i-1][15] + const_array[i][16]=const_array[i-1][16] + const_array[i][17]=const_array[i-1][17] + const_array[i][18]=const_array[i-1][18] + + + # Dezimalstellen nach komma grenzen, maximal 9 Stellen nach komma + for i in range(len(const_array)): + for j in range(len(const_array[i])): + try: + const_array[i][j] = round(float(const_array[i][j]), 9) + except ValueError: + pass + + return const_array + + +def berechnung_der_Tabelle2(dauer,phasen_anzahl): + #float array deklarieren + t_ranges_array= [array('d', [0] * 2) for _ in range(phasen_anzahl)] + + for i in range(phasen_anzahl): + if i == 0: #Phase 1 + t_ranges_array[i][0]=0 + t_ranges_array[i][1]=dauer[i] + else: + t_ranges_array[i][0]=t_ranges_array[i-1][1] + t_ranges_array[i][1]=t_ranges_array[i-1][1]+dauer[i] + return t_ranges_array + + +def berechnung_der_Tabelle3(const_array,startbiomasse,bolus_c,bolus_n,do,phasen_anzahl): + param_array= [array('d', [0] * 7) for _ in range(phasen_anzahl)] + + for i in range(phasen_anzahl): + if i == 0: #Phase 1 + param_array[i][0]=startbiomasse + param_array[i][1]=float(bolus_c[i]) + param_array[i][2]=float(bolus_n[i]) + param_array[i][3]=0 + param_array[i][4]=(const_array[i][0]*do)/100 + param_array[i][5]=const_array[i][4] + param_array[i][6]=const_array[i][5] + else: + param_array[i][1]=float(bolus_c[i]) + param_array[i][2]=float(bolus_n[i]) + + + return param_array + + +def berechnung(t_ranges_array,param_array,const_array_array,phasen_anzahl): + data_rate =10; #Anzahl der Datenpunkte pro Stunde + + t_ranges_array = np.array(t_ranges_array) + param_array = np.array(param_array) + const_array_array = np.array(const_array_array) + + + t_combined = np.array([]) + y_combined = np.array([]) + cum_feeding = np.array([]) + + for i in range(phasen_anzahl): + print(i) + if(i==0): + y0=param_array[i,:] #erste Zeile aus Dim. Array als vektor + else: + + + mx_0 = ry[-1, 0] # Biotrockenmasse in g/L + cs1_0 = ry[-1, 1] + param_array[i,1] # Konz. Substrat 1 in g/L + cs2_0 = ry[-1, 2] + param_array[i,2] # Konz. Substrat 1 in g/L + cp_0 = ry[-1, 3] # Konz. Produkt in g/L + c_ox_0 = ry[-1, 4] # Konz. Gelöstsauerstoff in g/L zum Start der Fermentation + O2_Out = ry[-1, 5] # Konz. O2 in Abluft + CO2_Out = ry[-1, 6] # Konz. CO2 in Abluft + + y0 =[mx_0,cs1_0,cs2_0, cp_0,c_ox_0, O2_Out, CO2_Out] #Startparameter in Vektor + + + t_start=t_ranges_array[i,0] + t_end=t_ranges_array[i,1] + + if t_start != t_end: + num1=int(data_rate * (t_end - t_start)) + t_span = np.linspace(t_start, t_end, num=num1) # Zeitvektor bauen + #Loesen der DGL im Zeitabschnitt + consts = const_array_array[i,:] + #print('computing Phase', i) + + + sol = solve_ivp(ODE_Bioreactor_Monod, [t_start, t_end], y0, args=(consts,), t_eval=t_span, atol=1e-9, rtol=1e-9) + ry = sol.y + ry = ry.T + rt = sol.t + + #Ergebnisse zum Gesamtvektor hinzufügen + if (i == 0): + y_combined = ry + #y_combined=y_combined.T + t_combined = rt + cum_feeding = t_span * consts[19] + + else: + + #if len(t_span) == len(t_combined): # Überprüfung der Länge der Zeitvektoren + y_combined = np.vstack((y_combined, ry)) + #y_combined=y_combined.T + #print(y_combined) + t_combined = np.hstack((t_combined,rt)) + cum_feeding = np.hstack((cum_feeding, t_span * consts[19])) + + + #else: + #print("Warning: Time vectors have different lengths. Skipping this phase.") + + + + + #Weiter variablen-Zuweisungen fürs PLotten + + c_ox_sat=const_array_array[0,0] + cum_feeding=cum_feeding.T + + + + return (c_ox_sat,y_combined,t_combined,cum_feeding) + + + + diff --git a/src/Tasks/Ferment/data.json b/src/Tasks/Ferment/data.json new file mode 100644 index 0000000..0b1a7a6 --- /dev/null +++ b/src/Tasks/Ferment/data.json @@ -0,0 +1,1662 @@ +{ + "data_1": { + "labels": [ + 0, + 0.10101010101010101, + 0.20202020202020202, + 0.30303030303030304, + 0.40404040404040403, + 0.5050505050505051, + 0.6060606060606061, + 0.7070707070707071, + 0.8080808080808081, + 0.9090909090909091, + 1.0101010101010102, + 1.1111111111111112, + 1.2121212121212122, + 1.3131313131313131, + 1.4141414141414141, + 1.5151515151515151, + 1.6161616161616161, + 1.7171717171717171, + 1.8181818181818181, + 1.9191919191919191, + 2.0202020202020203, + 2.121212121212121, + 2.2222222222222223, + 2.323232323232323, + 2.4242424242424243, + 2.525252525252525, + 2.6262626262626263, + 2.727272727272727, + 2.8282828282828283, + 2.929292929292929, + 3.0303030303030303, + 3.131313131313131, + 3.2323232323232323, + 3.3333333333333335, + 3.4343434343434343, + 3.5353535353535355, + 3.6363636363636362, + 3.7373737373737375, + 3.8383838383838382, + 3.9393939393939394, + 4.040404040404041, + 4.141414141414141, + 4.242424242424242, + 4.343434343434343, + 4.444444444444445, + 4.545454545454545, + 4.646464646464646, + 4.747474747474747, + 4.848484848484849, + 4.94949494949495, + 5.05050505050505, + 5.151515151515151, + 5.252525252525253, + 5.353535353535354, + 5.454545454545454, + 5.555555555555555, + 5.656565656565657, + 5.757575757575758, + 5.858585858585858, + 5.959595959595959, + 6.0606060606060606, + 6.161616161616162, + 6.262626262626262, + 6.363636363636363, + 6.4646464646464645, + 6.565656565656566, + 6.666666666666667, + 6.767676767676767, + 6.8686868686868685, + 6.96969696969697, + 7.070707070707071, + 7.171717171717171, + 7.2727272727272725, + 7.373737373737374, + 7.474747474747475, + 7.575757575757575, + 7.6767676767676765, + 7.777777777777778, + 7.878787878787879, + 7.979797979797979, + 8.080808080808081, + 8.181818181818182, + 8.282828282828282, + 8.383838383838384, + 8.484848484848484, + 8.585858585858587, + 8.686868686868687, + 8.787878787878787, + 8.88888888888889, + 8.98989898989899, + 9.09090909090909, + 9.191919191919192, + 9.292929292929292, + 9.393939393939394, + 9.494949494949495, + 9.595959595959595, + 9.696969696969697, + 9.797979797979798, + 9.8989898989899, + 10, + 10, + 10.1010101010101, + 10.202020202020202, + 10.303030303030303, + 10.404040404040405, + 10.505050505050505, + 10.606060606060606, + 10.707070707070708, + 10.808080808080808, + 10.909090909090908, + 11.01010101010101, + 11.11111111111111, + 11.212121212121213, + 11.313131313131313, + 11.414141414141413, + 11.515151515151516, + 11.616161616161616, + 11.717171717171716, + 11.818181818181818, + 11.919191919191919, + 12.02020202020202, + 12.121212121212121, + 12.222222222222221, + 12.323232323232324, + 12.424242424242424, + 12.525252525252526, + 12.626262626262626, + 12.727272727272727, + 12.828282828282829, + 12.929292929292929, + 13.030303030303031, + 13.131313131313131, + 13.232323232323232, + 13.333333333333334, + 13.434343434343434, + 13.535353535353536, + 13.636363636363637, + 13.737373737373737, + 13.838383838383837, + 13.93939393939394, + 14.040404040404042, + 14.141414141414142, + 14.242424242424242, + 14.343434343434343, + 14.444444444444445, + 14.545454545454545, + 14.646464646464647, + 14.747474747474747, + 14.848484848484848, + 14.94949494949495, + 15.05050505050505, + 15.151515151515152, + 15.252525252525253, + 15.353535353535353, + 15.454545454545453, + 15.555555555555555, + 15.656565656565657, + 15.757575757575758, + 15.858585858585858, + 15.959595959595958, + 16.060606060606062, + 16.161616161616163, + 16.262626262626263, + 16.363636363636363, + 16.464646464646464, + 16.565656565656568, + 16.666666666666668, + 16.767676767676768, + 16.86868686868687, + 16.96969696969697, + 17.070707070707073, + 17.17171717171717, + 17.272727272727273, + 17.373737373737374, + 17.474747474747474, + 17.575757575757574, + 17.676767676767675, + 17.77777777777778, + 17.87878787878788, + 17.97979797979798, + 18.080808080808083, + 18.18181818181818, + 18.282828282828284, + 18.383838383838384, + 18.484848484848484, + 18.58585858585859, + 18.686868686868685, + 18.78787878787879, + 18.88888888888889, + 18.98989898989899, + 19.09090909090909, + 19.19191919191919, + 19.292929292929294, + 19.393939393939394, + 19.494949494949495, + 19.595959595959595, + 19.696969696969695, + 19.7979797979798, + 19.8989898989899, + 20 + ], + "datasets": [ + { + "label": "cₓ", + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "borderColor": "#66c2a5", + "backgroundColor": "#66c2a5", + "tension": 0.1 + }, + { + "label": "cₛ₁", + "data": [ + 1, + 1.1010101010101014, + 1.2020202020202022, + 1.303030303030303, + 1.404040404040404, + 1.5050505050505047, + 1.6060606060606055, + 1.7070707070707063, + 1.8080808080808073, + 1.9090909090909078, + 2.0101010101010086, + 2.1111111111111094, + 2.2121212121212097, + 2.3131313131313096, + 2.4141414141414104, + 2.5151515151515103, + 2.616161616161611, + 2.7171717171717114, + 2.8181818181818117, + 2.9191919191919125, + 3.020202020202013, + 3.1212121212121136, + 3.2222222222222148, + 3.3232323232323155, + 3.4242424242424168, + 3.5252525252525175, + 3.6262626262626187, + 3.7272727272727195, + 3.8282828282828207, + 3.9292929292929215, + 4.030303030303022, + 4.131313131313121, + 4.232323232323221, + 4.333333333333323, + 4.434343434343423, + 4.535353535353522, + 4.636363636363622, + 4.737373737373722, + 4.838383838383821, + 4.939393939393921, + 5.040404040404021, + 5.1414141414141215, + 5.242424242424223, + 5.343434343434324, + 5.444444444444425, + 5.545454545454525, + 5.646464646464627, + 5.747474747474728, + 5.848484848484829, + 5.94949494949493, + 6.050505050505031, + 6.151515151515132, + 6.252525252525233, + 6.353535353535334, + 6.454545454545435, + 6.555555555555536, + 6.656565656565637, + 6.757575757575738, + 6.858585858585839, + 6.95959595959594, + 7.060606060606041, + 7.161616161616142, + 7.262626262626243, + 7.363636363636344, + 7.464646464646445, + 7.565656565656546, + 7.666666666666647, + 7.767676767676748, + 7.868686868686849, + 7.96969696969695, + 8.07070707070705, + 8.171717171717148, + 8.272727272727249, + 8.373737373737349, + 8.47474747474745, + 8.575757575757548, + 8.676767676767648, + 8.777777777777745, + 8.878787878787843, + 8.979797979797944, + 9.080808080808044, + 9.181818181818144, + 9.282828282828245, + 9.383838383838347, + 9.484848484848447, + 9.58585858585855, + 9.68686868686865, + 9.78787878787875, + 9.888888888888852, + 9.989898989898952, + 10.090909090909053, + 10.191919191919155, + 10.292929292929255, + 10.393939393939357, + 10.494949494949458, + 10.595959595959558, + 10.69696969696966, + 10.79797979797976, + 10.898989898989862, + 10.999999999999963, + 11.999999999999963, + 12.101010101010063, + 12.202020202020165, + 12.303030303030265, + 12.404040404040368, + 12.505050505050468, + 12.606060606060568, + 12.70707070707067, + 12.80808080808077, + 12.909090909090871, + 13.010101010100973, + 13.111111111111073, + 13.212121212121176, + 13.313131313131276, + 13.414141414141376, + 13.515151515151478, + 13.616161616161579, + 13.717171717171679, + 13.818181818181781, + 13.919191919191881, + 14.020202020201983, + 14.121212121212084, + 14.222222222222184, + 14.323232323232286, + 14.424242424242387, + 14.525252525252489, + 14.626262626262589, + 14.72727272727269, + 14.828282828282791, + 14.929292929292892, + 15.030303030302994, + 15.131313131313094, + 15.232323232323195, + 15.333333333333297, + 15.434343434343397, + 15.535353535353499, + 15.6363636363636, + 15.7373737373737, + 15.8383838383838, + 15.939393939393902, + 16.040404040404006, + 16.141414141414106, + 16.242424242424203, + 16.343434343434303, + 16.444444444444404, + 16.545454545454504, + 16.646464646464608, + 16.747474747474705, + 16.848484848484805, + 16.949494949494905, + 17.05050505050501, + 17.15151515151511, + 17.25252525252521, + 17.35353535353531, + 17.45454545454541, + 17.555555555555515, + 17.656565656565615, + 17.757575757575715, + 17.858585858585815, + 17.959595959595916, + 18.06060606060602, + 18.16161616161612, + 18.26262626262622, + 18.36363636363632, + 18.46464646464642, + 18.565656565656525, + 18.666666666666625, + 18.767676767676726, + 18.868686868686826, + 18.969696969696926, + 19.07070707070703, + 19.171717171717127, + 19.27272727272723, + 19.37373737373733, + 19.47474747474743, + 19.57575757575753, + 19.676767676767632, + 19.777777777777736, + 19.878787878787836, + 19.979797979797937, + 20.08080808080804, + 20.181818181818137, + 20.28282828282824, + 20.38383838383834, + 20.484848484848442, + 20.585858585858546, + 20.686868686868642, + 20.787878787878746, + 20.888888888888847, + 20.989898989898947, + 21.090909090909047, + 21.191919191919148, + 21.29292929292925, + 21.393939393939352, + 21.494949494949452, + 21.595959595959553, + 21.696969696969653, + 21.797979797979757, + 21.898989898989857, + 21.999999999999957 + ], + "borderColor": "#fc8d62", + "backgroundColor": "#fc8d62", + "tension": 0.1 + }, + { + "label": "cₚ", + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "borderColor": "#e78ac3", + "backgroundColor": "#e78ac3", + "tension": 0.1 + }, + { + "label": "cₒ₂", + "data": [ + 0, + 99.99988473614809, + 99.9999968144231, + 100.00000585175144, + 100.00000214194999, + 99.99999992125679, + 99.99999903978505, + 99.99999256073751, + 99.99999166057597, + 99.99999651544795, + 100.00000410864114, + 100.00000158537796, + 100.00000049749842, + 99.9999984951707, + 99.99999654143951, + 99.99999668709701, + 99.99999906798645, + 100.00000163012865, + 100.00000072893478, + 100.00000524522017, + 100.00000408669555, + 99.99999893743143, + 99.99999390683378, + 99.99999122766133, + 99.99999398137118, + 100.0000004816493, + 100.00000460730412, + 100.00000105137357, + 99.99999922467539, + 99.99999713183783, + 99.99999633243573, + 99.99999819662725, + 100.00000082018876, + 100.00000274467871, + 100.00000158186171, + 100.00000567603362, + 100.00000117125283, + 99.99999557371798, + 99.9999916259302, + 99.99999230631953, + 99.99999687456568, + 100.00000400800705, + 100.00000417850991, + 99.99999997017744, + 99.99999783916965, + 99.99999638276566, + 99.99999743283912, + 99.99999993988293, + 100.00000220247082, + 100.00000315260944, + 100.00000153051364, + 100.00000439830603, + 99.99999771492041, + 99.99999268795202, + 99.99999115005853, + 99.99999499484655, + 99.99999957588861, + 100.00000643715943, + 100.00000288133954, + 99.99999859680841, + 99.99999677217828, + 99.99999683636895, + 99.99999905555642, + 100.00000150819217, + 100.00000298730991, + 100.00000280335118, + 100.0000006580591, + 100.00000165607459, + 99.99999427936076, + 99.99999105610743, + 99.99999313832336, + 99.99999788885951, + 100.00000159234943, + 100.00000736956531, + 100.0000008858835, + 99.99999729014853, + 99.99999656596259, + 99.9999982240768, + 100.00000071340291, + 100.000002612913, + 100.0000030562743, + 100.00000175074821, + 99.99999919141396, + 99.99999795478342, + 99.9999915789029, + 99.99999160175949, + 99.99999600965178, + 100.00000037928403, + 100.00000262145032, + 100.00000664928639, + 99.99999847812964, + 99.99999651859663, + 99.99999757029894, + 99.99999987424387, + 100.00000206396669, + 100.00000307417845, + 100.00000239688882, + 100.00000015466577, + 99.99999750334982, + 99.99999720267459, + 99.99999720267459, + 99.99999923547065, + 100.00000098128493, + 100.00000226952537, + 99.99999844432568, + 99.99999824086585, + 100.00000307740657, + 99.99999708321167, + 100.00000021512103, + 100.00000345472995, + 99.99999363954272, + 100.00000404673048, + 100.00000164451497, + 99.99999129552351, + 100.00000495612005, + 99.99999484941245, + 99.9999980564804, + 100.0000007330309, + 99.99999553149254, + 100.00000209132054, + 99.99999651619133, + 100.00000140501764, + 100.00000124197521, + 99.99999513968277, + 100.00000563309537, + 99.99999839371434, + 99.99999483470583, + 100.00000662812376, + 99.9999923258568, + 99.9999991338983, + 100.0000004340921, + 99.99999479253036, + 100.00000178034571, + 99.99999584024619, + 100.00000158751847, + 99.9999995186764, + 99.99999777437704, + 100.00000486184813, + 99.99999582287333, + 99.99999987384605, + 100.00000627180769, + 99.99999009361055, + 100.00000183536027, + 99.9999998873532, + 99.99999368037717, + 100.00000183524233, + 99.99999487058551, + 100.00000133110653, + 99.99999838745859, + 99.99999952489902, + 100.0000029741864, + 99.99999514353779, + 100.00000379673808, + 100.0000033286199, + 99.99999028272775, + 100.00000174321725, + 99.99999659446397, + 99.99999885896837, + 100.00000023343038, + 99.99999745208956, + 100.00000287167677, + 99.99999723388754, + 100.0000009603228, + 100.00000547741583, + 99.99999230502446, + 99.99999966577124, + 99.99999964580486, + 99.99999644401748, + 100.00000153605271, + 99.99999632509028, + 100.00000226235383, + 99.99999974060245, + 99.99999703216184, + 100.00000640240197, + 99.9999962850994, + 99.99999592053771, + 100.00000201016806, + 99.9999942833474, + 100.00000146737943, + 99.99999759110243, + 100.0000003088164, + 100.00000191004743, + 99.99999530791274, + 100.00000498964661, + 100.00000073954969, + 99.99999233453629, + 100.00000262904807, + 99.9999953639255, + 100.00000002108045, + 99.99999968421064, + 99.99999784487643, + 100.00000305012688, + 99.99999632592319, + 100.00000188825626, + 100.0000042604573, + 99.99999157124171, + 100.00000123653301, + 99.99999831351938, + 99.9999965694291, + 99.99999895620446 + ], + "borderColor": "#a6d854", + "backgroundColor": "#a6d854", + "tension": 0.1 + }, + { + "label": "cum Feed", + "data": [ + 0, + 0.10101010101010101, + 0.20202020202020202, + 0.30303030303030304, + 0.40404040404040403, + 0.5050505050505051, + 0.6060606060606061, + 0.7070707070707071, + 0.8080808080808081, + 0.9090909090909091, + 1.0101010101010102, + 1.1111111111111112, + 1.2121212121212122, + 1.3131313131313131, + 1.4141414141414141, + 1.5151515151515151, + 1.6161616161616161, + 1.7171717171717171, + 1.8181818181818181, + 1.9191919191919191, + 2.0202020202020203, + 2.121212121212121, + 2.2222222222222223, + 2.323232323232323, + 2.4242424242424243, + 2.525252525252525, + 2.6262626262626263, + 2.727272727272727, + 2.8282828282828283, + 2.929292929292929, + 3.0303030303030303, + 3.131313131313131, + 3.2323232323232323, + 3.3333333333333335, + 3.4343434343434343, + 3.5353535353535355, + 3.6363636363636362, + 3.7373737373737375, + 3.8383838383838382, + 3.9393939393939394, + 4.040404040404041, + 4.141414141414141, + 4.242424242424242, + 4.343434343434343, + 4.444444444444445, + 4.545454545454545, + 4.646464646464646, + 4.747474747474747, + 4.848484848484849, + 4.94949494949495, + 5.05050505050505, + 5.151515151515151, + 5.252525252525253, + 5.353535353535354, + 5.454545454545454, + 5.555555555555555, + 5.656565656565657, + 5.757575757575758, + 5.858585858585858, + 5.959595959595959, + 6.0606060606060606, + 6.161616161616162, + 6.262626262626262, + 6.363636363636363, + 6.4646464646464645, + 6.565656565656566, + 6.666666666666667, + 6.767676767676767, + 6.8686868686868685, + 6.96969696969697, + 7.070707070707071, + 7.171717171717171, + 7.2727272727272725, + 7.373737373737374, + 7.474747474747475, + 7.575757575757575, + 7.6767676767676765, + 7.777777777777778, + 7.878787878787879, + 7.979797979797979, + 8.080808080808081, + 8.181818181818182, + 8.282828282828282, + 8.383838383838384, + 8.484848484848484, + 8.585858585858587, + 8.686868686868687, + 8.787878787878787, + 8.88888888888889, + 8.98989898989899, + 9.09090909090909, + 9.191919191919192, + 9.292929292929292, + 9.393939393939394, + 9.494949494949495, + 9.595959595959595, + 9.696969696969697, + 9.797979797979798, + 9.8989898989899, + 10, + 10, + 10.1010101010101, + 10.202020202020202, + 10.303030303030303, + 10.404040404040405, + 10.505050505050505, + 10.606060606060606, + 10.707070707070708, + 10.808080808080808, + 10.909090909090908, + 11.01010101010101, + 11.11111111111111, + 11.212121212121213, + 11.313131313131313, + 11.414141414141413, + 11.515151515151516, + 11.616161616161616, + 11.717171717171716, + 11.818181818181818, + 11.919191919191919, + 12.02020202020202, + 12.121212121212121, + 12.222222222222221, + 12.323232323232324, + 12.424242424242424, + 12.525252525252526, + 12.626262626262626, + 12.727272727272727, + 12.828282828282829, + 12.929292929292929, + 13.030303030303031, + 13.131313131313131, + 13.232323232323232, + 13.333333333333334, + 13.434343434343434, + 13.535353535353536, + 13.636363636363637, + 13.737373737373737, + 13.838383838383837, + 13.93939393939394, + 14.040404040404042, + 14.141414141414142, + 14.242424242424242, + 14.343434343434343, + 14.444444444444445, + 14.545454545454545, + 14.646464646464647, + 14.747474747474747, + 14.848484848484848, + 14.94949494949495, + 15.05050505050505, + 15.151515151515152, + 15.252525252525253, + 15.353535353535353, + 15.454545454545453, + 15.555555555555555, + 15.656565656565657, + 15.757575757575758, + 15.858585858585858, + 15.959595959595958, + 16.060606060606062, + 16.161616161616163, + 16.262626262626263, + 16.363636363636363, + 16.464646464646464, + 16.565656565656568, + 16.666666666666668, + 16.767676767676768, + 16.86868686868687, + 16.96969696969697, + 17.070707070707073, + 17.17171717171717, + 17.272727272727273, + 17.373737373737374, + 17.474747474747474, + 17.575757575757574, + 17.676767676767675, + 17.77777777777778, + 17.87878787878788, + 17.97979797979798, + 18.080808080808083, + 18.18181818181818, + 18.282828282828284, + 18.383838383838384, + 18.484848484848484, + 18.58585858585859, + 18.686868686868685, + 18.78787878787879, + 18.88888888888889, + 18.98989898989899, + 19.09090909090909, + 19.19191919191919, + 19.292929292929294, + 19.393939393939394, + 19.494949494949495, + 19.595959595959595, + 19.696969696969695, + 19.7979797979798, + 19.8989898989899, + 20 + ], + "borderColor": "#FFD700", + "backgroundColor": "#FFD700", + "tension": 0.1 + } + ] + }, + "data_2": { + "labels": [ + 0, + 0.10101010101010101, + 0.20202020202020202, + 0.30303030303030304, + 0.40404040404040403, + 0.5050505050505051, + 0.6060606060606061, + 0.7070707070707071, + 0.8080808080808081, + 0.9090909090909091, + 1.0101010101010102, + 1.1111111111111112, + 1.2121212121212122, + 1.3131313131313131, + 1.4141414141414141, + 1.5151515151515151, + 1.6161616161616161, + 1.7171717171717171, + 1.8181818181818181, + 1.9191919191919191, + 2.0202020202020203, + 2.121212121212121, + 2.2222222222222223, + 2.323232323232323, + 2.4242424242424243, + 2.525252525252525, + 2.6262626262626263, + 2.727272727272727, + 2.8282828282828283, + 2.929292929292929, + 3.0303030303030303, + 3.131313131313131, + 3.2323232323232323, + 3.3333333333333335, + 3.4343434343434343, + 3.5353535353535355, + 3.6363636363636362, + 3.7373737373737375, + 3.8383838383838382, + 3.9393939393939394, + 4.040404040404041, + 4.141414141414141, + 4.242424242424242, + 4.343434343434343, + 4.444444444444445, + 4.545454545454545, + 4.646464646464646, + 4.747474747474747, + 4.848484848484849, + 4.94949494949495, + 5.05050505050505, + 5.151515151515151, + 5.252525252525253, + 5.353535353535354, + 5.454545454545454, + 5.555555555555555, + 5.656565656565657, + 5.757575757575758, + 5.858585858585858, + 5.959595959595959, + 6.0606060606060606, + 6.161616161616162, + 6.262626262626262, + 6.363636363636363, + 6.4646464646464645, + 6.565656565656566, + 6.666666666666667, + 6.767676767676767, + 6.8686868686868685, + 6.96969696969697, + 7.070707070707071, + 7.171717171717171, + 7.2727272727272725, + 7.373737373737374, + 7.474747474747475, + 7.575757575757575, + 7.6767676767676765, + 7.777777777777778, + 7.878787878787879, + 7.979797979797979, + 8.080808080808081, + 8.181818181818182, + 8.282828282828282, + 8.383838383838384, + 8.484848484848484, + 8.585858585858587, + 8.686868686868687, + 8.787878787878787, + 8.88888888888889, + 8.98989898989899, + 9.09090909090909, + 9.191919191919192, + 9.292929292929292, + 9.393939393939394, + 9.494949494949495, + 9.595959595959595, + 9.696969696969697, + 9.797979797979798, + 9.8989898989899, + 10, + 10, + 10.1010101010101, + 10.202020202020202, + 10.303030303030303, + 10.404040404040405, + 10.505050505050505, + 10.606060606060606, + 10.707070707070708, + 10.808080808080808, + 10.909090909090908, + 11.01010101010101, + 11.11111111111111, + 11.212121212121213, + 11.313131313131313, + 11.414141414141413, + 11.515151515151516, + 11.616161616161616, + 11.717171717171716, + 11.818181818181818, + 11.919191919191919, + 12.02020202020202, + 12.121212121212121, + 12.222222222222221, + 12.323232323232324, + 12.424242424242424, + 12.525252525252526, + 12.626262626262626, + 12.727272727272727, + 12.828282828282829, + 12.929292929292929, + 13.030303030303031, + 13.131313131313131, + 13.232323232323232, + 13.333333333333334, + 13.434343434343434, + 13.535353535353536, + 13.636363636363637, + 13.737373737373737, + 13.838383838383837, + 13.93939393939394, + 14.040404040404042, + 14.141414141414142, + 14.242424242424242, + 14.343434343434343, + 14.444444444444445, + 14.545454545454545, + 14.646464646464647, + 14.747474747474747, + 14.848484848484848, + 14.94949494949495, + 15.05050505050505, + 15.151515151515152, + 15.252525252525253, + 15.353535353535353, + 15.454545454545453, + 15.555555555555555, + 15.656565656565657, + 15.757575757575758, + 15.858585858585858, + 15.959595959595958, + 16.060606060606062, + 16.161616161616163, + 16.262626262626263, + 16.363636363636363, + 16.464646464646464, + 16.565656565656568, + 16.666666666666668, + 16.767676767676768, + 16.86868686868687, + 16.96969696969697, + 17.070707070707073, + 17.17171717171717, + 17.272727272727273, + 17.373737373737374, + 17.474747474747474, + 17.575757575757574, + 17.676767676767675, + 17.77777777777778, + 17.87878787878788, + 17.97979797979798, + 18.080808080808083, + 18.18181818181818, + 18.282828282828284, + 18.383838383838384, + 18.484848484848484, + 18.58585858585859, + 18.686868686868685, + 18.78787878787879, + 18.88888888888889, + 18.98989898989899, + 19.09090909090909, + 19.19191919191919, + 19.292929292929294, + 19.393939393939394, + 19.494949494949495, + 19.595959595959595, + 19.696969696969695, + 19.7979797979798, + 19.8989898989899, + 20 + ], + "datasets": [ + { + "label": "cₛ₂", + "data": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2 + ], + "borderColor": "#8da0cb", + "backgroundColor": "#8da0cb", + "tension": 0.1 + } + ] + } +} \ No newline at end of file diff --git a/src/Tasks/Ferment/differentialgleichung.py b/src/Tasks/Ferment/differentialgleichung.py new file mode 100644 index 0000000..29d59da --- /dev/null +++ b/src/Tasks/Ferment/differentialgleichung.py @@ -0,0 +1,95 @@ + + + +import numpy as np + + + +def ODE_Bioreactor_Monod(t, p, consts) : + + + #Entnehmen der Kostanten aus consts + + c_ox_sat = consts[0] #Sauerstofflöslichkeit in der Fermentation + kla = consts[1] #kla Wert in 1/h Info eine OTR von 100 mmol/(L*h) entspricht bei DO=0% ~ einem kla von 400 1/h + RQ = consts[2] #Respiratory Coefficient + Begasungsrate = consts[3] #Begasungsrate in NL(Luft)/(L(Kulturbrühe)*min) quasi vvm + c_O2_Luft = consts[4] #Sauerstoffgehalt Luft in mol/L + c_CO2_Luft = consts[5] #CO2 Gehalt der Luft in mol/L + ks_ox = consts[6] #Halbsaettigungskonstante Sauerstoff in g/L + Yxox = consts[7] #Ausbeutekoeffizient g Biomasse je g Sauerstoff nach HArvard Bionumbers für E.coli + P=consts[8] #Produktbildung an =1 oder aus =0 + ap = consts[9] #Luedking Piret Parameter für wachsumassoziierte Produktbildung + bp = consts[10] #Luedking Piret Parameter für nicht wachsumassoziierte Produktbildung + kp_max = consts[11] #maximale spezifische Produktbildungsrate in g(P)/(g(x)*L*h) nicht wachstumsassoziierte Produktbildung + km_s1p = consts[12] #Km Wert in Analogie zur Michaelis Menten-Gleichung für die Bildung von P aus S - nicht wachstumsassoziiert + Ypx_mu = consts[13] #Ausbeutekoeffizient Produktbildung direkt wachstumsassoziiert aus Substrat + mumax =consts[14] #maximale Wachstumsrate in 1/h + ks_s1x=consts[15] #Halbsaettigungskonstante Substrat in g/L für Berechnung von Wachstumsrat µ + Yxs1=consts[16] #Ausbeutekoeff fuer Zellmasse in g/g + ks_s2x=consts[17] #Halbsaettigungskonstante Ks für Substrat S2 in g/L für Berechnung von Wachstumsrat µ + Yxs2=consts[18] #Ausbeutekoeff fuer Zellmasse auf Substrat 2 1 in g/g + feed_s1=consts[19] #Feedrate Substrat 1 in g/L*h + + + #Zuweisungen der Eingangswerte / = Konzentrationen die das Model berechnet + + cx = p[0] #Konzentration Biotrockenmasse in g/L + cs1 = p[1] #Substratkonzentration 1 in g/L + cs2 = p[2] #Substratkonzentration 2 in g/L + cp = p[3] #Produktkonzentration in g/L + c_ox = p[4] #Gelöstsaurestoffkonznetration in g/L + c_O2_Out = p[5] #Abluftkonzentration O2 + c_CO2_Out = p[6] #Abluftkonzentration CO2 + + #Nebenrechnungen + + Vm_norm=22.41950113 #molares Volumen bei Normbedingungen + Luft_In=Begasungsrate*60 #ZuLuftstrom Luft in NL/(L_Brühe*h) + Luft_Out=Luft_In #Molenstrom Abluft in mol/(L*h) ; evtl. mal erweitern wenn Luft_Out <> Luft_In + #Sauerstoff als limitierendes Substrat + OTR=kla*(c_ox_sat - c_ox) #in g/(L*h) + + + #Modellgleichungen + #spez. Wachstumsrate + mu_s = mumax*cs1/(ks_s1x+cs1)*cs2/(ks_s2x+cs2)*c_ox/(ks_ox+c_ox); # Monod Kinetik fuer spezifische Wachstumsrate + #k_ox = 0.01*cs1/(ks_ox+cs1); %nicht wachstumsabhängige Sauerstoffverbrauchsrate, beschrieben als MichaMenten Kinetik %%%%CHANGE!! + #Produktbildungsrate + kp = kp_max*cs1/(km_s1p+cs1); #Michaelis Menten Kinetik für nicht wachstumssassoziierte Produktbildung + + #OUR=cx*(mu_s/Yxox-k_ox); + OUR=cx*(mu_s/Yxox); + #Begasung / Sauerstoff + CER=OUR/32*RQ; #Umrechung von g/L in mol/L + + + + value_0 = float(mu_s * cx) + + #Substratverbrauchsgeschwindigkeit Substrat 1 durch Biomassebildung und Produktbildung + value_1= float(cx*(-mu_s/Yxs1)-P*((mu_s*cx*Ypx_mu)*ap+(cx*kp)*bp)+feed_s1) + + #Substratverbrauchsgeschwindigkeit Substrat 2 durch Biomassebildung NICHT Genutzt zur Produktbildung Produktbildung + value_2= float(cx*(-(mu_s/Yxs2))) + + #Produktbildung nach Luedeking Piret; + value_3= float(P*((mu_s*cx*Ypx_mu)*ap+(cx*kp)*bp)) + + #Berechnung Gelöstsauerstoffkonzentration (OTR-OUR) mit Nebenbedingung + #darf nicht NUll sein + value_4= float(kla*(c_ox_sat-c_ox)-cx*(mu_s/Yxox)) + + #Berechnung O2-gehalt in Vol% Abluf IN Analogie zu einem CSTR F(C_in-Cout)-Reaktion + value_5= float(Luft_In*c_O2_Luft-Luft_Out*c_O2_Out-OUR/32*Vm_norm) + + #Berechnung CO2-gehalt in Vol% Abluf IN Analogie zu einem CSTR F(C_in-Cout)-Reaktion + value_6= float(Luft_In*c_CO2_Luft-Luft_Out*c_CO2_Out+CER*Vm_norm) + + retval = np.array([value_0,value_1,value_2,value_3,value_4,value_5,value_6]) + + + return retval + + + diff --git a/src/Tasks/Ferment/excel_export.py b/src/Tasks/Ferment/excel_export.py new file mode 100644 index 0000000..962c82b --- /dev/null +++ b/src/Tasks/Ferment/excel_export.py @@ -0,0 +1,52 @@ +from openpyxl import Workbook +import os +from pathlib import Path +from io import BytesIO + +def export_to_excel(filename, t_combined, y_combined, cum_feeding): + y_combined = y_combined.T + + # Attempt to get the user's Downloads folder + downloads_path = Path.home() / "Downloads" + + # Check if Downloads path exists; if not, create it (optional) + if not downloads_path.exists(): + print("Downloads folder not found.") + return + + # Combine the Downloads folder path with the provided filename + file_path = downloads_path / filename + + # If the file already exists, remove it + if os.path.exists(file_path): + os.remove(file_path) + + wb = Workbook() + ws = wb.active + + caption = ['t', 'Biotrockenmasse (cx)', 'Konz. Substrat 1 (cs1)', 'Konz. Substrat 2 (cs2)', + 'Konz. Produkt (cp)', 'c_O2 (Lösung)', 'c_O2 (Abluft)', 'c_CO2 (Abluft)', + 'kumulatives Feeding Substrat 1'] + + # Write headers + for i, header in enumerate(caption): + ws.cell(row=1, column=i + 1, value=header) + + # Write data + for i in range(len(t_combined)): + row_data = [t_combined[i]] + [y_combined[j, i] for j in range(y_combined.shape[0])] + [cum_feeding[i]] + for j, value in enumerate(row_data): + ws.cell(row=i + 2, column=j + 1, value=value) + + # Save the file in the correct Downloads folder + wb.save(file_path) + + #print(f"File saved to: {file_path}") + + + file_obj = BytesIO() + wb.save(file_obj) + file_obj.seek(0) + + return file_obj + diff --git a/src/Tasks/Ferment/feedback_schaetzung.py b/src/Tasks/Ferment/feedback_schaetzung.py new file mode 100644 index 0000000..9e638a6 --- /dev/null +++ b/src/Tasks/Ferment/feedback_schaetzung.py @@ -0,0 +1,140 @@ +import json + +import json + +def feedback_schatzung(): + # Lade Loesung aus der JSON-Datei + with open('src/Tasks/FermentExercises/parameter_loesung.json', 'r') as loesung_file: + loesung = json.load(loesung_file) + + # Lade Schaetzung aus der JSON-Datei + with open('src/Tasks/Ferment/nutzer_eingaben.json', 'r') as schatzung_file: + schatzung = json.load(schatzung_file) + + # Initialisiere ein Dictionary fuer das Feedback + feedback = {"Feedback": {}} + + # Vergleiche die Schaetzungen mit den Loesungen fuer jede Phase + for param in loesung: # Iteration ueber Parameter (z. B. "Feed", "Zuluft") + if isinstance(loesung[param], dict): + if param not in feedback["Feedback"]: + feedback["Feedback"][param] = {} # Initialisierung des Parameters im Feedback + + for phase in loesung[param]: # Iteration ueber die Phasen (Phase_0, Phase_1, ...) + phase_feedback = { + "status": "", + "message": "" + } + + print(f"Vergleich fuer {param} - {phase}:") + + # Loesung und Schaetzung abrufen + phase_loesung = loesung[param][phase] + phase_schatzung = schatzung.get(param, {}).get(phase) # Verhindert KeyError + + if phase_schatzung is None: + phase_feedback["status"] = "Fehler" + phase_feedback["message"] = f"Keine Schaetzung fuer {param} - {phase} gefunden!" + print(phase_feedback["message"]) + feedback["Feedback"][param][f"{param}-{phase}"] = phase_feedback + continue + + # Besondere Behandlung fuer den Fall, dass die Loesung 0 ist + if phase_loesung == 0: + if phase_schatzung == 0: + phase_feedback["status"] = "Erfolgreich" + phase_feedback["message"] = f"Deine Schaetzung fuer {param} - {phase} ist korrekt (beide sind 0)." + else: + phase_feedback["status"] = "Falsch" + phase_feedback["message"] = f"Deine Schaetzung fuer {param} - {phase} ist nicht korrekt. Versuche es noch einmal." + print(phase_feedback["message"]) + feedback["Feedback"][param][f"{param}-{phase}"] = phase_feedback + continue + + # Berechne die relative Differenz, wenn die Loesung nicht null ist + differenz = abs(phase_schatzung - phase_loesung) + relative_differenz = (differenz / abs(phase_loesung)) * 100 + + # Bestimme, wie nah die Schaetzung an der Loesung ist + if relative_differenz <= 20: + phase_feedback["status"] = "Erfolgreich" + phase_feedback["message"] = f"Deine Schaetzung von {phase_schatzung} fuer {param} - {phase} ist nahe genug an der Loesung." + elif 20 < relative_differenz <= 50: + phase_feedback["status"] = "Fast" + phase_feedback["message"] = f"Du bist nah dran! Deine Schaetzung von {phase_schatzung} fuer {param} - {phase} ist entfernt von der Loesung." + elif 50 < relative_differenz <= 100: + phase_feedback["status"] = "Entfernt" + phase_feedback["message"] = f"Versuche es noch einmal! Deine Schaetzung von {phase_schatzung} fuer {param} - {phase} ist weit entfernt von der Loesung." + else: + if phase_schatzung < phase_loesung: + phase_feedback["status"] = "Zu niedrig" + phase_feedback["message"] = f"Du musst hoeher schaetzen! Deine Schaetzung von {phase_schatzung} fuer {param} - {phase} ist mehr als 100% entfernt." + else: + phase_feedback["status"] = "Zu hoch" + phase_feedback["message"] = f"Du musst niedriger schaetzen! Deine Schaetzung von {phase_schatzung} fuer {param} - {phase} ist mehr als 100% entfernt." + + print(phase_feedback["message"]) + feedback["Feedback"][param][f"{param}-{phase}"] = phase_feedback + + if isinstance(loesung[param], (int, float)): # Falls es eine Zahl oder Zahl-String ist + phase_loesung = float(loesung[param]) + phase_feedback = { + "status": "", + "message": "" + } + + # Loesung und Schaetzung abrufen + phase_loesung = float(loesung[param]) + phase_schatzung = float(schatzung[param]) # Verhindert KeyError + + if phase_schatzung is None: + phase_feedback["status"] = "Fehler" + phase_feedback["message"] = f"Keine Schaetzung fuer {param} gefunden!" + print(phase_feedback["message"]) + feedback["Feedback"][param] = phase_feedback + continue + + # Besondere Behandlung fuer den Fall, dass die Loesung 0 ist + if phase_loesung == 0: + if phase_schatzung == 0: + phase_feedback["status"] = "Erfolgreich" + phase_feedback["message"] = f"Deine Schaetzung fuer {param} ist korrekt (beide sind 0)." + else: + phase_feedback["status"] = "Falsch" + phase_feedback["message"] = f"Deine Schaetzung fuer {param} ist nicht korrekt. Versuche es noch einmal." + print(phase_feedback["message"]) + feedback["Feedback"][param] = phase_feedback + continue + + # Berechne die relative Differenz, wenn die Loesung nicht null ist + differenz = abs(phase_schatzung - phase_loesung) + relative_differenz = (differenz / abs(phase_loesung)) * 100 + + # Bestimme, wie nah die Schaetzung an der Loesung ist + if relative_differenz <= 20: + phase_feedback["status"] = "Erfolgreich" + phase_feedback["message"] = f"Deine Schaetzung von {phase_schatzung} fuer {param} ist nahe genug an der Loesung." + elif 20 < relative_differenz <= 50: + phase_feedback["status"] = "Fast" + phase_feedback["message"] = f"Du bist nah dran! Deine Schaetzung von {phase_schatzung} fuer {param} ist entfernt von der Loesung." + elif 50 < relative_differenz <= 100: + phase_feedback["status"] = "Entfernt" + phase_feedback["message"] = f"Versuche es noch einmal! Deine Schaetzung von {phase_schatzung} fuer {param} ist weit entfernt von der Loesung." + else: + if phase_schatzung < phase_loesung: + phase_feedback["status"] = "Zu niedrig" + phase_feedback["message"] = f"Du musst hoeher schaetzen! Deine Schaetzung von {phase_schatzung} fuer {param} ist mehr als 100% entfernt." + else: + phase_feedback["status"] = "Zu hoch" + phase_feedback["message"] = f"Du musst niedriger schaetzen! Deine Schaetzung von {phase_schatzung} fuer {param} ist mehr als 100% entfernt." + + print(phase_feedback["message"]) + feedback["Feedback"][param] = phase_feedback + + # Speichere das Feedback in einer JSON-Datei + with open('src/Tasks/Ferment/feedback.json', 'w') as feedback_file: + json.dump(feedback, feedback_file, indent=4, ensure_ascii=False) + +# Funktion aufrufen +feedback_schatzung() + diff --git a/src/Tasks/Ferment/generateFermentationData.py b/src/Tasks/Ferment/generateFermentationData.py new file mode 100644 index 0000000..978898d --- /dev/null +++ b/src/Tasks/Ferment/generateFermentationData.py @@ -0,0 +1,162 @@ +import json +import numpy as np + +from excel_export import export_to_excel +from json_to_excel import json_to_excel +from nebenrechnungen import Berechnung_der_Sauerstoffloeslichkeit +from nebenrechnungen import Berechnung_des_kla_Wertes +from nebenrechnungen import parameter +from feedback_schaetzung import feedback_schatzung + +from berechnungen import berechnung_der_Tabelle1 +from berechnungen import berechnung_der_Tabelle2 +from berechnungen import berechnung_der_Tabelle3 +from berechnungen import berechnung + +from interne_daten.data_importieren import data_importieren_von_json +from Input.json_Input import JsonInput +import base64 +# Example data for the variables +#c_ox_sat = 0.21 # Example value for oxygen saturation concentration +#t_combined = np.linspace(0, 10, 100) # Example time data +#y_combined = np.random.rand(5, 100) # Example concentration data with 5 different concentrations over time +#cum_feeding = np.cumsum(np.random.rand(100)) # Example cumulative feeding data + +#c_ox_sat = None # Oxygen saturation concentration +#t_combined = None # Time data +#y_combined = None # Concentration data +#cum_feeding = None # Cumulative feeding data + + + #Modelle aus modelle.jsom laden +modelleOb = JsonInput('modelle.json') +modelleOb.ladeJson() +modelle = modelleOb.get_data() + + #Zum Test im Meeting +#m = modelleOb.get_Value() +#print(m) +#modelle = data_importieren_von_json('Modelle.json') + +#Input aus input.json laden +eingabeOb = JsonInput('FrontendEingaben.json') +eingabeOb.ladeJson() +eingabe = eingabeOb.get_Value() + + + + +Sauerstoffoeslichkeit_array=Berechnung_der_Sauerstoffloeslichkeit(eingabe[1],eingabe[10],eingabe[3]) + + +kla_werte=Berechnung_des_kla_Wertes(Sauerstoffoeslichkeit_array,modelle,eingabe[4],eingabe[0],eingabe[5],eingabe[1]) + + +parameter_werte=parameter(Sauerstoffoeslichkeit_array,kla_werte,modelle,eingabe[1],eingabe[0]) + + +const_array=berechnung_der_Tabelle1(parameter_werte,eingabe[0],modelle,eingabe[5],eingabe[7],eingabe[1]) + + +t_ranges_array= berechnung_der_Tabelle2(eingabe[2],eingabe[1]) + + +param_array=berechnung_der_Tabelle3(const_array,eingabe[11],eingabe[6],eingabe[8],eingabe[9],eingabe[1]) + + +#Berechnung_ausführen +ergebnis = berechnung(t_ranges_array, param_array, const_array,eingabe[1]) +c_ox_sat, y_combined, t_combined, cum_feeding = ergebnis + + +#Export Resultat in Excel-Datei +excel_bytes = export_to_excel("model_result.xlsx", t_combined, y_combined, cum_feeding) +# plot_visualisieren(c_ox_sat, y_combined, t_combined, cum_feeding) +y_combined=y_combined.T + + + +def generateFermentationDataMain(): + + # Base64-kodieren + encoded_excel = base64.b64encode(excel_bytes.read()).decode('utf-8') + #print(encoded_excel) + data = { + "data_1":{ + "labels": t_combined.tolist(), + "datasets": [ + { + "label": "cₓ", + "data": y_combined[0, :].tolist(), + "borderColor": "#66c2a5", + "backgroundColor": "#66c2a5", + "tension": 0.1 + }, + { + "label": "cₛ₁", + "data": y_combined[1, :].tolist(), + "borderColor": "#fc8d62", + "backgroundColor": "#fc8d62", + "tension": 0.1 + }, + { + "label": "cₚ", + "data": y_combined[3, :].tolist(), + "borderColor": "#e78ac3", + "backgroundColor": "#e78ac3", + "tension": 0.1 + }, + { + "label": "cₒ₂", + "data": (y_combined[4, :] / c_ox_sat * 100).tolist(), + "borderColor": "#a6d854", + "backgroundColor": "#a6d854", + "tension": 0.1 + }, + { + "label": "cum Feed", + "data": cum_feeding.tolist(), + "borderColor": "#FFD700", + "backgroundColor": "#FFD700", + "tension": 0.1 + } + ] + }, + "data_2": { + "labels": t_combined.tolist(), + "datasets": [ + { + "label": "cₛ₂", + "data": y_combined[2, :].tolist(), + "borderColor": "#8da0cb", + "backgroundColor": "#8da0cb", + "tension": 0.1 + }] + }, + "data_3":{ + "excelData": encoded_excel + } + } + return data + +with open('./src/Tasks/Ferment/data.json', 'w') as output: + json.dump(generateFermentationDataMain(), output) + + + +#export_FrontendEingabe +json_file_path = 'src\Tasks\Ferment\interne_daten\FrontendEingaben.json' # Path to the JSON file +json_to_excel(json_file_path, 'FrontendEingaben.xlsx') + +#export_Chart_Data +json_file_path = 'src\Tasks\Ferment\data.json' # Path to the JSON file +json_to_excel(json_file_path, 'ChartData.xlsx') + +y_combined=y_combined.T +#export_to_excel("model_result.xlsx", t_combined, y_combined, cum_feeding) +feedback_schatzung() + +# Beispiel für die Verwendung der Funktion +#fermentationData = generateFermentationDataMain() +#print(fermentationData) +#print('hier',eingabe) \ No newline at end of file diff --git a/src/Tasks/Ferment/interne_daten/FrontendEingaben.json b/src/Tasks/Ferment/interne_daten/FrontendEingaben.json new file mode 100644 index 0000000..61dc056 --- /dev/null +++ b/src/Tasks/Ferment/interne_daten/FrontendEingaben.json @@ -0,0 +1,35 @@ +{ + "Modell": "Modell-1", + "PhasenAnzahl": 2, + "Dauer": [ + 10, + 10 + ], + "Druck": [ + 1, + 1 + ], + "Drehzahl": [ + 100, + 100 + ], + "Zuluft": [ + 1, + 1 + ], + "BolusC": [ + 1, + 1 + ], + "Feed": [ + 1, + 1 + ], + "BolusN": [ + 1, + 1 + ], + "do": 0, + "T": 0, + "BTM": 0 +} \ No newline at end of file diff --git a/src/Tasks/Ferment/interne_daten/Input.json b/src/Tasks/Ferment/interne_daten/Input.json new file mode 100644 index 0000000..c69d3c6 --- /dev/null +++ b/src/Tasks/Ferment/interne_daten/Input.json @@ -0,0 +1,26 @@ +{ + "Modell" : "Modell-2", + + "PhasenAnzahl" : 4, + + "Dauer" : [12,12,0,0], + + "Druck": [1,1,0,0], + + "Drehzahl" : [1200,1200,0,0], + + "Zuluft": [0.2,0.4,0,0], + + "BolusC" : [20,10,0,0], + + "Feed" : [0.1,0.1,0,0], + + "BolusN" : [4,1,0,0], + + "temperatur": 30, + + "startbiomasse": 0.05, + + "do":100 + +} \ No newline at end of file diff --git a/src/Tasks/Ferment/interne_daten/Input_Leser.py b/src/Tasks/Ferment/interne_daten/Input_Leser.py new file mode 100644 index 0000000..24f6d3f --- /dev/null +++ b/src/Tasks/Ferment/interne_daten/Input_Leser.py @@ -0,0 +1,60 @@ +import json +import os + +class ParameterLeser: + + @staticmethod + def lade_parameter(datei_name): + current_dir = os.path.dirname(os.path.realpath(__file__)) + # Vollständiger Pfad zur JSON-Datei + json_path = os.path.join(current_dir, datei_name) + with open(json_path) as f: + return json.load(f)['Parameter'] + + @staticmethod + def get_modell(parameter): + return parameter['Modell'] + + @staticmethod + def get_phasenanzahl(parameter): + return parameter['PhasenAnzahl'] + + @staticmethod + def get_dauer(parameter): + return parameter['Dauer']['DauerArray'] + + @staticmethod + def get_druck(parameter): + return parameter['Druck']['DruckArray'] + + @staticmethod + def get_drehzahl(parameter): + return parameter['Drehzahl']['DrehzahlArray'] + + @staticmethod + def get_zuluft(parameter): + return parameter['Zuluft']['ZuluftArray'] + + @staticmethod + def get_bolus_c(parameter): + return parameter['BolusC']['BolusCArray'] + + @staticmethod + def get_futter(parameter): + return parameter['Feed']['FeedArray'] + + @staticmethod + def get_bolus_n(parameter): + return parameter['BolusN']['BolusNArray'] + + @staticmethod + def get_temperatur(parameter): + return parameter['Temperatur']['temperatur'] + + @staticmethod + def get_start_biomasse(parameter): + return parameter['Startbiomasse']['startbiomasse'] + + @staticmethod + def get_do(parameter): + return parameter['DO']['do'] \ No newline at end of file diff --git a/src/Tasks/Ferment/interne_daten/Modelle.json b/src/Tasks/Ferment/interne_daten/Modelle.json new file mode 100644 index 0000000..b110769 --- /dev/null +++ b/src/Tasks/Ferment/interne_daten/Modelle.json @@ -0,0 +1,70 @@ +{ + "Modell-1": + { + "Beschreibung": "nicht wachstumsassoziierte Ethanolbildung mit hohem Ks --> hoehere Biomassegehalte bei niedrigen Substrat 1 konz.", + "Mikroorganismus": "S.cerevisiae", + "Substrat 1": "Glucose", + "Substrat 2": "(NH4)2SO4", + "Produkt 1": "Ethanol", + "umax": 0.46209812, + "Ks_s1x": 0.1, + "Ks_s2x": 0.01, + "Yxs1": 0.54, + "Yxs2": 8, + "ks_ox": 9.6e-05, + "RQ": 1, + "Yxox": 4.81, + "Produktbildung": 1, "ap": 0, "bp": 1, "kp_max": 0.88, "km_s1p": 5, "Ypx_mu": 1.5, "Dichte Bruehe": 1000, "dyn. Viscosity": 2, + "Temp. In C": 30 + }, + "Modell-2": + { + "Beschreibung": "Keine", + "Mikroorganismus": "E.coli", + "Substrat 1": "C-Quelle", + "Substrat 2": "N-Quelle", + "Produkt 1": "Produkt", + "umax": 2.07944154, + "Ks_s1x": 5, + "Ks_s2x": 0.1, + "Yxs1": 0.54, + "Yxs2": 8, + "ks_ox": 0.001, + "RQ": 1, + "Yxox": 0.54, + "Produktbildung": 1, + "ap": 0, + "bp": 1, + "kp_max": 0.88, + "km_s1p": 5, + "Ypx_mu": 1.5, + "Dichte Bruehe": 1000, + "dyn. Viscosity": 2, + "Temp. In C": 30 + }, + "Modell-3": + { + "Beschreibung": "Keine", + "Mikroorganismus": "Testorganismus", + "Substrat 1": "C-Quelle", + "Substrat 2": "N-Quelle", + "Produkt 1": "keins", + "umax": 0.314, + "Ks_s1x": 0.42, + "Ks_s2x": 0.1, + "Yxs1": 0.54, + "Yxs2": 1, + "ks_ox": 0.01, + "RQ": 1, + "Yxox": 0.54, + "Produktbildung": 0, + "ap": 0.5, + "bp": 0.5, + "kp_max": 0.23, + "km_s1p": 0.8, + "Ypx_mu": 1.5, + "Dichte Bruehe": 1050, + "dyn. Viscosity": 2, + "Temp. In C": 30 + } +} \ No newline at end of file diff --git a/src/Tasks/Ferment/interne_daten/Modelle_Leser.py b/src/Tasks/Ferment/interne_daten/Modelle_Leser.py new file mode 100644 index 0000000..d5eae9b --- /dev/null +++ b/src/Tasks/Ferment/interne_daten/Modelle_Leser.py @@ -0,0 +1,101 @@ +import json +import os + + +class ModellLeser: + + @staticmethod + def lade_modelle(datei_name): + current_dir = os.path.dirname(os.path.realpath(__file__)) + # Vollständiger Pfad zur JSON-Datei + json_path = os.path.join(current_dir, datei_name) + with open(json_path) as f: + return json.load(f) + + @staticmethod + def get_beschreibung(modelle, modellname): + return modelle[modellname]['Beschreibung'] + + @staticmethod + def get_mikroorganismus(modelle, modellname): + return modelle[modellname]['Mikroorganismus'] + + @staticmethod + def get_substrat_1(modelle, modellname): + return modelle[modellname]['Substrat 1'] + + @staticmethod + def get_substrat_2(modelle, modellname): + return modelle[modellname]['Substrat 2'] + + @staticmethod + def get_produkt_1(modelle, modellname): + return modelle[modellname]['Produkt 1'] + + @staticmethod + def get_umax(modelle, modellname): + return modelle[modellname]['umax'] + + @staticmethod + def get_ks_s1x(modelle, modellname): + return modelle[modellname]['Ks_s1x'] + + @staticmethod + def get_ks_s2x(modelle, modellname): + return modelle[modellname]['Ks_s2x'] + + @staticmethod + def get_yxs1(modelle, modellname): + return modelle[modellname]['Yxs1'] + + @staticmethod + def get_yxs2(modelle, modellname): + return modelle[modellname]['Yxs2'] + + @staticmethod + def get_ks_ox(modelle, modellname): + return modelle[modellname]['ks_ox'] + + @staticmethod + def get_rq(modelle, modellname): + return modelle[modellname]['RQ'] + + @staticmethod + def get_yxox(modelle, modellname): + return modelle[modellname]['Yxox'] + + @staticmethod + def get_produktbildung(modelle, modellname): + return modelle[modellname]['Produktbildung'] + + @staticmethod + def get_ap(modelle, modellname): + return modelle[modellname]['ap'] + + @staticmethod + def get_bp(modelle, modellname): + return modelle[modellname]['bp'] + + @staticmethod + def get_kp_max(modelle, modellname): + return modelle[modellname]['kp_max'] + + @staticmethod + def get_km_s1p(modelle, modellname): + return modelle[modellname]['km_s1p'] + + @staticmethod + def get_ypx_mu(modelle, modellname): + return modelle[modellname]['Ypx_mu'] + + @staticmethod + def get_dichte_bruehe(modelle, modellname): + return modelle[modellname]['Dichte Bruehe'] + + @staticmethod + def get_dyn_viscosity(modelle, modellname): + return modelle[modellname]['dyn. Viscosity'] + + @staticmethod + def get_temp_in_c(modelle, modellname): + return modelle[modellname]['Temp. In C'] diff --git a/src/Tasks/Ferment/interne_daten/data_importieren.py b/src/Tasks/Ferment/interne_daten/data_importieren.py new file mode 100644 index 0000000..c169111 --- /dev/null +++ b/src/Tasks/Ferment/interne_daten/data_importieren.py @@ -0,0 +1,18 @@ + +import json +import os + +def data_importieren_von_json(datei_name): + # Verzeichnis des aktuellen Skripts + current_dir = os.path.dirname(os.path.realpath(__file__)) + # Vollständiger Pfad zur JSON-Datei + json_path = os.path.join(current_dir, datei_name) + + try: + # Öffne die JSON-Datei und lade sie + with open(json_path, 'r') as file: + data = json.load(file) + return data + except FileNotFoundError: + print(f"Die Datei '{datei_name}' wurde nicht gefunden.") + return None diff --git a/src/Tasks/Ferment/interne_daten/konstantenDictionary.py b/src/Tasks/Ferment/interne_daten/konstantenDictionary.py new file mode 100644 index 0000000..0b459d1 --- /dev/null +++ b/src/Tasks/Ferment/interne_daten/konstantenDictionary.py @@ -0,0 +1,43 @@ + + +#Dictionary Henry_Konstanten erstellen +Henry_Kosntanten = { + "Solut_KH1" :{ #L*atm*mol-1 + "O2" : 769.2, + "CO2" : 29.41, + "H2" : 1282.1 + }, + + "Solut_KH2" :{ #(L*bar)/mol + "O2" : 779.3919, + "CO2" : 29.7996825, + "H2" : 1299.087825 + }, + + "Solut_T" :{ #in k + "O2" : 298.15, + "CO2" : 198.15, + "H2" : 298.15 + } +} + +##Dictionary Temperaturkoeffizient erstellen + +Temperaturkoeffizient = { #Solut:C in K + "O2" : 1700, + "H2" : 500, + "CO2" : 2400, + "N2" : 1300, + "He" : 230, + "Ne" : 490, + "Ar" : 1300, + "CO" : 1300 +} + +#Dictionary für die Konstanten für P begast + +Konstanten_fuer_P_begast = { + "1" : 750, #"Anzahl der Impeller/Rührorgane" : Konstante A in Pg Formel + "2" : 490, + "3" : 375 +} \ No newline at end of file diff --git a/src/Tasks/Ferment/json_to_excel.py b/src/Tasks/Ferment/json_to_excel.py new file mode 100644 index 0000000..32b3b5c --- /dev/null +++ b/src/Tasks/Ferment/json_to_excel.py @@ -0,0 +1,23 @@ +import os +import pandas as pd + +def json_to_excel(json_file, excel_filename='output.xlsx'): + + + # Get the default download folder based on the operating system + if os.name == 'nt': # Windows + download_folder = os.path.join(os.getenv('USERPROFILE'), 'Downloads') + else: # Mac/Linux + download_folder = os.path.join(os.path.expanduser('~'), 'Downloads') + + # Load the JSON file into a DataFrame + df = pd.read_json(json_file) + + # Set the path for the Excel file + excel_file = os.path.join(download_folder, excel_filename) + + # Save the DataFrame as an Excel file + df.to_excel(excel_file, index=False, engine='openpyxl') + + # Return the full path to the Excel file + return excel_file diff --git a/src/Tasks/Ferment/nebenrechnungen.py b/src/Tasks/Ferment/nebenrechnungen.py new file mode 100644 index 0000000..e0267ae --- /dev/null +++ b/src/Tasks/Ferment/nebenrechnungen.py @@ -0,0 +1,157 @@ +import math +import numpy as np +from array import array + + + +from interne_daten.konstantenDictionary import * + + +Durchmesser_Ruehrer_durch_Durchmesser_Tank = 0.33 #Modell F19 +nutzbares_Volumen = 0.7 #Modell F21 +Hoehe_des_Tanks_durch_Durchmesser_Tank = 3 #Modell F20 +Anzahl_Rushton_Impeller = 3 #Modell F22 +Volumen_Kulturbruehe = 10 / 1000 #Modell F18 +Durchmesser_Ruehrer = 0.0602 #!Modell F28 +Nettovolumen = Volumen_Kulturbruehe / nutzbares_Volumen #Modell F27 + +Durchmesser_Tank = ((Nettovolumen*4) / (Hoehe_des_Tanks_durch_Durchmesser_Tank*math.pi))**(1/3) #Modell F29 + +Hoehe_des_Tanks = Hoehe_des_Tanks_durch_Durchmesser_Tank * Durchmesser_Tank #Modell F30 +Vcheck = (math.pi/4) * Durchmesser_Tank**2 * Hoehe_des_Tanks #Modell F32 + + + + + + + + +def parameter(Sauerstoffoeslichkeit_array,kla_werte,data,phasen_anzahl,modell): + parameter_array = [array('d', [0] * 3) for _ in range(phasen_anzahl)] + + for j in range(phasen_anzahl): + parameter_array[j][0]=Sauerstoffoeslichkeit_array[j][5] + + for j in range(phasen_anzahl): + parameter_array[j][1]=kla_werte[j][17] + + for j in range(phasen_anzahl): + parameter_array[j][2]=data.get(modell, {}).get("umax") #SVERWEIS(Modell!$B$3;Tabelle1[#Alle];7;FALSCH) + + return parameter_array + + + + +def Berechnung_der_Sauerstoffloeslichkeit(phasen_anzahl,temperatur,druck): + + + Sauerstoffoeslichkeit_array = [array('d', [0] * 6) for _ in range(phasen_anzahl)] + + + + ############################################### Phase1 + # Attribute für Phase 1 + T_in_K_1 = 273.15 + temperatur # Modell!B11 + p_in_bara_1 = 1.013 + druck[0] #Modell H8 = 1 + p_o2_in_bara_1 = 0.20946 * p_in_bara_1 + kH_o2_bei_T_1 = Henry_Kosntanten["Solut_KH2"]["O2"] * math.exp(-Temperaturkoeffizient["O2"]*((1/T_in_K_1) - (1/Henry_Kosntanten["Solut_T"]["O2"]))) + L_o2_in_mmol_l_1 = (p_o2_in_bara_1 / kH_o2_bei_T_1 )*1000 + L_o2_in_g_l_1 = (L_o2_in_mmol_l_1*32) /1000 + + for i in range(phasen_anzahl): + if i == 0: + Sauerstoffoeslichkeit_array[0] = [T_in_K_1,p_in_bara_1,p_o2_in_bara_1,kH_o2_bei_T_1,L_o2_in_mmol_l_1,L_o2_in_g_l_1] + else : + Sauerstoffoeslichkeit_array[i][0]=Sauerstoffoeslichkeit_array[i-1][0] + Sauerstoffoeslichkeit_array[i][1]= 1.013 + float(druck[i]) #Modell!I8 #Modell j8 #modell k8 + Sauerstoffoeslichkeit_array[i][2]= 0.20946 * Sauerstoffoeslichkeit_array[i][1] + Sauerstoffoeslichkeit_array[i][3]=Henry_Kosntanten["Solut_KH2"]["O2"] * math.exp(-Temperaturkoeffizient["O2"]*((1/Sauerstoffoeslichkeit_array[i][0]) - (1/Henry_Kosntanten["Solut_T"]["O2"]))) + Sauerstoffoeslichkeit_array[i][4]=(Sauerstoffoeslichkeit_array[i][2]/Sauerstoffoeslichkeit_array[i][3])*1000 + Sauerstoffoeslichkeit_array[i][5]=(Sauerstoffoeslichkeit_array[i][4]*32)/1000 + + # Dezimalstellen nach komma grenzen, maximal 9 Stellen nach komma + for i in range(len(Sauerstoffoeslichkeit_array)): + for j in range(len(Sauerstoffoeslichkeit_array[i])): + try: + Sauerstoffoeslichkeit_array[i][j] = round(float(Sauerstoffoeslichkeit_array[i][j]), 9) + except ValueError: + pass + + return Sauerstoffoeslichkeit_array + + +def Berechnung_des_kla_Wertes(Sauerstoffoeslichkeit_array,data,drehzahl,modell,zuluft,phasen_anzahl): + + kla_werte = [array('d', [0] * 19) for _ in range(phasen_anzahl)] + i=0 + + drehzahl_1 = float(drehzahl[i]) #Modell H9 + Drehzahl_pro_sek = 1200 / 60 + Dichte = data.get(modell, {}).get("Dichte Bruehe") #SVERWEIS(Modell!$B$3;Tabelle1[#Alle];21;FALSCH) + dyn_Viskosität1 = data.get(modell, {}).get("dyn. Viscosity") #SVERWEIS(Modell!$B$3;Tabelle1[#Alle];22;FALSCH) + dyn_Viskositaet2 = dyn_Viskosität1/ 1000 #(kg*m)/s + Ruehrerdurchmesser = Durchmesser_Ruehrer #0.0602 Modell F28 + Reynoldszahl_Re = (Dichte * Drehzahl_pro_sek * (Ruehrerdurchmesser**2)) / dyn_Viskositaet2 + Newton_Zahl_Ne = 7 + Leistungseintrag_nicht_begast_P_1 = (Newton_Zahl_Ne * Anzahl_Rushton_Impeller * Dichte * (Drehzahl_pro_sek**3) * (Ruehrerdurchmesser**5)) #Modell F22=3 + Leistungseintrag_nicht_begast_P_2 = Leistungseintrag_nicht_begast_P_1 / Volumen_Kulturbruehe #modell F18 = 0.01 + Leistungseintrag_nicht_begast_P_3 = Leistungseintrag_nicht_begast_P_2 / 1000 #kW/m3 + + #Feld 11 später + Air_Flow_1 = 0.2 #vvm + Air_Flow_2 = Air_Flow_1 * Volumen_Kulturbruehe / 60 #Modell F18=0.01 + cross_scetion = (math.pi / 4) * (Durchmesser_Tank**2) #modell F29 = 0.1823 + + #Feld 15 zuert berechnet dann 11 + superficial_velocity = Air_Flow_2 / cross_scetion #m/s + Leistungseintrag_Begast_Pg = Leistungseintrag_nicht_begast_P_1 / math.sqrt(1+float(Konstanten_fuer_P_begast["3"])*superficial_velocity/math.sqrt(9.81*Ruehrerdurchmesser)) #W =C48/WURZEL(1+SVERWEIS(Modell!$F$22;Daten!$I$43:$J$45;2;FALSCH)*C55/WURZEL(9,81*C44)) + #Leistungseintrag_nicht_begast_P_1 / math.sqrt(1+Konstanten_fuer_P_begast.get(Anzahl_Rushton_Impeller)*superficial_velocity/math.sqrt(9.81*Ruehrerdurchmesser)) + kla_pro_sek = 0.026 * ( ( Leistungseintrag_Begast_Pg / Volumen_Kulturbruehe) ** (0.4) ) * (superficial_velocity ** (0.5) ) #modell F18 = 0.01 + kla_pro_std = kla_pro_sek * 3600 #1/h + OTR_max = kla_pro_std * Sauerstoffoeslichkeit_array[i][4] #mmol/(l*h) + + + for i in range(phasen_anzahl): + if i == 0 : + kla_werte[0] = [float(drehzahl_1),float(Drehzahl_pro_sek),float(Dichte),float(dyn_Viskosität1),float(dyn_Viskositaet2),float(Ruehrerdurchmesser),float(Reynoldszahl_Re),float(Newton_Zahl_Ne),float(Leistungseintrag_nicht_begast_P_1),float(Leistungseintrag_nicht_begast_P_2),float(Leistungseintrag_nicht_begast_P_3),float(Leistungseintrag_Begast_Pg),float(Air_Flow_1),float(Air_Flow_2),float(cross_scetion),float(superficial_velocity),float(kla_pro_sek),float(kla_pro_std),float(OTR_max)] + else : #alle anderen phasen_anzahl + + kla_werte[i][0]=float(drehzahl[i]) #modell I9 + kla_werte[i][1]=float(kla_werte[i][0]/60) + kla_werte[i][2]=float(kla_werte[i-1][2]) + kla_werte[i][3]=float(kla_werte[i-1][3]) + kla_werte[i][4]=float(kla_werte[i-1][4]) + kla_werte[i][5]=float(kla_werte[i-1][5]) + kla_werte[i][6]=float(( kla_werte[i][2] * kla_werte[i][1] * kla_werte[i][5]**2 ) / kla_werte[i][4]) + kla_werte[i][7]=float(kla_werte[i-1][7]) + kla_werte[i][8]=float(( kla_werte[i][7] * Anzahl_Rushton_Impeller * kla_werte[i][2] * ( kla_werte[i][1] ** 3 ) * ( float(kla_werte[i][5]) ** 5)) ) #Modell!$F$22 = 3 + kla_werte[i][9]=float(kla_werte[i][8] / Volumen_Kulturbruehe ) #modell F18 = 0.01 + kla_werte[i][10]=float(kla_werte[i][9] / 1000) + kla_werte[i][12]=float(zuluft[i]) #W/m3 Modell l7 = 0.01 + kla_werte[i][13]=float(kla_werte[i][12] * Volumen_Kulturbruehe / 60) #ModellF18 = 0.01 + kla_werte[i][14]=float(math.pi / 4 * Durchmesser_Tank**2) #modell F29 = 0.1823 + + #Feld 11 braucht Ergebnis von 15. Deswegen 15 zuerst + kla_werte[i][15]=float(kla_werte[i][13] / kla_werte[i][14]) + kla_werte[i][11]=float(kla_werte[i][8] / math.sqrt(1 + float(Konstanten_fuer_P_begast["3"])* kla_werte[i][15] / math.sqrt( 9.81 * kla_werte[i][5] ) ) ) #modell F22= 3 #W =C48/WURZEL(1+SVERWEIS(Modell!$F$22;Daten!$I$43:$J$45;2;FALSCH)*C55/WURZEL(9,81*C44)) + + Leistungseintrag_Begast_Pg2 = kla_werte[i][11] + superficial_velocity2=kla_werte[i][15] + kla_werte[i][16]=float(0.026 * ((Leistungseintrag_Begast_Pg2 / Volumen_Kulturbruehe ) ** (0.4) ) * (superficial_velocity2 ** (0.5))) #Modell!$F$18 = 0.01 + kla_werte[i][17]=float(kla_werte[i][16] * 3600 ) + kla_werte[i][18]=float(kla_werte[i][17] * Sauerstoffoeslichkeit_array[i][4]) + + + + # Dezimalstellen nach komma grenzen, maximal 9 Stellen nach komma + for i in range(len(kla_werte)): + for j in range(len(kla_werte[i])): + try: + kla_werte[i][j] = round(float(kla_werte[i][j]), 9) + except ValueError: + pass + + return kla_werte + \ No newline at end of file diff --git a/src/Tasks/Ferment/nutzer_eingaben.json b/src/Tasks/Ferment/nutzer_eingaben.json new file mode 100644 index 0000000..1f66f67 --- /dev/null +++ b/src/Tasks/Ferment/nutzer_eingaben.json @@ -0,0 +1,35 @@ +{ + "Modell": "Modell-1", + "PhasenAnzahl": 2, + "Dauer": { + "Phase_1": 10, + "Phase_2": 10 + }, + "Druck": { + "Phase_1": 1, + "Phase_2": 1 + }, + "Drehzahl": { + "Phase_1": 100, + "Phase_2": 100 + }, + "Zuluft": { + "Phase_1": 1, + "Phase_2": 1 + }, + "BolusC": { + "Phase_1": 1, + "Phase_2": 1 + }, + "Feed": { + "Phase_1": 1, + "Phase_2": 1 + }, + "BolusN": { + "Phase_1": 1, + "Phase_2": 1 + }, + "do": 0, + "T": 0, + "BTM": 0 +} \ No newline at end of file diff --git a/src/Tasks/Ferment/wrapperFunctionCallPython.ts b/src/Tasks/Ferment/wrapperFunctionCallPython.ts new file mode 100644 index 0000000..ddcdc0f --- /dev/null +++ b/src/Tasks/Ferment/wrapperFunctionCallPython.ts @@ -0,0 +1,290 @@ +import { exec } from "child_process"; +import fs from "fs"; +const path = require("path"); + +function runPythonScript(scriptPath: string): Promise { + try { + return new Promise((resolve, reject) => { + const command = `python ${scriptPath}`; + console.log(command); + exec(command, (error, stdout, stderr) => { + if (error) { + reject(error.message); + return; + } + if (stderr) { + reject(stderr); + return; + } + resolve(stdout); + }); + }); + } catch { + console.log("Error"); + } +} + +function parseFrontendInputs(parameter: any) { + //Überprüfen, ob parameter ein String ist und wenn ja, ihn parsen + let frontendEingaben: any; + if (parameter === undefined || parameter === null) { + throw new Error("Parameter ist undefined oder null."); + } + if (typeof parameter === "string") { + try { + frontendEingaben = JSON.parse(parameter); + } catch (error) { + throw new Error("Fehler beim Parsen des JSON-Strings: " + error.message); + } + } else if (typeof parameter === "object") { + frontendEingaben = parameter; + } else { + throw new Error("Ungültiges Eingabeformat für parameter."); + } + return frontendEingaben; +} +function cleanAndMoveParameters(frontendEingaben : any) { + if (frontendEingaben && frontendEingaben.parameters) { + // Inhalt von "parameters" ins Hauptobjekt verschieben + Object.assign(frontendEingaben, frontendEingaben.parameters); + + // Entfernen der spezifizierten Schlüssel + delete frontendEingaben.parameters; + delete frontendEingaben.type; + delete frontendEingaben.task; + delete frontendEingaben.Paramter; + delete frontendEingaben.instruction; + delete frontendEingaben.language; + } + + return frontendEingaben; +} + +// Schlüsselnamen im Objekt ändern +function renameKey (obj: any, oldKey: string, newKey: string) { + if (obj.hasOwnProperty(oldKey)) { + obj[newKey] = obj[oldKey]; + delete obj[oldKey]; + } + for (const key in obj) { + if (obj.hasOwnProperty(key) && typeof obj[key] === "object" && obj[key] !== null) { + renameKey(obj[key], oldKey, newKey); + } + } + return obj; +}; + +function editSaveParams(parameter: any) { + //Überprüfen, ob parameter ein String ist und wenn ja, ihn parsen + let frontendEingaben : any = parseFrontendInputs(parameter); + frontendEingaben = cleanAndMoveParameters(frontendEingaben); + + frontendEingaben = renameKey(frontendEingaben, "nodeAmount", "Modell"); + + + if (Array.isArray(frontendEingaben.Modell)) { + const tmpModell = frontendEingaben.Modell[0]; // Nimmt das erste Element aus dem Array + delete frontendEingaben.Modell; // Entfernt den ursprünglichen Schlüssel + frontendEingaben.Modell = tmpModell; // Setzt den Schlüssel mit dem neuen Wert + } + frontendEingaben = renameKey(frontendEingaben, "seed", "PhasenAnzahl"); + + switch (frontendEingaben.Modell) { + case "S.cerevisiae": + frontendEingaben.Modell = "Modell-1"; + break; + case "E.coli": + frontendEingaben.Modell = "Modell-2"; + break; + case "Testorganismus": + frontendEingaben.Modell = "Modell-3"; + break; + } + let phasenanzahl = parseInt(frontendEingaben.PhasenAnzahl); + frontendEingaben.PhasenAnzahl = phasenanzahl; + + let zuluft = []; + let feed = []; + let drehzahl = []; + let druck = []; + let dauer = []; + let bolusC = []; + let bolusN = []; + for (let i = 0; i < phasenanzahl; i++) { + if (Array.isArray(frontendEingaben.userDataMatrix[i][0])) { + zuluft[i] = isNaN(parseFloat(frontendEingaben.userDataMatrix[i][0][0])) + ? 0 + : parseFloat(frontendEingaben.userDataMatrix[i][0][0]); + feed[i] = isNaN(parseFloat(frontendEingaben.userDataMatrix[i][2][0])) + ? 0 + : parseFloat(frontendEingaben.userDataMatrix[i][2][0]); + drehzahl[i] = isNaN(parseFloat(frontendEingaben.userDataMatrix[i][4][0])) + ? 0 + : parseFloat(frontendEingaben.userDataMatrix[i][4][0]); + druck[i] = isNaN(parseFloat(frontendEingaben.userDataMatrix[i][5][0])) + ? 0 + : parseFloat(frontendEingaben.userDataMatrix[i][5][0]); + dauer[i] = isNaN(parseFloat(frontendEingaben.userDataMatrix[i][6][0])) + ? 0 + : parseFloat(frontendEingaben.userDataMatrix[i][6][0]); + bolusC[i] = isNaN(parseFloat(frontendEingaben.userDataMatrix[i][1][0])) + ? 0 + : parseFloat(frontendEingaben.userDataMatrix[i][1][0]); + bolusN[i] = isNaN(parseFloat(frontendEingaben.userDataMatrix[i][3][0])) + ? 0 + : parseFloat(frontendEingaben.userDataMatrix[i][3][0]); + } else { + zuluft[i] = isNaN(parseFloat(frontendEingaben.userDataMatrix[i][0])) + ? 0 + : parseFloat(frontendEingaben.userDataMatrix[i][0]); + feed[i] = isNaN(parseFloat(frontendEingaben.userDataMatrix[i][2])) + ? 0 + : parseFloat(frontendEingaben.userDataMatrix[i][2]); + drehzahl[i] = isNaN(parseFloat(frontendEingaben.userDataMatrix[i][4])) + ? 0 + : parseFloat(frontendEingaben.userDataMatrix[i][4]); + druck[i] = isNaN(parseFloat(frontendEingaben.userDataMatrix[i][5])) + ? 0 + : parseFloat(frontendEingaben.userDataMatrix[i][5]); + dauer[i] = isNaN(parseFloat(frontendEingaben.userDataMatrix[i][6])) + ? 0 + : parseFloat(frontendEingaben.userDataMatrix[i][6]); + bolusC[i] = isNaN(parseFloat(frontendEingaben.userDataMatrix[i][1])) + ? 0 + : parseFloat(frontendEingaben.userDataMatrix[i][1]); + bolusN[i] = isNaN(parseFloat(frontendEingaben.userDataMatrix[i][3])) + ? 0 + : parseFloat(frontendEingaben.userDataMatrix[i][3]); + } + } + + delete frontendEingaben.userDataMatrix; + + frontendEingaben.Dauer = dauer; + frontendEingaben.Druck = druck; + frontendEingaben.Drehzahl = drehzahl; + frontendEingaben.Zuluft = zuluft; + frontendEingaben.BolusC = bolusC; + frontendEingaben.Feed = feed; + frontendEingaben.BolusN = bolusN; + + + if (frontendEingaben.userDataInputFelder) { + frontendEingaben.temperatur =isNaN(parseFloat(frontendEingaben.userDataInputFelder.T)) ? 0 : parseFloat(frontendEingaben.userDataInputFelder.T); + frontendEingaben.startbiomasse = isNaN(parseFloat(frontendEingaben.userDataInputFelder.BTM)) ? 0 : parseFloat(frontendEingaben.userDataInputFelder.BTM); + frontendEingaben.do = isNaN(parseFloat(frontendEingaben.userDataInputFelder.DO)) ? 0 : parseFloat(frontendEingaben.userDataInputFelder.DO) ; + } + delete frontendEingaben.userDataInputFelder; + + delete frontendEingaben.checkUserDataValidity; + + + + // Pfad zur JSON-Datei definieren + const filePfade2 = path.join(__dirname, "/nutzer_eingaben.json"); + /* + // Objekt initialisieren + const data: { [key: string]: number } = {}; // Dynamische Schlüssel mit Werten vom Typ `number` + + frontendEingaben.Feed.forEach((element: number, index: number) => { + data[`Phase_${index + 1}`] = element; // Dynamische Schlüssel hinzufügen + }); + // JSON.stringify mit einer Replacer-Funktion + let jsonString2 = JSON.stringify(data, null, 4); + + // Datei schreiben + fs.writeFileSync(filePfade2, frontendEingaben, "utf-8");*/ + /* + let jsonString2 = JSON.stringify(frontendEingaben, null, 4); + // Schreibe den JSON-String in die Datei + fs.writeFileSync(filePfade2, jsonString2, "utf-8"); + */ + + // Umbenennen der Schlüssel + frontendEingaben['T'] = frontendEingaben['temperatur']; + delete frontendEingaben['temperatur']; + + frontendEingaben['BTM'] = frontendEingaben['startbiomasse']; + delete frontendEingaben['startbiomasse']; + + let param: { [key: string]: any } = {}; + Object.keys(frontendEingaben).forEach(key => { + // Überprüfe, ob der Wert von `frontendEingaben[key]` ein Array ist + if (Array.isArray(frontendEingaben[key]) && frontendEingaben[key] !== null) { + param[key] = {}; // Initialisiere das Objekt für diesen Schlüssel + Object.values(frontendEingaben[key]).forEach((value, index) => { + param[key][`Phase_${index+1}`] = value; // Setze den Wert für den entsprechenden Phase-Schlüssel + }); + } + else{ + if(frontendEingaben[key] !== null){ + param[key] = frontendEingaben[key]; + } + + } + }); + + let jsonString2 = JSON.stringify(param, null, 4); + // Schreibe den JSON-String in die Datei + fs.writeFileSync(filePfade2, jsonString2, "utf-8"); + + + + + // Pfad zur JSON-Datei definieren + const filePfade = path.join(__dirname, "/interne_daten/FrontendEingaben.json"); + + // JSON.stringify mit einer Replacer-Funktion + let jsonString = JSON.stringify(frontendEingaben, null, 4); + + // Datei schreiben + try { + fs.writeFileSync(filePfade, jsonString, "utf-8"); + return true; + } catch (error) { + return false; + } +} + + +export async function generateFermentationFeedBack() { + let result = { foo: "bar" }; + try { + const filePath = path.join(__dirname, "feedback.json"); + + // Versuche, die Datei zu lesen + if (fs.existsSync(filePath)) { + const fileContent = fs.readFileSync(filePath, "utf-8"); + result = JSON.parse(fileContent); // Dateiinhalt parsen + } else { + console.warn("feedback.json existiert nicht, es wird eine neue Datei erstellt."); + } + } catch (error) { + console.error("Fehler beim Verarbeiten der JSON-Datei:", error); + return null; + } + return result; +} + +export async function generateFermentationDataMain(parameter: any) { + let check = editSaveParams(parameter); + if (check) { + let result = { foo: "bar" }; + try { + let pythonScriptPath = "generateFermentationData.py"; + pythonScriptPath = path.join(__dirname, pythonScriptPath); + (await runPythonScript(pythonScriptPath)) as any; + + result = JSON.parse(fs.readFileSync(path.join(__dirname, "data.json"), "utf-8")); + const filePath = path.join(__dirname, "data.json"); + fs.writeFileSync(filePath, JSON.stringify(result, null, 2), "utf-8"); + + //console.log(result); + //insofern kryptsiche Zeichen in der JSON Ausgabe vorhanden sind .> Workaround mittels File + } catch (error) { + console.error("Error running Python script:", error); + } + return result; + } else console.error("Die Daten aus Frontend konnten nicht in JSON-Datei gespeichert"); + return null; +} diff --git a/src/Tasks/FermentExercises/Input/__init__.py b/src/Tasks/FermentExercises/Input/__init__.py new file mode 100644 index 0000000..0f2dcb8 --- /dev/null +++ b/src/Tasks/FermentExercises/Input/__init__.py @@ -0,0 +1,4 @@ + + +#Das Hinzufügen der '__init__.py'-Datei im Input-Verzeichnis ist wichtig, +#damit Python das Input-Verzeichnis als Paket behandelt und die darin enthaltenen Module importieren kann. \ No newline at end of file diff --git a/src/Tasks/FermentExercises/Input/inputBaseClass.py b/src/Tasks/FermentExercises/Input/inputBaseClass.py new file mode 100644 index 0000000..d49cb1c --- /dev/null +++ b/src/Tasks/FermentExercises/Input/inputBaseClass.py @@ -0,0 +1,14 @@ +from abc import ABC, abstractmethod + + + +class InputBase(ABC): + + @abstractmethod + def find_pfad(): + pass + + @abstractmethod + def ladeJson(self): + pass + diff --git a/src/Tasks/FermentExercises/Input/json_Input.py b/src/Tasks/FermentExercises/Input/json_Input.py new file mode 100644 index 0000000..7ddf93b --- /dev/null +++ b/src/Tasks/FermentExercises/Input/json_Input.py @@ -0,0 +1,83 @@ + +import os +import json +from Input.inputBaseClass import InputBase + +class JsonInput(InputBase): + + + + def __init__(self,datei_name): #Konstruktor + self.__jsonName = datei_name # private variable + + # Deklaration des Attributs außerhalb des Konstruktors + __data = None + + def set_data(self,data): + self.__data=data + + def get_data(self): + return self.__data + + def get_jsonName(self): + return self.__jsonName + + def set_jsonName(self, value): + self.__jsonName = value + + + + + + def find_pfad(self): + root_directory = os.path.abspath('src/Tasks/FermentExercises') # Den absoluten Pfad des Projektnamens ermitteln + + for root, dirs, files in os.walk(root_directory): + for file in files: + if file.lower() == self.__jsonName.lower(): + return os.path.join(root, file) # Dateipfad zurückgeben, sobald die Datei gefunden wurde + return None # Wenn die Datei nicht gefunden wurde, wird None zurückgegeben + + + def ladeJson(self): + # Vollständiger Pfad zur JSON-Datei + json_path = self.find_pfad() + if json_path is None : + print('Pfad zur Datei nicht gefunden.!!!') + return None + + print('Datei gefunden:', json_path) # Fügen Sie Debugging-Ausgabe hinzu + try: + # Öffne die JSON-Datei und lade sie + with open(json_path, 'r') as file: + data = json.load(file) + self.set_data(data) + + except FileNotFoundError: + print(f"Die Datei '{self.__jsonName}' konnte nicht geladen werden.") + return None + + + def get_Value(self): + + # JSON-String zu Python-Dictionary konvertieren + data = self.__data + + # Array initialisieren + result = [] + + for key, value in data.items(): + if isinstance(value, dict): + result.append({sub_key: float(sub_value) if isinstance(sub_value, (int, float)) else sub_value + for sub_key, sub_value in value.items()}) + else: + # Wenn der Wert kein Dictionary ist oder kein Array enthält + result.append(value) + + for i, r in enumerate(result): + if isinstance(r, int): + result[i]=int(r) + elif isinstance(r,list): + result[i] = [float(val) for val in r] + + return result diff --git a/src/Tasks/FermentExercises/berechnungen.py b/src/Tasks/FermentExercises/berechnungen.py new file mode 100644 index 0000000..806020f --- /dev/null +++ b/src/Tasks/FermentExercises/berechnungen.py @@ -0,0 +1,219 @@ +import pandas as pd +import numpy as np +import os +import optuna +from scipy.integrate import solve_ivp +from openpyxl import Workbook +from differentialgleichung import ODE_Bioreactor_Monod +from optimierung import objective +import json + + +from array import array + + + +def berechnung_der_Tabelle1(parameter_werte,modull,data,zuluft,feed,phasen_anzahl): + #float array deklarieren + const_array= [array('d', [0] * 20) for _ in range(phasen_anzahl)] + + for i in range(phasen_anzahl): + const_array[i][0]=parameter_werte[i][0] #!Sauersto. in g/l + const_array[i][1]=parameter_werte[i][1] #!kla_werte[i][17] + const_array[i][3]=float(zuluft[i]) #0.2 #Modell H7-k7 + const_array[i][4]=0.2095 #! Anteil Sauerstoff in der Luft [0-1] + const_array[i][5]=0.0004147 #!Anteil Co2 in der Luft [0-1] + const_array[i][14]=parameter_werte[i][2] #! Wachstumsrate + const_array[i][19]=float(feed[i]) #0.1 #Modell H10-K10 + if i == 0: #Phase 1 + + const_array[0][2]=data.get(modull, {}).get("RQ") #SVERWEIS(Modell!$B$3;Tabelle1[#Alle];13;FALSCH) + const_array[0][6]=data.get(modull, {}).get("ks_ox") #SVERWEIS(Modell!$B$3;Tabelle1[#Alle];12;FALSCH) + const_array[0][7]=data.get(modull, {}).get("Yxox") #SVERWEIS(Modell!$B$3;Tabelle1[#Alle];14;FALSCH) + const_array[0][8]=data.get(modull, {}).get("Produktbildung") #SVERWEIS(Modell!$B$3;Tabelle1[#Alle];15;FALSCH) + const_array[0][9]=data.get(modull, {}).get("ap") #SVERWEIS(Modell!$B$3;Tabelle1[#Alle];16;FALSCH) + const_array[0][10]=data.get(modull, {}).get("bp") #SVERWEIS(Modell!$B$3;Tabelle1[#Alle];17;FALSCH) + const_array[0][11]=data.get(modull, {}).get("kp_max") #SVERWEIS(Modell!$B$3;Tabelle1[#Alle];18;FALSCH) + const_array[0][12]=data.get(modull, {}).get("km_s1p") #SVERWEIS(Modell!$B$3;Tabelle1[#Alle];19;FALSCH) + const_array[0][13]=data.get(modull, {}).get("Ypx_mu") #SVERWEIS(Modell!$B$3;Tabelle1[#Alle];20;FALSCH) + const_array[0][15]=data.get(modull, {}).get("Ks_s1x") #SVERWEIS(Modell!$B$3;Tabelle1[#Alle];8;FALSCH) + const_array[0][16]=data.get(modull, {}).get("Yxs1") #SVERWEIS(Modell!$B$3;Tabelle1[#Alle];10;FALSCH) + const_array[0][17]=data.get(modull, {}).get("Ks_s2x") #SVERWEIS(Modell!$B$3;Tabelle1[#Alle];9;FALSCH) + const_array[0][18]=data.get(modull, {}).get("Yxs2") #SVERWEIS(Modell!$B$3;Tabelle1[#Alle];11;FALSCH) + else : #alle anderen Phasen + const_array[i][2]=const_array[i-1][2] + const_array[i][6]=const_array[i-1][6] + const_array[i][7]=const_array[i-1][7] + const_array[i][8]=const_array[i-1][8] + const_array[i][9]=const_array[i-1][9] + const_array[i][10]=const_array[i-1][10] + const_array[i][11]=const_array[i-1][11] + const_array[i][12]=const_array[i-1][12] + const_array[i][13]=const_array[i-1][13] + const_array[i][15]=const_array[i-1][15] + const_array[i][16]=const_array[i-1][16] + const_array[i][17]=const_array[i-1][17] + const_array[i][18]=const_array[i-1][18] + + + # Dezimalstellen nach komma grenzen, maximal 9 Stellen nach komma + for i in range(len(const_array)): + for j in range(len(const_array[i])): + try: + const_array[i][j] = round(float(const_array[i][j]), 9) + except ValueError: + pass + + return const_array + + +def berechnung_der_Tabelle2(dauer,phasen_anzahl): + #float array deklarieren + t_ranges_array= [array('d', [0] * 2) for _ in range(phasen_anzahl)] + + for i in range(phasen_anzahl): + if i == 0: #Phase 1 + t_ranges_array[i][0]=0 + t_ranges_array[i][1]=dauer[i] + else: + t_ranges_array[i][0]=t_ranges_array[i-1][1] + t_ranges_array[i][1]=t_ranges_array[i-1][1]+dauer[i] + return t_ranges_array + + +def berechnung_der_Tabelle3(const_array,startbiomasse,bolus_c,bolus_n,do,phasen_anzahl): + param_array= [array('d', [0] * 7) for _ in range(phasen_anzahl)] + + for i in range(phasen_anzahl): + if i == 0: #Phase 1 + param_array[i][0]=startbiomasse + param_array[i][1]=float(bolus_c[i]) + param_array[i][2]=float(bolus_n[i]) + param_array[i][3]=0 + param_array[i][4]=(const_array[i][0]*do)/100 + param_array[i][5]=const_array[i][4] + param_array[i][6]=const_array[i][5] + else: + param_array[i][1]=float(bolus_c[i]) + param_array[i][2]=float(bolus_n[i]) + + + return param_array + + + + +def berechnung(t_ranges_array, param_array, const_array_array, phasen_anzahl, maxParameter, minParameter, varierendeParameter,frontendeingabe): + data_rate = 10 # Anzahl der Datenpunkte pro Stunde + + t_ranges_array = np.array(t_ranges_array) + param_array = np.array(param_array) + const_array_array = np.array(const_array_array) + + t_combined = np.array([]) + y_combined = np.array([]) + cum_feeding = np.array([]) + feed_s1_values = {} # Dictionary zur Speicherung der Feed-Werte + + + bestParam = {} + for param in varierendeParameter: + bestParam[param] = {} + for i in range(phasen_anzahl): + bestParam[param][f"Phase_{i+1}"] = 'Nan' + + for i in range(phasen_anzahl): + if i == 0: + y0 = param_array[i, :] # Erste Zeile aus Dim. Array als Vektor + else: + + mx_0 = ry[-1, 0] # Biotrockenmasse in g/L + cs1_0 = ry[-1, 1] + param_array[i, 1] # Konz. Substrat 1 in g/L + cs2_0 = ry[-1, 2] + param_array[i, 2] # Konz. Substrat 1 in g/L + cp_0 = ry[-1, 3] # Konz. Produkt in g/L + c_ox_0 = ry[-1, 4] # Konz. Gelöstsauerstoff in g/L zum Start der Fermentation + O2_Out = ry[-1, 5] # Konz. O2 in Abluft + CO2_Out = ry[-1, 6] # Konz. CO2 in Abluft + + y0 = [mx_0, cs1_0, cs2_0, cp_0, c_ox_0, O2_Out, CO2_Out] # Startparameter in Vektor + + t_start = t_ranges_array[i, 0] + t_end = t_ranges_array[i, 1] + + if t_start != t_end: + num1 = int(data_rate * (t_end - t_start)) + t_span = np.linspace(t_start, t_end, num=num1) # Zeitvektor bauen + consts = const_array_array[i, :] + + if maxParameter or minParameter: + #sampler = optuna.samplers.GridSampler() + study = optuna.create_study() + + study.optimize( + lambda trial: objective(trial, t_start, t_end, y0, consts, t_span, varierendeParameter, maxParameter, minParameter), + n_trials=30) + + tmp_sol = study.best_trial.user_attrs.get("sol", None) + + if tmp_sol is not None and hasattr(tmp_sol, "success") and tmp_sol.success: + best_params = study.best_trial.params + for param in varierendeParameter: + if param.lower() in best_params: + bestParam[param][f"Phase_{i+1}"] = best_params[param.lower()] + + else : + tmp_sol =solve_ivp(ODE_Bioreactor_Monod, [t_start, t_end], y0, args=(consts,), t_eval=t_span, atol=1e-9, rtol=1e-9) + + ry = tmp_sol.y.T + rt = tmp_sol.t + + if i == 0: + y_combined = ry + t_combined = rt + cum_feeding = t_span * consts[19] + else: + y_combined = np.vstack((y_combined, ry)) + t_combined = np.hstack((t_combined, rt)) + cum_feeding = np.hstack((cum_feeding, t_span * consts[19])) + #else : feed_s1_values[f"Phase_{indextmp}"] = 0 #! temp zu fragen + + # Ergebnisse speichern + c_ox_sat = const_array_array[0, 0] + cum_feeding = cum_feeding.T + + + frontendeingabe['T'] = frontendeingabe.pop('temperatur') + frontendeingabe['BTM'] = frontendeingabe.pop('startbiomasse') + + for param in bestParam: + for phasen in bestParam[param]: + if bestParam[param][phasen] == 'Nan': + bestParam[param][phasen] = 0 + else: + bestParam[param][phasen] = round(bestParam[param][phasen],1) + + for param in frontendeingabe: + if param not in bestParam: + if isinstance(frontendeingabe[param], list): # Prüft, ob es eine Liste ist + bestParam[param] = {} # Muss ein Dictionary sein, um Phasen als Schlüssel zu setzen + for i, value in enumerate(frontendeingabe[param]): + bestParam[param][f"Phase_{i+1}"] = value # Phasen beginnen bei 1 + else: + bestParam[param] = frontendeingabe[param] # Einzelwerte direkt übernehmen + + + for param in {"Modell", "PhasenAnzahl", "maxParameter", "minParameter", "varierendeParameter"}: + bestParam.pop(param, None) # Entfernt den Key, falls vorhanden, sonst passiert nichts + + + + with open("src/Tasks/FermentExercises/parameter_loesung.json", "w") as json_file: + json.dump(bestParam, json_file, indent=4) + + + return c_ox_sat, y_combined, t_combined, cum_feeding + + + + + diff --git a/src/Tasks/FermentExercises/bericht.adoc b/src/Tasks/FermentExercises/bericht.adoc new file mode 100644 index 0000000..5c9f291 --- /dev/null +++ b/src/Tasks/FermentExercises/bericht.adoc @@ -0,0 +1,673 @@ += Bericht +:toc: +:toc-title: + +== Motivation + +Die Ausbildung im Bereich der chemischen Prozesse, insbesondere der Fermentation, steht vor großen Herausforderungen. Fermentationsreaktoren sind teuer, und die Experimente erfordern oft viel Zeit, sodass Studierende in klassischen Lehrveranstaltungen nur begrenzt praktische Erfahrungen sammeln können. Dies erschwert den Aufbau nachhaltigen Wissens. + +Um diesem Problem zu begegnen, wurde FermentALADIN entwickelt. Sie ermöglicht es, chemische Prozesse - insbesondere Fermentationsprozesse - virtuell und interaktiv zu simulieren. Studierende können durch wiederholte Simulationen verschiedene Parameterkombinationen ausprobieren und so wertvolle Erfahrungen sammeln, ohne auf teure und zeitaufwendige Experimente angewiesen zu sein. + +Mit dieser Plattform wird ein praxisnahes Lernen ermöglicht, das sowohl die analytischen als auch die problemlösungsorientierten Fähigkeiten der Studierenden fördert. + +== Implementierung der Python-Code + +In unserem Projekt geht es darum, Fermentation-Prozesse digital zu machen. Um das zu schaffen, mussten wir erstens ein paar Python-Skripte implementieren. Die ersten zwei Python-Skripte, die wir implementiert haben, sind *Berechnungen.py* und *Differential-Gleichung.py*. + +[pagebreak] +=== Differential-Gleichung.py + +image::./images/differentialgleichung_py.png[] + +*Die Funktion ODE_Bioreactor_Monod* beschreibt ein mathematisches Modell zur Simulation eines Bioreaktors basierend auf der Monod-Kinetik. Sie nimmt als Eingabe die Zeit t, die aktuellen Prozessparameter p sowie eine Reihe von Konstanten consts und berechnet die zeitliche Änderung verschiedener biologischer und chemischer Konzentrationen. + +Zu Beginn werden wichtige biotechnologische Parameter aus consts extrahiert, darunter Sauerstofflöslichkeit, Begasungsrate, Ausbeutungskoeffizienten und Wachstumsraten. Anschließend werden die aktuellen Konzentrationen für Biomasse, Substrate, Produkt und gelösten Sauerstoff aus p zugewiesen. Die Berechnungen umfassen die spezifische Wachstumsrate der Mikroorganismen nach der Monod-Gleichung sowie die Sauerstofftransferrate (OTR) und den Sauerstoffverbrauch (OUR). + +Das Modell berücksichtigt zudem die Substratverbrauchsraten, die Produktbildungsrate nach Luedeking-Piret sowie die Bilanzierung der gelösten Sauerstoffkonzentration. Weiterhin wird der Gehalt an Sauerstoff und CO₂ in der Abluft nach einem CSTR-Ansatz berechnet. Schließlich gibt die Funktion ein Array zurück, das die Änderungsraten der Biomasse, Substratkonzentrationen, Produktkonzentration, Sauerstoffkonzentration sowie die Gaskonzentrationen in der Abluft enthält. + +[pagebreak] +=== Berechnungen.py + +image::./images/Berechnung_py.png[] + +==== Funktion: berechnung_der_Tabelle1 +Diese Funktion erstellt eine mehrdimensionale Liste (const_array), die verschiedene Parameter für jede Phase eines Prozesses speichert. Die Werte werden aus der Eingabe (parameter_werte, zuluft, feed) sowie einer Datenquelle (data) entnommen. In der ersten Phase werden spezifische Werte aus data extrahiert, während in den folgenden Phasen bestimmte Parameter aus der vorherigen Phase übernommen werden. Abschließend werden alle Werte auf neun Dezimalstellen gerundet. + +==== Funktion: berechnung_der_Tabelle2 +Hier wird ein Zeitbereichs-Array (t_ranges_array) für jede Phase berechnet. Die Dauer jeder Phase (dauer) wird iterativ summiert, um Start- und Endzeiten zu bestimmen. Die erste Phase beginnt bei null, während die folgenden Phasen an die Endzeit der vorherigen Phase anschließen. Das Ergebnis ist eine Liste von Intervallen, die den zeitlichen Ablauf des Prozesses strukturieren. + +==== Funktion: berechnung_der_Tabelle3 +Diese Funktion erzeugt ein Array (param_array), das initiale Bedingungen für jede Phase speichert. Für die erste Phase werden die Startbiomasse sowie Werte für Substrate (bolus_c, bolus_n), Sauerstoff (do) und weitere Parameter aus const_array gesetzt. In den folgenden Phasen werden nur bestimmte Werte (bolus_c und bolus_n) aktualisiert, während andere unverändert bleiben. + +==== Fubktion: berechnung +1. Initialisierung und Umwandlung der Eingabedaten +Die Funktion berechnung beginnt mit der Definition der Datenrate, die die Anzahl der Datenpunkte pro Stunde bestimmt. Danach werden die Eingabedaten t_ranges_array, param_array und const_array_array in NumPy-Arrays umgewandelt, um eine effizientere Verarbeitung zu ermöglichen. Zusätzlich werden leere Arrays für t_combined (gesamte Zeitpunkte), y_combined (Ergebnisse der Berechnung) und cum_feeding (kumulierte Substratzufuhr) erstellt. Diese Variablen werden später verwendet, um die simulierten Werte über alle Phasen hinweg zu speichern. + +2. Iteration über die Phasen +Die Berechnung erfolgt über mehrere Phasen hinweg, wobei jede Phase in einer Schleife durchlaufen wird. In der ersten Phase (i == 0) wird der Startwert y0 direkt aus dem Parameterarray übernommen. Für alle weiteren Phasen (i > 0) werden die Startwerte aus den zuletzt berechneten Werten (ry[-1]) der vorherigen Phase extrahiert. Dabei werden Parameter wie die Biomasse, die Substratkonzentration und der gelöste Sauerstoff neu gesetzt, wobei Zugaben von Substrat berücksichtigt werden. + +3. Lösung des Differenzialgleichungssystems +Für jede Phase wird die Differentialgleichung mit der Funktion solve_ivp gelöst, die das System ODE_Bioreactor_Monod numerisch integriert. Der Simulationszeitraum wird durch t_start und t_end bestimmt, und die Zeitpunkte für die Berechnung werden mit np.linspace erzeugt. Die erhaltenen Ergebnisse (sol.y und sol.t) werden in ry und rt gespeichert. Diese Werte enthalten die Konzentrationen verschiedener Stoffe über die Zeit. + +4. Speichern und Zusammenführen der Ergebnisse +Die berechneten Werte jeder Phase werden an die Gesamtarrays y_combined und t_combined angehängt. Dabei werden die Werte mit np.vstack (vertikal zusammenfügen) und np.hstack (horizontal zusammenfügen) kombiniert. Zudem wird die kumulierte Substratzufuhr (cum_feeding) durch Multiplikation der Zeitwerte mit dem Feed-Parameter berechnet. Dadurch entsteht eine fortlaufende Simulation über alle Phasen hinweg. + +5. Rückgabe der berechneten Daten +Am Ende gibt die Funktion wichtige Berechnungsergebnisse zurück: c_ox_sat (Sauerstoffsättigungskonzentration), y_combined (alle berechneten Konzentrationen), t_combined (Zeitpunkte der Berechnung) und cum_feeding (kumulierte Fütterung). Diese Daten können anschließend für weitere Analysen oder zur Visualisierung der Fermentationsprozesse verwendet werden. + + + + +In diesen zwei Skripten geht es darum, dass eine Differential-Gleichung läuft und Ergebnisse abgibt. Danach mussten wir diese Ergebnisse in einem Diagramm zeigen. Und hier kommt *View.py*. Dieser View.py nimmt diese Ergebnisse und gibt ein diagramm. + +Für **die Plotin** nützen wir die Bibliothek matplotlib. + +=== View.py + +image::./images/view_py.png[] + +Die Funktion plot_visualisieren dient der grafischen Darstellung von Fermentationsverläufen anhand der berechneten Konzentrationen von Biomasse, Substrat und Produkt über die Zeit. Zunächst werden die übergebenen Daten (y_combined und t_combined) in die richtige Form gebracht, sodass sie für das Plotten genutzt werden können. Anschließend werden allgemeine Darstellungsoptionen für die Diagramme, wie Schriftgröße, Linienstärke und Farbpalette, festgelegt. + +*Es werden zwei Subplots erstellt*: Der erste zeigt den Verlauf der Biomassekonzentration (c_x), der Substratkonzentrationen (c_S1) und (c_S2), der Produktkonzentration (c_P), sowie den Sauerstoffgehalt (c_O2) und die kumulierte Substratzufuhr (cum_feeding). Die Daten werden farblich codiert, und die Legende wird unterhalb des Plots positioniert. + +Der zweite Subplot konzentriert sich auf den Verlauf der zweiten Substratkomponente (c_S2) über die Zeit. Beide Diagramme enthalten Achsenbeschriftungen, eine Gitternetzlinie für bessere Lesbarkeit und eine Begrenzung der y-Achse, sodass keine negativen Werte dargestellt werden. Schließlich wird das Diagramm ausgegeben, um eine visuelle Analyse des Fermentationsprozesses zu ermöglichen. + +=== excel_export.py +Wir müssen die Ergebnisse der Fermentation als CSV-Datei exportieren und dafür brauchen wir Excel excel_export.py + +image::./images/excel_export_py.png[] + +Die Funktion *export_to_excel* exportiert die übergebenen Daten als Excel-Datei in den Downloads-Ordner des Benutzers. Zunächst wird geprüft, ob dieser Ordner existiert; falls nicht, wird eine Fehlermeldung ausgegeben. Danach wird der vollständige Pfad zur Zieldatei erstellt, und eine eventuell vorhandene Datei mit demselben Namen wird gelöscht, um Konflikte zu vermeiden. + +Die Excel-Datei wird mit der Bibliothek openpyxl erstellt, wobei eine neue Arbeitsmappe (Workbook) und ein Arbeitsblatt (ws) angelegt werden. In der ersten Zeile werden die Spaltenüberschriften definiert, die relevante Messwerte wie Biomassekonzentration, Substratkonzentrationen und kumulatives Feeding enthalten. + +Anschließend werden die Daten zeilenweise in die Excel-Tabelle geschrieben. Dabei werden die Zeitwerte (t_combined), die Messwerte (y_combined) und das kumulative Feeding (cum_feeding) kombiniert. Schließlich wird die Datei gespeichert, und der Speicherort wird in der Konsole ausgegeben. + + +=== inputBaseClass.py & json_input.py + +Zur Erfassung der benötigten Daten für den Fermentationsprozess wird eine Klasse verwendet. Diese Klasse nimmt die Benutzereingaben entgegen und speichert die Daten anschließend in einer JSON-Datei, um sie später für die Berechnungen zur Verfügung zu stellen. + +==== inputBaseClass.py + +image::./images/inputBaseClass_py.png[] + +InputBase-Klasse und Vererbung: Die InputBase-Klasse ist eine abstrakte Basisklasse, die als Vorlage für andere Eingabeklassen dient. Sie definiert zwei abstrakte Methoden: find_pfad und ladeJson, die von jeder Unterklasse implementiert werden müssen. Diese Struktur stellt sicher, dass alle abgeleiteten Klassen ein einheitliches Interface bieten, um mit Eingabedaten zu arbeiten. + +==== json_input.py +image::./images/json_Input_py.png[] + +* JsonInput-Klasse: Die JsonInput-Klasse erbt von InputBase und implementiert die abstrakten Methoden, um mit JSON-Dateien zu arbeiten. Im Konstruktor wird der Name der JSON-Datei festgelegt. Zusätzlich enthält die Klasse Methoden zur Verwaltung und zum Laden von JSON-Daten sowie zum Speichern und Abrufen von Attributen wie dem Dateinamen und den geladenen Daten. + +* find_pfad-Methode: Die Methode find_pfad sucht rekursiv im Projektverzeichnis nach einer Datei mit dem angegebenen Namen. Sie gibt den vollständigen Dateipfad zurück, wenn die Datei gefunden wird, andernfalls wird None zurückgegeben. Dies ermöglicht eine effiziente Suche nach der Datei, ohne dass der Benutzer den Pfad manuell eingeben muss. + +* ladeJson-Methode: Die ladeJson-Methode nutzt die find_pfad-Methode, um den Pfad der JSON-Datei zu ermitteln. Wenn die Datei gefunden wird, wird sie geöffnet und die Daten werden in ein Python-Objekt umgewandelt. Falls die Datei nicht existiert oder nicht geladen werden kann, gibt es eine Fehlermeldung. Die geladenen Daten werden in einer privaten Instanzvariablen gespeichert. + +* get_Value-Methode: Die get_Value-Methode konvertiert die geladenen JSON-Daten in eine flache Liste. Sie durchsucht die Daten und extrahiert die Werte, selbst wenn sie in verschachtelten Dictionaries enthalten sind. Die Methode sorgt zudem dafür, dass alle Werte korrekt in den entsprechenden Datentyp konvertiert werden, z. B. Ganzzahlen oder Listen von Floats. Das Ergebnis ist eine Liste, die die extrahierten Werte enthält. + + +=== main.py + +image::./images/main_py.png[] + +In der Datei main.py werden verschiedene Funktionen aus unterschiedlichen Modulen aufgerufen, um den gesamten Berechnungs- und Visualisierungsprozess zu steuern. Die Funktion plot_visualisieren aus view dient der grafischen Darstellung der Ergebnisse, während export_to_excel aus excel_export die berechneten Daten in eine Excel-Datei exportiert. + +Für zusätzliche Berechnungen werden verschiedene Funktionen aus nebenrechnungen und berechnungen verwendet. Dazu gehören die Berechnung der Sauerstofflöslichkeit, des kla-Wertes sowie weitere Parameter. Zudem werden drei Tabellen berechnet, die zentrale Ergebnisse liefern. + +Zur Datenverarbeitung wird data_importieren_von_json aus interne_daten genutzt, um Daten aus JSON-Dateien zu laden. JsonInput aus Input.json_Input ermöglicht die Verarbeitung von Eingaben im JSON-Format. + + +== Integration der Python-Code in ALADIN-Framework + +*ALADIN* besteht aus zwei Hauptkomponenten: dem Frontend, genannt CARPET, und dem Backend, genannt ALADIN. Für die Integration unseres Python-Codes in das ALADIN-Framework haben wir spezifische JSON-Dateien erstellt, darunter eine namens Ferment. Diese Dateien dienen dazu, die Funktionalität des Python-Codes innerhalb des Frameworks zu definieren und zu steuern. Im Frontend, also in CARPET, haben wir entsprechende Vue-Komponenten entwickelt, die mit dem Backend interagieren, um eine nahtlose Benutzererfahrung zu gewährleisten. + + +=== Ferment + +*Der Python-Code* befindet sich im Verzeichnis ./src/Tasks/Ferment, während die *Ferment.json* Datei unter ./src/server/tempTaskGraphStorage/tasks/Ferment.json gespeichert ist. + +==== Änderungen in Python-Code für Ferment.json + +* Erste Änderung : Umbennenug der Datei *main.py* zu *generateFermentationData.py* +* Zweite Änderung : *generateFermentationData.py* um generateFermentationDataMain()-Fubktion erweitert. + +image::./images/generateFermentationDataMain.png[] + +Die Funktion generateFermentationDataMain() hat die Aufgabe, die berechneten Fermentationsdaten in einem strukturierten Format für die spätere Visualisierung und Analyse zu organisieren. Sie bereitet zwei Datensätze (data_1 und data_2) vor, die die zeitlich abhängigen Werte für verschiedene Parameter der Fermentation enthalten. Diese Parameter beinhalten die Biotrockenmasse (cₓ), die Substratkonzentrationen (cₛ₁ und cₛ₂), die Produktkonzentration (cₚ), den Sauerstoffgehalt (cₒ₂) und das kumulierte Feeding von Substraten. + +Jeder Datensatz wird in einem JSON-kompatiblen Format ausgegeben, das Labels für die Zeitpunkte (t_combined) und jeweils die entsprechenden Daten für jede Messgröße enthält. Die Daten werden zudem mit Farbcodes versehen, um sie später in Diagrammen visuell darzustellen. Nachdem die Daten vorbereitet wurden, wird das Ergebnis als JSON-Datei gespeichert (data.json), die für die Frontend-Anzeige oder zur Weiterverarbeitung in einem späteren Schritt verwendet werden kann. + +Zusätzlich wird die Funktion genutzt, um eine Excel-Datei zu erzeugen, die sowohl die Eingabedaten als auch die berechneten Chart-Daten enthält, und schließlich wird eine Rückmeldung (Feedback-Schätzung) durchgeführt, um das System zu bewerten. + +* Dritte Änderung : Benutzereingaben nicht mehr aus Konsole einlesen sondern aus JSON-Datei. +* Vierte Änderung : Es wurde auf Plotting in Python-Code verzichtet. weil es eine andere Framework in Frotend benutzt werden. + +==== Ferment.json + +Für die Ferment-Webanwendung ist im Backend die Datei *Ferment.json* zuständig. In dieser Datei werden die notwendigen APIs und Komponenten sowie deren Reihenfolge, Positionen und Parameter initialisiert und definiert. + +Die *Ferment.json* ist also eine zentrale Konfigurationsdatei für die Webanwendung, die speziell für Expementierung gedacht ist. Sie ist strukturiert in verschiedene Abschnitte, um die Kommunikation mit der API, die Verarbeitung von Aufgaben im Worker-Bereich und die Darstellung der UI (Benutzeroberfläche) zu ermöglichen. + +.... +{ + "API": [ + { + "task": "Ferment", + "name": "generateFermentationDataMain", + "httpMethod": "post", + "params": { + "parameters": "object" + } + } + ], + "worker": { + "FermentTask": { + "minConsumers": 1, + "consumerInstructions": { + "generateFermentationDataMain": { + "dependencies": ["generateFermentationDataMain"], + "body": "async (taskDescription) => {let result = {};try { result = generateFermentationDataMain(taskDescription)} catch{} return result; }" + } + } + } + }, + "UI": { + "currentTask": "Ferment", + ... + ... + "components": { + "3": { + "name": "Fermentationsverlauf", + "type": "Chart", + "component": { + "labels": "taskData__data_1__labels", + "datasets": "taskData__data_1__datasets" + } + } + } + } +} +.... + +==== Detaillierte Erklärung der Abschnitte +===== API : + +* task: In welchem Task befinden (hier "Ferment"). +* name: Der Name der Funktion, die in der API ausgeführt werden soll (z.B. "generateFermentationDataMain"). + ** Alle nötige Funktionen müssen in eine *wrapperFunctionCallPython.ts* implementiert werden. + +.... + export async function generateFermentationDataMain(parameter: any) { + let check = editSaveParams(parameter); + if (check) { + let result = { foo: "bar" }; + try { + let pythonScriptPath = "generateFermentationData.py"; + pythonScriptPath = path.join(__dirname, pythonScriptPath); + (await runPythonScript(pythonScriptPath)) as any; + + result = JSON.parse(fs.readFileSync(path.join(__dirname, "data.json"), "utf-8")); + const filePath = path.join(__dirname, "data.json"); + fs.writeFileSync(filePath, JSON.stringify(result, null, 2), "utf-8"); + + //console.log(result); + //insofern kryptsiche Zeichen in der JSON Ausgabe vorhanden sind .> Workaround mittels File + } catch (error) { + console.error("Error running Python script:", error); + } + return result; + } else console.error("Die Daten aus Frontend konnten nicht in JSON-Datei gespeichert"); + return null; +} +.... + + * Dann müsste diese Datei *wrapperFunctionCallPython.ts* in *TaskWrapper.ts* (./src/server/TaskWrapper.ts) importiert und in "generators" gesetzt werden : + +.... + import { generateFermentationDataMain } from "../Tasks/Ferment/wrapperFunctionCallPython"; + import { generateFermentExercises } from "../Tasks/FermentExercises/wrapperFunctionCallPython"; + import { generateFermentationFeedBack } from "../Tasks/Ferment/wrapperFunctionCallPython" + ... + ... + // TODO generalize generators into serialisable functions + const generators: { [key: string]: any } = { + GozintographTaskGenerator: GozintographTaskGenerator, + ... + generateFermentationDataMain: generateFermentationDataMain, + generateFermentExercises: generateFermentExercises, + generateFermentationFeedBack: generateFermentationFeedBack + }; +.... + +* httpMethod: Die HTTP-Methode, die für den API-Aufruf verwendet wird (z.B. POST). +* params: Hier können Parameter angegeben werden, die an die API übergeben werden. In diesem Fall handelt es sich um ein "parameters"-Objekt. + +===== Worker : + +* FermentExercisesTask: Der Worker-Abschnitt beschreibt, wie Aufgaben bearbeitet werden. +* minConsumers: Gibt an, wie viele "Consumer" (Verbraucher) erforderlich sind, um die Aufgabe zu verarbeiten. +* consumerInstructions: Hier wird beschrieben, wie die Aufgabe ausgeführt wird, mit einer generateFermentExercises-Funktion, die Asynchronität unterstützt. +* dependencies: Definiert, dass die generateFermentationDataMain-Funktion von sich selbst abhängt (dies könnte für spätere Erweiterungen oder Abhängigkeiten nützlich sein). + +===== UI: + +* currentTask: Gibt den aktuellen Task an, der im UI bearbeitet wird (hier "Ferment"). +* components: In dem Abschnitt wird eine oder mehrere Vue-Komponenten definiert, die im Frontend implementiert sind. Hier werden sie aufgerufen und mit den nötigen Parametern initialisiert. Das bedeutet, dass man in diesem Abschnitt die UI-Komponenten definiert, die auf der Seite angezeigt werden sollen, und ihre spezifischen Parameter oder Daten, die von der Webanwendung benötigt werden. + +** "3" : Der Schlüssel "3" dient dazu, diese spezielle Komponente zu identifizieren. +** "type" : hier wird definiert, welche Vue-Komponente aufgerufen wird. + *** Unter src/components im CARPET-Verzeichnis sind verschiedene *Vue-Komponenten* implementiert, die mehrfach verwendet werden können. + + Vue-Komponent definieren + Nachdem Sie eine Vue-Datei erstellt haben, müssen Sie diese in der Datei Canvas.vue (src/components/Canvas.vue) importieren und im export default-Objekt registrieren, damit die Komponente global verwendet werden kann. + Beispiel : + // In Canvas.vue + import MyComponent from './components/MyComponent.vue'; + + export default { + name: 'Canvas', + components: { + MyComponent + } + }; + +** "name" : Der Name der Komponente wird hier definiert, in diesem Fall "Fermentationsverlauf". Das könnte der Titel oder die Bezeichnung der Checkbox-Gruppe sein, die im UI angezeigt wird. +** "component" : unter diesem Schlüssel werden die Paramater der Vue-Komponent (in diesem Fall Chart.vue) initialisiert. + +==== Ferment-Benutzeroberfläche +===== Startseite + +image::./images/ALADIN-Startseite.png[] + +===== Ferment-Seite + +In diesem Modul können Studierende ihre Eingaben variieren und Fermentationsprozesse unbegrenzt experimentell erkunden. Die Ergebnisse werden in Diagrammen visualisiert, um eine bessere Analyse zu ermöglichen. + +image::./images/Ferment-Startseite.png[] + +* Modell Parameter: ermöglicht dem Nutzer die Auswahl eines von drei Organismen: S. cerevisiae, E. coli oder Testorganismus. Anschließend kann der Nutzer die gewünschte Anzahl an Phasen festlegen. Die Anzahl der Phasen beeinflusst die Tabelle zur Eingabe der Daten, bei x Phasen werden entsprechend x Zeilen in der Tabelle angezeigt werden. +** Generieren! : Sobald der Studierende seine Eingaben abgeschlossen hat, kann er auf diesen Button klicken, um Diagramme basierend auf seinen Eingaben anzuzeigen. + +* Fermentationsapparat: hier können verschiedene Parameter gesteuert werden. Die im Bild dargestellten Parameter wie V (Volumen), T (Temperatur), BTM , pH (pH-Wert) und DO (gelöster Sauerstoff) sind für alle Phasen eingestellt. + + +* Fermentationsparameter: Hier können die Werte für die einzelnen Phasen und Parameter eingetragen werden. Jede Spalte hat einen festgelegten Bereich. Wenn der eingegebene Wert innerhalb des zulässigen Bereichs liegt, wird das Feld *grün* angezeigt. Liegt der Wert außerhalb des Bereichs, wird das Feld *rot* markiert. + +* Fermentationsverlauf & Fermentationsverlauf Cs2: Diese beiden Komponenten dienen der Anzeige der Diagramme, die die Ergebnisse der Eingaben visuell darstellen. + +image::./images/Ferment-Startseite2.png[] + +* Herunterladen-Buttons: Der Nutzer hat die Möglichkeit die Diagramme als Bild zu herunterladen. + +=== FermentExcercises + +*Der Python-Code* befindet sich im Verzeichnis ./src/Tasks/FermentExcercises, während die *FermentExcercises.json* Datei unter ./src/server/tempTaskGraphStorage/tasks/FermentExcersises.json gespeichert ist. + +==== FermentExcercises.json +Die FermentExercise.json ist also eine zentrale Konfigurationsdatei für die Webanwendung, die speziell für Fermentationsübungen (FermentExercises) gedacht ist. Sie ist strukturiert in verschiedene Abschnitte, um die Kommunikation mit der API, die Verarbeitung von Aufgaben im Worker-Bereich und die Darstellung der UI (Benutzeroberfläche) zu ermöglichen. + + +* Beispiel für FermentExercise.json: +.... +{ + "API": [ + { + "task": "FermentExercises", + "name": "generateFermentationDataMain", + "httpMethod": "post", + "params": { + "parameters": "object" + } + } + ], + "worker": { + "FermentExercisesTask": { + "minConsumers": 1, + "consumerInstructions": { + "generateFermentationDataMain": { + "dependencies": ["generateFermentationDataMain"], + "body": "async (taskDescription) => {let result = {};try { result = generateFermentationDataMain(taskDescription)} catch{} return result; }" + } + } + } + }, + "UI": { + "currentTask": "FermentExercises", + ... + ... + "components": { + "2": { + "type": "CheckboxGroup", + "name": "Zu variierende Parameter", + "isValid": true, + "component": { + "options": [ + "Zuluft", + "BolusC", + "Feed", + "BolusN", + "Drehzahl", + "Druck", + "Dauer" + ], + "jsonData": {} + } + } + } + } +} +.... + +===== Detaillierte Erklärung der Abschnitte +====== API : + +* task: In welchem Task befinden (hier "FermentExercises"). +* name: Der Name der Funktion, die in der API ausgeführt werden soll (z.B. "generateFermentationDataMain"). + ** Alle nötige Funktionen müssen in eine *wrapperFunctionCallPython.ts* implementiert werden. + +.... + export async function generateFermentationDataMain(parameter: any) { + let check = editSaveParams(parameter); + if (check) { + let result = { foo: "bar" }; + try { + let pythonScriptPath = "generateFermentationData.py"; + pythonScriptPath = path.join(__dirname, pythonScriptPath); + (await runPythonScript(pythonScriptPath)) as any; + + result = JSON.parse(fs.readFileSync(path.join(__dirname, "data.json"), "utf-8")); + const filePath = path.join(__dirname, "data.json"); + fs.writeFileSync(filePath, JSON.stringify(result, null, 2), "utf-8"); + + //console.log(result); + //insofern kryptsiche Zeichen in der JSON Ausgabe vorhanden sind .> Workaround mittels File + } catch (error) { + console.error("Error running Python script:", error); + } + return result; + } else console.error("Die Daten aus Frontend konnten nicht in JSON-Datei gespeichert"); + return null; +} +.... + + * Dann müsste diese Datei *wrapperFunctionCallPython.ts* in *TaskWrapper.ts* (./src/server/TaskWrapper.ts) importiert und in "generators" gesetzt werden : + +.... + import { generateFermentationDataMain } from "../Tasks/Ferment/wrapperFunctionCallPython"; + import { generateFermentExercises } from "../Tasks/FermentExercises/wrapperFunctionCallPython"; + import { generateFermentationFeedBack } from "../Tasks/Ferment/wrapperFunctionCallPython" + ... + ... + // TODO generalize generators into serialisable functions + const generators: { [key: string]: any } = { + GozintographTaskGenerator: GozintographTaskGenerator, + ... + generateFermentationDataMain: generateFermentationDataMain, + generateFermentExercises: generateFermentExercises, + generateFermentationFeedBack: generateFermentationFeedBack + }; +.... + +* httpMethod: Die HTTP-Methode, die für den API-Aufruf verwendet wird (z.B. POST). +* params: Hier können Parameter angegeben werden, die an die API übergeben werden. In diesem Fall handelt es sich um ein "parameters"-Objekt. + +====== Worker : + +* FermentExercisesTask: Der Worker-Abschnitt beschreibt, wie Aufgaben bearbeitet werden. +* minConsumers: Gibt an, wie viele "Consumer" (Verbraucher) erforderlich sind, um die Aufgabe zu verarbeiten. +* consumerInstructions: Hier wird beschrieben, wie die Aufgabe ausgeführt wird, mit einer generateFermentExercises-Funktion, die Asynchronität unterstützt. +* dependencies: Definiert, dass die generateFermentationDataMain-Funktion von sich selbst abhängt (dies könnte für spätere Erweiterungen oder Abhängigkeiten nützlich sein). + +====== UI: + +* currentTask: Gibt den aktuellen Task an, der im UI bearbeitet wird (hier "FermentExercises"). +* components: In dem Abschnitt wird eine oder mehrere Vue-Komponenten definiert, die im Frontend implementiert sind. Hier werden sie aufgerufen und mit den nötigen Parametern initialisiert. Das bedeutet, dass man in diesem Abschnitt die UI-Komponenten definiert, die auf der Seite angezeigt werden sollen, und ihre spezifischen Parameter oder Daten, die von der Webanwendung benötigt werden. + +** "2" : Der Schlüssel "2" dient dazu, diese spezielle Komponente zu identifizieren. +** "type" : hier wird definiert, welche Vue-Komponente aufgerufen wird. +** "name" : Der Name der Komponente wird hier definiert, in diesem Fall "Zu variierende Parameter". Das könnte der Titel oder die Bezeichnung der Checkbox-Gruppe sein, die im UI angezeigt wird. +** "component" : unter diesem Schlüssel werden die Paramater der Vue-Komponent (in diesem Fall CheckboxGroup.vue) initialisiert. + + + +==== Button im Frontend zur Übermittlung von Benutzereingaben an das Backend + +===== Backendformular (in CARPET) +Das 'Backendformular' ist eine Vue-Datei, die im Backend als Typ (in FermentExcercise.json) verwendet wird. + +Die *Backendformular.vue-Komponente* stellt ein dynamisches Formular zur Eingabe und Verarbeitung von Parametern bereit. Sie rendert verschiedene Formularelemente basierend auf ihrer formType-Eigenschaft und aktualisiert deren Werte über updateElement(). *Die Methode fetchData() erstellt ein payload-Objekt mit den aktuellen Eingaben und sendet es an das Backend*. Zusätzlich kann saveFetchData() die Startparameter aus einer JSON-Datei aktualisieren. Die Komponente nutzt computed, um Änderungen automatisch zu verfolgen, und ActionButtons, um verfügbare Aktionen zu steuern. + +===== Die Funktion preparePayload +Die Funktion preparePayload sammelt alle Werte aus den Formularelementen und strukturiert sie in einem Objekt, das für den Backend-Aufruf benötigt wird. Dabei werden verschiedene Typen von Formularelementen berücksichtigt, wie Zahlenwerte, Bereiche oder Dropdowns. Falls zusätzliche Daten im System gespeichert sind, werden diese ebenfalls ergänzt. Schließlich wird das Objekt um die aktuelle Aufgabe (currentTask) und die gewünschte Aktion (instruction) erweitert. + +.... + +const preparePayload = (instruction) => { + const parameters: { [key: string]: any } = Object.entries(elements.value).reduce( + (parameters, [name, parameter]: [string, { [key: string]: any }]) => { + const { formType, initial } = parameter; + let payload = { ...parameters, [name]: initial }; + if (formType === "RangeFormField") payload[name] = [initial.lowerValue, initial.upperValue]; + if (formType === "ValueFormField") payload[name] = parameter.value; + const dataPfad = computed(() => `${path}__component__data`); + if (dataPfad != null) { + const data = computed(() => getProperty(`${path}__component__data`)); + Object.entries(data.value).forEach(([key, valuePath]) => { + const value = getProperty(valuePath); + payload[key] = value; + }); + } + + return payload; + }, + {} + ); + const payload: { [key: string]: any } = { parameters }; + payload.type = currentTask.value; + payload.task = currentTask.value; + payload.instruction = instruction; + + return payload; + }; +.... + +===== Die Funktion fetchData +Die Funktion fetchData nutzt preparePayload, um die Nutzereingaben zu erfassen. Falls ein Speicherpfad für bereits abgerufene Daten existiert, werden die neuen Eingaben dort gesichert. Anschließend wird das fertige Payload-Objekt in der Konsole ausgegeben und über eine store.dispatch-Funktion an das Backend gesendet. Damit ermöglicht die Funktion die Kommunikation zwischen der Benutzeroberfläche und dem Backend, indem sie die Eingaben verarbeitet und weiterleitet. + +.... +const fetchData = (instruction) => { + const payload = preparePayload(instruction); + if(saveFetchedDataInTemplate_Path.value != null) saveFetchData(payload); + console.log("Payload:", payload); // Ausgabe des Payloads in der Konsole + store.dispatch("fetchTaskData", { + payload: preparePayload(instruction), + endpoint: `${currentTask.value}/${instruction}` + }); + }; +.... + +===== Backendformular in FermentExcercise.json benutzen + +.... + "0": { + "type": "BackendFormular", + "name": "Diagramm generieren", + "isValid": true, + "component": { + "actions": [ + { + "instruction": "generateFermentExercises", + "type": "fetchData", + "label": "Generieren!", + "dependsOn": [ + "nodes__0__components__0__component__form__nodeAmount__isValid", + "nodes__0__components__0__component__form__seed__isValid", + "nodes__0__components__1__isValid" + ] + } + ], + "form": { + "nodeAmount": { + "isValid": true, + "formType": "DropdownFormField", + "label": "Organismus", + "type": "string", + "description": "Zur Verfügung stehende Organismus", + "action": { "instruction": "fetchTaskData", "type": "fetchData", "key": "schema" }, + "initial": "S.cerevisiae", + "options": ["S.cerevisiae", "E.coli", "Testorganismus"], + "presets": { + "easy": "S.cerevisiae", + "medium": "E.coli", + "hard": "Testorganismus" + } + }, + "seed": { + "formType": "ValueFormField", + "label": "Phasenanzahl", + "type": "String", + "description": "Setze einen beliebigen Wert für die Phasenanzahl", + "value": "3", + "boundaries": { "min": 0, "max": 20 }, + "readOnly": false, + "validate": true, + "presets": { + "easy": "", + "medium": "", + "hard": "" + } + } + ... + ... + } + } + } +.... + + +* Aktionen (actions) : +Das Formular enthält eine Schaltfläche "Generieren!", die eine Aktion ausführt: + +** instruction: "generateFermentExercises" → Diese Funktion im Backend wird ausgeführt, wenn der Button gedrückt wird. +** type: "fetchData" → Es wird eine Anfrage an das Backend gesendet. +** dependsOn: Die Aktion wird nur aktiviert, wenn bestimmte Felder gültige Werte haben: +*** nodeAmount (Organismus) +*** seed (Phasenanzahl) +*** Ein weiteres Formularfeld (nodes__0__components__1__isValid) +. Formularfelder (form): + +Das Formular kann aus beliebige Eingabefeldern bestehen. + +Jeder Schlüssel im Abschnitt form entspricht einer Vue-Komponente, die aufgerufen wird, wobei ihre Parameter entsprechend den definierten Werten initialisiert werden. + +==== FermentExcercises-Oberfläche + +Dieses Modul bietet zwei Benutzeroberflächen und ermöglicht es Professoren, gezielte Aufgaben zu erstellen, die von Studierenden gelöst werden sollen. + +* *Professoren-Oberfläche*: Hier können Professoren Aufgaben generieren und deren Parameter definieren. +* *Studierenden-Oberfläche*: Studierende versuchen, die gestellten Aufgaben zu lösen und erhalten Feedback zu ihrer Lösung. + +===== Professoren-Oberfläche + +image::./images/ProfessorenSeite.png[] + +In der Professoren-Oberfläche stehen den Professoren drei Hauptkomponenten zur Verfügung: + +. *Aufgaben Parameter* : +Festlegung der Anzahl der Phasen und der Art des Organismus. +Eingabe der globalen Parameterwerte, die für alle Phasen gelten. +Auswahl der zu optimierenden Parameter, z. B. welche Werte maximiert oder minimiert werden sollen. + +. *Modell Parameter* : +Hier können Professoren definieren, welche Parameter bei der Optimierung berücksichtigt werden. +* *Beispiel*: Wenn der Feed-Wert zwischen 0 und 5 liegen soll, wird das Parameter „Feed“ ausgewählt, mit einem Mindestwert von 0 und einem Höchstwert von 5. + +. *Fermentationsparameter* : +Eine Tabelle, in der für jede Phase spezifische Werte der Parameter eingetragen werden können. + +Nachdem der Professor/in das Ausfüllen abgeschlossen hat, kann er/sie auf den Button „Generieren!“ klicken. Dadurch wird die Aufgabe erstellt und direkt auf der Seite der Studierenden angezeigt. + +Das folgende Bild zeigt ein Beispiel für das Ausfüllen der Aufgabe. + +image::./images/ProfessorenSeite2.png[] + + +===== Studierenden-Oberfläche + +In der Studierenden-Oberfläche wird die Seite wie folgt angezeigt, solange noch keine Aufgabe von der Professorin oder dem Professor generiert wurde. + +image::./images/StudierendenSeite.png[] + +Sobald eine Aufgabe generiert wurde, sieht die Seite wie folgt aus. + +image::./images/StudierendenSeite2.png[] + +In der Studierenden-Oberfläche stehen dem Studierenden sieben Komponenten zur Verfügung: + +. **Organismus und Phasen** : Diese Informationen sind nur zum Lesen zugänglich und zeigen den ausgewählten Organismus sowie die Phasen. + +* *Buttons* : + +** *Generieren* : Sobald der Studierende seine Eingaben abgeschlossen hat, kann er auf diesen Button klicken, um Diagramme basierend auf seinen Eingaben anzuzeigen. +** *Abgeben* : Beim Klicken auf diesen Button wird dem Studierenden Feedback zu seinen Eingaben angezeigt, das ihm zeigt, wie nahe er der Lösung ist und ob seine Eingaben für jede Phase korrekt sind. + +. **Feedback** : Hier wird eine detaillierte Rückmeldung zur Lösung des Studierenden angezeigt. + +. **Aufgabe** : Die Aufgabe, die der Studierende lösen muss, wird angezeigt. + +. **Fermentationsapparat** : Diese Komponente zeigt die Parameter, die für alle Phasen gelten. + +. **Fermentationsparameter**: Hier können die Werte für die einzelnen Phasen und Parameter eingetragen werden. Jede Spalte hat einen festgelegten Bereich. Wenn der eingegebene Wert innerhalb des zulässigen Bereichs liegt, wird das Feld *grün* angezeigt. Liegt der Wert außerhalb des Bereichs, wird das Feld *rot* markiert. + +. **Fermentationsverlauf & Fermentationsverlauf Cs2** : Diese beiden Komponenten dienen der Anzeige der Diagramme, die die Ergebnisse der Eingaben visuell darstellen. + +Wenn der Studierende mit der Aufgabe fertig ist, kann er auf „Generieren“ und dann „Abgeben“ klicken. Die Anzeige wird dann wie folgt aussehen. + +image::./images/StudierendenSeite3.png[] + +Wenn ein Feld korrekt ausgefüllt ist, erhält der Studierende ein Feedback, dass die Eingabe richtig war. Das Feld wird daraufhin gesperrt, und der Studierende muss sich auf die verbleibenden Felder konzentrieren, um die Aufgabe zu lösen. Bei den Diagrammen hat der Studierende zudem die Möglichkeit, das Diagramm herunterzuladen. + + +==== Im folgenden Sequenzdiagramm wird der Ablauf dargestellt + +image::./images/Sequenzdiagramm1.png[] + +Das Sequenzdiagramm beschreibt den Prozess der Erstellung, Bereitstellung und Bewertung einer Aufgabe in einem digitalen System mit vier Beteiligten: der Lehrperson, der Generierungsseite, dem Webserver und der Aufgabenseite. Die Lehrperson gibt die Daten zur Aufgabenerstellung ein, woraufhin die Generierungsseite die Daten als JSON-Datei an den Webserver sendet. Der Webserver erstellt eine optimierte Lösung und speichert sie. Die Aufgabenseite fordert die Aufgabe vom Webserver an und stellt sie den Studierenden zur Verfügung. Nach Bearbeitung der Aufgabe senden die Studierenden ihre Lösung zurück an den Webserver, der diese überprüft und Feedback gibt. + +== Aladin local starten + +=== Docker +* Starten Sie Aladin in Docker + +image::./images/Docker.png[] + +=== Aldin-Verzeichniss in VsCode + +Öffnen Sie das Aladin-Verzeichnis in VS Code, starten Sie anschließend ein 'Git Bash'-Terminal und führen Sie die folgenden Befehle aus: + +* ts-node ./src/server/server.ts + +Nachdem ausführen muss so angezeigt : + +image::./images/Aladin-VsCode.png[] + +=== Carpet-Verzeichniss in VsCode + +Öffnen Sie das Carpet-Verzeichnis in VS Code, starten Sie anschließend ein 'Git Bash'-Terminal und führen Sie die folgenden Befehle aus: + +* npm run dev + +image::./images/Carpet-VsCode.png[] + +* Dann jetzt besuchen Sie den angezeigten Link + +image::./images/ALADIN-Startseite.png[] + + +== Schluss + +FermentALADIN bietet eine innovative und zukunftsweisende Lösung für die interaktive Vermittlung chemischer Prozesse. Die Plattform ermöglicht es Studierenden, Fermentationsprozesse in einem sicheren, virtuellen Umfeld praxisnah zu erlernen. Dabei fördert sie das Verständnis komplexer chemischer Abläufe durch detaillierte Datenanalysen und anschauliche Visualisierungen. + +Neben der flexiblen Nutzung durch Studierende eröffnet FermentALADIN auch Lehrenden die Möglichkeit, individuelle Aufgabenstellungen zu erstellen und ihre Lehrmethoden zu erweitern. + +Insgesamt trägt FermentALADIN dazu bei, die Ausbildung im Bereich der chemischen Prozesse effizienter, kostengünstiger und praxisorientierter zu gestalten. \ No newline at end of file diff --git a/src/Tasks/FermentExercises/data.json b/src/Tasks/FermentExercises/data.json new file mode 100644 index 0000000..691afed --- /dev/null +++ b/src/Tasks/FermentExercises/data.json @@ -0,0 +1 @@ +{"data_1": {"labels": [0.0, 0.100418410041841, 0.200836820083682, 0.301255230125523, 0.401673640167364, 0.502092050209205, 0.602510460251046, 0.702928870292887, 0.803347280334728, 0.9037656903765691, 1.00418410041841, 1.104602510460251, 1.205020920502092, 1.3054393305439331, 1.405857740585774, 1.506276150627615, 1.606694560669456, 1.707112970711297, 1.8075313807531381, 1.907949790794979, 2.00836820083682, 2.1087866108786613, 2.209205020920502, 2.309623430962343, 2.410041841004184, 2.510460251046025, 2.6108786610878663, 2.711297071129707, 2.811715481171548, 2.912133891213389, 3.01255230125523, 3.1129707112970713, 3.213389121338912, 3.313807531380753, 3.414225941422594, 3.514644351464435, 3.6150627615062763, 3.715481171548117, 3.815899581589958, 3.916317991631799, 4.01673640167364, 4.117154811715481, 4.2175732217573225, 4.317991631799163, 4.418410041841004, 4.518828451882845, 4.619246861924686, 4.7196652719665275, 4.820083682008368, 4.920502092050209, 5.02092050209205, 5.121338912133891, 5.2217573221757325, 5.322175732217573, 5.422594142259414, 5.523012552301255, 5.623430962343096, 5.7238493723849375, 5.824267782426778, 5.924686192468619, 6.02510460251046, 6.125523012552301, 6.2259414225941425, 6.326359832635983, 6.426778242677824, 6.527196652719665, 6.627615062761506, 6.7280334728033475, 6.828451882845188, 6.928870292887029, 7.02928870292887, 7.129707112970711, 7.2301255230125525, 7.330543933054393, 7.430962343096234, 7.531380753138075, 7.631799163179916, 7.7322175732217575, 7.832635983263598, 7.933054393305439, 8.03347280334728, 8.133891213389122, 8.234309623430962, 8.334728033472803, 8.435146443514645, 8.535564853556485, 8.635983263598327, 8.736401673640167, 8.836820083682008, 8.93723849372385, 9.03765690376569, 9.138075313807532, 9.238493723849372, 9.338912133891213, 9.439330543933055, 9.539748953974895, 9.640167364016737, 9.740585774058577, 9.841004184100418, 9.94142259414226, 10.0418410041841, 10.142259414225942, 10.242677824267782, 10.343096234309623, 10.443514644351465, 10.543933054393305, 10.644351464435147, 10.744769874476987, 10.845188284518828, 10.94560669456067, 11.04602510460251, 11.146443514644352, 11.246861924686192, 11.347280334728033, 11.447698744769875, 11.548117154811715, 11.648535564853557, 11.748953974895397, 11.849372384937238, 11.94979079497908, 12.05020920502092, 12.150627615062762, 12.251046025104602, 12.351464435146443, 12.451882845188285, 12.552301255230125, 12.652719665271967, 12.753138075313807, 12.853556485355648, 12.95397489539749, 13.05439330543933, 13.154811715481172, 13.255230125523012, 13.355648535564853, 13.456066945606695, 13.556485355648535, 13.656903765690377, 13.757322175732217, 13.857740585774058, 13.9581589958159, 14.05857740585774, 14.158995815899582, 14.259414225941422, 14.359832635983263, 14.460251046025105, 14.560669456066945, 14.661087866108787, 14.761506276150627, 14.861924686192468, 14.96234309623431, 15.06276150627615, 15.163179916317992, 15.263598326359832, 15.364016736401673, 15.464435146443515, 15.564853556485355, 15.665271966527197, 15.765690376569037, 15.866108786610878, 15.96652719665272, 16.06694560669456, 16.1673640167364, 16.267782426778243, 16.368200836820083, 16.468619246861923, 16.569037656903767, 16.669456066945607, 16.769874476987447, 16.87029288702929, 16.97071129707113, 17.07112970711297, 17.17154811715481, 17.271966527196653, 17.372384937238493, 17.472803347280333, 17.573221757322177, 17.673640167364017, 17.774058577405857, 17.8744769874477, 17.97489539748954, 18.07531380753138, 18.17573221757322, 18.276150627615063, 18.376569037656903, 18.476987447698743, 18.577405857740587, 18.677824267782427, 18.778242677824267, 18.87866108786611, 18.97907949790795, 19.07949790794979, 19.17991631799163, 19.280334728033473, 19.380753138075313, 19.481171548117153, 19.581589958158997, 19.682008368200837, 19.782426778242677, 19.88284518828452, 19.98326359832636, 20.0836820083682, 20.18410041841004, 20.284518828451883, 20.384937238493723, 20.485355648535563, 20.585774058577407, 20.686192468619247, 20.786610878661087, 20.88702928870293, 20.98744769874477, 21.08786610878661, 21.18828451882845, 21.288702928870293, 21.389121338912133, 21.489539748953973, 21.589958158995817, 21.690376569037657, 21.790794979079497, 21.89121338912134, 21.99163179916318, 22.09205020920502, 22.19246861924686, 22.292887029288703, 22.393305439330543, 22.493723849372383, 22.594142259414227, 22.694560669456067, 22.794979079497907, 22.89539748953975, 22.99581589958159, 23.09623430962343, 23.19665271966527, 23.297071129707113, 23.397489539748953, 23.497907949790793, 23.598326359832637, 23.698744769874477, 23.799163179916317, 23.89958158995816, 24.0, 24.0, 24.10041841004184, 24.200836820083683, 24.301255230125523, 24.401673640167363, 24.502092050209207, 24.602510460251047, 24.702928870292887, 24.803347280334727, 24.90376569037657, 25.00418410041841, 25.10460251046025, 25.205020920502093, 25.305439330543933, 25.405857740585773, 25.506276150627613, 25.606694560669457, 25.707112970711297, 25.807531380753137, 25.90794979079498, 26.00836820083682, 26.10878661087866, 26.209205020920503, 26.309623430962343, 26.410041841004183, 26.510460251046027, 26.610878661087867, 26.711297071129707, 26.811715481171547, 26.91213389121339, 27.01255230125523, 27.11297071129707, 27.213389121338913, 27.313807531380753, 27.414225941422593, 27.514644351464433, 27.615062761506277, 27.715481171548117, 27.815899581589957, 27.9163179916318, 28.01673640167364, 28.11715481171548, 28.217573221757323, 28.317991631799163, 28.418410041841003, 28.518828451882847, 28.619246861924687, 28.719665271966527, 28.820083682008367, 28.92050209205021, 29.02092050209205, 29.12133891213389, 29.221757322175733, 29.322175732217573, 29.422594142259413, 29.523012552301253, 29.623430962343097, 29.723849372384937, 29.82426778242678, 29.92468619246862, 30.02510460251046, 30.1255230125523, 30.225941422594143, 30.326359832635983, 30.426778242677823, 30.527196652719667, 30.627615062761507, 30.728033472803347, 30.828451882845187, 30.92887029288703, 31.02928870292887, 31.12970711297071, 31.230125523012553, 31.330543933054393, 31.430962343096233, 31.531380753138073, 31.631799163179917, 31.732217573221757, 31.8326359832636, 31.93305439330544, 32.03347280334728, 32.13389121338912, 32.23430962343096, 32.3347280334728, 32.43514644351465, 32.53556485355649, 32.63598326359833, 32.73640167364017, 32.83682008368201, 32.937238493723854, 33.03765690376569, 33.13807531380753, 33.23849372384937, 33.33891213389121, 33.43933054393305, 33.53974895397489, 33.64016736401673, 33.74058577405857, 33.84100418410042, 33.94142259414226, 34.0418410041841, 34.14225941422594, 34.24267782426778, 34.34309623430963, 34.44351464435147, 34.54393305439331, 34.64435146443515, 34.74476987447699, 34.84518828451883, 34.94560669456067, 35.046025104602506, 35.14644351464435, 35.24686192468619, 35.34728033472803, 35.44769874476987, 35.54811715481171, 35.64853556485356, 35.7489539748954, 35.84937238493724, 35.94979079497908, 36.05020920502092, 36.15062761506276, 36.2510460251046, 36.35146443514644, 36.45188284518829, 36.55230125523013, 36.65271966527197, 36.75313807531381, 36.85355648535565, 36.953974895397494, 37.05439330543933, 37.15481171548117, 37.25523012552301, 37.35564853556485, 37.45606694560669, 37.55648535564853, 37.65690376569037, 37.75732217573221, 37.85774058577406, 37.9581589958159, 38.05857740585774, 38.15899581589958, 38.25941422594142, 38.35983263598327, 38.46025104602511, 38.56066945606695, 38.66108786610879, 38.76150627615063, 38.86192468619247, 38.96234309623431, 39.062761506276146, 39.16317991631799, 39.26359832635983, 39.36401673640167, 39.46443514644351, 39.56485355648535, 39.6652719665272, 39.76569037656904, 39.86610878661088, 39.96652719665272, 40.06694560669456, 40.1673640167364, 40.26778242677824, 40.36820083682008, 40.46861924686192, 40.56903765690377, 40.66945606694561, 40.76987447698745, 40.870292887029294, 40.970711297071134, 41.07112970711297, 41.17154811715481, 41.27196652719665, 41.37238493723849, 41.47280334728033, 41.57322175732217, 41.67364016736401, 41.77405857740585, 41.8744769874477, 41.97489539748954, 42.07531380753138, 42.17573221757322, 42.27615062761507, 42.37656903765691, 42.47698744769875, 42.57740585774059, 42.67782426778243, 42.77824267782427, 42.87866108786611, 42.97907949790795, 43.079497907949786, 43.179916317991626, 43.28033472803347, 43.38075313807531, 43.48117154811715, 43.581589958159, 43.68200836820084, 43.78242677824268, 43.88284518828452, 43.98326359832636, 44.0836820083682, 44.18410041841004, 44.28451882845188, 44.38493723849372, 44.48535564853556, 44.58577405857741, 44.68619246861925, 44.78661087866109, 44.887029288702934, 44.987447698744774, 45.08786610878661, 45.18828451882845, 45.28870292887029, 45.38912133891213, 45.48953974895397, 45.58995815899581, 45.69037656903765, 45.79079497907949, 45.89121338912134, 45.99163179916318, 46.09205020920502, 46.19246861924686, 46.29288702928871, 46.39330543933055, 46.49372384937239, 46.59414225941423, 46.69456066945607, 46.79497907949791, 46.89539748953975, 46.99581589958159, 47.096234309623426, 47.196652719665266, 47.29707112970711, 47.39748953974895, 47.49790794979079, 47.59832635983264, 47.69874476987448, 47.79916317991632, 47.89958158995816, 48.0, 48.0, 48.10041841004184, 48.20083682008368, 48.30125523012552, 48.40167364016737, 48.50209205020921, 48.60251046025105, 48.70292887029289, 48.80334728033473, 48.90376569037657, 49.00418410041841, 49.10460251046025, 49.20502092050209, 49.30543933054393, 49.40585774058577, 49.50627615062761, 49.60669456066945, 49.7071129707113, 49.80753138075314, 49.90794979079498, 50.00836820083682, 50.10878661087866, 50.2092050209205, 50.30962343096234, 50.41004184100419, 50.51046025104603, 50.61087866108787, 50.71129707112971, 50.81171548117155, 50.91213389121339, 51.012552301255226, 51.11297071129707, 51.21338912133891, 51.31380753138075, 51.41422594142259, 51.51464435146443, 51.61506276150627, 51.71548117154812, 51.81589958158996, 51.9163179916318, 52.01673640167364, 52.11715481171548, 52.21757322175732, 52.31799163179916, 52.41841004184101, 52.51882845188285, 52.61924686192469, 52.71966527196653, 52.82008368200837, 52.92050209205021, 53.02092050209205, 53.12133891213389, 53.22175732217573, 53.32217573221757, 53.42259414225941, 53.52301255230125, 53.62343096234309, 53.72384937238494, 53.82426778242678, 53.92468619246862, 54.02510460251046, 54.1255230125523, 54.22594142259414, 54.32635983263599, 54.42677824267783, 54.52719665271967, 54.62761506276151, 54.72803347280335, 54.82845188284519, 54.92887029288703, 55.029288702928866, 55.12970711297071, 55.23012552301255, 55.33054393305439, 55.43096234309623, 55.53138075313807, 55.63179916317991, 55.73221757322176, 55.8326359832636, 55.93305439330544, 56.03347280334728, 56.13389121338912, 56.23430962343096, 56.3347280334728, 56.43514644351465, 56.53556485355649, 56.63598326359833, 56.73640167364017, 56.83682008368201, 56.937238493723854, 57.03765690376569, 57.13807531380753, 57.23849372384937, 57.33891213389121, 57.43933054393305, 57.53974895397489, 57.64016736401673, 57.74058577405857, 57.84100418410042, 57.94142259414226, 58.0418410041841, 58.14225941422594, 58.24267782426778, 58.34309623430963, 58.44351464435147, 58.54393305439331, 58.64435146443515, 58.74476987447699, 58.84518828451883, 58.94560669456067, 59.046025104602506, 59.14644351464435, 59.24686192468619, 59.34728033472803, 59.44769874476987, 59.54811715481171, 59.64853556485356, 59.7489539748954, 59.84937238493724, 59.94979079497908, 60.05020920502092, 60.15062761506276, 60.2510460251046, 60.35146443514644, 60.45188284518829, 60.55230125523013, 60.65271966527197, 60.75313807531381, 60.85355648535565, 60.953974895397494, 61.05439330543933, 61.15481171548117, 61.25523012552301, 61.35564853556485, 61.45606694560669, 61.55648535564853, 61.65690376569037, 61.75732217573221, 61.85774058577406, 61.9581589958159, 62.05857740585774, 62.15899581589958, 62.25941422594142, 62.35983263598327, 62.46025104602511, 62.56066945606695, 62.66108786610879, 62.76150627615063, 62.86192468619247, 62.96234309623431, 63.062761506276146, 63.16317991631799, 63.26359832635983, 63.36401673640167, 63.46443514644351, 63.56485355648535, 63.6652719665272, 63.76569037656904, 63.86610878661088, 63.96652719665272, 64.06694560669456, 64.1673640167364, 64.26778242677824, 64.36820083682008, 64.46861924686192, 64.56903765690376, 64.6694560669456, 64.76987447698744, 64.8702928870293, 64.97071129707113, 65.07112970711297, 65.17154811715481, 65.27196652719665, 65.3723849372385, 65.47280334728033, 65.57322175732217, 65.67364016736401, 65.77405857740585, 65.87447698744771, 65.97489539748955, 66.07531380753139, 66.17573221757323, 66.27615062761507, 66.3765690376569, 66.47698744769875, 66.57740585774059, 66.67782426778243, 66.77824267782427, 66.8786610878661, 66.97907949790795, 67.07949790794979, 67.17991631799163, 67.28033472803347, 67.3807531380753, 67.48117154811715, 67.581589958159, 67.68200836820084, 67.78242677824268, 67.88284518828452, 67.98326359832636, 68.0836820083682, 68.18410041841004, 68.28451882845188, 68.38493723849372, 68.48535564853556, 68.58577405857741, 68.68619246861925, 68.7866108786611, 68.88702928870293, 68.98744769874477, 69.08786610878661, 69.18828451882845, 69.2887029288703, 69.38912133891213, 69.48953974895397, 69.58995815899581, 69.69037656903765, 69.7907949790795, 69.89121338912133, 69.99163179916317, 70.09205020920501, 70.19246861924685, 70.2928870292887, 70.39330543933055, 70.49372384937239, 70.59414225941423, 70.69456066945607, 70.7949790794979, 70.89539748953975, 70.99581589958159, 71.09623430962343, 71.19665271966527, 71.29707112970712, 71.39748953974896, 71.4979079497908, 71.59832635983264, 71.69874476987448, 71.79916317991632, 71.89958158995816, 72.0, 72.0, 72.10041841004184, 72.20083682008368, 72.30125523012552, 72.40167364016736, 72.5020920502092, 72.60251046025104, 72.7029288702929, 72.80334728033473, 72.90376569037657, 73.00418410041841, 73.10460251046025, 73.2050209205021, 73.30543933054393, 73.40585774058577, 73.50627615062761, 73.60669456066945, 73.7071129707113, 73.80753138075313, 73.90794979079497, 74.00836820083683, 74.10878661087867, 74.2092050209205, 74.30962343096235, 74.41004184100419, 74.51046025104603, 74.61087866108787, 74.7112970711297, 74.81171548117155, 74.91213389121339, 75.01255230125523, 75.11297071129707, 75.2133891213389, 75.31380753138075, 75.4142259414226, 75.51464435146444, 75.61506276150628, 75.71548117154812, 75.81589958158996, 75.9163179916318, 76.01673640167364, 76.11715481171548, 76.21757322175732, 76.31799163179916, 76.418410041841, 76.51882845188284, 76.61924686192468, 76.71966527196653, 76.82008368200837, 76.92050209205021, 77.02092050209205, 77.1213389121339, 77.22175732217573, 77.32217573221757, 77.42259414225941, 77.52301255230125, 77.6234309623431, 77.72384937238493, 77.82426778242677, 77.92468619246861, 78.02510460251045, 78.1255230125523, 78.22594142259415, 78.32635983263599, 78.42677824267783, 78.52719665271967, 78.6276150627615, 78.72803347280335, 78.82845188284519, 78.92887029288703, 79.02928870292887, 79.1297071129707, 79.23012552301255, 79.3305439330544, 79.43096234309624, 79.53138075313808, 79.63179916317992, 79.73221757322176, 79.8326359832636, 79.93305439330544, 80.03347280334728, 80.13389121338912, 80.23430962343096, 80.3347280334728, 80.43514644351464, 80.53556485355648, 80.63598326359832, 80.73640167364016, 80.83682008368201, 80.93723849372385, 81.0376569037657, 81.13807531380753, 81.23849372384937, 81.33891213389121, 81.43933054393305, 81.5397489539749, 81.64016736401673, 81.74058577405857, 81.84100418410041, 81.94142259414227, 82.0418410041841, 82.14225941422595, 82.24267782426779, 82.34309623430963, 82.44351464435147, 82.5439330543933, 82.64435146443515, 82.74476987447699, 82.84518828451883, 82.94560669456067, 83.0460251046025, 83.14644351464435, 83.24686192468619, 83.34728033472803, 83.44769874476988, 83.54811715481172, 83.64853556485356, 83.7489539748954, 83.84937238493724, 83.94979079497908, 84.05020920502092, 84.15062761506276, 84.2510460251046, 84.35146443514644, 84.45188284518828, 84.55230125523012, 84.65271966527197, 84.75313807531381, 84.85355648535565, 84.9539748953975, 85.05439330543933, 85.15481171548117, 85.25523012552301, 85.35564853556485, 85.4560669456067, 85.55648535564853, 85.65690376569037, 85.75732217573221, 85.85774058577405, 85.9581589958159, 86.05857740585773, 86.15899581589959, 86.25941422594143, 86.35983263598327, 86.4602510460251, 86.56066945606695, 86.66108786610879, 86.76150627615063, 86.86192468619247, 86.9623430962343, 87.06276150627615, 87.16317991631799, 87.26359832635983, 87.36401673640168, 87.46443514644352, 87.56485355648536, 87.6652719665272, 87.76569037656904, 87.86610878661088, 87.96652719665272, 88.06694560669456, 88.1673640167364, 88.26778242677824, 88.36820083682008, 88.46861924686192, 88.56903765690376, 88.6694560669456, 88.76987447698744, 88.8702928870293, 88.97071129707113, 89.07112970711297, 89.17154811715481, 89.27196652719665, 89.3723849372385, 89.47280334728033, 89.57322175732217, 89.67364016736401, 89.77405857740585, 89.87447698744771, 89.97489539748955, 90.07531380753139, 90.17573221757323, 90.27615062761507, 90.3765690376569, 90.47698744769875, 90.57740585774059, 90.67782426778243, 90.77824267782427, 90.8786610878661, 90.97907949790795, 91.07949790794979, 91.17991631799163, 91.28033472803347, 91.3807531380753, 91.48117154811715, 91.581589958159, 91.68200836820084, 91.78242677824268, 91.88284518828452, 91.98326359832636, 92.0836820083682, 92.18410041841004, 92.28451882845188, 92.38493723849372, 92.48535564853556, 92.58577405857741, 92.68619246861925, 92.7866108786611, 92.88702928870293, 92.98744769874477, 93.08786610878661, 93.18828451882845, 93.2887029288703, 93.38912133891213, 93.48953974895397, 93.58995815899581, 93.69037656903765, 93.7907949790795, 93.89121338912133, 93.99163179916317, 94.09205020920501, 94.19246861924685, 94.2928870292887, 94.39330543933055, 94.49372384937239, 94.59414225941423, 94.69456066945607, 94.7949790794979, 94.89539748953975, 94.99581589958159, 95.09623430962343, 95.19665271966527, 95.29707112970712, 95.39748953974896, 95.4979079497908, 95.59832635983264, 95.69874476987448, 95.79916317991632, 95.89958158995816, 96.0], "datasets": [{"label": "c\u2093", "data": [0.05, 0.051040628404175635, 0.05280606737502854, 0.05485082938161062, 0.057086106731576915, 0.059481617100806246, 0.06202557354785094, 0.06471398599633232, 0.06754681428916352, 0.07052628368303067, 0.07365607184757422, 0.07694089858232497, 0.08038625928059974, 0.0839983121611002, 0.08778377693085117, 0.09174990591210044, 0.09590441578840309, 0.10025551558750595, 0.10481188394207518, 0.10958267336521221, 0.11457751854094775, 0.1198065486765552, 0.12528041290302092, 0.13101026354196887, 0.13700780072824503, 0.14328532985717343, 0.14985570335639015, 0.15673239895298194, 0.1639295322715295, 0.17146188508913449, 0.17934493407807559, 0.1875948681101235, 0.196228697812396, 0.2052641584169749, 0.21471984987602966, 0.22461523492991736, 0.23497068120368964, 0.24580750446332647, 0.2571480112437689, 0.26901554394904276, 0.28143455435472353, 0.2944305868520037, 0.3080303549639094, 0.3222619429757948, 0.33715461674630953, 0.352739031132671, 0.36904725988187315, 0.3861128604459965, 0.4039709409025933, 0.4226582305225918, 0.44221312870867185, 0.4626759602107214, 0.4840887319831608, 0.5064954829427275, 0.5299422708090096, 0.5544772722456915, 0.5801508835140159, 0.6070158196547155, 0.635127268792811, 0.6645428814001242, 0.6953228778292331, 0.7275306039457596, 0.7612320107534659, 0.7964961509401647, 0.8333952412715107, 0.8720048009492071, 0.9124037967156625, 0.9546747949132598, 0.9989040467758769, 1.0451821017598477, 1.0936032142766376, 1.1442661307057878, 1.1972740448187082, 1.252734807759387, 1.3107611389216312, 1.3714708295539846, 1.434987081796503, 1.5014384298393275, 1.5709589697740736, 1.6436896566923063, 1.7197769515880663, 1.7993739865542093, 1.8826406293923603, 1.9697437369235764, 2.0608574095743943, 2.156163249754314, 2.2558505724465756, 2.3601176476028964, 2.4691699517232846, 2.5832221386823693, 2.7024975839870318, 2.827228660604856, 2.95765693640951, 3.0940334107452307, 3.236619011358968, 3.3856832564395614, 3.5415058016331833, 3.704376088229701, 3.874591289224515, 4.052457011314632, 4.238285757546965, 4.432395745244466, 4.635109419018416, 4.846748765084406, 5.067632899806579, 5.298065407918249, 5.538328681345421, 5.788665827973576, 6.049251292405219, 6.320141671120573, 6.601184716811727, 6.891836411392611, 7.190750007705448, 7.494660504155385, 7.794594750697759, 8.059455548981942, 8.221174852503136, 8.330228632052343, 8.436085777241368, 8.541863332469228, 8.64764093179098, 8.753420535406358, 8.859201859263827, 8.964985606724296, 9.07077187051943, 9.176560504125568, 9.282351665133579, 9.388144639271538, 9.493940050147318, 9.599738114555413, 9.705538836805205, 9.811342274879468, 9.917148338880967, 10.02295696991541, 10.128768059393915, 10.234582125698305, 10.34039822205643, 10.446216977192432, 10.552038537895413, 10.657863104914663, 10.763690473427644, 10.86952065725099, 10.975352831290335, 11.081187470089139, 11.187024861680818, 11.292864948807559, 11.398707793002021, 11.50455323407529, 11.610401151699493, 11.716251376116922, 11.822104485402598, 11.927959330110163, 12.033816667435815, 12.1396766743521, 12.245539566444078, 12.351404983198696, 12.457272978138741, 12.563142443545441, 12.669014198418068, 12.774888476037018, 12.880765255723386, 12.986644465167593, 13.092525902114499, 13.198409429320122, 13.304294926192252, 13.410182942467586, 13.51607220531397, 13.621963958408783, 13.727858406252027, 13.833755238995288, 13.939653994705266, 14.04555494926701, 14.151456595760374, 14.257360836853572, 14.363267446549019, 14.469176161916836, 14.57508675486346, 14.680999058079404, 14.786913009066762, 14.892828723671512, 14.998746130491652, 15.104665603181216, 15.210587852746691, 15.31651180448484, 15.422437123696549, 15.528363705673245, 15.634291827245875, 15.740221930512917, 15.846155011716126, 15.952089006629942, 16.058024362085433, 16.163961021188904, 16.26989922846164, 16.375839559616747, 16.481782090453688, 16.5877254843901, 16.69367105836277, 16.799617249399233, 16.905564581441514, 17.011514232089787, 17.117466123883226, 17.223419186743076, 17.32937356126956, 17.43532814341533, 17.541284547674202, 17.647244210843027, 17.753204983599847, 17.85916587025103, 17.96512677709562, 18.071089163668304, 18.177057076176276, 18.283023532845945, 18.388990906715176, 18.49495919530644, 18.600930482395654, 18.706903396788157, 18.812876027947727, 18.918848551698197, 19.024824572184393, 19.130801680087036, 19.236780757075817, 19.342757260436603, 19.448738691869163, 19.554721832641707, 19.66070257006609, 19.76668694587439, 19.872674165971645, 19.9786574696656, 20.08464063681909, 20.190635505267256, 20.296620885005925, 20.402613943019748, 20.508605109174376, 20.61459761435526, 20.720593274653993, 20.826583538766958, 20.93258701565148, 21.03857197999721, 21.144579952348415, 21.250573686352066, 21.250573686352066, 21.35659919276965, 21.462614875391473, 21.56861417892275, 21.67463325961596, 21.780647572453525, 21.88665081666562, 21.992667035458965, 22.09868693645021, 22.204699046637774, 22.310706707864597, 22.41672885295511, 22.52275617287063, 22.628779132732465, 22.734798522246415, 22.84081551452753, 22.946836974894946, 23.052860303715406, 23.15887428677069, 23.264903970478436, 23.370933686435805, 23.476963923446746, 23.5829856795443, 23.689015186135276, 23.795043117976746, 23.901070211948046, 24.007095207952187, 24.113135385947114, 24.219175632299205, 24.325200764581197, 24.431229668093344, 24.537274769578264, 24.643306326664757, 24.74933706088742, 24.855386629867475, 24.96141123741667, 25.067457550834277, 25.173493097903172, 25.27953358721175, 25.385570903582057, 25.491616421267032, 25.597654346126745, 25.703710752942815, 25.809743534046795, 25.91578560065097, 26.021839720190297, 26.127885148760704, 26.233916834824864, 26.339973536255165, 26.446032674540106, 26.55207559497897, 26.658127704508033, 26.764168973200203, 26.870219701204192, 26.97626831661217, 27.082322078192927, 27.188374396535696, 27.294428582340647, 27.400481318515435, 27.506539199902708, 27.61259492240432, 27.718659984586502, 27.824714171977867, 27.930777296683186, 28.036824574016507, 28.142874204482624, 28.248948490511495, 28.35500881612089, 28.461060587926074, 28.5671248508914, 28.673196434687064, 28.77924661534806, 28.885314496795747, 28.991372632141946, 29.09744169782887, 29.203502956520545, 29.309574727626526, 29.415630834057364, 29.52171186273884, 29.627768270159866, 29.733837195048793, 29.839913357876537, 29.945972013884607, 30.052039996550192, 30.158120268017118, 30.264186040492675, 30.370248723764437, 30.476314529621664, 30.582392122597383, 30.688467380276517, 30.79454392375692, 30.90062215799025, 31.00669149519805, 31.11276451509138, 31.218840547491933, 31.324919703728003, 31.430988978512726, 31.537062548393315, 31.643136259174643, 31.749207524195217, 31.855298774881224, 31.961378625623606, 32.067453126720814, 32.17352608389667, 32.27960723215996, 32.3856996983917, 32.491767595306534, 32.5978567733488, 32.70393516664611, 32.81001297678041, 32.916103281990544, 33.022172288483496, 33.12827306051004, 33.23434789729734, 33.340434257034424, 33.44652157142441, 33.55259968728012, 33.65869154510791, 33.76477433261357, 33.87085589510568, 33.97695064461849, 34.08303838892763, 34.18911861481152, 34.295201851548384, 34.4012950894576, 34.50739004902789, 34.613483383869394, 34.719575030129356, 34.82566582390392, 34.93175650290261, 35.03784476818325, 35.14393663949498, 35.25002535185294, 35.35611871149612, 35.46220438738882, 35.56829455130612, 35.6743910554216, 35.780489246135154, 35.886583618506, 35.99267343657419, 36.09877016583687, 36.204870405655974, 36.31096064285516, 36.417056056616055, 36.52316172317774, 36.62924449040388, 36.73534900896312, 36.841444548452664, 36.94754579802581, 37.053637383006865, 37.159743680455364, 37.265834305214376, 37.37194012131334, 37.47803796089552, 37.58413397673309, 37.69023924733732, 37.79634452901725, 37.90243081227462, 38.00853687880193, 38.114642623780064, 38.220747882841934, 38.3268492777723, 38.43295036284855, 38.53904655013225, 38.64515149863736, 38.751256721573924, 38.85735868389851, 38.96346656989224, 39.06957178702403, 39.1756729023584, 39.281783350082875, 39.38789134541668, 39.49399844950612, 39.60009777332545, 39.70620212555248, 39.81231225516773, 39.918427425501704, 40.024523689139244, 40.130629264724675, 40.23674522149495, 40.34284718480002, 40.44895927904854, 40.55506782369635, 40.661178569739945, 40.76728722551351, 40.87339945567309, 40.979507563222924, 41.085620803844996, 41.191723102084275, 41.297841517777584, 41.403951193031624, 41.5100590484734, 41.616176603695564, 41.72228998283322, 41.82839610804463, 41.93450826982851, 42.040624592659036, 42.1467399180315, 42.2528538806877, 42.358961730055704, 42.46507906998086, 42.57118610349212, 42.67730392915312, 42.78341716747707, 42.889531567980406, 42.9956516134218, 43.10177331975086, 43.207885660370664, 43.314004165659966, 43.42011385899576, 43.526229800502556, 43.632352378119435, 43.73846838062306, 43.8445841798016, 43.95069999438006, 44.056820855914076, 44.16293574777949, 44.26905348912465, 44.375177527589805, 44.4812897005974, 44.58741486565371, 44.69352844613852, 44.79965316005585, 44.90576802809475, 45.011892508194826, 45.118011255448515, 45.22412929556054, 45.330254470131706, 45.43637835092999, 45.542492772974875, 45.64861457656146, 45.75474297940008, 45.860860404977316, 45.96698315826503, 46.0730998565197, 46.179220022413574, 46.28534600027273, 46.39147022598512, 46.49759467659142, 46.60371831323669, 46.60371831323669, 46.6064973000544, 46.60649797505016, 46.60649815195836, 46.60649818942857, 46.60649765965309, 46.6064968815365, 46.606497806141505, 46.60649824502193, 46.60649880300675, 46.60649799156888, 46.606497246203126, 46.606497232826435, 46.606497864472686, 46.60649825607349, 46.60649780375862, 46.606497275484045, 46.60649647133052, 46.60649734791896, 46.606498067794604, 46.6064978870939, 46.60649754923476, 46.606497258013555, 46.606497977428766, 46.60649816349154, 46.606498190446764, 46.606497627506485, 46.60649734342515, 46.60649781557626, 46.60649783072844, 46.60649873929797, 46.6064979541471, 46.606497097557614, 46.60649724367252, 46.60649730665524, 46.60649821340166, 46.60649779838601, 46.606497348772756, 46.60649649069017, 46.60649757855605, 46.606498050656526, 46.60649789005848, 46.60649751382899, 46.60649726269947, 46.606498002313266, 46.60649783800875, 46.606498191225306, 46.60649801671218, 46.606497360998716, 46.60649782301772, 46.606497793138786, 46.60649872399973, 46.60649791792507, 46.60649706581927, 46.606497258170286, 46.60649834458175, 46.6064982325444, 46.606497791738285, 46.60649708325908, 46.60649652126488, 46.6064976319076, 46.606498064029, 46.60649788083502, 46.60649753784085, 46.60649724714872, 46.606498023027626, 46.606497959188324, 46.60649819083471, 46.606497474877095, 46.606497343524154, 46.60649783026308, 46.6064987051261, 46.606498698977155, 46.60649758243658, 46.60649706024881, 46.60649727284279, 46.606498239799656, 46.60649823733721, 46.60649778400621, 46.606497050253125, 46.60649655036884, 46.606498263553384, 46.60649808432735, 46.606497872805846, 46.606497283026314, 46.60649725359417, 46.606497874212096, 46.6064980159249, 46.606498189422304, 46.606497461451944, 46.606497334366225, 46.60649713115553, 46.60649870370402, 46.606498676534216, 46.606497717817206, 46.60649704982441, 46.606497288790905, 46.60649824929441, 46.60649823619754, 46.606497770218816, 46.60649700807519, 46.606496583140114, 46.60649783113394, 46.60649809582899, 46.60649828045148, 46.60649728956452, 46.60649725519809, 46.60649694897469, 46.60649804388783, 46.6064988904328, 46.60649745896496, 46.606497324494086, 46.60649646564599, 46.6064986858632, 46.60649865386565, 46.606497700420526, 46.606497033191964, 46.60649628294743, 46.6064982280787, 46.60649823635927, 46.60649841590032, 46.60649698923789, 46.60649661979322, 46.60649779967773, 46.6064981088988, 46.60649869080076, 46.606497276377524, 46.60649725857444, 46.606497105072684, 46.606498075494116, 46.60649821702883, 46.60649745169078, 46.60649731622002, 46.606496560486654, 46.606498687631436, 46.60649862688275, 46.60649770505394, 46.60649701946472, 46.60649730817419, 46.606498242554956, 46.60649823622671, 46.60649812993105, 46.60649696890725, 46.60649765397473, 46.60649782607278, 46.60649812116634, 46.606497844645745, 46.60649726722834, 46.60649736672776, 46.60649720509651, 46.606498104566626, 46.60649820388877, 46.60649743610492, 46.60649732107017, 46.606497978167525, 46.60649868701718, 46.60649802733612, 46.60649768243833, 46.60649700741989, 46.60649784918934, 46.60649824906621, 46.606498084214785, 46.60649805080598, 46.606496950350234, 46.60649728681566, 46.60649784055316, 46.606498241022294, 46.60649781314047, 46.60649725643217, 46.60649736849511, 46.60649726638126, 46.60649813716678, 46.60649788663672, 46.60649742187251, 46.60649673303457, 46.60649805660079, 46.6064986841829, 46.60649812018261, 46.60649766697677, 46.60649669094048, 46.606497851878544, 46.606498257344796, 46.60649867122734, 46.606498035165274, 46.60649693229513, 46.60649723220549, 46.60649785849177, 46.606498274782055, 46.60649780222208, 46.60649723807384, 46.60649636456443, 46.6064973145738, 46.60649872011562, 46.60649787392283, 46.60649740794505, 46.60649634710142, 46.60649804077052, 46.606498680780156, 46.60649818874239, 46.606497649487245, 46.606496890075924, 46.606497845685396, 46.60649826541873, 46.606498828395075, 46.60649800562338, 46.60649691460671, 46.60649725170873, 46.6064978846551, 46.606499006312234, 46.60649780052856, 46.60649722145278, 46.60649642614621, 46.60649737127089, 46.606498535514724, 46.60649788013054, 46.606497394205164, 46.60649722651694, 46.60649804543163, 46.60649817614574, 46.606498196289344, 46.60649763148254, 46.606497376847244, 46.60649784343885, 46.606498273808626, 46.60649880138225, 46.6064979599878, 46.60649726057055, 46.60649728151807, 46.60649790895408, 46.60649826297832, 46.60649779066562, 46.60649727281562, 46.606496499653424, 46.6064974232309, 46.60649808854857, 46.606497881521705, 46.60649750700084, 46.606497304660735, 46.60649804748103, 46.606497277488174, 46.606497277488174, 46.60649788546581, 46.606498740269295, 46.60649858954889, 46.606497582859504, 46.60649699107946, 46.60649651227182, 46.60649828116795, 46.60649815007462, 46.606498127178774, 46.6064967112527, 46.6064969235458, 46.60649796907193, 46.60649807412782, 46.60649825309769, 46.606497164521414, 46.606497627223796, 46.606497616455904, 46.60649824718493, 46.60649782559906, 46.606497307673536, 46.606497636056126, 46.60649742441276, 46.60649879932741, 46.60649816511598, 46.606497198647105, 46.606497161844366, 46.60649818524627, 46.60649827975298, 46.60649787305658, 46.60649718506502, 46.606496536849086, 46.60649825034206, 46.60649809390856, 46.60649789594743, 46.606497299993585, 46.606497286446086, 46.60649791288191, 46.606498064088974, 46.60649817400031, 46.60649737356803, 46.606497420742016, 46.60649796075313, 46.606498813879405, 46.60649858065476, 46.60649745737845, 46.606496998354366, 46.606497521526634, 46.606498323775675, 46.6064981205795, 46.606497568026164, 46.606496668827326, 46.606496903994284, 46.60649801664011, 46.606498054164774, 46.606497964736086, 46.606497191985525, 46.60649767806868, 46.60649812382347, 46.60649823940665, 46.60649786387578, 46.606497320018214, 46.606497702545994, 46.606497725010264, 46.606498814911646, 46.60649813596793, 46.60649718519472, 46.60649719867324, 46.606497221431006, 46.60649825029508, 46.60649784353276, 46.60649738751858, 46.606496515813284, 46.60649765296177, 46.60649807638308, 46.606497874301084, 46.606497421724576, 46.60649736386121, 46.60649816694993, 46.60649797559644, 46.60649814532949, 46.60649771457271, 46.60649749080512, 46.606498004939276, 46.60649819753827, 46.60649857553015, 46.60649755554392, 46.60649699921274, 46.606497551139604, 46.60649877116235, 46.60649809490896, 46.60649750841406, 46.60649661370468, 46.60649690604525, 46.60649834474112, 46.60649802151298, 46.60649759554847, 46.60649670295295, 46.60649776778407, 46.6064985585222, 46.60649822253157, 46.606497830218224, 46.606496972231525, 46.606497757726785, 46.606498236896606, 46.60649886953685, 46.606498111469556, 46.60649728400281, 46.60649723564866, 46.606497880380445, 46.60649828156574, 46.60649781611646, 46.60649722042871, 46.606496457745145, 46.606497475131455, 46.60649853724706, 46.60649783352199, 46.606497339695665, 46.60649734683021, 46.60649824385715, 46.6064981941609, 46.606498119260806, 46.606497409250466, 46.606497523136824, 46.60649804119845, 46.60649802362404, 46.60649855816079, 46.60649752591784, 46.60649706244133, 46.60649757684806, 46.60649809961046, 46.60649809162419, 46.60649747888151, 46.60649723450288, 46.606496933665404, 46.606497964832414, 46.60649800825104, 46.60649756836215, 46.606496878018106, 46.60649786932534, 46.6064986097477, 46.606498143933536, 46.60649780252183, 46.60649688192013, 46.60649781088898, 46.60649825223206, 46.60649866346278, 46.606498091611435, 46.60649696144406, 46.60649732780929, 46.60649790044604, 46.60649832440826, 46.606497758929784, 46.60649720990531, 46.60649636217738, 46.606497492895244, 46.60649885925704, 46.60649779707295, 46.60649733801665, 46.60649620779504, 46.60649830950583, 46.606498770290585, 46.606498099394905, 46.606497388336486, 46.606496915278136, 46.606498073564445, 46.60649833379249, 46.606498691767484, 46.606497477575026, 46.60649661354934, 46.60649761519745, 46.606498101571546, 46.606498925573014, 46.606497447114045, 46.60649716489729, 46.60649689032633, 46.60649797460942, 46.606498348010284, 46.606497548195065, 46.606497294905594, 46.60649786230376, 46.60649865687869, 46.60649808515936, 46.60649777540074, 46.60649705684571, 46.606497318499905, 46.60649827071912, 46.60649825064819, 46.60649807423663, 46.60649690276444, 46.606497759704204, 46.60649792350032, 46.6064981363115, 46.60649774506784, 46.60649720761551, 46.60649752512174, 46.60649751404065, 46.60649824419885, 46.60649777749071, 46.60649734126806, 46.60649675331983, 46.60649838693383, 46.606498796154675, 46.606497865246986, 46.606497354970855, 46.60649706020414, 46.606498133023265, 46.60649832579456, 46.60649797298538, 46.606497409585195, 46.60649658463953, 46.60649770400379, 46.60649809944526, 46.60649839516807, 46.606497423146784, 46.60649719558831, 46.60649678910696, 46.606497979057835, 46.60649896100024, 46.60649753218147, 46.60649732788757, 46.60649715484778, 46.60649872055651, 46.60649868277593, 46.60649770553287, 46.60649704358222, 46.60649636662088, 46.60649827832008, 46.60649822507975, 46.60649831280795, 46.60649685430076, 46.60649678725008, 46.60649792901238, 46.606498120173974, 46.60649845841941, 46.60649720806429, 46.60649751315259, 46.60649748149819, 46.60649824106151, 46.6064976681174], "borderColor": "#66c2a5", "backgroundColor": "#66c2a5", "tension": 0.1}, {"label": "c\u209b\u2081", "data": [0.0, 0.19882294919866952, 0.3961329158565307, 0.5927551603291775, 0.788852258399225, 0.9844772205951494, 1.1796479126077204, 1.3743669983961413, 1.56862913479816, 1.7624241321583767, 1.9557384841560055, 2.1485561409759906, 2.340859008521681, 2.5326271572095447, 2.7238390048474934, 2.9144713617231632, 3.1044995451803366, 3.2938973133311604, 3.4826368899812365, 3.67068893723668, 3.8580225184554076, 4.044605051572016, 4.230402236246882, 4.415378056967104, 4.5994946707302145, 4.782712269162978, 4.964989152411381, 5.146281548858398, 5.326543554286528, 5.505727040106219, 5.6837815586801534, 5.860654267686679, 6.036289682072581, 6.210629805794939, 6.383613822891266, 6.55517804880152, 6.7252557981631504, 6.893777248112192, 7.060669300376501, 7.225855436388122, 7.389255517400858, 7.550785748987095, 7.710358470589343, 7.867881711414879, 8.023259465549133, 8.176391231791776, 8.327171878890999, 8.475491443537791, 8.621234921819756, 8.764282051299213, 8.904507130287788, 9.04177845395341, 9.175958668370276, 9.306904026827581, 9.434464314309952, 9.558482560928438, 9.678794752528157, 9.795229542503765, 9.907607860503049, 10.01574282550826, 10.119439440162939, 10.218493457735612, 10.312692237262247, 10.401813722382176, 10.48562622509764, 10.563888073045602, 10.636347249624341, 10.702741028149036, 10.762795737660397, 10.816225565316572, 10.862733600374876, 10.902010344758287, 10.933733779357343, 10.957568984819716, 10.97316778922826, 10.98016846363844, 10.978195208228318, 10.966858459973409, 10.945754688251977, 10.914464288238259, 10.872554450975475, 10.819577479932828, 10.755071257030751, 10.678559497826377, 10.589552168783873, 10.487546093590836, 10.372025880904236, 10.242463228877998, 10.098322090207335, 9.939057369306674, 9.764118590594538, 9.572952806977232, 9.365008369134037, 9.139739495127506, 8.896611424771534, 8.63511027672054, 8.354749183326577, 8.055079932586318, 7.73571022466184, 7.396318921162012, 7.036679284411405, 6.656686381142617, 6.256391093179829, 5.836047614099927, 5.396166173257689, 4.937596393765226, 4.461611824226807, 3.9700340290307365, 3.4653956364952543, 2.951156741253439, 2.432006694235468, 1.9143179102109242, 1.406935668796034, 0.9230089563846986, 0.4859791701401305, 0.15607336026948615, 0.045767353558585425, 0.038751906302922606, 0.03792620919604765, 0.03727962421898454, 0.036657982165521456, 0.0360566914677889, 0.03547549519565514, 0.03491232471083482, 0.03436629305392669, 0.033836994393080314, 0.03332348442039273, 0.03282648423213502, 0.03234423183884814, 0.03187575317587397, 0.03142050067790923, 0.030977847845715372, 0.03054746715798296, 0.03012899367211689, 0.029722176605099727, 0.02932560324278717, 0.028940632344538923, 0.028565678039494277, 0.028200078160869876, 0.027843082538495028, 0.027494716564039352, 0.027154608643502425, 0.0268239770911294, 0.026501608621392867, 0.02618665094311912, 0.025878914784079433, 0.025577996675044942, 0.025283919663826652, 0.024996641530426265, 0.02471622346699164, 0.024441325520743358, 0.024173868789800105, 0.02391219274797047, 0.023655738801568602, 0.023403881480878533, 0.023157086211957157, 0.02291504627712474, 0.022679648029518582, 0.022449155548557424, 0.022222940100777123, 0.022000859858229273, 0.021782874307958777, 0.021569192765398853, 0.02135990726312929, 0.021155084618779366, 0.02095352993107815, 0.020757490153982264, 0.020564471824012383, 0.020373945907744353, 0.020186355849186603, 0.020002435990320908, 0.019821533573055845, 0.01964636166915743, 0.019473205779516004, 0.01930236723324392, 0.019134223901304273, 0.018969089860548172, 0.018807167457910723, 0.01864846423021664, 0.018492655165289144, 0.01833976840291632, 0.018188995088632153, 0.018038892843039465, 0.017891393799935974, 0.01774703505179345, 0.017605921638443215, 0.01746744045168173, 0.017330666294994, 0.017193630887261245, 0.017060148020423688, 0.01692929221937567, 0.016801090480464183, 0.016675001502604425, 0.01654985913577958, 0.016425445490580573, 0.016304212775988248, 0.016183596959464964, 0.016066485453066236, 0.0159518179114731, 0.01583729764248692, 0.015723004443177816, 0.015610898840737984, 0.015500651658253133, 0.015394291166441044, 0.015288698591192447, 0.015181091957884625, 0.015075483736549274, 0.014973703022993355, 0.014875871698416334, 0.014779169481400999, 0.01467587504850213, 0.014579165071404889, 0.014484489115846034, 0.014391802297316778, 0.014297103710153237, 0.014202943416384681, 0.014112896113863786, 0.014026581659613362, 0.013937119207682463, 0.01384903043795066, 0.013760597795249319, 0.013680396436913446, 0.013594150105649044, 0.013507923007054485, 0.01342947805122366, 0.013347308767251497, 0.01326288133100776, 0.013188989346518078, 0.013118418689639415, 0.01302865847453019, 0.01295989713464936, 0.012879507740444038, 0.012805622687492397, 0.012732072074520416, 0.012655372629137499, 0.012591725646764184, 0.012505764352905496, 0.01245769276430599, 0.01236864166919287, 0.012309300262654511, 0.012309300262654511, 0.012206958448531773, 0.012125995491715454, 0.012078809967647828, 0.011996716133461167, 0.011926292477184299, 0.011879475627469698, 0.011810583040564069, 0.011737231522474561, 0.011681179677192854, 0.011636055219395423, 0.011565881630935767, 0.011488309846458747, 0.011421419178182412, 0.011363684994725098, 0.01131285240833531, 0.011255866906951876, 0.011197638409388798, 0.01115943101583853, 0.011093672568567957, 0.011030086807805805, 0.010967724383774285, 0.01092365237208698, 0.010867035730006143, 0.010815554511097487, 0.010767789745958928, 0.01072611197890366, 0.010657695940349361, 0.010591215092430214, 0.01055546912052004, 0.010514588681732667, 0.010444963726425486, 0.0104030351325785, 0.010364635747497412, 0.010292431623246546, 0.010269538398576257, 0.01020735499738158, 0.0101675019708852, 0.010120143211040404, 0.010080665691055365, 0.0100274624642499, 0.009990497145035663, 0.009920260558895944, 0.009896655562044578, 0.009857202322690438, 0.009796632887174469, 0.00975430269900659, 0.009739780219755287, 0.009679496209147187, 0.009616285173394542, 0.009585533400337624, 0.009539011118286183, 0.009514714579137419, 0.00947410478607304, 0.00943912944202459, 0.009395997443523874, 0.009357201695156341, 0.009316443866871681, 0.009280007071147232, 0.009235361668715542, 0.009196356691172377, 0.009141159125176228, 0.009108112923482698, 0.009059613610777555, 0.009042673399064135, 0.009022746776897423, 0.008957508223520387, 0.008920211167722977, 0.00890058671608808, 0.008858693973695963, 0.008804331798025046, 0.008791982803817006, 0.008747447807119639, 0.00872278959164225, 0.008678768525098295, 0.008650921404359906, 0.008604483145157472, 0.00858910367779576, 0.008527776620492243, 0.008514476358825279, 0.00847874062902699, 0.008430575264485023, 0.008416908300249952, 0.0083868290518192, 0.008334709450444566, 0.008311351782665146, 0.008295104446505708, 0.008274173952657707, 0.008232117155376169, 0.008195712061733433, 0.0081580800513676, 0.008118446005464458, 0.008096880160690791, 0.008069515080804933, 0.00803761217820721, 0.008000953767491166, 0.007984194387679304, 0.007960439792291928, 0.007937559686501023, 0.007920450871401537, 0.007866564571000037, 0.007835415761184215, 0.007815521439488602, 0.007799655813885581, 0.007769347797234652, 0.0077186631432290985, 0.007715647933896567, 0.007673345172437654, 0.007652556359974594, 0.007633927454351632, 0.007592649934479707, 0.007592801443024488, 0.007533748663379179, 0.007524900100415307, 0.007495219281070763, 0.00746473853305497, 0.00745270384896768, 0.007415607622142616, 0.00739670020998932, 0.007381098430254087, 0.007341467410525416, 0.007316088633932988, 0.007305928503029243, 0.0072910156115041525, 0.00725808924420321, 0.007222841634222782, 0.007191611324593678, 0.00716451301136746, 0.007139955146563454, 0.007116532818994434, 0.007098600262344156, 0.007074736889310912, 0.007057762457905495, 0.007032871072412899, 0.007023434865504402, 0.007006371307154181, 0.006978160923848233, 0.006947623539063856, 0.0069251900085307285, 0.006912249634878728, 0.006887060043378375, 0.00685606322795096, 0.006844871511760151, 0.006824702897840121, 0.006785929888754713, 0.006791393175628701, 0.006756442704102284, 0.006739331596555675, 0.006712205587841914, 0.006704207356542328, 0.006669118814549206, 0.006664535461182188, 0.0066319460874550845, 0.006615258922211769, 0.006602808581452599, 0.006573590080442741, 0.006545121311315717, 0.006553429854739378, 0.006525000092710674, 0.006497935410317052, 0.006472543222731732, 0.006455224073041391, 0.006439233449789625, 0.006433264831318607, 0.006411422352502476, 0.006389789724489126, 0.006375059775846345, 0.0063498195213813075, 0.0063303530400773125, 0.006319371741712184, 0.0062914094406140725, 0.006268797213959009, 0.0062485725032562596, 0.006243789038015503, 0.006230165028826458, 0.006206276881161122, 0.006173516513049207, 0.006177266912966497, 0.006164038919278359, 0.006131806024165251, 0.006126758769853954, 0.0061031721565198965, 0.006086971093317347, 0.006067252449747003, 0.006052145028709216, 0.006030906929716826, 0.006018124112210106, 0.0059962516386699825, 0.005995750877074216, 0.005965336347181596, 0.0059521129200950365, 0.005942962000996166, 0.00591604858809961, 0.005897667059717302, 0.005893644583648597, 0.005878789857946758, 0.005856655023636225, 0.005837012308246466, 0.005820551264710917, 0.0058162692510087865, 0.005794595181084144, 0.005793039107048222, 0.0057716190056039006, 0.005759473583552281, 0.005745703798376683, 0.005721812448369499, 0.0056953464618871765, 0.00568719305329136, 0.00566792359241463, 0.005665913427766379, 0.005652623759247053, 0.005627315325228774, 0.0056150164012884266, 0.005603652244294405, 0.005592804812037682, 0.005572937182040899, 0.005564921830724294, 0.005552043990444614, 0.005527769670967319, 0.005526509386156339, 0.005501160302771759, 0.005498286590393985, 0.005474838604289642, 0.005470563939300351, 0.0054485933061292225, 0.005437999238760116, 0.005429256003584676, 0.005407500449912192, 0.005388701700478286, 0.005388326114182612, 0.005374464144453987, 0.005348595467743374, 0.005344019546472675, 0.005329840847919672, 0.005327620611805515, 0.005319315685729696, 0.005300482382810929, 0.005285449076634439, 0.005270466985489578, 0.0052575030112976, 0.0052575030112976, 1.0036211168134118e-06, -2.722855998566814e-07, -6.065475167433701e-07, -6.77219815564772e-07, 3.244244581029444e-07, 1.7955672891076272e-06, 4.7834004818506245e-08, -7.817070929125998e-07, -1.8363301693052192e-06, -3.0223101062393557e-07, 1.1069990062906201e-06, 1.132457710113803e-06, -6.149805480098813e-08, -8.015881734282891e-07, 5.361357755540905e-08, 1.0524551559110034e-06, 2.5728142576081837e-06, 9.158096956507524e-07, -4.448522714142158e-07, -1.0311916878053576e-07, 5.357442212460677e-07, 1.0864499249236216e-06, -2.7342595436735154e-07, -6.249940234844948e-07, -6.757881412055254e-07, 3.885534308571222e-07, 9.257964748122263e-07, 3.335460397912513e-08, 4.8756317660218244e-09, -1.7125374459907978e-06, -2.2813094148098225e-07, 1.3914022349968663e-06, 1.1153094355156279e-06, 9.963857698063993e-07, -7.175638224715269e-07, 6.712653991188654e-08, 9.172896593814485e-07, 2.539571315567544e-06, 4.831669574488969e-07, -4.0909817366567056e-07, -1.0536739744317513e-07, 6.060333844798875e-07, 1.0809472963014888e-06, -3.1711094923012563e-07, -6.3075160948990275e-09, -6.739033260864961e-07, -3.438389803647874e-07, 8.959318518587919e-07, 2.264363904405695e-08, 7.929759313685626e-08, -1.6802622080047446e-06, -1.5629838796025252e-07, 1.4547579160657357e-06, 1.0912584033236522e-06, -9.623641695705447e-07, -7.503973515334466e-07, 8.305079362728805e-08, 1.4225917236264218e-06, 2.485127865331015e-06, 3.8566753008552717e-07, -4.310223937501563e-07, -8.457369710331408e-08, 5.64013289573821e-07, 1.113700524984994e-06, -3.529123635888136e-07, -2.3203145344260237e-07, -6.698079202398233e-07, 6.838356715525264e-07, 9.323209460232616e-07, 1.2303835193407175e-08, -1.6413592811756004e-06, -1.629603002534687e-06, 4.813088976652965e-07, 1.468642649979563e-06, 1.0668775083998572e-06, -7.60886907671969e-07, -7.561022650688897e-07, 1.0102533488575523e-07, 1.4883422874190714e-06, 2.433465651184445e-06, -8.050244722826671e-07, -4.660399520235915e-07, -6.603764603413592e-08, 1.0491041592995348e-06, 1.1048720395467334e-06, -6.81923159353588e-08, -3.359324648577391e-07, -6.637806115438625e-07, 7.126129558867881e-07, 9.529890243493683e-07, 1.3373109617923427e-06, -1.6353155238396694e-06, -1.5838199728230672e-06, 2.2877281240271492e-07, 1.4917045074574312e-06, 1.0400856555853279e-06, -7.754812147093082e-07, -7.505909868362612e-07, 1.3048134326802498e-07, 1.5714322099159524e-06, 2.3748708395386135e-06, 1.583229995886425e-08, -4.844271226113281e-07, -8.332882538450782e-07, 1.040100445293504e-06, 1.1051965006356195e-06, 1.6842917798384254e-06, -3.8543885540288547e-07, -1.9856187905322766e-06, 7.206706434241152e-07, 9.750077484474133e-07, 2.5987689714181554e-06, -1.5982343569723935e-06, -1.5376097156180222e-06, 2.6501541584782505e-07, 1.5265037309328705e-06, 2.9449343148648563e-06, -7.32017080176375e-07, -7.475397174838079e-07, -1.0867597337899851e-06, 1.61039843394465e-06, 2.3089381264343755e-06, 7.865449203249776e-08, -5.057783175491057e-07, -1.605643030617551e-06, 1.0683844058851737e-06, 1.1021709173270236e-06, 1.3925552496784653e-06, -4.418319517101809e-07, -7.092160720760419e-07, 7.377761365462386e-07, 9.94006120356566e-07, 2.4228357411287463e-06, -1.5982207598934159e-06, -1.4832424696522148e-06, 2.596145040792337e-07, 1.5558109993270311e-06, 1.0101832853440732e-06, -7.560284904178761e-07, -7.439317167755792e-07, -5.427756730916613e-07, 1.652188261417128e-06, 3.572801521087087e-07, 3.211058563510789e-08, -5.256124211026508e-07, -2.662537581738248e-09, 1.0890362176900596e-06, 9.011119407854721e-07, 1.206821886279954e-06, -4.934346234778665e-07, -6.810191272038143e-07, 7.705964205173609e-07, 9.88194901705396e-07, -2.5380433112685795e-07, -1.5937029744229838e-06, -3.4645162853667485e-07, 3.057234069895978e-07, 1.5819380922947996e-06, -9.170115761759244e-09, -7.64981588087114e-07, -4.531739061771855e-07, -3.898404422371682e-07, 1.6906256532096239e-06, 1.0547699175948607e-06, 8.09181465455607e-09, -7.488220998697467e-07, 6.025197069449526e-08, 1.1128020241231398e-06, 9.011270299906829e-07, 1.0943232784394426e-06, -5.517050719589586e-07, -7.787987445815776e-08, 8.008583601126078e-07, 2.1032284262509204e-06, -3.987202654538153e-07, -1.5849881577947208e-06, -5.185858053444731e-07, 3.3830848396007137e-07, 2.1835922414240898e-06, -1.0897401310067177e-08, -7.772753170786217e-07, -1.5595130302989663e-06, -3.569179235598511e-07, 1.7281148072116162e-06, 1.1613627577747233e-06, -2.246403909178353e-08, -8.092851196423414e-07, 8.424827008905106e-08, 1.1508646680414009e-06, 2.8023774765208186e-06, 1.0065747375375226e-06, -1.650360455241435e-06, -5.048827659231237e-08, 8.305440054193936e-07, 2.836169994074148e-06, -3.654392945593176e-07, -1.5751982360689018e-06, -6.44835705297453e-07, 3.7472775322250303e-07, 1.8105093145601937e-06, 4.16462652837651e-09, -7.891815592446211e-07, -1.8532389052375782e-06, -2.9771538936723404e-07, 1.7649112805393318e-06, 1.127848442316887e-06, -6.856699029543977e-08, -2.1888082786513674e-06, 9.080533285388111e-08, 1.1856433558735211e-06, 2.6893186408914586e-06, 9.027493359765292e-07, -1.2979993495635107e-06, -5.8868919789856946e-08, 8.598754927261058e-07, 1.1770779914040299e-06, -3.7089490111289504e-07, -6.178301444512393e-07, -6.557472970611971e-07, 4.121214929637311e-07, 8.937003001290212e-07, 1.176708128785224e-08, -8.016846259061954e-07, -1.7988180309186655e-06, -2.0808754665199503e-07, 1.1142799132686843e-06, 1.0748508027885448e-06, -1.1114528548768487e-07, -7.801996943104725e-07, 1.12806905285375e-07, 1.0919416135563233e-06, 2.553713246547439e-06, 8.078794793110878e-07, -4.496443603576964e-07, -5.814308966455436e-08, 6.500273172216927e-07, 1.032708458218843e-06, -3.71412744529871e-07, 1.0844036755798877e-06, 1.0844036755798877e-06, -6.47440719188519e-08, -1.6804795747317112e-06, -1.3954178730449323e-06, 5.078483041374471e-07, 1.6266961320739908e-06, 2.531984608112088e-06, -8.117784655853182e-07, -5.638257251729758e-07, -5.20349432351113e-07, 2.1564863752496382e-06, 1.755292981629538e-06, -2.2097887980488651e-07, -4.1944833840700777e-07, -7.575942906943548e-07, 1.3004238493622992e-06, 4.258540791674311e-07, 4.464084114633361e-07, -7.458006568864818e-07, 5.134919081845635e-08, 1.030617119186323e-06, 4.099662771611715e-07, 8.10228560233046e-07, -1.7887644618686897e-06, -5.897040685001721e-07, 1.2375315661343714e-06, 1.3072338745300552e-06, -6.272602722788045e-07, -8.057486484824645e-07, -3.678807059395045e-08, 1.264011786485004e-06, 2.4895352577165225e-06, -7.495129402774053e-07, -4.536183772173921e-07, -7.925485519970184e-08, 1.0475511729879748e-06, 1.073289239209105e-06, -1.1076416559016871e-07, -3.9645016783445546e-07, -6.040914905536221e-07, 9.09232869821146e-07, 8.202249576003505e-07, -2.0049033224303906e-07, -1.81304898723059e-06, -1.3720243413498067e-06, 7.516042469956892e-07, 1.6195244921477615e-06, 6.306386235051767e-07, -8.857443150209339e-07, -5.014880725313079e-07, 5.432411905201046e-07, 2.2432687212312532e-06, 1.7988309324787164e-06, -3.0432210378391313e-07, -3.7512997805519703e-07, -2.0591258465929267e-07, 1.2550864324352485e-06, 3.3631455755275e-07, -5.061765808932389e-07, -7.245159741901861e-07, -1.4465183301153716e-08, 1.0138618835739928e-06, 2.9085238213191903e-07, 2.4855060977836475e-07, -1.8116428696736973e-06, -5.280234328376687e-07, 1.269542964707004e-06, 1.2441916793637107e-06, 1.2013105789120333e-06, -7.43479218348833e-07, 2.5602766668270554e-08, 8.878595454425744e-07, 2.535881151827273e-06, 3.863284432709766e-07, -4.13905958405391e-07, -3.175531548065696e-08, 8.239685357076308e-07, 9.335234272635109e-07, -5.845172893720001e-07, -2.225826446270745e-07, -5.433115284999089e-07, 2.711571827185469e-07, 6.943585039560266e-07, -2.7744192908968156e-07, -6.413621117867998e-07, -1.355756102285615e-06, 5.725771177228961e-07, 1.6244840377574095e-06, 5.812365611974203e-07, -1.7249459096807606e-06, -4.4637988107213613e-07, 6.624744022006885e-07, 2.354054735150117e-06, 1.8015323193827467e-06, -9.180621943307236e-07, -3.0682242913006605e-07, 4.985622180398181e-07, 2.1861159741376067e-06, 1.732956381768454e-07, -1.3213934516581838e-06, -6.860335291826261e-07, 5.574083673423914e-08, 1.6778619084857795e-06, 1.9311794532891706e-07, -7.125818227111935e-07, -1.9083255674015433e-06, -4.7513182551374565e-07, 1.0892923093202048e-06, 1.1808730989553647e-06, -3.781123141068314e-08, -7.960136489701842e-07, 8.401036001644436e-08, 1.210244326021199e-06, 2.6522352626093047e-06, 7.2907632343902e-07, -1.2785898845595668e-06, 5.191545135199674e-08, 9.855892282807682e-07, 9.722997514966072e-07, -7.233242772571558e-07, -6.292071375438231e-07, -4.87449986061077e-07, 8.549062351631802e-07, 6.398179876039348e-07, -3.39407369005705e-07, -3.060188199294589e-07, -1.3163391628638876e-06, 6.351611635222761e-07, 1.5115356828461452e-06, 5.392165509078355e-07, -4.4889108212468526e-07, -4.3358945040917644e-07, 7.248824052804406e-07, 1.1870338210297093e-06, 1.7558994587066342e-06, -1.9330648996950676e-07, -2.751705879826487e-07, 5.565356972977373e-07, 1.8617423372946284e-06, -1.2077926482093706e-08, -1.4116522612189596e-06, -5.308712661080963e-07, 1.1467841543536571e-07, 1.8551545060300097e-06, 9.920088280491335e-08, -7.349935987561478e-07, -1.5122128320936281e-06, -4.310115354625054e-07, 1.7056079506702803e-06, 1.013231649955905e-06, -6.916395608680629e-08, -8.704819188167606e-07, 1.9869927642265443e-07, 1.2367163971659423e-06, 2.8394786994565978e-06, 7.020748955210984e-07, -1.8807706913449761e-06, 1.2740173685012185e-07, 9.953420249071507e-07, 3.1321034843937915e-06, -8.408472613443577e-07, -1.7117868144169919e-06, -4.433139317746272e-07, 9.010214007629953e-07, 1.795461105220273e-06, -3.9401252068454286e-07, -8.858202151943227e-07, -1.562358005155575e-06, 7.331291809828447e-07, 2.3666298437569335e-06, 4.7330285254154666e-07, -4.4601924209409157e-07, -2.003545992485643e-06, 7.915164498872608e-07, 1.3251563041554783e-06, 1.8444094722969618e-06, -2.0521050312446116e-07, -9.109164745165589e-07, 6.012404405769676e-07, 1.0801960871741459e-06, 7.77601154303501e-09, -1.4941698986607724e-06, -4.1321249755484855e-07, 1.7252921787596425e-07, 1.5310361650804618e-06, 1.036558594193237e-06, -7.63361683714525e-07, -7.252846903781443e-07, -3.915830854422407e-07, 1.8231159884666893e-06, 2.0330770895027084e-07, -1.0616540406129724e-07, -5.08334930021249e-07, 2.31484678216733e-07, 1.2476242475450893e-06, 6.475767832564823e-07, 6.686815736990068e-07, -7.114893287918891e-07, 1.7100071344302817e-07, 9.957750210709705e-07, 2.107410644612998e-06, -9.806368259986877e-07, -1.7541019689722536e-06, 5.870685997182966e-09, 9.706771593775098e-07, 1.5280440809212155e-06, -4.998330897981405e-07, -8.641210509506891e-07, -1.9699491768139276e-07, 8.682396137003921e-07, 2.4278592590191275e-06, 3.120022570671807e-07, -4.354198456779967e-07, -9.943068905998532e-07, 8.434060075334299e-07, 1.2737156147953329e-06, 2.0423362825045394e-06, -2.0704054536525236e-07, -2.063166751869638e-06, 6.380947027915019e-07, 1.0244248723407727e-06, 1.3517079956574801e-06, -1.6079657464930534e-06, -1.5364101353534163e-06, 3.11189647426467e-07, 1.5626899752174692e-06, 2.8425726473665794e-06, -7.711485757640985e-07, -6.703710983994723e-07, -8.360219675248384e-07, 1.9213123686300673e-06, 2.0481949369182748e-06, -1.1000342832691464e-07, -4.7124935633699156e-07, -1.1104924792485327e-06, 1.2533556905602781e-06, 6.76741990987316e-07, 7.367810173641174e-07, -6.989798002380251e-07, 3.8425393445201156e-07], "borderColor": "#fc8d62", "backgroundColor": "#fc8d62", "tension": 0.1}, {"label": "c\u209a", "data": [0.0, 8.678124765026317e-05, 0.00034430324596565655, 0.0007722825485155005, 0.0013726020622124874, 0.0021483296365824092, 0.0031034272502034692, 0.00424261997420281, 0.005571325335808516, 0.007095612144705226, 0.008822176222344337, 0.010758327014280936, 0.012911981962874302, 0.015291666542951181, 0.01790651904470076, 0.020766298954102796, 0.02388139877264377, 0.02726285848494088, 0.030922382743418825, 0.03487236034362492, 0.039125885920180535, 0.043696783747240384, 0.048599633551489954, 0.05384979839837866, 0.05946345437399533, 0.06545762208245313, 0.07185020058584991, 0.078660002747344, 0.08590679273891855, 0.09361132548882575, 0.10179538813016424, 0.11048184359241714, 0.11969467576747099, 0.12945903767587075, 0.1398013009242366, 0.1507491079608351, 0.16233142632405043, 0.1745786052371409, 0.187522434574212, 0.20119620622910048, 0.2156347778821181, 0.23087463953274792, 0.2469539822513947, 0.26391276889493853, 0.28179280934341217, 0.30063783654304127, 0.32049358591786886, 0.34140787734712263, 0.3634306997847723, 0.38661429850011186, 0.41101326517655024, 0.4366846291834067, 0.4636879537901513, 0.4920854321580702, 0.521941987229228, 0.5533253728487176, 0.5863062767617103, 0.6209584251277487, 0.6573586880675265, 0.6955871864657859, 0.7357273985075494, 0.7778662637657308, 0.8220942917159152, 0.8685056633709682, 0.917198331977435, 0.9682741195248284, 1.0218388079067038, 1.0780022231738438, 1.1368783117783572, 1.198585202383695, 1.2632452605261302, 1.3309851206168652, 1.4019357021886771, 1.4762322002531725, 1.55401404710934, 1.6354248397599656, 1.7206122259157717, 1.8097277423232072, 1.9029265935084223, 2.000367356349836, 2.102211615741191, 2.208623490263551, 2.31976904651199, 2.435815574816313, 2.5569307005150597, 2.683281299162293, 2.81503217879876, 2.952344474693268, 3.0953737221135635, 3.2442675094699753, 3.3991626539979003, 3.5601817824806967, 3.7274291963248802, 3.900985863867467, 4.080903345763166, 4.267196415600441, 4.459834060201013, 4.658728489179547, 4.863721682012127, 5.074568838762089, 5.290917987758723, 5.512284770930638, 5.738021186803121, 5.967276771029686, 6.198950338025661, 6.43163007072834, 6.663519472522346, 6.892346779231436, 7.115256316977188, 7.32868318282981, 7.528219965318213, 7.708501690572951, 7.863177055195897, 7.985143372042886, 8.06757618847785, 8.107835858646645, 8.119498493735316, 8.125399317465016, 8.131030084305529, 8.136629127833205, 8.14220314678192, 8.147753102720044, 8.153279778599064, 8.158783940537072, 8.164266303768157, 8.169727545464282, 8.17516831809841, 8.180589223300052, 8.18599086822928, 8.191373825479467, 8.196738634635562, 8.202085814821325, 8.207415860034406, 8.21272924428091, 8.218026419434382, 8.223307838242615, 8.228573895228017, 8.233825011957482, 8.23906157876612, 8.244283974066157, 8.249492551766918, 8.254687657876055, 8.259869602031836, 8.265038718735621, 8.27019532688336, 8.275339721780265, 8.2804721929462, 8.285593013979492, 8.29070244992953, 8.2958007539703, 8.300888195545271, 8.3059649821607, 8.3110313721276, 8.316087596312714, 8.321133880954164, 8.326170428242662, 8.33119744577961, 8.336215098542935, 8.3412236057879, 8.346223164247235, 8.35121395404315, 8.356196149595233, 8.36116991613462, 8.366135415784223, 8.371092805045341, 8.376042260788338, 8.38098389315581, 8.385917892504992, 8.390844409165604, 8.39576357348699, 8.400675506559207, 8.405580350242104, 8.410478182056796, 8.415369193042716, 8.420253500384801, 8.425131213119283, 8.430002439564783, 8.434867287206762, 8.439725864245256, 8.444578281162842, 8.449424642045676, 8.454265063796301, 8.459099672115439, 8.463928525060462, 8.468751705352078, 8.473569301855234, 8.478381415028213, 8.48318815136665, 8.487989634259531, 8.49278587255483, 8.497576964262727, 8.502362987745554, 8.507144031487215, 8.511920195502343, 8.516691557310955, 8.52145813985662, 8.526220068400022, 8.53097734992258, 8.535730074506596, 8.540478358103204, 8.545222264361309, 8.549961814381035, 8.554697076968536, 8.559428068385195, 8.564154917601766, 8.568877745857968, 8.573596520909609, 8.578311257537989, 8.5830220073822, 8.587728887881617, 8.592432127383436, 8.597131478426306, 8.60182709692994, 8.60651903236684, 8.611207426798396, 8.615892269411965, 8.620573523539697, 8.625251243724913, 8.62992563647128, 8.634596641801277, 8.639264344548435, 8.643928581988984, 8.648589738343649, 8.653247710021214, 8.657902350200763, 8.662553976960462, 8.667202594670659, 8.671847929527804, 8.676490195910056, 8.68112998278631, 8.685766342471586, 8.690400111183132, 8.695030878996384, 8.699658832691389, 8.704284092407978, 8.708906292598176, 8.713526339004375, 8.718142778184566, 8.722757589453728, 8.727369058344586, 8.727369058344586, 8.731964689839455, 8.736557134691397, 8.741146133759742, 8.74573341676426, 8.750317858953162, 8.754899191790079, 8.759478573361886, 8.76405559497987, 8.768629744339282, 8.773201205127382, 8.777770893076353, 8.78233839621208, 8.78690329240508, 8.791465643868603, 8.796025533055126, 8.800583300922758, 8.805138851688344, 8.809691688322452, 8.814243000727954, 8.818792080725412, 8.823338972472119, 8.82788327920166, 8.832425777795985, 8.836966057169922, 8.841504171701525, 8.846040084359407, 8.850574620491027, 8.855107094844678, 8.859636823341026, 8.864164702544707, 8.868691330019029, 8.873215343351202, 8.877737351296515, 8.882258284800642, 8.88677613227715, 8.891293073877575, 8.895807622786096, 8.900320525132257, 8.90483142205017, 8.90934085705514, 8.913848114940047, 8.918354418246787, 8.922857841282914, 8.927359917190815, 8.931860789044594, 8.93635951603791, 8.940855884407958, 8.945351689557244, 8.949845909037906, 8.954337702304162, 8.958828249245704, 8.963316646068217, 8.967803838900542, 8.972289309498674, 8.97677340680167, 8.981255840517486, 8.985736778049915, 8.990216079050086, 8.994694060485692, 8.999170399432824, 9.00364563526364, 9.00811885823168, 9.012590983729321, 9.017060897111158, 9.021529439250134, 9.025997634870766, 9.030463741622475, 9.03492801614819, 9.039391427186635, 9.043853750565123, 9.048313696196725, 9.052773048596215, 9.057230572550553, 9.061687217984247, 9.066142146870757, 9.070596199461832, 9.075048201918726, 9.07949999964957, 9.083949365511545, 9.088397986345528, 9.09284563322385, 9.097291201738303, 9.101735910948959, 9.106179903473056, 9.110621984047565, 9.115062675038212, 9.119502266620875, 9.123941156509767, 9.128378719318343, 9.132815127930163, 9.137250407553575, 9.141684094949062, 9.146116761791646, 9.15054838773987, 9.15497898431562, 9.159407980844447, 9.163836018707611, 9.168262921153891, 9.172688581496054, 9.177114008831971, 9.18153780968401, 9.185960262798247, 9.190381546330038, 9.194802103572432, 9.199222078251346, 9.203639882220582, 9.208057564246717, 9.212473704073767, 9.216888763925466, 9.221303333362103, 9.225715915839194, 9.230128877542247, 9.234539663249453, 9.238949942417129, 9.243359253637745, 9.247767153117177, 9.252174666042915, 9.25658078704677, 9.260985870961838, 9.265390563708182, 9.269793976810785, 9.274196094277412, 9.278597388851024, 9.282998176210894, 9.287398096552153, 9.291797008350095, 9.296194915154457, 9.300591860187081, 9.304987882230387, 9.309382884351013, 9.313777139452649, 9.318170355527066, 9.322562882471818, 9.326954183405547, 9.331344800534081, 9.335734823379799, 9.340124049897243, 9.344512243565447, 9.348899377970588, 9.353285963085247, 9.357671854393413, 9.362056463972552, 9.366440464224048, 9.370824082202565, 9.375205870062084, 9.379587791433526, 9.38396850134783, 9.38834865193442, 9.392727572136348, 9.397106337338878, 9.401483620851856, 9.40586077827415, 9.410236804815339, 9.41461197183688, 9.418986768561906, 9.423360795044475, 9.427733226478484, 9.432105760532883, 9.436477524969069, 9.440848516755372, 9.445218591302899, 9.449587911127901, 9.4539562789343, 9.45832429611697, 9.462691595242456, 9.467058029858885, 9.471424005023461, 9.475789148751796, 9.480153403218337, 9.484517356483716, 9.48888050113883, 9.493242908730565, 9.497604282984424, 9.501965185916118, 9.5063256541192, 9.510685659878424, 9.515044167270458, 9.519402408708151, 9.523760430630892, 9.528117180737274, 9.532473709196314, 9.536829425439878, 9.54118458260491, 9.54553899941784, 9.549892927675383, 9.554246035113913, 9.55859872651914, 9.562950309884283, 9.567301959880611, 9.571652604772785, 9.576002547179673, 9.5803522895241, 9.584701233473826, 9.589049251567975, 9.593396923073868, 9.597744169046441, 9.602090770044656, 9.606436712919615, 9.610781797668853, 9.61512669936847, 9.619470569023855, 9.623814317244152, 9.628157285853675, 9.63249972664226, 9.636841835406726, 9.641183443089723, 9.64552408210089, 9.649864421109717, 9.65420381925473, 9.658542926216581, 9.662881762851173, 9.66721976611134, 9.6715572111325, 9.675894110910539, 9.680230684672324, 9.684566461097287, 9.688901823196899, 9.693236920442367, 9.697570976722723, 9.701905062452155, 9.706238125720786, 9.710571145795539, 9.714903225657368, 9.719235201374074, 9.723566416907184, 9.727897091129707, 9.732227565709335, 9.736557479360457, 9.740886486058422, 9.745215309618183, 9.749543919047786, 9.753871563983779, 9.758198945566553, 9.762525581711031, 9.766851880991393, 9.771177945749915, 9.775503455227938, 9.779828497020734, 9.784153028031785, 9.784153028031785, 9.784263255537333, 9.784263281451892, 9.784263288106025, 9.784263289389044, 9.784263268810472, 9.784263238624252, 9.78426327412607, 9.784263290925614, 9.78426331224348, 9.784263280807046, 9.78426325188396, 9.784263251196913, 9.784263275437379, 9.784263290340816, 9.784263272759222, 9.784263252203878, 9.784263221017936, 9.784263254710567, 9.784263282269483, 9.784263275167282, 9.784263261968993, 9.784263250561793, 9.784263278187284, 9.78426328519465, 9.784263286071697, 9.78426326421214, 9.784263253045646, 9.784263271133588, 9.784263271552954, 9.784263306429875, 9.784263276006454, 9.784263242750097, 9.784263248259728, 9.784263250548712, 9.784263285338257, 9.784263269195389, 9.784263251649422, 9.784263218409581, 9.784263260247494, 9.784263278252524, 9.784263271925536, 9.78426325724601, 9.78426324738677, 9.78426327578983, 9.784263269254007, 9.78426328274509, 9.784263275853213, 9.784263250366577, 9.784263268064038, 9.784263266741437, 9.784263302484687, 9.784263271251724, 9.784263238169132, 9.784263245463064, 9.784263287212559, 9.784263282722305, 9.784263265581792, 9.7842632380394, 9.784263216233251, 9.784263258947826, 9.78426327541292, 9.784263268212316, 9.784263254799711, 9.784263243431248, 9.784263273231327, 9.784263270571351, 9.784263279373022, 9.78426325157686, 9.784263246337776, 9.784263264986489, 9.78426329853289, 9.784263298163552, 9.784263254919376, 9.784263234599992, 9.784263242672575, 9.784263279776141, 9.784263279551563, 9.784263261925814, 9.784263233410853, 9.78426321399912, 9.784263279925268, 9.784263272840835, 9.784263264544999, 9.7842632415875, 9.784263240323583, 9.784263264095461, 9.784263269404498, 9.784263275961145, 9.784263247660837, 9.784263242628688, 9.784263234622854, 9.78426329512249, 9.784263293941384, 9.78426325675045, 9.784263230842436, 9.784263239930718, 9.784263276787406, 9.784263276150657, 9.784263258001877, 9.7842632284281, 9.784263211906262, 9.784263259845119, 9.784263269928521, 9.784263276896157, 9.784263238483291, 9.784263237028792, 9.784263225013882, 9.784263267127587, 9.78426329963166, 9.784263244208583, 9.784263238891613, 9.784263205589827, 9.78426329107983, 9.78426328970991, 9.784263252723896, 9.784263226844, 9.784263197755132, 9.784263272611618, 9.784263272799839, 9.784263279536441, 9.784263224345734, 9.784263209962853, 9.784263255275183, 9.784263267076401, 9.784263289344896, 9.784263234619722, 9.784263233801882, 9.784263227680075, 9.784263264990566, 9.78426327027336, 9.784263240573809, 9.784263235215592, 9.784263205892207, 9.784263287791683, 9.78426328531098, 9.784263249544379, 9.78426322295756, 9.7842632339381, 9.784263269815131, 9.784263269437327, 9.78426326512512, 9.78426322020526, 9.784263246469916, 9.784263252939347, 9.784263264192804, 9.784263253318116, 9.784263230910872, 9.78426323457695, 9.784263228184116, 9.784263262755223, 9.784263266409823, 9.784263236616209, 9.78426323204504, 9.784263257197312, 9.784263284411418, 9.784263258791666, 9.784263245316238, 9.784263219135717, 9.784263251411616, 9.784263266710367, 9.784263260183124, 9.784263258717804, 9.784263216132704, 9.784263228904337, 9.784263250142644, 9.784263265447045, 9.784263248746713, 9.784263227137956, 9.784263231288978, 9.784263227192426, 9.78426326065501, 9.784263250774371, 9.784263232710588, 9.784263205966349, 9.784263256866472, 9.784263280945288, 9.784263258987938, 9.784263241363716, 9.784263203554586, 9.784263248158918, 9.784263263673392, 9.784263279461957, 9.784263254759582, 9.784263212078962, 9.784263223441467, 9.784263247478846, 9.784263263391981, 9.784263244969651, 9.784263223072202, 9.784263189169424, 9.784263225695536, 9.78426327977552, 9.78426324692704, 9.784263228816563, 9.78426318771584, 9.78426325290086, 9.784263277456786, 9.7842632582753, 9.784263237332464, 9.784263207868191, 9.784263244565706, 9.784263260627945, 9.784263282136497, 9.784263250264253, 9.784263208038809, 9.78426322083864, 9.78426324513116, 9.78426328822961, 9.784263241548738, 9.784263219073273, 9.784263188187929, 9.784263224526343, 9.784263269267951, 9.784263243811916, 9.784263224929331, 9.784263218260588, 9.784263249724777, 9.784263254596866, 9.78426325521105, 9.784263233280797, 9.784263223248832, 9.784263241123499, 9.784263257594136, 9.78426327773933, 9.78426324514671, 9.784263217996381, 9.784263218633813, 9.784263242711358, 9.784263256165318, 9.784263237811867, 9.784263217658637, 9.784263187668854, 9.784263223173978, 9.784263248628065, 9.784263240509866, 9.784263225896625, 9.784263217919388, 9.784263246447459, 9.784263216543733, 9.784263216543733, 9.784263239806974, 9.784263272573066, 9.784263266623242, 9.784263227596664, 9.784263204637801, 9.784263186030149, 9.78426325405963, 9.78426324887231, 9.784263247795767, 9.784263193045263, 9.784263201103283, 9.784263241215633, 9.784263245137144, 9.784263251857412, 9.784263209721274, 9.784263227434794, 9.784263226821006, 9.784263251013355, 9.784263234578106, 9.784263214431524, 9.784263226966454, 9.784263218636323, 9.784263271491108, 9.784263246896337, 9.784263209417883, 9.784263207868817, 9.78426324717427, 9.784263250650215, 9.784263234831098, 9.784263208089678, 9.784263182966072, 9.784263248879158, 9.78426324267624, 9.7842632349074, 9.784263211719592, 9.784263211069495, 9.784263235056551, 9.784263240729496, 9.784263244831322, 9.784263213788952, 9.784263215437624, 9.784263236132325, 9.7842632688275, 9.784263259700355, 9.784263216213096, 9.784263198337447, 9.784263218385782, 9.784263249122352, 9.784263241155323, 9.784263219672997, 9.78426318482851, 9.784263193771936, 9.784263236469751, 9.784263237787497, 9.784263234178788, 9.78426320419933, 9.784263222817215, 9.784263239836509, 9.784263244132964, 9.784263229509698, 9.784263208326278, 9.784263222950994, 9.784263223652276, 9.784263265509837, 9.78426323919358, 9.784263202318328, 9.78426320270939, 9.784263203446457, 9.784263242932383, 9.784263227113959, 9.784263209327882, 9.784263175575356, 9.78426321929753, 9.7842632354184, 9.784263227493705, 9.784263209874483, 9.784263207473948, 9.784263238313326, 9.784263230737025, 9.784263237145453, 9.784263220374472, 9.784263211557585, 9.784263231257711, 9.784263238513091, 9.784263252922093, 9.784263213452272, 9.784263191788272, 9.784263212948959, 9.784263259830055, 9.784263233585124, 9.78426321083252, 9.784263176121403, 9.78426318727241, 9.784263242615324, 9.784263229946186, 9.784263213384687, 9.784263178785597, 9.784263219696472, 9.784263250055723, 9.784263236900678, 9.78426322163249, 9.784263188375657, 9.784263218498742, 9.784263236846975, 9.784263261034727, 9.784263231669323, 9.784263199590983, 9.784263197554935, 9.784263222291512, 9.784263237558179, 9.784263219477287, 9.784263196368766, 9.784263166754808, 9.784263205865031, 9.784263246650498, 9.78426321933974, 9.784263200159172, 9.784263200236524, 9.784263234699525, 9.78426323261251, 9.78426322955922, 9.784263202036977, 9.78426320622456, 9.784263226076563, 9.784263225233179, 9.784263245670681, 9.784263205731342, 9.784263187646678, 9.784263207360757, 9.784263227389848, 9.784263226877622, 9.784263203114467, 9.784263193516038, 9.784263181756824, 9.784263221394237, 9.78426322285346, 9.784263205756227, 9.784263178964475, 9.784263217030599, 9.78426324545243, 9.784263227290248, 9.784263213984481, 9.784263178326354, 9.784263213967296, 9.78426323085977, 9.784263246540652, 9.784263224323313, 9.784263180606382, 9.784263194528544, 9.784263216485767, 9.78426323268848, 9.784263210689636, 9.784263189384504, 9.78426315648872, 9.784263199970562, 9.7842632525165, 9.784263211351654, 9.784263193515635, 9.784263149757159, 9.784263230650891, 9.784263248285324, 9.784263222211854, 9.784263194651384, 9.784263176245666, 9.784263220744647, 9.78426323064856, 9.784263244269683, 9.784263197287075, 9.784263163833959, 9.784263202257044, 9.784263220886352, 9.784263252484442, 9.784263195308998, 9.784263184292744, 9.784263173504309, 9.784263215192656, 9.784263229415545, 9.784263198397918, 9.78426318849684, 9.784263210179578, 9.784263240690432, 9.784263218472542, 9.784263206357906, 9.784263178508422, 9.784263188441187, 9.784263224992555, 9.784263224083963, 9.784263217070382, 9.784263171764252, 9.784263204647026, 9.78426321079401, 9.784263218868746, 9.784263203574422, 9.784263182716979, 9.784263194789935, 9.784263194205677, 9.784263222231749, 9.78426320401606, 9.78426318706147, 9.784263164218872, 9.784263227055241, 9.784263242703998, 9.784263206634485, 9.784263186783816, 9.784263175281174, 9.784263216456226, 9.784263223760288, 9.784263209984491, 9.784263188083639, 9.784263156141138, 9.784263199101359, 9.78426321422446, 9.78426322547668, 9.78426318780318, 9.784263178898176, 9.784263163020725, 9.784263208784841, 9.784263246499183, 9.784263191198427, 9.784263183190296, 9.784263176351233, 9.784263236564366, 9.784263234972808, 9.784263197082351, 9.784263171416544, 9.784263145165976, 9.784263218703503, 9.784263216519207, 9.784263219710448, 9.78426316331538, 9.784263160600732, 9.784263204424455, 9.784263211667449, 9.784263224530122, 9.784263176154399, 9.784263187789778, 9.784263186370014, 9.784263215532096, 9.784263193305964], "borderColor": "#e78ac3", "backgroundColor": "#e78ac3", "tension": 0.1}, {"label": "c\u2092\u2082", "data": [100.0, 99.55719285309159, 99.44602709458087, 99.36474210449924, 99.55064625126914, 99.62452258596227, 99.57141601411638, 99.62234913565221, 99.54666906789507, 99.34008826930635, 99.25500967188435, 99.07561221785201, 99.09954904980336, 99.18383893024885, 99.38209519688179, 99.28180501600994, 99.23027206426907, 99.15671707395572, 99.0593131418108, 98.96390815674414, 98.90666748023926, 98.9108827637336, 98.78982321743841, 98.76084485734128, 99.02961265951078, 98.98264113696493, 98.87674029694021, 98.71483513262731, 98.52121197301571, 98.33133280424235, 98.1970950150176, 98.387871606824, 98.3004318698722, 98.2639229343106, 98.20763939584516, 98.1094829423027, 97.97636216824763, 97.82290132104357, 97.67639199252474, 97.576962742795, 97.37201624487938, 97.22530401929511, 97.49838030171648, 97.42962294906329, 97.29326800034596, 97.09180343113837, 96.83826944696706, 96.55832329704872, 96.2940332107881, 96.10340341257162, 96.21531715607132, 96.02081785787293, 95.86785231120707, 95.68482260748728, 95.45516482885162, 95.19010835107468, 94.9100614776221, 94.64893800985716, 94.29745230922622, 93.96836955073681, 94.10810470298394, 93.90877963214295, 93.63448196452634, 93.28719088609999, 92.87302443411691, 92.41251998479929, 91.94324260488399, 91.51958532386057, 91.3901102635363, 90.98199977956037, 90.60242873762755, 90.18275321315143, 89.70421666719287, 89.17649989707715, 88.61953918355067, 88.06809374628098, 87.42036711293791, 86.78849140183839, 86.57408802445318, 86.01601193581826, 85.3650303919295, 84.62231744748293, 83.79948461111442, 82.9252251157156, 82.04894473764377, 81.24114053136744, 80.6475682534364, 79.73101847123914, 78.81079045001425, 77.81921834475527, 76.75363057368259, 75.64066487641334, 74.52540671038076, 73.42469771968493, 72.18457376740527, 71.00434694891806, 69.8357122287294, 68.3902465005038, 66.84386380964477, 65.2365447237852, 63.66137627814916, 62.16304135635926, 60.596435190792974, 58.98510451481543, 57.033513738106834, 55.13180889032336, 53.28076503125698, 51.40025294945847, 49.4436272470729, 47.42151296191637, 45.4440254563099, 43.74619600187753, 42.443646238260264, 41.934825922901965, 43.97048269788299, 56.042061378923094, 76.88967239985183, 79.77005594039039, 79.64727043811335, 79.73098862566142, 79.80357050864203, 79.82583966058631, 79.99212949556187, 80.02728041117227, 79.93117033670643, 79.80976869222786, 79.6292317108773, 79.71865195062279, 79.8301056995081, 79.87877269037426, 79.88001297708468, 79.82204343394297, 79.75591974671127, 79.71465183911644, 79.74942721641882, 79.64949520779798, 79.79909579234882, 79.94348775941683, 80.0226549743179, 79.95675435551118, 79.83048917477423, 79.64376800140268, 79.69745816141942, 79.81138069326573, 79.86586834300566, 79.87832077436599, 79.82161708880187, 79.75203439727125, 79.70751492406129, 79.74139157427915, 79.64546030228416, 79.8043503523695, 79.95059911264879, 80.01646915452005, 79.92549254811966, 79.79697255951626, 79.61381509102485, 79.71141110813116, 79.82582954221407, 79.87154031626311, 79.8496280667717, 79.77912497364828, 79.71686092926058, 79.69678658941996, 79.74575642877281, 79.70017051354557, 79.90604520920203, 80.00883608568007, 79.94829413605646, 79.81066786385689, 79.71704633362545, 79.59264319518705, 79.80587185057172, 79.86738835862077, 79.82884778833512, 79.75613725707117, 79.70143583629302, 79.69877581629683, 79.75516806339597, 79.83631002270299, 79.95063446551485, 80.00849639476735, 79.85887999162215, 79.73584846310703, 79.70336054458528, 79.77323972659194, 79.8799580682655, 79.93066576641922, 79.73628954024437, 79.69408588020771, 79.71006195692375, 79.78714077586598, 79.87508168184452, 79.87142184692692, 79.76757678602331, 79.78377163495975, 79.70417917156955, 79.76997331874533, 79.88977918784921, 79.88560889031592, 79.77648808971497, 79.71601911620496, 79.68115293221304, 79.80574569236082, 79.87493157482811, 79.71799525126691, 79.6053546503862, 79.6432010269925, 79.82577962962367, 79.98346128009767, 79.70726774140864, 79.7215211480943, 79.77287799440391, 79.85549698129152, 79.78317918896181, 79.68740760416094, 79.72230424960888, 79.85794850602052, 79.81731577818792, 79.78955020265755, 79.71438538288682, 79.88322378708699, 79.81181349877397, 79.71606054368097, 79.82348051203063, 79.79200373451593, 79.679217555704, 79.8131827512552, 79.98899985528118, 79.7021537696884, 79.86551465505308, 79.7620459826876, 79.77542375756232, 79.77842934855013, 79.71104567993615, 79.85288871039954, 79.61594431556034, 79.9598290337994, 79.66993164244826, 79.80547272835238, 79.80547272835238, 79.62790506021872, 79.4687796394776, 79.68968105881363, 79.50898038448454, 79.45556497686492, 79.6370400184715, 79.58368877559026, 79.48484552051148, 79.54550445162327, 79.69449191718331, 79.61129262482449, 79.46473048133248, 79.40855216728859, 79.42364088731799, 79.48806077729394, 79.49704257748581, 79.49176030060099, 79.62890989319565, 79.55892787064407, 79.50313465657369, 79.4545832519561, 79.52679493424058, 79.5099309887518, 79.52361046742784, 79.55712057895092, 79.62418592010818, 79.52174782531607, 79.431808546864, 79.52349212480209, 79.57959596897965, 79.46654528489412, 79.51031506575636, 79.5699019170016, 79.44029519181939, 79.57774878433312, 79.49994447830314, 79.53928798357845, 79.5363466282385, 79.57163327040284, 79.53458141598648, 79.5773408341695, 79.45348806366297, 79.55683543086366, 79.57994899710954, 79.50044983937457, 79.50642404774071, 79.63936285722839, 79.55798208033376, 79.4633941899595, 79.51451709807765, 79.49323546598431, 79.56824929448283, 79.5693265121557, 79.59317008519385, 79.5802110510873, 79.58442178120553, 79.57887982175637, 79.59002751340262, 79.56580544692167, 79.56370419632921, 79.49498286977553, 79.51472896414434, 79.47174511273954, 79.55240007667639, 79.61887878206721, 79.50751301452289, 79.50423795568472, 79.56737491163409, 79.54400938266464, 79.47315073622838, 79.55894429664426, 79.52316038887662, 79.5601370369908, 79.5247387601847, 79.54762086508038, 79.50213567990893, 79.56760364213179, 79.46785822403331, 79.5380473937055, 79.5277802969308, 79.47344357035483, 79.53837169948594, 79.54520673550654, 79.47566960302407, 79.50390190488335, 79.55516530962734, 79.58923491315468, 79.55152620043616, 79.53223747270383, 79.5083569141658, 79.47748533574048, 79.50516935421484, 79.51304547451386, 79.50545307995563, 79.48200619019909, 79.52170478707194, 79.53811470176527, 79.55647426431413, 79.5921259981264, 79.51145073753165, 79.50186741120335, 79.5267912036472, 79.56334650883448, 79.55437663229476, 79.48260334828669, 79.55622190576746, 79.5092763537944, 79.52727495574833, 79.55105068008356, 79.50615968361272, 79.58475816852317, 79.48628682700466, 79.53658239558617, 79.52458231685134, 79.50981503865908, 79.54861587165522, 79.51359102969556, 79.53112623034322, 79.55761420699768, 79.51423561467308, 79.51155928769002, 79.55190235109355, 79.57799407810816, 79.55240078965569, 79.51999208033003, 79.49867289800886, 79.48864833905867, 79.4853582985564, 79.4848274828846, 79.4990781684143, 79.49647449657066, 79.51241452476077, 79.50618816733545, 79.54178830705615, 79.55601982717913, 79.53945338281555, 79.51631942324089, 79.51485369399039, 79.53858521083187, 79.52891224727283, 79.50341339211361, 79.53052945756588, 79.53325437726589, 79.4863545230098, 79.55618765907305, 79.5188318171187, 79.52830044107199, 79.51104239980938, 79.54354104445976, 79.50500016039274, 79.54553958136836, 79.51305728704682, 79.52146812796916, 79.54045711056335, 79.51597105605912, 79.49326684108253, 79.56421515864098, 79.5410218256969, 79.52108135157732, 79.50520229770261, 79.50951636750328, 79.51687862858859, 79.54910043316795, 79.54109970225953, 79.53340131730386, 79.54267800593648, 79.52548722486743, 79.5224560454875, 79.54016111846273, 79.51562279876684, 79.50411670113098, 79.49830404917378, 79.53010101843246, 79.53987092168221, 79.52430572345335, 79.4870164013998, 79.53827859923128, 79.54793204171443, 79.51138164521461, 79.54036098997322, 79.52431460480426, 79.52589857044897, 79.5187934537761, 79.52253313964268, 79.51140571307116, 79.52024564363964, 79.50721768910373, 79.54474380647008, 79.51107810713388, 79.5179659844955, 79.53422407014101, 79.50840061001539, 79.50252645294039, 79.53011718284436, 79.53208181487159, 79.51682919204201, 79.50724852691023, 79.50492481894834, 79.53066396370558, 79.51585937812754, 79.54740846134413, 79.53284094448352, 79.53949845914111, 79.54220227516682, 79.52150754441311, 79.49481992796758, 79.50989115838138, 79.49940084029801, 79.52806430330125, 79.53081082085333, 79.50610153987073, 79.51077905356915, 79.51741339073173, 79.52500063148852, 79.51206215839703, 79.525705452928, 79.52820296824383, 79.50497514541074, 79.53319827887849, 79.50731787443, 79.5315404364864, 79.5096699084165, 79.53038556429512, 79.51158500215158, 79.51790557323622, 79.52816604643024, 79.5094773494849, 79.49724336634304, 79.52548585082437, 79.52383631623071, 79.49567376973681, 79.51414743444147, 79.51139989212072, 79.53468826354724, 79.54447064228832, 79.5311390926684, 79.52598688864705, 79.52082725170168, 79.5199232220428, 79.5199232220428, 100.00202035289286, 99.99943946685082, 99.99875102820587, 99.99860534222222, 100.00066857312481, 100.00369841888657, 100.00009874497269, 99.99839020749279, 99.9962185153341, 99.99937803625527, 100.00228033265002, 100.00233273703654, 99.99987354641104, 99.99834930580998, 100.00011069991311, 100.00216819152308, 100.00529905479296, 100.00188619413797, 99.99908410942707, 99.99978788715795, 100.00110415828011, 100.00223787288817, 99.99943711886485, 99.9987130356312, 99.99860831232435, 100.0008006647023, 100.00190716324111, 100.0000689257476, 100.00001039466353, 99.99647340735213, 99.9995306479096, 100.00286641406085, 100.00229741800536, 100.00205225398292, 99.99852231300841, 100.0001385390809, 100.00189018060921, 100.0052306007156, 100.00099533445619, 99.99915761381129, 99.99978326361797, 100.00124891866422, 100.00222654073777, 99.99934714922763, 99.99998729084551, 99.9986122158332, 99.99929279244577, 100.00184558737347, 100.00004686713055, 100.00016348903469, 99.99653988310571, 99.99967858936691, 100.00299668825114, 100.0022478776964, 99.99801839873872, 99.99845469650278, 100.00017134440651, 100.00293035426277, 100.00511847796471, 100.00079453915912, 99.99911246324218, 99.99982609839103, 100.00116235297511, 100.00229399977472, 99.9992734159017, 99.99952207588669, 99.99862067002871, 100.00140877455144, 100.00192053087731, 100.00002557321348, 99.99661994759835, 99.9966442118867, 100.00099166154558, 100.00302526690012, 100.00219765881113, 99.99843311801023, 99.99844295447058, 100.00020837237595, 100.00306576892821, 100.0050120751375, 99.99834224127795, 99.99904033525729, 99.99986428322597, 100.00216105223754, 100.00227581865397, 99.99985986998806, 99.9993081008353, 99.99863310246865, 100.00146813406936, 100.00196310351863, 100.0027548219025, 99.9966323443853, 99.99673850070468, 100.00047175007556, 100.00307277120532, 100.00214247396337, 99.99840306175037, 99.99845431251197, 100.00026921093772, 100.00323685178675, 100.00489139551645, 100.00003298111442, 99.99900247202174, 99.99828432422647, 100.00214247859552, 100.00227648880842, 100.00346932663817, 99.99920616002375, 99.99591142131037, 100.00148464848205, 100.00200845577795, 100.00535235828458, 99.9967087139747, 99.9968336695818, 100.00054639803153, 100.00314444451281, 100.00606557828915, 99.99849252609538, 99.99846060409693, 99.99776263667162, 100.00331711302168, 100.00475560333808, 100.00016221245424, 99.99895850208091, 99.99669397186716, 100.00220073788542, 100.00227025921204, 100.0028680290465, 99.99909003433906, 99.99853965498528, 100.00151987657841, 100.00204758704182, 100.0049900332401, 99.99670874170062, 99.996945641665, 100.00053506336832, 100.00320480505304, 100.00208075627654, 99.99844307544097, 99.99846804237113, 99.9988826861967, 100.00340318179713, 100.0007361177464, 100.00006633712799, 99.99891765737259, 99.99999481429178, 100.00224327869385, 100.00185638262376, 100.00248550649036, 99.99898377388072, 99.9985977344771, 100.00158747940837, 100.00203561583953, 99.99947755909889, 99.99671804443705, 99.9992867523003, 100.00063002773727, 100.00325861609866, 99.99998139341284, 99.9984246414135, 99.99906700948044, 99.99919759822733, 100.00348234791674, 100.00217293977964, 100.00001687160045, 99.99845801691659, 100.00012435338661, 100.00229223272153, 100.00185640568411, 100.00225381785648, 99.99886377794566, 99.99983997128757, 100.00164981441215, 100.0043325206415, 99.99917907149369, 99.99673599198411, 99.9989323108676, 100.00069715549206, 100.00449793474235, 99.99997777712271, 99.998399326608, 99.99678865785779, 99.99926541062688, 100.00355956066042, 100.0023922916617, 99.9999539391987, 99.99833350842255, 100.00017378373387, 100.00237063022104, 100.00577240185862, 100.00207310547835, 99.99660159345386, 99.99989628543966, 100.00171096034917, 100.00584163472568, 99.99924761563267, 99.9967561534717, 99.99867203936942, 100.0007721759589, 100.00372918446388, 100.00000879825213, 99.99837480982234, 99.9961836990082, 99.99938733705889, 100.00363534671524, 100.00232325973899, 99.9998589848397, 99.9954927689245, 100.00018729604699, 100.00244226421613, 100.00553900479154, 100.00185928116707, 99.99732696135413, 99.99987902264142, 100.00177137705748, 100.00242454863992, 99.99923637977601, 99.9987277901984, 99.99864958067981, 100.00084920319014, 100.00184105469094, 100.00002446107983, 99.99834906368126, 99.99629577477258, 99.99957192835015, 100.00229532541974, 100.00221408110012, 99.99977129063133, 99.99839336019507, 100.00023261810111, 100.00224951808354, 100.0052597023976, 100.00166390163874, 99.9990742395776, 99.99988052642827, 100.00133954096071, 100.00212718197679, 99.99923531365742, 100.00223362645725, 100.00223362645725, 99.99986695412282, 99.99654001303253, 99.99712705033605, 100.00104638027234, 100.0033501869918, 100.00521407023595, 99.99832855169348, 99.99883920587106, 99.99892943936464, 100.0044409518544, 100.00361462738137, 99.99954514742996, 99.99913649068264, 99.99844082702853, 100.00267814512904, 100.00087715645085, 100.00091917700615, 99.99846434304632, 100.00010609751719, 100.00212263659776, 100.00084447398163, 100.00166851203029, 99.99631704982926, 99.99878618501661, 100.00254882191307, 100.00269224945524, 99.99870874020253, 99.99834098983025, 99.9999245346591, 100.00260329651118, 100.00512664670065, 99.99845684747706, 99.99906608328244, 99.99983708609275, 100.00215746373387, 100.0022103696038, 99.9997722265668, 99.99918360968124, 99.99875627700993, 100.0018726615032, 100.00168933337794, 99.99958736756561, 99.99626704690372, 99.99717523385176, 100.00154809507309, 100.00333540872155, 100.00129889496858, 99.99817629109789, 99.99896756697059, 100.0011191766347, 100.00461962525864, 100.00370423450265, 99.99937366976833, 99.99922775006111, 99.99957665584756, 100.00258477450876, 100.0006927755753, 99.9989579459557, 99.99850815784353, 99.99997056787045, 100.00208819928173, 100.00059917873207, 100.00051219267752, 99.99626994916969, 99.99891320029776, 100.00261495848433, 100.0025624228781, 100.00247386535976, 99.99846921048301, 100.00005300532662, 100.0018292389608, 100.00522205745467, 100.0007957578223, 99.99914786730635, 99.99993489624198, 100.00169748125687, 100.00192255118998, 99.99879663989024, 99.99954194212066, 99.9988814285162, 100.0005592746497, 100.00143013522084, 99.9994288983266, 99.99867960369275, 99.99720874552605, 100.00117952024851, 100.00334563731792, 100.00119715851108, 99.99644860789101, 99.9990810410744, 100.00136449789463, 100.00484776602612, 100.00370977555006, 99.99810996512963, 99.99936841690914, 100.00102700243225, 100.00450214007506, 100.00035708818756, 99.99727933208673, 99.99858739191043, 100.0001151339431, 100.00345538781066, 100.00039790891597, 99.9985328387126, 99.996070938746, 99.99902211593684, 100.00224346322115, 100.00243202345816, 99.99992234644893, 99.998361081012, 100.00017327356807, 100.00249248587846, 100.005461637608, 100.00150131999807, 99.99736741813938, 100.00010719151761, 100.00202993803833, 100.00200241417888, 99.99851081901518, 99.9987045934516, 99.9989964491039, 100.00176088371697, 100.0013178764885, 99.99930128964102, 99.99937018034272, 99.99728991236864, 100.00130838769783, 100.00311324921047, 100.00111062446018, 99.99907582817507, 99.9991074238413, 100.00149300228067, 100.00244488829499, 100.00361577136675, 99.99960196468496, 99.99943371216135, 100.00114638116963, 100.0038345003887, 99.99997537184525, 99.99709348434405, 99.99890717320882, 100.0002364954931, 100.00382086319495, 100.00020450687612, 99.99848668166318, 99.99688660939458, 99.99911297165053, 100.00351257605735, 100.0020869934146, 99.99985777821239, 99.9982078078587, 100.00040943674824, 100.00254698667246, 100.0058477150902, 100.0014456927266, 99.99612782824896, 100.00026264296271, 100.00205001558437, 100.00644985303902, 99.99826882679287, 99.9964755150191, 99.99908733495435, 100.0018558428915, 100.00369746808333, 99.99918883670082, 99.99817611109808, 99.99678355197896, 100.00151011545522, 100.00487364472154, 100.00097489532583, 99.99908173699514, 99.9958751836314, 100.00163020819272, 100.00272906372163, 100.00379801031643, 99.99957743331662, 99.99812456631878, 100.00123843406499, 100.00222472385933, 100.00001628313264, 99.99692357686091, 99.99914939759934, 100.00035561566338, 100.00315321336456, 100.00213469380739, 99.99842825738105, 99.99850672141571, 99.99919421464332, 100.00375452708872, 100.00041891689715, 99.99978157425997, 99.99895344290482, 100.00047698710213, 100.0025694381686, 100.00133391749632, 100.00137690325023, 99.99853498196036, 100.00035252628192, 100.00205090151111, 100.00434029191005, 99.99798098296864, 99.99638839144987, 100.0000124213535, 100.00199927552151, 100.00314698831951, 99.99897098031917, 99.99822078749723, 99.9995947678951, 100.00178831374227, 100.00499970378966, 100.00064289685768, 99.99910355954165, 99.99795299074052, 100.0017370529479, 100.00262312325006, 100.00420603830034, 99.9995736458623, 99.99575244370546, 100.00131433114446, 100.00210986699105, 100.00278396554452, 99.996689264038, 99.99683671207833, 100.00064139047922, 100.00321839238299, 100.00585367446632, 99.99841221560986, 99.99861979482051, 99.99827939050365, 100.00395671416042, 100.00421778126103, 99.99977367791656, 99.99902980754733, 99.99771416467365, 100.00258123052745, 100.0013937854496, 100.001517114452, 99.99856072801973, 100.00079120069427], "borderColor": "#a6d854", "backgroundColor": "#a6d854", "tension": 0.1}, {"label": "cum Feed", "data": [0.0, 0.2510460251046025, 0.502092050209205, 0.7531380753138075, 1.00418410041841, 1.2552301255230125, 1.506276150627615, 1.7573221757322175, 2.00836820083682, 2.2594142259414225, 2.510460251046025, 2.7615062761506275, 3.01255230125523, 3.263598326359833, 3.514644351464435, 3.7656903765690375, 4.01673640167364, 4.2677824267782425, 4.518828451882845, 4.7698744769874475, 5.02092050209205, 5.271966527196653, 5.523012552301255, 5.7740585774058575, 6.02510460251046, 6.2761506276150625, 6.527196652719666, 6.7782426778242675, 7.02928870292887, 7.280334728033473, 7.531380753138075, 7.782426778242678, 8.03347280334728, 8.284518828451882, 8.535564853556485, 8.786610878661087, 9.03765690376569, 9.288702928870293, 9.539748953974895, 9.790794979079498, 10.0418410041841, 10.292887029288702, 10.543933054393307, 10.794979079497908, 11.04602510460251, 11.297071129707113, 11.548117154811715, 11.799163179916318, 12.05020920502092, 12.301255230125523, 12.552301255230125, 12.803347280334727, 13.054393305439332, 13.305439330543933, 13.556485355648535, 13.807531380753137, 14.05857740585774, 14.309623430962343, 14.560669456066947, 14.811715481171548, 15.06276150627615, 15.313807531380752, 15.564853556485357, 15.815899581589958, 16.06694560669456, 16.317991631799163, 16.569037656903763, 16.82008368200837, 17.07112970711297, 17.322175732217573, 17.573221757322173, 17.824267782426777, 18.07531380753138, 18.326359832635983, 18.577405857740587, 18.828451882845187, 19.07949790794979, 19.330543933054393, 19.581589958158997, 19.832635983263597, 20.0836820083682, 20.334728033472803, 20.585774058577403, 20.836820083682007, 21.087866108786613, 21.338912133891213, 21.589958158995817, 21.841004184100417, 22.09205020920502, 22.343096234309627, 22.594142259414227, 22.84518828451883, 23.09623430962343, 23.347280334728033, 23.598326359832637, 23.849372384937237, 24.10041841004184, 24.35146443514644, 24.602510460251047, 24.85355648535565, 25.10460251046025, 25.355648535564853, 25.606694560669453, 25.85774058577406, 26.108786610878663, 26.359832635983263, 26.610878661087867, 26.861924686192467, 27.11297071129707, 27.364016736401673, 27.615062761506273, 27.86610878661088, 28.11715481171548, 28.368200836820083, 28.619246861924687, 28.870292887029287, 29.121338912133893, 29.372384937238493, 29.623430962343097, 29.8744769874477, 30.1255230125523, 30.376569037656903, 30.627615062761503, 30.878661087866107, 31.129707112970713, 31.380753138075313, 31.631799163179917, 31.882845188284517, 32.13389121338912, 32.38493723849373, 32.63598326359833, 32.88702928870293, 33.138075313807526, 33.38912133891213, 33.64016736401674, 33.89121338912134, 34.14225941422594, 34.39330543933054, 34.64435146443515, 34.89539748953975, 35.146443514644346, 35.39748953974895, 35.64853556485355, 35.89958158995816, 36.15062761506276, 36.40167364016736, 36.65271966527197, 36.90376569037657, 37.15481171548117, 37.40585774058577, 37.65690376569037, 37.90794979079498, 38.15899581589958, 38.41004184100419, 38.66108786610879, 38.91213389121339, 39.16317991631799, 39.41422594142259, 39.66527196652719, 39.9163179916318, 40.1673640167364, 40.418410041841, 40.66945606694561, 40.92050209205021, 41.171548117154806, 41.42259414225941, 41.67364016736401, 41.92468619246861, 42.17573221757323, 42.42677824267783, 42.67782426778243, 42.92887029288703, 43.17991631799163, 43.43096234309623, 43.68200836820083, 43.93305439330544, 44.18410041841004, 44.43514644351464, 44.686192468619254, 44.937238493723854, 45.18828451882845, 45.43933054393305, 45.69037656903766, 45.94142259414226, 46.19246861924686, 46.44351464435147, 46.69456066945607, 46.94560669456067, 47.19665271966527, 47.44769874476987, 47.69874476987447, 47.94979079497907, 48.20083682008368, 48.45188284518828, 48.70292887029288, 48.953974895397494, 49.20502092050209, 49.45606694560669, 49.7071129707113, 49.9581589958159, 50.2092050209205, 50.4602510460251, 50.71129707112971, 50.96234309623431, 51.213389121338906, 51.46443514644352, 51.71548117154812, 51.96652719665272, 52.21757322175733, 52.46861924686193, 52.71966527196653, 52.97071129707113, 53.22175732217573, 53.47280334728033, 53.72384937238493, 53.97489539748954, 54.22594142259414, 54.47698744769874, 54.72803347280335, 54.97907949790795, 55.230125523012546, 55.481171548117146, 55.73221757322176, 55.98326359832636, 56.23430962343096, 56.48535564853557, 56.73640167364017, 56.98744769874477, 57.23849372384937, 57.48953974895397, 57.74058577405857, 57.99163179916317, 58.24267782426779, 58.49372384937239, 58.74476987447699, 58.995815899581594, 59.24686192468619, 59.49790794979079, 59.7489539748954, 60.0, 60.0, 60.2510460251046, 60.50209205020921, 60.75313807531381, 61.004184100418406, 61.25523012552301, 61.50627615062761, 61.75732217573221, 62.00836820083681, 62.25941422594143, 62.51046025104603, 62.76150627615063, 63.01255230125523, 63.26359832635983, 63.51464435146443, 63.76569037656903, 64.01673640167364, 64.26778242677824, 64.51882845188284, 64.76987447698745, 65.02092050209205, 65.27196652719665, 65.52301255230125, 65.77405857740585, 66.02510460251045, 66.27615062761507, 66.52719665271967, 66.77824267782427, 67.02928870292887, 67.28033472803348, 67.53138075313808, 67.78242677824268, 68.03347280334728, 68.28451882845188, 68.53556485355648, 68.78661087866108, 69.0376569037657, 69.2887029288703, 69.5397489539749, 69.7907949790795, 70.0418410041841, 70.29288702928869, 70.5439330543933, 70.7949790794979, 71.0460251046025, 71.29707112970712, 71.54811715481172, 71.79916317991632, 72.05020920502092, 72.30125523012552, 72.55230125523012, 72.80334728033472, 73.05439330543933, 73.30543933054393, 73.55648535564853, 73.80753138075313, 74.05857740585775, 74.30962343096235, 74.56066945606695, 74.81171548117155, 75.06276150627615, 75.31380753138075, 75.56485355648536, 75.81589958158996, 76.06694560669456, 76.31799163179917, 76.56903765690376, 76.82008368200837, 77.07112970711296, 77.32217573221757, 77.57322175732217, 77.82426778242677, 78.07531380753139, 78.32635983263599, 78.57740585774059, 78.82845188284519, 79.07949790794979, 79.33054393305439, 79.581589958159, 79.8326359832636, 80.0836820083682, 80.3347280334728, 80.5857740585774, 80.836820083682, 81.08786610878661, 81.33891213389121, 81.58995815899581, 81.84100418410041, 82.09205020920501, 82.34309623430963, 82.59414225941424, 82.84518828451883, 83.09623430962344, 83.34728033472803, 83.59832635983264, 83.84937238493723, 84.10041841004184, 84.35146443514643, 84.60251046025105, 84.85355648535565, 85.10460251046025, 85.35564853556485, 85.60669456066945, 85.85774058577407, 86.10878661087867, 86.35983263598327, 86.61087866108787, 86.86192468619247, 87.11297071129707, 87.36401673640167, 87.61506276150627, 87.86610878661088, 88.11715481171548, 88.36820083682008, 88.61924686192468, 88.87029288702928, 89.1213389121339, 89.37238493723851, 89.6234309623431, 89.87447698744771, 90.12552301255229, 90.3765690376569, 90.62761506276149, 90.8786610878661, 91.12970711297072, 91.38075313807532, 91.63179916317992, 91.88284518828452, 92.13389121338912, 92.38493723849373, 92.63598326359833, 92.88702928870293, 93.13807531380753, 93.38912133891213, 93.64016736401673, 93.89121338912133, 94.14225941422593, 94.39330543933053, 94.64435146443515, 94.89539748953975, 95.14644351464435, 95.39748953974895, 95.64853556485355, 95.89958158995816, 96.15062761506277, 96.40167364016736, 96.65271966527197, 96.90376569037656, 97.15481171548117, 97.40585774058576, 97.65690376569037, 97.90794979079499, 98.15899581589959, 98.41004184100419, 98.66108786610879, 98.91213389121339, 99.163179916318, 99.4142259414226, 99.6652719665272, 99.9163179916318, 100.1673640167364, 100.418410041841, 100.6694560669456, 100.9205020920502, 101.1715481171548, 101.42259414225941, 101.67364016736401, 101.92468619246861, 102.17573221757323, 102.42677824267784, 102.67782426778243, 102.92887029288704, 103.17991631799163, 103.43096234309624, 103.68200836820083, 103.93305439330544, 104.18410041841003, 104.43514644351464, 104.68619246861925, 104.93723849372385, 105.18828451882845, 105.43933054393305, 105.69037656903767, 105.94142259414227, 106.19246861924687, 106.44351464435147, 106.69456066945607, 106.94560669456067, 107.19665271966527, 107.44769874476987, 107.69874476987447, 107.94979079497907, 108.20083682008368, 108.45188284518828, 108.70292887029288, 108.9539748953975, 109.20502092050211, 109.4560669456067, 109.70711297071131, 109.9581589958159, 110.2092050209205, 110.46025104602509, 110.7112970711297, 110.96234309623429, 111.2133891213389, 111.46443514644352, 111.71548117154812, 111.96652719665272, 112.21757322175733, 112.46861924686193, 112.71966527196653, 112.97071129707113, 113.22175732217573, 113.47280334728033, 113.72384937238493, 113.97489539748953, 114.22594142259413, 114.47698744769873, 114.72803347280335, 114.97907949790795, 115.23012552301255, 115.48117154811715, 115.73221757322176, 115.98326359832637, 116.23430962343096, 116.48535564853557, 116.73640167364016, 116.98744769874477, 117.23849372384936, 117.48953974895397, 117.74058577405856, 117.99163179916317, 118.24267782426779, 118.49372384937239, 118.74476987447699, 118.9958158995816, 119.2468619246862, 119.4979079497908, 119.7489539748954, 120.0, 120.0, 120.2510460251046, 120.5020920502092, 120.7531380753138, 121.00418410041841, 121.25523012552301, 121.50627615062761, 121.75732217573221, 122.00836820083681, 122.25941422594141, 122.51046025104603, 122.76150627615064, 123.01255230125523, 123.26359832635984, 123.51464435146443, 123.76569037656904, 124.01673640167363, 124.26778242677825, 124.51882845188285, 124.76987447698745, 125.02092050209205, 125.27196652719665, 125.52301255230125, 125.77405857740585, 126.02510460251047, 126.27615062761507, 126.52719665271967, 126.77824267782427, 127.02928870292887, 127.28033472803347, 127.53138075313807, 127.78242677824268, 128.03347280334728, 128.2845188284519, 128.53556485355648, 128.7866108786611, 129.03765690376568, 129.2887029288703, 129.5397489539749, 129.7907949790795, 130.0418410041841, 130.2928870292887, 130.5439330543933, 130.7949790794979, 131.0460251046025, 131.29707112970712, 131.5481171548117, 131.79916317991632, 132.0502092050209, 132.30125523012552, 132.55230125523013, 132.80334728033472, 133.05439330543933, 133.30543933054395, 133.55648535564853, 133.80753138075312, 134.05857740585773, 134.30962343096235, 134.56066945606696, 134.81171548117155, 135.06276150627616, 135.31380753138075, 135.56485355648536, 135.81589958158997, 136.06694560669456, 136.31799163179917, 136.56903765690376, 136.82008368200837, 137.07112970711296, 137.32217573221757, 137.57322175732216, 137.82426778242677, 138.0753138075314, 138.32635983263597, 138.5774058577406, 138.82845188284517, 139.0794979079498, 139.3305439330544, 139.581589958159, 139.8326359832636, 140.0836820083682, 140.3347280334728, 140.58577405857739, 140.836820083682, 141.0878661087866, 141.33891213389123, 141.5899581589958, 141.84100418410043, 142.092050209205, 142.34309623430963, 142.59414225941424, 142.84518828451883, 143.09623430962344, 143.34728033472803, 143.59832635983264, 143.84937238493723, 144.10041841004184, 144.35146443514643, 144.60251046025104, 144.85355648535565, 145.10460251046024, 145.35564853556485, 145.60669456066944, 145.85774058577408, 146.10878661087867, 146.35983263598325, 146.61087866108787, 146.86192468619248, 147.11297071129707, 147.36401673640165, 147.61506276150627, 147.86610878661088, 148.1171548117155, 148.36820083682008, 148.6192468619247, 148.87029288702928, 149.1213389121339, 149.3723849372385, 149.6234309623431, 149.8744769874477, 150.1255230125523, 150.3765690376569, 150.6276150627615, 150.8786610878661, 151.12970711297072, 151.3807531380753, 151.63179916317992, 151.8828451882845, 152.13389121338912, 152.38493723849373, 152.63598326359835, 152.88702928870293, 153.13807531380752, 153.38912133891213, 153.64016736401675, 153.89121338912133, 154.14225941422592, 154.39330543933053, 154.64435146443515, 154.89539748953976, 155.14644351464435, 155.39748953974896, 155.64853556485355, 155.89958158995816, 156.15062761506277, 156.40167364016736, 156.65271966527197, 156.90376569037656, 157.15481171548117, 157.40585774058576, 157.65690376569037, 157.907949790795, 158.15899581589957, 158.4100418410042, 158.66108786610877, 158.9121338912134, 159.163179916318, 159.41422594142261, 159.6652719665272, 159.9163179916318, 160.1673640167364, 160.418410041841, 160.6694560669456, 160.92050209205019, 161.1715481171548, 161.4225941422594, 161.673640167364, 161.92468619246858, 162.17573221757323, 162.42677824267784, 162.67782426778243, 162.92887029288704, 163.17991631799163, 163.43096234309624, 163.68200836820083, 163.93305439330544, 164.18410041841003, 164.43514644351464, 164.68619246861925, 164.93723849372387, 165.18828451882848, 165.43933054393307, 165.69037656903765, 165.94142259414227, 166.19246861924688, 166.44351464435147, 166.69456066945605, 166.94560669456067, 167.19665271966528, 167.44769874476987, 167.69874476987445, 167.94979079497907, 168.20083682008368, 168.45188284518827, 168.70292887029285, 168.9539748953975, 169.2050209205021, 169.4560669456067, 169.7071129707113, 169.9581589958159, 170.2092050209205, 170.4602510460251, 170.7112970711297, 170.9623430962343, 171.2133891213389, 171.46443514644352, 171.71548117154813, 171.96652719665275, 172.21757322175733, 172.46861924686192, 172.71966527196653, 172.97071129707115, 173.22175732217573, 173.47280334728032, 173.72384937238493, 173.97489539748955, 174.22594142259413, 174.47698744769872, 174.72803347280333, 174.97907949790795, 175.23012552301253, 175.48117154811712, 175.73221757322176, 175.98326359832637, 176.23430962343096, 176.48535564853557, 176.73640167364016, 176.98744769874477, 177.23849372384936, 177.48953974895397, 177.74058577405856, 177.99163179916317, 178.2426778242678, 178.4937238493724, 178.74476987447702, 178.9958158995816, 179.2468619246862, 179.4979079497908, 179.74895397489541, 180.0, 180.0, 180.25104602510459, 180.5020920502092, 180.7531380753138, 181.0041841004184, 181.25523012552298, 181.5062761506276, 181.75732217573224, 182.00836820083683, 182.25941422594144, 182.51046025104603, 182.76150627615064, 183.01255230125523, 183.26359832635984, 183.51464435146443, 183.76569037656904, 184.01673640167363, 184.26778242677824, 184.51882845188283, 184.76987447698744, 185.02092050209205, 185.27196652719667, 185.52301255230128, 185.77405857740587, 186.02510460251045, 186.27615062761507, 186.52719665271968, 186.77824267782427, 187.02928870292885, 187.28033472803347, 187.53138075313808, 187.78242677824267, 188.03347280334725, 188.28451882845187, 188.5355648535565, 188.7866108786611, 189.0376569037657, 189.2887029288703, 189.5397489539749, 189.7907949790795, 190.0418410041841, 190.2928870292887, 190.5439330543933, 190.7949790794979, 191.0460251046025, 191.2970711297071, 191.5481171548117, 191.79916317991632, 192.05020920502093, 192.30125523012555, 192.55230125523013, 192.80334728033472, 193.05439330543933, 193.30543933054395, 193.55648535564853, 193.80753138075312, 194.05857740585773, 194.30962343096235, 194.56066945606693, 194.81171548117152, 195.06276150627613, 195.31380753138077, 195.56485355648536, 195.81589958158997, 196.06694560669456, 196.31799163179917, 196.56903765690376, 196.82008368200837, 197.07112970711296, 197.32217573221757, 197.57322175732216, 197.82426778242677, 198.07531380753136, 198.326359832636, 198.5774058577406, 198.8284518828452, 199.07949790794981, 199.3305439330544, 199.581589958159, 199.8326359832636, 200.0836820083682, 200.3347280334728, 200.58577405857739, 200.836820083682, 201.0878661087866, 201.3389121338912, 201.58995815899578, 201.8410041841004, 202.09205020920504, 202.34309623430963, 202.59414225941424, 202.84518828451883, 203.09623430962344, 203.34728033472803, 203.59832635983264, 203.84937238493723, 204.10041841004184, 204.35146443514643, 204.60251046025104, 204.85355648535568, 205.10460251046027, 205.35564853556485, 205.60669456066947, 205.85774058577408, 206.10878661087867, 206.35983263598325, 206.61087866108787, 206.86192468619248, 207.11297071129707, 207.36401673640165, 207.61506276150627, 207.86610878661088, 208.11715481171547, 208.36820083682005, 208.6192468619247, 208.8702928870293, 209.1213389121339, 209.3723849372385, 209.6234309623431, 209.8744769874477, 210.1255230125523, 210.3765690376569, 210.6276150627615, 210.8786610878661, 211.1297071129707, 211.3807531380753, 211.63179916317995, 211.88284518828453, 212.13389121338912, 212.38493723849373, 212.63598326359835, 212.88702928870293, 213.13807531380752, 213.38912133891213, 213.64016736401675, 213.89121338912133, 214.14225941422592, 214.39330543933053, 214.64435146443515, 214.89539748953973, 215.14644351464432, 215.39748953974896, 215.64853556485357, 215.89958158995816, 216.15062761506277, 216.40167364016736, 216.65271966527197, 216.90376569037656, 217.15481171548117, 217.40585774058576, 217.65690376569037, 217.90794979079496, 218.15899581589957, 218.41004184100422, 218.6610878661088, 218.9121338912134, 219.163179916318, 219.41422594142261, 219.6652719665272, 219.9163179916318, 220.1673640167364, 220.418410041841, 220.6694560669456, 220.92050209205019, 221.1715481171548, 221.4225941422594, 221.673640167364, 221.92468619246858, 222.17573221757323, 222.42677824267784, 222.67782426778243, 222.92887029288704, 223.17991631799163, 223.43096234309624, 223.68200836820083, 223.93305439330544, 224.18410041841003, 224.43514644351464, 224.68619246861925, 224.93723849372387, 225.18828451882848, 225.43933054393307, 225.69037656903765, 225.94142259414227, 226.19246861924688, 226.44351464435147, 226.69456066945605, 226.94560669456067, 227.19665271966528, 227.44769874476987, 227.69874476987445, 227.94979079497907, 228.20083682008368, 228.45188284518827, 228.70292887029285, 228.9539748953975, 229.2050209205021, 229.4560669456067, 229.7071129707113, 229.9581589958159, 230.2092050209205, 230.4602510460251, 230.7112970711297, 230.9623430962343, 231.2133891213389, 231.46443514644352, 231.71548117154813, 231.96652719665275, 232.21757322175733, 232.46861924686192, 232.71966527196653, 232.97071129707115, 233.22175732217573, 233.47280334728032, 233.72384937238493, 233.97489539748955, 234.22594142259413, 234.47698744769872, 234.72803347280333, 234.97907949790795, 235.23012552301253, 235.48117154811712, 235.73221757322176, 235.98326359832637, 236.23430962343096, 236.48535564853557, 236.73640167364016, 236.98744769874477, 237.23849372384936, 237.48953974895397, 237.74058577405856, 237.99163179916317, 238.2426778242678, 238.4937238493724, 238.74476987447702, 238.9958158995816, 239.2468619246862, 239.4979079497908, 239.74895397489541, 240.0], "borderColor": "#FFD700", "backgroundColor": "#FFD700", "tension": 0.1}]}, "data_2": {"labels": [0.0, 0.100418410041841, 0.200836820083682, 0.301255230125523, 0.401673640167364, 0.502092050209205, 0.602510460251046, 0.702928870292887, 0.803347280334728, 0.9037656903765691, 1.00418410041841, 1.104602510460251, 1.205020920502092, 1.3054393305439331, 1.405857740585774, 1.506276150627615, 1.606694560669456, 1.707112970711297, 1.8075313807531381, 1.907949790794979, 2.00836820083682, 2.1087866108786613, 2.209205020920502, 2.309623430962343, 2.410041841004184, 2.510460251046025, 2.6108786610878663, 2.711297071129707, 2.811715481171548, 2.912133891213389, 3.01255230125523, 3.1129707112970713, 3.213389121338912, 3.313807531380753, 3.414225941422594, 3.514644351464435, 3.6150627615062763, 3.715481171548117, 3.815899581589958, 3.916317991631799, 4.01673640167364, 4.117154811715481, 4.2175732217573225, 4.317991631799163, 4.418410041841004, 4.518828451882845, 4.619246861924686, 4.7196652719665275, 4.820083682008368, 4.920502092050209, 5.02092050209205, 5.121338912133891, 5.2217573221757325, 5.322175732217573, 5.422594142259414, 5.523012552301255, 5.623430962343096, 5.7238493723849375, 5.824267782426778, 5.924686192468619, 6.02510460251046, 6.125523012552301, 6.2259414225941425, 6.326359832635983, 6.426778242677824, 6.527196652719665, 6.627615062761506, 6.7280334728033475, 6.828451882845188, 6.928870292887029, 7.02928870292887, 7.129707112970711, 7.2301255230125525, 7.330543933054393, 7.430962343096234, 7.531380753138075, 7.631799163179916, 7.7322175732217575, 7.832635983263598, 7.933054393305439, 8.03347280334728, 8.133891213389122, 8.234309623430962, 8.334728033472803, 8.435146443514645, 8.535564853556485, 8.635983263598327, 8.736401673640167, 8.836820083682008, 8.93723849372385, 9.03765690376569, 9.138075313807532, 9.238493723849372, 9.338912133891213, 9.439330543933055, 9.539748953974895, 9.640167364016737, 9.740585774058577, 9.841004184100418, 9.94142259414226, 10.0418410041841, 10.142259414225942, 10.242677824267782, 10.343096234309623, 10.443514644351465, 10.543933054393305, 10.644351464435147, 10.744769874476987, 10.845188284518828, 10.94560669456067, 11.04602510460251, 11.146443514644352, 11.246861924686192, 11.347280334728033, 11.447698744769875, 11.548117154811715, 11.648535564853557, 11.748953974895397, 11.849372384937238, 11.94979079497908, 12.05020920502092, 12.150627615062762, 12.251046025104602, 12.351464435146443, 12.451882845188285, 12.552301255230125, 12.652719665271967, 12.753138075313807, 12.853556485355648, 12.95397489539749, 13.05439330543933, 13.154811715481172, 13.255230125523012, 13.355648535564853, 13.456066945606695, 13.556485355648535, 13.656903765690377, 13.757322175732217, 13.857740585774058, 13.9581589958159, 14.05857740585774, 14.158995815899582, 14.259414225941422, 14.359832635983263, 14.460251046025105, 14.560669456066945, 14.661087866108787, 14.761506276150627, 14.861924686192468, 14.96234309623431, 15.06276150627615, 15.163179916317992, 15.263598326359832, 15.364016736401673, 15.464435146443515, 15.564853556485355, 15.665271966527197, 15.765690376569037, 15.866108786610878, 15.96652719665272, 16.06694560669456, 16.1673640167364, 16.267782426778243, 16.368200836820083, 16.468619246861923, 16.569037656903767, 16.669456066945607, 16.769874476987447, 16.87029288702929, 16.97071129707113, 17.07112970711297, 17.17154811715481, 17.271966527196653, 17.372384937238493, 17.472803347280333, 17.573221757322177, 17.673640167364017, 17.774058577405857, 17.8744769874477, 17.97489539748954, 18.07531380753138, 18.17573221757322, 18.276150627615063, 18.376569037656903, 18.476987447698743, 18.577405857740587, 18.677824267782427, 18.778242677824267, 18.87866108786611, 18.97907949790795, 19.07949790794979, 19.17991631799163, 19.280334728033473, 19.380753138075313, 19.481171548117153, 19.581589958158997, 19.682008368200837, 19.782426778242677, 19.88284518828452, 19.98326359832636, 20.0836820083682, 20.18410041841004, 20.284518828451883, 20.384937238493723, 20.485355648535563, 20.585774058577407, 20.686192468619247, 20.786610878661087, 20.88702928870293, 20.98744769874477, 21.08786610878661, 21.18828451882845, 21.288702928870293, 21.389121338912133, 21.489539748953973, 21.589958158995817, 21.690376569037657, 21.790794979079497, 21.89121338912134, 21.99163179916318, 22.09205020920502, 22.19246861924686, 22.292887029288703, 22.393305439330543, 22.493723849372383, 22.594142259414227, 22.694560669456067, 22.794979079497907, 22.89539748953975, 22.99581589958159, 23.09623430962343, 23.19665271966527, 23.297071129707113, 23.397489539748953, 23.497907949790793, 23.598326359832637, 23.698744769874477, 23.799163179916317, 23.89958158995816, 24.0, 24.0, 24.10041841004184, 24.200836820083683, 24.301255230125523, 24.401673640167363, 24.502092050209207, 24.602510460251047, 24.702928870292887, 24.803347280334727, 24.90376569037657, 25.00418410041841, 25.10460251046025, 25.205020920502093, 25.305439330543933, 25.405857740585773, 25.506276150627613, 25.606694560669457, 25.707112970711297, 25.807531380753137, 25.90794979079498, 26.00836820083682, 26.10878661087866, 26.209205020920503, 26.309623430962343, 26.410041841004183, 26.510460251046027, 26.610878661087867, 26.711297071129707, 26.811715481171547, 26.91213389121339, 27.01255230125523, 27.11297071129707, 27.213389121338913, 27.313807531380753, 27.414225941422593, 27.514644351464433, 27.615062761506277, 27.715481171548117, 27.815899581589957, 27.9163179916318, 28.01673640167364, 28.11715481171548, 28.217573221757323, 28.317991631799163, 28.418410041841003, 28.518828451882847, 28.619246861924687, 28.719665271966527, 28.820083682008367, 28.92050209205021, 29.02092050209205, 29.12133891213389, 29.221757322175733, 29.322175732217573, 29.422594142259413, 29.523012552301253, 29.623430962343097, 29.723849372384937, 29.82426778242678, 29.92468619246862, 30.02510460251046, 30.1255230125523, 30.225941422594143, 30.326359832635983, 30.426778242677823, 30.527196652719667, 30.627615062761507, 30.728033472803347, 30.828451882845187, 30.92887029288703, 31.02928870292887, 31.12970711297071, 31.230125523012553, 31.330543933054393, 31.430962343096233, 31.531380753138073, 31.631799163179917, 31.732217573221757, 31.8326359832636, 31.93305439330544, 32.03347280334728, 32.13389121338912, 32.23430962343096, 32.3347280334728, 32.43514644351465, 32.53556485355649, 32.63598326359833, 32.73640167364017, 32.83682008368201, 32.937238493723854, 33.03765690376569, 33.13807531380753, 33.23849372384937, 33.33891213389121, 33.43933054393305, 33.53974895397489, 33.64016736401673, 33.74058577405857, 33.84100418410042, 33.94142259414226, 34.0418410041841, 34.14225941422594, 34.24267782426778, 34.34309623430963, 34.44351464435147, 34.54393305439331, 34.64435146443515, 34.74476987447699, 34.84518828451883, 34.94560669456067, 35.046025104602506, 35.14644351464435, 35.24686192468619, 35.34728033472803, 35.44769874476987, 35.54811715481171, 35.64853556485356, 35.7489539748954, 35.84937238493724, 35.94979079497908, 36.05020920502092, 36.15062761506276, 36.2510460251046, 36.35146443514644, 36.45188284518829, 36.55230125523013, 36.65271966527197, 36.75313807531381, 36.85355648535565, 36.953974895397494, 37.05439330543933, 37.15481171548117, 37.25523012552301, 37.35564853556485, 37.45606694560669, 37.55648535564853, 37.65690376569037, 37.75732217573221, 37.85774058577406, 37.9581589958159, 38.05857740585774, 38.15899581589958, 38.25941422594142, 38.35983263598327, 38.46025104602511, 38.56066945606695, 38.66108786610879, 38.76150627615063, 38.86192468619247, 38.96234309623431, 39.062761506276146, 39.16317991631799, 39.26359832635983, 39.36401673640167, 39.46443514644351, 39.56485355648535, 39.6652719665272, 39.76569037656904, 39.86610878661088, 39.96652719665272, 40.06694560669456, 40.1673640167364, 40.26778242677824, 40.36820083682008, 40.46861924686192, 40.56903765690377, 40.66945606694561, 40.76987447698745, 40.870292887029294, 40.970711297071134, 41.07112970711297, 41.17154811715481, 41.27196652719665, 41.37238493723849, 41.47280334728033, 41.57322175732217, 41.67364016736401, 41.77405857740585, 41.8744769874477, 41.97489539748954, 42.07531380753138, 42.17573221757322, 42.27615062761507, 42.37656903765691, 42.47698744769875, 42.57740585774059, 42.67782426778243, 42.77824267782427, 42.87866108786611, 42.97907949790795, 43.079497907949786, 43.179916317991626, 43.28033472803347, 43.38075313807531, 43.48117154811715, 43.581589958159, 43.68200836820084, 43.78242677824268, 43.88284518828452, 43.98326359832636, 44.0836820083682, 44.18410041841004, 44.28451882845188, 44.38493723849372, 44.48535564853556, 44.58577405857741, 44.68619246861925, 44.78661087866109, 44.887029288702934, 44.987447698744774, 45.08786610878661, 45.18828451882845, 45.28870292887029, 45.38912133891213, 45.48953974895397, 45.58995815899581, 45.69037656903765, 45.79079497907949, 45.89121338912134, 45.99163179916318, 46.09205020920502, 46.19246861924686, 46.29288702928871, 46.39330543933055, 46.49372384937239, 46.59414225941423, 46.69456066945607, 46.79497907949791, 46.89539748953975, 46.99581589958159, 47.096234309623426, 47.196652719665266, 47.29707112970711, 47.39748953974895, 47.49790794979079, 47.59832635983264, 47.69874476987448, 47.79916317991632, 47.89958158995816, 48.0, 48.0, 48.10041841004184, 48.20083682008368, 48.30125523012552, 48.40167364016737, 48.50209205020921, 48.60251046025105, 48.70292887029289, 48.80334728033473, 48.90376569037657, 49.00418410041841, 49.10460251046025, 49.20502092050209, 49.30543933054393, 49.40585774058577, 49.50627615062761, 49.60669456066945, 49.7071129707113, 49.80753138075314, 49.90794979079498, 50.00836820083682, 50.10878661087866, 50.2092050209205, 50.30962343096234, 50.41004184100419, 50.51046025104603, 50.61087866108787, 50.71129707112971, 50.81171548117155, 50.91213389121339, 51.012552301255226, 51.11297071129707, 51.21338912133891, 51.31380753138075, 51.41422594142259, 51.51464435146443, 51.61506276150627, 51.71548117154812, 51.81589958158996, 51.9163179916318, 52.01673640167364, 52.11715481171548, 52.21757322175732, 52.31799163179916, 52.41841004184101, 52.51882845188285, 52.61924686192469, 52.71966527196653, 52.82008368200837, 52.92050209205021, 53.02092050209205, 53.12133891213389, 53.22175732217573, 53.32217573221757, 53.42259414225941, 53.52301255230125, 53.62343096234309, 53.72384937238494, 53.82426778242678, 53.92468619246862, 54.02510460251046, 54.1255230125523, 54.22594142259414, 54.32635983263599, 54.42677824267783, 54.52719665271967, 54.62761506276151, 54.72803347280335, 54.82845188284519, 54.92887029288703, 55.029288702928866, 55.12970711297071, 55.23012552301255, 55.33054393305439, 55.43096234309623, 55.53138075313807, 55.63179916317991, 55.73221757322176, 55.8326359832636, 55.93305439330544, 56.03347280334728, 56.13389121338912, 56.23430962343096, 56.3347280334728, 56.43514644351465, 56.53556485355649, 56.63598326359833, 56.73640167364017, 56.83682008368201, 56.937238493723854, 57.03765690376569, 57.13807531380753, 57.23849372384937, 57.33891213389121, 57.43933054393305, 57.53974895397489, 57.64016736401673, 57.74058577405857, 57.84100418410042, 57.94142259414226, 58.0418410041841, 58.14225941422594, 58.24267782426778, 58.34309623430963, 58.44351464435147, 58.54393305439331, 58.64435146443515, 58.74476987447699, 58.84518828451883, 58.94560669456067, 59.046025104602506, 59.14644351464435, 59.24686192468619, 59.34728033472803, 59.44769874476987, 59.54811715481171, 59.64853556485356, 59.7489539748954, 59.84937238493724, 59.94979079497908, 60.05020920502092, 60.15062761506276, 60.2510460251046, 60.35146443514644, 60.45188284518829, 60.55230125523013, 60.65271966527197, 60.75313807531381, 60.85355648535565, 60.953974895397494, 61.05439330543933, 61.15481171548117, 61.25523012552301, 61.35564853556485, 61.45606694560669, 61.55648535564853, 61.65690376569037, 61.75732217573221, 61.85774058577406, 61.9581589958159, 62.05857740585774, 62.15899581589958, 62.25941422594142, 62.35983263598327, 62.46025104602511, 62.56066945606695, 62.66108786610879, 62.76150627615063, 62.86192468619247, 62.96234309623431, 63.062761506276146, 63.16317991631799, 63.26359832635983, 63.36401673640167, 63.46443514644351, 63.56485355648535, 63.6652719665272, 63.76569037656904, 63.86610878661088, 63.96652719665272, 64.06694560669456, 64.1673640167364, 64.26778242677824, 64.36820083682008, 64.46861924686192, 64.56903765690376, 64.6694560669456, 64.76987447698744, 64.8702928870293, 64.97071129707113, 65.07112970711297, 65.17154811715481, 65.27196652719665, 65.3723849372385, 65.47280334728033, 65.57322175732217, 65.67364016736401, 65.77405857740585, 65.87447698744771, 65.97489539748955, 66.07531380753139, 66.17573221757323, 66.27615062761507, 66.3765690376569, 66.47698744769875, 66.57740585774059, 66.67782426778243, 66.77824267782427, 66.8786610878661, 66.97907949790795, 67.07949790794979, 67.17991631799163, 67.28033472803347, 67.3807531380753, 67.48117154811715, 67.581589958159, 67.68200836820084, 67.78242677824268, 67.88284518828452, 67.98326359832636, 68.0836820083682, 68.18410041841004, 68.28451882845188, 68.38493723849372, 68.48535564853556, 68.58577405857741, 68.68619246861925, 68.7866108786611, 68.88702928870293, 68.98744769874477, 69.08786610878661, 69.18828451882845, 69.2887029288703, 69.38912133891213, 69.48953974895397, 69.58995815899581, 69.69037656903765, 69.7907949790795, 69.89121338912133, 69.99163179916317, 70.09205020920501, 70.19246861924685, 70.2928870292887, 70.39330543933055, 70.49372384937239, 70.59414225941423, 70.69456066945607, 70.7949790794979, 70.89539748953975, 70.99581589958159, 71.09623430962343, 71.19665271966527, 71.29707112970712, 71.39748953974896, 71.4979079497908, 71.59832635983264, 71.69874476987448, 71.79916317991632, 71.89958158995816, 72.0, 72.0, 72.10041841004184, 72.20083682008368, 72.30125523012552, 72.40167364016736, 72.5020920502092, 72.60251046025104, 72.7029288702929, 72.80334728033473, 72.90376569037657, 73.00418410041841, 73.10460251046025, 73.2050209205021, 73.30543933054393, 73.40585774058577, 73.50627615062761, 73.60669456066945, 73.7071129707113, 73.80753138075313, 73.90794979079497, 74.00836820083683, 74.10878661087867, 74.2092050209205, 74.30962343096235, 74.41004184100419, 74.51046025104603, 74.61087866108787, 74.7112970711297, 74.81171548117155, 74.91213389121339, 75.01255230125523, 75.11297071129707, 75.2133891213389, 75.31380753138075, 75.4142259414226, 75.51464435146444, 75.61506276150628, 75.71548117154812, 75.81589958158996, 75.9163179916318, 76.01673640167364, 76.11715481171548, 76.21757322175732, 76.31799163179916, 76.418410041841, 76.51882845188284, 76.61924686192468, 76.71966527196653, 76.82008368200837, 76.92050209205021, 77.02092050209205, 77.1213389121339, 77.22175732217573, 77.32217573221757, 77.42259414225941, 77.52301255230125, 77.6234309623431, 77.72384937238493, 77.82426778242677, 77.92468619246861, 78.02510460251045, 78.1255230125523, 78.22594142259415, 78.32635983263599, 78.42677824267783, 78.52719665271967, 78.6276150627615, 78.72803347280335, 78.82845188284519, 78.92887029288703, 79.02928870292887, 79.1297071129707, 79.23012552301255, 79.3305439330544, 79.43096234309624, 79.53138075313808, 79.63179916317992, 79.73221757322176, 79.8326359832636, 79.93305439330544, 80.03347280334728, 80.13389121338912, 80.23430962343096, 80.3347280334728, 80.43514644351464, 80.53556485355648, 80.63598326359832, 80.73640167364016, 80.83682008368201, 80.93723849372385, 81.0376569037657, 81.13807531380753, 81.23849372384937, 81.33891213389121, 81.43933054393305, 81.5397489539749, 81.64016736401673, 81.74058577405857, 81.84100418410041, 81.94142259414227, 82.0418410041841, 82.14225941422595, 82.24267782426779, 82.34309623430963, 82.44351464435147, 82.5439330543933, 82.64435146443515, 82.74476987447699, 82.84518828451883, 82.94560669456067, 83.0460251046025, 83.14644351464435, 83.24686192468619, 83.34728033472803, 83.44769874476988, 83.54811715481172, 83.64853556485356, 83.7489539748954, 83.84937238493724, 83.94979079497908, 84.05020920502092, 84.15062761506276, 84.2510460251046, 84.35146443514644, 84.45188284518828, 84.55230125523012, 84.65271966527197, 84.75313807531381, 84.85355648535565, 84.9539748953975, 85.05439330543933, 85.15481171548117, 85.25523012552301, 85.35564853556485, 85.4560669456067, 85.55648535564853, 85.65690376569037, 85.75732217573221, 85.85774058577405, 85.9581589958159, 86.05857740585773, 86.15899581589959, 86.25941422594143, 86.35983263598327, 86.4602510460251, 86.56066945606695, 86.66108786610879, 86.76150627615063, 86.86192468619247, 86.9623430962343, 87.06276150627615, 87.16317991631799, 87.26359832635983, 87.36401673640168, 87.46443514644352, 87.56485355648536, 87.6652719665272, 87.76569037656904, 87.86610878661088, 87.96652719665272, 88.06694560669456, 88.1673640167364, 88.26778242677824, 88.36820083682008, 88.46861924686192, 88.56903765690376, 88.6694560669456, 88.76987447698744, 88.8702928870293, 88.97071129707113, 89.07112970711297, 89.17154811715481, 89.27196652719665, 89.3723849372385, 89.47280334728033, 89.57322175732217, 89.67364016736401, 89.77405857740585, 89.87447698744771, 89.97489539748955, 90.07531380753139, 90.17573221757323, 90.27615062761507, 90.3765690376569, 90.47698744769875, 90.57740585774059, 90.67782426778243, 90.77824267782427, 90.8786610878661, 90.97907949790795, 91.07949790794979, 91.17991631799163, 91.28033472803347, 91.3807531380753, 91.48117154811715, 91.581589958159, 91.68200836820084, 91.78242677824268, 91.88284518828452, 91.98326359832636, 92.0836820083682, 92.18410041841004, 92.28451882845188, 92.38493723849372, 92.48535564853556, 92.58577405857741, 92.68619246861925, 92.7866108786611, 92.88702928870293, 92.98744769874477, 93.08786610878661, 93.18828451882845, 93.2887029288703, 93.38912133891213, 93.48953974895397, 93.58995815899581, 93.69037656903765, 93.7907949790795, 93.89121338912133, 93.99163179916317, 94.09205020920501, 94.19246861924685, 94.2928870292887, 94.39330543933055, 94.49372384937239, 94.59414225941423, 94.69456066945607, 94.7949790794979, 94.89539748953975, 94.99581589958159, 95.09623430962343, 95.19665271966527, 95.29707112970712, 95.39748953974896, 95.4979079497908, 95.59832635983264, 95.69874476987448, 95.79916317991632, 95.89958158995816, 96.0], "datasets": [{"label": "c\u209b\u2082", "data": [5.0, 4.999869921449477, 4.999649241578121, 4.999393646327298, 4.999114236658552, 4.998814797862398, 4.998496803306517, 4.998160751750457, 4.997806648213853, 4.99743421453962, 4.997042991019053, 4.996632387677208, 4.9962017175899245, 4.995750210979862, 4.995277027883644, 4.994781261760988, 4.99426194802645, 4.993718060551562, 4.993148514507242, 4.992552165829349, 4.991927810182383, 4.991274181415431, 4.990589948387123, 4.989873717057255, 4.98912402490897, 4.988339333767855, 4.987518037080453, 4.986658450130879, 4.98575880846606, 4.98481726436386, 4.983831883240242, 4.982800641486236, 4.981721412773453, 4.9805919801978815, 4.979410018765499, 4.978173095633763, 4.976878664849542, 4.975524061942087, 4.974106498594531, 4.9726230570063725, 4.971070680705663, 4.969446176643502, 4.967746205629513, 4.965967257128028, 4.9641056729067135, 4.962157621108418, 4.960119092514769, 4.9579858924442535, 4.95575363238718, 4.953417721184681, 4.95097335891142, 4.9484155049736644, 4.9457389085021095, 4.942938064632164, 4.94000721614888, 4.936940340969294, 4.933731139560754, 4.930373022543167, 4.926859091400905, 4.92318213982499, 4.919334640271352, 4.915308674506786, 4.9110959986558225, 4.906687981132485, 4.902075594841067, 4.897249399881355, 4.892199525410548, 4.886915650635848, 4.881386994153021, 4.875602237280026, 4.8695495982154275, 4.863216733661782, 4.856590744397667, 4.849658149030083, 4.842404857634804, 4.8348161463057595, 4.826876614775444, 4.81857019627009, 4.8098801287782464, 4.800788792913466, 4.791277881051497, 4.781328251680728, 4.77091992132596, 4.760032032884559, 4.748642823803207, 4.736729593780717, 4.724268678444185, 4.7112352940496445, 4.697603756034595, 4.683347232664709, 4.668437802001626, 4.652846417424398, 4.636542882948816, 4.619495823656852, 4.601672623580134, 4.5830395929450605, 4.563561774795858, 4.543202988971293, 4.521926088846941, 4.499692873585676, 4.476464280306635, 4.452200531844447, 4.426861322622703, 4.400406404364454, 4.372795887524182, 4.3439918240102235, 4.313958914831827, 4.282666771503307, 4.250093588449352, 4.216232291109932, 4.181101910398539, 4.14477044857593, 4.107406249036825, 4.069417436980583, 4.0319256561627865, 3.9988180563772624, 3.978603143437113, 3.9649714209934626, 3.9517392778448346, 3.938517083441352, 3.925294883526134, 3.9120724330742114, 3.898849767592028, 3.8856267991594695, 3.8724035161850776, 3.8591799369843107, 3.845956041858309, 3.8327319200910646, 3.819507493731592, 3.80628273568058, 3.7930576453993554, 3.7798322156400728, 3.766606457639885, 3.7533803787605793, 3.7401539925757663, 3.7269272342877175, 3.7137002222429523, 3.700472877850952, 3.687245182763079, 3.674017111885673, 3.66078869082155, 3.6475599178436315, 3.634330896088713, 3.621101566238863, 3.607871892289903, 3.5946418813990606, 3.5814115258747528, 3.568180845740595, 3.554949856037569, 3.5417185779853906, 3.5284869393246807, 3.5152550837362346, 3.502022916570528, 3.4887904157059926, 3.475557554194495, 3.4623243771001686, 3.4490908777326625, 3.4358571945568257, 3.422623225197747, 3.4093889404953783, 3.396154343034582, 3.382919441854056, 3.3696842622356926, 3.3564488213349892, 3.343213134225973, 3.3299771321915568, 3.316740974335759, 3.303504505198907, 3.2902676992185014, 3.277030595125594, 3.2637932506618466, 3.2505556313416286, 3.237317925529958, 3.2240798953933094, 3.2108415691813783, 3.1976029797604015, 3.184364155642074, 3.171125117740081, 3.1578858738666615, 3.1446464095410676, 3.13140673368855, 3.1181667996023545, 3.10492651840667, 3.091686024439401, 3.078445359537937, 3.06520453679085, 3.0519635215942715, 3.0387222586858913, 3.0254806235354903, 3.012238874171263, 2.9989969547393267, 2.985754872351393, 2.972512596442301, 2.9592700550479125, 2.946027238693295, 2.9327843144512435, 2.9195411177046595, 2.9062978438251017, 2.8930544273198167, 2.8798107209887824, 2.8665667345146026, 2.8533226016571214, 2.840078304841311, 2.8268339820730897, 2.8135894315407306, 2.8003444736446275, 2.787099377050025, 2.773854266218627, 2.7606091528630534, 2.747363854541468, 2.7341178654779714, 2.7208720583942627, 2.707626136660609, 2.694380100586701, 2.681133689700549, 2.6678870754014863, 2.65464049650654, 2.6413939310377312, 2.6281469284769567, 2.6148997899891264, 2.6016524053655288, 2.5884053424454305, 2.5751576635163604, 2.5619097709197924, 2.5486621787417447, 2.535414131765707, 2.52216572925355, 2.508917816291806, 2.49566992039762, 2.482420561841599, 2.469172389374265, 2.4559232571225373, 2.442674361353209, 2.429425298205598, 2.4161758406682567, 2.402927057654136, 2.3896766230435706, 2.3764285025003544, 2.363177505956454, 2.3499282892059976, 7.349928289205998, 7.3366751009038, 7.323423140576072, 7.310173227634661, 7.29692084254801, 7.283669053443313, 7.2704186479168005, 7.257166620567633, 7.243914132943726, 7.230662619170282, 7.217411661516928, 7.2041588933806135, 7.1909054783911746, 7.177652608408444, 7.1644001847192005, 7.1511480606840605, 7.1378953781381345, 7.1246424620355775, 7.111390714153668, 7.0981370036902005, 7.084883289195528, 7.071629509569159, 7.058376790056966, 7.045123101733093, 7.031869610252909, 7.018616223506497, 7.0053630990059785, 6.992108076756612, 6.9788530459626, 6.965599904427351, 6.9523462914883325, 6.939090653802718, 6.925836709166905, 6.912582867389073, 6.899326671266567, 6.886073595322917, 6.872817806145715, 6.8595633627621035, 6.846308301598531, 6.833053637052241, 6.819797947341619, 6.806543206734155, 6.7932861558821465, 6.780032058244149, 6.7667767999186275, 6.753520034976211, 6.740264356404912, 6.727010395646891, 6.713753307968104, 6.7004959156824855, 6.687240550627628, 6.673984036936495, 6.660728878349974, 6.6474725373494765, 6.634216460423478, 6.6209597402258815, 6.607703200433035, 6.5944464272074175, 6.581189835185568, 6.567932600012159, 6.554675634699458, 6.541417501926686, 6.5281607285027645, 6.514902837914599, 6.501646928247935, 6.488390724439672, 6.475131438686064, 6.461873897984889, 6.448617426509241, 6.435359393638576, 6.422100445664118, 6.408844173081495, 6.395585687900536, 6.382328420982259, 6.3690697877713935, 6.355812130434936, 6.3425531590466875, 6.329296145742833, 6.316036017157647, 6.3027789662300195, 6.289520350618903, 6.276260830265436, 6.263003498264427, 6.249745000431229, 6.236484966497862, 6.223226744938418, 6.209968909529448, 6.196710683797296, 6.18345098467533, 6.170191577465439, 6.156932009530389, 6.143672230251221, 6.1304135631002445, 6.117154435613579, 6.10389493156351, 6.090635037034002, 6.077376377685913, 6.06411718145084, 6.050857967603172, 6.0375990594756015, 6.024337653139851, 6.011077671797052, 5.997818359159901, 5.984559239512919, 5.971299095980007, 5.95803753770104, 5.9447790505866855, 5.931517903331402, 5.918258104169238, 5.904998377902451, 5.891737089751184, 5.878478463939565, 5.865215867436247, 5.851956512837835, 5.838695717870699, 5.825434803571951, 5.812175039089987, 5.798913556861514, 5.785653208423306, 5.772393013111793, 5.759131169422691, 5.745870201384048, 5.732610173148562, 5.719349768556454, 5.706088113817803, 5.692826243871516, 5.679564577016328, 5.666303121233833, 5.6530417720120125, 5.639780437137176, 5.626519403977096, 5.61325792006313, 5.599996831018385, 5.586735161062987, 5.573474451576399, 5.560213181086738, 5.546951118072302, 5.533688844233108, 5.520427047686752, 5.507165820428229, 5.493903729270394, 5.4806411992930055, 5.467379919643108, 5.4541179929229955, 5.440854784602784, 5.427594438699518, 5.414331373879612, 5.401069431443419, 5.387806775246776, 5.374545327124144, 5.361282039943082, 5.348020711848205, 5.334757484835835, 5.321495254888062, 5.308233252908366, 5.294970094082838, 5.281706933872846, 5.268446148465674, 5.2551828901497615, 5.241919672027494, 5.2286565146447606, 5.215393840278465, 5.202131204643933, 5.188869181233471, 5.175606062670332, 5.162342909803262, 5.1490801645126885, 5.135816678763472, 5.122553526621998, 5.109290887205202, 5.096027081239643, 5.082763581822917, 5.069500193811737, 5.056237778334321, 5.042974734305942, 5.029710968104036, 5.016446571812289, 5.003184538857597, 4.989921341909418, 4.976656847313134, 4.9633941019, 4.950130090118935, 4.936866522037959, 4.923602678782509, 4.910339096810813, 4.897075068040866, 4.883811554597137, 4.870547399519378, 4.857284612239468, 4.844019810277804, 4.830756100871049, 4.817492618940827, 4.804227924538057, 4.79096375214585, 4.777700486494424, 4.764436466271438, 4.751171925917623, 4.737907510246065, 4.7246432649140395, 4.711379783743039, 4.698115116252395, 4.684851737063488, 4.671587008855862, 4.658322854065369, 4.645058554002452, 4.631793548322277, 4.618528335031145, 4.605264292453669, 4.5919994792925065, 4.578735767625532, 4.565471274937183, 4.552205952735073, 4.53894145242212, 4.525676977524802, 4.512412500702495, 4.499147393010743, 4.485883031527566, 4.472618313859421, 4.459352809051277, 4.446088787425327, 4.432823141793288, 4.419558944232687, 4.406293354993021, 4.393028996488159, 4.379763436475649, 4.366498593068938, 4.353233838054935, 4.339968191233539, 4.326702706133753, 4.313438403378143, 4.30017317792982, 4.286907127574993, 4.273642449377838, 4.2603771052168735, 4.24711251793504, 4.2338474971983056, 4.220581749965911, 4.207316221751863, 4.194050665426075, 4.180785210845416, 9.180785210845416, 9.180437837493203, 9.180437753118733, 9.180437731005206, 9.180437726321426, 9.180437792543362, 9.18043788980793, 9.180437774232312, 9.180437719372252, 9.180437649624153, 9.180437751053887, 9.180437844224604, 9.180437845896693, 9.180437766940909, 9.180437717990806, 9.180437774530166, 9.180437840564485, 9.180437941083675, 9.180437831510117, 9.180437741525662, 9.180437764113249, 9.180437806345644, 9.180437842748294, 9.18043775282139, 9.180437729563543, 9.18043772619414, 9.180437796561675, 9.180437832071844, 9.18043777305295, 9.180437771158926, 9.180437657587737, 9.180437755731596, 9.180437862805277, 9.180437844540911, 9.180437836668071, 9.180437723324765, 9.180437775201721, 9.18043783140338, 9.180437938663701, 9.180437802680466, 9.180437743667913, 9.180437763742669, 9.180437810771355, 9.180437842162545, 9.18043774971082, 9.180437770248883, 9.180437726096814, 9.18043774791096, 9.180437829875146, 9.18043777212277, 9.180437775857637, 9.180437659500019, 9.18043776025935, 9.180437866772573, 9.180437842728697, 9.180437706927265, 9.180437720931934, 9.1804377760327, 9.1804378645926, 9.180437934841876, 9.180437796011534, 9.180437741996359, 9.180437764895608, 9.18043780776988, 9.180437844106399, 9.180437747121534, 9.180437755101444, 9.180437726145646, 9.180437815640351, 9.180437832059472, 9.180437771217106, 9.180437661859225, 9.180437662627844, 9.180437802195415, 9.180437867468882, 9.180437840894637, 9.180437720025031, 9.180437720332836, 9.180437776999215, 9.180437868718348, 9.180437931203885, 9.180437717055815, 9.180437739459075, 9.180437765899262, 9.180437839621701, 9.180437843300718, 9.180437765723473, 9.180437748009377, 9.180437726322198, 9.180437817318492, 9.180437833204204, 9.18043785860554, 9.180437662036974, 9.180437665433198, 9.180437785272826, 9.180437868771923, 9.180437838901108, 9.18043771883817, 9.180437720475283, 9.18043777872262, 9.180437873990574, 9.180437927107455, 9.180437771108226, 9.180437738021345, 9.180437714943533, 9.180437838804401, 9.180437843100206, 9.18043788137813, 9.180437744513991, 9.180437638695869, 9.180437817629347, 9.180437834438207, 9.180437941794223, 9.180437664267075, 9.180437668266764, 9.180437787447403, 9.180437870850966, 9.180437964631533, 9.18043772149013, 9.180437720455053, 9.180437698012422, 9.180437876345227, 9.180437922525812, 9.180437775040252, 9.180437736387619, 9.180437663649876, 9.180437840452777, 9.180437842678161, 9.180437861865887, 9.180437740563208, 9.180437722871373, 9.180437818538627, 9.180437835472471, 9.18043792993914, 9.180437664046037, 9.180437671639625, 9.180437786868229, 9.18043787256688, 9.180437836478196, 9.180437719680603, 9.18043772047163, 9.180437733758593, 9.180437878886568, 9.180437793253136, 9.180437771740875, 9.180437734854179, 9.180437769419258, 9.180437841596436, 9.180437829159011, 9.180437849362917, 9.180437736929154, 9.180437724513883, 9.180437820486858, 9.180437834866202, 9.180437752729036, 9.18043766412283, 9.18043774658296, 9.180437789695187, 9.18043787407249, 9.180437768851313, 9.180437718866704, 9.180437739473133, 9.180437743649232, 9.180437881206199, 9.180437839148025, 9.18043776993084, 9.1804377198722, 9.18043777335743, 9.180437842945969, 9.180437828938098, 9.180437841702322, 9.180437732854134, 9.180437764170394, 9.180437822265919, 9.180437908370662, 9.180437742924886, 9.180437664477122, 9.180437734977161, 9.180437791627892, 9.180437913632428, 9.180437768515171, 9.180437717831886, 9.180437666096571, 9.180437745604332, 9.180437883463103, 9.18043784597431, 9.180437767688526, 9.180437715652236, 9.180437774722229, 9.180437845240759, 9.180437954429436, 9.180437835678266, 9.180437659985538, 9.180437765759638, 9.18043782400686, 9.180437956612318, 9.18043774490368, 9.180437664902476, 9.180437726407197, 9.180437793814088, 9.180437888740505, 9.180437769289323, 9.180437716822661, 9.180437646450619, 9.180437749297079, 9.180437885674161, 9.180437843536403, 9.180437764418107, 9.180437624210967, 9.180437774933928, 9.180437847318398, 9.18043794673172, 9.180437828591137, 9.18043768306066, 9.180437764983683, 9.180437825724356, 9.180437846685386, 9.180437744321047, 9.180437727981783, 9.180437725463834, 9.18043779606469, 9.180437827894105, 9.180437769570151, 9.180437715773929, 9.18043764982722, 9.180437755001526, 9.180437842428683, 9.180437839810248, 9.180437761380743, 9.180437717127713, 9.180437776166803, 9.180437840898051, 9.180437937543328, 9.180437822096144, 9.180437738931436, 9.180437764809794, 9.1804378116249, 9.180437836917418, 9.180437744064884, 9.180437840313994, 14.180437840313994, 14.180437764316787, 14.180437657466355, 14.180437676306408, 14.180437802142581, 14.180437876115088, 14.180437935966042, 14.180437714854019, 14.180437731240687, 14.180437734102671, 14.180437911093428, 14.18043788455679, 14.180437753866023, 14.180437740734035, 14.180437718362803, 14.180437854434839, 14.180437796597046, 14.180437797943032, 14.180437719101905, 14.180437771800138, 14.18043783654083, 14.180437795493003, 14.180437821948424, 14.180437650084093, 14.180437729360522, 14.18043785016913, 14.180437854769474, 14.180437726844238, 14.1804377150309, 14.180437765867946, 14.18043785186689, 14.18043793289388, 14.180437718707264, 14.18043773826145, 14.180437763006589, 14.180437837500818, 14.180437839194257, 14.180437760889777, 14.180437741988897, 14.18043772824998, 14.180437828304015, 14.180437822407267, 14.180437754905878, 14.180437648265093, 14.180437677418173, 14.180437817827713, 14.180437875205724, 14.180437809809193, 14.180437709528062, 14.180437734927581, 14.180437803996748, 14.1804379163966, 14.180437887000734, 14.180437747920008, 14.180437743229424, 14.180437754408011, 14.18043785100183, 14.180437790241436, 14.180437734522089, 14.18043772007419, 14.180437767015547, 14.180437834997743, 14.180437787181774, 14.180437784373742, 14.180437648136067, 14.18043773300403, 14.180437851850682, 14.180437850165868, 14.180437847321148, 14.180437718713131, 14.180437769558425, 14.180437826560192, 14.180437935523356, 14.180437793379797, 14.180437740452133, 14.180437765712389, 14.180437822284455, 14.18043782951737, 14.180437729131278, 14.180437753050466, 14.180437731833834, 14.180437785678427, 14.180437813649378, 14.180437749382607, 14.180437725307735, 14.18043767805875, 14.18043780555703, 14.180437875098427, 14.180437806107566, 14.180437653604725, 14.1804377381364, 14.180437811448261, 14.180437923286933, 14.180437886744365, 14.180437706907385, 14.1804377473109, 14.180437800556462, 14.1804379121309, 14.180437779027011, 14.180437680184749, 14.180437722183578, 14.180437771222742, 14.180437878471079, 14.180437780284171, 14.18043772038794, 14.18043764130791, 14.180437736066326, 14.180437839499666, 14.180437845543937, 14.180437764952464, 14.180437714804299, 14.180437772985456, 14.180437847446422, 14.180437942781866, 14.18043781560858, 14.18043768284413, 14.180437770809762, 14.180437832538052, 14.180437831646232, 14.180437719517863, 14.180437725729899, 14.18043773509241, 14.180437823843704, 14.18043780960791, 14.18043774485021, 14.180437747047005, 14.180437680229915, 14.180437809260281, 14.180437867194847, 14.180437802894005, 14.180437737548703, 14.180437738546985, 14.180437815139822, 14.180437845687145, 14.180437883291827, 14.180437754395951, 14.180437748968622, 14.180437803954733, 14.180437890247742, 14.180437766334336, 14.180437673781544, 14.180437732008315, 14.180437774684778, 14.18043788975999, 14.180437773638886, 14.180437718470998, 14.180437667067162, 14.180437738548575, 14.180437879819497, 14.18043783402384, 14.18043776244425, 14.180437709448965, 14.180437780133774, 14.180437848761832, 14.180437954727823, 14.18043781338809, 14.180437642592867, 14.180437775365878, 14.180437832747918, 14.18043797402562, 14.180437711311772, 14.180437653713675, 14.180437737575636, 14.18043782645794, 14.180437885590234, 14.180437740804441, 14.180437708275937, 14.180437663529059, 14.180437815303119, 14.180437923306323, 14.180437798100309, 14.180437737303546, 14.180437634303361, 14.180437819110734, 14.18043785438783, 14.180437888709198, 14.180437753173814, 14.18043770649871, 14.18043780647561, 14.180437838136791, 14.180437767212021, 14.180437667890157, 14.180437739355073, 14.180437778074898, 14.180437867894277, 14.180437835187501, 14.1804377161601, 14.180437718668962, 14.180437740720402, 14.180437887154426, 14.180437780036955, 14.180437759562441, 14.180437732961044, 14.180437781866502, 14.180437849048046, 14.18043780935977, 14.180437810744902, 14.180437719475126, 14.180437777813646, 14.180437832341477, 14.180437905835007, 14.180437701633254, 14.180437650480647, 14.180437766844108, 14.180437830628625, 14.18043786747446, 14.180437733372065, 14.180437709275651, 14.1804377533768, 14.180437823801823, 14.180437926920032, 14.1804377869995, 14.180437737569317, 14.180437700603969, 14.180437822106626, 14.180437850551437, 14.180437901361605, 14.180437752617749, 14.180437629874946, 14.180437808477294, 14.180437834014029, 14.180437855644001, 14.180437659930409, 14.18043766465298, 14.180437786808357, 14.180437869552188, 14.180437954172355, 14.180437715209955, 14.180437721864996, 14.180437710898973, 14.180437893212373, 14.18043790159371, 14.180437758873419, 14.180437734978222, 14.180437692697542, 14.180437848991932, 14.180437810855896, 14.180437814812695, 14.180437719867278, 14.180437791485291], "borderColor": "#8da0cb", "backgroundColor": "#8da0cb", "tension": 0.1}]}} \ No newline at end of file diff --git a/src/Tasks/FermentExercises/differentialgleichung.py b/src/Tasks/FermentExercises/differentialgleichung.py new file mode 100644 index 0000000..aa0246c --- /dev/null +++ b/src/Tasks/FermentExercises/differentialgleichung.py @@ -0,0 +1,95 @@ + + + +import numpy as np + + + +def ODE_Bioreactor_Monod(t, p, consts) : + + + #Entnehmen der Kostanten aus consts + + c_ox_sat = consts[0] #Sauerstofflöslichkeit in der Fermentation + kla = consts[1] #kla Wert in 1/h Info eine OTR von 100 mmol/(L*h) entspricht bei DO=0% ~ einem kla von 400 1/h + RQ = consts[2] #Respiratory Coefficient + Begasungsrate = consts[3] #Begasungsrate in NL(Luft)/(L(Kulturbrühe)*min) quasi vvm + c_O2_Luft = consts[4] #Sauerstoffgehalt Luft in mol/L + c_CO2_Luft = consts[5] #CO2 Gehalt der Luft in mol/L + ks_ox = consts[6] #Halbsaettigungskonstante Sauerstoff in g/L + Yxox = consts[7] #Ausbeutekoeffizient g Biomasse je g Sauerstoff nach HArvard Bionumbers für E.coli + P=consts[8] #Produktbildung an =1 oder aus =0 + ap = consts[9] #Luedking Piret Parameter für wachsumassoziierte Produktbildung + bp = consts[10] #Luedking Piret Parameter für nicht wachsumassoziierte Produktbildung + kp_max = consts[11] #maximale spezifische Produktbildungsrate in g(P)/(g(x)*L*h) nicht wachstumsassoziierte Produktbildung + km_s1p = consts[12] #Km Wert in Analogie zur Michaelis Menten-Gleichung für die Bildung von P aus S - nicht wachstumsassoziiert + Ypx_mu = consts[13] #Ausbeutekoeffizient Produktbildung direkt wachstumsassoziiert aus Substrat + mumax =consts[14] #maximale Wachstumsrate in 1/h + ks_s1x=consts[15] #Halbsaettigungskonstante Substrat in g/L für Berechnung von Wachstumsrat µ + Yxs1=consts[16] #Ausbeutekoeff fuer Zellmasse in g/g + ks_s2x=consts[17] #Halbsaettigungskonstante Ks für Substrat S2 in g/L für Berechnung von Wachstumsrat µ + Yxs2=consts[18] #Ausbeutekoeff fuer Zellmasse auf Substrat 2 1 in g/g + feed_s1=consts[19] #!Feedrate Substrat 1 in g/L*h + + + #Zuweisungen der Eingangswerte / = Konzentrationen die das Model berechnet + + cx = p[0] #!Konzentration Biotrockenmasse in g/L + cs1 = p[1] #!Substratkonzentration 1 in g/L + cs2 = p[2] #Substratkonzentration 2 in g/L + cp = p[3] #!Produktkonzentration in g/L + c_ox = p[4] #Gelöstsaurestoffkonznetration in g/L + c_O2_Out = p[5] #Abluftkonzentration O2 + c_CO2_Out = p[6] #Abluftkonzentration CO2 + + #Nebenrechnungen + + Vm_norm=22.41950113 #molares Volumen bei Normbedingungen + Luft_In=Begasungsrate*60 #ZuLuftstrom Luft in NL/(L_Brühe*h) + Luft_Out=Luft_In #Molenstrom Abluft in mol/(L*h) ; evtl. mal erweitern wenn Luft_Out <> Luft_In + #Sauerstoff als limitierendes Substrat + OTR=kla*(c_ox_sat - c_ox) #in g/(L*h) + + + #Modellgleichungen + #spez. Wachstumsrate + mu_s = mumax*cs1/(ks_s1x+cs1)*cs2/(ks_s2x+cs2)*c_ox/(ks_ox+c_ox); # Monod Kinetik fuer spezifische Wachstumsrate + #k_ox = 0.01*cs1/(ks_ox+cs1); %nicht wachstumsabhängige Sauerstoffverbrauchsrate, beschrieben als MichaMenten Kinetik %%%%CHANGE!! + #Produktbildungsrate + kp = kp_max*cs1/(km_s1p+cs1); #Michaelis Menten Kinetik für nicht wachstumssassoziierte Produktbildung + + #OUR=cx*(mu_s/Yxox-k_ox); + OUR=cx*(mu_s/Yxox) + #Begasung / Sauerstoff + CER=OUR/32*RQ; #Umrechung von g/L in mol/L + + + + value_0 = float(mu_s * cx) + + #Substratverbrauchsgeschwindigkeit Substrat 1 durch Biomassebildung und Produktbildung + value_1= float(cx*(-mu_s/Yxs1)-P*((mu_s*cx*Ypx_mu)*ap+(cx*kp)*bp)+feed_s1) + + #Substratverbrauchsgeschwindigkeit Substrat 2 durch Biomassebildung NICHT Genutzt zur Produktbildung Produktbildung + value_2= float(cx*(-(mu_s/Yxs2))) + + #Produktbildung nach Luedeking Piret; + value_3= float(P*((mu_s*cx*Ypx_mu)*ap+(cx*kp)*bp)) + + #Berechnung Gelöstsauerstoffkonzentration (OTR-OUR) mit Nebenbedingung + #darf nicht NUll sein + value_4= float(kla*(c_ox_sat-c_ox)-cx*(mu_s/Yxox)) + + #Berechnung O2-gehalt in Vol% Abluf IN Analogie zu einem CSTR F(C_in-Cout)-Reaktion + value_5= float(Luft_In*c_O2_Luft-Luft_Out*c_O2_Out-OUR/32*Vm_norm) + + #Berechnung CO2-gehalt in Vol% Abluf IN Analogie zu einem CSTR F(C_in-Cout)-Reaktion + value_6= float(Luft_In*c_CO2_Luft-Luft_Out*c_CO2_Out+CER*Vm_norm) + + retval = np.array([value_0,value_1,value_2,value_3,value_4,value_5,value_6]) + + + return retval + + + diff --git a/src/Tasks/FermentExercises/excel_export.py b/src/Tasks/FermentExercises/excel_export.py new file mode 100644 index 0000000..531add7 --- /dev/null +++ b/src/Tasks/FermentExercises/excel_export.py @@ -0,0 +1,27 @@ + +from openpyxl import Workbook +import os + + +def export_to_excel(filename, t_combined, y_combined, cum_feeding): + y_combined=y_combined.T + if os.path.exists(filename): + os.remove(filename) + + wb = Workbook() + ws = wb.active + + caption = ['t', 'Biotrockenmasse (cx)', 'Konz. Substrat 1 (cs1)', 'Konz. Substrat 2 (cs2)', + 'Konz. Produkt (cp)', 'c_O2 (Lösung)', 'c_O2 (Abluft)', 'c_CO2 (Abluft)', + 'kumulatives Feeding Substrat 1'] + + for i, header in enumerate(caption): + ws.cell(row=1, column=i + 1, value=header) + + for i in range(len(t_combined)): + row_data = [t_combined[i]] + [y_combined[j, i] for j in range(y_combined.shape[0])] + [cum_feeding[i]] + for j, value in enumerate(row_data): + ws.cell(row=i + 2, column=j + 1, value=value) + + + wb.save(filename) \ No newline at end of file diff --git a/src/Tasks/FermentExercises/generateFermentExercises.py b/src/Tasks/FermentExercises/generateFermentExercises.py new file mode 100644 index 0000000..e92c32f --- /dev/null +++ b/src/Tasks/FermentExercises/generateFermentExercises.py @@ -0,0 +1,67 @@ +import json +import numpy as np + +from excel_export import export_to_excel +from json_to_excel import json_to_excel +from nebenrechnungen import Berechnung_der_Sauerstoffloeslichkeit +from nebenrechnungen import Berechnung_des_kla_Wertes +from nebenrechnungen import parameter + + +from berechnungen import berechnung_der_Tabelle1 +from berechnungen import berechnung_der_Tabelle2 +from berechnungen import berechnung_der_Tabelle3 +from berechnungen import berechnung + +from interne_daten.data_importieren import data_importieren_von_json + +from Input.json_Input import JsonInput + +# Example data for the variables +#c_ox_sat = 0.21 # Example value for oxygen saturation concentration +#t_combined = np.linspace(0, 10, 100) # Example time data +#y_combined = np.random.rand(5, 100) # Example concentration data with 5 different concentrations over time +#cum_feeding = np.cumsum(np.random.rand(100)) # Example cumulative feeding data + +#c_ox_sat = None # Oxygen saturation concentration +#t_combined = None # Time data +#y_combined = None # Concentration data +#cum_feeding = None # Cumulative feeding data + + + #Modelle aus modelle.jsom laden +# Modelle aus modelle.json laden + +def generateFermentExercises(): + modelleOb = JsonInput('modelle.json') + modelleOb.ladeJson() + modelle = modelleOb.get_data() + + # Zum Test im Meeting + m = modelleOb.get_Value() + + # Input aus input.json laden + eingabeOb = JsonInput('FrontendEingaben.json') + eingabeOb.ladeJson() + eingabe = eingabeOb.get_Value() + + # Berechnungen durchführen + Sauerstoffoeslichkeit_array = Berechnung_der_Sauerstoffloeslichkeit(eingabe[1], eingabe[9], eingabe[3]) + kla_werte = Berechnung_des_kla_Wertes(Sauerstoffoeslichkeit_array, modelle, eingabe[4], eingabe[0], eingabe[5], eingabe[1]) + parameter_werte = parameter(Sauerstoffoeslichkeit_array, kla_werte, modelle, eingabe[1], eingabe[0]) + const_array = berechnung_der_Tabelle1(parameter_werte, eingabe[0], modelle, eingabe[5], eingabe[7], eingabe[1]) + t_ranges_array = berechnung_der_Tabelle2(eingabe[2], eingabe[1]) + param_array = berechnung_der_Tabelle3(const_array, eingabe[10], eingabe[6], eingabe[8], eingabe[11], eingabe[1]) #!eingabe[6] => BolusC ; param_array[i][1]=float(bolus_c[i]) param_array[i][2]=float(bolus_n[i]) + + # Berechnung ausführen + ergebnis = berechnung(t_ranges_array, param_array, const_array, eingabe[1],eingabe[12], eingabe[13], eingabe[14], eingabeOb.get_data()) + c_ox_sat, y_combined, t_combined, cum_feeding = ergebnis + + + #Export Resultat in Excel-Datei + #export_to_excel("model_result.xlsx", t_combined, y_combined, cum_feeding) + #plot_visualisieren(c_ox_sat, y_combined, t_combined, cum_feeding) + + +if __name__ == "__main__": + generateFermentExercises() \ No newline at end of file diff --git a/src/Tasks/FermentExercises/images/ALADIN-Startseite.png b/src/Tasks/FermentExercises/images/ALADIN-Startseite.png new file mode 100644 index 0000000..edaf929 Binary files /dev/null and b/src/Tasks/FermentExercises/images/ALADIN-Startseite.png differ diff --git a/src/Tasks/FermentExercises/images/Aladin-VsCode.png b/src/Tasks/FermentExercises/images/Aladin-VsCode.png new file mode 100644 index 0000000..1cf123b Binary files /dev/null and b/src/Tasks/FermentExercises/images/Aladin-VsCode.png differ diff --git a/src/Tasks/FermentExercises/images/Berechnung_py.png b/src/Tasks/FermentExercises/images/Berechnung_py.png new file mode 100644 index 0000000..8bf4de4 Binary files /dev/null and b/src/Tasks/FermentExercises/images/Berechnung_py.png differ diff --git a/src/Tasks/FermentExercises/images/Carpet-VsCode.png b/src/Tasks/FermentExercises/images/Carpet-VsCode.png new file mode 100644 index 0000000..268bce7 Binary files /dev/null and b/src/Tasks/FermentExercises/images/Carpet-VsCode.png differ diff --git a/src/Tasks/FermentExercises/images/Docker.png b/src/Tasks/FermentExercises/images/Docker.png new file mode 100644 index 0000000..cee75c8 Binary files /dev/null and b/src/Tasks/FermentExercises/images/Docker.png differ diff --git a/src/Tasks/FermentExercises/images/Ferment-Startseite.png b/src/Tasks/FermentExercises/images/Ferment-Startseite.png new file mode 100644 index 0000000..aef7fea Binary files /dev/null and b/src/Tasks/FermentExercises/images/Ferment-Startseite.png differ diff --git a/src/Tasks/FermentExercises/images/Ferment-Startseite2.png b/src/Tasks/FermentExercises/images/Ferment-Startseite2.png new file mode 100644 index 0000000..592c603 Binary files /dev/null and b/src/Tasks/FermentExercises/images/Ferment-Startseite2.png differ diff --git a/src/Tasks/FermentExercises/images/ProfessorenSeite.png b/src/Tasks/FermentExercises/images/ProfessorenSeite.png new file mode 100644 index 0000000..7960a6a Binary files /dev/null and b/src/Tasks/FermentExercises/images/ProfessorenSeite.png differ diff --git a/src/Tasks/FermentExercises/images/ProfessorenSeite2.png b/src/Tasks/FermentExercises/images/ProfessorenSeite2.png new file mode 100644 index 0000000..5b6f56b Binary files /dev/null and b/src/Tasks/FermentExercises/images/ProfessorenSeite2.png differ diff --git a/src/Tasks/FermentExercises/images/Sequenzdiagramm1.png b/src/Tasks/FermentExercises/images/Sequenzdiagramm1.png new file mode 100644 index 0000000..45a887d Binary files /dev/null and b/src/Tasks/FermentExercises/images/Sequenzdiagramm1.png differ diff --git a/src/Tasks/FermentExercises/images/StudierendenSeite.png b/src/Tasks/FermentExercises/images/StudierendenSeite.png new file mode 100644 index 0000000..7107d26 Binary files /dev/null and b/src/Tasks/FermentExercises/images/StudierendenSeite.png differ diff --git a/src/Tasks/FermentExercises/images/StudierendenSeite2.png b/src/Tasks/FermentExercises/images/StudierendenSeite2.png new file mode 100644 index 0000000..866ac74 Binary files /dev/null and b/src/Tasks/FermentExercises/images/StudierendenSeite2.png differ diff --git a/src/Tasks/FermentExercises/images/StudierendenSeite3.png b/src/Tasks/FermentExercises/images/StudierendenSeite3.png new file mode 100644 index 0000000..c696f12 Binary files /dev/null and b/src/Tasks/FermentExercises/images/StudierendenSeite3.png differ diff --git a/src/Tasks/FermentExercises/images/differentialgleichung_py.png b/src/Tasks/FermentExercises/images/differentialgleichung_py.png new file mode 100644 index 0000000..c880bd9 Binary files /dev/null and b/src/Tasks/FermentExercises/images/differentialgleichung_py.png differ diff --git a/src/Tasks/FermentExercises/images/excel_export_py.png b/src/Tasks/FermentExercises/images/excel_export_py.png new file mode 100644 index 0000000..ff67650 Binary files /dev/null and b/src/Tasks/FermentExercises/images/excel_export_py.png differ diff --git a/src/Tasks/FermentExercises/images/generateFermentationDataMain.png b/src/Tasks/FermentExercises/images/generateFermentationDataMain.png new file mode 100644 index 0000000..33d224c Binary files /dev/null and b/src/Tasks/FermentExercises/images/generateFermentationDataMain.png differ diff --git a/src/Tasks/FermentExercises/images/inputBaseClass_py.png b/src/Tasks/FermentExercises/images/inputBaseClass_py.png new file mode 100644 index 0000000..e322ec4 Binary files /dev/null and b/src/Tasks/FermentExercises/images/inputBaseClass_py.png differ diff --git a/src/Tasks/FermentExercises/images/json_Input_py.png b/src/Tasks/FermentExercises/images/json_Input_py.png new file mode 100644 index 0000000..f887a6a Binary files /dev/null and b/src/Tasks/FermentExercises/images/json_Input_py.png differ diff --git a/src/Tasks/FermentExercises/images/main_py.png b/src/Tasks/FermentExercises/images/main_py.png new file mode 100644 index 0000000..326e64e Binary files /dev/null and b/src/Tasks/FermentExercises/images/main_py.png differ diff --git a/src/Tasks/FermentExercises/images/view_py.png b/src/Tasks/FermentExercises/images/view_py.png new file mode 100644 index 0000000..bea3c23 Binary files /dev/null and b/src/Tasks/FermentExercises/images/view_py.png differ diff --git a/src/Tasks/FermentExercises/interne_daten/FrontendEingaben.json b/src/Tasks/FermentExercises/interne_daten/FrontendEingaben.json new file mode 100644 index 0000000..e8d0f4e --- /dev/null +++ b/src/Tasks/FermentExercises/interne_daten/FrontendEingaben.json @@ -0,0 +1,50 @@ +{ + "Modell": "Modell-1", + "PhasenAnzahl": 3, + "Dauer": [ + 10, + 10, + 10 + ], + "Druck": [ + 1, + 1, + 1 + ], + "Drehzahl": [ + 100, + 100, + 100 + ], + "Zuluft": [ + 1, + 1, + 1 + ], + "BolusC": [ + 1, + 1, + 1 + ], + "Feed": [ + 1, + 1, + 1 + ], + "BolusN": [ + 1, + 1, + 1 + ], + "temperatur": 0, + "startbiomasse": 0, + "do": 0, + "maxParameter": "Cp", + "minParameter": "Cx", + "varierendeParameter": { + "Feed": { + "min": 0, + "max": 5 + } + } +} \ No newline at end of file diff --git a/src/Tasks/FermentExercises/interne_daten/Input_Leser.py b/src/Tasks/FermentExercises/interne_daten/Input_Leser.py new file mode 100644 index 0000000..24f6d3f --- /dev/null +++ b/src/Tasks/FermentExercises/interne_daten/Input_Leser.py @@ -0,0 +1,60 @@ +import json +import os + +class ParameterLeser: + + @staticmethod + def lade_parameter(datei_name): + current_dir = os.path.dirname(os.path.realpath(__file__)) + # Vollständiger Pfad zur JSON-Datei + json_path = os.path.join(current_dir, datei_name) + with open(json_path) as f: + return json.load(f)['Parameter'] + + @staticmethod + def get_modell(parameter): + return parameter['Modell'] + + @staticmethod + def get_phasenanzahl(parameter): + return parameter['PhasenAnzahl'] + + @staticmethod + def get_dauer(parameter): + return parameter['Dauer']['DauerArray'] + + @staticmethod + def get_druck(parameter): + return parameter['Druck']['DruckArray'] + + @staticmethod + def get_drehzahl(parameter): + return parameter['Drehzahl']['DrehzahlArray'] + + @staticmethod + def get_zuluft(parameter): + return parameter['Zuluft']['ZuluftArray'] + + @staticmethod + def get_bolus_c(parameter): + return parameter['BolusC']['BolusCArray'] + + @staticmethod + def get_futter(parameter): + return parameter['Feed']['FeedArray'] + + @staticmethod + def get_bolus_n(parameter): + return parameter['BolusN']['BolusNArray'] + + @staticmethod + def get_temperatur(parameter): + return parameter['Temperatur']['temperatur'] + + @staticmethod + def get_start_biomasse(parameter): + return parameter['Startbiomasse']['startbiomasse'] + + @staticmethod + def get_do(parameter): + return parameter['DO']['do'] \ No newline at end of file diff --git a/src/Tasks/FermentExercises/interne_daten/Modelle_Leser.py b/src/Tasks/FermentExercises/interne_daten/Modelle_Leser.py new file mode 100644 index 0000000..d5eae9b --- /dev/null +++ b/src/Tasks/FermentExercises/interne_daten/Modelle_Leser.py @@ -0,0 +1,101 @@ +import json +import os + + +class ModellLeser: + + @staticmethod + def lade_modelle(datei_name): + current_dir = os.path.dirname(os.path.realpath(__file__)) + # Vollständiger Pfad zur JSON-Datei + json_path = os.path.join(current_dir, datei_name) + with open(json_path) as f: + return json.load(f) + + @staticmethod + def get_beschreibung(modelle, modellname): + return modelle[modellname]['Beschreibung'] + + @staticmethod + def get_mikroorganismus(modelle, modellname): + return modelle[modellname]['Mikroorganismus'] + + @staticmethod + def get_substrat_1(modelle, modellname): + return modelle[modellname]['Substrat 1'] + + @staticmethod + def get_substrat_2(modelle, modellname): + return modelle[modellname]['Substrat 2'] + + @staticmethod + def get_produkt_1(modelle, modellname): + return modelle[modellname]['Produkt 1'] + + @staticmethod + def get_umax(modelle, modellname): + return modelle[modellname]['umax'] + + @staticmethod + def get_ks_s1x(modelle, modellname): + return modelle[modellname]['Ks_s1x'] + + @staticmethod + def get_ks_s2x(modelle, modellname): + return modelle[modellname]['Ks_s2x'] + + @staticmethod + def get_yxs1(modelle, modellname): + return modelle[modellname]['Yxs1'] + + @staticmethod + def get_yxs2(modelle, modellname): + return modelle[modellname]['Yxs2'] + + @staticmethod + def get_ks_ox(modelle, modellname): + return modelle[modellname]['ks_ox'] + + @staticmethod + def get_rq(modelle, modellname): + return modelle[modellname]['RQ'] + + @staticmethod + def get_yxox(modelle, modellname): + return modelle[modellname]['Yxox'] + + @staticmethod + def get_produktbildung(modelle, modellname): + return modelle[modellname]['Produktbildung'] + + @staticmethod + def get_ap(modelle, modellname): + return modelle[modellname]['ap'] + + @staticmethod + def get_bp(modelle, modellname): + return modelle[modellname]['bp'] + + @staticmethod + def get_kp_max(modelle, modellname): + return modelle[modellname]['kp_max'] + + @staticmethod + def get_km_s1p(modelle, modellname): + return modelle[modellname]['km_s1p'] + + @staticmethod + def get_ypx_mu(modelle, modellname): + return modelle[modellname]['Ypx_mu'] + + @staticmethod + def get_dichte_bruehe(modelle, modellname): + return modelle[modellname]['Dichte Bruehe'] + + @staticmethod + def get_dyn_viscosity(modelle, modellname): + return modelle[modellname]['dyn. Viscosity'] + + @staticmethod + def get_temp_in_c(modelle, modellname): + return modelle[modellname]['Temp. In C'] diff --git a/src/Tasks/FermentExercises/interne_daten/data_importieren.py b/src/Tasks/FermentExercises/interne_daten/data_importieren.py new file mode 100644 index 0000000..c169111 --- /dev/null +++ b/src/Tasks/FermentExercises/interne_daten/data_importieren.py @@ -0,0 +1,18 @@ + +import json +import os + +def data_importieren_von_json(datei_name): + # Verzeichnis des aktuellen Skripts + current_dir = os.path.dirname(os.path.realpath(__file__)) + # Vollständiger Pfad zur JSON-Datei + json_path = os.path.join(current_dir, datei_name) + + try: + # Öffne die JSON-Datei und lade sie + with open(json_path, 'r') as file: + data = json.load(file) + return data + except FileNotFoundError: + print(f"Die Datei '{datei_name}' wurde nicht gefunden.") + return None diff --git a/src/Tasks/FermentExercises/interne_daten/input.json b/src/Tasks/FermentExercises/interne_daten/input.json new file mode 100644 index 0000000..617381b --- /dev/null +++ b/src/Tasks/FermentExercises/interne_daten/input.json @@ -0,0 +1,26 @@ +{ + "Modell" : "Modell-1", + + "PhasenAnzahl" : 4, + + "Dauer" : [24,24,24,24], + + "Druck": [0.01,0.01,0.01,0.01], + + "Drehzahl" : [800,800,800,800], + + "Zuluft": [0.67,0.67,0.67,0.67], + + "BolusC" : [0,0,0,0], + + "Feed" : [0,0,0,0], + + "BolusN" : [5,5,5,5], + + "temperatur": 30, + + "startbiomasse": 0.05, + + "do":100 + +} \ No newline at end of file diff --git a/src/Tasks/FermentExercises/interne_daten/konstantenDictionary.py b/src/Tasks/FermentExercises/interne_daten/konstantenDictionary.py new file mode 100644 index 0000000..0b459d1 --- /dev/null +++ b/src/Tasks/FermentExercises/interne_daten/konstantenDictionary.py @@ -0,0 +1,43 @@ + + +#Dictionary Henry_Konstanten erstellen +Henry_Kosntanten = { + "Solut_KH1" :{ #L*atm*mol-1 + "O2" : 769.2, + "CO2" : 29.41, + "H2" : 1282.1 + }, + + "Solut_KH2" :{ #(L*bar)/mol + "O2" : 779.3919, + "CO2" : 29.7996825, + "H2" : 1299.087825 + }, + + "Solut_T" :{ #in k + "O2" : 298.15, + "CO2" : 198.15, + "H2" : 298.15 + } +} + +##Dictionary Temperaturkoeffizient erstellen + +Temperaturkoeffizient = { #Solut:C in K + "O2" : 1700, + "H2" : 500, + "CO2" : 2400, + "N2" : 1300, + "He" : 230, + "Ne" : 490, + "Ar" : 1300, + "CO" : 1300 +} + +#Dictionary für die Konstanten für P begast + +Konstanten_fuer_P_begast = { + "1" : 750, #"Anzahl der Impeller/Rührorgane" : Konstante A in Pg Formel + "2" : 490, + "3" : 375 +} \ No newline at end of file diff --git a/src/Tasks/FermentExercises/interne_daten/modelle.json b/src/Tasks/FermentExercises/interne_daten/modelle.json new file mode 100644 index 0000000..b110769 --- /dev/null +++ b/src/Tasks/FermentExercises/interne_daten/modelle.json @@ -0,0 +1,70 @@ +{ + "Modell-1": + { + "Beschreibung": "nicht wachstumsassoziierte Ethanolbildung mit hohem Ks --> hoehere Biomassegehalte bei niedrigen Substrat 1 konz.", + "Mikroorganismus": "S.cerevisiae", + "Substrat 1": "Glucose", + "Substrat 2": "(NH4)2SO4", + "Produkt 1": "Ethanol", + "umax": 0.46209812, + "Ks_s1x": 0.1, + "Ks_s2x": 0.01, + "Yxs1": 0.54, + "Yxs2": 8, + "ks_ox": 9.6e-05, + "RQ": 1, + "Yxox": 4.81, + "Produktbildung": 1, "ap": 0, "bp": 1, "kp_max": 0.88, "km_s1p": 5, "Ypx_mu": 1.5, "Dichte Bruehe": 1000, "dyn. Viscosity": 2, + "Temp. In C": 30 + }, + "Modell-2": + { + "Beschreibung": "Keine", + "Mikroorganismus": "E.coli", + "Substrat 1": "C-Quelle", + "Substrat 2": "N-Quelle", + "Produkt 1": "Produkt", + "umax": 2.07944154, + "Ks_s1x": 5, + "Ks_s2x": 0.1, + "Yxs1": 0.54, + "Yxs2": 8, + "ks_ox": 0.001, + "RQ": 1, + "Yxox": 0.54, + "Produktbildung": 1, + "ap": 0, + "bp": 1, + "kp_max": 0.88, + "km_s1p": 5, + "Ypx_mu": 1.5, + "Dichte Bruehe": 1000, + "dyn. Viscosity": 2, + "Temp. In C": 30 + }, + "Modell-3": + { + "Beschreibung": "Keine", + "Mikroorganismus": "Testorganismus", + "Substrat 1": "C-Quelle", + "Substrat 2": "N-Quelle", + "Produkt 1": "keins", + "umax": 0.314, + "Ks_s1x": 0.42, + "Ks_s2x": 0.1, + "Yxs1": 0.54, + "Yxs2": 1, + "ks_ox": 0.01, + "RQ": 1, + "Yxox": 0.54, + "Produktbildung": 0, + "ap": 0.5, + "bp": 0.5, + "kp_max": 0.23, + "km_s1p": 0.8, + "Ypx_mu": 1.5, + "Dichte Bruehe": 1050, + "dyn. Viscosity": 2, + "Temp. In C": 30 + } +} \ No newline at end of file diff --git a/src/Tasks/FermentExercises/json_to_excel.py b/src/Tasks/FermentExercises/json_to_excel.py new file mode 100644 index 0000000..32b3b5c --- /dev/null +++ b/src/Tasks/FermentExercises/json_to_excel.py @@ -0,0 +1,23 @@ +import os +import pandas as pd + +def json_to_excel(json_file, excel_filename='output.xlsx'): + + + # Get the default download folder based on the operating system + if os.name == 'nt': # Windows + download_folder = os.path.join(os.getenv('USERPROFILE'), 'Downloads') + else: # Mac/Linux + download_folder = os.path.join(os.path.expanduser('~'), 'Downloads') + + # Load the JSON file into a DataFrame + df = pd.read_json(json_file) + + # Set the path for the Excel file + excel_file = os.path.join(download_folder, excel_filename) + + # Save the DataFrame as an Excel file + df.to_excel(excel_file, index=False, engine='openpyxl') + + # Return the full path to the Excel file + return excel_file diff --git a/src/Tasks/FermentExercises/nebenrechnungen.py b/src/Tasks/FermentExercises/nebenrechnungen.py new file mode 100644 index 0000000..3928fe4 --- /dev/null +++ b/src/Tasks/FermentExercises/nebenrechnungen.py @@ -0,0 +1,157 @@ +import math +import numpy as np +from array import array + + + +from interne_daten.konstantenDictionary import * + + +Durchmesser_Ruehrer_durch_Durchmesser_Tank = 0.33 #Modell F19 +nutzbares_Volumen = 0.7 #Modell F21 +Hoehe_des_Tanks_durch_Durchmesser_Tank = 3 #Modell F20 +Anzahl_Rushton_Impeller = 3 #Modell F22 +Volumen_Kulturbruehe = 10 / 1000 #Modell F18 +Durchmesser_Ruehrer = 0.0602 #!Modell F28 +Nettovolumen = Volumen_Kulturbruehe / nutzbares_Volumen #Modell F27 + +Durchmesser_Tank = ((Nettovolumen*4) / (Hoehe_des_Tanks_durch_Durchmesser_Tank*math.pi))**(1/3) #Modell F29 + +Hoehe_des_Tanks = Hoehe_des_Tanks_durch_Durchmesser_Tank * Durchmesser_Tank #Modell F30 +Vcheck = (math.pi/4) * Durchmesser_Tank**2 * Hoehe_des_Tanks #Modell F32 + + + + + + + + +def parameter(Sauerstoffoeslichkeit_array,kla_werte,data,phasen_anzahl,modell): + parameter_array = [array('d', [0] * 3) for _ in range(4)] + + for j in range(phasen_anzahl): + parameter_array[j][0]=Sauerstoffoeslichkeit_array[j][5] #!Sauersto. in g/l + + for j in range(phasen_anzahl): + parameter_array[j][1]=kla_werte[j][17] + + for j in range(phasen_anzahl): + parameter_array[j][2]=data.get(modell, {}).get("umax") #SVERWEIS(Modell!$B$3;Tabelle1[#Alle];7;FALSCH) + + return parameter_array + + + + +def Berechnung_der_Sauerstoffloeslichkeit(phasen_anzahl,temperatur,druck): + + + Sauerstoffoeslichkeit_array = [array('d', [0] * 6) for _ in range(int(phasen_anzahl))] + + + + ############################################### Phase1 + # Attribute für Phase 1 + T_in_K_1 = 273.15 + temperatur # Modell!B11 + p_in_bara_1 = 1.013 + druck[0] #Modell H8 = 1 + p_o2_in_bara_1 = 0.20946 * p_in_bara_1 + kH_o2_bei_T_1 = Henry_Kosntanten["Solut_KH2"]["O2"] * math.exp(-Temperaturkoeffizient["O2"]*((1/T_in_K_1) - (1/Henry_Kosntanten["Solut_T"]["O2"]))) + L_o2_in_mmol_l_1 = (p_o2_in_bara_1 / kH_o2_bei_T_1 )*1000 + L_o2_in_g_l_1 = (L_o2_in_mmol_l_1*32) /1000 + + for i in range(phasen_anzahl): + if i == 0: + Sauerstoffoeslichkeit_array[0] = [T_in_K_1,p_in_bara_1,p_o2_in_bara_1,kH_o2_bei_T_1,L_o2_in_mmol_l_1,L_o2_in_g_l_1] + else : + Sauerstoffoeslichkeit_array[i][0]=Sauerstoffoeslichkeit_array[i-1][0] + Sauerstoffoeslichkeit_array[i][1]= 1.013 + float(druck[i]) #Modell!I8 #Modell j8 #modell k8 + Sauerstoffoeslichkeit_array[i][2]= 0.20946 * Sauerstoffoeslichkeit_array[i][1] + Sauerstoffoeslichkeit_array[i][3]=Henry_Kosntanten["Solut_KH2"]["O2"] * math.exp(-Temperaturkoeffizient["O2"]*((1/Sauerstoffoeslichkeit_array[i][0]) - (1/Henry_Kosntanten["Solut_T"]["O2"]))) + Sauerstoffoeslichkeit_array[i][4]=(Sauerstoffoeslichkeit_array[i][2]/Sauerstoffoeslichkeit_array[i][3])*1000 + Sauerstoffoeslichkeit_array[i][5]=(Sauerstoffoeslichkeit_array[i][4]*32)/1000 + + # Dezimalstellen nach komma grenzen, maximal 9 Stellen nach komma + for i in range(len(Sauerstoffoeslichkeit_array)): + for j in range(len(Sauerstoffoeslichkeit_array[i])): + try: + Sauerstoffoeslichkeit_array[i][j] = round(float(Sauerstoffoeslichkeit_array[i][j]), 9) + except ValueError: + pass + + return Sauerstoffoeslichkeit_array + + +def Berechnung_des_kla_Wertes(Sauerstoffoeslichkeit_array,data,drehzahl,modell,zuluft,phasen_anzahl): + + kla_werte = [array('d', [0] * 19) for _ in range(phasen_anzahl)] + i=0 + + drehzahl_1 = float(drehzahl[i]) #Modell H9 + Drehzahl_pro_sek = 1200 / 60 + Dichte = data.get(modell, {}).get("Dichte Bruehe") #SVERWEIS(Modell!$B$3;Tabelle1[#Alle];21;FALSCH) + dyn_Viskosität1 = data.get(modell, {}).get("dyn. Viscosity") #SVERWEIS(Modell!$B$3;Tabelle1[#Alle];22;FALSCH) + dyn_Viskositaet2 = dyn_Viskosität1/ 1000 #(kg*m)/s + Ruehrerdurchmesser = Durchmesser_Ruehrer #0.0602 Modell F28 + Reynoldszahl_Re = (Dichte * Drehzahl_pro_sek * (Ruehrerdurchmesser**2)) / dyn_Viskositaet2 + Newton_Zahl_Ne = 7 + Leistungseintrag_nicht_begast_P_1 = (Newton_Zahl_Ne * Anzahl_Rushton_Impeller * Dichte * (Drehzahl_pro_sek**3) * (Ruehrerdurchmesser**5)) #Modell F22=3 + Leistungseintrag_nicht_begast_P_2 = Leistungseintrag_nicht_begast_P_1 / Volumen_Kulturbruehe #modell F18 = 0.01 + Leistungseintrag_nicht_begast_P_3 = Leistungseintrag_nicht_begast_P_2 / 1000 #kW/m3 + + #Feld 11 später + Air_Flow_1 = 0.2 #vvm + Air_Flow_2 = Air_Flow_1 * Volumen_Kulturbruehe / 60 #Modell F18=0.01 + cross_scetion = (math.pi / 4) * (Durchmesser_Tank**2) #modell F29 = 0.1823 + + #Feld 15 zuert berechnet dann 11 + superficial_velocity = Air_Flow_2 / cross_scetion #m/s + Leistungseintrag_Begast_Pg = Leistungseintrag_nicht_begast_P_1 / math.sqrt(1+float(Konstanten_fuer_P_begast["3"])*superficial_velocity/math.sqrt(9.81*Ruehrerdurchmesser)) #W =C48/WURZEL(1+SVERWEIS(Modell!$F$22;Daten!$I$43:$J$45;2;FALSCH)*C55/WURZEL(9,81*C44)) + #Leistungseintrag_nicht_begast_P_1 / math.sqrt(1+Konstanten_fuer_P_begast.get(Anzahl_Rushton_Impeller)*superficial_velocity/math.sqrt(9.81*Ruehrerdurchmesser)) + kla_pro_sek = 0.026 * ( ( Leistungseintrag_Begast_Pg / Volumen_Kulturbruehe) ** (0.4) ) * (superficial_velocity ** (0.5) ) #modell F18 = 0.01 + kla_pro_std = kla_pro_sek * 3600 #1/h + OTR_max = kla_pro_std * Sauerstoffoeslichkeit_array[i][4] #mmol/(l*h) + + + for i in range(phasen_anzahl): + if i == 0 : + kla_werte[0] = [float(drehzahl_1),float(Drehzahl_pro_sek),float(Dichte),float(dyn_Viskosität1),float(dyn_Viskositaet2),float(Ruehrerdurchmesser),float(Reynoldszahl_Re),float(Newton_Zahl_Ne),float(Leistungseintrag_nicht_begast_P_1),float(Leistungseintrag_nicht_begast_P_2),float(Leistungseintrag_nicht_begast_P_3),float(Leistungseintrag_Begast_Pg),float(Air_Flow_1),float(Air_Flow_2),float(cross_scetion),float(superficial_velocity),float(kla_pro_sek),float(kla_pro_std),float(OTR_max)] + else : #alle anderen phasen_anzahl + + kla_werte[i][0]=float(drehzahl[i]) #modell I9 + kla_werte[i][1]=float(kla_werte[i][0]/60) + kla_werte[i][2]=float(kla_werte[i-1][2]) + kla_werte[i][3]=float(kla_werte[i-1][3]) + kla_werte[i][4]=float(kla_werte[i-1][4]) + kla_werte[i][5]=float(kla_werte[i-1][5]) + kla_werte[i][6]=float(( kla_werte[i][2] * kla_werte[i][1] * kla_werte[i][5]**2 ) / kla_werte[i][4]) + kla_werte[i][7]=float(kla_werte[i-1][7]) + kla_werte[i][8]=float(( kla_werte[i][7] * Anzahl_Rushton_Impeller * kla_werte[i][2] * ( kla_werte[i][1] ** 3 ) * ( float(kla_werte[i][5]) ** 5)) ) #Modell!$F$22 = 3 + kla_werte[i][9]=float(kla_werte[i][8] / Volumen_Kulturbruehe ) #modell F18 = 0.01 + kla_werte[i][10]=float(kla_werte[i][9] / 1000) + kla_werte[i][12]=float(zuluft[i]) #W/m3 Modell l7 = 0.01 + kla_werte[i][13]=float(kla_werte[i][12] * Volumen_Kulturbruehe / 60) #ModellF18 = 0.01 + kla_werte[i][14]=float(math.pi / 4 * Durchmesser_Tank**2) #modell F29 = 0.1823 + + #Feld 11 braucht Ergebnis von 15. Deswegen 15 zuerst + kla_werte[i][15]=float(kla_werte[i][13] / kla_werte[i][14]) + kla_werte[i][11]=float(kla_werte[i][8] / math.sqrt(1 + float(Konstanten_fuer_P_begast["3"])* kla_werte[i][15] / math.sqrt( 9.81 * kla_werte[i][5] ) ) ) #modell F22= 3 #W =C48/WURZEL(1+SVERWEIS(Modell!$F$22;Daten!$I$43:$J$45;2;FALSCH)*C55/WURZEL(9,81*C44)) + + Leistungseintrag_Begast_Pg2 = kla_werte[i][11] + superficial_velocity2=kla_werte[i][15] + kla_werte[i][16]=float(0.026 * ((Leistungseintrag_Begast_Pg2 / Volumen_Kulturbruehe ) ** (0.4) ) * (superficial_velocity2 ** (0.5))) #Modell!$F$18 = 0.01 + kla_werte[i][17]=float(kla_werte[i][16] * 3600 ) + kla_werte[i][18]=float(kla_werte[i][17] * Sauerstoffoeslichkeit_array[i][4]) + + + + # Dezimalstellen nach komma grenzen, maximal 9 Stellen nach komma + for i in range(len(kla_werte)): + for j in range(len(kla_werte[i])): + try: + kla_werte[i][j] = round(float(kla_werte[i][j]), 9) + except ValueError: + pass + + return kla_werte + \ No newline at end of file diff --git a/src/Tasks/FermentExercises/optimierung.py b/src/Tasks/FermentExercises/optimierung.py new file mode 100644 index 0000000..ec795c5 --- /dev/null +++ b/src/Tasks/FermentExercises/optimierung.py @@ -0,0 +1,127 @@ +import optuna +import numpy as np +from scipy.integrate import solve_ivp +from differentialgleichung import ODE_Bioreactor_Monod +from numbers import Number + +def get_max_value(parameter, sol): + match parameter.lower(): + case "cx": + return np.max(sol.y[0]) + case "cp": + return np.max(sol.y[3]) + case "cs1": + return np.max(sol.y[1]) + case "cs2": + return np.max(sol.y[2]) + case "c_ox": + return np.max(sol.y[4]) + case "c_o2_out": + return np.max(sol.y[5]) + case "c_co2_out": + return np.max(sol.y[6]) + case _: + return None # Statt False, um None-Check durchzuführen + + +def get_min_value(parameter, sol): + match parameter.lower(): + case "cx": + return np.min(sol.y[0]) + case "cp": + return np.min(sol.y[3]) + case "cs1": + return np.min(sol.y[1]) + case "cs2": + return np.min(sol.y[2]) + case "c_ox": + return np.min(sol.y[4]) + case "c_o2_out": + return np.min(sol.y[5]) + case "c_co2_out": + return np.min(sol.y[6]) + case _: + return None # Statt False, um None-Check durchzuführen + +def objective(trial, t_start, t_end, y0, consts, t_span, varierendeParameter, maxParameter, minParameter): + #maxParameter : Parameter zu maximieren + #minParameter : Parameter zu minimieren + #varierendeParameter : Liste von Parametern mit Bereich, der bei dem Maximierungsprozess bzw Minimierungsprozess berücksichtigt werden + try: + # Liste der Parameter, die du überprüft werden + parameter_namen = ['Feed', 'Zuluft', 'Cs1', 'Cs2', 'C_ox', 'C_o2_out', 'C_Co2_out'] + + # Schleife, um durch die Parameter zu iterieren + for param in parameter_namen: + if param in varierendeParameter: + param_min = varierendeParameter[param]['min'] + param_max = varierendeParameter[param]['max'] + + # Dynamischer Name für den Parameter in suggest_uniform + param_value = trial.suggest_uniform(param.lower(), param_min, param_max) + + # Falls der Parameter "Feed" ist, speichere den Wert in consts[19] + if param.lower() == 'feed': + consts[19] = param_value + elif param.lower() == 'zuluft': + consts[3] = param_value + '''elif param.lower() == 'bolusc': + consts[19] = param_value #! an welcher Stelle bei consts liegt bolusC???? + elif param.lower() == 'bolousn': #! consts ist ein übergebende Parameter "const_array_array" in der Funktion berechnung in berechnungen.py + consts[19] = param_value #! const_array_array ist die Rückgabe der Funktion berechnung_der_Tabelle1 in berechnungen.py + elif param.lower() == 'drehzahl': + consts[19] = param_value + elif param.lower() == 'druck': + consts[19] = param_value + elif param.lower() == 'dauer': + consts[19] = param_value''' + + # Lösung des ODE-Systems + sol = solve_ivp(ODE_Bioreactor_Monod, [t_start, t_end], y0, args=(consts,), t_eval=t_span) + + # Initialisierung der Werte + max_value = float('-inf') + min_value = float('inf') + + if maxParameter: + check = get_max_value(maxParameter, sol) + if check is not None: + max_value = check + + if minParameter: + check = get_max_value(minParameter, sol) + if check is not None: + min_value = check + + cs = y0[1] + + if maxParameter and minParameter: + # Falls keine Werte ermittelt werden konnten + if max_value == float('-inf') or min_value == float('inf'): + print("Warnung: Kein gültiger Wert für maxParameter oder minParameter gefunden.") + return float('nan') + # Ziel: Maximiere max_value und minimiere min_value + objective_value = min_value - max_value # Maximierung von max_value und Minimierung von min_value + elif maxParameter and not minParameter: + if max_value == float('-inf'): + print("Warnung: Kein gültiger Wert für maxParameter oder minParameter gefunden.") + return float('nan') + objective_value = max_value # Maximierung von max_value + else : + check = get_min_value(minParameter, sol) + if check is not None: + min_value = check + if min_value == float('inf'): + print("Warnung: Kein gültiger Wert für maxParameter oder minParameter gefunden.") + return float('nan') + objective_value = min_value # Minimierung von min_value + + if sol.success: + trial.set_user_attr("sol", sol) + trial.set_user_attr("cs", cs) + + return objective_value + + except Exception as e: + print(f"Fehler in der Optimierung: {e}") + return float('nan') diff --git a/src/Tasks/FermentExercises/testtest.txt b/src/Tasks/FermentExercises/testtest.txt new file mode 100644 index 0000000..4b0a21d --- /dev/null +++ b/src/Tasks/FermentExercises/testtest.txt @@ -0,0 +1 @@ +testtest \ No newline at end of file diff --git a/src/Tasks/FermentExercises/wrapperFunctionCallPython.ts b/src/Tasks/FermentExercises/wrapperFunctionCallPython.ts new file mode 100644 index 0000000..a9d69be --- /dev/null +++ b/src/Tasks/FermentExercises/wrapperFunctionCallPython.ts @@ -0,0 +1,233 @@ +import { exec } from "child_process"; +import fs from "fs"; +const path = require("path"); + +function runPythonScript(scriptPath: string): Promise { + try { + return new Promise((resolve, reject) => { + const command = `python ${scriptPath}`; + console.log(command); + exec(command, (error, stdout, stderr) => { + if (error) { + reject(error.message); + return; + } + if (stderr) { + reject(stderr); + return; + } + resolve(stdout); + }); + }); + } catch { + console.log("Error"); + } +} + +function parseFrontendInputs(parameter: any) { + //Überprüfen, ob parameter ein String ist und wenn ja, ihn parsen + let frontendEingaben: any; + if (parameter === undefined || parameter === null) { + throw new Error("Parameter ist undefined oder null."); + } + if (typeof parameter === "string") { + try { + frontendEingaben = JSON.parse(parameter); + } catch (error) { + throw new Error("Fehler beim Parsen des JSON-Strings: " + error.message); + } + } else if (typeof parameter === "object") { + frontendEingaben = parameter; + } else { + throw new Error("Ungültiges Eingabeformat für parameter."); + } + return frontendEingaben; +} +function cleanAndMoveParameters(frontendEingaben : any) { + if (frontendEingaben && frontendEingaben.parameters) { + // Inhalt von "parameters" ins Hauptobjekt verschieben + Object.assign(frontendEingaben, frontendEingaben.parameters); + + // Entfernen der spezifizierten Schlüssel + delete frontendEingaben.parameters; + delete frontendEingaben.type; + delete frontendEingaben.task; + delete frontendEingaben.Paramter; + delete frontendEingaben.instruction; + delete frontendEingaben.language; + } + + return frontendEingaben; +} + +// Schlüsselnamen im Objekt ändern +function renameKey (obj: any, oldKey: string, newKey: string) { + if (obj.hasOwnProperty(oldKey)) { + obj[newKey] = obj[oldKey]; + delete obj[oldKey]; + } + for (const key in obj) { + if (obj.hasOwnProperty(key) && typeof obj[key] === "object" && obj[key] !== null) { + renameKey(obj[key], oldKey, newKey); + } + } + return obj; +}; + +function editSaveParams(parameter: any) { + //Überprüfen, ob parameter ein String ist und wenn ja, ihn parsen + let frontendEingaben : any = parseFrontendInputs(parameter); + frontendEingaben = cleanAndMoveParameters(frontendEingaben); + + frontendEingaben = renameKey(frontendEingaben, "nodeAmount", "Modell"); + frontendEingaben = renameKey(frontendEingaben, "seed", "PhasenAnzahl"); + + //Modell-Schlüssel umbennen + switch (frontendEingaben.Modell) { + case "S.cerevisiae": + frontendEingaben.Modell = "Modell-1"; + break; + case "E.coli": + frontendEingaben.Modell = "Modell-2"; + break; + case "Testorganismus": + frontendEingaben.Modell = "Modell-3"; + break; + } + let phasenanzahl = parseInt(frontendEingaben.PhasenAnzahl); + frontendEingaben.PhasenAnzahl = phasenanzahl; + + let zuluft = []; + let feed = []; + let drehzahl = []; + let druck = []; + let dauer = []; + let bolusC = []; + let bolusN = []; + for (let i = 0; i < phasenanzahl; i++) { + if (Array.isArray(frontendEingaben.userDataMatrix[i][0])) { + zuluft[i] = isNaN(parseFloat(frontendEingaben.userDataMatrix[i][0][0])) + ? 0 + : parseFloat(frontendEingaben.userDataMatrix[i][0][0]); + feed[i] = isNaN(parseFloat(frontendEingaben.userDataMatrix[i][2][0])) + ? 0 + : parseFloat(frontendEingaben.userDataMatrix[i][2][0]); + drehzahl[i] = isNaN(parseFloat(frontendEingaben.userDataMatrix[i][4][0])) + ? 0 + : parseFloat(frontendEingaben.userDataMatrix[i][4][0]); + druck[i] = isNaN(parseFloat(frontendEingaben.userDataMatrix[i][5][0])) + ? 0 + : parseFloat(frontendEingaben.userDataMatrix[i][5][0]); + dauer[i] = isNaN(parseFloat(frontendEingaben.userDataMatrix[i][6][0])) + ? 0 + : parseFloat(frontendEingaben.userDataMatrix[i][6][0]); + bolusC[i] = isNaN(parseFloat(frontendEingaben.userDataMatrix[i][1][0])) + ? 0 + : parseFloat(frontendEingaben.userDataMatrix[i][1][0]); + bolusN[i] = isNaN(parseFloat(frontendEingaben.userDataMatrix[i][3][0])) + ? 0 + : parseFloat(frontendEingaben.userDataMatrix[i][3][0]); + } else { + zuluft[i] = isNaN(parseFloat(frontendEingaben.userDataMatrix[i][0])) + ? 0 + : parseFloat(frontendEingaben.userDataMatrix[i][0]); + feed[i] = isNaN(parseFloat(frontendEingaben.userDataMatrix[i][2])) + ? 0 + : parseFloat(frontendEingaben.userDataMatrix[i][2]); + drehzahl[i] = isNaN(parseFloat(frontendEingaben.userDataMatrix[i][4])) + ? 0 + : parseFloat(frontendEingaben.userDataMatrix[i][4]); + druck[i] = isNaN(parseFloat(frontendEingaben.userDataMatrix[i][5])) + ? 0 + : parseFloat(frontendEingaben.userDataMatrix[i][5]); + dauer[i] = isNaN(parseFloat(frontendEingaben.userDataMatrix[i][6])) + ? 0 + : parseFloat(frontendEingaben.userDataMatrix[i][6]); + bolusC[i] = isNaN(parseFloat(frontendEingaben.userDataMatrix[i][1])) + ? 0 + : parseFloat(frontendEingaben.userDataMatrix[i][1]); + bolusN[i] = isNaN(parseFloat(frontendEingaben.userDataMatrix[i][3])) + ? 0 + : parseFloat(frontendEingaben.userDataMatrix[i][3]); + } + } + + delete frontendEingaben.userDataMatrix; + + frontendEingaben.Dauer = dauer; + frontendEingaben.Druck = druck; + frontendEingaben.Drehzahl = drehzahl; + frontendEingaben.Zuluft = zuluft; + frontendEingaben.BolusC = bolusC; + frontendEingaben.Feed = feed; + frontendEingaben.BolusN = bolusN; + + frontendEingaben.temperatur =isNaN(parseFloat(frontendEingaben.Temperatur)) ? 0 : parseFloat(frontendEingaben.Temperatur); + frontendEingaben.startbiomasse = isNaN(parseFloat(frontendEingaben.BTM)) ? 0 : parseFloat(frontendEingaben.BTM); + frontendEingaben.do = isNaN(parseFloat(frontendEingaben.DO)) ? 0 : parseFloat(frontendEingaben.DO) ; + delete frontendEingaben.Temperatur; + delete frontendEingaben.BTM; + delete frontendEingaben.DO; + + let dataTmp:any = frontendEingaben.maxParameter; + delete frontendEingaben.maxParameter; + frontendEingaben.maxParameter = dataTmp; + dataTmp = frontendEingaben.minParameter; + delete frontendEingaben.minParameter; + frontendEingaben.minParameter=dataTmp; + dataTmp = frontendEingaben.varierendeParameter; + delete frontendEingaben.varierendeParameter; + frontendEingaben.varierendeParameter=dataTmp; + + /* + let maxParameter: string = ''; + let minParameter: string = ''; + let varierendeParameter : object = {}; + maxParameter = frontendEingaben.maxParameter; + minParameter = frontendEingaben.minParameter; + varierendeParameter = frontendEingaben.varierendeParameter;*/ + + delete frontendEingaben.userDataInputFelder; + delete frontendEingaben.checkUserDataValidity; + + + + // Pfad zur JSON-Datei definieren + const filePfade = path.join(__dirname, "/interne_daten/FrontendEingaben.json"); + + // JSON.stringify mit einer Replacer-Funktion + let jsonString = JSON.stringify(frontendEingaben, null, 4); + + // Datei schreiben + try { + fs.writeFileSync(filePfade, jsonString, "utf-8"); + return true; + } catch (error) { + return false; + } + + + +} + +export async function generateFermentExercises(parameter: any) { + let check = editSaveParams(parameter) + if (check) { + let result = { foo: "bar" }; + try { + let pythonScriptPath = "generateFermentExercises.py"; + pythonScriptPath = path.join(__dirname, pythonScriptPath); + (await runPythonScript(pythonScriptPath)) as any; + + result = JSON.parse(fs.readFileSync(path.join(__dirname, "data.json"), "utf-8")); + const filePath = path.join(__dirname, "data.json"); + fs.writeFileSync(filePath, JSON.stringify(result, null, 2), "utf-8"); + //console.log(result); + //insofern kryptsiche Zeichen in der JSON Ausgabe vorhanden sind .> Workaround mittels File + } catch (error) { + console.error("Error running Python script:", error); + } + return result; + } else console.error("Die Daten aus Frontend konnten nicht in JSON-Datei gespeichert"); + return null; +} \ No newline at end of file diff --git a/src/Tasks/Reakt/Input/__init__.py b/src/Tasks/Reakt/Input/__init__.py new file mode 100644 index 0000000..0f2dcb8 --- /dev/null +++ b/src/Tasks/Reakt/Input/__init__.py @@ -0,0 +1,4 @@ + + +#Das Hinzufügen der '__init__.py'-Datei im Input-Verzeichnis ist wichtig, +#damit Python das Input-Verzeichnis als Paket behandelt und die darin enthaltenen Module importieren kann. \ No newline at end of file diff --git a/src/Tasks/Reakt/Input/inputBaseClass.py b/src/Tasks/Reakt/Input/inputBaseClass.py new file mode 100644 index 0000000..d49cb1c --- /dev/null +++ b/src/Tasks/Reakt/Input/inputBaseClass.py @@ -0,0 +1,14 @@ +from abc import ABC, abstractmethod + + + +class InputBase(ABC): + + @abstractmethod + def find_pfad(): + pass + + @abstractmethod + def ladeJson(self): + pass + diff --git a/src/Tasks/Reakt/Input/json_Input.py b/src/Tasks/Reakt/Input/json_Input.py new file mode 100644 index 0000000..b84ed55 --- /dev/null +++ b/src/Tasks/Reakt/Input/json_Input.py @@ -0,0 +1,81 @@ +import os +import json +from Input.inputBaseClass import InputBase + +class JsonInput(InputBase): + + + + def __init__(self,datei_name): #Konstruktor + self.__jsonName = datei_name # private variable + + # Deklaration des Attributs außerhalb des Konstruktors + __data = None + + def set_data(self,data): + self.__data=data + + def get_data(self): + return self.__data + + def get_jsonName(self): + return self.__jsonName + + def set_jsonName(self, value): + self.__jsonName = value + + + + + + def find_pfad(self): + root_directory = os.path.abspath('src/Tasks/Reakt') # Den absoluten Pfad des Projektnamens ermitteln + + for root, dirs, files in os.walk(root_directory): + for file in files: + if file.lower() == self.__jsonName.lower(): # Wenn die Datei gefunden wurde + return os.path.join(root, file) # Dateipfad zurückgeben, sobald die Datei gefunden wurde + return None # Wenn die Datei nicht gefunden wurde, wird None zurückgegeben + + + def ladeJson(self): + # Vollständiger Pfad zur JSON-Datei + json_path = self.find_pfad() + if json_path is None : + print('Pfad zur Datei nicht gefunden.!!!') + return None + + print('Datei gefunden:', json_path) # Fügen Sie Debugging-Ausgabe hinzu + try: + # Öffne die JSON-Datei und lade sie + with open(json_path, 'r') as file: + data = json.load(file) + self.set_data(data) + + except FileNotFoundError: + print(f"Die Datei '{self.__jsonName}' konnte nicht geladen werden.") + return None + + + def get_Value(self): + + # JSON-String zu Python-Dictionary konvertieren + data = self.__data + + # Array initialisieren + result = [] + + for key, value in data.items(): + if isinstance(value, dict): + result.extend(list(value.values())) + else: + # Wenn der Wert kein Dictionary ist oder kein Array enthält + result.append(value) + + for i, r in enumerate(result): + if isinstance(r, int): + result[i]=int(r) + elif isinstance(r,list): + result[i] = [float(val) for val in r] + + return result diff --git a/src/Tasks/Reakt/Reaktdata.json b/src/Tasks/Reakt/Reaktdata.json new file mode 100644 index 0000000..2c0ea94 --- /dev/null +++ b/src/Tasks/Reakt/Reaktdata.json @@ -0,0 +1,300 @@ +{ + "data_1": { + "labels": [ + 0, + 7.007007007007007, + 14.014014014014014, + 21.02102102102102, + 28.02802802802803, + 35.03503503503504, + 42.04204204204204, + 49.04904904904905, + 56.05605605605606, + 63.06306306306306, + 70.07007007007007, + 77.07707707707708, + 84.08408408408408, + 91.09109109109109, + 98.0980980980981, + 105.10510510510511, + 112.11211211211211, + 119.11911911911912, + 126.12612612612612, + 133.13313313313313, + 140.14014014014015, + 147.14714714714714, + 154.15415415415416, + 161.16116116116117, + 168.16816816816817, + 175.17517517517518, + 182.18218218218217, + 189.1891891891892, + 196.1961961961962, + 203.2032032032032 + ], + "datasets": [ + { + "label": "n(H2O2)", + "data": [ + 1, + 0.901515811525366, + 0.8129139788984083, + 0.7331429430284808, + 0.661284522196426, + 0.5965810483353217, + 0.5383268917692027, + 0.4858659913970146, + 0.43859185469261547, + 0.39594755770477547, + 0.3574311054369096, + 0.3226482120705263, + 0.29126959177651535, + 0.2629830916983592, + 0.2374929311653404, + 0.21451970169254225, + 0.19380036698084802, + 0.17508826291694168, + 0.1581542467974701, + 0.14282434668147637, + 0.12896958913216763, + 0.11646520485793649, + 0.10519123576831946, + 0.09503253497399743, + 0.08587876678679549, + 0.07762440671968265, + 0.07016874148677242, + 0.06341586900332223, + 0.05728652376788457, + 0.051737728561117 + ], + "borderColor": "#66c2a5", + "backgroundColor": "#66c2a5", + "tension": 0.1 + }, + { + "label": "n(H2O)", + "data": [ + 0, + 0.09848418847463415, + 0.18708602110159175, + 0.2668570569715193, + 0.33871547780357414, + 0.40341895166467834, + 0.46167310823079744, + 0.5141340086029855, + 0.5614081453073846, + 0.6040524422952246, + 0.6425688945630905, + 0.6773517879294738, + 0.7087304082234848, + 0.7370169083016409, + 0.7625070688346597, + 0.7854802983074579, + 0.8061996330191522, + 0.8249117370830585, + 0.84184575320253, + 0.8571756533185237, + 0.8710304108678325, + 0.8835347951420637, + 0.8948087642316807, + 0.9049674650260027, + 0.9141212332132047, + 0.9223755932803175, + 0.9298312585132277, + 0.9365841309966779, + 0.9427134762321157, + 0.9482622714388831 + ], + "borderColor": "#fc8d62", + "backgroundColor": "#fc8d62", + "tension": 0.1 + }, + { + "label": "n(O2)", + "data": [ + 0, + 0.049242094237317076, + 0.09354301055079588, + 0.13342852848575965, + 0.16935773890178707, + 0.20170947583233917, + 0.23083655411539872, + 0.25706700430149276, + 0.2807040726536923, + 0.3020262211476123, + 0.32128444728154526, + 0.3386758939647369, + 0.3543652041117424, + 0.36850845415082045, + 0.38125353441732984, + 0.39274014915372896, + 0.4030998165095761, + 0.41245586854152927, + 0.420922876601265, + 0.4285878266592619, + 0.43551520543391625, + 0.44176739757103184, + 0.4474043821158403, + 0.45248373251300134, + 0.45706061660660235, + 0.46118779664015874, + 0.46491562925661384, + 0.46829206549833896, + 0.4713567381160578, + 0.47413113571944154 + ], + "borderColor": "#8da0cb", + "backgroundColor": "#8da0cb", + "tension": 0.1 + } + ] + }, + "data_2": { + "labels": [ + 0, + 7.007007007007007, + 14.014014014014014, + 21.02102102102102, + 28.02802802802803, + 35.03503503503504, + 42.04204204204204, + 49.04904904904905, + 56.05605605605606, + 63.06306306306306, + 70.07007007007007, + 77.07707707707708, + 84.08408408408408, + 91.09109109109109, + 98.0980980980981, + 105.10510510510511, + 112.11211211211211, + 119.11911911911912, + 126.12612612612612, + 133.13313313313313, + 140.14014014014015, + 147.14714714714714, + 154.15415415415416, + 161.16116116116117, + 168.16816816816817, + 175.17517517517518, + 182.18218218218217, + 189.1891891891892, + 196.1961961961962, + 203.2032032032032 + ], + "datasets": [ + { + "label": "Temperatur [°C]", + "data": [ + 20, + 20.02308149715563, + 20.043846890864383, + 20.062542632445354, + 20.079383913890958, + 20.09454830800351, + 20.108201191475573, + 20.12049632373464, + 20.131575846943164, + 20.141570285998547, + 20.150597292234117, + 20.15874927344791, + 20.16610340355023, + 20.172732841038712, + 20.17870690730206, + 20.18409108662003, + 20.18894702616344, + 20.193332535994166, + 20.197301319724318, + 20.200894150730022, + 20.204141256198618, + 20.207071878002267, + 20.209714130423748, + 20.212095000156452, + 20.214240346304383, + 20.216174900382164, + 20.217922266315032, + 20.21950492043884, + 20.220941440014304, + 20.222241897506677 + ], + "borderColor": "#e78ac3", + "backgroundColor": "#e78ac3", + "tension": 0.1 + } + ] + }, + "data_3": { + "labels": [ + 0, + 7.007007007007007, + 14.014014014014014, + 21.02102102102102, + 28.02802802802803, + 35.03503503503504, + 42.04204204204204, + 49.04904904904905, + 56.05605605605606, + 63.06306306306306, + 70.07007007007007, + 77.07707707707708, + 84.08408408408408, + 91.09109109109109, + 98.0980980980981, + 105.10510510510511, + 112.11211211211211, + 119.11911911911912, + 126.12612612612612, + 133.13313313313313, + 140.14014014014015, + 147.14714714714714, + 154.15415415415416, + 161.16116116116117, + 168.16816816816817, + 175.17517517517518, + 182.18218218218217, + 189.1891891891892, + 196.1961961961962, + 203.2032032032032 + ], + "datasets": [ + { + "label": "Umsatz H2O2", + "data": [ + 0, + 0.09848418847463403, + 0.18708602110159167, + 0.2668570569715192, + 0.338715477803574, + 0.40341895166467834, + 0.4616731082307973, + 0.5141340086029854, + 0.5614081453073845, + 0.6040524422952245, + 0.6425688945630904, + 0.6773517879294737, + 0.7087304082234847, + 0.7370169083016408, + 0.7625070688346596, + 0.7854802983074578, + 0.806199633019152, + 0.8249117370830583, + 0.8418457532025299, + 0.8571756533185236, + 0.8710304108678324, + 0.8835347951420636, + 0.8948087642316805, + 0.9049674650260026, + 0.9141212332132045, + 0.9223755932803174, + 0.9298312585132276, + 0.9365841309966778, + 0.9427134762321154, + 0.948262271438883 + ], + "borderColor": "#FFD700", + "backgroundColor": "#FFD700", + "tension": 0.1 + } + ] + } +} \ No newline at end of file diff --git a/src/Tasks/Reakt/generateReactionData.py b/src/Tasks/Reakt/generateReactionData.py new file mode 100644 index 0000000..e9264ac --- /dev/null +++ b/src/Tasks/Reakt/generateReactionData.py @@ -0,0 +1,157 @@ +import numpy as np +from scipy.integrate import solve_ivp +import pandas as pd +import json + +from Input.json_Input import JsonInput + + +# === Reaktionssystem === +def reaktionssystem(t, y): + cH2O2, cH2O, cO2 = y + nH2O2 = cH2O2 * v + UH2O2 = (nH2O2_0 - nH2O2) / nH2O2_0 + T = T_Start + dTad * UH2O2 + k = 0.000047 * T**2 - 0.0033484 * T + 0.0629815 + r_H2O2 = -k * cH2O2 + return [r_H2O2, -r_H2O2, -0.5 * r_H2O2] + +# === Abbruchbedingung === +def abbruch_bedingung(t, y): + cH2O2 = y[0] + nH2O2 = cH2O2 * v + UH2O2 = (nH2O2_0 - nH2O2) / nH2O2_0 + return 0.95 - UH2O2 + + + + +# read user inputs +userInputObject = JsonInput('FrontendEingaben.json') +userInputObject.ladeJson() +userInputs = userInputObject.get_data() + +phaseNumber = userInputs['phaseNumber'] +process = userInputs['process'] +matrixDataObj = userInputs['matrixData'] + + + +VH2O2_AS = matrixDataObj['VH2O2_AS'][0] # Liter – Volumen H2O2 Zugabe in Reaktor +cH2O2_AS = matrixDataObj['CH2O2_AS'][0] # mol/L – Konzentration H2O2 Zugabe +V_Start = matrixDataObj['V_Start'][0] # Liter – Wasser-Startvolumen +T_Start = matrixDataObj['T_Start'][0] # °C – Starttemperatur + + +''' +# === Nutzereingaben === +VH2O2_AS = 5.0 # Liter – Volumen H2O2 Zugabe in Reaktor +cH2O2_AS = 12.0 # mol/L – Konzentration H2O2 Zugabe +V_Start = 100 # Liter – Wasser-Startvolumen +T_Start = 25.0 # °C – Starttemperatur +''' + +# === Berechnungen === +nH2O2_AS = cH2O2_AS * VH2O2_AS +cH2O2_Start = nH2O2_AS / V_Start +dTad = (cH2O2_Start * 98.2) / (4.19 * 2 * 1) + +# === Startbedingungen === +cH2O2_0 = cH2O2_Start +cH2O_0 = 0.0 +cO2_0 = 0.0 +v = V_Start +nH2O2_0 = cH2O2_0 * v + + + +abbruch_bedingung.terminal = True +abbruch_bedingung.direction = -1 + +# === Lösung === +t_span = (0, 7000) +t_eval = np.linspace(t_span[0], t_span[1], 1000) +y0 = [cH2O2_0, cH2O_0, cO2_0] + +sol = solve_ivp( + reaktionssystem, t_span, y0, + t_eval=t_eval, + events=abbruch_bedingung +) + +# === Auswertung === +time = sol.t +cH2O2, cH2O, cO2 = sol.y +nH2O2 = cH2O2 * v +nH2O = cH2O * v +nO2 = cO2 * v +UH2O2 = (nH2O2_0 - nH2O2) / nH2O2_0 +T = T_Start + dTad * UH2O2 + +# === JSON für Diagramm erstellen === +def generateReactionData(): + data = { + "data_1": { + "labels": time.tolist(), + "datasets": [ + { + "label": "n(H2O2)", + "data": nH2O2.tolist(), + "borderColor": "#66c2a5", + "backgroundColor": "#66c2a5", + "tension": 0.1 + }, + { + "label": "n(H2O)", + "data": nH2O.tolist(), + "borderColor": "#fc8d62", + "backgroundColor": "#fc8d62", + "tension": 0.1 + }, + { + "label": "n(O2)", + "data": nO2.tolist(), + "borderColor": "#8da0cb", + "backgroundColor": "#8da0cb", + "tension": 0.1 + } + ] + }, + "data_2": { + "labels": time.tolist(), + "datasets": [ + { + "label": "Temperatur [°C]", + "data": T.tolist(), + "borderColor": "#e78ac3", + "backgroundColor": "#e78ac3", + "tension": 0.1 + } + + ] + }, + "data_3": { + "labels": time.tolist(), + "datasets": [ + { + "label": "Umsatz H2O2", + "data": UH2O2.tolist(), + "borderColor": "#FFD700", + "backgroundColor": "#FFD700", + "tension": 0.1 + } + ] + } + } + return data +# === JSON speichern === +with open('./src/Tasks/Reakt/Reaktdata.json', 'w') as output: + json.dump(generateReactionData(), output, indent=2) + +print(" JSON-Datei erfolgreich erstellt: ./src/Tasks/Reakt/Reaktdata.json") + +# === Status === +if sol.status == 1: + print(f" Abbruch bei t = {sol.t_events[0][0]:.2f} h - Umsatz 95 % erreicht.") +else: + print("Simulation lief bis zur maximalen Zeit.") diff --git a/src/Tasks/Reakt/wrapperFunctionCallPython.ts b/src/Tasks/Reakt/wrapperFunctionCallPython.ts new file mode 100644 index 0000000..9e7ae39 --- /dev/null +++ b/src/Tasks/Reakt/wrapperFunctionCallPython.ts @@ -0,0 +1,132 @@ +import { exec } from "child_process"; +import fs from "fs"; +const path = require("path"); + +function runPythonScript(scriptPath: string): Promise { + try { + return new Promise((resolve, reject) => { + const command = `python ${scriptPath}`; + console.log(command); + exec(command, (error, stdout, stderr) => { + if (error) { + reject(error.message); + return; + } + if (stderr) { + reject(stderr); + return; + } + resolve(stdout); + }); + }); + } catch { + console.log("Error"); + } +} + +function parseFrontendInputs(parameter: any) { + //Überprüfen, ob parameter ein String ist und wenn ja, ihn parsen + let frontendData: any; + if (parameter === undefined || parameter === null) { + throw new Error("Parameter ist undefined oder null."); + } + if (typeof parameter === "string") { + try { + frontendData = JSON.parse(parameter); + } catch (error) { + throw new Error("Fehler beim Parsen des JSON-Strings: " + error.message); + } + } else if (typeof parameter === "object") { + frontendData = parameter; + } else { + throw new Error("Ungültiges Eingabeformat für parameter."); + } + return frontendData; +} +function cleanAndMoveParameters(frontendData : any) { + if (frontendData && frontendData.parameters) { + // Inhalt von "parameters" ins Hauptobjekt verschieben + Object.assign(frontendData, frontendData.parameters); + + // Entfernen der spezifizierten Schlüssel + delete frontendData.parameters; + delete frontendData.type; + delete frontendData.task; + delete frontendData.Paramter; + delete frontendData.instruction; + delete frontendData.language; + } + + return frontendData; +} + +function setColumnLabels(frontendData : any){ + let matrixData = frontendData['matrixData']; + + + let vH2O2_AS_tmpArray = []; + let cH2O2_AS_tmpArray = []; + let v_Start_tmpArray = []; + let t_Start_tmpArray = []; + + for( let i=0 ; i < matrixData.length ; i++){ + vH2O2_AS_tmpArray[i] = matrixData[i][0]; + cH2O2_AS_tmpArray[i] = matrixData[i][1]; + v_Start_tmpArray[i] = matrixData[i][2]; + t_Start_tmpArray[i] = matrixData[i][3]; + } + + let tmpArray : Object = { + 'VH2O2_AS' : vH2O2_AS_tmpArray, + 'CH2O2_AS' : cH2O2_AS_tmpArray, + 'V_Start' : v_Start_tmpArray, + 'T_Start' : t_Start_tmpArray + }; + + + frontendData['matrixData'] = tmpArray; + return frontendData; +} + +function SaveUserInputs(parameter: any) { + //Überprüfen, ob parameter ein String ist und wenn ja, ihn parsen + let frontendData : any = parseFrontendInputs(parameter); + frontendData = cleanAndMoveParameters(frontendData); + frontendData = setColumnLabels(frontendData); + // Pfad zur JSON-Datei definieren + const filePfade = path.join(__dirname, "/interneDaten/FrontendEingaben.json"); + + // JSON.stringify mit einer Replacer-Funktion + let jsonString = JSON.stringify(frontendData, null, 4); + + // Datei schreiben + try { + fs.writeFileSync(filePfade, jsonString, "utf-8"); + return true; + } catch (error) { + return false; + } +} + +export async function generateReactionData(parameter: any) { + SaveUserInputs(parameter); + if (true) { + let result = { foo: "bar" }; + try { + let pythonScriptPath = "generateReactionData.py"; + pythonScriptPath = path.join(__dirname, pythonScriptPath); + (await runPythonScript(pythonScriptPath)) as any; + + result = JSON.parse(fs.readFileSync(path.join(__dirname, "Reaktdata.json"), "utf-8")); + const filePath = path.join(__dirname, "Reaktdata.json"); + fs.writeFileSync(filePath, JSON.stringify(result, null, 2), "utf-8"); + + //console.log(result); + //insofern kryptsiche Zeichen in der JSON Ausgabe vorhanden sind .> Workaround mittels File + } catch (error) { + console.error("Error running Python script:", error); + } + return result; + } else console.error("Die Daten aus Frontend konnten nicht in JSON-Datei gespeichert"); + return null; +} \ No newline at end of file diff --git a/src/server/TaskWrapper.ts b/src/server/TaskWrapper.ts index f819a33..b5c2cce 100644 --- a/src/server/TaskWrapper.ts +++ b/src/server/TaskWrapper.ts @@ -6,13 +6,11 @@ import { InterpolationTaskGenerator } from "../Legacy/Tasks/geoInterpolation/Geo import { ShortestPathTaskGenerator } from "../Legacy/Tasks/shortestPath/MunkeltWorker"; import { EPKTaskGenerator } from "../Legacy/Tasks/EPK/EPKTask"; import { SchedulingTaskGenerator } from "../Legacy/Tasks/scheduling/Task"; -import { selectSubstitution } from "../Tasks/Chemistry/SubstitutionSelector"; -import { clusterAnalysisMain } from "../Tasks/ClusterAnalysis/wrapperFunctionCallPython"; - -import { DataSamplingGenerator } from "../Tasks/DecisionTrees/WrapperDataSampler"; -import { DecisionTreeTaskGenerator } from "../Tasks/DecisionTrees/Task"; -import { DecisionTreeValidator } from "../Tasks/DecisionTrees/WrapperValidateDecisionTree"; - +import { generateFermentationDataMain } from "../Tasks/Ferment/wrapperFunctionCallPython"; +import { generateFermentExercises } from "../Tasks/FermentExercises/wrapperFunctionCallPython"; +import { generateFermentationFeedBack } from "../Tasks/Ferment/wrapperFunctionCallPython"; +import { generateReactionData } from "../Tasks/Reakt/wrapperFunctionCallPython"; +import { generateExperimentierenDataMain } from "../Tasks/Experimentieren/wrapperFunctionCallPython"; import fs from "fs"; import path from "path"; @@ -69,11 +67,11 @@ const generators: { [key: string]: any } = { ShortestPathTaskGenerator: ShortestPathTaskGenerator, EPKTaskGenerator: EPKTaskGenerator, SchedulingTaskGenerator: SchedulingTaskGenerator, - DataSamplingGenerator: DataSamplingGenerator, - DecisionTreeTaskGenerator: DecisionTreeTaskGenerator, - DecisionTreeValidator: DecisionTreeValidator, - selectSubstitution: selectSubstitution, - clusterAnalysisMain: clusterAnalysisMain, + generateFermentationDataMain: generateFermentationDataMain, + generateFermentExercises: generateFermentExercises, + generateFermentationFeedBack: generateFermentationFeedBack, + generateReactionData: generateReactionData, + generateExperimentierenDataMain: generateExperimentierenDataMain }; export interface IInstructionConfiguration { @@ -138,7 +136,6 @@ export const executeTask = async (instructionConfiguration: IInstructionConfigur // return await parsedFunctions[instruction](instructionConfiguration); try { const { type, instruction } = instructionConfiguration; - //console.log(type,instruction,taskWorkers[`${type}Task`]); const func = await taskWorkers[`${type}Task`][instruction]; const result = await func(instructionConfiguration); return result; diff --git a/src/server/experimentalTasks/SQL.json b/src/server/experimentalTasks/SQL.json index 50c0f47..60f77bc 100644 --- a/src/server/experimentalTasks/SQL.json +++ b/src/server/experimentalTasks/SQL.json @@ -1,306 +1,304 @@ { - "API": [ - { - "task": "sql", - "name": "generateQuery", - "httpMethod": "post", - "params": { "parameters": "object", "schema": "string", "language": "string" } - }, - { - "task": "sql", - "name": "validateQuery", - "httpMethod": "post", - "params": { "parameters": "object" } - }, - { - "task": "sql", - "name": "generateERD", - "httpMethod": "post", - "params": { "parameters": "object" } - }, - { - "task": "sql", - "name": "fetchERD", - "httpMethod": "post", - "params": { "parameters": "object" } - } - ], - "Worker": { - "sqlTask": { - "minConsumers": 1, - "consumerInstructions": { - "generateQuery": { - "dependencies": ["sqlQueryGenerator"], - "body": "async (taskDescription) => { return await sqlQueryGenerator(taskDescription); }" - }, - "validateQuery": { - "dependencies": ["sqlQueryValidator"], - "body": "async (taskDescription) => { return await sqlQueryValidator(taskDescription); }" - }, - "importDatabase": { - "dependencies": ["importDatabase"], - "body": "async (taskDescription) => { return await importDatabase(taskDescription); }" - }, - "fetchERD": { - "dependencies": ["fetchERD"], - "body": "async (taskDescription) => { return await fetchERD(taskDescription); }" - } - } - } - }, - "UI": { - "currentTask": "sql", - "taskData": {}, - "rootNode": 0, - "topology": [[0, null, null]], - "edges": { - "0": [] - }, - "currentNode": 0, - "nodes": { - "0": { - "zoomScale": 1, - "layouts": { - "sm": [ - { "x": 32, "y": 31, "w": 2, "h": 2, "i": 0, "static": false }, - { "x": 32, "y": 29, "w": 2, "h": 2, "i": 1, "static": false }, - { "x": 34, "y": 29, "w": 2, "h": 2, "i": 2, "static": false }, - { "x": 34, "y": 31, "w": 2, "h": 2, "i": 3, "static": false }, - { "x": 36, "y": 31, "w": 2, "h": 2, "i": 4, "static": false } - ], - "md": [ - { "x": 32, "y": 31, "w": 2, "h": 2, "i": 0, "static": false }, - { "x": 32, "y": 29, "w": 2, "h": 2, "i": 1, "static": false }, - { "x": 34, "y": 29, "w": 2, "h": 2, "i": 2, "static": false }, - { "x": 34, "y": 31, "w": 2, "h": 2, "i": 3, "static": false }, - { "x": 36, "y": 31, "w": 2, "h": 2, "i": 4, "static": false } - ], - "lg": [ - { "x": 38, "y": 29, "w": 3, "h": 4, "i": 0, "static": false }, - { "x": 32, "y": 29, "w": 2, "h": 3, "i": 1, "static": false }, - { "x": 34, "y": 29, "w": 4, "h": 2, "i": 2, "static": false }, - { "x": 34, "y": 31, "w": 2, "h": 2, "i": 3, "static": false }, - { "x": 36, "y": 31, "w": 2, "h": 2, "i": 4, "static": false } - ] - }, - "hints": { - "active": false, - "current": 0, - "descriptions": [ - "Generiere eine beliebige SQL-Abfrage.
Ermittle nun anhand der Aufgabenstellung und des Datenbankdiagramms die nötigen Felder, Tabellen und Joins um die Abfrage zu bilden.
Trage das Statement in das Code-Widget ein und klicke auf 'Ausführen' um das Ergebnis zu überprüfen." - ] - }, - "modals": [ - { - "trigger": { - "type": "success" - }, - "content": { - "header": "Herzlichen Glückwunsch!", - "body": "Sie haben die Aufgabe erfolgreich gelöst!", - "footer": { - "buttons": [ - { "type": "close", "label": "Zurück", "parameters": {} }, - { "type": "route", "label": "Zur Übersicht", "parameters": { "route": "TaskOverview" } } - ] - } - }, - "active": false - } - ], - "components": { - "0": { - "type": "DOTGraph", - "name": "DB", - "isValid": true, - "dependencies": { "dotDescription": "taskData__dotDescription" }, - "component": {} - }, - "1": { - "type": "TaskConfiguration", - "name": "Konfiguration", - "isValid": true, - "component": { - "title": "Parameter Konfiguration", - "actions": [ - { - "instruction": "generateQuery", - "type": "fetchData", - "label": "Generieren!", - "dependsOn": ["joinRange", "columnRange", "constraintRange"] - } - ], - "form": { - "schema": { - "formType": "DropdownFormField", - "label": "Datenbank", - "type": "string", - "description": "Zur Verfügung stehende Datenbanken", - "action": { "instruction": "fetchERD", "type": "fetchData", "key": "schema" }, - "initial": "northwind", - "options": ["northwind", "sports", "airport"], - "presets": { - "easy": "airport", - "medium": "northwind", - "hard": "sports" - } - }, - "joinRange": { - "formType": "RangeFormField", - "label": "Anzahl Joins", - "type": "number", - "description": "Bestimmt die Anzahl an Joins", - "initial": { - "lowerValue": 0, - "upperValue": 2 - }, - "step": 1, - "boundaries": { "min": 0, "max": 5 }, - "presets": { - "easy": 0, - "medium": 2, - "hard": 3 - } - }, - "columnRange": { - "formType": "RangeFormField", - "label": "Anzahl Spalten", - "type": "number", - "description": "Bestimmt die Anzahl an Spalten", - "initial": { - "lowerValue": 1, - "upperValue": 4 - }, - "step": 1, - "boundaries": { "min": 1, "max": 5 }, - "presets": { - "easy": 1, - "medium": 3, - "hard": 5 - } - }, - "constraintRange": { - "formType": "RangeFormField", - "label": "Anzahl Bedingungen", - "type": "number", - "description": "Bestimmt die Anzahl an Bedingungen", - "initial": { - "lowerValue": 0, - "upperValue": 3 - }, - "step": 1, - "boundaries": { "min": 0, "max": 6 }, - "presets": { - "easy": 0, - "medium": 2, - "hard": 4 - } - }, - "allowAggregates": { - "formType": "CheckboxFormField", - "label": "Aggregat", - "type": "checkbox", - "description": "Bestimmt ob Aggregationen generiert werden", - "initial": false, - "presets": { - "easy": false, - "medium": true, - "hard": true - } - }, - "forceHavingClause": { - "formType": "CheckboxFormField", - "label": "Having-Clause", - "type": "checkbox", - "description": "Bestimmt ob eine Having Clause generiert wird", - "initial": false, - "presets": { - "easy": false, - "medium": true, - "hard": true - } - }, - "orderBy": { - "formType": "CheckboxFormField", - "label": "OrderBy", - "type": "checkbox", - "description": "Bestimmt ob ein Order By Statement generiert wird", - "initial": true, - "presets": { - "easy": true, - "medium": true, - "hard": true - } - }, - "seed": { - "formType": "ValueFormField", - "label": "Seed", - "type": "text", - "description": "Setze einen beliebigen Wert um die Generierung deterministisch und reproduzierbar zu machen", - "value": "", - "presets": { - "easy": "", - "medium": "", - "hard": "" - } - } - } - } - }, - "2": { - "type": "CodeEditor", - "name": "SQL-Query", - "isValid": true, - "methods": { - "showSolution": { "description": "Zeig mir die Lösung", "impact": 0 }, - "copyToClipboard": { "description": "Kopieren!", "impact": "0" } - }, - "contextMenu": { + "API": [ + { + "task": "sql", + "name": "generateQuery", + "httpMethod": "post", + "params": { "parameters": "object", "schema": "string", "language": "string" } + }, + { + "task": "sql", + "name": "validateQuery", + "httpMethod": "post", + "params": { "parameters": "object" } + }, + { + "task": "sql", + "name": "generateERD", + "httpMethod": "post", + "params": { "parameters": "object" } + }, + { + "task": "sql", + "name": "fetchERD", + "httpMethod": "post", + "params": { "parameters": "object" } + } + ], + "Worker": { + "sqlTask": { + "minConsumers": 1, + "consumerInstructions": { + "generateQuery": { + "dependencies": ["sqlQueryGenerator"], + "body": "async (taskDescription) => { return await sqlQueryGenerator(taskDescription); }" + }, + "validateQuery": { + "dependencies": ["sqlQueryValidator"], + "body": "async (taskDescription) => { return await sqlQueryValidator(taskDescription); }" + }, + "importDatabase": { + "dependencies": ["importDatabase"], + "body": "async (taskDescription) => { return await importDatabase(taskDescription); }" + }, + "fetchERD": { + "dependencies": ["fetchERD"], + "body": "async (taskDescription) => { return await fetchERD(taskDescription); }" + } + } + } + }, + "UI": { + "currentTask": "sql", + "taskData": {}, + "rootNode": 0, + "topology": [[0, null, null]], + "edges": { + "0": [] + }, + "currentNode": 0, + "nodes": { + "0": { + "zoomScale": 1, + "layouts": { + "sm": [ + { "x": 32, "y": 31, "w": 2, "h": 2, "i": 0, "static": false }, + { "x": 32, "y": 29, "w": 2, "h": 2, "i": 1, "static": false }, + { "x": 34, "y": 29, "w": 2, "h": 2, "i": 2, "static": false }, + { "x": 34, "y": 31, "w": 2, "h": 2, "i": 3, "static": false }, + { "x": 36, "y": 31, "w": 2, "h": 2, "i": 4, "static": false } + ], + "md": [ + { "x": 32, "y": 31, "w": 2, "h": 2, "i": 0, "static": false }, + { "x": 32, "y": 29, "w": 2, "h": 2, "i": 1, "static": false }, + { "x": 34, "y": 29, "w": 2, "h": 2, "i": 2, "static": false }, + { "x": 34, "y": 31, "w": 2, "h": 2, "i": 3, "static": false }, + { "x": 36, "y": 31, "w": 2, "h": 2, "i": 4, "static": false } + ], + "lg": [ + { "x": 38, "y": 29, "w": 3, "h": 4, "i": 0, "static": false }, + { "x": 32, "y": 29, "w": 2, "h": 3, "i": 1, "static": false }, + { "x": 34, "y": 29, "w": 4, "h": 2, "i": 2, "static": false }, + { "x": 34, "y": 31, "w": 2, "h": 2, "i": 3, "static": false }, + { "x": 36, "y": 31, "w": 2, "h": 2, "i": 4, "static": false } + ] + }, + "hints": { + "active": false, + "current": 0, + "descriptions": [ + "Generiere eine beliebige SQL-Abfrage.
Ermittle nun anhand der Aufgabenstellung und des Datenbankdiagramms die nötigen Felder, Tabellen und Joins um die Abfrage zu bilden.
Trage das Statement in das Code-Widget ein und klicke auf 'Ausführen' um das Ergebnis zu überprüfen." + ] + }, + "modals": [ + { + "trigger": { + "type": "success" + }, + "content": { + "header": "Herzlichen Glückwunsch!", + "body": "Sie haben die Aufgabe erfolgreich gelöst!", + "footer": { + "buttons": [ + { "type": "close", "label": "Zurück", "parameters": {} }, + { "type": "route", "label": "Zur Übersicht", "parameters": { "route": "TaskOverview" } } + ] + } + }, + "active": false + } + ], + "components": { + "0": { + "type": "DOTGraph", + "name": "DB", + "isValid": true, + "dependencies": { "dotDescription": "taskData__dotDescription" }, + "component": {} + }, + "1": { + "type": "TaskConfiguration", + "name": "Konfiguration", + "isValid": true, + "component": { + "title": "Parameter Konfiguration", + "actions": [ + { + "instruction": "generateQuery", + "type": "fetchData", + "label": "Generieren!", + "dependsOn": ["joinRange", "columnRange", "constraintRange"] + } + ], + "form": { + "schema": { + "formType": "DropdownFormField", + "label": "Datenbank", + "type": "string", + "description": "Zur Verfügung stehende Datenbanken", + "action": { "instruction": "fetchERD", "type": "fetchData", "key": "schema" }, + "initial": "northwind", + "options": ["northwind", "sports", "airport"], + "presets": { + "easy": "airport", + "medium": "northwind", + "hard": "sports" + } + }, + "joinRange": { + "formType": "RangeFormField", + "label": "Anzahl Joins", + "type": "number", + "description": "Bestimmt die Anzahl an Joins", + "initial": { + "lowerValue": 0, + "upperValue": 2 + }, + "step": 1, + "boundaries": { "min": 0, "max": 5 }, + "presets": { + "easy": 0, + "medium": 2, + "hard": 3 + } + }, + "columnRange": { + "formType": "RangeFormField", + "label": "Anzahl Spalten", + "type": "number", + "description": "Bestimmt die Anzahl an Spalten", + "initial": { + "lowerValue": 1, + "upperValue": 4 + }, + "step": 1, + "boundaries": { "min": 1, "max": 5 }, + "presets": { + "easy": 1, + "medium": 3, + "hard": 5 + } + }, + "constraintRange": { + "formType": "RangeFormField", + "label": "Anzahl Bedingungen", + "type": "number", + "description": "Bestimmt die Anzahl an Bedingungen", + "initial": { + "lowerValue": 0, + "upperValue": 3 + }, + "step": 1, + "boundaries": { "min": 0, "max": 6 }, + "presets": { + "easy": 0, + "medium": 2, + "hard": 4 + } + }, + "allowAggregates": { + "formType": "CheckboxFormField", + "label": "Aggregat", + "type": "checkbox", + "description": "Bestimmt ob Aggregationen generiert werden", + "initial": false, + "presets": { + "easy": false, + "medium": true, + "hard": true + } + }, + "forceHavingClause": { + "formType": "CheckboxFormField", + "label": "Having-Clause", + "type": "checkbox", + "description": "Bestimmt ob eine Having Clause generiert wird", + "initial": false, + "presets": { + "easy": false, + "medium": true, + "hard": true + } + }, + "orderBy": { + "formType": "CheckboxFormField", + "label": "OrderBy", + "type": "checkbox", + "description": "Bestimmt ob ein Order By Statement generiert wird", + "initial": true, + "presets": { + "easy": true, + "medium": true, + "hard": true + } + }, + "seed": { + "formType": "ValueFormField", + "label": "Seed", + "type": "text", + "description": "Setze einen beliebigen Wert um die Generierung deterministisch und reproduzierbar zu machen", + "value": "", + "presets": { + "easy": "", + "medium": "", + "hard": "" + } + } + } + } + }, + "2": { + "type": "CodeEditor", + "name": "SQL-Query", + "isValid": true, + "methods": { + "showSolution": {"description": "Zeig mir die Lösung", "impact": 0}, "copyToClipboard": {"description": "Kopieren!", "impact":"0"} + + }, + "contextMenu": { "isOpen": false, "usedMethods": [] }, - "actions": [ - { - "type": "execute", - "instruction": "validateQuery", - "label": "Ausführen!", - "parameters": { - "expectedResult": "taskData__result", - "schema": "nodes__0__components__1__component__form__schema__initial", - "query": "nodes__0__components__2__component__code" - } - } - ], - "dependencies": { "CodeEditor": { "validCode": "taskData__query" } }, - "component": { - "language": ".sql", - "code": "" - } - }, - "3": { - "type": "Output", - "name": "SQL-Output", - "isValid": false, - "dependencies": { - "Output": { "serverOutput": "taskData__userResult", "validOutput": "taskData__isMatchingResult" } - }, - "component": { - "header": "SQL-Rückgabe" - } - }, - "4": { - "type": "Output", - "name": "SQL-Query", - "isValid": true, - "dependencies": { - "Output": { "serverOutput": "taskData__description", "validOutput": "isMatchingResult" } - }, - "component": { - "header": "Aufgabenstellung" - } - } - } - } - } - } + "actions": [ + { + "type": "execute", + "instruction": "validateQuery", + "label": "Ausführen!", + "parameters": { + "expectedResult": "taskData__result", + "schema": "nodes__0__components__1__component__form__schema__initial", + "query": "nodes__0__components__2__component__code" + } + } + ], + "dependencies": { "CodeEditor": { "validCode": "taskData__query" } }, + "component": { + "language": ".sql", + "code": "" + } + }, + "3": { + "type": "Output", + "name": "SQL-Output", + "isValid": false, + "dependencies": { + "Output": { "serverOutput": "taskData__userResult", "validOutput": "taskData__isMatchingResult" } + }, + "component": { + "header": "SQL-Rückgabe" + } + }, + "4": { + "type": "Output", + "name": "SQL-Query", + "isValid": true, + "dependencies": { "Output": { "serverOutput": "taskData__description", "validOutput": "isMatchingResult" } }, + "component": { + "header": "Aufgabenstellung" + } + } + } + } + } + } } diff --git a/src/server/public/assets/ComponentTest-78e86ddd.js b/src/server/public/assets/ComponentTest-78e86ddd.js deleted file mode 100644 index 70279c2..0000000 --- a/src/server/public/assets/ComponentTest-78e86ddd.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as s}from"./index-ac1dbb22.js";const o={name:"Test",setup(){return{}}};const _={class:"test"};function n(c,a,p,r,d,f){return s(),t("div",_)}const i=e(o,[["render",n],["__scopeId","data-v-2120d9f4"]]);export{i as default}; diff --git a/src/server/public/assets/ComponentTest-d5ebcacd.css b/src/server/public/assets/ComponentTest-d5ebcacd.css deleted file mode 100644 index 79b859c..0000000 --- a/src/server/public/assets/ComponentTest-d5ebcacd.css +++ /dev/null @@ -1 +0,0 @@ -.test[data-v-2120d9f4]{display:flex;justify-content:center;align-items:center;width:100vw;height:100vh;flex-direction:column} diff --git a/src/server/public/assets/Configurator-eccce552.js b/src/server/public/assets/Configurator-eccce552.js deleted file mode 100644 index 97ebdb9..0000000 --- a/src/server/public/assets/Configurator-eccce552.js +++ /dev/null @@ -1 +0,0 @@ -import{C as N,d,_ as p,r as s,c as l,g as m,o as c,s as O,u as j,h as _,i as u}from"./index-ac1dbb22.js";import{C as b,D as C}from"./DecisionNode-89ad19b5.js";import"./index-8ac73e8f.js";const E={name:"Editor",props:{storeObject:Object},components:{CodeEditor:N},setup(t){const{store:a,getProperty:e,setProperty:o}=t.storeObject;return{code:d(()=>({nodes:e("nodes"),taskData:e("taskData")}))}}};const D={class:"jsonEditor"};function v(t,a,e,o,n,i){const r=s("CodeEditor");return c(),l("div",D,[m(r,{componentID:999,storeObject:e.storeObject,codeProp:o.code,hideActions:!0,languageProp:".json"},null,8,["storeObject","codeProp","languageProp"])])}const S=p(E,[["render",v]]),y={name:"Editor",components:{Canvas:b,DecisionNode:C,JSONEditor:S},setup(){const t=O.configurationStore,{store:a,getProperty:e,setProperty:o}=t;j();const n=d(()=>e("currentNode")),i=d(()=>{const r=e(`edges__${n.value}`);return r?r.length>1:!1});return{currentNode:n,isDecisionNode:i,configurationStore:t}}},P={class:"editor"};function h(t,a,e,o,n,i){const r=s("JSONEditor"),f=s("DecisionNode"),g=s("Canvas");return c(),l("div",P,[m(r,{storeObject:o.configurationStore},null,8,["storeObject"]),o.isDecisionNode?(c(),_(f,{key:0,storeObject:o.configurationStore},null,8,["storeObject"])):u("",!0),!o.isDecisionNode&&Number.isInteger(o.currentNode)?(c(),_(g,{key:o.currentNode,storeObject:o.configurationStore},null,8,["storeObject"])):u("",!0)])}const B=p(y,[["render",h]]);export{B as default}; diff --git a/src/server/public/assets/DecisionNode-89ad19b5.js b/src/server/public/assets/DecisionNode-89ad19b5.js deleted file mode 100644 index d4e15f1..0000000 --- a/src/server/public/assets/DecisionNode-89ad19b5.js +++ /dev/null @@ -1,2 +0,0 @@ -import{i as Re,o as Qe,S as et}from"./index-8ac73e8f.js";import{d as q,e as Ne,D as tt,y as Ie,_ as R,c as j,b as I,o as E,p as $e,a as ke,x as ze,i as te,l as nt,t as oe,B as Ze,r as K,h as W,w as ce,T as ot,F as ae,n as re,E as at,m as V,j as je,G as Fe,z as We,H as rt,A as st,I as Te,J as He,K as Be,M as it,L as ct,N as lt,O as dt,P as ut,Q as pt,V as _t,C as mt,R as vt,S as ft,U as ht,W as gt,X as yt,Y as bt,Z as wt,$ as xt,a0 as St,a1 as Ct,g as ve}from"./index-ac1dbb22.js";var B=function(){return B=Object.assign||function(e){for(var o,n=1,r=arguments.length;n-1&&t.splice(o,1),t.push(e)}function Ot(t,e){if(e.touches){for(;t.length;)t.pop();return}var o=Ye(t,e);o>-1&&t.splice(o,1)}function Ve(t){t=t.slice(0);for(var e=t.pop(),o;o=t.pop();)e={clientX:(o.clientX-e.clientX)/2+e.clientX,clientY:(o.clientY-e.clientY)/2+e.clientY};return e}function xe(t){if(t.length<2)return 0;var e=t[0],o=t[1];return Math.sqrt(Math.pow(Math.abs(o.clientX-e.clientX),2)+Math.pow(Math.abs(o.clientY-e.clientY),2))}var le={down:"mousedown",move:"mousemove",up:"mouseup mouseleave"};typeof window<"u"&&(typeof window.PointerEvent=="function"?le={down:"pointerdown",move:"pointermove",up:"pointerup pointerleave pointercancel"}:typeof window.TouchEvent=="function"&&(le={down:"touchstart",move:"touchmove",up:"touchend touchcancel"}));function Se(t,e,o,n){le[t].split(" ").forEach(function(r){e.addEventListener(r,o,n)})}function Ce(t,e,o){le[t].split(" ").forEach(function(n){e.removeEventListener(n,o)})}var Pt=typeof document<"u"&&!!document.documentMode,Oe;function Et(){return Oe||(Oe=document.createElement("div").style)}var qe=["webkit","moz","ms"],de={};function De(t){if(de[t])return de[t];var e=Et();if(t in e)return de[t]=t;for(var o=t[0].toUpperCase()+t.slice(1),n=qe.length;n--;){var r="".concat(qe[n]).concat(o);if(r in e)return de[t]=r}}function ue(t,e){return parseFloat(e[De(t)])||0}function pe(t,e,o){o===void 0&&(o=window.getComputedStyle(t));var n=e==="border"?"Width":"";return{left:ue("".concat(e,"Left").concat(n),o),right:ue("".concat(e,"Right").concat(n),o),top:ue("".concat(e,"Top").concat(n),o),bottom:ue("".concat(e,"Bottom").concat(n),o)}}function ne(t,e,o){t.style[De(e)]=o}function Tt(t,e){var o=De("transform");ne(t,"transition","".concat(o," ").concat(e.duration,"ms ").concat(e.easing))}function Mt(t,e,o){var n=e.x,r=e.y,c=e.scale,a=e.isSVG;if(ne(t,"transform","scale(".concat(c,") translate(").concat(n,"px, ").concat(r,"px)")),a&&Pt){var s=window.getComputedStyle(t).getPropertyValue("transform");t.setAttribute("transform",s)}}function Pe(t){var e=t.parentNode,o=window.getComputedStyle(t),n=window.getComputedStyle(e),r=t.getBoundingClientRect(),c=e.getBoundingClientRect();return{elem:{style:o,width:r.width,height:r.height,top:r.top,bottom:r.bottom,left:r.left,right:r.right,margin:pe(t,"margin",o),border:pe(t,"border",o)},parent:{style:n,width:c.width,height:c.height,top:c.top,bottom:c.bottom,left:c.left,right:c.right,padding:pe(e,"padding",n),border:pe(e,"border",n)}}}function Nt(t){var e=t.ownerDocument,o=t.parentNode;return e&&o&&e.nodeType===9&&o.nodeType===1&&e.documentElement.contains(o)}function It(t){return(t.getAttribute("class")||"").trim()}function $t(t,e){return t.nodeType===1&&" ".concat(It(t)," ").indexOf(" ".concat(e," "))>-1}function kt(t,e){for(var o=t;o!=null;o=o.parentNode)if($t(o,e.excludeClass)||e.exclude.indexOf(o)>-1)return!0;return!1}var zt=/^http:[\w\.\/]+svg$/;function jt(t){return zt.test(t.namespaceURI)&&t.nodeName.toLowerCase()!=="svg"}function Dt(t){var e={};for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o]);return e}var Xe={animate:!1,canvas:!1,cursor:"move",disablePan:!1,disableZoom:!1,disableXAxis:!1,disableYAxis:!1,duration:200,easing:"ease-in-out",exclude:[],excludeClass:"panzoom-exclude",handleStartEvent:function(t){t.preventDefault(),t.stopPropagation()},maxScale:4,minScale:.125,overflow:"hidden",panOnlyWhenZoomed:!1,pinchAndPan:!1,relative:!1,setTransform:Mt,startX:0,startY:0,startScale:1,step:.3,touchAction:"none"};function Je(t,e){if(!t)throw new Error("Panzoom requires an element as an argument");if(t.nodeType!==1)throw new Error("Panzoom requires an element with a nodeType of 1");if(!Nt(t))throw new Error("Panzoom should be called on elements that have been attached to the DOM");e=B(B({},Xe),e);var o=jt(t),n=t.parentNode;n.style.overflow=e.overflow,n.style.userSelect="none",n.style.touchAction=e.touchAction,(e.canvas?n:t).style.cursor=e.cursor,t.style.userSelect="none",t.style.touchAction=e.touchAction,ne(t,"transformOrigin",typeof e.origin=="string"?e.origin:o?"0 0":"50% 50%");function r(){n.style.overflow="",n.style.userSelect="",n.style.touchAction="",n.style.cursor="",t.style.cursor="",t.style.userSelect="",t.style.touchAction="",ne(t,"transformOrigin","")}function c(l){l===void 0&&(l={});for(var h in l)l.hasOwnProperty(h)&&(e[h]=l[h]);(l.hasOwnProperty("cursor")||l.hasOwnProperty("canvas"))&&(n.style.cursor=t.style.cursor="",(e.canvas?n:t).style.cursor=e.cursor),l.hasOwnProperty("overflow")&&(n.style.overflow=l.overflow),l.hasOwnProperty("touchAction")&&(n.style.touchAction=l.touchAction,t.style.touchAction=l.touchAction)}var a=0,s=0,i=1,S=!1;v(e.startScale,{animate:!1,force:!0}),setTimeout(function(){g(e.startX,e.startY,{animate:!1,force:!0})});function O(l,h,C){if(!C.silent){var $=new CustomEvent(l,{detail:h});t.dispatchEvent($)}}function u(l,h,C){var $={x:a,y:s,scale:i,isSVG:o,originalEvent:C};return requestAnimationFrame(function(){typeof h.animate=="boolean"&&(h.animate?Tt(t,h):ne(t,"transition","none")),h.setTransform(t,$,h),O(l,$,h),O("panzoomchange",$,h)}),$}function P(l,h,C,$){var p=B(B({},e),$),T={x:a,y:s,opts:p};if(!p.force&&(p.disablePan||p.panOnlyWhenZoomed&&i===p.startScale))return T;if(l=parseFloat(l),h=parseFloat(h),p.disableXAxis||(T.x=(p.relative?a:0)+l),p.disableYAxis||(T.y=(p.relative?s:0)+h),p.contain){var x=Pe(t),G=x.elem.width/i,F=x.elem.height/i,se=G*C,ie=F*C,Q=(se-G)/2,ee=(ie-F)/2;if(p.contain==="inside"){var ge=(-x.elem.margin.left-x.parent.padding.left+Q)/C,ye=(x.parent.width-se-x.parent.padding.left-x.elem.margin.left-x.parent.border.left-x.parent.border.right+Q)/C;T.x=Math.max(Math.min(T.x,ye),ge);var be=(-x.elem.margin.top-x.parent.padding.top+ee)/C,we=(x.parent.height-ie-x.parent.padding.top-x.elem.margin.top-x.parent.border.top-x.parent.border.bottom+ee)/C;T.y=Math.max(Math.min(T.y,we),be)}else if(p.contain==="outside"){var ge=(-(se-x.parent.width)-x.parent.padding.left-x.parent.border.left-x.parent.border.right+Q)/C,ye=(Q-x.parent.padding.left)/C;T.x=Math.max(Math.min(T.x,ye),ge);var be=(-(ie-x.parent.height)-x.parent.padding.top-x.parent.border.top-x.parent.border.bottom+ee)/C,we=(ee-x.parent.padding.top)/C;T.y=Math.max(Math.min(T.y,we),be)}}return p.roundPixels&&(T.x=Math.round(T.x),T.y=Math.round(T.y)),T}function b(l,h){var C=B(B({},e),h),$={scale:i,opts:C};if(!C.force&&C.disableZoom)return $;var p=e.minScale,T=e.maxScale;if(C.contain){var x=Pe(t),G=x.elem.width/i,F=x.elem.height/i;if(G>1&&F>1){var se=x.parent.width-x.parent.border.left-x.parent.border.right,ie=x.parent.height-x.parent.border.top-x.parent.border.bottom,Q=se/G,ee=ie/F;e.contain==="inside"?T=Math.min(T,Q,ee):e.contain==="outside"&&(p=Math.max(p,Q,ee))}}return $.scale=Math.min(Math.max(l,p),T),$}function g(l,h,C,$){var p=P(l,h,i,C);return a!==p.x||s!==p.y?(a=p.x,s=p.y,u("panzoompan",p.opts,$)):{x:a,y:s,scale:i,isSVG:o,originalEvent:$}}function v(l,h,C){var $=b(l,h),p=$.opts;if(!(!p.force&&p.disableZoom)){l=$.scale;var T=a,x=s;if(p.focal){var G=p.focal;T=(G.x/l-G.x/i+a*l)/l,x=(G.y/l-G.y/i+s*l)/l}var F=P(T,x,l,{relative:!1,force:!0});return a=F.x,s=F.y,i=l,u("panzoomzoom",p,C)}}function y(l,h){var C=B(B(B({},e),{animate:!0}),h);return v(i*Math.exp((l?1:-1)*C.step),C)}function d(l){return y(!0,l)}function m(l){return y(!1,l)}function _(l,h,C,$){var p=Pe(t),T={width:p.parent.width-p.parent.padding.left-p.parent.padding.right-p.parent.border.left-p.parent.border.right,height:p.parent.height-p.parent.padding.top-p.parent.padding.bottom-p.parent.border.top-p.parent.border.bottom},x=h.clientX-p.parent.left-p.parent.padding.left-p.parent.border.left-p.elem.margin.left,G=h.clientY-p.parent.top-p.parent.padding.top-p.parent.border.top-p.elem.margin.top;o||(x-=p.elem.width/i/2,G-=p.elem.height/i/2);var F={x:x/T.width*(T.width*l),y:G/T.height*(T.height*l)};return v(l,B(B({},C),{animate:!1,focal:F}),$)}function f(l,h){l.preventDefault();var C=B(B(B({},e),h),{animate:!1}),$=l.deltaY===0&&l.deltaX?l.deltaX:l.deltaY,p=$<0?1:-1,T=b(i*Math.exp(p*C.step/3),C).scale;return _(T,l,C,l)}function M(l){var h=B(B(B({},e),{animate:!0,force:!0}),l);i=b(h.startScale,h).scale;var C=P(h.startX,h.startY,i,h);return a=C.x,s=C.y,u("panzoomreset",h)}var w,k,z,D,A,H,N=[];function L(l){if(!kt(l.target,e)){Me(N,l),S=!0,e.handleStartEvent(l),w=a,k=s,O("panzoomstart",{x:a,y:s,scale:i,isSVG:o,originalEvent:l},e);var h=Ve(N);z=h.clientX,D=h.clientY,A=i,H=xe(N)}}function J(l){if(!(!S||w===void 0||k===void 0||z===void 0||D===void 0)){Me(N,l);var h=Ve(N),C=N.length>1,$=i;if(C){H===0&&(H=xe(N));var p=xe(N)-H;$=b(p*e.step/80+A).scale,_($,h,{animate:!1},l)}(!C||e.pinchAndPan)&&g(w+(h.clientX-z)/$,k+(h.clientY-D)/$,{animate:!1},l)}}function U(l){N.length===1&&O("panzoomend",{x:a,y:s,scale:i,isSVG:o,originalEvent:l},e),Ot(N,l),S&&(S=!1,w=k=z=D=void 0)}var Y=!1;function Z(){Y||(Y=!0,Se("down",e.canvas?n:t,L),Se("move",document,J,{passive:!0}),Se("up",document,U,{passive:!0}))}function X(){Y=!1,Ce("down",e.canvas?n:t,L),Ce("move",document,J),Ce("up",document,U)}return e.noBind||Z(),{bind:Z,destroy:X,eventNames:le,getPan:function(){return{x:a,y:s}},getScale:function(){return i},getOptions:function(){return Dt(e)},handleDown:L,handleMove:J,handleUp:U,pan:g,reset:M,resetStyle:r,setOptions:c,setStyle:function(l,h){return ne(t,l,h)},zoom:v,zoomIn:d,zoomOut:m,zoomToPoint:_,zoomWithWheel:f}}Je.defaultOptions=Xe;const At=(t,e,o="")=>{const{getProperty:n,setProperty:r,store:c}=t,a=Yt(t),s=JSON.parse(JSON.stringify(a.components)),i=c.state.currentNode;n(e.secondaryNeedsVector);const S=n(e.baseMatrix),O=parseInt(e.baseMatrix[e.baseMatrix.length-1]),u=n(e.n)-1,P=(D,A,H,N)=>{const L=JSON.parse(JSON.stringify(D));return L.dependencies.Matrix.data=`nodes__${A}__components__${H}__component__userData`,L.dependencies.Matrix.data1=`nodes__${A}__components__${N}__component__userData`,L.isValid=!1,L.component.readOnly=!1,L.methods={fillZeros:{description:"Ergänze Nullen",impact:.5},showSolution:{description:"Zeige Lösung",impact:0},copyToClipboard:{description:"Kopieren",impact:1}},L.component.initialize.solution.operations=[{name:"multiply",args:["chain"]}],L.component.initialize.solution.paths=[`nodes__${A}__components__${H}__component__userData`,`nodes__${A}__components__${N}__component__userData`],L.component.initialize.user.operations=[{name:"getValueInitializedMatrix",args:[null]}],A%2!==0&&(L.component.initialize.validation.operations=[{name:"getValueInitializedMatrix",args:[{isValid:!1,isCorrect:!1}]}],L.component.initialize.validation.paths=["taskData__adjacencyMatrix"]),L},b=(D,A,H)=>{const N=JSON.parse(JSON.stringify(D));return N.dependencies.Matrix.data=`nodes__${A}__components__${H[H.length-1]}__component__solutionData`,N.name="Gesamtbedarfsmatrix",N.isValid=!1,N.component.readOnly=!1,N.methods={fillZeros:{description:"Ergänze Nullen",impact:.5},showSolution:{description:"Zeige Lösung",impact:0},copyToClipboard:{description:"Kopieren",impact:1}},N.component.initialize.solution.operations=Array(u+1).fill(null).map(()=>({name:"add",args:["chain"]})),N.component.initialize.solution.paths=H.map(L=>`nodes__${A}__components__${L}__component__userData`),N.component.initialize.user.operations=[{name:"getValueInitializedMatrix",args:[null]}],N},g=(D,A,H,N)=>Object.entries(D).reduce((J,[U,Y])=>{const Z=Y.filter(l=>l.i===O)[0],X=[...Y,{...Z,i:A,y:Z.y-Z.h*N,x:Z.x+Z.w*H}];return J[U]=X,J},{}),v=(D,A,H)=>Object.entries(D).reduce((L,[J,U])=>{const Y=U.filter(X=>X.i===O)[0],Z=U.map(X=>X.i===H?{...X,x:Y.x+Y.w*A}:X);return L[J]=Z,L},{});let y=a.layouts,d=O,m=Object.keys(s).length,_=m,f=1;const M=parseInt(Object.keys(s)[1]),w=parseInt(Object.keys(s)[2]),k=parseInt(Object.keys(s)[3]),z=[O,M];for(let D=0;DparseFloat(parseFloat(t).toFixed(Ue)),Lt=(t,e,o="0")=>{const{getProperty:n,setProperty:r}=t,c=n("currentNode");Ue=n(e.decimals);const a=n(e.formula)||"",s=n(e.texFormula)||"",i=Object.entries(n(e.variables)).reduce((v,[y,d])=>(v[y]=n(d),v),{}),S=_e.parse(a),O=_e.parse(s),u=_e.render(O,"latex"),P=_e.render(S,"sage"),b=me(S,i),g=Ae(b,i);r({path:`nodes__${c}__components__${o}__component__tex`,value:u}),r({path:`nodes__${c}__components__${o}__component__sage`,value:P}),r({path:`nodes__${c}__components__${o}__component__aladinAST`,value:g}),r({path:`nodes__${c}__components__${o}__component__AST`,value:b})},Ae=(t,e,o=null)=>{const n=Object.keys(t);if(n.includes("type")&&t.type==="variable"){let a;t.index?(a=e[t.name][o],t=[{type:"scalar",value:fe(a),userValue:"",valueType:"variable"}]):(a=e[t.name],t=[{type:"scalar",value:fe(a),userValue:"",valueType:"variableConstant"}])}const c=(a=>{const s=["slots","terms","rightTerm","leftTerm"];for(let i of a)if(s.includes(i))return t[i];return null})(n);if(c)for(let a=0;a[{type:"scalar",value:`(- ${fe(e)})`,datatype:o,userValue:"",valueType:"constant"}],Bt=(t,e,o)=>[{type:"power",slots:[{name:"base",terms:e},{name:"exponent",terms:o}]}],Vt=(t,e,o)=>({leftTerm:e,comparisonOperator:t,rightTerm:o}),qt=(t,e,o)=>[{type:"fraction",slots:[{name:"numerator",terms:e},{name:"denominator",terms:o}]}],Ee=(t,e,o)=>[{type:"BaseOperation",options:{operation:{Plus:"+",Minus:"-",Times:"*"}[t]},slots:[{name:"firstOperand",terms:e},{name:"secondOperand",terms:o}]}],Gt=(t,e,o)=>[{...e[0],index:o[0].name}],Rt=(t,e,o)=>o,Zt=(t,e,o)=>{const n=()=>{const[a,s,i,S]=e,O=i[0].value,u=o[S[0].name],b={sum:"+",prod:"*"}[t],g=d=>JSON.parse(JSON.stringify(d));let v,y;for(let d=O;d{const[a,s]=e,i={name:"radicand",terms:a};return s&&s[0]&&[0,1,2].includes(s[0].value)?[{type:"radical",slots:[i]}]:[{type:"radical",slots:[{name:"index",terms:s},i]}]};return{sum:n,prod:n,root:r,sqrt:r}[t]()},Ft={Equal:(t,e,o)=>Vt({Equal:"=",Less:"<",Greater:">",LessEqual:"<=",GreaterEqual:">=",Unequal:"!="}[t],e,o),Plus:Ee,Minus:Ee,Times:Ee,Divide:qt,Exponent:Bt,Negative:Ht,Subscript:Gt,Inclusion:Rt},me=(t,e)=>{let[o,n,r]=t;if(typeof n=="string"){if(o==="Literal")return[{type:"scalar",value:fe(r),datatype:n,userValue:"",valueType:"constant"}];if(o==="Variable")return[{type:"variable",name:n}]}if(o==="Function"){const s=n[1],i=r.map(S=>me(S,e));return Zt(s,i,e)}const c=me(n,e),a=me(r,e);return Ft[o](o,c,a)},Ge={matrixSelfMultiplication:At,formulaGenerator:Lt},Wt=async(t,e,o)=>{let n=0;for(const r of e){const{method:c,dependencies:a,applied:s,component_id:i}=r;if(!s){if(Reflect.has(Ge,c))await Ge[c](t,a,i),t.setProperty({path:`${o}__${n}__applied`,value:!0});else try{await new Function(c)(t,a,i),t.setProperty({path:`${o}__${n}__applied`,value:!0})}catch(S){throw new Error(`Unknown interjection method. -${S}`)}n++}}},Yt=t=>{const{getProperty:e}=t,n=`nodes__${e("currentNode")}`;return e(n)};var Le=(t=>(t.DRAGELEMENTCLASS="draggable",t))(Le||{});const Xt={props:{storeObject:Object},setup(t){const{getProperty:e}=t.storeObject;let o=document.querySelector("#resizeCanvas");const n=[.2,.9],r=q(()=>e("currentNode")),c=q(()=>e("topology")),a=q(()=>e("edges"));let s=!1;Ne(()=>{window.addEventListener("resize",g),o=document.querySelector("#resizeCanvas"),s=!1,b();const{depth:d,width:m,layout:_}=u(o);P(o,d,m,_,a),g()}),tt(()=>{window.removeEventListener("resize",g)});const i=d=>d,S=d=>d[0].map((m,_)=>d.map(f=>f[_])),O=()=>{const d=document.querySelector("#minimap"),m=document.querySelector(".minimap_collapse");s=!s,s?(d.style.display="none",m.innerHTML="□"):(d.style.display="block",m.innerHTML="_")},u=d=>{const m=c.value.length,_=i(c.value)[0].length,f=S(c.value),M=d.offsetWidth/_,w=d.offsetHeight/m;let k=M/2,z=w/2;const D={};for(let A=0;A<_;A++){for(let H=0;H{const w=d.getContext("2d");w.lineWidth=5,w.fillStyle="green",w.strokeStyle="green",Object.entries(f).forEach(([k,z])=>{v(w,...z),M.value[k].forEach(D=>{const A=f[D];w.setLineDash([2,4]),w.fillStyle="red",w.strokeStyle="red",w.globalCompositeOperation="destination-over",y(w,z[0],z[1],A[0],A[1],_),w.globalCompositeOperation="destination-under",w.setLineDash([])})})},b=()=>{const d=document.querySelector("html").clientWidth*n[0],m=document.querySelector("html").clientHeight*n[1];o.width=d,o.height=m;const _=document.querySelector("#minimap");_.style.backgroundColor="lightgrey",_.width=d,_.height=m},g=()=>{const d=document.querySelector("#minimap"),m=document.querySelector("html").clientWidth*n[0],_=document.querySelector("html").clientHeight*n[1],f=o.width,M=o.height;d.width=m,d.height=_,d.getContext("2d").drawImage(o,0,0,f,M,0,0,m,_)},v=(d,m,_,f=15)=>{d.beginPath(),d.arc(m,_,f,0,2*Math.PI),d.stroke(),d.fill(),d.closePath()},y=(d,m,_,f,M,w)=>{if(d.beginPath(),d.moveTo(m,_),m!==f){const k=(f>m?f/m:m/f)/2;m{}),{minimize:O}}};const Ke=t=>($e("data-v-a72cdf42"),t=t(),ke(),t),Jt=Ke(()=>I("canvas",{id:"minimap"},null,-1)),Ut=Ke(()=>I("canvas",{id:"resizeCanvas"},null,-1));function Kt(t,e,o,n,r,c){return E(),j("div",null,[Jt,I("button",{class:"minimap_collapse",onClick:e[0]||(e[0]=(...a)=>n.minimize&&n.minimize(...a))},"_"),Ut])}const Qt=R(Xt,[["render",Kt],["__scopeId","data-v-a72cdf42"]]),en={props:{storeObject:Object},setup(t){const{getProperty:e,setProperty:o}=t.storeObject,n=e("taskMode"),r=ze(),c=e("rootNode"),a=e("currentNode"),s=q(()=>{const v=e("edges")[a];return v?v[0]:null}),i=q(()=>e("previousNode")),S=c==a,O=v=>{const y=e("edges");return Object.entries(y).reduce((m,[_,f])=>(f.includes(v)&&(m=parseInt(_)),m),-1)},u=q(()=>e(`nodes__${a}__components`)),P=()=>{const v=Object.values(u.value).every(d=>d.isCorrect===void 0?!0:d.isCorrect);return{isValid:n.value==="practice"?v&&Object.values(u.value).every(d=>d.isValid):Object.values(u.value).every(d=>d.isValid),isCorrect:v}},b=v=>{Array.from(document.querySelectorAll(".traverse.forward")).forEach(d=>{const m=d.querySelector(".validity");v?(d.classList.remove("inValid"),m.innerHTML="✔"):m&&(d.classList.add("inValid"),m.innerHTML="!")})};return Ne(()=>{const{isValid:v}=P();b(v)}),Ie(u,()=>{setTimeout(()=>{const{isValid:v,isCorrect:y}=P(),d=e(`nodes__${a}`);o({path:`nodes__${a}__isValid`,value:v}),"isCorrect"in d&&o({path:`nodes__${a}__isCorrect`,value:y}),b(v)},50)},{deep:!0}),{navigate:v=>{const y=v.currentTarget,{direction:d,to:m}=y.dataset,_=O(parseInt(m));!m&&d==="backward"?r.push({name:"TaskOverview"}):Array.from(y.classList).includes("inValid")||(o({path:"previousNode",value:_}),o({path:"currentNode",value:m}))},next:s,previous:i,isRootNote:S}}};const he=t=>($e("data-v-69364485"),t=t(),ke(),t),tn={class:"navigation"},nn=["data-to"],on=he(()=>I("div",{class:"validity"},"✔",-1)),an=he(()=>I("p",null,"►",-1)),rn=[on,an],sn=["data-to"],cn=he(()=>I("div",{class:"validity"},"!",-1)),ln=he(()=>I("p",null,"►",-1)),dn=[cn,ln];function un(t,e,o,n,r,c){return E(),j("nav",tn,[n.isRootNote?te("",!0):(E(),j("div",{key:0,class:"traverse backward","data-direction":"backward","data-to":n.previous,onClick:e[0]||(e[0]=(...a)=>n.navigate&&n.navigate(...a))},rn,8,nn)),n.next?(E(),j("div",{key:1,class:"traverse forward","data-direction":"forward","data-to":n.next,onClick:e[1]||(e[1]=(...a)=>n.navigate&&n.navigate(...a))},dn,8,sn)):te("",!0)])}const pn=R(en,[["render",un],["__scopeId","data-v-69364485"]]),_n={name:"Hint",props:{storeObject:Object},setup(t){const{store:e,getProperty:o,setProperty:n}=t.storeObject,r=e.state.currentNode,c=q(()=>{const O=o(`nodes__${r}__hints`);return O||{active:!1,current:0,descriptions:[]}});let a=nt("/img/lightbulb.png");return{hints:c,lightBulbSource:a,lightSwitch:O=>{const u=O.target,P=u.parentNode.querySelector(".hintText");Array.from(u.classList).includes("on")?(u.classList.remove("on"),a.value="/img/lightbulb.png",P.classList.add("closed"),n({path:`nodes__${r}__hints__active`,value:!1})):(u.classList.add("on"),a.value="/img/lightbulb_on.png",P.classList.remove("closed"),n({path:`nodes__${r}__hints__active`,value:!0}))},hintHandler:O=>{const u=O.currentTarget,{direction:P}=u.dataset;let b;P==="forward"?c.value.current>=c.value.descriptions.length-1?b=c.value.descriptions.length-1:b=c.value.current+1:c.value.current<=0?b=0:b=c.value.current-1,n({path:`nodes__${r}__hints__current`,value:b})},closeHandler:()=>{document.querySelector(".lightBulb.on")&&(document.querySelector(".lightBulb.on").classList.remove("on"),document.querySelector(".hintText").classList.add("closed"),a.value="/img/lightbulb.png",n({path:`nodes__${r}__hints__active`,value:!1}))}}}};const mn=["src"],vn={class:"hintText closed"},fn={class:"hintNavigation"},hn={class:"display"},gn=["innerHTML"];function yn(t,e,o,n,r,c){return n.hints.descriptions.length?(E(),j("div",{key:0,class:"hint",onClickout:e[3]||(e[3]=(...a)=>n.closeHandler&&n.closeHandler(...a))},[I("img",{class:"lightBulb off",src:n.lightBulbSource,onClick:e[0]||(e[0]=(...a)=>n.lightSwitch&&n.lightSwitch(...a))},null,8,mn),I("div",vn,[I("div",fn,[n.hints.descriptions.length>1?(E(),j("div",{key:0,class:"backward",onClick:e[1]||(e[1]=(...a)=>n.hintHandler&&n.hintHandler(...a)),"data-direction":"backward"},"<")):te("",!0),I("div",hn,oe(n.hints.current+1)+"/"+oe(n.hints.descriptions.length),1),n.hints.descriptions.length>1?(E(),j("div",{key:1,class:"forward",onClick:e[2]||(e[2]=(...a)=>n.hintHandler&&n.hintHandler(...a)),"data-direction":"forward"},">")):te("",!0)]),I("p",{innerHTML:n.hints.descriptions[n.hints.current]},null,8,gn)])],32)):te("",!0)}const bn=R(_n,[["render",yn],["__scopeId","data-v-fed12c44"]]),wn={name:"TextArea",props:{componentID:Number,storeObject:Object},setup(t){const{getProperty:e,setProperty:o}=t.storeObject,r=`nodes__${e("currentNode")}__components__${t.componentID}__component__value`;return{value:q(()=>e(r)),update:s=>{const i=s.currentTarget;o({path:r,value:i.value})}}}};const xn=["value"];function Sn(t,e,o,n,r,c){return E(),j("textarea",{class:"textarea",value:n.value,onInput:e[0]||(e[0]=(...a)=>n.update&&n.update(...a))}," ",40,xn)}const Cn=R(wn,[["render",Sn],["__scopeId","data-v-9c455e99"]]),On={name:"Modal",props:{storeObject:Object,modalIndex:Number},components:{Button:Ze},setup(t){const{store:e,getProperty:o,setProperty:n}=t.storeObject,r=e.state.currentNode,c=ze(),a=`nodes__${r}__modals__${t.modalIndex}`,s=q(()=>o(a)),i=q(()=>o(`${a}__active`)),S=q(()=>{const b=o(`nodes__${r}__components`);return Object.values(b).every(g=>g.isValid)});q(()=>{const b=o(`nodes__${r}__components`);return Object.values(b).every(g=>g.isValid)}),Ie(S,{completion:b=>{b&&(setTimeout(()=>{n({path:`${a}__active`,value:!0})},50),window.panzoom.setOptions({disablePan:!0}))},success:b=>{b&&setTimeout(()=>{n({path:`${a}__active`,value:!0}),window.panzoom.setOptions({disablePan:!0})},50)}}[s.value.trigger.type]);const u=()=>{n({path:`${a}__active`,value:!1}),window.panzoom.setOptions({disablePan:!1})};return{closeHandler:u,modal:s,active:i,buttonFunctions:{close:()=>u,route:b=>()=>{const{route:g}=b;c.push({name:g})}}}}};const Pn={key:0,class:"overlay"},En={class:"modal__header"},Tn={class:"modal__body"},Mn={class:"modal__footer"};function Nn(t,e,o,n,r,c){const a=K("Button");return E(),W(ot,{name:"fade",mode:"out-in"},{default:ce(()=>[n.active?(E(),j("div",Pn,[I("div",{class:"modal",onClickout:e[1]||(e[1]=(...s)=>n.closeHandler&&n.closeHandler(...s))},[I("div",{class:"closeModal",onClick:e[0]||(e[0]=(...s)=>n.closeHandler&&n.closeHandler(...s))},"X"),I("div",En,oe(n.modal.content.header),1),I("div",Tn,oe(n.modal.content.body),1),I("div",Mn,[(E(!0),j(ae,null,re(n.modal.content.footer.buttons,(s,i)=>(E(),W(a,{key:i,label:s.label,callback:n.buttonFunctions[s.type](s.parameters)},null,8,["label","callback"]))),128))])],32)])):te("",!0)]),_:1})}const In=R(On,[["render",Nn],["__scopeId","data-v-ee048682"]]);class $n extends at{validate(){return!1}getDropZoneBehaviours(){return{StoreDragElement:this.createStoreDragElementHandler()}}createStoreDragElementHandler(){const e=this.getComponentData(),o=this.storeObject,n=this.serialisedTaskComponentPath;return r=>{var S,O;const c=(S=r==null?void 0:r.target)==null?void 0:S.id,a=(O=r==null?void 0:r.relatedTarget)==null?void 0:O.id,s=V(e).dropZones[c].droppedElements,i=s?[...s,a]:[a];V(o).setProperty({path:`${n}__component__dropZones__${c}__droppedElements`,value:i})}}}const kn=["id"],zn=je({__name:"DropZone",props:{dropZoneCB:{},accept:{},dropZoneName:{},overlap:{default:"pointer"}},setup(t){const e=t;return Re(".dropZone").dropzone({overlap:V(e).overlap,ondrop:V(e).dropZoneCB,accept:V(e).accept.map(o=>`#${o}`).join(", ")}),(o,n)=>(E(),j("div",{class:"dropZone",id:e.dropZoneName},[Fe(o.$slots,"default",{},void 0,!0)],8,kn))}});const jn=R(zn,[["__scopeId","data-v-3ffdd6c0"]]),Dn=t=>{const e=t.interaction;if(e.pointerIsDown&&!e.interacting()){const o=t.currentTarget,n=t.currentTarget.cloneNode(!0),r=o.getBoundingClientRect();n.classList.add("dragging"),n.style.transform="translate(0px, 0px)",n.style.position="absolute",n.style.top=r.top+window.scrollY+"px",n.style.left=r.left+window.scrollX+"px",n.setAttribute("data-x","0"),n.setAttribute("data-y","0"),document.body.appendChild(n),e.start({name:"drag"},t.interactable,n)}},An=t=>{t.preventDefault();const e=t.target,o=(parseFloat(String(e.getAttribute("data-x")))||0)+t.dx/3,n=(parseFloat(String(e.getAttribute("data-y")))||0)+t.dy/3;e.style.transform=e.style.transform="translate("+o+"px, "+n+"px)",e.setAttribute("data-x",String(o)),e.setAttribute("data-y",String(n))},Ln=t=>{t.target.remove()},Hn=["id"],Bn=je({__name:"DragElement",props:{elementSelector:{}},setup(t){const e=t;return Re(".dragElement").draggable({manualStart:!0}).on("move",Dn).on("dragmove",An).on("dragend",Ln),(o,n)=>(E(),j("div",{class:We(["dragElement",V(Le).DRAGELEMENTCLASS]),id:e.elementSelector},[Fe(o.$slots,"default",{},void 0,!0)],10,Hn))}});const Vn=R(Bn,[["__scopeId","data-v-951cdf11"]]),qn={class:"dragElements"},Gn={class:"dropZones"},Rn=je({__name:"ItemPallet",props:{componentID:{},storeObject:{},componentPath:{},style:{}},setup(t){const e=t,o=rt(e),{storeObject:n,componentID:r,componentPath:c}=o,a=new $n(n,V(r),V(c)),s=a.getComponentData(),{dragElements:i,dropZones:S}=V(s),O=a.getNestedComponentPaths(),u=a.getDropZoneBehaviours();return(P,b)=>(E(),j("div",{class:"itemPallet",style:st(e.style??{})},[I("div",qn,[(E(!0),j(ae,null,re(V(i),(g,v)=>(E(),W(Vn,{class:"dragElement",key:v,elementSelector:g.elementSelector},{default:ce(()=>[(E(),W(Te(g.componentType),He(Be({componentID:V(r),componentPath:V(O)[v],storeObject:V(n),...g.props})),null,16))]),_:2},1032,["elementSelector"]))),128))]),I("div",Gn,[(E(!0),j(ae,null,re(V(S),(g,v)=>(E(),W(jn,{key:v,dropZoneCB:V(u)[g.dropZoneBehaviour],accept:g.accept,dropZoneName:String(v)},{default:ce(()=>[(E(),W(Te(g.componentType),He(Be({componentID:V(r),componentPath:V(O)[v],storeObject:V(n),...g.props,style:{width:"80%"}})),null,16))]),_:2},1032,["dropZoneCB","accept","dropZoneName"]))),128))])],4))}});const Zn=R(Rn,[["__scopeId","data-v-3037b92b"]]),Fn={name:"Canvas",components:{ItemPallet:Zn,ManipulatableGraph:it,BackgroundGraph:ct,ContourPlot:lt,MiniMap:Qt,Hint:bn,Matrix:dt,DOTGraph:ut,TaskConfiguration:pt,GridItem:Qe,GridLayout:et,Navigation:pn,VisualGraphTraversal:_t,CodeEditor:mt,Output:vt,Dropdown:ft,PathDisplay:ht,Equation:gt,TexDisplay:yt,DijkstraTable:bt,DijkstraGraph:wt,TextArea:Cn,Modal:In,PlanGraph:xt,EditableGraph:St,GanttDiagram:Ct},props:{storeObject:Object},setup(t){const{getProperty:e,setProperty:o,store:n}=t.storeObject,r=e("currentNode"),c=`nodes__${r}__interjections`,a=e(c)||[];Wt(t.storeObject,a,c);const s=e(`nodes__${r}__modals`),i=60,S=1e4/i,O=q(()=>e("zoomScale")),u=q(()=>e(`nodes__${r}__components`)),P=Object.keys(u.value).map(_=>_),b=q(()=>e(`nodes__${r}__layouts`)),g=q(()=>e("layoutSize")),v=q(()=>e(`nodes__${r}__layouts__${g.value}`)),y=(_=v.value.filter(f=>f.w===f.h).map(f=>f.i))=>{document.querySelector(".contourPlot")&&setTimeout(()=>{_.forEach(f=>{const M=document.querySelector(`.vgl-item[data-id="${f}"]`);M.style.height=M.style.width})},75)};return Ne(()=>{const _=document.querySelector(".zoomWrapper"),f=document.querySelector(".canvas"),M=Je(_,{excludeClass:"noPan",canvas:!0,startX:-document.querySelector(".zoomWrapper").clientWidth/2,startY:-document.querySelector(".zoomWrapper").clientHeight/2,silent:!1});window.panzoom=M,_.addEventListener("wheel",w=>{if(w.ctrlKey){M.zoomWithWheel(w,{animate:!0});const k=M.getScale();o({path:"zoomScale",value:k}),n.dispatch("trackZooming",{scale:k,timestamp:new Date().getTime(),x:w.clientX,y:w.clientY}),y()}w.preventDefault(),w.stopPropagation()}),_.addEventListener("panzoompan",w=>{const k=M.getPan();n.dispatch("trackPanning",{...k,timestamp:new Date().getTime()})}),f.addEventListener("wheel",w=>{w.preventDefault(),w.stopPropagation()}),y()}),o({path:"zoomScale",value:1}),{layouts:b,zoomScale:O,updateDimensions:(_,f,M)=>{const w=`nodes__${r}__layouts__${g.value}`,k=e(w),z=k.findIndex(D=>D.i==_);o({path:`${w}__${z}`,value:{...k[z],w:M,h:f}}),y()},nodeComponents:u,currentLayout:v,columnAmount:i,rowHeight:S,setCoordinates:(_,f,M)=>{const w=v.value.map(z=>(z.i==_&&(z.x=f,z.y=M),z)),k=`nodes__${r}__layouts__${g.value}`;o({path:k,value:w}),y()},layoutSize:g,modals:s,nodeComponentIds:P,currentNode:r,CONSTANTS:Le}}},Wn="/img/drag_arrow.webp";const Yn={class:"canvas"},Xn={class:"modals"},Jn={class:"zoomWrapper"};function Un(t,e,o,n,r,c){const a=K("Navigation"),s=K("Hint"),i=K("Modal"),S=K("grid-item"),O=K("grid-layout");return E(),j("div",Yn,[ve(a,{storeObject:o.storeObject},null,8,["storeObject"]),ve(s,{storeObject:o.storeObject},null,8,["storeObject"]),I("div",Xn,[(E(!0),j(ae,null,re(n.modals,(u,P)=>(E(),W(i,{key:P,storeObject:o.storeObject,modalIndex:P},null,8,["storeObject","modalIndex"]))),128))]),I("div",Jn,[(E(),W(O,{class:"grid",layout:n.currentLayout,"onUpdate:layout":e[0]||(e[0]=u=>n.currentLayout=u),"col-num":n.columnAmount,"row-height":n.rowHeight,"is-draggable":!0,"is-resizable":!0,"vertical-compact":!1,"use-css-transforms":!0,"prevent-collision":!0,onBreakpointChanged:()=>{},key:n.layoutSize,"transform-scale":n.zoomScale,"is-bounded":!0,"restore-on-drag":!0},{default:ce(()=>[(E(!0),j(ae,null,re(n.currentLayout,u=>(E(),W(S,{class:"noPan",key:n.nodeComponentIds[u.i],static:u.static,x:u.x,y:u.y,w:u.w,h:u.h,minW:u.minW??1,minH:u.minH??1,i:n.nodeComponentIds[u.i],"drag-allow-from":`.${n.CONSTANTS.DRAGELEMENTCLASS}`,onMove:n.setCoordinates,onResize:n.updateDimensions,preserveAspectRatio:u.preserveAspectRatio??!0,"data-id":n.nodeComponentIds[u.i]},{default:ce(()=>[I("img",{class:We(["dragHandler",n.CONSTANTS.DRAGELEMENTCLASS]),src:Wn},null,2),(E(),W(Te(n.nodeComponents[n.nodeComponentIds[u.i]].type),{componentID:parseInt(n.nodeComponentIds[u.i]),storeObject:o.storeObject,componentPath:`nodes__${n.currentNode}__components__${parseInt(n.nodeComponentIds[u.i])}`},null,8,["componentID","storeObject","componentPath"]))]),_:2},1032,["static","x","y","w","h","minW","minH","i","drag-allow-from","onMove","onResize","preserveAspectRatio","data-id"]))),128))]),_:1},8,["layout","col-num","row-height","transform-scale"]))])])}const vo=R(Fn,[["render",Un],["__scopeId","data-v-775af240"]]),Kn={name:"FolderTabs",props:{tabs:Object},components:{Button:Ze},setup(){return{clickHandler:e=>{const o=e.currentTarget,n=document.querySelector(".active.tab");n&&n.classList.remove("active"),o!=n&&o.classList.add("active")}}}};const Qn={class:"folderTabs"},eo={class:"title"},to={class:"content"},no=["src"];function oo(t,e,o,n,r,c){const a=K("Button");return E(),j("div",Qn,[(E(!0),j(ae,null,re(o.tabs,(s,i)=>(E(),j("div",{class:"tab",onClick:e[0]||(e[0]=(...S)=>n.clickHandler&&n.clickHandler(...S)),key:i},[I("div",eo,[I("h2",null,oe(s.title),1)]),I("div",to,[I("p",null,oe(s.description),1),s.image?(E(),j("img",{key:0,src:s.image},null,8,no)):te("",!0),ve(a,{label:"Enter",data:s.data,callback:s.handler},null,8,["data","callback"])])]))),128))])}const ao=R(Kn,[["render",oo],["__scopeId","data-v-5a2ff7bf"]]),ro={components:{FolderTabs:ao},props:{storeObject:Object},setup(t){const e=ze(),{getProperty:o,setProperty:n}=t.storeObject,r=o("currentNode"),c=o(`nodes__${r}__pathDescriptions`),a=q(()=>o("previousNode")),s=u=>{const P=o("edges");return Object.entries(P).reduce((g,[v,y])=>(y.includes(u)&&(g=parseInt(v)),g),-1)},i=u=>{var y,d;document.querySelector(".traverse.backward").classList.add("fadeOut");const P=u.target,g=((d=(y=P.parentElement)==null?void 0:y.parentElement)==null?void 0:d.querySelector(".title")).textContent,v=P.dataset.id;n({path:"previousNode",value:r}),n({path:"currentNode",value:v}),n({path:`nodes__${r}__chosenPath`,value:g})},S=u=>{const P=u.currentTarget;P.classList.add("fadeOut");const{to:b}=P.dataset,g=s(parseInt(b));b?(n({path:"previousNode",value:g}),n({path:"currentNode",value:b})):e.push({name:"TaskOverview"})};return{tabs:Object.entries(c).map(([u,P])=>({data:{value:u,name:"id"},handler:i,...P})),previous:a,navigateBackwards:S}}};const so=t=>($e("data-v-cc592b1f"),t=t(),ke(),t),io={class:"branches"},co=["data-to"],lo=so(()=>I("p",null,"►",-1)),uo=[lo];function po(t,e,o,n,r,c){const a=K("FolderTabs");return E(),j("div",io,[I("div",{class:"traverse backward","data-to":n.previous,onClick:e[0]||(e[0]=(...s)=>n.navigateBackwards&&n.navigateBackwards(...s))},uo,8,co),ve(a,{tabs:n.tabs,storeObject:o.storeObject},null,8,["tabs","storeObject"])])}const fo=R(ro,[["render",po],["__scopeId","data-v-cc592b1f"]]);export{vo as C,fo as D}; diff --git a/src/server/public/assets/DecisionNode-f3816282.css b/src/server/public/assets/DecisionNode-f3816282.css deleted file mode 100644 index 8b05e91..0000000 --- a/src/server/public/assets/DecisionNode-f3816282.css +++ /dev/null @@ -1 +0,0 @@ -#minimap[data-v-a72cdf42]{display:block;position:fixed;right:.5vw;top:5vh;border:solid 2px black;opacity:.6;z-index:1;box-shadow:2px 3px 9px #000}.collapsed[data-v-a72cdf42]{display:none}.minimap_collapse[data-v-a72cdf42]{position:fixed;right:calc(.5vw + 6px);top:calc(5vh + 6px);width:2vh;height:2vh;min-height:20px;min-width:20px;background:white;cursor:pointer;z-index:2}#resizeCanvas[data-v-a72cdf42]{position:fixed;bottom:-999vh}.navigation[data-v-69364485]{position:absolute;width:100px;height:100px;bottom:20px;left:20px;display:flex;z-index:3;flex-direction:column;justify-content:space-around;align-items:center}.traverse[data-v-69364485]{display:flex;width:80%;height:30%;align-items:center;justify-content:space-around;font-size:20px;border:1px solid black;background:#57636b;box-shadow:2px 3px 9px #000;text-shadow:1px 1px 1px #b1b2b4;font-weight:700;cursor:auto;border-radius:5px}.traverse p[data-v-69364485]{margin-right:auto;cursor:pointer;color:#f1ad2d}.backward p[data-v-69364485]{transform:rotate(270deg)}.forward p[data-v-69364485]{transform:rotate(90deg)}.inValid p[data-v-69364485]{opacity:.6;cursor:not-allowed}.validity[data-v-69364485]{display:flex;align-items:center;justify-content:center;height:100%;margin-right:auto;width:2vw;background:green}.inValid .validity[data-v-69364485]{background:red;cursor:auto}.hint[data-v-fed12c44]{position:absolute;right:30px;top:15px;z-index:6;display:flex;min-width:100px;min-height:100px;flex-direction:column;justify-content:space-between;align-items:center;cursor:default}.lightBulb[data-v-fed12c44]{width:50px;height:50px;padding:5px;cursor:pointer;border-radius:50%;background:#57636b;border:1px solid black;box-shadow:2px 3px 9px #000}.hintText.closed[data-v-fed12c44]{opacity:0;max-height:0px;max-width:0px;transition:all .7s ease}.hintText[data-v-fed12c44]{opacity:1;display:flex;flex-direction:column;margin-top:15px;max-height:500px;max-width:350px;height:500px;width:350px;justify-content:space-around;align-items:center;border-radius:5px;background:#57636b;border:1px solid black;box-shadow:2px 3px 9px #000;transition:all .7s ease}.hintNavigation[data-v-fed12c44]{display:flex;width:90%;justify-content:space-around;align-items:center}.hintNavigation[data-v-fed12c44]{font-size:30px;font-weight:bolder;color:#f1ad2d;text-shadow:2px 2px 1px black}.hintNavigation .forward[data-v-fed12c44],.hintNavigation .backward[data-v-fed12c44]{text-align:center;cursor:pointer;border:1px solid black;box-shadow:1px 2px 6px #000;width:40px;height:30px;margin:10px;background:#57636b}.hintNavigation .backward[data-v-fed12c44]:hover,.hintNavigation .forward[data-v-fed12c44]:hover{transform:scale(1.05);box-shadow:2px 3px 9px #000;transition:all .2s ease}.hintText p[data-v-fed12c44]{display:flex;flex-direction:column;justify-content:center;align-items:center;height:370px;width:290px;border-radius:5px;background:#b1b2b4;border:1px solid black;box-shadow:2px 3px 9px #000;color:#57636b;font-size:25px;overflow-y:scroll;padding:30px 10px 0;text-align:center}[data-v-fed12c44]::-webkit-scrollbar{width:10px}[data-v-fed12c44]::-webkit-scrollbar-track{background:#888}[data-v-fed12c44]::-webkit-scrollbar-thumb{background:#57636b}[data-v-fed12c44]::-webkit-scrollbar-thumb:hover{background:#555}.textarea[data-v-9c455e99]{width:100%;height:95%;margin-top:5%;font-size:25px}.overlay[data-v-ee048682]{position:absolute;width:100vw;height:100vh;z-index:99;background-color:#00000080;display:flex;justify-content:center;align-items:center;cursor:default}.modal[data-v-ee048682]{position:absolute;display:flex;flex-direction:column;width:30vw;height:40vh;justify-content:space-around;align-items:center;background:#e8edf1;z-index:99;border:1px solid black;border-radius:2px;box-shadow:2px 3px 9px #000;color:#57636b}.modal__header[data-v-ee048682]{display:flex;justify-content:center;width:100%;font-size:30px;font-weight:bolder}.modal__background[data-v-ee048682]{background:#b1b2b4;width:90%;height:90%}.modal__footer[data-v-ee048682]{display:flex;justify-content:space-around;align-items:center;width:100%;height:60px;padding-bottom:5px}.closeModal[data-v-ee048682]{position:absolute;top:2px;right:2px;padding:5px;border:1px solid black;box-shadow:2px 3px 9px #000;background:#57636b;color:#fff;cursor:pointer;font-size:20px}.fade-enter-active[data-v-ee048682],.fade-leave-active[data-v-ee048682]{transition:opacity .4s ease}.fade-enter-from[data-v-ee048682],.fade-leave-to[data-v-ee048682]{opacity:0}.dropZone[data-v-3ffdd6c0]{width:100%;height:100%}.dragElement[data-v-951cdf11]{border:1px dashed gray;background-color:#fff;min-width:100px;min-height:50px;margin:5px;cursor:move}.dragging[data-v-951cdf11]{opacity:.4}.itemPallet[data-v-3037b92b]{display:flex;width:100%;height:100%;margin-right:auto;flex-direction:row;align-items:center}.dragElements[data-v-3037b92b]{display:flex;flex-direction:column;justify-content:space-around;align-items:center;width:20%;height:100%;background:darkgrey;box-shadow:1px 0 1px #000}.dropZones[data-v-3037b92b]{display:flex;flex-direction:column;justify-content:center;align-items:center;width:80%;height:100%}.canvas[data-v-775af240]{width:100vw;height:100vw}.zoomWrapper[data-v-775af240]{width:10000px;height:10000px;border:1px solid black}.grid[data-v-775af240]{width:10000px;min-height:10000px}.dragHandler[data-v-775af240]{position:absolute;top:5px;left:5px;width:20px;height:20px;z-index:999}.vgl-layout[data-v-775af240]{--vgl-placeholder-bg: red;--vgl-placeholder-opacity: 20%;--vgl-placeholder-z-index: 2;--vgl-item-resizing-z-index: 999;--vgl-item-resizing-opacity: 60%;--vgl-item-dragging-z-index: 999;--vgl-item-dragging-opacity: 100%;--vgl-resizer-size: 10px;--vgl-resizer-border-color: #444;--vgl-resizer-border-width: 2px}.vgl-item[data-v-775af240]{touch-action:none;border:solid 1px black;box-sizing:border-box;cursor:default;box-shadow:2px 3px 9px #da1507;box-shadow:2px 3px 5px #08a63c;box-shadow:2px 3px 9px #000}.vgl-item--resizing[data-v-775af240]{opacity:.9}.vgl-item .no-drag[data-v-775af240]{height:100%;width:100%}.vgl-item .add[data-v-775af240]{cursor:default}.vue-draggable-handle[data-v-775af240]{position:absolute;width:20px;height:20px;top:0;left:0;background:url("data:image/svg+xml;utf8,") no-repeat;background-position:bottom right;padding:0 8px 8px 0;background-repeat:no-repeat;background-origin:content-box;box-sizing:border-box;cursor:pointer}[data-v-775af240] .vgl-item:not(.vgl-item--placeholder){background-color:#f3f3f3;border:1px solid black}.vgl-item .vue-grid-placeholder[data-v-775af240]{background:grey!important}.vgl-layout[data-v-775af240]:before{position:absolute;width:calc(100% - 5px);height:calc(100% - 5px);margin:5px;content:"";background-image:linear-gradient(to right,lightgrey 1px,transparent 1px),linear-gradient(to bottom,lightgrey 1px,transparent 1px);background-repeat:repeat;background-size:calc(calc(100% - 5px) / 12) 40px}.vue-resizable-handle{z-index:999!important}.folderTabs[data-v-5a2ff7bf]{display:flex;min-height:100vh;max-height:100vh}.tab[data-v-5a2ff7bf]{flex:1;display:flex;align-items:stretch;background:#57636b;cursor:pointer;transition:all 1s ease}.tab[data-v-5a2ff7bf]:hover{filter:brightness(85%)}.tab.active[data-v-5a2ff7bf]:hover{filter:brightness(100%)}.tab.active[data-v-5a2ff7bf]{flex:20;background:#e8edf1;cursor:default}.title[data-v-5a2ff7bf]{flex:5;display:flex;align-items:center;width:100%;text-align:center}h2[data-v-5a2ff7bf]{color:#f1ad2d;width:100%;height:25vh;min-width:15vw;transform:rotate(-90deg);white-space:nowrap;transition:all .5s .2s ease-out}.active h2[data-v-5a2ff7bf]{color:#57636b;transform:rotate(0);height:5vh;transition:all .5s .2s ease-out;font-size:40px}.content[data-v-5a2ff7bf]{flex:1;display:flex;justify-content:space-around;align-items:center;opacity:0;transition:all .4s .3s ease-out}.active .content[data-v-5a2ff7bf]{flex:18;opacity:1;transform:scaleX(1);color:#57636b}.content p[data-v-5a2ff7bf]{width:20vw;padding:15px;border-radius:5px;font-size:20px;text-align:justify;background:#b1b2b4;box-shadow:2px 3px 9px #000}.content img[data-v-5a2ff7bf]{border-radius:5px;border:1px solid #57636b;box-shadow:2px 3px 9px #000;width:20vw;height:auto}.decisions[data-v-cc592b1f]{display:flex;flex-direction:row;justify-items:space-evenly;align-items:center;width:100vw;height:100vh}.branch[data-v-cc592b1f]{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;border:1px dotted black;z-index:2}.traverse[data-v-cc592b1f]{position:absolute;z-index:999;bottom:40px;left:40px;display:flex;width:40px;height:30px;align-items:center;justify-content:center;font-size:20px;border:1px solid black;background:#57636b;box-shadow:2px 3px 9px #000;text-shadow:1px 1px 1px #b1b2b4;font-weight:700;cursor:auto;border-radius:5px;opacity:1}.fadeOut[data-v-cc592b1f]{opacity:0;transition:all .1s}.traverse p[data-v-cc592b1f]{color:#f1ad2d}.backward p[data-v-cc592b1f]{cursor:pointer;transform:rotate(270deg)} diff --git a/src/server/public/assets/Replay-17dbc327.js b/src/server/public/assets/Replay-17dbc327.js deleted file mode 100644 index 9b427a2..0000000 --- a/src/server/public/assets/Replay-17dbc327.js +++ /dev/null @@ -1 +0,0 @@ -import{B as U,x as ee,d as T,y as te,_ as X,r as N,c as B,b as w,F as se,n as oe,g as x,o as v,z as re,A as ae,p as ne,a as ce,s as H,u as le,w as L,T as W,h as F,i as V}from"./index-ac1dbb22.js";import{C as ie,D as pe}from"./DecisionNode-89ad19b5.js";import"./index-8ac73e8f.js";const de={name:"ReplayOverlay",props:{replayStore:Object,taskStore:Object},components:{Button:U},setup(u){const i=ee(),{store:h,getProperty:r,setProperty:k}=u.replayStore,c=T(()=>{const e=r("taskReplay");return e||{}}),p=window.innerWidth*.6*.95,l=window.innerWidth*.215,m=e=>{const o={start:new Date().getTime(),duration:0,end:0};return Object.values(e).forEach(t=>{if(!t.length)return;const a=t[0].timestamp,s=t[t.length-1].timestamp;ao.end&&(o.end=s)}),o.duration=o.end-o.start,o},S=(e,o)=>{const{mouse:t}=e;let a=o,s=[];return t.reduce((d,y)=>{const{timestamp:R}=y;return R-a<=50?s.push(y):(d[a]=s,s=[y]),a+=50,d},{})};let g,C,A,f=g,O={};te(c,e=>{k({path:"currentTask",value:e.steps[0].value}),{start:g,duration:C,end:A}=m(e),O=S(e,g),f=g});const Y=e=>({left:`${(c.value.steps[e].timestamp-g)/C*p}px`}),P=(e,o=!1)=>{const t=document.querySelector(".fakeCursor"),{mouse:a}=c.value;if(o){const s=a.filter(n=>n.timestamp{const{x:n,y:d}=s;t.style.transform=`translate(${n}px, ${d}px)`})};let b={x:5e3,y:5e3};const z=e=>{if(b){const{x:o,y:t}=b;c.value.panning.filter(s=>s.timestampf).forEach(s=>{const n=Math.abs(o)-Math.abs(s.x),d=Math.abs(t)-Math.abs(s.y);window.panzoom.pan(n,d,{relative:!0,animate:!0}),b=window.panzoom.getPan()})}},$=e=>{c.value.zooming.filter(t=>t.timestampf).forEach(t=>{let{scale:a,x:s,y:n}=t;window.panzoom.zoomToPoint(a,{clientX:s,clientY:n},{animate:!0})})},j=e=>{let o=[];et.timestampt.timestampf),o.forEach(t=>{const{path:a,value:s}=t;k({path:a,value:s})})},G=e=>e/p*C+g,Z=e=>{const t=e.currentTarget.firstChild,a=e.pageX-l;t.style.width=`${a}px`;const s=G(a);f=s,O=S(c.value,s),j(s),P(s,!0),z(s),$(s)};let I,_=!1;const J=e=>{const o=e.currentTarget;if(_){clearInterval(I),_=!_,o.innerHTML="►";return}o.innerHTML="❚ ❚",_=!_;const t=50;let a=f;const s=t*p/C,n=document.querySelector(".progress");I=setInterval(()=>{const y=n.offsetWidth+s;y>p&&(clearInterval(I),_=!_,o.innerHTML="►"),n.style.width=`${y}px`,a+=t,j(a),P(a),z(a),f=a,!b&&window.panzoom&&(b=window.panzoom.getPan())},t)},K=()=>{const e=r("currentTask");["currentTask","layoutSize","currentNode","previousNode","rootNode","topology","edges","nodes","taskData","taskReplay"].forEach(t=>{let a=r(t);t==="taskReplay"&&(a=Object.entries(a).reduce((n,[d,y])=>{if(d==="meta")return n;const R=y.map(M=>{const E=new Date().getTime(),Q=E-M.timestamp;return M.timestamp=E-Q,M});return n[d]=R,n},{})),u.taskStore.setProperty({path:t,value:a}),u.taskStore.store.dispatch("setRestoredFromReplay")}),i.push({name:"Task",params:{task:e}})};let D;return{replayGraph:c,jumpHandler:Z,startStopHandler:J,placeMarker:Y,enterTask:K,fadeControlsIn:e=>{clearTimeout(D);const o=e.target;o.style.opacity="1"},fadeControlsOut:e=>{const o=e.target;D=setTimeout(()=>{o.style.opacity="0.3"},3e3)}}}},ue="/img/fake_cursor.png";const q=u=>(ne("data-v-b424f19c"),u=u(),ce(),u),me={class:"replayOverlay"},fe=q(()=>w("img",{class:"fakeCursor",src:ue},null,-1)),ye=q(()=>w("div",{class:"progress"},null,-1)),_e={class:"controlElements"};function ge(u,i,h,r,k,c){const p=N("Button");return v(),B("div",me,[fe,w("div",{class:"replay",onMouseenter:i[1]||(i[1]=(...l)=>r.fadeControlsIn&&r.fadeControlsIn(...l)),onMouseleave:i[2]||(i[2]=(...l)=>r.fadeControlsOut&&r.fadeControlsOut(...l))},[w("div",{class:"progressBar",onClick:i[0]||(i[0]=(...l)=>r.jumpHandler&&r.jumpHandler(...l))},[ye,(v(!0),B(se,null,oe(r.replayGraph.steps,(l,m)=>(v(),B("div",{class:re(`marker__${m} marker`),style:ae(r.placeMarker(m)),key:l.timestamp}," | ",6))),128))]),w("div",_e,[x(p,{class:"playButton",callback:r.startStopHandler,label:"►"},null,8,["callback"]),x(p,{class:"enterButton",callback:r.enterTask,label:"🗲"},null,8,["callback"])])],32)])}const ve=X(de,[["render",ge],["__scopeId","data-v-b424f19c"]]),he={name:"Replay",components:{Canvas:ie,DecisionNode:pe,ReplayOverlay:ve},setup(){const u=H.taskStore,i=H.replayStore,{store:h,getProperty:r,setProperty:k}=i,c=le();typeof c.params.id=="string"&&h.dispatch("fetchReplayGraph",{id:c.params.id});const p=T(()=>r("currentNode")),l=T(()=>{const S=r(`edges__${p.value}`);return S?S.length>1:!1}),m=T(()=>r("currentNode")!==null);return{currentNode:p,isDecisionNode:l,isLoaded:m,replayStore:i,taskStore:u}}};const ke={class:"task"};function Se(u,i,h,r,k,c){const p=N("DecisionNode"),l=N("Canvas"),m=N("ReplayOverlay");return v(),B("div",ke,[x(W,{name:"slidedown"},{default:L(()=>[r.isDecisionNode?(v(),F(p,{key:0,storeObject:r.replayStore},null,8,["storeObject"])):V("",!0)]),_:1}),x(W,{name:"slidedown"},{default:L(()=>[!r.isDecisionNode&&r.isLoaded?(v(),F(l,{key:r.currentNode,storeObject:r.replayStore},null,8,["storeObject"])):V("",!0)]),_:1}),x(m,{replayStore:r.replayStore,taskStore:r.taskStore},null,8,["replayStore","taskStore"])])}const Te=X(he,[["render",Se],["__scopeId","data-v-05b3d9a7"]]);export{Te as default}; diff --git a/src/server/public/assets/Replay-c5a30d44.css b/src/server/public/assets/Replay-c5a30d44.css deleted file mode 100644 index 1fe98d3..0000000 --- a/src/server/public/assets/Replay-c5a30d44.css +++ /dev/null @@ -1 +0,0 @@ -.replayOverlay[data-v-b424f19c]{position:fixed;top:0;left:0;height:100vh;width:100vw;z-index:4}.replay[data-v-b424f19c]{position:fixed;display:flex;flex-direction:column;left:20vw;bottom:5vh;height:15vh;width:60vw;align-items:center;justify-content:space-around;z-index:3}.progressBar[data-v-b424f19c]{position:relative;display:flex;flex-direction:row;background:#b1b2b4;height:20px;width:95%;border-radius:10px;border:1px solid #f1ad2d;box-shadow:2px 3px 9px #000;cursor:pointer}.progress[data-v-b424f19c]{position:absolute;background:#57636b;height:20px;width:0;z-index:1}.marker[data-v-b424f19c]{position:absolute;color:#000;width:1.5px}.controlElements[data-v-b424f19c]{display:flex;width:15vw;height:8vh;justify-content:space-around;transition:opacity 2s linear;opacity:1}.fakeCursor[data-v-b424f19c]{display:none;position:absolute;top:50%;left:50%;width:40px;height:40px;transition:.05s}.slidedown-enter-active[data-v-05b3d9a7],.slidedown-leave-active[data-v-05b3d9a7]{transition:max-height .3s ease-in-out}.slidedown-enter-to[data-v-05b3d9a7],.slidedown-leave-from[data-v-05b3d9a7]{overflow:hidden;max-height:100vh}.slidedown-enter-from[data-v-05b3d9a7],.slidedown-leave-to[data-v-05b3d9a7]{overflow:hidden;max-height:0} diff --git a/src/server/public/assets/ReplayOverview-097d28d8.js b/src/server/public/assets/ReplayOverview-097d28d8.js deleted file mode 100644 index ad6009f..0000000 --- a/src/server/public/assets/ReplayOverview-097d28d8.js +++ /dev/null @@ -1 +0,0 @@ -import{l,e as d,v as _,_ as p,r as u,c as i,b as s,F as v,n as h,o,h as y,w as f,t as a,p as m,a as k}from"./index-ac1dbb22.js";const w={setup(){const e=l({});return d(async()=>{const n=await _.post("/api/fetchReplayOverview",{user:"dummy"});e.value=JSON.parse(n.data).replayList}),{replayList:e}}};const S=e=>(m("data-v-fb79a4af"),e=e(),k(),e),x={class:"replayOverview"},D={class:"replayList"},L=S(()=>s("div",{class:"header"},[s("div",null,"Task"),s("div",null,"Duration"),s("div",null,"Date"),s("div",null,"Status")],-1)),O={class:"list"},b={class:"replayTask"},g={class:"replayDuration"},B={class:"replayDate"},I={class:"replayStatus"};function $(e,n,C,r,F,R){const c=u("router-link");return o(),i("div",x,[s("div",D,[L,s("div",O,[(o(!0),i(v,null,h(r.replayList,t=>(o(),y(c,{class:"replayListEntry",key:t.hash,to:`/replay/${t.hash}`},{default:f(()=>[s("div",b,a(t.task),1),s("div",g,a((t.duration/1e3/60).toFixed(2))+" Minuten",1),s("div",B,a(new Date(t.date).toUTCString()),1),s("div",I,a(t.completion),1)]),_:2},1032,["to"]))),128))])])])}const E=p(w,[["render",$],["__scopeId","data-v-fb79a4af"]]);export{E as default}; diff --git a/src/server/public/assets/ReplayOverview-0c74b5e2.css b/src/server/public/assets/ReplayOverview-0c74b5e2.css deleted file mode 100644 index 2cee350..0000000 --- a/src/server/public/assets/ReplayOverview-0c74b5e2.css +++ /dev/null @@ -1 +0,0 @@ -.replayOverview[data-v-fb79a4af]{display:flex;width:100vw;height:100vh;justify-content:center;align-items:center}.replayList[data-v-fb79a4af]{display:flex;width:80vw;height:80vh;flex-direction:column;justify-content:space-around;align-items:center;background:#b1b2b4;border-radius:5px;box-shadow:2px 3px 9px #000}.replayListEntry[data-v-fb79a4af],.header[data-v-fb79a4af]{display:flex;width:95%;height:50px;min-height:50px;margin-bottom:20px;padding:10px 0;justify-content:space-around;align-items:center;background:#57636b;border-radius:5px;box-shadow:2px 3px 9px #000}.header[data-v-fb79a4af]{margin-top:1vh;margin-bottom:5vh;width:98%;font-size:30px}.list[data-v-fb79a4af]{display:flex;width:100%;height:100%;max-height:800px;overflow-y:scroll;flex-direction:column;align-items:center}.replayListEntry div[data-v-fb79a4af],.header div[data-v-fb79a4af]{display:flex;align-items:center;justify-content:center;border:1px solid #f1ad2d;padding:10px;border-radius:5px;background:#e8edf1;box-shadow:2px 3px 9px #000;width:20%;font-size:20px;font-weight:700;color:#000}.header div[data-v-fb79a4af]{font-size:30px}.replayListEntry[data-v-fb79a4af]{filter:brightness(100%);transition:.15s;text-decoration:none}.replayListEntry[data-v-fb79a4af]:hover{filter:brightness(85%);transition:.15s;border:1px solid #f1ad2d} diff --git a/src/server/public/assets/Settings-6fa90251.js b/src/server/public/assets/Settings-6fa90251.js deleted file mode 100644 index c5dbc6e..0000000 --- a/src/server/public/assets/Settings-6fa90251.js +++ /dev/null @@ -1 +0,0 @@ -import{S as w,o}from"./index-8ac73e8f.js";import{j as r,k as n,l,c as s,g as c,w as x,m as a,o as t,F as _,n as u,h as d,q as p,t as g,_ as f}from"./index-ac1dbb22.js";const v={class:"settings"},m=r({__name:"Settings",setup(S){const h=n({md:[{x:0,y:0,w:2,h:2,i:"0"},{x:2,y:0,w:2,h:4,i:"1"},{x:4,y:0,w:2,h:5,i:"2"},{x:6,y:0,w:2,h:3,i:"3"},{x:2,y:4,w:2,h:3,i:"4"},{x:4,y:5,w:2,h:3,i:"5"},{x:0,y:2,w:2,h:5,i:"6"},{x:2,y:7,w:2,h:5,i:"7"},{x:4,y:8,w:2,h:5,i:"8"},{x:6,y:3,w:2,h:4,i:"9"},{x:0,y:7,w:2,h:4,i:"10"},{x:2,y:19,w:2,h:4,i:"11"},{x:0,y:14,w:2,h:5,i:"12"},{x:2,y:14,w:2,h:5,i:"13"},{x:4,y:13,w:2,h:4,i:"14"},{x:6,y:7,w:2,h:4,i:"15"},{x:0,y:19,w:2,h:5,i:"16"},{x:8,y:0,w:2,h:2,i:"17"},{x:0,y:11,w:2,h:3,i:"18"},{x:2,y:12,w:2,h:2,i:"19"}],lg:[{x:0,y:0,w:2,h:2,i:"0"},{x:2,y:0,w:2,h:4,i:"1"},{x:4,y:0,w:2,h:5,i:"2"},{x:6,y:0,w:2,h:3,i:"3"},{x:8,y:0,w:2,h:3,i:"4"},{x:10,y:0,w:2,h:3,i:"5"},{x:0,y:5,w:2,h:5,i:"6"},{x:2,y:5,w:2,h:5,i:"7"},{x:4,y:5,w:2,h:5,i:"8"},{x:6,y:4,w:2,h:4,i:"9"},{x:8,y:4,w:2,h:4,i:"10"},{x:10,y:4,w:2,h:4,i:"11"},{x:0,y:10,w:2,h:5,i:"12"},{x:2,y:10,w:2,h:5,i:"13"},{x:4,y:8,w:2,h:4,i:"14"},{x:6,y:8,w:2,h:4,i:"15"},{x:8,y:10,w:2,h:5,i:"16"},{x:10,y:4,w:2,h:2,i:"17"},{x:0,y:9,w:2,h:3,i:"18"},{x:2,y:6,w:2,h:2,i:"19"}]}),e=l(h.lg);return(k,y)=>(t(),s("div",v,[c(a(w),{layout:e.value,"onUpdate:layout":y[0]||(y[0]=i=>e.value=i),"col-num":12,"row-height":30,"is-draggable":"","is-resizable":"","vertical-compact":"","use-css-transforms":""},{default:x(()=>[(t(!0),s(_,null,u(e.value,i=>(t(),d(a(o),{key:i.i,x:i.x,y:i.y,w:i.w,h:i.h,i:i.i},{default:x(()=>[p(g(i.i),1)]),_:2},1032,["x","y","w","h","i"]))),128))]),_:1},8,["layout"])]))}});const C=f(m,[["__scopeId","data-v-253e3eb2"]]);export{C as default}; diff --git a/src/server/public/assets/Settings-ad2b85f9.css b/src/server/public/assets/Settings-ad2b85f9.css deleted file mode 100644 index 186a17f..0000000 --- a/src/server/public/assets/Settings-ad2b85f9.css +++ /dev/null @@ -1 +0,0 @@ -.settings[data-v-253e3eb2]{display:flex;justify-content:center;align-items:center;width:100vw;height:100vh;flex-direction:column}.vgl-layout[data-v-253e3eb2]{background-color:#eee;width:100vw;height:100vh}[data-v-253e3eb2] .vgl-item:not(.vgl-item--placeholder){background-color:#ccc;border:1px solid black}[data-v-253e3eb2] .vgl-item--resizing{opacity:90%}[data-v-253e3eb2] .vgl-item--static{background-color:#cce}.text[data-v-253e3eb2]{position:absolute;inset:0;width:100%;height:100%;margin:auto;font-size:24px;text-align:center} diff --git a/src/server/public/assets/Task-1392d80c.css b/src/server/public/assets/Task-1392d80c.css deleted file mode 100644 index 368211d..0000000 --- a/src/server/public/assets/Task-1392d80c.css +++ /dev/null @@ -1 +0,0 @@ -.loadingLayer[data-v-8a68a305]{display:flex;align-items:center;justify-content:center;width:100vw;height:100vh}.loadingSpinner[data-v-8a68a305]{width:10vw;height:10vw}.slidedown-enter-active[data-v-1b3726b0],.slidedown-leave-active[data-v-1b3726b0]{transition:max-height .3s ease-in-out}.slidedown-enter-to[data-v-1b3726b0],.slidedown-leave-from[data-v-1b3726b0]{overflow:hidden;max-height:100vh}.slidedown-enter-from[data-v-1b3726b0],.slidedown-leave-to[data-v-1b3726b0]{overflow:hidden;max-height:0}.fade-enter-active[data-v-1b3726b0],.fade-leave-active[data-v-1b3726b0]{transition:opacity .5s ease}.fade-enter-from[data-v-1b3726b0],.fade-leave-to[data-v-1b3726b0]{opacity:0} diff --git a/src/server/public/assets/Task-1a73f8cd.js b/src/server/public/assets/Task-1a73f8cd.js deleted file mode 100644 index 07b8005..0000000 --- a/src/server/public/assets/Task-1a73f8cd.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as N,c as S,o as a,p as D,a as b,b as T,s as x,u as w,d as i,e as C,f as B,r as m,g as v,w as h,T as y,h as l,i as g}from"./index-ac1dbb22.js";import{C as I,D as j}from"./DecisionNode-89ad19b5.js";import"./index-8ac73e8f.js";const O={name:"LoadingSpinner",setup(){return{}}},$="/img/loading_spinner.svg";const E=t=>(D("data-v-8a68a305"),t=t(),b(),t),M={class:"loadingLayer"},R=E(()=>T("img",{class:"loadingSpinner",src:$},null,-1)),V=[R];function G(t,r,s,e,n,c){return a(),S("div",M,V)}const P=N(O,[["render",G],["__scopeId","data-v-8a68a305"]]),F={name:"Task",components:{Canvas:I,DecisionNode:j,LoadingSpinner:P},setup(){const t=x.taskStore,{store:r,getProperty:s,setProperty:e}=t,n=w(),c=i(()=>s("currentNode")),d=i(()=>{const o=s(`edges__${c.value}`);return o?o.length>1:!1}),_=i(()=>s("isLoading")),p=i(()=>s("restoredFromReplay"));typeof n.params.task=="string"&&!p.value&&(e({path:"currentTask",value:n.params.task}),r.dispatch("fetchTaskGraph",{task:n.params.task}));const L=50;let f=new Date().getTime();const k=o=>{o.preventDefault();const u=new Date().getTime();o.target,!(u-f{document.addEventListener("mousemove",k)}),B(()=>{document.removeEventListener("mousemove",k)}),{currentNode:c,isDecisionNode:d,taskStore:t,isLoading:_}}};const U={class:"task"};function X(t,r,s,e,n,c){const d=m("LoadingSpinner"),_=m("DecisionNode"),p=m("Canvas");return a(),S("div",U,[v(y,{name:"fade"},{default:h(()=>[e.isLoading?(a(),l(d,{key:0})):g("",!0)]),_:1}),v(y,{name:"slidedown"},{default:h(()=>[e.isDecisionNode?(a(),l(_,{storeObject:e.taskStore,key:e.currentNode},null,8,["storeObject"])):g("",!0)]),_:1}),!e.isDecisionNode&&!e.isLoading?(a(),l(p,{key:e.currentNode,storeObject:e.taskStore},null,8,["storeObject"])):g("",!0)])}const A=N(F,[["render",X],["__scopeId","data-v-1b3726b0"]]);export{A as default}; diff --git a/src/server/public/assets/index-7f39dae4.css b/src/server/public/assets/index-7f39dae4.css deleted file mode 100644 index 0b0fb27..0000000 --- a/src/server/public/assets/index-7f39dae4.css +++ /dev/null @@ -1 +0,0 @@ -.menuBubble[data-v-48098402]{position:absolute;width:10vw;height:10vw;top:-5vw;left:-5vw;background:linear-gradient(90deg,#57636b,#40494f);border-radius:50%;z-index:6;box-shadow:2px 3px 9px #000;cursor:pointer;text-shadow:2px 2px black;transition:all 1s ease}.menuBubble[data-v-48098402]:hover{filter:brightness(85%);transition:all 1s ease}.menuBubble>p[data-v-48098402]{position:relative;top:5vw;left:5.5vw;color:#f1ad2d;font-size:50px;box-shadow:inset 0 -7px 5px -7px #0000}.menuOptions[data-v-48098402]{position:absolute;top:0vh;left:0vh;height:0vh;width:0vw;z-index:5;transition-delay:.1s;transition:all .5s cubic-bezier(.25,.8,.25,1)}.open .menuOptions[data-v-48098402]{position:absolute;width:20vw;height:20vh;display:block}.menu__option[data-v-48098402]{top:0;left:0;position:absolute;display:flex;font-size:1vw;cursor:pointer;border-radius:50%;border:2px solid #f1ad2d;background:#57636b;width:0vw;height:0vw;align-items:center;justify-content:center;z-index:3;box-shadow:2px 3px 4px #000;transition-delay:.1s;transition:all .5s cubic-bezier(.25,.8,.25,1)}.open .menu__option[data-v-48098402]{width:2vw;height:2vw}.open .home[data-v-48098402]{top:1vh;left:6.5vw}.open .settings[data-v-48098402]{top:6vh;left:5.5vw;font-size:1.5vw}.open .statistics[data-v-48098402]{top:9.5vh;left:3.5vw}.open .replay[data-v-48098402]{top:12vh;left:1vw}.open .menu__option--tooltip[data-v-48098402]{display:none}.menu__option:hover .menu__option--tooltip[data-v-48098402]{display:block;position:absolute;top:3vw;left:4vw}*{overflow:hidden;margin:0;padding:0}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none}input[type=number]{appearance:textfield;-moz-appearance:textfield}body{background:#e8edf1;box-shadow:inset 0 -7px 5px -7px #000;box-shadow:inset -7px -7px 5px -7px #000}.tooltip{display:block!important;z-index:10000}.tooltip-inner{background:black;color:#fff;border-radius:16px;padding:5px 10px 4px}.tooltip-arrow{width:0;height:0;border-style:solid;position:absolute;margin:5px;border-color:#000}.tooltip[x-placement^=top]{margin-bottom:5px}.tooltip[x-placement^=top] .tooltip-arrow{border-width:5px 5px 0 5px;border-left-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important;bottom:-5px;left:calc(50% - 5px);margin-top:0;margin-bottom:0}.tooltip[x-placement^=bottom]{margin-top:5px}.tooltip[x-placement^=bottom] .tooltip-arrow{border-width:0 5px 5px 5px;border-left-color:transparent!important;border-right-color:transparent!important;border-top-color:transparent!important;top:-5px;left:calc(50% - 5px);margin-top:0;margin-bottom:0}.tooltip[x-placement^=right]{margin-left:5px}.tooltip[x-placement^=right] .tooltip-arrow{border-width:5px 5px 5px 0;border-left-color:transparent!important;border-top-color:transparent!important;border-bottom-color:transparent!important;left:-5px;top:calc(50% - 5px);margin-left:0;margin-right:0}.tooltip[x-placement^=left]{margin-right:5px}.tooltip[x-placement^=left] .tooltip-arrow{border-width:5px 0 5px 5px;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important;right:-5px;top:calc(50% - 5px);margin-left:0;margin-right:0}.tooltip[aria-hidden=true]{visibility:hidden;opacity:0;transition:opacity .15s,visibility .15s}.tooltip[aria-hidden=false]{visibility:visible;opacity:1;transition:opacity .15s}.taskOverview[data-v-0baf423b]{width:100vw;height:100vh}.node[data-v-0baf423b]{display:flex;justify-content:center;align-items:center;position:absolute;height:8vw;width:8vw;background:#57636b;border-radius:50%;text-decoration:none;box-shadow:2px 3px 9px #000;text-shadow:1px 1px 1px #b1b2b4;font-size:18px}.center[data-v-0baf423b]{height:9vw;width:9vw;color:#f1ad2d;font-size:20px}.taskOverview_taskNode[data-v-0baf423b]{transition:all .2s ease;background:#e8edf1;filter:brightness(70%);color:#57636b;opacity:0}.taskOverview_taskNode[data-v-0baf423b]:hover{filter:brightness(85%);transition:all .5s ease;color:#f1ad2d;font-size:20px;transform:scale(1.02);background:#57636b}.scalar[data-v-dbbc5796]{width:30px;text-align:center;padding:5px}.wrapper[data-v-b512c411]{position:absolute;width:inherit;height:100%}.contextMenuClickable[data-v-b512c411]{position:absolute;top:-4px;left:27px;transform:rotate(90deg);font-size:35px;cursor:pointer}.contextMenu[data-v-b512c411]{display:hidden;background:#57636b;color:#e8edf1}.contextMenu.open[data-v-b512c411]{display:flex;position:relative;flex-direction:column;justify-content:center;align-items:center;position:absolute;top:25px;left:35px;z-index:5;font-size:20px;cursor:pointer;border:1px solid black}.contextMenu.open div[data-v-b512c411]{border:1px solid black;width:100%}input[data-v-344ad161]::-webkit-outer-spin-button,input[data-v-344ad161]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.matrix[data-v-344ad161]{width:100%;min-height:100%;height:100%;border-collapse:collapse;table-layout:fixed}.matrix .matrix_element[data-v-344ad161]{min-height:100%;position:relative;border:2px solid black}.matrix input[data-v-344ad161]{top:0px;position:absolute;width:100%;min-height:100%;font-size:130%;text-align:center}th[data-v-344ad161]{min-height:100%;border:2px solid black;background:#57636b;color:#b1b2b4}.matrix_label[data-v-344ad161]{font-size:130%;width:100%;text-align:center}.valid[data-v-344ad161]{background:green}.invalid[data-v-344ad161]{background:red}input[disabled][data-v-344ad161]{background:lightgrey}.dotGraph{display:flex;justify-items:center;align-content:center;width:100%;height:100%}.dotGraph>svg{display:flex;justify-items:center;align-content:center;width:100%;height:100%}.graph{display:flex;justify-content:center;align-items:center;width:100%;height:100%}input[data-v-6e71e00e]{margin:5px;width:50px;border-radius:5px;text-align:center;border:3px solid black}input[data-v-6e71e00e]:focus{outline:none}input.invalid[data-v-6e71e00e]{border:3px solid red}input.valid[data-v-6e71e00e]{border:3px solid green}select[data-v-f793fa95]{width:100%;border-radius:5px;text-align-last:center;text-align:center}input[type=checkbox][data-v-274eb3f0]{width:14px!important;height:14px!important;margin:5px;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid #b1b2b4;box-shadow:none;font-size:.8em;text-align:center;line-height:1em;background:#57636b}input[type=checkbox][data-v-274eb3f0]:checked:after{text-align:center;content:"✔";color:#f1ad2d;filter:brightness(120%);background:#57636b}input[data-v-4502a64f]{margin:5px;width:50px;border-radius:5px;text-align:center;border:3px solid black}input[data-v-4502a64f]:focus{outline:none}input.invalid[data-v-4502a64f]{border:3px solid red}input.valid[data-v-4502a64f]{border:3px solid green}input[data-v-227001bb]{margin:5px;width:50px;border-radius:5px;text-align:center;border:3px solid black}input[data-v-227001bb]:focus{outline:none}input.invalid[data-v-227001bb]{border:3px solid red}input.valid[data-v-227001bb]{border:3px solid green}.button[data-v-03846e4d]{text-align:center;line-height:5vh;min-width:5vw;padding:0 10px;height:5vh;border-radius:10px;box-shadow:2px 3px 9px #000;font-size:20px;font-weight:700;cursor:pointer;text-shadow:2px 2px black;transition:all 1s ease}.button[data-v-03846e4d]:hover{filter:brightness(85%);transition:all 1s ease}.default[data-v-03846e4d]{background:linear-gradient(90deg,#57636b,#40494f);color:#f1ad2d}.actions[data-v-8b1e3451]{display:flex;justify-content:center;align-items:center;width:10vw;height:10vh;cursor:default;opacity:1}.disabled[data-v-8b1e3451]{cursor:not-allowed;opacity:.5}.parameter_form[data-v-7f8204cc]{display:flex;flex-direction:column;background:#e8edf1;width:100%;height:100%;justify-content:space-around;align-items:center}.parameter_form h2[data-v-7f8204cc]{color:#57636b;text-shadow:1px 1px 1px #fff;padding:10px 0}.parameter_form_columns[data-v-7f8204cc]{display:flex;justify-content:center;align-items:center;min-height:65%;min-width:80%;box-shadow:2px 3px 9px #000;background:#e8edf1;padding:5px;border-radius:10px}.parameter_fields[data-v-7f8204cc],.parameter_labels[data-v-7f8204cc]{display:flex;flex-direction:column;height:100%;flex-grow:1;align-items:center;justify-content:space-around}.parameter_labels[data-v-7f8204cc]{align-items:start}.parameter_labels p[data-v-7f8204cc]{background:#57636b;border-radius:5px;padding:5px;min-width:85%;color:#fff;box-shadow:2px 3px 4px #000;text-shadow:1px 1px 1px black}.taskConfiguration,.traversal[data-v-c08ca7f5]{width:100%;height:100%}.traversal .edge{cursor:pointer}.traversal .edge.complete{cursor:default}.traversal .edge.complete.partial{cursor:pointer}.pathDisplay[data-v-420aceb9]{width:100%;height:100%;display:flex;flex-direction:column;justify-content:space-around;align-items:center;font-size:3vh}.path[data-v-420aceb9]{display:flex;flex-direction:row;justify-content:space-around;align-items:center;width:100%;border:1px solid black;border-radius:5px}.edge[data-v-420aceb9]{display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%}.arrow[data-v-420aceb9]{transform:scaleX(1);width:100%}.node[data-v-420aceb9]{display:flex;flex-direction:column}.node .value[data-v-420aceb9]{border-radius:50%;border:1px solid black;text-align:center}.editor_wrapper[data-v-fe3885f0]{width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}.codeEditor[data-v-fe3885f0]{width:100%;height:100%}h2[data-v-9d2209d2]{color:#57636b;text-shadow:1px 1px 1px #fff;padding:10px 0}.output__component[data-v-9d2209d2]{height:100%;width:100%;display:flex;flex-direction:column;justify-content:space-between;align-items:center}.output__component h2[data-v-9d2209d2]{padding:20px 0;height:5%}.output__wrapper[data-v-9d2209d2]{height:95%;width:100%;overflow-y:auto!important}.output__component .output[data-v-9d2209d2]{height:100%;width:100%}.output__component .output.text[data-v-9d2209d2]{display:flex;align-items:flex-start;justify-content:center}.output__component .output .text[data-v-9d2209d2]{text-align:justify;padding:10px;width:90%;background:#b1b2b4;border-radius:5px;box-shadow:2px 3px 9px #000}table[data-v-9d2209d2],th[data-v-9d2209d2],td[data-v-9d2209d2]{border:1px solid black;border-collapse:collapse;text-align:center;border-spacing:5px}th[data-v-9d2209d2],td[data-v-9d2209d2]{width:40px;height:40px}th[data-v-9d2209d2]{background:#57636b;color:#e8edf1}tr[data-v-9d2209d2]:nth-child(odd){background:#b1b2b4}.dropdown[data-v-37bcc897]{height:100%;width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}.dropdown *[data-v-37bcc897]{height:100%;width:100%;font-size:120%;text-align:center}h2[data-v-37bcc897]{display:flex;justify-content:center;align-items:center}.contourPlot[data-v-687163d9]{width:100%;height:100%}.contourPlot>svg[data-v-687163d9]{width:100%;height:100%}.foreground[data-v-2db6d7c8]{position:absolute;z-index:2;top:0}.fraction[data-v-1b3cbe8f]{display:flex;align-items:center;justify-content:center;width:100%;text-align:center;flex-direction:column;height:100%}.denominator[data-v-1b3cbe8f],.numerator[data-v-1b3cbe8f]{display:flex;flex-direction:row;width:100%;align-items:center;justify-content:center}.hr[data-v-1b3cbe8f]{display:inline-block;width:100%}.hr hr[data-v-1b3cbe8f]{height:2px;background:black}.power[data-v-63ae27a5]{display:flex;justify-content:center;align-items:flex-end;width:100%;height:100%}.exponent[data-v-63ae27a5]{padding-bottom:1em}.exponent sup[data-v-63ae27a5]{vertical-align:super}.scalar[data-v-8a414a0b]{width:35px;min-width:30px;text-align:center;height:25px}.valid[data-v-8a414a0b]{border:2px solid green}.valid[data-v-8a414a0b]:focus{outline:none;border:3px solid green}.invalid[data-v-8a414a0b]{border:2px solid red}.invalid[data-v-8a414a0b]:focus{outline:none;border:3px solid red}.baseOperation[data-v-c9bf5feb]{display:flex;align-items:center}.operation[data-v-c9bf5feb]{font-size:20px;width:20px}.baseOperation>*[data-v-c9bf5feb]{margin:0 5px}.radical[data-v-75a6789f]{display:flex;height:100%;font-size:30px;justify-content:center;align-items:flex-end}.index[data-v-75a6789f]{padding-bottom:.7em}.index sup[data-v-75a6789f]{vertical-align:super}.radicand[data-v-75a6789f]{border-top:1px solid #000000;padding-top:4px}.term[data-v-62ffc88b],.termWrapper[data-v-62ffc88b]{display:flex}.bracket[data-v-62ffc88b]{font-size:20px}.equation[data-v-db73aba1]{display:flex;overflow-x:scroll;width:100%;height:100%;align-items:center;justify-content:center;flex-direction:row}.equation>*[data-v-db73aba1]{margin:0 10px}.operator[data-v-db73aba1]{font-size:20px;width:20px}.tex[data-v-6f1e59fd]{display:flex;justify-content:center;align-items:center;height:100%;font-size:250%}.dragArea[data-v-8a636cf5]{display:flex;width:100%;height:100%;justify-content:space-around;align-items:center}.dragArea.vertical[data-v-8a636cf5]{flex-direction:column}.boxes[data-v-8a636cf5]{flex-wrap:wrap;min-height:30px!important;height:90%;width:90%;background:#b1b2b4;border-radius:5px;color:#000;padding:1px;box-shadow:1px 2px 4px #000}.boxes .list-group-item[data-v-8a636cf5]{height:50%;padding:5px;background:#e8edf1;border-radius:5px;border:3px solid #57636b;box-shadow:1px 2px 6px #000}.flip-list-move[data-v-8a636cf5]{transition:transform .5s}.no-move[data-v-8a636cf5]{transition:transform 0s}.ghost[data-v-8a636cf5]{opacity:.5;background:#c8ebfb}.list-group[data-v-8a636cf5]{min-height:20px}.list-group-item[data-v-8a636cf5]{cursor:move}.list-group-item i[data-v-8a636cf5]{cursor:pointer}.controlObject[data-v-7ffb860e]{flex:1;display:flex;flex-direction:column;width:20%;height:100%;justify-content:center;align-content:center;box-shadow:2px 3px 9px #000;background:#b1b2b4;border:1px solid black}.controlObject h2[data-v-7ffb860e]{text-align:center;margin-bottom:20px;color:#57636b}.controlObject>div[data-v-7ffb860e]{display:flex;justify-content:space-around;align-content:center;width:100%;margin-bottom:10px;font-size:19px;background:#57636b;padding:5px 0;color:#e8edf1;box-shadow:1px 2px 9px #000}.controlObject>div p[data-v-7ffb860e]{flex:2;margin-left:5px}.controlObject>div>div[data-v-7ffb860e]{flex:2}.controlObject div textarea[data-v-7ffb860e]{flex:2;margin-right:10px;text-align:center;border-radius:5px;box-shadow:1px 1px 3px #000}.disabled[data-v-031587df]{cursor:not-allowed;opacity:.5}.dijkstra[data-v-031587df]{display:flex;width:100%;height:100%;align-items:center}.djikstraWrapper[data-v-031587df]{flex:3;display:flex;flex-direction:column;width:100%;height:100%}.dijkstraTable[data-v-031587df]{display:flex;flex-direction:column;width:100%;height:100%;align-items:center;height:90%;box-shadow:1px 1px 3px #000;overflow:auto}.tableControls[data-v-031587df]{display:flex;width:100%;height:20%;justify-content:center;align-content:center}.addRow[data-v-031587df],.removeRow[data-v-031587df]{margin:5px;align-self:center}table[data-v-031587df]{width:100%}table[data-v-031587df],th[data-v-031587df],td[data-v-031587df]{border:1px solid black;border-collapse:collapse;text-align:center;border-spacing:5px;font-size:20px}th[data-v-031587df],td[data-v-031587df]{min-height:70px;min-width:70px}th[data-v-031587df]{background:#57636b;color:#e8edf1}tr[data-v-031587df]{width:100%;height:100%}tr[data-v-031587df]:nth-child(odd){background:#b1b2b4}.rowHeader[data-v-031587df]{display:flex;flex-direction:column;height:100%;width:100%;justify-content:center;align-items:center;text-align:center}.cost[data-v-031587df]{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;width:100%}.cost input[data-v-031587df]{margin:5px;width:40%;text-align:center}.list-enter-active[data-v-031587df],.list-leave-enter[data-v-031587df]{transform:translate(0);transition:all .3s linear}.list-enter[data-v-031587df],.list-leave-to[data-v-031587df]{transform:translate(100%)}.dijkstraGraph[data-v-826e9b6f],.planGraph[data-v-17677026],.editableGraph[data-v-82dad0c7]{width:100%;height:100%}.gantt[data-v-a8f5b611]{display:flex;width:100%;height:100%;justify-content:space-between;align-items:center;flex-direction:column}.diagram[data-v-a8f5b611]{display:flex;width:100%;height:100%;justify-content:space-between;align-items:center}.time[data-v-a8f5b611]{display:flex;height:5vh;width:calc(100% - 5vh);align-self:flex-end;justify-content:center;align-items:center}.timepoint[data-v-a8f5b611]{width:100%;height:100%}.time span[data-v-a8f5b611]{vertical-align:-90%;padding-left:5px;text-align:center}.events[data-v-a8f5b611]{display:flex;height:100%;width:5vh;justify-content:space-around;align-items:center;flex-direction:column}.event[data-v-a8f5b611]{width:100%;height:100%}.event span[data-v-a8f5b611]{vertical-align:-90%;padding-left:40%}.axis[data-v-a8f5b611]{background:#57636b;color:#e8edf1}.matrix[data-v-a8f5b611]{display:flex;width:100%;height:100%;justify-content:space-between;align-items:center;flex-direction:column}.row[data-v-a8f5b611]{display:flex;width:100%;height:100%;justify-content:space-between;align-items:center}.field[data-v-a8f5b611]{width:100%;height:100%;border:1px dotted grey}.filled[data-v-a8f5b611]{background:blue}.manipulatableGraph[data-v-135ef954]{width:100%;height:100%} diff --git a/src/server/public/assets/index-8ac73e8f.js b/src/server/public/assets/index-8ac73e8f.js deleted file mode 100644 index 935289a..0000000 --- a/src/server/public/assets/index-8ac73e8f.js +++ /dev/null @@ -1,7 +0,0 @@ -import{a2 as vs,j as ai,a3 as Ao,l as Yn,k as Hn,a4 as hs,a5 as si,e as li,a6 as gs,f as ui,d as zt,y as se,c as Vn,G as Rr,m as Tr,z as Bo,i as ms,A as ci,o as Zt,a7 as rt,a8 as Fo,H as No,F as ys,n as bs,a9 as ws,aa as xs,g as Es,h as _s,w as Os,ab as Ss}from"./index-ac1dbb22.js";const Ps=typeof window<"u";var Lo;Ps&&((Lo=window==null?void 0:window.navigator)!=null&&Lo.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function ke(c){return c==null}const ks=Object.freeze({aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"});Object.freeze(new Set(Object.keys(ks)));function Ts(){const c=new Map;return{on(v,h){const f=c.get(v);f!=null&&f.add(h)||c.set(v,new Set([h]))},off(v,h){const f=c.get(v);f&&f.delete(h)},clear(v){const h=c.get(v);h&&h.clear()},clearAll(){c.clear()},emit(v,...h){const f=c.get(v);f&&f.forEach(m=>{m(...h)})}}}function Wo(c,v=16){if(typeof c!="function")return c;let h=Date.now(),f;return function(...m){const O=Date.now(),S=h+v-O;clearTimeout(f),S<=0?(c(...m),h=Date.now()):f=setTimeout(()=>{c(...m)},v)}}function zs(c,v=100){if(typeof c!="function")return c;let h;return function(...f){clearTimeout(h),h=setTimeout(()=>{c(...f)},v)}}const Qt=new Set,fi=new WeakMap;function Ms(){Qt.forEach(c=>{c(...fi.get(c))}),Qt.clear()}function _e(c,...v){if(typeof c!="function")return c;fi.set(c,v),!Qt.has(c)&&(Qt.add(c),Qt.size===1&&Promise.resolve().then(Ms))}const di=Symbol("LAYOUT_KEY"),pi=Symbol("EMITTER_KEY");function js(c){let v=0,h;for(let f=0,m=c.length;fv&&(v=h);return v}function Ir(c){const v=Array(c.length);for(let h=0,f=c.length;h=v.x+v.w||c.y+c.h<=v.y||c.y>=v.y+v.h)}function Mt(c,v,h){const f=gi(c),m=mi(c),O=Array(c.length);for(let S=0,u=m.length;S0&&!en(c,v);)v.y--;else if(f){const O=f[v.i].y;for(;v.y>O&&!en(c,v);)v.y--}let m;for(;m=en(c,v);)v.y=m.y+m.h;return v}function Ds(c,v){const h=gi(c);for(let f=0,m=c.length;fv.cols&&(O.x=v.cols-O.w),O.x<0&&(O.x=0,O.w=v.cols),!O.static)h.push(O);else for(;en(h,O);)O.y++}return c}function Xo(c,v){for(let h=0,f=c.length;hvi(h,v))}function gi(c){return c.filter(v=>v.static)}function Dr(c,v,h,f,m=!1,O=!1){if(v.static)return c;const S=v.x,u=v.y,Y=f&&v.y>f;typeof h=="number"&&(v.x=h),typeof f=="number"&&(v.y=f),v.moved=!0;let re=mi(c);Y&&(re=re.reverse());const F=hi(re,v);if(O&&F.length)return v.x=S,v.y=u,v.moved=!1,c;for(let ye=0,pe=F.length;yefe.y&&v.y-fe.y>fe.h/4||(fe.static?c=$o(c,fe,v,m):c=$o(c,v,fe,m))}return c}function $o(c,v,h,f){if(f){const m={x:h.x,y:h.y,w:h.w,h:h.h,i:"-1"};if(m.y=Math.max(v.y-h.h,0),!en(c,m))return Dr(c,h,void 0,m.y,!1)}return Dr(c,h,void 0,h.y+1,!1)}function Cs(c,v,h,f){const m="translate3d("+v+"px,"+c+"px, 0)";return{transform:m,WebkitTransform:m,MozTransform:m,msTransform:m,OTransform:m,width:h+"px",height:f+"px",position:"absolute"}}function As(c,v,h,f){const m="translate3d("+v*-1+"px,"+c+"px, 0)";return{transform:m,WebkitTransform:m,MozTransform:m,msTransform:m,OTransform:m,width:h+"px",height:f+"px",position:"absolute"}}function Bs(c,v,h,f){return{top:c+"px",left:v+"px",width:h+"px",height:f+"px",position:"absolute"}}function Fs(c,v,h,f){return{top:c+"px",right:v+"px",width:h+"px",height:f+"px",position:"absolute"}}function mi(c){return Array.from(c).sort(function(v,h){return v.y===h.y&&v.x===h.x?0:v.y>h.y||v.y===h.y&&v.x>h.x?1:-1})}function Ns(c,v){v=v||"Layout";const h=["x","y","w","h"],f=[];if(!Array.isArray(c))throw new Error(v+" must be an array!");for(let m=0,O=c.length;m=0)throw new Error("VueGridLayout: "+v+"["+m+"].i must be unique!");if(f.push(S.i),S.static!==void 0&&typeof S.static!="boolean")throw new Error("VueGridLayout: "+v+"["+m+"].static must be a boolean!")}}function Ls(c,v="vgl"){const h=()=>`${v}-${c}`;return{b:h,be:f=>`${h()}__${f}`,bm:f=>`${h()}--${f}`,bem:(f,m)=>`${h()}__${f}--${m}`}}function qo(c){return Ws(c)}function Ws(c){var v;const h=((v=c.target)==null?void 0:v.offsetParent)||document.body,f=c.offsetParent===document.body?{left:0,top:0}:h.getBoundingClientRect(),m=c.clientX+h.scrollLeft-f.left,O=c.clientY+h.scrollTop-f.top;return{x:m,y:O}}function Yo(c,v,h,f){return Xs(c)?{deltaX:h-c,deltaY:f-v,lastX:c,lastY:v,x:h,y:f}:{deltaX:0,deltaY:0,lastX:h,lastY:f,x:h,y:f}}function Xs(c){return typeof c=="number"&&!Number.isNaN(c)}function $s(c,v){const h=yi(c);let f=h[0];for(let m=1,O=h.length;mc[S]&&(f=S)}return f}function Cr(c,v){if(!v[c])throw new Error("ResponsiveGridLayout: `cols` entry for breakpoint "+c+" is missing!");return v[c]}function qs(c,v,h,f,m,O,S){if(v[f])return Ir(v[f]);let u=c;const Y=yi(h),re=Y.slice(Y.indexOf(f));for(let F=0,ye=re.length;Fc[v]-c[h])}let Ys="auto";function Hs(){return typeof document<"u"}function Ho(){return Hs()?typeof document.dir<"u"?document.dir:document.getElementsByTagName("html")[0].getAttribute("dir"):Ys}var bi={exports:{}};(function(c,v){(function(h){c.exports=h()})(function(){var h={};Object.defineProperty(h,"__esModule",{value:!0}),h.default=void 0,h.default=function(e){return!(!e||!e.Window)&&e instanceof e.Window};var f={};Object.defineProperty(f,"__esModule",{value:!0}),f.getWindow=function(e){return(0,h.default)(e)?e:(e.ownerDocument||e).defaultView||O.window},f.init=S,f.window=f.realWindow=void 0;var m=void 0;f.realWindow=m;var O=void 0;function S(e){f.realWindow=m=e;var t=e.document.createTextNode("");t.ownerDocument!==e.document&&typeof e.wrap=="function"&&e.wrap(t)===t&&(e=e.wrap(e)),f.window=O=e}f.window=O,typeof window<"u"&&window&&S(window);var u={};function Y(e){return Y=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Y(e)}Object.defineProperty(u,"__esModule",{value:!0}),u.default=void 0;var re=function(e){return!!e&&Y(e)==="object"},F=function(e){return typeof e=="function"},ye={window:function(e){return e===f.window||(0,h.default)(e)},docFrag:function(e){return re(e)&&e.nodeType===11},object:re,func:F,number:function(e){return typeof e=="number"},bool:function(e){return typeof e=="boolean"},string:function(e){return typeof e=="string"},element:function(e){if(!e||Y(e)!=="object")return!1;var t=f.getWindow(e)||f.window;return/object|function/.test(typeof Element>"u"?"undefined":Y(Element))?e instanceof Element||e instanceof t.Element:e.nodeType===1&&typeof e.nodeName=="string"},plainObject:function(e){return re(e)&&!!e.constructor&&/function Object\b/.test(e.constructor.toString())},array:function(e){return re(e)&&e.length!==void 0&&F(e.splice)}};u.default=ye;var pe={};function fe(e){var t=e.interaction;if(t.prepared.name==="drag"){var n=t.prepared.axis;n==="x"?(t.coords.cur.page.y=t.coords.start.page.y,t.coords.cur.client.y=t.coords.start.client.y,t.coords.velocity.client.y=0,t.coords.velocity.page.y=0):n==="y"&&(t.coords.cur.page.x=t.coords.start.page.x,t.coords.cur.client.x=t.coords.start.client.x,t.coords.velocity.client.x=0,t.coords.velocity.page.x=0)}}function Ae(e){var t=e.iEvent,n=e.interaction;if(n.prepared.name==="drag"){var r=n.prepared.axis;if(r==="x"||r==="y"){var o=r==="x"?"y":"x";t.page[o]=n.coords.start.page[o],t.client[o]=n.coords.start.client[o],t.delta[o]=0}}}Object.defineProperty(pe,"__esModule",{value:!0}),pe.default=void 0;var Re={id:"actions/drag",install:function(e){var t=e.actions,n=e.Interactable,r=e.defaults;n.prototype.draggable=Re.draggable,t.map.drag=Re,t.methodDict.drag="draggable",r.actions.drag=Re.defaults},listeners:{"interactions:before-action-move":fe,"interactions:action-resume":fe,"interactions:action-move":Ae,"auto-start:check":function(e){var t=e.interaction,n=e.interactable,r=e.buttons,o=n.options.drag;if(o&&o.enabled&&(!t.pointerIsDown||!/mouse|pointer/.test(t.pointerType)||r&n.options.drag.mouseButtons))return e.action={name:"drag",axis:o.lockAxis==="start"?o.startAxis:o.lockAxis},!1}},draggable:function(e){return u.default.object(e)?(this.options.drag.enabled=e.enabled!==!1,this.setPerAction("drag",e),this.setOnEvents("drag",e),/^(xy|x|y|start)$/.test(e.lockAxis)&&(this.options.drag.lockAxis=e.lockAxis),/^(xy|x|y)$/.test(e.startAxis)&&(this.options.drag.startAxis=e.startAxis),this):u.default.bool(e)?(this.options.drag.enabled=e,this):this.options.drag},beforeMove:fe,move:Ae,defaults:{startAxis:"xy",lockAxis:"xy"},getCursor:function(){return"move"}},Be=Re;pe.default=Be;var X={};Object.defineProperty(X,"__esModule",{value:!0}),X.default=void 0;var $={init:function(e){var t=e;$.document=t.document,$.DocumentFragment=t.DocumentFragment||ae,$.SVGElement=t.SVGElement||ae,$.SVGSVGElement=t.SVGSVGElement||ae,$.SVGElementInstance=t.SVGElementInstance||ae,$.Element=t.Element||ae,$.HTMLElement=t.HTMLElement||$.Element,$.Event=t.Event,$.Touch=t.Touch||ae,$.PointerEvent=t.PointerEvent||t.MSPointerEvent},document:null,DocumentFragment:null,SVGElement:null,SVGSVGElement:null,SVGElementInstance:null,Element:null,HTMLElement:null,Event:null,Touch:null,PointerEvent:null};function ae(){}var le=$;X.default=le;var H={};Object.defineProperty(H,"__esModule",{value:!0}),H.default=void 0;var oe={init:function(e){var t=X.default.Element,n=e.navigator||{};oe.supportsTouch="ontouchstart"in e||u.default.func(e.DocumentTouch)&&X.default.document instanceof e.DocumentTouch,oe.supportsPointerEvent=n.pointerEnabled!==!1&&!!X.default.PointerEvent,oe.isIOS=/iP(hone|od|ad)/.test(n.platform),oe.isIOS7=/iP(hone|od|ad)/.test(n.platform)&&/OS 7[^\d]/.test(n.appVersion),oe.isIe9=/MSIE 9/.test(n.userAgent),oe.isOperaMobile=n.appName==="Opera"&&oe.supportsTouch&&/Presto/.test(n.userAgent),oe.prefixedMatchesSelector="matches"in t.prototype?"matches":"webkitMatchesSelector"in t.prototype?"webkitMatchesSelector":"mozMatchesSelector"in t.prototype?"mozMatchesSelector":"oMatchesSelector"in t.prototype?"oMatchesSelector":"msMatchesSelector",oe.pEventTypes=oe.supportsPointerEvent?X.default.PointerEvent===e.MSPointerEvent?{up:"MSPointerUp",down:"MSPointerDown",over:"mouseover",out:"mouseout",move:"MSPointerMove",cancel:"MSPointerCancel"}:{up:"pointerup",down:"pointerdown",over:"pointerover",out:"pointerout",move:"pointermove",cancel:"pointercancel"}:null,oe.wheelEvent=X.default.document&&"onmousewheel"in X.default.document?"mousewheel":"wheel"},supportsTouch:null,supportsPointerEvent:null,isIOS7:null,isIOS:null,isIe9:null,isOperaMobile:null,prefixedMatchesSelector:null,pEventTypes:null,wheelEvent:null},Ve=oe;H.default=Ve;var R={};function Oe(e){var t=e.parentNode;if(u.default.docFrag(t)){for(;(t=t.host)&&u.default.docFrag(t););return t}return t}function T(e,t){return f.window!==f.realWindow&&(t=t.replace(/\/deep\//g," ")),e[H.default.prefixedMatchesSelector](t)}Object.defineProperty(R,"__esModule",{value:!0}),R.closest=function(e,t){for(;u.default.element(e);){if(T(e,t))return e;e=Oe(e)}return null},R.getActualElement=function(e){return e.correspondingUseElement||e},R.getElementClientRect=ge,R.getElementRect=function(e){var t=ge(e);if(!H.default.isIOS7&&t){var n=be(f.getWindow(e));t.left+=n.x,t.right+=n.x,t.top+=n.y,t.bottom+=n.y}return t},R.getPath=function(e){for(var t=[];e;)t.push(e),e=Oe(e);return t},R.getScrollXY=be,R.indexOfDeepestElement=function(e){for(var t,n=[],r=0;r=(parseInt(f.getWindow(y).getComputedStyle(y).zIndex,10)||0)&&(t=r);else t=r}else t=r}var w,y;return t},R.matchesSelector=T,R.matchesUpTo=function(e,t,n){for(;u.default.element(e);){if(T(e,t))return!0;if((e=Oe(e))===n)return T(e,t)}return!1},R.nodeContains=function(e,t){if(e.contains)return e.contains(t);for(;t;){if(t===e)return!0;t=t.parentNode}return!1},R.parentNode=Oe,R.trySelector=function(e){return!!u.default.string(e)&&(X.default.document.querySelector(e),!0)};var K=function(e){return e.parentNode||e.host};function V(e,t){for(var n,r=[],o=e;(n=K(o))&&o!==t&&n!==o.ownerDocument;)r.unshift(o),o=n;return r}function be(e){return{x:(e=e||f.window).scrollX||e.document.documentElement.scrollLeft,y:e.scrollY||e.document.documentElement.scrollTop}}function ge(e){var t=e instanceof X.default.SVGElement?e.getBoundingClientRect():e.getClientRects()[0];return t&&{left:t.left,right:t.right,top:t.top,bottom:t.bottom,width:t.width||t.right-t.left,height:t.height||t.bottom-t.top}}var k={};Object.defineProperty(k,"__esModule",{value:!0}),k.default=function(e,t){for(var n in t)e[n]=t[n];return e};var j={};function Te(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n1?at(t):t[0];Dt(r,e.page),Ge(r,e.client),e.timeStamp=n},z.setZeroCoords=function(e){e.page.x=0,e.page.y=0,e.client.x=0,e.client.y=0},z.touchAngle=function(e,t){var n=t+"X",r=t+"Y",o=it(e),i=o[1][n]-o[0][n],l=o[1][r]-o[0][r];return 180*Math.atan2(l,i)/Math.PI},z.touchBBox=function(e){if(!e.length)return null;var t=it(e),n=Math.min(t[0].pageX,t[1].pageX),r=Math.min(t[0].pageY,t[1].pageY),o=Math.max(t[0].pageX,t[1].pageX),i=Math.max(t[0].pageY,t[1].pageY);return{x:n,y:r,left:n,top:r,right:o,bottom:i,width:o-n,height:i-r}},z.touchDistance=function(e,t){var n=t+"X",r=t+"Y",o=it(e),i=o[0][n]-o[1][n],l=o[0][r]-o[1][r];return(0,ce.default)(i,l)};var Le={};function on(e,t){for(var n=0;n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}(),function(){var a,s=G(r);if(o){var d=G(this).constructor;a=Reflect.construct(s,arguments,d)}else a=s.apply(this,arguments);return A(this,a)});function l(a,s,d){var p;(function(y,x){if(!(y instanceof x))throw new TypeError("Cannot call a class as a function")})(this,l),te(N(p=i.call(this,s._interaction)),"dropzone",void 0),te(N(p),"dragEvent",void 0),te(N(p),"relatedTarget",void 0),te(N(p),"draggable",void 0),te(N(p),"propagationStopped",!1),te(N(p),"immediatePropagationStopped",!1);var g=d==="dragleave"?a.prev:a.cur,b=g.element,w=g.dropzone;return p.type=d,p.target=b,p.currentTarget=b,p.dropzone=w,p.dragEvent=s,p.relatedTarget=s.target,p.draggable=s.interactable,p.timeStamp=s.timeStamp,p}return t=l,(n=[{key:"reject",value:function(){var a=this,s=this._interaction.dropState;if(this.type==="dropactivate"||this.dropzone&&s.cur.dropzone===this.dropzone&&s.cur.element===this.target)if(s.prev.dropzone=this.dropzone,s.prev.element=this.target,s.rejected=!0,s.events.enter=null,this.stopImmediatePropagation(),this.type==="dropactivate"){var d=s.activeDrops,p=U.findIndex(d,function(b){var w=b.dropzone,y=b.element;return w===a.dropzone&&y===a.target});s.activeDrops.splice(p,1);var g=new l(s,this.dragEvent,"dropdeactivate");g.dropzone=this.dropzone,g.target=this.target,this.dropzone.fire(g)}else this.dropzone.fire(new l(s,this.dragEvent,"dragleave"))}},{key:"preventDefault",value:function(){}},{key:"stopPropagation",value:function(){this.propagationStopped=!0}},{key:"stopImmediatePropagation",value:function(){this.immediatePropagationStopped=this.propagationStopped=!0}}])&&Ke(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),l}(Le.BaseEvent);ze.DropEvent=W;var D={};function me(e,t){for(var n=0;n_.left&&q.x<_.right,L=q.y>_.top&&q.y<_.bottom;M=ee&&L}var Z=y.getRect(x);if(Z&&I==="center"){var je=Z.left+Z.width/2,He=Z.top+Z.height/2;M=je>=_.left&&je<=_.right&&He>=_.top&&He<=_.bottom}return Z&&u.default.number(I)&&(M=Math.max(0,Math.min(_.right,Z.right)-Math.max(_.left,Z.left))*Math.max(0,Math.min(_.bottom,Z.bottom)-Math.max(_.top,Z.top))/(Z.width*Z.height)>=I),g.options.drop.checker&&(M=g.options.drop.checker(b,w,M,g,P,y,x)),M}(this,i,l,a,s,d,p)},n.dynamicDrop=function(i){return u.default.bool(i)?(e.dynamicDrop=i,n):e.dynamicDrop},(0,k.default)(t.phaselessTypes,{dragenter:!0,dragleave:!0,dropactivate:!0,dropdeactivate:!0,dropmove:!0,drop:!0}),t.methodDict.drop="dropzone",e.dynamicDrop=!1,o.actions.drop=wt.defaults},listeners:{"interactions:before-action-start":function(e){var t=e.interaction;t.prepared.name==="drag"&&(t.dropState={cur:{dropzone:null,element:null},prev:{dropzone:null,element:null},rejected:null,events:null,activeDrops:[]})},"interactions:after-action-start":function(e,t){var n=e.interaction,r=(e.event,e.iEvent);if(n.prepared.name==="drag"){var o=n.dropState;o.activeDrops=[],o.events={},o.activeDrops=we(t,n.element),o.events=We(n,0,r),o.events.activate&&(me(o.activeDrops,o.events.activate),t.fire("actions/drop:start",{interaction:n,dragEvent:r}))}},"interactions:action-move":bt,"interactions:after-action-move":function(e,t){var n=e.interaction,r=e.iEvent;if(n.prepared.name==="drag"){var o=n.dropState;Xe(n,o.events),t.fire("actions/drop:move",{interaction:n,dragEvent:r}),o.events={}}},"interactions:action-end":function(e,t){if(e.interaction.prepared.name==="drag"){var n=e.interaction,r=e.iEvent;bt(e,t),Xe(n,n.dropState.events),t.fire("actions/drop:end",{interaction:n,dragEvent:r})}},"interactions:stop":function(e){var t=e.interaction;if(t.prepared.name==="drag"){var n=t.dropState;n&&(n.activeDrops=null,n.events=null,n.cur.dropzone=null,n.cur.element=null,n.prev.dropzone=null,n.prev.element=null,n.rejected=!1)}}},getActiveDrops:we,getDrop:Me,getDropEvents:We,fireDropEvents:Xe,defaults:{enabled:!1,accept:null,overlap:"pointer"}},Bt=wt;D.default=Bt;var Je={};function Kn(e){var t=e.interaction,n=e.iEvent,r=e.phase;if(t.prepared.name==="gesture"){var o=t.pointers.map(function(d){return d.pointer}),i=r==="start",l=r==="end",a=t.interactable.options.deltaSource;if(n.touches=[o[0],o[1]],i)n.distance=z.touchDistance(o,a),n.box=z.touchBBox(o),n.scale=1,n.ds=0,n.angle=z.touchAngle(o,a),n.da=0,t.gesture.startDistance=n.distance,t.gesture.startAngle=n.angle;else if(l){var s=t.prevEvent;n.distance=s.distance,n.box=s.box,n.scale=s.scale,n.ds=0,n.angle=s.angle,n.da=0}else n.distance=z.touchDistance(o,a),n.box=z.touchBBox(o),n.scale=n.distance/t.gesture.startDistance,n.angle=z.touchAngle(o,a),n.ds=n.scale-t.gesture.scale,n.da=n.angle-t.gesture.angle;t.gesture.distance=n.distance,t.gesture.angle=n.angle,u.default.number(n.scale)&&n.scale!==1/0&&!isNaN(n.scale)&&(t.gesture.scale=n.scale)}}Object.defineProperty(Je,"__esModule",{value:!0}),Je.default=void 0;var Jn={id:"actions/gesture",before:["actions/drag","actions/resize"],install:function(e){var t=e.actions,n=e.Interactable,r=e.defaults;n.prototype.gesturable=function(o){return u.default.object(o)?(this.options.gesture.enabled=o.enabled!==!1,this.setPerAction("gesture",o),this.setOnEvents("gesture",o),this):u.default.bool(o)?(this.options.gesture.enabled=o,this):this.options.gesture},t.map.gesture=Jn,t.methodDict.gesture="gesturable",r.actions.gesture=Jn.defaults},listeners:{"interactions:action-start":Kn,"interactions:action-move":Kn,"interactions:action-end":Kn,"interactions:new":function(e){e.interaction.gesture={angle:0,distance:0,scale:1,startAngle:0,startDistance:0}},"auto-start:check":function(e){if(!(e.interaction.pointers.length<2)){var t=e.interactable.options.gesture;if(t&&t.enabled)return e.action={name:"gesture"},!1}}},defaults:{},getCursor:function(){return""}},Ti=Jn;Je.default=Ti;var un={};function zi(e,t,n,r,o,i,l){if(!t)return!1;if(t===!0){var a=u.default.number(i.width)?i.width:i.right-i.left,s=u.default.number(i.height)?i.height:i.bottom-i.top;if(l=Math.min(l,Math.abs((e==="left"||e==="right"?a:s)/2)),a<0&&(e==="left"?e="right":e==="right"&&(e="left")),s<0&&(e==="top"?e="bottom":e==="bottom"&&(e="top")),e==="left"){var d=a>=0?i.left:i.right;return n.x=0?i.top:i.bottom;return n.y(a>=0?i.right:i.left)-l;if(e==="bottom")return n.y>(s>=0?i.bottom:i.top)-l}return!!u.default.element(r)&&(u.default.element(t)?t===r:R.matchesUpTo(r,t,o))}function Nr(e){var t=e.iEvent,n=e.interaction;if(n.prepared.name==="resize"&&n.resizeAxes){var r=t;n.interactable.options.resize.square?(n.resizeAxes==="y"?r.delta.x=r.delta.y:r.delta.y=r.delta.x,r.axes="xy"):(r.axes=n.resizeAxes,n.resizeAxes==="x"?r.delta.y=0:n.resizeAxes==="y"&&(r.delta.x=0))}}Object.defineProperty(un,"__esModule",{value:!0}),un.default=void 0;var $e={id:"actions/resize",before:["actions/drag"],install:function(e){var t=e.actions,n=e.browser,r=e.Interactable,o=e.defaults;$e.cursors=function(i){return i.isIe9?{x:"e-resize",y:"s-resize",xy:"se-resize",top:"n-resize",left:"w-resize",bottom:"s-resize",right:"e-resize",topleft:"se-resize",bottomright:"se-resize",topright:"ne-resize",bottomleft:"ne-resize"}:{x:"ew-resize",y:"ns-resize",xy:"nwse-resize",top:"ns-resize",left:"ew-resize",bottom:"ns-resize",right:"ew-resize",topleft:"nwse-resize",bottomright:"nwse-resize",topright:"nesw-resize",bottomleft:"nesw-resize"}}(n),$e.defaultMargin=n.supportsTouch||n.supportsPointerEvent?20:10,r.prototype.resizable=function(i){return function(l,a,s){return u.default.object(a)?(l.options.resize.enabled=a.enabled!==!1,l.setPerAction("resize",a),l.setOnEvents("resize",a),u.default.string(a.axis)&&/^x$|^y$|^xy$/.test(a.axis)?l.options.resize.axis=a.axis:a.axis===null&&(l.options.resize.axis=s.defaults.actions.resize.axis),u.default.bool(a.preserveAspectRatio)?l.options.resize.preserveAspectRatio=a.preserveAspectRatio:u.default.bool(a.square)&&(l.options.resize.square=a.square),l):u.default.bool(a)?(l.options.resize.enabled=a,l):l.options.resize}(this,i,e)},t.map.resize=$e,t.methodDict.resize="resizable",o.actions.resize=$e.defaults},listeners:{"interactions:new":function(e){e.interaction.resizeAxes="xy"},"interactions:action-start":function(e){(function(t){var n=t.iEvent,r=t.interaction;if(r.prepared.name==="resize"&&r.prepared.edges){var o=n,i=r.rect;r._rects={start:(0,k.default)({},i),corrected:(0,k.default)({},i),previous:(0,k.default)({},i),delta:{left:0,right:0,width:0,top:0,bottom:0,height:0}},o.edges=r.prepared.edges,o.rect=r._rects.corrected,o.deltaRect=r._rects.delta}})(e),Nr(e)},"interactions:action-move":function(e){(function(t){var n=t.iEvent,r=t.interaction;if(r.prepared.name==="resize"&&r.prepared.edges){var o=n,i=r.interactable.options.resize.invert,l=i==="reposition"||i==="negate",a=r.rect,s=r._rects,d=s.start,p=s.corrected,g=s.delta,b=s.previous;if((0,k.default)(b,p),l){if((0,k.default)(p,a),i==="reposition"){if(p.top>p.bottom){var w=p.top;p.top=p.bottom,p.bottom=w}if(p.left>p.right){var y=p.left;p.left=p.right,p.right=y}}}else p.top=Math.min(a.top,d.bottom),p.bottom=Math.max(a.bottom,d.top),p.left=Math.min(a.left,d.right),p.right=Math.max(a.right,d.left);for(var x in p.width=p.right-p.left,p.height=p.bottom-p.top,p)g[x]=p[x]-b[x];o.edges=r.prepared.edges,o.rect=p,o.deltaRect=g}})(e),Nr(e)},"interactions:action-end":function(e){var t=e.iEvent,n=e.interaction;if(n.prepared.name==="resize"&&n.prepared.edges){var r=t;r.edges=n.prepared.edges,r.rect=n._rects.corrected,r.deltaRect=n._rects.delta}},"auto-start:check":function(e){var t=e.interaction,n=e.interactable,r=e.element,o=e.rect,i=e.buttons;if(o){var l=(0,k.default)({},t.coords.cur.page),a=n.options.resize;if(a&&a.enabled&&(!t.pointerIsDown||!/mouse|pointer/.test(t.pointerType)||i&a.mouseButtons)){if(u.default.object(a.edges)){var s={left:!1,right:!1,top:!1,bottom:!1};for(var d in s)s[d]=zi(d,a.edges[d],l,t._latestPointer.eventTarget,r,o,a.margin||$e.defaultMargin);s.left=s.left&&!s.right,s.top=s.top&&!s.bottom,(s.left||s.right||s.top||s.bottom)&&(e.action={name:"resize",edges:s})}else{var p=a.axis!=="y"&&l.x>o.right-$e.defaultMargin,g=a.axis!=="x"&&l.y>o.bottom-$e.defaultMargin;(p||g)&&(e.action={name:"resize",axes:(p?"x":"")+(g?"y":"")})}return!e.action&&void 0}}}},defaults:{square:!1,preserveAspectRatio:!1,axis:"xy",margin:NaN,edges:null,invert:"none"},cursors:null,getCursor:function(e){var t=e.edges,n=e.axis,r=e.name,o=$e.cursors,i=null;if(n)i=o[r+n];else if(t){for(var l="",a=["top","bottom","left","right"],s=0;s=1){var d={x:C.x*s,y:C.y*s};if(d.x||d.y){var p=Ft(i);u.default.window(i)?i.scrollBy(d.x,d.y):i&&(i.scrollLeft+=d.x,i.scrollTop+=d.y);var g=Ft(i),b={x:g.x-p.x,y:g.y-p.y};(b.x||b.y)&&t.fire({type:"autoscroll",target:n,interactable:t,delta:b,interaction:e,container:i})}C.prevTime=l}C.isScrolling&&(Ie.default.cancel(C.i),C.i=Ie.default.request(C.scroll))},check:function(e,t){var n;return(n=e.options[t].autoScroll)==null?void 0:n.enabled},onInteractionMove:function(e){var t=e.interaction,n=e.pointer;if(t.interacting()&&C.check(t.interactable,t.prepared.name))if(t.simulation)C.x=C.y=0;else{var r,o,i,l,a=t.interactable,s=t.element,d=t.prepared.name,p=a.options[d].autoScroll,g=fn(p.container,a,s);if(u.default.window(g))l=n.clientXg.innerWidth-C.margin,i=n.clientY>g.innerHeight-C.margin;else{var b=R.getElementClientRect(g);l=n.clientXb.right-C.margin,i=n.clientY>b.bottom-C.margin}C.x=o?1:l?-1:0,C.y=i?1:r?-1:0,C.isScrolling||(C.margin=p.margin,C.speed=p.speed,C.start(t))}}};function fn(e,t,n){return(u.default.string(e)?(0,j.getStringOptionResult)(e,t,n):e)||(0,f.getWindow)(n)}function Ft(e){return u.default.window(e)&&(e=window.document.body),{x:e.scrollLeft,y:e.scrollTop}}var Ii={id:"auto-scroll",install:function(e){var t=e.defaults,n=e.actions;e.autoScroll=C,C.now=function(){return e.now()},n.phaselessTypes.autoscroll=!0,t.perAction.autoScroll=C.defaults},listeners:{"interactions:new":function(e){e.interaction.autoScroll=null},"interactions:destroy":function(e){e.interaction.autoScroll=null,C.stop(),C.interaction&&(C.interaction=null)},"interactions:stop":C.stop,"interactions:action-move":function(e){return C.onInteractionMove(e)}}},Di=Ii;Ze.default=Di;var Pe={};Object.defineProperty(Pe,"__esModule",{value:!0}),Pe.copyAction=function(e,t){return e.name=t.name,e.axis=t.axis,e.edges=t.edges,e},Pe.sign=void 0,Pe.warnOnce=function(e,t){var n=!1;return function(){return n||(f.window.console.warn(t),n=!0),e.apply(this,arguments)}},Pe.sign=function(e){return e>=0?1:-1};var dn={};function Ci(e){return u.default.bool(e)?(this.options.styleCursor=e,this):e===null?(delete this.options.styleCursor,this):this.options.styleCursor}function Ai(e){return u.default.func(e)?(this.options.actionChecker=e,this):e===null?(delete this.options.actionChecker,this):this.options.actionChecker}Object.defineProperty(dn,"__esModule",{value:!0}),dn.default=void 0;var Bi={id:"auto-start/interactableMethods",install:function(e){var t=e.Interactable;t.prototype.getAction=function(n,r,o,i){var l=function(a,s,d,p,g){var b=a.getRect(p),w={action:null,interactable:a,interaction:d,element:p,rect:b,buttons:s.buttons||{0:1,1:4,3:8,4:16}[s.button]};return g.fire("auto-start:check",w),w.action}(this,r,o,i,e);return this.options.actionChecker?this.options.actionChecker(n,r,l,this,i,o):l},t.prototype.ignoreFrom=(0,Pe.warnOnce)(function(n){return this._backCompatOption("ignoreFrom",n)},"Interactable.ignoreFrom() has been deprecated. Use Interactble.draggable({ignoreFrom: newValue})."),t.prototype.allowFrom=(0,Pe.warnOnce)(function(n){return this._backCompatOption("allowFrom",n)},"Interactable.allowFrom() has been deprecated. Use Interactble.draggable({allowFrom: newValue})."),t.prototype.actionChecker=Ai,t.prototype.styleCursor=Ci}};dn.default=Bi;var xt={};function Wr(e,t,n,r,o){return t.testIgnoreAllow(t.options[e.name],n,r)&&t.options[e.name].enabled&&pn(t,n,e,o)?e:null}function Fi(e,t,n,r,o,i,l){for(var a=0,s=r.length;a=a||b.interactable===e&&((d+=w===n.name?1:0)>=i||b.element===t&&(p++,w===n.name&&p>=l))))return!1}return a>0}function qr(e,t){return u.default.number(e)?(t.autoStart.maxInteractions=e,this):t.autoStart.maxInteractions}function Zn(e,t,n){var r=n.autoStart.cursorElement;r&&r!==e&&(r.style.cursor=""),e.ownerDocument.documentElement.style.cursor=t,e.style.cursor=t,n.autoStart.cursorElement=t?e:null}function Yr(e,t){var n=e.interactable,r=e.element,o=e.prepared;if(e.pointerType==="mouse"&&n&&n.options.styleCursor){var i="";if(o.name){var l=n.options[o.name].cursorChecker;i=u.default.func(l)?l(o,n,r,e._interacting):t.actions.map[o.name].getCursor(o)}Zn(e.element,i||"",t)}else t.autoStart.cursorElement&&Zn(t.autoStart.cursorElement,"",t)}Object.defineProperty(xt,"__esModule",{value:!0}),xt.default=void 0;var Ni={id:"auto-start/base",before:["actions"],install:function(e){var t=e.interactStatic,n=e.defaults;e.usePlugin(dn.default),n.base.actionChecker=null,n.base.styleCursor=!0,(0,k.default)(n.perAction,{manualStart:!1,max:1/0,maxPerElement:1,allowFrom:null,ignoreFrom:null,mouseButtons:1}),t.maxInteractions=function(r){return qr(r,e)},e.autoStart={maxInteractions:1/0,withinInteractionLimit:pn,cursorElement:null}},listeners:{"interactions:down":function(e,t){var n=e.interaction,r=e.pointer,o=e.event,i=e.eventTarget;n.interacting()||$r(n,Xr(n,r,o,i,t),t)},"interactions:move":function(e,t){(function(n,r){var o=n.interaction,i=n.pointer,l=n.event,a=n.eventTarget;o.pointerType!=="mouse"||o.pointerIsDown||o.interacting()||$r(o,Xr(o,i,l,a,r),r)})(e,t),function(n,r){var o=n.interaction;if(o.pointerIsDown&&!o.interacting()&&o.pointerWasMoved&&o.prepared.name){r.fire("autoStart:before-start",n);var i=o.interactable,l=o.prepared.name;l&&i&&(i.options[l].manualStart||!pn(i,o.element,o.prepared,r)?o.stop():(o.start(o.prepared,i,o.element),Yr(o,r)))}}(e,t)},"interactions:stop":function(e,t){var n=e.interaction,r=n.interactable;r&&r.options.styleCursor&&Zn(n.element,"",t)}},maxInteractions:qr,withinInteractionLimit:pn,validateAction:Wr},Li=Ni;xt.default=Li;var vn={};Object.defineProperty(vn,"__esModule",{value:!0}),vn.default=void 0;var Wi={id:"auto-start/dragAxis",listeners:{"autoStart:before-start":function(e,t){var n=e.interaction,r=e.eventTarget,o=e.dx,i=e.dy;if(n.prepared.name==="drag"){var l=Math.abs(o),a=Math.abs(i),s=n.interactable.options.drag,d=s.startAxis,p=l>a?"x":l0&&(t.autoStartHoldTimer=setTimeout(function(){t.start(t.prepared,t.interactable,t.element)},n))},"interactions:move":function(e){var t=e.interaction,n=e.duplicate;t.autoStartHoldTimer&&t.pointerWasMoved&&!n&&(clearTimeout(t.autoStartHoldTimer),t.autoStartHoldTimer=null)},"autoStart:before-start":function(e){var t=e.interaction;Qn(t)>0&&(t.prepared.name=null)}},getHoldDuration:Qn},$i=Xi;hn.default=$i;var gn={};Object.defineProperty(gn,"__esModule",{value:!0}),gn.default=void 0;var qi={id:"auto-start",install:function(e){e.usePlugin(xt.default),e.usePlugin(hn.default),e.usePlugin(vn.default)}};gn.default=qi;var Et={};function Yi(e){return/^(always|never|auto)$/.test(e)?(this.options.preventDefault=e,this):u.default.bool(e)?(this.options.preventDefault=e?"always":"never",this):this.options.preventDefault}function Hi(e){var t=e.interaction,n=e.event;t.interactable&&t.interactable.checkAndPreventDefault(n)}function Hr(e){var t=e.Interactable;t.prototype.preventDefault=Yi,t.prototype.checkAndPreventDefault=function(n){return function(r,o,i){var l=r.options.preventDefault;if(l!=="never")if(l!=="always"){if(o.events.supportsPassive&&/^touch(start|move)$/.test(i.type)){var a=(0,f.getWindow)(i.target).document,s=o.getDocOptions(a);if(!s||!s.events||s.events.passive!==!1)return}/^(mouse|pointer|touch)*(down|start)/i.test(i.type)||u.default.element(i.target)&&(0,R.matchesSelector)(i.target,"input,select,textarea,[contenteditable=true],[contenteditable=true] *")||i.preventDefault()}else i.preventDefault()}(this,e,n)},e.interactions.docEvents.push({type:"dragstart",listener:function(n){for(var r=0;re.length)&&(t=e.length);for(var n=0,r=Array(t);n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}(),function(){var a,s=bn(r);if(o){var d=bn(this).constructor;a=Reflect.construct(s,arguments,d)}else a=s.apply(this,arguments);return ea(this,a)});function l(a,s,d,p,g,b,w){var y;(function(ee,L){if(!(ee instanceof L))throw new TypeError("Cannot call a class as a function")})(this,l),ne(J(y=i.call(this,a)),"relatedTarget",null),ne(J(y),"screenX",void 0),ne(J(y),"screenY",void 0),ne(J(y),"button",void 0),ne(J(y),"buttons",void 0),ne(J(y),"ctrlKey",void 0),ne(J(y),"shiftKey",void 0),ne(J(y),"altKey",void 0),ne(J(y),"metaKey",void 0),ne(J(y),"page",void 0),ne(J(y),"client",void 0),ne(J(y),"delta",void 0),ne(J(y),"rect",void 0),ne(J(y),"x0",void 0),ne(J(y),"y0",void 0),ne(J(y),"t0",void 0),ne(J(y),"dt",void 0),ne(J(y),"duration",void 0),ne(J(y),"clientX0",void 0),ne(J(y),"clientY0",void 0),ne(J(y),"velocity",void 0),ne(J(y),"speed",void 0),ne(J(y),"swipe",void 0),ne(J(y),"axes",void 0),ne(J(y),"preEnd",void 0),g=g||a.element;var x=a.interactable,P=(x&&x.options||Lt.defaults).deltaSource,_=(0,ue.default)(x,g,d),M=p==="start",I=p==="end",B=M?J(y):a.prevEvent,q=M?a.coords.start:I?{page:B.page,client:B.client,timeStamp:a.coords.cur.timeStamp}:a.coords.cur;return y.page=(0,k.default)({},q.page),y.client=(0,k.default)({},q.client),y.rect=(0,k.default)({},a.rect),y.timeStamp=q.timeStamp,I||(y.page.x-=_.x,y.page.y-=_.y,y.client.x-=_.x,y.client.y-=_.y),y.ctrlKey=s.ctrlKey,y.altKey=s.altKey,y.shiftKey=s.shiftKey,y.metaKey=s.metaKey,y.button=s.button,y.buttons=s.buttons,y.target=g,y.currentTarget=g,y.preEnd=b,y.type=w||d+(p||""),y.interactable=x,y.t0=M?a.pointers[a.pointers.length-1].downTime:B.t0,y.x0=a.coords.start.page.x-_.x,y.y0=a.coords.start.page.y-_.y,y.clientX0=a.coords.start.client.x-_.x,y.clientY0=a.coords.start.client.y-_.y,y.delta=M||I?{x:0,y:0}:{x:y[P].x-B[P].x,y:y[P].y-B[P].y},y.dt=a.coords.delta.timeStamp,y.duration=y.timeStamp-y.t0,y.velocity=(0,k.default)({},a.coords.velocity[P]),y.speed=(0,ce.default)(y.velocity.x,y.velocity.y),y.swipe=I||p==="inertiastart"?y.getSwipe():null,y}return t=l,(n=[{key:"getSwipe",value:function(){var a=this._interaction;if(a.prevEvent.speed<600||this.timeStamp-a.prevEvent.timeStamp>150)return null;var s=180*Math.atan2(a.prevEvent.velocityY,a.prevEvent.velocityX)/Math.PI;s<0&&(s+=360);var d=112.5<=s&&s<247.5,p=202.5<=s&&s<337.5;return{up:p,down:!p&&22.5<=s&&s<157.5,left:d,right:!d&&(292.5<=s||s<67.5),angle:s,speed:a.prevEvent.speed,velocity:{x:a.prevEvent.velocityX,y:a.prevEvent.velocityY}}}},{key:"preventDefault",value:function(){}},{key:"stopImmediatePropagation",value:function(){this.immediatePropagationStopped=this.propagationStopped=!0}},{key:"stopPropagation",value:function(){this.propagationStopped=!0}}])&&Qi(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),l}(Le.BaseEvent);Wt.InteractEvent=Kr,Object.defineProperties(Kr.prototype,{pageX:{get:function(){return this.page.x},set:function(e){this.page.x=e}},pageY:{get:function(){return this.page.y},set:function(e){this.page.y=e}},clientX:{get:function(){return this.client.x},set:function(e){this.client.x=e}},clientY:{get:function(){return this.client.y},set:function(e){this.client.y=e}},dx:{get:function(){return this.delta.x},set:function(e){this.delta.x=e}},dy:{get:function(){return this.delta.y},set:function(e){this.delta.y=e}},velocityX:{get:function(){return this.velocity.x},set:function(e){this.velocity.x=e}},velocityY:{get:function(){return this.velocity.y},set:function(e){this.velocity.y=e}}});var Xt={};function Jr(e,t){for(var n=0;nthis.pointerMoveTolerance);var d=this.getPointerIndex(r),p={pointer:r,pointerIndex:d,pointerInfo:this.pointers[d],event:o,type:"move",eventTarget:i,dx:l,dy:a,duplicate:s,interaction:this};s||z.setCoordVelocity(this.coords.velocity,this.coords.delta),this._scopeFire("interactions:move",p),s||this.simulation||(this.interacting()&&(p.type=null,this.move(p)),this.pointerWasMoved&&z.copyCoords(this.coords.prev,this.coords.cur))}},{key:"move",value:function(r){r&&r.event||z.setZeroCoords(this.coords.delta),(r=(0,k.default)({pointer:this._latestPointer.pointer,event:this._latestPointer.event,eventTarget:this._latestPointer.eventTarget,interaction:this},r||{})).phase="move",this._doPhase(r)}},{key:"pointerUp",value:function(r,o,i,l){var a=this.getPointerIndex(r);a===-1&&(a=this.updatePointer(r,o,i,!1));var s=/cancel$/i.test(o.type)?"cancel":"up";this._scopeFire("interactions:".concat(s),{pointer:r,pointerIndex:a,pointerInfo:this.pointers[a],event:o,eventTarget:i,type:s,curEventTarget:l,interaction:this}),this.simulation||this.end(o),this.removePointer(r,o)}},{key:"documentBlur",value:function(r){this.end(r),this._scopeFire("interactions:blur",{event:r,type:"blur",interaction:this})}},{key:"end",value:function(r){var o;this._ending=!0,r=r||this._latestPointer.event,this.interacting()&&(o=this._doPhase({event:r,interaction:this,phase:"end"})),this._ending=!1,o===!0&&this.stop()}},{key:"currentAction",value:function(){return this._interacting?this.prepared.name:null}},{key:"interacting",value:function(){return this._interacting}},{key:"stop",value:function(){this._scopeFire("interactions:stop",{interaction:this}),this.interactable=this.element=null,this._interacting=!1,this._stopped=!0,this.prepared.name=this.prevEvent=null}},{key:"getPointerIndex",value:function(r){var o=z.getPointerId(r);return this.pointerType==="mouse"||this.pointerType==="pen"?this.pointers.length-1:U.findIndex(this.pointers,function(i){return i.id===o})}},{key:"getPointerInfo",value:function(r){return this.pointers[this.getPointerIndex(r)]}},{key:"updatePointer",value:function(r,o,i,l){var a=z.getPointerId(r),s=this.getPointerIndex(r),d=this.pointers[s];return l=l!==!1&&(l||/(down|start)$/i.test(o.type)),d?d.pointer=r:(d=new Xt.PointerInfo(a,r,o,null,null),s=this.pointers.length,this.pointers.push(d)),z.setCoords(this.coords.cur,this.pointers.map(function(p){return p.pointer}),this._now()),z.setCoordDeltas(this.coords.delta,this.coords.prev,this.coords.cur),l&&(this.pointerIsDown=!0,d.downTime=this.coords.cur.timeStamp,d.downTarget=i,z.pointerExtend(this.downPointer,r),this.interacting()||(z.copyCoords(this.coords.start,this.coords.cur),z.copyCoords(this.coords.prev,this.coords.cur),this.downEvent=o,this.pointerWasMoved=!1)),this._updateLatestPointer(r,o,i),this._scopeFire("interactions:update-pointer",{pointer:r,event:o,eventTarget:i,down:l,pointerInfo:d,pointerIndex:s,interaction:this}),s}},{key:"removePointer",value:function(r,o){var i=this.getPointerIndex(r);if(i!==-1){var l=this.pointers[i];this._scopeFire("interactions:remove-pointer",{pointer:r,event:o,eventTarget:null,pointerIndex:i,pointerInfo:l,interaction:this}),this.pointers.splice(i,1),this.pointerIsDown=!1}}},{key:"_updateLatestPointer",value:function(r,o,i){this._latestPointer.pointer=r,this._latestPointer.event=o,this._latestPointer.eventTarget=i}},{key:"destroy",value:function(){this._latestPointer.pointer=null,this._latestPointer.event=null,this._latestPointer.eventTarget=null}},{key:"_createPreparedEvent",value:function(r,o,i,l){return new Wt.InteractEvent(this,r,this.prepared.name,o,this.element,i,l)}},{key:"_fireEvent",value:function(r){var o;(o=this.interactable)==null||o.fire(r),(!this.prevEvent||r.timeStamp>=this.prevEvent.timeStamp)&&(this.prevEvent=r)}},{key:"_doPhase",value:function(r){var o=r.event,i=r.phase,l=r.preEnd,a=r.type,s=this.rect;if(s&&i==="move"&&(j.addEdges(this.edges,s,this.coords.delta[this.interactable.options.deltaSource]),s.width=s.right-s.left,s.height=s.bottom-s.top),this._scopeFire("interactions:before-action-".concat(i),r)===!1)return!1;var d=r.iEvent=this._createPreparedEvent(o,i,l,a);return this._scopeFire("interactions:action-".concat(i),r),i==="start"&&(this.prevEvent=d),this._fireEvent(d),this._scopeFire("interactions:after-action-".concat(i),r),!0}},{key:"_now",value:function(){return Date.now()}}],n&&ra(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),e}();Se.Interaction=Zr;var ia=Zr;Se.default=ia;var ct={};function Qr(e){e.pointerIsDown&&(ir(e.coords.cur,e.offset.total),e.offset.pending.x=0,e.offset.pending.y=0)}function eo(e){or(e.interaction)}function or(e){if(!function(n){return!(!n.offset.pending.x&&!n.offset.pending.y)}(e))return!1;var t=e.offset.pending;return ir(e.coords.cur,t),ir(e.coords.delta,t),j.addEdges(e.edges,e.rect,t),t.x=0,t.y=0,!0}function aa(e){var t=e.x,n=e.y;this.offset.pending.x+=t,this.offset.pending.y+=n,this.offset.total.x+=t,this.offset.total.y+=n}function ir(e,t){var n=e.page,r=e.client,o=t.x,i=t.y;n.x+=o,n.y+=i,r.x+=o,r.y+=i}Object.defineProperty(ct,"__esModule",{value:!0}),ct.addTotal=Qr,ct.applyPending=or,ct.default=void 0,Se._ProxyMethods.offsetBy="";var sa={id:"offset",before:["modifiers","pointer-events","actions","inertia"],install:function(e){e.Interaction.prototype.offsetBy=aa},listeners:{"interactions:new":function(e){e.interaction.offset={total:{x:0,y:0},pending:{x:0,y:0}}},"interactions:update-pointer":function(e){return Qr(e.interaction)},"interactions:before-action-start":eo,"interactions:before-action-move":eo,"interactions:before-action-end":function(e){var t=e.interaction;if(or(t))return t.move({offset:!0}),t.end(),!1},"interactions:stop":function(e){var t=e.interaction;t.offset.total.x=0,t.offset.total.y=0,t.offset.pending.x=0,t.offset.pending.y=0}}},la=sa;ct.default=la;var _t={};function ua(e,t){for(var n=0;ni.minSpeed&&a>i.endSpeed)this.startInertia();else{if(s.result=s.setAll(this.modifierArg),!s.result.changed)return!1;this.startSmoothEnd()}return o.modification.result.rect=null,o.offsetBy(this.targetOffset),o._doPhase({interaction:o,event:r,phase:"inertiastart"}),o.offsetBy({x:-this.targetOffset.x,y:-this.targetOffset.y}),o.modification.result.rect=null,this.active=!0,o.simulation=this,!0}},{key:"startInertia",value:function(){var r=this,o=this.interaction.coords.velocity.client,i=En(this.interaction),l=i.resistance,a=-Math.log(i.endSpeed/this.v0)/l;this.targetOffset={x:(o.x-a)/l,y:(o.y-a)/l},this.te=a,this.lambda_v0=l/this.v0,this.one_ve_v0=1-i.endSpeed/this.v0;var s=this.modification,d=this.modifierArg;d.pageCoords={x:this.startCoords.x+this.targetOffset.x,y:this.startCoords.y+this.targetOffset.y},s.result=s.setAll(d),s.result.changed&&(this.isModified=!0,this.modifiedOffset={x:this.targetOffset.x+s.result.delta.x,y:this.targetOffset.y+s.result.delta.y}),this.onNextFrame(function(){return r.inertiaTick()})}},{key:"startSmoothEnd",value:function(){var r=this;this.smoothEnd=!0,this.isModified=!0,this.targetOffset={x:this.modification.result.delta.x,y:this.modification.result.delta.y},this.onNextFrame(function(){return r.smoothEndTick()})}},{key:"onNextFrame",value:function(r){var o=this;this.timeout=Ie.default.request(function(){o.active&&r()})}},{key:"inertiaTick",value:function(){var r,o,i,l,a,s=this,d=this.interaction,p=En(d).resistance,g=(d._now()-this.t0)/1e3;if(g=0;i--){var l=o[i],a=l.selector,s=l.context,d=l.listeners;a===this.target&&s===this._context&&o.splice(i,1);for(var p=d.length-1;p>=0;p--)this._scopeEvents.removeDelegate(this.target,this._context,r,d[p][0],d[p][1])}else this._scopeEvents.remove(this.target,"all")}}])&&va(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),e}();_n.Interactable=ha;var On={};function ga(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=Array(t);n=0;x--){var I=_[x];if(I.selector===p&&I.context===g){for(var B=I.listeners,q=B.length-1;q>=0;q--){var ee=ur(B[q],2),L=ee[0],Z=ee[1],je=Z.capture,He=Z.passive;if(L===w&&je===P.capture&&He===P.passive){B.splice(q,1),B.length||(_.splice(x,1),a(g,b,s),a(g,b,d,!0)),M=!0;break}}if(M)break}}},delegateListener:s,delegateUseCapture:d,delegatedEvents:r,documents:o,targets:n,supportsOptions:!1,supportsPassive:!1};function l(p,g,b,w){var y=Vt(w),x=U.find(n,function(P){return P.eventTarget===p});x||(x={eventTarget:p,events:{}},n.push(x)),x.events[g]||(x.events[g]=[]),p.addEventListener&&!U.contains(x.events[g],b)&&(p.addEventListener(g,b,i.supportsOptions?y:y.capture),x.events[g].push(b))}function a(p,g,b,w){var y=Vt(w),x=U.findIndex(n,function(q){return q.eventTarget===p}),P=n[x];if(P&&P.events)if(g!=="all"){var _=!1,M=P.events[g];if(M){if(b==="all"){for(var I=M.length-1;I>=0;I--)a(p,g,M[I],y);return}for(var B=0;B=2)continue;if(!o.interacting()&&t===o.pointerType)return o}return null}};function ao(e,t){return e.pointers.some(function(n){return n.id===t})}var xa=kn;Pn.default=xa;var Tn={};function cr(e){return cr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},cr(e)}function so(e,t){return function(n){if(Array.isArray(n))return n}(e)||function(n,r){var o=n==null?null:typeof Symbol<"u"&&n[Symbol.iterator]||n["@@iterator"];if(o!=null){var i,l,a=[],s=!0,d=!1;try{for(o=o.call(n);!(s=(i=o.next()).done)&&(a.push(i.value),!r||a.length!==r);s=!0);}catch(p){d=!0,l=p}finally{try{s||o.return==null||o.return()}finally{if(d)throw l}}return a}}(e,t)||function(n,r){if(n){if(typeof n=="string")return lo(n,r);var o=Object.prototype.toString.call(n).slice(8,-1);return o==="Object"&&n.constructor&&(o=n.constructor.name),o==="Map"||o==="Set"?Array.from(n):o==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?lo(n,r):void 0}}(e,t)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function lo(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}(),function(){var y,x=zn(p);if(g){var P=zn(this).constructor;y=Reflect.construct(x,arguments,P)}else y=x.apply(this,arguments);return Oa(this,y)});function w(){return Ea(this,w),b.apply(this,arguments)}return s=w,(d=[{key:"pointerMoveTolerance",get:function(){return e.interactions.pointerMoveTolerance},set:function(y){e.interactions.pointerMoveTolerance=y}},{key:"_now",value:function(){return e.now()}}])&&_a(s.prototype,d),Object.defineProperty(s,"prototype",{writable:!1}),w}(Se.default),e.interactions={list:[],new:function(a){a.scopeFire=function(d,p){return e.fire(d,p)};var s=new e.Interaction(a);return e.interactions.list.push(s),s},listeners:t,docEvents:o,pointerMoveTolerance:1},e.usePlugin(Et.default)},listeners:{"scope:add-document":function(e){return pr(e,"add")},"scope:remove-document":function(e){return pr(e,"remove")},"interactable:unset":function(e,t){for(var n=e.interactable,r=t.interactions.list.length-1;r>=0;r--){var o=t.interactions.list[r];o.interactable===n&&(o.stop(),t.fire("interactions:destroy",{interaction:o}),o.destroy(),t.interactions.list.length>2&&t.interactions.list.splice(r,1))}}},onDocSignal:pr,doOnInteractions:uo,methodNames:dr},Pa=Sa;Tn.default=Pa;var Ut={};function vr(e){return vr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},vr(e)}function Mn(){return Mn=typeof Reflect<"u"&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=ka(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},Mn.apply(this,arguments)}function ka(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=ft(e))!==null;);return e}function hr(e,t){return hr=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,r){return n.__proto__=r,n},hr(e,t)}function Ta(e,t){if(t&&(vr(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(n){if(n===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return n}(e)}function ft(e){return ft=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},ft(e)}function fo(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function po(e,t){for(var n=0;n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}(),function(){var s,d=ft(o);if(i){var p=ft(this).constructor;s=Reflect.construct(d,arguments,p)}else s=d.apply(this,arguments);return Ta(this,s)});function a(){return fo(this,a),l.apply(this,arguments)}return vo(a,[{key:"_defaults",get:function(){return n.defaults}},{key:"set",value:function(s){return Mn(ft(a.prototype),"set",this).call(this,s),n.fire("interactable:set",{options:s,interactable:this}),this}},{key:"unset",value:function(){Mn(ft(a.prototype),"unset",this).call(this);var s=n.interactables.list.indexOf(this);s<0||(n.interactables.list.splice(s,1),n.fire("interactable:unset",{interactable:this}))}}]),a}(_n.Interactable)}return vo(e,[{key:"addListeners",value:function(t,n){this.listenerMaps.push({id:n,map:t})}},{key:"fire",value:function(t,n){for(var r=0;re.length)&&(t=e.length);for(var n=0,r=Array(t);nMath.abs(d.y),s.coords,s.rect),(0,k.default)(r,s.coords)),s.eventProps},defaults:{ratio:"preserve",equalDelta:!1,modifiers:[],enabled:!1}};function Ca(e,t,n){var r=e.startCoords,o=e.edgeSign;t?n.y=r.y+(n.x-r.x)*o.y:n.x=r.x+(n.y-r.y)*o.x}function Aa(e,t,n,r){var o=e.startRect,i=e.startCoords,l=e.ratio,a=e.edgeSign;if(t){var s=r.width/l;n.y=i.y+(s-o.height)*a.y}else{var d=r.height*l;n.x=i.x+(d-o.width)*a.x}}Ot.aspectRatio=xo;var Ba=(0,ve.makeModifier)(xo,"aspectRatio");Ot.default=Ba;var dt={};Object.defineProperty(dt,"__esModule",{value:!0}),dt.default=void 0;var Eo=function(){};Eo._defaults={};var Fa=Eo;dt.default=Fa;var mr={};Object.defineProperty(mr,"__esModule",{value:!0}),Object.defineProperty(mr,"default",{enumerable:!0,get:function(){return dt.default}});var Ee={};function yr(e,t,n){return u.default.func(e)?j.resolveRectLike(e,t.interactable,t.element,[n.x,n.y,t]):j.resolveRectLike(e,t.interactable,t.element)}Object.defineProperty(Ee,"__esModule",{value:!0}),Ee.default=void 0,Ee.getRestrictionRect=yr,Ee.restrict=void 0;var _o={start:function(e){var t=e.rect,n=e.startOffset,r=e.state,o=e.interaction,i=e.pageCoords,l=r.options,a=l.elementRect,s=(0,k.default)({left:0,top:0,right:0,bottom:0},l.offset||{});if(t&&a){var d=yr(l.restriction,o,i);if(d){var p=d.right-d.left-t.width,g=d.bottom-d.top-t.height;p<0&&(s.left+=p,s.right+=p),g<0&&(s.top+=g,s.bottom+=g)}s.left+=n.left-t.width*a.left,s.top+=n.top-t.height*a.top,s.right+=n.right-t.width*(1-a.right),s.bottom+=n.bottom-t.height*(1-a.bottom)}r.offset=s},set:function(e){var t=e.coords,n=e.interaction,r=e.state,o=r.options,i=r.offset,l=yr(o.restriction,n,t);if(l){var a=j.xywhToTlbr(l);t.x=Math.max(Math.min(a.right-i.right,t.x),a.left+i.left),t.y=Math.max(Math.min(a.bottom-i.bottom,t.y),a.top+i.top)}},defaults:{restriction:null,elementRect:null,offset:null,endOnly:!1,enabled:!1}};Ee.restrict=_o;var Na=(0,ve.makeModifier)(_o,"restrict");Ee.default=Na;var De={};Object.defineProperty(De,"__esModule",{value:!0}),De.restrictEdges=De.default=void 0;var Oo={top:1/0,left:1/0,bottom:-1/0,right:-1/0},So={top:-1/0,left:-1/0,bottom:1/0,right:1/0};function Po(e,t){for(var n=["top","left","bottom","right"],r=0;re.length)&&(t=e.length);for(var n=0,r=Array(t);n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}(),function(){var a,s=An(r);if(o){var d=An(this).constructor;a=Reflect.construct(s,arguments,d)}else a=s.apply(this,arguments);return Qa(this,a)});function l(a,s,d,p,g,b){var w;if(function(P,_){if(!(P instanceof _))throw new TypeError("Cannot call a class as a function")}(this,l),w=i.call(this,g),z.pointerExtend(Or(w),d),d!==s&&z.pointerExtend(Or(w),s),w.timeStamp=b,w.originalEvent=d,w.type=a,w.pointerId=z.getPointerId(s),w.pointerType=z.getPointerType(s),w.target=p,w.currentTarget=null,a==="tap"){var y=g.getPointerIndex(s);w.dt=w.timeStamp-g.pointers[y].downTime;var x=w.timeStamp-g.tapTime;w.double=!!g.prevTap&&g.prevTap.type!=="doubletap"&&g.prevTap.target===w.target&&x<500}else a==="doubletap"&&(w.dt=s.timeStamp-g.tapTime,w.double=!0);return w}return t=l,(n=[{key:"_subtractOrigin",value:function(a){var s=a.x,d=a.y;return this.pageX-=s,this.pageY-=d,this.clientX-=s,this.clientY-=d,this}},{key:"_addOrigin",value:function(a){var s=a.x,d=a.y;return this.pageX+=s,this.pageY+=d,this.clientX+=s,this.clientY+=d,this}},{key:"preventDefault",value:function(){this.originalEvent.preventDefault()}}])&&Za(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),l}(Le.BaseEvent);pt.PointerEvent=pt.default=es;var Kt={};Object.defineProperty(Kt,"__esModule",{value:!0}),Kt.default=void 0;var Bn={id:"pointer-events/base",before:["inertia","modifiers","auto-start","actions"],install:function(e){e.pointerEvents=Bn,e.defaults.actions.pointerEvents=Bn.defaults,(0,k.default)(e.actions.phaselessTypes,Bn.types)},listeners:{"interactions:new":function(e){var t=e.interaction;t.prevTap=null,t.tapTime=0},"interactions:update-pointer":function(e){var t=e.down,n=e.pointerInfo;!t&&n.hold||(n.hold={duration:1/0,timeout:null})},"interactions:move":function(e,t){var n=e.interaction,r=e.pointer,o=e.event,i=e.eventTarget;e.duplicate||n.pointerIsDown&&!n.pointerWasMoved||(n.pointerIsDown&&Sr(e),nt({interaction:n,pointer:r,event:o,eventTarget:i,type:"move"},t))},"interactions:down":function(e,t){(function(n,r){for(var o=n.interaction,i=n.pointer,l=n.event,a=n.eventTarget,s=n.pointerIndex,d=o.pointers[s].hold,p=R.getPath(a),g={interaction:o,pointer:i,event:l,eventTarget:a,type:"hold",targets:[],path:p,node:null},b=0;b({})},resizeOption:{type:Object,default:()=>({})}},emits:["container-resized","resize","resized","move","moved"],setup(c,{expose:v,emit:h}){const f=c,m=Ao(di),O=Ao(pi);if(!m)throw new Error("[grid-layout-plus]: missing layout store, GridItem must under a GridLayout.");const S=Yn(null),u=Hn({cols:1,containerWidth:100,rowHeight:30,margin:[10,10],maxRows:1/0,draggable:null,resizable:null,bounded:null,transformScale:1,useCssTransforms:!0,useStyleCursor:!0,isDragging:!1,dragging:{top:-1,left:-1},isResizing:!1,resizing:{width:-1,height:-1},style:{},rtl:!1});let Y=!1,re=!1,F=NaN,ye=NaN,pe=NaN,fe=NaN,Ae=-1,Re=-1,Be=-1,X=-1,$=f.x,ae=f.y,le=f.w,H=f.h;const oe=Yn(),Ve=Hn({i:hs(f,"i"),state:u,wrapper:oe,calcXY:it});function R(E){sn(E)}function Oe(){U()}function T(E){ke(f.isDraggable)&&(u.draggable=E)}function K(E){ke(f.isResizable)&&(u.resizable=E)}function V(E){ke(f.isBounded)&&(u.bounded=E)}function be(E){u.transformScale=E}function ge(E){u.rowHeight=E}function k(E){u.maxRows=E}function j(){u.rtl=Ho()==="rtl",U()}function Te(E){u.cols=Math.floor(E)}m.increaseItem(Ve),si(()=>{u.rtl=Ho()==="rtl"}),li(()=>{m.responsive&&m.lastBreakpoint?u.cols=Cr(m.lastBreakpoint,m.cols):u.cols=m.colNum,u.rowHeight=m.rowHeight,u.containerWidth=m.width!==null?m.width:100,u.margin=m.margin!==void 0?m.margin:[10,10],u.maxRows=m.maxRows,ke(f.isDraggable)?u.draggable=m.isDraggable:u.draggable=f.isDraggable,ke(f.isResizable)?u.resizable=m.isResizable:u.resizable=f.isResizable,ke(f.isBounded)?u.bounded=m.isBounded:u.bounded=f.isBounded,u.transformScale=m.transformScale,u.useCssTransforms=m.useCssTransforms,u.useStyleCursor=m.useStyleCursor,gs(()=>{$=f.x,ae=f.y,H=f.h,le=f.w,_e(z)}),O.on("updateWidth",R),O.on("compact",Oe),O.on("setDraggable",T),O.on("setResizable",K),O.on("setBounded",V),O.on("setTransformScale",be),O.on("setRowHeight",ge),O.on("setMaxRows",k),O.on("directionchange",j),O.on("setColNum",Te)}),ui(()=>{O.off("updateWidth",R),O.off("compact",Oe),O.off("setDraggable",T),O.off("setResizable",K),O.off("setBounded",V),O.off("setTransformScale",be),O.off("setRowHeight",ge),O.off("setMaxRows",k),O.off("directionchange",j),O.off("setColNum",Te),S.value&&(S.value.unset(),S.value=null),m.decreaseItem(Ve)}),v({state:u,wrapper:oe});const Fe=navigator.userAgent.toLowerCase().includes("android"),ue=zt(()=>u.resizable&&!f.static),Q=zt(()=>m.isMirrored?!u.rtl:u.rtl),Ne=zt(()=>(u.draggable||u.resizable)&&!f.static),ce=Ls("item"),yt=zt(()=>({[ce.b()]:!0,[ce.bm("resizable")]:ue.value,[ce.bm("static")]:f.static,[ce.bm("resizing")]:u.isResizing,[ce.bm("dragging")]:u.isDragging,[ce.bm("transform")]:u.useCssTransforms,[ce.bm("rtl")]:Q.value,[ce.bm("no-touch")]:Fe&&Ne.value})),It=zt(()=>[ce.be("resizer"),Q.value&&ce.bem("resizer","rtl")].filter(Boolean));se(()=>f.isDraggable,E=>{u.draggable=E}),se(()=>f.static,()=>{_e(ze),_e(Ke)}),se(()=>u.draggable,()=>{_e(ze)}),se(()=>f.isResizable,E=>{u.resizable=E}),se(()=>f.isBounded,E=>{u.bounded=E}),se(()=>u.resizable,()=>{_e(Ke)}),se(()=>u.rowHeight,()=>{_e(z),_e(ot)}),se([()=>u.cols,()=>u.containerWidth],()=>{_e(Ke),_e(z),_e(ot)}),se([()=>f.minH,()=>f.maxH,()=>f.minW,()=>f.maxW],()=>{_e(Ke)}),se(Q,()=>{_e(Ke),_e(z)}),se(()=>m.margin,E=>{!E||E[0]===u.margin[0]&&E[1]===u.margin[1]||(u.margin=E.map(Number),_e(z),_e(ot))});function z(){f.x+f.w>u.cols?($=0,le=f.w>u.cols?u.cols:f.w):($=f.x,le=f.w);const E=Ge($,ae,le,H);u.isDragging&&(E.top=u.dragging.top,Q.value?E.right=u.dragging.left:E.left=u.dragging.left),u.isResizing&&(E.width=u.resizing.width,E.height=u.resizing.height);let A;u.useCssTransforms?Q.value?A=As(E.top,E.right,E.width,E.height):A=Cs(E.top,E.left,E.width,E.height):Q.value?A=Fs(E.top,E.right,E.width,E.height):A=Bs(E.top,E.left,E.width,E.height),u.style=A}function ot(){const E={};for(const A of["width","height"]){const N=u.style[A].match(/^(\d+)px$/);if(!N)return;E[A]=N[1]}h("container-resized",f.i,f.h,f.w,E.height,E.width)}function Ue(E){if(f.static)return;const A=E.type;if(A==="resizestart"&&u.isResizing||A!=="resizestart"&&!u.isResizing)return;const N=qo(E);if(ke(N))return;const{x:G,y:te}=N,W={width:0,height:0};let D;switch(A){case"resizestart":{Ke(),Ae=le,Re=H,D=Ge($,ae,le,H),W.width=D.width,W.height=D.height,u.resizing=W,u.isResizing=!0;break}case"resizemove":{const me=Yo(pe,fe,G,te);Q.value?W.width=u.resizing.width-me.deltaX/u.transformScale:W.width=u.resizing.width+me.deltaX/u.transformScale,W.height=u.resizing.height+me.deltaY/u.transformScale,u.resizing=W;break}case"resizeend":{D=Ge($,ae,le,H),W.width=D.width,W.height=D.height,u.resizing={width:-1,height:-1},u.isResizing=!1;break}}D=an(W.height,W.width),D.wf.maxW&&(D.w=f.maxW),D.hf.maxH&&(D.h=f.maxH),D.h<1&&(D.h=1),D.w<1&&(D.w=1),pe=G,fe=te,(le!==D.w||H!==D.h)&&h("resize",f.i,D.h,D.w,W.height,W.width),E.type==="resizeend"&&(Ae!==le||Re!==H)&&h("resized",f.i,D.h,D.w,W.height,W.width),O.emit("resizeEvent",E.type,f.i,$,ae,D.h,D.w)}function Dt(E){if(f.static||u.isResizing)return;const A=E.type;if(A==="dragstart"&&u.isDragging||A!=="dragstart"&&!u.isDragging)return;const N=qo(E);if(ke(N))return;const{x:G,y:te}=N,W=E.target;if(!W.offsetParent)return;const D={top:0,left:0};switch(A){case"dragstart":{Be=$,X=ae;const we=W.offsetParent.getBoundingClientRect(),Me=W.getBoundingClientRect(),We=Me.left/u.transformScale,Xe=we.left/u.transformScale,bt=Me.right/u.transformScale,wt=we.right/u.transformScale,Bt=Me.top/u.transformScale,Je=we.top/u.transformScale;Q.value?D.left=(bt-wt)*-1:D.left=We-Xe,D.top=Bt-Je,u.dragging=D,u.isDragging=!0;break}case"dragmove":{const we=Yo(F,ye,G,te);if(Q.value?D.left=u.dragging.left-we.deltaX/u.transformScale:D.left=u.dragging.left+we.deltaX/u.transformScale,D.top=u.dragging.top+we.deltaY/u.transformScale,u.bounded){const Me=W.offsetParent.clientHeight-Le(f.h,u.rowHeight,u.margin[1]);D.top=on(D.top,0,Me);const We=at(),Xe=u.containerWidth-Le(f.w,We,u.margin[0]);D.left=on(D.left,0,Xe)}u.dragging=D;break}case"dragend":{const we=W.offsetParent.getBoundingClientRect(),Me=W.getBoundingClientRect(),We=Me.left/u.transformScale,Xe=we.left/u.transformScale,bt=Me.right/u.transformScale,wt=we.right/u.transformScale,Bt=Me.top/u.transformScale,Je=we.top/u.transformScale;Q.value?D.left=(bt-wt)*-1:D.left=We-Xe,D.top=Bt-Je,u.dragging={top:-1,left:-1},u.isDragging=!1;break}}let me;Q.value,me=it(D.top,D.left),F=G,ye=te,($!==me.x||ae!==me.y)&&h("move",f.i,me.x,me.y),E.type==="dragend"&&(Be!==$||X!==ae)&&h("moved",f.i,me.x,me.y),O.emit("dragEvent",E.type,f.i,me.x,me.y,H,le)}function Ge(E,A,N,G){const te=at();let W;return Q.value?W={right:Math.round(te*E+(E+1)*u.margin[0]),top:Math.round(u.rowHeight*A+(A+1)*u.margin[1]),width:N===1/0?N:Math.round(te*N+Math.max(0,N-1)*u.margin[0]),height:G===1/0?G:Math.round(u.rowHeight*G+Math.max(0,G-1)*u.margin[1])}:W={left:Math.round(te*E+(E+1)*u.margin[0]),top:Math.round(u.rowHeight*A+(A+1)*u.margin[1]),width:N===1/0?N:Math.round(te*N+Math.max(0,N-1)*u.margin[0]),height:G===1/0?G:Math.round(u.rowHeight*G+Math.max(0,G-1)*u.margin[1])},W}function it(E,A){const N=at();let G=Math.round((A-u.margin[0])/(N+u.margin[0])),te=Math.round((E-u.margin[1])/(u.rowHeight+u.margin[1]));return G=Math.max(Math.min(G,u.cols-le),0),te=Math.max(Math.min(te,u.maxRows-H),0),{x:G,y:te}}function at(){return(u.containerWidth-u.margin[0]*(u.cols+1))/u.cols}function Le(E,A,N){return Number.isFinite(E)?Math.round(A*E+Math.max(0,E-1)*N):E}function on(E,A,N){return Math.max(Math.min(E,N),A)}function an(E,A,N=!1){const G=at();let te=Math.round((A+u.margin[0])/(G+u.margin[0])),W=0;return N?W=Math.ceil((E+u.margin[1])/(u.rowHeight+u.margin[1])):W=Math.round((E+u.margin[1])/(u.rowHeight+u.margin[1])),te=Math.max(Math.min(te,u.cols-$),0),W=Math.max(Math.min(W,u.maxRows-ae),0),{w:te,h:W}}function sn(E,A){u.containerWidth=E,A!=null&&(u.cols=A)}function U(){z()}function Ct(){!S.value&&oe.value&&(S.value=Vo(oe.value),u.useStyleCursor||S.value.styleCursor(!1))}const ln=Wo(Dt);function ze(){if(Ct(),!!S.value)if(u.draggable&&!f.static){const E={ignoreFrom:f.dragIgnoreFrom,allowFrom:f.dragAllowFrom,...f.dragOption};S.value.draggable(E),Y||(Y=!0,S.value.on("dragstart dragmove dragend",A=>{A.type==="dragmove"?ln(A):Dt(A)}))}else S.value.draggable({enabled:!1})}const At=Wo(Ue);function Ke(){if(Ct(),!!S.value)if(u.resizable&&!f.static){const E=Ge(0,0,f.maxW,f.maxH),A=Ge(0,0,f.minW,f.minH),N={edges:{left:!1,right:`.${It.value[0]}`,bottom:`.${It.value[0]}`,top:!1},ignoreFrom:f.resizeIgnoreFrom,restrictSize:{min:{height:A.height*u.transformScale,width:A.width*u.transformScale},max:{height:E.height*u.transformScale,width:E.width*u.transformScale}},...f.resizeOption};f.preserveAspectRatio&&(N.modifiers=[Vo.modifiers.aspectRatio({ratio:"preserve"})]),S.value.resizable(N),re||(re=!0,S.value.on("resizestart resizemove resizeend",G=>{G.type==="resizemove"?At(G):Ue(G)}))}else S.value.resizable({enabled:!1})}return(E,A)=>(Zt(),Vn("section",{ref_key:"wrapper",ref:oe,class:Bo(Tr(yt)),style:ci(u.style)},[Rr(E.$slots,"default"),Tr(ue)?(Zt(),Vn("span",{key:0,class:Bo(Tr(It))},null,2)):ms("",!0)],6))}}),Rt=typeof window<"u";var Go;Rt&&(Go=window==null?void 0:window.navigator)!=null&&Go.userAgent&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function Ko(c){return c!=null}function zr(){}const Us=Object.freeze({aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"});Object.freeze(new Set(Object.keys(Us)));const Gs=Rt&&("ontouchstart"in window||Js()>0),Ks=Gs?"pointerdown":"click";function Js(){return typeof navigator<"u"&&(navigator.maxTouchPoints||navigator.msMaxTouchPoints)||0}const Un=new Map;function Zs(c){Un.has(c)||Un.set(c,new Set)}function Qs(c){return Un.get(c)??Un.set(c,new Set).get(c)}function el(c,v,h=window.Event){const{type:f,bubbles:m=!1,cancelable:O=!1,...S}=v;if(!Ko(f)||f==="")return!1;let u;return Ko(h)?u=new h(f,{bubbles:m,cancelable:O}):(u=document.createEvent("HTMLEvents"),u.initEvent(f,m,O)),Object.assign(u,S),c.dispatchEvent(u)}const Ar="clickoutside";Zs(Ar);Rt&&document.addEventListener(Ks,c=>{const v=c.target,h=c.composedPath&&c.composedPath();Qs(Ar).forEach(f=>{f!==v&&(h?!h.includes(f):!f.contains(v))&&(!f.__transferElement||f.__transferElement!==v&&!f.__transferElement.contains(v))&&el(f,{type:Ar})})},!0);const tl=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]];let tn;if(Rt){for(const c of tl)if(c[1]in document){tn=c;break}}const nl=!!tn;zt(()=>!1);const rl=new Set;if(Rt&&tn){const c=tn[2],v=tn[4];document.addEventListener(v,()=>{const h=!!document[c];rl.forEach(f=>{f.value=h})},!1)}const wi=new Map;wi.set("x",0);wi.set("y",0);var gt=[],ol=function(){return gt.some(function(c){return c.activeTargets.length>0})},il=function(){return gt.some(function(c){return c.skippedTargets.length>0})},Jo="ResizeObserver loop completed with undelivered notifications.",al=function(){var c;typeof ErrorEvent=="function"?c=new ErrorEvent("error",{message:Jo}):(c=document.createEvent("Event"),c.initEvent("error",!1,!1),c.message=Jo),window.dispatchEvent(c)},rn;(function(c){c.BORDER_BOX="border-box",c.CONTENT_BOX="content-box",c.DEVICE_PIXEL_CONTENT_BOX="device-pixel-content-box"})(rn||(rn={}));var mt=function(c){return Object.freeze(c)},sl=function(){function c(v,h){this.inlineSize=v,this.blockSize=h,mt(this)}return c}(),xi=function(){function c(v,h,f,m){return this.x=v,this.y=h,this.width=f,this.height=m,this.top=this.y,this.left=this.x,this.bottom=this.top+this.height,this.right=this.left+this.width,mt(this)}return c.prototype.toJSON=function(){var v=this,h=v.x,f=v.y,m=v.top,O=v.right,S=v.bottom,u=v.left,Y=v.width,re=v.height;return{x:h,y:f,top:m,right:O,bottom:S,left:u,width:Y,height:re}},c.fromRect=function(v){return new c(v.x,v.y,v.width,v.height)},c}(),Fr=function(c){return c instanceof SVGElement&&"getBBox"in c},Ei=function(c){if(Fr(c)){var v=c.getBBox(),h=v.width,f=v.height;return!h&&!f}var m=c,O=m.offsetWidth,S=m.offsetHeight;return!(O||S||c.getClientRects().length)},Zo=function(c){var v;if(c instanceof Element)return!0;var h=(v=c==null?void 0:c.ownerDocument)===null||v===void 0?void 0:v.defaultView;return!!(h&&c instanceof h.Element)},ll=function(c){switch(c.tagName){case"INPUT":if(c.type!=="image")break;case"VIDEO":case"AUDIO":case"EMBED":case"OBJECT":case"CANVAS":case"IFRAME":case"IMG":return!0}return!1},nn=typeof window<"u"?window:{},Wn=new WeakMap,Qo=/auto|scroll/,ul=/^tb|vertical/,cl=/msie|trident/i.test(nn.navigator&&nn.navigator.userAgent),Ce=function(c){return parseFloat(c||"0")},jt=function(c,v,h){return c===void 0&&(c=0),v===void 0&&(v=0),h===void 0&&(h=!1),new sl((h?v:c)||0,(h?c:v)||0)},ei=mt({devicePixelContentBoxSize:jt(),borderBoxSize:jt(),contentBoxSize:jt(),contentRect:new xi(0,0,0,0)}),_i=function(c,v){if(v===void 0&&(v=!1),Wn.has(c)&&!v)return Wn.get(c);if(Ei(c))return Wn.set(c,ei),ei;var h=getComputedStyle(c),f=Fr(c)&&c.ownerSVGElement&&c.getBBox(),m=!cl&&h.boxSizing==="border-box",O=ul.test(h.writingMode||""),S=!f&&Qo.test(h.overflowY||""),u=!f&&Qo.test(h.overflowX||""),Y=f?0:Ce(h.paddingTop),re=f?0:Ce(h.paddingRight),F=f?0:Ce(h.paddingBottom),ye=f?0:Ce(h.paddingLeft),pe=f?0:Ce(h.borderTopWidth),fe=f?0:Ce(h.borderRightWidth),Ae=f?0:Ce(h.borderBottomWidth),Re=f?0:Ce(h.borderLeftWidth),Be=ye+re,X=Y+F,$=Re+fe,ae=pe+Ae,le=u?c.offsetHeight-ae-c.clientHeight:0,H=S?c.offsetWidth-$-c.clientWidth:0,oe=m?Be+$:0,Ve=m?X+ae:0,R=f?f.width:Ce(h.width)-oe-H,Oe=f?f.height:Ce(h.height)-Ve-le,T=R+Be+H+$,K=Oe+X+le+ae,V=mt({devicePixelContentBoxSize:jt(Math.round(R*devicePixelRatio),Math.round(Oe*devicePixelRatio),O),borderBoxSize:jt(T,K,O),contentBoxSize:jt(R,Oe,O),contentRect:new xi(ye,Y,R,Oe)});return Wn.set(c,V),V},Oi=function(c,v,h){var f=_i(c,h),m=f.borderBoxSize,O=f.contentBoxSize,S=f.devicePixelContentBoxSize;switch(v){case rn.DEVICE_PIXEL_CONTENT_BOX:return S;case rn.BORDER_BOX:return m;default:return O}},fl=function(){function c(v){var h=_i(v);this.target=v,this.contentRect=h.contentRect,this.borderBoxSize=mt([h.borderBoxSize]),this.contentBoxSize=mt([h.contentBoxSize]),this.devicePixelContentBoxSize=mt([h.devicePixelContentBoxSize])}return c}(),Si=function(c){if(Ei(c))return 1/0;for(var v=0,h=c.parentNode;h;)v+=1,h=h.parentNode;return v},dl=function(){var c=1/0,v=[];gt.forEach(function(O){if(O.activeTargets.length!==0){var S=[];O.activeTargets.forEach(function(u){var Y=new fl(u.target),re=Si(u.target);S.push(Y),u.lastReportedSize=Oi(u.target,u.observedBox),rec?v.activeTargets.push(h):v.skippedTargets.push(h))})})},pl=function(){var c=0;for(ti(c);ol();)c=dl(),ti(c);return il()&&al(),c>0},Mr,Pi=[],vl=function(){return Pi.splice(0).forEach(function(c){return c()})},hl=function(c){if(!Mr){var v=0,h=document.createTextNode(""),f={characterData:!0};new MutationObserver(function(){return vl()}).observe(h,f),Mr=function(){h.textContent="".concat(v?v--:v++)}}Pi.push(c),Mr()},gl=function(c){hl(function(){requestAnimationFrame(c)})},qn=0,ml=function(){return!!qn},yl=250,bl={attributes:!0,characterData:!0,childList:!0,subtree:!0},ni=["resize","load","transitionend","animationend","animationstart","animationiteration","keyup","keydown","mouseup","mousedown","mouseover","mouseout","blur","focus"],ri=function(c){return c===void 0&&(c=0),Date.now()+c},jr=!1,wl=function(){function c(){var v=this;this.stopped=!0,this.listener=function(){return v.schedule()}}return c.prototype.run=function(v){var h=this;if(v===void 0&&(v=yl),!jr){jr=!0;var f=ri(v);gl(function(){var m=!1;try{m=pl()}finally{if(jr=!1,v=f-ri(),!ml())return;m?h.run(1e3):v>0?h.run(v):h.start()}})}},c.prototype.schedule=function(){this.stop(),this.run()},c.prototype.observe=function(){var v=this,h=function(){return v.observer&&v.observer.observe(document.body,bl)};document.body?h():nn.addEventListener("DOMContentLoaded",h)},c.prototype.start=function(){var v=this;this.stopped&&(this.stopped=!1,this.observer=new MutationObserver(this.listener),this.observe(),ni.forEach(function(h){return nn.addEventListener(h,v.listener,!0)}))},c.prototype.stop=function(){var v=this;this.stopped||(this.observer&&this.observer.disconnect(),ni.forEach(function(h){return nn.removeEventListener(h,v.listener,!0)}),this.stopped=!0)},c}(),Br=new wl,oi=function(c){!qn&&c>0&&Br.start(),qn+=c,!qn&&Br.stop()},xl=function(c){return!Fr(c)&&!ll(c)&&getComputedStyle(c).display==="inline"},El=function(){function c(v,h){this.target=v,this.observedBox=h||rn.CONTENT_BOX,this.lastReportedSize={inlineSize:0,blockSize:0}}return c.prototype.isActive=function(){var v=Oi(this.target,this.observedBox,!0);return xl(this.target)&&(this.lastReportedSize=v),this.lastReportedSize.inlineSize!==v.inlineSize||this.lastReportedSize.blockSize!==v.blockSize},c}(),_l=function(){function c(v,h){this.activeTargets=[],this.skippedTargets=[],this.observationTargets=[],this.observer=v,this.callback=h}return c}(),Xn=new WeakMap,ii=function(c,v){for(var h=0;h=0&&(O&>.splice(gt.indexOf(f),1),f.observationTargets.splice(m,1),oi(-1))},c.disconnect=function(v){var h=this,f=Xn.get(v);f.observationTargets.slice().forEach(function(m){return h.unobserve(v,m.target)}),f.activeTargets.splice(0,f.activeTargets.length)},c}(),Ol=function(){function c(v){if(arguments.length===0)throw new TypeError("Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.");if(typeof v!="function")throw new TypeError("Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.");$n.connect(this,v)}return c.prototype.observe=function(v,h){if(arguments.length===0)throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!Zo(v))throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element");$n.observe(this,v,h)},c.prototype.unobserve=function(v){if(arguments.length===0)throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!Zo(v))throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element");$n.unobserve(this,v)},c.prototype.disconnect=function(){$n.disconnect(this)},c.toString=function(){return"function ResizeObserver () { [polyfill code] }"},c}();const Gn=new WeakMap;function Sl(c){for(let v=0,h=c.length;v[10,10]},isDraggable:{type:Boolean,default:!0},isResizable:{type:Boolean,default:!0},isMirrored:{type:Boolean,default:!1},isBounded:{type:Boolean,default:!1},useCssTransforms:{type:Boolean,default:!0},verticalCompact:{type:Boolean,default:!0},restoreOnDrag:{type:Boolean,default:!1},layout:{type:Array,required:!0},responsive:{type:Boolean,default:!1},responsiveLayouts:{type:Object,default:()=>({})},transformScale:{type:Number,default:1},breakpoints:{type:Object,default:()=>({lg:1200,md:996,sm:768,xs:480,xxs:0})},cols:{type:Object,default:()=>({lg:12,md:10,sm:6,xs:4,xxs:2})},preventCollision:{type:Boolean,default:!1},useStyleCursor:{type:Boolean,default:!0}},emits:["layout-before-mount","layout-mounted","layout-updated","breakpoint-changed","update:layout","layout-ready"],setup(c,{expose:v,emit:h}){const f=c,m=Hn({width:-1,mergedStyle:{},lastLayoutLength:0,isDragging:!1,placeholder:{x:0,y:0,w:0,h:0,i:""},layouts:{},lastBreakpoint:null,originalLayout:null}),O=new Map,S=Yn(f.layout),u=Yn(),{observeResize:Y,unobserveResize:re}=Tl(),F=Ts();F.on("resizeEvent",ye),F.on("dragEvent",pe),si(()=>{h("layout-before-mount",S.value)}),li(()=>{h("layout-mounted",S.value),rt(()=>{Ns(S.value),m.originalLayout=S.value,rt(()=>{R(),u.value&&Y(u.value,zs($,16)),Mt(S.value,f.verticalCompact),h("layout-updated",S.value),X(),$()})})}),ui(()=>{F.clearAll(),u.value&&re(u.value)});function ye(T,K,V,be,ge,k){oe(T,K,V,be,ge,k)}function pe(T,K,V,be,ge,k){H(T,K,V,be,ge,k)}se(()=>m.width,(T,K)=>{rt(()=>{F.emit("updateWidth",T),K===null&&rt(()=>{h("layout-ready",S.value)}),X()})}),se(()=>[f.layout,f.layout.length],()=>{S.value=f.layout,Be()}),se(()=>f.colNum,T=>{F.emit("setColNum",T)}),se(()=>f.rowHeight,T=>{F.emit("setRowHeight",T)}),se(()=>f.isDraggable,T=>{F.emit("setDraggable",T)}),se(()=>f.isResizable,T=>{F.emit("setResizable",T)}),se(()=>f.isBounded,T=>{F.emit("setBounded",T)}),se(()=>f.transformScale,T=>{F.emit("setTransformScale",T)}),se(()=>f.responsive,T=>{T||(h("update:layout",m.originalLayout),F.emit("setColNum",f.colNum)),$()}),se(()=>f.maxRows,T=>{F.emit("setMaxRows",T)}),se(()=>f.margin,X),Fo(di,Hn({...No(f),...No(m),increaseItem:fe,decreaseItem:Ae})),Fo(pi,F),v({state:m,getItem:Re,resizeEvent:oe,dragEvent:H});function fe(T){O.set(T.i,T)}function Ae(T){O.delete(T.i)}function Re(T){return O.get(T)}function Be(){if(!ke(S.value)&&!ke(m.originalLayout)){if(S.value.length!==m.originalLayout.length){const T=Oe(S.value,m.originalLayout);if(T.length>0)if(S.value.length>m.originalLayout.length)m.originalLayout=m.originalLayout.concat(T);else{const K=new Set(T.map(V=>V.i));m.originalLayout=m.originalLayout.filter(V=>!K.has(V.i))}m.lastLayoutLength=S.value.length,R()}Mt(S.value,f.verticalCompact),F.emit("updateWidth",m.width),X(),h("layout-updated",S.value)}}function X(){m.mergedStyle={height:ae()}}function $(){u.value&&(m.width=u.value.offsetWidth),F.emit("resizeEvent")}function ae(){return f.autoSize?js(S.value)*(f.rowHeight+f.margin[1])+f.margin[1]+"px":void 0}let le;function H(T,K,V,be,ge,k){let j=Xo(S.value,K);ke(j)&&(j={h:0,w:0,x:0,y:0,i:""}),T==="dragstart"&&!f.verticalCompact&&(le=S.value.reduce((Te,{i:Fe,x:ue,y:Q})=>({...Te,[Fe]:{x:ue,y:Q}}),{})),T==="dragmove"||T==="dragstart"?(m.placeholder.i=K,m.placeholder.x=j.x,m.placeholder.y=j.y,m.placeholder.w=k,m.placeholder.h=ge,rt(()=>{m.isDragging=!0}),F.emit("updateWidth",m.width)):rt(()=>{m.isDragging=!1}),S.value=Dr(S.value,j,V,be,!0,f.preventCollision),f.restoreOnDrag?(j.static=!0,Mt(S.value,f.verticalCompact,le),j.static=!1):Mt(S.value,f.verticalCompact),F.emit("compact"),X(),T==="dragend"&&(le=void 0,h("layout-updated",S.value))}function oe(T,K,V,be,ge,k){let j=Xo(S.value,K);ke(j)&&(j={h:0,w:0,x:0,y:0,i:""});let Te;if(f.preventCollision){const Fe=hi(S.value,{...j,w:k,h:ge}).filter(ue=>ue.i!==j.i);if(Te=Fe.length>0,Te){let ue=1/0,Q=1/0;Fe.forEach(Ne=>{Ne.x>j.x&&(ue=Math.min(ue,Ne.x)),Ne.y>j.y&&(Q=Math.min(Q,Ne.y))}),Number.isFinite(ue)&&(j.w=ue-j.x),Number.isFinite(Q)&&(j.h=Q-j.y)}}Te||(j.w=k,j.h=ge),T==="resizestart"||T==="resizemove"?(m.placeholder.i=K,m.placeholder.x=V,m.placeholder.y=be,m.placeholder.w=j.w,m.placeholder.h=j.h,rt(()=>{m.isDragging=!0}),F.emit("updateWidth",m.width)):rt(()=>{m.isDragging=!1}),f.responsive&&Ve(),Mt(S.value,f.verticalCompact),F.emit("compact"),X(),T==="resizeend"&&h("layout-updated",S.value)}function Ve(){const T=$s(f.breakpoints,m.width),K=Cr(T,f.cols);!ke(m.lastBreakpoint)&&!m.layouts[m.lastBreakpoint]&&(m.layouts[m.lastBreakpoint]=Ir(S.value));const V=qs(m.originalLayout,m.layouts,f.breakpoints,T,m.lastBreakpoint,K,f.verticalCompact);m.layouts[T]=V,m.lastBreakpoint!==T&&h("breakpoint-changed",T,V),h("update:layout",V),m.lastBreakpoint=T,F.emit("setColNum",Cr(T,f.cols))}function R(){m.layouts=Object.assign({},f.responsiveLayouts)}function Oe(T,K){const V=new Set(K.map(j=>j.i)),be=new Set(T.map(j=>j.i)),ge=T.filter(j=>!V.has(j.i)),k=K.filter(j=>!be.has(j.i));return ge.concat(k)}return(T,K)=>(Zt(),Vn("div",{ref_key:"wrapper",ref:u,class:"vgl-layout",style:ci(m.mergedStyle)},[T.$slots.default?Rr(T.$slots,"default",{key:0}):(Zt(!0),Vn(ys,{key:1},bs(S.value,V=>(Zt(),_s(Uo,Ss({key:V.i},V),{default:Os(()=>[Rr(T.$slots,"item",{item:V})]),_:2},1040))),128)),ws(Es(Uo,{class:"vgl-item--placeholder",x:m.placeholder.x,y:m.placeholder.y,w:m.placeholder.w,h:m.placeholder.h,i:m.placeholder.i},null,8,["x","y","w","h","i"]),[[xs,m.isDragging]])],4))}});(function(){try{if(typeof document<"u"){var c=document.createElement("style");c.appendChild(document.createTextNode('.vgl-layout{--vgl-placeholder-bg: red;--vgl-placeholder-opacity: 20%;--vgl-placeholder-z-index: 2;--vgl-item-resizing-z-index: 3;--vgl-item-resizing-opacity: 60%;--vgl-item-dragging-z-index: 3;--vgl-item-dragging-opacity: 100%;--vgl-resizer-size: 10px;--vgl-resizer-border-color: #444;--vgl-resizer-border-width: 2px;position:relative;box-sizing:border-box;transition:height .2s ease}.vgl-item{position:absolute;box-sizing:border-box;transition:.2s ease;transition-property:left,top,right}.vgl-item--placeholder{z-index:var(--vgl-placeholder-z-index, 2);-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:var(--vgl-placeholder-bg, red);opacity:var(--vgl-placeholder-opacity, 20%);transition-duration:.1s}.vgl-item--no-touch{touch-action:none}.vgl-item--transform{right:auto;left:0;transition-property:transform}.vgl-item--transform.vgl-item--rtl{right:0;left:auto}.vgl-item--resizing{z-index:var(--vgl-item-resizing-z-index, 3);-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:var(--vgl-item-resizing-opacity, 60%)}.vgl-item--dragging{z-index:var(--vgl-item-dragging-z-index, 3);-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:var(--vgl-item-dragging-opacity, 100%);transition:none}.vgl-item__resizer{position:absolute;right:0;bottom:0;box-sizing:border-box;width:var(--vgl-resizer-size);height:var(--vgl-resizer-size);cursor:se-resize}.vgl-item__resizer:before{position:absolute;inset:0 3px 3px 0;content:"";border:0 solid var(--vgl-resizer-border-color);border-right-width:var(--vgl-resizer-border-width);border-bottom-width:var(--vgl-resizer-border-width)}.vgl-item__resizer--rtl{right:auto;left:0;cursor:sw-resize}.vgl-item__resizer--rtl:before{inset:0 0 3px 3px;border-right-width:0;border-bottom-width:var(--vgl-resizer-border-width);border-left-width:var(--vgl-resizer-border-width)}')),document.head.appendChild(c)}}catch(v){console.error("vite-plugin-css-injected-by-js",v)}})();export{Ml as S,Vo as i,Uo as o}; diff --git a/src/server/public/assets/index-ac1dbb22.js b/src/server/public/assets/index-ac1dbb22.js deleted file mode 100644 index e63dc0d..0000000 --- a/src/server/public/assets/index-ac1dbb22.js +++ /dev/null @@ -1,1169 +0,0 @@ -var _0=Object.defineProperty;var E0=(e,t,n)=>t in e?_0(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var wr=(e,t,n)=>(E0(e,typeof t!="symbol"?t+"":t,n),n);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const s of o.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&r(s)}).observe(document,{childList:!0,subtree:!0});function n(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(i){if(i.ep)return;i.ep=!0;const o=n(i);fetch(i.href,o)}})();function Ih(e,t){const n=Object.create(null),r=e.split(",");for(let i=0;i!!n[i.toLowerCase()]:i=>!!n[i]}const ft={},Ui=[],Rn=()=>{},$0=()=>!1,x0=/^on[^a-z]/,Fl=e=>x0.test(e),Ah=e=>e.startsWith("onUpdate:"),Ct=Object.assign,Ph=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},S0=Object.prototype.hasOwnProperty,et=(e,t)=>S0.call(e,t),De=Array.isArray,Ki=e=>Hs(e)==="[object Map]",Gl=e=>Hs(e)==="[object Set]",id=e=>Hs(e)==="[object Date]",We=e=>typeof e=="function",Et=e=>typeof e=="string",xs=e=>typeof e=="symbol",ot=e=>e!==null&&typeof e=="object",Cm=e=>ot(e)&&We(e.then)&&We(e.catch),Lm=Object.prototype.toString,Hs=e=>Lm.call(e),C0=e=>Hs(e).slice(8,-1),Mm=e=>Hs(e)==="[object Object]",Nh=e=>Et(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Sa=Ih(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Hl=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},L0=/-(\w)/g,Yn=Hl(e=>e.replace(L0,(t,n)=>n?n.toUpperCase():"")),M0=/\B([A-Z])/g,mo=Hl(e=>e.replace(M0,"-$1").toLowerCase()),Wl=Hl(e=>e.charAt(0).toUpperCase()+e.slice(1)),Lc=Hl(e=>e?`on${Wl(e)}`:""),Ss=(e,t)=>!Object.is(e,t),Ca=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},Ka=e=>{const t=parseFloat(e);return isNaN(t)?e:t},T0=e=>{const t=Et(e)?Number(e):NaN;return isNaN(t)?e:t};let od;const vu=()=>od||(od=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function vo(e){if(De(e)){const t={};for(let n=0;n{if(n){const r=n.split(k0);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function kt(e){let t="";if(Et(e))t=e;else if(De(e))for(let n=0;nzl(n,t))}const rt=e=>Et(e)?e:e==null?"":De(e)||ot(e)&&(e.toString===Lm||!We(e.toString))?JSON.stringify(e,Om,2):String(e),Om=(e,t)=>t&&t.__v_isRef?Om(e,t.value):Ki(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,i])=>(n[`${r} =>`]=i,n),{})}:Gl(t)?{[`Set(${t.size})`]:[...t.values()]}:ot(t)&&!De(t)&&!Mm(t)?String(t):t;let Sn;class km{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Sn,!t&&Sn&&(this.index=(Sn.scopes||(Sn.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=Sn;try{return Sn=this,t()}finally{Sn=n}}}on(){Sn=this}off(){Sn=this.parent}stop(t){if(this._active){let n,r;for(n=0,r=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},Rm=e=>(e.w&Nr)>0,Dm=e=>(e.n&Nr)>0,H0=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let r=0;r{(a==="length"||a>=l)&&h.push(u)})}else switch(n!==void 0&&h.push(s.get(n)),t){case"add":De(e)?Nh(n)&&h.push(s.get("length")):(h.push(s.get(gi)),Ki(e)&&h.push(s.get(wu)));break;case"delete":De(e)||(h.push(s.get(gi)),Ki(e)&&h.push(s.get(wu)));break;case"set":Ki(e)&&h.push(s.get(gi));break}if(h.length===1)h[0]&&bu(h[0]);else{const l=[];for(const u of h)u&&l.push(...u);bu(Bh(l))}}function bu(e,t){const n=De(e)?e:[...e];for(const r of n)r.computed&&ad(r);for(const r of n)r.computed||ad(r)}function ad(e,t){(e!==Ln||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}function z0(e,t){var n;return(n=Va.get(e))==null?void 0:n.get(t)}const j0=Ih("__proto__,__v_isRef,__isVue"),Pm=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(xs)),U0=Gh(),K0=Gh(!1,!0),V0=Gh(!0),ld=X0();function X0(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=Ze(this);for(let o=0,s=this.length;o{e[t]=function(...n){yo();const r=Ze(this)[t].apply(this,n);return wo(),r}}),e}function Y0(e){const t=Ze(this);return Jt(t,"has",e),t.hasOwnProperty(e)}function Gh(e=!1,t=!1){return function(r,i,o){if(i==="__v_isReactive")return!e;if(i==="__v_isReadonly")return e;if(i==="__v_isShallow")return t;if(i==="__v_raw"&&o===(e?t?h_:Hm:t?Gm:Fm).get(r))return r;const s=De(r);if(!e){if(s&&et(ld,i))return Reflect.get(ld,i,o);if(i==="hasOwnProperty")return Y0}const h=Reflect.get(r,i,o);return(xs(i)?Pm.has(i):j0(i))||(e||Jt(r,"get",i),t)?h:Pt(h)?s&&Nh(i)?h:h.value:ot(h)?e?Wm(h):Ei(h):h}}const Q0=Nm(),q0=Nm(!0);function Nm(e=!1){return function(n,r,i,o){let s=n[r];if(eo(s)&&Pt(s)&&!Pt(i))return!1;if(!e&&(!Xa(i)&&!eo(i)&&(s=Ze(s),i=Ze(i)),!De(n)&&Pt(s)&&!Pt(i)))return s.value=i,!0;const h=De(n)&&Nh(r)?Number(r)e,jl=e=>Reflect.getPrototypeOf(e);function oa(e,t,n=!1,r=!1){e=e.__v_raw;const i=Ze(e),o=Ze(t);n||(t!==o&&Jt(i,"get",t),Jt(i,"get",o));const{has:s}=jl(i),h=r?Hh:n?jh:Cs;if(s.call(i,t))return h(e.get(t));if(s.call(i,o))return h(e.get(o));e!==i&&e.get(t)}function sa(e,t=!1){const n=this.__v_raw,r=Ze(n),i=Ze(e);return t||(e!==i&&Jt(r,"has",e),Jt(r,"has",i)),e===i?n.has(e):n.has(e)||n.has(i)}function aa(e,t=!1){return e=e.__v_raw,!t&&Jt(Ze(e),"iterate",gi),Reflect.get(e,"size",e)}function cd(e){e=Ze(e);const t=Ze(this);return jl(t).has.call(t,e)||(t.add(e),fr(t,"add",e,e)),this}function ud(e,t){t=Ze(t);const n=Ze(this),{has:r,get:i}=jl(n);let o=r.call(n,e);o||(e=Ze(e),o=r.call(n,e));const s=i.call(n,e);return n.set(e,t),o?Ss(t,s)&&fr(n,"set",e,t):fr(n,"add",e,t),this}function hd(e){const t=Ze(this),{has:n,get:r}=jl(t);let i=n.call(t,e);i||(e=Ze(e),i=n.call(t,e)),r&&r.call(t,e);const o=t.delete(e);return i&&fr(t,"delete",e,void 0),o}function fd(){const e=Ze(this),t=e.size!==0,n=e.clear();return t&&fr(e,"clear",void 0,void 0),n}function la(e,t){return function(r,i){const o=this,s=o.__v_raw,h=Ze(s),l=t?Hh:e?jh:Cs;return!e&&Jt(h,"iterate",gi),s.forEach((u,a)=>r.call(i,l(u),l(a),o))}}function ca(e,t,n){return function(...r){const i=this.__v_raw,o=Ze(i),s=Ki(o),h=e==="entries"||e===Symbol.iterator&&s,l=e==="keys"&&s,u=i[e](...r),a=n?Hh:t?jh:Cs;return!t&&Jt(o,"iterate",l?wu:gi),{next(){const{value:c,done:f}=u.next();return f?{value:c,done:f}:{value:h?[a(c[0]),a(c[1])]:a(c),done:f}},[Symbol.iterator](){return this}}}}function br(e){return function(...t){return e==="delete"?!1:this}}function r_(){const e={get(o){return oa(this,o)},get size(){return aa(this)},has:sa,add:cd,set:ud,delete:hd,clear:fd,forEach:la(!1,!1)},t={get(o){return oa(this,o,!1,!0)},get size(){return aa(this)},has:sa,add:cd,set:ud,delete:hd,clear:fd,forEach:la(!1,!0)},n={get(o){return oa(this,o,!0)},get size(){return aa(this,!0)},has(o){return sa.call(this,o,!0)},add:br("add"),set:br("set"),delete:br("delete"),clear:br("clear"),forEach:la(!0,!1)},r={get(o){return oa(this,o,!0,!0)},get size(){return aa(this,!0)},has(o){return sa.call(this,o,!0)},add:br("add"),set:br("set"),delete:br("delete"),clear:br("clear"),forEach:la(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(o=>{e[o]=ca(o,!1,!1),n[o]=ca(o,!0,!1),t[o]=ca(o,!1,!0),r[o]=ca(o,!0,!0)}),[e,n,t,r]}const[i_,o_,s_,a_]=r_();function Wh(e,t){const n=t?e?a_:s_:e?o_:i_;return(r,i,o)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_raw"?r:Reflect.get(et(n,i)&&i in r?n:r,i,o)}const l_={get:Wh(!1,!1)},c_={get:Wh(!1,!0)},u_={get:Wh(!0,!1)},Fm=new WeakMap,Gm=new WeakMap,Hm=new WeakMap,h_=new WeakMap;function f_(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function d_(e){return e.__v_skip||!Object.isExtensible(e)?0:f_(C0(e))}function Ei(e){return eo(e)?e:zh(e,!1,Bm,l_,Fm)}function p_(e){return zh(e,!1,n_,c_,Gm)}function Wm(e){return zh(e,!0,t_,u_,Hm)}function zh(e,t,n,r,i){if(!ot(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=i.get(e);if(o)return o;const s=d_(e);if(s===0)return e;const h=new Proxy(e,s===2?r:n);return i.set(e,h),h}function Vi(e){return eo(e)?Vi(e.__v_raw):!!(e&&e.__v_isReactive)}function eo(e){return!!(e&&e.__v_isReadonly)}function Xa(e){return!!(e&&e.__v_isShallow)}function zm(e){return Vi(e)||eo(e)}function Ze(e){const t=e&&e.__v_raw;return t?Ze(t):e}function jm(e){return Ua(e,"__v_skip",!0),e}const Cs=e=>ot(e)?Ei(e):e,jh=e=>ot(e)?Wm(e):e;function Um(e){Ir&&Ln&&(e=Ze(e),Am(e.dep||(e.dep=Bh())))}function Km(e,t){e=Ze(e);const n=e.dep;n&&bu(n)}function Pt(e){return!!(e&&e.__v_isRef===!0)}function Un(e){return Vm(e,!1)}function g_(e){return Vm(e,!0)}function Vm(e,t){return Pt(e)?e:new m_(e,t)}class m_{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:Ze(t),this._value=n?t:Cs(t)}get value(){return Um(this),this._value}set value(t){const n=this.__v_isShallow||Xa(t)||eo(t);t=n?t:Ze(t),Ss(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:Cs(t),Km(this))}}function Me(e){return Pt(e)?e.value:e}const v_={get:(e,t,n)=>Me(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const i=e[t];return Pt(i)&&!Pt(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function Xm(e){return Vi(e)?e:new Proxy(e,v_)}function Ym(e){const t=De(e)?new Array(e.length):{};for(const n in e)t[n]=Qm(e,n);return t}class y_{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return z0(Ze(this._object),this._key)}}class w_{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function Wj(e,t,n){return Pt(e)?e:We(e)?new w_(e):ot(e)&&arguments.length>1?Qm(e,t,n):Un(e)}function Qm(e,t,n){const r=e[t];return Pt(r)?r:new y_(e,t,n)}class b_{constructor(t,n,r,i){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this._dirty=!0,this.effect=new Fh(t,()=>{this._dirty||(this._dirty=!0,Km(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!i,this.__v_isReadonly=r}get value(){const t=Ze(this);return Um(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function __(e,t,n=!1){let r,i;const o=We(e);return o?(r=e,i=Rn):(r=e.get,i=e.set),new b_(r,i,o||!i,n)}function Ar(e,t,n,r){let i;try{i=r?e(...r):e()}catch(o){Ul(o,t,n)}return i}function gn(e,t,n,r){if(We(e)){const o=Ar(e,t,n,r);return o&&Cm(o)&&o.catch(s=>{Ul(s,t,n)}),o}const i=[];for(let o=0;o>>1;Ms(zt[r])Hn&&zt.splice(t,1)}function S_(e){De(e)?Xi.push(...e):(!ar||!ar.includes(e,e.allowRecurse?si+1:si))&&Xi.push(e),Zm()}function dd(e,t=Ls?Hn+1:0){for(;tMs(n)-Ms(r)),si=0;sie.id==null?1/0:e.id,C_=(e,t)=>{const n=Ms(e)-Ms(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function tv(e){_u=!1,Ls=!0,zt.sort(C_);const t=Rn;try{for(Hn=0;HnEt(d)?d.trim():d)),c&&(i=n.map(Ka))}let h,l=r[h=Lc(t)]||r[h=Lc(Yn(t))];!l&&o&&(l=r[h=Lc(mo(t))]),l&&gn(l,e,6,i);const u=r[h+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[h])return;e.emitted[h]=!0,gn(u,e,6,i)}}function nv(e,t,n=!1){const r=t.emitsCache,i=r.get(e);if(i!==void 0)return i;const o=e.emits;let s={},h=!1;if(!We(e)){const l=u=>{const a=nv(u,t,!0);a&&(h=!0,Ct(s,a))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!o&&!h?(ot(e)&&r.set(e,null),null):(De(o)?o.forEach(l=>s[l]=null):Ct(s,o),ot(e)&&r.set(e,s),s)}function Kl(e,t){return!e||!Fl(t)?!1:(t=t.slice(2).replace(/Once$/,""),et(e,t[0].toLowerCase()+t.slice(1))||et(e,mo(t))||et(e,t))}let Gt=null,Vl=null;function Ya(e){const t=Gt;return Gt=e,Vl=e&&e.type.__scopeId||null,t}function $i(e){Vl=e}function xi(){Vl=null}function cn(e,t=Gt,n){if(!t||e._n)return e;const r=(...i)=>{r._d&&Sd(-1);const o=Ya(t);let s;try{s=e(...i)}finally{Ya(o),r._d&&Sd(1)}return s};return r._n=!0,r._c=!0,r._d=!0,r}function Mc(e){const{type:t,vnode:n,proxy:r,withProxy:i,props:o,propsOptions:[s],slots:h,attrs:l,emit:u,render:a,renderCache:c,data:f,setupState:d,ctx:p,inheritAttrs:g}=e;let m,v;const y=Ya(e);try{if(n.shapeFlag&4){const $=i||r;m=Fn(a.call($,$,c,o,d,f,p)),v=l}else{const $=t;m=Fn($.length>1?$(o,{attrs:l,slots:h,emit:u}):$(o,null)),v=t.props?l:M_(l)}}catch($){ms.length=0,Ul($,e,1),m=tt(mn)}let x=m;if(v&&g!==!1){const $=Object.keys(v),{shapeFlag:_}=x;$.length&&_&7&&(s&&$.some(Ah)&&(v=T_(v,s)),x=Br(x,v))}return n.dirs&&(x=Br(x),x.dirs=x.dirs?x.dirs.concat(n.dirs):n.dirs),n.transition&&(x.transition=n.transition),m=x,Ya(y),m}const M_=e=>{let t;for(const n in e)(n==="class"||n==="style"||Fl(n))&&((t||(t={}))[n]=e[n]);return t},T_=(e,t)=>{const n={};for(const r in e)(!Ah(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function O_(e,t,n){const{props:r,children:i,component:o}=e,{props:s,children:h,patchFlag:l}=t,u=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return r?pd(r,s,u):!!s;if(l&8){const a=t.dynamicProps;for(let c=0;ce.__isSuspense;function D_(e,t){t&&t.pendingBranch?De(e)?t.effects.push(...e):t.effects.push(e):S_(e)}function zj(e,t){return Vh(e,null,t)}const ua={};function St(e,t,n){return Vh(e,t,n)}function Vh(e,t,{immediate:n,deep:r,flush:i,onTrack:o,onTrigger:s}=ft){var h;const l=G0()===((h=At)==null?void 0:h.scope)?At:null;let u,a=!1,c=!1;if(Pt(e)?(u=()=>e.value,a=Xa(e)):Vi(e)?(u=()=>e,r=!0):De(e)?(c=!0,a=e.some($=>Vi($)||Xa($)),u=()=>e.map($=>{if(Pt($))return $.value;if(Vi($))return hi($);if(We($))return Ar($,l,2)})):We(e)?t?u=()=>Ar(e,l,2):u=()=>{if(!(l&&l.isUnmounted))return f&&f(),gn(e,l,3,[d])}:u=Rn,t&&r){const $=u;u=()=>hi($())}let f,d=$=>{f=y.onStop=()=>{Ar($,l,4)}},p;if(Rs)if(d=Rn,t?n&&gn(t,l,3,[u(),c?[]:void 0,d]):u(),i==="sync"){const $=x1();p=$.__watcherHandles||($.__watcherHandles=[])}else return Rn;let g=c?new Array(e.length).fill(ua):ua;const m=()=>{if(y.active)if(t){const $=y.run();(r||a||(c?$.some((_,b)=>Ss(_,g[b])):Ss($,g)))&&(f&&f(),gn(t,l,3,[$,g===ua?void 0:c&&g[0]===ua?[]:g,d]),g=$)}else y.run()};m.allowRecurse=!!t;let v;i==="sync"?v=m:i==="post"?v=()=>qt(m,l&&l.suspense):(m.pre=!0,l&&(m.id=l.uid),v=()=>Kh(m));const y=new Fh(u,v);t?n?m():g=y.run():i==="post"?qt(y.run.bind(y),l&&l.suspense):y.run();const x=()=>{y.stop(),l&&l.scope&&Ph(l.scope.effects,y)};return p&&p.push(x),x}function I_(e,t,n){const r=this.proxy,i=Et(e)?e.includes(".")?rv(r,e):()=>r[e]:e.bind(r,r);let o;We(t)?o=t:(o=t.handler,n=t);const s=At;to(this);const h=Vh(i,o.bind(r),n);return s?to(s):mi(),h}function rv(e,t){const n=t.split(".");return()=>{let r=e;for(let i=0;i{hi(n,t)});else if(Mm(e))for(const n in e)hi(e[n],t);return e}function Tr(e,t){const n=Gt;if(n===null)return e;const r=Zl(n)||n.proxy,i=e.dirs||(e.dirs=[]);for(let o=0;o{e.isMounted=!0}),Yh(()=>{e.isUnmounting=!0}),e}const hn=[Function,Array],ov={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:hn,onEnter:hn,onAfterEnter:hn,onEnterCancelled:hn,onBeforeLeave:hn,onLeave:hn,onAfterLeave:hn,onLeaveCancelled:hn,onBeforeAppear:hn,onAppear:hn,onAfterAppear:hn,onAppearCancelled:hn},A_={name:"BaseTransition",props:ov,setup(e,{slots:t}){const n=$v(),r=iv();let i;return()=>{const o=t.default&&Xh(t.default(),!0);if(!o||!o.length)return;let s=o[0];if(o.length>1){for(const g of o)if(g.type!==mn){s=g;break}}const h=Ze(e),{mode:l}=h;if(r.isLeaving)return Tc(s);const u=gd(s);if(!u)return Tc(s);const a=Ts(u,h,r,n);Os(u,a);const c=n.subTree,f=c&&gd(c);let d=!1;const{getTransitionKey:p}=u.type;if(p){const g=p();i===void 0?i=g:g!==i&&(i=g,d=!0)}if(f&&f.type!==mn&&(!ai(u,f)||d)){const g=Ts(f,h,r,n);if(Os(f,g),l==="out-in")return r.isLeaving=!0,g.afterLeave=()=>{r.isLeaving=!1,n.update.active!==!1&&n.update()},Tc(s);l==="in-out"&&u.type!==mn&&(g.delayLeave=(m,v,y)=>{const x=sv(r,f);x[String(f.key)]=f,m._leaveCb=()=>{v(),m._leaveCb=void 0,delete a.delayedLeave},a.delayedLeave=y})}return s}}},P_=A_;function sv(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function Ts(e,t,n,r){const{appear:i,mode:o,persisted:s=!1,onBeforeEnter:h,onEnter:l,onAfterEnter:u,onEnterCancelled:a,onBeforeLeave:c,onLeave:f,onAfterLeave:d,onLeaveCancelled:p,onBeforeAppear:g,onAppear:m,onAfterAppear:v,onAppearCancelled:y}=t,x=String(e.key),$=sv(n,e),_=(M,k)=>{M&&gn(M,r,9,k)},b=(M,k)=>{const S=k[1];_(M,k),De(M)?M.every(E=>E.length<=1)&&S():M.length<=1&&S()},R={mode:o,persisted:s,beforeEnter(M){let k=h;if(!n.isMounted)if(i)k=g||h;else return;M._leaveCb&&M._leaveCb(!0);const S=$[x];S&&ai(e,S)&&S.el._leaveCb&&S.el._leaveCb(),_(k,[M])},enter(M){let k=l,S=u,E=a;if(!n.isMounted)if(i)k=m||l,S=v||u,E=y||a;else return;let I=!1;const C=M._enterCb=w=>{I||(I=!0,w?_(E,[M]):_(S,[M]),R.delayedLeave&&R.delayedLeave(),M._enterCb=void 0)};k?b(k,[M,C]):C()},leave(M,k){const S=String(e.key);if(M._enterCb&&M._enterCb(!0),n.isUnmounting)return k();_(c,[M]);let E=!1;const I=M._leaveCb=C=>{E||(E=!0,k(),C?_(p,[M]):_(d,[M]),M._leaveCb=void 0,$[S]===e&&delete $[S])};$[S]=e,f?b(f,[M,I]):I()},clone(M){return Ts(M,t,n,r)}};return R}function Tc(e){if(Xl(e))return e=Br(e),e.children=null,e}function gd(e){return Xl(e)?e.children?e.children[0]:void 0:e}function Os(e,t){e.shapeFlag&6&&e.component?Os(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Xh(e,t=!1,n){let r=[],i=0;for(let o=0;o1)for(let o=0;oCt({name:e.name},t,{setup:e}))():e}const ps=e=>!!e.type.__asyncLoader,Xl=e=>e.type.__isKeepAlive;function N_(e,t){av(e,"a",t)}function B_(e,t){av(e,"da",t)}function av(e,t,n=At){const r=e.__wdc||(e.__wdc=()=>{let i=n;for(;i;){if(i.isDeactivated)return;i=i.parent}return e()});if(Yl(t,r,n),n){let i=n.parent;for(;i&&i.parent;)Xl(i.parent.vnode)&&F_(r,t,n,i),i=i.parent}}function F_(e,t,n,r){const i=Yl(t,e,r,!0);Ws(()=>{Ph(r[t],i)},n)}function Yl(e,t,n=At,r=!1){if(n){const i=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...s)=>{if(n.isUnmounted)return;yo(),to(n);const h=gn(t,n,e,s);return mi(),wo(),h});return r?i.unshift(o):i.push(o),o}}const gr=e=>(t,n=At)=>(!Rs||e==="sp")&&Yl(e,(...r)=>t(...r),n),lv=gr("bm"),Ht=gr("m"),G_=gr("bu"),cv=gr("u"),Yh=gr("bum"),Ws=gr("um"),H_=gr("sp"),W_=gr("rtg"),z_=gr("rtc");function j_(e,t=At){Yl("ec",e,t)}const Qh="components",U_="directives";function pt(e,t){return qh(Qh,e,!0,t)||e}const uv=Symbol.for("v-ndc");function hv(e){return Et(e)?qh(Qh,e,!1)||e:e||uv}function K_(e){return qh(U_,e)}function qh(e,t,n=!0,r=!1){const i=Gt||At;if(i){const o=i.type;if(e===Qh){const h=_1(o,!1);if(h&&(h===t||h===Yn(t)||h===Wl(Yn(t))))return o}const s=md(i[e]||o[e],t)||md(i.appContext[e],t);return!s&&r?o:s}}function md(e,t){return e&&(e[t]||e[Yn(t)]||e[Wl(Yn(t))])}function ut(e,t,n,r){let i;const o=n&&n[r];if(De(e)||Et(e)){i=new Array(e.length);for(let s=0,h=e.length;st(s,h,void 0,o&&o[h]));else{const s=Object.keys(e);i=new Array(s.length);for(let h=0,l=s.length;h{const o=r.fn(...i);return o&&(o.key=r.key),o}:r.fn)}return e}function dr(e,t,n={},r,i){if(Gt.isCE||Gt.parent&&ps(Gt.parent)&&Gt.parent.isCE)return t!=="default"&&(n.name=t),tt("slot",n,r&&r());let o=e[t];o&&o._c&&(o._d=!1),ue();const s=o&&fv(o(n)),h=Rt(je,{key:n.key||s&&s.key||`_${t}`},s||(r?r():[]),s&&e._===1?64:-2);return!i&&h.scopeId&&(h.slotScopeIds=[h.scopeId+"-s"]),o&&o._c&&(o._d=!0),h}function fv(e){return e.some(t=>Ja(t)?!(t.type===mn||t.type===je&&!fv(t.children)):!0)?e:null}const Eu=e=>e?xv(e)?Zl(e)||e.proxy:Eu(e.parent):null,gs=Ct(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Eu(e.parent),$root:e=>Eu(e.root),$emit:e=>e.emit,$options:e=>Jh(e),$forceUpdate:e=>e.f||(e.f=()=>Kh(e.update)),$nextTick:e=>e.n||(e.n=Jm.bind(e.proxy)),$watch:e=>I_.bind(e)}),Oc=(e,t)=>e!==ft&&!e.__isScriptSetup&&et(e,t),X_={get({_:e},t){const{ctx:n,setupState:r,data:i,props:o,accessCache:s,type:h,appContext:l}=e;let u;if(t[0]!=="$"){const d=s[t];if(d!==void 0)switch(d){case 1:return r[t];case 2:return i[t];case 4:return n[t];case 3:return o[t]}else{if(Oc(r,t))return s[t]=1,r[t];if(i!==ft&&et(i,t))return s[t]=2,i[t];if((u=e.propsOptions[0])&&et(u,t))return s[t]=3,o[t];if(n!==ft&&et(n,t))return s[t]=4,n[t];$u&&(s[t]=0)}}const a=gs[t];let c,f;if(a)return t==="$attrs"&&Jt(e,"get",t),a(e);if((c=h.__cssModules)&&(c=c[t]))return c;if(n!==ft&&et(n,t))return s[t]=4,n[t];if(f=l.config.globalProperties,et(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:i,ctx:o}=e;return Oc(i,t)?(i[t]=n,!0):r!==ft&&et(r,t)?(r[t]=n,!0):et(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:i,propsOptions:o}},s){let h;return!!n[s]||e!==ft&&et(e,s)||Oc(t,s)||(h=o[0])&&et(h,s)||et(r,s)||et(gs,s)||et(i.config.globalProperties,s)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:et(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function vd(e){return De(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let $u=!0;function Y_(e){const t=Jh(e),n=e.proxy,r=e.ctx;$u=!1,t.beforeCreate&&yd(t.beforeCreate,e,"bc");const{data:i,computed:o,methods:s,watch:h,provide:l,inject:u,created:a,beforeMount:c,mounted:f,beforeUpdate:d,updated:p,activated:g,deactivated:m,beforeDestroy:v,beforeUnmount:y,destroyed:x,unmounted:$,render:_,renderTracked:b,renderTriggered:R,errorCaptured:M,serverPrefetch:k,expose:S,inheritAttrs:E,components:I,directives:C,filters:w}=t;if(u&&Q_(u,r,null),s)for(const N in s){const B=s[N];We(B)&&(r[N]=B.bind(n))}if(i){const N=i.call(n,n);ot(N)&&(e.data=Ei(N))}if($u=!0,o)for(const N in o){const B=o[N],H=We(B)?B.bind(n,n):We(B.get)?B.get.bind(n,n):Rn,z=!We(B)&&We(B.set)?B.set.bind(n):Rn,F=we({get:H,set:z});Object.defineProperty(r,N,{enumerable:!0,configurable:!0,get:()=>F.value,set:W=>F.value=W})}if(h)for(const N in h)dv(h[N],r,n,N);if(l){const N=We(l)?l.call(n):l;Reflect.ownKeys(N).forEach(B=>{Yi(B,N[B])})}a&&yd(a,e,"c");function O(N,B){De(B)?B.forEach(H=>N(H.bind(n))):B&&N(B.bind(n))}if(O(lv,c),O(Ht,f),O(G_,d),O(cv,p),O(N_,g),O(B_,m),O(j_,M),O(z_,b),O(W_,R),O(Yh,y),O(Ws,$),O(H_,k),De(S))if(S.length){const N=e.exposed||(e.exposed={});S.forEach(B=>{Object.defineProperty(N,B,{get:()=>n[B],set:H=>n[B]=H})})}else e.exposed||(e.exposed={});_&&e.render===Rn&&(e.render=_),E!=null&&(e.inheritAttrs=E),I&&(e.components=I),C&&(e.directives=C)}function Q_(e,t,n=Rn){De(e)&&(e=xu(e));for(const r in e){const i=e[r];let o;ot(i)?"default"in i?o=ln(i.from||r,i.default,!0):o=ln(i.from||r):o=ln(i),Pt(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:s=>o.value=s}):t[r]=o}}function yd(e,t,n){gn(De(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function dv(e,t,n,r){const i=r.includes(".")?rv(n,r):()=>n[r];if(Et(e)){const o=t[e];We(o)&&St(i,o)}else if(We(e))St(i,e.bind(n));else if(ot(e))if(De(e))e.forEach(o=>dv(o,t,n,r));else{const o=We(e.handler)?e.handler.bind(n):t[e.handler];We(o)&&St(i,o,e)}}function Jh(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:i,optionsCache:o,config:{optionMergeStrategies:s}}=e.appContext,h=o.get(t);let l;return h?l=h:!i.length&&!n&&!r?l=t:(l={},i.length&&i.forEach(u=>Qa(l,u,s,!0)),Qa(l,t,s)),ot(t)&&o.set(t,l),l}function Qa(e,t,n,r=!1){const{mixins:i,extends:o}=t;o&&Qa(e,o,n,!0),i&&i.forEach(s=>Qa(e,s,n,!0));for(const s in t)if(!(r&&s==="expose")){const h=q_[s]||n&&n[s];e[s]=h?h(e[s],t[s]):t[s]}return e}const q_={data:wd,props:bd,emits:bd,methods:es,computed:es,beforeCreate:Kt,created:Kt,beforeMount:Kt,mounted:Kt,beforeUpdate:Kt,updated:Kt,beforeDestroy:Kt,beforeUnmount:Kt,destroyed:Kt,unmounted:Kt,activated:Kt,deactivated:Kt,errorCaptured:Kt,serverPrefetch:Kt,components:es,directives:es,watch:Z_,provide:wd,inject:J_};function wd(e,t){return t?e?function(){return Ct(We(e)?e.call(this,this):e,We(t)?t.call(this,this):t)}:t:e}function J_(e,t){return es(xu(e),xu(t))}function xu(e){if(De(e)){const t={};for(let n=0;n1)return n&&We(t)?t.call(r&&r.proxy):t}}function n1(e,t,n,r=!1){const i={},o={};Ua(o,ql,1),e.propsDefaults=Object.create(null),gv(e,t,i,o);for(const s in e.propsOptions[0])s in i||(i[s]=void 0);n?e.props=r?i:p_(i):e.type.props?e.props=i:e.props=o,e.attrs=o}function r1(e,t,n,r){const{props:i,attrs:o,vnode:{patchFlag:s}}=e,h=Ze(i),[l]=e.propsOptions;let u=!1;if((r||s>0)&&!(s&16)){if(s&8){const a=e.vnode.dynamicProps;for(let c=0;c{l=!0;const[f,d]=mv(c,t,!0);Ct(s,f),d&&h.push(...d)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!l)return ot(e)&&r.set(e,Ui),Ui;if(De(o))for(let a=0;a-1,d[1]=g<0||p-1||et(d,"default"))&&h.push(c)}}}const u=[s,h];return ot(e)&&r.set(e,u),u}function _d(e){return e[0]!=="$"}function Ed(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function $d(e,t){return Ed(e)===Ed(t)}function xd(e,t){return De(t)?t.findIndex(n=>$d(n,e)):We(t)&&$d(t,e)?0:-1}const vv=e=>e[0]==="_"||e==="$stable",Zh=e=>De(e)?e.map(Fn):[Fn(e)],i1=(e,t,n)=>{if(t._n)return t;const r=cn((...i)=>Zh(t(...i)),n);return r._c=!1,r},yv=(e,t,n)=>{const r=e._ctx;for(const i in e){if(vv(i))continue;const o=e[i];if(We(o))t[i]=i1(i,o,r);else if(o!=null){const s=Zh(o);t[i]=()=>s}}},wv=(e,t)=>{const n=Zh(t);e.slots.default=()=>n},o1=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=Ze(t),Ua(t,"_",n)):yv(t,e.slots={})}else e.slots={},t&&wv(e,t);Ua(e.slots,ql,1)},s1=(e,t,n)=>{const{vnode:r,slots:i}=e;let o=!0,s=ft;if(r.shapeFlag&32){const h=t._;h?n&&h===1?o=!1:(Ct(i,t),!n&&h===1&&delete i._):(o=!t.$stable,yv(t,i)),s=t}else t&&(wv(e,t),s={default:1});if(o)for(const h in i)!vv(h)&&!(h in s)&&delete i[h]};function Cu(e,t,n,r,i=!1){if(De(e)){e.forEach((f,d)=>Cu(f,t&&(De(t)?t[d]:t),n,r,i));return}if(ps(r)&&!i)return;const o=r.shapeFlag&4?Zl(r.component)||r.component.proxy:r.el,s=i?null:o,{i:h,r:l}=e,u=t&&t.r,a=h.refs===ft?h.refs={}:h.refs,c=h.setupState;if(u!=null&&u!==l&&(Et(u)?(a[u]=null,et(c,u)&&(c[u]=null)):Pt(u)&&(u.value=null)),We(l))Ar(l,h,12,[s,a]);else{const f=Et(l),d=Pt(l);if(f||d){const p=()=>{if(e.f){const g=f?et(c,l)?c[l]:a[l]:l.value;i?De(g)&&Ph(g,o):De(g)?g.includes(o)||g.push(o):f?(a[l]=[o],et(c,l)&&(c[l]=a[l])):(l.value=[o],e.k&&(a[e.k]=l.value))}else f?(a[l]=s,et(c,l)&&(c[l]=s)):d&&(l.value=s,e.k&&(a[e.k]=s))};s?(p.id=-1,qt(p,n)):p()}}}const qt=D_;function a1(e){return l1(e)}function l1(e,t){const n=vu();n.__VUE__=!0;const{insert:r,remove:i,patchProp:o,createElement:s,createText:h,createComment:l,setText:u,setElementText:a,parentNode:c,nextSibling:f,setScopeId:d=Rn,insertStaticContent:p}=e,g=(K,Y,J,Z=null,D=null,oe=null,me=!1,de=null,pe=!!Y.dynamicChildren)=>{if(K===Y)return;K&&!ai(K,Y)&&(Z=V(K),W(K,D,oe,!0),K=null),Y.patchFlag===-2&&(pe=!1,Y.dynamicChildren=null);const{type:fe,ref:Se,shapeFlag:ie}=Y;switch(fe){case Ql:m(K,Y,J,Z);break;case mn:v(K,Y,J,Z);break;case kc:K==null&&y(Y,J,Z,me);break;case je:I(K,Y,J,Z,D,oe,me,de,pe);break;default:ie&1?_(K,Y,J,Z,D,oe,me,de,pe):ie&6?C(K,Y,J,Z,D,oe,me,de,pe):(ie&64||ie&128)&&fe.process(K,Y,J,Z,D,oe,me,de,pe,re)}Se!=null&&D&&Cu(Se,K&&K.ref,oe,Y||K,!Y)},m=(K,Y,J,Z)=>{if(K==null)r(Y.el=h(Y.children),J,Z);else{const D=Y.el=K.el;Y.children!==K.children&&u(D,Y.children)}},v=(K,Y,J,Z)=>{K==null?r(Y.el=l(Y.children||""),J,Z):Y.el=K.el},y=(K,Y,J,Z)=>{[K.el,K.anchor]=p(K.children,Y,J,Z,K.el,K.anchor)},x=({el:K,anchor:Y},J,Z)=>{let D;for(;K&&K!==Y;)D=f(K),r(K,J,Z),K=D;r(Y,J,Z)},$=({el:K,anchor:Y})=>{let J;for(;K&&K!==Y;)J=f(K),i(K),K=J;i(Y)},_=(K,Y,J,Z,D,oe,me,de,pe)=>{me=me||Y.type==="svg",K==null?b(Y,J,Z,D,oe,me,de,pe):k(K,Y,D,oe,me,de,pe)},b=(K,Y,J,Z,D,oe,me,de)=>{let pe,fe;const{type:Se,props:ie,shapeFlag:le,transition:he,dirs:$e}=K;if(pe=K.el=s(K.type,oe,ie&&ie.is,ie),le&8?a(pe,K.children):le&16&&M(K.children,pe,null,Z,D,oe&&Se!=="foreignObject",me,de),$e&&Yr(K,null,Z,"created"),R(pe,K,K.scopeId,me,Z),ie){for(const ke in ie)ke!=="value"&&!Sa(ke)&&o(pe,ke,null,ie[ke],oe,K.children,Z,D,ee);"value"in ie&&o(pe,"value",null,ie.value),(fe=ie.onVnodeBeforeMount)&&Pn(fe,Z,K)}$e&&Yr(K,null,Z,"beforeMount");const Oe=(!D||D&&!D.pendingBranch)&&he&&!he.persisted;Oe&&he.beforeEnter(pe),r(pe,Y,J),((fe=ie&&ie.onVnodeMounted)||Oe||$e)&&qt(()=>{fe&&Pn(fe,Z,K),Oe&&he.enter(pe),$e&&Yr(K,null,Z,"mounted")},D)},R=(K,Y,J,Z,D)=>{if(J&&d(K,J),Z)for(let oe=0;oe{for(let fe=pe;fe{const de=Y.el=K.el;let{patchFlag:pe,dynamicChildren:fe,dirs:Se}=Y;pe|=K.patchFlag&16;const ie=K.props||ft,le=Y.props||ft;let he;J&&Qr(J,!1),(he=le.onVnodeBeforeUpdate)&&Pn(he,J,Y,K),Se&&Yr(Y,K,J,"beforeUpdate"),J&&Qr(J,!0);const $e=D&&Y.type!=="foreignObject";if(fe?S(K.dynamicChildren,fe,de,J,Z,$e,oe):me||B(K,Y,de,null,J,Z,$e,oe,!1),pe>0){if(pe&16)E(de,Y,ie,le,J,Z,D);else if(pe&2&&ie.class!==le.class&&o(de,"class",null,le.class,D),pe&4&&o(de,"style",ie.style,le.style,D),pe&8){const Oe=Y.dynamicProps;for(let ke=0;ke{he&&Pn(he,J,Y,K),Se&&Yr(Y,K,J,"updated")},Z)},S=(K,Y,J,Z,D,oe,me)=>{for(let de=0;de{if(J!==Z){if(J!==ft)for(const de in J)!Sa(de)&&!(de in Z)&&o(K,de,J[de],null,me,Y.children,D,oe,ee);for(const de in Z){if(Sa(de))continue;const pe=Z[de],fe=J[de];pe!==fe&&de!=="value"&&o(K,de,fe,pe,me,Y.children,D,oe,ee)}"value"in Z&&o(K,"value",J.value,Z.value)}},I=(K,Y,J,Z,D,oe,me,de,pe)=>{const fe=Y.el=K?K.el:h(""),Se=Y.anchor=K?K.anchor:h("");let{patchFlag:ie,dynamicChildren:le,slotScopeIds:he}=Y;he&&(de=de?de.concat(he):he),K==null?(r(fe,J,Z),r(Se,J,Z),M(Y.children,J,Se,D,oe,me,de,pe)):ie>0&&ie&64&&le&&K.dynamicChildren?(S(K.dynamicChildren,le,J,D,oe,me,de),(Y.key!=null||D&&Y===D.subTree)&&bv(K,Y,!0)):B(K,Y,J,Se,D,oe,me,de,pe)},C=(K,Y,J,Z,D,oe,me,de,pe)=>{Y.slotScopeIds=de,K==null?Y.shapeFlag&512?D.ctx.activate(Y,J,Z,me,pe):w(Y,J,Z,D,oe,me,pe):T(K,Y,pe)},w=(K,Y,J,Z,D,oe,me)=>{const de=K.component=m1(K,Z,D);if(Xl(K)&&(de.ctx.renderer=re),v1(de),de.asyncDep){if(D&&D.registerDep(de,O),!K.el){const pe=de.subTree=tt(mn);v(null,pe,Y,J)}return}O(de,K,Y,J,D,oe,me)},T=(K,Y,J)=>{const Z=Y.component=K.component;if(O_(K,Y,J))if(Z.asyncDep&&!Z.asyncResolved){N(Z,Y,J);return}else Z.next=Y,x_(Z.update),Z.update();else Y.el=K.el,Z.vnode=Y},O=(K,Y,J,Z,D,oe,me)=>{const de=()=>{if(K.isMounted){let{next:Se,bu:ie,u:le,parent:he,vnode:$e}=K,Oe=Se,ke;Qr(K,!1),Se?(Se.el=$e.el,N(K,Se,me)):Se=$e,ie&&Ca(ie),(ke=Se.props&&Se.props.onVnodeBeforeUpdate)&&Pn(ke,he,Se,$e),Qr(K,!0);const Ae=Mc(K),Ge=K.subTree;K.subTree=Ae,g(Ge,Ae,c(Ge.el),V(Ge),K,D,oe),Se.el=Ae.el,Oe===null&&k_(K,Ae.el),le&&qt(le,D),(ke=Se.props&&Se.props.onVnodeUpdated)&&qt(()=>Pn(ke,he,Se,$e),D)}else{let Se;const{el:ie,props:le}=Y,{bm:he,m:$e,parent:Oe}=K,ke=ps(Y);if(Qr(K,!1),he&&Ca(he),!ke&&(Se=le&&le.onVnodeBeforeMount)&&Pn(Se,Oe,Y),Qr(K,!0),ie&&ge){const Ae=()=>{K.subTree=Mc(K),ge(ie,K.subTree,K,D,null)};ke?Y.type.__asyncLoader().then(()=>!K.isUnmounted&&Ae()):Ae()}else{const Ae=K.subTree=Mc(K);g(null,Ae,J,Z,K,D,oe),Y.el=Ae.el}if($e&&qt($e,D),!ke&&(Se=le&&le.onVnodeMounted)){const Ae=Y;qt(()=>Pn(Se,Oe,Ae),D)}(Y.shapeFlag&256||Oe&&ps(Oe.vnode)&&Oe.vnode.shapeFlag&256)&&K.a&&qt(K.a,D),K.isMounted=!0,Y=J=Z=null}},pe=K.effect=new Fh(de,()=>Kh(fe),K.scope),fe=K.update=()=>pe.run();fe.id=K.uid,Qr(K,!0),fe()},N=(K,Y,J)=>{Y.component=K;const Z=K.vnode.props;K.vnode=Y,K.next=null,r1(K,Y.props,Z,J),s1(K,Y.children,J),yo(),dd(),wo()},B=(K,Y,J,Z,D,oe,me,de,pe=!1)=>{const fe=K&&K.children,Se=K?K.shapeFlag:0,ie=Y.children,{patchFlag:le,shapeFlag:he}=Y;if(le>0){if(le&128){z(fe,ie,J,Z,D,oe,me,de,pe);return}else if(le&256){H(fe,ie,J,Z,D,oe,me,de,pe);return}}he&8?(Se&16&&ee(fe,D,oe),ie!==fe&&a(J,ie)):Se&16?he&16?z(fe,ie,J,Z,D,oe,me,de,pe):ee(fe,D,oe,!0):(Se&8&&a(J,""),he&16&&M(ie,J,Z,D,oe,me,de,pe))},H=(K,Y,J,Z,D,oe,me,de,pe)=>{K=K||Ui,Y=Y||Ui;const fe=K.length,Se=Y.length,ie=Math.min(fe,Se);let le;for(le=0;leSe?ee(K,D,oe,!0,!1,ie):M(Y,J,Z,D,oe,me,de,pe,ie)},z=(K,Y,J,Z,D,oe,me,de,pe)=>{let fe=0;const Se=Y.length;let ie=K.length-1,le=Se-1;for(;fe<=ie&&fe<=le;){const he=K[fe],$e=Y[fe]=pe?Cr(Y[fe]):Fn(Y[fe]);if(ai(he,$e))g(he,$e,J,null,D,oe,me,de,pe);else break;fe++}for(;fe<=ie&&fe<=le;){const he=K[ie],$e=Y[le]=pe?Cr(Y[le]):Fn(Y[le]);if(ai(he,$e))g(he,$e,J,null,D,oe,me,de,pe);else break;ie--,le--}if(fe>ie){if(fe<=le){const he=le+1,$e=hele)for(;fe<=ie;)W(K[fe],D,oe,!0),fe++;else{const he=fe,$e=fe,Oe=new Map;for(fe=$e;fe<=le;fe++){const gt=Y[fe]=pe?Cr(Y[fe]):Fn(Y[fe]);gt.key!=null&&Oe.set(gt.key,fe)}let ke,Ae=0;const Ge=le-$e+1;let ze=!1,Ue=0;const dt=new Array(Ge);for(fe=0;fe=Ge){W(gt,D,oe,!0);continue}let $t;if(gt.key!=null)$t=Oe.get(gt.key);else for(ke=$e;ke<=le;ke++)if(dt[ke-$e]===0&&ai(gt,Y[ke])){$t=ke;break}$t===void 0?W(gt,D,oe,!0):(dt[$t-$e]=fe+1,$t>=Ue?Ue=$t:ze=!0,g(gt,Y[$t],J,null,D,oe,me,de,pe),Ae++)}const en=ze?c1(dt):Ui;for(ke=en.length-1,fe=Ge-1;fe>=0;fe--){const gt=$e+fe,$t=Y[gt],_n=gt+1{const{el:oe,type:me,transition:de,children:pe,shapeFlag:fe}=K;if(fe&6){F(K.component.subTree,Y,J,Z);return}if(fe&128){K.suspense.move(Y,J,Z);return}if(fe&64){me.move(K,Y,J,re);return}if(me===je){r(oe,Y,J);for(let ie=0;iede.enter(oe),D);else{const{leave:ie,delayLeave:le,afterLeave:he}=de,$e=()=>r(oe,Y,J),Oe=()=>{ie(oe,()=>{$e(),he&&he()})};le?le(oe,$e,Oe):Oe()}else r(oe,Y,J)},W=(K,Y,J,Z=!1,D=!1)=>{const{type:oe,props:me,ref:de,children:pe,dynamicChildren:fe,shapeFlag:Se,patchFlag:ie,dirs:le}=K;if(de!=null&&Cu(de,null,J,K,!0),Se&256){Y.ctx.deactivate(K);return}const he=Se&1&&le,$e=!ps(K);let Oe;if($e&&(Oe=me&&me.onVnodeBeforeUnmount)&&Pn(Oe,Y,K),Se&6)Q(K.component,J,Z);else{if(Se&128){K.suspense.unmount(J,Z);return}he&&Yr(K,null,Y,"beforeUnmount"),Se&64?K.type.remove(K,Y,J,D,re,Z):fe&&(oe!==je||ie>0&&ie&64)?ee(fe,Y,J,!1,!0):(oe===je&&ie&384||!D&&Se&16)&&ee(pe,Y,J),Z&&G(K)}($e&&(Oe=me&&me.onVnodeUnmounted)||he)&&qt(()=>{Oe&&Pn(Oe,Y,K),he&&Yr(K,null,Y,"unmounted")},J)},G=K=>{const{type:Y,el:J,anchor:Z,transition:D}=K;if(Y===je){U(J,Z);return}if(Y===kc){$(K);return}const oe=()=>{i(J),D&&!D.persisted&&D.afterLeave&&D.afterLeave()};if(K.shapeFlag&1&&D&&!D.persisted){const{leave:me,delayLeave:de}=D,pe=()=>me(J,oe);de?de(K.el,oe,pe):pe()}else oe()},U=(K,Y)=>{let J;for(;K!==Y;)J=f(K),i(K),K=J;i(Y)},Q=(K,Y,J)=>{const{bum:Z,scope:D,update:oe,subTree:me,um:de}=K;Z&&Ca(Z),D.stop(),oe&&(oe.active=!1,W(me,K,Y,J)),de&&qt(de,Y),qt(()=>{K.isUnmounted=!0},Y),Y&&Y.pendingBranch&&!Y.isUnmounted&&K.asyncDep&&!K.asyncResolved&&K.suspenseId===Y.pendingId&&(Y.deps--,Y.deps===0&&Y.resolve())},ee=(K,Y,J,Z=!1,D=!1,oe=0)=>{for(let me=oe;meK.shapeFlag&6?V(K.component.subTree):K.shapeFlag&128?K.suspense.next():f(K.anchor||K.el),q=(K,Y,J)=>{K==null?Y._vnode&&W(Y._vnode,null,null,!0):g(Y._vnode||null,K,Y,null,null,null,J),dd(),ev(),Y._vnode=K},re={p:g,um:W,m:F,r:G,mt:w,mc:M,pc:B,pbc:S,n:V,o:e};let se,ge;return t&&([se,ge]=t(re)),{render:q,hydrate:se,createApp:t1(q,se)}}function Qr({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function bv(e,t,n=!1){const r=e.children,i=t.children;if(De(r)&&De(i))for(let o=0;o>1,e[n[h]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,s=n[o-1];o-- >0;)n[o]=s,s=t[s];return n}const u1=e=>e.__isTeleport,je=Symbol.for("v-fgt"),Ql=Symbol.for("v-txt"),mn=Symbol.for("v-cmt"),kc=Symbol.for("v-stc"),ms=[];let On=null;function ue(e=!1){ms.push(On=e?null:[])}function h1(){ms.pop(),On=ms[ms.length-1]||null}let ks=1;function Sd(e){ks+=e}function _v(e){return e.dynamicChildren=ks>0?On||Ui:null,h1(),ks>0&&On&&On.push(e),e}function ve(e,t,n,r,i,o){return _v(_e(e,t,n,r,i,o,!0))}function Rt(e,t,n,r,i){return _v(tt(e,t,n,r,i,!0))}function Ja(e){return e?e.__v_isVNode===!0:!1}function ai(e,t){return e.type===t.type&&e.key===t.key}const ql="__vInternal",Ev=({key:e})=>e??null,La=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Et(e)||Pt(e)||We(e)?{i:Gt,r:e,k:t,f:!!n}:e:null);function _e(e,t=null,n=null,r=0,i=null,o=e===je?0:1,s=!1,h=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Ev(t),ref:t&&La(t),scopeId:Vl,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:Gt};return h?(tf(l,n),o&128&&e.normalize(l)):n&&(l.shapeFlag|=Et(n)?8:16),ks>0&&!s&&On&&(l.patchFlag>0||o&6)&&l.patchFlag!==32&&On.push(l),l}const tt=f1;function f1(e,t=null,n=null,r=0,i=null,o=!1){if((!e||e===uv)&&(e=mn),Ja(e)){const h=Br(e,t,!0);return n&&tf(h,n),ks>0&&!o&&On&&(h.shapeFlag&6?On[On.indexOf(e)]=h:On.push(h)),h.patchFlag|=-2,h}if(E1(e)&&(e=e.__vccOpts),t){t=d1(t);let{class:h,style:l}=t;h&&!Et(h)&&(t.class=kt(h)),ot(l)&&(zm(l)&&!De(l)&&(l=Ct({},l)),t.style=vo(l))}const s=Et(e)?1:R_(e)?128:u1(e)?64:ot(e)?4:We(e)?2:0;return _e(e,t,n,r,i,s,o,!0)}function d1(e){return e?zm(e)||ql in e?Ct({},e):e:null}function Br(e,t,n=!1){const{props:r,ref:i,patchFlag:o,children:s}=e,h=t?Jl(r||{},t):r;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:h,key:h&&Ev(h),ref:t&&t.ref?n&&i?De(i)?i.concat(La(t)):[i,La(t)]:La(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:s,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==je?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Br(e.ssContent),ssFallback:e.ssFallback&&Br(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function ef(e=" ",t=0){return tt(Ql,null,e,t)}function Mn(e="",t=!1){return t?(ue(),Rt(mn,null,e)):tt(mn,null,e)}function Fn(e){return e==null||typeof e=="boolean"?tt(mn):De(e)?tt(je,null,e.slice()):typeof e=="object"?Cr(e):tt(Ql,null,String(e))}function Cr(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Br(e)}function tf(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(De(t))n=16;else if(typeof t=="object")if(r&65){const i=t.default;i&&(i._c&&(i._d=!1),tf(e,i()),i._c&&(i._d=!0));return}else{n=32;const i=t._;!i&&!(ql in t)?t._ctx=Gt:i===3&&Gt&&(Gt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else We(t)?(t={default:t,_ctx:Gt},n=32):(t=String(t),r&64?(n=16,t=[ef(t)]):n=8);e.children=t,e.shapeFlag|=n}function Jl(...e){const t={};for(let n=0;nAt||Gt;let nf,Ri,Cd="__VUE_INSTANCE_SETTERS__";(Ri=vu()[Cd])||(Ri=vu()[Cd]=[]),Ri.push(e=>At=e),nf=e=>{Ri.length>1?Ri.forEach(t=>t(e)):Ri[0](e)};const to=e=>{nf(e),e.scope.on()},mi=()=>{At&&At.scope.off(),nf(null)};function xv(e){return e.vnode.shapeFlag&4}let Rs=!1;function v1(e,t=!1){Rs=t;const{props:n,children:r}=e.vnode,i=xv(e);n1(e,n,i,t),o1(e,r);const o=i?y1(e,t):void 0;return Rs=!1,o}function y1(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=jm(new Proxy(e.ctx,X_));const{setup:r}=n;if(r){const i=e.setupContext=r.length>1?b1(e):null;to(e),yo();const o=Ar(r,e,0,[e.props,i]);if(wo(),mi(),Cm(o)){if(o.then(mi,mi),t)return o.then(s=>{Ld(e,s,t)}).catch(s=>{Ul(s,e,0)});e.asyncDep=o}else Ld(e,o,t)}else Sv(e,t)}function Ld(e,t,n){We(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ot(t)&&(e.setupState=Xm(t)),Sv(e,n)}let Md;function Sv(e,t,n){const r=e.type;if(!e.render){if(!t&&Md&&!r.render){const i=r.template||Jh(e).template;if(i){const{isCustomElement:o,compilerOptions:s}=e.appContext.config,{delimiters:h,compilerOptions:l}=r,u=Ct(Ct({isCustomElement:o,delimiters:h},s),l);r.render=Md(i,u)}}e.render=r.render||Rn}to(e),yo(),Y_(e),wo(),mi()}function w1(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get(t,n){return Jt(e,"get","$attrs"),t[n]}}))}function b1(e){const t=n=>{e.exposed=n||{}};return{get attrs(){return w1(e)},slots:e.slots,emit:e.emit,expose:t}}function Zl(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Xm(jm(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in gs)return gs[n](e)},has(t,n){return n in t||n in gs}}))}function _1(e,t=!0){return We(e)?e.displayName||e.name:e.name||t&&e.__name}function E1(e){return We(e)&&"__vccOpts"in e}const we=(e,t)=>__(e,t,Rs);function rf(e,t,n){const r=arguments.length;return r===2?ot(t)&&!De(t)?Ja(t)?tt(e,null,[t]):tt(e,t):tt(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Ja(n)&&(n=[n]),tt(e,t,n))}const $1=Symbol.for("v-scx"),x1=()=>ln($1),S1="3.3.4",C1="http://www.w3.org/2000/svg",li=typeof document<"u"?document:null,Td=li&&li.createElement("template"),L1={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const i=t?li.createElementNS(C1,e):li.createElement(e,n?{is:n}:void 0);return e==="select"&&r&&r.multiple!=null&&i.setAttribute("multiple",r.multiple),i},createText:e=>li.createTextNode(e),createComment:e=>li.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>li.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,i,o){const s=n?n.previousSibling:t.lastChild;if(i&&(i===o||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),!(i===o||!(i=i.nextSibling)););else{Td.innerHTML=r?`${e}`:e;const h=Td.content;if(r){const l=h.firstChild;for(;l.firstChild;)h.appendChild(l.firstChild);h.removeChild(l)}t.insertBefore(h,n)}return[s?s.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function M1(e,t,n){const r=e._vtc;r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function T1(e,t,n){const r=e.style,i=Et(n);if(n&&!i){if(t&&!Et(t))for(const o in t)n[o]==null&&Lu(r,o,"");for(const o in n)Lu(r,o,n[o])}else{const o=r.display;i?t!==n&&(r.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(r.display=o)}}const Od=/\s*!important$/;function Lu(e,t,n){if(De(n))n.forEach(r=>Lu(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=O1(e,t);Od.test(n)?e.setProperty(mo(r),n.replace(Od,""),"important"):e[r]=n}}const kd=["Webkit","Moz","ms"],Rc={};function O1(e,t){const n=Rc[t];if(n)return n;let r=Yn(t);if(r!=="filter"&&r in e)return Rc[t]=r;r=Wl(r);for(let i=0;iDc||(P1.then(()=>Dc=0),Dc=Date.now());function B1(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;gn(F1(r,n.value),t,5,[r])};return n.value=e,n.attached=N1(),n}function F1(e,t){if(De(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>i=>!i._stopped&&r&&r(i))}else return t}const Id=/^on[a-z]/,G1=(e,t,n,r,i=!1,o,s,h,l)=>{t==="class"?M1(e,r,i):t==="style"?T1(e,n,r):Fl(t)?Ah(t)||I1(e,t,n,r,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):H1(e,t,r,i))?R1(e,t,r,o,s,h,l):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),k1(e,t,r,i))};function H1(e,t,n,r){return r?!!(t==="innerHTML"||t==="textContent"||t in e&&Id.test(t)&&We(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||Id.test(t)&&Et(n)?!1:t in e}const _r="transition",No="animation",Cv=(e,{slots:t})=>rf(P_,Mv(e),t);Cv.displayName="Transition";const Lv={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},W1=Cv.props=Ct({},ov,Lv),qr=(e,t=[])=>{De(e)?e.forEach(n=>n(...t)):e&&e(...t)},Ad=e=>e?De(e)?e.some(t=>t.length>1):e.length>1:!1;function Mv(e){const t={};for(const I in e)I in Lv||(t[I]=e[I]);if(e.css===!1)return t;const{name:n="v",type:r,duration:i,enterFromClass:o=`${n}-enter-from`,enterActiveClass:s=`${n}-enter-active`,enterToClass:h=`${n}-enter-to`,appearFromClass:l=o,appearActiveClass:u=s,appearToClass:a=h,leaveFromClass:c=`${n}-leave-from`,leaveActiveClass:f=`${n}-leave-active`,leaveToClass:d=`${n}-leave-to`}=e,p=z1(i),g=p&&p[0],m=p&&p[1],{onBeforeEnter:v,onEnter:y,onEnterCancelled:x,onLeave:$,onLeaveCancelled:_,onBeforeAppear:b=v,onAppear:R=y,onAppearCancelled:M=x}=t,k=(I,C,w)=>{Sr(I,C?a:h),Sr(I,C?u:s),w&&w()},S=(I,C)=>{I._isLeaving=!1,Sr(I,c),Sr(I,d),Sr(I,f),C&&C()},E=I=>(C,w)=>{const T=I?R:y,O=()=>k(C,I,w);qr(T,[C,O]),Pd(()=>{Sr(C,I?l:o),sr(C,I?a:h),Ad(T)||Nd(C,r,g,O)})};return Ct(t,{onBeforeEnter(I){qr(v,[I]),sr(I,o),sr(I,s)},onBeforeAppear(I){qr(b,[I]),sr(I,l),sr(I,u)},onEnter:E(!1),onAppear:E(!0),onLeave(I,C){I._isLeaving=!0;const w=()=>S(I,C);sr(I,c),Ov(),sr(I,f),Pd(()=>{I._isLeaving&&(Sr(I,c),sr(I,d),Ad($)||Nd(I,r,m,w))}),qr($,[I,w])},onEnterCancelled(I){k(I,!1),qr(x,[I])},onAppearCancelled(I){k(I,!0),qr(M,[I])},onLeaveCancelled(I){S(I),qr(_,[I])}})}function z1(e){if(e==null)return null;if(ot(e))return[Ic(e.enter),Ic(e.leave)];{const t=Ic(e);return[t,t]}}function Ic(e){return T0(e)}function sr(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e._vtc||(e._vtc=new Set)).add(t)}function Sr(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function Pd(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let j1=0;function Nd(e,t,n,r){const i=e._endId=++j1,o=()=>{i===e._endId&&r()};if(n)return setTimeout(o,n);const{type:s,timeout:h,propCount:l}=Tv(e,t);if(!s)return r();const u=s+"end";let a=0;const c=()=>{e.removeEventListener(u,f),o()},f=d=>{d.target===e&&++a>=l&&c()};setTimeout(()=>{a(n[p]||"").split(", "),i=r(`${_r}Delay`),o=r(`${_r}Duration`),s=Bd(i,o),h=r(`${No}Delay`),l=r(`${No}Duration`),u=Bd(h,l);let a=null,c=0,f=0;t===_r?s>0&&(a=_r,c=s,f=o.length):t===No?u>0&&(a=No,c=u,f=l.length):(c=Math.max(s,u),a=c>0?s>u?_r:No:null,f=a?a===_r?o.length:l.length:0);const d=a===_r&&/\b(transform|all)(,|$)/.test(r(`${_r}Property`).toString());return{type:a,timeout:c,propCount:f,hasTransform:d}}function Bd(e,t){for(;e.lengthFd(n)+Fd(e[r])))}function Fd(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function Ov(){return document.body.offsetHeight}const kv=new WeakMap,Rv=new WeakMap,Dv={name:"TransitionGroup",props:Ct({},W1,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=$v(),r=iv();let i,o;return cv(()=>{if(!i.length)return;const s=e.moveClass||`${e.name||"v"}-move`;if(!Q1(i[0].el,n.vnode.el,s))return;i.forEach(V1),i.forEach(X1);const h=i.filter(Y1);Ov(),h.forEach(l=>{const u=l.el,a=u.style;sr(u,s),a.transform=a.webkitTransform=a.transitionDuration="";const c=u._moveCb=f=>{f&&f.target!==u||(!f||/transform$/.test(f.propertyName))&&(u.removeEventListener("transitionend",c),u._moveCb=null,Sr(u,s))};u.addEventListener("transitionend",c)})}),()=>{const s=Ze(e),h=Mv(s);let l=s.tag||je;i=o,o=t.default?Xh(t.default()):[];for(let u=0;udelete e.mode;Dv.props;const K1=Dv;function V1(e){const t=e.el;t._moveCb&&t._moveCb(),t._enterCb&&t._enterCb()}function X1(e){Rv.set(e,e.el.getBoundingClientRect())}function Y1(e){const t=kv.get(e),n=Rv.get(e),r=t.left-n.left,i=t.top-n.top;if(r||i){const o=e.el.style;return o.transform=o.webkitTransform=`translate(${r}px,${i}px)`,o.transitionDuration="0s",e}}function Q1(e,t,n){const r=e.cloneNode();e._vtc&&e._vtc.forEach(s=>{s.split(/\s+/).forEach(h=>h&&r.classList.remove(h))}),n.split(/\s+/).forEach(s=>s&&r.classList.add(s)),r.style.display="none";const i=t.nodeType===1?t:t.parentNode;i.appendChild(r);const{hasTransform:o}=Tv(r);return i.removeChild(r),o}const Za=e=>{const t=e.props["onUpdate:modelValue"]||!1;return De(t)?n=>Ca(t,n):t};function q1(e){e.target.composing=!0}function Gd(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Gi={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e._assign=Za(i);const o=r||i.props&&i.props.type==="number";ci(e,t?"change":"input",s=>{if(s.target.composing)return;let h=e.value;n&&(h=h.trim()),o&&(h=Ka(h)),e._assign(h)}),n&&ci(e,"change",()=>{e.value=e.value.trim()}),t||(ci(e,"compositionstart",q1),ci(e,"compositionend",Gd),ci(e,"change",Gd))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:r,number:i}},o){if(e._assign=Za(o),e.composing||document.activeElement===e&&e.type!=="range"&&(n||r&&e.value.trim()===t||(i||e.type==="number")&&Ka(e.value)===t))return;const s=t??"";e.value!==s&&(e.value=s)}},J1={deep:!0,created(e,{value:t,modifiers:{number:n}},r){const i=Gl(t);ci(e,"change",()=>{const o=Array.prototype.filter.call(e.options,s=>s.selected).map(s=>n?Ka(el(s)):el(s));e._assign(e.multiple?i?new Set(o):o:o[0])}),e._assign=Za(r)},mounted(e,{value:t}){Hd(e,t)},beforeUpdate(e,t,n){e._assign=Za(n)},updated(e,{value:t}){Hd(e,t)}};function Hd(e,t){const n=e.multiple;if(!(n&&!De(t)&&!Gl(t))){for(let r=0,i=e.options.length;r-1:o.selected=t.has(s);else if(zl(el(o),t)){e.selectedIndex!==r&&(e.selectedIndex=r);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function el(e){return"_value"in e?e._value:e.value}const Z1=["ctrl","shift","alt","meta"],eE={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Z1.some(n=>e[`${n}Key`]&&!t.includes(n))},Ma=(e,t)=>(n,...r)=>{for(let i=0;i{Bo(e,!1)}):Bo(e,t))},beforeUnmount(e,{value:t}){Bo(e,t)}};function Bo(e,t){e.style.display=t?e._vod:"none"}const tE=Ct({patchProp:G1},L1);let Wd;function nE(){return Wd||(Wd=a1(tE))}const rE=(...e)=>{const t=nE().createApp(...e),{mount:n}=t;return t.mount=r=>{const i=iE(r);if(!i)return;const o=t._component;!We(o)&&!o.render&&!o.template&&(o.template=i.innerHTML),i.innerHTML="";const s=n(i,!1,i instanceof SVGElement);return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),s},t};function iE(e){return Et(e)?document.querySelector(e):e}function oE(){return Iv().__VUE_DEVTOOLS_GLOBAL_HOOK__}function Iv(){return typeof navigator<"u"&&typeof window<"u"?window:typeof global<"u"?global:{}}const sE=typeof Proxy=="function",aE="devtools-plugin:setup",lE="plugin:settings:set";let Di,Mu;function cE(){var e;return Di!==void 0||(typeof window<"u"&&window.performance?(Di=!0,Mu=window.performance):typeof global<"u"&&(!((e=global.perf_hooks)===null||e===void 0)&&e.performance)?(Di=!0,Mu=global.perf_hooks.performance):Di=!1),Di}function uE(){return cE()?Mu.now():Date.now()}class hE{constructor(t,n){this.target=null,this.targetQueue=[],this.onQueue=[],this.plugin=t,this.hook=n;const r={};if(t.settings)for(const s in t.settings){const h=t.settings[s];r[s]=h.defaultValue}const i=`__vue-devtools-plugin-settings__${t.id}`;let o=Object.assign({},r);try{const s=localStorage.getItem(i),h=JSON.parse(s);Object.assign(o,h)}catch{}this.fallbacks={getSettings(){return o},setSettings(s){try{localStorage.setItem(i,JSON.stringify(s))}catch{}o=s},now(){return uE()}},n&&n.on(lE,(s,h)=>{s===this.plugin.id&&this.fallbacks.setSettings(h)}),this.proxiedOn=new Proxy({},{get:(s,h)=>this.target?this.target.on[h]:(...l)=>{this.onQueue.push({method:h,args:l})}}),this.proxiedTarget=new Proxy({},{get:(s,h)=>this.target?this.target[h]:h==="on"?this.proxiedOn:Object.keys(this.fallbacks).includes(h)?(...l)=>(this.targetQueue.push({method:h,args:l,resolve:()=>{}}),this.fallbacks[h](...l)):(...l)=>new Promise(u=>{this.targetQueue.push({method:h,args:l,resolve:u})})})}async setRealTarget(t){this.target=t;for(const n of this.onQueue)this.target.on[n.method](...n.args);for(const n of this.targetQueue)n.resolve(await this.target[n.method](...n.args))}}function fE(e,t){const n=e,r=Iv(),i=oE(),o=sE&&n.enableEarlyProxy;if(i&&(r.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__||!o))i.emit(aE,e,t);else{const s=o?new hE(n,i):null;(r.__VUE_DEVTOOLS_PLUGINS__=r.__VUE_DEVTOOLS_PLUGINS__||[]).push({pluginDescriptor:n,setupFn:t,proxy:s}),s&&t(s.proxiedTarget)}}/*! - * vue-router v4.2.1 - * (c) 2023 Eduardo San Martin Morote - * @license MIT - */const Hi=typeof window<"u";function dE(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const it=Object.assign;function Ac(e,t){const n={};for(const r in t){const i=t[r];n[r]=Dn(i)?i.map(e):e(i)}return n}const vs=()=>{},Dn=Array.isArray,pE=/\/$/,gE=e=>e.replace(pE,"");function Pc(e,t,n="/"){let r,i={},o="",s="";const h=t.indexOf("#");let l=t.indexOf("?");return h=0&&(l=-1),l>-1&&(r=t.slice(0,l),o=t.slice(l+1,h>-1?h:t.length),i=e(o)),h>-1&&(r=r||t.slice(0,h),s=t.slice(h,t.length)),r=wE(r??t,n),{fullPath:r+(o&&"?")+o+s,path:r,query:i,hash:s}}function mE(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function zd(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function vE(e,t,n){const r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&no(t.matched[r],n.matched[i])&&Av(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function no(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Av(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!yE(e[n],t[n]))return!1;return!0}function yE(e,t){return Dn(e)?jd(e,t):Dn(t)?jd(t,e):e===t}function jd(e,t){return Dn(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function wE(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),i=r[r.length-1];(i===".."||i===".")&&r.push("");let o=n.length-1,s,h;for(s=0;s1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(s-(s===r.length?1:0)).join("/")}var Ds;(function(e){e.pop="pop",e.push="push"})(Ds||(Ds={}));var ys;(function(e){e.back="back",e.forward="forward",e.unknown=""})(ys||(ys={}));function bE(e){if(!e)if(Hi){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),gE(e)}const _E=/^[^#]+#/;function EE(e,t){return e.replace(_E,"#")+t}function $E(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const ec=()=>({left:window.pageXOffset,top:window.pageYOffset});function xE(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),i=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=$E(i,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function Ud(e,t){return(history.state?history.state.position-t:-1)+e}const Tu=new Map;function SE(e,t){Tu.set(e,t)}function CE(e){const t=Tu.get(e);return Tu.delete(e),t}let LE=()=>location.protocol+"//"+location.host;function Pv(e,t){const{pathname:n,search:r,hash:i}=t,o=e.indexOf("#");if(o>-1){let h=i.includes(e.slice(o))?e.slice(o).length:1,l=i.slice(h);return l[0]!=="/"&&(l="/"+l),zd(l,"")}return zd(n,e)+r+i}function ME(e,t,n,r){let i=[],o=[],s=null;const h=({state:f})=>{const d=Pv(e,location),p=n.value,g=t.value;let m=0;if(f){if(n.value=d,t.value=f,s&&s===p){s=null;return}m=g?f.position-g.position:0}else r(d);i.forEach(v=>{v(n.value,p,{delta:m,type:Ds.pop,direction:m?m>0?ys.forward:ys.back:ys.unknown})})};function l(){s=n.value}function u(f){i.push(f);const d=()=>{const p=i.indexOf(f);p>-1&&i.splice(p,1)};return o.push(d),d}function a(){const{history:f}=window;f.state&&f.replaceState(it({},f.state,{scroll:ec()}),"")}function c(){for(const f of o)f();o=[],window.removeEventListener("popstate",h),window.removeEventListener("beforeunload",a)}return window.addEventListener("popstate",h),window.addEventListener("beforeunload",a,{passive:!0}),{pauseListeners:l,listen:u,destroy:c}}function Kd(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?ec():null}}function TE(e){const{history:t,location:n}=window,r={value:Pv(e,n)},i={value:t.state};i.value||o(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(l,u,a){const c=e.indexOf("#"),f=c>-1?(n.host&&document.querySelector("base")?e:e.slice(c))+l:LE()+e+l;try{t[a?"replaceState":"pushState"](u,"",f),i.value=u}catch(d){console.error(d),n[a?"replace":"assign"](f)}}function s(l,u){const a=it({},t.state,Kd(i.value.back,l,i.value.forward,!0),u,{position:i.value.position});o(l,a,!0),r.value=l}function h(l,u){const a=it({},i.value,t.state,{forward:l,scroll:ec()});o(a.current,a,!0);const c=it({},Kd(r.value,l,null),{position:a.position+1},u);o(l,c,!1),r.value=l}return{location:r,state:i,push:h,replace:s}}function OE(e){e=bE(e);const t=TE(e),n=ME(e,t.state,t.location,t.replace);function r(o,s=!0){s||n.pauseListeners(),history.go(o)}const i=it({location:"",base:e,go:r,createHref:EE.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}function kE(e){return typeof e=="string"||e&&typeof e=="object"}function Nv(e){return typeof e=="string"||typeof e=="symbol"}const Er={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},Bv=Symbol("");var Vd;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(Vd||(Vd={}));function ro(e,t){return it(new Error,{type:e,[Bv]:!0},t)}function rr(e,t){return e instanceof Error&&Bv in e&&(t==null||!!(e.type&t))}const Xd="[^/]+?",RE={sensitive:!1,strict:!1,start:!0,end:!0},DE=/[.+*?^${}()[\]/\\]/g;function IE(e,t){const n=it({},RE,t),r=[];let i=n.start?"^":"";const o=[];for(const u of e){const a=u.length?[]:[90];n.strict&&!u.length&&(i+="/");for(let c=0;ct.length?t.length===1&&t[0]===40+40?1:-1:0}function PE(e,t){let n=0;const r=e.score,i=t.score;for(;n0&&t[t.length-1]<0}const NE={type:0,value:""},BE=/[a-zA-Z0-9_]/;function FE(e){if(!e)return[[]];if(e==="/")return[[NE]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(d){throw new Error(`ERR (${n})/"${u}": ${d}`)}let n=0,r=n;const i=[];let o;function s(){o&&i.push(o),o=[]}let h=0,l,u="",a="";function c(){u&&(n===0?o.push({type:0,value:u}):n===1||n===2||n===3?(o.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:1,value:u,regexp:a,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),u="")}function f(){u+=l}for(;h{s(y)}:vs}function s(a){if(Nv(a)){const c=r.get(a);c&&(r.delete(a),n.splice(n.indexOf(c),1),c.children.forEach(s),c.alias.forEach(s))}else{const c=n.indexOf(a);c>-1&&(n.splice(c,1),a.record.name&&r.delete(a.record.name),a.children.forEach(s),a.alias.forEach(s))}}function h(){return n}function l(a){let c=0;for(;c=0&&(a.record.path!==n[c].record.path||!Fv(a,n[c]));)c++;n.splice(c,0,a),a.record.name&&!qd(a)&&r.set(a.record.name,a)}function u(a,c){let f,d={},p,g;if("name"in a&&a.name){if(f=r.get(a.name),!f)throw ro(1,{location:a});g=f.record.name,d=it(Qd(c.params,f.keys.filter(y=>!y.optional).map(y=>y.name)),a.params&&Qd(a.params,f.keys.map(y=>y.name))),p=f.stringify(d)}else if("path"in a)p=a.path,f=n.find(y=>y.re.test(p)),f&&(d=f.parse(p),g=f.record.name);else{if(f=c.name?r.get(c.name):n.find(y=>y.re.test(c.path)),!f)throw ro(1,{location:a,currentLocation:c});g=f.record.name,d=it({},c.params,a.params),p=f.stringify(d)}const m=[];let v=f;for(;v;)m.unshift(v.record),v=v.parent;return{name:g,path:p,params:d,matched:m,meta:jE(m)}}return e.forEach(a=>o(a)),{addRoute:o,resolve:u,removeRoute:s,getRoutes:h,getRecordMatcher:i}}function Qd(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function WE(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:zE(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function zE(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="boolean"?n:n[r];return t}function qd(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function jE(e){return e.reduce((t,n)=>it(t,n.meta),{})}function Jd(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function Fv(e,t){return t.children.some(n=>n===e||Fv(e,n))}const Gv=/#/g,UE=/&/g,KE=/\//g,VE=/=/g,XE=/\?/g,Hv=/\+/g,YE=/%5B/g,QE=/%5D/g,Wv=/%5E/g,qE=/%60/g,zv=/%7B/g,JE=/%7C/g,jv=/%7D/g,ZE=/%20/g;function of(e){return encodeURI(""+e).replace(JE,"|").replace(YE,"[").replace(QE,"]")}function e$(e){return of(e).replace(zv,"{").replace(jv,"}").replace(Wv,"^")}function Ou(e){return of(e).replace(Hv,"%2B").replace(ZE,"+").replace(Gv,"%23").replace(UE,"%26").replace(qE,"`").replace(zv,"{").replace(jv,"}").replace(Wv,"^")}function t$(e){return Ou(e).replace(VE,"%3D")}function n$(e){return of(e).replace(Gv,"%23").replace(XE,"%3F")}function r$(e){return e==null?"":n$(e).replace(KE,"%2F")}function tl(e){try{return decodeURIComponent(""+e)}catch{}return""+e}function i$(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let i=0;io&&Ou(o)):[r&&Ou(r)]).forEach(o=>{o!==void 0&&(t+=(t.length?"&":"")+n,o!=null&&(t+="="+o))})}return t}function o$(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=Dn(r)?r.map(i=>i==null?null:""+i):r==null?r:""+r)}return t}const s$=Symbol(""),ep=Symbol(""),tc=Symbol(""),sf=Symbol(""),ku=Symbol("");function Fo(){let e=[];function t(r){return e.push(r),()=>{const i=e.indexOf(r);i>-1&&e.splice(i,1)}}function n(){e=[]}return{add:t,list:()=>e,reset:n}}function Lr(e,t,n,r,i){const o=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((s,h)=>{const l=c=>{c===!1?h(ro(4,{from:n,to:t})):c instanceof Error?h(c):kE(c)?h(ro(2,{from:t,to:c})):(o&&r.enterCallbacks[i]===o&&typeof c=="function"&&o.push(c),s())},u=e.call(r&&r.instances[i],t,n,l);let a=Promise.resolve(u);e.length<3&&(a=a.then(l)),a.catch(c=>h(c))})}function Nc(e,t,n,r){const i=[];for(const o of e)for(const s in o.components){let h=o.components[s];if(!(t!=="beforeRouteEnter"&&!o.instances[s]))if(a$(h)){const u=(h.__vccOpts||h)[t];u&&i.push(Lr(u,n,r,o,s))}else{let l=h();i.push(()=>l.then(u=>{if(!u)return Promise.reject(new Error(`Couldn't resolve component "${s}" at "${o.path}"`));const a=dE(u)?u.default:u;o.components[s]=a;const f=(a.__vccOpts||a)[t];return f&&Lr(f,n,r,o,s)()}))}}return i}function a$(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function tp(e){const t=ln(tc),n=ln(sf),r=we(()=>t.resolve(Me(e.to))),i=we(()=>{const{matched:l}=r.value,{length:u}=l,a=l[u-1],c=n.matched;if(!a||!c.length)return-1;const f=c.findIndex(no.bind(null,a));if(f>-1)return f;const d=np(l[u-2]);return u>1&&np(a)===d&&c[c.length-1].path!==d?c.findIndex(no.bind(null,l[u-2])):f}),o=we(()=>i.value>-1&&h$(n.params,r.value.params)),s=we(()=>i.value>-1&&i.value===n.matched.length-1&&Av(n.params,r.value.params));function h(l={}){return u$(l)?t[Me(e.replace)?"replace":"push"](Me(e.to)).catch(vs):Promise.resolve()}return{route:r,href:we(()=>r.value.href),isActive:o,isExactActive:s,navigate:h}}const l$=bo({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:tp,setup(e,{slots:t}){const n=Ei(tp(e)),{options:r}=ln(tc),i=we(()=>({[rp(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[rp(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&t.default(n);return e.custom?o:rf("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},o)}}}),c$=l$;function u$(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function h$(e,t){for(const n in t){const r=t[n],i=e[n];if(typeof r=="string"){if(r!==i)return!1}else if(!Dn(i)||i.length!==r.length||r.some((o,s)=>o!==i[s]))return!1}return!0}function np(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const rp=(e,t,n)=>e??t??n,f$=bo({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=ln(ku),i=we(()=>e.route||r.value),o=ln(ep,0),s=we(()=>{let u=Me(o);const{matched:a}=i.value;let c;for(;(c=a[u])&&!c.components;)u++;return u}),h=we(()=>i.value.matched[s.value]);Yi(ep,we(()=>s.value+1)),Yi(s$,h),Yi(ku,i);const l=Un();return St(()=>[l.value,h.value,e.name],([u,a,c],[f,d,p])=>{a&&(a.instances[c]=u,d&&d!==a&&u&&u===f&&(a.leaveGuards.size||(a.leaveGuards=d.leaveGuards),a.updateGuards.size||(a.updateGuards=d.updateGuards))),u&&a&&(!d||!no(a,d)||!f)&&(a.enterCallbacks[c]||[]).forEach(g=>g(u))},{flush:"post"}),()=>{const u=i.value,a=e.name,c=h.value,f=c&&c.components[a];if(!f)return ip(n.default,{Component:f,route:u});const d=c.props[a],p=d?d===!0?u.params:typeof d=="function"?d(u):d:null,m=rf(f,it({},p,t,{onVnodeUnmounted:v=>{v.component.isUnmounted&&(c.instances[a]=null)},ref:l}));return ip(n.default,{Component:m,route:u})||m}}});function ip(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const d$=f$;function p$(e){const t=HE(e.routes,e),n=e.parseQuery||i$,r=e.stringifyQuery||Zd,i=e.history,o=Fo(),s=Fo(),h=Fo(),l=g_(Er);let u=Er;Hi&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=Ac.bind(null,V=>""+V),c=Ac.bind(null,r$),f=Ac.bind(null,tl);function d(V,q){let re,se;return Nv(V)?(re=t.getRecordMatcher(V),se=q):se=V,t.addRoute(se,re)}function p(V){const q=t.getRecordMatcher(V);q&&t.removeRoute(q)}function g(){return t.getRoutes().map(V=>V.record)}function m(V){return!!t.getRecordMatcher(V)}function v(V,q){if(q=it({},q||l.value),typeof V=="string"){const J=Pc(n,V,q.path),Z=t.resolve({path:J.path},q),D=i.createHref(J.fullPath);return it(J,Z,{params:f(Z.params),hash:tl(J.hash),redirectedFrom:void 0,href:D})}let re;if("path"in V)re=it({},V,{path:Pc(n,V.path,q.path).path});else{const J=it({},V.params);for(const Z in J)J[Z]==null&&delete J[Z];re=it({},V,{params:c(J)}),q.params=c(q.params)}const se=t.resolve(re,q),ge=V.hash||"";se.params=a(f(se.params));const K=mE(r,it({},V,{hash:e$(ge),path:se.path})),Y=i.createHref(K);return it({fullPath:K,hash:ge,query:r===Zd?o$(V.query):V.query||{}},se,{redirectedFrom:void 0,href:Y})}function y(V){return typeof V=="string"?Pc(n,V,l.value.path):it({},V)}function x(V,q){if(u!==V)return ro(8,{from:q,to:V})}function $(V){return R(V)}function _(V){return $(it(y(V),{replace:!0}))}function b(V){const q=V.matched[V.matched.length-1];if(q&&q.redirect){const{redirect:re}=q;let se=typeof re=="function"?re(V):re;return typeof se=="string"&&(se=se.includes("?")||se.includes("#")?se=y(se):{path:se},se.params={}),it({query:V.query,hash:V.hash,params:"path"in se?{}:V.params},se)}}function R(V,q){const re=u=v(V),se=l.value,ge=V.state,K=V.force,Y=V.replace===!0,J=b(re);if(J)return R(it(y(J),{state:typeof J=="object"?it({},ge,J.state):ge,force:K,replace:Y}),q||re);const Z=re;Z.redirectedFrom=q;let D;return!K&&vE(r,se,re)&&(D=ro(16,{to:Z,from:se}),F(se,se,!0,!1)),(D?Promise.resolve(D):S(Z,se)).catch(oe=>rr(oe)?rr(oe,2)?oe:z(oe):B(oe,Z,se)).then(oe=>{if(oe){if(rr(oe,2))return R(it({replace:Y},y(oe.to),{state:typeof oe.to=="object"?it({},ge,oe.to.state):ge,force:K}),q||Z)}else oe=I(Z,se,!0,Y,ge);return E(Z,se,oe),oe})}function M(V,q){const re=x(V,q);return re?Promise.reject(re):Promise.resolve()}function k(V){const q=U.values().next().value;return q&&typeof q.runWithContext=="function"?q.runWithContext(V):V()}function S(V,q){let re;const[se,ge,K]=g$(V,q);re=Nc(se.reverse(),"beforeRouteLeave",V,q);for(const J of se)J.leaveGuards.forEach(Z=>{re.push(Lr(Z,V,q))});const Y=M.bind(null,V,q);return re.push(Y),ee(re).then(()=>{re=[];for(const J of o.list())re.push(Lr(J,V,q));return re.push(Y),ee(re)}).then(()=>{re=Nc(ge,"beforeRouteUpdate",V,q);for(const J of ge)J.updateGuards.forEach(Z=>{re.push(Lr(Z,V,q))});return re.push(Y),ee(re)}).then(()=>{re=[];for(const J of V.matched)if(J.beforeEnter&&!q.matched.includes(J))if(Dn(J.beforeEnter))for(const Z of J.beforeEnter)re.push(Lr(Z,V,q));else re.push(Lr(J.beforeEnter,V,q));return re.push(Y),ee(re)}).then(()=>(V.matched.forEach(J=>J.enterCallbacks={}),re=Nc(K,"beforeRouteEnter",V,q),re.push(Y),ee(re))).then(()=>{re=[];for(const J of s.list())re.push(Lr(J,V,q));return re.push(Y),ee(re)}).catch(J=>rr(J,8)?J:Promise.reject(J))}function E(V,q,re){for(const se of h.list())k(()=>se(V,q,re))}function I(V,q,re,se,ge){const K=x(V,q);if(K)return K;const Y=q===Er,J=Hi?history.state:{};re&&(se||Y?i.replace(V.fullPath,it({scroll:Y&&J&&J.scroll},ge)):i.push(V.fullPath,ge)),l.value=V,F(V,q,re,Y),z()}let C;function w(){C||(C=i.listen((V,q,re)=>{if(!Q.listening)return;const se=v(V),ge=b(se);if(ge){R(it(ge,{replace:!0}),se).catch(vs);return}u=se;const K=l.value;Hi&&SE(Ud(K.fullPath,re.delta),ec()),S(se,K).catch(Y=>rr(Y,12)?Y:rr(Y,2)?(R(Y.to,se).then(J=>{rr(J,20)&&!re.delta&&re.type===Ds.pop&&i.go(-1,!1)}).catch(vs),Promise.reject()):(re.delta&&i.go(-re.delta,!1),B(Y,se,K))).then(Y=>{Y=Y||I(se,K,!1),Y&&(re.delta&&!rr(Y,8)?i.go(-re.delta,!1):re.type===Ds.pop&&rr(Y,20)&&i.go(-1,!1)),E(se,K,Y)}).catch(vs)}))}let T=Fo(),O=Fo(),N;function B(V,q,re){z(V);const se=O.list();return se.length?se.forEach(ge=>ge(V,q,re)):console.error(V),Promise.reject(V)}function H(){return N&&l.value!==Er?Promise.resolve():new Promise((V,q)=>{T.add([V,q])})}function z(V){return N||(N=!V,w(),T.list().forEach(([q,re])=>V?re(V):q()),T.reset()),V}function F(V,q,re,se){const{scrollBehavior:ge}=e;if(!Hi||!ge)return Promise.resolve();const K=!re&&CE(Ud(V.fullPath,0))||(se||!re)&&history.state&&history.state.scroll||null;return Jm().then(()=>ge(V,q,K)).then(Y=>Y&&xE(Y)).catch(Y=>B(Y,V,q))}const W=V=>i.go(V);let G;const U=new Set,Q={currentRoute:l,listening:!0,addRoute:d,removeRoute:p,hasRoute:m,getRoutes:g,resolve:v,options:e,push:$,replace:_,go:W,back:()=>W(-1),forward:()=>W(1),beforeEach:o.add,beforeResolve:s.add,afterEach:h.add,onError:O.add,isReady:H,install(V){const q=this;V.component("RouterLink",c$),V.component("RouterView",d$),V.config.globalProperties.$router=q,Object.defineProperty(V.config.globalProperties,"$route",{enumerable:!0,get:()=>Me(l)}),Hi&&!G&&l.value===Er&&(G=!0,$(i.location).catch(ge=>{}));const re={};for(const ge in Er)re[ge]=we(()=>l.value[ge]);V.provide(tc,q),V.provide(sf,Ei(re)),V.provide(ku,l);const se=V.unmount;U.add(V),V.unmount=function(){U.delete(V),U.size<1&&(u=Er,C&&C(),C=null,l.value=Er,G=!1,N=!1),se()}}};function ee(V){return V.reduce((q,re)=>q.then(()=>k(re)),Promise.resolve())}return Q}function g$(e,t){const n=[],r=[],i=[],o=Math.max(t.matched.length,e.matched.length);for(let s=0;sno(u,h))?r.push(h):n.push(h));const l=e.matched[s];l&&(t.matched.find(u=>no(u,l))||i.push(l))}return[n,r,i]}function m$(){return ln(tc)}function Uj(){return ln(sf)}/*! - * vuex v4.1.0 - * (c) 2022 Evan You - * @license MIT - */var v$="store";function y$(e,t){return e.filter(t)[0]}function Ru(e,t){if(t===void 0&&(t=[]),e===null||typeof e!="object")return e;var n=y$(t,function(i){return i.original===e});if(n)return n.copy;var r=Array.isArray(e)?[]:{};return t.push({original:e,copy:r}),Object.keys(e).forEach(function(i){r[i]=Ru(e[i],t)}),r}function _o(e,t){Object.keys(e).forEach(function(n){return t(e[n],n)})}function w$(e){return e!==null&&typeof e=="object"}function b$(e){return e&&typeof e.then=="function"}function _$(e,t){return function(){return e(t)}}function Uv(e,t,n){return t.indexOf(e)<0&&(n&&n.prepend?t.unshift(e):t.push(e)),function(){var r=t.indexOf(e);r>-1&&t.splice(r,1)}}function Kv(e,t){e._actions=Object.create(null),e._mutations=Object.create(null),e._wrappedGetters=Object.create(null),e._modulesNamespaceMap=Object.create(null);var n=e.state;nc(e,n,[],e._modules.root,!0),af(e,n,t)}function af(e,t,n){var r=e._state,i=e._scope;e.getters={},e._makeLocalGettersCache=Object.create(null);var o=e._wrappedGetters,s={},h={},l=B0(!0);l.run(function(){_o(o,function(u,a){s[a]=_$(u,e),h[a]=we(function(){return s[a]()}),Object.defineProperty(e.getters,a,{get:function(){return h[a].value},enumerable:!0})})}),e._state=Ei({data:t}),e._scope=l,e.strict&&C$(e),r&&n&&e._withCommit(function(){r.data=null}),i&&i.stop()}function nc(e,t,n,r,i){var o=!n.length,s=e._modules.getNamespace(n);if(r.namespaced&&(e._modulesNamespaceMap[s],e._modulesNamespaceMap[s]=r),!o&&!i){var h=lf(t,n.slice(0,-1)),l=n[n.length-1];e._withCommit(function(){h[l]=r.state})}var u=r.context=E$(e,s,n);r.forEachMutation(function(a,c){var f=s+c;$$(e,f,a,u)}),r.forEachAction(function(a,c){var f=a.root?c:s+c,d=a.handler||a;x$(e,f,d,u)}),r.forEachGetter(function(a,c){var f=s+c;S$(e,f,a,u)}),r.forEachChild(function(a,c){nc(e,t,n.concat(c),a,i)})}function E$(e,t,n){var r=t==="",i={dispatch:r?e.dispatch:function(o,s,h){var l=nl(o,s,h),u=l.payload,a=l.options,c=l.type;return(!a||!a.root)&&(c=t+c),e.dispatch(c,u)},commit:r?e.commit:function(o,s,h){var l=nl(o,s,h),u=l.payload,a=l.options,c=l.type;(!a||!a.root)&&(c=t+c),e.commit(c,u,a)}};return Object.defineProperties(i,{getters:{get:r?function(){return e.getters}:function(){return Vv(e,t)}},state:{get:function(){return lf(e.state,n)}}}),i}function Vv(e,t){if(!e._makeLocalGettersCache[t]){var n={},r=t.length;Object.keys(e.getters).forEach(function(i){if(i.slice(0,r)===t){var o=i.slice(r);Object.defineProperty(n,o,{get:function(){return e.getters[i]},enumerable:!0})}}),e._makeLocalGettersCache[t]=n}return e._makeLocalGettersCache[t]}function $$(e,t,n,r){var i=e._mutations[t]||(e._mutations[t]=[]);i.push(function(s){n.call(e,r.state,s)})}function x$(e,t,n,r){var i=e._actions[t]||(e._actions[t]=[]);i.push(function(s){var h=n.call(e,{dispatch:r.dispatch,commit:r.commit,getters:r.getters,state:r.state,rootGetters:e.getters,rootState:e.state},s);return b$(h)||(h=Promise.resolve(h)),e._devtoolHook?h.catch(function(l){throw e._devtoolHook.emit("vuex:error",l),l}):h})}function S$(e,t,n,r){e._wrappedGetters[t]||(e._wrappedGetters[t]=function(o){return n(r.state,r.getters,o.state,o.getters)})}function C$(e){St(function(){return e._state.data},function(){},{deep:!0,flush:"sync"})}function lf(e,t){return t.reduce(function(n,r){return n[r]},e)}function nl(e,t,n){return w$(e)&&e.type&&(n=t,t=e,e=e.type),{type:e,payload:t,options:n}}var L$="vuex bindings",op="vuex:mutations",Bc="vuex:actions",Ii="vuex",M$=0;function T$(e,t){fE({id:"org.vuejs.vuex",app:e,label:"Vuex",homepage:"https://next.vuex.vuejs.org/",logo:"https://vuejs.org/images/icons/favicon-96x96.png",packageName:"vuex",componentStateTypes:[L$]},function(n){n.addTimelineLayer({id:op,label:"Vuex Mutations",color:sp}),n.addTimelineLayer({id:Bc,label:"Vuex Actions",color:sp}),n.addInspector({id:Ii,label:"Vuex",icon:"storage",treeFilterPlaceholder:"Filter stores..."}),n.on.getInspectorTree(function(r){if(r.app===e&&r.inspectorId===Ii)if(r.filter){var i=[];qv(i,t._modules.root,r.filter,""),r.rootNodes=i}else r.rootNodes=[Qv(t._modules.root,"")]}),n.on.getInspectorState(function(r){if(r.app===e&&r.inspectorId===Ii){var i=r.nodeId;Vv(t,i),r.state=R$(I$(t._modules,i),i==="root"?t.getters:t._makeLocalGettersCache,i)}}),n.on.editInspectorState(function(r){if(r.app===e&&r.inspectorId===Ii){var i=r.nodeId,o=r.path;i!=="root"&&(o=i.split("/").filter(Boolean).concat(o)),t._withCommit(function(){r.set(t._state.data,o,r.state.value)})}}),t.subscribe(function(r,i){var o={};r.payload&&(o.payload=r.payload),o.state=i,n.notifyComponentUpdate(),n.sendInspectorTree(Ii),n.sendInspectorState(Ii),n.addTimelineEvent({layerId:op,event:{time:Date.now(),title:r.type,data:o}})}),t.subscribeAction({before:function(r,i){var o={};r.payload&&(o.payload=r.payload),r._id=M$++,r._time=Date.now(),o.state=i,n.addTimelineEvent({layerId:Bc,event:{time:r._time,title:r.type,groupId:r._id,subtitle:"start",data:o}})},after:function(r,i){var o={},s=Date.now()-r._time;o.duration={_custom:{type:"duration",display:s+"ms",tooltip:"Action duration",value:s}},r.payload&&(o.payload=r.payload),o.state=i,n.addTimelineEvent({layerId:Bc,event:{time:Date.now(),title:r.type,groupId:r._id,subtitle:"end",data:o}})}})})}var sp=8702998,O$=6710886,k$=16777215,Xv={label:"namespaced",textColor:k$,backgroundColor:O$};function Yv(e){return e&&e!=="root"?e.split("/").slice(-2,-1)[0]:"Root"}function Qv(e,t){return{id:t||"root",label:Yv(t),tags:e.namespaced?[Xv]:[],children:Object.keys(e._children).map(function(n){return Qv(e._children[n],t+n+"/")})}}function qv(e,t,n,r){r.includes(n)&&e.push({id:r||"root",label:r.endsWith("/")?r.slice(0,r.length-1):r||"Root",tags:t.namespaced?[Xv]:[]}),Object.keys(t._children).forEach(function(i){qv(e,t._children[i],n,r+i+"/")})}function R$(e,t,n){t=n==="root"?t:t[n];var r=Object.keys(t),i={state:Object.keys(e.state).map(function(s){return{key:s,editable:!0,value:e.state[s]}})};if(r.length){var o=D$(t);i.getters=Object.keys(o).map(function(s){return{key:s.endsWith("/")?Yv(s):s,editable:!1,value:Du(function(){return o[s]})}})}return i}function D$(e){var t={};return Object.keys(e).forEach(function(n){var r=n.split("/");if(r.length>1){var i=t,o=r.pop();r.forEach(function(s){i[s]||(i[s]={_custom:{value:{},display:s,tooltip:"Module",abstract:!0}}),i=i[s]._custom.value}),i[o]=Du(function(){return e[n]})}else t[n]=Du(function(){return e[n]})}),t}function I$(e,t){var n=t.split("/").filter(function(r){return r});return n.reduce(function(r,i,o){var s=r[i];if(!s)throw new Error('Missing module "'+i+'" for path "'+t+'".');return o===n.length-1?s:s._children},t==="root"?e:e.root._children)}function Du(e){try{return e()}catch(t){return t}}var In=function(t,n){this.runtime=n,this._children=Object.create(null),this._rawModule=t;var r=t.state;this.state=(typeof r=="function"?r():r)||{}},Jv={namespaced:{configurable:!0}};Jv.namespaced.get=function(){return!!this._rawModule.namespaced};In.prototype.addChild=function(t,n){this._children[t]=n};In.prototype.removeChild=function(t){delete this._children[t]};In.prototype.getChild=function(t){return this._children[t]};In.prototype.hasChild=function(t){return t in this._children};In.prototype.update=function(t){this._rawModule.namespaced=t.namespaced,t.actions&&(this._rawModule.actions=t.actions),t.mutations&&(this._rawModule.mutations=t.mutations),t.getters&&(this._rawModule.getters=t.getters)};In.prototype.forEachChild=function(t){_o(this._children,t)};In.prototype.forEachGetter=function(t){this._rawModule.getters&&_o(this._rawModule.getters,t)};In.prototype.forEachAction=function(t){this._rawModule.actions&&_o(this._rawModule.actions,t)};In.prototype.forEachMutation=function(t){this._rawModule.mutations&&_o(this._rawModule.mutations,t)};Object.defineProperties(In.prototype,Jv);var Si=function(t){this.register([],t,!1)};Si.prototype.get=function(t){return t.reduce(function(n,r){return n.getChild(r)},this.root)};Si.prototype.getNamespace=function(t){var n=this.root;return t.reduce(function(r,i){return n=n.getChild(i),r+(n.namespaced?i+"/":"")},"")};Si.prototype.update=function(t){Zv([],this.root,t)};Si.prototype.register=function(t,n,r){var i=this;r===void 0&&(r=!0);var o=new In(n,r);if(t.length===0)this.root=o;else{var s=this.get(t.slice(0,-1));s.addChild(t[t.length-1],o)}n.modules&&_o(n.modules,function(h,l){i.register(t.concat(l),h,r)})};Si.prototype.unregister=function(t){var n=this.get(t.slice(0,-1)),r=t[t.length-1],i=n.getChild(r);i&&i.runtime&&n.removeChild(r)};Si.prototype.isRegistered=function(t){var n=this.get(t.slice(0,-1)),r=t[t.length-1];return n?n.hasChild(r):!1};function Zv(e,t,n){if(t.update(n),n.modules)for(var r in n.modules){if(!t.getChild(r))return;Zv(e.concat(r),t.getChild(r),n.modules[r])}}function zs(e){return new Zt(e)}var Zt=function(t){var n=this;t===void 0&&(t={});var r=t.plugins;r===void 0&&(r=[]);var i=t.strict;i===void 0&&(i=!1);var o=t.devtools;this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new Si(t),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._makeLocalGettersCache=Object.create(null),this._scope=null,this._devtools=o;var s=this,h=this,l=h.dispatch,u=h.commit;this.dispatch=function(f,d){return l.call(s,f,d)},this.commit=function(f,d,p){return u.call(s,f,d,p)},this.strict=i;var a=this._modules.root.state;nc(this,a,[],this._modules.root),af(this,a),r.forEach(function(c){return c(n)})},cf={state:{configurable:!0}};Zt.prototype.install=function(t,n){t.provide(n||v$,this),t.config.globalProperties.$store=this;var r=this._devtools!==void 0?this._devtools:!1;r&&T$(t,this)};cf.state.get=function(){return this._state.data};cf.state.set=function(e){};Zt.prototype.commit=function(t,n,r){var i=this,o=nl(t,n,r),s=o.type,h=o.payload,l={type:s,payload:h},u=this._mutations[s];u&&(this._withCommit(function(){u.forEach(function(c){c(h)})}),this._subscribers.slice().forEach(function(a){return a(l,i.state)}))};Zt.prototype.dispatch=function(t,n){var r=this,i=nl(t,n),o=i.type,s=i.payload,h={type:o,payload:s},l=this._actions[o];if(l){try{this._actionSubscribers.slice().filter(function(a){return a.before}).forEach(function(a){return a.before(h,r.state)})}catch{}var u=l.length>1?Promise.all(l.map(function(a){return a(s)})):l[0](s);return new Promise(function(a,c){u.then(function(f){try{r._actionSubscribers.filter(function(d){return d.after}).forEach(function(d){return d.after(h,r.state)})}catch{}a(f)},function(f){try{r._actionSubscribers.filter(function(d){return d.error}).forEach(function(d){return d.error(h,r.state,f)})}catch{}c(f)})})}};Zt.prototype.subscribe=function(t,n){return Uv(t,this._subscribers,n)};Zt.prototype.subscribeAction=function(t,n){var r=typeof t=="function"?{before:t}:t;return Uv(r,this._actionSubscribers,n)};Zt.prototype.watch=function(t,n,r){var i=this;return St(function(){return t(i.state,i.getters)},n,Object.assign({},r))};Zt.prototype.replaceState=function(t){var n=this;this._withCommit(function(){n._state.data=t})};Zt.prototype.registerModule=function(t,n,r){r===void 0&&(r={}),typeof t=="string"&&(t=[t]),this._modules.register(t,n),nc(this,this.state,t,this._modules.get(t),r.preserveState),af(this,this.state)};Zt.prototype.unregisterModule=function(t){var n=this;typeof t=="string"&&(t=[t]),this._modules.unregister(t),this._withCommit(function(){var r=lf(n.state,t.slice(0,-1));delete r[t[t.length-1]]}),Kv(this)};Zt.prototype.hasModule=function(t){return typeof t=="string"&&(t=[t]),this._modules.isRegistered(t)};Zt.prototype.hotUpdate=function(t){this._modules.update(t),Kv(this,!0)};Zt.prototype._withCommit=function(t){var n=this._committing;this._committing=!0,t(),this._committing=n};Object.defineProperties(Zt.prototype,cf);function ey(e){e===void 0&&(e={});var t=e.collapsed;t===void 0&&(t=!0);var n=e.filter;n===void 0&&(n=function(a,c,f){return!0});var r=e.transformer;r===void 0&&(r=function(a){return a});var i=e.mutationTransformer;i===void 0&&(i=function(a){return a});var o=e.actionFilter;o===void 0&&(o=function(a,c){return!0});var s=e.actionTransformer;s===void 0&&(s=function(a){return a});var h=e.logMutations;h===void 0&&(h=!0);var l=e.logActions;l===void 0&&(l=!0);var u=e.logger;return u===void 0&&(u=console),function(a){var c=Ru(a.state);typeof u>"u"||(h&&a.subscribe(function(f,d){var p=Ru(d);if(n(f,c,p)){var g=cp(),m=i(f),v="mutation "+f.type+g;ap(u,v,t),u.log("%c prev state","color: #9E9E9E; font-weight: bold",r(c)),u.log("%c mutation","color: #03A9F4; font-weight: bold",m),u.log("%c next state","color: #4CAF50; font-weight: bold",r(p)),lp(u)}c=p}),l&&a.subscribeAction(function(f,d){if(o(f,d)){var p=cp(),g=s(f),m="action "+f.type+p;ap(u,m,t),u.log("%c action","color: #03A9F4; font-weight: bold",g),lp(u)}}))}}function ap(e,t,n){var r=n?e.groupCollapsed:e.group;try{r.call(e,t)}catch{e.log(t)}}function lp(e){try{e.groupEnd()}catch{e.log("—— log end ——")}}function cp(){var e=new Date;return" @ "+ha(e.getHours(),2)+":"+ha(e.getMinutes(),2)+":"+ha(e.getSeconds(),2)+"."+ha(e.getMilliseconds(),3)}function A$(e,t){return new Array(t+1).join(e)}function ha(e,t){return A$("0",t-e.toString().length)+e}function ty(e,t){return function(){return e.apply(t,arguments)}}const{toString:P$}=Object.prototype,{getPrototypeOf:uf}=Object,rc=(e=>t=>{const n=P$.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Jn=e=>(e=e.toLowerCase(),t=>rc(t)===e),ic=e=>t=>typeof t===e,{isArray:Eo}=Array,Is=ic("undefined");function N$(e){return e!==null&&!Is(e)&&e.constructor!==null&&!Is(e.constructor)&&vn(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const ny=Jn("ArrayBuffer");function B$(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&ny(e.buffer),t}const F$=ic("string"),vn=ic("function"),ry=ic("number"),oc=e=>e!==null&&typeof e=="object",G$=e=>e===!0||e===!1,Ta=e=>{if(rc(e)!=="object")return!1;const t=uf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},H$=Jn("Date"),W$=Jn("File"),z$=Jn("Blob"),j$=Jn("FileList"),U$=e=>oc(e)&&vn(e.pipe),K$=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||vn(e.append)&&((t=rc(e))==="formdata"||t==="object"&&vn(e.toString)&&e.toString()==="[object FormData]"))},V$=Jn("URLSearchParams"),X$=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function js(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,i;if(typeof e!="object"&&(e=[e]),Eo(e))for(r=0,i=e.length;r0;)if(i=n[r],t===i.toLowerCase())return i;return null}const oy=(()=>typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global)(),sy=e=>!Is(e)&&e!==oy;function Iu(){const{caseless:e}=sy(this)&&this||{},t={},n=(r,i)=>{const o=e&&iy(t,i)||i;Ta(t[o])&&Ta(r)?t[o]=Iu(t[o],r):Ta(r)?t[o]=Iu({},r):Eo(r)?t[o]=r.slice():t[o]=r};for(let r=0,i=arguments.length;r(js(t,(i,o)=>{n&&vn(i)?e[o]=ty(i,n):e[o]=i},{allOwnKeys:r}),e),Q$=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),q$=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},J$=(e,t,n,r)=>{let i,o,s;const h={};if(t=t||{},e==null)return t;do{for(i=Object.getOwnPropertyNames(e),o=i.length;o-- >0;)s=i[o],(!r||r(s,e,t))&&!h[s]&&(t[s]=e[s],h[s]=!0);e=n!==!1&&uf(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},Z$=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},ex=e=>{if(!e)return null;if(Eo(e))return e;let t=e.length;if(!ry(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},tx=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&uf(Uint8Array)),nx=(e,t)=>{const r=(e&&e[Symbol.iterator]).call(e);let i;for(;(i=r.next())&&!i.done;){const o=i.value;t.call(e,o[0],o[1])}},rx=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},ix=Jn("HTMLFormElement"),ox=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,i){return r.toUpperCase()+i}),up=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),sx=Jn("RegExp"),ay=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};js(n,(i,o)=>{let s;(s=t(i,o,e))!==!1&&(r[o]=s||i)}),Object.defineProperties(e,r)},ax=e=>{ay(e,(t,n)=>{if(vn(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(vn(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},lx=(e,t)=>{const n={},r=i=>{i.forEach(o=>{n[o]=!0})};return Eo(e)?r(e):r(String(e).split(t)),n},cx=()=>{},ux=(e,t)=>(e=+e,Number.isFinite(e)?e:t),Fc="abcdefghijklmnopqrstuvwxyz",hp="0123456789",ly={DIGIT:hp,ALPHA:Fc,ALPHA_DIGIT:Fc+Fc.toUpperCase()+hp},hx=(e=16,t=ly.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n};function fx(e){return!!(e&&vn(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const dx=e=>{const t=new Array(10),n=(r,i)=>{if(oc(r)){if(t.indexOf(r)>=0)return;if(!("toJSON"in r)){t[i]=r;const o=Eo(r)?[]:{};return js(r,(s,h)=>{const l=n(s,i+1);!Is(l)&&(o[h]=l)}),t[i]=void 0,o}}return r};return n(e,0)},px=Jn("AsyncFunction"),gx=e=>e&&(oc(e)||vn(e))&&vn(e.then)&&vn(e.catch),ce={isArray:Eo,isArrayBuffer:ny,isBuffer:N$,isFormData:K$,isArrayBufferView:B$,isString:F$,isNumber:ry,isBoolean:G$,isObject:oc,isPlainObject:Ta,isUndefined:Is,isDate:H$,isFile:W$,isBlob:z$,isRegExp:sx,isFunction:vn,isStream:U$,isURLSearchParams:V$,isTypedArray:tx,isFileList:j$,forEach:js,merge:Iu,extend:Y$,trim:X$,stripBOM:Q$,inherits:q$,toFlatObject:J$,kindOf:rc,kindOfTest:Jn,endsWith:Z$,toArray:ex,forEachEntry:nx,matchAll:rx,isHTMLForm:ix,hasOwnProperty:up,hasOwnProp:up,reduceDescriptors:ay,freezeMethods:ax,toObjectSet:lx,toCamelCase:ox,noop:cx,toFiniteNumber:ux,findKey:iy,global:oy,isContextDefined:sy,ALPHABET:ly,generateString:hx,isSpecCompliantForm:fx,toJSONObject:dx,isAsyncFn:px,isThenable:gx};function Je(e,t,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i)}ce.inherits(Je,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:ce.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const cy=Je.prototype,uy={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{uy[e]={value:e}});Object.defineProperties(Je,uy);Object.defineProperty(cy,"isAxiosError",{value:!0});Je.from=(e,t,n,r,i,o)=>{const s=Object.create(cy);return ce.toFlatObject(e,s,function(l){return l!==Error.prototype},h=>h!=="isAxiosError"),Je.call(s,e.message,t,n,r,i),s.cause=e,s.name=e.name,o&&Object.assign(s,o),s};const mx=null;function Au(e){return ce.isPlainObject(e)||ce.isArray(e)}function hy(e){return ce.endsWith(e,"[]")?e.slice(0,-2):e}function fp(e,t,n){return e?e.concat(t).map(function(i,o){return i=hy(i),!n&&o?"["+i+"]":i}).join(n?".":""):t}function vx(e){return ce.isArray(e)&&!e.some(Au)}const yx=ce.toFlatObject(ce,{},null,function(t){return/^is[A-Z]/.test(t)});function sc(e,t,n){if(!ce.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=ce.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(g,m){return!ce.isUndefined(m[g])});const r=n.metaTokens,i=n.visitor||a,o=n.dots,s=n.indexes,l=(n.Blob||typeof Blob<"u"&&Blob)&&ce.isSpecCompliantForm(t);if(!ce.isFunction(i))throw new TypeError("visitor must be a function");function u(p){if(p===null)return"";if(ce.isDate(p))return p.toISOString();if(!l&&ce.isBlob(p))throw new Je("Blob is not supported. Use a Buffer instead.");return ce.isArrayBuffer(p)||ce.isTypedArray(p)?l&&typeof Blob=="function"?new Blob([p]):Buffer.from(p):p}function a(p,g,m){let v=p;if(p&&!m&&typeof p=="object"){if(ce.endsWith(g,"{}"))g=r?g:g.slice(0,-2),p=JSON.stringify(p);else if(ce.isArray(p)&&vx(p)||(ce.isFileList(p)||ce.endsWith(g,"[]"))&&(v=ce.toArray(p)))return g=hy(g),v.forEach(function(x,$){!(ce.isUndefined(x)||x===null)&&t.append(s===!0?fp([g],$,o):s===null?g:g+"[]",u(x))}),!1}return Au(p)?!0:(t.append(fp(m,g,o),u(p)),!1)}const c=[],f=Object.assign(yx,{defaultVisitor:a,convertValue:u,isVisitable:Au});function d(p,g){if(!ce.isUndefined(p)){if(c.indexOf(p)!==-1)throw Error("Circular reference detected in "+g.join("."));c.push(p),ce.forEach(p,function(v,y){(!(ce.isUndefined(v)||v===null)&&i.call(t,v,ce.isString(y)?y.trim():y,g,f))===!0&&d(v,g?g.concat(y):[y])}),c.pop()}}if(!ce.isObject(e))throw new TypeError("data must be an object");return d(e),t}function dp(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function hf(e,t){this._pairs=[],e&&sc(e,this,t)}const fy=hf.prototype;fy.append=function(t,n){this._pairs.push([t,n])};fy.toString=function(t){const n=t?function(r){return t.call(this,r,dp)}:dp;return this._pairs.map(function(i){return n(i[0])+"="+n(i[1])},"").join("&")};function wx(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function dy(e,t,n){if(!t)return e;const r=n&&n.encode||wx,i=n&&n.serialize;let o;if(i?o=i(t,n):o=ce.isURLSearchParams(t)?t.toString():new hf(t,n).toString(r),o){const s=e.indexOf("#");s!==-1&&(e=e.slice(0,s)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class bx{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){ce.forEach(this.handlers,function(r){r!==null&&t(r)})}}const pp=bx,py={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},_x=typeof URLSearchParams<"u"?URLSearchParams:hf,Ex=typeof FormData<"u"?FormData:null,$x=typeof Blob<"u"?Blob:null,xx={isBrowser:!0,classes:{URLSearchParams:_x,FormData:Ex,Blob:$x},protocols:["http","https","file","blob","url","data"]},gy=typeof window<"u"&&typeof document<"u",Sx=(e=>gy&&["ReactNative","NativeScript","NS"].indexOf(e)<0)(typeof navigator<"u"&&navigator.product),Cx=(()=>typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function")(),Lx=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:gy,hasStandardBrowserEnv:Sx,hasStandardBrowserWebWorkerEnv:Cx},Symbol.toStringTag,{value:"Module"})),Kn={...Lx,...xx};function Mx(e,t){return sc(e,new Kn.classes.URLSearchParams,Object.assign({visitor:function(n,r,i,o){return Kn.isNode&&ce.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)}},t))}function Tx(e){return ce.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Ox(e){const t={},n=Object.keys(e);let r;const i=n.length;let o;for(r=0;r=n.length;return s=!s&&ce.isArray(i)?i.length:s,l?(ce.hasOwnProp(i,s)?i[s]=[i[s],r]:i[s]=r,!h):((!i[s]||!ce.isObject(i[s]))&&(i[s]=[]),t(n,r,i[s],o)&&ce.isArray(i[s])&&(i[s]=Ox(i[s])),!h)}if(ce.isFormData(e)&&ce.isFunction(e.entries)){const n={};return ce.forEachEntry(e,(r,i)=>{t(Tx(r),i,n,0)}),n}return null}function kx(e,t,n){if(ce.isString(e))try{return(t||JSON.parse)(e),ce.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const ff={transitional:py,adapter:["xhr","http"],transformRequest:[function(t,n){const r=n.getContentType()||"",i=r.indexOf("application/json")>-1,o=ce.isObject(t);if(o&&ce.isHTMLForm(t)&&(t=new FormData(t)),ce.isFormData(t))return i&&i?JSON.stringify(my(t)):t;if(ce.isArrayBuffer(t)||ce.isBuffer(t)||ce.isStream(t)||ce.isFile(t)||ce.isBlob(t))return t;if(ce.isArrayBufferView(t))return t.buffer;if(ce.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let h;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return Mx(t,this.formSerializer).toString();if((h=ce.isFileList(t))||r.indexOf("multipart/form-data")>-1){const l=this.env&&this.env.FormData;return sc(h?{"files[]":t}:t,l&&new l,this.formSerializer)}}return o||i?(n.setContentType("application/json",!1),kx(t)):t}],transformResponse:[function(t){const n=this.transitional||ff.transitional,r=n&&n.forcedJSONParsing,i=this.responseType==="json";if(t&&ce.isString(t)&&(r&&!this.responseType||i)){const s=!(n&&n.silentJSONParsing)&&i;try{return JSON.parse(t)}catch(h){if(s)throw h.name==="SyntaxError"?Je.from(h,Je.ERR_BAD_RESPONSE,this,null,this.response):h}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Kn.classes.FormData,Blob:Kn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};ce.forEach(["delete","get","head","post","put","patch"],e=>{ff.headers[e]={}});const df=ff,Rx=ce.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Dx=e=>{const t={};let n,r,i;return e&&e.split(` -`).forEach(function(s){i=s.indexOf(":"),n=s.substring(0,i).trim().toLowerCase(),r=s.substring(i+1).trim(),!(!n||t[n]&&Rx[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},gp=Symbol("internals");function Go(e){return e&&String(e).trim().toLowerCase()}function Oa(e){return e===!1||e==null?e:ce.isArray(e)?e.map(Oa):String(e)}function Ix(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const Ax=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Gc(e,t,n,r,i){if(ce.isFunction(r))return r.call(this,t,n);if(i&&(t=n),!!ce.isString(t)){if(ce.isString(r))return t.indexOf(r)!==-1;if(ce.isRegExp(r))return r.test(t)}}function Px(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Nx(e,t){const n=ce.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(i,o,s){return this[r].call(this,t,i,o,s)},configurable:!0})})}class ac{constructor(t){t&&this.set(t)}set(t,n,r){const i=this;function o(h,l,u){const a=Go(l);if(!a)throw new Error("header name must be a non-empty string");const c=ce.findKey(i,a);(!c||i[c]===void 0||u===!0||u===void 0&&i[c]!==!1)&&(i[c||l]=Oa(h))}const s=(h,l)=>ce.forEach(h,(u,a)=>o(u,a,l));return ce.isPlainObject(t)||t instanceof this.constructor?s(t,n):ce.isString(t)&&(t=t.trim())&&!Ax(t)?s(Dx(t),n):t!=null&&o(n,t,r),this}get(t,n){if(t=Go(t),t){const r=ce.findKey(this,t);if(r){const i=this[r];if(!n)return i;if(n===!0)return Ix(i);if(ce.isFunction(n))return n.call(this,i,r);if(ce.isRegExp(n))return n.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=Go(t),t){const r=ce.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Gc(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let i=!1;function o(s){if(s=Go(s),s){const h=ce.findKey(r,s);h&&(!n||Gc(r,r[h],h,n))&&(delete r[h],i=!0)}}return ce.isArray(t)?t.forEach(o):o(t),i}clear(t){const n=Object.keys(this);let r=n.length,i=!1;for(;r--;){const o=n[r];(!t||Gc(this,this[o],o,t,!0))&&(delete this[o],i=!0)}return i}normalize(t){const n=this,r={};return ce.forEach(this,(i,o)=>{const s=ce.findKey(r,o);if(s){n[s]=Oa(i),delete n[o];return}const h=t?Px(o):String(o).trim();h!==o&&delete n[o],n[h]=Oa(i),r[h]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return ce.forEach(this,(r,i)=>{r!=null&&r!==!1&&(n[i]=t&&ce.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` -`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(i=>r.set(i)),r}static accessor(t){const r=(this[gp]=this[gp]={accessors:{}}).accessors,i=this.prototype;function o(s){const h=Go(s);r[h]||(Nx(i,s),r[h]=!0)}return ce.isArray(t)?t.forEach(o):o(t),this}}ac.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);ce.reduceDescriptors(ac.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});ce.freezeMethods(ac);const cr=ac;function Hc(e,t){const n=this||df,r=t||n,i=cr.from(r.headers);let o=r.data;return ce.forEach(e,function(h){o=h.call(n,o,i.normalize(),t?t.status:void 0)}),i.normalize(),o}function vy(e){return!!(e&&e.__CANCEL__)}function Us(e,t,n){Je.call(this,e??"canceled",Je.ERR_CANCELED,t,n),this.name="CanceledError"}ce.inherits(Us,Je,{__CANCEL__:!0});function Bx(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new Je("Request failed with status code "+n.status,[Je.ERR_BAD_REQUEST,Je.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}const Fx=Kn.hasStandardBrowserEnv?{write(e,t,n,r,i,o){const s=[e+"="+encodeURIComponent(t)];ce.isNumber(n)&&s.push("expires="+new Date(n).toGMTString()),ce.isString(r)&&s.push("path="+r),ce.isString(i)&&s.push("domain="+i),o===!0&&s.push("secure"),document.cookie=s.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function Gx(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function Hx(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}function yy(e,t){return e&&!Gx(t)?Hx(e,t):t}const Wx=Kn.hasStandardBrowserEnv?function(){const t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");let r;function i(o){let s=o;return t&&(n.setAttribute("href",s),s=n.href),n.setAttribute("href",s),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:n.pathname.charAt(0)==="/"?n.pathname:"/"+n.pathname}}return r=i(window.location.href),function(s){const h=ce.isString(s)?i(s):s;return h.protocol===r.protocol&&h.host===r.host}}():function(){return function(){return!0}}();function zx(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function jx(e,t){e=e||10;const n=new Array(e),r=new Array(e);let i=0,o=0,s;return t=t!==void 0?t:1e3,function(l){const u=Date.now(),a=r[o];s||(s=u),n[i]=l,r[i]=u;let c=o,f=0;for(;c!==i;)f+=n[c++],c=c%e;if(i=(i+1)%e,i===o&&(o=(o+1)%e),u-s{const o=i.loaded,s=i.lengthComputable?i.total:void 0,h=o-n,l=r(h),u=o<=s;n=o;const a={loaded:o,total:s,progress:s?o/s:void 0,bytes:h,rate:l||void 0,estimated:l&&s&&u?(s-o)/l:void 0,event:i};a[t?"download":"upload"]=!0,e(a)}}const Ux=typeof XMLHttpRequest<"u",Kx=Ux&&function(e){return new Promise(function(n,r){let i=e.data;const o=cr.from(e.headers).normalize();let{responseType:s,withXSRFToken:h}=e,l;function u(){e.cancelToken&&e.cancelToken.unsubscribe(l),e.signal&&e.signal.removeEventListener("abort",l)}let a;if(ce.isFormData(i)){if(Kn.hasStandardBrowserEnv||Kn.hasStandardBrowserWebWorkerEnv)o.setContentType(!1);else if((a=o.getContentType())!==!1){const[g,...m]=a?a.split(";").map(v=>v.trim()).filter(Boolean):[];o.setContentType([g||"multipart/form-data",...m].join("; "))}}let c=new XMLHttpRequest;if(e.auth){const g=e.auth.username||"",m=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";o.set("Authorization","Basic "+btoa(g+":"+m))}const f=yy(e.baseURL,e.url);c.open(e.method.toUpperCase(),dy(f,e.params,e.paramsSerializer),!0),c.timeout=e.timeout;function d(){if(!c)return;const g=cr.from("getAllResponseHeaders"in c&&c.getAllResponseHeaders()),v={data:!s||s==="text"||s==="json"?c.responseText:c.response,status:c.status,statusText:c.statusText,headers:g,config:e,request:c};Bx(function(x){n(x),u()},function(x){r(x),u()},v),c=null}if("onloadend"in c?c.onloadend=d:c.onreadystatechange=function(){!c||c.readyState!==4||c.status===0&&!(c.responseURL&&c.responseURL.indexOf("file:")===0)||setTimeout(d)},c.onabort=function(){c&&(r(new Je("Request aborted",Je.ECONNABORTED,e,c)),c=null)},c.onerror=function(){r(new Je("Network Error",Je.ERR_NETWORK,e,c)),c=null},c.ontimeout=function(){let m=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const v=e.transitional||py;e.timeoutErrorMessage&&(m=e.timeoutErrorMessage),r(new Je(m,v.clarifyTimeoutError?Je.ETIMEDOUT:Je.ECONNABORTED,e,c)),c=null},Kn.hasStandardBrowserEnv&&(h&&ce.isFunction(h)&&(h=h(e)),h||h!==!1&&Wx(f))){const g=e.xsrfHeaderName&&e.xsrfCookieName&&Fx.read(e.xsrfCookieName);g&&o.set(e.xsrfHeaderName,g)}i===void 0&&o.setContentType(null),"setRequestHeader"in c&&ce.forEach(o.toJSON(),function(m,v){c.setRequestHeader(v,m)}),ce.isUndefined(e.withCredentials)||(c.withCredentials=!!e.withCredentials),s&&s!=="json"&&(c.responseType=e.responseType),typeof e.onDownloadProgress=="function"&&c.addEventListener("progress",mp(e.onDownloadProgress,!0)),typeof e.onUploadProgress=="function"&&c.upload&&c.upload.addEventListener("progress",mp(e.onUploadProgress)),(e.cancelToken||e.signal)&&(l=g=>{c&&(r(!g||g.type?new Us(null,e,c):g),c.abort(),c=null)},e.cancelToken&&e.cancelToken.subscribe(l),e.signal&&(e.signal.aborted?l():e.signal.addEventListener("abort",l)));const p=zx(f);if(p&&Kn.protocols.indexOf(p)===-1){r(new Je("Unsupported protocol "+p+":",Je.ERR_BAD_REQUEST,e));return}c.send(i||null)})},Pu={http:mx,xhr:Kx};ce.forEach(Pu,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const vp=e=>`- ${e}`,Vx=e=>ce.isFunction(e)||e===null||e===!1,wy={getAdapter:e=>{e=ce.isArray(e)?e:[e];const{length:t}=e;let n,r;const i={};for(let o=0;o`adapter ${h} `+(l===!1?"is not supported by the environment":"is not available in the build"));let s=t?o.length>1?`since : -`+o.map(vp).join(` -`):" "+vp(o[0]):"as no adapter specified";throw new Je("There is no suitable adapter to dispatch the request "+s,"ERR_NOT_SUPPORT")}return r},adapters:Pu};function Wc(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Us(null,e)}function yp(e){return Wc(e),e.headers=cr.from(e.headers),e.data=Hc.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),wy.getAdapter(e.adapter||df.adapter)(e).then(function(r){return Wc(e),r.data=Hc.call(e,e.transformResponse,r),r.headers=cr.from(r.headers),r},function(r){return vy(r)||(Wc(e),r&&r.response&&(r.response.data=Hc.call(e,e.transformResponse,r.response),r.response.headers=cr.from(r.response.headers))),Promise.reject(r)})}const wp=e=>e instanceof cr?e.toJSON():e;function io(e,t){t=t||{};const n={};function r(u,a,c){return ce.isPlainObject(u)&&ce.isPlainObject(a)?ce.merge.call({caseless:c},u,a):ce.isPlainObject(a)?ce.merge({},a):ce.isArray(a)?a.slice():a}function i(u,a,c){if(ce.isUndefined(a)){if(!ce.isUndefined(u))return r(void 0,u,c)}else return r(u,a,c)}function o(u,a){if(!ce.isUndefined(a))return r(void 0,a)}function s(u,a){if(ce.isUndefined(a)){if(!ce.isUndefined(u))return r(void 0,u)}else return r(void 0,a)}function h(u,a,c){if(c in t)return r(u,a);if(c in e)return r(void 0,u)}const l={url:o,method:o,data:o,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,withXSRFToken:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,beforeRedirect:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,responseEncoding:s,validateStatus:h,headers:(u,a)=>i(wp(u),wp(a),!0)};return ce.forEach(Object.keys(Object.assign({},e,t)),function(a){const c=l[a]||i,f=c(e[a],t[a],a);ce.isUndefined(f)&&c!==h||(n[a]=f)}),n}const by="1.6.2",pf={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{pf[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const bp={};pf.transitional=function(t,n,r){function i(o,s){return"[Axios v"+by+"] Transitional option '"+o+"'"+s+(r?". "+r:"")}return(o,s,h)=>{if(t===!1)throw new Je(i(s," has been removed"+(n?" in "+n:"")),Je.ERR_DEPRECATED);return n&&!bp[s]&&(bp[s]=!0,console.warn(i(s," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,s,h):!0}};function Xx(e,t,n){if(typeof e!="object")throw new Je("options must be an object",Je.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let i=r.length;for(;i-- >0;){const o=r[i],s=t[o];if(s){const h=e[o],l=h===void 0||s(h,o,e);if(l!==!0)throw new Je("option "+o+" must be "+l,Je.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Je("Unknown option "+o,Je.ERR_BAD_OPTION)}}const Nu={assertOptions:Xx,validators:pf},$r=Nu.validators;class rl{constructor(t){this.defaults=t,this.interceptors={request:new pp,response:new pp}}request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=io(this.defaults,n);const{transitional:r,paramsSerializer:i,headers:o}=n;r!==void 0&&Nu.assertOptions(r,{silentJSONParsing:$r.transitional($r.boolean),forcedJSONParsing:$r.transitional($r.boolean),clarifyTimeoutError:$r.transitional($r.boolean)},!1),i!=null&&(ce.isFunction(i)?n.paramsSerializer={serialize:i}:Nu.assertOptions(i,{encode:$r.function,serialize:$r.function},!0)),n.method=(n.method||this.defaults.method||"get").toLowerCase();let s=o&&ce.merge(o.common,o[n.method]);o&&ce.forEach(["delete","get","head","post","put","patch","common"],p=>{delete o[p]}),n.headers=cr.concat(s,o);const h=[];let l=!0;this.interceptors.request.forEach(function(g){typeof g.runWhen=="function"&&g.runWhen(n)===!1||(l=l&&g.synchronous,h.unshift(g.fulfilled,g.rejected))});const u=[];this.interceptors.response.forEach(function(g){u.push(g.fulfilled,g.rejected)});let a,c=0,f;if(!l){const p=[yp.bind(this),void 0];for(p.unshift.apply(p,h),p.push.apply(p,u),f=p.length,a=Promise.resolve(n);c{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](i);r._listeners=null}),this.promise.then=i=>{let o;const s=new Promise(h=>{r.subscribe(h),o=h}).then(i);return s.cancel=function(){r.unsubscribe(o)},s},t(function(o,s,h){r.reason||(r.reason=new Us(o,s,h),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}static source(){let t;return{token:new gf(function(i){t=i}),cancel:t}}}const Yx=gf;function Qx(e){return function(n){return e.apply(null,n)}}function qx(e){return ce.isObject(e)&&e.isAxiosError===!0}const Bu={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Bu).forEach(([e,t])=>{Bu[t]=e});const Jx=Bu;function _y(e){const t=new ka(e),n=ty(ka.prototype.request,t);return ce.extend(n,ka.prototype,t,{allOwnKeys:!0}),ce.extend(n,t,null,{allOwnKeys:!0}),n.create=function(i){return _y(io(e,i))},n}const Dt=_y(df);Dt.Axios=ka;Dt.CanceledError=Us;Dt.CancelToken=Yx;Dt.isCancel=vy;Dt.VERSION=by;Dt.toFormData=sc;Dt.AxiosError=Je;Dt.Cancel=Dt.CanceledError;Dt.all=function(t){return Promise.all(t)};Dt.spread=Qx;Dt.isAxiosError=qx;Dt.mergeConfig=io;Dt.AxiosHeaders=cr;Dt.formToJSON=e=>my(ce.isHTMLForm(e)?new FormData(e):e);Dt.getAdapter=wy.getAdapter;Dt.HttpStatusCode=Jx;Dt.default=Dt;const vi=Dt,Zx=()=>({isLoading:!1,currentTask:null,taskMode:null,layoutSize:"lg",currentNode:null,previousNode:null,rootNode:null,topology:[],edges:{},nodes:{},taskData:{},taskReplay:{steps:[],mouse:[],panning:[],zooming:[],meta:{}},restoredFromReplay:!1}),eS=(e,t)=>{const n=h=>{const l={start:new Date().getTime(),duration:0,end:0,date:""};return Object.values(h).forEach(u=>{if(!u.length)return;const a=u[0].timestamp,c=u[u.length-1].timestamp;al.end&&(l.end=c)}),l.duration=l.end-l.start,l.date=new Date().toISOString(),l},r=e.currentTask,i=0,{duration:o,date:s}=n(t);return{task:r,completion:i,date:s,duration:o}},il={...Zx()},tS={RESET(e){e.taskData={},e.taskReplay={steps:[],mouse:[],panning:[],zooming:[],meta:{}}},TOGGLE_LOADING(e){e.isLoading=!e.isLoading},SET_PROPERTY(e,t){const{path:n,value:r}=t;if(typeof n!="string")throw new Error(`Path is not a string: ${n}`);const i=n.split("__");let o=e,s=!1;for(let h=0;h{e("TRACK_MOUSE",t)},trackPanning:async({commit:e},t)=>{e("TRACK_PANNING",t)},trackZooming:async({commit:e},t)=>{e("TRACK_ZOOMING",t)},storeReplay:async()=>{const e=il.taskReplay;e.meta=eS(il,e);const t=await vi.post("/api/storeReplay",{replay:JSON.stringify(e)});console.log(t)},setRestoredFromReplay:async({commit:e})=>{e("RESTORED_FROM_REPLAY")},resetStore:async({commit:e})=>{e("RESET")},fetchTaskData:async({commit:e,dispatch:t},n)=>{const{endpoint:r,payload:i}=n,o=await vi.post(`/api/${r}`,{...i,language:"de"});Object.entries(JSON.parse(o.data)).forEach(([s,h])=>{e("SET_PROPERTY",{path:`taskData__${s}`,value:h})})},fetchTaskGraph:async({commit:e},t)=>{try{e("TOGGLE_LOADING"),e("RESET");const n=await vi.post("/api/fetchTaskGraph",t),{UI:r}=JSON.parse(n.data),{topology:i,edges:o,nodes:s,rootNode:h,taskMode:l}=r;e("SET_PROPERTY",{path:"topology",value:i}),e("SET_PROPERTY",{path:"edges",value:o}),e("SET_PROPERTY",{path:"nodes",value:s}),e("SET_PROPERTY",{path:"rootNode",value:h}),e("SET_PROPERTY",{path:"currentNode",value:h}),e("SET_PROPERTY",{path:"taskMode",value:l}),e("TOGGLE_LOADING")}catch(n){console.log(n),e("TOGGLE_LOADING")}},setPropertyFromPath:async({commit:e},t)=>{e("SET_PROPERTY",t)}},rS={getPropertyFromPath:e=>t=>{if(typeof t!="string")throw new Error(`Path is not a string: ${t}`);return t.split("__").reduce((r,i)=>{if(r&&Object.keys(r).includes(i))return r[i];if(r)return null;throw new Error(`Property not found in store: ${i}, ${r}, ${t}`)},e)}},iS=e=>{if(typeof e!="string")throw new Error(`Path is not a string: ${e}`);const t=e.split("__");let n=il,r=!0;for(let i=0;i{try{const n=await vi.post("/api/fetchReplay",t),{replay:r}=JSON.parse(n.data);e("SET_PROPERTY",{path:"taskReplay",value:JSON.parse(r)})}catch{}},clearState:async({commit:e})=>{for(let[t,n]of Object.entries($y))e("SET_PROPERTY",{path:t,value:n})},setPropertyFromPath:async({commit:e},t)=>{e("SET_PROPERTY",t)}},lS={getPropertyFromPath:e=>t=>t.split("__").reduce((r,i)=>r&&Object.keys(r).includes(i)?r[i]:null,e)},cS=zs({state:oS,mutations:sS,actions:aS,getters:lS,plugins:[ey()]}),uS={isLoading:!1,currentTask:"Dummy",layoutSize:"lg",currentNode:0,previousNode:0,rootNode:0,topology:[],edges:{},nodes:{0:{zoomScale:1,interjections:[{method:"matrixSelfMultiplication",dependencies:{baseMatrix:"nodes__0__components__1",n:"taskData__longestPath"}}],layouts:{sm:[],md:[],lg:[{x:32,y:30,w:2,h:2,i:0,static:!1},{x:34,y:30,w:2,h:2,i:1,static:!1}]},hints:{active:!1,current:0,descriptions:["Bestimme anhand der Parameter die Komplexität des zu generierenden Gozintographen.",'Viel Erfolg!

']},components:{0:{name:"Direktbedarfsmatrix",type:"Matrix",isValid:!1,dependencies:{Matrix:{data:"taskData__adjacencyMatrix"}},methods:{fillZeros:"Ergänze Nullen",showSolution:"Zeige Lösung",copyToClipboard:"Kopieren"},component:{initialize:{validation:{operations:[],paths:["taskData__adjacencyMatrix"]},user:{operations:[{name:"getValueInitializedMatrix",args:[null]}],paths:["taskData__adjacencyMatrix"]}},userData:null,solutionData:null,readOnly:!1,rowLabel:"taskData__labelVector",columnLabel:"taskData__labelVector"}},1:{type:"TaskConfiguration",name:"Konfiguration",isValid:!1,component:{title:"Parameter Konfiguration",actions:[{instruction:"generateGraph",type:"fetchData",label:"Generieren!",dependsOn:["nodeAmount","edgeWeightRange","nodeValueRange","edgeDensity"]}],form:{nodeAmount:{formType:"ValueFormField",label:"Knotenanzahl",type:"number",step:1,boundaries:{min:5,max:30},description:"Bestimmt die Menge der Knoten",value:10,validate:!0,presets:{easy:5,medium:10,hard:20}},edgeWeightRange:{formType:"RangeFormField",label:"Kantengewichte",type:"number",description:"Bestimmt den Wertebereich der Kantengewichte",boundaries:{min:1,max:200},step:1,initial:{lowerValue:1,upperValue:10},presets:{easy:[2,10],medium:3,hard:5}},nodeValueRange:{formType:"RangeFormField",label:"Knotenwerte",type:"number",description:"Bestimmt den Wertebereich der Knotenwerte",boundaries:{min:1,max:200},step:1,initial:{lowerValue:1,upperValue:10},presets:{easy:2,medium:3,hard:5}},edgeDensity:{formType:"ValueFormField",label:"Kantendichte",type:"number",step:.01,boundaries:{min:0,max:1},description:"Bestimmt die Anzahl an Kanten",value:.3,validate:!0,presets:{easy:.2,medium:.3,hard:.5}},seed:{formType:"ValueFormField",label:"Seed",type:"text",description:"Setze einen beliebigen Wert um die Generierung deterministisch und reproduzierbar zu machen",value:"",validate:!1,presets:{easy:"",medium:"",hard:""}}}}}}}},taskData:{labelVector:["K0","K1","R0","R1","P0","B0","B1","P1"],adjacencyMatrix:[["0","0","0","0","0","0","0","0"],["0","0","0","0","0","0","0","0"],["0","0","0","0","0","0","0","0"],["0","0","0","0","0","0","0","0"],["0","0","5","8","0","0","0","0"],["0","3","0","0","0","0","0","0"],["4","5","0","0","0","10","0","0"],["0","0","0","9","0","0","14","0"]]}},hS={SET_PROPERTY(e,t){const{path:n,value:r}=t,i=n.split("__");let o=e;for(let s=0;s{const{endpoint:n,payload:r}=t,i=await vi.post(`/api/${n}`,r);e("SET_PROPERTY",{path:"taskData",value:JSON.parse(i.data)})},fetchTaskGraph:async({commit:e},t)=>{try{const n=await vi.post("/api/fetchTaskGraph",t),{UI:r}=JSON.parse(n.data),{topology:i,edges:o,nodes:s,rootNode:h}=r;e("SET_PROPERTY",{path:"topology",value:i}),e("SET_PROPERTY",{path:"edges",value:o}),e("SET_PROPERTY",{path:"nodes",value:s}),e("SET_PROPERTY",{path:"rootNode",value:h}),e("SET_PROPERTY",{path:"currentNode",value:h})}catch{}},setPropertyFromPath:async({commit:e},t)=>{e("SET_PROPERTY",t)}},dS={getPropertyFromPath:e=>t=>t.split("__").reduce((r,i)=>r&&Object.keys(r).includes(i)?r[i]:null,e)},pS=zs({state:uS,mutations:hS,actions:fS,getters:dS,plugins:[ey()]}),gS={taskStore:Ey,replayStore:cS,configurationStore:pS},mS=e=>{const t=r=>i=>r.getters.getPropertyFromPath(i),n=r=>i=>r.dispatch("setPropertyFromPath",i);return Object.entries(e).reduce((r,[i,o])=>{const s=i;return r[s]={store:o,getProperty:t(o),setProperty:n(o)},r},{})},xy=mS(gS);(function(){const e="on",t="out",n="body",r="stop",i="click",o="apply",s="target",h="prototype",l="Propagation",u="setAttribute",a="relatedTarget",c="addEventListener",f=Symbol(t),d=Object,p=document,g=typeof TouchEvent<"u"?TouchEvent:void 0,m=HTMLElement,v=m[h],y=Event[h],x=[i,"dbl"+i,"mousedown","mouseup","touchstart","touchend","pointerdown","pointerup"],$=new Set(x),_=new Set(x.map(z=>e+z+t)),b=(z,F)=>!!F&&z instanceof F,R=(z,F)=>z.contains(F),M=(z,F)=>{for(let W of z)F(W)},k=z=>{b(z,m)&&(z[f]?E(z):M($,F=>{let W=e+F+t,G=z.getAttribute(W);G&&!S(z)[W]&&z[u](W,G)}),M(z.childNodes,k))},S=z=>z[f]=z[f]||{},E=z=>{S(z),N.includes(z)||(N.push(z),B=!0)},I=(z,F)=>R(F,z)?1:R(z,F)?-1:0,C=z=>{B&&(N.sort(I),B=!1);let F=z[s];b(z,g)?(z=new g(z.type+t,z))[a]=F:z=new z.constructor(z.type+t,d.assign({},z,{[a]:F})),z[r]=[],M(N,W=>{R(W,F)||z[r].some(G=>R(G,W))||W.dispatchEvent(z)})},w=z=>function(){let F=this,W=F.type;z[o](F),_.has(e+W)&&F[r].push(F[s])},T=(z,F,W)=>z[F]=W(z[F]);function O(z){let F=this[f][e+z.type];F&&F[o](this,[z])}let N=[],B=!1,H=p.createElement(n);M($,z=>{p[c](z,C,{passive:!0,capture:!0});let F=e+z+t;d.defineProperty(v,F,{get(){return this[f][F]},set(W){this[c](z+t,O),this[f][F]=typeof W=="object"?W.handleEvent:W}})}),T(v,c,z=>function(...F){_.has(e+F[0])&&E(this),z[o](this,F)}),T(v,u,z=>function(F,W){_.has(F)?(z[o](H,[e+i,W]),this[F]=H[e+i]):z[o](this,[F,W])}),T(y,r+l,w),T(y,r+"Immediate"+l,w),new MutationObserver(z=>{M(z,F=>{M(F.addedNodes,k),M(F.removedNodes,W=>{b(W,m)&&(N=N.filter(G=>!R(W,G)))})})}).observe(p.documentElement,{childList:!0,subtree:!0}),k(p[n])})();const vS={setup(){const e=xy.taskStore,{store:t}=e,n=m$();let r=!1;return{openCloseHandler:h=>{const l=h.currentTarget,u=l.parentNode;r===!1?(u.classList.remove("closed"),u.classList.add("open"),l.querySelector("p").innerHTML="✕"):(u.classList.remove("open"),u.classList.add("closed"),l.querySelector("p").innerHTML="☰"),r=!r},options:[{label:"Home",icon:"🏠",class:"home",handler:()=>{n.push({name:"TaskOverview"})}},{label:"Settings",icon:"⚙",class:"settings",handler:()=>{n.push({name:"Settings"})}},{label:"Statistic",icon:"📊",class:"statistics",handler:()=>{n.push({name:"Statistic"})}},{label:"Save replay",icon:"💾",class:"replay",handler:()=>{t.dispatch("storeReplay")}}],closeHandler:()=>{const h=document.querySelector(".menu");h.classList.add("closed"),h.classList.remove("open"),h.querySelector("p").innerHTML="☰",r=!1}}}};const Ke=(e,t)=>{const n=e.__vccOpts||e;for(const[r,i]of t)n[r]=i;return n},yS=e=>($i("data-v-48098402"),e=e(),xi(),e),wS={class:"menu closed"},bS=yS(()=>_e("p",null,"☰",-1)),_S=[bS],ES={class:"menuOptions"},$S=["onClick"],xS=["innerHTML"],SS={class:"menu__option--tooltip"};function CS(e,t,n,r,i,o){return ue(),ve("div",wS,[_e("div",{class:"menuBubble",onClick:t[0]||(t[0]=(...s)=>r.openCloseHandler&&r.openCloseHandler(...s)),onClickout:t[1]||(t[1]=(...s)=>r.closeHandler&&r.closeHandler(...s))},_S,32),_e("div",ES,[(ue(!0),ve(je,null,ut(r.options,(s,h)=>(ue(),ve("div",{class:kt(`menu__option ${s.class}`),key:h,onClick:s.handler},[_e("div",{class:"menu__option--icon",innerHTML:s.icon},null,8,xS),_e("div",SS,rt(s.label),1)],10,$S))),128))])])}const LS=Ke(vS,[["render",CS],["__scopeId","data-v-48098402"]]),MS={components:{RadialMenu:LS},setup(){return{}}};function TS(e,t,n,r,i,o){const s=pt("RadialMenu"),h=pt("router-view");return ue(),ve(je,null,[tt(s),tt(h)],64)}const OS=Ke(MS,[["render",TS]]),kS="modulepreload",RS=function(e){return"/"+e},_p={},Jr=function(t,n,r){if(!n||n.length===0)return t();const i=document.getElementsByTagName("link");return Promise.all(n.map(o=>{if(o=RS(o),o in _p)return;_p[o]=!0;const s=o.endsWith(".css"),h=s?'[rel="stylesheet"]':"";if(!!r)for(let a=i.length-1;a>=0;a--){const c=i[a];if(c.href===o&&(!s||c.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${o}"]${h}`))return;const u=document.createElement("link");if(u.rel=s?"stylesheet":kS,s||(u.as="script",u.crossOrigin=""),u.href=o,document.head.appendChild(u),s)return new Promise((a,c)=>{u.addEventListener("load",a),u.addEventListener("error",()=>c(new Error(`Unable to preload CSS for ${o}`)))})})).then(()=>t())},DS={taskList:Ei([])},IS={SET_TASK_LIST(e,t){e.taskList=t.map(n=>({name:n}))}},AS={async fetchTasks({commit:e}){const t=await vi.get("/api/fetchTasklist");e("SET_TASK_LIST",JSON.parse(t.data))}},PS={},Fu=zs({state:DS,mutations:IS,actions:AS,getters:PS}),NS={setup(){const e=xy.taskStore.store,t=we(()=>Fu.state.taskList),n=(o,s=300)=>{if(!t.value.length)return;const h=o[0].offsetWidth/2,l=window.innerWidth/2-h,u=window.innerHeight/2-h,a=Math.PI*2/o.length;let c=0,f=0,d=0;o.forEach(p=>{c=s*Math.cos(d)+l,f=s*Math.sin(d)+u,p.style.left=`${c}px`,p.style.top=`${f}px`,p.style.opacity="1",d+=a})},r=o=>{const s=o.offsetWidth/2,h=window.innerWidth/2-s,l=window.innerHeight/2-s;o.style.left=`${h}px`,o.style.top=`${l}px`},i=()=>{const o=document.querySelector(".center");r(o),setTimeout(()=>{const s=Array.from(document.querySelectorAll(".taskOverview_taskNode"));n(s)},5)};return lv(()=>{Fu.dispatch("fetchTasks"),e.dispatch("resetStore")}),Ht(()=>{i()}),St(t,o=>{i()}),{taskList:t}}};const BS=e=>($i("data-v-0baf423b"),e=e(),xi(),e),FS={class:"taskOverview"},GS=BS(()=>_e("div",{class:"center node"},"ALADIN",-1));function HS(e,t,n,r,i,o){const s=pt("router-link");return ue(),ve("div",FS,[GS,(ue(!0),ve(je,null,ut(r.taskList,h=>(ue(),Rt(s,{class:"taskOverview_taskNode node",key:h.name,to:`/task/${h.name}`},{default:cn(()=>[ef(rt(h.name),1)]),_:2},1032,["to"]))),128))])}const WS=Ke(NS,[["render",HS],["__scopeId","data-v-0baf423b"]]),zS=[{path:"/",name:"TaskOverview",component:WS},{path:"/task/:task",name:"Task",component:()=>Jr(()=>import("./Task-1a73f8cd.js"),["assets/Task-1a73f8cd.js","assets/DecisionNode-89ad19b5.js","assets/index-8ac73e8f.js","assets/DecisionNode-f3816282.css","assets/Task-1392d80c.css"])},{path:"/settings",name:"Settings",component:()=>Jr(()=>import("./Settings-6fa90251.js"),["assets/Settings-6fa90251.js","assets/index-8ac73e8f.js","assets/Settings-ad2b85f9.css"])},{path:"/editor",name:"Editor",component:()=>Jr(()=>import("./Configurator-eccce552.js"),["assets/Configurator-eccce552.js","assets/DecisionNode-89ad19b5.js","assets/index-8ac73e8f.js","assets/DecisionNode-f3816282.css","assets/Configurator-3e260c40.css"])},{path:"/replays",name:"Replays",component:()=>Jr(()=>import("./ReplayOverview-097d28d8.js"),["assets/ReplayOverview-097d28d8.js","assets/ReplayOverview-0c74b5e2.css"])},{path:"/replays",name:"Replays",component:()=>Jr(()=>import("./ReplayOverview-097d28d8.js"),["assets/ReplayOverview-097d28d8.js","assets/ReplayOverview-0c74b5e2.css"])},{path:"/replay/:id",name:"Replay",component:()=>Jr(()=>import("./Replay-17dbc327.js"),["assets/Replay-17dbc327.js","assets/DecisionNode-89ad19b5.js","assets/index-8ac73e8f.js","assets/DecisionNode-f3816282.css","assets/Replay-c5a30d44.css"])},{path:"/test",name:"Test",component:()=>Jr(()=>import("./ComponentTest-78e86ddd.js"),["assets/ComponentTest-78e86ddd.js","assets/ComponentTest-d5ebcacd.css"])}],jS=p$({history:OE(),routes:zS}),US=zs({modules:{taskGraph:Ey,taskOverview:Fu}});function pr(e){"@babel/helpers - typeof";return pr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},pr(e)}function KS(e,t){if(pr(e)!=="object"||e===null)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(pr(r)!=="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Sy(e){var t=KS(e,"string");return pr(t)==="symbol"?t:String(t)}function oo(e,t,n){return t=Sy(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function VS(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Ep(e,t){for(var n=0;n=0)return 1;return 0}();function QS(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}function qS(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},YS))}}var JS=Ks&&window.Promise,ZS=JS?QS:qS;function Cy(e){var t={};return e&&t.toString.call(e)==="[object Function]"}function Ci(e,t){if(e.nodeType!==1)return[];var n=e.ownerDocument.defaultView,r=n.getComputedStyle(e,null);return t?r[t]:r}function mf(e){return e.nodeName==="HTML"?e:e.parentNode||e.host}function Vs(e){if(!e)return document.body;switch(e.nodeName){case"HTML":case"BODY":return e.ownerDocument.body;case"#document":return e.body}var t=Ci(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/(auto|scroll|overlay)/.test(n+i+r)?e:Vs(mf(e))}function Ly(e){return e&&e.referenceNode?e.referenceNode:e}var $p=Ks&&!!(window.MSInputMethodContext&&document.documentMode),xp=Ks&&/MSIE 10/.test(navigator.userAgent);function $o(e){return e===11?$p:e===10?xp:$p||xp}function so(e){if(!e)return document.documentElement;for(var t=$o(10)?document.body:null,n=e.offsetParent||null;n===t&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var r=n&&n.nodeName;return!r||r==="BODY"||r==="HTML"?e?e.ownerDocument.documentElement:document.documentElement:["TH","TD","TABLE"].indexOf(n.nodeName)!==-1&&Ci(n,"position")==="static"?so(n):n}function eC(e){var t=e.nodeName;return t==="BODY"?!1:t==="HTML"||so(e.firstElementChild)===e}function Gu(e){return e.parentNode!==null?Gu(e.parentNode):e}function ol(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var n=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,r=n?e:t,i=n?t:e,o=document.createRange();o.setStart(r,0),o.setEnd(i,0);var s=o.commonAncestorContainer;if(e!==s&&t!==s||r.contains(i))return eC(s)?s:so(s);var h=Gu(e);return h.host?ol(h.host,t):ol(e,Gu(t).host)}function ao(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"top",n=t==="top"?"scrollTop":"scrollLeft",r=e.nodeName;if(r==="BODY"||r==="HTML"){var i=e.ownerDocument.documentElement,o=e.ownerDocument.scrollingElement||i;return o[n]}return e[n]}function tC(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=ao(t,"top"),i=ao(t,"left"),o=n?-1:1;return e.top+=r*o,e.bottom+=r*o,e.left+=i*o,e.right+=i*o,e}function Sp(e,t){var n=t==="x"?"Left":"Top",r=n==="Left"?"Right":"Bottom";return parseFloat(e["border"+n+"Width"])+parseFloat(e["border"+r+"Width"])}function Cp(e,t,n,r){return Math.max(t["offset"+e],t["scroll"+e],n["client"+e],n["offset"+e],n["scroll"+e],$o(10)?parseInt(n["offset"+e])+parseInt(r["margin"+(e==="Height"?"Top":"Left")])+parseInt(r["margin"+(e==="Height"?"Bottom":"Right")]):0)}function My(e){var t=e.body,n=e.documentElement,r=$o(10)&&getComputedStyle(n);return{height:Cp("Height",t,n,r),width:Cp("Width",t,n,r)}}var nC=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},rC=function(){function e(t,n){for(var r=0;r2&&arguments[2]!==void 0?arguments[2]:!1,r=$o(10),i=t.nodeName==="HTML",o=Hu(e),s=Hu(t),h=Vs(e),l=Ci(t),u=parseFloat(l.borderTopWidth),a=parseFloat(l.borderLeftWidth);n&&i&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var c=Fr({top:o.top-s.top-u,left:o.left-s.left-a,width:o.width,height:o.height});if(c.marginTop=0,c.marginLeft=0,!r&&i){var f=parseFloat(l.marginTop),d=parseFloat(l.marginLeft);c.top-=u-f,c.bottom-=u-f,c.left-=a-d,c.right-=a-d,c.marginTop=f,c.marginLeft=d}return(r&&!n?t.contains(h):t===h&&h.nodeName!=="BODY")&&(c=tC(c,t)),c}function iC(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,n=e.ownerDocument.documentElement,r=vf(e,n),i=Math.max(n.clientWidth,window.innerWidth||0),o=Math.max(n.clientHeight,window.innerHeight||0),s=t?0:ao(n),h=t?0:ao(n,"left"),l={top:s-r.top+r.marginTop,left:h-r.left+r.marginLeft,width:i,height:o};return Fr(l)}function Ty(e){var t=e.nodeName;if(t==="BODY"||t==="HTML")return!1;if(Ci(e,"position")==="fixed")return!0;var n=mf(e);return n?Ty(n):!1}function Oy(e){if(!e||!e.parentElement||$o())return document.documentElement;for(var t=e.parentElement;t&&Ci(t,"transform")==="none";)t=t.parentElement;return t||document.documentElement}function yf(e,t,n,r){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1,o={top:0,left:0},s=i?Oy(e):ol(e,Ly(t));if(r==="viewport")o=iC(s,i);else{var h=void 0;r==="scrollParent"?(h=Vs(mf(t)),h.nodeName==="BODY"&&(h=e.ownerDocument.documentElement)):r==="window"?h=e.ownerDocument.documentElement:h=r;var l=vf(h,s,i);if(h.nodeName==="HTML"&&!Ty(s)){var u=My(e.ownerDocument),a=u.height,c=u.width;o.top+=l.top-l.marginTop,o.bottom=a+l.top,o.left+=l.left-l.marginLeft,o.right=c+l.left}else o=l}n=n||0;var f=typeof n=="number";return o.left+=f?n:n.left||0,o.top+=f?n:n.top||0,o.right-=f?n:n.right||0,o.bottom-=f?n:n.bottom||0,o}function oC(e){var t=e.width,n=e.height;return t*n}function ky(e,t,n,r,i){var o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:0;if(e.indexOf("auto")===-1)return e;var s=yf(n,r,o,i),h={top:{width:s.width,height:t.top-s.top},right:{width:s.right-t.right,height:s.height},bottom:{width:s.width,height:s.bottom-t.bottom},left:{width:t.left-s.left,height:s.height}},l=Object.keys(h).map(function(f){return pn({key:f},h[f],{area:oC(h[f])})}).sort(function(f,d){return d.area-f.area}),u=l.filter(function(f){var d=f.width,p=f.height;return d>=n.clientWidth&&p>=n.clientHeight}),a=u.length>0?u[0].key:l[0].key,c=e.split("-")[1];return a+(c?"-"+c:"")}function Ry(e,t,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null,i=r?Oy(t):ol(t,Ly(n));return vf(n,i,r)}function Dy(e){var t=e.ownerDocument.defaultView,n=t.getComputedStyle(e),r=parseFloat(n.marginTop||0)+parseFloat(n.marginBottom||0),i=parseFloat(n.marginLeft||0)+parseFloat(n.marginRight||0),o={width:e.offsetWidth+i,height:e.offsetHeight+r};return o}function sl(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,function(n){return t[n]})}function Iy(e,t,n){n=n.split("-")[0];var r=Dy(e),i={width:r.width,height:r.height},o=["right","left"].indexOf(n)!==-1,s=o?"top":"left",h=o?"left":"top",l=o?"height":"width",u=o?"width":"height";return i[s]=t[s]+t[l]/2-r[l]/2,n===h?i[h]=t[h]-r[u]:i[h]=t[sl(h)],i}function Xs(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function sC(e,t,n){if(Array.prototype.findIndex)return e.findIndex(function(i){return i[t]===n});var r=Xs(e,function(i){return i[t]===n});return e.indexOf(r)}function Ay(e,t,n){var r=n===void 0?e:e.slice(0,sC(e,"name",n));return r.forEach(function(i){i.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var o=i.function||i.fn;i.enabled&&Cy(o)&&(t.offsets.popper=Fr(t.offsets.popper),t.offsets.reference=Fr(t.offsets.reference),t=o(t,i))}),t}function aC(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=Ry(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=ky(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=Iy(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",e=Ay(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function Py(e,t){return e.some(function(n){var r=n.name,i=n.enabled;return i&&r===t})}function wf(e){for(var t=[!1,"ms","Webkit","Moz","O"],n=e.charAt(0).toUpperCase()+e.slice(1),r=0;rs[d]&&(e.offsets.popper[c]+=h[c]+p-s[d]),e.offsets.popper=Fr(e.offsets.popper);var g=h[c]+h[u]/2-p/2,m=Ci(e.instance.popper),v=parseFloat(m["margin"+a]),y=parseFloat(m["border"+a+"Width"]),x=g-e.offsets.popper[c]-v-y;return x=Math.max(Math.min(s[u]-p,x),0),e.arrowElement=r,e.offsets.arrow=(n={},lo(n,c,Math.round(x)),lo(n,f,""),n),e}function bC(e){return e==="end"?"start":e==="start"?"end":e}var Gy=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],zc=Gy.slice(3);function Lp(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,n=zc.indexOf(e),r=zc.slice(n+1).concat(zc.slice(0,n));return t?r.reverse():r}var jc={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};function _C(e,t){if(Py(e.instance.modifiers,"inner")||e.flipped&&e.placement===e.originalPlacement)return e;var n=yf(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),r=e.placement.split("-")[0],i=sl(r),o=e.placement.split("-")[1]||"",s=[];switch(t.behavior){case jc.FLIP:s=[r,i];break;case jc.CLOCKWISE:s=Lp(r);break;case jc.COUNTERCLOCKWISE:s=Lp(r,!0);break;default:s=t.behavior}return s.forEach(function(h,l){if(r!==h||s.length===l+1)return e;r=e.placement.split("-")[0],i=sl(r);var u=e.offsets.popper,a=e.offsets.reference,c=Math.floor,f=r==="left"&&c(u.right)>c(a.left)||r==="right"&&c(u.left)c(a.top)||r==="bottom"&&c(u.top)c(n.right),g=c(u.top)c(n.bottom),v=r==="left"&&d||r==="right"&&p||r==="top"&&g||r==="bottom"&&m,y=["top","bottom"].indexOf(r)!==-1,x=!!t.flipVariations&&(y&&o==="start"&&d||y&&o==="end"&&p||!y&&o==="start"&&g||!y&&o==="end"&&m),$=!!t.flipVariationsByContent&&(y&&o==="start"&&p||y&&o==="end"&&d||!y&&o==="start"&&m||!y&&o==="end"&&g),_=x||$;(f||v||_)&&(e.flipped=!0,(f||v)&&(r=s[l+1]),_&&(o=bC(o)),e.placement=r+(o?"-"+o:""),e.offsets.popper=pn({},e.offsets.popper,Iy(e.instance.popper,e.offsets.reference,e.placement)),e=Ay(e.instance.modifiers,e,"flip"))}),e}function EC(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],o=Math.floor,s=["top","bottom"].indexOf(i)!==-1,h=s?"right":"bottom",l=s?"left":"top",u=s?"width":"height";return n[h]o(r[h])&&(e.offsets.popper[l]=o(r[h])),e}function $C(e,t,n,r){var i=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),o=+i[1],s=i[2];if(!o)return e;if(s.indexOf("%")===0){var h=void 0;switch(s){case"%p":h=n;break;case"%":case"%r":default:h=r}var l=Fr(h);return l[t]/100*o}else if(s==="vh"||s==="vw"){var u=void 0;return s==="vh"?u=Math.max(document.documentElement.clientHeight,window.innerHeight||0):u=Math.max(document.documentElement.clientWidth,window.innerWidth||0),u/100*o}else return o}function xC(e,t,n,r){var i=[0,0],o=["right","left"].indexOf(r)!==-1,s=e.split(/(\+|\-)/).map(function(a){return a.trim()}),h=s.indexOf(Xs(s,function(a){return a.search(/,|\s/)!==-1}));s[h]&&s[h].indexOf(",")===-1&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,u=h!==-1?[s.slice(0,h).concat([s[h].split(l)[0]]),[s[h].split(l)[1]].concat(s.slice(h+1))]:[s];return u=u.map(function(a,c){var f=(c===1?!o:o)?"height":"width",d=!1;return a.reduce(function(p,g){return p[p.length-1]===""&&["+","-"].indexOf(g)!==-1?(p[p.length-1]=g,d=!0,p):d?(p[p.length-1]+=g,d=!1,p):p.concat(g)},[]).map(function(p){return $C(p,f,t,n)})}),u.forEach(function(a,c){a.forEach(function(f,d){bf(f)&&(i[c]+=f*(a[d-1]==="-"?-1:1))})}),i}function SC(e,t){var n=t.offset,r=e.placement,i=e.offsets,o=i.popper,s=i.reference,h=r.split("-")[0],l=void 0;return bf(+n)?l=[+n,0]:l=xC(n,o,s,h),h==="left"?(o.top+=l[0],o.left-=l[1]):h==="right"?(o.top+=l[0],o.left+=l[1]):h==="top"?(o.left+=l[0],o.top-=l[1]):h==="bottom"&&(o.left+=l[0],o.top+=l[1]),e.popper=o,e}function CC(e,t){var n=t.boundariesElement||so(e.instance.popper);e.instance.reference===n&&(n=so(n));var r=wf("transform"),i=e.instance.popper.style,o=i.top,s=i.left,h=i[r];i.top="",i.left="",i[r]="";var l=yf(e.instance.popper,e.instance.reference,t.padding,n,e.positionFixed);i.top=o,i.left=s,i[r]=h,t.boundaries=l;var u=t.priority,a=e.offsets.popper,c={primary:function(d){var p=a[d];return a[d]l[d]&&!t.escapeWithReference&&(g=Math.min(a[p],l[d]-(d==="right"?a.width:a.height))),lo({},p,g)}};return u.forEach(function(f){var d=["left","top"].indexOf(f)!==-1?"primary":"secondary";a=pn({},a,c[d](f))}),e.offsets.popper=a,e}function LC(e){var t=e.placement,n=t.split("-")[0],r=t.split("-")[1];if(r){var i=e.offsets,o=i.reference,s=i.popper,h=["bottom","top"].indexOf(n)!==-1,l=h?"left":"top",u=h?"width":"height",a={start:lo({},l,o[l]),end:lo({},l,o[l]+o[u]-s[u])};e.offsets.popper=pn({},s,a[r])}return e}function MC(e){if(!Fy(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=Xs(e.instance.modifiers,function(r){return r.name==="preventOverflow"}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right2&&arguments[2]!==void 0?arguments[2]:{};nC(this,e),this.scheduleUpdate=function(){return requestAnimationFrame(r.update)},this.update=ZS(this.update.bind(this)),this.options=pn({},e.Defaults,i),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(pn({},e.Defaults.modifiers,i.modifiers)).forEach(function(s){r.options.modifiers[s]=pn({},e.Defaults.modifiers[s]||{},i.modifiers?i.modifiers[s]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(s){return pn({name:s},r.options.modifiers[s])}).sort(function(s,h){return s.order-h.order}),this.modifiers.forEach(function(s){s.enabled&&Cy(s.onLoad)&&s.onLoad(r.reference,r.popper,r.options,s,r.state)}),this.update();var o=this.options.eventsEnabled;o&&this.enableEventListeners(),this.state.eventsEnabled=o}return rC(e,[{key:"update",value:function(){return aC.call(this)}},{key:"destroy",value:function(){return lC.call(this)}},{key:"enableEventListeners",value:function(){return uC.call(this)}},{key:"disableEventListeners",value:function(){return fC.call(this)}}]),e}();lc.Utils=(typeof window<"u"?window:global).PopperUtils;lc.placements=Gy;lc.Defaults=kC;const Hy=lc;var ts=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Li(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function RC(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function r(){if(this instanceof r){var i=[null];i.push.apply(i,arguments);var o=Function.bind.apply(t,i);return new o}return t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(r){var i=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,i.get?i:{enumerable:!0,get:function(){return e[r]}})}),n}function DC(){this.__data__=[],this.size=0}var IC=DC;function AC(e,t){return e===t||e!==e&&t!==t}var Ys=AC,PC=Ys;function NC(e,t){for(var n=e.length;n--;)if(PC(e[n][0],t))return n;return-1}var cc=NC,BC=cc,FC=Array.prototype,GC=FC.splice;function HC(e){var t=this.__data__,n=BC(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():GC.call(t,n,1),--this.size,!0}var WC=HC,zC=cc;function jC(e){var t=this.__data__,n=zC(t,e);return n<0?void 0:t[n][1]}var UC=jC,KC=cc;function VC(e){return KC(this.__data__,e)>-1}var XC=VC,YC=cc;function QC(e,t){var n=this.__data__,r=YC(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var qC=QC,JC=IC,ZC=WC,eL=UC,tL=XC,nL=qC;function xo(e){var t=-1,n=e==null?0:e.length;for(this.clear();++th))return!1;var u=o.get(e),a=o.get(t);if(u&&a)return u==t&&a==e;var c=-1,f=!0,d=n&HT?new NT:void 0;for(o.set(e,t),o.set(t,e);++c-1&&e%1==0&&e-1&&e%1==0&&e<=XO}var Jy=YO,QO=Qs,qO=Jy,JO=Mo,ZO="[object Arguments]",ek="[object Array]",tk="[object Boolean]",nk="[object Date]",rk="[object Error]",ik="[object Function]",ok="[object Map]",sk="[object Number]",ak="[object Object]",lk="[object RegExp]",ck="[object Set]",uk="[object String]",hk="[object WeakMap]",fk="[object ArrayBuffer]",dk="[object DataView]",pk="[object Float32Array]",gk="[object Float64Array]",mk="[object Int8Array]",vk="[object Int16Array]",yk="[object Int32Array]",wk="[object Uint8Array]",bk="[object Uint8ClampedArray]",_k="[object Uint16Array]",Ek="[object Uint32Array]",ht={};ht[pk]=ht[gk]=ht[mk]=ht[vk]=ht[yk]=ht[wk]=ht[bk]=ht[_k]=ht[Ek]=!0;ht[ZO]=ht[ek]=ht[fk]=ht[tk]=ht[dk]=ht[nk]=ht[rk]=ht[ik]=ht[ok]=ht[sk]=ht[ak]=ht[lk]=ht[ck]=ht[uk]=ht[hk]=!1;function $k(e){return JO(e)&&qO(e.length)&&!!ht[QO(e)]}var xk=$k;function Sk(e){return function(t){return e(t)}}var Ck=Sk,cl={exports:{}};cl.exports;(function(e,t){var n=Wy,r=t&&!t.nodeType&&t,i=r&&!0&&e&&!e.nodeType&&e,o=i&&i.exports===r,s=o&&n.process,h=function(){try{var l=i&&i.require&&i.require("util").types;return l||s&&s.binding&&s.binding("util")}catch{}}();e.exports=h})(cl,cl.exports);var Lk=cl.exports,Mk=xk,Tk=Ck,Fp=Lk,Gp=Fp&&Fp.isTypedArray,Ok=Gp?Tk(Gp):Mk,Sf=Ok,kk=RO,Rk=Qy,Dk=dc,Ik=xf,Ak=qy,Pk=Sf,Nk=Object.prototype,Bk=Nk.hasOwnProperty;function Fk(e,t){var n=Dk(e),r=!n&&Rk(e),i=!n&&!r&&Ik(e),o=!n&&!r&&!i&&Pk(e),s=n||r||i||o,h=s?kk(e.length,String):[],l=h.length;for(var u in e)(t||Bk.call(e,u))&&!(s&&(u=="length"||i&&(u=="offset"||u=="parent")||o&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||Ak(u,l)))&&h.push(u);return h}var Zy=Fk,Gk=Object.prototype;function Hk(e){var t=e&&e.constructor,n=typeof t=="function"&&t.prototype||Gk;return e===n}var Cf=Hk;function Wk(e,t){return function(n){return e(t(n))}}var ew=Wk,zk=ew,jk=zk(Object.keys,Object),Uk=jk,Kk=Cf,Vk=Uk,Xk=Object.prototype,Yk=Xk.hasOwnProperty;function Qk(e){if(!Kk(e))return Vk(e);var t=[];for(var n in Object(e))Yk.call(e,n)&&n!="constructor"&&t.push(n);return t}var qk=Qk,Jk=Ef,Zk=Jy;function eR(e){return e!=null&&Zk(e.length)&&!Jk(e)}var pc=eR,tR=Zy,nR=qk,rR=pc;function iR(e){return rR(e)?tR(e):nR(e)}var oR=iR,sR=bO,aR=OO,lR=oR;function cR(e){return sR(e,lR,aR)}var uR=cR,Hp=uR,hR=1,fR=Object.prototype,dR=fR.hasOwnProperty;function pR(e,t,n,r,i,o){var s=n&hR,h=Hp(e),l=h.length,u=Hp(t),a=u.length;if(l!=a&&!s)return!1;for(var c=l;c--;){var f=h[c];if(!(s?f in t:dR.call(t,f)))return!1}var d=o.get(e),p=o.get(t);if(d&&p)return d==t&&p==e;var g=!0;o.set(e,t),o.set(t,e);for(var m=s;++c0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);var n=e.indexOf("Trident/");if(n>0){var r=e.indexOf("rv:");return parseInt(e.substring(r+3,e.indexOf(".",r)),10)}var i=e.indexOf("Edge/");return i>0?parseInt(e.substring(i+5,e.indexOf(".",i)),10):-1}var Ra;function Xu(){Xu.init||(Xu.init=!0,Ra=ZR()!==-1)}var eD={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},mounted:function(){var t=this;Xu(),this.$nextTick(function(){t._w=t.$el.offsetWidth,t._h=t.$el.offsetHeight,t.emitOnMount&&t.emitSize()});var n=document.createElement("object");this._resizeObject=n,n.setAttribute("aria-hidden","true"),n.setAttribute("tabindex",-1),n.onload=this.addResizeHandlers,n.type="text/html",Ra&&this.$el.appendChild(n),n.data="about:blank",Ra||this.$el.appendChild(n)},beforeDestroy:function(){this.removeResizeHandlers()},methods:{compareAndNotify:function(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize:function(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers:function(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers:function(){this._resizeObject&&this._resizeObject.onload&&(!Ra&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}};function tD(e,t,n,r,i,o,s,h,l,u){typeof s!="boolean"&&(l=h,h=s,s=!1);var a=typeof n=="function"?n.options:n;e&&e.render&&(a.render=e.render,a.staticRenderFns=e.staticRenderFns,a._compiled=!0,i&&(a.functional=!0)),r&&(a._scopeId=r);var c;if(o?(c=function(g){g=g||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,!g&&typeof __VUE_SSR_CONTEXT__<"u"&&(g=__VUE_SSR_CONTEXT__),t&&t.call(this,l(g)),g&&g._registeredComponents&&g._registeredComponents.add(o)},a._ssrRegister=c):t&&(c=s?function(p){t.call(this,u(p,this.$root.$options.shadowRoot))}:function(p){t.call(this,h(p))}),c)if(a.functional){var f=a.render;a.render=function(g,m){return c.call(m),f(g,m)}}else{var d=a.beforeCreate;a.beforeCreate=d?[].concat(d,c):[c]}return n}var nD=eD,rw=function(){var t=this,n=t.$createElement,r=t._self._c||n;return r("div",{staticClass:"resize-observer",attrs:{tabindex:"-1"}})},rD=[];rw._withStripped=!0;var iD=void 0,oD="data-v-8859cc6c",sD=void 0,aD=!1,Yu=tD({render:rw,staticRenderFns:rD},iD,nD,oD,aD,sD,!1,void 0,void 0,void 0);function lD(e){e.component("resize-observer",Yu),e.component("ResizeObserver",Yu)}var cD={version:"1.0.1",install:lD},ul=null;typeof window<"u"?ul=window.Vue:typeof global<"u"&&(ul=global.Vue);ul&&ul.use(cD);var uD=Ti,hD=function(){try{var e=uD(Object,"defineProperty");return e({},"",{}),e}catch{}}(),iw=hD,eg=iw;function fD(e,t,n){t=="__proto__"&&eg?eg(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}var Lf=fD,dD=Lf,pD=Ys;function gD(e,t,n){(n!==void 0&&!pD(e[t],n)||n===void 0&&!(t in e))&&dD(e,t,n)}var ow=gD;function mD(e){return function(t,n,r){for(var i=-1,o=Object(t),s=r(t),h=s.length;h--;){var l=s[e?h:++i];if(n(o[l],l,o)===!1)break}return t}}var vD=mD,yD=vD,wD=yD(),bD=wD,hl={exports:{}};hl.exports;(function(e,t){var n=Zn,r=t&&!t.nodeType&&t,i=r&&!0&&e&&!e.nodeType&&e,o=i&&i.exports===r,s=o?n.Buffer:void 0,h=s?s.allocUnsafe:void 0;function l(u,a){if(a)return u.slice();var c=u.length,f=h?h(c):new u.constructor(c);return u.copy(f),f}e.exports=l})(hl,hl.exports);var _D=hl.exports,tg=Xy;function ED(e){var t=new e.constructor(e.byteLength);return new tg(t).set(new tg(e)),t}var $D=ED,xD=$D;function SD(e,t){var n=t?xD(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}var CD=SD;function LD(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n0){if(++t>=sA)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var uA=cA,hA=oA,fA=uA,dA=fA(hA),pA=dA,gA=hw,mA=ZI,vA=pA;function yA(e,t){return vA(mA(e,t,gA),e+"")}var wA=yA,bA=Ys,_A=pc,EA=qy,$A=Mi;function xA(e,t,n){if(!$A(n))return!1;var r=typeof t;return(r=="number"?_A(n)&&EA(t,n.length):r=="string"&&t in n)?bA(n[t],e):!1}var SA=xA,CA=wA,LA=SA;function MA(e){return CA(function(t,n){var r=-1,i=n.length,o=i>1?n[i-1]:void 0,s=i>2?n[2]:void 0;for(o=e.length>3&&typeof o=="function"?(i--,o):void 0,s&&LA(n[0],n[1],s)&&(o=i<3?void 0:o,i=1),t=Object(t);++r
',trigger:"hover focus",offset:0},ws=[],NA=function(){function e(t,n){var r=this;VS(this,e),oo(this,"_events",[]),oo(this,"_setTooltipNodeEvent",function(i,o,s,h){var l=i.relatedreference||i.toElement||i.relatedTarget,u=function a(c){var f=c.relatedreference||c.toElement||c.relatedTarget;r._tooltipNode.removeEventListener(i.type,a),o.contains(f)||r._scheduleHide(o,h.delay,h,c)};return r._tooltipNode.contains(l)?(r._tooltipNode.addEventListener(i.type,u),!0):!1}),n=Ai(Ai({},PA),n),t.jquery&&(t=t[0]),this.show=this.show.bind(this),this.hide=this.hide.bind(this),this.reference=t,this.options=n,this._isOpen=!1,this._init()}return XS(e,[{key:"show",value:function(){this._show(this.reference,this.options)}},{key:"hide",value:function(){this._hide()}},{key:"dispose",value:function(){this._dispose()}},{key:"toggle",value:function(){return this._isOpen?this.hide():this.show()}},{key:"setClasses",value:function(n){this._classes=n}},{key:"setContent",value:function(n){this.options.title=n,this._tooltipNode&&this._setContent(n,this.options)}},{key:"setOptions",value:function(n){var r=!1,i=n&&n.classes||nt.options.defaultClass;JR(this._classes,i)||(this.setClasses(i),r=!0),n=dw(n);var o=!1,s=!1;(this.options.offset!==n.offset||this.options.placement!==n.placement)&&(o=!0),(this.options.template!==n.template||this.options.trigger!==n.trigger||this.options.container!==n.container||r)&&(s=!0);for(var h in n)this.options[h]=n[h];if(this._tooltipNode)if(s){var l=this._isOpen;this.dispose(),this._init(),l&&this.show()}else o&&this.popperInstance.update()}},{key:"_init",value:function(){var n=typeof this.options.trigger=="string"?this.options.trigger.split(" "):[];this._isDisposed=!1,this._enableDocumentTouch=n.indexOf("manual")===-1,n=n.filter(function(r){return["click","hover","focus"].indexOf(r)!==-1}),this._setEventListeners(this.reference,n,this.options),this.$_originalTitle=this.reference.getAttribute("title"),this.reference.removeAttribute("title"),this.reference.setAttribute("data-original-title",this.$_originalTitle)}},{key:"_create",value:function(n,r){var i=this,o=window.document.createElement("div");o.innerHTML=r.trim();var s=o.childNodes[0];return s.id=this.options.ariaId||"tooltip_".concat(Math.random().toString(36).substr(2,10)),s.setAttribute("aria-hidden","true"),this.options.autoHide&&this.options.trigger.indexOf("hover")!==-1&&(s.addEventListener("mouseenter",function(h){return i._scheduleHide(n,i.options.delay,i.options,h)}),s.addEventListener("click",function(h){return i._scheduleHide(n,i.options.delay,i.options,h)})),s}},{key:"_setContent",value:function(n,r){var i=this;this.asyncContent=!1,this._applyContent(n,r).then(function(){i.popperInstance&&i.popperInstance.update()})}},{key:"_applyContent",value:function(n,r){var i=this;return new Promise(function(o,s){var h=r.html,l=i._tooltipNode;if(l){var u=l.querySelector(i.options.innerSelector);if(n.nodeType===1){if(h){for(;u.firstChild;)u.removeChild(u.firstChild);u.appendChild(n)}}else if(typeof n=="function"){var a=n();a&&typeof a.then=="function"?(i.asyncContent=!0,r.loadingClass&&ns(l,r.loadingClass),r.loadingContent&&i._applyContent(r.loadingContent,r),a.then(function(c){return r.loadingClass&&Qu(l,r.loadingClass),i._applyContent(c,r)}).then(o).catch(s)):i._applyContent(a,r).then(o).catch(s);return}else h?u.innerHTML=n:u.innerText=n;o()}})}},{key:"_show",value:function(n,r){if(r&&typeof r.container=="string"){var i=document.querySelector(r.container);if(!i)return}clearTimeout(this._disposeTimer),r=Object.assign({},r),delete r.offset;var o=!0;this._tooltipNode&&(ns(this._tooltipNode,this._classes),o=!1);var s=this._ensureShown(n,r);return o&&this._tooltipNode&&ns(this._tooltipNode,this._classes),ns(n,["v-tooltip-open"]),s}},{key:"_ensureShown",value:function(n,r){var i=this;if(this._isOpen)return this;if(this._isOpen=!0,ws.push(this),this._tooltipNode)return this._tooltipNode.style.display="",this._tooltipNode.setAttribute("aria-hidden","false"),this.popperInstance.enableEventListeners(),this.popperInstance.update(),this.asyncContent&&this._setContent(r.title,r),this;var o=n.getAttribute("title")||r.title;if(!o)return this;var s=this._create(n,r.template);this._tooltipNode=s,n.setAttribute("aria-describedby",s.id);var h=this._findContainer(r.container,n);this._append(s,h);var l=Ai(Ai({},r.popperOptions),{},{placement:r.placement});return l.modifiers=Ai(Ai({},l.modifiers),{},{arrow:{element:this.options.arrowSelector}}),r.boundariesElement&&(l.modifiers.preventOverflow={boundariesElement:r.boundariesElement}),this.popperInstance=new Hy(n,s,l),this._setContent(o,r),requestAnimationFrame(function(){!i._isDisposed&&i.popperInstance?(i.popperInstance.update(),requestAnimationFrame(function(){i._isDisposed?i.dispose():i._isOpen&&s.setAttribute("aria-hidden","false")})):i.dispose()}),this}},{key:"_noLongerOpen",value:function(){var n=ws.indexOf(this);n!==-1&&ws.splice(n,1)}},{key:"_hide",value:function(){var n=this;if(!this._isOpen)return this;this._isOpen=!1,this._noLongerOpen(),this._tooltipNode.style.display="none",this._tooltipNode.setAttribute("aria-hidden","true"),this.popperInstance&&this.popperInstance.disableEventListeners(),clearTimeout(this._disposeTimer);var r=nt.options.disposeTimeout;return r!==null&&(this._disposeTimer=setTimeout(function(){n._tooltipNode&&(n._tooltipNode.removeEventListener("mouseenter",n.hide),n._tooltipNode.removeEventListener("click",n.hide),n._removeTooltipNode())},r)),Qu(this.reference,["v-tooltip-open"]),this}},{key:"_removeTooltipNode",value:function(){if(this._tooltipNode){var n=this._tooltipNode.parentNode;n&&(n.removeChild(this._tooltipNode),this.reference.removeAttribute("aria-describedby")),this._tooltipNode=null}}},{key:"_dispose",value:function(){var n=this;return this._isDisposed=!0,this.reference.removeAttribute("data-original-title"),this.$_originalTitle&&this.reference.setAttribute("title",this.$_originalTitle),this._events.forEach(function(r){var i=r.func,o=r.event;n.reference.removeEventListener(o,i)}),this._events=[],this._tooltipNode?(this._hide(),this._tooltipNode.removeEventListener("mouseenter",this.hide),this._tooltipNode.removeEventListener("click",this.hide),this.popperInstance.destroy(),this.popperInstance.options.removeOnDestroy||this._removeTooltipNode()):this._noLongerOpen(),this}},{key:"_findContainer",value:function(n,r){return typeof n=="string"?n=window.document.querySelector(n):n===!1&&(n=r.parentNode),n}},{key:"_append",value:function(n,r){r.appendChild(n)}},{key:"_setEventListeners",value:function(n,r,i){var o=this,s=[],h=[];r.forEach(function(l){switch(l){case"hover":s.push("mouseenter"),h.push("mouseleave"),o.options.hideOnTargetClick&&h.push("click");break;case"focus":s.push("focus"),h.push("blur"),o.options.hideOnTargetClick&&h.push("click");break;case"click":s.push("click"),h.push("click");break}}),s.forEach(function(l){var u=function(c){o._isOpen!==!0&&(c.usedByTooltip=!0,o._scheduleShow(n,i.delay,i,c))};o._events.push({event:l,func:u}),n.addEventListener(l,u)}),h.forEach(function(l){var u=function(c){c.usedByTooltip!==!0&&o._scheduleHide(n,i.delay,i,c)};o._events.push({event:l,func:u}),n.addEventListener(l,u)})}},{key:"_onDocumentTouch",value:function(n){this._enableDocumentTouch&&this._scheduleHide(this.reference,this.options.delay,this.options,n)}},{key:"_scheduleShow",value:function(n,r,i){var o=this,s=r&&r.show||r||0;clearTimeout(this._scheduleTimer),this._scheduleTimer=window.setTimeout(function(){return o._show(n,i)},s)}},{key:"_scheduleHide",value:function(n,r,i,o){var s=this,h=r&&r.hide||r||0;clearTimeout(this._scheduleTimer),this._scheduleTimer=window.setTimeout(function(){if(s._isOpen!==!1&&s._tooltipNode.ownerDocument.body.contains(s._tooltipNode)){if(o.type==="mouseleave"){var l=s._setTooltipNodeEvent(o,n,r,i);if(l)return}s._hide(n,i)}},h)}}]),e}();typeof document<"u"&&document.addEventListener("touchstart",function(e){for(var t=0;t
',defaultArrowSelector:".tooltip-arrow, .tooltip__arrow",defaultInnerSelector:".tooltip-inner, .tooltip__inner",defaultDelay:0,defaultTrigger:"hover focus",defaultOffset:0,defaultContainer:"body",defaultBoundariesElement:void 0,defaultPopperOptions:{},defaultLoadingClass:"tooltip-loading",defaultLoadingContent:"...",autoHide:!0,defaultHideOnTargetClick:!0,disposeTimeout:5e3,popover:{defaultPlacement:"bottom",defaultClass:"vue-popover-theme",defaultBaseClass:"tooltip popover",defaultWrapperClass:"wrapper",defaultInnerClass:"tooltip-inner popover-inner",defaultArrowClass:"tooltip-arrow popover-arrow",defaultOpenClass:"open",defaultDelay:0,defaultTrigger:"click",defaultOffset:0,defaultContainer:"body",defaultBoundariesElement:void 0,defaultPopperOptions:{},defaultAutoHide:!0,defaultHandleResize:!0}};function dw(e){var t={placement:typeof e.placement<"u"?e.placement:nt.options.defaultPlacement,delay:typeof e.delay<"u"?e.delay:nt.options.defaultDelay,html:typeof e.html<"u"?e.html:nt.options.defaultHtml,template:typeof e.template<"u"?e.template:nt.options.defaultTemplate,arrowSelector:typeof e.arrowSelector<"u"?e.arrowSelector:nt.options.defaultArrowSelector,innerSelector:typeof e.innerSelector<"u"?e.innerSelector:nt.options.defaultInnerSelector,trigger:typeof e.trigger<"u"?e.trigger:nt.options.defaultTrigger,offset:typeof e.offset<"u"?e.offset:nt.options.defaultOffset,container:typeof e.container<"u"?e.container:nt.options.defaultContainer,boundariesElement:typeof e.boundariesElement<"u"?e.boundariesElement:nt.options.defaultBoundariesElement,autoHide:typeof e.autoHide<"u"?e.autoHide:nt.options.autoHide,hideOnTargetClick:typeof e.hideOnTargetClick<"u"?e.hideOnTargetClick:nt.options.defaultHideOnTargetClick,loadingClass:typeof e.loadingClass<"u"?e.loadingClass:nt.options.defaultLoadingClass,loadingContent:typeof e.loadingContent<"u"?e.loadingContent:nt.options.defaultLoadingContent,popperOptions:qi({},typeof e.popperOptions<"u"?e.popperOptions:nt.options.defaultPopperOptions)};if(t.offset){var n=pr(t.offset),r=t.offset;(n==="number"||n==="string"&&r.indexOf(",")===-1)&&(r="0, ".concat(r)),t.popperOptions.modifiers||(t.popperOptions.modifiers={}),t.popperOptions.modifiers.offset={offset:r}}return t.trigger&&t.trigger.indexOf("click")!==-1&&(t.hideOnTargetClick=!1),t}function pw(e,t){for(var n=e.placement,r=0;r2&&arguments[2]!==void 0?arguments[2]:{},r=gw(t),i=typeof t.classes<"u"?t.classes:nt.options.defaultClass,o=qi({title:r},dw(qi(qi({},pr(t)==="object"?t:{}),{},{placement:pw(t,n)}))),s=e._tooltip=new NA(e,o);s.setClasses(i),s._vueEl=e;var h=typeof t.targetClasses<"u"?t.targetClasses:nt.options.defaultTargetClass;return e._tooltipTargetClasses=h,ns(e,h),s}function mw(e){e._tooltip&&(e._tooltip.dispose(),delete e._tooltip,delete e._tooltipOldShow),e._tooltipTargetClasses&&(Qu(e,e._tooltipTargetClasses),delete e._tooltipTargetClasses)}function fg(e,t){var n=t.value;t.oldValue;var r=t.modifiers,i=gw(n);if(!i||!qu.enabled)mw(e);else{var o;e._tooltip?(o=e._tooltip,o.setContent(i),o.setOptions(qi(qi({},n),{},{placement:pw(n,r)}))):o=BA(e,n,r),typeof n.show<"u"&&n.show!==e._tooltipOldShow&&(e._tooltipOldShow=n.show,n.show?o.show():o.hide())}}var nt={options:fw,bind:fg,update:fg,unbind:function(t){mw(t)}};function dg(e){e.addEventListener("click",vw),e.addEventListener("touchstart",yw,As?{passive:!0}:!1)}function pg(e){e.removeEventListener("click",vw),e.removeEventListener("touchstart",yw),e.removeEventListener("touchend",ww),e.removeEventListener("touchcancel",bw)}function vw(e){var t=e.currentTarget;e.closePopover=!t.$_vclosepopover_touch,e.closeAllPopover=t.$_closePopoverModifiers&&!!t.$_closePopoverModifiers.all}function yw(e){if(e.changedTouches.length===1){var t=e.currentTarget;t.$_vclosepopover_touch=!0;var n=e.changedTouches[0];t.$_vclosepopover_touchPoint=n,t.addEventListener("touchend",ww),t.addEventListener("touchcancel",bw)}}function ww(e){var t=e.currentTarget;if(t.$_vclosepopover_touch=!1,e.changedTouches.length===1){var n=e.changedTouches[0],r=t.$_vclosepopover_touchPoint;e.closePopover=Math.abs(n.screenY-r.screenY)<20&&Math.abs(n.screenX-r.screenX)<20,e.closeAllPopover=t.$_closePopoverModifiers&&!!t.$_closePopoverModifiers.all}}function bw(e){var t=e.currentTarget;t.$_vclosepopover_touch=!1}var FA={bind:function(t,n){var r=n.value,i=n.modifiers;t.$_closePopoverModifiers=i,(typeof r>"u"||r)&&dg(t)},update:function(t,n){var r=n.value,i=n.oldValue,o=n.modifiers;t.$_closePopoverModifiers=o,r!==i&&(typeof r>"u"||r?dg(t):pg(t))},unbind:function(t){pg(t)}};function gg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Nn(e){for(var t=1;t"u"?nt.options[e]:t}var _w=!1;typeof window<"u"&&typeof navigator<"u"&&(_w=/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream);var ui=[],Ju=function(){};typeof window<"u"&&(Ju=window.Element);var GA={name:"VPopover",components:{ResizeObserver:Yu},props:{open:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},placement:{type:String,default:function(){return xr("defaultPlacement")}},delay:{type:[String,Number,Object],default:function(){return xr("defaultDelay")}},offset:{type:[String,Number],default:function(){return xr("defaultOffset")}},trigger:{type:String,default:function(){return xr("defaultTrigger")}},container:{type:[String,Object,Ju,Boolean],default:function(){return xr("defaultContainer")}},boundariesElement:{type:[String,Ju],default:function(){return xr("defaultBoundariesElement")}},popperOptions:{type:Object,default:function(){return xr("defaultPopperOptions")}},popoverClass:{type:[String,Array],default:function(){return xr("defaultClass")}},popoverBaseClass:{type:[String,Array],default:function(){return nt.options.popover.defaultBaseClass}},popoverInnerClass:{type:[String,Array],default:function(){return nt.options.popover.defaultInnerClass}},popoverWrapperClass:{type:[String,Array],default:function(){return nt.options.popover.defaultWrapperClass}},popoverArrowClass:{type:[String,Array],default:function(){return nt.options.popover.defaultArrowClass}},autoHide:{type:Boolean,default:function(){return nt.options.popover.defaultAutoHide}},handleResize:{type:Boolean,default:function(){return nt.options.popover.defaultHandleResize}},openGroup:{type:String,default:null},openClass:{type:[String,Array],default:function(){return nt.options.popover.defaultOpenClass}},ariaId:{default:null}},data:function(){return{isOpen:!1,id:Math.random().toString(36).substr(2,10)}},computed:{cssClass:function(){return oo({},this.openClass,this.isOpen)},popoverId:function(){return"popover_".concat(this.ariaId!=null?this.ariaId:this.id)}},watch:{open:function(t){t?this.show():this.hide()},disabled:function(t,n){t!==n&&(t?this.hide():this.open&&this.show())},container:function(t){if(this.isOpen&&this.popperInstance){var n=this.$refs.popover,r=this.$refs.trigger,i=this.$_findContainer(this.container,r);if(!i){console.warn("No container for popover",this);return}i.appendChild(n),this.popperInstance.scheduleUpdate()}},trigger:function(t){this.$_removeEventListeners(),this.$_addEventListeners()},placement:function(t){var n=this;this.$_updatePopper(function(){n.popperInstance.options.placement=t})},offset:"$_restartPopper",boundariesElement:"$_restartPopper",popperOptions:{handler:"$_restartPopper",deep:!0}},created:function(){this.$_isDisposed=!1,this.$_mounted=!1,this.$_events=[],this.$_preventOpen=!1},mounted:function(){var t=this.$refs.popover;t.parentNode&&t.parentNode.removeChild(t),this.$_init(),this.open&&this.show()},deactivated:function(){this.hide()},beforeDestroy:function(){this.dispose()},methods:{show:function(){var t=this,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=n.event;n.skipDelay;var i=n.force,o=i===void 0?!1:i;(o||!this.disabled)&&(this.$_scheduleShow(r),this.$emit("show")),this.$emit("update:open",!0),this.$_beingShowed=!0,requestAnimationFrame(function(){t.$_beingShowed=!1})},hide:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=t.event;t.skipDelay,this.$_scheduleHide(n),this.$emit("hide"),this.$emit("update:open",!1)},dispose:function(){if(this.$_isDisposed=!0,this.$_removeEventListeners(),this.hide({skipDelay:!0}),this.popperInstance&&(this.popperInstance.destroy(),!this.popperInstance.options.removeOnDestroy)){var t=this.$refs.popover;t.parentNode&&t.parentNode.removeChild(t)}this.$_mounted=!1,this.popperInstance=null,this.isOpen=!1,this.$emit("dispose")},$_init:function(){this.trigger.indexOf("manual")===-1&&this.$_addEventListeners()},$_show:function(){var t=this,n=this.$refs.trigger,r=this.$refs.popover;if(clearTimeout(this.$_disposeTimer),!this.isOpen){if(this.popperInstance&&(this.isOpen=!0,this.popperInstance.enableEventListeners(),this.popperInstance.scheduleUpdate()),!this.$_mounted){var i=this.$_findContainer(this.container,n);if(!i){console.warn("No container for popover",this);return}i.appendChild(r),this.$_mounted=!0,this.isOpen=!1,this.popperInstance&&requestAnimationFrame(function(){t.hidden||(t.isOpen=!0)})}if(!this.popperInstance){var o=Nn(Nn({},this.popperOptions),{},{placement:this.placement});if(o.modifiers=Nn(Nn({},o.modifiers),{},{arrow:Nn(Nn({},o.modifiers&&o.modifiers.arrow),{},{element:this.$refs.arrow})}),this.offset){var s=this.$_getOffset();o.modifiers.offset=Nn(Nn({},o.modifiers&&o.modifiers.offset),{},{offset:s})}this.boundariesElement&&(o.modifiers.preventOverflow=Nn(Nn({},o.modifiers&&o.modifiers.preventOverflow),{},{boundariesElement:this.boundariesElement})),this.popperInstance=new Hy(n,r,o),requestAnimationFrame(function(){if(t.hidden){t.hidden=!1,t.$_hide();return}!t.$_isDisposed&&t.popperInstance?(t.popperInstance.scheduleUpdate(),requestAnimationFrame(function(){if(t.hidden){t.hidden=!1,t.$_hide();return}t.$_isDisposed?t.dispose():t.isOpen=!0})):t.dispose()})}var h=this.openGroup;if(h)for(var l,u=0;u1&&arguments[1]!==void 0?arguments[1]:!1;if(clearTimeout(this.$_scheduleTimer),t)this.$_show();else{var n=parseInt(this.delay&&this.delay.show||this.delay||0);this.$_scheduleTimer=setTimeout(this.$_show.bind(this),n)}},$_scheduleHide:function(){var t=this,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(clearTimeout(this.$_scheduleTimer),r)this.$_hide();else{var i=parseInt(this.delay&&this.delay.hide||this.delay||0);this.$_scheduleTimer=setTimeout(function(){if(t.isOpen){if(n&&n.type==="mouseleave"){var o=t.$_setTooltipNodeEvent(n);if(o)return}t.$_hide()}},i)}},$_setTooltipNodeEvent:function(t){var n=this,r=this.$refs.trigger,i=this.$refs.popover,o=t.relatedreference||t.toElement||t.relatedTarget,s=function h(l){var u=l.relatedreference||l.toElement||l.relatedTarget;i.removeEventListener(t.type,h),r.contains(u)||n.hide({event:l})};return i.contains(o)?(i.addEventListener(t.type,s),!0):!1},$_removeEventListeners:function(){var t=this.$refs.trigger;this.$_events.forEach(function(n){var r=n.func,i=n.event;t.removeEventListener(i,r)}),this.$_events=[]},$_updatePopper:function(t){this.popperInstance&&(t(),this.isOpen&&this.popperInstance.scheduleUpdate())},$_restartPopper:function(){if(this.popperInstance){var t=this.isOpen;this.dispose(),this.$_isDisposed=!1,this.$_init(),t&&this.show({skipDelay:!0,force:!0})}},$_handleGlobalClose:function(t){var n=this,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;this.$_beingShowed||(this.hide({event:t}),t.closePopover?this.$emit("close-directive"):this.$emit("auto-hide"),r&&(this.$_preventOpen=!0,setTimeout(function(){n.$_preventOpen=!1},300)))},$_handleResize:function(){this.isOpen&&this.popperInstance&&(this.popperInstance.scheduleUpdate(),this.$emit("resize"))}}};typeof document<"u"&&typeof window<"u"&&(_w?document.addEventListener("touchend",WA,As?{passive:!0,capture:!0}:!0):window.addEventListener("click",HA,!0));function HA(e){Ew(e)}function WA(e){Ew(e,!0)}function Ew(e){for(var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,n=function(o){var s=ui[o];if(s.$refs.popover){var h=s.$refs.popover.contains(e.target);requestAnimationFrame(function(){(e.closeAllPopover||e.closePopover&&h||s.autoHide&&!h)&&s.$_handleGlobalClose(e,t)})}},r=0;r"u")){var r=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css",n==="top"&&r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}var JA=".resize-observer[data-v-8859cc6c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-8859cc6c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}";qA(JA);function Zu(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!Zu.installed){Zu.installed=!0;var n={};IA(n,fw,t),Tf.options=n,nt.options=n,e.directive("tooltip",nt),e.directive("close-popover",FA),e.component("VPopover",QA)}}var Tf={install:Zu,get enabled(){return qu.enabled},set enabled(e){qu.enabled=e}},fl=null;typeof window<"u"?fl=window.Vue:typeof global<"u"&&(fl=global.Vue);fl&&fl.use(Tf);const mg=e=>e.reduce((t,n)=>t+=n,0);let Xc=class Bn{constructor(...t){wr(this,"rows");wr(this,"length");this.rows=t,this.length=this.rows.length}getRows(){return this.rows}getColumns(){return this.rows[0].map((t,n)=>this.rows.map(r=>r[n]))}elementWiseOperation(t,{rows:n}){const r=n.map((i,o)=>i.map((s,h)=>t(this.rows[o][h],s)));return new Bn(...r)}add(t){return this.elementWiseOperation((n,r)=>n+r,t)}subtract(t){return this.elementWiseOperation((n,r)=>n-r,t)}scale(t){const n=this.rows.map(r=>r.map(i=>i*t));return new Bn(...n)}multiply(t){if(this.rows[0].length!==t.rows.length)throw new Error("Matrices do not possess the same rank!");const n=t.getColumns(),r=this.rows.map(i=>n.map(o=>mg(i.map((s,h)=>s*o[h]))));return new Bn(...r)}transpose(){return new Bn(...this.getColumns())}getDeterminant(){if(this.rows.length!==this.rows[0].length)throw new Error("Matrix is not quadratic!");if(this.rows.length===2)return this.rows[0][0]*this.rows[1][1]-this.rows[0][1]*this.rows[1][0];const t=this.rows[0].map((n,r)=>{const i=this.rows.slice(1).map(h=>[...h.slice(0,r),...h.slice(r+1)]),o=new Bn(...i),s=n*o.getDeterminant();return r%2===0?s:-s});return mg(t)}sliceElementAtIndex(t,n){return[...t.slice(0,n),...t.slice(n+1)]}getMinor(t,n){const r=this.sliceElementAtIndex(this.rows,t).map(o=>this.sliceElementAtIndex(o,n));return new Bn(...r).getDeterminant()}getCofactor(t,n){const r=Math.pow(-1,t+n),i=this.getMinor(t,n);return r*i}map(t){return new Bn(...this.rows.map((n,r)=>n.map((i,o)=>t(i,r,o))))}getAdjugate(){return this.map((t,n,r)=>this.getCofactor(n,r)).transpose()}getInverse(){function t(n){if(n.length!==n[0].length)return;let r=0,i=0,o=0,s=0;const h=n.length,l=[],u=[];for(r=0;rt.map((r,i)=>n===i?1:0)))}getValueInitializedMatrix(t){return this.map(()=>t)}};const ZA={name:"Scalar",props:{rowIndex:Number,columnIndex:Number,isReadOnly:Boolean,element:Number,storeObject:Object,componentID:Number},setup(e){const{store:t,getProperty:n,setProperty:r}=e.storeObject,o=`nodes__${we(()=>t.state.currentNode).value}__components__${e.componentID}__component`,s=we(()=>t.state.taskMode),h=we(()=>u(`${o}__userData`)),l=we(()=>u(`${o}__solutionData`)),u=d=>{const p=n(d);return p?p.length>1?p:p[0].map(g=>[g]):[]},a=d=>{const p=d.target,{index:g}=p.dataset,[m,v]=g.split(",");let y=p.value===""?null:parseInt(p.value);r({path:`${o}__userData__${m}__${v}`,value:y})},c=(d,p,g,m)=>{const v=document.querySelector(`#matrix_${e.componentID} .i__${g}__${m}`);v&&(d?(v.classList.remove("invalid"),v.classList.add("valid")):p?(v.classList.remove("valid"),v.classList.add("invalid")):(v.classList.remove("valid"),v.classList.remove("invalid")))},f=(d,p)=>{const g=h.value[d][p],m=l.value[d][p],v=g===m,y=h.value[d][p]!=null;return s.value==="practice"&&c(v,y,d,p),r({path:`${o}__validationData__${e.rowIndex}__${e.columnIndex}__isCorrect`,value:v}),r({path:`${o}__validationData__${e.rowIndex}__${e.columnIndex}__isValid`,value:y}),{isCorrect:v,isSet:y}};return St(()=>e.element,()=>{f(e.rowIndex,e.columnIndex)}),{updateField:a}}};const eP=["data-index","readonly","disabled","value"];function tP(e,t,n,r,i,o){return ue(),ve("input",{class:kt(`i__${n.rowIndex}__${n.columnIndex}`),"data-index":[n.rowIndex,n.columnIndex],readonly:n.isReadOnly,disabled:n.isReadOnly,onKeyup:t[0]||(t[0]=(...s)=>r.updateField&&r.updateField(...s)),type:"number",value:n.element},null,42,eP)}const nP=Ke(ZA,[["render",tP],["__scopeId","data-v-dbbc5796"]]),rP={name:"ContextMenu",props:{componentId:Number,methods:Object,storeObject:Object},setup(e){const{getProperty:t,setProperty:n}=e.storeObject,r=t("currentNode"),i=()=>{const h=document.querySelector(".contextMenu.open");h&&(h.classList.remove("open"),n({path:`nodes__${r}__components__${e.componentId}__contextMenu__isOpen`,value:!1}))},o=()=>{const h=document.querySelector(`.contextMenu_${e.componentId}`);Array.from(h.classList).includes("open")?h.classList.remove("open"):h.classList.add("open"),n({path:`nodes__${r}__components__${e.componentId}__contextMenu__isOpen`,value:!0})},s=h=>{const l=t(`nodes__${r}__components__${e.componentId}__contextMenu__usedMethods`);n({path:`nodes__${r}__components__${e.componentId}__contextMenu__usedMethods`,value:[...l,h.name]}),h()};return{componentMethods:e.methods,id:e.componentId,openContextMenu:o,closeContextMenu:i,methodWrapper:s}}};const iP=["onClick"];function oP(e,t,n,r,i,o){return ue(),ve("div",{class:"wrapper",onClickout:t[1]||(t[1]=Ma((...s)=>r.closeContextMenu&&r.closeContextMenu(...s),["prevent"])),onContextmenu:t[2]||(t[2]=Ma((...s)=>r.openContextMenu&&r.openContextMenu(...s),["prevent"]))},[_e("div",{class:"contextMenuClickable",onClick:t[0]||(t[0]=Ma((...s)=>r.openContextMenu&&r.openContextMenu(...s),["prevent"]))},"..."),dr(e.$slots,"default",{},void 0,!0),_e("div",{class:kt(`contextMenu contextMenu_${r.id}`)},[(ue(!0),ve(je,null,ut(r.componentMethods,(s,h)=>(ue(),ve("div",{key:h,onClick:l=>r.methodWrapper(s)},rt(h),9,iP))),128))],2)],32)}const Wr=Ke(rP,[["render",oP],["__scopeId","data-v-b512c411"]]),zr=(e,t)=>Object.entries(e).reduce((n,[r,i])=>{const o=i.description;return{...n,[o]:t[r]}},{}),sP={props:{componentID:Number,storeObject:Object},components:{ContextMenu:Wr,MatrixField:nP},setup(e){const{store:t,getProperty:n,setProperty:r}=e.storeObject,i=we(()=>t.state.currentNode),o=`nodes__${i.value}__components__${e.componentID}__component`,s=n(`nodes__${i.value}__components__${e.componentID}__dependencies`),h=we(()=>Object.entries(s.Matrix).map(([_,b])=>n(b))),l=n(`${o}__readOnly`),u=n(`${o}__initialize`),a=n(`${o}__rowLabel`),c=n(`${o}__columnLabel`),f=we(()=>a?n(a):[]),d=we(()=>a?n(c):[]),p=we(()=>v(`${o}__userData`)),g=we(()=>v(`${o}__solutionData`));we(()=>v(`${o}__validationData`));const m=async _=>{Object.entries(_).forEach(([b,R])=>{if(b==="user"&&n("restoredFromReplay"))return;const M=w=>JSON.parse(JSON.stringify(w)),{paths:k,operations:S}=R;let E=!1;const I=k.reduce((w,T)=>{let O=M(n(`${T}`));return O===null?(E=!0,w[T]=new Xc([]),w):(O.length==1&&(O=O[0].map(N=>[N])),w[T]=new Xc(...O),w)},{});if(E)return;let C=S.reduce((w,T)=>{const{name:O,args:N}=JSON.parse(JSON.stringify(T));if(N.includes("chain")){let B=w;for(let H=1;H{(h.value&&!p.value||!p.value.length)&&m(u),y()}),St(h,async()=>{m(u),e.componentID==3&&console.log("DEPENDENCY UPDATE",e.componentID,h.value)},{deep:!0});const v=_=>{const b=n(_);return b?b.length>1?b:b[0].map(R=>[R]):[]},y=()=>{const _={isValid:!0,isCorrect:!0};if(l)return _;let b=!1;for(let R=0;R{const{isValid:_,isCorrect:b}=y();r({path:`nodes__${i.value}__components__${e.componentID}__isValid`,value:_}),r({path:`nodes__${i.value}__components__${e.componentID}__isCorrect`,value:b})},{deep:!0});const x={fillZeros:()=>{const _=JSON.parse(JSON.stringify(n(`${o}__solutionData`))),b=JSON.parse(JSON.stringify(n(`${o}__userData`)));_.forEach((R,M)=>R.map((k,S)=>{r(k===0?{path:`${o}__userData__${M}__${S}`,value:k}:{path:`${o}__userData__${M}__${S}`,value:b[M][S]})}))},showSolution:()=>{JSON.parse(JSON.stringify(n(`${o}__solutionData`))).forEach((b,R)=>b.map((M,k)=>{r({path:`${o}__userData__${R}__${k}`,value:M})}))},copyToClipboard:()=>{const _=p.value.map(b=>b.join(";")+";").join(` -`);window.navigator.clipboard.writeText(_)}},$=zr(n(`nodes__${i.value}__components__${e.componentID}__methods`),x);return{id:e.componentID,solutionData:g,userData:p,rowLabel:f,columnLabel:d,isReadOnly:l,selectedMethods:$}}};const aP=e=>($i("data-v-344ad161"),e=e(),xi(),e),lP=["id"],cP={key:0},uP=aP(()=>_e("p",{class:"placeholder"}," ",-1)),hP={class:"matrix_label"},fP={key:0},dP={class:"matrix_label"};function pP(e,t,n,r,i,o){const s=pt("MatrixField"),h=pt("ContextMenu");return ue(),Rt(h,{componentId:r.id,methods:r.selectedMethods,storeObject:n.storeObject},{default:cn(()=>[_e("table",{id:`matrix_${r.id}`,class:"matrix"},[r.columnLabel&&r.columnLabel.length?(ue(),ve("tr",cP,[uP,(ue(!0),ve(je,null,ut(r.columnLabel,(l,u)=>(ue(),ve("th",{key:u},[_e("p",hP,rt(l),1)]))),128))])):Mn("",!0),(ue(!0),ve(je,null,ut(r.userData,(l,u)=>(ue(),ve("tr",{key:u},[r.rowLabel&&r.rowLabel.length?(ue(),ve("th",fP,[_e("p",dP,rt(r.rowLabel[u]),1)])):Mn("",!0),(ue(!0),ve(je,null,ut(r.userData[u],(a,c)=>(ue(),ve("td",{class:"matrix_element",key:c},[tt(s,{rowIndex:u,columnIndex:c,storeObject:n.storeObject,componentID:r.id,isReadOnly:r.isReadOnly,element:a},null,8,["rowIndex","columnIndex","storeObject","componentID","isReadOnly","element"])]))),128))]))),128))],8,lP)]),_:1},8,["componentId","methods","storeObject"])}const gP=Ke(sP,[["render",pP],["__scopeId","data-v-344ad161"]]);class xw{constructor(t,n,r){wr(this,"serializedTaskComponent");wr(this,"currentNode");wr(this,"dependencies");wr(this,"getComputedTaskGraphProperty",t=>we(()=>Me(this.storeObject).getProperty(t)));wr(this,"getSelectedMethods",t=>{const n=Me(this.serializedTaskComponent).methods;return Object.entries(n).reduce((r,[i,o])=>{const{description:s}=o;return{...r,[s]:t[i]}},{})});this.storeObject=t,this.componentID=n,this.serialisedTaskComponentPath=r,this.serializedTaskComponent=this.getComputedTaskGraphProperty(r),this.currentNode=Me(this.getComputedTaskGraphProperty("currentNode")),this.dependencies=this.loadDependencies()}checkDependency(t){return we(()=>t?iS(t):!1)}loadDependencies(){return we(()=>{const n={};for(const[r,i]of Object.entries(Me(this.serializedTaskComponent).dependencies)){const o=this.checkDependency(i),s=Me(o)?this.getComputedTaskGraphProperty(i):null;n[r]=s}return n})}getComponentData(){return Un(Me(this.serializedTaskComponent).component)}getSerializedComponent(){return this.serializedTaskComponent}getTaskData(){return this.getComputedTaskGraphProperty("taskData")}getDependencyPaths(){return Me(this.serializedTaskComponent).dependencies}getDependencies(){return this.dependencies}getCurrentTaskGraphNode(){return this.currentNode}getNestedComponents(){return Me(this.serializedTaskComponent).nestedComponents}getNestedComponentPaths(){const t=this.getNestedComponents(),n={};for(const r in t)n[r]=`${this.serialisedTaskComponentPath}__nestedComponents__${r}`;return n}}class mP extends xw{validate(){let t=!1;const n=this.loadDependencies();return Me(Me(n).dotDescription)!==""&&(t=!0),Me(this.storeObject).setProperty({path:`${this.serialisedTaskComponentPath}__isValid`,value:t}),t}}var eh="http://www.w3.org/1999/xhtml";const vg={svg:"http://www.w3.org/2000/svg",xhtml:eh,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function gc(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),vg.hasOwnProperty(t)?{space:vg[t],local:e}:e}function vP(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===eh&&t.documentElement.namespaceURI===eh?t.createElement(e):t.createElementNS(n,e)}}function yP(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Sw(e){var t=gc(e);return(t.local?yP:vP)(t)}function wP(){}function Of(e){return e==null?wP:function(){return this.querySelector(e)}}function bP(e){typeof e!="function"&&(e=Of(e));for(var t=this._groups,n=t.length,r=new Array(n),i=0;i=x&&(x=y+1);!(_=m[x])&&++x=0;)(s=r[i])&&(o&&s.compareDocumentPosition(o)^4&&o.parentNode.insertBefore(s,o),o=s);return this}function jP(e){e||(e=UP);function t(c,f){return c&&f?e(c.__data__,f.__data__):!c-!f}for(var n=this._groups,r=n.length,i=new Array(r),o=0;ot?1:e>=t?0:NaN}function KP(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function VP(){return Array.from(this)}function XP(){for(var e=this._groups,t=0,n=e.length;t1?this.each((t==null?oN:typeof t=="function"?aN:sN)(e,t,n??"")):co(this.node(),e)}function co(e,t){return e.style.getPropertyValue(t)||kw(e).getComputedStyle(e,null).getPropertyValue(t)}function cN(e){return function(){delete this[e]}}function uN(e,t){return function(){this[e]=t}}function hN(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function fN(e,t){return arguments.length>1?this.each((t==null?cN:typeof t=="function"?hN:uN)(e,t)):this.node()[e]}function Rw(e){return e.trim().split(/^|\s+/)}function kf(e){return e.classList||new Dw(e)}function Dw(e){this._node=e,this._names=Rw(e.getAttribute("class")||"")}Dw.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function Iw(e,t){for(var n=kf(e),r=-1,i=t.length;++r=0&&(n=t.slice(r+1),t=t.slice(0,r)),{type:t,name:n}})}function GN(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,o;n{}};function Nw(){for(var e=0,t=arguments.length,n={},r;e=0&&(r=n.slice(i+1),n=n.slice(0,i)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}Da.prototype=Nw.prototype={constructor:Da,on:function(e,t){var n=this._,r=QN(e+"",n),i,o=-1,s=r.length;if(arguments.length<2){for(;++o0)for(var n=new Array(i),r=0,i,o;r=0&&(r=n.slice(i+1),n=n.slice(0,i)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}Ia.prototype=If.prototype={constructor:Ia,on:function(e,t){var n=this._,r=ZN(e+"",n),i,o=-1,s=r.length;if(arguments.length<2){for(;++o0)for(var n=new Array(i),r=0,i,o;r=0&&e._call.call(void 0,t),e=e._next;--uo}function bg(){wi=(gl=Ps.now())+mc,uo=rs=0;try{n2()}finally{uo=0,i2(),wi=0}}function r2(){var e=Ps.now(),t=e-gl;t>Bw&&(mc-=t,gl=e)}function i2(){for(var e,t=pl,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:pl=n);is=e,th(r)}function th(e){if(!uo){rs&&(rs=clearTimeout(rs));var t=e-wi;t>24?(e<1/0&&(rs=setTimeout(bg,e-Ps.now()-mc)),Wo&&(Wo=clearInterval(Wo))):(Wo||(gl=Ps.now(),Wo=setInterval(r2,Bw)),uo=1,Fw(bg))}}function vl(e,t,n){var r=new ml;return t=t==null?0:+t,r.restart(i=>{r.stop(),e(i+t)},t,n),r}var o2=If("start","end","cancel","interrupt"),s2=[],Hw=0,nh=1,rh=2,Aa=3,_g=4,ih=5,Pa=6;function vc(e,t,n,r,i,o){var s=e.__transition;if(!s)e.__transition={};else if(n in s)return;a2(e,n,{name:t,index:r,group:i,on:o2,tween:s2,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:Hw})}function Pf(e,t){var n=An(e,t);if(n.state>Hw)throw new Error("too late; already scheduled");return n}function er(e,t){var n=An(e,t);if(n.state>Aa)throw new Error("too late; already running");return n}function An(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function a2(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=Gw(o,0,n.time);function o(u){n.state=nh,n.timer.restart(s,n.delay,n.time),n.delay<=u&&s(u-n.delay)}function s(u){var a,c,f,d;if(n.state!==nh)return l();for(a in r)if(d=r[a],d.name===n.name){if(d.state===Aa)return vl(s);d.state===_g?(d.state=Pa,d.timer.stop(),d.on.call("interrupt",e,e.__data__,d.index,d.group),delete r[a]):+arh&&r.state>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?da(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?da(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=u2.exec(e))?new an(t[1],t[2],t[3],1):(t=h2.exec(e))?new an(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=f2.exec(e))?da(t[1],t[2],t[3],t[4]):(t=d2.exec(e))?da(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=p2.exec(e))?Mg(t[1],t[2]/100,t[3]/100,1):(t=g2.exec(e))?Mg(t[1],t[2]/100,t[3]/100,t[4]):Eg.hasOwnProperty(e)?Sg(Eg[e]):e==="transparent"?new an(NaN,NaN,NaN,0):null}function Sg(e){return new an(e>>16&255,e>>8&255,e&255,1)}function da(e,t,n,r){return r<=0&&(e=t=n=NaN),new an(e,t,n,r)}function v2(e){return e instanceof qs||(e=Gr(e)),e?(e=e.rgb(),new an(e.r,e.g,e.b,e.opacity)):new an}function ho(e,t,n,r){return arguments.length===1?v2(e):new an(e,t,n,r??1)}function an(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}Nf(an,ho,Ww(qs,{brighter:function(e){return e=e==null?yl:Math.pow(yl,e),new an(this.r*e,this.g*e,this.b*e,this.opacity)},darker:function(e){return e=e==null?Ns:Math.pow(Ns,e),new an(this.r*e,this.g*e,this.b*e,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Cg,formatHex:Cg,formatRgb:Lg,toString:Lg}));function Cg(){return"#"+Yc(this.r)+Yc(this.g)+Yc(this.b)}function Lg(){var e=this.opacity;return e=isNaN(e)?1:Math.max(0,Math.min(1,e)),(e===1?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(e===1?")":", "+e+")")}function Yc(e){return e=Math.max(0,Math.min(255,Math.round(e)||0)),(e<16?"0":"")+e.toString(16)}function Mg(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Wn(e,t,n,r)}function zw(e){if(e instanceof Wn)return new Wn(e.h,e.s,e.l,e.opacity);if(e instanceof qs||(e=Gr(e)),!e)return new Wn;if(e instanceof Wn)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),o=Math.max(t,n,r),s=NaN,h=o-i,l=(o+i)/2;return h?(t===o?s=(n-r)/h+(n0&&l<1?0:s,new Wn(s,h,l,e.opacity)}function y2(e,t,n,r){return arguments.length===1?zw(e):new Wn(e,t,n,r??1)}function Wn(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Nf(Wn,y2,Ww(qs,{brighter:function(e){return e=e==null?yl:Math.pow(yl,e),new Wn(this.h,this.s,this.l*e,this.opacity)},darker:function(e){return e=e==null?Ns:Math.pow(Ns,e),new Wn(this.h,this.s,this.l*e,this.opacity)},rgb:function(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new an(Qc(e>=240?e-240:e+120,i,r),Qc(e,i,r),Qc(e<120?e+240:e-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var e=this.opacity;return e=isNaN(e)?1:Math.max(0,Math.min(1,e)),(e===1?"hsl(":"hsla(")+(this.h||0)+", "+(this.s||0)*100+"%, "+(this.l||0)*100+"%"+(e===1?")":", "+e+")")}}));function Qc(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const Bf=e=>()=>e;function w2(e,t){return function(n){return e+n*t}}function b2(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function _2(e){return(e=+e)==1?jw:function(t,n){return n-t?b2(t,n,e):Bf(isNaN(t)?n:t)}}function jw(e,t){var n=t-e;return n?w2(e,n):Bf(isNaN(e)?t:e)}const wl=function e(t){var n=_2(t);function r(i,o){var s=n((i=ho(i)).r,(o=ho(o)).r),h=n(i.g,o.g),l=n(i.b,o.b),u=jw(i.opacity,o.opacity);return function(a){return i.r=s(a),i.g=h(a),i.b=l(a),i.opacity=u(a),i+""}}return r.gamma=e,r}(1);function E2(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(o){for(i=0;in&&(o=t.slice(n,o),h[s]?h[s]+=o:h[++s]=o),(r=r[0])===(i=i[0])?h[s]?h[s]+=i:h[++s]=i:(h[++s]=null,l.push({i:s,x:Gn(r,i)})),n=qc.lastIndex;return n180?a+=360:a-u>180&&(u+=360),f.push({i:c.push(i(c)+"rotate(",null,r)-2,x:Gn(u,a)})):a&&c.push(i(c)+"rotate("+a+r)}function h(u,a,c,f){u!==a?f.push({i:c.push(i(c)+"skewX(",null,r)-2,x:Gn(u,a)}):a&&c.push(i(c)+"skewX("+a+r)}function l(u,a,c,f,d,p){if(u!==c||a!==f){var g=d.push(i(d)+"scale(",null,",",null,")");p.push({i:g-4,x:Gn(u,c)},{i:g-2,x:Gn(a,f)})}else(c!==1||f!==1)&&d.push(i(d)+"scale("+c+","+f+")")}return function(u,a){var c=[],f=[];return u=e(u),a=e(a),o(u.translateX,u.translateY,a.translateX,a.translateY,c,f),s(u.rotate,a.rotate,c,f),h(u.skewX,a.skewX,c,f),l(u.scaleX,u.scaleY,a.scaleX,a.scaleY,c,f),u=a=null,function(d){for(var p=-1,g=f.length,m;++p=0&&(t=t.slice(0,n)),!t||t==="start"})}function hB(e,t,n){var r,i,o=uB(t)?Pf:er;return function(){var s=o(this,e),h=s.on;h!==r&&(i=(r=h).copy()).on(t,n),s.on=i}}function fB(e,t){var n=this._id;return arguments.length<2?An(this.node(),n).on.on(e):this.each(hB(n,e,t))}function dB(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function pB(){return this.on("end.remove",dB(this._id))}function gB(e){var t=this._name,n=this._id;typeof e!="function"&&(e=Of(e));for(var r=this._groups,i=r.length,o=new Array(i),s=0;snh&&r.name===t)return new Qn([[e]],GB,t,+i)}return null}const ah={capture:!0,passive:!1};function lh(e){e.preventDefault(),e.stopImmediatePropagation()}function WB(e){var t=e.document.documentElement,n=Xe(e).on("dragstart.drag",lh,ah);"onselectstart"in t?n.on("selectstart.drag",lh,ah):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function zB(e,t){var n=e.document.documentElement,r=Xe(e).on("dragstart.drag",null);t&&(r.on("click.drag",lh,ah),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}const ga=e=>()=>e;function jB(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function lr(e,t,n){this.k=e,this.x=t,this.y=n}lr.prototype={constructor:lr,scale:function(e){return e===1?this:new lr(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new lr(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var yc=new lr(1,0,0);wc.prototype=lr.prototype;function wc(e){for(;!e.__zoom;)if(!(e=e.parentNode))return yc;return e.__zoom}function Jc(e){e.stopImmediatePropagation()}function zo(e){e.preventDefault(),e.stopImmediatePropagation()}function UB(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function KB(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function kg(){return this.__zoom||yc}function VB(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function XB(){return navigator.maxTouchPoints||"ontouchstart"in this}function YB(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],o=e.invertY(t[0][1])-n[0][1],s=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),s>o?(o+s)/2:Math.min(0,o)||Math.max(0,s))}function QB(){var e=UB,t=KB,n=YB,r=VB,i=XB,o=[0,1/0],s=[[-1/0,-1/0],[1/0,1/0]],h=250,l=P2,u=If("start","zoom","end"),a,c,f,d=500,p=150,g=0,m=10;function v(w){w.property("__zoom",kg).on("wheel.zoom",M,{passive:!1}).on("mousedown.zoom",k).on("dblclick.zoom",S).filter(i).on("touchstart.zoom",E).on("touchmove.zoom",I).on("touchend.zoom touchcancel.zoom",C).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}v.transform=function(w,T,O,N){var B=w.selection?w.selection():w;B.property("__zoom",kg),w!==B?_(w,T,O,N):B.interrupt().each(function(){b(this,arguments).event(N).start().zoom(null,typeof T=="function"?T.apply(this,arguments):T).end()})},v.scaleBy=function(w,T,O,N){v.scaleTo(w,function(){var B=this.__zoom.k,H=typeof T=="function"?T.apply(this,arguments):T;return B*H},O,N)},v.scaleTo=function(w,T,O,N){v.transform(w,function(){var B=t.apply(this,arguments),H=this.__zoom,z=O==null?$(B):typeof O=="function"?O.apply(this,arguments):O,F=H.invert(z),W=typeof T=="function"?T.apply(this,arguments):T;return n(x(y(H,W),z,F),B,s)},O,N)},v.translateBy=function(w,T,O,N){v.transform(w,function(){return n(this.__zoom.translate(typeof T=="function"?T.apply(this,arguments):T,typeof O=="function"?O.apply(this,arguments):O),t.apply(this,arguments),s)},null,N)},v.translateTo=function(w,T,O,N,B){v.transform(w,function(){var H=t.apply(this,arguments),z=this.__zoom,F=N==null?$(H):typeof N=="function"?N.apply(this,arguments):N;return n(yc.translate(F[0],F[1]).scale(z.k).translate(typeof T=="function"?-T.apply(this,arguments):-T,typeof O=="function"?-O.apply(this,arguments):-O),H,s)},N,B)};function y(w,T){return T=Math.max(o[0],Math.min(o[1],T)),T===w.k?w:new lr(T,w.x,w.y)}function x(w,T,O){var N=T[0]-O[0]*w.k,B=T[1]-O[1]*w.k;return N===w.x&&B===w.y?w:new lr(w.k,N,B)}function $(w){return[(+w[0][0]+ +w[1][0])/2,(+w[0][1]+ +w[1][1])/2]}function _(w,T,O,N){w.on("start.zoom",function(){b(this,arguments).event(N).start()}).on("interrupt.zoom end.zoom",function(){b(this,arguments).event(N).end()}).tween("zoom",function(){var B=this,H=arguments,z=b(B,H).event(N),F=t.apply(B,H),W=O==null?$(F):typeof O=="function"?O.apply(B,H):O,G=Math.max(F[1][0]-F[0][0],F[1][1]-F[0][1]),U=B.__zoom,Q=typeof T=="function"?T.apply(B,H):T,ee=l(U.invert(W).concat(G/U.k),Q.invert(W).concat(G/Q.k));return function(V){if(V===1)V=Q;else{var q=ee(V),re=G/q[2];V=new lr(re,W[0]-q[0]*re,W[1]-q[1]*re)}z.zoom(null,V)}})}function b(w,T,O){return!O&&w.__zooming||new R(w,T)}function R(w,T){this.that=w,this.args=T,this.active=0,this.sourceEvent=null,this.extent=t.apply(w,T),this.taps=0}R.prototype={event:function(w){return w&&(this.sourceEvent=w),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(w,T){return this.mouse&&w!=="mouse"&&(this.mouse[1]=T.invert(this.mouse[0])),this.touch0&&w!=="touch"&&(this.touch0[1]=T.invert(this.touch0[0])),this.touch1&&w!=="touch"&&(this.touch1[1]=T.invert(this.touch1[0])),this.that.__zoom=T,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(w){var T=Xe(this.that).datum();u.call(w,this.that,new jB(w,{sourceEvent:this.sourceEvent,target:v,type:w,transform:this.that.__zoom,dispatch:u}),T)}};function M(w,...T){if(!e.apply(this,arguments))return;var O=b(this,T).event(w),N=this.__zoom,B=Math.max(o[0],Math.min(o[1],N.k*Math.pow(2,r.apply(this,arguments)))),H=Zr(w);if(O.wheel)(O.mouse[0][0]!==H[0]||O.mouse[0][1]!==H[1])&&(O.mouse[1]=N.invert(O.mouse[0]=H)),clearTimeout(O.wheel);else{if(N.k===B)return;O.mouse=[H,N.invert(H)],Na(this),O.start()}zo(w),O.wheel=setTimeout(z,p),O.zoom("mouse",n(x(y(N,B),O.mouse[0],O.mouse[1]),O.extent,s));function z(){O.wheel=null,O.end()}}function k(w,...T){if(f||!e.apply(this,arguments))return;var O=w.currentTarget,N=b(this,T,!0).event(w),B=Xe(w.view).on("mousemove.zoom",W,!0).on("mouseup.zoom",G,!0),H=Zr(w,O),z=w.clientX,F=w.clientY;WB(w.view),Jc(w),N.mouse=[H,this.__zoom.invert(H)],Na(this),N.start();function W(U){if(zo(U),!N.moved){var Q=U.clientX-z,ee=U.clientY-F;N.moved=Q*Q+ee*ee>g}N.event(U).zoom("mouse",n(x(N.that.__zoom,N.mouse[0]=Zr(U,O),N.mouse[1]),N.extent,s))}function G(U){B.on("mousemove.zoom mouseup.zoom",null),zB(U.view,N.moved),zo(U),N.event(U).end()}}function S(w,...T){if(e.apply(this,arguments)){var O=this.__zoom,N=Zr(w.changedTouches?w.changedTouches[0]:w,this),B=O.invert(N),H=O.k*(w.shiftKey?.5:2),z=n(x(y(O,H),N,B),t.apply(this,T),s);zo(w),h>0?Xe(this).transition().duration(h).call(_,z,N,w):Xe(this).call(v.transform,z,N,w)}}function E(w,...T){if(e.apply(this,arguments)){var O=w.touches,N=O.length,B=b(this,T,w.changedTouches.length===N).event(w),H,z,F,W;for(Jc(w),z=0;ze.length)&&(n=e.length);var r=new xt(n-t);return r.set(e.subarray(t,n)),r},jo=function(e,t,n,r){if(xt.prototype.fill)return xt.prototype.fill.call(e,t,n,r);for((n==null||n<0)&&(n=0),(r==null||r>e.length)&&(r=e.length);ne.length)&&(r=e.length);n2046MB)","invalid block type","FSE accuracy too high","match distance too far back","unexpected EOF"],Ot=function(e,t,n){var r=new Error(t||gF[e]);if(r.code=e,Error.captureStackTrace&&Error.captureStackTrace(r,Ot),!n)throw r;return r},Ig=function(e,t,n){for(var r=0,i=0;r>5&1,h=o>>2&1,l=3&o,u=o>>6;8&o&&Ot(0);var a=6-s,c=l==3?4:l,f=Ig(e,a,c),d=u?1<>3);g=m+(m>>3)*(7&e[5])}g>2145386496&&Ot(1);var v=new xt((t==1?p||g:t?0:g)+12);return v[0]=1,v[4]=4,v[8]=8,{b:a+d,y:0,l:0,d:f,w:t&&t!=1?t:v.subarray(12),e:g,o:new bc(v.buffer,0,3),u:p,c:h,m:Math.min(131072,g)}}if((i>>4|e[3]<<20)==25481893)return 8+(((n=e)[r=4]|n[r+1]<<8|n[r+2]<<16|n[r+3]<<24)>>>0);Ot(0)},fi=function(e){for(var t=0;1<n&&Ot(3);for(var o=1<0;){var y=fi(s+1),x=r>>3,$=(1<>(7&r)&$,b=(1<b&&(_-=R)),f[++h]=--_,_==-1?(s+=_,m[--a]=h):s-=_,!_)do{var k=r>>3;l=(e[k]|e[k+1]<<8)>>(7&r)&3,r+=2,h+=l}while(l==3)}(h>255||s)&&Ot(0);for(var S=0,E=(o>>1)+(o>>3)+3,I=o-1,C=0;C<=h;++C){var w=f[C];if(w<1)d[C]=-w;else for(u=0;u=a)}}for(S&&Ot(0),u=0;u>3,{b:i,s:m,n:v,t:p}]},vF=Fs(new xt([81,16,99,140,49,198,24,99,12,33,196,24,99,102,102,134,70,146,4]),0,6)[1],yF=Fs(new xt([33,20,196,24,99,140,33,132,16,66,8,33,132,16,66,8,33,68,68,68,68,68,68,68,68,36,9]),0,6)[1],wF=Fs(new xt([32,132,16,66,102,70,68,68,68,68,36,73,2]),0,5)[1],nb=function(e,t){for(var n=e.length,r=new bc(n),i=0;ih&&c>3;l=(l<>(7&a))&s,t[++c]=n.s[l],a-=u=n.n[l]}a==h&&c+1==i||Ot(0)},EF=function(e,t,n){var r=6,i=t.length+3>>2,o=i<<1,s=i+o;os(e.subarray(r,r+=e[0]|e[1]<<8),t.subarray(0,i),n),os(e.subarray(r,r+=e[2]|e[3]<<8),t.subarray(i,o),n),os(e.subarray(r,r+=e[4]|e[5]<<8),t.subarray(o,s),n),os(e.subarray(r),t.subarray(s),n)},$F=function(e,t,n){var r,i=t.b,o=e[i],s=o>>1&3;t.l=1&o;var h=o>>3|e[i+1]<<5|e[i+2]<<13,l=(i+=3)+h;if(s==1)return i>=e.length?void 0:(t.b=i+1,n?(jo(n,e[i],t.y,t.y+=h),n):jo(new xt(h),e[i]));if(!(l>e.length)){if(s==0)return t.b=l,n?(n.set(e.subarray(i,l),t.y),t.y+=h,n):Zc(e,i,l);if(s==2){var u=e[i],a=3&u,c=u>>2&3,f=u>>4,d=0,p=0;a<2?1&c?f|=e[++i]<<4|(2&c&&e[++i]<<12):f=u>>3:(p=c,c<2?(f|=(63&e[++i])<<4,d=e[i]>>6|e[++i]<<2):c==2?(f|=e[++i]<<4|(3&e[++i])<<12,d=e[i]>>2|e[++i]<<6):(f|=e[++i]<<4|(63&e[++i])<<12,d=e[i]>>6|e[++i]<<2|e[++i]<<10)),++i;var g=n?n.subarray(t.y,t.y+t.m):new xt(t.m),m=g.length-f;if(a==0)g.set(e.subarray(i,i+=f),m);else if(a==1)jo(g,e[i++],m);else{var v=t.h;if(a==2){var y=function(J,Z){var D=0,oe=-1,me=new xt(292),de=J[Z],pe=me.subarray(0,256),fe=me.subarray(256,268),Se=new bl(me.buffer,268);if(de<128){var ie=Fs(J,Z+1,6),le=ie[0],he=ie[1],$e=le<<3,Oe=J[Z+=de];Oe||Ot(0);for(var ke=0,Ae=0,Ge=he.b,ze=Ge,Ue=(++Z<<3)-8+fi(Oe);!((Ue-=Ge)<$e);){var dt=Ue>>3;if(ke+=(J[dt]|J[dt+1]<<8)>>(7&Ue)&(1<>3]|J[dt+1]<<8)>>(7&Ue)&(1<255&&Ot(0)}else{for(oe=de-127;D>4,pe[D+1]=15&en}++Z}var gt=0;for(D=0;D11&&Ot(0),gt+=yr&&1<0;--D){var Io=Se[D];jo(Do,D,Io,Se[D-1]=Io+fe[D]*(1<<$t-D))}for(Se[0]!=_n&&Ot(0),D=0;D127&&(x=x-128<<8|e[i++]);var $=e[i++];3&$&&Ot(0);for(var _=[yF,wF,vF],b=2;b>-1;--b){var R=$>>2+(b<<1)&3;if(R==1){var M=new xt([0,0,e[i++]]);_[b]={s:M.subarray(2,3),n:M.subarray(0,1),t:new bl(M.buffer,0,1),b:0}}else R==2?(i=(r=Fs(e,i,9-(1&b)))[0],_[b]=r[1]):R==3&&(t.t||Ot(0),_[b]=t.t[b])}var k=t.t=_,S=k[0],E=k[1],I=k[2],C=e[l-1];C||Ot(0);var w=(l<<3)-8+fi(C)-I.b,T=w>>3,O=0,N=(e[T]|e[T+1]<<8)>>(7&w)&(1<>3]|e[T+1]<<8)>>(7&w)&(1<>3]|e[T+1]<<8)>>(7&w)&(1<>3]|e[T+1]<<8|e[T+2]<<16|e[T+3]<<24)>>>(7&w)&ee-1);T=(w-=dh[W])>>3;var q=_F[W]+((e[T]|e[T+1]<<8|e[T+2]<<16)>>(7&w)&(1<>3;var re=bF[z]+((e[T]|e[T+1]<<8|e[T+2]<<16)>>(7&w)&(1<>3,N=I.t[N]+((e[T]|e[T+1]<<8)>>(7&w)&(1<>3,H=S.t[H]+((e[T]|e[T+1]<<8)>>(7&w)&(1<>3,B=E.t[B]+((e[T]|e[T+1]<<8)>>(7&w)&(1<3)t.o[2]=t.o[1],t.o[1]=t.o[0],t.o[0]=V-=3;else{var se=V-(re!=0);se?(V=se==3?t.o[0]-1:t.o[se],se>1&&(t.o[2]=t.o[1]),t.o[1]=t.o[0],t.o[0]=V):V=t.o[0]}for(b=0;bq&&(K=q),b=0;b88?13:14;do i.push(255&o),o>>=8,s-=8;while(s>7);h=-1}}return h>-1&&i.push(255&(o|h<{throw A},l=r.print||console.log.bind(console),u=r.printErr||console.warn.bind(console);Object.assign(r,o),o=null,r.arguments&&r.arguments,r.thisProgram&&(s=r.thisProgram),r.quit&&(h=r.quit),r.wasmBinary&&(i=r.wasmBinary);var a,c=r.noExitRuntime||!0;typeof WebAssembly!="object"&&W("no native wasm support detected");var f=!1;function d(L,A){L||W(A)}var p,g,m,v,y,x,$,_=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function b(L,A,P){for(var j=A+P,X=A;L[X]&&!(X>=j);)++X;if(X-A>16&&L.buffer&&_)return _.decode(L.subarray(A,X));for(var te="";A>10,56320|1023&Le)}}else te+=String.fromCharCode((31&ne)<<6|ae)}else te+=String.fromCharCode(ne)}return te}function R(L,A){return L?b(m,L,A):""}function M(L,A,P,j){if(!(j>0))return 0;for(var X=P,te=P+j-1,ne=0;ne=55296&&ae<=57343&&(ae=65536+((1023&ae)<<10)|1023&L.charCodeAt(++ne)),ae<=127){if(P>=te)break;A[P++]=ae}else if(ae<=2047){if(P+1>=te)break;A[P++]=192|ae>>6,A[P++]=128|63&ae}else if(ae<=65535){if(P+2>=te)break;A[P++]=224|ae>>12,A[P++]=128|ae>>6&63,A[P++]=128|63&ae}else{if(P+3>=te)break;A[P++]=240|ae>>18,A[P++]=128|ae>>12&63,A[P++]=128|ae>>6&63,A[P++]=128|63&ae}}return A[P]=0,P-X}function k(L){for(var A=0,P=0;P=55296&&j<=57343?(A+=4,++P):A+=3}return A}function S(L){p=L,r.HEAP8=g=new Int8Array(L),r.HEAP16=v=new Int16Array(L),r.HEAP32=y=new Int32Array(L),r.HEAPU8=m=new Uint8Array(L),r.HEAPU16=new Uint16Array(L),r.HEAPU32=x=new Uint32Array(L),r.HEAPF32=new Float32Array(L),r.HEAPF64=$=new Float64Array(L)}r.INITIAL_MEMORY;var E,I,C,w,T=[],O=[],N=[],B=0,H=null;function z(L){B++,r.monitorRunDependencies&&r.monitorRunDependencies(B)}function F(L){if(B--,r.monitorRunDependencies&&r.monitorRunDependencies(B),B==0&&H){var A=H;H=null,A()}}function W(L){r.onAbort&&r.onAbort(L),u(L="Aborted("+L+")"),f=!0,L+=". Build with -sASSERTIONS for more info.";var A=new WebAssembly.RuntimeError(L);throw n(A),A}function G(L){return L.startsWith("data:application/octet-stream;base64,")}function U(L){return L.startsWith("file://")}function Q(L){try{if(L==E&&i)return new Uint8Array(i);throw"both async and sync fetching of the wasm failed"}catch(A){W(A)}}G(E="graphvizlib.wasm")||(I=E,E=r.locateFile?r.locateFile(I,""):""+I);var ee={175664:(L,A)=>{var P=R(L),j=R(A);D.createPath("/",se.dirname(P)),D.writeFile(se.join("/",P),j)}};function V(L){this.name="ExitStatus",this.message="Program terminated with exit("+L+")",this.status=L}function q(L){for(;L.length>0;)L.shift()(r)}function re(L){this.excPtr=L,this.ptr=L-24,this.set_type=function(A){x[this.ptr+4>>2]=A},this.get_type=function(){return x[this.ptr+4>>2]},this.set_destructor=function(A){x[this.ptr+8>>2]=A},this.get_destructor=function(){return x[this.ptr+8>>2]},this.set_refcount=function(A){y[this.ptr>>2]=A},this.set_caught=function(A){A=A?1:0,g[this.ptr+12>>0]=A},this.get_caught=function(){return g[this.ptr+12>>0]!=0},this.set_rethrown=function(A){A=A?1:0,g[this.ptr+13>>0]=A},this.get_rethrown=function(){return g[this.ptr+13>>0]!=0},this.init=function(A,P){this.set_adjusted_ptr(0),this.set_type(A),this.set_destructor(P),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){var A=y[this.ptr>>2];y[this.ptr>>2]=A+1},this.release_ref=function(){var A=y[this.ptr>>2];return y[this.ptr>>2]=A-1,A===1},this.set_adjusted_ptr=function(A){x[this.ptr+16>>2]=A},this.get_adjusted_ptr=function(){return x[this.ptr+16>>2]},this.get_exception_ptr=function(){if(Kr(this.get_type()))return x[this.excPtr>>2];var A=this.get_adjusted_ptr();return A!==0?A:this.excPtr}}var se={isAbs:L=>L.charAt(0)==="/",splitPath:L=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(L).slice(1),normalizeArray:(L,A)=>{for(var P=0,j=L.length-1;j>=0;j--){var X=L[j];X==="."?L.splice(j,1):X===".."?(L.splice(j,1),P++):P&&(L.splice(j,1),P--)}if(A)for(;P;P--)L.unshift("..");return L},normalize:L=>{var A=se.isAbs(L),P=L.substr(-1)==="/";return(L=se.normalizeArray(L.split("/").filter(j=>!!j),!A).join("/"))||A||(L="."),L&&P&&(L+="/"),(A?"/":"")+L},dirname:L=>{var A=se.splitPath(L),P=A[0],j=A[1];return P||j?(j&&(j=j.substr(0,j.length-1)),P+j):"."},basename:L=>{if(L==="/")return"/";var A=(L=(L=se.normalize(L)).replace(/\/$/,"")).lastIndexOf("/");return A===-1?L:L.substr(A+1)},join:function(){var L=Array.prototype.slice.call(arguments);return se.normalize(L.join("/"))},join2:(L,A)=>se.normalize(L+"/"+A)},ge={resolve:function(){for(var L="",A=!1,P=arguments.length-1;P>=-1&&!A;P--){var j=P>=0?arguments[P]:D.cwd();if(typeof j!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!j)return"";L=j+"/"+L,A=se.isAbs(j)}return(A?"/":"")+(L=se.normalizeArray(L.split("/").filter(X=>!!X),!A).join("/"))||"."},relative:(L,A)=>{function P(Le){for(var Pe=0;Pe=0&&Le[Qe]==="";Qe--);return Pe>Qe?[]:Le.slice(Pe,Qe-Pe+1)}L=ge.resolve(L).substr(1),A=ge.resolve(A).substr(1);for(var j=P(L.split("/")),X=P(A.split("/")),te=Math.min(j.length,X.length),ne=te,ae=0;ae0?P:k(L)+1,X=new Array(j),te=M(L,X,0,X.length);return A&&(X.length=te),X}var Y={ttys:[],init:function(){},shutdown:function(){},register:function(L,A){Y.ttys[L]={input:[],output:[],ops:A},D.registerDevice(L,Y.stream_ops)},stream_ops:{open:function(L){var A=Y.ttys[L.node.rdev];if(!A)throw new D.ErrnoError(43);L.tty=A,L.seekable=!1},close:function(L){L.tty.ops.fsync(L.tty)},fsync:function(L){L.tty.ops.fsync(L.tty)},read:function(L,A,P,j,X){if(!L.tty||!L.tty.ops.get_char)throw new D.ErrnoError(60);for(var te=0,ne=0;ne0&&(l(b(L.output,0)),L.output=[])}},default_tty1_ops:{put_char:function(L,A){A===null||A===10?(u(b(L.output,0)),L.output=[]):A!=0&&L.output.push(A)},fsync:function(L){L.output&&L.output.length>0&&(u(b(L.output,0)),L.output=[])}}};function J(L){L=function(P,j){return Math.ceil(P/j)*j}(L,65536);var A=Io(65536,L);return A?function(P,j){return m.fill(0,P,P+j),P}(A,L):0}var Z={ops_table:null,mount:function(L){return Z.createNode(null,"/",16895,0)},createNode:function(L,A,P,j){if(D.isBlkdev(P)||D.isFIFO(P))throw new D.ErrnoError(63);Z.ops_table||(Z.ops_table={dir:{node:{getattr:Z.node_ops.getattr,setattr:Z.node_ops.setattr,lookup:Z.node_ops.lookup,mknod:Z.node_ops.mknod,rename:Z.node_ops.rename,unlink:Z.node_ops.unlink,rmdir:Z.node_ops.rmdir,readdir:Z.node_ops.readdir,symlink:Z.node_ops.symlink},stream:{llseek:Z.stream_ops.llseek}},file:{node:{getattr:Z.node_ops.getattr,setattr:Z.node_ops.setattr},stream:{llseek:Z.stream_ops.llseek,read:Z.stream_ops.read,write:Z.stream_ops.write,allocate:Z.stream_ops.allocate,mmap:Z.stream_ops.mmap,msync:Z.stream_ops.msync}},link:{node:{getattr:Z.node_ops.getattr,setattr:Z.node_ops.setattr,readlink:Z.node_ops.readlink},stream:{}},chrdev:{node:{getattr:Z.node_ops.getattr,setattr:Z.node_ops.setattr},stream:D.chrdev_stream_ops}});var X=D.createNode(L,A,P,j);return D.isDir(X.mode)?(X.node_ops=Z.ops_table.dir.node,X.stream_ops=Z.ops_table.dir.stream,X.contents={}):D.isFile(X.mode)?(X.node_ops=Z.ops_table.file.node,X.stream_ops=Z.ops_table.file.stream,X.usedBytes=0,X.contents=null):D.isLink(X.mode)?(X.node_ops=Z.ops_table.link.node,X.stream_ops=Z.ops_table.link.stream):D.isChrdev(X.mode)&&(X.node_ops=Z.ops_table.chrdev.node,X.stream_ops=Z.ops_table.chrdev.stream),X.timestamp=Date.now(),L&&(L.contents[A]=X,L.timestamp=X.timestamp),X},getFileDataAsTypedArray:function(L){return L.contents?L.contents.subarray?L.contents.subarray(0,L.usedBytes):new Uint8Array(L.contents):new Uint8Array(0)},expandFileStorage:function(L,A){var P=L.contents?L.contents.length:0;if(!(P>=A)){A=Math.max(A,P*(P<1048576?2:1.125)>>>0),P!=0&&(A=Math.max(A,256));var j=L.contents;L.contents=new Uint8Array(A),L.usedBytes>0&&L.contents.set(j.subarray(0,L.usedBytes),0)}},resizeFileStorage:function(L,A){if(L.usedBytes!=A)if(A==0)L.contents=null,L.usedBytes=0;else{var P=L.contents;L.contents=new Uint8Array(A),P&&L.contents.set(P.subarray(0,Math.min(A,L.usedBytes))),L.usedBytes=A}},node_ops:{getattr:function(L){var A={};return A.dev=D.isChrdev(L.mode)?L.id:1,A.ino=L.id,A.mode=L.mode,A.nlink=1,A.uid=0,A.gid=0,A.rdev=L.rdev,D.isDir(L.mode)?A.size=4096:D.isFile(L.mode)?A.size=L.usedBytes:D.isLink(L.mode)?A.size=L.link.length:A.size=0,A.atime=new Date(L.timestamp),A.mtime=new Date(L.timestamp),A.ctime=new Date(L.timestamp),A.blksize=4096,A.blocks=Math.ceil(A.size/A.blksize),A},setattr:function(L,A){A.mode!==void 0&&(L.mode=A.mode),A.timestamp!==void 0&&(L.timestamp=A.timestamp),A.size!==void 0&&Z.resizeFileStorage(L,A.size)},lookup:function(L,A){throw D.genericErrors[44]},mknod:function(L,A,P,j){return Z.createNode(L,A,P,j)},rename:function(L,A,P){if(D.isDir(L.mode)){var j;try{j=D.lookupNode(A,P)}catch{}if(j)for(var X in j.contents)throw new D.ErrnoError(55)}delete L.parent.contents[L.name],L.parent.timestamp=Date.now(),L.name=P,A.contents[P]=L,A.timestamp=L.parent.timestamp,L.parent=A},unlink:function(L,A){delete L.contents[A],L.timestamp=Date.now()},rmdir:function(L,A){var P=D.lookupNode(L,A);for(var j in P.contents)throw new D.ErrnoError(55);delete L.contents[A],L.timestamp=Date.now()},readdir:function(L){var A=[".",".."];for(var P in L.contents)L.contents.hasOwnProperty(P)&&A.push(P);return A},symlink:function(L,A,P){var j=Z.createNode(L,A,41471,0);return j.link=P,j},readlink:function(L){if(!D.isLink(L.mode))throw new D.ErrnoError(28);return L.link}},stream_ops:{read:function(L,A,P,j,X){var te=L.node.contents;if(X>=L.node.usedBytes)return 0;var ne=Math.min(L.node.usedBytes-X,j);if(ne>8&&te.subarray)A.set(te.subarray(X,X+ne),P);else for(var ae=0;ae0||P+A{if(!(L=ge.resolve(L)))return{path:"",node:null};if((A=Object.assign({follow_mount:!0,recurse_count:0},A)).recurse_count>8)throw new D.ErrnoError(32);for(var P=L.split("/").filter(Le=>!!Le),j=D.root,X="/",te=0;te40)throw new D.ErrnoError(32)}}return{path:X,node:j}},getPath:L=>{for(var A;;){if(D.isRoot(L)){var P=L.mount.mountpoint;return A?P[P.length-1]!=="/"?P+"/"+A:P+A:P}A=A?L.name+"/"+A:L.name,L=L.parent}},hashName:(L,A)=>{for(var P=0,j=0;j>>0)%D.nameTable.length},hashAddNode:L=>{var A=D.hashName(L.parent.id,L.name);L.name_next=D.nameTable[A],D.nameTable[A]=L},hashRemoveNode:L=>{var A=D.hashName(L.parent.id,L.name);if(D.nameTable[A]===L)D.nameTable[A]=L.name_next;else for(var P=D.nameTable[A];P;){if(P.name_next===L){P.name_next=L.name_next;break}P=P.name_next}},lookupNode:(L,A)=>{var P=D.mayLookup(L);if(P)throw new D.ErrnoError(P,L);for(var j=D.hashName(L.id,A),X=D.nameTable[j];X;X=X.name_next){var te=X.name;if(X.parent.id===L.id&&te===A)return X}return D.lookup(L,A)},createNode:(L,A,P,j)=>{var X=new D.FSNode(L,A,P,j);return D.hashAddNode(X),X},destroyNode:L=>{D.hashRemoveNode(L)},isRoot:L=>L===L.parent,isMountpoint:L=>!!L.mounted,isFile:L=>(61440&L)==32768,isDir:L=>(61440&L)==16384,isLink:L=>(61440&L)==40960,isChrdev:L=>(61440&L)==8192,isBlkdev:L=>(61440&L)==24576,isFIFO:L=>(61440&L)==4096,isSocket:L=>(49152&L)==49152,flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:L=>{var A=D.flagModes[L];if(A===void 0)throw new Error("Unknown file open mode: "+L);return A},flagsToPermissionString:L=>{var A=["r","w","rw"][3&L];return 512&L&&(A+="w"),A},nodePermissions:(L,A)=>D.ignorePermissions||(!A.includes("r")||292&L.mode)&&(!A.includes("w")||146&L.mode)&&(!A.includes("x")||73&L.mode)?0:2,mayLookup:L=>{var A=D.nodePermissions(L,"x");return A||(L.node_ops.lookup?0:2)},mayCreate:(L,A)=>{try{return D.lookupNode(L,A),20}catch{}return D.nodePermissions(L,"wx")},mayDelete:(L,A,P)=>{var j;try{j=D.lookupNode(L,A)}catch(te){return te.errno}var X=D.nodePermissions(L,"wx");if(X)return X;if(P){if(!D.isDir(j.mode))return 54;if(D.isRoot(j)||D.getPath(j)===D.cwd())return 10}else if(D.isDir(j.mode))return 31;return 0},mayOpen:(L,A)=>L?D.isLink(L.mode)?32:D.isDir(L.mode)&&(D.flagsToPermissionString(A)!=="r"||512&A)?31:D.nodePermissions(L,D.flagsToPermissionString(A)):44,MAX_OPEN_FDS:4096,nextfd:(L=0,A=D.MAX_OPEN_FDS)=>{for(var P=L;P<=A;P++)if(!D.streams[P])return P;throw new D.ErrnoError(33)},getStream:L=>D.streams[L],createStream:(L,A,P)=>{D.FSStream||(D.FSStream=function(){this.shared={}},D.FSStream.prototype={},Object.defineProperties(D.FSStream.prototype,{object:{get:function(){return this.node},set:function(X){this.node=X}},isRead:{get:function(){return(2097155&this.flags)!=1}},isWrite:{get:function(){return(2097155&this.flags)!=0}},isAppend:{get:function(){return 1024&this.flags}},flags:{get:function(){return this.shared.flags},set:function(X){this.shared.flags=X}},position:{get:function(){return this.shared.position},set:function(X){this.shared.position=X}}})),L=Object.assign(new D.FSStream,L);var j=D.nextfd(A,P);return L.fd=j,D.streams[j]=L,L},closeStream:L=>{D.streams[L]=null},chrdev_stream_ops:{open:L=>{var A=D.getDevice(L.node.rdev);L.stream_ops=A.stream_ops,L.stream_ops.open&&L.stream_ops.open(L)},llseek:()=>{throw new D.ErrnoError(70)}},major:L=>L>>8,minor:L=>255&L,makedev:(L,A)=>L<<8|A,registerDevice:(L,A)=>{D.devices[L]={stream_ops:A}},getDevice:L=>D.devices[L],getMounts:L=>{for(var A=[],P=[L];P.length;){var j=P.pop();A.push(j),P.push.apply(P,j.mounts)}return A},syncfs:(L,A)=>{typeof L=="function"&&(A=L,L=!1),D.syncFSRequests++,D.syncFSRequests>1&&u("warning: "+D.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var P=D.getMounts(D.root.mount),j=0;function X(ne){return D.syncFSRequests--,A(ne)}function te(ne){if(ne)return te.errored?void 0:(te.errored=!0,X(ne));++j>=P.length&&X(null)}P.forEach(ne=>{if(!ne.type.syncfs)return te(null);ne.type.syncfs(ne,L,te)})},mount:(L,A,P)=>{var j,X=P==="/",te=!P;if(X&&D.root)throw new D.ErrnoError(10);if(!X&&!te){var ne=D.lookupPath(P,{follow_mount:!1});if(P=ne.path,j=ne.node,D.isMountpoint(j))throw new D.ErrnoError(10);if(!D.isDir(j.mode))throw new D.ErrnoError(54)}var ae={type:L,opts:A,mountpoint:P,mounts:[]},Ce=L.mount(ae);return Ce.mount=ae,ae.root=Ce,X?D.root=Ce:j&&(j.mounted=ae,j.mount&&j.mount.mounts.push(ae)),Ce},unmount:L=>{var A=D.lookupPath(L,{follow_mount:!1});if(!D.isMountpoint(A.node))throw new D.ErrnoError(28);var P=A.node,j=P.mounted,X=D.getMounts(j);Object.keys(D.nameTable).forEach(ne=>{for(var ae=D.nameTable[ne];ae;){var Ce=ae.name_next;X.includes(ae.mount)&&D.destroyNode(ae),ae=Ce}}),P.mounted=null;var te=P.mount.mounts.indexOf(j);P.mount.mounts.splice(te,1)},lookup:(L,A)=>L.node_ops.lookup(L,A),mknod:(L,A,P)=>{var j=D.lookupPath(L,{parent:!0}).node,X=se.basename(L);if(!X||X==="."||X==="..")throw new D.ErrnoError(28);var te=D.mayCreate(j,X);if(te)throw new D.ErrnoError(te);if(!j.node_ops.mknod)throw new D.ErrnoError(63);return j.node_ops.mknod(j,X,A,P)},create:(L,A)=>(A=A!==void 0?A:438,A&=4095,A|=32768,D.mknod(L,A,0)),mkdir:(L,A)=>(A=A!==void 0?A:511,A&=1023,A|=16384,D.mknod(L,A,0)),mkdirTree:(L,A)=>{for(var P=L.split("/"),j="",X=0;X(P===void 0&&(P=A,A=438),A|=8192,D.mknod(L,A,P)),symlink:(L,A)=>{if(!ge.resolve(L))throw new D.ErrnoError(44);var P=D.lookupPath(A,{parent:!0}).node;if(!P)throw new D.ErrnoError(44);var j=se.basename(A),X=D.mayCreate(P,j);if(X)throw new D.ErrnoError(X);if(!P.node_ops.symlink)throw new D.ErrnoError(63);return P.node_ops.symlink(P,j,L)},rename:(L,A)=>{var P,j,X=se.dirname(L),te=se.dirname(A),ne=se.basename(L),ae=se.basename(A);if(P=D.lookupPath(L,{parent:!0}).node,j=D.lookupPath(A,{parent:!0}).node,!P||!j)throw new D.ErrnoError(44);if(P.mount!==j.mount)throw new D.ErrnoError(75);var Ce,Le=D.lookupNode(P,ne),Pe=ge.relative(L,te);if(Pe.charAt(0)!==".")throw new D.ErrnoError(28);if((Pe=ge.relative(A,X)).charAt(0)!==".")throw new D.ErrnoError(55);try{Ce=D.lookupNode(j,ae)}catch{}if(Le!==Ce){var Qe=D.isDir(Le.mode),Te=D.mayDelete(P,ne,Qe);if(Te)throw new D.ErrnoError(Te);if(Te=Ce?D.mayDelete(j,ae,Qe):D.mayCreate(j,ae))throw new D.ErrnoError(Te);if(!P.node_ops.rename)throw new D.ErrnoError(63);if(D.isMountpoint(Le)||Ce&&D.isMountpoint(Ce))throw new D.ErrnoError(10);if(j!==P&&(Te=D.nodePermissions(P,"w")))throw new D.ErrnoError(Te);D.hashRemoveNode(Le);try{P.node_ops.rename(Le,j,ae)}catch(qe){throw qe}finally{D.hashAddNode(Le)}}},rmdir:L=>{var A=D.lookupPath(L,{parent:!0}).node,P=se.basename(L),j=D.lookupNode(A,P),X=D.mayDelete(A,P,!0);if(X)throw new D.ErrnoError(X);if(!A.node_ops.rmdir)throw new D.ErrnoError(63);if(D.isMountpoint(j))throw new D.ErrnoError(10);A.node_ops.rmdir(A,P),D.destroyNode(j)},readdir:L=>{var A=D.lookupPath(L,{follow:!0}).node;if(!A.node_ops.readdir)throw new D.ErrnoError(54);return A.node_ops.readdir(A)},unlink:L=>{var A=D.lookupPath(L,{parent:!0}).node;if(!A)throw new D.ErrnoError(44);var P=se.basename(L),j=D.lookupNode(A,P),X=D.mayDelete(A,P,!1);if(X)throw new D.ErrnoError(X);if(!A.node_ops.unlink)throw new D.ErrnoError(63);if(D.isMountpoint(j))throw new D.ErrnoError(10);A.node_ops.unlink(A,P),D.destroyNode(j)},readlink:L=>{var A=D.lookupPath(L).node;if(!A)throw new D.ErrnoError(44);if(!A.node_ops.readlink)throw new D.ErrnoError(28);return ge.resolve(D.getPath(A.parent),A.node_ops.readlink(A))},stat:(L,A)=>{var P=D.lookupPath(L,{follow:!A}).node;if(!P)throw new D.ErrnoError(44);if(!P.node_ops.getattr)throw new D.ErrnoError(63);return P.node_ops.getattr(P)},lstat:L=>D.stat(L,!0),chmod:(L,A,P)=>{var j;if(!(j=typeof L=="string"?D.lookupPath(L,{follow:!P}).node:L).node_ops.setattr)throw new D.ErrnoError(63);j.node_ops.setattr(j,{mode:4095&A|-4096&j.mode,timestamp:Date.now()})},lchmod:(L,A)=>{D.chmod(L,A,!0)},fchmod:(L,A)=>{var P=D.getStream(L);if(!P)throw new D.ErrnoError(8);D.chmod(P.node,A)},chown:(L,A,P,j)=>{var X;if(!(X=typeof L=="string"?D.lookupPath(L,{follow:!j}).node:L).node_ops.setattr)throw new D.ErrnoError(63);X.node_ops.setattr(X,{timestamp:Date.now()})},lchown:(L,A,P)=>{D.chown(L,A,P,!0)},fchown:(L,A,P)=>{var j=D.getStream(L);if(!j)throw new D.ErrnoError(8);D.chown(j.node,A,P)},truncate:(L,A)=>{if(A<0)throw new D.ErrnoError(28);var P;if(!(P=typeof L=="string"?D.lookupPath(L,{follow:!0}).node:L).node_ops.setattr)throw new D.ErrnoError(63);if(D.isDir(P.mode))throw new D.ErrnoError(31);if(!D.isFile(P.mode))throw new D.ErrnoError(28);var j=D.nodePermissions(P,"w");if(j)throw new D.ErrnoError(j);P.node_ops.setattr(P,{size:A,timestamp:Date.now()})},ftruncate:(L,A)=>{var P=D.getStream(L);if(!P)throw new D.ErrnoError(8);if(!(2097155&P.flags))throw new D.ErrnoError(28);D.truncate(P.node,A)},utime:(L,A,P)=>{var j=D.lookupPath(L,{follow:!0}).node;j.node_ops.setattr(j,{timestamp:Math.max(A,P)})},open:(L,A,P)=>{if(L==="")throw new D.ErrnoError(44);var j;if(P=P===void 0?438:P,P=64&(A=typeof A=="string"?D.modeStringToFlags(A):A)?4095&P|32768:0,typeof L=="object")j=L;else{L=se.normalize(L);try{j=D.lookupPath(L,{follow:!(131072&A)}).node}catch{}}var X=!1;if(64&A)if(j){if(128&A)throw new D.ErrnoError(20)}else j=D.mknod(L,P,0),X=!0;if(!j)throw new D.ErrnoError(44);if(D.isChrdev(j.mode)&&(A&=-513),65536&A&&!D.isDir(j.mode))throw new D.ErrnoError(54);if(!X){var te=D.mayOpen(j,A);if(te)throw new D.ErrnoError(te)}512&A&&!X&&D.truncate(j,0),A&=-131713;var ne=D.createStream({node:j,path:D.getPath(j),flags:A,seekable:!0,position:0,stream_ops:j.stream_ops,ungotten:[],error:!1});return ne.stream_ops.open&&ne.stream_ops.open(ne),!r.logReadFiles||1&A||(D.readFiles||(D.readFiles={}),L in D.readFiles||(D.readFiles[L]=1)),ne},close:L=>{if(D.isClosed(L))throw new D.ErrnoError(8);L.getdents&&(L.getdents=null);try{L.stream_ops.close&&L.stream_ops.close(L)}catch(A){throw A}finally{D.closeStream(L.fd)}L.fd=null},isClosed:L=>L.fd===null,llseek:(L,A,P)=>{if(D.isClosed(L))throw new D.ErrnoError(8);if(!L.seekable||!L.stream_ops.llseek)throw new D.ErrnoError(70);if(P!=0&&P!=1&&P!=2)throw new D.ErrnoError(28);return L.position=L.stream_ops.llseek(L,A,P),L.ungotten=[],L.position},read:(L,A,P,j,X)=>{if(j<0||X<0)throw new D.ErrnoError(28);if(D.isClosed(L))throw new D.ErrnoError(8);if((2097155&L.flags)==1)throw new D.ErrnoError(8);if(D.isDir(L.node.mode))throw new D.ErrnoError(31);if(!L.stream_ops.read)throw new D.ErrnoError(28);var te=X!==void 0;if(te){if(!L.seekable)throw new D.ErrnoError(70)}else X=L.position;var ne=L.stream_ops.read(L,A,P,j,X);return te||(L.position+=ne),ne},write:(L,A,P,j,X,te)=>{if(j<0||X<0)throw new D.ErrnoError(28);if(D.isClosed(L))throw new D.ErrnoError(8);if(!(2097155&L.flags))throw new D.ErrnoError(8);if(D.isDir(L.node.mode))throw new D.ErrnoError(31);if(!L.stream_ops.write)throw new D.ErrnoError(28);L.seekable&&1024&L.flags&&D.llseek(L,0,2);var ne=X!==void 0;if(ne){if(!L.seekable)throw new D.ErrnoError(70)}else X=L.position;var ae=L.stream_ops.write(L,A,P,j,X,te);return ne||(L.position+=ae),ae},allocate:(L,A,P)=>{if(D.isClosed(L))throw new D.ErrnoError(8);if(A<0||P<=0)throw new D.ErrnoError(28);if(!(2097155&L.flags))throw new D.ErrnoError(8);if(!D.isFile(L.node.mode)&&!D.isDir(L.node.mode))throw new D.ErrnoError(43);if(!L.stream_ops.allocate)throw new D.ErrnoError(138);L.stream_ops.allocate(L,A,P)},mmap:(L,A,P,j,X)=>{if(2&j&&!(2&X)&&(2097155&L.flags)!=2)throw new D.ErrnoError(2);if((2097155&L.flags)==1)throw new D.ErrnoError(2);if(!L.stream_ops.mmap)throw new D.ErrnoError(43);return L.stream_ops.mmap(L,A,P,j,X)},msync:(L,A,P,j,X)=>L.stream_ops.msync?L.stream_ops.msync(L,A,P,j,X):0,munmap:L=>0,ioctl:(L,A,P)=>{if(!L.stream_ops.ioctl)throw new D.ErrnoError(59);return L.stream_ops.ioctl(L,A,P)},readFile:(L,A={})=>{if(A.flags=A.flags||0,A.encoding=A.encoding||"binary",A.encoding!=="utf8"&&A.encoding!=="binary")throw new Error('Invalid encoding type "'+A.encoding+'"');var P,j=D.open(L,A.flags),X=D.stat(L).size,te=new Uint8Array(X);return D.read(j,te,0,X,0),A.encoding==="utf8"?P=b(te,0):A.encoding==="binary"&&(P=te),D.close(j),P},writeFile:(L,A,P={})=>{P.flags=P.flags||577;var j=D.open(L,P.flags,P.mode);if(typeof A=="string"){var X=new Uint8Array(k(A)+1),te=M(A,X,0,X.length);D.write(j,X,0,te,void 0,P.canOwn)}else{if(!ArrayBuffer.isView(A))throw new Error("Unsupported data type");D.write(j,A,0,A.byteLength,void 0,P.canOwn)}D.close(j)},cwd:()=>D.currentPath,chdir:L=>{var A=D.lookupPath(L,{follow:!0});if(A.node===null)throw new D.ErrnoError(44);if(!D.isDir(A.node.mode))throw new D.ErrnoError(54);var P=D.nodePermissions(A.node,"x");if(P)throw new D.ErrnoError(P);D.currentPath=A.path},createDefaultDirectories:()=>{D.mkdir("/tmp"),D.mkdir("/home"),D.mkdir("/home/web_user")},createDefaultDevices:()=>{D.mkdir("/dev"),D.registerDevice(D.makedev(1,3),{read:()=>0,write:(A,P,j,X,te)=>X}),D.mkdev("/dev/null",D.makedev(1,3)),Y.register(D.makedev(5,0),Y.default_tty_ops),Y.register(D.makedev(6,0),Y.default_tty1_ops),D.mkdev("/dev/tty",D.makedev(5,0)),D.mkdev("/dev/tty1",D.makedev(6,0));var L=function(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){var A=new Uint8Array(1);return()=>(crypto.getRandomValues(A),A[0])}return()=>W("randomDevice")}();D.createDevice("/dev","random",L),D.createDevice("/dev","urandom",L),D.mkdir("/dev/shm"),D.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{D.mkdir("/proc");var L=D.mkdir("/proc/self");D.mkdir("/proc/self/fd"),D.mount({mount:()=>{var A=D.createNode(L,"fd",16895,73);return A.node_ops={lookup:(P,j)=>{var X=+j,te=D.getStream(X);if(!te)throw new D.ErrnoError(8);var ne={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>te.path}};return ne.parent=ne,ne}},A}},{},"/proc/self/fd")},createStandardStreams:()=>{r.stdin?D.createDevice("/dev","stdin",r.stdin):D.symlink("/dev/tty","/dev/stdin"),r.stdout?D.createDevice("/dev","stdout",null,r.stdout):D.symlink("/dev/tty","/dev/stdout"),r.stderr?D.createDevice("/dev","stderr",null,r.stderr):D.symlink("/dev/tty1","/dev/stderr"),D.open("/dev/stdin",0),D.open("/dev/stdout",1),D.open("/dev/stderr",1)},ensureErrnoError:()=>{D.ErrnoError||(D.ErrnoError=function(L,A){this.node=A,this.setErrno=function(P){this.errno=P},this.setErrno(L),this.message="FS error"},D.ErrnoError.prototype=new Error,D.ErrnoError.prototype.constructor=D.ErrnoError,[44].forEach(L=>{D.genericErrors[L]=new D.ErrnoError(L),D.genericErrors[L].stack=""}))},staticInit:()=>{D.ensureErrnoError(),D.nameTable=new Array(4096),D.mount(Z,{},"/"),D.createDefaultDirectories(),D.createDefaultDevices(),D.createSpecialDirectories(),D.filesystems={MEMFS:Z}},init:(L,A,P)=>{D.init.initialized=!0,D.ensureErrnoError(),r.stdin=L||r.stdin,r.stdout=A||r.stdout,r.stderr=P||r.stderr,D.createStandardStreams()},quit:()=>{D.init.initialized=!1;for(var L=0;L{var P=0;return L&&(P|=365),A&&(P|=146),P},findObject:(L,A)=>{var P=D.analyzePath(L,A);return P.exists?P.object:null},analyzePath:(L,A)=>{try{L=(j=D.lookupPath(L,{follow:!A})).path}catch{}var P={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var j=D.lookupPath(L,{parent:!0});P.parentExists=!0,P.parentPath=j.path,P.parentObject=j.node,P.name=se.basename(L),j=D.lookupPath(L,{follow:!A}),P.exists=!0,P.path=j.path,P.object=j.node,P.name=j.node.name,P.isRoot=j.path==="/"}catch(X){P.error=X.errno}return P},createPath:(L,A,P,j)=>{L=typeof L=="string"?L:D.getPath(L);for(var X=A.split("/").reverse();X.length;){var te=X.pop();if(te){var ne=se.join2(L,te);try{D.mkdir(ne)}catch{}L=ne}}return ne},createFile:(L,A,P,j,X)=>{var te=se.join2(typeof L=="string"?L:D.getPath(L),A),ne=D.getMode(j,X);return D.create(te,ne)},createDataFile:(L,A,P,j,X,te)=>{var ne=A;L&&(L=typeof L=="string"?L:D.getPath(L),ne=A?se.join2(L,A):L);var ae=D.getMode(j,X),Ce=D.create(ne,ae);if(P){if(typeof P=="string"){for(var Le=new Array(P.length),Pe=0,Qe=P.length;Pe{var X=se.join2(typeof L=="string"?L:D.getPath(L),A),te=D.getMode(!!P,!!j);D.createDevice.major||(D.createDevice.major=64);var ne=D.makedev(D.createDevice.major++,0);return D.registerDevice(ne,{open:ae=>{ae.seekable=!1},close:ae=>{j&&j.buffer&&j.buffer.length&&j(10)},read:(ae,Ce,Le,Pe,Qe)=>{for(var Te=0,qe=0;qe{for(var Te=0;Te{if(L.isDevice||L.isFolder||L.link||L.contents)return!0;throw typeof XMLHttpRequest<"u"?new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."):new Error("Cannot load without read() or XMLHttpRequest.")},createLazyFile:(L,A,P,j,X)=>{if(typeof XMLHttpRequest<"u")throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var te={isDevice:!1,url:P},ne=D.createFile(L,A,te,j,X);te.contents?ne.contents=te.contents:te.url&&(ne.contents=null,ne.url=te.url),Object.defineProperties(ne,{usedBytes:{get:function(){return this.contents.length}}});var ae={};function Ce(Le,Pe,Qe,Te,qe){var yt=Le.node.contents;if(qe>=yt.length)return 0;var nr=Math.min(yt.length-qe,Te);if(yt.slice)for(var Ut=0;Ut{var Pe=ne.stream_ops[Le];ae[Le]=function(){return D.forceLoadFile(ne),Pe.apply(null,arguments)}}),ae.read=(Le,Pe,Qe,Te,qe)=>(D.forceLoadFile(ne),Ce(Le,Pe,Qe,Te,qe)),ae.mmap=(Le,Pe,Qe,Te,qe)=>{D.forceLoadFile(ne);var yt=J(Pe);if(!yt)throw new D.ErrnoError(48);return Ce(Le,g,yt,Pe,Qe),{ptr:yt,allocated:!0}},ne.stream_ops=ae,ne},createPreloadedFile:(L,A,P,j,X,te,ne,ae,Ce,Le)=>{var Pe=A?ge.resolve(se.join2(L,A)):L;function Qe(Te){function qe(yt){Le&&Le(),ae||D.createDataFile(L,A,yt,j,X,Ce),te&&te(),F()}Browser.handledByPreloadPlugin(Te,Pe,qe,()=>{ne&&ne(),F()})||qe(Te)}z(),typeof P=="string"?function(Te,qe,yt,nr){var Ut=nr?"":"al "+Te;(void 0)(Te,Vr=>{d(Vr,'Loading data file "'+Te+'" failed (no arrayBuffer).'),qe(new Uint8Array(Vr)),Ut&&F()},Vr=>{if(!yt)throw'Loading data file "'+Te+'" failed.';yt()}),Ut&&z()}(P,Te=>Qe(Te),ne):Qe(P)},indexedDB:()=>window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB,DB_NAME:()=>"EM_FS_"+window.location.pathname,DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(L,A,P)=>{A=A||(()=>{}),P=P||(()=>{});var j=D.indexedDB();try{var X=j.open(D.DB_NAME(),D.DB_VERSION)}catch(te){return P(te)}X.onupgradeneeded=()=>{l("creating db"),X.result.createObjectStore(D.DB_STORE_NAME)},X.onsuccess=()=>{var te=X.result.transaction([D.DB_STORE_NAME],"readwrite"),ne=te.objectStore(D.DB_STORE_NAME),ae=0,Ce=0,Le=L.length;function Pe(){Ce==0?A():P()}L.forEach(Qe=>{var Te=ne.put(D.analyzePath(Qe).object.contents,Qe);Te.onsuccess=()=>{++ae+Ce==Le&&Pe()},Te.onerror=()=>{Ce++,ae+Ce==Le&&Pe()}}),te.onerror=P},X.onerror=P},loadFilesFromDB:(L,A,P)=>{A=A||(()=>{}),P=P||(()=>{});var j=D.indexedDB();try{var X=j.open(D.DB_NAME(),D.DB_VERSION)}catch(te){return P(te)}X.onupgradeneeded=P,X.onsuccess=()=>{var te=X.result;try{var ne=te.transaction([D.DB_STORE_NAME],"readonly")}catch(Te){return void P(Te)}var ae=ne.objectStore(D.DB_STORE_NAME),Ce=0,Le=0,Pe=L.length;function Qe(){Le==0?A():P()}L.forEach(Te=>{var qe=ae.get(Te);qe.onsuccess=()=>{D.analyzePath(Te).exists&&D.unlink(Te),D.createDataFile(se.dirname(Te),se.basename(Te),qe.result,!0,!0,!0),++Ce+Le==Pe&&Qe()},qe.onerror=()=>{Le++,Ce+Le==Pe&&Qe()}}),ne.onerror=P},X.onerror=P}},oe={DEFAULT_POLLMASK:5,calculateAt:function(L,A,P){if(se.isAbs(A))return A;var j;if(j=L===-100?D.cwd():oe.getStreamFromFD(L).path,A.length==0){if(!P)throw new D.ErrnoError(44);return j}return se.join2(j,A)},doStat:function(L,A,P){try{var j=L(A)}catch(ae){if(ae&&ae.node&&se.normalize(A)!==se.normalize(D.getPath(ae.node)))return-54;throw ae}y[P>>2]=j.dev,y[P+8>>2]=j.ino,y[P+12>>2]=j.mode,x[P+16>>2]=j.nlink,y[P+20>>2]=j.uid,y[P+24>>2]=j.gid,y[P+28>>2]=j.rdev,w=[j.size>>>0,(C=j.size,+Math.abs(C)>=1?C>0?(0|Math.min(+Math.floor(C/4294967296),4294967295))>>>0:~~+Math.ceil((C-+(~~C>>>0))/4294967296)>>>0:0)],y[P+40>>2]=w[0],y[P+44>>2]=w[1],y[P+48>>2]=4096,y[P+52>>2]=j.blocks;var X=j.atime.getTime(),te=j.mtime.getTime(),ne=j.ctime.getTime();return w=[Math.floor(X/1e3)>>>0,(C=Math.floor(X/1e3),+Math.abs(C)>=1?C>0?(0|Math.min(+Math.floor(C/4294967296),4294967295))>>>0:~~+Math.ceil((C-+(~~C>>>0))/4294967296)>>>0:0)],y[P+56>>2]=w[0],y[P+60>>2]=w[1],x[P+64>>2]=X%1e3*1e3,w=[Math.floor(te/1e3)>>>0,(C=Math.floor(te/1e3),+Math.abs(C)>=1?C>0?(0|Math.min(+Math.floor(C/4294967296),4294967295))>>>0:~~+Math.ceil((C-+(~~C>>>0))/4294967296)>>>0:0)],y[P+72>>2]=w[0],y[P+76>>2]=w[1],x[P+80>>2]=te%1e3*1e3,w=[Math.floor(ne/1e3)>>>0,(C=Math.floor(ne/1e3),+Math.abs(C)>=1?C>0?(0|Math.min(+Math.floor(C/4294967296),4294967295))>>>0:~~+Math.ceil((C-+(~~C>>>0))/4294967296)>>>0:0)],y[P+88>>2]=w[0],y[P+92>>2]=w[1],x[P+96>>2]=ne%1e3*1e3,w=[j.ino>>>0,(C=j.ino,+Math.abs(C)>=1?C>0?(0|Math.min(+Math.floor(C/4294967296),4294967295))>>>0:~~+Math.ceil((C-+(~~C>>>0))/4294967296)>>>0:0)],y[P+104>>2]=w[0],y[P+108>>2]=w[1],0},doMsync:function(L,A,P,j,X){if(!D.isFile(A.node.mode))throw new D.ErrnoError(43);if(2&j)return 0;var te=m.slice(L,L+P);D.msync(A,te,X,P,j)},varargs:void 0,get:function(){return oe.varargs+=4,y[oe.varargs-4>>2]},getStr:function(L){return R(L)},getStreamFromFD:function(L){var A=D.getStream(L);if(!A)throw new D.ErrnoError(8);return A}},me=[];function de(L,A,P){var j=function(X,te){var ne;for(me.length=0,te>>=2;ne=m[X++];)te+=ne!=105&te,me.push(ne==105?y[te]:$[te++>>1]),++te;return me}(A,P);return ee[L].apply(null,j)}function pe(L){try{return a.grow(L-p.byteLength+65535>>>16),S(a.buffer),1}catch{}}var fe={};function Se(){if(!Se.strings){var L={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:s||"./this.program"};for(var A in fe)fe[A]===void 0?delete L[A]:L[A]=fe[A];var P=[];for(var A in L)P.push(A+"="+L[A]);Se.strings=P}return Se.strings}function ie(L){c||(r.onExit&&r.onExit(L),f=!0),h(L,new V(L))}var le=function(L,A){ie(L)};function he(L){return L%4==0&&(L%100!=0||L%400==0)}var $e=[31,29,31,30,31,30,31,31,30,31,30,31],Oe=[31,28,31,30,31,30,31,31,30,31,30,31];function ke(L,A,P,j){var X=y[j+40>>2],te={tm_sec:y[j>>2],tm_min:y[j+4>>2],tm_hour:y[j+8>>2],tm_mday:y[j+12>>2],tm_mon:y[j+16>>2],tm_year:y[j+20>>2],tm_wday:y[j+24>>2],tm_yday:y[j+28>>2],tm_isdst:y[j+32>>2],tm_gmtoff:y[j+36>>2],tm_zone:X?R(X):""},ne=R(P),ae={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var Ce in ae)ne=ne.replace(new RegExp(Ce,"g"),ae[Ce]);var Le=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],Pe=["January","February","March","April","May","June","July","August","September","October","November","December"];function Qe(ye,Be,Yt){for(var Nt=typeof ye=="number"?ye.toString():ye||"";Nt.length0?1:0}var Nt;return(Nt=Yt(ye.getFullYear()-Be.getFullYear()))===0&&(Nt=Yt(ye.getMonth()-Be.getMonth()))===0&&(Nt=Yt(ye.getDate()-Be.getDate())),Nt}function yt(ye){switch(ye.getDay()){case 0:return new Date(ye.getFullYear()-1,11,29);case 1:return ye;case 2:return new Date(ye.getFullYear(),0,3);case 3:return new Date(ye.getFullYear(),0,2);case 4:return new Date(ye.getFullYear(),0,1);case 5:return new Date(ye.getFullYear()-1,11,31);case 6:return new Date(ye.getFullYear()-1,11,30)}}function nr(ye){var Be=function(w0,ia){for(var tn=new Date(w0.getTime());ia>0;){var b0=he(tn.getFullYear()),Cc=tn.getMonth(),rd=(b0?$e:Oe)[Cc];if(!(ia>rd-tn.getDate()))return tn.setDate(tn.getDate()+ia),tn;ia-=rd-tn.getDate()+1,tn.setDate(1),Cc<11?tn.setMonth(Cc+1):(tn.setMonth(0),tn.setFullYear(tn.getFullYear()+1))}return tn}(new Date(ye.tm_year+1900,0,1),ye.tm_yday),Yt=new Date(Be.getFullYear(),0,4),Nt=new Date(Be.getFullYear()+1,0,4),Xr=yt(Yt),y0=yt(Nt);return qe(Xr,Be)<=0?qe(y0,Be)<=0?Be.getFullYear()+1:Be.getFullYear():Be.getFullYear()-1}var Ut={"%a":function(ye){return Le[ye.tm_wday].substring(0,3)},"%A":function(ye){return Le[ye.tm_wday]},"%b":function(ye){return Pe[ye.tm_mon].substring(0,3)},"%B":function(ye){return Pe[ye.tm_mon]},"%C":function(ye){return Te((ye.tm_year+1900)/100|0,2)},"%d":function(ye){return Te(ye.tm_mday,2)},"%e":function(ye){return Qe(ye.tm_mday,2," ")},"%g":function(ye){return nr(ye).toString().substring(2)},"%G":function(ye){return nr(ye)},"%H":function(ye){return Te(ye.tm_hour,2)},"%I":function(ye){var Be=ye.tm_hour;return Be==0?Be=12:Be>12&&(Be-=12),Te(Be,2)},"%j":function(ye){return Te(ye.tm_mday+function(Be,Yt){for(var Nt=0,Xr=0;Xr<=Yt;Nt+=Be[Xr++]);return Nt}(he(ye.tm_year+1900)?$e:Oe,ye.tm_mon-1),3)},"%m":function(ye){return Te(ye.tm_mon+1,2)},"%M":function(ye){return Te(ye.tm_min,2)},"%n":function(){return` -`},"%p":function(ye){return ye.tm_hour>=0&&ye.tm_hour<12?"AM":"PM"},"%S":function(ye){return Te(ye.tm_sec,2)},"%t":function(){return" "},"%u":function(ye){return ye.tm_wday||7},"%U":function(ye){var Be=ye.tm_yday+7-ye.tm_wday;return Te(Math.floor(Be/7),2)},"%V":function(ye){var Be=Math.floor((ye.tm_yday+7-(ye.tm_wday+6)%7)/7);if((ye.tm_wday+371-ye.tm_yday-2)%7<=2&&Be++,Be){if(Be==53){var Yt=(ye.tm_wday+371-ye.tm_yday)%7;Yt==4||Yt==3&&he(ye.tm_year)||(Be=1)}}else{Be=52;var Nt=(ye.tm_wday+7-ye.tm_yday-1)%7;(Nt==4||Nt==5&&he(ye.tm_year%400-1))&&Be++}return Te(Be,2)},"%w":function(ye){return ye.tm_wday},"%W":function(ye){var Be=ye.tm_yday+7-(ye.tm_wday+6)%7;return Te(Math.floor(Be/7),2)},"%y":function(ye){return(ye.tm_year+1900).toString().substring(2)},"%Y":function(ye){return ye.tm_year+1900},"%z":function(ye){var Be=ye.tm_gmtoff,Yt=Be>=0;return Be=(Be=Math.abs(Be)/60)/60*100+Be%60,(Yt?"+":"-")+("0000"+Be).slice(-4)},"%Z":function(ye){return ye.tm_zone},"%%":function(){return"%"}};for(var Ce in ne=ne.replace(/%%/g,"\0\0"),Ut)ne.includes(Ce)&&(ne=ne.replace(new RegExp(Ce,"g"),Ut[Ce](te)));var Vr=K(ne=ne.replace(/\0\0/g,"%"),!1);return Vr.length>A?0:(function(ye,Be){g.set(ye,Be)}(Vr,L),Vr.length-1)}var Ae=function(L,A,P,j){L||(L=this),this.parent=L,this.mount=L.mount,this.mounted=null,this.id=D.nextInode++,this.name=A,this.mode=P,this.node_ops={},this.stream_ops={},this.rdev=j},Ge=365,ze=146;Object.defineProperties(Ae.prototype,{read:{get:function(){return(this.mode&Ge)===Ge},set:function(L){L?this.mode|=Ge:this.mode&=-366}},write:{get:function(){return(this.mode&ze)===ze},set:function(L){L?this.mode|=ze:this.mode&=-147}},isFolder:{get:function(){return D.isDir(this.mode)}},isDevice:{get:function(){return D.isChrdev(this.mode)}}}),D.FSNode=Ae,D.staticInit();var Ue={b:function(L,A,P){throw new re(L).init(A,P),L},l:function(L,A,P,j){try{if(A=oe.getStr(A),A=oe.calculateAt(L,A),-8&P)return-28;var X=D.lookupPath(A,{follow:!0}).node;if(!X)return-44;var te="";return 4&P&&(te+="r"),2&P&&(te+="w"),1&P&&(te+="x"),te&&D.nodePermissions(X,te)?-2:0}catch(ne){if(D===void 0||!(ne instanceof D.ErrnoError))throw ne;return-ne.errno}},i:function(L,A,P){oe.varargs=P;try{var j=oe.getStreamFromFD(L);switch(A){case 0:return(X=oe.get())<0?-28:D.createStream(j,X).fd;case 1:case 2:case 6:case 7:return 0;case 3:return j.flags;case 4:var X=oe.get();return j.flags|=X,0;case 5:return X=oe.get(),v[X+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return te=28,y[Do()>>2]=te,-1}}catch(ne){if(D===void 0||!(ne instanceof D.ErrnoError))throw ne;return-ne.errno}var te},w:function(L,A){try{var P=oe.getStreamFromFD(L);return oe.doStat(D.stat,P.path,A)}catch(j){if(D===void 0||!(j instanceof D.ErrnoError))throw j;return-j.errno}},x:function(L,A,P){oe.varargs=P;try{var j=oe.getStreamFromFD(L);switch(A){case 21509:case 21505:case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:case 21523:case 21524:return j.tty?0:-59;case 21519:if(!j.tty)return-59;var X=oe.get();return y[X>>2]=0,0;case 21520:return j.tty?-28:-59;case 21531:return X=oe.get(),D.ioctl(j,A,X);default:return-28}}catch(te){if(D===void 0||!(te instanceof D.ErrnoError))throw te;return-te.errno}},u:function(L,A,P,j){try{A=oe.getStr(A);var X=256&j,te=4096&j;return j&=-6401,A=oe.calculateAt(L,A,te),oe.doStat(X?D.lstat:D.stat,A,P)}catch(ne){if(D===void 0||!(ne instanceof D.ErrnoError))throw ne;return-ne.errno}},d:function(L,A,P,j){oe.varargs=j;try{A=oe.getStr(A),A=oe.calculateAt(L,A);var X=j?oe.get():0;return D.open(A,P,X).fd}catch(te){if(D===void 0||!(te instanceof D.ErrnoError))throw te;return-te.errno}},v:function(L,A){try{return L=oe.getStr(L),oe.doStat(D.stat,L,A)}catch(P){if(D===void 0||!(P instanceof D.ErrnoError))throw P;return-P.errno}},p:function(L,A,P){try{return A=oe.getStr(A),A=oe.calculateAt(L,A),P===0?D.unlink(A):P===512?D.rmdir(A):W("Invalid flags passed to unlinkat"),0}catch(j){if(D===void 0||!(j instanceof D.ErrnoError))throw j;return-j.errno}},j:function(){return!0},q:function(L,A,P,j,X,te,ne){try{var ae=oe.getStreamFromFD(j),Ce=D.mmap(ae,L,X,A,P),Le=Ce.ptr;return y[te>>2]=Ce.allocated,x[ne>>2]=Le,0}catch(Pe){if(D===void 0||!(Pe instanceof D.ErrnoError))throw Pe;return-Pe.errno}},r:function(L,A,P,j,X,te){try{var ne=oe.getStreamFromFD(X);2&P&&oe.doMsync(L,ne,A,j,te),D.munmap(ne)}catch(ae){if(D===void 0||!(ae instanceof D.ErrnoError))throw ae;return-ae.errno}},a:function(){W("")},y:function(L,A,P){return de(L,A,P)},e:function(){return Date.now()},k:function(L,A,P){m.copyWithin(L,A,A+P)},o:function(L){var A,P,j=m.length,X=2147483648;if((L>>>=0)>X)return!1;for(var te=1;te<=4;te*=2){var ne=j*(1+.2/te);if(ne=Math.min(ne,L+100663296),pe(Math.min(X,(A=Math.max(L,ne))+((P=65536)-A%P)%P)))return!0}return!1},s:function(L,A){var P=0;return Se().forEach(function(j,X){var te=A+P;x[L+4*X>>2]=te,function(ne,ae,Ce){for(var Le=0;Le>0]=ne.charCodeAt(Le);Ce||(g[ae>>0]=0)}(j,te),P+=j.length+1}),0},t:function(L,A){var P=Se();x[L>>2]=P.length;var j=0;return P.forEach(function(X){j+=X.length+1}),x[A>>2]=j,0},f:le,c:function(L){try{var A=oe.getStreamFromFD(L);return D.close(A),0}catch(P){if(D===void 0||!(P instanceof D.ErrnoError))throw P;return P.errno}},g:function(L,A,P,j){try{var X=function(te,ne,ae,Ce){for(var Le=0,Pe=0;Pe>2],Te=x[ne+4>>2];ne+=8;var qe=D.read(te,g,Qe,Te,Ce);if(qe<0)return-1;if(Le+=qe,qe>2]=X,0}catch(te){if(D===void 0||!(te instanceof D.ErrnoError))throw te;return te.errno}},m:function(L,A,P,j,X){try{var te=(Ce=P)+2097152>>>0<4194305-!!(ae=A)?(ae>>>0)+4294967296*Ce:NaN;if(isNaN(te))return 61;var ne=oe.getStreamFromFD(L);return D.llseek(ne,te,j),w=[ne.position>>>0,(C=ne.position,+Math.abs(C)>=1?C>0?(0|Math.min(+Math.floor(C/4294967296),4294967295))>>>0:~~+Math.ceil((C-+(~~C>>>0))/4294967296)>>>0:0)],y[X>>2]=w[0],y[X+4>>2]=w[1],ne.getdents&&te===0&&j===0&&(ne.getdents=null),0}catch(Le){if(D===void 0||!(Le instanceof D.ErrnoError))throw Le;return Le.errno}var ae,Ce},h:function(L,A,P,j){try{var X=function(te,ne,ae,Ce){for(var Le=0,Pe=0;Pe>2],Te=x[ne+4>>2];ne+=8;var qe=D.write(te,g,Qe,Te,Ce);if(qe<0)return-1;Le+=qe}return Le}(oe.getStreamFromFD(L),A,P);return x[j>>2]=X,0}catch(te){if(D===void 0||!(te instanceof D.ErrnoError))throw te;return te.errno}},n:function(L,A,P,j,X){return ke(L,A,P,j)}};(function(){var L={a:Ue};function A(X,te){var ne,ae=X.exports;r.asm=ae,S((a=r.asm.z).buffer),r.asm.J,ne=r.asm.A,O.unshift(ne),F()}function P(X){A(X.instance)}function j(X){return Promise.resolve().then(function(){return Q(E)}).then(function(te){return WebAssembly.instantiate(te,L)}).then(function(te){return te}).then(X,function(te){u("failed to asynchronously prepare wasm: "+te),W(te)})}if(z(),r.instantiateWasm)try{return r.instantiateWasm(L,A)}catch(X){u("Module.instantiateWasm callback failed with error: "+X),n(X)}(i||typeof WebAssembly.instantiateStreaming!="function"||G(E)||U(E)||typeof fetch!="function"?j(P):fetch(E,{credentials:"same-origin"}).then(function(X){return WebAssembly.instantiateStreaming(X,L).then(P,function(te){return u("wasm streaming compile failed: "+te),u("falling back to ArrayBuffer instantiation"),j(P)})})).catch(n)})(),r.___wasm_call_ctors=function(){return(r.___wasm_call_ctors=r.asm.A).apply(null,arguments)};var dt=r._emscripten_bind_VoidPtr___destroy___0=function(){return(dt=r._emscripten_bind_VoidPtr___destroy___0=r.asm.B).apply(null,arguments)},en=r._emscripten_bind_Graphviz_Graphviz_2=function(){return(en=r._emscripten_bind_Graphviz_Graphviz_2=r.asm.C).apply(null,arguments)},gt=r._emscripten_bind_Graphviz_version_0=function(){return(gt=r._emscripten_bind_Graphviz_version_0=r.asm.D).apply(null,arguments)},$t=r._emscripten_bind_Graphviz_lastError_0=function(){return($t=r._emscripten_bind_Graphviz_lastError_0=r.asm.E).apply(null,arguments)},_n=r._emscripten_bind_Graphviz_createFile_2=function(){return(_n=r._emscripten_bind_Graphviz_createFile_2=r.asm.F).apply(null,arguments)},ki=r._emscripten_bind_Graphviz_lastResult_0=function(){return(ki=r._emscripten_bind_Graphviz_lastResult_0=r.asm.G).apply(null,arguments)},yr=r._emscripten_bind_Graphviz_layout_3=function(){return(yr=r._emscripten_bind_Graphviz_layout_3=r.asm.H).apply(null,arguments)},Ro=r._emscripten_bind_Graphviz___destroy___0=function(){return(Ro=r._emscripten_bind_Graphviz___destroy___0=r.asm.I).apply(null,arguments)};r._free=function(){return(r._free=r.asm.K).apply(null,arguments)},r._malloc=function(){return(r._malloc=r.asm.L).apply(null,arguments)};var Ur,Do=r.___errno_location=function(){return(Do=r.___errno_location=r.asm.M).apply(null,arguments)},Io=r._emscripten_builtin_memalign=function(){return(Io=r._emscripten_builtin_memalign=r.asm.N).apply(null,arguments)},Kr=r.___cxa_is_pointer_type=function(){return(Kr=r.___cxa_is_pointer_type=r.asm.O).apply(null,arguments)};function Ao(L){function A(){Ur||(Ur=!0,r.calledRun=!0,f||(r.noFSInit||D.init.initialized||D.init(),D.ignorePermissions=!1,q(O),t(r),r.onRuntimeInitialized&&r.onRuntimeInitialized(),function(){if(r.postRun)for(typeof r.postRun=="function"&&(r.postRun=[r.postRun]);r.postRun.length;)P=r.postRun.shift(),N.unshift(P);var P;q(N)}()))}B>0||(function(){if(r.preRun)for(typeof r.preRun=="function"&&(r.preRun=[r.preRun]);r.preRun.length;)P=r.preRun.shift(),T.unshift(P);var P;q(T)}(),B>0||(r.setStatus?(r.setStatus("Running..."),setTimeout(function(){setTimeout(function(){r.setStatus("")},1),A()},1)):A()))}if(r.___start_em_js=175828,r.___stop_em_js=175926,H=function L(){Ur||Ao(),Ur||(H=L)},r.preInit)for(typeof r.preInit=="function"&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();function un(){}function ra(L){return(L||un).__cache__}function Sc(L,A){var P=ra(A),j=P[L];return j||((j=Object.create((A||un).prototype)).ptr=L,P[L]=j)}Ao(),un.prototype=Object.create(un.prototype),un.prototype.constructor=un,un.prototype.__class__=un,un.__cache__={},r.WrapperObject=un,r.getCache=ra,r.wrapPointer=Sc,r.castObject=function(L,A){return Sc(L.ptr,A)},r.NULL=Sc(0),r.destroy=function(L){if(!L.__destroy__)throw"Error: Cannot destroy object. (Did you create it yourself?)";L.__destroy__(),delete ra(L.__class__)[L.ptr]},r.compare=function(L,A){return L.ptr===A.ptr},r.getPointer=function(L){return L.ptr},r.getClass=function(L){return L.__class__};var lt={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(lt.needed){for(var L=0;L=lt.size?(d(X>0),lt.needed+=X,P=r._malloc(X),lt.temps.push(P)):(P=lt.buffer+lt.pos,lt.pos+=X),P},copy:function(L,A,P){switch(P>>>=0,A.BYTES_PER_ELEMENT){case 2:P>>>=1;break;case 4:P>>>=2;break;case 8:P>>>=3}for(var j=0;j - -`}}class _c{constructor(t){this._module=t}static load(){return(eu||(eu=SF('v7#aSXj:]C[90>yKma:K`2htz8{/[.%Y+NAE>irU/?_Jh^Mi}V"~fyzS!(1y6%S]bqhFhw>~~ru@^Pac7~N4n9BkOjcZ=F8N$wB"s]in]%TG^=JD4LbgN,W+6`U7*)pj$2.G]B|XW)2S?0rH=FxUAWJwiE"zuZf0)RB~2Kbe?RKFBe3x;7LRO}f;59gq/YW)HPgVatkoCgRYB]qyBP44~o?mC@BZr%MLYT8>uCQ`Qy%m=N83JxW2TX@"]ah^ts!Mf5/<9bEMAkYr,#@?xH[aM9*mML}1!E~r+Z_g]5OPi/Ix@F;ecR~7~3V}L0|BH>#LiJcaQNj*Y8Ub^4oqp]&?s_;k*>N/3xmVhp8|C1sZOoZ8Uo8wp9lx?J$,!m>B$/)B94JH30/bf.pr<A2d_,&S_t9l?2CQ#YpcSeMAPA8HhZ1;^ag?RIN&KXJjIxHPdmwYKpu(/}bZ_,&x]Jj+9}&{DAuHr8EbEx:k=A8%a!f"b6>4:_~5de`Et_{Ky}IJ|I&1u/j]0w0k5BbvYINJi_O!B;x)(Z97;*;s>|k>13W[d&92.9xrT+3$$v*rF8Ae`@B;M9h]PFi+.8SFUgXiT$VQkpN!FU&zf8li|&!o.S&}0/qw5;n9UyN9_=@S#x#/I/5qq5Tm7doh40Pay5F?uJG:JTQrxJfX?wtD#N!YHL{RJp>G3hxJi5@tWX_Rx;},*E#/10iMCo3]3N%roP0bxBWr{(@7?]`9/Y9lmzz`{3G9gpw:9ME[,X*YtxkpO]q$V;?zz`kJyUG2C^<_2VZ,]<1_!`zCp;74,N*"Url"GT2f5:7EEfd{%l&;03SHyv)[g#zmG7&NK[A7gZ|i:fStBqDO)MW.MzZc"l9.6!bSAOH*YU]FSK{Y$UD#4~:IAH]2k5IlD5MqwCTY!9+lX=s|3S/WBm~x2#>$!9_yC&?&L~*g&%h}vx{82Ire;7%C*b8%ndwesTE8RUM5Q#2Pp7%/@eMdNw5)l7Hpy9Hp(6a<|=4S`Y*R`1(tb%m&_jf$X^`F+bsT$O6=~mr(U7W#R|Ksy;9i;pDO]]JT;&v)6dZ_A0d>x2J8X8_1V.g0M8V#(RE3M30/T_KO~#&`]`)$4lx?+8+IUCLK3}jVv@y5T1VO,]qllx_r~rO$.tLrw56bppCJ:L,%JmLb>e~U;MO{U3sw@25?6.A^;)&nxoajV6Qh7]m=,ys3Qlq4W+5=X=/1(.Jf`61rHT;61j)L)(rbwDHg1m=.9.*~H9Ckt@O>a>]6ek2aB51zy;3cX%F4Dn#`NHdAneqLvy[W.6uD7/&:9qPvtJ9&"YyfGuFV{Sy1z}dE[S9s[:[nO8stx5uh7897(Bs5/X;/9y$94&yo$2w>b)!"F%3]%df?^KAP{XW}J,X/JTNg0U*95!I^=`SZ[Hj2a%tiw(4Br#h|Z>$p8l8Cg7sq5vxO88Fr<DW1/EOk>=/5rQkK[tKq}$`50#]TkV<~BM`V}w>$LVkwZVZTf={tK><$gP2`,Yr{@wuTTtLRD/]{(4ZwCx:/G&wzK"UF{/)o`pnFDo^h9WOT4Ao*:YS@p?#iJj<(NqCV;dN%M2;RxKoavi=xgBzS4J1qZ"pH]&;:M5eKQ%gcf*9*S>dOI&*w#c:/GT2O}U0G9oYphmB1D,r|wk/N+JiP.+?F!pelD1[Gj&Xv99ng.2#5e:b2F${{U>1SjXViJ["rrTT}=o`qZQ#`h?=2nRC499>r}_@8s)6,DNVIrHs(#Yr~4Cn;q=$NA?uZbK`Iy=B;lo+O}&:vt:O}op9X([&c)*S;(]jsv{KW}O>b*^,5=O|5`6y`Wlt?6,20}bIO5I9e:7IV,+id/~|DO)MP[&V!M2r@U)brtjbK!4/BL9?P:scf@DO?L5#6KAx+eajwBUYv{+v"]V+@H[1Pk:mt+F1$7SMS.@6PVL8|Cp0_2+/Y(Y*9c/EP+_=/|M9/{K8C5I2@|wV$6a++*J{{(Y*{(r@q{3(Pg5Z~y{KRDr3UW1$_U_nha%^/f&7CB"y9+|Mkd(ZM3Zf$9%W5=keut4s*We]NigM@;bh5UGH2SS`hxpIaol&L4!)(#j"3<=Ueh&3;?gX%I1yqVn#!?7IJT)jhLBL`Ac);v/Rq,,yY>d7mp.IAH[x.[1F(&*bJ#_x&U7I@JlIrZQ3y=$9{7I9cGn09w"Vs;7:60$703$:(~3i;^`}}&y2c_c}Z^XBz};)_b:EF>V*&kT#^J}@T[F7}=|,%U:{ZR_/QJ"N<vy_irUY*T&ysenf*LQ>bKe,I"|flul>nv]d!C831tHD8jpv[swgaGZ7nOE7MD8pVP+cIfnemwC3].~rM&CF+#r@CehG9.BKF@kF6NjjjlrJ9S^*.8hG?Gr#2sTw,rh#&4jxn?ly`6?g.m!N_vke:i_1p:UC9dQGy9+ORlDi_V**v|7vobe7a)WW^]Kpz9&v7ID@)BG*F7lWzK^Km#.]=;:#54cQ#x4/sw`3W;=z:;n8J3R_6?Kga3;qs&W,ocB9>bK!bh{=)s)6smBPoG2XTvLGo+tI;CG%d5C)h5ct%Y6"%Y9"%Y+ZdJ,5YLJhE>I(CQf$w:hT9YeuIlExH/Ze5YGoGR*VHlzWX;"%Y,)@o#zQ^f7^h#/*I.vYj>y}(5_<>Fiot(u)DW)vpHhT9a47uOC.FdHnt0G6IuHCeCqsueuy6fD40/*E8M8M&:L+KU@^Qc#f/Tf"h{tRS2:puhBt7WS20^VUeO}C2x]tPzFR"IBGdMNiwMQ0!Yd)qaf7xI!x)3OGJRNH3Rg5?4[DW:00&Mz+7L^B"0cS"qfZSuKO$kY8O+p+4}D#%I.Y/ICG!HbZ/SCQnTPdSGXIJI)1Ea/cCmlE8M82k)XFKx;em&kTuMO%l#FLCb*Dn)FTCPg"CV&AXBJ6m}LF?BE_:}4(L`HgmAzkLKI(=|L:WkQv?Y7DM7cSFN5T,Pt.u3p[`}X6tsU"C|vNv(tHbt;PV/UCLEtgaC6kHuRP7=M8`v0C@^*[k5yxb*5d/5Xxn*iSIwgxkuNo08S(w,sdlAK^A|7*MR&kyDUj~)oX,u>gsQISc%xDaNgcl5jX,uPJ,SgX$MXX_n{P[!Flhec,p|`#4x4&Onb_V)*oi`nR0ICXhtFn%t*j*T1{$W6DmB8wOA8fR0Iv*aiO!I9~(Ff,#:K=%JmB&htMewP|tAh^mo,oeBPD}Vev]:jk{Umap},}8LPIP>iAIfL~BIOu.e&znTM]CTY2L[O,DUe?0%MUX}>{I[!S/KsR%zF4WkYqLHrNi*vtAxdm=m=l|AL<,GsSfK1:7=lTe&8h;i/OPy(`kn9C;8qYA!KuQ?0R8oe&P01#&nf`T|p+tynBe/yU[)OduGex8M6<$E{UXC8.CB2dip+[d;K"m2$h"mZ`>,&!L(lap5F0"gX.iNtLT.q,K9l0BiFbD=Z@JY4.&r41_%Y@}II8mAv9a|Y{]nS_S?[xr;P(fXeT_{t;$x(LAB8AAk6PgB8:gR7:w|:XNXt:H0eKRlgv]/!1J{m|6F!r*xg_PEWgt}$8iGvPR,jP7+v[jRDv#E~pwFg+1:i4x)~)DX.$Bi$C?W@BH:wn?{XeY)ya""/l[<^!|tcc?_LnfQv!D=)~7HZDpFW6uUX|D;DD"i;Av#DzHUQ|j9r1%M9AelP{6tX&g41N.IeKdf;qm|:yI+aDHpuLi9aj0h$.!":ijmJ;Hg&3$ospLe=,iSfstCf1[oBE0H]Juwu,ONvZ+?(Ts?AlBxOBPRr=a{P4))FBWhL[!sarO+S+hAICtbAg&wkriB>~D=829*@]RO6;=]B7uB8~7W)qgWl4HsHW)%LftsLXImK)h@#vFHmE^#q~Wg#G]FCy76u>ZQ;fRDeV8LW}#^FT(F$_%f^WI3)yZAPJ7gu+W,;|t4Ihpv(,_uy0?dMj9j8xrq}c=[OY?y!SWx1z{[F=bmhCeGsH}:8ZaN}1LVeBb:P89j*{7;=L*Bl8KSb[N<"qL03+SGeMDjJjv7bjJxlN39LouM8A^:BP27#/(,5ze~eys&adB#E&e8tfCrRDF+S;#{ajJGW7G#EXPnCjJMk!E+SMsw;UEKr="J;y/pQj]cDh/>BaB=o>O*$r7J0FdxaP#bN1f][Z1Zd;P5.I6VK<(xc"56agc*Bi4`ddw{oP#I5,/z]i!&Zb{4GlQz697$8xc,aXaRQz66a>+k?%r7^OKh;F2GZe6%?(g41k}o+JKIC0oolPv2N*naQosc)F^]@g|DssKJt+X(L~XZf0oBK8|Ca8vNeSpxUO.y9g6G86{lb$Tm.O(ms]=XPnHxQ]Fz?bA5I^&*g{&W(kD=^fUmI/JoG`&X&&F%}]&A?c82tsPK=:iF!YW,&tGBUrol6:vnkE[9TPHz6V*8wj%l;R]&OhwcI0=8O5T/4"ETd49SUI>Owsal;H&X*dz5/XW/,NCp=,BP_0{}hjmoxq{U7hk"bR(U;2o{VSV99,Nvi?oRxhFBUO#N20UBmTI:L?=`#rU%;hpWZPTj1^eey)"dcfV$3tA8P^md7Ub3qQWy5J8kNB]2FRRCh@MSe;_c01OncxE=%Ydx$qTGV}W;9dS^Gs{@P,Q`x3$qd?lSS411"zmh;@oxIcmrv1C(JQ,UUAyl&jfX<*g~qGQoafrqkcVj:#YkYoX++{,A6B4FK[NyTSfUU~#N{k$7ZE1?vjp8_L4rc}7{>wj32,ZyIf#{26](>WSe~&xQCmLsYrR/K=H_YL8v*LrDf`JIPun(gBE@Du5@thiDf6xn]pOK0lg#e(qVO;$VHEg:^<,Z$^op,MV8/}G.rYuphGbzn!@t_PVxuNF2!?vyI3+E!w5]^|RK>Dc_t2*lF|rG!931yt$Ikvbjiz!Td}8I3pLu6}aGtoO3)pYOhTBe@AF50?_Cv24mjcXBv2GubvtG8Ogv.Rpr$f#_mP5NyxI(+?0E6P66X^:x.{}yngoUd8Qp%fIUS4*nOs7pZKPSY5>Mp%BKZ8PDn5a:mvKS:CMT&Y;YmoupKy_dr}M=[ehGKZ2+|V&CMz=e$FLG(e.ey_%fwhm3)[T1ddlFQ|)IV8Ck;gMPg85!gr;oSZD[;bk]8gs|dks@#!2.F~?N5i9o.M#YXX!JV;7S$w:SP21<}St@=7N]2c4V)BHYllG+>Xv?{vu(F9$Z$#npyw,C1v8wFZ89fIZtB5wNN(Mc5f7"y%L+Rra2s!7IzAl0w(:,Oem;;`AOMq5t+Ot=8@BL,q5|A%7JO%?=ogcS=sE=gbLjTRv`^6F#Jt5LoIh7Xq9Dw)Cf_a1{=1h`6KwM[0pj>6?UOsTnP`FPgTh0BQXQ{_w@2*.Wuxn?yvm~x6MDylH):OspbQ@2npiP{a&NBrBl?(A]=e*9~(T$P1^8oi3Y{"E@[kO~Y(.9@yv3^B;I&1PKM&vsJec&L4gZ/UfqYyrn5E5&L6oRL*hnf[GVe*P[T!F]H,`;1@jCNjTD)>NF,YV00J*7@A3t,I*AS;0.fC";P1uLmQFu9%^de=*s!0|#B8BHWr=:pnOHK/W7%BI*qM9N!lh+Y50w$8g|o)GmwQc;e4*SEz~;{oOs0R3Bd[c3JFH/6%ycn2]fo_!4$I6ie^@ELtr/n2KYcHI(iHTK.)mlz$nmR~}Eq5:.!4I=,B4CEQ1Dc&W!w:)F=6NE8]@xNhLfNlwh+L2%E>N_WZ?:UmwuF7dK=7W[m8_Nnq.qKHW$9wjP"SU3TVctE>,B2waO"S[6:.IaEu8U!6V9U7U1|]hb51cd?>!~Tlw#*$4D1q*i6&lvXpSFNgaIb;9t/dVa&"qc=9HSC:jshNsGq".c!nSd9=X?kL3Ej:G$4er}N*xVU.sSv>`Gj0pKmo{SSW^|I)sZ&7pynX=!}`SDooxp#RjHXQ[2nX}D#F&uEed,NZ^e$RP(41Kgc}kmHKZY}G`.{A:0G5Q>teY;`Vb*5dK1;INO#))vv@n7P&0ss_Xs>7n9FKm"C|W*"`r6@B4dXWCV<]4dR#Szm4VGk?/RpDn|#b5*/)f.4(THZ!^S0BO9LK]UzK]}*/FK###B6;Ir}hL,1o#KZ}XzF7:M~}F0_7R(OGAPLe"OXW)xQD_0Ky,>XwNh`hUz0p0qlwbi)Kq,qd1f[36.Q+,x)5F{~>}>a1>!^6)5_V=jo<>)q}vr|?`kc|.@@tc"Mh|Z*ik>Gn0fv*k.Pta[{[FoH[)FP?l>M]sbTf;%ZFZ&s}}oGk+rl`z!HC:V(/"+5%!6Lw"+Lr2J|NwpuMzs4[oUE[eKo]95$/1y;[KA;vluwyf[Y.p5&esT&=>Ek$)VWx[6=N/hC"&Mm$[V$c2>`N4(n_Kx;;]x>g3YaWrM$|i5V2}MgC!FMBVFF=q:,>`65HiKV8c/*0Zj3%E_CHhhp@lr)T{]()qr.,hw]C9yxZ/9U+kW?83Fp,79)08&Ok{NI;zcb6U,HD:y;kJpPR?PR~0CrK]{8KS{/}JE]{N9Z@ik81^8eGPEUa,5F7KgPa7r4oJeo7}t^Hx."EY)A]Jqv2Hb]PlL>lZ%86+lYh!V^vL0~x|jZ)_DhwH`bsI.!NkekSBf]a)aKf*5_|9_URv{`iZ=FqY2Dcf<4rT.$&KEGoZkj`76ZomlE906d`[n7*9x>FRUhwgX)k{c_KlP<`aYs9V>XG(!_(v8/CWS*}^gL{{+[;KZ^(BJ|r2sYJ{TC=lR!?IElU$MN^]#.k{m!2V>OD{`;o7L;8[e6jR,E=.K@dJ&`>=g+`.]#td{z`zJz||F_y$f4lUkw+R]sbrV}xuwDeR!`(WucvXdK`o{j+s+;ewpP2m;L#i5zy~1V;AE^b;%UyN%F[J:&)UX(Q;WxvW[HV=W.IE;e"^*w!>LNM[c3{dz|%Ef57/!+/JsGm}?vs*Qj_O,nXC}oGPg|BsAl}?~#:N34}PZbU<`yzeqd"H`DWhJp,,,7MV!6y5=eJZU%IY+_GVKS3h!9|WL|U>6_O|*J{@>ey}>e}?W?r@/<,K[6`G+#[R:OP^nLZ_%jMr$YoZ_w8+XM}K,:,wbC4U?)gFhqrd^6&fW`kk@0|7>5rScY>Ug%#5`O%LGdqn9kwTYb*INkAalkGLPq6ESi@c?tGM{9Q3Dncyf:kHp!5.l/b/*QsUbQwIc^?xQV//FCW]GSk5F]1MSeh}6DWh::Hhq>)cVr(y3J@=&P]&TN6$vgFGr#NV>[scVW5q76>_zqn)C,VB7A^"+tShBJ6E@PSqZyNauwD=_xpR#lKh["VGpd7z3B3Ad9oiWCRzjFT%="|>iY,?[Ql1(#Dmu7WfcIw`y>v|OE6nO:<%.Mml%=TD=Z*dy3I6]qZ]1j+4FyQnq+&Ka*!+*XBjFZ8koZo?*2.],XE4yR3dhZTthOto&wAmj;u?gGSEkK$)r.d1yrOreE23gGEVRFKx#6{l+#f]`D`nE9H`REpQ[Gh>l2+Sc)tugZfLqwR^1Vhs#Uf3Z1DWU.Qc)p2n^9MTY@Xd[+Ef/s_Vm2ulKPF}?@L:jQ|Jf@Vh{h+}#be")=x#M+7&h9#AZZ+t@Iz}JiUsTIJqd~ng@*OuAprEDY!ysotooHMYZf7]/K;5TU~p7xaL(k6zZ&1`iFFBDhk:mvuJ|$y8aDl,]Niue&:rc,ML|K2:b_5$O}gZGvu9g1XU<"FcLJ}^,g@vlzfhHbVV@>5Sm=3PI[Da~Hw(IF2iM/sj=*L``L=.zu]!I9$QttZ<#_3}FK,DDf:%I:ty31f#_#tDWwH9yD+^t_H^rsx;@pOHg!y|HJBG>27t2ENjTDJK;%sN&WC{VW*.DVssH&H+p6V72mY27tV|5azx)a.mF:]/@Kfca.pt3<+xd[pS^G[c824b(moR4uZZy,NFT^c5Ka+hG|zN9I6N}Z3Uk)+)R+HH/^jHf<*V8mx&n7cmiz)!l).]O!$BF)q0n,F7WMBNCXlfncmQ`]%Mn5@SMv,*{Gpm!Ndx87S2a_UlCpN4k05d#_cO3>UZS0&K`!#6lDf:|}b,VcG5BhG58w(>:1l@cz~uuYIjbtWDK/W7rb%4]|zyVHHOrwOc`zcSi}L46kK4V6*E0Y}5bT7N|4~c##m3r"VW8Naxcs*d~EsDoqB>Q.shnuK|RIEov{4)hyA0mhujW+^[|X`Ww>b6X+v*j/YYScJB3xI&xgq=SOo!A7fS]rtXQ~&FC*./,;~YO$tqTZ,z.YvKYewlSo6xESEGe{q$KSGcmb,LzWN[GcC>;*CJ?MCe3URO27V+kMQCLUT4.(NXjNm0Q~9)b)R_{b]zq7ycPk9.VB!J_*>khmE@u+uLu?aINVA<)FQqObiQ[t&W=ce<80F]OOKa+#I$74yKLgC&HT!@=7jw]"^82#J<2Jo:r^{whZy#ZU}Y;)U.$TAO+2P^%dFS{(6SyW}#D`bJ93sM5@3!2E=lJAHu]2i?kW3ig;JdzzZk~j[ND/K}X,B~]OFzcw$hHA=4m7UEIrmcg^Ybu9Xh^qgdx]ec?b)(|f!ZvksYSAm0B&=G%)[rZTeRv{uDbpZ$yVSO_r(zG/%2&N+Ruph412FP?"G{.5+QlpEyVp&fSl+UDKI+F$r$dMz05Ss%08tfmDtfc4USe+#dkedFo*dvw>LI20:G.S2*JW0{`{%wD!pf#Tk7O`dJ7Tp;B.|Jh*[9sENL#T&t/Y*WP7#;m?c[:CEF@b@?$UU&hEgf#e78@u>SV.3!OEq>$v6F>cm;Tb~H.U|[;NxThZXnM0GCWp7b3]uZ5NZPZI{:dKN00Yn^q0Wt$ldWH>7^hlod)/Jslw=fV8QtpbyReKmRE5$F(&2.L;q%Cx7Uk$iy3*=cBOptS&<(A~dKlXhFK;")4JuYTtdS|YmY{21xw}hI="&kG.n{L4|}LD_]zH1pDN=Ya{xlyrFFA!NKs4s["NKW~r9n7#%cMn/S{(5}enmW[@u{o]$(mbm+?OqrG?EIX!kZj@!KnU5!1y8{d4vL5_k3K+1+lITwJ$04}}YGJg0pG{!+r!~>D2";vA*K*u:kM~[$Yr,qLqRFm[tcQtww2#p6Wg5zo,%j?!8+%jV%WWNjcu:*)KUy4frxNI&l7ae7ym:Bm/9GvZpGfyifkX)[.{^K,uq!0oraeIC13Y2Y@&!!aG+Har[`mkp!OV9zb+`KSI?.y$b#JgG:?!P6bfVv|0VVaiTK4iu"c]O/z/yDgr?7~Y,|J?IL9{6L~,L5Xt|N*Jz|<,cFT:KYS+%G%)zBp5j`Yhnv4{m45PFGSFyY+?:OOX9AE7bEroI]gDM3dqAk0.TW<#bW9z!*HD9&2{9h2qSSmw]p@LU*@p),.CbV31)B`K9&04W/lF8QQUT/%uvSF`u(O_M|^^@)}h|jyG=s!Q,/pI@@iZ$#K={lqx:n?~1HiR+z)^@^gfu9!CUory2liP=Pl:^=P[P[nzy}P7gkoc,n`";xZkQHC{Q_=iL,):UIKu,>#Mg|WE{6KBIl6KJo`+mLyN$tBki$;.;0uU+(y*3#zfz~P+@ehs+hh;%OYIY7Iw%+lqQYFkVYVyDm,|u?zBTV<{CH|ueS4E72z]MqQZUT9@K*;?I.5%2H`@W@KB0![l[%`V@M.MG,X5N~tN={WO8b/3Nchje<[wV&;o,AFL9SFw8a9#QiE!l&`ZM;9I^V$tAmVPD~[3!8vhuuKhq4Mf.(}NZj&AWP!z;1jQ6+vXsHjSWe6c|hf"s[*tXM{2mxXuji.MhqUdJEc9J^,CWP!5pj:`20FE1,56hFuMeL[R@:n.XJreuRBvasrEcvT1sLV%Ta$G10bTBnkmX/|,vE[`P]`FmRb?/fyamH=L<:gxeREz]*?k<"=j*2`[jvjNQ`{m<_m2f[>eyB,S+25{j0vxygyUbwybhx;84jksNsoYh.U`^lP}@1VYUtUdqDD;I"NM~;lZ+nob)dL]r+{+,5ULH#fu9Q9V;c8pin9_bVrfMep.[/!CcZlK*(e!tFVH3fXY6O?istq5d%27I?+7;Q*lwA,,f[eIpku"a,y_`Tx+/n[667KEo^]Ss!Mv>edQ+J@E3>pl8/.;Q6/{CQ^UF^UIcWQrq%VUfGz?I}pl8[.ujf3=bd;`q}K*cT}?9Gg3vXMO8GgJ[_vXgP.T.31RX^Nm3?UL3pkxXWg#/n9ELl{(Pq+WiCC!r%_7+cY?`$HH`1+6/mE|3vLEJHE(Oug`r0346w}ypS;Vz;,~?e@ZL+(E;yWL+;;e!bFWef0bDyy*rvfU)xJbTE97k*Y%/i"NUj8{XqL3n4viSRQX^%;oj5>Do5nSYcc&Tau^NxuKC16&K.eHt%%e[;Vr[&G+g.$<4m_`B1KZyNL=UKPk9)XOKj40.#?qJB1R/j,Xw5C!ywj`62@uxpw#7H1FyNi4xuw{Wm/GmXZu![^(l^Ju)/e)/nUm?)>W!X#]x)w4oH*"@gKk~(B.F`[blc]:JVg||i2"a3,]tJbgv*W6jo%/>!0PmYRCUlUM.Q7X)D#eHCH:7vql+t5Y23.*!?xqCWYU+YV+=i][]C2MM!4e|yqjBK4CQ5Wjcx8xBp5}!qyt)/mc)/mc),4=<4CMJ.TiToZN^Zp_pO;BY/UyC;djD"1^Ni{wEfPT%)Uf*wz0`XXRDWI+)w`!F`D+8M`&;?6[g@j,;I}OgSbh./D6Wet3Z2Zkk?3PRjZ_@x*PX)4k&W2l9#&,[#gQ?#%mVy=!|8Ngx"9ftYqKEKX5kJOq%{~>2Bo;FZY*Ir|{+5I2g@^HAHY*;_5Q$:ne`[6Fm4>S~5gu4y:=Z4C;}eXW+pkWU1x3QXtbn|V3{;~c3aoRaX;u?_F=*g;u4/$xP74_:oK=fashg8zZLxWYm343rpVmN[e11^gO?8:GBpwoxxrp[8`L@ClD0WXbI]Ep;neaaXwC5ie$}ty*s7YX5=Q#0?CAH]jpIDm#5TqR#ev+eY)/<9JAF;z%DHxmn}rQWAo29N^Ca!JSn:G?T0C}53XajL+)(+R}ux0IXZk^Do&__Cmo{}pS*lBoZ|G=qh),HmGFM*t6]8FV%@u%p%&~rD>]wrp;Jq&AD*K]qtlemM94[`V6D"vpp%HcuErS5i3{BU*+XX}oJOu>hx+u2H~$>i/;1&QUCBa+J9#b6+i"*mAyh#.LF^Z_BMzJs>9x_X7e9`6}EViJ!(UMF^Z)*;rzKy@tN03zAi5:v/zp>aXD"vkC[e?EuY"rU:XbT!L{5f"f=f.u~gL`c)o:o9fhK!=Uszv3rp~|w!=]u2c}EKlp*98*TDr:%b)XB@*fnuvY#/~|/$tk.Ekb;~Vvv4r,q)[aVAYOA:=`NY?.Ix;s]%f_XL5^?6rDF1|%O]{|/XWx=wLmR@C>iuU;5WM;{EXOGPR`4fEk6vfY@zRx1AW)HydS>%YKLyTA*YyiEXxgQsVYW|$+C2#P)ynJxns+CD@TIro0&7*UZiO0EPY@CqX*S9.auZO(ubu_AJsfR1LH^jvgD_;LH%Ev=b8e)rY@~@yYBWG!O7VK;9J?uUw*E5Yl``0/cIxR+E4w;/_.3WxBo6EXg|LC)Y^vdrB9zL_Ba9]@*jFF6OJ]hdd>mHrlz2C:cdtZ/Z.kr{[&yX!w%p!o8iDRwC1:@fZR9r:JS}|9MWKUu3L{{#p#?xbx!)Cd69+EgH{|D3[1bhZU?GiOvSEo:S0}If@61e_oj)NAS{(cP]^4oO&]D2:ylLj)"JqJolj3n;!4md.LI^Ke7N$bN6;e4b&X:M&XIQ?yK5w)`y=yp/r+w,/nhz3qLo"/sw>LQFwNpvq2N``XBYk&FUHC>J!Mc7cL+q("GzM3zsQVb&!_mhkryA@84jaccuL|szW7g#M_k@cTGNqrJbfrAhhgn;|GFF)qka]$J.cP;L2#r){`[GCh5=DZx:6c?e";sPeC()1&{4Bo>`y;Nfstdd],$iL_,&B_puR=0>gxX%C:mO,]z!5XRuctd9XZI2r/GhO?Be,"xr9*_Y9$zKk2h@Y*!KFsG)bB~Xg,dA~~5NIoIt~sV%+s:3mp4?dvDEl:Yw%OCun]2gEEm$F$AI;A7*o"7Ja).wYbG>#ibD}}7gn!G"y3BTyx.4!VWdKK_NIC:0`yUl36`PzBm,r+uF:[d/T3XXio?cWXA5AcI}5c?BE$h+JFw!Ov4qhBNX8V;3^7*Cx!;KB0HedQXt)RrS00$iL}l&(4^hky.dwA/r*Jn0Q@qp+).ItY@[74SxrZ7|F#NN4g7OAv@[&D.KZi{Q^[oxS0XjN~YC%toC:4h`L*w>V+n.+4<`%ey!9pi9IMyt>stpLza51I"NOqq"/gq{6YhL%Q]g{oA>o5wqEX3Fq>dl!L.qYDkKW$A~,1j"?zA<<2|(c~/)1B>Syv+2~0;YnXKXRrT7.y"czm9ZJ_>ZGYO}96|/ERK|,8`L3|JkH~*zUUMgvn[3h0[4g{qf=yrZ}#sN&mo,tH~gk(Rn,t_{GBh_gL>7&Mqwn&Chh@$f]eC|19.9r?(Uq>uE.v]MKwQ$Q:&;HqZICDzm~@u)2Sa8PG8~:bfLw8riG9fEThCLCkThhhazq(g;I>_Frux#l@Jnqw{KVD9chONk`r,XU&6W(r4zG)pUqE7/XZ?(l^vuErp#G.O(H)4{ytHIOX@4(@2jH.w=coX4g!!_CU%%d?yLt%[^!yt]mjL=A}Q!HXbcP[Vq43!:Tc8Ke,ox&UGdS>)Ly1"^$Ux})dqxtB5e=L1pm2sBfHTy)DU!n{ss*U59i${JOcy!#O?BL<.o)4bKdd}dbTRFN3^d)[T~_&{RHvJX($[QoIC+qv7DXKU)Ai0(DH=Bh?C4I$)7EkbKiy7&}hvV/(W{^o%Q$>.[E3{=6+Jh^!b19D5t2+Uh7L}3522p4i^H{gmcpGCoDWw790=OGEQEtl)%"65)B7u/X7q&to#t.TX1p?WmPf<|OF"Oc#!M=9`I+)F_.s>f&?(KsA5i^;K"r=eUJEV}H(aV0o##OIb26ICRIW3N)upgnH~PyI&;*.y#lj%[@Xb>nc{$dKymBO)MY{hXI;sX(6A)qgp=[&=!0C$LnP)[d%Sjwf5F2!0yjrfu:GyVNC2_gXTR%t?g<7XZpl3B_LL>=I{h4wN`J3/_kb,P/x`09BRPz{P!uUWl,FB%+Ju>k>QKZ/nJt,`!3jLhKUgKnhC[=kC^*}?5=k(R_Hb"o8x14RI8eYviHK#t2Kjsq@:i#~ke$Fd;6;puvVb#Q9rGVN[f<_N>Kx{[X$]?6A&UM)qTO`q{Bbq^2.rlu9i"|i+9GV_Xz?Xk&6gV;*~rBuM.eC^~@h_!2QE7V2TUQ@=`8p?ziQk,e9&*FcQOgpo(e92cV18tPEXC4AGI`HU5&o`1R@6J*L3(UU{C<{(o/i]$nMvH7Y4jCIoWHRr4Qp7_@Df0[fZH&qJ;+&uYgcicX+4AwpytqT[d&!}BD9.Hx_85xhv^d6yy~SC=_6@![rH95hz=1i;bPkECoGq8}fL$WA>4S:Gk/qF+w&@Lec]&7.4zKp[W!EAlL3xXtRN_=tT]T&ioz|z8ZE7*WXhenXHDoUlq&p]TE[J;u2Q)>$!%Zb;KpMmhQrKxdyg+>l:@qN3,TSk/5iIQ.aKup.=;Mg@;sXbbPxFak%rBKV8SDr@.U=M8mL9ycUF;eFyaWsuM)_<_77:h{0;vKk6l+EJ:LcKDx_Yn2SnkEML_>DTzqsRrzUU_GP>V_Py*64V~Hv9xVCqroFKjbFVH!kBGh&jsnB:.Oc*HuGU.Uq}m)64ulBMFlZfhS*)$ZU)Qie("jpcGi]TGYb2(JDGcrHuErn)LIQb)@M5nC1yCx!q/H,d`1d3ITvm.;oj>RJ?sP@vml0Y.!>k|qdb_F$p9.br+:/m%QBR5qV16v@#*mF^`W6+4TT2+GxM2s}tD[`P,Bq!KvAT~,MRjpvgEEE+@+%?W3}fF=oFkD.6p9iX&zU3g;{(fk@KI,n*1R~QGz)2;_O:pmek.i)BK#qtZvM4fT#[pZY".f]@sUbKm<6V5Xy2<[f2w=h4t%&{ebM#g~;pY$I2p5_J9.```+9vv*N{goJQNOr/PlZ+,N%VC.9k9##KPFz)2WGHf$y"^eJ+qBV&Ja/E,vGWMgd`MK!/&pG`6mzN,!,hVa#U{mp@E)Wy]CxE5S{c"`8m>k3uy4)B#ga4j,W&U_hTKs/d7,,:`Q$^(:WPF}FyqGmi=6uX<`a0T~v;Foo;{j~{6YkF@/`!md,4j]{%S+vv03F(H$[,$f_BvM|iViG}^(w&;o!F}o8OxqP]"4SZl7I56>O#T)BnMrabO:N3eJtz,bs2Nso;A=2utl@kqpPda&iM>U+HPZ.E@t@8CiC~zDp=nT,^5Ug@Lshvrho7vwE=_kuiRU`|$ZOStTjn+OM)/(.7Qs_YP_8VB/=kQ_pIh56V7WnOX*8Wh5O~]NiX7%FJLmtDh[1ZXE[I~lQ2k)p=N/MOwqzBURaSefDu^^g98okWr)|8O/Y*8?pL@t0ic4>6lSi}ePixQVn?jy3K*u@^D&MWQ)S9qCEjm^pOK~Lx4/B,>8wFhq"gZxbhBW;Q78Qsrvx6V>p4cV_?cqC43PdtZKgluWuDawR0x45WdM*)DRjg%.aG5ByV3nW8=]uptcqvgE6u7P!Ufx(Kopfl8%d^me9m(q0Je~DIo{rj2^7trp!M1%NBfm!SfhIvD]P;qM):)BE*x+jJWhu*Iwu`0..[)eNhc0!wQF#rUnk`FrXrd.U]F^?xTGw^3xo{re0~GA(fYVWrQim4*mN]~>8PJ@?1vlQ`n%fZp=I"=Z}47nd?T+e!e"#v>#1;)<247v=^bSsl.iJ;tPHQuKGQ&F[lR=?i8D?8cXUU]rL}>l/[yeD95*h%fCvT;Dt>[w7Cn&bVIAY3qg?WaT;ya/4UEthIAfJG^<8}L!~aYatU<33/lbX#?*k[6`Sg;52EM)R6ceMN{[N$3``O|MEdisuUUd$Ahc^pH!5Ud9)deh0mp35o]^,bP3]MQ{E8"5eDdJ8Aq1Yh/y;yx/Kl>.&W~>XA@+XvF]W`Oxv4ebrI(py^ov!%y}o@S6^Y"SM5m{"c?!lw5;C>Z8*qDMX3Q~*E2qV,Sk:d0]?cAIRJ9*?(/pI%y5=5OY8zuu(&8[i+uWf[4Iy}]&Amo>26`qd=3^#/iVU`t`7/`<`6LoF|w/Vj0>aS#WEv4632J;WCf@1_@EDx^KVjmgY(?uDC$<&dUu5~vu,ea7ES)oXB8i;W._OEvP]9,]=RlDLgX_*y*v0mAiB3EIpU]y8n5EFq&5C{>ySntD.Typ8El5&vmX+Y_H!~1wo+rw^DqxU63jRZm025U,v3`u&YCV]ITeLu%7V!MXcWdZ48OPz+Q!dxA>"NhhL|kt=Wiu{4H)I(tH]{.3yMwy"FbhG1)2.GLF^=pS>qz1mXgt%1sFLGxqG;N6"y;,cNZum7Tk8{r0)[^7+v,*Z^3V*a)[omd8}vvK2l*vYCxXqmj>8c*9P4P;T~^idd2T`FALWM%|AT32}9GMJ{3B`M9Rpy@o:/{`,M|wpJ%xTx,H[ciTtK=fejfOef5h>iu+`b,_/K6!3EPaEzyi/IP:>[5bsyQ^7f|D*4g#AI"4Q`wcs,^SvR38WhsTL.X^!H(dG(tHl`qN~DD]^[nE$;l4VNq>W@^/Cs`n}z"lpo8cv_E@5g4N/pAq:b`ywVnCKv:!POm+"k@Nw#2EHX$f1x.:H%bx0umx&{yk8Y+0+Rqk6>qLmp|He5Tm6}3RCE7/3}UK%+j{P_u@yiwA,m:vwS<&nSR>3[B=uU"x)?o#ZbUzY+Wi@P$>iT^]qfSyW$Z,eMWDj/yB&~gQjDM3KF}^Zs$VI!g;OP}y"cj~Yrh.3(mW99s1xmc3;K_zp4DK~_HU`?tuu2=M:G3}Xk*KJ<(^z!kJ*;&KXi)Rg>hw{CAO>PkQ4iYim}N=$dT)nt^x2[J$9sL,_2g??f!j#21YFL8VMS)}Phs@Pj1z>uRN{Cg)lDD;~:RP0XuGquntruPi=hUqUcouRN>i?W829u0{?W827u0{uHhpb{mRdc7UDjFM,,!5U):W}}GyHc2]?xBTKdsTu&we/jr|&9)28I39T~yy0P@eKBHB>WEOuON@fM1zA+&OtDi}|2}!ddN=uja6L3c.3((Nl7yA@}4k_jc`"v:,k+{L"<.a*GOThGH`(MaJ,83ugJ^*1u6$j2S@Iu^0M;JYy&UW)M<6s{0JsE)L5N%`8O4nl+iP|NhV?7YLfm0Uk@rl+/VxL*DIX/4m4PzDOMEPD*(w!q9)fomguK8$XQ_E~:EETKxitX71nw*}$sqv0o_Fe(dOM}Pu/IXQT)r72{NO`U;WH&l9#hcJ5lIL=$?xms<9XTN?/1vOF<%vCKeH;X#4&{8fKmbZ*0p5qeohPF(f8zni3O6>i/pyrfw0>lg;6lm$5Is*xh%d%ZkKT|V][^U;jz@1*L*g>Y)MoS5J9n:Y&5_vV*Y)29vVqVGI!DF.x<%+`KHU+rcCC["8zA0PrIhjItV4uL7>mcKJq//4%6Z7zn22B,t5:G%N0ft[Z~WyDZ3GayE!ra1{CRCPe:*D,)F*Rub[jIKeJ*O/9_qf#IFKaVmi+}iiUUgK6eda0yTCD@xt2sL+(xqq$<6[sL1bhxYC{Zk&b%9zbrsf~[#z.q#lqpsj}T!.y"G<.!L*t$Tl+kXZsWKRz?oG9RjXLJkwI3&)"fLe@H7K57D@an_b~n_asvZBc>G<<4wiPN0e!4]l)]f`^H7g|`P6Et~,vGM}}yF|a%4Pt]Ync#7In+(}54YV0)7<kRoLLCuxEvK`WZX=,`hzG7sJgzjC>4R4y=st@<~4n5H=r#QwRw^e2t^vk+!9oL}NS@fNtr%^CrnaSZ*blq)acwec!M@k7nb,)FgK/S/ZKw?h^/De+l6:;A~G](LNP$d[3wi>tt:"e*fdMl8{[AMX?K6hLl5=yXDzZa0h3?5]I:5zG4{$+!L"d}X(Bdq=XNS9M;t&y4ok,!l1?Zdaw[8&uP+#Y7js}HDqx@iqE"^O60)ZvP0Hf1G&XgiGC(Sn,bI{:88e&n7Vj;)x&.I!M|P3EF3>u?)$/UJ!Jed5Qi)>+$c[cujT5cQye%R%P?0dY3{mI#oXWZr!eH#x{i%hoDooEmdv$.2y6@=XZXz*RQx|##.)!Q|x>pQ4>!.Z(bw>LB5Hn8kIY1UIXP.`yx+tZIj+v:UGzq/wt;%F[Kxib+SezT^kz;u=bjD6gdDqLDN;trwHEB&`/|f.|}k9!Ru3pR#c*tjOYKM6opX`KZ!L1O_pZc&kxT,:Z?WMK%wUz!l9@Uvk5x|&S07>[W&3Z8qCJ%EA`_i29PVr~|xl29qfi<|#UJj$`ESsy;@o?x^0!z6~qKW)uNmz!z6PV]ua|=t~quS[DZ&a[Y*0dtX|0Q!6{W+P7_ciNVw!+k<=DaJke3p;U33ULl*/n<%.xn3n*lBdeIM|Dx*f15Kb:YIVf@+N*s+05bdX&5V6m:{iJwG:ho:Y"3G=_?fMSMnM3@DM`}QT`bdrh.>V]cOVzRNP(g}3k4%D6E"XHl@4%.7p=*rs,`$+mPxfO6~p(B,kka8uuBQDy;WOAz>L1??C`6J6%+b{~`jQer2MR:Dz?I>@]{4)L.M{_oH[GmBU]?|C;ywTeSHuKnw.332G_(S22Ggf7q/b}:S*`a{=,G%!sX~Q7&EaOY]`6u?PhyEp&0T;7vJ_h@*E)fFrfip@iF$3]On2zNGrr35q&o#9(583}y:MLb;1W]>[{,a+h^.$c^h[q<%.?tg@jp.1Xb;s&t8kfzT@*;d[}w{+fUh)l^9>arg=K):ZKK&H.rch"VOZ;P[]TLUf)hf]HP?rz*M`6?IW4k}j#?e,^QB7:R.wlMf"VQztZzmY4(]^_FQPpE~lbm+#o/We#K80LsyObfj#8iCK~%(y36d2rlq~_Qz/n0{;sz9!YueNgF.+Ym+/fHa5B;N)d7W{|6Z3l8l*#~b`>l>W,wVw$[3T1OFgN;*1g;S.1[V>[^<}>fGc+&T6VgV>[7Uz,%X3,#Evgtj#Voeu^ooJ(=t:cV;.o&[c>UN(lvxK|9zjb$I.1`NX&|<3533S>94.(KKl=73j@}h/fb%Q5$/BH2v+9!4DS]g.1%)n*W4Uk(feSV:I7w2~Za;eyxg#wQv+9(Jhe@0lpa(,lP`sE`VwiWdOS|m}?ja}z2p"N{,[hzbWU#Wutu6m6eVN/}"K9orVRZ%dPXxi77Gy{j70H$OhLkq+ubRT]X8:aVD9,NL),1~@Hli)=V6):,C]B`IL;^1fAuCxfa]H"r_wDb7pE1##"ujDLKH+(ZqVrBb.]y~[$Y)ZWH+1G+Q:_md6Vh:B;MVQsKDJbcGG>yI:^qRx%[OzOz#qmxs&VHZ<_m2Bro3X".TP,)4gmG?`8++<9Z_=^ZI*3tfj%/6kj+P=!qYQSHnS:1$pdd~qcOXIOI/r%!glR!=(@KLwPT?lMdU;dp&.Ud@i+4_VP^bbmFw301$[7`/$HaGxFkaGUI"`IKWU4b,[v&,k6)PBSF@%Bh(pwK:5HLMLt2I)2`1tjL{ivUf(aDY,b"4d/)yNn2(zGohXdH+m"I1~rkWJbI3:S@Dj`Y3C4s_K7[;L$zo0[01&@h)2~(Xzu![C3zHtE,p*b^WKSLY6*n`e*z2wJhsBFw46I!T!>}KE4Teh3&lC.1El@#ZF6enfE,LXgCxff)okQ%+wU!&SEUXbcb2_&wWP:F#c"m7XdzK9eK/7uP$GENPX@:QIp(WUlB8g!:Sat+bP{48mGjWClB80e@IG*aaefvU(5l%(1k*{Rr,B+ZWvCl/B:#tRpU~MOJ+!hi4^e`&!mQh=?HTtDatESl!uF:kxi5rbWQGJFd7;,i9LgHk:zVy|{PR!xKR:awY{+XJ?MD8a<^#}^F:R!}2[h0iH?sfv=+H?VuZ(IJVJ?B#J,)O{aPoXOSO)b*JMaC?7vtOO@fbL})tswB1/GuUsIe||vOZF(`~y`:?0PaH>Y&p<]ZEIqrh[s5xV<0}h{*[AOY2lwWt_d93^TTx1#4Mz*qkqdIeDipi^}78!ejVR`VhyPYQ;ZfAw;[GCudO*kh./V]FBP.azM{LH^|,{{|PusM/j&6JzYo,|,w}$B1aIy<]H5az4h1%YGe+z`jw8&7@EpOv+Dl*#5,=g1<`=Mv,(/PREhhGWKlW`xq_=X/>>mgT!&`v%=~B|]f*L;#WLDFz?*qZY+&M{YZ&.l_XPzcC)IbkzLRVG[D,nYoc^#?+0z<[#XznQXCF)(oPUMIiF=;JN,:nzqs=|w5EHL.W2p$IKme*i9NYcE^r!y`)7NYcn=Ei)aL,}CPN9.mjC}GC#5Xpv~m;fK:/2,CZ^"AVMa5fGgkU,yLF(PAA@G"Z[%l5LOvEwBO!dKod=pU7`=x#J>3maW%,H,_<;3UF6C[QZ!9J9t5OGssf>+szH^u2+2L}pgSO.Y@~>FyFpCV:#{)W]%]<({+5Z_2N#/Aop`}!l>yZ78?=P9x}c$mA6(q3lrYj+&OC%XM|*FqRqf!}wSj;}#YLH6%H!nFYIw,E6G5F`bz;/!i!Mti@f/v9{>oE$+K5YzGoA+iD?/0Y|GG2`^f{dX_4:SleuCopm8MI;I0B.rD8K~e4}h1L~U|dH%hN`{U_)V3r81l|og:eu1"4MBrU`>wdMIZ"ZviS>XB!<=sSi?qZ6NBm_@m)wY08n;B*i8;8r<|y%DQ@=tp$3u3ET[8`_^Y{yZu/n3g{L&fzxs9op)j9>in^v37v?Gga,y{>&r,3T]QQV7zb>!4cm`r;oB?%Y`EAkjX0{h,my*P<*9cq}O/]A7}EQfl3Nqo<{XeaxeF/I$RHU$k?xJ`p31$X99_$*|Vo4,>$KHQ;3>T#;0>}GsK34H/el.OV4qf`#xFn%`^1x]Z)sMBj$#LYOxE|n99n%(9z{E<&%bsTF!.*/f/HzYac/h(0?QvMQ,%l(c81REhzr!,btO=TyvHN0#IiY4%2w:U4!3/U,WLt+M@G}H+}ZqLk51<3kL6Ck|}WvIz:m/(6pqccQp^enizju$cEBF?p4co_(a~}gVrnW5K7!9p(j?(g[[bI."0Eu3C{?#~FbKx}Y92fFytcE?|d(a$EM1r]^FW&ey+qih}{i|)t>jcJT}9}}WYr}i06Gh*|vRIx,b"_F}.SKM_,w,Cr:1Dp*o>)gV(vhAcKDp8CTO?}0*r0^m6;1J3ID%R4@WZrcCz(xy>.n27r`ZgM)MZ`r/6z:d[3::>OJ4T3E%^CkA]kl&_1?1c1V^ewNH}yKHIv/FkT*W(O)&$q^R^YRvOcl%eE(2f;6~FhEmq3_5VHrlhl$wp~@+4,DgYlOI%Q)H8rrTv9I2fmia+|i?d_,tI%j%j?!Dq7:,z_]3O[!pj)l;}%v7W*ZaX@>c[~nisnO*OS3qcW$?#viF1vXLp&ptm}a,#J+40H:xeU)efYur{jlz8z$|lQjE"R0*&/1jjGxR3bmcnbUDYXFo)6K}gUXpSD:]ZC<9%^%,}!XT0!SU|YO2MR%rEG?S9J/K}uBt]5kl~[=CyG#gF6oBA:!v`kx;5p8^1dQIhTGU=LZj.m$Ta_?O[REd6F.BCy<7r>JQ%.e_b+"onJDDF=uwa7FUa2N3`58@2fJil;l*goUq#t+[Ue@>5/|8I=fE6=lBNa>bE_a6Z(YM[r<$p1R^E_ke6Vri1+5p,tR&|%M5M&1[nDCp&$?Lo|/&11S=HHG$m3>ZqeD5KxD#KS3^T#H40z|e/24ky8f#)IOQ1xl>3$49Jg^,5!2@)mhfpL+ga;mG%Nr]#w"GzaJd;*@Jv857X$vb&Ig6XOgU+wbK;R3Il]iDd!$%PE4*IgxYnHgO@!Pi=|zBP$w@G|f`8k}X!b2*fvlw7It;[A!kH!s6d?uItGDDHf]sTm0qo6vq;J9XmwFQ:4tQou{Z+LV6C,SN5OiQwb+3o#cp5e[&g%6L*6Lo4vmfs(+!Ep:=!5GyN{))a]VQvH@gpMb]MuyyXBqd|n=t{ON>zggf#"W6fi.jGR!{[$$0U3djK_sznb~GRG&[RK/t|*BkC6F|*U!C#xK(?SC[6I%J%]"xtZiCW`G!!8INRvvT|BD/0kf`*@aI)5q/LL@^xp1XU_BdZi7fo467x"]6[Ggc@DEZ3fC?{S$QD53Z<5fnfDg.#JG2l)Mn@^>#u9)F^bc]{"w+Ki$5_e]t_5,`~zZ@;aoJ5qg^@0%L7ygzgc,[Jr+g9oOTBXiFz]4p1N6zL#Zwd>?7<$BKi/~Pb7?u.[8nqO>,Gfqm;./;rbK}&vnuF;n@Zr/2L*OZx^jzvTI*qqDDgLr"NK%)2`B2eTa$@OK^uj]w,{N8nr(@{/T4]Q:]oxaY/Quse9c"jU2(f^?%uOc8|2,m+kUz"KaEUH2?"y,LR`yf{?:[YsYN[@7vAdx0LX"uH(_JCby!0`ZxJ:`QKj}Q+guxEtRz/:I5u`OI8o9UEC,R@qd["KrYH=sBujC}"AmL,p>H~V"lQhbP}4!#|16=qPtS?{2=%XMPn)XU(cOSI]6oh}F,MlJ]*?#=,t[wJco`1u}5,a[pXWjDomrFJQ61nd?:_@:^2di[(>+jpq|/39^lidT,Y$I$?K`Wo.|F>=xKTgYV4gqG%|p!`oXVy!"A{#2ey~dMt(}lcVZ6J#%C5&ms28}@47BJ]RiLv<$fKja0X>8}2eTl]:I)0uVQg<0JwWIHqq#J#~?Oif4Y20xhOsE=95k4Tew7)65W@##%[q/dWMIhCKfaiOW6.EXd6q2tjYga7ScKc,OZSWdB@),8f.L([SK0oAANE">p1&w2}"l*m(0asZEWh6]?rRt%4ON![|q)lBMeJ4.+,&M<;wD$x"E*O/5+tNQXw#6?B"I]&K:6k{RRALX!Z(iHn}PaNl2W#X@n+xJ8C*MEO>4g7b)]6{f4wK|8@`4$y,$C7![Z#8n"9WtVPDS{LGXL@I7xinT;c[#"3T>JxfFlHiSJ/`[^L9"Wb@JkMVM86xs`61!YZm_?~vPG2huomy&]@n2#)/MZkZ.X+>4&H>X,C_@UNHoR[e]h#k72Ad0$f6=(9~].L`{!H8#<{ojZP[W9<;.6(Wor>u_JhtsFp.EO)NQN(_^Np:KMDaI7R`+w8?c;GwE*oE7]4wn1xW1ekf`$45w>!ACeum_nMdsG/_iPwTf87*Z2Pm"~6ah|)#eLt]J[/"^]PkrW$innk_Ctk/=Dd_G["[xl3IxK1:kgH#p5@wYgzE=J0E><_E6_,_/j8fNS|mJhQTlbXGvEHGOey`>0H/Z464oH64i@I/y,$GnnMNHK.*!I}4H/=Hw>ZF"t&u=SPDOn18PF=/`5OkVM;vPG)wh~j!_H@s_61O|[HLKv~Dv&2"_"cQq|9WH}D~VHcy|0[NUQcu2["Y>@JYxB?lF>.pnYI&z{|?E!x{@xgm6S1`1b"5CEqGhad%(Wk5kVWvNJnzUr_7=0XN[12i"?j?~*XcOKyVw$(|$MM[QIgES$v0{h^@.L@aGEur:92*f9=)qt8S&cwNux3"{QxafF`+V4"YLP3i|W.NO)z.PkxNEkOQS4TKL7^5c:;!`/qHdKlwy5">R1>E5(o+qx5y@v{y61BPhMAub6@>r!Z)bItGE0zUv9QJ)QK{qVlgb^2&!)mA!TVwHJ0Y}!}C$>U27pUwXc+dEUCkDe9WL?@R?tn>(X$.lFNO,{ske5"k/F5l$u&GnB1jTvq_82%E_:aDHK+q"XrlROBIuD|N_M,8]/3VT5H/6nj{,799lCX0vwIO:GQKQ;)R[5]F^K0PW8y4VemFQ>1zvJeJmg{:l9BT>EtBfr}(y@PB%YdlU)b/L;3Z=@.t=,6tK0vo~,K*g1dM<_]?O^+B3wBP*[$"Ct5r)wcgLiZl@lJHk`/f`4,I?,eA*%z:7TBOkoIVB%pJUp.wboF:atXfkP.;ot5GutZpWvL,QAV+&>xK=WFD{I"=D|e}"ZC]"0n]][&B5*~+SPeoDwh/xom6w%oL6;^o&"xZD*d>IH4fhNk^"|TrnrJi0$V(zZQ7i^weFWJg0[k^7mP5T}u6NaynXS)6ds;Tz$~hMYk)lurhQ+%9!Q7c?0gT)g|d1CwsFv"DgGLAK1>ILm1.)"?qDkSX:6W1!7N/c/^c!}{Z4Ut99dw7DnN7H%Q&A~RS>[Su9ZJ1pR5zFbP;@{{yJW8[jhJ>6z}f1nAK&J_w:G(2_}KPK(|c)t?I$/lmf+{|E*;x"uYv`#o}aq9TB^xaEM|qj)GD2T^y!Y*M,UYW5q!zs[cJ);^4NL`6>HrYpviGlg+G;E~*;Wx1>0T#Vni);{LzvL!yOe$j(0#^*+zAZ~Q_3+LOy59^ulPv,o:OrIn?dl(`CEw*g`qJPGJCcr|.,_p?sH+]P*fzfR0.%!U;>c%G5|h,x6T!pJhWK&4ajgrc[xb/vps?=~zal0HGI[/Hvvnp$.Nj&,Sogfio/XF9oZCKLGlOl[*o9vmbzqp.m,TG3KkFN_|kCzuWge_L4b1I11&wspOWp:)Yaio>AgyEw6b]Ae5]Yc8nT8.ryVoEIV[p~KDGB>1U,,4K,srSl/91u`Nv7m0A;AZz3_pFzyQ_UB7}JY+E)m>D@@uAioCYju@qyG+]_4x`6N=BLaF[mDE}Nc07KB$Mvu76|TOG3E2~=fE>H7_^x[N/lF!Vp9KDF?<`(kMKD$gtXVcNWZ51YQCl}zd)`LyahZ2$Mpil:4sqNnW.(t0M{99OoQ4pt{R%+?:hG%B^Eif|E0:/*(cEuhw&VE5L]wx7yb(hmLBU9TPMQFcx8s>=*RlwX.a}7cLb7gM!5QmnsPlh:;B+#;G~xAK3X>K.2(SVM]!z)8p<,9a.QI(eL?gC([i=UF;;PwBA>!=aKVhz}g<7%mY>xlXLF8g|(We7OtX"?FJ7E4#!C9nufVrB/=da5eBipPJM,0iER71=4wLN^/k:]]ilHQru)hh(QBx5IS.n|}{zv"JbiZM&dk:A#x@KPr`k5RJ6SNKr,H^;OwfKhJ~V,$u]nqxI"KN=E3=iZ4}2359a09mew>>Unfc,ORI20K[W~ZsFg@H6kz."j;]OXXLfX/W9e?bGp*%8/Pb?FX6Kj!;315Y#[Wbjf0(0Tcf"B@_nkaqjd$}WBydK3R#/:TiVDDfW9>%K[VEY{nh/VzXtT@?]i"$P9u3@b4k$0^J2Z9hge".c"@+/fLo4.~.,FFN2{b2i*]qv/i!dEH?__%bIg@>Q,^uR5#*^qdY}qY,:.&0V#MxO6xD^^)_5!Mf]pkr@YPTZ}?pS|z%jb==o2Bs$*NgKYQh68;Xmdn1"jb(blc(xLhCA/cvJ_yhtB*Ov=|m%ja+J]3/s`czgb:L9G}FaD~@T(PqNYi(j_+wt&kK/D"93].vR=]|!$_z+a5?zz[HP/kWGG{Vk`fvB(Tva5{nX)(yG`9ykvE.6R[Vg!jmvR#f5=v;np7JTQ=/?LJ4VZrg9Fo326Y>TX1w~i[Jz2G+}iIw)WmuDXfa$fGXQ%=.*ji[umlj@u&|;b7xOX,gbsK@l3teA.tl`0#:!2_PdDkDb5L*O"V,df80JCNMirM$5nT4LQy"I*w,R!d$nRu"7fI=*2MYz!YCTm_FbL1QZtiacb*PoeJ3eJ1=ofEgJ0mWCN^!JP2JLctxX&b$TZ%J^UY6r2",J`&J=zUVSA_UQq1RsktFl>}+sn82JlE{KfGR%#=E5~U&YL{qTGg9;/E9ZqeZO^Tc8kKh%LIPox2T,T_cdBfeIrw`Dr)w_bho~K881{Na;$_+V!<]hJgPuYGzK%6@!;Cfo@GU%bLT68L}$kglqKvH_ed9a/zG8j7,$."iJ~!8*gw~9&IwL$i}FJ2p9w$0$bx$knLpN7@K86>IffB#Y!6O$WC8iH{@LG@*7`N?~^O|ag[cRHyY!"tY;JGON`$no:&U^3|(/g_[le6YmXUkp!BR.Ub|V4sjAE62n@o?<7yxv()1G:Zi*8OhVYlUKRGayQHOP7#eJAt,>v+|.E]vhP:,|ETo@cGs";(5n{(7qT2r3_Q,=?VBVfhB3.]x#:D?#Ais:HOkxu[TcQ+.`lfzW1AFg{7oTX|JD@TodX7[)E$l3%p6lw"EUV?~xU2`D8T#k3K(KZRISt|&El6jska90FUp|g]mE=.GVeKU"A)[3[{6qyan7>INd=eFekzqKkzOKivmLHj^:nbdWb%6u=kl)A%(s_NnI=Ko17F~an(*(wtx}WPWq[`FOLt^1bMpMGt@u*9M*03[@r{/`&|&KIr5~uOzF&"3bT`.0TS3krIL7a|Mu,,z.bFR1N0RyS3U)S5tcpr6/Gr"]rpK|1WF:T=aZ62Hgmc!)wL=4=3ph;5Z3j[~]qv@$Q.`VK1zQl75=l%,p9yC)zr"~cVfDiThc/`?D."?XtkDZr<7]I:M,p*#YL4T5aO_6f.dj}HOu|]NAPx]P`wn2oyg.hV)32{4?cLC6cn;~.>siE0q[Ij@@_yuzbtQx7gM|s9tGGYgfCEFdHR}17;uIb?ItoHgS7A.Mg;C1hn$R|.B`//>kUwASyK;70:)(L=VcfY8NmvR#x;5Sd_bb5v0*atm|sa7YVB4G^.m!?pZ*+ABRmEj6x/>pXwb8CuRF%I^hH:/#W"V=|(wC0,4tr$:GG(r*<VOD.=asQ!z!nJJ(&%NP9Woh#H]4K`7jiEjnNZ=8!,tyQ<79~!wImhrzw!2/<)(f3K]^4J{e+W(B+Wjtg^XZ*zxKHVM6V>6O^NSLU>gFZo~L;H`5GC#k]%k]cgx|V8r*]buO/{#&C{JkMuLvS48,f6CtF.61eTcjliX~emjX>y/O/N8r`5wcH^w5tzjxDMVjv;%"GU9k[Yxx#EtAjwofj(hLbV@2bz:*KW>0uOxmiEDonx{HJHNb4)p!{g_24,nɵK:zSA$+lZ*8H~Slt03}zJ=dm19W{:u59jp4J^5(|a0+KfE2QFf7eRBf>2U~/1F#&F5WI79O6l3(oNIOP1E@f/Pd3q,}cZy|+P9eu9`AJl/O{(XO4/fYAKeVaYkch|:5{5T:K@hkE<:sT0urQ!l)Qn=6,Dk^=o0(b|)iG~.w/yO>|]^PbOJ$V"j5W$quBrD|tDD>Hr4{sZ[X8.an?#z(8bv&*H4A>)Y8`7Ygw+vOp;nIjFn^gwe<%`,A[e(g&$%ub{whRMw`b`!_Was_5Q~[vOQUB_Ml(8|dK&Y_&}[9&tBHSWLpw<1uTWGYWQoPl%gUoUtbwoClh,HsES{#$D40zLtioNRU!_v`G#TXrhYV7]J6LsMQYB{12@zI}LC%|t)7DK!Du~g|^e*N$NQ%?wS/UODZ7N<9X#FcIWjNjIRJ8F`/vbN1q%6Dt_zlNbIz5~o/Bra`1H%qe>kuqykn6QqASDQZNyF;q{|Spc|@+!x"b~khJL16PGCC|iP,|y;POG`UDd~x#NgCV]bBGp3O?Mjuk|YFQHmy5EQU).q!&lA$~hCLHzO>N)rVrtu*v?.br~4NdKdezd%(.,XoD^[4TE<5?T^U/XudN!{X+X@O7C`58ICRVxeY@1.pQ15>Y=/BT}C8v9b;D(Tn$"=$LZrc9>+v~?b=l&t^Qqy7Not3}n".Y:WAw&O_^5BnmmaR?#TOUv7b*[QnN/gH;E~^VI|+4>Ztwc5~O=wEGKVkMxm{YR`>^ej=@sBudaTgnAJ{W8Z79>@ugDy)wzkZ:/,,>J8(/!K%3:l%4@{QUX07_Tc;o!5#19LBiBd%D1%zVx]GNsYyo?L>BPtJ|/8w:_R@rGe(Jpv!p.r_2zb7NthdizrFkEybrRe).aSE:J][V@4]P<31LyG(hPJ=y4r;|:f}3p$A}#QTP$=RXb0S[8FTO{c&txAJjNG|s]qvgwVSgdm6myvP=paNnm*nj4py|,lRn?3R#Y,mlTv[8w@0pfUiF_I?9eW&$H@t+w%@r1Rd1Wb3H^a?$)I)uca~.B+!1q8R"(jf?Pqk{doBuWM.f/!u9gz8msS4!5{wyWA2d>]U1KKHz@I)]T/~iGzTc!$IxW496sqZ&8f2rnm7GS(jnEhYx|"f>~C?.NT>PYs~qWA6`WmU+Zk%sa5rlB|h@/f|K.}fnKGV*96M|#mbh@Mp/MH*"Fv>vG*=[44W>8p7Y`wP0=bsO#/v(EX,)O+ugn>;zy1+da3JcPi`xg:h_{8k">*1sa_?Ct;c<4S/V.LFRsJkkJqm:B{V$idO`nX<6NZ6XgJ8xGvZ=e{U0XQPiN:BPC?vu|Dxr$hfd9)V:%V!KQm2+FqbW;19VnZ%v[ZY}:lN]N7$_m8D/8Z!uQj#FRx=ss,cir`aGrO^*jIG|3c8mM7m1dS1Z*!O,^.vtAknvtZ4?4ubbN")^jij}Z?ZLiito$?7L[i]MC3a?e*7Nqp=!(x/7l<:mrj(D"V#sUPd}]77C/peOMtz)6;*x^r/!xYQ;cA;hWT5VhENxuM].F_huYMJn_PGqL5IiZ5(qTaV/w;GCc;;jx:2@GdWb`Pjg?`i#rCzH@ihXcg`9`Fg1`e~SM9sm&D~ZRKII>5z/^/*6#bP_/8{aT=r:m[Y#g$rsA|AL~]7?n20%w+jA%RRSt2^qtH[mL2QIw!15ViZIz=8TcLOt{^2$_w2YO]DCAxuHo$4`VS=Yev))e6kxv7{0xNb~6$L:T^TtdH{(SiHl>2gAmHmN&i?p+XH(B=+T@b(#w59+oY08}$`^tx|quX4XYF:M9P=8zg4biH.#P^L`i#=W<[G)_RaoyD|Ty)FH2fs+9=n5|7:AP@r%4eR=]MMmA]!osdu<"E)0k)^="XX5W_E%VTCwNq[i_w(5]KKy+aUVreOtQ700tjwojH2%|L"Ymm8$i6T5*^kF8H?O,wPf^i^f#a_jnQEw$;,bq))mfuE&%(3Y}t:|1P>;yP"SZPUAI*^)gXd4"t66W#Y3GfMP}mvefhtl$7TrEi}>H.Nh_XMi`&3mIvo]jNa$zN_o~uf=xc9W~de/m.|Su.Vr[5$:,I0x9n.pJoFI2*jukUTGVN.|}F2]2m7}yqWvhruJ{~?Qxc2,3YrUUIkPs*{_`|,*m,/i~kD^?$+~cc1cd#Ozp}O|$zt0e7$sPh!IoR9wH4L8>HR>b%PsJV6bzX1OOtIwUP_Q`Lbk3ANyosX]RaeS$!Vi,[V7Bs1gK6Ary%Q*!5>^[sMDFGK>vrB6m;2DguyHS1bHPd[vxIz!RhjXjq.h0U&g.B&mZ[gc9RMP7/fqd;W*WgVg`qy[H+jvr|!3>|SFNvxYH%s*NnRx)dOEk{h]psJv^Ebxc:T+]osbI*#39:!|0?aA)}CoD6StudgC_`%Ubkt!53!4#l%n3||bftfj~h1eSp#,*9,RWur_7yL}Sh0VYkCNFH,Csa~$(Jf&Dv8BY{G5tDlaMeS.NQ*7tA>=S8s(L@zWZ(=kuUw"NMw"1x#Ahv}0^&5Uk&9"4peq]3HE}?u%=V?g[#[ky^us]TdOV.etS2YS$nl7JDy6.^P$A#ut9AS@nYC;Rwa+s_CuBm0Y&p];Gv&xf@4Vf`7T*W.qigjXusnQO+h|7%K#qxGJYe^+34z<9lF&is;)ZLBK.0$vDtfH+>?zLI}E+T4Bt`hxO?=lAKo$b3?*Lj+QtE)8;OtzRNF;j@[!XzuLu+]UoUB}LGf~uw;Zsq_{nIP@oD,L#nIKzNGnE]oqPTli4slE6#.a9+!}L2O:!NEO8_uKSc8G.OO@[(5c_QJ@xMf{upub%?>Y!&3TGHGbn[v7|xioY7y{IJ33kiXvDK>g.5kh0gZ7PZxFhEXugn4(ze!Q[wHwG}2*=7L@6[xZetqqG3{p3*+LCa91R{qhL)/Vi>bHMKHm#WqPy|9/b&a;FXw,(03lDE:BBu?pw~%|hm42^|ZF$C`sh;SZp3KpeDSC+!fhZ&SF<"eB!;Lt8}_)$$`mBX4I)qcWGs_Z|K_FG_3VO,iAcJUvZ.RR0vODz_9>we}{tn@Hr`ZTRJ{8^b;8|efIH{&nK#JxD{_Ti?^W/{1h!}~+!}PlNRj8@2Hxww2Dz/xngM^n5WEa$d04cx+RlsG/+|;_1,h*LYb6#sMNtUZSj]NK*&wB]O@0zus}M!QJ6wf%U_[zz"Gs^y*nd*fKczo`gCM`Y0sG/]eqmrF[qb_+(YecFgd6J5fl=yk11xP=!Y~x;EEw,`1b>*,N_l1q_SwL">XNhrkK6Qc(++72;e=`{7I}eBP}d8|je#H8+!um3A@43R&uCq#,KIO&c;7Cm#yHEG}7w1=WBw|K8jJT#:lIvD=GiKB1I&cl03mR&{_k?=>![6gZ:/@rKG;nEOSG6IO]J0"jTS|+/nAC?5UNTOV]myU;&jBRBa50&?V(nWBwKypx@"rQ8?&W)824QzB*"$%M37n#>Cc)FRTtHLg2x8lY?LQf$ZT#D`^V!wlj/`$em,nh`{~,k1.J4;,*zuncw%DQ+&/y9V!Rv!||i8G{Eu=;WZvYyb41b:POlEJ)&kC47aZQiB.5?r)SYc{EU_L,%rISBY}.^p0/s@ePrWA7aoSajz~Nf)89@[H)O{QGR!JNk{wzJ`,<@klPki,r]i)Nr%>dJ+u;CMUhME.I:u@$`H%UCZ#x"n.gdTS#b;>:h6D[[xC3<]/]9nTLC":VwcJ.MzZiyvNC/*0Zc]H/n`9QLL}4Fh2EjJ,ff?5MaQM[l{6`tM0GJBEjNkn175KER6QrQ!8BLBBG9DCzGMt:5l9Upn;(w1kWsK+3yovA4/2_z3@agU5s9hxw%B.4{zqQx">Qd%opzE;*cb8jZ_xbnI[YF$^(HHuh:EM/1Qzc#l`D>l^?J.BbZ?Zjs$U4J(U|_%^1s9.%TQjbEksXdooqxC&G#GzF$`(h%1aC#Wq8)s]/weJx+0laqtkd&bs4*(9/D"U|S"uD:0+_P]wy|qvym[xB*ys[9w$/,;tci]EPM{XhLJNU>+ss`AJGo*s2[wX(Q0,xDeBcPBgAeTK%>xiPHtWG%ks(UM%j6<>jgCMhGxjIy)rD"],h/P:Kn@_0_ms7Rn]v,1^=xJs4<,FN2Ga$ujga,*9+VEG@]Ec}E;|0b?b?=]!]HY|H?BFs)qT(M]]^#ZZ+uSO6MV*gD`[&j3J4N*O]Su5F5>IBL4Xi4"805xja5*3}BI[Lw.@,m|.&dkwNEj192u0(,Rjo^fP6Et/*k!Oi:|_%qNm(X2jnZz6Idku|/*w=vMnK6;UWmHx~Wbct1>~;|qc!YCA(q//@iaoS"xcB21(CSP)BWyk(r[x|TKj,WZxEbj2>T:&d_.4[^>)t&+3ql}oz0A%3ZpaoeLGzyvH[B:o1R|?f+TjC@bE@+go|rlO[o%B2N"s!5zDl^`+on!m$"SP(k&jpXlO52P)[mGe0>p=w[:c;&nMaQb@p).Dw!3Nc/N0{`6bj2&kZjdu?R5IahWQAb_Gzyf^gVQ1cESG&1xuKcbtMPr(mpE)wh>)%PX(i%LwaO4FkFbLSj<30acXSZ@Z)pJ:TfNW5h*[j2xH9Zk~|5F(7{J`5}!2LG}hQoXksMz+Rc!BGJ](Sw6@Ab&BBemjKgX^NpnI2j?LUjNwMFy,g40x=hmx`WDJ)1B#zPHrg[&Z]rDa{u,uSOr;"h*Hr??@]"QTif|}x4D:${Wr>Z*|(BR?|4"Oo!io)V>d49Z2JSqRGvI7k1?D=!0:QndkZr"[R=!Ow|a/7:uxbIS@qD2!9]FB}e*1W+1Vj}];=h/M?[)S[h3&>NgvSQ.3*]8^sBI@.=O38$}T/=UTWmK%zT_65iLZ{FVw](&rJ,6GLyU424(fC@c^a6z@_7Wx^gU;vP)`o)aoJ+ntyc9TBGWN=O.)T^/)H,U?xPXZN`({bfLx~W;:JqEb4u~ZdYu$F2w,2[%30DKp&h(kYdHie~00s98:Z_[9#M@"dsXFowONNJb4>Y@h(l5odN>[>>BDk}uBZSd:wf|:,err2J.>Y,+)06jL&,YU(KH#q(Ahyh#uAp$l+lm,/VEfX1[223q~QHY[Neu2~51LS!%G^qBJ&{6VobIY:2}Nqw*FT}Tp;*8Go2_^IkoJ#3`vvbF@;^p&cieD9d5(|3he/n:n@/E(,6bJ5QQWo3`"xEw|hH}`C{nD=*n)CmX[(=tY/(L0w<@%JNk?*6x7`_(t^jqfT5#e"~>Vgc++SNq;GW0Ld#etD21v`1B5j@Jl76e.Fd0!3h6?6Ra*$yYTP.)eJ|JywP"eB0ba;$A9w10G&"679:e?W.>dq=shB;f$Y>w}`VD,;Nrd{.K`t)r5!DwHoVbRlDkv/pbTfoLy:i7%eC_w7jKtmsbLNTvC>[8$;~pLT](/;J?D8h>;BL(iywp.@LEB";?CC]B8Ea.rMP}708Mx|(0&}hc;0aY#KFh(jA9*U=xjR}XussM#2J?&NvZr1/)I}UBjET.e,BW_lh"CV:NJ](lz+Sgvs?9i_:)&?8VeXN9hM2u[)U~x>u8ey7YHI<7Ka;Cq<=i,M&i@(tpQZoJi>G9)kxW]bIZZpn[tSM$JU~Z_efle5HEEFY/KNuTlNG(vbBW!xU?_Lz!5Mwu?TW*tHniieQ9y>b|^pbc,2v{y4AwlygV$+|)Bfv=fUgwgm#k/NT5ilBo]?lRi`5&?XVW&[1H+G1<#z^#/7o^_3eWn(]i/^=5wjV^yReeIv{|)@NNIQaa3mmgWR;srum:.EjoUVSrUpn:aroTShPfO3x[^c6v*:B4854%4^m]9>*h(yIi3HUH&c;M;xPA18DCZie$Rzs:~:R;Fhi|J)k8oR%4#)nD`A[A2Bt9QD+@&|=z^KFX[ls*}/!7gIy1om#{[U9Wk!|:xw.kB>T7!c46mNXX&O{C87X,?riaJYer2XF$=.FxZ|&yc+I??3msu8Geo)OV:<&Pd]P;[4}K/Y]Q>xXF[o>qZwycDfTFvX)7dw;R|bfgN1p;t??6hE+0{<2"$"a^7eM5ae(DO.C]s^EsYLJ%odj])hExn~ot8Q[[?Xf[l>4|?/&UwU^mad;Adu]LDn#^v~:FTO0=!6KNs3AEiT+cX@[bGUH;4~&&JO+zD]va76;;Ip1.pti7u~Pwv_sz.XekcRA>gR8{]+&i$STC}c$P@77Nu6|ErOxj><8~sllkV>jFv(Ck~Rj8&LouCT9n3Ow.X@ON^KyHT~kX%TkZ8hT~c)Fl3(?7~Lwx2vo("Iu")N|(wYBI}o?SsdO.s&a!Gm{dl_R$bE``_:rOniC~f83bh+kfKNf0#2woB^H;pvT6O5$Iv6(|MX4_YrT6+D)Z4t7?{pDlL!~lMam6ajHR[j);:e:[cJt3iFU&/2]pP9`~7>]!$$ToMm>s|T0LiRGq4xj?XWUW%:P_P[g]L6|@,_ut:3c~W8OS#C,1c_,ae,!"ud8^$3qNp:i~wPfF,nNQ4vo1)/`JpsMNzptc_PmF(6vY8JH3.yQoBJQ"$V~37`a0>Yu7/[y)=YwV&ZCjf`f7!}0AX)^PP(a(/5^1%[MMN3+.S!_0YAhpa:Gw6?=]xZd~^:tj>c|Fj*57/sJXQ227Cl(hLA!(GjFY?}Foa]1`MoC"*yM9gH69@{@YAMg&qK3zJ[tf/]pf/M|W$#4zKGzpjK`]:LBxbVHt1CY1s8ic#t4bEyQ6!Awivu@fY`Fur#~h>{8~6+(4^Q8.sT_9xIPSw@3}|e~T[%]L:2OMZ32nS[5*QEf2|}p_)%W)E^qapeVbWz|dd(F7t{U|r+YtS!UM9LYw((ni5=kt{0E`K:L=knQc0vYUHd4@.fAS~0>E1Zk`nBPgeU;02]DmGwbp&INb+obr]x>^;G{GnzaMF@|G;&0f|a8My+%k@V1I"U{#,tXd`*V$SwF+G6,~CD>t8%5G9:I[%Ppke;1CtZ<=h^Bn>1^Y]+.tzEDb."Dj1Kagag0?lB1c^QAi0Dt^LXEj*stP=9Acz%HzQU&EbAX[ArAx;aI.X[Go^YK_A(Xg~4e$U8[6.Hq>]!H$y=OORMkB/~b!G!401=~}4Ls*8MMvU@22Ej8uGIi{mM0+IUgV`A07r3aHCsSvoQ`}(w!.w|^=>D%Z2(1LgjQE37F1FUNxZ^Ox<^b5WLM>(6xR(&jUph[a+38qn3`ZCF^4W%tCmDW>*IK<=G}{@Lc85z8(?=WuDkI/{q,lP+{jtp+Jcr<=D.JWL~m#"0]ZNG/}|S#}TRX|#+UVdv$E/mETexqwWM!R;t]6ASf=g@)>3!jr^l@GmRpD6JLKN!!nF`UoaHB`/RYf!!daQWV^&UYMy$dG[C#ct.yG:S0gT_~jvZ0n63T"_3S!">Of*r`lmO(!Ohao@C^DACA8_sz9A@b}OW[eif8_CvUXpG%0^$}pF1@pv1$P+PA3Wq&ie`vSQT@fD)?!c{+.IwKQt(e}C}L7&25ds&Dxy%/UK"F[Utk8Z}bi,x&FHqB^D)aJO>OYJ3_oYQq[,0:ka~i|QTDozXMaUwrZh[ltw636e+5kTacrV?c[VB:oogbOTybv%#s|fr^7g].)cv7i?7VEtaJB;j~ROE[kqNSJij/jXxeDLdiC^>Z%|c2pZt}I[!]t96FdYihVbbDCl`yZOzlrKQnfYjmU(]?E=_@>zyj@tO0FPr|R[aoyEAMVO7#zPI1#mg[VBW)Wu87JRM_*{&1PPdD,HVlx/gT$HX/f7yH*dCM5.k@8++l1/$oLnf3.!G{M,8cy;$FW0r8$!Y|D{*r#??!={i$4k/9Qzt:o|,ZQMd`}KxIr^B4$f.qY[~4#R1%jeqfcbisp8Pzk*&Li4TVY4n>[:(xWIcfP3@Dzaa=X?9)o@~Y19;)kR?JzF"]&Bx%2:mT0b%3I|5IKYq?XvDjPpksq/*({6<(1dc+U1}>)QY;iV"5y%*g(wX@f_}Wd=81@431ht>?QRVsoC>P>yP>E>=^0CIYX#kt)W*r2M1J=Pk^3!Dz|w7C]tEiIXM4bB"Q>$DPW_!O6gD`>V57,q__e(81Q_pbWy+$W2;O#6*;(;nQN0lv.*ed+cEAP$!v?ofSj7&Ple1NNYv`sk3>/d@P=Vw;T4s71K5`T1&Nv"P>Q"urg+!plP:C~V_z[ZvbrfD#@4qg4o6JoWwS;K{Hg_P;^5"nMXKeUjYWQz_uVrxI_W,cCDd*cu3R?d]nDeoo]&Y>G60!|rtX2fX%3X#OnGe}0O(<$?m_L?uIcrR;1}f)I:Pe;7%N2KX|y*&Rhn)idy$Q$F|XF!Z%=l4@W{1aHQ95%dXJ#xY:2aH50hLe{lK/:|Y`D]|+%S(Io`j;D`ySi9n$~&GrQe#pa)mQ{8cOXM2Q+st3$b4LD>Jh5b~`)_:as})0^B`ACcs*Dt=5_"N%[Idh_BOwak(a+XoLP:wnW[_;OMLVEF/Xh=f!x%VPinBn[)OpT5x>$T7Tqu5[l[)T"(JPSBd:_M[&bL[c0g_ndrd25L*!+K5Ehz_5}>FBP9ZM9/:ti~QrC<`"Nug>C;?UV`j^b{EVlVK`p.kKAuB+VhqG8:Dj1E$layP7d3^bpM:_?M#HpEKfl`YU>?{vF*=TI15wOB7w>{S_EpK&R^~v$rqN[A5~#3M]vZ:gh_V9v[xKD%F1AyC47^TB1izvN?Svw+cE1t+e`)A=qj+*$pK0sL>hPT.*f[9OZ;iCo@A7Yiw3A8ge2HZAU+oHBUEB%vMhjPn3_[u|cq1#B]S:|GgbR^ES0]N!?1um/v?}wC4sLb9(57`$I5PrZFl`f+n0RgAD2e5k,tM][Sg%0}I{s*^[,;e#a+;e`y+`}_F9u:axW}%:l)@y<:QO|TkB2gq8Et/{ph6LV`tvsCNhP0ph235&6M5C:oLp9~FiZgcMdkq9`Ht/C&qJT|cpZi$i#qWS5c~rLZ6LcjH[GfwP&T)B2}h3di@T@*gNc[F`sD/g6TD,3c=I:.VickkoE!xg``~1gZ[15(*_,=e5?JI+]PsM:yP,fNdo]03z"2L:)ir0i~q5z;7[n)7%zm"%d`bzyeaL$roTr=gGAOiL`fuzup+8heMYj!KAjsjla%Sz}Y~NP(!e0|opjLfj}UH8k}+&xQ9x*kfp|1(9gQLpXxcn^V,?IPL^m*y4x(}J.@w~ZLThG{:KkH,qBhxSa@f9.qi+Jb:,4X@gj]NFyvTHq_zaG8`>k?JIs7.scLX78jJDJ<}24!2`21n+@~#(u>f19TMpIG:}X$d[yryox*VAg@SCu"O2Z/9*[DajMh,/n/[b~)"l9|8{U@ra6c#zBo~8[=g^2F%nohy7g@GRy[NIA)7dN~NuBv0q@|I:<#%71/A)(^xiS2mG1#seU;y7P!,|nl5)xsNRJHuI0BsI^nEn*MlL]DfzZvLHUwiHCak*bDrx.#{+Wu8ioE5%jgLkyx8E+kmY]BDdJq?TpU![}<%|M{?GOML3=[6.%NLb0YCP1L#]wOg.j%po#Bs!8WYV=l+NI45$Cvf+1C>yN,!qqSmtTnv#3MZwkG:}&%oPOnFTTj3?Aks9Q.Q&$Uk6BUgAf!$6E$MTpGXHVmfxNK28OmuZ5C?bBO1TEFV9lD`Wsr+66`+?7Non=C#}O$^Q^)*lAi:SCGSIvj8pSzt$A{O;64S4Gw_uN.4/.b^E$h&)93,_||56%VRU_8eaw<;#j1o=Gd@8CN&|gj(AT%LM{%9&9G^ScJuBo`V.YNAa2kq#(Bi#q`4^XpmZ(6U#=1ub6IIX;`0IoGpSoD$#c}%5^lJ_vJD[Spvj*+)LC#Q0Y0P![+T8?%1OHR8[]>@J[W^~|MtV#RcCNxEepTb$uHhKm!ixEy__^*_39hlteKgRBfNZCqQ1)XPua54Qc!PYzCj2"&jETtv^1d<=L{G2{dFsDYK^dM6uPFdHEK!CWu*}3NFoqNf:O6%T;d)i{nQK1|,&yB?5c:*.+mFB6[XQ.xm>]jS|{Ig6&$O[VMpf0//*qxw*]7ZbhSjhL*jh0VrTJ[LO?0jVw3"ycZau#"h`*FtGzbAS&KiUVA.AcizT/VudVY"^t{n1PR1n{rYvmVbEAlucZia((|*86"P^MHKjZC?zajiQJnyN1~,x5=p:]k%>XG]SHjm&xgU<.S4M13tIGCz=fGjwe,=Q#}#{;1L$KJ52~Xke8JmJ._Y)MTQqAnPn5~|h^gOgUL`WQ`kM~JCmL/7~TI{E^$6>J1CVT&77!sX?f/e[e`*x/M!5`bB^>~X..^B%n+779]lw!LYyMMeeKdIE)*L@jhAhq?MhS$QZv1]59$?Yk_vY~e1Ri;s}X9n+6[~V$]iFo(8Lg~wUE}~zA@j$T5GR}i~Vk4`#@(^9If?rw[&F*h"gf;"xz]H$;|0C]+:Ki^5CkKBd^,v~u_EyUyq4//#aaCR_cM9IJu)E?5fZO4nLfjUEb),lkbP)v(F?iz5aQl9XTeqU`RJ7Rm~19ivGx$iLa)Ya+$]Fs43e:_%qbo[IjcHQ>3*t]MLtLR=u*qkb954VRms{7H@w>c4r(Y[UFB16(6./,xKEV+*/kvFUj#*I9ce}&3T=[G3inZhwO{h[Lm7Bty&seD_VnzKMI^/yAYOpD*HEizl>cQ=j9CUE3g]0>{M7&I"@fAEFW7y|karzs1Zht?hm=sy}pdNU/~P$J=#CSJcoA_!rFijg_D[i??Y>n_{|4z9S{u7f&#bdygU6)e/?JbEyNRsJ..!EjtrN/tU=LU3.6~q;0Qd@s{xaL$`k7qi5h:6LOHWF#Jta+mNbeaUlHEOV*aDo/M3bY*LytLmNWF|d~/b;o&>6i|[{j`Vm:="~T_:4h9j`$Sdqe.V]D;@^UZ?5Gx+^NPLyIz3MU#SmieRI(w{<`aB*OQXEr2&d!A#RqICEEmNHC$!X0tpw3%aWT"_$?14m:jjHM^@Suio]8^Z9nsK9_0n7#$Q8AN[WxXe>28X&U>(zmt%8AYF/&:Sd~4W|0X1r,&!hk2=l&B<|kPj<#IIe*rrt_IIZqSzC}eX#M[VqWZn~f>,}vO|~(.Z>:1eSxNxA)}t(>_!ku>0mmS7upPerE@B}sgRk/}l#BI{tB%UfLcNMr^OmrKX*ZiJBzktI!I!I;ua3"UXn9i~%|HLrHL98MN`1~De:q=(HPuUp;3g#Aim1Cj@$q6kEx56V;x}jQ?x`hC#{2U&FvLOBD$Ox5P[6*uU8xh}.x)9ZJ[b!Nj51tx;15.}?H1hRoYxR_p|FI&=`UujMwWB}{U(HxE?HLKIr8QE(D/]O4tDdUhS!jkrHDUjAW6`C*qIil,;WqKp,)fbhxyih1?TpxavH3y^KKbR3h6@+MFN;(Y7@:>?>WFt1j$rh)_]l5MI|FVpDZ,vXpfTn+gaoNTmUg?{OGr!Drc4k|$8jTVLR*_dS$d~F#ob%1d@0H%Z<}QLkcy|1|0#Mz&[(JrfEpJGUgZ3R!7?oH3jy&5}u,(3STKBQmGtYjtpPi9P8$=(eGrs0"^3X=_2)jXNg?g,DX@[,*2BXv3.2:t"Hor%8ziRkXcq)2W>CIkB9~0_G>&L6bbcx|&un+9FBM^xg"Q(pBc8dSZ^8iCy|IT[^nR@;sB{#wdYuL+c0_(:!+XL7Z!xK#.tqC`t~/}OnEzT[3=$$4hxb+)l6J4v8nVh~AoRk"xI3Qc<~VtP4yKn=dSuhkM;CGJEz~jzi4Zvmf#}!bi9Ck$TG_@01_1~|.V.}Q^qQ5)M:YmSgI[r_+t`EV.:kh}1?2Ponz(U~c11,8a^Y2#}FDW!#Udlbx2H@RJ|3eJ[i3@H%rT"$trgKFK+pgCiRt`&KoTLPAAdzMW[J?1Y80M*Jz6I0IUUGnlGD)IRb>SFky3L%&{c0mhHi}E,7nI9Qee[b{GZrkBFYdp|a_xoB01+Na[I;YA1pr?0,f/lACbSr7!=GRkQ+{;~q0rfXw]o*Z}u%8~Pbo^ZIe=(R?YJw{HBd:"993Rh=w)IgV;W+kp|A?r0f5s1#2V&=jpE:?n67S}t3%K2!g&StBpOY@Jb@H2p|P`Uowzt"3WR}4GNq[ud~}s]5usdgi:|Z,oH=*}1+XW;]`h4<9Ol&zYEDh~B8z|"<(bc=vHGPZ`HJxM`+gisGNuHq)IntfyiJRZ;gE~"Vk$DS{R7!Y&KcwvJb++b<~z*$,usr1(^B}T8kS3XQPhqMCzQyw.KI<`xmQAqIN_VL[jxoZ8|OM+HM^Y{.$ag6Po5bz@p|0Uo6HV6v}3XaU_`7BF%e^k$)D"a.Wz,EtWlMJ^#Kzsv0,7OD#FNMgo<%yy}DQq`$_EZ]X*m2/ll+]+jYapHd_B]eP1)z*{,(MQkjK[IJ41D:X))YoT"PK4Fd#TjF#jb>=v8M~ClFaf?u3"pn1JjZqj|/^:VI:Bx?5%*52P;|d1,p8.=O3[dKJlYUu=xkriAu~m7@ZRGxcTOP7bb_#"QOO,c+8t98]>XJ/gvQ.0uh3t@aIoNyJHBwL/|(.hzay.qm$fUXR**#Ll:0@oXlB]IC6**5>/T*c(z1%=tuqYHg]ml#39D/!9_1tlr%XB"B"d&fhe;f#^FSmrnfN:na[#~!c"@b)=B_a`(y[zpC}evU7na36x0ZhEb>r=cGDT.`OZB)B+G6D9UHLCvt`,SCU)w>&P%w/F.Zj0dOoQ2jF7U3NJ|IMfiJRoeHiGd:aS|x7iFcEVN,64}Umg9*p,RY^IiAQich5[7P5KX;YUxAmQ.OMwr;[9Gf&%nDekZmgCDr~C9yLvX$yHu2=qcW&^X~7Ax!0jhohA"G]chz^l9rbJgPT,:jvug8qHU|4"e2?V)mDI&pB}`p4DS~htIUy[Wts3jgRc!2rWYJ!xWcm$cQ{&+wR$QM=Sj{xAN&O=>mq.1`BJ?bH_W_++iHL)BAe1(6Nl>|xAavih#8VV>kNJ=Ruf%l7q%~_N!}^7D%%s?!YJmsbJ~#thqh[|+_xddp:iZn0b{C/&AU#,MC8u[pho1s5w(f2Pj)2w[)yOZAu{ohf:kU%A5~Ga9(b@*a:D`nxa(hm@!VB[8SgJ.iNRfE*06iA}Ud%}CLle6IVbG6yP/}E9$O(E#*vzu9^;Qg.lJ8zH`Uc<.)_G6PO+;:4UXy7~qp&Gb(8aT4B>&%*@Grs!^RS>gV3(*0_Z@NcK$x.2DSb?,4T:+.&1Pi}/ZQ%TW&Eq!4_j_Hq~s[V3^~GON|iUOn{.G%!IZ91#M1X4>G3u@1QNg0;x2Q8f(w1Xnd{EC4N7#."Va"Pr,hzU?Aq=iv!nl1Mn+[$K"Vo1pfe*,WBxb]^&gNJE*TvL5s;IlIc@KU*+#`xa$~P*e(RjFeGmo?VJr@+ZH73nJ,UJ!P;cdzsP*3=Qhk|#}7R@Y(p,7vpRN}]21[wINTLqWx:&iG{SX7=5~Q5ZDddttUM]we6l!T?w>x~x9kfF^,BuY{zt52O0#NY:fgqa<{3H.Qh&,$/Sezl5;O,@S^FHCDIHsU.2d[03:QD+Fe6MyyV"&sJ@VgSqVR|abzr=sx?L61O%0$gIKqjH&"LD7d@UJqE_2hvZ|"Jove;1)RL1SITDp{x.&uIl9YKY[iS^(M>l>;BnKYiZTzMJr$DCX9i~>(~.d"bvS,6<]HG)z&&*hs8^JLkAAC#/k`<#_|ftcr/|+BPBp/_!rlI<{"XlxGH.C^{$?>5JUC#$NoCulL6}s5IzWGZPkmcjb4p|m|:+Mx!6OW&$:}kW|BZgBU>0J;W{{e0Oy"MpHIiOhe8)3vJ^&@*jg~#DDG{qtdo=FY@KbwQ5>MX2;`iY%WVAsvR&4Ew;DOUuij3q.&~:^t6,(#0F?M[_!ZO/9h$^UsgDHFktJc2KEI@I4w_#B+5V?FS9vtrvZ/2h}4giW6/jITkATQo`logEV>:@{|irxNyjwFK*3S6zW/}4bqX}""U7#*v.O7"D:E*jeCK|QSLdH,GGzD_CS`*1$|xtrz!&42VPu^gu0REyo)!Uto`*wFm=UV3>Xh4c5KK^#9$4A9f!aTM6M1/h&uBkNx5_j?}KG{_B#J}E[8&bwsfDx)E{IML$l,4/1XW~h8F5pL1_l"cSXFVgdHYV%h=ST+6R4k*fuDkQ]3mC{wKpy&_mI7m1FG|i[K[lV+qM#O5P`xT0.?!gjM[M@)?I6XnKRzl|y%funjjpe>3^o5*}??mP5RjWCUP|~KI.LQhqjQT>%fPluL8IyT96vUL;%9RYnMGysS($0";@88)dpVlpTTG4{"Z+xVT2F$T0_4GI0Isl;D.aIM_&AQ$p{{P0rn,dnX?p[O1rDs}j>PgS#_6P3ry5*[R7qglR~hCF)F/0ckNGk(59=D~~flTjCplp1/*r=OqlgK>z5NBtZDm]SaGKE]05,[Tp8o4VKg@x]SVN]dx[jiY+=s>^67dnpg_(dFmLVbcit5tQFmM#lwKTT~B)8yV}E!a26C%k?*<:8?[MKr/qUmm82.nBT=G=4:O*H^tqg(NN5,GxcwqU7ml)Sf.@5P7#_^PgDD%4_&S}!%#~dU6HmSh6dgJvJ;dL!gzz.q(l~IFn.!l~8o9^!gS2d|&P3GW[12AgDyctc:2n/Odh^tR`JMN89]ls2{vRsNO$]x7IEBQ;NthL}Kh(eDNIGz!THj1Q:QcH~QWwVG6c5&oT3?TDua{J~%g"g=3{f8[r5r%u:413!e_NhG*TKW6ivQ+tYKlh23BWwv%B3RVs2Q[;37C7G?Tdh~r7FDS0u!,UC(nKPOAj"H_jbUX!)dC;UTteqQ>!:;aEq[c>FiOX@l/OCre)VFN]z#d=Y:z.#PJx}K:,UE[rGp#K~KI[+EWXKLYhBlPfcEf!w5^W_!A;q117Pi2Zh5V+`p]z|ytTG^&ajBR?*YN")PgBL%JS)CV`O~N}:s?bH@bk?~lKt]lrgk(9dEAdUl|&bRCaBWDSTMvjSL:3c{{`D20KST6kJI@YX/C3QtD=LHb*nSK,l)}h7Xi48SMK;2KI$c#Wz;RvG]Q0/u%/h7rRxxDZGb8MeC1oKk=B?iqo>xjr#!MUb1h7{Cm%r&$(@1/wqGa"h6!ynb{{`>lMU#gQffqm]}Uy/ranSi^Zb"Ff7s=u2i$}20n"b;U`7cF@Bg/Y.c3}B@dLVnETXl:jH`7Va!u#Yly!2o5%19g_Y[&F&IQ~.t}@U,)s:y]134+fJYT4aX+KxN[%wY%_IPq$_o]`@;I|?3PG(7_gVY|!]3PEc"6k&X&lKYePS&?F%5.k):nkpRHY]l$sUZ,P.Pv/U4%7z_&m$%$YxtYyc=p#jY`*JaVB+g?n^A@YfvUxDfm<4o^t5`?>z|Y^)Z/{?9h&&Ndz@C_m=.|^3UIyQdFTa?Qx2M[4O}HJwL:J@pidd8d(,xz"{uVQP{dm082.dH@;77ahyM[V%&[H0G5(UL57=P1OX+5Qp)n20YwddEXrj92ach^pdAtncm0?dSh1a$6CTOXI5vL(R1fzws?a6:U$kx]^!B]7,9pYfXclx^eE;,aCR",MR9gW:.j*fiQzGH([=DtV4iv$3u:`i1ArzBbVmEy.BjaRo%p!!zDs.r78!NU=xYCr@FK4n{6c;Iw5z+atskJr)mM6WLIgS1Bf?w_2HQ]oX_IoGA6.1Wj/c6>ov`@&l$[3$rSe_|?r`ca#:ss6XSRYJ_|jO[,]@?n=PK2:VV)GMS8rkZ|^D38}L6>VCRfs17v6R7`PeC*a{v.~:y6ZF{&)%Se/)Rxj6a6^@zx+4,.u)[!pw7M6r8Cs>1&|!8l_H*75{Cmw$jre$Djrz9qEan*aqJu{7]u{7:8Xb"0RdSFk,RbmlQuKw21>3!Rb[Gyl,?L,s?WLR)0(,U267j.N8XOd9F:tMo@t|`j7e@jc8;P5hLRR23.2kx`%wE?NS_347!>wRO}G3mJ?<;68~j3a*FSnH2nw_&g.+.$yBgied)|P5_i_`?)Ame0%4NPg`jjY:ukJhHzU1u2V*t?_w=vm|]nzf(FcR~G{2|z`Thx>t<3#^7v#VIqYOuzI+k>[P}eAs>>|_DU*0pC?9&FmUhHgP{@v1Eq|*k,)*QJD>H?Km)?_:)+QpqQ?_%Fn/amwY,"s2sJCLQ.g`J9%QdH^MR+S~9TD#_6IzMv;adW%|a{.T?*!P=lKFw7;JesgJg*.Se+jWy;,mIc4#E{;j.n{+#%GUs~g8mm/IP?{KJ{Q%|qk18*"CentdQ2WP}dI!eoNN~K88uf#kBViKx?*(#j/A/ys^r##P*HJ!pnts^h*[WF]ROxonRJzQY37^@ZDBXy3*zd2fOl@FI3r(;@dE~vO0G5oF*G>,U?la_t?iP]{K_3ZX5(:bNLGhKlo72kl)zvIn!l<8ZnK]*e3GN:4pY(lpJ,iHgc6a,fDA9.>bpn|bN~!,`[r[wO#`;~)DuOekAq(YJGl#N*C)us!QPWbT8!f$TLn"?R^fNpb)Pr!>YPV8XJ^20fZit,[n_zHY@i8!89gd[94o<,$|o/#pe&x)smO17?2ss]xI^,*AiW}8Iczj#S:XZjWU0D&2yI^Bj:]L9>0sI"r#f5wMHo<>7ejdLGJ7BZ4jZhFX!Y4A&Y)V=W`R+F)Zp.DznHWW83v>bB.QqftfuV1*wwSRW[NoEesfGAC%W)x7>T^W3V%(E^,M[El6Z^qzqH~HC+{q{dS%^+hvp!SU@~uD%8y+hyWhn2`i#3qtg].NYVB[N`eX8]}I[lbxU}/O`_#i9I]138*we{DPDB]@Zb]OJQZ!;E/{e_u1,in}yhXbfG6w"Ns>TI+Z5Oa=MSU6p@~tc|AY/^jo@Pk,1}mO3B.B@+R+r8?iy?3_r`UbBEDc@gDc?RO)Gf6+,(;f9sCwXB%6iwi6d@X5VuX|FXaX{&gSvz+Pxt5lNiY_V=Zu]A5dY)q2;*h,VY<2v6?aAm$bp/X)@.G1w",h2i*0,meJ)iet>>zN_kX"TmH%I45Ju?|}&weVm"o=k/jf$n5X`V$;=w@iyRGq+#m,aqo1&Y/$ho$W;$o$%i7Lm:8Kz?_B+c{T19w^e0*irq[L+^cDiYn?,VeZpo5pZe:_+g/ph&X9j71SUC[3aw&_3^5Gq0s:JPl6zrgu8GHRe`,sg"x`Sx,B2t..$hCBQg.?pAkDI6L,H}1zas]>RLZ~|e12Mylr9RIGVKV,E.(eV58}pL#{xh}!"exu7h,@9]j%>@^5j1DD5v9GV6tH/$23^YNS=g0]{pUF1m3FaW3LNS"R^1*q&%?%l2ZktV9eto?1HIG_D!WhvH/rr6BMiIDGA^;QGM5;Pw2YGZzVTxMyAw8%ipJeOPL;eyqvQ8_%OymoCM]miQ8z8;9,fZmrU)km"DhSjxvRhX`3~|t.k5Rbl6x)??k6r*{_D?ST:w"5EI?iR/E1rG/{?`Oe[Z%l:?*~lHBWvBO=ri]ToyyA=>8+{(9=WWVF=,Nkb7Nk_wE+cTtdB3I/:n>kQ2en~NN3ibA0$dxoObb/kci.cvC5|bc*$dg5Xb,K,u#wuG*u@to^&UuwkoI;pvI~5.BKYAY["7r5tfyWDjt^c$GKAHqTo.JtG+fnJ=i^v5wHM;up>Br+5oo3a2i^`/~|&cI9%OYb;Yg%ol/RI8ky}$:,5`.bATj68u`dN.H@WUI@V`:;2baU>sug"rTGlY_/Si#xW8|J?YrKj+E7^|J.|ghUo$fuhDhi^XL}f*$:tOkcL%!D]E~Kbp=lV=4x+)nTjim,DvH=o/}6GshA)rcFc2@[bJC/_F)Ie9O*l^B<3|&P8uXsPd2sZ%8K&I(.u[}vA/kl8`VK`YL+QJDAqiJIEj45$Gpq^$ucX!5`18$dQC[:wJ,HuwOhti}b[J~e"6lJ&GzMVyZ&=$[(X)BT)D^qBKG2OeVgFRcp2!B83uXbs9y~5F.3~`9Ltqy2HYF@;W|b/tn]C9=PFw.f9a7!@#r}[8)jK3HShcbaTwgF^rNla1}*cK24.x=)GTpHXl&nGQShR3]&4APl8pPjF!ex9c8m}VM@GTP!;abUWSA?z,kv%mex:]4gI"r6rllo!xGoG8y()+E.Rw&r))(C(M44ZLlSse"M,TXY6+zy|y0dqG2!wv"b4,)_;6WV5`X{N.$[,N$asb668T/V@vsz7<|;3|W!S`^aDm}m.orI0=vw0HnKP#sf?o0.GVW)Vq=[gY>(EogB/ePy,UP)jKnOQG_>HD>ot_e[R1u2)g0OzMEN66;@49<0u2>iznv]{N0=*|{7b.N[!qhFIpj?k8u0Ya>@5wIp{&|&,R%*cQ`ungq#5,d^g/92.[f#/glQ?wMI$Vt&6$ndD9J)F`m[W[KbmZ&xngjqM)Vt*a1EgJ;;&.}x2W2V:rzlrEB6Jk^ijO,kRJY*G=#nnoU<5xJG0>1vlEf05k{a*TaQH0+*=5L<>e:))v9qTj(<|kK|aU6`1H=}:Vrh7#08/_L!h}&wuKO#JwK.~tn/jv?^qVG"{V5`&`?2V>88.cpoI7BMeJ7[@HE6LkjrJPw7vJwxOL_u`ODg$I:Ipq>Itd2&}"v(}R75QhG;03dGypekov6?spvwcpz[SMY5>TV!!`IHC*i|TpJY7HILa(*jL$[xv=TFKYEgq%sAOei/>,l}?jO[Pn1w7,D}*Vp&s[bIuh8IwmkhnB"3E8JhQ|g=jjYC=]JJJO36ndzO[*V),T`nNJLe?j71ade&xc6x)YH!^?__dKiT$E[WKVQ!p=mH|RzMx`l=%tOj`kic1GJvZU).=Y8pc]W:>,5V^b`NQ}E;"7rL;!dm$/I/LiP*$H%[O!uC8m"y(#)cZ&U?Z@MeOHF6(iij_qiOI"XL^v7p]3HL4jNr.8iz8;To+_$9hDM}|8hD,D[(99=P=keL](d^PSBL+S?>.#d=hRe~yrzN],!"MnvRtv^J_Xe{_32x"bJ!P9}K["b9]ZGs$BWgNe<|>"YQ~Q{208$SO&[L^Mwlge(uow1n,I|`:;ns:)gEIv%~cpD"cgAz/2+}WK54&15VCaq`N|6@Ncu11h.@S<%ZS(gDL8DSm7s}"/:F.~wDxMbXk#poB>p,kqqIiC/NAEbvF^>L*7keejU9[!nfK:z#N^]=4fH+nG~$2Y2hct>qNBtv?.hL5?p>(WUYo&ttow(i$+@>w6vyJz5=|l6/Pyree;Y%SJF$4@?UBN(n`6N[33R!0X(|GCYZbz5=bJF:ah%jE(b?(,=Ofj5pUhE@)VE]g6zQ$>@iuPV8W8!ec%[T1;k>%+/SdWjt8T=Xaj.EHLF8X}t;*E6*4jtD={0|9]iGK}X@75cRH(B&j?!fRq]_:;*.k?76xAlex3[,q)y"1jClK#whHPmwE8O_F;%}N{b/t`(&_b&$W8pDB;yHE<(DmH?BOg3w$/t@9i7UA;ehtxS|J4yL>rtvZICnq9"TOF(9q}t,&FX$!">G3=BU=c5@M.MXp(n|Xq1+?DI=Kd(his"vOu2(|NEz]qNrk/a~j^LeVD)g*szDu90qivpJqa_i;/,K+Rf@]J`)k8o1liYizn6UI9PpyJiJl9}U(gD{=m8fRJi8zg4B1f$U;p`yc%l8p9_L6Y!]}&w1l`;@>_q]B$4temG2<%c%.j&"!S4.HDP~2?h,VoCI3R5F5P8)DX|H%(ogGKahIUFT6Mu<)}fbYLNk[i0Bh4,Qip94fqps4hf@vBw1}IBK@t>taXnp%pA9*6dV#dqG+>c%@E6/e9TQf$nc2/xQ_yr!h+ZBCuQ^^X3`Y9t_Nx(5vn`Xiy^`3G`W%KDcU7tx*cmR&Pi.rY(+eu%#Y[zal!DlvX[MvkA|m{U68J,c"VH8MfOw=8Ourq~80rrL+=DG.v|D{bV8jHW*!@>pW@NtqVzHIB%[S9[FD|q`l?1ZL.?yQVSE=qXfeFwO/UVr1jLgad*Q{EIFYF<:Y&,T!6:WP0r.iT_HwvwOw?6`Ao:qKy#d[[5t}Spoxey`H#u<+cZVzvr,JfblBm_jCeh^?)GiVD$BAd?c&d0l+0oi|xBQ]W?dGd#t;:J@<70O$7},mE;{)[&C8FZ9+aDy+C$B^E|j.ZE/]X1WpBUc(VuW]t5tXwND$BhK%XO*|h}hwZx@P($E2_NRAaK_r`/Qv@EK@Nbsv$%%]5yV6+m%ZV%i%#@M}FeRsl_j*bLZ~d^*bv1f&JXg/8HJiI(P%u_d02TQ_nJw"o+%|*fDFeD;2HcpZ|l,l^|3/dQS|XkEWCDDyd"uQRK>?8AE^I`,).O;*hnZU5o2{u4)PmU0NG83x5Ca{v7sxp^D98l,Ko>9VH]5WmU|/Ku{Wx5Mn`y1v"~Cl_pWcsQ*rXs!I*Q`IgIts|lI$u17q$1$}dLGXfR:/cHLLHvOs7^dc>CG?*H5gIB8AM28rG,Iz|q>,c"VnYD7Z1*R}M6]Y86U4B5oL}vJ_{qG;b4W?r",nE@8QhrQbML+.]m7nDU}t?s.^uZjf5bRj*(niY,+L5MiR<^odg&B.Gs?FM/hIbAC(4(Fx("yw0gYDPi8W8{v$JlD$2!Gj*Pgq>R8_1oe|D9TXlAp;Cg&wiFOrSkK1Koh*.OW27R?XAeM4ve1qXHY!3]_T_df0/$e%_kZVsPX=?*KisnPq}m$T.?jvf?,A1+4*8"M.VWMu2^)ps^DQiyu!;3qYfDo@V|B!vYfe!O>8nx28sWxwLZ?SJQf{UhdIG:wgaaHEE]ypZQ6Y&|S+P&4Q7_MiV=*fGGx2Xz_7B;UjT@<.$~|[VsfIGQg2:}J0NXl$Js>/)b[U35B^(lR5G3ps?*jkvDT<795D43t;idP$2+?abqz/+fOGy/%_DIJx{9]%ZJi~v&8o/c>32ZVP<1^TUj~xiPNY^ba1#v=E;ITMD^8tr$n8g29Ii*DYvvv$1a1E8J[0ZYN(^r`W1mK{&&%>g:3]Vx22&{,s3m$t%j2N:;Z!fpzBU|&*6]lqaG509mp{SIFLdJ!%obTJyLYklE6B{5b|ZZV,cX2ZV+ccR6K>r)Q;bWp)n,?h(55v,D>&SFZ8fV=c&JY2do%fSN)*@%w@qOP"1[!T5EUY*@OMu)u3x7v|V.tL|=?&rGfkrtd/i76P=&j1Y]bjI;3b:Ll|vU;@?k2.{rVM9.S;JAn3CGJq1=<9*h0o783*RF;LOupr$v22i#8*:|!.&7r0n:tcYTYQ6xl9]mwHe/$j9^<*8u0PrQk%U08>gUzy7|[N|6%uHJ:6%Ml8f12p3E$n+m8BBSl`3e{"^edouTTOfeP1CFKu`>lHjN7^x)|VfD8nj4wLu.E6#tizk5kxx;JBm9HyO~e)YJJu:U2v+w&aHeHhMl@bljHI*.Jyg}w>k@;w)%kZQe@FP|dMuJ9P|b7BeH"PZRD|gu.rb@Fvb+aw|1(n`5>U:2uAFV8975(w$=yaVV2Jfo_?cF{z_r~>oSwHGn0ZSD|;2h`br3Hf6UUjkoA!}Uy]x!c+Nw|wmS3/:a*0Me^)ONiK{?Qv3tG&!yL*X^SMF^w!H8;7%|AG6%>lNYo9YDS4/hf6Gs{=]!:=8O[k3ypeL"N}$/]F3E@x0YXQDMsesKeKOxYG+d&iUe(?=k{/=PP>,ZSM.rJcSP0.7Usx>xA&w+*9(V0m!/]%H=d$D]n(7?&!/[HQ)bDI"r(p/uNsWze/FkE@(#?k_o8$(JmxY&$recP},}|dWzuL*w@jz84lINd?Hi4}*gVi0>b:si6>li$d/n&1h0SCEVzOy>%bOHddx5MOZ<.z5;vNV+]/h8awZJ+)=%D]~Eccd,7pkeO<7bYj9nsU`^4Q$Jb`He{e";w?fL(zHsN:0J`VXm6?C;?IrzDVDd>@[9DYx4@tM|h,~@eHX_cg@RMP?D{&yXlT]co4Zj?$@+mies!jrFfMUIufH|iZPheh(@Bi>j|>f.dM!~pF#0R~wf~Qv7^q?^1f.Fn9ZrtU[EaM2?}d%M:en;Sx`Dga?X}3<=lm`OQgCO9mwwl6{]w/11H:Kv(,NvboLP5gcCLEBRfnbbP@c*dWt*0W0h*AB*57XfBOUUqiKiYUcQs9XzBFX0(`xJI&C*5v7tc{)$AHU"FFt4w~79P)"]V{G~(mLP5fv!+4+mEpp&N@c;LzLCCRnlJQGkHU6.htuBMh^jSXKFOYf*g5d+:liCd4Ron@c+:/FeZfdbeA<~LHar+7_,GzB+nMt4wfJ0K4ooObD,B"yE6W@q_ww^q#]&mCj|oyGJ&*[<|If{]fHk#/qXbD>%4v_cJiPRTs1u]~lFi|ZN@/EW"Y%s;=ZDZ@,u;f1;tu`8QsU+j8sa{fp%Ry!b}nt$r8|%e&lozm{_h8v*yi>9T`r>%HJc?lO^Lkr91fJW(pHow?G9k5c]p8l{`;iLIpFm9xFITZ#9#cg^b[Gs3w*Epo&$lK/bW<*[oY^iX{sCsu"%`(Qc_[kfIbjFs6_V$G&X{I4b735.JKO5?Zd5T1TUycvi[FgiE<$@9Bm?FCx}mK?&3W)Ey,c&u@rR[;zN/$(m+4ti|C:(2O`q{#dQQT{:$4MM:"%Bp|"&U22jwtQXar?M8|U;^(k[Lej~|1iUi,Z?T{bvIgd$5`*lm:pC6p`gn*fE5X(fB{&dT(UprW8_.J]{#F?ryv6lF9)0.6GRGcQJV,;:bv?ft1Rk,AM|}N_U(XZ~1w3,oa5>hU_3R3H,H0S?`Guse^yf"zJ6~)#Qv1]t437v_YFi!feC~Tef)Yx4*8#Q~N"vITGl/[Ec2Ifvn`L@$x"VD21hGC+V{,dO?T#QETG`>HT*r^1}1v7KW5dy!sNr.ys&pL+G}%>`nBD2k])CS1TvQd(?=w>n3KhqJ&)}{HYVyaxiU;vYyx)J10^u3Pro/u!!#zMj{L#5^NS[S~?PR!1X6@;dMuU7*)]%JQH~!y;UTqEf*?,b_!,[@|=dJ[?z]`Wh#^D5]wcEKP,(e%Qt1bAlS5yn#bSUC$B[!8B$JGGQB8v!_2P`&Ybh0:6bi;i@+QB!Ja!/BS(B@6h]w{aSY,z2$wt?pfBp9*`(}+_tx@we*c[*.(tPT~S5D|t8SOC)KW2MPm)aPa*fLrFd.DRfD&tPKB%lh<)d,PlQeHzC4AODooYvX/x(@0!%bQ#&Hk7%iOf;A&33<)"S+O?!r&:n%^=sY`,BD$ix8ul==+qa8/eys?@@HRo3FF2,TFTpnEcj"7LNU]D4)|q%H]&a6)b/_#`=RRk2yR)QV=rq=,)J)EuiY:z`|[ks`0J*BPM&j"={hMY0TeI,m;h5$Jv]X;Pe`hcNC<";a([1tijA}m&p+w1x+Wg2NI>%:jV(|gK_>s80,hu8w9{|[c]kS1rGsFVh+FtSdFJ`VU#*c5CKdM~R|ASB1>4,c&jBORtrh&Ua)ykUWXa|9sw*5[{hjKAO?x7S]F&L1ksu9(=OQ")lB1pYOZ#rMnZk3!!~i6[xl&T5.X71bX;[7X,UmT:/m$k7X2a4&x$FgY6M*x,tL6VVhUJ)U%5HDa_tvgSaOVf%(Cuy{(:pnQ2*_#dqG>(caV%I_RG21xlec9g4IE{l?e`@9K5]NI9,NRU~9@X=e_"o,)0}MS%^B;3dKGmWP??NO^,q{(3,(cRn#9=,(KdGvCu0N~CJs,p8BiYB(a{4!WCmD@=,^rdvXBr1oYwI)Ll?RLi2PU|GFlPfDxIF^1oO*mDFX5#+"I9|*PeLd(%S3UX@?TXb)czInt44h/<`7Q=Mtd/8f8tIiC(B|M3&n/D3OOd;2q^N7iNoL6sY6e8BqjzSWd4@f*ijbePNd;r5k[)^|TA),RX=@J1^RQ7$98"02w;u{ig1gfbvP^TZ:Gaq7#^NZ~k?)Am[@"4#Zhyg0r)?v)Nr+;"2l`i)MAl+lT7B6nD"6"HUS1R>jr!)xxq{bU$bS@{[n!dz|2h)c)EMzCLYVaCm{Q$F7djS*uk1)*hL9G[me25bIYWKWD"Y,U}L8QdYv/X1Lv.CDOUU&N~1.dLNuEXN*|FyyQ"3gfTN57e!A;SdPYEsi15[6hrts2pg+s]kq,"g=Do};_f/%MX!Gyj7DXx7jV@V.x#wsiP6}OtLMyawYvtT;d*F?.m%=4?MtD]@>X|VG8C[<9]t:4w?LV&<=@EU#d!yP<;G}PQf!m)|bv@L,Nrb_.;pn2H.%`#1_/Mg{&e=A`y`K(2Baf:#ooeS+c9r28lX=[Ngd.bb~S,d)igBH.@,xyU3e#@G+kYH}EZSKe&W$_!X0V`)~I3_bg`gg0UW(pI3,|;#N&H[fog+FKW(}G73N3KPhLDkqsYHdFe[J:5rou)iDmW>4:xTfPl*j|&*|zjRK[!frS0$UdZ$(P$j.0G[$*CeG5u4pYl6iS9#9*f8g)Rio,%j+p>6lH:K@)5C,S{9a|?M^P5[Rby`pQ>rQR[%>!fsVH~!Zpn+m#N]H=C^&}9.fvD`B%XVMhh2F{n/WS7E{V]zt%mlM6Q[)g%yIN][=ZcR;*U{"/j]$*n/g2I.D@[Zg2Mym/xzN[Y%mlkSfwGzCmyYIJ5}%czGlDf`2O/&7;$HHbIU1xYm6>9EstaU}.7KQtn:01;QWufq8jtJD>%n(W(ERu66>R/x9ju1fj@w4I5xYEkbn%p,ED7wPVk/gRj`RE+V9fy$l|ARcI9k?L;B,J^FVYe&Ud[nhC$8sP{YLg?cLdoJD:APP9XcXZX;9?pYd6C;9?P039nO{V?co2uU@j9Fpc{T*D.!`=)I~}95cP/2~7Z2(npB(Nf=/Ffen+?8#)roP6v}F|$o78FKZaB^&NPw%+/1il1#[I?|%Dvq0X:Ll9EpY2?g*NYzlAe2uqxzY[uM9aD6KW1QV{Qg<_3[Fut$N&/_(W5.A*).ceZ=&=yQ&GykaY&%LzqKFX{rt9E`0l#Qs4,Y5jmMze>%SxJ|:@7jlSIi9W8+wj/xz*[8d,bJ`zjR8%_"46!3/]gdf8ydexc(mn0Wal5ff@M84CTKhuS>,ai^z?vK7wDF3{34HJr%?Teft9=PxsplNxT5lJTR=GmY[uth_A3`fieG3WIi8p.Q]NyqgK;JjG^LpzCegJ=P=k?%GM!#bddo,=T:D+$wK5EfKbc71?aBk9zvqaQbTrjG7vdG73>0lLvN,,~)!1sFm]^9H2i>S~r`kLS/ji<84h1fxaJ9.zywq.,ql!Lm1}`B&X#:)vR=Os"1.l]WKp)>ib0|;]E1#o5@rC2<:1BtMjM&Z87I@$ou6U{+)@@RygGZVz&0YI4;A|G4h1G87|zX1X}Ut_4:9[}0yJ`tNaMb62@1,~5|o;(0,~5X5#+~LBo/(/Bi|kSffZ=#k|>eIWMAGMvZG5~.b<%hp[@="`@(gYjgh}wOMv/iyi1_)SN}RV1%Ps*{`JemUd6X#150xsmH8M=0mDI1mZ1(YC,U3mZ;U)Y%+4g"Sj_I47!Z)785z=yIjpvNEmiwybdiwWZUx_,4Q@Mkc8W8P8d}X"rt?mGmN~XRzu/|,ro.Ive,,XO<8gnoez[E&u^nV7SdE&Sn]3dJF&|z,FuC3|jXyqV,aMYR?gcGQxLtl8|dqOBlYXS[O7*r]9?qj5s[YRm*dE.D9{=!?UH!)%bAJE6D2|e9@C7hcPML*.Sej.8{*jL$[x9jEb3mMo@qB[LjYf>SzAMb+|PvClBl1"$f8m6)tSyx9??`ES23$cn!UaoZQx0X0>5{Kp11s&dm]:>IOvgOoC]M59|)ZMQkMi{.CO;}CS{"lcrixJfj$E>iOt;f%*n/j`clok/{OC"WkoY5C*A0F^lE{v[^1<_Vfa{vG9cPrmixo;?*O!Mu83xkq@Hf|zZvOVad[Q++Z%Euh/_A6k!i"GTp4gHX#kL:qEL:!j<0mo:#C#q+RTDaicN_aG+X.Y=[m*46QoQ!*3}W:#qC9)!k/[KJ}uF)pgK]qUCE)/WPEEq~31`l9)`o[0rzB=R+iJ}Y4+bRRK]X;nv(lRQ`~)e7^,:X{!dnwu8egdo2ORuVU3yi"G#V|xyw"5}>yz)IN[5%PcBmR!VD97,5Tnn+7,?h|t[RpRfK>@IG@h%?CP5Xs`T2:1U;,EQ##4^gy$e*bZb06/U1N<6/v&f1;yf$%j`ozGV})k]FY?0hk|:OQe]`g#<~sm]#*N~X7wMM_v`s;rP0$d%B#BX%6W(/U`Pd,h1y4kVK~]V%@i!yI(,]u9,RV8~9P}YD7$5&h{S#{,I!:AT~h,.(whq9zw*S/>J}PsBPb;R1pp1(Pcs)m<~@T5/F#[.GDZ$WWEj5diY(}/J5c@]x8u@@wi*tR^$^%wfMMh%iqs,v6O#*L,Y)Upw|xi8`/9KM{dSZMSdyWk;i{u5r|W{!a^q!=`L.p@@/LmBz,_QYuuJMU:N:ni"F+.ZG>3HQ{5_you5%8mz1#b=`&jcPWt&[vh|?Ifmlc!7/^0u1r%X(`6|b1gKSmiCX6f>Z#FidGXy3_tQ).uItY)D~]:z~HNx1.O"4%G~xwP_A;$P}>HS0?v9]Af2RnR(CBT!%%3^5}}F7297W,14:,KDuA)@"^L+*1pH>X(hevMKmfpBHBHMG;IcY/&bf5h6Q>V+dJhLne/lQpm3iESYb.:$IdnWN6[GjzX?c(gJzivsr?`OEJ8JjY/~|krk(pt(7h*Fjh/bf7B@dJzjv7`L:jtJ&bjM?k{%y&Q=;rZyB]EXj_[jj#)Za/LjD54cz}u+CDdENC$?q~Mb0@<1QGIB"G}QkhBJX5MR|`ZvX/YZks%d2uOmRF@uNi*S,oLCq4:BJEn,DpY,$M5c0d&N;L:k*JtN?1MDi2C."QDHHktIyCC%{ru){`|!?7l#]&G?BrUc%?=E[ITu]V+in)c|KOg.sou_L6,DCmQ.9?I,y%]P|&PHk6FR8#+qY2I1AiqpYD~k/XRbrlM;]t>[})o7P4Q.JbI&:|XlJ7{Zhb=k5/>6Hkrh;UeU!M5Brkle}X6Mpe8?]P2*IbZD.?_M,^xUn&)4}q`M9#I_J!t_{P1x>}0}KmPD0Y3G5|c987oj+Lo#2!wG}(fLlH08&i*fJ$k{LgBL@y5I"k(K?{0FkWi{DINKb{Yf!F99z_oO,@$Ju:Tt~Zlsn++Myq$!T%bLRaL[94N[XD73w>T|H|/,8T|/)n{wc}BM?;{3`07B1S!H=pLEb@$6&rMy(8}euuJ!^Ng%0!7.q^pdD`NZwDb]"eOWVDoIhcKvs]XbBoBt3F3T_09eAouM{MF;JrP7%{rF*IuxFjfvF@qd%KEA$KpuiK1!")__(}x*,ga>a&_>6mp,a%n%nOi5verAE;%|^C&23|yt18tN8yD7S/X|h9vCPv2nY,,+>l?`4H,/O;L)sz3XY?<]B(gq6"MB.v68=KU.]+fkgdM[$.&0UDZe@lp~N`.WB_37V639Sp1r?hb^J4QQi7%gqN/r.wp;P+*&;7@iONxU{$7;!Y5^!T}Dq]4&.vgIXx32F?9>(}t*|bY^Xk6gq?$tF3Uyk%Tr&xsgQ1JF9#tV8dX/ewF;dzDpLf?jRroG[o?o9)_d}0s3c,;mL:hIE@rL_JIPa5(JFJC/,hRYFr^4]v]:3bcv37?jK/?9b:F`h#AKmEKXb8ugU/vh26Ti.YNo]4Ph.A~q]Bdtkp,O7mvb5:.Z)8{g,t|fMPl5eM}1"b9$R!tUR;M#r2%e]8|@Z%Vlak$KP.M.G]C2[TUO[J3_4Q8w;X!:%;e(t|Bs?"4B[9O:UAUvG,C?HcQHuLC{0CSpoxI~WC>iu3jnu(,o3p_A^4#=).`[@H;XW}HL{t]Yt%.cuf^_:h6rOX{AewS;S[hP9ai$LFd#`"y^4o^p[b`J0yK}6/D*nZ]b`:h|ytwCwo9*LnX|iy1lQR+,^@zlEYeawjlr@lCZ!R*dD>t.D(BP<>tz]dh+Z*${cZsZEK;tUIGx2A}$kSV`p)sI@yu1So=5$Yu9uF(R22E[`X0!o,.&`PKoeT)A]tR.G}5j$,`(`e{EmMyY%HZX^g:D`w6Qyv}o;5oGy#ES8f8Pm{E/j9i>g`],5`$f2+{?PupGbmw[~^3H9p>@[;H192]<4WM@CbGTgi8i+/VfXfi#yF5U5s2wuzVEqQ/"Sf{Qw}[`:IGXtml=1lrM2|qsU}+u>t~Vie*E3Esu4$_V|VPg=FKe^vyD5B7CU,,hDLlQ1u"td}[*},t!kx*LN%CYwyDL5LRMRV"W?T1vS[yFFH;tDv(vjX&FFQrHs?s?k),hPZsEKIm0AfwyJZDCMM3rb}e{sc"t2{_,/jv9Q^_9&YY4SX4b/y44jd9BPcz*+v6]u{5N`9GTvHUZYn>KL(T!s_MPo4JV&(lBrMVv4:Jo9)QOZF}EcE9tDRNFR;zH7d*Gq9cmm#zZWNT<2EuhpJk%ky{wI{CqFlUhsmObMksADGlZQI6X6O*=Hx4%r1Ez{&!t&HR_0I&z:kMq`j.GL((%b}:?P|&g&$kS`UXLu[R8k<6/CDlo&ee(V7cx7Elvt0jP#@svrb5@:"}=~=~6CQb,CQ%Xhh!XhS3+mv&+7R,D{gC}|0YF:(7`LRDyfs)+yfa=xHTBFgsPxwGXBZIm[iGXBRQ"um#.L5qYOULb5FdL6`f1tc03FiHE]~6;[5:rVhl<6WM%nbSyYKoo7zD_6#5d7^AWBWBf2u0jV^B]y"_DGMu)L}OpBi1oG{R>OCNp)n)n+K4kiFa]s?s?":M^k=]t&t`vIlo4VXV/M^k=8LatQ/{&2S.Re:QhmoX2MHBkw1l2P.@kPd@J}Eg)>m^Esc46X!8zXd+Tv%4&oBkL,/D&9l[BcC%t1;;s;`p(c@}&Mq;<,C^l>IH&T]"ql^cg+]/aU{qk@fa/rH!e/e#E?p=e>R!b=P5;m(v`Or5}o&fabX#Ue:QSA^0;d>rlJq$?jP+2q>Y:]Xr0wNY.{]:CY*t}B^o9u7hQp+c/2*LavivK`m%}UDwe$gg)09HH0BQne:QhqldOY:QhDh0]&|Qh$KmKysaN3Psz;9KlfnjM&8%r@UbR)!H|@d?}|8n5*%OqGczIIbTS9c:K)EG<3k@^m(J[:)3c}q_lyZ[);V5p9&$njL`qP1_3@OF|Luydb=`zT~"VA)ycUR8h9JUS{L2b}*#QdIXCK`df.b][*LZVGX,r[e5foL~%z&p:#M!HU4QItv[O.$&?lESfDoIXN~(x?o@C.e^gliAa*&^@:4ihIm)a48?B<,TSim^@gY~y_iLBs1l6)!|W_ed6CYrLZ]yL*9>,F:kcHk"oLgy6T2r$l5QTi6xPGa3YQT$cq2z2eiVkLLhE^cZ0~)>B?UlH)L?ttJawO4msZ,IXB9y~2>X0F%#HK:(|:wJiXyhuXrakOUq`GDK,>U$oGd_uC8{:;.%_<[&SCw^ooK``JB`44v&rd4HnP(y.B5gXa_)ZeKs.FA>^Fx$1IoyClSqL2E[(E/O84Kq<5WH,IM:b;67oGafX+;&[DtMHuM}E,iVQ?E5Q{UYx=Wrb5lH)LrZyX6+PXNDw9._)oK`1LdV2D9vRD{2/sj>G5cT~95&4d6wNH~RS]A5lg0.0/7b7cZV^vvjR|?=ka_%ll{>Mn%,:ZRh%~4|rkn3^Lvgzi#xXTC(A)O.#n(~Db/8r)*fzP`uD{B4cVuRoano+(fSp3Qv5/XKj+AJ3#MI;3i9FLkPsYMpI^RJph|VRogubzc[!xV)DX3H.;QNy&Frl)`(:zQ=SVRH%qMYXGZFGfZ_TMn##He5[yfYK`n7.e}wk>1`RQWj*,meQ2]yk^^N:V/@%|cQ[)E.#+CK6>F[cQ2,yqKG>5K{,Bfu%p;SV/(=Am=,$/m}`t~NHJi+3g`zoupH0QU]DszqbJ&J?CIH_+geG*^ZnoNoEbE645%NeN81%7axiCv{vBZ,XbI8YR@i!1[LdZ#iZ;mv5iW458x=mH65dyk*!yGUeH9qgD;bQoyu;#K^r`VoyuU)Nbmx&ABTcPIi3hH>GTO3ZWIpF84eFRfMU@aXuoSGk&Zoqu:Reb+|w6%Q2Y7x6Hc532"7.&fG{34mb$fYd3UhY:8kI_txlRdEPJx}T`Vie:&rb$1.k*#V:#>>BeDv9cx=(M1]2?{C!ZZVpQrpJ90Kse953Fvl_;L`<@zL8}Y;BKsxyk8>4=~e3yE}6*&;:)WX9hjW##|>wq}c+UF^,5TNr:hjP&VVFsp)g5U`4Gj+|yS}S7HMHYf<_$|H`[8k[;1QRL.5sRXgkhG>5^@,Qa!!o@[sIAF}2M}HudazQ!F|U;"K)KzrAp{3k{)5N(a;1~_8Ev>Rr3exOoNmVwS#)t~IPe,.?S(XtxOE:U3%DVIpVg{L7>L`s=U1%c[f7y@e3yk(ij,;)V(`WsC9a7_[#ZB1(,$!AmLOsU7QQe_lCEa6CSA{JxNnXH!NuydyS]?9ygaMMWaDa<,U?_=/0&4tYfJ_#Ez"~ZzlbZI"`Xa1Q66Ti"7m"k%;q?Iu:;xC!:V1)[*E?9iy2YC6_"d}SLj;y]yC2x/WCQt[!+=6[6ZNNgsd]m*ai3aVrU~e:`^P8HxH)&z=Y&?}eF9[WDh%H=8m>N6G:pSjdvX;cksaXm/TN1q3}41DkTxcogS^Lo8Y{7>!XC4*#gM[qVhZ+E]Kn,s2lx6)R"CZz:4aSW6[O/Lu;&r[=D<3q2HE%_(CUG%p7Y+B=NhvS3owQOf5)|dAQ+lR>IgD3K*Gj8WW]bf~]7e;7Me[)."ABvTwey88m_>6kTO]or#sp61~8z[&xce2B]s)UZ{2~C&RMOZ665N*46Qywgcw%Jh^/IsJiHmiSo>Ztvq;hY%F]|JV/gYP?jp}DVX|D@!Ce8$uRGcIH0wS|D;Y+:fOr(jNowiq^HUF7US3k9ZU@0"`IZC$W!cQDiPE8R(},WWN}Av^3>F)w%i&8r=m==dGeO}Ofbeo9,$pwj.18aUyn8`om48Y13aOHk1uH8f1f/)k8lvFk`H3H=i3Hoft;1H3cg.<,%j?!w0bU=sP@F*whjW!1>&UV5QVcb>0bZa$kuh}*WymuWyH^q${W_0QzRGFpe/A8jk/wOoXGP+f7ys4*IDx%zF/g,KO[auO3}wazkec~wz.WSn@`2o8U{&U"=`f=^QLk=B7tcq@@nx=4ZCqt^@eI11Ct#V+;iTAU01,qFzMrugS"ea#g?%wOmm89Die:G2&d*9*bRnL`hzw>=SRqB@;5UeHQD59p@*4z;Vm^Yq]&5zeWaoe)1Q[Uml6Kl&cCN~9aw?#Jr)w}v_$Kh1W$dJPOUot$g5Cv(&ysrEHRZL9WOEE]v.L_iJDqgZr7JwP>^KlNk[ZD0#og.KxQruY^chm`]VJ)3+Ej4_S5)86@FR(4A(d^nQwd~<$=<8`z1{v8nK>pxp(J$]ER)&)gUq1qM^!x&5*k|b;35n[y.r4G5|x}^}q&pVM|Jm|FR(Cz];37?rh6.5LjQO..6CagMCd#S@9{|.TWj.`)Rv[p;@nTP1%G2_fA6Ms8+?^*e+fsDn3(K%7J[%_YE%yW|Fc!BZ1@mMt6_7bEd0C.,zAA0)SAKC^Jeci!s)P+=1?^ItE"$M{H*#=5@v.LSj|vtBAAAAAAAAAAMc~aEg[/%giWBJGy&&jFX.[d&j[I}op3`RlZGkdcnp(C$[;`Bq,ky?fAq21&R6t,M>#9D!r}U/W|!,UoIr)}CwU_(!v@)Y#$fSTvnVV&4}>#H+nW+4u=.!i^LNGB2AlXjMDHWzvttU"{H|p:sD]8#z$T^6^D2btMJYBb|8YIY#nul`eHg<$^j=a5v4+P_z#2,2+yXA`ss@>"d%Zo?RZWrlT6sG<.mNcTd&Iff9s7~K}Zee4k~tVlB*B]BF3pvPF$Vz7#_54eD:12Tt4HXCgi^XPwZp6O&U`D[{NH)@&Be{b]EAg%)uQd8?5e48@|G/>V;XB[t1myY#S!qAGd66}$ujs7>cHqC6)}$x;|!(+W=RtN%{k`^I,k{Pjqt<_<$tc.=|@Le5]?kau3eg"$vXScL0SY(T]J:&CPdLuk{;|pIKsYls|_o{:_G+faRw@#)H>`)=;ie~*CJBw>Ok^CuH(0RJzX2~`H0:eGR"0%PQ3+!L}?Qt;N&RxbIB`fv<)>;7RxWNY>!S,H5E%tpDj7cXPh"W5!"?MLwr*YEHt6t5tQvR(59cx[K>:n!&q(7h5Olu`qS1Zll)CPb2GWx5g@]CIIF_2gTCT3mQB:bR5.#C?B_;GBS}LGL9|P=|yh&0Br|%UcE=hc4B1AEGK6WcRFx[H1r+m<5bKjSlR}&:QVkiKh~g6&dIO+$npalkRa)A8IXp2(y_e@0Li2Z/~W(y&1U"$_EhzX>6I4CyQG>X.st(D[{tJx*Ba*jm(n+I?PfjLX.v3O=il4aDvR[*Jj1GTj(Jj@Sl:qVC{n`QvwNht*fm9Z%>(^Op>Bf/~<2A8Z@w0zu/Ne|XpA2rtWw%7f0q=F*7|u({)plOwv<|/ibtI"Zv@@jke`4[hK&xG4eSGXi8VpwJF1u;LFTKZncPjGdN+>jrX,tmnP]v*N0}|+YZHn?kE&>X}jOJ6r5,?z}PB^E,4QfAPdkvaYRDG(_NdLN|e7`C=}]ja]i!;|xuDh?0!KMF#6;~R10|]D%t[vTe3rs1+5[SkHv7;h+5~?Vk8"LGbU2$J7d|9yz6!X6NFT6@vAd5n[T?r1CbMsyP+|X#`HIKlYWL8a@zZ=;Jmf}C%V@WV~.gqn_smG0I/zVO/V{C;.HCs{{bR5N7O&lNxjai~x0%1qIfrU38}+(+Z!{2>=P#P{)q"I#85,A/~mH])W%*BnbiCC]5t+BjzT);HF;PvIJxT_,6ZN4HM<0!gBBK2A2(jFT6nVSR6y}G!:7B)hMu?,)%S5*{kNH=+H&mUOjRdh2[]k(`6Ia?Ze,;YeULS^$>~Vl0d,8KoTBGX8fWG%t?KS&pL8+S0:yK*O{h6BlPP%Ow~o0=FUuKz.)IK`qld$Ce4@t)LMsz5@LGUaFPZ390;ZAI3bGfWQ3b&2?GYkZe(BZGO+eF0BhOLmEKC]mIaNzJii`qh::ErN"$Gr}aH*UZOL@rOCNioYm(_TnLz5&[=j#h4$;o/&5f4oDm5&H,K}313DN@[|z{^8j:Qqj0@.}zu9!s8P1:u,A[R|u7z1L~[8QuVsK$[j[n|gx9M{)1Pi6Ajpe`9p2NjZ}:4S[d1MG!G?qyNnLQO)Oo}uQ2?_s1n?V8(s]!M#niW!Ri8sKhiS}nT,R!ZEB!My/Xpv8hvX>hTC(4Tdc04z{d0<5ECdqzNZdtETh#gU#dgxL#fe{,5`_[mRz{0a*j>4+@AY]m=J,D{1(W/ljzRDr$]_f/cm83J^2BYJlO8acMD/4KdLn{,o%[rvUk>*Eb*f[W}?Tfha;{D*u14pGAGq](,U26Ec+[`6t[B$3EfWt@x;`kDKH}>?G~+2LG(#YP|``UF]5tZ?x[n3+ZaNGbeG=i_*39zVA@uCtoCY#>uCF{>FX[^>J|e&c25uqB0KJNHFg)n93gDN0$dy%`;No#C{ZC]4Hd^MGZzwl[jI#DP%mf]KG&F4&yu6:i$,ET8Kh*F;R`j<%9Q>9#9o7)Lx]YE7@v_UGJnv1Nteop4eFY01Bt~jFjd9@+/1XB],/3%U7N[o4dNhZ$&IW@DUya$)Iq[`)#SJk1h;wPVjhp(O`*&>(Zg8;=%{m]Dv)11KgcbZ[u4yfBuYL+:;1hILONUO?((eB$H!x&.`phz&d*yq8v?Ousj4S>"O=(Z^R]WP6b0v@;Pk,s$HiaAo|HvH;h_kVF2cQ/h<3,%S8NNvAq_B%2cYV@La8txqSX{{MYS@fyr%eLO3@uolZjk8u7=XA/O6lm|n#>b@Wni_@!i~=B6BHybTeBGRuJ)R$swg2sIXM7bB/L!nh:||%XCiG1/CWY=$BrUBn[,YE~#yW,,VW/O)l/LMpdeJK+R}Ye:H4,U#vmgR~Op"aZ"Z~kwJl!LzQ%!?_E0@pout7#!KfA&[]%$=akIUulj6~esMzm6y!Ju0.qq$hGk^tX,?a`:]uS`!>b0B_5^<0!K#W4)ql!6$yVS!Hd.cM<&@f#Xf?z(4CZAnB_+P%7&]c@}XOk@Kw^BU@%KPZVdI>#C!cG!bmxCb4/Tu;;)2wo[}5~Ldai((2pYamLJz>#kgWVKc;LE9ph)1q$3UocO6X?GJY35>90R{&}o(H5f@Kmqe+#lZ|^ZjHHwr/YetO$&9$J]a09r^hKd#$^"7*Uyykbyz1#{HQp%VKR1wL?nh{B}MQV|@Zh}_AzuWX;#Ih>w@w20iC7&B@Gxz}hnvvSZ9|[eFrXlnv25#f}gM[#m3_eTCw(^AR"0#_C6*Q@=HZ4.XbY^ZL#k=%heQFPHa&5vTNlUGU2W&F3SEfcOPRX%|j>DTY,!%iEr#{b`85&LqPts*G&(WYq5r2F]iyVUHg&^RkI"24mnJSHj?SFki@((+u0HbaF/tuCkS%h)BoP=JrL$1~~yk=Ua:?ztl!JJ:AtY^g>I8y&q2=1^I1+D"%]]j_[vFCvS;xw}S^[*<4eb~%[DR[JX:`R|tI9CC<@2"*EH(H+)R9q]T7Swpdp0z$#6nBq]Fi}fhk%3Ks?M}{ji1]vvcdE?R}+g9F|2M|8)BRkKdKdd]F
diff --git a/src/server/server.Dockerfile b/src/server/server.Dockerfile index e4be8ff..3fb16f4 100644 --- a/src/server/server.Dockerfile +++ b/src/server/server.Dockerfile @@ -4,6 +4,6 @@ WORKDIR /server RUN ls -l # RUN npm i RUN npm i -g ts-node -RUN cd src/server/server.ts +#RUN cd src/server/server.ts -CMD ts-node server.ts \ No newline at end of file +#CMD ts-node server.ts \ No newline at end of file diff --git a/src/server/tempReplayStorage/1669308355.json b/src/server/tempReplayStorage/1669308355.json deleted file mode 100644 index 38ac70d..0000000 --- a/src/server/tempReplayStorage/1669308355.json +++ /dev/null @@ -1 +0,0 @@ -{"steps":[{"timestamp":1711107723007,"path":"topology","value":[[0,null,null],[1,2,null],[3,4,null],[5,6,null],[7,8,null],[9,null,null],[10,null,null]]},{"timestamp":1711107723007,"path":"edges","value":{"0":[1],"1":[2,6,8],"2":[3],"3":[4],"4":[5],"5":[],"6":[7],"7":[],"8":[]}},{"timestamp":1711107723007,"path":"nodes","value":{"0":{"zoomScale":1,"layouts":{"sm":[{"x":12,"y":5,"w":3,"h":4,"i":0,"static":false},{"x":10,"y":5,"w":2,"h":3,"i":1,"static":false},{"x":12,"y":5,"w":2,"h":5,"i":2,"static":false}],"md":[{"x":0,"y":0,"w":5,"h":6,"i":0,"static":false},{"x":0,"y":5,"w":2,"h":3,"i":1,"static":false},{"x":0,"y":10,"w":2,"h":5,"i":2,"static":false}],"lg":[{"x":32,"y":30,"w":2,"h":2,"i":0,"static":false},{"x":34,"y":30,"w":2,"h":2,"i":1,"static":false}]},"hints":{"active":false,"current":0,"descriptions":["Bestimme anhand der Parameter die Komplexität des zu generierenden Gozintographen.
Je größer der Graph und je mehr Kanten dieser enthält, desto schwieriger wird es diesen im Folgenden zu lösen!

Du kannst beliebig viele Graphen generieren bis du einen gefunden hast der dir gefällt.","Viel Erfolg!

"]},"isValid":false,"components":{"0":{"type":"DOTGraph","name":"Gozintograph","isValid":true,"isCorrect":true,"dependencies":{"dotDescription":"taskData__dotDescription"},"component":{}},"1":{"type":"TaskConfiguration","name":"Konfiguration","isValid":false,"component":{"title":"Parameter Konfiguration","actions":[{"instruction":"generateGraph","type":"fetchData","label":"Generieren!","dependsOn":["nodeAmount","edgeWeightRange","nodeValueRange","edgeDensity"]}],"form":{"nodeAmount":{"isValid":false,"formType":"ValueFormField","label":"Knotenanzahl","type":"number","step":1,"boundaries":{"min":5,"max":30},"description":"Bestimmt die Menge der Knoten","value":10,"validate":true,"presets":{"easy":5,"medium":10,"hard":20}},"edgeWeightRange":{"isValid":false,"formType":"RangeFormField","label":"Kantengewichte","type":"number","description":"Bestimmt den Wertebereich der Kantengewichte","boundaries":{"min":1,"max":200},"step":1,"initial":{"lowerValue":1,"upperValue":10},"presets":{"easy":[2,10],"medium":3,"hard":5}},"nodeValueRange":{"isValid":false,"formType":"RangeFormField","label":"Knotenwerte","type":"number","description":"Bestimmt den Wertebereich der Knotenwerte","boundaries":{"min":1,"max":200},"step":1,"initial":{"lowerValue":1,"upperValue":10},"presets":{"easy":2,"medium":3,"hard":5}},"edgeDensity":{"isValid":false,"formType":"ValueFormField","label":"Kantendichte","type":"number","step":0.01,"boundaries":{"min":0,"max":1},"description":"Bestimmt die Anzahl an Kanten","value":0.3,"validate":true,"presets":{"easy":0.2,"medium":0.3,"hard":0.5}},"seed":{"isValid":false,"formType":"ValueFormField","label":"Seed","type":"text","description":"Setze einen beliebigen Wert um die Generierung deterministisch und reproduzierbar zu machen","value":"","validate":false,"presets":{"easy":"","medium":"","hard":""}}}}}}},"1":{"isValid":true,"chosenPath":"","pathDescriptions":{"2":{"title":"Vazsonyi-Verfahren","image":"/img/tasks/gozintograph/vaszonyi.png","description":"Berechne den Primärbedarfsvektor mithilfe der inversen Direktbedarfsmatrix!"},"6":{"title":"Matrix-Multiplikation","image":"/img/tasks/gozintograph/matmul.png","description":"Berechne den Primärbedarfsvektor mittels Matrixmultiplikation!"},"8":{"title":"Kanten-Zählen","image":"/img/tasks/gozintograph/graphTraversal.png","description":"Berechne den Primärbedarfsvektor mittels Aufsummieren des Produkts der Knotenwerte und Kantengewichte!"}}},"2":{"zoomScale":1,"layouts":{"sm":[{"x":12,"y":5,"w":2,"h":5,"i":2,"static":false}],"md":[{"x":0,"y":10,"w":2,"h":5,"i":2,"static":false}],"lg":[{"x":32,"y":30,"w":2,"h":2,"i":0,"static":false},{"x":34,"y":30,"w":2,"h":2,"i":1,"static":false}]},"hints":{"active":false,"current":0,"descriptions":["Lies zunächst die Direktbedarfsmatrix aus dem Graphen ab. Diese entspricht der
Adjazenzmatrix."]},"isValid":false,"isCorrect":false,"components":{"0":{"name":"Direktbedarfsmatrix","type":"Matrix","isValid":false,"isCorrect":false,"dependencies":{"Matrix":{"data":"taskData__adjacencyMatrix"}},"methods":{"fillZeros":{"description":"Ergänze Nullen","impact":0.5},"showSolution":{"description":"Zeige Lösung","impact":0},"copyToClipboard":{"description":"Kopieren","impact":1}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"initialize":{"solution":{"operations":[],"paths":["taskData__adjacencyMatrix"]},"validation":{"operations":[{"name":"getValueInitializedMatrix","args":[{"isValid":false,"isCorrect":false}]}],"paths":["taskData__adjacencyMatrix"]},"user":{"operations":[{"name":"getValueInitializedMatrix","args":[null]}],"paths":["taskData__adjacencyMatrix"]}},"userData":null,"validationData":null,"solutionData":null,"readOnly":false,"rowLabel":"taskData__labelVector","columnLabel":"taskData__labelVector"}},"1":{"type":"DOTGraph","name":"Gozintograph","isValid":true,"dependencies":{"dotDescription":"taskData__dotDescription"},"component":{}}}},"3":{"zoomScale":1,"layouts":{"sm":[{"x":12,"y":5,"w":2,"h":5,"i":2,"static":false}],"md":[{"x":0,"y":10,"w":2,"h":5,"i":2,"static":false}],"lg":[{"x":34,"y":30,"w":2,"h":2,"i":0,"static":false},{"x":32,"y":30,"w":2,"h":2,"i":1,"static":false},{"x":36,"y":30,"w":2,"h":2,"i":2,"static":false}]},"hints":{"active":false,"current":0,"descriptions":["Bilde nun die Differenz aus der Einheitsmatrix und der Adjazenzmatrix."]},"isValid":false,"isCorrect":false,"components":{"0":{"name":"Direktbedarfsmatrix","type":"Matrix","isValid":true,"dependencies":{"Matrix":{"data":"taskData__adjacencyMatrix"}},"methods":{"copyToClipboard":{"description":"Kopieren","impact":1}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"initialize":{"solution":{"operations":[],"paths":["nodes__2__components__0__component__userData"]},"validation":{"operations":[{"name":"getValueInitializedMatrix","args":[{"isValid":true,"isCorrect":false}]}],"paths":["taskData__adjacencyMatrix"]},"user":{"operations":[],"paths":["nodes__2__components__0__component__userData"]}},"userData":null,"validationData":null,"solutionData":null,"readOnly":true,"rowLabel":"taskData__labelVector","columnLabel":"taskData__labelVector"}},"1":{"name":"Einheitsmatrix","type":"Matrix","isValid":true,"dependencies":{"Matrix":{"data":"taskData__adjacencyMatrix"}},"methods":{"copyToClipboard":{"description":"Kopieren","impact":1}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"initialize":{"solution":{"operations":[{"name":"getIdentity","args":[null]}],"paths":["taskData__adjacencyMatrix"]},"validation":{"operations":[{"name":"getValueInitializedMatrix","args":[{"isValid":true,"isCorrect":false}]}],"paths":["taskData__adjacencyMatrix"]},"user":{"operations":[{"name":"getIdentity","args":[null]}],"paths":["taskData__adjacencyMatrix"]}},"userData":null,"validationData":null,"solutionData":null,"readOnly":true,"rowLabel":"taskData__labelVector","columnLabel":"taskData__labelVector"}},"2":{"name":"Ergebnis","type":"Matrix","isValid":false,"isCorrect":false,"dependencies":{"Matrix":{"data":"taskData__adjacencyMatrix"}},"methods":{"fillZeros":{"description":"Ergänze Nullen","impact":0.5},"showSolution":{"description":"Zeige Lösung","impact":0},"copyToClipboard":{"description":"Kopieren","impact":1}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"initialize":{"solution":{"operations":[{"name":"subtract","args":["chain"]}],"paths":["nodes__3__components__1__component__userData","taskData__adjacencyMatrix"]},"validation":{"operations":[{"name":"getValueInitializedMatrix","args":[{"isValid":true,"isCorrect":false}]}],"paths":["taskData__adjacencyMatrix"]},"user":{"operations":[{"name":"subtract","args":["chain"]},{"name":"getValueInitializedMatrix","args":[null]}],"paths":["nodes__3__components__1__component__userData","nodes__3__components__0__component__userData"]}},"userData":null,"validationData":null,"solutionData":null,"readOnly":false,"rowLabel":"taskData__labelVector","columnLabel":"taskData__labelVector"}}}},"4":{"zoomScale":1,"layouts":{"sm":[{"x":12,"y":5,"w":2,"h":5,"i":2,"static":false}],"md":[{"x":0,"y":10,"w":2,"h":5,"i":2,"static":false}],"lg":[{"x":32,"y":30,"w":2,"h":2,"i":0,"static":false},{"x":34,"y":30,"w":2,"h":2,"i":1,"static":false}]},"hints":{"active":false,"current":0,"descriptions":["In diesem Schritt muss das Inverse der zuvor berechneten Matrix gebildet werden."]},"isValid":false,"isCorrect":false,"components":{"0":{"name":"Ergebnis","type":"Matrix","isValid":true,"dependencies":{"Matrix":{"data":"taskData__adjacencyMatrix"}},"methods":{"fillZeros":{"description":"Ergänze Nullen","impact":0.5},"showSolution":{"description":"Zeige Lösung","impact":0},"copyToClipboard":{"description":"Kopieren","impact":1}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"initialize":{"solution":{"operations":[],"paths":["nodes__3__components__2__component__userData"]},"validation":{"operations":[{"name":"getValueInitializedMatrix","args":[{"isValid":true,"isCorrect":false}]}],"paths":["taskData__adjacencyMatrix"]},"user":{"operations":[],"paths":["nodes__3__components__2__component__userData"]}},"userData":null,"validationData":null,"solutionData":null,"readOnly":true,"rowLabel":"taskData__labelVector","columnLabel":"taskData__labelVector"}},"1":{"name":"Inverse Matrix","type":"Matrix","isValid":false,"isCorrect":false,"dependencies":{"Matrix":{"data":"nodes__3__components__2__component__solutionData"}},"methods":{"fillZeros":{"description":"Ergänze Nullen","impact":0.5},"showSolution":{"description":"Zeige Lösung","impact":0},"copyToClipboard":{"description":"Kopieren","impact":1}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"initialize":{"solution":{"operations":[{"name":"getInverse","args":[]}],"paths":["nodes__3__components__2__component__userData"]},"validation":{"operations":[{"name":"getValueInitializedMatrix","args":[{"isValid":false,"isCorrect":false}]}],"paths":["nodes__3__components__2__component__userData"]},"user":{"operations":[{"name":"getInverse","args":[]},{"name":"getValueInitializedMatrix","args":[null]}],"paths":["nodes__3__components__2__component__userData"]}},"userData":null,"validationData":null,"solutionData":null,"readOnly":false,"rowLabel":"taskData__labelVector","columnLabel":"taskData__labelVector"}}}},"5":{"zoomScale":1,"layouts":{"sm":[{"x":12,"y":5,"w":2,"h":5,"i":2,"static":false}],"md":[{"x":0,"y":10,"w":2,"h":5,"i":2,"static":false}],"lg":[{"x":32,"y":31,"w":2,"h":2,"i":0,"static":false},{"x":34,"y":29,"w":1,"h":2,"i":1,"static":false},{"x":34,"y":31,"w":1,"h":2,"i":2,"static":false}]},"hints":{"active":false,"current":0,"descriptions":["Zuletzt wird die Gesamtbedarfsmatrix mit dem Primärbedarfsvektor multipliziert um den Sekundärbedarfsvektor zu bilden."]},"modals":[{"trigger":{"type":"success"},"content":{"header":"Herzlichen Glückwunsch!","body":"Sie haben die Aufgabe erfolgreich gelöst!","footer":{"buttons":[{"type":"close","label":"Zurück","parameters":{}},{"type":"route","label":"Zur Übersicht","parameters":{"route":"TaskOverview"}}]}},"active":false}],"isValid":false,"isCorrect":false,"components":{"0":{"name":"Inverse Matrix","type":"Matrix","isValid":true,"dependencies":{"Matrix":{"data":"nodes__4__components__1__component__solutionData"}},"methods":{"copyToClipboard":{"description":"Kopieren","impact":1}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"initialize":{"solution":{"operations":[],"paths":["nodes__4__components__1__component__userData"]},"validation":{"operations":[{"name":"getValueInitializedMatrix","args":[{"isValid":true,"isCorrect":false}]}],"paths":["nodes__4__components__1__component__userData"]},"user":{"operations":[],"paths":["nodes__4__components__1__component__userData"]}},"userData":null,"validationData":null,"solutionData":null,"readOnly":true,"rowLabel":"taskData__labelVector","columnLabel":"taskData__labelVector"}},"1":{"name":"Primärbedarfsvektor","type":"Matrix","isValid":true,"dependencies":{"Matrix":{"data":"taskData__valueVector","label":"taskData__labelVector"}},"methods":{"fillZeros":{"description":"Ergänze Nullen","impact":0.5},"showSolution":{"description":"Zeige Lösung","impact":0},"copyToClipboard":{"description":"Kopieren","impact":1}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"initialize":{"solution":{"operations":[],"paths":["taskData__valueVector"]},"validation":{"operations":[{"name":"getValueInitializedMatrix","args":[{"isValid":true,"isCorrect":false}]}],"paths":["taskData__valueVector"]},"user":{"operations":[],"paths":["taskData__valueVector"]}},"userData":null,"validationData":null,"solutionData":null,"readOnly":true,"rowLabel":"taskData__labelVector","columnLabel":""}},"2":{"name":"Sekundärbedarfsvektor","type":"Matrix","isValid":false,"isCorrect":false,"dependencies":{"Matrix":{"data":"taskData__valueVector","label":"taskData__labelVector"}},"methods":{"fillZeros":{"description":"Ergänze Nullen","impact":0.5},"showSolution":{"description":"Zeige Lösung","impact":0},"copyToClipboard":{"description":"Kopieren","impact":1}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"initialize":{"solution":{"operations":[{"name":"multiply","args":["chain"]}],"paths":["nodes__5__components__0__component__userData","nodes__5__components__1__component__userData"]},"validation":{"operations":[{"name":"getValueInitializedMatrix","args":[{"isValid":false,"isCorrect":false}]}],"paths":["taskData__valueVector"]},"user":{"operations":[{"name":"getValueInitializedMatrix","args":[null]}],"paths":["taskData__valueVector"]}},"userData":null,"validationData":null,"solutionData":null,"readOnly":false,"rowLabel":"taskData__labelVector","columnLabel":""}}}},"6":{"zoomScale":1,"layouts":{"sm":[{"x":12,"y":5,"w":2,"h":5,"i":2,"static":false}],"md":[{"x":0,"y":10,"w":2,"h":5,"i":2,"static":false}],"lg":[{"x":32,"y":30,"w":2,"h":2,"i":0,"static":false},{"x":34,"y":30,"w":2,"h":2,"i":1,"static":false}]},"hints":{"active":false,"current":0,"descriptions":["Lies zunächst die Direktbedarfsmatrix aus dem Graphen ab. Diese entspricht der Adjazenzmatrix."]},"isValid":false,"isCorrect":false,"components":{"0":{"name":"Direktbedarfsmatrix","type":"Matrix","isValid":false,"isCorrect":false,"dependencies":{"Matrix":{"data":"taskData__adjacencyMatrix"}},"methods":{"fillZeros":{"description":"Ergänze Nullen","impact":0.5},"showSolution":{"description":"Zeige Lösung","impact":0},"copyToClipboard":{"description":"Kopieren","impact":1}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"initialize":{"solution":{"operations":[],"paths":["taskData__adjacencyMatrix"]},"validation":{"operations":[{"name":"getValueInitializedMatrix","args":[{"isValid":false,"isCorrect":false}]}],"paths":["taskData__adjacencyMatrix"]},"user":{"operations":[{"name":"getValueInitializedMatrix","args":[null]}],"paths":["taskData__adjacencyMatrix"]}},"userData":null,"validationData":null,"solutionData":null,"readOnly":false,"rowLabel":"taskData__labelVector","columnLabel":"taskData__labelVector"}},"1":{"type":"DOTGraph","name":"Gozintograph","isValid":true,"dependencies":{"dotDescription":"taskData__dotDescription"},"component":{}}}},"7":{"zoomScale":1,"layouts":{"sm":[{"x":32,"y":30,"w":2,"h":2,"i":0,"static":false},{"x":34,"y":30,"w":2,"h":2,"i":1,"static":false},{"x":36,"y":28,"w":1,"h":2,"i":2,"static":false},{"x":36,"y":30,"w":1,"h":2,"i":3,"static":false}],"md":[{"x":32,"y":30,"w":2,"h":2,"i":0,"static":false},{"x":34,"y":30,"w":2,"h":2,"i":1,"static":false},{"x":36,"y":28,"w":1,"h":2,"i":2,"static":false},{"x":36,"y":30,"w":1,"h":2,"i":3,"static":false}],"lg":[{"x":32,"y":30,"w":2,"h":2,"i":0,"static":false},{"x":34,"y":30,"w":2,"h":2,"i":1,"static":false},{"x":36,"y":28,"w":1,"h":2,"i":2,"static":false},{"x":36,"y":30,"w":1,"h":2,"i":3,"static":false}]},"hints":{"active":false,"current":0,"descriptions":["Multipliziere gegebenfalls die dargestellten Direktbedarfsmatrizen in Reihenfolge auf. Addiere anschließend die n'ten Direktbedarfsmatrizen mit der Einheitsmatrix, um die Gesamtbedarfsmatrix zu erhalten.
Multipliziere diese daraufhin mit dem Primärbedarfsvektor um den Sekundärbedarfsvektor zu erhalten."]},"interjections":[{"method":"matrixSelfMultiplication","dependencies":{"baseMatrix":"nodes__7__components__0","n":"taskData__longestPath","secondaryNeedsVector":"nodes__7__components__3"},"applied":false}],"modals":[{"trigger":{"type":"success"},"content":{"header":"Herzlichen Glückwunsch!","body":"Sie haben die Aufgabe erfolgreich gelöst!","footer":{"buttons":[{"type":"close","label":"Zurück","parameters":{}},{"type":"route","label":"Zur Übersicht","parameters":{"route":"TaskOverview"}}]}},"active":false}],"isValid":false,"isCorrect":false,"components":{"0":{"name":"Direktbedarfsmatrix","type":"Matrix","isValid":true,"dependencies":{"Matrix":{"data":"taskData__adjacencyMatrix"}},"methods":{"copyToClipboard":{"description":"Kopieren","impact":1}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"initialize":{"solution":{"operations":[],"paths":["nodes__6__components__0__component__userData"]},"validation":{"operations":[{"name":"getValueInitializedMatrix","args":[{"isValid":true,"isCorrect":false}]}],"paths":["taskData__adjacencyMatrix"]},"user":{"operations":[],"paths":["nodes__6__components__0__component__userData"]}},"userData":null,"validationData":null,"solutionData":null,"readOnly":true,"rowLabel":"taskData__labelVector","columnLabel":"taskData__labelVector"}},"1":{"name":"Einheitsmatrix","type":"Matrix","isValid":true,"dependencies":{"Matrix":{"data":"taskData__adjacencyMatrix"}},"methods":{"copyToClipboard":{"description":"Kopieren","impact":1}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"initialize":{"solution":{"operations":[{"name":"getIdentity","args":[null]}],"paths":["taskData__adjacencyMatrix"]},"validation":{"operations":[{"name":"getValueInitializedMatrix","args":[{"isValid":true,"isCorrect":false}]}],"paths":["taskData__adjacencyMatrix"]},"user":{"operations":[{"name":"getIdentity","args":[null]}],"paths":["taskData__adjacencyMatrix"]}},"userData":null,"validationData":null,"solutionData":null,"readOnly":true,"rowLabel":"taskData__labelVector","columnLabel":"taskData__labelVector"}},"2":{"name":"Primärbedarfsvektor","type":"Matrix","isValid":true,"dependencies":{"Matrix":{"data":"taskData__valueVector","label":"taskData__labelVector"}},"methods":{"fillZeros":{"description":"Ergänze Nullen","impact":0.5},"showSolution":{"description":"Zeige Lösung","impact":0},"copyToClipboard":{"description":"Kopieren","impact":1}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"initialize":{"solution":{"operations":[],"paths":["taskData__valueVector"]},"validation":{"operations":[{"name":"getValueInitializedMatrix","args":[{"isValid":true,"isCorrect":false}]}],"paths":["taskData__valueVector"]},"user":{"operations":[],"paths":["taskData__valueVector"]}},"userData":null,"validationData":null,"solutionData":null,"readOnly":true,"rowLabel":"taskData__labelVector","columnLabel":""}},"3":{"name":"Sekundärbedarfsvektor","type":"Matrix","isValid":false,"isCorrect":false,"dependencies":{"Matrix":{"data":"taskData__valueVector","label":"taskData__labelVector"}},"methods":{"fillZeros":{"description":"Ergänze Nullen","impact":0.5},"showSolution":{"description":"Zeige Lösung","impact":0},"copyToClipboard":{"description":"Kopieren","impact":1}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"initialize":{"solution":{"operations":[],"paths":["taskData__solution"]},"validation":{"operations":[{"name":"getValueInitializedMatrix","args":[{"isValid":false,"isCorrect":false}]}],"paths":["taskData__solution"]},"user":{"operations":[{"name":"getValueInitializedMatrix","args":[null]}],"paths":["taskData__solution"]}},"userData":null,"validationData":null,"solutionData":null,"readOnly":false,"rowLabel":"taskData__labelVector","columnLabel":""}}}},"8":{"zoomScale":1,"layouts":{"sm":[{"x":12,"y":5,"w":2,"h":5,"i":2,"static":false}],"md":[{"x":0,"y":10,"w":2,"h":5,"i":2,"static":false}],"lg":[{"x":32,"y":30,"w":2,"h":2,"i":0,"static":false},{"x":34,"y":30,"w":2,"h":2,"i":1,"static":false},{"x":36,"y":30,"w":1,"h":2,"i":2,"static":false},{"x":37,"y":30,"w":1,"h":2,"i":3,"static":false},{"x":32,"y":32,"w":4,"h":2,"i":4,"static":false}]},"hints":{"active":false,"current":0,"descriptions":["Finde zunächst alle Pfade des Graphen, indem du die jeweiligen Kanten des Graphen anklickst.
Du hast alle Pfade gefunden, wenn alle Kanten grün sind.","
Bilde nun die Zwischensummen für jeden Knoten, indem du entgegen der Kantenrichtung die Bedarfe mit den Kantengewichten multiplizierst.
Als Gedankenstütze kannst du die Zwischenprodukte innerhalb des Textfelds aufschreiben.
Übertrage zuletzt die errechneten Werte der jeweiligen Knoten in den Sekundärbedarfsvektor."]},"modals":[{"trigger":{"type":"success"},"content":{"header":"Herzlichen Glückwunsch!","body":"Sie haben die Aufgabe erfolgreich gelöst!","footer":{"buttons":[{"type":"close","label":"Zurück","parameters":{}},{"type":"route","label":"Zur Übersicht","parameters":{"route":"TaskOverview"}}]}},"active":false}],"isValid":false,"isCorrect":false,"components":{"0":{"name":"Traversal","type":"VisualGraphTraversal","isValid":true,"dependencies":{"dotDescription":"taskData__dotDescription","VisualGraphTraversal":{"nodes":"taskData__nodes","paths":"taskData__paths","dotDescription":"taskData__dotDescription"}},"component":{"selectedPaths":[],"colorCoding":{"standard":"black","completed":"green","selected":"red","partial":"blue"}}},"1":{"type":"PathDisplay","name":"display","isValid":true,"dependencies":{"PathDisplay":{"selectedPaths":"nodes__8__components__0__component__selectedPaths","nodes":"taskData__nodes"}},"component":{}},"2":{"name":"Primärbedarfsvektor","type":"Matrix","isValid":true,"dependencies":{"Matrix":{"data":"taskData__valueVector","label":"taskData__labelVector"}},"methods":{"fillZeros":{"description":"Ergänze Nullen","impact":0.5},"showSolution":{"description":"Zeige Lösung","impact":0},"copyToClipboard":{"description":"Kopieren","impact":1}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"initialize":{"solution":{"operations":[],"paths":["taskData__valueVector"]},"validation":{"operations":[{"name":"getValueInitializedMatrix","args":[{"isValid":true,"isCorrect":false}]}],"paths":["taskData__valueVector"]},"user":{"operations":[],"paths":["taskData__valueVector"]}},"userData":null,"validationData":null,"solutionData":null,"readOnly":true,"rowLabel":"taskData__labelVector","columnLabel":""}},"3":{"name":"Sekundärbedarfsvektor","type":"Matrix","isValid":false,"isCorrect":false,"dependencies":{"Matrix":{"data":"taskData__valueVector","label":"taskData__labelVector"}},"methods":{"fillZeros":{"description":"Ergänze Nullen","impact":0.5},"showSolution":{"description":"Zeige Lösung","impact":0},"copyToClipboard":{"description":"Kopieren","impact":1}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"initialize":{"solution":{"operations":[],"paths":["taskData__solution"]},"validation":{"operations":[{"name":"getValueInitializedMatrix","args":[{"isValid":false,"isCorrect":false}]}],"paths":["taskData__valueVector"]},"user":{"operations":[{"name":"getValueInitializedMatrix","args":[null]}],"paths":["taskData__valueVector"]}},"userData":null,"validationData":null,"solutionData":null,"readOnly":false,"rowLabel":"taskData__labelVector","columnLabel":""}},"4":{"name":"Rechenhilfe","type":"TextArea","isValid":true,"component":{"value":""}}}}}},{"timestamp":1711107723007,"path":"rootNode","value":0},{"timestamp":1711107723007,"path":"currentNode","value":0},{"timestamp":1711107723007,"path":"taskMode","value":"practice"},{"timestamp":1711107723008,"path":"zoomScale","value":1},{"timestamp":1711107724320,"path":"taskData__dotDescription","value":"digraph {\n graph [bgcolor=\"transparent\" rankdir=\"BT\" splines=\"polyline\" bgcolor=\"transparent\"]\n node [shape=\"circle\" style=\"filled\"] \n 0 [label=\"K0\" tooltip=\"7\"]\n1 [label=\"R0\" tooltip=\"7\"]\n2 [label=\"B0\" tooltip=\"6\"]\n3 [label=\"B1\" tooltip=\"9\"]\n4 [label=\"K1\" tooltip=\"1\"]\n5 [label=\"B2\" tooltip=\"5\"]\n6 [label=\"B3\" tooltip=\"2\"]\n7 [label=\"P0\" tooltip=\"6\"]\n8 [label=\"P1\" tooltip=\"2\"]\n9 [label=\"P2\" tooltip=\"5\"]\n edge [] \n 0 -> 2 [label=\"7\"]\n1 -> 3 [label=\"6\"]\n0 -> 5 [label=\"5\"]\n2 -> 6 [label=\"9\"]\n3 -> 7 [label=\"6\"]\n4 -> 7 [label=\"7\"]\n5 -> 7 [label=\"10\"]\n6 -> 7 [label=\"6\"]\n2 -> 8 [label=\"5\"]\n3 -> 9 [label=\"3\"]\n6 -> 9 [label=\"7\"]\n { rank=max; 7;8;9 }\n }"},{"timestamp":1711107724336,"path":"taskData__edges","value":[{"between":["0","2"],"weight":"7"},{"between":["1","3"],"weight":"6"},{"between":["0","5"],"weight":"5"},{"between":["2","6"],"weight":"9"},{"between":["3","7"],"weight":"6"},{"between":["4","7"],"weight":"7"},{"between":["5","7"],"weight":"10"},{"between":["6","7"],"weight":"6"},{"between":["2","8"],"weight":"5"},{"between":["3","9"],"weight":"3"},{"between":["6","9"],"weight":"7"}]},{"timestamp":1711107724336,"path":"taskData__nodes","value":[{"id":0,"label":"K0","value":7,"parents":[],"childs":["2","5"]},{"id":1,"label":"R0","value":7,"parents":[],"childs":["3"]},{"id":2,"label":"B0","value":6,"parents":["0"],"childs":["6","8"]},{"id":3,"label":"B1","value":9,"parents":["1"],"childs":["7","9"]},{"id":4,"label":"K1","value":1,"parents":[],"childs":["7"]},{"id":5,"label":"B2","value":5,"parents":["0"],"childs":["7"]},{"id":6,"label":"B3","value":2,"parents":["2"],"childs":["7","9"]},{"id":7,"label":"P0","value":6,"parents":["3","4","5","6"],"childs":[]},{"id":8,"label":"P1","value":2,"parents":["2"],"childs":[]},{"id":9,"label":"P2","value":5,"parents":["3","6"],"childs":[]}]},{"timestamp":1711107724337,"path":"taskData__paths","value":[[{"between":[0,2]},{"between":[2,6]},{"between":[6,7]}],[{"between":[0,2]},{"between":[2,6]},{"between":[6,9]}],[{"between":[0,2]},{"between":[2,8]}],[{"between":[0,5]},{"between":[5,7]}],[{"between":[1,3]},{"between":[3,7]}],[{"between":[1,3]},{"between":[3,9]}],[{"between":[4,7]}]]},{"timestamp":1711107724337,"path":"taskData__valueVector","value":[[6,2,5,6,9,5,2,7,1,7]]},{"timestamp":1711107724337,"path":"taskData__labelVector","value":["P0","P1","P2","B0","B1","B2","B3","K0","K1","R0"]},{"timestamp":1711107724337,"path":"taskData__solution","value":[[6,2,5,673,60,65,73,5043,43,367]]},{"timestamp":1711107724337,"path":"taskData__adjacencyMatrix","value":[[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,5,0,0,0,0,9,0,0,0],[6,0,3,0,0,0,0,0,0,0],[10,0,0,0,0,0,0,0,0,0],[6,0,7,0,0,0,0,0,0,0],[0,0,0,7,0,5,0,0,0,0],[7,0,0,0,0,0,0,0,0,0],[0,0,0,0,6,0,0,0,0,0]]},{"timestamp":1711107724337,"path":"taskData__longestPath","value":3},{"timestamp":1711107724345,"path":"nodes__0__components__1__isValid","value":true},{"timestamp":1711107724397,"path":"nodes__0__isValid","value":true},{"timestamp":1711107725505,"path":"taskData__dotDescription","value":"digraph {\n graph [bgcolor=\"transparent\" rankdir=\"BT\" splines=\"polyline\" bgcolor=\"transparent\"]\n node [shape=\"circle\" style=\"filled\"] \n 0 [label=\"K0\" tooltip=\"8\"]\n1 [label=\"K1\" tooltip=\"10\"]\n2 [label=\"R0\" tooltip=\"8\"]\n3 [label=\"B0\" tooltip=\"9\"]\n4 [label=\"P0\" tooltip=\"1\"]\n5 [label=\"R1\" tooltip=\"7\"]\n6 [label=\"B1\" tooltip=\"9\"]\n7 [label=\"K2\" tooltip=\"7\"]\n8 [label=\"B2\" tooltip=\"8\"]\n9 [label=\"P1\" tooltip=\"7\"]\n edge [] \n 2 -> 3 [label=\"10\"]\n0 -> 4 [label=\"10\"]\n3 -> 6 [label=\"6\"]\n0 -> 8 [label=\"3\"]\n1 -> 9 [label=\"10\"]\n5 -> 9 [label=\"8\"]\n6 -> 9 [label=\"10\"]\n7 -> 9 [label=\"2\"]\n8 -> 9 [label=\"6\"]\n { rank=max; 4;9 }\n }"},{"timestamp":1711107725510,"path":"taskData__edges","value":[{"between":["2","3"],"weight":"10"},{"between":["0","4"],"weight":"10"},{"between":["3","6"],"weight":"6"},{"between":["0","8"],"weight":"3"},{"between":["1","9"],"weight":"10"},{"between":["5","9"],"weight":"8"},{"between":["6","9"],"weight":"10"},{"between":["7","9"],"weight":"2"},{"between":["8","9"],"weight":"6"}]},{"timestamp":1711107725510,"path":"taskData__nodes","value":[{"id":0,"label":"K0","value":8,"parents":[],"childs":["4","8"]},{"id":1,"label":"K1","value":10,"parents":[],"childs":["9"]},{"id":2,"label":"R0","value":8,"parents":[],"childs":["3"]},{"id":3,"label":"B0","value":9,"parents":["2"],"childs":["6"]},{"id":4,"label":"P0","value":1,"parents":["0"],"childs":[]},{"id":5,"label":"R1","value":7,"parents":[],"childs":["9"]},{"id":6,"label":"B1","value":9,"parents":["3"],"childs":["9"]},{"id":7,"label":"K2","value":7,"parents":[],"childs":["9"]},{"id":8,"label":"B2","value":8,"parents":["0"],"childs":["9"]},{"id":9,"label":"P1","value":7,"parents":["1","5","6","7","8"],"childs":[]}]},{"timestamp":1711107725510,"path":"taskData__paths","value":[[{"between":[0,4]}],[{"between":[0,8]},{"between":[8,9]}],[{"between":[1,9]}],[{"between":[2,3]},{"between":[3,6]},{"between":[6,9]}],[{"between":[5,9]}],[{"between":[7,9]}]]},{"timestamp":1711107725510,"path":"taskData__valueVector","value":[[1,7,9,9,8,8,10,7,8,7]]},{"timestamp":1711107725510,"path":"taskData__labelVector","value":["P0","P1","B0","B1","B2","K0","K1","K2","R0","R1"]},{"timestamp":1711107725510,"path":"taskData__solution","value":[[1,7,483,79,50,168,80,21,4838,63]]},{"timestamp":1711107725510,"path":"taskData__adjacencyMatrix","value":[[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,6,0,0,0,0,0,0],[0,10,0,0,0,0,0,0,0,0],[0,6,0,0,0,0,0,0,0,0],[10,0,0,0,3,0,0,0,0,0],[0,10,0,0,0,0,0,0,0,0],[0,2,0,0,0,0,0,0,0,0],[0,0,10,0,0,0,0,0,0,0],[0,8,0,0,0,0,0,0,0,0]]},{"timestamp":1711107726896,"path":"taskData__dotDescription","value":"digraph {\n graph [bgcolor=\"transparent\" rankdir=\"BT\" splines=\"polyline\" bgcolor=\"transparent\"]\n node [shape=\"circle\" style=\"filled\"] \n 0 [label=\"K0\" tooltip=\"4\"]\n1 [label=\"R0\" tooltip=\"1\"]\n2 [label=\"R1\" tooltip=\"2\"]\n3 [label=\"R2\" tooltip=\"6\"]\n4 [label=\"B0\" tooltip=\"10\"]\n5 [label=\"B1\" tooltip=\"1\"]\n6 [label=\"B2\" tooltip=\"9\"]\n7 [label=\"P0\" tooltip=\"1\"]\n8 [label=\"P1\" tooltip=\"5\"]\n9 [label=\"P2\" tooltip=\"8\"]\n edge [] \n 1 -> 4 [label=\"5\"]\n0 -> 5 [label=\"7\"]\n3 -> 5 [label=\"3\"]\n4 -> 5 [label=\"8\"]\n0 -> 6 [label=\"8\"]\n1 -> 6 [label=\"3\"]\n0 -> 7 [label=\"4\"]\n1 -> 7 [label=\"4\"]\n2 -> 7 [label=\"4\"]\n5 -> 7 [label=\"2\"]\n6 -> 7 [label=\"10\"]\n1 -> 8 [label=\"7\"]\n5 -> 8 [label=\"6\"]\n0 -> 9 [label=\"4\"]\n6 -> 9 [label=\"4\"]\n { rank=max; 7;8;9 }\n }"},{"timestamp":1711107726902,"path":"taskData__edges","value":[{"between":["1","4"],"weight":"5"},{"between":["0","5"],"weight":"7"},{"between":["3","5"],"weight":"3"},{"between":["4","5"],"weight":"8"},{"between":["0","6"],"weight":"8"},{"between":["1","6"],"weight":"3"},{"between":["0","7"],"weight":"4"},{"between":["1","7"],"weight":"4"},{"between":["2","7"],"weight":"4"},{"between":["5","7"],"weight":"2"},{"between":["6","7"],"weight":"10"},{"between":["1","8"],"weight":"7"},{"between":["5","8"],"weight":"6"},{"between":["0","9"],"weight":"4"},{"between":["6","9"],"weight":"4"}]},{"timestamp":1711107726902,"path":"taskData__nodes","value":[{"id":0,"label":"K0","value":4,"parents":[],"childs":["5","6","7","9"]},{"id":1,"label":"R0","value":1,"parents":[],"childs":["4","6","7","8"]},{"id":2,"label":"R1","value":2,"parents":[],"childs":["7"]},{"id":3,"label":"R2","value":6,"parents":[],"childs":["5"]},{"id":4,"label":"B0","value":10,"parents":["1"],"childs":["5"]},{"id":5,"label":"B1","value":1,"parents":["0","3","4"],"childs":["7","8"]},{"id":6,"label":"B2","value":9,"parents":["0","1"],"childs":["7","9"]},{"id":7,"label":"P0","value":1,"parents":["0","1","2","5","6"],"childs":[]},{"id":8,"label":"P1","value":5,"parents":["1","5"],"childs":[]},{"id":9,"label":"P2","value":8,"parents":["0","6"],"childs":[]}]},{"timestamp":1711107726902,"path":"taskData__paths","value":[[{"between":[0,5]},{"between":[5,7]}],[{"between":[0,5]},{"between":[5,8]}],[{"between":[0,6]},{"between":[6,7]}],[{"between":[0,6]},{"between":[6,9]}],[{"between":[0,7]}],[{"between":[0,9]}],[{"between":[1,4]},{"between":[4,5]},{"between":[5,7]}],[{"between":[1,4]},{"between":[4,5]},{"between":[5,8]}],[{"between":[1,6]},{"between":[6,7]}],[{"between":[1,6]},{"between":[6,9]}],[{"between":[1,7]}],[{"between":[1,8]}],[{"between":[2,7]}],[{"between":[3,5]},{"between":[5,7]}],[{"between":[3,5]},{"between":[5,8]}]]},{"timestamp":1711107726902,"path":"taskData__valueVector","value":[[1,5,8,10,1,9,4,1,2,6]]},{"timestamp":1711107726902,"path":"taskData__labelVector","value":["P0","P1","P2","B0","B1","B2","K0","R0","R1","R2"]},{"timestamp":1711107726902,"path":"taskData__solution","value":[[1,5,8,274,33,51,679,1563,6,105]]},{"timestamp":1711107726902,"path":"taskData__adjacencyMatrix","value":[[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,8,0,0,0,0,0],[2,6,0,0,0,0,0,0,0,0],[10,0,4,0,0,0,0,0,0,0],[4,0,4,0,7,8,0,0,0,0],[4,7,0,5,0,3,0,0,0,0],[4,0,0,0,0,0,0,0,0,0],[0,0,0,0,3,0,0,0,0,0]]},{"timestamp":1711107728391,"path":"previousNode","value":0},{"timestamp":1711107728391,"path":"currentNode","value":"1"},{"timestamp":1711107730284,"path":"previousNode","value":"1"},{"timestamp":1711107730284,"path":"currentNode","value":"2"},{"timestamp":1711107730284,"path":"nodes__1__chosenPath","value":"Vazsonyi-Verfahren"},{"timestamp":1711107730292,"path":"nodes__2__components__0__component__solutionData","value":[[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,8,0,0,0,0,0],[2,6,0,0,0,0,0,0,0,0],[10,0,4,0,0,0,0,0,0,0],[4,0,4,0,7,8,0,0,0,0],[4,7,0,5,0,3,0,0,0,0],[4,0,0,0,0,0,0,0,0,0],[0,0,0,0,3,0,0,0,0,0]]},{"timestamp":1711107730292,"path":"nodes__2__components__0__component__validationData","value":[[{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false}],[{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false}],[{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false}],[{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false}],[{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false}],[{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false}],[{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false}],[{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false}],[{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false}],[{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false}]]},{"timestamp":1711107730292,"path":"nodes__2__components__0__component__userData","value":[[null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null]]},{"timestamp":1711107731964,"path":"nodes__2__components__0__contextMenu__isOpen","value":true},{"timestamp":1711107732445,"path":"nodes__2__components__0__contextMenu__usedMethods","value":["showSolution"]},{"timestamp":1711107732445,"path":"nodes__2__components__0__component__userData__0__0","value":0},{"timestamp":1711107732445,"path":"nodes__2__components__0__component__userData__0__1","value":0},{"timestamp":1711107732445,"path":"nodes__2__components__0__component__userData__0__2","value":0},{"timestamp":1711107732445,"path":"nodes__2__components__0__component__userData__0__3","value":0},{"timestamp":1711107732445,"path":"nodes__2__components__0__component__userData__0__4","value":0},{"timestamp":1711107732445,"path":"nodes__2__components__0__component__userData__0__5","value":0},{"timestamp":1711107732445,"path":"nodes__2__components__0__component__userData__0__6","value":0},{"timestamp":1711107732445,"path":"nodes__2__components__0__component__userData__0__7","value":0},{"timestamp":1711107732445,"path":"nodes__2__components__0__component__userData__0__8","value":0},{"timestamp":1711107732445,"path":"nodes__2__components__0__component__userData__0__9","value":0},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__1__0","value":0},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__1__1","value":0},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__1__2","value":0},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__1__3","value":0},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__1__4","value":0},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__1__5","value":0},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__1__6","value":0},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__1__7","value":0},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__1__8","value":0},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__1__9","value":0},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__2__0","value":0},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__2__1","value":0},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__2__2","value":0},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__2__3","value":0},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__2__4","value":0},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__2__5","value":0},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__2__6","value":0},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__2__7","value":0},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__2__8","value":0},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__2__9","value":0},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__3__0","value":0},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__3__1","value":0},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__3__2","value":0},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__3__3","value":0},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__3__4","value":8},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__3__5","value":0},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__3__6","value":0},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__3__7","value":0},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__3__8","value":0},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__3__9","value":0},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__4__0","value":2},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__4__1","value":6},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__4__2","value":0},{"timestamp":1711107732446,"path":"nodes__2__components__0__component__userData__4__3","value":0},{"timestamp":1711107732447,"path":"nodes__2__components__0__component__userData__4__4","value":0},{"timestamp":1711107732447,"path":"nodes__2__components__0__component__userData__4__5","value":0},{"timestamp":1711107732447,"path":"nodes__2__components__0__component__userData__4__6","value":0},{"timestamp":1711107732447,"path":"nodes__2__components__0__component__userData__4__7","value":0},{"timestamp":1711107732447,"path":"nodes__2__components__0__component__userData__4__8","value":0},{"timestamp":1711107732447,"path":"nodes__2__components__0__component__userData__4__9","value":0},{"timestamp":1711107732447,"path":"nodes__2__components__0__component__userData__5__0","value":10},{"timestamp":1711107732447,"path":"nodes__2__components__0__component__userData__5__1","value":0},{"timestamp":1711107732447,"path":"nodes__2__components__0__component__userData__5__2","value":4},{"timestamp":1711107732447,"path":"nodes__2__components__0__component__userData__5__3","value":0},{"timestamp":1711107732447,"path":"nodes__2__components__0__component__userData__5__4","value":0},{"timestamp":1711107732447,"path":"nodes__2__components__0__component__userData__5__5","value":0},{"timestamp":1711107732447,"path":"nodes__2__components__0__component__userData__5__6","value":0},{"timestamp":1711107732447,"path":"nodes__2__components__0__component__userData__5__7","value":0},{"timestamp":1711107732447,"path":"nodes__2__components__0__component__userData__5__8","value":0},{"timestamp":1711107732447,"path":"nodes__2__components__0__component__userData__5__9","value":0},{"timestamp":1711107732447,"path":"nodes__2__components__0__component__userData__6__0","value":4},{"timestamp":1711107732447,"path":"nodes__2__components__0__component__userData__6__1","value":0},{"timestamp":1711107732447,"path":"nodes__2__components__0__component__userData__6__2","value":4},{"timestamp":1711107732447,"path":"nodes__2__components__0__component__userData__6__3","value":0},{"timestamp":1711107732447,"path":"nodes__2__components__0__component__userData__6__4","value":7},{"timestamp":1711107732447,"path":"nodes__2__components__0__component__userData__6__5","value":8},{"timestamp":1711107732447,"path":"nodes__2__components__0__component__userData__6__6","value":0},{"timestamp":1711107732447,"path":"nodes__2__components__0__component__userData__6__7","value":0},{"timestamp":1711107732447,"path":"nodes__2__components__0__component__userData__6__8","value":0},{"timestamp":1711107732447,"path":"nodes__2__components__0__component__userData__6__9","value":0},{"timestamp":1711107732447,"path":"nodes__2__components__0__component__userData__7__0","value":4},{"timestamp":1711107732447,"path":"nodes__2__components__0__component__userData__7__1","value":7},{"timestamp":1711107732447,"path":"nodes__2__components__0__component__userData__7__2","value":0},{"timestamp":1711107732447,"path":"nodes__2__components__0__component__userData__7__3","value":5},{"timestamp":1711107732447,"path":"nodes__2__components__0__component__userData__7__4","value":0},{"timestamp":1711107732448,"path":"nodes__2__components__0__component__userData__7__5","value":3},{"timestamp":1711107732448,"path":"nodes__2__components__0__component__userData__7__6","value":0},{"timestamp":1711107732448,"path":"nodes__2__components__0__component__userData__7__7","value":0},{"timestamp":1711107732448,"path":"nodes__2__components__0__component__userData__7__8","value":0},{"timestamp":1711107732448,"path":"nodes__2__components__0__component__userData__7__9","value":0},{"timestamp":1711107732448,"path":"nodes__2__components__0__component__userData__8__0","value":4},{"timestamp":1711107732448,"path":"nodes__2__components__0__component__userData__8__1","value":0},{"timestamp":1711107732448,"path":"nodes__2__components__0__component__userData__8__2","value":0},{"timestamp":1711107732448,"path":"nodes__2__components__0__component__userData__8__3","value":0},{"timestamp":1711107732448,"path":"nodes__2__components__0__component__userData__8__4","value":0},{"timestamp":1711107732448,"path":"nodes__2__components__0__component__userData__8__5","value":0},{"timestamp":1711107732448,"path":"nodes__2__components__0__component__userData__8__6","value":0},{"timestamp":1711107732448,"path":"nodes__2__components__0__component__userData__8__7","value":0},{"timestamp":1711107732448,"path":"nodes__2__components__0__component__userData__8__8","value":0},{"timestamp":1711107732448,"path":"nodes__2__components__0__component__userData__8__9","value":0},{"timestamp":1711107732448,"path":"nodes__2__components__0__component__userData__9__0","value":0},{"timestamp":1711107732448,"path":"nodes__2__components__0__component__userData__9__1","value":0},{"timestamp":1711107732448,"path":"nodes__2__components__0__component__userData__9__2","value":0},{"timestamp":1711107732448,"path":"nodes__2__components__0__component__userData__9__3","value":0},{"timestamp":1711107732448,"path":"nodes__2__components__0__component__userData__9__4","value":3},{"timestamp":1711107732448,"path":"nodes__2__components__0__component__userData__9__5","value":0},{"timestamp":1711107732448,"path":"nodes__2__components__0__component__userData__9__6","value":0},{"timestamp":1711107732448,"path":"nodes__2__components__0__component__userData__9__7","value":0},{"timestamp":1711107732448,"path":"nodes__2__components__0__component__userData__9__8","value":0},{"timestamp":1711107732448,"path":"nodes__2__components__0__component__userData__9__9","value":0},{"timestamp":1711107732449,"path":"nodes__2__components__0__isValid","value":true},{"timestamp":1711107732449,"path":"nodes__2__components__0__isCorrect","value":true},{"timestamp":1711107732450,"path":"nodes__2__components__0__component__validationData__0__0__isCorrect","value":true},{"timestamp":1711107732450,"path":"nodes__2__components__0__component__validationData__0__0__isValid","value":true},{"timestamp":1711107732499,"path":"nodes__2__isValid","value":true},{"timestamp":1711107732499,"path":"nodes__2__isCorrect","value":true},{"timestamp":1711107733423,"path":"nodes__2__components__0__contextMenu__usedMethods","value":["showSolution","fillZeros"]},{"timestamp":1711107734158,"path":"nodes__2__components__0__contextMenu__isOpen","value":false},{"timestamp":1711107735147,"path":"previousNode","value":2},{"timestamp":1711107735147,"path":"currentNode","value":"3"},{"timestamp":1711107735155,"path":"nodes__3__components__0__component__solutionData","value":[[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,8,0,0,0,0,0],[2,6,0,0,0,0,0,0,0,0],[10,0,4,0,0,0,0,0,0,0],[4,0,4,0,7,8,0,0,0,0],[4,7,0,5,0,3,0,0,0,0],[4,0,0,0,0,0,0,0,0,0],[0,0,0,0,3,0,0,0,0,0]]},{"timestamp":1711107735155,"path":"nodes__3__components__0__component__validationData","value":[[{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false}],[{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false}],[{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false}],[{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false}],[{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false}],[{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false}],[{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false}],[{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false}],[{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false}],[{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false}]]},{"timestamp":1711107735155,"path":"nodes__3__components__0__component__userData","value":[[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,8,0,0,0,0,0],[2,6,0,0,0,0,0,0,0,0],[10,0,4,0,0,0,0,0,0,0],[4,0,4,0,7,8,0,0,0,0],[4,7,0,5,0,3,0,0,0,0],[4,0,0,0,0,0,0,0,0,0],[0,0,0,0,3,0,0,0,0,0]]},{"timestamp":1711107735155,"path":"nodes__3__components__1__component__solutionData","value":[[1,0,0,0,0,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,0],[0,0,0,1,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,0,1]]},{"timestamp":1711107735155,"path":"nodes__3__components__1__component__validationData","value":[[{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false}],[{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false}],[{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false}],[{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false}],[{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false}],[{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false}],[{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false}],[{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false}],[{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false}],[{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false}]]},{"timestamp":1711107735155,"path":"nodes__3__components__1__component__userData","value":[[1,0,0,0,0,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,0],[0,0,0,1,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,0,1]]},{"timestamp":1711107735156,"path":"nodes__3__components__2__component__solutionData","value":[[1,0,0,0,0,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,0],[0,0,0,1,-8,0,0,0,0,0],[-2,-6,0,0,1,0,0,0,0,0],[-10,0,-4,0,0,1,0,0,0,0],[-4,0,-4,0,-7,-8,1,0,0,0],[-4,-7,0,-5,0,-3,0,1,0,0],[-4,0,0,0,0,0,0,0,1,0],[0,0,0,0,-3,0,0,0,0,1]]},{"timestamp":1711107735156,"path":"nodes__3__components__2__component__validationData","value":[[{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false}],[{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false}],[{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false}],[{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false}],[{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false}],[{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false}],[{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false}],[{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false}],[{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false}],[{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false},{"isValid":true,"isCorrect":false}]]},{"timestamp":1711107735156,"path":"nodes__3__components__2__component__userData","value":[[null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null]]},{"timestamp":1711107735159,"path":"nodes__3__components__0__isCorrect","value":true},{"timestamp":1711107735171,"path":"nodes__3__components__1__isCorrect","value":true}],"mouse":[{"x":754,"y":547,"timestamp":1711107722894},{"x":753,"y":547,"timestamp":1711107722952},{"x":752,"y":548,"timestamp":1711107723002},{"x":763,"y":544,"timestamp":1711107723083},{"x":776,"y":541,"timestamp":1711107723136},{"x":791,"y":539,"timestamp":1711107723186},{"x":814,"y":539,"timestamp":1711107723252},{"x":826,"y":539,"timestamp":1711107723302},{"x":842,"y":541,"timestamp":1711107723352},{"x":874,"y":547,"timestamp":1711107723402},{"x":888,"y":543,"timestamp":1711107723452},{"x":887,"y":544,"timestamp":1711107723569},{"x":884,"y":538,"timestamp":1711107723619},{"x":884,"y":537,"timestamp":1711107723690},{"x":883,"y":537,"timestamp":1711107723865},{"x":874,"y":556,"timestamp":1711107723919},{"x":838,"y":592,"timestamp":1711107723969},{"x":784,"y":615,"timestamp":1711107724019},{"x":761,"y":618,"timestamp":1711107724069},{"x":769,"y":617,"timestamp":1711107724119},{"x":822,"y":616,"timestamp":1711107724169},{"x":866,"y":612,"timestamp":1711107724219},{"x":871,"y":611,"timestamp":1711107724319},{"x":865,"y":611,"timestamp":1711107724386},{"x":861,"y":611,"timestamp":1711107724436},{"x":836,"y":616,"timestamp":1711107724502},{"x":837,"y":612,"timestamp":1711107724552},{"x":841,"y":613,"timestamp":1711107724686},{"x":843,"y":613,"timestamp":1711107724736},{"x":830,"y":615,"timestamp":1711107724786},{"x":817,"y":619,"timestamp":1711107724836},{"x":819,"y":619,"timestamp":1711107724953},{"x":821,"y":619,"timestamp":1711107725412},{"x":823,"y":619,"timestamp":1711107725519},{"x":820,"y":624,"timestamp":1711107725636},{"x":766,"y":651,"timestamp":1711107725686},{"x":564,"y":718,"timestamp":1711107725752},{"x":374,"y":784,"timestamp":1711107725802},{"x":280,"y":795,"timestamp":1711107725852},{"x":255,"y":778,"timestamp":1711107725902},{"x":257,"y":768,"timestamp":1711107725953},{"x":262,"y":767,"timestamp":1711107726003},{"x":265,"y":776,"timestamp":1711107726069},{"x":254,"y":794,"timestamp":1711107726119},{"x":235,"y":808,"timestamp":1711107726169},{"x":216,"y":818,"timestamp":1711107726219},{"x":198,"y":821,"timestamp":1711107726269},{"x":181,"y":821,"timestamp":1711107726319},{"x":178,"y":826,"timestamp":1711107726369},{"x":249,"y":826,"timestamp":1711107726419},{"x":541,"y":782,"timestamp":1711107726469},{"x":789,"y":736,"timestamp":1711107726519},{"x":854,"y":708,"timestamp":1711107726569},{"x":855,"y":701,"timestamp":1711107726619},{"x":852,"y":689,"timestamp":1711107726669},{"x":843,"y":671,"timestamp":1711107726719},{"x":833,"y":650,"timestamp":1711107726769},{"x":830,"y":637,"timestamp":1711107726819},{"x":829,"y":637,"timestamp":1711107726883},{"x":827,"y":637,"timestamp":1711107726953},{"x":786,"y":652,"timestamp":1711107727019},{"x":645,"y":710,"timestamp":1711107727069},{"x":435,"y":779,"timestamp":1711107727119},{"x":321,"y":809,"timestamp":1711107727169},{"x":278,"y":812,"timestamp":1711107727219},{"x":260,"y":809,"timestamp":1711107727269},{"x":240,"y":811,"timestamp":1711107727319},{"x":221,"y":823,"timestamp":1711107727369},{"x":214,"y":825,"timestamp":1711107727419},{"x":213,"y":825,"timestamp":1711107727488},{"x":195,"y":825,"timestamp":1711107727552},{"x":181,"y":826,"timestamp":1711107727602},{"x":162,"y":827,"timestamp":1711107727652},{"x":139,"y":830,"timestamp":1711107727702},{"x":123,"y":835,"timestamp":1711107727752},{"x":114,"y":838,"timestamp":1711107727802},{"x":111,"y":839,"timestamp":1711107727921},{"x":108,"y":839,"timestamp":1711107728057},{"x":103,"y":840,"timestamp":1711107728119},{"x":103,"y":838,"timestamp":1711107728686},{"x":126,"y":823,"timestamp":1711107728736},{"x":206,"y":771,"timestamp":1711107728786},{"x":321,"y":711,"timestamp":1711107728836},{"x":423,"y":676,"timestamp":1711107728886},{"x":505,"y":659,"timestamp":1711107728936},{"x":566,"y":654,"timestamp":1711107728986},{"x":612,"y":641,"timestamp":1711107729036},{"x":540,"y":602,"timestamp":1711107729086},{"x":393,"y":572,"timestamp":1711107729136},{"x":361,"y":566,"timestamp":1711107729286},{"x":383,"y":566,"timestamp":1711107729336},{"x":547,"y":584,"timestamp":1711107729386},{"x":796,"y":580,"timestamp":1711107729436},{"x":1046,"y":544,"timestamp":1711107729488},{"x":1247,"y":507,"timestamp":1711107729538},{"x":1358,"y":477,"timestamp":1711107729588},{"x":1397,"y":462,"timestamp":1711107729638},{"x":1462,"y":457,"timestamp":1711107729688},{"x":1533,"y":447,"timestamp":1711107729738},{"x":1650,"y":440,"timestamp":1711107729804},{"x":1641,"y":431,"timestamp":1711107729869},{"x":1592,"y":429,"timestamp":1711107729920},{"x":1584,"y":432,"timestamp":1711107730003},{"x":1584,"y":443,"timestamp":1711107730053},{"x":1584,"y":446,"timestamp":1711107730119},{"x":1583,"y":446,"timestamp":1711107730445},{"x":1582,"y":447,"timestamp":1711107730505},{"x":1579,"y":448,"timestamp":1711107730622},{"x":1558,"y":459,"timestamp":1711107730685},{"x":1509,"y":484,"timestamp":1711107730735},{"x":1411,"y":516,"timestamp":1711107730785},{"x":1287,"y":523,"timestamp":1711107730835},{"x":1165,"y":519,"timestamp":1711107730885},{"x":1063,"y":499,"timestamp":1711107730935},{"x":1012,"y":489,"timestamp":1711107730985},{"x":917,"y":479,"timestamp":1711107731035},{"x":834,"y":475,"timestamp":1711107731085},{"x":705,"y":466,"timestamp":1711107731136},{"x":601,"y":463,"timestamp":1711107731186},{"x":521,"y":441,"timestamp":1711107731236},{"x":498,"y":425,"timestamp":1711107731286},{"x":480,"y":408,"timestamp":1711107731336},{"x":472,"y":395,"timestamp":1711107731386},{"x":469,"y":391,"timestamp":1711107731436},{"x":467,"y":389,"timestamp":1711107731548},{"x":451,"y":384,"timestamp":1711107731603},{"x":426,"y":374,"timestamp":1711107731653},{"x":396,"y":360,"timestamp":1711107731703},{"x":370,"y":344,"timestamp":1711107731769},{"x":368,"y":338,"timestamp":1711107731820},{"x":371,"y":335,"timestamp":1711107731986},{"x":372,"y":335,"timestamp":1711107732112},{"x":392,"y":353,"timestamp":1711107732169},{"x":404,"y":369,"timestamp":1711107732219},{"x":405,"y":369,"timestamp":1711107732753},{"x":431,"y":370,"timestamp":1711107732819},{"x":464,"y":370,"timestamp":1711107732869},{"x":499,"y":372,"timestamp":1711107732919},{"x":526,"y":385,"timestamp":1711107732969},{"x":528,"y":397,"timestamp":1711107733019},{"x":524,"y":399,"timestamp":1711107733069},{"x":503,"y":381,"timestamp":1711107733119},{"x":471,"y":367,"timestamp":1711107733169},{"x":431,"y":355,"timestamp":1711107733219},{"x":416,"y":350,"timestamp":1711107733269},{"x":414,"y":349,"timestamp":1711107733502},{"x":393,"y":369,"timestamp":1711107733552},{"x":351,"y":409,"timestamp":1711107733602},{"x":298,"y":458,"timestamp":1711107733652},{"x":280,"y":479,"timestamp":1711107733702},{"x":283,"y":481,"timestamp":1711107733752},{"x":307,"y":473,"timestamp":1711107733802},{"x":347,"y":451,"timestamp":1711107733853},{"x":378,"y":440,"timestamp":1711107733903},{"x":373,"y":443,"timestamp":1711107733953},{"x":306,"y":471,"timestamp":1711107734019},{"x":279,"y":477,"timestamp":1711107734069},{"x":279,"y":478,"timestamp":1711107734236},{"x":273,"y":510,"timestamp":1711107734302},{"x":265,"y":591,"timestamp":1711107734352},{"x":279,"y":629,"timestamp":1711107734402},{"x":279,"y":626,"timestamp":1711107734543},{"x":279,"y":656,"timestamp":1711107734602},{"x":212,"y":753,"timestamp":1711107734652},{"x":157,"y":823,"timestamp":1711107734702},{"x":138,"y":841,"timestamp":1711107734752},{"x":139,"y":842,"timestamp":1711107734802},{"x":141,"y":844,"timestamp":1711107734869},{"x":120,"y":856,"timestamp":1711107734919},{"x":103,"y":862,"timestamp":1711107734969},{"x":105,"y":863,"timestamp":1711107735304},{"x":213,"y":785,"timestamp":1711107735370},{"x":377,"y":649,"timestamp":1711107735420},{"x":512,"y":567,"timestamp":1711107735486},{"x":521,"y":570,"timestamp":1711107735596},{"x":555,"y":588,"timestamp":1711107735652},{"x":603,"y":510,"timestamp":1711107735702},{"x":567,"y":335,"timestamp":1711107735753},{"x":498,"y":203,"timestamp":1711107735819},{"x":430,"y":193,"timestamp":1711107735869},{"x":409,"y":206,"timestamp":1711107735919},{"x":413,"y":203,"timestamp":1711107735978},{"x":433,"y":197,"timestamp":1711107736035},{"x":398,"y":132,"timestamp":1711107736085},{"x":300,"y":56,"timestamp":1711107736135},{"x":198,"y":9,"timestamp":1711107736186},{"x":131,"y":0,"timestamp":1711107736304},{"x":114,"y":27,"timestamp":1711107736369},{"x":90,"y":35,"timestamp":1711107736419},{"x":84,"y":35,"timestamp":1711107736486},{"x":80,"y":32,"timestamp":1711107736770},{"x":102,"y":45,"timestamp":1711107736820},{"x":152,"y":70,"timestamp":1711107736870},{"x":176,"y":93,"timestamp":1711107736920},{"x":168,"y":107,"timestamp":1711107736970},{"x":159,"y":110,"timestamp":1711107737020},{"x":152,"y":118,"timestamp":1711107737070},{"x":109,"y":134,"timestamp":1711107737136},{"x":74,"y":132,"timestamp":1711107737186},{"x":56,"y":121,"timestamp":1711107737236},{"x":48,"y":116,"timestamp":1711107737286},{"x":47,"y":116,"timestamp":1711107737336},{"x":32,"y":117,"timestamp":1711107737386},{"x":28,"y":120,"timestamp":1711107737503},{"x":38,"y":123,"timestamp":1711107737569}],"panning":[{"x":-5000,"y":-5000,"timestamp":1711107723087},{"x":-5000,"y":-5000,"timestamp":1711107730354},{"x":-5000,"y":-5000,"timestamp":1711107735245}],"zooming":[],"meta":{"task":"Gozintograph","completion":0,"date":"2024-03-22T11:42:17.731Z","duration":14675}} \ No newline at end of file diff --git a/src/server/tempReplayStorage/1693913718.json b/src/server/tempReplayStorage/1693913718.json deleted file mode 100644 index d3fc70e..0000000 --- a/src/server/tempReplayStorage/1693913718.json +++ /dev/null @@ -1 +0,0 @@ -{"steps":[{"timestamp":1711107832054,"path":"topology","value":[[0,null,null]]},{"timestamp":1711107832054,"path":"edges","value":{"0":[1],"1":[2,4],"2":[3],"3":[],"4":[]}},{"timestamp":1711107832055,"path":"nodes","value":{"0":{"zoomScale":1,"layouts":{"sm":[{"x":12,"y":5,"w":2,"h":5,"i":1,"static":false}],"md":[{"x":0,"y":10,"w":2,"h":5,"i":1,"static":false}],"lg":[{"x":32,"y":29,"w":2,"h":2,"i":0,"static":false},{"x":34,"y":29,"w":2,"h":4,"i":1,"static":false}]},"components":{"0":{"type":"TaskConfiguration","name":"Konfiguration","isValid":false,"component":{"title":"Parameter Konfiguration","actions":[{"instruction":"generateTask","type":"fetchData","label":"Generieren!","dependsOn":["nodeAmount","durationRange"]}],"form":{"nodeAmount":{"formType":"ValueFormField","label":"Knotenanzahl","type":"number","description":"Bestimmt die Anzahl an Vorgängen","boundaries":{"min":6,"max":26},"validate":true,"value":"10","presets":{"easy":"6","medium":"10","hard":"15"}},"durationRange":{"formType":"RangeFormField","label":"Dauer","type":"number","description":"Bestimmt den Wertebereich der Vorgangsdauern","boundaries":{"min":0,"max":100},"step":1,"initial":{"lowerValue":1,"upperValue":15},"presets":{"easy":[1,5],"medium":[1,10],"hard":[1,15]}},"seed":{"formType":"ValueFormField","label":"Seed","type":"text","description":"Setze einen beliebigen Wert um die Generierung deterministisch und reproduzierbar zu machen","value":"","presets":{"easy":"","medium":"","hard":""},"validate":false}}}},"1":{"type":"Output","name":"Vorgangsliste","isValid":true,"dependencies":{"Output":{"serverOutput":"taskData__table","validOutput":"taskData__table"}},"component":{"header":"Vorgangsliste"}}}},"1":{"pathDescriptions":{"2":{"title":"Metra-Potential-Methode (MPM)","image":"/img/tasks/scheduling/netzplan.png","description":"Führe eine Auftragsterminierung anhand der Metra-Potential-Methode (MPM) durch!"},"4":{"title":"Gantt-Diagramm","image":"/img/tasks/scheduling/gantt_diagram.png","description":"Führe eine Auftragsterminierung anhand eines Gantt-Diagramms durch!"},"5":{"title":"Critical-Path-Methode (CPM)","image":"/img/tasks/scheduling/gantt_diagram.png","description":"Führe eine Auftragsterminierung anhand der Critical-Path-Methode (CPM) durch!"},"6":{"title":"Program Evaluation and Review Technique (PERT)","image":"/img/tasks/scheduling/gantt_diagram.png","description":"Führe eine Auftragsterminierung anhand der Program Evaluation and Review Technique (PERT) durch!"}}},"2":{"zoomScale":1,"layouts":{"sm":[{"x":12,"y":5,"w":2,"h":5,"i":1,"static":false}],"md":[{"x":0,"y":10,"w":2,"h":5,"i":1,"static":false}],"lg":[{"x":32,"y":29,"w":8,"h":4,"i":0,"static":false},{"x":30,"y":29,"w":2,"h":4,"i":1,"static":false}]},"hints":{"active":false,"current":0,"descriptions":["Führe eine Strukturanalyse zur Darstellung der Prozessstruktur durch.
Verbinde dazu die jeweiligen Ereignise mit ihren Nachfolgern, um die Abhängigkeitsbeziehung darzustellen.","Klicke dazu ein Ereignis an um ihn auszuwählen. Klicke nun auf ein weiteres Ereignis, um zwischen den ausgewählten Ereignissen eine Verbindung zu erstellen. Die Reihenfolge spielt hierfür eine Rolle! Um eine Verbindung zu entfernen, klicke die Ereignise in derselben Reihenfolge wie zuvor an."]},"components":{"0":{"type":"PlanGraph","name":"Netzplan","isValid":false,"methods":{"showSolution":{"description":"Zeige Lösung","impact":0}},"contextMenu":{"isOpen":false,"usedMethods":[]},"nestedComponents":{"DOTGraph":{"dependencies":{"dotDescription":"taskData__dotVertexGraph"}}},"dependencies":{"DOTGraph":{"dotDescription":"taskData__dotVertexGraph"},"PlanGraph":{"dotDescription":"taskData__dotVertexGraph","validation":"taskData__dummyGraph"}}},"1":{"type":"Output","name":"Vorgangsliste","isValid":true,"dependencies":{"Output":{"serverOutput":"taskData__table","validOutput":"taskData__table"}},"component":{"header":"Vorgangsliste"}}}},"3":{"zoomScale":1,"layouts":{"sm":[{"x":12,"y":5,"w":2,"h":5,"i":1,"static":false}],"md":[{"x":0,"y":10,"w":2,"h":5,"i":1,"static":false}],"lg":[{"x":32,"y":29,"w":8,"h":4,"i":0,"static":false}]},"modals":[{"trigger":{"type":"success"},"content":{"header":"Herzlichen Glückwunsch!","body":"Sie haben die Aufgabe erfolgreich gelöst!","footer":{"buttons":[{"type":"close","label":"Zurück","parameters":{}},{"type":"route","label":"Zur Übersicht","parameters":{"route":"TaskOverview"}}]}},"active":false}],"hints":{"active":false,"current":0,"descriptions":["Führe nun eine Zeitanalyse durch.
Legende:
  • FAZ: frühester Anfangszeitpunkt
  • FEZ: frühester Endzeitpunkt
  • SAZ: spätester Anfangszeitpunkt
  • SEZ: spätester Endzeitpunkt
  • GP: Gesamtpuffer
  • FP: freier Puffer
","Die Zeitanalyse ermöglicht die Ermittlung des kritischen Pfades.
Führe dazu zunächst eine Vorwärts- und dann eine Rückwärtskalkulation durch.
Ermittle anschließend die Pufferzeiten. Hier findest du eine detaillierte Anleitung.","Klicke die Felder der Ereignisse, welche mit einem Platzhalter versehen sind, an, um diese editieren zu können."]},"components":{"0":{"type":"EditableGraph","name":"Kalkulation","isValid":false,"methods":{"showSolution":{"description":"Zeige Lösung","impact":0}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"editableFields":["tb","fb","est","eet","lst","let"],"userValues":null},"nestedComponents":{"DOTGraph":{"component":{},"dependencies":{"dotDescription":"taskData__dummyGraph"}}},"dependencies":{"DOTGraph":{"dotDescription":"taskData__dummyGraph"},"EditableGraph":{"solution":"taskData__dotDescription","validation":"taskData__graph__nodes"}}}}},"4":{"zoomScale":1,"layouts":{"sm":[{"x":12,"y":5,"w":2,"h":5,"i":1,"static":false}],"md":[{"x":0,"y":10,"w":2,"h":5,"i":1,"static":false}],"lg":[{"x":32,"y":29,"w":8,"h":4,"i":0,"static":false},{"x":30,"y":29,"w":2,"h":4,"i":1,"static":false}]},"hints":{"active":false,"current":0,"descriptions":["Erstelle ein Gantt-Diagramm anhand der Vorgaben aus der Vorgangsliste. Hier findest du eine genaue Anleitung.","Trage die jeweilige Vorgangsdauer in der zugehörigen Zeile ein. Vergiss dabei nicht alle Abhängigkeiten zu berücksichtigen.","Klicke ein Feld im Raster an und ziehe die Maus entlang der x-Achse um eine Vorgangsdauer einzutragen. Um eine Vorgangsdauer zu entfernen klicke auf ein bereits gefülltes Feld und ziehe die Maus über die Felder welche du entfernen möchtest."]},"modals":[{"trigger":{"type":"success"},"content":{"header":"Herzlichen Glückwunsch!","body":"Sie haben die Aufgabe erfolgreich gelöst!","footer":{"buttons":[{"type":"close","label":"Zurück","parameters":{}},{"type":"route","label":"Zur Übersicht","parameters":{"route":"TaskOverview"}}]}},"active":false}],"components":{"0":{"type":"GanttDiagram","name":"Gantt","isValid":false,"methods":{"showSolution":{"description":"Zeige Lösung","impact":0}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"userMatrix":[],"isDrawing":false,"currentRow":null,"currentColumn":null,"isDeleting":false},"dependencies":{"GanttDiagram":{"ganttDiagram":"taskData__gantt"}}},"1":{"type":"Output","name":"Vorgangsliste","isValid":true,"dependencies":{"Output":{"serverOutput":"taskData__table","validOutput":"taskData__table"}},"component":{"header":"Vorgangsliste"}}}}}},{"timestamp":1711107832055,"path":"rootNode","value":0},{"timestamp":1711107832055,"path":"currentNode","value":0},{"timestamp":1711107832055,"path":"taskMode","value":"practice"},{"timestamp":1711107832055,"path":"zoomScale","value":1},{"timestamp":1711107833361,"path":"taskData__dotDescription","value":"digraph {\n graph [bgcolor=\"transparent\" rankdir=\"LR\" splines=\"polyline\"]\n node [shape=\"plaintext\"] \n 0 [ id=\"0\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
0 2
A
2 0 0
0 2
> tooltip=\"A\"]\n1 [ id=\"1\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
2 13
B
11 0 0
2 13
> tooltip=\"B\"]\n2 [ id=\"2\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
2 7
C
5 35 35
37 42
> tooltip=\"C\"]\n3 [ id=\"3\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
13 16
D
3 0 0
13 16
> tooltip=\"D\"]\n4 [ id=\"4\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
16 29
E
13 0 0
16 29
> tooltip=\"E\"]\n5 [ id=\"5\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
29 30
F
1 0 0
29 30
> tooltip=\"F\"]\n6 [ id=\"6\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
30 39
G
9 3 3
33 42
> tooltip=\"G\"]\n7 [ id=\"7\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
30 33
H
3 9 9
39 42
> tooltip=\"H\"]\n8 [ id=\"8\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
30 42
I
12 0 0
30 42
> tooltip=\"I\"]\n9 [ id=\"9\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
42 43
J
1 0 0
42 43
> tooltip=\"J\"]\n edge [dir=\"forward\" ] \n 1:out -> 3:in []\n 0:out -> 1:in []\n 2:out -> 9:in []\n 0:out -> 2:in []\n 3:out -> 4:in []\n 4:out -> 5:in []\n 6:out -> 9:in []\n 5:out -> 6:in []\n 7:out -> 9:in []\n 5:out -> 7:in []\n 8:out -> 9:in []\n 5:out -> 8:in []\n }"},{"timestamp":1711107833361,"path":"taskData__graph","value":{"nodes":[{"id":0,"parents":[],"childs":["1","2","3"],"ps":"A","d":2,"tb":0,"fb":0,"est":0,"eet":2,"lst":0,"let":2},{"id":1,"parents":["0"],"childs":["3"],"ps":"B","d":11,"tb":0,"fb":0,"est":2,"eet":13,"lst":2,"let":13},{"id":2,"parents":["0"],"childs":["9"],"ps":"C","d":5,"tb":35,"fb":35,"est":2,"eet":7,"lst":37,"let":42},{"id":3,"parents":["1"],"childs":["4"],"ps":"D","d":3,"tb":0,"fb":0,"est":13,"eet":16,"lst":13,"let":16},{"id":4,"parents":["3"],"childs":["5"],"ps":"E","d":13,"tb":0,"fb":0,"est":16,"eet":29,"lst":16,"let":29},{"id":5,"parents":["4"],"childs":["6","7","8","9"],"ps":"F","d":1,"tb":0,"fb":0,"est":29,"eet":30,"lst":29,"let":30},{"id":6,"parents":["5"],"childs":["9"],"ps":"G","d":9,"tb":3,"fb":3,"est":30,"eet":39,"lst":33,"let":42},{"id":7,"parents":["5"],"childs":["9"],"ps":"H","d":3,"tb":9,"fb":9,"est":30,"eet":33,"lst":39,"let":42},{"id":8,"parents":["5"],"childs":["9"],"ps":"I","d":12,"tb":0,"fb":0,"est":30,"eet":42,"lst":30,"let":42},{"id":9,"parents":["2","6","7","8"],"childs":[],"ps":"J","d":1,"tb":0,"fb":0,"est":42,"eet":43,"lst":42,"let":43}],"edges":[{"from":"1","to":"3","label":""},{"from":"0","to":"1","label":""},{"from":"2","to":"9","label":""},{"from":"0","to":"2","label":""},{"from":"3","to":"4","label":""},{"from":"4","to":"5","label":""},{"from":"6","to":"9","label":""},{"from":"5","to":"6","label":""},{"from":"7","to":"9","label":""},{"from":"5","to":"7","label":""},{"from":"8","to":"9","label":""},{"from":"5","to":"8","label":""}]}},{"timestamp":1711107833361,"path":"taskData__table","value":[{"Vorgang":"A","Dauer":2,"Vorgänger":""},{"Vorgang":"B","Dauer":11,"Vorgänger":"A"},{"Vorgang":"C","Dauer":5,"Vorgänger":"A"},{"Vorgang":"D","Dauer":3,"Vorgänger":"B"},{"Vorgang":"E","Dauer":13,"Vorgänger":"D"},{"Vorgang":"F","Dauer":1,"Vorgänger":"E"},{"Vorgang":"G","Dauer":9,"Vorgänger":"F"},{"Vorgang":"H","Dauer":3,"Vorgänger":"F"},{"Vorgang":"I","Dauer":12,"Vorgänger":"F"},{"Vorgang":"J","Dauer":1,"Vorgänger":"C G H I"}]},{"timestamp":1711107833361,"path":"taskData__criticalPath","value":[0,1,3,4,5,8,9]},{"timestamp":1711107833361,"path":"taskData__dotVertexGraph","value":"digraph {\n graph [bgcolor=\"transparent\" rankdir=\"LR\" splines=\"polyline\"]\n node [shape=\"plaintext\"] \n 0 [ id=\"0\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
A
2 GP FP
SAZ SEZ
> tooltip=\"A\"]\n1 [ id=\"1\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
B
11 GP FP
SAZ SEZ
> tooltip=\"B\"]\n2 [ id=\"2\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
C
5 GP FP
SAZ SEZ
> tooltip=\"C\"]\n3 [ id=\"3\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
D
3 GP FP
SAZ SEZ
> tooltip=\"D\"]\n4 [ id=\"4\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
E
13 GP FP
SAZ SEZ
> tooltip=\"E\"]\n5 [ id=\"5\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
F
1 GP FP
SAZ SEZ
> tooltip=\"F\"]\n6 [ id=\"6\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
G
9 GP FP
SAZ SEZ
> tooltip=\"G\"]\n7 [ id=\"7\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
H
3 GP FP
SAZ SEZ
> tooltip=\"H\"]\n8 [ id=\"8\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
I
12 GP FP
SAZ SEZ
> tooltip=\"I\"]\n9 [ id=\"9\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
J
1 GP FP
SAZ SEZ
> tooltip=\"J\"]\n edge [dir=\"forward\" ] \n \n }"},{"timestamp":1711107833362,"path":"taskData__gantt","value":{"matrix":[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]],"events":["A","B","C","D","E","F","G","H","I","J"],"maxTime":43}},{"timestamp":1711107833362,"path":"taskData__dummyGraph","value":"digraph {\n graph [bgcolor=\"transparent\" rankdir=\"LR\" splines=\"polyline\"]\n node [shape=\"plaintext\"] \n 0 [ id=\"0\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
A
2 GP FP
SAZ SEZ
> tooltip=\"A\"]\n1 [ id=\"1\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
B
11 GP FP
SAZ SEZ
> tooltip=\"B\"]\n2 [ id=\"2\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
C
5 GP FP
SAZ SEZ
> tooltip=\"C\"]\n3 [ id=\"3\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
D
3 GP FP
SAZ SEZ
> tooltip=\"D\"]\n4 [ id=\"4\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
E
13 GP FP
SAZ SEZ
> tooltip=\"E\"]\n5 [ id=\"5\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
F
1 GP FP
SAZ SEZ
> tooltip=\"F\"]\n6 [ id=\"6\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
G
9 GP FP
SAZ SEZ
> tooltip=\"G\"]\n7 [ id=\"7\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
H
3 GP FP
SAZ SEZ
> tooltip=\"H\"]\n8 [ id=\"8\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
I
12 GP FP
SAZ SEZ
> tooltip=\"I\"]\n9 [ id=\"9\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
J
1 GP FP
SAZ SEZ
> tooltip=\"J\"]\n edge [dir=\"forward\" ] \n 1:out -> 3:in []\n 0:out -> 1:in []\n 2:out -> 9:in []\n 0:out -> 2:in []\n 3:out -> 4:in []\n 4:out -> 5:in []\n 6:out -> 9:in []\n 5:out -> 6:in []\n 7:out -> 9:in []\n 5:out -> 7:in []\n 8:out -> 9:in []\n 5:out -> 8:in []\n }"},{"timestamp":1711107833362,"path":"nodes__0__components__0__isValid","value":true},{"timestamp":1711107833363,"path":"nodes__0__components__1__isValid","value":[{"Vorgang":"A","Dauer":2,"Vorgänger":""},{"Vorgang":"B","Dauer":11,"Vorgänger":"A"},{"Vorgang":"C","Dauer":5,"Vorgänger":"A"},{"Vorgang":"D","Dauer":3,"Vorgänger":"B"},{"Vorgang":"E","Dauer":13,"Vorgänger":"D"},{"Vorgang":"F","Dauer":1,"Vorgänger":"E"},{"Vorgang":"G","Dauer":9,"Vorgänger":"F"},{"Vorgang":"H","Dauer":3,"Vorgänger":"F"},{"Vorgang":"I","Dauer":12,"Vorgänger":"F"},{"Vorgang":"J","Dauer":1,"Vorgänger":"C G H I"}]},{"timestamp":1711107833414,"path":"nodes__0__isValid","value":true},{"timestamp":1711107834735,"path":"previousNode","value":0},{"timestamp":1711107834736,"path":"currentNode","value":"1"},{"timestamp":1711107836663,"path":"previousNode","value":"1"},{"timestamp":1711107836663,"path":"currentNode","value":"2"},{"timestamp":1711107836663,"path":"nodes__1__chosenPath","value":"Metra-Potential-Methode (MPM)"},{"timestamp":1711107836671,"path":"nodes__2__components__0__nestedComponents__DOTGraph__isValid","value":true},{"timestamp":1711107836815,"path":"nodes__2__isValid","value":false},{"timestamp":1711107839407,"path":"taskData__dotVertexGraph","value":"digraph {\n graph [bgcolor=\"transparent\" rankdir=\"LR\" splines=\"polyline\"]\n node [shape=\"plaintext\"] \n 0 [ id=\"0\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
A
2 GP FP
SAZ SEZ
> tooltip=\"A\"]\n1 [ id=\"1\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
B
11 GP FP
SAZ SEZ
> tooltip=\"B\"]\n2 [ id=\"2\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
C
5 GP FP
SAZ SEZ
> tooltip=\"C\"]\n3 [ id=\"3\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
D
3 GP FP
SAZ SEZ
> tooltip=\"D\"]\n4 [ id=\"4\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
E
13 GP FP
SAZ SEZ
> tooltip=\"E\"]\n5 [ id=\"5\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
F
1 GP FP
SAZ SEZ
> tooltip=\"F\"]\n6 [ id=\"6\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
G
9 GP FP
SAZ SEZ
> tooltip=\"G\"]\n7 [ id=\"7\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
H
3 GP FP
SAZ SEZ
> tooltip=\"H\"]\n8 [ id=\"8\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
I
12 GP FP
SAZ SEZ
> tooltip=\"I\"]\n9 [ id=\"9\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
J
1 GP FP
SAZ SEZ
> tooltip=\"J\"]\n edge [dir=\"forward\" ] \n \n 4:out -> 5:in [] \n }"},{"timestamp":1711107840531,"path":"taskData__dotVertexGraph","value":"digraph {\n graph [bgcolor=\"transparent\" rankdir=\"LR\" splines=\"polyline\"]\n node [shape=\"plaintext\"] \n 0 [ id=\"0\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
A
2 GP FP
SAZ SEZ
> tooltip=\"A\"]\n1 [ id=\"1\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
B
11 GP FP
SAZ SEZ
> tooltip=\"B\"]\n2 [ id=\"2\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
C
5 GP FP
SAZ SEZ
> tooltip=\"C\"]\n3 [ id=\"3\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
D
3 GP FP
SAZ SEZ
> tooltip=\"D\"]\n4 [ id=\"4\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
E
13 GP FP
SAZ SEZ
> tooltip=\"E\"]\n5 [ id=\"5\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
F
1 GP FP
SAZ SEZ
> tooltip=\"F\"]\n6 [ id=\"6\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
G
9 GP FP
SAZ SEZ
> tooltip=\"G\"]\n7 [ id=\"7\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
H
3 GP FP
SAZ SEZ
> tooltip=\"H\"]\n8 [ id=\"8\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
I
12 GP FP
SAZ SEZ
> tooltip=\"I\"]\n9 [ id=\"9\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
J
1 GP FP
SAZ SEZ
> tooltip=\"J\"]\n edge [dir=\"forward\" ] \n \n 4:out -> 5:in [] \n 7:out -> 5:in [] \n }"},{"timestamp":1711107841800,"path":"taskData__dotVertexGraph","value":"digraph {\n graph [bgcolor=\"transparent\" rankdir=\"LR\" splines=\"polyline\"]\n node [shape=\"plaintext\"] \n 0 [ id=\"0\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
A
2 GP FP
SAZ SEZ
> tooltip=\"A\"]\n1 [ id=\"1\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
B
11 GP FP
SAZ SEZ
> tooltip=\"B\"]\n2 [ id=\"2\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
C
5 GP FP
SAZ SEZ
> tooltip=\"C\"]\n3 [ id=\"3\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
D
3 GP FP
SAZ SEZ
> tooltip=\"D\"]\n4 [ id=\"4\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
E
13 GP FP
SAZ SEZ
> tooltip=\"E\"]\n5 [ id=\"5\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
F
1 GP FP
SAZ SEZ
> tooltip=\"F\"]\n6 [ id=\"6\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
G
9 GP FP
SAZ SEZ
> tooltip=\"G\"]\n7 [ id=\"7\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
H
3 GP FP
SAZ SEZ
> tooltip=\"H\"]\n8 [ id=\"8\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
I
12 GP FP
SAZ SEZ
> tooltip=\"I\"]\n9 [ id=\"9\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
J
1 GP FP
SAZ SEZ
> tooltip=\"J\"]\n edge [dir=\"forward\" ] \n \n 4:out -> 5:in [] \n 7:out -> 5:in [] \n 3:out -> 5:in [] \n }"},{"timestamp":1711107843074,"path":"taskData__dotVertexGraph","value":"digraph {\n graph [bgcolor=\"transparent\" rankdir=\"LR\" splines=\"polyline\"]\n node [shape=\"plaintext\"] \n 0 [ id=\"0\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
A
2 GP FP
SAZ SEZ
> tooltip=\"A\"]\n1 [ id=\"1\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
B
11 GP FP
SAZ SEZ
> tooltip=\"B\"]\n2 [ id=\"2\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
C
5 GP FP
SAZ SEZ
> tooltip=\"C\"]\n3 [ id=\"3\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
D
3 GP FP
SAZ SEZ
> tooltip=\"D\"]\n4 [ id=\"4\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
E
13 GP FP
SAZ SEZ
> tooltip=\"E\"]\n5 [ id=\"5\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
F
1 GP FP
SAZ SEZ
> tooltip=\"F\"]\n6 [ id=\"6\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
G
9 GP FP
SAZ SEZ
> tooltip=\"G\"]\n7 [ id=\"7\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
H
3 GP FP
SAZ SEZ
> tooltip=\"H\"]\n8 [ id=\"8\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
I
12 GP FP
SAZ SEZ
> tooltip=\"I\"]\n9 [ id=\"9\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
J
1 GP FP
SAZ SEZ
> tooltip=\"J\"]\n edge [dir=\"forward\" ] \n \n 4:out -> 5:in [] \n 7:out -> 5:in [] \n 3:out -> 5:in [] \n 4:out -> 6:in [] \n }"},{"timestamp":1711107844931,"path":"taskData__dotVertexGraph","value":"digraph {\n graph [bgcolor=\"transparent\" rankdir=\"LR\" splines=\"polyline\"]\n node [shape=\"plaintext\"] \n 0 [ id=\"0\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
A
2 GP FP
SAZ SEZ
> tooltip=\"A\"]\n1 [ id=\"1\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
B
11 GP FP
SAZ SEZ
> tooltip=\"B\"]\n2 [ id=\"2\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
C
5 GP FP
SAZ SEZ
> tooltip=\"C\"]\n3 [ id=\"3\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
D
3 GP FP
SAZ SEZ
> tooltip=\"D\"]\n4 [ id=\"4\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
E
13 GP FP
SAZ SEZ
> tooltip=\"E\"]\n5 [ id=\"5\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
F
1 GP FP
SAZ SEZ
> tooltip=\"F\"]\n6 [ id=\"6\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
G
9 GP FP
SAZ SEZ
> tooltip=\"G\"]\n7 [ id=\"7\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
H
3 GP FP
SAZ SEZ
> tooltip=\"H\"]\n8 [ id=\"8\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
I
12 GP FP
SAZ SEZ
> tooltip=\"I\"]\n9 [ id=\"9\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
J
1 GP FP
SAZ SEZ
> tooltip=\"J\"]\n edge [dir=\"forward\" ] \n \n 4:out -> 5:in [] \n 7:out -> 5:in [] \n 3:out -> 5:in [] \n 4:out -> 6:in [] \n 6:out -> 2:in [] \n }"},{"timestamp":1711107846951,"path":"taskData__dotVertexGraph","value":"digraph {\n graph [bgcolor=\"transparent\" rankdir=\"LR\" splines=\"polyline\"]\n node [shape=\"plaintext\"] \n 0 [ id=\"0\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
A
2 GP FP
SAZ SEZ
> tooltip=\"A\"]\n1 [ id=\"1\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
B
11 GP FP
SAZ SEZ
> tooltip=\"B\"]\n2 [ id=\"2\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
C
5 GP FP
SAZ SEZ
> tooltip=\"C\"]\n3 [ id=\"3\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
D
3 GP FP
SAZ SEZ
> tooltip=\"D\"]\n4 [ id=\"4\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
E
13 GP FP
SAZ SEZ
> tooltip=\"E\"]\n5 [ id=\"5\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
F
1 GP FP
SAZ SEZ
> tooltip=\"F\"]\n6 [ id=\"6\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
G
9 GP FP
SAZ SEZ
> tooltip=\"G\"]\n7 [ id=\"7\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
H
3 GP FP
SAZ SEZ
> tooltip=\"H\"]\n8 [ id=\"8\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
I
12 GP FP
SAZ SEZ
> tooltip=\"I\"]\n9 [ id=\"9\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
J
1 GP FP
SAZ SEZ
> tooltip=\"J\"]\n edge [dir=\"forward\" ] \n \n 4:out -> 5:in [] \n 7:out -> 5:in [] \n 3:out -> 5:in [] \n 4:out -> 6:in [] \n 6:out -> 2:in [] \n 1:out -> 2:in [] \n }"},{"timestamp":1711107848402,"path":"taskData__dotVertexGraph","value":"digraph {\n graph [bgcolor=\"transparent\" rankdir=\"LR\" splines=\"polyline\"]\n node [shape=\"plaintext\"] \n 0 [ id=\"0\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
A
2 GP FP
SAZ SEZ
> tooltip=\"A\"]\n1 [ id=\"1\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
B
11 GP FP
SAZ SEZ
> tooltip=\"B\"]\n2 [ id=\"2\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
C
5 GP FP
SAZ SEZ
> tooltip=\"C\"]\n3 [ id=\"3\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
D
3 GP FP
SAZ SEZ
> tooltip=\"D\"]\n4 [ id=\"4\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
E
13 GP FP
SAZ SEZ
> tooltip=\"E\"]\n5 [ id=\"5\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
F
1 GP FP
SAZ SEZ
> tooltip=\"F\"]\n6 [ id=\"6\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
G
9 GP FP
SAZ SEZ
> tooltip=\"G\"]\n7 [ id=\"7\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
H
3 GP FP
SAZ SEZ
> tooltip=\"H\"]\n8 [ id=\"8\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
I
12 GP FP
SAZ SEZ
> tooltip=\"I\"]\n9 [ id=\"9\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
J
1 GP FP
SAZ SEZ
> tooltip=\"J\"]\n edge [dir=\"forward\" ] \n \n 4:out -> 5:in [] \n 7:out -> 5:in [] \n 3:out -> 5:in [] \n 4:out -> 6:in [] \n 6:out -> 2:in [] \n 1:out -> 2:in [] \n 2:out -> 0:in [] \n }"},{"timestamp":1711107849582,"path":"taskData__dotVertexGraph","value":"digraph {\n graph [bgcolor=\"transparent\" rankdir=\"LR\" splines=\"polyline\"]\n node [shape=\"plaintext\"] \n 0 [ id=\"0\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
A
2 GP FP
SAZ SEZ
> tooltip=\"A\"]\n1 [ id=\"1\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
B
11 GP FP
SAZ SEZ
> tooltip=\"B\"]\n2 [ id=\"2\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
C
5 GP FP
SAZ SEZ
> tooltip=\"C\"]\n3 [ id=\"3\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
D
3 GP FP
SAZ SEZ
> tooltip=\"D\"]\n4 [ id=\"4\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
E
13 GP FP
SAZ SEZ
> tooltip=\"E\"]\n5 [ id=\"5\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
F
1 GP FP
SAZ SEZ
> tooltip=\"F\"]\n6 [ id=\"6\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
G
9 GP FP
SAZ SEZ
> tooltip=\"G\"]\n7 [ id=\"7\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
H
3 GP FP
SAZ SEZ
> tooltip=\"H\"]\n8 [ id=\"8\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
I
12 GP FP
SAZ SEZ
> tooltip=\"I\"]\n9 [ id=\"9\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
J
1 GP FP
SAZ SEZ
> tooltip=\"J\"]\n edge [dir=\"forward\" ] \n \n 4:out -> 5:in [] \n 7:out -> 5:in [] \n 3:out -> 5:in [] \n 4:out -> 6:in [] \n 6:out -> 2:in [] \n 1:out -> 2:in [] \n 2:out -> 0:in [] \n 0:out -> 8:in [] \n }"},{"timestamp":1711107852338,"path":"taskData__dotVertexGraph","value":"digraph {\n graph [bgcolor=\"transparent\" rankdir=\"LR\" splines=\"polyline\"]\n node [shape=\"plaintext\"] \n 0 [ id=\"0\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
A
2 GP FP
SAZ SEZ
> tooltip=\"A\"]\n1 [ id=\"1\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
B
11 GP FP
SAZ SEZ
> tooltip=\"B\"]\n2 [ id=\"2\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
C
5 GP FP
SAZ SEZ
> tooltip=\"C\"]\n3 [ id=\"3\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
D
3 GP FP
SAZ SEZ
> tooltip=\"D\"]\n4 [ id=\"4\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
E
13 GP FP
SAZ SEZ
> tooltip=\"E\"]\n5 [ id=\"5\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
F
1 GP FP
SAZ SEZ
> tooltip=\"F\"]\n6 [ id=\"6\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
G
9 GP FP
SAZ SEZ
> tooltip=\"G\"]\n7 [ id=\"7\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
H
3 GP FP
SAZ SEZ
> tooltip=\"H\"]\n8 [ id=\"8\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
I
12 GP FP
SAZ SEZ
> tooltip=\"I\"]\n9 [ id=\"9\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
J
1 GP FP
SAZ SEZ
> tooltip=\"J\"]\n edge [dir=\"forward\" ] \n \n 4:out -> 5:in [] \n 7:out -> 5:in [] \n 3:out -> 5:in [] \n 4:out -> 6:in [] \n 6:out -> 2:in [] \n 1:out -> 2:in [] \n 2:out -> 0:in [] \n 0:out -> 8:in [] \n 0:out -> 9:in [] \n }"},{"timestamp":1711107855042,"path":"taskData__dotVertexGraph","value":"digraph {\n graph [bgcolor=\"transparent\" rankdir=\"LR\" splines=\"polyline\"]\n node [shape=\"plaintext\"] \n 0 [ id=\"0\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
A
2 GP FP
SAZ SEZ
> tooltip=\"A\"]\n1 [ id=\"1\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
B
11 GP FP
SAZ SEZ
> tooltip=\"B\"]\n2 [ id=\"2\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
C
5 GP FP
SAZ SEZ
> tooltip=\"C\"]\n3 [ id=\"3\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
D
3 GP FP
SAZ SEZ
> tooltip=\"D\"]\n4 [ id=\"4\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
E
13 GP FP
SAZ SEZ
> tooltip=\"E\"]\n5 [ id=\"5\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
F
1 GP FP
SAZ SEZ
> tooltip=\"F\"]\n6 [ id=\"6\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
G
9 GP FP
SAZ SEZ
> tooltip=\"G\"]\n7 [ id=\"7\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
H
3 GP FP
SAZ SEZ
> tooltip=\"H\"]\n8 [ id=\"8\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
I
12 GP FP
SAZ SEZ
> tooltip=\"I\"]\n9 [ id=\"9\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
J
1 GP FP
SAZ SEZ
> tooltip=\"J\"]\n edge [dir=\"forward\" ] \n \n 4:out -> 5:in [] \n 7:out -> 5:in [] \n 3:out -> 5:in [] \n 4:out -> 6:in [] \n 6:out -> 2:in [] \n 1:out -> 2:in [] \n 2:out -> 0:in [] \n 0:out -> 8:in [] \n 0:out -> 9:in [] \n 2:out -> 8:in [] \n }"},{"timestamp":1711107857272,"path":"taskData__dotVertexGraph","value":"digraph {\n graph [bgcolor=\"transparent\" rankdir=\"LR\" splines=\"polyline\"]\n node [shape=\"plaintext\"] \n 0 [ id=\"0\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
A
2 GP FP
SAZ SEZ
> tooltip=\"A\"]\n1 [ id=\"1\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
B
11 GP FP
SAZ SEZ
> tooltip=\"B\"]\n2 [ id=\"2\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
C
5 GP FP
SAZ SEZ
> tooltip=\"C\"]\n3 [ id=\"3\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
D
3 GP FP
SAZ SEZ
> tooltip=\"D\"]\n4 [ id=\"4\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
E
13 GP FP
SAZ SEZ
> tooltip=\"E\"]\n5 [ id=\"5\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
F
1 GP FP
SAZ SEZ
> tooltip=\"F\"]\n6 [ id=\"6\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
G
9 GP FP
SAZ SEZ
> tooltip=\"G\"]\n7 [ id=\"7\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
H
3 GP FP
SAZ SEZ
> tooltip=\"H\"]\n8 [ id=\"8\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
I
12 GP FP
SAZ SEZ
> tooltip=\"I\"]\n9 [ id=\"9\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
J
1 GP FP
SAZ SEZ
> tooltip=\"J\"]\n edge [dir=\"forward\" ] \n \n 4:out -> 5:in [] \n 7:out -> 5:in [] \n 3:out -> 5:in [] \n 4:out -> 6:in [] \n 6:out -> 2:in [] \n 1:out -> 2:in [] \n 2:out -> 0:in [] \n 0:out -> 8:in [] \n 0:out -> 9:in [] \n 2:out -> 8:in [] \n 8:out -> 9:in [] \n }"},{"timestamp":1711107860630,"path":"taskData__dotVertexGraph","value":"digraph {\n graph [bgcolor=\"transparent\" rankdir=\"LR\" splines=\"polyline\"]\n node [shape=\"plaintext\"] \n 0 [ id=\"0\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
A
2 GP FP
SAZ SEZ
> tooltip=\"A\"]\n1 [ id=\"1\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
B
11 GP FP
SAZ SEZ
> tooltip=\"B\"]\n2 [ id=\"2\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
C
5 GP FP
SAZ SEZ
> tooltip=\"C\"]\n3 [ id=\"3\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
D
3 GP FP
SAZ SEZ
> tooltip=\"D\"]\n4 [ id=\"4\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
E
13 GP FP
SAZ SEZ
> tooltip=\"E\"]\n5 [ id=\"5\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
F
1 GP FP
SAZ SEZ
> tooltip=\"F\"]\n6 [ id=\"6\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
G
9 GP FP
SAZ SEZ
> tooltip=\"G\"]\n7 [ id=\"7\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
H
3 GP FP
SAZ SEZ
> tooltip=\"H\"]\n8 [ id=\"8\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
I
12 GP FP
SAZ SEZ
> tooltip=\"I\"]\n9 [ id=\"9\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
J
1 GP FP
SAZ SEZ
> tooltip=\"J\"]\n edge [dir=\"forward\" ] \n \n 4:out -> 5:in [] \n 7:out -> 5:in [] \n 3:out -> 5:in [] \n 4:out -> 6:in [] \n 6:out -> 2:in [] \n 1:out -> 2:in [] \n 2:out -> 0:in [] \n 0:out -> 8:in [] \n 0:out -> 9:in [] \n 2:out -> 8:in [] \n 8:out -> 9:in [] \n 3:out -> 7:in [] \n }"},{"timestamp":1711107862771,"path":"taskData__dotVertexGraph","value":"digraph {\n graph [bgcolor=\"transparent\" rankdir=\"LR\" splines=\"polyline\"]\n node [shape=\"plaintext\"] \n 0 [ id=\"0\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
A
2 GP FP
SAZ SEZ
> tooltip=\"A\"]\n1 [ id=\"1\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
B
11 GP FP
SAZ SEZ
> tooltip=\"B\"]\n2 [ id=\"2\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
C
5 GP FP
SAZ SEZ
> tooltip=\"C\"]\n3 [ id=\"3\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
D
3 GP FP
SAZ SEZ
> tooltip=\"D\"]\n4 [ id=\"4\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
E
13 GP FP
SAZ SEZ
> tooltip=\"E\"]\n5 [ id=\"5\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
F
1 GP FP
SAZ SEZ
> tooltip=\"F\"]\n6 [ id=\"6\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
G
9 GP FP
SAZ SEZ
> tooltip=\"G\"]\n7 [ id=\"7\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
H
3 GP FP
SAZ SEZ
> tooltip=\"H\"]\n8 [ id=\"8\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
I
12 GP FP
SAZ SEZ
> tooltip=\"I\"]\n9 [ id=\"9\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
J
1 GP FP
SAZ SEZ
> tooltip=\"J\"]\n edge [dir=\"forward\" ] \n \n 4:out -> 5:in [] \n 7:out -> 5:in [] \n 3:out -> 5:in [] \n 4:out -> 6:in [] \n 6:out -> 2:in [] \n 1:out -> 2:in [] \n 2:out -> 0:in [] \n 0:out -> 8:in [] \n 0:out -> 9:in [] \n 2:out -> 8:in [] \n 8:out -> 9:in [] \n 3:out -> 7:in [] \n 7:out -> 1:in [] \n }"},{"timestamp":1711107864128,"path":"taskData__dotVertexGraph","value":"digraph {\n graph [bgcolor=\"transparent\" rankdir=\"LR\" splines=\"polyline\"]\n node [shape=\"plaintext\"] \n 0 [ id=\"0\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
A
2 GP FP
SAZ SEZ
> tooltip=\"A\"]\n1 [ id=\"1\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
B
11 GP FP
SAZ SEZ
> tooltip=\"B\"]\n2 [ id=\"2\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
C
5 GP FP
SAZ SEZ
> tooltip=\"C\"]\n3 [ id=\"3\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
D
3 GP FP
SAZ SEZ
> tooltip=\"D\"]\n4 [ id=\"4\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
E
13 GP FP
SAZ SEZ
> tooltip=\"E\"]\n5 [ id=\"5\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
F
1 GP FP
SAZ SEZ
> tooltip=\"F\"]\n6 [ id=\"6\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
G
9 GP FP
SAZ SEZ
> tooltip=\"G\"]\n7 [ id=\"7\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
H
3 GP FP
SAZ SEZ
> tooltip=\"H\"]\n8 [ id=\"8\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
I
12 GP FP
SAZ SEZ
> tooltip=\"I\"]\n9 [ id=\"9\" label=<\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FAZ FEZ
J
1 GP FP
SAZ SEZ
> tooltip=\"J\"]\n edge [dir=\"forward\" ] \n \n 4:out -> 5:in [] \n 7:out -> 5:in [] \n 3:out -> 5:in [] \n 4:out -> 6:in [] \n 6:out -> 2:in [] \n 1:out -> 2:in [] \n 2:out -> 0:in [] \n 0:out -> 8:in [] \n 0:out -> 9:in [] \n 2:out -> 8:in [] \n 8:out -> 9:in [] \n 3:out -> 7:in [] \n 7:out -> 1:in [] \n 3:out -> 4:in [] \n }"}],"mouse":[{"x":740,"y":362,"timestamp":1711107832124},{"x":868,"y":401,"timestamp":1711107832189},{"x":912,"y":405,"timestamp":1711107832256},{"x":912,"y":400,"timestamp":1711107832373},{"x":925,"y":411,"timestamp":1711107832439},{"x":930,"y":437,"timestamp":1711107832489},{"x":928,"y":446,"timestamp":1711107832539},{"x":928,"y":447,"timestamp":1711107832811},{"x":920,"y":458,"timestamp":1711107832872},{"x":896,"y":484,"timestamp":1711107832922},{"x":801,"y":508,"timestamp":1711107832972},{"x":625,"y":509,"timestamp":1711107833022},{"x":507,"y":491,"timestamp":1711107833072},{"x":478,"y":465,"timestamp":1711107833122},{"x":481,"y":449,"timestamp":1711107833172},{"x":496,"y":445,"timestamp":1711107833222},{"x":498,"y":449,"timestamp":1711107833956},{"x":467,"y":486,"timestamp":1711107834006},{"x":433,"y":584,"timestamp":1711107834056},{"x":374,"y":709,"timestamp":1711107834106},{"x":282,"y":804,"timestamp":1711107834156},{"x":220,"y":846,"timestamp":1711107834206},{"x":220,"y":832,"timestamp":1711107834256},{"x":211,"y":822,"timestamp":1711107834306},{"x":180,"y":827,"timestamp":1711107834356},{"x":119,"y":826,"timestamp":1711107834406},{"x":100,"y":827,"timestamp":1711107834522},{"x":100,"y":832,"timestamp":1711107834572},{"x":100,"y":841,"timestamp":1711107834622},{"x":99,"y":842,"timestamp":1711107834755},{"x":104,"y":841,"timestamp":1711107834872},{"x":155,"y":807,"timestamp":1711107834922},{"x":249,"y":738,"timestamp":1711107834972},{"x":326,"y":669,"timestamp":1711107835022},{"x":366,"y":606,"timestamp":1711107835072},{"x":373,"y":552,"timestamp":1711107835122},{"x":407,"y":509,"timestamp":1711107835172},{"x":428,"y":511,"timestamp":1711107835323},{"x":412,"y":486,"timestamp":1711107835389},{"x":360,"y":452,"timestamp":1711107835439},{"x":344,"y":442,"timestamp":1711107835489},{"x":346,"y":442,"timestamp":1711107835690},{"x":467,"y":494,"timestamp":1711107835740},{"x":927,"y":605,"timestamp":1711107835814},{"x":1243,"y":610,"timestamp":1711107835882},{"x":1358,"y":582,"timestamp":1711107835940},{"x":1346,"y":562,"timestamp":1711107835990},{"x":1258,"y":541,"timestamp":1711107836040},{"x":1190,"y":536,"timestamp":1711107836090},{"x":1162,"y":537,"timestamp":1711107836141},{"x":1160,"y":544,"timestamp":1711107836191},{"x":1171,"y":549,"timestamp":1711107836257},{"x":1225,"y":537,"timestamp":1711107836307},{"x":1347,"y":506,"timestamp":1711107836373},{"x":1439,"y":484,"timestamp":1711107836423},{"x":1507,"y":473,"timestamp":1711107836473},{"x":1503,"y":470,"timestamp":1711107836816},{"x":1346,"y":508,"timestamp":1711107836873},{"x":1014,"y":608,"timestamp":1711107836924},{"x":513,"y":712,"timestamp":1711107836990},{"x":379,"y":704,"timestamp":1711107837040},{"x":379,"y":703,"timestamp":1711107837118},{"x":433,"y":684,"timestamp":1711107837172},{"x":416,"y":634,"timestamp":1711107837226},{"x":255,"y":515,"timestamp":1711107837289},{"x":137,"y":452,"timestamp":1711107837339},{"x":93,"y":442,"timestamp":1711107837389},{"x":96,"y":480,"timestamp":1711107837439},{"x":124,"y":611,"timestamp":1711107837489},{"x":125,"y":767,"timestamp":1711107837539},{"x":102,"y":881,"timestamp":1711107837589},{"x":93,"y":909,"timestamp":1711107837680},{"x":98,"y":864,"timestamp":1711107837739},{"x":101,"y":860,"timestamp":1711107837809},{"x":145,"y":841,"timestamp":1711107837872},{"x":313,"y":786,"timestamp":1711107837922},{"x":567,"y":701,"timestamp":1711107837972},{"x":772,"y":619,"timestamp":1711107838022},{"x":889,"y":574,"timestamp":1711107838072},{"x":902,"y":568,"timestamp":1711107838146},{"x":884,"y":580,"timestamp":1711107838206},{"x":816,"y":596,"timestamp":1711107838256},{"x":794,"y":594,"timestamp":1711107838306},{"x":832,"y":553,"timestamp":1711107838356},{"x":968,"y":449,"timestamp":1711107838406},{"x":1051,"y":363,"timestamp":1711107838456},{"x":1057,"y":344,"timestamp":1711107838524},{"x":998,"y":383,"timestamp":1711107838589},{"x":876,"y":443,"timestamp":1711107838639},{"x":862,"y":493,"timestamp":1711107838689},{"x":940,"y":537,"timestamp":1711107838739},{"x":993,"y":543,"timestamp":1711107838789},{"x":995,"y":536,"timestamp":1711107838839},{"x":987,"y":531,"timestamp":1711107838889},{"x":982,"y":521,"timestamp":1711107838939},{"x":982,"y":510,"timestamp":1711107838989},{"x":993,"y":510,"timestamp":1711107839039},{"x":993,"y":509,"timestamp":1711107839186},{"x":994,"y":482,"timestamp":1711107839239},{"x":1002,"y":445,"timestamp":1711107839289},{"x":1007,"y":437,"timestamp":1711107839523},{"x":1011,"y":420,"timestamp":1711107839573},{"x":1013,"y":381,"timestamp":1711107839638},{"x":1015,"y":371,"timestamp":1711107839689},{"x":1001,"y":368,"timestamp":1711107839744},{"x":988,"y":368,"timestamp":1711107839806},{"x":957,"y":370,"timestamp":1711107839856},{"x":927,"y":374,"timestamp":1711107839906},{"x":921,"y":374,"timestamp":1711107839973},{"x":931,"y":344,"timestamp":1711107840039},{"x":934,"y":329,"timestamp":1711107840089},{"x":938,"y":332,"timestamp":1711107840206},{"x":989,"y":381,"timestamp":1711107840256},{"x":1037,"y":452,"timestamp":1711107840306},{"x":1050,"y":481,"timestamp":1711107840356},{"x":1053,"y":482,"timestamp":1711107840409},{"x":1050,"y":479,"timestamp":1711107840656},{"x":1032,"y":479,"timestamp":1711107840706},{"x":1003,"y":480,"timestamp":1711107840758},{"x":978,"y":485,"timestamp":1711107840824},{"x":963,"y":509,"timestamp":1711107840889},{"x":949,"y":544,"timestamp":1711107840939},{"x":928,"y":569,"timestamp":1711107840989},{"x":915,"y":578,"timestamp":1711107841039},{"x":912,"y":581,"timestamp":1711107841107},{"x":912,"y":580,"timestamp":1711107841253},{"x":931,"y":566,"timestamp":1711107841306},{"x":936,"y":561,"timestamp":1711107841474},{"x":981,"y":534,"timestamp":1711107841539},{"x":1044,"y":494,"timestamp":1711107841589},{"x":1083,"y":465,"timestamp":1711107841639},{"x":1088,"y":452,"timestamp":1711107841689},{"x":1088,"y":452,"timestamp":1711107841907},{"x":1075,"y":480,"timestamp":1711107841973},{"x":1052,"y":509,"timestamp":1711107842034},{"x":1036,"y":520,"timestamp":1711107842089},{"x":1022,"y":526,"timestamp":1711107842139},{"x":1005,"y":528,"timestamp":1711107842189},{"x":992,"y":516,"timestamp":1711107842256},{"x":982,"y":499,"timestamp":1711107842306},{"x":968,"y":487,"timestamp":1711107842356},{"x":959,"y":487,"timestamp":1711107842406},{"x":953,"y":488,"timestamp":1711107842456},{"x":953,"y":488,"timestamp":1711107842617},{"x":966,"y":483,"timestamp":1711107842672},{"x":989,"y":451,"timestamp":1711107842722},{"x":1008,"y":380,"timestamp":1711107842772},{"x":1002,"y":336,"timestamp":1711107842822},{"x":974,"y":322,"timestamp":1711107842872},{"x":951,"y":322,"timestamp":1711107842922},{"x":936,"y":330,"timestamp":1711107842972},{"x":935,"y":332,"timestamp":1711107843189},{"x":951,"y":343,"timestamp":1711107843240},{"x":991,"y":373,"timestamp":1711107843299},{"x":1040,"y":412,"timestamp":1711107843356},{"x":1077,"y":439,"timestamp":1711107843406},{"x":1090,"y":456,"timestamp":1711107843456},{"x":1084,"y":461,"timestamp":1711107843506},{"x":1079,"y":466,"timestamp":1711107843556},{"x":1076,"y":485,"timestamp":1711107843609},{"x":1075,"y":499,"timestamp":1711107843673},{"x":1099,"y":518,"timestamp":1711107843739},{"x":1107,"y":526,"timestamp":1711107843789},{"x":1111,"y":535,"timestamp":1711107843839},{"x":1111,"y":540,"timestamp":1711107843889},{"x":1099,"y":547,"timestamp":1711107843939},{"x":1092,"y":550,"timestamp":1711107843989},{"x":1092,"y":550,"timestamp":1711107844127},{"x":1099,"y":544,"timestamp":1711107844190},{"x":1100,"y":540,"timestamp":1711107844256},{"x":1099,"y":540,"timestamp":1711107844544},{"x":1061,"y":574,"timestamp":1711107844606},{"x":986,"y":622,"timestamp":1711107844656},{"x":936,"y":642,"timestamp":1711107844706},{"x":925,"y":640,"timestamp":1711107844756},{"x":923,"y":625,"timestamp":1711107844806},{"x":927,"y":621,"timestamp":1711107844873},{"x":927,"y":621,"timestamp":1711107844974},{"x":930,"y":621,"timestamp":1711107845073},{"x":954,"y":624,"timestamp":1711107845123},{"x":996,"y":628,"timestamp":1711107845173},{"x":1049,"y":631,"timestamp":1711107845223},{"x":1079,"y":636,"timestamp":1711107845273},{"x":1085,"y":641,"timestamp":1711107845323},{"x":1078,"y":646,"timestamp":1711107845373},{"x":1047,"y":658,"timestamp":1711107845423},{"x":946,"y":687,"timestamp":1711107845489},{"x":868,"y":705,"timestamp":1711107845539},{"x":838,"y":712,"timestamp":1711107845589},{"x":834,"y":709,"timestamp":1711107845656},{"x":832,"y":697,"timestamp":1711107845706},{"x":831,"y":696,"timestamp":1711107845773},{"x":841,"y":696,"timestamp":1711107845839},{"x":874,"y":694,"timestamp":1711107845890},{"x":875,"y":689,"timestamp":1711107845956},{"x":827,"y":687,"timestamp":1711107846006},{"x":803,"y":688,"timestamp":1711107846056},{"x":802,"y":687,"timestamp":1711107846139},{"x":815,"y":686,"timestamp":1711107846189},{"x":944,"y":681,"timestamp":1711107846239},{"x":1113,"y":645,"timestamp":1711107846289},{"x":1195,"y":613,"timestamp":1711107846339},{"x":1192,"y":605,"timestamp":1711107846390},{"x":1165,"y":605,"timestamp":1711107846456},{"x":1157,"y":604,"timestamp":1711107846769},{"x":1178,"y":590,"timestamp":1711107846823},{"x":1189,"y":578,"timestamp":1711107846873},{"x":1188,"y":581,"timestamp":1711107847027},{"x":1152,"y":622,"timestamp":1711107847086},{"x":1071,"y":683,"timestamp":1711107847139},{"x":1047,"y":689,"timestamp":1711107847290},{"x":1040,"y":689,"timestamp":1711107847356},{"x":1028,"y":702,"timestamp":1711107847406},{"x":1033,"y":705,"timestamp":1711107847456},{"x":1131,"y":669,"timestamp":1711107847506},{"x":1241,"y":601,"timestamp":1711107847556},{"x":1281,"y":548,"timestamp":1711107847606},{"x":1270,"y":537,"timestamp":1711107847656},{"x":1249,"y":541,"timestamp":1711107847706},{"x":1236,"y":544,"timestamp":1711107847756},{"x":1235,"y":544,"timestamp":1711107847873},{"x":1210,"y":567,"timestamp":1711107847939},{"x":1072,"y":656,"timestamp":1711107847989},{"x":866,"y":762,"timestamp":1711107848039},{"x":774,"y":802,"timestamp":1711107848089},{"x":752,"y":805,"timestamp":1711107848139},{"x":752,"y":805,"timestamp":1711107848194},{"x":768,"y":785,"timestamp":1711107848256},{"x":796,"y":762,"timestamp":1711107848306},{"x":804,"y":757,"timestamp":1711107848356},{"x":805,"y":756,"timestamp":1711107848442},{"x":822,"y":749,"timestamp":1711107848506},{"x":931,"y":711,"timestamp":1711107848556},{"x":1096,"y":632,"timestamp":1711107848606},{"x":1202,"y":570,"timestamp":1711107848661},{"x":1229,"y":557,"timestamp":1711107848723},{"x":1248,"y":572,"timestamp":1711107848773},{"x":1258,"y":577,"timestamp":1711107848873},{"x":1294,"y":587,"timestamp":1711107848925},{"x":1362,"y":616,"timestamp":1711107848989},{"x":1389,"y":626,"timestamp":1711107849039},{"x":1387,"y":626,"timestamp":1711107849189},{"x":1307,"y":597,"timestamp":1711107849239},{"x":1034,"y":502,"timestamp":1711107849289},{"x":776,"y":411,"timestamp":1711107849339},{"x":669,"y":370,"timestamp":1711107849389},{"x":618,"y":346,"timestamp":1711107849439},{"x":610,"y":340,"timestamp":1711107849623},{"x":662,"y":353,"timestamp":1711107849673},{"x":896,"y":415,"timestamp":1711107849723},{"x":1209,"y":479,"timestamp":1711107849773},{"x":1367,"y":506,"timestamp":1711107849823},{"x":1393,"y":533,"timestamp":1711107849873},{"x":1395,"y":573,"timestamp":1711107849923},{"x":1394,"y":590,"timestamp":1711107849973},{"x":1399,"y":582,"timestamp":1711107850023},{"x":1432,"y":577,"timestamp":1711107850073},{"x":1466,"y":570,"timestamp":1711107850123},{"x":1504,"y":564,"timestamp":1711107850173},{"x":1520,"y":560,"timestamp":1711107850223},{"x":1520,"y":558,"timestamp":1711107850339},{"x":1454,"y":528,"timestamp":1711107850389},{"x":1149,"y":429,"timestamp":1711107850440},{"x":661,"y":285,"timestamp":1711107850506},{"x":527,"y":250,"timestamp":1711107850556},{"x":504,"y":244,"timestamp":1711107850647},{"x":488,"y":257,"timestamp":1711107850706},{"x":482,"y":272,"timestamp":1711107850756},{"x":482,"y":274,"timestamp":1711107850806},{"x":667,"y":354,"timestamp":1711107850856},{"x":1134,"y":557,"timestamp":1711107850906},{"x":1310,"y":604,"timestamp":1711107850956},{"x":1302,"y":596,"timestamp":1711107851006},{"x":1262,"y":584,"timestamp":1711107851056},{"x":1249,"y":568,"timestamp":1711107851106},{"x":1245,"y":560,"timestamp":1711107851156},{"x":1246,"y":560,"timestamp":1711107851456},{"x":1253,"y":562,"timestamp":1711107851506},{"x":1249,"y":562,"timestamp":1711107851573},{"x":1250,"y":562,"timestamp":1711107851624},{"x":1274,"y":562,"timestamp":1711107851689},{"x":1274,"y":561,"timestamp":1711107851739},{"x":1273,"y":560,"timestamp":1711107851833},{"x":1173,"y":513,"timestamp":1711107851889},{"x":894,"y":403,"timestamp":1711107851939},{"x":637,"y":323,"timestamp":1711107851989},{"x":511,"y":288,"timestamp":1711107852039},{"x":477,"y":277,"timestamp":1711107852089},{"x":476,"y":276,"timestamp":1711107852152},{"x":475,"y":273,"timestamp":1711107852206},{"x":474,"y":268,"timestamp":1711107852378},{"x":504,"y":277,"timestamp":1711107852439},{"x":667,"y":332,"timestamp":1711107852489},{"x":944,"y":431,"timestamp":1711107852539},{"x":1138,"y":504,"timestamp":1711107852589},{"x":1151,"y":506,"timestamp":1711107852786},{"x":1232,"y":497,"timestamp":1711107852839},{"x":1395,"y":495,"timestamp":1711107852889},{"x":1499,"y":494,"timestamp":1711107852939},{"x":1520,"y":499,"timestamp":1711107852989},{"x":1536,"y":520,"timestamp":1711107853039},{"x":1517,"y":524,"timestamp":1711107853089},{"x":1444,"y":497,"timestamp":1711107853139},{"x":1407,"y":485,"timestamp":1711107853189},{"x":1403,"y":484,"timestamp":1711107853350},{"x":1390,"y":484,"timestamp":1711107853406},{"x":1328,"y":488,"timestamp":1711107853456},{"x":1186,"y":498,"timestamp":1711107853506},{"x":1077,"y":503,"timestamp":1711107853556},{"x":1057,"y":500,"timestamp":1711107853606},{"x":1052,"y":484,"timestamp":1711107853656},{"x":1047,"y":465,"timestamp":1711107853706},{"x":1046,"y":462,"timestamp":1711107853789},{"x":1046,"y":462,"timestamp":1711107853839},{"x":1047,"y":462,"timestamp":1711107853916},{"x":1181,"y":455,"timestamp":1711107853973},{"x":1485,"y":420,"timestamp":1711107854023},{"x":1722,"y":380,"timestamp":1711107854089},{"x":1718,"y":389,"timestamp":1711107854139},{"x":1665,"y":417,"timestamp":1711107854189},{"x":1594,"y":410,"timestamp":1711107854239},{"x":1547,"y":394,"timestamp":1711107854290},{"x":1529,"y":398,"timestamp":1711107854356},{"x":1528,"y":410,"timestamp":1711107854406},{"x":1542,"y":414,"timestamp":1711107854456},{"x":1557,"y":414,"timestamp":1711107854506},{"x":1562,"y":413,"timestamp":1711107854556},{"x":1568,"y":413,"timestamp":1711107854606},{"x":1571,"y":416,"timestamp":1711107854656},{"x":1574,"y":421,"timestamp":1711107854773},{"x":1574,"y":418,"timestamp":1711107854823},{"x":1582,"y":412,"timestamp":1711107854873},{"x":1592,"y":407,"timestamp":1711107854923},{"x":1592,"y":405,"timestamp":1711107855140},{"x":1583,"y":423,"timestamp":1711107855200},{"x":1562,"y":494,"timestamp":1711107855274},{"x":1540,"y":558,"timestamp":1711107855339},{"x":1535,"y":580,"timestamp":1711107855390},{"x":1535,"y":583,"timestamp":1711107855440},{"x":1548,"y":589,"timestamp":1711107855490},{"x":1582,"y":612,"timestamp":1711107855556},{"x":1605,"y":636,"timestamp":1711107855606},{"x":1627,"y":655,"timestamp":1711107855656},{"x":1626,"y":649,"timestamp":1711107855706},{"x":1619,"y":624,"timestamp":1711107855756},{"x":1617,"y":604,"timestamp":1711107855806},{"x":1604,"y":584,"timestamp":1711107855856},{"x":1596,"y":563,"timestamp":1711107855906},{"x":1598,"y":558,"timestamp":1711107855956},{"x":1598,"y":559,"timestamp":1711107856009},{"x":1597,"y":586,"timestamp":1711107856073},{"x":1581,"y":596,"timestamp":1711107856123},{"x":1571,"y":594,"timestamp":1711107856173},{"x":1568,"y":587,"timestamp":1711107856273},{"x":1567,"y":551,"timestamp":1711107856323},{"x":1574,"y":483,"timestamp":1711107856373},{"x":1588,"y":441,"timestamp":1711107856423},{"x":1587,"y":437,"timestamp":1711107856479},{"x":1582,"y":438,"timestamp":1711107856791},{"x":1596,"y":497,"timestamp":1711107856856},{"x":1586,"y":570,"timestamp":1711107856906},{"x":1570,"y":597,"timestamp":1711107856956},{"x":1565,"y":596,"timestamp":1711107857185},{"x":1565,"y":595,"timestamp":1711107857239},{"x":1565,"y":595,"timestamp":1711107857321},{"x":1566,"y":595,"timestamp":1711107857376},{"x":1582,"y":594,"timestamp":1711107857428},{"x":1637,"y":597,"timestamp":1711107857502},{"x":1651,"y":597,"timestamp":1711107857573},{"x":1645,"y":588,"timestamp":1711107857673},{"x":1607,"y":586,"timestamp":1711107857723},{"x":1525,"y":592,"timestamp":1711107857773},{"x":1436,"y":609,"timestamp":1711107857823},{"x":1352,"y":614,"timestamp":1711107857873},{"x":1333,"y":614,"timestamp":1711107857923},{"x":1333,"y":613,"timestamp":1711107858169},{"x":1318,"y":594,"timestamp":1711107858223},{"x":1319,"y":586,"timestamp":1711107858377},{"x":1401,"y":584,"timestamp":1711107858439},{"x":1423,"y":572,"timestamp":1711107858489},{"x":1421,"y":568,"timestamp":1711107858540},{"x":1411,"y":568,"timestamp":1711107858590},{"x":1389,"y":584,"timestamp":1711107858656},{"x":1337,"y":601,"timestamp":1711107858706},{"x":1260,"y":614,"timestamp":1711107858756},{"x":1165,"y":615,"timestamp":1711107858807},{"x":1073,"y":597,"timestamp":1711107858873},{"x":1073,"y":594,"timestamp":1711107859009},{"x":1154,"y":576,"timestamp":1711107859073},{"x":1096,"y":551,"timestamp":1711107859123},{"x":858,"y":487,"timestamp":1711107859173},{"x":589,"y":423,"timestamp":1711107859223},{"x":462,"y":379,"timestamp":1711107859273},{"x":453,"y":350,"timestamp":1711107859323},{"x":458,"y":325,"timestamp":1711107859373},{"x":445,"y":320,"timestamp":1711107859423},{"x":429,"y":329,"timestamp":1711107859473},{"x":425,"y":375,"timestamp":1711107859523},{"x":439,"y":447,"timestamp":1711107859573},{"x":453,"y":494,"timestamp":1711107859623},{"x":454,"y":507,"timestamp":1711107859673},{"x":448,"y":507,"timestamp":1711107859723},{"x":448,"y":506,"timestamp":1711107859784},{"x":452,"y":462,"timestamp":1711107859839},{"x":457,"y":403,"timestamp":1711107859890},{"x":463,"y":386,"timestamp":1711107859940},{"x":459,"y":386,"timestamp":1711107859990},{"x":451,"y":386,"timestamp":1711107860040},{"x":451,"y":385,"timestamp":1711107860105},{"x":450,"y":374,"timestamp":1711107860156},{"x":450,"y":368,"timestamp":1711107860402},{"x":453,"y":414,"timestamp":1711107860456},{"x":446,"y":474,"timestamp":1711107860506},{"x":442,"y":481,"timestamp":1711107860590},{"x":442,"y":481,"timestamp":1711107860675},{"x":482,"y":480,"timestamp":1711107860740},{"x":629,"y":487,"timestamp":1711107860790},{"x":788,"y":515,"timestamp":1711107860840},{"x":878,"y":559,"timestamp":1711107860890},{"x":913,"y":608,"timestamp":1711107860940},{"x":919,"y":643,"timestamp":1711107860992},{"x":943,"y":679,"timestamp":1711107861056},{"x":954,"y":692,"timestamp":1711107861106},{"x":957,"y":688,"timestamp":1711107861159},{"x":957,"y":687,"timestamp":1711107861346},{"x":923,"y":663,"timestamp":1711107861406},{"x":918,"y":661,"timestamp":1711107861479},{"x":925,"y":636,"timestamp":1711107861539},{"x":973,"y":565,"timestamp":1711107861589},{"x":1028,"y":488,"timestamp":1711107861639},{"x":1034,"y":449,"timestamp":1711107861690},{"x":956,"y":431,"timestamp":1711107861756},{"x":838,"y":434,"timestamp":1711107861806},{"x":724,"y":449,"timestamp":1711107861856},{"x":669,"y":465,"timestamp":1711107861906},{"x":641,"y":478,"timestamp":1711107861956},{"x":610,"y":486,"timestamp":1711107862006},{"x":608,"y":487,"timestamp":1711107862119},{"x":633,"y":488,"timestamp":1711107862173},{"x":639,"y":487,"timestamp":1711107862373},{"x":686,"y":447,"timestamp":1711107862423},{"x":766,"y":388,"timestamp":1711107862473},{"x":802,"y":360,"timestamp":1711107862523},{"x":803,"y":364,"timestamp":1711107862573},{"x":803,"y":386,"timestamp":1711107862623},{"x":801,"y":387,"timestamp":1711107862690},{"x":801,"y":380,"timestamp":1711107862740},{"x":801,"y":380,"timestamp":1711107862814},{"x":799,"y":386,"timestamp":1711107862873},{"x":785,"y":420,"timestamp":1711107862923},{"x":758,"y":488,"timestamp":1711107862973},{"x":722,"y":564,"timestamp":1711107863024},{"x":686,"y":620,"timestamp":1711107863090},{"x":684,"y":628,"timestamp":1711107863173},{"x":719,"y":617,"timestamp":1711107863223},{"x":752,"y":590,"timestamp":1711107863273},{"x":758,"y":574,"timestamp":1711107863323},{"x":733,"y":572,"timestamp":1711107863373},{"x":650,"y":552,"timestamp":1711107863423},{"x":556,"y":502,"timestamp":1711107863473},{"x":480,"y":479,"timestamp":1711107863523},{"x":439,"y":476,"timestamp":1711107863573},{"x":424,"y":466,"timestamp":1711107863623},{"x":434,"y":458,"timestamp":1711107863673},{"x":438,"y":456,"timestamp":1711107863723},{"x":441,"y":456,"timestamp":1711107863823},{"x":453,"y":465,"timestamp":1711107863873},{"x":529,"y":523,"timestamp":1711107863923},{"x":598,"y":574,"timestamp":1711107863973},{"x":613,"y":578,"timestamp":1711107864023},{"x":620,"y":571,"timestamp":1711107864073},{"x":621,"y":571,"timestamp":1711107864171},{"x":621,"y":572,"timestamp":1711107864240},{"x":647,"y":609,"timestamp":1711107864290},{"x":716,"y":686,"timestamp":1711107864354},{"x":795,"y":722,"timestamp":1711107864407},{"x":879,"y":716,"timestamp":1711107864457},{"x":957,"y":699,"timestamp":1711107864523},{"x":960,"y":698,"timestamp":1711107864590},{"x":954,"y":699,"timestamp":1711107864700},{"x":930,"y":692,"timestamp":1711107864756},{"x":883,"y":674,"timestamp":1711107864806},{"x":856,"y":664,"timestamp":1711107864856},{"x":858,"y":661,"timestamp":1711107864944},{"x":903,"y":625,"timestamp":1711107865006},{"x":1096,"y":481,"timestamp":1711107865056},{"x":1320,"y":356,"timestamp":1711107865106},{"x":1387,"y":328,"timestamp":1711107865156},{"x":1325,"y":335,"timestamp":1711107865206},{"x":1143,"y":348,"timestamp":1711107865256},{"x":935,"y":337,"timestamp":1711107865306},{"x":834,"y":325,"timestamp":1711107865356},{"x":814,"y":331,"timestamp":1711107865406},{"x":855,"y":386,"timestamp":1711107865456},{"x":933,"y":471,"timestamp":1711107865506},{"x":1024,"y":540,"timestamp":1711107865556},{"x":1035,"y":543,"timestamp":1711107865678},{"x":1009,"y":525,"timestamp":1711107865739},{"x":918,"y":516,"timestamp":1711107865790},{"x":885,"y":510,"timestamp":1711107865840},{"x":907,"y":496,"timestamp":1711107865890},{"x":940,"y":451,"timestamp":1711107865940},{"x":957,"y":412,"timestamp":1711107865990},{"x":947,"y":396,"timestamp":1711107866040},{"x":903,"y":393,"timestamp":1711107866090},{"x":807,"y":401,"timestamp":1711107866140},{"x":680,"y":419,"timestamp":1711107866190},{"x":502,"y":443,"timestamp":1711107866256},{"x":426,"y":468,"timestamp":1711107866306},{"x":407,"y":515,"timestamp":1711107866356},{"x":460,"y":541,"timestamp":1711107866406},{"x":512,"y":529,"timestamp":1711107866515},{"x":566,"y":512,"timestamp":1711107866573},{"x":609,"y":422,"timestamp":1711107866623},{"x":559,"y":275,"timestamp":1711107866673},{"x":425,"y":152,"timestamp":1711107866723},{"x":299,"y":102,"timestamp":1711107866773},{"x":204,"y":80,"timestamp":1711107866823},{"x":115,"y":66,"timestamp":1711107866873},{"x":39,"y":55,"timestamp":1711107866923},{"x":23,"y":47,"timestamp":1711107866973},{"x":25,"y":47,"timestamp":1711107867107},{"x":37,"y":54,"timestamp":1711107867157},{"x":78,"y":111,"timestamp":1711107867207},{"x":95,"y":189,"timestamp":1711107867257},{"x":76,"y":216,"timestamp":1711107867307},{"x":63,"y":220,"timestamp":1711107867357},{"x":59,"y":208,"timestamp":1711107867407},{"x":59,"y":181,"timestamp":1711107867457},{"x":57,"y":152,"timestamp":1711107867507},{"x":48,"y":142,"timestamp":1711107867557},{"x":40,"y":142,"timestamp":1711107867607}],"panning":[{"x":-5000,"y":-5000,"timestamp":1711107832074},{"x":-5000,"y":-5000,"timestamp":1711107836724}],"zooming":[],"meta":{"task":"Scheduling","completion":0,"date":"2024-03-22T11:44:27.763Z","duration":35553}} \ No newline at end of file diff --git a/src/server/tempReplayStorage/1760793308.json b/src/server/tempReplayStorage/1760793308.json deleted file mode 100644 index 91f377f..0000000 --- a/src/server/tempReplayStorage/1760793308.json +++ /dev/null @@ -1 +0,0 @@ -{"steps":[{"timestamp":1711107892594,"path":"topology","value":[[0,null,null],[1,2,null],[3,4,null],[5,6,null],[7,8,null],[9,null,null],[10,null,null]]},{"timestamp":1711107892594,"path":"edges","value":{"0":[1],"1":[2,6,8],"2":[3],"3":[4],"4":[5],"5":[],"6":[7],"7":[],"8":[]}},{"timestamp":1711107892594,"path":"nodes","value":{"0":{"zoomScale":1,"layouts":{"sm":[{"x":12,"y":5,"w":3,"h":4,"i":0,"static":false},{"x":10,"y":5,"w":2,"h":3,"i":1,"static":false},{"x":12,"y":5,"w":2,"h":5,"i":2,"static":false}],"md":[{"x":0,"y":0,"w":5,"h":6,"i":0,"static":false},{"x":0,"y":5,"w":2,"h":3,"i":1,"static":false},{"x":0,"y":10,"w":2,"h":5,"i":2,"static":false}],"lg":[{"x":32,"y":30,"w":2,"h":2,"i":0,"static":false},{"x":34,"y":30,"w":2,"h":2,"i":1,"static":false}]},"hints":{"active":false,"current":0,"descriptions":["Bestimme anhand der Parameter die Komplexität des zu generierenden Gozintographen.
Je größer der Graph und je mehr Kanten dieser enthält, desto schwieriger wird es diesen im Folgenden zu lösen!

Du kannst beliebig viele Graphen generieren bis du einen gefunden hast der dir gefällt.","Viel Erfolg!

"]},"isValid":false,"components":{"0":{"type":"DOTGraph","name":"Gozintograph","isValid":true,"isCorrect":true,"dependencies":{"dotDescription":"taskData__dotDescription"},"component":{}},"1":{"type":"TaskConfiguration","name":"Konfiguration","isValid":false,"component":{"title":"Parameter Konfiguration","actions":[{"instruction":"generateGraph","type":"fetchData","label":"Generieren!","dependsOn":["nodeAmount","edgeWeightRange","nodeValueRange","edgeDensity"]}],"form":{"nodeAmount":{"isValid":false,"formType":"ValueFormField","label":"Knotenanzahl","type":"number","step":1,"boundaries":{"min":5,"max":30},"description":"Bestimmt die Menge der Knoten","value":10,"validate":true,"presets":{"easy":5,"medium":10,"hard":20}},"edgeWeightRange":{"isValid":false,"formType":"RangeFormField","label":"Kantengewichte","type":"number","description":"Bestimmt den Wertebereich der Kantengewichte","boundaries":{"min":1,"max":200},"step":1,"initial":{"lowerValue":1,"upperValue":10},"presets":{"easy":[2,10],"medium":3,"hard":5}},"nodeValueRange":{"isValid":false,"formType":"RangeFormField","label":"Knotenwerte","type":"number","description":"Bestimmt den Wertebereich der Knotenwerte","boundaries":{"min":1,"max":200},"step":1,"initial":{"lowerValue":1,"upperValue":10},"presets":{"easy":2,"medium":3,"hard":5}},"edgeDensity":{"isValid":false,"formType":"ValueFormField","label":"Kantendichte","type":"number","step":0.01,"boundaries":{"min":0,"max":1},"description":"Bestimmt die Anzahl an Kanten","value":0.3,"validate":true,"presets":{"easy":0.2,"medium":0.3,"hard":0.5}},"seed":{"isValid":false,"formType":"ValueFormField","label":"Seed","type":"text","description":"Setze einen beliebigen Wert um die Generierung deterministisch und reproduzierbar zu machen","value":"","validate":false,"presets":{"easy":"","medium":"","hard":""}}}}}}},"1":{"isValid":true,"chosenPath":"","pathDescriptions":{"2":{"title":"Vazsonyi-Verfahren","image":"/img/tasks/gozintograph/vaszonyi.png","description":"Berechne den Primärbedarfsvektor mithilfe der inversen Direktbedarfsmatrix!"},"6":{"title":"Matrix-Multiplikation","image":"/img/tasks/gozintograph/matmul.png","description":"Berechne den Primärbedarfsvektor mittels Matrixmultiplikation!"},"8":{"title":"Kanten-Zählen","image":"/img/tasks/gozintograph/graphTraversal.png","description":"Berechne den Primärbedarfsvektor mittels Aufsummieren des Produkts der Knotenwerte und Kantengewichte!"}}},"2":{"zoomScale":1,"layouts":{"sm":[{"x":12,"y":5,"w":2,"h":5,"i":2,"static":false}],"md":[{"x":0,"y":10,"w":2,"h":5,"i":2,"static":false}],"lg":[{"x":32,"y":30,"w":2,"h":2,"i":0,"static":false},{"x":34,"y":30,"w":2,"h":2,"i":1,"static":false}]},"hints":{"active":false,"current":0,"descriptions":["Lies zunächst die Direktbedarfsmatrix aus dem Graphen ab. Diese entspricht der Adjazenzmatrix."]},"isValid":false,"isCorrect":false,"components":{"0":{"name":"Direktbedarfsmatrix","type":"Matrix","isValid":false,"isCorrect":false,"dependencies":{"Matrix":{"data":"taskData__adjacencyMatrix"}},"methods":{"fillZeros":{"description":"Ergänze Nullen","impact":0.5},"showSolution":{"description":"Zeige Lösung","impact":0},"copyToClipboard":{"description":"Kopieren","impact":1}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"initialize":{"solution":{"operations":[],"paths":["taskData__adjacencyMatrix"]},"validation":{"operations":[{"name":"getValueInitializedMatrix","args":[{"isValid":false,"isCorrect":false}]}],"paths":["taskData__adjacencyMatrix"]},"user":{"operations":[{"name":"getValueInitializedMatrix","args":[null]}],"paths":["taskData__adjacencyMatrix"]}},"userData":null,"validationData":null,"solutionData":null,"readOnly":false,"rowLabel":"taskData__labelVector","columnLabel":"taskData__labelVector"}},"1":{"type":"DOTGraph","name":"Gozintograph","isValid":true,"dependencies":{"dotDescription":"taskData__dotDescription"},"component":{}}}},"3":{"zoomScale":1,"layouts":{"sm":[{"x":12,"y":5,"w":2,"h":5,"i":2,"static":false}],"md":[{"x":0,"y":10,"w":2,"h":5,"i":2,"static":false}],"lg":[{"x":34,"y":30,"w":2,"h":2,"i":0,"static":false},{"x":32,"y":30,"w":2,"h":2,"i":1,"static":false},{"x":36,"y":30,"w":2,"h":2,"i":2,"static":false}]},"hints":{"active":false,"current":0,"descriptions":["Bilde nun die Differenz aus der Einheitsmatrix und der Adjazenzmatrix."]},"isValid":false,"isCorrect":false,"components":{"0":{"name":"Direktbedarfsmatrix","type":"Matrix","isValid":true,"dependencies":{"Matrix":{"data":"taskData__adjacencyMatrix"}},"methods":{"copyToClipboard":{"description":"Kopieren","impact":1}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"initialize":{"solution":{"operations":[],"paths":["nodes__2__components__0__component__userData"]},"validation":{"operations":[{"name":"getValueInitializedMatrix","args":[{"isValid":true,"isCorrect":false}]}],"paths":["taskData__adjacencyMatrix"]},"user":{"operations":[],"paths":["nodes__2__components__0__component__userData"]}},"userData":null,"validationData":null,"solutionData":null,"readOnly":true,"rowLabel":"taskData__labelVector","columnLabel":"taskData__labelVector"}},"1":{"name":"Einheitsmatrix","type":"Matrix","isValid":true,"dependencies":{"Matrix":{"data":"taskData__adjacencyMatrix"}},"methods":{"copyToClipboard":{"description":"Kopieren","impact":1}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"initialize":{"solution":{"operations":[{"name":"getIdentity","args":[null]}],"paths":["taskData__adjacencyMatrix"]},"validation":{"operations":[{"name":"getValueInitializedMatrix","args":[{"isValid":true,"isCorrect":false}]}],"paths":["taskData__adjacencyMatrix"]},"user":{"operations":[{"name":"getIdentity","args":[null]}],"paths":["taskData__adjacencyMatrix"]}},"userData":null,"validationData":null,"solutionData":null,"readOnly":true,"rowLabel":"taskData__labelVector","columnLabel":"taskData__labelVector"}},"2":{"name":"Ergebnis","type":"Matrix","isValid":false,"isCorrect":false,"dependencies":{"Matrix":{"data":"taskData__adjacencyMatrix"}},"methods":{"fillZeros":{"description":"Ergänze Nullen","impact":0.5},"showSolution":{"description":"Zeige Lösung","impact":0},"copyToClipboard":{"description":"Kopieren","impact":1}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"initialize":{"solution":{"operations":[{"name":"subtract","args":["chain"]}],"paths":["nodes__3__components__1__component__userData","taskData__adjacencyMatrix"]},"validation":{"operations":[{"name":"getValueInitializedMatrix","args":[{"isValid":true,"isCorrect":false}]}],"paths":["taskData__adjacencyMatrix"]},"user":{"operations":[{"name":"subtract","args":["chain"]},{"name":"getValueInitializedMatrix","args":[null]}],"paths":["nodes__3__components__1__component__userData","nodes__3__components__0__component__userData"]}},"userData":null,"validationData":null,"solutionData":null,"readOnly":false,"rowLabel":"taskData__labelVector","columnLabel":"taskData__labelVector"}}}},"4":{"zoomScale":1,"layouts":{"sm":[{"x":12,"y":5,"w":2,"h":5,"i":2,"static":false}],"md":[{"x":0,"y":10,"w":2,"h":5,"i":2,"static":false}],"lg":[{"x":32,"y":30,"w":2,"h":2,"i":0,"static":false},{"x":34,"y":30,"w":2,"h":2,"i":1,"static":false}]},"hints":{"active":false,"current":0,"descriptions":["In diesem Schritt muss das Inverse der zuvor berechneten Matrix gebildet werden."]},"isValid":false,"isCorrect":false,"components":{"0":{"name":"Ergebnis","type":"Matrix","isValid":true,"dependencies":{"Matrix":{"data":"taskData__adjacencyMatrix"}},"methods":{"fillZeros":{"description":"Ergänze Nullen","impact":0.5},"showSolution":{"description":"Zeige Lösung","impact":0},"copyToClipboard":{"description":"Kopieren","impact":1}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"initialize":{"solution":{"operations":[],"paths":["nodes__3__components__2__component__userData"]},"validation":{"operations":[{"name":"getValueInitializedMatrix","args":[{"isValid":true,"isCorrect":false}]}],"paths":["taskData__adjacencyMatrix"]},"user":{"operations":[],"paths":["nodes__3__components__2__component__userData"]}},"userData":null,"validationData":null,"solutionData":null,"readOnly":true,"rowLabel":"taskData__labelVector","columnLabel":"taskData__labelVector"}},"1":{"name":"Inverse Matrix","type":"Matrix","isValid":false,"isCorrect":false,"dependencies":{"Matrix":{"data":"nodes__3__components__2__component__solutionData"}},"methods":{"fillZeros":{"description":"Ergänze Nullen","impact":0.5},"showSolution":{"description":"Zeige Lösung","impact":0},"copyToClipboard":{"description":"Kopieren","impact":1}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"initialize":{"solution":{"operations":[{"name":"getInverse","args":[]}],"paths":["nodes__3__components__2__component__userData"]},"validation":{"operations":[{"name":"getValueInitializedMatrix","args":[{"isValid":false,"isCorrect":false}]}],"paths":["nodes__3__components__2__component__userData"]},"user":{"operations":[{"name":"getInverse","args":[]},{"name":"getValueInitializedMatrix","args":[null]}],"paths":["nodes__3__components__2__component__userData"]}},"userData":null,"validationData":null,"solutionData":null,"readOnly":false,"rowLabel":"taskData__labelVector","columnLabel":"taskData__labelVector"}}}},"5":{"zoomScale":1,"layouts":{"sm":[{"x":12,"y":5,"w":2,"h":5,"i":2,"static":false}],"md":[{"x":0,"y":10,"w":2,"h":5,"i":2,"static":false}],"lg":[{"x":32,"y":31,"w":2,"h":2,"i":0,"static":false},{"x":34,"y":29,"w":1,"h":2,"i":1,"static":false},{"x":34,"y":31,"w":1,"h":2,"i":2,"static":false}]},"hints":{"active":false,"current":0,"descriptions":["Zuletzt wird die Gesamtbedarfsmatrix mit dem Primärbedarfsvektor multipliziert um den Sekundärbedarfsvektor zu bilden."]},"modals":[{"trigger":{"type":"success"},"content":{"header":"Herzlichen Glückwunsch!","body":"Sie haben die Aufgabe erfolgreich gelöst!","footer":{"buttons":[{"type":"close","label":"Zurück","parameters":{}},{"type":"route","label":"Zur Übersicht","parameters":{"route":"TaskOverview"}}]}},"active":false}],"isValid":false,"isCorrect":false,"components":{"0":{"name":"Inverse Matrix","type":"Matrix","isValid":true,"dependencies":{"Matrix":{"data":"nodes__4__components__1__component__solutionData"}},"methods":{"copyToClipboard":{"description":"Kopieren","impact":1}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"initialize":{"solution":{"operations":[],"paths":["nodes__4__components__1__component__userData"]},"validation":{"operations":[{"name":"getValueInitializedMatrix","args":[{"isValid":true,"isCorrect":false}]}],"paths":["nodes__4__components__1__component__userData"]},"user":{"operations":[],"paths":["nodes__4__components__1__component__userData"]}},"userData":null,"validationData":null,"solutionData":null,"readOnly":true,"rowLabel":"taskData__labelVector","columnLabel":"taskData__labelVector"}},"1":{"name":"Primärbedarfsvektor","type":"Matrix","isValid":true,"dependencies":{"Matrix":{"data":"taskData__valueVector","label":"taskData__labelVector"}},"methods":{"fillZeros":{"description":"Ergänze Nullen","impact":0.5},"showSolution":{"description":"Zeige Lösung","impact":0},"copyToClipboard":{"description":"Kopieren","impact":1}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"initialize":{"solution":{"operations":[],"paths":["taskData__valueVector"]},"validation":{"operations":[{"name":"getValueInitializedMatrix","args":[{"isValid":true,"isCorrect":false}]}],"paths":["taskData__valueVector"]},"user":{"operations":[],"paths":["taskData__valueVector"]}},"userData":null,"validationData":null,"solutionData":null,"readOnly":true,"rowLabel":"taskData__labelVector","columnLabel":""}},"2":{"name":"Sekundärbedarfsvektor","type":"Matrix","isValid":false,"isCorrect":false,"dependencies":{"Matrix":{"data":"taskData__valueVector","label":"taskData__labelVector"}},"methods":{"fillZeros":{"description":"Ergänze Nullen","impact":0.5},"showSolution":{"description":"Zeige Lösung","impact":0},"copyToClipboard":{"description":"Kopieren","impact":1}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"initialize":{"solution":{"operations":[{"name":"multiply","args":["chain"]}],"paths":["nodes__5__components__0__component__userData","nodes__5__components__1__component__userData"]},"validation":{"operations":[{"name":"getValueInitializedMatrix","args":[{"isValid":false,"isCorrect":false}]}],"paths":["taskData__valueVector"]},"user":{"operations":[{"name":"getValueInitializedMatrix","args":[null]}],"paths":["taskData__valueVector"]}},"userData":null,"validationData":null,"solutionData":null,"readOnly":false,"rowLabel":"taskData__labelVector","columnLabel":""}}}},"6":{"zoomScale":1,"layouts":{"sm":[{"x":12,"y":5,"w":2,"h":5,"i":2,"static":false}],"md":[{"x":0,"y":10,"w":2,"h":5,"i":2,"static":false}],"lg":[{"x":32,"y":30,"w":2,"h":2,"i":0,"static":false},{"x":34,"y":30,"w":2,"h":2,"i":1,"static":false}]},"hints":{"active":false,"current":0,"descriptions":["Lies zunächst die Direktbedarfsmatrix aus dem Graphen ab. Diese entspricht der Adjazenzmatrix."]},"isValid":false,"isCorrect":false,"components":{"0":{"name":"Direktbedarfsmatrix","type":"Matrix","isValid":false,"isCorrect":false,"dependencies":{"Matrix":{"data":"taskData__adjacencyMatrix"}},"methods":{"fillZeros":{"description":"Ergänze Nullen","impact":0.5},"showSolution":{"description":"Zeige Lösung","impact":0},"copyToClipboard":{"description":"Kopieren","impact":1}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"initialize":{"solution":{"operations":[],"paths":["taskData__adjacencyMatrix"]},"validation":{"operations":[{"name":"getValueInitializedMatrix","args":[{"isValid":false,"isCorrect":false}]}],"paths":["taskData__adjacencyMatrix"]},"user":{"operations":[{"name":"getValueInitializedMatrix","args":[null]}],"paths":["taskData__adjacencyMatrix"]}},"userData":null,"validationData":null,"solutionData":null,"readOnly":false,"rowLabel":"taskData__labelVector","columnLabel":"taskData__labelVector"}},"1":{"type":"DOTGraph","name":"Gozintograph","isValid":true,"dependencies":{"dotDescription":"taskData__dotDescription"},"component":{}}}},"7":{"zoomScale":1,"layouts":{"sm":[{"x":32,"y":30,"w":2,"h":2,"i":0,"static":false},{"x":34,"y":30,"w":2,"h":2,"i":1,"static":false},{"x":36,"y":28,"w":1,"h":2,"i":2,"static":false},{"x":36,"y":30,"w":1,"h":2,"i":3,"static":false}],"md":[{"x":32,"y":30,"w":2,"h":2,"i":0,"static":false},{"x":34,"y":30,"w":2,"h":2,"i":1,"static":false},{"x":36,"y":28,"w":1,"h":2,"i":2,"static":false},{"x":36,"y":30,"w":1,"h":2,"i":3,"static":false}],"lg":[{"x":32,"y":30,"w":2,"h":2,"i":0,"static":false},{"x":34,"y":30,"w":2,"h":2,"i":1,"static":false},{"x":36,"y":28,"w":1,"h":2,"i":2,"static":false},{"x":36,"y":30,"w":1,"h":2,"i":3,"static":false}]},"hints":{"active":false,"current":0,"descriptions":["Multipliziere gegebenfalls die dargestellten Direktbedarfsmatrizen in Reihenfolge auf. Addiere anschließend die n'ten Direktbedarfsmatrizen mit der Einheitsmatrix, um die Gesamtbedarfsmatrix zu erhalten.
Multipliziere diese daraufhin mit dem Primärbedarfsvektor um den Sekundärbedarfsvektor zu erhalten."]},"interjections":[{"method":"matrixSelfMultiplication","dependencies":{"baseMatrix":"nodes__7__components__0","n":"taskData__longestPath","secondaryNeedsVector":"nodes__7__components__3"},"applied":false}],"modals":[{"trigger":{"type":"success"},"content":{"header":"Herzlichen Glückwunsch!","body":"Sie haben die Aufgabe erfolgreich gelöst!","footer":{"buttons":[{"type":"close","label":"Zurück","parameters":{}},{"type":"route","label":"Zur Übersicht","parameters":{"route":"TaskOverview"}}]}},"active":false}],"isValid":false,"isCorrect":false,"components":{"0":{"name":"Direktbedarfsmatrix","type":"Matrix","isValid":true,"dependencies":{"Matrix":{"data":"taskData__adjacencyMatrix"}},"methods":{"copyToClipboard":{"description":"Kopieren","impact":1}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"initialize":{"solution":{"operations":[],"paths":["nodes__6__components__0__component__userData"]},"validation":{"operations":[{"name":"getValueInitializedMatrix","args":[{"isValid":true,"isCorrect":false}]}],"paths":["taskData__adjacencyMatrix"]},"user":{"operations":[],"paths":["nodes__6__components__0__component__userData"]}},"userData":null,"validationData":null,"solutionData":null,"readOnly":true,"rowLabel":"taskData__labelVector","columnLabel":"taskData__labelVector"}},"1":{"name":"Einheitsmatrix","type":"Matrix","isValid":true,"dependencies":{"Matrix":{"data":"taskData__adjacencyMatrix"}},"methods":{"copyToClipboard":{"description":"Kopieren","impact":1}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"initialize":{"solution":{"operations":[{"name":"getIdentity","args":[null]}],"paths":["taskData__adjacencyMatrix"]},"validation":{"operations":[{"name":"getValueInitializedMatrix","args":[{"isValid":true,"isCorrect":false}]}],"paths":["taskData__adjacencyMatrix"]},"user":{"operations":[{"name":"getIdentity","args":[null]}],"paths":["taskData__adjacencyMatrix"]}},"userData":null,"validationData":null,"solutionData":null,"readOnly":true,"rowLabel":"taskData__labelVector","columnLabel":"taskData__labelVector"}},"2":{"name":"Primärbedarfsvektor","type":"Matrix","isValid":true,"dependencies":{"Matrix":{"data":"taskData__valueVector","label":"taskData__labelVector"}},"methods":{"fillZeros":{"description":"Ergänze Nullen","impact":0.5},"showSolution":{"description":"Zeige Lösung","impact":0},"copyToClipboard":{"description":"Kopieren","impact":1}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"initialize":{"solution":{"operations":[],"paths":["taskData__valueVector"]},"validation":{"operations":[{"name":"getValueInitializedMatrix","args":[{"isValid":true,"isCorrect":false}]}],"paths":["taskData__valueVector"]},"user":{"operations":[],"paths":["taskData__valueVector"]}},"userData":null,"validationData":null,"solutionData":null,"readOnly":true,"rowLabel":"taskData__labelVector","columnLabel":""}},"3":{"name":"Sekundärbedarfsvektor","type":"Matrix","isValid":false,"isCorrect":false,"dependencies":{"Matrix":{"data":"taskData__valueVector","label":"taskData__labelVector"}},"methods":{"fillZeros":{"description":"Ergänze Nullen","impact":0.5},"showSolution":{"description":"Zeige Lösung","impact":0},"copyToClipboard":{"description":"Kopieren","impact":1}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"initialize":{"solution":{"operations":[],"paths":["taskData__solution"]},"validation":{"operations":[{"name":"getValueInitializedMatrix","args":[{"isValid":false,"isCorrect":false}]}],"paths":["taskData__solution"]},"user":{"operations":[{"name":"getValueInitializedMatrix","args":[null]}],"paths":["taskData__solution"]}},"userData":null,"validationData":null,"solutionData":null,"readOnly":false,"rowLabel":"taskData__labelVector","columnLabel":""}}}},"8":{"zoomScale":1,"layouts":{"sm":[{"x":12,"y":5,"w":2,"h":5,"i":2,"static":false}],"md":[{"x":0,"y":10,"w":2,"h":5,"i":2,"static":false}],"lg":[{"x":32,"y":30,"w":2,"h":2,"i":0,"static":false},{"x":34,"y":30,"w":2,"h":2,"i":1,"static":false},{"x":36,"y":30,"w":1,"h":2,"i":2,"static":false},{"x":37,"y":30,"w":1,"h":2,"i":3,"static":false},{"x":32,"y":32,"w":4,"h":2,"i":4,"static":false}]},"hints":{"active":false,"current":0,"descriptions":["Finde zunächst alle Pfade des Graphen, indem du die jeweiligen Kanten des Graphen anklickst.
Du hast alle Pfade gefunden, wenn alle Kanten grün sind.","
Bilde nun die Zwischensummen für jeden Knoten, indem du entgegen der Kantenrichtung die Bedarfe mit den Kantengewichten multiplizierst.
Als Gedankenstütze kannst du die Zwischenprodukte innerhalb des Textfelds aufschreiben.
Übertrage zuletzt die errechneten Werte der jeweiligen Knoten in den Sekundärbedarfsvektor."]},"modals":[{"trigger":{"type":"success"},"content":{"header":"Herzlichen Glückwunsch!","body":"Sie haben die Aufgabe erfolgreich gelöst!","footer":{"buttons":[{"type":"close","label":"Zurück","parameters":{}},{"type":"route","label":"Zur Übersicht","parameters":{"route":"TaskOverview"}}]}},"active":false}],"isValid":false,"isCorrect":false,"components":{"0":{"name":"Traversal","type":"VisualGraphTraversal","isValid":true,"dependencies":{"dotDescription":"taskData__dotDescription","VisualGraphTraversal":{"nodes":"taskData__nodes","paths":"taskData__paths","dotDescription":"taskData__dotDescription"}},"component":{"selectedPaths":[],"colorCoding":{"standard":"black","completed":"green","selected":"red","partial":"blue"}}},"1":{"type":"PathDisplay","name":"display","isValid":true,"dependencies":{"PathDisplay":{"selectedPaths":"nodes__8__components__0__component__selectedPaths","nodes":"taskData__nodes"}},"component":{}},"2":{"name":"Primärbedarfsvektor","type":"Matrix","isValid":true,"dependencies":{"Matrix":{"data":"taskData__valueVector","label":"taskData__labelVector"}},"methods":{"fillZeros":{"description":"Ergänze Nullen","impact":0.5},"showSolution":{"description":"Zeige Lösung","impact":0},"copyToClipboard":{"description":"Kopieren","impact":1}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"initialize":{"solution":{"operations":[],"paths":["taskData__valueVector"]},"validation":{"operations":[{"name":"getValueInitializedMatrix","args":[{"isValid":true,"isCorrect":false}]}],"paths":["taskData__valueVector"]},"user":{"operations":[],"paths":["taskData__valueVector"]}},"userData":null,"validationData":null,"solutionData":null,"readOnly":true,"rowLabel":"taskData__labelVector","columnLabel":""}},"3":{"name":"Sekundärbedarfsvektor","type":"Matrix","isValid":false,"isCorrect":false,"dependencies":{"Matrix":{"data":"taskData__valueVector","label":"taskData__labelVector"}},"methods":{"fillZeros":{"description":"Ergänze Nullen","impact":0.5},"showSolution":{"description":"Zeige Lösung","impact":0},"copyToClipboard":{"description":"Kopieren","impact":1}},"contextMenu":{"isOpen":false,"usedMethods":[]},"component":{"initialize":{"solution":{"operations":[],"paths":["taskData__solution"]},"validation":{"operations":[{"name":"getValueInitializedMatrix","args":[{"isValid":false,"isCorrect":false}]}],"paths":["taskData__valueVector"]},"user":{"operations":[{"name":"getValueInitializedMatrix","args":[null]}],"paths":["taskData__valueVector"]}},"userData":null,"validationData":null,"solutionData":null,"readOnly":false,"rowLabel":"taskData__labelVector","columnLabel":""}},"4":{"name":"Rechenhilfe","type":"TextArea","isValid":true,"component":{"value":""}}}}}},{"timestamp":1711107892595,"path":"rootNode","value":0},{"timestamp":1711107892595,"path":"currentNode","value":0},{"timestamp":1711107892595,"path":"taskMode","value":"practice"},{"timestamp":1711107892595,"path":"zoomScale","value":1},{"timestamp":1711107894063,"path":"taskData__dotDescription","value":"digraph {\n graph [bgcolor=\"transparent\" rankdir=\"BT\" splines=\"polyline\" bgcolor=\"transparent\"]\n node [shape=\"circle\" style=\"filled\"] \n 0 [label=\"K0\" tooltip=\"7\"]\n1 [label=\"R0\" tooltip=\"3\"]\n2 [label=\"B0\" tooltip=\"2\"]\n3 [label=\"B1\" tooltip=\"6\"]\n4 [label=\"B2\" tooltip=\"6\"]\n5 [label=\"B3\" tooltip=\"8\"]\n6 [label=\"R1\" tooltip=\"4\"]\n7 [label=\"B4\" tooltip=\"3\"]\n8 [label=\"P0\" tooltip=\"9\"]\n9 [label=\"P1\" tooltip=\"10\"]\n edge [] \n 1 -> 2 [label=\"9\"]\n0 -> 3 [label=\"4\"]\n2 -> 3 [label=\"9\"]\n2 -> 4 [label=\"2\"]\n0 -> 5 [label=\"4\"]\n1 -> 5 [label=\"8\"]\n2 -> 5 [label=\"2\"]\n3 -> 7 [label=\"8\"]\n4 -> 7 [label=\"9\"]\n3 -> 8 [label=\"2\"]\n2 -> 9 [label=\"8\"]\n5 -> 9 [label=\"7\"]\n6 -> 9 [label=\"2\"]\n7 -> 9 [label=\"1\"]\n { rank=max; 8;9 }\n }"},{"timestamp":1711107894078,"path":"taskData__edges","value":[{"between":["1","2"],"weight":"9"},{"between":["0","3"],"weight":"4"},{"between":["2","3"],"weight":"9"},{"between":["2","4"],"weight":"2"},{"between":["0","5"],"weight":"4"},{"between":["1","5"],"weight":"8"},{"between":["2","5"],"weight":"2"},{"between":["3","7"],"weight":"8"},{"between":["4","7"],"weight":"9"},{"between":["3","8"],"weight":"2"},{"between":["2","9"],"weight":"8"},{"between":["5","9"],"weight":"7"},{"between":["6","9"],"weight":"2"},{"between":["7","9"],"weight":"1"}]},{"timestamp":1711107894078,"path":"taskData__nodes","value":[{"id":0,"label":"K0","value":7,"parents":[],"childs":["3","5"]},{"id":1,"label":"R0","value":3,"parents":[],"childs":["2","5"]},{"id":2,"label":"B0","value":2,"parents":["1"],"childs":["3","4","5","9"]},{"id":3,"label":"B1","value":6,"parents":["0","2"],"childs":["7","8"]},{"id":4,"label":"B2","value":6,"parents":["2"],"childs":["7"]},{"id":5,"label":"B3","value":8,"parents":["0","1","2"],"childs":["9"]},{"id":6,"label":"R1","value":4,"parents":[],"childs":["9"]},{"id":7,"label":"B4","value":3,"parents":["3","4"],"childs":["9"]},{"id":8,"label":"P0","value":9,"parents":["3"],"childs":[]},{"id":9,"label":"P1","value":10,"parents":["2","5","6","7"],"childs":[]}]},{"timestamp":1711107894078,"path":"taskData__paths","value":[[{"between":[0,3]},{"between":[3,7]},{"between":[7,9]}],[{"between":[0,3]},{"between":[3,8]}],[{"between":[0,5]},{"between":[5,9]}],[{"between":[1,2]},{"between":[2,3]},{"between":[3,7]},{"between":[7,9]}],[{"between":[1,2]},{"between":[2,3]},{"between":[3,8]}],[{"between":[1,2]},{"between":[2,4]},{"between":[4,7]},{"between":[7,9]}],[{"between":[1,2]},{"between":[2,5]},{"between":[5,9]}],[{"between":[1,2]},{"between":[2,9]}],[{"between":[1,5]},{"between":[5,9]}],[{"between":[6,9]}]]},{"timestamp":1711107894078,"path":"taskData__valueVector","value":[[9,10,2,6,6,8,3,7,3,4]]},{"timestamp":1711107894078,"path":"taskData__labelVector","value":["P0","P1","B0","B1","B2","B3","B4","K0","R0","R1"]},{"timestamp":1711107894078,"path":"taskData__solution","value":[[9,10,1636,128,123,78,13,831,15351,24]]},{"timestamp":1711107894078,"path":"taskData__adjacencyMatrix","value":[[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,8,0,9,2,2,0,0,0,0],[2,0,0,0,0,0,8,0,0,0],[0,0,0,0,0,0,9,0,0,0],[0,7,0,0,0,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,0],[0,0,0,4,0,4,0,0,0,0],[0,0,9,0,0,8,0,0,0,0],[0,2,0,0,0,0,0,0,0,0]]},{"timestamp":1711107894078,"path":"taskData__longestPath","value":4},{"timestamp":1711107894086,"path":"nodes__0__components__1__isValid","value":true},{"timestamp":1711107894138,"path":"nodes__0__isValid","value":true},{"timestamp":1711107894442,"path":"taskData__dotDescription","value":"digraph {\n graph [bgcolor=\"transparent\" rankdir=\"BT\" splines=\"polyline\" bgcolor=\"transparent\"]\n node [shape=\"circle\" style=\"filled\"] \n 0 [label=\"R0\" tooltip=\"7\"]\n1 [label=\"R1\" tooltip=\"7\"]\n2 [label=\"R2\" tooltip=\"10\"]\n3 [label=\"B0\" tooltip=\"5\"]\n4 [label=\"B1\" tooltip=\"3\"]\n5 [label=\"B2\" tooltip=\"6\"]\n6 [label=\"B3\" tooltip=\"4\"]\n7 [label=\"P0\" tooltip=\"1\"]\n8 [label=\"B4\" tooltip=\"7\"]\n9 [label=\"P1\" tooltip=\"4\"]\n edge [] \n 1 -> 3 [label=\"3\"]\n0 -> 4 [label=\"4\"]\n0 -> 5 [label=\"4\"]\n2 -> 5 [label=\"7\"]\n4 -> 5 [label=\"3\"]\n0 -> 6 [label=\"2\"]\n1 -> 6 [label=\"2\"]\n4 -> 6 [label=\"2\"]\n1 -> 7 [label=\"6\"]\n5 -> 7 [label=\"3\"]\n0 -> 8 [label=\"2\"]\n1 -> 8 [label=\"8\"]\n4 -> 8 [label=\"2\"]\n5 -> 8 [label=\"8\"]\n6 -> 8 [label=\"7\"]\n1 -> 9 [label=\"9\"]\n3 -> 9 [label=\"10\"]\n8 -> 9 [label=\"7\"]\n { rank=max; 7;9 }\n }"},{"timestamp":1711107894449,"path":"taskData__edges","value":[{"between":["1","3"],"weight":"3"},{"between":["0","4"],"weight":"4"},{"between":["0","5"],"weight":"4"},{"between":["2","5"],"weight":"7"},{"between":["4","5"],"weight":"3"},{"between":["0","6"],"weight":"2"},{"between":["1","6"],"weight":"2"},{"between":["4","6"],"weight":"2"},{"between":["1","7"],"weight":"6"},{"between":["5","7"],"weight":"3"},{"between":["0","8"],"weight":"2"},{"between":["1","8"],"weight":"8"},{"between":["4","8"],"weight":"2"},{"between":["5","8"],"weight":"8"},{"between":["6","8"],"weight":"7"},{"between":["1","9"],"weight":"9"},{"between":["3","9"],"weight":"10"},{"between":["8","9"],"weight":"7"}]},{"timestamp":1711107894449,"path":"taskData__nodes","value":[{"id":0,"label":"R0","value":7,"parents":[],"childs":["4","5","6","8"]},{"id":1,"label":"R1","value":7,"parents":[],"childs":["3","6","7","8","9"]},{"id":2,"label":"R2","value":10,"parents":[],"childs":["5"]},{"id":3,"label":"B0","value":5,"parents":["1"],"childs":["9"]},{"id":4,"label":"B1","value":3,"parents":["0"],"childs":["5","6","8"]},{"id":5,"label":"B2","value":6,"parents":["0","2","4"],"childs":["7","8"]},{"id":6,"label":"B3","value":4,"parents":["0","1","4"],"childs":["8"]},{"id":7,"label":"P0","value":1,"parents":["1","5"],"childs":[]},{"id":8,"label":"B4","value":7,"parents":["0","1","4","5","6"],"childs":["9"]},{"id":9,"label":"P1","value":4,"parents":["1","3","8"],"childs":[]}]},{"timestamp":1711107894449,"path":"taskData__paths","value":[[{"between":[0,4]},{"between":[4,5]},{"between":[5,7]}],[{"between":[0,4]},{"between":[4,5]},{"between":[5,8]},{"between":[8,9]}],[{"between":[0,4]},{"between":[4,6]},{"between":[6,8]},{"between":[8,9]}],[{"between":[0,4]},{"between":[4,8]},{"between":[8,9]}],[{"between":[0,5]},{"between":[5,7]}],[{"between":[0,5]},{"between":[5,8]},{"between":[8,9]}],[{"between":[0,6]},{"between":[6,8]},{"between":[8,9]}],[{"between":[0,8]},{"between":[8,9]}],[{"between":[1,3]},{"between":[3,9]}],[{"between":[1,6]},{"between":[6,8]},{"between":[8,9]}],[{"between":[1,7]}],[{"between":[1,8]},{"between":[8,9]}],[{"between":[1,9]}],[{"between":[2,5]},{"between":[5,7]}],[{"between":[2,5]},{"between":[5,8]},{"between":[8,9]}]]},{"timestamp":1711107894449,"path":"taskData__valueVector","value":[[1,4,5,3,6,4,7,7,7,10]]},{"timestamp":1711107894449,"path":"taskData__labelVector","value":["P0","P1","B0","B1","B2","B3","B4","R0","R1","R2"]},{"timestamp":1711107894449,"path":"taskData__solution","value":[[1,4,45,1438,289,249,35,7483,962,2033]]},{"timestamp":1711107894450,"path":"taskData__adjacencyMatrix","value":[[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,10,0,0,0,0,0,0,0,0],[0,0,0,0,3,2,2,0,0,0],[3,0,0,0,0,0,8,0,0,0],[0,0,0,0,0,0,7,0,0,0],[0,7,0,0,0,0,0,0,0,0],[0,0,0,4,4,2,2,0,0,0],[6,9,3,0,0,2,8,0,0,0],[0,0,0,0,7,0,0,0,0,0]]},{"timestamp":1711107895516,"path":"previousNode","value":0},{"timestamp":1711107895516,"path":"currentNode","value":"1"},{"timestamp":1711107897920,"path":"previousNode","value":"1"},{"timestamp":1711107897920,"path":"currentNode","value":"6"},{"timestamp":1711107897920,"path":"nodes__1__chosenPath","value":"Matrix-Multiplikation"},{"timestamp":1711107897929,"path":"nodes__6__components__0__component__solutionData","value":[[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,10,0,0,0,0,0,0,0,0],[0,0,0,0,3,2,2,0,0,0],[3,0,0,0,0,0,8,0,0,0],[0,0,0,0,0,0,7,0,0,0],[0,7,0,0,0,0,0,0,0,0],[0,0,0,4,4,2,2,0,0,0],[6,9,3,0,0,2,8,0,0,0],[0,0,0,0,7,0,0,0,0,0]]},{"timestamp":1711107897929,"path":"nodes__6__components__0__component__validationData","value":[[{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false}],[{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false}],[{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false}],[{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false}],[{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false}],[{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false}],[{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false}],[{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false}],[{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false}],[{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false},{"isValid":false,"isCorrect":false}]]},{"timestamp":1711107897929,"path":"nodes__6__components__0__component__userData","value":[[null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null]]},{"timestamp":1711107899225,"path":"nodes__6__components__0__contextMenu__isOpen","value":true},{"timestamp":1711107899933,"path":"nodes__6__components__0__contextMenu__usedMethods","value":["fillZeros"]},{"timestamp":1711107899933,"path":"nodes__6__components__0__component__userData__0__0","value":0},{"timestamp":1711107899933,"path":"nodes__6__components__0__component__userData__0__1","value":0},{"timestamp":1711107899933,"path":"nodes__6__components__0__component__userData__0__2","value":0},{"timestamp":1711107899933,"path":"nodes__6__components__0__component__userData__0__3","value":0},{"timestamp":1711107899933,"path":"nodes__6__components__0__component__userData__0__4","value":0},{"timestamp":1711107899933,"path":"nodes__6__components__0__component__userData__0__5","value":0},{"timestamp":1711107899933,"path":"nodes__6__components__0__component__userData__0__6","value":0},{"timestamp":1711107899933,"path":"nodes__6__components__0__component__userData__0__7","value":0},{"timestamp":1711107899933,"path":"nodes__6__components__0__component__userData__0__8","value":0},{"timestamp":1711107899933,"path":"nodes__6__components__0__component__userData__0__9","value":0},{"timestamp":1711107899933,"path":"nodes__6__components__0__component__userData__1__0","value":0},{"timestamp":1711107899933,"path":"nodes__6__components__0__component__userData__1__1","value":0},{"timestamp":1711107899933,"path":"nodes__6__components__0__component__userData__1__2","value":0},{"timestamp":1711107899933,"path":"nodes__6__components__0__component__userData__1__3","value":0},{"timestamp":1711107899933,"path":"nodes__6__components__0__component__userData__1__4","value":0},{"timestamp":1711107899933,"path":"nodes__6__components__0__component__userData__1__5","value":0},{"timestamp":1711107899933,"path":"nodes__6__components__0__component__userData__1__6","value":0},{"timestamp":1711107899934,"path":"nodes__6__components__0__component__userData__1__7","value":0},{"timestamp":1711107899934,"path":"nodes__6__components__0__component__userData__1__8","value":0},{"timestamp":1711107899934,"path":"nodes__6__components__0__component__userData__1__9","value":0},{"timestamp":1711107899934,"path":"nodes__6__components__0__component__userData__2__0","value":0},{"timestamp":1711107899934,"path":"nodes__6__components__0__component__userData__2__2","value":0},{"timestamp":1711107899934,"path":"nodes__6__components__0__component__userData__2__3","value":0},{"timestamp":1711107899934,"path":"nodes__6__components__0__component__userData__2__4","value":0},{"timestamp":1711107899934,"path":"nodes__6__components__0__component__userData__2__5","value":0},{"timestamp":1711107899934,"path":"nodes__6__components__0__component__userData__2__6","value":0},{"timestamp":1711107899934,"path":"nodes__6__components__0__component__userData__2__7","value":0},{"timestamp":1711107899934,"path":"nodes__6__components__0__component__userData__2__8","value":0},{"timestamp":1711107899934,"path":"nodes__6__components__0__component__userData__2__9","value":0},{"timestamp":1711107899934,"path":"nodes__6__components__0__component__userData__3__0","value":0},{"timestamp":1711107899934,"path":"nodes__6__components__0__component__userData__3__1","value":0},{"timestamp":1711107899934,"path":"nodes__6__components__0__component__userData__3__2","value":0},{"timestamp":1711107899934,"path":"nodes__6__components__0__component__userData__3__3","value":0},{"timestamp":1711107899934,"path":"nodes__6__components__0__component__userData__3__7","value":0},{"timestamp":1711107899934,"path":"nodes__6__components__0__component__userData__3__8","value":0},{"timestamp":1711107899934,"path":"nodes__6__components__0__component__userData__3__9","value":0},{"timestamp":1711107899934,"path":"nodes__6__components__0__component__userData__4__1","value":0},{"timestamp":1711107899934,"path":"nodes__6__components__0__component__userData__4__2","value":0},{"timestamp":1711107899934,"path":"nodes__6__components__0__component__userData__4__3","value":0},{"timestamp":1711107899934,"path":"nodes__6__components__0__component__userData__4__4","value":0},{"timestamp":1711107899934,"path":"nodes__6__components__0__component__userData__4__5","value":0},{"timestamp":1711107899934,"path":"nodes__6__components__0__component__userData__4__7","value":0},{"timestamp":1711107899934,"path":"nodes__6__components__0__component__userData__4__8","value":0},{"timestamp":1711107899934,"path":"nodes__6__components__0__component__userData__4__9","value":0},{"timestamp":1711107899934,"path":"nodes__6__components__0__component__userData__5__0","value":0},{"timestamp":1711107899934,"path":"nodes__6__components__0__component__userData__5__1","value":0},{"timestamp":1711107899934,"path":"nodes__6__components__0__component__userData__5__2","value":0},{"timestamp":1711107899934,"path":"nodes__6__components__0__component__userData__5__3","value":0},{"timestamp":1711107899935,"path":"nodes__6__components__0__component__userData__5__4","value":0},{"timestamp":1711107899935,"path":"nodes__6__components__0__component__userData__5__5","value":0},{"timestamp":1711107899935,"path":"nodes__6__components__0__component__userData__5__7","value":0},{"timestamp":1711107899935,"path":"nodes__6__components__0__component__userData__5__8","value":0},{"timestamp":1711107899935,"path":"nodes__6__components__0__component__userData__5__9","value":0},{"timestamp":1711107899935,"path":"nodes__6__components__0__component__userData__6__0","value":0},{"timestamp":1711107899935,"path":"nodes__6__components__0__component__userData__6__2","value":0},{"timestamp":1711107899935,"path":"nodes__6__components__0__component__userData__6__3","value":0},{"timestamp":1711107899935,"path":"nodes__6__components__0__component__userData__6__4","value":0},{"timestamp":1711107899935,"path":"nodes__6__components__0__component__userData__6__5","value":0},{"timestamp":1711107899935,"path":"nodes__6__components__0__component__userData__6__6","value":0},{"timestamp":1711107899935,"path":"nodes__6__components__0__component__userData__6__7","value":0},{"timestamp":1711107899935,"path":"nodes__6__components__0__component__userData__6__8","value":0},{"timestamp":1711107899935,"path":"nodes__6__components__0__component__userData__6__9","value":0},{"timestamp":1711107899935,"path":"nodes__6__components__0__component__userData__7__0","value":0},{"timestamp":1711107899935,"path":"nodes__6__components__0__component__userData__7__1","value":0},{"timestamp":1711107899935,"path":"nodes__6__components__0__component__userData__7__2","value":0},{"timestamp":1711107899935,"path":"nodes__6__components__0__component__userData__7__7","value":0},{"timestamp":1711107899935,"path":"nodes__6__components__0__component__userData__7__8","value":0},{"timestamp":1711107899935,"path":"nodes__6__components__0__component__userData__7__9","value":0},{"timestamp":1711107899935,"path":"nodes__6__components__0__component__userData__8__3","value":0},{"timestamp":1711107899935,"path":"nodes__6__components__0__component__userData__8__4","value":0},{"timestamp":1711107899935,"path":"nodes__6__components__0__component__userData__8__7","value":0},{"timestamp":1711107899935,"path":"nodes__6__components__0__component__userData__8__8","value":0},{"timestamp":1711107899935,"path":"nodes__6__components__0__component__userData__8__9","value":0},{"timestamp":1711107899935,"path":"nodes__6__components__0__component__userData__9__0","value":0},{"timestamp":1711107899935,"path":"nodes__6__components__0__component__userData__9__1","value":0},{"timestamp":1711107899935,"path":"nodes__6__components__0__component__userData__9__2","value":0},{"timestamp":1711107899936,"path":"nodes__6__components__0__component__userData__9__3","value":0},{"timestamp":1711107899936,"path":"nodes__6__components__0__component__userData__9__5","value":0},{"timestamp":1711107899936,"path":"nodes__6__components__0__component__userData__9__6","value":0},{"timestamp":1711107899936,"path":"nodes__6__components__0__component__userData__9__7","value":0},{"timestamp":1711107899936,"path":"nodes__6__components__0__component__userData__9__8","value":0},{"timestamp":1711107899936,"path":"nodes__6__components__0__component__userData__9__9","value":0},{"timestamp":1711107899937,"path":"nodes__6__components__0__component__validationData__0__0__isCorrect","value":true},{"timestamp":1711107899937,"path":"nodes__6__components__0__component__validationData__0__0__isValid","value":true},{"timestamp":1711107900775,"path":"nodes__6__components__0__contextMenu__isOpen","value":false}],"mouse":[{"x":688,"y":589,"timestamp":1711107893534},{"x":728,"y":615,"timestamp":1711107893591},{"x":825,"y":648,"timestamp":1711107893641},{"x":890,"y":641,"timestamp":1711107893707},{"x":889,"y":635,"timestamp":1711107893758},{"x":865,"y":630,"timestamp":1711107893808},{"x":845,"y":626,"timestamp":1711107893874},{"x":843,"y":625,"timestamp":1711107893958},{"x":842,"y":624,"timestamp":1711107894325},{"x":835,"y":624,"timestamp":1711107894560},{"x":790,"y":628,"timestamp":1711107894624},{"x":709,"y":646,"timestamp":1711107894674},{"x":526,"y":684,"timestamp":1711107894724},{"x":345,"y":722,"timestamp":1711107894774},{"x":232,"y":745,"timestamp":1711107894824},{"x":192,"y":755,"timestamp":1711107894874},{"x":190,"y":765,"timestamp":1711107894924},{"x":188,"y":770,"timestamp":1711107894974},{"x":186,"y":781,"timestamp":1711107895024},{"x":172,"y":802,"timestamp":1711107895074},{"x":151,"y":821,"timestamp":1711107895124},{"x":137,"y":824,"timestamp":1711107895175},{"x":131,"y":825,"timestamp":1711107895274},{"x":115,"y":836,"timestamp":1711107895325},{"x":98,"y":846,"timestamp":1711107895375},{"x":93,"y":846,"timestamp":1711107895541},{"x":96,"y":846,"timestamp":1711107895591},{"x":105,"y":845,"timestamp":1711107895641},{"x":171,"y":832,"timestamp":1711107895691},{"x":422,"y":793,"timestamp":1711107895741},{"x":798,"y":743,"timestamp":1711107895791},{"x":1131,"y":693,"timestamp":1711107895841},{"x":1349,"y":661,"timestamp":1711107895891},{"x":1420,"y":648,"timestamp":1711107895941},{"x":1429,"y":646,"timestamp":1711107895991},{"x":1407,"y":620,"timestamp":1711107896041},{"x":1399,"y":590,"timestamp":1711107896091},{"x":1402,"y":569,"timestamp":1711107896141},{"x":1402,"y":560,"timestamp":1711107896191},{"x":1400,"y":560,"timestamp":1711107896624},{"x":1356,"y":562,"timestamp":1711107896674},{"x":1220,"y":567,"timestamp":1711107896724},{"x":1070,"y":570,"timestamp":1711107896774},{"x":1012,"y":571,"timestamp":1711107896824},{"x":1007,"y":572,"timestamp":1711107896941},{"x":1005,"y":573,"timestamp":1711107897091},{"x":976,"y":597,"timestamp":1711107897142},{"x":913,"y":652,"timestamp":1711107897192},{"x":839,"y":703,"timestamp":1711107897242},{"x":835,"y":707,"timestamp":1711107897375},{"x":931,"y":697,"timestamp":1711107897425},{"x":1131,"y":647,"timestamp":1711107897475},{"x":1332,"y":587,"timestamp":1711107897525},{"x":1502,"y":529,"timestamp":1711107897575},{"x":1597,"y":500,"timestamp":1711107897625},{"x":1664,"y":485,"timestamp":1711107897691},{"x":1675,"y":479,"timestamp":1711107897741},{"x":1675,"y":468,"timestamp":1711107897791},{"x":1673,"y":468,"timestamp":1711107898041},{"x":1627,"y":486,"timestamp":1711107898091},{"x":1473,"y":538,"timestamp":1711107898142},{"x":1211,"y":600,"timestamp":1711107898193},{"x":945,"y":608,"timestamp":1711107898243},{"x":770,"y":570,"timestamp":1711107898307},{"x":759,"y":569,"timestamp":1711107898357},{"x":760,"y":569,"timestamp":1711107898429},{"x":761,"y":569,"timestamp":1711107898490},{"x":714,"y":520,"timestamp":1711107898540},{"x":649,"y":462,"timestamp":1711107898591},{"x":568,"y":423,"timestamp":1711107898641},{"x":549,"y":411,"timestamp":1711107898691},{"x":529,"y":400,"timestamp":1711107898741},{"x":504,"y":375,"timestamp":1711107898791},{"x":452,"y":339,"timestamp":1711107898841},{"x":423,"y":323,"timestamp":1711107898891},{"x":417,"y":321,"timestamp":1711107898968},{"x":405,"y":321,"timestamp":1711107899024},{"x":385,"y":321,"timestamp":1711107899074},{"x":386,"y":323,"timestamp":1711107899308},{"x":418,"y":357,"timestamp":1711107899374},{"x":420,"y":359,"timestamp":1711107899504},{"x":421,"y":359,"timestamp":1711107899602},{"x":429,"y":365,"timestamp":1711107899708},{"x":436,"y":360,"timestamp":1711107899758},{"x":446,"y":351,"timestamp":1711107899824},{"x":446,"y":349,"timestamp":1711107899874},{"x":446,"y":349,"timestamp":1711107899950},{"x":445,"y":349,"timestamp":1711107900045},{"x":443,"y":350,"timestamp":1711107900107},{"x":439,"y":353,"timestamp":1711107900157},{"x":435,"y":365,"timestamp":1711107900208},{"x":458,"y":426,"timestamp":1711107900275},{"x":478,"y":519,"timestamp":1711107900341},{"x":445,"y":571,"timestamp":1711107900391},{"x":386,"y":591,"timestamp":1711107900441},{"x":312,"y":587,"timestamp":1711107900491},{"x":261,"y":576,"timestamp":1711107900541},{"x":252,"y":570,"timestamp":1711107900591},{"x":252,"y":570,"timestamp":1711107901046},{"x":290,"y":574,"timestamp":1711107901107},{"x":308,"y":577,"timestamp":1711107901158},{"x":308,"y":577,"timestamp":1711107901235},{"x":286,"y":566,"timestamp":1711107901291},{"x":280,"y":530,"timestamp":1711107901341},{"x":300,"y":518,"timestamp":1711107901391},{"x":305,"y":520,"timestamp":1711107901524},{"x":379,"y":480,"timestamp":1711107901575},{"x":389,"y":364,"timestamp":1711107901625},{"x":263,"y":120,"timestamp":1711107901691},{"x":214,"y":54,"timestamp":1711107901741},{"x":180,"y":33,"timestamp":1711107901791},{"x":169,"y":31,"timestamp":1711107901841},{"x":152,"y":34,"timestamp":1711107901891},{"x":105,"y":38,"timestamp":1711107901941},{"x":66,"y":38,"timestamp":1711107901991},{"x":59,"y":38,"timestamp":1711107902124},{"x":60,"y":45,"timestamp":1711107902175},{"x":68,"y":75,"timestamp":1711107902225},{"x":81,"y":133,"timestamp":1711107902275},{"x":83,"y":158,"timestamp":1711107902325},{"x":78,"y":164,"timestamp":1711107902375},{"x":67,"y":169,"timestamp":1711107902425},{"x":62,"y":170,"timestamp":1711107902491},{"x":61,"y":170,"timestamp":1711107902542},{"x":48,"y":146,"timestamp":1711107902608},{"x":38,"y":132,"timestamp":1711107902658}],"panning":[{"x":-5000,"y":-5000,"timestamp":1711107892668},{"x":-4999,"y":-5000,"timestamp":1711107895475},{"x":-5000,"y":-5000,"timestamp":1711107897981}],"zooming":[],"meta":{"task":"Gozintograph","completion":0,"date":"2024-03-22T11:45:02.810Z","duration":10064}} \ No newline at end of file diff --git a/src/server/tempTaskGraphStorage/tasks/ClusterAnalysis.json b/src/server/tempTaskGraphStorage/tasks/ClusterAnalysis.json deleted file mode 100644 index 6e9369e..0000000 --- a/src/server/tempTaskGraphStorage/tasks/ClusterAnalysis.json +++ /dev/null @@ -1,434 +0,0 @@ -{ - "API": [ - { - "task": "ClusterAnalysis", - "name": "clusterAnalysisMain", - "httpMethod": "post", - "params": { "parameters": "object" } - } - ], - "Worker": { - "ClusterAnalysisTask": { - "minConsumers": 1, - "consumerInstructions": { - "clusterAnalysisMain": { - "dependencies": ["clusterAnalysisMain"], - "body": "async (taskDescription) => { let result = {}; try { result = clusterAnalysisMain(taskDescription.parameters); } catch (error) { console.error(error); result = error; } return result; }" - } - } - } - }, - "UI": { - "currentTask": "ClusterAnalysis", - "taskData": {}, - "rootNode": 0, - "topology": [[0, null, null]], - "edges": { - "0": [1], - "1": [] - }, - "currentNode": 0, - "taskMode": "practice", - "hints": { - "active": false, - "current": 0, - "descriptions": [""] - }, - "nodes": { - "0": { - "zoomScale": 1, - "layouts": { - "sm": [ - { "x": 12, "y": 5, "w": 2, "h": 5, "i": 1, "static": false }, - { "x": 14, "y": 5, "w": 2, "h": 7, "i": 2, "static": false } - ], - "md": [ - { "x": 0, "y": 10, "w": 2, "h": 5, "i": 1, "static": false }, - { "x": 4, "y": 10, "w": 2, "h": 7, "i": 2, "static": false } - ], - "lg": [ - { "x": 32, "y": 29, "w": 4, "h": 4, "i": 1, "static": false }, - { "x": 36, "y": 29, "w": 4, "h": 5, "i": 2, "static": false } - ] - }, - "isValid": false, - "components": { - "0": { - "type": "DOTGraph", - "name": "EPK", - "isValid": true, - "dependencies": { - "dotDescription": "taskData__dotDescription" - } - }, - "1": { - "type": "TaskConfiguration", - "name": "Konfiguration", - "isValid": true, - "component": { - "title": "Parameter Konfiguration", - "actions": [ - { - "instruction": "clusterAnalysisMain", - "type": "fetchData", - "label": "Generieren!", - "dependsOn": [] - } - ], - "form": { - "nodeAmount": { - "formType": "ValueFormField", - "label": "Gesamtanzahl Datenpunkte", - "type": "number", - "description": "Bestimmt die Anzahl an Datenpunkten", - "boundaries": { "min": 2, "max": 10 }, - "validate": true, - "value": "3", - "presets": { - "easy": "6", - "medium": "10", - "hard": "15" - } - }, - "clusterAmount": { - "formType": "ValueFormField", - "label": "Anzahl Cluster", - "type": "number", - "description": "Bestimmt die Anzahl an Clustern", - "boundaries": { "min": 1, "max": 4 }, - "validate": true, - "value": "2", - "presets": { - "easy": "6", - "medium": "10", - "hard": "15" - } - }, - "nodeRange": { - "formType": "RangeFormField", - "label": "Wertebereich der Datenpunkte", - "type": "number", - "description": "Bestimmt den Wertebereich der Datenpunkte", - "initial": { - "lowerValue": 0, - "upperValue": 30 - }, - "boundaries": { "min": 0, "max": 100 }, - "presets": { - "easy": 50, - "medium": 100, - "hard": 500 - } - }, - "hasDiagram": { - "formType": "CheckboxFormField", - "label": "Hilfestellung: Streudiagramm", - "type": "checkbox", - "initial": false, - "description": "Bestimmt ob ein Streudiagramm generiert wird oder nicht", - "presets": { - "easy": false, - "medium": true, - "hard": true - } - }, - "hasCalc": { - "formType": "CheckboxFormField", - "label": "Hilfestellung: Berechnung Distanzmatrix", - "type": "checkbox", - "initial": false, - "description": "Bestimmt ob Tabellen zur Berechnung der Distanzen generiert werden oder nicht", - "presets": { - "easy": false, - "medium": true, - "hard": true - } - }, - "hasDendogram": { - "formType": "CheckboxFormField", - "label": "Hilfestellung: Erstellung Dendogram", - "type": "checkbox", - "initial": false, - "description": "Bestimmt ob ein Dendogram generiert wird oder nicht", - "presets": { - "easy": false, - "medium": true, - "hard": true - } - }, - "distance": { - "formType": "DropdownFormField", - "label": "Methode Berechnung Distanz", - "type": "string", - "description": "Zur Verfügung stehende Datenbanken", - "action": { - "instruction": "fetchERD", - "type": "fetchData", - "key": "schema" - }, - "initial": "euclidean", - "options": ["manhattan", "euclidean", "maximum"], - "presets": { - "easy": "euclidean", - "medium": "manhattan", - "hard": "maximum" - } - }, - "linkage": { - "formType": "DropdownFormField", - "label": "Verknüpfungsmethode", - "type": "string", - "description": "Zur Verfügung stehende Datenbanken", - "action": { - "instruction": "fetchERD", - "type": "fetchData", - "key": "schema" - }, - "initial": "single", - "options": ["single"], - "presets": { - "easy": "single" - } - } - } - } - }, - "2": { - "type": "Output", - "name": "Vorschau", - "isValid": true, - "dependencies": { - "Output": { - "serverOutput": "taskData__taskDescriptionPreview", - "validOutput": "taskData__taskDescriptionPreview" - } - }, - "component": { - "header": "Vorschau" - } - } - } - }, - "1": { - "zoomScale": 1, - "interjections": [ - { - "method": "generateMatrix", - "dependencies": { - "baseMatrix": "nodes__1__components__2", - "n": "taskData__iterations", - "baseMatrixId": 2 - }, - "applied": false - } - ], - "layouts": { - "sm": [ - { "x": 32, "y": 29, "w": 4, "h": 4, "i": 2, "static": false }, - { "x": 36, "y": 29, "w": 5, "h": 9, "i": 1, "static": false } - ], - "md": [ - { "x": 32, "y": 29, "w": 4, "h": 4, "i": 2, "static": false }, - { "x": 36, "y": 29, "w": 5, "h": 9, "i": 1, "static": false } - ], - "lg": [ - { "x": 32, "y": 29, "w": 4, "h": 4, "i": 2, "static": false }, - { "x": 36, "y": 29, "w": 5, "h": 9, "i": 1, "static": false } - ] - }, - "isValid": false, - "components": { - "0": { - "type": "ItemPallet", - "name": "EPKPallette", - "isValid": false, - "isCorrect": false, - "methods": {}, - "contextMenu": { - "isOpen": false, - "usedMethods": [] - }, - "component": { - "dragElements": { - "Event": { - "componentType": "DOTGraph", - "props": { - "graphID": "Event" - }, - "elementSelector": "Event", - "dropData": { - "dotTemplate": "${nodeID} [label=\"\" shape=\"rect\" style=\"rounded\" fixedSize=\"false\"]" - } - }, - "Function": { - "componentType": "DOTGraph", - "props": { - "graphID": "Function" - }, - "elementSelector": "Function", - "dropData": { - "dotTemplate": "${nodeID} [label=\"\" shape=\"rect\" style=\"rounded\" fixedSize=\"false\"]" - } - }, - "Gate": { - "componentType": "DOTGraph", - "props": { - "graphID": "Gate" - }, - "elementSelector": "Gate", - "dropData": { - "dotTemplate": "${nodeID} [label=\"\" shape=\"rect\" style=\"rounded\" fixedSize=\"false\"]" - } - } - }, - "dropZones": { - "EPK": { - "componentType": "ManipulatableGraph", - "props": {}, - "accept": ["Event", "Function", "Gate"], - "dropZoneBehaviour": "StoreDragElement", - "droppedElements": [] - } - } - }, - "dependencies": {}, - "nestedComponents": { - "Event": { - "type": "DOTGraph", - "name": "Event", - "isValid": true, - "component": { - "dotDescription": "graph { 0 [label=Event shape=rect style=rounded] }" - }, - "dependencies": {} - }, - "Function": { - "type": "DOTGraph", - "name": "Function", - "isValid": true, - "component": { - "dotDescription": "graph { 0 [label=Function shape=rect style=rounded] }" - }, - "dependencies": {} - }, - "Gate": { - "type": "DOTGraph", - "name": "Gate", - "isValid": true, - "component": { - "dotDescription": "graph { 0 [label=Gate shape=rect style=rounded] }" - }, - "dependencies": {} - }, - "EPK": { - "type": "ManipulatableGraph", - "name": "EPK", - "isValid": false, - "component": { - "userGraph": "digraph\n{\ngraph [bgcolor=transparent bgcolor=transparent]\n}", - "validationData": "", - "editableFields": ["label"] - }, - "dependencies": { - "droppedElements": "nodes__1__components__0__component__dropZones__EPK__droppedElements", - "dragElements": "nodes__1__components__0__component__dragElements" - }, - "nestedComponents": { - "DOTGraph": { - "type": "DOTGraph", - "name": "EPK", - "isValid": true, - "component": {}, - "dependencies": { - "dotDescription": "nodes__1__components__0__nestedComponents__EPK__component__userGraph" - } - } - } - } - } - }, - "1": { - "type": "Output", - "name": "Aufgabenbeschreibung", - "isValid": true, - "dependencies": { - "Output": { - "serverOutput": "taskData__taskDescription", - "validOutput": "taskData__taskDescription" - } - }, - "component": { - "header": "Aufgabenbeschreibung" - } - }, - "2": { - "name": "Distanzmatrix", - "type": "Matrix", - "isValid": false, - "isCorrect": false, - "dependencies": { - "Matrix": { - "data": "taskData__DigraphIteration0" - } - }, - "methods": { - "fillZeros": { - "description": "Ergänze Nullen", - "impact": 0.5 - }, - "showSolution": { - "description": "Zeige Lösung", - "impact": 0 - }, - "copyToClipboard": { - "description": "Kopieren", - "impact": 1 - } - }, - "contextMenu": { - "isOpen": false, - "usedMethods": [] - }, - "component": { - "initialize": { - "solution": { - "operations": [], - "paths": ["taskData__DigraphIteration0"] - }, - "validation": { - "operations": [ - { - "name": "getValueInitializedMatrix", - "args": [ - { - "isValid": false, - "isCorrect": false - } - ] - } - ], - "paths": ["taskData__DigraphIteration0"] - }, - "user": { - "operations": [ - { - "name": "getValueInitializedMatrix", - "args": [null] - } - ], - "paths": ["taskData__DigraphIteration0"] - } - }, - "userData": null, - "validationData": null, - "solutionData": null, - "readOnly": false, - "rowLabel": "taskData__DigraphIterationHeader0", - "columnLabel": "taskData__DigraphIterationHeader0" - } - } - } - } - } - } -} diff --git a/src/server/tempTaskGraphStorage/tasks/DecisionTree.json b/src/server/tempTaskGraphStorage/tasks/DecisionTree.json deleted file mode 100644 index b68ab24..0000000 --- a/src/server/tempTaskGraphStorage/tasks/DecisionTree.json +++ /dev/null @@ -1,135 +0,0 @@ -{ - "API": [ - { - "task": "decisiontree", - "name": "generateSampledData", - "httpMethod": "post", - "params": { "parameters": "object" } - }, - { - "task": "decisiontree", - "name": "generateGraph", - "httpMethod": "post", - "params": { "parameters": "object" } - }, - { - "task": "decisiontree", - "name": "decisionTreeValidator", - "httpMethod": "post", - "params": { "parameters": "object" } - } - ], - "Worker": { - "decisiontreeTask": { - "minConsumers": 1, - "consumerInstructions": { - "generateSampledData": { - "dependencies": ["DataSamplingGenerator"], - "body": "async (taskDescription) => { let result = {}; try { result = DataSamplingGenerator(taskDescription.parameters); } catch (error) { console.error(error); result = error; } return result; }" - }, - "generateGraph": { - "dependencies": ["DecisionTreeTaskGenerator"], - "body": "async (taskDescription) => {let result = {};try { const g = new DecisionTreeTaskGenerator(); result = g.generateTask(taskDescription.parameters); } catch (error) { console.error(error); result = error;} return result; }" - }, - "decisionTreeValidator": { - "dependencies": ["DecisionTreeValidator"], - "body": "async (taskDescription) => { let result = {}; try { result = DecisionTreeValidator(taskDescription); } catch (error) { console.error(error); result = error; } return result; }" - } - } - } - }, - "UI": { - "currentTask": "decisiontree", - "taskMode": "practice", - "taskData": {}, - "rootNode": 0, - "topology": [[0, null, null]], - "edges": { - "0": [] - }, - "currentNode": 0, - "nodes": { - "0": { - "zoomScale": 1, - "layouts": { - "sm": [{ "x": 12, "y": 5, "w": 2, "h": 5, "i": 0, "static": false }], - "md": [{ "x": 0, "y": 10, "w": 2, "h": 5, "i": 0, "static": false }], - "lg": [ - { "x": 32, "y": 29, "w": 3, "h": 4, "i": 0, "static": false }, - { "x": 35, "y": 29, "w": 6, "h": 4, "i": 1, "static": false }, - { "x": 32, "y": 32, "w": 9, "h": 4, "i": 2, "static": false } - ] - }, - "hints": { - "active": false, - "current": 0, - "descriptions": [ - "

Hinweis 1: ID3-Algorithmus


1. Schritt: Berechnung Entropie
.
2. Schritt: Berechnung Informationsgewinn
.
3. Schritt: Auswahl des besten Merkmals
.
4. Schritt: Rekursive Anwendung (1. - 3. Schritt wiederholen)

", - "

Hinweis 2:
ID3-Algorithmus


• Entropiewert liegt zwischen 0 und 1
.
• Entropie ist 0, wenn alle Stichproben einer Klasse gehören
.
• Entropie ist 1, wenn die Stichproben zur Hälfte einer Klasse angehören", - "

Hinweis 3: Formeln

.

Entropie

.

Information Gain

", - "Viel Erfolg!

" - ] - }, - "isValid": false, - "components": { - "0": { - "type": "TaskConfiguration", - "name": "Konfiguration", - "isValid": true, - "component": { - "title": "Entscheidungsbaum", - "actions": [ - { - "instruction": "generateSampledData", - "type": "fetchData", - "label": "Generieren!" - } - ], - "form": { - "taskDescription": { - "label": "

Aufgabe


Berechnen Sie anhand des generierten Datensatzes einen Entscheidungsbaum mit dem ID3-Algorithmus und erstellen Sie diesen.

• Fügen Sie die korrekten Beschriftungen für Knoten und Kanten hinzu.
• Geben Sie die Entropien und Informationsgewinne mit fünf Dezimalstellen an den entsprechenden Kanten und Knoten an.
• Setzen Sie 'decision' für die Knoten mit zugewiesener Klasse.
• Achten Sie auf die Groß- und Kleinschreibung!

Starten Sie, indem Sie auf 'Generieren!' klicken.



Bedienung


Knoten


Hinzufügen: Linke Maustaste (mit Eingabe)
Ändern: Rechte Maustaste
Löschen: Linke Maustaste (ohne Eingabe) - Nur Blattknoten!

Kanten


Ändern: Rechte Maustaste

" - } - }, - "nestedComponents": { - "Output": { - "type": "Output", - "name": "Datensatz", - "isValid": true, - "dependencies": { - "Output": { "serverOutput": "taskData__table", "validOutput": "taskData__table" } - }, - "component": { - "header": "Datensatz" - } - } - } - } - }, - "1": { - "type": "Output", - "name": "Datensatz", - "isValid": true, - "dependencies": { - "Output": { "serverOutput": "taskData__table", "validOutput": "taskData__table" } - }, - "component": { - "header": "Datensatz" - } - }, - "2": { - "type": "DecisionTree", - "name": "DecisionTree", - "isValid": true, - "isCorrect": true, - "dependencies": { - "dotDescription": "taskData__dotDescription" - }, - "component": { - "header": "Entscheidungsbaum" - } - } - } - } - } - } -} diff --git a/src/server/tempTaskGraphStorage/tasks/EPK.json b/src/server/tempTaskGraphStorage/tasks/EPK.json index ff16b2a..bd1b62f 100644 --- a/src/server/tempTaskGraphStorage/tasks/EPK.json +++ b/src/server/tempTaskGraphStorage/tasks/EPK.json @@ -336,13 +336,13 @@ "isValid": true, "dependencies": { "Output": { - "serverOutput": "nodes__0__components__2__component__description" - + "serverOutput": "nodes__1__components__2__component__description", + "validOutput": "nodes__1__components__2__component__description" } }, "component": { "header": "Prozessbeschreibung", - "description": "

Nach Eingang der Bestellung wird geprüft, ob das vom Kunden/Händler gewünschte Produkt auf Lager ist. Ist das Produkt vorrätig, erfolgen die Verpackung und Etikettierung des Produkts bzw. der Produkte. Damit sind die Produkte versandbereit. Endet die Prüfung des Bestands mit dem Ergebnis, dass die Produkte nicht bzw. nicht vollständig im Lager vorhanden sind, wird der Produktionsabteilung ein Auftrag zur Fertigung erteilt. Ist das Produkt vorrätig, erfolgen die Verpackung und Etikettierung des Produkts bzw. der Produkte. Damit sind die Produkte versandbereit.

" + "description": "Nach Eingang der Bestellung wird geprüft, ob das vom Kunden/Händler gewünschte Produkt auf Lager ist. Ist das Produkt vorrätig, erfolgen die Verpackung und Etikettierung des Produkts bzw. der Produkte. Damit sind die Produkte versandbereit. Endet die Prüfung des Bestands mit dem Ergebnis, dass die Produkte nicht bzw. nicht vollständig im Lager vorhanden sind, wird der Produktionsabteilung ein Auftrag zur Fertigung erteilt. Ist das Produkt vorrätig, erfolgen die Verpackung und Etikettierung des Produkts bzw. der Produkte. Damit sind die Produkte versandbereit." } }, "3": { diff --git a/src/server/tempTaskGraphStorage/tasks/ElektrophileAromatischeSubstitution.json b/src/server/tempTaskGraphStorage/tasks/ElektrophileAromatischeSubstitution.json deleted file mode 100644 index ddaaac4..0000000 --- a/src/server/tempTaskGraphStorage/tasks/ElektrophileAromatischeSubstitution.json +++ /dev/null @@ -1,190 +0,0 @@ -{ - "API": [ - { - "task": "ElektrophileAromatischeSubstitution", - "name": "selectSubstitution", - "httpMethod": "post", - "params": { - "parameters": "object" - } - } - ], - - "Worker": { - "ElektrophileAromatischeSubstitutionTask": { - "minConsumers": 1, - "consumerInstructions": { - "selectSubstitution": { - "dependencies": ["selectSubstitution"], - "body": "async (taskDescription) => {let result = {};try { result = selectSubstitution(taskDescription.parameters) } catch (error) { console.error(error); result = error;} return result; }" - } - } - } - }, - "UI": { - "currentTask": "ElektrophileAromatischeSubstitution", - "taskData": {}, - "rootNode": 0, - "taskMode": "practice", - "topology": [[0, null, null]], - "edges": { - "0": [1], - "1": [] - }, - "currentNode": 0, - "nodes": { - "0": { - "zoomScale": 1, - "layouts": { - "sm": [{ "x": 32, "y": 29, "w": 2, "h": 4, "i": 0, "static": false }], - "md": [{ "x": 32, "y": 29, "w": 2, "h": 4, "i": 0, "static": false }], - "lg": [{ "x": 34, "y": 29, "w": 2, "h": 4, "i": 0, "static": false }] - }, - - "components": { - "0": { - "type": "TaskConfiguration", - "name": "Aufgabenstellung", - "isValid": true, - "component": { - "title": "Chemie Aufgabenstellung", - "actions": [ - { - "instruction": "selectSubstitution", - "type": "fetchData", - "label": "Generieren!", - "dependsOn": ["seed"] - } - ], - "form": { - "seed": { - "isValid": true, - "formType": "ValueFormField", - "label": "Seed", - "type": "number", - "description": "Setze einen beliebigen Wert um die Generierung deterministisch und reproduzierbar zu machen", - "value": "", - "validate": false - } - } - } - } - } - }, - "1": { - "zoomScale": 1, - "layouts": { - "sm": [ - { "x": 35, "y": 29, "w": 3, "h": 2, "i": 0, "static": false }, - { "x": 32, "y": 29, "w": 3, "h": 2, "i": 1, "static": false }, - { "x": 32, "y": 31, "w": 3, "h": 2, "i": 2, "static": false }, - { "x": 35, "y": 31, "w": 3, "h": 2, "i": 3, "static": false } - ], - "md": [ - { "x": 35, "y": 29, "w": 3, "h": 2, "i": 0, "static": false }, - { "x": 32, "y": 29, "w": 3, "h": 2, "i": 1, "static": false }, - { "x": 32, "y": 31, "w": 3, "h": 2, "i": 2, "static": false }, - { "x": 35, "y": 31, "w": 3, "h": 2, "i": 3, "static": false } - ], - "lg": [ - { "x": 35, "y": 29, "w": 3, "h": 2, "i": 0, "static": false }, - { "x": 32, "y": 29, "w": 3, "h": 2, "i": 1, "static": false }, - { "x": 32, "y": 31, "w": 3, "h": 2, "i": 2, "static": false }, - { "x": 35, "y": 31, "w": 3, "h": 2, "i": 3, "static": false } - ] - }, - - "components": { - "0": { - "type": "InputForm", - "name": "Antwort", - "isValid": true, - "component": { - "title": "Antwort", - "form": { - "position": { - "formType": "DropdownFormField", - "label": "Position", - "title": "Aufgabe", - "type": "string", - "description": "Position des Reaktionspartners", - - "initial": "para", - "action": { - "instruction": "selectSubstitution", - "type": "fetchData", - "label": "Generieren!" - }, - "options": ["para", "meta", "ortho"], - "presets": {}, - "validation": "taskData__position", - "isValid": true - }, - - "reaktiontype": { - "formType": "DropdownFormField", - "label": "Reaktiontype", - "type": "string", - "description": "Findet eine Überreaktion statt?", - "initial": "Ja", - "action": { - "instruction": "selectSubstitution", - "type": "fetchData", - "label": "Generieren!" - }, - "options": ["Ja", "nein"], - "presets": {}, - "validation": "taskData__hasOverReacted", - "isValid": true - } - } - } - }, - - "1": { - "type": "Output", - "name": "Aufgabenstellung", - "isValid": true, - "dependencies": { - "Output": { - "serverOutput": "nodes__1__components__1__component__description", - "validOutput": "nodes__1__components__1__component__description" - } - }, - "component": { - "header": "Aufgabenstellung", - "description": "Gegeben ist ein einfach substituiertes Benzolderivat (siehe Reaktion). a) Geben Sie im nebenstehenden Dropdown-Feld den Ort der Zweitsubstitution in einer elektrophilen aromatischen Substitution an. b) Geben Sie bei Reaktiontyp im nebenstehenden Feld an ob Sie eine Überreaktion des Erstprodukts unter den gegebenen Reaktionsbedingungen erwarten! c) Zeichnen Sie das zu erwartende Hauptprodukt!" - } - }, - - "2": { - "type": "MoleculeEditor", - "name": "Reaktion", - "isValid": true, - "isCorrect": true, - "dependencies": {}, - "component": { - "readOnly": true, - "smiles": "", - "initialSmiles": "taskData__reactionSmiles", - "solution": "taskData__smiles" - } - }, - - "3": { - "type": "MoleculeEditor", - "name": "Produkt", - "isValid": false, - "isCorrect": false, - "dependencies": {}, - "component": { - "readOnly": false, - "smiles": "", - "initialSmiles": "" - } - } - } - } - } - } -} diff --git a/src/server/tempTaskGraphStorage/tasks/Experimentieren.json b/src/server/tempTaskGraphStorage/tasks/Experimentieren.json new file mode 100644 index 0000000..f45f713 --- /dev/null +++ b/src/server/tempTaskGraphStorage/tasks/Experimentieren.json @@ -0,0 +1,75 @@ +{ + "API": [ + { + "task": "Experimentieren", + "name": "generateExperimentierenDataMain", + "httpMethod": "post", + "params": { "parameters": "object" } + } + ], + "Worker": { + "ExperimentierenTask": { + "minConsumers": 1, + "consumerInstructions": { + "generateExperimentierenDataMain": { + "dependencies": ["generateExperimentierenDataMain"], + "body": "async (taskDescription) => { let result = {}; try { result = generateExperimentierenDataMain(taskDescription); } catch (error) { console.error(error); result = error; } return result; }" + } + } + } + }, + "UI": { + "currentTask": "Experimentieren", + "taskMode": "strictPractice", + "taskData": {}, + "rootNode": 0, + "previousNode": 0, + "topology": [[0, null, null]], + "edges": { + "0": [1], + "1": [] + }, + "currentNode": 0, + "nodes": { + "0": { + "zoomScale": 1, + "layouts": { + "sm": [{ "x": 12, "y": 5, "w": 2, "h": 5, "i": 1, "static": false }], + "md": [{ "x": 0, "y": 10, "w": 2, "h": 5, "i": 1, "static": false }], + "lg": [ + { "x": 34, "y": 29, "w": 6, "h": 3, "i": 0, "static": false }, + { "x": 32, "y": 29, "w": 2, "h": 2, "i": 1, "static": false } + ] + }, + "components": { + "0" : { + "type" : "LatexFormula", + "name" : "LatexExperimentieren", + "component" : { + "generateBtnDisabled" : true, + "userData" : "" + } + }, + "1" : { + "type" : "BackendFormular", + "name" : "Ergebnis anzeigen", + "isValid" : false, + "component" : { + "actions" : [ + { + "instruction" : "generateExperimentierenDataMain", + "type": "fetchData", + "label" : "Generieren!", + "disabled" : "nodes__0__components__0__component__generateBtnDisabled" + } + ], + "data" : { + "latexData" : "nodes__0__components__0__component__userData" + } + } + } + } + } + } + } +} diff --git a/src/server/tempTaskGraphStorage/tasks/Ferment.json b/src/server/tempTaskGraphStorage/tasks/Ferment.json new file mode 100644 index 0000000..4b83858 --- /dev/null +++ b/src/server/tempTaskGraphStorage/tasks/Ferment.json @@ -0,0 +1,435 @@ +{ + "API": [ + { + "task": "Ferment", + "name": "generateFermentationDataMain", + "httpMethod": "post", + "params": { + "parameters": "object" + } + } + ], + "Worker": { + "FermentTask": { + "minConsumers": 1, + "consumerInstructions": { + "generateFermentationDataMain": { + "dependencies": ["generateFermentationDataMain"], + "body": "async (taskDescription) => {let result = {};try { result = generateFermentationDataMain(taskDescription)} catch{} return result; }" + } + } + } + }, + "UI": { + "currentTask": "Ferment", + "taskMode": "strictPractice", + "taskData": {}, + "rootNode": 0, + "previousNode": 0, + "topology": [ + [0, null, null], + [1, 2, null], + [3, 4, null], + [5, 6, null], + [7, 8, null], + [9, null, null], + [10, null, null] + ], + "edges": { + "0": [] + }, + "currentNode": 0, + "nodes": { + "0": { + "zoomScale": 1, + "layouts": { + "sm": [ + { + "x": 31, + "y": 37, + "w": 3, + "h": 4, + "i": 0, + "static": false + }, + { + "x": 10, + "y": 5, + "w": 2, + "h": 3, + "i": 1, + "static": false + }, + { + "x": 12, + "y": 5, + "w": 2, + "h": 5, + "i": 2, + "static": false + } + ], + "md": [ + { + "x": 0, + "y": 0, + "w": 5, + "h": 6, + "i": 0, + "static": false + }, + { + "x": 0, + "y": 5, + "w": 2, + "h": 3, + "i": 1, + "static": false + }, + { + "x": 0, + "y": 10, + "w": 2, + "h": 5, + "i": 2, + "static": false + } + ], + "lg": [ + { + "x": 31, + "y": 29, + "w": 2, + "h": 2.5, + "i": 0, + "static": false + }, + { + "x": 30, + "y": 31.5, + "w": 3, + "h": 3, + "i": 1, + "static": true + }, + { + "x": 33, + "y": 31, + "w": 8, + "h": 2.5, + "i": 2, + "static": false + }, + { + "x": 33, + "y": 29, + "w": 4, + "h": 2.5, + "i": 3, + "static": false + }, + { + "x": 37, + "y": 29, + "w": 4, + "h": 2.5, + "i": 4, + "static": false + } + ] + }, + "hints": { + "active": false, + "current": 0, + "descriptions": [ + "Mit FermentALADIN können Sie Fermentationen auf Basis vordefinierter Modelle simulieren. Dazu wählen Sie im Fenster „Modell“ ", + "den Organismus im Drop-Down Menu und wählen die Anzahl der Phasen mit unterschiedlichen Prozessbedingungen aus. ", + "Nach Eintragung der Startparameter im Fenster „Fermentation – Startparameter“ sowie der Eintragung der phasenspezifischen Prozessparameter", + "im Fenster „Prozessparameter je Phase“ erhalten Sie das Ergebnis der Simulation nach Klick auf „Berechnen“. ", + "Die Daten können über den Button „Herunterladen“ Diagrammweise exportiert werden. Die Arbeitsfläche können Sie mit der Maus verschieben und durch Strg+ Mausrad hinein bzw. herauszoomen. ", + "Viel Erfolg!

" + ] + }, + "isValid": false, + "components": { + "0": { + "type": "BackendFormular", + "name": "Modell Parameter", + "isValid": false, + "component": { + "actions": [ + { + "instruction": "generateFermentationDataMain", + "type": "fetchData", + "label": "Generieren!", + "dependsOn": [ + "nodes__0__components__0__component__form__nodeAmount__isValid", + "nodes__0__components__0__component__form__seed__isValid", + "nodes__0__components__2__isValid" + ] + } + ], + "form": { + "nodeAmount": { + "isValid": false, + "formType": "DropdownFormField", + "label": "Organismus", + "type": "string", + "description": "Zur Verfügung stehende Organismus", + "action": { "instruction": "fetchTaskData", "type": "fetchData", "key": "schema" }, + "initial": "S.cerevisiae", + "options": ["S.cerevisiae", "E.coli", "Testorganismus"], + "presets": { + "easy": "S.cerevisiae", + "medium": "E.coli", + "hard": "Testorganismus" + } + }, + "seed": { + "formType": "ValueFormField", + "label": "Phasenanzahl", + "type": "text", + "description": "Setze einen beliebigen Wert für die Phasenanzahl", + "value": "2", + "readOnly": false, + "validate": false, + "presets": { + "easy": "", + "medium": "", + "hard": "" + } + } + }, + "data": { + "userDataMatrix": "nodes__0__components__2__component__userData", + "userDataInputFelder": "nodes__0__components__1__component__inputFelderValues" + } + } + }, + "1": { + "type": "absolutInputsOnImage", + "name": "Fermentationsapparat", + "component": { + "bildPath": "/img/tasks/Ferment/Ferment.png", + "inputFelds": [ + { + "id": "1", + "type": "number", + "placeholder": "V Start", + "value" : "10", + "min": 1, + "max": 900, + "width": "50.5px", + "height": "25px", + "position": { + "left": "3%", + "top": "26.5%" + } + }, + { + "id": "2", + "type": "number", + "placeholder": "T", + "value" : 30, + "min": 10, + "max": 99, + "width": "50.5px", + "height": "25px", + "position": { + "left": "70.5%", + "top": "45.5%" + } + }, + { + "id": "3", + "type": "number", + "placeholder": "PH", + "value" : 7, + "min": 2, + "max": 10, + "width": "50.5px", + "height": "25px", + "position": { + "left": "29%", + "top": "-2%" + } + }, + { + "id": "4", + "type": "number", + "placeholder": "BTM", + "value" : 0.05, + "min": 0.01, + "max": 5, + "width": "50.5px", + "height": "25px", + "position": { + "left": "3%", + "top": "80.5%" + } + }, + { + "id": "5", + "type": "number", + "placeholder": "DO", + "value" : 100, + "min": 0, + "max": 500, + "width": "50.5px", + "height": "25px", + "position": { + "left": "45%", + "top": "-2%" + } + }, + { + "id": "6", + "type": "number", + "placeholder": "Fluss Out", + "value" : 0, + "min": 0, + "max": 500, + "width": "50.5px", + "height": "25px", + "position": { + "left": "70.5%", + "top": "65%" + } + } + ], + "inputFelderValues": {} + } + }, + "2": { + "name": "Fermentationsparameter", + "type": "Matrix", + "isValid": false, + "isCorrect": false, + "dependencies": { + "Matrix": { + "data": "nodes__0__components__2__component__userData" + } + }, + "methods": {}, + "contextMenu": { + "isOpen": false, + "usedMethods": [] + }, + "component": { + "initialize": { + "solution": { + "operations": [], + "paths": ["taskData__adjacencyMatrix"] + }, + "validation": { + "operations": [ + { + "name": "getValueInitializedMatrix", + "args": [ + { + "isValid": false, + "isCorrect": false + } + ] + } + ], + "paths": ["taskData__adjacencyMatrix"] + }, + "user": { + "operations": [ + { + "name": "getMatrix", + "args": [] + } + ], + "paths": ["taskData__adjacencyMatrix"] + } + }, + "standardZeile": [1, 1, 1, 1, 100, 1, 10], + "userData": [], + "checkUserDataValidity": "valid", + "columnLabelData": [ + "Zuluft in NL/min", + "BolusC in g/L", + "Feed in g/(L*h)", + "BolusN in g/L", + "Drehzahl in rpm", + "Druck in barg", + "Dauer in h" + ], + "rowLabelData": ["Phase"], + "validationData": null, + "solutionData": null, + "readOnly": false, + "rowLabel": "nodes__0__components__2__component__rowLabelData", + "columnLabel": "nodes__0__components__2__component__columnLabelData", + "inputType": "number", + "rowAnzahl": "nodes__0__components__0__component__form__seed__value", + "spaltenMaxSumme": [ + { + "spaltenName": "Dauer in h", + "maxSumme": 200 + } + ], + "columnRange": [ + { + "name": "Zuluft in NL/min", + "min": 0, + "max": 2 + }, + { + "name": "BolusC in g/L", + "min": 0, + "max": 200 + }, + { + "name": "Feed in g/(L*h)", + "min": 0, + "max": 10 + }, + { + "name": "BolusN in g/L", + "min": 0, + "max": 10 + }, + { + "name": "Drehzahl in rpm", + "min": 100, + "max": 2000 + }, + { + "name": "Druck in barg", + "min": 0, + "max": 3 + }, + { + "name": "Dauer in h", + "min": 0, + "max": "200" + } + ] + } + }, + "3": { + "name": "Fermentationsverlauf", + "type": "Chart", + "component": { + "labels": "taskData__data_1__labels", + "datasets": "taskData__data_1__datasets", + "excelData" : "taskData__data_3__excelData" + } + }, + "4": { + "name": "Fermentatiosverlauf Cs2", + "type": "Chart", + "component": { + "labels": "taskData__data_2__labels", + "datasets": "taskData__data_2__datasets", + "excelData" : "taskData__data_3__excelData" + } + } + } + } + } + } +} diff --git a/src/server/tempTaskGraphStorage/tasks/FermentExercises.json b/src/server/tempTaskGraphStorage/tasks/FermentExercises.json new file mode 100644 index 0000000..0e154ed --- /dev/null +++ b/src/server/tempTaskGraphStorage/tasks/FermentExercises.json @@ -0,0 +1,800 @@ +{ + "API": [ + { + "task": "FermentExercises", + "name": "generateFermentExercises", + "httpMethod": "post", + "params": { + "parameters": "object" + } + }, + { + "task": "FermentExercises", + "name": "generateFermentationDataMain", + "httpMethod": "post", + "params": { + "parameters": "object" + } + }, + { + "task": "FermentExercises", + "name": "generateFermentationFeedBack", + "httpMethod": "post", + "params": { + "parameters": "object" + } + } + ], + "Worker": { + "FermentExercisesTask": { + "minConsumers": 1, + "consumerInstructions": { + "generateFermentExercises": { + "dependencies": ["generateFermentExercises"], + "body": "async (taskDescription) => {let result = {};try { result = generateFermentExercises(taskDescription)} catch{} return result; }" + }, + "generateFermentationDataMain": { + "dependencies": ["generateFermentationDataMain"], + "body": "async (taskDescription) => {let result = {};try { result = generateFermentationDataMain(taskDescription)} catch{} return result; }" + }, + "generateFermentationFeedBack": { + "dependencies": ["generateFermentationFeedBack"], + "body": "async (taskDescription) => {let result = {};try { result = generateFermentationFeedBack(taskDescription)} catch{} return result; }" + } + } + + } + }, + "UI": { + "currentTask": "FermentExercises", + "taskMode": "strictPractice", + "taskData": {}, + "rootNode": 0, + "previousNode": 0, + "topology": [ + [0, 1, null]], + "edges": { + "0": [1], + "1": [] + }, + "currentNode": 0, + "nodes": { + "0":{ + "zoomScale": 1, + "layouts": { + "sm": [{ "x": 12, "y": 5, "w": 2, "h": 5, "i": 1, "static": false }], + "md": [{ "x": 0, "y": 10, "w": 2, "h": 5, "i": 1, "static": false }], + "lg": [ + { + "x": 32, + "y": 29, + "w": 3, + "h": 2.5, + "i": 0, + "static": false + }, + { + "x": 31, + "y": 31.5, + "w": 8, + "h": 2.5, + "i": 1, + "minW": 8, + "minH": "2", + "preserveAspectRatio": false, + "static": false + }, + { + "x": 35, + "y": 29, + "w": 3, + "h": 2.5, + "i": 2, + "static": false + } + ] + }, + "modals": [ + { + "trigger": { + "type": "success" + }, + "content": { + "header": "Herzlichen Glückwunsch!", + "body": "Sie haben die Aufgabe erfolgreich gelöst!", + "footer": { + "buttons": [ + { "type": "close", "label": "Zurück", "parameters": {} }, + { "type": "route", "label": "Zur Übersicht", "parameters": { "route": "TaskOverview" } } + ] + } + }, + "active": false + } + ], + "hints": { + "active": false, + "current": 0, + "descriptions": [ + "Modelliere anhand der gegebenen Prozessbeschreibung den Prozess mit Hilfe der EPK-Notation." + ] + }, + "components": { + "0": { + "type": "BackendFormular", + "name": "Aufgaben Parameter", + "isValid": true, + "component": { + "actions": [ + { + "instruction": "generateFermentExercises", + "type": "fetchData", + "label": "Generieren!", + "dependsOn": [ + "nodes__0__components__0__component__form__nodeAmount__isValid", + "nodes__0__components__0__component__form__seed__isValid", + "nodes__0__components__1__isValid" + ] + } + ], + "form": { + "nodeAmount": { + "isValid": true, + "formType": "DropdownFormField", + "label": "Organismus", + "type": "string", + "description": "Zur Verfügung stehende Organismus", + "action": { "instruction": "fetchTaskData", "type": "fetchData", "key": "schema" }, + "initial": "S.cerevisiae", + "options": ["S.cerevisiae", "E.coli", "Testorganismus"], + "presets": { + "easy": "S.cerevisiae", + "medium": "E.coli", + "hard": "Testorganismus" + } + }, + "seed": { + "formType": "ValueFormField", + "label": "Phasenanzahl", + "type": "String", + "description": "Setze einen beliebigen Wert für die Phasenanzahl", + "value": "3", + "boundaries": { "min": 0, "max": 20 }, + "readOnly": false, + "validate": true, + "presets": { + "easy": "", + "medium": "", + "hard": "" + } + }, + "Temperatur": { + "formType": "ValueFormField", + "label": "Temperatur", + "type": "number", + "value": 0, + "boundaries": {}, + "validate": false, + "presets": { + "easy": "", + "medium": "", + "hard": "" + } + }, + "BTM": { + "formType": "ValueFormField", + "label": "BTM", + "type": "number", + "value": 0, + "boundaries": { "min": 0, "max": 20 }, + "validate": false, + "presets": { + "easy": "", + "medium": "", + "hard": "" + } + }, + "DO": { + "formType": "ValueFormField", + "label": "Do", + "type": "number", + "value": 0, + "boundaries": {}, + "validate": false, + "presets": { + "easy": "", + "medium": "", + "hard": "" + } + }, + "maxParameter": { + "isValid": true, + "formType": "DropdownFormField", + "label": "Zu maximierende Parameter", + "type": "string", + "description": "Zur Verfügung stehende Parameter", + "action": { "instruction": "fetchTaskData", "type": "fetchData", "key": "schema" }, + "initial": "", + "options": ["Cx", "Cs1", "Cs2", "Cp", "C_ox", "C_o2_Out", "C_Co2_Out"], + "presets": { + "easy": "", + "medium": "", + "hard": "" + } + }, + "minParameter": { + "isValid": true, + "formType": "DropdownFormField", + "label": "Zu minimierende Parameter", + "type": "string", + "description": "Zur Verfügung stehende Parameter", + "action": { "instruction": "fetchTaskData", "type": "fetchData", "key": "schema" }, + "initial": "", + "options": ["Cx", "Cs1", "Cs2", "Cp", "C_ox", "C_o2_Out", "C_Co2_Out"], + "presets": { + "easy": "", + "medium": "", + "hard": "" + } + } + }, + "data": { + "userDataMatrix": "nodes__0__components__1__component__userData", + "varierendeParameter": "nodes__0__components__2__component__jsonData" + }, + "saveFetchedDataInTemplate_Path" : "/json/tasks/FermentExercise/Exercise.json", + "savedData":{} + } + }, + "1": { + "name": "Fermentationsparameter", + "type": "Matrix", + "isValid": true, + "isCorrect": true, + "dependencies": { + "Matrix": { + "data": "nodes__0__components__1__component__userData" + } + }, + "methods": {}, + "contextMenu": { + "isOpen": false, + "usedMethods": [] + }, + "component": { + "initialize": { + "solution": { + "operations": [], + "paths": ["taskData__adjacencyMatrix"] + }, + "validation": { + "operations": [ + { + "name": "getValueInitializedMatrix", + "args": [ + { + "isValid": true, + "isCorrect": true + } + ] + } + ], + "paths": ["taskData__adjacencyMatrix"] + }, + "user": { + "operations": [ + { + "name": "getMatrix", + "args": [] + } + ], + "paths": ["taskData__adjacencyMatrix"] + } + }, + "standardZeile": [1, 1, 1, 1, 100, 1, 10], + "userData": [], + "checkUserDataValidity": "valid", + "columnLabelData": [ + "Zuluft in NL/min", + "BolusC in g/L", + "Feed in g/(L*h)", + "BolusN in g/L", + "Drehzahl in rpm", + "Druck in barg", + "Dauer in h" + ], + "rowLabelData": ["Phase"], + "validationData": null, + "solutionData": null, + "readOnly": false, + "rowLabel": "nodes__0__components__1__component__rowLabelData", + "columnLabel": "nodes__0__components__1__component__columnLabelData", + "inputType": "number", + "rowAnzahl": "nodes__0__components__0__component__form__seed__value", + "spaltenMaxSumme": [ + { + "spaltenName": "Dauer in h", + "maxSumme": 200 + } + ], + "columnRange": [ + { + "name": "Zuluft in NL/min", + "min": 0, + "max": 2 + }, + { + "name": "BolusC in g/L", + "min": 0, + "max": 200 + }, + { + "name": "Feed in g/(L*h)", + "min": 0, + "max": 10 + }, + { + "name": "BolusN in g/L", + "min": 0, + "max": 10 + }, + { + "name": "Drehzahl in rpm", + "min": 100, + "max": 2000 + }, + { + "name": "Druck in barg", + "min": 0, + "max": 3 + }, + { + "name": "Dauer in h", + "min": 0, + "max": "200" + } + ] + } + }, + "2":{ + "type": "CheckboxGroup", + "name": "Modell Parameter", + "isValid": true, + "component":{ + "options": ["Zuluft", "BolusC", "Feed", "BolusN", "Drehzahl", "Druck", "Dauer"], + "jsonData" : {} + } + } + } + }, + "1": { + "zoomScale": 1, + "layouts": { + "sm": [ + { + "x": 31, + "y": 37, + "w": 3, + "h": 4, + "i": 0, + "static": false + }, + { + "x": 10, + "y": 5, + "w": 2, + "h": 3, + "i": 1, + "static": false + }, + { + "x": 12, + "y": 5, + "w": 2, + "h": 5, + "i": 2, + "static": false + } + ], + "md": [ + { + "x": 0, + "y": 0, + "w": 5, + "h": 6, + "i": 0, + "static": false + }, + { + "x": 0, + "y": 5, + "w": 2, + "h": 3, + "i": 1, + "static": false + }, + { + "x": 0, + "y": 10, + "w": 2, + "h": 5, + "i": 2, + "static": false + } + ], + "lg": [ + { + "x": 31, + "y": 29, + "w": 2, + "h": 2, + "i": 0, + "static": false + }, + { + "x": 30, + "y": 31, + "w": 3, + "h": 3, + "i": 1, + "static": true + }, + { + "x": 33, + "y": 31, + "w": 6, + "h": 2.5, + "i": 2, + "static": false + }, + { + "x": 39, + "y": 29, + "w": 3, + "h": 2, + "i": 3, + "static": false + }, + { + "x": 39, + "y": 31, + "w": 3, + "h": 2, + "i": 4, + "static": false + }, + { + "x": 33, + "y": 29, + "w": 6, + "h": 2, + "i": 5, + "static": false + }, + { + "x": 33, + "y": 28, + "w": 6, + "h": 1, + "i": 6, + "static": false + } + ] + }, + "hints": { + "active": false, + "current": 0, + "descriptions": [ + "Wählen Sie zuerst den Organismus aus.
Dann Ziehen Sie den Schieberegler nach rechts oder links um die Anzahl der Phasen zu bestimmen.
Dann geben sie die Werte für die zwei stehende Tabellen ein.", + "Viel Erfolg!

" + ] + }, + "isValid": false, + "components": { + "0": { + "type": "BackendFormular", + "name": "Modell Parameter", + "isValid": false, + "component": { + "actions": [ + { + "instruction": "generateFermentationDataMain", + "type": "fetchData", + "label": "Generieren!", + "dependsOn": [ + "nodes__1__components__1__component__form__nodeAmount__isValid", + "nodes__1__components__1__component__form__seed__isValid", + "nodes__1__components__2__isValid" + ] + }, + { + "instruction": "generateFermentationFeedBack", + "type": "fetchData", + "label": "Abgeben!", + "dependsOn": [ + ] + } + ], + + "form": { + "nodeAmount": { + "isValid": false, + "formType": "DropdownFormField", + "label": "Organismus", + "type": "string", + "description": "Zur Verfügung stehende Organismus", + "action": { "instruction": "fetchTaskData", "type": "fetchData", "key": "schema" }, + "OptionsFromJson": "nodes__0__components__0__component__savedData", + "OptionsFromJson_Key":"nodeAmount" + }, + "seed": { + "formType": "ValueFormField", + "label": "Phasenanzahl", + "type": "text", + "description": "Setze einen beliebigen Wert für die Phasenanzahl", + "ValueFromJson" : "nodes__0__components__0__component__savedData", + "ValueFromJson_Key":"seed", + "readOnly": true, + "validate": false, + "presets": { + "easy": "", + "medium": "", + "hard": "" + } + } + }, + "data": { + "userDataMatrix": "nodes__1__components__2__component__userData", + "userDataInputFelder": "nodes__1__components__1__component__inputFelderValues" + } + + } + }, + "1": { + "type": "absolutInputsOnImage", + "name": "Fermentationsapparat", + "component": { + "bildPath": "/img/tasks/FermentExercise/Ferment.png", + "ValuesFromJson":"nodes__0__components__0__component__savedData__Startparameter", + "inputFelds": [ + { + "id": "1", + "type": "number", + "placeholder": "V Start", + "value" : "10", + "min": 1, + "max": 900, + "width": "50.5px", + "height": "25px", + "position": { + "left": "3%", + "top": "26.5%" + } + }, + { + "id": "2", + "type": "number", + "placeholder": "T", + "ValueFromJson_Key" : "Temperatur", + "min": 10, + "max": 99, + "width": "50.5px", + "height": "25px", + "position": { + "left": "70.5%", + "top": "45.5%" + } + }, + { + "id": "3", + "type": "number", + "placeholder": "PH", + "value" : 7, + "min": 2, + "max": 10, + "width": "50.5px", + "height": "25px", + "position": { + "left": "29%", + "top": "-2%" + } + }, + { + "id": "4", + "type": "number", + "placeholder": "BTM", + "ValueFromJson_Key" : "BTM", + "min": 0.01, + "max": 5, + "width": "50.5px", + "height": "25px", + "position": { + "left": "3%", + "top": "80.5%" + } + }, + { + "id": "5", + "type": "number", + "placeholder": "DO", + "ValueFromJson_Key" : "DO", + "min": 0, + "max": 500, + "width": "50.5px", + "height": "25px", + "position": { + "left": "45%", + "top": "-2%" + } + }, + { + "id": "6", + "type": "number", + "placeholder": "Fluss Out", + "value" : 0, + "min": 0, + "max": 500, + "width": "50.5px", + "height": "25px", + "position": { + "left": "70.5%", + "top": "65%" + } + } + ], + "inputFelderValues": {}, + "fields_readOnly":"nodes__1__components__6__component__feedback" + } + }, + "2": { + "name": "Fermentationsparameter", + "type": "Matrix", + "isValid": false, + "isCorrect": false, + "dependencies": { + "Matrix": { + "data": "nodes__1__components__2__component__userData" + } + }, + "methods": {}, + "contextMenu": { + "isOpen": false, + "usedMethods": [] + }, + "component": { + "initialize": { + "solution": { + "operations": [], + "paths": ["taskData__adjacencyMatrix"] + }, + "validation": { + "operations": [ + { + "name": "getValueInitializedMatrix", + "args": [ + { + "isValid": false, + "isCorrect": false + } + ] + } + ], + "paths": ["taskData__adjacencyMatrix"] + }, + "user": { + "operations": [ + { + "name": "getMatrix", + "args": [] + } + ], + "paths": ["taskData__adjacencyMatrix"] + } + }, + "userData": [], + "userDataFromJson": "nodes__0__components__0__component__savedData", + "userDataFromJson_Key":"userDataMatrix", + "checkUserDataValidity": "valid", + "columnLabelData": [ + "Zuluft in NL/min", + "BolusC in g/L", + "Feed in g/(L*h)", + "BolusN in g/L", + "Drehzahl in rpm", + "Druck in barg", + "Dauer in h" + ], + "rowLabelData": ["Phase"], + "validationData": null, + "solutionData": null, + "readOnly": false, + "rowLabel": "nodes__1__components__2__component__rowLabelData", + "columnLabel": "nodes__1__components__2__component__columnLabelData", + "inputType": "number", + "spaltenMaxSumme": [ + { + "spaltenName": "Dauer in h", + "maxSumme": 200 + } + ], + "columnRange": [ + { + "name": "Zuluft in NL/min", + "min": 0, + "max": 2 + }, + { + "name": "BolusC in g/L", + "min": 0, + "max": 200 + }, + { + "name": "Feed in g/(L*h)", + "min": 0, + "max": 10 + }, + { + "name": "BolusN in g/L", + "min": 0, + "max": 10 + }, + { + "name": "Drehzahl in rpm", + "min": 100, + "max": 2000 + }, + { + "name": "Druck in barg", + "min": 0, + "max": 3 + }, + { + "name": "Dauer in h", + "min": 0, + "max": "200" + } + ], + "field_status":"nodes__1__components__6__component__feedback" + } + }, + "3": { + "name": "Fermentationsverlauf", + "type": "Chart", + "component": { + "labels": "taskData__data_1__labels", + "datasets": "taskData__data_1__datasets", + "excelData" : "taskData__data_3__excelData" + + } + }, + "4": { + "name": "Fermentatiosverlauf Cs2", + "type": "Chart", + "component": { + "labels": "taskData__data_2__labels", + "datasets": "taskData__data_2__datasets", + "excelData" : "taskData__data_3__excelData" + } + }, + "5": { + "name" : "Aufgabe", + "type": "TaskViewer", + "component":{ + "titel" : "Fermentationsproblem", + "path" : "nodes__0__components__0__component__savedData", + "key" : "Aufgabe" + } + }, + "6": { + "name" : "Feedback", + "type": "TaskViewer", + "component":{ + "feedback" : "taskData__Feedback" + } + } + } + } + } + + } +} \ No newline at end of file diff --git a/src/server/tempTaskGraphStorage/tasks/GeoInterpolation.json b/src/server/tempTaskGraphStorage/tasks/GeoInterpolation.json index 2284932..eafdd3f 100644 --- a/src/server/tempTaskGraphStorage/tasks/GeoInterpolation.json +++ b/src/server/tempTaskGraphStorage/tasks/GeoInterpolation.json @@ -45,17 +45,6 @@ "type": "BackgroundGraph", "name": "perlin", "isValid": true, - "nestedComponents": { - "DOTGraph": { - "type": "DOTGraph", - "name": "EPK", - "isValid": true, - "component": {}, - "dependencies": { - "dotDescription": "taskData__dotDescription" - } - } - }, "dependencies": { "ContourPlot": { "grid": "taskData__grid", "thresholds": "taskData__thresholds" }, "DOTGraph": { "dotDescription": "taskData__dotDescription" } diff --git a/src/server/tempTaskGraphStorage/tasks/Gozintograph.json b/src/server/tempTaskGraphStorage/tasks/Gozintograph.json index f3328fc..1c893e5 100644 --- a/src/server/tempTaskGraphStorage/tasks/Gozintograph.json +++ b/src/server/tempTaskGraphStorage/tasks/Gozintograph.json @@ -22,7 +22,7 @@ }, "UI": { "currentTask": "gozintograph", - "taskMode": "practice", + "taskMode": "strictPractice", "taskData": {}, "rootNode": 0, "previousNode": 0, @@ -387,6 +387,8 @@ "paths": ["taskData__adjacencyMatrix"] } }, + + "userData": null, "validationData": null, "solutionData": null, diff --git a/src/server/tempTaskGraphStorage/tasks/Reakt.json b/src/server/tempTaskGraphStorage/tasks/Reakt.json new file mode 100644 index 0000000..b899e3f --- /dev/null +++ b/src/server/tempTaskGraphStorage/tasks/Reakt.json @@ -0,0 +1,333 @@ +{ + "API": [ + { + "task": "Reakt", + "name": "generateReactionData", + "httpMethod": "post", + "params": { + "parameters": "object" + } + } + ], + "Worker": { + "ReaktTask": { + "minConsumers": 1, + "consumerInstructions": { + "generateReactionData": { + "dependencies": ["generateReactionData"], + "body": "async (taskDescription) => {let result = {};try { result = generateReactionData(taskDescription)} catch{} return result; }" + } + } + } + }, + "UI": { + "currentTask": "Reakt", + "taskMode": "strictPractice", + "taskData": {}, + "rootNode": 0, + "previousNode": 0, + "topology": [ + [0, null, null], + [1, 2, null], + [3, 4, null], + [5, 6, null], + [7, 8, null], + [9, null, null], + [10, null, null] + ], + "edges": { + "0": [] + }, + "currentNode": 0, + "nodes": { + "0": { + "zoomScale": 1, + "layouts": { + "sm": [ + { + "x": 31, + "y": 37, + "w": 3, + "h": 4, + "i": 0, + "static": false + }, + { + "x": 10, + "y": 5, + "w": 2, + "h": 3, + "i": 1, + "static": false + }, + { + "x": 12, + "y": 5, + "w": 2, + "h": 5, + "i": 2, + "static": false + } + ], + "md": [ + { + "x": 0, + "y": 0, + "w": 5, + "h": 6, + "i": 0, + "static": false + }, + { + "x": 0, + "y": 5, + "w": 2, + "h": 3, + "i": 1, + "static": false + }, + { + "x": 0, + "y": 10, + "w": 2, + "h": 5, + "i": 2, + "static": false + } + ], + "lg": [ + { + "x": 30, + "y": 29, + "w": 2, + "h": 2.5, + "i": 0, + "static": false + }, + { + "x": 40, + "y": 29, + "w": 2, + "h": 2.5, + "i": 1, + "static": false + }, + { + "x": 30, + "y": 31, + "w": 4, + "h": 2.5, + "i": 2, + "static": false + }, + { + "x": 34, + "y": 31, + "w": 4, + "h": 2.5, + "i": 3, + "static": false + }, + { + "x": 38, + "y": 31, + "w": 4, + "h": 2.5, + "i": 4, + "static": false + }, + { + "x": 32, + "y": 29, + "w": 8, + "h": 2.5, + "i": 5, + "static": true + } + ] + }, + "hints": { + "active": false, + "current": 0, + "descriptions": [ + "Viel Erfolg!

" + ] + }, + "isValid": false, + "components": { + "0": { + "type": "BackendFormular", + "name": "Reaktionsauswahl", + "isValid": false, + "component": { + "actions": [ + { + "instruction": "generateReactionData", + "type": "fetchData", + "label": "Generieren!", + "dependsOn": [ + "nodes__0__components__0__component__form__nodeAmount__isValid", + "nodes__0__components__0__component__form__seed__isValid" + ] + } + ], + "form": { + "process": { + "isValid": false, + "formType": "DropdownFormField", + "label": "Prozessauswahl", + "type": "string", + "description": "Zur Verfügung stehende Organismus", + "action": { "instruction": "fetchTaskData", "type": "fetchData", "key": "schema" }, + "initial": "Zersetzung von H2O2", + "options": ["Zersetzung von H2O2"], + "presets": { + "easy": "Zersetzung von H2O2" + } + }, + "thermische_Parameter": { + "isValid": false, + "formType": "DropdownFormField", + "label": "Thermische Parameter", + "type": "string", + "description": "Zur Verfügung stehende Organismus", + "action": { "instruction": "fetchTaskData", "type": "fetchData", "key": "schema" }, + "initial": "Adiabat", + "options": ["Adiabat"], + "presets": { + "easy": "Adiabat" + } + } + }, + "data": { + "matrixData": "nodes__0__components__5__component__userData", + "phaseNumber" : "nodes__0__components__5__component__rowAnzahl" + } + } + }, + "1": { + "type": "Bild", + "name": "Reaktionsapparat", + "component": { + "pfad": "/img/tasks/Reakt/Reakt_bild.webp" + } + }, + "2": { + "name": "Stoffmengen", + "type": "Chart", + "component": { + "labels": "taskData__data_1__labels", + "datasets": "taskData__data_1__datasets" + + } + }, + "3": { + "name": "Temperatur", + "type": "Chart", + "component": { + "labels": "taskData__data_2__labels", + "datasets": "taskData__data_2__datasets" + } + }, + "4": { + "name": "Umsatz H2O2", + "type": "Chart", + "component": { + "labels": "taskData__data_3__labels", + "datasets": "taskData__data_3__datasets" + + } + }, + "5" : { + "name": "Nutzereingaben", + "type": "Matrix", + "isValid": false, + "isCorrect": false, + "dependencies": { + "Matrix": { + "data": "nodes__0__components__5__component__userData" + } + }, + "methods": {}, + "contextMenu": { + "isOpen": false, + "usedMethods": [] + }, + "component": { + "initialize": { + "solution": { + "operations": [], + "paths": ["taskData__adjacencyMatrix"] + }, + "validation": { + "operations": [ + { + "name": "getValueInitializedMatrix", + "args": [ + { + "isValid": false, + "isCorrect": false + } + ] + } + ], + "paths": ["taskData__adjacencyMatrix"] + }, + "user": { + "operations": [ + { + "name": "getMatrix", + "args": [] + } + ], + "paths": ["taskData__adjacencyMatrix"] + } + }, + "standardZeile": [1, 1, 50, 20], + "userData": [], + "checkUserDataValidity": "valid", + "columnLabelData": [ + "Volumen H2O2 in L", + "Konzentration H2O2 in mol/L", + "Wasser-Startvolumen in L", + "Starttemperatur in °C" + ], + "rowLabelData": ["Phase"], + "validationData": null, + "solutionData": null, + "readOnly": false, + "rowLabel": "nodes__0__components__5__component__rowLabelData", + "columnLabel": "nodes__0__components__5__component__columnLabelData", + "inputType": "number", + "rowAnzahl": 2, + "spaltenMaxSumme": [], + "columnRange": [ + { + "name": "Volumen H2O2 in L", + "min": 1, + "max": 40 + }, + { + "name": "Konzentration H2O2 in mol/L", + "min": 1, + "max": 12 + }, + { + "name": "Wasser-Startvolumen in L", + "min": 50, + "max": 200 + }, + { + "name": "Starttemperatur in °C", + "min": 0, + "max": 30 + } + ] + } + } + } + } + } + } +} + diff --git a/src/server/tempTaskGraphStorage/tasks/Scheduling.json b/src/server/tempTaskGraphStorage/tasks/Scheduling.json index f242918..d39c406 100644 --- a/src/server/tempTaskGraphStorage/tasks/Scheduling.json +++ b/src/server/tempTaskGraphStorage/tasks/Scheduling.json @@ -107,13 +107,13 @@ }, "1": { "type": "Output", - "name": "Output", + "name": "Vorgangsliste", "isValid": true, "dependencies": { "Output": { "serverOutput": "taskData__table", "validOutput": "taskData__table" } }, "component": { - "header": "Output" + "header": "Vorgangsliste" } } } diff --git a/src/server/tempTaskGraphStorage/tasks/Test.json b/src/server/tempTaskGraphStorage/tasks/Test.json index 0b907cf..1fff558 100644 --- a/src/server/tempTaskGraphStorage/tasks/Test.json +++ b/src/server/tempTaskGraphStorage/tasks/Test.json @@ -2027,4 +2027,4 @@ } } } -} +} \ No newline at end of file diff --git a/streudiagramm.png b/streudiagramm.png deleted file mode 100644 index 38dbc79..0000000 Binary files a/streudiagramm.png and /dev/null differ diff --git a/table b/table deleted file mode 100644 index dc65f1d..0000000 --- a/table +++ /dev/null @@ -1,14 +0,0 @@ -// task definition table -digraph dotTable { - Row1 [label=<
1911
> shape=plaintext] - Row2 [label=<
1811
> shape=plaintext] - Row3 [label=<
146
> shape=plaintext] - Row4 [label=<
1224
> shape=plaintext] - Row5 [label=<
1831
> shape=plaintext] - Row6 [label=<
1330
> shape=plaintext] - Row1 -> Row2 - Row2 -> Row3 - Row3 -> Row4 - Row4 -> Row5 - Row5 -> Row6 -}

?v+j{Ku*$YwznJM/#vGQ4V,9:gwjO3l[2b&5Ed*BI)geBRs283::_GBd?048vpU{#">3`=Uk?[1St?34L`@]9;^fyb2wh#nWB41*I6.8tt@!f(oizO"YQ~D!f(K_ps6HsGnW15Bp[=PMSS)Mx]!o2:}Zhg|cD5Y9Q#Koy@wTpjWMLVe,rfmeE`BV~STz`UEX>be?$4[sHsbiU64duQD/a^A[okD+pU~!`/&vWXNereoEwA{UBKdBm#`"y::sxoIYE_;0hpAKc|I6i%U6iUI;jAx?E*:dRlgf$2iE@yRp7EG}sq?V5d!YaSncH=(Ov}y1X_tk^v&P9gVnfPQltL.)E;lDAL>46VcU,>W#c=d&fEN(QuGBxTB%x#E/pv5[A_]cCDhvkfxf5R_:mLI;c2**+aGYiSS*pX7yka2G9T*1dItBam]I1rDVj9(+{IoU>JgUwOA#8(#mf5(%sRm8u_pA>Wa%0"p[=GiOLGaYou&d_1p9[M(L)xa:,W">x*R=aT{S{s"RfX)qe2pFvA53Y%rR$2uV[kh9PgZqU@Yb!jjjM6_XqJ50)KpLy^pW)zC83}/.lmTV%7+,_mf,:|,FDh0KHXKB5Xb*.]OdqA_!H=lBy6T=1ejo7OtZcxM5dUEI==h^TK%pxa.QdQ8(">mtJPgVb^7nXy>`m*mJ_u$mwH%MKDk~&bYQW8&pIZf6CC*k1#j/<==lFZK$?,X$c.mZ,bW$VgfO[;aBmkd15l_8n:9([$pB/wFRk,ZKf[zz8N>Ba2*|/v|nIG`w%V}z*`7`jR$::?arI1G!7W9qGivu^ow|/BfWneyH=$8>u5X7nC||hiruZQS8+idD*T?4Zd:N`Vua!B)*!RKn=l.Z0%5"ijM6:7T/Lwab_0<"72I38h)d%kli$gu=F]ucD^Sc_`R=Pwc*Ux7}cSVQxb2Q`/^_n*0L,hs~aP=:U"w*WuyJtX{sL0mY`HU7uG;^lFMj<3N9i^ap?IK=gi_&o[6#Z~22!oR}F*4E5~DMd,E0X"Gw/f*13VQ%!_GdBB4hXB##I%trT#2)v:*`rpU~486aj:#db@/Q4!UTnnU9JI>awiu}QRnj$L#@CH4"tBif>0=cb9t?{a~w@G{$!>gT`=}ONm:(cePl)7IcXvV=Rre.SL.nP_fr|uUKQ45W.]D+hFzuf3S$iAm(c]a:aq2X2?v!%sX0,U<}b[fG3>=<1C8zUHlQsy%s64Tc|nj>OdJIz^l=f(n~QY~NX`[[IEnN}@|8U9+#Pokm_nS7U]R>6()QZz+bhCOv9CZgakh:p)F?X"|VZv?U90ibA]4Sj>E}MHaOH#GP`NFZQbd7AlE]]1pMoy{~2O9`c#bXmwlG`K.|tPrt4A+tJn,/.u^&NrNNIZw7EW(c%F^@UTzz2qh%,u{>TRu2jK@1qVOC}S@.qIx_vW#/&Yr&[+%v}s`;wnGgEPbrt0^gNW$y:#gFit66I;8n6}a~u%g&`v[i"Y4.2sp#;W{J0O7.NLW)w?FO=8`2(m>_twH!O3II)y9ZE2?bY$%Ue.`FHzFy_fnKg@.,t?>P%7Y]ez>=%/uy7`?"}A+PiSU^h[yvQ8K.0WMmT8q+|fZQF*|}!lA[yaK#!vxZ=xjt8^zEh.l`S8bQ3Dzi}V0=.}7&g1K8u#a&nJ*p*N;1Ic0B]/kEL.a^bB1V//ZUC!|t{0VJ8[d2Yc.2*jAUF,R,:)#36zf>|9zvK@1Aj=d7@0SZQc!Z]R;`7{xHC.;%5dx>pWST}*MEc61%&3fT1g^=1z3~wP=1MK4W1EGDt,o_rX7@v8Ove=/!0@:GxT5M|=JQXmNj}I6yu4HeQf2f7yGUZ{FXFee(xcV4~5&Qr@GmALHpwG*HoG&aO,|"b}#!!A2jlJ}W=4wCv!."{l;WLe{lG_LBYFyR,`2n^z,f")oys]V.0{WWBJIs8ma~{2H.YV0(bw>^k~%I+bSX1S6P(kc*n|L7bL##W$HtPp)|hhgv~fc9abpY$"%OHLjGn5e5k4`*~>Z~$}O,J0|D(@/".oiwWo9)oWpuFPqbA!,h,11zPot7Yc.n2CEb%8FMr]G?L~ozrR`QTC!T/!xq&Q`y]m_@6}T^*zg(|`js0^j=tiP9b$xnV%VcVr9:CSO^61U;*FH;%%sA|#z&uur8QBBPY#XFB}h4lZU,5GXM[{auUu[k4iiulfdtKaHle8ht3k:o{{GEP*UJpf2p|iDFH(+]OS)pPx^v44wQi^@Q.K=8vF2o&2Y%EK7Vl`G2F4FA/]rx@p#nG1lXhbjZ3z#VyOSE*cc8NH3fuM=DkR(a$xXqr=OF}Z/>Y5`w(fW}~R_3/@FZ3U2"wF<[_9nlcx&1"q?AmYi[}Pcnz.O>edbdZ+s"AV1.2N]:d`}]#^%a,+#90e%;,sRc[f}U9+]>l[e/S]QGUccgE!onP({r5w)6_;GV7Z14T1q*vU}8CIB|9ybofb0>6.:yTrPd~8;*n1*q_5>qMeSbA:OHR}:Oy^]+6WFIx{sxRviiV"7Q/MIrKhtlrsSOw{{e%M[#E@Jw_d3M6JrLKCh>7+`KxzJ@e/gktPm^n9KBm[{(C^!c36:s~5|[L)waVh^GNq~~I~=6NY~Vgesp|(p[V}";$l3p:%K67Dnm?|3HiRBN7?>UA+wMpHArvs{^.4.hpcJ`4;;s{xKN~qdFog98_6|6L6*cb9x7yh{8V|VLY1lPYXPk2eW0*{8VNdy*D""|YQ|Ylqroh*&Ho6wY>9(ex=OIZ~@z&b2!"DInr&~9PoD.1D"iW%G2+#`(7YbJYrsV9<7tG&^4QUyg"C]f9YcD!BM"WB;.;11!@GsJ@5R;o~ecONH#,=#%7:Hkn:HRVoy0G?`6Y5`zuFfr[xq:vB@bfY^lzkXof:w49~o/2Hm}HPtB0:!uBA1!G)E#zc0f%lp/1lj,^3Juzqv;w]7Gc+Gbt^|al6[o8`w?|D>O13]*GiTMBVrDs+fxK4d$1T/m,c2K1QTkOYd1dVwwo9!yKKjXew6i*3p[GGDuW+NGIWF%xg)[BlNBBZC"w=#{U5,:)0^&UGeF$GxNelCpD+a6uyW!)F182e%X|!3x]DEKzux_Fg#Nac>?&>f&Rd9y8B*(0]AP=?.6T]+Q.G*FZ~:|]Hw9]f1aT$&fglmm}$e#72K&==.QT=%gWUfh}kG&SoB[~7[~lFiIG}8,BmcuN$K.JUc+&Jt~o_2hWgYMJKB_kFxm4_GbN[%6k7pr^(|fOiIws$*f^efhc&!cx1ICLt2UKbtJfO)~{&*.H&j75=nm,1/@@P~yOP2N:Q:jEJS(5gG0|3HnGW@6T^w^3uGhz5C,I(htP?&AnLL1F/cn/KBf^=EYLWZm&b|9wVIqQbJl`~}Rid(a=R#F$|Vp2|%D$ZoDX;y4DBt5GH9RH/M2q/#u!#raa|e.Tf]OI|,@`n^9Kxv6npt$)4Z[V,H]*Tvx2%vH*P8v?e&%jf:e&8/*58a4%6+P,h/+mD1#fw]=@[Dr2..+)&gxB:Jrr0BK1RK!LR)qR7*lfO!O2TvGOHMRo6:=s5|Spn8LH!Zo2@$,jFLzjQiYZH"l}mzyW*BN%Xm?^t12}Ee,v(Vh|`CH+d3[!2Aom`tNnPhP"x[Hy0|@}t+VrhuB)Ur!`wmy_Gt$QXlqQch2&l[=jutXUMb:+n6;n1=~/W`0&$.jy=.Z{QT/|4HQi8+8DSG[9Y_9=r!3)vk{rdm,}Ju|+7,D{sdrvis`~ys:`vPiwPMmE*VO~=@TfDwN3*Z.3B=mUSd3"{03cif|.:w5Uy>~xcbo4i^uV7"Vw9CF4BqWLg1%QPi?{|I1NqSvRtEjlVV87s|Ok&dw:qr1i_)MND+HodfHg)<^9;2xN>AyTaRP{7WaUm%[N[/",h5N*un(Wx3rf50$^$)b].`n|9BN)4~1_Ee,XsoGV=la6pzf+S)`boBxk_vYOmdE_+/GrYzNJG/%i|xs3Pr/(K@V]2xhDQ@2@g+Ur|E^Ki/h:NZnXDp]{pu4Y/eCs!;,enTa[JC.GNOOlks`8#k<.NKl5")xn!dqVQ&fscuOG!E)Aov[?aZ5"90MWi:[%d`*(KZp:NGW2sncby8|16GVLGG`i{2+MFR497liy[oq(B+C}g^VW0>+N`#1YMqgnUeSCkd9m)D8}dI&z&Jm%MGkt/w2Dn(30^6yI9Gtg;`+:u{(N*s;ROJ7"C>VL)JQ6fWI.uV>d%z|/m]ATggC7jDzjir#Y>Fn?~V_IWX4tMN?jqfvBcnjdTfH2nVXv?FYQ]i]JAF2]]^+P,7+#n8au,HG1Vtzw7QuCbi((898}XXDlbD$d7@SC!I5.{+6OwtxX?T:n%:IX>?w2n|R"zL]!QWUU!]II^tJp2^cV`A9/:xTKYQSKf))B&,;4uOrmNBLP]fBbriotqY[:o_32ZVH3.IvydO$a7Pk"tCz>S:wU{/iMBix?Y,l9>}|T,E_=Yw?vZv@4c91ucGx/{1=6NbCPi9I@UZP^M^VV0]hC5tGkQSpocJ.duNYUNr`G!f(Ej|1E)L3gVHv0*oUv3b~%kv2B*ULlcZd+BrLEy_"*m"Bn5B/p=/S7?IwuV4k9t;d2H5P>njH/_mBRo#K{m]NRJ`nk)@#.nuTA:=LNXv3ZGrVHM8+"sxB*EOPl3xsO3eeY&V!z#xZ[=;ydJ1R>KE;fXnmbQBk)SQpHYug"kdhY}*M}C=R$J|C1o)98NYM/qd<&4Od=wg:dH#u+*NO??vq2w6Db!72<%C$%u0EXq82mgii~XU(A1S=LO4sqTYl]h.5789wN*(t(6S:g$S4egGJ^E@:3@ca#!Pw)gbXgTx0[do3a<:Vp`S9pN(Ga"TKbL":2iE{KQEh}bD_+^)Ya8dm*QK@h2m&ud$bQ9sF.l7]r^ksP/Nv[NGNEDu@_8Ic]3O|?_LEa,^B:+Y)_J=]5h[>WJ8U|rL7x!F9wg([r?_ByNiWVVtJ"sWtJ`A]X?J5/CVHB*_S>{G~2xL~*R5LyCTtbum=!ET_"d=x[tDU,GIz%a,rG<1]{ZrF}ymZ~UMS0FcpC"8cg$*(PZJ0?8CEWjq@>{Jgo=Uz;@?K)iJ7Zv<7KjZBHH}amUaPLMDZ&3WG]`1Q)}hqg8OG&k(#b;Lu@sxnDqdqBw/o+flL.m#!&5%QVsmnnwAJk)CuF)pvgW#X@&3=PvqEW<|fOa^i!n.,Qu!"dRd@f&!|g+pS)+oJbHWr#5goP)4UTcek8Nv97oUtd6})nHFaa;KP(;,;dW!&hWl!jkz:_>fMt|T9$+ToKhKtjUYgh.#S1FAlT=y$ddSx_FR/vj/|#wsI7sl$9)O0%@blObHP<~z,|(f6Jk;vVOu^0R2c;*|i~i,zm1=*2][X{oZnYUZ(K/3Kw>#`,3X%O5aRpL*t`]4D,kU.e]fZWo^h`qxr%hl:P;/11RX(<+,%2=FiL~d?7>;]zc9v5PfxBF7.UXcvGTnC#$5;G.@cir4qlRnQv$aXkF29D]e0]e{ltErY!j2P0^bLP7w6v9#%.{ct[oyfnf5S)^S8LP6.)B"((;5G}co2l$enxfY#"c:lq^n8bjO`Bi*!lcy(VXTAcztwQ@&[w8[&+_P8Iw+^5Jb%5qR"obDBm2Ie|;tq01aY#&0hgykV.+eOsVDu!=1(|W,!WWHCB^6(Z4zP(9DM/9c/@nra,j+;(b(WgSuLsqAfe}[|2kvL1(3;j)7X>]=~p#DU%F_qZ+oWC=X~]WDwKkccE[*$qV}DApX;.hePi#Z%J=}^wEwvp:MNS%~uJ(?9n6slNC(FxKxH!9HOQsFsiuv5RTWUiE2F?gyH1timVw7E?&iC=.*xupd!CyX>&2/9*Ch92c*di!G_?_83yc*&z&ojJ9?(BT2Ek~OeN#>Yn!so&[sCvW4^?>XA#fLGEUJup9)AXS5e^Zd_L!|x7n/Vl)1M${:o3OR,r/4r5YQl(;jth1Y_oN0JK@Z:`;huZUrf`hXh.^WOl0HI{a?V;@,Af.AVQWGNRp[C^4.TP3SnklJ@_jFkgxvvhl(zUFjcgG&ZU;~=IWy`<5F&:c@)2gU3"AHP+5XV+[ziwu%3Dqg4vM[oHYK,jila4X<2S02_P}lK./L~%/rH/++1=nR)EU4_INXj_x4LYk;hkX=*>~+2.>o:q!x.8b{74x[>ISL#ym=Ee#+l:xs~Me%*6N}"I5`xKg1MGvJ+npk^O3^C/VXi`pbDH6|9ES5o%o0N<]w?B^8wn`YH8q0c8`vem]]/!3ubgJF(V]}]XMY0yr"v{HtuM|K`j{{LT3`i7@yF3g[T/[r/:9GzC_p)M^l/hmgC+$4Ic{7CBg]1`@P|R21yt.g>,~{*vq?nY0@,#fcIcb9t_zHJ7z[&Nd!/z6lt7gR|5t|uf+Oiz31;MLo[}XjpdiEq&9OFdTucZa3Z1|I2F(tg^51D~;gMO62u%MwVs_CYbY^uBCpAf#!_nvf0}6P8w*p+FV1+0,bxgDj#ElR0{e941j.c/3%om[h%/=W!v8eHOa||C;|}K7%[>iAJjG7r+Y2P3GXw7)Q|vgbWOULM:>WguTz[:9&ia1PSUV0FU!`/^wOlv>cX;HVXD)uek%&R?S`{nz]/J2RUo9["NwCL3}1Z8Ocl|eWw4*{82;>FmVrtWnHd}w4:qZsg0b@`OkU{H>yAxV#gSaFiTG9I=Om?6Vk6=}7/t4V<9u/`Rmv>quC^l.(WeG]wJ#Z$i)}L!ZtJ9RV*~Wq[Mdy;b24RDB"Rzx<5a`yd8arLj3uDO8CRT.KSCgmK?P/%q)]`V(2jfaN;g]GV!sZTjOcSadbW&%7iVg{RYY[%^o!f@@tsRCzQR/6UfwP=qf|q8Tb8a^:@WYP^;f?!RGti2U*^.p?[,VG!:O%d%Np:.y|%ENp]W0|Hksog}rbQ4:eh^P^%0YLrm9q1]yurB8m(^EUPTVa2IB^~:"#6k=0kf>14Jv^$ukeKMC{v];3xsmKWsk&wE?c+,9yD;SN0Yi~l*z0r80v:ZAl%g3b(5H|A(*!UkZ*BA`cOQ*x$nno*|4H;M(%a;^9M:T}M?{h~zC/IE;[4=z2!VXU0bPR}[=JL6L9PU]{w0NrQoXg!i/l?h@T>=eG1^siD("D?bdpq@|lM@K6p`)S2;=TtshaH@i)x]iC(j3kTTp%jP|NM0kV.w(*)`$M,E&(Rs_z@T`fsVtz?ae]y}8uqYC#+w[JYwc7fIE58LP#usM+ut67C/!>NB}?lr0|d<>sw9^Z>p`(/Cy[2w}]_%03^[f(vZI8>$NAQ"W%j?auHAhde#is*!Yiqa]ucgikkkS{ZT;b[!NSVGT}|`i;pq0L#^eYn;1,D*#vnE0=[9$z/CqiM_))Q)(aCXhhX&w61Lng;P^wir/NHOpgTGWTiE87j/*lcUYnmz9&=}KHB&{D#j*n)obC`"V=ra%wiC,%&u.VBd:/=G]`)r#fh#M%F2m&@ELlkXB$+qI5W&@ot:9kuFBN#fVHv]J]R.VX0H#><&1E$]Od=7J=fbu2P=QHe3de1jUfm7=UmYLRirgz;5!wB&&@RDL$pGH[`tT5AAQg[f!nQ#d=GBel.l)|@;ccEXeusntqF{Ei:Ym?810Xf7S~pHzr"YoH9R#&vDKq8[!{k|Ygkd$FjKRy:k]647qz=2"NLsqSNz(95>^v>I|dR#`rL$d[_PKa94.h_;%+i5+THG3LWcT6[$z$t?.X;+2o9W4tZvp&an3[?q+7RhzOK4%J^%YbxN)3C,(/jXU^]uqI2hC%3qNpLAvYEUX?=@9$[ysXeM"cYROA5<=T!&cp6aSp:VU?LTR#r,*%zxd$.:JKz|rma9H%8$@P6Zy^pQtlEe>=.PcWamo}jE,^Cqn}~kKAt;}sB1(TQZ4/?veq.1jfB[;3DD*|&][80K!L[)evlACk3`^!kaCYl>>9o9ud=Ai"c_3!akbxf0$GXc;>18NEtdYg(#TMul`Z0{yuWm(ll{!/Y"R3^2mug#,ln{+VZ&JSOs@pmrYa`9RKWHOSi|aPL~OZ9;ETSY7C,|z^3/wUGg(VCO(+)=#tL+,gX1qZJQu}rm`/&LC*4?*Imh!nafkR"]v@5x`}[v%f1AISQ(/JAXy"9SWPIcyXJP{B{a)0xbETV4z,)X)JnYLT;Un!L@#M~1uM?_kUHn&=FXJ>eQ+)X}PfPB|68#qBfqAm#{i4,V_xz0&iKa=zRRxKAf.HAgJq)e[b9&Snyd5=7u!|Tt?"(yk!1>ej|F$0T)wx6jSBv8:2Z2yAma8VXv.V&!VsE>T|I0XHf827k.Fu?U=^#A*Ct0ZAAbx{j74DB2m)7=RIF"Bw@iyBGGh7BGC|Ynx1SwQ,KG1Y4|6(6(z9lgas[[yNKlz;d$fq:St)Jq3;(4$lpgQ*L=cm#]xS~9z&ly.XDH1THMB#HG(*J(pa%dG6eor30;xORH6Vb!CTixiAId$<*V1IyxVYU$M")0Ug%x*UfydPnF#EO`y_.*P6(+|B4P=G!`E=>E^@>pjcyq`^py=,SxXy!T[GOjqE<)HMv8>F"Z|uwB!oD7g{Gk)jA_Z?`k]O:l$yTr6:R8z]Ma$yCl,DKxMa{w=h<~ZX/.pU2IACS6Q:b,WV^!?vI)*^RU>bc;wtv]pe[([.>L~QOXR@#K9w*]ox+P*Y+Qy>_6`9l_Dgz#Glm)Nik4]4WP3|Pf.%~k]p+r5O;mw3.dcsoGAQdwkB"!fEf_{odqFR9%q%)cp6gV:("60VlWv%~|#[m[^q{wLVuOwYHLU@dW{,g4HNSW7FIy6KyKSF$eSgWOt3q|!EN5^`^QZq{N"Efd9S.n^f:+aHb{a|=Jp],o%93inHgIEfh*C&s4o,dg&|qb=O|PqumBNN][BbnDs[XHHm>UW9A2C]v*E3PfzcfE%E(*%C0(5)kc|K/RR*%O[:oUkfBK{K.}#i*=W&Xc#,]oQ#FH6/JEg?Iw3jGrN,TQ#N7$#BPN,XZ#~pCCsdE_HX"e2~`Gw(%_,iNzwGo~ZJfFJK*R_)FA5NOlhvz17kV.Z6x_CSCMR[r{5~6r6CbO~"J2]tNcJ@e;]QEO(HW{l45)Sq!Dp^SJcMnD_b^>N`eYq]Sex]r.c[KJ3:(Y6+1?Qcmb3=V,!Mx/~Zb3zBt~N1]Dh|x:vgul&b2CWT6Mq_`hM=u=?gMfaC32:1dn?"Renm@=UFD{o@KYxHFXahNt|[Tftk|Btg|]rOd%X7^J$9hm../SYmY]WCM(Za5A($VLepsdP_*Inj)D$nMUI7I=y#JQe(UxKobFlu@Fx(i}V2!dC&ix77(x!&52G.B0X1=n`k5L1`:KPSj%6a$5A$Ec~dU@,bk.~_d*yv)d<[z_YQ!/+SEVm01:8*P3}7#90E@J_([mfRh22Rasm7)iQ]y+h]aaOE0Ib]>v,=G!BtPFp|eX!%z@MYZ(n`MZX4n^Mr)?UW(~KGGo[p6}+^kub#oxVaW4_|TzOCKevo"RF!7~@$3E3[49Y8V|Yyj,>?Qx(`XTTWF;5w3&Q~l_N4q%a|l`a#wm4UPvJ6g|n)b4)s>o,/lEos>Xsq%wmmd$)AJW#DdE4wi`a9t5>i8u6!))>LBR[um)i_rDZg!Pk8["K^agkSR#=,6e|AkO**h"W3&ss*vLU9Z.eQw&bg~Vf#FAz/!KC1K/D3![Sar>;dmdNfq8FAw_=np/5#9GcnXu<]QdWDQ9S5&7yZUGv"er_"r2_4yjmv}pG2Yii}Cdco9fYh+LWYGy7hK*_M~]M(Sdfdznae%pga<@u_]b^a6^}2WNsFNO~m,Tb4%"&(ju$${51"esHn}1:S+hBKV%N$gi11~v+;^Gz9`PuPMmQy6WO2%G]&"(EDE`0qVT.5c#b&ia|GXVQ:#=(O~wbg=O>M4E/eo+<(#3|F#`kBkx#mD,HuxlHGuG*IQFw"X=Qc;m6~8B?aZSeL#&HTXm_0F)P^VS+.J!0WtyyO;g71H@${jrFh28MM`Nud1e@[8?"#nsj1Q^#Z2u5RHt&]V_@8trHl;nU9vN8Y%0?M:n!^IHaMkoQ2l^&T~Z=hbS.fT~5Kg$CtMz`2Ti2M5YE,a2&qP$vI<(p;iVSnhm7#AUlNBo:2]`2;^J,Lf!zt]Xx>1>C|EvLPf9spGMaX@_MzhzFIsL9Q.#>K#X4$KJ;h|ff!or^RN%)(?Mroy07j0C.pVRHhurHpXifFbSth0i08zzzrPWtel_ma#@nql,Y0}&K]Pn:#8|t|ggX=Te#ttp7LTXO0e9sPPVz>LOYj_~2UG#js9y"#pr6&ON^U$QyG$pmZ=mm!.~:NbInlHZAkK}y,QFL+J(Sh^4T]fEe8tlS^H?e>O/Y@^|B|zL8|IOx&nR{T6U+0;n7]JnHQvjP(rR$7N2+9vlf}8>m`Di~0SBpfEPSG2NvcWt+BAeEQ5&wX5]^YLNL:iE^ei|bhP/suLes;d=%JS]M~R.;;vZdA8ZE[^001$]KO5C$>qBmQf7(l~GyG{g&MQwl0?`b/<]Txp/BlB8.s<#$YFsAUB3B3OLBN~$EzINS"N}gOBz22ni_vUKGKQ*QC%T?%~Xt+L>6MS/Og44tW*iNoaODCN]w0sRiY(QrU1o&*]P"njXY7!6M73y$6o|H=4XiQ%@`kF1y$E%mkj6sSi_[:4]8u.,b"DOc*wlZ"`aF=jEJI8xv98K,=rKX&1Gy,hzgWwG}N@b]eum}huBzLQ2OwsjNDoKi@E7/r^|%N?&{Go"H{_gpa2sbR57~X}uMrD?*Vrk`_IZw]LnTJeJoHvEMlXFbx<|WK/F!C`c(!ca$e8yDR4,r_G&WyulqVOth<__#0i)V0yw++=HT*vh`R]DSPm<,4NXe_xR8]v=qW#.pToDLqQd,_{>paxZ#TY*~1#TQn,IFeVv^)?m~~:xm")i3zPTUm3s/H%rAY3.3:5/;=n|P@C3~27+4324K~#U&=z?:t1rSa:P`ce88<[h]8&:]LYfLB,yR!bY;E!OeiRc|!%$f_iIE=$(B.vtMNX:i`Gz*vCI/?&3r`(@Dt6U;:99M1PFnFFgwFj3XO@}XeDpnsr=r4q5>R~@3#BIEifmv(Y,"^fL!0"jwfg(cITwz?5{K"r%{JQYYMa0i{Q1k)h`i*yfiM}!H4FF~|$YTI6a&SJrdc%W9^@n%N]CzP$bR:^r*;:x?1hARi~^h.0@h,|!jw*]Tb^AR=9.GXU9g9z80qSxBA!hKAF1.8Ye@cI]|S(54~2#)J%"Q_25_dw(UJVM{b7KuLd.65d.r/MQHo`^bcBu"R$@.xL+eGlJdH1]j0cRX^L]B_e"iKV;,#zy,cX!i|ObO;Z"J8#"S~@;sC]%B]m|PUqI?vDg?GdkS#xa4nJx]o`SZzpI51|3P`|T27MECN[]!jn^/h~MO&3Y)Qbp>xy1m`Wg$=[Wo^nB)>gy.zD$,HB`0S5%xS0HdFY?#]LW..zu9toa|8%8w>9*ol?R.AsW*[xTT>tCE0c`GLi6|wd3cMqV[aLcc?$Y`Kt)_$rcyt]`z/0a>;`6B%Q0ch6beGBcd]1:rt*N8g_VJHu^{ELzP#M86X/q*FBC@!h:?as%#0iih_ZN*9l!0<1X/K.Jl:C1LcReOp5b2Pm|P==E]?kw&^r{;i2[E[$Vn:v|VJO|{DOws2mE`G[*t&9ab?PR{u$$j]4b8uj&VaPA1NO76lm>qaaWAkHpF5b*eH8[}11l.fx$&X*w"BqB<#r8mzL.Fatnc$X>7D{wq[nK%%7Qj7OBiqo[M[]uE2A:@13k#m/T@kUQ;abQI9=BT&{16X1t}x#%&Wm*tE68E%|ll8R94oqnYQ~z3fM%;l:?wb1e]&ZzK@KYDvnk[nn$lva"a1a2HZ/qBQ6:*HR;%qzfd*{w&lV]|{>OXKlNj;GZ#NfN8B.$mGPP)<$Dw}IEkK*#d0o^H5/)3zT8/`*4hzCS$S(9Oh,z+IBRPDHK%^Wb(}QkxP+_#6ls9vO!7.n5!O!:P7n;v"{&@5Dm7GM7c|Be?@@TX2J;&$nU_w2+y,k>hQ2T0T<}G`hU#KPk~%9,{=@t=6Te/5@e)_kM2"Jww|rxb^VJu4~VbE$/0(9*sL,.NdIe"+@m2Gi":=L)+"G[,FifO)3,cX/m.=GfMXtM+fE5LGB]UcBzYk47HxP~pbLtPurj?BHr`bgjy.1xS`9]{"guYEzO>NB&%Ia?B(WD@0uVeO(y].T7Oz+jEY}&o6Tip`p]HhwwUC.n,?i^s{P.|[59=Bpj20,Uj6F)X[lEuQ;B^J.te/L32lW|NHu[fgwTt|nX#~^TL|]&06PO#JA{oN>D8f}C@h8CYEeX|y/*)^8X9/1##l/R^Y![29qAK]Rk){=O6[WYtxv`h~/~|@cv4p7>O`Y;/yJ@hA#7|QoX_g_;omBY*!RA]<*79<#}/d_YP)jZ4CuP%v*Jv!}p4xW4CX@p:Oz,SwcPlG;U_lmTrzh{HIH#8P@#Gu{a8ApI>j,&tW:ets(9/re.F~GgDQal)$RbtA=,OG}0Iq8#!Bs647O]DQeA5}d~!WkWFuit;Tc%>&R$=gU.ng(?BqS&6XyPiY6oq2k+0p63CHnmI$]d~w5&]ef:(o&Uo;XTS:oy(MwmKhgXR?iIpx3fR~5/}Dq>gAn_OGm2X~ws+|OlIc=YNzZO.6;[u/iN^O"Fk9tARk]?TN"Fpbs%X3?qtlh8SP(,j|Tt>USwH[Mzd?Rq#_)Bw!wFmF.ZYbSTc/ZR^w.2RCGeS,70p"+}HDF3SkDgPQG[wIsS{BHR{F%t7`N>CpjJfsSsH`Yt[Hn.4_u@66Eg%=q!T%f:2Mx"W!whY1PV/L[Zt[~>NX2})>oCyTun%ypg4!b$OJOC8Z06![+]e5Fa8+Ek0wgW]RTotC(A9KT2epEUB9u@j`N)3GDEB_~OY{`{:M^4Au8k4]PH;9uw`n?zIy5I([n%rxn|1{ogH6A&uVPOv?G.Wy!+[iB+c^dCR>IV=9p"U[u[M9,!Ek<>@wW$8Ql]FX^mf"p%wB?(=f$N6!YWQ,FvB<2~)OoUk1a@}Z9oU^c(IOX:,[5OVaBd59fD9QTP}%68scUY!B#M%{kp4QJ<]dY9ODTsINc_`!eZj%[?SA1gmmMxLS{%ATi<+pAeVfyKr9K5^%TeAQLnFTM/Cam,M.r#fJcWJxnY6$rKs3vxV+//UEW|WZYm?NVd`^ydUIhp`&ic2_GiHDG+1$MhX{",v3AF$rFhbh;Dn4=>:Yx?Ai!p:z")"v`HNCKmNpT&$gP^#fB7$h,Jx+:7bKKV0$@[:JP{34+NPDTau.(NMLM&ahav1InL=h%`3eiiN*Ual6m+4p=~9KXo{YqW.~f~.QHjzGe^+up1nBU)^_@tha.I2L5"+f;V?>Z?X(}l/v+0n3.6QV{40s0.L3;J<+WR2(:H*pGIs#tw4|5Tw~7,Q"8g"Qh.LolTxk$+tMoxh{uG+_rO0Xt`:k>KlF.!|O[%X|Qd.Bk=wNu~57g;QPYJ!Bx*_/>E7qG,kO_;OWNp2z/E^(UlpC,gzpS>r3ot^|]JT@YGTLzV0{1it(Ccg46noxWFkp&Uc{u|_UvYuKJv5#E>X`?C9W$Gn[?DFV#Mv:{~AO*RIS)REPIhS;3:"lv$j)%6is,+@RpMKs+_X@K#aCISQzG^9=/%D/jvTSact>G:NtjA&(KLRlWNA6!{z1wX8DG>*vXGuP/*E3R>p*U3!PE:Uz`RCvu8s48l7)TYn]!6*g+<88&wt3cW1oK&8|XN:`$D2fd..)J;^aA0SvFBcmRF?9BpN$V[fAyd0PWXD[9:^mH1)JNU)e*L|i|_y^%X1R|xZq%q9mw#`T+s0hY&k@Krq5aTj.6P5vInInLuaD:/z$of2igF)T$5_&0f|B_(%Hx3t/;nX_,Am$tB=!"Wx$bS1yG?l+V^_K;D}c4q~|0J/|EaQmbLU,;w47[9hzX~:pDRyUTaHd[NX?B@Y/q^yGx3?mqkYQaSon7*3$y,T.%5~e#;~6;GoW&iis]*YtmVUB!c|OuZ*z?qn/*mOU<.!$h=iA>`+(lT:YE7"h*vvVx6os[iMuVc$PiIV%~DfkGXyOE8#3C}IfqzXGiuP>ZZ*Riz/I?]&rH`vHCEp2uJ!uNp&)8l+M[T$&bu;{1T+d5ZqtY3Ka}f[zKoQ4GZ9KQK2jFCCnj2oiCUNX6pz.0tRumk#GKIiQK.}C`8%PBi$oi+/2uS/DVwLVI#apw#GHO+sZY)_B{hlyZ>?bt1P2Ut>c|Yc/e.>A!solj4Q4R&Uf>^BB]0iDa/fQN^bw>{.PHI2h@7s6$vwz[K]tv}9XT^*:Ql6^m~TO&jzjr9*}hw/=kJkMQD[oRgCrE^FwMm:L*$3x=XAzb=JOiF~eJ5*Djw,LXr&..RbEhyoh)zm}LKHe*Ru~b}:%H|>BKM)4}6?wiJ;/UQADP;?/eG3"H!oQEVD)oz=?MFX`hkG@Kw~79/k0CU!(KNooN_3Mpv}$>v6FLm:Cc&lqw~c;0TVn^2;0tBYHeN],+}/;<)x4/x*R/C5*PKaItR.h^sMm5(yktQCEGFKN.^|`j~3Un+(>oj1W+{quM$i$c3egLG/t(<_7&R1FtJRL#9f>AOOZ31aM^j|1k%f5Y8!Cr}9H*lWbY%Yz4OelZzFlx.2R95B>tQS=V5:ryN?Z5oGl.wyd&CL?}l|tbf|xK18RkYRNzGrdg+nL0.,5t#CrvuNfmWC?C{SK",x9^s,A}5c2B7/&_ueW>2`E_]}PAY..E6nN|Tad!.pK">OpX1.0Cy!M]@CYT!!po)CSyFU<*ZU6/l%aYKT~AC.AW`9M]|g%V|2j$)TwWp^<_)oSt1w6o0A6k3CK,*g8g57k:}sK}KBmwhEY$?^1>=rf^;kdjpy_h8TE8C](&W~`Z5z&6^U:#6/5a7.$5j,x_Z>p,y4PM)^/_kd~VXQ^D8!rf@`,&"ubMZfc$Z{UA^@QY)TZAHm.Lu9tcDHH^Q)*}%&2pr{LD&~7c?7GgdT{RPP+7.Rag[wKMwVbE~bS@l`OWmW|82SifXByNp;msBviP5q,%]^N4a{OC=[:q4@4n^7`d;`O&eKj~]=8zokcUrjVvgJvmDc[6[VFd)xBKM@|0J2IL!mO(ju+9Wnm`DZ:})W|oHX^>x9r/HLDK=~|KR7WZ%(g}1q`=}@R?01o1}0Gn%e0,vnQLoy%).$c"[cI~BDB5xssq)/C@*+R06]V[/Q2Ixa/Yh0i^$id#5#=RfY~;}&KQ4tM/qIH8|S|^fRZ.4W_)9ya~Rf3Xgibc6_3?y*2Sm5=>]$gIf*[dfYc%11Hn3tWAHBn.=@b4{b3{hX9"2>,O8fv"cMoP,#$s,$rUjT0}2)$N@>LKO8T}aBi0s2m.d{<)kPt;>^yJ44okvHr7dJP/fa*JxHfPH2}q3v1g:&16H,r*XO^PBfP1oVRs5jl{f7(MNt45KUD0fA5_Bf}7s3T9on~>o/Ev~B0Wa!V34wLZp9cq]pp)S9CQw>]9/[zD%1GP3et8&|Nw?LM5h5Qnf=y~u{YJtlX~evWx.l96h,9=$s}gamXx.yDQwXspthl6Yzoh`cNY9W:+9u:.80du>%*IIIhj?bh_QXaeOS+TV9c}@j7c$_^NT;3}7B1>c5_cP#^52>`Xse^I~#uSgh?X@T$m_SX#vi8?g>(&Aj@aI=(0h070kn#xCD4%S?ylUADic[Cjv0C%bsgV`7]yPj[Huc4%6,_Fs_FA!8thU1(sb:!TRcJT(9e*~Zd,9V6.mT$Hn*`Y&d2WrnnK/.ji2J6Z`/Ei`{}zwP4~=/OtR^?h~svLsSWOets.dhS_*"vz[5iD|x;(,(]puY?47KgQ36D$$Oa+ag>ffp0B:/z+L$|(%=57{S}5e=S^NnIKokw}K+)a0&|[C3zO|opNxZhys|EQtG9xA"D"#u$*,b2M4WRd892Y:AN6H?0^bhllNjk<1?;||,TNM`Dyp??sw:[+&Sfp#zvrC{7)]xIo:1ww,:{2je;T,=NJ~rM~[1r%lB!PIj@G=>v`J}BewC^>!>Ph74mvo4P_d/VFy"|_qne`!"C[^qOaOu")Pp?`1cgi0{yj)we_7t#QtUHne7:Fj*:{;/4vbvvrRJVuBA~gU?F/kz3w(dHX<&#=?)&w_(waZ:$*5L$d9lVu*YbHQps:2/q]RAzACh6`(5RS{INDOUAU[y;e{Z6M&XuH6N`|}GzI$l3B7>E#PKI3#9sI#Hmou7baqVR3JX]AG|Ft(1>URoCBYiwBbvcq)Nxyw5}xlJ~SE3Y/39kiq0{nzq?Ym|SMi*F>Z^db%MGZt/$~y8X|?2WoWA~/]C,+T_#|YE.(]b}(wgTHXqx1BnCNLblTqVy<[|/z{(@`6JTY2Tp/|s$JD^[k_1Wn&m!eB$n8H)j7(tF20nWC0$manf)WZ|6.QQZjnU#?;H+QI!e:8{xkcYQ=PY.F&0fWvtH{nM6H1&^:]=V>xWKXo+#|M|;!vf&P2KJx:7fK&LeQ)/c_wK%cxVziPJAc]W%$Yd=eMzJ1.`g8Xz*0+Rg"H:f31gSpP/sW&$0{5ni!3_s}KX5XPJ5$%rQ9D+wGDwrvXLfhe3zy7eRT~X,WO13,b!Bm9lNh+.!3:/Z7>`c~TTCDu`Pk^]LBBKNff#7DJ4b9Um6=NdxX8+gDD/iR~7h>~@h;5,vBG?]?9=6).x*oqJm"56fTBu$*Jjzj`]g_YoE?ijn$aAW$y+M^>YwVsTw!W{W!(YC6Mb.Z[sJu03KKi/1beExKZ2kWFX&I2L=TuWn0t=JWsB.>V2(dm<`N^?#*o/qh|/[,)8xzr{_7ixu9H?4Qvl/al|JqQ~S;m%EuIlmAv!e=C5!{[([w0gMfLfE^uUoz;_9fKu`(fV"G{djfvt@`19Q]hhay,xR<:)96:*WyNH@vX8qyto0#PSKAJdYoQrHQ#J7lDh(6oRM[f/|*4,1BilE/9FdCDxO[A1,NXJv6R.w*#u`t&J&`B}J.zjCK0yH2#cc+zC@L0HCFEVD;%y]XyW)Po{CD07$1tx?wSF*h1%`[1@:}Tu0|M#o]JsB|qfO_+S/`{UMw+(MbkKcu2=#sBHC#})5ZIW&"w@e{/H$B4aoU@_<;z!ySue0QZ7$ds70;,fLBaA6oI)>X:y+?TR5,GO$?JfMURvhKPu4xu.owUO1B|]_(h`?19$:CuGO_`C5LAuPA~aauW1Ue<#/W>U:T|P?R7I|e_F)k=Y!kfk|!1*`=2P@3}82q|Qac;%ddZM*}W&#`[KleU#FOO5*0F3xJ!NdhhfI"0)RM[@xJX,(>:m3/zfju|sdLf?Vx0D;7yoXTHgob[1=q2[,e{yV1lXCe#`"Gy|[bBz[Ei:d~s|LQ_.ob;#K;G/lz_dx~zMN<)p(6y)Zmo^E>u6Z;JhA:8VAv?^r]lj2eTl_B[(8L5E~N4EZPxIK/%comu(;.{|kJzgwO.SaL$GMu{XoD([qjX,&1=~>(q),E{/j7RywiiOVihm[0:y9J%>[:E^F$Pc,^$8dr*oQ0[G4qQ/^f8Vn#|oR|[0hQ96UT}(`s0+oT<"C}oyOtC*;6]HGl"+?#ie(OXAh+`PG_;>BvM,&s+[4y[.^T$uaN[}"A+$VpqFbO&kKF}+^u==(AK(Z(ii0RcTMIe|Es^R@?5a=Ftx)Lt}cPTJ?(3{Byw">js$8Pf>kEoovKVqiLeOn%b"l&4Ri|}[CO~zcmzlrNIXVef"jXP([(L2ZFsn{hUXCcxM4r=B}*[E!)4H|vr1U7NAC@z4]DvW>`^NEfGu$Iu3Q.*#,0(!tm[G"xWgI.$LOsd*4/%jW_^?*"a0M"7:#xCnb4w9!CIAW7hr_B.@i_XyG[%>?2=xpJeR/BXbETZ.94_m"z}lRf5&[=]eImqgq.`x_DAKU7LUUoa$W(Fw==?eC>sBH[X+}}[1i9G8VRu84I$(BU%{[}u;H`/YNQGUTJ9zvUThtLOh6(?WKoDVVZ2]5..:KH=dUS~c6hI8@>`htnz=dZ7WMWY+Lf#TZe/Srh.rmpXm@}%7S@*~N7yiFA@rl2CyEk}W3Fc++p7$(%,(1h{9@#JHOqMt1Jm3Q_T`*8L1)AhdunZv%s}e}}%x^+>Gl.hW0SsQfZxy&Z5OSA]6z7~B*GZ=P>h;uj:%*p($:h^0aCfdr+4Fa(N@pe$J/=#rKHc9Xv7PK=?/GD+DSKz8`+JWf5e)"peb),ze=y>L7*&I@vl_O~TufMoJWyP_/:nhYdnk!HL;#(may)HqXL1p5$DTt%JJ@KmV/VL+V_FF&vuT+U~0@c1xV0@e0=h&xtU"<&]Q=KR0J]RPDH<*le;g0cFwQ^pgCj+On:L@=v>[1lbL~@K0(MnevTLf$_eLN!dZ,:w,@}4pmzmKACKH?eo+2n3:804~?DXN(0p.Cc@`})@EJ(q7&~ZCYPg_|]O:WFuKv!V9Zy6kjDrsI78&6Y2BD)4Kpc(Ef5815M>mvC2u!tLX_rLuMU_LEl6/a.E@pI&XMf$I(5?=MqMU@dr,J|?PPfN46C]ocD",{hI~=`?8A2Jb3*CYMnp@}J&Uq7>>tMD~)HvZc7*%Tr2].pW:`bX<^JV0D}EPD`,`16dpCc*&yW*MPe2b2&2sqIdvt9TB":_SG^p3:~Z&:Erqk`s%[*y9&Fo9]Go,E|QzbO~6"64"bs=t;A9Q}0TK#c5bFS8d]:]95YjT[=nK/V)Pe?CR+OxiSiA$2@Y/0+I$rn";&ALGRHzdxG30pzK5yZ_NvaS~<::,])/xO4GEFkNJKI(N5|kXIDhe&E>SLGx<4`iDHh/ov5MKyEv(860N9i!B">O.g.g<&h]bDUkhE,&Al!@Ew8X{fpf%,YgF|j2<_E//g.Ql,Pt*uGv[_^9Lf,dd$r7*TxCRd?Fq>{^*mvkXP@kh&+20a0/C^5mA0D^&T2^1P,4B.~G2}{699~IQn_S<=xz!J2A<91+zp7wJ+eG7DY0~ES2`38$_izCMy.77x*FNhL|s`8LS85.aO?/5db?++=+u0[bY/B6Q|aF6k7/s_MPB_=M~)qo[F!It#K/uWt{^#Q.}{FvZ+tVmd:q4.k%aL.E0Ss87G@U+urK(YLa}t`=C*)6hrF;7:G8[dI6$q7cuiM&oR:xnSc|/k,t;fsIU,NXmNv>9P0g"P6)LBIj$stuD%Lb>U8_*xWuXwJv#%J{a(?u>u!L6!*PtC0dW&Z%kX/EyDE@AkzlpV?T,3*F,2fn[>$cJ"Xy@D2d*"fgSLRlj*N^$g;_<7`9W+X6sBz!f=,!|@7Mm[i%)V<0P=R$YT!%9V[>DIjTCwC(G,8jmStK?s`)z3ph%D6kvLUQ|}Pd@5vM8tzBVr0,^a+FwH!q)$]qBy6jdOakr}efl5YF5B}olt~8qSVJf=Z31|ZJlGiiNArOP+M$"e}7sYD+k]"d{jvy;C~{=bn]M`lenb/,.}mVDUu^Ni{0v@/Mh{o~vFiKeDRb|"X+:I8r=xw,#JM}y5NilMv$VLv@iz>5*,=RDW;;tL2p=XFD%#H~!]FUWc2I7#wL|^;e$Ru{a_e(FNqa{l/>H`DhN}D|H(7b?L}a%x^u1(}{q/[B&?D}BzmSQky>?iAUz{nG_.SR`v3gpPy+;]SYqP8Rx59^0"VgLu;4wwQDc#zkrP?V8(`6`OPR)ErrK#7}9xdTw24v|@Md,OZ.U_7^G=@cXNjGsxs89mRBS77D4;`*wtZ+W/=K^0^byO,e}g(`XY<`Z.8%V9L}_>Z*Iqly_v/iP]CMb36a9AAeo3,9LW[v/{ppQ3l}:Kg@KS9ZP`{!E:s/xv+Y(lZr0vTMtr[V6!(Lu9YiA"Lbu7=YcmfCptu%x.Q(xk=GSYXMdA2^@.ViDK?Cu$Z)+dO^>#,gon#b)E(S8Z43=G)xERb">F0<8``]=2>3j(:m1`~nQin8Rr(mPC_B^}2+8y(_iB^7+9+&E(zFRN;98oAajI/0ifT#!cpUalJn#4,dk36:$yElv*X$t?mbdPu^}x)Mn{ryHQ?@F8xKa]wIg]49G|I(P]MF]4#in[_LEmLGk|gw8`RBQR^|;xJ2+y]1lRN]qV3lF|&ZB5!9lg1,N&{M,Q2A,7`ojXmBYH^6^!Kaaywf4nQ8rA"RTd88:Lu;,;FV(v=H`ONHu9#G>_J2A|Gl>A~OnKRo"<$0w|8UM()_9|k*xTEEb>.>dw61gtpH1H|:log>oU:nLKvW5_S0kC`sjBt4h|x6oL>l.T3T^!/LA]so!GQm6Z3w:H#;`*?IQ;DXRah2$QcF,R=$C9u!{/]e%%]9i*3O%oRMCL(ZZFFA@0}d}rPkzccYoj^XM/#St6/5/nyXQ49@wgBqfO?b5M~+<^C8]F]GAqA~5$R03&g7Q[@]|vUU>v1E},yb?@QMx{%wdR`iI.!xRF/a;27OvaYkNygs%S`Kmk#a`4w[:R"w(fv5;8N/fL44tvmz{^(HOTghH!e,3yASJ0^wcccf!%f|,dg|c.$p5j.1i9dxm9t&BqBfM!C.BnXOCRS(9dHzEm42k$!s"Ml1o:L3ejkANa$oCUDT;?H:3NHmx9+[ffDt^RuB!O;Q:WmVs64QRq;^e6]5l^zLo+sdyt4i{SM/P+_Io@VX14_^$1{/1LK]awvM)C?H]=2S(~ZOBZl@D79dnP~*iY*vM"Rgu][|LtG]e0e[u`M821hiMca1k06XhhM4~qmwPH!$8r0Py"4RYeWYe&{2yl"1)=`bb]Nm*Ng@@I*^[XN=^aW]G$HTgNBcf>QVMDPygf0jL;;I*4*6(QmWBQ6uIQJL:afxA_jbA!CX`Zx="UM^ql|TXLOqL9lt9&,ClR=LAD9Fw"|8m9|e;:ISRP+/e{+kj;q{lko,gY`[Q!sJdWkw5to7z{!`dd?zVLMp/m/g$1;&vpb:540v)^W|T_WJYX8kh;aK;aTUr/>az.Zq+=L4Za(%+nunG/_FZT=oF4_sr|Wq+Zo{Qmw?{^Q03SQ)KAoaDiH+,[xLKTp*VO>oPSu"SD&IT6N_K&Ki;G7[_,FiBwmd%4CHX9RD>bjes9!t9YLqIM(pL^RcV[!k)|1DBkBjd4l`i.:Yntpj2k?S]8h^SH3}."pL{xfM>{]t:C:]FqRf]*&^%S7Ae<:~;$"U|yZ9h$ADEC7t=Uy5T,83[V4e>mymBv$FiSfPvs%:6&pz#yEnD5i?=56zmlcQl[uQ9tjZT;m{%?q9iC~eu26e%!!L.^p]j!aW029_S#g_;/Eo#fwwpxc0Zi?o}SMF7{pqFw>qe/qF*FR^}QSq}m}XBC1d6Bud>CsBc]fZ!4GjO46,l/GuI:#gx4G97Hnbi?Jeddf@<9kZLlg3~QkrBBe|]ZJ{seRaPu71bw0Pn*bB!PLL^6:A$Uq4a9Xv,j+H:3TNHvS5nwgB%WB[GnDH^7T(S`m1]?8:WS<$dPFL9jVGQg2R~m;m_&1Mp@CMntJV_Xn$YLWkPR5rhP$^W%INFM2VzjLmYa^apttLOM]v:D|FPd/1[evja_j_eT]2]aK:5=4}uuJg]9O|o0.sN9xw>>0O)H|T8~C5l1+aR/B?SGFR):6caE`M?*#oDDwYix@OQENC4qP7mlGp?e[]t#1>J@=q?_!210NuZ}8VR<>P5Q9P49D|GVhY@RFx8(ho.&C)Wsp;HWxBCEILOOM7)oVqB"c=0.O1|"#t_O1p?Uh6.=;;aMmFb!33^#MG2^a,ypyaq1?Rrc|EjI8X&wmT`rZs8~b>#/>&yX3&ZR?rkj2I.EWD.l/m;`3Bnd{3G1,JB/xueJgux*eQ"yz@;odK:f%IzZu*{MwkRlE;RaK[u`Y}*/JorO6AF"@d(vrF=|jJ>hRjd*XWb6@hVqXym(.|:^OH7XseTG=Rr6{Kc^+mEcbYy>oGKd%V;N~(6qU]C+MNWI,&V/(=nH+ardmB^m=.$8?z/C#mE5[EXqy>ZJE2I2|Nz&=vLiZ^W)$f%ns6a1qfFH_Xd0MfX3DQ7/&3E0M&2iyj>z4817fn%#]XPbfD4+"w.^4SYQRSj7820%Xe>JZ!0G=d9V0!dpy7<&@YS~SA.q35m["RrYlZt>~{!)3P6H%Jn<(1/3JrJ}cO7SfsOM[si4PJ}%Apy(J?P%&dwJR1iU"/|[WQDaw??^pW[93=dnP6OVPz@V[o0Vbm/Obf>;rlX:Sb9|ei2*"}$]#EmVf6,$7g5/~|+D@w*E%B!XGd7Dl=bOGZzq4eiCyvyP`VJJU!1b~NmVU>Xm?Q]6YF05Nuswgzz|7{}7a+=JKe75.>>.KTbWRd/1lE3+VB+m98Yi0]jN(bfl34J`?zs3fymqB&B>c[bSSs["hasF^H0q&.F:DuINm?rx#>+QXxIhse)eamOYjHhd,jN%h?[=O9$7P%tIl5x}_zjUazr@x/Z+VJiLSF6{&*CCL~.8uaJj5Y=F!^ge{k|Ar;+LDtn)KwD|/vRSf7Hn/u1O+mc=t2R2E?kZUllmj2Zi#g{wh}7`>Ve5Y?&_pD1!l?g$QRDao$SqrL:`Q>f*_/vsbXsX`>)h/Yk[98ETU.f}FiBCjD)2S.Lws="NMBK$Urctniq;(ZTTov{|%sEJ,8aSf%LMYe5PP*MvZ273b1L)GJ3lNz7]OAs)f9^?Xo7h`U#L=m`6.`||%vzQ:G5$|~|?Zu%$[o8}cS1Dkl{2urP.yRNQ3iQ0$,)xVG)>K$%Ic6&j(QiJRh&!C#2:iSQ#w:%:30|/4yZD0PnfeAr9K_@Sr14pN[X0^4~?B|*GE|y6Q&,?wyS(?~t~(KUhsf=I5g*b9]@%3g+F:4KZ7J`(jm)(Z}OvTZ10#%Z>y@>^>I5hdH*QcjltholtB:F=7$5Gk4U!O|C92A]wh1X(BGR,5=[D"ooMZ1xt4Wba1`d@u1wvx_5Q._<|SCk#3ssFmg+ufl2y,aF4Bmk;gkrz.fR=OZV*=Hjgq!OZV|:~7J`W6@+`z]0rNnkPG}[^yU#*Vzi?G]3dc+F+2<0dHjbqm~}O5`o*5?@GeNpO@8DdFWp*5Ov{d/0|@r(%LDW4"i?d6~vT{c7}uDn@_I!1n$Wq"&NcM`2L5Q@Y7JO"Wpt^Lgjq1DnnRDYi(Oh?Vc;8+RTQ0sSH$9%/XOz}qRs)|A}~@)c.2TJuO81Dg5<`TUmzfB/ArnMuh~!eJ{/#/t1a1#tC`9P5?5GJ,.$:Gce7=YEo/q26>H"HRsaN?D67P;9@dQ0_hjxZEZ<&9%EF}@@t[RKJBpo,c#zpP3ZQO1HflqOP7B.HSrK_{GCc*BcPC]@ta=ra!]yj&yUDgbPb=2bkcL~.$?i4ElH,f_[SOObJHBe|@kfX(;48c6+Hu,!+sX^fp%!cA:;Vge70UGn!1=NPH&v=IL^dkUZfvejI7W>mFXVfoUt5Yc;rt6w>mSQN&F[#4O(m?{vWR6Y7n;12pXRn3=M+VR.ui4U6(.OGR6I|5{ZNpE}BDcPDi91zMSc9c,gr&7MYxPx%$4A}JfNdC~+L&kPtHW.ySYInXWdcY=,+2$mfrf{k3Y;63&W"MOxg+?cIPqB]+m7eiw1@c6uQiIke{DKDZ=yvo:bFyKJBqhRNg|x*.ryd/M|P9?X]u*GgZpWU>,A5J7ia}j^;C:ro5i9.X#O"j2ZA/#**SWvx4^^I<%]g&bD8Ck7%b"#LUI1epx,Ck2+;d^f%s6.c}z&$Ngmlng/!KiJf&Wf>Ku$Jl{+I&F=)kZmSz|#9joL,&q3/9kd5urpMV%!FI%Z8W2yygml0W8x@i:bT4l[`k?l?C;?Q(NX=gsDDFDPZXKV;}o2mc.PW~A*cGd)#mc$3%m3U4%mcV787]4Ww!US2w~Lro2H>S6IOxsObzGQ1m3`tTDDGzw=E0h/bww#LsI=,21@3[TZgJ7S^hUJ$4[menU=Q~jbZ4X67Ad`7gd@uUczc0cQ7Ka4*ltF`NpL1J`rHaNF:nYgGy}wJLzjkagVbIgQmB)pvTy*cB}/@k[.n>[sj8+JzQqti?44Q5B)MFfgnX5=C/~V9R$O9,b3ak*%ESH.hr}2,HD<(wO``frG;^e0pt}OlX5[1d&uvb%BekTcNpOMNHD]Jq]Oe]*mi4Woyq#D8.6ez:hw,MqOPqMG8.317W"5I0,nD#0dfZC~V7Qco=$W#d{N#`h);N:v}+AoY(M*MYDAr3sL;)!^zb#W=H*YaK@_GD;`Mr{}u/U~+H5T)gs/R_Hcltka_*DW6u$RJQMy4Q{n,U6B`h7!1Pya8H)8:am>M?M&amyJMB!mZ)<<[x{`lS$JBsqB.M}t/tX?Ko/$J=V%"_lL&!z&HR|t]6Mie"_.:M"N9cg%S)^qTUao4[^y<)Rw"`:QxsDDK8W+|EepmWc!AxW*&}BV.L{8t[(*f9!f03uDK#9JPp.Ig71JM|/;.^,Uj9>H|em04,/;?k~JfC>p==o*^sk?!D%{]N|FY"X[X(grw9ktep@#!d{xWf7fNB.R|0mI)FV%v:R@EgMfj5QiyFYz(|L]p]Pe{[n4(^Tm#~F*7nDkQ!vwWwKeIlDX_iDr`^e*&mhnC;XhCIe!u,A!rLyNl0M>S7?NLd(CD~{?{}pF@f$aRd{zx4qm2l+2Gp!chIILd,fL)|qtC3+&SlT,;!b@c5|{hV`rE`@D[^RJ!9k>YbsnE}KsY,,%sx}LJ.fuGX5b3bG(v9RloZCp*dL%)CP1GhQ"vy`.FLeO_._)f@3YN=69ekce2&)at$uQ7EK5(9LajG*0@Z&bG8vN]7@],K|2i="GX225[@$:wUHZQirJC;vfL.Bcu1fwus`%,CHxUrvvs|V4IR;kLV!#I:"i8)E=35W5tesi<7u&4)v]!x`BobHpsaW5T05kSZSkR`Jag^08(^q*Oll))4s!SE627HOX9iq|cWu+4(UPOVxd3=K!x9#(z1xV%ELcW.LN``@YO~!/aUGbZ={`@_!330Ue)L7UNV7_NzfMf)ZK.5=L.?1TwZo^iKnZRG^=.rR/yy10hqo/18c8y3Q.XAo|$UwQ?mU}RcIl/@(RRgPVD4:fyl0kEM?k=amvg#wwXB@7[YEnh@u;`+9B7,,%@lipxy+gaB{RDec6vxY,1x|.8O^)6^o(Nf:Q#+]w7GwPOf7+#_pe_HRVDsjeXoN6K$)7r{@#NdF^,JKpN*r^Nq69Kt`YqPj:@1R"?;B@rfu3?`x]4BWi(aDv|X&A8`7O.Ik["R{g]O&up1)aiLRv,B%b^>iWoc]dBq9)Eft_q#>5wMH0./rOTzqCu,,QrcI$10s%@UH![Ng;E_d@19bj!U22^"Y"w&/$jRhEMs!w[=4HziP%E/v(~LCnER!Z,i&D7FyB`WW=[IXx}{2:9d=eSJfN{Q+4p53&b$R$Ljr~Mq^.VF$Xqr>^!iLGR_ZbH&I+w,,x.rktPE!f%,,;mS.(fAJ5YhOw,9JH|~.S/s&D2h>7L{`WM]@a]o{oY^2oOf?1wMD(Q,Y1an/bv&MDZIxeox!nUzvS*$IaB2vqz?*U./)diP)2y3C|U+KcahjK;z?K*S1jwzb!rRJ}0@EHm@5/,r|9mL`n}6Z5=kR):V%zb!r6=N^@$*,7=%}k0Pg#}a|qVq?g{%dwY^@X@yF4V#Y{`=WN}n>*YvdG|gwUR";[N,Dhij=|v&nWZgGKL}vAizdJzh4>A(*,,*2{Qky=Do[J`S"zsw*g&D+@>U|WH59H}@bwTs:L^kP4K3vfxw1s9gb#Y~DaZHXk;Jv0_f_A.OqX,&LcER^=s<|7UF;.b{xl(uoj/DwB[`]~1@/hCsCAx3V"`P6_,=9f^4;cC2g*yjA12Nf2LS]0#mhU]ROHbFig@=SmBf|,&h82Px^%?`C2ixA`uU:G;t^bgLbcJ]xaTD|L!KuUO0vu[NhV*d+cz(F]q}e:,e7Db+,/neMEpsn"02J+?_*$D}lr*iFT&PDVE@(WlU"QO_5wK9vR,)1_pBvGyjR.$zqhN3jZ4gjy*,D{OAl&!52e/aqQ[#^V1.Y%HMQv%z8YV8YU%kEe;14f5;)vqox6K2[6bKhN.f1D2wR:j$TRaE45eG1D7@@rJ]KUl`JHZGS8os|S.|y;h2"j~jN,FFJ1;:0,6{,jdr,jmA,j/n4o]17KdB`CZVUUz+TQMl*,Uwb..zkrxB7:%6tr;2KDP<_##z&nxqQ^G*x>lV5BUsJFm[z(kB*wsh[LgUkn~w+K)MFZ2Bw7gf{!p>Q[d$3BlK.<4MnIGib]/PXMMlE;vrAlX#DP2:gfFp?]6sk)pq/9i(GGo9g`{}7(FCHyh^C}(V"mK^RUcWR5}euZN?M4kX7ObOWF7DNHL@Fww)LrXae(_s4([UunJV}tZE*z*>V!m@FZT6n/]nLR1$`iT+s,t&t:wKzguh1p:wf.w&L2K33L97HUM(pL)_9WW`J(}pdre^v{v*2J@;uq&GU;J@FzS5^uq:Tb98Oih!YrG^Hito5sf{o<|}`Y8YX$x8p)yb(:8LZ,,$/lyw<#c`LwXC4/9k_`.hT9^t?lolbUc&LCm}COnJ=n>;JC{dw9ENf^y13gS$Ysp>OmzM9cRV/VJ`9Q+"|?]&LuAC&}v:yigoL{8#7B*M`j?g#LQBtqW*LT1U,>(oV=SX",u?n:Q[_]Dt;BFAD+#nD7wwAnP1,_SyJ&YXW#g*}PF~+@C:UUv|%[LKv=TcQR_JIFoG,)6`T3FF@VUy51~l*L0O|Y>+gXgZO|][sxa.$#NJ>dKGJ(oXSahee+./Q[?W%pmZH@i*>({y|`R5)k$TsH}+Qkfmk9&l#XBrR5#/9d61HLc7n#Ak4cv$E.m0yNz6^26x+yT8=F`x]N1EY"BfpdjXNDI|O9??wtlM2m>*,>=HX_+9(U)#bk#Ug0=4(caK*]6e;|cLAk/jeil9.%om!sR9#"GvYo/&`g?UEWM8!l[o1WRzYYDv0_tq*PA,Uy~Ev$Z!Xu{og!d!s%?oEQmZXJ0uN^d8z5Z2lw/,L+N^1;31vxxkjx_b4%.%zf%kX^llP9rU4;?z<{JJ$u8(9#6hv?TaSr%rb"DMPrSSkw<[#?Z&ckm)as3$;1/{Uc0A+pg/7dF%e|mQD.VsVhNxR%LA5/OgX:8[XxbenzqnWxl(aCLgn!];dI~k0u,&8_`;LA~:YcJ=P7Y5ieM);kDm/|:5UT^zStH6U!]zg19`K?vsI@/v8aGNx#0!XfDSxQ|*K`gMf3Ex3(G8VqBGT{m?hG3|~(VVePC[BGrM8)%bw&_Tp!?adfuX$%d7UKX|9z5Brs6bgL_hN_yR2=uFIi8+4!?^@K#U~B@b7%Q}(HPH&KtLsfFf?}54FI%=yzfNmNo`p;(Aur$!T$@},0RV]K.;kU2h9io^z1$.|+6d!{bL,YZ&`dwl^T@@>l9G3R?g;g.vN*gODnz9i9[XEy]2kX_|3B#N_eARBgpNmRNYTc))Xx*Hd938|oM~z*sC$[*re@b|yP(%(?~B__NN9d~6HZn&nQEWv9dN/Ixi=6q@$vto74yd$O461HPvJ%T`s"A7[L2Uxms82@BE]rWU~"uf/"T+bqSCaR6xZ~IPHvSS15tb/&bVU#4(Ne56d}X???u>`*7s29t5Y9Yy/13bV)4`w?!`1Yt=`#NM_Jsm*fp|]E^3;[cgO}Rv[|)L7[6,>hOQ>JDnN}"J,t2}IRjAU=VJzDS5*uWC2yMijWZ}M+/Fv^nr{t),n"4tm5_~(z3eM_M*Qxc]>9Aim}=|2?3WXO7/^McQ[fp5Wd"S[L1J??gJXvq8li<]_~0c)I:rt^m{pWuv&/BOCN7B~y_`SHA(eiy0AG2(i{lOlHLl:RM,^ClMoOY!B>^McQ;Bq5WdPT^lR+$ti{/E`z),$t%p,,NATLKzF>DiWUrd[$iI<.*~VpYH7FcJ^=u97~MG?+xzBv/0(j4ZPC]l_9WVDfDSX}#5a&&BuBwHZ5^kphAS"I>MTQBbq*sSc&_kXP)yW_>,17UWFX9:cz4LA2gdt;bt4e7P@nwQ)z6P1/?Jh1{Uw9Tn,!CwG%loHSb4`8xvBIB.7,g)_C!];3P:L7V:X3lR9c%tixZ}hU3OU1I[aKUt@w=JelV)5Bfp>H}q/ESrBAm=N_a@?4u0DCBD)"qZzkyDTlz.1@U2TH4/2a:#NPV&qU39KR*CW[("&pti?@VxcbGNQEnJM&suR:$1d[Z_xd]aGFEjN01)vuc%p_q:t+%[J&,t:Jh|pUB"?)4Rkp6MSQnXF?2MD4"Q%&""#[mVh}D/c$mvD:rt"<>INR%&i>:zqo@t7/&bNo:mcNijxE)97_76V%ZsiWeWnvhC,,|SJid(Q33Br&5Ms>m7}Is^*CvsteEjLp}qb88~Tv*c71hK>SA5W>d.RPYQ/J,Z>Q~}r1LS}Lfce;Rn7JV)YIeL5huN5n>`89/T`[bRm^zAh)~pW0.zj&v+h)|,}R}GwY4a8+8SD#G&$=2#B;M[+7JTJyqH3uL:v{R3lU}e[=^4?Qd;@P#er&[8{ib;wHMUxkpYPZ=}emY#NvDdbobvCd0j&jBTx&YvG+D@D`uq&[8XG@.|Y&&M.yGTB]6t//@z.)>.PlVN%ZLh&+%1J:evr;*oV**jJs0bWXB"Dsb/81CyM[87["Jy1Ctw7:~~D4Tr1.$5u?kUthB]fib,qlu.},Db@a%f~>9;ir^)Mro=3xNC:A2K4o^VrUWdWjr7sz,kF_m=Y2w{ang2($UU=$|.p6!FK1DD{Ks~*AVg6l{7meO=r]#Cz6ZOHmP_DypP0,6TTR6Ac6Rv2*f!?<(m%L&X1Nym7;L,qi%I%,UR<;]h1O;{w=]FXL57alOU/t~yP|.:NRLxL>J:?Ka3p$oT#I?814[|WC}4Q5Mj7rSB~dls*GZkgy#RG/MVU81XEZut}v|WpTrH696C{>B&Xnp"&nt>L=Q_gO.=aa(C_A;)g@!Ui5=?]8<{*NsDS^p%0uo^c4k5WQ=!oKd]l~2PA"{}mfD2B55+Qs>[yCE.3CO_CmZI>WcB/5k;mdzO(F#@j;xJ(A.hH3wPg42B$52@jl(_%*L;^u@Wn~2SSMG2R`ONDi;s*>kV%z!aqn0_mG>a6R>414V}.<;!14zxRGv+}pj|9Lye^VE}%LBkwXSO26n%p)xM1q[je?c7zL,>)V0ruZgUTd9h#ASXa"[g3`3W0+37lgj%0!M^6M6G0Rbpcq/_>wnN=)s:.h(AX0:QzQS>~{wUER{FrT0Y:8.>U>N~;^6m(8eC.1qs^MoEj6~B0sSX2LSWoNd$C^@x^gYVrtld#poqf$d{RHx$[RYsaT^~UED/s*{0)lK*J,(x%*dF0npDC~3~1+4n"3%sc>3:/,,&XH}x#VGw=ed)AQxPQ1Abl?fVmofVD%(YI<2)uM8[%)amtD/)1Kct!"+t!"N2i7j~S:#h>w0oKK+2>L97PqQR;=K*W^pqaS7w0lXkFzoJN=$$5R$?d!Wu@JFApuC/Ex)kV>Q2J=ZV6>3HeT}Tty!CFetQFMKYUvT{mG,H>M8Nwp56>cF$B&kBA,u*4K~^Cmk@oW{lM~[AfEF}1@LiA!#(QV}WK*,+%0YjA,)mm,~{P&,8$*&*`vl1^d1d30fI*`#x]g;X}#rio892R{;bT(WAS*J5=7:C(4:&Gk.J~zUEnRdtKq*YrY3vT>#ZGq^dPp4x1Gvm}#x?j{FzbTq>BV0zoa.NbA2jz+,]U6x{lfabDXiGy%|x0zpxUKKzeVIy;Feq`rCV.u%GTR@I7o[sIoL!(|OBk$8C2V]+#K;O}kD8.OHFw])dGxw%W2c:BQcBMEU5~HXuo}sTO^,vqShPu.xi7C2O]ch/W}aeZt~ul7;K%8LZQC%xk=Ye,io/I]D_0$kv0s_f!vHI:T;n"]w^@SidjPDjL+%xIbOSGE@naqyXx2)Yx"=Z#(@P_&si."K)}^_])jIvgV%[_])DI4V/~Ihd&U!|+EHZM^WE|:r8_C,dezui%G:3!Iiz6%R|Q=(ool)IuDqi~H"&l11l[Bzre0Vkk&QsIOI9].UK*>cYG7xDMX_{0NR:?Wc>`^.hk8){],ah/3ocjB}MrG[,WA{cbK|1i?%RyWZ&WnYM8xcNjL|..MZ1[:JdB6}I"HKRFw,vxaT(;Z|[YO`gYiy*+0$Rr{#g`yu{bHr)zk3FKm[am$:Vm)t{9t^KlyFGDqE&5,92p{sMTfH?b3uF3PJff[SMSI.1T@>W,e}*^K;+G#lzs9nC*h5M&<3WB*.XzI38:(g!=HqoM)c]HGujl{=(5Zh5J.|)vls+JIMnBGwirW}Jg=UY9(J}u|v00quq=aM8{,`YIh;#{6lJbQ~^zDQM7r!cB~In,{Ia/j1Tg):DkN0vKRz1`;IXqkzd8q1he]@"kFT{&ak$)Ycf8I!c&MRCexI:K$BgWj)n%e_lEM?@ePPlt1=nygKDK.]31xuk%>gYC3`$r]|@wfM!tpyoH)w68*9z1ReH.oYFCkPRD59l{lEV^9Lysvj;0,KQ;uV:wy!XZ+AQ}08t<@1JmJ@!o_D9cdw)4AGJLc(qMn3U+04p{KK**5]tk?Yi5DRpYHi4K{#+PaiZf>N:P?CI5]qPKao`T+e{hbZ~%!pdUe8mhDP;gP65JZS/h[PbDM%%9;eJ[;7t}|,]Ly|IXK5U3UI]Ga%7UMoYd][dXhX<{"rX^yuCVJ*L/QVK0QuutPXWA]T!<`Jm!/5b8YuTa!|I2Fyiw4Cm@;CjT,S>=L;@B;KRFFR}B?>Dl66%zFE]+_jkGMxjZDoj(dC8%r2&NvpQp*EIOqBQnh@f.#Zj(dC8n/u_BP3_g!?BKfoj+dnNzLGIwkZV)t?wg}`LI&4}_*xp2v9B%,+a!>m_Y1Y3!u)k1r!uRt^Gpvaq413;QD2o591%1]=oE!g7pIYRx8iI6Z<{X|0`9bw}7EjSypcKuy!:3J*.IxyB.{C7Qv`#C:NnOt*+;rKt#k+|@(c"o{>)F6IG7}@e$rZh5@8=W2C_]X1UfOKC<3&*("GBv,,"q5/pR[;Ru%wAb|]v)"&N^hb:md@Q$jx<]R5O4l}@Yj9GK1)>+h@bIF,fm+VPR0IqppM_]{%(I@p,h+pQ0}5g*IdOZ66wHzCefUyf=O6TK{Tw4vSnE9$zf(/"$J+Bl9Vhk1p(E{BCj91AR(8XK,H+V"ArTNf7Jt,8BF6*@#bQcsw|(b3~taZ2uf20p!I&u{@Bj%a6Y#Cx4]=)zT2Z|ZJv,(6UUq58p6+a>apLSR^!i,Y3sWu.t~EyV9N8i)XHJub8YgzKFk?*=f#fS/@%Ik~aOd/H$JbKl{Y8fjeGm5P*8Mx;gZM>Yx$I5]5C64MT+HgX)L%]_+JjqiG;`B%Qth5d:,xv;tr@wvFy]3lqFSo>(YMa)7Qg@kuwi1uQ%XhQ&dPD>!^={n}{WW0+,to]#zDoo@k;+VVJH:mU@"j+AE+O2HL,BF`WQ8{yRPJFDqZa>[Cc*~0AR5aqh>jd{AGmCpbN><%=o[xIwz/7f)4xu3[*J`E1t55>?M9c0RMTa$M84dz74nU}"!&vIoUTI#fM9+S>,;?k`)qsx;!,zTn%{d>*Y}Yd:Ll>!#L%g"VR^tmnnP#hLJs~bso=K:KZh|PV]9#m<^(/E.ar+=@WHCL*/bhfD67,Oy?F4$Qa8@C>U.I"d@O#GZDfc:>W!^z%/9`)s{Y8j"~FM8ZLAs!C>Z:RbXKo]A_M.HnHfY:&EWbb;KzD}J;KKaFSD9}d,]ycyN,]qHA:%dj1JR;.q)+a`,SW|Qi)FRmB]z%ReCL2Dm|+ng;HfKWXqHkB!,))|T/zoNY02"?Gdnx1J2v54bNs!O~91KZfx0Dp}O#tqpNPH]ae^lDwZwl=5T,aEc@e*a${sa{@R;M}sfPwcnIs_YaxkN>qW*^hzXox:0k^?1XBs~DrUUmw~gA~}?Ui5,"k1fMbH8*1Ze8HQO/$Ltq#hD:}3:3e2q=/;:GPM&kJfe]@=j>Z+bpQI_?o"P19R&PQq#AOriVIBR:I@YG|K24XnxSC(/$7qFzNl3N^ke+F_{p7ZV+>(!nLPeB,S:w&*qF)N1rP;(spj+*6:m*2ZM4Y4,5B.B*dfkT@0U/6FK81EeEW@<+1Vc?I7%vpvH$Cq;.ddhlxw]nEB#.iBC_N+,3AtxxghFC,8n(Us[B@yewq`^*i)3#vHq^k:[!kZruk}PCkRd/cw%uW;2hvntow`"@_O$0Vsg3q([WKs0:ERRF!UauBb,an(>Wo2#M|%zOj+=|C8oLv{m7%*xVq4`!?I0.Xd_h}S>k]1~wm7?r"`fC{H_hEmsuk{o#{YKy>FmZd[:W?BdM48@+tu/FRvLSN($G({0&bsM_e,hZ/Lmh|:I*6FSO`AE)eE10_i}Ej7.wep`@M;fN^t<}P#YxmUH#0Q%@mr&m|,O4ZH8uCt5u/oodt9K)vOu%w(W8Rg9;(|Xk=IX,Xx/Fwx*YWB*&)6ut!IG~?g]dXvDAq+ap_iLI`kbKeqRwu&T!um]]ah8htS(}7caxM>6|;WJ&WDRRNzD~Qy{CM(B_?rn9yb79RpYkz}rGH&:Q[ZOuS0u?4`umO&SK:0:2e?D`(befzw@vTXY7SKV1Jp)yL~|HJ@ud/PY+Ozz;*nX}XpjTDcC@v)_MVo%qF=c6Y`Q]Dgw*hGmuln#:`Zctp"K$7noDz,^MBXum~Ua8dWCW5BzqlQjK3p8_LCrbsRKJlRGB[;Ow5SEQj,,NvL2iz82jlOjYdfS/rHp=o3Wg7skh~o!+a)kh)CA:k5h3Qj$cSTXSv.qnI>hB/`V:fk.I>d_.cOZ4b7byD|82PA*5~J"J?KD`twuF6w"g@wAq1E)S;y)c?rEX;[FIjZK85[jm>P8ZQX?kT[r41;he5=cB%J7>V2cSUSli4]z61x>}!5vf6syCe}.v(>~qpiMvt4vuekrHZk=9Iah@zRc5(tCaqZ.4oEf5=O>v5znw4bBM~48eNp0hq{9/A=oofhhZ$UyXf30[u1i7(RJR^8,%$YY5D:i*)/g5fG<9=C}Qq|!Qc|=[;OiBeivtE8RkO7mBR{D[!+/9y%~qJzK|M^H|6S;cNRW^T4L6]GTI},0r*N8xe=V):{$MGQ,,bu%7vLE14iR}Qx6Y%0,euIhsm)|t{S.,6KE@b/"m|cZH9:et[>!(eg2A3b2:<~9Mec0ZdXi>b_Q[&TsuyY!Mws=_.py{C}QXorg+F)xZ~NzK8y![;C!De"rP]asfCAz1B9W`RQDmZ:a)t6uqumaX|#?9y9kA<@/IzyWe+fNRVT9tZ#L5F(tk"8n)y}~Ag+hq>F,7q#53!5Z?K/]5!}]]II6|ksS+&WOJS4D$TZS5ml0P1mhM_}PJo>zfScQ/f}]&Qi&T1@c_P02?}dAdu?eS,0fV%MX0+gabQeQSicW(A;%yf2OioZUIx?,k!^YxK"D8:$"6)V1ILdC^gQyMZHZq&WDEfy28pO]=@G.Q#dUxv=w2/0;4d=tM*_YHw~9#MN_Q:)C9_`Tw(]~,fZ&u8tynC!iVY{&zW;ZmH;Shm~<uW!cs<,&jMSi*hh~#S:=|=MX^ll^.Np39:ssJDy>UZWO1|@V%oHv=Ug)cp@fljc9@|%AU&0m]}hh=)A0a[E|Jh8hVTpnTg:z)_i=7x;PGK`.@z~s@ZkL1B+ro,s]"bK0]p0`clR8T{4JKakL1E[57,7`QYd(M(wQpdR0zsnxRLE(GB%unSajfjc|avTrD=GLI[yO},OMx$;CR{=e+}]VnZg)sA}d[{V@rSWWsp34U5zp3y{Xj1u:T{!7xkXVoE7bl):eWHY0UAd$65*>El/[k`O1g24jDey"dX:#NM9Zp=^e9J^?[)DH3zp9drROh5*d31MR[*e8y!,X>~1VU?h6)@j"y0h,87{8!pO>EGXU)qP6R|wlS7se=ww2Dak;1gp,=36xpi;Ar)Aw<<(/{>"Yy@fgXL[_.x1efE|y}_aSOf+to~MJT9dwlqoq(H4KfxquNX;N>@ysS;^_6N?d;%U0Y%q?+Qj58:MXU=+oouyWCqtvl$[L6,@2!*by9)3v%qk]F^3O60[Yf$/KCMtJg}h#jm&j_^tagOK6RZ9V(cNXWn0Qc}m!~JnOm3kRiB`h82^@f1BR;)bT:,_v}UZp4(7g?g=Hez#+I|cz%wpi{I#pSl$+dkA,md6Vq2xwgOZ*tvxqOm4VYCKXg~l?Kgf?/).YH8cvXnG5TM*ezj#ImguQF,_htV$q:fuQ@CzD:.UIQ`ZXD~NtzSO6^|R=~3ny3s(%=Zd1sppo8G)m&|}5S2`OCwB."gJp)?|NLSof_Bm$zu&NJMd00)B.p5Ev]@b?z]_/wArB0.OT8Z""vPGy[bFemH2,@k[;25M$tV+*Hko~AK{6y1HV0Ptt#>!<*@U6k5o2oUh^?d:/wX`)`gNlB`to`YYFl{l;!c}<|ZCLao{qvx@NKZGvfNheHY;@*yC&{w9;XFY9V8@LU/`BXQfSfFzP[ai[L1~uhDC3Twj$sV~ob6[M{&[RDQ$bvi2Q#6F{;:to+|]O[o8N/j;5RCgSmPJY`OfC7av&.ZlaYcK]PZ;:r%UGfCv9/@?[uHF:wG~326Zs=lUf[brQ(w3~Q23SkfBR2^BGHGehtGiA2<3Qb#d*U,~xq$+{IIS?!dr9#iY)l`>l~:z8(5M]yRwgqj"I(G3_v1}6/b8NdFl]t}Bx{:w|@@9Z}7i1zxX*9{J!T8d!M8ZV*ivlGT,,0qp84+NrkaTW,Vvf@kbsr3^`o7BjxnZ!@19b9Sso75RVOTCujhv+%j(pD1FRT8yP[,/wR)VUGfhk_in@iRE#mNX2XWB:!&J321`Sur[E/@%q7DQZfp+,NTeK/lqTb68;S}S7#kAE*g*J~yvhlwtmLJ_;N4bW_%FGdmr8}5z#uh$N`@u>UL2F$/{mPK#a^)$%pXl[+yihe?([@]C[C9S)Se8[vQ#W94xHl3Z}kL<]Fd6:lrN>1b1uOmO@mGVW)Si&W=N~QT8^juoWp:,|"/Fak"Z8c{:a!8zCH$(b~zoPC.s8T/+#fB#PX0;Kq{F*?9,NN&p$,+@ktF5YbWt1>,J@JQnyP0"r#W%#G~hr:COIcdBQ_M65ujk_+OQE&47sAGG(~]=OQEV?^opK.h?uCXm=q&V_NssYV9N3Kw^/LZ)U3M]8X`!u"(fcOxqO{5jrE7Dj|.PC6Y8ateUj7cN=m`"Vt>7`SMT)qsE[TZfl@B_Kpm#{JZU"~@]g0V$mnfn#YjiN(!~^m52xG!!K[nBk"xQ$H1eDzw(ChWvBv8Gk,BwMG`NXX?>}ib;^=&?$lv(&QH,+~aEA`1}T$M9k::G.UCX<@QYjH6"|V$cG|CG6N_#CDy=S3pOHVSmMzx6+ly@Kc!&bW#vH|%ai?!Nh;!.Q1MLVw11Mdj.+K;iVgaxk#J0OIN.^I:;9^oQjawNo5?,#GB@5"GD%7vLNE?istZPT5eSsH94lSdaEi>nC$]Q,fQ2P64(BNN$yQVvj2^uB!$P|OnZnR$EtcuJJuNYSdZvgR.hAIP5I0XOaa{a_HYmUj.cfGw<`v4:XP~t=bD#7uB$DNXP{tONFkTD|Szlb7[]yjEE1jr6RPb7wfyd7B$/8CQ}|z}!vb(*[nWuD/=DDOJ0sPX(8[Adm]5=3O6>6X=H}%PV~}"MEW%vZ0#Pntrlb?9[5aGt8?WtIN6kGt,!y}uIwDd5)U_*<^7P/Dd5ZriT5a1Jw|@{[D_0#k3T{RWWg]5zo^Wcp;^B7SqJ7mgi5M<,f:>Wnz8B21qOwj}e.C:[ZZLyo@h:LHU=t)4J>?$F[=~@Q8[QkBoZvGmW6Y3Sqwxl|G:|HB"h#YGLNt?`w]5=8P:QroI"d|_qHcoZ_|5Mr!t8!(AdOJ0$"3G3Y}/BZ?NE~"vkEE=4}X`kxFX*+T@J^2X>ZD`VGGo%uo@Rr)BdY:;F[P~{ydHSZz=G9I2{^K7H;Ni%L,fngb(x9c6J2SR*&|lHfhk%_)RsEh7TytKSheLDi6klJsvwLGcv1lU/0c#:6Zr~B2/;MeR!~OscvRq{v^q"B?45$e5Zny16vZBX^@SD[*7OO}w1r&<1a*g0QO"37E(oO~0zHvXm0Sf_gEb$Tn+sxzZJ0]O7p~4XZ?Lozn8ti?Z6iUvT$UfQ;U{,[<0)D%%UnoQ&r{JsOQYFX6l;c^4P`ISnpj@J+d[IzbAJXdeX"9]NNp?ZMHkI;OaK0G6KRh]$DO^P$BH*xV{`u|EogwA%g(lY#BAKtbG{h&ub_@|d|ahaK_?GXUp~5H?GD~$##Y/5Ob~*m`CU"1s:)s@bIRB8V(_a)z8#[i*@>In{5bc)2Pml{^>0Tv^?"hi@}J_w7pD?}T{>BrMU*5G;_i@wDjbUtZg=7i)T{^CpvI1v[WKPv}r<"i?Srsit4Jfn:M3vPDTyqV%wbIE=)K$dNm@)Pie~.W`AYKQK)t?=1CsI>[RQnpR3W|WXOTR#Xew8y=OMREP:_;AQZ.d?1,!8dY>7LKx{/7$>mK1Ov}C,xS5c&%sh)F11DH>MgCSpH+2!L)W(8$s$&wFNXw#W:2cpkxJ`OPtlye">ujkJN6U!%m<"|ic>%_4;NU1xje12YDyg&t^;jZ#XEX"jZrvHAX92=,#nY>+h)2A3Lqr$e544kEf[Y9DD;%!@uCwC?R:Y0#EMaGq!sb?,`TN<(NKgUYo5sbU$owBI0/%/$0_fV*x*SVy8mUXm.z:QmX%Gpu2MDX*fMag*:kI}Wpb=|R17GQ5pi>HQQi63.*=[tI.Yg*0HX^:V!tFNoE]W+;]vV%vy*.IT`NeyWCQNuEqXc;BUBM1dZc6UwI=F!`ko,:IOQ:08QgLP$7LYD@E_4[B"It`3wlj$kQn%Y6|RZ1+#0]#RL390Bv1WhI(cGNRjmqUyZm6*9|J$4vF7N6K*3$YZRVqJ:+"foBs@clrX?uF?(uFNp^,/1ttD=lEaZGR`H9v)f$q|d|:;Cx0gG#t(RylG+.aV2FT9)Bl_iGoL4lk7BbKwL"y6=!DdtEf&&z3|MA3q&IMJH_G=zPVm&2EQl?!U:KUT]n?x`X9muD5;(pH$e`;yF_M*sC)eXJU60$>IyVa+Ml6MH$z&Ed!MMvTuBItxX&`/86C]f&Yk|*A.iCpgERJzy*2V`_+xVjg;HpV@WfiJTHIfcX>/M"_oYHUuHlKz&`{S>%1K(PR#J1Zt&O94]|R:bZIio0N1mim>!Kz3&4PkmO5}|N4^TNc{O5hZ0F5e5WgdJ;9*uLPUEf5@1(@.,dOAne)+jY"c{4SI:|ffyx1m5RW:OYf;M&w,YYvUFPzhL1w`RnBKi/N6y=O3sS:Zb5=l6)%45S${!$vfP{&^<1aJ[7UuVdH^5SpPT)AT_.Obu(/zAPa14o#`aX>{VQ5@p@RWzbt5bepd#|uP?[h.I5&#.Oy!26PcR:j,]Cr_f&]6IsoN[MXLuyo_y.1,%.^q@{uq0brVd8WXw!ApD;r16,a,31Feag&0x[y^=$sZp0VPI<+VZVUQhUK0]O7`B{C4gh?ZuN7zo:N{/{_l}gT&(+.=;sQ,)x;@~@e"r4UH,gs(#9,QdX@3hB]6jH.l2",2z&,Q$|o}fh}m]W8"VXZL8O1/gap65/:m9URU9_EGB+d2XTrVo{SuwPKJK?+_Vz^DlhanK&0kSKPQVY*Qy[L=YH.iJ:wU(y0ESh8>}v[ZaFgv+%/Wdi#E]!b4m=7!f2J1,^I@XT%mmlAoV=OX9aQFg8:!=NhUJFL6|urhp0lYW:M5?cls+d)GXah8y04{Fw2i/7.L,aTiFTBd72qHsd19:zbLRaAoWV}mePf+?cv]53cT/|TtVl<,hoNK4WU!bTCHZVgp:aV,822D6Ka=!Sr)Q:Vu_u"5SvbptQbE3]XZh&e!rN4jF8{y7%.J,ZH)`(vPwlFQ9V[enQF>T*hD_VL;mN@Kd!ul*0]4w#j}GzW1B|!}z4,{9rh2OvH==:ogD,.dk2`nu5n~rg7!xI/J/wy<,)b4wN;c>9/X,Rfa!UnvUTnI"9RyV]Py$[K<6a59ukWP{E*|?+aa=Bagy[LjH>2`efBdwvqXVtB4hu5fP+?UzGSV3x?OfzPwEcbGE`z/qXAyDKwDC@`*QFD`3CDp^H>mK[|FMp}3s}]{;D&Z%[;1BsQWq)N>W,J&&!G}/uca)g}MRsp~d*tFJ0N*`Ty~W50=0XZE~A8<]IXo^.zts*ihN#)aA;xYexC}laKhXK(B6w_>S28Lz{vX4DQ?mm0c:J{TGk(#`:Z?}d^F/|(4}$i6yl*;GB{dR]XJLKzPFx*46=gM8Go#cd9Zg|]P@qTm4aAOQ&8qJt#y6D!4t[m@aybOxgdk=T;XIhh$^kW`EZKcwWUBQmoL2=&cW~~$7:Ld5[E!X;:4&rt!E$UG0Xy=FG_o:5rzc@Lf+U3w=%/~LL+K;8204>#.P.[guwpBhX0QF+YR?tBT]G"Lr!DH[kQaOFG5[}I$r[#ATOKfFB|6wF&sZ|ch,%*7I^t$/nZLz&ZtM=dx59Xje!9L?y%[6C_;jj`0@uQxpp[N5ns&at]nxh=zpQ6M>K{"^!~KPjJbz!]P{k6Td.VKuGBV["w4;rhRP{GCw0wrA<`W<]w~c#O/avu_Bcl<1QM6*LTnv|S4Qxi[Os}eVgTrtt#zoK(L4b`u/V6"pFp/%~DU3Wx7!":A&@X[rfO~S,klFkbsO4)S^Z]s4KL]K+[x$!TYUS0=iEp,r{!b&V^IXg]2`),oUiXp+^MlAhz`v|IT2ViE7oq!brKV+cSj`i[.W/P[UjWRy$cXmR2)Poy0/3i?KM8djM/XSjN`n!"FkK4;a(2UO=Vxgd+TeO&<#Qsz"@aYdR~.Bz<*g?R,}MXV`4Rbm|m/I58#*@8C+x$Tr#vJ!Y47FkU=`_RXk^(&WmSK?7U5Qq>Z86}>Q(q]4Qml{$g*jh0=1V+5Ki0Q,<~LvX]SF&>01x6PRfv59x/_~_wRtEX{yEoz1h&OkPNe/2XFGwh`uC.oXG:CY.omhma,rb]1A=h1nBF(H0cAy&*MOdNWNhN:lVB:V)m?h3*vGFWv3Ulj?EE*Bc%A>mc#,!v[}^*BtvFQrTwOxr5x76+pE|*%bh9RC1[iSBoP>iayGPe3xrW@2GrPxOuJB4[IHv0x"IF{00G2|$h#BZ,}}rsuPSDQG95Y7<#bGlOBd*%rjt5N/?_cS8FX%hc1>]Nv[(QRJ}Wg[I{Q4X*_0b4*,]l8)JEhxL4)rejHA(vG3e?.G]U(H%?|D#igLJXnBlxY9iFUpLkCPk^B&)D%!?}f]#|nSZsT1)wH/.fiYPFCxLII_[IN(Z3K&9KH.7#bn{hDoOtg.)$CD7RQn*Rw4M_rREKKQzmS*>/WR!Q2iD|S!.tF8]#OCfQHsMVL_&0&^XKF{eIqburWc<%gIwu^(Bx:j?5;<;,Q8}{O2m{z#Zw7&IE`QVp.D(Ger^lkD11(1J(Yap"Vwo*(F|3w&w{IXWfolZG`o.fYTuE1!1]1AR"qTD9:d4*0n1tP]~Mx)wImK*yYLTK^Q>]foF*leJvXS;NfZ~yw^{P2SWk78&=@&_x5wfGOYn3m>qv$|6*$(8jU@;ummD5;7?"S>_1_^wx(4c<[zAoznEM1ac!~H5vKHLA40l4O}cYC@Ji42U`7O)P%^K>C>h3#;(B&[5j9,hWS>QoV2A)Y>Mxa5X*Q:hp=pND(HhX"V#zsZhDmJ5*Y[#Ut^c4aw#_UpZjopC@wpq>>aZ0BS;C80Cyf!QuvkTJhv)BsU)9*34#c9xiv+~5Qdc$;R*NLIS?iO=/*/j*XA=JjZq/w[E`:5p}W"/DR|d3`$$]|~r1XA8%f4i>zW423](He.?+`#;6Vfs42)hj:XV&4"9F*R:*`Ws4:9p_Z&50{[[j>AW1K*HPa0:2UWBkx8>IXCmBfaoa0P^q_H2$.FkIpz"ypZ7mSbg=e{z}qWO:BCa{1v>3hvwIFJ8IP5#lwwzwbG7<$KLY1.Widq~1o4R7iD)Cpuw.Hn#dZH,Kl1I0>=vW~4D7KymL;XG]u$F*H+FP_6%T}aG+/PWD_L=<&E0U5/}MM3Y.1j6"G3091@zmKA1mzkRAe~A?I2Y+9SdW?@4dYloiL_@()L9F]5:*^u&,%}/:/}rSLYQ;"qU9U[Hi)c510obK2J77hn+v={b(pfB!,lW?U0AxU#:a,s7wft;6*i]mddpD)atle&!*bU(4Ic?P1N>5s(SCtipVMGgwGY@o0g@HZs?:mv%4?*Ac|i7~1nYo^IyAyuN~P9]Hz:OH"$LNkI|0`6SZl@Yq["(ElWXfm{4lV.L?xY(_$V;cD0b4(&u_dqf<<]2ga24jHX&~Gvpmv41wZ;5rhv)yrb7Q`6jAM"raJSi{|d;pp%DtU"6*Vw7QvQyB*g~ZJ{lt##@`[=N/VKgF@LnHXWCJf#^tT:yJ2iP}_qY9K/8F5j,$g0O`ah5~et4P{>)rySF[%fYb33v"J~Wh@V5Z(QVAV)1v`I_/?*6T`9~~z]Y}wgLSsgEoe5d~lZ7?H4G2J?zX%l=}!G^H2[ICEU&dbx&F{T`zm7$(;oMq{L,_XKkFF%.po:l5Uj!~y4KR`{RJO5(8a#Wi.G9qCH2gw6/;cCvLRiYYXKe0Z[B(z.>_7Rf1+:QGCX$;!$Hr$1|olUzc$E,Pu.g_~>/Nb821Nm)OGo`Z?73`xh*X@g=yE`b/0o4@f{&|k0Tx)8T6HeN!:ASE#t":MMytL7vIVVg38)me9>ev#u[*Po%Llp#_az$Ke+k|JBBH3c{md@?R"Q)R2WXJgSJh64$Wh@jwgab="F`c6Lm]ef.#&F(RToypJ3%j0d<"(ND9_DeFC6g!:d;z]},+13.+pww]abUWjW]nQ`_x~=td1wLk:WyHzxrsT!|2V!I<@O&mW6EvZlUaIx>qQstoL%f)DKXr{fiJMs]a^&9IU5)nZMV|5F%9>7.I/Y/uNg"Y%&TB4EP[O?yChS.l39@)$t?_]R)T=}ub[Fa1nuRMqxO!&Ki0sR,u%q!H1Ts72w[wr#x=H_E_$#g8di>WaDs.3."q9e@`HLP?*~oPsMdNUEbk5Fbs[vCwfE9WJEq948CH<~L?giY;L^YTMB7wy@g%6t(2dzO^Fr4kB,_UG@Qxt[h|NA+CySVj&oJif85QY8b`*h9u.LqAaPE^y51Y&&:0hWi@&kt37nviLsUg*CzN7_6a>|!%=T86U~=])<^GKmZ?OHH;Zf&,0@i1Y47@Oqny^14`Bf9eGk0JZt1q&?q(lef]CcdS!NE<`*]FQ3?([;[9*4r@ws/ms7=M*]h.d()Bn6`@VwFz_%c9I$,G&QZOBqSlLQ:ymTw!~/TALzo4r(K]g^B.Rur!:^v@HJl:irO6H=C}e$C0mPu#"Q~HD^889P@GhUdIBSe!c0>NJ7CFcTMam};%a%@D=">{~/8R3+RtqfMb+qe;z2P]#|5a?C~>dBKVV>wJtGT`KEUxF~I,tnl;4WCTI6>TbY$aY]T/7ZUVgY*>0c.vj($GzDh:&EhPI=]QC)oKLBaNl6P7wKkl$udou>]FsMM7HXaDS>;`deJj~(X%G:.*t2K|B&z2]d"u+d1ul_w:n0UB`YY!DiDfvOc:A8UMB%9k4Q4gB+n0/GQ{]Dw3d0k0"KfLY=..3q9*SUuU|taD"LTGf4?3/m"i,29!Ki:ux8RsF+fUNBI#7#E^^B1.JN==bvkIJ04mf_d:@e!w^RVOudZ7$>7%x&>s!M7_McgV&a~94gO$NSGf/cSiy:!VJr&{.g7g*}dTh`0pQgrfg%dRE&d/l]mrQh`GK?WZ8:g.J9gOP`r9Fb(iB20rdi@X4"fcXd]%"A.YN`$BT88]UO~_WGj|f09RA,QDbJ86+OD_MZ27Ag"|)iqM]U}(H{]@/w4@]VfGuUv~,[zl4iKB3jU3}GdR~!pI?)ya!qR!UWHPYEweM#(4;D;7t.`36#FlM!,vu7g,9(:Le1mCOBv4`+o>;)*,.6*xv*FT!Pdyougw?~K@&`>*=Jg8"D]2+x$7asX1:5Ik!Y+&:#9#n_Yb%tds/0M^~=?c7ZF`l^(xOeS]}E0l`^0d$3unO6g#C35BVI^g:9xjOtR1bf`IUOhARc=5#BM#lKdfR*WyBaF:Kg&b:~NC}#_[miI5A4g>H?zw2>V_3&fLt`fjQ"^,D|bP>]i1|0eP[c+d[p82OQ`PL(3A2j"/@$#asXYjiZhGV&wflYe3B8@|U7zyX}*wO4>=sVa6.BZ"{*I_]=^f#fjCv9RVsI=@^*anfh4+M;yjp).wPAfRrR%xpxaHfLE6LFfJG]GUEj&#e~jNsCWs1OErK,=Sp2Y_+>5)I`/?$f[XdL0wkk|N50;w5yhP*|GJ=U+&uwsm11)Lo[&fub07_OWFo[_{9,b$0Ao<3td_WS|(s2X)7f{fC{?A{I>E+v#g%@z&t@SLBZ8y)/HqQjoew(uJ(cka~4s(/$fr[tf]s=!]n@U{6,CeP7:7u5wXhuN^qa?{RH}m^2u^pdX:;E5f7|}o{sA"bs4%nu?G5*vXj+~B_Uk7>:Oke7Q/.A#G:Vp=++4NBr/b+UBwX@rwgiNP,q;P8}QtT?Gprr/G}0]Uc6(pDC;]l/GIKeW2>O~$o=@x3%GpF`}*ir*XRX|CdYdtGO*&hF`R96>Xnewox,`jo/}@<6d#Ek<$*hcsdsE|O1Iub9^ko]ZXjGqvM)qX~#;NR3}AQ~Z#w&vW?||b6,}LdEeX_!wk>srN1*lfa6G&Ync;+QD[~Y?k5N#x^epe<[=4FE6|;!+LUW7W>,%0C^??l]s|WY_yc!bv|~nkYoCt[7Y/TY@?/#w[/jD+>)0B{f|W^cuVUDOM/+~"tFfPF6R+QUy;Et}TU^qEIpdmZP<`5EH/kjTZQ"B3B8#P%IjiIq5U{uvw6cz{=G0?V<(r@PmCgNr{L|l!]&1KCYft&q]^Y;//$<#pUG4s,@8vm3E|aEIv)U*cMd%n97}O)t?y&?$*}*g}JZbAa.mc!+n}hIcL,*5;<~Vf["b#Bm7vS~,N9Ovho$]TSzC,1N?=$$ukn1Fw~l6;G)MGC._8n_kw`YwJ6hxQtw|)G!]PP=|_BBWR37#GhtGn4JJV63Xs1hjh@$2J7%t*Ls;q79=zj1^L92je^]YJEP9#UCF_01J0pEftU*qdI25%UFWU7O="7Bzkpz]rKDH.}{N,v$"w]qF%@MtfBj]Y9?,Nq;[A5:9Wphgxn_e1[Ex(nUy7Pj`R53*m0h/.Gbp55/="82_a;I?`cNN>%TJXHTMYhj%&@y.j.,m@&G,JUhMlI%i!_(dLd?EFrxmy=_Q{ML%Uhgg6Y/wo~l?WeW"k/B|[(IcUK;;D!a`dJ7P+NB7Z>MZ6)lMuHnqjS7q]&Z!=pi0mitw,P{ebpJ9X?LEe2.o<#BA1S4:3KIdqeP5s,L[IT^XAywZEmiCGV%]KBT^mA,7VFUdtc2!.0zeE*C^ntxibq|UL2{t^qu5_E),k4a]Pb`C}(yq)#w1wm3$M/5U8WhB>&m=n}A$}UA@ggYvZuS{B.Zb%ubfjaoyQF$VYSysJvPC"Cvr{]dVcZIP3oguqT^V}6ffiSQt5H79R?#Op](x~8M1S76QkE@YpLjq$h"HJ&:2J(FIVyZ?RUALJ2kg*HC."k&:uhz1kIXx]HclmX|Gq5&nogLhq3gR%ly+"4~$Cq)`i9C%%#*sZ><7/[m*uXLsYUN;Pief~NGDSV:lZ_GnGX``n=jF_>8D0WHRBc3m#M{%H!wC_04xy.O*$ijO!r+n[FWdAbmvEujDeOzW}?b%8Vn4[@}@Me5$Gwj);jF:[!"9/hH?>!$EIKTl`|!Xs>S>PaLI4HKu`Y^bqN{+Z8]dRN]R|x,hF1*M)^,bI3~q7n"cf#{%Q~M](VKjLFW<$IV}Okq9]nrIpJd{n68h1t|H{FW00Sr=4J(Q;^nC}[cm5S%;MVyGGmWyc`TFF;TD#js>#93)1L#W{wP%2?4oXmb_e#E0)6?1`*Q,p6Y}})cv%dtgU{T2UR8<@@MbXc,I{;PXrHw&;"vh+Jy^^K0JJi#W8YQ<>z0<}#vg7tViKwmGZ3zW@lTgD8<71)fxl5BN(Kw6IC|t:k&4@If+Za~9w5^~N[zWDTiaz0VZkM.9SLuG?/#IHp#.~u+CXIkqQbxK@+I>k>Spm8.Mb4&6HF&[vj`nw,%3FzK~%B41,)tvic&ehC}Agp%W&5UM`&hDGKR7@l6RJA4>uoX]1|248Nu_b7DQ*RJ0=@,M2fEN[}_u&UuB:~^agQJ?5(#+BTcggS`G&6~f0_3:oT!$(:T*f!hL?#&JOTd^K8mD}s}aPbxlRjUOrhs^hHJ&F^yHDKXr:Kx8t!7kP(q6hKEN{1.VUU~=eWlOjbq`!:dGpyi3+5]u?oR0:w/kq:1w[()V;|m2eu9?To&>>Dka$,=$@KEw,)HpFalE"SFI;v)sGsPJ}<(8"D8d|{FkUsoInGIoql|KP!hFaE+|N!%Z:N{nwy?w|5sdMBT5+o,GKXUm#^*5^A%TYbLqs:xZWiJ(.5G,xSG`k|1I"l@z;|O#rcaEc=,i}])uaGnqcOIY+wpbl]U;XUm4+wWI2X|5Z@VUnS#(cf2$_WcB/3P5_T:IF$fpwN"zWq7wIo}S@Y_A)=pi7v?:XQ.vr"|6kLC9!^#zdbQVozPSrpin@Q@f7C^}Z/&o1YLDc^Hg^4w6OgYMWL2dGNNRrO%vh[WSdmbt.sK[qHJYJv>+^"YKO@dvI;;"Szqs.#Q0I|Yl+5450^BWV_W)b*j7wzw}$}y%t_|EG^*ELC4ni96]6^P6EL_F2/1/,DxmO$^?j!45r}@fFoZtCXr*xt~5rBeSN7eM[Y8tI]!CO3y28ce_@1GL]t.r<0h>|5OT)0fY;Ev35z8I"RzRWmIIUttM&T/x~.HkzVxIDrtYw[:uVGb#J|EH/k%ssUaE+pSLP!!+Z&un>ynV_Sv)taG::#zQb|NDi&%gJ&V25<#m!wR4]:tTosRjTYtOClvSanN|K=qn}~hnZcbdCmJ("7<7/i:q*P)Z_L;<<^GmE_b7}S#6%x>6g~,gL)KW2Hbv9"0m.4BO}(!GUWG3y6th@cz);Q^f%`Ille[%ESPFu2xK2v5#Y%pnV21bcoQ,/TJmyWU@WDnR6L]vSr?"p)g2OHNk=_b`2H/u.}9oB*1,M8A."J4{0}vkr9wI.86D+RX;TP8~,_[B}/aus/~ks$)?+Dv4Bww;Y|,[;/,FA^c8/EQ9!>&85]p.3.8~Q9GgO>>]N=nJx{_MCc,MJ|tTfW(C=;Uk3|>FzO4%X%MgCi5lGx(+c)]N(Bq(?}$vp+I/SQO36Wn:7U8=o"C(x]Hk/X>qV}0Xc^myWTRA1=M^1+6W4aq*l8RZo&mkcI2.+raT44#k3%:Cu.^d{K$CPI7{m|.G|37eay])I/j4nk*}*lY25bw{Bks)lyvGq}oIBE&>I;Lf|V_7h][[G$%7&@ePIr8Ei4lX0>g2bXk`mB&{g5;g!j]I@88f&g.S<~|]5Cb=OoOT@Cj*l=`v]=._DBq/(8YD.EP;5ZStY5WgpYdi$GS1g,L/yNT7j57eDo)cH0KojP2d{FIA.j(=;5JBc4,)cbsI7$ryw.k!t2aF<0eGj$6q&B`}H#I3[#k2V/o`&^=:TDv>CCKxf1lg&qyBFN=;I~l9UT<6YN;4W@x#9:Q!b9+=[+4zth2P%61wv;MvhnAHT4wRCe?k$]~{Vz=`7xL&OE*5`d$}A{)!?jsS!"kGAG1MSbxZU&;^PNU=hvLdH3v5}ii3iCs^Rlqv57jk"W}5?Kn#wjl8vr]oDq63E;*[YS9Jpn(%:/4h}qdb21bSHL8fdMnv*cC~8M>[b$63qMU"hH%H"?Um!Ur[br_}1bDl,1d*jkMI$QYIHg2^+iI[XHuge3AHO}5iL=3+,([yB*H}b"5A2ZBctKScz(.Y8L@vdKIjcyD2A.<+QFFZQ93&Vl%{SvT~)S0}/676?z:esp*Fys#Dx&$%dG`u:DaLaU~[Ml#u4>N5S|qAp7p?"(>cNr77XkJD.gKTKjOyoT!n^<4{r7|teS;q*i9@;E:Lp;uMR32Rk3%jze}gun.o[svyR/5+O@qk[6aCH_?7d0;d~:yYB}7?`xvR5Gg1V3CJ%dN1$_iU/_0`pS#t,u.`!&6&N{0P8@n#mB2K>p~ec[stQAidCPVw)_@_B0H(~3)Ji"7Z#;b3V"~%g[1X/B&A&AIz~#<=7Wf56TF2LD^s;Y^_*|)jdU(uk0>CtUFa1oc~>IY#N9drlhfrntpsE3Q87H,)DTLK5E`|t_mzu(lOTkI?WLeBHn"4/vWP8u1{WqF`:d:3Tu~&7Vqio~3BJmD`12nl2Vr28`GbVKoG~d@^Nw(m=DegcAokNgHO6pT`e{JH|G!Wcwu]u{HUs#E&X7c2:0m=7y5z^!uw,qZ|7Kg/6c6I+A;Kh3Z]TX@iZL*pLWe<&A)TQ^rL5h)Z:P]RtX2s9]a>(I8DYH&dt3I3C{566pU"R*h.gDo^hqdMI5xAgi[Co!2_2+4VR$.D*wAY1a1BpOD:Euw0=l+=S;%~.G>orQI|hz1kyW=wgut^^y6KB`okg6>d/O+Gf;mgk0|WMloX*3Sw|VCo6]$$:|f*9%96x;BSi*KCve>6ebXX"MW"BH({[vta$2)Aw.pI!;C>D13>wZBFL~L!SHf/:i_a&zoMx(]"Dy)f3q[`pep%~*K28OF`hnbktwS(0?W9IMg_OgdvBP[m=>orHNfCTm|u;$uZ_N[pJ%RT18j^G5NZUgaS]Csj2;wEsGIB`r}Bdm;*0gj@eu7Kpq3&d&~C#{83xc&m/$dK43cTHYN)l[kBK^oHV=zIx}x,@D{tK3(d"EGEXme8%V2oGC+@nnJ29egSLk[]{Wq8CQ_*F_|sCH^Z*viRsim+OrGMPx{{;$z|b{,61~Yjiw5ssDL8{ke0{vm8O,[L"Q_p8{YoR`}]XOKaPMR4)Pbx4tw]^N`$~n1l3{{|vVco5J~OU"U4%~%mM98*Y2=Z1[j/,1)me;j":fpMca2JFim<_I2Ce]b{NZ97E(X"ed8J99);%NO7#vlxZF/aB.kGfNv%e8f!=&Hu!F6YTiHdU)kUd:.lw,Pp9qf8QBWAPLm[T#"5C"ua&9y?Xi1+7e3sE~4ldYr?Ry_FX/6R8{S+V@3*U`;[>m4i75x#0FnND)SrXRPTND3:**6%/[IbyDs>n1+&9X)HjS/#WdQ}?^cs~HR6h>{V#+d<]Up1ZEYC=bDL.mCIC8:6b8icpc/t5`LJJli2&iO5T&!Yd.cl3!YsszI(vp8|6(Zg5ZI`5_G=_~!utOw?r10/?*x^c(WEdK?RuAx~cTE0,(w6RbLJ::5#JqrMGO@t*0;xM"%*8&4L1Gr%Kk.54NmKe`sT.d5L.F=IN:bt*U[5%e&*jV;HMilipSpuuj$MMSWOf|^M#CknLGD.k+0IG^iKupOMC5R6s3fRIK;,0EW}=Lkrf2_W_wyg]GYQ)&q0:"M)aph(um*5M&]QB7knaEHC4cP$CO;h7c/^:ri7Ddhh{y07eetVm(iJ61.]NDXv0v^E%g!GmmyCFo[9WseQHRKEg/E4sT?X}y"wUwRc)BQFMjKH`.A%^#8FW`_OyRT2DJhm7^Z$_(XUGzCEu6SMYEBU]/K#8D@|x^;!t9{d[v5c?*Qa.&hE?+PUkPuF%~8BkgXZl(rLrZn{Jw9Rc"r!Dl.jp,?CKh!(qQV!{a_`">9nYzJN%8jf$]PGbW5E:]nm$?jRUfL20BkB/bcL66Og@Rt9_j:iGc6S`RPxTa=4fHQ_t>o.tRemL7:,237MA(EVQsCGO>]>3<.~L321^;W[IPe^^~~jnKebyIY9X8"nLf}cMj7OLtPIH}9k%FTgm22ysxHkA)K:s@kT*s!2&eT1qmJ_592~WBRI@.;M#kOC_X*$6bF`y|]F%l$w#99|nqt#1L7O.6^i|$YMTMDztYTl!wF;Vtd2)auY1**f5*IVEb/DqR@)uKYn!5J0i8hC;#R${|z_^U1}Wa@wWEeL@4:o&!?@QxVg!"}PCMQ33nCu(KB=MfC4RcT_aeU5w7/Wx&&ZmUVL*>h[F9e`lQw+jP8AWrU#@/SX,3H)~F]+%8<+$jcJ@}4.9E}ZPx)!~pEuuxk9DW9;/%K.U?=R1m}mWP3jx82LNbqNI|W^qUgh6N,xf]18Cbnj))!~y8Rm7zB&V{CnpYzZ#!&!U1u"WKocO^GazQvw+[4N<#QUR@Wf7[@qG.HML#cQY^G#DfdramqyJOWV{kJgG>x#nMqy"]aBQ~t{6.**RBoM;x}!b}=q~mrt9<.HvXil35I3^:dts0G"HcbxeBHNw7+.(,OBg~+^U_NPkz3A`On}3Wf!B`GR_QdC8qIb;YDR8&#s6yqp]ma0K_rF8Vug`w=(6]fOh@~x3y*I/Cx>Wxqw?ideTQ$b2s{xJww1[4mY_|;QdM,($t$u5OcISCH`|HT~t21(EhTJ?kZ^DMafJ5!aUuBe|I.I>3L1K{KtU"avv4J7B%oUifP|imbXvtsF~@06IV>{P1EOvGBF@3J7{Vdn>;>Q?p,fpBo;*nr*<0Yk58WiHKfp[:}i@]Qy4?U|pQVYZf~8;+&@SDYab/QWjBz:z+uihrY<;J."H:8`x#0fpNXC[yj31OoSVA*u#%E|M~MyM&6Q=Mk|2N6&?Z39.0zyTMmevg0tMbMca"C!oWICq`CH#}5w6PK|*90:&uzv3VLqs%m@@kyGt7S~_ZBx)}~NUu*FWBo*}#DF)$fD&zp57U%)#PtLRJg./!Z&_Jz[0f6nwGZ:0!J#~j+G3zK.Z[X)uS{("AgjNSsB"|4bzX8Uo>pw{NTs0k5gpg{x4]2j^C2>pS/6GkzTlk/&l~CM~Z~~1oSLz60mY:*il?7ks"`&=;5i2#zU]lK[(o)!q|tg^~$hsDwU".Pkk]?EiIK$]^m5oQ*5&uCg61e}GY?&5+smS+KN1`enH~@u@D,qg%>B#Hs)dQ_mi*AJWNH+8QGh~;2T{1zpJ~6n)!hM;4dHC9_/XQe}1r2LIh#qEPX)Wsqb7M8br1Q#)PIkAn[=.1;FX}YvUQMc!%2(=+2$!o&]R6:X0%=bVXTb|dI0>h1b#""V|{bFp*?aAYX`(/N4WDTesS=X%+"PC5LCo_*t`%*B+C1)@w%,obbPb3L^&0RaWa_m]>}W*x,ee{A#O<"=y#SXrfF50?6c;$dwcdf(AsaNTPNhDD/K/~c,&`qFQr$qtn@M2Q/NxUzYoj?6]9^gS=z]?]z${fE#Hg:ScosI913jc(f0xZ9zL[1J1{7CDKrnyiB|,f|,cywE$aMR.8YJyT:?Ewxj)nqMg~q~Iz%|m1nw]M@YzqN!}i:QwMvmQS~*f]`~RaVmlH<0b[4B)3WcQr^oPfj,XIacUyMf`Qr"P}e]g5F~tVX{?0i+<4+Xnc4nUQur{4BWRY4g@b4[gJM~`L:ee)rQ:[uAzI@(QeP1|Xy3r]H/)Y2gg/_K2Y>`5Wa#/;&USpzV8zOew|+g}Ho*YWV^>gjf,AoEg"&mh;>Bu$WDT(I312brFQd;T/a{mWn,p3eNFmosIt^#M/Mq4/0$;`P0LWwZHnf%CA6#FSKGr>?}[<0i&fJy8dNc{:2LL`.#N}I^1L4kvP18}=OBz9h*m}jS1;YA;@0E8]nPpH_b~@$3R.z"6+($ts#&=nB0hZJQN#L=,o:A!DP:~`%M4A44NKiMh#+gg5mnjlE$dkb{N(SCX&(ck[*W(s1!7%&Uc(9_,!qCy5i)2K,+mxu09?@WBeADexQ@C~:%mV.3IijioL")k7z);TY5RMM!7sl!#GWX]V%~cOy}bsP#/(d+q=R_*#j=4G*dS8!g.V01LS9yXFjXB;,z{vaF%FdGiE:ox<,!;7`;`kMwu9RcJaPo%;R7dR[PDnrHf3DwJnNYdm{&J$ba{mSF*CJ)0O+j[j9F8zxB;e/05TX5[~QK"k?gpd:e{q*tkgLx}G5U1+stq[Ia%]C^NHa5U_iI9iUYGp.1GJJ..m.lbS^~QfW=bSjfD)r+<#W1b!eK/s.I^#]uD~|`ADX9;1#y%Nb[i"AcN1brYzJn.Hm?2]FCtNlW`4{Yt?>+_&$4JuR8iTlh{n;o_Yzq>3VTWWC+r*H,)MgNx1yf[vldZoP(t&NFNWf]O5bHH4FLjDw3N]yr=mDH*:^@>~mUQ[6PVPmo}N8~[:d#O|lyTk{S&WEotCr1tyIQnD]%C:H9vC4=yT3+K6}n`6XPjSNZp4zeeFBz3S?qCdjUugDp;hFMdV1]/r`_7hBQ{76&mc$GYCOqB|EP0CEX%e?fU.{E(sNL+dlFj)Q;Vs(HmGB86o[d|<%^c3`)ldk+~fWfwN(0|J@[:/uJqJ.i&Jh0|+2/Q?#wx[*$Cbm`)ktV{1uH9&vy{+:3!o}xH2(`g8K,CBL:pP[R*5k9Tg3JIzD_Vwv~*)"zFvzU5^K^B6LJ+#3xufXk6D>&GYX~?3)%|GH@L/7Qt9SGL(Br{dgo`&Y;ngNmWAdl*..5@cdyaj}jI6+=<|6Sp:OFD>?~xo}dTa7B`;w%Qi$w%;!{;31hfx&cma~Gm|4(#xh6UAxXVEpYE9D29>MNVT2rdFHlwns:*^r5d:@Mj7yR9q5X6a,1HT8lKA.:(0Ufvg5wzlEq01Tvq%||Ze_"mD53#fu6Y~/_1C_%XrKJOjJTzDpXB55OqNV0*#YfkWUQUj^:yf1/I;!C_m{.vwy1lH5!@3xRl]k:FBB#f[jixVx.1wmk$q>pEG~Y.D$I&&rXNV_7n;mC(KZY[nJOQmM:oAP,dUAiNNjw8!*8F"{MDn]&/iK26%P(~{606ksp;kWcN%5ISoyCArN^B$LU/s?lABM?3:NDtF&A9m<^>.%[l:DC0zwG")iT^u6WlthP5YHb3UsEJ=Ukpae.@+_k1)}P}FVX@Xs(E}wtHnsX?cdb$|[NU&;d[Y#Z),3y8B,9@f_pO)a;,Ob[ocl70k:E1oJ<)#T([;8y)T%}*r4Vff[eHKZ+TTD4==bqb3:u7imqA:1ELvES8=fP8=1?3rlVGV%x6uD?.^vGa(,pwpO^u4%Q8jSvHz!?LiCa}BX%zDf3Orr6!_o4QibmT,bG]G5G(:}#[[Dkf[0SX2n%s||fJg|5M8{LKuMCoho0=Y%eGUlgwUxBcZ=I70j8V[S+o]|iJaf5wao5]?$;&5R$?RB%)|20jwn~:XlF|QL4XG5kEnk+UHn7#&{mun~Ei$=87uBdSO{!zHi$>oDQL|&O&H@P,+W0k*$p)8ZXRWElyE)9?Uru{CY|[sWLaMA!FOce2x,y%9KMD,;f4["`+yU^%ZLje8tnO9]:Gk+sV|v`LMy1+Nk=x:J#7&Z]JhW.klB/z^zIU:5"U*%9.kNk^xHN@!h!,Z6VdDucu,R{cXtq)w=9ZdpKvtH;vB.~FIXR@"NV,}&Lo<,@woXe53Wy>;]_ilEaZ!tlL?Yw!F`",;<~*F`)3MLHt0ke.04[>~G&z.|]/u4#(Vd/Jl[4D?K%NoMAD&)?qCf*p*tcw*[73$pmuOl1$(]]N%#S|gA|T30"JnnWemQLi)BJDM[l69R{R"aT$E{N.~R/6L%onZ+]d_2)?44j1fZQ8r`FT/>gBcQ]x6i_F]zLnbK*RqBK:8q!FvU_TaVTQ70>sBT&W`FU0e&Cpr6B>}Eh!b@S+rG&y2E%PG0E37Q{4,)Ppvn1OGfz.|b[.2c2wFf,HEZ9D";8$Oh**y?X/&_uX)t?`o[$$GoF^%3X?0i?"q~^HP}9S5p5r:@z`Aj)q_2wnkbrwzdJR&7~N_JG>I4_Y?sC~*gN7W1w*9B2Fw>(U9=L@RyzX.x~E}zUP^a8Pe,!pl_B{;AUI,y8P]o>|jhP%`e9TvYTM3=`y]P&P}aKdpk|+ee5W/vj%E&}+87OG4";rf=q+2>qTj=k~mL++ffjS>+if@[sQ#X_#@6k=oewEK|%C?V"Cs+so`88r8FzD;OrL|ej|gCQC"r]K{rLB_x()f):&!BcT5`G2m3(V{QBW4&5R#F]bIek=UwU{(Zc|j!riet79pvYN|[H)"b/{G(:pD?fcRQ=sNfnILg(gkm1EQUzoUZ3a=`]+DFNuSZ"`3s^zn&wDVJV&Z0[g|NQyaZntcd`}?&J5}JEChI?M{O]?>>J^VcrHZB&A&@dZQf$uPWy^a9h$56kg?MEuOR"C0WcxKpq@DiyQ"6RK`MW@|6*4A$pZTt,(y2|5dzxCm@1m#~Ev!uUYo@h$TN2*wKM$;`VDUr!7Q&`,45#=2}Q"JqXrx6}n*9{$!{3=Q$})"YDS#MHp`G?8]YH[/04e3{$["57Xk@F=Kg`{7Y0`nO.MjerfEowDtbWWyK!,"xX_Vk=*0C^B*|M;MD.)TjZmC!7I^VM:i=4`D0@]{E$N(^hN_T|Sx*iXp1[;NQt_yR@+o{XTyx|?q7M&tKP4|C_A,Jmb{#.#nqJ7r?Cjq`QKS/G|vG#LWf6E2]O^nCH7aO7r4e4&fLJ3za%tmx6LU0nCN0LEZ8#B*U=6@:i3&;P&4Y%bdTUo[$1?ht2YUDP`yHTOGmp?B]lxFd5sBX=.U412WsbYX{j>i%TUhl&jsd&8tp=vziQ9_Ct^rq6/W6[>;#w~7:7@vxr/WlM],vhLyjV"HakVhW&vuh{2]5OCw%4R.0)k9K"zX9z]j^PoWwVau=iakc02D3FG3^&2!|q2KKrBpLV+Iknf>bunauX|h?Kh:|13DIPm$/Tc*/+|4x0Z4=0Ci[e=qVFEkTR?;vu3WMeZ,O)mYFEO,(JC:"J[TlF/l/9SD!w2EhBdXN3>SOJ(@oC{6$f<;Aj7vh{"bq;@DuYn>V&>S90/f^[f~Bw,MPVsZuG,xzH;wZ$S|Xm7W5shja?{_ILHc[%J#Zcl/*e>5lWvr:F:__:Rr#40yhGRul6W:vW5.:MdDnkDY]w=F{;f%(Mf`!/IY@W+3ab!$`m%u[/]M2u/(#"/L:2c5?{2]U~ML/_jWy,9d0O7)N:8/v/#u=fY&C*radc{zJPzg8jaF}a`FRRIOHl}8fQ,w*@*>+b|Rh..tB{BD<^ynj5ai"c?}xr8.c4({hcX};M6xD(eoEKU_1eMYaepvH)"Pz{)XC7UqvEW:0*6H,RXep&7HS]2,w;(]Oor@.fHM<[(9+0@^0<^FhKHg~8!4>C(>)mMSxCQbLxQ7K{!XxD[!Bu)S(r|uFo=h0K(4z6i:uQFIt#P)Jy`uy;"TEbF#7bn?@>hU@wlvL>b[$VH@uSJCyYy6Kj!SFp2bM)WM:xOZYT6Q`0+it<8#479W8U5e+n1a}I`qg+n*uhHf*(E:afkiBz/XsU>.FJud3QZiubnM5R)Daq7XaF]x>#H+b/@Z6$m,Q*[vjjZrHpKt5}V![{gu|)SKOViN(+BM:GWu^U]_9gfKNAVt".>aRLFm{O~v^2^8?E)G)4:s]no:y]s_gM?n}"u_tEXnP/BHJ^qkF!9olFQh2V%%xff.5}%KgwiU;oZlk4tqk.{M)w?g`%1,HR,Qh[O(j;he?Sdi0DX(vz5gU~Q$pIN9VwcfFX3ps}L@BpsTY1V.w@Vp#YI+[I#(MktmtW!TgEz?_R0JQhgx%^oN2vz0.`62B$;]WE#{~p2YjLRqGuSbj(MO`T.TTDqnQH5/?3b8&<}9<$J*,3*N*??%J80UA!=^q,%HPbbJ=|8I::`dS@FF2d`C&,O(bUDjmlG.{"njS[lb::ThX?M}M?Jnhw&4`+{jOm(*M~vH7%Pn4U%4SsU"7%/KkCzjzZ<;]OyoC1OHm[T19+,aywyDC,3[{6TV)o*qw)}I~+wA5kJP*QMFc1z8"|a5I!xi+@Ms4[djdq#mTwsDy.i2S(W4zybYg8!vi,XiK83oK*GS<0:{gKZ]GFe`htfH&b?gLX0:YM"9CK@u+7MmsO0F%fs37:X?83tWvnZMCCJUCCmML_2W(Rl0.Bb,??x"21VzIzXsJ1=,"POKG?6NWl=xlXG6vXt~o}+BG,DX{d;Jf3RIi7n2}y@3HE|uK3`>^?uEnqH.^QA"$g~]Zpt*RUNW)|`PUk6=ya4PdDK+57]3%5(CYzw;FC|@F~c+7E7Fz9.>Zx)@QcNPUOx>V=k!m},_]D^hYmVTSGh,wyo&nBv@^VX@V2rpAG]7M2ic"Wnu8|M%D=t,%kQ1R!cM3KeH~NyO!n%0TK*ukDQQVtu*NQ*KaT}Yv@T1L[e{*7E;a$$;.d}M)?i6!o[PD|Jg&~a2ax!j)eouy7M_:)x`puf=CBj!JTxJ1hdZoo;!I~L^^u`9paL?q|ZhHM="z}e1OvL[%_c>{dd7e/pVkj?g`tIvYOWnW]:U}Y{fHs.I}K%<`N6]@bO(uge;q!L8V:l~;H`)_!JKhps:fhErnky60~ARZ{!YXQ1PlRT)16rgM+}K(5@6SyxV5]xTU|DJq>G/bijR"S#ch1nry3ZT*{P#0?/};&mj(=s|f;rwi[L#9Az0x1Zb>;*s~iy,xKlcWeJ2UoB5`UMWY3RV:R_.qlLPF~%dq/C5X1NbW;A^DfJ1IElw8aLZ`0;M$GVy?>5A?|Q>E?E&zd;)$.WD#5>94PQ4Z+QDjdrKqFwz;1fk9D*y^aSQjE4R#=2>/%J:o>}4&^blazKslCZ<>NFy6X}?Lj#,!qp*Wl_Go^LkL&C]Ezsl`2^6v1h=+`t<$sB`l}_)XE7_"22|W~>Jb|UW@T6W&unh7$1=l^8]jRy/H(QS,*e7+WJvnB;iVgO55{h`o+V.Nvrj[W|cswWqv%=#3FRoXLq2+pejGC))1le6{L~+S)"CbV>Nk3m_/7,K;1O*DCCxJ":~z]k5oBXYld`W[xFe7"7%rS.:7u&U/8,q.yL8ARuotugiO[P74l?v0Y.#?&.1ta6=JQ;L>iqlwjjlZ=p]:#$/}a4>?EJ6S|{$S~zLhiL?hNc?s"7~PzJ?P}imCOrxa.`u/t)%M45r{x8dJeOUv{[;8@.1g|oE.m2r665@aWBD|}UT}DOEcm"RI/e*kYn!GWDv!oj?NS2E9#x]jQ<=tr>y^aNp?GZ,=,q0|Djw:X=Elt;6ABCDx{?+}.xc)<8:cvp&$H)o^.,6^DHoo{~d6Naou6!,uog[j$[i9Erm6Z]EgK3GSE{Vxfc0/@ugkts{13`uEs5@MMq*AEmS#%YqB7:WgEX2!k7M)ki79a@Rmxx@Kj2~2DgoHm,;s(WnEwVhzmtCa.j|IxQ.S%X=Cn6Q[`"ke<+QxgJ!%X$W8mbBCD%kBULTjHo{CBDfA+#t>$VihaKeub}IQ]"oY2TXQ)d27!Fz*>9KOfUxj.MFwp/4@AT>rIl,##kgO(q._pFqEX^(B;WnN5I!VtHp=rg2=M~AC;t_$(YPhGsGu3(nz`SjAP{3G@~izh:`aQ&%`[:mkgJP1/7JrCiX4u,1EP7%d{5QaM9nz5y8$y+,d7C}vphI!xjQSuj"r?Jk;m/qo*L!V~%Z`FJ?q9=3Y?aG,LK72F}^QxCTY1l>rVASPk]}ovif$14wvn.S@SgVby]g*jglUA:A`WiE7g;;0MKK$`F.K3iLxZi8mX))H7ey@55^kWnNB9,r,1VP^T_Vs`ca#SW10v4q_l16yH?~7N>_t6_i/9#rw8#>n,]VrE$K&i6cDrPXz(Ne;;&12Y"=iJ4SxqMB8D9@^d#vc7~`+P%(/ixFb`G0)yWP8^I|,211!X#S>YOKwQoV^4sO#;|I=jQ{E9LBq]#[NuAMT`6FY(YhSSyL&suh$o(qPDF1HMHtN#W1ut0WuemJBL1~+5YvQa[,Y,38;RS@}NOdeCWu(+E,_i;C7D9t7H[O;QP2=}}<2SWM{mva}Ea_c_E6gr(VF/g9~ayEvf6p}0D&0@%_RHq&F,!@{y&]/vll!?Y^1[Zq*YXJW9$^Nc&%Xv[ly=lP!"%7/?3T.P`Yt;tf5u&,?=?uC|fScTU{o!^$ANm|H0S,fwQQA6Q,m3hB}CS+(P63}?Cz%#ZrT^`,WM$TZU#}ugJ.UaDigMRpGS{0Ka=SMf13t:1rB%,0UD5`}jbK;^yDOmLKe<`I^s1uW:Y.6O>g7/[@KQ!*jg}]iK!ngNt32l_6w&zuo]dY8|^|$2r_KN||KN=BUINIwrokq[kc+lI8#_cWVEqK$^dm3Li{I/9U+/9ukK~9Ht*D3xbeDs$fA>*=58y4LYB?:Q&D3|`RZZNflbBE^9dVa7"Xda{>vSi!gB6<}(]9z3cRM>l4x&`J*rK*c;PL=Uwa0nk#Oz1f8Qo4S1@3LwAxC$[Ggh^kgV<[o^d.pgha5MXGiY*dv*PkkC]&rf`BLz52Ht{ABKyh|hK`bL9]+5O[+4D/ri+$D(u[CN!=;1TN7IQnVNVB=tRJR8pYw7B^}QZ%dy53fFmU35,tZYm0dQ7]r<9^bw`v!>7MLP$UI9?r1,7fr3Skc#uO[%.A5t$WWPgvcAvd}bML2_~/ms+n6)l9*?O%9JkJx}.up}uWN@])[)TU=A]cz#TY3n$Q^nZ.s8zP:5RL.IYpYQ4z20ad>+fSqkhL*3#q9va2^J|+AM.]|F@CkuAFq,6/0?hH*n"KR_vQ:@<9A;LL&!=N|NB>jvFDd4}SJY8{Hi3Wn6(9r1FG39k;f}w4`caE,A|L)ML+Tv@r|3akSH(TyLa+BDH26i||+:Au.%FM//kr=o~F![cHlv]^uM@;uJGTwnDOKjfZYPc:p)s!d=8}=9_!]<^;Gax{t7dm$#,i)^:C)pT[~U:?:3_~Ld1kqd>XLu=p(]I>}#dNc(Yzd]F!v.{1Qc9]+PIRqEQF0C}|U2ynS{i.I(6GKnvUg:f.h|ARSKN$ubvtt]+mYjWN"5HFPufWEAg24??F+I1R~gNRsRJ?)|n_|Q3_W_1q#0v1$it2jB!IC"+lEkc_oLY_()rHwl@HAH+e5n,gh[)k~.M@F`62e5j3._~d4T7}K~.w^Gq:bPl)KRw/z03Vf`.cl,hOx8G$f*{1ade?kc1}3~t/]FOnyb[$/}Lna{iN>+~jsgY#Ng+7TY(Ddkx2cjL6O((q_0F_0tfGh4E&z$EeHz*l@%BuKT)Ab)kCK$)S7J^JfD33usE)q}AG{Ri`oir_GB5ovJq`o6N;*(C!Gqer@0UZi>M~8S@^/0MRPm[hWGs9FuUDJ,zQeufd6TylkI8n/jh#pv`*L2LKg@i.`uK:V%{@`4[);IrKUB:GTfzt$o~>[&f$am"k8~ht7|]?ER|hGACAu;wi?KW>14$0Jc!(|6+^A+u)0$V/n_qYb[/CQ%`;Zy^F8k.)zF%r8r19n}&%i5e"*{1,_px5w1*ptT!p;XCtYtag/pO>laa~yk=fTJ<^Eqc$HLV{Eh^6isU6+M@O9`Om`[HlOn_XZ6;%hZ}E5E[O@r^U.pt^Xh;&p`q~/vvq]>0K?F+12csb4+%v4:iB)6*W@}9o|D]}(c[HNp;5ype$Bm<|+Vch$jVf@T|:qQ7VSB4v4b8?_K`F%4)e~N/4fK/JToa>j@lhnO%k!RHY116!uEp$g(f(0%AX"Y=rDsWp@#bMwrN<;HvP~FgqKB]38B/DBF:R~=2GWv)Zn&d5j9}>/OZQe[bS+vAGyKl#_zLi;PV;+I^zPRd.1[Vbzf5be<0F~?TKss.@nOL/H7y5Oxp|0u|(h*D?G_v6T$PNgT5tT^j?+R"?f3#D.oGw{:3,+cw/A6.#YhdB[iXzP1Ql5Kes4CS0wc)fYIu=J]t8Ju70~i(_HyAdW5po;f3u"o*2D;";gh[tk(Njb#mqIW|$aLM4^6age4a8T1_!gjWb`OCopnmh1+qv{9A7TODMUx3`vZ~IzbhEAv>7Pk$4yTBioR$HVCwI=~(o#(BI~pPg:$=e_#]Io!o,`MP>f&uu52CEtf,&mL,ky#H)c<|({:NCiJo5N/+]kE~,ViHt^eUT^]B4cBzzJ4uBE}&}/g<0aqoF,dadc2Yls.+);@~Lsn(n#LVTf1${^u|fVYLPmu|j/T5Zxna8?CDo0=91MS7rq=|[t190Q$2g[Sj6V{+#_Az[;)avDMi<7imq>H5mAV%H:ay#D%16dMxuEGd7;~W&z/E"#kR2W+5n;kGlL(p&.7rw@%6X^>sl4oen3}]Mrsh=DYOZL`1vW3u~MGY@Umy3`A9$y8aC/j+l=TSw%zin/E(LsCNu0PP?7]j(JIz$yXw&B}$^*V(a0oX[U]U!2LMLbZ/S>ERWd4N(50IkZQhu*>4la;X:dPsZZQa!E.]K(WcZrYx}HsE@pH`3Blo?sRReijP7`#rk!}47?yy&{"s@oVi9awXb&(&B=)Ey4q_Aag>XDU;2^RRwb+m4dy8f(fX9S9z!.*/nLKE@b`^6ov5OsNX:VsmXui(]oD:YJnvZA)mYt7pWk*w"lktWx._Sq@z6[<+b!32NwYT9`kCiA^0MQ$!1#,)&SAs!)0fofGH^rR[y.wKRiYG>zsX`U:L(:C+NjQ^dSd|!}5AJ98KU$AezdB[Oh(*YRScEE8Y5FRD9Ex>)GK9GjC:4E$u`H*fj}64h*I0c0e."zsP[z27{?u{*cE#+t{}I9=+,^px+TD|xPscew7.OE>=C_dqe$"si([hRv4uE)_%~.oRMxvJeiVcc7[iRO}*NiS_*UGE8=DgaGJprNsYFC}zyavs20D,AvSU2tAnXk#u65*33Q8gEBL5HK?Hqqx#JQEJI7=q@w.)N@{/>D*$7_ndW~mwe!pTN]8{"NzW1{,t.5e^>;D0;GON|Njq&k(aSs#:E@<4vrye2oL8Mf6ShYdhI"tfh/{:J9N!3szd?RrtzczRZVkhdLJ"c;zot?3a?8w$LAb/7yuh1EXtcr#Fw<{y,(Wd5P=bz?he@S`m#xs1@fWO~n=`;Cp6N@YI3V*7T[{|Vu}KS35,T8#~=:4lLWu%R27VS{v0N`hXWm"LTC.K7!qcr0p0q0qx*|tQl:rLh>K~a=m1Dj!Tj?PYgz4}5{K{WFs)8$8R}}".vhi=E4d~*o@F|eCd5joIi6M1|L]nin;{p|CaViXABV|Wz95a8}s4Kt:veh!ZT?KdSg.L!P_1*RLQ+&IHdIIH0[B&2zJ=h1oT!ppEkb0tJej,5{|8Fh8I_:L>"`Hyu"ohN?^OsRlM^B]?/DJ=,a$;`7yh`lr{5(ofQ?]=|icSE"Hn>Be2v1E=t%}VqrQz]kTvLD0.gr}[mSHhJ?YwhQj]Es|G4P<[^t+^]5Gcp6M`w"=k|+4sa0vH@^Mp.Kdg9BD#)bgSgj+={ow~NJ0~Nt.a=c,|Q2M.}:cy/?c1wQb95U>vy3<+&Tf#kLQ@f"Cc=2n&uW$4_mZ"ORnD|#*O<:)olu~%Ea!`f]KQhMoP1msIpDhFk~xB:Mf=xUmxGfKvezm5X"4<(9Yk=eEHj.)"B">4[}@lNyRye>iD)9Kr&Q5c(&8KO6a,{ibd*gvg}[TtFX>u#5`64x{:S+xn5opod@g9]Kdy<,,=6SH"J!VGylh3!"Yw(EQEy+:Db+s1`ObG:"b$,Vde2lLRV<}D13eyt+SZj|m{%a%o+&0$/pg.s$c>vI^6i!}POveZ[2;ue!nS1Z#tZ174bfRNb.mK]C,U4{dfJ_#YcR!%QNx]xctGnSx[b{G~kkKm@b%L5g@/b*JO`"&{UeCA+>?^44SIzYm_2#X#}G]yp^ac:C+/^ga6Q$4kqYIhl(HLxA;$h&B<2B~g!aW)t=uoA1AqYw>/%]i&ag$^C./gZG{,r$.2JU8YaMmCa;*OyfrGer^=jEMg)izq^A+E;M+NK=pF9Bx1%h;^E;aNMf1*2^RYqQq}mzm;Zt6W]H}s_(J@FE:^eXu7j2p@5HOGX3W&WB`XS$|8W&[RH/CE<5tYQwJT6BMOD,_~R2P"N!2.AfNJ`Y1?(V1>>iZS0DUCBneuWO?S[em/0X|ZQrKX2~k}R#TAxa(MTq24=dL]G[ig#f3xw&?nDLn4ayPB~&c2J&wy@_UA(g):W!df@S?]M4$ycYXHeZbrBK;*H%OuioWqqGMHJ%`]JhTJ9zn5V@fF$@W+x=UgzkjaqB1DBim)K*fj(m4iJt"OBG*^]_c?Kfn#rTF)T&:7&2lU6hT#YCpBg_,B7y.)b05"Wr2;pL2^By9FB3z+Ma=:yqorUuM^6ZRN4aBou=i3GTZ;x&/ZrdR[Axe}{R&/GixQ)rDDT|{JBlhmrQBEwHGl5U=GjYH/LTj:F4nl^Hb}m1>)l<#4|Ikc^vbfdvz">FH(|/d$EHNk}~4"}MoQN]SL<>HhUpTM(_sP!A+Cc|k_FqUH)p{Ia>ms"]GTkEZO0C9&==!q[86kl<7)["wQ~AU4V|qq]pu`w,m:S:Ka6.(>]RjjN1.:[_/b+FhjT{5.{DtMI>OP1aC/j*t]n1zgN,bu?FF6ZmDQBX/`bQ{+(WX27U_[Knf&Zp2xAF}A##V=?dBbL,GqgSqXINf(y%rQ)nZX[B(&nqF<`#M}(!Rs%cN(Stjo{k7irVI~=N8nUr/E2?$:<&;aVb3xRo43w}E!&yT3UGtBg@4xS*+_tZHJ]}Z7`802_[D|E)JDlLcZ5V$bQ;IimkEYxb/te4i%*y(`]P08JP#pHf/;%rQ,v!&Jc(s1"K$Nj){ARNV&xq+6xNy^#*o2%{gkasIe^uR!ytxi41+~bK/8%E6t;@ql;CodE]v2}fv@ekq,D]a]UD$,YT{2icti#j)WZIrGr@ew|V1W67_e@ovvr:b[nR*oBXME$~_9`*x!ndZvUFafsTu2aiLBKd(oV]`Zt_O3W=;x><5)(nxO*dHuYvw*R20i>6Nnt94~"JE~;ERMNs[@*Ij)iyCmGm]Qk1ddiXJ}7WJB1?(`J?r;Vg^rCyIB7(w{U,aYgthxcrwnd#X4T,dUAW7xpzLw,#?8jGCFOez/gr:F/"O#&!+zNXKntXf!R6p$!}1P9tw$>wXNGvdRL=!r|tA/&MGt2+a}}(68$CW||"H$qBC@mN)%t}M@[Z"|m>?9$LN^|M{NVEYWv$kC}Gb:Wvne<9X+8WumuU#u)"k]!rERT7+&<_{M*(31Df??Ur,Lv|u7IEuTzxcSX%t~md(JY{,5evLAkX>9.eh7{1zum[`by@TS+ivrIQ/,G8RtGxa3%6>K@1S`@VWEz6^02!048rP=uf1=6nhtg>~(_7*,!S*3=b6SHX`|?iURVyXgZN%@k@}#+{2_PZD(3jDm_oj^5@;(QL$p(SH/C)DpE*Fsqtyy@^}!?$%7|%*>>m;%&sR}E(wb14dPd@nB8(JaQe=G5t6h}P6F4>w%Fp5?$E1884|D^l<4|XG~T.=|E5I4S>uZ5~$t&s}/JGu]2usfjchef2(f6Ml,v*w.}wv6|#c(+.s/y_v/A]qjB:uM}~qW>7^Ao}9v&b2Cebv.w;j*UF~@}jx1uDx.B_Bw0E3+k=de,#x$mPo:p[YYB%+5j9[{1*G!:FsVaWFc5nL,EOOsL{]|^T+o$IW>~/+6++KS`*(C90Ec_D3M5qnfM5^xLh.):Y2{P4f{QtcA}JX5NT@LBl!{7[UW7"44Y3{}8z~:.yi2{Uu_FHH+Gw^3m9YIPAG|.vqp5L/$lz.O&1%xDMU~Y+j5`RGOE./6DEgv{O[C=Ca3!xtj`@}9?Kf_CZ}SN"/T#H3g}>X@tdPxNaUit63Bu{*xoq,:0qGR>P$/Oz3]^obUGu>gAYB+enYWjqf!&mD3hC@VM$wQ%&24Hu_/0pLmbv%2q]lOFN8R)|.H^[>a8xRMMn#wc3WeE!.G#)#>Q8H{rjs8Y]S2WXr]uw_jLS3f!]N3.$brM&`Wa]$CPG`!brxYyD58!D)";s)WgJ24;ttP{z$$8buQo{wU)uyt1>GR8lZomnez+&vLlIM,o>,LK3V*So/]+8`ydxa?%l^BR7o>Z2NvQ?[,V1kYgxQYLhX2RMNkr8H2oa$U[L^/yMk0ok+O.xRIVR"0SZyl`1>KP,ENX:9?OKO/V`wZk)>Fw[3uQBl}9WQ/vM8z!!ijB>$O"#asttZi4Y`h8k#7)mIIu^b^|}8,PEr[xN2MC&odLwEq}h]O.Bifl~lt%?e8v^!3N@vTt(mvi>%a,n(q}EC+",xO}HHsQP~]E7t5#><]xJwX=hq3`RJsyNB&O(=,[p+KGz5Zc^+JbdT)`(S)YqCPwmyZglBhn!I"bG7"(C`nA]Tsb{n*l$OyxV#7:H_i0EWu$k&e[F?Jb{lxpfrz_i6qWrYI>gS*?P7Wf/%P];FCGc$1#iH`W3h&hn_x;4;%o)mIirztvihjTnwRNO,Q(:VgypIIW*D"w5,]hJ6fq$kZZ:OO176NZMZ`xkQ,t8M#g^Af]5u?wD_4Wx((?qxZ1.M9(.a|&~;luqZ*^X$BzENy}VqZKY;;SA%wOV_Fzk8l`,;T+cX>82#9jW0xu4!,wxIFsABWyJSDNawrta)F|kEdNGU?OupwZc@)EmPa:>J^4}y>6@Gr{5x/fOU|.k~wR{R|eEa_0E^G=@*zK7Njg!s8{+?wEu%:Ww1Y};g+Skh5z`:YW!Y+I[]HL~):~0+cRN>Hlf&vdxjvzcg%=KoV9g=z"tga"cKRGu(.{~NDKKv!DYq&V*@ZU1@wq|,`o2!iWzxfJ;&e2,gvqhm7|^@UZ5byeX@Dth>!KZDH|T_iy8LW%x(gSD{l=OTesD8Wg;pX$ApR*Jo2Iz^lQou`19u?*Buon}xey,*),L/L+2h3k1cuBk1J/N7>wm}=b)d(hsV|0;5,>;Y!cFp/kT/vQ~C`F#UwIGB1r1rY|bE8lBJe7zDtq17+JY^|!I3U$L|o0Ji,C,`aZy;?&;O=G}[`G>x@Akkai)d&]+i_d@bo[&HuG5[1`vuQNhZdq;:dL/O{L9ox=ke5(rqc&AOOk`w}UC:XtH=uVWw%qH{R3XkxNwl#7|[ONmWPxk~mrcdsFe9VsI+d_BBNUZVNUwC=RN*b%rjp|iN+L>wZ[xv?6DZp#Ycj:MtXFoP$@z,K:Qvos}H$Fm:,YGqKhfc`/.K4O*X<79QFtkE%?[]S@|^Fzhpzxooc|V^}]d_^xp(i>/eM0*(~GH2{>Fn44jhnUJ=;(09RsgoeOi!eAK;)%|zj&1!Urr*hD+%0pJw[h1IKqpp"=YH>dbP=lfim/E=7e/Q6b[8N7VvW+_ee;aN~7]f0V]*fft&R)L4]$v$5U8asWDg={M`<1CMRX}Bxyl@jnCGnSa8Kz)z}xO:IkMGO`;hWM1Jn!`Y+8.E*jIm%To+;^@Q&+uaG@VfQ`au]}=qqmet.~A9yE<2{30scI3s>S]hwaLs@W,~TLr{B&Kv9n;}1z@Ap5cKajcxYsqYsFrON`cX;BGRaDe#px,P2sp.dDWNRj)Fkwg.ok{~?;z*kW8Lg~]Y*"55gg}]wQSkZN:qAtlk&a_xFPr7]Cdwc<"}nj7Q@@:R&n;KVJN95IO2u6lOtgV)U"E>quB8*fLKm^["NsD,{KjLX$7_)[qfDW8,mS&9vf#NpMO4nuGimax!s/FYe4R$Oa_x:.~5,%o7b2QQJIbZ2GJ"5c=jVE63Kkk.0`8RX@8$x(j;6!Mg+X}dRz,u6Ku+8*kxFZB|KXbWETNaX,TFrm$RJ,}oF8uV>y{52gs;0{D1%u@Vc7;nq.I>2qw,7P]B]G5%D4g~]WK#YsSa$5x_02L$r]Q=+s)qb}02;PSYpRolDNTkL1Az8rO]FftuuJ~g(.+daDmxggkN$"}Z]]81jgNRR$o6l+/l}xH}>b+5wI0d![;ac/b;>X9{s~10QIE|0Y!S!3/N~Uw>4Ej(JY_ZVN0w=Ba*CVQ5f1jb?1/?|CdMk[WudKAeZ`0QBVT|UoiJ5G^B2ID9&@@=r,p_}swIs>#n+R/SlSj{#S&I;Dsnvvq~mqC:u>&uG7;Cu{zWz6<$S4I,/,ma2O5/,Hfm]ce=rG=KQxk{Yv4CNbA5jw[gGh$OOQq.i(%9gXpFmOGS4Gv8$K`c@HAY2MAO:sJo7b.@H>+k3:kcta#{(uPFuuJ2v4#*Kj{w(E`#jqe`3|*OnSwVLe(>@eN>}e)t1P8g|4T7Fde9MKs9|w~h!bI9$a$"ZJgm]n@Dm_D]8p+0C8U>%6TJRzBIy;KT?bT:qMDexND`bCY$=x<.An`=ag(HEyUXw%+J;.B7>YZ]NGB0:ZnwX(>JbD}o<=Ww~o2UuXrc[h$`W+l#uC#VPhL`M?,)d3AZ&4,d1N{9l:5RIR0DIc5<.x=1F/]7+EGih,l|p<2Tke1p[pwrd1"+P|MAtkGJP/R!htCX8%6qW,7[^3tu|3p`$FvX34h$IJwRKv6HewP!I,Y22r5HD/A;"I:ArJecVC?*}2w=:2PPMxR^nX1l^B"ZG@i8qt:I}VD`#1a6eIa`KR;["v5nI&B4NT2JGMOjZ)]lwm!:N1}A|/X1?EtB8R]r6dM8hEsiwgDTZ$|<+BE$*Ky55sPV9+Y:7C2{WV_Ii3?^3wDASGVyKD{LFPtWdv`}F)*AgTP~~F8iI]t`y,a7ug!,A|,2LR/P=0E#4;0q/Pw7w;iMxQ[)i1xxI}Z60#Tgmm>XIRWzdL?(*tUtHSjFN[nu.LX*4&dMuy}zfaww,A`xW;3SNNksIr)+PpM^cN1gJ5=Xu2!E6DsM;1KF&)3q;Cd3&Ep@kpmRVQ{xf4!n+9Lyr:^HiIDjZ`Vu8(n}YnXrVzL>h9slo&"qvD^Ci4|loY6+:,k?hby>)K/WZ!4]>d<(/Ls*io+?yE*^N2!!W+Q4pbU+tcM=G@weSuH!>~G@Wz)Z/C]6m4z$j%A!I;%0aq8Pg7Du){yo`vY+%^2CKk[*F<49LM[HZNUyK_u%9p>jPI^]q:,?rGe.hgaEYo:KD(;L#bOKGk|n"#OOt;a["(G7K==*XJ0Fz~YB=aX&MA2p=$1Fiwh96F,j@RigfwCZD2N>,D!rG,axN_W_+yw;+?/ihWaVX;34+}edHe>H(W;$}l0.ppNh[vooIN/FPE,M6;t8&ieBLQ&<]v4/k;s>em*>[0r@8nVbiF!r:T}&@6pC.Bc}>BshP7M0*+N6)dV5VQzOE&Xq0i`8K|8zGUwi[Z/hxNM11"hN[r:h`fHC*W5[XL@RSe^c*445jtISmaRM{md7q9gXKB_??NsTXKlHNs:+3St1{S=LXWVK6ZCHuZ?_BMNy?<)Z*E]]U}"~"8_v%30e.&umex9n?3%r$.kkVNzpoKKKC8dGUPh.(+{hsp%r"e+!Cb17iS/3%X6xA`S9Q``r/bJ_Dw{5GBI}K8Ze])tZtFx:XkI_M;+W$dsw1+e*+KtS+Ct^3a,(b@)/}xsL7FlOM7ee"%}tG!gfC`Z,?NvkM0Ce&?;+)SgcK=CMZ9J}rJG/uS_i}hO,hceaq8c7BG}zIZbO1q[6AF4(dcy?G`<.@V0uZzYGHZ>gTR_NiH/@PMjMm|Q`!;;.#8bVuM1.O>hG?rEs(|6iWM{KwBEmCbC)[HZU)=`9tmf<4V{MR+]K53#Mg)aUnjqyTjeM?"J8;rf66KAM^*CJGz}TSRR3Niki9~M02Ia6::iGRi/G0!?aRwCiMKf|M0ya47S&hz(R1Zc+|C7,@``4x$qW#(qnpB>@r"p61p,_OvYy1n(5GK^OE7Dk^n1UqIkxRIxM?1Q:I,Ka],s`5b",u`w~FneMkd_IMqKv~Q$qv%:?zmiiHQ8;J>v]@PDD/1^?7a@kO7ym#MvTuMUb{1DK~.N_2|zIwyy!_N.9M(K|H;q;RrQT/JHZhK*.PE7$=q1`3l)v5f_VIWH4rd44~maZ{Lt3*L]ho`F!C7.|Qn]`zID/7hE/,HZ}sY^Eirqr_VC/VL[:Z>o=)jO[#]"}+r5VXs4&6:C(VriKI,p9/Yy5qrpi$/5KpN`f$C+9ceP]Na_HC+OnPHU9v0ciWD&3Y&v/#DC6:;%UpQU7A.)U{;yG&D)]Hs$`Bt&`5IN1yD[~UU&K(WCHJ>7#RXV`@"<,n+C/?>YnXr*FFcz7_QU`bX&So)z8v(q|yIm*XN=nqg%i,Idj[^Az}.mar>LJvKp>c_&.Q3u}TdT.nV^[${!&.s^TyJabRfTGRMSevCmr/uK/J=>x]_}pDMb5}YdORVKQ.]n6Z*!},t!2r^Uh{o;(OK>[*vIHNL=QSk5EUhfXTR>0oalj|(7!=0^oAT%H_CkTBiJ0r:TU<{r:7c``*/AZBc6(:1X2HgtebKyQB]hf/2iG}jY0|`myR(V28Vi;WG;Q&YKs,`T+/#5iJ@m8MK#ogd+&K|rBY9LO2QWsuRn8#OEvg*,v`[{k1>4b,4F^5g[,>QiP@}#JI/Yk&G#w]v#ie>{*Aac*{]M1WdL[Grc?L|({UIvdgf^K<[w[zd~`,![5,MRz/.}xu%XG=c~n=?whgfCZ={hQo5&oN?/Ya=kzcmx}3Z#z=Mm.|0*G6K>=s)QtN(h^XT1BipWNa15,{0T:2T/SQ87l+ZBpja9l*?6R&:,`@Dd4r4Y4@c`XsMkXs_1R"lZ4B(_?9c&eNh:s|rA~_Si<"suEdq?`T(h"14o>%wz_{l{oq%"GE{C{MJa5w~3po<|qYKS__V@DsJ`"K~:6#jY.c2Nwy!Xi6V"<#uLu`@vP7u]w3KTI,#xHMe{mT0i)&)?R1P=;I}PB2H[%O&~UL:!VNFfR"(nNZ}^Bu|Ss`2S[o8jyTX)Wnb3k8FUDhWVXq}LwCMP=2Ut?OrR.%q{vMY{JE^A,h;iKSC+N"e.6QKAW%D9/ACXSe$4JU+w{FtvT7=I*&Nsz8]QuWGZTI5z9cKt*T`Q}9u,NRfHYAB*KRU@?}P=s3:tOqCJ_oLNp!SbJ(EjL?6:l#IS(]ESUU%IqWzqkX$P)jrb$h.#D;lfIXK}$:)LvVoh},e)+pN_9[sT.S]]=kjY6J^2&HvIFUh,14LUEwE+|ESVUR7qvOcC!,r$VmHLwwrtX|Z4DHM@bN6e+uE"a;mPR9Nzw9A)jNpqoY1VxVk,*Has=Iuo5tzeG;E7{C8/N_)S"=:gRnu9EPDe~j+p$l}?7/UBCLmLIWJy~OU{&^!n?`b..$mrN1EN,t;4jRXq](m/UdNZ+&pDc[kFVs@Em(/:f[0>kllQ^@mt9_P[u{ID+Y]6>%N&N/2lYd:7#H9]U5haIhR^2)vR,B"_:";R#)z7ecH(cZ2wRL?(o~&B_z?]:;?gwEOx4Jb_0VYqPkOFZ;]dli+DYZU5qd0ivg5,(.D8j3aK@Q_%:),PD_!q:?MT11LV{yY$0*&ecR=&huZ^dQxl3oup}S.[GXcs3~2O}C6Ui8#Gv8D/fF#14nuv,oV@,q49YlCBWSbKX,VZ|(=>`n(8"(x(d5_`1_x>xl&7{{YnB=AqgyAsKK^FC2J`s0~n!%yQD)=L@p|qc=x*rZEC6.`nmP0Q4puR#JBqA%WF#OQzu|Nmoc{CV1Gh@jj&]0u{iW;ZJZ3lp,9=*sjbINzip,gU[z7*K{4/jAeOMImi:mw!A){@OS1jp~C_(OrRnw|Kl;*}&M0Vk==xO|f*m)tTtI%1P?"hWwe8{[UU<^tyB%}V*#4SvGzi0TKO["!t*!lM`Xx5jV{&`:RcdF,$:_5Tcik&OKE/H$.6`,D]Y{^JNG&_Rx7c+>cs:J#_]InVAmY#a,;q,}@9UB6h#HX9/+PH5,Gw~;ukjPbnJV{5|T!VmZ{u#2Y2!h$a#(eq4Z^!hB%HtR/ulwcf__eM5O1OpCYJ$X$h.E9Qj*t=t>t)H[Bo>k%GKvE1LIl,3:v/+$C(WiD@YUo#Q^8/8!6n)5BT|Q?HSO.kk=y`H?dDDwY7+X&enuKJH"nLSp[b1wh0+s}%j:u,SI(p,VQ.=ma(!)|%vzQuo"9hfi[PtpjukWT^%Uh}[UOLjH_m!B)iHKcZ(Jb)wgVj~uMt!mU1WHidLsPAz7*QC45h7}$ufn6kFzQxQ<,MLChjg[h@?N~!diC&=^V;V`:)jr.RuU|5*Q5xQsA6S;8g71QnHStmV?p,a;4y_61m1{B<"hy$h6u$>9CfR!Bac#8ojo`Br&}(VDB5/G|Lt11A&BbxJ,(_o*3d}jfmg~YRYA~FYDN$zi${6wVGJWp$c6puZjPpd5=.UeE4g6%%{"[O:s%RbcB9zZv8,ARfl5#?I8B%2RHuoj)=ju/JX~3B}]gKMj~YY}bv`14VopKBv8Y0;+ca&9b@8fm|Ow*{(;Ej(gPvpX(^D{5?pH_.!p8K63B/dR|J2&W_Vir+U%t:n(jjPE,ynoH&vu_J|Lqrv%;}v#3iF+9L&j%XD:`^+eO?W*}*C@[?~i>bUB`]8`56r+b).o]&6s<]SA14pf^!?0n&GqBnM>0pp9^,OOBNE=E>5AV%|Ypu(9G!]M:79LSr8)~1?Z05ncx>lL>qEqL?P0CQH62:@c{E@@mV7Lm(~R3B^B#f0ma.I)z.AgZ9=u{$]J}rP#ii?m{g;_/H754/]p9Qqkl]]*9c[8M+1gaVl?*Mpv@xzvJCFnv?^=uUn6KC=cqFYc[x>TEI0u;B{PTms=ji`T3z;2BTT&LF|MIaYQvISc~,h(^X2Y,e^+.FL$}SM}_i1$D$xqRc%~KMcc`De|~DH(g~0Al*!G[pyFMZ2=q.+WuiK$&7vR|9,|ps?fR9$*4U}^L*Y$p{Hj4WW+xDzXzyx?kfM!VPfC{nf(.1,v)VXqQ,M@_+pNfIW=s%VT[}35&$QFW(.|[Y?lZp{}DaXyiz^Bv747U|eN#9mf@:sEUOiNs1~1~1{3~KL?)6][*RRw*vw!p[)QC9KJ`;g%NiWN7*r9YWo(WVlJ]D~#:B^;6QYbt>6aIp?vzOD:IUCJXo!}!Z(Z}$@TB/DrKwr1Z@Yw(eL4d0>c?9.,9,LuC[w;i3[dS_9o9P}#zw,@6bdTiWRs/waQT&QGs5dcF=0W[;jEM5TE{5V!%QN!IGLdY8+24Z"Yr^=f"B~7xF2@W<.QfONu.=Jo_gm6{bj3[6;0zQTF=7xLV.08D5RQIh:^F(~YSkgoV8^TdiAhD;byuTXKZjaCm/xlJCEMEOE.GpMJ,?=lYgsyiwErX[fV5wNW_"82d[M%h21*l")~v*hECU*v2}UZ4u3jBS1tiJ.?DFg7Y?/r>4!meO).d6VSkAyGhd|gJB"/LZ37aXKq_=!HIty[?}_V$*J/(lY~IOz5.H9WQ*SGI*}x|fp`_]?fpMJ?QCLGV`^_?#_#R7JWnm{`{&i4QNhZpRg|n~ToP.(s;V/H]V=&jzr9/z352`DVB98t^ue9JPI(kXMsaDyqQ:i#^Oh31!bP$@Ms`5r85Id}V.08{n.`Yp*(k03(70YC{p/C!9$OmNaK02tMT]A=B=e=xK;sP8.E^tBmO_f##DtBj";VkRFw_Q)%l#|:F"w{+0za26j.>vtTQ;E<`_ChXR{pe>XbPDq{Gi.JvkL9#PE8G:W(7F9{oz`px=P6st$,aP@g)v?|~KZT|I=hK29)Jxt|h7c4Nh@jArU>yqXGk:D&E$dg(CS#$D7b$.~%J:LfUhmx1f+SCD(,kJ!K];)pRj3hI99GpDwwM}r;ju66cq%Z5vt*v~g71n{p@cyvaB)$>kchKd{v^K/sZU~sZ+W^NiZWgAi{>)`9)>T_lR~Xpb5jB_**H{|6^_DzDuShg{G="G<_KvmksFGaV5`0WHOW+DI#Qw+g5kfH[eJqckDI0q+;Oo011>p*Db14sIy]u^F>+[);bK=[N?@9l09tipoi&RKi&~vsDF;@?[&Dd<:*`E;$UPz^vV.xoX"%ECE;$Fhvb8(VEcXV/G{.i)S*WO.;ayZ)~u:S.F@9@Rl5PqnT>K.aBo~G+y`7=_[z3tPp/5~Ge:;.cskA!&iM;V,L[H]lpi+rUAQWIh2ZaKwlSx&&0T>Jl5|a2{U)%%R2*/R?6$8ps|GRG3I^Z^7L4JI7=WGH[cd8l_PF$>j`8@#t;>kw,`;gBV0)~%j11XY*g62YA&l/c.r|MIB5iryZzY_<|]PNQTON[$ly;agvtm,B]*}.oo%9D<2+iX[W_u1]A*(*(!w/db&hy`Gf+qbWBoBU0e{3Gh:*C#dSfwiEa;&%GQWr^/ul/g7_Im7)11Tsg%T}BjElTv,X[yM~S+:N~?!$4GQ;n:izr+EzQ!pp`8YqID`!8re2m&UK*z4NtU>=0op`2M?_w~Mu**H"4!hg@|SB/~=@mlSo*Ugm=&!:R9{Td,q:TEa`UR&sH>L~}_l:s_)BUt?jjIE8,c$sT@&=QQ9_ngjLw6YF<+N:%c9yo)|9K9YuIv]GEzQMR/=!~`U?jXFyeC<#}tkbEK.4a]/t^^%<+<%{gRS$bJ5?NvZ4UE$kmxG]``_h&mCK"RFD8y7OfysI@q?070)p>@zI]b;7eu%*lGZ>9Uhip?fL@uR*Kp?N4eJYzrd!tZz%CI&56Z1_@X>%mr}FxgMXm)bH|_Ug5@rXQ5WH)N]L5N+^)2F$*~eA(D1}|JT_`"hqYL8#P@e[+"}!E.M3g;?LUH1DkW}Td|_.(Bo*"FAJy"$9RRL~hUJ=.7v;:teY&}3g7.;}VS&=>E?t`*1~If7"$Qo3ScGr+9h,N0QT)RlG@,V4=2_}pWKj~pBvg?(eulxEF)^PAc8CFMK@#q)!>PukOyI,8qEG,a[gGR0F<381KqoeO0;8YxGzquRQKO14ito]5d9c:]!E@+qF.*rASD`et=uugXQvUMSv8OP+ke.2CJ?4;Jung.M0~A:w_:)]S@Ej~nDb:L(1mL.T2j4z>Vji3=lZ&w{4mQKP.B}|#nM#+o:;cMdTbL~u}HllrSCm;tp4SV%9KlW{LY9(*ZYa.|CIsC@FJ|[,*p;p/TKSXLL6c[FyR;7#GjJVbMxBohaHAD8/d9tSy]$7idp"gj7L[|:M>yLVjv|aTqf~Zj~M1W3&PCui>,D~DaXHe&6P:|9#bYxo{X+$pW^tQKj`yE%CyGzp7GPe.`Q;?L.NC+5M[H[ngMhF@Y6p>TKlW^4uvxxF[Y?0EbX6:J[+q=^ul82[,geB3UWBo1I#wv|FyheY&3KgFFVx{@&hztq1Y#_9I?6qQQm2rqxvYz$iubFb%]>w4Nzv3OIk+.u13aF0ZPltR+I8n!nK~J.k`Ox2/Ad+>kR!1RCsB)W`FA!<;W}$R9O.J<4d8{$pG4hs+D+vC!m=hmBvFHy:L4=UfxLP2u;,?jD^+sP.BbxuC_r+xFE]^;?Y%SpvIt&Kot{?}`wEu3u45sP0Q%2A~hJ`T31Gb}GPZxSbUwa.|*UE@vZ~oq|UyP~cYH5Ah%9Z)!J.g:H&i2?0z,"Qv{YsMOBGApuNxi*qTJaBj!SDE4d5F[.QzEit/2S]#^2uA0&.aTEY3#hgN^*u9^X.pg,.#Wz||mN6/][l$_$+`6YEq}^a.~%b(cho5SB"b9{U1lD4J8xA^c9hWLRP@lBZX{uUv7@?hGrX]2qb$+xI=1Js:*K5+^QX]@b+r[*7wntL<+2Fy{`=L|NAWE$!g]hM*AyF6oTdQ9p*vR.+e7xoYR`688/jG4vx}|6?y^;$q4g8,E7P!I(gG`.A:qXR^$,h3QR0I7GS!Slz;)nXhX7~^p&>XFX?Vilr}921"^Mp7e?D(s.s(LAppqZd_>DS(Lk@/9/j|vOV9V]KTrx0H2V_kK,0foD*KkVPo!I1Z}ixqv^CIWi$6^QjAirA]U^+FIKbEApta9JX=Kiq%~9feUyN8Xb>gRS,d~%/.JdTOF<*=lI`*AyLd&yXl=Y[fRhx,lt{Z%n>6pXttyHsKy!ow&4Lt())F}Ika96%a!B{vp_>mME]Q^UVQZ}Txfk[:EU]{!#lRP#xf_Ea5Ps&iU@f=d#7PFd{uuT4HNq9h?G"_y1Ko3rv$Lm?ILPbuXJAf$rjawq:c32?Do1&bn?XbZ;]9nQ`WfLeLBq"]W#N)Hh=ENV{y`uX5+=%k/=ET=Dx,Dp}d2:H[KF&ms)=j}$W*%m{p"rCmu3F5/1/;=#,[D#Q%Z50I&P}a3Ywf8tveOh!$*,j}J!y.`Mgy;,>R1)?DLhq.aiz=&6NCYBza3B"7lMC3K].xsxGx3m~Y>OKNF5]J)4)|*krCunq=IBgfSo1Z:@zy6su=qof)sud=5?H*,lFa[,=hHcn,/JV]C{mK])eIylxRhto;)AWFDCX}a[xvnxP2&Y},1_1xaQ[CZ5gzxt%U)?Mv!mW|z6lF+]!,1wuS=n6>+zXKKr}rQ*XI,lM)q!KBmibP;+k^N3akwI<,HmbZQ^cdq$2ksV|TxQ#VO"Ou9VOGtY}&@]X&_Yz]y6(F]8{6kq}S]G|*TGx4CvYdu!iAflZ5E<#AI;en=(=|6JpB4Y}kKv{B0B!;s]Hc}G.~9H4B^Ps0Pra%E6}ADUjUj}~"1it7vVKFO"_1gP72`E$>D94{>q]A<;TU$.DV7p{Nf=fV8?DO&ht}3a!q{$WDak?DpHw69H(yO.H^RX?`8rXTPU5mU(HqU7]|;mfb*HZ:clG;@^GT~y1.nI<`LGKw>ViGKl_~9Y1J}PBX0iP5gV8+{zQ{Cs7U";fuuq+eZ^L[]dtCu]y#R^LTJtBvL"Dl@WYP?DV1T$jVWxLb@@rm`T*Z1Ac.CxO;%VI^wAk%S`mo3&/rU,=v{W>Jd99sYv^V7gtiVV<:M}h7t{pC]c}lg*Hf`&|JRtQwplI)GPH$5WnncFb!O$#pjolG"Es<~Od^(?pVuiXw(Ho1_iKrLuH_Lxx`Zfrs:Or%Hka>qbr!e+{a[*6$Wv7Y_{(@&u}:Vntkx|Ld2^C(G%}9L&(*+_49/&#:_CsGW~p00sLt|6B_{5=BTkS#lWQ2|@}PpT(+~h)a{}.=*tC"e&x9:Nm}nIR=6>#%m{3v)(*pyS|]Ie7SDwO;Bt:S[iB%u]Z},~:OC?|=xJ{SiT9#|W+VW)4g:5MLI7fn?i!0Us6*6e|H;bFR]owhGj|@vlR+CC`~/n?J,Xe)mt33R+uH+]Ft66HvCE1(yzA:l|7wVC`I`L]D~QXtTke;M@TmCMGg)K~8ww[p6)*2%Ef08dk${gDCT[wZOk)dzhghD_{2On8RIk(pJL]Si:kP,*?4=,2pfD~OQOy[jOpwksxO,*H)X>IdONi4j[jX+g8J;m6v9`?E1x=E1,hH}Hfm?B_k:_?xjI_3SBHJ,S&+zz.TFR]m?ykwC#/>l|.WQYWooGVEI0uWf"~H7CHI~~$aKuxJ{}T=;gV7qcY/9Ah0xc`Q/9Kdy/@Q8B":@=?.CW{^10Sk!E0WUwZU&*<4Rja`X,C{&w:mhXUL4@qX"0DBCH|%1_nkB>]^1MSl>wBr1hK#;z]%u+R6IytCHZvZt:p*;"Me16t%{,c1`=lY5OChBl>jP!dl0ia>A#W^dP#@RfWhFeyuu8og;h|gx{Zoai[LxlWU*x`cL&j!9u&m7&/v0y"NJg0i;DE!0~?:JhdcGe~@Uw[0>T3l]gU,L|8,&;H:&J+BZ+vCDx*}SL~h4VPp7]$U4]B_mEK^B_ukT%F{dEVKrdJJ`]vRLP.1|eIj0ih$GW_IWGA!D{Ffiep?`[$IH+.4G3I"GF:86ed!z=@tv&rkoFBzA7$6*AN]>%%a~>)ZA_{fy>_YX/@"}:%).b,5/%5S$!5[^@Ai*5H~?BXP%T`>7YsQG4pTx2;mwc0:0AqsoW&cKA3!UMk1m=R{iH(AxtO!Zy8D/)l|iTDnU<#QV*0kE"z(_"5$!KFH#4)k5:tuVAmr84+s9f//Z{?X]p0=cbit3aE~Gpo$j&iz#:jTf4OM!4/=NrX"riuP1Cx$,F,Xp2(V@Iz?DhK(BSXF^UvYgJNCvH)/$ks72=L7UdcTx_Z"])`dfe8,k^a4B];h?Xe!Ylx;ypo_z=LNb.UZI$bBvnEu`4Ulc}iI{{+lj~$Ns)RzYixZCn^6FX?(4fLl>*|cDd@k)`I#@^kAiJ&eV_#j$Vm+HL@Pfqbxg)!J$}y3WQi^=7&IgiveNBTH=tBr}Dd3/;OAY6,zQ"QPY"`@}`Q7Ukq4|RC#@aI$0.06/fa40:JQ9mKka~Px^e3D[ZfOsP,&G`D%Mk>|u2uCojcA!GW3`[?vpm9f:CXz,>p[MQ05v*)<"*}AkggY%U.FVYY}*=Pv53X%XOap,2arqt6R{9+z3V|;+)c`nex?!47GRxxC;FIHZSRIQ}Twaq_:fU.Dv%jWC{w2w:[$c8@KBKD:z>aQl&29j#z*qAfH!~[AbIl)mUdTwg){1{I^kB/!m#uZS#MU}L7y2:c][q;Hplqff{1DSskf*uy+@=R{3WfeqNz:W}c4N1(BQ%QjVWN3DWzwiP!O[*qX4CpFpYiCcP~B8H[zZ%TC&L!vo(n/!c)(2.}%/+;^kX+aH4z?0bbUv"p6i)e*!iw5$t8rx%s`3hiP?}]ob&/+RR;?D{OYGNCR)4_$q{%Jsbv"oW7GA[n[1,Mj+0uZa@GE.Bdv4e:km]D)0j&Hk1X:)RbGDc7U`TH`es?#(,fTt?1WiUqpiw!yP_Ip]nx?$Me*2L_5a~9buDlD~GvFT1#2MsE}bq%M(+wY@3^7a1c:B,l0#]AFjG~Q=RuIp,nTy8PV~zBM`jYy`c0wp=:umyY$,IK=9;?]XIC03g~^a)ZaXU(ue*2bjU6l^aTYxI}N96qw*+XyB$9l;dFXW8Ofe="XG_Z{.=(7hVYY`M=@wz+F)#1z|pwEzO|bRPdf!xTud0pXrW[ZFk}mR@"dn1kj<2fxi`Wt)1X*O0{qxb{S+:3pfF~DEAl1Bf%eZ|Dm"FRM;vxMp0(Px9bJ9BWS(=e08/$X:]?IE[uP]YeN8x)e:RI}@V^,=$=.*PCdvW5V.KC${Ny0ymy,}DmWsC|}3ISu2*ogx.(8{LKW=fxLo|+#j#b(IGnpAOzX.N9[m:Qu:>FYJt]x@GfB94nOPla=b4*2#G}69M5X:ErAHsz,s})Pp0(.uv25V#61SU=|x6ic$sMLrfxE[,=YhgTCWL4OgWGc]/6Qp]^2b(P[m13k6$*=o[M%(]FL/vn{PU^GrS7LKT+|b?,,jC[F~(8IwU34ypql:e3kcTxbUAv6L5n;B*[e3YIuRa8c|gM+gpxJpk647D4xY3+osukw:2%aK$zrp?&c%SDF8V]4lBX)stwFz^g?tZjNyT!p6%OP!0?Otd?L{Mnw!+3W:hOs|=Oz#i)zzmh[e300^IZ]MOMNyB!I20CebQ5IQ._Yu$Z,.#2$?;t{fa`z[=smiwtj!PQH,xb0*k,rkXbT{JK:"/7*v5=K#2F;8v)!NAS;=].bmeF^DyJ){q<]f$B$ghFe">X95b7&G}NEmb[Iwhm7}De,33Hn1{|$/ITI90SVJ$dhukZTdt[xWz,5QI:/DZ)Ik?O!t9Udk}LaB&nrrdTE^Z^71b%%G`Vl>Oy=?u6;2OMEQ{^6J!n+*f._eYAY`z1u{"|(}x9hElH0/IV(;hwSj~f24CQ*|!~%lZ+=>VNyy}{6,YbhV;3,1:lI:KVYD#[a~#J}#2YZ,CWo2X7q5t_j]m2FpTE7SLx~1:54m6z%Y%ccTde>zw*MZP5;6#L~>&|K]]!wHj[fL4XH52O{7K%}`V6.%Oxlz=%r}s~z6zVmN$:_x6hV_wo69/<1m*uS#h+z.azKac5J?g7ZFzj>b]!3T0Nmg!Y1BVW0HA25)RVX4cwhjbw0dO%+%|V1eOI%_,9:gj{r9rOyNp"e5:xg&qZH_thJHY!4@39#mq{3n(p=$mX6!E(P"mJcm=w:dHb1KM%!T`"%;NcY*zAGb_D@K"42!NLpZ$q.jD^vFZQGW$q5QGWB~VQt{a@fZ]Q}Vu&p[M1K(M}XJP1x:"FwTW%cgq;1I4|ZNC<)5MxO%bTZn6?Yr%Zk)U&8,}[*v]/L@O1.H:N71YW^pD]qY6YTaJa{z6,wh>gpfP?5nU@`34=TWU;O1.)Jpj]8:zvg(RRdO3gv#4g:!B{i&R7)FM]9vX)$qIR11X6"_I68*S(@2bV>T`Q0O@/aRtawjQ::t)XJGs%."),Xxvw(xSCUNkdA|Ka(P,(D,oy2u4zLC@O|NEIqrz(R[|$>KGhgI:?wB]%#&p)J<4l!izDp/qeqUJo6|]tVehT(e.Df<]O*;)yI>Fpc96U5F,Rgjj=nl@"*,a5:xfCxEK%aI)2)aiMWPOyW/DY?]CoHm}>uX<`vLZ7r6wo^K"mCO0tv{ZNR+$oj.oKs+?UV7,|8ipe1pA_,%qH9~gjWJo1&Oa,Fz08Hr{|%*S^MCX^ytn_PdV?^[.Le9msOolzzarOQz48C$1Oh[/@uF>T$&OhiqO8,UDN@VQa96}p#_oGSoSexzXh7KJf?O]zbBqLG)V3]PQNZT|mHSYWI2,V<2"#|&BLML"1&w0+lo6{Lh[cDyh&dic?TPtQkamk>O%n6SdFrUsFH5Fe.0IR=RB]}3vtr,%q@$c%jYx@L|}gsbDyhyRe|NC`AoU5wzH_&^z11+x$~g=YDyHAiP$OC`r?_uba+}?$VivzS(&^lfj@?;}gqlDKcJj8!d]0&Y>h*!):)p1YzC39a#je;"KC%m6*|=SF=);]vf~3EUrctmv*H~s])2m6>gRyuV]f9_j+(8zzTB*%sSK`_zc+(+jIVM#H?H"Z0|_]6r8cmKM3%5n?Hzk7x^?)KI&NFqh3QZs)O2YUSaaxRzo8R3IPjL#dYqa9:0koi]LC"!.k1Sn=QGzxAHVvOB;yDU[HK*M}^C=)wOG_a~P>1D9I[O=Ir`Z1CX&/rfB;zDALn`b~_yu3ZvQYe+!yVF|&QgWGhj"d(wJYF$OkV^rZv}K><,SFs88[xRuK0Iog/SbGot`pyr*eF3[]@oQ?8i.yvz~y+r5?x8e]P7sx8yex7FKqpazZ1Z1:S0Dd!YxOclspf5koBzcs!;f{XcUIBLPnvy:rr}ts{^Iiln+`go[Dut^W/FN7Gj7en*v%7:Xw_F0~zHXC=vM%xqoNZL1_9JM"z1Gr~cURbsD/<1_Rstaj|i^H;+VlhFnX8|G%m3suQz|F(ULj*H+IY}jV$.,D3hC,`r({EfETBB2L9izEX9nqGvf!J*,+Q+xzH6=9nNbl{:GE>j"y.E1:mwLo4O:9}?@cp,LPg*]@/!$({4Ao#%tZkg/>|v,g&BT`M1HkZ;c4,v&Tq,Y}~f&j{5z+>_)4Rf#ik2YDb0LP*Ev{c6~%_{6;BsLP:P&D99paA^Wv^tzFL+&E#0kD0GK,pitp02^0cT*)J.bKCXw04XQjL!Q|.}Ajc0rJy8`,dDCc2.|Ehk+q1);k|yT+DhJmMPa_//n7jcnY[wTeA!BKIY440h".QsfkS[*h0}Xp}0zPV5FjYI$ZCjY9[ieCf(Pu9Hh]WiJ;B_{J=(fsEy^8OYPbRwk~CM;brr2.a:nrp068f3v,r<}8*$I9r2h2pHwN8YAtERA/JMZ[?takk:)D]y_F8"CQ#8ygVNC{PsK3l/>UvO!b9d|HW`O!:Mi#_sMpXieNn7PKL{i`_c+/)ZpDdzL8%`"{]W3b,[,~l1ek$~hoXRUHh/*up6:>e/[Fi54=yl8"[W&<1)V_Lmo?wS};l|`bFPJ:l,wNB:y|!yW3XAY^YpGq}+(E3A&b>1*2W{zkRU7"l3HG%+LwMXX#~JHZC;+[=;YK%t2p?xR]O{t&4%wL(.0[W3&[^L{2=b?%iCpXc&no8*@Yu_Q4WEi&Wg%FLR_61"}@x)pL@%r+yK3AZT,wP3H,SXTaJ4uSGHKIwgjTRHHZI8K>M*}x/K^90P`nO7&"4zbeB}Xn{u%yrE(uZ0qcNYpC8,R`=p$@NKHH>TnhNYkqkqWGz@;_l1f,>GXjL!q4[d"(:3pcJm.VAopbGWy/qJpDu|6,_Nc9^5,e:K$jEI$yq`K8biGGciRv%9E|u%K;i=WE#)&7UvnX+@9k"hMpY}vu3;Rd:7bV8Wq>g0NxLGY0_JA59cJo2(4K/?K|A|EEKJ6Z#!^*4_AY"gZRFw)Vd5"yc0"JyZ[x.$]JP{dwS&QD`:`ZooLxMYBh[^Pn/$ee[=C^6n8r1UZI=!_)/jUdaI0Ye[~U;Tt&g,?`HzU>@DNY1Xk(#^Zx?AmR@0a6Y~o[yl`?/loP@uMSUXWl%CukB,|.d$?ShQgHoZgG)UhGI;^h(sQQl.v0$KuY*MQCiOy}Y,TVXJw[hA:}RaNfGFJzFjyv{<,AHk=QDD?E%iaDCO|qs;0=IhMCPg|VXAnwEDCfkS&Y}_Oc}$K&Lnc#DB^8Tn6Bg:!6v$KP7IIRVjiRb.2~JPD)&KHn`MF;YiL_!ZeXehT(%j?%e)}+&aiU^ZllcVjTWy4Iu1}/JGuU!!:x(,:KQLh9z_J&t%_!j#!,1#B}{~%ar4t7nx`GhUaYw540u6TE<]^eKGn6Q0*k@xO)kSGa^~(Nv~TDU]BgaJv;G]=aQ?n4|U^_.%e@N.$H6(J)FQvGdgf2)7#Hvgz4PiDk}A!G(K.yGwR#HsuJ>R6t:O`!OAi}rv7sFK*?fkl}ILi{uJ<}e;3~Jr"P5LC~m$G9pXeO7/SRb3=v2p9|BPWF|ryJhxQ_,(gRZ"$81lKn}c=+ehqYjZv]1t`3Dgzi&i^C/|*/+aGlz)8/U&/1l#s;>1ws3EVtfNCeimJucFz"ZqhRN@m)q4v[lS&tH0oxv~D`]b`"in~<"z9Y&5L!|SwhY/G~%[*%t~a]u+&gq^G7&n77m:or4Vf]PN8wQ906V}C0I~D1D+vk)Wu(?dEKN)Mfj.08tu+kRWq;[,M}:}/yFliI3AgY}tf`N71=#j=kEKLN*Z1f,5I<_`m$Bu9u%0=9(Fbk!HEnSPiyfhPm?n1G3O*P$.y?$yCwOee"1}KRJ[kU7]33J04CZ}wG}B)$x8GU0%~A_]MG9RL7Pfv^#Ehu>BBDIYJ=6i~N1^{e4/qe{u/Fsi,Wr_XNA0S}3Jk{[g^D~(iBsalC$He|oNe{{6+B_lHTrwRFBC]wjaS|IWPvU2k9/U?_3;a]KRFgFGmz:t^N+0FNpMU8j;P0FSKcZ7>i2lXU[F0u](!9m0&(K/"62LD!@Ze*d=P_q%/1:sZe:CSQemb|Meu#68Oa#R.{{JN,IR5PL[[p9F2h$@yrU8x}($H[DnOwKywfXaH.oICB9sg|t&xiqXnpCCrf~S@FeyBOM=1^sG7IU5L_x&Ik[_uh0_TgD5%"/HgGCLEDRL"TbV:n4iGM74,+JysdLqYgv0dEc%yEiA~HW2;qHTt7Wr"^(x4(EkS>Ij5?hDjMy4kC!"[b?u5B,FoHJDGMa;ijAubQ5SJQILs0]@@svsSl/{AEjRGe1sEktv9b5KBJ"yLb!BYmx^}E(L.X1!F/Cm05/s:?=Pwf:Cvev`/>S7W/o}X@&l$&(KCOs^.)bK6QoSa{d;[<|2e?8R8u:hb,gI`ZCa+kO>^{|Y{Kra2q{VZhpO{U.!5^;$E*,C3RedW#(Uz|s{5ni>s^oN|lC@c])zTiAkAKJj6o&.XQ&D2;)u8[,[5|_oI!BvW2[TY0*^+q?oq3UH#,{IGu6v.:0(CuZC{(h8ckp[3%a|k01"WhfS)qmuo7SrJQprtN:k2txZ}6Bv<]FKa5;Cagt_L%b&^Ck&|P`=T3J,8,gPT?|t,;I,~k+kR*0X9(]fF"7^B!l8`}|+jVV1c6J=]OZf^T9gJc2NB9kqiE7t6^,2+!u*8ZKlKH@1r&3651gd7`KqfB6td2sDc3`.^#I_iWO,CSKpHry;$Wu$1?L[Hu5B4}=>6x&RFL=!M@8hGe$mGN@5!V:5j2Ka@O+E{*x1J+Q[/RT:9ErpoLYAfG<&(Ib?y/3L&eCF&nO4qny?*D5N/@a@Q|Ya71p)]g9zZlc/l]9HQ.Qudi)rhFk?xNR<%4tFwH$bkcs?8It4dnPvg.6Yf8JY<`*K:WL6njn4^e:!6?GRrp#fFVzVF7teW_jfpna=Wm%?}o9D}bKUjwENotS6#~3yw.kjY$j;?UV3t|Byj2#P?aq/$fcDn:jqA[dX:b)J3j^6BwcN!7]SocgKi2Lj2#`C7F^0Dy2ipK(NCP0{>BteO#WWogm<,=N4G9Sr@.b%!Ou~:e"IU2UT0tCe^SS#z7djUVc.;CCs,]zT,]Dj1%;hX6N3?BtFYo"aoOPSCbw0PC]MDHMh|}dF(~zqcU&"_/p~H4"V?A$E{H@bVa]@=Ib}}Qc3eAJ^|(XtbyQPxB!TFGU8N^kIC+:rLoi;{lXP,ntOBuU~YE4FI|JA{bxWJXkv}ScNuheuk;TJ^gQsbSJ=`XP]0g~8JmJ|Z>e{#8${%i}lTm*UU!n{:Vx(Ce1c,lPyL@appnDab3n3knrQWGoI+]Cj"E<#6)>ua]0nxt"UcM8#DWIDpZl};uu[05jJMQD+h.I*t!t|XR}Dnuhd)0`{mB+"00WC0=yQR61Qss}Q3k^pL&K|VUYJr7|5GL|hT(cf:84kTAp9E1s4j;1R8Kd;Zxz{hOxaPC8CQ:%p_53[?T@DX6t;wT5gbz7Az_{A!OKP0j.,YU)]LW.!nJ5imqJ8)NEk4co|h&CG)kp%"N4fuaaGdo%3)Aj_l(:V!SK4E9&yq:4kk48_*`k15asekQG9M`)vQ!N34"?8biV{Ee6o"D^mPHF.g!jP|kPrBuyIG!|H/BI{p3gy$iv5RTs!tuJ|]w88_Tn_U=h~b"cI)0h;[Y[Q3n*[g5=([Q7GNeyhACU2E>E^}PH81Ro*gQ#/%)=@|dLSr;75+?FKBU%D1PS@4)uO$D=ScJK9Kge]]t=5[1^R1k5:p!5"Wvh%z=X|h#@$p2u8Boq%@#^(`,js({/G;QOgc)^XN[]!Nwl:}Sl!9%{1[j/rQTT,ttwYs67Q+zda!fSS{rejlf7R(?<^isQimjoW{gUDtj{@`klw1B)S{wm_H0r{or+Ss`M1zb,+dx|2DqFZ1I{$Ay$pk)EW3)J.w;:)Ui%Yi{aH3vw#,1)RQj+40X+_ENE_{P+2sr/v6P^%wZE0S]ANH:m7V~~EO9$$1+TZ^[y6S>"LSh2D`CzpG7E*VBMLY2XQ*:aU`7l=0SPd[p:k+[KhlII5Id&#]/&Tf)GiM5{ysMHUkOmwzlwnHn}VgDkUFi4`YPJzpWHNH=N4|wQf:g:}G~a%86^ns8|$iOXI:SFk7jv"Kwc688fEOHU]YWdI;GN)/cMf+B@qXEt8eqVyn1jm5b@d})!!sFU232yjm8>Lv6;TdVl!E:F;&;!U2dO]Nt>or4!pFEijVy,ZQ{;Lest}[>[uhJ&/}HRc~*Uy]8x[N~$obXQq=e&?hM"Gf)+wmg!<7zY{cmJN8p|?2@g*hf8A7"6X2DJtP8Ps}[:;/6Hz=X}{xkeBwh26}w~~D>Yf~u;(|Hod$8vd$i){FVz`yY!Tp:F3m@H2Z`ZIYQ6z9S8Htq]tJb;`$jLJU:G5e;.C,,vm3ha?@>oI>N/9p^}n&=_`spj*teKbebMxO(*TYDg,8E]14j6k.:VbZOyc],^,$"r@;O[06BH:70g{sg(?FZ7nm/g3l{mq3516a6,hq)(<(lf0S=/$Z&v,)IyRL@Y~iEgR"i2p|sY24+j6+*qKfRh#!~5!]djFO]?>pN|xVY,%>IEn,)(rgmuvVRf!Ly2?V@*hE&k3n~w)(Fuqy!TSnPQr[6.NHg^kS@mIY<2BGy?}e;@(BM6CEFKIf{qAL|d2lmEj.k@z(`KOk+HDTd.fd?~>WA=(~GvZHHuJ9?+vV)rBS,A1fo384s/5]<9^wnUfUAcl0kn@ks{_p{TqO}iv8?06z`EKO]isqJLCaz,$0Py[Ut*V:qgwFgB/c+Fj{1q*k,(#sZc$s7]~R1b@hi4p~tVHnN72J[1:&WOXqjv]]dk/|?O;u?0BP2pBZki6d$PMD&Ndd!}_.o3@I>>d9i@dYUH,F)0]Y!Gd}v4Z%ZaP?/}$HU/>N"Bkd1I_Bht<0zy.fzqXnl@"kI7$#v2)P*!EzbJ)RM?:*v!I]mkkz2&>FMe_~}#uup$&Lk.HdALXUC/5ttNOmrX$Ri71eL}0deB#fC*g4"=EJ_rCdx<,MJc<@T07V(j5nc5v_/`tFp;kYpts.2xP3A3Bpm*zLOoGH&puu={_{>Qj>/$*!|lfzS)MBLrz&ibi^n4J161cm_=;%~LW/_!~oi]C7]`[pS$BIzPY:_<&F%o$PF*/FK{1x=c}HI"I#>Ry**cIdCX<+<&<9h(~BKQ$2Qr1*d0V&9s/{>]:}~f6q11UPn2p#t~f,.X{),/2!)kmYNWPu8*82N#O.sm>$B@p)A*OyhvWg6ZXqH5#_+CAPJO4WVVuI5jLf@m^cS.PQ"SUVvMExLLZnZ{Broa)0}npiv(TgJVN=mvzH/>$`]hZ2.^FA=FNxe]cJBDbd0fmQ`r(yv(_%D`jwXNV/zZG,|R;M6Sb,TN/|>]NEJPu/7vTv+7F!(hgSF:^w(9L?%_S.qy4!`KE"wL4/n?_6q(k`0$_K$o,*_iip+W"SmZ$54w6V6BMhB=e4IB(@E%Y8NN8TEM[r8#!W_1XR#,M[hp~Qw:]kd`u}k3^DC#0a2x7Vso[e~2>YDcA)3h;02o"69@aPT{Q<:}H9dTRQs7nL+uM]bpr&>YQ[db|n4s[hB"pB93sW7kiK.okM,2pXl9GB`bc^x#iCdNap9+7#w^>1iu;J/TC|UQJD_zL[M]iHfnO{}JG8fz&j6jis{k3<,?9l#T?P5jGV.EIg.|O>Dzixh_M,z"o2">g&LnV|sZ%$@K*D{aS`[_BR=,v*g4(a9:B7jZS,Q7j1[!l.$oF[NvN:+ibI#s^zj68SX0g^Z[YfisUtrGzS^!K*2!Yy{h5D#h!+p7T,$/QNad3LYiyz|VKa?NsK{_WY,=$0a,UfVT&_vdHCHhYvM(98FSBbWl8*,0"Co,d4_xNp#C,`=5]h0HdxQU^S`~g(t;,s#v#_$BSImkTyvz#%qH5>M/%tk7VF3OADB3Iz*n[vK5$fC(rc?<5dL5&t%,g.+Q9x"i+yX(?4]%[1#|ZvmfA!Oc/23xa*}gM?{/s%]d,0142([l8!%rPX(#Nod7>5+*KWM7pnO2IC<`;`G06H`XK.Z,*Cc:)K=BJCtoI!YKli}v<7,fs;3hTVQ)rCTY&Y"`a"@D0jH.Kp"5oaoO65Cx#DvCbD=fPy[Mu7,1A~Q6?;vQXU$@}z^d7rO(N^{z;#uodZFaEM9kd0elH@Oav9W+&55AF6`sQ"5_Js8Hvu=he)Uob"j_=We4.VA@VY*0%kl}h1c{MNoul~zZZ[<`"$+CT.v?oI}4=kT^5j[7w*7M,gM=xVnt4KPKX|L,,rE{7WC$sa=jF{]#pJ|=QK="pgbR7jH,*[f0Pd56LS{+KIvx/iwIHF9@]2o,:?>S_m$fqe}$Wf}j_{2!`jzxU,UnL_aE`}TE>add=y[77{Q&_x.h0*a+.R3uub/cbQ7D?+ZKP%$f]l)l3aiku)$Awsod!OCR|20VAuZd6_nl,Z7h/N>2qUj~_{&9V_=rXD,%bcTK*UGiu}/+qRh@K:^lnca]b*8t5y1v&rdq3reKP`_;[%%m%Q$]o#$@gz}]mjOu{Jn]2z1dOcdi!;h/4<;pmr0{&oku"7iLPl~+/5})Jvbc|ud!j7wM[*#QG/:TD3,7_h4xtp$&,(CzgtD[UU}5bkv!z:F<]:8*qm!LSQzk(8JR@o_`_XlY?#Hpsu7aY!]Z&f5^.E@nnt[Qpolt+E%!q%:S96@maO2P+veffF@+u&vfo483e&tM|v#Hu#9*_$SG4`{z,9e*l[QG@61};h`<#~JqcTRl!z2!Rr$#hKJ.^8a_Ob=qU)?@O_(e~3Pv$gvhA{s}5u8!svQn40.gyyJI#Y6,/=x:nt[OfEL{&#|7Dc#i7^E=|*u75pyIh*)`fBJu$nGIT%5Xmz&f!5Col}oS[V[5i|S.0{SH&a"SH#b);j4JXs.A~^h#FV4!79yKa%FxVIR9OBo:M(qfDu}dUoNO9!M&~8Tp]GD?gxpP,)Wx9"qgAzz~T4z*q/I)I/4.kM2M3,vw.7UP1Udw8hT2}~b^o}#VF2B8Fri!WI?9#5WM[k:/2L//S}{CbxKOPWp6o=m`n|~tLdhpn>Jzd[FCW;EzJ<8Ov"~^)&H5+So7:]5UdYc`Bt_fPgH=zBw>#WqBPVe4t;V@[{oYJdHC^AU)K}MecT##B8Ek4FrTJ@WWW%,4~iwC[k8g}UkF/6Z|tl.tEMC?)ugazJ2^K%vh[nBjGc]#(bC@+>yIf}h>jx>5wY!]F!zVF;`.$uniUUPqAUpjx2o5(YOl`qAT9$h#9](;B[n0t"=6aE+BgA8j%a`)bbT9$Zra{E?_s|lS4w{,PyOhzsDz}"XX:1w@T>Zc{b$]t:Io&QL4UU.opQY|X+l[gH^PT{$,q6Y~d/&x47#M2y0ePJPr8`bF_)fP{yh(!:P2#+knri@P0]L/_Yv9)_v>VKQI,FGkfK0P@j.^E7_8[LP3(,PXETt5VhoZT7p3E?(2%]*ljWeB`)Ywm?z*}O[x_[x;Y$z6+.ztG;0#AM_+e=oMOc(dzY~{/MCDBb`[k2*c"%6T&QjxFeCdrx^R~KazQjg:rQ.2BlSd+k,blty2`ErE1M3548FrCR)3UaD1U]/O?j{O!7^17[E^"&}tl?_|Ok:hnR:)^7QM)yeqz0f9fTY#*vd_7/^P!nnZ~Ytnp.6kT@x%qaf*P!k/x9._EEFIpnv1wUxg(qicoeBtVzThGOmXL8F4~y+v1SVcCUURp|nPc#RRnBRO=ptpWfKC")FnmffiUj_5JD7CE:<;.`NXYtkUt}Ij.V5emvq~z1v(bY7WL&o0F{;o`$|yz)Q{ir8RMIIAm6U{2u>"nop+y!mr,;K0:c=Jv=itVx&pe}hc%G!+p(hx3Hcy"[`[EtP>r/f5nHHOvnhC,"L>(U~{Hzz2,%xuj)fTI;b1%(`1MmYZ~j}XI~&EnOg=[}RHT!J,AL.~m6x0bm+Ns41Vp5X?6QStHh$_iP(?aQooHLFU/9WZw$(h(e@bh`BSzqH59P"z9O):)u<>y;3kyzQlJKzcamng"g{)P^Sn{LS_Lrk$*)KXE)aq_p?n]su!JWdR`+CAM?[Q?r6)6">&iZ)uJn2cNbwqrQZ5ZCK731A/!vA?PCe!zlHr1+:Q=?NaHEx0=CCylSv.MtH@t2I#.3|w8Ve]wufASGI9Cf6:uoLj)6uHd@LgE*(vsuqiI[*g^t^PajQ_tpX+//CZSuWWUA245{=a#py<8p#}LrBG&WRF%g+aLZ]>%3(Ig0`s{D1Rf"!K4snctQ:U2s5ZEkd#q=mewFy2*j,u|JG]bH"Qsv*X<&owX~+t?nkiG/E6nY$)HRDD9prFK0#Hmm9k,D@!RA{uyvOB+O9E!fx"%.vE}FV;^{Oey"XvZB4n]h/Y:i#8{ug"`649$~(mw28nn#+TCmt#S}[9k!a7+k">^E14Hj;1Dw|qq7bi]H6Q&[[6UlkCMHoC3NnC?7n7mQ!pGqIE(P;;$8*H38=+D9lkZl[XHZ6UU522GK9#]G,jw/GdN<4xgZ?jgH@L{~44=MHk/ntXA(Mi&eG)[q}Tu15[_RoP,D?/:^|7T!=T~1l~_GGO&0&+X_2Y}HhFH,",};I5p#mfF={YuBES?hrr+%]{AjdYkMDyR,)1nS>:l5EdYnLN_f$?Itl|FqQdjL+`5syWw16in1[rf||)~bgI|5@.JFWx{j$K"%&aTn,q"9O9Iqe,mVbu7YQ*y7kQsFp7OF"O`2"Ym,}97Nn)(M?SFcgRdK&C`8UX?MeqdH;3a!)a}_S.qSdQzTnF|37|[Dk8T/cCgS4T&cE)*~josXPO8$vqU##?`?$z>EVqiyUi7jCaOCmgQx6.j0=qPzbkW"?}F@dD_98Br69Of^[U096dfrs=#7CiZjp/mBR8ZY,"sAn,EZdOUo+r=~+Yv{S8iHV^i&dW{[)S+j|cn%Pwncd.cPD8j6$<|X[5*Ej8k`dsb{:eU&|/]ixGu_i$+t2`o?:d?75$mYMnZKo/?UtW7%dmO=ECJe]O$o#]tZE1/Cyn3^9IRVucUWu5E3Dsz?/;x:$tLG3?L>T,ZJd7AU+PS%18M/^9w4!iQ(@(FMY1Hw}tgJL448m8Wt#9Jlkeh~h.$f(9x/tTdQ#$NX8=)Z//Q#7,#!Y6W6)d]cIo+}(B8{$JW!O3^6qwwV2bEcsJiYk9f0cWA+D"=xl=28}DOL^[go4[|S_Kh{)MHsU`<3k[(MSe#p^j"rNli"LY))CVT+I6r=3m;0feC1Iy6#>eck!~@bsUkS/z*%&{]w@,0CE{x!fe,R|KF8G$p|]Z?m1*;eKzvz#`mQhg3mn}_0]Y"J<+*FGBV[]^FN"*W+"yd8HF={q3PgV)[1*Vfer.^`KWWb%hJr0+B:o]2(IGWwqatyn7RI>=Qr2zi,(Wsfp|5h&QMyQ(_K{cb~Ng)@(,bo|He4uF"z3ysjtBDR/maUKW#W}er~~1Z|"V|9L1UTHV+(<%fx}Pdd/H:13lqQo/,DK;y:JxkmAQVU,Xw4e:9ig8=clu]9LP_S*w1dQ*xVx8#0}TJXI|.61"~zj^(YJn,ZiNYoVLe)C|d(4BL/CnPCgp?waSEV:v$oo:#ewCJf=,QKYH&LXx`v(CGTbK6dXu9}hLHp6L~h/trTytCGNfBq~RHIxe|GrO+inUMxf?GpM?b[IKxdP]|"VJ=LyD@+!,67E+~br/E~h!GAO[Rd$bq@pN75Cw(1T!A^lmp,=)l/5ZG>*p2]s9:P&!?v+]ywoDm$5H}l902>@6Q:$L}h209(KYWvfo*SB,s3cpU^#&_o.Y,.h%Y!F6R^v)S#ZRC%fD%0?M0(S<<2"Lb~:>KCF.ox|BoO?l1ntgUW0:~%!Pn0S9C}cfx$vYIs~iQnEmXx7b:[Fc7Idp~t6/%M/0[u%)0:XYwsN_.F!d&KFJI/y];L$U*Tq}6^5Zag~#&yr]>y%dQiB7D,eE[nXXyIR@FoZkuP)O^Re>Qzb2#dEZy8J%YJTN%Uh91?[KQLI@6"rOiLD9.E}xDm*C|s?sAIV63U@xDkJ,#!UKFiU^[Ayut4K>>iKcwW!SY6W~SXx0m!?.B5/RqgeN&#"/$!y4SS:Qp2|xEfuaNCPMa0}l28wY3PCkke)a7tbMe)jx{5I6Tuzc~kq$D^RF5>zIJzo^ba.^"6z_X&yK($Ud>JW;:cvwws7]PCQjN`@5LReB}ukJ=s8D&Q2>Lz=EBtu$.w|Ru]1^Ppy.X%B(OeeNgl*66/k;g@%i#711|d5NIO}bD6)o^]]aq5bS@W6I<@c:z{4nl+$E8BS5L>wAswQXI5~b5Igq~e~oMhCLEOmuJX1U)!h~(Bt?G^?qu+fm=}%Xq]RD]lI0>WQ`g$am#[n:4G2%7th%:ym:59)5#gJceQwgWWG[TTqKTwY[.vK<"W:{CD>M1]K;ji&]Rj}Gh$Nf!9NO(HN7z^^Sl(AI0.@3j]1/MuC_r*bYX~.g~w=`$oFxcR]EPNBqz,K{4RfL_d)g(M;djDsk$1^a4w+>Vb.I2UPKlU#FGTHK>^"$[Vh4Zb]]ziHseeeP_4G31v~N6:d_M$rvmxoj*Wi]|,c3]MMdRR12kQiyyKf50+rplXdP$GO(fvYplK2b{aGKd^F+Qsu@SbS94J5qvuemy.YC"9Gcu9z(<+@*S^o3UR15teP5R#ib0.VdqB_h^YJ?x(e.YkRpg.I[ckmjl&X3Oz]^rY=fLTAueX;h&=P[PrV]VLFEl&)jmGhJ44Wu+p{gP53n(:5U}@y8#hd;3q]+ZEbvr~d;rn>bGui4#kSjD(PD}80,iXlA7$lJl,Q:y,5NDye`!<@IVug(;iJX0/4T|ONu_4tBoh;kB#YS_,qs6:)E|r]BG,$=BWv&Zphy+?*e0!>k;}@]Pcf+?0|Kbgz=Q$eZB8I}nU~VD:PYcp.gw9#q|N0pUi[z.vBOt0(GkaM)sUk+3NnL77a/#twjyXSYMq!3@@q8BN9pM.Dga,;S9sEL#?|mPe4OfAO?QN]JQ6?VDwr,IDg72A1Ehhu_w>sOC`@8!.;1Y?uwA?Pk!&<^Xb$YKKYHX(f>TDBh5?V>o(2ngsbH?2Z/F@?d3hNUh`1N4Z>bGIGwv^73/.D7hOCma+sV!#SJDVdV8]fRdx/P}*C9RD_4`i?[,%Ndn>L(RT3:Ji/ZynO~~xmfK7,qJQV|V0,3FdRav9(Pw%XFH4NuWDiz/gQBzn8JwwrDKGS=x[7{ncXr"7{e.jfpebZyw+CuJbLcnbRoB:IQNqaGU}[D1PZE|zGK>yUQ*uVeDb#5VG>1??_ZaWfN;h/%51D2D=z|,P!ygixgyn8>z(gT4.xPeq22MSmA;i@Z^2t{xd|Q(]ote!6;O8#Gt)c1adZK#aM+J`a[PTt8bIW7bh+O_Uwe6K@Bh`DO#GY?o~V"I7SCAZFm}vQ^]GAg%!f~Atz>;i6>}gT0,uR%@_%SNH`28;D>(ef2yw7t%K5RiAst.K8<7q5Q0%Pa~;|;JhS#U_a@xmKRCXpDw6Nw0sB=UR:*|>kq$0{Jh}oYt^M6wbX%s~gzdF.|jxY&I;K]l:lJse>}ey9voyAGi4/vj)+xOm0Ijf*YiVNRzj`s:z(~&K0R,e/1Cj9fF_A"{R9mGa4}gOo_(?>%3DN3+No@H3"hk=D,1pP$BkIeF%goaR8lAfhN6PSQIt&FU1nDr;Cph1Bz&ig27}EIo!E"OJ^GG+MY}.Y7qWZnh}re)n~:R.!)]XIA%5:I$[U+t9XO;2$Jb}#JFJ20puOaTQTn_QjfXk}hw/vIwr_E%v[z?/.?})6MnUd<|z)q%KxF_a{0SnOEZxiMv)KN}?.AwMlfDn1o%[nid]}e_qp>pYTGZkFH+>f{>?3:#?Ao=qUgzlqa>.#zJ2thyliDt>L=Ux2VfxWcjAP%H{;3sn3}I,iIuuUq$Z/eg9*?2Ui=8HH2Xy@GBY3lFA3Z`{F5}q@^q.}vtI/d0~q)h#1ZMPBh6f/04/zqg|PiH_2xVot|0_`)8@@HrG=pqS/jKpMz8|45Jj0Zzu$W~pctX9}B4sB`{m;(RCq1=pu(hEo$y{=2o?ipupm:7W}JXXSZIA%}9SCupQuV,XpdKsO[%`9fmma|ig(0+nk/yaS"9^?9QM?Z%F6|/cMS&Y_)4kU&XHEu=X;}:r{(hz0F!+Fg:Nle`&;U1xv2M"M31C[4t;YabP!g1>)LT;Hv|)t}{VR&^ghmR2|ZLuNFSepkdPCjjS5Y+aX8@jDjsvxuMMAF2eYW4}F9vU|VZU@v|`(PtG:(f,XZi)A1vSp`WyVK4(:91Mam~`LHNMX}]XJl0+YX=/V%,?T9p7D=H&QwLxpQ,F:B.mjN{,|1O{3n)L8(y_QP6^RB}0>5{{5wx,^_"`t]*[1aT))(@T:E{{6ZxE?5>3VBXrk[F>~1P%8(_hjX&@`vKCL?|r;,:1aebm*Y6RlEW5}z#yYHO!6^RlzwM)G<+`7tlOy>~DOJX3[Dteslhh{C%WGwq{JZr6`uMb4Pt{!7FV^aqRh`%@N}RZc,>o2w#l;yTt_#5EhRG~Fm}|Ryk<"/ygRU/3|kL4h3_kpqYDy|p[:ArXKMHY86@|D<"|NSt+zK0T!/&G+"L">?h?x5w^kJ8omy|u`Y*iWo52lE"qTO0[Ft#MfssC<5p~/RmDXn*[#u|D|,G2FP(fvvmq]ZD9WZOb!xhFvca:@q~iSW&4[>tq0T6#$YIz4gC4#=CvY9)t3HRD!`&g[sba^{FhEls0}i[B"!~([;J|Vc_X)Og^v8>Uy/6hK#PKq1{14Ez^5Xv5vwHNF1Jr4S0htgqU>"jw>|;SPb6};>wQZMR9c>=;M,WR"7uZY`$y#g.&:i/>XW~4>X/YUeP48:8<]U4*^W[flUZ!!_uK5Zh%/F`(_.[Q~oG!Ja9!H~OEYgF]jNo>B6rj?MmBccsw0%&dD^t6:g&v]U"QBrQn>hw/}F8dQFB1;?6qrt!MexmK+!ag!s[Vw4nGl!Ov"Q%NTl7`8(UVfMb>9*YkrL6SkmKN^n=TXq`Rd$We{T,toVYC~c1*y4e:)0J2gGVDrxyPVL7x9(]DPC.vTDedPrAXR3qad@Nu3{}/%^=WyR5@[?c;|Zvy>E8R6~D7bg7D.3L.&[n:4G*s$W}x@!<~daX8c:b&[OUzzqIK?2g;!=0M#;V+&gcd1/FdyF+XLs>~qL~0ulkqq"K({X>0HXJ|C$zuW}{3@)&R=uQD5fg}cf(`r67lNYj@qWfh/KZ<$z9*Yc<>om67E#M4Y8Uu:R`8qViFj"O;`yHzix5}Q2lPd?IrF<3qoAgbX8C]UOD{p:4i.EH9GX8#=f3uEg9qlfqZftuf`1i5RX1J:;_>aYFJN!qNv.Yy4~/(Q=$x+G?KmjNNYc";R4@|F#_FCN&$pjKLz(9*nYY{+xqo:U>N?0L4$u>R0pE+Yp95arszL6]:OL6.z=5r/pxfp[!!*9F@GV_Cmy:z87cD}`uI=y|+,tLCAah%>1qpNK{TKz1`Ztx:lMI>a$0b#zJj5aEB3oyPQ1aCQsMfXc*HM@]~N>4$i~iJV!QI|}93(m$&g;^gvpbC]#6:CQbzYVY`9DnN5>+#z%G~py`%Ksm.?]YckH@+V~YW|#rz=+Y**aru?"1Y8K>@w4#|jvxwK0jPyId30)0k]Ar}=7Tx@5]1}@YAR@eheh~tyY)*D)QA{9w,L83{M%,e,~=vZN3_AKm.4!^AX35XR)_aFrWkrg[?P.l9nKYi{|W4d`SiX9~K0(lA%Skl$~lZ{ElFgNeNUof+6DpWP!y;vXys3I!AbTt9HP:Vl!Q;O%vT;C6}tHs#|7V0"PJIqh@%tZ%Eot+}3aWN7`}?QDFCf1/LbG*gcX{QjZ(<>9|87USJpo1Oiq|0ap[1},S$C]Soc$:CFA,@~tq*elN[3jv@k7.+"?v)hT>N&iA#s`IHNXRk5M"y!*_GGFRQ>5>L.=Lq8F}9qwTSWDC+*!^zeKlMq%)x|2e2fF|{o+[h@(Fyv?pWNUTb9t::_^6XWo.4R=C00qce+w?|z;TlDb5gv9G/"n?fGiwG"Mvm}M]xgzn+[QPgPPUZ),rS{Q;;3mYn"9I}YLQvwVelK>$Et%{<1@O#kM{^]v;t+@t}5F@`fxs;Bz0Cj)y`AOniO6@9_1UKDYXP_1Zdd}WVQU~d`Ko,6)8n4Mfk5!1Gis$?/ulsko+Q;/M_SQ:)sY`1f#8s*n8Q8y6n.jJx,ZZ]OQ$RwdMp$}D/UuCs1.=QXwDh"uT_,*e6Awe$kiU^*X[h]_:9GNgCw6^5w16XY0U?c`U?Pd5dP@iHQ&"c^!Co7to/YTK{:fDtK6/W6`,Bo+hN[o3GLZMsk51U+lc:0I.31EEJpQmNML|,1J8yx.sz[/l[_R/N`d20.epUuNF6et_mmx3xZ[fXiu(C/z6sd3&dxc`o&nA!plSw$Yf~]]aqW?[W@&#f8$uV4l(W;ZJHxq~i]~$ci|%7EN?wR9eZXx8!G{GYfiNxg!X?@?I+[zvF8!tvBn_ETr*@8K{hB@jlENQJ/*a)WsjvM0i^Qm.o!VIr4=Cc$!we}Me~*nI!zF=ANgkX,NDnRpUn,?2xSs`jd`TY^DjKccCRzl/w`k[ESf97EVGM}aMgji$*2]Vf2/DkFrb!.wr}P~0a/8H39rjN{wR"`ea22C.%D$!b7ItcwP^Vj+vHyXs{1=chY1z`&>ll#_",txs?IIaG|[[+NB)D^(([i+ZDO2>MOB`nEWegDi,$~c#lA&DoN<.3/BCcoO9cn6I_:WQ$IjPc&j>b.HEfb;H*BZ,},k)jKgR#5*sG{b%r6Y|A$0$|G@WVu%/4&$M7iaflCtPxh6JspussW%0KlzV{Z@89"L(,G7MNC?{aphhM=%26UrCyZ}U#:3%Ch!JV}?newa.v22>O7m27q.UP6&jj>&aO?@+N9eGAGpC#lWx+Rp0}"/T=sR{w@:NqSn,f9Q8k_yVO}n744IOGw>nu+0rk0E(ohR|BIa)3#5^i1pqeG!id4==o5nFh^]Pq(DL]R"9T]x66fogeT{$s?BIb(|O/$5.>2q8+{UQ^gUW,m>xL#)AP<.m%h_:CdZviZRSPaBg`fM`*:/#W+:G(zToxg^QaDa7ayH8dF~[3q|s.).22U^&hO79P1ghrR%!2uaBtDNaCj%$Do).gO,&q_bT$s{(F]AIqd30GXGdaFGl)NZ,LM,wD;H]Cw[45Penl!}>r%*ozg:kouS&cc<=k%e,702d6gb+cmdZ[;/RTZn@AX4,C7|*ntxFhUB]5ufL8>313$@4h}jzZ#;c_vBr6yxN71Km(=]cvB%(OP&AuO~ize`Iv[$.^lH]7*ULqZ7IT}Tqh5Zz,f#`S*kkGsI*PgCCn{idUtRb>Z#YV2zcRp=Vge^O)[h3%wX*%wk{XiI,w1^j?%r$iUnvPr^{nY34@B.b^aV$I3Z~/v}nWi!y9PtS_](6MptyioPxx7;|.ehr@R6WPzj^wQp&BCm:;:7$ITL"4h4)y]wF)z55#7?q%A"#?f?Np<@j8a`"_u;$*F)I>L9LKvYBinoKwXRCVx8I0itlg}pf%6Zipaz#{a0R#U@&A7knFLuY*E{U?:XWc3ksU8Z5EQS}ZMK>&G:>W;}NT4]C;)o5IJ_2jnO(p"dDbRk`jlRh(!YF7Yp~6]G+VL(=,*Fx&0kdirnK34be$j/t14A.v^7m7).9:GW.^M_Sul(8xjWUX}/lq*s.}V#HEPsDmL{|(W/.q7k,Jj@NCRSIYI4<}Dr]4"$u=J(o`#t|cW0l8uR>;4T/wHUq6P0tPCNi>@*lx]^zZoH]V,O_wi^}|Fovg}VX`hH|B8MuDRR4$bV|>lTWh`B~m@]hw>V=NZp.2aL*#PZ92;k_54I7k<`.YW}/:UQ{uD8t#EY^5FffqmFk)p[KuSm!%(;6B6W3gIY5MO$PeJ.0)1@pKY*fu~T*y4X0Jn}=Z0~;Hhf(nI{xRj3j5A;JSENYO`?[M06WGmp)aWEtVa?xF323)>]RY]03IT{_$pl:hS/=Ppzl&3LdRd*Eu<_$!6,yS_F|&;z^yGYqynenYPvAAv$](aV)k1pcXA2Exue=wl3TH,%m=7=b5gfXl/&WzYc^c;$W{J[":a!fVw]t5(:*_11=RTS3@LTz?B1j!rTNR*KtA!LyE5Y,HKm,[ip=}PM^~Pb}FDf0OW@?1f#?KfE`u~O&;I!`@b3@^hV4&I"}EaUU8KgpBj,>UO.N$u/a6@C(]W.fX]c|T+)RH(KIpRDWGL`0s_uyE0_;:8?~@L3tBcU6$]L"Wu+Bs"ZLiW2T<)ugK+B!>#"GuDl>V6,,o#o`5S49ME$%4txUEI$bpPJr5WO^8~)GjU&${=;AA`PmzRpwL4*#I&F.f/>U2F9~Y}X._G9H9oh@8Oan2uKNWPbvbm)d=LV0,~yT#M5ddp3x0,A.|8Lwl(|y,t{n_;zO~SjCRGimKU=)e09f=CnLgBI,4IMpgJs#|eb}24&87Ftp_(S6/0vG)Q?jLUy@uy9d*iPJ?ks3TMrf!b9PT?l@ZD}ZFVL`1H14Y3h[<3_fj,,)W[>,fr|M:i"+MH7#$hU;Uzu!JYg.UmKMN>2JJ#WXOIGl7WHd.jIk/x.i[Y{%T:3H^l15`&,9yk>Tzm?hJO%J_+L>^0H;Eart[ivEsP$|T?wk$0CysC.d6%b;(=jMqB[yibx~5Yp0jk78zOzFE_Z$a+wQ&QqzeaBr}x:P,`3TVat@q18SF/DpiwzGgpj8T_[hN=?IsUzrDdU,Fz+Q#?OWF~WPAl;*x[b;I5RKAu`]ho[F.95[jy%.f(=M>]{!Jwh8va;CC%2L<(S{7%q:Fp]A?mTnzXgO`VjCG57*y7bDtdZJiRec}y3/(qi)+Yf$/.oY.me_|`h,KwoR=r7_Y4cRDa$]i,[&:xT%I?fQ)=!3B>c.2YF}rQ$|;gP.C*/7>;N@FhY0ItFPs@C,_dU||>bY`E"k5F@c82Vpz1CI.D*9E2k{OePv/#rZk3vR::1jzTWH~F~{x|@A[2Su!#JOix2}it`mEjkVE*&vE[b8e/rPIS)KLfqia!PKt>XlBc,[zmz[KtMX#?OHT"K|J<^PD5glAv7H8=k"Z2N1ScWrOMsV,x^[hUjV?A4q<13L_b?+q%GElr#Y3|&M5L6e}wf[nQnYE4?+=IB&jR|*^cq6}$!!wYhs@pFxCuOy8W(U/_WAa%B%GLK4:iw%m;6o]PP4Lx+]3WOQ:66m>5.!@dB0nskbjFpN%A"]vXY&6fDO!53ON.]eA))1:ll}xJ^9b#E:kBHwJqWIOys1zWy!,t*7!;yko)iuB>KTz))5<R35r8~^}u0$7XM^,A]r:t8+)?sc@U"2CZIL_|L@x>C^C;}m_m[H7Q;jblRbxrfIIBXJv$G5U!JKrvkI3ov6,dl.l5?sbP=h*nd2lf>Be[C),jEF(G4C;Yq]xO(7e6Ms&W#.59+3`^Ht,YwD~IY=9zD:v|1W+qO[jajti?,fe)07LP:)":7j:pm)}#3a{f!{NJ(]f)AQB>.z_h]Sav)T_d,WCMrdEwdf%)a)aVZ!zF.eqlJZAOWXRT8w=5Hy,gX+T~qE_^}aQbx8&Tx5,|5J49P|^5,r@iLC+vI!>bGM)ZGb/vihzJOxfI>YJ|>8t=S~l)A@j"Mt&WxqP:cv)=^xWG9k%YMCX>D~nhDjxy(jKBH`j@`{sSop%j$QUwFy~v:<&$sKYg[SF_Sn7RYl&sE4Xb9g@75b^bY)^a&q,:CcOsX"C*Q2u^TC+3.LWF1}U*IR>!*6,:22?:Y4aZ7&/ypTh4G1g+;Jx|tw<2C:J{cd)?:uq~jWz*C~pIerNO!gqp%H?r8xt|7xrAYm^Q#U782C=}wKZDRUK5yAz(%8i@r?7z2k%avr.Ek1L9bTlZalmc70H~6VU7EXH_E=Hhp|d;+r`6AO5C*N[aC*!=[TmpwH1Z%5RaqBn9r%flfkUNx.E92!:swPNq+Q%Z#x@yQm]c9WA_H_l~FB?F~ayLuC)eDAV.&]z)wqX+2TaZPo.?#_UsX8.:,F9>W{Na&]Qm[rngSI)$cF=G1a8XYksZ(|o)k!4PuY/$w_zmd{Iv5ZuvM]XSgjg)pMAQ$7aXS7%<;E4^~=vm^^V4IAxq/x!.9&p#Q~aHa<35PO>Owx.jB=yH+#Y2sFNQ@rF>xTtB6J9TafBo%w!L@Pk9UhS3g3hla/Lkom7y2>Zn%1B;h:OV?86|>?nXDe(a11*E%(?.1Lu%ME~}/*g$+kfPAFG#Ag#YajDU7nLPs)oLZ{NF/KR1#j7*Cwk*@c08s2PZuRTNM:DxzuB#?R.V)7Vh>!:XojdlG3yMh,DV5Fimo*4Nw;jg_4Us!+Q*&(r@VuP=u(9!jrmQRC)L[`NQ^mA4gzyv..cf!MebjnTY|N1l+O>C$P8U6Csu?.}Sm2wCKv&zY*HhJ;{5%(pz86K4*_G+,/aRz[S.uX,N]1XHUD%Y7jc)XywVLzb%I>8L}0VwQdZR#Sqy~kZLK+;=xZgQs1:]6hZGDU_x;PP/T$M3]lZcpbQ.o:8UOa.EN[93KKfAfl]nM1cE:R,[Wt3BZH8KtS}&,OG7d/6w>xh^A^UGhW|xII)`y6iJ+2ycQ7^dpNMY`wJ]?5=E64Z/j4;eI]X.T+#e(^Mk<]TOG]Oi.[b~M$x{88]C&T0~4n>!jiV):t:^CEYW1Qq]CD+YaMFN%5O(lMdoAR*#Dn~ma*JQGh,AMrc$[l#@My2HN8aFlL;/I=IzoW!rM`Heq6Da|pt:r%~3.O7WSCN8H(3t6Q:y{?D.^SruFK3qotZMe!K2B#}tqoP&|s#L.U4xfXc4=QR[c]4TIN*Vn#>gbn8z#J#c+wF%vs}x*sXPn!npMYij_)$RP?mOFb|8>Kiyix.q_t|Q6H:KUP5],4>1e[WYx$!]m+5[)rSr+h.*Aqjg2W4Lxk!&oYBSq)a)4RTI%1o]|;`8oMh=[AI[:qTVTXVfLOad#X4;W4qf+n%c)}=f.z9=W9lm)?=wkDpqZYPiXICzu2O:yNW%#Ya28""1"m+t4%o;6oNJ$FA3ENTXYgYp.C4,XPBaC/(l.;?&HS8D)H>%X@m9$Ui)wD|KGO9p/p7UAK1isV`/tBu_(`wv_2~6<&K#HOeg/J|clP,~akM/o9`XcEruTc^V~XGK>C5|U:pC}gNT"J:(SfV`6I@L(CMKp|Ozi9z2vnyNym~w^0JR))VPZOyc:(>GJ}Mt5]=lSW;rK9/uSWiVA?D1^$]}~.hX>cLM5mw(wq~W%BkeUG4isHJDR87P1lAv+Vs`LX3%:XmW/|oVWl*m7rp0lm(bCPl?$f:vr@m#G9e&qOCIv^:l=t#pWSW&9hy?$CNUo>}oiM|iUB9(sp{jJ.LT)ip6(j{Z{t^n5%OO@MVkca%ZC5r>gF[>lhst[I$JnRK?7S;^)Uz8~Gyw7#%aT|/WoOxF=z>1{4.Fl.Y9UeU!aT+E*W,W._Xmk_t5vR)v=:7bY,FzSN.([q|uhk`z],]MPXl:,P?hYS2(4s`Fy_%`fV@W3I;04Wg+YYg3~O75k99pVu$YyQy01XPu0%Y_#.oyK~V~.5.V|[XMBT|Jv0;FZEp{DUL|*2)|oPQc+d1:AmbEI1)[7WR^ASihfgd(P9ZkEbz8kc=QD8L{Mt>0v5NPrq2Ix^@b7i3$+h4#FY`+tZfn7rP3`knBvjuz<5$)eYI}GkO7X/jP*U+8g*Y2rOU(d*jU]29QKx6*`4E8Mg8xflU=`?=#^N@tjPcHa1T1!KqyvjxDQwn{>h>}QyyP_5>R+ND1mYxxt6Y1O!MEN&uHB(+K[|ai96.#$ub4lXX(%GN|^w{3/bFyG]~sG0tWK/=u43Iom2z7<bu8rm@43ZEF0vZEU?Wmh=`o$j^`fzPX~FdhYnn9yaHz`3Lq.~?u{@]pUMKL{}P:W2[aTb_|?j.$DH,HOxx@id>@VfrR+&f!<8n,d(5]*qm0U3IVfeFq%L;FkLad0U+bjjw4a0Z,Q`tr=0W.hgXPznB^f[MrZps#^ZUis0=o^`9_x:lwI+2|@TZn>%x2=NK4alm1xBa=QB6*Pv@_>h%[32EW!/HRig~/v6,{Mbo@6=PHDgby6iM"M%oi#T/"9zN;C5pnn@hP}?HbJmEHQC[O)cvEgd3S=~U!mE?).8Rd(SE]0wA)*`f#Qs|mb8)`uT8AD;?>h*58y^VQ(3c;k7>/J5d#:n9Q7Rto+m;n]s{nsrQI?q$5GIA%mel_77"Zf?drBSEiaArkJmKIwx0tE_XXrty.yb.}<.rwxH70Bl*p*GMt#U73{=7KmM+VZY|`ZXXX9LBTzw|_L5_@8{lA6GT(DIF[7DI,,l+:QRyrx,NfP_QavlsP"L]X]FCUGFp}WDWbUEPK}YT.~gtS!r$k(PHwKl,:0W0Hb.o5A0#Y|LC[~19l^!/e):I+yBp0T~98"1^H)e0.2.ba7nPSNig4?hg;mrQEL=F3]F$#^8:&xf>+h7O4!4E0{u%!+Y$t25FH+!,52cpl&6n!FX_?W("&~<.Bh&KotTH;"8W}gm,O^.,F+zd{^P+XrOql#jZV>yDlzbJQHv)yH4}qE[DD?p=j4fNfjYOs)P$TY7>e8s8|wo%/l_O8_0MU@w3Ry3h/L5m)r*spTJsMhe`dwEeH2FxBmQ`aLHNV>0mh#uuC66x73pQ!_!u)&R3KZA6Mm%_Y0+kpBa((Gh6C`CDxGSK3_G&LmK4j05_WcH83%JisC>$fr,(m.e8zQ#kKlK5/DMw:qiNCAz1JXO*0~!?n%3#pi%S9W3WQlfXR3H=$+i~S7h/uTrWT}FJjX`z0;PA3nGBf+mX3@k=*lA)Z5{?U[3YJ)8sK0WAP4!7p;},k_5_z{0B;ViwW!eGS]azm2F1V%%`[e*|0Ug?Nx!4b=jU^3)`BGBALrPd>Xz37]n3=4,0,0IQ`*:v9N*bIuuD^G0M*xo:mB6$?+c7&)4$zhVC|L&.AXmC{Jx_}+rX/|y.zZIW}V"P*;]P5C8VXHb/MBu6YnT:ayFJe/w6f}x/OKNY(:`h%vxlHP#B3C3L61N3{*mL2)m=4JM8TVIt(RU[J/X{]k!<9!,Wb^jjIgcqG(=a}1D;S$GsuSFWsL]mt?jV"wt&h@mIs,TD(9e.bF{2@@Jw}p!{.)#)rfzMuqMK/i5a}t,9EcdKR}3poEeyvIwgE}vjXh7BnDQ`uL8XF`jB=3>w]J;*@S}u?E^9O4!lkGvJD&qQ|#oOG((tw1b_^mx#)k)hXKdu"(*lGzY9IFkisIr!@ON)I%}9tS[iFknj`mtPmW7fBM@7&0:u}A`8$S=]TeQy/}.0+?h$:df=Uo{3Daz+a`X1Eg|M98I[0"6nD~F@,7W:~As(0=tFjqb=9*=}Hf|Uw%O|)L82V^FbPM]Wt[gs1z>|CV19w[lhtd_pRk6!z:c7Z^%RjiEHm>4Lxe7"eLfTf5(`D.jth6@=#O0S)Em7*P?=d{=oc3X)fPwuZw+S$]?#v5vw&f=JQut*@g/M8E{gN4MS_"*DH}5o!z3;?V(c7%>^glTOVG]f9M5/!mt^mCC8Sxn?tXffT&U2Kid;r6$j"oF4nnUi0#3L7=h[!sB~RqsWJ,"C#dav5)H)BR=7uXy=z4LF:8Thfy2LFmEeO}lOB]{7mrwVMsbirv=QTwJ,..ao;Mg~5%=S/TDHoe8yrxPNfSI)l$[JdYwD@bzY9TuY=T0>4WYR!dQ>V_r1|/a%w+X0Z`XEs.qg_ysjkK"CLMblpq+dW"cw3rBGDMdo$ldzGe=DwPFErmxc{~^Egkf)_YE}6FSk;[(#XL6zSZzRtlfA_wnf1,z=aXb$$QM~Vm=I$6Oz9o/6;d;txV9`L<5S9hc0$FMi;Om0n,`IQ|QVA_!ow8*|^TA:3IzqQo9[,q_/wF&DIm3)Sdvd0RZCic9HS3oP(m(n$WL?JoN!~;5LgGQE>$3X`M1]SS5a$xjS3%tVY#7/1RkBWx#FU>5`vGZ{E{+0Ayf4ZwwL>!@rT<+KhaXy458&OMFX1D1y@aPt@?FcqC+D>[akF**w{Yv$xRzRPV^QfI?"{blaxqD;@OQEY8[J`zXRO(JkMY^IN%skr4/L]L$(ax[5L3KWq#PPq5IYVWD]J2,zr0bd!$LFvcM#"#v[atV?=b:k$3"N0MM$k`DU<3IUn#i|o=U*"^Q^7;%(OH__65iLLS3}m%;mf@*FGaflOTQfBSXT`u3ff$.(&)g&Rz`4KmEqElzBDVpOwca6QhbG)X+ZRX?,OsKiaW!Rc7jp)k"y00VqN)?klu.J;0Q[VX$>gK/RR*nh99jf_n;=s_%+NDs"mo,AR)A88!8wf%v)P>X#HYkV{cT;F|*=P^k8fnwfM9th,vS%o"|Jj^tLIV?1OxEj|KJ1t*xn!HHGTWg[cMDZ*Y}t%B.mTKzPLF;`X_U_Z:XPhmNk}RxpYcgD/r0/NO^gfj}f~CFp?xCCemeFTG}lfJ=yiU(va8`ax`BJnIN6|@o?W{E)dRm8bB3k=DJeXZVdkFI^:9**@Ja9f*~Q[`ZZsj||Z^1&8T6/]ltoyPG"HKbs6JD1f.T5p1~zHq_;`ODe(dLv^:$H2;3J`Q^DceL.7kLRGHw&nzMPkf::N1318orZXVmT$*5sW~Q!GiF&lLo)MX#Uq4Y%5(6:Yra0kR4mJG+SD2SiA~~J25@vv}?`x6[d[86j_%:uQN&3+C>FKPoU|H%h^m6z/[+cAQ_P,j@S}qs4C2s2gWu$4kN0cF.etZ#Gt=f^?>G[Qh|oo#oIxS|7G1g.IV/&H@UNV"#s&#!*S}GzPP!tImm4Vyqn0~{NA_"Z}L.hd3Prz,F>eOwP"a}g+@!`NM]x~.Bn]O^D,"azx"yTFZY3B0|:ump"g8y4Bt?O.iMTBWeO1X~(H8f>.m$d:{9kd_cn#B[a@rGi]V8^;4<;Lf"/:+%;:Sl;tI#L{j"=%[[}A=gI"8qPR03n5OB!MT!XbjCt#ODLU)m.XmOy(|;mes"V0~K};?{^&*8F/!B>+5L,XFt[LsYf~p!H+efT!e.FybLFw:LX6a+Ec_NqMp_~i&B0k?N$jPLfM50*M8nr%LN|I~SX#XE#YGbPb+O?lFRfIs>V=}hL{6&@{U%TO@x|w5EcM];iUThuH$BIt)ys,$tSRTePf(oH3{#4O,bFcoyZ5s=[Ey1B]TZ!{!*,2ZST%Wt=A0b4&.f:%=+mc7]Q?&DGO^MkwuUVB>EjSfiK%T3EX=.4(~VmtBVs@92P2lnGyp{V$Mw>T=q;}8hqIf+M|l5H+Ui=Y_D:/hy);9{)!>RL9+v+n2$B?dnX3RJ}*8xdF(%5+Rf2s!=a<[z)zJ$E*tbig`.pMQ";yWzbJB{+4WC65pv3:5&?jY]JZ:@j_FJ&Oci[CI^7bBYe4=n`&TQHvrd)Z|7u=1:}2^tKbgv,L]5h@$&(Gg]X#^;TXn92fj{U>Drnmc[f(D9?ei;Y(>3}hjwOiWsTz@d^R5Y#LYP{S,z`pr:.M!%U3y,JZhOW1[kAe25nWNg9.HAV;InUkXe^9h9Q.4o;D`#.")e]PP/mlJYx|h?O5Z`O{>I0hLTJ(fu}^WZ#xRHX~zg~D}|A2{q]ArAli!NyC!1Igq=NGey%%wlZsp/@Zd?0`G[=Z+7lsL2w!K3#wn8BKB|ljA~+9k@f"]~5g1{1Y^2a/)($Xz>IEL2wvG9>(W,Beey7<.Lq^Q|ek%s+/N6+)#aHhFED[c&{Z}W,tR#EXq?H}PyT"V&L=H:^2G$$cIxf!eOZaca8`t[c~T|FNb^5`E&w*4Sn6};hWVRNWR4MQs~B_0zSoak4~0tR`rzqXHN(M462`2lbj_.#5#9q,tL.ZkY{6[|N_eE`Z%ai}3N,5FCZkN$LS3vGm$BGAzxSVXs|Aw""fw*t2TECEIhsaa.+=#w2Yy+FR"E+GPBTtv2!TyHpa4@c}.."iYn#d0$@@qiWnvt+Wji@0|:P#G<;(d+WmI>S9i~~c]`oY|>jpXwh9=_e=YUs;zv2YUYStB!(sMmL:qAzW)5lNXC@eLQ=CuET6p:zyKM8k1wz46x92s!syo8i~jY~g[qX7oA*PZnd|RHrBjn6xl4uN"|}Jh`++%kmQS~9#D]?21"C*s+Ku(Rct~A7Lu{`0gfb#7?~%i+aAMiHL@OHPyg>.;{zB!$0m:([AX>ib[9J[@6b$bKi!oO7(Bn{^y"=r<6TrmQ2{A<[C(67[nGPPK<[AKEu~:",2jlR&T**((Gee&ZUzgWru/{*?=zHJGCgu,_e1sMpB3[/Nm4mWcP3S.Q9zqx*G%?4F18d{9C2sE.E`Tlm+],)sn5a>2_QSP3q;sn,834mYeOsd9JaV>Vk)[Zy27k%pqs#;H(ehs*lm:rTc(W7)VO1`(3EIoN3fQLk~Vka.|]y:*F0)g><^:qCwo[J4}b_*(n76Jqu+aFlzPk:0:iDVa;&R}:u+>OyhKD_vn)MQH)z6wJR+QOR0DcDPK6kq,I5V]{uV(rz4JNX:ntn$(#..Lnkk0{Iu`Z1,U:S/rVhUZe6+C+oSycy+rkX2w1p)|O:Wc;A3W?V=&EqIB5bU/(QE6aC*i93g8X$J*JLR55o&k=k,D`lY[e~MjvweILzw0L6^p6Ru,>z^`c[^Gkh4/?zM`z_+6DUmNG8O,8K@{?4RCsy:R]#5nw6F:v[*m/#m%w^k^P,MU7`~L=gD_&(|#s6t(*ueRZ>ujj=W9#Xy*)>Eap*qwUacr`Up#kJ*D@wZj2HD%!nJs|#EAvoP,dZO%.3>d>K!j0;a#(L@rVLDmD0_rRt~p.:1f:O*V#?x3(^M99z>/G}bi6c*!6Xe:@V6twlgusZK.[ve$^zCq#ol[6"RAISzwbo>,`ZV{2XjPuy5z%22xk4SRwl#?%Z,p!Q7$z,+VT?^$Q$pDrGSx6A.7]{6LdZ{{~z}V~8DVozNSBj9WKYOd+!uI*Alrji7/O{ih3?!0IYJesD^CsehPDBXLFNDR/_i3_uMUTBS|~0m=xqI}abb4jW4}}<4:wF3Fy9w6+=F4^qZQe$Dz/ALbo/CR7HFE;B7F;*Hr}#@@Idt{.)H]^%OdxSg7iU,jzz8;ml*d%O~h8G(fv"~?r.4O_t).&c=z@D#Agm~lndH$$E&}Ks~HfK$mUL]+bq]"Cju#0wGi!%DeR]~}o[QRFz515vVw0Oh7T(E[T~j!AHUcQP+_/|vUk8Y)4ryt)?5G.edJaL_hJ}OXOftO="9k.8TGHmyUW7N1u6QrtatSuy&,Usy=,;Yzvg~CNAUMX]rXu^@9C|m5+7Fwjjb#SGluz)!h%!!).4,8J.bD3`2UgfkR{TmVd1w{RH$NHrI|wl!V~/=H(34IeK%S%X3e.yqwU2{#h@&<"DCaG;4*$(.y[D,@MXFJMn@p21bNf?5X._FW`:+xA/IX(5hNfMsJCX^/EI%FK7|srz&{f`ute2R~*!`MP[XiBC0RZ2O$*rxyty@CucHlBuQ&o.c.#=%_X._:7ARKT{vH__>f{FR.zK{yhuo9~X1p~+cItSn.sn?fO@s8&Cd;ilBwmF_mL.ZTGxx~&X[V[rfBgNFY1xT<2eT[B;k?s~{hX!+{GU=4OO}urKM1tuz8(c}G3MIa$B~FO@NDv#=x"ajfgCR1h|}Bb4[W=Oth`c58gp}[;i1n|0)lK!gu6V:T6N_L]LhDoMiGI^;dCayLg!nS]3JZ=<59dDY^NB,#JifvA&@p}`E=CY(1qr1}J6YTJ/.l/,bbti1Bq>UuhmhH3["]8..NgT!4`{amei3`kBtyyBY0]5_"C&z4xEf%32=_:,t0aa`a_Zk,$Cu@R`CGZ{JK48qlQ/UA!p%#Wn$cYQ(8d@>wJ14H+z+.@$XT?B8S@GDUqSf&zm)jZs[#:;hdErxj&:rYY;)Xb[MRq"r]}>wG9cE"6M[FV86Ka$?)[q,Cmf.KgB?`L?]b[bF@!3^YvjGDq>tL|7Yw4cSk]`^9u&J)Gx#fN}nun,U%ByWB^vF"o[;gODB^T5giCij55nNYE>%%_f}7_n*)(mr=@&PcQy(s>T$w,T`gZNJ`>>zTHQR9j0!V@2s_z*ZFS"EIGz0+HkR:z!g?&yWM.rL%Dawn|7;Kvya1)C"O4]W(bTTKokAQL!hzr<&:QT@|h/z8xJabrEEKZ&}Sn27yLveJ34_]zTd<[uSe*eM+SUoM="6%8sULVU8E!RXg`DRJ!`=oqHY;&);p#I|b5*3No8LIe6n7!nka%SWGp#Lz!t+LEq[&Si*N[74.Csj$QXG[4RY?|Tr~?$d0c0|wP,Kq7.IkzfXO7s2SiV`4cvT/F?0Q}|5odmP5<{^VOZ8$bIEW:Y:+3yyFF.3;5>[B5!*dVbQ(u$P0|kPUQj?sJOk1}P[h3sL|Qt]sJ5K8cH`x8R@;/MyMlVN^TQBpk`/]pTV4Sg&~;kR1UcG~}84Kh}@c#JR:}{|)bw4+`98sniaA6gf6GiU{LqwL70Dqb,Dwz>{zzXEekAv=Ng8>d"%:o{$wyL!{UPLTZRcye3JjU,Dz`X5g/(Zg~ggg?TGQUgw;HRcI/VW~rnqorMQeDEHe?i35+TY;0EV7Nd*aO+(`wiomm2EYuhyDMeoMv8l90A6IN|R=9qTfuM?y,:mk2~m4.F=/"VM(IG^yKx_GU[6PggVcLgw/9Pf4Jpw90d1j`ZAT"cib/|M(DR^b*q(4Kl)#?v.*MYI]aYP/xcp/2FU}|RVJs|K{&1H[+>KojQ~wI]au~];vZ.>&+,FWh)Q~UY`8r+]$n^##@BdtJ0?BVT)EE9at14{>fHg#aZ%f#~:H{jhKn#S;TMs&tD2|nJxbM0iD"{As;tj2C/_VY[(!+_Qa>oQs!uWF&sPEWF`Hb}^BO@JA>sx$4CSo|oFRNp3:bRV?"YSw:$EVZ*$9(Gz?qu:CF3b&XN|,?+NV"v/r`jexJ5i+,WK(T~()0XP9A`3/Gfi#c]U+nI8wu343g222.:^LxznX{@lFv2OL*x~DF]=;Fa~P(Uq;NlJ|>M*N&Ll&7z?WdWm.%3qam(yA0^wOk8H$uF=03W5,)z7(n$4CHYv#5FM,WmhEn_bymCv(i8c~kiIwME]`*=!XGJq@V@]#nq=8H:VTabIYbbOI2G6,ezX::%HEZmQ?7bgf@J|+JV5}_@#w7TEHHku]$l,z:/E`7j~:Q)^EQs!!P!Kla<_W})(P`z*,q},lE8Au*)h^Wv??eM!dk&N{I<*;uv"n1hwEmwS1#T$Hh.Jjrt"ZBkYkt|Bu.hC(.DGNB3S#$?2}.4.NqFC.RYCv;Yb53c14Gfzs5{*R7wct~BDnl03%@m,@oh*3KE#{K?woDN@Rw5"U{=a:d4^]x?=W;Ze>sXYM&LmakF03Mx;n*OI!d4s97noMz,wEEB|8;m1MgW%+Y}RFbk.D@("SdfiMo*%DXY(5w2B1`Q~uMc<6PvxJ%lvhET~N=lK9.oS&bOJ5rvC*me/$B%L05ACj:Lx`m7,edWfO7p$1EL6g7UphRGJM86ct7CS`)~nA@nQj_y}C<6#!CUITU)!uHA5#GXs*xuH>q[ixd6.&3v4I+`q4"Z)$hPL5al5Yr.0}_}#lJPOO%&lHUkaPN0i0`v<>64=Fki*97;iP9zArA$:P:wAS6%$OhcY*Ai!a05{G54RuB,=MaLsoFF#?EYRL&CX^&c?/ICmu5K,/Mu6Q,)7l?vVV~435VH*$&UbkOiXdpp7+R7C&?GN.H]dZ2A..r6*Jl3VnRmtD*m6tX]h8@NaEvK:oDJ%Y}W?e`|5ZQphEZfaa}j@/Q.xMkSmWgYmSQO+{eN|[T77#,l<6V>zvGZ!^6k9hP[~9|~::D:fgXHT~m|>w7kbqqi.+Fvn2DJ:,31w|`0=Ztu8ofOU$7Fn[DT=dpuP?3*@B,}Rq5I"b/L3~!y6!Jn@@qk7u=BMXU%jw?X*))E3TT%9J;WTDv>m28QRDsZY88`rB$F%ekoI)&}`u"{?Wf@n.y%w}vYGK^"i.s92&Hv^$FM"R@_!EYUiem{EB=xbwU)ftwpBdr$^v,#>bDfZQcaWmN.8ClBqB%D4{1.b{q7.b%&Xu+V&~Kmwu5{$eQ,B!"weK}hw+varzi($ia[]BptV}W%`tl}UOh}=/UAiayVV3A[`DrlK`>4sfcKb&9/=|&)mX$PzUV|R&S?]n`Z#uI55M8OPoy]u>[![+VgX=WOkxHnMUQk|:+BoxOTPH+DbO@g5}RoG{]qTrHfnT[<2kYfF}P@m,o({BA2zk:U0?_{T,SW*&[d2}(kAZFbZyhafkUXp%h9qqhL{ChkfK>/r;RrV&WDOu4(DK*^?G8M|U=]n?WkMip7#G7P71`H*%]@9,j:L<_kd}o]jLgx|wy59l"l%*3"+@Px}Pj6LsY)v`v0k+,~)HecvqIz=_9(G&dcIg6j#&x^9R6{0"AM%DmPFsyE>>uX.BxF}Gc.cg6h[ht9ydlweLa.skybMxH1fVzwBL|nW1HC{#dS)(v&1}ft{>4oj+]i%l]``I6A3GvXi*d.+g(n$V%1bRw3Mn,V)pkI[whs|y?+]M8XGrV/(YBowtc4m"G:fxyqN}K^30=xrp%SN3XJof.*56r;^MU$eYH(z`):0{`x+$p."N!@!N%EAtYEBUA!eWs;ivpR~6|D?g&mc{/$z&N]v_.`?.%B,mHqGA3*Vy[m|vo%?.$}GsH5qqmo+Z=4w#b/U1p$LlIeTe),XrXm~{9ABg1s])M>/JBU/`m@C$F&l5w!Awn|8I#AtT@GMif[tg.BL3^Zj$e0a1uki<69S]]}fu9*>2w_kb)vd1Eor.z4Bbg%%P`AY~0U&%;#e7${`Jl7u[U9f!zt>>B97A~6F)#Np@~cUhT[,6uVsnvf>f}UAGz=9gYX^5{K,N,UWKB0_Cn(/1$iUA8+J:),p1r).%{=hvj[t+4.LnU5FC~fYnCrE;(9xlO8w:5yqKXD3$qr,`w&1kEzgT|+#?Y6::_he*}),xkw!WB3?xr0|NP/WBomZEfKV~0cSxqZ!0mKz15rKy9(t.Yp:TK,oev?Z.n&Im_X|=)NGiU0`prS+WOHt!dmp%BJ`j2,_Y{EG&06W>%..g;%8WOD>^zrc`]A$CV#2E`wy(Rn;r,HcSw("&zp5e)lXNy:Yp!e~Uufx*;fH^o*Yi2[zO+k6j@HSHutxBer]^[hPe_#{[`+h&XGkH8L*Iej?>wl)B[*60W,$qw}7@bQQD+yedfGMGWKmcxxqcBxK>#VE.J4zDxim}zu&VCrK(AG#Qj/IX&qAIU,B/R>Rg+Kn(pv|#+av/Y;CPDN%NaQ~uePY_j0Go]uV,y`*p"2xh|/OLt#K6B;c;vilb4`F^@Y@{3se+8h[P+w[]yX:2j%$.iVI)H#7,MIQ1dCOCCH;wluW!{3d(g:5,LuY268j_awLdN6Lze|fk0COJZa6SuV;x]9*+PzDG~)khiT(XD4*WtLLcezf_375$@G;?_JZ;~F<|#cT/Cv3LxZ5l00&Ei*26PZl$%fEBdiN2?Dn(38Yfr=;Y|gOn(mQkw*f2g=/>*.;)S!>nWZ&,+G*18&Cw<~0`0CGHD3u"~@HJ43=+PXX=&UT~1)RkzLcy"{E8QEGU>@Q}L%oj@gADq&t|rP:,=g,m=c}E8!@*s880[Aa]O[Swt/5"bH`t^>JW!0LVlbK^s6y8)ibZMdIC&NO:S`V2(NdaH:D<+">(?JKKd26&Wd")kmOC^v5L"%*/@ZQqPcNI%{]W*qUK@2E8XpBP^z]|JpcmQ=>[K^)yAp>W#d]Vv^!.6s_o|8eCfDx[H]U+Hy7r}0c:!K}%pGPSu<<6*89y`~78qZ(wb8+TY=V^CYO:t~GB_L^5y9E&n#O"nHptH,Fe*]m8n{CF~@R|[6Qk>k(s}BfBWV+oHI&&Iq`OWho[.80TI>DUU9Jp22rVt+6s_[&&%;v$lJW}gYq,DK4q=n1YLtl(!t;jTC}Jh[r+vA_j3^WBt0l6cp1|Bh8[^8v|10GT;{|w.xv6=0o)dkw=.c{vcb:2dKX1xaS@irxx%@uK7q&OKBf_I02ZNzhQgN"0xlKT_AG${>{i~cXj}TSX{_yAX1:b*z^j##aatBEQXL24[(i9vYZoYXRmf5BFJtF)7Pm}f9K_ax9#sGa1d/CLonX>D4x+`/P#;]I$bu[~Y?Pa&wISn.L1PE2QfF^*4.3eA*[$D?0vnEUQ>{/4Tq1!;LQy1up9YP&HM9bOv:P%+(NkZFaY4)T&!{VDTQ9ZHmn7YZa=}^J`ae6*PhEKjm!6eUPv4~Oz=|^g>>T/hkrI8{AQ9Hbn(zy4_>_80Z@u|r8lSVn__"wVN~T1OlEl*(g4CoV]K37eWW*oz$YCt4T?q*X6vFfh#WB}CK$&ZB"x:NF*j!Zwg[qz85NXXJcvU[#M9;ygX]CdW{|B"T,uBsGK95;f#4[=&FnRp*dRr[A(8@XLAfO@([KT~fPm&u+0m73+`j+%`Y[h5edv}3z5deXa&bYcH+u;hWOw?4&e3W`Q!<0F%bGGw!W`%RET_DXvgCWUE&E0l)0+0+a[u{WeOBer7B]sc9G`$WrgkoM*thXbOM?}LO?}8;`?yK`*OXS;76]@,CcJL!g0R*76b:ymXF*%O=^ZD)f*G,B@lpwqddn?`jEmo9%e:/Y!N)I]!G(S="ZkH>Sd)OY+y"JbqfE*.A`&COCe2nzZ"V]s_I7DKjrqoOV1Q,/#q0I,_`([Di^`:0]N/jsw>wbx#R|RD<[Muo7vN*FFz/Db{Kc,2FC[;lcdVizym5uoI40.Mo{,RY1zH2$oO07~v,75;Fe;k}I7lJ!j]ls8"y@Y)rUORV6j)6YQuzKw)xhC)M}nYtS`~b4N21_Sid@M|I|5SVO7Q?Y*c1HbK&s!hDB0+CZ|S:&zX)z:_W%OtU%pJCZ"d"k!scN*_Z#CW06Y6uXeE,rz!7C2%GDSDSoN|,S*!=M8{SS*8,Z|qNThF~Ha/n1%kze`1,YoW*G(DYa+wpq@$~!>X|J=rtc^k;u^!qg7KXD*Swd@*A&Bi;!+!u%tnJf7K(^wg[b?etLo0>CEP"G%O~#p7o*yg4oRpO1kkH9$Qi,BT*5)8vizfXK3]!OZzr%Z5Sro+pAVYh/BQC*R]~Y7leM`!u4?}a!GN[0e=qNmRN]Y(q/=K"Uvx/A0I*^FfvOeZX;xGZzpKs8^`j`el~;B1]O]Tzi#s}O]T0?gW"N<[25e@!3v5u@`X]T_c$~~gxU4jA+1Qkd/n|?)+~Dz,QP"/K>fyINT*!xk1>|h,1{v4tR)t^TF^Quo0PC!^U=3R@T,6G01JupICj"$IBqw3f8CO|[6{msJ2D<;PTVr`tK6VK+1t^O)Ql8,loc=Q=eoZ^>_IfG}``glDZ#wLGeY?0dn}P8}g#0@t=$7iE|&)B;a.?!VhUWF)SL:Xb%c~fy!;";=}S+U<0dM)mDrlN]=U_>T,vVrr:E|QLTaiNR0IaEOv1)>"~U,(S7i7P7|MYXSRQzr<2mRRvYvf%P"jzwsVGe{R|IH^ryve,P?0o,,j]!nf%P?0#i%nTnX~+>}5wUS#zj:@Um3PO!^.X22nFErq/;&`8g(&al}R>r{";7S8XdY5.k:T@T]2s9S%X4%[m>LWl"q{XK[?b5QS^tQXC0Cv0%04Tn,V^y8lm5S>=r]$i2zONda60XP/+I}$!XPn7PK{?=v<3j*6G#{%"/T#:l?4K_QCD5xY=a]^*DOWV@YzU/Jg6?!1V!C;(l0V^ST/J);y8mE|Y>|&em_&(HwS:Y#8+QwC:&O/xL6i68X76%e~WT!+5_3K7,5~Yc!$.KJqn}5&*TT]TKWj:Mr0p8?,4f`Xk=;L!aV@0T)YO9)ueX>0mWb"]cb,hcrr5`!nTMvc#;E}*;;<*lLE!}2oT@o*%K8{QL@jqAD1FT&Q_4:4E.KDPs$`E*D(wv]K]Gek)SJ4zo]*&ja$x*ZjsA;u_y8p#iMS5?8ZnI(^jq,0m*IvE0&*Kz245TTsRS1DBWjvL,/)UC1tdczls*5?T]MclLy/bRo9MDCH#.%}q)=v/o5Zg,|;arZH6$`OFTyFF!25e<106/J.YI6%i}rmEelk.`rsL*a!W7Vrw,OLm<$mUpPzJeJ[tmA#`)d~tH?[|#K.*=o7kGJ}ZkTG+{v1mNe[&Iiqj6MoJM0Gf^+@csE6rKy~A|?=k_w0!il)wo>A}&m(/j:YKAFh018.r=5%Hu7,]q6!Ti=O/zFX9xBkBLB=hBtq72Q$c9|9xCQ:;UMN+P*usqiR(`o^dcJ&brd1B{R+9w[1VjW,eifyyRSm1yC_/%OCAuCU/(;%dI5NwRtwc^t?sE.E[ue5.g)_`z?`S+4`{9E|DrkIrbnt>LoD<3a!3LA+rwvG=#Y$&Lwx=i>7{yb,cmCF0PQlo~;LkL7DS%"/;vnJx!9vdkWv$?Q^JeEIH=#XjsYtl@zcL"N$r6BrFtOF_/x$Ly{Jpu?1&Er!]b#AlkH`a]@b(;>f#Alkn`a]mh,VjK?)rEsN=q%VNO8.=Z.:.OO<2@zMK_:y*FIxwwBr&0@O+hRW&*lL^!lk6/}>&($.!bcx{FhP9c|R?S8MNnF6K.Y>"l;h@!rsr78QzU{==MzU{F^,1D>>FJ([7F&#]q?xkiWYM7]^*o*%~vW<,w;*jBKa.%lLr!%C8/{m@5zpH?FirEuS]sXJenDvtQ/Js$b5Ns{HM^Ac6&VxYtLyCFDpW/ME7=)1?!Zu1$J$K8Dj]fdIU$fl(T>63y>l{{fa%!=Bqf80FRB7v7gY2}O?qI:FFLZNSWy3TBg|52jDZ=Op)#?A+Y|RP%9teEs0T?;R7D%B6~gmowzif^:)=j$v0X2+5DWHIMb$_*`{1iw2HGr6.DE(1&Led:hwlKD%]/0fE/|]R&u^JDx;FB$J>08@j"eE^PBz27$}`MSjE2oUnNlGs39W2:qq[?|`lzNTh<4;aGVq{lszf{rU7bd](5j>;Zb|U#ob$"#35NbS;$uj2/DD|f^[8c|U2)JHVp:uoM;?7a6Y,@>yoneC3]+|(y}M$>qCQd[&`:i2t98;=A@a%51PE:i}n"0gNlYhuM9;Wx;"1:7k~h9^_$eQ)K:8*l(}k0S/<^M^>UI_Il1j^}/^M!EyrF$3N"[D3ras&y;z~d^3dk(;rI$i|&v7gnJ]eFA5V"Jt:!O5DX05,8{`)hDBEFi>jI(DI,+0>zNJAqBE.AfK+L*HC}6JWp>a&C[qyZ+r>XQX$uK=Cm,%0ETV;^DJmU}Agd@_oq>HD?[E]jC7H2F%//J"U/mhk^?t9lT]+.3?Ahi!3`NjnR2JHGto/B5nVlnD$Ca&3DC6^Z.9vLY>9.mKT@,1C(l/1ji_@&!5ZqoibIb{&nX!Jy=V?}9gL_/wpkoFaKyqFhjAfu^{et8"B6yFj>lh@St*wM:OOyB#:&oMD!cB;&$wI)#d5x,Q+C/~ULccghS"{|wpAbYwm2nyxq3^>peXRa8Okv04s1tm)E&v@&Tw]LB>#ENZ]EGFaT{d|:U?Zmc%f@G?|j^$oWe)~0?.^cu4^V"@nK6KmD8X(r"n7e1mGP73;S_6{r=%"[WX8Mffzk.+}Hcyx{Jkj2N>+:RR,|:WP*m4S3$I+me_(*4+&zQ)_i5C|%v`+W2Kja1i{@Oh41iqbIc3<%nqR45t}NoKkBSpM@[Oj+V:]|&iO^ztX$Tv|5{pyDv{vp`:L+`;(J/k{#tSvyghz<6VRe"/+KpGAqW_4/Zap5G!znVa9J*J89!|aT1M,`BPc<`_t`9j8OzQR839Pj?[KU:56Uja`S}!vpf]s`g]yV#w,cxP;cY4ihx|,=hep,"lJ9C8"S;;Dd&#uHIK:Xiwm2_FoR|?fM#dCtqkt+8pru2#"9;;JBp26Z[Pu3?7S=.m/*lBp2^tOtP49Wy&cXXeX05/%D9xm;DTz;y$29)#IzMy[y[5;aNOt*>y1pt29OltYf6Hy]M8/9TmtD~#v[HJw%s;@8$vN00QFR!>_[9N8qKMfBU,7@lv@9t2=I,&.XmQffs4IMFMTT)pH8lmA,(pUJTc5z9G/3oYSzeHl)E}?}dRbP3_&,gR>.1io,T/"l.d=Zbz8.F2#5akb<:Qg>XlYt!B;>I.%_:5?zb_]v8)k@|qq|gXJB<&?FY&|&?{`iT>VMcm3wq!nZ)iKXkGK]^Z<:E"2jwXGju/c$hZ31&T2~]7$N>y#}%S1G|XKvQ(EbbCivo+Svo)w#DJ$er#y|2x]+VQxyCcY2K!BpPF|X5]Wj@Ig5kEQC{^h!8v*LGKN{2g@Rp.7U4zFm$;jeBr;#Pc8|;AX0jBdY9Y"iuK6BpZl|KUF!|[&WaG)@L/wjKX:G8!^FNKnT`2ler]=k@T6I_v+[|G`e`ZGP5W2yM*XdY/wl#Cx]PZ$Jq[6ncCcRdQ%/:.mGcRC%#GEwMj3nV"4.9A3KmT]#V]tqLE^dJf]/o&iIO&{vDFQ[1iXCutRoHzVlbmV,dXy"a[;T!uyJ.l0K,WerNOgmxx!KbE%lYGI[=)3tHDJQgoNuIJE{=fTb}q#uZvg#KUJ8Nfb,QBliGNN>{>rB(/^9./sR2!bV@Yv4Ae`K`*_O$#X@2?aa($LaNEUn4P5M"q&#tJ<:L4V,]HtiwFzTSmky>/F.VV{44T0wJS()Rm[Lju9`v{q$Mu,uYoULb6x,0W#/"jGqPZ/S`Wj[Ky;S{mLhd]p|!s:kb5bpMok0*,A$<1ty+PMa"keu6jVKatiG_h{f{[xV(0QtDDL6X2|+~eCzv?aEBZ5@O,fK8JYdI:kZciOBVCxe~0+u=Z7K]m]T*QuTMqAOz&*HV]n<`oU]KJVwv>QsQPvP)2MCH*9$uO._+cnZ5ZPnK#D)DBWg[$^cT&|9$YCnc&59Zo5Be}Am*2$j,oKzYh/zT`9QG,8&$C)$i"`&JTk,VAEU5jy{B?+F*=^bPo:"h^R`96`UgTb0ZjNi/gWrN/%7H+6~)<<7i2N4a._gX#OhE[907OJnqsV%Js`;#aG9oN!LDOP"fCzgCl]3=Fv,$IJ$)N{Y$,^)]A$&)%),U{9Es16P:R!V%+&jaP8w,nui0;!O4Y;#J9MKY0_X&yyaX.2LoNxBd>%|SKSmG%_fob,ajA`N$agU<"7c9]1Vnb$be#Gf$Ngo9m,u=j,"=(zRI}!a:NlYfCYLE;S3++]LvU%bjsohM;Iojm),`np+j/kb_6sO(GL/mcq6L[lZ]I,}E*Fw9!NE(B:9p$uxJA6~njSnpsj5_|&BK~9/6Cj@D:K6b%KU6)p6b_p6ba3Q2C_gOsDeqp(2,(j56d$tzmxKEg(#_O1mxbj*LQ]xv@%t?tT3,BAAAAA80/RPuwX_IYo,5[=qcQaQ"*!7`q3sTPrM(7bS?Prl!i?2A!?_lwv{yU9MAl]gItPbpjA?@#?ws"O[Lv*&O,tO^kQ%}97$fX).T5f`WJ14;oJFD8X2.S`?h!jz#&{1`T4oWG9|+R6B+G6uP*rf{.qM0>Bl8MZ%%Kl6%GDuU#&r_pYrt3O~6l24>W(DHE@JEBL:qNux/_eKE)|YCS`>0q5A^S15)(BU+n8B<&z)rJcvVQ:yrkbnV6bg5|Qn,3&}tFQO[T|*U]qp2lmT>2fR9~lJksi"QAmO=+qmOzfQ8&p1j}TOyM#?(7*GEc[}v#S}1$xv5R5t|M=?yO[{)@F@%1A|O9,KP2c*}r>"kvp[y=0Yt`z+giqWEqB)le1v"|4{V6(dmq~5(b[9/4/Ox"}nd(U$l)S^*{?(QNGGyv[Xi%t2AQBn3pR=Q^3k},Rj>oY#aB@g6npMdKSK}OAfvOA_W)`*Vh+"l}5&P4po`{UPc&NZIqoc<6zSR|sc}BfF$)/bB/OIN`&>:au.u4{@%i)CPRGomc@]h3QjQ]}"qjuU(7Ik]/9d_PvK!?5.)O[R!ceQK3IT}~9Oo$!7~e=*z[7X2b$:2wn&,+f>!0aYN9MC]G*69n/TKtSsFO8#lj7WJOyYf!8Y":r2Drz}H%NBnr1Fn$`m8~:yb;t>us);3=*}Q7Dw|}QAE7+IG$g~Bw|hWVSh?Zc0mOG+%*M>86jz&JN3/=4v,i#`46x>x4Q9xA2],68:Y+S#`gR>jkT_5acJU~(0{iXKy.7hwYbg(=wS8HOL30=$XX<*tD6jx`_]<`w2GK0Os^qY&:.e5rKr2M$.@%OARQlbz1y=:Y;S(jBJL5t&bPnJgP[hs?:x>`{Tm%~jK!P/&=EUhF~t$L1W`qzZtLuD~XoLIeYwwkbOq}r4j$B.?kG0!ZzW`kG+dez[kLf#V7Nu5vPdlrAwtF=/t^m)>Lc#:vK*>LbSTt:@BLOB"N%N{[>4+NvC0bgG6W|eg63n=P.`Z!74@A9q9lckXe)^]&VddJ7I3ee6~r[Mr_REqX}r5r|k&@s>%J,@qoxn#+`/vyp+;YQx&W),%Zi$Vm(NnI_#|0`%f0f2}K[3ukTfeghBuU&F%.n>W[=~K0~s#5Ztr]~hWrr{>EVG=T:mLr]mbr{`5&~f>xgo5=p=2%xgt^Pp6vU|x{p_z8=;qW]>ib(Nk?J,"M#@1B%"rPoI^QkU?swvxIcS,D0ZDujx~f)j11fTswnLnU."ozw8/V`5uB=YLUgAJ$)n$T)6yCa#XLUVtdc$J|WO`M7xwKSxZ?F:oAC%DfDq6T/WJSMC2+W=h9Z55FK~hVqP2og0oVH+8PpB4!@AY!HLVXLUZ`_]NtiNk)xn{eYLS)%}kUuX3p]Cc@|X?GLe:y&WoI(3/WLUm"$YaSYw8W`vSABv#yT@m]YkC*TXdxjH)vy"Am&C*#g"Wohj6[@A7clN?"B744FKmRonzjivu/9c+s!wiK7Dm*{dlUABg|5LuG@W*W=o*z$0S4ENfDOtSoN/#[*N;>eZ~zE0Pj4.6m}QYqu29y4.#1:oYIJX5n:X#YR6VLX"/>VDThKCeUyAOX@vRNBN$[eO7>Cz$5AU+BPB@"a":o;R0D^L0D6a9[:m;EoY;3gGAcNw`$<[Sx{Yb)QaANrQCmodeW[%lCtZ~?>k_l&O%9[m=lT^U%1Aruz{Ytpi[gfO;z.U|N+pgumDbTOBhH=Fpi?.|>;&~e}tj&3uD,OXRX+KMNCVaO3canw0>$M)rtbI/ElwS^XhXcP1FD=LoSAIDX3tut)0CO/?|j3=j=P/I.3w:!l=7[/9cRzR:=`1_@ZaJk~hH6p=dsiMsbzn)|myn;t|h3@1nWo(@rz`]G@E,.4Yaci>?hu0W!Rh[QNEi[Ibk@hwk[OUH2!|Uwlu^`=XR5o8;B=9g|hh.F;Z=%U(HbgmO5,CX=%+k)Y*0pu"N[*Tg+k0E2g<&N0GMfu_7D<{3Z;,xh8a+`qvaD#NUNI>v[v)cb;8w?T!xZ/(jfm0*G"h0FiVmN`pRXDw!@Z2L?*BfCVRaFgD!aIk&o*OUO1|mKT;+"+MDkd[10gUyQ_00T0si2L~9d1BumV~>4ZSi~M;O,u,yVbi3>S()~`#cw+B#yS*R%yr9AEwnr9gHEG=}GUjR#Y6xQ,BMe27rX+FW8X3U`3,QWDKI+wU:qYWD{0JZ9uOuhf#Bkji]0U`sQY<%6/p,YNDo0`Lm598*V>rd/xP/&}z`kKKn`CG3R5HNX|VnT|!aHt&|Gt%qzp:Q>{C*xcWcxVBZH(mL.rK3Fq(}LaV/!3V/9:vu{Fok9L5r|)qO@(1,CD2goCgD61tioCWhMW#+!s>)&iu[if[#n+`(3X`/52n8ak@g|@W&D4GJh[S;wER#*`zinojkY$]g[#_i{LKOyYffI|eGHGR!_MT4w.8t5RGKw]DY=#W67p#)a6SptrC6L_KwOi|U&+rVqvTa0wYA:+9K$ju[[.3IJYDTCYO:{0Ln51{C(`Zc51{Ckua@oIJ7$ps/?!KX@//;B&OJiQ7Xeo455v.@HXfXrbKX5!sSh`H1N{Yhs~/^}oMx/mhbNo9b!|oT7Xy>oP:Xio)C}vX]|)|XFpdSWKUHgj"%u=x@RNI1BOnl$zX!$2Uu")XF/83=9L.DWcbv+)U]5RGK[faM9PbRNuEbuukb*GN?T=d>U3J_GwmapP}nDYg{0a._#r?o2g82)MIhj,oCmp!0/O$+t,zGNS0)W$qr3N4Q.D*gri~LfftF%zM?L{jZ8+wEtrg`ZUC^Ua]wV*[r*ZV=$MSb(BY2mOGZjdbOi|8Wm*O/s<~e=rb^A^d.Z*93CfClzd0g$:D:t*|yFX8c71=8tD?Fq[,W*xNg0W.LT}5CDgG6;0Af#P|h:[;uYpHffjE:Xm.)CrjJfOyPwi>xBvRTLilo!Q1xQ0F6V!T%U%sQHQ`GV#4}/B$)0MS6)+,Zp#PanY]H|75JZ{O=Ay;@:1}qJ2wI/TM,C#.BD}3&1A;#PW%l8p8^=*#*Dw*Weo})R,fR,U%vJSJf.ZKbP8NlzSu2cz[>^qf8GL`>3cxCzZ"%K.=LXCOpE9$PnDFT0!|:H$4GU8d)}qW?:D|/2h3&t8tdU)a$+C2KVnhsy~radD#Fc/+}DkTkJ+V]:B4k=e40zPcc1MIe1t(;$pue,DgPYcz@@hU5ezLEMNwtT(GHQ}+3qQ3d!B]Ijgw|N{&Gl6E@~G.o|dnL5:qqH~T(BR8^Vj9+^i*W:Z9u%tz#MgAh%z_Nn.ALKlJB=i)r!{6m#{##*I!X?iIfjBbF1VT6o;QsJ2txj7ru)1.F4Y]iM~xgekm;Oc2$UGYD&uI*%/N2^Oc[h%JggWU+UWs/.WX!oBL]PnYTA&^j$*n/Qr#xBsIcntAo1>>$T`zQymO7=_!i|OzO3HX&KOqOIt/DFKWS?LxzkZlMb,9iNRI<);wP5rCVQh4tM(T*z&R`d8X=Ps}3X27W/n+]8VI/&?H66ZFr+X&$L10lIatjxYu33+pT,TqhwsJu+1H;K%"c"V^O"~QE2A^zBg/dcvO#L3g4/dLqYNmf5*%%+~X&@ERy#BJ[vgS>y"Xx8YKj7O1*nxB=L"vqJ]I>4O:wg0w8SG$z9i/+4MGAlB6TRitU,)x4!Rg}/X;4d_b^6NbfrQ8BrsiHeF]5KuxGz^o|^.Fj?(O=S%"?Co(bupRkC4NE:^vTvRWtR0%vC5q!54;^R@XN]CvqdUbaw|$I9ZCe9FW,dfxrw0P!Au*w_z]o(4iG]h!V;;DK94|HjO~;D3NF"3OP6!bu,:ATphCf7av"~l$YI+X@Rp1`g,G$SB8@InAwANCTBZraM.E)K0k]Q4tpR3>&fGEl%DzRH#bI8@Wp!K|j&kvYB[1p0fdjw`Ml@ZWSL0!GNSNN!uLmDj)l50#wiC18_q{4tYu%/nlpt>lZHw4up/M.y=E[}oP:lwKr|FO$}%h<;P0Cj2C2,XrXOS6zIE[b8j$l4>8:glu={[zdm!2*qK|d[ap={[fZuL5vIE3l>MCB&8xb1NcjiM>6tFZEnn}MIn(s~e8Z{#A!eT2V_4{=Tf>f1m){RZ3I9I>4)k5SF08tPqpHa^3tcj%8j,oPsG"!ai$VpH[=J`eLl3^+`Jg>O=8"H1;S`fq9R#6E;rZrT^ihi5"2%#a:^aaW`b>UC)7V+1G2qP@x7`WJS}!c{ovjSTCIBMEYe0x|Zb`?kDT:GXwOBa:P:+n#D7I6/^(f0j;|Qar4AwUzYcG^TcJ,{G;K@JCe{=Bo{lar_pB|lXo>Tsq(|7fVJ{t$$Y*cr=I]|Yq[J_z!53o|x)Ge7OPMa`AE[ZVwftM[K&Y&nH&R{i*K>X|l_uIeL8(G>[;rBz_0S,zc*fn`Ibh5|K)u}0+r>h32g{Nk"P"lQ8Lv%keki|Ox^4nUq(qKB/g:1c>I_(7J=ib;bD){t@Lg(pHfPhu8D7{)+86M/:[WVtJDiA1Id7`J[A@PSy~FEs+0p=:F(^fzuUo{_W{/@MADJdeJ@pj7!w?YhIZx6I6nKx^1FuX&kI8@Vw#bc!bbo{Z>}Jk+^>xA%Rz@Oc,$L>nh_yUcHaaMiB8Jxt%EOHwXDC8_!NqauH6wZ#XFPMeXe.3jl@Fo[8$,0IG[*$*,wB$:c2}Pj{z}h)E8?Y!tc|&7a)J?}d46(^hxPMg(93c44v88TC8WEx#4HX{dD=r7aef:97zN0/Fq8S1dMUWf`=N8@y3DCDwpk^(VnoN$.6Dd8tICmKqrWDXm2KCC=G8P_VEQ{t"V)_2jzY)R]|X/grcZ7yBqvPx#F$X"S`dj91G^x{]V8emMyMX~d5#pnK!@T%pz)uMf5A$J,(3@$+n%ykyv^(Va`[{H!y?SvX]?R>Y&Ya0+:qeLk~Pg*ZO@GzOg*^hdy)DkW|=$b*pHuGEVzEvX&iVSDUGK+|XGp(Lr;@Oy8X=k8_GR7`Jmf[eY"6&O)ysL>5(6b:/bJC7&IAj,a^P:O]BSrfh{ZV]k#["~bqmHJo9bTVn>!#J.!~lR$,hF}qNPaTZc^yS~`?`<+x8f4n&O:A!jhIj@YUP0s*+d!jkP,.R|R9YLDm`}P|.aTdkAaHeDFJZT%}<|eEq>0fP+WI+oNlZcnAWlN3C#q&dq%WE#Ld#E01/"h5Zdqu52/"h"+S"uszN1Z}tyN(t3%X2|L,/u{gSnEQha`tYKrH`^N,K:W#oqX;b}fyV}DDDWA2H3=i5s}QC6t(uPT!X>/`xhiYP2Dz4G=Vn.]!CSc_0.fpBNS,LR]biO!9:s.Ia9mTZQ.gH11gGRbEibl$bRw`Z{H`PabmL=m/Gm,IfJ2D,dTXuL7%KCJ_C&MX,@)Mu^oBS$:Z5~)s4)kB_4/CU_is!),}RCX2N3iN/k9H%.qOq`9t|U+I80mb3yJ,)s)h=J.%!PJT+MZNp>Lq1jsDMxv0,cdscUxg|!RQ#$0()*i23>Ep]YXcTSeguLU+HDd#]d8MZhkN,7yWp8MyF%FtVE~oix?IX_a|[oGFMX53{&s/BA[BljfPB?"Y4Pc"1OUUNN(kI945zBxY,ApFxVf.U=yT~xF"YV}O+wF&qOOBuWgoC3+0Ky!7)v8UQKN/).~YNS+0z5]yf#6m&*aAE"Q>AkcupKb~1x1+F2=wlg8z[5OnTn{GF81CNGgcA[V;_TVl|hh/K8(AIAvWXLFKC)uvct,xsqzaGfPlP!&1phhZ}P(;>wKhzGPH%EaG{Jx5UA>;d~cQ07GtT4fO3qKq8*F4W!Xz>w^%(t7Geq";bd=Dly|h.HH#ial9%is61ZchnOqXv%mYH@9Hl5_B>k4&uclP930|q:/ou=Iw6LGQX7@bI`9lukUkFRm`M)?%gRG`sCPUKb?1M_.,$:M(^9ibBdnYuSi9rHP%WkDjG34b3>8DTMbK4Tr)m#wgso{u`fe*?*Y/]eh<#?2F)[p>Fa(C6rb"TmDFqe8(3h%@tJg5F!Xx>]Vc.2=@S!gTFAT{<4K0^xk^1P*5A#2eDa;ez,58g84kwrQ]=WUnw:vc^o5i)*C8aEtq?FWv@#=DU?FidM2h{7xRH%;&mxZGq*{P?wlguY02eQMhv.BMN.BuHhYeOg5Y0a1]tS5Y!JH)ECz>uxA{k5O$)E90zJvbOu25!zvKYcbp*):~9q*L*1PpBi!WK*)3p.H}/"45(?|Of[ZZa@Ndnzc8kWR:h23?hL1{P(UhM1WknqqUKoGW9bHa&jDXv@yqOs,bw5D73%Y"o*ZD(mhbh2Rj`(dnrtM#xSOnf+:|61P5d|us#,HQ5>?H*$Z[X31m`Ya9H4[+`j:[CP{qkoQ7nReXhJ}i&>nt=~4ljjX}Mvw9|@O8k`j/DP|PmSRVvPBJYUE#/=/n_KU;YmA!2h@YC00"My/JlbOhH.4pLum#;[p9~JWN6a1:f7#xJ4MRc]]&O[%2vL,t=}*PeY*{SK(ikSt{O7!{3T{ak&1d7kUe/JMK,|(W3Tbm$.[ONEBb"4&o|E#_MTl2mL/JG%vR+P9QO/R[t,j.0{JZg7=o48I^@HS6s,SvcevZO@.J:^F5tNgx;dvg&Iq0bF+*h),Z]l2t[_uv$wsDf0X#8WOQ$>NhBIgkCx+IH6I9K+@g#;!raL6$y2W}Q@ds8AG*MPg!g!mTLN5N^5;OENZC0T,KCO?A#ZQ&@!6=ffTnHH3)@tap7&I~NPT_d!1M.o1ueY[&Em$E7G%/g*I4j,{qT+DX}/c&vU{Y)`Jq)=_mCuHIHKdHeiez9"}>VX_jY;Y^ec@$IIn=V@Nl#OW6a_C&9bDpLhw{rGeS6(n0D2gXxtPn*PLT(^d@Q#/)$u@m_M0L1c9XF,rZd,0x#DDBD:2rF&or4:/bvbQHw&q!?zq&0b5(ZN)2)YFiq}!F[>vxiskv`Bxp^m_S.rq;"PbM/#n(&*Sw5e8$wP[,J/P,.Ad@~up8QRdL4W.m/J[PKIuUT*x~q5;:F1."&"&K{QZuoswA}.Q$}frs=#|&}ln}SkjYCW=t[tSM3=8x$sQTE{l6(25POV2cXN3x.QW!L.P!BBIutPGZ]yI{r!cLHNdd@u[0N8Xx"Q#S_D%Bu%_0A*h*hM:27,8P48_<{r0}Mx|H+0Sf|Q,Kg?m84^/6SpD{n3:YhW#QB1&[6$i6(`l:3%>1jlM2/kK9z,ABmw)nmpI;y$|vOR!Y3nu83=jH*EkY2AFq@+,9m$]6#SQ5mhDHZz0zs,>Sk4{Q7;V.{?kZ~WE4&hL=#&VQ0^ykI=&~l:2U!&;W]sY=F>"J1p7)$Il)m94OY*wg!C3^[R~Sw`l=YE8rgsv+u#zn{?ZRkqFf$rgsNhL`d=Hukw(pyzqS6X"fx8fH{dkHVltwoQKX^+WD&b#Q.rqT0.T}5k`prDEDPB6~@k4j7Yj:h5)Q@x75i{?[z1Zn)0iDl]cl:B=c&wcWj#S~u%TQBOKN3GpdE#q9ip1Fp4=3,WPko;ok23zZ>rF4;/^IOm+G5BIXb!!ioEPddL4T`J[C/`8XaX6eO:S$/F|cOhNS,vKYf>@Q(]S+x,;GSPYQNGRP}|g&v1uGw"8P1(:hQ8Jr98Yt98U]g(cnknK9t)Thp7wdbSAC{i/@jZ&@6o+uPTA1ZR7)TEkM{"%c?,e}Vy]eA_X)!u>U+!ABjZ=#N3C=1[PMak&CTNy#5C5mh=@u:x?@!IdpPe1.kk4$M3;i"S$lWGbQh]vZp*r/eYmC{POK1x~0=(UPXxsm#Oi|[A!%c7=o9$j4sRYt0fI+x2Rv1)PB:G!8t|.GNCseMi:%IiPSO@aFhE[emXabvR4dMiaR11/M"z580/xu2xD&p:H)1DG%=??$ehM.qX?rvEyNm:cADXz{rdOCo+7e^`e>`99!_i`m76;I_kwWjK{um`sFNTDdHB%uIfOJMyE^%Rw9Q*bE?tcV`#)}Hj7:;3s^FZdLzRJL,rlB#q|<)37oQ`(7y`5$BD)1quYwb5gV]x7dmqAr.2N`BuGMt{XHT52qWh{Yb1spoe4a%9x}c&Wh}qCZNO(Fm)V3>o``xbJA$$$QZBN`3[=[HK2(LtsSC{JhDj:eMmBt:LRPXbmU}qwvrFh^SlR.lW]PG9kc_hT>4LxX36K,i2vDjWL2u&#@/i#@"mNykQ^{=W4LMP/7>b_DW`=00tyz~V}xpO9q)1r)<6#omzm)NM8MTN~E`Pnbe,]YsO7?KZ9WEEhM9%tPaO/E>v#]z`t(p+#_F=hppG]ICdBbo(&J{1@PXNkD&/<`+*,$tXXabcZ16OBi`U]&B|%1(bPc{q4kL>|w;XFmnM0u1YBC*0P)8iOsc0[U$]QRq6z2F=h)ed~N9UL<0DlmLRtv;j>dgX$1*gx,cIhC{AT1*LK<38M(~FC7Hiar[u3RQl40|Ns;kurMIjr$EgcNU62I.U:Q)p.^cFLp3c8(10!|u_~|VQM8uaeW7B([K?=:_yNKByM)+*9nMw[2i+!*9n8s*`HmbgeBQRIaUBTVe8D>AmHW+@uLD=sW3T5lQ8>i/CW^Ax{8#e`2[yBI+!6tVk)pU`aKXh.$hM$:#%y@SF?}VtgBR@r{KH4WRQ!HJ[&TZ%(I)X1yCI+!j)zq8|bnaX}PC7Te5Dq^6#4V1%I9+;,X:3JO&XE+9nrj$Em^3h|o9pG4h4.Eai|`^~m>$Ya!rf6Yf&F*H!@Vyq$5=y,(>c0wHrG0;"K7PmjnW7~ou`xWbb7yvcU"9ik$V8mVG;7YM%#`?%;H>f|f!g26"G%O6$8qeyAj_tmdGe@s@vsUE,=_7}w8(F#,)R6PnV@jBi=*(zAme:7y~p{D#L6UPzE*}V^Xjq0f%|;CEY,5Zkv!@(h(VF*@@+aQae+C_Q1IG!p+b91)dcSz2485e1X;ri3EF=xxo,efS%@|8F~^~AN7j~7`DM>"Lf}n*u6G=aR~]p(f]0/SABhDo`8F&.p6tiII6uzpcl.F(r"p}||09FpJfUpPjN/F7Q=ejBnB!GwPKX%q:^+,kI]a6&;>}oi!F`sFW.8yls;X2w,(>c,|")lB{^M@nPn.YV@Ud;2:^t245QH6^ZV4i4f:[~@bCGQS43JD7Of6XHm+,|cz<(zPIe5mCRg%:jKqlD#fr?T&9fNq_g:SIP7mU49^:]1B[$";&p[hLMj/,e#;VN=u+%swrXvrOXpv?o,9Gz%[oWgSV^#faKdz$kbfy>P/AM=a&Cs!H}b#L4dR"u$QJW1H%gsJ{n[[9*LaM,}MByB+VU{IZdgR/gt2+`HmuR>!sQ{RB2eh~EG6l7s%l6$ie/3S(35[A^iN+L=3NR~%hO4B_V,yVb,InM4BncPlIp[mc0t+kmMF*j|0;Sc.3h^6b_O|AD>|xO1QOF]4:XQhUfVK+c`JrLK3<,B.Hdr?]m&*WnLgG79IJL}F3sFd4Vp;t=1b()l#?//vPBO7)]>okXa8zh4R@ncqy==D}6v$gec674}NKE|g[,i#|J?v,izAs*]jlf%.f:4780@j?wHNubll?wof(GMWr,tY95>:_D+8,M}R"Lusnn(%9)AmHU%3`"Y[)IEaCCK?51v?SD^*A.*fixHtlo/nt(YC}$4Z(8)m<1*]5YL0PbBWSff/[w%I][zhsl$D>h1PLjw9r2OI88I@$%|67?(,gBP`}+i3N=.$jeRR>8}0Rk&GV0**HIf^Pkt)P]qqMrnF!#zsUq6Rxe%7^,QYlD}^,rZ97sNj:HqH2Uz1Q&J"FG1O+}Qy;SxPGZ|vVp%#zexg+qd:O)TC^lPDJ*SC^k);~O/NEtpyU`Xeo6{m87l1Rr1Ma)VcrZZbF1>$iDH/YA@XGErAHPc5n:L^cY&`RohQr+>y&dbu%Z#r}"u%j&Dz6x!}uy09+Q2v=GVYfAuqmlf|+57n.n.WDJqi.+K5/Y#Px0IEzJ7iRi3|qXe?nu9e8`5~QbrC=~2Wmb_.4u~r;o>YR,Sj],fr$MC*(P6m1kDsLD>jBZo*EK:W|7uh4;b^qvOi@)OJq[^YFxp/fJzz~xV2Q3mBZG>%|R=Yq0YiZO+n(B(t){+m};l.82g$*.w5[)N#kEdFD$1`EAf?O.>Gz["1>J,dZ1t!tS9.f85,JEuz/uT/`#lWn4B&8&w9*"N&~KqZpL$x2L`^EUGK`tsUn0]v~`:QCPJ+.4d1[u5G4w!7CJT4U[d!sm.6x`u3qelb=*)ypt}}#CpPV"?s%G)?4]R0]_:!+"cl>y1+Ar_8OZx9V~cpq3er$6_VX%f!]"<5OkvQaZ46X+"Wt4wYs%WZj7:uLx:xX(r]u+E!=|MQYe)4S,gR2S`+vvByO$FyXZf;;Dg(5v+*kT!DDCM/OPp^ER8TDtt0(vKRP(N[,Vk+[IS9et.GhAoFcYNT/%RP<<[!~Oc`M6!V>a+v4ICp!.2q3,n&B;xABf7p`Ge]msKVddvR0pSKH^|]bfiMG!vM7e:OTf8a+}yc|ktMDo*w:@ks2x^csbc/?"zLoNX=dM`4vsuvm,^tPy1E1Ey^jq/ZCX2[@fgAUO6H9$D2UEYgc|/g:`zl).`wvA0BlD!*7tk2n@wE>{G1R$s}[:G&~j_Mcr1uom~z#}nqL#("B&i=jY5=@m]v*yTuEFKl$D7QQ4+o;#?epf5scg9^R{`^db9gB20W`+1kwan$GP;7q9Vp9a?@7F&&0k8uL&h!le;3Y`Y)8;5!it9N2[|$?ZO0$7bU!Ql(4S6pGP#bxZj4.Q9_c6bmB&*fz;o:8[zT7pfd8WP7gs70P_y=6Ye+tTx+1zXDnH|%>QIOrrWq`,XcjqH88:;BO)`MGz6Tsrnqj0oLKy}:Czh{6ovE#nFLX??d`Zgf^8eP,{J|F.oJ:`l/%P}BfYVp/@b<~<@5*EGnUV0bdw]R>hTQF#]7mOouN4NMIvYO6A]E,]|UN]".QIios;I{whC@cWO~eN/+W60r/VD^ajs#2y%*4Tza9=}jnvD)Un$S)f"M!bL+po/2EN$qFm"XQRpDRlv]vVB.@uME4pO3$v@&coz?4~[n"a0!v0%/.yAwj4xmkDS$Z."IHY][fL*nt_R@~+N6v6ej=UhCiyM`Ad5YJVjph16[Tnj1JMA8%C6gBn`hMWUkKr&zJ4GhDbo)A/?sQtY|["NP|N:+o(d~LwT`IR|U?V|XuL*n#$6{|;J?#&s},/gXQ(]r`ijTSf(i`?R*(ci`HqDs:9G3ZC&P3dFL2[X#c61gsO.A_(pkm0:xM0|s9Y#=SBj:wGO9s{$C$6+";).OrkzHB^]QMk,*I7_a$H,n.SEVK^v{[El1n$HpS_0#BmzR+).TL/B.k1sca6}V)uWJ6/+3(H_rJg8IYl+M)vdAPJPk^v{zm}9%@W{/34Np=Q6#=&sT%+q#e4v{(u_M:^/9(FODG4ir;r{j9rpxu!VmD]vt`mHiS$1*^ae*3B5uL[zX{TnQ$Y/0U:Y!vD^{ha>!rB^D5J,zGiLY1cI2KOF^&M0s7C01P)*%l[;}ji:Im6e5Wn8G?THP#](#~//rDtB(o|j45_j+SnZWUvx}KRKaJ9yFXR;9Ioi+"*T``g$#JXxj~+kS87{{RY3W0Su!RKd&T04w7j;H0Y}h^"AmHLSl5y###%hT`Z^{dNK;Uol9~M[mL,X,GgV1fJrI6o<9Xi$*chrn"oN3lN]I^O>tGBTm$4LJEiCwdpbC1#mj/`Otb${iIq%:A1E(D5Tv1PZ[)hCh.4*O46+t+ccm}m@KTOiK!yzD~M5oO:b$QWFIIWPF2SLC_NixKrTP.(jrZIPg}F;^.ODk3%.d)Z#Slf}o1w|+JYMaWDRPMSf_~d"L97lM(2?9/n|DF2`5Qj)R`7.=W*p]d0;tsa_Js3v{l]W]*wTRXGzXplSI(zR6!YSRsBYh#M>D#SbR,o252MX@UI8F4(+b5e,U=H8I!i@PMWf,PImF(R=1)XxpbfYPc8K%y:@"byOCLUhm"k]T!uGRt|2ii#[P=V8VX[=G]u*L7~?+ut3f:3798KYv:lL:C,TUF4^w`u*YAzzj25<(%*ne+)JYdt]DwZ{P8,MOP((Dw{{GE`KiWVvX6kon|;V$lt1iD_#.![XpsqUpl1k(r==Sy7DjOAiR{TH0Y6GlK94*+K!=hT7r1aYZXIsKO[emP$?WITfoYg^8|`p+c86r;yD]Z!z?H^.pu5=.Kb2&Rq<[jF4K.yUEe!qNbC+lPn0j}XO5db?fKl_0apclE@zyEinPROE{nQ+oiasnF:jE6;LW"U;J!/8.%Ite]e}!%k7h8VVjp.7^?gng1Wz7A.Uz}9EUp|j??u]BbHTOaanE[4M:so^DUH5guWbe,QD[aw:kT3z+!U!5tZFi?:QT8*0I^O(SC|m)]j>^m=dNW}n~@R%$chkY!=@3!o9q(FYtJ85=;(rR$IMJ!kXDbNlw`>k0b!pm*F`|)NL3vL^e4@;9Sl~M3fOMeBt0ZuHiUdx+aZHfLl+H"^zDlkr#%%nm/c6l:%7A+%rU*elLUDvBTnTFaC~GrZQ6aUtX0iiTD"ix)LIO66x4in8%LoR?m72t6&}FEo8eJJGmnT$1M?qK/lf=qpN2l=eT)JC0;K%hbf,B)!3.a#7D9c~)^tsHgP071["a#+99%~FG7n&neV}]60fyltYc(OtLg!k`~[bioWh?OIMdlwz9~gV/Fw=%p^s?}DLalC_`%@`^E+`5;U4{+R3e^^GL|J>_iUlF,8XfPJ}16Myp%J81&9}CT8APM?=[RWkHwh#{(lYm(W>d>l3ZT&dC;PRpqBl},#e9ntiUpV~Wyu&]3p"d"ORZ=wT@:W39&8+WB0<&8Ur$(nF?Hw>?;{>w1P37q4_z498Kw<3N6QhN(Yamwc;Bl;sjY&[^duon}GS.oP}]:"|_bXz.]./6itMdH#@oKVmZe3%3cSOC@JA~N2mj*PSY!C.q~na8($<%xlmnX+"usy&=R7O,JT|KEjL8XD.QLm;.~Cv[h#w:ntzzcqn$}!7~:jcLy{Cq/OJZ&pz5h.Pj{BRcwpWIU#BQ.@d%SCZv9@OI[a;e4U6lEhqH`{FW"1_Oo3q!l_|~P(]!LydLLSWy7E~#E22%uW2SGrAja[~i#n/t*$HUy4;`d)4lr8>P"UWHTi2t$=Cjt1"dQ6}EkiaM(ia3]t2]rXg=$R#5?"EQ4"Lad0IM:l}D&Ealjeb{(EbY*gy~0@&?a^r+4v>Bp{88<|f70WSTz{*6!~xS5.6EEib?%a|i$@V:gNWs|}(lvB[(8AT5IhTRiJ1.XH4},wDW>L)5=:(9[G/M)eh8sax&_x,1G3ifaV$XCAbf2,3e2{tG@.F(t@:B/v}3X/<=T^TqusX#NPq#N){aX?K!DimC8K#!Z"cKB4g/J@2iYmwo80[z3HVQqBCdNP?Qp!p$TDw{a5]8Bp4gGR5=^cN/d"wFzp@sz4{F=vCY<^g5gMq=q[U;Bt)IZ$(26M5y(#^RPIXr=1DuCIG:Ug?w0FSYfK;sQ:hGo@%Se,KUCQufBD#Vl<.>3,JD3TGciyzc}QN_3G)PD$01TLPty~(vqK=`9D;Ia`yMe4FY{sE}Y=kU)aGtC~P7g5{}jDHYlIP`eo0d=e>i$!/$b+3@*1+MEehwu|,[Be.yKxTBSQ1E9gAe|TeWy;N=]~.gM};xr#}JpP;GYOg$fOjtb<8(OU5_HSR5?TAJKD/Ti&EmIYD)r7eNA".LvnZu*!G(x2=|CBjtp@Lc|D=XIWh2rqGRJs^uH3)5,m*V*jPlFEm3D/aB!@P_QrC&!&@a{jPKigQ}"C8F=o2p1Qi1`m+g&RGl4J^5;r.0QiuwYB~I/OWfnNFGF@pi!yC>K~x3)|?e?Q@b5$aUw2=dlvt7(nL"S=(9?.+Bk)gAp"64hZ2S>9BH%4l0vFSTWxm]K(;ApoGqzFg6S02VDJ`ku214g9(L)tLdQ/Xc0,$]ba}M_`(`{X%7}5~8#2On7`MrV5f=*QE&p[&oMaNCB+9.)Yz6,Oy%D]k|/a1Bp?%fpiycby}42.tjq9,D^PX;b%pLdW?o$IkITTCm6Ivb4K(rSTn~5HbLY1|bFf{n+l=AG*LZOd(jQ0IM;}2#!B:4AdQUR/b2G$^(pK}~HL$bJ4Uq"eLUM1QV7Vc!YjV}vWt@T|(~8nTz6BUvt9]Qo2,fd#_aD]/2uT_ZzX2D@CZaCC_31W=~(}6|w?ZJ6l#cY&mFYjbJFLM=nUIcPEexCL3O5P$.S5"![MGxL4@iE+ayZe.hx8t`fj6Y|qkG/Vi<`b(s17N>vdE/s%Hq]T_3~tJohvvriX0ocYoR~~`+8rht{sCAt4?0$WZw(nIA0j!TM}0:Y?}rV.t:6IWAU1IM|`eZ_!c$FK:C/BGaCCM"yFzMp!%SVGWq7,@Rgbgg,&:9$g&:oqlOSO;D*2jPXz&L[Mr0%LLB{muffy)uXZr`9"[>2>OUSrc#;sOQ:~&(st?.=/y^iZrK~W9G%9$C14*I~RSoVyCk|X/9@ujrgT;UaI))TEj6.S4?^v5gt;Gn&T!hwAS(w)IY>&JfcV1,.0y3}d9f3/6&[@^8.=gZ<,|~iHnEk:{UD6`op:1pt|+__W^{9r3T/S*3Gf:~k,W:$v^cDX;?D,=F}l!sly(Xs3F#aD${qIeaUW!VR46iA&8$3BI(_^~W3whOtJ~l()g4s%sxXqOFo(HClbcBVD]TJ*.?W23%a,|BWZ#H4K1Dh|/fNw>3xl!>bCPU;g:Oeyka>!hiQy@gNi[AFzG@Rsw%{P~y/8`O^KR1e=Xhvp1^`)D`k"0B#VXJ`a=:D?{0,"H>l+])Q;n7[N:#xNea^RI)^(!Vhq8A1s_P{Bmd,c8~>cW5k0FW^FJ8q+itd6Rp#L[e5(m<4ZBZGy23!T0>C8DlBUIZCo8Nu{R1#ojD9~k)ma5_f#Q,3b)?myt{J^v,5h/|4{{svPJA}w|UbWt7CTT1kt|"@r=3hCmt&Z%vh1Gn"Sx4qw##uM){?Ex0vK/Bpo]lgyG4R0b8Qf(WXOA|IPj5daQk/mi~5&."oSMC6dZlFq=}y;9$m$z7G"LkLEM:Z&{w3QaI%|S37+cn+I^Q5g^+!S;b9x$|>E=EUv=TT/%h:6P9B^;R0C]tX&/qe]xoMh7ZDsbB38^vb]g:I$r~B&tIsiy^l3OOd_jpIO9*xBuUxK5vmgY@*;Kzl(m?6m}_!qq>c4[n?jT]uTbXAcaxcY),{2S:|%G8Av$N&Yn!3r)>:RY?EbZjJ4fkdMkCZ?Jbj3R4^>Uv.^>o0Dt!8*9bkphVp&mx3~kmULYjI/J_N21W)^sq64jYCH2JJX3li&UnIfm)Umv7n(#Dt%3RK^j8=i9gJwW$umK2uJ`(aqgIQt6FMy#ZpV:hY,qFoG`EA;3vR^C0EEtCCme&J{AsxX%C;rKQ7"e1`nm/SJbmKv6JQu&F&Q/DR2878iN8`#bdVShTpRAUu+UI*ow&1@Dhy>.(tfUZo|9t5<6Z_#[Geu(=u961`6fZjW1>kGA81MPs/R[U[I5pKmgl,p^P{^"!y`sV5E{QAL||rC5cZe4LFsY@/B8TUt@h>S"cCqz3AvKM.a@nf4E^B_Jp;Svo!5s|OXMN|azWLb5O4HJQQ{u!H:F+V#)Gn$*U/an$$Fs%mRgEIT=5r6tt<;k*#u.4RA/tdZR?kPV~MdFqe,&9roh|+"+4T?@|rWE^}@C%sE&w)2Q/q9z&24!f&d4(pC&R)dwQ!sRef5;qJPO)QWe0][/GIO)V2B9h]5XfB{pVa)Be;MZ&p.PVPGgO8`mK!xp~gr5!M*:f6!5EAioQlLNhW]^k1F"D/:lS9!$w>ilB[WeJb0!+9M^|IiM%)lkI7%SBZc4dlDN3nKWx]W6]KP=%O}Xkmam!oAiSh}~4.^{BC4K5EcnQ">soDHAKZEiM<;f_#m94;N[D&)_($Slded`wPK*L:!sD^M!u0R=.i%u)j,z1AOizgq)*)S`3WRHUKs1"g8@EMov.DIZ>y){gk@XwY=`k)NPpP!NgEl8vtCwmG:p#5q!Gmx;~V*_q}zVE@3%#j+nu+BSa&aR81H,THX.bRWI5/80@$Q3OdPW_mC3~MX{CL5""C.VL|56MqSMIsR<`F;]}"S}MLoBNw!J@i8AvZ;5[(qSe_x"O*8UQ1BY{m#=C_QzC0DeB`oWf/3~san+0>J(++K]6/1fkh/pYGK[u_7Po=h#aC/SR_VMy0!IVpl5pneQO(rm%ZH.*Hn1F<8(b_r8w?[V1G@[Mxy=nLx!po5}KQX:@}Jhtfu}iM;UUBaW*L2fJ^,(=A"X*C]_+wjT3Vua+@Sf6{,?@2?56%;m*Ii4?rGU9Kw+>`E=}K28{(02]76zT#R>$A.xt9(u"ouhQmt`+vI<{r9lvX7)]R4rlRQ7/j>UIGw4J=N/*//)(Cl/*h4.k^0ga!m6*r1vbf[T2ws[8E4_p&1I#VxcgfTmo(tK?(=iF`$XJ.&1.BPA^UcB7,|.JUf$8R:4afw!"x.{R*_##F(_C,`nd=rlTBa1zA/t1VjavLeo!`Yy;vc@iCi{cmM;bY+KH?rp=VaQZP_H.!ED9t*t<5j&|WM=9vx,L[$3EK6!15?^|Z(ZLQwTKVJYh9/p8:9u.}`Zo}oza~4ur@xW#E?4jB8]oMbK^g;2VhiRCC.}Id_J<#%`g(kfpG&W2yjg;kl_mf]EA~`Lc|V@338G"AYhM_n^_*6XT/>B@.ma7#&VU/zf<`QyIQ{ik@j9DVE#F~t/Jq`e&PA3j@6#[f_}Ui1FVlN/@b*Be>o_K?3CFKqE:JZa~Xt3bbT"vXw(=e!;Yj2R?&VvgO7:,RyBBXH)J%!ikCYmJ;2p1k5j^HTgCy{VzL4eEKUnmH$H9spQI]"PGFJj!$(/geg<3rt};E0#E`mC`NF3{fvDH]8*RYFa;9jNnSb@jo@n^l:F19G0F}>2F[+TgdQXq]GUO&y4[Wy|~s!zQz76A9+p|dUOvULIdv@sBA{J_@;;/i~#um9<"e|BYTEq^(CxSj0muEh:YSw&?)`oHux.TJ~]%D8|$iS<^z[qRa0j=pA6>[)fHzjr6F}UI,bTc_#x4f;*9cCJ(vwbi`rej,A{PSz=B5*Xu5/jiZ/R3YQ5]L({i`WAni2*Jwdo#*("[,,+UubR=yt9u0Wni~`>UFucw+N(YRwgXC3e%tU|B$t^M/WnGs&|]&dHt=Xz9GZyfy}E2Y0,My?/f}HV$UUq4]/VQK2BA&WuxI.kmE0ex97lItDMyQf/1|.(~=M`c?QwS3!.t+[;YJ8+8i<8BR{&Ped"]q0u!2*qvqS@})QKJe%F)E*i`@4K&I5u<}vRBdVm)NUE|alrqMAa>rI/C|*#:khEGDw+[4h=v_SobSiw#t@3z@jL#/FojM#dRx@;eRqCb`Y%/|b&0Cjscvo>nuYmIK=FQVsr:.e51B,<]XHia~%"A}<|5Vy.S%Y~^2(*C)t.@<,O5JeggT^H>Po>%3`pTQE0$~yc5~AtqbifjvnkJ&%c9O*u4p8C,CQlAT=z%&%:^n:IU`]u6KEN({cWifZb$k3_Y_N8g|Rh.%{{kvv%4Jx4=;&xK=GCg(D(V5H;zt+N>sCj_*?y7CeZGn~Fu0Vb.YWEqN!#Jv90Gpo2jW1;:gE6;dF[ti0OjE@@9a>8?kb=VIRpG9ZT`Pe:=lr}[M83Q`3|)i1X&p7_Q98]%nR;o96?mQ|cbE$@]UN/.2#uXAfQ`^CT+gx#b[cgU+olGtpy;Lw%XZS7ZREnC?@2(}O~gM)s$o?m7`pH9VHS#PXtjCuv:|d*EYBvcCt*Nd4]aFb2Tx!#p:b9~9`I9+qlR[^=|Ld<3*W#f_`zs+fLQOo054&"AK[Ju$BW7e3.saOJ:NM1G.u:+"C)`f;$^@`Wp(#OI_`y=53L`w|&s@i;8u)`W8%+pCYSQpB&)*ho4T[/`=(;[{(6nP>;$j>J.)BVw}?>N$ZI9QM1ULk]O4J&P=(eLW,p~CrdgJ#R8]^YD&iLM:}jI)}#qPML.z5gh6g!nD^?*Wb2e2^Gz82`y:Rz965F>ScNcJ7kk`jfxRf*VpZncO7ZbH.ll|*tYn)]h<:yt$)yS8Q;,G*Q/_KlOPHS>MEC@!9b"Y,9m(w^(9e2d%|!I=#=hM?Vi2r1}@p$fv|"Fl=Twh:0)(`(imvt/IcQIcT=.~su4$,[v?yEA>QBj*5h]]BgHcVDOE@Agy>0ru9=&U!@D&Xn#bMH=ymw0(*1GPrTnJKV)"i"/4rQINKjq`ml&zWx!(+QP;erI+K6NIXED)p.^*yi]ix=!hq.F&+DVZC)eT{`yiI0W35mCBm.LZG"C[Lk]((y+~QvqPeT|qDdF`NFN~).OOy0r5O)O%dkbaa.2lGFQ"Hm"kL>EoQ5WY+x=_LbtMXwP`qU4y__][_x$A1d"lpD!Y{D!0M;`L+;D3vW60$Pxl_o,>F$~dyq:HuLN54_ta$lT=qcR27Cugc9Ci|Px5xe7FT6JA2Yv;|]NslwA%!mrTv!IEW[5A1D>ZjsHdfYSXLxVI)Y$Y^54z#e9w6eYu+(4WbZXu$=WH9i/yz@BVDzf2k^P4N{yJ*If|F]1$t91I^3Bod9n#|MI[B~zF0PwT>A&PqPiGlRN=nZ(eaU[ik!yJEQVaMKS2~AJ8%,)wipamv=0oh%eg0!_.7A";@BCDU{3YvHfeRZHyxW.s{Yl,9Lfhu3ESR`5{5inRti.O]xKi(sq(NeH;Ik!oQ|pb3jWR=5WA;Iw(qL#j]3TQY:d,QD!wEvP/YqN7WyB[NkjkD<,xP,CphpM_ZF^KZMHcO6%UoDT97c`^wrf(<,+ZAO6M8j(%/Plcm%*_Ubee,%/Cn!uce#ja!Rk%euDN,$)^J^hN!GFOmkpvFujfUW3}E_Q:rf9JL_ZzN7X81R}fH)<t.o#|Sk|OE"eeb@(>|N5WB3bPg:SH7vw^AD;(i+&[t2Glfv!t&{^7]2LkFNAf(xCM(Xe8:bPjz|;te%(L{(UdF!a^/C@JF|eJUoZ)b7#b8geXTq,&qAC|!U0s,8$p3QMI#&X!LAk$w!gjslCVks+]VBLIQN1C~zrq.l@$X|9wXJe9u$fT`Gi$4Hs)9ZbQgsMTZR,6Ac@NLEE#gg&%Io)5CYj"MPMpSLwDg~v@l4@[98kJgXuQv${SI83O%:~Z.l_LAV*De9R1P;t:x7SdFN269&oz:"RR00}wZ1q2ox0mRdL[L*;+G|9^C,Zk_Yd.]bGGXZyf*r7>kpr,7f+&}%X=K=cjeppp!MIPGl;cfH6i)tl;5rvS24HW0k0%x4!WZ"v*wVjpucrIZ<,mcz;+X?`}@8c,TH_fLw!~vD0"+aAQrJbVs.Rvt^GZ`@s9I]]pwtUu+zg^|dpwNoV38&FLqxFnNlN=_3O^Kc)8UA<&F"LM`D>~Y<>buHCTvZHm"Yy)fS=$2bB2H%4f|eU}UP+P3=^F)`Xgrv<0U85}K#p4/fbd+(@T$=;y%i1UK/7WI&7Ia1kvd_&aXHa*ffDfyi:"+"Z$%DST`mUhXz$}ap^rr7#87LCEm]WG|{9nY(ZU810d`j6{6zWsV1[7k.u!>ZU>UaO$O*l[K7e!J{;pVwpG{F34q0[}P*U"*t}]Lu;s7e$hsND,7U!2`9&6,m}u1W*3;ObFgq(ctoFRxR3%4J`~nC&$>%A7z8B)vhBIhJF+a;r&fWtxLf_xZ!W[5LO0iz)E+;9),iE@;&xzv01!V3Ubq88x@J_|aL(T*,aP<%p%MU2FyuigCA28#[:&1YN(W,HCT(=SY_/}/Cy>v1gSyXc3f!?j`>sUS&IK4;.YQW`=QOjzEx(b7g`BX4E8t3Dy&,0:QrVf)HIqf//1=NV5tUcUzIJDRz46f>fMIRs!XPQB[L9ixIjd`VbCg9y[=5Tr6/`LKlP:9kz7`C"(HBq~uCtGQNw?mpr7#>mFJ8a|w!CO~HPUHb$2pQU@^E,,AY@d#FO]C?ou2L6GQN7^kBVI3/m]4Lq1>V&5cm{{p[,mlpWnVK,$R)s[}{)+%nHG.MkR>SEi6y*adDedrlp&)H^t3Uj6RDH7SCtGBDsxi_)WnWjK}GS1XbsUkri[&T._8L7*>+/FByD3(;e[(ymg^OuY_=oiZh+T88]J.GxAEWsK1d>^DyuO7un)v_}=(DC=iJPxT(2ana?[ujEszd&y3utw5:(jHS${(gH~SPVdh<(KYZ8lqGy~Was64}MOU$lh^?PwG9nrx)$M./zsC,mO?$_Ce^cQZ@c$f)2^}qgyI+IaNJ[SYryJ<&&:AnRoB4R3iu&cfcK@c$9lWj:LM4c2vyF2yYsrLdfFzlkM7;Z``,K{x$>~tF$4_4wMvs~.8O2)NiG@*$>Jg(?J+RqL<,&("W{y|y*_8*w(=>VDfx}+j8[_u8$Y|nQ;!ni[BfAc$;k>Wv]Ewbc0}5:[EMJY<>G2McKhWO@cZ!)i<3g]y8}%s7~L5HW(8U`Kqx[[c2K@%r@z`L.H#,2C_];GON7>Wc`SDaU2:#*8/)wY7+NiLe}u:hrC:E%28GQ2xF!{^dha|s)T:DX~~|Lp?6CfIp^/}v_YWN`aG.y00!d>|^~lm2Y!JK6[TbJ5Ap..l5"f?tBB;h|[SBcl#G5lz==Vhkv]a3O9JA87wX.:]TrFWg@ozl83Tnlgd/4*}a+8}8C_(xW|*fSQO{gvE*|XeN"g:OEf21[Fw]|6v(($r@q/X/G1q_RH"0UA%wN5Nmpu}qZ`x`Mq&B1kywO4DWhJ_5gh3jLJ_q[z[NRH6nj|BhN%u0Wp_%{krh~!UTlj8C|N]_mKc}5zxgQD)X+uHC]vUO2qK]H>,N?u)a)XVDK<7i94V"I.&=2[m4Bvgn/%[dpuMKuKzT*6TY.bAIyENX~`6?*usfZL?Qc~lIs!Y5xChzG~xU(xC`Ami#:#9N>6ulR~oT&a0sRgp1`vxlVrdB9Ven|.H|r>Lw+j&E_$==,R*pVz1}e7$@fPj>:"a,?WORWh|ux|A!FeJX%h71f2@D2wiXmiUZ|(WI,X+4bLmS)P,`@tB$5:J<~V=H8PfQ_7k[E26B$DxHPO^r2d`ayBU.,jcg%T;t#Ds.ve;!vZje_6^@yq>a75.QD=C4{tOXstZFv.g}Em1nDo/YT`WraEVqzh5p5W;`^#XH;qpd3KMezcN^~R|AX?q.]7"|hQ+iEGAGf/X754lnxM4rEW&p)$wVcd?G,Gem~|1eQy${xN.fR.>J|}SDq|#;ZT]E3qXPS^&)^Qr4kc,+HB9ccFFVC2KkVXEc$Jc/t.X~U6~(9{WyeF]c_>|3G9wIxXA^OIH]]=SF(d9&/MLzf:0+kAY)4"o>UwQgQVg9+;]yXCD9z:HKAVKzw"9sN]z^{REAJdvbtB?_~ob,qyX&U053Pm$.qNIEZ8KBt26dZ~AIfX)5N;47VzZLCMe]R,n_CfqX1fV=]j9DLK%{+aRp,P1k5#HUN0|`3^8/U]~iMu"[nn"R51K=j`WdHo%XG[]I#.[K;#,#S^rI}~u+2fqYo{7X+E5XG(W~c}Y#r}=RHWTidO>tR;"iLIs:fpTr+3ZTLCf5jM5=+]ke}Q8np^$Vh{@9Xt)oY2d:MS70m6b7GB3%.?KeuviT)L]|gn1]Z3@#,}j>2Ude/_^z:@d`7h}Bg3kkXjY4S5+z<|K|)~Y?lu8h6uUa/haHk#RVntiGN;b?r5_q`l7`ohDI<;3hJQ,(BWSt#^G9LxGx2iQZ4+RWwzWVn`2rzVInUp;mX{9pjqh%t710I:vgB0NpO2UvJjwsnK~:jC:n_W92z:4^*!~:8H]dH1,w{t1sxkE4s@C+Vq2h/JBACKpJ!SC}R59<8Yp8&O$oBwd4xB@iWd[}bb~1wDzK0F}h@QzHe)L1|9n0hWq,{(!ll`&<8#fp4eKT(Z`1`p^k$hawfmv&5Y+_E6U=0u^IcUc8A$bU:*T*GlaL=PgMLq)G0].(|Yv~rSA[|J,W"N|k&Z!F.LWc78lif"15UI}a&asespB>h[m|=DOv`*Bc`L%2wYt0T_d/B/0&Bb]L}_#|F)qy;?nR/ArVl}ol47v,r^ip}GqC2ZtQ.Xdo:d$gGsInJex[bHR22Y0%qx0D^w|l3?hJsrCQd*]2n`u7N64S&V8N2x}rAl?.$v8h_HHL`H$=${U@N)~HXkV8SLjpCJM+Oom+0`8CaPkX9A4Ciuhb.s6/.%y(N|x^+SmjFv:+v7Hf=id*wpv/uhxw{`T`j_(25AHsSQL5[p(Iv4<:jb}lvxN%7^/yEUxO4xZ/%|x5F`k!Fa;4Og@(kt/Z*+WGg3NBQR!owj~<9H+EeDY/~je.POCZQU$GchCn}y~l2oAh`qeS,|9U|o1&xGzwcwf:tHvF[/Knr;[?>?!Vc26Kz&2#=GDtHLW_L<9B{SD93b||e>>mL,bjT1_Z>%HTm#fAE(b/QCi[t6p62_a}#Eu]tOJdv?mDmvx2x.lV5I.:R=T#l)((b"h8c{+jhIARO1&10o[ZTv>if8]a2*ljO0Tck]1pNRu6Iuia|LwJfWuTIT$LO3&:2]X8",!>};%*=aon*X6Yt=3/KFKf,Q*_*SbLa8VjlN=#U:wtbl}Ctoae@!#?du2=8N21ERu`k_>m>/QC1`_7}ZU.1U*5w0d)mtYym{TG!4d?ZP7L|S<#|S3+c91I5I0Vf{z7nXR7).zs/=)lb.ClMg2K]k]`=6n/{yM7j*U%IWw610u*1;4@:ZGEY11))M^@D`XOK^bY{Cm{U`JYIG)ZWD"x;(XgWQ$q)0s!j2$u!JKpfo=k9,Ru;,B,YiAgWT`JZvq}`]kB~~X">AaisS1/!q8?/ISivJc>;x^&N^H:4e.WK4ui4fR_Qxv.o*|S[+#TDZDnqB9I:Q*hs9{#5mV3t[BzL(~(U2%(]?e2k|yM/#_roP?}Qg@2e_AbaK%zz[Gf.GhQQ2+`{I~q_98m||8]ov(Ny6l7RQ3d/#8S[!jZB:Q8$SbLIFy9Qe0|v:v7jZo?bQ@@#;Kt!BK,aM$0B0,=%J.#b/zHP*I]nCN.ok7rOFNlcySNX9!Z)YT)P;LNEm`(O*qpd~j;#X_3>)Fs%OPnzoNP2.D+M)I`FTq9(r~;"DCUXJ.zhdTXk{LzgMV:^@kElB~)&c1K?aXTv3^OD[Zf$.PJ;F]g]y%:2O*gW}ut0LZX=WoRqF;U#e_hxmw/|bB>0V)iknl"P"Y[Fsy*f:L&*f5qUAD3UUy|Abmo@+lw"2/_0gYvm(W2[ExvhLmVkJ2}s&tj16=.T}L.=hps+)>3EgQI.QU7#2:H`eB_k^61$t/hDLCEW!sZb1A19=Lr81_UqcZEVhn=YVOrp@i%{}efQndcBZk/?r?j85S)6h:|Jy|JruMS!6v1WkvZTn]m#O{1h"6Y(O^,g;7.fx8Y);/DTYD.=nhmsX{Ki?Eym3Jjryx_j>p$@Lsm|(VBJtRVItc?*{xEvcuJ[Y=suPjok6@2S"pQC~@_KDNO?yW#s{x3OJno6&s0PfZpL@xeQhY%7Jz^.rYY+t+eS#krx04QqT&e1lY?P"jRFT3G%R^AFy~*Y(@JiF7Sprqn8v^c/CqJ+D~OrytiAm;krnH956aWJFuu|+}Z/TbZ6^uJ4);lSP}L@]ypq"Mx5^?i0Op^=AxF9.:?(O+K(~)&P.DF97AO_7Sv[HqJ,CL|Q0Y|g`]DfK$@v#e.k,w(;S`{|7EV3NVB,2SV%"TyO7[d_IBJ1/QuJbV/t3"0/`u3j<.aOW)(?@oPFJa^*~J%e3x:};4GJXCc`!BTR#1v]3I?{+1dsp=$$SM"`in:E4Y^ZW6Jl_&7dXgEMN7w7}N})P:kCckKCXN0`w{z%~o,bhYwBWgB~Tw1KKg}hQI.%!Y!.]ghx$/aI%!&|/?]4#qT@*!Zm+Z.tDI,wFr_JFfk!spjWfI@uN3p?=+dj_41zv9cs[M]EP)djvyrtYc`;I%^#}|8hT_7P!Be*[^M&Ko&9V5C>Ef$lJ_sG+J?jVvB[N}$miezXI!KY=8A]k|Azkgq=tB3P=S]Q[t,`DwNV*Aq5=3A^c]tL}x%aI$_F3JC^7>Op]w7gNOMbzu=oenb?{`eiAQIcLfzp&Nv0_ac89q|t]MN`M:+YqzkfXl{&r4sVj?)8^2%&REbN,h=75XmSrg$z9JcATqw[Lu|qhO&2TMOxHmP`9kk0Vhu@h|5411<$>hSP<WBu7RZ_En:jZQc!I7Ng1Qo[jEQYGO0SIe{)OQCmEtTe(,Psq)bF#(FG+%bN#LJq3%hN/k0{W.18hQ{*F}WtSD9z8=h0!0b{{8Fxs"$H8|ms|5nYq5zKG5vvnzifn67B4g?di<:%gtf&xNKp5!cqd:J}WVJCtM6Je&cQ:Z.NEjD|_X,u;Cu2MD%<8BKKA4I]{#;JXWC4PEbweF6$3]o[UfLx3OFHfffU2P^|vHB1$>d"?KR]LOVOPr2#Ylg}c:V]w_?%6nE1un%~:Lk8sd}6`Q/Il|)e?ZId_YDH~}fAJdc1|2ptaah.*7chi1bt*yI7*R#J>{{bj7E:eo;iApHIl*u}VrpVKwU?foSLE0=H[K6`IbF?&=hyX3wHa.NVE>}Z?P)pDx17ebNYxC4|=9JUczImSB{!g1QQ+:)*+I]2S.Kbw+V;88*@/XW4HQm,wgR^boUz)CTz%VxsL+e%zkidc|uY9pAq{!5XJLH}J#G#ZeEsgP#]ng)>+hK4g<}a9fmY^@L9Hx1tj.Li9H~ky[RbJihcTwojI76KIWLr.QB"B9H"Ge]~BY|%.)!nV6$^j/gbc9{$/aWAZ#m1QDPgy?K/QyY4?2~29/Z7v+RI"$2sHHdMzsG+sET~2+`5@vFiB9dW*Je(nK"[jJHJ_wi$u*lz_Jo}bWzn[3S,h=^k~?!)c2ywIG8J@O$8b5aDw|%gs,VPO`3+6I(v(VtI9Gv0grTgdZZu$pI/v[k_fb;pJ?NY>AJ[g~TP!,9M+4l0gPdPnEh;u3;1;W~zERa0~P>3j"7{N1?@?.U".sUic%UKLp.JZJ!WP^,R(^xdK.D[{nFVQy!f"TCw%;da/4O6rcg#0~I{s]]@6{F}20qz>Ttj">2/W_[Ak;>KYZi`+b5wEywiLr@hz8d(=o*%V?3?u7Q7:g!@d!vFvp#iV<#|ZE2@D>XFl`Rn#h55[l#0!G#6.C%w2,Fyqsf]Ztnzz/Od:0Zb{luN;SsdGt4m&TkOUzJ%].!R@UW&B*>%4fa5N/M^Co7yr9#K)6(O.;Q&^Ib1/eKg(C/Vf.arw5`ea[.6$StQGs+XXCjHbUBtDByG:W9#V5Uj#WY!jb85zC1O#m3K.rZJKnH!te@2C%NG$Q_*G:w:<+U8xj)M&m{L"X(vD~+%|wLGb,5MtEq[@Q[Fbg(EGZMo`E@<6+kdqjUp+^Y<1uedkqUFyP?3xnjH=wH7B0E3`6thf9l>Dq;IMP]qu1|xD?Ygk,qw(TH[oqF:`dLf{P_X1@#nl}c{=G+p64SE56!`35.,*_K}pBQQy28(yzbe.Dwd.{NimtMW!e:{#P1Q8=$cM]M895IOKyl5`^F$Sc37>zBzMW3rW4Q%RZ(=$Qyxnkj:S|!X%}1;7Jm7`9/1bQ9f2A"AF0[L`$aS+_rg+~MHFnFK55zSYs9!j_F2tr6.`6q4w5_[n!CU(mDYU[`J;l~r15d`?]`5AD_!QQ[3gHQ6l!4cNa9@Z|R/fw>Baoh[l{IP*)@&C>,6X:Xn2W/pf"~;(F;p2~MTBclq@(akd61!ID[tt>/fpylw(8o)]`o;{DQe3Lk(D72__*s._;Oue,4>xoUyVH=+jBI,$w4s7sm&Ai%@Sk^0[?1tI"4%TB@t1yJA4_Ht_soC?Gx)5Z8}6I;AkRYs9!:!y85DvmC?UP?75dZo|D?i^9D|Lvz|R,86j&4*ie.=dv[g4C0asZn0n+B#EV8]0mHXL6^A$#e)@@1L^+x(aqbhRcSAW[,ykfiAZj+T8bxvSV4A#~1FFH{>8bS0}?=_v3sj.18%?$)vkZNp|k8ei)I"eD/MR9ANZ}NWSHxir+uL;Q@_6f}pj5{,=t^ifhS763S|9$uC(d]9s%&c=s=Grxk~WZn1p~M(5*v7IuV/RegLA50|=^{Gd:a$o07PsGnoo63OPEb:y#o;I[YYu?2<|k]iRoeJ=g](X)ThSAPsm6uc<7C2JbHye~50dHm1v=WVdA5R?qK66[*2kiK{nf*]X*PDz.^wrCt,}0kgGl:x?{,85FT4SQPf[8a!_$e)FXi1k4S7GMu/r,H^xeebb1}H{nX7nd/l0deWg~[t||`L[/d^]|C;,fid,WCTwG|G,og|We3Ks^^3u(:Ml"D.ThC}`|,*X]sY$Y=&a&`dyLn/6SdH0xK8t}D4}/.N|C,RC[An.?g]J@f$BM5YLK9R`oFJ,5UI_I2Bg2(({K;VLcp3E#_+:r"!V886|h4Q"=&QkV9(8@^ROc{WQMI"Fg]o1A2fLg=x3N(>cN~+xEGupsz[.;Ejg?Dskuey1&pe+7bh0,CS,l;6v}$oUPk.3Q3%w`u;BH:GKESOKsA]h=Rv]QTS|vZ@)`JpZ#9251H(~ax!Cd>CZXT"c8,1/uBe1Mwsqec,9/zS(0gm7uN6X>8^0*$DCHA/7vvPodr7LjGB{%/iT`S*Qpnr^v9PKq83LXmDU7k~4(Ci^Y=M+p)u/LcrB0ZN?(b8uSOeh>tU|jpuQX^D;yx:$>~u#F?iMmwct,O")60Y12`;@M"peyV|$Fo,w&qBl#m16"[BuZrO).VE]Bd[18:E$y5j}k,[nukP?!r=;xx^s_HEmwKk3}%,OTqOFm7++MhX)Pq=_7XH8(^91L"gQ81>v3cD@$6K8FI:gm`=IH$S`q:u]TBgWXv1>jMOAdw!wDw`}I^&t;+,l9S5GhxJSITJs)Y[eeZyIJi!&KXfzodV%CTXa+&n`7;,w51&VV]<395;5_JWiIIUBeEke4Sg"`9~vx=BZFd3F7:;}/x&C]9ngLTOf@rlGDazS|Jp"r>^T}eGH}g")W;zERrxcUqPh{cP^JViHf"+"=RBd$lFzRW5Oy_1(1$N8K`ZU&_:LSQA?G$(5<4x7"#a6A<[0ia|GF1,K1*C}KiI`{0OQ9$zCo2PdiIT{_.UU[h/]txT5OB%ZltB!SWgU#WM`?3A9pKvfeBSE)7QySTlkIBuETyX>,c@("m9(%yr6f@~r*Z^0n?atLqhWa&*I@=*)XHSP{pI_X])vr64HQJvXKbe2z/}uFaD$Qk%G*w}L_r2W6rC_/7b}BjcgET75}e#wP{mz5i~L6cQ/v_$W7;(N{D&}rR#9(0{r$5Qwjdc1;LbUKa,OObc;dAXnw4EzTC;#KkOroVD@MF`8?yE`oe`_(eOMO<,f36KGYO&1p|&u{$*.Nnhn?Is~F#o~t0Ya`5P:g&,w*.*3T_tnF+i.F&6Cim[7E=G|})i@#{+)$H;Y5)Wmgp/CF2adB[c4`Q@^Nqv1q^Pj`TTvjL(yjfu[u[>KG`pj#GmUVOs7R!EEg|/W[CY9)FF(J!O$Z.n+(e%S]mJHkdrv~+u4Uirh$iWH/?zN2iG)bHX^e)iR9Ax}3BHX}k&9.pA"~VN~ieM%GTFp}@paXXi6w*Now_}wZ4RPj%RH}2$J%0}s}H5>cu:T}t1QV+;b909H9VGFBT+(!]p9!5I3wz$o6XU791z*p6)q;k]][cbigPyk@0Wk{~;wwJzB@X`4>?"Fa[b+R(6Qb#$2`]w|*e?hgS~(K`oHRI!/|LPppkGltk9|641.iP|u0!OI%q7ot4yo%t59,6SfYI36$X8{d#FCP4DKB++jHUU>kN$;5V[J;2xE_A_y5LH?)K!u*qYj07vDg!qBQfm6g=KUMG|ud4SE8;X:?2"A1/?MRZH]{^`v0||{0/+0*i`leT:3dhGrP=wzMpd1Y]SLI@46h*4rzMCf5~n7ak_Xx3l8m/ixa?"xdd],2x(:InHs"$COxte^EYvdwg*jn4=F=e#85b=F"jLv:n2rV:dDGDM#[l]RG_(|D/;RfDiBSGD~$L0a]dF2q6l2I;jdC&C,hz^aqF`9M4io@tL$hkB[,Hs5Qrn^`zEE_x*eXIPO=~jZ+G%yjTabEs=&u?p;~W8+_$ie;yDtI56+j6J]_G+|^R@O&8EN_pz+ORtbT9V%fp~KuV_p_{zt5;%Q+Di#Z=MoU7DqvkxPskxDg8Zmdo^#L&2)NWh/HZ}$McF^MpC`X&5G*l:C6uk}WK8OVH56.I(hjit`^rs)"[pqCySSJ12o3+I_.mB][*4xC4nBvjDpXb!)GqWr_Z9za]`H^B%n!l+x2zGtM`T2jFh/$(,tup.Q(tJcHN4{F$iOrd3)N:dfI;YzQM2<>SKQP3],`#Gj@>klz*3nAbS*0FAFn"oDwQ5+{6J&70.o^,Cw7Pid8gar"9)lscw.ZO!Bc$z{)T9s,+*#L&X,m?%CA2^u_#[Yz6Y|7p^|Qs3JjKjh{p#7MT}m(l/HehbnQ:jv.P:y0+InHW:7J"?TlJHtA?JZ6FqiPKDP3_PHA5@<^14zzX/INES~r2jqfvNgWpLXrJRh6vbH3^fKiLU}cbLNa%gz[^R,_2F+B_*MJm#Y#p~4.&[8J$aE/Le*F@]cQjG!h!5h4QD79V&*Iw=!"`J|JT5G!;Dc,+`hasA)F^S;2"k>Q~tLwC%ag?&NcLvUR]q~]iSilY}R+N+2QFQ28Is[Ng%p*1ccj5RdXzj,d&GsD6!FB4E5Om31qVinl#g.:*W!nC}B2WJ^YnXfeFpbzfle4nF",[f9q"KOg40d8gwb}Hn7fY)gmDY3}!K%!|fY17|yg8}Vr=Zm$>mIlQw6$+sRnU2[f6raa%~wFou@e8l2e~n^^vX[tJ%,M$?kkvwuc8b@g7uH#tv]0[B`?bcx$%Cf>9jnJ3W~Wo7DSvomVXUKK$RH$ETHu!!(#xr;*HPn9P#x41]bOCD9Y+bfdV~L:`>UwImRt,Nl}(MvY(gjn1)T?d`.`(x=Wm|?>`axc]Q=sQ`cCs*DR6~L`aGc*M$D5n0@EQ/2MWnpqnf_#J:9MW+QaWjcbyF=#/avuO_~/2DA,GM9$/z=p;0)QC9w)iQ*?f}~x_k.rNrcw6?K/:{&g4d:g`R}Iu@zkLK4;SWgw,HNWmQegNojo1jfzRQR:q/rv63s^f=LL,BOAq7S=F$t`@j.F)0k!B5Nxi)me({+&80>AgT^(H3E(QV(4LT}DzHs"F,tL5V:H{,O@W+fbd4);3@AZlHq2K?c~*[^gF2y@>16Abgb)1BI%lxg@iMj7V&7YVw:UEcKbwyoO1{_C;LWOo"{"jds0{DGd^.BH>DMUkxB,k!%X28oykG)K)v+^YwUwn{>*f>BuLEhngDIJ?vSzG+c4n4rQE~(4oBNaGkKHl+BSPe6[y8>62DZtMWTg/rTw,n.Z,w+6p;/vvv_:}PaM/N%2=@$RTohDBiC`NQ*)+W%s@{&_W}>=fbTzp={nB*{K0nM^xmaUeRczI)rq={=1qLYJjx7}{?Aa#lr`JQg;m:7Mt^[G^p;;tNHQNUG*tsioR(Y}zdTRgd[5u+ZwNN`]V(3_^O=GaLp,yNnh9{hD|KiIEI`2fuKEL0(ffs%gv|jR>Om8XF%hE<`,$r6ETr&RUID?twyXpW8ni@,sLQp#/{6;$3|LjO;s2CLf&o!?hr;8oIGsVBhee5W}>hW@_a0&Z{hp|$kSXS}dwO~}TJ/PwuIG"{gu1ZDx+?~9NskKc}lRHXKHvrc9#IU=~{b>0?MxI;1A1LcGf1!N"|S}sM4tsc|X>HLJ:,t*^4okm"!/laT3"1!05)lPP`Lox;yHa~R<=#OBXYb>$>4`YKk*T{WOC%cR{H?ZIQk!VW_mlia[6,(c0;vUsJ=iw@l(P"h:GYx~+,#5MU?1G%L_qwyp^+:c$*Czveb1nvUMOI1s.vSo!f=<^ciR|@Jp7dlJtLt1XC6+4G;.6T)|T.7Ru8fxIB<:8%[3#r?xB<%^sckVSxM&ul;diAe{+(k&MK!#UkKIpwE]qM[uT}0AV:2HJldI6CL[MO`Wxp_T/n>n87N[x^{[>eGW1.[7U9N5=k=Buzt}^2:0q,[d$`6*_j,T8vTJq;tL&$VNa&IMi8Vo8}$L*STpHIeD|(]Z*Sgq#&,;q2etZo?k!"Av+dY6V"TUm~BdY@2DO?!]JcLa{{dO%?z})|z*B86WbQ}fCc)!Xm23eS@r)ERDQ;b#I?13SmIoM0wbGKm>JUYPhD}C/"[8eqyd]Po`QUtyUo}g="|c!_ZfGiT@XV^M~]F59A+)!(OlhD1g3O>oW+xjnBPE$=:<=g1>>[=jZz@[sFI!vQ54Ej{Vr$wgCdBldo,5^Xvw`6#n53O_S#84%dT9Dg[^G<{Ik[VO[=U&%dB]6Q8qe.r0/1D@n*##1JOqYYtbjOpD4Jl[H]^9_W1wUB{Ph1fNa"Y?>,i+m>sfGOiP+&:qquynLR9!#4rUSU,ng%T8!4LI&ZP?/1F/BhHq%x,W@ci!I&TjyHH1xRVh,Ix0ZRA!M,0MBq|w={521P=;1q(Dihmd{*OADumH?lxi$3;T5IGr[+(ai2vqYqjI!hn]%=y^bk,PUZed#1S2X$#P/VvvhD,j%d@!]2(Ws/2>{M;{wX1sn)";v/17l91(n=PiBhHoLS%uvQfu~S{}z&[gH?=dK)nZ^&*[)r|vkkD!UcEl2tIo%7q"@R=xc1Rf)cef2uU}ld$((eI@7sYLGW]xjWzl*3|@,/[,fWgC2c[HS"ms+~EN&emw9]8i7Q>gJ8r_Lkd]x75HTZ,yhA,CL+xd^|p{qJ{2)FbLIGe&0)lwyny)"mBZGKgY8k]}PfMn0ICK)hfm4e.76rq(6Fg2y,Tt&2[RvV6Fh{79|G*8K%ewD0,q{xv[LM=;b&eA[%r@:@G=pdo9$$,I{S1IN+]KDqUBDS}2o_sRL7l;m1]?&@9_R_h3$>pv{}jazp{I8dg$%.*x%n;l]hZfA([=BH5V_t+#wT~Oq{PgSCO#]?c4c">d$a0?9J>85(XSIvAu.msTRU8uAJS:A@cjcx}9.iomp~n**xl#!nZ_E9cZAB?X5;MmTRP%O$p&$o_/[Llh=WSG=D7mp%tT!WYw1]ElqrM0gY&S29I^E!xVP.M=(WmEC.IjI~D>f^}[(J2okUm{Z#4f5@?Cg:+2`Y6q&?%;{vy`{G?F%>AS:_FaY#5`9O`Q;*ibbhc`j[s8|@&Q(%Qk~n@x|,19%,4}d[LIY8sjC`DgPlJAg[YQ4+mm4b|<}S$mf>"3KwTZi1Hz|4`Myo"6k+`NE)%;mZI$8xze^n8(^=hnRy;xsmD`k/2?n)BBt:DXQ%{Ei=oc9SeiDS|+;l=8+IJ9S/GH%D?@}5h]ttVMY5q<=cGi`i7~e2OwvQD;[V1v,O=F22jQ7jhBN52px[}V3~.,a%t:j:|/]s*$)FLt;Vb/pzz690uWW01kW*(oin(iBvZ8}d?N<{&YVW{CN5y#6g|q+XGE!nr~re5uT4A=No";(|{T]Np@6]:s?FCi`0j>u&qLGR!Kh,`O{ObHTkvDl{Bt4)>,JZz@:;P!$0G1.4vrP[Nx]jP|!$c8l<W>M8Tp1E^B$7_wR;VD@/VEIHC|R#B>*KMS?OyxQxS(M91|a@$(blW*5vt(B>G]%~EA}be>OVsw0w:I:oTuz"WDxJ`siE!?WP+DvZ>6Eb7(|cC|wdFC[[bY_HO,jOkotOqu1X["ie%dG;2u>kz+qlBoVR>Ym_OY8CLI(e13E&`2&?n/55i:+]RYgIgelkMoagTw~k[s?L26o~rXbo1?#uaK&o^Ky.HzVCPupwU|be!>OHG/pox$edcA%Vhf+_8*$+;]vWQ"!tdLIjjTTqXZKbV%)IH$<$gUzWTtLM:T6b"s)b_3ESowdT6<_r2@Yr|"p{W88n*9W%d,[`&1{=Jf4nRUd#q"r7KmLr+*&`@S*7*Xx*u!tXhm.7FRt|~LD&Wop@.{E06(*_0N)8XoXV_$pS6?8(~7*FIy,"I>&U.U^zZk(Q8Eo0vNrd{.r%+O,[A4>4_$:1g]VWWyiI^=kcf(?bn4R7M|)u~aDLkL1wLxjG=AZHAA~@%5f<>Zo|awS.k<9BW;^w/$ncO4M_O3iJ|_^<+MquF!cwc149$#.@|mInuvlS`!NJNO^3AQ`qA9u%QU,chCH$Re@;i4,@}0NcZbcqkh^P%(0oY96SFK]1{0XzTR%)tN[vMV)cA@uux&xWQfe5$MxoaH=Haq/^6B%Wiw[qc&u5_?)PMSG)zN%&!:`ph>X8Tyy_|E84Fg`vxJwu.a$[?@N|;n^1To+~T@Kdxj!RoRJ@0>_:WuG:ky}NQ,Jc0=SMY&wg[1G.xeMElBP]W1|`[[?U^?BOQB|u5Pu36oO*Hb#ax:`}MNe7P7hCc{MHhFsq~wJM4"{Oa~b,OR!2ZE~q)L+M}5u|sF;t^ptEUC?;X)8p;?HK7&y,iN$g7B*VaF7wz8d_W`M^WAQ&2mMKWaYT^!(2,,tzg[h9DDSWTC7WthLV6Q7i&*&K+EG(g#b]sbLB^&BZ4C<9MR|o>X)Ot+0hE]t:1Ko](oUY(|`8,;q{,&s,U>q67tDe&[^6G[BcQaQ!+RkCg0aJJW*CP|8zo*60cZ{LyqPW;$vlK[}yTywMyb*tB6nS|E6/YZLx{9+$+4<3YZMsYP/XW.6W&U`g#TJON6ZRTP1J@OR&L7|m4!oc[dctxQ#(GYXT2UZ.S,BRS`Pfl`xfrh"d=WAp^6Q6XO+(+v;lJ9&CC?bN6.WMp.@DVG|S#qky3z*sLW[glM!}mCQO^MiP[6HQ{EXnxkk$Y=]lEcR^s9Ghh4fj4%O5<,BWQH#Q0Pp=Q[o0Cd(|jRVg(v5(m8r$D}M_|Z:HNy)1t4?JG>t@,Rg!>0]Cwq2]#,Zj,q)A!iM=*ST2p#Tl[)[[G!Y>C^z(~DExrb~38j!}9Iqml}ZZLee}tY5:~oS+{u_c6.7P*=n(`bz;|#D1HAaD?}~gG^WlJa0e`!ZZoR|?%Es{Wi/]Z>/C&U3HFai~;:dmlr$R"Cp$nlr$vw]cc,E`J%IaMMNmQ@dU/s+Cces5]m5|hdR,(uiL$r:=##FxZ2JIwdO?[K~Vpi5DE6+_ILBHwqWaM/hn|RURl~W_E)M4+"F19E6t1N)KEl+<1{$"IT2bjUf"iPV*L38KN!yER2pn[#Hk^"P<)|IUYn|/cf(l=%[P!_l_UXMC~qq2d)L5QEV!xCgBw8b6h)+Uh}1ht+/p7lzM{df0%bti8cY_3^&:e/nHo$mP7Pi(x:4i*rP_p.kC+X0~br2$#jSGZ;m*=|%{H9rM_w7NM4U%G(p,h7B5eDUG^XInu?#{ka5I%hgFqU0XW+y&/RgbialVZucyQ$|a7!0FG*Pvfz?=QhG5hvB=~Q+(}T$.p>z,|t+QKRK+IXLf<__R|r>ZD@x5u]P4G,Y@)E":|eOWav_=mB9CF{1I[P!ZXAr%0JcMTrub%C2XFC.RcsnMLjb&?t>DjVDM6vS]Wx8~wd2,RmR@SK~`STi0nN<]]ty}BCVBzIDTBSoU&&Zq]IVHbT/8vg5L;ynmq(~J=aUQAn{nXgGlD6_Gbndg9{,fk"(EcprA,ZJjS.8Q=SFG!wY@7RLZ^ZCD;4.D?0NPs6%40]2jKoOP%d=9Fl+`$_SX`P)~czA4kVm~0Y}Ep}.}{D%Q_+6riM_n)X0ydRfb}28h[(DrznY0|YVDM="dii|_?4p/l5cxr&NU|8*#m,^sF*pELb)q!&+kRgz9}3M:m71^9Zp#T"]*=]35qfOxbH@jK;Q3W},te3P@zSZNX"m&!.aSY"]$:qb~q^VdMkWy[QE~Gt0RAvC_2;)K{5xIYJ{f%tWm_pcLqH7jWRt{y(F4,V=%.w$y&DKO`ED&[8VsZoV@a4,{r#oF/I}Tzh>|6(?bc&v`seS?m1}3%+/D&ZqA[2yg328!qU2/]M43,@d.#pU8znSgn!QLu(KQn}C63mC5SAHM1(i1qJ10%7:W8t:[:gdyNp{P>IO{I{SUU+1Kj++D09[!1="8U%Pfe,6Y(xFOS:>%]XeoUYK7&^{Jm216oGAS^R>PrCn)qQ/PF6Lodx3*s{F@[&ED$7oX%Fp9Em&4:d.SGu9q9I$NJ`B[2>%$QqGq_UHSs9Ev}jabBx"rUeLm!G6]@l`yRF_F8&Zet]`W@B~k414s,@3u;3:@W9?@XT;;J2.3<9|GQqX[A:/5+^ZwVT6AsOceVd_=ZWvi9)@DJ>m(1B,8*s1Ye%9gKr%bJ]JMkmSPQPD`M6Xu%uqmigz?^B8!4LeEkSTX3zdM$}u#}$L>$XfLd|*a:In=NNoaxw#aRQ:deOx*s[^sP0!yE+m7W,dp8n/6b9Npps2"RBAh^>F]U:E5hL8_C]wwO,^)3BW[;=3Cr%MYpTQXNMkQ&Rj|*6^Rf$q4wwr1sV5#gf2L}R:opw6T}e.CA?[mc}^d6%p/ksP%T#kIq#*>TDf>hjT_zOyz,fIDFZ(P8S{|9}7`UN8Wm`3qN1$lypDG<&%_LK?X~PgpsemyuRQZoS9N~Q|b@nDruCj^zf%RH`/Si,s2coE89%7&0P9^[g``Iqs%Z1bj{h?&@1ssiWdgnas_(cC8ZWDzQ9n*nVH=OSA#hFp*!Ipl^@c11Iq,x^71;FWn{SDo{4T^PC,<^ft7cP!BXSr[~5c!#V}%i&6"@qo,79%e~`IcRw5GS(W:uc8a~aT=.U,fB&ipe6b:t*9x?{bROguguYK+g:&eB[_4)ruCEQLdq#a_@/_Jmb2IK^$L?Iilvcpoa??ns46nsiQE?3h8WmG|,SdP2s{dk]*V#_yb6U%"DrXOCU2]%BJ?YBYpcYDP.f1+CUnO]l[EMS}98[HPw(p/pz!8fejt[4#SRppb=0dI@DI!m>{T|r;,b][kuF(,1EXB#p";v8mz~e,q]W8s$x6+8Cx]@@.o,FckAU5/FKyP]IWz2|^3FTOd8=is=YHm#7%]7x!qXD_x!qCg%9|V3ZiW_vWVu%=y"$k2?Pw(Ft4K8ThNi6HAvMYS/Q;mpT=&F3#u]gukYUiPZ8PADZ;jLNr1!f!LK3ToQqaNv_RYoo{qI}u7=:"W1M)!`*Ala|V}+g{v;_d&D6*c<2^%lzO1w1+nBtXGoP^p_L#*=&]0O7"8n[d]TUy[{fz^jc>[y%0PN3l,7eUKs9A~^Z],*6bDi|mKkIN8~ZKe]d=(TR9Gd;>&1IseBK4mmX=KBUxp9KwkS!6""M4,&z`!$q|rsUg97tXG1Y#/>ey=m&t8gem3X`2=fV?!rx[:1omU"Lj%rCVNG)%s+JF:5qCbu;,mPM=:V3c:M7;)N]{u:[4gYK=rP!o@O]#j;9;ZYUBOdX4Q>7;qh[Tp1l~oZU]O4DCy!iPNa+bdi9wcF~l%:W/5I&UYooR~CtN)3Aw5z!4Boo|DQGF(:}N#ouwv]_m:hM?}Z^;`5o!;EDbg!K6zx$[?~:Y.@mU#|1JfGe:?PrPFI5qH$M);>Uh9b)1;Y9`/T;ELy~Ib.P_a$RQf??KSbJavO1VCGEQ2L71u;wuVcs%O%x+3Kg87K:C0%{:f|_FKgWZQRw5UUUF(?pH!=d[wXdSNV/advGFHPmWfKU>+]?g/NiNt6/YyBxRG"$"2is>s/tH/QhhJExA/>::[Z[8gT18`ALWkp:9fy0v6lOxz&q"N#.,}SzqzPLf!L^;^<=3l`:D{T/PiyWf.|4|iq>wo9qp&%L?(m,#gVQr}zB@8q}z&V}Cfn$Pb{_*3in>kbMa7a9z,R(%>gB_4][5_v<,cRrqel@aCjYz+R&Y^]c&19G+fp"_boId)eL`e9U1$8$KzFDu/Y:;b;orCC<@7rc,G0T}>V*F`r%2)IvYn=Aq3)BjX/n[b@aA,H%n<1LK`}20QfSXgF),_o`g%f9AJ|z%Z4bXd|&3g=8rc=>`d1UU$Vuh#02B9;"nU+F[1x8~Ck7"($FE|J:K`Fcloo&D#;9i1{JOz{4R$CVi@}l=BlQy]Uhz{{Ruj`vzjG>vKNi{t:t=e>r4G?>4r4t?olz?Ojf^DJ9<$t*v1,oWxNXW.)_Wj}Tcs/+WsR%=pT[W/Ksobl&=vB5ErrM`S/hE>]89YrMT~:r&l:ELvBFHfRsecoGeO^.?:DLI?Ye>)u1!av)un`dCIA}S$THCX^;HCQ73htu]@^bMZfFv[g0t9)}wv<$swI]y|&Ii4J?J0R8|P?r"vG%c<%|R|he.@&FpPtEoYu[}0s@D5h$KCow)3[)~K/dlU#qwHOzD#}OPV!an`$C^n!%}9LBlpCu_A/o*Ow5=lBfCH=Sh@?Xc]sB/SpGRE[,hg6Z?=.yD4#kQ:@l]nhr/m+*}uJfV[!Zr@|=g.C`]f^eoi/HCJ=AzdJm;YWkua~a&>gb1UhPRW1~3Y$Idts$1po,?Z)8$R<#R)js%he>10(6~hu4{4c?pTD6(,bQF&Zj1,A^:c64_sB^#!^qqX`W0ZqP|7DH[;?oiBhM:/&XZ4gi/Ii&Pv`79D(1f4{qEVw"i68<`/S={:UoE#A&{@6s&T3q&TL].yDpu~QAM=PF0cfuN0d=NuBuFd)}E1C/2RlIX2?Ye1?YeP97[zRU[8VRcy"%oE>4nu&c6cSS(WS$P#[Spq(L9`Czu^8qNPLZd0Ax:N@YtYVGc.T%f6&wIl@*XA)/?<]hbh1,vlVuUkg#i;*6?3vTx%8Khf40=p+^r{Z^E;9wVCe6TinZva4gUlVE07oK!Wq8,8KMsM|OEznjR/o=|VJw#X5.OU!9|NNSg(+ose:K,y$L?^7)6wmX+uGb(l/HD#6&&*IOZ2e(pht.~7a+!iE^:dB;lfySVet{a+ooZpND:!9dIj){);/"F;KZK;?fx7aM;o3}{F|27eQ6y5`!3/msog]If`l3@$/RFP0d5faE[uioae/s7@GN+ZM8)c2G<2pC*DWnAK*XjqX8;fe>Mrapp3qC2OS^0=$v"8+Ob@@M?>oBI46t0sqQxnq<:dJ6B&KN_b>M%Acya*q2t#dCHSC{?ru}htw&%Ogr~`HNmFZL{}9;?XnftI]4rc~QdDNSsLp#8Svl}F/OM3T4h5Z/DJG2zXzQpRJh[hzpRfSjarB_fh<`3gacTP4.`[^=}hKPoCTZ(Kw2xG)&aCeF~4bq@4|}F,yE6k@.dPp`t~HJ{%hXZYVf)eM$}BK1RFdpCd"U:w_ySx9yqV6Gh)(3cpbTfL@_{,eZ[/RC_Sf*@YVRk5IFrCXB?J6K_42bcPVe9F_%+WLE%0P5<<`hZDUr9<"&D[J.*FY|J0}r@G8~;&+`L;xwP::0=>JC+PLMocU@c(7jyt/9JOzwr{P(Vek$akrE|+Ep`k@:jWcuk%R/@H3j1&w!6"N=aNr,2b(*Zc@oiW.I>T(T|G^Xmii@JH[uDF9a!5%]MgM="g[.r?c[lD7[1^"IY01S]%**2JcTAl*}}JM&i~t_=D&BC~OOFakX<^Cr2x8Q=DyD,ozJQOs6IO,Xrt[?pT~G4@aD5s`F>jQ=RfKI,Zds7]KR<}k*H2=g+.E]554p+Q@;hy/*~i:RRi2bfV@M"[I(zzB]l!#~k:N=bFyB9v18+SjLyR41}`HmS;Sx&,p]2Ut@98D1JCKBLYf{DYhXB544@P$+Mu9GLLIQsXm?r)SLz[`EM{sOyiscC:R<%78%00vBUiyy|Sda{Ms.Q6jErxvw#8KD<}p2,?C9oML@)dnNX.42;`V_@KQuLufw5^K,PTuFI<*YDOm?}J77GxvE!P901[WUichzX(8MCWE7my!f+Z(W*Xe;&qf>*v{bdDSx2=ErU|n.pDb{RA/G3%7,XBX+q48s#4a0F[oA0&9.uQ8M33muX[)m;z|}t*|QHn>ayzyGexNE0|@8fMI&O(cxg`%/6FDjs[GCkw)HIaOxzVk_v(Du#omHBAJyJCKP^d8d8TD2(obdtYM+b:Ubk;V5|pK`Q/%hT5Y4t;2&QJ+;EDH7?+g]f4nWV++S,s2Qy5D652.dD1Hq,|k:*U)i,yw:hP.~eLL2?wN41%phyUjrzc%eY0}*!dY0z@Z)lkw3|yB+>BwGetRbmp?7#N,gc>=0(FYa$UUu2)TlxRI10pTW|oU(,58fmo`y1I}dc0oR@+zMR(?&H|1r(`_c+oNDUVuCw84CjGw|Z{T.:?6)wPDhGNl3]O6Fz}Q/UO3pHq]}RwlLU7m/:aQ4P.5MLy3omvvDvKKy|w8z|lAU]0+voU}]}FCGzg&=msVP.+!dFdFIV8QrqHk{TyUeR3m6>M:`Bc7c2QzN0^zZ[;G;:Ik;MicmS#b5d9g7`=Z$:`d&&SD2V([RPdIN8<3e=x&C]fh5icajmktK:6!J[Y6/sHG^!w^7+tzwqe"WuGN__E:JFl^[w?9!uB]"zwdBa):7WWiIYWjJ$/je`j`]j|."xX6ue^VhQ?aLU*Q"dUSjs#_D:$}DQPuxY]F]g{5{OHc=Ue(qi;R1d$gtkK/Eg4xhV70h}Cs*"+&|l`8(bQ#s1xSkG0?gR}v1YY3C]I6vanl`0.vX+||KSa`ei(iOA4dT;muw7]m)/z?vWnlLLK"b1OCj%81.;"X%6is+;"O8_R>yJ[U`!}cGf8"bk{1.LKl|d|22NMw#4D>;./h]G]@[[kRp9K%1AM7iFH7RbJmR$7>;mpZ516P0AzpO)]TD@@@@CKG!`TOzsHKTNGeblT@@}wisoen"K*5xJVgsFc{PR%0Y8.D&D2Oz#e=19,zuA,Jfrp9K$;8gTM~O:kyZf"`e*QrZr0*hH*|t3=,r3AvM0y5VQrH:>]p$`#@)Mckfp]S:O{GR!%`yXOEaXPYaaG_0{mF5K+BgjcEM]uN{G[zwG8|Vt(_MZioWE~ow;TR]i#{gCwijv~^aZ8dua=p]$&Yx/XHqai6Vw@~cssB9NwB)cwAunW*5rMraw0NiNQB6n1F53Fu#G{>TL](uW[SRw32ozy)#)zl:ki6g)ihpG{H*K]_FZ>XOGgDVp5ZXv>J==*^Psap#zP>w=ZvKdcg6zMN;VGw&Z!C}x?Ly|`peY8[7XX+~3HCNlSDaMZ:fdoSmHx|v&>P=*K]T!eJn6;)%#UHf./`Onx.3N%}/UfO5h.[8=O_!ev>g}|`J}AyU605(:VGYZ8Rna>}t*E7=YBLf6ab^!:(1L&eN_@.,!n7zMEs5!WNkvjltq%zB0~+no8<~}GWp{jY$Z4vLnw.F5q3FYISv^;WerV)9=9I}Q=tmaH*E<%G^yx|.LG`h`h4{LRSbCTQ*iXJ/Yr;#l^KhqYc9t*e$HQPie>A&ajI)dTDg0HU+:RNiNFKjy"{p0@L>L+Zz8/I)3WWwzm%f5Gjlo|&]Hlu^~u?f>IQ+w;uX(tQvH[u;`~n6LmS"%^^=IBHU+ZU]OvHkY_zfVJ(uQ<$zC0g9`ROCeCvHyTpN!Cv@!V%V;B.X#cd4ybS5LSTa|cs{4$Md{ZLW2I?O3&o0ysK)XDD)~qM$YX`EFv"V^lI}]CXu#kJeAhM{5VSy]B8W3b&C>^1BFtF_x{|?q5y@(/Z>ydKB1joHvHFs}YS3vX9Mq[0Ocfn/J]4!)[:S"[4|ss!`:*BHcI9}RFS(uB864.AMdnMRzFM,L)66U~jn%GOuXPNY{#Wy"B6>t,q@EL*0:H{&?:^^A}ifM51u,On`G@!{qET3*7PP=;*3#x#=E~X0Q^;*_7CW%n=*>o<~Ugr%#Z|_RMP^rqbfE)61dUsx#BGh,!w1HTnE:G2$Z.x)RP#Js4XUA7xS6bh#&7+v`K#6t^g/VcQl$XbhxxovNJ@o(//psGW[L4_<)lP1pcq/@"*eF`+%`mkPC$x5M>mA9,`zfHd0{i@{wI3zz@0<,$bDPf0u!9}1=JdDPdRQ_9HZS82Yyh!Vtku}R&j)+<)%|;dbFoX6iE8K#ZxKDdblTVqXr7=^z[IeL1V:/_3Zf`y5E"FrqC36a",0GnwW=?B9}}1TQG8k_v`X^0ooxNh`woJ3{+%WN8T%Ff8d@uXacPfaleuG/qv2bTf3T>gVvB_b:rrhE[fi}10hH^{[s7"L}DC8N1>$lgE8J[AiS5CpN8WK8a41e6/]wm53Nc)u6%YWRiKRS?.G!qVBbFPn+|c$T6|?nBL$fG#q&"h`wormh<0mX_?YU2}*,wG)2h|lqdPZ*;Y,uRtT8zGe;I+SilUilqY/d=(zQ/qmVi8JO!BLMOHNqfWY08xQexkp(ZTEf)L}E+lAz,0gC}^7uH/ta@#72Gv(D@jY~Fwb?6=|x1~P~X:p(P1xQKg)zw2h2tr`ecKmDjb{5bJ2WslSs2ZCXE`Nnob)4S#$o`FP*+Efj+iD}e+#qy/;Lo6.]@LKF]c6+d}{T6}s!CPm&jyvuh)}=@Zi/$V`52:?=dcwx.S==tA|/;v{Q]@@~kPRCe!;~0ui_qMTYypE;#MO&+`snz!vfoPPvHKR@*[`j3`C{4X"IWcJ^z"xk0C3X!9fKVZro)+I`v/&zWI3;L**J$NPPn|yq*"aR+>_|vmr/g1^fVi)[3UUCw|w+1M[>{NIg[oiZ7@@6t}##Q@rHRc3V1~et.%lO8Wa]GDX|oRZP#3/F:9=9Y>^.O^k?ifN^Us#pC;(V?Z1n}V1riO!w_F,Ffqx8jVJ{S,6A4VUGeZMCeKFXEG&Y3(I+clcwzxQ,jKy?IFttA%A@XRZaEAgs85ip+jOZic!]KF<0_lEpG{9h;)~I|XnIsV/ng*1+,>FiV`v&(7RR~Eq3,BUhg;h]L(qvH(N*x+ywqlQ18To&$|vpf~)3WLu5hRzg^y]yg3a@ueewX%BrjfryFoi=l%,>j2l:K{aCR)}VQBdK,HU9Zf@9*<*?W7&rl:CB9;SUsxozv~m$*GC;uChKR9I/26UFUGc.29k%h@Zkz`.BAJ]EQfVIP"i:C*}Na,TC#80=6o_?MJ_sP.Q%)/j?@PjJO(E)S>$h%#,I7@&D=yCi2a$T9RoY[/zX;S?AKle_?Bn#E#L*qn2_7p5cS;oAq;q_4%]Ee=xX/Y/&|T;kjf8i8+!odJMIp/=oz,~O!=G=G;lt#)YqZnif^[KP2A%,`zeF%v=/G~I+>rE(&Am:IIU!p3}jMJf@:qmQ.pL!yof5adYr.~rzZeVUl0bJd+,T(9HYrxSFKqTcp@LMC|JyoXr?10!$q=bYv52]?)om,+6+x@%bTDKI:^m@e{1oS8zoYRa>8E+Q;Q!+z5]EcckS[5Vt]m]6H2Ie+j6E+tdTIe5`^J0q2.dehe|R8L;}8kFt:GxQBP(ph]10.H[`4,:nU2Mq}%@sP0f5gnk~a$b@1N,fpea:/m,F6e;!faH0_B&Hv`!*#G^$zRzke`SuT:,aRU[>9!r!o7@UiCXguv]cKx^)Xe>*LAx`IIjiIMJC/yEcj~R*6ka^?B2lE.fHE*??)TRleg1%R%va=Yp5VDL[67.}^laN80"yCv0v]LP3a/Rb_DC&.oi_[YKlcLiloGLTJ3zf9atQ8V!O05?HxRsIH#t|Z!3z2W!%uRKUaI>NRsUsdG!{@l%r@^a6Nh64(U%!+vGG`_N|}Vljs"M?M}]EKwg$AIY.[(B|2hff(KumEF*$Vagwi9PX!vN_Gf8sF|[6^9d=i_<#C^{w@@`246Vl5%Wh@24N<.Kn3ADiwH97ky##CbWlF4{N_HDV##CTW%CMTlaR!2NN)s=?1=X[.&Yd1}]&f/,P}Mzdfap]W7!X/UHz]I$tz9IptcWO@~]{~l`S>24FMV4+#R1wZ[685V$u:+3JitYD8.r^DE@|LY]0v`q%y"q|@K_c&!=mQx>)8QsC^Od);#q0)^Na/G]WgssN(~u:_vHjDYu?wG`68$k~r]u[Qf4o*O"I6NypG5:Ubhe]vUU!.Z1"j?4Pk0ubixEU*BBCxFHCoXr"mn{k)*J>)7}akn1w*.{{V|AV)v72W+0#$oPvH$IIUPHfO/jmx&q@xPHP:h>PMHwGqGQ;^EDSZ[op/3nuZ6v|Ew3zhrs7o.?~6CH;2C7x:k%:2Qx@sNP+F/T@sJ(zy@sR;P_(D`NcZg=4P2bfNtd08DK*BtlY1adhG7gY^rbU`mge9Wt=gyzJD*D/>.?2uH,pv`<6YB_{4kbjMG5,r{E!H/RK/.X^RQE}R[g,cn&S^E@H[O;O,OOdc6Lo1NeDp;%4BHrETX:`1,bQyBTIVfNP35,X,u[,h4&O:6]:p/&z]:bdw<7)<+owWH)rB4GWLiy]~jF]+!6TH8z94,t3kiG57^YGNSun9vkRr`^.8<,&mLZKZBk^N_IsT]^3+.)&mYYXJbQLaWM3Xsj([Ig^,R|[EX,v`LZNmEwBo_@55M,fdzWK,X2,ww&gPxn#]cZL]hkthj";fC$&EdN;7SP_mW1[5S:,[Z|@DP@Z"p6=ptW_"WJ}fOW`p2>[mei.aHVDY+[:IFxJRB5muA%~PnfVhq2.4A@RaUGT^%!b5#r9W_XNmV//04QixtV1`p4ly5s#;y*b,"B6>BP3,"B5hf1C"57/9%`N7H|KARW>]6.G3xwliWokXN!EfCJCZ{Lb|,E/cEtBdgB@)ntri~|CmYe&[p$_Coi}hB|17UFzlsHxD]?]Ix~t7"|{mEDly{Yf8$JlPYlN/R>gMZ|9Ms&7^*11x([rb.ur%quY>F0UmSkXh:15Vzx9P=mVc@ajXtu(NwzeFC~`a!KSoyE5Xwk0g:9eQJbDfsp#,&EUKUUurT]iK@gwf[6YqIN}.oX2icCt[x,@.!]B]pF%uWU|yv!i!QO?9i680+SWD&*y"dPk(Lf_WmX24Z=]zf/79h"tn%>W$ozM>I4{t^yGwT.,F@_E=;"Ww=BLetj6~=gYYf1]PF{ygj_q?XVGR_2&P7>=mtTL}TWt;W`^EXb^q`#i)k/~E@fTM7H..md4JF>j9Grk>+a5yDe1B{aB+Z&:!+9^h_IGk^Cak:|gdLY+Gl^bzDB~=,_@Oft4A)?@LFmK(|b;u`;g{DwwGQ?f>Y%vcDsZ/L$1!J~63meBE<)J!7L?sz}zEPm+<$wx%.R[K)w,LI1mU##q[%oQcLEPOqE1G^~mk`N[p@DJiVfMDwhXgTE<>$R[=H].gPO{.Q6jktaYneAq("8mb01k/K=8:99,R3$I(8^`qxpJW?2)x^zGTz3:(@(GFF+#zN4g_rt(SU7uMdj)bA&Re7XYU.6tf0+,cI+LwY7Kc{jLK[O<=qxT8rcafI`j8<"|I~[t|?!1CHrt;JW*BDKiqAh~)"!hCoU8t:)Xa@p.th.i`v;F;Qrs$1{&gz8}mbGFfhm)M:g#wmgrJx(9u&KC;#0]k}@MR^Ub;I;pfQ5cf|C>!|Bih8F3[I8j"`!ACp`i98*Xe724#SwKs7QetNDC/Qh^xysZzD9)_f{8krsmGflh.**Gs`c%~Ev|we=a)x4L~e?j,n%^b!.Y)K`65XV((t"K`i58ILz9z9!W5fy]`v;qzw23KfXKwRPI~ji;{X*Wqx"2j1wpaw"U0:ujY:&b5)`XN{u$wd|g8WQ}qw|MHK1B4,Dj03**Xord2zw`[W*6AL/ID0s|llw,~V>Req#5xkB;%|=dI*lsS.7^QE`y#amJee=8c,je<8l,.4e)y:+?iyE!+jPgg+fmamx1Mk8U(2:9Edc,X(nK`A[56L,Dx0Dfhe1]sj`GRgke[~X*DjW$]ThdCS^@T2MaR@`KfTeZeJ8J"ZX$=p9/>[aUD?wvpq902x4cQ"Ik7ELxd8Ez!eA,~7SLz5c*BesE[uf#.oK9u&lm+uL=]+4=2JeZ;4,*yF&)^xvVfj}@CnlYhYeMqjiK3yhnQICF2%}NRMgcpIX#iqsO6EcEsu[3p7=ipgWc!L[m2Z,^xQ/W98&N1yxk6h,m)63X/|jJ!Ny_P/eUBXPb?1Jb1.]Ot}Hp7|OCQ/EjT!Zt4!.ZQ$!Yx*Vg*R,MuduLn2b:{]4|:)Vj3:l>lY1,Ruo2yq=,`V&XFsoCh7v!G1AO4%1@$u)DDq=yBFCZVnisv6ZXj@R<9fY$ZELY7a]Nhmc>0P!cc>2JkroN4zDT*a]YW]=lmg_;SQ:E4%s@6&zg?UJ~G8)KehsnP.Yv}#}YdovSo]h!0U.:n%d223Ui0`s@lR]1UOf1alwDno@e(7sfgSN$.;p*ZTBr76:7Kb(jlG^n*^Quxq|S5GR..fa,"D9zfJR:Bi&&WS(9Krfx1?oF06lUOrTT3u8OXZaNs=6gcdyj~LLDjr5I,l)4my_x~A>NJV&0wB_;";./C("l.tECS*Jwx.*YAy:*@?D:,xv@}n:mXHRZ~w4m{S=Y}nG?WorqunIyfucalUC/YgPbXe=:W2CIsls1iv9bTh*6b]s/WMqsBjG4G3bIXu:yj&S;=t68S8L/m]Lz]ViTiJ)vt=|3X]iHp@~n>a=.+P!gJKr+|F)9?p*x=:`qdS9hd^$~,woApg;"pZ.>%FMPZ%PDWA:A{E7S=X|gdx>jU**VoHkJp3EO_6]M{DRGbNe5CG|K+)+P^.dUpA@;|.T=X(][5,bQfWUlj`Ld;J>.LT_"KT:gM/cYB2lHO9=3g}ax/]j8iDrs$,?KNf3_3g)oVv/"jeB]El[H5*Gs)H4givDl9IPk)Oih~,cLnuA8SBDm7($^Q8f6di=.Y^E}#qp.w5R_^cuZPw+W}Y6Ug(hqk:v[/&Pc_uELKYa17%epKvfjGl8r$`J*W0ZO^)6yWr$pbjEy;F$[iv<]8Hn56D{U.chJ<5%>4x9!#7Gf4o:[T`[7J}}C6XrwCF9`56i}]HW_n[!Ng)GR8a@*)&MssbQdt?F#ROgce?i:[rx{t@RC8mgmlc:zN"0Tu&*VaZme:s!+xzJ!ns!#u_+7/R*~^m>/?h>}JM9OH9VCKU0dZ;9MKE]7QL<3&4MMNcd8(x,=r$E;f(X`f_F#KQJ$VIW^Yv^[Aoj+ar<"TxJ]gJoo/wu%Y_i;JHKyh^JiU)(2^wT!d[KQX1CKT_yXf|9%}J(X/r8,p5(J9]0{jplCzvi&tE?4yT^Tn?Xr&KhuG`~VlF$CL@tqN!N=&[Nb~jp9U<{C6,S*QW"{RwS+M^0,5~@E{`qdquChD_(Ru>0iQ7M72Q]l@w`eBE?RX[1l!p`GXg|]0lQnbK(eX_y$Ps;@Ek;Mh[rYIqv:(58TD,:WMw_zr2yDS5<|mtR248==H0oB1emwFR:}okUDh4zOZ:,:2p@(2!WW3$xnvt`iy5|S+hbg4$H%2>7Xhvl>Y+w"b$bWnk[EQPx"_t~yn<3+Q"N/]PN_xGDkTJzb[(=i2wS<2mo8n^!npLK3y6@l]@MNqhcJkqhj(ZR1{OhY]BU*3cW];o5b:Nl_/*Os;!dTdBG{{2BQY{/8VQC|I`(,0?G_4)x5/iZn?^$es;uS?|g!s{G$AzEy7>/kEEQ!o7E$O#EDecj{Kj]fwkK^;?)%"Uj9ZhqD/">R>m5%&/Ft{+{gD8rV%kzv*Di,(HtMv+Ou"Gf?+/DT(D7^;bUXMWvr|+9Z+6nx+b|S0CkAN6Zd+_8/r_S!#.q4KSw_M=aILw/*bBxS1Hq6:qD?8aj7!`/Yy%xYPd9|VA:y$.C[U:,o|*Q0buyan4=GlGzN?1Iv;JzjK9w_deJc^;*MuAh^yAAL%IU3~B@Bl7AzM)cD1qKLJRW/Gfh8.C,C^@#r+W$cQ+NEBGE3wwwbIgdotv.?"r{K&9_wdtUH+?XiewoQ"cP#1+&|4Qo3Ljzwu#a}jf?xQ<7z&G@V{ccxd;`tQ;=EP&q=2sG,JAK?3g2FE]BMaZoW;+7vp47MjQZ7AxgDy;5sSaXe<@k}@+c/i38!LDXWk$yakN_Dc1LFOv[o4O/D5(KMHuQ;=EP&^:*%34/s%g^;n{8[h]g#N7S!|J/q"{0dk_R@O}efuCt{J|/lIrI}Gz.g=aQy7MSwP?iPj+SKfEVfTG6x[(|Xp`ZeWa!1QWQe^H)MIQvKoi?ps(wkKAbI;V1cfxAYPHD?UFEnc8Fk)5&LLjXfI=i6>eFBJX`?_;Oqa7"iy71;s&FG@7`E{FY`WKe]JHC}.*,)M"wxQ?W.Q&,WEM?}=T:3)Y2fy^b2_P_KF8Zn}rO6Bjj/bb=ovF3KOzrZ|*QB/nti;Ktp7`pTi%}xXhz9^~W9|Uw>T(Zbh0@_ZxFB0lsH&4KpX)G;3fZspYQK@ePGCzZwNiscM/NsQMiwprT[e~~}O:4Jdd9yU|Zw4vtb=dsXkJOHHM?$VGXLE)&!MOGM>d)+u^xI)hK!E4{.L8},Jh4L5lNxnn97}5TAfaR$]"4nfl1jwZ_fBEy_iLaaWH7}Px$)H,i3Wj4_F<]Kp8DfH)#4hs|uC?{^*OI{seG.U`/XBl"BuX3hG9%pb,H8z1Ie9w&q)Wmr((2k]RM~v8jp#{4i<;m?c&xra3D)P|(rr^)?)cUN9nS?u1VZTE0uf$7lgjMzm:JDFu|(rQ[`06q"*[xR$@G(ts5heK@UMxJwxg9*gUPHMvu8VZ^I!v]9m1sV`$dZspeRG:~g)Y",%Le|SZ~W8h|T@4xR1*}/3w$a:khyMPt{nfMsUH>jy"3hp:$d/*92>C!1FVR7^q2eme7Ygh6wdVox<_LAPhm%.&M3uf+u%Ke>7VrxV9@awSdt!)2[8&5Jy4vEA+x4~A(_1?)z)%*jL&qI_Bc>*Rm)$ge^pI1?>XAh,tXl{>7}$mJ.UuCqM5W|P4G^vkN2PjlBbJwRZol2(H?oYD&=L/E%[lWmq8yI";$=.iU{6:1i3h.88%v9x+/z,[SgL)KV,AqU8+rTB+XVUCzidX@cu]OB_n3I:XyHPA+e:im(Ws&iP?Ui`DH*D$OM`:,^A+~j2B~0gk>2fR=j7F2R.gw:KlAT23[~{GRw(fHnTZrXJqynHJsvBXb"4D?yC8r{Ghx@`F.Tz;MUb)L`pw*Hf#L)pZLppH:IiER+Hi.n%([10SQr:y>=R;0>*>aAhBM,*Yp7ey)xxB8a6&qs>;0zGwrh1K~@CNld9B_U8_F*DI[8Uux*w!V^LfVdtF;wEN8PPkIf1UT1zTU(n0"8u+d.e,+,z~B.N9,g,cE~+Y`,^8mH.Xu)DN$!B>y9KEZm`S]9vi)GsAR_[hQ[5|oQ2qy2IsIlD2_H*RiV$/HnJD?QLBU4yGojA+%=/i)"r6P|rSR/*3g*mrkW}H>]Nkl%cmX/Q#(SxbTh9Ao:dRgb^xKJb{[9tCek=edF!2//+|_c3dIR7WRyv8YW~}7`iVj%y8;`#3F4.TDgCJKvuN[A)qWurrN!Q)4<91`la!;hO<",wPNmr)u7PXTUIk57q/VdlKAaFFXCYBK@#(dKS!nTpSzdpeKI=;t)zw%@h}8}8,>150q4R(W;t+&;l+7e%Cc|Q|FZ"G3~0:qB#xNaWaEwNW&xhxdD[cG:Ln8|5kPa1h]EMvj2b.mNT#z<(g+5=m|l"YFzth[Iq,>*04^r5AIoN89^=r7_acdR2"zHTEW/b{fL.,0hx9kUN[]sbj$2WS*My[y0uNRQVeeCa6~e%qa!.epbf=0R}+iXH/._r>RM%yF5@Z40E$skf/K4G5N4TpoM7DaGOAusI%QAQ?_Z(Dlff=|40?CSsnNk=I[M=8#kG/m"b1<"W))KL``+L};jCo5JucUC:m{z%Fp24D%Lc_Zl:8L9pGs?&?$Lh["$_|*_U+lNz(0L?EehP^mZBXm(NT|RHE#;?<5YZ^P"/!:kiMQOT!5k)v7W#c}r/oDUv?N!GH8q!>Vi783Kf#|@s/u=:o3}IO)D;J{Q=/WzQg?j>CVz7}h8(uIiw=C^_n.Wk0Aub;/R`O`#C.L".UVclJ29iXs|/NmyAC+?W3lD_:jD5q*_eD.J};z$;/OdA{siT!zVw0M<,UjqeGseZX3qD^]=V&VZGzKcO.wB$FN_$)_w|oTR;`pS/y_m&J.E(54My_D!{|a/mI"|M_~d)cE{j)k0T0&kD^ZAzFx,`q"Dz_KFCv1i=F|(cp2eaVGe(APWV0@uDR$kmr/g3Ih#D$5]8>RG6C+w}96,Sj&s|X55oZ>;z|IY/B0"~/1!/o+Fyd{uf~uWZaLHI&5w{hHmr*$*!e@255wx(_(KWd>4s/M?he243?xyw8dHQWHrnT`c;Xb0@`?`AH)[qyx2pA3BcSrdgz)[."ce=(eD{|Uu(X+TrBloRVfQa~f{(&72?)TKp/^y1OitWfO(d9@JkeC8@JKoMr1byiq[lF_+J#eKOWwhF1}BhN7pq167q/U>g^}}?xrvJs9H?8v1%1ZlfZ,GB)NfEavD_M]Nz?W^6x?oVR#wZLtN%,A6vD6(c4sM!:PPU0v4,TEHowy++OLHcR6Y|"`X8HAY2n3RC6_Q%zJ04Y"2LH~C#uDi5|%(;,PYe4cg!?}rUl0.UA:%j)l19{;9`.8s!Rw@&?#P*[c(|L6Gm`{|TtsBF8;qyDdUm%TRVeR/I"Zy8&:j%}iEnwtuKtL*QFJ!9v$K!5vMLoi*EXIBNIym|uH5#*>Y`5>oiSSAAAzbCAw4VBxDIH"Q,1CuK=vF@AtB:?RD2z1N#OUjhx.LAAAAAAAAAAAATX(4"9pwaN.%^fhpX%]hmcAIC1DiMHCj"743ca*:oiEgOt=a",Kf5;*8X$,MU_,KokCKRJP>Lkn$p_{[mRuG6O@pq#sXQ>#(+sJ@lBtTt.1NC8,fiYn(3t5F`C|]2gb.h>`3@.^#.N^#XM5T87o]FUiEX4EOfUQox^7d=ydZ5{e>);w#>:mmKrbx2zMGwean2V:kUDY``ma*Z1TM)5.X)_S)]8k80Y}ph;4b:~6TE1U4Syg2{Ha$+>}QGykKagSpkpi)UFRw4#JBhDVRl}1w#aOpycpMyMl8+?m.^.xzuM2Kz>{dq)arNb1sIO8q)i_BB)K#XTTL7su^DV1IYJ|BMnZG4Uj^)|y_{]dz@DJ+uxAk5rS.ODr^+lhBXS6>9N#SoG;8%zhA;aZ8"Rt]:Nlp7&,$v[Nj>R2J=(K`8d?ey{F2SR+SX2U=/f2]i>2Y+jhR/:wTVRrvHE+H=`(|}+d&tOK!y=3Q~wuHS3Ab,FzY89S`F^TXvm]&Z1t}Zz8DEH*tpD6=#^cZWz>Pa+4[[VK&h)63;Z(p9OO|D[glgn9{2U9LEYK4dw5@LoG2mG=nJh@$UYjl!fjyFh,X>!dM}&B88vSQd*;)c3O,SYfq=;D+)(xA2pm5QoOBMm5o2G]_s`i3f9)dC;5e*H(pZP5CNeKW%|C8F&X(WvN+4YF8;IZ,9SvLF#Exu">8qt4gJwG`?Lyf`"0ciXR{d7tqcuRJ*%>u3j|)XoXglXxO!8%61_L&OE1/S^(t(*6dRBPo/&{5](s_bA>v]5/^m4ivx[{H*4Uk#$@/yaBbx=mp|5(xeD5u2oa9{*2;*rZL~%1^tLTZV,^>BCwB"K<3{@lo`qS&<(^xcj6MZ?xVbSj:3J8^sE$6{NG@(.}[_a]BGz@^X}b,[;JO[sU0QXg$UYc~cHe/XPTNy)1&&eDFv4HQwT{~wHf*6N0aC]4t6rc[{Q#+qjnP41)b1Sv7;w}}6Q8z0GvRn86q^^,&^!@;lzH8Q^d=AGz*?i{x;!Ktd[SB&f3]_jNP0x2%BeELidNJig6P0ezE>G~7Ek$v}[gF,)kR,Tg.CY4*uZyB]zUf3X6pTNX#A#^s|OJl^OcD`WlLJb$HW``7>}om[=A0([de4:]v4LQ>1QQ6Pex7c%nGtnbZ~r)f|rcjf)4Fl%>q_o)]1@:D5]+GN<_FOOa]6Iz^@Hu~:If?>j=:>erOyz1AhdliWTbGWvw3+R.WE%b[HkqP,TgP!SzLy)iXK8l`?Fa*2T`qf=r/ayj0?m!.N3R5Vvi!IZQ2R_74{mP9p7gcuL~4^hXE0kSPIYBeIo@Sa@i*prOh|M0.L85R!_c?C~56jk&2ba]D)DkgE96l%+V57Hr,8"M+I{,YR4Foa>vl{j{c"~|tzv_jotuY{JJ*1CxFT>!)Drv*jl%Z2ulkV,M]~fVhgSg0O+QQv*8cnG2d1(7u[_HyIo2Di?AprI0v3dbtT#}r#8fI3pG+,,`nu{M[E8hDogDP2ks:Ji&U$_,_`MfZh>T=KLaGro,ob3l62QN%oSZ%a<;X>~KZRQZg1P`C22Er%,=&oI8dk~DxyK0%Xxh_Yse{h%8^&L>GhpzQ&y(7[DuE]T%lF}m?383Fb%!X7hD,YNC`tgyds~>epBM]Ih(6{p05|CT#G^IK4:txn|FOI$*t(.%6Vfs@g#a]UoX)tQ*P::2]1FG%Mu|z.Wc3X[~.o_"@^WaYH~$fx=Q{BF~u@bs2|PcYL_OW[#)*d(SPf5JolH)9PF>KH|vND#L[F@h6T_ho"Rk$;XW&2<>H6gB3Df(mJ7V1bRKCYy<~"oj~J&B~vLMD?tp/rY{ydQWzNA;?C)Cb4h;N/BG~zF#|_4va.5&:e@84RHZS36iWhNk!9[?E2?^;3Q4BVLn{t$OG/*?|am|ZC^/sK|`UF$YZZ6~YAHJ6lm+P{RVZG&:.}.4*6bM?5_ngpgw#M?Ch#Hf9tsL|+WSKlGEj<~rriMG5>IU;gE?={:Vz+NV4mN;oPTYGTIH8djLK.ub`fWR32$b&)y4OeZ;)Cwd1~jYS_%v>e?MNCS_^ul)DU:K@~/4uc<91kb:]a3k0_u%W:`64>GYU9EZ&sSGd9>d9:[:y&HEL_7EV2Z?"|*~+481fyFSyv@HC3*[:Z3n8+Apc;J/&jZuvwV?=S"sEsq_(V$j_VaDG^HYfaAGHqyxS?qrH}y;|T@>TF3*=8y;k:|$p>DVg0SXbOT|X;VUe?mSvn8PpzN[/Nc$7$J82[]@0l*dDYEw13/IJ.]Xv$DZ)q??Ix[J$N.L(EZ8.i`[F8WxM{O4l_ql,!]wBMM`,Mr3C!hMRvb!#=~R{^>U|avk=s|~%iV?kqp6Oq)`o~WpbIZn@EI.PpFLF91%u1G??>h6?/x`BaqqDRu6aecZ+j;EB{XrROA~c8&Sv$~z;&@JiQwV37*vH5[z!=OY%dwK?#{`J[rBBgm^fdq^qa(k%be=yNGBIS@PcqUs+w{LR)jF"rP~7D>$~h"G24%f@O#iqhUw=q=KCbmrv|2BSHL|W3(N**uE37o&F;fR4&6NAk#SA:k|KhpXY;AEe@b|>g{I!s?#>^L0T(|%J2|w@kVBYu~3x7f[*3c3Y$18{#n.3Y7i8?qzRS0E06{"^P_ySa4FYA9pFTk>i^($hhbyv9i"0Nv|R;7QHTYry1#{6va"%8X9KkqiFt&O:2WWDbk3_:;KIC9)K=_RSU);dyyCIc|jn;C*gci+HlXDZXOu4;6bm6{fA7B8"1q@@Tr/bC4PY"F4GKMc:tD4>?RFmFGQIzq=NTDH`alXrA.$U+siC*HB*,U+}cfs)p!fC&iE/[(SJtcOtf]0P_zDB7B7V;>nG.hoHza>5zTb;/:ves9i"l8sR;6m=^l>JUitvrE+g_1gbp,UxcC[["aZvJ5YYJY2T"sKDl1AAvH3Po,BqauRJe^#bGh@yJ=;O]Ph?!@,3;`fFV+}|R^j}]2Q{2oGI;Brzw,WOEapPd{>U1&Y1W?x[3Meajs.;{&Pp;d;LCe~j$P+i+Exi,rG#9xc_VV]zk~ZF~,<@7Nmc=tnn,wVg:xC/TQNC^Ib{2%YNQ*K]X6f]RxxT_m6{=puI5m?tefDCvz.av+nJ{J4QE)^Wu9B=]B2x<<4Z)+m>3+sotqWF&WE#|7()ccTtv#uT#qh/)cW~GlRA4w/vC!>>^aw}Vj+XdytLlnf?XY&v,*YzZE)7j|.pZ8D7IJ5?tKF%HX:Y#y75:,q<:tSu9v5*y8pHzn|p@O#_a$:$0gX09nnu"rWE+Fm~~O"VUZt5ZlvzG|oK%S34As?wb@^]{,`T{yDy*ZB6.L7iVivPueqy_bp)$egf+?jABSyH&Q&Qvn5^D]E2EFa^PHc;p8=i%!Wp*tx:7]h$_[VfS``HgsJER&6yzu^4E,*)j,*2A&TI,?1"R(2v4D,^UkJhtk%9+$]lEsM9v&ey3o/7o225pm,Rz^@lAe0r@l,A22VAn27ZqFHAuL}FBR0!/:N,jAwCcSj!}vD4yh~eD793gwg;D,}B:%Vv@NuL.e>`/amvBKIF"*{D_$UQX(7%e06e`OA45JyZ[7y,iavprq9+njHyRF>M$!55TuVl2qY"Yq?LdW"1[0$V![8ThrR3$l.Lwq|8{3g4w>3v2u4.FU;iavja^ndTDV*B#<$d>jzWdyiEUgFy0&.bJ<_mCM&F%O7Vp87j,1NZIUdMTh[I4Q382zhlU}JQ6=V;n:>#yT<5yvwX5sI:e?@>40RZfz(sVQH<=HV1qJmZ0H;`T.4HWo?iqasN"yvQ&`@Rb}t4vJ94M9~Zj[<{ogF:B?,K(_(/T6d6!TTn_xK!ba@vNA+rHSv{>3Hi*xTsI,r^GQBmubGmoP;%6dRk$V[Vf#^9L.qSN~3]hv3C}n=mnh*To2|mg$y[%0n8gJ4voP2NIEu.{`RCR(JLD{XAJsg0f]p#8tTcLjaRcJM/C!)zFZSx1lQvD1~!)Yn1Jn)nzJHL?Tm]UY6{z{.MY<.CW#$e;%$WF9%&q1yD3i4u^Egb&4nFdcX`s*d+8#E9u>|aukfq^d1LRcIi7x;n%b9*5M3&UaX)=lRL&/trkx*t#oa.;K=|K8i:!}SufuXW>UfIa@Xr:yseaa[/|vM#%[26k3gt^cGcUs&#sdR5OgmF9j7GL]V^^Vv;`E}h>n1:1C8t4p$Tp4JaRt`5nE#X8^x$Q^#0z=nTo#RUmK+O7b,6~;UJ=c+"^w_:2wU!f^_m!a[K8({vv%C6GfnZAF*M2uT^N%fAE$`h?8)>(Q}Fo7f[uzk7G$]qWmGd|DKphI(5[[Kdd)e+[5#jk}FM0kz)Bp<:=A?z%k}1>U_b[N/&9tz=5GFW,6niuS|dR4moJP?Jo1.@!L6aqm")r&CTu)1fOzHxx{IUn,%T*=yL4}cs/ngM!::cT.@K$kq>C(;,XtJ;bVV`FR?#xMOy(t[k;iqzMv^(w])q<[Ei1{Wp.cit>@Pi1vERa9`iBdj/K8a3;as=uv^x%}H5DCq"HUQ3|E#5FSicQI*#C!_{l%[rTs$V@2;"52D950_A$ty:g|2{l:>IZAux77BJ!>OOIlXgLypNdew]%>p7f~M+%6Z4_5fH|HF_k8Xr$8a/0px>/Aet!8C<431$a@]tl$TZ/R]Z%Yf1oF`]Na!6,;J/mBGkT++e19^sSs[(N^t2)LHQE.4Efg=~;dfl76Ovv~r&M(.efTzDV6([qhq%N:s7I0E#.)lbjn/:3On$+h$f"]S=/tV@RombW(PC|D_x2Tr0)t(A@n.Gl&+m7(TL]jrb8NV1/4h@TDhS@y7{R+vKE#T7TOhp|M;Z*&6D*c084SH#7TQVR}y.0L{)]AK|>yTrbff<%Mea}12^)NTIY;7/pJM6)s@dU;ZdTt?ZuF@8(S$ry%/EL|=Iv3DE&s.ax?$UfWAy#SH7P"hFs{M/tPBR]l_8Hl7.GY#81@6wiS3er7h;5:l[3?81]k;1|xmOEELbiw>YJ0j(zYjs*?W&)3"|fhhQ+56q<8h}gvH2i(8=)%Td.b%j=n~[L[bO0#*>wkPrvuy$mvRRV._2Kw+AX3u8IXp{teGjtjh`:W+DCz$7Dw]5=b*G/Ubp~+2?>v8Gcn^[&jyowv_8YKrILssBq,dkb:Y?Po*,WGlXxtNOYCztOzcWBa*BSY;Ljf)>NG:N.;q[j!i(.aCfw,1&rxELP(:>U7}p3AswR9}U*c2u?92@(GiDI?:^&AN8}LofFLh@,J0hcl=}W;Qx=x_$Ld>C_}@rI8Y9te5K}Z#+SfNYq1,wHw3?e{H&Y/_FH&vn}^0zt~9r3|E[[gE|~K;]:c#V7!fr!}bzTNT|&na1}dvs"zfiHn>_g7.gUSHeZk414xZ#,wrK[#*m:{Tf2@PMb_cLW`h9uW!V010OcS:oaY}=~9KF.h;LreIb~4ZOGFgj9GE/8("}ff{_Yf.Y.H?bSKPg]wQH|gD_sC0*5M)0PjFW:71d^N`hpjI/$l3}:VIU&0W_8.t4x_xFT*;W0D)Us0^!Tzd*Rt)IEhFZP6TcaOJA$wE"ER3qCs75AUXD&[^^)c]Tw2Zfn!%m;+n#2Q~0].nUp}[>~b3EVtb|m!p6u8rmJ^9X2J=NZk]]F1,Aorj0JrL~~o]mOUeuTr]j6.b;uQ1Ako(srMzX3BO/=:^}QeNXg?3ZNS)n*o=jT18nBV4W8DSi}UJi4,xq*0vRso:T=%2=K=08K5va?#x4q50XCDg{j2vGb~gf>mTQYeZ2T!j8|dId_Qs6|B;C9a>+]&3x7xYUQN>3hsdTS&EY^Zt9h}HBB#gRd#CT:i!!"|SKBvA#Vyr8(Y>u[.FO},.l`(:*wv8j:?dGqg0Z?t$u1bdf17H<[4[,6%}9TQQU79=DM[~8{/am<6>B/SrzeD_!%^G8cL#hZ;Auq|&mIn*F>m:LGan[COyKhDal%NG4D3WB{%r|*28E?Bt!wC6_aXl21E@xOD)y"A?5op0~3^Y0B"zOd!DlaVvFWG6h`rgck#,agml|r#_)pT<#UGXFd8)0TF=_^2dcGRhI7A4d%Ow{RIPq&KM5"8Qv*kkJF(dbj@NZAq:?(Dd%^!4(lv{8oyaHpJ^V030)=5b%ZNf3Fm+=rg8fs_6q?0}mlmUkAWMMsK}hBd)^u|J)|PT5ZvYV{fnI!];6t^]u9yzoXQH4Q_lv8Q.K3*wC;d0NZZGP&$nMX8g?ux}5S<,/1$b>Q42Lwipk=,1@p:b/r%sg*1=>3zt)`pi]rM;Zt*A>aK2IbYU$)Hp%D*k/wMgIkp|l5e|pY9C2Wd}1s|6:#e;yGVL]OauU_gk9"vsK|Kxck~8kX*|arAp6`aok%o3NZz=uhTc@=69.*H6[MT/6"fn:yHNQ6SP/J_{kX]Pl~&mJ0{q)X`ue}BOVOH4TVMLoaMcF&{^)@;[ryT}H${_XeTB;|inxZIGuM^ZOK^Uce`Z!Z#Kg(ftxW/joxf?uUE*d<~_n;(!`e$q;o2Y;[TGO5@yl=`z@tNx0kHV`>OwkGm?>wmNoh>1$wzPXvuLq+}`#C`xt}T1&NDcb:R@cOV)zzUvqJ0nRTJa0{te=Q1bd98c7YiAhy&,6vF^BeHO`17~T=l}yx~HE79j:D|oPN2`,CW6ohaQk)fc{=n^5!qMo$.@sVX{O$^}}eo:&TJ1w=Ul!Q8ZXzNLQ%+vmli&bxf~uPC~[qWDj)liKfm`Hm;"kWNh%=:`kv+Zk=L/)E"b:R,XJFc&!V)7UkK[v"2"/Q[%`eIL+6qXMcjZ&f.Kz=TWPI8WYxZk%LE+4+w+eLl]<]ECl6tC+F^K&D^C%k((Id2BaFQH>eKA44VJ{L;Vt]$CbSj?Id;pxt?V^3Z9&B;S/#tl"5epC4WjRVVEVNnxS!c#eu(&~()X*^uVTQ`4*SgCm9/1G.C[D._custF!z!Q"jLM14=hnL3mETNQ"IdOi7E7j"yMZ^o4^X:o3;MVTKZ@[@`!od_=a$%p~Z*bl?aRg|P//?A+1_~)qj9{dcE1$og>^w3I$354s)ksWjV@jU"o6+&h(q$(~q^S3tW770Mzk4u(|QzNSB7>@4;3tfEWbk[hGp5ed*Wul5@5C{FD65>|7huh?282w.G{e&pBA&}k8bC1d?mziR?5X1@0kLcYU@3+mVvV48?C]q_JYw5yApGQ13,%5ZM^_o5*ye!q5B%yzpJIQ74SdPLdrEpxFFRNMt=FZGcqRF#~[+N[GEG(y<$Mior|kB^+W^e>;Qp#PWm9pOm2AFiV{c0;^=|T5F8/3"u~2htcKS*a2ICWTDq/]{U_2:wf*l%%vl+!c;XkN07Z3)`z>OBv+6ypWYSg@Rj9_j8oZSS}U>bJLGd9JpIzap8wybQ)Yl[U7]$"(V;X7bgCgJsojmb(H3fSz~d6r|G4$:+}O2>3iv1sz#Q@[e&I)CVW+X%/c$;g_#]UaA1{!~}GNs5H?t24{jW&Kbx3XxXG_z_yQ).3|1^L3G!dfKZtYXgKRIWiE"x|lDxUHj;PZ[pS5^%h>~+/pwdIzemq=X5oY8$;sG:s:jx9NA!t>fOr]kNAkq2xgE*pRSLQs=Ji4{S)[$_3:92wbVdbuIBf;l&4w"gkc=NPl.*L&{R}q9)OF($gMquk+X%@pBTv4|4,YiA0E74D+xHSVxMbQ$2awlAJ$f)ok@gt51q6?n@Lr+vQueMClMT)/]fXxFTKCCQuyQ]BA*pEk,4G[BrGBa2<4Qg9$ISXi@3dZD`ajrnMPos_?UYE?GOuhB$Z3h:>EG|9/}@i~kv4xd"S)>j|"upsIb3nzb66vL==~8|Y{heIQ>B;oBv8H7*D|DVN2A!FNIk[l0RYX3.q)N+Oz%M,o,h=rqr"ctd6FA.!p~w`yx6RMvtCK1uKTM(g|2j}/2[jEo0Wb&ivwwGK0?&Yb/<,8qslh>Fq0Os#DXF123=8)3vF2BN_C"iQEpvkvHO1}d6Z2!uE4J"8SZQ@kNgbV}VhDb&Jy&Ne=8Y*XH!`z1Vg@St;U^{@YTdz8m{&w;7Irip`w6t4G,[G@e~,?P@rSdlf,Ui&tG"U;>mHXH!7d4}]8mcEqX&J~XI3<6KT|Q8*@ycGy!"OEG+KJlFxGEy8*nO^&fJW$fK=QK<;OROP4|_84$k0`Q$FK5S_,"+F|1,y]~G,,"2=Qwgm3;b$gz2k:W}>c)Y^|RgFW/=#}H^u)1_|[_;V{i8#oiwPJ#QD.x+k1RYXAQoJQKR,fAUPhw8TlCNCCITLyTeNne+{$#<:u%uFRzvw4=xDP}l]Pp[Dio)0]x$s5>r6Uh"l$(plvSrnN0y2ew@&9<8(q.+sxVcqW];5F?!Isxm9$lD0>ApNDh7Hl(JTu{BSFcBU6qM&@/vbQJdL2yUa*w,c+XxjLs12%f[j6QZc{u}U5b1@uGuG?aM{KBx0R|.(}J?v:Q0_v0x#d4Xth`nZsi2=+UT}MK=O!l?XX2_jm2"l`DFjX#AP^##%2)@TgnaM~r&OTm{s{`C.Z`FL5>6GTo5>[84SWZq3.*#K5Ba_DWhaP[mXR[]s.5MpSJgZJRTQD!O31^!AIs3bm2T>~.)[j_LaU!:T4q)mF6IygDOOc=e98hh@pHXfA5/npZYqb*.X(tZWhatK!U~4w&cq6Sky"%56w3}ssu_ja8y+y9Ff?0JM7g/2M|C^ZELxN,4M6H+mT[u~dDfu6H5C<7V}?Ss;kW|?p6#_GHv.OV/zI((44Jbj=b(eEYbQ)Oo0JH#71J1zujT^~QoKT0v4)H)OSB;evuU{@dU#S39hjnzS?4`K([&;7igB}*hy(tqG2|^0pzmFtyaRjqb#vjUW0FKAucsNlM7ih+X4$s]&p,1s.Ja3,jfFm?g7AMI"b53zFk#PUu:qj#n"0BDDimWKtJM;>cqY:/B@Y"iT+iHv]/}W}08Q[xsMElS;ym"{R`$T>B%B$ks1Hgx/?ut:N}~t8V[e}S(@x040jVi4125UpWJ[XM*%>iIM7O#c6^Ly&rz[S/LFl[b@8)+wGX+i`)k;eg?BA8gMClP^xmnE9:ddaB%s*~MLB0F@VpRC_He%OgC(wQ^h!GG@I=CX_XE*SLruV2EWE)BpYlEcH1WS?iOS5?Mt}vh{f|d(_FH+%:KTOdwZ;$+4+^ZXx(jLTzlDu?mQq_VS4H3(~9qW:si|fJ)xUhk}LfbL1o,vZP!?`)H?4@?H_Q4bW7Yd84fd1aLF)>r7G+xMaU?}CZyCp&tAO]0a%t*K)_hS,3,f>S;F{rv;GsJynH6yLvxA[u2sJa#xKKGSHeVNYy`xtJgQD0Jif7)cW`Fslg9h#IBTL6mElnL|iuk>(_eg)qp!TVZ{)!v2Oq_mby+_^TnGm*!$Cnv9iU+;,t8ar_B*FcR;F+xtLda}>8GFDu2ld#{R(T>;`z``c=[E:@HC"*pnlB6XIzhG0?EnNEEQI2)9v4/{B?qc`+:^b^QW$UwuKZP?dEy:zvK`/k1}wm8LA7E0PKlm!9,*vQ"GN#}x(%&/w#!3r;!SYJ=;.Bm5uO"=j+CegoR_%yh,8V1j3fwswrS(t$z:)u*qkUqi7&^&?8rwa*B/Xj%GrYru>sOl*SoqcDA*R$UUOSjyZT!<_R}Ms#n4uo|~,)LKEIz/^XnJ[>`5}<7G&1nMbD1oShzTw%TC#q]a@:x88h(S=[_4K(gg/;bp|_sW@~LBhf58w;kwWpPTywS.D(xtPYXrSU$:/cznup,&$_K%!M2WB$)Lr~kcxeui1G]8F;#U*NUccdR08aJOdn0$?q:(!MFk8Z}/kM;v?_)+)]Em"Mk&!7#AETt6cG!=+fgluaio$!nFQA@)~xiPSuoX8$;bMjdk2Pp%^#m/&ndA4Nl)lxrV|,968Y>F;SMmh~j:ii=9L(5v@8YfM<#4KtotEYywzQ$4nIEx[wV/[ic#TRFEZX)p_6)#kbRSOK,w=_4k.&nJQaR^aPRB%GV~[!2RJ{P`8;GAd::~gWX18j$?Q9zb$N~P||qZ~%t[x?YD<&g/7W/:}{T"3Eisk23hD&_^`GTM.5}k{F7u+*0;S9g#nNWoLY~j$FgU60u|I#oov_,9wDXPI2t8~Cfp#WO*w!v2&)J.d]LLM@~4i(a}uRAZfD`:ONzrn8$:~B9>1)+j^xfJ9K2xM[cfHw/"U5=GG5YNw]JZ^o2%8*Dm}a[Se28ADu5x=tCDFqcPx70=R:EUzah"QN?4UwiW2UjqG%@8hgo4Lw]xoQ1BVmb3O+fVQWz7tcUJ30{/Dc%7(0YnmSg0M?K(D;/g<0R0]!(YxNx6fQw2.47.:}Lz$2[12kU:rxed6n1e4&}=DT;aK7rK50w,N^nf[}``:{CSwZ2eq2zaX.&e|p23n#g#Ls%T5(,Gw3wR9=Pn;:@{Od5jet%&F:nVqPCtVh)`%y#zxJ~Mc3W)vuvtd,e2l"|Cxa*)kk"iJR.Bk(#eB3vs?tTEkZ%Lb9lul/pYC/LiiWoCD[}l+qXkNai*By;zW?QJ>I:X<#r@^<.USEUcK1V2eG3&/w;|yv3^vwo]U}id}h9Ki+W,hUDY1GPpN%Gj+*o==Eqq]5fk{JZq=nP&YrC&@EUp0q)|vf1?KS>>)2_8IM%Vx(YSpjkeH=k9ojGf#2|r#ELn1Ccm8zA~LK[uiLH.giKsW420jmnir;tbN`,@(b3;Lee:r,$Lx1UIcbC;#>8jJ^2RM~rH!k7(G)_gB=Mc(xrxlI.l180(.[HOb$hyqMW`@SqOqDV~kRzqxumuMWhO<._/%ldU`1G^=]y`RgwxL.8YFL_n6NQb>RY5(&{UdfDx%=ipc#.%aG/|,31,@N?k]Gw8Eu<^TvT[jJzVP;@ouCg7cod3^6O5S.XS@j*|zXN4VK)%U];L<3hRM;m~D}>sdv=vf{|/3rSV7wYccP24r2XrSLfK=(xDB/JrqqA.97b[HN>D,K`nE%?4o[P"]E:+7[MIs@CSGuYZiGiTgUbdbfCUX8F2?h*+FjZD_%Fw:[eU%U)99AT_GH5u~zkXn.6R%}a(O26`^NFTAwJdLWQvL0S"6xoIe7dYEWo9f?;K#u8>w#(ab%p+*T;$ZVc(Cmk40Dkq+ruh%6V(KL`fd_p]]z~Cso]7Ez^;KDH%6yH+FVz[(}!wu3L(BK8d~3Q0++pEaT/}TDhP92l73:lsuE6v|<{1]co4nP=2,Wtkou(XUEOqJ.QA>PH+Z%yPxC@sGV&%D/epP|)LZ#O0dL"&*g{O!Pi&qT4ZK=pd(5VrSj0aciPis$B?hp5uE[FXjmk:y_(,"8m`{.mO[^1jR=hTx#Sm+/js{>tOF#+tOhKnHl%zNYY}kwi;X=QkdhxnCWM{ifqX9mNph];Qq%f2QEL9dGvyyQ^H[oC&6Y}026S[`L4xhPS4ofWcCGf7CO20zjwYfiJDE2A~P&XF_9HR!$2Vv7gTjU?4ug+&4dgasq+3{:ylnxoLHr+ni)?b9!9M&{F?qT%]GL,4^rg+%K_8OK?SN7}n8IBJ<]p/mfm=DS1.;hh6S*X4j|BJE*95pw+h@Spj%{O+m,|F)}R5Xc8{Xp?8>s/]O1GjqVa(oj|p4[%vaRL;hd=b9l/ERnV&^h|LO4Po6L0q(23+YBCm]Yd(vXg*(=diYs;O]p!hZ?{FgE+N%DtLn*M|p#@(x%vUG(zsN_#zPh:rqYa9[lAWY4?qu[9Q>$oz8^jZ!OiuqCl@.[rL>Y+^4lVNkKNyc=`ouI+~?G:mZDIf}HnXs]3UXZiG~)N>OE$|T)/[Ax^&J`Qofdd3VCMuoV!OEGH)@u=(n%Ibnuo%:*(k6X3gqhJlb90LB9N2KB0z3}o0|/Zwbj@{FhgW!9<&Q.NSA;c9W7w(nAg6?~ZI*yA_|5UmGQV5$t4`hZ=Jt99nE$n)GO&N*}5a*Pe|t7=qUE._[P~>>h]Q4|YkM;Cl$$D~n)8q`e)R`lEyGKXhtu:2@>C]zMX?,/LD~Zw}5`Jp1^EI9`j43Qb)9ic!sDrYV56A@kDR_!fMKm@?;rjvN:+5Tyi*2g2%QIJN?X`hrS7h[Yjpd1<.pNf`I[;jdr66D+Pj^j9*ThS<=[Y`8JR~{{?s?oC|OCt!5+Y?@VXEq[Ilh7C+r}7QJ1*o<]YNH_prE].!FOi~zdY}Ub$SIeN91^unY"}/W$Yn)e+Jp@5:)@/&Ksb"kv>L5yteUJ`RJ2E:OXlA?]{B(^|Kjh9x8?4R1%b6}[nT8cc|LAcFT7wLvQbAuZvcNeh^s|=WtP:+K7.ieapwv,Ge]F7i>i*Vv%dBA]$rqoGX$=Q%(6^=^KMRiy2HI6rg;NzOj]NVls=<}&sz2aE_A{[n];y:j1QQE3H:NR=s4hn3qzGW2{m7oCoUIRFj]ifz6oHrZT1aPu7+u,5Q>&g%qNe7wX_pn%$~jNM5sfCe*`_Q?rM#Hl~.xXi&[_T!$XE&DITtf;b>@s=jKD$p!adU/U!Q)7a*Y4gV~:M/*ROC.M($^Ull=mBt+1(UtSCO8%Q6rInqQezWJlli{*4o`CE[I"Sv8_Ku9FKgji%m=8pE]Q:X*pZRE+aCby*7>BR!0;Whe_rk|J1Ims2"eNB5[+9J^*Gl/Dv]hD{Cvg$1yb`?xWz=`5oh}MuQ0x540?Ja7E{M@68`26iWU8}ERuEhzH,3$t;kq$}y?@R[#gM+dC)b3/V[Y}l]bKpBx+e%D[A>*4`JiOKu~Cfa449^P])*z5py;;?*ZZ:`O)R_^{R,gKiG]BgGSu,ReIh3,uDbAvfTWAFuM!y_I24@e58Dj,PKcd|w;~b];M:(w%q8i@nW31K5&YHd7lWWtqcwoF.=iF|_O;+B#HYi@:VzxC&hDphS7v#4PRU68I;pGiJl,zto|IBo<(g@qml1fO:+s#gx&ULazq}T9g)}(?^:<[Oasb1yth@s`8cT"~J>lA`Xd4yYw2Iofm"UWCV9>LJ+ZJqN"]ay=%_}Mg}r{DZD_3=kvZ]#1U))AO(v%uE/XSqc5a/&<,V%_hI~;^eC7cddyarW,!p.mW1<3I;@!wTf}qKi*/{}O/t1{`SsZX76LGVjppPjG],M.6VlIlc^P?+ssS+ZB>Mm"yHGxqf./P7oS{MPfG%=i=,I7pbO2:T;*{,TzSy?Yp&_>Q|LSv1%cN0}EmtY;JZ0t5CGO*le`(u=z)U.Tp$.L4mcKZw6F]$X}H:GB&%DJc=55xeC+6U,fByFKlbu+GE!4,U(B97>Z{,"c/BKOZ?.WAU^ut{R==R6ntl9"R."GjlN&DDk}bb&o@KU0/xaR8!siN;*7mNI{t.f>p%U}#uirk6MGDEtR<5_>[*E+T_[(;&eB)hf@_<.%9Z1JWiJe_#?^n]^0b5m)3is@]$CF7S[4*:>o/~9E:]v,Cj`kEz:Jek9>O~QUM=_:iE<9T/6`73F#|npltp=eUgQ262`XIjaHGRBRfP+yBIfQQuMW`5WXdYF(fsu@G*W!{fX^^gW_k{N2JHoiqP<0DMG,csM6HhY2A%kGXF]bVDZjxP]N5]`G=6Wefwv4xk(BJ9BvGM#o+LxMJsfk*^]rWXM[#g#ra#hLYU@`[6l]kp[sA]5jE^*$Npco%8#Ky"5Ul/=6:@`(Bt3TjYZcVzi[^N@/>Ta,4Lq5C4y_W.hU@3cvEaunH:0O~?q)=Mf*&&yYpN6(c6_?M5^uA~dT;DJ+{2_I~6V/F!qK5[^W?Y#WDx6GI(>J:zFa>B=DzFakG3`X[=]?i3]@VxxjC|1B(Z;`gb+?!#.D.wi9F=$@Hco=lcEEEhB|d$f+yk)G=r)@8aXFCb*0,m%B0msjz7`}_)nE#|^dyCv2?n,ywsDYJ#Z))+e!?c^*y%ZOXS@U@E@RvCP,r9z6Uc#kW$EJiA|fkunR$Ki#!{zE]mJa:]j,F@!d!>rF?p,p|)~q9K/Q&X!7vdg9U{@m[HP^.Tf]V/_]n#cLh(>FKyHr{5$eVWEc}Mvwhc(3UixWPdQuMIP3<^S/Ir8T1Dp@WRc>A/6ML"0~fc0WXr{O_}KlXAnRk`&g;FDW^}y6Ei{(LsaU*oRLNcuJ6K@e}NGtSD=v`55Jj6@ss_d&|+uxEUT6^k_)%^<:TLt|+f&f?arRu>r4q%$7qqAO:n)&yD=E`aLUEiR?*WC7&O0.Q`*J2&pG2uV2ptHRcnH@{>E[iF`eoNpy]+#kE*x!&8h8"];L_(W}n8cn"LJ!~!%:JI;_F9{XlRZ?9OPg1.V/8R7%]]{m%C/:9"}E5+14ky(a9oBa,x#{^$pOY}=&C8&XD3[acgvF#JOdq[o9/qMJqM{O[`hT[_Sb79.X*d=7$H1|$5A7wDW9oJ2}&"A~!&T(G6!~55E_DMdLFUUFK?*FE,!DYT80N!p8gK[yZA36I,W1WJ".[Hi<`cegfQ+PFU`j8ubQhzL4I)H|>8^jsE}i`Z+&:d8}aV<~w]ikj>h,l[M2J_Tu:{:|k{w:U1sDY4kb1r5Fs.bBn"WSnx:H=HHfS7*)5m&PS2(/_E6]/Ai1g0nu,Klh]C)pP2NkHQdm4y4nT5<0o=kf7)%Vo2:ad>McLuC?x[~gH+q3z(U,5Qw%Vc{`XnSx_J4S/8ns,LW)X9t=t>IgH4MCBM~`^viBT12MIiW~PdPUXTSK`et//h%gMKI.6tNC;?Te[M6"Qrscb*"uZnb!CZNS1:4bcexYI/SDp`9FUY7Eg@{vMP]Jbl1+O`}?au6<*~qKY@B|2!&s(jHN}}UJ~}Pu"8`+}f==0Pqf,BxhaL`r~FRK>(h%gke)2Z_]Dd8s}nHxB@A}!ZLW8s(QgFgd[2>7dzl}9L^J^an1f35)yfdpQT[xlUMR@7$?EYk<5)gR]vGPe%b?1Y.@!DLRh=iYS(xA.5&n(r,ZftJc"I{FnAq4aw{~Ho>ui?cAw`SOiI^nItp;<*=06,[uY?X!hq_AS#hdb?47Sg*ot5kB5{3]2dq&Hzf>SlP)HRdgHvrg)`_;PQpu[6ubfP2y~(d+?daIhcbVd5>aLo>kCc>10N:;JDt:=!P7CD*a}Z&}l^SSO^[@AY9ivk*!ew2tRHBToHZ_,.SLv.hpPUQ1NZ/+s:]VoH]/OPc6U>c445;5Xhxt^hJrBzd{^_/IWiixpi5#):".];4D$IE[YhA/%yj572IpC/nr%v|q&S(Z{5J{LKO%K56<|}BI#J`g/aqV]t,D(*#/jUVTl:5SoOO8i"0RTr5L,~b6upAx9EqG?#x.LH[I6}tda.ID|KyB;WIV1]$Tl"#MUz$JO53"U99^zb3DJl@B}=C!|=O&!*cMP&c9&FqKs|G&EE[CFoeI/d66.Okk?mK^%~7d`y[uS2OJM#w@F9s;jP,p?`%;[m`,k/fdl)njoLJEJz3B.2tyJS;K@2ONFsi0}$}9>oAOXbT7n)m{D3R#wj$tc82W@lWhbQ|vuq+uk>v6g#+98,rZL90Kto+)Ft=C:)Y#XcIXTPjN7=[O8XLf%Q8*cj9LdC9Q]1K,t+"W:Z[I"`tJ0C8+S^M?=yCdsYs`"I;cJuxz!/mJM8CdBQo#%vCPMM;ILuH=wD^P?Q+ohq$_+AW.GOlBllHSb9~Wc1P}E}MZa)v6g1X[[D*&OEAHH#`rNC)]nb8eG=!"g<~,7Zv%^v(1#w0GO^YQp|dU"XCJzP:4*c86sWI6Jkc&ht013Bb=jME;3W"Ll}lTk?ibwzS6M}_|E~(H8l$%tB;6m|a=@1V@E=2yvFP#B,>%S?lU4eB8q6SuO&:A1}8*h4PB86?N{C"CdhpyXI]=1PjtG9aC$+Oj9HT3igexjK/9sea*xK*)@9]Nz4yG+g4IuI%]A1Ea@Mp+P.z]2Nv(Ok|D/mfM3Z#d|K&(2k.hT<<,!I?$swTVQ:m&ka&kkgrLSqq40{rE_}{#=)yjouRiQ?8=Ul*{.cc.B}!F~X~w8<_(B_p[M/+H46ZzxRD1ub]lG^meWU$zZA|.`mu^+hvoIVEP|O*Z^(?i$d*(8u@YuFmEbX|l/6_2BP^onhZB5y<{AI:nn1;O%?J;004s`LcdQY?4PhFgtJE_z}0NSn(|k~VrM|E4//tEQ%CB8>VdzQuW1m@d6L9Smbv)!h9QBwIk,@P+,$yC_XxiKhVkhn3ksRu2_Ie*|^~"z$LAbGmOD_K9=Orw(KB{SnX@T{e`@;0|=?L@iMXVr!zF0yIU~UhJC$DV(COb%AYj5ka9,SsutEi,cqu.JeH4C>1uqE7Cv)`y47ox5"PiXI3V>Akit$_:kgm*irR>#/EV!*X=_PNdsKSN9%7[_:F[8Le$C){)Hxk38q?`qWZj!o/y:R>[cYS5G^)jnU!FM86(z$y;/noM4t#W|qP&5U[1h]FO}^A_K?wQddK%*&id}NL$C7J8MnQ)Z]%.28wYF@#w8Z6rgZKPdYUEKb$Q9J[~@2.DmG.ci"tXh":*MXLK%Un#uq;h!}6,qL/P5g@j`/zT_p/7=NY*Zj:saR7"+1Mb6"8bz8k_&T{a5N@c+(Uo/59&7AKxOizZ:}z(U{NcG`%3`Rjy4yqY3$^u_OP1kH=@OA%r>S@0&U+.q3afN:=[$[nQs^I^$(ZSc9He!Dcd"jB"4QeTruThLu9ACy>UPcLY<5h$fO%%WU;rb5Xh_rx_RvE!xSGE)`8>&Sq0iX++dw`_Xiw>W/;>,xkeUJGyd%7HH%J!FEkp(yWwZvmu.]so)XdO86OVYRLEKqZ"zC2v}xt_[BOkH1+%V_6Vmc*nWvPQGt7i|jz:M4P:ZA]@4Y<|HhNVzX/H}jvHby]<3_Rj<^8TfMtoXIX9xAelFdQc"LN^1lL+8>"W.}ZkPq;^s@Dr%Q_!+<,=rq^a,[mvYciMp(y8R7r}=T?R$b]1*jy4P)2qXv.j$LKeWXeTW:_wJy3BQYz:6?P=1f:hNbFoJ,!hLU;Xq+]7%UxCB!asVO!9wc1tg#2V%n1R@WB51?wV!g}Y$~GXPqrp#6R.xPdX[P[i8~9vpL>>ubwnSGj+NH[aQ@W4&^#2ScY{z|EVhyZHjl&[OeibkZ5u*e:?}^6M/m{(:L?h{aG2$9ro/mQ=p:.k0kW%3"0H6$_9*/3w2gG:@rSUJ%8(>og@MA%+D~scH`DG(#j0&/1%]p>}FADTQT*Y~?RtO.Dokd4j+%$V<1zb4X+4i]BKenK%2S5s5.8vHH}Q3n*bg(fB2o0>8m(0?$M+fYY;MLRcU.Go:^q]TiYrChlJNA9Y{O2%NDif6JQ(4!`*u[z$=(6T&15PxbCh#mHugsB5@>;S8+Mug0nDE?!(>_2[0pLFtFlLmIzbPu:N&KG!+e(h68+E^4pYha,G|o)x)b3$5/C4Lzx+Q5l~YgeC,`.V[;;54szh~h6?0bXPn!t@YMsETx6Ju)#4,OGs,9~DqJk@U[h=)3Lly8;@evG/65e6}HCcC1W@hxU~M~K=$0uybl:WQ/RJA<#}{:?8dZ2=SR6t0QhvpJiHIZ]YzGwSX_1DK#VHO}>.5y#Y@E}0|cA7y_LyOt.xDQaOfXH68YcyrVfj^[vnL^`BXr5^f]c%`h7ViJ`cwZ4yQl*[j,o8_u=K~~Ih&iyg5<07E*n2G3K@ai#uD+>;6]^hVd]7j%Gv({ie*.ZC~:,EdHp?s~0lpe~]/%Q"!/&rVb@Uj~.SFKWR{,bM.mMGV3@AE;F"BVDDK1(*bT9*FLA]Cj+$q>`k?1u2,&N3([tujVit+dUAaodMSs$cT.S>vAAKB9zAB]k^>~M;PNIyl*/>%[VHomeAwo<8=HOv7STz$M{!VnTb=}KW>P4W2?h_mqYGg*pb0#}GZ.xa<[hBNow;fP^65v};T@36WgN"u[5V@}5d&_d4p5IUJ+5z7:AiX5HFHn0uL?+@>1JYT1WT^5Q4?y5@md63WM.4Ra,ck],E0mY1CzzdxcMGy@k=#uv*@cX6k,93$n&6ip&,fzory:B}aS@^"6[fxHnwf~C"(CARA?Zidw}I}|H#4(vWB0Df9=@9zM7n2a&@uZ4.G9&gXLgEcyl=?V&<%Ex1J}}hpo!TS7_f*h*pVM|^VLlvg7Gnz0N{e:E#b`Vr[yfv%>BytXEHAL5Th!Q0EB5xzpLBz:5_%6O+Do(WCLgbkV`|~AuKa,2xlN8`>AtE$NQePLpg#/u$%b4_LZHOrT+:B_oxRL;XN|R0yH#`qf0vTj$eayjsB`F:itsZbb9ZjfH4iJp)wdh8JyeJh8DZ*4n+W|aGK:R<+J:BBt7m.S:j?vF280A"u5%gg!4f~mq|k7)7jPidtCVMB$_"L41BC#=1`c{9Wi{8(8M^#q``R>Tk+Hep"$8(Pz[v&;02_bKmQzzw6]3$%$qq;tt^j43{jtux2Sya9Mtg+y)K+{x@R[:m|T2SP;,Qu7v,93Y9@/Aek={35%Wa=EVx>4De@ak46ROVE[8;m@6b{0QV53havAc6ES9P&O1tcP*xk(CMdhDI>66OG][GBwk;W?eoxgoVVS)^^9o+~LH^^KE*0nO0}Pl`TGG}s[4RF135:I@y!Qbc&m@MxAOx@6)&$ks:_zI1BZehlfe}0UBuD+l7kjk"y(ZuS:7ZevpGOs<):V[hl|;CX<={]E]Oy=ouYl]5IF!MIWYH>ml=u9r48w2.]S8jQ5,9ggrtN?ZW^:6_=ygoW9"5nFN{+PS]jkXe3(Nq@N_x;MUoiPlhKQ_+lge0SV}:uwm;!(K?p9V!}:snq)1OZD,+l#mO/h2[5);l}q0F3On:0:)TDPI:L!7TExA4wrgv({pFNNC/N_XI<[WJr/Mx9n[{WEpbJ_r[=@*5H`|:06O5fZh4Z3C{hODd6Rr}67eC$8=7N#ltAT;K+|u^JIOx=MyWBx_],+s7Z!/}S2Nv&O{>jo}c#BcdjXdq5aL?m5Wq{ehd/?C{ns;0=2vr/B>h~+=ci1ZPs35%ro"82>w*D][UtTWjEZc#ES#,DZi|$c(U)/vDK7|k?t=|]+n8Y*zMCcwZ)d[>PTZ(COGCCPpmy5=+3hu">s:a$FnwYN^boBMBhOVzn{$p]Q;L/tDT6uBw".]dxS"r.6H`Nnv^VsHC`?1eRl<}3+qfd]^#_#%Fk_U^(l!QVx[S~*P^x9TIrA>i>@{h[_nIfWx9qh{Qx,9VT;&#E6Qzxsl1osp#j"hs.x*@gld$Ih8RN88(~3NZjTM*o(MS6R+n;qBWS43$LlD6d4UT%thS0;/RDD<$:&f!Z+PF*6h#e5>#jB;7CdCDmjTFH2C3PZAmgL#nVqUi?`SlhqzWcw_Qu>9k=ok+sXc3yKK5hLEJ.=e/5JS#$b8nEI(Ik|J6O~Jm+tqaHW{m=Nj/8[g4qYbG~Jd@VVn$u_Jy,[WUA:V(d~};)W()MD4=N)ac7|x3hrIy_:5`gJ+>n31$"v].(5gW{z)$2OG0w1LkB`/fNt4ROjjd`#95fvz_`S|_y!~`wvb~5}*L6?l$7BQG$3I6/7|GbC9+6(s6Pf|xn&3&oorj!/ibx?,>P?*w{ESHh4~8v6qfCg@M?2Erm!f[V,REGx_,uWDpXnhJ[ZHzWKI;;vy6,M.H6c]pOp9c~M>EYU8FJ&@u$/mz!!=gV5DO*RORD:TCdXk$w].afvvpN`n[NI8;t]5#IkA!+DG^i#%71J<7?VM?fpB<1?NO1UQ0^+eq{|t{?%5LcZj&EQj}Y%~c2npfc{gn#T_W(n)S`4@`h5Imc=Ru&5hScoln,]Qx0E}P#F>dh5H?Ux?(NrG@&T$*B).I1,GRmGMIIBI4EgvE/%1&[Vl+BCBV7#)8DZ15yU%roOz5(*YElfzfzxzea}I*Gv{!Rl#E3Gqrh"yq@2R~w+=HCJ!!:&_VwX(@OvR$}`+a_D?2;+6E)ZjBRkuizD/|R{U]GgQ>)&C+E<$^Qi8gjAeM#?qYJ*2Sw_rAw3S6H,E]Qo]wk8N7=.,IC;J+J?C9]^uW,i`|>8FPW=F:~m870p~LwwjyP^$aKn^AQU?d5mXdVb$J4Vy$h|[vJY!JkkvoPUEtPT_4AZe|}n?PTQoF=f$ty:/kEg:fi0eBC+M<}(zN2<3AYNu2=hH2M&=y@{Y~L`u9NlJeIe"][R|9/wzbq#+}XOa;t.=tGa&3b.m;~=po9};)?xv"$/.uC51)B5o+3_,(En=m?%JL^GeWg5pojn0%p?j:5N]@3xy=}J(2SP{;ZZvG2rm0<5VKBY43+yS;TdtXQl5vK"^_{z`/J*2ov8URxz)A;My)c9RT|G1[0&qeD?n;Xv+0lZ~^0#H?7/=bgjMdZC`q7(QA$3^ai(jJodvv,SCm4pUipG6l5T^eT;3G:x?wh5kS}X>>5p0:%:`Z@G{G@/$Z$S;!Po*(@;27OO?#,4V=QP]V;Q~v1`{hx.Xd|5AxdYRPIYUqAK}3AdJ;|C!loH|bzHNYTn}ClpH00[CCHi:|i?+g+Ca&2M/BNiJk,(x3|X>+:}CGPu"$LkGTZX}hid7H/s=b7t?bgiLYSv1UsKLv%4>z05Trvq9b4vYE#.hqaEzzOS1kz69,Y5Ku]4x=CPpvf+PMclwBurR"_mcrpcDhaDMjLG{TOc*dbc2[{:3_1FRN=Z7vIA}|tTN[vcvKT4T]`I0dyTSDMW0T_y`qB:y"7?S4uyC(*B[[vJ%1yh6y+@VRvq&5PN3>Zb2bV@)w:Gv*Yv?y>8CZ7XPuP("H}Qwciur}KrC}x5LdoNu(>Z~+~;l^{Twa/JJ+e.DN0Pnp/SO}izqzJ;~G7RD^wv{_ozfSa~2E5>jv0RR1[,:94d`=i4N9c#`uR]JFd_c0}XYQJ,*x:Q9j<^Uk+OB0ELa]3a8Nl5r)XS$5PCn%SmdqCGU@ie2_7(X0)6(mMQ&>`H|{J?Z7R*t!:8/VWE/2W9kKuQ5^u}V3XK`?ec4=&U5YTnuwXbXLWZ1g6E&)IAJNX#dN1Z,?|m+i]9XnoC~h=TGYQKj8/^R@dqb}f.U"}Wc?rrRi=Xjc8.WkAckhHn[gl]B2T.ilze%H<#yPKwRSi,izGKFq7=r}M3Fum2rrOrwv!i^"rKprEIfGTzfwkuL!jns=E(]PxuTdzoTC2Ru,3OO?$nDy?vc]hE^KEi!(31E]X5kq0AQEHDHPj?&l3Yt]!KO:nh<{jLUUIM&NM)A7VF&M_e~RHulLFHPDH5d:7pSMIY_;cM6@{)V4=c]j;nsgk5M.con{*(v/&P~*4PwSmKLJF}wVrrxmKF20ZHrSqoKRI9|hri_tFu#Re6)8?MNiaffl}sqF.ytO9Yk$Kyic]&qYUkN0l`5mwCxn%B_>`U,{|OTipNj5f{ji[<>tph?WgJ/z+2}~Z5:I^]t82u&YlK"XJLmQ!]C|T]?O/G2Q:i4KBe4DY2`IbGHJ!S*[eX5rzv8}o^h7kMtPp[N3>I8/?nfWe(ZQR=*&0xQ%b@M(>oO0x~?0J+EdUsoJ/lSijbY9$ethJbD"WmoP@O#@bl9%).kcDL`{hceV`>!]1KkgSi5jh/Z#@YV_/^l@b4_`G;H9yki=.Dq@K#ZyH8yyx@<&zC%FNny5)3Vb0clyTr`]/AF"^RHnfsiDh)KXU:^QgvCcX"9tJN%klS6,{S*y1B[z(FXv#$GHKsSjvrpP:G1q_:$]nZ6d/{Q+dn`5$CSRkV34`dnikzKg+ixN@0SeP^k8}Lt$5>U6X7WcD+f77bxvY23P8;g#z6O7I=Q0)l|snM!@a8&IE?r@0}j46G>Ee*(6WT1lFX0`i^Xn8ad9Cy/ik6mDH(KMqo%u7f!S71@)4K(Ws[[,sRRVy+JQ87{^F!^2*,rMgeGih2k~&;^H:@x0is@ncwIjdu~GJH_2[}~aEi=r#Upif.0tgwG:XbF?~Bz}X6{&.fPgu4Wgf~m;#]@4do^XMgjRNt)|DFyhmYJFyKpr)W,r;|Kt"t)hs@t+@5&:Ztd?.P1NccBx04n6u]iXD`Y&o^4%b]oR+tjg{h/;%pUPTEfsZbB7^ICEB"~<@9ugX_U{@VO6+z|WX|q~`h^3y~oPQ*%bi"f6Yu;FV[N$hh6[:)%i)L/Z_!Qubk4,Y=CruT&,x>iMCUG!,.?Jk[Eqpmy?F4=4z87%h(r"x3^,glN"L@kS._$/)27eMaF1]]EaT)7eUVPHO`mj:8{c=0f@BD@nKb3O,RUyM?:|njZlUFH;`~QrA?M$`b)Vr^SO@;]erG5Q4Su?%BK?([Wa_`BB4WB.IKK.DOaWEheg.!.#0l?sQs#!XBsJ*}7O=>C}Rq+K0k,yTz9k9_T&j})Izzf+_#E9tlg#$YTaYQ|2B/9pqT{*k?/!jzPiQ4/$ME58=UX[.;.PG1/sweJEQ%vak(V}];{sC>MSBcS,}fuQ"<3UE$=qi[&=ws%(yN5x+]9(J0QNFVMPTN&K9iZ)q.I}u5LU9Ek|LHa$G{,VxJb:"{dhHO6*S.IE:ZkwP.K!?}I$Y$<:zlK5dguSRTZ1MM)>E]Mv>..}Vgkr:"^ax73rlHh;_;m~4G7}qu`vzZ|i(1^=s!jt|r:oNbq[0y"(kMG6D3[|H`p9MLJl_~|cA>lZBFl"ov]BtM!6NGu?f[Er/?v}J&XSy"Lsb`A/2Eutt7"_G^Uy!c%$JZ#I]6d5lo%[p8hAmJ$m)}&ek=53Iv!;jqz}vt`DV:L+Guv">BjK.rq"+f`l8G7SCtf0z_h4*XrYG8IP6BPTYz#>a^#$gaBcerUc4P.+6pTt[Fr)i5@&fcj!FV^FHN3`TDD1s[3Oq67!dbhPD$ilE;Q=&BD.Q:m=Wdo=Gd#i}Rc.AD!|B*h:ag9<8BVPn/rFHRi4X;V9d@{s$dOrYigWq`NKV?|+7sL}AuPsi~Za;=7A*pnWtF~R5H}NO4+E]Y(9K]WFI<8C}8dvuWu1rjtW8lKgWa`H_n{`[WdL1}Y3nmj~Rq0B,|sE|adg,,2|sq(=ik!ZxoJo&K)hwV+Wke0!s~;7m!h4{VE5B]S$3$z3,t;ZNuTWj&y~E$wUqqkoim^bhBF(iUmBFvqf3efTG)B<|`~e7VR%W`rront.1gh]BCF0sx1&xu8>Mp*CQ,nG&6OY"71&|mN3|0PJi,q.K^2_de/Sz36$1GQ5.r{7!e>#yv@+naDzJ<*,%zcKhB}*kMgsu8mwT7Dc0mfy}`B=UNiDj|[E3`:^*7_[.7[z(Nsn|)E~BPBb$1jowRc^Cep|W3^>>LPzcV.ETOQaI*){:z<%!PU$F.Lv1"(::S1&/TPJ]GOFH7CP8vKgx{m+R#O4G&1oH#s!g$;zaGseE%h:;@!)4{Sel8UzUB;%TU6L_##oXXMq/KOI&^_*:X5ds~jJEeKU$JGRc"Y3}"lJX%g`.YS0_kEn=ri=z{sx&|~Eq!%y5ON|jASHjc{1ZD.:KNu}f~9OM3gEKJw9fI2NQsDGQQ:uG%A/J)b^w#uf/,N|C:yksKy.e:rpxzibIP/j&V1!iGB;|JW|VU]]@A0rLi!/cGz,}u_X_k@rh(?S.h}9j>zZ8c&)Xk}"H4e3pO$e{0(%]X@/u5i]sxX)=%~dzer=Qaj68!369:U>Zb_G|~W>=X=NPQ`0F+EzX&1|s%3C|[!#~0w~w5>^hCx|VV?h*pqLU!DR`7qZ@f`^5(.;9#cZ?:]wYUOED^C)[X,Zxzt~CV.(*sdubP9[*B?oUp<+#S4z,qYIK.x)v$ZS2LO2}rQs0Y_Kq$GyYiv*(.P/w3Ssr_Jr!d;RT]fyKGS32Q^iSp2b4|>*&~(%tMRUbpeyOR9c]Q@]DRG)a$[9&092Uh+fiDABW9B6OHj7.)kkjw&/p#|DBYn8^IGLi2KKX%(f!I)m`oEaW&*KfMkz*O&@R:S?,aIQ?D6+stS$J`Z582?,>JSlTR)h8sW5(6}>zNrwL|r,}o`_yQ8OA~n;2?g!^DJhj5hKjF3qY5TPC!B/?P#9O3aBUy+T=7LzI)9V##%st?0W,CZ&mmB}C{Mpvr:mw$RXMo@}L%5>C)qrqvWDE>9x9`SyVJf"r}bXb$+>T7x_L=5R*(Ll;I66FCM/L]02@i=+vw)dRC){4/x#$YaZoI&),5;u?p`nQ*=y>c0,DE%Cf&?/SJA"O_e99oB=/7)7T~g$1@rCJ5HO|0_?}%kK2b/(P{MbEEV~&8C=q3cm^msHh]9){mjgsg?+.%_Q2g0A_njKp.@]k@pLM$;^i,kr=.j.``gP(sKu.%iQMsCeFFCTh,h,2=s?zGC+wDV!=6m(RxhM]Wy=^0$5cI]61Pr7y[;B:79E"BSvZB(%Z*PSM8s=?w[R/C>};vZ96FD_({#K@c9B2|owIWA._^UqFMet}>SrRqlQ,;9i%:bf9JlQ>Y&FF!^KG[#d;g?X2zYuuh,.8v>^2J@,IHPc?V_`N9?+=wx&Oy9Mpq68Eq]MwS43&gOyL,fkaOwa/Hp_E2H;xX#PlF:%=vT}P$bf{JZhrYS%{^S:]4E$E#u)D`+SeXW9G7^@;*#Ld?!lCP@<#FLquomEI<>za!{%{.c_@v(};^6"AI;[//&OLnB^6~WK$/7o.VICCR4dK)QWvapu~/nkSG?=U[+x%Zqq}ktpeCRs6~O,x5uZ;LGfOjD24J?>`5r{k`(&oGg~B[HbkGCI%@Zzf#MPpQxkMUGe{J[wLdP&H!]BQGym/0;j@G1cm)EdkpLK0,"|lsIB44o.MBldg.[$q=e?FF9;;V+gA~(bS$]Vn3;!zEr5uPRT#0WvyTdgLrgl4%4XZ9Pc.~rY|Q/FxbF(NomjkFyf#b23I>nWad!"Llo)F41F[W>a;f,eC0fz*pE]p6k"&_oy$eQ[R%BGWC=s)f@629i(,=Sr:f8/sqdaer1?}|~Mid_n1P@0J]cq;cJuoX9#d9ef*}>_5,GtD/x2RGZG$u?@<_m5LI1a]W559*@`@^}i)&}VtQZ=fwTLf.Wu%/Wz4vZ_k`ZwOBRl6!Fa^ruy{&=bqZ}/N5>cS:deahRC:$^Tq2.rH!cQ}q#x?6AH+N24Y054VG!n%D|^KBV+7X;+USve^,)+)uH=Rek9+xO!1=SFh]ll{Va^08K=r^cx^K%C02if@DX/n<3D{#ZktL*UpwA=N.&G+78^_j?`y!/m68mmC/n[7r&@IZ;P]&zE#+_Mdro849yU!Ie4CEcBCg?C3uLG)B9Ips=$9rAVXSXk/jg{n$h`uyc9Y,D8j/"#R(a?LFfiu.YY9HRx{Ann.uWZ]jG=N2|{wksj+X=iSF+@qCQE>pcFdy4]MS&>g#*tUFY,Xq6h7v4nzKgNgz+*=}*_5mevpCNs*;Vu3Q5rGo)h*nv)KU)h5BF{AYog1xl(Q{5&jZ3pe_5s*$;deZ!Eun`X1*t,_1{/l%<^vKz!=.w}gjSvfpC;dK=>OOA=jQH>Q)#bo}yyK`XE`>Qtf*E~z8:[%MR/2,AJfJQv]eiY9.@:HXMTFFnck>Q1u1I(wx>/vpFHp@}>s%}9.:h?pOt>A+}%*%+o.8`qNA"k/233q7AT+]ag9,K$ao^|Z*B*6(KfGPKw0uXj?}XgH:h^>Ju6r86]<]7a)hv"Dep78H;:uJ?+3:6QegjnY}DQHTHm.]~3rw>jqULLr.ub@30Wv:VPt!vq_DB3S9Jso:=5Y;Ex+9@_&3LD6t.|?v^ku}3(cbTFtfIHl4sJv02R>%*k7}Fb/5dQjZwcQrzns]AB%b4,#4HxoN]UPe7&dZSs_uc)1%`bTb"kKGHU0%m?lSl_N)j0yrYH$`]$u",on*X=~egXC#}CXe%!@rv+c6W>dkw`afu~N5XL0?#g;7s>}s`09Ak;PV`7SU?ZB`z9v>2q;,^c=bjo9~?9JPJP+[I$lDQ*zo8%.yHW&K}4H1iOE[t[tESkp#BG]^$U8e@U*3)trMQptjGYu|WU>P>p,%=3)P0d``@#INda7*lX%6$6p^lN.xgiFU4][kbBMxh]q7X01MNrWe05!:sOV8|~_{DENA$cM=45FY6*Z!]HQd:"ova2!p:X&8!W+.d?2LIMg)<#&Qx?>;9#BY9g&)Y)),9D1O1>KCC{jH;ht))#BOLqQ4r4Uyd@37boI:F1oa!3@DjVTX>s<4u=%w[5%JnB:C"L]EnI}87[[x9PLax>6=r(iK6XTuAo,@y(.3XJz[6z@[(sXZr|Yq[3#m_>=4.hHu#B[*dK8wAD_TwzX}0ZPOT8cRXhs:t7!hvJ;EkSYD|c0]{i`Mha[4])t;1vaAyarIlDjan*?9?ElPSR:1|!tRSr&rG`?P*e^bD$QGdVXj%G79BI63=VC?.|mZPu!e1OG7L=Ha{l$*4]JmJWdDg*l9U1(q>6{B@5SP%LD/[d/LhMID$WaTq/j+_LDOlI9diu((.r*Z;#@j(|KRr+3KN6:9zU.xUEnHm;D&K>4:bhiX;7aF,1!1}f1zz>,PH|VO6<&q9Lnerquz>gAa.*4:j0pEg3.@E(?ypYeg~5;W!41m5!na]EtMhTcf;=)RhEKCHKMU2:]wa`,7{Ut>Qtta*jR.SF=4$)&.$!>=^FkxB4f~I^7n}vk4~+w(XyAJ)Z}cmD_v@{<~E.0=9neVgfl/mSn8Q+(D?!RFIS.78=ax&o1R2@$lZLjY!GqRRPz4Rst|{X$g@0g@l2!PixB$wGA4KI{TdG&9#X7_ecX>2vPj++|Ou[41amul:JC{l.[Fg9+p?~!;!w44ADMBD5`7&s!v}`h4w+Dfg7Ia"pa_wfHZ+?U3?fqRfLr;d9L4LZaM7l)Fj6H&^y"I:GW^5`q%?VSgrh5BW$,RN8p_#Dx@d{Xw.B3vIO,ce1r6PICmU~K3#7YMJXVOq`9q"m&K:,R{Vn:~~)vHo*ppMrI`Fd9K_WLw(28I^oxLY`|bM][|ci,+rLwuy.KgvHOJjugrMNy^BXg]0kAGk9RdhZ~Q.DG#:(ZR!yAS4whI*8_(lEIGf)k0]ti}EO}UAsq,:1sKo$p9d}ehN0~R)Mq5%z5:9_25(Kn9in]K;HeVq@>?I2O!Ac&jhRBAIvfPwV:7Axx`g|*+IXw9B)E7vUaqM%k>d[MEpcE0wMnq{&*t8Vam6dDA2{"CcxkQFXm6y1;<}2EpH*Gv}|W,rPva?4CX$Epsn2{cveI/Q~,|P+bg!f7}&}sZ@o~Z<)@2ri6VB0rCv.uK+0"h7Q>^#VN^?6B5]y/mXlYPW1+Td:!KyEw_[wpk%oVwfx],|h01"a8>FFW|;j!H@!;msfuZJB>C,N6b&ebiO{,Z?FtIJ#gOpG#5*V>+FG#?fXSj:Rg`SSHtdTdZr~:!#]ac+.U_4$co#=8"ZSGzq!AYE"ouoYTXLalhAx9R)*RuCEu4yjN{>m0t~Pt|+vRH))H/t3,K6):yocwB{TH1X=tcAx:Qc,N&447KwGOE#v>gh"2%&3dv3E4X;Gdbhu]18r@^]Bo,CoehS2G"".h8:bc)u^mZL)Wq^R.y]fy`]p=&SoK"Y#0eX#|l4q^_Z4!,@k>MdN,Y0SQ5[W!)vJ|R98||76$q+8=(w]"l>Q>z*3mQV4*Ccf2cT4GDy}O;#4n@iuDwNYZ`KKYaG/SJC}SJn`"mkK21?+kMiF,37g<0EQE,GLTHSpA^uocfS$im`8B:#F;7AwbE!e+=JMTRmOcVhbjWU4$K,Xk^#V%aOF[gMdVhQJq`*Cj^v@KK6o`+PoN{Lt3~`}F)bl`K/iB,[D1bj>Vz5&35j,qIgRzt4B_d(J#x9Ah1G;VB57GsT";fKBzs>UY7.)vM05$[LxH,8@/~r}tnFYg9K"U;9Y6>Pc,B&;:Q^4t@w_Xg%%voz/~8KQ.KpMk4z>}Y6mf>0gfIjoIl$%]=%NOR!wolvP=E.EvI`WSKeT)#jr,^wQkM_C"Py,XqvM7|Poec;m/fU`4WDE#re].<`+smmk3Df1Bc/dP3uUwDfsum*qi%P4pP[3:POSDA)@.?N&?H/Ialuz!_bA{pGI(W&UJP.c.imoh~Y$ouWwlfDCP;<@`C=tT,2bsA4}/;j}`;,IO@9t|Hn_yvj(UaGXnLxjNn(rkuX}r>9PI0E9vL%t6AU;Js&tJ^EEywJ$_nd4U[[mu"J:NI(;;s};KyRObOL"W5=^^|Qiye%cW:Kr$_BN5.@$ViXnrR5wRX*=COg9geV<7M]Y?9h]69H1@,Lm9+d^UTFnUI?.Pw$i^,4cF^U<:/$z,B&)r$;.YgV`>~o8,+fKrukPMsIt|m.DqVaf7qS)q`2)b1.ix1eLPM;W`r)|[#t`);qtUe:@g[aR3no4jU{BYiZIB){)&K2YrE&`ON;Fw0Df#Bh!/OuCw7^y,9Z{lBMq@`"w{GuWQwmd!0bX4uIL#1ec<WyR^pY~FB3joI0WxqagjY]FD9koj5*|`yYa7LAr[r1vdY!`NMdG1Y.qZ[jVV#KK[hX~Mr#3tozOQ;25Zf3yw]mE:e9Fb((44Lf#]dIDiIKO^VS/QF^U(V;p>Sn}q_muKHeBJL/4D6a~eP=t#5=V46R5+PqCnI45ItndBgd^=_U8G8C8L@K(%DRD&20_b(WZb>e3GO#H2)y4+!WX(s0XeB`HyDr#LX;p!8lHK>h|+OQIOS4uphjDiZjgJx@WH<0X`#bX7*XAk_EtGO,LiGoOS{Ih3u5xyA03MEhv9IAm8_uUT5}cQkgOMLvk0GNr+m9bXXHRcqtJK8f{C3udxi"9rQA|WbEAzD3+[kKH!|DApJ5XK@hyiMz}ozKgw5X:)sEu/KzD3aFQY:L9(rZ"H,&GzG1@j7Qg)k(i,{;#`x}{i!et(.iHLtVj1sF=#B(SRMfXsSbw$MW/M;pk`"@tUjqjd2,qPc/eX;yg<8<&Hfy}K?J^FAcu;TO604H+18pV.T5:zEOvq0w8v)GtPk5UOagKK@S/[LK3`!X10Zd+qtFXeb*<:`>kH>M^(>=3*dp.3_haOwH[u:8ew]3AiJO39V8N;fY9$|@iGYReMTgu4IO(kre}e/821>4E4gi.(zeI`1CLV^==RMsWB){ITO_Mw`okNpxTuMsgV[#Cb7+Yi"a6ZH!Il!_8C}!&:(p)Zm5#uy/BH/B?IUMR@wuPNMi98iz([:ZRD`cpc5h0e5h|tOoSD,F4_x>DX]Cf!$IN6$8o9"H6_P_#G>CoqRXyC&_g@;bDX0sr)p5ZlaC9m%cgsD>9X5WnG[NoIv)qLjZ^;CvZ?FWqu(deSitLlnq3>rt:7EK8k`q1253bk~FpV)QnC?{v48|x[MeVUw3FZ=cT_koo/Ka"r4d7>B"Hnfzm44yYy|P=PdzWL+_(#TVJYFS6XZ+oC?`}_H;h#1P{@F}Xc+gc^Vv_:5v)#=mXOVe}&uB/v$=H.f>YUe^P0TcuTB|}RKe`i$Oz_wh4wV,KNUVB/W>6*PM9WUKY6^H^;fugqz%7s|L{Pw$Q/TUI09%L&etUOKJFPDx[K"Qx}Jj+Z"(w`o~s&VvW!I?`JEEh/8W6bS?9lDD7E09eb(BF9^.M/N1Z[Qut_H|P1tUHP5c;4Ym#G.|PAu{AKd3fUVH}"[qzaC3EGl#,^M<#1tlz(X3Z)aFaG!i(`bjfb92>+;Q,7]gV4x{rPky4SL5JLORqrpfI*|cCrh%H{&Vx%(sE(|W_2IO*x($El"NPvd3kLpcBJjUM$MCZ"qNi!/RPABARDPy@>Bg){S3"5LeR1H$|+`4Le5c79KpgIYk+aCmgCCWJ]y9MztI_SQ??jf|`?&aChf&@VJ?ru5]nGK;+&QDz9/LR*H5/?jJmdM]hp*DfyuOPABxuaY0czD]hDNwu1tMHywVXUzYO[A!Y&a#(bD]hxB9BOBUNhN=houqIq"PG{!2Ky&h#q!?Pixq9wS?*t#pRRPGlG]gV7|X6T6$Fzz}]Ig_^6)gU58}b=i4"*x"jUWWjR61[rL7eDvnshzVz*K$i/!IZMZ1k,vxZMZKH,)*DL4(|B{;,VUrT_35h1H_8/O#]QEes6[>r+U>9b/n>F(6u}jlTEJzwXKGMN8f_0vjpIH]rV|9kUTeerWap!)NDb|[b>44vq"7h:;CbTZwDX/V6vvW~Wu&}|E>_LX9}hS(ks//.h#L<,LELizu&?McbTjwX3mFR~.sFKvy]PD$8!x?_4OR?@NigsYj*Y^VAR/P^wV2jZO]kV"[j.n%XibEKF9Xm>1{6kT!ZfKp$E(;oz_;U@Zur*M~A~(9Fz@@B(pJX%;D)@}*FV"K$,e%04ji3]gGA}uhX:QCXW.P{&_Ik2,"M4cb$oQHo;nN%!X#^%U]OFk{NU=XadOr+#N&$44:K4n)C:h7a2bk[N1Y>kNb0?cu&.xWQmV3fOW2]1z%aX_sS=GYD|R$P/[h!6ioE/)Yiwc>=z1]|J+nX=|cEby1<6:4kASzA)j^OndmD0R!$.S7<,C/5=0[Yde;otbNyLUet5f:HTF=wO*=C0G={GpyOC3"G[1NKfA^2OJs4/1fTy!y46_A(}Tl)WR(tTxw1hpy_JwEoqZ*i3kZCut_&;ZY?Dspj49Yc|#CoLXipBPO0154.n=8479fDX3t|>un@J*0Mc}]!QaCB]iZ=il1y#$MgYQ$}Ic]Z?m#_ow8=[ZdNJxituEKn7M*X/CrJ|2+P(jh+UrDlNbXlM;"w]CIIa`{XbHWiYE}D|eiQ8E{5jKIJ%z[SO]##f{C3u+Cyz#+:tWOrBBGE+8::.@S^zropsomV8iGDNDDktg|5v5JYm]xd0eAi~aXD*EfEzAw.L%/tc""{Fsl%8~X|&%eO)&T!~zLGG?9uH9"3DJFI8O{O[9MtvQ35B{;]x*c[tm.#+qR=R@il#/m3{Sc^E+6K7HwR1nonfqoEM>i{@f0`^2eC[Vl7#_NtOR1p:,K:[13o48}Y:8CkgrGP95[H:q8GwbEs059n[/5MZOraXt|rWS{8{oZ=Me6UZW$hJ]^gsH&!B$?G(`4RVQi4$wlqE+PSv[qgi`d"]Y3Ds~^[W*kfoWzEWy3";$peaL?q24]z:8#]=Z8|!_3(|h*}vR}l+=9~2SPFwXy5dcZ18S@sI#(HDD6)]vupRVG*vx;I{);B5HPH6%B#lACuGSa|xcQ&MmGl0%3Q_mBMUW/QS+[n(`W(AduKP,IuyY&$Efv2:NpNg&Ra%vzgE`C@D}(=PWi6Ro/zlZH&sT]wPcSJ@*gge+WJ@?gu5?@U=aUf{ke>3"3VY#V*]DOx^90;,%=?o$E[)LFR;YKue1!#C}e}h&[.[HdJp5_Ku{VUVC^rny6QPbj#SWT)suR7|%e9[5&7nDk(f23+qC@aH?"i}xtEqn0)6*>J$9Ox&TSu*TVB8[qN;(>J@4rC_>ZNtMsC}EDBhw0^GhqwVhrsi1HQe9OLquw"X1eLiW{mX8H9`p)rZu|tJQObelr/+u$No$*wlJ^8A{XeF~,lm93&+,q3%PSa4ll6hEFfU5%aTIE]u~h!N<~f~]j{=BIH3?Dcc*u_5{T!+)sCB*:^N=Lpz}f8LPW7nTks(J0Qe4GRbH2}#"}eP|HWwB?[QEl#IM/YTkKhQJ%?25;)w{U]X;X_yKQe2kRmQ7uXzOweT8Q#mQDCl}+<$9WOHMK$EY"F!emPUw*BQDEXwlBGnaW6bDSDWN@Pv&&^@y>+VfGMl%[DT6aC9,d4L3*."@gRZa@N9`@+.Ek:[vw4h!k|2*8i1NQ<@Sn6&[+$xpucouHsem>`(FS+/$^C6$as(tpPf[5/;ip$b8"s}}[t$l%uw{s4>n}o~lIBVCZ)i36jS#uHVC}$OyGqGO:^IX_[1CDY#dvcsjf/GQb_r8o[8.{s4@r?]FfXc:mHHF,TU}Q@<8;am5[X:[<,tn`m9!|Ejn8@B6qk0b(=9!4#u$uS8"(bhmsT!b>Jg%A5h"u7s!h}]Br9e3],/R6rUj5jRI(KMzTHXdn[XU%o4L3{#h/jBi.)%6av0Lb~ql5CTm%%%,x%=fmXh+YCcsk9os;^q^eAdyCD{j2I4t.Y%b/z.srlX7k9`yKKFWj0SKx6.[RFQRDnGXP3`rm;&2LcY3b|H%Pu``8vcz6rU]<`K~r0G(]})KT9evwe4Tx_(e|fyZ!W/,TthxSBxQi"x4qSs=^8C2DsVDk5Cumnd7!;@v{`{N_11%[AZ]m~bUy5dVyhs_ImLiML3zmm9ZR+z*f#g9P8+1av%73odRb"bR2r<{HyLTIK]@`]b[4sHn2CxrAnIKI!;9LOysO{|Bl:#}%tu^@=k:{{{Q+|2]mk8%A4:^YSE;_[I5jVcu~A9wY#&y:.!UbJg89Qe=DZy)q1o%Qt=1"tR.dx[Y6WG(~mvfxwFgZfkhqji/:[Exbl@QJxIaWO#Qm@/0Z#rg+/eDt.us#Z%}f/e1!|+5}}ece0J4/i*}ecUGo)rsCNV?)}kIEuMIx[*Wz1|}df$aPbr`4hb,eD)7%}kI&?9u<:8}kIK~ec&(x[Hw3hbldH,`5W/QqVZwN{si$a?b{(GrSN%Zgz0g+/&|r_kaQ92"qOhlo7N4ZMm#.w)B5e0@{(Pz*WFc,LZ)CO]yE6)BFa3,@toL$|+5@9uH[&}8Im`eXB@6}8IY5YX*OAy}uiHDgl1?^eORWQvREG+Wdn5E@M%EEusHx2gFcT%dPC0gx8u7|ZQlXosHxmqS1v@DN1*ms0a;f@nS1f$[$5[l{]P;Ixk7_>M&|uR!@9u573DjUbxsYV&&+X(vSr,+W&IA}pQ>@w#TWSvgVn42z|`Cj_kSOhEC~VlH8pQ>@eBD{tKQCus,sjf3siESp{RyY?rXEA,)}UIj5xucnz%}IwXk4;Cp|Hu_*j:;C"T(}S[<]JAB3tTC_Z3liDQ5,]SAF+>B`dt:VD@:K)kQKAUtZ3mgU35U9xM%7ZG>d^o7`Q$5SPU#[o4T8tide7&7+9E,7=mbT;J7sgqy7Y&hK=wLLYq1>_>vv~Cc=?2$_nt8J9ePnPo4AyC/hR=9h0Juq=CGRv.9wqQ!=Fw:/f:AXmq&o}go[BF5yeL$UX:,)L@.&d=w*Oxr0:oX<[*YBsCUpz27NI4n[AA(323qbgtvvz@K>lo>]|?m1#erO+;x0CASZxF[2URpdE)h:=s}Crd$"/QbcUhc80st]~R|K3dAM&nR4hqs?3C/T<2^{Ic1f?4D]X`^X}qdFa{:NX>{YfuU0S0Y`yxEN%mQenpg=!JHY8^fb^GUt|*#u7[ulahf(ZFbFXj)wX1Ku_x*emTPSRVmOhrT5Vb9f"O"_Nz3$B@V=zEbF!!)_bB&pdVtBx$JOSHSJ]oQIU6{_7qrs!eRD8HAu:IMc&[1XM8d&;W25*63s!W(CKf@Iv|^`kXT]tyhtblGPAUmL_Oq#pTiibF;zU_%#KFyLO%u#pTw#"Db=t]m$(rP,<%4K63".pDC3"gI?4$)}pDEhcF?vgJMckGUXiYk>B_X{%dLOy@^sjQyJ*GJE8JK,6X[6j9Qp?<@8F,id{X[u3hy"^*KBa5bTOd;{h:z>pHG#lGY,^VFxR3cpY)5j|K$qDYUhrO{7;[re=)*?jy;gUV1;4h}f4=u.}fT_+VWffT?^y@N%xU:W)?250}GNZ=(vGq]t^!u=ANApRn,_*h:B$JTS_;#JTC_u>KJ.![$xW/O7gDJD5m_tHB$Gc6bcx00$kRE?Ke[^HolKOSP|!B!$_u=@#Um3$QS|$Su/]%y[J{o[^6A`]b?r<}{@o@12[~&`#gWLhA5TmrwY3beg8|:]RraV"yOFl9mRfls"Ss$X{r/|U3fxrJ.WMqNMg<~r}(=3DUOJA}u$/tmr124}1].UUz?,2b7J|U]@5B5#}?k@Bw*G*zqN.R/!+zr6sN`a?1q>67^y2|m:;6U1Xo]/qf!%cizSb2d7I#nfFq[+B!p&f%>gnQEG<"VOj88}1l_l?R0I?}rOhuvg<(9.p,Q98{ZqwC,)4qP[P/ch`jO8T/|oGhKR5#4DH9nWp=(vq|?RNS10orY5Po<"kmaI"{Kh{a:+LkN`!%.;>}6Uf2NbpuFR;osgw+bk~TGS=LL8mRp,|p9o3iR!X`d!zIaEWv5)ailJoia`?m?0Nm~QV|KKtvV+(X3)__}SaECT_nnzo,cikm;GIqMCZwF/Xm5+uZ7F(Gyj,toV,i6Et_tSPkNPN$|^}?&ou[/|)m`*a/bvgS=Lep^|Y^,qbi0N~NmLsg&*``O[xBf~d=O!`]zyQb:2sU=2A/e1F5w/K|#/;)^(1y]$Rtr[qc6DORCRZbWJz9.p^ghmVYQ3BO()OH%&9ghoI~A2sjtO~w@Ia&*hw#CuV4+7{7K[V?rzeKn7U~&K&<{A>,Zr`"/85oNdiouJhHmU!/v|@4lv}Xu,mDGXnS$V_}G/+).|SB.o0ms=0m[xzn,0K=$OOf>zI[3_ap=ZvOM;4]oo5,X1=Cm,a?K;nhHjzx4fsQg9fA<9K;S(&o449$~S%h1Q|o^|4C#vp"%,&Zsjny)0,}p^?"wN?"9m]C[]l6!o*7n>gPyF&^NiSsvlK"D_P9G}Gs,N7UJZZe}}R8F{xAK2v8r17U^83@.xes!|Ut;Ed+(eG^b8x{9;Zpt!!u2O^kb8^g,^v*vIl&:}M)vo7wW~05IFRgvMR^(.MwjrH^{WdGaIbD~_=#?>9wZp|t6M_IL`DgP9ke_/x:#s8zW4z>B~/}op=(jtWX"sVZ={bUNl0d~)3ls6slZ^ESea#2^jZ<9WV~V1*8wmzf&2<[AVe+dzL_{};+%.>?i|w8$?qqJ@d&wOO4S!J]`4vg?$,wp}@D!BSzkFw8{L6*>aj<7]c:j*R7m[{atjQnd?WULnO{F,{oK4q~w(TnaIKcFP5qY>/ovHG4`Z6v`}~5p)/=l>hx@N~$I#@v^4;$_xj??JJRE|}738@S!P0_}2R5}}Tb[O);:"3v<"kUkExk10,iC:3)wDLu(|r>|%S{(pK9x`4Xg%)xRD0+.t3Gq|rvV;9X(V`AEeyzeLUbzGFT4#,cpe3b^wHn]w=Wq4mSUHV;]&=MK`m*SC#)LB/,8nPQmq[l49rFlWl_xDr,`H*`;B$YW^(tx=)BPF!mr8[MXC,lUZuiG/KOX&C7]xrku"oY*(VpQKL2~N4~@I7sOTQe8OllQTcklL!0lH8mf~i7|D/GY^~*q;`r85tDW^yI/X0ZhK/%v[qx?rQQ~C1J4AUYUTu$|I3:=s8n8:oyjyH.si3%k!1B<&,:/c,l1ePV=WeIP},9s)`20"@,8RD*DGP#`2].`.W1utQoR?luj=s,K/ZAF1O:6;sm$lU{>i(K+?8]w2{6lYVkG02lvbl*fWXA7Ms/|Z5YG^65K;=7hrZ(~b{S^#Af|L%WZObhxv*VgawmYf6."o}&b6uTM[KO4K"K}&aJSUXQU1gGos?e:]#U*sXyc}q~!Oy*4{O3&B^OWjn./q,9=t^Q?@#!_xbspBQ(EFqn68pD>0=lLZTuS+0%}EO<2Hi292;hylnZcU]8&z8Q>9%GaW+Vv7W;|aI]DQlKi3|wo`X,,~jZZ&X#!]2H/R5P3z*L!]J"2R]1J/q5F7}ev+yk:2Y%$Zv6@+9;(x&1c?Dtvd@e[}Spy2w%U.q8,f;Ef~qH/F]qAXQ8TXvk=zBPpu1Tb6qEX|,6y~iaxo+_^|>=|/F:+sdjX|VWn[k*ea`rl!Cv6oQPA/&2vp5%|WSl#,kv`6r],RfJE[8|26}C(h/P}3"$IExI|FE+GaYU,N1,s3x(l:+ru&%#if_Dogvd3C%|&!<=C/lf|LT4K2QytI~`:WD/$e{P_|`&I{ZHi|9tZ)4{|LB+zFQ^3odm4_KUxOuce8@97HUnWss}zL8R.u!QeB{s[BjFVQW,d<]|Z#?.Cb"3IH$65CP~JT!^;NKP^.c[>l=[p{q|k%8H?W`ip1.I=O&t0%}W3=Oq#F#G^uYQ/nqD7nYx:NW,K$.O5&}rxQ?(wjWG:U(NdRcP.,YlR~!xrNn,Q)UQid#=i*K<6S1>8q??o{5wQ74sxu_TT:pR9n)c2(R0?=Ui_"]VlftU2M;yD<}Gt~qN^8iA=yM9QK_::tV;HawayuWf%?Vl3Oxu%4iFoqvfC=GNm:}QsMxH~%Eoxp=(r:(Dk<)?*ewD.EVc,R}dkU)BbGk1:[5VV=?ch9eu~qSP;R|@"4oB0R>f98HWiwHD{NxD6[?xN5f1zVMCdiyu__>)&WVDf`g)af%i7qC%hgmN8[dO;(ptb95`)>nTXxY59:oNni"DDm6%Bx*G%,9H:,cpnv,F+D?W3q&Mmoyh4Q|wifF;xsp%VFZM^e/aap"[X>[!AfB~mN:jR<|[ee>)^@9}#x6>EFOyN:2fUzC)4/q`P_fDUS&zEJ^C8aWNyw_#,4?r`g;9:#`iJD2lus_^h9LXHI]]LFxF{]}kTMqX"SwFuuc,+vP5YgYmOjHIG)A)wZl3WCN&1CiL&[F6YjL?CFgz4:l|_>r`SuPG[uE$u?@,g0t6.+OfZ}Lxd#WED)w,7g4x`wPGGoYIw#mdJ8w!ntk+{31@3KLEIOOCX@*l&p!K{WJyOc+)KWYWJp19I${tYnH^efW[HrAHEn3=p4R;|@pT%f!G|eb*7nPfZenV!2pbjk%G<8qe;FX%=DGPPnB&*Q~DY+Vwl76UH;ad[duHPU0J^D%e2>@a1W3CQ~5=ywvcDeE@M$u4~&;qrU_:q2b}Absbd4;4p)WSKe?,=GWB<:b[tdP;54;pA$7?<:=bZ8c)*H2sQTvj!;Aj:o*.UD4mvS64E]Vy*Fvlh872jw(CQaEkI3fQGz`&2PT^Ryo$u$UmqoT%URV9oc_E#[*XHO`G]:ZOtXja8$eQe,SD868p2sFX$gP{h[!~Dt{F4hq"8}nLaW!DN?wv]qI0m[.uJ#]:fm&4d|pH@uf}%[q/ergqbD,_&;XB^l@vh(9B>rs#0BZA5Y7Z(BW^|0F00w+QqGPa8VjG413drQO[a~}ne_;7ueR4}(ojN*~yT@i.&xX%}[LAp3?_|M+eSu>vN~t!e9+u|BGHQUtX*c+#wHADo+*MIU%lTv)Mae):Ar]LyJc}"+h_e(~38%N}&|>DrH]p/_U2;XrH:xO?|!teluUCJ&^x;!K@!?itUC2rafx]=s+I}5J$Gq+A+`Ki%,^|RRz&D$RQ%HHX!u?e[B=@`mjgjW3j|rnPTP+`>nm_"92["tDXN_aWKkw|+fRsA2nobI(F`+.o8FPPap=j.H"YIjr?.Q>,a0&Bv*;H0:HO7[zngW[|kgu`?*(`);7eLe.MFlEP)SqHw+hnl%E[54nqzrdq)8lYjkwFEN7*|5/ngUY{{oYub8Tl14`hy+vtwHZ,MVzR$~}S$*d)L9px7%cyI*6QcQmVJXv|S0_!7C_(v$xLxD.EDV`V|Rv[R/~&t(">.%_~E|J4N!2&k4^M)O/9t!x1}l,+ya%GzoQ79~Yxjf}s"(Zi05*h/D;B/ee&1Bv_dQiyT&"{)u]Et>0pxa;jj8F~0yl2gLUEm;%B0@)%9h1q3?(U!h<1W_q=W&~%72}W|(Olk[(U#spER.Q^hL{{;Z}sz"HMqG^|&G^H1Kq[]$Vtpbc%hm^{T3Hq%n`l]+[B>*}zB^LhsJu?FaAWMYjx(SDIG6O3X*,A4#2nq,n+8@W<^DZ5IzD}8J(SBKu~]V~4+vH{;H{nMwV"{1L?jH?Zj=sC_XCuD6He9_Q_`?g.}5v}T`Kp|0L"UN@>vsX?^=9`,A4L26Yn)unKoPDzf=c(_QuO^(V=]_Hwip+4T&PeCLo@3W+yU$:C12[X*spw()xf?p|#.Ux5!T#ds$2x}hp{;sr|^~w+bRd$rlF*.k4y9^V@]NWH?.%vqLG&~nP5#X/09X&eMa0k_^=?E0!7ARX+hxdM|]]%APD.IxjJFQ_bPpGGo)*S7hHx4OvhixpLBR,A<=@9~sKP(T)ZjQARq1KL3s~>Yb[j.xG3.I=A[zC{;]*)xM$8pU72/PQP2~}j%DUOfwVA[/KxFVE~Q&KM$k~[Z`F0sQF?v23>[=ImxCQp{Ei,h2N`1aploXP$aW?Dfxez!6s:[ghO4h8[2T]Zqn.x~tg`*>vwp`Vce$/klre(xeF6SuT>>eMmun"RNMmI7.t>5R:VxAsAp`o2[P4@VL6#Bg&c|~G@%nq/)jLxx^Ew#ky.mcuHdGZ`Ml,;`M({u4rN#(kr/y`.RCMx0{!Y?%qfhq#(jlToQ9rmC2^Aq[!?akYk&quBHEYwGa+cm#OWg@#UwMSB^1Y)vni>!&v1)k>a;ppxL7&&OEDF19;#yd6fSd+zaqGdL+orKUv{aadDI6J/K{10?0mA%u=1^,&2^B@Aop2`mNPL[*U,`k.UtHjTrGCzR&ZX1xhc@K=6go{B]uIjM(>e$1m>3/`wk;pur/>0ru@/5S3[Q!Dm}$2f@47M_u}kR|ckUsoA?~(D2@Wlg0e.ed4]o}_iw|2^/]n&pf:07zp5+(s;^!b.Beu"niT?==xA%!J;FoCAN;qWxKv!%aiAyvU"95&h!RW_D~jASlw?km{/*fl_+7=)E1Jgi4RVXu|qdS+]_"=I8~y@ph0X0iF?5@mKSUqRExn,t}D]M^T%+.i>I}RDyqzD+N,=1T$A%}ks"/+tuX.dK"NKheXvwlyK3uSGJ!5Tr:@(OjMvg4)B@c@C[BkASSz^nAS}MrxZWf7RU`b,.!#RTyDTas(,!=qdOLk|glG4a{za~;{qZBq[:27om.@l2.0o+YsECTl&Ed7@5qtMb7h].W!S6+=<&`]@lW4K~S/qNK:0cf#Bb)8i8CAOn9K:iP?U_C>dlT1,d>F>QfB(&b.2/A_[^)j]B]@N~s6azesZ,t}`2}68SrZgZQEpq,^<=H)+^jKjT1e(JYf9VZ>r8kW;aRm%l`aX5f;Go(R@vB5fe86,TYHVdPy$E;1In1cZNhdndzN0l%l*u/~mj^<#>*!(ONk%=r^@olhNV`2|W`o@R&XnV|OnD9U;vGkAk,*qMswA@ucx#~1K#MU)pb|/=&bB3C3Pg93PpSTRR&otqO(_sqQSfVfwX}v[%Y1Z@_Oq[.=@6*>sB_)c#*uOF6Y0*!J+m+,09c(*&rM,~=*+SfSo!!%i{]wI0FHtbc5RdeE+8bZBHavOnM$*d!(I(U2w#L}puRl,5E$pg,@g]f1C`!@pcpG2m6ziP!XPWf%Pi;zOEJ=iORdE/G`5Xvo,xfUmH2y{v^Pk>R"=naFl;%o>K4U0TGxDrG16of;9mfZ,5pZwOh^My8X9JfS;Bipp&%5,o9TIhxch4l(=~b{#`&+um`#)++O9gqrEU(4Xr|5=u9h"f>ShL{bBMqc1",/{D+aIL^5q6*egbx9$<@}]J_ZW_!$8G|,HP1<{YDNGvmL.3.hE1mrma;QvW^|t^,S>Z=IZ)1.w,Iy`Y>jxCz]FdE)KHuW]Y|F[)|OCv2WRME?0o,^R^v1)AQcOHu4E:3=W;6TSOL==osOo5A:P+_k?4f`nhIG,.S*OB&Ah,m,(YnRm]CxQP18}DP&;30*Vgy51aXQCd1*EP=rD7>YyNF+>GKL|y}+IoNz^M7]6>Dtr9s}]s!$3Bjn`K9usr}sPq1Q%u3$(@`DZ0Q55U%&nU0^Hs4|rLYF+~^b%2!X}I7NKe/*K`zUc(yB/8v<;D2Qer}r:,NT~~xZw&T(jLSLXQJ<:y6q_A+?Ep?pV#u~YDAOfZN8;%+v@fs#Wpq/M%D+AU^%Db7j7&I2V.(zr6&;>l7Uz;{Rv@As1#}?5B}SwrNlD~A%c513R%*[FCAAAAA:CPj2AAA.3%lc{<6!!3T&A2hw@~mQ?BC:Flb=H<:a!2y|i3O~5?d02?J}{W{>Uvj7jdC_=|/~`3?@yuiY|g3GqTMZwejPTHS%h21U$?St&@r=Ufa8{S"#K30rdJkdLBDfxaJ.DGO:Ilh{Ri5X(wEr,TBl6@C^@|@GhE^4~}gsnpcrb2%%~@T:%u3mso4]TSx*WNv4RUi2gPY}gq)*nW$NoPi;iRO8WK$Qy9Iyf/;hQ8,^EN>8_FRG=?k"q=]0P$bP!7VH#uR[e|7u6)=9cV``qH]^4:=Grv/:/<&P,4uax4!9woq}%/D?&fobgd|.1gb)kkc[{fk@jh%Gd%bdX{?sP`,X?~J!OT%5mD=)m,wbV`_.@y2#CxC8YhC6Cy)*Mk:i0=ps&rk]vgUO5Dfj8o{@cF@z1Qf6g4Ma%14^i4UuRvt*m*[]r{gGFm!#Ac}PcvG^n;%@NG$>>5a[N7KGT5Qn^P7<4)S$?om=Ny3}Q/XozGK&Iqi+D&S[f[o|F:gbw#,_Cq{nrp#|8.gO94CHO^Geo{j=!zwW6KaxVoq*fzX/)N&>2XaQL_o|j^@kY{k&2hpO)]_M)aJhmVF0ee5_|idKNGNi((TI`WcRM/,$#=yS(1dN.]#d`g%kHFRu}HQw|SIptp!S#@x,K.2;w[<[D1:c(0R&Pq"|tE@ls}ZB0v]^=j>hi[f%LeTAEH]=}ZkQv>0fJ|yH|+?z@1plixsrvm9+X5xm>1V|jKQ],Ktx/G$^1+?G~Z/BU3Ao{`w5f#6bNXjDY[<_NoL0;x:6&|wtk9/TF)GWk:S5Vnt6]Fxna"!d}pDo]rhTEVhfO#>^/f}0!f*1S`L5!];hmBi~"%/f34!%CvnAuxesS4Me2azR=fo}C.imi{7P1.~&N@rx[w=d4D1ExUOu]q<=npKZtJ$aTDSx5)#K=gC+Qe5)1;*`.r:3o3%fr"Qj0m9FJDLpd&N~fx8f;J7SQvnKmztSzTRnJ6x20,dQTo|%ptR%UilfR!yp6FI|Il4DA:=bY,KW8Mc?f4^2t__~]rtj_XGM)2(g3z[7^(])Rmw{6oH*&!#i9>qc&Z*vG@t}z;+h>77,]e#vqg5VG?9?^nf|3o>#fJ?O/Dn?c!/$LqxpV^hi?8F[_(w.ej/5w!ppm*P"mQYCWf$D;vv;qkDE0{Z`s!uG%w6ZHA0_nIe!s*R6q_vvCaXm1RTW`D=x)yNaE%WtWjp(V`jQN_U$=M}k|SD+$r#3/i9}lEo21Z6jvKm9{~wn:q%$8y%?R8W9`z]>ho0PkqjVF("S4K$TBa{5Ga|{(88F$MWw]$q(Ymg(SlhKx7u.IXEGk@x(:i^TmqmF#x2|(R]tovx:enb)l=IHbn0;HZ?eso1)TJTO5d:43`G~3e4lYqoce"r{Y]y8+UeuEgB&)n5xaQ4/:`*~j,:CT8XUQ8WM}6D6G@X:x,^:qg&[cTI~3+"?g)=FQ0:yugf:OP`.Q@+{ETy0$RDN#z)"q/~:8#4rH@M|j/dGhlXXi?ufUGf!IdOeYA&D#P#8/hP+Tpx~ZYK<3t+;n|2F+co;~.11M~Zlw+EQm7"U$s;a{@o{P9NGEkKL1x2j]R7gc`g(~:V*MNEh!Znw2iE.(&,P$AH,lF~i2tCU[M(:}@^4hyEhp;d~ZO{:nf;zd?~cyP?Q6A0ME7DkXEz*3yXVIN9|u8EFs1C:$,$1Cm/[phFbmGt4X#*g,/Bd$sSIBz5*Wz/Gb=q!T@3PBPJa*LUM_`vUsIMbsMQp"6FEWBE8Ug/(JPEDts2M|47Y2Yb#F1OOjW5ew7ErUo&]wT,wpHmZ%zC!HG9mB1$UY/Wmg8H[>lW&pAq~H5zpz0JpO^+nbkn:f/?CW8H|nfqR0[368NE{m%"DAENdOXUxX4eB&uob77Qj:Av9Nz`!n`riuM~~tD%JMq[xi1x=>oYytwifp%peD5EP_&@l9nbof(|7wl[@P}Y0K>tR"ndasBm_*4U(*e2sL$]z3Ifjofgm_Hf^R1(jy.c%Lgs1?}Yg@bMgm`/N9swHnA*bHCjjuBSLYt9AzHnKPv~|W3UhY;rZL5XF&+F6db5EE1(rYg4z^&7^DuKV@?Vs8_`ik3u($^U,)2M5K5]el$`JW6@r%|vrHnyJ1C!tFO~Oz,#2Iqt<.jLI;MxEse4^ksGa+=kUj^ZY$D@Q6[I}Mvo&FfG%JWUe%#Ic!/>5FPt:Q+Z?QPV+;W(/#SAM17u;qic{~|?6?@]q6Nn:F~9a#CBlw+.+MqK2_+G?gLwlM=BjE3)yk42c{__JUSUYGsETH>f%E5{_)$*P>_mZFs=Bw)m;$v.w4mKj|ld%#R$Ct2/7uZhyXHMD!X"wX.r^{ob)+at}4eu6XQoLyUp=)X;NKL+xgXIUlax,gNTJ$pV/Q"+sj#GBu=P9]aYzij[:usI9D*RHk2>~t8!OxDedvi7y&mXOhm..$o!5JwI3l0eD2yMOq7V4`R@,@A8c_v0ax=v!/Xz3PL>5h"d2t.J??axE}8T0c0n[OLY^yV]MdW]|JuBA.l[v08,Q|jz^HH@Xj3,V&|p>0@X1Yj?Yx:x%$xqm5dX5{/z;m_rh&uUGoo321khB32ZHb23+#WW%Y3cj^8A12jgs8)aqyuv|?,bH@>f9Y@RAZFIfldEbSpFw)d[|gk3#NRE&{IWQ}`=?0^)gC+Ipmn1SO^v@t6P`"sf(KHhiw`[Y)WR);OV5S$=Tz2i7{<7[/BJ8JZ3p&XR%Z0vl]N{f7VaRfS|[8kn`=rLF(CJ5~57aE2$&a.Y%#cs&Z%"A.h3m7(w`@C7(|wufH1hit)J06a?BgM^ga*7PL6nIs*hMz^in"7}vN8Fc*0({}*^i[(v;c1?Z=_V!NM,PmwZNN;nsJ{~(S)Kl%2K}M0b.c&8eQdO)f;w6Ol?,H|tA|sFt3~5&*HGTW,I8&i~?h)sVHsD/cRgnx}^eD*h"HdONZ,~BcNr!H=rPsURY2TS(xUzS}tt|77W|FgH?!pFQJh##b(]_*.;+y.64*L0W]yCKjp:1G$d6NnB^JK]K0Nx>)Gg)ktqU~B&b5z:sOJ/su{?5/`H{WiE@_THPuk$+9PtGe71M2%Jj70}j.[fCt2CGPA,rYH6Hp(J0#H~_[:=r76Hk&?Y`}~gwV5+]L*t`:h!D]ha#g4B(Qzs#Jr#Ypgi9Ic,&e;1+qQ?T5J,@{K#lg,Mw6xo8[pb9*I(}sM.epC+zT(__zWTL8p.&1rr0?<(J]H6O"4i5D0[E5LoEHzf&`P)CEwEf<[F}Rp+AXVC~Q[u^]|]!<4X/+:Lh11hV(F8*OE*rLslFMw3_I?^PNkxt8OPrNiy?n}i*hDmN?!$1cn)wW#j}9eLp[Ik+0bD/1*:dOm=Ma>(ztHzst5UKi;.^H)|eM6yJ996RoO!+(xB]6kN51,](#R,XwmI]DVq/y3~^Yq*$"Isf7jXU&Hu[{rQ.Q)Q}H6h1bmsaBlvMc&>ADd7iskJ!{b@i46*3|CuQ@Qbp7gA!0Z@>v&_&Dcw%x$Yte;*v]qd@dw!JxbgoJn60Mon`O>i;OccPZ}}C+!YxmHvQHv^m]D(]/mBw{Dq,B=EjD=rSyn4a%_~r21XLX;nbaedXI?3o.zF?3;DhR]ZRiJJt>g!L.:J8YC"?^E&nW"V;62/^?TeG$DB"FGBPx2M8:,H(W9og8?[{/:y4NQ|ZK+!?ph#uL,Cq[+pm&ks|QY,8#.f33i=m6!1CA=?Tjlv(!}tID"YFLyBV07|jZPGuPC$<9#>(8km/H).Bn#iVE`b%_k0z65h]Mz2#c_J~P#QwmgIh@f_b9u]7.lu%[kcsD=V/C1FGc41,gA%kJ`}TRkY+n{0%KG4}vzSmRf._,wFF{)xIZ2)ZzxUDWLQfIj*Aqh="zHT]FV0e)]tN1I7DPfDKh0;"!sT$"e9VU=xHhxFT2n!_SM$2!c~",&$>zQ>O$(uocF22X*`bR}[PZai1h2Fh`$I0.2b20F?fg^LVIq;HeE+/7PrZO/^"3(z/{G#AkF++j#%]T3;`;H)pp!v#F/h#,%z&.$G%D4O?%/.)0%r>H[8CO`(#0o&:?WXwIe*qX7(]TTbuPD7{9,nQ):IDRfB2lnmkBC4?BSPv`L<~5y7zK1E(V6&Kp$iXPXH01N/$cXxJ8CyADq?MiDn4B%:wUCscDOlGe9PQG%=PF?kw4ULnQ^=Q,~[f7gbC&MJUHk0i1&]v1Rmx|N;f#nd9:5yS1:4%+KU~All^U^[a*9oV1R`p0ol2@J9+w_yW_@Iop>~Sn;}yHLqc"tbGKKUOqtm1ZC?^x5SK;V}(Pfg!Qo{6UqT72]7V=>IW}Qo9I5^dpl!Mi&Z1{CO!ze@tc,?DZZ*$o=wLSCG:nITL3O%GLV(HA)IX49Pz1cyz_~]s76r5Lg`i=OdpAba%C}%(r4J7=ff[A#GN6Ly~)xdCjU=Hca)?Y8G[sh_M@K3>{Zy{B*fE)0h9aM*!9wD``Gv*B@MLcf0VuB2qv1`MIGsv.$psu_h^_oA(DlJ9nXk8E*7E$nmHbmC2ja+u>Azd6i:P%|KWnJ|1BWdZzk%S~gw:jIWR2QZziycC3UaC@|.k([tl=ly5GlTDM,e`$Txz",0pPu8aXL2Z$nS?i:vS4fhUI#1or{%>LzRwzu@z/6+x?#MhJ(ayjihvr4qI~1Q:xS:Q|HD=g?Tm76q:>l^MA`[%j6j9r~r6n,#riZt+?i?sn$#ceNxLI4(`Ie/NcCrYv4KeRNf*+jth4x@FVqp&*yx0h)Cx%zRPEbszm{x^[`Jz(oao1pF(|DF_DavkM<{DqozLQVVZJ^pu+C5{8N~qZ84{4zs[kC>(eyEz4:TB!wac.j%]Q^[hmU]q}T=+MQUI1&OM>.6Iy3Q0xn2ht45i;D.<2Q9g};VN_Gbtp4sN6Ir}xcDRz#|Fl&n+Dk(|&8.*eQw|G,BSDg{F24rA>#iI&$N4bx0F%`+2X.hrr@$EVWdRKfvbI`^:7L>L)~&30Go^:~;$H5u^+Y)~#MynIedphGxAW,9?S:!z@FGb~efF~%]y7<_c~peA{4qCr$8(aYQ16fX!qzdMR|r6lGg.?0m*F$:D?]]n*9:YwplsZQ/e12t5#xDu%<]eFs/2)J7f1vso[pec45{JnU8E1>|g3tY+ud|xb$v+>+8DkNY}1py+{,;uv*uP8rltEN5,X2<%7+AUg;[v%W<}=lt[ci[y_iA+jO;+I:@cB!PNo(cPNHF+KE|jcM}yMmlMCd8((rS`DHi1Z"x#2IFeR8;?N;OWF)DLp9Ou,x$a}nIUj9ng^twoT~@"F0*E"K!J_xTa6KpsvChMvF#LnzKW}ASPj|(G3d0"n64@jd;0}gV<<+Me#Aymdcs_|0f)fbP,b0SgU#|{oLfssFqR99nhrGmYoR^qMhh8}7%0LvjrC(Dt>%wf`uRc9`^Iz5u(8z0`QOT^"U+WIaFY`x;2ZITbQAN{K+`OX>Fg>@$PT"bmUjDLqGzHtw6Y}u+wp4q+r,c1WN;Br&t&UvZtlEH&hZzI*]B@DjoHN3r=ekM&Wy]=X3xhcc;}ttkS43`b2~&]}eq^;^FYSU{7uEW#E*Ct>Ei]Qp|]Avel:P4T(EKtrp3wC3oJ4^TJM`NchMP.xMI%]6a!Z*MksB<&P`@Abzs+G]X~boIS(:D&Z4;[_?J#K]k*)ZJKe.8Ud_f#^,@czJ]kObH!M>_U],3$n$dxGO#Pi$ed|A%/9(aNrk>Wau/Tsu2Lt[{q6/0qACun{|$T1SzKkJn1MNuGl!/H.Cp)3&>I>X|FZ(D!0,C,u]qukn#]@cWS>b7Y2+"yQX)2N}N[=W1DH+wtWu(Q/S>J}^AP3]5Yp;EP3{hp>PzbNoH?$+yAX/VNo:"wE&(vA*G.$xF_1K7/JHu,9>k#^}0N!F4=qAK;wKj~bdq[@4&nUWJ(pu}"r2BY4ej$mw+%5ey;{)O69?)Of7@/|y=hW0d3[K"w$i.)[uqS2(ox~NOQBX%xJ3f30dPo6pv4m2bG?H(]<*`fp0YXj{|aYZ56r37(deNfgmmz3rFx:9G{.Xq1Cr,.0|pe5_.$v?HiBlsQ<0k^fj{B2&:NYp`KJrd]oI5V)^tcZ&>?29j.rE%~kN.~!Y./yl,|&T;CmCJEzx_9:ex9c)N+RJi89xD&,gC*swlTuZ,l:CKM}=Y%J(s.zM+gU@4:e=.5_[%S6,C++Q/=_SB[hXdbvl={*w1h%:.)[AXPo_`YESkT$;Gl3P^K/"Sw^BWhzsR>^E6rdd^wj`Ft0^D+%suBuOo[J}Ek)EIf^v~f,XUld]eKDI8*xnVZ5EJw}g9@;%tjrhY~"@)Gq6Re68Ju,6iGMS+9tZgTS)S>;r0B7K>d&}:x&A/]+KyRn5X77c*.b~J}T:$IQ9^$D+!Ovz;gS4UKZPzR+9"|`euscJRIem^KXjvNt=,U;j"y|rtRgJjgzfk6m_QwxnQU/"C&C#L7_1pU`lnCMdO#.h>pBBIBN!JA1#HkRQ*7C.Q!8oJvQ|F%|0=!S67r&K_LiSV,F,CQNgIW$~:z$.7XZyz6=PWvi}t0J{7FqJxLR9;&Ft5]nq}[?)0Y77xSg/J(~%MDVAvmE~kTdWVLumxYk8KhHm+2&2@{["jJi9_ykF(v7}N7:wX!J7l0VR>]cLOEH"Idc:8`u2|r0EgTdlF]_m*}V7QY@|>8iu,RfMH^P+]W$4mq/jX)&I]4PGp?d2@,^$@53~ZJ0$SgHM)b418&$/onjU/_~_a0xoBVR=[T,4oKn7~H2=b`#]&pp^m7XX!k$X|YOW$,CkC<3is,t8q)wr4R8&&4vMt^5?zq~EYDSV`?mPJ)$Vs4xD!y+QQpYu`m+3VCia}qQF#$][$_Hsiz+K|GR(clGfUncIr2YB+`L*urgj(~Dp2gSJ5d:!Pc`Uc)FUr`}>$hhg`|cSF{PKPbr0j#e>Jz92^%9t>iiit__)rm=i&<=H&zufv,MM9*:|e6#;aJcblqFgvZXS?joBq(,+%CLy:4Gw6r%+n=9/1wV>Wncp*HSVeD7"l&/VkF?=GgKioE=O>8/$m.DY:#+=2gd@j$&m{,YiSp!mZxd|a5#(#sZsRQQHgN$vTb(H3vA_;~mY|D:OnpUI(KOA=!!9L7M{;WlN:D8M}GZ&;H@5BluoQ|:QgZn1hz8US{OMr#l!F|]2,SpD;813"I+Z"P33[&i0p1{.I(,n=fJlh^Bne.dq<8yl~Ldm|k*>oD>2KZJeMT~n?z<:L0`2IiBIJZoG6sycO>id0GeHZLWCn7hH~s:M_p?>WBnf*I2{N@N~TGAHxyv1=$Ubb^fH49#ZifD%/4;LOEO|~@1|0$,z7:9!M`|#j^a{:qc3,jB/7QN_K]j3&c`%8Riq}*1E7odp%WlJoSA&9GT`M@sNDG?w~S!6}Rh&>@cC@i%7]J9k?TKGb8DX3%v:(XrarPy89(_7d[?KA%IvY;=MG/z.6hTsGCi|19o9C0([WS~7hQcSjn7fmHeBbkee{:8NZ{xTMZN:!3W_tbR~@,6Lf2U4o?xL@jRB!RhLN(gh>:yBsNzT@3RH0sV$SpP_~%7D1NkWVWFFIuA<^:MwMI/LbDp3FNI3@bq%uWgH3Fr!^`&x5dV[KR!u@UF"6pyjD2wRz533&,{x9$}NHL7{vyY")S!(&VHjA`lqT"r8$qBT|1IYG3{:+IYt<>N%4O9CGA~3reM$>=JY#&VF"iN.dkI4"Nl3HbVyBp3egdfXq7o;(ra6LBqV5xnZ!R)$IU.G?,]?e,5CGwdV?uj*8y)S~PSRAwae0yqGQ@A%(+yM3Dcc.72`e6dwJydG;M9)9vr*}Gp(03jsFEdTBq>oIV}IU!PTX$Dg+41J{OKm(6K8E={v&*A4,oZLyfLC8INND0DA}j!`Q+oO1op7s8Dh~1UH[."uR={6kGZxN>x!<)B7/l~@pk.3>|6c]S`@O^!Z|p)|LeN}VJ0,q^6k,#{cSrKzYSo~ZhJq/6]1M4zuGi8ibl@}nT5&nw.d)4G&YuPbpK>?KW486[7!P~b~rVlfZOf"Ii2+Um8H.pqFuCYi9lv2,oR7o^f@wW0rvb?%)tdgthxZRt1Mg@@uRZ,YW)?##:VD(=U[3tBQsYVmn^/f|uvrtV{yrG_KN&cQv?:zof98^iFOrx&iAqX7i]ngkC"0+]IEgIu4Sai/;7jIAf5+*0`SK?Lr7(UEE96HX(_BC%ysuaV6ENPO=weEF1*H!z`>~v|ezQ;`i!1YZUGqFG#xz[&kWJJ7&B1xL1ZvMLf1q*S$Y7mC}ug.q!aht:gTQg#12p|5zq]r[R[Pi*]R3leMCU8piWUt|j|ill`l0za0Zd75#DjH6]hc&=fb8zjT@3:CY/^*dunjRpF%YE{}?0,d<2e5BWt?gb(KtQMR!+~&q0waJ__(@qcTe|(M[e#D]HMM/k)m3OZKg}6GZU0LqX!&$snt+v7T?9kiU{1{iq8Q5Ct(|NkM%.c$RL+"in!7bWg>V@DJbPJ;u1fs$y}zXZYWNBH3q*#zC?1UHHP3Mj]M<[)nEwbbTvVoeRo;Kz,j>4%SHAZZ5];!Gy,_WTOVe8GIXg1p+?%8iP[XZgpb#mnm3ibOP0Gqs2Op/i6(Z}P(x.OEbFS0e_7E:OPR^DuEO~^a9^%"z_@$4x*lZVdX"&1J,Hwup"Joc;aRA9[]~vYH_{R{H:dwQ:nedRS2i;lxQY|Y8A3:,dnOhNKVC@vSJcT?6%X*Q$O,W+ex3XM+n{PpxlDW]X$iepUu2`OZb?1;n9wtmTgi9+6[3Hp"rAEb!^8"QHs4lobRa"jzS0LF;7h{3=nk|pI{NEBsF)q{6+.b00@prCO_&m}FbmLvJ[>$I1[;vatux&b&IrwqgV*L;`CL(u?S&JSzN;i>_68OB?9y`GuyPtuW%Zv?!+p8;,ffaY{ccdB*79.d(Wwar_E(~R1Wo`c[1S|PZ>EiHp>;,&{Val!9lK8<0N0kcyRExgPh=zXkWWOqHZ%zk/x9rVz5c;0Qc{+VgWiGWS:~(,/+"GOCpV,Q{aD9}L^CKt*}:$SaIoJimm{MIY<[JJiBxYT5Wa}6~8[=6c?BvP|w.l3XcqP#W?4_+j1=<]t?Wkj)OE!_PT2qn=eFV@I_V1x6MqOq[bxrq_%dp@V6b+wX`C)Txy>Jq6/9V*OGL?4=+[l*pV=1SU42ckxOtPCP!Yc:t$Y.X2&(?E"tP&Ln(Ij3@$4:1WVDE575KjXyq2U]Wp}Ph<,)tLShTD2t/,`"B&7?o/qH,=#LjAU^5L!x6Z./U^mhXk#zXo,_~?1FmUuNjVDF8%fn_P5|GcW({{^:IS0q*LP~E)%(Nd({jzK@24*}&lxGnU?,qDk`WO(VvraH/&n7a"G},P0)PbIs/qVu;mi/vg#^~8cs6jrCP0&iQd>0<.[2fw&n!zg&j.e:w4e[<9:fpJ#2C"%(nV`S:#MJ)/?R)q^)5fuPq)//?:`$<$!6kQh:SX66Rf7n+5]~ZJSlNhije5c`/[NM]k.f&F5_kO4BCsI<[?RsFm(Kul=8@@4ew_Qcoe)9gH::I>hQ($,zX#P:X3_Me#6=Zd+$![u:so(*Mq2|;I]4AI6pV[/w#SF6PZF0~?/+y8`/ymPy3VlRkf.)wXx]z/W05wIw}66AV:_m+CqWQpG#3$j)&b*.:&I=S.KB,=WE0z!e%.R}f[J;w!jW,{IFnZ1N(K_GUD5,D/h:y!;/Bm}i!,WajXw|x49/H$<[1y`=WM({Eh,n076eciiN8xUS?P8om{!ROG6x/mYY%`T1vxb^*rX"RD7M(m5NV%_rc,L/y#yBeUy=o`k~3Fep%)"+E3FOtcxv5JfDJ,o8*H.M_9ET0Ss(fEmz9VC+"!CzA#tPXX9;aeG}7h(!02:=y>3g/;901GJ/m22]`o$tEu.K4?vf0%R6DcV+7Jnj(_kq_zgHb{BHPzu*/Fd#VjjF8||!!UM7D)nvLL9B*^UWASwv31v8WXSvUnxn4TI9}(Ji]2MgMa!{p{AB0Y:g!}:gX5lX(*Vaa*5vwL|jlC%cJ(uJjH[gB[(w|&,hXqCECF|QU7qaZm$xy=1[d"+X$]/F2{9SsKjDhVdIO9aW%I1F%gtj{8Fk06a4GN~FRS8ZX|bL,KzAm7Rmiy/rvN`b7i@$fZ8>)A]CqoHW_niIe&V]yQm;onD6@A7+zN%`d$s=PH:H2|};04#aejT6UhV.IMqo$5@xMe^IF[/]U.!gjBro{TvI$Gg9y`!`o#6".63fd::[w"RM:[.u|[grE7EyjcE,:yR[zM.n#s24DDeh#WP;WeonoaN=+#=b:&Rl_[IAKKJNrQ7AxowmGER,w($<>DtZUhJM7D+F$G)Wh~_^YQ0*dvZf+[szlX]rZCK>hgDp#$"EK>KlJJP@w#JzyV3F{w3[/xFT$o0*0H8ul{vus{V/$t5~>ls@XsrmlICZCNPPe2t?ZYZ]d194?[oXBu&8M%Wo8]FHov7g>y?wuN^4>VpOvYT[_"AMTMu%DX1G:?|U||>lgNrjGBC3"[vEx}h2,KBV[]re+tW0:9i5zj4K@yNYJl!@D.*rjq.h=aEJXHMw5(w&`>9f(/NfEL+OczN@7H9@C%K.Nd8CQGW(B.i>ofH9W^XIV"<1:ZN{Qt$0Zna$A"LE2#Qr9nEsmT[v"vNo..w+1(71wwq2](,KJv&u<7`NmEaMg8J)Y"gb6f,0X2Xm5K,y@UqhcZW~Z?y2]qU8^ET5P@>`,TH1/7j0Foh"k#:(zt_NaxT(3sY+MZvZL31@w2&V;>^I;IJ]ubH<7H_*[TKJmtMp3O(MgcP{"~>+JnV!MLndGeyBh&Dog;^jX|xk}v4BA~#_iY%xbW925@WA9pQ)oBkvgR,kf&{!Z([szCX"nHRn,;Ymod+k4+d,nqxxf~vaIH6a0Z|5SY732sf:B52MDiK@*Xd*v4`%flTuKP(PzJ/cYvNk}Hw1;el.NFTs7#O4Ykq[<97Zn7O}=A{IU++Pzg_?khl0ToH[S(44O#g^h1=[$D:ZGA|lK)&u#I/U>0r)iW;~@G4Z>sldWYf9!M(HY!UOE{BfkL?AC=I_@~+%L*.Vt/BPk4ka/9R7Y&NE2h;K?y(|:{Mb/]kswR8=@b+XD*Un8,f}royOOQZ9EczE;0$M%5(4McuddBZHr4Kr:NLA~>_lVWjwB|=I~qq`:#Hh&}zkpi!^s52,j8J)?LR%4Wf.3yQ=LE`Zb7C_3~W&_|,D^&a(mg5Ren$.:4]n`SP5x`1{+$Ip=E>Nmt_4Juk%:|MW+Uz(|W>A|zP?@ql?VqE2>?[KCIKsR=(3tyor]&*MxMqE3}fiLs.w8ChD0Yz/gThSBG}6O8W*^/}XY(*7o;MbDP=_@XC"?rWg=.P7=pS]=XM9?$"C[m5gd##V9vkJwN+!E)/e2:ND>:vNWgf.nz)KKRD1aYwv*xXU^Vx2)Ek$n[|F,3]|dWc*:dHa.G7*S[5zK_CUxt[CPStF+uT?[%7/5~z^?Z:(q+4=*O1GX]UvIGRvGNQHo{}yq*ivG,K/{%5r_/+asAP@e3&{+/7oO2.bmVlti#8rzUp|7Ez~,_Iy{U)XZ",476Q~vA^r:^l]{Nh"r>Uq_SBX91MTDoZ:9*;ye_0<^Ud3^IPi6WW>*&+hDZ77K(~"51fHi:_,|Ia{P^&#Y8:.;a&]s5@L=7F!W=y_)yAre=UJ%!6}dw~X~6lFI4_?F&%0w^,dH(/:jg|bA2d3/F6^Q`)L$q(jHsWo9N$@I+XBtRAdqzmhoc4m&r{~&4h;KqB#4;!Y"Qno8K8BT!5*HKX.)+dDG35vBDxd|HsN%6BGsCBA+ZZt.4/xahIIFaNHV6g~Zme@6"@g|LahxBe#Au#rnM.y|Q*cDd>p>jg3&>t(k.CJwgh@*FBv_(Pg&WSQ.DM/1q=mEux],5o~@HM}{1}Ji1NB5La{cf;)UX^/exZl=1iv@WkUmdG(XLx6y,kA.~u,5B)Dn#%}]v_[`nOUwbdrE.(8Lr)1WSqX%pB2Mm,`{6WWzlv062^y4hI3?ixcD)&$:cLa]*rBcEz`W8S4j{=QKmFN@JqmUAOgcK{TX(N9KfJ1lr2/Xm"fTA$:[3_/y@H!+rY3;IGyWzB?X~MzKzMH87vGZb?wt,sv!0~e!N6[PIxpB7d%}IAPT@NYLg2c`?1bZD[dP0xE,WRi>/dmN/,tdFH5cFcYkXZB?ie#&qTufx&saCkp@PNt&Y0g=cVr}k=eWr@DYo3~^LTD:Th+jM!;p]3A<,A`f92;39vwFU5F$dFP9JNFSRq6hvOr~`Dv~ZMX[{{*:}1%hEamG=ha?|vw9hN}s!NkW~G9}UtLu~@G/=;?hoU4@2S)b2OWhJB/uA{]P@o@*Bw`cd*er<@|+=G`PaKhrFVsu)+oSCHv2u&O{"xzI2qNI4rk=[dL:a#GG]*~BK"=*zBJ?Fl/A^p>+"S>|*6N*)JO5lP8xlr}+7?X{NEiFa}.;mNf9e~IRp$(CFjw>JG9A;r3Lpr^.{NFdhKb"^s+km>]&5UM)={rR)K@=^$8Z;[`Oa98yr9N@u~THZK90P9~.sk+nd5V,XprgG50wzIbt72x[G5r%g2lHkP+}}p&0Ur;,.c(IQ7B9$$~1~:m+=tto*5bL;gyM9(#jze3A4I/(FqWuY?].e4Y4q"V@9mlKJohC1kYp?kk[Zv3Q`JA02UX#MYAd?zK?G?)!5l[QE[Jkf*wn^#cH{sC(I8%v)>mgiSiV.~juE8GBrzjY;~6H("^=JW?I{CE@EdKWVCbCA%9Rt[zAqNo>j7VmSS/28:V,4SgvBd,u$A7u}aTFr,]#!zB5G$?Ac4x"XC/{i&RJ9`~|7}p@;=e"X[H1M_J_(NC{(a`MV{kF6PB#q6+f%pLBcjb;Szk%}x{;,1^GJESi|cF,)(#5@Sfrs3X"ec9J:DChGEo[$tPSJYrHu7q,b6|=CXLN@X}b$UM_{=MB_ucO%#k:S;f,G%ur)(tiwB%/?;LpRe6Z/~YWtRW!0jitX!8JY?}r%A?CMlG:O#m^Y4BF3)P(Rz^^K"V>eaJw7G*hSg.zKj3gF}Kb$eka%).i!|v_z{.+l%dFnI;&46kJH)m"!XBKGSv1_fZ[xcc``dRX*D=znw{${?G]QP|ITU$/pJ6Y%>(Y(L"s2.;@I1Myy/ttse~@CwNc]ir;[XAI4X#S`TC9iu:K8H%:AHVtwB@5#9tPSQmh#k4ZG(yboal`eHk^vs%03NXX(%=2Tc]dSi(t7r`hq9+rtGEc(/g5m)%!#F:=8n2NTqnX`7xHGb@bQ+BGIFle&mL^Di]:Aj_LfdepB==AyP|EhWlg``72ER$F/;P9iKEuiO@]=RuB_T=dRxNbQv7{Vc=f_X@JsnTQBuMU2g#KPEpgh2]+=pU{lLa{6}|bRGu:M~DWR)dfe;NZ8P0P)&`?~6#j#4E;{XZ98?gbg(W=?Qmc)C@$zL|yWX4P|+~mn[J7ETk=]@~7I^3&QiG)|eC^?G!2@{=f".J#r`3pe!q}.wCn+CmLiV.S;jS*@Vo6hT!y5RFeqqKJWrnku~?dMG3cr_.S*<:i3:&6w&3P@Y3)tZbgl8R2kKDM?;Kg`EWN;Kth.TBB)d7|[3_MrBCzolF(Bb+56_A=xX7;`CwId,JX"YY/Au.h{$W%9XVx`0"Ck$2Rw{&jgVNh#g=mB+C("vY1hH=fjT:^;r"kKrn?XgTx|HNck$l2_T0Pj#Pjr.Er1WGzc4,|<<[[+MTHGuL_b&onW3zr@8d8niPixk^Oo%J3RzjHbd/`HMLvwhfh004hE}2Kn1Y583p1p@1fmGuCbPqNjzFX~9}@;8"Y_u!!p+Rh.[v.]Wr.=Z}1bqfE1E;a`<*TXba9djXkLSbV{um]$Sk;|"r@,rSm)>F(8^ib?a%Ld//N?Vw!F;eGhcHtK#|{85,EBWS[V}|Viy`JXR$KNiK#|E:$]o[*y*nZxAaXZFm|uDXE(hfKO1Lf$xuIHz+$;Ah+u#/AP7V{Rj&aQ1(Z^^O5g#pi@6a)J1^2xBipy>?UD24,e~ZO9A%_2dPt3lb<50/f5Ts`!8S>:"I>5@#fB#I8og=68)W2O~jYN4Tfn8EF4%Kv`Rdj@0bh[#e$TR`tT:Xr0W[Vo3LfM?DY.gruqb|k^)YVqf("DT+WLeyGEh3ib)mObiM}_<1^uPx2l9]c[:[>3.StNuT^2+6r#vH1NLjS7j~UC9K?>Ym.UV5_!7=$d/#uiP+f44Ntu7{FsnqZi#i$/H$l|FyFtBp5r,Fe9#:Pi^C@0BT!dsFa^_/6=F8rKd:On#|@Q3bWF{0_#FsuArlpdL;1I,z:=]{`$j|U]N!QdYL{!`!n&;[=QRI3GqHND7Ck[kv&VPtNv7?MTdWZ>&9#ywMoz@*gCj>R/!9y^$hgcNye03h(h"pMR4D&"fBV?^@`FEc%T1Eq,8Pz]/4r*H5"hF|4!(>m0o6Jd+aE7Y_c^:+@Km9fFE+DOUPtDK0TEt!D2U4wPrfgI8V%VqyCA<3U+ijX%%pzd:N#?{"udRU;0FLKrfTcdr^S~N`KW!6oKmn4NrHh1%I[*K(Z_[H=v_2+(hrDfHCNx#p,en*K^!!@}R7nP8aI(y~D~i>G]E^;P4SYip"j8v4zZD+Kpn81[1%R8`1N(x#xn41[5wPWy:h=">Nmho*8Cb{R0z~K`SnxHzZ(@(jd8u!AE,0<+J$nQMaJ$?zjU9tHdrE3{ZKJas$mbl7:,4A^S=*LY$yGJmD(TrTglZbc!JENN4&MA{Z_8e:!2~yQ}YzKUQ1ZB2%J!wG&~od?OMt>2.t!AZ|%@]pW;kOqwclcK;sx7,J{gE@7hR3BOw9;2)6OQ*o[{A6(w%Ux4uj9k:kNdr;Kg=#n2_i~4.kAIjG}QBi1k$O{qQYO/l8vyM=+OJh@W`dF"8TG5nzn&3$O!re$[o;Y:{`4pIItVR.s+?bw&%6zIiK[|Q^/WXYZ1sCNE`T)t!SP88GO*a{1,[5JJRgQ8gkY%I]{cXEYq{o?<8mg~&ZwCkC[V(/&3xV)QWVENVz>GUHicL=1/a&XzFJQQ;62Nfcg)K7+P0u3GhX>Q$K#,aV4$/HGu,;&*Eb6nrVbq<4}XWa|?f@@Q!%mJCcF3i}nqI@oG]nE&O4{Cx/6cQPcIW!vaJ|l<<]$^qHvFh{>7&bk08`np(Q*=3~4hVm#N&W5zB0XfaK4}krIz>4x?zrw)=7!Qy{~1k1rRUwHFN+AvkPvSG[#aA3#awwBYa1>VUHI?W^6av*YX@o}Cm1}W~8:T|lP189pewez:Tudg1hb,jII]EE@2X>!zAg$B`BtsrR#DTw)r.:^/VP@^S4d8W*6!F:!XRJfh@b[!F/@T?_K8)LnZQ73r|ZvL^g]Ug^AXT>SO^;d*P|<^6:>ES!/RG"M8oX7]"Cuci=5/UewqumFt!^>pHK`JHWJ=K~kS81|bL>,Rd.b01Chj[i.5WL"FyEu=&^F)c+6SW0~}T=LS0k%}O:N3$PEM<0=]:y#0%UrL85M,#VSW`z/p``O}~X3CyS!wA.?sQ.#dv0z*{1`?e9s)&i6W|h1fltq2IndCs51~MK7akKCrBd#VX=y,O1D*p(e&<%YI#.:<{[D9Ni!_QQ;.$qu"]j}z!$Ls0UOeU+e)Vo=nBp7{<1%"Q6%|=%35Ou|7"Ind6FdWFM"CO7zA3!Y(K;|MS},AhyixJv>=;lgnUt=:+k>Blq)P;4YI]9Kxxww^3nc3dz(t>cs_uk|.`L3n&4|i#XA4{~{M;VPRsD[b>z?E:u_XZ6H^GcCUpFk30zl{24Yjc!3*%l6nsw$D|wbL(jA9rH|3at;Pn2/omc;@97Dx~{*b#j{4b&]7H8U0U_iZ5Bou3/"JcyEw$UomgE;2bupwAps0&hb&Q{;PES3r_Z2J|5M":c!?%C2d=QS,U(IZz$`#bdYk72Yq8|_h>lx!:fq"c=~qFOX[<[~CTI2zvtHns"fpU:9j.ZT|Jxj<5p^8xJde*`LuS"M07D/EB!bQPXl;HZodSx:?^#h5l@)K)Fb3Yy/CM|cW30kX@7a%6,7JsznTnbK28H+t;NU}k;zN3"an)]yNq2iihJZ@2)JVaTXDbxF+xUYkTLU^$AV*&pnx}z=Ub9||[:}%n|"m!8{l<)v=,X&h]OVN,q@hyE@.Q>g/lwvO$?Q9c931:4GWRE/S0qHmftdoH_q5y>=^e87b!Hr`o:p1?8LT=M_S[,}&.lRQRtON_8p.6~Mr8L1,R[b*/^~W5S(7SkK7SG!4=rqW.3;%yJ+5xtr6iwT#uhY}9JsaxMgT>RNB?Ul*e;_ny{)4Y#,6Z6vFk(/s/4O7.IXcY/WgT05E_c5vnhb4CU:;cPs@l|!$U$OV}6^j:3Y}Gtt(2a/pbl@;NxNL+sK5wW.;]CUY.)|&,shP8/D="Kwk>Dh8?R2,{1o3Ew:i?G/eBCDAVK(@aidk@m77n3G(T"Ghe;#IxOkp0T@D`=zmyGlSaeU|FD<=Da]^~+o?:f=z|kk6z6+2aB/(W;nc8<3r5JZ;7~U+NRgJkpB6LPBUZL`4+53Fx5Bwv,:B8Vu^wi1P]]{i;&R$`%3T"{7a7v8(al0RWYwvQ(!G|^P91TdTgKaI4]tT)DP6[Kgh5!bp!SWZwa9(iZtq!ezJ{V3!Y?@|&vU6Sz)V366Oto|O&V?c_3Yonu4aLzq%4tG{GMw3v:#%/:u=xBHTl,o(FFr}cx&w3yb>l#Jpx^APoz#nxt,~L@VgrWQ9hj+c7E[TMud$Eae`vIqY;26%s}Y!Bxt9jQd#p9pUD/u!8m/F=YS1gCYS.]14$tG8]{g~o0V0:n[27,1tUb:dC9zX|K?RLqb5f+f>Zh`({R80&{:4ujY`wq%zj(5aS.6FTk`Zyou|hc*vHhEnIx>Q!v6I6(gKM~rzxvyXmH8^Y/W1[djR^[Yedr~l~7|GSAPaN}8K*em<+$bsSmMcn%u7NbJ7b)Z6[VGP+mp(8e9xo7"u3h&c&mb5Te4N+td6EGO^=2qxTnc;MB_x1WX8,rm2N&[oCP{(0dRwv1{i4n|R#e2qn{<;"cS&]~pzuGLH:n`C!E>=|4c2ww.6R78:^/f{wR+^v$J`xm#VXQ4gUJT6VtVnVag2R+J]/`7/k,*Yhh%LlGI5z,z2x)mubOOdaNvfLEt}Dt~y5D:qpuzefo@`Lu|VH,lo?*Tj0!ci"1H1AjK!2L~PRB2,E/?D`b[;WxO_1N~C|(.2*gD?$Io$[hqF0]ri$HiVO~*?W`Wb~;R*Wz{#z>7^7V4WEK0}UbUYfnoZGiYI#4w)mM@S53B_eFx`d`+j8vSo.SIp8ZnSFg%B1EeZrc+@d7t0[47|qsnlX+Y{]A)9P@T`YOcz&erkHt}~yPYviO`a2mM.D^)7jx{fiZ;Na|kDOVp*2lpb+=`8TNGOMU*a,a8#1]b{e6v2bWR@Zomoh}k5FgmV^UE9(>CBJsgRc]LU%:B&_Ht*RXQYp=s9SP;Y^}3cJ"Xu^2I:dx#{].OwhWyVv_@<=;c~,XXtlTSkT%rM4>V/gPiczMer}6.m0r]nxVy1,Fo![Y4(M:B^rA3nMyv9g4"1R4(ye)kH(f9}H=>HlEPYTBu@yM>$FKW..qA/[LoN/#f%TNsHdl]@.jz6WSFQ&{%U6qbIIE#/rWY>4FH9,3R69uNRqgP4/=vEGZ5xRxu$lYDDGnW4LdaczVn!8Z$,*:=%TA!C*l_qhbCzkv[*44T1W&W|PIlP`SW])ye9?~*R0|J{_(a8Sg.2_F6fX)|MTFDK/xZ64E^n^dCC?Gl5G&E1OOjOW?^ch!D&9``,wGXYYEMJzN51[..N:i71z?!7u#OF^y5Bvmn1fvbkM=<1FRGBt/{8PSttsc*%@TK}MjyU3_6H@nS>Db`yz~J8M!BSe.q:h>shC=lb%rt{w>PI_4AvrLH{5NBpO}@a}rlcfTso}::Q(+:ZI.h$E]k2f@GAZbOgw(096WcKLeJ1w;)SIpMYvad"{%s!4f(lD5lx~yTU9m;h?6^RcT]|T0/"j9UV=Pn+;2:&?gonW<=ME|IuhGZ46,j2zuPoQ&nJ>gWJlWC#xYFXxL.C(Q1BAjQRPgQ2soQ[g%yPWl^%fI$[A2w^3~e;!ono_"lrQ~6>n*bmI~jj2yv^eC;yp,2]?4o79h0g^%/9q_G"?stV>2H(/z|DQHOy7r1wioL5!2Js}D?efLQPCFY_619J^4c>A,HV7kNqrUCBR&&K~gOu%vj?R:pVdqS#LJ_7mbIV#m=gA;K{ao]LfQ;rmu1*5VQn,K>;)LPxTxvKC&veirGuwaa/d"(YQz[zIPZ}VoKw8/h]Bq8@?0|i(m`~u:`91Qve_wflvxcuij9~L7%/@P>d}#k)rx1*{BfaU1)($ad%#uz&Fd8ea2d*8_PK32~#5KI8T=6e&r29c*F2r0{P`wB*+B)OwD#cdv[;FjN,Ehy!p&|}:x2]8|(!A8S"CeU9s,q=eB}cw6?Dt7hPBe$gAd=._0)64Z*,%fafFwgb0`llmDt%Tj&Iv445OUC*B~BXLqRigO~!Zypjh>"]!u6<4a/&|u?TFUAIB*"7LjU@:l9jvUVlzqNXgiEL2o|BU4ct81O221)SjgH.1JwcV8@8NK**SY0.:/En,V2Y2S^:)W/Aa4(vG*89D$5(u31[6H8N#L(@:Pq+p9@*y9qt38$CShn?G;rU3}9=&n/CLr!k:"ho@"G{`fTKPu#OPG1LK*Iz"o:e0bI)3>jQuU6J50(B`l7ruXbI(Ti>|.9/GBRK8gxt:{eeA}.sy={4[_yaW/>n])|%=pI!Ot]B7d>9jSr]<.0(|.f=5e_&4l`+6ceA*QuBqS8o?sr%#/F:djj_5&3G]ht$7Q`1@OOu7%^koSv,}*47UC>>}8=XyU4>,d:=>Ex0]A2up*Gwc8=`5FVQHcbCiX#bC6)e,_k?zr$DVH]]0X+{L+i]1^y9)vVbc])}rUMF^yn|.D4/|V~C8xkqat}9b&,D$KrU6+?6a!:E3t0ECaTlfRt0kI;^84PNL`Bn`H;y9GD~!+6g{y4,{IBmc=N0"%KgJQT2;48.`Y)RiljQ2"l<[W>:01M|]=vle8/|)+k.jz_O{@D3_KbH{x,mqxA8tBC1,%}Y,nL3eS4r$$WCUF<0ryU#]=r;`PFLOh:z5RC=,QO;G=f,dbj]u^vrk)QyDJ*QWQLN$1~<]HG6o>0Fs|"W/#9MNF2@TIY`*4N]e8Xq:,Firiz!(O1?Qg0Fqy:=69ldS^&8@oVEs1c4<6}}5useEMZ.<=,*soSIZzB"~t_L$;`x%8e+D?QN8}I}u>FeB6fBf%kn@X|L3;YU1f@x*,W86y<8gR%($rSpe[1fO_&M@J!!YQ!&yNSdorj5>bi3:]C6C~o#wX1ob>C?JxD!5uC&U9(6wY@GZM,!wR0,{;c8c{BD+.0`yTUs7v"F,oxEE1J7<$jr<1l~nmSKEOln7i#!v[CVE+x^)2Pv%,/2DGyQU)p,Lw3UBPI{2Es|8H4k^hGCSM6d5Jj$||p^/=Gu0.Rb5rkm.p5a4*TSqqATKXi,Yh~{)D4q(e0:mhc6X,A{KR[R/`M?}nHyHZF5$0310d(Q):<,iNAa#i;^)E&9#mf~w]#],8(@e)YwOp|1Jj?X}n;_YYaqUY@5$:!L*y39%U^+.{^Q~bRb1Rrqf*qNlOdKo?lgRf(7#reVIeP}8[?b!;e!wuC6T`%O(JN7D6WZzSyE;z+>p,dfa}1e/2R!4iGdpOhpE:+=y;$/+2qwjvKG_mK20_k"Q&1IaVfC{cbu6!%$qD{#^o5=O;_X`Yx4;X"YH9a~4kWF+?bYO%arO/I;xNyh=bS4K@Umnsq^y,I*w:k&B5nSLMbKv/=;EFO>X|Fn@*c./n@YDr*yvH|!OxfZXL.48*aq]]s)4WH0h?$3:}A~}Th8SL:GLr+QvP)%[z7=7%hqS>jH6u@PLr!!ZD3zV8yL{4~Qkd@RLAz6W6}!wd`C1k54X+.ux|~*Rb^1U7"_E5}St6u4mx>G,rN:Va6zH>R8X{MKja8<|;E{J*!(a2u*H.6U]+zwck&|vgu)M4Ov#8qY[qpN7p2}wRo?f`!n*QcD0pWwU6iDPb!qB?l*|)?V]$wy2P/F@qyhn[4`VcloQy`4cl;x$jzF/V0,q!Eo?t#k[:D8/!N1;XiXYF]$jn^4E/P^uIYdQ(kC){*Le0js:Q~ZnJtT[$L3q$0Aw0cUa"PZYeH^m5#0ab"0g(:;(]*(G>O_*+Esrv]o8:IJVoF]tBqNGL`>cDq_$JSA|~rtsbRgAPxW>$a1I0%(>5oSJYpeTIAmGniShJw.r}r6I7Ds2e?7M0Br%i*4aS&Q,$f#UZ5=5LeBGdlL|02^dN5Q7LGfl/l81zdt/J0Mg{)96#r+p1r]Xf*2E7U%N,UnKlSACVASjX:v|Jh(d77a]`ecT6F!3|%z8)69Io{L!Xv5sB2>vo]!;#rrP@R@Qq%~2g#ZK7_V$)*[#lg~u8FmHX6aUQ@BU69_<&Jz}Te|_&KvRuV&EE3&beYn3LBbP+1h1}+:|?7.:l]Sz`1QRb33+~LIcO4lN.=$^rURL4s[luYMozH2&Sb{%y(20NYzD!v+Q?Hcvc"/Q2po2Al+Bl(gpua0b^3l1!p/nQq/^k2VBlH~#!EQeHzzhV1?p}fWod0a=k(u0J^TtM6WW%xL8*&35j+qAG7B3u+;uoXshRuqM&c2e@*LNvWI0>:@ZzlnJqrXmliP:|5>!fa)H#0zm_+u1`o8vr#%zmHq[Zlz?N50%Uu8H!eA(Ua[M&g3F+ML1Oclp5c,lY5Ci2OC&DsMS7gFEhQA,5!P@ddOre5P,;WlSCkSt@h5j6n)K9^qQz1{^BJ}jQnz)dq}u@uViZ;@DI>!Rxa0W!pl5+2keik2d[Ld%9YQ?dkS#gwU"<5D#mi=t~{Lz1@+kx.JTpCyLz<.ER:!ET_@D|d!_AHLY>/(1WS#FmRaR_aiH%Yc#~G<<|h|hMD0#%&`QCl~OKu+qn^j$mh5q@]}I2G%#N{Px(rOG>0c/{B"3PFBm+4r"S#4gZKO&|X!SHY3&wQ,Di;W:Va^F3&c6#$Uqd?"&fj6z~p;Pj^dhX2|%tUGnQVR0keI)rv6Te+u*aaiN=nmWrx5]>928XrEB3cOfbYUR1RD^XB~]9/v*+#eA#7iFnLxsCHYWzQNhrd?+>d)~1ESkg0N`@wFz1aO)nkS`Wk3,Qt]_Mhz}!klQ$v8`kqwL)r_f)B[]4[lm1XhZcZ8%pd@6MzDmjvr(2Pa}Ix>7/YNvlI"~;40>J3!%QW@wUUSQ!cFn3SU81{i[]![?+75Lv6#B[]wxj/fa6DV}GS=<~R0)"Ya9kM(l#k!~I_`0b@=5.Z}>:cWf2mMA^+&e}C@(!AZszECcjT]2"Qo+fv(E%f{p5;Lc|wJ8~HML>cb9=B9?S2UgNAm/#BqV2%mHd`HAm!QkGR`rHZ51G(FPX!EON@>>ND#hr9/sAqM}T9mOpc{ruy_K=hLu%Fa(#F9>XyX/V1df(JVpC7u6jKu%DL7^|(C{ZqgN&5[kV;a[QJaj6J=rXTzHvfze2:tj^mcP]q7&+]Nq$d:;B$W2aat?bMX6e)w++MY;4F!KtL;BJV9PZ2t<<|GFq$Ip1tCr?rdpr1ZAHkmF4*%+O32,#b!lJ<=*R4gh~i[xl:jK]&!^,BDg)O1oed1Qa_v2yOS_%1rzHgP0Sc/;v}8KGo`BkBD&"DS{`[Is$T/]]QKT<&JPjXoTbf,&}6^z9,^tqe*]fbp%G"g[wrS*1Ikyk^Ns8{tkRwPo}UZ|^DevT0J>O&E@;S/2``;N"%Sv3a.h(CS)c*uE8aR^~7]~3+0(jbV8vihU=i68&4[n}bSVw*b`&^gxD`&H]25&L[]l.;@4;b;M~4O?*TV7X{5zFX!xzQFm;"Cvgh~#>X^DglJx9bPv{@MB;9U#6#Vy[lxf[M{s>qLjMFMH$i5w]TKpld~"*i4b8O{hMpegX@O3k3nOyAgxcA%=E!q{,mO02=l8O4fA*|v.k"!`Ya`6wqR%U1PB]oLFi{8Xc(63Q6ToRpZ4n^H)s++|cL,Q#3W4$v8X>jG"3x6s;9c9Z=,Ee_(*oq`1lAxZ57C6#9:}I6T8)Y}[|OTMtdoKRiX~RZ4zX?ZX{ettLSO$u5P3CoC/xKC5EDMX!Er]ICk@>2XKpWFzHs2m2j4N&PD`2R[n#Sm{?&(f0g.upUJQ7,##>ehh4wt/?~R)v3eC(&q~;$ZmWAk)i>x([%2(7Y2iNG7gS6+?wkE3t(XeH;gG7#3l6s5WuJ3+O[bd,)l{J5Z6tq#u4HH^Www}TIB^;mZ:]>,vO/,.@X2b*pd4ID*]M/>~A|!DLb7l3_5j3$B@KJVSqk~x>;zo"3}V{rGyLW{rc~2}Q|f_9>e(7sc~2}Q|f_9>e(77F![^@^/nKNe|Z61,t2k~2}Q|f_9>e(7sc~2}Q|f_9>e(7sc~2}Q|f_9>e(7sc~2}Q|f_9>e(7sc~2}Q|f_9>e(7sc~2}Q|f_9>e(7sc~2}Q|f_9>e(7sc~2}Q|f_9>e(7sc~2}Q|f_9>e(7sc~2}Q|f_9>e(7sc~2}Q|f_9>e(7sc~2}Q|f_9>e(7sc~2}Q|f_9>e(7sc~2}Q|f_9>e(7sc~2}Q|f_9>e(7sc~2}Q|f_9>e(QdE+(h<:t>e(7sc~2}Q|f_9>e(7sc~2}Q|f_9>e(7sc~2}Q|f_9>e(7sc~2}Q|f_9>e(7sc~2}Q|f_9>e(7sc~2}Q|Hc.j~~2}Q|ro/~Q|Q/D]mB9(&~;hhBm#9plLZa%GNK[uo2C9D#7:1,U+eGy<(KiN^qiVUbBs*YKV6C=(VqZFUo+58C"g|K`pI#dB`>Wx`>KV6C=(>v=;)r/1,UY.5_7CV|7#kuaJ>80V5NV{fH#CXEuIBRCiE)GuLCXEuIBRCiE)S:CWaaUZ*2a69PH?V,Lu#KXEuIBRCiE)GuLCXEuIBRCiE)GuLCXEuIBRCiE)GuLCXEuIBRCiE)GuLCXEuIBRCiE)GuLCXEuIBRCiE)GuLCXEuIBRCiE)GuLCXEuIBRCiE)GuLCXEuIBRCiE)GuLCXEuIBRCiE)GuLCXEuIBR:KCjd:_{vhqr>9(&~;hhBm#9plLZa%GNK[uolF_O#7rvGyR)gR1{GuUU$Cq*Y<+,qolF_CCjz_B1&CLKhuUXwDWc[tFHs4*BLO{WwDWc[tFHs4k0U{Xe(VA>UQkj0X076GS.74*BLO{WwDWc[tFHs4*BLO{WwDWc[tFHs4*BLO{WwDWc[tFHs4*BLO{WwDWc[tFHs4*BLO{WwDWc[tFHs4*BLO{WwDWc[tFHs4*BLO{WwDWc[tFHs4*BLO{WwDWcSaLKp2b%P}7=,s<^)(_{Eiqr2d|US.zO(SF2,U266SM7:1,Ul9KK^4ouv!yD>,jKlfGypcW)Y&&~88WyRT3F4q3?Cy/C7uz0%9yowx(yZPf63q,fy$A8jO}?T{::Md2=U+6_bgGl"d"{bV^OULU`77a8,=[b8aO;|00$)G#)KG1_q)z1|bxD0T^;fbIkH@z2L(.S)("MN9=#KR^ubq#EK1/3O&V$7HCMI>&YPNN9Z;1Q"F0e%^a{H8V`:Q=8t9(*K4O&?y=gEn94~0a8hVy9#h81):8=gUPLgs)`Hy#.M_.x;}o1In9Fl6lkMM`Zpl8^.~;hvL`tt]l~W/P~IF<>##f5lFfy#q{pkM^]1.%IYVUKEUHCj[yeR0p/IWUKE8HCj[yKiN^(t`@oQffGywX|X(Y*LW)Y<&5+f@F!jP+GvUUvFK1EW)g%mj+1h0)Z;1h@/hM@/[8dp<,~WRj.Q|IN<;!oYHNT:Ff=!;Hh?2z!]4Ry8FU3ug|L!$qmZi&dpRD,0@yUY+0^GVx;fj3!YncPEYOQBGE1Bww,B**juioJg%PVo9eQ`u.,%e!;d>fiX$#HI_!_@hz?hMY1hv!]TVk>hMaMI!LET&oYi8@l"{p(#H]sdE/~6Iq9?9&+Px_Ybp%++0jq2lLg.D#Jg;x#gSHRwqWz]ugP~WqMMow/Z;cjqTI!5+/}S:ZzHl+l1iKo`nJw9uU81iL<,KtLR}r1,(I$iG7K;K9L`w2s)u,o@h)lNp"RmOdRP}8q=+a,U*Msf&.BwhhMyfv}]SDSjP!|s;a,Q=?gF,9Hx_{JrwVii8e|V9BjHQK*x+,VRgvb8}^$L^3*k_0qarb&V3%rMPD+z0==9@g&$+N`j!~_T#Mk".]aM]^xuj:REfg&B,LW)m0=Xo$N:r`!;UXlfs&r[zuqC,=w:!V`5jK*SfRxWfxhv}1pa;)^_q%u,`Xq?!gU]%OzT2>=woCP&z.Pej(q.H9{|@2?Woix4<"%L^>Ee^6@?!iz{l>2cTN#4ZE__=9!?kD`kSl.OQNnUw<=#Su3[%df26l,_d/wqTJ5gyC&beO!^zZi@p=[V;7<^!J9y;T#5+i8?mT.?NQ(FTRw_Y3<6psp8pXse,ofanYbEM>3ze^="iW^9r~nmPwr&yZ9elbnGf!xO:|TuQ{$48:3ovXC!ju9pXH%>I_Z(@}D8pfs?K1]A]i&hVfq!|Yet7:xI8O&.%,87$T#DobT_?T.A>e,F=6n:lK}s$f|.n5rUV}p0z(&*jmpV^pf@^+MJ}W=1N?Y_;4f6,UZ2H1G}jYqd}>8*MdNlkz)93P&2E|l3fbn!J9;2T0,!>W9is|$$+rp$Nf@1?p)Dh~%Ey[!vk|i7,hTuq5mLs_Ye<2}qmc@V,g|&eh`z~%?%>=eok.;J254p8r7TD9KlrNu3r4pm$9$#H5$4$l*{^+?e}#qwPB>q%Ex|Y8&I0)Fl7aOa`^a_4>b1W9ps|Ia_EzCPuY~Ph!9}eN;l(Qc@H1.%v$>H!9PZ+Qo5e|@n^gDYaQx!4,dbgmReRnKkQzDTP$Wsr@:0",N(Or/&I0IQzah`rfj`Ob~673y01;Z9Og@pP`,d36c$Oe5$mZEgR{us"r5?`YWr5?ba[+Q416{Gkq7r#s5?s,u!A%4q5J|YZ,5+esq9:jYZX=zsf!S}pJkbZHQ;lOZI9dqkz_[MeL%7lm{s%ny[Rpv|o1]_c()HMs953l*"_1?|oHI85jIG~&0e1r`^5I|w+pkDV~g$i%R7;N$m1%m}3U)+[!PgtLPg,9HQ?_w,uS{fB#_+58_+7{>=1q];RE.VbghZ7Y$XZ"uQ?88wRe8@+0+Y#0+Lk+emQwe>iYgA&oN,/^Kq[KHtQ#:d,p0zYlTc7b,c?foF1D>I9dNVn@Epak}zhF=b,+=_Z7;Rl"@M(a?]ZhT/(B|P&!I`]0>l7)u;^"TBIMGeg5|X1.>X1*%;@#2aK"PBW4mMx0>65{#kY;kl!2{1A4Z&8E?Tm3_LJ}pM^h^,aGSSE{;H_Ex:~}S4mJ$ej`+7P3*nh@_pyof1muxfnE?I`dqVm%m8+F12jX&ZRw;h0,=NY7;7qRmy9U*0+Zwu9E|EmfH{Z7;6_$Od}~{a?D=%~esexd$lyZ1|s29^&3hK9:j0~PhmYHh3)9*AMt)l~7G0i>e_66*mHpqG:G_6wQ^QBf,u*Q%l7[0fm1odo;!7!AI+5D9c@[e?1vZ4Ogjh,r7{ah,7;_1._rNwxch@;%0Zi29nPa,7uY=o#aDaP!jJ5mP)N.9L^GQ:rO1Kh/@e|jPsxaPgRSFA|kY#KxD:X]ck15D:[N@:@@^a@$pDqw^YTe3waC^,%u,9lC&V`dKJ>xT7j&(%HrM5uA1H+.#E?]ZefT{Q&48f.3N*a#{NvFWy`o:i6%Ob0L)9%)?x$9]S8pK#p1hj^{KhM#{p7coNko!C9pH2/s9.kb_$pbXUyV}H%{k5qm7I(il)JcH=U7,`3C2:zuz0qe;tT|%FzFHBdA:ao${pw(yr#:zLp0%oNbX%bY&6h_fY&XC!j(28ukK0`J*hZOXTyX6sw"%fM(eO&}{O{]^;6h)Bb1Z5mkP3%R.[/rZwRv)/;=1I4$u*un3/[@+v0F=10Mz,^@+v0E`ajP+#=zZ9%(Mj^;dOQi}2umKw+N!Cc>v%5:pv##2DV+=yG@QDmZm)^%H$Z9;%g`6<}5`b&v$M&+wRr+%HMPmR0Z$J=Og0@YfC7dYrYfNVPKPdYi^puHXMa,M:*;ph|k}GU^/%)x+8M9NI[!^=1I_!^?{wMo9}h74j#Y7J0l2cUesakH}?S8dY_%Vf4G^NC[$]N;)#Y0]VA>hlO1nfI9U,gf~8X6fr(aU`KEz0RW?6sl9QJlUP/:xTyS_%t@p0~^|1a.7VzCi=07&HxxX}SI>Hggjd$HTBYH%UVk.es1QZ0>repw}I@4{Cq[!J>Y?r>>WasUVN9d`6/L^Eny*5_@!8S;ldq/m5gcVMQB>BMhqns:rMP^KpvE/Om3)p9i[3,1=OfVRzyR$d(q0y]ljNx(+aJJ*oVHo*?*zZ)zmfI9Y:vZbr7qio!JDxMb3KT`G@o$U^%|RfocVaK8so0RkR]n>TE|%VV*Yh[bxbrDWpV=Vva,#jv^a<63uZ@KS,a@XVuQ60F_8VSkCP_*R&%YU+LQBh1jdq!|.?M6;%ZCN+R!uQ#8)r1$[e(00TJ}Dqe8n<{lI!u3Eoe;~m.5=z}jx+_^KjYh5,Yf:=t`$jAV|{XTY&mME/VzZ&eji?V^Gno0a9ILWv{^7V8G5@Z+w%@n!@=5MXs$_@+rJd$Ih=D5,}pm/2{{kI8~R,@s&T%Oe)?Ff/n"9@{qkxT2_WM0,h1Gj2^J_8_@!yQA%kpye0=]Z9&$9yuxh/>4Xt(/pwPfsVeV`T=Eg>ig1rQxuDI|I8,Aq!JK9&rylYg~nUT}%A0N1b)*SDIn{:m!,u$[ep@+?:%#_5j~pwP`!.pwP0pHIx<0;}$f&zpyp|m[e8,fwdo/Qd6omy2C@r*mfeNE=j$[O.9{#TfW~206=sz`!4UE`3hUmr@U({igtQaU(`1e,cR#VZPY*Gd"N63"x2=?}%jUa%,)q:9!,0hOe%|7GaQEl_.T&{dZQx!`YYh/jk8mk{^wmQ}ZNIrJkB_PrMhWzk]A]#qHK#)wRSeR.x,(m>1"^w+i8#,1h1@k8a109frb&uqeDk^lk/+Dn!&v%@7,M1IhY&A0FyPYoq8,7_Y&}sB.$|sx`TpvD+Hhuo4ps9>OgNYVh`cuhRejd?ZaOsa9r<*Qiv$,e`&PH1Hu9"/(nb!4ja1#RWz4K9Q:Yw}99Q&nS;Z}0.d4mg?);}f48}5Q(b?&xHP/SOs+%+PW_@^pvHYtTmx2pV=%jnw,m/L"Hv)Hx5+(!)=M!{_#{?x#{SQi8&lC9YsW@EGeyeIQ&;V8VBk}VX^7OAr|Z(`=M|SF.9z{6@#pSEbxqAoCsG`A@d9#!X1fwX1C#}nZeNn5aC`@++|3lw,2oX]{&qX~m8prh:.d`%RiVabnRZmF|.0~62qh:t_pjdPM@(wLMuY*7hYAo{_l#f*B:!iU,7VtETx|NZ="%8}n3cg}6c%e8wP0Qd>f,"gHhPh[@^=!!rE/2n<8_%jYr=]np&%>go9b?Yn;[x,S=|^Y5xe,8gI_PXsuJ9{5|m$L:{ahTC.x9s$#HV&?!bn*PQ&`a{ImbUw.^B`5TJY>gF,<2YQ0(O8p~%LtmD?gjNCE,22>[p1,anesm;Lh:%$xgd.]@S4m|mI9#2"%}_~0y9Bj#q~0)%~^xeK8Q(ageaS@SIH16=u${_o!>}np"H|mjPr*jeJ>EqdPSeo^N;aQXCWbNn+J4jVn?mtq@;RE(8o$rq;2Sg}^_mHhd$e]=!uQA>w$!J<220.^Y%z>4<}{H+s*Gr{,d@)i7T@rsNfs/4e@g.pkXF$/]h(ZOi5).B*UT/gzA{wj}k&5*/n?Hq#tYv,wAsAIkpR=w=.a5o*mqzf%t&_3J*w$EnfsFS=,m5Zy<()v9bUHT2u2bAG1:i1[%XzgF*Vx|Ud5[cHbZzPF0bg3tT!WmUIRT6/WWG0P#6HYhTznKc@>NVzM8x&^q1,L#[2SN3cG1P2/TQVP%?$52mfLD#8izp]yf#0UK{![_$e*hE|mpdbYxz5?)m^@D1_K"MPVQ#cbT*d}2DohTG"^c}YalxdGkm+&)L};h8_Em,7w(K?XnzvK(,vPW=*9wM74.N_vb!,1I3B@m5B8W>E,Xo0!mGZK0+U~8pb$4fu!Z>ufcV]~%#G4L,aJ*[NdZ9M?P^OW9#_//WVQ@4@BPothG=[i7*h60=`NCltPQ.}?m1h/9jUm_d+r(`9,vb`oldsFD#~gq{~("_eK~W5lWRtPfK+fHo).E!VKXBV7nUvMn$QZ*~2?SMf`[e]~=qN.GLq~mzn4aZ`UAt1=GL?~r}#TIc.(X>/KAtVD+}Xz]~kps|.B~}{^h+=~exVLXg;$GJ(ZjipVg~2(SE%@w9k~(ufntMKzGK;he?t}rmw?Ts&Z(~By3:I9%=#I(CBHNTI3+@S$0X$su{&_gca=z*0[M.%y9`w%Y/3}VRzDOv8.~,]=2;}Wzs(St#$5|yhu`u(oP4}pXw?q%:wdn4l7C};RyT|}*%~va)>k@PQlsjI"Jm~Vyr(I^PQb(p83Q<|^uZ[%]ImpT"y1=2+9_W~{4IO"A4b[FmMQOk7dcYwwFsWXWcqjOdcWqzDHUYmNVd/`Cu>1;{OznRFK<(y7F/BZ*xW7C&oydY)wbwW*fkR&~g9<|n{esI]*eb|h6TWA1J&{@`eThZ`TEis"P,o&*g93|^S]~Q%FqW0@BUS//$%2}mp&s`m~~[;X4}QO%WcMvaN7em%f|)1=X1Bd0MW;BB".t"+6};d3h1T;Z.md#fq"JkM$s?[zyQ?/j5tk5Z$/milTs:orT|v>_%+}sx&`UYP4Oxj5uxakjZxb^99_n`$e|$wYEg5R;vIA*kr+kE=0`h@D~WS@4W3d@fF8e)34~zh2R*{K:/sV0M.ZxYTXg~#`#`_G@`r3U~_2cW_%mV_%svJ2]5YMKC=&bddGx8I~R@HrXtHh7ds/iP$nu_Gr)Cr:z}{b!JSi*aycu,#=,XXkc6MOhlo]V.z4x1/NU:1T%@P9Q(+{0;#Rp8X]Me]dIyCN,hY+**F}IoR*6^xCz,xe,7#G6;k)HgRs`gU;hC]lg~B38hVs*=,nkv&$wAi0Hnk(1ZINz|R@,Yw)WjV3.$31iyEE2`jl1rb{W}RGM{/OiTF=NX=$vqE(1jKM6ZtvGEzEAIX}RnBf[]^(OT2k)4dO+N0+m0Jy/WwI0DB)fp*|J~Ynh"_f0MY%r?ouC[6eQqO3QNSwk;L"I$3]~tx:UJ?4j|RMKY94evx>.~I<^LL*Yw5*YePd.C[;nt_{$dVU#n(hHW;2?C>pBDOj5@r^jC2o[sSL.mSD_NSL.G5tg+OPS<>E@OKld:6Sal06.YH%7TgQgnUm=uW=uR,@4y4dLBS:e#OCFQoBJ;hn;ow+$~TABnJ%lT3c#>oHu?J142tzInJ%l{utgaSRoyXb0IRpKtzoLG?!)ITcUgTmn4LPYM)lUo.ZtCr4CZBSKGOk/Z4#0Lwo.2.*=tB6Ax*e%6[e/CtxGZBUkd[7ihdhHjg148tV^2W+!x=3nvunE8ECyX/7@P[U6nMMwb32S7oO%w+PClL3;M%84"4_t+.Ir03,O6?FJGb[A{Dg.X@HXSUf,4D^%%$pU}BFGCk{xqnJu!f_OUkNc,bI){*GJ]"ptK6]"w!R]>2+$O/xU*BsCqb|(MD&WMwpt.@KS%RQa2j>:A@0dByAA?"F1A@jg2W?MDMc6c$<]U3I?#BXyHEUYhQb9nnj"KL`t6i%gFH@JzC?Ng$oAYC/`nnuU|Up>[?FDvY+z+zL)x=WUWt(BDxEEA6g$ctyWM,f"3I*br?CyW/ynlN^V{Z$^Uc:W30;QXQ{6s+{*,WxC]p0.ngh4A[DvVPxSDM02"In&:6eZ@w^9AI$c(3Fv9<=o@2VugxKD$4BN;oS7/T?/FM:6Zv9g&uUC8Kn{GEz=b@Q"=`RI{Uj:0b{yxG"BB`0Uwgjc!+#CyI~V8RYzp.,>HBHFN1K%24%G.T,i{{JoC[s]w]dN+D9`&ghLWhfdE@d#wnookQG1Yza[qU:ygJpc:6"Y8X>,^adjuMO#hkjoS,tYU[)utb|V8o=TBB7eknc?T|(BU|(tAsm`pC`obe/sn:Ewanv1xd#Z4yXr)TafHH7!.HU4B3CjfP3#Tgt:A{Ik0G0R/F+Fyo=Ajk=U,,OMU0nxJ@G7.QcWXKN{D{UHHY@rZ_J8RzwLoO"GAOA}UF%bttb#d^SDFPoezl"I%j?CKTUmov3eo/D`P/=I.^:G0#[vW)B(GINoWu!e%XkW3azcF2TqK9>1NFG2aGOu+8vd"HkOgfMQR8$<<8fo:xnLu0CAenQpRF[=J|>qC,A.g82MuKA1PM_5ZTc?y{H"OFPiWYk7kp@JZ}=!p6qg}2Sl:R@_W4C[d(K.^W/itycyUB_qC=v}Md#$k8n/h!k+ps3@^s+fHvj]?;PIJ,$GtSDP;ZQFOE!21[zWPASxMF^T9DL#_2E"iY.X.XbUYw90h$OO]oR@kC~0}<[p/om"}J3,]T|VO1;^snVuwOMR.kk)wDq%L)tw@6&k%.9n|pZ,>t_0}r[zvbH%@PsR8z;Pz.qnuU|A*T;WWvMFU}$gGO>[4CCB~g4;s.>>FX0O0a:`Yo7UjF#4Hb]Gxb++AEItSD(jXzR9d4lt}:8DtwL/9Ug.`E#k34juwC@szB,6([[6@6([3433q"%DIW~=b#c/=[0(%A2MBS02AiJ+Y*NJopL|A90eGo0zG3CD"gQvsVwg%[hBIH5B!e:ozzmn7[zXO774E0y%h?:u)dq@&@=F0<#OFX~P]"Du[PaHS]a]($`WGDZM9VN1"Yd?tF/gVB%$AUZkd/f|[Qw`2SCCbSUc"Wqt3VIkR1FJ=J3(5AHJ4.y:Y/3/},5Q}w%N*6zW@BDGMw|rzdeRPu%GoH*PIk/jl0n%lng)6*tE?CxV,7M7?[p[)I1?J$rYEQcE>Ek)D,O/Qwf%mnkX:BMLTT@kRcI,Rw}CWa{{uCOcMAaJam4Ewa|yB2q2a:Hb]zhk(.EW@kR9d/Y%X)!F#R*1c8|xT/y/y/Ct_atewHM2a(($n:EbGlI:!2o_0wg)[1(WFTFdP`qIK8=c@&AkDXH%N.Ndo]@X5|4tX,C]J?f|7$gC3$XGV.p1^N=$XMSe#e4{4x3qo1^@UUQ8__Wt`!:6:hV[hk8<0;(2u_tuM1kl+;O5KxiIxEy:>0C6J;Dl$Ko&LCPYzeGPoBvxxamVkp+3uyenbSo~@{ABEK9D3jKfHkgl+gv,?d[#MHZ.dCPJQA;lxgj4"L6H3w7o!k*TUp_O6H_#cUO7w@"AqR"Hg}9Bam}M$T5+4D(V{Z+/v@C.#Crr;lE3<[BvQyOgJQj9c/to].k3V:^:.v?t(bG+HU&yn0q2,nA8vN}M&Nn+D]TDqHd%/6P/!BS+jCNTr~g8,/i++Z*G(Xjg]6x(2x9rGYDGkynRot,F}[PA`5`s.Q?xpb*wLyfh.=mAB+65nP>,3^n&^"bg3.%zqDt@ZP=VkF3LX6mpT:.KUv@o0C_Yu2HwncZ*?|rzO3nv&20=&)&`jD3#5?w6VG9J@$rqs+@L@1QaK1k$C%q/6[+ok]W"A%O$cUk$!ns+8HpK5^4.J%b+HSm}@zfk$.Ft<]LD_pd%Z[^6)T"3$3"bitizSThX=Er$&bpU/)ZAyvs@[G[2toXF:M`*SQUQ^jvXz;RQs.J%IvH8a8(`lV%$vn)+`M1mEv3^7^1FJhmu}EmGXJ6k%`%XQBw_1)+D`7c8:`hb2x@^9Err?^!xkd]irr%3m%7k*FPB(VB0.J,?lV7ohL%BVk~2i"vdepvo.Jj(l.Qn,`Z/|TMRxM&f}Y{U;`/6prhG3t!YV)$7kd3Uz.J{W%:XcCX=@K2nk<@g0ik.Aa[M3UJ_2!=mA;UIQx=G?`?JJ#61bn]Z/j$o.GXC3:TE[>:TS{{ttQXY[:M2T^?i>]{DZ2t`bRnc86`Uo>z.JpR(V(&.^Qomz/2BGh=wW%@>:#OiWUpz[M33w6[&3;qlT1/PaRSiyCUf3vo,~Z{p]h6sW,~P{T)/CA"<~z}G7Rq|~D~Z:3}`~x|%KX4$~x}fA5y$~Ep"~"_5S"sj~)*d+_sr|R6At>~]_qP(h"xfZHoA>W>%de~242H!oicf/$(6)_=Fz~:_~{B]B"6~$ZO=;MkHWReqiW~7)ZcX*AYv+^pw:C!}J@U$rOPO0S!_}=4uJbmvRytW2|85tW.4G%fv?S}8(:!!B::fY]^8oUbq+bzpbR)g:?W_L;4g{<69Me#3;f[6f@L]73=z~=&wOgg*a^w+(=`TuyzhjT&d==*Qpj2^"$5sU(d}Jf[O*@&PufpJLx)Yfp8Y|BYK5ma,a?qkB|:_{#G$!_I~@]LQ`@Q^=}}ab6pHy(Xg!8PP/+wqRfc_@sO+I[GVw|TK;c~%vPIVr/]4V6`QI]h9M&cm[&cFA]?zN^PT9,(]g2|Wb<|iL1k3mQ:X4pLe3Kbz5vl1b>x!Y:OUMWD%W&gZUl@(j1[,S_;1E`US^[}D87ie&G9KDqQI(}]Uvf.iM{z_vfxq5iN@S1feJ#Bb>6q:^=r>t/#?CN^UG_eo9K==#qWFvKO^PT_6N6d@lwng@l/w#iq9;dRMYWAzcxjUE#n?u!BrI%{$#s5Kj~vdM+DoT.I+%q_@4v[,>,UF99SbQfMWHVZf$+UFuN7VK@tQ:PdO1wKh2N%)/%zKloNF=e`B(%G!3a0jO}?BsZ6v$)$:%Y_0MYyN$SJYs=;l*^!cI])=8>|+wb2>%P2b"/!/SM#:%!Z^lz]Sx,?%ibw!{U|1l1}gM!k[rLY}Zzif8H||fU"=k]:p/fGw`zpP@%Q=6aNr/6Fza1PgBV_m#ZpJ}=^&S:)!c&QE5m@r7:R!gR[pojw/:|+eR!?)=k2md*1>eoI1<3>#OQ|kd0%O%M^x,/#uyOg%Lz)^=w*k7rJd$DV2cA|nUVz]4_dWoU&=:2R.1auG]oSr)7v>k~mahXg$U2E4V`]PZIRojCf,Sz03q_["Ot@3=6QH&K?;i3bxRfOz0)*]^i~cWw@LL*rOLH5{l5b/o[b1]V2G&lOMees+91Bv_pmG&y9/j^=hPZblWImeVF#Z.ZVO_1ZezF17MK_hSq{ie8a,.Rbarg]/_MEfl"d&qq{ig&.saF`/8@s/10gY68jdi8DU6)SvObQ*KxPrg5@{^16$SZ0sa63hs79:3Fe[g(zm]jkWNX:pNO1H>]=db"/L:bdh&c6M(`w=:%J8aHgB;1IEgcaFgs*;d/;^!>@_g:r!L_<>p,f(/=Up*5D.;}oUP)Ypp=4Qq#!0Fy/pz{k^M~^|1eK9d2bWlpovvqxc(6z5sYw0G@Hi1PLH5N6NY|kYNDVOo]Z!1G&,if*0*y!W]XI^zLrQat]foC9Q+RdV{X5$Ph,I+VlYfIhL$Y_I@_?[dI8k[dbX%GE7/x0[gB5i`TzS]h8Udhs=}^%4U36dnN+*PH}OglKzsdeuo)Vmv,:@&vRS,U^N|5c,sg1Now,_6@#DIb6.5}:3+UMrQq=>+4g*:!q}+/M%QO6RH8&<++@LR&.S0u9%j7a{kU&x)89i{:XMq!qw!XdY&7:!qpjZ1elfV_7@N(@3O=bCbK#ZyJ_0Pd229TV*SQDbQI>Sg{y6=%R.ebO|i9>%@B8oj0aIsZK;szOPduqWdKfT:P=pm+Z,(>)kfI5`Q7jVw8u=lj#@Sbz[nHmQh%AhG|I.;Gjur@f5zz#9%ExDo!?;kZ}N^[,C;Vb"/(q6R]=a9lrCMkmG9;+x!60CpS^BlB$vgt{?PJRX=y0M(hs`{Rk)%R!11L=]SWo"%PmrukY"prExU2QTx!]^%nyRq4Z4eF=pk<=Ezs%B)E>)k^C68b=Cx/p`!x!B|Y=H&fqoT6<]UCEaD|IIVw3C>V^x,w!Gj48ndX#~k1mg_yG)Bb*;~MGP>_r=f(SzjM:fpf!K(9U.9vt;va>Is2w8d@E#]YLp=<73yc5+Yhy3aVh_M6TrOqP`@u}6&JK8ojS2*zaVIPqpa;8w0=Sg?omZn*X)2YF&1W`h8E/z#^onw1L:y$x#tbO_PTBvY={W{gsvGVBVgaOq/f_6X6sLtJt|eshE(=$8rz"%o,bgYFMW"DK;20Y?[(C+e(E@*jfpLYkbkQh!.^U148B>]b~6xG1uJ_^fxbvQ=bMZLe_ZJ[TqlON>,;A|f&QJ9Q$2aK3Yd&sNH4eN^Bk10=l2"%mw:!qx[RR.mKjm]e`^&lJzw,ly_Vp}d7}nO+_6J_^f83B/]9&K$9/;rZ$I4rNFeO<$+X1Kh,Za_H([nG&i&hVwq7^JFr/>pd_EkT^BveVazU._^dP$2<;GolIYVwqk5TdC>+0y3XdvS!1jouK!3p,C;,,x/bWPO({1+@qh_<+lIk1G`oMq(q+mz2h(>,`:5Pl^xpJa~{7|3a3qrGpPq>|O=by>`@)D9zeRFeEMKxDoIRxQ2Q=b?o^v(pMyhVjOBvJ_!SH(m,[m|[=jr:uor);d9^O?~MERKZ/w`&EqVnqmo8Gns>@+/UZ(g{?m,Me82%tU{Y{$Ey$r*@L1YZxf0*(YMHd2;0[Ay$p>L>QPR;MqDqdq&%0TW2(5/0p,=yXI#)`&7R`@L>R!r^N;AxhlomkP7@4>L>.eI9$]M+,.|PZb+?yIH!2>4eo0R!=zbhheMgh#|^[nAHi8A&)/Hn9##H_?Mx1$l1&pxec;0*!jI95P|@2J4ltrK;JMq9e]A]2@5,Dg%z}pfr6l,d9@,ianEI/f`g8@jR]e0pM(!*of/Qf_8];kA2r`(#(}G1hb0*uKj{5a[)JcH4}P|0/)fyhVf*7^$}ZDspHqAFF_6a{(#@T+qk;g#42pK($!tTZ$|#KqMhs==kQEi;`i.i@KG|B~J;4iu9B@(eR>f{Q%P&Fb,8Y$V`cKe(.sG>b9k]6OGX)Zs,&xIg|!!j,iN6Rfiv|PI+b)Z{BONlMs{Z|@H&#LuYZ(lo_*Mzb1:#}:pv)z$jzsZKz$Nyr:Cn83t;Cn^i2b*VzO/hm?68CfLpO6C(5GYj8@IKFS4NEjLpE(@RgeR{Wf_=on(8n^0mZ7(oky9x6!T2:rul|[E>a11f/jpr(SP:7Q5NuN*4ZH$H*b~PHVOUWst6.Xj}0$Zboj[&fl2/[&*^5#n0/8_]<;7Q/NMp(kZ{#5|hD)HXFuiU<;^.Cl8cATHeCXV{C2(`$7P.~h2bsDlwb))&R3Jjy@{M0#PFR,yVN1Y)O,dne&dl=kOz]&X:(S#8s:OaD2}GmYP%d:@_+3wK/k/Me6a0v^6;##5=>i{z)*,ezOvR+pR5E;7Qth81_]I|Ud5&Rd8#.kx^gYta?m=}#d77?b$7x&zQnS*jmdV{(jB&aRPe7wZHv|#dC2c@oTA,i#aV2/!j[0J8i,XZ1mJ!g_K6XWHjrg.tR2u_/{*lYT71Q0!lwciB&];n5u)%"42=e8f?S%lw7QL+qo}#rg6BN&zQ.dQf.]fU8/_OE8a9zhjQdj2e{B(q!fwY@HM}prM?!}Zt$O1]$S%4gB;xe3l3XO1/d8+Md~0fNYg.je6.+G$`wH@NYgngI^Q&I++fus2l7aPp[RJQI{?mG#4e@?)jvR&X@6/k4>7_L{uSszYlQ_T]564?4p5NMsnCT_<;7Q0rf6&R>84q(a)l=3Il5&Vrr{s)f6r{_]<;89ch1#F{^&Q:Q:Pduq1OCj#Qn])9"=<9OL68~S=eu2_lY.$HS.k7^pAd"Z"*"zW0i2D.7&!7X{VjN^ChVUJ|ouv!&v`@e>>HCj{bx1arZiSnQ_A|KIye)azt0:fv/m_SckXOe2_yTbkC00{PMIgXNJ?`!xzu15=YsoAvK@}KeAKO9xLmrH7L`|~DEP^2>Jl|7SC?5RO+5R]f=hY"Kh)k#:Cuo7HGszQ;.OaDs4isPb9QqaH(oEwg)LfRfZ1BaL=fD.4IMl^ep+w(A:(N{6VT.z=/$@]f6K.YY0txn4uIquhYd[]f^P0ckZWx=XCRaymqNECh*4S!IJ1KGy7=m6N#N/S;xDkQ6_wwkciRqOIfhLf8>onE,!<:e7PCCRHOM0zgP7ou:OG;(3`j^@nDZls5N&!u;[J8QDadlnrCscnEN5uNJmF;e2iC^uH744*TEzuau&*SVN^$=0$47SS]0kR8R$*S~B,d8*w.)#^ycL/f%Qwl1JG"6PfuWcvE%AhSOy8g=4}nBTU?5r^PiEC:]QmOF;YoqK?Zx;m7bC#Kb)rOF;n;e6(yTze7bCb%}rlhc{Ky_uCfq/Uc#EtzTq<8(esZ*u%gEw74zJc2X;B6Q;A5LF`17PI5zJUCBe2/S;*")bEb5Y::&)"CS6E:2]CN%)F*Zd):%X;P_Dc#3]fmZQ+>7P,7x.0_Qz^dP;G,[d]Yhq3WVo`(Ht(K9?jF&xR<37Qje2wEF3ai4BOr}Dg?IYql}RF%SYxKGJeD@Q^PZqj+|>rplwF*1i2Ah=xy19S14r1hlw1l2wo**BfIEc7SFK^[wv/f86dvbc){21RF#Fq9QR*z0~9p`y1c+4:3v3d.z~&HPRAy;}q@)f7&BNi%@rjfC7OZt&L~Lw.NcgJgDrLadxfaJjjTyr/{RPb2`[RD8weFu{ANB#|(37=:a2i{jWB4n8YF*9t&O8#QR&3BS|JZU:a2i$GR2I{~~r8>xB1WX?I!Y]J3OhA9[pH?%q`gU+!2YGF$GOf"`QYErA"Q9xbsu}Ek.6Vc.RouGt|X%$$f2lZru+oP+c)hJ,xRY,bs9lZj68w%y`R,5j/41$vz8q02@%I_C@A(c{v0.]j(v[Cd6IrBJuomY)L5qjxSF#zGQ.MHgA?tBWk)5VbJyB5G2t#<+tPL,3B&4(xd9Ju66[/4W{0`c`XHD>lWoa!}ROXYQf`$MUGSZr2L/RJ]QJgoCFh|,UOOp~`FV]BHv;f[H6F6RE0NX}RBurOuG.z:oNOT3%9P4oC$s)O7aSv`jL?D(v"C$w8[gW^(]O"y7{2[+C${FN9*iJy6H7Pj~!BUQz%FztP%:LZM+6oWpiFLOlkC.OwBNt&tKAV{t+qWq)CK$py@H~ht"FhlYOA;m43bNAL=N}c32#"C8L`dKHhI=Qe%oWXZm]|/nZGFmleZtlS;;c`vR2XR}d04=yT%10I~bIDZJ+1D,OL{jH@4"`HPq&b377%5y:7"wg|m0oWtc&Mb_/.c,6s3.Td,`A>xWUI@cdom<0VY)E&o2t<4$Uy[;OCRkH)u|`1lscK`5?|R>uNCium_uW.SZ`(v#.OhB5gt4/LTq4iW5SI7v}&j*a9ac|2p1,s`XBE=~6C&Wbpd/[tq1{dzd2t2Rv5s82]0ETKa$|d558u|_BAU"2]_ySaIM2G;c("AxyY|eQ;&/t5?+VHS5HBy4vW+u1gyJ(p~M644c#WktzuM~m<66GOuE;(lla:via|:9GQ[c+exDvnKLV5QS8JQw3_pmgBvlqO2!y::Y7d??Im/#zOqyacNP050G/Rd)7W/#2Vl5CFf&8EDm@v?WQ(a$flyDAQ0v<:`Z6W)Xeo7usMcXxFKKX64DHRNMb%dXXX=L|WS&6SLefD2gOPZaZ9MmYuMDK[=v$!ZxN[ZDZE>!X,j9eIxZtBpVso7u~tdZ?5X{eCX)t/2L:9ecLfg5y4K`^P!}5tc@p[~D&Z2{aahZo^`o#7d,:#Rt^cqB+iL7p.h/|zF{1l"FS62)/lP7sb_>N;Rj/#Q$4E16s./:7X7+6i%81l:1/`|98EU5zJQ"#ROGWoAv#vEJ.AJ^Pbnl{"LsE&9XEGYR9(vx6SuRsC#D[`I8tc_vVi"V]W1o4CMtWCF%9X`IXDbG[GBCzPe+"x=z=Z1Wc23=k1?|&HPQ{$zX%&Nrl=)`pgM6[Q;Y)dMftnZMMJ[QJ=EzzQ@.GwH|3zLQtI{EI4kD7ogJMYc^Go?1B26if[j1.Z[.G;CMiWKbtz:lBw+se@/HPAD)ULTwWGGm<6um^3zCJ({&$]C9(qO]d]ytoZ;DJwWQnvXaJEFptHJ/3BA%[JOxm0JsCu%$lhcu)kl`jgRduPT,.KeO1d^HWMhEdl?CILVS>Or@xxq=u"x1{e/y2.|eW,lTcGA#>Fnu)?Ni^*oB~bG=z1<#3a,XSC7N%)$/84Zb9F,G&TecCINJ&Fnnq6m08jXXMO(Q^LShB*cqbKJlW,lDa@S&BIFDq*yBFwGtZYG={TvyOcwZ@Id4hXFQy5+E;C}DY)JV;*uVJ[Sv9Bj762BDC0xD<0hPk?Ay=tTm3j&rOvISob,,.On"!2jCT,"0ynR)cBTjia&0jgNB>Wz2S^NEM)RD#p:hvt$y94T,]MxtEZpxFD!lVBu6HZ:Wz2y#2usn%4QsgDTzM:3k4j`yVDsM|1sSeDIb8.x?Y,$Szi"/!YM.oGUE)4&NKyK$Blmik1q)L.!uRB9cq0_bUvi92bG!lJ*t5%??s0xUm+mZak:CrYZ&FFW0lBTmRLOmJ3GGztG`Lm0IaxK$w4yqPt&dKiUIEr64GaT,5HwtI^AAE:?jHyOG7WDtk0ONv(rEIIFZ6qp37+_6N7v,Mb3I/N=/?jAX(PnGUc~Ifx6V5tX)~[>Cxpsf1%uI@@kSJ=GDZYvPrFm!lUl9*EnO7)ne)l$LDlQuvEs#:_+OoASA;Xr2>h>M~12XMKfzwnAAp)PppM1x}$NJ6uxzDfN*u+S6VbX|/?/h3aZTtn%D!6Dk>lKiog#CH{L?fZ.b+4Ot=t`#*q|U4(dRes^C8Rpwnn>lI?UOWerIv#E)mh7ATwYp"JTv{>+2:yRPbLS7lctE*v,|9W23k^"sszDVp8jwMieo!{kBui=(7l=bP>l.(o4%XHw%^$AqFZB8i%;E)%=&o:V1)%F/u7+`j%;DXE*/o|0[ZqF%:/l1:1%7R3&?Xa7es>B)X6y(Xk74J%WPoxM~5it8_D"r|m"`#"1^X3t7yevX;G"QHk0$cWToadG5RSl.hgJ|eTF>l+W;Tv,|)~L5wp!]AF):gVC3%Y!/_H[~l6Kgy%ZZ7d:TX95fmm:|B>a]_fWl5"87DVJawethpG/ps*xdK.glCTX1.6CClZMpBDPakg5(xN&MG$mAwaiM@`Ko1IPOjG:uINvDjd4NNva]5[ZFmU`hDR2+2I1%UG~jgSOBHzrBpXtBM,2G/giDGo,H]]|/G{WR$EnZ^aqJ@>/ImC0906>VaCEoNJqar2_yKS6(}EH[PiJV.kKCl96x?ve5xR54K7;SEHvVZd564KXBLrzvkk/i~eLH;yg]{u`#MX}U5]~Fimz1|(}XN*,al98v)4?(!kM.t8?zk4I"LcCtoa+UiYYh]#BIbX%Hia2KKFwfOzNe4(x?TLHeV{2>SgA{XNC>e;:WN#J,_q83(Sc35Lxd|=0gF9|y`vR9CEZLO>V,+gi^06IIsi4;ygy`NcT,0G[(~eX]uuOg0ATO{F"jOkI7|?[;`H)b:57a#g{JbL_D:!,a}/57GJ&NnLMi<7LUU,nN~z6[7nVJ)$&Dw6jt*XFg^a3[A3;uLtw%3j[Q87jraYs]|BGOShp53iS)CPTmGe:y6wKa+8XvLASB1W:OY5:"IaIM3j#0Kt4K[ZB:KCxnPb=TcIm<%(Q!2R5Eh}1HjpRIQw4jYB`+.DsOt#qn8YK@&lhXyJ`Qwu=7AJgr?Jwg3*szJTkL]&I2nEf#~DGd*7*,U,#Fbt!(WXqu]>i+NBF*uYmmYs;5t.5FXuC7MOAKEdFh#HTW#M#;T+6]Qi:ywK>4.sJVO)fMtN%`;v+QgyAK#w|,tS!lcG:W_^QJxh%ER*&(JYdtUOk~J70)H6bEFEpIO)xY}@gNH$nP|HN1iNQ%SmT+)j9w/a`a4Fnn)Nk+$Tln:LV2"[Q(#m7?~?c]KWEYhVHO#2ZCs4>~Yz(CuMhp#nMv;|lFJKWvm]g4*m}MHPy*q)O+BQH`+yyiSHG!HhDZNU8ni"/CY/X(i4:b=Iog#Xl[SS0W;JKXigggV09upnuvMK|qA.QqBbKsakoNl~vOzLZqMRt#.QiC?pL/^/ppZZQ+a"nO""FnV%/]GF0>qFf4vRCyO_6QD?TiZg{}WsnO$sJ!OFBN>^C73ev:_)95E3T5E0M}2q%}2(X2Dc7(9JwDV4zAU*CfhLO@?nLlzgKHBNKI*K@eiTiXIL]V#9BMsU/q:XY=JV_0+ggn=ux9](5rp[b`2T3iU`i)VfD_`A)9svN9F331Fq_+n2WBBUw4bh+#?t4z8YSz(&e?8=>,/@x1lLc&=G(8Ecbv#_g/(ayyau$nN%y1Q7|vItsL$NbXiqaV8r0(oD4F(q>KmC+_zc5I0OB9CEz;?z/F5pgb2@vt[JHjd5+qiq@{6(D[@x}yeup`YSP,@msUB/:vjq|f0)#h/w?VDf;_/nq_W|{JBAFG0H/@)E.TlZjQzGF7GcwmVlYO]="Gh5C_L#^{Nd}Rch2Wzx@lL0Z*c..Q_5Yn?{45khI[F@2~c}J>JmXOANZI^a(Jw4gJyX^`f*fI;1+4[e@#uFJ"B$qR{QQk5LiK>XHl[z!yQiEMYmsWk7pxn2KDB7jh=eSP+NMwDcB?D_3|LD7/b@J>`&KU!MSnR+mXUuqMT7yP?xptl3=g7prchxW^8qTR^>@J8K}.!X^T3TsEV}:CWRRR0AV3*<3vGvew9++a,izNvQr?:bTTWK8d>K{xY.~WuS9g+L:9CyjKXCvuJCZcRW:7H%yupwS|gZMJM!wdxnG/t*ikjao?vu)"gKkl[ku/@;dZqg=$k.sX.8Mx7WJ/zXDynhS{[Q&vwB~WHVxFU&I74w9"$P|+b,|^vc]_y|9MMW|WN_xj#=)a2t+vT:LE]QLSz1yqQcJ)SNLMk8#v}#EuV_Mc1[w!X(7V`qKKg^*4Z/TEY:/@O$Ic{)gV|PW)("")5`|D;&:o=*i*,f2z{k"=wEW>fs!uTEucw=cL"[&)fpe"j9U%mNxy#r#w|y4<*xF7CSKL[f}l~K3^y*+(1^R6IP(7u|2OoZs#R@TJ]%Tdv)<{tgxVs(!cstIEy`1GnjN"y)BZ!(XmxrTz4#qhZ`@t)`WaGZxS3ns@4]vxvZ";k|Frbb="KQ~:T4}d*1?Y`M,yXrIsyoDz%/[z_A!Cg%Xba8afz[mLOZ?$zYBZy+_JnBWQ?pX/tGY$i&9jCLC~zX&$5PWzsvDa0)qt88YguC35p.%rt8a?m:upocRS23CJy{(gCyb.rPO+=X@{Yv7nPN&FOL`9p>SNn)Q::XYHpFXGL?Kz;,)BoIjU+1/C_F{3jK%gLma+H!JU4GJFBKLDJ1=Hy_./PW6M)iG|FEXK{/H,E*XH4FJZM|`Bb(ck$U/5aCLMn<%oLf+K$TfDiHvRPWg(@t+WH>KO(o54nB#Nfwt+n6JC[F$mric.2X~26CyF{To2E&0n,)INJVcn#,e&h#d/6X]d$7oM{GMM{@GSF"ebdoKWUi?{Gh}>O@PE]fcs{r1=O#kCRKUwm[AD8Uc4{RbEYdE_sPSoF`$5f.;S?XzX"2y%X^sG%5EoIt}%Xz9_4U*.Qf@V5C9qattt#8j+cgFF;|WC{Jiem_!_XrtD}CZ(`k5T*C]%7PW0OD4&wt9L@zyB"T/1Nwp"rSHL9w{2=5u]=G7X!aYf&Nb4+g~_LVXqn+xM.yV7ln23/x19)0~p#Vi*]zGONDe}=~*x+_%cmK]H4O|bpcY|K!"]`"KFifpIh,RR/.gWA?4i|e(0~FPKb,2bfMO+i7."iUOt*^yWt%^[i{>n5.Et]7j.dH3FhBdqmH=_K`5)%"HDOT!t0M]Qg9gZb[C)^wu$GfZCwuDmlBfew)uz0a+qT#7yFqI6msKXgl(ta`IgE6@n>YNBtNjsiRyMe5VZ$PWl[C*wAIXwiEEMi44yjVL?5==H<@%ZaNj1AzbJb<`MPSEbLo:I~*6$f9yq/K6e>;!j[s1Ya8E%/}O7E!t]*U36k!p],&ZKez1CK<9xhq2qc&$esyM^GrOF6ea?Qpy&+^iW#a$6+=[&H|G2lVwKR"F+wr$>~V#TSqSqT&=V4RWIz"cP=QWIB>L>o>.P9?<_5shTa1|zwKHFqOqXfSpppK6ZXgtTzT).~mWz0gG%b?G({ivQSr}_vkbMd80=0!~m_csmriKqXGk8E.G,v@v3_;=+v{V.U_5%(w{]D0"~;}Q`;%#,70K,;@%y:D);aI/l8H^#cg]@i=7}AFKV":+7Q%j%cgDRMBbsb_A?E`huZuZ+"?C`jne=]SJ9&MD+%P}xy["`n|rg0vP+sklVw6Z]b~cBK?P{.gI+V#*Ld}a&K+x+pS~fZ"A%Q9K#+;2~fk&rb&/95]jT{U/I1k&QniT<9}/}XQzrqW@KHAjn~$(rW9nh]NPe}MsG{^<_Wynhv5)c}M75_[Jh05sVHFqO*Wrik8YgiOGI#ww*N0Yg9NGIAds=HjRR{I8x~{8gsQ75@pq|A!XzOA^?b=Pf={?k!wM=Q,`XsiFP(3>Rl2S5?&mA4owJ!?GY46k**n+cE|T?G:nEaa?(NAubegYr=5?(Jr=i)&m.n}/t$|yz?o$Ip[4q3:n#LNUT)0)M=YA+>hJpRWX^B2y!RHBK0?`P+;$|DHi0HM,nCoGg.Wz0g6#g|p&^r[)>&)mVg=i[_%;{nj*~2A=x;uW28rm+lb)(mLg|?[_xu~DIs(Nw!T,_%6*~lYr(Bw#$||&X[~/Xin?`1e*~zu$MO%WGln!C_>f|@~rmink}Pg|sz4!T_|DE[~0Win.`U[)~Js)>t[9m$}mD>~#Vins?^E$}`5rjT3HwsvPV8i73)L=RfgSNf=2h^E?Om2H3A%VECosOvIXB{Qb?RMXq,>J"y4~IztgxyZb9/])=2t+@~PVino?_x#}}=4^B#0@Au2IbZ:@EM(MO1SMQ&.5/x}}U=4ECbOx^:IIA"e2=8cTB#j"Ral]^viTqvq!5747>#.`21Ct2u|IK8,MO1!5NdW29sUgaoqtXvI1^>+xfOUu^>d<41?.o[B2B8B;TS3`PHKnlteeV[IMku.ZspjI3I:e1U&37)M,,u"ID%&`_YgpM,(uXR6m22eGaJ:x[CA"ycu`>qr51Z/^i+9_Us#FY<LvV7,J@|u5<>vLU2~K"Fp[}_Utd+(+x`kYX5F+C%,|C3QRjV4/=[`sR[d+(q"s6|"7#3v5qU,/G[&`ONqO*G%(eW6jnVVGo]21?.mR+$s/FZ"1l)M6EyhVUFkEX0aDGSEow?f.o[Ha?.nkQX"1eJ*wJ.o[%o},ty>.:5u`_Yu>}c:MM.]6OJFXzQ^?5kEAX&0EuS*?:haC+MW*8HNG/O>ipnG]h#21_EN/@wvZJIR]`cHl%j0M(>xY;ZpwDXR]=~IK)>))fg`})/`sO3!T<|_%!~MTr(gv!T!_HI)~HSr(p.=2f|mr?sfa_S$0D^rgR}10hM4GKz_Iv!U6G9]n&lO!X!o{_I,eiv&]t)O<|t2akF%e{$=#%8bE,f:DH9q"s.|Uxr~[(=Qp73Y]s47eW?>fn)6Y*]|B6h~;u7T~l1r>BPQ,D.Vz3khB?=ej|Y5s~rD@~0V,UB??MB]`AB5s/yS(!b`~8Lu(_@o1{}w?!sxglIbwBaG@bW|c_4H"sOt)hR?{;j|DYj~:I3h]OEOb:1!q_x+k(e`(8ds8Fcs&|DE9?%Ca~Pd}~%Mu(J[nI}}vi#sPmlIQxBa0}:Hds3xfn?}]p2>k_c_K%HIx*oF6}HCg~)x"~~Du(+{0ZT|.5ksZ.Q4wcd+~(LM:}q5l1X)UBK{!,d(#y3>PcQ|@2)hY`r8q~hK#hNVmIYz/i{sBD5yHuY*O~Z8l1d)UB2}HChs@hS(Tc2rkv)h<~=+=~7wmIj:bMV`K^lWT&4y#uY*^slC%,3`d".}_!6>V|1rcM/&f[o1~~*S~~n53Y2}E*lsgDR4})Oj4`lq%s?E%,m?3A4|eN!>RjQ|Y}s/pssch(33Ic/Y$tI.*Om|,)ULsu4l=~;!(h;+b8)_41VL4+$dps}>DOP{Jyl_*u)})sn(+3QdV}lg;95e<2aC2r!``{LLdX754Bis^gbmb9v^N"nN_V)F_h8YB`VW?MdI6]MlhV9{T+_R*Q9crtu4dBUl*Rdm^ph7wz5*#@*yqYk`(tj<1[{D@TRX;,sE+7hx/mtBH)Hfp_ZRG`=kg)@T&gV~cA]jvzakkPC!l6LR52D5BEXHE_uDzm;9MWCq/YRZZ7V|}^1?.]_6PE4L8PG1qD:5i(r6EV<8V}4u~kW5ftNWGE5`~C:;Vjwosh5Xx{J[*p`/YN9XO/t?jt[MtrIPGDi1FiTbtE4o1uG(~2z,5:uH];CjP!#P$)3ZREc9Szd)}04^V`:|O0zJNVLNc#!q@8w[Va1Q?6Y{r7fcMwiv*~CD*f}DX#:W2i~a//V%ur||b&bIcHb6<$kIwDK@w9G&+I=/V#:xVq|v6sshZGMKbM6j?J!QhbP>_GNvt)P#Gx(F^!1TuQ~rP+AU9[aDUX>s?D@Aorj@awfbX=CpIq+,eAqCj#(%rx3g%|U;i:IWuE[P+H_(2[1"BjB=0+/0JPGYR?~iHOsrBQAYLT3x6bSaC!_:v6SWSoL`XAwB"*T+oq*]wB":>w[wf=Sd:B/+lLg4~Tkpv*AjDaH2(^$4pbP|_1QBX*P6N`Rv^|R0nkW=R{QR`JwGwzPYG/}2XA4dg&Quxg_tVAC*o:rb?,$nbEO]t`8/ZQBr"xwB%^{f:aLNJH.&sT[41m{cx,RHDSnTH}kd0It;R3/,`DikEG,e@HI?|6G})(FOcV}it_rW4XRgY+uz~P"".T:n7dL`)uDb|cHVF+$"LX}^WCWkF2E_X*LcsB2A/GA$MO"+FkIr4Oi1N,Hy(nEL:oI(Xy)KE,jlsyW^91i0R/_EKC~noENeK5dA|r)2}4iteua(rI:IX,Nu*RU"zXp`"#scJZwBdBL:OW)o$[_KB)@HmWxczE3kTHQ!1@I1+|2SX!ou>G:}`h6rNLelPM9I)>a]?.kERj_2S1uD"{"N;bl+~OP~pLE/R)~`kcKm8ToRrz7!vD/*"3/%|Um#R(eOXSqQtxXcr_IFa)gF4o:lHF4*1XO<,GRw{`jTljHBSu+(DCVQgDE"~AYvYkGu6[",r`Nkc%WIwvujP#^@QZrfsxA$9}q6aSF,C$7ymx:It+GdrYOA9r~3+c`KOD5>I7KB4|&OSiUE5Fl?UxcO[W;A!"%k6SdmMv*izKsEG7h*F+:CbN@CkEhn=0V>gJe)(B:(~CLN?VZuf<{E/B!}YM=V!v_gyK$Mp~s_a2oV~ee;Z~8Zd0w<=VxZ=bOk%YU5kI.x,mfe/1D!&"0wRP_I+hU)BSWM[(sUo_ox,rQ"2q`,j~"c!*PWzEYvCSl^ANA[)T+O:W>h`RxiIIgSKDvWtkcGRJ4k9k^)n7/oH.k@G3*}pEqlOnX3L+aU/2euUV0"9mNi"H,KuavXB]UVx]}g*rn!RG0Y#48@izp,?F2L4&tEf$GiYn~Qc#MkEp&f)K<8f^?xCAMc,Y}.uu^v*[)h$S>cKF5(>v]1)FPS|8M2oIJS7/<}Qo"3eNnB](v1>s{zfTk|)I/(#i6Co`tO+,#j,2q_]QUC4BYz||L2)5}Mu"3nS>k~~=+GDnD5/LTp.VBqEq1$x03le$G87jy&}5?D=.y,t>h5naCyA=Ck%y.[#Mz|}#Y~gGkvLt5UUGXY|2SKaMb^v9~!Hy@r#v|;vEi"V>,>qs!k~YDE14twQSuNs+Agi8Y%lfW2[skdt[Prvc!1htP*o)(sHRlY!Tk#pj4"ZYGbf9_?ID3jU_|=E}@=m!}mCJ`_pIatURLKJ!$ti5O!|4v%*Z6c|qPfgkH3!D=ohW:d`vg~~%?^UV=j"@|Ku:pZdG)f=}r#R0sH?DU*Zx@w=;QlW<+!T!s^4;Wvx`hD3JJ3+AWzyj}5eFjY|*>{C&I761=,em0pBfnpBT(hcoLef]m(MW(dc+ME1mN;IG:okdw_1?H%YbhagD._mbbjmiDi6S`uvSWLZA"fMtM"otVSSh%p?)XN1V%Lx8U&;XM3?0GK+AzE"d`NoXOo_<]Hu4H%jTfUw8*M;tI.$0sw)O@?j*tGuW!nBrLK~kaz+w=zsm&bNlZec@5i^PDKO1%JFn/bvX9E%%E(Xl?bvPQAwEcEUKtDULGh4#@EUKBDfE0N/bvh#0|?G9Pzn.BtU{EKi!>1[)~^,(_cHysCu;DtZ1Fp4}vL}XkMLD8DU9s4sa+r]*m{c^)sCsYb+b]XQPL=>w=dW}&E%iW4&E%LUd.C3im0yV:C3,}m{yydyE%w|j:ILJKHon?DtGbJ4wF&[RWz][$K[u}i<7wRWwaHoA`*6P@|?AF4}P;yy4xE%.(Uv~y"K!41EiR;?ubY(vy"W6|!a.y.dCsJIHo[_u|`F}F]F>)R&1eQobvgSq!yy;wDUo|zaILKHHo;_XkR(~.6n/_M1LL}=BKus5Za+][ubngcW(["?)9mvU<*[&Nxp[FK}^uZ[7HpPoNKzbj!]4Tdl8$hzm3XP6Do=w=QLY=~~p5FOA~=L$.o[+_#g[~aGLc,_@d[~KGLc+_Gb|XM/{|$XXb,BtU@2`I9TX!UThA2E%k?`:P[~84zk4~RmM/S~xCrWLO2uXr>fMypvYv9m*!lFI^d05<^&Fsd#m{LGZJ#OvPQ5dnL8MXjOJn/aCh~KrW4q?Z]g~*qW4%`e^!~7KW4$`$=!~=U[Lx1Qg}MMDVj9_5"kET}Yv7*(~UBnhmu[}pXXBOa8!}(#@5_3=!8h0Ysff0abUqW*)a#r~ApW48`j0@~@ELc#_;8!~WJW4LSEt&K;|S,=~:28_Mp5>!CAR^rRQqWO[R]zCa:!PHxX1rNEpdY`qUelFErOMmfelw,KzO>kumORm%YNL6AbWum({dm!~^SM/R~if_s_uG7h7HLY6rmd|M5=~rDLc3_:P!~nGW46Lps}w8|YvC$ae3P1_XY@~{CLc0_|}9~TSLcc/4r/1}_9MnPsgx(10[Y|:f=~[BLcu_S39~eRpL(knv2jA"33{|Yvw{k`R1nKQN!8xSmfa:we8O#IxBLcs_{r9~ORLcr_dm9~~QM/&|Gr`szt0[V|8p^"rDem7`#_2am@.?_i9JZDqW/@i?]1S[WK?uSJs2.n2`=_>E$=?~}0FOV|%K=~?H#|Uhcn>)QCqW9@6f&~~AW4/R&~vOmb`OM0zk@~~@CH:~U#0[?~NU"sf~bWbvZu"oHH%j15g`]rg`Sr/pN4r3k?eOGZ]i5)*u?~d`]|sW6~+zLc%~HkM/AlX4d}Er1~k~8xM/(>!CqRGZM?WvPIXO6*@P^Z~kOsG_LB"o9F7jKqQ;i}0j:rTD<*N$z?0SGZgtK5}s@~[}9{&,o1tW"sb,At*>"~$s>#)h^~k~A`Rq>~%}Vey(b?92CTZN[k~/Hfd~W,Lc`sJSK!m(bU??L*7;Hi,J{ycn>z8>R7LH4H/mr)@+x9QPNbTCn99#R(?6Wo+l:C=~|H/}yv7T^y1Tl~1TS`iH?~j;>zob>.bI$33Q{s8]MJT(TC6|UhrW#}["qWy~^8W4N}!DX4I`B6{so]*O]~!:CH,~E?>z*UA"`4~xdb{JWT/_xm1?t!uGg=ZZQTLc8.=G2`PY^}il?sWTezP[Xw/|%:V(smz[P[(D/|{tq~~hKLB5hmO5!~i$WKw,0EHIfg"uyg~[IgTTcgF1x5zO1)}[jzp#7eQ&q+lxo|%i#y(hFA~[(fWk/9<<|bfW[c*B|~T?#Z_/]QyR.a,/+he?5u5Jw;3jb`X0M,0%nJhVODQR&37{rccM"Xr?8B#(Ey4eJ`_F/1(U9?v.s~Q~y3Jf$3l)M0I:8lsAlsR@#OA]jfYkPLSt|k[kHZuWfYX~KF{ozo2otz=yGNjO$R8_++Db+cLRb?(KlU4k1%WKja5Iz[g/hO>5NiSFg~|9|_fKR1;VlTG%yhR7y@)uftQ[XwaD{D,g0Y75Ru}B_ZGJ,=5nn?{zXEwE(u"&?LUhyFG2XK#T_X3VC+2gP3i?*Zg}3;Z[WS>Ne38.X3poiDSR}gpV!JJ?FvS;+tXVKW4.gg2=<@wS8zyaorA/8)2enUR%a1U1(bJ9hk6o7}vwGc6{cma;B|FzovGP6=<^l_m$0#E3G1|ax,!lhMn@hzz0vQDYy,>z^Y^xHPC^gIHd_!i!.y|ghb9#uKLEh[w!$q,83TX=Z(?&3h9hI=Z.c$SrBhO&3P&|?Ne,_%C+lP!.,lC&r!U^J#)ii?"_S8)rI|:luqu7qk#_G(9{FD:)>HDY.%J#RPFTU=$+e<&8F~@](;dKpPna{s9cj`ic00hRpBQ&Q?+`(xPIS~uHf}8HsgvWr"Zx>K$jlY=8Qo8N+)*QR4pC&frz]J9IKgNN#E`:Y8,l2)b60F_P6=z{{6JC+.2p9^YISHQ3%=MT82O&t{1jQr~0O});avPDYS!yEco47D?Z6.Q$iOu%bl#_j,_y@()0GN7RHf7%1*%8)E]#29L?oe~tr,!!ZNmQ|Bw;D0j+hv%ZqX~RfnqAmn{/?ypE#$bn%LC[&`+Ch9pFotH%h/!ZlgN*!po!cSy).aBN_H5w~IC"]Df7idp$MNGZ=h!}Z^):#M~jdyMK+)]}BN?t#Z`#qFX<]Ce#3NU)$SkZ"F#zJoY0)gu|iy>fC:[9s5dlJfQ2$Zmxxz=l`S",{mL0%w/>@.Rc[b+Z`#XW0v7W+cyP$?GO[>zWlEMaMy7WbX2WW/<[{B=ncEUtHUyyxzDj]z~(yy.4%=vx`8bIxBc(i0?5x2uE:#78Wam=_ysuxN1:vRE`|P:uxzDj81y9vF!BXO9oWXt49b)F7FF@Ga{/Ubcv^O4#ee^N`txzUgSTGX6R9l^teU.G!?W0vOu%cbdJB*YqGB8.t<(?mu64@MnCzy0=owhT1JU7w5OCmY#}uOu%m%e?N}0HkcwQpBiW6@LvYK7UCd"o$56)Z{4RC5;`YI1:`Q6@wwH3bPN0?5yL~IK8V!A;F*p4lcQW{6oC/4QjmZbYzEi?w2`QjHom}4nLN`0Y"o{)e#$Q]u=T9_Hrom|;<,5Mhl95|@1LSQzN(#bx|7I)mhY0X3Qw@zSGpL{mhtc/TaJ>BG#z,%T{eQdmH@h5d9JTXhENg+B,dwOtUeGCT_nGH#z3b^7z")g*4|c1/+eeZXox[6XW6xT;=G+/FqI!y:06)HD`Qp)@Qp)3hgO&ZlWEST;$AGRPVaB)I@Qe7I#dOtg2ysE/S88Uk7yAj&aKCvhL3WNRtbO&ZVWkST;|LkN9([9FN0WlQxxSH=Jedpzqsikk8!5Fm.>!P/cv)Cbk,/fE3vv^,dE;AOp26vaz=zNXjhv?&.w.F,!54}uGz@DpBzcpzKs?v_7(X!*(#5Xeu)SdGxN:AE6~[v[xDE";>sPvL[:4_2<6FlO!_0CeZe3XbPBH7S?^0bP8yCd"o)o7)dK*Nzt~l&K/jglEf{XGi|`uOtU:ce?OF(9DyR*d4a]^vOWDZ{2uOtUcGe?OF*3ZUkHf`@2~ylHP".!?mOO!_%;;;$Y.Dr+K20Z5bs_b?;!;C_>#GDu~Fx5Txdz,nWeY0X3cce?;!c,)1exp_PW{8:u2P/@kz]G$GeqTmSuqzhXtty91^rzlr){L!bRou.G8AXX_8^`#vKd0Y"oVSc#uZ0F*hoGPy:d6SZiMFGkWh%ZuL<)+elCphlKiLFFHDB2=fQcAJK,XeY0)gcc)Nri}eaF/+3OH"7LTT8e|(~QbMtUKiw8WyAww6^X+/ck26RQ^HOl!SJB})$E{H^C{uE)<:5t}MZ@wJvi|U|nxcsuacwaELHPn4PvuE:#ErRZa2k@,hEHF"f2Eh,TeJ?_ri&icq:]GZs6pH7NvUFNbYso}djb6[/a+YN7^u$yo0N/F6~[PZYvZaGm}S%cfZ4u|P:6wS7F2Qg)Ia{/fysEz0~`IwY{6yyV,p^:AuAKn{ZI{/aF3I3l}rP!Kl1ho7Qb#(j^^qMy8c`8l4LzI"7c5RodH61n6l]a^:FB>r.Idefvo#bclhH*JhJ[KU")IiqSMaMy]v9_~DjyiACC2RsO}S#SF2sdYuU%)94D*_RJ2uKi?fZ/HOAOW@9xwKL]mhGuKtwc/2!(Zk#[O5%cv0Ii!y1N:7^,"0|UA:ro4CJEii%:~*<0`t{|fJn<7(rSKD{kEwyu(4jY?SRxqlH){>3,GaCKCpPTd.BoDLium4@M$nr3y9v/B"sJ_F`k#]IRtlvM#MEEONBd"oLXYv,wA}B",qSN+h2(<);:zvSvy?{QZ0WK,Fe?RM8yB"7@|R~B:$`kA8KF&P@DV!Ha{/Py2EyHE3~~KP$1,U9x+}?vVA9f+ZR;f2y9Bz=})h431nrCt!cCqe6XmkfZLPMaj9H*eqFw}@B"E]:F8FHz^n9#vRDQ<#B5@M][1/+eBwq~nI:.pEa/[MTaY:ZbX+Zi.f2y9Fz=}?QSG9L"]6:Mff2^h!0>c;IY0*=Mw9_.G_,B"L=FLhL5:&c&LiR+BjzjW3Jsi$GdyiwQ{I*dxeOMf.d@|)hLbRhw<,7:p[B"a,UvJ*L&v!r0C3F;$Yi]}D^A}(UCtYRMD=KW%L:$LbqI&K.t>L_4Bzm&h#eMGl}RUw?:;t!dGaD@~*!E.$:B=x6F"lc5v/3g$r8iru&W)r>AG^R7[`CkefhVVJK34oji)UIG]lu424yexLe2D!$T?X&wy&3YyUaY/NnT8IVC@OE6>e..p1NiL7SQtU*h<4qcVygm*D{k2)xP">}zx7(M9e5D%_`k{R1sgQSZYQTg(W&$cw=Xs2w[q1N5Lf~?rI#w?v=XCh8XW"tu:HXOr*6"Y4qcr=8rN?2uq4pzAycMm5^FPkCa%GzXeOu7lXYP~7>o]jAMknIYdBj*P,@Z;CgvH[x`4.H:6Y"BJM>JEw9X^RKzbV!xme%HGuZ@NJhJb`=n?v@Y?H7HHZ,Y!L#wOHe*4RS+_=xZGd^EW0(wbH;L`jV]P,!9[@@@F]i&{>fy&@p%t%N)IgRrIwiTNAv9?945F@ITKrHwf_E_M%dsi]rXDrvlmKzGL>aJKzG>EIxay*youTdMb"(d$;OD6?eWaJN(twr%`mnw0a&RhWKk,M?,hcYri+rm2dX8K(mGm/bv.6NF@i!#Lm.xZFF*bX(4eM{MnRXX72_};RxMvS8c@Bg|BZn7va5>;tG^VN)~^H9#oEzm^R3ca*ILy9Xf@Y`J{Jzm8KkJlpZ)g4>Y5*xIycQ[D2_H#uE:@Ww#I#)Miya$P.su}4%Z4Gq"o4SJE`7#TO}K,phT;m6c9O)j6ds!uN_q7N>FeE_<[9YLxBTm6o.W/,,NOPpShHE3]Bld2huv+ZVV8tP}4=:My_S91#)kZJRn%a3CieSFxNX62sBF("yQg^%8M!K+h0Cx.eB@LxG4a,:!2WfMtNXMiXF:USNW`mqxITJ)1NXo`:(eP+zBPT5($BB?hbK0@(u&f~X5zUY1=%Zn00UNh1"SYpIU@KIg6e`fq0Uy&$B(FeJSQ>BwUe2mtPpBdc>/(*cE{u?G~dDa5>E_nNFR/HFIN50W?7yqLKyidN[CV60kPTK]oL{t+.GH$SAMof}0Mbbvz7)yLk.c>[547`)b%LH"`@/D3n)2sN/U7/o]jHJ5PElt.w!pX$"alQw~1b/B`1nXJ1EM&PT,5$y",,51Q^X9BakCFm_20.W^Vgg@g>/N3Q5{CS+f7R@.|$K,D|zL[NA??G!4:]q7=ckLBBDPY?Izj,U%c=C`@U!>tvuM530R3pF.WcLe.WPG00#h!C4o|E6Vc2[/,cuGA,N}P74q..+_AN.?)heaLhEn^@06n5Hs">@<4SW$Zc1/.*#vK}DM0.SDrjvSj!"I0)bB97P@u`wjn"+57qZk>WrZ]B[s+.RX7H]z2Qd4"p)G"54yLk5f./ViQf$;6yV[;:Z].P|X8:m+beooNL^vPC4wUYCd[7V!Sh_QjL`/+@MMt`o@M}=E!vYw2Z_kd`2LuV.h~:B:!a8X]X"$"mN7|Jwcb+A[TX1N0Sd40m>OzjA;T0G(L1vLMI87Xmw1}:~&?=]niZ="~|GHUSJBM}N_So&aaMN1&4PMtiZWxs9?TPaC6MBBH#$Zj48k&{C=qW@LXkE#NP=Z4wa48#=mhV>OlVQ,a42K1tzeYZ,,:5EBOD7WunJI~F1Pi}7,oMLt{Cl^wYBdX)rt,#T03wOPh1Z%{(ZN%Jk7N@.|vIjHLMV1]vXf>PvWF4P.^oU4>FN,oMrLOldlB6Echt=h~k0(WcIDJbRd)v1ow@w+dX4c9)2k7"R74MxC:i*LD:TtROBGn?gTcLF7:NXFy/B6*({+BvoxB+&7#^hnboLWoRstX3W23l0S0^,!w:%YWA>=(U3L51b61$vBfPeZ]i`+Q;1!oRZ4[C6XxE?h)kK]+DnTcirC!k#diiNc|w6y@Bm6x|rFHtV7d?hqvP98HP3L6F=Lbe,7vnAT)Mhm+D!eVZg3P?a]d"DD2R%,`Avu3Z"5]I9x.b9XBtR$@B+Kx[DHCgNc{*(aL+3#2l3LOti7)3Mc1)LttfPfQ;wwBzO?BxOcQ[i#1_aHkJPgBnn.7zIXBQ6!5Q;TXvP/GCWAeaUFvQt7yuHGKS?:Ho68d0^lXqFWo{t>Mj;[Zq4%;>Ce|XZL8mOCK%YJY}O@h]EAR&NCP^P=1$Tx`A8}KhZ;k{+)D%Lte@i!EbdZF{DB,cp}oK]{CpF)W0D$O_HOif8dS#FVVl7Mmn0)~rFdlR+4*$]e]*HM4;VXZceta/@QGCQ%K$Td5x6F)N@fkkCixsTmZtLh,D!!j1Yv&@nsTmJj{Xvv;y7S`W(:O"4l4Z]:u*aqZld9#^?C;9:E+AyCZ*B5%PPG;z+|V$L+{wCs[4vT3%d/MnTxu"TPesi]A!OEwO77uD_:]n+HPo7zc?V2jz)i7e_vCB#m1@al{W!4/Z^e^CcDO+wSs4ZH*(ONmuKPCNqS^tG0o5pH)YKa(,8ePOccU5sSz:H?v[IQvY0;:bvoB9YsAdSwqm!0cJRB3]@Y4v(Z;BlCZ6|gipLrukE.LRv2WAAAAAA~lgAEMQau5[5xD&Iion9W(>wks/}c;8Ny49*4=^6R!)hRBQ@dydX&O]K5~?msJQPs?VF?8L_Oyki(afNK>l&%~V]5sW>+`"?R!8!q2E0=tt5bd7m+Ex.@?i=K,mYD//SSFDV.KCQMyujZss~3o//K:GB8sI^RVYs&az9+:$c+m]uprYG4LGnsl{PuwvU=eGjntJX@orFe^x>|w`:e(FS$+dwSYr:aMpS4Y>BEUJv|5bujWpbU5h3(SrNOM1/TVJC3I!~ew?_p)m@|*mOzTtl1>qUpsFuciUBU94B<3N@oaJ+m(1o&,QW}6pCw/6[#k0nXal(r$J@dZ;o_#oQ,u~t{beIG)e(Z/@"[G2BYT;v%h2&m^FAHNfEdtVmgHzSR}VVt"`sWh_7:5daWCU+F`)L+(?BL%R+;bds3]9se%6OgB{r#BE7_?oGui=nuUhD^6i#Sq&[fyn}oOBuEaa;9V9Zw=J5(}!$y:LSGLr[Z}=+;3=w#b%*Ja@TB$t:Wyo).:2y}r2Pl7rr6OSip|JOSb]!RmUVF7D4|SGzRm}749js@M2Eq&[MSL%|P&q0jGF.l@6QIj74]>zKqH>i&(Yt)Q%t+k{I:G,D$~g=R*.i`&&TgI$t6aJj)o2EDyi]%4@pm){y=~ejG`TgBObN7YXGh#EwS@ZKnitYL9Xu]4YmLK^+}{D/*~h)J*mqJ[Gsrkd?mxAI_1.bFS:=%zvX*~t^:@8ScWNqRGw9wtHf1KBO9^0ne;A,V%~Z!;H7ya~Z!m.}6MCWaeY0`;m`2Hl5ieaBcDHr!uz/tu3FYExkez:rs&Ok(lflr7(vQqTo+BY)g&R]cML(g8jIDV{(;!6^BuEa[{|^guEnN$X^(D=y&h#<3GV+]tFG+zTi.#YmrAWs)(x>Q3RF]Ij_2A${tqX]Nxe/$:s_kPy6,K{r7?21;x^ltxhtB?[[!zj_m7F`g*C!5Fprz?;^US>;|LoyI>h~?2%73%7PBT[DTb=aoVrlPmCm&@|$gY^al+y2&9;00TX;%gFZD(Jmt,J~6rqg^imx?0E9zG^#DO1Jq1q%1f07)dnc^qyK}SMtR"{B<0#i6Mf=x,#854`(C5WtYly/M9>r2D12)^UfoJb/FJ0>n@;gY#Vokd3_l_q@0Tty,vA?+$(C.%$rqPp%:BL1g(t=H(r[:Ijw97"5>e#h;YQwfKUO,{a)v@.x~vP;_8Qr`Q>SYpR"3FMX.8fpJ]}>@HUCtZ2AC&L^VD|:LjrbXxB,?[zt9r`E~^LGOBH?FX~[.$zSS0{S3zGkV"y(xS4m&@.W:.8O*g8M0#0U200K|t&YNU|lAaC`d!M,=s_5mC~q?h[Z`Pl{qt%@&dRW.5cgkV(a)59l>7jP}ONI,fl7oGbtHNS?*,rdLlBRkOHSSur5El(,lM+h8!zn1$4nJ|:Z!)c$Ks3abKw:RFj4qI2Iu,"eodSL8>Js8o}~uJ@zYlg+*m8Z#k$tudnbA}G`a.tps+8ib#6t(IA!%[8nD^zR/<)OJJ,vW|M%?Mn4z8gyMdi11FOn!8i6yhFF`(,*MimO$#~PeQ8(hPe@u16541*cmmK1hZCE9Tc7fs*;6X6araUbqv`o[?Z(dKX)`R#Hqe*L.,|%fH3]E,tm}YZ%`@(~b@1/q#{yid{EI.u:l1];KV$ugQHS.jmwE1kH@U|Xq#aPp,KVKCo+69GAg.A]LH+zlm&7!1%*{R~@5|!a4Xmg7],;H[ak4`@5(FV^Be+!a8@EJ50F^/XscNMv4/bGXN9e2Dd1]6#[V1j8:23wpO5/!)|LzmdZ>3sQN//#H7jW_z!RfRHBGmfZQ46PLfhbuzo;`|1OwUezbw=F~)pd(&a%~,I|&#%sL1CzkvA:?1IJxDn!.VJ4#V][[0;mKUCKX^?ElDN|?.vG5n]4p/,+l8z3g`Bhv`UyHtHhevhVj`#OLd>1,@".ys6$.5%5+Td65o7)r+|2<<,^H*;UO.A73]GCEYJ/@:Q@wOpQyf^e"[dPZNo_dz@}0fn":Oowm"l/F}bzN8?;rVhYbb5v>he+Dm?nK2&TEq|jn+lS2~.DYV~`z/^_&:QIgfc4"5c>fq39eR[.&mzq7T!{^ZbKLB80AIxyTr]:(o7^e6JRZN7^cwK)/^.ok_[)cNp?+LUyqL|#(tuTNi;5l)G?lXklu%$|Rmw/,Xj@%0jsVf5S1[Xs,F??KEQnl@+tj]S[@/sfU;V_!q6,K=I9y~xgx}i=}@p7|>|SZZORXrOg7+nO^~zcaECgt8GWwKvp_>Eqp$;[)yhLo`^3dNVo2V?v@ko#rg^M4>V0eGY5BLLG"zjY5Js[}YL8|kPV>RQpMLvzhYNlsz=@D}D9x:HmR`>t,6c;zPuU!5ahiqtAac`j2snNB59hjkZ0z1T%jCXsimkiDh@)C.v*RJ"W:J3^%XQ!$!]umHTl3Mm*F>fNe,{6uRQW!0OB2FSowq5CgGEPpNb_FAje$BR>#Kpbm,O~iW=K5yqhf+C8a+&x3B)jF7!gZek3OHSpZ`$Vz*,>5|2VfIF}Y0BzWhO?U.MX=>rZfiLw{{//W?o%.E+|I{{$k;SR_zg!n=)I`;|Nt9)DLkt2Md.lV*u#5B)6`=m}riM!E{srq6)Ts`DHPqKlfOyj8Ys_a3I1{xIllLvyJl<.m90r2F/6!"dimu4dZ(5B!%Q&0=5O@YU"b_d:tUP"nYdsR^XkU7I_n$?dBB/wD6G06pC.)y=Y>>e5XH{vWqsFlsvRrvQ3}*qOr]8)2PJ!W;Km1{C*+bEx/6W=Al56k2/(?f0VkGdNk}99gLKRV>+#c960~c6hUn>N9dXq9{FOlr<)}".>UIj.CfuT`b!YP38:KZ4O5VGf3M[>t_hS@)8HD.:y(W#vwOo>Rp&~_5}Sb}!MFD!a##`cIK0Nd=__ru%783*u4|m[U6rGa)IL[3B?Uwi(Vv_R1oDS6q%pG3SG>*RayI9{ez(z{H@mE}0Q$ze3yg=3]f>4==I^3}{I|sg"t/kd=W.v`;x(6A+*fR&,@@NQG87k04j(6WcWc6SdtC*~uJ}g"P1z9x>v9CfbjV(4&Rs]!en~WOp`b4M_eLvOeYus"8ZI~G6McvKl:YdcK|j)Y[_m2RUu8bG2A/97JD^TQt;I]3]#;M/i~ibni~_w:D^<8|r#xW+.R`6KqKx=D~.;^:UScdm{YACX&cPQ`x3726|^*)2*YzfG;xVm3tag9{42K8kBn(,ou9z}7=8K+~?249{`zt,>ni%4]##[#Tlef5mIQW:{XtbSfz~OYB*)L&RA;Vy^J)oraLBHFL)Cm<1~^3L5z,ZNl<_{8ZwA1~`_hEq{&D!5d9l1oet}/IVL#>uVZ*ix5M~h[J`SwE)qc"wfxd]XI.J*lx?Qu>75Y_ZI]P?E*C{[VkVFKwtR3t2TYaDJo4Z.mn$cCP%[>EDflMba2"jL4EE<.TARu+%t*lP5Eg>r.V,ympNAQgnS^5eM}x%`Df*N9WBp*I%8T9>6jjX@JI.bD}L4*UOrEK5`XBoRrZKUSjb(A2W]K=5xs&zb?|)q4%8dpEUY2Je*g4=!#M<%_Vt[5rOW;s#&]sT({Z&LLov(FHNN$Q>U/!kg/}DFj3CG8*0c~_W|K833WtII{EzTy3lo*g+8?87M/H?hxbfQVJl0X&Yc#^J3sUS%L/y|!Bq&1clcV}g=yirwGUdW7z!NBI1RO}lr}6*L!L>"IXL3Ftd<>wb/l6~Z8/DCMDl@B+zFfd8WcRZn{t+2K3`Kv~608_IOBd`0wyh|jYT/S.%]i_gj=d86H>b&6>8cyV1S$@~%bK9#dF[UWkb93V|b9Ayk?j8H(tyKH85Dt}m&^oSPVd5hKyO^"/2tl)%oi5dgvb[hCt!W+ajn^RBGIRWiDeu.e3H{dRea./!Z:P8j@aYh%Anu7hx):LN;YXm!Z,[(Uzt(+5:SYYJw#wB}q);(U8g^N|ly*kU:b;8~LKBjnejM4BZgfs7$GGNq0_,7mOJ+=l0fWj8a7ry?hntn*Zx`%nLRB&dO0B<|Q+Vb[Kv2$ZNzw(r5>I;uB#$1nCFaTlxFryT*EW9$uWt>V^#$oP2khwV4H@G@/PsMt55,=CuJ02?{IP4KgC+$MxdIQsA}E3P0bUI($}~[9suzOkR8~T71DYrcPyA&MR$KD`=IX]iKW%VA66UuGC07(VOh7U~k=f=w%={Wg#/xN*GM{:*LveCs`BA@QtVEOG`D3fhHkYNJ|Fu)ZLlIP$X}2h>7jov>*@54>j0(G.~k&tAGI$P4w$N!IKD>oe;_&s[(;f/InBExmRgM$OIb&p&WQII5n#+yOGNFtH_a^Z$=auuthegzxh(Qp*>zE1zufgcj`^bPSbT6Ke|]GT<&3z6Yb%&!3s8Bk)@$/E7SzuG36[@Lw/]L9`j%/~T9UXia_GK6YG1K>eH_BU:wfDgvc1"yBpHm*~MHp"Mxjumh~Y24fRQo!/eer;>Pluf;*^)P@!#)Tof|[f_16Ay$Fm@]F8%BzpU{4B1`M{4%9!(8]BN)M4JNM_mjjD%a7`qY0LqP!d*0C_fjDO`xh~gI&i8!xOo{M;Vxt*tlaClIR8Ep&REaDQ~.~xKGGtLD[(+?%IZ)!Jc^U25|kX5t)~.WXE@+|CHeCt6B"`3koQfI^adP4nOs7T3Xd85zLC[#FvFg];qqLz3HkRt~S!W;onD5/g)QV?+9Z"it7Ne#ZBSwn6khNZu5`dwq5H)%dSTF`rW5_g>dT8*.%vAtt0zU_vai$5<(3_T%nEuCfD&~8nI2yV|M8sXA!VpPX=U7BOie4Zt1d79VJnv"$+=Qw=X!hynTt]ZFD2b^81@5eL;oAwe9[pueNcDzsq6=ebTN:rn~5aKY}rCZYfNiVZo1dc?^Bj%=zbwS25,#v?FU=)E2|(g}7JBA0L9iHSD@o+(gKV5EJKnuF^$553{S=$nW*wu,./gr,Q+2#w.uFS}F%`m{U2T=}J?r0Z^(OR$/HSo?^wZx(R`[ICW/}J)pexupO7=>h{2xLz.=3ckT7V[]H]ptufcE6_!oZ(F%;^T2cY}>5rO3Aoh8GzIpNpY5TUVhwJYEMSN~LJmad4Nk:4{&5skEQ808w{@>n>^UysFC:&j`+P8k|KZ_"UaVmmn)0yB/uw%zYqV6E43H^xlOCN}AWab+sud?P"8,(47_EzJ&Y*62:tO<,sF(oSGwhx*w<[i@$1.f;CrmPjl@<&ThF}Wvv5_ql"6]7X{S8t!:gP)v%qzb4XxM~kHL4gW$G(<`0LP%[G>nV8V@z%N2cB,fmJa#UI&F9#*a7*~x*~M1c;K8!af.$t"z]VL5P@?paC|UZTv>ygOHVQ}tEzcl+C%q(6#2di".ZS`/Hf)j2)wVLjCM#"~ubLdtHFMR/(ak+TA}]R|bc:q0|WRkvI.k2#Zh6pq}z_TdSa$Ix?q)%z{iZ,7~s,3f*Jt;o|#d]#.lR"QLY@]UzwyT+X3~qN<.{bG_su5;KjsCEk1Q3mttEtF|i|wl>3Ct+*!(t65B`6$#6}I@z8x:+~I;WAI{^%ic97nd^iLf}}cQ}w01jir0s>ghRcYW{}N,C&GGp(7B7v@z%.=d,dGz#$YE~D|(r}VNxas?%}FL[hC?=OMDu8`bPW*_R,AtZ(x6Q}:8F:.3[Gf{Zeyj(OZ.P.yP~4?~,.SNs"{sUKml8%BAt~ZWFmM8[C?i0JL5lH)JVQ`wg`]&NgE.k"xJ[h4!=@fr{OVs2XS_ZoM_G?knIjPDU)&1[M&}x[3c(vm/ZA$WbnVmPTv1bk3_J{N1,awQ{m*,!_o_Pduf}nql@%&+I]5l%q:6V=<1]y~xK&gQ5q9bcwkx,Xhzv7rI~pj9BXKY]+94[$]q9Tai!T2Qhq$bqd"P@&mC*~rPx[=+TKwTTc)E0Mh#.dp&OJ;K}"HlN{/Avb2&HV~MYb.A`vlUk9yuc|$,|lW~]x(}wo(Zc#~|8APS/ftCwNOk|b{}KX^#6sBO:+7s}~skT">Rr>yN#GNU!q@xxsP8fqNk$8x~G8"D.WK^aIM%jF&rU/bPD[vjK03FwunTpC?/V{H`0Q/C3<8?c3}adM,1_+zoi.Tpi@gp]Xy&`lNAF5lBu(Lr&+grW|JK2Cw{l"/M`Uj$>ROwE(ei_,_TAEwz+/MG%I$}&9?E4M&{Y:Vk}Ya|PI@%EmyY#YOO0{c&%^;9!:Xl0_WyONp79xAH(^/5Pl#nHaM]Ubg/OvPJD!8rzPJU%!VM&=hGyZsE3jD3]>SYtCg(IzLVCp4cAq;8BTMu!bjIHHru<9^4JuA@=o1fvmVJqcBVd.t^8UM,Kr>5u@g$svs2/Mi:_h**&.Vf+Bcgp&)}+[m%pqLztB0XR]}]GUyXa*}99is[,8aLGJ>)`:XK&`PTOF?{Q32ww=!HJqvme/p85kY<10`]3u~9]/=%XR$EUN.2Zn23q1isatK|T)$W,w&"Qi1Lg!mZstLQoMH%)2UC#!>&1n7.n},E/c*x*bMOzsgd6+]/s/Jr/TUMo8_gw)9<}rL%ReQxxP08?cDnv5wY~V!BMjR*g>=Zjui>F~WG)jbQxbR19N77?nnzXhxJi9XYAYU6.d:kIp:m2|Wp>o0:E;QDIy"_aUnI)Nekep=S28Slftp:W$I}1&Ig?XjT^D[cX_5R&#[wcMcS%s*@PO40=}wG;W$TK!*iC~hLOGUl7m3{Y!./=Kd};=OjaJ7uPa9J*_%)o0N7goVS6#$r[q={m1cyir%HbO0L3U8DS/rC:36q/[`E:2z3LQD;:5l:{7Q1mlf;{}4|?i!T>v~}qN=Gc>H"]0j8(j+TWQ|ns;NrZzik:bv%+k#*lIG+q#7{9@Je4`iBpZc/qp.Nbe9]d<4$SEs@~W?WYUlJ/,fU$iMbL*<&h#ypv?)BFI@,;NX>n]jeLocu$xmvG_Q{K=JV&^+~X1:)@iwcZat6E{ccNOAA;}){vEO8y=N[,#?f|Yy[vrdw$I[K>b$MF~n(M{?M;W8)6v#kn5}Q=>SyZVycs=>A^ni={FF)83[?5I9JI3c]O]#FA"*V{kq>E6520auE9lhx_ddpywam>&Frb(kToSt5I;B]LP;Wg$K,5LAe+>Q4G0F"q(?NY}!U^~GMy8A,xJ9DxFOwIU#Du+)z)$@OeCTTofL1]_I0lVtw,YiFj%bsa]b%bFTT=^8S1MG+dH;fgI[/:J8FK>ZX2{l^K3sJ($$XL6U=mA0:`mSBNH(Bl/D26?Z}jK}$o=KrIC`$"Ib`DFAr*H2*bfIh:n=$SS31!Gg4w3X+kV%W!TxD)S|&~g$;]nnVQgZwx}~yM/$"!cg@8uNJmS.#)$8Oi*UG:]J++r(mHQXEA7jtIp2jQcZO"$(3!^Ih*`u`qCd}hOkFHLz6J,[Iko1oBCo}WtvKE0]zNHG"qE;>B#5ZPy~e9yR@vDhL8Nfh4IQtz`!i>D.rG>RQLoanqbaWc"*aF3B1N40R&N|pgVtw{(rN7k.>}DW@_lglka%ljB5$LJd5Ln+O2ulLHVp_YD0$v_FjOnn!?b/RB".7enb5@0mjo$&.{m&XX;UjpY@cV~F5Pp^7Z?2"ZX8O[+mP.x"L?(`tt(jZ%XP`5#i+*[Wf$=zM7l1JYF*n">S|MpOrLJw`zNI(eD~jD@P@qy_Q_b)b0$R;`flxGg/fPiu3aO3n;6SZu;6*_AMjT[<@@h]I#UjQ]@S{:GxTa@vhe)_Rn"Wr3[qT:8=Q_]Q!En6b`I.2+/~7kOF/ju*Ai2zwe]cLB]..j($%/9S{6jJK5[~KOIy|6gI+mlU?c_fVQ7(NpCi%4ax&Vx1E|]p=l9HW)+,yqr]c<[/|j~EBkpI$P15o^T3Q#KL3&Z@s@)K:o+qX|oL=U0%1n^fvWfZ&5C}dSx?;|R<)*,V4gy],tFnR~qaVnq*a{avTu1=dzq[9L~>XW2A9m7N~Ic*`mNBey_VNcEaEeOG}>>/;~4wWynu3O27Z.lLq+!^vq~5k$!0J#L^%1~E4j.FEz8`ct*#6OVGg_<{9|Q8cg0WD@Fite*LsJtc=XrwDST>JLFi;!v%:1j^fIV"9_&>xDW]nEXOztQ?jeGlCGx$zksn<&0+[$EkGnJADB[1.#L]$k(yzIem^oC6wDzI2TsnfdWu371O}nr|NSL{me3U`r}iwPFd_TPM87*~y4)TxMQ]6G8o#Bzd6r>L/G7T3GQAy}efB;A?uVKimw2*koamsPFMsz;yP7tQ?t:^9?4QBA1Xm*v!aD~I^*fvRCZnJC/FU&Wo$l(GnD{)8loVsF38ZWVs(;z*IQAB:w{!XS{e![uhXat#t+Fc0Kq3L!iE~/;Vl^4*iX|ttv3K6a6OY#O%5Sr9SO]2r=d(ld9GR,.TQ@,mIH.6|0;VxO^S8B2EJ@T6G3UvHbxIZPQ_xrv,;">@5$UR3HY3KLLA>mGt.)/>5[i4;j>6IX^CA"+/5[$I(a}RvsJ`c~7wk$x4n|tfQP%sDtybI~R}/B|JIw5hcAUrlg#Ofa.y7PeAjczmY=2^]M<|RjN8OQ](uS(ww=_^amW)_:B7X$w@mtkotUPz&W=LM9Y*;J<:[%R:V73FO+m{g8u{?%zh)a13i]~DY{d0CV$x&|96*&FizXNHXv?8lmA+EGNg$v8|RCeTkJigMlqwf_DlfAAKF`{w),CNlGVO~_)}XoG%@b2?tn<3Wlbh>[rrOKZRHWsgIb>1G9Z[X&@OCs!$Da()O,ZLf7PZkF97o0fn3UE("y"YIPttOw.Dx!d9wS>7ggIaB$fl)2.&2if/GYk(|1]{mP{1?4t[86Qu6X%65t:%QhWu$ayOuIHNc9%/(8jQ5%OVzSYXD0buWpuq}M&}*gwe?|skO@fN%d?b>J#PB=V~U,>)+a;!4IH@(HnF5GhG[eG?4r(X>i9&T~>UU#G5H=M)m}.~x2C8VcmH.*#8b5w,xjhFf=uU=|W:XkF;8B.kbDoZH+Y;4i:}itG6{R$3%LE%}Mwvy#xQXU6An*$9_NFowR8VeU|+_MW?R/`Pzgf&EyQ,,[,[{zCoDFD:j)bo<|hZy&E4{3ZoL`tf8X[Rv(qGv2*@uZ)gQ3g;$9e8EF|8j`JW"r7K2:/e>|h$1B,`ThDS/E=k1Pu8}HU_6~hRjE)!g.sp_%Wm7QhVZM7al`lx5x~uBeBYfqUAilLbna|O7bczJ+oA{qS!DXR;~Q2Su`J)3u%RHo8k_H>_7HEAJ]=llu7&W=LY>Q5W%@/Y>/)I2fSDNgs&>XV|$r){BV6yBxO{`wIk[8xAcV@8}EPC4d)OtD5;p^04hIM>n:/6DiP~_FI7y6K@p]6Ix.4r0Cnt6Mls)xo+xK:x{W(k7R][`/.w=wO>P44@=ceSE!{^YRQCB3J01mDWo?rdA@vp+f@u@osaAGtTU$[lBMyD^3q$*E/Rmhk|94_/W1Ugi/2Od`fTk^jqnP=qLzM):hj9P3l7tO3a!6B:BImZp1=]^&%04rNf@:*TVkIY3.peAOp/Q`nPKeVx!R$sq8]VcLF!GT|UD5;hXpB0n]s1=D?K}@910K>#~3?2IfL1?3C=7RVw?ZIqRm*uyC0<8gq9sXTz/.[8hwfsZU]HXj1)XzB(C9FfrG~|Zhz*Ww9Y6vx3efO&hpqUJL|#`(}u}PU:k}e!K/!i{2s/KIsk2y+5BhH%ko8mRq~>ibN&Jth=MbxyXPQoo5}Xf/Y19VkC(w0t=QwA^}6x8oGdZ,?~SG2/*@_+^wX}h"CU:[+7.;VaBq?gj:LNCUoL[1=;~g*Pbv/Jsj3S:vU0m"J>0TsfH,Lo*;.TW|I,~apmV~ggD5w<#:=Wo=U;C;F:;R9uL>GXeu4A66+C*c9U1fULhCGIDa&T(fpi;INP09c;JLcO.H@02Z>6}2zNr2pc>UbK(bhRD}?ZU**HSN?&D!n3TDB>(3l8lzfO,;l?KQFLN%Bj<*:U7$JObJ(U.rpp~!lv$mF4[,;)Q<@dU@f+9d6$&e"N6tru/yYr3{F/pFX"[v,uy&Y}xw|nAr{p,DeI1eO_FJut2q}eKo!@uQ{f*NiyIrQ|>AS9E)k4>D0>cNe@nDpa+3y"l`_SW89WXa1*?a+,%n{4E2nkq7>R.>k0,OJS_c@x[Grs.#ySbk17QS8"T>EN{v@2I7W3>qy[Lh+p9HUg:;2ixfMp=4l=jyDR"&ln~P/IrpXk?9j;2+Db5h=lFt_xJ6lNS@T!cWO[r}`%!):3D#+J<@TdM6j!!>[SsWyUJR8l%10^<#xnNk;>)zbBY_J1*8%Lmbnv9`+^*&bcI_;t>{"&?XoX(4{^_{PsS1wqYR`E/c+yxaq5KUdY,>2L2{A[ED;F?+&kXCid5N4%<[>n[]U"dGp6I`G>KM,3Dba&M)vrJkx~^&T~)E1C7v3NuiPBJmOX37;e~w8&"sQX0WIxwf]A$!7@+|y/"IM1|wjt_(8Cg6d#}rOa_9nC{X"XYOCQ_<+|Y/ZPnGp~6:x)YpdZ%"B[7q%dT*5gwW+%wl!mGooa3lX6*GzBP8lj%@lHeb]p?h$!IrnK}|0=4=Bk}Yg@Qu;j$Wy9v8Y8bdHdw.tv6T"cmlp}sBvn(XzgIa(Ua0T,d_kv.xvV/6:E?ws8SK)?&#aKp0=K3~ql/sRn|5n~2c:ZG`)Q9I_NN2%6=T%$`}za]6>7|/v!ScU6EsVP4R}yC%q.^)L9e>j6j?SfxEk`L]&M!6YSWb{=_J;"61ws5$h}X9{p+a^ED,61n?53W3+c8k9Z{dOqQp:a.v)SMOV=lFm%|59F4[/N]B!A={wsJnnvDRr.H{oNOqg;=27jaea1xK/M7hbUe39r#9|{D.S^nKMk9,?S{p@%1wW9NJdW6YiYt4)JsK367@NR,(Lidrmnxhz7+n(8s$f_qkJ=E?[t/Bza!bvC=PT.`Im^`p,W|N93%P!1/y>aKmSm3x`?@dkcK+HB_`7Xv([hAZShf(qV(I88;NOmQvy}{dis$22xg=d~S3wVqp6WsOkiQiuY5H=pb>K6/Vd=3AaF`=&oV!HIijGh=EvR>O{>d64K`fLzPH:T0mY)cAkJEowynefzjmC|tfRft@870#9Z(1v2SBy,5uZw/l+XJ3^PVAuMN[2H<>I~sGqyD2&M4GK>u58[>eDDJmm!6;.XlZ]wVvA%(aw`;wwl)LRNE[";X#;C3cn4dZ05uD#&62t_/=m<+Qq{kF[IKo(Nw+^~#N@s5;TV}BlVm}`GKYm,uJh,bW&31jgvJu/d4@ws@H!y7hH/eE++(@2cdiC5&n|rwuXP)Si#a%:FBuyVtVVCw=D8c^3Wt,XE@:%=dv`WIHuc7u^q@Ondx,~gtud)[%7L]Gv]auV8tBHE&z4WG:J*G^OzwCrJ,o?^yavQAR}_w1XmNV3du$/zFjhA@OB+d.?U*,"/BWSPNn2;8ZKnp@ItwsW_"?R|jxYsd}c9jo61gw*[BXJb~$2+Mm}GOXn`t/.O]Tk+;bqQ+46[2+BB5#>5j*]=.I!W($BBU6*#:7NXFE/[ZSap7${*EC7%uR(x)R7ZDX7m:fU|v~0/eq32./{jN=iiO$T@5!jdAf~8H"g{Vy;,JsJ+cb+AQ?jVn7!rfD%Z/(=odVgL7+OnmdLr,r+{[1xp1uiEPqq},?i>J"g29SWnFarL7;{(buIQw.zz[Y%?_BZp]naVJhYM*kDkR&~#)Du=Ri"SDL*J;>_q?Uit[GswB`(wfkgI,LUl8%~x8UOwnSC>^K@hVl9B2?zG(TVtI=eVOz0c{D8YR~{~$S=?=$nNlgtOO44/]:!]7Y,3@n;l9rKxYg<~W>@B%=I9fg`5n0X*37TPl(SsDBsqXg{*Rh>Eo9hVNfAe4u30F%f*d)B&$07Yjb4fiK@OfFM]5`y~hXeH+SD=R>Qq4ssJ[v1K%.&uT7R[Nq@$la/C`#YMH9&)^2Q`OuOd1kG5zCwfMoTh7|6_)6$!?+PG4`qt0vm#kM]bGX]:xK=21uiPP6F61;5^uO""_KQ.vB|i9=#$*e&quXb%qbdOjl;UvA"p3*=dqt)32s@^g.W8Kgi:t9g~*;gIwCH;yZEExG#=9/NC8n;bArCNchtl>I[waj;Dbb|Jc3Q(,w!Xn?^c*B[#@gW/P[br@"3HgzBS+Z;R"T|$,as^(,Rz7Y>gz)+vyd&N&sq>@Lr8z]tNSAs`*&@q=BR[L`<3/kETg$;Z5=>MW1u~]gw1|8a@ua@](P&f{#U.8`)KAFu3tsbXDy4t#S=4$)K9zX38"Ng44RH3L00sctL6B}op%cx$5k1,dh_@__i4~ofA3+,M`?zcBzmn<8(t=5r_|gK!|2Tt~iYx9:j4WJtNYxgqQ?L~@FDL4!NXb+yvy/)m=:=9;u.k99SMhFMaUGj0JdU=[1cbfe@v&RJ8mZalSWy+vxz;~s2)Zi2clu9no]ze^PYld%Xq!9t|pzLk.$ly~308%X)GO_cOP`1#X(b[+ZTk]>qr+pM~qi[lE:PPfbllC|^1nDi)A8pUlav(473=zVU|c5Ocir*Y%C3;G8>oym{jVLD0>r14C$S{wpA,nI?sMNgre2~U3oxYR2Nr5Y|0;;~Q%NdY2#4cqi><.*&_i>;i"CE`0N$5Jj#d8d)G=HE_0v}2LvZf%VP1JfI}@QN.+Yl}+pEFkucOHUh/|",mtL5V.6;tkSgX~un4jY.a$r([`]o3eP5jYAX%/+4JU]RA@[vIcu0YcVS?K{3h8x#M4n6s%Ba+=8rv]=h$Wyxs$6K:2omkH(eDXdA4!@gil}#!TD)"o0cW>3P`+Ml)XFLz59]OvMx`De*F$c)nTrP{q,T5dj+85v?kQGX;qj"|I4>qoZ36*!{YHtA#h%0v`J3mO}p)c:cxJ|9Bzs,Nf4D[BPB.=rY:Hlu`oLDssr/GXa5IWtV],S@1tgU];9_T|lW.`UK)LsDNDqvzv*B`oNHziJ;w.wdZCoTj1b8*6)WvWT9RJ*B>2Be8<2rh4JHOca|<0MBWxh;dtGej_IDmA#Q?:`KoN9sJ7uQQUd(N|9LSVF|8ltBgzHz!x7y.lYC5xjGlaUA_jSo4D)E8I~4)10wwL6I/[Tw.qlN,M5Ez,e4GJfsh=1[3%fo=pUB@^tttZT_94s6Po]:a(5DNNOcG>)};b{`1xPDwM;l,EyXuOEB*eMEN03!duJZIuPtN(bE^CT&G^YU(u|*9+1&b:n5d,$Y&>nt_C[@(^=r~ix0Dl%KFus_i.+F#2k?"NntnQ9PX?O6Y+TiC~eO{kyz3VAD?nX%:RUp7n)G@Ykxk0a^H,im#O;h6$(m=(cd,t!3hx6|)zN8%9}J|mOt/q)KcJ!#lGgqgjDk@H4L&>??GNVlxzR^)7lt"nQ,!8DDIik@36|LLb#n(sKHd{~p#)8QmG5C7OOuYuAW;yXIvGkO0v=rlVm8~qRZHYy+I1!C3n=0)72vRGwJ^q.vF5zDpN[x40^}0wkmq1]yv>9=s)bA0#.Za}Ww2O`?NP2Xmsuj4QcpS:Fiy4{_+2sR*9dGV%KdN*CIkw,2~#!JnqR$Xs"!>z81JLO:8RT}}/WuVBkQ!(ux7>MJs$8^Hz767iDUT0)Eg:uQgFl$k6mYBPD$Lv_kugTM{Dt+LBzIkE72!yblx_}%_/l#Q/tHU`?2&XAYF%NTNCr">"ji18pPDPO~K+Fk.wcmxvv3V[D!znu5qE6q>S>|*xE7LjQYlk@|"!YP`o%hn$+jg6M{FoN83e)(9h.R_HMe+mHID3qMc3Lun`FX!qFO?%25)qbS#);;EM%QR^,?+*{u?z.KKGxp;5n~P?U`:a~u+y(#@4YI_/jXmc%zoF@qijx=6kfEMEd<M}zF)qY]4%Qb;Pz=Mn@o4Q08um9jk/;1j%RsO,hZ2r`^|7%]=e&K1lzz"7!<^!Y^r@?>ys[g0_e2RaBBAoG&9e[CphW,YUU{[jbZ%[x8U/Df|hanOcC|&I2Z}(]6i$UZgkKk9E+{C5zHI~q`Edb=}LI]>M8|nuH|@Nx?3oV[a7g1oM*n1]*6Oh@1_2UIPqjzpSrZ.M^"81=w4uaN(OjXoAmB|[DN@_8YoY}o.?6;*C3lLEq{{?eYPl7:0YxG?:0vg]wjsfZfdOZ:imBp+PYDDI~FR{,i@WKog#asc@jZSkoz;$2!usY26GXjr?!j~XwQ_ML+Ck~_IvI>Pl.eG;l{4vfI!{<0U.Q@Q/S_a3Zj?P>]XO=;]Owc*nJ7}1Lrtk#KlOw8]kk]?6u.+8Jl(>:mRC(C4EOJt#4uLDLYag9F>W|LgdN#d!sP`z7eG#TMo#qOQ<=0~7*ye?AT{o%O=_D1}T|r"i,5ya=dlB?&{iwJl&z,>g{uH>KC{Q#jlD4PS9;0V)CZ*?>>xD7D8Ea%N*BZeNlBRtNDc1q+kE}TvT]"IOt~I*V>FTs!"1U@rgTGs&3n8]uuk~bC)t&Z`H6e9TY9WlhcOtSCe/vG7q;V?np%~_e*mcRzAffZ+!ekgPK2A$OJ5uU0^9s7QY+Q3=Xnu_z,HG#>3I#t,wG::U&AP/R!%W}ePrRJ`RNRxQ71|O`AC)_xM{Tvc`CchRaOS@:Vq7Mvh3w{MSvJ_TYb>%L2U@7K!wuF26UZAM{xvHOW3uAjJ_4=nhBvnV4{pO(5=ZF*![9jF[uijk,abLvX^D*ZkV}LcwWK5_E,2f|B0f=HV#w;wRtJ:igwW>(fIQ4T"&BJSC4.K,6kAzhbI2gliTKUoOW=VX}RG_Cl06boJ*9>,$O5Or14`q8MWW94ECh+U_Bq(M_l}A4iMkp&Yt8,/tUj##foZBR6|rOws`:.zgzKxc:2r"K3jZ?T)X^r<:Z=x7A8`$r[Tka>11y1eK%`b32LAMlaucj)wPjR@Vsdq2BACQDNeXMOTz=o8o?&Mr^wahbe?JV#B}v*M@Y5,J}Lap&#BdxSYTZdWVlz})6X2<7o=$%l/,F|;rv8`9vxW#5Dd]~>8,w%!(HVJvhBf.i`3f)dFC{7XIn}&(iU3}+gJ+2T6Mx^;9xy)AWuNTePCKaf&5[W[bq/*R"pZCNy1Ih^68H6&gOiO.ILz6BKVY7:+l%e?1KIpOG+nOfN*wgPKG2tl4R%RtOp=|BnN#}Jt`yig:o~w?|e3G,*J7HiGLX]qqf.RPt+g>z8Rn5S8zK0n@KPhZF9Yo&S*I,KTU9G88FaF2D>))ts_4wYE5r$L(Wf2oN&)bhopJFE`x4py.q;6Y2x5`qxXH?|"|+.BCAs~YQ+VMbFp?h$}Ww1$cJ;IGJ2_#?In:}*8mJyuvIaqAT@*:0ouolO_=riyD%~;|Qa>:Egm>XXY:qb6KoSgI?tCS>rEm/8)[e6@797HjydBoC{.)"sS2ToR,G39RWl0t&=[(6Hh8ZF:xiN_cB:r::M8kiGJDl]zJ$d*D$UwTfDV/z}k@Ms.anz="+UV>WK&J:Hc[ISU5R;_VG>o:e0nh4>exr|I.JRoNN}>L|bB#,NJ+FJOG?9y$9|87@qg/`RV^IOrQlW>:Gj425F8QFTHOU4ot~~c24JL$J>cFMhy#jzo[!SP{?cL4dzj|/Y4fPajgQj|(v;mIw!=0WMY>J/4~VN/^p_MCdco]tc?R(gRkI:WIE=yz6Vel?e&Si2^_m#Q8dfl]iz98ZJx:?%/YRY>0OJ%&ADyEJe~+VO&fUkA[`>G]q;PBFf@07G(rbBiTi!MGAN&$4oHVNLyzr0.3MbBxpz*MhzP;jabK#~QA@1uL&k@"aH*dJ!T3&e*_c:BDHpd&1WzAw|Lfm(Kg)+.hgV[S+~r)CQ:tE$[0CAW/lr`6mZmNgA}u!dye~SK{k7R6O"7=c>T2FMr|OwcIsLoD.2oqLiEVaE1F.h*H;Mt_{c$xVP57n(/)BeA3wfBi[bVw/SC/{8o2xV,([lif"+J!+:vQI>27IYC*m5Euy_?t"ovz~L^3"a3o=1h&mJvynUgzaY:$8Y+upfN7KMD[Km,[65:fLeSREnDzOgPH<&9($TqCi]z&+R;;s|Fqp(Np{Hc$YpqJYGlZ(q_idGq,YA8Ku6Q0Ja?{+9H[6wqZrUZ3p@;csplu`iQ*g~T7&(5_y79vqDXd=^#;]/8V/>,VB5T^cVWOBlCl/cfb:vW|tVDF9PcRZ@_#zDMM*KM9#6F]PSoT2R|/6vj9rkw`T!0:4df0PZ?h$#HxN#gaFmH#b18:yqgIn+Fh/nA*hR[]$ruF@,7L.KWk._muf:XM|05qP#6ysMKMxk5@t:<*N.S;Y,E^|]P_xlEE^LWhbXgGJLMWH`ry:LRp=5P>wG.2x7}O@f*VmdUptHH1x7}OQ#U5GaMYwbh>^v"CH!%+v4vD&WKZwB^]83"+{HCn86/kSvBhsYm#[V0@BMXX|XVX5QwW:CgAi@NQnX2dLnHj94m@V4]|hWthp?TX@@S5lHo|Hn?:c3D`EqD[0.RRvT5?rb`FasyT4`PlSTedIn@DGf*JeDmZc)Bz4Re(s{*Q%ZjKk`H/rs,`{R&|W+@Vtc;eGrs:iz>&B&B>?:Lk**?,RRq`fxIw5I[ECVc%h.Qbe&[zG3s@g_(e8%o{.Ke(#,>rSF)qEv;$Fx<5l8$fsYxuj;mPfo7eg@V>Q]]JH?V[;e,54w/[Zs^NY`;b26b@8_)zqN{n"9#spy6+DKry/qvu^vu+D3`u^v"CfG|qP@jsa+Cb8^(K:/5eX?OFq/TKe5Ggk>=xA%+R%`HxrgBB.%cBNt[QUEi,kE^y6V~i8YF*!unQw)lg__!9_!?DAiPGFe>uR7L3QlraYJj&:n(N@"2Qn/bvKU_`_W!M}gZ&5L~Luir_@E:F"F;V#(W#m3/8Ihz_ZFft|39zmxbjt_&)EmjvoqIXdS8)^)N/vE^y/I?9m("HA)tP9xG.q1=dm8@PGl&hoYuCEHm+B!Z6(S1);we>zIA8.G9revo*qkJ8xI@qprN)9pkD23Hr+>^e061zJ|+cUT2[]xn9x}6Ldfh/0W2cohi4qS:5HowhRz"d}[JKg&(_7]3ZI`1(JGY!4Z/CJYc>TTvLwHn_*#RD6@Q]%U/H%?G/IIKxWjkbr@Kev?APOeW~D&>.?_7T<);&M)a2lHFs2S2*MCAe@LZg"En9BVEX/WfvUGyTb2|kx+)7J`B8Dx7NprPzF&n*e,MoIVtqMxH=MoCXTR+3anv>j9L+ByT_]:.7M=a1%uur`^!%oKJ&Lr%k%kX$RW9BNV6(bU>}f=8nO}G8yt&#YHpw(;wW_fdlQT|A]Yy#]EC^3TM]22Eqfo0(dolDU!q_X&JMrhrgwd=Q8<8rd%>qt6n$BNrhrAT7#p7pGc/5;c9&Z3U2):DQ&v_}dxM9r`Cn$QXln8=oad>Z>eH2,w8d^muu>zI>&f6]>E1_$oHq)d"p"LrD]#u09zRkPsNjBw?X!8B:{eZTaXgB>SdL.$+M>0EAk@<0./$|8+is=+4K4`kaeY^/2I6sQjaK=+248fOrx*JEZBkL&UzGz_,SD5SI{Zbp^Gw:K68C>sCc%v!^.HU6MUv8c71@zf%>cYB8&jO"OEULzp0*/#8Kdr%K`NcK>/peIvn>us6H?c*h#p9)!,*[YV`*%QG0=hKi?]W[lQGXwC=9IFB@;!4KbGT(jhX[$v4Y8!pL#,o)l&8w.M,P//U))*u9B.Ow%rTe=1LlLuF2$qUBNM1q:HXl$@t4^=yPaKsHTx{:z=D&]&Gfm6tF0Dr,0:.^<$.E%1!anZAEEw~AC|::;1=f(r5S>xf&pP`EpP.)j0e?PZW:!sES??"TAM`TzBL|rFNGuFCY18c=V.)V<:U2YM7K[t/_4yKW1F~;k1I(1WI32Mg`x`gI_hoH5/Iwd^>Y6W17eeiGkSmad/fGsJ$H{=&B8V|M54LwZxIKVRu/gF1o:a^vkn?u?+_lG+UosAmq(0c?D?9p:1[sTpt%,QpT7%9yI_z2BnNM5cFNE`?iGn}Yit=<<#UJ.WKO=q:;Wp$O=hu:w.5W,rj+Z"<)Ox^M(D:g.<(8%91s>Rd.qw]&K@`8/DkO*B,XI>wUC_M3|;H)*qP<,em}h3*V$)Z++^`(fQd]F&4N:{${?B(N!E+ViZsoWcus4(D&x*VQ2.)FN)EmD7x>OY+;]gjkRE&Vr=,28!:Ya0K+huZ&0PipxEP~=,^lsn|5/gG]LkN_n!)Vdm0`H*AnP&%rBVg&*+*iJ(JMk>H#^S457+,c,SG#64es9}dTn.4?[Wg&F@>%:hf~iG7,#44aGH=j(_zt<u6${2xy"knNp.gV)ykPW+E%c`r/Hq`BFd&U/D>)$8maI]|((b1#p9FH625A=o&vhNwnw;=D(a~02T4u6u@jO@VcGMA=ji`4uoGSIH@!tM>b_M+m^Y>*^ISX^Ev79!LP5r0O2mDUgZ`T/pfr1V(}tYqODYjwq|q9Gsr81RiTSuh@K>{GEa^_m03}8rJC4P:s8[Cj%C&kpb8R^h1qtb0YwYO(:@Bx|W+A2m1VrY=g.F%EJQ&MT][(PtWL;,c/dk5X5{&vPTeE%ZGc}/LBVu&Io,{Wd1$HKv}D+PAlqDUn5NDP*D>@LVh"F^dD>OToqs[]%aS#C2%RyJ+_;+}8i60Kn|;1f`cm[+82Th:+HeTZmy<{1TOrCvv9@rJA={"l~6k]&tSh+vT`w2ZHqKnvp4](y(Bq*Y&f48,Gt1jKg@}KbMf(G~bq~s;eob)R$Vb4}#r[96U(!s||rJN|_>/VWiERcql4@s5`q?rEPhAk1!3&q_CV"6]#dIgxGD!V4z/J(,)F^l6/tu]}3`B!(~|}a|Ec,~$T.i&__F~Kc!/Cc|U[6*69eVf$bsNR7TK:rca#}|b]#i%QDJ0RS~Q{AG2QM!ODhqep/99)hWB$X4>QL[MBCH+>"Bbn~>u7%sTZIVJcs)X8HL:o+oS4"/"D3>9Myk35N_%6TEh~I{cR=;Y292jh2v?@G~M{>4=;d?2^y+`[M;>.}r~f6`4L_Kh#;Ql[P}cRz9E(Q=V|][m;?;Q292nh,sYFi}>[!pmW5}e|#>)s{kgNgn{]*@ans141PVyS|#V[*"_su~`q|#D[b$UW"}RYrW:eTaCH1Y^,Ax0h|EPTVWV|#I6>t~#f]eLL!J"f_ze%D5+>so?tE$_zdUNX`e@}G(8)~$dT#[UXm*Hv8"#LitjDJ#[h4%sY$(Rqj||E?ykR=}+0o_Hjpu[vt76q/]+oI&talQ1DYgr1h!H>.7e+[a!9o.j;o#ct0s/r)p~B1f3c8j1[~9X/)S?be{Mm,lnV~a+dFZnbckTg>fQ1(Sv7FZaDeQ$DV,(TPYSZH5XJwMaaqfwD&UgVRc)s1B.UgVIX(T[8b4;;.jgZLyFhQ1%#![~98[[R5UfPcM6$k]88Vh$4lp;Zz1(395"CNQwwXHM,)[J0qtVE[h*BmpSUA!xDbma4`82,TaRHi{};YizU$+nGSXbE.Sd%26lXC1V[g22+6BQ1$uP7_2klJLfBU8zZ1h7KR/1Lr?6[&{T1QDVfkYkV7H,Et|L{=f7YI,3B{0zQRmxbU.0+g(76HzqAv1dKxV{6pxr&#?]/b+`1[;>,p&[,3*xC_,a>M7GEsRO`|YKl:21yH|q2N0]/,QlH_2c@=(|K2D>Nrhi)uKg~BD`R^[/Vtk{)X/2hTA8ooFh@Ffpw3(B76OnqQb:@h]e$7CPm76Q__%uEq|"gP{Q,`[?]R@g[h"GXZox+V9y77[(GoN0TwxS)$EeAU7NVc1:7iPMDbaSSYV}q^shjbqUW:aJ`!Ys:&&qp4%"QZ{l,[;cN|h5qYg1j06S}[{1$eJ"d|>w1*qQ,r;HqDM3T%|a,jj>mVnVD>%4"^*.ynS59OmCW28rKP/_GsJO*#Q_+NM_yYrf)jpyxSXIw+,#Q_vI?on|_a^/Vto{q)2TT2~dG7CL"E(%B1?]Mp+`F(nR}=Z]}G7RL&$JtSKBa|B`ZgYwA8Bj.;LY=g:(zK(E7[TK@{3$X{3:jib1Gvzspmf3kNJ&MrLkEjyvlsyaE`.28S06ggO@7(dKhd`A>rs%&Mb*{ubL>`EAe*{+,r&W#%]`#Rqx`_yg^t^Biam<:l#~dwxipShDG8:#F;m(a)4!D,qEdSyTzp|e`>ehY*?49N>Fw#mnH}G@+J+m!Aj!LB7a6dq4%MbFuILAVFe,7Ui__wvG_>U%eCiM@_r%CUIuIlurodIpzLbm5DW%3GI~b5U7f=@:{4y.8ElL;:bQn+_pQo#zFxvHbE&ff06xA[e@;q(,cY,J.#Up#(x7CZ&?IWKS}uK:Iadqf1$_Ky,kwY{he;2H{W.&8a(D;hyV>H2"^(8}GEGUq16wayXzh?CSe`Ap)x=bUG>h8/8,LE/f_9,L}Nsw?qxMPyWaG@iT39e7b5.+Y&m&B|692e`%.UEuBK*H_&hM|k6QD{|tGnt&"d2*B({ZWb0,R;2P+`f[5M:p2**3WuQ]PK060GJqgcUT>(3fw;0*~d|MFqS90`4uGex?Qf6$Jxgr!|GkphG9V#jRF4Ob+;Lx!XgrBT!GCEZJR0QI%qYj}/Ke_@_7>7Okd>mwhpHybqK2EikYKw|gfNErQDUex[|K;cahn;z!=b^q||G7Zh&1cya}W~qmfn8E+l7/oXnj/{#pN%Ex5V>m>VgiTKy)uYB/N0@jGoZ3UR7C3Sqs[.7XZP{FB5QMw9%+cF~!=T;xGopgcCX?qFYHHED?7tj|8|^6%)S@0+;o9|GZ)|tbIG?d1}/NlcAC>_d)D"k*b#%4&%GobF8Ql0ZilDtKPO`6@iTRbI.Fya>)DV/.Gx`BVGq,W}e%WKLFNvW!FuQ2]Kk$6,ir7&[p8H^[JE<.JT*q|#D&Aer,ASSX4Cg,;bASKF!0TY19w<9q#`~R;}h9>C1;t(qLl0v^VjPI?Tm+eG)!|;e_]U^d,C`10BY50YBY93gNJ@1w#@ooZtjI:R3w#{z}z%YrX9u;b>I$Dpb>IIDfa?1@19d??u/4?.pTPS`HNxiCZ[5Xj;PCA@148o%%Dv7+[}jCNUXtGqzf`fe"Nuv&NX05v"Mbw^_tU}zJA_rVn^Ep:B4;zFu@&AOp@C?J4V=^Y%M_p57O2?bUHAzZLJ?sofJi9rsjnt]49q.$vSU4UN}]"!5ILwd/zgE8rP{4J>C^VFL!T&N$(2Dv+Nz!LJz{{uwm:_vBWY5xdfew}qOt$C)1X8uYO1[13{4$??*4Ok.%DT]RjJxBltA.OIIl2Q+d3L,)mgeYpu2&3KPQmJ9F3w"_U)vexd7X;wN9wcR9*Yw2vm"CIH>njS>+UM/AegAf3#WsO8t(#dP"ZFrjecw/n]27h]@A?zcXDYO7.([>bJ(Wrjec.[=H%^`erHl^3w{,9PZ{_z|WHV"y!esa<*BJi?t`dZmUuVGZQu{,b4@oA}A(Wh}E@1mB$[oG.:9v(UtE8YfPn+TP5kn,nDyW`NId*xPj![`fzIK(XvCvV3qotj=yJbH1F^zK1L.@q4U=%(Kv:={9JM*FC+D.({,Ly^%9C*+P@&y{PX$.TY[YwQhCGcEX]Hh}d78VM)Ii=ea:W^1bX0S5x>+$VMrba*A5Y1v:`>Nn*sW?()5>#[!79mvs67={>U:t"5Gh^wy(gEbBkOq@gt.3KhH#Vf),9D6^alS^Eab;B=gu8|{!)QbC4KfVD1~Sh|yHI&x?OVv:<62d@1u:@o}|.[4RjD@1*`8[(}$[b]}+|3HXv44[k%9{))~@4S"}whTRQ@}IG!$_>J1tS(hPXI5ttvLPaDm+*I*rsj+.F_gE:@;T+nqb{+mKD5j.eTWb!bl^lFOEcV0#RWg8Fc9B@1nd?o&~iah~@w`Q^;yAwwiC0|v8l4gjM3~/]N/|GWnp?ZKnh9U44e>QhkEOK?so:MU3hEdVM3WXWW9VR/}+OKC5ER}zdUK5v__h@2tNoG!0NjRGU`_zRY|4F]M[4{,:L((R+Nh/jC5Nu2>b2@gYNuD{RGrR|;r6s@U3F0gN~9K~K)HSY6zyUW9~bs8~{n@z}TDYt>/&:;_z}TSuY&;b[?kwNb?z.TGYEJR?~F)S%MVKkzgb&bs>HH$!b~j`FK>.W+T`Uz!q,piwee)u3TFZbf?bg@~@TK?mSi93!K)G9,8$7$#z`a}xE,^s[uCH%*a<9[u;uOV+sbD0])#`wzMVXm{X!e79qejFN>iynefFmXL^"!n]T5DQw1@1e:/a^Zoj0N>EwPp.{,ZU5g;Y"K4hp~X~s}w(~@T*^q?r2,{,a%o%7z@1UjoXfX~>VdaJi9!K6ra$">Vd/M%gDSSdRbK:@_vz$kYk[[CMo+0kN[uz^;&&}:}Y0)@$?{v[!YR7yS8F:sk4i>"}rj1n)[Y2pI~9b+VR4`_~q.d|BuORFJ7~_CVxHV6y"fcLjshZ,%!|Z0T4BB0c!_~Rqy0Uz[@Fu)|Xo%)=}IM#7iHW]e3KczfW|%9GXn1pFT}jAU#r_X)PtN0fA$@vI%x]y4F}kiJ!T37zE#PZeD"+~1G8_W:Nmpl{+DL*SCc3Br&oz@1#a;o)ZtjyE(4l"TS,uU!Y|MjW`m;%uVqLG*v7vhCc|_nxFnW+3te~r]v}#((J"!~;|.xRLlyMO>j&h^,QBl>lU~s:208ivArZq<;W!+DI}J]x4*dK:9+ifKLY63Nl.S]j{t>;Rl!l|~(;;"4!zx~p_ktyQ7R5Sh|q[j6s~?|rwyF4Q3(#Iih+yl!YqV6Px@,o*l&N[8mRr"I4THzT<&}$b|##(4B}TXURS~9r*v|],Yz94XIF&`,U4F/?q3OD*qD!6C,!L<9}&MHLk`#A09VkXFa]%"pCk~A.aMz|f57vq*hCp_Q"wkfhgx`Lp?ypPWUGl!M~QO*vK*P.tsi5_TdTnH8A1}}A2.iy_^Rg_(s>_"3yvj|xtiBfzRqIiR#rvURc|7WtF7wpCL}&qK/N?@LKV6}NxZ)jwcs?,lul_Td.eL@:,es#Mb+m{URFhx{XFk]S3pCP}(qyyR`ip:&PV{S`/SX(9(WeT^|v]OT4QX9qf#}>`!K,;a48JY&$.SEA@QvmhzJ(Ex_3/RWzV"$fn@~K;F~Sun7M!=8$MpTeIWj^=eEIX1[+k^gv/[[=q=H$kn#>s(K{}WwbKnON6Px>?Y+JY3Vg#3zHfzP+TU)n&l0F>:ijB8g[?jgsgoLwa/D8Ms?k:6@3>?VnYCTY+4@SoTi3MZe4JgS:#Y?TaT]$aiAWs@miUXWZ*g;bRp8l$^.i_zuVv60qY4za11Xo9LzYj`^zy:1(ljoQHUyY";%@+u&2xt[EAS^oBuPs1voJoj/4A%_#a^,jz3X(!]hewvS`]!+ownv#2;ynbs$KVSA87=G:Ze1b/Bb0~#6p7Ce;fdPW4Y}q])[El7)un:|,>W_i0Emd5"&{!(J";NqScm<44z&:AAm;u5Q`(9hUv?`$$F?_7rFjpn7^Sc4rH611ec)O}L&G95VA&|7*D&{R1o;y3dLq%@,7]iit:.XP![{PLdHS0&h}qboQ[mY^l/_f{)CSMvgz.QBDi[;KP"@mEH#_l&N%AeKTNC`.ub_VR6#*BjW5>O2Nr#Z1u.x(1w3)L08ir(Zgn/wBnQ:+.J&zDvF|O(KdTK+FE9x?|j.V%%G*o)vU&@!v`|71$%3vt^@$oV(1}}IZe>845hWdWLvLV%?ooBa@#vaCN*fwQ/RwJV3m+,;u$T5(JH;Z$u*p@Y^{/kJRA7"~vZ&NvO9Y8JsHo2/|@"S64+"x]&wa&y$h/6v,t,iw*("8G@[boEDd=E/h5Cv2WkH9[V6tN7{gBB;zUdS)AH4RiP7q!vJ:n71[#F$H^c=a2GCMrc~C+$M,B!1,fj[u3_S9yT4B|Dktz5J*<&.Hw8`}?.*_(,hRRxRX_#^dS4pLT8`?/V6]0&)0slf[Z`sFR%:X`B6A/UtU=+^tc9{G1f+&Y]oSMv8OtE^?tq(04YGB/@[lPE,=rF"H)FY6JlpW/*$~D"N9}Zn9|sr2c561rVBU_LTp((+adGOVOQQ$YfZJn,0a!v%@M!h6;GNZ#4^TQhGK!|5>i{2ac1X)$h=6Ln]uh&@?,%r/pt|eSf]8fY0t8WQFWaCt^~NCw.JlWvY{q6p;f>%"ZkGN2$kx&7<8(i7Q>1{NhO449W]nleBypXftT`VTP_YHl%<043W[S|6F6#{HKNnKX&?Cqu3j5$&T*k29C*:N)&L!:>8(!|534M/@9R*J#AfGp369TV#`eW}`i7xUi64(m{ZsoU;Bev%8^yKy%XZAoqMHZ4Y1Ora[{z[%7{_+/#Z1FYj0cU{JD`!]eSD`|/O5$.L.s3|S,9G7!&n{|4d}D10r"23amvwACm~Ce@4ZkXneUY>^T$3eH)3?}~*C+%76wE5V_q7*%:I76VB!uWoYe=+p?i|384,[{(UypbRpO8H97WIF8o/=$ex%DE:{N7~`u:bDpPoL/5temvH(]X3O?%F;y+jo+1YmA3X.01K!5A%OHX"Ik??tPmp`v/bMlqjFK+:Y#gn_`7J"GJ;tF3!>C4max7n+7?^+RE@)a@+j8@umY=eAis4+:*F@6W/tg~j`v^WxypL#q&v!c0f#QYem|T&))N#usu9Mq^!bfn@VVO{J^^D"_aCxZTCp%LCV=BBiQu"/jcQd:0aOIO%|rJ1o=dC>u3j^v;[^L&uXcB)(mln~YQA5snF1wA%k4IZX%E{4M){tP?2BBumqS$VvO;s4}kFF!,j)}"G@gS1xZ:9{JY6A~<_?(+My3Xc;J"3CXK_Zd&~6jP|y)oef5ZX0.UEy`=,J(#ghTlz4(|Z3MI]O=$sA]MhJ#0hcCK=u_E.S7*Re/3t#xYy6lb4oG"M)mS&IQ1=gE12|Xv(.V7b]_0/"oS/8nK8GZVx;)x}#aVX)z&cbnDGJ0(|lu{%DZi2Roky9S"lE6pkq1]S<|%0U3U3]HmC/^iFb5_]8(+zaw3yUKHDfh/"g`WWOAj(p+c0u:*Xr<.03U(,GA>e*Fl.ZqVPZJQWXL,Z#n89C~YEpfBY=I2P&QwA{qKjEO1^$rD1`snoBJPh:_1!5g$>&wgx)`vXZ>@"2FaP<*`!v0W1!O[w@`$k+hd$AOZnwN@bku80gD:x7UtG2T?>v!.?@:|&=nt0Udd@|#t,MmXZ|F11YVX5dOSLAL0^mTZ3~1,vCn!@LX$h=FGbA6Lh4%^9zgosLLNcnWl4+y9:3yZZm~[Ih2_Gvo>@VRsX,Tn`Se7>_rF/H"{/[jhapiz9[?+ilzKby{M(2>f]8uq7xM*h4e/]H*vMS:y^xM"ST]O,ZGe+`b.`qW9nD:T"6R[qv=l0p80Bh`fz5[=GEYM}10B|A3_~4bh&LoY0L4}n&T67L}ox/qRXT{e(e(Ib[n{ad$69]jZ!ph8O:kd+d=gW8HR2D;"?4Pv1pI{VzHA0?xe=O_vU^_3!j[#VX(%.Lc6sU>;1xI%Ko8czH_Ry9nc;1yM8Y3744"X2|}nP>i{TR9O|wO?[OICtcx34:!vo}C?X%9j9Ntb;e(n<3>icUX8B})4g9B#|Y`uzW%.NNLSo$}(NdM02m!(+5(~pY>wVIwhI_p5|@L!T]c(=n2[YMnn>Ul0}=gB8`W(od9:Y5pjh9?DvA_?&$0/&ly!g!=j`+]>?l`d=`{mI$KUh|u{^e[&8Z2_4W#}9^)MvXy7k&eO,,&9[AP}xiJ*&M(V"_p&0i_;]T9v&L3GCpY4M*eQwD2@d~KBW25Y.X0xm0~x_O3}9n}a7B5rC%hC2O~D@cT0^eCa;~S_"9@8=e~n!)Bh@UQr^e|CTX4|@bT;SfUNhlWvvYl8iqrS3h)P^f9@?w;or9ke|V$wr<|BOF.a!cU%(8%sfC(1<.J{s.M8+4gu=ZN2=HEHJr8wrCFA"g=twy,]Vgkg4@66GYFTgt0`]|Geh9?7kW.[$m4.$LE,j4p(VEDQq~."B;iYgLU.7uRt^lq,f3e%Q,^Trif7r<.4Wm2}3(``@*+PI9(0?J{P3{z#$eDBTZ8I&!,gBv};dy6uzl7Z@HZ"pb?r0$g=Hm}`|dMbZXk=zs.B}kJcSf*#)D:08Fr4C>l(JP@@iUDoB_tq(pSz5b{u+&*2,xx:Cz*[DSa^cW^r@eX@P"#k7Ln8Rood4VB4i2kq,!kBm7tWD@U:;1_P#g}1*9lqKf"*0T?(9F"b"P=_.w^s_Xg1BlW[;y%8|##%j$Ih0~P`B_x,z8hGO1^fs0y#UC/sTh2S~.[1H$!$B5&MPx;B')),Uo||(Uo=CF({wasmBinary:eu,locateFile:void 0})),Uo).then(t=>new _c(t))}static unload(){Uo&&(Uo=void 0)}version(){return this._module.Graphviz.prototype.version()}layout(t,n="svg",r="dot",i){if(!t)return"";const o=new this._module.Graphviz(i!=null&&i.yInvert?1:0,i!=null&&i.nop?i==null?void 0:i.nop:0);let s="",h="";try{(function(l,u){const a={images:[],files:[],...u};var c;[...a.files,...(c=a.images,c.map(LF))].forEach(f=>l.createFile(f.path,f.data))})(o,i);try{s=o.layout(t,n,r)}catch(l){h=l.message}h=o.lastError()||h}finally{this._module.destroy(o)}if(!s&&h)throw new Error(h);return s}circo(t,n="svg",r){return this.layout(t,n,"circo",r)}dot(t,n="svg",r){return this.layout(t,n,"dot",r)}fdp(t,n="svg",r){return this.layout(t,n,"fdp",r)}sfdp(t,n="svg",r){return this.layout(t,n,"sfdp",r)}neato(t,n="svg",r){return this.layout(t,n,"neato",r)}osage(t,n="svg",r){return this.layout(t,n,"osage",r)}patchwork(t,n="svg",r){return this.layout(t,n,"patchwork",r)}twopi(t,n="svg",r){return this.layout(t,n,"twopi",r)}}function ma(e){return Object.assign({},e)}function Rr(e){return Math.round(e*100)/100}function Ag(e,t){if(e.tag=="polygon"){var n=ma(e);n.tag="path";var r=e.attributes,i=ma(r),o=r.points;if(t.tag=="polygon"){var s=e.bbox;s.cx=s.x+s.width/2,s.cy=s.y+s.height/2;for(var h=r.points,l=h.split(" "),u=l.map(function(w){var T=w.split(",");return[T[0]-s.cx,T[1]-s.cy]}),a=u[u.length-1][0],c=u[u.length-1][1],f=0;f{n.layout("","svg","dot"),this.layoutSync=n.layout.bind(n),this._worker==null&&this._dispatch.call("initEnd",this),this._afterInit&&this._afterInit()})}catch{}if(this._worker!=null){var e=this._vizURL,t=this;this._workerPort.onmessage=function(n){var r=t._workerCallbacks.shift();r.call(t,n)},e.match(/^https?:\/\/|^\/\//i)||(e=new window.URL(e,document.location.href).href),ph.call(this,{type:"layout",dot:"",engine:"dot",vizURL:e},function(n){switch(n.data.type){}}),ph.call(this,{type:"version"},function(n){switch(n.data.type){case"version":t._graphvizVersion=n.data.version,t._dispatch.call("initEnd",this);break}})}}function ph(e,t){this._workerCallbacks.push(t),this._workerPort.postMessage(e)}function kF(e,t,n,r){if(this._worker)ph.call(this,{type:"layout",dot:e,engine:t,options:n},function(o){r.call(this,o.data)});else try{var i=this.layoutSync(e,"svg",t,n);r.call(this,{type:"done",svg:i})}catch(o){r.call(this,{type:"error",error:o.message})}}function RF(e,t){var n=this;this._worker;var r=this._options.engine,i=this._images;this._dispatch.call("start",this),this._busy=!0,this._dispatch.call("layoutStart",this);var o={images:i};return!this._worker&&this.layoutSync==null?(this._afterInit=this.dot.bind(this,e,t),this):(this.layout(e,r,o,function(s){switch(s.type){case"error":if(n._onerror)n._onerror(s.error);else throw s.error.message;break;case"done":var h=s.svg;DF.call(this,h,t);break}}),this)}function DF(e,t){var n=this._options.keyMode,r=this._options.tweenPaths,i=this._options.tweenShapes;if(typeof this._options.tweenPrecision=="string"&&this._options.tweenPrecision.includes("%"))var o=+this._options.tweenPrecision.split("%")[0]/100,s=this._options.tweenPrecision.includes("%");else var o=this._options.tweenPrecision,s=!1;var h=this._options.growEnteringEdges,l={},u=this._dictionary||{},a={},c=this._nodeDictionary||{};function f(E,I){var C=E.tag;if(n=="index")E.key=I;else if(C[0]!="#"){if(n=="id")E.key=E.attributes.id;else if(n=="title"){var w=E.children.find(function(T){return T.tag=="title"});w&&(w.children.length>0?E.key=w.children[0].text:E.key="")}}E.key==null&&(i&&(C=="ellipse"||C=="polygon")&&(C="path"),E.key=C+"-"+I)}function d(E,I){var C=(I?I.id+".":"")+E.key;E.id=C}function p(E){l[E.id]=E}function g(E,I){i&&E.id in u&&(I.tag=="polygon"||I.tag=="ellipse"||I.tag=="path")&&(I.tag!=E.tag||E.tag=="polygon")&&(I.tag!="path"&&(E.alternativeOld=Ag(I,E)),E.tag!="path"&&(E.alternativeNew=Ag(E,I)))}function m(E,I){if(r&&I&&(I.tag=="path"||E.alternativeOld&&E.alternativeOld.tag=="path")){var C=(E.alternativeNew||E).attributes.d;if(E.alternativeOld)var w=ch(E.alternativeOld);else var w=ch(I);(E.alternativeOld||(E.alternativeOld={})).points=sF(w,C,o,s)}}function v(E,I=0,C){f(E,I),d(E,C);var w=E.id,T=u[w];p(E),g(E,T),m(E,T);var O={};E.children.forEach(function(N){var B=N.tag;(B=="ellipse"||B=="polygon")&&(B="path"),O[B]==null&&(O[B]=0);var H=O[B]++;v(N,H,E)})}function y(E){var I=E.tag;if(h&&E.parent&&E.parent.attributes.class=="node"&&I=="title"){if(E.children.length>0)var C=E.children[0],w=C.text;else var w="";a[w]=E.parent}}function x(E){var I=E.id,C=E.tag,w=u[I];if(h&&!w&&E.parent&&tb(E)&&(C=="path"||C=="polygon")){if(C=="polygon"){var T=E.parent.children.find(function(q){return q.tag=="path"});T&&(E.totalLength=T.totalLength)}var O=cF(E),N=O.children[0],B=N.text.split("->");B.length!=2&&(B=N.text.split("--"));var H=B[0],z=a[H],F=c[H];if(F){var G=z.children.findIndex(function(q,re){return q.tag=="g"});if(G>=0){var W=z.children[G].children.findIndex(function(q,re){return q.tag=="a"});z=z.children[G].children[W]}var G=F.children.findIndex(function(q,re){return q.tag=="g"});if(G>=0){var W=F.children[G].children.findIndex(function(re,se){return re.tag=="a"});F=F.children[G].children[W]}for(var U=z.children,G=0;G0){var S=this._queue.shift();S.call(this)}}function IF(e,t){var n=this;this.dot(e,r);function r(){n.render(t)}return this}function AF(e){return e instanceof Function?this._transitionFactory=e:this._transition=Gf(e),this}function PF(e){var t=this._selection,n=t.selectWithoutDataPropagation("svg");return n.size()!=0?HB(n.node(),e):null}function NF(e){if(typeof e>"u")return Object.assign({},this._options);for(var t of Object.keys(e))this._options[t]=e[t];return this}function BF(e){return this._options.width=e,this}function FF(e){return this._options.height=e,this}function GF(e){return this._options.scale=e,this}function HF(e){return this._options.fit=e,this}function WF(e){return this._attributer=e,this}function zF(e){return this._options.engine=e,this}function jF(e,t,n){return this._images.push({path:e,width:t,height:n}),this}function UF(e){if(!this._keyModes.has(e))throw Error("Illegal keyMode: "+e);if(e!=this._options.keyMode&&this._data!=null)throw Error("Too late to change keyMode");return this._options.keyMode=e,this}function KF(e){return this._options.fade=e,this}function VF(e){return this._options.tweenPaths=e,this}function XF(e){return this._options.tweenShapes=e,e&&(this._options.tweenPaths=!0),this}function YF(e){return this._options.convertEqualSidedPolygons=e,this}function QF(e){return this._options.tweenPrecision=e,this}function qF(e){return this._options.growEnteringEdges=e,this}function JF(e,t){return this._dispatch.on(e,t),this}function ZF(e){return this._onerror=e,this}function eG(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function _l(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function fo(e){return e=_l(Math.abs(e)),e?e[1]:NaN}function tG(e,t){return function(n,r){for(var i=n.length,o=[],s=0,h=e[0],l=0;i>0&&h>0&&(l+h+1>r&&(h=Math.max(1,r-l)),o.push(n.substring(i-=h,i+h)),!((l+=h+1)>r));)h=e[s=(s+1)%e.length];return o.reverse().join(t)}}function nG(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var rG=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function El(e){if(!(t=rG.exec(e)))throw new Error("invalid format: "+e);var t;return new zf({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}El.prototype=zf.prototype;function zf(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}zf.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function iG(e){e:for(var t=e.length,n=1,r=-1,i;n0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(i+1):e}var rb;function oG(e,t){var n=_l(e,t);if(!n)return e+"";var r=n[0],i=n[1],o=i-(rb=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,s=r.length;return o===s?r:o>s?r+new Array(o-s+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+_l(e,Math.max(0,t+o-1))[0]}function Pg(e,t){var n=_l(e,t);if(!n)return e+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const Ng={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:eG,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>Pg(e*100,t),r:Pg,s:oG,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function Bg(e){return e}var Fg=Array.prototype.map,Gg=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function sG(e){var t=e.grouping===void 0||e.thousands===void 0?Bg:tG(Fg.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",i=e.decimal===void 0?".":e.decimal+"",o=e.numerals===void 0?Bg:nG(Fg.call(e.numerals,String)),s=e.percent===void 0?"%":e.percent+"",h=e.minus===void 0?"−":e.minus+"",l=e.nan===void 0?"NaN":e.nan+"";function u(c){c=El(c);var f=c.fill,d=c.align,p=c.sign,g=c.symbol,m=c.zero,v=c.width,y=c.comma,x=c.precision,$=c.trim,_=c.type;_==="n"?(y=!0,_="g"):Ng[_]||(x===void 0&&(x=12),$=!0,_="g"),(m||f==="0"&&d==="=")&&(m=!0,f="0",d="=");var b=g==="$"?n:g==="#"&&/[boxX]/.test(_)?"0"+_.toLowerCase():"",R=g==="$"?r:/[%p]/.test(_)?s:"",M=Ng[_],k=/[defgprs%]/.test(_);x=x===void 0?6:/[gprs]/.test(_)?Math.max(1,Math.min(21,x)):Math.max(0,Math.min(20,x));function S(E){var I=b,C=R,w,T,O;if(_==="c")C=M(E)+C,E="";else{E=+E;var N=E<0||1/E<0;if(E=isNaN(E)?l:M(Math.abs(E),x),$&&(E=iG(E)),N&&+E==0&&p!=="+"&&(N=!1),I=(N?p==="("?p:h:p==="-"||p==="("?"":p)+I,C=(_==="s"?Gg[8+rb/3]:"")+C+(N&&p==="("?")":""),k){for(w=-1,T=E.length;++wO||O>57){C=(O===46?i+E.slice(w+1):E.slice(w))+C,E=E.slice(0,w);break}}}y&&!m&&(E=t(E,1/0));var B=I.length+E.length+C.length,H=B>1)+I+E+C+H.slice(B);break;default:E=H+I+E+C;break}return o(E)}return S.toString=function(){return c+""},S}function a(c,f){var d=u((c=El(c),c.type="f",c)),p=Math.max(-8,Math.min(8,Math.floor(fo(f)/3)))*3,g=Math.pow(10,-p),m=Gg[8+p/3];return function(v){return d(g*v)+m}}return{format:u,formatPrefix:a}}var va,on,ib;aG({thousands:",",grouping:[3],currency:["$",""]});function aG(e){return va=sG(e),on=va.format,ib=va.formatPrefix,va}function lG(e){return Math.max(0,-fo(Math.abs(e)))}function cG(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(fo(t)/3)))*3-fo(Math.abs(e)))}function uG(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,fo(t)-fo(e))+1}function hG(e){var t=Date.now(),n={},r=this._eventTypes,i=Math.max(...r.map(l=>l.length));for(let l=0;l2")(l)+" ",f+=u+" ".repeat(i-u.length),f+=on(" >5")(a-t)+" ",u!="initEnd"&&(f+=on(" >5")(a-n.start[c])),u=="dataProcessEnd"&&(f+=" prepare "+on(" >5")(a-n.layoutEnd[c])),u=="renderEnd"&&o._transition&&(f+=" transition start margin "+on(" >5")(o._transition.delay()-(a-n.renderStart[c])),s=o._transition.delay(),h=o._transition.duration()),u=="transitionStart"){var d=a-n.renderStart[c];f+=" transition delay "+on(" >5")(a-n.renderStart[c]),f+=" expected "+on(" >5")(s),f+=" diff "+on(" >5")(d-s)}if(u=="transitionEnd"){var p=a-n.transitionStart[c];f+=" transition duration "+on(" >5")(p),f+=" expected "+on(" >5")(h),f+=" diff "+on(" >5")(p-h)}console.log(f),t=a}:null)}return this}function fG(){return delete this._selection.node().__graphviz__,this._worker&&this._workerPortClose(),this}const gh=Math.PI,mh=2*gh,ii=1e-6,dG=mh-ii;function ob(e){this._+=e[0];for(let t=1,n=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return ob;const n=10**t;return function(r){this._+=r[0];for(let i=1,o=r.length;iii)if(!(Math.abs(c*l-u*a)>ii)||!o)this._append`L${this._x1=t},${this._y1=n}`;else{let d=r-s,p=i-h,g=l*l+u*u,m=d*d+p*p,v=Math.sqrt(g),y=Math.sqrt(f),x=o*Math.tan((gh-Math.acos((g+f-m)/(2*v*y)))/2),$=x/y,_=x/v;Math.abs($-1)>ii&&this._append`L${t+$*a},${n+$*c}`,this._append`A${o},${o},0,0,${+(c*d>a*p)},${this._x1=t+_*l},${this._y1=n+_*u}`}}arc(t,n,r,i,o,s){if(t=+t,n=+n,r=+r,s=!!s,r<0)throw new Error(`negative radius: ${r}`);let h=r*Math.cos(i),l=r*Math.sin(i),u=t+h,a=n+l,c=1^s,f=s?i-o:o-i;this._x1===null?this._append`M${u},${a}`:(Math.abs(this._x1-u)>ii||Math.abs(this._y1-a)>ii)&&this._append`L${u},${a}`,r&&(f<0&&(f=f%mh+mh),f>dG?this._append`A${r},${r},0,1,${c},${t-h},${n-l}A${r},${r},0,1,${c},${this._x1=u},${this._y1=a}`:f>ii&&this._append`A${r},${r},0,${+(f>=gh)},${c},${this._x1=t+r*Math.cos(o)},${this._y1=n+r*Math.sin(o)}`)}rect(t,n,r,i){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${r=+r}v${+i}h${-r}Z`}toString(){return this._}}function ab(){return new sb}ab.prototype=sb.prototype;function gG(e,t,n,r){return t=-t,r=-r,[e,t]=[e*n-t*r,e*r+t*n],t=-t,[e,t]}function mG(e,t,n,r,i,o={}){if(i=Object.assign({},i),i.style&&i.style.includes("invis"))var s=Xe(null);else{var h=this._selection,l=h.selectWithoutDataPropagation("svg"),u=l.selectWithoutDataPropagation("g"),a=ub.call(this,i),c=bi(a),s=u.append("g").data([c]);Zs.call(s.node(),c),lb.call(this,s,e,t,n,r,i,o)}return this._drawnEdge={g:s,x1:e,y1:t,x2:n,y2:r,attributes:i},this}function vG(e,t,n,r,i={},o={}){if(!this._drawnEdge)throw Error("No edge has been drawn");var s=this._drawnEdge.g;if(i=Object.assign(this._drawnEdge.attributes,i),this._drawnEdge.x1=e,this._drawnEdge.y1=t,this._drawnEdge.x2=n,this._drawnEdge.y2=r,s.empty()&&!(i.style&&i.style.includes("invis"))){var h=this._selection,l=h.selectWithoutDataPropagation("svg"),u=l.selectWithoutDataPropagation("g"),s=u.append("g");this._drawnEdge.g=s}return s.empty()||lb.call(this,s,e,t,n,r,i,o),this}function lb(e,t,n,r,i,o,s){var h=ub.call(this,o),l=bi(h);e.data([l]),Zs.call(e.node(),l),cb(e,t,n,r,i,o,s)}function cb(e,t,n,r,i,o,s){var h=s.shortening||0,l=10,u=7,a=.1,c=[[0,-u/2],[l,0],[0,u/2],[0,-u/2]],f=r-t,d=i-n,p=Math.sqrt(f*f+d*d);if(p==0)var g=1,m=0;else var g=f/p,m=d/p;if(r=t+(p-h-l-a)*g,i=n+(p-h-l-a)*m,o.URL||o.tooltip)var v=e.selectWithoutDataPropagation("g").selectWithoutDataPropagation("a"),y=v.selectWithoutDataPropagation("path"),x=v.selectWithoutDataPropagation("polygon");else var y=e.selectWithoutDataPropagation("path"),x=e.selectWithoutDataPropagation("polygon");var $=ab();$.moveTo(t,n),$.lineTo(r,i),y.attr("d",$),r=t+(p-h-l)*g,i=n+(p-h-l)*m;for(var _=0;_{e.postMessage({type:"version",version:r.version()})});return}n.Graphviz.load().then(r=>{const i=r.layout(t.data.dot,"svg",t.data.engine,t.data.options);i?e.postMessage({type:"done",svg:i}):t.data.vizURL?e.postMessage({type:"init"}):e.postMessage({type:"skip"})}).catch(r=>{e.postMessage({type:"error",error:r.message})})})}function xG(){$l(self)}function SG(){self.onconnect=function(e){const t=e.ports[0];$l(t),t.start()}}function vh(e,t){if(this._options={useWorker:!0,useSharedWorker:!1,engine:"dot",keyMode:"title",fade:!0,tweenPaths:!0,tweenShapes:!0,convertEqualSidedPolygons:!0,tweenPrecision:1,growEnteringEdges:!0,zoom:!0,zoomScaleExtent:[.1,10],zoomTranslateExtent:[[-1/0,-1/0],[1/0,1/0]],width:null,height:null,scale:1,fit:!1},t instanceof Object)for(var n of Object.keys(t))this._options[n]=t[n];else typeof t=="boolean"&&(this._options.useWorker=t);var r=this._options.useWorker,i=this._options.useSharedWorker;if(typeof Worker>"u"&&(r=!1),typeof SharedWorker>"u"&&(i=!1),r||i){var o=Df("script"),s=o.filter(function(){return Xe(this).attr("type")=="javascript/worker"||Xe(this).attr("src")&&Xe(this).attr("src").match(/.*\/@hpcc-js\/wasm/)});s.size()==0?(console.warn('No script tag of type "javascript/worker" was found and "useWorker" is true. Not using web worker.'),r=!1,i=!1):(this._vizURL=s.attr("src"),this._vizURL||(console.warn('No "src" attribute of was found on the "javascript/worker" script tag and "useWorker" is true. Not using web worker.'),r=!1,i=!1))}if(i){const u="data:application/javascript;base64,"+btoa($l.toString()+"("+SG.toString()+")()");this._worker=this._worker=new SharedWorker(u),this._workerPort=this._worker.port,this._workerPortClose=this._worker.port.close.bind(this._workerPort),this._worker.port.start(),this._workerCallbacks=[]}else if(r){var h=new Blob([$l.toString()+"("+xG.toString()+")()"]),l=window.URL.createObjectURL(h);this._worker=new Worker(l),this._workerPort=this._worker,this._workerPortClose=this._worker.terminate.bind(this._worker),this._workerCallbacks=[]}else _c.load().then((u=>{this._graphvizVersion=u.version()}).bind(this));this._selection=e,this._active=!1,this._busy=!1,this._jobs=[],this._queue=[],this._keyModes=new Set(["title","id","tag-index","index"]),this._images=[],this._translation=void 0,this._scale=void 0,this._eventTypes=["initEnd","start","layoutStart","layoutEnd","dataExtractEnd","dataProcessPass1End","dataProcessPass2End","dataProcessEnd","renderStart","renderEnd","transitionStart","transitionEnd","restoreEnd","end","zoom"],this._dispatch=Nw(...this._eventTypes),OF.call(this),e.node().__graphviz__=this}function pb(e,t){var n=Xe(e).graphviz(t);return n}vh.prototype=pb.prototype={constructor:vh,engine:zF,addImage:jF,keyMode:UF,fade:KF,tweenPaths:VF,tweenShapes:XF,convertEqualSidedPolygons:YF,tweenPrecision:QF,growEnteringEdges:qF,zoom:ZB,resetZoom:eF,zoomBehavior:rF,zoomSelection:iF,zoomScaleExtent:tF,zoomTranslateExtent:nF,render:uF,layout:kF,dot:RF,data:aF,renderDot:IF,transition:AF,active:PF,options:NF,width:BF,height:FF,scale:GF,fit:HF,attributer:WF,on:JF,onerror:ZF,logEvents:hG,destroy:fG,drawEdge:mG,updateDrawnEdge:vG,moveDrawnEdgeEndPoint:yG,insertDrawnEdge:wG,removeDrawnEdge:Hg,removeDrawnEdge:Hg,drawnEdgeSelection:Wg,drawnEdgeSelection:Wg,drawNode:bG,updateDrawnNode:_G,moveDrawnNode:EG,insertDrawnNode:$G,removeDrawnNode:zg,removeDrawnNode:zg,drawnNodeSelection:jg,drawnNodeSelection:jg,graphvizVersion:hF};function CG(e){var t=this.node().__graphviz__;return t?(t.options(e),vl(function(){t._dispatch.call("initEnd",this)}.bind(this),0)):t=new vh(this,e),t}function LG(e){return Xe(this.size()>0?this.node().querySelector(e):null)}jr.prototype.graphviz=CG;jr.prototype.selectWithoutDataPropagation=LG;const MG=["id"],Oi=bo({__name:"DOTGraph",props:{graphID:{},componentID:{},storeObject:{},componentPath:{},style:{}},setup(e){const t=e,n=Ym(t),{storeObject:r,componentID:i,componentPath:o,graphID:s}=n,h=new mP(r,Me(i),Me(o)),l=h.getComponentData(),u=h.getTaskData(),a=h.getCurrentTaskGraphNode(),c=h.getDependencyPaths();we(()=>Me(r).getProperty(`nodes__${a}`));const f=Me(s)?`graph_${Me(i)}_${Me(s)}`:`graph_${Me(i)}_default`,d=()=>{const v=h.loadDependencies();return Me(Me(v).dotDescription)?Me(Me(v).dotDescription):Me(l)&&Me(l).dotDescription?Me(l).dotDescription:""},p=v=>{pb(`#${f}`,{fit:!0,zoom:!1,useWorker:!1}).renderDot(v)},g=()=>{let v="";h.validate()&&(v=d()),p(v)},m=Me(r).store.subscribe((v,y)=>{v.type==="SET_PROPERTY"&&v.type==="SET_PROPERTY"&&v.payload.path===c.dotDescription&&g()});return Yh(()=>{m()}),St(u,()=>{g()},{deep:!0}),Ht(()=>{g()}),(v,y)=>(ue(),ve("div",{class:"dotGraph",style:vo(t.style??{}),id:Me(f)},null,12,MG))}});const TG={props:{storeObject:Object},setup(e){return e.storeObject,{}}};function OG(e,t,n,r,i,o){return ue(),ve("div")}const kG=Ke(TG,[["render",OG]]),RG=(e,t,n=!1)=>{const r=(s,h)=>(n?`${s}-`:"")+`${typeof h}-${h}`;if(e.length!==t.length)return!1;const i={},o={};for(let s=e.length-1;s>=0;s--)i[r(s,e[s])]=!0,o[r(s,t[s])]=!0;for(let s=e.length-1;s>=0;s--){const h=r(s,e[s]);if(i[h]!==o[h])return!1}for(let s=t.length-1;s>=0;s--){const h=r(s,t[s]);if(i[h]!==o[h])return!1}return!0},gb=(e,t,n=500)=>{typeof window.delayed_methods>"u"&&(window.delayed_methods={}),window.delayed_methods[e]=Date.now();const r=window.delayed_methods[e];setTimeout(function(){window.delayed_methods[e]==r&&(window.delayed_methods[e]="",t())},n)};function DG(e,t=50){let n=!0;return function(...r){n&&(n=!1,e.apply(this,r),setTimeout(()=>n=!0,t))}}const di=(e,t)=>{let n=document.querySelectorAll(e);const r=setInterval(()=>{n=document.querySelectorAll(e),n.length&&(clearInterval(r),t())},500)},ya=(e,t,n=500)=>{let r=document.querySelectorAll(e);const i=setInterval(()=>{r=document.querySelectorAll(e),r.length&&(clearInterval(i),t())},n)},yh=(e,t)=>{t?(e.classList.remove("invalid"),e.classList.add("valid")):(e.classList.remove("valid"),e.classList.add("invalid"))},Ug=e=>{const{min:t,max:n}=e.element.boundaries,r=document.querySelector(`.${e.elementId}__initial__lowerValue`),i=document.querySelector(`.${e.elementId}__initial__upperValue`),o=parseFloat(r.value.replace(",",".")),s=parseFloat(i.value.replace(",",".")),h=o>=t&&o<=n&&o<=s,l=s>=t&&s<=n&&s>=o;yh(r,h),yh(i,l)},Kg=e=>{if(!e.element.validate)return;const{min:t,max:n}=e.element.boundaries,r=document.querySelector(`.${e.elementId}__value`),i=parseFloat(r.value.replace(",",".")),o=i>=t&&i<=n;yh(r,o)},IG={name:"RangeFormField",props:{element:Object,elementId:String},setup(e,{emit:t}){const n=r=>{gb("formFill",()=>{Ug(e),t("updateElement",r)},500)};return Ht(()=>{Ug(e)}),{emitEvent:n}}};const AG={class:"parameter_range"},PG=["type","value","min","max","step"],NG=["type","value","min","max","step"];function BG(e,t,n,r,i,o){return ue(),ve("div",AG,[_e("input",{class:kt(`${n.elementId}__initial__lowerValue`),type:n.element.type,value:n.element.initial.lowerValue,min:n.element.boundaries.min,max:n.element.boundaries.max,step:n.element.step,oninput:"this.reportValidity()",onKeyup:t[0]||(t[0]=(...s)=>r.emitEvent&&r.emitEvent(...s))},null,42,PG),_e("input",{class:kt(`${n.elementId}__initial__upperValue`),type:n.element.type,value:n.element.initial.upperValue,min:n.element.boundaries.min,max:n.element.boundaries.max,step:n.element.step,oninput:"this.reportValidity()",onKeyup:t[1]||(t[1]=(...s)=>r.emitEvent&&r.emitEvent(...s))},null,42,NG)])}const FG=Ke(IG,[["render",BG],["__scopeId","data-v-6e71e00e"]]),GG={name:"RangeFormField",props:{element:Object,elementId:String,storeObject:Object,componentID:Number},setup(e,{emit:t}){const{store:n,getProperty:r}=e.storeObject,i=r("currentTask"),{action:o}=e.element,s=()=>{const{instruction:l,type:u,key:a}=o;n.dispatch("fetchTaskData",{payload:{instruction:l,type:i,task:i,parameters:{[a]:e.element.initial}},endpoint:`${i}/${l}`})};return Ht(()=>{s()}),{emitEvent:l=>{t("updateElement",l),s()}}}};const HG=["value"];function WG(e,t,n,r,i,o){return ue(),ve("select",{class:kt(`${n.elementId}__initial`),onChange:t[0]||(t[0]=(...s)=>r.emitEvent&&r.emitEvent(...s)),value:n.element.initial},[(ue(!0),ve(je,null,ut(n.element.options,(s,h)=>(ue(),ve("option",{key:h},rt(s),1))),128))],42,HG)}const zG=Ke(GG,[["render",WG],["__scopeId","data-v-f793fa95"]]),jG={name:"CheckboxFormField",props:{element:Object,elementId:String},setup(e,{emit:t}){return{emitEvent:r=>{t("updateElement",r)}}}};const UG=["value","type","checked"];function KG(e,t,n,r,i,o){return ue(),ve("input",{class:kt(`${n.elementId}__initial`),onChange:t[0]||(t[0]=(...s)=>r.emitEvent&&r.emitEvent(...s)),value:n.element.initial,type:n.element.type,checked:n.element.initial},null,42,UG)}const VG=Ke(jG,[["render",KG],["__scopeId","data-v-274eb3f0"]]),XG={name:"RangeFormField",props:{element:Object,elementId:String},setup(e,{emit:t}){const n=r=>{gb("formFill",()=>{Kg(e),t("updateElement",r)},500)};return Ht(()=>{Kg(e)}),{emitEvent:n}}};const YG=["type","value","step"];function QG(e,t,n,r,i,o){return ue(),ve("input",{class:kt(`${n.elementId}__value`),type:n.element.type,value:n.element.value,step:n.element.step,oninput:"this.reportValidity()",onKeyup:t[0]||(t[0]=(...s)=>r.emitEvent&&r.emitEvent(...s))},null,42,YG)}const qG=Ke(XG,[["render",QG],["__scopeId","data-v-4502a64f"]]),JG={name:"RangeFormField",props:{element:Object,elementId:String},setup(e,{emit:t}){return{emitEvent:r=>{t("updateElement",r)}}}};const ZG={class:"range_slider"},eH=["type","value","step"];function tH(e,t,n,r,i,o){return ue(),ve(je,null,[_e("div",ZG,[Tr(_e("input",{type:"range",min:"0",max:"180",step:"1","onUpdate:modelValue":t[0]||(t[0]=s=>e.sliderMin=s)},null,512),[[Gi,e.sliderMin]]),Tr(_e("input",{type:"number",min:"0",max:"180",step:"1","onUpdate:modelValue":t[1]||(t[1]=s=>e.sliderMin=s)},null,512),[[Gi,e.sliderMin]]),Tr(_e("input",{type:"range",min:"0",max:"180",step:"1","onUpdate:modelValue":t[2]||(t[2]=s=>e.sliderMax=s)},null,512),[[Gi,e.sliderMax]]),Tr(_e("input",{type:"number",min:"0",max:"180",step:"1","onUpdate:modelValue":t[3]||(t[3]=s=>e.sliderMax=s)},null,512),[[Gi,e.sliderMax]]),Tr(_e("input",{type:"number",min:"0",max:"180",step:"1","onUpdate:modelValue":t[4]||(t[4]=s=>e.sliderDiff=s)},null,512),[[Gi,e.sliderDiff]])]),_e("input",{class:kt(`${n.elementId}__value`),type:n.element.type,value:n.element.value,step:n.element.step,oninput:"this.reportValidity()",onKeyup:t[5]||(t[5]=(...s)=>r.emitEvent&&r.emitEvent(...s))},null,42,eH)],64)}const nH=Ke(JG,[["render",tH],["__scopeId","data-v-227001bb"]]),rH={name:"Button",props:{label:String,callback:Function,data:Object,type:String},setup(e){let t=e.type;t||(t="default");let n={};return e.data&&(n={[`data-${e.data.name}`]:e.data.value}),{buttonType:t,dataAttribute:n}}};function iH(e,t,n,r,i,o){return ue(),ve("div",Jl({class:`button button__${n.label} ${r.buttonType}`},r.dataAttribute,{onClick:t[0]||(t[0]=Ma((...s)=>n.callback&&n.callback(...s),["stop"]))}),rt(n.label),17)}const mb=Ke(rH,[["render",iH],["__scopeId","data-v-03846e4d"]]),oH={name:"ActionButtons",props:{actionTypes:Object,actions:Array},components:{Button:mb},setup(e){return{handleAction:n=>{const r=n.target.dataset.id,{type:i,instruction:o,parameters:s}=e.actions[r];e.actionTypes[i](o,s)}}}};const sH={class:"actions"};function aH(e,t,n,r,i,o){const s=pt("Button");return ue(),ve("div",sH,[(ue(!0),ve(je,null,ut(n.actions,(h,l)=>(ue(),Rt(s,{class:kt({disabled:h.disabled}),key:l,data:{name:"id",value:l},label:h.label,callback:h.disabled?()=>{}:r.handleAction},null,8,["class","data","label","callback"]))),128))])}const vb=Ke(oH,[["render",aH],["__scopeId","data-v-8b1e3451"]]),lH={props:{componentID:Number,storeObject:Object},components:{RangeFormField:FG,DropdownFormField:zG,CheckboxFormField:VG,ValueFormField:qG,DualSlider:nH,ActionButtons:vb},setup(e){const{store:t,getProperty:n,setProperty:r}=e.storeObject,o=`nodes__${t.state.currentNode}__components__${e.componentID}`,s=we(()=>n("taskData"));St(s,m=>{Object.keys(m).length&&r({path:`${o}__isValid`,value:!0})},{deep:!0});const h=n(`${o}__component__title`),l=we(()=>n(`${o}__component__form`)),u=m=>{const{classList:v,value:y,type:x,checked:$}=m.target,_=v[0],b=x==="checkbox"?$:y,R=`${o}__component__form__${_}`;r({path:R,value:b}),c()};let a=Un(n(`${o}__component__actions`));const c=()=>{a.value=a.value.map(m=>{const v=m.dependsOn.every(y=>{const x=document.querySelector(`input[class^="${y}"]`);return!Array.from(x.classList).includes("invalid")});return m.disabled=!v,m})},f=m=>{const y={parameters:Object.entries(l.value).reduce((x,[$,_])=>{const{formType:b,initial:R}=_;let M={...x,[$]:R};return b==="RangeFormField"&&(M[$]=[R.lowerValue,R.upperValue]),b==="ValueFormField"&&(M[$]=_.value),M},{})};return y.type=d.value,y.task=d.value,y.instruction=m,y},d=we(()=>n("currentTask"));return{elements:l,updateElement:u,actions:a,actionTypes:{fetchData:m=>{t.dispatch("fetchTaskData",{payload:f(m),endpoint:`${d.value}/${m}`})}},title:h}}};const cH={class:"parameter_form"},uH={class:"parameter_form_columns"},hH={class:"parameter_labels"},fH=["innerHTML"],dH={class:"parameter_fields"};function pH(e,t,n,r,i,o){const s=pt("ActionButtons"),h=K_("tooltip");return ue(),ve("div",cH,[_e("h2",null,rt(r.title),1),_e("div",uH,[_e("div",hH,[(ue(!0),ve(je,null,ut(r.elements,(l,u)=>Tr((ue(),ve("p",{key:u,innerHTML:l.label},null,8,fH)),[[h,l.description||"",void 0,{"left-center":!0}]])),128))]),_e("div",dH,[(ue(!0),ve(je,null,ut(r.elements,(l,u)=>(ue(),Rt(hv(l.formType),{onUpdateElement:r.updateElement,key:u,element:l,elementId:u,storeObject:n.storeObject,componentID:n.componentID},null,40,["onUpdateElement","element","elementId","storeObject","componentID"]))),128))])]),tt(s,{actions:r.actions,actionTypes:r.actionTypes},null,8,["actions","actionTypes"])])}const gH=Ke(lH,[["render",pH],["__scopeId","data-v-7f8204cc"]]),mH={props:{componentID:Number,storeObject:Object},components:{DifficultyPicker:kG,ParameterSelection:gH},setup(e){const{store:t,getProperty:n,setProperty:r}=e.storeObject,i=!1,o=we(()=>n("currentNode")),s=we(()=>n("taskData"));return St(s,()=>{r({path:`nodes__${o.value}__components__${e.componentID}__isValid`,value:!0})}),{isAdvancedUser:i,props:e}}};const vH={class:"taskConfiguration"};function yH(e,t,n,r,i,o){const s=pt("DifficultyPicker"),h=pt("ParameterSelection");return ue(),ve("div",vH,[r.isAdvancedUser?(ue(),Rt(s,{key:0,storeObject:n.storeObject,componentID:r.props.componentID},null,8,["storeObject","componentID"])):(ue(),Rt(h,{key:1,storeObject:n.storeObject,componentID:r.props.componentID},null,8,["storeObject","componentID"]))])}const wH=Ke(mH,[["render",yH]]),bH={components:{DOTGraph:Oi},props:{componentID:Number,storeObject:Object},setup(e){const{getProperty:t,setProperty:n}=e.storeObject,i=`nodes__${t("currentNode")}__components__${e.componentID}`,o=t(`${i}__dependencies`),s=we(()=>{const y=t(o.VisualGraphTraversal.paths),x=/dir="back"/.test(t(o.VisualGraphTraversal.dotDescription)),$=t(o.VisualGraphTraversal.nodes),_=Object.values($).reduce((M,k)=>(Object.keys(k).includes("label")&&(M[k.label]=k),M),{}),b=y.reduce((M,k)=>(k.forEach(S=>{const E=`${S.between}`;Object.keys(M).includes(E)?M[E]+=1:M[E]=1}),M),{}),R=Object.entries(b).filter(([M,k])=>k>1).reduce((M,[k,S])=>({...M,[k]:S}),{});return{nodes:_,paths:y,reoccurringEdges:R,reverseEdges:x}}),h=t(`${i}__component__colorCoding`),l=we(()=>t(`${i}__component__selectedPaths`));Ht(()=>{let y=document.querySelectorAll(".traversal .edge");const x=setInterval(()=>{y=document.querySelectorAll(".traversal .edge"),y.length&&(clearInterval(x),Array.from(y).forEach($=>$.addEventListener("click",c)))},500)});let u=[],a=0;const c=y=>{const{paths:x,reoccurringEdges:$,reverseEdges:_}=s.value;let b=Object.values(s.value.nodes);const R=y.currentTarget,{complete:M,parentNode:k,childNode:S,weight:E}=m(R);if(Array.from(R.classList).includes("complete"))return;let I=[];if(u.length&&(I=p([b[k].id,b[S].id],u)),!I.length||!u.length){const w=Array.from(document.querySelectorAll(".edge.selected"));w.forEach(T=>{T.classList.remove("selected")}),g(h.standard,w),I=p([b[k].id,b[S].id],x)}R.classList.add("selected");const C=Array.from(document.querySelectorAll(".edge.selected"));v(C,I,b)?(g(h.completed,C),C.forEach(w=>{const{parentNode:T,childNode:O}=m(w),N=_?`${[b[O].id,b[T].id]}`:`${[b[T].id,b[O].id]}`;Object.keys($).includes(N)&&$[N]!=0?($[N]-=1,$[N]===0?(w.classList.remove("partial"),w.classList.add("complete")):(w.classList.add("partial"),w.classList.remove("complete"),g(h.partial,[w])),w.classList.remove("selected")):(w.classList.remove("selected"),w.classList.add("complete"))}),f(C,_),a+=1,u=[]):Array.from(R.classList).includes("complete")||(f(C,_),g(h.selected,[R]),u=I)},f=(y,x)=>{const $=y.map(_=>{const{parentNode:b,childNode:R,weight:M}=m(_);return d(b,R,M,x)});if(a===l.value.length)n({path:`${i}__component__selectedPaths`,value:[...l.value,$]});else{const _=[...l.value.slice(0,l.value.length-1),$];n({path:`${i}__component__selectedPaths`,value:_})}},d=(y,x,$,_)=>({between:_?[x,y]:[y,x],weight:$}),p=(y,x)=>x.reduce(($,_)=>(_.some(R=>RG(y,R.between))&&$.push(_),$),[]),g=(y,x)=>{x.forEach($=>{$.querySelector("path").setAttribute("stroke",y),$.querySelector("polygon").setAttribute("fill",y),$.querySelector("polygon").setAttribute("stroke",y)})},m=y=>{const{reverseEdges:x}=s.value;let[$,_,b]=y.querySelector("title").textContent.match(/(.*)->(.*)/);if(x){const M=b;b=_,b=M}const R=y.querySelector("text").textContent;return{complete:$,parentNode:_,childNode:b,weight:R}},v=(y,x,$)=>x.length!=1||x[0].length!=y.length?!1:y.every(b=>{const{complete:R,parentNode:M,childNode:k,weight:S}=m(b);return!!p([$[M].id,$[k].id],x).length});return{}}};const _H={class:"traversal"};function EH(e,t,n,r,i,o){const s=pt("DOTGraph");return ue(),ve("div",_H,[tt(s,{componentID:n.componentID,storeObject:n.storeObject},null,8,["componentID","storeObject"])])}const $H=Ke(bH,[["render",EH],["__scopeId","data-v-c08ca7f5"]]),xH={props:{componentID:Number,storeObject:Object},setup(e){const{getProperty:t}=e.storeObject,r=`nodes__${we(()=>t("currentNode")).value}__components__${e.componentID}`,i=t(`${r}__dependencies`),o=t(i.PathDisplay.nodes);Object.values(o).reduce((l,u)=>(Object.keys(u).includes("label")&&(l[u.label]=u),l),{});const s=we(()=>t(i.PathDisplay.selectedPaths)),h=we(()=>t(i.PathDisplay.selectedPaths).reduce((u,a)=>{const c=a.reduce((f,d,p)=>(p===0&&f.push({label:d.between[0],value:o[d.between[0]].value}),f.push({weight:d.weight}),f.push({label:d.between[1],value:o[d.between[1]].value}),f),[]);return[...u,c]},[]));return{selectedPaths:s,selectedPath:h,nodes:o}}};const SH=e=>($i("data-v-420aceb9"),e=e(),xi(),e),CH={class:"pathDisplay"},LH={key:0,class:"node"},MH={class:"label"},TH={class:"value"},OH={key:1,class:"edge"},kH={class:"weight"},RH=SH(()=>_e("div",{class:"arrow"},"⇝",-1));function DH(e,t,n,r,i,o){return ue(),ve("div",CH,[(ue(!0),ve(je,null,ut(r.selectedPath,(s,h)=>(ue(),ve("div",{class:"path",key:h},[(ue(!0),ve(je,null,ut(s,(l,u)=>(ue(),ve("div",{key:u},[l.hasOwnProperty("label")?(ue(),ve("div",LH,[_e("div",MH,rt(l.label),1),_e("div",TH,rt(l.value),1)])):(ue(),ve("div",OH,[_e("div",kH,rt(l.weight),1),RH]))]))),128))]))),128))])}const IH=Ke(xH,[["render",DH],["__scopeId","data-v-420aceb9"]]);var yb={exports:{}};(function(e,t){(function(){var n="ace",r=function(){return this}();!r&&typeof window<"u"&&(r=window);var i=function(a,c,f){if(typeof a!="string"){i.original?i.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(f=c),i.modules[a]||(i.payloads[a]=f,i.modules[a]=null)};i.modules={},i.payloads={};var o=function(a,c,f){if(typeof c=="string"){var d=l(a,c);if(d!=null)return f&&f(),d}else if(Object.prototype.toString.call(c)==="[object Array]"){for(var p=[],g=0,m=c.length;gl.length)&&(h=l.length),h-=s.length;var u=l.indexOf(s,h);return u!==-1&&u===h}),String.prototype.repeat||o(String.prototype,"repeat",function(s){for(var h="",l=this;s>0;)s&1&&(h+=l),(s>>=1)&&(l+=l);return h}),String.prototype.includes||o(String.prototype,"includes",function(s,h){return this.indexOf(s,h)!=-1}),Object.assign||(Object.assign=function(s){if(s==null)throw new TypeError("Cannot convert undefined or null to object");for(var h=Object(s),l=1;l>>0,u=arguments[1],a=u>>0,c=a<0?Math.max(l+a,0):Math.min(a,l),f=arguments[2],d=f===void 0?l:f>>0,p=d<0?Math.max(l+d,0):Math.min(d,l);c0;)l&1&&(u+=h),(l>>=1)&&(h+=h);return u};var o=/^\s\s*/,s=/\s\s*$/;r.stringTrimLeft=function(h){return h.replace(o,"")},r.stringTrimRight=function(h){return h.replace(s,"")},r.copyObject=function(h){var l={};for(var u in h)l[u]=h[u];return l},r.copyArray=function(h){for(var l=[],u=0,a=h.length;u=0?parseFloat((h.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((h.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),r.isOldIE=r.isIE&&r.isIE<9,r.isGecko=r.isMozilla=h.match(/ Gecko\/\d+/),r.isOpera=typeof opera=="object"&&Object.prototype.toString.call(window.opera)=="[object Opera]",r.isWebKit=parseFloat(h.split("WebKit/")[1])||void 0,r.isChrome=parseFloat(h.split(" Chrome/")[1])||void 0,r.isEdge=parseFloat(h.split(" Edge/")[1])||void 0,r.isAIR=h.indexOf("AdobeAIR")>=0,r.isAndroid=h.indexOf("Android")>=0,r.isChromeOS=h.indexOf(" CrOS ")>=0,r.isIOS=/iPad|iPhone|iPod/.test(h)&&!window.MSStream,r.isIOS&&(r.isMac=!0),r.isMobile=r.isIOS||r.isAndroid}),ace.define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],function(n,r,i){var o=n("./useragent"),s="http://www.w3.org/1999/xhtml";r.buildDom=function f(d,p,g){if(typeof d=="string"&&d){var m=document.createTextNode(d);return p&&p.appendChild(m),m}if(!Array.isArray(d))return d&&d.appendChild&&p&&p.appendChild(d),d;if(typeof d[0]!="string"||!d[0]){for(var v=[],y=0;y"u")){if(l){if(p)u();else if(p===!1)return l.push([f,d])}if(!h){var g=p;!p||!p.getRootNode?g=document:(g=p.getRootNode(),(!g||g==p)&&(g=document));var m=g.ownerDocument||g;if(d&&r.hasCssString(d,g))return null;d&&(f+=` -/*# sourceURL=ace/css/`+d+" */");var v=r.createElement("style");v.appendChild(m.createTextNode(f)),d&&(v.id=d),g==m&&(g=r.getDocumentHead(m)),g.insertBefore(v,g.firstChild)}}}if(r.importCssString=a,r.importCssStylsheet=function(f,d){r.buildDom(["link",{rel:"stylesheet",href:f}],r.getDocumentHead(d))},r.scrollbarWidth=function(f){var d=r.createElement("ace_inner");d.style.width="100%",d.style.minWidth="0px",d.style.height="200px",d.style.display="block";var p=r.createElement("ace_outer"),g=p.style;g.position="absolute",g.left="-10000px",g.overflow="hidden",g.width="200px",g.minWidth="0px",g.height="150px",g.display="block",p.appendChild(d);var m=f&&f.documentElement||document&&document.documentElement;if(!m)return 0;m.appendChild(p);var v=d.offsetWidth;g.overflow="scroll";var y=d.offsetWidth;return v===y&&(y=p.clientWidth),m.removeChild(p),v-y},r.computedStyle=function(f,d){return window.getComputedStyle(f,"")||{}},r.setStyle=function(f,d,p){f[d]!==p&&(f[d]=p)},r.HAS_CSS_ANIMATION=!1,r.HAS_CSS_TRANSFORMS=!1,r.HI_DPI=o.isWin?typeof window<"u"&&window.devicePixelRatio>=1.5:!0,o.isChromeOS&&(r.HI_DPI=!1),typeof document<"u"){var c=document.createElement("div");r.HI_DPI&&c.style.transform!==void 0&&(r.HAS_CSS_TRANSFORMS=!0),!o.isEdge&&typeof c.style.animationName<"u"&&(r.HAS_CSS_ANIMATION=!0),c=null}r.HAS_CSS_TRANSFORMS?r.translate=function(f,d,p){f.style.transform="translate("+Math.round(d)+"px, "+Math.round(p)+"px)"}:r.translate=function(f,d,p){f.style.top=Math.round(p)+"px",f.style.left=Math.round(d)+"px"}}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(n,r,i){/* -* based on code from: -* -* @license RequireJS text 0.25.0 Copyright (c) 2010-2011, The Dojo Foundation All Rights Reserved. -* Available via the MIT or new BSD license. -* see: http://github.com/jrburke/requirejs for details -*/var o=n("./dom");r.get=function(s,h){var l=new XMLHttpRequest;l.open("GET",s,!0),l.onreadystatechange=function(){l.readyState===4&&h(l.responseText)},l.send(null)},r.loadScript=function(s,h){var l=o.getDocumentHead(),u=document.createElement("script");u.src=s,l.appendChild(u),u.onload=u.onreadystatechange=function(a,c){(c||!u.readyState||u.readyState=="loaded"||u.readyState=="complete")&&(u=u.onload=u.onreadystatechange=null,c||h())}},r.qualifyURL=function(s){var h=document.createElement("a");return h.href=s,h.href}}),ace.define("ace/lib/oop",["require","exports","module"],function(n,r,i){r.inherits=function(o,s){o.super_=s,o.prototype=Object.create(s.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}})},r.mixin=function(o,s){for(var h in s)o[h]=s[h];return o},r.implement=function(o,s){r.mixin(o,s)}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(n,r,i){var o={},s=function(){this.propagationStopped=!0},h=function(){this.defaultPrevented=!0};o._emit=o._dispatchEvent=function(l,u){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var a=this._eventRegistry[l]||[],c=this._defaultHandlers[l];if(!(!a.length&&!c)){(typeof u!="object"||!u)&&(u={}),u.type||(u.type=l),u.stopPropagation||(u.stopPropagation=s),u.preventDefault||(u.preventDefault=h),a=a.slice();for(var f=0;f1&&(m=p[p.length-2]);var y=u[d+"Path"];return y==null?y=u.basePath:g=="/"&&(d=g=""),y&&y.slice(-1)!="/"&&(y+="/"),y+d+g+m+this.get("suffix")},r.setModuleUrl=function(f,d){return u.$moduleUrls[f]=d};var a=function(f,d){return f==="ace/theme/textmate"||f==="./theme/textmate"?d(null,n("./theme/textmate")):console.error("loader is not configured")};r.setLoader=function(f){a=f},r.dynamicModules=Object.create(null),r.$loading={},r.loadModule=function(f,d){var p,g;Array.isArray(f)&&(g=f[0],f=f[1]);var m=function(v){if(v&&!r.$loading[f])return d&&d(v);if(r.$loading[f]||(r.$loading[f]=[]),r.$loading[f].push(d),!(r.$loading[f].length>1)){var y=function(){a(f,function(x,$){r._emit("load.module",{name:f,module:$});var _=r.$loading[f];r.$loading[f]=null,_.forEach(function(b){b&&b($)})})};if(!r.get("packaged"))return y();s.loadScript(r.moduleUrl(f,g),y),c()}};if(r.dynamicModules[f])r.dynamicModules[f]().then(function(v){v.default?m(v.default):m(v)});else{try{p=n(f)}catch{}m(p)}},r.setModuleLoader=function(f,d){r.dynamicModules[f]=d};var c=function(){!u.basePath&&!u.workerPath&&!u.modePath&&!u.themePath&&!Object.keys(u.$moduleUrls).length&&(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),c=function(){})};r.version="1.22.0"}),ace.define("ace/loader_build",["require","exports","module","ace/lib/fixoldbrowsers","ace/config"],function(n,r,i){n("./lib/fixoldbrowsers");var o=n("./config");o.setLoader(function(u,a){n([u],function(c){a(null,c)})});var s=function(){return this||typeof window<"u"&&window}();i.exports=function(u){o.init=h,u.require=n},h(!0);function h(u){if(!(!s||!s.document)){o.set("packaged",u||n.packaged||i.packaged||s.define&&(void 0).packaged);var a={},c="",f=document.currentScript||document._currentScript,d=f&&f.ownerDocument||document;f&&f.src&&(c=f.src.split(/[?#]/)[0].split("/").slice(0,-1).join("/")||"");for(var p=d.getElementsByTagName("script"),g=0;g ["+this.end.row+"/"+this.end.column+"]"},h.prototype.contains=function(l,u){return this.compare(l,u)==0},h.prototype.compareRange=function(l){var u,a=l.end,c=l.start;return u=this.compare(a.row,a.column),u==1?(u=this.compare(c.row,c.column),u==1?2:u==0?1:0):u==-1?-2:(u=this.compare(c.row,c.column),u==-1?-1:u==1?42:0)},h.prototype.comparePoint=function(l){return this.compare(l.row,l.column)},h.prototype.containsRange=function(l){return this.comparePoint(l.start)==0&&this.comparePoint(l.end)==0},h.prototype.intersects=function(l){var u=this.compareRange(l);return u==-1||u==0||u==1},h.prototype.isEnd=function(l,u){return this.end.row==l&&this.end.column==u},h.prototype.isStart=function(l,u){return this.start.row==l&&this.start.column==u},h.prototype.setStart=function(l,u){typeof l=="object"?(this.start.column=l.column,this.start.row=l.row):(this.start.row=l,this.start.column=u)},h.prototype.setEnd=function(l,u){typeof l=="object"?(this.end.column=l.column,this.end.row=l.row):(this.end.row=l,this.end.column=u)},h.prototype.inside=function(l,u){return this.compare(l,u)==0?!(this.isEnd(l,u)||this.isStart(l,u)):!1},h.prototype.insideStart=function(l,u){return this.compare(l,u)==0?!this.isEnd(l,u):!1},h.prototype.insideEnd=function(l,u){return this.compare(l,u)==0?!this.isStart(l,u):!1},h.prototype.compare=function(l,u){return!this.isMultiLine()&&l===this.start.row?uthis.end.column?1:0:lthis.end.row?1:this.start.row===l?u>=this.start.column?0:-1:this.end.row===l?u<=this.end.column?0:1:0},h.prototype.compareStart=function(l,u){return this.start.row==l&&this.start.column==u?-1:this.compare(l,u)},h.prototype.compareEnd=function(l,u){return this.end.row==l&&this.end.column==u?1:this.compare(l,u)},h.prototype.compareInside=function(l,u){return this.end.row==l&&this.end.column==u?1:this.start.row==l&&this.start.column==u?-1:this.compare(l,u)},h.prototype.clipRows=function(l,u){if(this.end.row>u)var a={row:u+1,column:0};else if(this.end.rowu)var c={row:u+1,column:0};else if(this.start.row1?(M++,M>4&&(M=1)):M=1,s.isIE){var T=Math.abs(w.clientX-k)>5||Math.abs(w.clientY-S)>5;(!E||T)&&(M=1),E&&clearTimeout(E),E=setTimeout(function(){E=null},$[M-1]||600),M==1&&(k=w.clientX,S=w.clientY)}if(w._clicks=M,_[b]("mousedown",w),M>4)M=0;else if(M>1)return _[b](I[M],w)}Array.isArray(x)||(x=[x]),x.forEach(function(w){d(w,"mousedown",C,R)})};var g=function(x){return 0|(x.ctrlKey?1:0)|(x.altKey?2:0)|(x.shiftKey?4:0)|(x.metaKey?8:0)};r.getModifierString=function(x){return o.KEY_MODS[g(x)]};function m(x,$,_){var b=g($);if(!s.isMac&&h){if($.getModifierState&&($.getModifierState("OS")||$.getModifierState("Win"))&&(b|=8),h.altGr)if((3&b)!=3)h.altGr=0;else return;if(_===18||_===17){var R="location"in $?$.location:$.keyLocation;if(_===17&&R===1)h[_]==1&&(l=$.timeStamp);else if(_===18&&b===3&&R===2){var M=$.timeStamp-l;M<50&&(h.altGr=!0)}}}if(_ in o.MODIFIER_KEYS&&(_=-1),!b&&_===13){var R="location"in $?$.location:$.keyLocation;if(R===3&&(x($,b,-_),$.defaultPrevented))return}if(s.isChromeOS&&b&8){if(x($,b,_),$.defaultPrevented)return;b&=-9}return!b&&!(_ in o.FUNCTION_KEYS)&&!(_ in o.PRINTABLE_KEYS)?!1:x($,b,_)}r.addCommandKeyListener=function(x,$,_){if(s.isOldGecko||s.isOpera&&!("KeyboardEvent"in window)){var b=null;d(x,"keydown",function(M){b=M.keyCode},_),d(x,"keypress",function(M){return m($,M,b)},_)}else{var R=null;d(x,"keydown",function(M){h[M.keyCode]=(h[M.keyCode]||0)+1;var k=m($,M,M.keyCode);return R=M.defaultPrevented,k},_),d(x,"keypress",function(M){R&&(M.ctrlKey||M.altKey||M.shiftKey||M.metaKey)&&(r.stopEvent(M),R=null)},_),d(x,"keyup",function(M){h[M.keyCode]=null},_),h||(v(),d(window,"focus",v))}};function v(){h=Object.create(null)}if(typeof window=="object"&&window.postMessage&&!s.isOldIE){var y=1;r.nextTick=function(x,$){$=$||window;var _="zero-timeout-message-"+y++,b=function(R){R.data==_&&(r.stopPropagation(R),p($,"message",b),x())};d($,"message",b),$.postMessage(_,"*")}}r.$idleBlocked=!1,r.onIdle=function(x,$){return setTimeout(function _(){r.$idleBlocked?setTimeout(_,100):x()},$)},r.$idleBlockId=null,r.blockIdle=function(x){r.$idleBlockId&&clearTimeout(r.$idleBlockId),r.$idleBlocked=!0,r.$idleBlockId=setTimeout(function(){r.$idleBlocked=!1},x||100)},r.nextFrame=typeof window=="object"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),r.nextFrame?r.nextFrame=r.nextFrame.bind(window):r.nextFrame=function(x){setTimeout(x,17)}}),ace.define("ace/clipboard",["require","exports","module"],function(n,r,i){var o;i.exports={lineMode:!1,pasteCancelled:function(){return o&&o>Date.now()-50?!0:o=!1},cancel:function(){o=Date.now()}}}),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/config","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],function(n,r,i){var o=n("../lib/event"),s=n("../config").nls,h=n("../lib/useragent"),l=n("../lib/dom"),u=n("../lib/lang"),a=n("../clipboard"),c=h.isChrome<18,f=h.isIE,d=h.isChrome>63,p=400,g=n("../lib/keys"),m=g.KEY_MODS,v=h.isIOS,y=v?/\s/:/\n/,x=h.isMobile,$=function(_,b){var R=l.createElement("textarea");R.className="ace_text-input",R.setAttribute("wrap","off"),R.setAttribute("autocorrect","off"),R.setAttribute("autocapitalize","off"),R.setAttribute("spellcheck",!1),R.style.opacity="0",_.insertBefore(R,_.firstChild);var M=!1,k=!1,S=!1,E=!1,I="";x||(R.style.fontSize="1px");var C=!1,w=!1,T="",O=0,N=0,B=0;try{var H=document.activeElement===R}catch{}this.setAriaOptions=function(ie){ie.activeDescendant?(R.setAttribute("aria-haspopup","true"),R.setAttribute("aria-autocomplete",ie.inline?"both":"list"),R.setAttribute("aria-activedescendant",ie.activeDescendant)):(R.setAttribute("aria-haspopup","false"),R.setAttribute("aria-autocomplete","both"),R.removeAttribute("aria-activedescendant")),ie.role&&R.setAttribute("role",ie.role)},this.setAriaLabel=function(){if(b.session&&b.renderer.enableKeyboardAccessibility){var ie=b.session.selection.cursor.row;R.setAttribute("aria-roledescription",s("editor")),R.setAttribute("aria-label",s("Cursor at row $0",[ie+1]))}else R.removeAttribute("aria-roledescription"),R.removeAttribute("aria-label")},this.setAriaOptions({role:"textbox"}),this.setAriaLabel(),o.addListener(R,"blur",function(ie){w||(b.onBlur(ie),H=!1,x&&!v&&document.removeEventListener("selectionchange",G))},b),o.addListener(R,"focus",function(ie){if(!w){if(H=!0,h.isEdge)try{if(!document.hasFocus())return}catch{}b.onFocus(ie),h.isEdge?setTimeout(z):z(),x&&!v&&document.addEventListener("selectionchange",G)}},b),this.$focusScroll=!1,this.focus=function(){if(this.setAriaLabel(),I||d||this.$focusScroll=="browser")return R.focus({preventScroll:!0});var ie=R.style.top;R.style.position="fixed",R.style.top="0px";try{var le=R.getBoundingClientRect().top!=0}catch{return}var he=[];if(le)for(var $e=R.parentElement;$e&&$e.nodeType==1;)he.push($e),$e.setAttribute("ace_nocontext",!0),!$e.parentElement&&$e.getRootNode?$e=$e.getRootNode().host:$e=$e.parentElement;R.focus({preventScroll:!0}),le&&he.forEach(function(Oe){Oe.removeAttribute("ace_nocontext")}),setTimeout(function(){R.style.position="",R.style.top=="0px"&&(R.style.top=ie)},0)},this.blur=function(){R.blur()},this.isFocused=function(){return H},b.on("beforeEndOperation",function(){var ie=b.curOp,le=ie&&ie.command&&ie.command.name;if(le!="insertstring"){var he=le&&(ie.docChanged||ie.selectionChanged);S&&he&&(T=R.value="",Z()),z()}});var z=v?function(ie){if(!(!H||M&&!ie||E)){ie||(ie="");var le=` - ab`+ie+`cde fg -`;le!=R.value&&(R.value=T=le);var he=4,$e=4+(ie.length||(b.selection.isEmpty()?0:1));(O!=he||N!=$e)&&R.setSelectionRange(he,$e),O=he,N=$e}}:function(){if(!(S||E)&&!(!H&&!Q)){S=!0;var ie=0,le=0,he="";if(b.session){var $e=b.selection,Oe=$e.getRange(),ke=$e.cursor.row;if(ie=Oe.start.column,le=Oe.end.column,he=b.session.getLine(ke),Oe.start.row!=ke){var Ae=b.session.getLine(ke-1);ie=Oe.start.rowke+1?Ge.length:le,le+=he.length+1,he=he+` -`+Ge}else x&&ke>0&&(he=` -`+he,le+=1,ie+=1);he.length>p&&(ie=T.length&&ie.value===T&&T&&ie.selectionEnd!==N},W=function(ie){S||(M?M=!1:F(R)?(b.selectAll(),z()):x&&R.selectionStart!=O&&z())};function G(ie){if((!R||!R.parentNode)&&document.removeEventListener("selectionchange",G),!S&&R.selectionStart===R.selectionEnd){var le=R.selectionStart-O,he=N-O;le>0?le=Math.max(le-he,1):le===0&&he&&(le=-1);for(var $e=Math.abs(le),Oe=le>0?g.right:g.left,ke=0;ke<$e;ke++)b.onCommandKey({},0,Oe)}}var U=null;this.setInputHandler=function(ie){U=ie},this.getInputHandler=function(){return U};var Q=!1,ee=function(ie,le){if(Q&&(Q=!1),k)return z(),ie&&b.onPaste(ie),k=!1,"";for(var he=R.selectionStart,$e=R.selectionEnd,Oe=O,ke=T.length-N,Ae=ie,Ge=ie.length-he,ze=ie.length-$e,Ue=0;Oe>0&&T[Ue]==ie[Ue];)Ue++,Oe--;for(Ae=Ae.slice(Ue),Ue=1;ke>0&&T.length-Ue>O-1&&T[T.length-Ue]==ie[ie.length-Ue];)Ue++,ke--;Ge-=Ue-1,ze-=Ue-1;var dt=Ae.length-Ue+1;if(dt<0&&(Oe=-dt,dt=0),Ae=Ae.slice(0,dt),!le&&!Ae&&!Ge&&!Oe&&!ke&&!ze)return"";E=!0;var en=!1;return h.isAndroid&&Ae==". "&&(Ae=" ",en=!0),Ae&&!Oe&&!ke&&!Ge&&!ze||C?b.onTextInput(Ae):b.onTextInput(Ae,{extendLeft:Oe,extendRight:ke,restoreStart:Ge,restoreEnd:ze}),E=!1,T=ie,O=he,N=$e,B=ze,en?` -`:Ae},V=function(ie){if(S)return J();if(ie&&ie.inputType){if(ie.inputType=="historyUndo")return b.execCommand("undo");if(ie.inputType=="historyRedo")return b.execCommand("redo")}var le=R.value,he=ee(le,!0);(le.length>p+100||y.test(he)||x&&O<1&&O==N)&&z()},q=function(ie,le,he){var $e=ie.clipboardData||window.clipboardData;if(!(!$e||c)){var Oe=f||he?"Text":"text/plain";try{return le?$e.setData(Oe,le)!==!1:$e.getData(Oe)}catch(ke){if(!he)return q(ke,le,!0)}}},re=function(ie,le){var he=b.getCopyText();if(!he)return o.preventDefault(ie);q(ie,he)?(v&&(z(he),M=he,setTimeout(function(){M=!1},10)),le?b.onCut():b.onCopy(),o.preventDefault(ie)):(M=!0,R.value=he,R.select(),setTimeout(function(){M=!1,z(),le?b.onCut():b.onCopy()}))},se=function(ie){re(ie,!0)},ge=function(ie){re(ie,!1)},K=function(ie){var le=q(ie);a.pasteCancelled()||(typeof le=="string"?(le&&b.onPaste(le,ie),h.isIE&&setTimeout(z),o.preventDefault(ie)):(R.value="",k=!0))};o.addCommandKeyListener(R,b.onCommandKey.bind(b),b),o.addListener(R,"select",W,b),o.addListener(R,"input",V,b),o.addListener(R,"cut",se,b),o.addListener(R,"copy",ge,b),o.addListener(R,"paste",K,b),(!("oncut"in R)||!("oncopy"in R)||!("onpaste"in R))&&o.addListener(_,"keydown",function(ie){if(!(h.isMac&&!ie.metaKey||!ie.ctrlKey))switch(ie.keyCode){case 67:ge(ie);break;case 86:K(ie);break;case 88:se(ie);break}},b);var Y=function(ie){if(!(S||!b.onCompositionStart||b.$readOnly)&&(S={},!C)){ie.data&&(S.useTextareaForIME=!1),setTimeout(J,0),b._signal("compositionStart"),b.on("mousedown",D);var le=b.getSelectionRange();le.end.row=le.start.row,le.end.column=le.start.column,S.markerRange=le,S.selectionStart=O,b.onCompositionStart(S),S.useTextareaForIME?(T=R.value="",O=0,N=0):(R.msGetInputContext&&(S.context=R.msGetInputContext()),R.getInputContext&&(S.context=R.getInputContext()))}},J=function(){if(!(!S||!b.onCompositionUpdate||b.$readOnly)){if(C)return D();if(S.useTextareaForIME)b.onCompositionUpdate(R.value);else{var ie=R.value;ee(ie),S.markerRange&&(S.context&&(S.markerRange.start.column=S.selectionStart=S.context.compositionStartOffset),S.markerRange.end.column=S.markerRange.start.column+N-S.selectionStart+B)}}},Z=function(ie){!b.onCompositionEnd||b.$readOnly||(S=!1,b.onCompositionEnd(),b.off("mousedown",D),ie&&V())};function D(){w=!0,R.blur(),R.focus(),w=!1}var oe=u.delayedCall(J,50).schedule.bind(null,null);function me(ie){ie.keyCode==27&&R.value.lengthN&&T[ze]==` -`?Ue=g.end:GeN&&T.slice(0,ze).split(` -`).length>2?Ue=g.down:ze>N&&T[ze-1]==" "?(Ue=g.right,dt=m.option):(ze>N||ze==N&&N!=O&&Ge==ze)&&(Ue=g.right),Ge!==ze&&(dt|=m.shift),Ue){var en=le.onCommandKey({},dt,Ue);if(!en&&le.commands){Ue=g.keyCodeToString(Ue);var gt=le.commands.findKeyCommand(dt,Ue);gt&&le.execCommand(gt)}O=Ge,N=ze,z("")}}};document.addEventListener("selectionchange",ke),le.on("destroy",function(){document.removeEventListener("selectionchange",ke)})}this.destroy=function(){R.parentElement&&R.parentElement.removeChild(R)}};r.TextInput=$,r.$setUserAgentForTests=function(_,b){x=_,v=b}}),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"],function(n,r,i){var o=n("../lib/useragent"),s=0,h=550,l=function(){function c(f){f.$clickSelection=null;var d=f.editor;d.setDefaultHandler("mousedown",this.onMouseDown.bind(f)),d.setDefaultHandler("dblclick",this.onDoubleClick.bind(f)),d.setDefaultHandler("tripleclick",this.onTripleClick.bind(f)),d.setDefaultHandler("quadclick",this.onQuadClick.bind(f)),d.setDefaultHandler("mousewheel",this.onMouseWheel.bind(f));var p=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];p.forEach(function(g){f[g]=this[g]},this),f.selectByLines=this.extendSelectionBy.bind(f,"getLineRange"),f.selectByWords=this.extendSelectionBy.bind(f,"getWordRange")}return c.prototype.onMouseDown=function(f){var d=f.inSelection(),p=f.getDocumentPosition();this.mousedownEvent=f;var g=this.editor,m=f.getButton();if(m!==0){var v=g.getSelectionRange(),y=v.isEmpty();(y||m==1)&&g.selection.moveToPosition(p),m==2&&(g.textInput.onContextMenu(f.domEvent),o.isMozilla||f.preventDefault());return}if(this.mousedownEvent.time=Date.now(),d&&!g.isFocused()&&(g.focus(),this.$focusTimeout&&!this.$clickSelection&&!g.inMultiSelectMode)){this.setState("focusWait"),this.captureMouse(f);return}return this.captureMouse(f),this.startSelect(p,f.domEvent._clicks>1),f.preventDefault()},c.prototype.startSelect=function(f,d){f=f||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var p=this.editor;this.mousedownEvent&&(this.mousedownEvent.getShiftKey()?p.selection.selectToPosition(f):d||p.selection.moveToPosition(f),d||this.select(),p.setStyle("ace_selecting"),this.setState("select"))},c.prototype.select=function(){var f,d=this.editor,p=d.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var g=this.$clickSelection.comparePoint(p);if(g==-1)f=this.$clickSelection.end;else if(g==1)f=this.$clickSelection.start;else{var m=a(this.$clickSelection,p);p=m.cursor,f=m.anchor}d.selection.setSelectionAnchor(f.row,f.column)}d.selection.selectToPosition(p),d.renderer.scrollCursorIntoView()},c.prototype.extendSelectionBy=function(f){var d,p=this.editor,g=p.renderer.screenToTextCoordinates(this.x,this.y),m=p.selection[f](g.row,g.column);if(this.$clickSelection){var v=this.$clickSelection.comparePoint(m.start),y=this.$clickSelection.comparePoint(m.end);if(v==-1&&y<=0)d=this.$clickSelection.end,(m.end.row!=g.row||m.end.column!=g.column)&&(g=m.start);else if(y==1&&v>=0)d=this.$clickSelection.start,(m.start.row!=g.row||m.start.column!=g.column)&&(g=m.end);else if(v==-1&&y==1)g=m.end,d=m.start;else{var x=a(this.$clickSelection,g);g=x.cursor,d=x.anchor}p.selection.setSelectionAnchor(d.row,d.column)}p.selection.selectToPosition(g),p.renderer.scrollCursorIntoView()},c.prototype.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting")},c.prototype.focusWait=function(){var f=u(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),d=Date.now();(f>s||d-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},c.prototype.onDoubleClick=function(f){var d=f.getDocumentPosition(),p=this.editor,g=p.session,m=g.getBracketRange(d);m?(m.isEmpty()&&(m.start.column--,m.end.column++),this.setState("select")):(m=p.selection.getWordRange(d.row,d.column),this.setState("selectByWords")),this.$clickSelection=m,this.select()},c.prototype.onTripleClick=function(f){var d=f.getDocumentPosition(),p=this.editor;this.setState("selectByLines");var g=p.getSelectionRange();g.isMultiLine()&&g.contains(d.row,d.column)?(this.$clickSelection=p.selection.getLineRange(g.start.row),this.$clickSelection.end=p.selection.getLineRange(g.end.row).end):this.$clickSelection=p.selection.getLineRange(d.row),this.select()},c.prototype.onQuadClick=function(f){var d=this.editor;d.selectAll(),this.$clickSelection=d.getSelectionRange(),this.setState("selectAll")},c.prototype.onMouseWheel=function(f){if(!f.getAccelKey()){f.getShiftKey()&&f.wheelY&&!f.wheelX&&(f.wheelX=f.wheelY,f.wheelY=0);var d=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var p=this.$lastScroll,g=f.domEvent.timeStamp,m=g-p.t,v=m?f.wheelX/m:p.vx,y=m?f.wheelY/m:p.vy;m=1&&d.renderer.isScrollableBy(f.wheelX*f.speed,0)&&($=!0),x<=1&&d.renderer.isScrollableBy(0,f.wheelY*f.speed)&&($=!0),$)p.allowed=g;else if(g-p.allowed=p.length&&(p=void 0),{value:p&&p[v++],done:!p}}};throw new TypeError(g?"Object is not iterable.":"Symbol.iterator is not defined.")},h=n("./lib/dom"),l=n("./range").Range,u="ace_tooltip",a=function(){function p(g){this.isOpen=!1,this.$element=null,this.$parentNode=g}return p.prototype.$init=function(){return this.$element=h.createElement("div"),this.$element.className=u,this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},p.prototype.getElement=function(){return this.$element||this.$init()},p.prototype.setText=function(g){this.getElement().textContent=g},p.prototype.setHtml=function(g){this.getElement().innerHTML=g},p.prototype.setPosition=function(g,m){this.getElement().style.left=g+"px",this.getElement().style.top=m+"px"},p.prototype.setClassName=function(g){h.addCssClass(this.getElement(),g)},p.prototype.setTheme=function(g){this.$element.className=u+" "+(g.isDark?"ace_dark ":"")+(g.cssClass||"")},p.prototype.show=function(g,m,v){g!=null&&this.setText(g),m!=null&&v!=null&&this.setPosition(m,v),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},p.prototype.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.getElement().className=u,this.isOpen=!1)},p.prototype.getHeight=function(){return this.getElement().offsetHeight},p.prototype.getWidth=function(){return this.getElement().offsetWidth},p.prototype.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)},p}(),c=function(){function p(){this.popups=[]}return p.prototype.addPopup=function(g){this.popups.push(g),this.updatePopups()},p.prototype.removePopup=function(g){var m=this.popups.indexOf(g);m!==-1&&(this.popups.splice(m,1),this.updatePopups())},p.prototype.updatePopups=function(){var g,m,v,y;this.popups.sort(function(E,I){return I.priority-E.priority});var x=[];try{for(var $=s(this.popups),_=$.next();!_.done;_=$.next()){var b=_.value,R=!0;try{for(var M=(v=void 0,s(x)),k=M.next();!k.done;k=M.next()){var S=k.value;if(this.doPopupsOverlap(S,b)){R=!1;break}}}catch(E){v={error:E}}finally{try{k&&!k.done&&(y=M.return)&&y.call(M)}finally{if(v)throw v.error}}R?x.push(b):b.hide()}}catch(E){g={error:E}}finally{try{_&&!_.done&&(m=$.return)&&m.call($)}finally{if(g)throw g.error}}},p.prototype.doPopupsOverlap=function(g,m){var v=g.getElement().getBoundingClientRect(),y=m.getElement().getBoundingClientRect();return v.lefty.left&&v.topy.top},p}(),f=new c;r.popupManager=f,r.Tooltip=a;var d=function(p){o(g,p);function g(m){m===void 0&&(m=document.body);var v=p.call(this,m)||this;v.timeout=void 0,v.lastT=0,v.idleTime=350,v.lastEvent=void 0,v.onMouseOut=v.onMouseOut.bind(v),v.onMouseMove=v.onMouseMove.bind(v),v.waitForHover=v.waitForHover.bind(v),v.hide=v.hide.bind(v);var y=v.getElement();return y.style.whiteSpace="pre-wrap",y.style.pointerEvents="auto",y.addEventListener("mouseout",v.onMouseOut),y.tabIndex=-1,y.addEventListener("blur",function(){y.contains(document.activeElement)||this.hide()}.bind(v)),v}return g.prototype.addToEditor=function(m){m.on("mousemove",this.onMouseMove),m.on("mousedown",this.hide),m.renderer.getMouseEventTarget().addEventListener("mouseout",this.onMouseOut,!0)},g.prototype.removeFromEditor=function(m){m.off("mousemove",this.onMouseMove),m.off("mousedown",this.hide),m.renderer.getMouseEventTarget().removeEventListener("mouseout",this.onMouseOut,!0),this.timeout&&(clearTimeout(this.timeout),this.timeout=null)},g.prototype.onMouseMove=function(m,v){this.lastEvent=m,this.lastT=Date.now();var y=v.$mouseHandler.isMousePressed;if(this.isOpen){var x=this.lastEvent&&this.lastEvent.getDocumentPosition();(!this.range||!this.range.contains(x.row,x.column)||y||this.isOutsideOfText(this.lastEvent))&&this.hide()}this.timeout||y||(this.lastEvent=m,this.timeout=setTimeout(this.waitForHover,this.idleTime))},g.prototype.waitForHover=function(){this.timeout&&clearTimeout(this.timeout);var m=Date.now()-this.lastT;if(this.idleTime-m>10){this.timeout=setTimeout(this.waitForHover,this.idleTime-m);return}this.timeout=null,this.lastEvent&&!this.isOutsideOfText(this.lastEvent)&&this.$gatherData(this.lastEvent,this.lastEvent.editor)},g.prototype.isOutsideOfText=function(m){var v=m.editor,y=m.getDocumentPosition(),x=v.session.getLine(y.row);if(y.column==x.length){var $=v.renderer.pixelToScreenCoordinates(m.clientX,m.clientY),_=v.session.documentToScreenPosition(y.row,y.column);if(_.column!=$.column||_.row!=$.row)return!0}return!1},g.prototype.setDataProvider=function(m){this.$gatherData=m},g.prototype.showForRange=function(m,v,y,x){if(!(x&&x!=this.lastEvent)&&!(this.isOpen&&document.activeElement==this.getElement())){var $=m.renderer;this.isOpen||(f.addPopup(this),this.$registerCloseEvents(),this.setTheme($.theme)),this.isOpen=!0,this.addMarker(v,m.session),this.range=l.fromPoints(v.start,v.end);var _=this.getElement();_.innerHTML="",_.appendChild(y),_.style.display="block";var b=$.textToScreenCoordinates(v.start.row,v.start.column),R=m.getCursorPosition(),M=_.clientHeight,k=$.scroller.getBoundingClientRect(),S=!0;this.row>R.row?S=!0:this.rowk.bottom&&(S=!1),S?b.pageY+=$.lineHeight:b.pageY-=M,_.style.maxWidth=k.width-(b.pageX-k.left)+"px",this.setPosition(b.pageX,b.pageY)}},g.prototype.addMarker=function(m,v){this.marker&&this.$markerSession.removeMarker(this.marker),this.$markerSession=v,this.marker=v&&v.addMarker(m,"ace_highlight-marker","text")},g.prototype.hide=function(m){!m&&document.activeElement==this.getElement()||m&&m.target&&(m.type!="keydown"||m.ctrlKey||m.metaKey)&&this.$element.contains(m.target)||(this.lastEvent=null,this.timeout&&clearTimeout(this.timeout),this.timeout=null,this.addMarker(null),this.isOpen&&(this.$removeCloseEvents(),this.getElement().style.display="none",this.isOpen=!1,f.removePopup(this)))},g.prototype.$registerCloseEvents=function(){window.addEventListener("keydown",this.hide,!0),window.addEventListener("mousewheel",this.hide,!0),window.addEventListener("mousedown",this.hide,!0)},g.prototype.$removeCloseEvents=function(){window.removeEventListener("keydown",this.hide,!0),window.removeEventListener("mousewheel",this.hide,!0),window.removeEventListener("mousedown",this.hide,!0)},g.prototype.onMouseOut=function(m){this.timeout&&(clearTimeout(this.timeout),this.timeout=null),this.lastEvent=null,this.isOpen&&(!m.relatedTarget||m.relatedTarget==this.getElement()||m&&m.currentTarget.contains(m.relatedTarget)||m.relatedTarget.classList.contains("ace_content")||this.hide())},g}(a);r.HoverTooltip=d}),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/tooltip","ace/config"],function(n,r,i){var o=this&&this.__extends||function(){var d=function(p,g){return d=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(m,v){m.__proto__=v}||function(m,v){for(var y in v)Object.prototype.hasOwnProperty.call(v,y)&&(m[y]=v[y])},d(p,g)};return function(p,g){if(typeof g!="function"&&g!==null)throw new TypeError("Class extends value "+String(g)+" is not a constructor or null");d(p,g);function m(){this.constructor=p}p.prototype=g===null?Object.create(g):(m.prototype=g.prototype,new m)}}(),s=this&&this.__values||function(d){var p=typeof Symbol=="function"&&Symbol.iterator,g=p&&d[p],m=0;if(g)return g.call(d);if(d&&typeof d.length=="number")return{next:function(){return d&&m>=d.length&&(d=void 0),{value:d&&d[m++],done:!d}}};throw new TypeError(p?"Object is not iterable.":"Symbol.iterator is not defined.")},h=n("../lib/dom"),l=n("../lib/event"),u=n("../tooltip").Tooltip,a=n("../config").nls;function c(d){var p=d.editor,g=p.renderer.$gutterLayer,m=new f(p);d.editor.setDefaultHandler("guttermousedown",function(b){if(!(!p.isFocused()||b.getButton()!=0)){var R=g.getRegion(b);if(R!="foldWidgets"){var M=b.getDocumentPosition().row,k=p.session.selection;if(b.getShiftKey())k.selectTo(M,0);else{if(b.domEvent.detail==2)return p.selectAll(),b.preventDefault();d.$clickSelection=p.selection.getLineRange(M)}return d.setState("selectByLines"),d.captureMouse(b),b.preventDefault()}}});var v,y;function x(){var b=y.getDocumentPosition().row,R=p.session.getLength();if(b==R){var M=p.renderer.pixelToScreenCoordinates(0,y.y).row,k=y.$pos;if(M>p.session.documentToScreenRow(k.row,k.column))return $()}if(m.showTooltip(b),!!m.isOpen)if(p.on("mousewheel",$),d.$tooltipFollowsMouse)_(y);else{var S=g.$lines.cells[b].element.querySelector("[class*=ace_icon]"),E=S.getBoundingClientRect(),I=m.getElement().style;I.left=E.right+"px",I.top=E.bottom+"px"}}function $(){v&&(v=clearTimeout(v)),m.isOpen&&(m.hide(),p._signal("hideGutterTooltip",m),p.off("mousewheel",$))}function _(b){m.setPosition(b.x,b.y)}d.editor.setDefaultHandler("guttermousemove",function(b){var R=b.domEvent.target||b.domEvent.srcElement;if(h.hasCssClass(R,"ace_fold-widget"))return $();m.isOpen&&d.$tooltipFollowsMouse&&_(b),y=b,!v&&(v=setTimeout(function(){v=null,y&&!d.isMousePressed?x():$()},50))}),l.addListener(p.renderer.$gutter,"mouseout",function(b){y=null,!(!m.isOpen||v)&&(v=setTimeout(function(){v=null,$()},50))},p),p.on("changeSession",$),p.on("input",$)}r.GutterHandler=c;var f=function(d){o(p,d);function p(g){var m=d.call(this,g.container)||this;return m.editor=g,m}return p.prototype.setPosition=function(g,m){var v=window.innerWidth||document.documentElement.clientWidth,y=window.innerHeight||document.documentElement.clientHeight,x=this.getWidth(),$=this.getHeight();g+=15,m+=15,g+x>v&&(g-=g+x-v),m+$>y&&(m-=20+$),u.prototype.setPosition.call(this,g,m)},Object.defineProperty(p,"annotationLabels",{get:function(){return{error:{singular:a("error"),plural:a("errors")},warning:{singular:a("warning"),plural:a("warnings")},info:{singular:a("information message"),plural:a("information messages")}}},enumerable:!1,configurable:!0}),p.prototype.showTooltip=function(g){var m=this.editor.renderer.$gutterLayer,v=m.$annotations[g],y;v?y={text:Array.from(v.text),type:Array.from(v.type)}:y={text:[],type:[]};var x=m.session.getFoldLine(g);if(x&&m.$showFoldedAnnotations){for(var $={error:[],warning:[],info:[]},_,b=g+1;b<=x.end.row;b++)if(m.$annotations[b])for(var R=0;R ").concat(y.text[b]);S[y.type[b].replace("_fold","")].push(I)}var C=[].concat(S.error,S.warning,S.info).join("
");this.setHtml(C),this.setClassName("ace_gutter-tooltip"),this.$element.setAttribute("aria-live","polite"),this.isOpen||this.setTheme(this.editor.renderer.theme),this.editor._signal("showGutterTooltip",this),this.show()},p.annotationsToSummaryString=function(g){var m,v,y=[],x=["error","warning","info"];try{for(var $=s(x),_=$.next();!_.done;_=$.next()){var b=_.value;if(g[b].length){var R=g[b].length===1?p.annotationLabels[b].singular:p.annotationLabels[b].plural;y.push("".concat(g[b].length," ").concat(R))}}}catch(M){m={error:M}}finally{try{_&&!_.done&&(v=$.return)&&v.call($)}finally{if(m)throw m.error}}return y.join(", ")},p}(u);r.GutterTooltip=f}),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(n,r,i){var o=n("../lib/event"),s=n("../lib/useragent"),h=function(){function l(u,a){this.domEvent=u,this.editor=a,this.x=this.clientX=u.clientX,this.y=this.clientY=u.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1}return l.prototype.stopPropagation=function(){o.stopPropagation(this.domEvent),this.propagationStopped=!0},l.prototype.preventDefault=function(){o.preventDefault(this.domEvent),this.defaultPrevented=!0},l.prototype.stop=function(){this.stopPropagation(),this.preventDefault()},l.prototype.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},l.prototype.inSelection=function(){if(this.$inSelection!==null)return this.$inSelection;var u=this.editor,a=u.getSelectionRange();if(a.isEmpty())this.$inSelection=!1;else{var c=this.getDocumentPosition();this.$inSelection=a.contains(c.row,c.column)}return this.$inSelection},l.prototype.getButton=function(){return o.getButton(this.domEvent)},l.prototype.getShiftKey=function(){return this.domEvent.shiftKey},l.prototype.getAccelKey=function(){return s.isMac?this.domEvent.metaKey:this.domEvent.ctrlKey},l}();r.MouseEvent=h}),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(n,r,i){var o=n("../lib/dom"),s=n("../lib/event"),h=n("../lib/useragent"),l=200,u=200,a=5;function c(d){var p=d.editor,g=o.createElement("div");g.style.cssText="top:-100px;position:absolute;z-index:2147483647;opacity:0.5",g.textContent=" ";var m=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];m.forEach(function(G){d[G]=this[G]},this),p.on("mousedown",this.onMouseDown.bind(d));var v=p.container,y,x,$,_,b,R,M=0,k,S,E,I,C;this.onDragStart=function(G){if(this.cancelDrag||!v.draggable){var U=this;return setTimeout(function(){U.startSelect(),U.captureMouse(G)},0),G.preventDefault()}b=p.getSelectionRange();var Q=G.dataTransfer;Q.effectAllowed=p.getReadOnly()?"copy":"copyMove",p.container.appendChild(g),Q.setDragImage&&Q.setDragImage(g,0,0),setTimeout(function(){p.container.removeChild(g)}),Q.clearData(),Q.setData("Text",p.session.getTextRange()),S=!0,this.setState("drag")},this.onDragEnd=function(G){if(v.draggable=!1,S=!1,this.setState(null),!p.getReadOnly()){var U=G.dataTransfer.dropEffect;!k&&U=="move"&&p.session.remove(p.getSelectionRange()),p.$resetCursorStyle()}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(G){if(!(p.getReadOnly()||!F(G.dataTransfer)))return x=G.clientX,$=G.clientY,y||N(),M++,G.dataTransfer.dropEffect=k=W(G),s.preventDefault(G)},this.onDragOver=function(G){if(!(p.getReadOnly()||!F(G.dataTransfer)))return x=G.clientX,$=G.clientY,y||(N(),M++),H!==null&&(H=null),G.dataTransfer.dropEffect=k=W(G),s.preventDefault(G)},this.onDragLeave=function(G){if(M--,M<=0&&y)return B(),k=null,s.preventDefault(G)},this.onDrop=function(G){if(R){var U=G.dataTransfer;if(S)switch(k){case"move":b.contains(R.row,R.column)?b={start:R,end:R}:b=p.moveText(b,R);break;case"copy":b=p.moveText(b,R,!0);break}else{var Q=U.getData("Text");b={start:R,end:p.session.insert(R,Q)},p.focus(),k=null}return B(),s.preventDefault(G)}},s.addListener(v,"dragstart",this.onDragStart.bind(d),p),s.addListener(v,"dragend",this.onDragEnd.bind(d),p),s.addListener(v,"dragenter",this.onDragEnter.bind(d),p),s.addListener(v,"dragover",this.onDragOver.bind(d),p),s.addListener(v,"dragleave",this.onDragLeave.bind(d),p),s.addListener(v,"drop",this.onDrop.bind(d),p);function w(G,U){var Q=Date.now(),ee=!U||G.row!=U.row,V=!U||G.column!=U.column;if(!I||ee||V)p.moveCursorToPosition(G),I=Q,C={x,y:$};else{var q=f(C.x,C.y,x,$);q>a?I=null:Q-I>=u&&(p.renderer.scrollCursorIntoView(),I=null)}}function T(G,U){var Q=Date.now(),ee=p.renderer.layerConfig.lineHeight,V=p.renderer.layerConfig.characterWidth,q=p.renderer.scroller.getBoundingClientRect(),re={x:{left:x-q.left,right:q.right-x},y:{top:$-q.top,bottom:q.bottom-$}},se=Math.min(re.x.left,re.x.right),ge=Math.min(re.y.top,re.y.bottom),K={row:G.row,column:G.column};se/V<=2&&(K.column+=re.x.left=l&&p.renderer.scrollCursorIntoView(K):E=Q:E=null}function O(){var G=R;R=p.renderer.screenToTextCoordinates(x,$),w(R,G),T(R,G)}function N(){b=p.selection.toOrientedRange(),y=p.session.addMarker(b,"ace_selection",p.getSelectionStyle()),p.clearSelection(),p.isFocused()&&p.renderer.$cursorLayer.setBlinking(!1),clearInterval(_),O(),_=setInterval(O,20),M=0,s.addListener(document,"mousemove",z)}function B(){clearInterval(_),p.session.removeMarker(y),y=null,p.selection.fromOrientedRange(b),p.isFocused()&&!S&&p.$resetCursorStyle(),b=null,R=null,M=0,E=null,I=null,s.removeListener(document,"mousemove",z)}var H=null;function z(){H==null&&(H=setTimeout(function(){H!=null&&y&&B()},20))}function F(G){var U=G.types;return!U||Array.prototype.some.call(U,function(Q){return Q=="text/plain"||Q=="Text"})}function W(G){var U=["copy","copymove","all","uninitialized"],Q=["move","copymove","linkmove","all","uninitialized"],ee=h.isMac?G.altKey:G.ctrlKey,V="uninitialized";try{V=G.dataTransfer.effectAllowed.toLowerCase()}catch{}var q="none";return ee&&U.indexOf(V)>=0?q="copy":Q.indexOf(V)>=0?q="move":U.indexOf(V)>=0&&(q="copy"),q}}(function(){this.dragWait=function(){var d=Date.now()-this.mousedownEvent.time;d>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var d=this.editor.container;d.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(d){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var d=this.editor,p=d.container;p.draggable=!0,d.renderer.$cursorLayer.setBlinking(!1),d.setStyle("ace_dragging");var g=h.isWin?"default":"move";d.renderer.setCursorStyle(g),this.setState("dragReady")},this.onMouseDrag=function(d){var p=this.editor.container;if(h.isIE&&this.state=="dragReady"){var g=f(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);g>3&&p.dragDrop()}if(this.state==="dragWait"){var g=f(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);g>0&&(p.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(d){if(this.$dragEnabled){this.mousedownEvent=d;var p=this.editor,g=d.inSelection(),m=d.getButton(),v=d.domEvent.detail||1;if(v===1&&m===0&&g){if(d.editor.inMultiSelectMode&&(d.getAccelKey()||d.getShiftKey()))return;this.mousedownEvent.time=Date.now();var y=d.domEvent.target||d.domEvent.srcElement;if("unselectable"in y&&(y.unselectable="on"),p.getDragDelay()){if(h.isWebKit){this.cancelDrag=!0;var x=p.container;x.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(d,this.onMouseDrag.bind(this)),d.defaultPrevented=!0}}}}).call(c.prototype);function f(d,p,g,m){return Math.sqrt(Math.pow(g-d,2)+Math.pow(m-p,2))}r.DragdropHandler=c}),ace.define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/event","ace/lib/dom"],function(n,r,i){var o=n("./mouse_event").MouseEvent,s=n("../lib/event"),h=n("../lib/dom");r.addTouchListeners=function(l,u){var a="scroll",c,f,d,p,g,m,v=0,y,x=0,$=0,_=0,b,R;function M(){var w=window.navigator&&window.navigator.clipboard,T=!1,O=function(){var B=u.getCopyText(),H=u.session.getUndoManager().hasUndo();R.replaceChild(h.buildDom(T?["span",!B&&["span",{class:"ace_mobile-button",action:"selectall"},"Select All"],B&&["span",{class:"ace_mobile-button",action:"copy"},"Copy"],B&&["span",{class:"ace_mobile-button",action:"cut"},"Cut"],w&&["span",{class:"ace_mobile-button",action:"paste"},"Paste"],H&&["span",{class:"ace_mobile-button",action:"undo"},"Undo"],["span",{class:"ace_mobile-button",action:"find"},"Find"],["span",{class:"ace_mobile-button",action:"openCommandPallete"},"Palette"]]:["span"]),R.firstChild)},N=function(B){var H=B.target.getAttribute("action");if(H=="more"||!T)return T=!T,O();H=="paste"?w.readText().then(function(z){u.execCommand(H,z)}):H&&((H=="cut"||H=="copy")&&(w?w.writeText(u.getCopyText()):document.execCommand("copy")),u.execCommand(H)),R.firstChild.style.display="none",T=!1,H!="openCommandPallete"&&u.focus()};R=h.buildDom(["div",{class:"ace_mobile-menu",ontouchstart:function(B){a="menu",B.stopPropagation(),B.preventDefault(),u.textInput.focus()},ontouchend:function(B){B.stopPropagation(),B.preventDefault(),N(B)},onclick:N},["span"],["span",{class:"ace_mobile-button",action:"more"},"..."]],u.container)}function k(){R||M();var w=u.selection.cursor,T=u.renderer.textToScreenCoordinates(w.row,w.column),O=u.renderer.textToScreenCoordinates(0,0).pageX,N=u.renderer.scrollLeft,B=u.container.getBoundingClientRect();R.style.top=T.pageY-B.top-3+"px",T.pageX-B.left=2?u.selection.getLineRange(y.row):u.session.getBracketRange(y);w&&!w.isEmpty()?u.selection.setRange(w):u.selection.selectWord(),a="wait"}s.addListener(l,"contextmenu",function(w){if(b){var T=u.textInput.getElement();T.focus()}},u),s.addListener(l,"touchstart",function(w){var T=w.touches;if(g||T.length>1){clearTimeout(g),g=null,d=-1,a="zoom";return}b=u.$mouseHandler.isMousePressed=!0;var O=u.renderer.layerConfig.lineHeight,N=u.renderer.layerConfig.lineHeight,B=w.timeStamp;p=B;var H=T[0],z=H.clientX,F=H.clientY;Math.abs(c-z)+Math.abs(f-F)>O&&(d=-1),c=w.clientX=z,f=w.clientY=F,$=_=0;var W=new o(w,u);if(y=W.getDocumentPosition(),B-d<500&&T.length==1&&!v)x++,w.preventDefault(),w.button=0,I();else{x=0;var G=u.selection.cursor,U=u.selection.isEmpty()?G:u.selection.anchor,Q=u.renderer.$cursorLayer.getPixelPosition(G,!0),ee=u.renderer.$cursorLayer.getPixelPosition(U,!0),V=u.renderer.scroller.getBoundingClientRect(),q=u.renderer.layerConfig.offset,re=u.renderer.scrollLeft,se=function(Y,J){return Y=Y/N,J=J/O-.75,Y*Y+J*J};if(w.clientXK?"cursor":"anchor"),K<3.5?a="anchor":ge<3.5?a="cursor":a="scroll",g=setTimeout(E,450)}d=B},u),s.addListener(l,"touchend",function(w){b=u.$mouseHandler.isMousePressed=!1,m&&clearInterval(m),a=="zoom"?(a="",v=0):g?(u.selection.moveToPosition(y),v=0,k()):a=="scroll"?(C(),S()):k(),clearTimeout(g),g=null},u),s.addListener(l,"touchmove",function(w){g&&(clearTimeout(g),g=null);var T=w.touches;if(!(T.length>1||a=="zoom")){var O=T[0],N=c-O.clientX,B=f-O.clientY;if(a=="wait")if(N*N+B*B>4)a="cursor";else return w.preventDefault();c=O.clientX,f=O.clientY,w.clientX=O.clientX,w.clientY=O.clientY;var H=w.timeStamp,z=H-p;if(p=H,a=="scroll"){var F=new o(w,u);F.speed=1,F.wheelX=N,F.wheelY=B,10*Math.abs(N)0)if(K==16){for(Z=J;Z-1){for(Z=J;Z=0&&ee[me]==b;me--)U[me]=o}}}function z(G,U,Q){if(!(s=G){for(q=V+1;q=G;)q++;for(re=V,se=q-1;re=U.length||(q=Q[ee-1])!=m&&q!=v||(re=U[ee+1])!=m&&re!=v?y:(h&&(re=v),re==q?re:y);case M:return q=ee>0?Q[ee-1]:x,q==m&&ee+10&&Q[ee-1]==m)return m;if(h)return y;for(ge=ee+1,se=U.length;ge=1425&&K<=2303||K==64286;if(q=U[ge],Y&&(q==g||q==_))return g}return ee<1||(q=U[ee-1])==x?y:Q[ee-1];case x:return h=!1,l=!0,o;case $:return u=!0,y;case E:case I:case w:case T:case C:h=!1;case O:return y}}function W(G){var U=G.charCodeAt(0),Q=U>>8;return Q==0?U>191?p:N[U]:Q==5?/[\u0591-\u05f4]/.test(G)?g:p:Q==6?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(G)?S:/[\u0660-\u0669\u066b-\u066c]/.test(G)?v:U==1642?k:/[\u06f0-\u06f9]/.test(G)?m:_:Q==32&&U<=8287?B[U&255]:Q==254&&U>=65136?_:y}r.L=p,r.R=g,r.EN=m,r.ON_R=3,r.AN=4,r.R_H=5,r.B=6,r.RLE=7,r.DOT="·",r.doBidiReorder=function(G,U,Q){if(G.length<2)return{};var ee=G.split(""),V=new Array(ee.length),q=new Array(ee.length),re=[];o=Q?d:f,H(ee,re,ee.length,U);for(var se=0;se_&&U[se]0&&ee[se-1]==="ل"&&/\u0622|\u0623|\u0625|\u0627/.test(ee[se])&&(re[se-1]=re[se]=r.R_H,se++);ee[ee.length-1]===r.DOT&&(re[ee.length-1]=r.B),ee[0]==="‫"&&(re[0]=r.RLE);for(var se=0;se=0&&(a=this.session.$docRowCache[f])}return a},u.prototype.getSplitIndex=function(){var a=0,c=this.session.$screenRowCache;if(c.length)for(var f,d=this.session.$getRowCacheIndex(c,this.currentRow);this.currentRow-a>0&&(f=this.session.$getRowCacheIndex(c,this.currentRow-a-1),f===d);)d=f,a++;else a=this.currentRow;return a},u.prototype.updateRowLine=function(a,c){a===void 0&&(a=this.getDocumentRow());var f=a===this.session.getLength()-1,d=f?this.EOF:this.EOL;if(this.wrapIndent=0,this.line=this.session.getLine(a),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE,this.session.$useWrapMode){var p=this.session.$wrapData[a];p&&(c===void 0&&(c=this.getSplitIndex()),c>0&&p.length?(this.wrapIndent=p.indent,this.wrapOffset=this.wrapIndent*this.charWidths[o.L],this.line=cc?this.session.getOverwrite()?a:a-1:c,d=o.getVisualFromLogicalIdx(f,this.bidiMap),p=this.bidiMap.bidiLevels,g=0;!this.session.getOverwrite()&&a<=c&&p[d]%2!==0&&d++;for(var m=0;mc&&p[d]%2===0&&(g+=this.charWidths[p[d]]),this.wrapIndent&&(g+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(g+=this.rtlLineOffset),g},u.prototype.getSelections=function(a,c){var f=this.bidiMap,d=f.bidiLevels,p,g=[],m=0,v=Math.min(a,c)-this.wrapIndent,y=Math.max(a,c)-this.wrapIndent,x=!1,$=!1,_=0;this.wrapIndent&&(m+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var b,R=0;R=v&&bd+m/2;){if(d+=m,p===g.length-1){m=0;break}m=this.charWidths[g[++p]]}return p>0&&g[p-1]%2!==0&&g[p]%2===0?(f0&&g[p-1]%2===0&&g[p]%2!==0?c=1+(f>d?this.bidiMap.logicalFromVisual[p]:this.bidiMap.logicalFromVisual[p-1]):this.isRtlDir&&p===g.length-1&&m===0&&g[p-1]%2===0||!this.isRtlDir&&p===0&&g[p]%2!==0?c=1+this.bidiMap.logicalFromVisual[p]:(p>0&&g[p-1]%2!==0&&m!==0&&p--,c=this.bidiMap.logicalFromVisual[p]),c===0&&this.isRtlDir&&c++,c+this.wrapIndent},u}();r.BidiHandler=l}),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(n,r,i){var o=n("./lib/oop"),s=n("./lib/lang"),h=n("./lib/event_emitter").EventEmitter,l=n("./range").Range,u=function(a){this.session=a,this.doc=a.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var c=this;this.cursor.on("change",function(f){c.$cursorChanged=!0,c.$silent||c._emit("changeCursor"),!c.$isEmpty&&!c.$silent&&c._emit("changeSelection"),!c.$keepDesiredColumnOnChange&&f.old.column!=f.value.column&&(c.$desiredColumn=null)}),this.anchor.on("change",function(){c.$anchorChanged=!0,!c.$isEmpty&&!c.$silent&&c._emit("changeSelection")})};(function(){o.implement(this,h),this.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},this.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},this.getCursor=function(){return this.lead.getPosition()},this.setAnchor=function(a,c){this.$isEmpty=!1,this.anchor.setPosition(a,c)},this.setSelectionAnchor=this.setAnchor,this.getAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},this.getSelectionAnchor=this.getAnchor,this.getSelectionLead=function(){return this.lead.getPosition()},this.isBackwards=function(){var a=this.anchor,c=this.lead;return a.row>c.row||a.row==c.row&&a.column>c.column},this.getRange=function(){var a=this.anchor,c=this.lead;return this.$isEmpty?l.fromPoints(c,c):this.isBackwards()?l.fromPoints(c,a):l.fromPoints(a,c)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},this.setRange=this.setSelectionRange=function(a,c){var f=c?a.end:a.start,d=c?a.start:a.end;this.$setSelection(f.row,f.column,d.row,d.column)},this.$setSelection=function(a,c,f,d){if(!this.$silent){var p=this.$isEmpty,g=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(a,c),this.cursor.setPosition(f,d),this.$isEmpty=!l.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||p!=this.$isEmpty||g)&&this._emit("changeSelection")}},this.$moveSelection=function(a){var c=this.lead;this.$isEmpty&&this.setSelectionAnchor(c.row,c.column),a.call(this)},this.selectTo=function(a,c){this.$moveSelection(function(){this.moveCursorTo(a,c)})},this.selectToPosition=function(a){this.$moveSelection(function(){this.moveCursorToPosition(a)})},this.moveTo=function(a,c){this.clearSelection(),this.moveCursorTo(a,c)},this.moveToPosition=function(a){this.clearSelection(),this.moveCursorToPosition(a)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(a,c){if(typeof c>"u"){var f=a||this.lead;a=f.row,c=f.column}return this.session.getWordRange(a,c)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var a=this.getCursor(),c=this.session.getAWordRange(a.row,a.column);this.setSelectionRange(c)},this.getLineRange=function(a,c){var f=typeof a=="number"?a:this.lead.row,d,p=this.session.getFoldLine(f);return p?(f=p.start.row,d=p.end.row):d=f,c===!0?new l(f,0,d,this.session.getLine(d).length):new l(f,0,d+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(a,c,f){var d=a.column,p=a.column+c;return f<0&&(d=a.column-c,p=a.column),this.session.isTabStop(a)&&this.doc.getLine(a.row).slice(d,p).split(" ").length-1==c},this.moveCursorLeft=function(){var a=this.lead.getPosition(),c;if(c=this.session.getFoldAt(a.row,a.column,-1))this.moveCursorTo(c.start.row,c.start.column);else if(a.column===0)a.row>0&&this.moveCursorTo(a.row-1,this.doc.getLine(a.row-1).length);else{var f=this.session.getTabSize();this.wouldMoveIntoSoftTab(a,f,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-f):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var a=this.lead.getPosition(),c;if(c=this.session.getFoldAt(a.row,a.column,1))this.moveCursorTo(c.end.row,c.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(c.column=d)}}this.moveCursorTo(c.row,c.column)},this.moveCursorFileEnd=function(){var a=this.doc.getLength()-1,c=this.doc.getLine(a).length;this.moveCursorTo(a,c)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var a=this.lead.row,c=this.lead.column,f=this.doc.getLine(a),d=f.substring(c);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var p=this.session.getFoldAt(a,c,1);if(p){this.moveCursorTo(p.end.row,p.end.column);return}if(this.session.nonTokenRe.exec(d)&&(c+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,d=f.substring(c)),c>=f.length){this.moveCursorTo(a,f.length),this.moveCursorRight(),a0&&this.moveCursorWordLeft();return}this.session.tokenRe.exec(p)&&(c-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(a,c)},this.$shortWordEndIndex=function(a){var c=0,f,d=/\s/,p=this.session.tokenRe;if(p.lastIndex=0,this.session.tokenRe.exec(a))c=this.session.tokenRe.lastIndex;else{for(;(f=a[c])&&d.test(f);)c++;if(c<1){for(p.lastIndex=0;(f=a[c])&&!p.test(f);)if(p.lastIndex=0,c++,d.test(f))if(c>2){c--;break}else{for(;(f=a[c])&&d.test(f);)c++;if(c>2)break}}}return p.lastIndex=0,c},this.moveCursorShortWordRight=function(){var a=this.lead.row,c=this.lead.column,f=this.doc.getLine(a),d=f.substring(c),p=this.session.getFoldAt(a,c,1);if(p)return this.moveCursorTo(p.end.row,p.end.column);if(c==f.length){var g=this.doc.getLength();do a++,d=this.doc.getLine(a);while(a0&&/^\s*$/.test(d));c=d.length,/\s+$/.test(d)||(d="")}var p=s.stringReverse(d),g=this.$shortWordEndIndex(p);return this.moveCursorTo(a,c-g)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(a,c){var f=this.session.documentToScreenPosition(this.lead.row,this.lead.column),d;if(c===0&&(a!==0&&(this.session.$bidiHandler.isBidiRow(f.row,this.lead.row)?(d=this.session.$bidiHandler.getPosLeft(f.column),f.column=Math.round(d/this.session.$bidiHandler.charWidths[0])):d=f.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?f.column=this.$desiredColumn:this.$desiredColumn=f.column),a!=0&&this.session.lineWidgets&&this.session.lineWidgets[this.lead.row]){var p=this.session.lineWidgets[this.lead.row];a<0?a-=p.rowsAbove||0:a>0&&(a+=p.rowCount-(p.rowsAbove||0))}var g=this.session.screenToDocumentPosition(f.row+a,f.column,d);a!==0&&c===0&&g.row===this.lead.row&&(g.column,this.lead.column),this.moveCursorTo(g.row,g.column+c,c===0)},this.moveCursorToPosition=function(a){this.moveCursorTo(a.row,a.column)},this.moveCursorTo=function(a,c,f){var d=this.session.getFoldAt(a,c,1);d&&(a=d.start.row,c=d.start.column),this.$keepDesiredColumnOnChange=!0;var p=this.session.getLine(a);/[\uDC00-\uDFFF]/.test(p.charAt(c))&&p.charAt(c-1)&&(this.lead.row==a&&this.lead.column==c+1?c=c-1:c=c+1),this.lead.setPosition(a,c),this.$keepDesiredColumnOnChange=!1,f||(this.$desiredColumn=null)},this.moveCursorToScreen=function(a,c,f){var d=this.session.screenToDocumentPosition(a,c);this.moveCursorTo(d.row,d.column,f)},this.detach=function(){this.lead.detach(),this.anchor.detach()},this.fromOrientedRange=function(a){this.setSelectionRange(a,a.cursor==a.start),this.$desiredColumn=a.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(a){var c=this.getRange();return a?(a.start.column=c.start.column,a.start.row=c.start.row,a.end.column=c.end.column,a.end.row=c.end.row):a=c,a.cursor=this.isBackwards()?a.start:a.end,a.desiredColumn=this.$desiredColumn,a},this.getRangeOfMovements=function(a){var c=this.getCursor();try{a(this);var f=this.getCursor();return l.fromPoints(c,f)}catch{return l.fromPoints(c,c)}finally{this.moveCursorToPosition(c)}},this.toJSON=function(){if(this.rangeCount)var a=this.ranges.map(function(c){var f=c.clone();return f.isBackwards=c.cursor==c.start,f});else{var a=this.getRange();a.isBackwards=this.isBackwards()}return a},this.fromJSON=function(a){if(a.start==null)if(this.rangeList&&a.length>1){this.toSingleRange(a[0]);for(var c=a.length;c--;){var f=l.fromPoints(a[c].start,a[c].end);a[c].isBackwards&&(f.cursor=f.start),this.addRange(f,!0)}return}else a=a[0];this.rangeList&&this.toSingleRange(a),this.setSelectionRange(a,a.isBackwards)},this.isEqual=function(a){if((a.length||this.rangeCount)&&a.length!=this.rangeCount)return!1;if(!a.length||!this.ranges)return this.getRange().isEqual(a);for(var c=this.ranges.length;c--;)if(!this.ranges[c].isEqual(a[c]))return!1;return!0}}).call(u.prototype),r.Selection=u}),ace.define("ace/tokenizer",["require","exports","module","ace/config"],function(n,r,i){var o=n("./config"),s=2e3,h=function(){function l(u){this.states=u,this.regExps={},this.matchMappings={};for(var a in this.states){for(var c=this.states[a],f=[],d=0,p=this.matchMappings[a]={defaultToken:"text"},g="g",m=[],v=0;v1?y.onMatch=this.$applyToken:y.onMatch=y.token),$>1&&(/\\\d/.test(y.regex)?x=y.regex.replace(/\\([0-9]+)/g,function(_,b){return"\\"+(parseInt(b,10)+d+1)}):($=1,x=this.removeCapturingGroups(y.regex)),!y.splitRegex&&typeof y.token!="string"&&m.push(y)),p[d]=v,d+=$,f.push(x),y.onMatch||(y.onMatch=null)}}f.length||(p[0]=0,f.push("$")),m.forEach(function(_){_.splitRegex=this.createSplitterRegexp(_.regex,g)},this),this.regExps[a]=new RegExp("("+f.join(")|(")+")|($)",g)}}return l.prototype.$setMaxTokenCount=function(u){s=u|0},l.prototype.$applyToken=function(u){var a=this.splitRegex.exec(u).slice(1),c=this.token.apply(this,a);if(typeof c=="string")return[{type:c,value:u}];for(var f=[],d=0,p=c.length;dy){var k=u.substring(y,M-R.length);$.type==_?$.value+=k:($.type&&v.push($),$={type:_,value:k})}for(var S=0;Ss){for(x>2*u.length&&this.reportError("infinite loop with in ace tokenizer",{startState:a,line:u});y1&&c[0]!==f&&c.unshift("#tmp",f),{tokens:v,state:c.length?c:f}},l}();h.prototype.reportError=o.reportError,r.Tokenizer=h}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(n,r,i){var o=n("../lib/lang"),s=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(u,a){if(!a){for(var c in u)this.$rules[c]=u[c];return}for(var c in u){for(var f=u[c],d=0;d=this.$rowTokens.length;){if(this.$row+=1,l||(l=this.$session.getLength()),this.$row>=l)return this.$row=l-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},h.prototype.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},h.prototype.getCurrentTokenRow=function(){return this.$row},h.prototype.getCurrentTokenColumn=function(){var l=this.$rowTokens,u=this.$tokenIndex,a=l[u].start;if(a!==void 0)return a;for(a=0;u>0;)u-=1,a+=l[u].value.length;return a},h.prototype.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},h.prototype.getCurrentTokenRange=function(){var l=this.$rowTokens[this.$tokenIndex],u=this.getCurrentTokenColumn();return new o(this.$row,u,this.$row,u+l.value.length)},h}();r.TokenIterator=s}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(n,r,i){var o=n("../../lib/oop"),s=n("../behaviour").Behaviour,h=n("../../token_iterator").TokenIterator,l=n("../../lib/lang"),u=["text","paren.rparen","rparen","paren","punctuation.operator"],a=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],c,f={},d={'"':'"',"'":"'"},p=function(v){var y=-1;if(v.multiSelect&&(y=v.selection.index,f.rangeCount!=v.multiSelect.rangeCount&&(f={rangeCount:v.multiSelect.rangeCount})),f[y])return c=f[y];c=f[y]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},g=function(v,y,x,$){var _=v.end.row-v.start.row;return{text:x+y+$,selection:[0,v.start.column+1,_,v.end.column+(_?0:1)]}},m=function(v){v=v||{},this.add("braces","insertion",function(y,x,$,_,b){var R=$.getCursorPosition(),M=_.doc.getLine(R.row);if(b=="{"){p($);var k=$.getSelectionRange(),S=_.doc.getTextRange(k);if(S!==""&&S!=="{"&&$.getWrapBehavioursEnabled())return g(k,S,"{","}");if(m.isSaneInsertion($,_))return/[\]\}\)]/.test(M[R.column])||$.inMultiSelectMode||v.braces?(m.recordAutoInsert($,_,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert($,_,"{"),{text:"{",selection:[1,1]})}else if(b=="}"){p($);var E=M.substring(R.column,R.column+1);if(E=="}"){var I=_.$findOpeningBracket("}",{column:R.column+1,row:R.row});if(I!==null&&m.isAutoInsertedClosing(R,M,b))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(b==` -`||b==`\r -`){p($);var C="";m.isMaybeInsertedClosing(R,M)&&(C=l.stringRepeat("}",c.maybeInsertedBrackets),m.clearMaybeInsertedClosing());var E=M.substring(R.column,R.column+1);if(E==="}"){var w=_.findMatchingBracket({row:R.row,column:R.column+1},"}");if(!w)return null;var T=this.$getIndent(_.getLine(w.row))}else if(C)var T=this.$getIndent(M);else{m.clearMaybeInsertedClosing();return}var O=T+_.getTabString();return{text:` -`+O+` -`+T+C,selection:[1,O.length,1,O.length]}}else m.clearMaybeInsertedClosing()}),this.add("braces","deletion",function(y,x,$,_,b){var R=_.doc.getTextRange(b);if(!b.isMultiLine()&&R=="{"){p($);var M=_.doc.getLine(b.start.row),k=M.substring(b.end.column,b.end.column+1);if(k=="}")return b.end.column++,b;c.maybeInsertedBrackets--}}),this.add("parens","insertion",function(y,x,$,_,b){if(b=="("){p($);var R=$.getSelectionRange(),M=_.doc.getTextRange(R);if(M!==""&&$.getWrapBehavioursEnabled())return g(R,M,"(",")");if(m.isSaneInsertion($,_))return m.recordAutoInsert($,_,")"),{text:"()",selection:[1,1]}}else if(b==")"){p($);var k=$.getCursorPosition(),S=_.doc.getLine(k.row),E=S.substring(k.column,k.column+1);if(E==")"){var I=_.$findOpeningBracket(")",{column:k.column+1,row:k.row});if(I!==null&&m.isAutoInsertedClosing(k,S,b))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(y,x,$,_,b){var R=_.doc.getTextRange(b);if(!b.isMultiLine()&&R=="("){p($);var M=_.doc.getLine(b.start.row),k=M.substring(b.start.column+1,b.start.column+2);if(k==")")return b.end.column++,b}}),this.add("brackets","insertion",function(y,x,$,_,b){if(b=="["){p($);var R=$.getSelectionRange(),M=_.doc.getTextRange(R);if(M!==""&&$.getWrapBehavioursEnabled())return g(R,M,"[","]");if(m.isSaneInsertion($,_))return m.recordAutoInsert($,_,"]"),{text:"[]",selection:[1,1]}}else if(b=="]"){p($);var k=$.getCursorPosition(),S=_.doc.getLine(k.row),E=S.substring(k.column,k.column+1);if(E=="]"){var I=_.$findOpeningBracket("]",{column:k.column+1,row:k.row});if(I!==null&&m.isAutoInsertedClosing(k,S,b))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(y,x,$,_,b){var R=_.doc.getTextRange(b);if(!b.isMultiLine()&&R=="["){p($);var M=_.doc.getLine(b.start.row),k=M.substring(b.start.column+1,b.start.column+2);if(k=="]")return b.end.column++,b}}),this.add("string_dquotes","insertion",function(y,x,$,_,b){var R=_.$mode.$quotes||d;if(b.length==1&&R[b]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(b)!=-1)return;p($);var M=b,k=$.getSelectionRange(),S=_.doc.getTextRange(k);if(S!==""&&(S.length!=1||!R[S])&&$.getWrapBehavioursEnabled())return g(k,S,M,M);if(!S){var E=$.getCursorPosition(),I=_.doc.getLine(E.row),C=I.substring(E.column-1,E.column),w=I.substring(E.column,E.column+1),T=_.getTokenAt(E.row,E.column),O=_.getTokenAt(E.row,E.column+1);if(C=="\\"&&T&&/escape/.test(T.type))return null;var N=T&&/string|escape/.test(T.type),B=!O||/string|escape/.test(O.type),H;if(w==M)H=N!==B,H&&/string\.end/.test(O.type)&&(H=!1);else{if(N&&!B||N&&B)return null;var z=_.$mode.tokenRe;z.lastIndex=0;var F=z.test(C);z.lastIndex=0;var W=z.test(w),G=_.$mode.$pairQuotesAfter,U=G&&G[M]&&G[M].test(C);if(!U&&F||W||w&&!/[\s;,.})\]\\]/.test(w))return null;var Q=I[E.column-2];if(C==M&&(Q==M||z.test(Q)))return null;H=!0}return{text:H?M+M:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(y,x,$,_,b){var R=_.$mode.$quotes||d,M=_.doc.getTextRange(b);if(!b.isMultiLine()&&R.hasOwnProperty(M)){p($);var k=_.doc.getLine(b.start.row),S=k.substring(b.start.column+1,b.start.column+2);if(S==M)return b.end.column++,b}}),v.closeDocComment!==!1&&this.add("doc comment end","insertion",function(y,x,$,_,b){if(y==="doc-start"&&(b===` -`||b===`\r -`)&&$.selection.isEmpty()){var R=$.getCursorPosition(),M=_.doc.getLine(R.row),k=_.doc.getLine(R.row+1),S=this.$getIndent(M);if(/\s*\*/.test(k))return/^\s*\*/.test(M)?{text:b+S+"* ",selection:[1,3+S.length,1,3+S.length]}:{text:b+S+" * ",selection:[1,3+S.length,1,3+S.length]};if(/\/\*\*/.test(M.substring(0,R.column)))return{text:b+S+" * "+b+" "+S+"*/",selection:[1,4+S.length,1,4+S.length]}}})};m.isSaneInsertion=function(v,y){var x=v.getCursorPosition(),$=new h(y,x.row,x.column);if(!this.$matchTokenType($.getCurrentToken()||"text",u)){if(/[)}\]]/.test(v.session.getLine(x.row)[x.column]))return!0;var _=new h(y,x.row,x.column+1);if(!this.$matchTokenType(_.getCurrentToken()||"text",u))return!1}return $.stepForward(),$.getCurrentTokenRow()!==x.row||this.$matchTokenType($.getCurrentToken()||"text",a)},m.$matchTokenType=function(v,y){return y.indexOf(v.type||v)>-1},m.recordAutoInsert=function(v,y,x){var $=v.getCursorPosition(),_=y.doc.getLine($.row);this.isAutoInsertedClosing($,_,c.autoInsertedLineEnd[0])||(c.autoInsertedBrackets=0),c.autoInsertedRow=$.row,c.autoInsertedLineEnd=x+_.substr($.column),c.autoInsertedBrackets++},m.recordMaybeInsert=function(v,y,x){var $=v.getCursorPosition(),_=y.doc.getLine($.row);this.isMaybeInsertedClosing($,_)||(c.maybeInsertedBrackets=0),c.maybeInsertedRow=$.row,c.maybeInsertedLineStart=_.substr(0,$.column)+x,c.maybeInsertedLineEnd=_.substr($.column),c.maybeInsertedBrackets++},m.isAutoInsertedClosing=function(v,y,x){return c.autoInsertedBrackets>0&&v.row===c.autoInsertedRow&&x===c.autoInsertedLineEnd[0]&&y.substr(v.column)===c.autoInsertedLineEnd},m.isMaybeInsertedClosing=function(v,y){return c.maybeInsertedBrackets>0&&v.row===c.maybeInsertedRow&&y.substr(v.column)===c.maybeInsertedLineEnd&&y.substr(0,v.column)==c.maybeInsertedLineStart},m.popAutoInsertedClosing=function(){c.autoInsertedLineEnd=c.autoInsertedLineEnd.substr(1),c.autoInsertedBrackets--},m.clearMaybeInsertedClosing=function(){c&&(c.maybeInsertedBrackets=0,c.maybeInsertedRow=-1)},o.inherits(m,s),r.CstyleBehaviour=m}),ace.define("ace/unicode",["require","exports","module"],function(n,r,i){for(var o=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],s=0,h=[],l=0;l2?Q%b!=b-1:Q%b==0}}else{if(!this.blockComment)return!1;var M=this.blockComment.start,k=this.blockComment.end,S=new RegExp("^(\\s*)(?:"+a.escapeRegExp(M)+")"),E=new RegExp("(?:"+a.escapeRegExp(k)+")\\s*$"),I=function(H,z){w(H,z)||(!x||/\S/.test(H))&&(y.insertInLine({row:z,column:H.length},k),y.insertInLine({row:z,column:_},M))},C=function(H,z){var F;(F=H.match(E))&&y.removeInLine(z,H.length-F[0].length,H.length),(F=H.match(S))&&y.removeInLine(z,F[1].length,F[0].length)},w=function(H,z){if(S.test(H))return!0;for(var F=g.getTokens(z),W=0;WH.length&&(B=H.length)}),_==1/0&&(_=B,x=!1,$=!1),R&&_%b!=0&&(_=Math.floor(_/b)*b),N($?C:I)},this.toggleBlockComment=function(p,g,m,v){var y=this.blockComment;if(y){!y.start&&y[0]&&(y=y[0]);var x=new c(g,v.row,v.column),$=x.getCurrentToken();g.selection;var _=g.selection.toOrientedRange(),b,R;if($&&/comment/.test($.type)){for(var M,k;$&&/comment/.test($.type);){var S=$.value.indexOf(y.start);if(S!=-1){var E=x.getCurrentTokenRow(),I=x.getCurrentTokenColumn()+S;M=new f(E,I,E,I+y.start.length);break}$=x.stepBackward()}for(var x=new c(g,v.row,v.column),$=x.getCurrentToken();$&&/comment/.test($.type);){var S=$.value.indexOf(y.end);if(S!=-1){var E=x.getCurrentTokenRow(),I=x.getCurrentTokenColumn()+S;k=new f(E,I,E,I+y.end.length);break}$=x.stepForward()}k&&g.remove(k),M&&(g.remove(M),b=M.start.row,R=-y.start.length)}else R=y.start.length,b=m.start.row,g.insert(m.end,y.end),g.insert(m.start,y.start);_.start.row==b&&(_.start.column+=R),_.end.row==b&&(_.end.column+=R),g.selection.fromOrientedRange(_)}},this.getNextLineIndent=function(p,g,m){return this.$getIndent(g)},this.checkOutdent=function(p,g,m){return!1},this.autoOutdent=function(p,g,m){},this.$getIndent=function(p){return p.match(/^\s*/)[0]},this.createWorker=function(p){return null},this.createModeDelegates=function(p){this.$embeds=[],this.$modes={};for(var g in p)if(p[g]){var m=p[g],v=m.prototype.$id,y=o.$modes[v];y||(o.$modes[v]=y=new m),o.$modes[g]||(o.$modes[g]=y),this.$embeds.push(g),this.$modes[g]=y}for(var x=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],g=0;g"u"?this.setPosition(f.row,f.column):this.setPosition(f,d)}return a.prototype.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},a.prototype.getDocument=function(){return this.document},a.prototype.onChange=function(c){if(!(c.start.row==c.end.row&&c.start.row!=this.row)&&!(c.start.row>this.row)){var f=u(c,{row:this.row,column:this.column},this.$insertRight);this.setPosition(f.row,f.column,!0)}},a.prototype.setPosition=function(c,f,d){var p;if(d?p={row:c,column:f}:p=this.$clipPositionToDocument(c,f),!(this.row==p.row&&this.column==p.column)){var g={row:this.row,column:this.column};this.row=p.row,this.column=p.column,this._signal("change",{old:g,value:p})}},a.prototype.detach=function(){this.document.off("change",this.$onChange)},a.prototype.attach=function(c){this.document=c||this.document,this.document.on("change",this.$onChange)},a.prototype.$clipPositionToDocument=function(c,f){var d={};return c>=this.document.getLength()?(d.row=Math.max(0,this.document.getLength()-1),d.column=this.document.getLine(d.row).length):c<0?(d.row=0,d.column=0):(d.row=c,d.column=Math.min(this.document.getLine(d.row).length,Math.max(0,f))),f<0&&(d.column=0),d},a}();h.prototype.$insertRight=!1,o.implement(h.prototype,s);function l(a,c,f){var d=f?a.column<=c.column:a.column=p&&(f=p-1,d=void 0);var g=this.getLine(f);return d==null&&(d=g.length),d=Math.min(Math.max(d,0),g.length),{row:f,column:d}},c.prototype.clonePos=function(f){return{row:f.row,column:f.column}},c.prototype.pos=function(f,d){return{row:f,column:d}},c.prototype.$clipPosition=function(f){var d=this.getLength();return f.row>=d?(f.row=Math.max(0,d-1),f.column=this.getLine(d-1).length):(f.row=Math.max(0,f.row),f.column=Math.min(Math.max(f.column,0),this.getLine(f.row).length)),f},c.prototype.insertFullLines=function(f,d){f=Math.min(Math.max(f,0),this.getLength());var p=0;f0,g=d=0&&this.applyDelta({start:this.pos(f,this.getLine(f).length),end:this.pos(f+1,0),action:"remove",lines:["",""]})},c.prototype.replace=function(f,d){if(f instanceof l||(f=l.fromPoints(f.start,f.end)),d.length===0&&f.isEmpty())return f.start;if(d==this.getTextRange(f))return f.end;this.remove(f);var p;return d?p=this.insert(f.start,d):p=f.start,p},c.prototype.applyDeltas=function(f){for(var d=0;d=0;d--)this.revertDelta(f[d])},c.prototype.applyDelta=function(f,d){var p=f.action=="insert";(p?f.lines.length<=1&&!f.lines[0]:!l.comparePoints(f.start,f.end))||(p&&f.lines.length>2e4?this.$splitAndapplyLargeDelta(f,2e4):(s(this.$lines,f,d),this._signal("change",f)))},c.prototype.$safeApplyDelta=function(f){var d=this.$lines.length;(f.action=="remove"&&f.start.row20){c.running=setTimeout(c.$worker,20);break}}c.currentLine=d,p==-1&&(p=d),m<=p&&c.fireUpdateEvent(m,p)}}}return l.prototype.setTokenizer=function(u){this.tokenizer=u,this.lines=[],this.states=[],this.start(0)},l.prototype.setDocument=function(u){this.doc=u,this.lines=[],this.states=[],this.stop()},l.prototype.fireUpdateEvent=function(u,a){var c={first:u,last:a};this._signal("update",{data:c})},l.prototype.start=function(u){this.currentLine=Math.min(u||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},l.prototype.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},l.prototype.$updateOnChange=function(u){var a=u.start.row,c=u.end.row-a;if(c===0)this.lines[a]=null;else if(u.action=="remove")this.lines.splice(a,c+1,null),this.states.splice(a,c+1,null);else{var f=Array(c+1);f.unshift(a,1),this.lines.splice.apply(this.lines,f),this.states.splice.apply(this.states,f)}this.currentLine=Math.min(a,this.currentLine,this.doc.getLength()),this.stop()},l.prototype.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},l.prototype.getTokens=function(u){return this.lines[u]||this.$tokenizeRow(u)},l.prototype.getState=function(u){return this.currentLine==u&&this.$tokenizeRow(u),this.states[u]||"start"},l.prototype.$tokenizeRow=function(u){var a=this.doc.getLine(u),c=this.states[u-1],f=this.tokenizer.getLineTokens(a,c,u);return this.states[u]+""!=f.state+""?(this.states[u]=f.state,this.lines[u+1]=null,this.currentLine>u+1&&(this.currentLine=u+1)):this.currentLine==u&&(this.currentLine=u+1),this.lines[u]=f.tokens},l.prototype.cleanup=function(){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.removeAllListeners()},l}();o.implement(h.prototype,s),r.BackgroundTokenizer=h}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/range"],function(n,r,i){var o=n("./lib/lang"),s=n("./range").Range,h=function(){function l(u,a,c){c===void 0&&(c="text"),this.setRegexp(u),this.clazz=a,this.type=c}return l.prototype.setRegexp=function(u){this.regExp+""!=u+""&&(this.regExp=u,this.cache=[])},l.prototype.update=function(u,a,c,f){if(this.regExp)for(var d=f.firstRow,p=f.lastRow,g={},m=d;m<=p;m++){var v=this.cache[m];v==null&&(v=o.getMatchOffsets(c.getLine(m),this.regExp),v.length>this.MAX_RANGES&&(v=v.slice(0,this.MAX_RANGES)),v=v.map(function(_){return new s(m,_.offset,m,_.offset+_.length)}),this.cache[m]=v.length?v:"");for(var y=v.length;y--;){var x=v[y].toScreenRange(c),$=x.toString();g[$]||(g[$]=!0,a.drawSingleLineMarker(u,x,this.clazz,f))}}},l}();h.prototype.MAX_RANGES=500,r.SearchHighlight=h}),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(n,r,i){var o=n("../range").Range,s=function(){function h(l,u){this.foldData=l,Array.isArray(u)?this.folds=u:u=this.folds=[u];var a=u[u.length-1];this.range=new o(u[0].start.row,u[0].start.column,a.end.row,a.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(c){c.setFoldLine(this)},this)}return h.prototype.shiftRow=function(l){this.start.row+=l,this.end.row+=l,this.folds.forEach(function(u){u.start.row+=l,u.end.row+=l})},h.prototype.addFold=function(l){if(l.sameRow){if(l.start.rowthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(l),this.folds.sort(function(u,a){return-u.range.compareEnd(a.start.row,a.start.column)}),this.range.compareEnd(l.start.row,l.start.column)>0?(this.end.row=l.end.row,this.end.column=l.end.column):this.range.compareStart(l.end.row,l.end.column)<0&&(this.start.row=l.start.row,this.start.column=l.start.column)}else if(l.start.row==this.end.row)this.folds.push(l),this.end.row=l.end.row,this.end.column=l.end.column;else if(l.end.row==this.start.row)this.folds.unshift(l),this.start.row=l.start.row,this.start.column=l.start.column;else throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");l.foldLine=this},h.prototype.containsRow=function(l){return l>=this.start.row&&l<=this.end.row},h.prototype.walk=function(l,u,a){var c=0,f=this.folds,d,p,g,m=!0;u==null&&(u=this.end.row,a=this.end.column);for(var v=0;v0)){var m=s(u,p.start);return g===0?a&&m!==0?-d-2:d:m>0||m===0&&!a?d:-d-1}}return-d-1},l.prototype.add=function(u){var a=!u.isEmpty(),c=this.pointIndex(u.start,a);c<0&&(c=-c-1);var f=this.pointIndex(u.end,a,c);return f<0?f=-f-1:f++,this.ranges.splice(c,f-c,u)},l.prototype.addList=function(u){for(var a=[],c=u.length;c--;)a.push.apply(a,this.add(u[c]));return a},l.prototype.substractPoint=function(u){var a=this.pointIndex(u);if(a>=0)return this.ranges.splice(a,1)},l.prototype.merge=function(){var u=[],a=this.ranges;a=a.sort(function(g,m){return s(g.start,m.start)});for(var c=a[0],f,d=1;d=0},l.prototype.containsPoint=function(u){return this.pointIndex(u)>=0},l.prototype.rangeAtPoint=function(u){var a=this.pointIndex(u);if(a>=0)return this.ranges[a]},l.prototype.clipRows=function(u,a){var c=this.ranges;if(c[0].start.row>a||c[c.length-1].start.row=f)break}if(u.action=="insert")for(var y=d-f,x=-a.column+c.column;gf)break;if(v.start.row==f&&v.start.column>=a.column&&(v.start.column==a.column&&this.$bias<=0||(v.start.column+=x,v.start.row+=y)),v.end.row==f&&v.end.column>=a.column){if(v.end.column==a.column&&this.$bias<0)continue;v.end.column==a.column&&x>0&&gv.start.column&&v.end.column==p[g+1].start.column&&(v.end.column-=x),v.end.column+=x,v.end.row+=y}}else for(var y=f-d,x=a.column-c.column;gd)break;v.end.rowa.column)&&(v.end.column=a.column,v.end.row=a.row):(v.end.column+=x,v.end.row+=y):v.end.row>d&&(v.end.row+=y),v.start.rowa.column)&&(v.start.column=a.column,v.start.row=a.row):(v.start.column+=x,v.start.row+=y):v.start.row>d&&(v.start.row+=y)}if(y!=0&&g=c)return g;if(g.end.row>c)return null}return null},this.getNextFoldLine=function(c,f){var d=this.$foldData,p=0;for(f&&(p=d.indexOf(f)),p==-1&&(p=0),p;p=c)return g}return null},this.getFoldedRowCount=function(c,f){for(var d=this.$foldData,p=f-c+1,g=0;g=f){y=c?p-=f-y:p=0);break}else v>=c&&(y>=c?p-=v-y:p-=v-c+1)}return p},this.$addFoldLine=function(c){return this.$foldData.push(c),this.$foldData.sort(function(f,d){return f.start.row-d.start.row}),c},this.addFold=function(c,f){var d=this.$foldData,p=!1,g;c instanceof h?g=c:(g=new h(f,c),g.collapseChildren=f.collapseChildren),this.$clipRangeToDocument(g.range);var m=g.start.row,v=g.start.column,y=g.end.row,x=g.end.column,$=this.getFoldAt(m,v,1),_=this.getFoldAt(y,x,-1);if($&&_==$)return $.addSubFold(g);$&&!$.range.isStart(m,v)&&this.removeFold($),_&&!_.range.isEnd(y,x)&&this.removeFold(_);var b=this.getFoldsInRange(g.range);b.length>0&&(this.removeFolds(b),g.collapseChildren||b.forEach(function(S){g.addSubFold(S)}));for(var R=0;R0&&this.foldAll(c.start.row+1,c.end.row,c.collapseChildren-1),c.subFolds=[]},this.expandFolds=function(c){c.forEach(function(f){this.expandFold(f)},this)},this.unfold=function(c,f){var d,p;if(c==null)d=new o(0,0,this.getLength(),0),f==null&&(f=!0);else if(typeof c=="number")d=new o(c,0,c,this.getLine(c).length);else if("row"in c)d=o.fromPoints(c,c);else{if(Array.isArray(c))return p=[],c.forEach(function(m){p=p.concat(this.unfold(m))},this),p;d=c}p=this.getFoldsInRangeList(d);for(var g=p;p.length==1&&o.comparePoints(p[0].start,d.start)<0&&o.comparePoints(p[0].end,d.end)>0;)this.expandFolds(p),p=this.getFoldsInRangeList(d);if(f!=!1?this.removeFolds(p):this.expandFolds(p),g.length)return g},this.isRowFolded=function(c,f){return!!this.getFoldLine(c,f)},this.getRowFoldEnd=function(c,f){var d=this.getFoldLine(c,f);return d?d.end.row:c},this.getRowFoldStart=function(c,f){var d=this.getFoldLine(c,f);return d?d.start.row:c},this.getFoldDisplayLine=function(c,f,d,p,g){p==null&&(p=c.start.row),g==null&&(g=0),f==null&&(f=c.end.row),d==null&&(d=this.getLine(f).length);var m=this.doc,v="";return c.walk(function(y,x,$,_){if(!(xx)break;while(g&&v.test(g.type)&&!/^comment.start/.test(g.type));g=p.stepBackward()}else g=p.getCurrentToken();return y.end.row=p.getCurrentTokenRow(),y.end.column=p.getCurrentTokenColumn(),/^comment.end/.test(g.type)||(y.end.column+=g.value.length-2),y}},this.foldAll=function(c,f,d,p){d==null&&(d=1e5);var g=this.foldWidgets;if(g){f=f||this.getLength(),c=c||0;for(var m=c;m=c&&(m=v.end.row,v.collapseChildren=d,this.addFold("...",v))}}},this.foldToLevel=function(c){for(this.foldAll();c-- >0;)this.unfold(null,!1)},this.foldAllComments=function(){var c=this;this.foldAll(null,null,null,function(f){for(var d=c.getTokens(f),p=0;p=0;){var m=d[p];if(m==null&&(m=d[p]=this.getFoldWidget(p)),m=="start"){var v=this.getFoldWidgetRange(p);if(g||(g=v),v&&v.end.row>=c)break}p--}return{range:p!==-1&&v,firstRange:g}},this.onFoldWidgetClick=function(c,f){f instanceof u&&(f=f.domEvent);var d={children:f.shiftKey,all:f.ctrlKey||f.metaKey,siblings:f.altKey},p=this.$toggleFoldWidget(c,d);if(!p){var g=f.target||f.srcElement;g&&/ace_fold-widget/.test(g.className)&&(g.className+=" ace_invalid")}},this.$toggleFoldWidget=function(c,f){if(this.getFoldWidget){var d=this.getFoldWidget(c),p=this.getLine(c),g=d==="end"?-1:1,m=this.getFoldAt(c,g===-1?0:p.length,g);if(m)return f.children||f.all?this.removeFold(m):this.expandFold(m),m;var v=this.getFoldWidgetRange(c,!0);if(v&&!v.isMultiLine()&&(m=this.getFoldAt(v.start.row,v.start.column,1),m&&v.isEqual(m.range)))return this.removeFold(m),m;if(f.siblings){var y=this.getParentFoldRangeData(c);if(y.range)var x=y.range.start.row+1,$=y.range.end.row;this.foldAll(x,$,f.all?1e4:0)}else f.children?($=v?v.end.row:this.getLength(),this.foldAll(c+1,$,f.all?1e4:0)):v&&(f.all&&(v.collapseChildren=1e4),this.addFold("...",v));return v}},this.toggleFoldWidget=function(c){var f=this.selection.getCursor().row;f=this.getRowFoldStart(f);var d=this.$toggleFoldWidget(f,{});if(!d){var p=this.getParentFoldRangeData(f,!0);if(d=p.range||p.firstRange,d){f=d.start.row;var g=this.getFoldAt(f,this.getLine(f).length,1);g?this.removeFold(g):this.addFold("...",d)}}},this.updateFoldWidgets=function(c){var f=c.start.row,d=c.end.row-f;if(d===0)this.foldWidgets[f]=null;else if(c.action=="remove")this.foldWidgets.splice(f,d+1,null);else{var p=Array(d+1);p.unshift(f,1),this.foldWidgets.splice.apply(this.foldWidgets,p)}},this.tokenizerUpdateFoldWidgets=function(c){var f=c.data;f.first!=f.last&&this.foldWidgets.length>f.first&&this.foldWidgets.splice(f.first,this.foldWidgets.length)}}r.Folding=a}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(n,r,i){var o=n("../token_iterator").TokenIterator,s=n("../range").Range;function h(){this.findMatchingBracket=function(l,u){if(l.column==0)return null;var a=u||this.getLine(l.row).charAt(l.column-1);if(a=="")return null;var c=a.match(/([\(\[\{])|([\)\]\}])/);return c?c[1]?this.$findClosingBracket(c[1],l):this.$findOpeningBracket(c[2],l):null},this.getBracketRange=function(l){var u=this.getLine(l.row),a=!0,c,f=u.charAt(l.column-1),d=f&&f.match(/([\(\[\{])|([\)\]\}])/);if(d||(f=u.charAt(l.column),l={row:l.row,column:l.column+1},d=f&&f.match(/([\(\[\{])|([\)\]\}])/),a=!1),!d)return null;if(d[1]){var p=this.$findClosingBracket(d[1],l);if(!p)return null;c=s.fromPoints(l,p),a||(c.end.column++,c.start.column--),c.cursor=c.end}else{var p=this.$findOpeningBracket(d[2],l);if(!p)return null;c=s.fromPoints(p,l),a||(c.start.column++,c.end.column--),c.cursor=c.start}return c},this.getMatchingBracketRanges=function(l,u){var a=this.getLine(l.row),c=/([\(\[\{])|([\)\]\}])/,f=!u&&a.charAt(l.column-1),d=f&&f.match(c);if(d||(f=(u===void 0||u)&&a.charAt(l.column),l={row:l.row,column:l.column+1},d=f&&f.match(c)),!d)return null;var p=new s(l.row,l.column-1,l.row,l.column),g=d[1]?this.$findClosingBracket(d[1],l):this.$findOpeningBracket(d[2],l);if(!g)return[p];var m=new s(g.row,g.column,g.row,g.column+1);return[p,m]},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(l,u,a){var c=this.$brackets[l],f=1,d=new o(this,u.row,u.column),p=d.getCurrentToken();if(p||(p=d.stepForward()),!!p){a||(a=new RegExp("(\\.?"+p.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)").replace(/-close\b/,"-(close|open)")+")+"));for(var g=u.column-d.getCurrentTokenColumn()-2,m=p.value;;){for(;g>=0;){var v=m.charAt(g);if(v==c){if(f-=1,f==0)return{row:d.getCurrentTokenRow(),column:g+d.getCurrentTokenColumn()}}else v==l&&(f+=1);g-=1}do p=d.stepBackward();while(p&&!a.test(p.type));if(p==null)break;m=p.value,g=m.length-1}return null}},this.$findClosingBracket=function(l,u,a){var c=this.$brackets[l],f=1,d=new o(this,u.row,u.column),p=d.getCurrentToken();if(p||(p=d.stepForward()),!!p){a||(a=new RegExp("(\\.?"+p.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)").replace(/-open\b/,"-(close|open)")+")+"));for(var g=u.column-d.getCurrentTokenColumn();;){for(var m=p.value,v=m.length;g"?c=!0:u.type.indexOf("tag-name")!==-1&&(a=!0));while(u&&!a);return u},this.$findClosingTag=function(l,u){var a,c=u.value,f=u.value,d=0,p=new s(l.getCurrentTokenRow(),l.getCurrentTokenColumn(),l.getCurrentTokenRow(),l.getCurrentTokenColumn()+1);u=l.stepForward();var g=new s(l.getCurrentTokenRow(),l.getCurrentTokenColumn(),l.getCurrentTokenRow(),l.getCurrentTokenColumn()+u.value.length),m=!1;do if(a=u,u=l.stepForward(),u){if(u.value===">"&&!m){var v=new s(l.getCurrentTokenRow(),l.getCurrentTokenColumn(),l.getCurrentTokenRow(),l.getCurrentTokenColumn()+1);m=!0}if(u.type.indexOf("tag-name")!==-1){if(c=u.value,f===c){if(a.value==="<")d++;else if(a.value==="")var $=new s(l.getCurrentTokenRow(),l.getCurrentTokenColumn(),l.getCurrentTokenRow(),l.getCurrentTokenColumn()+1);else return}}}else if(f===c&&u.value==="/>"&&(d--,d<0))var y=new s(l.getCurrentTokenRow(),l.getCurrentTokenColumn(),l.getCurrentTokenRow(),l.getCurrentTokenColumn()+2),x=y,$=x,v=new s(g.end.row,g.end.column,g.end.row,g.end.column+1)}while(u&&d>=0);if(p&&v&&y&&$&&g&&x)return{openTag:new s(p.start.row,p.start.column,v.end.row,v.end.column),closeTag:new s(y.start.row,y.start.column,$.end.row,$.end.column),openTagName:g,closeTagName:x}},this.$findOpeningTag=function(l,u){var a=l.getCurrentToken(),c=u.value,f=0,d=l.getCurrentTokenRow(),p=l.getCurrentTokenColumn(),g=p+2,m=new s(d,p,d,g);l.stepForward();var v=new s(l.getCurrentTokenRow(),l.getCurrentTokenColumn(),l.getCurrentTokenRow(),l.getCurrentTokenColumn()+u.value.length);if(u=l.stepForward(),!(!u||u.value!==">")){var y=new s(l.getCurrentTokenRow(),l.getCurrentTokenColumn(),l.getCurrentTokenRow(),l.getCurrentTokenColumn()+1);l.stepBackward(),l.stepBackward();do if(u=a,d=l.getCurrentTokenRow(),p=l.getCurrentTokenColumn(),g=p+u.value.length,a=l.stepBackward(),u){if(u.type.indexOf("tag-name")!==-1){if(c===u.value)if(a.value==="<"){if(f++,f>0){var x=new s(d,p,d,g),$=new s(l.getCurrentTokenRow(),l.getCurrentTokenColumn(),l.getCurrentTokenRow(),l.getCurrentTokenColumn()+1);do u=l.stepForward();while(u&&u.value!==">");var _=new s(l.getCurrentTokenRow(),l.getCurrentTokenColumn(),l.getCurrentTokenRow(),l.getCurrentTokenColumn()+1)}}else a.value===""){for(var b=0,R=a;R;){if(R.type.indexOf("tag-name")!==-1&&R.value===c){f--;break}else if(R.value==="<")break;R=l.stepBackward(),b++}for(var M=0;MC&&(this.$docRowCache.splice(C,I),this.$screenRowCache.splice(C,I))},S.prototype.$getRowCacheIndex=function(E,I){for(var C=0,w=E.length-1;C<=w;){var T=C+w>>1,O=E[T];if(I>O)C=T+1;else if(I=I));O++);return w=C[O],w?(w.index=O,w.start=T-w.value.length,w):null},S.prototype.setUndoManager=function(E){if(this.$undoManager=E,this.$informUndoManager&&this.$informUndoManager.cancel(),E){var I=this;E.addSession(this),this.$syncInformUndoManager=function(){I.$informUndoManager.cancel(),I.mergeUndoDeltas=!1},this.$informUndoManager=s.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},S.prototype.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},S.prototype.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},S.prototype.getTabString=function(){return this.getUseSoftTabs()?s.stringRepeat(" ",this.getTabSize()):" "},S.prototype.setUseSoftTabs=function(E){this.setOption("useSoftTabs",E)},S.prototype.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},S.prototype.setTabSize=function(E){this.setOption("tabSize",E)},S.prototype.getTabSize=function(){return this.$tabSize},S.prototype.isTabStop=function(E){return this.$useSoftTabs&&E.column%this.$tabSize===0},S.prototype.setNavigateWithinSoftTabs=function(E){this.setOption("navigateWithinSoftTabs",E)},S.prototype.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},S.prototype.setOverwrite=function(E){this.setOption("overwrite",E)},S.prototype.getOverwrite=function(){return this.$overwrite},S.prototype.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},S.prototype.addGutterDecoration=function(E,I){this.$decorations[E]||(this.$decorations[E]=""),this.$decorations[E]+=" "+I,this._signal("changeBreakpoint",{})},S.prototype.removeGutterDecoration=function(E,I){this.$decorations[E]=(this.$decorations[E]||"").replace(" "+I,""),this._signal("changeBreakpoint",{})},S.prototype.getBreakpoints=function(){return this.$breakpoints},S.prototype.setBreakpoints=function(E){this.$breakpoints=[];for(var I=0;I0&&(w=!!C.charAt(I-1).match(this.tokenRe)),w||(w=!!C.charAt(I).match(this.tokenRe)),w)var T=this.tokenRe;else if(/^\s+$/.test(C.slice(I-1,I+1)))var T=/\s/;else var T=this.nonTokenRe;var O=I;if(O>0){do O--;while(O>=0&&C.charAt(O).match(T));O++}for(var N=I;NE&&(E=I.screenWidth)}),this.lineWidgetWidth=E},S.prototype.$computeWidth=function(E){if(this.$modified||E){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var I=this.doc.getAllLines(),C=this.$rowLengthCache,w=0,T=0,O=this.$foldData[T],N=O?O.start.row:1/0,B=I.length,H=0;HN){if(H=O.end.row+1,H>=B)break;O=this.$foldData[T++],N=O?O.start.row:1/0}C[H]==null&&(C[H]=this.$getStringScreenWidth(I[H])[0]),C[H]>w&&(w=C[H])}this.screenWidth=w}},S.prototype.getLine=function(E){return this.doc.getLine(E)},S.prototype.getLines=function(E,I){return this.doc.getLines(E,I)},S.prototype.getLength=function(){return this.doc.getLength()},S.prototype.getTextRange=function(E){return this.doc.getTextRange(E||this.selection.getRange())},S.prototype.insert=function(E,I){return this.doc.insert(E,I)},S.prototype.remove=function(E){return this.doc.remove(E)},S.prototype.removeFullLines=function(E,I){return this.doc.removeFullLines(E,I)},S.prototype.undoChanges=function(E,I){if(E.length){this.$fromUndo=!0;for(var C=E.length-1;C!=-1;C--){var w=E[C];w.action=="insert"||w.action=="remove"?this.doc.revertDelta(w):w.folds&&this.addFolds(w.folds)}!I&&this.$undoSelect&&(E.selectionBefore?this.selection.fromJSON(E.selectionBefore):this.selection.setRange(this.$getUndoSelection(E,!0))),this.$fromUndo=!1}},S.prototype.redoChanges=function(E,I){if(E.length){this.$fromUndo=!0;for(var C=0;CE.end.column&&(O.start.column+=B),O.end.row==E.end.row&&O.end.column>E.end.column&&(O.end.column+=B)),N&&O.start.row>=E.end.row&&(O.start.row+=N,O.end.row+=N)}if(O.end=this.insert(O.start,w),T.length){var H=E.start,z=O.start,N=z.row-H.row,B=z.column-H.column;this.addFolds(T.map(function(G){return G=G.clone(),G.start.row==H.row&&(G.start.column+=B),G.end.row==H.row&&(G.end.column+=B),G.start.row+=N,G.end.row+=N,G}))}return O},S.prototype.indentRows=function(E,I,C){C=C.replace(/\t/g,this.getTabString());for(var w=E;w<=I;w++)this.doc.insertInLine({row:w,column:0},C)},S.prototype.outdentRows=function(E){for(var I=E.collapseRows(),C=new f(0,0,0,0),w=this.getTabSize(),T=I.start.row;T<=I.end.row;++T){var O=this.getLine(T);C.start.row=T,C.end.row=T;for(var N=0;N0){var w=this.getRowFoldEnd(I+C);if(w>this.doc.getLength()-1)return 0;var T=w-I}else{E=this.$clipRowToDocument(E),I=this.$clipRowToDocument(I);var T=I-E+1}var O=new f(E,0,I,Number.MAX_VALUE),N=this.getFoldsInRange(O).map(function(H){return H=H.clone(),H.start.row+=T,H.end.row+=T,H}),B=C==0?this.doc.getLines(E,I):this.doc.removeFullLines(E,I);return this.doc.insertFullLines(E+T,B),N.length&&this.addFolds(N),T},S.prototype.moveLinesUp=function(E,I){return this.$moveLines(E,I,-1)},S.prototype.moveLinesDown=function(E,I){return this.$moveLines(E,I,1)},S.prototype.duplicateLines=function(E,I){return this.$moveLines(E,I,0)},S.prototype.$clipRowToDocument=function(E){return Math.max(0,Math.min(E,this.doc.getLength()-1))},S.prototype.$clipColumnToRow=function(E,I){return I<0?0:Math.min(this.doc.getLine(E).length,I)},S.prototype.$clipPositionToDocument=function(E,I){if(I=Math.max(0,I),E<0)E=0,I=0;else{var C=this.doc.getLength();E>=C?(E=C-1,I=this.doc.getLine(C-1).length):I=Math.min(this.doc.getLine(E).length,I)}return{row:E,column:I}},S.prototype.$clipRangeToDocument=function(E){E.start.row<0?(E.start.row=0,E.start.column=0):E.start.column=this.$clipColumnToRow(E.start.row,E.start.column);var I=this.doc.getLength()-1;return E.end.row>I?(E.end.row=I,E.end.column=this.doc.getLine(I).length):E.end.column=this.$clipColumnToRow(E.end.row,E.end.column),E},S.prototype.setUseWrapMode=function(E){if(E!=this.$useWrapMode){if(this.$useWrapMode=E,this.$modified=!0,this.$resetRowCache(0),E){var I=this.getLength();this.$wrapData=Array(I),this.$updateWrapData(0,I-1)}this._signal("changeWrapMode")}},S.prototype.getUseWrapMode=function(){return this.$useWrapMode},S.prototype.setWrapLimitRange=function(E,I){(this.$wrapLimitRange.min!==E||this.$wrapLimitRange.max!==I)&&(this.$wrapLimitRange={min:E,max:I},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},S.prototype.adjustWrapLimit=function(E,I){var C=this.$wrapLimitRange;C.max<0&&(C={min:I,max:I});var w=this.$constrainWrapLimit(E,C.min,C.max);return w!=this.$wrapLimit&&w>1?(this.$wrapLimit=w,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},S.prototype.$constrainWrapLimit=function(E,I,C){return I&&(E=Math.max(I,E)),C&&(E=Math.min(C,E)),E},S.prototype.getWrapLimit=function(){return this.$wrapLimit},S.prototype.setWrapLimit=function(E){this.setWrapLimitRange(E,E)},S.prototype.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},S.prototype.$updateInternalDataOnChange=function(E){var I=this.$useWrapMode,C=E.action,w=E.start,T=E.end,O=w.row,N=T.row,B=N-O,H=null;if(this.$updating=!0,B!=0)if(C==="remove"){this[I?"$wrapData":"$rowLengthCache"].splice(O,B);var z=this.$foldData;H=this.getFoldsInRange(E),this.removeFolds(H);var F=this.getFoldLine(T.row),W=0;if(F){F.addRemoveChars(T.row,T.column,w.column-T.column),F.shiftRow(-B);var G=this.getFoldLine(O);G&&G!==F&&(G.merge(F),F=G),W=z.indexOf(F)+1}for(W;W=T.row&&F.shiftRow(-B)}N=O}else{var U=Array(B);U.unshift(O,0);var Q=I?this.$wrapData:this.$rowLengthCache;Q.splice.apply(Q,U);var z=this.$foldData,F=this.getFoldLine(O),W=0;if(F){var ee=F.range.compareInside(w.row,w.column);ee==0?(F=F.split(w.row,w.column),F&&(F.shiftRow(B),F.addRemoveChars(N,0,T.column-w.column))):ee==-1&&(F.addRemoveChars(O,0,T.column-w.column),F.shiftRow(B)),W=z.indexOf(F)+1}for(W;W=O&&F.shiftRow(B)}}else{B=Math.abs(E.start.column-E.end.column),C==="remove"&&(H=this.getFoldsInRange(E),this.removeFolds(H),B=-B);var F=this.getFoldLine(O);F&&F.addRemoveChars(O,w.column,B)}return I&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,I?this.$updateWrapData(O,N):this.$updateRowLengthCache(O,N),H},S.prototype.$updateRowLengthCache=function(E,I,C){this.$rowLengthCache[E]=null,this.$rowLengthCache[I]=null},S.prototype.$updateWrapData=function(E,I){var C=this.doc.getAllLines(),w=this.getTabSize(),T=this.$wrapData,O=this.$wrapLimit,N,B,H=E;for(I=Math.min(I,C.length-1);H<=I;)B=this.getFoldLine(H,B),B?(N=[],B.walk(function(z,F,W,G){var U;if(z!=null){U=this.$getDisplayTokens(z,N.length),U[0]=x;for(var Q=1;QI-G;){var U=O+I-G;if(E[U-1]>=b&&E[U]>=b){W(U);continue}if(E[U]==x||E[U]==$){for(U;U!=O-1&&E[U]!=x;U--);if(U>O){W(U);continue}for(U=O+I,U;U>2)),O-1);U>Q&&E[U]Q&&E[U]Q&&E[U]==_;)U--}else for(;U>Q&&E[U]Q){W(++U);continue}U=O+I,E[U]==y&&U--,W(U-G)}return w},S.prototype.$getDisplayTokens=function(E,I){var C=[],w;I=I||0;for(var T=0;T39&&O<48||O>57&&O<64?C.push(_):O>=4352&&k(O)?C.push(v,y):C.push(v)}return C},S.prototype.$getStringScreenWidth=function(E,I,C){if(I==0)return[0,0];I==null&&(I=1/0),C=C||0;var w,T;for(T=0;T=4352&&k(w)?C+=2:C+=1,!(C>I));T++);return[C,T]},S.prototype.getRowLength=function(E){var I=1;return this.lineWidgets&&(I+=this.lineWidgets[E]&&this.lineWidgets[E].rowCount||0),!this.$useWrapMode||!this.$wrapData[E]?I:this.$wrapData[E].length+I},S.prototype.getRowLineCount=function(E){return!this.$useWrapMode||!this.$wrapData[E]?1:this.$wrapData[E].length+1},S.prototype.getRowWrapIndent=function(E){if(this.$useWrapMode){var I=this.screenToDocumentPosition(E,Number.MAX_VALUE),C=this.$wrapData[I.row];return C.length&&C[0]=0)var B=z[F],T=this.$docRowCache[F],G=E>z[W-1];else var G=!W;for(var U=this.getLength()-1,Q=this.getNextFoldLine(T),ee=Q?Q.start.row:1/0;B<=E&&(H=this.getRowLength(T),!(B+H>E||T>=U));)B+=H,T++,T>ee&&(T=Q.end.row+1,Q=this.getNextFoldLine(T,Q),ee=Q?Q.start.row:1/0),G&&(this.$docRowCache.push(T),this.$screenRowCache.push(B));if(Q&&Q.start.row<=T)w=this.getFoldDisplayLine(Q),T=Q.start.row;else{if(B+H<=E||T>U)return{row:U,column:this.getLine(U).length};w=this.getLine(T),Q=null}var V=0,q=Math.floor(E-B);if(this.$useWrapMode){var re=this.$wrapData[T];re&&(N=re[q],q>0&&re.length&&(V=re.indent,O=re[q-1]||re[re.length-1],w=w.substring(O)))}return C!==void 0&&this.$bidiHandler.isBidiRow(B+q,T,q)&&(I=this.$bidiHandler.offsetToCol(C)),O+=this.$getStringScreenWidth(w,I-V)[1],this.$useWrapMode&&O>=N&&(O=N-1),Q?Q.idxToPosition(O):{row:T,column:O}},S.prototype.documentToScreenPosition=function(E,I){if(typeof I>"u")var C=this.$clipPositionToDocument(E.row,E.column);else C=this.$clipPositionToDocument(E,I);E=C.row,I=C.column;var w=0,T=null,O=null;O=this.getFoldAt(E,I,1),O&&(E=O.start.row,I=O.start.column);var N,B=0,H=this.$docRowCache,z=this.$getRowCacheIndex(H,E),F=H.length;if(F&&z>=0)var B=H[z],w=this.$screenRowCache[z],W=E>H[F-1];else var W=!F;for(var G=this.getNextFoldLine(B),U=G?G.start.row:1/0;B=U){if(N=G.end.row+1,N>E)break;G=this.getNextFoldLine(N,G),U=G?G.start.row:1/0}else N=B+1;w+=this.getRowLength(B),B=N,W&&(this.$docRowCache.push(B),this.$screenRowCache.push(w))}var Q="";G&&B>=U?(Q=this.getFoldDisplayLine(G,E,I),T=G.start.row):(Q=this.getLine(E).substring(0,I),T=E);var ee=0;if(this.$useWrapMode){var V=this.$wrapData[T];if(V){for(var q=0;Q.length>=V[q];)w++,q++;Q=Q.substring(V[q-1]||0,Q.length),ee=q>0?V.indent:0}}return this.lineWidgets&&this.lineWidgets[B]&&this.lineWidgets[B].rowsAbove&&(w+=this.lineWidgets[B].rowsAbove),{row:w,column:ee+this.$getStringScreenWidth(Q)[0]}},S.prototype.documentToScreenColumn=function(E,I){return this.documentToScreenPosition(E,I).column},S.prototype.documentToScreenRow=function(E,I){return this.documentToScreenPosition(E,I).row},S.prototype.getScreenLength=function(){var E=0,I=null;if(this.$useWrapMode)for(var T=this.$wrapData.length,O=0,w=0,I=this.$foldData[w++],N=I?I.start.row:1/0;ON&&(O=I.end.row+1,I=this.$foldData[w++],N=I?I.start.row:1/0)}else{E=this.getLength();for(var C=this.$foldData,w=0;wC));O++);return[w,O]})},S.prototype.destroy=function(){this.destroyed||(this.bgTokenizer.setDocument(null),this.bgTokenizer.cleanup(),this.destroyed=!0),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off("change",this.$onChange),this.selection.detach()},S}();m.$uid=0,m.prototype.$modes=l.$modes,m.prototype.getValue=m.prototype.toString,m.prototype.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},m.prototype.$overwrite=!1,m.prototype.$mode=null,m.prototype.$modeId=null,m.prototype.$scrollTop=0,m.prototype.$scrollLeft=0,m.prototype.$wrapLimit=80,m.prototype.$useWrapMode=!1,m.prototype.$wrapLimitRange={min:null,max:null},m.prototype.lineWidgets=null,m.prototype.isFullWidth=k,o.implement(m.prototype,u);var v=1,y=2,x=3,$=4,_=9,b=10,R=11,M=12;function k(S){return S<4352?!1:S>=4352&&S<=4447||S>=4515&&S<=4519||S>=4602&&S<=4607||S>=9001&&S<=9002||S>=11904&&S<=11929||S>=11931&&S<=12019||S>=12032&&S<=12245||S>=12272&&S<=12283||S>=12288&&S<=12350||S>=12353&&S<=12438||S>=12441&&S<=12543||S>=12549&&S<=12589||S>=12593&&S<=12686||S>=12688&&S<=12730||S>=12736&&S<=12771||S>=12784&&S<=12830||S>=12832&&S<=12871||S>=12880&&S<=13054||S>=13056&&S<=19903||S>=19968&&S<=42124||S>=42128&&S<=42182||S>=43360&&S<=43388||S>=44032&&S<=55203||S>=55216&&S<=55238||S>=55243&&S<=55291||S>=63744&&S<=64255||S>=65040&&S<=65049||S>=65072&&S<=65106||S>=65108&&S<=65126||S>=65128&&S<=65131||S>=65281&&S<=65376||S>=65504&&S<=65510}n("./edit_session/folding").Folding.call(m.prototype),n("./edit_session/bracket_match").BracketMatch.call(m.prototype),l.defineOptions(m.prototype,"session",{wrap:{set:function(S){if(!S||S=="off"?S=!1:S=="free"?S=!0:S=="printMargin"?S=-1:typeof S=="string"&&(S=parseInt(S,10)||!1),this.$wrap!=S)if(this.$wrap=S,!S)this.setUseWrapMode(!1);else{var E=typeof S=="number"?S:null;this.setWrapLimitRange(E,E),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(S){S=S=="auto"?this.$mode.type!="text":S!="text",S!=this.$wrapAsCode&&(this.$wrapAsCode=S,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(S){this.$useWorker=S,this.$stopWorker(),S&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(S){S=parseInt(S),S>0&&this.$tabSize!==S&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=S,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(S){this.setFoldStyle(S)},handlesSet:!0},overwrite:{set:function(S){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(S){this.doc.setNewLineMode(S)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(S){this.setMode(S)},get:function(){return this.$modeId},handlesSet:!0}}),r.EditSession=m}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(n,r,i){var o=n("./lib/lang"),s=n("./lib/oop"),h=n("./range").Range,l=function(){function a(){this.$options={}}return a.prototype.set=function(c){return s.mixin(this.$options,c),this},a.prototype.getOptions=function(){return o.copyObject(this.$options)},a.prototype.setOptions=function(c){this.$options=c},a.prototype.find=function(c){var f=this.$options,d=this.$matchIterator(c,f);if(!d)return!1;var p=null;return d.forEach(function(g,m,v,y){return p=new h(g,m,v,y),m==y&&f.start&&f.start.start&&f.skipCurrent!=!1&&p.isEqual(f.start)?(p=null,!1):!0}),p},a.prototype.findAll=function(c){var f=this.$options;if(!f.needle)return[];this.$assembleRegExp(f);var d=f.range,p=d?c.getLines(d.start.row,d.end.row):c.doc.getAllLines(),g=[],m=f.re;if(f.$isMultiLine){var v=m.length,y=p.length-v,x;e:for(var $=m.offset||0;$<=y;$++){for(var _=0;_M||(g.push(x=new h($,M,$+v-1,k)),v>2&&($=$+v-2))}}else for(var S=0;Sw&&g[_].end.row==T;)_--;for(g=g.slice(S,_+1),S=0,_=g.length;S<_;S++)g[S].start.row+=d.start.row,g[S].end.row+=d.start.row}return g},a.prototype.replace=function(c,f){var d=this.$options,p=this.$assembleRegExp(d);if(d.$isMultiLine)return f;if(p){var g=p.exec(c);if(!g||g[0].length!=c.length)return null;if(f=c.replace(p,f),d.preserveCase){f=f.split("");for(var m=Math.min(c.length,c.length);m--;){var v=c[m];v&&v.toLowerCase()!=v?f[m]=f[m].toUpperCase():f[m]=f[m].toLowerCase()}f=f.join("")}return f}},a.prototype.$assembleRegExp=function(c,f){if(c.needle instanceof RegExp)return c.re=c.needle;var d=c.needle;if(!c.needle)return c.re=!1;c.regExp||(d=o.escapeRegExp(d)),c.wholeWord&&(d=u(d,c));var p=c.caseSensitive?"gm":"gmi";if(c.$isMultiLine=!f&&/[\n\r]/.test(d),c.$isMultiLine)return c.re=this.$assembleMultilineRegExp(d,p);try{var g=new RegExp(d,p)}catch{g=!1}return c.re=g},a.prototype.$assembleMultilineRegExp=function(c,f){for(var d=c.replace(/\r\n|\r|\n/g,`$ -^`).split(` -`),p=[],g=0;g=y;M--)if(b(M,Number.MAX_VALUE,R))return;if(f.wrap!=!1){for(M=x,y=v.row;M>=y;M--)if(b(M,Number.MAX_VALUE,R))return}}};else var $=function(M){var k=v.row;if(!b(k,v.column,M)){for(k=k+1;k<=x;k++)if(b(k,0,M))return;if(f.wrap!=!1){for(k=y,x=v.row;k<=x;k++)if(b(k,0,M))return}}};if(f.$isMultiLine)var _=d.length,b=function(R,M,k){var S=p?R-_+1:R;if(!(S<0||S+_>c.getLength())){var E=c.getLine(S),I=E.search(d[0]);if(!(!p&&IM)&&k(S,I,S+_-1,w))return!0}}};else if(p)var b=function(M,k,S){var E=c.getLine(M),I=[],C,w=0;for(d.lastIndex=0;C=d.exec(E);){var T=C[0].length;if(w=C.index,!T){if(w>=E.length)break;d.lastIndex=w+=1}if(C.index+T>k)break;I.push(C.index,T)}for(var O=I.length-1;O>=0;O-=2){var N=I[O-1],T=I[O];if(S(M,N,M,N+T))return!0}};else var b=function(M,k,S){var E=c.getLine(M),I,C;for(d.lastIndex=k;C=d.exec(E);){var w=C[0].length;if(I=C.index,S(M,I,M,I+w))return!0;if(!w&&(d.lastIndex=I+=1,I>=E.length))return!1}};return{forEach:$}},a}();function u(a,c){function f(d){return/\w/.test(d)||c.regExp?"\\b":""}return f(a[0])+a+f(a[a.length-1])}r.Search=l}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(n,r,i){var o=n("../lib/keys"),s=n("../lib/useragent"),h=o.KEY_MODS;function l(a,c){this.platform=c||(s.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(a),this.$singleCommand=!0}function u(a,c){l.call(this,a,c),this.$singleCommand=!1}u.prototype=l.prototype,function(){this.addCommand=function(c){this.commands[c.name]&&this.removeCommand(c),this.commands[c.name]=c,c.bindKey&&this._buildKeyHash(c)},this.removeCommand=function(c,f){var d=c&&(typeof c=="string"?c:c.name);c=this.commands[d],f||delete this.commands[d];var p=this.commandKeyBinding;for(var g in p){var m=p[g];if(m==c)delete p[g];else if(Array.isArray(m)){var v=m.indexOf(c);v!=-1&&(m.splice(v,1),m.length==1&&(p[g]=m[0]))}}},this.bindKey=function(c,f,d){if(typeof c=="object"&&c&&(d==null&&(d=c.position),c=c[this.platform]),!!c){if(typeof f=="function")return this.addCommand({exec:f,bindKey:c,name:f.name||c});c.split("|").forEach(function(p){var g="";if(p.indexOf(" ")!=-1){var m=p.split(/\s+/);p=m.pop(),m.forEach(function(x){var $=this.parseKeys(x),_=h[$.hashId]+$.key;g+=(g?" ":"")+_,this._addCommandToBinding(g,"chainKeys")},this),g+=" "}var v=this.parseKeys(p),y=h[v.hashId]+v.key;this._addCommandToBinding(g+y,f,d)},this)}};function a(c){return typeof c=="object"&&c.bindKey&&c.bindKey.position||(c.isDefault?-100:0)}this._addCommandToBinding=function(c,f,d){var p=this.commandKeyBinding,g;if(!f)delete p[c];else if(!p[c]||this.$singleCommand)p[c]=f;else{Array.isArray(p[c])?(g=p[c].indexOf(f))!=-1&&p[c].splice(g,1):p[c]=[p[c]],typeof d!="number"&&(d=a(f));var m=p[c];for(g=0;gd)break}m.splice(g,0,f)}},this.addCommands=function(c){c&&Object.keys(c).forEach(function(f){var d=c[f];if(d){if(typeof d=="string")return this.bindKey(d,f);typeof d=="function"&&(d={exec:d}),typeof d=="object"&&(d.name||(d.name=f),this.addCommand(d))}},this)},this.removeCommands=function(c){Object.keys(c).forEach(function(f){this.removeCommand(c[f])},this)},this.bindKeys=function(c){Object.keys(c).forEach(function(f){this.bindKey(f,c[f])},this)},this._buildKeyHash=function(c){this.bindKey(c.bindKey,c)},this.parseKeys=function(c){var f=c.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(y){return y}),d=f.pop(),p=o[d];if(o.FUNCTION_KEYS[p])d=o.FUNCTION_KEYS[p].toLowerCase();else if(f.length){if(f.length==1&&f[0]=="shift")return{key:d.toUpperCase(),hashId:-1}}else return{key:d,hashId:-1};for(var g=0,m=f.length;m--;){var v=o.KEY_MODS[f[m]];if(v==null)return typeof console<"u"&&console.error("invalid modifier "+f[m]+" in "+c),!1;g|=v}return{key:d,hashId:g}},this.findKeyCommand=function(f,d){var p=h[f]+d;return this.commandKeyBinding[p]},this.handleKeyboard=function(c,f,d,p){if(!(p<0)){var g=h[f]+d,m=this.commandKeyBinding[g];return c.$keyChain&&(c.$keyChain+=" "+g,m=this.commandKeyBinding[c.$keyChain]||m),m&&(m=="chainKeys"||m[m.length-1]=="chainKeys")?(c.$keyChain=c.$keyChain||g,{command:"null"}):(c.$keyChain&&((!f||f==4)&&d.length==1?c.$keyChain=c.$keyChain.slice(0,-g.length-1):(f==-1||p>0)&&(c.$keyChain="")),{command:m})}},this.getStatusText=function(c,f){return f.$keyChain||""}}.call(l.prototype),r.HashHandler=l,r.MultiHashHandler=u}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(n,r,i){var o=this&&this.__extends||function(){var a=function(c,f){return a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,p){d.__proto__=p}||function(d,p){for(var g in p)Object.prototype.hasOwnProperty.call(p,g)&&(d[g]=p[g])},a(c,f)};return function(c,f){if(typeof f!="function"&&f!==null)throw new TypeError("Class extends value "+String(f)+" is not a constructor or null");a(c,f);function d(){this.constructor=c}c.prototype=f===null?Object.create(f):(d.prototype=f.prototype,new d)}}(),s=n("../lib/oop"),h=n("../keyboard/hash_handler").MultiHashHandler,l=n("../lib/event_emitter").EventEmitter,u=function(a){o(c,a);function c(f,d){var p=a.call(this,d,f)||this;return p.byName=p.commands,p.setDefaultHandler("exec",function(g){return g.args?g.command.exec(g.editor,g.args,g.event,!1):g.command.exec(g.editor,{},g.event,!0)}),p}return c.prototype.exec=function(f,d,p){if(Array.isArray(f)){for(var g=f.length;g--;)if(this.exec(f[g],d,p))return!0;return!1}if(typeof f=="string"&&(f=this.commands[f]),!f||d&&d.$readOnly&&!f.readOnly||this.$checkCommandState!=!1&&f.isAvailable&&!f.isAvailable(d))return!1;var m={editor:d,command:f,args:p};return m.returnValue=this._emit("exec",m),this._signal("afterExec",m),m.returnValue!==!1},c.prototype.toggleRecording=function(f){if(!this.$inReplay)return f&&f._emit("changeStatus"),this.recording?(this.macro.pop(),this.off("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(d){this.macro.push([d.command,d.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},c.prototype.replay=function(f){if(!(this.$inReplay||!this.macro)){if(this.recording)return this.toggleRecording(f);try{this.$inReplay=!0,this.macro.forEach(function(d){typeof d=="string"?this.exec(d,f):this.exec(d[0],f,d[1])},this)}finally{this.$inReplay=!1}}},c.prototype.trimMacro=function(f){return f.map(function(d){return typeof d[0]!="string"&&(d[0]=d[0].name),d[1]||(d=d[0]),d})},c}(h);s.implement(u.prototype,l),r.CommandManager=u}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(n,r,i){var o=n("../lib/lang"),s=n("../config"),h=n("../range").Range;function l(a,c){return{win:a,mac:c}}r.commands=[{name:"showSettingsMenu",description:"Show settings menu",bindKey:l("Ctrl-,","Command-,"),exec:function(a){s.loadModule("ace/ext/settings_menu",function(c){c.init(a),a.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",description:"Go to next error",bindKey:l("Alt-E","F4"),exec:function(a){s.loadModule("ace/ext/error_marker",function(c){c.showErrorMarker(a,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",description:"Go to previous error",bindKey:l("Alt-Shift-E","Shift-F4"),exec:function(a){s.loadModule("ace/ext/error_marker",function(c){c.showErrorMarker(a,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:l("Ctrl-A","Command-A"),exec:function(a){a.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:l(null,"Ctrl-L"),exec:function(a){a.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:l("Ctrl-L","Command-L"),exec:function(a,c){typeof c=="number"&&!isNaN(c)&&a.gotoLine(c),a.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:l("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(a){a.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:l("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(a){a.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",description:"Toggle fold widget",bindKey:l("F2","F2"),exec:function(a){a.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",description:"Toggle parent fold widget",bindKey:l("Alt-F2","Alt-F2"),exec:function(a){a.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:l(null,"Ctrl-Command-Option-0"),exec:function(a){a.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldAllComments",description:"Fold all comments",bindKey:l(null,"Ctrl-Command-Option-0"),exec:function(a){a.session.foldAllComments()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:l("Alt-0","Command-Option-0"),exec:function(a){a.session.foldAll(),a.session.unfold(a.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:l("Alt-Shift-0","Command-Option-Shift-0"),exec:function(a){a.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:l("Ctrl-K","Command-G"),exec:function(a){a.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:l("Ctrl-Shift-K","Command-Shift-G"),exec:function(a){a.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:l("Alt-K","Ctrl-G"),exec:function(a){a.selection.isEmpty()?a.selection.selectWord():a.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:l("Alt-Shift-K","Ctrl-Shift-G"),exec:function(a){a.selection.isEmpty()?a.selection.selectWord():a.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:l("Ctrl-F","Command-F"),exec:function(a){s.loadModule("ace/ext/searchbox",function(c){c.Search(a)})},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(a){a.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:l("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(a){a.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:l("Ctrl-Home","Command-Home|Command-Up"),exec:function(a){a.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:l("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(a){a.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:l("Up","Up|Ctrl-P"),exec:function(a,c){a.navigateUp(c.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:l("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(a){a.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:l("Ctrl-End","Command-End|Command-Down"),exec:function(a){a.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:l("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(a){a.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:l("Down","Down|Ctrl-N"),exec:function(a,c){a.navigateDown(c.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:l("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(a){a.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:l("Ctrl-Left","Option-Left"),exec:function(a){a.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:l("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(a){a.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:l("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(a){a.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:l("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(a){a.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:l("Left","Left|Ctrl-B"),exec:function(a,c){a.navigateLeft(c.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:l("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(a){a.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:l("Ctrl-Right","Option-Right"),exec:function(a){a.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:l("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(a){a.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:l("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(a){a.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:l("Shift-Right","Shift-Right"),exec:function(a){a.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:l("Right","Right|Ctrl-F"),exec:function(a,c){a.navigateRight(c.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(a){a.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:l(null,"Option-PageDown"),exec:function(a){a.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:l("PageDown","PageDown|Ctrl-V"),exec:function(a){a.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(a){a.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:l(null,"Option-PageUp"),exec:function(a){a.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(a){a.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:l("Ctrl-Up",null),exec:function(a){a.renderer.scrollBy(0,-2*a.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:l("Ctrl-Down",null),exec:function(a){a.renderer.scrollBy(0,2*a.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(a){a.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(a){a.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:l("Ctrl-Alt-E","Command-Option-E"),exec:function(a){a.commands.toggleRecording(a)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:l("Ctrl-Shift-E","Command-Shift-E"),exec:function(a){a.commands.replay(a)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:l("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(a){a.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:l("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(a){a.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:l("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(a){a.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:l(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(a){},readOnly:!0},{name:"cut",description:"Cut",exec:function(a){var c=a.$copyWithEmptySelection&&a.selection.isEmpty(),f=c?a.selection.getLineRange():a.selection.getRange();a._emit("cut",f),f.isEmpty()||a.session.remove(f),a.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(a,c){a.$handlePaste(c)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:l("Ctrl-D","Command-D"),exec:function(a){a.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:l("Ctrl-Shift-D","Command-Shift-D"),exec:function(a){a.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:l("Ctrl-Alt-S","Command-Alt-S"),exec:function(a){a.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:l("Ctrl-/","Command-/"),exec:function(a){a.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:l("Ctrl-Shift-/","Command-Shift-/"),exec:function(a){a.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:l("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(a){a.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:l("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(a){a.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:l("Ctrl-H","Command-Option-F"),exec:function(a){s.loadModule("ace/ext/searchbox",function(c){c.Search(a,!0)})}},{name:"undo",description:"Undo",bindKey:l("Ctrl-Z","Command-Z"),exec:function(a){a.undo()}},{name:"redo",description:"Redo",bindKey:l("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(a){a.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:l("Alt-Shift-Up","Command-Option-Up"),exec:function(a){a.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:l("Alt-Up","Option-Up"),exec:function(a){a.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:l("Alt-Shift-Down","Command-Option-Down"),exec:function(a){a.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:l("Alt-Down","Option-Down"),exec:function(a){a.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:l("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(a){a.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:l("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(a){a.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:l("Shift-Delete",null),exec:function(a){if(a.selection.isEmpty())a.remove("left");else return!1},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:l("Alt-Backspace","Command-Backspace"),exec:function(a){a.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:l("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(a){a.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:l("Ctrl-Shift-Backspace",null),exec:function(a){var c=a.selection.getRange();c.start.column=0,a.session.remove(c)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:l("Ctrl-Shift-Delete",null),exec:function(a){var c=a.selection.getRange();c.end.column=Number.MAX_VALUE,a.session.remove(c)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:l("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(a){a.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:l("Ctrl-Delete","Alt-Delete"),exec:function(a){a.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:l("Shift-Tab","Shift-Tab"),exec:function(a){a.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:l("Tab","Tab"),exec:function(a){a.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:l("Ctrl-[","Ctrl-["),exec:function(a){a.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:l("Ctrl-]","Ctrl-]"),exec:function(a){a.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(a,c){a.insert(c)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(a,c){a.insert(o.stringRepeat(c.text||"",c.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:l(null,"Ctrl-O"),exec:function(a){a.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:l("Alt-Shift-X","Ctrl-T"),exec:function(a){a.transposeLetters()},multiSelectAction:function(a){a.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:l("Ctrl-U","Ctrl-U"),exec:function(a){a.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:l("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(a){a.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"autoindent",description:"Auto Indent",bindKey:l(null,null),exec:function(a){a.autoIndent()},multiSelectAction:"forEachLine",scrollIntoView:"animate"},{name:"expandtoline",description:"Expand to line",bindKey:l("Ctrl-Shift-L","Command-Shift-L"),exec:function(a){var c=a.selection.getRange();c.start.column=c.end.column=0,c.end.row++,a.selection.setRange(c,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"openlink",bindKey:l("Ctrl+F3","F3"),exec:function(a){a.openLink()}},{name:"joinlines",description:"Join lines",bindKey:l(null,null),exec:function(a){for(var c=a.selection.isBackwards(),f=c?a.selection.getSelectionLead():a.selection.getSelectionAnchor(),d=c?a.selection.getSelectionAnchor():a.selection.getSelectionLead(),p=a.session.doc.getLine(f.row).length,g=a.session.doc.getTextRange(a.selection.getRange()),m=g.replace(/\n\s*/," ").length,v=a.session.doc.getLine(f.row),y=f.row+1;y<=d.row+1;y++){var x=o.stringTrimLeft(o.stringTrimRight(a.session.doc.getLine(y)));x.length!==0&&(x=" "+x),v+=x}d.row+10?(a.selection.moveCursorTo(f.row,f.column),a.selection.selectTo(f.row,f.column+m)):(p=a.session.doc.getLine(f.row).length>p?p+1:p,a.selection.moveCursorTo(f.row,p))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:l(null,null),exec:function(a){var c=a.session.doc.getLength()-1,f=a.session.doc.getLine(c).length,d=a.selection.rangeList.ranges,p=[];d.length<1&&(d=[a.selection.getRange()]);for(var g=0;gu[a].column&&a++,d.unshift(a,0),u.splice.apply(u,d),this.$updateRows()}}},h.prototype.$updateRows=function(){var l=this.session.lineWidgets;if(l){var u=!0;l.forEach(function(a,c){if(a)for(u=!1,a.row=c;a.$oldWidget;)a.$oldWidget.row=c,a=a.$oldWidget}),u&&(this.session.lineWidgets=null)}},h.prototype.$registerLineWidget=function(l){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var u=this.session.lineWidgets[l.row];return u&&(l.$oldWidget=u,u.el&&u.el.parentNode&&(u.el.parentNode.removeChild(u.el),u._inDocument=!1)),this.session.lineWidgets[l.row]=l,l},h.prototype.addLineWidget=function(l){if(this.$registerLineWidget(l),l.session=this.session,!this.editor)return l;var u=this.editor.renderer;l.html&&!l.el&&(l.el=o.createElement("div"),l.el.innerHTML=l.html),l.text&&!l.el&&(l.el=o.createElement("div"),l.el.textContent=l.text),l.el&&(o.addCssClass(l.el,"ace_lineWidgetContainer"),l.className&&o.addCssClass(l.el,l.className),l.el.style.position="absolute",l.el.style.zIndex=5,u.container.appendChild(l.el),l._inDocument=!0,l.coverGutter||(l.el.style.zIndex=3),l.pixelHeight==null&&(l.pixelHeight=l.el.offsetHeight)),l.rowCount==null&&(l.rowCount=l.pixelHeight/u.layerConfig.lineHeight);var a=this.session.getFoldAt(l.row,0);if(l.$fold=a,a){var c=this.session.lineWidgets;l.row==a.end.row&&!c[a.start.row]?c[a.start.row]=l:l.hidden=!0}return this.session._emit("changeFold",{data:{start:{row:l.row}}}),this.$updateRows(),this.renderWidgets(null,u),this.onWidgetChanged(l),l},h.prototype.removeLineWidget=function(l){if(l._inDocument=!1,l.session=null,l.el&&l.el.parentNode&&l.el.parentNode.removeChild(l.el),l.editor&&l.editor.destroy)try{l.editor.destroy()}catch{}if(this.session.lineWidgets){var u=this.session.lineWidgets[l.row];if(u==l)this.session.lineWidgets[l.row]=l.$oldWidget,l.$oldWidget&&this.onWidgetChanged(l.$oldWidget);else for(;u;){if(u.$oldWidget==l){u.$oldWidget=l.$oldWidget;break}u=u.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:l.row}}}),this.$updateRows()},h.prototype.getWidgetsAtRow=function(l){for(var u=this.session.lineWidgets,a=u&&u[l],c=[];a;)c.push(a),a=a.$oldWidget;return c},h.prototype.onWidgetChanged=function(l){this.session._changedWidgets.push(l),this.editor&&this.editor.renderer.updateFull()},h.prototype.measureWidgets=function(l,u){var a=this.session._changedWidgets,c=u.layerConfig;if(!(!a||!a.length)){for(var f=1/0,d=0;d0&&!c[f];)f--;this.firstRow=a.firstRow,this.lastRow=a.lastRow,u.$cursorLayer.config=a;for(var p=f;p<=d;p++){var g=c[p];if(!(!g||!g.el)){if(g.hidden){g.el.style.top=-100-(g.pixelHeight||0)+"px";continue}g._inDocument||(g._inDocument=!0,u.container.appendChild(g.el));var m=u.$cursorLayer.getPixelPosition({row:p,column:0},!0).top;g.coverLine||(m+=a.lineHeight*this.session.getRowLineCount(g.row)),g.el.style.top=m-a.offset+"px";var v=g.coverGutter?0:u.gutterWidth;g.fixedWidth||(v-=u.scrollLeft),g.el.style.left=v+"px",g.fullWidth&&g.screenWidth&&(g.el.style.minWidth=a.width+2*a.padding+"px"),g.fixedWidth?g.el.style.right=u.scrollBar.getWidth()+"px":g.el.style.right=""}}}},h}();r.LineWidgets=s}),ace.define("ace/keyboard/gutter_handler",["require","exports","module","ace/lib/keys","ace/mouse/default_gutter_handler"],function(n,r,i){var o=n("../lib/keys"),s=n("../mouse/default_gutter_handler").GutterTooltip,h=function(){function l(u){this.editor=u,this.gutterLayer=u.renderer.$gutterLayer,this.element=u.renderer.$gutter,this.lines=u.renderer.$gutterLayer.$lines,this.activeRowIndex=null,this.activeLane=null,this.annotationTooltip=new s(this.editor)}return l.prototype.addListener=function(){this.element.addEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.addEventListener("focusout",this.$blurGutter.bind(this)),this.editor.on("mousewheel",this.$blurGutter.bind(this))},l.prototype.removeListener=function(){this.element.removeEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.removeEventListener("focusout",this.$blurGutter.bind(this)),this.editor.off("mousewheel",this.$blurGutter.bind(this))},l.prototype.$onGutterKeyDown=function(u){if(this.annotationTooltip.isOpen){u.preventDefault(),u.keyCode===o.escape&&this.annotationTooltip.hide();return}if(u.target===this.element){if(u.keyCode!=o.enter)return;u.preventDefault();var a=this.editor.getCursorPosition().row;this.editor.isRowVisible(a)||this.editor.scrollToLine(a,!0,!0),setTimeout(function(){var g=this.$rowToRowIndex(this.gutterLayer.$cursorCell.row),m=this.$findNearestFoldWidget(g),v=this.$findNearestAnnotation(g);if(!(m===null&&v===null)){if(m===null&&v!==null){this.activeRowIndex=v,this.activeLane="annotation",this.$focusAnnotation(this.activeRowIndex);return}if(m!==null&&v===null){this.activeRowIndex=m,this.activeLane="fold",this.$focusFoldWidget(this.activeRowIndex);return}if(Math.abs(v-g)0||u+a=0&&this.$isFoldWidgetVisible(u-a))return u-a;if(u+a<=this.lines.getLength()-1&&this.$isFoldWidgetVisible(u+a))return u+a}return null},l.prototype.$findNearestAnnotation=function(u){if(this.$isAnnotationVisible(u))return u;for(var a=0;u-a>0||u+a=0&&this.$isAnnotationVisible(u-a))return u-a;if(u+a<=this.lines.getLength()-1&&this.$isAnnotationVisible(u+a))return u+a}return null},l.prototype.$focusFoldWidget=function(u){if(u!=null){var a=this.$getFoldWidget(u);a.classList.add(this.editor.renderer.keyboardFocusClassName),a.focus()}},l.prototype.$focusAnnotation=function(u){if(u!=null){var a=this.$getAnnotation(u);a.classList.add(this.editor.renderer.keyboardFocusClassName),a.setAttribute("role","button"),a.focus()}},l.prototype.$blurFoldWidget=function(u){var a=this.$getFoldWidget(u);a.classList.remove(this.editor.renderer.keyboardFocusClassName),a.blur()},l.prototype.$blurAnnotation=function(u){var a=this.$getAnnotation(u);a.classList.remove(this.editor.renderer.keyboardFocusClassName),a.removeAttribute("role"),a.blur()},l.prototype.$moveFoldWidgetUp=function(){for(var u=this.activeRowIndex;u>0;)if(u--,this.$isFoldWidgetVisible(u)){this.$blurFoldWidget(this.activeRowIndex),this.activeRowIndex=u,this.$focusFoldWidget(this.activeRowIndex);return}},l.prototype.$moveFoldWidgetDown=function(){for(var u=this.activeRowIndex;u0;)if(u--,this.$isAnnotationVisible(u)){this.$blurAnnotation(this.activeRowIndex),this.activeRowIndex=u,this.$focusAnnotation(this.activeRowIndex);return}},l.prototype.$moveAnnotationDown=function(){for(var u=this.activeRowIndex;u=C.length&&(C=void 0),{value:C&&C[O++],done:!C}}};throw new TypeError(w?"Object is not iterable.":"Symbol.iterator is not defined.")},s=n("./lib/oop"),h=n("./lib/dom"),l=n("./lib/lang"),u=n("./lib/useragent"),a=n("./keyboard/textinput").TextInput,c=n("./mouse/mouse_handler").MouseHandler,f=n("./mouse/fold_handler").FoldHandler,d=n("./keyboard/keybinding").KeyBinding,p=n("./edit_session").EditSession,g=n("./search").Search,m=n("./range").Range,v=n("./lib/event_emitter").EventEmitter,y=n("./commands/command_manager").CommandManager,x=n("./commands/default_commands").commands,$=n("./config"),_=n("./token_iterator").TokenIterator,b=n("./line_widgets").LineWidgets,R=n("./keyboard/gutter_handler").GutterKeyboardHandler,M=n("./config").nls,k=n("./clipboard"),S=n("./lib/keys"),E=function(){function C(w,T,O){this.$toDestroy=[];var N=w.getContainerElement();this.container=N,this.renderer=w,this.id="editor"+ ++C.$uid,this.commands=new y(u.isMac?"mac":"win",x),typeof document=="object"&&(this.textInput=new a(w.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new c(this),new f(this)),this.keyBinding=new d(this),this.$search=new g().set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=l.delayedCall(function(){this._signal("input",{}),this.session&&!this.session.destroyed&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",function(B,H){H._$emitInputEvent.schedule(31)}),this.setSession(T||O&&O.session||new p("")),$.resetOptions(this),O&&this.setOptions(O),$._signal("editor",this)}return C.prototype.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=l.delayedCall(this.endOperation.bind(this,!0)),this.on("change",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.selectionChanged=!0}.bind(this),!0)},C.prototype.startOperation=function(w){if(this.curOp){if(!w||this.curOp.command)return;this.prevOp=this.curOp}w||(this.previousCommand=null,w={}),this.$opResetTimer.schedule(),this.curOp=this.session.curOp={command:w.command||{},args:w.args,scrollTop:this.renderer.scrollTop},this.curOp.selectionBefore=this.selection.toJSON()},C.prototype.endOperation=function(w){if(this.curOp&&this.session){if(w&&w.returnValue===!1||!this.session)return this.curOp=null;if(w==!0&&this.curOp.command&&this.curOp.command.name=="mouse"||(this._signal("beforeEndOperation"),!this.curOp))return;var T=this.curOp.command,O=T&&T.scrollIntoView;if(O){switch(O){case"center-animate":O="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var N=this.selection.getRange(),B=this.renderer.layerConfig;(N.start.row>=B.lastRow||N.end.row<=B.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break}O=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}var H=this.selection.toJSON();this.curOp.selectionAfter=H,this.$lastSel=this.selection.toJSON(),this.session.getUndoManager().addSelection(H),this.prevOp=this.curOp,this.curOp=null}},C.prototype.$historyTracker=function(w){if(this.$mergeUndoDeltas){var T=this.prevOp,O=this.$mergeableCommands,N=T.command&&w.command.name==T.command.name;if(w.command.name=="insertstring"){var B=w.args;this.mergeNextCommand===void 0&&(this.mergeNextCommand=!0),N=N&&this.mergeNextCommand&&(!/\s/.test(B)||/\s/.test(T.args)),this.mergeNextCommand=!0}else N=N&&O.indexOf(w.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&(N=!1),N?this.session.mergeUndoDeltas=!0:O.indexOf(w.command.name)!==-1&&(this.sequenceStartTime=Date.now())}},C.prototype.setKeyboardHandler=function(w,T){if(w&&typeof w=="string"&&w!="ace"){this.$keybindingId=w;var O=this;$.loadModule(["keybinding",w],function(N){O.$keybindingId==w&&O.keyBinding.setKeyboardHandler(N&&N.handler),T&&T()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(w),T&&T()},C.prototype.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},C.prototype.setSession=function(w){if(this.session!=w){this.curOp&&this.endOperation(),this.curOp={};var T=this.session;if(T){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var O=this.session.getSelection();O.off("changeCursor",this.$onCursorChange),O.off("changeSelection",this.$onSelectionChange)}this.session=w,w?(this.$onDocumentChange=this.onDocumentChange.bind(this),w.on("change",this.$onDocumentChange),this.renderer.setSession(w),this.$onChangeMode=this.onChangeMode.bind(this),w.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),w.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),w.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),w.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),w.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),w.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=w.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(w)),this._signal("changeSession",{session:w,oldSession:T}),this.curOp=null,T&&T._signal("changeEditor",{oldEditor:this}),w&&w._signal("changeEditor",{editor:this}),w&&!w.destroyed&&w.bgTokenizer.scheduleStart()}},C.prototype.getSession=function(){return this.session},C.prototype.setValue=function(w,T){return this.session.doc.setValue(w),T?T==1?this.navigateFileEnd():T==-1&&this.navigateFileStart():this.selectAll(),w},C.prototype.getValue=function(){return this.session.getValue()},C.prototype.getSelection=function(){return this.selection},C.prototype.resize=function(w){this.renderer.onResize(w)},C.prototype.setTheme=function(w,T){this.renderer.setTheme(w,T)},C.prototype.getTheme=function(){return this.renderer.getTheme()},C.prototype.setStyle=function(w){this.renderer.setStyle(w)},C.prototype.unsetStyle=function(w){this.renderer.unsetStyle(w)},C.prototype.getFontSize=function(){return this.getOption("fontSize")||h.computedStyle(this.container).fontSize},C.prototype.setFontSize=function(w){this.setOption("fontSize",w)},C.prototype.$highlightBrackets=function(){if(!this.$highlightPending){var w=this;this.$highlightPending=!0,setTimeout(function(){w.$highlightPending=!1;var T=w.session;if(!(!T||T.destroyed)){T.$bracketHighlight&&(T.$bracketHighlight.markerIds.forEach(function(U){T.removeMarker(U)}),T.$bracketHighlight=null);var O=w.getCursorPosition(),N=w.getKeyboardHandler(),B=N&&N.$getDirectionForHighlight&&N.$getDirectionForHighlight(w),H=T.getMatchingBracketRanges(O,B);if(!H){var z=new _(T,O.row,O.column),F=z.getCurrentToken();if(F&&/\b(?:tag-open|tag-name)/.test(F.type)){var W=T.getMatchingTags(O);W&&(H=[W.openTagName,W.closeTagName])}}if(!H&&T.$mode.getMatching&&(H=T.$mode.getMatching(w.session)),!H){w.getHighlightIndentGuides()&&w.renderer.$textLayer.$highlightIndentGuide();return}var G="ace_bracket";Array.isArray(H)?H.length==1&&(G="ace_error_bracket"):H=[H],H.length==2&&(m.comparePoints(H[0].end,H[1].start)==0?H=[m.fromPoints(H[0].start,H[1].end)]:m.comparePoints(H[0].start,H[1].end)==0&&(H=[m.fromPoints(H[1].start,H[0].end)])),T.$bracketHighlight={ranges:H,markerIds:H.map(function(U){return T.addMarker(U,G,"text")})},w.getHighlightIndentGuides()&&w.renderer.$textLayer.$highlightIndentGuide()}},50)}},C.prototype.focus=function(){this.textInput.focus()},C.prototype.isFocused=function(){return this.textInput.isFocused()},C.prototype.blur=function(){this.textInput.blur()},C.prototype.onFocus=function(w){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",w))},C.prototype.onBlur=function(w){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",w))},C.prototype.$cursorChange=function(){this.renderer.updateCursor(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},C.prototype.onDocumentChange=function(w){var T=this.session.$useWrapMode,O=w.start.row==w.end.row?w.end.row:1/0;this.renderer.updateLines(w.start.row,O,T),this._signal("change",w),this.$cursorChange()},C.prototype.onTokenizerUpdate=function(w){var T=w.data;this.renderer.updateLines(T.first,T.last)},C.prototype.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},C.prototype.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},C.prototype.onCursorChange=function(){this.$cursorChange(),this._signal("changeSelection")},C.prototype.$updateHighlightActiveLine=function(){var w=this.getSession(),T;if(this.$highlightActiveLine&&((this.$selectionStyle!="line"||!this.selection.isMultiLine())&&(T=this.getCursorPosition()),this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(T=!1),this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(T=!1)),w.$highlightLineMarker&&!T)w.removeMarker(w.$highlightLineMarker.id),w.$highlightLineMarker=null;else if(!w.$highlightLineMarker&&T){var O=new m(T.row,T.column,T.row,1/0);O.id=w.addMarker(O,"ace_active-line","screenLine"),w.$highlightLineMarker=O}else T&&(w.$highlightLineMarker.start.row=T.row,w.$highlightLineMarker.end.row=T.row,w.$highlightLineMarker.start.column=T.column,w._signal("changeBackMarker"))},C.prototype.onSelectionChange=function(w){var T=this.session;if(T.$selectionMarker&&T.removeMarker(T.$selectionMarker),T.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var O=this.selection.getRange(),N=this.getSelectionStyle();T.$selectionMarker=T.addMarker(O,"ace_selection",N)}var B=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(B),this._signal("changeSelection")},C.prototype.$getSelectionHighLightRegexp=function(){var w=this.session,T=this.getSelectionRange();if(!(T.isEmpty()||T.isMultiLine())){var O=T.start.column,N=T.end.column,B=w.getLine(T.start.row),H=B.substring(O,N);if(!(H.length>5e3||!/[\w\d]/.test(H))){var z=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:H}),F=B.substring(O-1,N+1);if(z.test(F))return z}}},C.prototype.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},C.prototype.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},C.prototype.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},C.prototype.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},C.prototype.onChangeMode=function(w){this.renderer.updateText(),this._emit("changeMode",w)},C.prototype.onChangeWrapLimit=function(){this.renderer.updateFull()},C.prototype.onChangeWrapMode=function(){this.renderer.onResize(!0)},C.prototype.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},C.prototype.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},C.prototype.getCopyText=function(){var w=this.getSelectedText(),T=this.session.doc.getNewLineCharacter(),O=!1;if(!w&&this.$copyWithEmptySelection){O=!0;for(var N=this.selection.getAllRanges(),B=0;BU.search(/\S|$/)){var F=U.substr(B.column).search(/\S|$/);O.doc.removeInLine(B.row,B.column,B.column+F)}}this.clearSelection();var W=B.column,G=O.getState(B.row),U=O.getLine(B.row),Q=N.checkOutdent(G,U,w);if(O.insert(B,w),H&&H.selection&&(H.selection.length==2?this.selection.setSelectionRange(new m(B.row,W+H.selection[0],B.row,W+H.selection[1])):this.selection.setSelectionRange(new m(B.row+H.selection[0],H.selection[1],B.row+H.selection[2],H.selection[3]))),this.$enableAutoIndent){if(O.getDocument().isNewLine(w)){var ee=N.getNextLineIndent(G,U.slice(0,B.column),O.getTabString());O.insert({row:B.row+1,column:0},ee)}Q&&N.autoOutdent(G,O,B.row)}},C.prototype.autoIndent=function(){var w=this.session,T=w.getMode(),O,N;if(this.selection.isEmpty())O=0,N=w.doc.getLength()-1;else{var B=this.getSelectionRange();O=B.start.row,N=B.end.row}for(var H="",z="",F="",W,G,U,Q=w.getTabString(),ee=O;ee<=N;ee++)ee>0&&(H=w.getState(ee-1),z=w.getLine(ee-1),F=T.getNextLineIndent(H,z,Q)),W=w.getLine(ee),G=T.$getIndent(W),F!==G&&(G.length>0&&(U=new m(ee,0,ee,G.length),w.remove(U)),F.length>0&&w.insert({row:ee,column:0},F)),T.autoOutdent(H,w,ee)},C.prototype.onTextInput=function(w,T){if(!T)return this.keyBinding.onTextInput(w);this.startOperation({command:{name:"insertstring"}});var O=this.applyComposition.bind(this,w,T);this.selection.rangeCount?this.forEachSelection(O):O(),this.endOperation()},C.prototype.applyComposition=function(w,T){if(T.extendLeft||T.extendRight){var O=this.selection.getRange();O.start.column-=T.extendLeft,O.end.column+=T.extendRight,O.start.column<0&&(O.start.row--,O.start.column+=this.session.getLine(O.start.row).length+1),this.selection.setRange(O),!w&&!O.isEmpty()&&this.remove()}if((w||!this.selection.isEmpty())&&this.insert(w,!0),T.restoreStart||T.restoreEnd){var O=this.selection.getRange();O.start.column-=T.restoreStart,O.end.column-=T.restoreEnd,this.selection.setRange(O)}},C.prototype.onCommandKey=function(w,T,O){return this.keyBinding.onCommandKey(w,T,O)},C.prototype.setOverwrite=function(w){this.session.setOverwrite(w)},C.prototype.getOverwrite=function(){return this.session.getOverwrite()},C.prototype.toggleOverwrite=function(){this.session.toggleOverwrite()},C.prototype.setScrollSpeed=function(w){this.setOption("scrollSpeed",w)},C.prototype.getScrollSpeed=function(){return this.getOption("scrollSpeed")},C.prototype.setDragDelay=function(w){this.setOption("dragDelay",w)},C.prototype.getDragDelay=function(){return this.getOption("dragDelay")},C.prototype.setSelectionStyle=function(w){this.setOption("selectionStyle",w)},C.prototype.getSelectionStyle=function(){return this.getOption("selectionStyle")},C.prototype.setHighlightActiveLine=function(w){this.setOption("highlightActiveLine",w)},C.prototype.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},C.prototype.setHighlightGutterLine=function(w){this.setOption("highlightGutterLine",w)},C.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},C.prototype.setHighlightSelectedWord=function(w){this.setOption("highlightSelectedWord",w)},C.prototype.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},C.prototype.setAnimatedScroll=function(w){this.renderer.setAnimatedScroll(w)},C.prototype.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},C.prototype.setShowInvisibles=function(w){this.renderer.setShowInvisibles(w)},C.prototype.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},C.prototype.setDisplayIndentGuides=function(w){this.renderer.setDisplayIndentGuides(w)},C.prototype.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},C.prototype.setHighlightIndentGuides=function(w){this.renderer.setHighlightIndentGuides(w)},C.prototype.getHighlightIndentGuides=function(){return this.renderer.getHighlightIndentGuides()},C.prototype.setShowPrintMargin=function(w){this.renderer.setShowPrintMargin(w)},C.prototype.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},C.prototype.setPrintMarginColumn=function(w){this.renderer.setPrintMarginColumn(w)},C.prototype.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},C.prototype.setReadOnly=function(w){this.setOption("readOnly",w)},C.prototype.getReadOnly=function(){return this.getOption("readOnly")},C.prototype.setBehavioursEnabled=function(w){this.setOption("behavioursEnabled",w)},C.prototype.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},C.prototype.setWrapBehavioursEnabled=function(w){this.setOption("wrapBehavioursEnabled",w)},C.prototype.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},C.prototype.setShowFoldWidgets=function(w){this.setOption("showFoldWidgets",w)},C.prototype.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},C.prototype.setFadeFoldWidgets=function(w){this.setOption("fadeFoldWidgets",w)},C.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},C.prototype.remove=function(w){this.selection.isEmpty()&&(w=="left"?this.selection.selectLeft():this.selection.selectRight());var T=this.getSelectionRange();if(this.getBehavioursEnabled()){var O=this.session,N=O.getState(T.start.row),B=O.getMode().transformAction(N,"deletion",this,O,T);if(T.end.column===0){var H=O.getTextRange(T);if(H[H.length-1]==` -`){var z=O.getLine(T.end.row);/^\s+$/.test(z)&&(T.end.column=z.length)}}B&&(T=B)}this.session.remove(T),this.clearSelection()},C.prototype.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},C.prototype.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},C.prototype.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},C.prototype.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var w=this.getSelectionRange();w.start.column==w.end.column&&w.start.row==w.end.row&&(w.end.column=0,w.end.row++),this.session.remove(w),this.clearSelection()},C.prototype.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var w=this.getCursorPosition();this.insert(` -`),this.moveCursorToPosition(w)},C.prototype.setGhostText=function(w,T){this.session.widgetManager||(this.session.widgetManager=new b(this.session),this.session.widgetManager.attach(this)),this.renderer.setGhostText(w,T)},C.prototype.removeGhostText=function(){this.session.widgetManager&&this.renderer.removeGhostText()},C.prototype.transposeLetters=function(){if(this.selection.isEmpty()){var w=this.getCursorPosition(),T=w.column;if(T!==0){var O=this.session.getLine(w.row),N,B;TF.toLowerCase()?1:0});for(var B=new m(0,0,0,0),N=w.first;N<=w.last;N++){var H=T.getLine(N);B.start.row=N,B.end.row=N,B.end.column=H.length,T.replace(B,O[N-w.first])}},C.prototype.toggleCommentLines=function(){var w=this.session.getState(this.getCursorPosition().row),T=this.$getSelectedRows();this.session.getMode().toggleCommentLines(w,this.session,T.first,T.last)},C.prototype.toggleBlockComment=function(){var w=this.getCursorPosition(),T=this.session.getState(w.row),O=this.getSelectionRange();this.session.getMode().toggleBlockComment(T,this.session,O,w)},C.prototype.getNumberAt=function(w,T){var O=/[\-]?[0-9]+(?:\.[0-9]+)?/g;O.lastIndex=0;for(var N=this.session.getLine(w);O.lastIndex=T){var H={value:B[0],start:B.index,end:B.index+B[0].length};return H}}return null},C.prototype.modifyNumber=function(w){var T=this.selection.getCursor().row,O=this.selection.getCursor().column,N=new m(T,O-1,T,O),B=this.session.getTextRange(N);if(!isNaN(parseFloat(B))&&isFinite(B)){var H=this.getNumberAt(T,O);if(H){var z=H.value.indexOf(".")>=0?H.start+H.value.indexOf(".")+1:H.end,F=H.start+H.value.length-z,W=parseFloat(H.value);W*=Math.pow(10,F),z!==H.end&&O=z&&H<=F&&(O=ge,W.selection.clearSelection(),W.moveCursorTo(w,z+N),W.selection.selectTo(w,F+N)),z=F});for(var G=this.$toggleWordPairs,U,Q=0;Q=F&&z<=W&&ee.match(/((?:https?|ftp):\/\/[\S]+)/)){G=ee.replace(/[\s:.,'";}\]]+$/,"");break}F=W}}catch(V){O={error:V}}finally{try{Q&&!Q.done&&(N=U.return)&&N.call(U)}finally{if(O)throw O.error}}return G},C.prototype.openLink=function(){var w=this.selection.getCursor(),T=this.findLinkAt(w.row,w.column);return T&&window.open(T,"_blank"),T!=null},C.prototype.removeLines=function(){var w=this.$getSelectedRows();this.session.removeFullLines(w.first,w.last),this.clearSelection()},C.prototype.duplicateSelection=function(){var w=this.selection,T=this.session,O=w.getRange(),N=w.isBackwards();if(O.isEmpty()){var B=O.start.row;T.duplicateLines(B,B)}else{var H=N?O.start:O.end,z=T.insert(H,T.getTextRange(O),!1);O.start=H,O.end=z,w.setSelectionRange(O,N)}},C.prototype.moveLinesDown=function(){this.$moveLines(1,!1)},C.prototype.moveLinesUp=function(){this.$moveLines(-1,!1)},C.prototype.moveText=function(w,T,O){return this.session.moveText(w,T,O)},C.prototype.copyLinesUp=function(){this.$moveLines(-1,!0)},C.prototype.copyLinesDown=function(){this.$moveLines(1,!0)},C.prototype.$moveLines=function(w,T){var O,N,B=this.selection;if(!B.inMultiSelectMode||this.inVirtualSelectionMode){var H=B.toOrientedRange();O=this.$getSelectedRows(H),N=this.session.$moveLines(O.first,O.last,T?0:w),T&&w==-1&&(N=0),H.moveBy(N,0),B.fromOrientedRange(H)}else{var z=B.rangeList.ranges;B.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var F=0,W=0,G=z.length,U=0;UV+1)break;V=q.last}for(U--,F=this.session.$moveLines(ee,V,T?0:w),T&&w==-1&&(Q=U+1);Q<=U;)z[Q].moveBy(F,0),Q++;T||(F=0),W+=F}B.fromOrientedRange(B.ranges[0]),B.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},C.prototype.$getSelectedRows=function(w){return w=(w||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(w.start.row),last:this.session.getRowFoldEnd(w.end.row)}},C.prototype.onCompositionStart=function(w){this.renderer.showComposition(w)},C.prototype.onCompositionUpdate=function(w){this.renderer.setCompositionText(w)},C.prototype.onCompositionEnd=function(){this.renderer.hideComposition()},C.prototype.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},C.prototype.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},C.prototype.isRowVisible=function(w){return w>=this.getFirstVisibleRow()&&w<=this.getLastVisibleRow()},C.prototype.isRowFullyVisible=function(w){return w>=this.renderer.getFirstFullyVisibleRow()&&w<=this.renderer.getLastFullyVisibleRow()},C.prototype.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},C.prototype.$moveByPage=function(w,T){var O=this.renderer,N=this.renderer.layerConfig,B=w*Math.floor(N.height/N.lineHeight);T===!0?this.selection.$moveSelection(function(){this.moveCursorBy(B,0)}):T===!1&&(this.selection.moveCursorBy(B,0),this.selection.clearSelection());var H=O.scrollTop;O.scrollBy(0,B*N.lineHeight),T!=null&&O.scrollCursorIntoView(null,.5),O.animateScrolling(H)},C.prototype.selectPageDown=function(){this.$moveByPage(1,!0)},C.prototype.selectPageUp=function(){this.$moveByPage(-1,!0)},C.prototype.gotoPageDown=function(){this.$moveByPage(1,!1)},C.prototype.gotoPageUp=function(){this.$moveByPage(-1,!1)},C.prototype.scrollPageDown=function(){this.$moveByPage(1)},C.prototype.scrollPageUp=function(){this.$moveByPage(-1)},C.prototype.scrollToRow=function(w){this.renderer.scrollToRow(w)},C.prototype.scrollToLine=function(w,T,O,N){this.renderer.scrollToLine(w,T,O,N)},C.prototype.centerSelection=function(){var w=this.getSelectionRange(),T={row:Math.floor(w.start.row+(w.end.row-w.start.row)/2),column:Math.floor(w.start.column+(w.end.column-w.start.column)/2)};this.renderer.alignCursor(T,.5)},C.prototype.getCursorPosition=function(){return this.selection.getCursor()},C.prototype.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},C.prototype.getSelectionRange=function(){return this.selection.getRange()},C.prototype.selectAll=function(){this.selection.selectAll()},C.prototype.clearSelection=function(){this.selection.clearSelection()},C.prototype.moveCursorTo=function(w,T){this.selection.moveCursorTo(w,T)},C.prototype.moveCursorToPosition=function(w){this.selection.moveCursorToPosition(w)},C.prototype.jumpToMatching=function(w,T){var O=this.getCursorPosition(),N=new _(this.session,O.row,O.column),B=N.getCurrentToken(),H=0;B&&B.type.indexOf("tag-name")!==-1&&(B=N.stepBackward());var z=B||N.stepForward();if(z){var F,W=!1,G={},U=O.column-z.start,Q,ee={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(z.value.match(/[{}()\[\]]/g)){for(;U1?G[z.value]++:B.value==="=0;--H)this.$tryReplace(O[H],w)&&N++;return this.selection.setSelectionRange(B),N},C.prototype.$tryReplace=function(w,T){var O=this.session.getTextRange(w);return T=this.$search.replace(O,T),T!==null?(w.end=this.session.replace(w,T),w):null},C.prototype.getLastSearchOptions=function(){return this.$search.getOptions()},C.prototype.find=function(w,T,O){T||(T={}),typeof w=="string"||w instanceof RegExp?T.needle=w:typeof w=="object"&&s.mixin(T,w);var N=this.selection.getRange();T.needle==null&&(w=this.session.getTextRange(N)||this.$search.$options.needle,w||(N=this.session.getWordRange(N.start.row,N.start.column),w=this.session.getTextRange(N)),this.$search.set({needle:w})),this.$search.set(T),T.start||this.$search.set({start:N});var B=this.$search.find(this.session);if(T.preventScroll)return B;if(B)return this.revealRange(B,O),B;T.backwards?N.start=N.end:N.end=N.start,this.selection.setRange(N)},C.prototype.findNext=function(w,T){this.find({skipCurrent:!0,backwards:!1},w,T)},C.prototype.findPrevious=function(w,T){this.find(w,{skipCurrent:!0,backwards:!0},T)},C.prototype.revealRange=function(w,T){this.session.unfold(w),this.selection.setSelectionRange(w);var O=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(w.start,w.end,.5),T!==!1&&this.renderer.animateScrolling(O)},C.prototype.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},C.prototype.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},C.prototype.destroy=function(){this.$toDestroy&&(this.$toDestroy.forEach(function(w){w.destroy()}),this.$toDestroy=null),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},C.prototype.setAutoScrollEditorIntoView=function(w){if(w){var T,O=this,N=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var B=this.$scrollAnchor;B.style.cssText="position:absolute",this.container.insertBefore(B,this.container.firstChild);var H=this.on("changeSelection",function(){N=!0}),z=this.renderer.on("beforeRender",function(){N&&(T=O.renderer.container.getBoundingClientRect())}),F=this.renderer.on("afterRender",function(){if(N&&T&&(O.isFocused()||O.searchBox&&O.searchBox.isFocused())){var W=O.renderer,G=W.$cursorLayer.$pixelPos,U=W.layerConfig,Q=G.top-U.offset;G.top>=0&&Q+T.top<0?N=!0:G.topwindow.innerHeight?N=!1:N=null,N!=null&&(B.style.top=Q+"px",B.style.left=G.left+"px",B.style.height=U.lineHeight+"px",B.scrollIntoView(N)),N=T=null}});this.setAutoScrollEditorIntoView=function(W){W||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",H),this.renderer.off("afterRender",F),this.renderer.off("beforeRender",z))}}},C.prototype.$resetCursorStyle=function(){var w=this.$cursorStyle||"ace",T=this.renderer.$cursorLayer;T&&(T.setSmoothBlinking(/smooth/.test(w)),T.isBlinking=!this.$readOnly&&w!="wide",h.setCssClass(T.element,"ace_slim-cursors",/slim/.test(w)))},C.prototype.prompt=function(w,T,O){var N=this;$.loadModule("ace/ext/prompt",function(B){B.prompt(N,w,T,O)})},C}();E.$uid=0,E.prototype.curOp=null,E.prototype.prevOp={},E.prototype.$mergeableCommands=["backspace","del","insertstring"],E.prototype.$toggleWordPairs=[["first","last"],["true","false"],["yes","no"],["width","height"],["top","bottom"],["right","left"],["on","off"],["x","y"],["get","set"],["max","min"],["horizontal","vertical"],["show","hide"],["add","remove"],["up","down"],["before","after"],["even","odd"],["in","out"],["inside","outside"],["next","previous"],["increase","decrease"],["attach","detach"],["&&","||"],["==","!="]],s.implement(E.prototype,v),$.defineOptions(E.prototype,"editor",{selectionStyle:{set:function(C){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:C})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(C){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(C){this.textInput.setReadOnly(C),this.$resetCursorStyle()},initialValue:!1},copyWithEmptySelection:{set:function(C){this.textInput.setCopyWithEmptySelection(C)},initialValue:!1},cursorStyle:{set:function(C){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(C){this.setAutoScrollEditorIntoView(C)}},keyboardHandler:{set:function(C){this.setKeyboardHandler(C)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(C){this.session.setValue(C)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(C){this.setSession(C)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(C){this.renderer.$gutterLayer.setShowLineNumbers(C),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),C&&this.$relativeLineNumbers?I.attach(this):I.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(C){this.$showLineNumbers&&C?I.attach(this):I.detach(this)}},placeholder:{set:function(C){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var w=this.session&&(this.renderer.$composition||this.session.getLength()>1||this.session.getLine(0).length>0);if(w&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),h.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(!w&&!this.renderer.placeholderNode){this.renderer.on("afterRender",this.$updatePlaceholder),h.addCssClass(this.container,"ace_hasPlaceholder");var T=h.createElement("div");T.className="ace_placeholder",T.textContent=this.$placeholder||"",this.renderer.placeholderNode=T,this.renderer.content.appendChild(this.renderer.placeholderNode)}else!w&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||"")}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},enableKeyboardAccessibility:{set:function(C){var w={name:"blurTextInput",description:"Set focus to the editor content div to allow tabbing through the page",bindKey:"Esc",exec:function(N){N.blur(),N.renderer.scroller.focus()},readOnly:!0},T=function(N){if(N.target==this.renderer.scroller&&N.keyCode===S.enter){N.preventDefault();var B=this.getCursorPosition().row;this.isRowVisible(B)||this.scrollToLine(B,!0,!0),this.focus()}},O;C?(this.renderer.enableKeyboardAccessibility=!0,this.renderer.keyboardFocusClassName="ace_keyboard-focus",this.textInput.getElement().setAttribute("tabindex",-1),this.renderer.scroller.setAttribute("tabindex",0),this.renderer.scroller.setAttribute("role","group"),this.renderer.scroller.setAttribute("aria-roledescription",M("editor")),this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName),this.renderer.scroller.setAttribute("aria-label",M("Editor content, press Enter to start editing, press Escape to exit")),this.renderer.scroller.addEventListener("keyup",T.bind(this)),this.commands.addCommand(w),this.renderer.$gutter.setAttribute("tabindex",0),this.renderer.$gutter.setAttribute("aria-hidden",!1),this.renderer.$gutter.setAttribute("role","group"),this.renderer.$gutter.setAttribute("aria-roledescription",M("editor")),this.renderer.$gutter.setAttribute("aria-label",M("Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit")),this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName),this.renderer.content.setAttribute("aria-hidden",!0),O||(O=new R(this)),O.addListener()):(this.renderer.enableKeyboardAccessibility=!1,this.textInput.getElement().setAttribute("tabindex",0),this.renderer.scroller.setAttribute("tabindex",-1),this.renderer.scroller.removeAttribute("role"),this.renderer.scroller.removeAttribute("aria-roledescription"),this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName),this.renderer.scroller.removeAttribute("aria-label"),this.renderer.scroller.removeEventListener("keyup",T.bind(this)),this.commands.removeCommand(w),this.renderer.content.removeAttribute("aria-hidden"),this.renderer.$gutter.setAttribute("tabindex",-1),this.renderer.$gutter.setAttribute("aria-hidden",!0),this.renderer.$gutter.removeAttribute("role"),this.renderer.$gutter.removeAttribute("aria-roledescription"),this.renderer.$gutter.removeAttribute("aria-label"),this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName),O&&O.removeListener())},initialValue:!1},customScrollbar:"renderer",hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",highlightIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",useResizeObserver:"renderer",useSvgGutterIcons:"renderer",showFoldedAnnotations:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var I={getText:function(C,w){return(Math.abs(C.selection.lead.row-w)||w+1+(w<9?"·":""))+""},getWidth:function(C,w,T){return Math.max(w.toString().length,(T.lastRow+1).toString().length,2)*T.characterWidth},update:function(C,w){w.renderer.$loop.schedule(w.renderer.CHANGE_GUTTER)},attach:function(C){C.renderer.$gutterLayer.$renderer=this,C.on("changeSelection",this.update),this.update(null,C)},detach:function(C){C.renderer.$gutterLayer.$renderer==this&&(C.renderer.$gutterLayer.$renderer=null),C.off("changeSelection",this.update),this.update(null,C)}};r.Editor=E}),ace.define("ace/undomanager",["require","exports","module","ace/range"],function(n,r,i){var o=function(){function _(){this.$maxRev=0,this.$fromUndo=!1,this.$undoDepth=1/0,this.reset()}return _.prototype.addSession=function(b){this.$session=b},_.prototype.add=function(b,R,M){if(!this.$fromUndo&&b!=this.$lastDelta){if(this.$keepRedoStack||(this.$redoStack.length=0),R===!1||!this.lastDeltas){this.lastDeltas=[];var k=this.$undoStack.length;k>this.$undoDepth-1&&this.$undoStack.splice(0,k-this.$undoDepth+1),this.$undoStack.push(this.lastDeltas),b.id=this.$rev=++this.$maxRev}(b.action=="remove"||b.action=="insert")&&(this.$lastDelta=b),this.lastDeltas.push(b)}},_.prototype.addSelection=function(b,R){this.selections.push({value:b,rev:R||this.$rev})},_.prototype.startNewGroup=function(){return this.lastDeltas=null,this.$rev},_.prototype.markIgnored=function(b,R){R==null&&(R=this.$rev+1);for(var M=this.$undoStack,k=M.length;k--;){var S=M[k][0];if(S.id<=b)break;S.id0},_.prototype.canRedo=function(){return this.$redoStack.length>0},_.prototype.bookmark=function(b){b==null&&(b=this.$rev),this.mark=b},_.prototype.isAtBookmark=function(){return this.$rev===this.mark},_.prototype.toJSON=function(){},_.prototype.fromJSON=function(){},_.prototype.$prettyPrint=function(b){return b?c(b):c(this.$undoStack)+` ---- -`+c(this.$redoStack)},_}();o.prototype.hasUndo=o.prototype.canUndo,o.prototype.hasRedo=o.prototype.canRedo,o.prototype.isClean=o.prototype.isAtBookmark,o.prototype.markClean=o.prototype.bookmark;function s(_,b){for(var R=b;R--;){var M=_[R];if(M&&!M[0].ignore){for(;R"+_.end.row+":"+_.end.column}function d(_,b){var R=_.action=="insert",M=b.action=="insert";if(R&&M)if(l(b.start,_.end)>=0)m(b,_,-1);else if(l(b.start,_.start)<=0)m(_,b,1);else return null;else if(R&&!M)if(l(b.start,_.end)>=0)m(b,_,-1);else if(l(b.end,_.start)<=0)m(_,b,-1);else return null;else if(!R&&M)if(l(b.start,_.start)>=0)m(b,_,1);else if(l(b.start,_.start)<=0)m(_,b,1);else return null;else if(!R&&!M)if(l(b.start,_.start)>=0)m(b,_,1);else if(l(b.end,_.start)<=0)m(_,b,-1);else return null;return[b,_]}function p(_,b){for(var R=_.length;R--;)for(var M=0;M=0?m(_,b,-1):(l(_.start,b.start)<=0||m(_,h.fromPoints(b.start,_.start),-1),m(b,_,1));else if(!R&&M)l(b.start,_.end)>=0?m(b,_,-1):(l(b.start,_.start)<=0||m(b,h.fromPoints(_.start,b.start),-1),m(_,b,1));else if(!R&&!M)if(l(b.start,_.end)>=0)m(b,_,-1);else if(l(b.end,_.start)<=0)m(_,b,-1);else{var k,S;return l(_.start,b.start)<0&&(k=_,_=y(_,b.start)),l(_.end,b.end)>0&&(S=y(_,b.end)),v(b.end,_.start,_.end,-1),S&&!k&&(_.lines=S.lines,_.start=S.start,_.end=S.end,S=_),[b,k,S].filter(Boolean)}return[b,_]}function m(_,b,R){v(_.start,b.start,b.end,R),v(_.end,b.start,b.end,R)}function v(_,b,R,M){_.row==(M==1?b:R).row&&(_.column+=M*(R.column-b.column)),_.row+=M*(R.row-b.row)}function y(_,b){var R=_.lines,M=_.end;_.end=u(b);var k=_.end.row-_.start.row,S=R.splice(k,R.length),E=k?b.column:b.column-_.start.column;R.push(S[0].substring(0,E)),S[0]=S[0].substr(E);var I={start:u(b),end:M,lines:S,action:_.action};return I}function x(_,b){b=a(b);for(var R=_.length;R--;){for(var M=_[R],k=0;kx&&(b=y.end.row+1,y=g.getNextFoldLine(b,y),x=y?y.start.row:1/0),b>v){for(;this.$lines.getLength()>_+1;)this.$lines.pop();break}$=this.$lines.get(++_),$?$.row=b:($=this.$lines.createCell(b,p,this.session,f),this.$lines.push($)),this.$renderCell($,p,y,b),b++}this._signal("afterRender"),this.$updateGutterWidth(p)},d.prototype.$updateGutterWidth=function(p){var g=this.session,m=g.gutterRenderer||this.$renderer,v=g.$firstLineNumber,y=this.$lines.last()?this.$lines.last().text:"";(this.$fixedWidth||g.$useWrapMode)&&(y=g.getLength()+v-1);var x=m?m.getWidth(g,y,p):y.toString().length*p.characterWidth,$=this.$padding||this.$computePadding();x+=$.left+$.right,x!==this.gutterWidth&&!isNaN(x)&&(this.gutterWidth=x,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",x))},d.prototype.$updateCursorRow=function(){if(this.$highlightGutterLine){var p=this.session.selection.getCursor();this.$cursorRow!==p.row&&(this.$cursorRow=p.row)}},d.prototype.updateLineHighlight=function(){if(this.$highlightGutterLine){var p=this.session.selection.cursor.row;if(this.$cursorRow=p,!(this.$cursorCell&&this.$cursorCell.row==p)){this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var g=this.$lines.cells;this.$cursorCell=null;for(var m=0;m=this.$cursorRow){if(v.row>this.$cursorRow){var y=this.session.getFoldLine(this.$cursorRow);if(m>0&&y&&y.start.row==g[m-1].row)v=g[m-1];else break}v.element.className="ace_gutter-active-line "+v.element.className,this.$cursorCell=v;break}}}}},d.prototype.scrollLines=function(p){var g=this.config;if(this.config=p,this.$updateCursorRow(),this.$lines.pageChanged(g,p))return this.update(p);this.$lines.moveContainer(p);var m=Math.min(p.lastRow+p.gutterOffset,this.session.getLength()-1),v=this.oldLastRow;if(this.oldLastRow=m,!g||v0;y--)this.$lines.shift();if(v>m)for(var y=this.session.getFoldedRowCount(m+1,v);y>0;y--)this.$lines.pop();p.firstRowv&&this.$lines.push(this.$renderLines(p,v+1,m)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(p)},d.prototype.$renderLines=function(p,g,m){for(var v=[],y=g,x=this.session.getNextFoldLine(y),$=x?x.start.row:1/0;y>$&&(y=x.end.row+1,x=this.session.getNextFoldLine(y,x),$=x?x.start.row:1/0),!(y>m);){var _=this.$lines.createCell(y,p,this.session,f);this.$renderCell(_,p,x,y),v.push(_),y++}return v},d.prototype.$renderCell=function(p,g,m,v){var y=p.element,x=this.session,$=y.childNodes[0],_=y.childNodes[1],b=y.childNodes[2],R=b.firstChild,M=x.$firstLineNumber,k=x.$breakpoints,S=x.$decorations,E=x.gutterRenderer||this.$renderer,I=this.$showFoldWidgets&&x.foldWidgets,C=m?m.start.row:Number.MAX_VALUE,w=g.lineHeight+"px",T=this.$useSvgGutterIcons?"ace_gutter-cell_svg-icons ":"ace_gutter-cell ",O=this.$useSvgGutterIcons?"ace_icon_svg":"ace_icon",N=(E?E.getText(x,v):v+M).toString();if(this.$highlightGutterLine&&(v==this.$cursorRow||m&&v=C&&this.$cursorRow<=m.end.row)&&(T+="ace_gutter-active-line ",this.$cursorCell!=p&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=p)),k[v]&&(T+=k[v]),S[v]&&(T+=S[v]),this.$annotations[v]&&v!==C&&(T+=this.$annotations[v].className),y.className!=T&&(y.className=T),I){var B=I[v];B==null&&(B=I[v]=x.getFoldWidget(v))}if(B){var T="ace_fold-widget ace_"+B;if(B=="start"&&v==C&&vm.right-g.right)return"foldWidgets"},d}();c.prototype.$fixedWidth=!1,c.prototype.$highlightGutterLine=!0,c.prototype.$renderer="",c.prototype.$showLineNumbers=!0,c.prototype.$showFoldWidgets=!0,s.implement(c.prototype,l);function f(d){var p=document.createTextNode("");d.appendChild(p);var g=o.createElement("span");d.appendChild(g);var m=o.createElement("span");d.appendChild(m);var v=o.createElement("span");return m.appendChild(v),d}r.Gutter=c}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(n,r,i){var o=n("../range").Range,s=n("../lib/dom"),h=function(){function u(a){this.element=s.createElement("div"),this.element.className="ace_layer ace_marker-layer",a.appendChild(this.element)}return u.prototype.setPadding=function(a){this.$padding=a},u.prototype.setSession=function(a){this.session=a},u.prototype.setMarkers=function(a){this.markers=a},u.prototype.elt=function(a,c){var f=this.i!=-1&&this.element.childNodes[this.i];f?this.i++:(f=document.createElement("div"),this.element.appendChild(f),this.i=-1),f.style.cssText=c,f.className=a},u.prototype.update=function(a){if(a){this.config=a,this.i=0;var c;for(var f in this.markers){var d=this.markers[f];if(!d.range){d.update(c,this,this.session,a);continue}var p=d.range.clipRows(a.firstRow,a.lastRow);if(!p.isEmpty())if(p=p.toScreenRange(this.session),d.renderer){var g=this.$getTop(p.start.row,a),m=this.$padding+p.start.column*a.characterWidth;d.renderer(c,p,m,g,a)}else d.type=="fullLine"?this.drawFullLineMarker(c,p,d.clazz,a):d.type=="screenLine"?this.drawScreenLineMarker(c,p,d.clazz,a):p.isMultiLine()?d.type=="text"?this.drawTextMarker(c,p,d.clazz,a):this.drawMultiLineMarker(c,p,d.clazz,a):this.drawSingleLineMarker(c,p,d.clazz+" ace_start ace_br15",a)}if(this.i!=-1)for(;this.i_,y==v),d,y==v?0:1,p)},u.prototype.drawMultiLineMarker=function(a,c,f,d,p){var g=this.$padding,m=d.lineHeight,v=this.$getTop(c.start.row,d),y=g+c.start.column*d.characterWidth;if(p=p||"",this.session.$bidiHandler.isBidiRow(c.start.row)){var x=c.clone();x.end.row=x.start.row,x.end.column=this.session.getLine(x.start.row).length,this.drawBidiSingleLineMarker(a,x,f+" ace_br1 ace_start",d,null,p)}else this.elt(f+" ace_br1 ace_start","height:"+m+"px;right:0;top:"+v+"px;left:"+y+"px;"+(p||""));if(this.session.$bidiHandler.isBidiRow(c.end.row)){var x=c.clone();x.start.row=x.end.row,x.start.column=0,this.drawBidiSingleLineMarker(a,x,f+" ace_br12",d,null,p)}else{v=this.$getTop(c.end.row,d);var $=c.end.column*d.characterWidth;this.elt(f+" ace_br12","height:"+m+"px;width:"+$+"px;top:"+v+"px;left:"+g+"px;"+(p||""))}if(m=(c.end.row-c.start.row-1)*d.lineHeight,!(m<=0)){v=this.$getTop(c.start.row+1,d);var _=(c.start.column?1:0)|(c.end.column?0:8);this.elt(f+(_?" ace_br"+_:""),"height:"+m+"px;right:0;top:"+v+"px;left:"+g+"px;"+(p||""))}},u.prototype.drawSingleLineMarker=function(a,c,f,d,p,g){if(this.session.$bidiHandler.isBidiRow(c.start.row))return this.drawBidiSingleLineMarker(a,c,f,d,p,g);var m=d.lineHeight,v=(c.end.column+(p||0)-c.start.column)*d.characterWidth,y=this.$getTop(c.start.row,d),x=this.$padding+c.start.column*d.characterWidth;this.elt(f,"height:"+m+"px;width:"+v+"px;top:"+y+"px;left:"+x+"px;"+(g||""))},u.prototype.drawBidiSingleLineMarker=function(a,c,f,d,p,g){var m=d.lineHeight,v=this.$getTop(c.start.row,d),y=this.$padding,x=this.session.$bidiHandler.getSelections(c.start.column,c.end.column);x.forEach(function($){this.elt(f,"height:"+m+"px;width:"+($.width+(p||0))+"px;top:"+v+"px;left:"+(y+$.left)+"px;"+(g||""))},this)},u.prototype.drawFullLineMarker=function(a,c,f,d,p){var g=this.$getTop(c.start.row,d),m=d.lineHeight;c.start.row!=c.end.row&&(m+=this.$getTop(c.end.row,d)-g),this.elt(f,"height:"+m+"px;top:"+g+"px;left:0;right:0;"+(p||""))},u.prototype.drawScreenLineMarker=function(a,c,f,d,p){var g=this.$getTop(c.start.row,d),m=d.lineHeight;this.elt(f,"height:"+m+"px;top:"+g+"px;left:0;right:0;"+(p||""))},u}();h.prototype.$padding=0;function l(u,a,c,f){return(u?1:0)|(a?2:0)|(c?4:0)|(f?8:0)}r.Marker=h}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter","ace/config"],function(n,r,i){var o=n("../lib/oop"),s=n("../lib/dom"),h=n("../lib/lang"),l=n("./lines").Lines,u=n("../lib/event_emitter").EventEmitter,a=n("../config").nls,c=function(){function f(d){this.dom=s,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",d.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new l(this.element)}return f.prototype.$updateEolChar=function(){var d=this.session.doc,p=d.getNewLineCharacter()==` -`&&d.getNewLineMode()!="windows",g=p?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=g)return this.EOL_CHAR=g,!0},f.prototype.setPadding=function(d){this.$padding=d,this.element.style.margin="0 "+d+"px"},f.prototype.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},f.prototype.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},f.prototype.$setFontMetrics=function(d){this.$fontMetrics=d,this.$fontMetrics.on("changeCharacterSize",function(p){this._signal("changeCharacterSize",p)}.bind(this)),this.$pollSizeChanges()},f.prototype.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},f.prototype.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},f.prototype.setSession=function(d){this.session=d,d&&this.$computeTabString()},f.prototype.setShowInvisibles=function(d){return this.showInvisibles==d?!1:(this.showInvisibles=d,typeof d=="string"?(this.showSpaces=/tab/i.test(d),this.showTabs=/space/i.test(d),this.showEOL=/eol/i.test(d)):this.showSpaces=this.showTabs=this.showEOL=d,this.$computeTabString(),!0)},f.prototype.setDisplayIndentGuides=function(d){return this.displayIndentGuides==d?!1:(this.displayIndentGuides=d,this.$computeTabString(),!0)},f.prototype.setHighlightIndentGuides=function(d){return this.$highlightIndentGuides===d?!1:(this.$highlightIndentGuides=d,d)},f.prototype.$computeTabString=function(){var d=this.session.getTabSize();this.tabSize=d;for(var p=this.$tabStrings=[0],g=1;gR&&(_=b.end.row+1,b=this.session.getNextFoldLine(_,b),R=b?b.start.row:1/0),!(_>v);){var M=y[x++];if(M){this.dom.removeChildren(M),this.$renderLine(M,_,_==R?b:!1),$&&(M.style.top=this.$lines.computeLineTop(_,d,this.session)+"px");var k=d.lineHeight*this.session.getRowLength(_)+"px";M.style.height!=k&&($=!0,M.style.height=k)}_++}if($)for(;x0;v--)this.$lines.shift();if(p.lastRow>d.lastRow)for(var v=this.session.getFoldedRowCount(d.lastRow+1,p.lastRow);v>0;v--)this.$lines.pop();d.firstRowp.lastRow&&this.$lines.push(this.$renderLinesFragment(d,p.lastRow+1,d.lastRow)),this.$highlightIndentGuide()},f.prototype.$renderLinesFragment=function(d,p,g){for(var m=[],v=p,y=this.session.getNextFoldLine(v),x=y?y.start.row:1/0;v>x&&(v=y.end.row+1,y=this.session.getNextFoldLine(v,y),x=y?y.start.row:1/0),!(v>g);){var $=this.$lines.createCell(v,d,this.session),_=$.element;this.dom.removeChildren(_),s.setStyle(_.style,"height",this.$lines.computeLineHeight(v,d,this.session)+"px"),s.setStyle(_.style,"top",this.$lines.computeLineTop(v,d,this.session)+"px"),this.$renderLine(_,v,v==x?y:!1),this.$useLineGroups()?_.className="ace_line_group":_.className="ace_line",m.push($),v++}return m},f.prototype.update=function(d){this.$lines.moveContainer(d),this.config=d;for(var p=d.firstRow,g=d.lastRow,m=this.$lines;m.getLength();)m.pop();m.push(this.$renderLinesFragment(d,p,g))},f.prototype.$renderToken=function(d,p,g,m){for(var v=this,y=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC\u2066\u2067\u2068\u202A\u202B\u202D\u202E\u202C\u2069]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,x=this.dom.createFragment(this.element),$,_=0;$=y.exec(m);){var b=$[1],R=$[2],M=$[3],k=$[4],S=$[5];if(!(!v.showSpaces&&R)){var E=_!=$.index?m.slice(_,$.index):"";if(_=$.index+$[0].length,E&&x.appendChild(this.dom.createTextNode(E,this.element)),b){var I=v.session.getScreenTabSize(p+$.index);x.appendChild(v.$tabStrings[I].cloneNode(!0)),p+=I-1}else if(R)if(v.showSpaces){var C=this.dom.createElement("span");C.className="ace_invisible ace_invisible_space",C.textContent=h.stringRepeat(v.SPACE_CHAR,R.length),x.appendChild(C)}else x.appendChild(this.com.createTextNode(R,this.element));else if(M){var C=this.dom.createElement("span");C.className="ace_invisible ace_invisible_space ace_invalid",C.textContent=h.stringRepeat(v.SPACE_CHAR,M.length),x.appendChild(C)}else if(k){p+=1;var C=this.dom.createElement("span");C.style.width=v.config.characterWidth*2+"px",C.className=v.showSpaces?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",C.textContent=v.showSpaces?v.SPACE_CHAR:k,x.appendChild(C)}else if(S){p+=1;var C=this.dom.createElement("span");C.style.width=v.config.characterWidth*2+"px",C.className="ace_cjk",C.textContent=S,x.appendChild(C)}}}if(x.appendChild(this.dom.createTextNode(_?m.slice(_):m,this.element)),this.$textToken[g.type])d.appendChild(x);else{var w="ace_"+g.type.replace(/\./g," ace_"),C=this.dom.createElement("span");g.type=="fold"&&(C.style.width=g.value.length*this.config.characterWidth+"px",C.setAttribute("title",a("Unfold code"))),C.className=w,C.appendChild(x),d.appendChild(C)}return p+m.length},f.prototype.renderIndentGuide=function(d,p,g){var m=p.search(this.$indentGuideRe);if(m<=0||m>=g)return p;if(p[0]==" "){m-=m%this.tabSize;for(var v=m/this.tabSize,y=0;yy[x].start.row?this.$highlightIndentGuideMarker.dir=-1:this.$highlightIndentGuideMarker.dir=1;break}}if(!this.$highlightIndentGuideMarker.end&&d[p.row]!==""&&p.column===d[p.row].length){this.$highlightIndentGuideMarker.dir=1;for(var x=p.row+1;x0){for(var v=0;v=this.$highlightIndentGuideMarker.start+1){if(m.row>=this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(m,p)}}else for(var g=d.length-1;g>=0;g--){var m=d[g];if(this.$highlightIndentGuideMarker.end&&m.row=y;)x=this.$renderToken($,x,b,R.substring(0,y-m)),R=R.substring(y-m),m=y,$=this.$createLineElement(),d.appendChild($),$.appendChild(this.dom.createTextNode(h.stringRepeat(" ",g.indent),this.element)),v++,x=0,y=g[v]||Number.MAX_VALUE;R.length!=0&&(m+=R.length,x=this.$renderToken($,x,b,R))}}g[g.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage($,x,null,"",!0)},f.prototype.$renderSimpleLine=function(d,p){for(var g=0,m=0;mthis.MAX_LINE_LENGTH)return this.$renderOverflowMessage(d,g,v,y);g=this.$renderToken(d,g,v,y)}}},f.prototype.$renderOverflowMessage=function(d,p,g,m,v){g&&this.$renderToken(d,p,g,m.slice(0,this.MAX_LINE_LENGTH-p));var y=this.dom.createElement("span");y.className="ace_inline_button ace_keyword ace_toggle_wrap",y.textContent=v?"":"",d.appendChild(y)},f.prototype.$renderLine=function(d,p,g){if(!g&&g!=!1&&(g=this.session.getFoldLine(p)),g)var m=this.$getFoldLineTokens(p,g);else var m=this.session.getTokens(p);var v=d;if(m.length){var y=this.session.getRowSplitData(p);if(y&&y.length){this.$renderWrappedLine(d,m,y);var v=d.lastChild}else{var v=d;this.$useLineGroups()&&(v=this.$createLineElement(),d.appendChild(v)),this.$renderSimpleLine(v,m)}}else this.$useLineGroups()&&(v=this.$createLineElement(),d.appendChild(v));if(this.showEOL&&v){g&&(p=g.end.row);var x=this.dom.createElement("span");x.className="ace_invisible ace_invisible_eol",x.textContent=p==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,v.appendChild(x)}},f.prototype.$getFoldLineTokens=function(d,p){var g=this.session,m=[];function v(x,$,_){for(var b=0,R=0;R+x[b].value.length<$;)if(R+=x[b].value.length,b++,b==x.length)return;if(R!=$){var M=x[b].value.substring($-R);M.length>_-$&&(M=M.substring(0,_-$)),m.push({type:x[b].type,value:M}),R=$+M.length,b+=1}for(;R<_&&b_?m.push({type:x[b].type,value:M.substring(0,_-R)}):m.push(x[b]),R+=M.length,b+=1}}var y=g.getTokens(d);return p.walk(function(x,$,_,b,R){x!=null?m.push({type:"fold",value:x}):(R&&(y=g.getTokens($)),y.length&&v(y,b,_))},p.end.row,this.session.getLine(p.end.row).length),m},f.prototype.$useLineGroups=function(){return this.session.getUseWrapMode()},f}();c.prototype.$textToken={text:!0,rparen:!0,lparen:!0},c.prototype.EOF_CHAR="¶",c.prototype.EOL_CHAR_LF="¬",c.prototype.EOL_CHAR_CRLF="¤",c.prototype.EOL_CHAR=c.prototype.EOL_CHAR_LF,c.prototype.TAB_CHAR="—",c.prototype.SPACE_CHAR="·",c.prototype.$padding=0,c.prototype.MAX_LINE_LENGTH=1e4,c.prototype.showInvisibles=!1,c.prototype.showSpaces=!1,c.prototype.showTabs=!1,c.prototype.showEOL=!1,c.prototype.displayIndentGuides=!0,c.prototype.$highlightIndentGuides=!0,c.prototype.$tabStrings=[],c.prototype.destroy={},c.prototype.onChangeTabSize=c.prototype.$computeTabString,o.implement(c.prototype,u),r.Text=c}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(n,r,i){var o=n("../lib/dom"),s=function(){function h(l){this.element=o.createElement("div"),this.element.className="ace_layer ace_cursor-layer",l.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),o.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)}return h.prototype.$updateOpacity=function(l){for(var u=this.cursors,a=u.length;a--;)o.setStyle(u[a].style,"opacity",l?"":"0")},h.prototype.$startCssAnimation=function(){for(var l=this.cursors,u=l.length;u--;)l[u].style.animationDuration=this.blinkInterval+"ms";this.$isAnimating=!0,setTimeout(function(){this.$isAnimating&&o.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},h.prototype.$stopCssAnimation=function(){this.$isAnimating=!1,o.removeCssClass(this.element,"ace_animate-blinking")},h.prototype.setPadding=function(l){this.$padding=l},h.prototype.setSession=function(l){this.session=l},h.prototype.setBlinking=function(l){l!=this.isBlinking&&(this.isBlinking=l,this.restartTimer())},h.prototype.setBlinkInterval=function(l){l!=this.blinkInterval&&(this.blinkInterval=l,this.restartTimer())},h.prototype.setSmoothBlinking=function(l){l!=this.smoothBlinking&&(this.smoothBlinking=l,o.setCssClass(this.element,"ace_smooth-blinking",l),this.$updateCursors(!0),this.restartTimer())},h.prototype.addCursor=function(){var l=o.createElement("div");return l.className="ace_cursor",this.element.appendChild(l),this.cursors.push(l),l},h.prototype.removeCursor=function(){if(this.cursors.length>1){var l=this.cursors.pop();return l.parentNode.removeChild(l),l}},h.prototype.hideCursor=function(){this.isVisible=!1,o.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},h.prototype.showCursor=function(){this.isVisible=!0,o.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},h.prototype.restartTimer=function(){var l=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,o.removeCssClass(this.element,"ace_smooth-blinking")),l(!0),!this.isBlinking||!this.blinkInterval||!this.isVisible){this.$stopCssAnimation();return}if(this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout(function(){this.$isSmoothBlinking&&o.addCssClass(this.element,"ace_smooth-blinking")}.bind(this))),o.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var u=function(){this.timeoutId=setTimeout(function(){l(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){l(!0),u()},this.blinkInterval),u()}},h.prototype.getPixelPosition=function(l,u){if(!this.config||!this.session)return{left:0,top:0};l||(l=this.session.selection.getCursor());var a=this.session.documentToScreenPosition(l),c=this.$padding+(this.session.$bidiHandler.isBidiRow(a.row,l.row)?this.session.$bidiHandler.getPosLeft(a.column):a.column*this.config.characterWidth),f=(a.row-(u?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:c,top:f}},h.prototype.isCursorInView=function(l,u){return l.top>=0&&l.topl.height+l.offset||d.top<0)&&a>1)){var p=this.cursors[c++]||this.addCursor(),g=p.style;this.drawCursor?this.drawCursor(p,d,l,u[a],this.session):this.isCursorInView(d,l)?(o.setStyle(g,"display","block"),o.translate(p,d.left,d.top),o.setStyle(g,"width",Math.round(l.characterWidth)+"px"),o.setStyle(g,"height",l.lineHeight+"px")):o.setStyle(g,"display","none")}}for(;this.cursors.length>c;)this.removeCursor();var m=this.session.getOverwrite();this.$setOverwrite(m),this.$pixelPos=d,this.restartTimer()},h.prototype.$setOverwrite=function(l){l!=this.overwrite&&(this.overwrite=l,l?o.addCssClass(this.element,"ace_overwrite-cursors"):o.removeCssClass(this.element,"ace_overwrite-cursors"))},h.prototype.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)},h}();s.prototype.$padding=0,s.prototype.drawCursor=null,r.Cursor=s}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(n,r,i){var o=this&&this.__extends||function(){var p=function(g,m){return p=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(v,y){v.__proto__=y}||function(v,y){for(var x in y)Object.prototype.hasOwnProperty.call(y,x)&&(v[x]=y[x])},p(g,m)};return function(g,m){if(typeof m!="function"&&m!==null)throw new TypeError("Class extends value "+String(m)+" is not a constructor or null");p(g,m);function v(){this.constructor=g}g.prototype=m===null?Object.create(m):(v.prototype=m.prototype,new v)}}(),s=n("./lib/oop"),h=n("./lib/dom"),l=n("./lib/event"),u=n("./lib/event_emitter").EventEmitter,a=32768,c=function(){function p(g,m){this.element=h.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+m,this.inner=h.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent=" ",this.element.appendChild(this.inner),g.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,l.addListener(this.element,"scroll",this.onScroll.bind(this)),l.addListener(this.element,"mousedown",l.preventDefault)}return p.prototype.setVisible=function(g){this.element.style.display=g?"":"none",this.isVisible=g,this.coeff=1},p}();s.implement(c.prototype,u);var f=function(p){o(g,p);function g(m,v){var y=p.call(this,m,"-v")||this;return y.scrollTop=0,y.scrollHeight=0,v.$scrollbarWidth=y.width=h.scrollbarWidth(m.ownerDocument),y.inner.style.width=y.element.style.width=(y.width||15)+5+"px",y.$minWidth=0,y}return g.prototype.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,this.coeff!=1){var m=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-m)/(this.coeff-m)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},g.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},g.prototype.setHeight=function(m){this.element.style.height=m+"px"},g.prototype.setScrollHeight=function(m){this.scrollHeight=m,m>a?(this.coeff=a/m,m=a):this.coeff!=1&&(this.coeff=1),this.inner.style.height=m+"px"},g.prototype.setScrollTop=function(m){this.scrollTop!=m&&(this.skipEvent=!0,this.scrollTop=m,this.element.scrollTop=m*this.coeff)},g}(c);f.prototype.setInnerHeight=f.prototype.setScrollHeight;var d=function(p){o(g,p);function g(m,v){var y=p.call(this,m,"-h")||this;return y.scrollLeft=0,y.height=v.$scrollbarWidth,y.inner.style.height=y.element.style.height=(y.height||15)+5+"px",y}return g.prototype.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},g.prototype.getHeight=function(){return this.isVisible?this.height:0},g.prototype.setWidth=function(m){this.element.style.width=m+"px"},g.prototype.setInnerWidth=function(m){this.inner.style.width=m+"px"},g.prototype.setScrollWidth=function(m){this.inner.style.width=m+"px"},g.prototype.setScrollLeft=function(m){this.scrollLeft!=m&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=m)},g}(c);r.ScrollBar=f,r.ScrollBarV=f,r.ScrollBarH=d,r.VScrollBar=f,r.HScrollBar=d}),ace.define("ace/scrollbar_custom",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(n,r,i){var o=this&&this.__extends||function(){var d=function(p,g){return d=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(m,v){m.__proto__=v}||function(m,v){for(var y in v)Object.prototype.hasOwnProperty.call(v,y)&&(m[y]=v[y])},d(p,g)};return function(p,g){if(typeof g!="function"&&g!==null)throw new TypeError("Class extends value "+String(g)+" is not a constructor or null");d(p,g);function m(){this.constructor=p}p.prototype=g===null?Object.create(g):(m.prototype=g.prototype,new m)}}(),s=n("./lib/oop"),h=n("./lib/dom"),l=n("./lib/event"),u=n("./lib/event_emitter").EventEmitter;h.importCssString(`.ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{ - position: absolute; - background: rgba(128, 128, 128, 0.6); - -moz-box-sizing: border-box; - box-sizing: border-box; - border: 1px solid #bbb; - border-radius: 2px; - z-index: 8; -} -.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h { - position: absolute; - z-index: 6; - background: none; - overflow: hidden!important; -} -.ace_editor>.ace_sb-v { - z-index: 6; - right: 0; - top: 0; - width: 12px; -} -.ace_editor>.ace_sb-v div { - z-index: 8; - right: 0; - width: 100%; -} -.ace_editor>.ace_sb-h { - bottom: 0; - left: 0; - height: 12px; -} -.ace_editor>.ace_sb-h div { - bottom: 0; - height: 100%; -} -.ace_editor>.ace_sb_grabbed { - z-index: 8; - background: #000; -}`,"ace_scrollbar.css",!1);var a=function(){function d(p,g){this.element=h.createElement("div"),this.element.className="ace_sb"+g,this.inner=h.createElement("div"),this.inner.className="",this.element.appendChild(this.inner),this.VScrollWidth=12,this.HScrollHeight=12,p.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,l.addMultiMouseDownListener(this.element,[500,300,300],this,"onMouseDown")}return d.prototype.setVisible=function(p){this.element.style.display=p?"":"none",this.isVisible=p,this.coeff=1},d}();s.implement(a.prototype,u);var c=function(d){o(p,d);function p(g,m){var v=d.call(this,g,"-v")||this;return v.scrollTop=0,v.scrollHeight=0,v.parent=g,v.width=v.VScrollWidth,v.renderer=m,v.inner.style.width=v.element.style.width=(v.width||15)+"px",v.$minWidth=0,v}return p.prototype.onMouseDown=function(g,m){if(g==="mousedown"&&!(l.getButton(m)!==0||m.detail===2)){if(m.target===this.inner){var v=this,y=m.clientY,x=function(S){y=S.clientY},$=function(){clearInterval(M)},_=m.clientY,b=this.thumbTop,R=function(){if(y!==void 0){var S=v.scrollTopFromThumbTop(b+y-_);S!==v.scrollTop&&v._emit("scroll",{data:S})}};l.capture(this.inner,x,$);var M=setInterval(R,20);return l.preventDefault(m)}var k=m.clientY-this.element.getBoundingClientRect().top-this.thumbHeight/2;return this._emit("scroll",{data:this.scrollTopFromThumbTop(k)}),l.preventDefault(m)}},p.prototype.getHeight=function(){return this.height},p.prototype.scrollTopFromThumbTop=function(g){var m=g*(this.pageHeight-this.viewHeight)/(this.slideHeight-this.thumbHeight);return m=m>>0,m<0?m=0:m>this.pageHeight-this.viewHeight&&(m=this.pageHeight-this.viewHeight),m},p.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},p.prototype.setHeight=function(g){this.height=Math.max(0,g),this.slideHeight=this.height,this.viewHeight=this.height,this.setScrollHeight(this.pageHeight,!0)},p.prototype.setScrollHeight=function(g,m){this.pageHeight===g&&!m||(this.pageHeight=g,this.thumbHeight=this.slideHeight*this.viewHeight/this.pageHeight,this.thumbHeight>this.slideHeight&&(this.thumbHeight=this.slideHeight),this.thumbHeight<15&&(this.thumbHeight=15),this.inner.style.height=this.thumbHeight+"px",this.scrollTop>this.pageHeight-this.viewHeight&&(this.scrollTop=this.pageHeight-this.viewHeight,this.scrollTop<0&&(this.scrollTop=0),this._emit("scroll",{data:this.scrollTop})))},p.prototype.setScrollTop=function(g){this.scrollTop=g,g<0&&(g=0),this.thumbTop=g*(this.slideHeight-this.thumbHeight)/(this.pageHeight-this.viewHeight),this.inner.style.top=this.thumbTop+"px"},p}(a);c.prototype.setInnerHeight=c.prototype.setScrollHeight;var f=function(d){o(p,d);function p(g,m){var v=d.call(this,g,"-h")||this;return v.scrollLeft=0,v.scrollWidth=0,v.height=v.HScrollHeight,v.inner.style.height=v.element.style.height=(v.height||12)+"px",v.renderer=m,v}return p.prototype.onMouseDown=function(g,m){if(g==="mousedown"&&!(l.getButton(m)!==0||m.detail===2)){if(m.target===this.inner){var v=this,y=m.clientX,x=function(S){y=S.clientX},$=function(){clearInterval(M)},_=m.clientX,b=this.thumbLeft,R=function(){if(y!==void 0){var S=v.scrollLeftFromThumbLeft(b+y-_);S!==v.scrollLeft&&v._emit("scroll",{data:S})}};l.capture(this.inner,x,$);var M=setInterval(R,20);return l.preventDefault(m)}var k=m.clientX-this.element.getBoundingClientRect().left-this.thumbWidth/2;return this._emit("scroll",{data:this.scrollLeftFromThumbLeft(k)}),l.preventDefault(m)}},p.prototype.getHeight=function(){return this.isVisible?this.height:0},p.prototype.scrollLeftFromThumbLeft=function(g){var m=g*(this.pageWidth-this.viewWidth)/(this.slideWidth-this.thumbWidth);return m=m>>0,m<0?m=0:m>this.pageWidth-this.viewWidth&&(m=this.pageWidth-this.viewWidth),m},p.prototype.setWidth=function(g){this.width=Math.max(0,g),this.element.style.width=this.width+"px",this.slideWidth=this.width,this.viewWidth=this.width,this.setScrollWidth(this.pageWidth,!0)},p.prototype.setScrollWidth=function(g,m){this.pageWidth===g&&!m||(this.pageWidth=g,this.thumbWidth=this.slideWidth*this.viewWidth/this.pageWidth,this.thumbWidth>this.slideWidth&&(this.thumbWidth=this.slideWidth),this.thumbWidth<15&&(this.thumbWidth=15),this.inner.style.width=this.thumbWidth+"px",this.scrollLeft>this.pageWidth-this.viewWidth&&(this.scrollLeft=this.pageWidth-this.viewWidth,this.scrollLeft<0&&(this.scrollLeft=0),this._emit("scroll",{data:this.scrollLeft})))},p.prototype.setScrollLeft=function(g){this.scrollLeft=g,g<0&&(g=0),this.thumbLeft=g*(this.slideWidth-this.thumbWidth)/(this.pageWidth-this.viewWidth),this.inner.style.left=this.thumbLeft+"px"},p}(a);f.prototype.setInnerWidth=f.prototype.setScrollWidth,r.ScrollBar=c,r.ScrollBarV=c,r.ScrollBarH=f,r.VScrollBar=c,r.HScrollBar=f}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(n,r,i){var o=n("./lib/event"),s=function(){function h(l,u){this.onRender=l,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=u||window;var a=this;this._flush=function(c){a.pending=!1;var f=a.changes;if(f&&(o.blockIdle(100),a.changes=0,a.onRender(f)),a.changes){if(a.$recursionLimit--<0)return;a.schedule()}else a.$recursionLimit=2}}return h.prototype.schedule=function(l){this.changes=this.changes|l,this.changes&&!this.pending&&(o.nextFrame(this._flush),this.pending=!0)},h.prototype.clear=function(l){var u=this.changes;return this.changes=0,u},h}();r.RenderLoop=s}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],function(n,r,i){var o=n("../lib/oop"),s=n("../lib/dom"),h=n("../lib/lang"),l=n("../lib/event"),u=n("../lib/useragent"),a=n("../lib/event_emitter").EventEmitter,c=512,f=typeof ResizeObserver=="function",d=200,p=function(){function g(m){this.el=s.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=s.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=s.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),m.appendChild(this.el),this.$measureNode.textContent=h.stringRepeat("X",c),this.$characterSize={width:0,height:0},f?this.$addObserver():this.checkForSizeChanges()}return g.prototype.$setMeasureNodeStyles=function(m,v){m.width=m.height="auto",m.left=m.top="0px",m.visibility="hidden",m.position="absolute",m.whiteSpace="pre",u.isIE<8?m["font-family"]="inherit":m.font="inherit",m.overflow=v?"hidden":"visible"},g.prototype.checkForSizeChanges=function(m){if(m===void 0&&(m=this.$measureSizes()),m&&(this.$characterSize.width!==m.width||this.$characterSize.height!==m.height)){this.$measureNode.style.fontWeight="bold";var v=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=m,this.charSizes=Object.create(null),this.allowBoldFonts=v&&v.width===m.width&&v.height===m.height,this._emit("changeCharacterSize",{data:m})}},g.prototype.$addObserver=function(){var m=this;this.$observer=new window.ResizeObserver(function(v){m.checkForSizeChanges()}),this.$observer.observe(this.$measureNode)},g.prototype.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var m=this;return this.$pollSizeChangesTimer=l.onIdle(function v(){m.checkForSizeChanges(),l.onIdle(v,500)},500)},g.prototype.setPolling=function(m){m?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},g.prototype.$measureSizes=function(m){var v={height:(m||this.$measureNode).clientHeight,width:(m||this.$measureNode).clientWidth/c};return v.width===0||v.height===0?null:v},g.prototype.$measureCharWidth=function(m){this.$main.textContent=h.stringRepeat(m,c);var v=this.$main.getBoundingClientRect();return v.width/c},g.prototype.getCharacterWidth=function(m){var v=this.charSizes[m];return v===void 0&&(v=this.charSizes[m]=this.$measureCharWidth(m)/this.$characterSize.width),v},g.prototype.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},g.prototype.$getZoom=function(m){return!m||!m.parentElement?1:(window.getComputedStyle(m).zoom||1)*this.$getZoom(m.parentElement)},g.prototype.$initTransformMeasureNodes=function(){var m=function(v,y){return["div",{style:"position: absolute;top:"+v+"px;left:"+y+"px;"}]};this.els=s.buildDom([m(0,0),m(d,0),m(0,d),m(d,d)],this.el)},g.prototype.transformCoordinates=function(m,v){if(m){var y=this.$getZoom(this.el);m=b(1/y,m)}function x(z,F,W){var G=z[1]*F[0]-z[0]*F[1];return[(-F[1]*W[0]+F[0]*W[1])/G,(+z[1]*W[0]-z[0]*W[1])/G]}function $(z,F){return[z[0]-F[0],z[1]-F[1]]}function _(z,F){return[z[0]+F[0],z[1]+F[1]]}function b(z,F){return[z*F[0],z*F[1]]}this.els||this.$initTransformMeasureNodes();function R(z){var F=z.getBoundingClientRect();return[F.left,F.top]}var M=R(this.els[0]),k=R(this.els[1]),S=R(this.els[2]),E=R(this.els[3]),I=x($(E,k),$(E,S),$(_(k,S),_(E,M))),C=b(1+I[0],$(k,M)),w=b(1+I[1],$(S,M));if(v){var T=v,O=I[0]*T[0]/d+I[1]*T[1]/d+1,N=_(b(T[0],C),b(T[1],w));return _(b(1/O/d,N),M)}var B=$(m,M),H=x($(C,b(I[0],B)),$(w,b(I[1],B)),B);return b(d,H)},g}();p.prototype.$characterSize={width:0,height:0},o.implement(p.prototype,a),r.FontMetrics=p}),ace.define("ace/css/editor.css",["require","exports","module"],function(n,r,i){i.exports=` -.ace_br1 {border-top-left-radius : 3px;} -.ace_br2 {border-top-right-radius : 3px;} -.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;} -.ace_br4 {border-bottom-right-radius: 3px;} -.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;} -.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;} -.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;} -.ace_br8 {border-bottom-left-radius : 3px;} -.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;} -.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;} -.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;} -.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} -.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} -.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} -.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} - - -.ace_editor { - position: relative; - overflow: hidden; - padding: 0; - font: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'Source Code Pro', 'source-code-pro', monospace; - direction: ltr; - text-align: left; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} - -.ace_scroller { - position: absolute; - overflow: hidden; - top: 0; - bottom: 0; - background-color: inherit; - -ms-user-select: none; - -moz-user-select: none; - -webkit-user-select: none; - user-select: none; - cursor: text; -} - -.ace_content { - position: absolute; - box-sizing: border-box; - min-width: 100%; - contain: style size layout; - font-variant-ligatures: no-common-ligatures; -} - -.ace_keyboard-focus:focus { - box-shadow: inset 0 0 0 2px #5E9ED6; - outline: none; -} - -.ace_dragging .ace_scroller:before{ - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - content: ''; - background: rgba(250, 250, 250, 0.01); - z-index: 1000; -} -.ace_dragging.ace_dark .ace_scroller:before{ - background: rgba(0, 0, 0, 0.01); -} - -.ace_gutter { - position: absolute; - overflow : hidden; - width: auto; - top: 0; - bottom: 0; - left: 0; - cursor: default; - z-index: 4; - -ms-user-select: none; - -moz-user-select: none; - -webkit-user-select: none; - user-select: none; - contain: style size layout; -} - -.ace_gutter-active-line { - position: absolute; - left: 0; - right: 0; -} - -.ace_scroller.ace_scroll-left:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset; - pointer-events: none; -} - -.ace_gutter-cell, .ace_gutter-cell_svg-icons { - position: absolute; - top: 0; - left: 0; - right: 0; - padding-left: 19px; - padding-right: 6px; - background-repeat: no-repeat; -} - -.ace_gutter-cell_svg-icons .ace_gutter_annotation { - margin-left: -14px; - float: left; -} - -.ace_gutter-cell .ace_gutter_annotation { - margin-left: -19px; - float: left; -} - -.ace_gutter-cell.ace_error, .ace_icon.ace_error, .ace_icon.ace_error_fold { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg=="); - background-repeat: no-repeat; - background-position: 2px center; -} - -.ace_gutter-cell.ace_warning, .ace_icon.ace_warning, .ace_icon.ace_warning_fold { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg=="); - background-repeat: no-repeat; - background-position: 2px center; -} - -.ace_gutter-cell.ace_info, .ace_icon.ace_info { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII="); - background-repeat: no-repeat; - background-position: 2px center; -} -.ace_dark .ace_gutter-cell.ace_info, .ace_dark .ace_icon.ace_info { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC"); -} - -.ace_icon_svg.ace_error { - -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJyZWQiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KPGNpcmNsZSBmaWxsPSJub25lIiBjeD0iOCIgY3k9IjgiIHI9IjciIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPGxpbmUgeDE9IjExIiB5MT0iNSIgeDI9IjUiIHkyPSIxMSIvPgo8bGluZSB4MT0iMTEiIHkxPSIxMSIgeDI9IjUiIHkyPSI1Ii8+CjwvZz4KPC9zdmc+"); - background-color: crimson; -} -.ace_icon_svg.ace_warning { - -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJkYXJrb3JhbmdlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+Cjxwb2x5Z29uIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGZpbGw9Im5vbmUiIHBvaW50cz0iOCAxIDE1IDE1IDEgMTUgOCAxIi8+CjxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iMC4wMSIgaGVpZ2h0PSIwLjAxIi8+CjxsaW5lIHgxPSI4IiB5MT0iNiIgeDI9IjgiIHkyPSIxMCIvPgo8L2c+Cjwvc3ZnPg=="); - background-color: darkorange; -} -.ace_icon_svg.ace_info { - -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJibHVlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CjxjaXJjbGUgZmlsbD0ibm9uZSIgY3g9IjgiIGN5PSI4IiByPSI3IiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjxwb2x5bGluZSBwb2ludHM9IjggMTEgOCA4Ii8+Cjxwb2x5bGluZSBwb2ludHM9IjkgOCA2IDgiLz4KPGxpbmUgeDE9IjEwIiB5MT0iMTEiIHgyPSI2IiB5Mj0iMTEiLz4KPHJlY3QgeD0iOCIgeT0iNSIgd2lkdGg9IjAuMDEiIGhlaWdodD0iMC4wMSIvPgo8L2c+Cjwvc3ZnPg=="); - background-color: royalblue; -} - -.ace_icon_svg.ace_error_fold { - -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0ibSAxOC45Mjk4NTEsNy44Mjk4MDc2IGMgMC4xNDYzNTMsNi4zMzc0NjA0IC02LjMyMzE0Nyw3Ljc3Nzg0NDQgLTcuNDc3OTEyLDcuNzc3ODQ0NCAtMi4xMDcyNzI2LC0wLjEyODc1IDUuMTE3Njc4LDAuMzU2MjQ5IDUuMDUxNjk4LC03Ljg3MDA2MTggLTAuNjA0NjcyLC04LjAwMzk3MzQ5IC03LjA3NzI3MDYsLTcuNTYzMTE4OSAtNC44NTczLC03LjQzMDM5NTU2IDEuNjA2LC0wLjExNTE0MjI1IDYuODk3NDg1LDEuMjYyNTQ1OTYgNy4yODM1MTQsNy41MjI2MTI5NiB6IiBmaWxsPSJjcmltc29uIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0ibSA4LjExNDc1NjIsMi4wNTI5ODI4IGMgMy4zNDkxNjk4LDAgNi4wNjQxMzI4LDIuNjc2ODYyNyA2LjA2NDEzMjgsNS45Nzg5NTMgMCwzLjMwMjExMjIgLTIuNzE0OTYzLDUuOTc4OTIwMiAtNi4wNjQxMzI4LDUuOTc4OTIwMiAtMy4zNDkxNDczLDAgLTYuMDY0MTc3MiwtMi42NzY4MDggLTYuMDY0MTc3MiwtNS45Nzg5MjAyIDAuMDA1MzksLTMuMjk5ODg2MSAyLjcxNzI2NTYsLTUuOTczNjQwOCA2LjA2NDE3NzIsLTUuOTc4OTUzIHogbSAwLC0xLjczNTgyNzE5IGMgLTQuMzIxNDgzNiwwIC03LjgyNDc0MDM4LDMuNDU0MDE4NDkgLTcuODI0NzQwMzgsNy43MTQ3ODAxOSAwLDQuMjYwNzI4MiAzLjUwMzI1Njc4LDcuNzE0NzQ1MiA3LjgyNDc0MDM4LDcuNzE0NzQ1MiA0LjMyMTQ0OTgsMCA3LjgyNDY5OTgsLTMuNDU0MDE3IDcuODI0Njk5OCwtNy43MTQ3NDUyIDAsLTIuMDQ2MDkxNCAtMC44MjQzOTIsLTQuMDA4MzY3MiAtMi4yOTE3NTYsLTUuNDU1MTc0NiBDIDEyLjE4MDIyNSwxLjEyOTk2NDggMTAuMTkwMDEzLDAuMzE3MTU1NjEgOC4xMTQ3NTYyLDAuMzE3MTU1NjEgWiBNIDYuOTM3NDU2Myw4LjI0MDU5ODUgNC42NzE4Njg1LDEwLjQ4NTg1MiA2LjAwODY4MTQsMTEuODc2NzI4IDguMzE3MDAzNSw5LjYwMDc5MTEgMTAuNjI1MzM3LDExLjg3NjcyOCAxMS45NjIxMzgsMTAuNDg1ODUyIDkuNjk2NTUwOCw4LjI0MDU5ODUgMTEuOTYyMTM4LDYuMDA2ODA2NiAxMC41NzMyNDYsNC42Mzc0MzM1IDguMzE3MDAzNSw2Ljg3MzQyOTcgNi4wNjA3NjA3LDQuNjM3NDMzNSA0LjY3MTg2ODUsNi4wMDY4MDY2IFoiIGZpbGw9ImNyaW1zb24iIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4="); - background-color: crimson; -} -.ace_icon_svg.ace_warning_fold { - -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNC43NzY5IDE0LjczMzdMOC42NTE5MiAyLjQ4MzY5QzguMzI5NDYgMS44Mzg3NyA3LjQwOTEzIDEuODM4NzcgNy4wODY2NyAyLjQ4MzY5TDAuOTYxNjY5IDE0LjczMzdDMC42NzA3NzUgMTUuMzE1NSAxLjA5MzgzIDE2IDEuNzQ0MjkgMTZIMTMuOTk0M0MxNC42NDQ4IDE2IDE1LjA2NzggMTUuMzE1NSAxNC43NzY5IDE0LjczMzdaTTMuMTYwMDcgMTQuMjVMNy44NjkyOSA0LjgzMTU2TDEyLjU3ODUgMTQuMjVIMy4xNjAwN1pNOC43NDQyOSAxMS42MjVWMTMuMzc1SDYuOTk0MjlWMTEuNjI1SDguNzQ0MjlaTTYuOTk0MjkgMTAuNzVWNy4yNUg4Ljc0NDI5VjEwLjc1SDYuOTk0MjlaIiBmaWxsPSIjRUM3MjExIi8+CjxwYXRoIGQ9Ik0xMS4xOTkxIDIuOTUyMzhDMTAuODgwOSAyLjMxNDY3IDEwLjM1MzcgMS44MDUyNiA5LjcwNTUgMS41MDlMMTEuMDQxIDEuMDY5NzhDMTEuNjg4MyAwLjk0OTgxNCAxMi4zMzcgMS4yNzI2MyAxMi42MzE3IDEuODYxNDFMMTcuNjEzNiAxMS44MTYxQzE4LjM1MjcgMTMuMjkyOSAxNy41OTM4IDE1LjA4MDQgMTYuMDE4IDE1LjU3NDVDMTYuNDA0NCAxNC40NTA3IDE2LjMyMzEgMTMuMjE4OCAxNS43OTI0IDEyLjE1NTVMMTEuMTk5MSAyLjk1MjM4WiIgZmlsbD0iI0VDNzIxMSIvPgo8L3N2Zz4="); - background-color: darkorange; -} - -.ace_scrollbar { - contain: strict; - position: absolute; - right: 0; - bottom: 0; - z-index: 6; -} - -.ace_scrollbar-inner { - position: absolute; - cursor: text; - left: 0; - top: 0; -} - -.ace_scrollbar-v{ - overflow-x: hidden; - overflow-y: scroll; - top: 0; -} - -.ace_scrollbar-h { - overflow-x: scroll; - overflow-y: hidden; - left: 0; -} - -.ace_print-margin { - position: absolute; - height: 100%; -} - -.ace_text-input { - position: absolute; - z-index: 0; - width: 0.5em; - height: 1em; - opacity: 0; - background: transparent; - -moz-appearance: none; - appearance: none; - border: none; - resize: none; - outline: none; - overflow: hidden; - font: inherit; - padding: 0 1px; - margin: 0 -1px; - contain: strict; - -ms-user-select: text; - -moz-user-select: text; - -webkit-user-select: text; - user-select: text; - /*with \`pre-line\` chrome inserts   instead of space*/ - white-space: pre!important; -} -.ace_text-input.ace_composition { - background: transparent; - color: inherit; - z-index: 1000; - opacity: 1; -} -.ace_composition_placeholder { color: transparent } -.ace_composition_marker { - border-bottom: 1px solid; - position: absolute; - border-radius: 0; - margin-top: 1px; -} - -[ace_nocontext=true] { - transform: none!important; - filter: none!important; - clip-path: none!important; - mask : none!important; - contain: none!important; - perspective: none!important; - mix-blend-mode: initial!important; - z-index: auto; -} - -.ace_layer { - z-index: 1; - position: absolute; - overflow: hidden; - /* workaround for chrome bug https://github.com/ajaxorg/ace/issues/2312*/ - word-wrap: normal; - white-space: pre; - height: 100%; - width: 100%; - box-sizing: border-box; - /* setting pointer-events: auto; on node under the mouse, which changes - during scroll, will break mouse wheel scrolling in Safari */ - pointer-events: none; -} - -.ace_gutter-layer { - position: relative; - width: auto; - text-align: right; - pointer-events: auto; - height: 1000000px; - contain: style size layout; -} - -.ace_text-layer { - font: inherit !important; - position: absolute; - height: 1000000px; - width: 1000000px; - contain: style size layout; -} - -.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group { - contain: style size layout; - position: absolute; - top: 0; - left: 0; - right: 0; -} - -.ace_hidpi .ace_text-layer, -.ace_hidpi .ace_gutter-layer, -.ace_hidpi .ace_content, -.ace_hidpi .ace_gutter { - contain: strict; -} -.ace_hidpi .ace_text-layer > .ace_line, -.ace_hidpi .ace_text-layer > .ace_line_group { - contain: strict; -} - -.ace_cjk { - display: inline-block; - text-align: center; -} - -.ace_cursor-layer { - z-index: 4; -} - -.ace_cursor { - z-index: 4; - position: absolute; - box-sizing: border-box; - border-left: 2px solid; - /* workaround for smooth cursor repaintng whole screen in chrome */ - transform: translatez(0); -} - -.ace_multiselect .ace_cursor { - border-left-width: 1px; -} - -.ace_slim-cursors .ace_cursor { - border-left-width: 1px; -} - -.ace_overwrite-cursors .ace_cursor { - border-left-width: 0; - border-bottom: 1px solid; -} - -.ace_hidden-cursors .ace_cursor { - opacity: 0.2; -} - -.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor { - opacity: 0; -} - -.ace_smooth-blinking .ace_cursor { - transition: opacity 0.18s; -} - -.ace_animate-blinking .ace_cursor { - animation-duration: 1000ms; - animation-timing-function: step-end; - animation-name: blink-ace-animate; - animation-iteration-count: infinite; -} - -.ace_animate-blinking.ace_smooth-blinking .ace_cursor { - animation-duration: 1000ms; - animation-timing-function: ease-in-out; - animation-name: blink-ace-animate-smooth; -} - -@keyframes blink-ace-animate { - from, to { opacity: 1; } - 60% { opacity: 0; } -} - -@keyframes blink-ace-animate-smooth { - from, to { opacity: 1; } - 45% { opacity: 1; } - 60% { opacity: 0; } - 85% { opacity: 0; } -} - -.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack { - position: absolute; - z-index: 3; -} - -.ace_marker-layer .ace_selection { - position: absolute; - z-index: 5; -} - -.ace_marker-layer .ace_bracket { - position: absolute; - z-index: 6; -} - -.ace_marker-layer .ace_error_bracket { - position: absolute; - border-bottom: 1px solid #DE5555; - border-radius: 0; -} - -.ace_marker-layer .ace_active-line { - position: absolute; - z-index: 2; -} - -.ace_marker-layer .ace_selected-word { - position: absolute; - z-index: 4; - box-sizing: border-box; -} - -.ace_line .ace_fold { - box-sizing: border-box; - - display: inline-block; - height: 11px; - margin-top: -2px; - vertical-align: middle; - - background-image: - url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="), - url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII="); - background-repeat: no-repeat, repeat-x; - background-position: center center, top left; - color: transparent; - - border: 1px solid black; - border-radius: 2px; - - cursor: pointer; - pointer-events: auto; -} - -.ace_dark .ace_fold { -} - -.ace_fold:hover{ - background-image: - url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="), - url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC"); -} - -.ace_tooltip { - background-color: #f5f5f5; - border: 1px solid gray; - border-radius: 1px; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); - color: black; - max-width: 100%; - padding: 3px 4px; - position: fixed; - z-index: 999999; - box-sizing: border-box; - cursor: default; - white-space: pre; - word-wrap: break-word; - line-height: normal; - font-style: normal; - font-weight: normal; - letter-spacing: normal; - pointer-events: none; -} - -.ace_tooltip.ace_dark { - background-color: #636363; - color: #fff; -} - -.ace_tooltip:focus { - outline: 1px solid #5E9ED6; -} - -.ace_icon { - display: inline-block; - width: 18px; - vertical-align: top; -} - -.ace_icon_svg { - display: inline-block; - width: 12px; - vertical-align: top; - -webkit-mask-repeat: no-repeat; - -webkit-mask-size: 12px; - -webkit-mask-position: center; -} - -.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons { - padding-right: 13px; -} - -.ace_fold-widget { - box-sizing: border-box; - - margin: 0 -12px 0 1px; - display: none; - width: 11px; - vertical-align: top; - - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg=="); - background-repeat: no-repeat; - background-position: center; - - border-radius: 3px; - - border: 1px solid transparent; - cursor: pointer; -} - -.ace_folding-enabled .ace_fold-widget { - display: inline-block; -} - -.ace_fold-widget.ace_end { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg=="); -} - -.ace_fold-widget.ace_closed { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA=="); -} - -.ace_fold-widget:hover { - border: 1px solid rgba(0, 0, 0, 0.3); - background-color: rgba(255, 255, 255, 0.2); - box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7); -} - -.ace_fold-widget:active { - border: 1px solid rgba(0, 0, 0, 0.4); - background-color: rgba(0, 0, 0, 0.05); - box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8); -} -/** - * Dark version for fold widgets - */ -.ace_dark .ace_fold-widget { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC"); -} -.ace_dark .ace_fold-widget.ace_end { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg=="); -} -.ace_dark .ace_fold-widget.ace_closed { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg=="); -} -.ace_dark .ace_fold-widget:hover { - box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2); - background-color: rgba(255, 255, 255, 0.1); -} -.ace_dark .ace_fold-widget:active { - box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2); -} - -.ace_inline_button { - border: 1px solid lightgray; - display: inline-block; - margin: -1px 8px; - padding: 0 5px; - pointer-events: auto; - cursor: pointer; -} -.ace_inline_button:hover { - border-color: gray; - background: rgba(200,200,200,0.2); - display: inline-block; - pointer-events: auto; -} - -.ace_fold-widget.ace_invalid { - background-color: #FFB4B4; - border-color: #DE5555; -} - -.ace_fade-fold-widgets .ace_fold-widget { - transition: opacity 0.4s ease 0.05s; - opacity: 0; -} - -.ace_fade-fold-widgets:hover .ace_fold-widget { - transition: opacity 0.05s ease 0.05s; - opacity:1; -} - -.ace_underline { - text-decoration: underline; -} - -.ace_bold { - font-weight: bold; -} - -.ace_nobold .ace_bold { - font-weight: normal; -} - -.ace_italic { - font-style: italic; -} - - -.ace_error-marker { - background-color: rgba(255, 0, 0,0.2); - position: absolute; - z-index: 9; -} - -.ace_highlight-marker { - background-color: rgba(255, 255, 0,0.2); - position: absolute; - z-index: 8; -} - -.ace_mobile-menu { - position: absolute; - line-height: 1.5; - border-radius: 4px; - -ms-user-select: none; - -moz-user-select: none; - -webkit-user-select: none; - user-select: none; - background: white; - box-shadow: 1px 3px 2px grey; - border: 1px solid #dcdcdc; - color: black; -} -.ace_dark > .ace_mobile-menu { - background: #333; - color: #ccc; - box-shadow: 1px 3px 2px grey; - border: 1px solid #444; - -} -.ace_mobile-button { - padding: 2px; - cursor: pointer; - overflow: hidden; -} -.ace_mobile-button:hover { - background-color: #eee; - opacity:1; -} -.ace_mobile-button:active { - background-color: #ddd; -} - -.ace_placeholder { - font-family: arial; - transform: scale(0.9); - transform-origin: left; - white-space: pre; - opacity: 0.7; - margin: 0 10px; -} - -.ace_ghost_text { - opacity: 0.5; - font-style: italic; - white-space: pre; -}`}),ace.define("ace/layer/decorators",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],function(n,r,i){var o=n("../lib/dom"),s=n("../lib/oop"),h=n("../lib/event_emitter").EventEmitter,l=function(){function u(a,c){this.canvas=o.createElement("canvas"),this.renderer=c,this.pixelRatio=1,this.maxHeight=c.layerConfig.maxHeight,this.lineHeight=c.layerConfig.lineHeight,this.canvasHeight=a.parent.scrollHeight,this.heightRatio=this.canvasHeight/this.maxHeight,this.canvasWidth=a.width,this.minDecorationHeight=2*this.pixelRatio|0,this.halfMinDecorationHeight=this.minDecorationHeight/2|0,this.canvas.width=this.canvasWidth,this.canvas.height=this.canvasHeight,this.canvas.style.top="0px",this.canvas.style.right="0px",this.canvas.style.zIndex="7px",this.canvas.style.position="absolute",this.colors={},this.colors.dark={error:"rgba(255, 18, 18, 1)",warning:"rgba(18, 136, 18, 1)",info:"rgba(18, 18, 136, 1)"},this.colors.light={error:"rgb(255,51,51)",warning:"rgb(32,133,72)",info:"rgb(35,68,138)"},a.element.appendChild(this.canvas)}return u.prototype.$updateDecorators=function(a){var c=this.renderer.theme.isDark===!0?this.colors.dark:this.colors.light;if(a){this.maxHeight=a.maxHeight,this.lineHeight=a.lineHeight,this.canvasHeight=a.height;var f=(a.lastRow+1)*this.lineHeight;fI.priority?1:0}var g=this.renderer.session.$annotations;if(d.clearRect(0,0,this.canvas.width,this.canvas.height),g){var m={info:1,warning:2,error:3};g.forEach(function(E){E.priority=m[E.type]||null}),g=g.sort(p);for(var v=this.renderer.session.$foldData,y=0;ythis.canvasHeight&&(k=this.canvasHeight-this.halfMinDecorationHeight),b=Math.round(k-this.halfMinDecorationHeight),R=Math.round(k+this.halfMinDecorationHeight)}d.fillStyle=c[g[y].type]||null,d.fillRect(0,_,this.canvasWidth,R-b)}}var S=this.renderer.session.selection.getCursor();if(S){var $=this.compensateFoldRows(S.row,v),_=Math.round((S.row-$)*this.lineHeight*this.heightRatio);d.fillStyle="rgba(0, 0, 0, 0.5)",d.fillRect(0,_,this.canvasWidth,2)}},u.prototype.compensateFoldRows=function(a,c){var f=0;if(c&&c.length>0)for(var d=0;dc[d].start.row&&a=c[d].end.row&&(f+=c[d].end.row-c[d].start.row);return f},u}();s.implement(l.prototype,h),r.Decorator=l}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/scrollbar_custom","ace/scrollbar_custom","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter","ace/css/editor.css","ace/layer/decorators","ace/lib/useragent"],function(n,r,i){var o=n("./lib/oop"),s=n("./lib/dom"),h=n("./lib/lang"),l=n("./config"),u=n("./layer/gutter").Gutter,a=n("./layer/marker").Marker,c=n("./layer/text").Text,f=n("./layer/cursor").Cursor,d=n("./scrollbar").HScrollBar,p=n("./scrollbar").VScrollBar,g=n("./scrollbar_custom").HScrollBar,m=n("./scrollbar_custom").VScrollBar,v=n("./renderloop").RenderLoop,y=n("./layer/font_metrics").FontMetrics,x=n("./lib/event_emitter").EventEmitter,$=n("./css/editor.css"),_=n("./layer/decorators").Decorator,b=n("./lib/useragent");s.importCssString($,"ace_editor.css",!1);var R=function(){function M(k,S){var E=this;this.container=k||s.createElement("div"),s.addCssClass(this.container,"ace_editor"),s.HI_DPI&&s.addCssClass(this.container,"ace_hidpi"),this.setTheme(S),l.get("useStrictCSP")==null&&l.set("useStrictCSP",!1),this.$gutter=s.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=s.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=s.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new u(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new a(this.content);var I=this.$textLayer=new c(this.content);this.canvas=I.element,this.$markerFront=new a(this.content),this.$cursorLayer=new f(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new p(this.container,this),this.scrollBarH=new d(this.container,this),this.scrollBarV.on("scroll",function(C){E.$scrollAnimation||E.session.setScrollTop(C.data-E.scrollMargin.top)}),this.scrollBarH.on("scroll",function(C){E.$scrollAnimation||E.session.setScrollLeft(C.data-E.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new y(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.on("changeCharacterSize",function(C){E.updateCharacterSize(),E.onResize(!0,E.gutterWidth,E.$size.width,E.$size.height),E._signal("changeCharacterSize",C)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.margin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$keepTextAreaAtCursor=!b.isIOS,this.$loop=new v(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),this.$addResizeObserver(),l.resetOptions(this),l._signal("renderer",this)}return M.prototype.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin(),s.setStyle(this.scroller.style,"line-height",this.lineHeight+"px")},M.prototype.setSession=function(k){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=k,k&&this.scrollMargin.top&&k.getScrollTop()<=0&&k.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(k),this.$markerBack.setSession(k),this.$markerFront.setSession(k),this.$gutterLayer.setSession(k),this.$textLayer.setSession(k),k&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},M.prototype.updateLines=function(k,S,E){if(S===void 0&&(S=1/0),this.$changedLines?(this.$changedLines.firstRow>k&&(this.$changedLines.firstRow=k),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},M.prototype.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},M.prototype.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},M.prototype.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},M.prototype.updateFull=function(k){k?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},M.prototype.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},M.prototype.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},M.prototype.onResize=function(k,S,E,I){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=k?1:0;var C=this.container;I||(I=C.clientHeight||C.scrollHeight),E||(E=C.clientWidth||C.scrollWidth);var w=this.$updateCachedSize(k,S,E,I);if(this.$resizeTimer&&this.$resizeTimer.cancel(),!this.$size.scrollerHeight||!E&&!I)return this.resizing=0;k&&(this.$gutterLayer.$padding=null),k?this.$renderChanges(w|this.$changes,!0):this.$loop.schedule(w|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.$customScrollbar&&this.$updateCustomScrollbar(!0)}},M.prototype.$updateCachedSize=function(k,S,E,I){I-=this.$extraHeight||0;var C=0,w=this.$size,T={width:w.width,height:w.height,scrollerHeight:w.scrollerHeight,scrollerWidth:w.scrollerWidth};if(I&&(k||w.height!=I)&&(w.height=I,C|=this.CHANGE_SIZE,w.scrollerHeight=w.height,this.$horizScroll&&(w.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.setHeight(w.scrollerHeight),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",C=C|this.CHANGE_SCROLL),E&&(k||w.width!=E)){C|=this.CHANGE_SIZE,w.width=E,S==null&&(S=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=S,s.setStyle(this.scrollBarH.element.style,"left",S+"px"),s.setStyle(this.scroller.style,"left",S+this.margin.left+"px"),w.scrollerWidth=Math.max(0,E-S-this.scrollBarV.getWidth()-this.margin.h),s.setStyle(this.$gutter.style,"left",this.margin.left+"px");var O=this.scrollBarV.getWidth()+"px";s.setStyle(this.scrollBarH.element.style,"right",O),s.setStyle(this.scroller.style,"right",O),s.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight()),this.scrollBarH.setWidth(w.scrollerWidth),(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||k)&&(C|=this.CHANGE_FULL)}return w.$dirty=!E||!I,C&&this._signal("resize",T),C},M.prototype.onGutterResize=function(k){var S=this.$showGutter?k:0;S!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,S,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},M.prototype.adjustWrapLimit=function(){var k=this.$size.scrollerWidth-this.$padding*2,S=Math.floor(k/this.characterWidth);return this.session.adjustWrapLimit(S,this.$showPrintMargin&&this.$printMarginColumn)},M.prototype.setAnimatedScroll=function(k){this.setOption("animatedScroll",k)},M.prototype.getAnimatedScroll=function(){return this.$animatedScroll},M.prototype.setShowInvisibles=function(k){this.setOption("showInvisibles",k),this.session.$bidiHandler.setShowInvisibles(k)},M.prototype.getShowInvisibles=function(){return this.getOption("showInvisibles")},M.prototype.getDisplayIndentGuide=function(){return this.getOption("displayIndentGuides")},M.prototype.setDisplayIndentGuides=function(k){this.setOption("displayIndentGuides",k)},M.prototype.getHighlightIndentGuides=function(){return this.getOption("highlightIndentGuides")},M.prototype.setHighlightIndentGuides=function(k){this.setOption("highlightIndentGuides",k)},M.prototype.setShowPrintMargin=function(k){this.setOption("showPrintMargin",k)},M.prototype.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},M.prototype.setPrintMarginColumn=function(k){this.setOption("printMarginColumn",k)},M.prototype.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},M.prototype.getShowGutter=function(){return this.getOption("showGutter")},M.prototype.setShowGutter=function(k){return this.setOption("showGutter",k)},M.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},M.prototype.setFadeFoldWidgets=function(k){this.setOption("fadeFoldWidgets",k)},M.prototype.setHighlightGutterLine=function(k){this.setOption("highlightGutterLine",k)},M.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},M.prototype.$updatePrintMargin=function(){if(!(!this.$showPrintMargin&&!this.$printMarginEl)){if(!this.$printMarginEl){var k=s.createElement("div");k.className="ace_layer ace_print-margin-layer",this.$printMarginEl=s.createElement("div"),this.$printMarginEl.className="ace_print-margin",k.appendChild(this.$printMarginEl),this.content.insertBefore(k,this.content.firstChild)}var S=this.$printMarginEl.style;S.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",S.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()}},M.prototype.getContainerElement=function(){return this.container},M.prototype.getMouseEventTarget=function(){return this.scroller},M.prototype.getTextAreaContainer=function(){return this.container},M.prototype.$moveTextAreaToCursor=function(){if(!this.$isMousePressed){var k=this.textarea.style,S=this.$composition;if(!this.$keepTextAreaAtCursor&&!S){s.translate(this.textarea,-100,0);return}var E=this.$cursorLayer.$pixelPos;if(E){S&&S.markerRange&&(E=this.$cursorLayer.getPixelPosition(S.markerRange.start,!0));var I=this.layerConfig,C=E.top,w=E.left;C-=I.offset;var T=S&&S.useTextareaForIME||b.isMobile?this.lineHeight:1;if(C<0||C>I.height-T){s.translate(this.textarea,0,0);return}var O=1,N=this.$size.height-T;if(!S)C+=this.lineHeight;else if(S.useTextareaForIME){var B=this.textarea.value;O=this.characterWidth*this.session.$getStringScreenWidth(B)[0]}else C+=this.lineHeight+2;w-=this.scrollLeft,w>this.$size.scrollerWidth-O&&(w=this.$size.scrollerWidth-O),w+=this.gutterWidth+this.margin.left,s.setStyle(k,"height",T+"px"),s.setStyle(k,"width",O+"px"),s.translate(this.textarea,Math.min(w,this.$size.scrollerWidth-O),Math.min(C,N))}}},M.prototype.getFirstVisibleRow=function(){return this.layerConfig.firstRow},M.prototype.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},M.prototype.getLastFullyVisibleRow=function(){var k=this.layerConfig,S=k.lastRow,E=this.session.documentToScreenRow(S,0)*k.lineHeight;return E-this.session.getScrollTop()>k.height-k.lineHeight?S-1:S},M.prototype.getLastVisibleRow=function(){return this.layerConfig.lastRow},M.prototype.setPadding=function(k){this.$padding=k,this.$textLayer.setPadding(k),this.$cursorLayer.setPadding(k),this.$markerFront.setPadding(k),this.$markerBack.setPadding(k),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},M.prototype.setScrollMargin=function(k,S,E,I){var C=this.scrollMargin;C.top=k|0,C.bottom=S|0,C.right=I|0,C.left=E|0,C.v=C.top+C.bottom,C.h=C.left+C.right,C.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-C.top),this.updateFull()},M.prototype.setMargin=function(k,S,E,I){var C=this.margin;C.top=k|0,C.bottom=S|0,C.right=I|0,C.left=E|0,C.v=C.top+C.bottom,C.h=C.left+C.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},M.prototype.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},M.prototype.setHScrollBarAlwaysVisible=function(k){this.setOption("hScrollBarAlwaysVisible",k)},M.prototype.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},M.prototype.setVScrollBarAlwaysVisible=function(k){this.setOption("vScrollBarAlwaysVisible",k)},M.prototype.$updateScrollBarV=function(){var k=this.layerConfig.maxHeight,S=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(k-=(S-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>k-S&&(k=this.scrollTop+S,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(k+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},M.prototype.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},M.prototype.freeze=function(){this.$frozen=!0},M.prototype.unfreeze=function(){this.$frozen=!1},M.prototype.$renderChanges=function(k,S){if(this.$changes&&(k|=this.$changes,this.$changes=0),!this.session||!this.container.offsetWidth||this.$frozen||!k&&!S){this.$changes|=k;return}if(this.$size.$dirty)return this.$changes|=k,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",k),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var E=this.layerConfig;if(k&this.CHANGE_FULL||k&this.CHANGE_SIZE||k&this.CHANGE_TEXT||k&this.CHANGE_LINES||k&this.CHANGE_SCROLL||k&this.CHANGE_H_SCROLL){if(k|=this.$computeLayerConfig()|this.$loop.clear(),E.firstRow!=this.layerConfig.firstRow&&E.firstRowScreen==this.layerConfig.firstRowScreen){var I=this.scrollTop+(E.firstRow-Math.max(this.layerConfig.firstRow,0))*this.lineHeight;I>0&&(this.scrollTop=I,k=k|this.CHANGE_SCROLL,k|=this.$computeLayerConfig()|this.$loop.clear())}E=this.layerConfig,this.$updateScrollBarV(),k&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),s.translate(this.content,-this.scrollLeft,-E.offset);var C=E.width+2*this.$padding+"px",w=E.minHeight+"px";s.setStyle(this.content.style,"width",C),s.setStyle(this.content.style,"height",w)}if(k&this.CHANGE_H_SCROLL&&(s.translate(this.content,-this.scrollLeft,-E.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller ":"ace_scroller ace_scroll-left ",this.enableKeyboardAccessibility&&(this.scroller.className+=this.keyboardFocusClassName)),k&this.CHANGE_FULL){this.$changedLines=null,this.$textLayer.update(E),this.$showGutter&&this.$gutterLayer.update(E),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(E),this.$markerBack.update(E),this.$markerFront.update(E),this.$cursorLayer.update(E),this.$moveTextAreaToCursor(),this._signal("afterRender",k);return}if(k&this.CHANGE_SCROLL){this.$changedLines=null,k&this.CHANGE_TEXT||k&this.CHANGE_LINES?this.$textLayer.update(E):this.$textLayer.scrollLines(E),this.$showGutter&&(k&this.CHANGE_GUTTER||k&this.CHANGE_LINES?this.$gutterLayer.update(E):this.$gutterLayer.scrollLines(E)),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(E),this.$markerBack.update(E),this.$markerFront.update(E),this.$cursorLayer.update(E),this.$moveTextAreaToCursor(),this._signal("afterRender",k);return}k&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(E),this.$showGutter&&this.$gutterLayer.update(E),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(E)):k&this.CHANGE_LINES?((this.$updateLines()||k&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(E),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(E)):k&this.CHANGE_TEXT||k&this.CHANGE_GUTTER?(this.$showGutter&&this.$gutterLayer.update(E),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(E)):k&this.CHANGE_CURSOR&&(this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(E),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(E)),k&this.CHANGE_CURSOR&&(this.$cursorLayer.update(E),this.$moveTextAreaToCursor()),k&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(E),k&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(E),this._signal("afterRender",k)},M.prototype.$autosize=function(){var k=this.session.getScreenLength()*this.lineHeight,S=this.$maxLines*this.lineHeight,E=Math.min(S,Math.max((this.$minLines||1)*this.lineHeight,k))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(E+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&E>this.$maxPixelHeight&&(E=this.$maxPixelHeight);var I=E<=2*this.lineHeight,C=!I&&k>S;if(E!=this.desiredHeight||this.$size.height!=this.desiredHeight||C!=this.$vScroll){C!=this.$vScroll&&(this.$vScroll=C,this.scrollBarV.setVisible(C));var w=this.container.clientWidth;this.container.style.height=E+"px",this.$updateCachedSize(!0,this.$gutterWidth,w,E),this.desiredHeight=E,this._signal("autosize")}},M.prototype.$computeLayerConfig=function(){var k=this.session,S=this.$size,E=S.height<=2*this.lineHeight,I=this.session.getScreenLength(),C=I*this.lineHeight,w=this.$getLongestLine(),T=!E&&(this.$hScrollBarAlwaysVisible||S.scrollerWidth-w-2*this.$padding<0),O=this.$horizScroll!==T;O&&(this.$horizScroll=T,this.scrollBarH.setVisible(T));var N=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var B=S.scrollerHeight+this.lineHeight,H=!this.$maxLines&&this.$scrollPastEnd?(S.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;C+=H;var z=this.scrollMargin;this.session.setScrollTop(Math.max(-z.top,Math.min(this.scrollTop,C-S.scrollerHeight+z.bottom))),this.session.setScrollLeft(Math.max(-z.left,Math.min(this.scrollLeft,w+2*this.$padding-S.scrollerWidth+z.right)));var F=!E&&(this.$vScrollBarAlwaysVisible||S.scrollerHeight-C+H<0||this.scrollTop>z.top),W=N!==F;W&&(this.$vScroll=F,this.scrollBarV.setVisible(F));var G=this.scrollTop%this.lineHeight,U=Math.ceil(B/this.lineHeight)-1,Q=Math.max(0,Math.round((this.scrollTop-G)/this.lineHeight)),ee=Q+U,V,q,re=this.lineHeight;Q=k.screenToDocumentRow(Q,0);var se=k.getFoldLine(Q);se&&(Q=se.start.row),V=k.documentToScreenRow(Q,0),q=k.getRowLength(Q)*re,ee=Math.min(k.screenToDocumentRow(ee,0),k.getLength()-1),B=S.scrollerHeight+k.getRowLength(ee)*re+q,G=this.scrollTop-V*re;var ge=0;return(this.layerConfig.width!=w||O)&&(ge=this.CHANGE_H_SCROLL),(O||W)&&(ge|=this.$updateCachedSize(!0,this.gutterWidth,S.width,S.height),this._signal("scrollbarVisibilityChanged"),W&&(w=this.$getLongestLine())),this.layerConfig={width:w,padding:this.$padding,firstRow:Q,firstRowScreen:V,lastRow:ee,lineHeight:re,characterWidth:this.characterWidth,minHeight:B,maxHeight:C,offset:G,gutterOffset:re?Math.max(0,Math.ceil((G+S.height-S.scrollerHeight)/re)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(w-this.$padding),ge},M.prototype.$updateLines=function(){if(this.$changedLines){var k=this.$changedLines.firstRow,S=this.$changedLines.lastRow;this.$changedLines=null;var E=this.layerConfig;if(!(k>E.lastRow+1)&&!(Sthis.$textLayer.MAX_LINE_LENGTH&&(k=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(k*this.characterWidth))},M.prototype.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},M.prototype.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},M.prototype.addGutterDecoration=function(k,S){this.$gutterLayer.addGutterDecoration(k,S)},M.prototype.removeGutterDecoration=function(k,S){this.$gutterLayer.removeGutterDecoration(k,S)},M.prototype.updateBreakpoints=function(k){this.$loop.schedule(this.CHANGE_GUTTER)},M.prototype.setAnnotations=function(k){this.$gutterLayer.setAnnotations(k),this.$loop.schedule(this.CHANGE_GUTTER)},M.prototype.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},M.prototype.hideCursor=function(){this.$cursorLayer.hideCursor()},M.prototype.showCursor=function(){this.$cursorLayer.showCursor()},M.prototype.scrollSelectionIntoView=function(k,S,E){this.scrollCursorIntoView(k,E),this.scrollCursorIntoView(S,E)},M.prototype.scrollCursorIntoView=function(k,S,E){if(this.$size.scrollerHeight!==0){var I=this.$cursorLayer.getPixelPosition(k),C=I.left,w=I.top,T=E&&E.top||0,O=E&&E.bottom||0;this.$scrollAnimation&&(this.$stopAnimation=!0);var N=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;N+T>w?(S&&N+T>w+this.lineHeight&&(w-=S*this.$size.scrollerHeight),w===0&&(w=-this.scrollMargin.top),this.session.setScrollTop(w)):N+this.$size.scrollerHeight-O=1-this.scrollMargin.top||S>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||k<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||k>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},M.prototype.pixelToScreenCoordinates=function(k,S){var E;if(this.$hasCssTransforms){E={top:0,left:0};var I=this.$fontMetrics.transformCoordinates([k,S]);k=I[1]-this.gutterWidth-this.margin.left,S=I[0]}else E=this.scroller.getBoundingClientRect();var C=k+this.scrollLeft-E.left-this.$padding,w=C/this.characterWidth,T=Math.floor((S+this.scrollTop-E.top)/this.lineHeight),O=this.$blockCursor?Math.floor(w):Math.round(w);return{row:T,column:O,side:w-O>0?1:-1,offsetX:C}},M.prototype.screenToTextCoordinates=function(k,S){var E;if(this.$hasCssTransforms){E={top:0,left:0};var I=this.$fontMetrics.transformCoordinates([k,S]);k=I[1]-this.gutterWidth-this.margin.left,S=I[0]}else E=this.scroller.getBoundingClientRect();var C=k+this.scrollLeft-E.left-this.$padding,w=C/this.characterWidth,T=this.$blockCursor?Math.floor(w):Math.round(w),O=Math.floor((S+this.scrollTop-E.top)/this.lineHeight);return this.session.screenToDocumentPosition(O,Math.max(T,0),C)},M.prototype.textToScreenCoordinates=function(k,S){var E=this.scroller.getBoundingClientRect(),I=this.session.documentToScreenPosition(k,S),C=this.$padding+(this.session.$bidiHandler.isBidiRow(I.row,k)?this.session.$bidiHandler.getPosLeft(I.column):Math.round(I.column*this.characterWidth)),w=I.row*this.lineHeight;return{pageX:E.left+C-this.scrollLeft,pageY:E.top+w-this.scrollTop}},M.prototype.visualizeFocus=function(){s.addCssClass(this.container,"ace_focus")},M.prototype.visualizeBlur=function(){s.removeCssClass(this.container,"ace_focus")},M.prototype.showComposition=function(k){this.$composition=k,k.cssText||(k.cssText=this.textarea.style.cssText),k.useTextareaForIME==null&&(k.useTextareaForIME=this.$useTextareaForIME),this.$useTextareaForIME?(s.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):k.markerId=this.session.addMarker(k.markerRange,"ace_composition_marker","text")},M.prototype.setCompositionText=function(k){var S=this.session.selection.cursor;this.addToken(k,"composition_placeholder",S.row,S.column),this.$moveTextAreaToCursor()},M.prototype.hideComposition=function(){if(this.$composition){this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),s.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText;var k=this.session.selection.cursor;this.removeExtraToken(k.row,k.column),this.$composition=null,this.$cursorLayer.element.style.display=""}},M.prototype.setGhostText=function(k,S){var E=this.session.selection.cursor,I=S||{row:E.row,column:E.column};this.removeGhostText();var C=k.split(` -`);this.addToken(C[0],"ghost_text",I.row,I.column),this.$ghostText={text:k,position:{row:I.row,column:I.column}},C.length>1&&(this.$ghostTextWidget={text:C.slice(1).join(` -`),row:I.row,column:I.column,className:"ace_ghost_text"},this.session.widgetManager.addLineWidget(this.$ghostTextWidget))},M.prototype.removeGhostText=function(){if(this.$ghostText){var k=this.$ghostText.position;this.removeExtraToken(k.row,k.column),this.$ghostTextWidget&&(this.session.widgetManager.removeLineWidget(this.$ghostTextWidget),this.$ghostTextWidget=null),this.$ghostText=null}},M.prototype.addToken=function(k,S,E,I){var C=this.session;C.bgTokenizer.lines[E]=null;var w={type:S,value:k},T=C.getTokens(E);if(I==null||!T.length)T.push(w);else for(var O=0,N=0;N1||Math.abs(k.$size.height-I)>1?k.$resizeTimer.delay():k.$resizeTimer.cancel()}),this.$resizeObserver.observe(this.container)}},M}();R.prototype.CHANGE_CURSOR=1,R.prototype.CHANGE_MARKER=2,R.prototype.CHANGE_GUTTER=4,R.prototype.CHANGE_SCROLL=8,R.prototype.CHANGE_LINES=16,R.prototype.CHANGE_TEXT=32,R.prototype.CHANGE_SIZE=64,R.prototype.CHANGE_MARKER_BACK=128,R.prototype.CHANGE_MARKER_FRONT=256,R.prototype.CHANGE_FULL=512,R.prototype.CHANGE_H_SCROLL=1024,R.prototype.$changes=0,R.prototype.$padding=null,R.prototype.$frozen=!1,R.prototype.STEPS=8,o.implement(R.prototype,x),l.defineOptions(R.prototype,"renderer",{useResizeObserver:{set:function(M){!M&&this.$resizeObserver?(this.$resizeObserver.disconnect(),this.$resizeTimer.cancel(),this.$resizeTimer=this.$resizeObserver=null):M&&!this.$resizeObserver&&this.$addResizeObserver()}},animatedScroll:{initialValue:!1},showInvisibles:{set:function(M){this.$textLayer.setShowInvisibles(M)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(M){typeof M=="number"&&(this.$printMarginColumn=M),this.$showPrintMargin=!!M,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(M){this.$gutter.style.display=M?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},useSvgGutterIcons:{set:function(M){this.$gutterLayer.$useSvgGutterIcons=M},initialValue:!1},showFoldedAnnotations:{set:function(M){this.$gutterLayer.$showFoldedAnnotations=M},initialValue:!1},fadeFoldWidgets:{set:function(M){s.setCssClass(this.$gutter,"ace_fade-fold-widgets",M)},initialValue:!1},showFoldWidgets:{set:function(M){this.$gutterLayer.setShowFoldWidgets(M),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(M){this.$textLayer.setDisplayIndentGuides(M)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightIndentGuides:{set:function(M){this.$textLayer.setHighlightIndentGuides(M)==!0?this.$textLayer.$highlightIndentGuide():this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells)},initialValue:!0},highlightGutterLine:{set:function(M){this.$gutterLayer.setHighlightGutterLine(M),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},hScrollBarAlwaysVisible:{set:function(M){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(M){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(M){typeof M=="number"&&(M=M+"px"),this.container.style.fontSize=M,this.updateFontSize()},initialValue:12},fontFamily:{set:function(M){this.container.style.fontFamily=M,this.updateFontSize()}},maxLines:{set:function(M){this.updateFull()}},minLines:{set:function(M){this.$minLines<562949953421311||(this.$minLines=0),this.updateFull()}},maxPixelHeight:{set:function(M){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(M){M=+M||0,this.$scrollPastEnd!=M&&(this.$scrollPastEnd=M,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(M){this.$gutterLayer.$fixedWidth=!!M,this.$loop.schedule(this.CHANGE_GUTTER)}},customScrollbar:{set:function(M){this.$updateCustomScrollbar(M)},initialValue:!1},theme:{set:function(M){this.setTheme(M)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0},hasCssTransforms:{},useTextareaForIME:{initialValue:!b.isMobile&&!b.isIE}}),r.VirtualRenderer=R}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(n,r,i){var o=n("../lib/oop"),s=n("../lib/net"),h=n("../lib/event_emitter").EventEmitter,l=n("../config");function u(d){var p="importScripts('"+s.qualifyURL(d)+"');";try{return new Blob([p],{type:"application/javascript"})}catch{var g=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,m=new g;return m.append(p),m.getBlob("application/javascript")}}function a(d){if(typeof Worker>"u")return{postMessage:function(){},terminate:function(){}};if(l.get("loadWorkerFromBlob")){var p=u(d),g=window.URL||window.webkitURL,m=g.createObjectURL(p);return new Worker(m)}return new Worker(d)}var c=function(d){d.postMessage||(d=this.$createWorkerFromOldConfig.apply(this,arguments)),this.$worker=d,this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){o.implement(this,h),this.$createWorkerFromOldConfig=function(d,p,g,m,v){if(n.nameToUrl&&!n.toUrl&&(n.toUrl=n.nameToUrl),l.get("packaged")||!n.toUrl)m=m||l.moduleUrl(p,"worker");else{var y=this.$normalizePath;m=m||y(n.toUrl("ace/worker/worker.js",null,"_"));var x={};d.forEach(function($){x[$]=y(n.toUrl($,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}return this.$worker=a(m),v&&this.send("importScripts",v),this.$worker.postMessage({init:!0,tlns:x,module:p,classname:g}),this.$worker},this.onMessage=function(d){var p=d.data;switch(p.type){case"event":this._signal(p.name,{data:p.data});break;case"call":var g=this.callbacks[p.id];g&&(g(p.data),delete this.callbacks[p.id]);break;case"error":this.reportError(p.data);break;case"log":window.console&&console.log&&console.log.apply(console,p.data);break}},this.reportError=function(d){window.console&&console.error&&console.error(d)},this.$normalizePath=function(d){return s.qualifyURL(d)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(d,p){this.$worker.postMessage({command:d,args:p})},this.call=function(d,p,g){if(g){var m=this.callbackId++;this.callbacks[m]=g,p.push(m)}this.send(d,p)},this.emit=function(d,p){try{p.data&&p.data.err&&(p.data.err={message:p.data.err.message,stack:p.data.err.stack,code:p.data.err.code}),this.$worker&&this.$worker.postMessage({event:d,data:{data:p.data}})}catch(g){console.error(g.stack)}},this.attachToDocument=function(d){this.$doc&&this.terminate(),this.$doc=d,this.call("setValue",[d.getValue()]),d.on("change",this.changeListener,!0)},this.changeListener=function(d){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),d.action=="insert"?this.deltaQueue.push(d.start,d.lines):this.deltaQueue.push(d.start,d.end)},this.$sendDeltaQueue=function(){var d=this.deltaQueue;d&&(this.deltaQueue=null,d.length>50&&d.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:d}))}}).call(c.prototype);var f=function(d,p,g){var m=null,v=!1,y=Object.create(h),x=[],$=new c({messageBuffer:x,terminate:function(){},postMessage:function(b){x.push(b),m&&(v?setTimeout(_):_())}});$.setEmitSync=function(b){v=b};var _=function(){var b=x.shift();b.command?m[b.command].apply(m,b.args):b.event&&y._signal(b.event,b.data)};return y.postMessage=function(b){$.onMessage({data:b})},y.callback=function(b,R){this.postMessage({type:"call",id:R,data:b})},y.emit=function(b,R){this.postMessage({type:"event",name:b,data:R})},l.loadModule(["worker",p],function(b){for(m=new b[g](y);x.length;)_()}),$};r.UIWorkerClient=f,r.WorkerClient=c,r.createWorker=a}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(n,r,i){var o=n("./range").Range,s=n("./lib/event_emitter").EventEmitter,h=n("./lib/oop"),l=function(){function u(a,c,f,d,p,g){var m=this;this.length=c,this.session=a,this.doc=a.getDocument(),this.mainClass=p,this.othersClass=g,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate,!0),this.$others=d,this.$onCursorChange=function(){setTimeout(function(){m.onCursorChange()})},this.$pos=f;var v=a.getUndoManager().$undoStack||a.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=v.length,this.setup(),a.selection.on("changeCursor",this.$onCursorChange)}return u.prototype.setup=function(){var a=this,c=this.doc,f=this.session;this.selectionBefore=f.selection.toJSON(),f.selection.inMultiSelectMode&&f.selection.toSingleRange(),this.pos=c.createAnchor(this.$pos.row,this.$pos.column);var d=this.pos;d.$insertRight=!0,d.detach(),d.markerId=f.addMarker(new o(d.row,d.column,d.row,d.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(p){var g=c.createAnchor(p.row,p.column);g.$insertRight=!0,g.detach(),a.others.push(g)}),f.setUndoSelect(!1)},u.prototype.showOtherMarkers=function(){if(!this.othersActive){var a=this.session,c=this;this.othersActive=!0,this.others.forEach(function(f){f.markerId=a.addMarker(new o(f.row,f.column,f.row,f.column+c.length),c.othersClass,null,!1)})}},u.prototype.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var a=0;a=this.pos.column&&c.start.column<=this.pos.column+this.length+1,p=c.start.column-this.pos.column;if(this.updateAnchors(a),d&&(this.length+=f),d&&!this.session.$fromUndo){if(a.action==="insert")for(var g=this.others.length-1;g>=0;g--){var m=this.others[g],v={row:m.row,column:m.column+p};this.doc.insertMergedLines(v,a.lines)}else if(a.action==="remove")for(var g=this.others.length-1;g>=0;g--){var m=this.others[g],v={row:m.row,column:m.column+p};this.doc.remove(new o(v.row,v.column,v.row,v.column-f))}}this.$updating=!1,this.updateMarkers()}},u.prototype.updateAnchors=function(a){this.pos.onChange(a);for(var c=this.others.length;c--;)this.others[c].onChange(a);this.updateMarkers()},u.prototype.updateMarkers=function(){if(!this.$updating){var a=this,c=this.session,f=function(p,g){c.removeMarker(p.markerId),p.markerId=c.addMarker(new o(p.row,p.column,p.row,p.column+a.length),g,null,!1)};f(this.pos,this.mainClass);for(var d=this.others.length;d--;)f(this.others[d],this.othersClass)}},u.prototype.onCursorChange=function(a){if(!(this.$updating||!this.session)){var c=this.session.selection.getCursor();c.row===this.pos.row&&c.column>=this.pos.column&&c.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",a)):(this.hideOtherMarkers(),this._emit("cursorLeave",a))}},u.prototype.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},u.prototype.cancel=function(){if(this.$undoStackDepth!==-1){for(var a=this.session.getUndoManager(),c=(a.$undoStack||a.$undostack).length-this.$undoStackDepth,f=0;f1?s.multiSelect.joinSelections():s.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"splitSelectionIntoLines",description:"Split into lines",exec:function(s){s.multiSelect.splitIntoLines()},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(s){s.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(s){s.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],r.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(s){s.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(s){return s&&s.inMultiSelectMode}}];var o=n("../keyboard/hash_handler").HashHandler;r.keyboardHandler=new o(r.multiSelectCommands)}),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],function(n,r,i){var o=n("./range_list").RangeList,s=n("./range").Range,h=n("./selection").Selection,l=n("./mouse/multi_select_handler").onMouseDown,u=n("./lib/event"),a=n("./lib/lang"),c=n("./commands/multi_select_commands");r.commands=c.defaultCommands.concat(c.multiSelectCommands);var f=n("./search").Search,d=new f;function p($,_,b){return d.$options.wrap=!0,d.$options.needle=_,d.$options.backwards=b==-1,d.find($)}var g=n("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(g.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function($,_){if($){if(!this.inMultiSelectMode&&this.rangeCount===0){var b=this.toOrientedRange();if(this.rangeList.add(b),this.rangeList.add($),this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),_||this.fromOrientedRange($);this.rangeList.removeAll(),this.rangeList.add(b),this.$onAddRange(b)}$.cursor||($.cursor=$.end);var R=this.rangeList.add($);return this.$onAddRange($),R.length&&this.$onRemoveRange(R),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),_||this.fromOrientedRange($)}},this.toSingleRange=function($){$=$||this.ranges[0];var _=this.rangeList.removeAll();_.length&&this.$onRemoveRange(_),$&&this.fromOrientedRange($)},this.substractPoint=function($){var _=this.rangeList.substractPoint($);if(_)return this.$onRemoveRange(_),_[0]},this.mergeOverlappingRanges=function(){var $=this.rangeList.merge();$.length&&this.$onRemoveRange($)},this.$onAddRange=function($){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift($),this._signal("addRange",{range:$})},this.$onRemoveRange=function($){if(this.rangeCount=this.rangeList.ranges.length,this.rangeCount==1&&this.inMultiSelectMode){var _=this.rangeList.ranges.pop();$.push(_),this.rangeCount=0}for(var b=$.length;b--;){var R=this.ranges.indexOf($[b]);this.ranges.splice(R,1)}this._signal("removeRange",{ranges:$}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),_=_||this.ranges[0],_&&!_.isEqual(this.getRange())&&this.fromOrientedRange(_)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new o,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){for(var $=this.ranges.length?this.ranges:[this.getRange()],_=[],b=0;b<$.length;b++){var R=$[b],M=R.start.row,k=R.end.row;if(M===k)_.push(R.clone());else{for(_.push(new s(M,R.start.column,M,this.session.getLine(M).length));++M1){var $=this.rangeList.ranges,_=$[$.length-1],b=s.fromPoints($[0].start,_.end);this.toSingleRange(),this.setSelectionRange(b,_.cursor==_.start)}else{var R=this.session.documentToScreenPosition(this.cursor),M=this.session.documentToScreenPosition(this.anchor),k=this.rectangularRangeBlock(R,M);k.forEach(this.addRange,this)}},this.rectangularRangeBlock=function($,_,b){var R=[],M=$.column<_.column;if(M)var k=$.column,S=_.column,E=$.offsetX,I=_.offsetX;else var k=_.column,S=$.column,E=_.offsetX,I=$.offsetX;var C=$.row<_.row;if(C)var w=$.row,T=_.row;else var w=_.row,T=$.row;k<0&&(k=0),w<0&&(w=0),w==T&&(b=!0);for(var O,N=w;N<=T;N++){var B=s.fromPoints(this.session.screenToDocumentPosition(N,k,E),this.session.screenToDocumentPosition(N,S,I));if(B.isEmpty()){if(O&&v(B.end,O))break;O=B.end}B.cursor=M?B.start:B.end,R.push(B)}if(C&&R.reverse(),!b){for(var H=R.length-1;R[H].isEmpty()&&H>0;)H--;if(H>0)for(var z=0;R[z].isEmpty();)z++;for(var F=H;F>=z;F--)R[F].isEmpty()&&R.splice(F,1)}return R}}.call(h.prototype);var m=n("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function($){$.cursor||($.cursor=$.end);var _=this.getSelectionStyle();return $.marker=this.session.addMarker($,"ace_selection",_),this.session.$selectionMarkers.push($),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,$},this.removeSelectionMarker=function($){if($.marker){this.session.removeMarker($.marker);var _=this.session.$selectionMarkers.indexOf($);_!=-1&&this.session.$selectionMarkers.splice(_,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function($){for(var _=this.session.$selectionMarkers,b=$.length;b--;){var R=$[b];if(R.marker){this.session.removeMarker(R.marker);var M=_.indexOf(R);M!=-1&&_.splice(M,1)}}this.session.selectionMarkerCount=_.length},this.$onAddRange=function($){this.addSelectionMarker($.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function($){this.removeSelectionMarkers($.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function($){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(c.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function($){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(c.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function($){var _=$.command,b=$.editor;if(b.multiSelect){if(_.multiSelectAction)_.multiSelectAction=="forEach"?R=b.forEachSelection(_,$.args):_.multiSelectAction=="forEachLine"?R=b.forEachSelection(_,$.args,!0):_.multiSelectAction=="single"?(b.exitMultiSelectMode(),R=_.exec(b,$.args||{})):R=_.multiSelectAction(b,$.args||{});else{var R=_.exec(b,$.args||{});b.multiSelect.addRange(b.multiSelect.toOrientedRange()),b.multiSelect.mergeOverlappingRanges()}return R}},this.forEachSelection=function($,_,b){if(!this.inVirtualSelectionMode){var R=b&&b.keepOrder,M=b==!0||b&&b.$byLines,k=this.session,S=this.selection,E=S.rangeList,I=(R?S:E).ranges,C;if(!I.length)return $.exec?$.exec(this,_||{}):$(this,_||{});var w=S._eventRegistry;S._eventRegistry={};var T=new h(k);this.inVirtualSelectionMode=!0;for(var O=I.length;O--;){if(M)for(;O>0&&I[O].start.row==I[O-1].end.row;)O--;T.fromOrientedRange(I[O]),T.index=O,this.selection=k.selection=T;var N=$.exec?$.exec(this,_||{}):$(this,_||{});!C&&N!==void 0&&(C=N),T.toOrientedRange(I[O])}T.detach(),this.selection=k.selection=S,this.inVirtualSelectionMode=!1,S._eventRegistry=w,S.mergeOverlappingRanges(),S.ranges[0]&&S.fromOrientedRange(S.ranges[0]);var B=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),B&&B.from==B.to&&this.renderer.animateScrolling(B.from),C}},this.exitMultiSelectMode=function(){!this.inMultiSelectMode||this.inVirtualSelectionMode||this.multiSelect.toSingleRange()},this.getSelectedText=function(){var $="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var _=this.multiSelect.rangeList.ranges,b=[],R=0;R<_.length;R++)b.push(this.session.getTextRange(_[R]));var M=this.session.getDocument().getNewLineCharacter();$=b.join(M),$.length==(b.length-1)*M.length&&($="")}else this.selection.isEmpty()||($=this.session.getTextRange(this.getSelectionRange()));return $},this.$checkMultiselectChange=function($,_){if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var b=this.multiSelect.ranges[0];if(this.multiSelect.isEmpty()&&_==this.multiSelect.anchor)return;var R=_==this.multiSelect.anchor?b.cursor==b.start?b.end:b.start:b.cursor;R.row!=_.row||this.session.$clipPositionToDocument(R.row,R.column).column!=_.column?this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange()):this.multiSelect.mergeOverlappingRanges()}},this.findAll=function($,_,b){if(_=_||{},_.needle=$||_.needle,_.needle==null){var R=this.selection.isEmpty()?this.selection.getWordRange():this.selection.getRange();_.needle=this.session.getTextRange(R)}this.$search.set(_);var M=this.$search.findAll(this.session);if(!M.length)return 0;var k=this.multiSelect;b||k.toSingleRange(M[0]);for(var S=M.length;S--;)k.addRange(M[S],!0);return R&&k.rangeList.rangeAtPoint(R.start)&&k.addRange(R,!0),M.length},this.selectMoreLines=function($,_){var b=this.selection.toOrientedRange(),R=b.cursor==b.end,M=this.session.documentToScreenPosition(b.cursor);this.selection.$desiredColumn&&(M.column=this.selection.$desiredColumn);var k=this.session.screenToDocumentPosition(M.row+$,M.column);if(b.isEmpty())var E=k;else var S=this.session.documentToScreenPosition(R?b.end:b.start),E=this.session.screenToDocumentPosition(S.row+$,S.column);if(R){var I=s.fromPoints(k,E);I.cursor=I.start}else{var I=s.fromPoints(E,k);I.cursor=I.end}if(I.desiredColumn=M.column,!this.selection.inMultiSelectMode)this.selection.addRange(b);else if(_)var C=b.cursor;this.selection.addRange(I),C&&this.selection.substractPoint(C)},this.transposeSelections=function($){for(var _=this.session,b=_.multiSelect,R=b.ranges,M=R.length;M--;){var k=R[M];if(k.isEmpty()){var S=_.getWordRange(k.start.row,k.start.column);k.start.row=S.start.row,k.start.column=S.start.column,k.end.row=S.end.row,k.end.column=S.end.column}}b.mergeOverlappingRanges();for(var E=[],M=R.length;M--;){var k=R[M];E.unshift(_.getTextRange(k))}$<0?E.unshift(E.pop()):E.push(E.shift());for(var M=R.length;M--;){var k=R[M],S=k.clone();_.replace(k,E[M]),k.start.row=S.start.row,k.start.column=S.start.column}b.fromOrientedRange(b.ranges[0])},this.selectMore=function($,_,b){var R=this.session,M=R.multiSelect,k=M.toOrientedRange();if(!(k.isEmpty()&&(k=R.getWordRange(k.start.row,k.start.column),k.cursor=$==-1?k.start:k.end,this.multiSelect.addRange(k),b))){var S=R.getTextRange(k),E=p(R,S,$);E&&(E.cursor=$==-1?E.start:E.end,this.session.unfold(E),this.multiSelect.addRange(E),this.renderer.scrollCursorIntoView(null,.5)),_&&this.multiSelect.substractPoint(k.cursor)}},this.alignCursors=function(){var $=this.session,_=$.multiSelect,b=_.ranges,R=-1,M=b.filter(function(H){if(H.cursor.row==R)return!0;R=H.cursor.row});if(!b.length||M.length==b.length-1){var k=this.selection.getRange(),S=k.start.row,E=k.end.row,I=S==E;if(I){var C=this.session.getLength(),w;do w=this.session.getLine(E);while(/[=:]/.test(w)&&++E0);S<0&&(S=0),E>=C&&(E=C-1)}var T=this.session.removeFullLines(S,E);T=this.$reAlignText(T,I),this.session.insert({row:S,column:0},T.join(` -`)+` -`),I||(k.start.column=0,k.end.column=T[T.length-1].length),this.selection.setRange(k)}else{M.forEach(function(H){_.substractPoint(H.cursor)});var O=0,N=1/0,B=b.map(function(H){var z=H.cursor,F=$.getLine(z.row),W=F.substr(z.column).search(/\S/g);return W==-1&&(W=0),z.column>O&&(O=z.column),WG?$.insert(F,a.stringRepeat(" ",W-G)):$.remove(new s(F.row,F.column,F.row,F.column-W+G)),H.start.column=H.end.column=O,H.start.row=H.end.row=F.row,H.cursor=H.end}),_.fromOrientedRange(b[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function($,_){var b=!0,R=!0,M,k,S;return $.map(function(T){var O=T.match(/(\s*)(.*?)(\s*)([=:].*)/);return O?M==null?(M=O[1].length,k=O[2].length,S=O[3].length,O):(M+k+S!=O[1].length+O[2].length+O[3].length&&(R=!1),M!=O[1].length&&(b=!1),M>O[1].length&&(M=O[1].length),kO[3].length&&(S=O[3].length),O):[T]}).map(_?I:b?R?C:I:w);function E(T){return a.stringRepeat(" ",T)}function I(T){return T[2]?E(M)+T[2]+E(k-T[2].length+S)+T[4].replace(/^([=:])\s+/,"$1 "):T[0]}function C(T){return T[2]?E(M+k-T[2].length)+T[2]+E(S)+T[4].replace(/^([=:])\s+/,"$1 "):T[0]}function w(T){return T[2]?E(M)+T[2]+E(S)+T[4].replace(/^([=:])\s+/,"$1 "):T[0]}}}).call(m.prototype);function v($,_){return $.row==_.row&&$.column==_.column}r.onSessionChange=function($){var _=$.session;_&&!_.multiSelect&&(_.$selectionMarkers=[],_.selection.$initRangeList(),_.multiSelect=_.selection),this.multiSelect=_&&_.multiSelect;var b=$.oldSession;b&&(b.multiSelect.off("addRange",this.$onAddRange),b.multiSelect.off("removeRange",this.$onRemoveRange),b.multiSelect.off("multiSelect",this.$onMultiSelect),b.multiSelect.off("singleSelect",this.$onSingleSelect),b.multiSelect.lead.off("change",this.$checkMultiselectChange),b.multiSelect.anchor.off("change",this.$checkMultiselectChange)),_&&(_.multiSelect.on("addRange",this.$onAddRange),_.multiSelect.on("removeRange",this.$onRemoveRange),_.multiSelect.on("multiSelect",this.$onMultiSelect),_.multiSelect.on("singleSelect",this.$onSingleSelect),_.multiSelect.lead.on("change",this.$checkMultiselectChange),_.multiSelect.anchor.on("change",this.$checkMultiselectChange)),_&&this.inMultiSelectMode!=_.selection.inMultiSelectMode&&(_.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())};function y($){$.$multiselectOnSessionChange||($.$onAddRange=$.$onAddRange.bind($),$.$onRemoveRange=$.$onRemoveRange.bind($),$.$onMultiSelect=$.$onMultiSelect.bind($),$.$onSingleSelect=$.$onSingleSelect.bind($),$.$multiselectOnSessionChange=r.onSessionChange.bind($),$.$checkMultiselectChange=$.$checkMultiselectChange.bind($),$.$multiselectOnSessionChange($),$.on("changeSession",$.$multiselectOnSessionChange),$.on("mousedown",l),$.commands.addCommands(c.defaultCommands),x($))}function x($){if(!$.textInput)return;var _=$.textInput.getElement(),b=!1;u.addListener(_,"keydown",function(M){var k=M.keyCode==18&&!(M.ctrlKey||M.shiftKey||M.metaKey);$.$blockSelectEnabled&&k?b||($.renderer.setMouseCursor("crosshair"),b=!0):b&&R()},$),u.addListener(_,"keyup",R,$),u.addListener(_,"blur",R,$);function R(M){b&&($.renderer.setMouseCursor(""),b=!1)}}r.MultiSelect=y,n("./config").defineOptions(m.prototype,"editor",{enableMultiselect:{set:function($){y(this),$?this.on("mousedown",l):this.off("mousedown",l)},value:!0},enableBlockSelect:{set:function($){this.$blockSelectEnabled=$},value:!0}})}),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(n,r,i){var o=n("../../range").Range,s=r.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(h,l,u){var a=h.getLine(u);return this.foldingStartMarker.test(a)?"start":l=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(a)?"end":""},this.getFoldWidgetRange=function(h,l,u){return null},this.indentationBlock=function(h,l,u){var a=/\S/,c=h.getLine(l),f=c.search(a);if(f!=-1){for(var d=u||c.length,p=h.getLength(),g=l,m=l;++lg){var x=h.getLine(m).length;return new o(g,d,m,x)}}},this.openingBracketBlock=function(h,l,u,a,c){var f={row:u,column:a+1},d=h.$findClosingBracket(l,f,c);if(d){var p=h.foldWidgets[d.row];return p==null&&(p=h.getFoldWidget(d.row)),p=="start"&&d.row>f.row&&(d.row--,d.column=h.getLine(d.row).length),o.fromPoints(f,d)}},this.closingBracketBlock=function(h,l,u,a,c){var f={row:u,column:a},d=h.$findOpeningBracket(l,f);if(d)return d.column++,f.column--,o.fromPoints(d,f)}}).call(s.prototype)}),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range","ace/config"],function(n,r,i){var o=n("../line_widgets").LineWidgets,s=n("../lib/dom"),h=n("../range").Range,l=n("../config").nls;function u(c,f,d){for(var p=0,g=c.length-1;p<=g;){var m=p+g>>1,v=d(f,c[m]);if(v>0)p=m+1;else if(v<0)g=m-1;else return m}return-(p+1)}function a(c,f,d){var p=c.getAnnotations().sort(h.comparePoints);if(p.length){var g=u(p,{row:f,column:-1},h.comparePoints);g<0&&(g=-g-1),g>=p.length?g=d>0?0:p.length-1:g===0&&d<0&&(g=p.length-1);var m=p[g];if(!(!m||!d)){if(m.row===f){do m=p[g+=d];while(m&&m.row===f);if(!m)return p.slice()}var v=[];f=m.row;do v[d<0?"unshift":"push"](m),m=p[g+=d];while(m&&m.row==f);return v.length&&v}}}r.showErrorMarker=function(c,f){var d=c.session;d.widgetManager||(d.widgetManager=new o(d),d.widgetManager.attach(c));var p=c.getCursorPosition(),g=p.row,m=d.widgetManager.getWidgetsAtRow(g).filter(function(k){return k.type=="errorMarker"})[0];m?m.destroy():g-=f;var v=a(d,g,f),y;if(v){var x=v[0];p.column=(x.pos&&typeof x.column!="number"?x.pos.sc:x.column)||0,p.row=x.row,y=c.renderer.$gutterLayer.$annotations[p.row]}else{if(m)return;y={text:[l("Looks good!")],className:"ace_ok"}}c.session.unfold(p.row),c.selection.moveToPosition(p);var $={row:p.row,fixedWidth:!0,coverGutter:!0,el:s.createElement("div"),type:"errorMarker"},_=$.el.appendChild(s.createElement("div")),b=$.el.appendChild(s.createElement("div"));b.className="error_widget_arrow "+y.className;var R=c.renderer.$cursorLayer.getPixelPosition(p).left;b.style.left=R+c.renderer.gutterWidth-5+"px",$.el.className="error_widget_wrapper",_.className="error_widget "+y.className,_.innerHTML=y.text.join("
"),_.appendChild(s.createElement("div"));var M=function(k,S,E){if(S===0&&(E==="esc"||E==="return"))return $.destroy(),{command:"null"}};$.destroy=function(){c.$mouseHandler.isMousePressed||(c.keyBinding.removeKeyboardHandler(M),d.widgetManager.removeLineWidget($),c.off("changeSelection",$.destroy),c.off("changeSession",$.destroy),c.off("mouseup",$.destroy),c.off("change",$.destroy))},c.keyBinding.addKeyboardHandler(M),c.on("changeSelection",$.destroy),c.on("changeSession",$.destroy),c.on("mouseup",$.destroy),c.on("change",$.destroy),c.session.widgetManager.addLineWidget($),$.el.onmousedown=c.focus.bind(c),c.renderer.scrollCursorIntoView(null,.5,{bottom:$.el.offsetHeight})},s.importCssString(` - .error_widget_wrapper { - background: inherit; - color: inherit; - border:none - } - .error_widget { - border-top: solid 2px; - border-bottom: solid 2px; - margin: 5px 0; - padding: 10px 40px; - white-space: pre-wrap; - } - .error_widget.ace_error, .error_widget_arrow.ace_error{ - border-color: #ff5a5a - } - .error_widget.ace_warning, .error_widget_arrow.ace_warning{ - border-color: #F1D817 - } - .error_widget.ace_info, .error_widget_arrow.ace_info{ - border-color: #5a5a5a - } - .error_widget.ace_ok, .error_widget_arrow.ace_ok{ - border-color: #5aaa5a - } - .error_widget_arrow { - position: absolute; - border: solid 5px; - border-top-color: transparent!important; - border-right-color: transparent!important; - border-left-color: transparent!important; - top: -5px; - } -`,"error_marker.css",!1)}),ace.define("ace/ace",["require","exports","module","ace/lib/dom","ace/range","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config","ace/loader_build"],function(n,r,i){n("./loader_build")(r);var o=n("./lib/dom"),s=n("./range").Range,h=n("./editor").Editor,l=n("./edit_session").EditSession,u=n("./undomanager").UndoManager,a=n("./virtual_renderer").VirtualRenderer;n("./worker/worker_client"),n("./keyboard/hash_handler"),n("./placeholder"),n("./multi_select"),n("./mode/folding/fold_mode"),n("./theme/textmate"),n("./ext/error_marker"),r.config=n("./config"),r.edit=function(c,f){if(typeof c=="string"){var d=c;if(c=document.getElementById(d),!c)throw new Error("ace.edit can't find div #"+d)}if(c&&c.env&&c.env.editor instanceof h)return c.env.editor;var p="";if(c&&/input|textarea/i.test(c.tagName)){var g=c;p=g.value,c=o.createElement("pre"),g.parentNode.replaceChild(c,g)}else c&&(p=c.textContent,c.innerHTML="");var m=r.createEditSession(p),v=new h(new a(c),m,f),y={document:m,editor:v,onResize:v.resize.bind(v,null)};return g&&(y.textarea=g),v.on("destroy",function(){y.editor.container.env=null}),v.container.env=v.env=y,v},r.createEditSession=function(c,f){var d=new l(c,f);return d.setUndoManager(new u),d},r.Range=s,r.Editor=h,r.EditSession=l,r.UndoManager=u,r.VirtualRenderer=a,r.version=r.config.version}),function(){ace.require(["ace/ace"],function(n){n&&(n.config.init(!0),n.define=ace.define),window.ace||(window.ace=n);for(var r in n)n.hasOwnProperty(r)&&(window.ace[r]=n[r]);window.ace.default=window.ace,e&&(e.exports=window.ace)})}()})(yb);var AH=yb.exports;const Vg=Li(AH);var PH={exports:{}};(function(e,t){ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(n,r,i){var o=n("../lib/oop"),s=n("./text_highlight_rules").TextHighlightRules,h=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"punctuation.operator",regex:/[,]/},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};o.inherits(h,s),r.JsonHighlightRules=h}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(n,r,i){var o=n("../range").Range,s=function(){};(function(){this.checkOutdent=function(h,l){return/^\s+$/.test(h)?/^\s*\}/.test(l):!1},this.autoOutdent=function(h,l){var u=h.getLine(l),a=u.match(/^(\s*\})/);if(!a)return 0;var c=a[1].length,f=h.findMatchingBracket({row:l,column:c});if(!f||f.row==l)return 0;var d=this.$getIndent(h.getLine(f.row));h.replace(new o(l,0,l,c-1),d)},this.$getIndent=function(h){return h.match(/^\s*/)[0]}}).call(s.prototype),r.MatchingBraceOutdent=s}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(n,r,i){var o=n("../../lib/oop"),s=n("../../range").Range,h=n("./fold_mode").FoldMode,l=r.FoldMode=function(u){u&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+u.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+u.end)))};o.inherits(l,h),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(u,a,c){var f=u.getLine(c);if(this.singleLineBlockCommentRe.test(f)&&!this.startRegionRe.test(f)&&!this.tripleStarBlockCommentRe.test(f))return"";var d=this._getFoldWidgetBase(u,a,c);return!d&&this.startRegionRe.test(f)?"start":d},this.getFoldWidgetRange=function(u,a,c,f){var d=u.getLine(c);if(this.startRegionRe.test(d))return this.getCommentRegionBlock(u,d,c);var m=d.match(this.foldingStartMarker);if(m){var p=m.index;if(m[1])return this.openingBracketBlock(u,m[1],c,p);var g=u.getCommentFoldRange(c,p+m[0].length,1);return g&&!g.isMultiLine()&&(f?g=this.getSectionRange(u,c):a!="all"&&(g=null)),g}if(a!=="markbegin"){var m=d.match(this.foldingStopMarker);if(m){var p=m.index+m[0].length;return m[1]?this.closingBracketBlock(u,m[1],c,p):u.getCommentFoldRange(c,p,-1)}}},this.getSectionRange=function(u,a){var c=u.getLine(a),f=c.search(/\S/),d=a,p=c.length;a=a+1;for(var g=a,m=u.getLength();++av)break;var y=this.getFoldWidgetRange(u,"all",a);if(y){if(y.start.row<=d)break;if(y.isMultiLine())a=y.end.row;else if(f==v)break}g=a}}return new s(d,p,g,u.getLine(g).length)},this.getCommentRegionBlock=function(u,a,c){for(var f=a.search(/\s*$/),d=u.getLength(),p=c,g=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,m=1;++cp)return new s(p,f,y,a.length)}}.call(l.prototype)}),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle","ace/worker/worker_client"],function(n,r,i){var o=n("../lib/oop"),s=n("./text").Mode,h=n("./json_highlight_rules").JsonHighlightRules,l=n("./matching_brace_outdent").MatchingBraceOutdent,u=n("./folding/cstyle").FoldMode,a=n("../worker/worker_client").WorkerClient,c=function(){this.HighlightRules=h,this.$outdent=new l,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new u};o.inherits(c,s),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(f,d,p){var g=this.$getIndent(d);if(f=="start"){var m=d.match(/^.*[\{\(\[]\s*$/);m&&(g+=p)}return g},this.checkOutdent=function(f,d,p){return this.$outdent.checkOutdent(d,p)},this.autoOutdent=function(f,d,p){this.$outdent.autoOutdent(d,p)},this.createWorker=function(f){var d=new a(["ace"],"ace/mode/json_worker","JsonWorker");return d.attachToDocument(f.getDocument()),d.on("annotate",function(p){f.setAnnotations(p.data)}),d.on("terminate",function(){f.clearAnnotations()}),d},this.$id="ace/mode/json"}.call(c.prototype),r.Mode=c}),function(){ace.require(["ace/mode/json"],function(n){e&&(e.exports=n)})}()})(PH);var NH={exports:{}};(function(e,t){ace.define("ace/mode/sql_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(n,r,i){var o=n("../lib/oop"),s=n("./text_highlight_rules").TextHighlightRules,h=function(){var l="select|insert|update|delete|from|where|and|or|group|by|order|limit|offset|having|as|case|when|then|else|end|type|left|right|join|on|outer|desc|asc|union|create|table|primary|key|if|foreign|not|references|default|null|inner|cross|natural|database|drop|grant|distinct",u="true|false",a="avg|count|first|last|max|min|sum|ucase|lcase|mid|len|round|rank|now|format|coalesce|ifnull|isnull|nvl",c="int|numeric|decimal|date|varchar|char|bigint|float|double|bit|binary|text|set|timestamp|money|real|number|integer",f=this.createKeywordMapper({"support.function":a,keyword:l,"constant.language":u,"storage.type":c},"identifier",!0);this.$rules={start:[{token:"comment",regex:"--.*$"},{token:"comment",start:"/\\*",end:"\\*/"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"},{token:"string",regex:"`.*?`"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:f,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\/|\\/\\/|%|<@>|@>|<@|&|\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"paren.lparen",regex:"[\\(]"},{token:"paren.rparen",regex:"[\\)]"},{token:"text",regex:"\\s+"}]},this.normalizeRules()};o.inherits(h,s),r.SqlHighlightRules=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(n,r,i){var o=n("../../lib/oop"),s=n("../../range").Range,h=n("./fold_mode").FoldMode,l=r.FoldMode=function(u){u&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+u.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+u.end)))};o.inherits(l,h),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(u,a,c){var f=u.getLine(c);if(this.singleLineBlockCommentRe.test(f)&&!this.startRegionRe.test(f)&&!this.tripleStarBlockCommentRe.test(f))return"";var d=this._getFoldWidgetBase(u,a,c);return!d&&this.startRegionRe.test(f)?"start":d},this.getFoldWidgetRange=function(u,a,c,f){var d=u.getLine(c);if(this.startRegionRe.test(d))return this.getCommentRegionBlock(u,d,c);var m=d.match(this.foldingStartMarker);if(m){var p=m.index;if(m[1])return this.openingBracketBlock(u,m[1],c,p);var g=u.getCommentFoldRange(c,p+m[0].length,1);return g&&!g.isMultiLine()&&(f?g=this.getSectionRange(u,c):a!="all"&&(g=null)),g}if(a!=="markbegin"){var m=d.match(this.foldingStopMarker);if(m){var p=m.index+m[0].length;return m[1]?this.closingBracketBlock(u,m[1],c,p):u.getCommentFoldRange(c,p,-1)}}},this.getSectionRange=function(u,a){var c=u.getLine(a),f=c.search(/\S/),d=a,p=c.length;a=a+1;for(var g=a,m=u.getLength();++av)break;var y=this.getFoldWidgetRange(u,"all",a);if(y){if(y.start.row<=d)break;if(y.isMultiLine())a=y.end.row;else if(f==v)break}g=a}}return new s(d,p,g,u.getLine(g).length)},this.getCommentRegionBlock=function(u,a,c){for(var f=a.search(/\s*$/),d=u.getLength(),p=c,g=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,m=1;++cp)return new s(p,f,y,a.length)}}.call(l.prototype)}),ace.define("ace/mode/folding/sql",["require","exports","module","ace/lib/oop","ace/mode/folding/cstyle"],function(n,r,i){var o=n("../../lib/oop"),s=n("./cstyle").FoldMode,h=r.FoldMode=function(){};o.inherits(h,s),function(){}.call(h.prototype)}),ace.define("ace/mode/sql",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/sql_highlight_rules","ace/mode/folding/sql"],function(n,r,i){var o=n("../lib/oop"),s=n("./text").Mode,h=n("./sql_highlight_rules").SqlHighlightRules,l=n("./folding/sql").FoldMode,u=function(){this.HighlightRules=h,this.foldingRules=new l,this.$behaviour=this.$defaultBehaviour};o.inherits(u,s),function(){this.lineCommentStart="--",this.blockComment={start:"/*",end:"*/"},this.$id="ace/mode/sql",this.snippetFileId="ace/snippets/sql"}.call(u.prototype),r.Mode=u}),function(){ace.require(["ace/mode/sql"],function(n){e&&(e.exports=n)})}()})(NH);var BH={exports:{}};(function(e,t){ace.define("ace/ext/modelist",["require","exports","module"],function(n,r,i){var o=[];function s(m){for(var v=a.text,y=m.split(/[\/\\]/).pop(),x=0;x - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -.ace-dracula .ace_gutter { - background: #282a36; - color: rgb(144,145,148) -} - -.ace-dracula .ace_print-margin { - width: 1px; - background: #44475a -} - -.ace-dracula { - background-color: #282a36; - color: #f8f8f2 -} - -.ace-dracula .ace_cursor { - color: #f8f8f0 -} - -.ace-dracula .ace_marker-layer .ace_selection { - background: #44475a -} - -.ace-dracula.ace_multiselect .ace_selection.ace_start { - box-shadow: 0 0 3px 0px #282a36; - border-radius: 2px -} - -.ace-dracula .ace_marker-layer .ace_step { - background: rgb(198, 219, 174) -} - -.ace-dracula .ace_marker-layer .ace_bracket { - margin: -1px 0 0 -1px; - border: 1px solid #a29709 -} - -.ace-dracula .ace_marker-layer .ace_active-line { - background: #44475a -} - -.ace-dracula .ace_gutter-active-line { - background-color: #44475a -} - -.ace-dracula .ace_marker-layer .ace_selected-word { - box-shadow: 0px 0px 0px 1px #a29709; - border-radius: 3px; -} - -.ace-dracula .ace_fold { - background-color: #50fa7b; - border-color: #f8f8f2 -} - -.ace-dracula .ace_keyword { - color: #ff79c6 -} - -.ace-dracula .ace_constant.ace_language { - color: #bd93f9 -} - -.ace-dracula .ace_constant.ace_numeric { - color: #bd93f9 -} - -.ace-dracula .ace_constant.ace_character { - color: #bd93f9 -} - -.ace-dracula .ace_constant.ace_character.ace_escape { - color: #ff79c6 -} - -.ace-dracula .ace_constant.ace_other { - color: #bd93f9 -} - -.ace-dracula .ace_support.ace_function { - color: #8be9fd -} - -.ace-dracula .ace_support.ace_constant { - color: #6be5fd -} - -.ace-dracula .ace_support.ace_class { - font-style: italic; - color: #66d9ef -} - -.ace-dracula .ace_support.ace_type { - font-style: italic; - color: #66d9ef -} - -.ace-dracula .ace_storage { - color: #ff79c6 -} - -.ace-dracula .ace_storage.ace_type { - font-style: italic; - color: #8be9fd -} - -.ace-dracula .ace_invalid { - color: #F8F8F0; - background-color: #ff79c6 -} - -.ace-dracula .ace_invalid.ace_deprecated { - color: #F8F8F0; - background-color: #bd93f9 -} - -.ace-dracula .ace_string { - color: #f1fa8c -} - -.ace-dracula .ace_comment { - color: #6272a4 -} - -.ace-dracula .ace_variable { - color: #50fa7b -} - -.ace-dracula .ace_variable.ace_parameter { - font-style: italic; - color: #ffb86c -} - -.ace-dracula .ace_entity.ace_other.ace_attribute-name { - color: #50fa7b -} - -.ace-dracula .ace_entity.ace_name.ace_function { - color: #50fa7b -} - -.ace-dracula .ace_entity.ace_name.ace_tag { - color: #ff79c6 -} -.ace-dracula .ace_invisible { - color: #626680; -} - -.ace-dracula .ace_indent-guide { - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHB3d/8PAAOIAdULw8qMAAAAAElFTkSuQmCC) right repeat-y -} - -.ace-dracula .ace_indent-guide-active { - background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACAQMAAACjTyRkAAAABlBMVEUAAADCwsK76u2xAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjYGBoAAAAhACBGFbxzQAAAABJRU5ErkJggg==") right repeat-y; -} -`}),ace.define("ace/theme/dracula",["require","exports","module","ace/theme/dracula.css","ace/lib/dom"],function(n,r,i){r.isDark=!0,r.cssClass="ace-dracula",r.cssText=n("./dracula.css"),r.$selectionColorConflict=!0;var o=n("../lib/dom");o.importCssString(r.cssText,r.cssClass,!1)}),function(){ace.require(["ace/theme/dracula"],function(n){e&&(e.exports=n)})}()})(FH);const GH={name:"CodeEditor",props:{componentID:Number,storeObject:Object,codeProp:Object,languageProp:String,hideActions:Boolean},components:{ContextMenu:Wr,ActionButtons:vb},setup(e){const{store:t,getProperty:n,setProperty:r}=e.storeObject,i=we(()=>n("currentNode")),o=we(()=>n("currentTask")),s=`nodes__${i.value}__components__${e.componentID}`,h=`${s}__component`,l=we(()=>{const y=`${h}__code`;return e.codeProp?JSON.stringify(e.codeProp,null," "):n(y)}),u=we(()=>e.languageProp?e.languageProp:n(`${h}__language`));let a,c;Ht(()=>{const x=Vg.require("ace/ext/modelist").getModeForPath(u.value);c=Vg.edit(`editor__${e.componentID}`,{mode:x.mode,theme:"ace/theme/dracula",fontSize:18,tabSize:2,showGutter:!0,showPrintMargin:!1,wrap:!0}),c.getSession().setValue(l.value),c.on("change",()=>{a&&clearTimeout(a),a=setTimeout(()=>{const $=c.getValue();e.codeProp?$&&typeof $=="string"&&$!==l.value&&Object.entries(JSON.parse($)).forEach(([_,b])=>{r({path:_,value:b})}):$!==l.value&&r({path:`${h}__code`,value:$})},100)})}),St(l,()=>{const{row:y,column:x}=c.selection.getCursor();c.getSession().setValue(l.value),c.clearSelection(),c.gotoLine(y+1,x)});const f=(y,x)=>{const $=b=>Object.entries(b).reduce((R,[M,k])=>(R[M]=n(k),R),{});return{type:o.value,task:o.value,instruction:y,code:l.value,parameters:$(x)}},p={execute:(y,x)=>{const $=f(y,x);return t.dispatch("fetchTaskData",{payload:$,endpoint:`${o.value}/${y}`})}},g={showSolution:()=>{const y=n(`${s}__dependencies__CodeEditor__validCode`),x=n(y)||"";r({path:`${h}__code`,value:x})},copyToClipboard:()=>{}},m=zr(n(`nodes__${i.value}__components__${e.componentID}__methods`),g),v=we(()=>n(`${s}__actions`));return{code:l,selectedMethods:m,actionTypes:p,actions:v}}};const HH={class:"editor_wrapper"},WH=["id"];function zH(e,t,n,r,i,o){const s=pt("ActionButtons"),h=pt("ContextMenu");return ue(),Rt(h,{componentId:n.componentID,methods:r.selectedMethods,storeObject:n.storeObject},{default:cn(()=>[_e("div",HH,[n.hideActions?Mn("",!0):(ue(),Rt(s,{key:0,actions:r.actions,actionTypes:r.actionTypes},null,8,["actions","actionTypes"])),_e("div",{id:`editor__${n.componentID}`,class:"codeEditor"},null,8,WH)])]),_:1},8,["componentId","methods","storeObject"])}const jH=Ke(GH,[["render",zH],["__scopeId","data-v-fe3885f0"]]),UH={name:"Output",props:{componentID:Number,storeObject:Object},setup(e){const{getProperty:t,setProperty:n}=e.storeObject,i=`nodes__${we(()=>t("currentNode")).value}__components__${e.componentID}`,o=`${i}__component`,s=we(()=>t(`${i}__dependencies`)),h=we(()=>{let c=t(s.value.Output.serverOutput);return(!c||Array.isArray(c)&&!c.length)&&(c=""),c}),l=we(()=>typeof h.value=="string"?"text":"table"),u=we(()=>t(s.value.Output.validOutput)),a=we(()=>t(`${o}__header`));return St(u,c=>{n({path:`${i}__isValid`,value:c})}),{serverOutput:h,header:a,outputType:l}}};const KH=e=>($i("data-v-9d2209d2"),e=e(),xi(),e),VH={class:"output__component"},XH={key:0,class:"output__wrapper"},YH={key:0,class:"output text"},QH={class:"text"},qH={key:1,class:"output"},JH=KH(()=>_e("th",null,"Index",-1));function ZH(e,t,n,r,i,o){return ue(),ve("div",VH,[_e("h2",null,rt(r.header),1),r.serverOutput?(ue(),ve("div",XH,[r.outputType==="text"?(ue(),ve("div",YH,[_e("p",QH,rt(r.serverOutput),1)])):Mn("",!0),r.outputType==="table"?(ue(),ve("table",qH,[_e("tr",null,[JH,(ue(!0),ve(je,null,ut(Object.keys(r.serverOutput[0]),s=>(ue(),ve("th",{key:s},rt(s),1))),128))]),(ue(!0),ve(je,null,ut(r.serverOutput,(s,h)=>(ue(),ve("tr",{key:h},[_e("td",null,rt(h),1),(ue(!0),ve(je,null,ut(Object.values(s),(l,u)=>(ue(),ve("td",{key:u},rt(l),1))),128))]))),128))])):Mn("",!0)])):Mn("",!0)])}const eW=Ke(UH,[["render",ZH],["__scopeId","data-v-9d2209d2"]]),tW={name:"Dropdown",props:{componentID:Number,storeObject:Object},setup(e){const{getProperty:t,setProperty:n}=e.storeObject,i=`nodes__${we(()=>t("currentNode")).value}__components__${e.componentID}`,o=`${i}__component`,s=we(()=>t(`${i}__dependencies`)),h=we(()=>{const f=t(s.value.Dropdown.options);return f||[]}),l=we(()=>t(`${o}__selected`)),u=we(()=>t(`${o}__header`)),a=we(()=>t(`${o}__label`));function c(f){n({path:`${i}__component__selected`,value:f.target.value})}return St(l,f=>{f!=null?n({path:`${i}__isValid`,value:!0}):n({path:`${i}__isValid`,value:!1})}),{options:h,onChange:c,header:u,label:a}}};const nW={class:"dropdown"},rW={action:"#"};function iW(e,t,n,r,i,o){return ue(),ve("div",nW,[_e("h2",null,rt(r.header),1),_e("form",rW,[Tr(_e("select",{id:"db",name:"Datenbanken",onChange:t[0]||(t[0]=s=>r.onChange(s)),class:"form-control","onUpdate:modelValue":t[1]||(t[1]=s=>e.selected=s)},[(ue(!0),ve(je,null,ut(r.options,(s,h)=>(ue(),ve("option",{key:h},rt(s),1))),128))],544),[[J1,e.selected]])])])}const oW=Ke(tW,[["render",iW],["__scopeId","data-v-37bcc897"]]);function sW(e,t){let n=0;if(t===void 0)for(let r of e)r!=null&&(r=+r)>=r&&++n;else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(i=+i)>=i&&++n}return n}function wb(e,t){let n,r;if(t===void 0)for(const i of e)i!=null&&(n===void 0?i>=i&&(n=r=i):(n>i&&(n=i),r=o&&(n=r=o):(n>o&&(n=o),r0){for(s=t[--n];n>0&&(r=s,i=t[--n],s=r+i,o=i-(s-r),!o););n>0&&(o<0&&t[n-1]<0||o>0&&t[n-1]>0)&&(i=o*2,r=s+i,i==r-s&&(s=r))}return s}}const aW=Math.sqrt(50),lW=Math.sqrt(10),cW=Math.sqrt(2);function xl(e,t,n){const r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),o=r/Math.pow(10,i),s=o>=aW?10:o>=lW?5:o>=cW?2:1;let h,l,u;return i<0?(u=Math.pow(10,-i)/s,h=Math.round(e*u),l=Math.round(t*u),h/ut&&--l,u=-u):(u=Math.pow(10,i)*s,h=Math.round(e/u),l=Math.round(t/u),h*ut&&--l),l0))return[];if(e===t)return[e];const r=t=i))return[];const h=o-i+1,l=new Array(h);if(r)if(s<0)for(let u=0;u0?(e=Math.floor(e/i)*i,t=Math.ceil(t/i)*i):i<0&&(e=Math.ceil(e*i)/i,t=Math.floor(t*i)/i),r=i}}function fW(e){return Math.max(1,Math.ceil(Math.log(sW(e))/Math.LN2)+1)}var dW=Array.prototype,pW=dW.slice;function gW(e,t){return e-t}function mW(e){for(var t=0,n=e.length,r=e[n-1][1]*e[0][0]-e[n-1][0]*e[0][1];++t()=>e;function vW(e,t){for(var n=-1,r=t.length,i;++nr!=d>r&&n<(f-u)*(r-a)/(d-a)+u&&(i=-i)}return i}function wW(e,t,n){var r;return bW(e,t,n)&&_W(e[r=+(e[0]===t[0])],n[r],t[r])}function bW(e,t,n){return(t[0]-e[0])*(n[1]-e[1])===(n[0]-e[0])*(t[1]-e[1])}function _W(e,t,n){return e<=t&&t<=n||n<=t&&t<=e}function EW(){}var or=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function $W(){var e=1,t=1,n=fW,r=l;function i(u){var a=n(u);if(Array.isArray(a))a=a.slice().sort(gW);else{const c=wb(u,xW);for(a=bb(...hW(c[0],c[1],a),a);a[a.length-1]>=c[1];)a.pop();for(;a[1]o(u,c))}function o(u,a){const c=a==null?NaN:+a;if(isNaN(c))throw new Error(`invalid value: ${a}`);var f=[],d=[];return s(u,c,function(p){r(p,u,c),mW(p)>0?f.push([p]):d.push(p)}),d.forEach(function(p){for(var g=0,m=f.length,v;g=a,or[y<<2].forEach($);++p0&&d0&&p=0&&c>=0))throw new Error("invalid size");return e=a,t=c,i},i.thresholds=function(u){return arguments.length?(n=typeof u=="function"?u:Array.isArray(u)?Xg(pW.call(u)):Xg(u),i):n},i.smooth=function(u){return arguments.length?(r=u?l:EW,i):r===l},i}function xW(e){return isFinite(e)?e:NaN}function ei(e,t){return e==null?!1:+e>=t}function tu(e){return e==null||isNaN(e=+e)?-1/0:e}function Yg(e,t,n,r){const i=r-t,o=n-t,s=isFinite(i)||isFinite(o)?i/o:Math.sign(i)/Math.sign(o);return isNaN(s)?e:e+s-.5}var SW=Math.PI,CW=SW*2,LW=Math.abs,jf=Math.sqrt;function kn(){}function Cl(e,t){e&&qg.hasOwnProperty(e.type)&&qg[e.type](e,t)}var Qg={Feature:function(e,t){Cl(e.geometry,t)},FeatureCollection:function(e,t){for(var n=e.features,r=-1,i=n.length;++re;var nu=new po,bh=new po,_b,Eb,_h,Eh,Or={point:kn,lineStart:kn,lineEnd:kn,polygonStart:function(){Or.lineStart=TW,Or.lineEnd=kW},polygonEnd:function(){Or.lineStart=Or.lineEnd=Or.point=kn,nu.add(LW(bh)),bh=new po},result:function(){var e=nu/2;return nu=new po,e}};function TW(){Or.point=OW}function OW(e,t){Or.point=$b,_b=_h=e,Eb=Eh=t}function $b(e,t){bh.add(Eh*e-_h*t),_h=e,Eh=t}function kW(){$b(_b,Eb)}const Zg=Or;var go=1/0,Ll=go,Gs=-go,Ml=Gs,RW={point:DW,lineStart:kn,lineEnd:kn,polygonStart:kn,polygonEnd:kn,result:function(){var e=[[go,Ll],[Gs,Ml]];return Gs=Ml=-(Ll=go=1/0),e}};function DW(e,t){eGs&&(Gs=e),tMl&&(Ml=t)}const em=RW;var $h=0,xh=0,ss=0,Tl=0,Ol=0,zi=0,Sh=0,Ch=0,as=0,xb,Sb,zn,jn,Tn={point:_i,lineStart:tm,lineEnd:nm,polygonStart:function(){Tn.lineStart=PW,Tn.lineEnd=NW},polygonEnd:function(){Tn.point=_i,Tn.lineStart=tm,Tn.lineEnd=nm},result:function(){var e=as?[Sh/as,Ch/as]:zi?[Tl/zi,Ol/zi]:ss?[$h/ss,xh/ss]:[NaN,NaN];return $h=xh=ss=Tl=Ol=zi=Sh=Ch=as=0,e}};function _i(e,t){$h+=e,xh+=t,++ss}function tm(){Tn.point=IW}function IW(e,t){Tn.point=AW,_i(zn=e,jn=t)}function AW(e,t){var n=e-zn,r=t-jn,i=jf(n*n+r*r);Tl+=i*(zn+e)/2,Ol+=i*(jn+t)/2,zi+=i,_i(zn=e,jn=t)}function nm(){Tn.point=_i}function PW(){Tn.point=BW}function NW(){Cb(xb,Sb)}function BW(e,t){Tn.point=Cb,_i(xb=zn=e,Sb=jn=t)}function Cb(e,t){var n=e-zn,r=t-jn,i=jf(n*n+r*r);Tl+=i*(zn+e)/2,Ol+=i*(jn+t)/2,zi+=i,i=jn*e-zn*t,Sh+=i*(zn+e),Ch+=i*(jn+t),as+=i*3,_i(zn=e,jn=t)}const rm=Tn;function Lb(e){this._context=e}Lb.prototype={_radius:4.5,pointRadius:function(e){return this._radius=e,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){this._line===0&&this._context.closePath(),this._point=NaN},point:function(e,t){switch(this._point){case 0:{this._context.moveTo(e,t),this._point=1;break}case 1:{this._context.lineTo(e,t);break}default:{this._context.moveTo(e+this._radius,t),this._context.arc(e,t,this._radius,0,CW);break}}},result:kn};var Lh=new po,ru,Mb,Tb,ls,cs,kl={point:kn,lineStart:function(){kl.point=FW},lineEnd:function(){ru&&Ob(Mb,Tb),kl.point=kn},polygonStart:function(){ru=!0},polygonEnd:function(){ru=null},result:function(){var e=+Lh;return Lh=new po,e}};function FW(e,t){kl.point=Ob,Mb=ls=e,Tb=cs=t}function Ob(e,t){ls-=e,cs-=t,Lh.add(jf(ls*ls+cs*cs)),ls=e,cs=t}const im=kl;let om,Rl,sm,am;class lm{constructor(t){this._append=t==null?kb:GW(t),this._radius=4.5,this._=""}pointRadius(t){return this._radius=+t,this}polygonStart(){this._line=0}polygonEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){this._line===0&&(this._+="Z"),this._point=NaN}point(t,n){switch(this._point){case 0:{this._append`M${t},${n}`,this._point=1;break}case 1:{this._append`L${t},${n}`;break}default:{if(this._append`M${t},${n}`,this._radius!==sm||this._append!==Rl){const r=this._radius,i=this._;this._="",this._append`m0,${r}a${r},${r} 0 1,1 0,${-2*r}a${r},${r} 0 1,1 0,${2*r}z`,sm=r,Rl=this._append,am=this._,this._=i}this._+=am;break}}}result(){const t=this._;return this._="",t.length?t:null}}function kb(e){let t=1;this._+=e[0];for(const n=e.length;t=0))throw new RangeError(`invalid digits: ${e}`);if(t>15)return kb;if(t!==om){const n=10**t;om=t,Rl=function(i){let o=1;this._+=i[0];for(const s=i.length;o=0))throw new RangeError(`invalid digits: ${h}`);n=l}return t===null&&(o=new lm(n)),s},s.projection(e).digits(n).context(t)}function WW(e,t){switch(arguments.length){case 0:break;case 1:{typeof e=="function"?this.interpolator(e):this.range(e);break}default:{this.domain(e),typeof t=="function"?this.interpolator(t):this.range(t);break}}return this}function Rb(e){return e}function zW(e,t,n,r){var i=uW(e,t,n),o;switch(r=El(r??",f"),r.type){case"s":{var s=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(o=cG(i,s))&&(r.precision=o),ib(r,s)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(o=uG(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=o-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(o=lG(i))&&(r.precision=o-(r.type==="%")*2);break}}return on(r)}function jW(e){var t=e.domain;return e.ticks=function(n){var r=t();return bb(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var i=t();return zW(i[0],i[i.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),i=0,o=r.length-1,s=r[i],h=r[o],l,u,a=10;for(h0;){if(u=Sl(s,h,n),u===l)return r[i]=s,r[o]=h,t(r);if(u>0)s=Math.floor(s/u)*u,h=Math.ceil(h/u)*u;else if(u<0)s=Math.ceil(s*u)/u,h=Math.floor(h*u)/u;else break;l=u}return e},e}function UW(){var e=0,t=1,n,r,i,o,s=Rb,h=!1,l;function u(c){return c==null||isNaN(c=+c)?l:s(i===0?.5:(c=(o(c)-n)*i,h?Math.max(0,Math.min(1,c)):c))}u.domain=function(c){return arguments.length?([e,t]=c,n=o(e=+e),r=o(t=+t),i=n===r?0:1/(r-n),u):[e,t]},u.clamp=function(c){return arguments.length?(h=!!c,u):h},u.interpolator=function(c){return arguments.length?(s=c,u):s};function a(c){return function(f){var d,p;return arguments.length?([d,p]=f,s=c(d,p),u):[s(0),s(1)]}}return u.range=a(Js),u.rangeRound=a(T2),u.unknown=function(c){return arguments.length?(l=c,u):l},function(c){return o=c,n=c(e),r=c(t),i=n===r?0:1/(r-n),u}}function KW(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function Db(){var e=jW(UW()(Rb));return e.copy=function(){return KW(e,Db())},WW.apply(e,arguments)}var Mh=.7,cm=1/Mh;function VW(e){if(e instanceof Pr)return new Pr(e.h,e.s,e.v,e.opacity);e instanceof ho||(e=ho(e));var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),o=Math.max(t,n,r),s=o-i,h=NaN,l=s/o,u=o;return s&&(t===o?h=(n-r)/s+(nt("currentNode")),i=t(`nodes__${r.value}__components__${e.componentID}__dependencies`),o=we(()=>t(i.ContourPlot.grid));let s={};const h=()=>{const{grid:a,thresholds:c}=i.ContourPlot,f=t(a),d=t(c);return!f||!d?{values:[],rows:1,columns:1,thresholds:[]}:{values:f.reduce((p,g)=>[...p,...g],[]),rows:f.length,columns:f[0].length,thresholds:d}},l=()=>{const{values:a,columns:c,rows:f}=s,d=$W().size([c,f]);return{color:Db((()=>{const m=um(pi(120,1,.65),pi(60,1,.9)),v=um(pi(60,1,.9),pi(0,0,.95));return y=>y<.5?m(y*2):v((y-.5)*2)})()).domain(wb(a)).nice(),contours:d}},u=()=>{const{color:a,contours:c}=l(),{values:f,thresholds:d,columns:p,rows:g}=s,m=HW(),v=Xe(".contourPlot").append("svg").attr("preserveAspectRatio","xMinYMin ").attr("viewBox",`0 0 ${g} ${p}`),y=v.append("g").attr("stroke","black").attr("stroke-width",.03);for(const x of d){const $=c.contour(f,x);y.append("path").attr("d",m($)).attr("fill",a(x))}return v.node()};return Ht(()=>{s=h(),u()}),St(o,()=>{s=h();const a=document.querySelector(".contourPlot");a.removeChild(a.firstChild),u()}),{}}},JW={class:"contourPlot"};function ZW(e,t,n,r,i,o){return ue(),ve("div",JW)}const Ib=Ke(qW,[["render",ZW],["__scopeId","data-v-687163d9"]]);const e5={props:{componentID:Number,storeObject:Object},components:{DOTGraph:Oi,ContourPlot:Ib},setup(e){const{getProperty:t}=Me(e).storeObject;return{componentPath:`nodes__${we(()=>t("currentNode")).value}__components__${e.componentID}__nestedComponents__DOTGraph`}}},t5={class:"wrapper"};function n5(e,t,n,r,i,o){const s=pt("ContourPlot"),h=pt("DOTGraph");return ue(),ve("div",t5,[tt(s,{class:"background",componentID:n.componentID,storeObject:n.storeObject},null,8,["componentID","storeObject"]),tt(h,{class:"foreground",componentID:n.componentID,storeObject:n.storeObject,componentPath:r.componentPath},null,8,["componentID","storeObject","componentPath"])])}const r5=Ke(e5,[["render",n5],["__scopeId","data-v-2db6d7c8"]]),i5={name:"Fraction",setup(){return{}}};const o5=e=>($i("data-v-1b3cbe8f"),e=e(),xi(),e),s5={class:"fraction"},a5={class:"numerator"},l5=o5(()=>_e("div",{class:"hr"},[_e("hr",{class:"line"})],-1)),c5={class:"denominator"};function u5(e,t,n,r,i,o){return ue(),ve("div",s5,[_e("div",a5,[dr(e.$slots,"numerator",{},void 0,!0)]),l5,_e("div",c5,[dr(e.$slots,"denominator",{},void 0,!0)])])}const h5=Ke(i5,[["render",u5],["__scopeId","data-v-1b3cbe8f"]]),f5={name:"Power",setup(){return{}}};const d5={class:"power"},p5={class:"exponent"};function g5(e,t,n,r,i,o){return ue(),ve("div",d5,[dr(e.$slots,"base",{},void 0,!0),_e("div",p5,[_e("sup",null,[dr(e.$slots,"exponent",{},void 0,!0)])])])}const m5=Ke(f5,[["render",g5],["__scopeId","data-v-63ae27a5"]]),v5={name:"Scalar",props:{value:Number,term:Object,path:String},setup(e,{emit:t}){const n=ln("storeObject"),r=ln("componentID"),{getProperty:i,setProperty:o}=n,h=`nodes__${i("currentNode")}__components__${r}__component__aladinAST`,l=we({get:()=>i(`${h}__${e.path}__userValue`),set:c=>o({path:`${h}__${e.path}__userValue`,value:c})});let u=Un(null);const a=c=>c===!1?"invalid":c===!0?"valid":"";return St(l,(c,f)=>{`${i(`${h}__${e.path}__value`)}`==l.value?u.value=!0:u.value=!1,c==""&&(u.value=null)}),{userValue:l,isValid:u,setValidation:a,valueType:e.term.valueType}}};const y5=["data-valueType","data-path"];function w5(e,t,n,r,i,o){return Tr((ue(),ve("input",{class:kt(["scalar",r.setValidation(r.isValid)]),type:"number","onUpdate:modelValue":t[0]||(t[0]=s=>r.userValue=s),"data-valueType":r.valueType,"data-path":n.path},null,10,y5)),[[Gi,r.userValue]])}const b5=Ke(v5,[["render",w5],["__scopeId","data-v-8a414a0b"]]),_5={name:"BaseOperation",props:{options:Object},setup(e){return{operation:e.options.operation}}};const E5={class:"baseOperation"},$5={class:"operation"};function x5(e,t,n,r,i,o){return ue(),ve("div",E5,[dr(e.$slots,"firstOperand",{},void 0,!0),_e("div",$5,rt(r.operation),1),dr(e.$slots,"secondOperand",{},void 0,!0)])}const S5=Ke(_5,[["render",x5],["__scopeId","data-v-c9bf5feb"]]),C5={name:"Scalar",props:{value:Number},setup(){return{}}};const L5={class:"radical"},M5={class:"index"},T5={class:"radicand"};function O5(e,t,n,r,i,o){return ue(),ve("div",L5,[_e("div",M5,[_e("sup",null,[dr(e.$slots,"index",{},void 0,!0)])]),ef(" √ "),_e("div",T5,[dr(e.$slots,"radicand",{},void 0,!0)])])}const k5=Ke(C5,[["render",O5],["__scopeId","data-v-75a6789f"]]),R5={name:"Term",components:{Fraction:h5,Power:m5,Scalar:b5,BaseOperation:S5,Radical:k5},props:{terms:[Array,Object],path:String},setup(){return{}}};const D5={class:"term"},I5={key:0,class:"bracket open"},A5={key:0,class:"bracket open"},P5={key:1,class:"bracket close"},N5={key:1,class:"bracket close"};function B5(e,t,n,r,i,o){const s=pt("Term",!0);return ue(),ve("div",D5,[n.terms.bracket?(ue(),ve("div",I5,"(")):Mn("",!0),(ue(!0),ve(je,null,ut(n.terms,(h,l)=>(ue(),ve("div",{class:"termWrapper",key:l},[h.bracket?(ue(),ve("div",A5,"(")):Mn("",!0),(ue(),Rt(hv(h.type),{options:h.options,value:h.value,term:h,path:n.path},V_({_:2},[ut(h.slots,(u,a)=>({name:u.name,fn:cn(()=>[h.type!=="scalar"?(ue(),Rt(s,{key:0,terms:u.terms,path:`${n.path}__slots__${a}__terms__0`},null,8,["terms","path"])):Mn("",!0)])}))]),1032,["options","value","term","path"])),h.bracket?(ue(),ve("div",P5,")")):Mn("",!0)]))),128)),n.terms.bracket?(ue(),ve("div",N5,")")):Mn("",!0)])}const F5=Ke(R5,[["render",B5],["__scopeId","data-v-62ffc88b"]]),G5={name:"Equation",components:{Term:F5,ContextMenu:Wr},props:{componentID:Number,storeObject:Object},setup(e){const{store:t,getProperty:n,setProperty:r}=e.storeObject;Yi("storeObject",e.storeObject),Yi("componentID",e.componentID);const i=we(()=>t.state.currentNode),o=`nodes__${i.value}__components__${e.componentID}`,s=n(`${o}__dependencies`),h=we(()=>n(s.Equation.aladinAST)),{leftTerm:l,rightTerm:u,comparisonOperator:a}=h.value,c=()=>{const p=Array.from(document.querySelectorAll(".equation input")).every(g=>Array.from(g.classList).includes("valid"));r({path:`${o}__isValid`,value:p})};St(h,()=>{setTimeout(c,50)},{deep:!0});const f={fillConstants:()=>{const p=`nodes__${i.value}__components__${e.componentID}__component__aladinAST`;Array.from(document.querySelectorAll(".equation input")).forEach(g=>{if(g.dataset.valuetype=="constant"){const m=n(`${p}__${g.dataset.path}`);r({path:`${p}__${g.dataset.path}__userValue`,value:m.value})}})},showSolution:()=>{const p=`nodes__${i.value}__components__${e.componentID}__component__aladinAST`;Array.from(document.querySelectorAll(".equation input")).forEach(g=>{if(!Array.from(g.classList).includes("valid")){const m=n(`${p}__${g.dataset.path}`);r({path:`${p}__${g.dataset.path}__userValue`,value:m.value})}})}},d=zr(n(`nodes__${i.value}__components__${e.componentID}__methods`),f);return{leftTerm:l,rightTerm:u,comparisonOperator:a,validate:c,selectedMethods:d}}};const H5={class:"operator"};function W5(e,t,n,r,i,o){const s=pt("Term"),h=pt("ContextMenu");return ue(),Rt(h,{componentId:n.componentID,methods:r.selectedMethods,storeObject:n.storeObject},{default:cn(()=>[_e("div",{class:kt(`equation equation__${n.componentID}`)},[tt(s,{terms:r.leftTerm,path:"leftTerm__0"},null,8,["terms"]),_e("div",H5,rt(r.comparisonOperator),1),tt(s,{terms:r.rightTerm,path:"rightTerm__0"},null,8,["terms"])],2)]),_:1},8,["componentId","methods","storeObject"])}const z5=Ke(G5,[["render",W5],["__scopeId","data-v-db73aba1"]]),j5={name:"TexDisplay",props:{componentID:Number,storeObject:Object},setup(e){const{store:t,getProperty:n}=e.storeObject,i=`nodes__${we(()=>t.state.currentNode).value}__components__${e.componentID}`,o=n(`${i}__dependencies`),s=we(()=>n(o.TexDisplay.renderedTex));return Ht(()=>{document.querySelector(".tex").innerHTML="`"+s.value+"`",window.MathJax.Hub.Typeset()}),{}}};const U5={class:"tex",style:{"text-align":"center"}};function K5(e,t,n,r,i,o){return ue(),ve("p",U5)}const V5=Ke(j5,[["render",K5],["__scopeId","data-v-6f1e59fd"]]);var Ab={exports:{}};/**! - * Sortable 1.10.2 - * @author RubaXa - * @author owenm - * @license MIT - */function Fa(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Fa=function(t){return typeof t}:Fa=function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Fa(e)}function X5(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function wn(){return wn=Object.assign||function(e){for(var t=1;t=0)&&(n[i]=e[i]);return n}function Q5(e,t){if(e==null)return{};var n=Y5(e,t),r,i;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function q5(e){return J5(e)||Z5(e)||ez()}function J5(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t"&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch{return!1}return!1}}function rz(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function Cn(e,t,n,r){if(e){n=n||document;do{if(t!=null&&(t[0]===">"?e.parentNode===n&&Dl(e,t):Dl(e,t))||r&&e===n)return e;if(e===n)break}while(e=rz(e))}return null}var fm=/\s+/g;function vt(e,t,n){if(e&&t)if(e.classList)e.classList[n?"add":"remove"](t);else{var r=(" "+e.className+" ").replace(fm," ").replace(" "+t+" "," ");e.className=(r+(n?" "+t:"")).replace(fm," ")}}function Re(e,t,n){var r=e&&e.style;if(r){if(n===void 0)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(n=e.currentStyle),t===void 0?n:n[t];!(t in r)&&t.indexOf("webkit")===-1&&(t="-webkit-"+t),r[t]=n+(typeof n=="string"?"":"px")}}function yi(e,t){var n="";if(typeof e=="string")n=e;else do{var r=Re(e,"transform");r&&r!=="none"&&(n=r+" "+n)}while(!t&&(e=e.parentNode));var i=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return i&&new i(n)}function Bb(e,t,n){if(e){var r=e.getElementsByTagName(t),i=0,o=r.length;if(n)for(;i=o:s=i<=o,!s)return r;if(r===Xn())break;r=Dr(r,!1)}return!1}function Il(e,t,n){for(var r=0,i=0,o=e.children;i2&&arguments[2]!==void 0?arguments[2]:{},i=r.evt,o=Q5(r,["evt"]);na.pluginEvent.bind(Ne)(t,n,Hr({dragEl:Ee,parentEl:Mt,ghostEl:He,rootEl:mt,nextEl:oi,lastDownEl:Ga,cloneEl:wt,cloneHidden:kr,dragStarted:hs,putSortable:Bt,activeSortable:Ne.active,originalEvent:i,oldIndex:ji,oldDraggableIndex:_s,newIndex:sn,newDraggableIndex:Mr,hideGhostForTarget:jb,unhideGhostForTarget:Ub,cloneNowHidden:function(){kr=!0},cloneNowShown:function(){kr=!1},dispatchSortableEvent:function(h){Vt({sortable:n,name:h,originalEvent:i})}},o))};function Vt(e){us(Hr({putSortable:Bt,cloneEl:wt,targetEl:Ee,rootEl:mt,oldIndex:ji,oldDraggableIndex:_s,newIndex:sn,newDraggableIndex:Mr},e))}var Ee,Mt,He,mt,oi,Ga,wt,kr,ji,sn,_s,Mr,wa,Bt,Wi=!1,Al=!1,Pl=[],ti,En,au,lu,mm,vm,hs,Ni,Es,$s=!1,ba=!1,Ha,Wt,cu=[],Oh=!1,Nl=[],Ec=typeof document<"u",_a=Pb,ym=ta||mr?"cssFloat":"float",uz=Ec&&!nz&&!Pb&&"draggable"in document.createElement("div"),Hb=function(){if(Ec){if(mr)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto",e.style.pointerEvents==="auto"}}(),Wb=function(t,n){var r=Re(t),i=parseInt(r.width)-parseInt(r.paddingLeft)-parseInt(r.paddingRight)-parseInt(r.borderLeftWidth)-parseInt(r.borderRightWidth),o=Il(t,0,n),s=Il(t,1,n),h=o&&Re(o),l=s&&Re(s),u=h&&parseInt(h.marginLeft)+parseInt(h.marginRight)+_t(o).width,a=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+_t(s).width;if(r.display==="flex")return r.flexDirection==="column"||r.flexDirection==="column-reverse"?"vertical":"horizontal";if(r.display==="grid")return r.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(o&&h.float&&h.float!=="none"){var c=h.float==="left"?"left":"right";return s&&(l.clear==="both"||l.clear===c)?"vertical":"horizontal"}return o&&(h.display==="block"||h.display==="flex"||h.display==="table"||h.display==="grid"||u>=i&&r[ym]==="none"||s&&r[ym]==="none"&&u+a>i)?"vertical":"horizontal"},hz=function(t,n,r){var i=r?t.left:t.top,o=r?t.right:t.bottom,s=r?t.width:t.height,h=r?n.left:n.top,l=r?n.right:n.bottom,u=r?n.width:n.height;return i===h||o===l||i+s/2===h+u/2},fz=function(t,n){var r;return Pl.some(function(i){if(!Uf(i)){var o=_t(i),s=i[jt].options.emptyInsertThreshold,h=t>=o.left-s&&t<=o.right+s,l=n>=o.top-s&&n<=o.bottom+s;if(s&&h&&l)return r=i}}),r},zb=function(t){function n(o,s){return function(h,l,u,a){var c=h.options.group.name&&l.options.group.name&&h.options.group.name===l.options.group.name;if(o==null&&(s||c))return!0;if(o==null||o===!1)return!1;if(s&&o==="clone")return o;if(typeof o=="function")return n(o(h,l,u,a),s)(h,l,u,a);var f=(s?h:l).options.group.name;return o===!0||typeof o=="string"&&o===f||o.join&&o.indexOf(f)>-1}}var r={},i=t.group;(!i||Fa(i)!="object")&&(i={name:i}),r.name=i.name,r.checkPull=n(i.pull,!0),r.checkPut=n(i.put),r.revertClone=i.revertClone,t.group=r},jb=function(){!Hb&&He&&Re(He,"display","none")},Ub=function(){!Hb&&He&&Re(He,"display","")};Ec&&document.addEventListener("click",function(e){if(Al)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),Al=!1,!1},!0);var ni=function(t){if(Ee){t=t.touches?t.touches[0]:t;var n=fz(t.clientX,t.clientY);if(n){var r={};for(var i in t)t.hasOwnProperty(i)&&(r[i]=t[i]);r.target=r.rootEl=n,r.preventDefault=void 0,r.stopPropagation=void 0,n[jt]._onDragOver(r)}}},dz=function(t){Ee&&Ee.parentNode[jt]._isOutsideThisEl(t.target)};function Ne(e,t){if(!(e&&e.nodeType&&e.nodeType===1))throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e,this.options=t=wn({},t),e[jt]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return Wb(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(s,h){s.setData("Text",h.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:Ne.supportPointer!==!1&&"PointerEvent"in window,emptyInsertThreshold:5};na.initializePlugins(this,e,n);for(var r in n)!(r in t)&&(t[r]=n[r]);zb(t);for(var i in this)i.charAt(0)==="_"&&typeof this[i]=="function"&&(this[i]=this[i].bind(this));this.nativeDraggable=t.forceFallback?!1:uz,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?Ye(e,"pointerdown",this._onTapStart):(Ye(e,"mousedown",this._onTapStart),Ye(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(Ye(e,"dragover",this),Ye(e,"dragenter",this)),Pl.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),wn(this,az())}Ne.prototype={constructor:Ne,_isOutsideThisEl:function(t){!this.el.contains(t)&&t!==this.el&&(Ni=null)},_getDirection:function(t,n){return typeof this.options.direction=="function"?this.options.direction.call(this,t,n,Ee):this.options.direction},_onTapStart:function(t){if(t.cancelable){var n=this,r=this.el,i=this.options,o=i.preventOnFilter,s=t.type,h=t.touches&&t.touches[0]||t.pointerType&&t.pointerType==="touch"&&t,l=(h||t).target,u=t.target.shadowRoot&&(t.path&&t.path[0]||t.composedPath&&t.composedPath()[0])||l,a=i.filter;if(bz(r),!Ee&&!(/mousedown|pointerdown/.test(s)&&t.button!==0||i.disabled)&&!u.isContentEditable&&(l=Cn(l,i.draggable,r,!1),!(l&&l.animated)&&Ga!==l)){if(ji=bt(l),_s=bt(l,i.draggable),typeof a=="function"){if(a.call(this,t,l,this)){Vt({sortable:n,rootEl:u,name:"filter",targetEl:l,toEl:r,fromEl:r}),Qt("filter",n,{evt:t}),o&&t.cancelable&&t.preventDefault();return}}else if(a&&(a=a.split(",").some(function(c){if(c=Cn(u,c.trim(),r,!1),c)return Vt({sortable:n,rootEl:c,name:"filter",targetEl:l,fromEl:r,toEl:r}),Qt("filter",n,{evt:t}),!0}),a)){o&&t.cancelable&&t.preventDefault();return}i.handle&&!Cn(u,i.handle,r,!1)||this._prepareDragStart(t,h,l)}}},_prepareDragStart:function(t,n,r){var i=this,o=i.el,s=i.options,h=o.ownerDocument,l;if(r&&!Ee&&r.parentNode===o){var u=_t(r);if(mt=o,Ee=r,Mt=Ee.parentNode,oi=Ee.nextSibling,Ga=r,wa=s.group,Ne.dragged=Ee,ti={target:Ee,clientX:(n||t).clientX,clientY:(n||t).clientY},mm=ti.clientX-u.left,vm=ti.clientY-u.top,this._lastX=(n||t).clientX,this._lastY=(n||t).clientY,Ee.style["will-change"]="all",l=function(){if(Qt("delayEnded",i,{evt:t}),Ne.eventCanceled){i._onDrop();return}i._disableDelayedDragEvents(),!hm&&i.nativeDraggable&&(Ee.draggable=!0),i._triggerDragStart(t,n),Vt({sortable:i,name:"choose",originalEvent:t}),vt(Ee,s.chosenClass,!0)},s.ignore.split(",").forEach(function(a){Bb(Ee,a.trim(),hu)}),Ye(h,"dragover",ni),Ye(h,"mousemove",ni),Ye(h,"touchmove",ni),Ye(h,"mouseup",i._onDrop),Ye(h,"touchend",i._onDrop),Ye(h,"touchcancel",i._onDrop),hm&&this.nativeDraggable&&(this.options.touchStartThreshold=4,Ee.draggable=!0),Qt("delayStart",this,{evt:t}),s.delay&&(!s.delayOnTouchOnly||n)&&(!this.nativeDraggable||!(ta||mr))){if(Ne.eventCanceled){this._onDrop();return}Ye(h,"mouseup",i._disableDelayedDrag),Ye(h,"touchend",i._disableDelayedDrag),Ye(h,"touchcancel",i._disableDelayedDrag),Ye(h,"mousemove",i._delayedDragTouchMoveHandler),Ye(h,"touchmove",i._delayedDragTouchMoveHandler),s.supportPointer&&Ye(h,"pointermove",i._delayedDragTouchMoveHandler),i._dragStartTimer=setTimeout(l,s.delay)}else l()}},_delayedDragTouchMoveHandler:function(t){var n=t.touches?t.touches[0]:t;Math.max(Math.abs(n.clientX-this._lastX),Math.abs(n.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){Ee&&hu(Ee),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var t=this.el.ownerDocument;Ve(t,"mouseup",this._disableDelayedDrag),Ve(t,"touchend",this._disableDelayedDrag),Ve(t,"touchcancel",this._disableDelayedDrag),Ve(t,"mousemove",this._delayedDragTouchMoveHandler),Ve(t,"touchmove",this._delayedDragTouchMoveHandler),Ve(t,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(t,n){n=n||t.pointerType=="touch"&&t,!this.nativeDraggable||n?this.options.supportPointer?Ye(document,"pointermove",this._onTouchMove):n?Ye(document,"touchmove",this._onTouchMove):Ye(document,"mousemove",this._onTouchMove):(Ye(Ee,"dragend",this),Ye(mt,"dragstart",this._onDragStart));try{document.selection?Wa(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(t,n){if(Wi=!1,mt&&Ee){Qt("dragStarted",this,{evt:n}),this.nativeDraggable&&Ye(document,"dragover",dz);var r=this.options;!t&&vt(Ee,r.dragClass,!1),vt(Ee,r.ghostClass,!0),Ne.active=this,t&&this._appendGhost(),Vt({sortable:this,name:"start",originalEvent:n})}else this._nulling()},_emulateDragOver:function(){if(En){this._lastX=En.clientX,this._lastY=En.clientY,jb();for(var t=document.elementFromPoint(En.clientX,En.clientY),n=t;t&&t.shadowRoot&&(t=t.shadowRoot.elementFromPoint(En.clientX,En.clientY),t!==n);)n=t;if(Ee.parentNode[jt]._isOutsideThisEl(t),n)do{if(n[jt]){var r=void 0;if(r=n[jt]._onDragOver({clientX:En.clientX,clientY:En.clientY,target:t,rootEl:n}),r&&!this.options.dragoverBubble)break}t=n}while(n=n.parentNode);Ub()}},_onTouchMove:function(t){if(ti){var n=this.options,r=n.fallbackTolerance,i=n.fallbackOffset,o=t.touches?t.touches[0]:t,s=He&&yi(He,!0),h=He&&s&&s.a,l=He&&s&&s.d,u=_a&&Wt&&pm(Wt),a=(o.clientX-ti.clientX+i.x)/(h||1)+(u?u[0]-cu[0]:0)/(h||1),c=(o.clientY-ti.clientY+i.y)/(l||1)+(u?u[1]-cu[1]:0)/(l||1);if(!Ne.active&&!Wi){if(r&&Math.max(Math.abs(o.clientX-this._lastX),Math.abs(o.clientY-this._lastY))=0&&(Vt({rootEl:Mt,name:"add",toEl:Mt,fromEl:mt,originalEvent:t}),Vt({sortable:this,name:"remove",toEl:Mt,originalEvent:t}),Vt({rootEl:Mt,name:"sort",toEl:Mt,fromEl:mt,originalEvent:t}),Vt({sortable:this,name:"sort",toEl:Mt,originalEvent:t})),Bt&&Bt.save()):sn!==ji&&sn>=0&&(Vt({sortable:this,name:"update",toEl:Mt,originalEvent:t}),Vt({sortable:this,name:"sort",toEl:Mt,originalEvent:t})),Ne.active&&((sn==null||sn===-1)&&(sn=ji,Mr=_s),Vt({sortable:this,name:"end",toEl:Mt,originalEvent:t}),this.save()))),this._nulling()},_nulling:function(){Qt("nulling",this),mt=Ee=Mt=He=oi=wt=Ga=kr=ti=En=hs=sn=Mr=ji=_s=Ni=Es=Bt=wa=Ne.dragged=Ne.ghost=Ne.clone=Ne.active=null,Nl.forEach(function(t){t.checked=!0}),Nl.length=au=lu=0},handleEvent:function(t){switch(t.type){case"drop":case"dragend":this._onDrop(t);break;case"dragenter":case"dragover":Ee&&(this._onDragOver(t),pz(t));break;case"selectstart":t.preventDefault();break}},toArray:function(){for(var t=[],n,r=this.el.children,i=0,o=r.length,s=this.options;ir.right+i||e.clientX<=r.right&&e.clientY>r.bottom&&e.clientX>=r.left:e.clientX>r.right&&e.clientY>r.top||e.clientX<=r.right&&e.clientY>r.bottom+i}function vz(e,t,n,r,i,o,s,h){var l=r?e.clientY:e.clientX,u=r?n.height:n.width,a=r?n.top:n.left,c=r?n.bottom:n.right,f=!1;if(!s){if(h&&Haa+u*o/2:lc-Ha)return-Es}else if(l>a+u*(1-i)/2&&lc-u*o/2)?l>a+u/2?1:-1:0}function yz(e){return bt(Ee)1&&(Fe.forEach(function(h){o.addAnimationState({target:h,rect:nn?_t(h):s}),ou(h),h.fromRect=s,r.removeAnimationState(h)}),nn=!1,Sz(!this.options.removeCloneOnHide,i))},dragOverCompleted:function(n){var r=n.sortable,i=n.isOwner,o=n.insertion,s=n.activeSortable,h=n.parentEl,l=n.putSortable,u=this.options;if(o){if(i&&s._hideClone(),Yo=!1,u.animation&&Fe.length>1&&(nn||!i&&!s.options.sort&&!l)){var a=_t(ct,!1,!0,!0);Fe.forEach(function(f){f!==ct&&(gm(f,a),h.appendChild(f))}),nn=!0}if(!i)if(nn||$a(),Fe.length>1){var c=Ea;s._showClone(r),s.options.animation&&!Ea&&c&&rn.forEach(function(f){s.addAnimationState({target:f,rect:Qo}),f.fromRect=Qo,f.thisAnimationDuration=null})}else s._showClone(r)}},dragOverAnimationCapture:function(n){var r=n.dragRect,i=n.isOwner,o=n.activeSortable;if(Fe.forEach(function(h){h.thisAnimationDuration=null}),o.options.animation&&!i&&o.multiDrag.isMultiDrag){Qo=wn({},r);var s=yi(ct,!0);Qo.top-=s.f,Qo.left-=s.e}},dragOverAnimationComplete:function(){nn&&(nn=!1,$a())},drop:function(n){var r=n.originalEvent,i=n.rootEl,o=n.parentEl,s=n.sortable,h=n.dispatchSortableEvent,l=n.oldIndex,u=n.putSortable,a=u||this.sortable;if(r){var c=this.options,f=o.children;if(!Bi)if(c.multiDragKey&&!this.multiDragKeyDown&&this._deselectMultiDrag(),vt(ct,c.selectedClass,!~Fe.indexOf(ct)),~Fe.indexOf(ct))Fe.splice(Fe.indexOf(ct),1),Xo=null,us({sortable:s,rootEl:i,name:"deselect",targetEl:ct,originalEvt:r});else{if(Fe.push(ct),us({sortable:s,rootEl:i,name:"select",targetEl:ct,originalEvt:r}),r.shiftKey&&Xo&&s.el.contains(Xo)){var d=bt(Xo),p=bt(ct);if(~d&&~p&&d!==p){var g,m;for(p>d?(m=d,g=p):(m=p,g=d+1);m1){var v=_t(ct),y=bt(ct,":not(."+this.options.selectedClass+")");if(!Yo&&c.animation&&(ct.thisAnimationDuration=null),a.captureAnimationState(),!Yo&&(c.animation&&(ct.fromRect=v,Fe.forEach(function($){if($.thisAnimationDuration=null,$!==ct){var _=nn?_t($):v;$.fromRect=_,a.addAnimationState({target:$,rect:_})}})),$a(),Fe.forEach(function($){f[y]?o.insertBefore($,f[y]):o.appendChild($),y++}),l===bt(ct))){var x=!1;Fe.forEach(function($){if($.sortableIndex!==bt($)){x=!0;return}}),x&&h("update")}Fe.forEach(function($){ou($)}),a.animateAll()}$n=a}(i===o||u&&u.lastPutMode!=="clone")&&rn.forEach(function($){$.parentNode&&$.parentNode.removeChild($)})}},nullingGlobal:function(){this.isMultiDrag=Bi=!1,rn.length=0},destroyGlobal:function(){this._deselectMultiDrag(),Ve(document,"pointerup",this._deselectMultiDrag),Ve(document,"mouseup",this._deselectMultiDrag),Ve(document,"touchend",this._deselectMultiDrag),Ve(document,"keydown",this._checkKeyDown),Ve(document,"keyup",this._checkKeyUp)},_deselectMultiDrag:function(n){if(!(typeof Bi<"u"&&Bi)&&$n===this.sortable&&!(n&&Cn(n.target,this.options.draggable,this.sortable.el,!1))&&!(n&&n.button!==0))for(;Fe.length;){var r=Fe[0];vt(r,this.options.selectedClass,!1),Fe.shift(),us({sortable:this.sortable,rootEl:this.sortable.el,name:"deselect",targetEl:r,originalEvt:n})}},_checkKeyDown:function(n){n.key===this.options.multiDragKey&&(this.multiDragKeyDown=!0)},_checkKeyUp:function(n){n.key===this.options.multiDragKey&&(this.multiDragKeyDown=!1)}},wn(e,{pluginName:"multiDrag",utils:{select:function(n){var r=n.parentNode[jt];!r||!r.options.multiDrag||~Fe.indexOf(n)||($n&&$n!==r&&($n.multiDrag._deselectMultiDrag(),$n=r),vt(n,r.options.selectedClass,!0),Fe.push(n))},deselect:function(n){var r=n.parentNode[jt],i=Fe.indexOf(n);!r||!r.options.multiDrag||!~i||(vt(n,r.options.selectedClass,!1),Fe.splice(i,1))}},eventProperties:function(){var n=this,r=[],i=[];return Fe.forEach(function(o){r.push({multiDragElement:o,index:o.sortableIndex});var s;nn&&o!==ct?s=-1:nn?s=bt(o,":not(."+n.options.selectedClass+")"):s=bt(o),i.push({multiDragElement:o,index:s})}),{items:q5(Fe),clones:[].concat(rn),oldIndicies:r,newIndicies:i}},optionListeners:{multiDragKey:function(n){return n=n.toLowerCase(),n==="ctrl"?n="Control":n.length>1&&(n=n.charAt(0).toUpperCase()+n.substr(1)),n}}})}function Sz(e,t){Fe.forEach(function(n,r){var i=t.children[n.sortableIndex+(e?Number(r):0)];i?t.insertBefore(n,i):t.appendChild(n)})}function bm(e,t){rn.forEach(function(n,r){var i=t.children[n.sortableIndex+(e?Number(r):0)];i?t.insertBefore(n,i):t.appendChild(n)})}function $a(){Fe.forEach(function(e){e!==ct&&e.parentNode&&e.parentNode.removeChild(e)})}Ne.mount(new _z);Ne.mount(Xf,Vf);const Cz=Object.freeze(Object.defineProperty({__proto__:null,MultiDrag:xz,Sortable:Ne,Swap:Ez,default:Ne},Symbol.toStringTag,{value:"Module"})),Lz=RC(Cz);(function(e,t){(function(r,i){e.exports=i(Lz)})(typeof self<"u"?self:ts,function(n){return function(r){var i={};function o(s){if(i[s])return i[s].exports;var h=i[s]={i:s,l:!1,exports:{}};return r[s].call(h.exports,h,h.exports,o),h.l=!0,h.exports}return o.m=r,o.c=i,o.d=function(s,h,l){o.o(s,h)||Object.defineProperty(s,h,{enumerable:!0,get:l})},o.r=function(s){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(s,"__esModule",{value:!0})},o.t=function(s,h){if(h&1&&(s=o(s)),h&8||h&4&&typeof s=="object"&&s&&s.__esModule)return s;var l=Object.create(null);if(o.r(l),Object.defineProperty(l,"default",{enumerable:!0,value:s}),h&2&&typeof s!="string")for(var u in s)o.d(l,u,function(a){return s[a]}.bind(null,u));return l},o.n=function(s){var h=s&&s.__esModule?function(){return s.default}:function(){return s};return o.d(h,"a",h),h},o.o=function(s,h){return Object.prototype.hasOwnProperty.call(s,h)},o.p="",o(o.s="fb15")}({"01f9":function(r,i,o){var s=o("2d00"),h=o("5ca1"),l=o("2aba"),u=o("32e9"),a=o("84f2"),c=o("41a0"),f=o("7f20"),d=o("38fd"),p=o("2b4c")("iterator"),g=!([].keys&&"next"in[].keys()),m="@@iterator",v="keys",y="values",x=function(){return this};r.exports=function($,_,b,R,M,k,S){c(b,_,R);var E=function(G){if(!g&&G in T)return T[G];switch(G){case v:return function(){return new b(this,G)};case y:return function(){return new b(this,G)}}return function(){return new b(this,G)}},I=_+" Iterator",C=M==y,w=!1,T=$.prototype,O=T[p]||T[m]||M&&T[M],N=O||E(M),B=M?C?E("entries"):N:void 0,H=_=="Array"&&T.entries||O,z,F,W;if(H&&(W=d(H.call(new $)),W!==Object.prototype&&W.next&&(f(W,I,!0),!s&&typeof W[p]!="function"&&u(W,p,x))),C&&O&&O.name!==y&&(w=!0,N=function(){return O.call(this)}),(!s||S)&&(g||w||!T[p])&&u(T,p,N),a[_]=N,a[I]=x,M)if(z={values:C?N:E(y),keys:k?N:E(v),entries:B},S)for(F in z)F in T||l(T,F,z[F]);else h(h.P+h.F*(g||w),_,z);return z}},"02f4":function(r,i,o){var s=o("4588"),h=o("be13");r.exports=function(l){return function(u,a){var c=String(h(u)),f=s(a),d=c.length,p,g;return f<0||f>=d?l?"":void 0:(p=c.charCodeAt(f),p<55296||p>56319||f+1===d||(g=c.charCodeAt(f+1))<56320||g>57343?l?c.charAt(f):p:l?c.slice(f,f+2):(p-55296<<10)+(g-56320)+65536)}}},"0390":function(r,i,o){var s=o("02f4")(!0);r.exports=function(h,l,u){return l+(u?s(h,l).length:1)}},"0bfb":function(r,i,o){var s=o("cb7c");r.exports=function(){var h=s(this),l="";return h.global&&(l+="g"),h.ignoreCase&&(l+="i"),h.multiline&&(l+="m"),h.unicode&&(l+="u"),h.sticky&&(l+="y"),l}},"0d58":function(r,i,o){var s=o("ce10"),h=o("e11e");r.exports=Object.keys||function(u){return s(u,h)}},1495:function(r,i,o){var s=o("86cc"),h=o("cb7c"),l=o("0d58");r.exports=o("9e1e")?Object.defineProperties:function(a,c){h(a);for(var f=l(c),d=f.length,p=0,g;d>p;)s.f(a,g=f[p++],c[g]);return a}},"214f":function(r,i,o){o("b0c5");var s=o("2aba"),h=o("32e9"),l=o("79e5"),u=o("be13"),a=o("2b4c"),c=o("520a"),f=a("species"),d=!l(function(){var g=/./;return g.exec=function(){var m=[];return m.groups={a:"7"},m},"".replace(g,"$
")!=="7"}),p=function(){var g=/(?:)/,m=g.exec;g.exec=function(){return m.apply(this,arguments)};var v="ab".split(g);return v.length===2&&v[0]==="a"&&v[1]==="b"}();r.exports=function(g,m,v){var y=a(g),x=!l(function(){var k={};return k[y]=function(){return 7},""[g](k)!=7}),$=x?!l(function(){var k=!1,S=/a/;return S.exec=function(){return k=!0,null},g==="split"&&(S.constructor={},S.constructor[f]=function(){return S}),S[y](""),!k}):void 0;if(!x||!$||g==="replace"&&!d||g==="split"&&!p){var _=/./[y],b=v(u,y,""[g],function(S,E,I,C,w){return E.exec===c?x&&!w?{done:!0,value:_.call(E,I,C)}:{done:!0,value:S.call(I,E,C)}:{done:!1}}),R=b[0],M=b[1];s(String.prototype,g,R),h(RegExp.prototype,y,m==2?function(k,S){return M.call(k,this,S)}:function(k){return M.call(k,this)})}}},"230e":function(r,i,o){var s=o("d3f4"),h=o("7726").document,l=s(h)&&s(h.createElement);r.exports=function(u){return l?h.createElement(u):{}}},"23c6":function(r,i,o){var s=o("2d95"),h=o("2b4c")("toStringTag"),l=s(function(){return arguments}())=="Arguments",u=function(a,c){try{return a[c]}catch{}};r.exports=function(a){var c,f,d;return a===void 0?"Undefined":a===null?"Null":typeof(f=u(c=Object(a),h))=="string"?f:l?s(c):(d=s(c))=="Object"&&typeof c.callee=="function"?"Arguments":d}},2621:function(r,i){i.f=Object.getOwnPropertySymbols},"2aba":function(r,i,o){var s=o("7726"),h=o("32e9"),l=o("69a8"),u=o("ca5a")("src"),a=o("fa5b"),c="toString",f=(""+a).split(c);o("8378").inspectSource=function(d){return a.call(d)},(r.exports=function(d,p,g,m){var v=typeof g=="function";v&&(l(g,"name")||h(g,"name",p)),d[p]!==g&&(v&&(l(g,u)||h(g,u,d[p]?""+d[p]:f.join(String(p)))),d===s?d[p]=g:m?d[p]?d[p]=g:h(d,p,g):(delete d[p],h(d,p,g)))})(Function.prototype,c,function(){return typeof this=="function"&&this[u]||a.call(this)})},"2aeb":function(r,i,o){var s=o("cb7c"),h=o("1495"),l=o("e11e"),u=o("613b")("IE_PROTO"),a=function(){},c="prototype",f=function(){var d=o("230e")("iframe"),p=l.length,g="<",m=">",v;for(d.style.display="none",o("fab2").appendChild(d),d.src="javascript:",v=d.contentWindow.document,v.open(),v.write(g+"script"+m+"document.F=Object"+g+"/script"+m),v.close(),f=v.F;p--;)delete f[c][l[p]];return f()};r.exports=Object.create||function(p,g){var m;return p!==null?(a[c]=s(p),m=new a,a[c]=null,m[u]=p):m=f(),g===void 0?m:h(m,g)}},"2b4c":function(r,i,o){var s=o("5537")("wks"),h=o("ca5a"),l=o("7726").Symbol,u=typeof l=="function",a=r.exports=function(c){return s[c]||(s[c]=u&&l[c]||(u?l:h)("Symbol."+c))};a.store=s},"2d00":function(r,i){r.exports=!1},"2d95":function(r,i){var o={}.toString;r.exports=function(s){return o.call(s).slice(8,-1)}},"2fdb":function(r,i,o){var s=o("5ca1"),h=o("d2c8"),l="includes";s(s.P+s.F*o("5147")(l),"String",{includes:function(a){return!!~h(this,a,l).indexOf(a,arguments.length>1?arguments[1]:void 0)}})},"32e9":function(r,i,o){var s=o("86cc"),h=o("4630");r.exports=o("9e1e")?function(l,u,a){return s.f(l,u,h(1,a))}:function(l,u,a){return l[u]=a,l}},"38fd":function(r,i,o){var s=o("69a8"),h=o("4bf8"),l=o("613b")("IE_PROTO"),u=Object.prototype;r.exports=Object.getPrototypeOf||function(a){return a=h(a),s(a,l)?a[l]:typeof a.constructor=="function"&&a instanceof a.constructor?a.constructor.prototype:a instanceof Object?u:null}},"41a0":function(r,i,o){var s=o("2aeb"),h=o("4630"),l=o("7f20"),u={};o("32e9")(u,o("2b4c")("iterator"),function(){return this}),r.exports=function(a,c,f){a.prototype=s(u,{next:h(1,f)}),l(a,c+" Iterator")}},"456d":function(r,i,o){var s=o("4bf8"),h=o("0d58");o("5eda")("keys",function(){return function(u){return h(s(u))}})},4588:function(r,i){var o=Math.ceil,s=Math.floor;r.exports=function(h){return isNaN(h=+h)?0:(h>0?s:o)(h)}},4630:function(r,i){r.exports=function(o,s){return{enumerable:!(o&1),configurable:!(o&2),writable:!(o&4),value:s}}},"4bf8":function(r,i,o){var s=o("be13");r.exports=function(h){return Object(s(h))}},5147:function(r,i,o){var s=o("2b4c")("match");r.exports=function(h){var l=/./;try{"/./"[h](l)}catch{try{return l[s]=!1,!"/./"[h](l)}catch{}}return!0}},"520a":function(r,i,o){var s=o("0bfb"),h=RegExp.prototype.exec,l=String.prototype.replace,u=h,a="lastIndex",c=function(){var p=/a/,g=/b*/g;return h.call(p,"a"),h.call(g,"a"),p[a]!==0||g[a]!==0}(),f=/()??/.exec("")[1]!==void 0,d=c||f;d&&(u=function(g){var m=this,v,y,x,$;return f&&(y=new RegExp("^"+m.source+"$(?!\\s)",s.call(m))),c&&(v=m[a]),x=h.call(m,g),c&&x&&(m[a]=m.global?x.index+x[0].length:v),f&&x&&x.length>1&&l.call(x[0],y,function(){for($=1;$1?arguments[1]:void 0)}}),o("9c6c")("includes")},6821:function(r,i,o){var s=o("626a"),h=o("be13");r.exports=function(l){return s(h(l))}},"69a8":function(r,i){var o={}.hasOwnProperty;r.exports=function(s,h){return o.call(s,h)}},"6a99":function(r,i,o){var s=o("d3f4");r.exports=function(h,l){if(!s(h))return h;var u,a;if(l&&typeof(u=h.toString)=="function"&&!s(a=u.call(h))||typeof(u=h.valueOf)=="function"&&!s(a=u.call(h))||!l&&typeof(u=h.toString)=="function"&&!s(a=u.call(h)))return a;throw TypeError("Can't convert object to primitive value")}},7333:function(r,i,o){var s=o("0d58"),h=o("2621"),l=o("52a7"),u=o("4bf8"),a=o("626a"),c=Object.assign;r.exports=!c||o("79e5")(function(){var f={},d={},p=Symbol(),g="abcdefghijklmnopqrst";return f[p]=7,g.split("").forEach(function(m){d[m]=m}),c({},f)[p]!=7||Object.keys(c({},d)).join("")!=g})?function(d,p){for(var g=u(d),m=arguments.length,v=1,y=h.f,x=l.f;m>v;)for(var $=a(arguments[v++]),_=y?s($).concat(y($)):s($),b=_.length,R=0,M;b>R;)x.call($,M=_[R++])&&(g[M]=$[M]);return g}:c},7726:function(r,i){var o=r.exports=typeof window<"u"&&window.Math==Math?window:typeof self<"u"&&self.Math==Math?self:Function("return this")();typeof __g=="number"&&(__g=o)},"77f1":function(r,i,o){var s=o("4588"),h=Math.max,l=Math.min;r.exports=function(u,a){return u=s(u),u<0?h(u+a,0):l(u,a)}},"79e5":function(r,i){r.exports=function(o){try{return!!o()}catch{return!0}}},"7f20":function(r,i,o){var s=o("86cc").f,h=o("69a8"),l=o("2b4c")("toStringTag");r.exports=function(u,a,c){u&&!h(u=c?u:u.prototype,l)&&s(u,l,{configurable:!0,value:a})}},8378:function(r,i){var o=r.exports={version:"2.6.5"};typeof __e=="number"&&(__e=o)},"84f2":function(r,i){r.exports={}},"86cc":function(r,i,o){var s=o("cb7c"),h=o("c69a"),l=o("6a99"),u=Object.defineProperty;i.f=o("9e1e")?Object.defineProperty:function(c,f,d){if(s(c),f=l(f,!0),s(d),h)try{return u(c,f,d)}catch{}if("get"in d||"set"in d)throw TypeError("Accessors not supported!");return"value"in d&&(c[f]=d.value),c}},"9b43":function(r,i,o){var s=o("d8e8");r.exports=function(h,l,u){if(s(h),l===void 0)return h;switch(u){case 1:return function(a){return h.call(l,a)};case 2:return function(a,c){return h.call(l,a,c)};case 3:return function(a,c,f){return h.call(l,a,c,f)}}return function(){return h.apply(l,arguments)}}},"9c6c":function(r,i,o){var s=o("2b4c")("unscopables"),h=Array.prototype;h[s]==null&&o("32e9")(h,s,{}),r.exports=function(l){h[s][l]=!0}},"9def":function(r,i,o){var s=o("4588"),h=Math.min;r.exports=function(l){return l>0?h(s(l),9007199254740991):0}},"9e1e":function(r,i,o){r.exports=!o("79e5")(function(){return Object.defineProperty({},"a",{get:function(){return 7}}).a!=7})},a352:function(r,i){r.exports=n},a481:function(r,i,o){var s=o("cb7c"),h=o("4bf8"),l=o("9def"),u=o("4588"),a=o("0390"),c=o("5f1b"),f=Math.max,d=Math.min,p=Math.floor,g=/\$([$&`']|\d\d?|<[^>]*>)/g,m=/\$([$&`']|\d\d?)/g,v=function(y){return y===void 0?y:String(y)};o("214f")("replace",2,function(y,x,$,_){return[function(M,k){var S=y(this),E=M==null?void 0:M[x];return E!==void 0?E.call(M,S,k):$.call(String(S),M,k)},function(R,M){var k=_($,R,this,M);if(k.done)return k.value;var S=s(R),E=String(this),I=typeof M=="function";I||(M=String(M));var C=S.global;if(C){var w=S.unicode;S.lastIndex=0}for(var T=[];;){var O=c(S,E);if(O===null||(T.push(O),!C))break;var N=String(O[0]);N===""&&(S.lastIndex=a(E,l(S.lastIndex),w))}for(var B="",H=0,z=0;z=H&&(B+=E.slice(H,W)+V,H=W+F.length)}return B+E.slice(H)}];function b(R,M,k,S,E,I){var C=k+R.length,w=S.length,T=m;return E!==void 0&&(E=h(E),T=g),$.call(I,T,function(O,N){var B;switch(N.charAt(0)){case"$":return"$";case"&":return R;case"`":return M.slice(0,k);case"'":return M.slice(C);case"<":B=E[N.slice(1,-1)];break;default:var H=+N;if(H===0)return O;if(H>w){var z=p(H/10);return z===0?O:z<=w?S[z-1]===void 0?N.charAt(1):S[z-1]+N.charAt(1):O}B=S[H-1]}return B===void 0?"":B})}})},aae3:function(r,i,o){var s=o("d3f4"),h=o("2d95"),l=o("2b4c")("match");r.exports=function(u){var a;return s(u)&&((a=u[l])!==void 0?!!a:h(u)=="RegExp")}},ac6a:function(r,i,o){for(var s=o("cadf"),h=o("0d58"),l=o("2aba"),u=o("7726"),a=o("32e9"),c=o("84f2"),f=o("2b4c"),d=f("iterator"),p=f("toStringTag"),g=c.Array,m={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},v=h(m),y=0;yg;)if(m=d[g++],m!=m)return!0}else for(;p>g;g++)if((u||g in d)&&d[g]===c)return u||g||0;return!u&&-1}}},c649:function(r,i,o){(function(s){o.d(i,"c",function(){return d}),o.d(i,"a",function(){return c}),o.d(i,"b",function(){return l}),o.d(i,"d",function(){return f}),o("a481");function h(){return typeof window<"u"?window.console:s.console}var l=h();function u(p){var g=Object.create(null);return function(v){var y=g[v];return y||(g[v]=p(v))}}var a=/-(\w)/g,c=u(function(p){return p.replace(a,function(g,m){return m?m.toUpperCase():""})});function f(p){p.parentElement!==null&&p.parentElement.removeChild(p)}function d(p,g,m){var v=m===0?p.children[0]:p.children[m-1].nextSibling;p.insertBefore(g,v)}}).call(this,o("c8ba"))},c69a:function(r,i,o){r.exports=!o("9e1e")&&!o("79e5")(function(){return Object.defineProperty(o("230e")("div"),"a",{get:function(){return 7}}).a!=7})},c8ba:function(r,i){var o;o=function(){return this}();try{o=o||new Function("return this")()}catch{typeof window=="object"&&(o=window)}r.exports=o},ca5a:function(r,i){var o=0,s=Math.random();r.exports=function(h){return"Symbol(".concat(h===void 0?"":h,")_",(++o+s).toString(36))}},cadf:function(r,i,o){var s=o("9c6c"),h=o("d53b"),l=o("84f2"),u=o("6821");r.exports=o("01f9")(Array,"Array",function(a,c){this._t=u(a),this._i=0,this._k=c},function(){var a=this._t,c=this._k,f=this._i++;return!a||f>=a.length?(this._t=void 0,h(1)):c=="keys"?h(0,f):c=="values"?h(0,a[f]):h(0,[f,a[f]])},"values"),l.Arguments=l.Array,s("keys"),s("values"),s("entries")},cb7c:function(r,i,o){var s=o("d3f4");r.exports=function(h){if(!s(h))throw TypeError(h+" is not an object!");return h}},ce10:function(r,i,o){var s=o("69a8"),h=o("6821"),l=o("c366")(!1),u=o("613b")("IE_PROTO");r.exports=function(a,c){var f=h(a),d=0,p=[],g;for(g in f)g!=u&&s(f,g)&&p.push(g);for(;c.length>d;)s(f,g=c[d++])&&(~l(p,g)||p.push(g));return p}},d2c8:function(r,i,o){var s=o("aae3"),h=o("be13");r.exports=function(l,u,a){if(s(u))throw TypeError("String#"+a+" doesn't accept regex!");return String(h(l))}},d3f4:function(r,i){r.exports=function(o){return typeof o=="object"?o!==null:typeof o=="function"}},d53b:function(r,i){r.exports=function(o,s){return{value:s,done:!!o}}},d8e8:function(r,i){r.exports=function(o){if(typeof o!="function")throw TypeError(o+" is not a function!");return o}},e11e:function(r,i){r.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},f559:function(r,i,o){var s=o("5ca1"),h=o("9def"),l=o("d2c8"),u="startsWith",a=""[u];s(s.P+s.F*o("5147")(u),"String",{startsWith:function(f){var d=l(this,f,u),p=h(Math.min(arguments.length>1?arguments[1]:void 0,d.length)),g=String(f);return a?a.call(d,g,p):d.slice(p,p+g.length)===g}})},f6fd:function(r,i){(function(o){var s="currentScript",h=o.getElementsByTagName("script");s in o||Object.defineProperty(o,s,{get:function(){try{throw new Error}catch(a){var l,u=(/.*at [^\(]*\((.*):.+:.+\)$/ig.exec(a.stack)||[!1])[1];for(l in h)if(h[l].src==u||h[l].readyState=="interactive")return h[l];return null}}})})(document)},f751:function(r,i,o){var s=o("5ca1");s(s.S+s.F,"Object",{assign:o("7333")})},fa5b:function(r,i,o){r.exports=o("5537")("native-function-to-string",Function.toString)},fab2:function(r,i,o){var s=o("7726").document;r.exports=s&&s.documentElement},fb15:function(r,i,o){if(o.r(i),typeof window<"u"){o("f6fd");var s;(s=window.document.currentScript)&&(s=s.src.match(/(.+\/)[^/]+\.js(\?.*)?$/))&&(o.p=s[1])}o("f751"),o("f559"),o("ac6a"),o("cadf"),o("456d");function h(F){if(Array.isArray(F))return F}function l(F,W){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(F)))){var G=[],U=!0,Q=!1,ee=void 0;try{for(var V=F[Symbol.iterator](),q;!(U=(q=V.next()).done)&&(G.push(q.value),!(W&&G.length===W));U=!0);}catch(re){Q=!0,ee=re}finally{try{!U&&V.return!=null&&V.return()}finally{if(Q)throw ee}}return G}}function u(F,W){(W==null||W>F.length)&&(W=F.length);for(var G=0,U=new Array(W);G=ee?Q.length:Q.indexOf(q)});return G?V.filter(function(q){return q!==-1}):V}function R(F,W){var G=this;this.$nextTick(function(){return G.$emit(F.toLowerCase(),W)})}function M(F){var W=this;return function(G){W.realList!==null&&W["onDrag"+F](G),R.call(W,F,G)}}function k(F){return["transition-group","TransitionGroup"].includes(F)}function S(F){if(!F||F.length!==1)return!1;var W=f(F,1),G=W[0].componentOptions;return G?k(G.tag):!1}function E(F,W,G){return F[G]||(W[G]?W[G]():void 0)}function I(F,W,G){var U=0,Q=0,ee=E(W,G,"header");ee&&(U=ee.length,F=F?[].concat(m(ee),m(F)):m(ee));var V=E(W,G,"footer");return V&&(Q=V.length,F=F?[].concat(m(F),m(V)):m(V)),{children:F,headerOffset:U,footerOffset:Q}}function C(F,W){var G=null,U=function(se,ge){G=$(G,se,ge)},Q=Object.keys(F).filter(function(re){return re==="id"||re.startsWith("data-")}).reduce(function(re,se){return re[se]=F[se],re},{});if(U("attrs",Q),!W)return G;var ee=W.on,V=W.props,q=W.attrs;return U("on",ee),U("props",V),Object.assign(G.attrs,q),G}var w=["Start","Add","Remove","Update","End"],T=["Choose","Unchoose","Sort","Filter","Clone"],O=["Move"].concat(w,T).map(function(F){return"on"+F}),N=null,B={options:Object,list:{type:Array,required:!1,default:null},value:{type:Array,required:!1,default:null},noTransitionOnDrag:{type:Boolean,default:!1},clone:{type:Function,default:function(W){return W}},element:{type:String,default:"div"},tag:{type:String,default:null},move:{type:Function,default:null},componentData:{type:Object,required:!1,default:null}},H={name:"draggable",inheritAttrs:!1,props:B,data:function(){return{transitionMode:!1,noneFunctionalComponentMode:!1}},render:function(W){var G=this.$slots.default;this.transitionMode=S(G);var U=I(G,this.$slots,this.$scopedSlots),Q=U.children,ee=U.headerOffset,V=U.footerOffset;this.headerOffset=ee,this.footerOffset=V;var q=C(this.$attrs,this.componentData);return W(this.getTag(),q,Q)},created:function(){this.list!==null&&this.value!==null&&x.b.error("Value and list props are mutually exclusive! Please set one or another."),this.element!=="div"&&x.b.warn("Element props is deprecated please use tag props instead. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#element-props"),this.options!==void 0&&x.b.warn("Options props is deprecated, add sortable options directly as vue.draggable item, or use v-bind. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#options-props")},mounted:function(){var W=this;if(this.noneFunctionalComponentMode=this.getTag().toLowerCase()!==this.$el.nodeName.toLowerCase()&&!this.getIsFunctional(),this.noneFunctionalComponentMode&&this.transitionMode)throw new Error("Transition-group inside component is not supported. Please alter tag value or remove transition-group. Current tag value: ".concat(this.getTag()));var G={};w.forEach(function(ee){G["on"+ee]=M.call(W,ee)}),T.forEach(function(ee){G["on"+ee]=R.bind(W,ee)});var U=Object.keys(this.$attrs).reduce(function(ee,V){return ee[Object(x.a)(V)]=W.$attrs[V],ee},{}),Q=Object.assign({},this.options,U,G,{onMove:function(V,q){return W.onDragMove(V,q)}});!("draggable"in Q)&&(Q.draggable=">*"),this._sortable=new y.a(this.rootContainer,Q),this.computeIndexes()},beforeDestroy:function(){this._sortable!==void 0&&this._sortable.destroy()},computed:{rootContainer:function(){return this.transitionMode?this.$el.children[0]:this.$el},realList:function(){return this.list?this.list:this.value}},watch:{options:{handler:function(W){this.updateOptions(W)},deep:!0},$attrs:{handler:function(W){this.updateOptions(W)},deep:!0},realList:function(){this.computeIndexes()}},methods:{getIsFunctional:function(){var W=this._vnode.fnOptions;return W&&W.functional},getTag:function(){return this.tag||this.element},updateOptions:function(W){for(var G in W){var U=Object(x.a)(G);O.indexOf(U)===-1&&this._sortable.option(U,W[G])}},getChildrenNodes:function(){if(this.noneFunctionalComponentMode)return this.$children[0].$slots.default;var W=this.$slots.default;return this.transitionMode?W[0].child.$slots.default:W},computeIndexes:function(){var W=this;this.$nextTick(function(){W.visibleIndexes=b(W.getChildrenNodes(),W.rootContainer.children,W.transitionMode,W.footerOffset)})},getUnderlyingVm:function(W){var G=_(this.getChildrenNodes()||[],W);if(G===-1)return null;var U=this.realList[G];return{index:G,element:U}},getUnderlyingPotencialDraggableComponent:function(W){var G=W.__vue__;return!G||!G.$options||!k(G.$options._componentTag)?!("realList"in G)&&G.$children.length===1&&"realList"in G.$children[0]?G.$children[0]:G:G.$parent},emitChanges:function(W){var G=this;this.$nextTick(function(){G.$emit("change",W)})},alterList:function(W){if(this.list){W(this.list);return}var G=m(this.value);W(G),this.$emit("input",G)},spliceList:function(){var W=arguments,G=function(Q){return Q.splice.apply(Q,m(W))};this.alterList(G)},updatePosition:function(W,G){var U=function(ee){return ee.splice(G,0,ee.splice(W,1)[0])};this.alterList(U)},getRelatedContextFromMoveEvent:function(W){var G=W.to,U=W.related,Q=this.getUnderlyingPotencialDraggableComponent(G);if(!Q)return{component:Q};var ee=Q.realList,V={list:ee,component:Q};if(G!==U&&ee&&Q.getUnderlyingVm){var q=Q.getUnderlyingVm(U);if(q)return Object.assign(q,V)}return V},getVmIndex:function(W){var G=this.visibleIndexes,U=G.length;return W>U-1?U:G[W]},getComponent:function(){return this.$slots.default[0].componentInstance},resetTransitionData:function(W){if(!(!this.noTransitionOnDrag||!this.transitionMode)){var G=this.getChildrenNodes();G[W].data=null;var U=this.getComponent();U.children=[],U.kept=void 0}},onDragStart:function(W){this.context=this.getUnderlyingVm(W.item),W.item._underlying_vm_=this.clone(this.context.element),N=W.item},onDragAdd:function(W){var G=W.item._underlying_vm_;if(G!==void 0){Object(x.d)(W.item);var U=this.getVmIndex(W.newIndex);this.spliceList(U,0,G),this.computeIndexes();var Q={element:G,newIndex:U};this.emitChanges({added:Q})}},onDragRemove:function(W){if(Object(x.c)(this.rootContainer,W.item,W.oldIndex),W.pullMode==="clone"){Object(x.d)(W.clone);return}var G=this.context.index;this.spliceList(G,1);var U={element:this.context.element,oldIndex:G};this.resetTransitionData(G),this.emitChanges({removed:U})},onDragUpdate:function(W){Object(x.d)(W.item),Object(x.c)(W.from,W.item,W.oldIndex);var G=this.context.index,U=this.getVmIndex(W.newIndex);this.updatePosition(G,U);var Q={element:this.context.element,oldIndex:G,newIndex:U};this.emitChanges({moved:Q})},updateProperty:function(W,G){W.hasOwnProperty(G)&&(W[G]+=this.headerOffset)},computeFutureIndex:function(W,G){if(!W.element)return 0;var U=m(G.to.children).filter(function(q){return q.style.display!=="none"}),Q=U.indexOf(G.related),ee=W.component.getVmIndex(Q),V=U.indexOf(N)!==-1;return V||!G.willInsertAfter?ee:ee+1},onDragMove:function(W,G){var U=this.move;if(!U||!this.realList)return!0;var Q=this.getRelatedContextFromMoveEvent(W),ee=this.context,V=this.computeFutureIndex(Q,W);Object.assign(ee,{futureIndex:V});var q=Object.assign({},W,{relatedContext:Q,draggedContext:ee});return U(q,G)},onDragEnd:function(){this.computeIndexes(),N=null}}};typeof window<"u"&&"Vue"in window&&window.Vue.component("draggable",H);var z=H;i.default=z}}).default})})(Ab);var Mz=Ab.exports;const Tz=Li(Mz),Oz={name:"DragList",props:{propData:Array,storeObject:Object,style:Object,path:String,name:String,pullAction:[Boolean,String,Array],putAction:[Boolean,Array],uniqueValues:Boolean},components:{draggable:Tz},setup(e){let t,n;e.propData?t=Un(e.propData.map((h,l)=>({id:l,name:h}))):(n=we(()=>e.storeObject.getProperty(e.path).map((h,l)=>({id:l,name:h}))),t=Un([...n.value]));const r=Un(!0),i=Un(!0);return{data:t,dragOptions:{animation:200,ghostClass:"ghost"},enabled:i,drag:r,cancelInvalid:(h,l)=>{const{draggedContext:u,relatedContext:a}=h;if(a.component.$attrs.group.unique){const{element:f}=u,{list:d}=a;if(d.find(p=>p.name===f.name))return!1}return!0}}}};function kz(e,t,n,r,i,o){const s=pt("draggable");return ue(),Rt(s,Jl({class:`dragArea list-group ${n.style.type} ${n.style.direction}`,tag:"transition-group",group:{name:n.name,pull:n.pullAction,put:n.putAction,unique:n.uniqueValues},"component-data":{tag:"ul",type:"transition-group",name:r.drag?null:"flip-list"},onStart:t[0]||(t[0]=h=>r.drag=!0),onEnd:t[1]||(t[1]=h=>r.drag=!1),move:r.cancelInvalid,modelValue:r.data,"onUpdate:modelValue":t[2]||(t[2]=h=>r.data=h)},r.dragOptions,{"item-key":"id"}),{item:cn(({element:h})=>[_e("div",{class:kt(["list-group-item",{"not-draggable":!r.enabled}])},rt(h.name),3)]),_:1},16,["class","group","component-data","move","modelValue"])}const Rz=Ke(Oz,[["render",kz],["__scopeId","data-v-8a636cf5"]]),Dz={props:{componentID:Number,storeObject:Object},components:{DragList:Rz},setup(e){const{store:t,getProperty:n,setProperty:r}=e.storeObject,o=`nodes__${we(()=>t.state.currentNode).value}__components__${e.componentID}`,s=n(`${o}__dependencies`),h=we(()=>n(s.DijkstraTable.nodes)),l=we(()=>n(s.DijkstraTable.initialRow)),u=we(()=>n(s.DijkstraTable.initialControls)),a=n(`${o}__component__labels`),c=we(()=>{const g=n(`${o}__component__userRows`);return g.length||g.push(l.value),g});n(`${o}__component__controlObject`).queue.length||r({path:`${o}__component__controlObject`,value:u.value});const f={queue:`${o}__component__controlObject__queue`,done:`${o}__component__controlObject__done`,chosen:`${o}__component__controlObject__chosen`,successor:`${o}__component__controlObject__successor`};return{nodes:h,userRows:c,addRow:()=>c.value.push(c.value[c.value.length-1]),removeRow:()=>c.value.pop(),labels:a,controlObjectPaths:f}}};const Iz={class:"controlObject"};function Az(e,t,n,r,i,o){const s=pt("DragList");return ue(),ve("div",Iz,[_e("h2",null,rt(r.labels.overview),1),_e("div",null,[tt(s,{propData:r.nodes.map((h,l)=>l),style:{type:"boxes",direction:"horizontal"},name:"nodes",pullAction:"clone",putAction:!1},null,8,["propData"])]),(ue(!0),ve(je,null,ut(Object.entries(r.controlObjectPaths),([h,l],u)=>(ue(),ve("div",{key:u},[_e("p",null,rt(r.labels[h]),1),_e("div",null,[tt(s,{storeObject:n.storeObject,path:l,style:{type:"boxes",direction:"horizontal"},name:"nodes",pullAction:!0,putAction:!0,uniqueValues:!0},null,8,["storeObject","path"])])]))),128))])}const Pz=Ke(Dz,[["render",Az],["__scopeId","data-v-7ffb860e"]]),Nz={components:{Button:mb,ControlObject:Pz,ContextMenu:Wr},props:{componentID:Number,storeObject:Object},setup(e){const{store:t,getProperty:n,setProperty:r}=e.storeObject,i=we(()=>t.state.currentNode),o=`nodes__${i.value}__components__${e.componentID}`,s=n(`${o}__dependencies`),h=we(()=>n(s.DijkstraTable.nodes)),l=we(()=>n(s.DijkstraTable.initialRow)),u=we(()=>n(s.DijkstraTable.initialControls)),a=n(`${o}__component__labels`),c=n(`${o}__component__colorCoding`),f=$=>Object.entries($).reduce((_,[b,R])=>{const M=R;for(let k;k{const $=n(`${o}__component__userRows`);return $.length||$.push(l.value),$}),g={solveStep:()=>{const{steps:$}=n("taskData__solution"),{row:_,controlObject:b}=$[p.value.length-1];r({path:`${o}__component__userRows`,value:[...p.value,_]}),r({path:`${o}__component__controlObject`,value:b})}},m=zr(n(`nodes__${i.value}__components__${e.componentID}__methods`),g),v=n("taskData__edges").length,y=()=>{p.value.lengthp.value.pop();return St(u,($,_)=>{d.value=f($)},{deep:!0}),{nodes:h,userRows:p,addRow:y,removeRow:x,maxRows:v,labels:a,colorScheme:d,selectedMethods:m}}};const Bz=e=>($i("data-v-031587df"),e=e(),xi(),e),Fz={class:"dijkstra"},Gz={class:"djikstraWrapper"},Hz={class:"dijkstraTable"},Wz={class:"header"},zz=Bz(()=>_e("th",{class:"header"},null,-1)),jz={class:"cost"},Uz=["data-index","value"],Kz=["data-index","value"],Vz={class:"tableControls"};function Xz(e,t,n,r,i,o){const s=pt("Button"),h=pt("ControlObject"),l=pt("ContextMenu");return ue(),Rt(l,{componentId:e.id,methods:r.selectedMethods,storeObject:n.storeObject},{default:cn(()=>[_e("div",Fz,[_e("div",Gz,[_e("div",Hz,[_e("table",null,[_e("thead",null,[_e("tr",null,[_e("th",Wz,rt(r.labels.iteration),1),zz,(ue(!0),ve(je,null,ut(r.nodes,u=>(ue(),ve("th",{class:"header",style:vo(`background="${r.colorScheme[u.id]}"`),key:u.id},rt(u.id),5))),128))])]),_e("tbody",null,[(ue(!0),ve(je,null,ut(r.userRows,(u,a)=>(ue(),Rt(K1,{class:"list",name:"list",tag:"tr",key:a},{default:cn(()=>[(ue(),ve("td",{key:a},rt(a),1)),(ue(),ve("td",{class:"rowHeader",key:a},[_e("p",null,rt(r.labels.cost),1),_e("p",null,rt(r.labels.predecessor),1)])),(ue(!0),ve(je,null,ut(u.cost,(c,f)=>(ue(),ve("td",{key:f},[_e("div",jz,[_e("input",{type:"text","data-index":`${f}-cost`,value:c,onInput:()=>{}},null,40,Uz),_e("input",{type:"text","data-index":`${f}-predecessor`,value:u.predecessor[f]},null,8,Kz)])]))),128))]),_:2},1024))),128))])])]),_e("div",Vz,[tt(s,{class:kt(["addRow",{disabled:r.userRows.length===r.maxRows}]),label:"+",callback:r.addRow},null,8,["callback","class"]),tt(s,{class:kt(["removeRow",{disabled:r.userRows.length===1}]),label:"-",callback:r.removeRow},null,8,["callback","class"])])]),tt(h,{componentID:n.componentID,storeObject:n.storeObject},null,8,["componentID","storeObject"])])]),_:1},8,["componentId","methods","storeObject"])}const Yz=Ke(Nz,[["render",Xz],["__scopeId","data-v-031587df"]]),Qz={components:{DOTGraph:Oi},props:{componentID:Number,storeObject:Object},setup(e){const{getProperty:t,setProperty:n}=Me(e).storeObject,r=we(()=>t("currentNode")),i=`nodes__${r.value}__components__${e.componentID}__nestedComponents__DOTGraph`,o=`nodes__${r.value}__components__${e.componentID}`,s=t(`${o}__dependencies`),h=we(()=>t(s.DijkstraGraph.controlObject)),l=we(()=>t(s.DijkstraGraph.nodes)),u=t(`${o}__component__colorCoding`);Ht(()=>{let d=document.querySelectorAll(".dijkstraGraph .node");const p=setInterval(()=>{d=document.querySelectorAll(".dijkstraGraph .node"),d.length&&(clearInterval(p),Array.from(d).forEach(g=>g.addEventListener("click",a)))},500)});const a=d=>{const{queue:p,done:g,chosen:m,successor:v}=h.value,y=d.currentTarget,x=parseInt(y.querySelector("title").textContent);if(!p.includes(x))return;const $=document.querySelector('ellipse[fill="red"]').parentNode;c(h.value,x,$),Array.from(document.querySelectorAll(".node title")).filter(_=>v.includes(parseInt(_.textContent))).map(_=>_.parentNode),f(u.done,[$]),f(u.chosen,[y])},c=(d,p,g)=>{const{queue:m,done:v,chosen:y,successor:x}=d,$=parseInt(g.querySelector("title").textContent),_=l.value[p].neighbours.filter(M=>!v.includes(M)&&!x.includes(M)&&!m.includes(M)),b=[...l.value[p].neighbours],R=[...m.filter(M=>M!==p),..._];R.sort(),n({path:`${s.DijkstraGraph.controlObject}__chosen`,value:[p]}),n({path:`${s.DijkstraGraph.controlObject}__done`,value:[...v,$]}),n({path:`${s.DijkstraGraph.controlObject}__successor`,value:b}),n({path:`${s.DijkstraGraph.controlObject}__queue`,value:R})},f=(d,p)=>{p.forEach(g=>{g.querySelector("ellipse").setAttribute("stroke",d),g.querySelector("ellipse").setAttribute("fill",d)})};return{componentPath:i}}};const qz={class:"dijkstraGraph"};function Jz(e,t,n,r,i,o){const s=pt("DOTGraph");return ue(),ve("div",qz,[tt(s,{componentID:n.componentID,storeObject:n.storeObject,componentPath:r.componentPath},null,8,["componentID","storeObject","componentPath"])])}const Zz=Ke(Qz,[["render",Jz],["__scopeId","data-v-826e9b6f"]]),e4={class:"planGraph"},t4=bo({__name:"PlanGraph",props:{componentID:{},storeObject:{},dependencies:{}},setup(e){const t=e,{getProperty:n,setProperty:r}=t.storeObject,i=we(()=>n("currentNode")),o=`nodes__${i.value}__components__${t.componentID}`,s=`nodes__${i.value}__components__${t.componentID}__nestedComponents__DOTGraph`,h=n(`${o}__dependencies`),l=we(()=>n(h.PlanGraph.dotDescription)),u=()=>{Array.from(document.querySelectorAll("g.node")).forEach(p=>{p.setAttribute("pointer-events","visible"),p.addEventListener("click",a)})};Ht(()=>{di(".planGraph .node",u),c()}),Ws(()=>{Array.from(document.querySelectorAll("g.node")).forEach(p=>p.removeEventListener("click",a))});const a=p=>{const g=p.currentTarget,m=document.querySelector("g.node.active");if(m){m.classList.remove("active"),m.setAttribute("stroke",""),Array.from(m.querySelectorAll("polygon")).forEach(_=>_.setAttribute("stroke","black"));const v=m.id,y=g.id,x=`${v}:out -> ${y}:in []`,$=`${y}:out -> ${v}:in []`;if(v===y||l.value.includes($))return;l.value.includes(x)?(r({path:h.PlanGraph.dotDescription,value:l.value.replace(x,"")}),di(".planGraph .node",()=>Array.from(document.querySelectorAll("g.node")).forEach(_=>_.setAttribute("pointer-events","visible")))):(r({path:h.PlanGraph.dotDescription,value:l.value.replace("}",`${x} - }`)}),di(".planGraph .node",()=>Array.from(document.querySelectorAll("g.node")).forEach(_=>_.setAttribute("pointer-events","visible"))))}else g.classList.add("active"),g.setAttribute("stroke","red"),Array.from(g.querySelectorAll("polygon")).forEach(v=>v.setAttribute("stroke","red"));c()},c=()=>{const p=n(h.PlanGraph.validation),g=Array.from(p.matchAll(/\d:out -> \d:in \[.*\]/g)).map(x=>x[0]),m=n(h.PlanGraph.dotDescription),v=Array.from(m.matchAll(/\d:out -> \d:in \[.*\]/g)).map(x=>x[0]),y=g.every(x=>v.includes(x))&&v.every(x=>g.includes(x));r({path:`nodes__${i.value}__components__${t.componentID}__isValid`,value:y})},f={showSolution:()=>{const p=n(h.PlanGraph.validation);r({path:h.PlanGraph.dotDescription,value:p}),di(".planGraph .node",()=>Array.from(document.querySelectorAll("g.node")).forEach(g=>g.setAttribute("pointer-events","visible"))),c()}},d=zr(n(`nodes__${i.value}__components__${t.componentID}__methods`),f);return(p,g)=>(ue(),Rt(Wr,{componentId:p.componentID,methods:Me(d),storeObject:p.storeObject},{default:cn(()=>[_e("div",e4,[tt(Oi,{componentID:p.componentID,storeObject:p.storeObject,componentPath:s},null,8,["componentID","storeObject"])])]),_:1},8,["componentId","methods","storeObject"]))}});const n4=Ke(t4,[["__scopeId","data-v-17677026"]]),r4={class:"editableGraph"},i4=bo({__name:"EditableGraph",props:{componentID:{},storeObject:{},dependencies:{}},setup(e){const t=e,{getProperty:n,setProperty:r}=t.storeObject,i=n("currentNode"),o=`nodes__${i}__components__${t.componentID}`,s=n(`${o}__dependencies`),h=`nodes__${i}__components__${t.componentID}__nestedComponents__DOTGraph`;we(()=>n(`${o}__component__userValues`)).value||r({path:`${o}__component__userValues`,value:[...n(s.EditableGraph.validation)]});const u=m=>{var k,S,E,I,C,w,T,O;const v=m.target,y=(k=v==null?void 0:v.parentElement)==null?void 0:k.parentElement,x=(S=y.parentElement)==null?void 0:S.parentElement,$=(C=(I=(E=y.getAttribute("id"))==null?void 0:E.split("_"))==null?void 0:I.pop())==null?void 0:C.trim(),_=(O=(T=(w=x==null?void 0:x.getAttribute("id"))==null?void 0:w.split("_"))==null?void 0:T.pop())==null?void 0:O.trim(),b=document.createElement("input");b.style.textAlign="right",b.style.width="20px",b.value=v.textContent,b.onkeyup=N=>{const B=N.target;if(["Enter","Escape"].includes(N.key)){B.blur();return}v.textContent=B.value,r({path:`${o}__component__userValues__${_}__${$}`,value:B.value})},b.onblur=()=>{R.remove(),d()};const R=document.createElementNS("http://www.w3.org/2000/svg","foreignObject");R.setAttribute("width","100%"),R.setAttribute("height","100%"),R.setAttribute("y",`${parseInt(v==null?void 0:v.getAttribute("y"))-15}`),R.setAttribute("x",v==null?void 0:v.getAttribute("x")),R.append(b);const M=v.parentNode;M==null||M.append(R),b.select()},a=n(`${o}__component__editableFields`),c=a.map(m=>`g.node g[id="a_${m}"] text`),f=()=>{Array.from(document.querySelectorAll(c)).forEach(m=>{m.setAttribute("pointer-events","visible"),m.addEventListener("click",u)})};Ht(()=>{di(".editableGraph .node",f),di(".editableGraph .node",d)}),Ws(()=>{Array.from(document.querySelectorAll(c)).forEach(m=>m.removeEventListener("click",u))});const d=()=>{const v=n(s.EditableGraph.validation).every(y=>{const{id:x}=y;return a.every($=>{var R,M;const _=y[$];return((M=(R=document.querySelector(`g.node[id="${x}"] g[id="a_${$}"] text`))==null?void 0:R.textContent)==null?void 0:M.trim())==_})});r({path:`${o}__isValid`,value:v})},p={showSolution:()=>{Array.from(document.querySelectorAll(c)).forEach(x=>x.removeEventListener("click",u));const m=document.querySelector(".dotGraph svg"),v=n(s.DOTGraph.dotDescription),y=n(s.EditableGraph.solution);m&&v!=y&&document.querySelector(".dotGraph").removeChild(m),r({path:s.DOTGraph.dotDescription,value:y}),di(".editableGraph .node",f),r({path:`${o}__isValid`,value:!0})}},g=zr(n(`${o}__methods`),p);return(m,v)=>(ue(),Rt(Wr,{componentId:m.id,methods:Me(g),storeObject:m.storeObject},{default:cn(()=>[_e("div",r4,[tt(Oi,{componentID:m.componentID,storeObject:m.storeObject,componentPath:h},null,8,["componentID","storeObject"])])]),_:1},8,["componentId","methods","storeObject"]))}});const o4=Ke(i4,[["__scopeId","data-v-82dad0c7"]]),s4={components:{ContextMenu:Wr},props:{componentID:Number,storeObject:Object},setup(e){const{getProperty:t,setProperty:n}=e.storeObject,i=`nodes__${t("currentNode")}__components__${e.componentID}`,o=t(`${i}__dependencies`),{matrix:s,events:h,maxTime:l}=t(o.GanttDiagram.ganttDiagram),u=we(()=>t(`${i}__component__userMatrix`));u.value.length||n({path:`${i}__component__userMatrix`,value:s.map($=>$.map(_=>0))});const a=we(()=>t(`${i}__component__isDrawing`)),c=we(()=>t(`${i}__component__isDeleting`)),f=we(()=>t(`${i}__component__currentRow`)),d=we(()=>t(`${i}__component__currentColumn`));Ht(()=>{v()});const p=()=>{const $=Array.from(document.querySelectorAll(":hover")).pop(),_=Array.from($.classList).includes("filled"),b=_?0:1,[R,M]=$.id.split("_");n({path:`${i}__component__isDrawing`,value:!0}),n({path:`${i}__component__isDeleting`,value:_}),n({path:`${i}__component__currentRow`,value:R}),n({path:`${i}__component__currentColumn`,value:M}),n({path:`${i}__component__userMatrix__${R}__${M}`,value:b})},g=()=>{if(a.value){const $=Array.from(document.querySelectorAll(":hover")).pop(),[_,b]=$.id.split("_");if(b!=d.value){const R=c.value?0:1,M=(C,w)=>C>=w,k=(C,w)=>C<=w,[S,E]=b>d.value?[M,k]:[k,M],I=u.value[f.value].map((C,w)=>S(w,d.value)&&E(w,b)?R:C);n({path:`${i}__component__currentColumn`,value:b}),n({path:`${i}__component__userMatrix__${f.value}`,value:I})}}},m=()=>{const $=Array.from(document.querySelectorAll(":hover")).pop(),[_,b]=$.id.split("_"),R=c.value?0:1,M=u.value[f.value].map((k,S)=>S>=d.value&&Sv(),100)},v=()=>{const $=s.every((_,b)=>_.every((R,M)=>u.value[b][M]==R));n({path:`${i}__isValid`,value:$})},y={showSolution:()=>{n({path:`${i}__component__userMatrix`,value:s.map($=>$.map(_=>_))}),n({path:`${i}__isValid`,value:!0})}};return{selectedMethods:()=>zr(t(`${i}__methods`),y),id:e.componentID,maxTime:l,events:h,userMatrix:u,drawStartHandler:p,drawHandler:DG(g,50),drawEndHandler:m}}};const a4={class:"gantt"},l4={class:"time"},c4={class:"diagram"},u4={class:"events"},h4={class:"matrix"},f4=["id"];function d4(e,t,n,r,i,o){const s=pt("ContextMenu");return ue(),Rt(s,{componentId:r.id,methods:r.selectedMethods,storeObject:n.storeObject},{default:cn(()=>[_e("div",a4,[_e("div",l4,[(ue(!0),ve(je,null,ut(Array(r.maxTime).fill(0).map((h,l)=>l),h=>(ue(),ve("div",{class:"timepoint axis",key:h},[_e("span",null,rt(h),1)]))),128))]),_e("div",c4,[_e("div",u4,[(ue(!0),ve(je,null,ut(r.events,h=>(ue(),ve("div",{class:"event axis",key:h},[_e("span",null,rt(h),1)]))),128))]),_e("div",h4,[(ue(!0),ve(je,null,ut(r.userMatrix,(h,l)=>(ue(),ve("div",{class:"row",key:l},[(ue(!0),ve(je,null,ut(h,(u,a)=>(ue(),ve("div",{class:kt(["field",u?"filled":""]),id:`${l}_${a}`,onMousedown:t[0]||(t[0]=(...c)=>r.drawStartHandler&&r.drawStartHandler(...c)),onMousemove:t[1]||(t[1]=(...c)=>r.drawHandler&&r.drawHandler(...c)),onMouseup:t[2]||(t[2]=(...c)=>r.drawEndHandler&&r.drawEndHandler(...c)),key:a},null,42,f4))),128))]))),128))])])])]),_:1},8,["componentId","methods","storeObject"])}const p4=Ke(s4,[["render",d4],["__scopeId","data-v-a8f5b611"]]);var Yf={exports:{}},Zi=typeof Reflect=="object"?Reflect:null,_m=Zi&&typeof Zi.apply=="function"?Zi.apply:function(t,n,r){return Function.prototype.apply.call(t,n,r)},ja;Zi&&typeof Zi.ownKeys=="function"?ja=Zi.ownKeys:Object.getOwnPropertySymbols?ja=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:ja=function(t){return Object.getOwnPropertyNames(t)};function g4(e){console&&console.warn&&console.warn(e)}var Vb=Number.isNaN||function(t){return t!==t};function st(){st.init.call(this)}Yf.exports=st;Yf.exports.once=w4;st.EventEmitter=st;st.prototype._events=void 0;st.prototype._eventsCount=0;st.prototype._maxListeners=void 0;var Em=10;function $c(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(st,"defaultMaxListeners",{enumerable:!0,get:function(){return Em},set:function(e){if(typeof e!="number"||e<0||Vb(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");Em=e}});st.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};st.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||Vb(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function Xb(e){return e._maxListeners===void 0?st.defaultMaxListeners:e._maxListeners}st.prototype.getMaxListeners=function(){return Xb(this)};st.prototype.emit=function(t){for(var n=[],r=1;r0&&(s=n[0]),s instanceof Error)throw s;var h=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw h.context=s,h}var l=o[t];if(l===void 0)return!1;if(typeof l=="function")_m(l,this,n);else for(var u=l.length,a=Zb(l,u),r=0;r0&&s.length>i&&!s.warned){s.warned=!0;var h=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");h.name="MaxListenersExceededWarning",h.emitter=e,h.type=t,h.count=s.length,g4(h)}return e}st.prototype.addListener=function(t,n){return Yb(this,t,n,!1)};st.prototype.on=st.prototype.addListener;st.prototype.prependListener=function(t,n){return Yb(this,t,n,!0)};function m4(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function Qb(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=m4.bind(r);return i.listener=n,r.wrapFn=i,i}st.prototype.once=function(t,n){return $c(n),this.on(t,Qb(this,t,n)),this};st.prototype.prependOnceListener=function(t,n){return $c(n),this.prependListener(t,Qb(this,t,n)),this};st.prototype.removeListener=function(t,n){var r,i,o,s,h;if($c(n),i=this._events,i===void 0)return this;if(r=i[t],r===void 0)return this;if(r===n||r.listener===n)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit("removeListener",t,r.listener||n));else if(typeof r!="function"){for(o=-1,s=r.length-1;s>=0;s--)if(r[s]===n||r[s].listener===n){h=r[s].listener,o=s;break}if(o<0)return this;o===0?r.shift():v4(r,o),r.length===1&&(i[t]=r[0]),i.removeListener!==void 0&&this.emit("removeListener",t,h||n)}return this};st.prototype.off=st.prototype.removeListener;st.prototype.removeAllListeners=function(t){var n,r,i;if(r=this._events,r===void 0)return this;if(r.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):r[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete r[t]),this;if(arguments.length===0){var o=Object.keys(r),s;for(i=0;i=0;i--)this.removeListener(t,n[i]);return this};function qb(e,t,n){var r=e._events;if(r===void 0)return[];var i=r[t];return i===void 0?[]:typeof i=="function"?n?[i.listener||i]:[i]:n?y4(i):Zb(i,i.length)}st.prototype.listeners=function(t){return qb(this,t,!0)};st.prototype.rawListeners=function(t){return qb(this,t,!1)};st.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):Jb.call(e,t)};st.prototype.listenerCount=Jb;function Jb(e){var t=this._events;if(t!==void 0){var n=t[e];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}st.prototype.eventNames=function(){return this._eventsCount>0?ja(this._events):[]};function Zb(e,t){for(var n=new Array(t),r=0;r=t?{done:!0}:{done:!1,value:e[n++]}})};qn.empty=function(){var e=new qn(function(){return{done:!0}});return e};qn.fromSequence=function(e){var t=0,n=e.length;return new qn(function(){return t>=n?{done:!0}:{done:!1,value:e[t++]}})};qn.is=function(e){return e instanceof qn?!0:typeof e=="object"&&e!==null&&typeof e.next=="function"};var Qf=qn;const bn=Li(Qf);var qf={};qf.ARRAY_BUFFER_SUPPORT=typeof ArrayBuffer<"u";qf.SYMBOL_SUPPORT=typeof Symbol<"u";var E4=Qf,t0=qf,$4=t0.ARRAY_BUFFER_SUPPORT,x4=t0.SYMBOL_SUPPORT;function S4(e){return typeof e=="string"||Array.isArray(e)||$4&&ArrayBuffer.isView(e)?E4.fromSequence(e):typeof e!="object"||e===null?null:x4&&typeof e[Symbol.iterator]=="function"?e[Symbol.iterator]():typeof e.next=="function"?e:null}var n0=function(t){var n=S4(t);if(!n)throw new Error("obliterator: target is not iterable nor a valid iterator.");return n},C4=n0,L4=function(t,n){for(var r=arguments.length>1?n:1/0,i=r!==1/0?new Array(r):[],o,s=0,h=C4(t);;){if(s===r)return i;if(o=h.next(),o.done)return s!==n&&(i.length=s),i;i[s++]=o.value}};const r0=Li(L4);var M4=Qf,T4=n0,O4=function(){var t=arguments,n=null,r=-1;return new M4(function(){var o=null;do{if(n===null){if(r++,r>=t.length)return{done:!0};n=T4(t[r])}if(o=n.next(),o.done===!0){n=null;continue}break}while(!0);return o})};const hr=Li(O4);function k4(){const e=arguments[0];for(let t=1,n=arguments.length;te++}class Jf extends Error{constructor(t){super(),this.name="GraphError",this.message=t}}class xe extends Jf{constructor(t){super(t),this.name="InvalidArgumentsGraphError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,xe.prototype.constructor)}}class be extends Jf{constructor(t){super(t),this.name="NotFoundGraphError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,be.prototype.constructor)}}class Ie extends Jf{constructor(t){super(t),this.name="UsageGraphError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Ie.prototype.constructor)}}function o0(e,t){this.key=e,this.attributes=t,this.clear()}o0.prototype.clear=function(){this.inDegree=0,this.outDegree=0,this.undirectedDegree=0,this.undirectedLoops=0,this.directedLoops=0,this.in={},this.out={},this.undirected={}};function s0(e,t){this.key=e,this.attributes=t,this.clear()}s0.prototype.clear=function(){this.inDegree=0,this.outDegree=0,this.directedLoops=0,this.in={},this.out={}};function a0(e,t){this.key=e,this.attributes=t,this.clear()}a0.prototype.clear=function(){this.undirectedDegree=0,this.undirectedLoops=0,this.undirected={}};function Oo(e,t,n,r,i){this.key=t,this.attributes=i,this.undirected=e,this.source=n,this.target=r}Oo.prototype.attach=function(){let e="out",t="in";this.undirected&&(e=t="undirected");const n=this.source.key,r=this.target.key;this.source[e][r]=this,!(this.undirected&&n===r)&&(this.target[t][n]=this)};Oo.prototype.attachMulti=function(){let e="out",t="in";const n=this.source.key,r=this.target.key;this.undirected&&(e=t="undirected");const i=this.source[e],o=i[r];if(typeof o>"u"){i[r]=this,this.undirected&&n===r||(this.target[t][n]=this);return}o.previous=this,this.next=o,i[r]=this,this.target[t][n]=this};Oo.prototype.detach=function(){const e=this.source.key,t=this.target.key;let n="out",r="in";this.undirected&&(n=r="undirected"),delete this.source[n][t],delete this.target[r][e]};Oo.prototype.detachMulti=function(){const e=this.source.key,t=this.target.key;let n="out",r="in";this.undirected&&(n=r="undirected"),this.previous===void 0?this.next===void 0?(delete this.source[n][t],delete this.target[r][e]):(this.next.previous=void 0,this.source[n][t]=this.next,this.target[r][e]=this.next):(this.previous.next=this.next,this.next!==void 0&&(this.next.previous=this.previous))};const l0=0,c0=1,D4=2,u0=3;function vr(e,t,n,r,i,o,s){let h,l,u,a;if(r=""+r,n===l0){if(h=e._nodes.get(r),!h)throw new be(`Graph.${t}: could not find the "${r}" node in the graph.`);u=i,a=o}else if(n===u0){if(i=""+i,l=e._edges.get(i),!l)throw new be(`Graph.${t}: could not find the "${i}" edge in the graph.`);const c=l.source.key,f=l.target.key;if(r===c)h=l.target;else if(r===f)h=l.source;else throw new be(`Graph.${t}: the "${r}" node is not attached to the "${i}" edge (${c}, ${f}).`);u=o,a=s}else{if(l=e._edges.get(r),!l)throw new be(`Graph.${t}: could not find the "${r}" edge in the graph.`);n===c0?h=l.source:h=l.target,u=i,a=o}return[h,u,a]}function I4(e,t,n){e.prototype[t]=function(r,i,o){const[s,h]=vr(this,t,n,r,i,o);return s.attributes[h]}}function A4(e,t,n){e.prototype[t]=function(r,i){const[o]=vr(this,t,n,r,i);return o.attributes}}function P4(e,t,n){e.prototype[t]=function(r,i,o){const[s,h]=vr(this,t,n,r,i,o);return s.attributes.hasOwnProperty(h)}}function N4(e,t,n){e.prototype[t]=function(r,i,o,s){const[h,l,u]=vr(this,t,n,r,i,o,s);return h.attributes[l]=u,this.emit("nodeAttributesUpdated",{key:h.key,type:"set",attributes:h.attributes,name:l}),this}}function B4(e,t,n){e.prototype[t]=function(r,i,o,s){const[h,l,u]=vr(this,t,n,r,i,o,s);if(typeof u!="function")throw new xe(`Graph.${t}: updater should be a function.`);const a=h.attributes,c=u(a[l]);return a[l]=c,this.emit("nodeAttributesUpdated",{key:h.key,type:"set",attributes:h.attributes,name:l}),this}}function F4(e,t,n){e.prototype[t]=function(r,i,o){const[s,h]=vr(this,t,n,r,i,o);return delete s.attributes[h],this.emit("nodeAttributesUpdated",{key:s.key,type:"remove",attributes:s.attributes,name:h}),this}}function G4(e,t,n){e.prototype[t]=function(r,i,o){const[s,h]=vr(this,t,n,r,i,o);if(!Ft(h))throw new xe(`Graph.${t}: provided attributes are not a plain object.`);return s.attributes=h,this.emit("nodeAttributesUpdated",{key:s.key,type:"replace",attributes:s.attributes}),this}}function H4(e,t,n){e.prototype[t]=function(r,i,o){const[s,h]=vr(this,t,n,r,i,o);if(!Ft(h))throw new xe(`Graph.${t}: provided attributes are not a plain object.`);return It(s.attributes,h),this.emit("nodeAttributesUpdated",{key:s.key,type:"merge",attributes:s.attributes,data:h}),this}}function W4(e,t,n){e.prototype[t]=function(r,i,o){const[s,h]=vr(this,t,n,r,i,o);if(typeof h!="function")throw new xe(`Graph.${t}: provided updater is not a function.`);return s.attributes=h(s.attributes),this.emit("nodeAttributesUpdated",{key:s.key,type:"update",attributes:s.attributes}),this}}const z4=[{name:e=>`get${e}Attribute`,attacher:I4},{name:e=>`get${e}Attributes`,attacher:A4},{name:e=>`has${e}Attribute`,attacher:P4},{name:e=>`set${e}Attribute`,attacher:N4},{name:e=>`update${e}Attribute`,attacher:B4},{name:e=>`remove${e}Attribute`,attacher:F4},{name:e=>`replace${e}Attributes`,attacher:G4},{name:e=>`merge${e}Attributes`,attacher:H4},{name:e=>`update${e}Attributes`,attacher:W4}];function j4(e){z4.forEach(function({name:t,attacher:n}){n(e,t("Node"),l0),n(e,t("Source"),c0),n(e,t("Target"),D4),n(e,t("Opposite"),u0)})}function U4(e,t,n){e.prototype[t]=function(r,i){let o;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new Ie(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new Ie(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);const s=""+r,h=""+i;if(i=arguments[2],o=yn(this,s,h,n),!o)throw new be(`Graph.${t}: could not find an edge for the given path ("${s}" - "${h}").`)}else{if(n!=="mixed")throw new Ie(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,o=this._edges.get(r),!o)throw new be(`Graph.${t}: could not find the "${r}" edge in the graph.`)}return o.attributes[i]}}function K4(e,t,n){e.prototype[t]=function(r){let i;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new Ie(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>1){if(this.multi)throw new Ie(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);const o=""+r,s=""+arguments[1];if(i=yn(this,o,s,n),!i)throw new be(`Graph.${t}: could not find an edge for the given path ("${o}" - "${s}").`)}else{if(n!=="mixed")throw new Ie(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,i=this._edges.get(r),!i)throw new be(`Graph.${t}: could not find the "${r}" edge in the graph.`)}return i.attributes}}function V4(e,t,n){e.prototype[t]=function(r,i){let o;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new Ie(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new Ie(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);const s=""+r,h=""+i;if(i=arguments[2],o=yn(this,s,h,n),!o)throw new be(`Graph.${t}: could not find an edge for the given path ("${s}" - "${h}").`)}else{if(n!=="mixed")throw new Ie(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,o=this._edges.get(r),!o)throw new be(`Graph.${t}: could not find the "${r}" edge in the graph.`)}return o.attributes.hasOwnProperty(i)}}function X4(e,t,n){e.prototype[t]=function(r,i,o){let s;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new Ie(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>3){if(this.multi)throw new Ie(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);const h=""+r,l=""+i;if(i=arguments[2],o=arguments[3],s=yn(this,h,l,n),!s)throw new be(`Graph.${t}: could not find an edge for the given path ("${h}" - "${l}").`)}else{if(n!=="mixed")throw new Ie(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,s=this._edges.get(r),!s)throw new be(`Graph.${t}: could not find the "${r}" edge in the graph.`)}return s.attributes[i]=o,this.emit("edgeAttributesUpdated",{key:s.key,type:"set",attributes:s.attributes,name:i}),this}}function Y4(e,t,n){e.prototype[t]=function(r,i,o){let s;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new Ie(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>3){if(this.multi)throw new Ie(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);const h=""+r,l=""+i;if(i=arguments[2],o=arguments[3],s=yn(this,h,l,n),!s)throw new be(`Graph.${t}: could not find an edge for the given path ("${h}" - "${l}").`)}else{if(n!=="mixed")throw new Ie(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,s=this._edges.get(r),!s)throw new be(`Graph.${t}: could not find the "${r}" edge in the graph.`)}if(typeof o!="function")throw new xe(`Graph.${t}: updater should be a function.`);return s.attributes[i]=o(s.attributes[i]),this.emit("edgeAttributesUpdated",{key:s.key,type:"set",attributes:s.attributes,name:i}),this}}function Q4(e,t,n){e.prototype[t]=function(r,i){let o;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new Ie(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new Ie(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);const s=""+r,h=""+i;if(i=arguments[2],o=yn(this,s,h,n),!o)throw new be(`Graph.${t}: could not find an edge for the given path ("${s}" - "${h}").`)}else{if(n!=="mixed")throw new Ie(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,o=this._edges.get(r),!o)throw new be(`Graph.${t}: could not find the "${r}" edge in the graph.`)}return delete o.attributes[i],this.emit("edgeAttributesUpdated",{key:o.key,type:"remove",attributes:o.attributes,name:i}),this}}function q4(e,t,n){e.prototype[t]=function(r,i){let o;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new Ie(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new Ie(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);const s=""+r,h=""+i;if(i=arguments[2],o=yn(this,s,h,n),!o)throw new be(`Graph.${t}: could not find an edge for the given path ("${s}" - "${h}").`)}else{if(n!=="mixed")throw new Ie(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,o=this._edges.get(r),!o)throw new be(`Graph.${t}: could not find the "${r}" edge in the graph.`)}if(!Ft(i))throw new xe(`Graph.${t}: provided attributes are not a plain object.`);return o.attributes=i,this.emit("edgeAttributesUpdated",{key:o.key,type:"replace",attributes:o.attributes}),this}}function J4(e,t,n){e.prototype[t]=function(r,i){let o;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new Ie(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new Ie(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);const s=""+r,h=""+i;if(i=arguments[2],o=yn(this,s,h,n),!o)throw new be(`Graph.${t}: could not find an edge for the given path ("${s}" - "${h}").`)}else{if(n!=="mixed")throw new Ie(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,o=this._edges.get(r),!o)throw new be(`Graph.${t}: could not find the "${r}" edge in the graph.`)}if(!Ft(i))throw new xe(`Graph.${t}: provided attributes are not a plain object.`);return It(o.attributes,i),this.emit("edgeAttributesUpdated",{key:o.key,type:"merge",attributes:o.attributes,data:i}),this}}function Z4(e,t,n){e.prototype[t]=function(r,i){let o;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new Ie(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new Ie(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);const s=""+r,h=""+i;if(i=arguments[2],o=yn(this,s,h,n),!o)throw new be(`Graph.${t}: could not find an edge for the given path ("${s}" - "${h}").`)}else{if(n!=="mixed")throw new Ie(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,o=this._edges.get(r),!o)throw new be(`Graph.${t}: could not find the "${r}" edge in the graph.`)}if(typeof i!="function")throw new xe(`Graph.${t}: provided updater is not a function.`);return o.attributes=i(o.attributes),this.emit("edgeAttributesUpdated",{key:o.key,type:"update",attributes:o.attributes}),this}}const ej=[{name:e=>`get${e}Attribute`,attacher:U4},{name:e=>`get${e}Attributes`,attacher:K4},{name:e=>`has${e}Attribute`,attacher:V4},{name:e=>`set${e}Attribute`,attacher:X4},{name:e=>`update${e}Attribute`,attacher:Y4},{name:e=>`remove${e}Attribute`,attacher:Q4},{name:e=>`replace${e}Attributes`,attacher:q4},{name:e=>`merge${e}Attributes`,attacher:J4},{name:e=>`update${e}Attributes`,attacher:Z4}];function tj(e){ej.forEach(function({name:t,attacher:n}){n(e,t("Edge"),"mixed"),n(e,t("DirectedEdge"),"directed"),n(e,t("UndirectedEdge"),"undirected")})}const nj=[{name:"edges",type:"mixed"},{name:"inEdges",type:"directed",direction:"in"},{name:"outEdges",type:"directed",direction:"out"},{name:"inboundEdges",type:"mixed",direction:"in"},{name:"outboundEdges",type:"mixed",direction:"out"},{name:"directedEdges",type:"directed"},{name:"undirectedEdges",type:"undirected"}];function rj(e,t,n,r){let i=!1;for(const o in t){if(o===r)continue;const s=t[o];if(i=n(s.key,s.attributes,s.source.key,s.target.key,s.source.attributes,s.target.attributes,s.undirected),e&&i)return s.key}}function ij(e,t,n,r){let i,o,s,h=!1;for(const l in t)if(l!==r){i=t[l];do{if(o=i.source,s=i.target,h=n(i.key,i.attributes,o.key,s.key,o.attributes,s.attributes,i.undirected),e&&h)return i.key;i=i.next}while(i!==void 0)}}function gu(e,t){const n=Object.keys(e),r=n.length;let i,o=0;return new bn(function(){do if(i)i=i.next;else{if(o>=r)return{done:!0};const h=n[o++];if(h===t){i=void 0;continue}i=e[h]}while(!i);return{done:!1,value:{edge:i.key,attributes:i.attributes,source:i.source.key,target:i.target.key,sourceAttributes:i.source.attributes,targetAttributes:i.target.attributes,undirected:i.undirected}}})}function oj(e,t,n,r){const i=t[n];if(!i)return;const o=i.source,s=i.target;if(r(i.key,i.attributes,o.key,s.key,o.attributes,s.attributes,i.undirected)&&e)return i.key}function sj(e,t,n,r){let i=t[n];if(!i)return;let o=!1;do{if(o=r(i.key,i.attributes,i.source.key,i.target.key,i.source.attributes,i.target.attributes,i.undirected),e&&o)return i.key;i=i.next}while(i!==void 0)}function mu(e,t){let n=e[t];return n.next!==void 0?new bn(function(){if(!n)return{done:!0};const r={edge:n.key,attributes:n.attributes,source:n.source.key,target:n.target.key,sourceAttributes:n.source.attributes,targetAttributes:n.target.attributes,undirected:n.undirected};return n=n.next,{done:!1,value:r}}):bn.of({edge:n.key,attributes:n.attributes,source:n.source.key,target:n.target.key,sourceAttributes:n.source.attributes,targetAttributes:n.target.attributes,undirected:n.undirected})}function aj(e,t){if(e.size===0)return[];if(t==="mixed"||t===e.type)return typeof Array.from=="function"?Array.from(e._edges.keys()):r0(e._edges.keys(),e._edges.size);const n=t==="undirected"?e.undirectedSize:e.directedSize,r=new Array(n),i=t==="undirected",o=e._edges.values();let s=0,h,l;for(;h=o.next(),h.done!==!0;)l=h.value,l.undirected===i&&(r[s++]=l.key);return r}function h0(e,t,n,r){if(t.size===0)return;const i=n!=="mixed"&&n!==t.type,o=n==="undirected";let s,h,l=!1;const u=t._edges.values();for(;s=u.next(),s.done!==!0;){if(h=s.value,i&&h.undirected!==o)continue;const{key:a,attributes:c,source:f,target:d}=h;if(l=r(a,c,f.key,d.key,f.attributes,d.attributes,h.undirected),e&&l)return a}}function lj(e,t){if(e.size===0)return bn.empty();const n=t!=="mixed"&&t!==e.type,r=t==="undirected",i=e._edges.values();return new bn(function(){let s,h;for(;;){if(s=i.next(),s.done)return s;if(h=s.value,!(n&&h.undirected!==r))break}return{value:{edge:h.key,attributes:h.attributes,source:h.source.key,target:h.target.key,sourceAttributes:h.source.attributes,targetAttributes:h.target.attributes,undirected:h.undirected},done:!1}})}function Zf(e,t,n,r,i,o){const s=t?ij:rj;let h;if(n!=="undirected"&&(r!=="out"&&(h=s(e,i.in,o),e&&h)||r!=="in"&&(h=s(e,i.out,o,r?void 0:i.key),e&&h))||n!=="directed"&&(h=s(e,i.undirected,o),e&&h))return h}function cj(e,t,n,r){const i=[];return Zf(!1,e,t,n,r,function(o){i.push(o)}),i}function uj(e,t,n){let r=bn.empty();return e!=="undirected"&&(t!=="out"&&typeof n.in<"u"&&(r=hr(r,gu(n.in))),t!=="in"&&typeof n.out<"u"&&(r=hr(r,gu(n.out,t?void 0:n.key)))),e!=="directed"&&typeof n.undirected<"u"&&(r=hr(r,gu(n.undirected))),r}function ed(e,t,n,r,i,o,s){const h=n?sj:oj;let l;if(t!=="undirected"&&(typeof i.in<"u"&&r!=="out"&&(l=h(e,i.in,o,s),e&&l)||typeof i.out<"u"&&r!=="in"&&(r||i.key!==o)&&(l=h(e,i.out,o,s),e&&l))||t!=="directed"&&typeof i.undirected<"u"&&(l=h(e,i.undirected,o,s),e&&l))return l}function hj(e,t,n,r,i){const o=[];return ed(!1,e,t,n,r,i,function(s){o.push(s)}),o}function fj(e,t,n,r){let i=bn.empty();return e!=="undirected"&&(typeof n.in<"u"&&t!=="out"&&r in n.in&&(i=hr(i,mu(n.in,r))),typeof n.out<"u"&&t!=="in"&&r in n.out&&(t||n.key!==r)&&(i=hr(i,mu(n.out,r)))),e!=="directed"&&typeof n.undirected<"u"&&r in n.undirected&&(i=hr(i,mu(n.undirected,r))),i}function dj(e,t){const{name:n,type:r,direction:i}=t;e.prototype[n]=function(o,s){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return[];if(!arguments.length)return aj(this,r);if(arguments.length===1){o=""+o;const h=this._nodes.get(o);if(typeof h>"u")throw new be(`Graph.${n}: could not find the "${o}" node in the graph.`);return cj(this.multi,r==="mixed"?this.type:r,i,h)}if(arguments.length===2){o=""+o,s=""+s;const h=this._nodes.get(o);if(!h)throw new be(`Graph.${n}: could not find the "${o}" source node in the graph.`);if(!this._nodes.has(s))throw new be(`Graph.${n}: could not find the "${s}" target node in the graph.`);return hj(r,this.multi,i,h,s)}throw new xe(`Graph.${n}: too many arguments (expecting 0, 1 or 2 and got ${arguments.length}).`)}}function pj(e,t){const{name:n,type:r,direction:i}=t,o="forEach"+n[0].toUpperCase()+n.slice(1,-1);e.prototype[o]=function(u,a,c){if(!(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)){if(arguments.length===1)return c=u,h0(!1,this,r,c);if(arguments.length===2){u=""+u,c=a;const f=this._nodes.get(u);if(typeof f>"u")throw new be(`Graph.${o}: could not find the "${u}" node in the graph.`);return Zf(!1,this.multi,r==="mixed"?this.type:r,i,f,c)}if(arguments.length===3){u=""+u,a=""+a;const f=this._nodes.get(u);if(!f)throw new be(`Graph.${o}: could not find the "${u}" source node in the graph.`);if(!this._nodes.has(a))throw new be(`Graph.${o}: could not find the "${a}" target node in the graph.`);return ed(!1,r,this.multi,i,f,a,c)}throw new xe(`Graph.${o}: too many arguments (expecting 1, 2 or 3 and got ${arguments.length}).`)}};const s="map"+n[0].toUpperCase()+n.slice(1);e.prototype[s]=function(){const u=Array.prototype.slice.call(arguments),a=u.pop();let c;if(u.length===0){let f=0;r!=="directed"&&(f+=this.undirectedSize),r!=="undirected"&&(f+=this.directedSize),c=new Array(f);let d=0;u.push((p,g,m,v,y,x,$)=>{c[d++]=a(p,g,m,v,y,x,$)})}else c=[],u.push((f,d,p,g,m,v,y)=>{c.push(a(f,d,p,g,m,v,y))});return this[o].apply(this,u),c};const h="filter"+n[0].toUpperCase()+n.slice(1);e.prototype[h]=function(){const u=Array.prototype.slice.call(arguments),a=u.pop(),c=[];return u.push((f,d,p,g,m,v,y)=>{a(f,d,p,g,m,v,y)&&c.push(f)}),this[o].apply(this,u),c};const l="reduce"+n[0].toUpperCase()+n.slice(1);e.prototype[l]=function(){let u=Array.prototype.slice.call(arguments);if(u.length<2||u.length>4)throw new xe(`Graph.${l}: invalid number of arguments (expecting 2, 3 or 4 and got ${u.length}).`);if(typeof u[u.length-1]=="function"&&typeof u[u.length-2]!="function")throw new xe(`Graph.${l}: missing initial value. You must provide it because the callback takes more than one argument and we cannot infer the initial value from the first iteration, as you could with a simple array.`);let a,c;u.length===2?(a=u[0],c=u[1],u=[]):u.length===3?(a=u[1],c=u[2],u=[u[0]]):u.length===4&&(a=u[2],c=u[3],u=[u[0],u[1]]);let f=c;return u.push((d,p,g,m,v,y,x)=>{f=a(f,d,p,g,m,v,y,x)}),this[o].apply(this,u),f}}function gj(e,t){const{name:n,type:r,direction:i}=t,o="find"+n[0].toUpperCase()+n.slice(1,-1);e.prototype[o]=function(l,u,a){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return!1;if(arguments.length===1)return a=l,h0(!0,this,r,a);if(arguments.length===2){l=""+l,a=u;const c=this._nodes.get(l);if(typeof c>"u")throw new be(`Graph.${o}: could not find the "${l}" node in the graph.`);return Zf(!0,this.multi,r==="mixed"?this.type:r,i,c,a)}if(arguments.length===3){l=""+l,u=""+u;const c=this._nodes.get(l);if(!c)throw new be(`Graph.${o}: could not find the "${l}" source node in the graph.`);if(!this._nodes.has(u))throw new be(`Graph.${o}: could not find the "${u}" target node in the graph.`);return ed(!0,r,this.multi,i,c,u,a)}throw new xe(`Graph.${o}: too many arguments (expecting 1, 2 or 3 and got ${arguments.length}).`)};const s="some"+n[0].toUpperCase()+n.slice(1,-1);e.prototype[s]=function(){const l=Array.prototype.slice.call(arguments),u=l.pop();return l.push((c,f,d,p,g,m,v)=>u(c,f,d,p,g,m,v)),!!this[o].apply(this,l)};const h="every"+n[0].toUpperCase()+n.slice(1,-1);e.prototype[h]=function(){const l=Array.prototype.slice.call(arguments),u=l.pop();return l.push((c,f,d,p,g,m,v)=>!u(c,f,d,p,g,m,v)),!this[o].apply(this,l)}}function mj(e,t){const{name:n,type:r,direction:i}=t,o=n.slice(0,-1)+"Entries";e.prototype[o]=function(s,h){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return bn.empty();if(!arguments.length)return lj(this,r);if(arguments.length===1){s=""+s;const l=this._nodes.get(s);if(!l)throw new be(`Graph.${o}: could not find the "${s}" node in the graph.`);return uj(r,i,l)}if(arguments.length===2){s=""+s,h=""+h;const l=this._nodes.get(s);if(!l)throw new be(`Graph.${o}: could not find the "${s}" source node in the graph.`);if(!this._nodes.has(h))throw new be(`Graph.${o}: could not find the "${h}" target node in the graph.`);return fj(r,i,l,h)}throw new xe(`Graph.${o}: too many arguments (expecting 0, 1 or 2 and got ${arguments.length}).`)}}function vj(e){nj.forEach(t=>{dj(e,t),pj(e,t),gj(e,t),mj(e,t)})}const yj=[{name:"neighbors",type:"mixed"},{name:"inNeighbors",type:"directed",direction:"in"},{name:"outNeighbors",type:"directed",direction:"out"},{name:"inboundNeighbors",type:"mixed",direction:"in"},{name:"outboundNeighbors",type:"mixed",direction:"out"},{name:"directedNeighbors",type:"directed"},{name:"undirectedNeighbors",type:"undirected"}];function xc(){this.A=null,this.B=null}xc.prototype.wrap=function(e){this.A===null?this.A=e:this.B===null&&(this.B=e)};xc.prototype.has=function(e){return this.A!==null&&e in this.A||this.B!==null&&e in this.B};function qo(e,t,n,r,i){for(const o in r){const s=r[o],h=s.source,l=s.target,u=h===n?l:h;if(t&&t.has(u.key))continue;const a=i(u.key,u.attributes);if(e&&a)return u.key}}function td(e,t,n,r,i){if(t!=="mixed"){if(t==="undirected")return qo(e,null,r,r.undirected,i);if(typeof n=="string")return qo(e,null,r,r[n],i)}const o=new xc;let s;if(t!=="undirected"){if(n!=="out"){if(s=qo(e,null,r,r.in,i),e&&s)return s;o.wrap(r.in)}if(n!=="in"){if(s=qo(e,o,r,r.out,i),e&&s)return s;o.wrap(r.out)}}if(t!=="directed"&&(s=qo(e,o,r,r.undirected,i),e&&s))return s}function wj(e,t,n){if(e!=="mixed"){if(e==="undirected")return Object.keys(n.undirected);if(typeof t=="string")return Object.keys(n[t])}const r=[];return td(!1,e,t,n,function(i){r.push(i)}),r}function Jo(e,t,n){const r=Object.keys(n),i=r.length;let o=0;return new bn(function(){let h=null;do{if(o>=i)return e&&e.wrap(n),{done:!0};const l=n[r[o++]],u=l.source,a=l.target;if(h=u===t?a:u,e&&e.has(h.key)){h=null;continue}}while(h===null);return{done:!1,value:{neighbor:h.key,attributes:h.attributes}}})}function bj(e,t,n){if(e!=="mixed"){if(e==="undirected")return Jo(null,n,n.undirected);if(typeof t=="string")return Jo(null,n,n[t])}let r=bn.empty();const i=new xc;return e!=="undirected"&&(t!=="out"&&(r=hr(r,Jo(i,n,n.in))),t!=="in"&&(r=hr(r,Jo(i,n,n.out)))),e!=="directed"&&(r=hr(r,Jo(i,n,n.undirected))),r}function _j(e,t){const{name:n,type:r,direction:i}=t;e.prototype[n]=function(o){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return[];o=""+o;const s=this._nodes.get(o);if(typeof s>"u")throw new be(`Graph.${n}: could not find the "${o}" node in the graph.`);return wj(r==="mixed"?this.type:r,i,s)}}function Ej(e,t){const{name:n,type:r,direction:i}=t,o="forEach"+n[0].toUpperCase()+n.slice(1,-1);e.prototype[o]=function(u,a){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return;u=""+u;const c=this._nodes.get(u);if(typeof c>"u")throw new be(`Graph.${o}: could not find the "${u}" node in the graph.`);td(!1,r==="mixed"?this.type:r,i,c,a)};const s="map"+n[0].toUpperCase()+n.slice(1);e.prototype[s]=function(u,a){const c=[];return this[o](u,(f,d)=>{c.push(a(f,d))}),c};const h="filter"+n[0].toUpperCase()+n.slice(1);e.prototype[h]=function(u,a){const c=[];return this[o](u,(f,d)=>{a(f,d)&&c.push(f)}),c};const l="reduce"+n[0].toUpperCase()+n.slice(1);e.prototype[l]=function(u,a,c){if(arguments.length<3)throw new xe(`Graph.${l}: missing initial value. You must provide it because the callback takes more than one argument and we cannot infer the initial value from the first iteration, as you could with a simple array.`);let f=c;return this[o](u,(d,p)=>{f=a(f,d,p)}),f}}function $j(e,t){const{name:n,type:r,direction:i}=t,o=n[0].toUpperCase()+n.slice(1,-1),s="find"+o;e.prototype[s]=function(u,a){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return;u=""+u;const c=this._nodes.get(u);if(typeof c>"u")throw new be(`Graph.${s}: could not find the "${u}" node in the graph.`);return td(!0,r==="mixed"?this.type:r,i,c,a)};const h="some"+o;e.prototype[h]=function(u,a){return!!this[s](u,a)};const l="every"+o;e.prototype[l]=function(u,a){return!this[s](u,(f,d)=>!a(f,d))}}function xj(e,t){const{name:n,type:r,direction:i}=t,o=n.slice(0,-1)+"Entries";e.prototype[o]=function(s){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return bn.empty();s=""+s;const h=this._nodes.get(s);if(typeof h>"u")throw new be(`Graph.${o}: could not find the "${s}" node in the graph.`);return bj(r==="mixed"?this.type:r,i,h)}}function Sj(e){yj.forEach(t=>{_j(e,t),Ej(e,t),$j(e,t),xj(e,t)})}function xa(e,t,n,r,i){const o=r._nodes.values(),s=r.type;let h,l,u,a,c,f,d;for(;h=o.next(),h.done!==!0;){let p=!1;if(l=h.value,s!=="undirected"){a=l.out;for(u in a){c=a[u];do{if(f=c.target,p=!0,d=i(l.key,f.key,l.attributes,f.attributes,c.key,c.attributes,c.undirected),e&&d)return c;c=c.next}while(c)}}if(s!=="directed"){a=l.undirected;for(u in a)if(!(t&&l.key>u)){c=a[u];do{if(f=c.target,f.key!==u&&(f=c.source),p=!0,d=i(l.key,f.key,l.attributes,f.attributes,c.key,c.attributes,c.undirected),e&&d)return c;c=c.next}while(c)}}if(n&&!p&&(d=i(l.key,null,l.attributes,null,null,null,null),e&&d))return null}}function Cj(e,t){const n={key:e};return i0(t.attributes)||(n.attributes=It({},t.attributes)),n}function Lj(e,t,n){const r={key:t,source:n.source.key,target:n.target.key};return i0(n.attributes)||(r.attributes=It({},n.attributes)),e==="mixed"&&n.undirected&&(r.undirected=!0),r}function Mj(e){if(!Ft(e))throw new xe('Graph.import: invalid serialized node. A serialized node should be a plain object with at least a "key" property.');if(!("key"in e))throw new xe("Graph.import: serialized node is missing its key.");if("attributes"in e&&(!Ft(e.attributes)||e.attributes===null))throw new xe("Graph.import: invalid attributes. Attributes should be a plain object, null or omitted.")}function Tj(e){if(!Ft(e))throw new xe('Graph.import: invalid serialized edge. A serialized edge should be a plain object with at least a "source" & "target" property.');if(!("source"in e))throw new xe("Graph.import: serialized edge is missing its source.");if(!("target"in e))throw new xe("Graph.import: serialized edge is missing its target.");if("attributes"in e&&(!Ft(e.attributes)||e.attributes===null))throw new xe("Graph.import: invalid attributes. Attributes should be a plain object, null or omitted.");if("undirected"in e&&typeof e.undirected!="boolean")throw new xe("Graph.import: invalid undirectedness information. Undirected should be boolean or omitted.")}const Oj=R4(),kj=new Set(["directed","undirected","mixed"]),xm=new Set(["domain","_events","_eventsCount","_maxListeners"]),Rj=[{name:e=>`${e}Edge`,generateKey:!0},{name:e=>`${e}DirectedEdge`,generateKey:!0,type:"directed"},{name:e=>`${e}UndirectedEdge`,generateKey:!0,type:"undirected"},{name:e=>`${e}EdgeWithKey`},{name:e=>`${e}DirectedEdgeWithKey`,type:"directed"},{name:e=>`${e}UndirectedEdgeWithKey`,type:"undirected"}],Dj={allowSelfLoops:!0,multi:!1,type:"mixed"};function Ij(e,t,n){if(n&&!Ft(n))throw new xe(`Graph.addNode: invalid attributes. Expecting an object but got "${n}"`);if(t=""+t,n=n||{},e._nodes.has(t))throw new Ie(`Graph.addNode: the "${t}" node already exist in the graph.`);const r=new e.NodeDataClass(t,n);return e._nodes.set(t,r),e.emit("nodeAdded",{key:t,attributes:n}),r}function Sm(e,t,n){const r=new e.NodeDataClass(t,n);return e._nodes.set(t,r),e.emit("nodeAdded",{key:t,attributes:n}),r}function f0(e,t,n,r,i,o,s,h){if(!r&&e.type==="undirected")throw new Ie(`Graph.${t}: you cannot add a directed edge to an undirected graph. Use the #.addEdge or #.addUndirectedEdge instead.`);if(r&&e.type==="directed")throw new Ie(`Graph.${t}: you cannot add an undirected edge to a directed graph. Use the #.addEdge or #.addDirectedEdge instead.`);if(h&&!Ft(h))throw new xe(`Graph.${t}: invalid attributes. Expecting an object but got "${h}"`);if(o=""+o,s=""+s,h=h||{},!e.allowSelfLoops&&o===s)throw new Ie(`Graph.${t}: source & target are the same ("${o}"), thus creating a loop explicitly forbidden by this graph 'allowSelfLoops' option set to false.`);const l=e._nodes.get(o),u=e._nodes.get(s);if(!l)throw new be(`Graph.${t}: source node "${o}" not found.`);if(!u)throw new be(`Graph.${t}: target node "${s}" not found.`);const a={key:null,undirected:r,source:o,target:s,attributes:h};if(n)i=e._edgeKeyGenerator();else if(i=""+i,e._edges.has(i))throw new Ie(`Graph.${t}: the "${i}" edge already exists in the graph.`);if(!e.multi&&(r?typeof l.undirected[s]<"u":typeof l.out[s]<"u"))throw new Ie(`Graph.${t}: an edge linking "${o}" to "${s}" already exists. If you really want to add multiple edges linking those nodes, you should create a multi graph by using the 'multi' option.`);const c=new Oo(r,i,l,u,h);e._edges.set(i,c);const f=o===s;return r?(l.undirectedDegree++,u.undirectedDegree++,f&&(l.undirectedLoops++,e._undirectedSelfLoopCount++)):(l.outDegree++,u.inDegree++,f&&(l.directedLoops++,e._directedSelfLoopCount++)),e.multi?c.attachMulti():c.attach(),r?e._undirectedSize++:e._directedSize++,a.key=i,e.emit("edgeAdded",a),i}function Aj(e,t,n,r,i,o,s,h,l){if(!r&&e.type==="undirected")throw new Ie(`Graph.${t}: you cannot merge/update a directed edge to an undirected graph. Use the #.mergeEdge/#.updateEdge or #.addUndirectedEdge instead.`);if(r&&e.type==="directed")throw new Ie(`Graph.${t}: you cannot merge/update an undirected edge to a directed graph. Use the #.mergeEdge/#.updateEdge or #.addDirectedEdge instead.`);if(h){if(l){if(typeof h!="function")throw new xe(`Graph.${t}: invalid updater function. Expecting a function but got "${h}"`)}else if(!Ft(h))throw new xe(`Graph.${t}: invalid attributes. Expecting an object but got "${h}"`)}o=""+o,s=""+s;let u;if(l&&(u=h,h=void 0),!e.allowSelfLoops&&o===s)throw new Ie(`Graph.${t}: source & target are the same ("${o}"), thus creating a loop explicitly forbidden by this graph 'allowSelfLoops' option set to false.`);let a=e._nodes.get(o),c=e._nodes.get(s),f,d;if(!n&&(f=e._edges.get(i),f)){if((f.source.key!==o||f.target.key!==s)&&(!r||f.source.key!==s||f.target.key!==o))throw new Ie(`Graph.${t}: inconsistency detected when attempting to merge the "${i}" edge with "${o}" source & "${s}" target vs. ("${f.source.key}", "${f.target.key}").`);d=f}if(!d&&!e.multi&&a&&(d=r?a.undirected[s]:a.out[s]),d){const y=[d.key,!1,!1,!1];if(l?!u:!h)return y;if(l){const x=d.attributes;d.attributes=u(x),e.emit("edgeAttributesUpdated",{type:"replace",key:d.key,attributes:d.attributes})}else It(d.attributes,h),e.emit("edgeAttributesUpdated",{type:"merge",key:d.key,attributes:d.attributes,data:h});return y}h=h||{},l&&u&&(h=u(h));const p={key:null,undirected:r,source:o,target:s,attributes:h};if(n)i=e._edgeKeyGenerator();else if(i=""+i,e._edges.has(i))throw new Ie(`Graph.${t}: the "${i}" edge already exists in the graph.`);let g=!1,m=!1;a||(a=Sm(e,o,{}),g=!0,o===s&&(c=a,m=!0)),c||(c=Sm(e,s,{}),m=!0),f=new Oo(r,i,a,c,h),e._edges.set(i,f);const v=o===s;return r?(a.undirectedDegree++,c.undirectedDegree++,v&&(a.undirectedLoops++,e._undirectedSelfLoopCount++)):(a.outDegree++,c.inDegree++,v&&(a.directedLoops++,e._directedSelfLoopCount++)),e.multi?f.attachMulti():f.attach(),r?e._undirectedSize++:e._directedSize++,p.key=i,e.emit("edgeAdded",p),[i,!0,g,m]}function Fi(e,t){e._edges.delete(t.key);const{source:n,target:r,attributes:i}=t,o=t.undirected,s=n===r;o?(n.undirectedDegree--,r.undirectedDegree--,s&&(n.undirectedLoops--,e._undirectedSelfLoopCount--)):(n.outDegree--,r.inDegree--,s&&(n.directedLoops--,e._directedSelfLoopCount--)),e.multi?t.detachMulti():t.detach(),o?e._undirectedSize--:e._directedSize--,e.emit("edgeDropped",{key:t.key,attributes:i,source:n.key,target:r.key,undirected:o})}class at extends _4.EventEmitter{constructor(t){if(super(),t=It({},Dj,t),typeof t.multi!="boolean")throw new xe(`Graph.constructor: invalid 'multi' option. Expecting a boolean but got "${t.multi}".`);if(!kj.has(t.type))throw new xe(`Graph.constructor: invalid 'type' option. Should be one of "mixed", "directed" or "undirected" but got "${t.type}".`);if(typeof t.allowSelfLoops!="boolean")throw new xe(`Graph.constructor: invalid 'allowSelfLoops' option. Expecting a boolean but got "${t.allowSelfLoops}".`);const n=t.type==="mixed"?o0:t.type==="directed"?s0:a0;dn(this,"NodeDataClass",n);const r="geid_"+Oj()+"_";let i=0;const o=()=>{let s;do s=r+i++;while(this._edges.has(s));return s};dn(this,"_attributes",{}),dn(this,"_nodes",new Map),dn(this,"_edges",new Map),dn(this,"_directedSize",0),dn(this,"_undirectedSize",0),dn(this,"_directedSelfLoopCount",0),dn(this,"_undirectedSelfLoopCount",0),dn(this,"_edgeKeyGenerator",o),dn(this,"_options",t),xm.forEach(s=>dn(this,s,this[s])),xn(this,"order",()=>this._nodes.size),xn(this,"size",()=>this._edges.size),xn(this,"directedSize",()=>this._directedSize),xn(this,"undirectedSize",()=>this._undirectedSize),xn(this,"selfLoopCount",()=>this._directedSelfLoopCount+this._undirectedSelfLoopCount),xn(this,"directedSelfLoopCount",()=>this._directedSelfLoopCount),xn(this,"undirectedSelfLoopCount",()=>this._undirectedSelfLoopCount),xn(this,"multi",this._options.multi),xn(this,"type",this._options.type),xn(this,"allowSelfLoops",this._options.allowSelfLoops),xn(this,"implementation",()=>"graphology")}_resetInstanceCounters(){this._directedSize=0,this._undirectedSize=0,this._directedSelfLoopCount=0,this._undirectedSelfLoopCount=0}hasNode(t){return this._nodes.has(""+t)}hasDirectedEdge(t,n){if(this.type==="undirected")return!1;if(arguments.length===1){const r=""+t,i=this._edges.get(r);return!!i&&!i.undirected}else if(arguments.length===2){t=""+t,n=""+n;const r=this._nodes.get(t);return r?r.out.hasOwnProperty(n):!1}throw new xe(`Graph.hasDirectedEdge: invalid arity (${arguments.length}, instead of 1 or 2). You can either ask for an edge id or for the existence of an edge between a source & a target.`)}hasUndirectedEdge(t,n){if(this.type==="directed")return!1;if(arguments.length===1){const r=""+t,i=this._edges.get(r);return!!i&&i.undirected}else if(arguments.length===2){t=""+t,n=""+n;const r=this._nodes.get(t);return r?r.undirected.hasOwnProperty(n):!1}throw new xe(`Graph.hasDirectedEdge: invalid arity (${arguments.length}, instead of 1 or 2). You can either ask for an edge id or for the existence of an edge between a source & a target.`)}hasEdge(t,n){if(arguments.length===1){const r=""+t;return this._edges.has(r)}else if(arguments.length===2){t=""+t,n=""+n;const r=this._nodes.get(t);return r?typeof r.out<"u"&&r.out.hasOwnProperty(n)||typeof r.undirected<"u"&&r.undirected.hasOwnProperty(n):!1}throw new xe(`Graph.hasEdge: invalid arity (${arguments.length}, instead of 1 or 2). You can either ask for an edge id or for the existence of an edge between a source & a target.`)}directedEdge(t,n){if(this.type==="undirected")return;if(t=""+t,n=""+n,this.multi)throw new Ie("Graph.directedEdge: this method is irrelevant with multigraphs since there might be multiple edges between source & target. See #.directedEdges instead.");const r=this._nodes.get(t);if(!r)throw new be(`Graph.directedEdge: could not find the "${t}" source node in the graph.`);if(!this._nodes.has(n))throw new be(`Graph.directedEdge: could not find the "${n}" target node in the graph.`);const i=r.out&&r.out[n]||void 0;if(i)return i.key}undirectedEdge(t,n){if(this.type==="directed")return;if(t=""+t,n=""+n,this.multi)throw new Ie("Graph.undirectedEdge: this method is irrelevant with multigraphs since there might be multiple edges between source & target. See #.undirectedEdges instead.");const r=this._nodes.get(t);if(!r)throw new be(`Graph.undirectedEdge: could not find the "${t}" source node in the graph.`);if(!this._nodes.has(n))throw new be(`Graph.undirectedEdge: could not find the "${n}" target node in the graph.`);const i=r.undirected&&r.undirected[n]||void 0;if(i)return i.key}edge(t,n){if(this.multi)throw new Ie("Graph.edge: this method is irrelevant with multigraphs since there might be multiple edges between source & target. See #.edges instead.");t=""+t,n=""+n;const r=this._nodes.get(t);if(!r)throw new be(`Graph.edge: could not find the "${t}" source node in the graph.`);if(!this._nodes.has(n))throw new be(`Graph.edge: could not find the "${n}" target node in the graph.`);const i=r.out&&r.out[n]||r.undirected&&r.undirected[n]||void 0;if(i)return i.key}areDirectedNeighbors(t,n){t=""+t,n=""+n;const r=this._nodes.get(t);if(!r)throw new be(`Graph.areDirectedNeighbors: could not find the "${t}" node in the graph.`);return this.type==="undirected"?!1:n in r.in||n in r.out}areOutNeighbors(t,n){t=""+t,n=""+n;const r=this._nodes.get(t);if(!r)throw new be(`Graph.areOutNeighbors: could not find the "${t}" node in the graph.`);return this.type==="undirected"?!1:n in r.out}areInNeighbors(t,n){t=""+t,n=""+n;const r=this._nodes.get(t);if(!r)throw new be(`Graph.areInNeighbors: could not find the "${t}" node in the graph.`);return this.type==="undirected"?!1:n in r.in}areUndirectedNeighbors(t,n){t=""+t,n=""+n;const r=this._nodes.get(t);if(!r)throw new be(`Graph.areUndirectedNeighbors: could not find the "${t}" node in the graph.`);return this.type==="directed"?!1:n in r.undirected}areNeighbors(t,n){t=""+t,n=""+n;const r=this._nodes.get(t);if(!r)throw new be(`Graph.areNeighbors: could not find the "${t}" node in the graph.`);return this.type!=="undirected"&&(n in r.in||n in r.out)||this.type!=="directed"&&n in r.undirected}areInboundNeighbors(t,n){t=""+t,n=""+n;const r=this._nodes.get(t);if(!r)throw new be(`Graph.areInboundNeighbors: could not find the "${t}" node in the graph.`);return this.type!=="undirected"&&n in r.in||this.type!=="directed"&&n in r.undirected}areOutboundNeighbors(t,n){t=""+t,n=""+n;const r=this._nodes.get(t);if(!r)throw new be(`Graph.areOutboundNeighbors: could not find the "${t}" node in the graph.`);return this.type!=="undirected"&&n in r.out||this.type!=="directed"&&n in r.undirected}inDegree(t){t=""+t;const n=this._nodes.get(t);if(!n)throw new be(`Graph.inDegree: could not find the "${t}" node in the graph.`);return this.type==="undirected"?0:n.inDegree}outDegree(t){t=""+t;const n=this._nodes.get(t);if(!n)throw new be(`Graph.outDegree: could not find the "${t}" node in the graph.`);return this.type==="undirected"?0:n.outDegree}directedDegree(t){t=""+t;const n=this._nodes.get(t);if(!n)throw new be(`Graph.directedDegree: could not find the "${t}" node in the graph.`);return this.type==="undirected"?0:n.inDegree+n.outDegree}undirectedDegree(t){t=""+t;const n=this._nodes.get(t);if(!n)throw new be(`Graph.undirectedDegree: could not find the "${t}" node in the graph.`);return this.type==="directed"?0:n.undirectedDegree}inboundDegree(t){t=""+t;const n=this._nodes.get(t);if(!n)throw new be(`Graph.inboundDegree: could not find the "${t}" node in the graph.`);let r=0;return this.type!=="directed"&&(r+=n.undirectedDegree),this.type!=="undirected"&&(r+=n.inDegree),r}outboundDegree(t){t=""+t;const n=this._nodes.get(t);if(!n)throw new be(`Graph.outboundDegree: could not find the "${t}" node in the graph.`);let r=0;return this.type!=="directed"&&(r+=n.undirectedDegree),this.type!=="undirected"&&(r+=n.outDegree),r}degree(t){t=""+t;const n=this._nodes.get(t);if(!n)throw new be(`Graph.degree: could not find the "${t}" node in the graph.`);let r=0;return this.type!=="directed"&&(r+=n.undirectedDegree),this.type!=="undirected"&&(r+=n.inDegree+n.outDegree),r}inDegreeWithoutSelfLoops(t){t=""+t;const n=this._nodes.get(t);if(!n)throw new be(`Graph.inDegreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);return this.type==="undirected"?0:n.inDegree-n.directedLoops}outDegreeWithoutSelfLoops(t){t=""+t;const n=this._nodes.get(t);if(!n)throw new be(`Graph.outDegreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);return this.type==="undirected"?0:n.outDegree-n.directedLoops}directedDegreeWithoutSelfLoops(t){t=""+t;const n=this._nodes.get(t);if(!n)throw new be(`Graph.directedDegreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);return this.type==="undirected"?0:n.inDegree+n.outDegree-n.directedLoops*2}undirectedDegreeWithoutSelfLoops(t){t=""+t;const n=this._nodes.get(t);if(!n)throw new be(`Graph.undirectedDegreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);return this.type==="directed"?0:n.undirectedDegree-n.undirectedLoops*2}inboundDegreeWithoutSelfLoops(t){t=""+t;const n=this._nodes.get(t);if(!n)throw new be(`Graph.inboundDegreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);let r=0,i=0;return this.type!=="directed"&&(r+=n.undirectedDegree,i+=n.undirectedLoops*2),this.type!=="undirected"&&(r+=n.inDegree,i+=n.directedLoops),r-i}outboundDegreeWithoutSelfLoops(t){t=""+t;const n=this._nodes.get(t);if(!n)throw new be(`Graph.outboundDegreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);let r=0,i=0;return this.type!=="directed"&&(r+=n.undirectedDegree,i+=n.undirectedLoops*2),this.type!=="undirected"&&(r+=n.outDegree,i+=n.directedLoops),r-i}degreeWithoutSelfLoops(t){t=""+t;const n=this._nodes.get(t);if(!n)throw new be(`Graph.degreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);let r=0,i=0;return this.type!=="directed"&&(r+=n.undirectedDegree,i+=n.undirectedLoops*2),this.type!=="undirected"&&(r+=n.inDegree+n.outDegree,i+=n.directedLoops*2),r-i}source(t){t=""+t;const n=this._edges.get(t);if(!n)throw new be(`Graph.source: could not find the "${t}" edge in the graph.`);return n.source.key}target(t){t=""+t;const n=this._edges.get(t);if(!n)throw new be(`Graph.target: could not find the "${t}" edge in the graph.`);return n.target.key}extremities(t){t=""+t;const n=this._edges.get(t);if(!n)throw new be(`Graph.extremities: could not find the "${t}" edge in the graph.`);return[n.source.key,n.target.key]}opposite(t,n){t=""+t,n=""+n;const r=this._edges.get(n);if(!r)throw new be(`Graph.opposite: could not find the "${n}" edge in the graph.`);const i=r.source.key,o=r.target.key;if(t===i)return o;if(t===o)return i;throw new be(`Graph.opposite: the "${t}" node is not attached to the "${n}" edge (${i}, ${o}).`)}hasExtremity(t,n){t=""+t,n=""+n;const r=this._edges.get(t);if(!r)throw new be(`Graph.hasExtremity: could not find the "${t}" edge in the graph.`);return r.source.key===n||r.target.key===n}isUndirected(t){t=""+t;const n=this._edges.get(t);if(!n)throw new be(`Graph.isUndirected: could not find the "${t}" edge in the graph.`);return n.undirected}isDirected(t){t=""+t;const n=this._edges.get(t);if(!n)throw new be(`Graph.isDirected: could not find the "${t}" edge in the graph.`);return!n.undirected}isSelfLoop(t){t=""+t;const n=this._edges.get(t);if(!n)throw new be(`Graph.isSelfLoop: could not find the "${t}" edge in the graph.`);return n.source===n.target}addNode(t,n){return Ij(this,t,n).key}mergeNode(t,n){if(n&&!Ft(n))throw new xe(`Graph.mergeNode: invalid attributes. Expecting an object but got "${n}"`);t=""+t,n=n||{};let r=this._nodes.get(t);return r?(n&&(It(r.attributes,n),this.emit("nodeAttributesUpdated",{type:"merge",key:t,attributes:r.attributes,data:n})),[t,!1]):(r=new this.NodeDataClass(t,n),this._nodes.set(t,r),this.emit("nodeAdded",{key:t,attributes:n}),[t,!0])}updateNode(t,n){if(n&&typeof n!="function")throw new xe(`Graph.updateNode: invalid updater function. Expecting a function but got "${n}"`);t=""+t;let r=this._nodes.get(t);if(r){if(n){const o=r.attributes;r.attributes=n(o),this.emit("nodeAttributesUpdated",{type:"replace",key:t,attributes:r.attributes})}return[t,!1]}const i=n?n({}):{};return r=new this.NodeDataClass(t,i),this._nodes.set(t,r),this.emit("nodeAdded",{key:t,attributes:i}),[t,!0]}dropNode(t){t=""+t;const n=this._nodes.get(t);if(!n)throw new be(`Graph.dropNode: could not find the "${t}" node in the graph.`);let r;if(this.type!=="undirected"){for(const i in n.out){r=n.out[i];do Fi(this,r),r=r.next;while(r)}for(const i in n.in){r=n.in[i];do Fi(this,r),r=r.next;while(r)}}if(this.type!=="directed")for(const i in n.undirected){r=n.undirected[i];do Fi(this,r),r=r.next;while(r)}this._nodes.delete(t),this.emit("nodeDropped",{key:t,attributes:n.attributes})}dropEdge(t){let n;if(arguments.length>1){const r=""+arguments[0],i=""+arguments[1];if(n=yn(this,r,i,this.type),!n)throw new be(`Graph.dropEdge: could not find the "${r}" -> "${i}" edge in the graph.`)}else if(t=""+t,n=this._edges.get(t),!n)throw new be(`Graph.dropEdge: could not find the "${t}" edge in the graph.`);return Fi(this,n),this}dropDirectedEdge(t,n){if(arguments.length<2)throw new Ie("Graph.dropDirectedEdge: it does not make sense to try and drop a directed edge by key. What if the edge with this key is undirected? Use #.dropEdge for this purpose instead.");if(this.multi)throw new Ie("Graph.dropDirectedEdge: cannot use a {source,target} combo when dropping an edge in a MultiGraph since we cannot infer the one you want to delete as there could be multiple ones.");t=""+t,n=""+n;const r=yn(this,t,n,"directed");if(!r)throw new be(`Graph.dropDirectedEdge: could not find a "${t}" -> "${n}" edge in the graph.`);return Fi(this,r),this}dropUndirectedEdge(t,n){if(arguments.length<2)throw new Ie("Graph.dropUndirectedEdge: it does not make sense to drop a directed edge by key. What if the edge with this key is undirected? Use #.dropEdge for this purpose instead.");if(this.multi)throw new Ie("Graph.dropUndirectedEdge: cannot use a {source,target} combo when dropping an edge in a MultiGraph since we cannot infer the one you want to delete as there could be multiple ones.");const r=yn(this,t,n,"undirected");if(!r)throw new be(`Graph.dropUndirectedEdge: could not find a "${t}" -> "${n}" edge in the graph.`);return Fi(this,r),this}clear(){this._edges.clear(),this._nodes.clear(),this._resetInstanceCounters(),this.emit("cleared")}clearEdges(){const t=this._nodes.values();let n;for(;n=t.next(),n.done!==!0;)n.value.clear();this._edges.clear(),this._resetInstanceCounters(),this.emit("edgesCleared")}getAttribute(t){return this._attributes[t]}getAttributes(){return this._attributes}hasAttribute(t){return this._attributes.hasOwnProperty(t)}setAttribute(t,n){return this._attributes[t]=n,this.emit("attributesUpdated",{type:"set",attributes:this._attributes,name:t}),this}updateAttribute(t,n){if(typeof n!="function")throw new xe("Graph.updateAttribute: updater should be a function.");const r=this._attributes[t];return this._attributes[t]=n(r),this.emit("attributesUpdated",{type:"set",attributes:this._attributes,name:t}),this}removeAttribute(t){return delete this._attributes[t],this.emit("attributesUpdated",{type:"remove",attributes:this._attributes,name:t}),this}replaceAttributes(t){if(!Ft(t))throw new xe("Graph.replaceAttributes: provided attributes are not a plain object.");return this._attributes=t,this.emit("attributesUpdated",{type:"replace",attributes:this._attributes}),this}mergeAttributes(t){if(!Ft(t))throw new xe("Graph.mergeAttributes: provided attributes are not a plain object.");return It(this._attributes,t),this.emit("attributesUpdated",{type:"merge",attributes:this._attributes,data:t}),this}updateAttributes(t){if(typeof t!="function")throw new xe("Graph.updateAttributes: provided updater is not a function.");return this._attributes=t(this._attributes),this.emit("attributesUpdated",{type:"update",attributes:this._attributes}),this}updateEachNodeAttributes(t,n){if(typeof t!="function")throw new xe("Graph.updateEachNodeAttributes: expecting an updater function.");if(n&&!$m(n))throw new xe("Graph.updateEachNodeAttributes: invalid hints. Expecting an object having the following shape: {attributes?: [string]}");const r=this._nodes.values();let i,o;for(;i=r.next(),i.done!==!0;)o=i.value,o.attributes=t(o.key,o.attributes);this.emit("eachNodeAttributesUpdated",{hints:n||null})}updateEachEdgeAttributes(t,n){if(typeof t!="function")throw new xe("Graph.updateEachEdgeAttributes: expecting an updater function.");if(n&&!$m(n))throw new xe("Graph.updateEachEdgeAttributes: invalid hints. Expecting an object having the following shape: {attributes?: [string]}");const r=this._edges.values();let i,o,s,h;for(;i=r.next(),i.done!==!0;)o=i.value,s=o.source,h=o.target,o.attributes=t(o.key,o.attributes,s.key,h.key,s.attributes,h.attributes,o.undirected);this.emit("eachEdgeAttributesUpdated",{hints:n||null})}forEachAdjacencyEntry(t){if(typeof t!="function")throw new xe("Graph.forEachAdjacencyEntry: expecting a callback.");xa(!1,!1,!1,this,t)}forEachAdjacencyEntryWithOrphans(t){if(typeof t!="function")throw new xe("Graph.forEachAdjacencyEntryWithOrphans: expecting a callback.");xa(!1,!1,!0,this,t)}forEachAssymetricAdjacencyEntry(t){if(typeof t!="function")throw new xe("Graph.forEachAssymetricAdjacencyEntry: expecting a callback.");xa(!1,!0,!1,this,t)}forEachAssymetricAdjacencyEntryWithOrphans(t){if(typeof t!="function")throw new xe("Graph.forEachAssymetricAdjacencyEntryWithOrphans: expecting a callback.");xa(!1,!0,!0,this,t)}nodes(){return typeof Array.from=="function"?Array.from(this._nodes.keys()):r0(this._nodes.keys(),this._nodes.size)}forEachNode(t){if(typeof t!="function")throw new xe("Graph.forEachNode: expecting a callback.");const n=this._nodes.values();let r,i;for(;r=n.next(),r.done!==!0;)i=r.value,t(i.key,i.attributes)}findNode(t){if(typeof t!="function")throw new xe("Graph.findNode: expecting a callback.");const n=this._nodes.values();let r,i;for(;r=n.next(),r.done!==!0;)if(i=r.value,t(i.key,i.attributes))return i.key}mapNodes(t){if(typeof t!="function")throw new xe("Graph.mapNode: expecting a callback.");const n=this._nodes.values();let r,i;const o=new Array(this.order);let s=0;for(;r=n.next(),r.done!==!0;)i=r.value,o[s++]=t(i.key,i.attributes);return o}someNode(t){if(typeof t!="function")throw new xe("Graph.someNode: expecting a callback.");const n=this._nodes.values();let r,i;for(;r=n.next(),r.done!==!0;)if(i=r.value,t(i.key,i.attributes))return!0;return!1}everyNode(t){if(typeof t!="function")throw new xe("Graph.everyNode: expecting a callback.");const n=this._nodes.values();let r,i;for(;r=n.next(),r.done!==!0;)if(i=r.value,!t(i.key,i.attributes))return!1;return!0}filterNodes(t){if(typeof t!="function")throw new xe("Graph.filterNodes: expecting a callback.");const n=this._nodes.values();let r,i;const o=[];for(;r=n.next(),r.done!==!0;)i=r.value,t(i.key,i.attributes)&&o.push(i.key);return o}reduceNodes(t,n){if(typeof t!="function")throw new xe("Graph.reduceNodes: expecting a callback.");if(arguments.length<2)throw new xe("Graph.reduceNodes: missing initial value. You must provide it because the callback takes more than one argument and we cannot infer the initial value from the first iteration, as you could with a simple array.");let r=n;const i=this._nodes.values();let o,s;for(;o=i.next(),o.done!==!0;)s=o.value,r=t(r,s.key,s.attributes);return r}nodeEntries(){const t=this._nodes.values();return new bn(()=>{const n=t.next();if(n.done)return n;const r=n.value;return{value:{node:r.key,attributes:r.attributes},done:!1}})}export(){const t=new Array(this._nodes.size);let n=0;this._nodes.forEach((i,o)=>{t[n++]=Cj(o,i)});const r=new Array(this._edges.size);return n=0,this._edges.forEach((i,o)=>{r[n++]=Lj(this.type,o,i)}),{options:{type:this.type,multi:this.multi,allowSelfLoops:this.allowSelfLoops},attributes:this.getAttributes(),nodes:t,edges:r}}import(t,n=!1){if(t instanceof at)return t.forEachNode((l,u)=>{n?this.mergeNode(l,u):this.addNode(l,u)}),t.forEachEdge((l,u,a,c,f,d,p)=>{n?p?this.mergeUndirectedEdgeWithKey(l,a,c,u):this.mergeDirectedEdgeWithKey(l,a,c,u):p?this.addUndirectedEdgeWithKey(l,a,c,u):this.addDirectedEdgeWithKey(l,a,c,u)}),this;if(!Ft(t))throw new xe("Graph.import: invalid argument. Expecting a serialized graph or, alternatively, a Graph instance.");if(t.attributes){if(!Ft(t.attributes))throw new xe("Graph.import: invalid attributes. Expecting a plain object.");n?this.mergeAttributes(t.attributes):this.replaceAttributes(t.attributes)}let r,i,o,s,h;if(t.nodes){if(o=t.nodes,!Array.isArray(o))throw new xe("Graph.import: invalid nodes. Expecting an array.");for(r=0,i=o.length;r{const o=It({},r.attributes);r=new n.NodeDataClass(i,o),n._nodes.set(i,r)}),n}copy(t){if(t=t||{},typeof t.type=="string"&&t.type!==this.type&&t.type!=="mixed")throw new Ie(`Graph.copy: cannot create an incompatible copy from "${this.type}" type to "${t.type}" because this would mean losing information about the current graph.`);if(typeof t.multi=="boolean"&&t.multi!==this.multi&&t.multi!==!0)throw new Ie("Graph.copy: cannot create an incompatible copy by downgrading a multi graph to a simple one because this would mean losing information about the current graph.");if(typeof t.allowSelfLoops=="boolean"&&t.allowSelfLoops!==this.allowSelfLoops&&t.allowSelfLoops!==!0)throw new Ie("Graph.copy: cannot create an incompatible copy from a graph allowing self loops to one that does not because this would mean losing information about the current graph.");const n=this.emptyCopy(t),r=this._edges.values();let i,o;for(;i=r.next(),i.done!==!0;)o=i.value,f0(n,"copy",!1,o.undirected,o.key,o.source.key,o.target.key,It({},o.attributes));return n}toJSON(){return this.export()}toString(){return"[object Graph]"}inspect(){const t={};this._nodes.forEach((o,s)=>{t[s]=o.attributes});const n={},r={};this._edges.forEach((o,s)=>{const h=o.undirected?"--":"->";let l="",u=o.source.key,a=o.target.key,c;o.undirected&&u>a&&(c=u,u=a,a=c);const f=`(${u})${h}(${a})`;s.startsWith("geid_")?this.multi&&(typeof r[f]>"u"?r[f]=0:r[f]++,l+=`${r[f]}. `):l+=`[${s}]: `,l+=f,n[l]=o.attributes});const i={};for(const o in this)this.hasOwnProperty(o)&&!xm.has(o)&&typeof this[o]!="function"&&typeof o!="symbol"&&(i[o]=this[o]);return i.attributes=this._attributes,i.nodes=t,i.edges=n,dn(i,"constructor",this.constructor),i}}typeof Symbol<"u"&&(at.prototype[Symbol.for("nodejs.util.inspect.custom")]=at.prototype.inspect);Rj.forEach(e=>{["add","merge","update"].forEach(t=>{const n=e.name(t),r=t==="add"?f0:Aj;e.generateKey?at.prototype[n]=function(i,o,s){return r(this,n,!0,(e.type||this.type)==="undirected",null,i,o,s,t==="update")}:at.prototype[n]=function(i,o,s,h){return r(this,n,!1,(e.type||this.type)==="undirected",i,o,s,h,t==="update")}})});j4(at);tj(at);vj(at);Sj(at);class d0 extends at{constructor(t){const n=It({type:"directed"},t);if("multi"in n&&n.multi!==!1)throw new xe("DirectedGraph.from: inconsistent indication that the graph should be multi in given options!");if(n.type!=="directed")throw new xe('DirectedGraph.from: inconsistent "'+n.type+'" type in given options!');super(n)}}class p0 extends at{constructor(t){const n=It({type:"undirected"},t);if("multi"in n&&n.multi!==!1)throw new xe("UndirectedGraph.from: inconsistent indication that the graph should be multi in given options!");if(n.type!=="undirected")throw new xe('UndirectedGraph.from: inconsistent "'+n.type+'" type in given options!');super(n)}}class g0 extends at{constructor(t){const n=It({multi:!0},t);if("multi"in n&&n.multi!==!0)throw new xe("MultiGraph.from: inconsistent indication that the graph should be simple in given options!");super(n)}}class m0 extends at{constructor(t){const n=It({type:"directed",multi:!0},t);if("multi"in n&&n.multi!==!0)throw new xe("MultiDirectedGraph.from: inconsistent indication that the graph should be simple in given options!");if(n.type!=="directed")throw new xe('MultiDirectedGraph.from: inconsistent "'+n.type+'" type in given options!');super(n)}}class v0 extends at{constructor(t){const n=It({type:"undirected",multi:!0},t);if("multi"in n&&n.multi!==!0)throw new xe("MultiUndirectedGraph.from: inconsistent indication that the graph should be simple in given options!");if(n.type!=="undirected")throw new xe('MultiUndirectedGraph.from: inconsistent "'+n.type+'" type in given options!');super(n)}}function ko(e){e.from=function(t,n){const r=It({},t.options,n),i=new e(r);return i.import(t),i}}ko(at);ko(d0);ko(p0);ko(g0);ko(m0);ko(v0);at.Graph=at;at.DirectedGraph=d0;at.UndirectedGraph=p0;at.MultiGraph=g0;at.MultiDirectedGraph=m0;at.MultiUndirectedGraph=v0;at.InvalidArgumentsGraphError=xe;at.NotFoundGraphError=be;at.UsageGraphError=Ie;class Pj extends xw{dropHandler(){}getDotAttributes(){}addNode(t){const n=this.getComponentData(),r=Me(n).userGraph,i=new at().import(r),o=i.nodes().reduce((s,h)=>h>s?h:s)+1;t=t.replace(/node\d+/g,`node${o}`),i.addNode(t)}validate(){}}const Nj={class:"manipulatableGraph"},Bj=bo({__name:"ManipulatableGraph",props:{componentID:{},storeObject:{},componentPath:{},style:{}},setup(e){const t=e,n=Ym(t),{storeObject:r,componentID:i,componentPath:o}=n,{getProperty:s,setProperty:h}=Me(r),l=new Pj(r,Me(i),Me(o)),u=l.getNestedComponentPaths(),a=l.getCurrentTaskGraphNode(),c=l.getComponentData(),f=l.loadDependencies(),d=l.getDependencyPaths(),p=Me(f).dotDescription,g=Me(f).validationData,m=Me(f).droppedElements,v=Me(f).dragElements;Me(c).editableFields;const y=Me(c).dotUserGraph;St(m,M=>{if(M.length){let k=Me(y);for(const S of M){const E=Me(v)[S].dropData.dotTemplate;k=k.replace("{",`{ -${E}`)}Me(r).setProperty({path:`${Me(o)}__component__userGraph`,value:k}),Me(r).setProperty({path:d.droppedElements,value:[]})}console.log(Me(c).userGraph,`${Me(o)}__component__userGraph`)});const x=()=>{Array.from(document.querySelectorAll("g.node")).forEach(M=>{M.setAttribute("pointer-events","visible"),M.addEventListener("click",$)})};Ht(()=>{ya(".manipulatableGraph .node",x),_()}),Ws(()=>{Array.from(document.querySelectorAll("g.node")).forEach(M=>M.removeEventListener("click",$))});const $=M=>{const k=M.currentTarget,S=document.querySelector("g.node.active");if(S){S.classList.remove("active"),S.setAttribute("stroke",""),Array.from(S.querySelectorAll("polygon")).forEach(T=>T.setAttribute("stroke","black"));const E=S.id,I=k.id,C=`${E}:out -> ${I}:in []`,w=`${I}:out -> ${E}:in []`;if(E===I||p.value.includes(w))return;p.value.includes(C)?(h({path:d.dotDescription,value:Me(p).replace(C,"")}),ya(".manipulatableGraph .node",()=>Array.from(document.querySelectorAll("g.node")).forEach(T=>T.setAttribute("pointer-events","visible")))):(h({path:d.dotDescription,value:Me(p).replace("}",`${C} - }`)}),ya(".manipulatableGraph .node",()=>Array.from(document.querySelectorAll("g.node")).forEach(T=>T.setAttribute("pointer-events","visible"))))}else k.classList.add("active"),k.setAttribute("stroke","red"),Array.from(k.querySelectorAll("polygon")).forEach(E=>E.setAttribute("stroke","red"));_()},_=()=>{},b={showSolution:()=>{const M=Me(g);h({path:d.dotDescription,value:M}),ya(".manipulatableGraph .node",()=>Array.from(document.querySelectorAll("g.node")).forEach(k=>k.setAttribute("pointer-events","visible")))}},R=zr(s(`nodes__${a}__components__${t.componentID}__methods`),b);return(M,k)=>(ue(),Rt(Wr,{componentId:Me(i),methods:Me(R),storeObject:Me(r)},{default:cn(()=>[_e("div",Nj,[tt(Oi,Jl({style:t.style??{}},{componentID:Me(i),storeObject:Me(r),componentPath:Me(u).DOTGraph,graphID:"epc"}),null,16,["style"])])]),_:1},8,["componentId","methods","storeObject"]))}});const Fj=Ke(Bj,[["__scopeId","data-v-135ef954"]]),nd=rE(OS);nd.use(US).use(jS).use(Tf);nd.component("Matrix",wH).component("DOTGraph",Oi).component("TaskConfiguration",gP).component("VisualGraphTraversal",$H).component("PathDisplay",IH).component("CodeEditor",jH).component("Output",eW).component("Dropdown",oW).component("ContourPlot",Ib).component("BackgroundGraph",r5).component("Equation",z5).component("TexDisplay",V5).component("DijkstraTable",Yz).component("DijkstraGraph",Zz).component("PlanGraph",n4).component("EditableGraph",o4).component("GanttDiagram",p4).component("ManipulatableGraph",Fj);nd.mount("#app");export{n4 as $,vo as A,mb as B,jH as C,Ws as D,xw as E,je as F,dr as G,Ym as H,hv as I,Hj as J,d1 as K,r5 as L,Fj as M,Ib as N,gP as O,Oi as P,wH as Q,eW as R,oW as S,Cv as T,IH as U,$H as V,z5 as W,V5 as X,Yz as Y,Zz as Z,Ke as _,xi as a,o4 as a0,p4 as a1,Li as a2,ln as a3,Wj as a4,lv as a5,zj as a6,Jm as a7,Yi as a8,Tr as a9,jj as aa,Jl as ab,_e as b,ve as c,we as d,Ht as e,Yh as f,tt as g,Rt as h,Mn as i,bo as j,Ei as k,Un as l,Me as m,ut as n,ue as o,$i as p,ef as q,pt as r,xy as s,rt as t,Uj as u,vi as v,cn as w,m$ as x,St as y,kt as z}; diff --git a/src/server/public/index.html b/src/server/public/index.html index d518ebc..f208588 100644 --- a/src/server/public/index.html +++ b/src/server/public/index.html @@ -4,15 +4,16 @@ - Vite App + ALADIN - - + + +