diff --git a/08-korrelation-und-dimensionsreduktion/01-kovarianz-sol.ipynb b/08-korrelation-und-dimensionsreduktion/01-kovarianz-sol.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..f974fdd4f1226df3c2b110a7afe6af80c3582708 --- /dev/null +++ b/08-korrelation-und-dimensionsreduktion/01-kovarianz-sol.ipynb @@ -0,0 +1,286 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Kovarianz\n", + "\n", + "## Berechnen\n", + "\n", + "Schreiben Sie eine Funktion `cov`, die zwei Arrays `x` und `y` erhält\n", + "und die Kovarianz zurück gibt." + ], + "id": "0002-0913d59b142f97e01b1f1d202696d848ab5b6e755f3d92df06ee693365f" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "style": "python" + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd" + ], + "id": "0003-a69527b239a033f8134e8f47e334b1f9486b9076b43570d3fc203164ed0" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Lösung\n", + "\n", + "Wir ermitteln zunächst die zentrierten x und y-Werte. Dann\n", + "multiplizieren wir sie und bilden den Mittelwert." + ], + "id": "0005-016214def42f652d79a75899e99541de5f9661c91938dffca7490fcc347" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "style": "python" + }, + "outputs": [], + "source": [ + "def cov(x, y):\n", + " x0 = x - np.mean(x)\n", + " y0 = y - np.mean(y)\n", + " return np.mean(x0 * y0)" + ], + "id": "0006-fadbee38c18d669a38b12077868f7669a98636383c5eb499c50a3a57b9d" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Tests\n", + "\n", + "Testen Sie die Funktion mit den Beispielen aus den Folien:" + ], + "id": "0008-1839d17e4e89b5f286b8ba411595b6eadeed6664573c0cae88cf6869b85" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "54.875" + ] + } + ], + "source": [ + "df1 = pd.DataFrame({'x': [10, 7, 5, -13, -8, -3, -1, 11], 'y': [8, 10, 3, -9, -1, -7, -1, 13]})\n", + "df2 = df1 * [1, -1]\n", + "df3 = pd.DataFrame({'x': [14, 10, 4, 2, -1, -1, -9, -11], 'y': [3, 0, 10, -9, 13, -6, 7, -2]})\n", + "cov(df1.x, df1.y)" + ], + "id": "0009-5a9afeeb069c9adcfd985dfa866647c55d0b7afa511f1ab88ce0e3feda9" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "-54.875" + ] + } + ], + "source": [ + "cov(df2.x, df2.y)" + ], + "id": "0010-bcaedf82ed0c414209d4e126ee2fd2013a7f1cd96fb948355bf543c2ce7" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "0.0" + ] + } + ], + "source": [ + "cov(df3.x, df3.y)" + ], + "id": "0011-5530793defbb6ce07fafad4901e5575defa5e0894f0d8b8d206ff56113e" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Erzeugen\n", + "\n", + "So weit, so gut. Nun drehen wir die Aufgabenstellung um. Versuchen Sie\n", + "nun drei Datensätze aus jeweils zwei Samples zu erzeugen:\n", + "\n", + "**Datensatz 1** soll als Kovarianz 1 besitzen.\n", + "\n", + "### Lösung\n", + "\n", + "Ein einfaches Beispiel für zwei Samples mit Kovarianz 1 wäre (0, 0), (2,\n", + "2). Der Mittelwert ist (1, 1), somit rechnen wir\n", + "$\\frac 1 2 (1 \\cdot 1 + 1 \\cdot 1) = 1$." + ], + "id": "0016-76dfc0cb6810a254ca36daaf0b86fc5e15a5c807be4f17adf9ff053cfb6" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "x = np.array([0, 2])\n", + "y = np.array([0, 2])" + ], + "id": "0017-98190ce71c2abdc19eb7d8ac4354319f0d6acd8d42d0877945777483cda" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Tests" + ], + "id": "0018-04ac3f4882b3309363456c952768f31a2c708e671a5462093ff68e76a76" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "1.0" + ] + } + ], + "source": [ + "cov(x, y)" + ], + "id": "0019-3ebb3905554befd6e9c90a8161f00000757c58b10e4f248e60f7e1abf9e" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Datensatz 2** soll auch als Kovarianz 1 besitzen, aber mit anderen\n", + "Samples als zuvor.\n", + "\n", + "### Lösung\n", + "\n", + "Aber die Samples müssen dafür keine Diagonale bilden (Quadrate), sondern\n", + "können auch anders liegen (Rechtecke). Wir wählen (0, 0), (1, 4). Der\n", + "Mittelwert ist (1, 1), somit rechnen wir\n", + "$\\frac 1 2 (\\frac 1 2 \\cdot 2 + \\frac 1 2 \\cdot 2) = 1$." + ], + "id": "0022-90b5a593898934ee35ed76b5e931784de71996d0e0bf7d5a659d58ea41a" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "x = np.array([0, 1])\n", + "y = np.array([0, 4])" + ], + "id": "0023-9ec0433f3ab4acfa7459dc2d56714459dbcbd9078ce19baf91ffb8aa17d" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Tests" + ], + "id": "0024-503fa0c97971fa858f825b273ceb998780354d5bb183c47acfd4f3507cf" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "1.0" + ] + } + ], + "source": [ + "cov(x, y)" + ], + "id": "0025-3ebb3905554befd6e9c90a8161f00000757c58b10e4f248e60f7e1abf9e" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Datensatz 3** soll als Kovarianz 4 besitzen.\n", + "\n", + "### Lösung\n", + "\n", + "Wenn wir die Werte im ersten Beispiel verdoppeln, vervierfacht sich das\n", + "Ergebnis. Mit (0, 0), (4, 4) ist die Kovarianz\n", + "$\\frac 1 2 (2 \\cdot 2 + 2 \\cdot 2) = 4$." + ], + "id": "0028-338b5930bf4bafa415d05676a139dfbe8cbce3d950085861e1a4061aa8b" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "x = np.array([0, 4])\n", + "y = np.array([0, 4])" + ], + "id": "0029-402124921fd7c721bfaa138f25c8d143eb13fe2aa271ad7473b7126b0ab" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Tests" + ], + "id": "0030-c36e6e0be7ad3f1dec0afd72fde3a265396ca90bf93c258dbd4e3346cbd" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "4.0" + ] + } + ], + "source": [ + "cov(x, y)" + ], + "id": "0031-3ebb3905554befd6e9c90a8161f00000757c58b10e4f248e60f7e1abf9e" + } + ], + "nbformat": 4, + "nbformat_minor": 5, + "metadata": {} +} diff --git a/08-korrelation-und-dimensionsreduktion/01-kovarianz.ipynb b/08-korrelation-und-dimensionsreduktion/01-kovarianz.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..aa7d7a288b595545c1b9b6e2999810dd3d87fd0b --- /dev/null +++ b/08-korrelation-und-dimensionsreduktion/01-kovarianz.ipynb @@ -0,0 +1,241 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Kovarianz\n", + "\n", + "## Berechnen\n", + "\n", + "Schreiben Sie eine Funktion `cov`, die zwei Arrays `x` und `y` erhält\n", + "und die Kovarianz zurück gibt." + ], + "id": "0002-0913d59b142f97e01b1f1d202696d848ab5b6e755f3d92df06ee693365f" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "style": "python" + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd" + ], + "id": "0003-a69527b239a033f8134e8f47e334b1f9486b9076b43570d3fc203164ed0" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Tests\n", + "\n", + "Testen Sie die Funktion mit den Beispielen aus den Folien:" + ], + "id": "0005-1839d17e4e89b5f286b8ba411595b6eadeed6664573c0cae88cf6869b85" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "54.875" + ] + } + ], + "source": [ + "df1 = pd.DataFrame({'x': [10, 7, 5, -13, -8, -3, -1, 11], 'y': [8, 10, 3, -9, -1, -7, -1, 13]})\n", + "df2 = df1 * [1, -1]\n", + "df3 = pd.DataFrame({'x': [14, 10, 4, 2, -1, -1, -9, -11], 'y': [3, 0, 10, -9, 13, -6, 7, -2]})\n", + "cov(df1.x, df1.y)" + ], + "id": "0006-5a9afeeb069c9adcfd985dfa866647c55d0b7afa511f1ab88ce0e3feda9" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "-54.875" + ] + } + ], + "source": [ + "cov(df2.x, df2.y)" + ], + "id": "0007-bcaedf82ed0c414209d4e126ee2fd2013a7f1cd96fb948355bf543c2ce7" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "0.0" + ] + } + ], + "source": [ + "cov(df3.x, df3.y)" + ], + "id": "0008-5530793defbb6ce07fafad4901e5575defa5e0894f0d8b8d206ff56113e" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Erzeugen\n", + "\n", + "So weit, so gut. Nun drehen wir die Aufgabenstellung um. Versuchen Sie\n", + "nun drei Datensätze aus jeweils zwei Samples zu erzeugen:\n", + "\n", + "**Datensatz 1** soll als Kovarianz 1 besitzen." + ], + "id": "0011-5e6f7ee8c09fb3163c75c37ab167a849116ef4505076b2442a9a3e7eb1b" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "x = np.array([])\n", + "y = np.array([])" + ], + "id": "0012-1b4ea8eec5f19241e7602ee09cf19927687efc9d38c7d5360c417d2d3ba" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Tests" + ], + "id": "0013-04ac3f4882b3309363456c952768f31a2c708e671a5462093ff68e76a76" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "1.0" + ] + } + ], + "source": [ + "cov(x, y)" + ], + "id": "0014-3ebb3905554befd6e9c90a8161f00000757c58b10e4f248e60f7e1abf9e" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Datensatz 2** soll auch als Kovarianz 1 besitzen, aber mit anderen\n", + "Samples als zuvor." + ], + "id": "0015-3dbc650c0d3e7b7d38c1256a7a2dc71a13e88a5206c4e416af544e2b775" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "x = np.array([])\n", + "y = np.array([])" + ], + "id": "0016-1b4ea8eec5f19241e7602ee09cf19927687efc9d38c7d5360c417d2d3ba" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Tests" + ], + "id": "0017-503fa0c97971fa858f825b273ceb998780354d5bb183c47acfd4f3507cf" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "1.0" + ] + } + ], + "source": [ + "cov(x, y)" + ], + "id": "0018-3ebb3905554befd6e9c90a8161f00000757c58b10e4f248e60f7e1abf9e" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Datensatz 3** soll als Kovarianz 4 besitzen." + ], + "id": "0019-257f544a893b080f910b0568abdb73110977708806fc07ff2bca207ef7e" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "x = np.array([])\n", + "y = np.array([])" + ], + "id": "0020-1b4ea8eec5f19241e7602ee09cf19927687efc9d38c7d5360c417d2d3ba" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Tests" + ], + "id": "0021-c36e6e0be7ad3f1dec0afd72fde3a265396ca90bf93c258dbd4e3346cbd" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "4.0" + ] + } + ], + "source": [ + "cov(x, y)" + ], + "id": "0022-3ebb3905554befd6e9c90a8161f00000757c58b10e4f248e60f7e1abf9e" + } + ], + "nbformat": 4, + "nbformat_minor": 5, + "metadata": {} +} diff --git a/08-korrelation-und-dimensionsreduktion/02-datasaurus-sol.ipynb b/08-korrelation-und-dimensionsreduktion/02-datasaurus-sol.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..1bb116d248f573407c9e29ab1ab4e16db09a1c54 --- /dev/null +++ b/08-korrelation-und-dimensionsreduktion/02-datasaurus-sol.ipynb @@ -0,0 +1,261 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Datasaurus\n", + "\n", + "Laden Sie die Daten `datasaurus.csv` und betrachten für beliebige\n", + "Datensätze statistische Werte wie\n", + "\n", + "- Mittelwerte von x und y\n", + "- Standardabweichungen von x und y\n", + "- Korrelationskoeffizient zwischen x und y\n", + "\n", + "Was schließen Sie daraus? Was könnten Sie noch machen um ein\n", + "Datenverständnis aufzubauen?\n", + "\n", + "## Lösung\n", + "\n", + "Wir laden zunächst die Daten." + ], + "id": "0005-26afc5b4704584feaccf0e55e8a571368fb090c84b1a48d539857d405c9" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "style": "python" + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "df = pd.read_csv('datasaurus.csv')" + ], + "id": "0006-ec8063a047adadc262ed2fa6a02a175adb276b5352581f5234aae966f7b" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Dann geben wir die Daten mal grob aus:" + ], + "id": "0007-7706bb8a9163533b90003de7af396b817b9bfd92e413dedc6f55a04d24f" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + " dataset x y\n", + "0 dino 55.384600 97.179500\n", + "1 dino 51.538500 96.025600\n", + "2 dino 46.153800 94.487200\n", + "3 dino 42.820500 91.410300\n", + "4 dino 40.769200 88.333300\n", + "... ... ... ...\n", + "1841 wide_lines 33.674442 26.090490\n", + "1842 wide_lines 75.627255 37.128752\n", + "1843 wide_lines 40.610125 89.136240\n", + "1844 wide_lines 39.114366 96.481751\n", + "1845 wide_lines 34.583829 89.588902\n", + "\n", + "[1846 rows x 3 columns]" + ] + } + ], + "source": [ + "df" + ], + "id": "0008-0482c68413fbf8290e3b1e49b0a85901cfcd62ab0738760568a2a6e8a57" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Aha, die Datensätze sind also über die Spalte `dataset` getrennt. Das\n", + "ist Praktisch, denn damit können wir die Datensätze gruppieren und für\n", + "alle den Mittelwert ausgeben:" + ], + "id": "0009-766eb695b9c56d31ef0e81db1ca96663c9fd98e3e46dd1b6cace938f9ed" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + " x y\n", + "dataset\n", + "away 54.266100 47.834721\n", + "bullseye 54.268730 47.830823\n", + "circle 54.267320 47.837717\n", + "dino 54.263273 47.832253\n", + "dots 54.260303 47.839829\n", + "h_lines 54.261442 47.830252\n", + "high_lines 54.268805 47.835450\n", + "slant_down 54.267849 47.835896\n", + "slant_up 54.265882 47.831496\n", + "star 54.267341 47.839545\n", + "v_lines 54.269927 47.836988\n", + "wide_lines 54.266916 47.831602\n", + "x_shape 54.260150 47.839717" + ] + } + ], + "source": [ + "df.groupby('dataset').mean()" + ], + "id": "0010-b342ee9c963b9fa49a7bea82eefca4c86be18f50947908236381dfc1ad0" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Die Mittelwerte aller Datensätze sind jeweils für x und y nahezu gleich.\n", + "Und die Standardabweichungen auch:" + ], + "id": "0011-5c2541a1ac168b4459987d9491310dcd4abe498e8983f80c18f67a82eac" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + " x y\n", + "dataset\n", + "away 16.769825 26.939743\n", + "bullseye 16.769239 26.935727\n", + "circle 16.760013 26.930036\n", + "dino 16.765142 26.935403\n", + "dots 16.767735 26.930192\n", + "h_lines 16.765898 26.939876\n", + "high_lines 16.766704 26.939998\n", + "slant_down 16.766759 26.936105\n", + "slant_up 16.768853 26.938608\n", + "star 16.768959 26.930275\n", + "v_lines 16.769959 26.937684\n", + "wide_lines 16.770000 26.937902\n", + "x_shape 16.769958 26.930002" + ] + } + ], + "source": [ + "df.groupby('dataset').std()" + ], + "id": "0012-a437abd5ed49b4b3e4e43675df457ff411477c73c3c4aec6d3308b89356" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Was ist mit den Korrelationen zwischen x und y? Der Code ist\n", + "kompliziert, weil hier ein Multi-Index ensteht (jeder Dataset enthält\n", + "eine Korrelationsmatrix) und wir nur einen Wert davon haben wollen:" + ], + "id": "0013-d181c960ab516f871d98eadc6493da90b9b4068bccda237e749200efc04" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "dataset\n", + "away -0.064128\n", + "bullseye -0.068586\n", + "circle -0.068343\n", + "dino -0.064472\n", + "dots -0.060341\n", + "h_lines -0.061715\n", + "high_lines -0.068504\n", + "slant_down -0.068980\n", + "slant_up -0.068609\n", + "star -0.062961\n", + "v_lines -0.069446\n", + "wide_lines -0.066575\n", + "x_shape -0.065583\n", + "Name: x, dtype: float64" + ] + } + ], + "source": [ + "df.groupby('dataset').corr()['x'][:, 'y']" + ], + "id": "0014-8236dab4db77881177f2961943ff03473ddd7fe7c652ac66baea2a09a01" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Also auch die Korrelationswerte sind fast gleich und zwar nahe 0. Hmm…\n", + "wir könnten jetzt z. B. den Median anschauen. Der wäre nicht gleich,\n", + "aber daraus verstehen wir auch nicht so richtig, was hier los ist.\n", + "Scatter-Plots to the rescue!" + ], + "id": "0015-72d799f9b4a7863ce5a44a0cf48b7da4bce08752c77b2f27f07afecc8be" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "style": "python" + }, + "outputs": [], + "source": [ + "df.groupby('dataset').plot.scatter('x', 'y')" + ], + "id": "0016-cb4f9080bda8d31054a17b051085cdb7f6f96dc5c873616190c59420579" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Für einen einzelnen Plot können wir natürlich auch nach dem Dataset\n", + "filtern:" + ], + "id": "0017-9bb4b1a268443f12295eac8e102fc5006bcba977410502f17341a4cec57" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "style": "python" + }, + "outputs": [], + "source": [ + "df.loc[df.dataset == 'dino', ['x', 'y']].plot.scatter('x', 'y')" + ], + "id": "0018-33dd16c34b351bd44e01483365f9c25c16717a4927e3e5f8a46d66ab17a" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Schlussfolgerung: Visualisierung von Daten ist wichtig, aber meistens\n", + "nicht so einfach wie hier. Dimensionsreduktionstechniken können dabei\n", + "behilflich sein. Statistiken sind nützlich, aber reichen nicht aus um\n", + "ein hinreichendes Datenverständnis zu erwerben." + ], + "id": "0019-9306a8b6383c69b603008b91eefd53d0cbff5ba07be0cdf3b471261b165" + } + ], + "nbformat": 4, + "nbformat_minor": 5, + "metadata": {} +} diff --git a/08-korrelation-und-dimensionsreduktion/02-datasaurus.ipynb b/08-korrelation-und-dimensionsreduktion/02-datasaurus.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..6319d55a3dc17750b98da072e8fd37bc926f987f --- /dev/null +++ b/08-korrelation-und-dimensionsreduktion/02-datasaurus.ipynb @@ -0,0 +1,37 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Datasaurus\n", + "\n", + "Laden Sie die Daten `datasaurus.csv` und betrachten für beliebige\n", + "Datensätze statistische Werte wie\n", + "\n", + "- Mittelwerte von x und y\n", + "- Standardabweichungen von x und y\n", + "- Korrelationskoeffizient zwischen x und y\n", + "\n", + "Was schließen Sie daraus? Was könnten Sie noch machen um ein\n", + "Datenverständnis aufzubauen?\n", + "\n", + "Hier Ihr Code:" + ], + "id": "0004-acee268a50d14b526dc75bb1f3532efe74d442564a65304d69624cfecef" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "style": "python" + }, + "outputs": [], + "source": [], + "id": "0005-44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + ], + "nbformat": 4, + "nbformat_minor": 5, + "metadata": {} +} diff --git a/08-korrelation-und-dimensionsreduktion/03-anscombe.ipynb b/08-korrelation-und-dimensionsreduktion/03-anscombe.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..a53caf4d4ab796a789733d7eb6d0cbfde1209341 --- /dev/null +++ b/08-korrelation-und-dimensionsreduktion/03-anscombe.ipynb @@ -0,0 +1,64 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Anscombe’s Datasets\n", + "\n", + "Hier ist der Code um die Statistiken und die Plots aus den Folien zu\n", + "erzeugen. Falls Sie möchten, können Sie damit herumspielen." + ], + "id": "0001-47ec560fa976f47180d8889c9b67b1031223795531ff28c56b723a977ee" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "style": "python" + }, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "from numpy.polynomial import Polynomial\n", + "import numpy as np\n", + "import pandas as pd\n", + "import seaborn as sns\n", + "\n", + "df = sns.load_dataset(\"anscombe\")" + ], + "id": "0002-bbd16bd579840f98abcf3f0f6b704f69373b858aa9b36da508d149f1adf" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "style": "python" + }, + "outputs": [], + "source": [ + "for ds_name, ds in df.groupby('dataset')[['x', 'y']]:\n", + " mean = ds.mean()\n", + " var = ds.var()\n", + " c = ds.corr()\n", + " poly = Polynomial.fit(ds.x, ds.y, deg=1).convert()\n", + " with np.printoptions(precision=2):\n", + " print(f'DS {ds_name:3}: mean (x: {mean.x:.2f}, y: {mean.y:.2f}), var (x: {var.x:.2f}, y: {var.y:.2f}), corr: {c.x.y:.3f}, linear model regression: {poly}')\n", + "\n", + "sns.lmplot(x=\"x\", y=\"y\", col=\"dataset\", hue=\"dataset\", data=df,\n", + " col_wrap=2, ci=None, palette=\"muted\", height=5,\n", + " line_kws={'color': 'lightgrey'}, scatter_kws={\"s\": 100})\n", + "\n", + "fig = plt.gcf()\n", + "fig.set_size_inches(6.5, 4)\n", + "fig.patch.set_alpha(0)\n", + "fig.tight_layout()\n", + "fig.savefig('anscombe.pdf', pad_inches=0)" + ], + "id": "0003-b4658e20442bb236c82c49dc2764e6ce9c93c82fe6eb93a5e79ab822189" + } + ], + "nbformat": 4, + "nbformat_minor": 5, + "metadata": {} +} diff --git a/08-korrelation-und-dimensionsreduktion/04-feature-map-sol.ipynb b/08-korrelation-und-dimensionsreduktion/04-feature-map-sol.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..23387307e70a04f77378fa045e3359a2bc9037c3 --- /dev/null +++ b/08-korrelation-und-dimensionsreduktion/04-feature-map-sol.ipynb @@ -0,0 +1,100 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Feature-Map\n", + "\n", + "In dieser Aufgabe wollen wir die Features entsprechend der\n", + "Korrelationsmatrix auf einer Karte plotten.\n", + "\n", + "1. Laden Sie die Autodaten aus `autos.csv` als DataFrame.\n", + "2. *Bonus: Werfen Sie die Ausreißer raus. Was hat das für Auswirkungen\n", + " auf das Ergebnis.*\n", + "3. Berechnen Sie die Korrelationsmatrix.\n", + "4. Wandeln Sie die Korrelationsmatrix $P$ in eine Distanzmatrix\n", + " $D = \\sqrt{1 - P}$ um. \\*Bonus: Probieren Sie auch\n", + " $D = \\sqrt{1 - |P|}$\n", + "5. Finden Sie mit MDS die Koordinaten zu den Features. Sie benötigen\n", + " `dissimilarity='precomputed'`, damit Sie in `fit` $D$ reingeben\n", + " können.\n", + "6. Plotten Sie das Ergebnis mittels Plotly Express’ Scatter-Plot, denn\n", + " da können Sie an das Argument `text` die Feature-Namen übergeben." + ], + "id": "0002-8585dc9b0ed930d72556df47900a3e3dae65ea2bd7f244d5822c3bb4206" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "style": "python" + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "import plotly.express as px\n", + "from sklearn.manifold import MDS" + ], + "id": "0003-c1bb0a9ce1897e013bbc5224cd3031da808967b4ce5f467e752db79b3b6" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Lösung\n", + "\n", + "Hier der Code zur Lösung:" + ], + "id": "0005-2b2e02f7c099c0b3c2e7ee38e724334b181f374b2f6da5066b33d7489c5" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "style": "python" + }, + "outputs": [], + "source": [ + "df = pd.read_csv('autos.csv').drop(columns=['Marke', 'Modell'])\n", + "# df = df[df.Grundpreis < 150_000] # mit Ausreißern ist der Grundpreis weit weg von den Motordaten\n", + "\n", + "corr = df.corr()\n", + "\n", + "dist_corr = np.sqrt(1 - corr)\n", + "# dist_corr = np.sqrt(1 - np.abs(corr)) # mit abs rückt die Türanzahl näher an alle anderes\n", + "\n", + "mds = MDS(dissimilarity='precomputed', normalized_stress='auto')\n", + "corr_map = mds.fit_transform(dist_corr)\n", + "corr_map = pd.DataFrame(corr_map)\n", + "corr_map['feature'] = corr.columns" + ], + "id": "0006-472ff22b9cdec2be85fd14f451bb4cdea7db8ee3cbf28c128c994cf0453" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Der Grundpreis ist ohne Ausreißer näher an den Motordaten, d.h. der\n", + "Preis verhält sich ähnlich. Mit Ausreißer ist der Preis weit weg. Das\n", + "lässt sich so interpretieren, dass der Preis für sehr teure Autos nicht\n", + "mehr im Verhältnis zum Motor steht." + ], + "id": "0007-96c5b071fc624449a3bff00f5acf449ff13a3986090c619ea3c40dbebf7" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "px.scatter(corr_map, x=0, y=1, text=corr.columns)" + ], + "id": "0008-20ca1c79ef727fdf527b2a98d7d6fe563ef6fd9c2b005bb1fdfb364bbbb" + } + ], + "nbformat": 4, + "nbformat_minor": 5, + "metadata": {} +} diff --git a/08-korrelation-und-dimensionsreduktion/04-feature-map.ipynb b/08-korrelation-und-dimensionsreduktion/04-feature-map.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..718d4f897a8838e7c287bbac0499f449fc21e37e --- /dev/null +++ b/08-korrelation-und-dimensionsreduktion/04-feature-map.ipynb @@ -0,0 +1,46 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Feature-Map\n", + "\n", + "In dieser Aufgabe wollen wir die Features entsprechend der\n", + "Korrelationsmatrix auf einer Karte plotten.\n", + "\n", + "1. Laden Sie die Autodaten aus `autos.csv` als DataFrame.\n", + "2. *Bonus: Werfen Sie die Ausreißer raus. Was hat das für Auswirkungen\n", + " auf das Ergebnis.*\n", + "3. Berechnen Sie die Korrelationsmatrix.\n", + "4. Wandeln Sie die Korrelationsmatrix $P$ in eine Distanzmatrix\n", + " $D = \\sqrt{1 - P}$ um. \\*Bonus: Probieren Sie auch\n", + " $D = \\sqrt{1 - |P|}$\n", + "5. Finden Sie mit MDS die Koordinaten zu den Features. Sie benötigen\n", + " `dissimilarity='precomputed'`, damit Sie in `fit` $D$ reingeben\n", + " können.\n", + "6. Plotten Sie das Ergebnis mittels Plotly Express’ Scatter-Plot, denn\n", + " da können Sie an das Argument `text` die Feature-Namen übergeben." + ], + "id": "0002-8585dc9b0ed930d72556df47900a3e3dae65ea2bd7f244d5822c3bb4206" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "style": "python" + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "import plotly.express as px\n", + "from sklearn.manifold import MDS" + ], + "id": "0003-c1bb0a9ce1897e013bbc5224cd3031da808967b4ce5f467e752db79b3b6" + } + ], + "nbformat": 4, + "nbformat_minor": 5, + "metadata": {} +} diff --git a/08-korrelation-und-dimensionsreduktion/05-reduce-mnist-sol.ipynb b/08-korrelation-und-dimensionsreduktion/05-reduce-mnist-sol.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..1e7dbaace1cd51c4554359870068756c59c04328 --- /dev/null +++ b/08-korrelation-und-dimensionsreduktion/05-reduce-mnist-sol.ipynb @@ -0,0 +1,115 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# MNIST visualisieren\n", + "\n", + "In dieser Aufgabe wollen wir einen hochdimensionalen Datensatz in 2D\n", + "(oder 3D) plotten. Die Daten werden schon geladen." + ], + "id": "0001-9c88d904212173177e3cd805c405ca6bffb6c39ce47a88ff66351aa9536" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "style": "python" + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import plotly.express as px\n", + "from tensorflow.keras.datasets.mnist import load_data\n", + "\n", + "(x_train, y_train), (x_test, y_test) = load_data()\n", + "\n", + "# reshape test set to 10 000 x 784\n", + "X = x_test.reshape(-1, 28 * 28)" + ], + "id": "0002-f9e5f87e267af56fbd5014863286132d368c2876d241287b849ceff60cc" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Wenn Sie mögen ist hier ein Plot von verschiedenen Bildern der gleichen\n", + "Klasse. So können Sie ein Blick reinwerfen." + ], + "id": "0003-fef1281e3edb72c906210479c5811c47fe2289914626b2c40534881280c" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "style": "python" + }, + "outputs": [], + "source": [ + "# plot 50 examples for each digit\n", + "imgs = np.empty((50, 10, 28, 28))\n", + "for j in range(10):\n", + " imgs[:, j] = x_test[y_test == j][:50]\n", + "\n", + "fig = px.imshow(imgs, animation_frame=0, facet_col=1, facet_col_wrap=5, binary_string=True)\n", + "fig.update_xaxes(showticklabels=False)\n", + "fig.update_yaxes(showticklabels=False)\n", + "fig.show()" + ], + "id": "0004-c879d58b500c83a0364d8680cc6b05c9cc97d36d3ea3743e112c56644db" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Transformieren Sie die Daten in 2D (ode 3D) und plotten die\n", + "Transformierten Daten als Scatter-Plot mit `y_test` als\n", + "Farbunterscheidung.\n", + "\n", + "## Lösung\n", + "\n", + "Hier der Code zur Lösung:" + ], + "id": "0007-d262459c63ed3d98add57f2c48715daab6ff8a674c4e923ee87f87f61ad" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "style": "python" + }, + "outputs": [], + "source": [ + "from umap import UMAP\n", + "from sklearn.decomposition import PCA\n", + "\n", + "pca = PCA(n_components=2)\n", + "X_pca = pca.fit_transform(X)\n", + "\n", + "umap = UMAP(n_neighbors=20, metric='manhattan', min_dist=0.1)\n", + "X_umap = umap.fit_transform(X)\n", + "\n", + "scatter1 = px.scatter(X_pca, x=0, y=1, color=y_test)\n", + "scatter1.show()\n", + "scatter2 = px.scatter(X_umap, x=0, y=1, color=y_test, hover_data={'class': y_test, 'index': np.arange(len(X_umap))})\n", + "scatter2.show()" + ], + "id": "0008-a04806d4df0812cf8fba0aa2e4e76d43ce0a2c8b2e2a9d7c032abc4e78f" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Der Grundpreis ist ohne Ausreißer näher an den Motordaten, d.h. der\n", + "Preis verhält sich ähnlich. Mit Ausreißer ist der Preis weit weg. Das\n", + "lässt sich so interpretieren, dass der Preis für sehr teure Autos nicht\n", + "mehr im Verhältnis zum Motor steht." + ], + "id": "0009-96c5b071fc624449a3bff00f5acf449ff13a3986090c619ea3c40dbebf7" + } + ], + "nbformat": 4, + "nbformat_minor": 5, + "metadata": {} +} diff --git a/08-korrelation-und-dimensionsreduktion/05-reduce-mnist.ipynb b/08-korrelation-und-dimensionsreduktion/05-reduce-mnist.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..9cdb6418772bac347e916d4b33a5d3635a53a98a --- /dev/null +++ b/08-korrelation-und-dimensionsreduktion/05-reduce-mnist.ipynb @@ -0,0 +1,76 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# MNIST visualisieren\n", + "\n", + "In dieser Aufgabe wollen wir einen hochdimensionalen Datensatz in 2D\n", + "(oder 3D) plotten. Die Daten werden schon geladen." + ], + "id": "0001-9c88d904212173177e3cd805c405ca6bffb6c39ce47a88ff66351aa9536" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "style": "python" + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import plotly.express as px\n", + "from tensorflow.keras.datasets.mnist import load_data\n", + "\n", + "(x_train, y_train), (x_test, y_test) = load_data()\n", + "\n", + "# reshape test set to 10 000 x 784\n", + "X = x_test.reshape(-1, 28 * 28)" + ], + "id": "0002-f9e5f87e267af56fbd5014863286132d368c2876d241287b849ceff60cc" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Wenn Sie mögen ist hier ein Plot von verschiedenen Bildern der gleichen\n", + "Klasse. So können Sie ein Blick reinwerfen." + ], + "id": "0003-fef1281e3edb72c906210479c5811c47fe2289914626b2c40534881280c" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "style": "python" + }, + "outputs": [], + "source": [ + "# plot 50 examples for each digit\n", + "imgs = np.empty((50, 10, 28, 28))\n", + "for j in range(10):\n", + " imgs[:, j] = x_test[y_test == j][:50]\n", + "\n", + "fig = px.imshow(imgs, animation_frame=0, facet_col=1, facet_col_wrap=5, binary_string=True)\n", + "fig.update_xaxes(showticklabels=False)\n", + "fig.update_yaxes(showticklabels=False)\n", + "fig.show()" + ], + "id": "0004-c879d58b500c83a0364d8680cc6b05c9cc97d36d3ea3743e112c56644db" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Transformieren Sie die Daten in 2D (ode 3D) und plotten die\n", + "Transformierten Daten als Scatter-Plot mit `y_test` als\n", + "Farbunterscheidung." + ], + "id": "0005-9f3a45468236a64a112ad49260df46a53eb308c1c3e503a34d2ae0c353f" + } + ], + "nbformat": 4, + "nbformat_minor": 5, + "metadata": {} +} diff --git a/08-korrelation-und-dimensionsreduktion/autos.csv b/08-korrelation-und-dimensionsreduktion/autos.csv new file mode 100644 index 0000000000000000000000000000000000000000..6ffed5d9d0763ac6fcc0fca8390422e21655b91d --- /dev/null +++ b/08-korrelation-und-dimensionsreduktion/autos.csv @@ -0,0 +1,616 @@ +Marke,Modell,Grundpreis,Leistung_kW,Hubraum,Leergewicht,Verbrauch_kombi,Tueranzahl,Fahrzeugklasse +Bugatti,Chiron,2856000,1103,7993,2070,22.5,2,6 +Koenigsegg,Agera RS,2112275,865,5032,1395,14.7,2,6 +Lamborghini,Centenario LP770-4,2082500,566,6498,1520,16,2,6 +Lamborghini,Centenario Roadster LP770-4,2082500,566,6498,1570,16,2,6 +smart,forfour BRABUS,21225,80,898,1095,4.6,5,1 +Abarth,595C,21090,107,1368,1150,6.5,2,1 +Abarth,595,18490,107,1368,1110,6,3,1 +VW,up! GTI,16975,85,999,1070,4.8,3,1 +Opel,ADAM ROCKS 1.2,15780,51,1229,1086,5.3,3,1 +Fiat,500C 1.2 8V,15190,51,1242,980,4.9,2,1 +VW,cross up! 1.0 BMT,14500,55,999,1009,4.3,5,1 +Fiat,Panda Cross 1.2 8V,13490,51,1242,1015,5.1,5,1 +Opel,KARL ROCKS 1.0,12800,55,999,939,4.7,5,1 +Peugeot,108 Top! 1.0 VTi 68,12600,51,998,915,4.1,3,1 +Fiat,500 1.2 8V,12590,51,1242,940,4.9,3,1 +Suzuki,Ignis 1.2,12540,66,1242,885,4.6,5,1 +Citroen,C1 Airscape VTi 68,12400,51,998,915,4.1,3,1 +Opel,ADAM 1.2,12135,51,1229,1086,5.3,3,1 +smart,forfour 1.0,11765,52,999,975,4.2,5,1 +Hyundai,i10 1.0,9990,49,998,1008,4.7,5,1 +KIA,Picanto 1.0,9990,49,998,935,4.4,5,1 +Peugeot,108 1.0 VT 68,9990,51,998,915,4.1,3,1 +VW,up! 1.0,9975,44,999,926,4.4,3,1 +Toyota,Aygo 1.0,9950,51,998,915,4.1,3,1 +Fiat,Panda 1.2 8V,9850,51,1242,1015,5.1,5,1 +Skoda,Citigo 1.0,9770,44,999,929,4.4,3,1 +Renault,Twingo SCe 70,9750,51,999,939,5,5,1 +Suzuki,Celerio 1.0,9690,50,998,880,4.3,5,1 +Opel,KARL 1.0,9560,55,999,939,4.5,5,1 +Citroen,C1 VTi 68,9090,51,998,915,4.1,3,1 +SEAT,Mii 1.0,8990,44,999,929,4.4,3,1 +MINI,John Cooper Works Cabrio,34300,170,1998,1385,6.5,2,2 +Nissan,Juke Nismo RS,31915,157,1618,1469,7.3,5,2 +Audi,S1 Sportback,31300,170,1984,1415,7.1,5,2 +Toyota,Yaris GRMN,30800,156,1798,1135,7.5,5,2 +MINI,John Cooper Works,30700,170,1998,1280,6.3,3,2 +Audi,S1,30450,170,1984,1390,7,3,2 +DS Automobiles,DS 3 Performance,26990,153,1598,1250,5.4,3,2 +Opel,Corsa OPC,24930,152,1598,1293,7.5,3,2 +Peugeot,208.,23990,153,1598,1235,5.4,3,2 +VW,Polo GTI,23950,147,1984,1355,5.9,5,2 +Renault,Clio R.S.,23390,147,1618,1279,5.9,5,2 +MINI,One Cabrio,22500,75,1198,1280,5,2,2 +Honda,HR-V 1.5 i-VTEC,20690,96,1498,1312,5.6,5,2 +DS Automobiles,DS 3 Cabrio PureTech 82,19940,60,1199,1110,4.9,2,2 +Jeep,Renegade 1.6 E-torQ,19900,81,1598,1395,6,5,2 +Opel,Mokka X 1.6 Start&Stop,18990,85,1598,1355,6.7,5,2 +Ford,EcoSport 1.0 EcoBoost,18590,92,998,1337,5.2,5,2 +Citroen,C3 Picasso VTi 95,18190,70,1397,1276,5.9,5,2 +Hyundai,i20 Coupee 1.0 T-GDI,18100,88,998,1145,4.8,3,2 +Ford,EcoSport 1.5 Ti-VCT,17990,82,1498,1314,6.3,5,2 +Mazda,CX-3 SKYACTIV-G 120,17990,88,1998,1230,5.9,5,2 +Suzuki,Vitara 1.6,17990,88,1586,1150,5.3,5,2 +Peugeot,2008 PureTech 82,17550,60,1199,1120,4.9,5,2 +Hyundai,Kona 1.0 T-GDI,17500,88,998,1233,5.2,5,2 +MINI,One First,17350,55,1198,1225,5.2,5,2 +Hyundai,i20 Active 1.0 T-GDI blue,17300,74,998,1160,4.5,5,2 +KIA,Soul 1.6 GDI,17240,97,1591,1275,6.5,5,2 +Audi,A1 Sportback 1.0 TFSI ultra,17100,60,999,1135,4.2,5,2 +Fiat,500L 1.4 16V,16990,70,1368,1330,6.2,5,2 +Fiat,500L Wagon 1.4 16V,16990,70,1368,1350,6.1,5,2 +Opel,Crossland X 1.2,16990,60,1199,1136,5.2,5,2 +Ford,B-MAX 1.4,16800,66,1388,1275,6,5,2 +Honda,Jazz 1.3 i-VTEC,16640,75,1318,1138,5,5,2 +Fiat,500L Urban 1.4 16V,16490,70,1368,1320,6.1,5,2 +MINI,One First,16400,55,1198,1165,5.1,3,2 +Fiat,500X 1.6 E-torQ,16290,81,1598,1350,6.4,5,2 +Audi,A1 1.0 TFSI ultra,16250,60,999,1110,4.2,3,2 +DS Automobiles,DS 3 PureTech 82,15990,60,1199,1049,4.6,3,2 +Nissan,Juke 1.6,15990,69,1598,1163,6,5,2 +SEAT,Arona 1.0 EcoTSI,15990,70,999,1165,4.9,5,2 +SsangYong,Tivoli 1.6 e-XGi 160,15990,94,1597,1270,6.6,5,2 +Renault,Captur ENERGY TCe 90,15890,66,898,1259,5.1,5,2 +Hyundai,ix20 1.4 blue,15790,66,1396,1253,5.6,5,2 +KIA,Stonic 1.2,15790,62,1248,1145,5.2,5,2 +Alfa Romeo,MiTo 1.4 8V,15700,57,1368,1155,5.6,3,2 +Suzuki,Jimny 1.3,15590,62,1328,1135,7.1,3,2 +Citroen,C3 Aircross PureTech 82,15290,60,1199,1163,5.1,5,2 +Ford,Tourneo Courier 1.0 EcoBoost,15260,74,998,1260,5.3,5,2 +Ford,Transit Courier Kombi 1.0 EcoBoost,15220,74,998,1260,5.3,4,2 +Fiat,Fiorino Kombi 1.4 8V,15161,57,1368,1255,6.9,4,2 +KIA,Venga 1.4,14890,66,1396,1253,6,5,2 +Citroen,C4 Cactus PureTech 75,13990,55,1199,1040,4.6,5,2 +Suzuki,Swift 1.2 Dualjet,13790,66,1242,915,4.3,5,2 +Suzuki,Baleno 1.2 Dualjet,13790,66,1242,940,4.2,5,2 +Skoda,Fabia Combi 1.0 MPI,13450,55,999,1104,4.8,5,2 +Nissan,Micra 1.0,12990,52,998,977,4.6,5,2 +Renault,Clio Grandtour 1.2 16V 75,12990,54,1149,1141,5.6,5,2 +VW,Polo 1.0 MPI,12975,48,999,1105,4.7,5,2 +Ford,Fiesta 1.1,12950,51,1084,1108,4.7,3,2 +Mazda,2 SKYACTIV-G 75,12890,55,1496,1045,4.7,5,2 +Fiat,Punto 1.2 8V,12790,51,1242,1105,5.4,5,2 +Peugeot,208 1.2 PureTech 68,12750,50,1199,1035,4.7,3,2 +Toyota,Yaris 1.0,12540,51,998,1055,4.3,3,2 +Fiat,Qubo 1.4 8V,12490,57,1368,1255,6.9,5,2 +SEAT,Ibiza 1.0 MPI,12490,48,999,1091,4.9,5,2 +Skoda,Fabia 1.0 MPI,12150,44,999,1080,4.8,5,2 +Opel,Corsa 1.2,12135,51,1229,1120,5.4,3,2 +Hyundai,i20 1.2,12015,55,1248,1055,5.1,5,2 +Citroen,C3 PureTech 68,11990,50,1199,1051,4.7,5,2 +Renault,Clio 1.2 16V 75,11990,54,1149,1134,5.6,5,2 +KIA,Rio 1.2,11690,62,1248,1110,4.8,5,2 +Lada,Kalina Cross 1.6 8V,10200,64,1596,1110,6.6,5,2 +Dacia,Sandero Stepway TCe 90 Start&Stop,9990,66,898,1115,5.1,5,2 +Ford,Ka+ 1.2 Ti-VCT,9990,51,1198,1055,5,5,2 +Mitsubishi,Space Star 1.0,9290,52,999,920,4.2,5,2 +Lada,Kalina Kombi 1.6 8V,8260,64,1596,1110,6.6,5,2 +Lada,Kalina 1.6 8V,7460,64,1596,1080,6.6,5,2 +Dacia,Sandero SCe 75,6990,54,998,1044,5.2,5,2 +smart,fortwo cabrio BRABUS,23675,80,898,1040,4.6,2,1 +smart,fortwo Coupee BRABUS,20415,80,898,995,4.5,3,1 +smart,fortwo cabrio 1.0,14365,52,999,940,4.3,2,1 +smart,fortwo Coupee 1.0,11105,52,999,890,4.1,3,1 +Morgan,Aero Supersports 4.8 V8,168000,270,4799,1220,11.2,2,4 +BMW,M3 CS,117600,338,2979,1660,8.3,4,4 +BMW,M4 CS Coupee,116900,338,2979,1655,8.4,2,4 +Lotus,Evora 400,96000,298,3456,1415,9.7,2,4 +Alfa Romeo,Stelvio Quadrifoglio,89000,375,2891,1905,9,5,4 +Porsche,Macan Turbo,84586,294,3604,2000,9,5,4 +BMW,M4 Cabrio,84500,317,2979,1825,9.1,2,4 +BMW Alpina,B4 S Bi-Turbo Cabrio,81400,324,2979,1915,8.3,2,4 +Audi,RS5 Coupee,80900,331,2894,1730,8.7,2,4 +Audi,RS4 Avant,79800,331,2894,1790,8.8,5,4 +BMW,M4 Coupee,78200,317,2979,1572,8.8,2,4 +BMW,M3,77500,317,2979,1595,8.8,4,4 +Lexus,RC F,75900,351,4969,1840,10.8,3,4 +BMW Alpina,B4 S Bi-Turbo Coupee,75300,324,2979,1690,7.9,2,4 +Lotus,Exige Coupee,75200,258,3456,1110,10.1,2,4 +Lotus,Exige Roadster,75200,258,3456,1110,10.1,2,4 +Porsche,Macan GTS,74828,265,2997,1970,8.9,5,4 +BMW Alpina,B3 S Bi-Turbo Touring,74700,324,2979,1780,8.1,5,4 +BMW Alpina,B3 S Bi-Turbo,72900,324,2979,1705,7.9,4,4 +Alfa Romeo,Giulia Quadrifoglio,72800,375,2891,1670,8.5,4,4 +Cadillac,ATS-V Coupee,72500,346,3564,1775,11.4,3,4 +Alfa Romeo,4C Spider,72000,177,1742,1015,6.9,2,4 +Cadillac,ATS-V,69900,346,3564,1775,11.6,4,4 +Audi,TT RS Roadster,69200,294,2480,1605,8.3,2,4 +Mercedes,C 43 AMG Cabriolet,68455,270,2996,1870,8.3,2,4 +Audi,S5 Cabriolet,68050,260,2995,1915,7.9,2,4 +Morgan,Roadster 3.7 V6,68000,209,3721,950,9.8,2,4 +Audi,TT RS Coupee,66400,294,2480,1515,8.2,3,4 +Mercedes,GLC Coupee 43 AMG,65807,270,2996,1855,8.4,5,4 +Audi,SQ5 TFSI,65400,260,2995,1945,8.3,5,4 +Alfa Romeo,4C,63500,177,1742,970,6.8,2,4 +Audi,S5 Sportback,62750,260,2995,1735,7.5,5,4 +Audi,S5 Coupee,62750,260,2995,1690,7.5,2,4 +Mercedes,GLC 43 AMG,62178,270,2996,1845,8.3,5,4 +Audi,S4 Avant,61900,260,2995,1750,7.7,5,4 +Mercedes,C 43 AMG T-Modell,61850,270,2996,1735,7.9,5,4 +Mercedes,C 43 AMG Coupee,61761,270,2996,1735,7.8,2,4 +Mercedes,C 43 AMG,60184,270,2996,1690,7.8,4,4 +Audi,S4,60050,260,2995,1705,7.5,4,4 +Mercedes,SLC 43 AMG,60036,270,2996,1595,7.8,2,4 +Alpine,A110,58000,185,1798,1178,6.1,2,4 +Land Rover,Range Rover Velar P250,56400,184,1998,1804,7.6,5,4 +Porsche,Macan,56264,185,1984,1845,7.2,5,4 +Audi,TTS Roadster,53350,228,1984,1525,7.3,2,4 +Jaguar,F-Pace 25t,51160,184,1997,1760,7.4,5,4 +Audi,TTS Coupee,50550,228,1984,1440,7.1,3,4 +Audi,Q5 2.0 TFSI,50500,185,1984,1795,6.8,5,4 +BMW,X4 xDrive20i,49850,135,1997,1810,7.2,5,4 +Mercedes,GLC Coupee 250,49837,155,1991,1785,6.9,5,4 +Opel,Insignia Sports Tourer GSi 2.0 DI Turbo Start&Stop,48800,191,1998,1716,8.7,5,4 +Audi,A4 Allroad 2.0 TFSI,48750,185,1984,1655,6.4,5,4 +Volvo,XC60 T5,48650,184,1969,1915,7.4,5,4 +Jeep,Cherokee 3.2 V6 Pentastar,48000,200,3239,2036,9.6,5,4 +Opel,Insignia Grand Sport GSi 2.0 DI Turbo Start&Stop,47800,191,1998,1683,8.6,5,4 +BMW,420i Cabrio,47700,135,1998,1775,6.2,2,4 +Volvo,S60 Cross Country T5,47050,180,1969,1722,7.4,4,4 +Nissan,370Z Nismo,46880,253,3696,1496,10.6,3,4 +Volvo,V60 Cross Country T5,45950,180,1969,1776,7.4,5,4 +Land Rover,Discovery Sport Si4,45750,177,1998,1796,8,5,4 +Mercedes,GLC 250,45315,155,1991,1735,6.5,5,4 +Infiniti,Q50 2.0t,44900,155,1991,1587,6.3,4,4 +Jeep,Wrangler Unlimited 3.6 V6,44900,209,3604,1995,11.4,5,4 +Infiniti,Q60 2.0t,44500,155,1991,1722,6.8,2,4 +BMW,X3 xDrive20i,44400,135,1998,1790,7.1,5,4 +Audi,A5 Cabriolet 2.0 TFSI,44000,140,1984,1675,5.9,2,4 +KIA,Stinger 2.0 T-GDI,43990,188,1998,1717,7.9,5,4 +VW,Passat Alltrack 2.0 TSI BMT,43925,162,1984,1677,6.9,5,4 +Morgan,4/4 1.8 16V,43009,82,1595,800,8.2,2,4 +Mercedes,C 180 Cabriolet,42727,115,1595,1600,6,2,4 +Infiniti,Q50 2.0t,42500,155,1991,1585,6.3,4,4 +Alfa Romeo,Stelvio 2.0 Turbo 16V,42200,147,1995,1735,7,5,4 +Jeep,Wrangler 3.6 V6,41900,209,3604,1828,11,3,4 +Renault,Espace ENERGY TCe 225,40900,165,1798,1685,6.8,5,4 +BMW,420i Coupee,40400,135,1998,1550,5.8,2,4 +BMW,420i Gran Coupee,40400,135,1998,1595,5.8,5,4 +Cadillac,ATS Coupee 2.0 Turbo,40400,203,1998,1591,7.7,3,4 +BMW,320i Gran Turismo,40200,135,1998,1655,6.1,5,4 +Nissan,370Z Roadster,40130,241,3696,1496,11.2,2,4 +DS Automobiles,DS 7 Crossback PureTech 225,38990,165,1598,1500,5.9,5,4 +Alfa Romeo,Giulia 2.0 Turbo 16V,38500,147,1995,1504,6,4,4 +Audi,A5 Sportback 2.0 TFSI,38050,140,1984,1505,5.8,5,4 +Audi,A5 Coupee 2.0 TFSI,38050,140,1984,1465,5.6,2,4 +Cadillac,ATS 2.0 Turbo,37400,203,1998,1593,7.6,4,4 +Jaguar,XE 20t,36960,147,1997,1540,6.3,4,4 +Subaru,Outback 2.5i,36900,129,2498,1582,7,5,4 +Mercedes,C 180 Coupee,36033,115,1595,1475,5.3,2,4 +Audi,TT Roadster 1.8 TFSI,35550,132,1798,1375,5.9,2,4 +Mercedes,SLC 180,35349,115,1595,1435,5.6,2,4 +Skoda,Kodiaq Scout 1.4 TSI ACT,35050,110,1395,1610,6.8,5,4 +Opel,Insignia Country Tourer 1.5 DI Turbo Start&Stop,34885,121,1490,1522,6.4,5,4 +BMW,318i Touring,34550,100,1499,1545,5.4,5,4 +DS Automobiles,DS 5 THP 165 Stop&Start,34390,121,1598,1504,5.9,5,4 +Nissan,370Z Coupee,34130,241,3696,1496,10.6,3,4 +Audi,A4 Avant 1.4 TFSI,33700,110,1395,1445,5.4,5,4 +Mercedes,C 160 T-Modell,33534,95,1595,1470,5.4,5,4 +VW,Sharan 1.4 TSI BMT,33325,110,1395,1703,6.4,5,4 +Ford,Galaxy 1.5 EcoBoost Start/Stopp,33310,118,1498,1708,6.5,5,4 +Audi,TT Coupee 1.8 TFSI,33150,132,1798,1285,5.8,3,4 +BMW,318i,32850,100,1499,1475,5.1,4,4 +Subaru,BRZ 2.0i,32400,147,1998,1243,7.8,2,4 +Skoda,Octavia Scout 1.8 TSI,32110,132,1798,1522,6.8,5,4 +Volvo,V60 T2,32100,90,1498,1680,5.9,5,4 +Mercedes,C 160,31868,95,1595,1395,5.2,4,4 +Audi,A4 1.4 TFSI,31850,110,1395,1395,5.2,4,4 +Skoda,Octavia Combi RS,31590,169,1984,1442,6.5,5,4 +Hyundai,Santa Fe 2.4 GDI,31190,138,2359,1708,9.4,5,4 +Skoda,Octavia RS,30890,169,1984,1420,6.5,5,4 +Peugeot,508 SW THP 165 STOP&START,30850,121,1598,1495,5.8,5,4 +Renault,Talisman Grandtour Energy TCe 150,30800,110,1618,1565,5.8,5,4 +Volvo,S60 T2,30500,90,1498,1632,5.8,4,4 +SEAT,Alhambra 1.4 TSI Start&Stop,30435,110,1395,1703,6.4,5,4 +Ford,S-MAX 1.5 EcoBoost Start/Stopp,30400,118,1498,1645,6.5,5,4 +Subaru,Levorg 1.6 Turbo,29990,125,1600,1537,6.9,5,4 +Toyota,GT86 2.0,29990,147,1998,1305,7.8,2,4 +VW,Tiguan Allspace 1.4 TSI ACT,29975,110,1395,1570,6.1,5,4 +Peugeot,508 THP 165 STOP&START,29800,121,1598,1475,5.8,4,4 +Renault,Talisman Energy TCe 150,29800,110,1618,1505,5.6,4,4 +Toyota,RAV4 2.0,27990,112,1987,1565,6.7,5,4 +VW,Passat Variant 1.4 TSI BMT,27875,92,1395,1394,5.3,5,4 +Opel,Cascada 1.4 Turbo,27545,88,1364,1701,6.7,2,4 +Ford,Mondeo Turnier 1.0 EcoBoost,26990,92,998,1476,5.3,5,4 +VW,Passat 1.4 TSI BMT,26800,92,1395,1367,5.3,4,4 +Opel,Insignia Sports Tourer 1.5 DI Turbo Start&Stop,26730,103,1490,1487,6,5,4 +Skoda,Kodiaq 1.4 TSI,26150,92,1395,1502,6,5,4 +Ford,Mondeo 1.0 EcoBoost,25990,92,998,1455,5.2,5,4 +KIA,Optima Sportswagon 2.0,25990,120,1999,1550,7.6,5,4 +Subaru,Forester 2.0X,25900,110,1995,1478,6.9,5,4 +Mazda,6 SKYACTIV-G 145 i-ELOOP,25890,107,1998,1375,5.5,4,4 +Mazda,6 Kombi SKYACTIV-G 145 i-ELOOP,25890,107,1998,1380,5.6,5,4 +Toyota,Avensis Touring Sports 1.6,25740,97,1598,1460,6.2,5,4 +Opel,Insignia Grand Sport 1.5 DI Turbo Start&Stop,25630,103,1490,1441,5.9,5,4 +Hyundai,i40 Kombi 1.6 GDI blue,25490,99,1591,1503,6.1,5,4 +Nissan,X-Trail 1.6 DIG-T,25440,120,1618,1505,6.2,5,4 +KIA,Optima 2.0,25090,120,1999,1530,7.4,4,4 +Nissan,X-Trail 1.6 DIG-T,24990,120,1618,1505,6.2,5,4 +Peugeot,5008 1.2 PureTech 130,24900,96,1199,1385,5.1,5,4 +Toyota,Avensis 1.6,24740,97,1598,1430,6.1,4,4 +Honda,CR-V 2.0,23990,114,1997,1531,7.2,5,4 +Mitsubishi,Outlander 2.0 ClearTec,21990,110,1998,1497,6.7,5,4 +Nissan,Evalia 16V 110,20690,81,1598,1386,7.3,5,4 +Nissan,NV200 Kombi 16V 110,19921,81,1598,1351,7.3,5,4 +Skoda,Octavia Combi 1.2 TSI,18150,63,1197,1247,4.8,5,4 +Skoda,Octavia 1.2 TSI,17450,63,1197,1225,4.8,5,4 +Nissan,GT-R Nismo,184950,441,3799,1800,11.8,3,5 +Jaguar,F-Type SVR Cabriolet 5.0 V8 Kompressor,146400,423,5000,1720,11.3,2,5 +Jaguar,F-Type SVR Coupee 5.0 V8 Kompressor,139400,423,5000,1705,11.3,3,5 +Porsche,Cayenne Turbo,138850,404,3996,2250,11.9,5,5 +Porsche,Cayenne Turbo,132781,382,4806,2260,11.2,5,5 +BMW,X6 M,124200,423,4395,2265,11.1,5,5 +Mercedes,CLS 63 AMG Shooting Brake,122630,410,5461,2025,10.6,5,5 +Audi,RS7 performance cod Sportback,122200,445,3993,2005,9.5,5,5 +BMW,X5 M,120700,423,4395,2350,11.1,5,5 +BMW,M5,117900,441,4395,1930,10.5,4,5 +Mercedes,CLS 63 AMG Coupee,116918,410,5461,1870,9.9,4,5 +BMW Alpina,B5 Bi-Turbo Touring,115300,447,4395,2120,10.4,5,5 +Audi,RS6 cod Avant,112000,412,3993,2025,9.8,5,5 +BMW Alpina,B5 Bi-Turbo,112000,447,4395,2015,10.3,4,5 +Porsche,Cayenne GTS,102555,324,3604,2185,9.8,5,5 +Lexus,GS F,100500,351,4969,1865,11.2,4,5 +Nissan,GT-R,99900,419,3799,1827,11.8,3,5 +Cadillac,CTS-V,98900,477,6162,1925,13,4,5 +Dodge,Charger SRT 392,85900,362,6417,2000,15.5,4,5 +Audi,S7 cod Sportback,84600,331,3993,2030,9.3,5,5 +Dodge,Challenger SRT 392,82900,362,6417,2000,15.5,2,5 +Audi,S6 cod Avant,80150,331,3993,2035,9.4,5,5 +Mercedes,E 43 AMG T-Modell,78177,295,2996,1930,8.6,5,5 +Porsche,718 Boxster GTS,78160,269,2497,1450,9,2,5 +Audi,S6 cod,77650,331,3993,1970,9.2,4,5 +Mercedes,GLE Coupee 43 AMG,77469,270,2996,2240,8.9,5,5 +Porsche,718 Cayman GTS,76137,269,2497,1450,9,2,5 +Maserati,Levante,76000,257,2979,2109,10.7,4,5 +Mercedes,E 43 AMG,75387,295,2996,1840,8.2,4,5 +Porsche,Cayenne,74828,250,2995,1985,9,5,5 +BMW,X6 xDrive35i,72000,225,2979,2100,8.5,5,5 +Mercedes,GLE 43 AMG,70746,270,2996,2180,8.6,5,5 +Maserati,Ghibli,70250,257,2979,1810,8.9,4,5 +Maserati,Ghibli,69200,243,2979,1810,8.9,4,5 +Mercedes,GLE Coupee 400,68306,245,2996,2180,8.7,5,5 +BMW,X5 xDrive35i,66400,225,2979,2105,8.5,5,5 +Jaguar,F-Type Cabriolet P300,66200,221,1997,1545,7.2,2,5 +Mercedes,CLS 400 Shooting Brake,65212,245,3498,1845,7.3,5,5 +Mercedes,CLS 400 Coupee,63427,245,3498,1775,7.4,4,5 +BMW,630i Gran Turismo,62300,190,1998,1720,6.2,5,5 +Dodge,RAM 1500 Quad Cab 5.7 V8,61900,295,5700,2556,12.8,4,5 +Mercedes,GLE 400,61583,245,2996,2130,8.5,5,5 +Infiniti,Q70 3.7,60750,235,3696,1826,10.8,4,5 +Volvo,XC90 T5,59850,184,1969,2112,7.8,5,5 +Jaguar,F-Type Coupee P300,59200,221,1997,1525,7.2,3,5 +Volvo,V90 Cross Country T5,57800,184,1969,1937,7.3,5,5 +Porsche,718.,54717,220,1988,1410,7.4,2,5 +Land Rover,Discovery Si4,54700,221,1997,2093,9.4,5,5 +Mercedes,E 200 Cabriolet,54228,135,1991,1755,6.2,3,5 +Infiniti,QX70 3.7,53800,235,3696,2012,12.1,5,5 +Porsche,718.,52694,220,1988,1410,7.4,2,5 +Jeep,Grand Cherokee 3.6 V6,51900,213,3604,2266,10,5,5 +Jaguar,XF Sportbrake 25t,51060,184,1997,1760,6.8,5,5 +Lexus,RX 200t,49900,175,1998,1885,7.8,5,5 +Cadillac,XT5 3.6 V6,49300,231,3649,1954,10,5,5 +BMW,520i Touring,49100,135,1998,1705,5.8,5,5 +Mercedes,E 200 T-Modell,48903,135,1991,1705,6.2,5,5 +Chevrolet,Camaro Cabriolet 2.0 Turbo,48000,202,1998,1659,8.1,2,5 +BMW,520i,46600,135,1998,1605,5.4,4,5 +Mercedes,E 200 Coupee,46494,135,1991,1645,6.5,3,5 +Cadillac,CTS 2.0 Turbo,45350,203,1998,1659,7.8,4,5 +Audi,A6 Avant 1.8 TFSI ultra,45200,140,1798,1710,5.9,5,5 +Jaguar,XF 20t,45060,147,1997,1635,6.8,4,5 +Volvo,V90 T4,44900,140,1969,1851,6.9,5,5 +VW,T6 California 2.0 TSI BMT,44833,110,1984,2264,9.5,4,5 +Ford,Mustang Convertible 2.3 EcoBoost,43500,213,2261,1715,9.1,2,5 +Volvo,S90 T4,43450,140,1969,1800,6.7,4,5 +Mercedes,E 200,43019,135,1991,1575,6.1,4,5 +Audi,A6 1.8 TFSI ultra,42700,140,1798,1645,5.7,4,5 +Ford,Mustang Convertible 2.3 EcoBoost,42500,233,2261,1715,8.2,2,5 +Chevrolet,Camaro Coupee 2.0 Turbo,40400,202,1998,1539,8,2,5 +Ford,Mustang Fastback 2.3 EcoBoost,39000,213,2261,1655,9,2,5 +VW,T6 Caravelle 2.0 TSI BMT,38645,110,1984,1862,9.1,4,5 +Ford,Mustang Fastback 2.3 EcoBoost,38000,233,2261,1655,8,2,5 +VW,T6 Multivan 2.0 TSI BMT,36902,110,1984,2007,9.2,4,5 +VW,Arteon 1.5 TSI ACT,35325,110,1498,1504,5.1,5,5 +VW,T6 Transporter Kombi 2.0 TSI BMT Normaldach,33832,110,1984,1862,9.1,4,5 +Skoda,Superb Combi 1.4 TSI,26750,92,1395,1395,5.6,5,5 +Skoda,Superb 1.4 TSI,25750,92,1395,1375,5.6,5,5 +Mercedes,Maybach G 650,749700,463,5980,2580,17,5,6 +Ford,GT,500000,475,3497,1385,14.9,2,6 +Rolls-Royce,Phantom 6.8 V12,446250,420,6749,2560,13.9,4,6 +Lamborghini,Aventador S Roadster LP740-4,373262,544,6498,1625,16.9,2,6 +Mercedes,Maybach S 650 Cabriolet,357000,463,5980,2115,12,2,6 +Lamborghini,Aventador S LP740-4,335055,544,6498,1575,16.9,2,6 +Rolls-Royce,Dawn 6.6 V12,329630,420,6592,2560,14.2,2,6 +Bentley,Mulsanne,297191,377,6752,2685,15,4,6 +Bentley,Continental Supersports Convertible,291253,522,5998,2455,15.9,2,6 +Rolls-Royce,Wraith 6.6 V12,285898,465,6592,2435,14.3,2,6 +Porsche,911 GT2 RS,285220,515,3800,1545,11.8,2,6 +Ferrari,812.,282934,588,6496,1630,14.9,2,6 +Rolls-Royce,Ghost 6.6 V12,277657,420,6592,2435,14.3,4,6 +Aston Martin,Vanquish Volante,268995,424,5935,1919,12.8,3,6 +Bentley,Continental Supersports,264775,522,5998,2280,15.7,2,6 +Mercedes,S 65 AMG Cabriolet,257457,463,5980,2255,12,2,6 +Aston Martin,Vanquish,253995,424,5935,1814,12.8,3,6 +McLaren,720S,247350,527,3994,1322,10.7,2,6 +Ferrari,F488 Spider,236750,493,3902,1525,11.4,2,6 +Mercedes,G 500 4x4,231693,310,3982,3021,13.8,5,6 +Ferrari,GTC4Lusso T,226246,449,3855,1870,11.6,2,6 +Ferrari,F488 GTB,212653,493,3902,1475,11.4,2,6 +McLaren,570S Spider,208975,419,3799,1573,10.7,2,6 +Bentley,Bentayga W12,208488,447,5950,2440,12.8,5,6 +Lamborghini,Urus,204000,478,3996,2200,12.7,5,6 +Aston Martin,DB11 Volante V8,199000,375,3982,1870,9.9,3,6 +Bentley,Continental GT W12,198492,467,5950,2244,12.2,2,6 +Lamborghini,Huracn Spyder LP580-2,196350,426,5204,1509,12.1,2,6 +McLaren,570GT,195350,419,3799,1515,10.7,2,6 +Aston Martin,Rapide S,193995,411,5935,2065,12.9,5,6 +Aston Martin,V12 Vantage S Roadster,192741,421,5935,1745,14.7,3,6 +Bentley,Continental GT Convertible V8,192066,373,3993,2470,10.9,2,6 +Porsche,911 Turbo Cabriolet,190020,397,3800,1740,9.3,2,6 +Mercedes,S 63 AMG Cabriolet,190013,430,5461,2185,10.4,2,6 +Porsche,911.,189544,368,3996,1445,13.3,2,6 +McLaren,570S,185400,419,3799,1515,10.7,2,6 +Ferrari,California T,184689,412,3855,1730,10.7,2,6 +Aston Martin,DB11 V8,184000,375,3982,1760,9.9,3,6 +Bentley,Flying Spur V8,183855,373,3993,2417,10.9,4,6 +Donkervoort,D8 GTO-RS,182070,284,2480,695,8,2,6 +Aston Martin,V12 Vantage S,179950,421,5935,1680,17,3,6 +Lamborghini,Huracn LP580-2,178500,426,5204,1389,11.9,2,6 +Mercedes,S 63 AMG Coupee,177310,450,3982,2080,9.3,2,6 +Porsche,911 Turbo Coupee,176930,397,3800,1670,9.1,2,6 +Mercedes,S 63 AMG Coupee,175436,430,5461,2070,10.1,2,6 +Bentley,Continental GT V8,174573,373,3993,2370,10.6,2,6 +McLaren,540C,163200,397,3799,1446,10.7,2,6 +Mercedes,SL 63 AMG,161959,430,5461,1845,9.8,2,6 +Mercedes,S 63 AMG,160293,450,3982,2070,8.9,4,6 +Porsche,Panamera Sport Turismo Turbo,158604,404,3996,2110,9.4,5,6 +Porsche,Panamera Turbo,155748,404,3996,2070,9.3,5,6 +Audi,R8 Spyder 5.2 FSI V10,153000,397,5204,1755,12.6,2,6 +Porsche,911.,152416,368,3996,1488,12.9,2,6 +BMW Alpina,B7 Bi-Turbo,149400,447,4395,2110,10.4,4,6 +Porsche,911.,146228,331,2981,1660,9.7,2,6 +Mercedes,G 63 AMG,145359,420,5461,2550,13.8,5,6 +Maserati,GranCabrio Sport,144320,338,4691,1980,14.5,2,6 +Jaguar,XJR575,143900,423,5000,1875,11.1,4,6 +Mercedes,S 500 Cabriolet,140545,335,4663,2115,8.5,2,6 +Audi,R8 Coupee 5.2 FSI V10,140000,397,5204,1665,12.4,2,6 +Mercedes,Maybach S 560,139700,345,3982,2240,8.8,4,6 +Porsche,911 Carrera Cabriolet,138850,331,2981,1595,9.4,2,6 +Donkervoort,D8 GTO-S,138040,254,2480,740,8,2,6 +BMW,M6 Cabrio,137200,412,4395,2055,10.3,2,6 +BMW Alpina,B6 Bi-Turbo Cabriolet,137200,441,4395,2095,9.6,2,6 +BMW Alpina,B6 Bi-Turbo Gran Coupee,135800,441,4395,2030,10.4,4,6 +Aston Martin,V8 Vantage S Roadster,135520,321,4735,1710,13.8,2,6 +Mercedes,GLS 63 AMG,135482,430,5461,2580,12.3,5,6 +BMW,M6 Gran Coupee,134500,412,4395,1950,9.9,4,6 +Land Rover,Range Rover Sport SVR,132200,423,5000,2310,12.8,5,6 +BMW,M6 Coupee,129600,412,4395,1925,9.9,2,6 +Land Rover,Range Rover Sport SVR,129600,405,5000,2330,12.8,5,6 +BMW Alpina,B6 Bi-Turbo Coupee,129200,441,4395,1940,9.4,2,6 +Mercedes,AMG GT Roadster,129180,350,3982,1670,9.4,2,6 +Maserati,GranTurismo Sport,129020,338,4691,1880,14.3,2,6 +Aston Martin,V8 Vantage AMR,126995,320,4735,1610,13.8,3,6 +Porsche,911 Carrera Coupee,125760,331,2981,1525,9.4,2,6 +Chevrolet,Corvette Z06 Cabriolet,124700,485,6162,1734,12.7,2,6 +Land Rover,Range Rover 5.0 V8 SC,121800,375,5000,2336,12.8,5,6 +Chevrolet,Corvette Z06 Coupee,119700,485,6162,1734,12.7,3,6 +Audi,S8 cod,118500,382,3993,2050,9.4,4,6 +Porsche,911.,118382,272,2981,1645,8.9,2,6 +Mercedes,AMG GT Coupee,117280,350,3982,1615,9.3,2,6 +Porsche,911 Carrera Cabriolet,111004,272,2981,1575,8.5,2,6 +Porsche,911 Carrera T Coupee,107553,272,2981,1500,9.5,2,6 +Mercedes,G 500,106701,310,3982,2595,12.3,5,6 +Audi,A8 4.0 TFSI cod,104400,320,3993,1955,8.9,4,6 +Mercedes,S 450 Coupee,101656,270,2996,2050,8.9,2,6 +Chevrolet,Corvette Grand Sport Cabriolet 6.2 V8,100900,343,6162,1614,12.3,2,6 +Mercedes,S 400 Coupee,100561,270,2996,2035,8.3,2,6 +Cadillac,Escalade 6.2 V8,99900,313,6162,2710,12.6,5,6 +Mercedes,SL 400,99341,270,2996,1735,7.7,2,6 +Porsche,911 Carrera Coupee,97914,272,2981,1505,8.3,2,6 +Porsche,Panamera Sport Turismo 4,97557,243,2995,1955,7.8,5,6 +Maserati,Quattroporte,97430,257,2979,1860,9.1,4,6 +Chevrolet,Corvette Grand Sport Coupe 6.2 V8,95900,343,6162,1588,12.3,3,6 +Land Rover,Range Rover Sport 5.0 V8 SC,94900,375,5000,2306,12.8,5,6 +Jaguar,XJ 3.0 V6 Kompressor,93800,250,2995,1865,9.8,4,6 +BMW,740i,93000,240,2998,1800,6.8,4,6 +Mercedes,S 450,92255,270,2987,1995,6.6,4,6 +Porsche,Panamera,90655,243,2995,1890,7.5,5,6 +BMW,640i Cabrio,90600,235,2979,1895,7.7,2,6 +Chevrolet,Corvette Stingray Cabriolet 6.2 V8,85400,343,6162,1664,12.3,2,6 +BMW,640i Gran Coupe,83900,235,2979,1825,7.6,4,6 +BMW,640i Coupe,81900,235,2979,1760,7.6,2,6 +Chevrolet,Corvette Stingray Coupe 6.2 V8,80400,343,6162,1614,12.3,3,6 +Mercedes,GLS 400,77029,245,2996,2435,8.9,5,6 +Cadillac,CT6 3.0 V6,73500,307,2997,1879,9.6,4,6 +Land Rover,Range Rover Sport 2.0 Si4,65600,221,1997,2083,9.2,5,6 +Land Rover,Range Rover Evoque Coupe Si4,62200,213,1998,1833,7.6,3,3 +BMW,M2 Coupe,59500,272,2979,1570,8.5,2,3 +Mercedes,CLA 45 AMG Shooting Brake,57804,280,1991,1615,6.9,5,3 +Mercedes,CLA 45 AMG,57209,280,1991,1585,6.9,4,3 +Mercedes,GLA 45 AMG,56852,280,1991,1585,7.4,5,3 +Audi,RS3 Limousine,55900,294,2480,1590,8.3,4,3 +Land Rover,Range Rover Evoque Cabriolet Si4,55300,177,1998,2013,8.2,2,3 +Audi,RS3 Sportback,54600,294,2480,1585,8.3,5,3 +Mercedes,A 45 AMG,51527,280,1991,1555,6.9,5,3 +Audi,S3 Cabriolet,51150,228,1984,1710,6.7,2,3 +VW,Golf R Variant,45350,228,1984,1593,7.1,5,3 +Subaru,Impreza WRX STi 2.5,44500,221,2457,1527,10.9,4,3 +Land Rover,Range Rover Evoque Si4,43850,177,1998,1752,8.2,5,3 +Audi,S3 Limousine,43250,228,1984,1505,7,4,3 +Audi,S3 Sportback,42350,228,1984,1505,7,5,3 +Jaguar,E-Pace P250,42350,183,1998,1832,7.7,5,3 +Subaru,Impreza WRX STi 2.5,41550,221,2457,1575,10.4,4,3 +Audi,S3,41450,228,1984,1480,7,3,3 +VW,Golf R,41175,228,1984,1483,7.8,3,3 +Ford,Focus RS,40675,257,2261,1560,7.7,5,3 +Infiniti,QX30 2.0t,40150,155,1991,1542,6.7,5,3 +Lotus,Elise,39900,100,1598,876,6.3,2,3 +MINI,John Cooper Works Countryman,39500,170,1998,1615,7.4,5,3 +BMW,X2 sDrive20i,39200,141,1998,1535,5.5,5,3 +MINI,John Cooper Works Clubman,36800,170,1998,1550,7.4,5,3 +Opel,Astra OPC,36360,206,1998,1550,7.8,3,3 +Honda,Civic Type R,36050,235,1996,1380,7.7,5,3 +SEAT,Leon ST Cupra 300,35930,221,1984,1440,7,5,3 +Peugeot,308.,35350,200,1598,1280,6,5,3 +SEAT,Leon Cupra 300,34730,221,1984,1395,6.9,5,3 +SEAT,Leon SC Cupra 300,34340,221,1984,1375,6.9,3,3 +VW,Touran 1.2 TSI BMT,34300,81,1197,1436,5.5,5,3 +BMW,218i Cabrio,34200,100,1499,1575,5.5,2,3 +VW,Golf Alltrack 1.8 TSI BMT,34125,132,1798,1537,6.7,5,3 +Mazda,CX-5 SKYACTIV-G 160,32190,118,1998,1495,6.8,5,3 +BMW,X1 sDrive18i,31700,103,1499,1475,5.5,5,3 +Audi,A3 Cabriolet 1.4 TFSI,31450,85,1395,1430,5.3,2,3 +Volvo,XC40 T3,31350,114,1498,1725,6.8,5,3 +Ford,Focus Turnier ST 2.0 EcoBoost Start/Stopp,30550,184,1999,1461,6.8,5,3 +VW,Golf GTI,30425,169,1984,1364,6.4,3,3 +Mercedes,CLA 180 Shooting Brake,30274,90,1595,1430,5.5,5,3 +Mazda,MX-5 RF SKYACTIV-G 160,29890,118,1998,1120,6.9,2,3 +BMW,218i Coupe,29750,100,1499,1420,5.1,2,3 +Hyundai,i30 N,29700,184,1998,1475,7,5,3 +Mercedes,CLA 180,29679,90,1595,1395,5.4,4,3 +Ford,Focus ST 2.0 EcoBoost Start/Stopp,29600,184,1999,1437,6.8,5,3 +Mercedes,GLA 180,28941,90,1595,1395,5.7,5,3 +Audi,Q3 1.4 TFSI,28700,92,1395,1460,5.8,5,3 +BMW,216i Gran Tourer,28600,75,1499,1475,5.3,5,3 +Volvo,V40 Cross Country T3,28280,112,1969,1569,5.6,5,3 +BMW,216i Active Tourer,27350,75,1499,1415,5.4,5,3 +VW,Tiguan 1.4 TSI,26975,92,1395,1490,6.1,5,3 +Mercedes,B 160,26638,75,1595,1395,5.5,5,3 +Audi,A3 Limousine 1.0 TFSI,25550,85,999,1260,4.4,4,3 +Honda,Civic Limousine 1.5 Turbo,25520,134,1498,1321,5.7,4,3 +DS Automobiles,DS 4 Crossback PureTech 130 Stop&Start,25490,96,1199,1330,4.9,5,3 +KIA,pro_ceed GT,25390,150,1591,1395,7.4,3,3 +KIA,ceed GT,25390,150,1591,1382,7.4,5,3 +Fiat,124 Spider 1.4 Multiair Turbo,24990,103,1368,1125,6.4,2,3 +Fiat,124 Spider 1.4 Multiair Turbo,24990,103,1368,1125,6.4,2,3 +Hyundai,Veloster 1.6 Turbo,24990,137,1591,1333,6.9,4,3 +SEAT,Leon X-PERIENCE 1.4 TSI Start&Stop,24950,92,1395,1263,5.3,5,3 +VW,Scirocco 1.4 TSI BMT,24950,92,1395,1280,5.4,3,3 +Jeep,Compass 1.4 Multiair 140,24900,103,1368,1505,6.2,5,3 +Volvo,V40 T2,24850,90,1969,1546,5.6,5,3 +VW,Caddy Alltrack 1.2 TSI BMT,24782,62,1197,1350,6.1,5,3 +BMW,116i,24700,80,1499,1375,5.3,3,3 +Mercedes,A 160,24681,75,1595,1370,5.4,5,3 +Audi,A3 Sportback 1.0 TFSI,24650,85,999,1255,4.5,5,3 +Honda,Civic Tourer 1.8,24590,104,1798,1355,6.2,5,3 +Skoda,Karoq 1.0 TSI,24290,85,999,1340,5.1,5,3 +Infiniti,Q30 1.6t,24200,90,1595,1407,5.7,5,3 +MINI,One Countryman,24000,75,1499,1440,5.5,5,3 +DS Automobiles,DS 4 PureTech 130 Stop&Start,23990,96,1199,1330,4.9,5,3 +KIA,pro_ceed 1.0 T-GDI 120 ISG,23990,88,998,1271,4.9,3,3 +Opel,Zafira 1.4 Turbo,23950,88,1364,1628,6.8,5,3 +Audi,A3 1.0 TFSI,23750,85,999,1225,4.5,3,3 +Opel,Grandland X 1.2 DI Turbo Start&Stop,23700,96,1199,1350,5.4,5,3 +Renault,Grand Sconic ENERGY TCe 115,23690,85,1197,1505,6.1,5,3 +VW,Beetle Cabriolet 1.2 TSI BMT,23450,77,1197,1395,5.4,2,3 +Audi,Q2 1.0 TFSI ultra,23400,85,999,1280,5.1,5,3 +Ford,Kuga 1.5 EcoBoost Start/Stopp,23300,88,1498,1579,6.3,5,3 +Peugeot,3008 1.2 PureTech 130,23250,96,1199,1325,5.1,5,3 +Mazda,MX-5 SKYACTIV-G 131,22990,96,1496,1050,6,2,3 +Subaru,XV 1.6i,22980,84,1600,1408,6.4,5,3 +VW,Caddy Beach 1.2 TSI BMT,22943,62,1197,1350,6.1,5,3 +MINI,One Clubman,22850,75,1499,1375,5.1,5,3 +Hyundai,Tucson 1.6 GDI blue ,22740,97,1591,1454,6.3,5,3 +Hyundai,i30 Fastback 1.0 T-GDI,22200,88, 998,1460,5.2,5,3 +Toyota,C-HR 1.2 T,21990,85,1197,1320,5.9,5,3 +Subaru,Impreza 1.6i,21980,84,1600,1359,6.2,5,3 +VW,Golf Variant 1.0 TSI BMT,21850,81,999,1295,4.9,5,3 +Mazda,3 SKYACTIV-G 120,21790,88,1998,1280,5.1,4,3 +Toyota,Verso 1.6,21765,97,1598,1505,6.8,5,3 +Alfa Romeo,Giulietta 1.4 TB 16V,21500,88,1368,1355,6.2,5,3 +Opel,Astra GTC 1.4 Turbo,21360,88,1364,1437,6.3,3,3 +Toyota,Corolla 1.6,21220,97,1598,1270,6,4,3 +Citroen,Grand C4 Picasso PureTech 130 Stop&Start,20990,96,1199,1370,5,5,3 +Ford,Grand C-MAX 1.0 EcoBoost Start/Stopp,20850,74,998,1493,5.2,5,3 +Nissan,Qashqai 1.2 DIG-T,20490,85,1197,1350,5.6,5,3 +VW,Golf Sportsvan 1.0 TSI,20475,63,999,1335,4.9,5,3 +VW,Golf Sportsvan 1.2 TSI BMT,20475,63,1197,1320,5,5,3 +VW,T-Roc 1.0 TSI,20390,85,999,1270,5.1,5,3 +Ford,Tourneo Connect 1.0 EcoBoost Start/Stopp,20249,74,998,1474,5.6,5,3 +Opel,Astra 1.6,20220,85,1598,1405,6.8,4,3 +Honda,Civic 1.0 Turbo,19990,95,988,1229,4.8,5,3 +KIA,Carens 1.6 GDI,19990,99,1591,1458,6.5,5,3 +KIA,Sportage 1.6 GDI,19990,97,1591,1397,6.7,5,3 +Mercedes,Citan Tourer lang 112,19990,84,1192,1440,6.2,5,3 +Renault,Sconic ENERGY TCe 115,19990,85,1197,1503,5.8,5,3 +Renault,Kadjar ENERGY TCe 130,19990,96,1197,1381,5.7,5,3 +SEAT,Ateca 1.0 TSI Ecomotive,19990,85,999,1280,5.2,5,3 +SsangYong,Korando 2.0 e-XGi 200,19990,110,1998,1612,7.5,5,3 +Subaru,XV 1.6i,19990,84,1600,1370,6.5,5,3 +Peugeot,308 SW 1.2 PureTech 110,19800,81,1199,1265,4.7,5,3 +Suzuki,SX4 S-Cross 1.0 Boosterjet,19790,82,998,1165,5,5,3 +Citroen,C4 Picasso PureTech 110 Stop&Start,18990,81,1199,1355,5.1,5,3 +Mitsubishi,ASX 1.6 ClearTec,18990,86,1590,1335,5.7,5,3 +Ford,Focus 1.0 EcoBoost Start/Stopp,18700,74,998,1303,4.8,4,3 +Peugeot,308 1.2 PureTech 110,18700,81,1199,1155,4.6,5,3 +Subaru,Impreza 1.6i,18600,84,1600,1380,6.2,5,3 +Opel,Astra Sports Tourer 1.4,18550,74,1399,1273,5.7,5,3 +VW,Caddy 1.2 TSI BMT,18528,62,1197,1350,6.1,4,3 +Mitsubishi,Lancer 1.6 ClearTec,18490,86,1590,1305,5.5,4,3 +Mitsubishi,Lancer Sportback 1.6 ClearTec,18490,86,1590,1345,5.5,5,3 +Renault,Megane Grandtour ENERGY TCe 100,18490,74,1197,1366,5.4,5,3 +Hyundai,i30 Kombi 1.4,18450,74,1368,1285,5.6,5,3 +VW,Caddy Kombi 1.2 TSI BMT,18445,62,1197,1350,6.1,4,3 +Nissan,Pulsar 1.2 DIG-T,18270,85,1197,1265,5,5,3 +Ford,C-MAX 1.6 Ti-VCT,18250,63,1596,1374,6.4,5,3 +Mazda,3 SKYACTIV-G 100,18190,74,1496,1260,5.1,5,3 +VW,Golf 1.0 TSI BMT,18075,63,999,1206,4.8,3,3 +Fiat,DoblKombi 1.4 16V,17990,70,1368,1370,7.4,5,3 +SEAT,Toledo 1.2 TSI,17990,66,1197,1156,4.7,5,3 +Citroen,Berlingo Kombi VTi 95,17850,72,1598,1395,6.4,4,3 +Peugeot,Partner Tepee VTi 98,17850,72,1598,1550,6.4,4,3 +Ford,Focus Turnier 1.6 Ti-VCT,17700,63,1596,1300,6,5,3 +Toyota,Auris Touring Sports 1.33,17690,73,1329,1250,5.6,5,3 +Opel,Astra 1.4,17550,74,1399,1244,5.5,5,3 +Renault,Megane ENERGY TCe 100,17490,74,1197,1280,5.4,5,3 +SsangYong,XLV 1.6 e-XGi 160,17490,94,1597,1390,7.1,5,3 +Hyundai,i30 1.4,17450,74,1368,1244,5.4,5,3 +Citroen,C4 PureTech 110,17240,81,1199,1275,4.8,5,3 +Renault,Kangoo ENERGY TCe 115,17150,84,1197,1395,6.2,4,3 +SEAT,Leon ST 1.2 TSI,16640,63,1197,1233,5.1,5,3 +Toyota,Auris 1.33,16490,73,1329,1225,5.5,5,3 +Fiat,Tipo Kombi 1.4 16V,16450,70,1368,1280,5.7,5,3 +Ford,Focus 1.6 Ti-VCT,16450,63,1596,1264,5.9,5,3 +KIA,ceed Sportswagon 1.4,16190,73,1368,1279,6,5,3 +Skoda,Rapid 1.0 TSI,15890,70,999,1170,4.4,5,3 +Skoda,Rapid Spaceback 1.0 TSI,15790,70,999,1165,4.4,5,3 +SEAT,Leon 1.2 TSI,15490,63,1197,1188,5.1,5,3 +Fiat,Tipo 1.4 16V,15450,70,1368,1270,5.7,5,3 +Opel,Combo Combi 1.4,15110,70,1364,1445,7.4,5,3 +SEAT,Leon SC 1.2 TSI,14990,63,1197,1168,5.1,3,3 +KIA,ceed 1.4,14490,73,1368,1254,6,5,3 +Fiat,Tipo 1.4 16V,14450,70,1368,1225,5.7,4,3 +Dacia,Lodgy Stepway TCe 115 Start&Stop,14200,85,1197,1278,5.6,5,3 +Dacia,Dokker Stepway TCe 115 Start&Stop,13600,85,1197,1280,5.7,5,3 +Citroen,C-Elysee PureTech 82,12990,60,1199,1055,4.8,4,3 +Lada,Vesta 1.6 16V,12740,78,1596,1250,6.1,4,3 +Dacia,Logan MCV Stepway TCe 90 Start&Stop,12200,66,898,1165,5.1,5,3 +Lada,Urban 1.7,11990,61,1690,1285,9.5,3,3 +Dacia,Duster SCe 115,11290,84,1598,1262,6.6,5,3 +Lada,Taiga 1.7,10790,61,1690,1285,9.5,3,3 +Dacia,Duster SCe 115 Start&Stop,10690,84,1598,1165,6.4,5,3 +Dacia,Lodgy SCe 100 Start&Stop,9990,75,1598,1211,6.1,5,3 +Dacia,Dokker SCe 100 Start&Stop,8990,75,1598,1239,6.2,4,3 +Lada,Granta 1.6 8V,8500,64,1596,1080,6.6,5,3 +Dacia,Logan MCV SCe 75,7990,54,998,1091,5.4,5,3 +Lada,Granta 1.6 8V,7260,64,1596,1080,6.6,4,3 \ No newline at end of file diff --git a/08-korrelation-und-dimensionsreduktion/datasaurus.csv b/08-korrelation-und-dimensionsreduktion/datasaurus.csv new file mode 100644 index 0000000000000000000000000000000000000000..10ad97cd8ac1862e128448a2a4bf94f1bf5f3a2f --- /dev/null +++ b/08-korrelation-und-dimensionsreduktion/datasaurus.csv @@ -0,0 +1,1847 @@ +dataset,x,y +dino,55.3846,97.1795 +dino,51.5385,96.0256 +dino,46.1538,94.4872 +dino,42.8205,91.4103 +dino,40.7692,88.3333 +dino,38.7179,84.8718 +dino,35.641,79.8718 +dino,33.0769,77.5641 +dino,28.9744,74.4872 +dino,26.1538,71.4103 +dino,23.0769,66.4103 +dino,22.3077,61.7949 +dino,22.3077,57.1795 +dino,23.3333,52.9487 +dino,25.8974,51.0256 +dino,29.4872,51.0256 +dino,32.8205,51.0256 +dino,35.3846,51.4103 +dino,40.2564,51.4103 +dino,44.1026,52.9487 +dino,46.6667,54.1026 +dino,50,55.2564 +dino,53.0769,55.641 +dino,56.6667,56.0256 +dino,59.2308,57.9487 +dino,61.2821,62.1795 +dino,61.5385,66.4103 +dino,61.7949,69.1026 +dino,57.4359,55.2564 +dino,54.8718,49.8718 +dino,52.5641,46.0256 +dino,48.2051,38.3333 +dino,49.4872,42.1795 +dino,51.0256,44.1026 +dino,45.3846,36.4103 +dino,42.8205,32.5641 +dino,38.7179,31.4103 +dino,35.1282,30.2564 +dino,32.5641,32.1795 +dino,30,36.7949 +dino,33.5897,41.4103 +dino,36.6667,45.641 +dino,38.2051,49.1026 +dino,29.7436,36.0256 +dino,29.7436,32.1795 +dino,30,29.1026 +dino,32.0513,26.7949 +dino,35.8974,25.2564 +dino,41.0256,25.2564 +dino,44.1026,25.641 +dino,47.1795,28.718 +dino,49.4872,31.4103 +dino,51.5385,34.8718 +dino,53.5897,37.5641 +dino,55.1282,40.641 +dino,56.6667,42.1795 +dino,59.2308,44.4872 +dino,62.3077,46.0256 +dino,64.8718,46.7949 +dino,67.9487,47.9487 +dino,70.5128,53.718 +dino,71.5385,60.641 +dino,71.5385,64.4872 +dino,69.4872,69.4872 +dino,46.9231,79.8718 +dino,48.2051,84.1026 +dino,50,85.2564 +dino,53.0769,85.2564 +dino,55.3846,86.0256 +dino,56.6667,86.0256 +dino,56.1538,82.9487 +dino,53.8462,80.641 +dino,51.2821,78.718 +dino,50,78.718 +dino,47.9487,77.5641 +dino,29.7436,59.8718 +dino,29.7436,62.1795 +dino,31.2821,62.5641 +dino,57.9487,99.4872 +dino,61.7949,99.1026 +dino,64.8718,97.5641 +dino,68.4615,94.1026 +dino,70.7692,91.0256 +dino,72.0513,86.4103 +dino,73.8462,83.3333 +dino,75.1282,79.1026 +dino,76.6667,75.2564 +dino,77.6923,71.4103 +dino,79.7436,66.7949 +dino,81.7949,60.2564 +dino,83.3333,55.2564 +dino,85.1282,51.4103 +dino,86.4103,47.5641 +dino,87.9487,46.0256 +dino,89.4872,42.5641 +dino,93.3333,39.8718 +dino,95.3846,36.7949 +dino,98.2051,33.718 +dino,56.6667,40.641 +dino,59.2308,38.3333 +dino,60.7692,33.718 +dino,63.0769,29.1026 +dino,64.1026,25.2564 +dino,64.359,24.1026 +dino,74.359,22.9487 +dino,71.2821,22.9487 +dino,67.9487,22.1795 +dino,65.8974,20.2564 +dino,63.0769,19.1026 +dino,61.2821,19.1026 +dino,58.7179,18.3333 +dino,55.1282,18.3333 +dino,52.3077,18.3333 +dino,49.7436,17.5641 +dino,47.4359,16.0256 +dino,44.8718,13.718 +dino,48.7179,14.8718 +dino,51.2821,14.8718 +dino,54.1026,14.8718 +dino,56.1538,14.1026 +dino,52.0513,12.5641 +dino,48.7179,11.0256 +dino,47.1795,9.8718 +dino,46.1538,6.0256 +dino,50.5128,9.4872 +dino,53.8462,10.2564 +dino,57.4359,10.2564 +dino,60,10.641 +dino,64.1026,10.641 +dino,66.9231,10.641 +dino,71.2821,10.641 +dino,74.359,10.641 +dino,78.2051,10.641 +dino,67.9487,8.718 +dino,68.4615,5.2564 +dino,68.2051,2.9487 +dino,37.6923,25.7692 +dino,39.4872,25.3846 +dino,91.2821,41.5385 +dino,50,95.7692 +dino,47.9487,95 +dino,44.1026,92.6923 +away,32.3311102266,61.411101248 +away,53.4214628807,26.1868803879 +away,63.92020226,30.8321939163 +away,70.2895057187,82.5336485877 +away,34.1188302357,45.7345513203 +away,67.6707164012,37.110947969 +away,53.2591294055,97.4757710964 +away,63.5149808671,25.1000785788 +away,67.9805388133,80.9571652197 +away,67.3724659005,29.720400203 +away,15.5607495229,80.0656402858 +away,71.7907676942,71.0654666627 +away,70.2425464362,24.1095975542 +away,64.9374355444,81.5542049945 +away,62.2135245453,21.4758389969 +away,67.2694004772,18.7089683725 +away,40.5701970446,79.3729634752 +away,74.7411813341,21.1016372041 +away,71.7683189223,20.0110618423 +away,76.1669198143,75.9361704048 +away,65.6236574431,15.5828033531 +away,50.8506336394,13.9876016304 +away,33.0240700249,24.4678303872 +away,39.7063261674,84.2752871038 +away,45.5964849542,9.76334884943 +away,42.9680469104,17.9454583961 +away,52.4944067819,16.0511142003 +away,46.0822757831,23.1104578154 +away,74.2477082092,20.314187812 +away,64.5682641863,83.6396338956 +away,74.0216939058,76.1282745076 +away,62.3911805626,5.62307076073 +away,74.189036683,68.1335832223 +away,28.2367819396,56.1395964513 +away,75.7719387944,69.8292300322 +away,75.8552294691,62.5170442862 +away,65.9708570175,72.7448559954 +away,21.7780404779,6.61662530728 +away,67.7597962473,72.4212015285 +away,78.6171953363,52.5752573142 +away,68.5077081898,15.4569189652 +away,74.8850211598,25.4166063231 +away,66.4549036599,19.8366286542 +away,77.3178020985,48.3983464352 +away,58.9124603193,75.6677562173 +away,57.617447817,8.19480060319 +away,76.0882257967,59.6799300235 +away,57.4660505497,1.50441817488 +away,79.4283834934,45.2107942872 +away,76.3565221496,10.4182411281 +away,64.4050752632,78.5841760758 +away,40.6350418091,73.3947503698 +away,43.9498645857,75.9587156671 +away,30.9962205791,71.694404938 +away,68.2307689907,80.8725016628 +away,72.0463894612,12.9180067349 +away,46.5927679682,84.9723827774 +away,49.2572183396,81.8814032306 +away,42.7817612539,12.9911884302 +away,65.475952195,14.2745856444 +away,71.9650826544,17.7102359443 +away,32.1464623358,43.4817094425 +away,31.8384976954,71.8121653901 +away,31.0052582572,40.682503007 +away,80.4708943189,49.5021483467 +away,71.9641671122,41.8742826668 +away,78.0794214417,93.1333167652 +away,41.6775957748,30.2012640846 +away,65.953595185,31.1474060835 +away,62.9344593731,31.9163906992 +away,64.3737979844,28.8625834061 +away,72.5093283599,39.5401302526 +away,30.0522898741,96.6175423534 +away,28.0033242354,46.6721919544 +away,75.4012268619,88.6390766207 +away,38.9800154218,87.322160691 +away,65.2199135479,84.6829549336 +away,73.0539899616,29.3808085571 +away,34.3983616372,59.5444469033 +away,43.4904501336,40.782542065 +away,55.138737967,30.7257603575 +away,43.6843934333,32.8230098696 +away,35.9036097344,91.1118630801 +away,45.3780188805,29.1692166544 +away,39.7774828713,43.75581895 +away,38.6644611569,33.3172384774 +away,39.0440366877,84.6760108316 +away,91.6399614428,79.4066030605 +away,47.4881326771,85.3899333808 +away,44.5902125769,22.0340116412 +away,39.0896145478,70.4661940802 +away,42.2293783752,19.9140684075 +away,37.0003871448,60.264279248 +away,39.0520864793,70.6525028457 +away,37.4884147432,60.8144048511 +away,69.3595594592,65.5213545959 +away,43.542775926,62.4603112824 +away,39.8112302539,65.3348328092 +away,70.0689259404,7.59346560899 +away,70.0405435824,77.1438066024 +away,39.505789079,74.8516272173 +away,62.5168908529,66.4847322418 +away,72.1399254065,0.0151193251552 +away,45.2515760666,70.0034213192 +away,42.0633045627,2.33519661206 +away,36.3556951539,6.0058486497 +away,30.3918276596,42.75961287 +away,36.4490038543,50.5462690659 +away,40.467576002,60.0275120878 +away,81.7246168002,6.03754484635 +away,48.8231974964,76.6353305783 +away,35.6205617651,57.2860155789 +away,50.5839631148,71.8066161014 +away,61.8564651063,71.7927431642 +away,39.3237560262,59.3008196656 +away,42.1856791429,66.0348978235 +away,30.8469189898,37.3416401041 +away,29.3462004281,42.1487418312 +away,82.1105579783,1.21055166293 +away,38.3020058088,60.0177857932 +away,56.5841530218,70.512514809 +away,33.3393742865,0.5091067352 +away,78.7742390407,35.4841012146 +away,27.9226442446,25.9868781844 +away,71.6978651182,10.8681445111 +away,74.1383313856,49.1739189791 +away,32.579020066,1.80811559665 +away,59.83218542,69.1525081443 +away,35.0306285457,12.5366493416 +away,74.3001198284,42.4770945921 +away,63.2501970628,65.9524861966 +away,34.1730737648,25.6936743092 +away,40.9138319319,38.5590195509 +away,62.8332930874,62.5108942269 +away,42.4767923803,56.7312899691 +away,52.0334562787,64.5666620298 +away,48.9070429644,74.2877488252 +away,59.8518383854,72.9583909677 +away,48.9604602016,72.6295257275 +away,46.8448551673,36.7917136918 +away,39.9630215796,42.9449148487 +away,66.704943997,32.0150954299 +h_lines,53.366566866,90.2080300059 +h_lines,52.8019793617,90.0880645063 +h_lines,47.0541298828,90.458936026 +h_lines,42.4484337816,89.5077001153 +h_lines,42.7040363241,90.4426288607 +h_lines,32.3789386326,90.144142631 +h_lines,32.5307027362,70.1573965085 +h_lines,33.3652644305,70.4593354392 +h_lines,32.6560991775,70.0510704992 +h_lines,22.9550932697,70.4268951523 +h_lines,27.1498436318,70.2108058428 +h_lines,26.1669092779,70.5003151212 +h_lines,26.3314570795,50.494556525 +h_lines,22.0037091415,50.4994401238 +h_lines,23.2847479782,50.4743528321 +h_lines,27.6340383923,50.5036668574 +h_lines,32.0371080007,50.5000661229 +h_lines,29.3365106528,50.461893969 +h_lines,40.816953133,50.4877601957 +h_lines,42.7390751173,50.483155992 +h_lines,51.8678937691,50.4932732621 +h_lines,43.3710018924,50.5008373234 +h_lines,53.0427983006,50.4875038691 +h_lines,56.6189102967,50.5033740178 +h_lines,70.568289819,50.4962361243 +h_lines,67.870887292,70.0680261345 +h_lines,58.8215465891,70.4557817483 +h_lines,60.1869278445,70.4835512458 +h_lines,59.4355174849,50.4206326073 +h_lines,49.5858434795,50.4349813825 +h_lines,41.7797417848,50.4706422808 +h_lines,46.1276863394,30.4494107792 +h_lines,38.0337837705,50.4908995189 +h_lines,44.5468412844,50.4159133758 +h_lines,46.2381175975,30.4956129408 +h_lines,49.7397453317,30.4727248868 +h_lines,39.1102518936,30.4786951789 +h_lines,39.1428377913,30.7928559394 +h_lines,34.6254702671,30.4997410297 +h_lines,34.7542074707,30.4958650002 +h_lines,36.7537002386,50.5293043035 +h_lines,37.0193512929,50.4926666972 +h_lines,41.4171152753,50.4697734181 +h_lines,22.8171074784,30.4360403387 +h_lines,34.800701463,30.4979313851 +h_lines,27.8918897953,30.4849702595 +h_lines,32.8706391587,30.5023417488 +h_lines,37.7940494081,30.4926383364 +h_lines,35.6673163042,30.522035054 +h_lines,48.4422995026,30.5017227753 +h_lines,58.6693732631,30.5068378948 +h_lines,47.9169554375,30.4867257545 +h_lines,51.8941663939,30.494755684 +h_lines,51.7490891643,30.4729933399 +h_lines,58.2465530013,50.4428744949 +h_lines,57.3106968674,50.4825132895 +h_lines,67.9680481127,50.4521589097 +h_lines,65.9493192681,50.494240794 +h_lines,55.7470928102,50.4789748003 +h_lines,68.4030100436,50.4986272318 +h_lines,76.696465628,50.4938305609 +h_lines,67.2148371159,70.2600284356 +h_lines,72.3020057291,70.2204373812 +h_lines,66.7632573944,70.4738617113 +h_lines,51.6803004439,89.9970275485 +h_lines,53.0965573571,89.540243712 +h_lines,42.2422929389,89.7085785936 +h_lines,56.2338756577,89.635308157 +h_lines,54.6809865825,89.9645994589 +h_lines,57.9026866088,89.6184017294 +h_lines,51.8202625467,89.8341303987 +h_lines,56.8283953362,89.5836647251 +h_lines,58.2722785867,69.9002729578 +h_lines,51.8281274487,70.3526492053 +h_lines,44.8499842618,70.3952029719 +h_lines,24.2703823928,50.4855676918 +h_lines,34.7424714403,70.3399348879 +h_lines,37.7993149267,70.4695358763 +h_lines,49.7869410649,89.6580469945 +h_lines,59.751497414,89.7319325216 +h_lines,64.7747992444,90.132316736 +h_lines,70.8444476004,89.9242090159 +h_lines,70.6059455116,90.042061963 +h_lines,78.6424883907,89.5512032307 +h_lines,70.810692254,89.5926540118 +h_lines,66.7699466213,70.4233752108 +h_lines,73.3363681612,70.3169271705 +h_lines,73.1051481627,70.300511881 +h_lines,74.6782541432,70.4453141903 +h_lines,80.240250951,70.3543089613 +h_lines,70.9468490729,50.4727017878 +h_lines,88.6626638086,50.4553260208 +h_lines,84.405952832,50.4948658866 +h_lines,75.9871047068,50.4919669557 +h_lines,91.1120854191,50.489389393 +h_lines,98.2881232748,30.603919371899998 +h_lines,95.0652748396,30.5004028652 +h_lines,95.2492339568,30.4594542144 +h_lines,49.6561262881,50.4313198677 +h_lines,63.0186009279,30.4925819262 +h_lines,70.5382006004,30.4835582526 +h_lines,70.0868697658,30.5100448173 +h_lines,62.6856904424,30.5464245575 +h_lines,69.239417959,30.5060052447 +h_lines,80.4002336791,30.4850063746 +h_lines,74.6478782284,30.6738628584 +h_lines,65.9952727194,30.4750241915 +h_lines,67.0885590036,30.4945239508 +h_lines,59.8525770283,10.5431877763 +h_lines,53.7489900744,10.5225745323 +h_lines,58.2390955164,10.4948990284 +h_lines,54.810300495,10.7249292845 +h_lines,52.9767123211,10.859490276 +h_lines,52.2038939272,10.4956369212 +h_lines,50.7451622429,10.5249055723 +h_lines,42.7131936166,10.4875472428 +h_lines,45.3172255098,10.4958733944 +h_lines,53.116915041,10.5068605973 +h_lines,57.049801823,10.5081369414 +h_lines,54.8546309465,10.4639151924 +h_lines,54.9248425638,10.498331942 +h_lines,63.3095540306,10.4888142392 +h_lines,49.7494984129,10.4858029097 +h_lines,41.1693104232,10.4973002433 +h_lines,46.6883404976,10.5075321353 +h_lines,52.4189219215,10.4959063596 +h_lines,50.8784883796,10.5030898746 +h_lines,57.0533061394,10.5140692392 +h_lines,70.7864511597,10.5136950409 +h_lines,56.7721495656,10.5032723508 +h_lines,75.4772220231,10.5185680355 +h_lines,76.7659121498,10.496999064 +h_lines,77.621049129,10.4958742318 +h_lines,65.4144870523,10.6818401251 +h_lines,69.9647805002,10.5072329326 +h_lines,64.9697382623,10.4821595117 +h_lines,38.0502407785,30.4079460343 +h_lines,42.2241202189,30.4980371582 +h_lines,87.6984642949,50.4899365296 +h_lines,52.3603310701,89.7043170068 +h_lines,51.4067867898,89.7121385499 +h_lines,43.588468468,89.7455365536 +v_lines,50.4815081703,93.2227013657 +v_lines,50.2824056687,97.6099835723 +v_lines,50.1867033389,99.6946801425 +v_lines,50.3269108629,90.0220534916 +v_lines,50.4562073315,89.9874101286 +v_lines,30.4648469308,82.0892320845 +v_lines,30.5015964737,82.3071263462 +v_lines,30.489569227,77.7298801366 +v_lines,30.45024833,79.8348944011 +v_lines,30.5183947985,68.2525829388 +v_lines,30.5116612138,66.0937181831 +v_lines,30.4980777147,62.3849850338 +v_lines,30.6202277519,60.8600821544 +v_lines,30.4921854231,55.8789168923 +v_lines,30.474634333,52.3221596388 +v_lines,30.500998079,48.0696996767 +v_lines,30.4944213623,45.7734755346 +v_lines,30.4995445502,49.3820997506 +v_lines,50.144392979,47.0142836417 +v_lines,49.9128985877,55.5878389121 +v_lines,50.3374274859,57.9553142818 +v_lines,50.4189791992,60.5249117346 +v_lines,50.2052589714,57.9242171676 +v_lines,50.4353151633,56.4393224734 +v_lines,69.5057889042,59.2849248279 +v_lines,69.5340709833,64.8929773346 +v_lines,69.5101069302,61.3296244282 +v_lines,69.5263228876,56.9952791254 +v_lines,49.9472399619,48.2295767261 +v_lines,50.0631041291,58.085037556 +v_lines,50.489902373,39.2054119682 +v_lines,49.6888638379,42.018514414 +v_lines,50.3334811097,43.588671479 +v_lines,50.4467514196,57.2305889423 +v_lines,50.4209091963,43.3479568967 +v_lines,50.3740520508,32.9182406167 +v_lines,30.4768299051,39.4246055913 +v_lines,30.5034743497,38.3485561381 +v_lines,30.5048349283,28.7714879939 +v_lines,30.4622184647,32.7504720275 +v_lines,30.491302622,43.5613740753 +v_lines,30.449653838,44.9951230008 +v_lines,30.4859942157,47.3479464653 +v_lines,30.5020767935,36.4412129198 +v_lines,30.4780588886,28.020580489 +v_lines,30.5011608787,38.3141385582 +v_lines,30.5047730174,26.4166256707 +v_lines,30.509115326,22.8255471196 +v_lines,50.1156321728,16.6940065479 +v_lines,50.4483013392,21.6402564599 +v_lines,50.17317743,29.177864393 +v_lines,49.9227419194,38.4404729124 +v_lines,50.3112993746,26.8604882737 +v_lines,50.3994096114,38.9638389234 +v_lines,50.3373626448,40.913386144 +v_lines,50.2023180965,47.2129480045 +v_lines,50.2749326091,49.6234993439 +v_lines,69.4943803061,52.6124107059 +v_lines,69.5193397556,47.384533707 +v_lines,69.5291826079,57.8412666804 +v_lines,69.495755496,58.785073162 +v_lines,69.199057706,60.4189573202 +v_lines,69.5510914402,58.4010982686 +v_lines,69.5066843151,68.0844667893 +v_lines,50.4441175504,75.0132995059 +v_lines,50.4672293846,90.281464505 +v_lines,50.210881979,80.9417717084 +v_lines,50.205406955,90.6405359009 +v_lines,50.4382906648,92.3547602661 +v_lines,50.3735188462,82.2192057218 +v_lines,50.253683689,81.7438287242 +v_lines,50.2504708592,71.9513852104 +v_lines,50.0870583609,73.9518736268 +v_lines,50.2310718829,80.6473870602 +v_lines,50.2077411201,73.1145035177 +v_lines,30.4995061735,53.6125276703 +v_lines,30.5203612407,65.1004090686 +v_lines,30.4549558873,63.5017787814 +v_lines,50.4164772292,97.2696919618 +v_lines,69.5250693831,93.5980502089 +v_lines,69.5202566002,97.1938760167 +v_lines,69.4989700668,92.1204899292 +v_lines,69.5286156637,91.6220882409 +v_lines,69.4997669273,84.47968329 +v_lines,69.5038013697,81.8154056166 +v_lines,69.4875893963,81.8359875567 +v_lines,69.5191157281,71.1159672213 +v_lines,69.5043762947,70.4934438205 +v_lines,69.5125730109,61.497563947 +v_lines,89.4942005622,62.2343269676 +v_lines,89.5001240511,53.2163306165 +v_lines,89.490246254,48.890796551 +v_lines,89.49778562,46.6299066746 +v_lines,89.5048511306,48.4234081578 +v_lines,89.5010526463,43.3473436951 +v_lines,89.4888412549,40.6250912209 +v_lines,89.5016235276,45.8151791904 +v_lines,89.497529662,33.901372671 +v_lines,50.4390920216,37.670771798 +v_lines,50.179850128,36.8075593352 +v_lines,69.5050706711,33.7401525035 +v_lines,69.5798670452,21.9352367455 +v_lines,69.5064719492,22.7286628748 +v_lines,69.4994788728,16.3374699821 +v_lines,69.500264751,27.1360239942 +v_lines,69.5041565157,23.6689181006 +v_lines,69.5322795847,21.8509008151 +v_lines,69.5001114942,11.7916260054 +v_lines,69.5048154243,15.6143582625 +v_lines,69.5034745234,17.1690897689 +v_lines,50.3774019862,16.5060150613 +v_lines,50.3394254813,18.7234506861 +v_lines,50.0936501016,11.6077134241 +v_lines,49.9341271714,22.2561397401 +v_lines,50.2888186122,13.436410466 +v_lines,50.2879944267,12.8722822086 +v_lines,50.2347207,20.4044729196 +v_lines,50.2797016367,15.608737571 +v_lines,50.2530067222,11.3020842468 +v_lines,50.4741411162,12.4619966676 +v_lines,50.1084399725,18.2590443442 +v_lines,49.919058249,3.7168538855 +v_lines,50.0836645085,10.2358819024 +v_lines,50.3522608355,12.4686005273 +v_lines,50.4975722411,7.40962523419 +v_lines,50.0163058346,16.2536847911 +v_lines,50.4682212165,13.3567024555 +v_lines,69.5506789842,9.03298756904 +v_lines,69.5186727475,15.1804864298 +v_lines,69.5034574098,16.8783132661 +v_lines,69.4994868291,10.2078266798 +v_lines,69.5275296829,9.99229666551 +v_lines,69.5190952617,11.4226857018 +v_lines,69.5618994268,15.9998037858 +v_lines,69.5010445197,5.95583353945 +v_lines,69.524635976,2.73476016988 +v_lines,30.4995937106,26.0855615691 +v_lines,30.487391709,19.7794703733 +v_lines,89.5001804719,31.9789174357 +v_lines,50.4102716314,98.6283694405 +v_lines,50.3259243927,94.9946308528 +v_lines,50.1040315041,95.0885380179 +x_shape,38.3377571839,92.472719051 +x_shape,35.7518707905,94.1167680276 +x_shape,32.7672179591,88.5182945794 +x_shape,33.7296067755,88.622265789 +x_shape,37.238249327,83.7249284144 +x_shape,36.0271982243,82.0407806505 +x_shape,39.2392807768,79.2637238398 +x_shape,39.7845249391,82.2605658962 +x_shape,35.1660293896,84.1564919839 +x_shape,40.622115916,78.5421042089 +x_shape,39.181907086,79.8190371976 +x_shape,42.4308889944,75.1336346406 +x_shape,43.0812558617,75.3467016413 +x_shape,44.360719434400004,70.4742070546 +x_shape,44.3247788435,71.0459044019 +x_shape,47.552160202,66.4604037217 +x_shape,48.6649246215,64.9610049438 +x_shape,46.280631958,68.0284231525 +x_shape,50.5632444849,62.6238279659 +x_shape,52.6309642318,59.9639357915 +x_shape,54.6362064446,57.4938424367 +x_shape,51.346027139,61.6005530364 +x_shape,57.134855354,53.8779658045 +x_shape,54.1712415737,58.0598078952 +x_shape,50.9423823071,62.0973939351 +x_shape,66.512924456,59.0712818478 +x_shape,64.3979095023,56.1748754008 +x_shape,68.686593294,62.2373439902 +x_shape,65.0277937057,57.0962573525 +x_shape,53.3045031712,40.883844549 +x_shape,52.9451780881,40.3846256942 +x_shape,45.225738199,30.5552259226 +x_shape,50.8433046202,37.7446280981 +x_shape,49.6592939398,36.273442735 +x_shape,47.1427889348,32.0250641734 +x_shape,41.2700565259,21.7218171465 +x_shape,47.1301271555,31.3099029222 +x_shape,40.9159715783,23.5415923929 +x_shape,38.6601639737,21.6895496369 +x_shape,42.6125508262,24.195053774 +x_shape,41.2090395008,24.1287091891 +x_shape,50.6492211499,37.4837907435 +x_shape,52.1319019406,39.3646020815 +x_shape,39.7972712705,16.083549649 +x_shape,43.5498814807,24.3072109395 +x_shape,36.7146633371,17.3818098572 +x_shape,37.2246101278,17.9800644828 +x_shape,40.5124478537,22.9622145725 +x_shape,40.2220627884,20.6146217044 +x_shape,44.1249612057,23.3662452858 +x_shape,42.3462616039,24.5583269437 +x_shape,44.1890843708,28.772625473 +x_shape,45.8142453101,31.056979672 +x_shape,46.6431192691,31.4072190618 +x_shape,52.1898883047,39.3677964938 +x_shape,51.1003173587,38.095699984 +x_shape,65.4008341477,42.6140320392 +x_shape,64.8520398267,43.1337348404 +x_shape,63.4038060118,44.847493688 +x_shape,65.3715488709,42.6959713164 +x_shape,61.9080397046,53.1903520694 +x_shape,71.8266529973,65.6862303604 +x_shape,72.6546231621,66.8782776113 +x_shape,76.8885781632,72.1654720777 +x_shape,43.7446196844,71.2679610751 +x_shape,39.0542484428,83.1190207043 +x_shape,39.9316746322,79.9391880033 +x_shape,39.762826107,76.4059674459 +x_shape,41.323383287,80.2118685969 +x_shape,41.7873232275,83.9880779935 +x_shape,39.7556490651,79.6570966361 +x_shape,40.7498793985,77.204657286 +x_shape,43.8568984983,77.6098436482 +x_shape,42.3678224956,73.6382718294 +x_shape,39.4629598364,78.459973898 +x_shape,44.5173339492,70.3693498252 +x_shape,41.6360929963,76.2492229205 +x_shape,45.4229321817,69.0955016709 +x_shape,42.0028562742,97.8376147235 +x_shape,76.1056290282,95.3049805754 +x_shape,79.2025626772,92.4072156264 +x_shape,84.8482440854,95.4248045304 +x_shape,81.5644753207,83.7929072262 +x_shape,85.4461864009,83.0782938448 +x_shape,80.3124913784,76.5162389518 +x_shape,80.7662322969,79.8960656796 +x_shape,82.6701124763,81.711479845 +x_shape,77.1636254828,73.5237189623 +x_shape,74.0707000309,68.4795642895 +x_shape,74.1142308687,71.9263635185 +x_shape,68.942075458,62.635150577 +x_shape,73.2420023309,67.3532711288 +x_shape,71.8670131631,34.3291575887 +x_shape,71.5691888532,34.699218607 +x_shape,71.4829096934,34.6805169926 +x_shape,78.1285220512,23.139231835 +x_shape,78.789825254,25.5971933466 +x_shape,77.7815467962,23.4472144745 +x_shape,48.5306293681,34.1524500077 +x_shape,65.5307814724,42.2810847015 +x_shape,70.1180341426,36.4481847905 +x_shape,70.4722626065,36.0880530553 +x_shape,76.7911300701,28.0720081685 +x_shape,72.4093545935,33.0392569664 +x_shape,76.271299815,25.5695441452 +x_shape,76.9532591384,27.7706107405 +x_shape,75.1077300904,30.0169834157 +x_shape,75.9692852004,29.0388653753 +x_shape,75.2838870131,24.8747531721 +x_shape,77.0522406385,27.9056390894 +x_shape,42.8267563374,25.5569594065 +x_shape,42.0806606852,24.9465264454 +x_shape,39.8783046498,18.3249292157 +x_shape,36.4754991726,17.7189477884 +x_shape,37.1030736419,15.4456116477 +x_shape,34.1489682077,13.5238698677 +x_shape,37.5794219113,15.0158901333 +x_shape,41.0643057894,12.2144689321 +x_shape,42.195266147,20.9193721857 +x_shape,36.6055782383,15.748875885 +x_shape,39.4311612098,19.3238407541 +x_shape,37.5620763361,11.9284457044 +x_shape,34.2381100444,13.7131582305 +x_shape,34.1409410386,4.57766135024 +x_shape,36.6592676972,17.6819644553 +x_shape,40.6437192795,20.2408613716 +x_shape,36.7924815919,13.3921347304 +x_shape,75.9483006427,22.7447959146 +x_shape,76.8406924717,20.9185472197 +x_shape,81.9504776395,19.8745582085 +x_shape,81.6437056853,16.5917599845 +x_shape,84.6102197758,14.2477619017 +x_shape,84.1028794336,8.98065579006 +x_shape,80.18002545,19.0888441297 +x_shape,80.5732729943,8.36563890168 +x_shape,79.0043268649,10.6281977654 +x_shape,40.0481864651,24.2614879334 +x_shape,34.7945935378,13.9696834611 +x_shape,79.221764441,22.0945914837 +x_shape,36.0308797708,93.1217332374 +x_shape,34.4995583102,86.6099850511 +x_shape,31.1068665551,89.4616352367 +star,58.2136082599,91.881891513 +star,58.1960536923,92.2149886482 +star,58.7182307185,90.310532087 +star,57.27837287,89.9076067166 +star,58.082020494,92.0081450101 +star,57.4894477748,88.0852855629 +star,28.088741319,63.5107944263 +star,28.0854682136,63.5901969481 +star,28.087273053,63.1232828116 +star,27.5780252176,62.8210386566 +star,27.7799191139,63.518147517 +star,28.5889998149,63.0240805653 +star,28.7391414969,62.7208638859 +star,27.0246032407,62.9018588649 +star,28.8013366963,63.389040388 +star,27.186463838,63.5587296478 +star,29.2851466002,63.3836058254 +star,39.4029453026,51.1508571967 +star,28.8113284396,61.3578540576 +star,34.3039579069,56.5421259093 +star,29.6027609801,60.157346722 +star,49.1161568603,63.6600006211 +star,39.6175458263,62.9251879574 +star,43.23308466,63.1652187223 +star,64.8927879422,65.8141767574 +star,62.4901493154,74.5842896072 +star,68.9880844294,63.232147305 +star,62.1056186306,75.9908707599 +star,32.4618467439,62.8819029189 +star,41.3272006535,49.0702512739 +star,44.0071499323,46.4496737846 +star,44.0740606888,34.5532038906 +star,44.0013152386,33.9042073544 +star,45.0063004454,38.2990195507 +star,44.4438406096,36.0190833012 +star,42.1787133986,26.492119482 +star,44.0445656189,35.6622382764 +star,41.6404540171,27.0930954213 +star,41.9383300069,24.9915229793 +star,44.0539275103,33.5563924949 +star,39.2067193308,51.5337156971 +star,28.7044492315,61.7775254006 +star,31.7086628996,58.837754374 +star,42.8117114739,30.0204484197 +star,43.300614891,31.5264261979 +star,40.3986329069,16.3470083822 +star,40.4356915763,20.2326706762 +star,40.9365466658,16.9130048364 +star,39.6615736653,15.609355577 +star,40.899259175,20.7985289466 +star,41.9686168283,26.4970725985 +star,40.3834058238,21.3912255247 +star,56.5381264538,32.4442454697 +star,52.9706912828,29.0401966941 +star,54.6209525885,30.3445244537 +star,65.0990443941,27.2415575588 +star,63.0559909076,29.7090956748 +star,70.9601362323,41.2595012867 +star,69.8958192404,43.4537592655 +star,70.5958928563,41.9647438672 +star,69.6470214273,44.044445022 +star,77.392982494,63.3714590552 +star,64.4007871926,67.4487184472 +star,63.8689598271,70.2137388333 +star,56.5944213157,86.9270062202 +star,56.5313372853,87.4998110713 +star,59.6521583697,87.8094615921 +star,56.6365087005,85.637495556 +star,58.6722880025,90.077160307 +star,58.2216127264,90.4110187715 +star,57.9146644768,89.9538027677 +star,55.3155090581,80.2518606944 +star,54.5757285877,77.5362884724 +star,54.4130936504,78.2290865878 +star,55.0745059041,79.8175464166 +star,29.4329605156,60.8017765444 +star,29.4226860665,63.0684648229 +star,29.0056141576,63.3907513334 +star,58.4618385916,90.2653263904 +star,57.997804739,92.1599086113 +star,57.5494740761,90.7489065581 +star,59.5299284566,88.3272741451 +star,58.2493910631,92.1296814778 +star,58.0245140126,91.6944211685 +star,58.3821244904,90.5534760692 +star,62.5667590405,77.7439347591 +star,72.1758243064,63.1289294176 +star,79.4727615693,63.4086861199 +star,80.3577008812,63.2954375404 +star,78.7572361375,53.3326200111 +star,82.5402395934,56.5410522935 +star,86.4358971909,59.7927618087 +star,79.4886844186,53.6516742641 +star,81.5304203188,56.0253645659 +star,79.1867885665,53.2347918468 +star,77.8990579454,51.8224583343 +star,75.1307142075,23.3724419733 +star,76.0580137544,16.383749688200002 +star,57.6146743876,33.8224476502 +star,56.1713975295,32.1179887719 +star,66.2878905956,26.1171097453 +star,67.8817196169,24.2360184109 +star,64.0280813016,27.6726855125 +star,77.4966517463,14.9485235577 +star,77.6346517616,14.461853927 +star,77.8637264289,14.6106776491 +star,77.3381581659,15.890054658 +star,76.1804165329,15.9125737458 +star,77.2526510945,15.1515170246 +star,77.4133752817,15.2219279762 +star,76.7318493982,16.2168461441 +star,49.471105411800004,25.0630193062 +star,42.4765399431,18.3384735636 +star,43.5951158622,19.9942009773 +star,50.3399696652,26.4713966117 +star,40.7489802561,16.1821416622 +star,38.3865255803,14.5802151464 +star,38.4040152085,14.4519484496 +star,38.7642788913,14.3655904744 +star,41.4701423265,17.2780334445 +star,47.1554048146,22.3779325323 +star,39.5825667453,17.6484528361 +star,41.7402438167,17.8293243101 +star,39.3118718889,15.6407169743 +star,41.6798476925,17.7459190133 +star,39.0874644519,15.1223039378 +star,41.4815028637,18.0474374446 +star,77.6060865492,15.1628725383 +star,75.9826615205,16.3069223786 +star,76.9457572424,15.858478334 +star,77.5437200743,15.253949149 +star,77.5847398447,15.8300393854 +star,76.8223042562,15.5951653195 +star,77.3485716647,15.7745292395 +star,77.5731526867,14.7806458332 +star,77.9726106776,14.9556987461 +star,41.5289197586,24.9164251896 +star,43.7225508034,19.0773278036 +star,79.3260781751,52.9003912897 +star,56.6639740815,87.9401250067 +star,57.8217892319,90.6931665489 +star,58.2431718991,92.1043278652 +high_lines,57.6132335477,83.9051707998 +high_lines,51.2743918205,82.8179829379 +high_lines,50.7538984114,76.7541289533 +high_lines,37.0211840116,81.954469997 +high_lines,42.8817550897,80.1847700514 +high_lines,37.1557104777,84.9541114129 +high_lines,38.7318581261,83.7893564281 +high_lines,31.0005254108,82.5794805962 +high_lines,25.9854996226,74.3493875478 +high_lines,23.7145662909,75.0980490792 +high_lines,23.077319507,71.7205396747 +high_lines,24.9391368744,72.5802858084 +high_lines,17.8934987136,71.1096873431 +high_lines,23.6730818572,64.8708391385 +high_lines,23.7490719056,63.557171895 +high_lines,32.2151786343,65.6009580191 +high_lines,29.4368412489,67.5545281141 +high_lines,40.0500951983,71.8890335708 +high_lines,37.5747950188,69.9887444412 +high_lines,49.3104686263,67.1687603206 +high_lines,47.3480185524,72.5916115408 +high_lines,50.157414434,71.1617258246 +high_lines,58.2100082697,68.0445380719 +high_lines,56.6089076561,70.4089460888 +high_lines,52.8338205303,72.5518862725 +high_lines,61.8185854576,76.1128240228 +high_lines,61.7276334143,77.0692384058 +high_lines,62.1922520815,76.1568192103 +high_lines,58.1187658587,73.1189614684 +high_lines,58.2704123843,35.5968950425 +high_lines,59.7665303129,32.6212516009 +high_lines,52.5355347207,27.1741229419 +high_lines,50.8925215809,29.1452839382 +high_lines,49.9675511775,28.4602033343 +high_lines,51.3478832298,27.3642602259 +high_lines,37.5551162883,24.5376638386 +high_lines,39.1995941778,23.6804956588 +high_lines,36.3827221955,25.2380052325 +high_lines,41.1006943822,26.5526132161 +high_lines,28.2178118248,28.2802924847 +high_lines,33.7970720433,28.6997507433 +high_lines,43.9193873055,27.7978445882 +high_lines,44.4164011084,28.9476923345 +high_lines,28.0376027706,26.8038243613 +high_lines,31.6895761296,26.6664002089 +high_lines,27.2796128523,19.2572809685 +high_lines,31.2218783581,26.4408557812 +high_lines,33.5458051034,20.0807081014 +high_lines,39.7363306065,23.4948069772 +high_lines,42.8418426525,20.3339004396 +high_lines,47.0937298879,26.9934706312 +high_lines,51.4536583539,26.0229417521 +high_lines,49.3677068167,22.005580703 +high_lines,48.2534809736,29.2708555331 +high_lines,61.0029597643,30.0153144324 +high_lines,60.8065608049,27.8683134861 +high_lines,59.0674270249,26.7882840217 +high_lines,61.4146337175,31.0393750583 +high_lines,68.934369469200007,31.6198930866 +high_lines,63.0652438592,34.2357465852 +high_lines,72.2725228706,67.6444437851 +high_lines,75.3598819664,75.4216145799 +high_lines,72.8336258709,72.1146938095 +high_lines,70.8104148392,79.3504618327 +high_lines,45.8019347617,81.6582677456 +high_lines,45.835020171,82.7425919919 +high_lines,40.0788064496,80.2471852579 +high_lines,51.9829247003,82.2043834675 +high_lines,57.337906053,84.9995188696 +high_lines,62.3362327624,83.2465678988 +high_lines,58.5059100905,81.7455863409 +high_lines,56.2479351377,83.513949493 +high_lines,55.4065208295,80.2666719669 +high_lines,53.2839688423,84.2635992213 +high_lines,44.6767615455,80.2382855483 +high_lines,30.0112642472,68.1467563743 +high_lines,29.7452539206,74.4045268347 +high_lines,37.3099483549,72.5861552003 +high_lines,61.1359469093,82.5375693646 +high_lines,61.7206191907,85.7056934492 +high_lines,63.6093798555,83.3600288362 +high_lines,70.7237162322,87.1522075165 +high_lines,75.0063926418,82.4258351563 +high_lines,75.0925497814,83.4373907092 +high_lines,70.3279291834,82.0293546968 +high_lines,70.8633308324,79.4081747457 +high_lines,75.7799048195,79.8861994199 +high_lines,78.0936590733,77.759558184 +high_lines,76.7457612243,71.9733600919 +high_lines,78.4646034437,69.7493008209 +high_lines,76.7456848486,70.0440572588 +high_lines,85.161682187,65.5124047088 +high_lines,91.8083525691,34.9655944844 +high_lines,91.8874485924,34.7692538555 +high_lines,92.2484016622,32.3771544295 +high_lines,91.782532741,34.3842946521 +high_lines,96.0805193672,28.0536005018 +high_lines,92.2478988278,28.0707514904 +high_lines,57.662276619,24.0606079328 +high_lines,59.8469248931,26.1777124879 +high_lines,64.0670962137,27.7765005568 +high_lines,60.9815013975,23.9342981582 +high_lines,59.9670579092,26.8025832185 +high_lines,62.7074541119,21.9955085787 +high_lines,69.1952352018,22.709792166 +high_lines,65.5923626471,20.6941731019 +high_lines,64.6170985343,22.4431455531 +high_lines,59.191159132,17.767901807 +high_lines,55.8396313724,21.6185696663 +high_lines,59.0007586238,21.1710074885 +high_lines,56.4593711284,25.1445642082 +high_lines,52.3581053558,19.4170541222 +high_lines,51.8116637782,17.0334945954 +high_lines,54.222845621,19.503665544 +high_lines,49.0187553996,23.4892740197 +high_lines,35.6535812004,17.5145080595 +high_lines,46.965785757,16.7892016247 +high_lines,49.5842392555,16.7579160147 +high_lines,51.8562999655,21.969084007 +high_lines,55.9528886329,16.7897576048 +high_lines,51.6637862607,19.9251251977 +high_lines,45.8596693166,17.1289036754 +high_lines,39.7403795202,18.7410514146 +high_lines,52.8112216438,17.8549881176 +high_lines,56.7891043639,17.3061155207 +high_lines,54.1145317806,17.6735343896 +high_lines,55.571119732,17.369574581 +high_lines,65.3064624975,18.1973548277 +high_lines,66.9907491546,17.2228706509 +high_lines,72.1567189391,16.8142747914 +high_lines,70.9805804021,17.15575228 +high_lines,72.2220822073,19.3692816955 +high_lines,79.7001583481,20.740218365 +high_lines,64.2491606461,14.9139624607 +high_lines,66.9432914334,20.1891325034 +high_lines,66.9416766634,18.2435093914 +high_lines,39.6482666468,22.7313663718 +high_lines,37.9497836858,26.5217492344 +high_lines,86.5043905611,34.8940252874 +high_lines,50.8154853559,78.950838805 +high_lines,51.1834666638,85.1288546497 +high_lines,40.8638552293,82.9261452983 +dots,51.1479167122,90.8674123313 +dots,50.5171258092,89.1023945866 +dots,50.2074801993,85.4600473951 +dots,50.0694819181,83.0576695262 +dots,50.562846338600004,82.9378217764 +dots,50.288527801,82.9752535659 +dots,25.5834750822,82.9148911324 +dots,25.4835833896,82.929084979 +dots,25.4435257049,82.8742004973 +dots,25.5651134237,82.9240977704 +dots,25.9288442731,82.8211841087 +dots,27.5514782612,51.4873865306 +dots,27.5304663693,51.4148465629 +dots,27.0955703605,52.0767994399 +dots,27.4392496133,51.7120790527 +dots,27.8782642594,50.70890793 +dots,27.3388689181,51.6530467544 +dots,27.6784029741,51.1819891691 +dots,52.6356576791,51.4185522584 +dots,52.0252141055,52.1230110467 +dots,52.8811647904,50.6215547554 +dots,52.9526073133,50.0747390118 +dots,52.5205524936,51.5024421035 +dots,52.3428220582,51.8619520908 +dots,51.9275902141,52.2577906065 +dots,52.7137744894,51.1979443188 +dots,50.4438027888,82.9418288173 +dots,50.2166950326,83.7523429676 +dots,52.1841801076,51.9752506714 +dots,52.7920973459,51.0733956509 +dots,52.5897198565,51.338090196 +dots,52.0288486671,52.1768375002 +dots,52.729246581,51.2017650475 +dots,52.8843132864,50.4414354501 +dots,52.5093008862,51.4162051508 +dots,50.8626843321,17.1456310914 +dots,50.8914922458,17.1413237277 +dots,25.8551275976,17.0819086886 +dots,26.0256445518,16.9250135319 +dots,27.8931727187,50.6619634101 +dots,27.6399679354,51.3990974838 +dots,27.892658895,50.7952815163 +dots,52.7977329399,50.6860370901 +dots,27.5806388053,51.5247612607 +dots,26.4913985349,17.4053909738 +dots,25.9853178159,17.203722132 +dots,26.2014192753,17.0938239128 +dots,25.857569474600002,17.113842659 +dots,50.7046843629,17.0237445436 +dots,50.8119753465,17.1149252621 +dots,50.564845557699996,17.0777773216 +dots,50.9393039127,16.981021883 +dots,50.4588548392,17.0385789686 +dots,52.9013640729,50.6905627231 +dots,52.6849534438,51.2944692191 +dots,52.500088943,51.594356165 +dots,51.8356372562,52.3357655339 +dots,76.9954121013,52.0455286534 +dots,77.310600475,51.7467300374 +dots,77.9260443352,50.3186604237 +dots,77.2543883433,51.4618248152 +dots,76.2431578028,52.1236898503 +dots,77.0844843669,51.9671367003 +dots,75.2280531954,82.9856620201 +dots,50.6583547714,83.1144793358 +dots,50.2033658114,82.9826568621 +dots,50.9295476993,82.8460411252 +dots,50.1786718465,83.1846223323 +dots,50.422698058,82.9099014671 +dots,50.4642248341,82.9353284131 +dots,50.4492703306,83.9699203811 +dots,49.9283802752,82.9936654888 +dots,50.4880136436,83.0995191232 +dots,49.9649053793,83.7083177013 +dots,50.7521082559,82.9019500961 +dots,27.4224292143,51.4388762325 +dots,27.6740833991,51.3041121452 +dots,27.5373953151,51.593654076200004 +dots,52.2633473764,94.2493278274 +dots,51.7372816586,92.9791175339 +dots,75.8709636929,88.3864417377 +dots,75.2443262052,83.9034973788 +dots,75.1982952889,83.4623033365 +dots,75.7010415321,82.9194588559 +dots,75.4793396586,82.8840513891 +dots,75.1945668739,82.9321157846 +dots,74.8202539551,82.9623887856 +dots,75.1643404933,83.0349971693 +dots,75.2633555474,82.9452793018 +dots,77.7564189331,51.1517703255 +dots,77.9544350549,50.4755789715 +dots,77.0833377719,52.1577992662 +dots,76.0635502513,52.1046520613 +dots,77.6820163247,51.1656378096 +dots,76.8780819814,51.8675622958 +dots,76.9485027211,51.9075165439 +dots,77.8640547124,49.6625455341 +dots,75.7714500936,17.1112512057 +dots,52.3315691301,51.8788603463 +dots,52.5928183721,51.3915915185 +dots,50.4770477213,17.0482894119 +dots,75.2964750909,17.015653188800002 +dots,75.573954129,17.0621921415 +dots,75.4005271583,17.0411068868 +dots,75.8709908356,17.1348939075 +dots,75.6058847579,17.0677230553 +dots,75.8955770466,17.1699497051 +dots,75.7465632023,17.1057165115 +dots,75.1423414811,16.7549238932 +dots,50.6617795563,17.0781405153 +dots,50.6998506392,17.0851843836 +dots,50.9189408654,17.1476047571 +dots,50.7252585405,16.9074698083 +dots,51.2638712274,17.1623497098 +dots,51.2509196468,17.2404558616 +dots,50.7851572052,17.1801964842 +dots,50.5013965822,17.1057707188 +dots,50.7336745372,16.9929634144 +dots,50.7113785398,17.0883158538 +dots,50.8127448984,16.5727180506 +dots,51.014232955,17.2210955293 +dots,50.3535214052,17.0647430794 +dots,50.4355295722,17.0651685025 +dots,50.6309819633,17.0765223454 +dots,51.0668072036,17.2088597095 +dots,50.7923547263,17.2042143387 +dots,50.5512780561,17.0846551833 +dots,50.5597580562,17.0938837744 +dots,75.3259785471,15.7718919896 +dots,75.04472578,17.0042622562 +dots,75.2870877232,16.1749349097 +dots,75.2399699777,17.0318474866 +dots,75.1524592023,17.0049424015 +dots,75.9618400861,16.6948422289 +dots,75.4480625064,17.0451494125 +dots,75.7593838168,16.9429296545 +dots,50.378262298,16.9462798113 +dots,50.5336350094,17.0195813691 +dots,77.5009073165,50.1669859475 +dots,50.6911241884,87.5139604241 +dots,49.9903949511,83.997356924 +dots,50.1271820272,82.990749996 +circle,55.9930301513,79.2772636977 +circle,50.0322537946,79.013071199 +circle,51.2884586593,82.4359398425 +circle,51.1705368873,79.1652941091 +circle,44.3779145287,78.1646280036 +circle,45.0102700721,77.8808631153 +circle,48.559816719,78.7883706035 +circle,42.1422682922,76.8806345544 +circle,41.0269715735,76.4095884613 +circle,34.5753090115,72.7248411845 +circle,31.1686007236,69.2454213193 +circle,32.6442540714,70.7325550334 +circle,26.6666456539,62.9809712052 +circle,26.4592623274,62.6346733709 +circle,25.5380076465,60.6302361093 +circle,26.3207111933,62.3962811186 +circle,26.1633874648,62.0268148985 +circle,25.2137904611,60.2733986018 +circle,26.8595295604,63.1418346727 +circle,31.7606691716,69.7976553936 +circle,39.7932905744,75.8079642168 +circle,45.6174391854,78.1199702277 +circle,53.7714606827,79.3029316435 +circle,56.4514336733,79.2471070208 +circle,66.0937201989,77.0178182606 +circle,56.9258394194,79.2063186226 +circle,58.9882538467,78.9172589554 +circle,57.9022660533,79.0808678187 +circle,64.8128669568,77.4869389235 +circle,60.3497935166,78.7294458673 +circle,48.890555756,16.8065435154 +circle,47.549506348,17.0714045245 +circle,30.8894308257,26.3290372348 +circle,28.972835724,29.0504689185 +circle,35.1613607523,22.7868496473 +circle,45.8703691685,17.4893933655 +circle,32.8314206076,24.7975381459 +circle,39.4855747899,20.0330500489 +circle,33.4461829314,24.1906434075 +circle,21.8635812756,46.0525933457 +circle,25.1658708449,35.7666139539 +circle,22.9594789762,51.2877067934 +circle,25.5860552415,60.8465833585 +circle,26.3143100672,33.2971681038 +circle,33.037301251,24.5644624921 +circle,36.4688894772,21.8761144725 +circle,26.5135531009,32.9187498178 +circle,36.0270912125,22.1954385395 +circle,42.6810404129,18.5425361977 +circle,45.0410771273,17.7345177303 +circle,47.3524164557,17.1347454264 +circle,53.8461940322,16.3873180961 +circle,55.1296393835,16.3532468711 +circle,52.188119961699996,16.4182174652 +circle,58.6726630845,16.6633724322 +circle,82.1443116037,33.1952218669 +circle,75.6865711383,24.7415103908 +circle,85.344964503,52.886419866 +circle,83.8446535127,58.6160602305 +circle,85.66476066,45.5427527692 +circle,77.931004934,68.6900618808 +circle,73.0318330209,73.12057473 +circle,70.1028044999,75.6832068542 +circle,57.1446946889,79.1941025922 +circle,46.9624619942,78.6665589963 +circle,50.5649338128,79.0772985529 +circle,53.7196765696,79.306936167 +circle,54.2002323226,79.3250023354 +circle,47.875198343,78.6758534295 +circle,51.4734585149,79.1598669963 +circle,52.7512222162,79.2936599344 +circle,48.5622230047,78.7823835275 +circle,53.0812416908,79.2972507654 +circle,56.475383374,79.1678400979 +circle,49.570911405,79.0381238831 +circle,37.6277032991,74.5575043418 +circle,32.2637000863,70.3166389012 +circle,32.542380336,70.7024172063 +circle,52.8250171923,85.5781338795 +circle,58.5282895407,78.9787042541 +circle,56.265834263,79.2529394854 +circle,57.0758924193,79.1939225382 +circle,54.2564023808,79.3138648504 +circle,62.6856712475,78.1747432719 +circle,68.0856058616,76.1123175001 +circle,65.1181219632,77.3991884543 +circle,68.7456312971,75.7900554548 +circle,63.0902251412,78.041409495 +circle,77.2045893204,69.3121497658 +circle,82.0339084758,62.6818697859 +circle,81.5779459183,63.8949255005 +circle,85.1801432805,53.7816766607 +circle,84.2868249936,57.2561680896 +circle,85.6224867126,45.0241658646 +circle,85.6044990156,50.7623379055 +circle,84.4247858276,38.761410164 +circle,85.570985078,44.5600964397 +circle,84.6267242006,39.4870775084 +circle,73.3961549252,22.8162479426 +circle,73.5074477338,22.8569887644 +circle,63.3564881135,17.7240688424 +circle,72.9590468722,22.5114998325 +circle,64.0208416469,17.8835812521 +circle,61.124463241,17.1163533592 +circle,75.6742073297,24.7825009657 +circle,69.5135831574,20.2793578927 +circle,58.5721354669,16.642703808 +circle,70.9819409865,21.1458881039 +circle,65.2230303973,18.3971951223 +circle,65.3150439093,18.3337482986 +circle,64.0102406778,17.9244781912 +circle,57.1409359294,16.5986105437 +circle,56.3651532552,16.3265463742 +circle,43.046183241,18.4025593948 +circle,52.0817555582,16.4538745312 +circle,42.8790365154,18.4894110252 +circle,51.5669948027,16.4857136372 +circle,58.8391251216,16.6376352154 +circle,60.7557891374,17.0332315064 +circle,54.7611561181,16.3661890954 +circle,53.5699050003,16.3397125506 +circle,48.9146182416,16.7986370826 +circle,52.6461373069,16.3848363836 +circle,49.8384929905,16.6763302777 +circle,52.6840664009,16.4079627826 +circle,65.8072190346,18.1407649473 +circle,60.6739209233,17.0518023644 +circle,63.394712866,17.7005351354 +circle,64.8020094467,18.2168786335 +circle,65.0259398087,18.2878245002 +circle,65.7555515404,18.5162158303 +circle,69.9677341245,20.5389887758 +circle,68.8927840241,20.0324488429 +circle,61.8265465579,17.2696554452 +circle,60.7879700808,17.0462048583 +circle,61.9156096372,17.2821912228 +circle,45.0289975331,17.7244473049 +circle,39.9213628084,19.7018495281 +circle,84.7942778751,55.5686503735 +circle,55.6629587449,83.3564796243 +circle,50.4922475132,78.997532065 +circle,51.4671011416,79.2018445773 +bullseye,51.2038911373,83.3397766053 +bullseye,58.9744699018,85.499817612 +bullseye,51.8720726696,85.8297376348 +bullseye,48.1799307865,85.0451167372 +bullseye,41.6832004024,84.0179406019 +bullseye,37.8904155015,82.5674929978 +bullseye,39.5489736947,80.812601774 +bullseye,39.6495738769,82.6645338713 +bullseye,34.7505970472,80.0110909897 +bullseye,27.560835291,72.8478255927 +bullseye,24.6355399754,71.6107148256 +bullseye,20.9594648125,66.0414983826 +bullseye,20.6891490538,62.7213052064 +bullseye,19.2882047369,62.0630593582 +bullseye,20.0245005746,61.3426238695 +bullseye,35.4695229971,43.1158849517 +bullseye,36.8943276507,47.7065559687 +bullseye,39.0555497751,55.5469737131 +bullseye,46.9570801494,65.2404073935 +bullseye,37.3104527352,45.2587508999 +bullseye,40.0096720019,60.9865825077 +bullseye,48.0143866846,65.7128195934 +bullseye,53.7037759268,66.3894820363 +bullseye,63.0674998921,64.0350004581 +bullseye,62.0480325076,63.8458632494 +bullseye,59.8399667124,64.4767644437 +bullseye,55.1609418175,65.2373081694 +bullseye,61.2797865792,65.766402504 +bullseye,60.8349175348,64.6037697063 +bullseye,61.5205906458,64.7918550418 +bullseye,36.916543863,41.0952474383 +bullseye,38.5021996714,41.5671556174 +bullseye,48.6643707344,30.6806668519 +bullseye,50.2852524042,30.3379221051 +bullseye,42.276332666,34.5276361236 +bullseye,54.0317756204,29.6723483149 +bullseye,37.3293552552,39.6020423074 +bullseye,41.389522551,37.2960562328 +bullseye,40.0746666572,34.6236852027 +bullseye,35.3496806211,47.1410731332 +bullseye,34.7637004189,47.6247999245 +bullseye,37.0266294472,44.4622930512 +bullseye,36.4555695327,40.791843032 +bullseye,35.5376642131,48.7293868661 +bullseye,20.4089478892,32.2030304205 +bullseye,23.4957104659,25.3224681542 +bullseye,29.5575433634,21.3647774591 +bullseye,33.0082339121,15.9850714584 +bullseye,53.9803991821,29.3509867092 +bullseye,52.2343086004,29.711672986500002 +bullseye,59.5030766063,30.6696739448 +bullseye,41.1637810689,34.3157582514 +bullseye,48.9930401201,32.0303588363 +bullseye,59.2692803248,29.6407017654 +bullseye,45.4691770035,33.8311927323 +bullseye,62.6912665406,30.2903738312 +bullseye,73.4286708654,48.5778551303 +bullseye,70.846426107,52.282253331 +bullseye,71.5390198495,45.5218061588 +bullseye,67.6208658884,38.0065584658 +bullseye,72.4709525633,51.1221348241 +bullseye,64.8122375621,62.8109155873 +bullseye,60.8536798727,65.4991470327 +bullseye,67.7894961571,61.3637015467 +bullseye,41.6095572691,83.8486865559 +bullseye,53.0030253202,84.6747986012 +bullseye,54.7141710591,84.0431280734 +bullseye,44.2916687157,82.9094412144 +bullseye,49.1917219555,85.8762291224 +bullseye,53.1013817819,84.5476586881 +bullseye,51.599848153,84.8198214898 +bullseye,54.3797219484,84.2403555494 +bullseye,46.4807681047,83.518211666 +bullseye,53.174656268,84.2605679876 +bullseye,45.272002941,85.2370794195 +bullseye,36.03340215,53.371687755 +bullseye,28.2711941653,72.840231257 +bullseye,25.0548060847,71.5485979221 +bullseye,64.7588870014,82.3152236405 +bullseye,63.1445274767,85.2366963264 +bullseye,50.4246786898,85.1747475891 +bullseye,70.6449962629,82.4309187567 +bullseye,63.1490490834,83.9468553485 +bullseye,62.8240245172,84.9661859507 +bullseye,70.236869515,82.1711510621 +bullseye,70.0427352449,80.3850213547 +bullseye,72.5706234458,80.9712184346 +bullseye,75.1307160373,79.9840931403 +bullseye,83.2939057345,70.7784317876 +bullseye,79.6642622775,73.9323097157 +bullseye,88.4321025254,64.6242470023 +bullseye,89.1155590082,64.0015066388 +bullseye,89.0921976305,57.768193047 +bullseye,91.7260057727,52.6233532573 +bullseye,91.7355387598,48.9702108877 +bullseye,91.5078881747,53.3126520851 +bullseye,88.239001904,31.4774348786 +bullseye,88.5305192041,30.4760310098 +bullseye,55.3651603364,30.4458502777 +bullseye,62.5602588694,30.4471356661 +bullseye,58.0066691227,30.2537212987 +bullseye,55.0671179917,29.0115351997 +bullseye,61.6147759612,29.9943911942 +bullseye,68.5431435378,35.6578321706 +bullseye,77.7061096487,20.3042601852 +bullseye,68.4530459999,13.0355285908 +bullseye,68.2572064402,12.3846391542 +bullseye,70.2554746739,13.2503849689 +bullseye,65.0443252778,11.0008414785 +bullseye,60.0922466078,11.8721117093 +bullseye,52.9920289667,9.90666848335 +bullseye,50.1446289773,12.2115430946 +bullseye,46.5086141932,11.2071344881 +bullseye,43.8070319612,11.3189448865 +bullseye,57.8178546865,10.9451424306 +bullseye,50.9404926595,9.69154713447 +bullseye,63.4973230835,11.9140691707 +bullseye,50.0164829541,11.9338520864 +bullseye,58.6367650809,11.9747210652 +bullseye,54.7302890863,11.4128826732 +bullseye,65.8755478023,11.7324363627 +bullseye,57.0609827131,9.92056085444 +bullseye,46.819907946,10.4946526804 +bullseye,38.3593948725,13.431322624 +bullseye,47.3154157773,12.853451784 +bullseye,55.0519165396,11.9499886181 +bullseye,50.5159602579,9.76559162187 +bullseye,49.6774146514,10.3831325083 +bullseye,67.2806595188,14.1286515323 +bullseye,66.1730182606,12.0379170217 +bullseye,61.0885441374,10.0845344144 +bullseye,66.0530857731,13.3802260073 +bullseye,72.6699892655,15.2342259409 +bullseye,61.503472503,10.8284144754 +bullseye,68.995028632,13.9943105293 +bullseye,78.2499161658,17.8832409068 +bullseye,36.4819805699,15.1627600944 +bullseye,50.9677483784,29.6797742875 +bullseye,91.1910536059,46.6743428399 +bullseye,55.8637684939,85.3364867573 +bullseye,49.2805947987,84.0488228306 +bullseye,43.3685015447,84.3321772039 +slant_up,47.6952008891,95.2411869282 +slant_up,44.6099759113,93.075835032 +slant_up,43.8563814822,94.0858717713 +slant_up,41.5789293984,90.3035665387 +slant_up,49.1774185559,96.6105324538 +slant_up,42.6522509813,90.5606397307 +slant_up,30.1233318217,81.1442953304 +slant_up,31.915519986,79.7904134869 +slant_up,27.8877193574,75.4455759934 +slant_up,27.5482344526,75.1647590544 +slant_up,20.2097781637,67.5166420988 +slant_up,24.4434528292,54.4736551228 +slant_up,24.6308301331,53.3957388998 +slant_up,21.0379688969,49.829299645 +slant_up,27.106242932,54.7195531488 +slant_up,28.0896176553,60.512212549 +slant_up,31.1357349152,61.4319127116 +slant_up,37.700837521,68.4184052804 +slant_up,43.3926884016,43.5975940692 +slant_up,51.2623974761,49.6665051258 +slant_up,43.2867129203,43.0568603208 +slant_up,55.9059162338,54.2526725342 +slant_up,50.198958949,52.2250295948 +slant_up,55.761587372,54.0305172396 +slant_up,58.3231396505,60.0310591646 +slant_up,70.171457528,70.2822212385 +slant_up,60.600276471,59.7533088802 +slant_up,63.7602750188,61.1856411696 +slant_up,54.3894952619,53.811901225 +slant_up,55.2412969947,52.5935746267 +slant_up,49.0701267502,48.8969446811 +slant_up,46.0181190216,46.2577233718 +slant_up,44.7595874356,41.9746066134 +slant_up,51.6006241332,50.0324668853 +slant_up,36.4658820182,35.5241876075 +slant_up,33.394798732700004,35.0168013145 +slant_up,37.5800715749,38.8315722007 +slant_up,36.619722059,36.8114141094 +slant_up,36.1634664356,33.819314199 +slant_up,33.1677570349,31.2477411672 +slant_up,42.6449829318,40.1543216386 +slant_up,47.2250252695,44.5756466185 +slant_up,48.3923630032,50.3315285645 +slant_up,27.2451932001,29.8195074488 +slant_up,30.4043143388,29.0795399241 +slant_up,30.0807992865,27.5880255173 +slant_up,33.9806339675,35.0330581489 +slant_up,34.2506117649,34.4415865654 +slant_up,51.1411835714,20.6183237784 +slant_up,49.899592066,19.5640835356 +slant_up,55.5898773424,26.2992451143 +slant_up,55.4820563581,22.8274662445 +slant_up,63.5729393821,32.9386176053 +slant_up,59.0250770848,28.3220858801 +slant_up,62.4237785929,33.4865952868 +slant_up,47.849907703,48.556624645 +slant_up,52.2685616825,52.8052401961 +slant_up,68.8510215758,39.573434273 +slant_up,65.6763960251,35.1093154301 +slant_up,77.7468851148,47.3718241139 +slant_up,80.352934115,47.8002988852 +slant_up,60.3375864858,63.0349593272 +slant_up,61.6587233282,64.1000234779 +slant_up,71.5450389858,72.657716331 +slant_up,49.0409566406,77.3625832678 +slant_up,51.8868880222,80.1136076892 +slant_up,57.968981435,85.3560457326 +slant_up,54.855664646,83.7833976656 +slant_up,54.1331954613,83.7939960824 +slant_up,51.3088252568,80.1363911553 +slant_up,61.1203943844,88.7040529069 +slant_up,55.5638650304,85.810375144099993 +slant_up,55.044123361,83.5414106324 +slant_up,50.4441853247,78.1958883115 +slant_up,43.8277089981,71.0470522123 +slant_up,37.7914323802,66.8546410275 +slant_up,29.292783111,59.79199693 +slant_up,32.1920969515,60.2006509147 +slant_up,51.4339355233,99.2568672885 +slant_up,67.4641398118,95.999963905 +slant_up,65.1507052757,92.502633736799993 +slant_up,65.5834276962,93.5170609365 +slant_up,69.2889731377,99.5795911254 +slant_up,81.2694405511,80.635944933 +slant_up,78.5757448361,76.8157030942 +slant_up,74.1867734997,74.3442041467 +slant_up,72.622209414,74.5269656511 +slant_up,75.1415195918,73.8196684648 +slant_up,75.168667839,73.9004448762 +slant_up,85.3242028911,55.3885788252 +slant_up,84.090507598,56.301968006 +slant_up,86.2562238205,55.8309303793 +slant_up,92.5487933153,42.9019079116 +slant_up,90.3426345089,37.7803861004 +slant_up,85.8191629042,37.5713861819 +slant_up,90.4418181137,40.1331134204 +slant_up,92.0175590822,39.9179311324 +slant_up,95.2605278366,46.008830272 +slant_up,41.2902998033,42.3115524113 +slant_up,66.4313243161,36.5361097353 +slant_up,63.9863468858,32.7134316129 +slant_up,61.2696820905,29.3857240482 +slant_up,60.7493891909,28.0517363383 +slant_up,64.6552305634,16.6122765086 +slant_up,68.6382807138,18.5080128963 +slant_up,65.7766651568,16.7876560655 +slant_up,71.1341263421,19.3859575313 +slant_up,63.7231835039,14.5214211957 +slant_up,73.0014940701,24.0738125371 +slant_up,72.436657497,20.5783451136 +slant_up,68.4127671225,19.9131265443 +slant_up,52.8583150204,20.2350610035 +slant_up,53.5299526734,24.2419155845 +slant_up,50.7597410528,18.0893946004 +slant_up,42.53480844,10.1698684594 +slant_up,41.5303978512,13.3962907452 +slant_up,46.7145179915,15.6132744651 +slant_up,48.4506176492,16.2122782224 +slant_up,59.6326101247,7.05803719901 +slant_up,61.6185682473,13.4108227184 +slant_up,48.8339891275,17.7259558674 +slant_up,45.3426531889,13.9088123935 +slant_up,42.4150122932,11.6937810961 +slant_up,58.9347650647,9.36920121911 +slant_up,60.6836260407,10.6326415569 +slant_up,54.8117983683,6.56964870325 +slant_up,61.5868424253,11.0275858356 +slant_up,59.7160077628,11.5190968617 +slant_up,58.4163840114,5.64577748328 +slant_up,59.243809528,10.5401420943 +slant_up,56.5943646385,8.91734404523 +slant_up,68.4925132247,17.9873634289 +slant_up,65.0059431717,15.9126686464 +slant_up,63.9210367078,15.6209610332 +slant_up,53.5129705438,5.87510952836 +slant_up,57.8328062743,9.22238462333 +slant_up,31.0329174395,28.9281418896 +slant_up,31.3332440932,32.5385694785 +slant_up,86.4015498466,38.7469331743 +slant_up,47.4421116354,98.1843018589 +slant_up,46.2647413368,94.1161921613 +slant_up,40.1638157437,87.4486723469 +slant_down,52.8720214902,97.3432226575 +slant_down,59.0141444945,93.5748748733 +slant_down,56.3751090389,96.30514763 +slant_down,37.8391996844,94.359443503 +slant_down,39.8853734176,90.6346620817 +slant_down,44.0774051326,84.1258533023 +slant_down,31.4970254888,67.912562156800007 +slant_down,25.9525965456,73.0331803541 +slant_down,36.4347239148,62.2940454639 +slant_down,24.997482691,75.4415616626 +slant_down,32.2462751352,70.1105868383 +slant_down,18.1094722949,53.7081103324 +slant_down,21.7960992263,49.4995295248 +slant_down,24.150491069,47.1885335266 +slant_down,28.6031956015,44.2237227 +slant_down,20.9319996761,51.6462354868 +slant_down,35.4355325251,34.9610381566 +slant_down,44.3773828236,57.6847369215 +slant_down,46.313692406,55.6855917703 +slant_down,46.3860739231,51.0021645381 +slant_down,42.4954400876,56.9036815315 +slant_down,44.3005150328,58.1329592781 +slant_down,46.9882833458,55.4206367313 +slant_down,52.4215231623,47.867005488 +slant_down,64.090998189,68.6509850107 +slant_down,63.0168717563,68.2252589114 +slant_down,67.3025779226,64.4134627173 +slant_down,67.2259568904,62.4764105301 +slant_down,50.309988715,47.2678818553 +slant_down,45.4126389249,53.8707976895 +slant_down,54.0206071815,47.2698972057 +slant_down,49.8420222483,50.5765522936 +slant_down,50.7132995657,48.7722867825 +slant_down,55.0455549106,45.9862727459 +slant_down,37.5437012597,32.8840244657 +slant_down,39.7958978066,28.4432191156 +slant_down,28.5233910215,39.7966662481 +slant_down,31.3996460012,39.2652632229 +slant_down,39.2415652162,33.3614166846 +slant_down,27.7140565712,42.2500516253 +slant_down,32.9607035213,35.8231112903 +slant_down,35.4047362397,31.9391621952 +slant_down,51.6422264225,50.8383406788 +slant_down,34.207620843,33.5938054385 +slant_down,36.5234892198,35.6710483891 +slant_down,28.4192021281,21.3157482481 +slant_down,26.1604969417,23.0422314726 +slant_down,40.435327397,27.6400711421 +slant_down,44.544955314,27.3622426221 +slant_down,40.1237272008,30.0731619402 +slant_down,42.1848064503,28.5736747331 +slant_down,40.0026592892,27.4875100027 +slant_down,57.1252310509,42.7390191388 +slant_down,60.375744968,41.3564579961 +slant_down,55.1058961252,46.1490510561 +slant_down,61.7372710245,38.5848440052 +slant_down,55.7412443246,46.6535769763 +slant_down,58.2964084158,41.5831977346 +slant_down,57.0425482213,42.418757739 +slant_down,76.7756112073,55.2545987009 +slant_down,71.8870772602,59.2669926152 +slant_down,73.7883730663,58.6208121164 +slant_down,75.1396847343,54.2445521781 +slant_down,64.5963189058,65.952512925 +slant_down,46.9095386323,85.6022611586 +slant_down,46.9051031994,81.5656424136 +slant_down,49.8069877356,82.085025592 +slant_down,48.8632418189,83.1583574877 +slant_down,66.7481899024,84.0048341677 +slant_down,62.3597662841,90.2436599196 +slant_down,47.3748964954,83.4715555182 +slant_down,47.4464667165,82.622124014 +slant_down,53.385280634,78.8711362558 +slant_down,49.4527077733,79.9306028004 +slant_down,54.8026825363,75.3639849893 +slant_down,37.0882451339,60.857227495 +slant_down,32.3759619238,68.5108204552 +slant_down,37.4770138847,63.7886855744 +slant_down,52.4066488967,96.4254150057 +slant_down,50.2970432655,99.6441791736 +slant_down,61.5633243835,89.8641388605 +slant_down,61.0865603919,89.2243556475 +slant_down,59.2364904011,91.4811005766 +slant_down,66.1540050863,84.1119370252 +slant_down,67.2313347767,85.055640808 +slant_down,73.7099068702,78.2706108976 +slant_down,76.5804513576,72.8915336827 +slant_down,78.8765811639,71.5625276804 +slant_down,77.4490021363,72.4473094857 +slant_down,86.8537073476,65.5433240194 +slant_down,79.806531301,52.7231797883 +slant_down,76.9882734745,54.2027848022 +slant_down,79.4793575017,49.1410154455 +slant_down,82.3041595613,46.9909036215 +slant_down,90.700691247,41.4667030063 +slant_down,95.4434878077,36.1897016148 +slant_down,94.9974880471,35.0953011066 +slant_down,91.517847246,36.8902631263 +slant_down,62.2926421901,40.0295333141 +slant_down,59.2034756073,41.2706776667 +slant_down,65.2563927704,32.8541041237 +slant_down,62.4447424979,35.4149992261 +slant_down,72.4624062907,27.6242638254 +slant_down,69.9194262552,29.3110927191 +slant_down,77.7628590782,23.4913735562 +slant_down,72.7784101997,26.9005353695 +slant_down,65.198316667,33.0271717859 +slant_down,69.4598588916,30.1970315053 +slant_down,59.3150555205,12.3543136666 +slant_down,51.487713355,20.8436106875 +slant_down,57.1124475509,15.3217851726 +slant_down,50.2244178157,19.1709698793 +slant_down,50.4338611907,18.5348708515 +slant_down,56.3803054046,14.7884597101 +slant_down,54.8635045999,14.009611915 +slant_down,45.4998576493,3.98542629287 +slant_down,49.9367453057,21.5900969196 +slant_down,53.8098729164,17.7664144512 +slant_down,59.8526782804,9.03994992133 +slant_down,48.1756567942,19.5212153543 +slant_down,50.7417190667,17.8384056087 +slant_down,58.4597612975,14.1486628546 +slant_down,50.1145975193,1.74146171252 +slant_down,45.4203820755,5.37240899542 +slant_down,51.3532681954,0.30387242055 +slant_down,53.091704424,19.2900304453 +slant_down,58.9431665444,11.6128777918 +slant_down,59.3109904219,10.5721363739 +slant_down,68.2221986595,1.13388036584 +slant_down,62.5117719862,7.49123248279 +slant_down,69.3800563617,1.48813233299 +slant_down,82.8002478704,18.5293762368 +slant_down,85.1603321777,15.0183695439 +slant_down,67.095847697,0.601490941965 +slant_down,62.307750573,5.74997471945 +slant_down,59.9704150458,7.9133104735 +slant_down,39.9116351739,32.1440226145 +slant_down,39.5965009783,32.1361317349 +slant_down,95.5934163965,33.2341293953 +slant_down,52.772288113,99.6134716833 +slant_down,53.1786144535,98.6038611855 +slant_down,37.6270534612,93.060672952 +wide_lines,65.8155400946,95.5883740582 +wide_lines,65.6722651618,91.9334018119 +wide_lines,39.002716451,92.26183816 +wide_lines,37.7953028026,93.5324553607 +wide_lines,35.5139005857,89.5991901138 +wide_lines,39.2194529062,83.5434818364 +wide_lines,31.5882013862,77.0280524208 +wide_lines,32.6577782482,80.1138612983 +wide_lines,31.6415992679,77.6108331874 +wide_lines,30.9871426099,63.9440280336 +wide_lines,27.4396322054,65.7444629564 +wide_lines,30.5783699449,65.5219454667 +wide_lines,28.809401637,59.6210044666 +wide_lines,27.9395185786,50.9850621313 +wide_lines,33.8499497887,46.2844744465 +wide_lines,32.628463049,54.0637204929 +wide_lines,32.4386500903,49.9030194916 +wide_lines,35.8382920833,53.3514883396 +wide_lines,37.1420429198,49.7419879519 +wide_lines,34.6445467746,54.4441077764 +wide_lines,35.675404696,49.6256433471 +wide_lines,64.99458547,49.4621728312 +wide_lines,66.1291498342,61.6437178853 +wide_lines,65.790651882,55.9453737171 +wide_lines,67.5017806138,60.8502274659 +wide_lines,67.6295142176,61.4291060701 +wide_lines,63.9100640599,62.9723349305 +wide_lines,66.5493579687,67.7255886599 +wide_lines,64.0515417112,48.8200939835 +wide_lines,68.1932895833,46.5435408096 +wide_lines,65.2783891952,44.8203529292 +wide_lines,34.9976613883,28.6329939351 +wide_lines,33.9237661692,53.5586885227 +wide_lines,66.0044543688,52.6846691452 +wide_lines,37.0232562464,32.1184816794 +wide_lines,34.6982700852,36.4753541349 +wide_lines,34.8634441715,30.9392745218 +wide_lines,31.0900650789,32.3837547196 +wide_lines,34.9213061465,35.4184380529 +wide_lines,30.343361183,32.5245631742 +wide_lines,35.4833288685,44.4916349303 +wide_lines,33.2349104271,38.502483721 +wide_lines,35.4399436182,47.7975176939 +wide_lines,33.8735095227,37.056028453 +wide_lines,28.5641377966,34.6263997171 +wide_lines,31.3195486706,31.6639905316 +wide_lines,30.796174379,23.5190343602 +wide_lines,34.2333554347,22.4959116015 +wide_lines,36.6307877065,31.4768312621 +wide_lines,34.5486191018,26.1110878654 +wide_lines,37.5196356,29.2676058936 +wide_lines,62.4256973267,34.0442062707 +wide_lines,64.320383794,31.7856294846 +wide_lines,65.4455325117,43.2734991936 +wide_lines,64.3256315887,41.6159763773 +wide_lines,65.264338195,35.7175447772 +wide_lines,66.388704175,38.8447443366 +wide_lines,68.1914228192,45.1694864796 +wide_lines,68.5406624515,48.4385263389 +wide_lines,67.6614312657,51.0685845873 +wide_lines,68.6755160534,50.465234811 +wide_lines,69.0817099788,55.4740530987 +wide_lines,69.048716493,66.3660457477 +wide_lines,67.3082233775,71.5902965807 +wide_lines,38.714899408,76.3969778172 +wide_lines,35.5480948795,89.3049758407 +wide_lines,36.7106729424,86.0749670003 +wide_lines,64.9126624396,87.6457960566 +wide_lines,66.0641357377,89.2086685815 +wide_lines,64.9359294757,87.0721381174 +wide_lines,67.0265507063,76.2225153324 +wide_lines,65.3140322257,77.9387440331 +wide_lines,64.2952177764,84.1258572133 +wide_lines,38.7980121423,74.6106304299 +wide_lines,34.6757573144,79.6375987743 +wide_lines,30.7192619427,58.812060082 +wide_lines,34.1051509268,64.1291972267 +wide_lines,33.4233718511,67.0957433613 +wide_lines,66.3138096741,98.9310270371 +wide_lines,65.3096314498,98.1651568396 +wide_lines,65.7140760682,99.2837639519 +wide_lines,67.5934531877,90.9519098246 +wide_lines,66.3880173202,89.2812304744 +wide_lines,67.8061881135,91.6881773501 +wide_lines,70.9626103129,86.5181213517 +wide_lines,71.9936371714,78.8209480695 +wide_lines,72.4798343312,80.8006830564 +wide_lines,74.0784292286,72.9515308522 +wide_lines,72.0362880189,69.7160484161 +wide_lines,72.9981862717,59.6656447092 +wide_lines,74.8121312339,57.5898837631 +wide_lines,73.0273050243,46.2741878725 +wide_lines,77.067111934,51.4869181896 +wide_lines,75.0171368727,46.6224426489 +wide_lines,76.6653077326,38.440250966 +wide_lines,77.9158742329,45.9268433826 +wide_lines,73.7420460836,39.1209853231 +wide_lines,75.3298157891,32.8303519164 +wide_lines,63.4104355141,38.377735614 +wide_lines,68.856486669,43.084147214 +wide_lines,66.3377850519,33.3065100022 +wide_lines,64.2037185014,26.6441143003 +wide_lines,64.4986348346,22.863501327 +wide_lines,68.8909906096,27.2962056672 +wide_lines,72.371523338,21.9616397473 +wide_lines,69.7654249704,19.999850454 +wide_lines,68.6213124429,18.9156764428 +wide_lines,64.2977371716,20.4287496884 +wide_lines,66.6992650902,18.5910853404 +wide_lines,67.5445276811,16.4479381344 +wide_lines,63.9469519836,18.6928454476 +wide_lines,64.3881920705,15.7728122808 +wide_lines,65.570045691,23.7657582226 +wide_lines,38.4028368753,19.0468586722 +wide_lines,37.8323600164,14.4694894463 +wide_lines,36.9041611715,13.5838157511 +wide_lines,36.286143052,17.1057707266 +wide_lines,62.7866325947,13.9189931024 +wide_lines,66.8176792234,11.4124971575 +wide_lines,66.755021412,18.0853051378 +wide_lines,65.4155283864,10.4635122068 +wide_lines,36.9463314417,13.5143774996 +wide_lines,37.8254347391,9.60103429534 +wide_lines,36.722837943,9.33330210686 +wide_lines,67.0733217806,6.04921458162 +wide_lines,64.601818107,12.0019169643 +wide_lines,65.4372821806,15.5453860785 +wide_lines,67.0040223792,15.3458266393 +wide_lines,66.7241920702,5.24980548075 +wide_lines,68.3076187632,13.2809165227 +wide_lines,68.7680482759,13.5214565521 +wide_lines,74.1672717461,5.34988087254 +wide_lines,64.9003579699,16.2452583689 +wide_lines,68.7634335463,8.70057294385 +wide_lines,66.8169139163,12.2732943361 +wide_lines,67.3093466467,0.217006270014 +wide_lines,34.7318293093,19.6017950724 +wide_lines,33.6744421497,26.09049021 +wide_lines,75.6272550236,37.128751949 +wide_lines,40.6101254225,89.1362398699 +wide_lines,39.1143664549,96.4817513202 +wide_lines,34.5838289299,89.5889019877