{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Machine Learning Clustering in Python\n", "In diesem Beitrag zeigen und vergleichen wir verschiedene Verfahren zum Clustering in Python. Unter Clustering versteht man das Zusammenfassen verschiedener Objekte zu Gruppen aus ähnlichen Objekten. Beispielsweise die Segmentierung von verschiedenen Käufergruppen im Einzelhandel.\n", "\n", "Beim Clustering werden die einzelnen Eigenschaften eines Objekts mit den Eigenschaften anderer Objekte in einem Vektorraum verglichen. Ziel ist es in diesem Vektorraum auf Zusammenhänge zu schließen, mit denen sich einzelnen Gruppen der Objekte in einem Datensatz bilden lassen. Die einzelnen Vektoren, die dabei für die verschiedenen Eigenschaften eines Objekts stehen, werden auf ihre Nähe zu den Vektoren anderer Objekte hin in Cluster eingeteilt. Um die Nähe zweier Vektoren zu bestimmen ist prinzipiell jede Metrik zulässig. Meistens wird jedoch die euklidische Distanz, oder die quadrierte euklidische Distanz (L2-Norm) verwendet.\n", "\n", "Häufig werden Unsupervised Learning Modelle für das Clustering verwendet. Dies bietet den Vorteil, dass keine bzw. nur wenige Annahmen über die zu findenden Cluster von vorneherein zu treffen sind. In diesem Beitrag gehen wir ausschließlich auf solche Modelle ein, da diese am weitesten verbreitet sind. Der Nachteil den diese Ansätze mit sich bringen liegt darin, Grundlagen zur Beurteilung des Ergebnisses zu finden, um auf diesen die einzelnen Verfahren zu vergleichen und zu bewerten.\n", "\n", "Für weitere Informationen zur Funktionsweise verweisen wir an dieser Stelle auf unseren Blog.\n", "## Clusteringvalidierung\n", "Es ist sehr schwer ein Clusteringergebnis objektiv zu bewerten, da ein Clusteringalgorithmus in eigener Verantwortung Cluster finden soll. Gäbe es bereits eine Einteilung der Objekte eines Datensatzes in Gruppen, wäre das Clustering überflüssig. Da diese Gruppeneinteilung aber nicht bekannt ist, ist es schwer zu sagen, ob ein Cluster gut gewählt ist oder nicht. Dennoch gibt es einige Methoden, mit denen sich zumindest bessere von schlechteren Clusteringergebnissen unterscheiden lassen. Nachfolgend haben wir eine Liste mit den gängigsten Methoden aufgestellt.\n", "

Elbow-Kriterium

\n", "Das Elbow-Kriterium eignet sich, um bei einem k-means Clustering die optimale Anzahl von Clustern zu bestimmen. Dabei trägt man in einem Diagramm auf der x-Achse die Anzahl der Cluster auf und auf der y-Achse die Summe der quadrierten Abweichungen der einzelnen Punkte zum jeweiligen Clusterzentrum. Falls auf dem Diagramm ein Knick erkennbar sein sollte, ist dieser Punkt die optimale Anzahl an Clustern. Denn ab diesem Punkt sinkt die Aussagekraft der einzelnen Cluster, da sich die Summe der quadrierten Abweichungen nur noch leicht verändert.\n", "

Gap Statistic

\n", "Die Gap Statistic vergleicht die Abweichungen der einzelnen Objekte innerhalb eines Clusters im Bezug zu dem jeweiligen Zentrum. Dabei wird die Verteilung der Objekte mit einer zufälligen Verteilung verglichen. Je weiter dabei die Verteilung in Abhängigkeit zu der Anzahl der Cluster von der zufälligen Verteilung entfernt ist, desto besser ist die jeweilige Anzahl an Clustern.\n", "

Calinski-Harabasz Index

\n", "Der Calinski-Harabasz Index setzt die Separierung und Kompaktheit der Cluster in ein Verhältnis zueinander. Somit wird die Varianz der Quadratsummen der Abstände einzelner Objekte zu ihrem Clusterzentrum durch die Quadratsumme der Distanz zwischen den Clusterzentren und dem Mittelpunkt der Daten eines Clusters geteilt. Ein gutes Clusteringergebnis hat dabei einen hohen Calinski-Harabasz Index Wert.\n", "

Silhouettenmethode

\n", "Die Silhouettenmethode vergleicht den durchschnittlichen Silhouettenkoeffizienten unterschiedlicher Clusteranzahlen. Der Silhouettenkoeffizient gibt dabei an, wie gut die Zuordnung eines Objekts zu seinen beiden nächsten Clustern A und B ausfällt. Dabei ist der Cluster A der Cluster zu dem das Objekt zugeordnet wurde.\n", "\n", "Der Silhouettenkoeffizient berechnet sich, in dem die Differenz des Abstands des Objekts zum Cluster B zu dem Abstand des Objekts zum Cluster A gebildet wird. Diese Differenz wird anschließend mit der maximalen Distanz des Objekts zu Cluster A und B gewichtet. Dabei kann das Ergebnis S(Objekt) zwischen -1 und 1 liegen. Falls S(Objekt) < 0 liegt das Objekt näher an Cluster B als an A. Demnach kann das Clustering verbessert werden. Falls S(Objekt) ≈ 0 Dann liegt das Objekt mittig der beiden Cluster. Somit ist das Clustering wenig aussagekräftig. Je weiter sich S(Objekt) an 1 annähert desto besser ist das Clustering für dieses. Silhouettenmethode wird nach der Anzahl an Clustern gesucht, für die der durchschnittliche Silhouettenkoeffizient am höchsten liegt.\n", "

Clustering

\n", "Zunächst werden wir uns einen Datensatz generieren um die Daten in Cluster einzuordnen.\n", "

Datensatzgenerierung

\n", "Unseren Datensatz generieren wir so, dass er aus insgesamt 80 zweidimensionalen Punkten besteht, die in einem festgelegten Radius zufällig um drei Punkte erzeugt werden. Dafür verwenden wir die Methode “make_blobs” aus scikit-learn." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sklearn/externals/six.py:31: DeprecationWarning: The module is deprecated in version 0.21 and will be removed in version 0.23 since we've dropped support for Python 2.7. Please rely on the official version of six (https://pypi.org/project/six/).\n", " \"(https://pypi.org/project/six/).\", DeprecationWarning)\n", "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sklearn/externals/joblib/__init__.py:15: DeprecationWarning: sklearn.externals.joblib is deprecated in 0.21 and will be removed in 0.23. Please import this functionality directly from joblib, which can be installed with: pip install joblib. If this warning is raised when loading pickled models, you may need to re-serialize those models with scikit-learn 0.21+.\n", " warnings.warn(msg, category=DeprecationWarning)\n" ] } ], "source": [ "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "from sklearn.cluster import KMeans\n", "from sklearn.cluster import DBSCAN\n", "from sklearn.cluster import OPTICS\n", "from sklearn import metrics\n", "from sklearn.metrics import pairwise_distances\n", "from sklearn.preprocessing import StandardScaler\n", "import hdbscan\n", "from sklearn.datasets.samples_generator import make_blobs" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def generate_points():\n", " \"\"\" Generate random points. \"\"\"\n", " centers = []\n", " centers.append([[ 0.75,-0.75]])\n", " centers.append([[-0.75,-0.75]])\n", " centers.append([[ 0.75, 0.75]])\n", " datas = [None] * len(centers)\n", " labels_true = [None] * len(centers)\n", " datas[0], labels_true[0] = make_blobs(n_samples=40, centers=centers[0], cluster_std=0.4)\n", " datas[1], labels_true[1] = make_blobs(n_samples=15, centers=centers[1], cluster_std=0.10)\n", " datas[2], labels_true[2] = make_blobs(n_samples=25, centers=centers[2], cluster_std=0.20)\n", " print(datas[0])\n", " print(len(datas))\n", " for i in range(len(datas)-1):\n", " data = np.append(datas[0], datas[i+1], axis=0)\n", " data = pd.DataFrame(data, columns=['x','y'])\n", " ##filee = open(\"./datasets/points.txt\", \"w\", newline = '')\n", " ##data.to_csv(filee, sep = ',', index = False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Da wir nicht jedes mal neue Daten generieren wollen, kommentieren wir die Zeile in der die Daten gespeichert werden aus." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "data = pd.read_csv(\"./datasets/points.txt\")\n", "data2 = data\n", "plt.plot(data['y'], data['x'], 'o')\n", "plt.title(\"Data\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Außerdem definieren wir eine weitere Funktionen für die grafische Darstellung des Clusterings." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "def plot_clustering(data, k=None, vars=None):\n", "\t\"\"\" Plot the clustered data. \"\"\"\n", "\tif vars == None:\n", "\t\tcols = list(data.columns)\n", "\telse:\n", "\t\tvars.append('cluster')\n", "\t\tvars = set(vars)\n", "\t\tvars = list(vars)\n", "\t\tcols = vars\n", "\tg = sns.pairplot(data[cols], hue='cluster', diag_kind='hist')\n", "\tif not k == None:\n", "\t\tplt.subplots_adjust(top=0.9)\n", "\t\tg.fig.suptitle(k + 2)\n", "\t\tg.fig.tight_layout()\n", "\tplt.subplots_adjust(left=0.05, bottom=0.05)\n", "\tplt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Clusteringmodelle

\n", "Nachdem wir unsere Daten nun generiert haben, können wir mit dem eigentlichen Clustering beginnen. Dafür verwenden wir die Verfahren k-means, DBSCAN, HDBSCAN und OPTICS. Mit Ausnahme von HDBSCAN entstammen die Verfahren der scikit-learn Bibliothek. Für das HDBSCAN Verfahren gibt es aber ebenfalls eine vorgefertigte Bibliothek auf die wir zurückgegriffen haben. Dabei zählt k-means zu den partitionierenden Verfahren und die übrigen Verfahren werden als dichtebasierte Verfahren bezeichnet. Im Grunde sind HDBSCAN und OPTICS lediglich verbesserte Versionen des DBSCAN. Mit der Methode “fit_predict” von scikit-learn bestimmen wir mit jedem Modell die Zugehörigkeit der Punkte zu einem Cluster.\n", "\n", "An dieser Stelle stellen wir die verwendeten Verfahren kurz vor und erläutern ihre Funktionsweise.\n", "

k-means

\n", "Das k-means Verfahren teilt den Datensatz in k Teile auf. Dies geschieht, in dem die Summe der quadratischen Abweichungen der einzelnen Punkte von den Clusterzentren minimiert wird. Problematisch an diesem Verfahren ist einerseits, dass bereits im Voraus die Anzahl der Cluster zu bestimmen ist, andererseits kann das Verfahren mit Datensätzen mit variierenden Dichten und Formen zum Teil nur schlecht umgehen. Dadurch ist es auf realen Datensätzen oftmals nicht bestens geeignet. Ebenfalls kann das Verfahren keine Noise Objekte, also Objekte die weit von einem Cluster entfernt liegen und diesem eigentlich nicht mehr zuzuordnen sind, nicht als solche erkennen." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "def get_kmeans(data, n_clusters=3):\n", "\t\"\"\" Do kmeans clustering and return clustered data \"\"\"\n", "\tkmeans = KMeans(n_clusters=n_clusters, init=\"k-means++\", n_init=10, max_iter=300)\n", "\tvals = data.iloc[ :, 0:].values\n", "\ty_pred = kmeans.fit_predict(StandardScaler().fit_transform(vals))\n", "\tdata[\"cluster\"] = y_pred\n", "\treturn data, kmeans.inertia_" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

DBSCAN

\n", "DBSCAN steht für “Density-Based Spatial Clustering of Applications with Noise”. Die Grundannahme des DBSCAN Algorithmus besteht darin, dass Objekte eines Clusters dicht zusammenliegen. Es werden 3 Arten von Objekten unterschieden:\n", "
    \n", " \t
  1. Kernobjekte sind Objekte die selbst dicht sind.
  2. \n", " \t
  3. Dichte-erreichbare Objekte sind Objekte, die selbst nicht dicht, aber von einem Kernobjekt erreichbar sind.
  4. \n", " \t
  5. Noisepunkte sind Objekte die weder dicht noch dichte-erreichbar sind.
  6. \n", "
\n", "Dabei wird ein Parameter epsilon und ein Parameter minPoints festgelegt. Epsilon bestimmt dabei die Distanz, ab wann ein Punkt von einem zweiten Punkt erreichbar ist, nämlich dann, wenn ihr Abstand kleiner als epsilon ist. MinPoints legt fest, ab wann ein Objekt dicht ist, also wie viele Objekte innerhalb des Abstands epsilon um einen Punkt liegen müssen." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "def get_dbscan(data, min_samples=3):\n", "\t\"\"\" Do dbscan clustering and return clustered data \"\"\"\n", "\tdb = DBSCAN(eps=0.37, min_samples=min_samples)\n", "\tvals = data.iloc[ :, 0:].values\n", "\ty_pred = db.fit_predict(StandardScaler().fit_transform(vals))\n", "\tdata[\"cluster\"] = y_pred\n", "\treturn data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

HDBSCAN

\n", "HDBSCAN steht für “Hierarchical Density-Based Spatial Clustering” und basiert auf dem DBSCAN Algorithmus. Er erweitert diesen, indem er den DBSCAN Algorithmus in einen hierarchischen Clusteringalgorithmus überführt. Deswegen benötigt er keinen Abstand epsilon zur Bestimmung der Cluster. Damit ist es möglich Cluster unterschiedlicher Dichte zu finden und somit eine große Schwachstelle von DBSCAN zu beheben.\n", "\n", "HDBSCAN funktioniert dabei, indem zunächst eine Zahl k festgelegt wird. Mit dieser wird bestimmt, wie viele Nachbarschaftsobjekte bei der Bestimmung der Dichte eines Punkts betrachtet werden. Hierin besteht ein entscheidender Unterschied im Vergleich zum DBSCAN Algorithmus. DBSCAN sucht in der gegebenen Distanz epsilon nach Nachbarn und HDBSCAN sucht nach der Distanz, ab der k Objekte in der Nachbarschaft liegen.\n", "\n", "Nach dieser Zahl k wird die Kerndistanz für jeden Punkt bestimmt. Diese ist die kleinste Distanz, mit der k Objekte erreicht werden können. Außerdem wird eine Erreichbarkeitsmetrik eingeführt. Diese ist definiert als der größte Wert von entweder der Kerndistanz des Punktes A, der Kerndistanz des Punktes B, oder der Distanz von Punkt A zu Punkt B. Mit dieser Erreichbarkeitsmetrik wird anschließend ein minimaler Spannbaum gebildet. Mit Hilfe dieses Spannbaums wird nun die namens gebende Hierarchie gebildet." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "def get_hdbscan(data, min_cluster_size=4):\n", "\thdb = hdbscan.HDBSCAN(min_cluster_size=min_cluster_size, gen_min_span_tree=True)\n", "\tvals = data.iloc[ : ,0: ].values\n", "\ty_pred = hdb.fit_predict(StandardScaler().fit_transform(vals))\n", "\tdata[\"cluster\"] = y_pred\n", "\treturn data, hdb" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "hdbsca, clusterer = get_hdbscan(data)\n", "hdbsca = data.merge(hdbsca['cluster'])\n", "clusterer.minimum_spanning_tree_.plot(edge_cmap=\"rainbow\", edge_alpha=0.6, node_size=80, edge_linewidth=2)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Dazu wird immer die längste Kante aus dem Baum entfernt. Anschließend wird die Hierarchie zusammengefasst, indem in Abhängigkeit zur Distanz die einzelnen Punkte aus der Hierarchie herausfallen." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "clusterer.single_linkage_tree_.plot(cmap=\"rainbow\", colorbar=True)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Falls mehr als zu Beginn definierte min_cluster_size Punkte bei einer Distanz herausfallen, bilden diese einen neuen Teilbaum. Anschließend wählt das Verfahren die Cluster aus, die die größte Stabilität aufweisen. Die Stabilität eines Cluster berechnet sich, in dem man die Summe der Kehrwerte der Distanz, ab welcher ein Punkt aus einem Cluster fällt, für aller Punkte eine Clusters berechnet. Das heißt liegen viele Punkte nahe am Clusterzentrum hat der Cluster eine hohe Stabilität. Auf dem Bild erkennbar an einer großen Fläche." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "clusterer.condensed_tree_.plot(cmap=\"rainbow\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "def get_hdbscan(data, min_cluster_size=4):\n", "\thdb = hdbscan.HDBSCAN(min_cluster_size=min_cluster_size, gen_min_span_tree=True)\n", "\tvals = data.iloc[ : ,0: ].values\n", "\ty_pred = hdb.fit_predict(StandardScaler().fit_transform(vals))\n", "\tdata[\"cluster\"] = y_pred\n", "\treturn data, hdb" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Auswertung

\n", "Für unsere Auswertung haben wir uns entschieden, die Metriken Calinski-Harabasz Index, die Silhouettenmethode und für das k-means Clustering speziell das Elbow Kriterium zu verwenden.\n", "\n", "Wenn man sich die einzelnen Metriken für das k-means Clustering anschaut, stellt man fest, dass die optimale Anzahl an Clusterzentren 3 beträgt. Zwar deutet die Silhouettenmethode darauf hin, dass ein vierter Cluster durchaus sinnvoll wäre, allerdings spricht das Elbow Kriterium dagegen, da ein vierter Cluster keinen Knick bildet und somit nur einen sehr bedingten Mehrwert bietet. Nimmt man noch den Calinski-Harabasz Index dazu, erkennt man ebenfalls, dass der vierte Cluster nur einen schwach höheren Score erzielt. Daraus folgern wir, dass drei die optimale Anzahl an Clustern für ein k-means Clustering auf unserem Datensatz ist. Dieses Ergebnis gibt auch Sinn, wenn man bedenkt, dass wir unsere Daten um 3 Punkte generiert haben." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "143.6711770895938 0.6278626278620039 2\n", "448.6215211188015 0.7684044576038629 3\n", "621.9795572480645 0.7831907604828343 4\n", "755.9247250861016 0.8029573126404822 5\n", "1022.8578385140136 0.7991473619223107 6\n", "1282.593918363042 0.828112267028408 7\n", "1432.1821345383657 0.8276379659264187 8\n", "1848.386633225033 0.8178957046940564 9\n", "1944.7027655690565 0.8404757056790462 10\n", "2452.9074579550993 0.8373013743718906 11\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "kmeans = []\n", "elbow = []\n", "calinskis = []\n", "silhouettes = []\n", "number_clusters = []\n", "\n", "for i in range(10):\n", "\ttemp1, temp2 = get_kmeans(data, i+2)\n", "\tkmeans.append(data.merge(temp1['cluster']))\n", "\telbow.append(temp2)\n", "\tprint(metrics.calinski_harabasz_score(data2, data['cluster']), \\\n", " metrics.silhouette_score(data2, data['cluster']), (i+2))\n", "\tcalinskis.append(metrics.calinski_harabasz_score(data2, data['cluster']))\n", "\tsilhouettes.append(metrics.silhouette_score(data2, data['cluster']))\n", "\tnumber_clusters.append(i+2)\n", "plt.plot(elbow,'ro-', label=\"Elbow\")\n", "plt.title(\"KMeans Elbow\")\n", "plt.show()\n", "kmean,temp = get_kmeans(data)\n", "kmean = data.merge(kmean['cluster'])" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(number_clusters, calinskis, 'ro-', label=\"KMeans Ralinski Harabasz Score\")\n", "plt.title(\"KMeans Calinski Harabasz Score\")\n", "plt.xlabel(\"number of clusters\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(number_clusters, silhouettes,'ro-', label=\"KMeans Silhouette Score\")\n", "plt.title(\"KMeans Silhouette Score\")\n", "plt.xlabel(\"number of clusters\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmAAAAIfCAYAAADXH2DEAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nOzde5gcd33v+c93ppF7PLI0F8lEd1uJziEQEghzfGP3BMcQC8HBBwIYEi7yhtUxJ16DD2FxTvKANvtk10kOESbwQPQ4RgYSECFmUUBrhxAue2KLxwNxAIMT+whk3RJJM6PbaNqiZ777R3ePenqq+jJdXVXd9X49Tz8zXV1d/euequrv/Or7+/7M3QUAAID49CXdAAAAgKwhAAMAAIgZARgAAEDMCMAAAABiRgAGAAAQMwIwAACAmPVkALZ161aXxI3bUm+pwv7MLYJbarA/c4vg1hN6MgA7depU0k0AIsP+jF7C/gyU9GQABgAAkGYEYAAAADEjAAMAAIgZARgAAEDMCMAAAABilku6AQA6rFiQzp+U5opSX05avlrK5ZNuFYBqHKeZQwAG9LJiQTrxpPS5t0qnn5GGNkpv/JR05fM4uQNpwXGaSQRgQC87f/LSSV0q/fzcW6Xt+6WhDc1vh//Ogc45f1Ia2SJt//KlYyw/WlreynGKrkIABvSyueKl4Kvi9DOl5c3iv3Ogs/Ij0uRTi4+xkS1JtwwdRBI+0Mv6cqWTebWhjaXlzQrrRTt/Mrp29qBCoaijUxd0aGJaR6cuqFBoIehF27rq8y9MBh9jhclk24WOogcM6GXLV5f+k679z3r56ua3EUUvWsYUCkU9NTGtd3762zoyNaP1wwP62Fteoi2jg8rnOe12Wtd9/hxjmUQPGNDLcvnSpcLt+6U7Hy/9bPXSYRS9aBkzMXNx/stfko5Mzeidn/62JmYuJtyybOi6z59jLJP46wK9LpdvPpE3KNk+il60jCnO+fyXf8WRqRkV5zyhFmVL133+y1dLtx+QChMLk/Bz/Um3DB1EAAagpF6yfaUXjVGQixQKRU3MXFRxzpXrM40OLFOuz7R+eGBBELB+eEC5PkuwpdnRlZ9/UBL+lc9LulXoIC5BAihplGw/tEEaubr0k+BL0qVco1t3H9Av/dHXdevuA3pqYlqjA8v0sbe8ROuHByRpPgdpdGDZoud3TaJ4F2n2808NBrpkEj1gAErqJQKfeJKyEwHCco327rhOW0YHtXfHdQt6xqoTwBsligf1rKUygTyFJmYuavPoZQs+/6GBPk3MXNS6NH6GJOFnEj1gAEpCE4H7+W88RDu5RvUSxWt71irBAz1lzRkaCP5qC1ueOJLwMymleyOA2FWS7StfBJU8lPwo/42HqOQaVVs/PKBVg/2BlyarA6d6wVt1cPbEzpt0cOLZutvCYrWf2cGJZ5NuUrj8SMixN5Jsu9BRiQZgZna/mZ0ws++HPG5m9mEze9rMvmtmvxh3G4HMWFSy4sulStz3rA3+b7xYkE4fliZ/VPpZLETfpjheow1huUanZ+ZCe7cqOV9hwVuuzxYEZ/W2hWBhn9npmbmEWxaiMHlpKqLqY49CrD0t6f7NPZI+IumTIY+/UtKW8u1aSR8r/wTQCbl8qScsaDRkddmJOKYn6oIpkPL5XGCu16yKi/KPXrDzqyrOuX79vm/N92x97C0vWZQDNjqwTBMzF+dH8XVdSYUUKM65Hn7XDTo9M7fgb3BqejbppgULO+YYBdnTEg3A3P2bZnZVnVVukfRJd3dJB8xsyMzWuPvxWBoIZFF1T1hY2YmoJvmuJ47XiEA+n1uQ2F0oFHVw4tlFgdUTO2/S6Zm5+WDqBTu/qid23hSYqD8qzQdnXVlSIWGrBvsD/wabRy9LumnBFkzGPVvKu2Qy7p6X9hywdZIOV90/Ul62iJntMLNxMxs/eZJkYXS3xPfnSvHWsLITcYza6tKRYWHJ9adn5hYlgVd6xTaNDmrd8OXzoxyre9aGBvq6q6RCgLj35667BDlXLF3q/9ALpQ+/qPTznrWp39fRnqQvQUbG3XdL2i1JY2Nj9M2jq8WyPwdVvW/20l5l1FZ1gBT1qK04XqMD6l0yvPneRxYsr9eTVd2ztmU0V7ekRdrFfX7uusu2fTnp7mOLK+GTA9bT0n4EH5VU3f+6vrwMQDuaya8qFqTibPlLYXZhkBY2PVF+pPS8KHK0unQKpKBLhpXLj3/+jmvn85FuvveRpnuyai9zor5cn81/5tU5YKntAVu+unSsBS1Hz0r7Eb1P0h1m9lmVku/PkP8FRKBRflUl+AqbHiWXD85Z+fh10eVoNZOLlkKVkZG1ZSRq85EeftcN6leuq3qyusXQQF935YCFHWsjW9L/LY0lS/RPa2afkfQySavM7IikD0h6jiS5+8cl7Ze0TdLTki5Iui2ZlgI9plF+1fmTkrx+kHbhRClfJWjbUWllIvGUyOdzC6qwh+Uj7d1xnUYHpKNTF7r20mJanZ6ZC6yEf3pmToNpjN8LEyHH2pel/GCybUPHJD0K8s0NHndJvxlTc4DsCM2v6i/1fs0VJXn9IK1Lc7Q6rVAoLrj0FZaPNDTQV3cqIixd1/WAzc2GHGspLZuBSKR9FCSATqhX9f78yVIQ1Wh6lLBt1OatpLyYapSCJucOK7hKgdXO6bpRkExFlEkEYEAWVedw1Va9nyuWgqj8aP0Aa1Hl/P2Li6RWkv33bCtdrtyzrXS/R4OwoBIUYWUkum6kXhfpus+WqYgyifAayKrCpLTnVcGXEHN5SYWaRPtyEnxt6Yp6OVqdKKYaVj6jnbIaEal88VePwAvKR6qtdl9BgdVodF3x2uqpiKoHtRQmyQHrYfSAAVnV6BJiLl86+Q9tLBVkrUyX0kpvVtTFVOv1qKWgp61S/iBoIuihgT49d/Cy+YKrYfNIdlOB1bQK63WsLYSbGvmR0ijIPa8q77+vKt2nB6ynWSnPvbeMjY35+Ph40s1A90rVv8lt7c+NeoVa6TU6fbgU2NT2mNXrzVrKc+qpt71GrxNDD1mhUNTEzEXduvvAot6XvTuukyStG7580foxjIJMzT4dx/n56NSF+VGPtaMgqz//1Ij6OOl9qdmf28ElSKBXNVNstZUyD/V6s8KCm0bFVFu9nFivDfV62mKa2Dufz6k4/Wzd/KNDE9MLgq16BVZjDNB6SnHO9YKdX120/BvvfVn8jWlGl067hfaktD8WQNvC8q/OL3EuvnojtcIu/9VL1F/K5cR6bag3iizqz6KOsFGPuT5Trs/mL0s+NTGtQiH8CzZoRGWj56Ck3t8glRgFmUkEYECvivq/6tDSFSP1g5uwib3rBUVhy+vlrdXLZ4uxhyEst2tooG8+B6mZkhNhk3pTpqKxrswBYxRk5hBeA70q6kKpYVMDnT2+tOAmKCi6/UCpKvjbvnhpQuJ71l7aXr3piepNWxRz0digKuySFlwWq74sGXSpsetKKaTIqenZwL/BqenZ9FbCDxwFOcEoyB6W0n8HALSt2UKp7Vrq5ZPa5919rGok2IsvjQS7+9jC7YX1qIUtl2L7LCqXDW++9xG99A++pl+/71uavPATnZ6Z0833PrJg3colsdpLjUMDffO9XH//vhv1xM6bFj0H9a0a7G9peeLyoyGjIEeTbhk6iFGQwGKp+obr6CjIVrcVlsi+lAT32u29+3vBdcm2f1m6MNl+wnwMoyCnC4VFI+9uvvcRPfyuGwKnxtkyOrhg1GTYxN2bRy/Tzfc+0s5URanZp+M4P08XCqGf42A+hV1gjIJsVWr253ZwCRLoZVFOZl2vqGq9y3/12lb9vHrz4UUxWrHDE3sXCsXAL/2H33WDTk3Pasvo4KJirLWjJutN3F2avJtRkM2o9zmm8hIkoyAziUuQAJpT70ui3uW/eqqfV+9SZswV7ZciLGn+9Myccn1WKjkxfLk2jQ7OF2OVFo7Yq5f3Vf0c1Nd1+XN9/SH7fkovmSISBGBA1jU7WXanh8rHlbPWIfW+9OtVt68eNVmvfMKhiWkdnbpAGYomdF0ZirB5V8kB62kEYECWVdfcuvxKSS6dPRYciHV6qHwzk3unWL0v/Xo9V/l8bv7yZL3yCdQCa17XlaGQLo2CvPPx0s+RLUm3CB1GfzaQZZW8rtsPlEZd1Uukv3AieKj8hRNS/upo2tPhPK1OqvRk1eaANTO3Yz6fk2Yuzifs15ZPqJSvqM5lqldBP+uCJkCvTEWUyhwwKfj4IwjraRzBQC9pdaRfJa+rMBGeYF8JiPpy0sevCx6p1ck2donqnqylTB1UuYRZO4VO7fQ5qc5lSomum4oo9Pj7MnXAehgBGNDNaoOZ/Mil4ezNlIOo5HU1Mwqr0byOzbY3hjkZk9Jobsd6Kpcwayfxrs1bSnUuU0o0+1mmRr0RwOhZKb4gDqCuoDkTJ58qXU6UmpvvsBJUNZNgH0WOVoxzMnabelMY1S4bHVimo1MXSMwPEfZZNnM5OBHMBZlJ/HWBbhVal+vLl9ZpVEuoElQVZ5vr3Wo3RytD9Y6CphdqNhm/+jmSFi17amI6sKgrZSouCZsOKpUqA1xqjz/mguxpHK1AtwoNZqouWzTzX3QuXzoTLKWYaqtinpMxKZXphVoNksIuYVYvOzp1IbTIKIn5JdWzC1SsHx5I72cUxwAXpE4K90QATQkNZvov/d5KjlYcIxCjyCPrAmFFWaMIALquyGgCuu4zimqAC7pKogGYmW2VdK+kfkn3ufs9NY9vl/RHko6WF33E3e+LtZFAWoUFM/nRUo5W0iMMw0Y7xtHTlrB6AUCrlyZrdV2CeQJyfaYndt60aF7O0zNzSTct2PLVpdzNwkTVgJpRKUcl/F6WWABmZv2SPirpFZKOSHrMzPa5+w9qVt3r7nfE3kAg7eoFM0lftoh64u4uExYkrRrsbzt/q516Y1kxNNAXOhl3aoXV4UPPSjIr8RpJT7v7QXe/KOmzkm5JsD1A91nqHIydVm+0YwZGQYaNwgubJHpi5mLT265O1v/Ge1+mvTuuIwG/RtjnnNoesIwcF1goySN2naTDVfePSLo2YL1fNbN/L+mfJd3l7ocD1gGQJvVGO2ZgFGTYiMZ/nX42ktykduqNZUHX5YBl5LjAQikelytJ+mtJV7n7z0v6iqQHwlY0sx1mNm5m4ydP8l8Dulvq9+dGE3jXq2vUSr2jZicKT6F8Pqd1w5dr0+ig1g1frnw+132TREck7v256z5n6oBlUpIB2FFJ1UOu1utSsr0kyd0n3P3Z8t37JL0kbGPuvtvdx9x9bPXq3hpRhexJ9f4cVAD2xJMLg6PKAIHaibvrLV/K63SZrisQGpG49+eu+5xbOS7QM8w9mS5ZM8updFnxJpUCr8ck/Zq7P1G1zhp3P17+/bWS3ufu1zXa9tjYmI+Pj3em4ciCVP2bnJr9ecGoxnKdonvWlh6rDJlfvnrx1EgXTiwcINDsXJCnD1+aVqmi8jpdOmG31HqB1oikZp+Oa39O6HNemtOHS8dKYWJhHbDCZFfv6x2Umv25HYntje5eNLM7JD2sUhmK+939CTP7PUnj7r5P0p1m9hpJRUmTkrYn1V4g08JGNd59rBSEnX6m9AXSzAjHZuuN9WheDPlb8eiqzzk/EjwKcmRL0i1DByWaA+bu+93937j7T7v775eXvb8cfMndf9vdX+Duv+DuN7r7k0m2F8issFFahYnS/aGNpf/WoxzJRV4MsiLs2ClMJtsudFTak/ABpEG9aY8q/61H3WNFXgyyokd7e1Ef/0oCaKzetEfVuV9Rz/MYND8e0GsyMkcqFqIHDEBjob1RV14qABt1j9X5k6X58T70wtIoyA+9sHSf4pToNfmR4GMnP5Jsu9BRhNcAGmtmDseo53nksgyy4sKJ4N7eCyeSn1YMHUMABvSKZss7LFUzoxebHeHYDC7LICsW7NMeshy9hkuQQC/owaKlJOEjM5avLpWh2PMq6cMvLv2cfIp9vccRXgO9IKxMRCtFSzvdg9aqqC9pAmkVxfGLrkMABvSCdvOlwgqt1hZRjVuUlzSBtCLfMZO4BAn0gnaLlob9B86IQ6DzKDqcSQRgQC9oN1+K/8CB5FCGIpMIr4Fe0G6+FCMOgeQUJoPLUBQmpfxg0q1Dh9ADBvSKSr7UyNWXiqM2ixGHQHIWjIJ8EaMgM4J/bwEw4hBIEsdfJhGAAShhxCGQHI6/zGkqADOz57v7D2qWvczdv96RVgHInEKxoKnClIpzReX6chrODytPDwCQShyv7Wu2B+xzZvYpSX8oKV/+OSbp+k41DEB2FIoFHTxzUHd97S4dmz6mtYNrtevGXdq8cjMndSBlOF6j0WwS/rWSNkh6RNJjko5JemmnGgUgW6YKU/Mnc0k6Nn1Md33tLk0VphJuGYBaHK/RaDYA+4mkGUkDKvWA/cjd5zrWKgCZUpwrzp/MK45NH1OROmRA6nC8RqPZAOwxlQKwfyfpf5b0ZjP7y461CkCm5PpyWju4dsGytYNrlaMOGZA6HK/RaDYA+w13f7+7/8Tdj7v7LZL2dbJhALJjOD+sXTfumj+pV3JKhvPDCbcMQC2O12g0Fa66+3jAsk9F3xwAWZTP5bV55Wbt2bqHUVVAynG8RoP+QgCpkM/ltWb5mqSbAaAJHK/tS3QqIjPbamb/ZGZPm9ndAY9fZmZ7y49/y8yuir+VAAAA0UqsB8zM+iV9VNIrJB2R9JiZ7asp+Pobkqbc/WfM7E2S/kDSrfG3FkDLigXp/EmmVgGawfGSOUn2gF0j6Wl3P+juFyV9VtItNevcIumB8u+fl3STmVmMbQSwFMWCdOJJac+28uTC20r3i4WkWwakD8dLJiUZgK2TdLjq/pHyssB13L0o6Yyk0VhaB2Dpzp+UPvdW6fQzpfunnyndP38y2XYBacTxkkmJ5oBFycx2mNm4mY2fPMlOi+7W9fvzXPHSl0nF6WdKy5E5Xb8/dxrHSyYlGYAdVWl6o4r15WWB65hZTtJKSRNBG3P33e4+5u5jq1ev7kBzgfh0/f7cl5OGNi5cNrSxtByZ0/X7c6dxvGRSkgHYY5K2mNnVZrZM0pu0uLjrPklvL//+ekl/5+4eYxsBLMXy1dIbP3XpS2VoY+n+cr58gUU4XjIpsfDa3YtmdoekhyX1S7rf3Z8ws9+TNO7u+yT9maRPmdnTkiZVCtIAJKmZ0Vq5vHTl86Tt+xnVBTTC8ZJJifZvuvt+Sftrlr2/6veCpDfE3S4AISqjtSoJw5X/1K98XnAQNrQheDsALmnluELP6JkkfAAxYLQWED2Oq0wiAAPQPEZrAdHjuMokAjAAzWO0FhA9jqtMIgAD0DxGawHR47jKJMJrAM1jtBYQPY6rTCIAA9AaRjcC0eO4yhwuQQIAAMSMAAwAACBmBGAAAAAxIwADAACIGQEYAABAzAjAAAAAYkYABgAAEDMCMAAAgJgRgAEAAMSMAAwAACBmBGAAAAAxIwADAACIGQEYAABAzAjAAAAAYkYABgAAEDMCMAAAgJgRgAEAAMQskQDMzEbM7Ctm9lT553DIerNm9nj5ti/udgIAAHRCUj1gd0v6qrtvkfTV8v0gM+7+ovLtNfE1DwAAoHOSCsBukfRA+fcHJP3HhNoBAAAQu6QCsOe6+/Hy7/8i6bkh6+XNbNzMDphZ3SDNzHaU1x0/efJkpI0F4sb+jF7C/gwsluvUhs3sbyX9VMBDv1N9x93dzDxkM5vc/aiZbZb0d2b2PXf/H0EruvtuSbslaWxsLGx7SLudKxs8fiaediQsrftzoVjQVGFKxbmicn05DeeHlc/lk24WUi6t+zOWjnNB+zoWgLn7y8MeM7N/NbM17n7czNZIOhGyjaPlnwfN7OuSXiwpMAAD0FmFYkEHzxzUXV+7S8emj2nt4FrtunGXNq/czIkXyBDOBdFI6hLkPklvL//+dklfrF3BzIbN7LLy76skvVTSD2JrIYAFpgpT8ydcSTo2fUx3fe0uTRWmEm4ZgDhxLohGUgHYPZJeYWZPSXp5+b7MbMzM7iuv87OSxs3sHyV9TdI97k4ABiSkOFecP+FWHJs+puJcMaEWAUgC54JodOwSZD3uPiHppoDl45LeUf79EUkvjLlpAELk+nJaO7h2wYl37eBa5foSOY0ASAjngmjwaQFoynB+WLtu3LUo72M4P6zpwrTOFM9odm6WhFygxw3nh/Xgqx+cP+b7+/q1MrdS/bn+pJvWVQjAADQln8tr88rN2rN1z4KRT7PFWR2aPkRCLpAhYcc8mkcAhng1KjOBVMvn8lqzfM38/ePnj8vlgQm5n9j6Ca3MrdTZ4lmGqgM9ZKowpQ2DG/SJrZ+Y7wG7IneFpgpTC84PqI8ADEDTamv/rMit0OTFycCE3JW5lfSMAT1oRW7FomV96gtcjnBJjYIE0GUqtX+2P7Rd276wTdsf2q5D04c0smxEawfXLlh37eBanSmeYag60KMOTR/SbQ/dpm1f2KbbHrpNh6YPJd2krkMABiBQoVjQ8fPHdfjsYR0/fzy09s/Z4lntunHXfBBW6emanZtlqDrQg8L+uTpTzMZMJVHhEiSiR55X1wuqdH3fr9wXGlBtGtw0nw9SuTR5pngmcKh6f1+/CsUClyGBLhX2z9Xs3GxCLepO9IABWCSot6u/rz/wUmN/X7+u23udrshdoXM/OaftD22fvx/UM1ZJ1gXQnSp1wKpRB6x1BGAAFgmqdF0voJKkc8VzC4K2G/beMN8ztv+1+/WJrZ/QhsENumHvDVyGBLrYityKwHMBSfitIVwFsEhQpevXf+n1evDVDy6oA7Yit0Kv+9LrJAVfljhTPKPbHrqNitlADzlTPBNYhuJM8YwGNZh087oGPWAAFqlUva/9D7c/1681y9dow4oNWrN8jfpz/dqzdY/2v3Z/4GWJsF6z4fxw7O8JQDRW5lbq8PThBaMgD08f1soc+b+t4N9QAIuEVb2vTZyvFGYtFAuaLc4umqro8PThprYDoHv05/oXDLxhKqKlIQADEKi66n1tAdbqIKpQLGiyMKnZuVkNX1aaI27y4uSC9aiODQALEYABqCuoJEX1vG9Bj20Y3KDzxfP0dAE9KGz+102Dm4gqWsBHhcWo44UqYQVY92zdI0mh80BSEwjoTWGFWD+x9RMk4beAAAxAXUElKaor2n/+1Z/XueK5BaOhTl88zUhHoEfNzs2GHvdoHmdIAHUFlaSolJJYkVsReimChFygN40sGwm/BImmEYChu7R7eXQnc5W1qlKSovZkuyK3QmeLZ0MvT67Jk3gP9KJ6xz2XIJtHAAagrrCSFJVRkUy4DWQLx300KMQKoKFKKYlKAdZ8Lq/h/HDo/JDkfwG9i7kgo0EABmBJ8rm8RvIjVLoHMiZspgyO+9ZkNlx94QMvbPk533v79zrQkiWqlwtFnhNi0mzFfAC9g+M+GokEYGb2Bkk7Jf2spGvcfTxkva2S7pXUL+k+d78ntkYGCAvaUhWYATGj0j2QPRz37UvqEuT3Jb1O0jfDVjCzfkkflfRKSc+X9GYze348zQMAAOicRHrA3P2HkmRm9Va7RtLT7n6wvO5nJd0i6QcdbyAAAEAHpTkHbJ2kw1X3j0i6NmxlM9shaYckbdy4sbMt63ZMNZR67M/oJezPwGIduwRpZn9rZt8PuN3Siddz993uPubuY6tXr+7ESwCxYX9GL2F/BhbrWA+Yu7+8zU0clbSh6v768rLUSWNyfhrbBAAASszdk3txs69L+q2gUZBmlpP0z5JuUinwekzSr7n7E01s96SkQ+W7qySdiqrNKZel9yp17v2ecvetHdjuktTsz3Hotf2I95OifZr9uSHa21hq9ud2JBKAmdlrJf2JpNWSTkt63N1vNrO1KpWb2FZeb5ukD6lUhuJ+d//9JbzWuLuPRdf69MrSe5Wy937j0mufK+8n27rt86K92ZHUKMgvSPpCwPJjkrZV3d8vaX+MTQMAAOg4piICAACIWRYCsN1JNyBGWXqvUvbeb1x67XPl/WRbt31etDcjEk3CBwAAyKIs9IABAACkCgEYAABAzAjAAAAAYkYABgAAEDMCMAAAgJgRgAEAAMSMAAwAACBmBGAAAAAxIwADAACIGQEYAABAzAjAAAAAYkYABgAAEDMCMAAAgJgRgAEAAMSMAAwAACBmBGAAAAAx68kAbOvWrS6JG7el3lKF/ZlbBLfUYH/mFsGtJ/RkAHbq1KmkmwBEhv0ZvYT9GSjpyQAMAAAgzQjAAAAAYkYABgAAEDMCMAAAgJgRgAEAAMQsl3QD0DsKhaImZi6qOOfK9ZlGB5Ypn2cXAxA/zkdIO/ZGRKJQKOqpiWm989Pf1pGpGa0fHtDH3vISbRkd5KQHIFacj9ANEr0EaWb3m9kJM/t+yONmZh82s6fN7Ltm9otxtxHNmZi5OH+yk6QjUzN656e/rYmZiwm3DEDWcD5CN0g6B2yPpK11Hn+lpC3l2w5JH4uhTViC4pzPn+wqjkzNqDjXM0WLAXQJzkfoBon2xbr7N83sqjqr3CLpk+7ukg6Y2ZCZrXH347E0EE3L9ZnWDw8sOOmtHx5Qrs869prkeAAIkuszPbHzJp2emZs/PwwN9On0zFzSTQPmpf3bap2kw1X3j5SXLQrAzGyHSr1k2rhxYyyNwyWjA8v0sbe8ZFHOxejAMh2duhAaJC01iOr1HA/2Z/SSuPfn0YFloecHIC2s1LmUYANKPWBfcvefC3jsS5Lucff/Xr7/VUnvc/fxetscGxvz8fG6q6ADgoKpekFSO0HU0akLunX3gUU9bnt3XKd1w5e3+1Y61223BOzPiEBq9uk49ucOnx+QvNTsz+1IOgeskaOSNlTdX19ehhTK53NaN3y5No0Oat3w5Q0TYdtJlCXHA0AYzg/oBmkPwPZJelt5NOR1ks6Q/9U9Gp0E2zlJVnLOqnU65wxAd+D8gG6QaLKMmX1G0sskrTKzI5I+IOk5kuTuH5e0X9I2SU9LuiDptmRaiqUISsyvJMYempieT5R9wc6vzj/e7ElyaKAvMOdsaCDt/1MA6LShgT49/K4bFiXhA2mS9CjINzd43CX9ZkzNQcRGB5YtOAmuGuzXwYlnFwVNlSCsOnG/kZZHA0UAACAASURBVFPTs9o8epn27rhuwQn21PSsBvMxvDkAqRZ0rtk8elnSzQLmdf9wMaRa9Unw7993Y2DO194d1+kb731ZS6Mgc32mm+99JDDJFkC2nZ6ZCz3X8A8a0oI+WXRMbZJ9vZyvSuJ+syUkKmUvKnkerfSeAehtJOGjG9ADho6pPQlGWaw1n89py+jggkuQFGIFICVTGBpoFd9W6Jjak2ArifPNFGjN53NaV64nNjFzUf86/axyMxcJxICMIwkf3YBvKXRMbXX8ZhPnWynQ2usV8QEsDUn4SDu+odAxQZcJm0mcDyvQunfHdVpXE1S1si6AbCAJH92APll0VHV1/GYT51tJoCXZFkAtzgvoBnQRYMlanUi72cT5Rgm0ta9Lsi2AapwX0A3oAcOSVHKvbt19QL/0R1/XrbsP6KmJaRUKxbrPq50vMihgq9dTVvu6lcR+ylEAqKBMDbqBlYrN95axsTEfHx9Puhk97ejUBd26+0BgPte64cub2ka9HrSwx4JetzK9UYTlKFL1bzL7MyKQmn06jv356NQFDQ30LRoFeXpmrunzE1ItNftzO7gEiSVpN8ei0ejFsBITQwN9i173BTu/qm+892XaNDoY2fsD0L3CzkPkgCFNuASJJankWFRrJccibPTixMzF+XWCLnMenHhWT+y8acmvC6D3VeadrT13rBrsT7ppwDwCMCxJWI7F0ECfjk5daJgLVtuD9sTOm+aT8yvPDwvSTs/Maf3wgJ7YeZP+/n036s/fca0kzb9moVDU0akLOjQx3VRbAPSWsDIUp2fmEm4ZcAmXILEkQSMahwb69IKdX22qGGr1KKUndt4UWDRxRT4Xepnz4XfdEPicLaODFGYFMo4yFOgG9IBhySojGnN9plt3H9ALdn5VUvDlxFrVPWinZ+bmK+R/470v094d12nz6GV1L3Oemp7VyOXP0cPvumHRaza6tAmgt7WbIgHEgQAMbWv1v83K5cVK0DU00BeYrxFWYmJooC8wJ6zymvznC2RbvXMHkBZck0Hbmi16WFtaQpJu3X1Ae3dcFzptSNDckbU9bZWpjCqvSQFGINuqe9Vry1AwFRHSgn8H0LZmih6GjWh8+F031O21esHOr+qlf/A1SZq/H7Re9WtSgBHItnq96kBaJNoDZmZbJd0rqV/Sfe5+T83j2yX9kaSj5UUfcff7Ym0kGmpmiqF6k2Y36rWq/T1ovb07rpt/zWamOwLQu+gBQzdI7FvJzPolfVTSKyQdkfSYme1z9x/UrLrX3e+IvYFoSaVwaph6vVyrBvv1sbe8ZNHIxaGBvkW5G0HrVXq3JmYuqjj9LEEXkHGVHrDac8Xm0cuSbhowL8lvqGskPe3uByXJzD4r6RZJtQEYekC9Xq6DE88GlrQ4NT27oGdLkraM5hb1bkmi9ASAefSAoRskeUF8naTDVfePlJfV+lUz+66Zfd7MNsTTNEStXuHWSqBUPUn3YD4fOGF30GTelJ4AUI0cMHSDtHcP/LWkz7j7s2b2nyQ9IOmXg1Y0sx2SdkjSxo0b42shmtLJ3KxeLD3B/oxeEvf+fGp6NrAH7NT0LD1gSI0kA7Cjkqp7tNbrUrK9JMndJ6ru3ifpD8M25u67Je2WpLGxse795u1hjfLElqoXS0+wP6OXxL0/5/pMN9/7yKJzQqVkDZAGSfbHPiZpi5ldbWbLJL1J0r7qFcxsTdXd10j6YYztQ5eg9ASAapwT0A0S6wFz96KZ3SHpYZXKUNzv7k+Y2e9JGnf3fZLuNLPXSCpKmpS0Pan2Ir0oPQGgGucEdINE90Z33y9pf82y91f9/tuSfjvudqH7dOryJoDuxDkBaceQEAAAgJgRgAEAAMSMAAwAACBmBGAAAAAxIwADAACIGQEYAABAzAjAAAAAYkYABgAAEDMCMAAAgJgRgAEAAMSMAAwAACBmBGAAAAAxIwADAACIGQEYAABAzAjAAAAAYpZLugHIuGJBOn9SmitKfTlp+Wopl0+6VQAQL86FmUMAhuQUC9KJJ6XPvVU6/Yw0tFF646ekK5/HiQdAdnAuzCQuQSI5509eOuFIpZ+fe2tpOQBkBefCTCIAQ3LmipdOOBWnnyktB4Cs4FyYSYkGYGa21cz+ycyeNrO7Ax6/zMz2lh//lpldFX8r0TF9uVJXe7WhjaXlAJAVnAs7ysx2mtlvLeF5Q2b2nzvRJinBAMzM+iV9VNIrJT1f0pvN7Pk1q/2GpCl3/xlJuyT9QbytREctX13Kc6iceCp5D8tXJ9suAIgT58K0GpLUUgBmJU3FVkmG19dIetrdD0qSmX1W0i2SflC1zi2SdpZ//7ykj5iZubvH2VB0SC5fSjLdvp+RPwCyi3NhpMzsbZJ+S5JL+q6k/1H12Ncl/Za7j5vZKknj7n6Vmb1A0ickLVOpc+pXJf2fkn7azB6X9BV3f6+ZvVfSGyVdJukL7v6B8tW5hyV9S9JLJG2TdKhRO5MMwNZJOlx1/4ika8PWcfeimZ2RNCrpVO3GzGyHpB2StHHjxtqHkVa5vDS0IelWpA77M3oJ+3MTOBdGohxI/a6kG9z9lJmNSLqziafeLuled/9zM1smqV/S3ZJ+zt1fVN72r0jaolIHkknaZ2b/XtIz5eVvd/cDzba1Z5Lw3X23u4+5+9jq1XTboruxP6OXsD8jRr8s6S/d/ZQkuftkk897VNJ/NbP3Sdrk7jMB6/xK+fYPkr4j6XkqBV6SdKiV4EtKtgfsqKTqcH99eVnQOkfMLCdppaSJeJqHWFGEEECWcQ6MS1GXOp/mP2B3/wsz+5akV0nab2b/SdLBmueapP/b3f90wcLSJcjpVhuSZA/YY5K2mNnV5e6+N0naV7POPklvL//+ekl/R/5XD6oUIdyzTfrwi0o/TzxZWg4AvY5zYJT+TtIbzGxUksqXIKv9WKU8LakUV6i83mZJB939w5K+KOnnJZ2TdEXVcx+W9L+Y2fLyc9aZ2ZVLbWhiAZi7FyXdodIb+qGkz7n7E2b2e2b2mvJqfyZp1MyelvRfVLoei15DEUIAWcY5MDLu/oSk35f0DTP7R0l/XLPKf5P0TjP7B0mrqpa/UdL3ywn3Pyfpk+4+Ienvzez7ZvZH7v43kv5C0qNm9j2VBgdeoSVKtMiIu++XtL9m2furfi9IekPc7ULMKEIIIMs4B0bK3R+Q9EDIY0+q1LtV8bvl5fdIuidg/V+ruX+vpHsDNv1zrbazZ5Lw0cUoQgggyzgHZlLDAMzM/jczG46jMcgoihACyDLOgZnUTHj9XEmPmdl3JN0v6WES4REpihACyDLOgZnUsAfM3X9XpToXfyZpu6SnzOz/MrOf7nDbkBWMAAKQZZwDM6mpHLByj9e/lG9FScOSPm9mf9jBtiErGAEEIMs4B2ZSw0uQZvYuSW9Tafqf+yS9191/Up5s8ilJ/3tnm4iexwggAFnGOTCTmukBG5H0One/2d3/0t1/IknuPifp1R1tHbKBEUAAsoxzYFczs61m9k9m9rSZNV2vtOFf190/UOexHzb7QugyYdNidGK6jMoIoEoXfKMRQEzZAaCXLF8t3X5AKkxcOq/lR6Vcf9ItQwNm1i/po5JeIemISoMW97n7Dxo9l/Aai1USQmsDoiufF768nQColRFA9dpGEAagW00+FXxeQ6SeLc5ef+rcxQ8W5+bW5Pr6jq+6Ytl7Lsv1P9rGJq+R9LS7H5QkM/uspFskNQzAKMSKxeolhHYqUTSXl4Y2SCNXl36GBVMkqwLoNZzXYvFscfb6f/7X8/tu3f3o9b/0R1+/6tbdj17/z/96ft+zxdnr29jsOkmHq+4fKS9riAAMi9VLCI0yUbRYkE4fliZ/VPrZzJBrklUB9BrOa7E4de7iB9/56W+vOjI1I0k6MjWjd37626tOnbv4wSTawyVILFZJCK0+IVQSQsOWt2I+h+snpedefqX08euau5QYVRsAIC36ctLdxxbngBUmk25ZTynOza2pBF8VR6ZmVJybW9PGZo9K2lB1f315WUP0gGVEoVjQ8fPHdfjsYR0/f1yFer1N9abFaHe6jAUFB18s7XlVKffh9gPNdbkzZQeAXpMfKZ0H97xq4XkxP5J0y0K19J2SErm+vuPrhwcWLFs/PKBcX9/xNjb7mKQtZna1mS2T9CZJ+5pqTxsvii5RKBZ08MxB3fW1u3Rs+pjWDq7Vrht3afPKzcoH9TbVS4pvd7qMsFyH7V9ursudKTsA9JrCRPh5MT+YbNsCtPydkhKrrlj2no+95SX7Kpch1w8P6GNvecmpVVcse89St+nuRTO7Q9LDkvol3e/uTzTzXAKwDJgqTM0fKJJ0bPqY7vraXdqzdY/WLA/pea0kxTe7vFmhuQ6zzV9KbLcNAJAmc7Ph58UUWtJ3Sgpclut/9N88d/lr9u64PspRkHL3/ZL2t/o8ArAMKM4V5w+UimPTx1RMIsEzNIerv3QZkro3ALKmy3JbU/Wd0qLLcv2PrhseuCHpdkjkgGVCri+ntYNrFyxbO7hWuSQO7rAcrvxoKecBALKmy3JbU/Wd0sX4tDJgOD+sXTfuWnS9fjg/HH9jFuVw9ZeCr3vWlk462/dzeRFAtpw/KY1sKeV8zc1eOi+eP5nK82GqvlO6WCIBmJmNSNor6SpJP5b0RnefClhvVtL3ynefcffXxNXGXpLP5bV55Wbt2bpHxbmicn05DeeHO5cs2WiqoFy+9NiHX7TwedS9AZBFc8XSP6G17nw8/rY0IfbvlB6VVA/Y3ZK+6u73lCeuvFvS+wLWm3H3FwUsR4vyuXz0yZFBgZbU3FRBXZbzAAAd04V1wDrynZIxSeWA3SLpgfLvD0j6jwm1A0u1oJ7Xi0o/TzwpFWebm1Kjy3IeAKBjurAOGNqXVAD2XHevFD77F0nPDVkvb2bjZnbAzAjS0iSsnldhorkpNapzwe58vPSTCbUBZFFYHbDCRLLtQlPM7H4zO2Fm32/leR273mNmfyvppwIe+p3qO+7uZuYhm9nk7kfNbLOkvzOz77n7/wh5vR2SdkjSxo0b22g5mtKonlczlxap5xWK/Rm9hP25gS6rA4ZF9kj6iKRPtvKkjvWAufvL3f3nAm5flPSvZrZGkso/T4Rs42j550FJX5f04jqvt9vdx9x9bPXqaC5jdeNUC7Gp5HBVqwRa7VxaXMoE3T2oE/szkBT25wbqnU9Tqmu/H4vPXq/Thx/R5I9+pNOHH1Hx2evb3aS7f1NSywl7SV2C3Cfp7eXf3y7pi7UrmNmwmV1W/n2VpJdK+kFcDaxMtbD9oe0aWjYkl+vkhZPdtaN1Ur0crqVeWgzNK+PzBtDDuiwntlAsaLY4K1fp4pXLNVucTf93Y/HZ63Xih/u0Z9v1+vCLrtKebaX7EQRhS5FUeH2PpM+Z2W9IOiTpjZJkZmOSbnf3d0j6WUl/amZzKgWK97h7bAFYZaqFz7/68zo8fTjdc141KvvQCY3mZFzKpcXQeSKpDQagh3VZHbDZ4qwOTR9a9L24aXBTuquLnj/xQX3uratqvmNWafv+D2poQ+zV8RPpAXP3CXe/yd23lC9VTpaXj5eDL7n7I+7+Qnf/hfLPP4uzjZWpFs4VzwXOeTVVWFS2LBlJ9Rp14nVD88qoDQaghy0YBfmi1I+CPFM8E/i9eKZ4JuGWNTBXXBPyHZNIPQ2mIgpRmWphdm423XNehfUa1ZZ96IbX7cI8CABoW2EyZBRkOuuAhX0vzqZ90EBf7njId8zx4Cd0uDlJvGjaFYoFrcit0K4bd6m/rz/dc17F1WtUmxyfH4n+dbssDwIAItFlvf9dOxfk8ivfozd+6lTNd8wpLb/yPe1s1sw+I+lRSf/WzI6U06saIgCrUUm+f92XXqcNgxu0MrdSu27cNb+zVa51r8itSLilZXH0GgVdbpx8qlS5OcrXpTYYgCzqst7/SgdFar8Xw+Que1RX/uxrtH3/o7rz8R9r+/7S/dxlj7azWXd/s7uvcffnuPv6ZlOmzD2sBFf3Ghsb8/Hx8SU99/j549r+0PYF3auP3PqIzhXPaXZuVv19/VqZW6kzxTMayY8kn4hfCY4aTf3TjtOHS0FXbW2v7V8u5Sp06nWTY0k3oFo7+zNQlpp9mv05QGG69E9t7Xl8ZIuUH0y6dYscO39s/nuw9ntx7fKAOS2jl5r9uR3pDK87qFAsaKowtWAC0er7K3IrFl3bvmHvDTpw64HAUR+Jj4ZsNBoxCvWKrrbzukmM3gSAtLlwIngU5IUTUv7qpFu3yMrcypaWI1imArDK5cXaIGrD4AbdsPeG+fuP3PqIbth7aUTq2sG1oaM+9mzdk/yEpJ2uKF9v4uylvm4rPXcEagB6WV9O+vh1AVcZ9ifXpgZCy1CgaZnKAavU9qoNos4Vzy26X3ttO/WjITupE8nxzY6iDMo/K85SLR9A78iPSLcfkN79PenOfyj9vP0AZSh6XKZ6wCq1varVDp2t3N+zdY+Kc0X19/XritwV80FZ9fO7YtRHFDpxmbPZUT+1gdrtB4JzJXoj9wxAVoXlgKVQ15ahSJlM9YCFDZ3t7+tfcL8SVL3jb96hm//qZt2w94b0j4bstMplzhXly61nj7fX+9TsqJ/aQK0wkUzdMwDolLDzWmEi2XaF6NoyFCmTqU9rOD+sXTfuWnTd+orcFZIuBVXD+WGdvHBSx6aPzY+AnLw4qeHLhvXgqx/U5MXJ+Z4xqTRysjqpv6NJ+UnmQ0U54rJyWbOyrbuPlU42c8VSYFd5X7X5Z11WLwcAGpqbDR/olEIrciv04KsfXDQKMovMbIOkT0p6riSXtNvd723muZkKwPK5vDav3KxPbP3EoqGz+1+7f0EAlevL6ZFbHwmcB3LD4Aa9/kuv14OvfjDekZFxlJyoZ6lzNVYHjZdfWaruPFeULh8tXVKUwi8r1gZq9QYEAEA36sLzGkn484qS3uPu3zGzKyR928y+0szc1Zm6BCmVgrCR/Ihyfbn569UWUFJkOD8cOg/kueI57dm6R2eLZ+OdJzKpaYek8qVGl972xVKCaKUIa6Pep+ok+suvLM93VlPQNWwajvMnFxdnzY9SLR9Ab8mPBJ/XUpqEH/bdd7Z4NuGWNXZx9uL1x88ff+TwucM/On7++CMXZy9e38723P24u3+n/Ps5ST+UtK6Z56Y3vO6gfC6vNcvXhJalqPRg1Us03LBigw6fPRzvyMikLr+F9bzdfaw0dLref2nVQWNYnsPb9tV/X7VlNloZEEAJCwBp12V1wMIGtKW9KsDF2YvXP3366X13fe2uVeXv/Kt23bhr388M/cxrlvUva6saviSZ2VWSXizpW82sn7kesGphZSkqPViNEg1jT0RMarqKsJ63wkTj3qfqoDEsgOzrb+19VQKykatLP+sFX7UlLE48SdkKAOnS11/6Z/ZDLyydqz70wvI/t/2Nn5uAbk3Cn5iZ+GAl+JLmv/NXTcxMfLDdbZvZckl/Jend7t5UV2CmA7BGUXwlab925ONwfripxyOX1GTV9SrhN8o/qw4awwLIepcVaycBbyV4SvKSLQA0Kz8aUgdsNOmWBerWuSCLXlwT+J3vxbaqqZvZc1QKvv7c3R9s9nnpDlc7rBLF16vttWlw03zSfu0ox0pSf6VmWMdHQcYx7VCQegmijV67Oom+EmjVXsrM9Qe/L6m9QQeMmATQLbqoDtjZ4tkF342VAW1ni2c1qPTNXVmRs9zxtYNrr1r0nW+540vdppmZpD+T9EN3/+NWnpvpHrB6PViV/LDXfel1uvmvbtY7/uYdmnp2cXJ9JZ9sw4oNWrN8TefnhWz28luU2ul5qw4a5/Mcygn12/dfCqaC3lczPVj1esiSumQLAK0IG4hUmEy2XSGG88M6NH1Itz10m7Z9YZtue+g2HZo+1LmrPxEZHRh9z64bd52q+c4/NTow+p42NvtSSW+V9Mtm9nj5tq2ZJ5q7t/G66TQ2Nubj4+NNrRs0OXc+l9fx88e1/aHti3rHUjH3YxKSSGaf/FEpH6LWnY+XArVGZTmWXrZj8bDYBLWyPwMhUrNPsz8HaHSuS5kUfD8ueX++OHvx+omZiQ8WvbgmZ7njowOj74kiAX8pMt8VUOnBqtWtozw6ptMTfgepJOcvuvRZTkyt7iGrLuR6/uSlADGJS7a9ZmedAos7mfsNaFujc13KdPP347L+ZY+uWb7mhqTbISV0CdLM3mBmT5jZnJmN1Vlvq5n9k5k9bWZ3x9nGbh3lsSTtJLp3crthyfmVxNRKjtfdx8r1xV4lffjFC0c7JnHJFgBa0ehclzKZ+n7soKRywL4v6XWSvhm2gpn1S/qopFdKer6kN5vZ8+NpXgIjHJPSqVINUWw313+pNs6dj5d+jmwpLZcu5XgxPySAblaYDD7XpTgHLBPfjx2WSLjq7j+UpNLggVDXSHra3Q+W1/2spFskNSzvH4XYRzgmZanTC8Wx3VxeUkGXLvdbKfiq/A0qgwMY7Qigm80VpXvWLl5+5+Pxt6UJmfl+7LA09xeuk3S46v4RSdeGrWxmOyTtkKSNGzeGrdaSsPywntKp4KXediuXBuupTfpfsWbxcyo5XudPdt08ao10Yn8GksL+3ECX5YBJGfl+7LCOXYI0s781s+8H3G7pxOu5+253H3P3sdWrmRewaZ0q1RC63f7GlwZrL1/mR6TzJ4JzyXL55ArUdhD7M3oJ+3MDXZYDhmh0rIvA3V/e5iaOSqq+VrW+vAxRqi6UWl2qod3gJWy7lfnN6qkd3RhUoLC6lASjHQF0u6C5INHT0nyN5jFJW8zsapUCrzdJ+rVkm9SDOhW85PLBJ5SPX1d6rXqqL1+GJdjX5pIlUSYDAKJQmCiN4q69BLn9y1I+vZXl0Z5EAjAze62kP5G0WtKXzexxd7/ZzNZKus/dt7l70czukPSwpH5J97v7E0m0t+d1KnjJ9UsXJlvvXaue+ogEewC9bm42fL5d9KykRkF+QdIXApYfk7St6v5+SQ26S5BaS+1dq758WW8eSgDoBZznMinTc0EiBksphFoduIUlp3Zxgj0ALNCDA4nQGOE10qn6smgUOWpJzGXZLepNNQSg8xhIlEkEYEi/dnPUlj4pNwB0HueoTOISJJLVqXkoq4VV5WeqIgBpwDkqk+gBQ3Li+q+PkZQA0oxzVCbRA4bkxPVfX6eq/QNAFDhHZRIBGJIT1399jDACkGb5kZCpiEaSbRc6ivAa0Wt2xGFctW8YYQQgzQqTwTOHFCaphN/DCMBwSRSlGlrJ6+rUPJRBmKoIQFotXy0VK1XvfeFy9CwCMJRElRAfltdVO3ejRM9UlBrV8tp5JpnXrfvcBm2qt+1OvZ+IXHX3l+d///E9r0qwJegKxVlp8qnF59+RLXxL9zBywFASVUJ8q3ldS6mUDwC9pDARfP4tTCTbLnQUsTVKokqIv/xK6d3fu9SjlR+VPn4do3kAIAyTcWcS34ooiSIhvlgI7ka//YCU64++zehuTIEElDAZdyZxCRIlUZRqCLuMWZjk0iIAhKEMRSYRXqMkioR4qjln1guvvlRE8ns/eqbOmtlTnZBfjeR8zLtwIrgMxYUTUv7qpFuHDiEAwyXtlmqgGx0AWteXK+XK1p47t+9Prk3oOL4ZEZ0463qhNb2Wb5VU2Y0OCytfQVmLHse5M5MIwBAd6noBQOs4d2ZSIgGYmb1B0k5JPyvpGncfD1nvx5LOSZqVVHT3sbjaiCWi4jwAtI5zZ+Yk1QP2fUmvk/SnTax7o7uf6nB7ADSBZPvohSXpA+htiQRg7v5DSTKzJF4eQK/r4mmMAGRD2nPAXNLfmJlL+lN33x22opntkLRDkjZu3Bi2GtAVunl/rvSSZa2HLOqerLDtdWNCfjfvz0CndCwAM7O/lfRTAQ/9jrt/scnN/E/uftTMrpT0FTN70t2/GbRiOTjbLUljY2MetA7QLdK0P1dfdmxmeaPHwwKzrAZuWZCm/RlIi44FYO7+8gi2cbT884SZfUHSNZICAzAAAIBuYe7J/TNiZl+X9FtBoyDNbFBSn7ufK//+FUm/5+4PNbHdk5IOle+ukpSVJP4svVepc+/3lLtv7cB2l6Rmf45Dr+1HvJ8U7dPszw3R3sZSsz+3I5EAzMxeK+lPJK2WdFrS4+5+s5mtlXSfu28zs82SvlB+Sk7SX7j77y/htcazUr4iS+9Vyt77jUuvfa68n2zrts+L9mZHUqMgv6BLwVX18mOStpV/PyjpF2JuGgAAQMf1Jd0AAACArMlCABZauqIHZem9Stl7v3Hptc+V95Nt3fZ50d6MSDQJHwAAIIuy0AMGAACQKgRgAAAAMSMAAwAAiBkBGAAAQMwIwAAAAGJGAAYAABAzAjAAAICYEYABAADEjAAMAAAgZgRgAAAAMSMAAwAAiBkBGAAAQMwIwAAAAGJGAAYAABAzAjAAAICY9WQAtnXrVpfEjdtSb6nC/swtgltqsD9zi+DWE3oyADt16lTSTQAiw/6MXsL+DJT0ZAAGAACQZgRgAAAAMSMAAwAAiBkBGAAAQMwIwAAAAGKWS+qFzWyDpE9Keq5Kw0p3u/u9NeuYpHslbZN0QdJ2d/9OO69bKBY0VZhSca6o/r5+rcyt1NniWRXnisr15TScH5YkTRWmtCK3QpLmH6+sX1lWvW718/O5fDtN7Ijq953mdiI9aveZ2uOhsh/NFmcDj5EzxTMLjq/KY/25/sB9j30UkLRzZcCyM/G3Ax2XWAAmqSjpPe7+HTO7QtK3zewr7v6DqnVeKWlL+XatpI+Vfy5JoVjQwTMHddfX7tKx6WNaO7hWu27cpQ2DG3TD3hvm728a3DT/ZXNo+tCi9TcNbtLy3HIdPHNQmwY3aftD2xc8vnnl5lR9cYS977S1E+kRtM88+OoHQ4+H2mNg0+AmrcytDF2/oMKCfY99FEDWJHYJ0t2PV3qz3P2cpB9KWlez2i2SPuklByQNEOk09QAAFXxJREFUmdmapb7mVGFq/gQvScemj+mur92lc8VzC+6fKZ6ZvwWtf6Z4RueK5+Z/r318qjC11CZ2RNj7Tls7kR5B+0y94yFoWb31a/c99lEAWZOKHDAzu0rSiyV9q+ahdZIOV90/osVBWmUbO8xs3MzGT548Gfg6xbni/Am+4tj0Mc3OzS66X7mFrV95rPq5lceLc8XQ95qEsPedtnbikmb2504K2mfqHQ9By+qtX7vvsY/2tqT3ZyCNEg/AzGy5pL+S9G53P7vU7bj7bncfc/ex1atXB66T68tp7eDaBcvWDq5Vf1//ovuVW9j6lceqn1t5PNeX5JXdxcLed9raiUua2Z87KWifqXc8BC2rt37tvsc+2tuS3p+BNEo0ADOz56gUfP25uz8YsMpRSRuq7q8vL1uS4fywdt24a/5EX8kzuSJ3xYL7K3Mr529B66/MrdQVuSvmf699vJKcnxZh7ztt7UR6BO0z9Y6HoGX11q/d99hHAWSNuSczr2V5hOMDkibd/d0h67xK0h0qjYK8VtKH3f2aRtseGxvz8fHxwMcYBZnudqaEJd2AavX2505iFGRPSc0+ndT+3DUYBdmM1OzP7Uiyf/+lkt4q6Xtm9nh52X+VtFGS3P3jkvarFHw9rVIZitvafdF8Lq81yxfm8Q9qcNF61esEPV69rHZ7aRT0voF6wvaZRcdDrv4xEvRYK68HAL0osQDM3f+7GkSxXuqe+814WgQAABCPxJPwAQAAsoYADAAAIGYEYAAAADEjAAMAAIgZARgAAEDMCMAAAABiRgAGAAAQMwIwAACAmBGAAQAAxIwADAAAIGYEYAAAADEjAAMAAIgZARgAAEDMCMAAAABiRgAGAAAQMwIwAACAmBGAAQAAxIwADAAAIGYEYAAAADEjAAMAAIgZARgAAEDMCMAAAABiRgAGAAAQMwIwAACAmCUagJnZ/WZ2wsy+H/L4y8zsjJk9Xr69P+42AgAARC2X8OvvkfQRSZ+ss87/5+6vjqc5AAAAnZdoD5i7f1PSZJJtAAAAiFs35IBdb2b/aGb/r5m9IGwlM9thZuNmNn7y5Mk42wdEjv0ZvYT9GVgs7QHYdyRtcvdfkPQnkv6fsBXdfbe7j7n72OrVq2NrINAJ7M/oJezPwGKpDsDc/ay7ny//vl/Sc8xsVcLNAgAAaEuqAzAz+ykzs/Lv16jU3olkWwUAANCeREdBmtlnJL1M0iozOyLpA5KeI0nu/nFJr5f0TjMrSpqR9CZ394SaCwAAEIlEAzB3f3ODxz+iUpkKAACAnpHqS5AAAAC9iAAMAAAgZgRgAAAAMSMAAwAAiBkBGAAAQMwIwAAAAGJGAAYAABAzAjAAAICYEYABAADEjAAMAAAgZgRgAAAAMSMAAwAAiFnbAZiVbIiiMQAAAFnQdgDm7i5pfwRtAQAAyISoLkF+x8z+XUTbAgAA6Gm5iLZzraRfN7NDkqYlmUqdYz8f0fYBAAB6RlQB2M0RbQcAAKDnRXIJ0t0PSdog6ZfLv1+IatsAAAC9JpIgycw+IOl9kn67vOg5kj4dxbYBAAB6TVS9VK+V9BqV8r/k7sckXRHRtgEAAHpKVAHYxXI5CpckMxuMaLsAAAA9J6oA7HNm9qeShszsf5X0t5Lui2jbAAAAPSWSUZDu/t/M7BWSzkr6t5Le7+5fiWLbAAAAvSaSAMzM/sDd3yfpKwHLAAAAUCWqOmCvUGkUZLVXBixbwMzul/RqSSfc/ecCHjdJ90raplJpi+3u/p1IWtytigXp/Elprij15aTlq0vLa5fl8q1vMz8iFSYvbSc/Il04cWmb1a+RHyk9t3r92rZcfmXV4/1SfvTSaxYmpLnZ8G1V2rKgTeVt5PoXv0Zt2yufQe3nVVmv1c8orarfX9DnneuXirMLP+/Az6bq71P7twm7v+D1Av6OQY9XPvvav0m9/azePlbvb137N270OADEqK0AzMzeKek/S9psZt+teugKSX/fxCb2SPqIpE+GPP5KSVvKt2slfaz8M5uKBenEk9Ln3iqdfkYa2ijdfkCafGrhsjd+Srryec19uVS2ObIleDsjW0rrNfu6I1ukPdvqP167vJV1K8srX/aTT4Wvd+XzFre78vwTTzb/GaVV9f7Q6mcY9NnUbuPuY/X3iaX+/cP+JlL4Y/esXfwazfytK3/joGOnleMEACLWbhL+X0j6D5L2lX9Wbi9x97c0erK7f1PSZJ1VbpH0SS85oFKS/5o229y9zp+89AUilX4WJhYv+9xbS+u2ss2w7RQmgh+rt36jx1vZVr02VR6v9xnU226zn1FaVb+/Vj/DZvalVveJpf79m9lm0Gs0ej/Vf+NGjwNAzNoKwNz9jLv/WNLvSvqXchX8qyW9xcyGImjfOkmHq+4fKS9bxMx2mNm4mY2fPNmjJ9W54qUvkHrLTj9TWt7KNkO3M9vi6842fryVbYW2abaJtjfYbrOfUQKa2p+r31/Ln2ETf9NW94ml/v2b3WbQ/Xrvp/pv3O5xgrZk4vwMtCiqMhR/JWnWzH5G0m6VpiX6i4i23RR33+3uY+4+tnr16jhfOj59udKlk0bLhjaWlreyzdDt9Lf4uv2NH29lW6Ft6m+i7Q222+xnlICm9ufq99fyZ9jE37TVfWKpf/9mtxl0v977qf4bt3ucoC2ZOD8DLYoqAJtz96Kk10n6E3d/r6QoLhUeVSmYq1hfXpZNy1eX8lYqXyRDG0uJ07XL3vipS8nKzW4zbDv50eDH6q3f6PFWtlWvTZXH630G9bbb7GeUVtXvr9XPsJl9qdV9Yql//2a2GfQajd5P9d+40eMAEDMrFbBvcyNm35L0IUm/I+k/uPuPzOz7QSMbA557laQvhYyCfJWkO1QaBXmtpA+7+zWNtjk2Nubj4+OtvYluwSjIOEZBWit/kk6ruz8zCpJRkM1JzT7d0+fnKOxcGbDsTPztSLfU7M/tiKr//TZJt0v6/XLwdbWkTzV6kpl9RtLLJK0ysyOSPqDSRN5y949L2q9S8PW0SmUobouovd0rl5eGNixeHrRsKdvM18wilb+6/mvUrl+7XtDjYcsXvfZga68RtF7Q5xXWpm5U+/4CP4Ow5SH7UtjfIeh+o79j2HMX/U3q7GeN/v4VYe+n2ccBIEZRVcL/gaQ7q+7/SNIfNPG8Nzd43CX9ZtsNBAAASJGoKuH/SOWJuKu5++Yotg8AANBLoroEOVb1e17SGySNRLRtAACAnhLJKEh3n6i6HXX3D0l6VRTbBgAA6DVRXYL8xaq7fSr1iFFgBwAAIEBUQdIHq34vSvqxpDdGtG0AAICeEtUoyBuj2A4AAEAWtBWAmdl/qfe4u/9xO9sHAADoRe32gF1R57H2S+wDAAD0oLYCMHf/PyTJzB6Q9C53P12+P6yFeWEAAAAoi2oy7p+vBF+S5O5Tkl4c0bYBAAB6SlSjIPvMbLgceMnMRiLcNgAAS3LV3V9etOzH91CmEsmLsgzFo2b2l+X7b5D0+xFtGwAAoKdEVYbik2Y2LumXy4teV56gGwAAADUiu0xYDrgIugAAABqIKgkfAAAATSIAAwAAiBkBGAAAQMwIwAAAAGJGAAYAABAzAjAAAICYEYABAADEjAAMAAAgZgRgAAAAMSMAAwAAiFmiAZiZbTWzfzKzp83s7oDHt5vZSTN7vHx7RxLtBAAAiFJkc0G2ysz6JX1U0iskHZH0mJntC5jEe6+73xF7AwEAADokyR6wayQ97e4H3f2ipM9KuiXB9gAAAMQiyQBsnaTDVfePlJfV+lUz+66Zfd7MNoRtzMx2mNm4mY2fPHky6rYCsWJ/Ri9hfwYWS3sS/l9Lusrdf17SVyQ9ELaiu+929zF3H1u9enVsDQQ6gf0ZvYT9GVgsyQDsqKTqHq315WXz3H3C3Z8t371P0ktiahsAAEDHJBmAPSZpi5ldbWbLJL1J0r7qFcxsTdXd10j6YYztAwAA6IjERkG6e9HM7pD0sKR+Sfe7+xNm9nuSxt19n6Q7zew1koqSJiVtT6q9AAAAUUksAJMkd98vaX/NsvdX/f7bkn477nYBAAB0UtqT8P//9u4/Ro6yjuP453N3lNsUQ+sVJemRFLQxFmokHEQx8Q9UrPAH0VCpCVAjCYoaS6IkTVBTiShEY8BICEQJCPgDFcMlYJoIKIn8sAcobSENTVPgiMb2aBHJ1XLc1z9uts5u99rdtvvMzs77lWyyz7PP7H5n5/vsfm9m9gYAAKDvUIABAAAkRgEGAACQGAUYAABAYhRgAAAAiVGAAQAAJEYBBgAAkBgFGAAAQGIUYAAAAIlRgAEAACRGAQYAAJAYBRgAAEBihV6MGwAAlNfKu1Y2tDev3VxQJOXDHjAAAIDEKMAAAAASowADAABIjAIMAAAgMQowAACAxCjAAAAAEqMAAwAASIwCDAAAIDEKMAAAgMQowAAAABIrtACzvcr2Ntvbba9v8fjxtn+dPf6U7WXpowQAADi2CrsWpO1BSbdI+oSkSUmbbI9HxPO5YVdI2hMR77W9RtKNki5JHy1a2bdvRlPT+zUzGxoasBbVBrR3evZAe6S2QJIOOabenq+/nXG733y74f6ShYMHxTE8zGVP0R35ebBk4WDDY/U8bM7J+XJ1UW2gYbn5+kZqCxrmFTkOlE+RM/YcSdsjYock2f6VpIsk5QuwiyRtyO7/VtJPbDsiImWgONi+fTN6cepNXXXP05rcM63RxTXdeulZOm3keJ2+4WGNLq5p47pztWPqvwfGbN3wsYZ2fplOxuVfo97/yZsfb/lc9THLRxbyBYVjLj8PNq47t+Gxeh42z4P58j7ff8ntT7bVl58H5DhQLkUeglwq6ZVcezLrazkmImYkvS5pJEl0OKSp6f0HvjgkaXLPtK6652ntnZ490N47PdswprmdX6aTcfnXqLfne656/9T0/nRvDiojPw/2Ts823PL97eR9cz6305dvk+NAufTNSfi2r7Q9YXti165dRYfT92Zm48AXQt3knmnNzMa8Yw61TCfj8q+Rb7d6rlZxlQH5XA75fJuZjYZbvr+dvM/3d9rX6zlOPgMHK7IAe1XSKbn2aNbXcoztIUknSppq9WQRcXtEjEXE2EknndSFcJE3NGCNLq419I0urmlowPOOOdQynYzLv0a+3eq5WsVVBuRzOeTzbWjADbd8fzt5n+/vtK/Xc5x8Bg5WZAG2SdJy26faXiBpjaTxpjHjktZm9y+W9Ajnf/WGkdoC3XrpWQe+QOrnodRPGB5dXNOi2kDDmOZ2fplOxuVfo96e77nq/fUfBADHUn4eLKoNNNzy/e3kfXM+t9OXb5PjQLm4yHrG9gWSbpI0KOmOiLje9nWSJiJi3PawpLslnSnpNUlr6iftH8rY2FhMTEx0M3Sor38F2VO7Esjn3laSX0H2TE6nzudl6x88qG/nDRcme/2ObTixRd/r6eNo08q7Vja0N6/dnOJleyafj0ahP5mJiIckPdTU9+3c/X2SVqeOC+0ZHh7S0qYP/YXDB4873Jh6e77+TsbNNwbollbzoK5Vbja3W+VqO33zvSaAcuibk/ABAADKggIMAAAgMQowAACAxCjAAAAAEqMAAwAASKzQf0PRLbZ3SXopay6RtLvAcFKq0rpK3Vvf3RGxqgvPe0Sa8jmFfssj1qeHcpp8PiziPbyeyeej0ZcFWJ7tiYgYKzqOFKq0rlL11jeVfntfWZ9qK9v7RbzVwSFIAACAxCjAAAAAEqtCAXZ70QEkVKV1laq3vqn02/vK+lRb2d4v4q2Ivj8HDAAAoNdUYQ8YAABAT6lEAWZ7te2ttmdt9+WvNWyvsr3N9nbb64uOp1ts32H7X7a3FB1LP+uXOdNP84Lc71yZtn/Ztq/tU2w/avv57LNiXdExlU0lCjBJWyR9RtJjRQfSDbYHJd0i6VOSVkj6nO0VxUbVNXdKKv3/fymB0s+ZPpwXd4rcb1sJt/+dKtf2nZH09YhYIelDkr7S4+9vz6lEARYRL0TEtqLj6KJzJG2PiB0RsV/SryRdVHBMXRERj0l6reg4+l2fzJm+mhfkfsdKtf3Ltn0j4h8R8Ux2/w1JL0haWmxU5VKJAqwClkp6JdeeFBMBYF5UG9s/EdvLJJ0p6aliIymXoaIDOFZs/1HSyS0eujYiHkgdD9DrmDMAjpbtEyT9TtLVEfHvouMpk74pwCLi40XHUKBXJZ2Sa49mfcC8KjBnmBfVxvbvMtvHaa74ujci7i86nrLhEGR/2CRpue1TbS+QtEbSeMExAUVjXlQb27+LbFvSzyS9EBE/KjqeMqpEAWb707YnJX1Y0oO2NxYd07EUETOSvippo+ZOhLwvIrYWG1V32P6lpCckvc/2pO0rio6pH/XDnOm3eUHud6Zs27+E2/cjki6TdJ7tv2W3C4oOqkz4T/gAAACJVWIPGAAAQC+hAAMAAEiMAgwAACAxCjAAAIDEKMAAAAASowADAKCLbG+w/Y0jWG6R7S93IyYUjwIMAIDetEhSRwWY5/DdXgJspIqwfbbt52wP215oe6vtM4qOCzgStq+zfXWufb3tdUXGBNTZvjz7vP277bubHvuT7bHs/hLbO7P7p9v+a/YPTZ+zvVzSDZLek/X9IBt3je1N2ZjvZH3LbG+z/XNJW9R4CSb0qL65FiQOLSI22R6X9F1JNUn3RMSWgsMCjtQdku6XdFP21/4aSecUGxIwV0hJ+qakcyNit+13SvpaG4t+SdLNEXFvdumkQUnrJZ0RER/Mnvt8Scs1l+uWNG77o5JezvrXRsSTx3yl0BUUYNVyneauj7ZP7X0gAD0pInbanrJ9pqR3S3o2IqaKjguQdJ6k30TEbkmKiNfmLpt4WE9Iutb2qKT7I+LFFsudn92ezdonaK7welnSSxRf5UIBVi0jmpuwx0kalvRmseEAR+Wnkj4v6WTN7REDymBG/z/9Z7jeGRG/sP2UpAslPWT7i5J2NC1rSd+PiNsaOu1l4vO8dDgHrFpuk/QtSfdKurHgWICj9XtJqySdrbkLLgO94BFJq22PSFJ2CDJvp6SzsvsX1zttnyZpR0T8WNIDkj4g6Q1J78gtu1HSF2yfkC2z1Pa7urES6D72gFWE7cslvZX9lTUo6XHb50XEI0XHBhyJiNhv+1FJeyPi7aLjASQpIrbavl7Sn22/rbnDhTtzQ34o6T7bV0p6MNf/WUmX2X5L0j8lfS87fPkX21sk/SEirrH9fklPZIcn/yPpUknkfwk5IoqOAQA6lp18/4yk1RHxYtHxAEAnOAQJoHRsr5C0XdLDFF8Ayog9YAAAAImxBwwAACAxCjAAAIDEKMAAAAASowADAABIjAIMAAAgMQowAACAxP4HuM0nXadulZgAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_clustering(kmean)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Für die beiden anderen Clusteringverfahren können wir die Anzahl der zu findenden Cluster nicht vorher bestimmen, sondern lediglich die Parameter vorgeben, nach denen die Algorithmen die Cluster finden. So haben wir uns dafür entschieden für das DBSCAN Verfahren die Distanz epsilon festzulegen und lediglich die Anzahl der minPoints zu variieren.\n", "Dabei deutete die Silhouettenmethode auf die Anzahl von vier minPoints hin. Dagegen spricht der Calinski-Harabasz Index dafür nur drei minPoints festzulegen. Da der Unterschied von drei auf vier minPoints in der Silhouettenmethode geringer ausfällt als bei dem Calinski-Harabasz Index, entscheiden wir uns dafür, den Wert auf drei festzulegen. Dabei entsteht folgendes Clustering:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "413.07659501752454 0.7371548460350252\n", "426.3939931194898 0.7369919531090281\n", "420.5044834271682 0.7308615155343755\n", "455.2412285136606 0.735691957820991\n", "504.07760609727694 0.7336884436916197\n", "554.1814795817995 0.7414126946036408\n", "384.1792588087254 0.7178254607350658\n", "306.5343514633772 0.6866531405315872\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "calinskis = []\n", "silhouettes = []\n", "min_samples = []\n", "for i in range (8):\n", "\tdbsca = data.merge(get_dbscan(data, i+3)['cluster'])\n", "\tcalinskis.append(metrics.calinski_harabasz_score(data2, data['cluster']))\n", "\tsilhouettes.append(metrics.silhouette_score(data2, data['cluster']))\n", "\tmin_samples.append((i+3))\n", "\tprint(metrics.calinski_harabasz_score(data2, data['cluster']),\\\n", " metrics.silhouette_score(data2, data['cluster']))\n", "plt.plot(min_samples, calinskis, 'ro-', label=\"DBSCAN Ralinski Harabasz Score\")\n", "plt.title(\"DBSCAN Calinski Harabasz Score\")\n", "plt.xlabel(\"minimum samples\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(min_samples, silhouettes,'ro-', label=\"DBSCAN Silhouette Score\")\n", "plt.title(\"DBSCAN Silhouette Score\")\n", "plt.xlabel(\"minimum samples\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "dbsca = data.merge(get_dbscan(data)['cluster'])\n", "plot_clustering(dbsca)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wir erkennen, dass der Algorithmus sich für 4 Clusterzentren entschieden hat. Dabei wird deutlich, dass der DBSCAN Algorithmus Schwierigkeiten bei unterschiedlich dichten Clustern bekommt.\n", "\n", "Beim HDBSCAN Verfahren variieren wir die kleinste Clustergröße. Das ist die Anzahl an Punkten, die bei dem hierarchischen Verfahren nötig ist, dass ein oder mehrere abgetrennte Punkte als neuer Cluster angesehen werden. Hierbei erhalten wir folgende Ergebnisse für den Calinski-Harabasz Index und die Silhouettenmethode. Dabei erkennen wir, dass die optimale Größe zwischen vier und fünf Punkten liegt. Wir entscheiden uns für vier und erhalten folgendes Ergebnis." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "333.4228992858206 0.7273963707789622\n", "654.4267717254961 0.7860566014117069\n", "651.5589812932111 0.7908005448530104\n", "319.8495630851444 0.7201520602759448\n", "553.9072481033943 0.7756906650206093\n", "636.4702698218282 0.7860307162038978\n", "482.9247237225337 0.7640206128662527\n", "399.86372633821446 0.7739822851543199\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAEWCAYAAACdaNcBAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nO2deZhU5dG372JVQEEEieyKOwqIiNMJGndBETBGQ8SoMQm+bnGLC5IvrzHBqHHXuBCNyytGjTojbqhRTGJPUECQRTQgIIsgKKvsS31/1OnQDDNMz0x3nz6n676uvvr0c7Y6PT2/85x6quoRVcVxHMeJF/XCNsBxHMfJPi7ujuM4McTF3XEcJ4a4uDuO48QQF3fHcZwY4uLuOI4TQ1zcnUgjIk+IyO+D5aNF5LMsHHOuiJxYxbrpInJsXc+RLdKv33HScXEvACoTExG5QETer7DNOhFZLSIrRKRcRP5HROqlbfOEiGwUkW+D7SaKyPfT1jcSkTtFZEGwzVwRuafCec8RkQnB+kUi8oaI9KnENhWRH1VoPzZof7BC+/sicsFOrv8AEfmbiHwtIitFZIqIXC0i9TP8CgFQ1X+p6oE12aemqGpXVX2vsnWVCa2IdA6+kwa5tCssRGSgiEwWkVXB3+9dEdknbLscF/eocbqq7gZ0Am4Frgceq7DN7araDNgdeAh4KU0khwG9gN7AbsCxwEepHUXkauAe4BagDdAReBAYWOEc5wPLgPMqsXEN8BMR6ZzJBYlIF+ADYD5wmKo2B84K7Nwtk2PElUK/IYjIfsBTwDVAc2Af4E/AliyeQ9I7ME7m+JcWQVR1paqOBn4EnC8ih1ayjQLPAC0xoQY4EihV1S/VmKuqTwGISHPgZuBSVX1JVdeo6iZVfUVVr00dV0Q6Ad8HhgKniMh3Kpx6BfAE8L8ZXs5vgXJVvVpVFwW2f6aq56jqiuCcfxORxUGv/p8i0rWyAwVPDgvSPs8VkV8FTwIrReQ5EdklWNdKRF4NnoKWici/KhMRETlYROaIyI/TjlmpyyYTROQ0EZkU9HTni8hNaetSvfyficg84N0Mr7+ViLwdPK39I/gbpY55b3CeVcGT3NFp63oHT2mrROQrEbkraH8geHJLvTan25lGD2COqr4T/J5Wq+qLqjovOE59EblRRD5Pe5LsEKz7roiMD65pvIh8N82u90RkhIgkgbXAviLSXEQeC54mF4rI72v6ZFdsuLhHGFX9EFgAHF1xXfDDPw+YA3wVNI8DrhaRS0TkMBGRtF0SwC5AaTWnPQ+YoKovAjOAIZVsMwI4U0QycZGcCLxQzTZvAPsDe2FPGqMyOG6Ks4G+WK+yG3BB0H4N9t21xm5+NwLb1eIQkZ7Am8DlqvrXGpxzZ6zBvsMWwGnAxSIyqMI23wcOBk4JPld3/UOA3wGtgMkV1o/HRLgldrP/W+oGB9wL3KuquwNdgOcBVPUyVW0WPAH2AZYDL1dyLR8BB4nI3SJynIg0q7D+auDHwKnYk+SFwFoRaQm8BtwH7AncBbwmInum7fsTrAOxG/AF1mHYDOwHHA6cDPy8EpucFKrqr5BfwFzgW6zXm3qtBd6vsM2Jlew7DhgeLD8BrA/2XxcsD0nbtj5wKZAENgBfAucH64YAizOwdSZwZbA8DPg4bd2xwIJg+XbguWD5feCCKo63Cehbg++qBSbCzdOu+fcVz5/2nZ2b9vl24OFg+WZMsPar4u/xW0z8j61k3Q5/h0q+/9RrVWBvgyr2uQe4O1juHGy7bw2v/9m09c0wt0iHKvZfDnQPlv8ZXGerKrZtHVzv4J3YU4LdFJYG1/4E0CxY9xkwsJJ9fgJ8WKHt36nfCPAecHPaujbB73XXtLYfA2Nz/b8Z5Zf33AuHQaraIvUCLslwv3aY/zvFHcH+TTC/9R9FpB+Aqm5R1T+p6vcwkRgB/EVEDga+wR7vq/Tzisj3sB7ws0HTM8BhItKjks1vw9w23aux/xtg752cs76I3Bo82q/CxAasl5oJi9OW12LiB/BHYBbwlojMFpEbKuz3P5i76L0Mz5Pijgp/x27pK0XkKBEZKyJLRWRlcJ6K1zI/bftMrv+/26vqt9jvoW2w/69EZEbg/liB+cZT+/4MOAD4NHCN9E87b0PsieoZVU39vXdAVcep6tmq2hp7gjwGGB6s7gB8XslubbHeeDpfYL/lHa4JG2NqCCwK3GgrgEewJxmnClzcI4yIHIn9Q7xfcZ0a07Be+mmVrF+nqn/CenKHYD2nDUBFF0E65wMCTBaRxdhAaKq94vG/wXqlv6vmMv4OnLmT9edgA7onYsLUOWiXqnbIBDX/8DWqui8wAHNXnZC2yf8AHUXk7rqcpxKeAUZjPevmwMPseC3p7qFMrr9DaiFwjbQEvgz869dhrqk9gpvNytS+qjpTVX+MieRtwAsi0jQ41P3YU8evM70wVR0PvASkxoDmY+6einyJCXY6HYGF6YdLW56P/TZbpd04d1fVSsdeHMPFPYKIyO5BL+tZ4GlVnVrFdgdhPtPpwecrxQYddxWRBiJyPubTnKSqK4HfAH8SkUEi0kREGopIPxG5PfDTno35QXukvS4Hzqmix38X8F3Mf1wV/wt8V0T+KMHgrIjsJyJPi0iLwL4NWA+/CRbJU2dEpH9wHsEEbwuwNW2T1Ziv/hgRuTUb5wzYDVimqutFpDcm3tVtX931nyoifUSkEXYzHaeq84N9N2MukwYi8hvM9w2AiJwrIq1VdSvmQgLYKiIXYX7/IcG6SgnO+QsR2Sv4fBB2oxwXbPIo8DsR2V+MboFf/XXgALGw2wZiIbWHAK9Wdh61gfa3gDuD3349EekiaWG+zo64uEeLV0RkNdaTGY6J508rbHNdEOGwBvuHeBx7hAVzS9yJuSq+xvzvZ6rqbABVvRMbBPs1JgjzgcuAMqxHvw54SlUXp17AX4AGmBBuh6quwvzcLau6IFX9HBvM7QxMD1wVLwITMIF9CntkXwh8wjbhqCv7Y08N32JPLQ+q6tgKtq0ATgL6iUh1TyCZcglwc/B3/A3BIOZOyOT6n8FuksuAI4Bzg/Y3gTHAf4JjrGd7d0df7Dv/FhtcHayq6zB/9r5Y7z8VMXNjJeddgYn51OAYY7AB+duD9XcF1/cW9hTwGOY3/wbojw1qf4M9XfRX1a938j2cBzQKvoPlmMuoSneeAxIMTjiO4zgxwnvujuM4McTF3XEcJ4a4uDuO48QQF3fHcZwYUhCFiVq1aqWdO3cO2wzHcZxIMXHixK+DBLIdKAhx79y5MxMmTAjbDMdxnEghIhUzff+Lu2Ucx3FiiIu74zhODHFxdxzHiSEu7o7jODHExd1xHCeGuLjni1GjoHNnqFfP3kfVZDIhx3GcmlEQoZCxZ9QoGDoU1q61z198YZ8BhlQ2S53jOE7dcHHPB8OHbxP2FGvXwhVXQOPG0KTJzl8N8vxnGjXKbJ43Dzp2hBEj/CbkOBEjI9UIJk14FJthRbGJbk8BfoHV/Qa4UVVfD7Yfhk3htQX4paq+mWW7o8W8eZW3f/MNnHVW9fs3bLi92O+6a/U3hJq+dt3VXEb+lOE4sSDTLuG9wBhV/WEw20sTTNzvVtU70jcUkUOAwUBXbK7Ev4vIAaq6JYt2R4uOHU0kK9K2Lbz5JqxbZ2Jam9eSJTu2rVkDtanTv8susHEjbK0w+c7atdaTd3F3nMhQrbiLSHNs0tsLAFR1I7DRZierlIHYbOwbgDkiMgvojc12U5yMGAEXXmjCmaJJE7j9djj00Kr3qy2qdq7a3Cxuv73yY1b19OE4TkGSSc99H8z18ngwk/1E4Ipg3WUich42Jdo1qrocm7A5fSqwBWw/qzkAIjIUm4+Tjh071voCIsGQIfDII5BMmvDm2o8tYr78xo1hjz1qtu9zz1X+lBH3v5HjxIxMQiEbAD2Bh1T1cGANcAPwEDazeQ9gETY3Z8ao6khV7aWqvVq3rrSoWbxYvBj69zeXx9y5heviGDHCnirSadLE2h3HiQyZiPsCYIGqfhB8fgHoqapfqeqWYHb0P2OuF7CJfDuk7d8+aCteli6FmTPhu98N25LqGTIERo6ETp3ss4g9dRTqzchxnEqpVtyDGe7ni8iBQdMJwCcikj7z+BnAtGB5NDBYRBqLyD7YLPMfZtHm6FFebu/f+164dmTKkCH2dPGXv5gb6YgjwrbIcZwakmm0zOXAqCBSZjbwU+A+EemBhUbOBS4CUNXpIvI88AmwGbi0qCNlwHztDRtCr15hW1IzEgl7//e/4eCDw7XFcZwakVH5AVWdHPjHu6nqIFVdrqo/UdXDgrYBqroobfsRqtpFVQ9U1TdyZ35EKC+33u8uu4RtSc044AAbkP138QY6FT1eNiOyeG2ZXLNhA0yYEB2XTDr16sFRR8G4cdVv68SPVELbF1+Yey6V0OYCHwlc3HPNxIkm8FEUdzDXzPTpsHJl2JY4+aaqshnDh4djj1MjXNxzTWowNQqRMpWRSFiv7cPiHhMvSqpKXPOEtkjg4p5rkkno0gXatAnbktpx1FEWDul+9+Ji61arN1QZntAWCVzcc4mqiXtUXTIAu+8OXbu6uBcb119vLpiGDbdv94S2yODinktmzbIEpiiLO0BJCXzwwY4FxZx4cs89cMcdcNll8PjjltCWqiU1eLAntEUEF/dcEnV/e4pEApYvh//8J2xLnFzz/PNw9dVw5pkm8qmEti1boHdveO892Lw5bCudDHBxzyXJJLRoAYccErYldSM9mcmJL++9Bz/5CfTpA08/DfXrb1snYlEys2fDs8+GZqKTOS7uuSSZNGGsF/Gv+cAD7Sbl4h5fpk6FQYNgv/3g5ZcrT7jr399KVP/hD+6iiwARV50CZvly+OST6LtkwG5OJSUu7nFl/nzo1w+aNoU33qi6THS9enDjjfa7fvnl/Nro1BgX91yREsKoD6amKCmxZKZVq8K2xMkmy5ebsK9ebcJeXZjj2Wdb737EiNrN9uXkDRf3XJFMms+yd+/qt40CnswUP9avN1fMzJlQVgbdulW/T/36cMMNlnn91lu5t9GpNS7uuaK8HHr0sEfdOODJTPFiyxYbPP3nP+Gpp+C44zLf9yc/gfbt4ZZbcmefU2dc3HPBpk0WFx4XlwxA8+YW9ePiHn1U4aqr4IUX4K674Ec/qtn+jRrBtdfajeH993Njo1NnXNxzweTJsG5dvMQdzDUzbpxHSkSdO+6A+++3eParrqrdMX7+c2jd2rNVCxgX91wQl+SlipSU2ADczJlhW+LUllGj4LrrrLf+xz/W/jhNmtiNYcwY+Oij7NnnZA0X91yQTFrUQfv2YVuSXTyZKdr8/e/w05/CscfCk0/WPf/ikkvMXee+94LExT3bxKFYWFUcdJAnM0WVSZPgjDPsb1hWBo0b1/2YzZvD5ZfDSy/BjBl1P56TVVzcs828efDll/EU99TMTC7u0WLuXDj1VEtOeuMNE+VsccUVVhr41luzd0wnK7i4Z5tk0t7j5m9PkUjAtGmezBQVvvkG+va1mPYxY6Bdu+wev1UruOgi8+XPmZPdYzt1IiNxF5EWIvKCiHwqIjNEJCEiLUXkbRGZGbzvEWwrInKfiMwSkSki0jO3l1BgJJPQrBkcdljYluSGkhJzPY0fH7YlTnWsWwenn24999Gjc1fA7le/suSm22/PzfGdWpFpz/1eYIyqHgR0B2YANwDvqOr+wDvBZ4B+wP7BayjwUFYtLnSSSRPABg3CtiQ3HHWUvbtrprDZvBl+/GMLXR01Co4+OnfnatvWBmr/8hdzSToFQbXiLiLNgWOAxwBUdaOqrgAGAk8Gmz0JDAqWBwJPqTEOaCEie2fd8kJk1SqrrhdXlwxsK2Hs4l64qNpEGy+/DPfdZ7XZc81111nW61135f5cTkZk0nPfB1gKPC4ik0TkURFpCrRR1UXBNouB1CSh7YD5afsvCNq2Q0SGisgEEZmwdOnS2l9BIZGarSiOg6nppJKZvHBUYXLLLfDII1YD5rLL8nPOffe1J4WHHzY/vxM6mYh7A6An8JCqHg6sYZsLBgBVVaBG/+mqOlJVe6lqr9atW9dk18IlmbT6KyUlYVuSWxIJWLbMZ2YqRJ54An79a6v/ku/482HDYM0auPfe/J7XqZRMxH0BsEBVPwg+v4CJ/Vcpd0vwviRYvxDokLZ/+6At/pSX20Dq7ruHbUluSd28xo0L1w5ne954w8oCnHQSPProtnlP88Uhh1gs/f33ezRVAVCtuKvqYmC+iBwYNJ0AfAKMBs4P2s4HUtX7RwPnBVEzJcDKNPdNfNmyxcQu7i4ZgIMPtlhp97sXDuPHw1lnWdneF1+04l5hMHw4rFgBDxVXHEUhkmlIx+XAKBFpBMwGfordGJ4XkZ8BXwBnB9u+DpwKzALWBtvGn6lTbcKDYhB3T2YqLD7/HE47zQp5vf467LZbeLYccQSccooNrP7yl5bg5IRCRqGQqjo58I93U9VBqrpcVb9R1RNUdX9VPVFVlwXbqqpeqqpdVPUwVZ2Q20soEFLFwopB3GFbMtPq1WFbUtwsWWJiunWrJSl95zthW2RT8S1ZAo89FrYlRY1nqGaLZBL23hs6dQrbkvxQUmKC4jMzhceaNTZp9Zdfwquv2kTmhcAxx0CfPpbUtHFj2NYULS7u2SJVLCzfg1hhkUpm8kHVcNi82eYznTgRnn228CK0hg+3ibeffjpsS4oWF/dssHAhfPFF8bhkwIpQHXyw+93DQNXqubz+Ojz4IAwYELZFO3LKKdCzpxUU27IlbGuKEhf3bBDXyTmqw5OZwuGmmyzV///9PxP5QkTEfO8zZ9p0fk7ecXHPBsmkRQUcfnjYluSXRMKyEX1mpvwxciTcfDNceCH89rdhW7NzzjjDnu5uucU7ACHg4p4Nkkno3RsaNgzbkvziyUz55ZVX4OKLrTb7ww8X/vhOvXqWtTplig34OnnFxb2urFljs9wUm0sGLCNx993d754Pxo2zeU+POAKefz46HYnBg6FzZ5tI23vvecXFva6MH28DRsU0mJrCk5nyw2efWchj27bWA27aNGyLMqdhQ7j+eiuqN3Zs2NYUFS7udSU181Jq8uhiI5HYlp3rZJ/Fi20mpXr1LElpr73CtqjmXHCB5YCMGBG2JUWFi3tdKS8390TLlmFbEg6JhCUz+cxM2Wf1avOvL1kCr70G++0XtkW1Y5dd4Jpr4N13fXwmj7i414WtW03ci9HfnsKTmXLDxo3wwx/aYOQLL8CRR4ZtUd246CLrAOW7DHER4+JeF2bMsAp4xehvT7HHHnDQQe53zyaqVrr3rbfgz3+Gfv3CtqjuNGsGV15pET9TpoRtTVHg4l4Xiq1YWFV4MlN2ufFG+L//g9/9zuYmjQuXXWYVK733nhdc3OtCMmllVqPqC80WiQR8/TXMmhW2JdHngQcsZf+ii6w+S5zYYw+45BIL5fRZvHKOi3tdSCbN317oySS5JhUp5K6ZuvHSS1YDfcAAE/k4/q6uugoaN4bbbgvbktjj4l5bliyxnmqxu2TAUsx3280HVevC++/DOedY1u9f/woNMp1HJ2K0aWPjCU89BfPmhW1NrHFxry3FWiysMurX92SmuvDJJ9Zb79zZBhybNAnbotxy7bX2fscd4doRc1zca0syafNUHnFE2JYUBomERUF8+23YlkSLhQstSalxY0tS2nPPsC3KPR07wnnnWSTQV1+FbU1scXGvLckk9OplCRqOJzPVhpUrLcxx+XKrzd65c9gW5Y8bbrBY/rvvDtuS2OLiXhvWr7cZcNwls41UMpO7ZnbOqFEm4vXqmf952jQbSC22ctH77w9nnWWTjSxfHrY1scTFvTZMnGi9Dh9M3UbLljaHpw+qVs2oUTB0qM3apQobNlhhrSVLwrYsHG680UosPPBA2JbEkozEXUTmishUEZksIhOCtptEZGHQNllETk3bfpiIzBKRz0TklFwZHxqpYmHec9+eRMJ67p7MVDnDh8Patdu3bdwYv3j2TOnWDU4/He65x8dqckBNeu7HqWoPVe2V1nZ30NZDVV8HEJFDgMFAV6Av8KCI1M+eyQVAebk9VkaxQl8uSSUzff552JYUJlWF/hVzSOCNN8KyZfDII2FbEjty4ZYZCDyrqhtUdQ4wC+idg/OEg6oXC6sKT2baOR071qy9GCgpgeOPhzvvtLEsJ2tkKu4KvCUiE0VkaFr7ZSIyRUT+IiJ7BG3tgPlp2ywI2rZDRIaKyAQRmbB06dJaGR8KM2fC0qXub6+MQw6xZCYX98oZMcLCZ9Np0sTrnA8fDosWwRNPhG1JrMhU3Puoak+gH3CpiBwDPAR0AXoAi4A7a3JiVR2pqr1UtVfr1q1rsmu4eLGwqqlf3+aS9UHVyhkyBHr0sEgZEejUySa8HjIkbMvC5bjjLNrqtttg06awrYkNGYm7qi4M3pcApUBvVf1KVbeo6lbgz2xzvSwEOqTt3j5oiwfJJLRoYWVunR1JJTOtWRO2JYXH+vWWjfqLX1hOwNy5LuxgN7rhw+37ePbZsK2JDdWKu4g0FZHdUsvAycA0Edk7bbMzgGnB8mhgsIg0FpF9gP2BD7NrdoikioXV8yjSSkkkbE5ZT2bakXfesaiQQYPCtqTw6N/fomf+8Ae78Tl1JhOFagO8LyIfYyL9mqqOAW4PwiOnAMcBVwGo6nTgeeATYAxwqapuyYn1+WbZMpugw10yVVNSYu/ud9+R0lLYfXcbQHS2RwSGDbP/r9LSsK2JBaIFEJPcq1cvnTBhQthmVM9rr1kPY+xYOPbYsK0pXA46CA44AEaPDtuSwmHLFpsk+oQTrOqjsyNbtliF0WbNLFEwjiWPs4yITKwQnv5f3LdQE5JJK8XaOz6RnTmhpMRnZqpIeblFWZ1xRtiWFC7161vNmUmT4M03w7Ym8ri414Rk0mqAxL0ka11JJEzIZs8O25LCoazMwiD79g3bksLm3HOhQwcPD80CLu6ZsmkTfPihJy9lgiczbY+q+ZFPPNF87k7VNGpk9d7ffx/++c+wrYk0Lu6ZMmmShbL5YGr1dO3qyUzpTJ0Kc+Z4lEym/PznVtrDJ9KuEy7umZIqFubiXj2pZCYXd6O01AYHBwwI25JosOuucPXV5nePQqBFgeLininl5VaHu23bsC2JBiUlnsyUoqzM3Hlt2oRtSXS4+GJLFvTee61xcc8E1W3JS05mpJKZir3nNWcOTJ7sUTI1Zffd4fLL7aln+vSwrYkkLu6ZMHeuFTZyl0zmeDKT8fLL9u7+9ppzxRXQtCncemvYlkQSF/dM8GJhNWfPPS2RqdjFvbQUDjsMunQJ25LoseeecNFFlvTlYbU1xsU9E5JJi/449NCwLYkWiURxJzMtXWohfd5rrz3XXGMD9LfdFrYlkcPFPROSSXMz1I/XhFI5p6TE5gedMydsS8LhlVesCJb722tP27Zw4YVW631hfIrL5gMX9+pYtcrilN0lU3OKPZmprMxqtvfoEbYl0ea662xw/s4aTRlR9Li4V0fKreCRMjXn0EOtCFQxivu338Jbb5lLxgtg1Y199oFzzrF5Vr/+OmxrIoOLe3Ukk1a7PRX94WROMSczvfkmbNjg/vZsMWwYrFsH994btiWRwcW9OpJJm0Rgt93CtiSaJBLw8cewdm3YluSX0lKL9ujTJ2xL4sHBB8MPfgD33w8rV4ZtTSRwcd8ZmzfDBx+4S6YulJQUXzLTpk3w6qtw+ulWItrJDsOGmbA/+GDYlkQCF/edMXWq+U59MLX2FGMy03vvmQi5Sya7HHGElUy+++7iexKsBS7uO8OLhdWdVq1g//2LS9zLyqzm/8knh21J/Bg+3PIHHn00bEsKHhf3nVFeDu3aQceOYVsSbRIJE/diSGbautXE/ZRTrLqhk1369IGjj4Y//hE2bgzbmoLGxX1npIqFeShb3UgkLJlp7tywLck9EybAl1964lIuGT4cFiyAp54K25KCJiNxF5G5IjJVRCaLyISgraWIvC0iM4P3PYJ2EZH7RGSWiEwRkZ65vICcsWABzJvnLplsUEx+99JSCwE97bSwLYkvJ59s/vdbb7WgB6dSatJzP05Ve6TNtH0D8I6q7g+8E3wG6AfsH7yGAg9ly9i84sXCssehh1p1v2IQ97IyOPZYaNkybEviiwjceCN8/jn87W9hW1Ow1MUtMxB4Mlh+EhiU1v6UGuOAFiKydx3OEw7JpA2Kde8etiXRp0GD4khm+vRTe3mUTO4ZNAgOOcQm89i6NWxrCpJMxV2Bt0RkoogMDdraqOqiYHkxkJpmph0wP23fBUHbdojIUBGZICITli5dWgvTc0wyaYLUsGHYlsSDYkhmKiuz94EDw7WjGKhXz+Lep02znAJnBzIV9z6q2hNzuVwqIsekr1RVxW4AGaOqI1W1l6r2at26dU12zT1r1tjsOe6SyR6JhPlHJ04M25LcUVoKvXpBhw5hW1IcDB5sdWdGjCiOSKwakpG4q+rC4H0JUAr0Br5KuVuC9yXB5guB9F93+6AtOnz4oWVVemZq9jjqKHuPq2tm4UL73XiUTP5o0ACuv96+93feCduagqNacReRpiKyW2oZOBmYBowGzg82Ox8I5hNjNHBeEDVTAqxMc99Eg1TyUqpkrVN3WreG/faLr7j7dHrhcMEFVvN9xIiwLSk4Mum5twHeF5GPgQ+B11R1DHArcJKIzARODD4DvA7MBmYBfwYuybrVuaa8HLp2hT32CNuSeBHnZKayMptW8OCDw7akuGjcGH71Kyv5kIpwc4AMxF1VZ6tq9+DVVVVHBO3fqOoJqrq/qp6oqsuCdlXVS1W1i6oepqrRqhi1dasJkPvbs08iAV99Fb9kpuXLYexYr90eFkOHWgXOW24J25KCwjNUK/LJJ7Bihfvbc0HKzTVuXLh2ZJvXX7fBYve3h0PTpnDllfDaaxYI4QAu7jvixcJyR1yTmUpLYe+9LXTWCYfLLrM5F/7wh7AtKRhc3CtSXg577QVduoRtSfxo0ACOPDJe4r5uHYwZY7Ht9fzfKTRatLDM4Oeft79D584walTYVoWK/xor4sXCcksiYY/O69aFbUl2+PvfLS/Co2TCZdQo+1uADdh/8dWH9lMAABlySURBVIX54otY4F3c0/nqK6tX4S6Z3JFKZorLzExlZbD77nDccWFbUtwMH75jh2HtWmsvUlzc0/FiYbknVSEyDoOqmzfD6NFWAbJRo7CtKW7mzatZexHg4p5OMmlxsz2jWaU4ErRubeMZcfC7l5fD1197lEwhUNWEOm3b5teOAsLFPZ1k0mqDNG4ctiXxJi7JTKWl9lvp2zdsS5wRI6yKa0VULQ+hCHFxT7F+vRW1cpdM7kkkYPFiG/SKKqrmbz/xRAvBc8JlyBAYORI6dbJgiE6dzN/+9dcWybR+fdgW5h0X9xQTJsCmTZ68lA9SyUxRds1MmWKZth4lUzgMGWJ/k61b7f33v4cnn4R//QvOO6/o6r67uKdIJS+5uOeeww6zR+goD6qWlloPccCAsC1xdsbgwXDHHTZj0zXXhG1NXmkQtgEFQ3m5FX4qtNrycSQOyUxlZebC22uvsC1xquPqqy1q5p57rNb+1VeHbVFe8J47mP+0vNz97fkkkYBJk6KZzDRnjs0q5VEy0UAE7roLzjzTeu/PPRe2RXnBxR3gP/+xgRd3yeSPKM/MlJpOz/3t0aF+fXj6aejTx/zv//hH2BblHBd38GJhYRDlZKbSUujWDfbdN2xLnJqwyy42qUqXLnZjnj49bItyios7mEumZUs48MCwLSke9trLxDFqfvclS6wz4L32aNKyJbzxBuy6q+UnLIzWDKA1wcUd7J81kfCqfvkmislMr7xiIXXub48unTpZDf4VK6BfP1i5MmyLcoKr2TffwKefuksmDBIJWLQoWvU/yspMHLp3D9sSpy706AEvvQQzZsAPfgAbN4ZtUdZxcU+5BVzc80/UkplWr4a337Zeu5eEjj4nnQSPPQbvvgsXXhi7JCcX92TS4q579QrbkuKjWzfzfUZlUPXNN2HDBve3x4nzzrO6NKNGwY03hm1NVvEkpmTSqkBWVnTIyS1RS2YqLYVWrfwpL24MGwbz58Ntt1mS06WXhm1RVsi45y4i9UVkkoi8Gnx+QkTmiMjk4NUjaBcRuU9EZonIFBEp3Pq5GzfC+PH+zxomqWSmQi/stHGjTcB8+ul2U3Ligwg88ICVkrj8cruJx4CauGWuAGZUaLtWVXsEr9S04/2A/YPXUOChupuZI1Ki4slL4ZFIWMG2Qk9meu89i6rwKJl4Ur8+/PWvNsn5Oedsm7gnwmQk7iLSHjgNeDSDzQcCT6kxDmghInvXwcbc4clL4ROVQdWyMmja1Er8OvGkSRMLdW3f3p7QPvssbIvqRKY993uA64CKw8kjAtfL3SKSmuGiHTA/bZsFQdt2iMhQEZkgIhOWLl1aU7uzQ3k57LMP7F2Y956iIJXMVMiDqlu3mrj37WsDwE58ad0axowx11vfvjbvQESpVtxFpD+wRFUrPjcPAw4CjgRaAtfX5MSqOlJVe6lqr9ZhVGJUtZ6799rDp6SksJOZxo+3eHyPkikOunSBV1+1bOTTTrMQ2AiSSc/9e8AAEZkLPAscLyJPq+qiwPWyAXgc6B1svxDokLZ/+6CtsJgzx+7K7m8Pn0QCvvzSIhYKkdJS68mddlrYljj54sgjrQb8xx/DWWfZuFDEqFbcVXWYqrZX1c7AYOBdVT035UcXEQEGAdOCXUYD5wVRMyXASlVdlBvz64D72wuHQve7l5XBscfCHnuEbYmTT049FR5+2PIbhg4t3CfLKqhLEtMoEZkKTAVaAb8P2l8HZgOzgD8Dl9TJwlxRXg677w5du4ZtiZNKZipEcZ8xwwbWPEqmOPn5z+E3v4EnnoCbbgrbmhpRo4BdVX0PeC9YPr6KbRQo/CyAZNJ8vfXrh22J07ChPQYX4qBqqnb7wIHh2uGEx003wYIFcPPNFknzi1+EbVFGFGf5gRUrYNo0d8kUEiUl8NFHhZfMVFpqsc/tdgj4cooFEXPP9O0LF19syWwRoDjF/YMPzH/m4l44pJKZPvoobEu2sWCBRcp4lIzTsKENsPboAWefbb+LAqc4xT2ZtNrtvXtXv62THwpxUPXll+3d/e0OQLNm1mtv08Yip2bNCtuinVK84t69O+y2W9iWOCnatLGEskIS97Iym53roIPCtsQpFNq0sSSnrVttoo+wEjAzoPjEffNmc8u4S6bwSCQKZ1B1+XKrJ+O9dqciBxxgZQoWLID+/WHt2rAtqpTiE/cpU2DNGk9eKkRKSmxOy0JIZnrtNesIuL/dqYxEwgqNTZgAgwfbb6XAKD5x9+SlwqWQ/O6lpdC2rYVoOk5lDBoE999vvfjLLiu4JKfiE/fycotV7dgxbEucinTvXhjJTOvWmV914ECfNN3ZOZdcAjfcAI88ArfcErY121F8sw54sbDCpWFDm+4wbHF/+23zo7q/3cmEW24x//uvf20dx/PPD9sioNh67vPn28v97YVLamamDRvCs6GsDJo3h+9/PzwbnOggYhNtn3CClSt4662wLQKKTdzd3174lJTYlHZhJTNt3gyjR1sURKNG4djgRI9GjeDFF+GQQ+DMM62DEjLFJe7l5TbbSvfuYVviVEXYg6rJJHzzjUfJODWneXN44w2rHnrqqTB3bqjmFJe4J5Nw1FE+wXEh853vQOfO4Yl7aSk0bmx1RBynprRta4Px69dbktOyZaGZUjzi/u23VnjfXTKFTyIRjrirmr/9pJMs1dxxasMhh1jpitmzYcAAi74KgeIR9w8/hC1bXNyjQCJhyUwLFuT3vJMnwxdfeJSMU3eOOQaeftpcweeea9qTZ4pH3JNJG9UuKQnbEqc6Un+jfPfey8osrv300/N7XieenHUW3HUXvPQSXHVV3pOcikvcu3aFFi3CtsSpju7dYZdd8i/upaXQpw+EMWG7E0+uvNKE/f774c4783rq4hD3rVtNKNwlEw0aNcp/MtPnn8PUqR4l42SfO+6wGvDXXmv1aPJEcYj79OmwapWLe5RIJCzWPV/JTKnp9FzcnWxTrx48+aT54c8/H8aOzc9p83KWsEklL3lmanRIJCyZKV/JIGVl5g7aZ5/8nM8pLnbZxX5jBxxgHYipU3N+yozFXUTqi8gkEXk1+LyPiHwgIrNE5DkRaRS0Nw4+zwrWd86N6TWgvNyK7O+7b9iWOJmSz0HVr76yDoBHyTi5ZI89LMmpWTOLgc9xNFhNeu5XADPSPt8G3K2q+wHLgZ8F7T8DlgftdwfbhUuqWJhI2JY4mbL33tCpU37E/ZVXLJLBXTJOrunQwQR+1Sp7Ou3Qwdw2nTvDqFFZPVVG4i4i7YHTgEeDzwIcD7wQbPIkkPrPGBh8Jlh/QrB9OCxebMkE7pKJHvlKZiotNXdMt265P5fjdOtm9d8XLLCXquVXDB2aVYHPtOd+D3AdsDX4vCewQlVT048sANoFy+2A+QDB+pXB9uFQXm7vPpgaPRKJbf8AuWL1avj7363X7k92Tr545pkd29auheHDs3aKasVdRPoDS1R1YtbOascdKiITRGTC0lxOMptMWq2Qnj1zdw4nN6SKiOVyXtU33rCBW/e3O/lk3ryatdeCTHru3wMGiMhc4FnMHXMv0EJEUhW42gMLg+WFQAeAYH1z4JuKB1XVkaraS1V7tc5l0kgyaVOlefnW6JGPZKayMktacredk0+qmgkuizPEVSvuqjpMVduramdgMPCuqg4BxgI/DDY7H3g5WB4dfCZY/65qSJMLrltnsdLukokmjRrBEUfkTtw3brSJsAcMgPr1c3MOx6mMESOs/Hg6TZpYe5aoS5z79cDVIjIL86k/FrQ/BuwZtF8N3FA3E+vAhAmwaZOLe5RJJGDixNwkM40da1ELHiXj5JshQ2DkSIsIE7H3kSOtPUvUqLC5qr4HvBcszwZ6V7LNeuCsLNhWd1LJSynfrRM9EglL35482WrxZ5PSUmjaFE48MbvHdZxMGDIkq2JekXhnqCaTcOCB0KpV2JY4tSVXyUxbt1rN7X79zK/vODEjvuKuamGQ7pKJNm3b2iBTtsX9gw8sB8KjZJyYEl9x/+wzm+LKxT365CKZqazMpls89dTsHtdxCoT4irsXC4sPiQTMn2+zM2UDVfO3H3+81/d3Ykt8xb28HPbc03zuTrTJdjLTjBkwc6ZHyTixJr7inkxar91TyqNPjx6WZZwt10xpqb0PHJid4zlOARJPcf/6a/O5u0smHmQ7mamszMIq27bNzvEcpwCJp7inRMAHU+NDKplp48a6HWf+fEtu8ygZJ+bEU9yTSWjY0ObhdOJBImFZqnWdmenloEqG+9udmBNfce/ZE3bdNWxLnGyRrUHV0lI4+GAfaHdiT/zEfcMGGD/eXTJxIxvJTMuWwT/+4b12pyiIn7hPmmQC7+IeP0pK6ibur74KW7a4v90pCuIn7p68FF8SCZvM4Msva7d/WRm0a2eRN44Tc+Ip7vvuC9/5TtiWONkm5XevTe997VoYM8ZcMvXi97N3nIrE61fuxcLizeGHWzJTbQZV337bJm9xf7tTJMRL3GfPhq++cnGPK3VJZiottToy3/9+9u1ynAIkXuLu/vb4U1JiSUg1SWbavBleeQX697f8B8cpAuIl7uXl0Lw5dO0atiVOrkglM02enPk+//qXhUF6lIxTRMRL3JNJ++f3AbP4UptB1bIym23plFNyY5PjFCDxUcEVK2D6dHfJxJ127aBDh8wHVVVN3E8+2eZLdZwiIT7iPm6c/SP7YGr8qcnMTJMmWWy8R8k4RUa14i4iu4jIhyLysYhMF5HfBu1PiMgcEZkcvHoE7SIi94nILBGZIiI9c30RgLlk6teH3r3zcjonREpK4IsvYNGi6rctLTU33emn594uxykgMum5bwCOV9XuQA+gr4gEU9Jzrar2CF6pEa5+wP7BayjwULaNrpRkErp3h2bN8nI6J0Rq4ncvK4Ojj4ZWrXJrk+MUGNWKuxrfBh8bBi/dyS4DgaeC/cYBLURk77qbuhM2bbLZ7N0lUxwcfrjFvFfnd581C6ZN8ygZpyjJyOcuIvVFZDKwBHhbVT8IVo0IXC93i0jjoK0dMD9t9wVBW8VjDhWRCSIyYenSpXW4BGDKFEsvd3EvDho3ziyZqazM3n06PacIyUjcVXWLqvYA2gO9ReRQYBhwEHAk0BK4viYnVtWRqtpLVXu1bt26hmZXwJOXio9EovpkptJS6+V37pw3sxynUKhRtIyqrgDGAn1VdVHgetkAPA6kRjIXAh3SdmsftOWOZNLC4zp0qH5bJx6UlMD69fDxx5WvX7zYevYeJeMUKZlEy7QWkRbB8q7AScCnKT+6iAgwCJgW7DIaOC+ImikBVqpqBmENdcCLhRUf1Q2qvvKKhca6v90pUjLpue8NjBWRKcB4zOf+KjBKRKYCU4FWwO+D7V8HZgOzgD8Dl2Td6nTmzYMFC1zci4327e1V1aBqaamVfj700Pza5TgFQoPqNlDVKcDhlbQfX8X2Clxad9MyxP3txUtVyUyrVsE778Dll4NI/u1ynAIg+hmq5eWWVt6tW9iWOPmmpATmzjX/ejpvvGEDre5vd4qY6Ir7qFEWBfHAAzYv5nPPhW2Rk2+q8ruXlcFee21b7zhFSDTFfdQoGDrUUtDBoiaGDrV2p3jo2dOSmdLFfcMGeO01GDDAylE4TpESTXEfPtySltJZu9baneKhcWMT+PRB1bFjYfVqj5Jxip5oivu8eTVrd+JLKplp0yb7XFpq9YWOr3S833GKhmiKe8eONWt34ktJiU18/fHHsHUrvPwynHqqTc7hOEVMNMV9xAho0mT7tiZNrN0pLtIHVceNswnSPUrGcaqPcy9Ihgyx9+HDzRXTsaMJe6rdKR46dLDZmf79b5g/3ybAPvXUsK1ynNCJpriDCbmLuQPbkpkaNDBfe/PmYVvkOKETTbeM46TTqJElM82aBePHe0is4+Di7kSdUaPgxRe3fV62zHMeHAcXdyfqDB9uiUvpeM6D47i4OxHHcx4cp1Jc3J1o4zkPjlMpLu5OtPGcB8epFBd3J9oMGQIjR0KnTla7vVMn++xhsk6RE904d8dJ4TkPjrMD3nN3HMeJIS7ujuM4McTF3XEcJ4a4uDuO48QQF3fHcZwYIqoatg2IyFLgi1ru3gr4Oovm5Joo2RslWyFa9kbJVoiWvVGyFepmbydVbV3ZioIQ97ogIhNUtVfYdmRKlOyNkq0QLXujZCtEy94o2Qq5s9fdMo7jODHExd1xHCeGxEHcR4ZtQA2Jkr1RshWiZW+UbIVo2RslWyFH9kbe5+44juPsSBx67o7jOE4FXNwdx3FiSGTFXUR2EZEPReRjEZkuIr8N26bqEJH6IjJJRF4N25bqEJG5IjJVRCaLyISw7dkZItJCRF4QkU9FZIaIJMK2qSpE5MDgO029VonIlWHbVRUiclXw/zVNRP4qIruEbdPOEJErAlunF+L3KiJ/EZElIjItra2liLwtIjOD9z2yca7IijuwATheVbsDPYC+IlISsk3VcQUwI2wjasBxqtojAjHD9wJjVPUgoDsF/B2r6mfBd9oDOAJYC5SGbFaliEg74JdAL1U9FKgPDA7XqqoRkUOBXwC9sd9BfxHZL1yrduAJoG+FthuAd1R1f+Cd4HOdiay4q/Ft8LFh8CrY0WERaQ+cBjwati1xQkSaA8cAjwGo6kZVXRGuVRlzAvC5qtY2OzsfNAB2FZEGQBPgy5Dt2RkHAx+o6lpV3Qz8A/hByDZth6r+E1hWoXkg8GSw/CQwKBvniqy4w3/dHJOBJcDbqvpB2DbthHuA64CtYRuSIQq8JSITRWRo2MbshH2ApcDjgcvrURFpGrZRGTIY+GvYRlSFqi4E7gDmAYuAlar6VrhW7ZRpwNEisqeINAFOBTqEbFMmtFHVRcHyYqBNNg4aaXFX1S3B4217oHfwWFZwiEh/YImqTgzblhrQR1V7Av2AS0XkmLANqoIGQE/gIVU9HFhDlh5rc4mINAIGAH8L25aqCHy/A7EbaFugqYicG65VVaOqM4DbgLeAMcBkYEuoRtUQtdj0rHggIi3uKYLH8LHs6MsqFL4HDBCRucCzwPEi8nS4Ju2coNeGqi7BfMK9w7WoShYAC9Ke2l7AxL7Q6Qd8pKpfhW3ITjgRmKOqS1V1E/AS8N2QbdopqvqYqh6hqscAy4H/hG1TBnwlInsDBO9LsnHQyIq7iLQWkRbB8q7AScCn4VpVOao6TFXbq2pn7FH8XVUt2B6QiDQVkd1Sy8DJ2CNvwaGqi4H5InJg0HQC8EmIJmXKjylgl0zAPKBERJqIiGDfbcEOVgOIyF7Be0fM3/5MuBZlxGjg/GD5fODlbBw0yhNk7w08KSL1sZvU86pa8CGGEaENUGr/zzQAnlHVMeGatFMuB0YFro7ZwE9DtmenBDfMk4CLwrZlZ6jqByLyAvARsBmYROGn9r8oInsCm4BLC21wXUT+ChwLtBKRBcD/ArcCz4vIz7DS52dn5VxefsBxHCd+RNYt4ziO41SNi7vjOE4McXF3HMeJIS7ujuM4McTF3XEcJ4a4uDt5R0QGiMhOs0hFpG0QhldQiMi31W9V6X6DROSQbNsTHLs8F8d1oo2HQjpODRCRb1W1WS32ewJ4VVUzvmGJSIOgAJbj1BjvuTtZQ0Q6BzXVnxCR/4jIKBE5UUSSQa3q3sF2F4jIA8HyEyJyn4iUi8hsEflh2rGmpW1fFtS6nisil4nI1UGhsHEi0jLY7j0R6RUstwrKPWS8f4VraSMipWLzBXwsIt+tsP5YSavLLyIPiMgFwfKtIvKJiEwRkTuCfQcAfxSr4d4leI0JCrP9S0QOSvs+HhaRD4DbK5yzq9gcBpODY+8ftH8bvN8s2+rELxSRx4P2c9P2eyRI/HNijou7k232A+4EDgpe5wB9gF8BN1axz97BNv2xbL3KOBRLJz8SGAGsDQqF/Rs4LwO7arr/fcA/gvkCegLTMzgHQXbkGUBXVe0G/F5Vy7EU82uDWu6fY5mel6vqEdh382DaYdoD31XVqysc/n+Ae4Nieb2wujr/RVV/E6w7Fisr+4CIHAz8CPhesG4LMCSTa3GiTZTLDziFyRxVnQogItOxSQhURKYCnavYp0xVtwKfiEhV5U7HqupqYLWIrAReCdqnAt0ysKum+x9PIPqqugVYmcE5CLZbDzwW9Ox3KIkhIs2wAlx/C0o8ADRO2+RvwTkr8m9guNjcAC+p6sxKji3A08BdqjpRRC7DJgUZH5xrV7JUmMopbFzcnWyzIW15a9rnrVT9e0vfRzLYpqrjbmbb02jF6eBqY9fOSD/Xf8+nqpsD99MJwA+By7AbRTr1gBVBT7oy1lTWqKrPBO6a04DXReQiVX23wmY3YVUyHw8+C/Ckqg7L7LKcuOBuGSdOzMV6qWDCWhfeAS6G/04K07zC+i+AQ0SksVh10hOCbZsBzVX1deAqbLo3gNXAbgCqugqYIyJnBfuIiHSnGkRkX2C2qt6HVQ7sVmH96ViZ3l9WuI4fyrZqiS1FpFOG34ETYVzcnThxB3CxiEwCWtXxWFcAxwXupInAdmGMqjofeB4rhfw8VjERTMBfFZEpwPtAym/+LHBtMIjbBfN7/0xEPsb8+QMzsOlsYJrY7GOHAk9VWH810A5IDZ7erKqfAL/GZtWaAryNjXE4McdDIR3HcWKI99wdx3FiiIu74zhODHFxdxzHiSEu7o7jODHExd1xHCeGuLg7juPEEBd3x3GcGPL/ARIEKxSfM7rQAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "calinskis = []\n", "silhouettes = []\n", "min_cluster_size = []\n", "for i in range (8):\n", "\thdbsca, clusterer = get_hdbscan(data, i+3)\n", "\thdbsca = data.merge(hdbsca)\n", "\tcalinskis.append(metrics.calinski_harabasz_score(data2, data['cluster']))\n", "\tsilhouettes.append(metrics.silhouette_score(data2, data['cluster']))\n", "\tmin_cluster_size.append(i+3)\n", "\tprint(metrics.calinski_harabasz_score(data2, data['cluster']), \\\n", " metrics.silhouette_score(data2, data['cluster']))\n", "hdbsca, clusterer = get_hdbscan(data)\n", "hdbsca = data.merge(hdbsca['cluster'])\n", "plt.plot(min_cluster_size, calinskis,'ro-', label=\"HDBSCAN Ralinski Harabasz Score\")\n", "plt.title(\"HDBSCAN Calinski Harabasz Score\")\n", "plt.xlabel(\"minimum cluster size\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(min_cluster_size, silhouettes,'ro-', label=\"HDBSCAN Silhouette Score\")\n", "plt.title(\"HDBSCAN Silhouette Score\")\n", "plt.xlabel(\"minimum cluster size\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_clustering(hdbsca)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Fazit

\n", "Es sollte deutlich geworden sein, dass es schwierig sein kann, Clusteringergebnisse auf einem Datensatz auf ihre Richtigkeit einzuordnen. Es gibt viele weitere Verfahren, die ebenfalls unterschiedliche Lösungen hervorgebracht hätten. Die Metriken zur Validierung der Clusteringergebnisse eignen sich im Einzelnen nur bedingt und so ist es stets sinnvoll eine Vielzahl von Metriken zur Hilfe zu ziehen und diese miteinander zu vergleichen, um somit den geeignetsten Algorithmus für den jeweiligen Anwendungsfall finden zu können und die Parameter bestens abstimmen zu können. Trotz der genannten Schwächen ermöglichen Clusteringverfahren unter Berücksichtigung der genannten Punkte, auch höher dimensionale Daten in Gruppen einzuteilen." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.2" } }, "nbformat": 4, "nbformat_minor": 2 }