aboutsummaryrefslogtreecommitdiffstats
path: root/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/src/BoxPlot.ipynb
blob: 5104cab55cca72f7c9c96efafe50f7e566f4ab9f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import statistics\n",
    "import os\n",
    "import sys\n",
    "lib_path = os.path.abspath(os.path.join('..','..', '..', 'utils'))\n",
    "sys.path.append(lib_path)\n",
    "from GraphType import GraphStat\n",
    "import readCSV as reader\n",
    "import constants\n",
    "import DistributionMetrics as metrics"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "def getModels(folderName, numberOfModels):\n",
    "    filenames = reader.readmultiplefiles(folderName, numberOfModels, False)\n",
    "    graphStats = [GraphStat(filename) for filename in filenames]\n",
    "    return graphStats"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Import"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {},
   "outputs": [],
   "source": [
    "domain = 'yakindumm'\n",
    "mpc_guide = getModels('../input/{}/MPC/'.format(domain), 100)\n",
    "na_guide = getModels('../input/{}/NodeActivity/'.format(domain), 100)\n",
    "od_guide = getModels('../input/{}/OutDegree/'.format(domain), 100)\n",
    "# nt_guide = getModels('../input/{}/NodeType/'.format(domain), 100)\n",
    "composite_guide = getModels('../input/{}/RealViatra/'.format(domain), 100)\n",
    "composite_no_violations_guide = getModels('../input/{}/Composite_Without_Violations/'.format(domain), 100)\n",
    "# violations_guide = getModels('../input/{}/Violations/'.format(domain), 100)\n",
    "human = getModels('../input/{}/Human/'.format(domain), 304)\n",
    "model_types = [human, composite_guide, mpc_guide, od_guide, composite_no_violations_guide, na_guide]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {},
   "outputs": [],
   "source": [
    " type_map = {'Entry': 0.04257802080554814, 'Choice': 0.1267671379034409, 'State': 0.1596092291277674, 'Transition': 0.6138636969858629, 'Statechart': 0.010136036276340358, 'Region': 0.04467858095492131, 'Exit': 0.0018338223526273673, 'FinalState': 0.0005334755934915977}\n",
    "# type_map = {'EAttribute': 0.23539778449144008, 'EClass': 0.30996978851963747, 'EReference': 0.33081570996978854, 'EPackage': 0.012789526686807653, 'EAnnotation': 0.002517623363544813, 'EEnumLiteral': 0.07275931520644502, 'EEnum': 0.013645518630412891, 'EDataType': 0.004028197381671702, 'EParameter': 0.005941591137965764, 'EGenericType': 0.002014098690835851, 'EOperation': 0.009415911379657605, 'ETypeParameter': 0.0007049345417925478}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "metadata": {},
   "outputs": [],
   "source": [
    "# import rep\n",
    "mpc_rep = getModels('../input/{}/MPC_REP/'.format(domain), 1)\n",
    "na_rep = getModels('../input/{}/NA_REP/'.format(domain), 1)\n",
    "od_rep = getModels('../input/{}/OUT_DEGREE_REP/'.format(domain), 1)\n",
    "rep = mpc_rep[0]\n",
    "rep.na = na_rep[0].na\n",
    "rep.out_d = od_rep[0].out_d\n",
    "rep.nodeTypeStat = type_map"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Helper Functions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "metadata": {},
   "outputs": [],
   "source": [
    "def calculate_ks(dist1, dist2):\n",
    "    value, p= metrics.ks_distance(dist1, dist2)\n",
    "    return value"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "metadata": {},
   "outputs": [],
   "source": [
    "def mkdir(path):\n",
    "    if not os.path.exists(path):\n",
    "        os.makedirs(path)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Plot Config"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "metadata": {},
   "outputs": [],
   "source": [
    "labels = ['human', 'combined', 'mpc', 'out degree', 'combined_nv', 'node activity', 'node type', 'violations']\n",
    "output_path = '../output/{}/'.format(domain)\n",
    "mkdir(output_path)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Draw diagrams"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "metadata": {},
   "outputs": [],
   "source": [
    "def drawBoxDiagram(title, target, types, distance_func):\n",
    "    distances = []\n",
    "    for distributions in types:\n",
    "        distances.append([distance_func(target, distribution) for distribution in distributions])\n",
    "    fig, ax1 = plt.subplots()\n",
    "    fig.set_size_inches(5, 4)\n",
    "    ax1.set_xticklabels(labels, rotation=45, fontsize=15)\n",
    "    #plt.title(title, fontsize=20)\n",
    "    result = plt.boxplot(distances)\n",
    "    print(result['medians'][4].get_ydata())\n",
    "    plt.savefig('{}/{}.png'.format(output_path, title), dpi=500, bbox_inches=\"tight\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.03006364 0.03006364]\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAVMAAAFBCAYAAADKVUzkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO2de3hdVZXAf6tJmvQJpRSRPqBCkZSOgIbKKIIVpUWHhzMytPgoEuh0RiKKCpUgj2rAIjIyDE5FWhTQ8PCBFdGiEGSioi2iQFsetSANdaC2tUihJW3W/LH2bU5Ob5qb5tycc3PX7/vOl3v2eWTt81hn7bXW3ltUFcdxHKdvDEpbAMdxnIGAK1PHcZwEcGXqOI6TAK5MHcdxEsCVqeM4TgK4MnUcx0mAyrQFiLPvvvvqQQcdlLYYjuMMMB555JG/quqYYp0/c8r0oIMOYvny5WmL4TjOAENE/lzM83sz33EcJwFcmTqO4ySAK1PHcZwEcGXqOI6TAK5MHcdxEsCVacZpbm5mypQpVFRUMGXKFJqbm9MWyXGcPGQuNcrppLm5mcbGRhYtWsSxxx5La2sr9fX1AMyaNStl6RzHiSJZG8+0rq5OPc/UmDJlCtdffz3Tpk3bWdbS0kJDQwNPPPFEipI5TukhIo+oal3Rzu/KNLtUVFSwdetWqqqqdpa1t7dTU1PDjh07UpTMcUqPYitT95lmmNraWlpbW7uUtba2Ultbm5JEjuN0hyvTDNPY2Eh9fT0tLS20t7fT0tJCfX09jY2NaYvmOE4MD0BlmFyQqaGhgVWrVlFbW0tTU5MHnxwng7jP1HGcssB9po7jOCVAQcpURGaIyFMislpE5uXZPldEHheRP4hIq4hMjmz7fDjuKRGZnqTwjuM4WaFHZSoiFcANwEnAZGBWVFkGvquq/6CqRwJXA9eGYycDM4HDgRnA18P5HMdxBhSFWKZTgdWqukZVXwduB06N7qCqL0dWhwE5R+ypwO2quk1VnwVWh/M5juMMKAqJ5o8F1kbW24C3x3cSkU8AFwCDgfdEjn04duzYPMfOAeYATJgwoRC5HcdxMkUhlqnkKdslBUBVb1DVg4GLgEt6eeyNqlqnqnVjxhRtihbHcZyiUYgybQPGR9bHAet2s//twGl7eKzjOE5JUogyXQZMEpGJIjIYCygtie4gIpMiqx8Angm/lwAzRaRaRCYCk4Df9V1sx3GcbNGjz1RVt4vIecBSoAJYrKorRGQ+sFxVlwDnich7gXZgEzA7HLtCRO4EVgLbgU+oqo/Q4TjOgMN7QDmOUxZ4DyjHcZwSwJWp4zhOArgydRzHSQBXphmnoaGBmpoaRISamhoaGhrSFslxnDy4Ms0wDQ0NLFy4kCuvvJItW7Zw5ZVXsnDhQleojpNBPJqfYWpqarjyyiu54IILdpZde+21XHzxxWzdujVFyRyn9PAJ9coYEWHLli0MHTp0Z9mrr77KsGHDyNp9c5ys46lRZUx1dTULFy7sUrZw4UKqq6tTkshxnO7wOaAyzLnnnstFF10EwNy5c1m4cCEXXXQRc+fOTVkyx3HiuDLNMNdffz0AF198MZ/5zGeorq5m7ty5O8sdx8kO7jN1HKcscJ+p4zhOCeDK1HEcJwFcmTqO4ySAK1PHcZwEcGXqOI6TAK5MHcdxEsCVqeM4TgK4MnUcx0kAV6aO4zgJ4MrUcRwnAVyZOo7jJEBBylREZojIUyKyWkTm5dl+gYisFJHHROR+ETkwsm2HiPwhLEuSFN5xHCcr9DhqlIhUADcA7wPagGUiskRVV0Z2exSoU9VXReTfgauBM8K211T1yITldhzHyRSFWKZTgdWqukZVXwduB06N7qCqLar6alh9GBiXrJiO4zjZphBlOhZYG1lvC2XdUQ/8NLJeIyLLReRhETltD2R0HMfJPIUMDi15yvIOgioiHwHqgOMjxRNUdZ2IvAl4QEQeV9U/xY6bA8wBmDBhQkGCO47jZIlCLNM2YHxkfRywLr6TiLwXaAROUdVtuXJVXRf+rgEeBI6KH6uqN6pqnarWjRkzplcVGGiISK8Xx3HSpxBlugyYJCITRWQwMBPoEpUXkaOAb2CK9KVI+SgRqQ6/9wXeCUQDV04MVc279LTNcZx06bGZr6rbReQ8YClQASxW1RUiMh9YrqpLgK8Aw4G7gqX0vKqeAtQC3xCRDkxxfzmWBeA4jjMg8DmgSgQRcSvUcfqAzwHlOI5TArgydRzHSQBXpo7jOAngytRxHCcBXJk6juMkgCtTx3GcBHBl6jiOkwCuTB3HcRLAlanjOE4CuDJ1HMdJAFemjuM4CVA2yrS5uZkpU6ZQUVHBlClTaG5uTlskx3EGEIUMDl3yNDc309jYyKJFizj22GNpbW2lvr4egFmzZqUsneM4A4GysEybmppYtGgR06ZNo6qqimnTprFo0SKamprSFs1xnAFCWQzBV1FRwdatW6mqqtpZ1t7eTk1NDTt27Ej0fxULH4LPcfqGD8GXALW1tbS2tnYpa21tpba2NiWJHMcZaJSFMm1sbKS+vp6Wlhba29tpaWmhvr6exsbGtEVzHGeAUBYBqFyQqaGhgVWrVlFbW0tTU5MHnxzHSYyy8JkOBNxn6jh9w32mCeF5po7jFJOyUKbNzc2cf/75bNmyBVVly5YtnH/++a5QHcdJjLJQphdeeCEVFRUsXryYbdu2sXjxYioqKrjwwgvTFs1xnAFCQcpURGaIyFMislpE5uXZfoGIrBSRx0TkfhE5MLJttog8E5bZSQpfKG1tbdxyyy1dkvZvueUW2tra0hDHcZwBSI/KVEQqgBuAk4DJwCwRmRzb7VGgTlXfAnwPuDocuw9wGfB2YCpwmYiMSk58x3GcbFCIZToVWK2qa1T1deB24NToDqraoqqvhtWHgXHh93Tg56q6UVU3AT8HZiQjeuGMGzeO2bNnd8kznT17NuPGjev5YMdxnAIoRJmOBdZG1ttCWXfUAz/dw2OLwtVXX8327ds5++yzqamp4eyzz2b79u1cffXV/S2K4zgDlEKUqeQpy5vwKCIfAeqAr/TmWBGZIyLLRWT5+vXrCxCpd8yaNYvrrruOYcOGATBs2DCuu+46T9p3HCcxCukB1QaMj6yPA9bFdxKR9wKNwPGqui1y7Ltjxz4YP1ZVbwRuBEvaL0CmXjNr1ixXno7jFI1CLNNlwCQRmSgig4GZwJLoDiJyFPAN4BRVfSmyaSlwooiMCoGnE0OZ4zjOgKJHy1RVt4vIeZgSrAAWq+oKEZkPLFfVJVizfjhwl4gAPK+qp6jqRhH5IqaQAear6sai1MRxHCdFCsozVdV7VfVQVT1YVZtC2aVBkaKq71XVN6jqkWE5JXLsYlU9JCw3F6caPePdSR3HKSZlMWqUT1viONkitGB7RdYH+imLUaOmTJnC9ddfz7Rp03aWtbS00NDQwBNPPJHo/yoWPmqUUw4U8zkv9qhRZaFMfdoSxykNSlmZlsVAJ7W1tVxxxRVdfKZXXHGFT1viOE5ilIUynTZtGldddRUbNmwAYMOGDVx11VVdmv2O4zh9oSyU6d13383IkSOpqalBVampqWHkyJHcfffdaYvmOM4AoSyUaVtbG3PnzmXYsGGICMOGDWPu3Lk+BJ/jOIlRFqlRAN/61rf47ne/uzM16swzz0xbJMdxBhBlYZlWVlaybdu2LmXbtm2jsrJsviWO4xSZstAmO3bsYPv27UyfPp329naqqqpKKi3KcZzsUxaW6dixYxk0aFDev44jIr1eHCdOWVim0Nl9LZcQ7C+Ek6O7JHHvKOH0hrKwTF944YWdvZ9ySrSqqooXXnghTbEcxxlAlIUyHTx4MPPmzePZZ59lx44dPPvss8ybN4/BgwenLZrjOAOEsuibP2jQIEaPHs3w4cN5/vnnmTBhAq+88gobNmygo6Mj0f9VLLzJ2f/4Ne9/vG9+xhk7dizt7e1Ap3+svb3dA1CO4yRGWShTgKFDh7J48WK2bdvG4sWLGTp0aNoiOY4zgCgLZbpu3ToWLFhAQ0MDNTU1NDQ0sGDBAtat22VeQMdxnD2iLFKjamtrGTduXJeBoFtaWnwIPsdxEqMsLNPGxkbq6+tpaWmhvb2dlpYW6uvraWxsTFs0x3EGCGVhmebmeWpoaGDVqlXU1tbS1NTk8z85jpMYZZEaNRDwNJ3+x695/1PKqVED1jIdiLMfOo6TXQrymYrIDBF5SkRWi8i8PNuPE5Hfi8h2EflQbNsOEflDWJYkJXhPqGrepadtjuM4e0KPlqmIVAA3AO8D2oBlIrJEVVdGdnseOAv4bJ5TvKaqRyYgq+M4TmYppJk/FVitqmsAROR24FRgpzJV1efCttLom+k4jpMwhTTzxwJrI+ttoaxQakRkuYg8LCKn5dtBROaEfZavX7++F6d2HMfJBoUo03yRnN44GCeECNqZwNdE5OBdTqZ6o6rWqWrdmDFjenFqx3GcbFCIMm0DxkfWxwEF98NU1XXh7xrgQeCoXsjnOI5TEhSiTJcBk0RkoogMBmYCBUXlRWSUiFSH3/sC7yTia3Wc/mafffbp1dQkvZnKZJ999km5dk6a9BiAUtXtInIesBSoABar6goRmQ8sV9UlInI08ENgFHCyiFyhqocDtcA3QmBqEPDlWBaA4/QrmzZtKmZSeFHO65QGZdcDqlR7tZSq3FmjyD1s/B71kVLuAVUWA504jpMe5eJaGbDdSR3HyQbl4lpxy9RxHCcBXJmmyEBr/vRGvmi9HGcg4M38FBlozZ/u6uKBGacccGXqlBV62Ui4fK/indspW1yZOmWFXPFycVOjLi/KqZ0SwH2mjuM4CeDK1HEcJwFcmTqO4ySAK1PHcZwEcGXqOI6TAK5MHcdxEsCVqeM4TgK4MnUcx0kAV6aO4zgJ4D2gHMcpKuXShdeVqVN2FGsQmFGjRhXlvKVOuXThdWXqlBW9eal9tCunN7jP1HEcJwFcmTqO4ySAK1PHcZwEKEiZisgMEXlKRFaLyLw8248Tkd+LyHYR+VBs22wReSYss5MS3EmP3ky30tspV7I026Tj9IYeA1AiUgHcALwPaAOWicgSVV0Z2e154Czgs7Fj9wEuA+oABR4Jx25KRnwnDQbadCuOkwSFWKZTgdWqukZVXwduB06N7qCqz6nqY0BH7NjpwM9VdWNQoD8HZiQgt+M4TqYoRJmOBdZG1ttCWSH05VjHcZySoRBlmq/dVWgbr6BjRWSOiCwXkeXr168v8NSO4zjZoRBl2gaMj6yPA9YVeP6CjlXVG1W1TlXrxowZU+CpHcdxskMhynQZMElEJorIYGAmsKTA8y8FThSRUSIyCjgxlDmO4wwoelSmqrodOA9TgquAO1V1hYjMF5FTAETkaBFpA04HviEiK8KxG4EvYgp5GTA/lDmO4wwoJGt9j+vq6nT58uVFO3+W+lsXUxY/d9/JkiylTFaeFxF5RFXriiIIA6AHlCeQO46TBUp+1ChPIHec7FMOwx6WvDJ1HCfblMuwhyXfzHccx8kCbpk6vaZcpqFwnN7gytTpNQNtGord+fO621aqTVGneLgyTRG38LKBK0YnCVyZpshAs/Acp5zxAJTjOE4CuDJ1HMdJAFemjuM4CeDK1HEcJwFcmTqO4ySAK1PHcZwEcGXqODGam5uZMmUKFRUVTJkyhebm5rRFckoAzzN1nAjNzc00NjayaNEijj32WFpbW6mvrwdg1qxZKUvnZBm3TB0nQlNTE4sWLWLatGlUVVUxbdo0Fi1aRFNTU9qiORmn5Efaz8oo3lk7v597z6ioqGDr1q1UVVXtLGtvb6empoYdO3akJle5UORnq6gj7Zd8M9/7tztJUltbS2trK9OmTdtZ1traSm1tbYpSOaVAyStT79/uJEljYyP19fW7+Ey9me/0RMkr01KnHKZzKCVyQaaGhgZWrVpFbW0tTU1NHnxyesR9pimdu7eUiyxZqqfT/5Syz7SgaL6IzBCRp0RktYjMy7O9WkTuCNt/KyIHhfKDROQ1EflDWBYmK77jOE426LGZLyIVwA3A+4A2YJmILFHVlZHd6oFNqnqIiMwEFgBnhG1/UtUjE5bbcRwnUxRimU4FVqvqGlV9HbgdODW2z6nAt8Pv7wEniM+T7DhON4hI3qWnbVmmEGU6FlgbWW8LZXn3UdXtwGZgdNg2UUQeFZFfisi7+iiv4zgDAFXt9ZJ1Conm5/skxGvW3T5/ASao6gYReRtwt4gcrqovdzlYZA4wB2DChAkFiOSkjWchOE5XCrFM24DxkfVxwLru9hGRSmAvYKOqblPVDQCq+gjwJ+DQ+D9Q1RtVtU5V68aMGdP7Wjj9yp5YFIXuu3HjxpRr5zh7RiHKdBkwSUQmishgYCawJLbPEmB2+P0h4AFVVREZEwJYiMibgEnAmmREdxzHyQ49KtPgAz0PWAqsAu5U1RUiMl9ETgm7LQJGi8hq4AIglz51HPCYiPwRC0zNVVU3PRynSEyYMKFL0MbdZv2HJ+2ndO7ekiVZekspy15KTJgwgbVr1+683rm/48eP5/nnn09bvNTJRNJ+1ukulaKviwdDnFJi7VpLurnmmmvYsmUL11xzTZdyp7iUfN/83lo8biU5A5lLL72UCy64AIALLriAzZs3M3/+/JSlKg8GhGXqOI6xdOnS3a47xaPkLVPHcTr57W9/y5AhQ9i6dSs1NTVs3bo1bZHKBrdMHWeAcOKJJwLsVKC5v7lyp7i4Ms0YA7HPstM/vPDCC5x22mlUV1cDUF1dzWmnncYLL7yQsmTlgTfzM4YHx5w9ZdWqVTz66KN5569yio9bpo4zQMjNXxXF56/qP0o+ab+3eGpU/+PXPAGKNGlk5/k3F/f8GcBnJ3UcB7ni5Z532kNGjRrFxsuLdvqywZv5jlMC9Ga8z1zPvWgPPh+pq/i4MnWcAcamTZu6/HX6B1emjuM4CeDK1EkMz5HNBlVVVbS2tnZJkXKKjwegnMTwiH02aG9v59hjj01bjLLDLVPHcZwEcGXqOAOMioqKLn+d/sGVqeMMECorzWu3Y8eOLn9z5U5xcWXqOAOE9vb2XRRnZWUl7e3tKUlUXvgny3EGEK4408MtU8dxnARwZeo4jpMArkwdx3ESoCBlKiIzROQpEVktIvPybK8WkTvC9t+KyEGRbZ8P5U+JyPTkRHccx8kOPSpTEakAbgBOAiYDs0Rkcmy3emCTqh4C/CewIBw7GZgJHA7MAL4ezuc4jjOgKMQynQqsVtU1qvo6cDtwamyfU4Fvh9/fA04Q63h9KnC7qm5T1WeB1eF8juM4A4pClOlYYG1kvS2U5d1HVbcDm4HRBR6LiMwRkeUisnz9+vWFS78bfNANx3H6k0KUaT4tEx/Rort9CjkWVb1RVetUtW7MmDEFiNQzhQym293guo7jOL2lEGXaBoyPrI8D1nW3j4hUAnsBGws81nEcp+QpRJkuAyaJyEQRGYwFlJbE9lkCzA6/PwQ8oGbqLQFmhmj/RGAS8LtkRHccx8kOPXYnVdXtInIesBSoABar6goRmQ8sV9UlwCLgVhFZjVmkM8OxK0TkTmAlsB34hKruKFJdHMdxUqPspnp2HKc8KfZUz94DynEcJwFcmTqO4ySAK1PHcZwEcGXqOI6TAJkLQInIeuDPRfwX+wJ/LeL5i0Wpyg2lK3upyg2lK3sx5T5QVZPpFZSHzCnTYiMiy4sZ0SsWpSo3lK7spSo3lK7spSo3eDPfcRwnEVyZOo7jJEA5KtMb0xZgDylVuaF0ZS9VuaF0ZS9VucvPZ+o4jlMMytEydRzHSRxXpo7jOAngytRxHCcBXJmWISJSlbYMjjPQcGVaZgRF+lsRWZC2LI6TNiIyKPytFJEhfTmXK9PdILFZ9uLrJUo1cB/waRG5JE1BJJD7naYs/cVAn+pcRP5ZROalLUehqGqHiFQDPwWOhj1/Fnscab9cEZGK+KwAOgDyyFT1FRH5EvAKcLmIdKjqlf0th4gMAy4A1orId1S1vb9l6G9EpDLMXDEU+CgwAZvGZ42qPp6udH0nWHYfBA4TkZtV9cW0ZSoEVd0mIrXAHOChPX3P3TLNg4gMyilSEblMRG4SkW+KyC7TVJcSOV+pqr4C/Ay4BfiSiHyqn+UYAfwWmA4MIf8stgMKEZGgSEcAjwCfxeZLuwm4XkTOTlXABFDV14DvAlOAd0FnMzqrRFoKXwaOEpGj9/hcA8DYSpTw0Gv4fSdwHPAscCDQDpwDtKjq9vSk7D2xet0KvAl4HagDhgFfUNWmfpCjCvgxMBiYC/xJVXdE5RuohJl7m4F9gAZVXSkiBwF3AYcA71DVVelJWDjx+5WzusPvm4FjgHdnzTqNyhkrnwT8CrhBVa/Yk3Nn+qvR38QUzv6Yf/FkzII6GngauA2YHl6MkiFSr8uBk4DLgVOxj8XXgC/2kw91f6AW+A7wTHeKdID6UKuAN2OtgqdD2ZHAW4EvquqqUnmuIs/T4SIyOqagfgTUAO8O+2RGz4TWwXAROSc07XPlzwD/CcwVkcl7enJfYgtwFfAQ1hQdHSkfjs3S+iLwfqAybVl7WS/BHvR7YuX7Ak1AB3BBkWV4Z/g/R4T1ytj2ocDgtK9VEeo9CDgI2AJ8MJR9JFyLz0eer08Dk9KWt8A6HY2NPfwUZnRMiGz7BbAssi4pyVgR/lbn1oF/Dtf9UWwsgIMx5f/mUJ+zoscWumTmi5EVRGQvYBxwAFCjqhtCeaWar/FfgD9gN+HkUrEkItbfZmBYiGACoKp/Bb4NPAdcE6zXpP9/7llbCawF/j0SkKkI+1QCZwNnlLplGpU/+OA7VPU54GHgHBGpx675F1T1qrDricD7gL36W949QVWXAZ/H6nQHsEhEPhk2XwLsJSKfDvv2uwsn+Kc/JSJ1akGmUcAS4AlgMvAt4L1YS+E2YBvwGHC+iAzWXk5L78o0hqpuBi4E7gFqReS/Q/n2mEJtAxZgroDMEW9aRR7mx4GpWPN+50uvqk9jgZGVwCdEZN+E5MgpldzfrZh1Pw2oD9d0R5D3UODDwP5pvHxJEeqkkdzF6LX8Dhag+SbQpKpNIjJIRA7Fshu2AL/vf6l3T+zjUBUyElDV76rqbOBMzKr7qog8AHwA+zgfGf1w97OsIzAXyu9E5D3Y810DbFbVJ1X1OsxXfR3WInocy7A4AnsOe+duSrupkObCbsx44I3A9cAa4OpIeWX4O4xIsyZLS7RewCTgcOCNkbKlmHV4bKQ+Y4GfAKcDIxOSYzhmwd8D3AqcEsr3AR7Emoc3YkGwuZiFs5wSc5/ku/bhRb4Hs3RewpTnW8K2L4Xn6meYJXpRqPsfIvdjUNp16aZ+Hwr1+l9M+Q+NbKsJz9qSsL0jLIf1s4z7RX4fCjyABVt/G7tHFbHjPggsBDYCP+71/0375qT4UEQVzkXANzB/4unAmFA+Dvjv8OB/Jd+xWVuiLyGW+rQSy0JYDnwtlB+A+bQ2A/8TXu67gReweXKSkGMIsCook/uC8uzAnPzVwCjg6+HadoS/S4CqrF/jAuo+FGtKtgCfw/IXVwF/xFo1g4B/wxLFNwK/BhZFFGlmPiZEfJ2Yr3FrUKb3hefqlvgzgxkaU4Ni+nw/yzs5XOtjcvKHZ++1sEzd3TXGcu9PAF4lfPwL/t9p36wMPCC3A89jlsMSrGny3wRLLqJQnwK+nrbsvajjN0O9ZgKnAf8BbMdSc3Iv7VeA34Q6txKCQgn870Hh/94PHBzKaoBzg+K8NlI2ArNM35i7L1lSJntY/3rgSaw5n7OCPhvq/uHYvhPo+mHPZN0xV8W/A41B4VRi2SBbgDvjCjXfM9FPch4NzAm/cx/mYzF/9H1Bob59d9caeAP2MbywV/877ZuU8gOyAHgm8rU6Lzzwz2HNz/1D+VjMWf0okSZEVhfMD/RHLFo8OJS9BbMqbsMCa7l99wH2JrmmfU14aH8A3BkpHxT+zgnX+J+6OT6Tzdse6hxvLn4FeDyy/pHwIYtG7SfE60tKEe8C6vduzJhYDXw0tu2kiEKNRvNTrQvW+lkCnBspOzqiUI+JlO8L1EXWB2Etqv/u1f9M+0aleLEPCoplVlifFx74fwX+KyiehRGFekDud9YXzG/1d+DksH4osAHrnTI0lE0v4v//TVCYjwEjQpmEh3QoZgV/K6yXnPKM1TX3kRgFHBV+n4+5TCqxZn0HMC9sG4x9xP8tbYXTizqeFu7ZK3SmDQ2K1P0kzGX0Q2BiinJWRX4fEmReBXw8Up5TqK9g1upk4JfAD8L2CuBjwP8Bh/fq/6d9o1K88AJ8HBiDpUe8CJwT2f4I1ky+g0jwphQWLCl+MxZR3Qvzy90RUWwnYv7hRPMZ2dV90gF8Ehge2+8B4O60r1NS9cWs8RcxX+JwYAYW4LsL8yt+LnLM4ZiPdF7a8veyrtOxcQTagBMi5TmF+oFwv09KWc5hwBnh9z8GBf90TKFOxazWDuBPWIszqogPZg9iB6nfpH66wLsNZmA5ccuBcZGylnATfpNVZbq7emEBjVewJtiinEILH49bw4u/d0JyDMcyH74ZVRLhgd2CWWo5Rf5mzJ94fdrXr491zimRSiwifzeRqDVwbXhZf0qn/70uKNLWnp7JrCyxD+RJmBX3B+A9ea7FgRmQ90vhuueS9I8J9yauUA/AWg3n0unXrurT/0678v1wcaPO/Q9ggZE3xvZZBDwXWR+N+YDeSaQHVJaWWL3mYLmxsyNlbwPuxRKRT8J8SEdhzeuXgMkJyTEE888+hfUY2xr+735h+4/Cw70CsxIeImIJUCJN3W7qXh0+TL8B7s1zX76KWahPYLmjK8K+JZWxEFOoH8Ci438EpnWzf2quGyy+8Se6pjNOzadQY8f1+V6kfqP68SLfQaelthkLNu0bth0F/A0LmnwSa6K+CIxNW+5u6hJ9uL8HbMKaXx1Y03J82PauUKcdWKBtZVgSidqH/3FkeFDHY4Gs44H1mAVzQNjnO0G2mwlNsFCeych1L679AVg+5V+BByPl1ZHfJ4Vn7QrMH5+zgkqq7nkU6v2YP7JovvfeyBQpq8GCx78jEuMICvWHQeb/KIo8ad+kfrr5JwbL4H2Yz+q/goL5Ap0W1OlYFL8N6wnxlrTrkIrREr8AABo0SURBVK9OdI3+1mLW4FRsFKiTsEDTz4kEAkL9P4blzyUSRMMG7RiJRap/EFUOQZ64Qr0bc+rPpkQssjx1jjbt9wq/x4UP2GvApZF9ux1fICv1xwJhX+7N8xf5fXJ4p87sZ5m7WPXkaZpjHVW2EkttwoJPD2HGUuItotRvaJEueDxV5UTgP/M8SB3ApcCoUDYMmEhCvsRi1SeUzcf6dn+Prr1Q/jEo1PuAQ4skzwjMp/xkUOY/I9ZzJyjUF7FgUy4N6F7MipsblbkUlki9BmMdHi6js2UzDrN6VgCf2d19y8qCuSiuCu/Axb04LqpQD+pnmeswqzPnf6/CXEbfB2bG9v0KZhQdHiuvjdzLRBVq6je1CBc8erPnYwn3DwXFU0FXyy6nUBsJFlTWlqDgfwi8K1I2OSixdcB3IuW5r3VOof6EhHyjkf8xCLN8HwoP7A/CNbw8uk/4e3TY9vXItl9hfbj3Svva9qLOuQ/FYGwIwRcxP+gFwD5h2wTM+n4iplAz6xPG3DKXEFppvThOdrdeRHm/SMT6D2UfJ8xWgPlyj8M+9odjsYH6sF9V7LjE/bqp39CEL3ZUUd4eLubvMcfz33IKKbbfleGF/xwZtCSwHNFbgWGx8hOCUnsd+Nf4NcCimB3YV7tPUcrIuYdgroRv0plT+cbwkHcAl+SRozZ+XQk+3VJY6Ex/GoFZOs3hmVqDdTmMK9QfYsGZy9OWfTd1ij7/EzF/bgdwfm+vS0ryD8FcdOPC+v7AP2FZEuuCUn0b1tV1DaHlWXS50r6xCV7gqEU6IlzIY8LX961YoGAt8LY8D9RlJGzBJVSnLs0RzIL+SGT78VhzfhVhjMzYcUcDb07q+tI5CMSzRCxLYD+sFRBXqNF7UpHFj1WBda/AUsmWY/64vcJyT7gecYX6EPYBzKxVGmT9MBZIuo/OQUl67Esfu69z6Caqn7Cs0V5752KdUm4kFiTGLNVcfu+qUKe8EfzEZUz7hhbhol+LNSMfpWv3tkl5FGrJvNxY5HgDllrzz5HyEzCfZV6FmrAMh2EjTnUA/xLbth9m4WwHFqR9vRKu9/DwPF2VZ9tPsAyRz9DpQ31D/EOYtQULxu7AxiN9GzYk4jfjH8Q8x0UV6SfC/h8pkox7EVpAYX1kTnGHj/dT2Bxau+SBY4O334f56fvlPU/9piZwwaMW5hCsW+hjWFR+7+g+QaE+hJn+b09b9h7qJfHf2MAZjweF+i+R7TmF+hgxR3wR5JqINaeeAWbEtu2HjQr1q6wqkT19xrCUsqh/Ojfmwajw8V4JNBDp7VWMD1pSzxUWfHqMSBOYri2Mz3Z3bPjdEJTx2UW85h/ELOd6rGXURlf/exPmwruJzm7fgyJ13Dfyu+ipaKnf3AQvfi4FZ29shKRNwC/yPESHhIfoCSL5gFlZwsOwu55NbwkvblyhTgtlD2OWVNGUGdbd7v6g2OMKdVTkWpecQu1OAWKuoGfY1SIfjflIn8YCU0eXQt2xOcCeJbgnIuUTgWVBoV4YKc+nSM8psoyTsQDnk8BfsBjBGLp2/Wyi00LNKdT4VDj9EyBL+6YmdNEvw5q5k8P6SKwJ8gKRQV4jL/mbyEDXt1gddslLDA/8LVjQ4ww6uyUe0Y1CPY5+GrA6fJTuDx+mXRK3s65MuqlTLmpfjTV930Hn2LaHYhkUvwQ+FDnmMCzoNC58oG9Pux4F1vWjROajim27BnMpdRBrwQGfwlw59f0k59FYZ5vXiKRw0bVjRFNQuLv4UPv1mqZ9UxO64J/AggO/jCjUvbCeJ235FGqWFixf7n+Bb0bKvhce6KVY/mIbFvCYFLbnLNT/pZ8TpyMyHoz5pV6Mv3SlttDpChqBWfdrw/VfjwVZBmO9vR7GhqK7E/PPrwB+F479AZHWUNoLXa3JvbFm75BI2T3huTom8iEZggUaLwRqY+ebjvUenFNkuXMpfoLliN+K+T5XEum9FFOo84GXSXEAmdRv+J5e6Dzls7GRnv43j0J9Fngobdl3U6cxWK+svwarYBiWGP6uyEN+XvhgtNDZXfRwrPlzHyGROQXZ3xxkL5lg3m7qUo1Zn7/AAjRHABcTZggI+9RiWRWPh+ft9vAxrAzH3kTEb5eFBZuf6ZfhWfkp8KXIc/dg+Gh8AbNWPxfWo0HOaJrbu4ssa+55H4oZSQeF9SnhY7UK+ERk/2iT/6w0n8PUb3QfLvqbiPm3wsXMKdTDQtlIbJTzFWQ4vxHL1/wSlg97X6hHfECWszH/0LzIA34YYTT7tJdSUqjk8ZdjTconMf9z7vqeEJTpv8X2lciLPxrrFLKRfp7vqIB6/is22M1Xw3Pz5SDn98PHoxqbsmc11pR+nn6eaiQia7R18Gj4YF1Ip6U6Jci9Cvj3ULY/loVwfNrPYeo3ew8v+hcxK+6YuAWA5aD9JXxxDw1lI+mnxN0+1uuAoFD/TCSXk4g/FRvWLjcxWGasn1JagH/ALMh4M/b0oDhz4zXE57XfGzgydsx0zBWzJr4t5TpKkHcp1toZGdn2RHi+DoyUHYK1MqLDCPZ7NkJQ7r/Kvb90Zk3k4h2HB4X6HOYK+zUWGEx94JjUb3qBFzhugR6IWZpPdKNQF2HO9ceyZinkqxddfVsTgkLdAdyYZ98rsMhxyXTHzNqCJdlvBBYTGb8As0zXYdN0fDimSAWz7G6NX3tgFv3cT73Aeg4PH+Zo4OaeoEiPCOtTujk2lQ81NuzlaiKDTBPLDglK/xrMdXEbGRnSsJKMIyKDVfX18Hs09qX6s4hMx5zSNwMfF5FlqrojHLYeU6SbsNFjMoeIVETk3U9ENgAdqvq8iCzEXt5Pi8jrqnoeoKH+uQFEXk9H8tJHVa8N86H/B1ApIleq6pNY83EjpjDfgCWvXyUigzAraQb2XL0MICKDVLVDVZtTqchuCPUbjn2UXwllP8Usu5NV9Y8icigwX0SuVtWHo8dr0E4pMAYzltZFZRERCX+rVPUpEWkEFGgP5ZWquj0lmXcKmrkFiyi+I1Z2I/aw/x/Wn74GG0Pzj6H83eG44ZiC/TAZtd7oaol+PdThl5hvd1goH4+lfHRgTZl7sTmcNpHB4QFLZaFrt8RLwrPzbUK3W0xprsbGdXg/lsg+A4viL6PTT5oZF8vuZMEsuC3hGVoNvDWUD8ZmQPhNlp4nLPC3jRAAi70rQ7CA4KTYMZm4F6kLkO/BwBziLwInhrLrsKbJldgoUK9h/pIDwrIci0C2YEO+bSYjQZke6tqENcO+GGR/Bmu25IYYG4c1+Z/DfMRHkbH82FJa6AxkjMKa+N/FrLYOLJ83F7Q8FHMjrQov9qNYwngmmpOxOkWVzVRs4OYZkbJarHdcB2Fm0fCBqA/vyXlp3otutt2HjZY/PlImoS6PEYJPWVtSF6Cbi/nmcEEfDw/Hl4FTI9unY02tH9GZVP01LDjzA3o5q2BaDxBmldZH1i/Dosl3RRTqgVg+4xpC329f+nQParA5jO7HZt2cGu7DxphCHYENkHMa1hNn58DQadehm3p9HBv8Y1NQnLfR2StwGjaGQEd4r5Zj+aVRX2q/WXd0zWk9A+sIcBIhBxYbt3RFeOZPxzpQnIKlnv06Sx+zLvVKW4DdXPBcl8UVWNM+5zDPWRcnBIV6T1TJsJsRzlOuT3RuoGOw3krX0nUgh2osh/FJLCk8p1DH5z4avvT5PhwTFM77Y+WNofwWuhlpiwz2tQ9yjcaCsZ8Ejg0KalNQnBPDPkOw7IQFWHfQXSbE6ydZc+9vrnPEk1gaYAc2KWNt2P42LBPhNazH1Wqs9Za51sHOuqUtQA8XfhKdw4PNit984D1Y8/5BOpN7M+E/2U2d7qKzq14Hlv8XnfIjp1CfwJpnw9OSdSAuWI+aDuCQsB7tEfQ/dM5VlTfKnbUl1GceNjD12Ej5O+icwqbbKb3T+EAExf4w5pJ7UyhbhgXL7ox+zDCr+qTwEcx26yBtAQq48G/C8s6epasvKHdhZ2CJxuPSkK8A+aMW6dlYsGkW5mh/BPOTnkXX0a8GY77S32W1XqW6hBf5eWBRtCz8PY7OpnK3w9ClKPvFwD+F34L5Ph/A4gu/juyXa0bnZly4lwylCGKWcQudgzv/EGvSnx8U6u10k7ObhvIvuF5pC1Dgxc81+R/rRqFmfj4hLLvgUuCKSNkbMB/Q490o1ExOM12qS1BAg7EBZFYCF8W2fwizSs8iQ83IIPcBwXqri23LpQh2EBmjIfJuHBM+EL8mI9ktmJ/6i+H3f2EB1qlh/RKsWX8jYdzhUllSF6AXNyA3StHjhCh/qSxYj5tcs/6qUJZLQN4vPOhPYDOIZvbLWyoLPTQDsa67dwSFejMWYDoNSxOKdpTIhEKNPCtDw99pdJ2q5jisOf80+WdceBdFHpxkD+pUgY2d8RgWgKoO5f+ETQfTATSlLWev6pS2AL28AYdgTukXgBPSlqdAmXMvwnuwzgS/p9PJHlWovwz1SmUEqFJfsIDGAZH1oeSZJDFyzd+ItRT+HF7cTUGZJjJfVrGepVDPNZi7KKo430P+GRfiGSSZiSlgHQjiFvVMLFXwrT19FLO2pC7AHtyAN2MpUW9KW5Zu5Ntd/tx0LIH6LkK+aOTl3j+8DJmsV5YXbMSmBuBb4QWtwZLuP5PP0o9c88FYwO8ELB0n0wGOiPxvCcq0uxkXHic2iHUWF6yDzb1YqtrxwYL+FXBr9N6mLWehS+6hKimiXUyzRLSLqIh8HEu63xsb3PkZVd0sIu/HlOm92NQQf450lRukqh2pVaCEEZF3Y2lyrVizfTWWAfLibo4Rjb0AsW6+qRG6gxKXL7L9LVigZjNwjap+P5S/B8sGqcXSpJ7t7hxZQEROxwJP78BSINuw3o/pdg3dA0pSmWaR6IspIt/HHP9bsGZZFdbf+1pVXRtRqEuARlVdk5LYA4LIx+gUrGfc37ApNZaE7SX5kcr1NxeR3Niqe2Mf4WdUdb2IHIF9qOMKdQbmg/xRijIL1krbHtkWNTai78vB2AewEliiqjsy0de+t6RtGg+0BUtf+QuWljI6lF2P+bn+h84ZLHP5jjdTQk2ZrC10HZX9E1jzdwPW4+cfI/tlxlfYQ32uoGsQ7GxsUJunsY/Ei9iHOJcnm5vCphU4Pc/5+rNnU+5eDMe6hP8c67L7KToNt8qeZCMjgb/eLoMS0sllS645FuEwLH90uapuAFDVBsxiOh1reqGq92G5pgu01L7AGULNihmKTWR3g6oegQUxpgKXiMg7wn45Kyizz7yIjMCsz5ki8pVQfAb2gT5eVffGOnkcBHxbRA5U1T9iA0DvD1werLyd5OrdH4R7MQzrrlqH9a8fjc2C0RJaCNsj++eVTTPgZtkj0tbmpbzQNSE/l7ZyD10TqKMDOy/HmjGpyz6QFmw8hlexcRxygwlPx7InfkKYnwpTOPPIM896VhYsn3Q+ZoXejGV5xHNLP4alFF1DZ0rRWyjS/PUFyp2zPL+MBcYOjmxbiLXCPhjffyAt7jPdQ2L+n9xgzs1YRPIKbJrc28L2nB/pLmxq3RPSknsgEqyhh7HeTZ8Glqrq6yJyIjbgx0pMKZ2AjXMwUTPsQxWRA7CxVj+KjXBVp6pPi0iNqm4N+9yERcAP05glly+wVgQZ3wy8pKqbYuXfx1wuZ6hqu4j8C9ZF9EJV/aqIDFXVV4spW1pktsmTZcLDmlOkd2ETlrVj/qyfYf6tc8ODRFCke2NNnudEZFAe94BTACJSGVuvUdUtwNsx3+LXgOkh4+M+rMk/DPhnLFBziKp2ZLG5n5NJVddhPsdbsTSvi0P5VhGpCrv/GJuV4ZD4efpBkY7AWmAPisioUFYhIhXAPsDWoEjPxPy7lwRFWgPMCxH8gUfapnEpL9hkX+uwYFN02tmpWNe/VdgUKhdjubGbic075MseXfdhwOzIeq6pOxSzQlcDJ9PZ5H8D1nzeJQiS9gJdBz+OltE5QPg24L8i+1VgwzW2ARNSkLkCG3zkWWzyylGRbXOwLJb/xLqFXhypz7FYC2FAdkxJXYBSXjDL4UdERl+nM/H7UGww61WYpXof8A9pyzwQFuAizAf32UhZTqHuE17yR4FTiQ3JSEa762KW8w8xV9HZdPrgozMu/CwoqaswH/GFKcv8nvBs/4LOzJVDMav1deC2UFaF5b3+OrwHJRmt7/F6pC1AqS5YTlwr8JNImcQsjVz6yjAiQ735skfXO3pdD8NmX9gcVSgRy+7CoHz+j9j0N1lcgpX3Gp3zwq/GplKJzrjQhLWC2rEIf3Re+zQGdh6MDQhzU7jW9wB7h20nYDnUL2PpgN/DWmq/J8PjkfZ1yZzfqITYgeU0HiYiR4L5qjT3dIt8ADhLREap6hZVfS1FWUuW4Icjd13D7yex6WtuBb4gIheG8tw1rsBaBUux0dkzRR5/+RHYaP+nY8nr38VcRYtFZISqtmE+1G9jH+w/q+oPwrkGRa9NsVHz/w/Hsgk+hinSB7A0vx+LyF6qej/wOWxOs0MwK/r72MhQ7SEgW5rpT7vBo/l9QESmYGOO/hi4VFWfCuWjsUDIeOA0Vf1belKWLpEsiKHAOdiAMO3AN1T1/0RkHPB5zEK6CrvmB2OdJG5Q1TvCeTLRRRR26fkzljDwObBRVb8Vyodg01F/FFNa9ar6dxGZCOyvqr9JRXh2fgiuwSYbPEVVnwmBpfdjH7g/YbOf/i3s36X3WZbuRdK4Mu0jwQL9HjaE3lKs6TmNMDWJqj6RonglS6SLaG56C7CeNUPC74uwKUbegA1y8lks8LENWAscoxnuDCEis7Eg0gjMz7tIVedEtldjdZqFDSA+W1VfjmxPrYusiDRjeaRTI2VV2DxNzZhfdLaqbsgpz/5I10obb+b3EVX9CZZbugmzJOZgTTFXpH0gKNIKTGH+HQvQHIH1rHkQ88V9VC2N6CosNeoabFi9Y4JFW5GG7PmINu1F5GhsJoUldA5UfbKInBVJj9oGfAXL0TyG0HMuRxqKNJJOthaoCi2DnDztWAeJX2FWaktwUewI2we0IgW3TBMjNHVqMEW61X2kfUdE9sX8cc2qelVs211Y0voUVX0pz7GZbE6GwUkmY0GaT4fm+xgsK2QE1l30lpyyDBbqP6jq8hRkzXsNRWQaFsG/HBvAOdqMXwwo9i58LIv3oFi4ZZoQqrpVVf+mqptckSbGNix3dN9cQSRp/3PYh6s+lHcJ6mTxJRaR/bGUrduw1Ke/A6jqemyk/5expv1HohZqTpH2Z0eDXJBIRGpEZJqInCkiU0VkpKq2YMP8XY6NfzAhHFOLpUa1qOqHw/GZaR0Um8qed3Gc1HgdC8AcLyK1qroq4gf9O6ZsK6E0mpEhaDYDi8ofHazUx8K2l0Tkg5j/vRHzDX8jdny/NO1zA5IEf/UvsZ5744GNwGoR+aCqfllEFEvZ+pCItGODtLyM+U1zMmfuo1Ys3DJ1MkvwG16K5ZVeLiKTI5v3xwJOL0HedKNU6U4etS6us7FpU76A9WDSEKB5CUuPagde6Tdhd5WxQ0QGY1kqfwM+ggX6rsBypn8nIvur6gLMXXEPsALz7x5dbhZpDveZOplHRKZjeYpPYQGOv2IBqQ7Cy5uieLsQS396G9aVdRwWoNmgqltk9zMuDEnbVRTS/n6G+XXvCmWVwDuBGzALdHrOVRE7tvQGdk4At0ydzKOqS7Fo/TPY0HqnYj2FpmbRCooo0o9jynIRlgO7DLhYRMar6r2YFfp+YIGIHJQ7LqdIU7a2a4CRBAs5DByzHfuYfRNLxj8kbOuiR8pRkYJbpk4JEZqeVVh/+02hLJNWUIh4/xhryt+PDUpyNfBebAT6S1T1xWB1/ySU/Ws+S68fZM03F9YobGK+paqaC/INVhva8ACsPmfkrFbHLVOnhFDV19W65uYUqWRRkQbeCjwH3KGqj6nqRlU9B+sqego2kHXO6v4g8OOUFGllcC0MilqY4RpfCnxMRBpDWW4Sy1os1/Qv/S1vlnHL1HH6SMxHmusCey0wU1UPCOXVIaCGiPwcGKmqb9/dufpB7kEh2DQcG7BkNBbU+6yqrg55vvOw2UNvA+7GAlANWC7pu7Lmr04Tt0wdpw/EFOkM4JMichgWvBkiIueAZSYENwVYD67xIrJX/HwpKNJqbDCYQzD/aC3wkIicpKp/xQaMORcbbu8WbFqSl7E5qTLnr04TV6aO0wciivQsLL/ySMx6exwbU+CjInJq2Pf1oHz2w2arzU2J3K9EFGkVNjnf41hQ7wwsWv9H4DYRORnYpDYAyxHAcdisuifpAB79aU/xZr7j9BEROR7rDno58J3QoynXB/8mLG/0PsLkeFhS/udU9YZUBGZnMO9OYBI2TuoM7ZyKZxiWtjUVG5HrFxrmnoocn9pAK1nFLVPH6Tt1WLDpLiwHNtevfRmW8P57bPT8JVjC/hdyijTF9KcR2AhnQ7BBqHOKtFJtTq3TMcv6JmwQli7NeVeku+KWqeP0kTC4x7tUdVJY36kgQ6R8Ajbt9HjgVbXBnlO37kRkP2w82DnAzap6XiiPjiP7ANbR4ANpyVkquGXqOH3nCWCEiLwTOv2oQZHWYtbp3qr6dESRStrWXei+eiVmfZ4kIl8N5duDQn0VeDc2OaHTA65MHafv/BhrLn9KRA6BnYp0MNZ3/UxsAOidZGVgluDfvRLrX39aTKFWqI2GlsmpsbOGjxrlOH1EbeqOM7DZRUeLyB3YpHjHAZ8BLlPVFWnKuDtCT6wrsdzRk8XmcTonGqlP24ouBdxn6jgJISLvwGYAGIeNw/oscJOqXhu2Z3rqDhF5A7AAk32mK9De4crUcRJERPbGmvQjsEny1obykkglCn3yN+ea9qUgc1ZwZeo4RSbrFmk+XJH2HlemjuM4CeAROsdxnARwZeo4jpMArkwdx3ESwJWp4zhOArgydRzHSQBXpo7jOAngytRxHCcBXJk6juMkgCtTx3GcBPh/ezXKfjdTjDQAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 360x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# draw mpc\n",
    "mpc_types = []\n",
    "for models in model_types:\n",
    "        mpc_types.append([model.mpc for model in models])\n",
    "drawBoxDiagram('MPC', rep.mpc, mpc_types, calculate_ks)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.02142857 0.02142857]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# draw node activity\n",
    "na_types = []\n",
    "for models in model_types:\n",
    "        na_types.append([model.na for model in models])\n",
    "drawBoxDiagram('Node_Activity', rep.na, na_types, calculate_ks)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 124,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.02126645 0.02126645]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# draw out degree\n",
    "out_d_types = []\n",
    "for models in model_types:\n",
    "        out_d_types.append([model.out_d for model in models])\n",
    "drawBoxDiagram('Out_Degree', rep.out_d, out_d_types, calculate_ks)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "metadata": {},
   "outputs": [],
   "source": [
    "def manual_ks(pdf1, pdf2):\n",
    "    result = 0\n",
    "    sum1 = 0\n",
    "    sum2 = 0\n",
    "    for(a, b) in zip(pdf1, pdf2):\n",
    "        sum1 += a\n",
    "        sum2 += b\n",
    "        result = max(result, abs(sum1-sum2))\n",
    "    return result\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['Choice', 'Entry', 'Exit', 'FinalState', 'Region', 'State', 'Statechart', 'Transition']\n",
      "[0.01196101 0.01196101]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# draw node type\n",
    "types = sorted(rep.nodeTypeStat.keys())\n",
    "rep_type_dist = [float(rep.nodeTypeStat[key]) for key in types]\n",
    "print(types)\n",
    "node_type_types = []\n",
    "for models in model_types:\n",
    "    type_dists = []\n",
    "    for model in models:\n",
    "        type_dists.append([float(model.nodeTypeStat.get(key, 0)) for key in types])\n",
    "    node_type_types.append(type_dists)\n",
    "\n",
    "#since we already know the pdf, we can compute the ks distance manually\n",
    "drawBoxDiagram('Node_Type', rep_type_dist, node_type_types, manual_ks)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0. 0.]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# draw violations\n",
    "violation_types = []\n",
    "for models in model_types:\n",
    "        violation_types.append([model.violations for model in models])\n",
    "drawBoxDiagram('Violations', None, violation_types, lambda a, b:b)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "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.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}