astro-nest 0.5.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. NEST/NEST.py +412 -0
  2. NEST/__init__.py +1 -0
  3. NEST/domain.pkl +0 -0
  4. NEST/models/BaSTI.sav +0 -0
  5. NEST/models/BaSTI2.sav +0 -0
  6. NEST/models/BaSTI2_BPRP.sav +0 -0
  7. NEST/models/BaSTI_BPRP.sav +0 -0
  8. NEST/models/Dartmouth.sav +0 -0
  9. NEST/models/Dartmouth_BPRP.sav +0 -0
  10. NEST/models/MIST.sav +0 -0
  11. NEST/models/MIST_BPRP.sav +0 -0
  12. NEST/models/NN_BaSTI.json +1 -0
  13. NEST/models/NN_BaSTI.sav +0 -0
  14. NEST/models/NN_BaSTI.sav.old +0 -0
  15. NEST/models/NN_BaSTI_BPRP.json +1 -0
  16. NEST/models/NN_BaSTI_BPRP.sav +0 -0
  17. NEST/models/NN_BaSTI_HST_BPRP.json +1 -0
  18. NEST/models/NN_BaSTI_HST_BPRP.sav +0 -0
  19. NEST/models/NN_BaSTI_HST_alpha_zero_BPRP.json +1 -0
  20. NEST/models/NN_BaSTI_HST_alpha_zero_BPRP.sav +0 -0
  21. NEST/models/NN_BaSTI_cut.json +1 -0
  22. NEST/models/NN_BaSTI_cut.sav +0 -0
  23. NEST/models/NN_BaSTI_cut_BPRP.json +1 -0
  24. NEST/models/NN_BaSTI_cut_BPRP.sav +0 -0
  25. NEST/models/NN_Dartmouth.json +1 -0
  26. NEST/models/NN_Dartmouth.sav +0 -0
  27. NEST/models/NN_Dartmouth_BPRP.json +1 -0
  28. NEST/models/NN_Dartmouth_BPRP.sav +0 -0
  29. NEST/models/NN_MIST.json +1 -0
  30. NEST/models/NN_MIST.sav +0 -0
  31. NEST/models/NN_MIST_BPRP.json +1 -0
  32. NEST/models/NN_MIST_BPRP.sav +0 -0
  33. NEST/models/NN_PARSEC.json +1 -0
  34. NEST/models/NN_PARSEC.sav +0 -0
  35. NEST/models/NN_PARSEC_BPRP.json +1 -0
  36. NEST/models/NN_PARSEC_BPRP.sav +0 -0
  37. NEST/models/NN_SYCLIST.json +1 -0
  38. NEST/models/NN_SYCLIST.sav +0 -0
  39. NEST/models/NN_SYCLIST_BPRP.json +1 -0
  40. NEST/models/NN_SYCLIST_BPRP.sav +0 -0
  41. NEST/models/NN_YaPSI.json +1 -0
  42. NEST/models/NN_YaPSI.sav +0 -0
  43. NEST/models/NN_YaPSI_BPRP.json +1 -0
  44. NEST/models/NN_YaPSI_BPRP.sav +0 -0
  45. NEST/models/PARSEC.sav +0 -0
  46. NEST/models/PARSEC_BPRP.sav +0 -0
  47. NEST/models/SYCLIST.sav +0 -0
  48. NEST/models/SYCLIST_BPRP.sav +0 -0
  49. NEST/models/YaPSI.sav +0 -0
  50. NEST/models/YaPSI_BPRP.sav +0 -0
  51. NEST/models/scaler_BaSTI.sav +0 -0
  52. NEST/models/scaler_BaSTI_BPRP.sav +0 -0
  53. NEST/models/scaler_BaSTI_BPRP_cut.sav +0 -0
  54. NEST/models/scaler_BaSTI_HST_BPRP.sav +0 -0
  55. NEST/models/scaler_BaSTI_HST_alpha_zero_BPRP.sav +0 -0
  56. NEST/models/scaler_BaSTI_cut.sav +0 -0
  57. NEST/models/scaler_BaSTI_cut_BPRP.sav +0 -0
  58. NEST/models/scaler_Dartmouth.sav +0 -0
  59. NEST/models/scaler_Dartmouth_BPRP.sav +0 -0
  60. NEST/models/scaler_MIST.sav +0 -0
  61. NEST/models/scaler_MIST_BPRP.sav +0 -0
  62. NEST/models/scaler_PARSEC.sav +0 -0
  63. NEST/models/scaler_PARSEC_BPRP.sav +0 -0
  64. NEST/models/scaler_SYCLIST.sav +0 -0
  65. NEST/models/scaler_SYCLIST_BPRP.sav +0 -0
  66. NEST/models/scaler_YaPSI.sav +0 -0
  67. NEST/models/scaler_YaPSI_BPRP.sav +0 -0
  68. NEST/tutorial.ipynb +566 -0
  69. astro_nest-0.5.0.dist-info/METADATA +25 -0
  70. astro_nest-0.5.0.dist-info/RECORD +72 -0
  71. astro_nest-0.5.0.dist-info/WHEEL +5 -0
  72. astro_nest-0.5.0.dist-info/top_level.txt +1 -0
NEST/tutorial.ipynb ADDED
@@ -0,0 +1,566 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "metadata": {},
6
+ "source": [
7
+ "# NEST\n",
8
+ "**NEST** (**N**eural network **E**stimator of **S**tellar **T**imes) is a python package designed to make the use of pre-trained neural networks for stellar age estimation easy.\n",
9
+ "\n",
10
+ "It is based on the paper [Boin et al. 2025](https://www.aanda.org/articles/aa/pdf/2024/12/aa51486-24.pdf).\n",
11
+ "\n",
12
+ "With it, you can estimate the ages of stars based on their position in the Color-Magnitude Diagram and their metallicity. It contains a suite of Neural Networks trained on different stellar evolutionary grids. If observational uncertainties are provided, it can compute age uncertainties."
13
+ ]
14
+ },
15
+ {
16
+ "cell_type": "code",
17
+ "execution_count": null,
18
+ "metadata": {
19
+ "tags": [
20
+ "remove-output"
21
+ ]
22
+ },
23
+ "outputs": [],
24
+ "source": [
25
+ "import NEST"
26
+ ]
27
+ },
28
+ {
29
+ "cell_type": "markdown",
30
+ "metadata": {},
31
+ "source": [
32
+ "# List of available models\n",
33
+ "Each model is a neural network trained on a different evolutionary stellar grid."
34
+ ]
35
+ },
36
+ {
37
+ "cell_type": "code",
38
+ "execution_count": 2,
39
+ "metadata": {},
40
+ "outputs": [
41
+ {
42
+ "name": "stdout",
43
+ "output_type": "stream",
44
+ "text": [
45
+ "BaSTIModel (http://basti-iac.oa-abruzzo.inaf.it/)\n",
46
+ "PARSECModel (https://stev.oapd.inaf.it/PARSEC/)\n",
47
+ "MISTModel (https://waps.cfa.harvard.edu/MIST/)\n",
48
+ "GenevaModel (https://www.unige.ch/sciences/astro/evolution/en/database/syclist)\n",
49
+ "DartmouthModel (https://rcweb.dartmouth.edu/stellar/)\n",
50
+ "YaPSIModel (http://www.astro.yale.edu/yapsi/)\n"
51
+ ]
52
+ }
53
+ ],
54
+ "source": [
55
+ "NEST.available_models()"
56
+ ]
57
+ },
58
+ {
59
+ "cell_type": "markdown",
60
+ "metadata": {},
61
+ "source": [
62
+ "# Load BaSTI model\n",
63
+ "By default, the age models use sklearn to run the neural networks. If you do not have it installed, or don't want to use it, you can pass the argument `use_sklearn=False` to switch to a numpy version..\n",
64
+ "\n",
65
+ "<div class=\"alert alert-block alert-info\">\n",
66
+ "Be aware though, in this mode it becomes significantly slower once you run the models on more than ~100 stars\n",
67
+ "</div>"
68
+ ]
69
+ },
70
+ {
71
+ "cell_type": "code",
72
+ "execution_count": 4,
73
+ "metadata": {},
74
+ "outputs": [],
75
+ "source": [
76
+ "age_model = NEST.BaSTIModel(use_tqdm=False)\n",
77
+ "#age_model = NNSA.BaSTIModel(use_sklearn=False)"
78
+ ]
79
+ },
80
+ {
81
+ "cell_type": "markdown",
82
+ "metadata": {},
83
+ "source": [
84
+ "# Estimate the age of a single star using [Fe/H],mag,col\n",
85
+ "To estimate the age of a star, use the `ages_prediction()` method, and pass it a metallicity met, magnitude mag and color col. Note that, with only these values provided, the return value is a np.array of shape (1,1). The reason will be clear if you check later uses. "
86
+ ]
87
+ },
88
+ {
89
+ "cell_type": "code",
90
+ "execution_count": 8,
91
+ "metadata": {},
92
+ "outputs": [
93
+ {
94
+ "data": {
95
+ "text/plain": [
96
+ "array([[1.72104573]])"
97
+ ]
98
+ },
99
+ "execution_count": 8,
100
+ "metadata": {},
101
+ "output_type": "execute_result"
102
+ }
103
+ ],
104
+ "source": [
105
+ "age_model.ages_prediction(met=0.0,mag=2.0,col=1.0)"
106
+ ]
107
+ },
108
+ {
109
+ "cell_type": "markdown",
110
+ "metadata": {},
111
+ "source": [
112
+ "You can use the `check_domain()` method to verify that the star is within the bounds of the isochrones points used for training the neural networks. The function only checks for this in the HR Diagram, so you pass it a metallicity met, magnitude mag and color col."
113
+ ]
114
+ },
115
+ {
116
+ "cell_type": "code",
117
+ "execution_count": 9,
118
+ "metadata": {},
119
+ "outputs": [
120
+ {
121
+ "data": {
122
+ "text/plain": [
123
+ "array([ True])"
124
+ ]
125
+ },
126
+ "execution_count": 9,
127
+ "metadata": {},
128
+ "output_type": "execute_result"
129
+ }
130
+ ],
131
+ "source": [
132
+ "age_model.check_domain(met=0.0,mag=2.0,col=1.0)"
133
+ ]
134
+ },
135
+ {
136
+ "cell_type": "markdown",
137
+ "metadata": {},
138
+ "source": [
139
+ "# Estimate the age of a single star using [Fe/H],mag,col,GBP & GRP\n",
140
+ "If you are using Gaia magnitudes and colors, you can also pass the red GRP and blue GBP magnitudes separately as additional inputs. This generally results in better estimations."
141
+ ]
142
+ },
143
+ {
144
+ "cell_type": "code",
145
+ "execution_count": 10,
146
+ "metadata": {
147
+ "tags": [
148
+ "hide-output"
149
+ ]
150
+ },
151
+ "outputs": [
152
+ {
153
+ "data": {
154
+ "text/plain": [
155
+ "array([[1.34888727]])"
156
+ ]
157
+ },
158
+ "execution_count": 10,
159
+ "metadata": {},
160
+ "output_type": "execute_result"
161
+ }
162
+ ],
163
+ "source": [
164
+ "age_model.ages_prediction(met=0.0,mag=2.0,col=1.0,GBP=2.0,GRP=1.0)"
165
+ ]
166
+ },
167
+ {
168
+ "cell_type": "markdown",
169
+ "metadata": {},
170
+ "source": [
171
+ "# Estimate the age of multiple stars\n",
172
+ "If you pass lists of values of size N as inputs instead of single values, the return value of the `ages_prediction()` method will be a np.array of shape (N,1). Again, the reason for the 2D shape will be clear by checking later uses.\n",
173
+ "<div class=\"alert alert-block alert-success\">\n",
174
+ "If you have tqdm installed, you can display the progress of the age predictions. By default, this display is on, but you can turn it off when you initiate the age_model by passing the argument `use_tqdm=False`.\n",
175
+ "</div>"
176
+ ]
177
+ },
178
+ {
179
+ "cell_type": "code",
180
+ "execution_count": null,
181
+ "metadata": {
182
+ "tags": [
183
+ "hide-output"
184
+ ]
185
+ },
186
+ "outputs": [
187
+ {
188
+ "data": {
189
+ "text/plain": [
190
+ "array([[1.72104573],\n",
191
+ " [5.97925446]])"
192
+ ]
193
+ },
194
+ "execution_count": 11,
195
+ "metadata": {},
196
+ "output_type": "execute_result"
197
+ }
198
+ ],
199
+ "source": [
200
+ "age_model.ages_prediction(\n",
201
+ " met=[0.0,-1.0],\n",
202
+ " mag=[2.0,3.0],\n",
203
+ " col=[1.0,0.5]\n",
204
+ ")"
205
+ ]
206
+ },
207
+ {
208
+ "cell_type": "code",
209
+ "execution_count": null,
210
+ "metadata": {
211
+ "tags": [
212
+ "hide-output"
213
+ ]
214
+ },
215
+ "outputs": [
216
+ {
217
+ "data": {
218
+ "text/plain": [
219
+ "array([[1.34888727],\n",
220
+ " [2.20902813]])"
221
+ ]
222
+ },
223
+ "execution_count": 12,
224
+ "metadata": {},
225
+ "output_type": "execute_result"
226
+ }
227
+ ],
228
+ "source": [
229
+ "age_model.ages_prediction(\n",
230
+ " met=[0.0,-1.0],\n",
231
+ " mag=[2.0,3.0],\n",
232
+ " col=[1.0,0.5],\n",
233
+ " GBP=[2.0,1.0],\n",
234
+ " GRP=[1.0,0.5]\n",
235
+ ")"
236
+ ]
237
+ },
238
+ {
239
+ "cell_type": "markdown",
240
+ "metadata": {},
241
+ "source": [
242
+ "You can also check if the stars are within the training domain all at once by passing lists of metallicity met, magnitude mag & col values col."
243
+ ]
244
+ },
245
+ {
246
+ "cell_type": "code",
247
+ "execution_count": null,
248
+ "metadata": {
249
+ "tags": [
250
+ "hide-output"
251
+ ]
252
+ },
253
+ "outputs": [
254
+ {
255
+ "data": {
256
+ "text/plain": [
257
+ "array([ True, True])"
258
+ ]
259
+ },
260
+ "execution_count": 8,
261
+ "metadata": {},
262
+ "output_type": "execute_result"
263
+ }
264
+ ],
265
+ "source": [
266
+ "age_model.check_domain(\n",
267
+ " met=[0.0,-1.0],\n",
268
+ " mag=[2.0,3.0],\n",
269
+ " col=[1.0,0.5]\n",
270
+ ")"
271
+ ]
272
+ },
273
+ {
274
+ "cell_type": "markdown",
275
+ "metadata": {},
276
+ "source": [
277
+ "That way, you can crossmatch both outputs to only keep stars whose age estimates we can reliably trust:"
278
+ ]
279
+ },
280
+ {
281
+ "cell_type": "code",
282
+ "execution_count": 13,
283
+ "metadata": {},
284
+ "outputs": [
285
+ {
286
+ "name": "stdout",
287
+ "output_type": "stream",
288
+ "text": [
289
+ "[[1.34888727]\n",
290
+ " [2.20902813]\n",
291
+ " [3.38402904]\n",
292
+ " [6.08718654]]\n",
293
+ "[ True True True False]\n",
294
+ "[[1.34888727]\n",
295
+ " [2.20902813]\n",
296
+ " [3.38402904]]\n"
297
+ ]
298
+ }
299
+ ],
300
+ "source": [
301
+ "met = [0.0,-1.0,-2.0,-3.0]\n",
302
+ "mag = [2.0,3.0,3.0,5.0]\n",
303
+ "col = [1.0,0.5,0.5,0.5]\n",
304
+ "GBP = [2.0,1.0,1.0,1.0]\n",
305
+ "GRP = [1.0,0.5,0.5,0.5]\n",
306
+ "ages = age_model.ages_prediction(met=met,mag=mag,col=col,GBP=GBP,GRP=GRP)\n",
307
+ "print(ages)\n",
308
+ "outside_domain = age_model.check_domain(met=met,mag=mag,col=col)\n",
309
+ "print(outside_domain)\n",
310
+ "ages = ages[outside_domain]#Only keep ages of stars within the training domain of the NN\n",
311
+ "print(ages)"
312
+ ]
313
+ },
314
+ {
315
+ "cell_type": "markdown",
316
+ "metadata": {},
317
+ "source": [
318
+ "# Estimate the age of a single star with n=10 Monte Carlo realisations using uncertainties\n",
319
+ "If you have uncertainty values for a star, you can pass them to the `ages_prediction()` method by adding values for emet, emag & ecol. The idea is that multiple age predictions will be made by offsetting the star's metallicity met, magnitude mag & col col by adding a random gaussian offset of width (emet,emag,ecol). The number of realisations made is controlled by the parameter n. The output of the method will then be a np.array of shape (1,n)."
320
+ ]
321
+ },
322
+ {
323
+ "cell_type": "code",
324
+ "execution_count": 14,
325
+ "metadata": {
326
+ "tags": [
327
+ "hide-output"
328
+ ]
329
+ },
330
+ "outputs": [
331
+ {
332
+ "data": {
333
+ "text/plain": [
334
+ "array([[1.7256106 , 2.00334378, 1.85396521, 1.75088056, 1.9097981 ,\n",
335
+ " 1.6040866 , 1.65672647, 1.94882322, 1.99593322, 1.88873856]])"
336
+ ]
337
+ },
338
+ "execution_count": 14,
339
+ "metadata": {},
340
+ "output_type": "execute_result"
341
+ }
342
+ ],
343
+ "source": [
344
+ "age_model.ages_prediction(met=0.0,mag=2.0,col=1.0,emet=0.1,emag=0.05,ecol=0.05,n=10)"
345
+ ]
346
+ },
347
+ {
348
+ "cell_type": "markdown",
349
+ "metadata": {},
350
+ "source": [
351
+ "Once the ages have been predicted for each star n times, you can call statistical methods `model.mean_ages()`, `model.median_ages()`, `model.mode_ages()` and `model.std_ages()`"
352
+ ]
353
+ },
354
+ {
355
+ "cell_type": "code",
356
+ "execution_count": 20,
357
+ "metadata": {},
358
+ "outputs": [
359
+ {
360
+ "name": "stdout",
361
+ "output_type": "stream",
362
+ "text": [
363
+ "[1.68963035]\n",
364
+ "[1.68409769]\n",
365
+ "[1.60851594]\n",
366
+ "[0.09283736]\n"
367
+ ]
368
+ }
369
+ ],
370
+ "source": [
371
+ "print(age_model.mean_ages())\n",
372
+ "print(age_model.median_ages())\n",
373
+ "print(age_model.mode_ages())\n",
374
+ "print(age_model.std_ages())"
375
+ ]
376
+ },
377
+ {
378
+ "cell_type": "markdown",
379
+ "metadata": {},
380
+ "source": [
381
+ "# Estimate the age of multiple stars with n=10 Monte Carlo realisations using uncertainties\n",
382
+ "Finally, you can combine multiple (N) stars age estimations and added uncertainties, with n Monte Carlo realisations. The output of the `ages_prediction()` method will then be a np.array of shape (N,n). A value of n=100 seems to be a good middle ground between speed and accurate predictions. If the number of stars is low, n>=1000 gives enough realisations to draw a PDF."
383
+ ]
384
+ },
385
+ {
386
+ "cell_type": "code",
387
+ "execution_count": null,
388
+ "metadata": {
389
+ "tags": [
390
+ "hide-output"
391
+ ]
392
+ },
393
+ "outputs": [
394
+ {
395
+ "data": {
396
+ "text/plain": [
397
+ "array([[1.71462611, 1.94582103, 1.89940169, 2.97884081, 2.08031333,\n",
398
+ " 1.58125759, 1.59831936, 1.83501568, 2.13068263, 1.74986554],\n",
399
+ " [5.20361322, 6.03242598, 6.830097 , 5.96518632, 6.54942971,\n",
400
+ " 3.71275077, 6.11190383, 4.557374 , 5.16837155, 5.88224765]])"
401
+ ]
402
+ },
403
+ "execution_count": 15,
404
+ "metadata": {},
405
+ "output_type": "execute_result"
406
+ }
407
+ ],
408
+ "source": [
409
+ "age_model.ages_prediction(\n",
410
+ " met=[0.0,-1.0],\n",
411
+ " mag=[2.0,3.0],\n",
412
+ " col=[1.0,0.5],\n",
413
+ " emet=[0.1,0.1],\n",
414
+ " emag=[0.05,0.05],\n",
415
+ " ecol=[0.05,0.05],\n",
416
+ " n=10\n",
417
+ ")"
418
+ ]
419
+ },
420
+ {
421
+ "cell_type": "code",
422
+ "execution_count": 22,
423
+ "metadata": {},
424
+ "outputs": [
425
+ {
426
+ "name": "stdout",
427
+ "output_type": "stream",
428
+ "text": [
429
+ "[1.80196219 5.54847086]\n",
430
+ "[1.67774137 5.32251073]\n",
431
+ "[1.6429014 4.87189199]\n",
432
+ "[0.32414629 0.85262662]\n"
433
+ ]
434
+ }
435
+ ],
436
+ "source": [
437
+ "print(age_model.mean_ages())\n",
438
+ "print(age_model.median_ages())\n",
439
+ "print(age_model.mode_ages())\n",
440
+ "print(age_model.std_ages())"
441
+ ]
442
+ },
443
+ {
444
+ "cell_type": "markdown",
445
+ "metadata": {},
446
+ "source": [
447
+ "# Working with big datasets\n",
448
+ "In the event you are working with big datasets, you might not want to store every sampled age for every star, as you might run out of memory to store all this information.\n",
449
+ "In this case, you can pass the argument ` store_samples=False ` to the ` age_prediction() ` method. Instead of returning a (N,n) np.array, the method will return a dict with keys ` mean `, ` median `, ` mode ` and ` std `, which each contain a (N) np.array with the given statistical property.\n",
450
+ "\n",
451
+ "<div class=\"alert alert-block alert-info\">\n",
452
+ "Keep in mind this will cause a significant slowdown, as the statistical properties have to be computed for each star individually before discarding all its samples.\n",
453
+ "</div>"
454
+ ]
455
+ },
456
+ {
457
+ "cell_type": "code",
458
+ "execution_count": null,
459
+ "metadata": {
460
+ "tags": [
461
+ "hide-output"
462
+ ]
463
+ },
464
+ "outputs": [
465
+ {
466
+ "data": {
467
+ "text/plain": [
468
+ "{'mean': array([2.09471423, 6.01643673]),\n",
469
+ " 'median': array([1.75520015, 6.15407341]),\n",
470
+ " 'mode': array([1.75, 6.37]),\n",
471
+ " 'std': array([1.13576418, 0.7743602 ])}"
472
+ ]
473
+ },
474
+ "execution_count": 16,
475
+ "metadata": {},
476
+ "output_type": "execute_result"
477
+ }
478
+ ],
479
+ "source": [
480
+ "age_model.ages_prediction(\n",
481
+ " met=[0.0,-1.0],\n",
482
+ " mag=[2.0,3.0],\n",
483
+ " col=[1.0,0.5],\n",
484
+ " emet=[0.1,0.1],\n",
485
+ " emag=[0.05,0.05],\n",
486
+ " ecol=[0.05,0.05],\n",
487
+ " n=100,\n",
488
+ " store_samples=False\n",
489
+ ")"
490
+ ]
491
+ },
492
+ {
493
+ "cell_type": "markdown",
494
+ "metadata": {},
495
+ "source": [
496
+ "# Age model properties\n",
497
+ "- `age_model.samples` returns an (N,n,m) np.array of the latest samples used for the age predictions, if they were stored.\n",
498
+ "- `age_model.ages` returns an (N,n) np.array of the latest age predictions ran.\n",
499
+ "N : number of stars, n : number of samples, m : inputs dimension (3 if using metallicity,magnitude & color, 5 if using GBP & GRP in addition)."
500
+ ]
501
+ },
502
+ {
503
+ "cell_type": "code",
504
+ "execution_count": 8,
505
+ "metadata": {},
506
+ "outputs": [
507
+ {
508
+ "data": {
509
+ "image/png": "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lQwaNIgbbrgBgMTERCZNmsSaNWuqPd9isWCxWCq/zsvLq6fohWh6esTG8t3NN/Pe+vXM372borIyYkNCuKlbN27u0cOnR1F0Xcem6xhV33+hF77J1Z2MZRfkBpabmwtAZGSk3XMGDhzIJ598wtq1a+nbty8HDx7kxx9/5Oabb672/OnTp/Pss882SLxCNEVtIiJ4ftQonh81Ck3XfX658fG8PN7ZuI6vdu2gqKyMyIAAJnVJ5bYevQj3D/B0eEI0KYrupTs8aZrGFVdcQU5ODitWrHB47htvvMHf/vY3dF3HarXy5z//mZkzZ1Z7bnUjKfHx8eTm5hIaGlqv34MQvirHUsyc/VuYf2gn+WUWksKiual9D4a3ateoO8juyTrNdV/OobC0tLIpHZRPX8WFhPLFtZNoFijLZpuyvLw8wsLCGvQ9o+I5nls7HP/guo8llBRYebLvrz79/ua1Iyn33HMP27dvrzFBWbp0KS+88AJvvfUW/fr1Y//+/TzwwAM899xzPPnkkxecbzabMZuleEsIew7kZnHdz7PJKimsbMOVXpjHkuMHuCKxE/8adDmGRjgFous69y/4/oIEBcq7ox7Pz+OZpb/yn0vHeShC0dTIdI+XJin33nsv33//PcuXLycuLs7huU8++SQ333wzt99+OwBdu3alsLCQO+64g//7v/9DbYQvpkI0FE3XuX3Jl2Rbiqr0Ca14055/eCddIltwR+d+ngmwAW3MSGffmSy7x226zsID+zhVWEizIBlNEcIdvOodXNd17r33XubNm8evv/5KmzZtanxMUVHRBYmIwWCovJ4QwnnL0w9xKD/7gpGEc72/ax22Gvqj+KKdp07VuNOJpuvsyTrtlniEsAE2FBduvs+rRlLuueceZs+ezbfffktISAgZGRkAhIWFERBQXrA2efJkWrVqxfTp0wEYN24cr776Kj169Kic7nnyyScZN25cZbIihHDO2sw0jIqKVbefhJwsLuB4YR6tQ8LdF5gbmAwGp3buNcnrinATme7xsiSlotj14osvrnL/rFmzuOWWWwA4evRolZGTJ554AkVReOKJJzh+/DjNmjVj3LhxPP/88+4KWwjRCAxpnYiqKGgORpHCzGa6tWjpxqhEUyYbDHpZkuLM9MzSpUurfG00Gnn66ad5+umnGygqIZqOvs3jeWv7KofntAgIplWQb64UcCQmJIQJKR35Zs8uu4nKn3r2wWz0qpdNIRo130+zhBD1ZkhsG9qERDjc3fi2jn0a5eoegOeGjeSi1gkAGBQFhfKW7gA3de3Gn3v39WB0oqnRUdBcuOk1Vll5P/lIIISopCoK7w27hut/ns3pc5YgGxQFm64zPrETt3Xs49EYG1KAnx8fXHEV69KP8+2eXWQVFxEbEsrETl3oGN3M0+GJJsbd0z02m41nnnmGTz75hIyMDGJjY7nlllsqyyo8QZIUIUQV7cKiWHTF7Xy+fyvfHtpJXpmFpLAobm7fg2GNvJkbgKIo9G0VR99WjtsfCNHYvPjii8ycOZOPPvqIzp07s379em699VbCwsK4//77PRKTJClCiAuEmwO4o3O/RtkPRQhfoekKml73DwUVjz1/jzp7TU1XrlzJ+PHjueyyy4DyvfA+++wz1q5dW+cYXNU4J5aFEEIIH+fKDsgVN4D4+HjCwsIqbxUtPM43cOBAfvnlF/bu3QvAli1bWLFiBWPHjnXb93w+GUkRQgghGrG0tLQqe/fY2xrmscceIy8vjw4dOmAwGLDZbDz//PPceOON7gr1ApKkCCGEEF6ovqZ7QkNDndpg8PPPP+fTTz9l9uzZdO7cmc2bN/Pggw8SGxvLlClT6hyHKyRJEUIIIbyQhormQlVGbR/78MMP89hjj3H99dcD5XvhHTlyhOnTp3ssSZGaFCGEEELY3QtP8+BeXTKSIoQQQnghm65gc2G6p7aPrdhSpnXr1nTu3JlNmzbx6quvMnXq1DrH4CpJUoQQQggvVF81Kc7697//zZNPPsndd99NZmYmsbGx3HnnnTz11FN1jsFVkqQIIYQQXkh3cRdkvZaPDQkJ4bXXXuO1116r83PWN6lJEUIIIYRXkpEUIYQQwgvZULC5sEmgK4/1FpKkCOFBpVYruUUlBPmbCTT5eTocIYQX0fTa15Wc/3hfJ0mKEB6QmVfAf39Zwzfrd2Cx2lAVhRGd23HXyP6kxMhuu0IIAZKkCOF2J3LymfTmZ5wpLMJ29qOOpuv8uvMAy3Yf4r3br6ZXm1YejlII4Wmai4WzrjzWW/j+dyCEj5k+f0mVBKWCTdOx2jQem7MArTGM0wohXKKhuHzzdZKkCOFGp/IKWLLz4AUJSgVN10nPyWfV/qNujkwIIbyPJClCuNHh0zlouuNRElVR2H8yy00RCSG8VUXHWVduvk5qUoRwowBTzb9ymq7LSh8hhNSkICMpQrhVx9jmNAsNcniOqihc3LGNmyISQgjvJUmKEG5kUFXuHtHf7nFFgav7dqFZaLAboxJCeCMNpXL/njrdGkHhrEz3COFmE/t15UxhMf9ZtAooHznR0bFpOpd268DjVwzzcIRCCG+gu7hCR5ckRQhRW4qi8OcR/biyd2fmb9xJenYe4YEBXNY9haSW0Z4OTwjhJdy9C7I3kiRFCA9pERbMn4b19XQYQgjhtSRJEcJHnC4q4of9ezhdVERMcAiXJ7cn1Ozv6bAaVInNysKje9mfc5oAox+XJKTQNjTS02EJ4RayukeSFCG8nq7rvLLmd/67YS2armNQVWyaxt9/+5VHBlzE1O69PB1ig/j12H7+suJ7cktLMCoqGjovbVrGpQkdeGXQZQQYZZm2aNxkukeSFCG83pvr1/Cf9Wsqv7ZqGgAWm43nViwl2GTi2k5dPRVeg9hw6jh/WvJVZeM7q65VHvvp6B6smo13hl3tqfCEEG7i+2NBQjRiBaWlvLVhjcNzXln9OzZNc3iOr3ljywoAquvNq+k6P6ftY8eZk+4NSgg3k717JEkRAgBN08ktLsFSZvV0KFUsPXKIEqvjmDKLCtmYke6miBpeXmkJy9MPYXOwfYBBUfnh8G43RiWE+7nUI8XFqSJvIdM9okkrtJTywW/rmbN2K9lFxSgKDG3fljsv7ku3+BhPh0eexeLUefmlpQ0cifsUlpVWO4JyLoXyZEYI0bhJkiKarEJLKTe/+zl7T56urH3Qdfht7yF+23eI1yeNY3jHdh6NMTE83KnzEsLCGjYQN4r0DyTQ6EeRtczuOZqukxga4caohHA/KZyV6R7RhL21ZHWVBKWCTdfRNJ1Hv1xAUan9N0p36N8qnriQUFSl+hcbVVHo0TKGdhFRbo6s4ZgNRq5NSsVg53sGMKgKV7Xt4saohHA/me6RJEU0UaVWG1+s23ZBglJBBwotZSzYuse9gZ1HVRReGjEGVVEuSFQMioK/wcg/Lh7poegazn2pg4gNCr0gUan46qneI4n0D3R/YEIIt5IkRTRJp/ILKLA4ruMwqir7Mk+7KSL7BsS1Zu6V19EvNq7yPgUYmtCGryfeQKfo5p4LroFE+Qcyb+xkrm7XFZNqqLy/fXg0M4dO4OYOPT0YnRDuISMpUpMimih/v5obgemA2egdvyI9Y2KZfeW1ZBTkc6a4mOZBwUQHNu6RhOiAIF4aeClP9h7B8cJcgowm4oLDUBxMAwnRmOjg4gaDvs87XoGFcLOo4EC6tGrBzvRMu1M+Nk1jZKckN0d2oTKbjcV7D7B47wGKy8pIaRbNxO5Npx4jxGSmg6nxjRYJURMpnJUkRTRhdw3rxz2fzK/2mEFR6JXYiq5xLd0cVVUn8vKZMvsrDp/JxqAoaLrOr/sOMnPlWp4cPYwbe3XzaHxCCNGQpCZFNFnDOrTjqSuGY1DLi1INqoJBLf+V6NY6htdvGOfR+GyaxtTPviYtO6f8a10vH/7VdTRd59mFv7LswCGPxiiEaDhSkyIjKaKJu75vN0Z2SuKbjTs5eOoMQWYTYzon0yuxlcdrH5YfPMyBrDN2j6uKwjsr1zG0XZsGj0XXddYcP8Zn27ZyIPsMYWZ/rkjpwBUpHQhwor5HCFF7Mt0jSYoQRAcHcfuQPp4O4wLL9h/CqKqVGwqeT9N11qUdp6i0jEBTwyUKmq7z+C+L+HzHdgyKgk3XUYBVx9KYuX4tn119LTEhIQ32/EKIpkume4TwUqU2G7oT9fllNluDxjFr00Y+37EdoHI/nYqojuflcef336I72GdHCFE3Mt0jSYoQXqtji+ZomuM3/5YhwYT6mxssBpum8e7G9faP6zrbMzNZn954NjgUwlvouuLyzddJkiKEl5rQpSNmo9FulwQFmNynR4PWzhzJzSGzsNDhOQZFYWXa0QaLQQjRdEmSIoSXCvE3868Jl1auPKqgnL0NapPA5D49GjQGWw0jOQCKoqDp1dfNCCHqTkNx+ebrJEkRwouNaN+OL2+dxCUdkvEzlP+6JkZG8MToYbx97XhMBkMNV3BNQng4YWbH00lWTaNXbKsGjUOIpkhqUmR1jxBer3PLFvxrwmXoZ/uk2NsRuSGYDAYmd+vOm2vXVFvCa1AUWoWGMrh1gttiEkI0HZKkCOEjFEXxyODtPX37s+XkSZYfOYx6tustlCdLoWYz74wbf0HitCUjg8+3b+Nwbg6R/gGMS+nA8LZtMaoyeCuEs1wtfm0MhbOSpAghHDIZDLx3xQS+27ObT7Zu4XBONiFmM+NTOnJTajeaBQVVnqvpOk//+gufbtta2VPFoCj8sG8vqS1a8OGVVxHuH+DB70YI3yHN3CRJEUI4waiqXNmxE1d27OTwvA82buDTbVuBP3qqVPy5IzOTBxf8yIdXXt2wwQrRSMhIihTOCiHqSZnNxtvrHfdUWX7kCPuystwYlRDCl0mSIoSoF/uyssgqLnJ4jqooLDty2D0BCeHjdBdX9tR2JCUxMbG89u282z333NNA32HNZLpHCFEvyrSa2/MrgLWB2/gL0VjogCs7TtT2oevWrcN2zu/n9u3bGTVqFBMnTqx7EC6SJEUIUS/aRUZhNhiwOEhCbLpOasuWboxKCOGsZs2aVfl6xowZtGvXjqFDh3ooIpnuEULUk2CTiYmdu9jt42JQFNqERzAgLt7NkQnhm+qr42xeXl6Vm8ViqfG5S0tL+eSTT5g6dWqDbr1RExlJEaIROJidzQcbN/DDnj0UW620i4jk5u7duKZzl1r3JtmXc5qNmekoQJgawJJ9h0jLySUiIIDxnTswrJ39ficPDxrM5owT7MjMBP4YbjYoCsEmE/+5/PLKFzxd11lz+jALju0kv6yExOBIrkroQVxQeB1/CkI0LvW1uic+vuoHg6effppnnnnG4WO/+eYbcnJyuOWWW+r8/PVB0b1oj/Xp06fz9ddfs3v3bgICAhg4cCAvvvgiKSkpdh9TVlbG9OnT+eijjzh+/DgpKSm8+OKLXHLJJU49Z15eHmFhYeTm5hIaGlpf34oQbrP22DGmfP01Vs1WudxXoTxBGJqYyNtXONc+/0RhPn9Z/j2rM9JABzXfgGpRK69V0cgtNaYFsyZeRZi/f7XXKS4r49NtW5m9dQvH8/IINZu5smMnbunRk9iQEADyy0q4e9Vc1p0+glFR0dBRKO+z8mDn4dyZMrhefjZC1Dd3vGdUPEfqF3/DEFj3Xc5tRRa2TnyZtLS0KrGazWbMNWx3MWbMGEwmE999912dn78+eNVIyrJly7jnnnvo06cPVquVxx9/nNGjR7Nz506CzmkYda4nnniCTz75hHfffZcOHTqwcOFCrrzySlauXEmPHg27+ZoQnmaxWrnzu/mUabbKTrDwxwjG8sOHeW/DBu7u29fhdXItJUz88VNOFOYDoBSrKBalyrUqrr8jI5O/ff8T714zodprBfj5cXvPXtzes5fd5/vr2q/ZmFW+c7L1vM0J/7XjV1oGhDK+darDmIVo7DRdQamHZm6hoaG1SqiOHDnC4sWL+frrr+v83PXFq2pSfvrpJ2655RY6d+5Mt27d+PDDDzl69CgbNmyw+5j//e9/PP7441x66aW0bduWu+66i0svvZRXXnnFjZEL4Rk/7t1LbklJlQTlXDrw8eZN2DTHuxTP3rOF9IL88pEYHdQiFXtN+G26zpKDhziYdaZOMe/JPcnyk/srR33OpwAzdy/HiwZ5hfAIXXf9VhezZs2iefPmXHbZZfX7DdWBVyUp58vNzQUgMjLS7jkWiwX/84adAwICWLFihd3zzy8iEsJXbT2ZUWPNSWZhIaeLHPcv+WLfVrSKMRNrzZ/eFAVWHD5Sq1grLDmxF4ODQjwdOFxwhqOF2XW6vhCi7jRNY9asWUyZMgWj0fOTLV6bpGiaxoMPPsigQYPo0qWL3fPGjBnDq6++yr59+9A0jUWLFvH1119z4sSJas+fPn06YWFhlbfzC4qE8CUGJ4tia0pkskocJzHnU1Aoq2F0xh6LzWp3lOb884RoyioKZ1251dbixYs5evQoU6dObYDvqPa8Nkm555572L59O3PmzHF43uuvv05ycjIdOnTAZDJx7733cuutt6LaeVGeNm0aubm5lbe0tLSGCF8ItxiamIjVQbKgAB2io4kMcLypX8ugkD/SBoOOXkMbKE3XSW3ZonbBnpUS3uKCOpTz+RuMsspHNHmeSFJGjx6Nruu0b9++Ab6j2vPKJOXee+/l+++/Z8mSJcTFxTk8t1mzZnzzzTcUFhZy5MgRdu/eTXBwMG3btq32fLPZXFlEVNtiIiG8zaDWCSRHRdmdPtGBP/fpW2Ofgxvad//jCxV0f81uomJQFJKiIukd16pOMQ+PSSHSFIhqZzRFVRSuSuhOoNFUp+sL0Vi40hLf1R2UvYVXJSm6rnPvvfcyb948fv31V9q0aeP0Y/39/WnVqhVWq5WvvvqK8ePHN2CkQngHVVH4YMKVxIWFlX999v6KpOXBAQO4okOHGq9zbfuudIxsXvk4LUirHFE5N1lRFYVQfzNvTri8zg2eTKqBf/W7BqOqYlCqvgSpKLQLacaDnYbX6dpCiMbF81Ux57jnnnuYPXs23377LSEhIWRkZAAQFhZGwNnh6smTJ9OqVSumT58OwJo1azh+/Djdu3fn+PHjPPPMM2iaxiOPPOKx70MId2oVGspPN09mwb69LNi3j4LSUtpHRTGpayrto6OdukaA0Y/PLrmeZ9YsZv7BXdhUHVuEDT+LkRCrPyWlVsL8zVzZpRNTevagRUiwSzH3a5bIF8Nu5929v/PTsZ1YdY1IUyDXt+3N1OQBBPvVvTeEEI2FKyt0Kh7v67yqmZu9T2azZs2q7Hp38cUXk5iYyIcffgiU91a56667OHjwIMHBwVx66aXMmDGD2NhYp55TmrkJUdXp4kK2ZZ3EoCj0aBZLiKlhEwabrlFqs+FvMNZL+22brpFfZiHA4IfZ4FWfw0Qj4M5mbsmfPIYhsPqmic6wFZWw76YZPv3+5lW/wc7kS0uXLq3y9dChQ9m5c2cDRSRE0xMdEMSwuOpruhqCQVEJMLo+85xfVsK7e35nzqEN5JaVoKIwPKY9f+5wEV0jnPvQIoTwLl6VpAghRF3klhZzw7IPOVhwurKxnYbOkoy9LM3Yx8wB1zOkZZKHoxSidupr7x5f5lWFs0II5+m6zpbDJ1i0ZR8bDx5H07xm5tbt3ti5lEPnJCgVbLqOTdf427qvKZW+K8LH6PVw83UykiKED/pt1yFmfLWEtKzcyvtiIkJ4ZMLFjEj1vRGDvbmZzNq7hsXH91Kq2egc0ZLJyX0Y06pDjXUqxdYyvjyy2W6bfR3ILSthYfouxsV3bYDohRANRUZShPAxv+06xH3vfsuxcxIUgIzsfB6a9R2LtuzzUGR1s+j4Hq74+T2+PryN7NJiCq2lrD+dxr0rv+LJDT/WWKuWXpxLia3M4TlGRWVvbmZ9hi1Eg/NEMzdvI0mKED5E13VmfLUEXb+w1VrF8O6Mr5fUuKGgtzhjKeLBVfOw6Rq2c7rQVkzbzDm4iW+Pbnd4jQCDX43Po6PLSh/he2S+R5IUIbyRruuUlFkvGEXYeuQEaVm5Dl97TuUVsm6fb2z38NWhLZRqNrvfj4rCh3vXOrxGTEAoyaHNHO4GZNN1RsXW3NROCK/i6ihKIxhJkY8WQniR9Nw83l29nq+37qS4rIwQs5mJ3btwe79eRAcHkZlb6NR1TuYWNHCkkJ6Tx5GsHAJNfnRp1cLpzQ7PtTnrOI4+7mno7Mg+gabrqHZqUxRF4Z4OQ3lw7ZfVHlcVhcHN25ESVre9hoQQniNJihBeYv/pLCZ9PJcCS2llEWi+xcJHazfy/Y7dfD7leqJCAp26VnRoUIPFeTQrh+e/X8KKfYcr04vmocHcO7w/1/SuXWGqQVVRUBxuaKgqNe+ZPDauE5klY5ix7WfQ/2gMadM1+kYn8K++V9cqLiG8gXSclSRFCK/xyPyfqiQoFWy6TlZhEU8t+IV3rp1ATEQIGdn5dt/WI4MD6Jsc3yAxHs/O4/q3PyO/xFLl+TPzCnjqm8XkFpdw20V9nL7eRS3a8mOa/WaMBkVhUIu2TnWinZLUj7GtOjHv6BYO52cR5GdmbFwnekbGO3y8rutsyU5j6cndlNispIS2ZExsF9ngUHic9EmRJEUIr7Aj4yTbM+yvPrHpOr8dPEx6Xh6PXnkxf/ngO7vnPjxhKH4GQwNECW/+spJcSwllfjoooNhALYOKsY7XF61kQo/ORAU7N+JzeevOvLxtCdmlRRf0OIHy7/v2lP5Ox9c8IIQ7UwY7fX62pZAH133GpuyjGJTyfZmtusZLO35kRs+JDG2R4vS1hBD1TwpnhfACu0+ervEcHdh76jTDuybx8i2X0+y8KZ3I4ABeuPESLuvVsUFizCku4av9OykO07EGgTUQykKhNBw049kur7rO91t2O33NAKMfHw69gTA/fxSonNYxnJ3iebrHJQxs4fxu6LWh6Rr3rv2UrTnHgPKpIevZFUZF1lIeXPcZO3KON8hzC+GUiuJXV24+TkZShPACZqNzIx9mY/mv7KhuyQzv2o51+9I4mVtAdGgQfZPjG2wEBeDhn37CaoLzC0R0FUpDwZSrY9RVjufkVvt4ezqGt+DXS+9h3pFtZ5u5WekaGcuktj1pGxpVf9/AedacPsi2swnK+SrGdN7f9xuv9rm+wWIQwhGpSZEkRQivMLBNAkZVxeqgv0mQyUTPuD82yjOoKv1TEtwRHrtOneKXwwcvSFCA8vt0sAaAX6FOZKBzUz3nCjH5Mzm5D5OTna9ncdWi9J0YFLVKf5Zz2XSNX0/uwqrZMKoNl/wJIeyT6R4hvEBkYADX9eiKo/rQqf16EuBXc+OyhjB/924MjoJTQDOVv7FfmuobdRxFttIau9lquk6pZnNTREKcR5q5yUiKEN5i2sihnCksYsHufRhUFV3XURSwaTrXde/C3YP6eSy27JLi8hUyjt7UFRjXoxOto8IdXis9P49v9uwio6CA6MBArkzpRHxYWP0G7IQ2wdE1nhNtDnaqo60QDUFW99QySZk/f36tn2DUqFEEBATU+nFCNDUmg4HXr7qc29Iz+GbbLrIKC2kRGsLVqZ1JaV7zG2pDahUSWu3qm3MZFZVnxo2we1zXdV5e/Tsz169BURRURUHXdV5bs5IpqT14csgwuw3bGsKE+J7M3LvE7qdNFYXrE/s5tfxZiKaqZ8+etTpfURTmz59Pq1atnDq/VknKhAkTah3Mvn37aNu2ba0eJ0RTlhrbktTYlp4Oo4qrOnXitVUr7R43KAqTUrsSYLI/6vDupvW8tX4NUJ6wnJv0fLR1EyFmMw/1H1R/QdegRUAoj3a+lOnbf0BFQTsnW1FR6BgWw81tB7gtHiGq5eVTNps3b+avf/0rwcHBNZ6r6zozZszAYrE4ff1aT/dkZGTQvHlzp84NCQmp7eWFEF6oVWgo9/cfwOurV11wzKAoRAcGck9f+9NRFpuV/5xNUKqjU57E3NGzD8Em9zVRm9SmHy0DQnln7zJ25KYDEOLnz7UJffhT8lACpKGb8CBfme55+OGHnc4LXnnllVpdu1ZJypQpU2o1dXPTTTcRGhpaq4CEEN7p8k7J7Cg8wcq0IxQWW8GiYlBURrZtx5PDhtHcwSeptcePkVfDp6cSq5Xfjh5mbFL7+g7doWEtOzKsZUeyLAWU2qxE+4fgJ6t5hDdwtfjVDaMwhw4dolmzZk6fv3PnTmJjY2s+8axaJSmzZs2qzenMnDmzVucLITxH03V+yzjIkvT9lGpWOke05IqELhgVlYdXfc8PR3ejKgqqWQGTRqDBj6d6DCMkwMxbu1eg6To9oltxeetOBBirTvsUlZU5FYOz5zWEKHPNw9VCiKoSEsrbIFitVl544QWmTp1KXFyc3fPj42u3ZYes7hGiidF1nV8OHOTTLZvZezqLYJOJoe0SWZq3hwOFpzEq5Z0JPj+4membfyElpAWbs04A5YlMRe1Gsa2UaRt+BIXKx8w5sJkXNv3CO0Mm0qfZHy9GSRGRTsXWzsnzXGHTNVaf3sFPGWvILMkm2hzGmJZ9GRTdFYOMoAivcm4f5ro+3j2MRiP//Oc/mTx5cv1et64PfOihh6q9X1EU/P39SUpKYvz48URGNvyLjhDewmKzcqqwiEA/I5EBtW9q1tBsmsbDPy3k2127MChK5WaG+8+cAVWHaAWr6Y/mZsXWMjaeTq/mSjq68sdLoPWchmj5pRZuXTqHn8b+ibjgcADaRUbRKyaWzRknLthAEcp3Ok6KjKJbi4YtGC6xlfLktnfZnLO/slj2cOEJ1p7ZRafQRKan3kmg0b9eniuzJJ8vD2/k95MH0NDpHZXAdW16ERcUUS/XF02AD0z3nGv48OEsW7aMxMTEertmnZOUTZs2sXHjRmw2Gykp5c2b9u7di8FgoEOHDrz11lv89a9/ZcWKFXTq1KneAhbCG+WUFPPGutXM3bmtcsqiT0wrHug7gEHx7ukK64yPN29m/q5dABcmCxqQZYKWlsrsQ9Nq+CRWzWENHYvNysf7NvB4jz+WJM8YPpqrv/iMwrKqOz0bFAWzwcjLIy9p8OW+M/fPY2vOgco4z/1zd94R3tj7JY91usnl51mZeZB7Vn9Gqc1Wef2t2ceZtX8VL/a+ksviurj8HEJ4m7Fjx/LYY4+xbds2evXqRVBQ1f3FrrjiilpfU9Frarlox2uvvcZvv/3GrFmzKotjc3Nzuf322xk8eDB/+tOfuOGGGyguLmbhwoV1eQq3yMvLIywsjNzcXCnyFXWSU1LMVV9+xtHcnCpvvpV9QEZfyhXtG2bTv9rQdJ2h775Hen6+4xOjLBBQPjKi2ZSzn8bOSx6U8u/TUU4RExjK7+PvrXLf4ZxsXl+7iu/37cGqaRgUhUvaJfNAv4EkRzbcPj0AuaUFXL/qGay6/Q6yKgqzBzxNlLnuzeUyi/MZ/fMblGrWaj/IqorCvGF30j6sRZ2fQ3iOO94zKp4j/q1nUAPqPrKnFZeQdvczbnt/U1X7TewVRcFmq3335jqPpPzzn/9k0aJFVb7xsLAwnnnmGUaPHs0DDzzAU089xejRo+v6FEL4hDfWrb4gQQEq+4A8+uvPDEtsS4jJ7InwKp0sKKg5QUEHi6EySVEU3e4yxpoGPUqsFxbBJoZH8K/Rl/L8sFFklxQTbvYnyE1LjnfkHXKYoED5qMq23INc3LxHnZ9n7uH1lOk2uyPtCgr/O7CG53rW/lOlaGJc3cnYzR1nNQd7j9VVnffuyc3NJTMz84L7T506RV5eHgDh4eGUlpbWPTohvJzFZmXuzm3V1llUnmO18t3e3W6MqnrOv1yd8704eJCjMVhVUWgfbn9ZYqCfH61CQt2WoEA101t21NRZtya/Zex3eA2brrH85H6XnkMIb3Tw4MF6v2adk5Tx48czdepU5s2bx7Fjxzh27Bjz5s3jtttuq+xMu3btWtq3d2/PAyHc6VRhYY3LZo2qyv7sM26KyL7mwcHEhYbWkKwoYP7j05CigKKendo595G645EUTde5ObmXS/HWt46hrat+D3bPc62GyN6uyrU9Rwhdd/3mTklJSQwbNoxPPvmEkpKSerlmnZOUt99+mxEjRnD99deTkJBAQkIC119/PSNGjKjsj9KhQwfee++9eglUCG8U6MSuxJquO3VeQ1MVhT/16e2g4F8Hgwb+5yQpwKCWifxn8JWknDMyYlKNdAxvfvYcpcr5ABMSOnNJfId6jd9V0eZwLmqWimrnZU9FpW9kR2ICXKuN6RWdgEGx/9JqUFR6RbV26TlEE+FjuyBv3LiR1NRUHnroIVq2bMmdd97J2rVrXbpmnQtnKxQUFFQO8bRt29ap/v3eRApnBZT3DgHqtLpk4ldz2JiR7nCI/4frbqZTM+faRjckXdf5v0WLmbttW5UlyAoQ4m8mPjGAHQXlPVGa+wczObk3t6X0x2QwoOs6xwtzKbSW0SoolGA/M98d2cHbO1ezM+ckAAnBEUzt0Jcbk3q6dbNAZ+WVFfLQpjc5WpRR5fVbQaFVQDSv9riPCJNr23kcyj/N5YvfqrIX0Pk+vugW+kR7z6ov4Tx3Fs7G/ftZlwtnj933tNvf36xWK/Pnz+fDDz/kp59+on379kydOpWbb765Vt1poR6SlJ07d3L06NELak/qstTIEyRJadp+33eEWb+tZ+2hY+i6TvfWsUwZ1JORnZOcvsZvRw8zZf5X1b4lGRSFi1onMGvc1fUXtIt0XWfl0TRmb9nCntOnCTaZuLxDChO7dCHM35/8Mgtlmo1wU4DTiUZeaQmarhNm8vf6XYOLbRYWnljLghOrOW3JIdIUytiY/lwS06/eeqR8fWQTT2ycj6qolVM7hrN//0un4dyRclG9PI9wP7cmKW/83fUk5f6nPPb+ZrFYeOutt5g2bRqlpaWYTCauvfZaXnzxRWJiYpy6Rp2TlIMHD3LllVeybds2lLNLLeGPT6J1WWrkCZKkNF0f/Laelxf8VmVEQVUUNF3n9qF9eGjMYKev9c2eXTz268+U2qwYVBVd17HpOsMS2vDGmMvdumme8A7bs9P5eP9qVmQeQNN1eke35uZ2/ejXrI2nQxMucOsS5NddT1LSHnB/krJ+/Xo++OAD5syZQ1BQEFOmTOG2227j2LFjPPvss+Tl5Tk9DVTnJcgPPPAAbdq04ZdffqFNmzasWbOGM2fO8Ne//pWXX365rpcVwi12pWfy8oLfgKqrPiqmbN5bto4B7VozIMm52oEJKR0ZntiW+Xt3cSD7DIF+Ji5NSqZzM+mF0VR1iYjlpT5XeToM4ct8rOPsq6++yqxZs9izZw+XXnopH3/8MZdeemll/5Q2bdrw4Ycf1qojbZ2TlFWrVvHrr78SHR2NqqoYDAYGDx7M9OnTuf/++9m0aVNdLy0aiMVSxpJfd7Fq5T5KLGUkJ7fk0su6ERvb9Np0f7Z6CwZVwaZV/1tsUBU+XbXZ6SQFINRs5qau3espQiHE+Wy6xvbcA5wpzSPSFEqXsHYOi5SFe82cOZOpU6dyyy232J3Oad68Oe+//77T16xzkmKz2QgJKS8wi46OJj09nZSUFBISEtizZ09dLysaSFpaFg//9TNOncpHUcqXpm3ccJg5n63i/gfGcMX4np4O0a22pmXYTVAAbJrOtmMZbozI99g0jZNFBfgZDET7B3p9LYrwbb+d2sJ/93/N6dLcyvuiTWHclXQVg5t182BkDcjHmrnt27evxnNMJhNTpkxx+pp1TlK6dOnCli1baNOmDf369eOll17CZDLxzjvv0LZt27peVjSAsjIbjz48hzNnCoA/1s5rZ9+kX39tIbGtIujdu/HMlZdZbSzbsJ8Nu9LQdeie0orhfZIx+VX8k695HNTPIJ/QqmOxWXl761o+2rWR08VFAHSIaMbd3foxvp3s0yXq32+ntvCPnbMuuP90aS7P7ZzFk51ubZyJig9N9+Tl5VXWvfz4449YrdbKYwaDgcsuu6xO161zkvLEE09QWFgIwN///ncuv/xyLrroIqKiopg7d25dLysawIrf9nDyZJ7d46qq8Pmc1Y0mSdmfdooHX57HqewCDGcTjXlLtvLa7GX866EJREYEkX4i1+Eu6AZVYUQn51f4NIQym40f9+9l7o5tpBfk0zwoiGs6dmZ8+46YjXX+1XUtJs3G1J+/YmX60SpLbPdmn+L+pd9zOC+bB3oM8khsonGy6Rr/3f+1w3P+e2AeA6O7osrUj8uOHz/Oo48+yoIFCygqKiIpKYlZs2bRu3dvu4/5/vvvefLJJyvLPK677rrK/ADKF9TMnTuXa665ptbx1PmVbsyYMZV/T0pKYvfu3Zw5c4aIiAgZ9vUya9cexGBQsNmqT6s1TWfjxsPYbFrlm7qvys0v5u7pX5BfZAHAZvujMVluQTH3vPglA/u1w1ZkhSDKP2mc/89VL1/lc8OA7u4K+wKFpaXcMv9r1p84Xrni6GhuLuvSjzNr8yZmXzmRiIAAt8c1d89WVqQfueD+ip/yqxt/Z2xiCu0jot0bmGi0tuUcqDLFU51Tlhy25x4kNdyzHyzqnZtHUrKzsxk0aBDDhg1jwYIFNGvWjH379hER4bhu8Z133uG+++6rct/+/fsrZ1VeeuklPvjggzolKfX6jhQZGSkJiheyltlqbI+s61Xf0H3Vt8u2kVdYUjmVdS5N0ykuKWPR6t1oNvCrSPSr6dB4aYf2JESFuyfoavz9tyVszEgH/lhxpJ8Nbt+Z0zz6i2d2Fv941yaHjeUNisKcPVvcFo9o/M6U2h8Frst5PsXNHWdffPFF4uPjmTVrFn379qVNmzaMHj2adu3aOXzctm3bGDTI/gjq2LFjWb9+fe2COculMeOSkhK2bt1KZmbmBbsf+kozt6YgpUMMS5bstHtcUSAuPgqTyTNTCPXp13X7HCZkmq6jWQA/BdUGpjzQTKAZy3+fVSuYrQoBrv1quCS7uJivd++028HWpussPnSAtNxc4sPC3Brbwdxsh697Nl1nT/Zpt8XTGOWVFbMt5yiartMpLI4os2918a5vkSbn+ns4e15TVLHpbwWz2YzZfOGu7PPnz2fMmDFMnDiRZcuW0apVK+6++27+9Kc/Obz+iRMnqlxvyZIlxMfHV34dHBxMbq7j0TB76vxK/NNPPzF58mROn77wBUlRFJ9p5tYUjB7TlfffW0ZpqbXa47oOV19tf77RlxSV1LzrtnLe3w2l5bdKKkSGBNZ3aE7bfPIE1hq2PNeBtenH3J6kBBiNlJXa/91WFYVgP2lcVxcltjL+tetHvj22gTK9/GdsUFRGx3Tl0U7jCPFz//SeN+ga3o5oU5jDKZ9m5nC6hDXCBRv1tLrn3IQB4Omnn+aZZ5654PSDBw8yc+ZMHnroIR5//HHWrVvH/fffX+OKnMjISPbv31/Z/+T8+pV9+/YRGRlZp2+hztM99913HxMnTuTEiRNomlblJgmKdwkNDeCJJ8djMCgYDOdsBnd2au7iiztw6WXdPRRd/Upu3QyDav+XWlUVoiOCHJ5j03Qu7eu5zfHcvXNpbYxr2wGDgyldTde5rI13bSzoC2y6xoMbPubrtHWVCUrF/QvTt/LntR9QYnO823ZjZVBU7kpy3BTvrqSrGmXRrKK7fgNIS0sjNze38jZt2rRqn0/TNHr27MkLL7xAjx49uOOOO/jTn/7Ef//7X4dxDhkyhDfeeMPu8TfeeIMhQ4bU6WdQ5/+rJ0+e5KGHHqJFC+mo6QsGDW7PW/+9lWHDOxEQ4IfRqJKU1JxHHr2M/3tygs8XzFa4ZkR3h/1PNE3ntvH9MRmN1e5LowDj+neibUvXdsJ1RfeWLTGqjv9/KECf2FbuCegct3XujVE1VPuzMygKbUIjuCSxvdvj8nXLTu5iXdbBajcl1NDZnZfOD8ebboPMwc268WSnW2lmDq9yfzNzOE91nsqg6FTPBOYjQkNDq9yqm+oBiImJoVOnqm0EOnbsyNGjRx1e/9FHH+Xnn39m4sSJrFu3rjIZWrt2LVdffTWLFy/m0UcfrVPsdZ7uueaaa1i6dGmNBTXCeyQltWDa4427Vqh7SiuuH9OTOQs3Vjatg/I3dR0YP7QLV12cSoe2LXjiw584nJld+VijQeXaId148ErPbv4WGRDIhJSOdutSDIrC0IQ2tA4Ld3ts7cKj+HjMNdz5yzfkWErKkykdrLpG+4hoZo2+BpPB4Pa4fN03x9ajotjdOVkB5qWt4+rWfd0bmBcZ3KwbA6O7sj33IFmluUSZwugS1rZRjqBUcvPqnkGDBl3QjHXv3r0kJDjesbtHjx7MnTuX22+/na+/rrpcPCIigjlz5tCzZ90ahtZ5g8GioiImTpxIs2bN6Nq1K35+flWO33///XUKyN1kg8HGR9d1flyxk09+XM/B41kAtG4ZwQ1jezHh4q6V01y6rrP5QDoHM7LwN/kxqFMi4cHeMe9fUFrK5G+/ZFPGicolyBWJVnJkFHOuupbIAM/VzZRYrfx4eA9bT2XgZ1C5OK4tA2NaN7nVfVbNRoG1hECjGZNa92Lra397gwMFJx2eE2EKYvGIx+v8HN4qo+QY6cVHMCp+JAd3JsAY5OmQHHLnBoOtX/yHyxsMHn30CadjXbduHQMHDuTZZ5/l2muvZe3atfzpT3/inXfe4cYbb6zx8UVFRSxcuLCy82xycjKjR48mKKju/0/rnKS8//77/PnPf8bf35+oqKgqL06KonDw4ME6B+VOkqQ0Xrquk19kQdd1QoP8fe4N1GKz8v3ePczZsY30/DyaBwUxsVNXrkzpSMB5HwqEe5225PHxoSX8cHwdJVoZBkVleItUbmkznMTg2k+B37N2FmuzDjgcSWkX0pK5g++r9rgvOmXJ4LOjMzlU+Mcnd6Pix0XRY7gs9noMineuNnRnkpLw4j9Q/V1IUkpKOFKLJAXKG7NNmzaNffv20aZNGx566KEaV/c0pDonKS1btuT+++/nscceq9zh0BdJkiKEqI2TJTncsfY/ZJcWYNP/WIVlUFT8FAP/7n0nncLiHVzhQgvSt/DEls/tHleAhzpexg2JA+satlfJKT3DK3sfo8hagMb5K9kUekUM4qaEez0SW00ae5JSW2+88QZ33HEH/k7G+d///pcbb7yxcu+/mtQ5uygtLeW6667z6QRFCCFq69Xd31yQoED5SpxSzcqz2z6jtp/9RrbsTKewVqjVtMozKCrxgVGMj+vlUtze5NfM+XYSFACdDdkrSCs65Pa4vE7FEmRXbg3sL3/5C/n5+U6f/8gjj3Dq1Cmnz6/zeNqUKVOYO3cujz/e+OZIhRCiOqdKcvn91O7K7r/n09A5VpzFpuyD9Ix0flGBn2rkrT638tz2efyasbPK9ftEteXZ1GsIMla/IsPX6LrO2jNL7SQo5VQMrDuzjPjAxrGfWJ35wAaDuq4zYsQIjE7uJ1ZcXFyr69c5SbHZbLz00kssXLiQ1NTUCwpnX3311bpeWohG42D2GQ6cOUOAnx99Ylt5bGNAUT+OFJ6ym6BUUFA4WHCyVkkKQIhfAC/1uIETxTlsPHMITdfpFtGa1kGNax8kq16GRStxeI6ORp41xz0BCZc8/fTTtTp//PjxtWrsVudXzG3bttGjRw8Atm/fXuWYrxUoClHfDpzJ4vFfF7Eu/XjlfWFmM/f06c9tPXrJ74iP8jfUXLCsozt1nj0xAeFc1qpHnR/v7YyKH2Y1AItm/xO1gkKY0fGmdk2CD4yk1DZJqa06JylLliypzziE8AolpVZW7DxEVn4RzcODGdwxET9j7fp+HM3N4eovPqOwtGqL/lyLhRdWLCPXUsJfBwyuz7CFm3QIjSPCFEx2aYHdcwyKyoBo6bprj6Io9Iu8mBWnF9qd8tHQ6Bs51M2ReZ9zu8bW9fG+rlZJytatW+nSpYvTxbI7duwgJSXF6bkqITzp8xVbeP27FRSUlFb2JAkP8ueRqy7mst4dnb7O62tWUVhais1O8eRb69ZwQ5duxDhZ3S68h1E1MKXNcF7bM7/a4woKl8f2Icos/28dGd5iHJtyVlJoza82UekdMYRWgYnuD0x4nVplDz169CAjI4NmzZo5df6AAQPYvHkzbds2wo2fGgFd11m/7ShrNh/CatPpmNSSYf2TMfl5T1JZWFzKwuU7Wbp6L8UlZSQlNmPCqG6ktK3f7Ri+XLmV57/4tfLrivQip7CEx//3E34GA6N71NzuvbisjO/37raboED5J8l5u3dyd59+roYtPOCa+IFklxbw8aFfUVAqp+5susaIFqn8pUPj7upcH8L8Irk/+e/MPfo2+wv/2KHdTzExpNlYxsZc68HovIgPTPc0tFq9G+m6zpNPPklgoHOdLktLa96RVnjGydN5PDx9HgeOnsZgKF/4+MWPGq/P8ueFh8fTvWOcp0PkyPEz3Pfs55zJLgTKf9/2HDzJ/MXbuOXq/vzp+kH18jylViuvzV/h8JxXvl3OyG7JqA42JgTILimmrIYdjFVFIaPA+SV7wrsoisIdSWMY16oPC9I3kFGSQ7gpiNEte5AUEuPp8HxGtLkF9yQ/RWZJOuklRzEqfiQFd8Lf4B1dn72CJCm1S1KGDBlyQV9/RwYMGEBAgPyD8zaWUiv3P/sFJzLLtz632f54U80vsPDQP77io5cnEx/jucI1q03jr89/RU5uUZXfs4rNAz/8ajVt4qMYOajq3P/hE2dYvG4v+UUWWrcIZ0y/DgQHOl66uXL3EfKLLQ7PycjOZ8vhdHq0dbypX5jZH4OiOBxJ0XWd6EDvbv0tahYTEMnUdqM8HYbPa+4fS3P/WE+HIepRaWkphw4dol27di6Xe9Tq0UuXLnXpyYR3WLp6L8cycqo9puk6VquNz3/YwF9vH+newM7x+/oDnDiVZ/e4oih8+u26yiTFUmblHx/8zE+rd6OqCqqiYNM0/vXZMh65aThXDOli91rZBc6t23fmvCCTiUuSkvlp/z67iYqm64xPcb7GRQjRNPla4WxRURH33XcfH330EVC+OWHbtm257777aNWqFY899litryntYpugJav34mgFrE3TWfy78yNmDWHd1iMYDPb/eeq6zt5DmRQUlo+AvPDhIn5eUx6zpulYbRq6Xp68PDfrZ5ZtOmD3Wi3DnStyjIlw7rz7+w7EbDCi2vkh35TanYTwcKeuJYRownyg4+y5pk2bxpYtW1i6dGmVNvkjR45k7ty5dbqmJClNUFFxKTV17S6xlLknGDs0zbmPADZN41hmDj+u3IVm55tSFHjnm5V2r9G3fTzNwoKqaUj+x+PbtYyiQ1xzp2JKjoris2uuo11E1YZFZoOBu3v346khw5y6jjfIKi7i6307+HTXZjacPF7rdu9CCBfo9XBzo2+++YY333yTwYMHV+kF1blzZw4csP9B0RGvSlJmzpxJamoqoaGhhIaGMmDAABYsWODwMV988QUdOnTA39+frl278uOPP7opWt+VGBeFwUEBqKJA61jnOwI2hM7tY6rUypxPAWJbhBEa7M+SDfvtjloA6DrsPXqK46dyqz1uUFWemDgCFC5IVFRFwaCoTLtmWK0asHVt3oKfbpzCVxMn8eLIMbw59nLW3H4Xfxs4GIMP7HdVarPx1O+L6ffpTB5a+iP/t2IRV8+fzagvP2D76ZOeDk8I4YVOnTpF8+YXfpgrLCyscwNLr3q1jIuLY8aMGWzYsIH169czfPhwxo8fz44dO6o9f+XKlUyaNInbbruNTZs2MWHCBCZMmHBBB1xR1fiRqZUFqNXRdbj6ku7uC6gaIwamEBLsj6oo1X4o0IHrLivv3FpYYqlx1Q2UL2e25+Ku7XjzjgkkNq9aLJwcG80791xNn+Ta7WoL5XUzPWJimdipC5cmpxBq9p29Vx5etoD/7dyE9bxN9A7lZnPdd59xMOeMhyIToumoqElx5eZOvXv35ocffvgj/rOJyXvvvceAAQPqdE3vaYgBjBs3rsrXzz//PDNnzmT16tV07tz5gvNff/11LrnkEh5++GEAnnvuORYtWsSbb77Jf//7X7fE7IvaJTRj6sQBfPDFKhSFKlM/igJ9uyVy6cUX/rzdyd/sx7MPXsbfXppXPo1ztruaooNig5EDUrhydDcAElpGYnUw6gJgNKjERDuuKRncqQ2DOiay+/gpzuQX0TwsmOTYxrVvijN2ZmXy7YFd1R6z6TolNiv/2byaVy6+1M2RCdHE+NgS5BdeeIGxY8eyc+dOrFYrr7/+Ojt37mTlypUsW7asTtd0eSRFq6EnRF3ZbDbmzJlDYWGh3Qxs1apVjBxZdQXKmDFjWLVqld3rWiwW8vLyqty8wYEdx3j7ma954c8f8NYTX7Jn85EGfb7brh3IU/dfSmJcVOV9kWGB/Om6Qbz4yASMtWwFX9+KSkqZ+cUKrIr+xxyMAroKugmGDUqpLKwd1iuJ4ACT3WsZVIXR/VIICfS3e04FRVHoGNecQR0Tm2SCAvDN/p0YHAzN2nSd+Qd2U6bZ3BhV02SxlXGqJJcSm/ScEt5v8ODBbN68GavVSteuXfn5559p3rw5q1atolevXnW6pssjKQ8//DCKovDyyy8DMHXqVFq3bk2PHj0YMWIEwcHBtbretm3bGDBgACUlJQQHBzNv3jw6depU7bkZGRm0aFG182iLFi3IyMiwe/3p06fz7LPP1iqmhmSzafz70TksnLMag0FF03RUVeG7D5cz9Iqe/PW1m/AzNcyA15iLOjJ6cAeyc4uw2jSiwoMcrqhxp4++XcPeI5nVFmrqOvz9vwvol5pAoL8Jf5MfT04dw7S3vgeoUkBrUBUiw4K495qL3Ba7r8sqLqJy6MqOMs1GYWkp4f7SB6khHCs6zUeHFvHLyS1YdRsGRWV4827c0nYU8YHOdfwWjYCrUzYeqHNv164d7777br1dz+V3v0WLFrFu3brKr1evXk2PHj345JNPWLNmDS+88EKtrpeSksLmzZvJzc3lyy+/ZMqUKSxbtsxuolJb06ZN46GHHqr8Oi8vj/j42tcb1JdPX13Az3NXA380VbPZyv9lLf9uE2HRwdz192sa7PkVRSEy3Lsai1mtNr5evMXhCp9iSxk/r9zNhOGpAAzvncxbj1zDO9+sYuOeYwD4GQ2MHdCRu64aSHR47ZLlpiw2OJSaXt0CjEaCTXWrsSnVrCzO2MR3x1dz0pJDhF8wl8b2YWxMbwKNNY92NXaHCjK4e/1/KNFKsZ2tCbLpGr+e3MLvp3fyn1530y5Emp81CT423WNvZkJRFMxmMyaT/RFve1xOUsxmM+ZzCgJTU1O57777uOuuuxgyZEitr2cymUhKSgKgV69erFu3jtdff5233377gnNbtmzJyZNVVxqcPHmSli1bOh2vJxUXWpj37hK7y4F1XefH//3OjX8ZS2iEdyUSDSkrt5D8IscdYI0GlQNpp6vc16tDPG8/Fs+ZvCIKiy1EhwcTYPZryFAbpWvad+bfm+xPmRoUhWvbd8VYh1VKRdYSHtr0LjvzjqKgoKNz2pLHG3u/5etjv/NGz7uIMoe6Er7Pe3HXFxTbLGjnvcPY0CixlTJj1xe82/cBD0UnhH3h4eEOV/HExcVxyy238PTTTzu9UbHLY/smk6lKojBnzhwAjEZjvezdo2kaFkv1b1gDBgzgl19+qXLfokWL6lxF7G7b1xygpMjxz8haZmPzCs82VnM3sxPTW7qD8yJDA4lvESEJSh0lhEZwZ2qfao8ZFIVI/0Du7t6/Ttf+99757M5LA0A/501YB9KLz/D8jjl1um5jcbAgg515Ry9IUCpo6OzJP8a+/ONujkx4hI/1Sfnwww+JjY3l8ccf55tvvuGbb77h8ccfp1WrVsycOZM77riDN954gxkzZjh9zXqpSbnyyiuZO3dulWmT06dP200u7Jk2bRpjx46ldevW5OfnM3v2bJYuXcrChQsBmDx5Mq1atWL69OkAPPDAAwwdOpRXXnmFyy67jDlz5rB+/XreeecdV78ttygrtTp1XqnFufMai/CQQLokxbDzQIbdBm02m8bQ3klujqzpeKzvUKICAnlr8xpyLCVAeZXKkLhEnhs0ihZBtZ8+yy0rZGHGRrtvwDZdY332Po4WZtI6yLnGeY3N4ULnetAcLswkOcTxPlLC9/laW/yPPvqIV155hWuv/WMX63HjxtG1a1fefvttfvnlF1q3bs3zzz/P448/7tQ1XU5SJkyYQF5eHr1792bgwIF06dIFRVH4/PPPa92nPzMzk8mTJ3PixAnCwsJITU1l4cKFjBpVvonX0aNHqwwRDRw4kNmzZ/PEE0/w+OOPk5yczDfffEOXLvb3afEmbTo6N6/crlPTezGaemV/HvrnvGqPGVSFLsmxdEmSHWcbiqIo3JHal1s692JjZjolVitJ4ZHEhYTV+Zp78o5h1WteEbQ193CTTVICDM7N2Tt7nhDutHLlymrbf/To0aNy1e3gwYM5evSo09esdZLyj3/8g549e9KrV6/KlTWTJ09mwoQJfP/99+zcuRN/f38++eQTevfuXatrv//++w6PV7fB4cSJE5k4cWKtnsdbxCRE03NICpt/34dWTZ8P1aCSnBpPmyaYpAzs3pbHbhvFP2ctRtfL+7egKNhsGh3atuSlv4yvcwdD4TyTwUD/GPcWljfl/6s9ItoRYDBTbLM/Cu2vmugZIaOIwvvEx8fz/vvvXzCd8/7771fOtGRlZREREVHdw6tV6yTlqaeeqnxzaNmyZWXC0qtXL4YOHcoNN9xQ20s2afe/NImHrniVnKyCKomKalAJDg3gb6/f7MHoPGvC8FQu6tmOH5Zv53D6GQLMfgzr255eneIlQfFBHUNb46cYKKthNKV7eFs3ReR9/A0mbki4mPcPLrR7zvUJQwk0ekfxv2hgPra65+WXX2bixIksWLCAPn3K69rWr1/P7t27+fLLLwFYt24d1113ndPXVPRa7hjWr18/Tpw4wa233kp0dDQbN25kw4YN7N69G5vNRrNmzejZs6fP7KGTl5dHWFgYubm5hIZ6ZlXBmcw8vnr7V36avZKi/BL8g8yMvrYf19w1gmaxzmecQni7f+2ex7fHV1Vbl6Ki0j8qhRndp3ogsvqXW3qa309/x6bspRTbCgj1i6JP5GgGRF+KvyHQ7uM0XeOt/T/w+dHlqKioSnnvHw2dq+MGcV/7K1AV7+hn1BS54z2j4jmSHnsBg3/dl+XbSkrYP+Nxt76/HT58mLfffps9e8oXfKSkpHDnnXeSmJhYp+vVOkmB8grexx9/nD59+vDqq6/Srl07LBYLmzdvZuPGjWzatMlnile9IUmpoOs6ZRYrfmajjBTYUWq1YlBVCoos2DSd8OAAp/btEd7BYivjkS3vsyn7ACoKGnrlUuR2wTG81vNOwvx8f7l9Zskx3jnwOCW2InT+GCFVUIg2x3JHuxcINDrepiG9+AyLMjZw2pJHlCmU0TE9iQ2IcvgY0fAkSamb7du316letE5JCkBBQQF///vfefvtt7n77rt58sknCQy0/+nAW3lTkiKqZ7VpzF2zlU9/38Sx49n4FYF6dsFT84hgrh/Vk0kje3i8lb9wjlWzseL0Dr47voaMkmyiTCGMje3D8ObdMBt8f9m4ruv8e99DZJakVUlQKqiodA0fzLWtH3R/cMJlbk9SzC4kKRbPJin5+fl89tlnvPfee2zYsAGbrfZbadR5zDA4OJiXXnqJ9evXs337dpKSkvj444/rejkhqmW1aTz4yXdMn7+E9KPZmPNAOWdFdmZ2Af/+YjmP/Oe7GjcZFN7BqBq4uHkqr/T4E58OeIQ3et3F2JjejSJBAUgr2svJkiPVJigAGhrbcn6n0Ood+4YJL+ZjfVIqLF++nClTphATE8PLL7/M8OHDWb16dZ2u5dLEptVqxWKxMGnSJOLi4rj11ls5c0a2cBf156t121iy6yBYdfwKy+87f3JH1+G3LQf5ceVOt8cnxPmOF++npjVKGjZOljTsJqJCuFNGRgYzZswgOTmZiRMnEhoaisVi4ZtvvmHGjBmVhbS1VevVPTNmzGDbtm1s27aN3bt34+/vT2pqKn379uXOO+8kLKzufRSEON+nKzejAMbi8g8F9l76VQW++HUzV1zkGz1ynFFQYmHu+m18sWEbp/ILiQ4O5OqeXbi+TyqhAbLHjbcyKEac+Qhbfp4Q9vlKM7dx48axfPlyLrvsMl577TUuueQSDAZDtT1TaqvWvyWPP/44iYmJTJkyhUmTJtG+fXuXgxCiOjZN40Bm+cicanX82VTT4VB64xnFyyoo4qb3P+fImezKvZ2Onsnl9V9W8sWGbXx623U0D5VNE71RckiPGs/xNwTRKkB6nYga+MgS5AULFnD//fdz1113kZycXK/XrvV0z0UXXURWVhbPPvssvXr1YtCgQdx3333MmjWLLVu21KkwRojqqIqC0VD+T1RXav59c2bPH1/x1PzFpJ3JuWDzSU3XOZGbz+Pf/OzS9U8XFTFn21beWb+Ohfv3USq/t/UmwtScLmEDURy8vA6OHo9RbRw1OEKsWLGC/Px8evXqRb9+/XjzzTc5ffp0zQ90Qq1f1ZctWwbAvn372LBhAxs3bmTjxo18+umn5OTkYDab6dq1K2vXrq2XAEXTpSgKwzq25dedB7CZdYwO9mI0qAqj+jSOUb30nDyW7D5gNymzaTq/7z/CkawcEqLCa3Vtm6bx4orf+HDzJmyahqoo2HSdyIAApo8cxah28um+PlwVdw+F1jwOFW5HRUVDQ8WAho1eESMY2vwqT4dYI123QMmP6JbloJeh+HWBgGtQDNGeDq3J8JXpnv79+9O/f39ee+015s6dywcffMBDDz2EpmksWrSI+Ph4QkIcL7m3p84fPZOTk0lOTub666+vvO/QoUOsX7+eTZs21fWyQlQxdUhvftlxAN0ftEJQtAunfZSzIy7Xj+rpkRjr2/b0k06N0m47nlHrJOWF5cuYtfmP30/b2aGa7OJi7vr+Oz6+6moGxreu1TXFhcyGAKa2fYYDBVvZnL2MQmseEabm9IocTlxg/Q6HNwTduh/9zC2gZVI+4K6jWxZDwb8h/GUU/7EejrAqXdco1fJRFRN+aoCnw6k/PjLdUyEoKIipU6cydepU9uzZU9ki/7HHHmPUqFHMnz+/1tes1/HxNm3a0KZNG5/dS0d4n9TWMfxz0lgem/sTpZEapmwdxVa1iDY4wMQ/772CxJhIT4ZabwxOdhM1nNfErsxmo6C0lCCTCZPhwp4xJwsK+GjL5mqvVfHzfOX33xl4vSQp9UFVVJJDupMc0t3TodSKrhWhn5kCWkWNV8VS6vJ3TD3nLxAVh+LX1UMR/sGqlbAzezZ7cr+kxFYeb4uAXnSNvIWYwLqtJhH1IyUlhZdeeonp06fz3Xff8cEHH9TpOo1nEl80WpekptCvXWvmrd/BjuMnycsuJsCm0jI8hK5tYxnVtz3+psYzv98roRV+BpUyB31fDKpCn8Q4AE7k5zNz1Vq+3r6TEqsVP1Xl8o4p3DOgH4mRf2yr8OO+vQ6fV9N1NmWc4HheHq2ksWHTVfI9aKfsHNQBFb1wFkr4q+6M6gJWrYTFx+/jVMkOOKcnTWbxJhYf38DAFk/SLvQyzwVYH3xsJKU6BoOBCRMmMGHChDo9XpIU4RMiggKYOrR2u2r7qvBAf67p2YW567ehVdMQWlUUrujWkejgINJycrnmk8/IKS6pnLop0zTm79zNz/v2M3vStXRu0RyAnJJiVEWp9prnyikpkSSlDjJL8vj66HpWnyqvJ+odlcg1CX2ICQj3dGi1oluWUj6uZrcqCiy/uC8gO3blzOFUyXbOj7Oiid7qk9NpFTgQf6Pv7n/mKzUpDUmSFCG80KOXDCUtO5cV+49gUBVsmo7hbJFrn8Q4nrxsOABP/ry4SoJSwabrFJdZuXnuF6ih5YlJbEAoVs1xV15VUYipY4FbU/Z75j4eXD8bq2ar3Dxxa3YaHx5YwYs9r2VkTGcPR1gLuoUaP4LrZW4Jxe7T6zp7cr7AUZwaNg7k/0DniJvcF1h9awQjKa6SJEUIL2T2M/L2TVfy+4EjfL1xOydyC2gRGsSEHp0ZkpyIQVVJy8llxeGjdq+h6Tp5JaVYVRsYykdIymtPqu84Y1AURrZtR2RAIyo8dIMTxTk8uH42ZZq1ynuCho6u6zyy8XO+HHIPbUOaeyzGWvHrDKW/g522/qCCsZM7I7pAmVZIsS3L4TkKKjmWg26KSDQUSVKEaAAZefks2nOAorJS2kVFcXFyG4xq7doSqarCRcmJXJScWO3x/VmOX6QrKDYF3aCXf8I3gmK9MEkxKApBJhOPDL6oVjEK+OLIOqyardoPrRX3fXZ4Df/XdZw7w6ozJfA69EJHu9hrKEE3uy2e6hgUE46npMoZVbNb4mkwMpIiSYoQ9anUZuPZn37lqy070HW9sg9JdFAgL11xCYPbJtTbc/kbnSwWPjcnMQCKTiB+FJVZKw9flJDAE0OH0SbCd+fvPWVF5t7KKZ7q2HSNFZmOi5a9iWJoBaHPoec9Qfny44pGf2eTAv/x4O/ZhMugmogNHMCJotV2N3LUsREfdLF7A6tn7q5JeeaZZ3j22Wer3JeSksLu3bvrHoSLJEkRoh793/eLmL9jV2Wn2IpakayiIu6Y+w2fTb6Wbq1i6uW5eraKIdRsJs9isXuOjo5urPpKpak6qgkWXDeZPIuF+LBQWgZLHUpd2fSad9+2OnGON1ECJ4IxEb3wfbAsA2xgTEEJvAUCJqA4uUy+IXWNnEx60WqqG1FRMBBhbifLkOugc+fOLF68uPJro9GzaYIkKULUk/2ns/h2+65qj+l6ecLw799W8971V9bL85mNRv7cvw8vLVtR/XOio/vp1W56ZFBVUqKlc2h96BmZyKGC03aTFYOi0ivyjxG0w4XppBWdJMBgpmtYEmaDqc7Pres6Z0qzKNVKiTJHY1Lrfq3zKaY+KKY+6LoOaCjKhb13PKl5QHcGt3yWVSefw6aXVW5DoGMjwpzE8NhXvSKZcokHpnuMRiMtW7Z04UnrlyQpQtSTH3furVyBUx2brvPbgcPklZQQ6l8/uxj/qW9vsoqK+WDdBlSlPBspL9gE3aijmS+MxaAoDI1vUy/PX1s5lmK2ZJ1AUaBbZAxhZt8v0r02oS9fHLG/DYhN15jUpj+HC9N5Y+9n7Mk/Unks0ODPxPhRTIwfiaI42kLzQmvPrOaH9G85UZIOgFk1Mzh6KFe0uooAQ/39XMvj8q4EpUKbkFHEBvbjYN4Cckr3Y1DMxAcPpWVA71r/PL1RfU335OXlVbnfbDZjNldfr7Nv3z5iY2Px9/dnwIABTJ8+ndatPdfgUZIUIepJbnFJ+Qujgz4kOpBXYqm3JEVRFKYNG8IN3VOZt30nJ/Lz8Tf5MWf/Fmx2wtB0nampverl+Z1VWFbKPzYs5suD2yqnPkyqgYntUvm/niMIcLa+xgslh7bg/7pewfPb5qMqauWIiuHs3x/qOIZosz8PbnqZElvVqbkiWwkfHf6OQlsxt7a5wunn/DnjR748NrfKSi2LZmFJ5mL25O/mkQ7/h7+hfv6NeTuzIZSOEdd5OgyvFh8fX+Xrp59+mmeeeeaC8/r168eHH35ISkoKJ06c4Nlnn+Wiiy5i+/btdd57x1WSpAhRT+LCw+yOolQwGQxEBQXW+3MnRITz4EUDK78e0yGJqQu+ptRmq2zeZlAUdODFi8eQ2tx9w7mlNhuTf53D5qz0Ko3kSjUbn+3bzP7cLD4ZManWq5/qw4miPBYd20uRtYyk0Cgujk2qUxwTE/qQEtqSTw+tYtWp/ehAn6hEbmwzkF5Riby06yNKbKV2C2y/SvuFy2Muopl/zYXLWZbTfHXsc6B8Su9cGhrHi9NYfPInLo+dUOvvQ3iZepruSUtLI/ScBo32RlHGjv1jT6bU1FT69etHQkICn3/+ObfddpsLgdSdJClC1JPxXTrwz19/w2onUTEoCuO7diTAr+FHDQbGtWb5Dbcze+dWlqUdwqpp9I2J48bO3Wgb7t49jr47spONp49Xe0xDZ03mUX5K28PlCR3dFpPFZuWZdQv5/OAWgD9WYfkH8erAKxjcsvbTYakR8aRGxF9wf7HNwm+nN6HZ7TtSXja0JHMd17YeXePz/H56OQrKBQlKBR2dpZm/cFnM+EYx5dGk1VOSEhoaWiVJcVZ4eDjt27dn//79LgThGh+vKhLCe0QGBfLoiPI+I+e/NRgUhcigQO4fMsBt8TQPCubBPgOZd9WNfHfNzTw5aJjbExSAOfs3o9ppIAegojBn/+Y6XbtMs7IscysfHfqZz48u5XjRaace9+jqH/ji4NbK94DKVVglRUxdMpctWel1iqc6+WWFaDWs7lEUlazSPIfnVDhpybCboFTIs+ZRqpU6HaMQ1SkoKODAgQPExNTPisS6kJEUIerRlL49iQgM4I1lqziakwuUf0of1SGJaSOH0iIk2MMRul96YZ7DPiIaOscKcmt93fVn9vD8jk/JKSvEoKhous7M/d8xonkPHu54HWZD9SNW+3NPM//IjmqP6Wff/t/Y9hvvX1w/dQ7BxkBURXWYqOi6RqTJuU+6AYZAhyMpACoqfqrv1vmIcgrVLs6r1eNr429/+xvjxo0jISGB9PR0nn76aQwGA5MmTXIhCtdIkiK8ntVqY++RU5TZbLRpFUVoUN0LAk+eyeeb37axL+0UJj8jQ7q1ZXivZEx+9fercEWXjozr3IF9p7IoLC0lISKcyAaoQ/EVUf6BnCjKs/uWqgDNAoJqdc3deUd5bMt7lTUu5y7/XZK5GYtWxnOpt1b72O+O7KhxFdbS9APklZYQanK9+DTQ6M+g6G78fmqL3SkfHRjW3LkNNHtF9GH5qSV2j6uo9Irog+rry2+F25cgHzt2jEmTJpGVlUWzZs0YPHgwq1evplmzZi4E4RpJUoTX0jSdzxZs4H/fryMnvxgAP6PKmIEduf/GobVOVr75bRsvfLwY9PIVLqqi8PPaPcTM+52Zf72GuObh9Ra7oii0by59SAAmtktl+5kMu8f1s+fUxseHFlX2njmfhs6K09vZn3+cpJBWFxzPsZScXRXjeBVWfpmlXpIUgBsTLmVd1k5KteqLZye0upjm/s5NxXUI6US74GQOFRy4IOlRUFAUlUtiLq+XuIVnubvj7Jw5c+r+ZA1EUm3htV75+Ff+/dnyygQFoMyqsWDFTv783FwKi52fc1+/O41/fLgITdMrP31X/Jl5Jp97Xv0Kq9Xm6BKijq5u25W2oVEYqiniNCgKKeHNuCLB+Q3riq0WVmftcliIalBUfj25qdpj8cHhVVYZVcdsMBJlrr/Rr/jAFrzU/QESg2Kr3O+vmrgxYSxT2453+lqKonBv0l9ICSkvNFZRMZxttBZoCOT+5IeID/RcXwsh6pOMpAivtOdwJl8t3lLtMZumc/j4Gb5ctJkpV/R16nofLViHqipo2oVvTjZN5/ipXJZuPsDI3u1diltcKNBo4rORN/LXVd/x24lDVY4NiWnLywMud34fIqDIZqmxcBSgwFpS7f0T2nThpc1L7CYqBkXhqjZdahWTM9oFx/HvXo+yPz+NtKIM/A1mekSk4G+o/SZ4QcYg/pLyCEeLjrAlZyNlWhlxga3pEd5LalEaE9lgUJIU4Z3mL92GQVWxadV/WtZ0nXm/bHEqSbHaNFbvOOyoxxoGVWHFloOSpDSQZgFBfDz8eg7mZbEu8xiKAn2bx5MYUvvVRqF+gfirJkocrF7RdZ3YgKhqj0X7B/Foj+E8v3HxBccMikK0fxD3d2m43aCTQuJJCrlwqXJdtA5MoHVg/W1aKbxQI0g0XCFJivBK6afy7CYoFU6eyXfqWpqmOUxQoLxJbKlM9zS4tqFRtA2tPnlwlp9qZGxsX749ttLulI+iKIyOsV+IeluHvkSZA/nXtuWkFeQA5auwLonvwOM9R9AiUDZcFMIbSJIivFJYsD8GVcFWzfRMheBA54bJTX5GWreI4OjJbLvn6ECHhOa1DfMCuUUlfLZqC1+u20ZWQRFRwYFc3acLkwZ0JzywabQpd4fJiaNYdXoHmSW5VRKVinLYPyeNI9LkONGY0KYL4xM7syf3FEVlpSSERBDlX7tVRkI0JHcXznojSVKEVxozsAM//V79jsJQPj1z6WDniy0njezBi5/+Wu0xBTAaVK4Y1KW2YVaRmVfATTPnciInv7Le4UROPm8tXs289Tv45K7raB7a9Pqk1Kfc0mLmHl7L10c3crpEx6iGoahFmPwsqAq0CmjGLW1GM6JlT6eupygKHcJdT06FaBBSkyJJiqiZruvs2pnO9q1pKAr06JVIUnLD7v3Sr2si3VNasXVf+gXFrqqqEOhvYtJY5zfJu3JoKmt2HmHppgOcuwegQS3fz+a528cSHuLazrFPfbWIjNz8CwoyNV0nIzefJ774mXduu8ql52jKThbnMXnF+2QU51Yu47VooGAi2BDFP3tdRbeIRGkFL0QjIkmKcOhEeg5/f+or9u3NQFXLX/w1TadL1zieePYqoqOdn7s/cCiTI2lZBPib6JHaGn9/+6sQVFXhlb9O4O/v/MSy9eWJhaKUr86JbxHOP+67nJbRzu9FYTSovHj3OL79bTtzFm/iUHoWRqPKkO7tuHlMb7q0da3tc1pWDiv2HLb7wcWm6fy+7whHs3JoHRXu0nM1VU9u/oaTJRd2r9XROVVSwHv7VvJmv9rvuSOEt5LpHklShAP5+cX85d6POZNdAFBlRGPXzuP87YFP+O/7tztMNgAOHD7FS68vYPfePxp6BQSYuPGaftx4bf/K5Od8QYFmXnxwPEczslm99TBlVhsdElvQs2NcnT4tG1SVq4amctXQVDRNr0x86sPO45lOjazuOHZSkpQ6OFKQxapTB+wet+kay0/uJb0oh9jA8Fpfv0yzsTX7KAXWEloHRdMm2HMdNoWoJNM9kqQI+378bjNZWQXo1SyNsdl0jqWd4dfF27n08h52r5F2/Az3PvwpJSVlVe4vLi7lvf/9RkGRhbumXuwwjtYtI2jdsuYt7GvDXmJUVwbVub6IRoP0T6yLHTk1b/innz2vNkmKrut8lbaWt/f9wpnSwsr7u4bH83+dJ5Ac2rDTmr7IqlnYn7eAPbnfUWjNJMAQQXLYZbQPvRyTQQqPRf2SV0xh188/ba02QamgKLB44XaH15j16e+UlJRV20QNYO7XazmZ6dzur67SdZ3Nu47x3tzfeeezFazccBCbzfEyZ2f1btMKvxoSEKOq0qdNXL08X1PjbBJoqOV+Nf87tILpO+ZXSVAAduQcY+rqtzlUkFmr6zV2pbYCfki7m5WZL5Nl2UuJLZvs0kOsPfUm84/eRpE1y9MhNioV0z2u3HydjKQIu/Lyih0e13XIzSmye7youJSlK3bbTVCgfLrl5yU7uPm6AXWOsyYnTuby+7r9zPlxIydO5WFQFVAUbDaNmGahzHh0AkkJrg3vhwcFcHWfLny+Zlu1nUxVReGq3p0JD3KtOLep6h2VgEFRq2wkeD4/1UCvKOcbm+WUFvGfvT9Xe0xDx6JZeXPPIl7pdWOt422sVme+zhnLvrNf6VX+zC87wfKMf3BJ3L88ElujJNM9MpIi7GvVKsLhtIhqUIiNsz8Nk59fgs3m+LdEVRSyzhTUOUZHsnOLeOz5r5l45zv868MlnMjMBcqLWCtGUE5m5XPv059zqh5ieOSyoQxOSQTKVw2d++eg9gk8Nu5il5+jqYoyBzM+vhuqnc3nVRSubt2TMJPzSeDPJ7Y6THpsusbyzF3klNpPxJuSYms2B/J/Rre7k7ON9KJ15JYedXNkjZheDzcfJyMpwq7LrujJ9m3H7B7XbDqXXWG/HiUkpOaGbJquExVR/71DiktKuf+JOaQdP0Pl+1o1RbKaplNYbGHews3cMWmwS89p9jPyn8njWXPgKPM27CQzt4DmYcFM6NWJ/u1a13sdTFMzretlZBTnsfLUgcpRlYo/BzVP4m+dx9TqeidLcjEoKlYHiYqGTpYln3BT/W026KtOW3ajU3NX5pPF2wgzyQaHon5IkiLsGjaiEwt/3MLWLUcvmLJRFBh0UQp9+yXZfXxggImhg1NYtmKP3URF03RGDXe+KZuzfvp1B0fSsso/TBgcJweaprPwt10uJylQXpA7IDmBAcnVTzvkFBaTfiaPYH8z8dFhVVYXWaxWftl/kIz8AqICAxiZ3I4gk8nlmBoLf4MfM/vfxKpTB/nm6CYyS/JoERDKhPie9G/WBrWW9SiRpuAad0NWgAiTFIMCKE4OvDt7nqiZLEGWJEU4YDQaeP6l6/jwvWV8P38jxcXlK3SCgs1ceXUfbpoyuMbRgVtvHMTqdQcpsVRfPHvdlX1o2Tys3mP/4Zdtf/RIh2pHUc5VWGSp9xjOdeJMHq/O/43Fm/dVvjEmx0Rz72UDubhrO77evoPnfllGvsWCqihouk6A0chfLhrErb17NGiDsuKyMtLycjEZDCSEhXt1MzRVURnUPIlBze0nx84aHdOV13YvsP9cKPSLbkekWboEAzTz74Sq+KHpZQ7PaxnY3T0BNQVSkyJJinDMbPbjzntGMnnqEA4fOoUCtG3XApPZuX86reOiePOfNzDjXwvYe+Bk5f0B/n7cMLEfN13bMAWzp88UVN1UUNftJiqKohAfW/vdeJ2VkZ3Pja9+Rk5hcZVP7vszTvPAe/O5ZlgqH+3ZWnl/RbOyYquVF5Ysw6AqTOllf1qtrvIsFv615nfm7thGsdUKQGJYOPf26c/VHTvX+/N5m2b+oUxpO4RZB5ddcExFwaCo3N1+lAci805mQwjtQ8exJ/ebautSFFRaBw0mxM+1xohCnEuSFOGUgAATHTu1qtNj27VpzrtvTGHfgZPlHWcDTPTs1poA/4abymgWFcKZnMLy3ETT0Y32h6B1XefK0d0aLJY3vltBTmHxBVNeul7+QefzFVsxBoJ69nVfU0EzgeYHKPCv31ZyXWpX/P3q79e1sLSU67+ey96s09jOSZyO5Obwt8U/kV6Qz319+tfb83mru9uPxKQa+fDgcizaHyMEsYERPNP1ajqFyZLxc/Vtdg95ZWmkF61DQUVHq/wz0pzM4JaPeTrERkXRdZSatnCv4fG+TpIU4TbJ7VqQ3K6FW55r3KhUdu8/2+FWB2w6GJQLRlQURaFPamtGD+7QIHHkF1tYuGlvtTU5OmAzg24C5ZwPpooGxhKwaWDzh4LSUpYfOszo9q5PcVR4f/MG9mSdvqAmo+Krf63+nfHtO9A6LLzentMbqYrKHcnDubHNIFae2kuh1ULroCh6yB5A1TKqZka3epm0wt/Zk/MdBdaTBBqjSA4dS2LIMAyK4+7TopZkukeSFNE4jbm4E9/8tJkDR06V18Jo5b/t+jk1NKHB/lx9SXemXNUfo9HQIHGczMnHqtlZsmkoT1CAKgtrK/5uKAXNCLoRsosd96yprU+3bXFYNKoqCnN3bufhAa4XE/uCIKOZUTFdPR2GT1AVAwnBQ0gIHuLpUEQTIEmKaJTMZj9ef+46Xnl7EUt+33M2UQGDojC4bztuvro/7Vo3w8+vYZKTCiEB/naPaX6Uf9Kx84FdB9RSsBmhVZjzmynWxGKzkllU6PAcTYfDOdlOX/NEUS6HCk4TaDTRJTwWo9qwP1chmgJZ3SNJimjEQoL9eeav47j31mHs3HsCRYEuHVoREea+nhctwoNJTYxh+5GMC6dWDNhNUDh7SNUgOjiYAa3j6y0mk2rATzVQptnveWFQFEJM5hqvdawwm+e3/sjyk/sqR5ajzcHc3WEo1yX2likTIVwh0z2yoF00ftGRwQzpn8xF/ZLdmqBUuPeygUA1+UgNLyAVh/8+erjTe9c4Q1EULktuj8FBAmHVNS5PTnF4nYziXCYtf48VmQeqfCunLQX8fcsPzNxz4aoZIYSoDUlShGhg/dq35p+3XkZwQPnIhFFVURUF1eZwIAUFmNCjEyOS2tV7THf16lsZx/kMikLPlrEMjHfcNXTm7mXklBbbbS3/1u5lnCx2z+aRwvdotkyslhVYLWvR9VJPh+OVZINBme4Rwi1Gdkvmok5t+HXrfo6cyiHY30T3drHc+uFXFJeWXTAVpCoKwWYTfxt1UYPE0z4qmo/GX8M9C74jq7gIo6qi6zo2XWdgXGveHHt5tQlMhVKblW/THO99A/Bt2hbuaN8w34PwTZotk5Lcp7CW/AQV/VaUcMzBf8YU/GeUWnYObtRkukeSFCHcxexnZGyvqkud37/1au76+Buyi4orNyO0aToRQQG8PXkCUcENNz3Vr1Ucq269g8WHDrDz9CnMBgPDE9vSqVnzGh+bU1pEqWZ1eI6qKKQX5dRTtM7ZkHWITw+vZNOZwygoDGiWxKTEgXQJl34n3kDTsik8PQHddgLObQin52DJn4FmO0lA+LMei8/bSOGsJClCeFRqXEt+efh2Fm7fy/rDx1GAPm3iGNMlGZOx4X89/QwGxia1Z2xS+wuOpRWeYdWp/Vh1jS7hregaHldZCBvs51/Zvt8eHYh04743Hx5Yzht7fq7cdBDg5xPb+Sl9K092ncCE+N5ui0VUr7TgHXRbOtjZSbmsaBamoBsw+DmuhxJNhyQpQniYv5+R8T06Mb5H/W+0WBf5ZSU8tflrlpzcVXmfDqSEtuSlnteSGNyMQKOJkTEd+OXE7ioda89l0zUuj3dP75HNZ47wxp6fK5/33BgAntv2LakRrWkbXPMokWgYuq5TWvgp9hKUcgbKij7HEPaku8LybjLdI4WzQog/2HSNe9Z+zNLM3ZWvjxWvc/vzM7ll5fucKskH4O6UizEqBtRqyn8VYELr7rQNaeaWuOccWY3BQS2Dqih8eWStW2IR9pSCnlPDORqa7bg7gvEZTbloFiRJEUKc47fMvWzJTqt2Gsema+SWFfHZ4dUAtA9rwazBU4gNDAf+WKlkVFQmtenLs93HuSlq2HjmsMMiXpuusfHMYbfF48gZSw7fpf/K7CPfsfjkSoqtJZ4OyU1MoATUcI4BRY1ySzTCN3jVdM/MmTOZOXMmhw8fBqBz58489dRTjB07ttrzd+zYwVNPPcWGDRs4cuQI//rXv3jwwQfdF7AQjcyPx7agolTuxHw+Tdf5Nm0j93co3x24e2Q8P426j7WnD3Mg/xQBBhNDWyYTZQ52Z9gOVyJV8HQXXJuu8dGhr/n+xFKgfN8gm27jvYNfcFubaxjVcpBH42toiqLgF3A1ZUWfAfYaCVrxC7zSnWF5N10HVzYJbAQbDHrVSEpcXBwzZsxgw4YNrF+/nuHDhzN+/Hh27NhR7flFRUW0bduWGTNm0LJlSzdHK0Tjc6a00G6CUiGvrOonf1VR6d+sLTe27cdVCT3cnqAAXNQsxfF0DwoDmyW7MaILfXL4W747sQT97H82vfyN2qKV8taB2fx+eqNH43MHc/CfQQkEqksYVYzmERj8erk7LK8lfVK8LEkZN24cl156KcnJybRv357nn3+e4OBgVq9eXe35ffr04Z///CfXX389ZnPNLbwBLBYLeXl5VW5CiHKtAiMcvtkDtPCvv32E6st1if3R7XxqVCgfRbk6vo97gzpHblk+35341eE5nx6Zb/d7aCxUY2uCor9ENbY9e0/FCJiKMeAqAiJnylYKogqvSlLOZbPZmDNnDoWFhQwYMKDerjt9+nTCwsIqb/Hx9bcnihC+bkJ8T4e1HQoKExP6ujEi5ySFtOCFHtdiVNQqhbwqCibVyL963UiLgDCPxbc2q+bGdydKTnGkKN1NEXmOwa8jQc0WExj1Ff5hf8c/7CWCW6wmMOJVFMX+hpxNkl4PNx/nVTUpANu2bWPAgAGUlJQQHBzMvHnz6NSp/pZmTps2jYceeqjy67y8PElUhDire0RrxsV15/tjmy94fTMoCm2DmzMxwTv7jYyO6UqXsDi+SlvHhqxD5dNQ0e24Mr4PzfxDPBpboa0YFRXN4fJbKLIWuykiz1IUBaO5D5g9N7rlCxSt/ObK432d1yUpKSkpbN68mdzcXL788kumTJnCsmXL6i1RMZvNTk8NCdHUKIrCs92uJC4wgk8OriL/7MoTo6JyWatu/K3zWAKN3vv7ExsYwX0poz0dxgVi/JvVmKAANPeXlS1CnMvrkhSTyURSUhIAvXr1Yt26dbz++uu8/fbbHo5MCNcVlFj4dssuFu7cR4GllJQW0VzXO5Xu8TGeDq2SQVH5c/vh3NruInblnsCq20gOaUGYyf07SDcWvSK6EGoMJt9aUO0IvIpK9/AORJsj3B6b8GLSzM37kpTzaZqGxWLxdBhCuOxwVjaTZ33BqfxCoPz1Y8/JU8zbvJOpA3vx8OiLvKpo0Gzwo3uk452QhXOMqoF7k29ixq7yD1v6Oe8eKioBBjNT217jqfCEl5K9e7wsSZk2bRpjx46ldevW5OfnM3v2bJYuXcrChQsBmDx5Mq1atWL69OkAlJaWsnPnzsq/Hz9+nM2bNxMcHFw5GiPcZ8/udH76fgsnT+QSFh7IiDFd6Nm7DarqPW+8nmLTNO743zyyCouqfLixaeVffbByA8ktoriye2enr3m6pJBiaxnNA4IxG7zqV1lUo09kV57tcj+fHvmO3fkHgfJC5L6RXbk5cQKxAdKyX5xH+qR4V5KSmZnJ5MmTOXHiBGFhYaSmprJw4UJGjSpvHHX06FFU9Y8FSenp6fTo0aPy65dffpmXX36ZoUOHsnTpUneH32Rpms5r//yRBd9txmBQsdk0VIPC4oXbSO3emudeupbAQO+tY3CHZfsOcTQ71+5xBXjvt/VM6NapxtGUJcf388bWFWzOOgFAoNGP65K68WDqRYSaZHWEN+sS1p7pqX/ltCWbfGshUaZwQv3c31dGCF/hVUnK+++/7/D4+YlHYmJio+8r4AvmfLKSBd9tBsBmKy8O1Gzl/1+2b03jlek/8ORzV3kqPK+w+mAaRlXFqlVfPKkDB06f4UxhMVHB9ms/Pt+/hUdX/1hlmW2RtYyP92xgxYnDfDnmZklUfEC0OULqT0SNPD3dM2PGDKZNm8YDDzzAa6+95trF6sirkhThe0pLrXzxWfXN9qB8lGX5kl1knMihuMzK9z9v5XhGDiHB/gwf3IG+PRIxGLy2XU+9qZjWqfE8B700si1FPLG2fOrz/K6wNl3nQF4Wb21fxWM9h9U9UCEaIUvpZootv4OuYTb3wd/Uz6vqv+zyYOHsunXrePvtt0lNTXUhANdJkiJcsm9PBgX5NW+Q9sprP7FmdxoGVcGm6RhUhYVLdtApJYZ/PnUNIcGN+9N/j9YxfLp2s8NzYsJCiA4Ksnt83sHtWDV7e56U76sze98m/tZ9KEa18Sd+QtTEajvByaw/YSndwB+t+G2YjB1pEf0+fsY2ngzPaxUUFHDjjTfy7rvv8o9//MOjscgrmXCJtcz+m2YlBdZvOgz8MaJQ8efufRk88/J3DRWe1xjdMYmooECHG+FN6d+TfIuFeZt38NHqjfy65wBltj9+vgfyztTYsj6/zEK2paje4hbCV2laEemnrsFSuvnsPTYqNjYste4lPfNKbLYzngrPKfW1d8/5W8HUtGL2nnvu4bLLLmPkyJFu+C4dk5EU4ZLEts0qi2Xt0kEzVv/mrGk66zYd5uCRU7RNaNZAUXqeyWjkrRuuYOpHX1FSZsV2tpZKVRQ0XWdMp2RySoq56JV3KLXZKu+PCgrg75ePYkSHdgQZTU49V4DRryG/FSF8QkHR11itB+0ctWHTTpFX+AkRofe7Na5aqafVPed3VX/66ad55plnqn3InDlz2LhxI+vWrav789YjGUkRLgkLD+TikZ1QDdUnIaqqoBlAt5OkVJyzar29F5PGo1tcDN/dM5lbB/YiJiyEsAB/erWO5V8TLyUhKpz//raW0rMjJ9rZF5czhcXc9/l3rDx4hLEJKVgd1KwYFIWLYhIJ9mvaK6mEgPIkBRzVnWgUFH3prnA8Ki0tjdzc3MrbtGnT7J73wAMP8Omnn+Lv7x1T8DKSIlx29/2j2Lv7BMfTzqCdUyCqqgoBASayjRo4mOZQFAWr1Ylpo0YgNjyUv42+iL+NvqjyvjOFRTw876dqz9cBBZ1Xf/mdL26fxOCWiaw6eaRyJKaCQvmHpnu7Dm7A6IXwHTYtm5oqRzUtxy2x1FV9re4JDQ0lNLTm3cs3bNhAZmYmPXv2rLzPZrOxfPly3nzzTSwWCwaDwcEV6p+MpAiXhYYF8u+3b2HK7UNp3iIUVVUIDQ3gqmv78sa7t2IKdDz9YLNptG/Xwk3Rep+fd+3DZmdpMoCmw/b0k6Rl5/LWkKsY1DIRKG9fbzxboxJg9OPNIRPo21w2yxQCOFsU6+gNVcVoTHRTNHXk5l2QR4wYwbZt29i8eXPlrXfv3tx4441s3rzZ7QkKyEiKqCdBwf7cMHkQN0wedMGxy0Z15ZsFm6uMslRQVYXoyGD69mi6VfbZRSUYHPRQqZBTXELryHA+GnE927My+CltD8XWMpLDohmX2IkgP+dqVoRoCkKDb6KoZIGDMzRCg252Wzy+ICQkhC5dulS5LygoiKioqAvudxdJUkSD+9NNF7Ft53H2Hz5VpfmeQVUwmYz8/dHxTaJXij2twkNrTFAUoEXoH51Ju0S1pEtUywaOTAjfFWAeRlDAFRQWf8eFQwoq/uZBBAdO8EBkzvN0MzdvIEmKaHBBgWbenDGJr3/YxDcLNnPyVB6BASZGDe3IdRP6EBfTtDtvjuqYROAPfhSVllV73KAoDGqXQIsQaZ8uhLMURaF55H/IyU8ht+A9NC377P3BhAbfQmTo31AUL18Jp+nlN1ce7yJPbzEjSYpwiwB/Ezde3Y8br+6Hruu+0e3RTQL8/Hhi7DAe//bn8gLYc44ZFAWzn5GHR11k7+FCCDsUxUhE6EOEh9xLadleQMPPLxlVCfB0aM7xYMdZbyFJinA7SVAudFX3zgSa/Hj1l985eian8v7eCXH839iLSW4e7bnghPBximLCbPJMTYVwjSQpQniJSzq1Z0zHZHafPEVusYW4iFDiwsM8HZYQwkMUXKxJqbdIPEeSFCG8iKIodGzZ3NNhCCG8QT11nPVlTXdJhRBCCCG8moykCCGEEF5IliBLkiKEEEJ4J1ndI0mKEKJmu3NOsjErDVVRGdg8kdbBkZ4OSQjRBEiSIoSw63hhDn9dO4+NWceq3D88pj0z+lxBuMlH+k0I4YMUXUdxofjVlcd6CymcFUJUK6e0mBuWfsSWM+kXHFuWsY9bl39KqdY0dq8WwiO0erj5OElShBDVmnNwAyeL87HpF77S2XSdHTknWHR8twciE0I0FZKkCCGqNe/wVjQHlXcqCvOObHVjREI0LRXTPa7cfJ3UpAghqnXGUujwuIbO6ZICN0UjRBMkq3tkJEUIUb3YwDCHbbUNikJcULi7whGi6anoOOvKzcdJkiKEqNa1bXs6/CBm03WubdPDbfEIIZoeSVKEENW6OrEbXSJiUKvZtVpBYXhMewa3aOeByIRoGio6zrpy83WSpAghquVv8OPjITdzVUI3/FRD5f0BBj9ua9+fNwZcU20CI4SoJzLdI4WzQgj7gv3MvNB7HI+kjmRndgYGRaFLZCxBRpOnQxNCNAGSpAghahRuCmBgizaeDkOIJkXRym+uPN7XSZIihBBCeCNXp2wawXSP1KQIIYQQwivJSIoQQgjhjaSZmyQpQgghhDeSXZBlukcIIYQQXkpGUoQQQghvJIWzkqQIIYQQXkkHXFlG7Ps5iiQp9UHTNA5uOUJhbhGxSS1pFhfl6ZCEEEL4OKlJkSTFZb98+huznvyMk4dPld+hQJ9LenD3a7cSlxzj2eCEEEIIHyaFsy749j8/MePmN/5IUAB02PDzFu7v/zgnDp70XHBCCCF8m46Le/d4+htwnSQpdZSfXcDbf/uo2mOaTaMwr4j3/2+2m6MSQgjRaMgGg5Kk1NXSOb9jLbXZPa7ZNFZ8tZqCnEI3RiWEEEI0HlKTUkcZh09hMKpYy+wnKjarRtaJbILDg9wYmfBVNk1jzZFjnCwooFlQEP0T4zGq8jlCiCZLAxQXH+/jJEmpo7DoEDSt5qG00MhgN0QjfN3C3fv4x6KlnMwvqLwvKiiQaSOGcEWXjh6MTAjhKbK6R6Z76uzi6waiO0hSVINK9+FdiGgR7r6gRKWMnHz2pJ8ip7DY06HUaPHeA9z/9fdVEhSArMIi/jb/J+Zv3+WhyIQQwrNkJKWOmrduxhV3j2H+Wz9dUJukKAqKonDL36/3THBN2LoDx/j3gt/ZdDgdAFVRGNEliQcvG0zr6HDPBlcNTdd5ftFSh+dMX7yMsR3b42cwuCcoIYR3kI6zMpLiirteu4Wr/3I5BmP5m4dqKP9xRrQM57nvHqPzwBRPhtfkLN95kNv/+yVbjpyovE/TdX7dsZ9Jr8/myKlsD0ZXvc3HT3A8N8/hSsGsomJWHU5zW0xCCC8hq3tkJMUVBoOBO1+ewnWPTmDV/PUU5RUT1z6G3mO6VyYuwj3KbDaemPszuq5f8IZv03QKLaW8+O1S3rr9So/EZ8+pAudWf50ulFViQoimR5KUehDeLIyxt43wdBhN2m+7DpPtoP7Epums2H2YjJx8WoaHuDEyx1qEOFdY7ex5QohGRKZ7ZLpHNA5HT2ejKo7X6unA8TO57gnISd1iW9I6PMzhKsNmwUH0S4h3W0xCCC+h1cPNx0mSIhqFYH8zmhOfGoL9zW6IxnmKovDkmGHlf7dzzhOjLpZ+KUI0QRVLkF25+Tp55RONwrDO7Ry+kStA6+hw2sdEuy8oJw1t14a3r51AXHhYlftjQkP491WXM7Zjew9FJoQQniU1KaJRiAoJ5IbB3fnf8o3VrpTRgfsuGYhSw5SQp1yc1Iah7RLZfPwEJ/MLiA4OomdcbI1TWEKIRszNNSkzZ85k5syZHD58GIDOnTvz1FNPMXbs2LrH4CJJUkSj8dDlF6HpOrNXbAZAVRVsNg2zn5FHx1/MJd29e0m4oij0iIv1dBhCCG+h6aC4kKQ40RX9XHFxccyYMYPk5GR0Xeejjz5i/PjxbNq0ic6dO9c9DhdIktJEaZrOrl3p5OQW0bJFKG3bNvfaUQZnGVSVR8dfzC0X92bhlr3kFBbTKjKUMd3ae10tihBCuEteXl6Vr81mM2bzha+J48aNq/L1888/z8yZM1m9erUkKcJ9li7dxdvvLOHkyT/+4bZt25wH7h9F166+v4qkRVgwk4f09HQYQgjhmnqa7omPr/q6/vTTT/PMM884fKjNZuOLL76gsLCQAQMG1D0GF0mS0sQsWrSd6TO+v+D+Q4dO8de/fcarr9xAly5xHohMCCFEVa52jS1/bFpaGqGhoZX3VjeKUmHbtm0MGDCAkpISgoODmTdvHp06dXIhBtfI6p4mpLTUypv/WVztMV3Xsdl03nrrFzdHJYQQoiGFhoZWuTlKUlJSUti8eTNr1qzhrrvuYsqUKezcudON0VblVUnKzJkzSU1NrfxBDhgwgAULFtg9/9133+Wiiy4iIiKCiIgIRo4cydq1a90YsW9Zs/YA+fkldo/rus7uPSc4ejTLjVEJIYSolgf27jGZTCQlJdGrVy+mT59Ot27deP311xvgm3OOVyUpFZXFGzZsYP369QwfPpzx48ezY8eOas9funQpkyZNYsmSJaxatYr4+HhGjx7N8ePH3Ry5bzh1Kh9namMzM/NqPkkIIUTD0nTXb66GoGlYLJZ6+GbqxqtqUmpbWfzpp59W+fq9997jq6++4pdffmHy5MkNGqsviggPciqxjogIavhghPAgm27FqlkxqWafX9UmRH2ZNm0aY8eOpXXr1uTn5zN79myWLl3KwoULPRaTVyUp56pLZXFRURFlZWVERkbaPcdisVTJCs9fmtWY9e/fjoAAP4qLy6o9riiQkBBN27bN3ByZEO5xsGAPP2fMZ2feFnR0wvwiGNJsNMOaX4KfavJ0eEJUpWvlN1ceXwuZmZlMnjyZEydOEBYWRmpqKgsXLmTUqFF1j8FFXpekuFJZ/OijjxIbG8vIkSPtnjN9+nSeffbZ+grXpwQEmLjttqG8+eaFxbMVHyb/fOdw+WQpGqVN2WuYdejfKCjoZ1c95JZl83365+zM3cw9yY9JoiK8i5s7zr7//vt1f64G4lU1KVD3yuIZM2YwZ84c5s2bh7+/v93zpk2bRm5ubuUtLS2tPsP3eldd2Zv77xtFUFDV6u7IyGD+/ver6du3rYciE6LhFFkL+fjwTHR0tPO2htXROVi4l19P/uih6ISwwwtqUjzN60ZSKiqLAXr16sW6det4/fXXefvtt+0+5uWXX2bGjBksXryY1NRUh9e312mvKZkwoRdjx6aybt0hcnOLadEilB49EjAYvC5nFaJerD3zGzbdave4js7yUz8zquUVqIr8HgjhLbwuSTlfTZXFL730Es8//zwLFy6kd+/ebozMt5nNfgweLLvriqbhePHRKtM81cmz5lJsKyLIGOzGyIRwwM3TPd7Iq5KUmiqLJ0+eTKtWrZg+fToAL774Ik899RSzZ88mMTGRjIwMAIKDgwkOlhcaIUS58lqTmmutjIpXvSSKpk7HxSSl3iLxGK8a16yoLE5JSWHEiBGsW7euSmXx0aNHOXHiROX5M2fOpLS0lGuuuYaYmJjK28svv+ypb0EI4YVSw3qhYbN7XEGlfUhnzAb79WxCCPfzqo8NNVUWL126tMrXhw8fbrhghBCNRvuQzsQFJJJefPSCwlkAHY1RLa7wQGRCOCDTPd41kiKEEA1BVVTuSnqYmIDyzTNVVBRUFBRUDNyYcAcdQrt4OEohzqNprt98nFeNpAghREMJ9QvnkQ7PsytvK9tyN1CqWWjpH0f/qKGE+oV5OjwhRDUkSRFCNBmqotI5rDudw7p7OhQhaibTPZKkiMapzGrj+9938NWvWzl2KoeQQDNjB3Tk2hHdiQ6XlV9CCB8gSYokKaLxKSkt4/5X57FpzzEUpfz3tLC4lI9+XMfXS7by9rRradcq2tNhCiGEqIEUzopG551vVrFl73Gg6gcJTdMpKLbw8L/nozWCdtFCiEZO2uJLkiIal5LSMr5eshXNzjCnTdNJO5nDul1H3RyZEELUjq5rLt98nSQpolE5mpFDYUmpw3MMqsK2AyccniOEEB6nuziK0ghqUiRJEY2Kqtbc+lwHDKr80xdCCG8nr9SiUUmMiSQyNNDhOZqm069zazdFJIQQdVSxuseVm4+TJEU0KkaDyk2X2N8N26AqpCbF0qlNSzdGJYQQdSAdZyVJEY3PjWN6Mf6i8hbnhrPTP8rZWaDWLSJ48d5xngpNCCFELUifFNHoqKrC/906issGd+KbZds4kpFNWJA/Y/p3YESf9pj95J+9EMIH6DrlVXSuPN63yau1aJQURaFH+zh6tI/zdChCCFEnuqahK3WfspElyEIIIYQQDURGUoQQQghvJNM9kqQIIYQQXknTQWnaSYpM9wghhBDCK8lIihBCCOGNdB1wofi1EYykSJIihBBCeCFd09FdmO7RJUkRQgghRIPQNVwbSZElyEIIIYQQDUJGUoQQQggvJNM9kqQIIYQQ3kmmeyRJqcg08/LyPByJEEIIb1fxXuGOUQorZS71crNSVn/BeEiTT1Ly8/MBiI+P93AkQgghfEV+fj5hYWENcm2TyUTLli1ZkfGjy9dq2bIlJpOpHqLyDEVvDJNWLtA0jfT0dEJCQlAUpU7XyMvLIz4+nrS0NEJDQ+s5wqZBfoauk5+h6+Rn6LrG/jPUdZ38/HxiY2NR1YZbe1JSUkJpaanL1zGZTPj7+9dDRJ7R5EdSVFUlLq5+dsoNDQ1tlL+U7iQ/Q9fJz9B18jN0XWP+GTbUCMq5/P39fTq5qC+yBFkIIYQQXkmSFCGEEEJ4JUlS6oHZbObpp5/GbDZ7OhSfJT9D18nP0HXyM3Sd/AxFfWryhbNCCCGE8E4ykiKEEEIIryRJihBCCCG8kiQpQgghhPBKkqQIIYQQwitJkuKk//znPyQmJuLv70+/fv1Yu3at3XO//vprevfuTXh4OEFBQXTv3p3//e9/bozWO9XmZ3iuOXPmoCgKEyZMaNgAfUBtfoYffvghiqJUuUlzqNr/O8zJ+f/27j+mqvr/A/iTe7kgv1EZP2SkA+RXgDCIjR8ZTbJNBNaqYRnTrXAIJJPN0k0zieEf/DD7Q0oCbMtJw1WzMqBRblKmBVzHBb12+RHmAM0UBQr03vfnD8f5StIX7+X+OOjzsd3N+z7n3vfzvHa4vu6559x7EwUFBfDz84OjoyNCQkJw8uT8v658ITOmhqmpqQ/sh3Z2dkhPT7diYlqwBM2poaFBODg4iLq6OtHd3S1yc3OFp6enGBkZmXX9H374QXz++eeip6dH6HQ68f777wulUimampqsnFw+jK3htP7+fuHv7y+efvppkZWVZZ2wMmVsDevr64W7u7sYGhqSbsPDw1ZOLS/G1nByclLEx8eLdevWiba2NtHf3y9OnTol1Gq1lZPLh7E1vH79+ox9UKPRCKVSKerr660bnBYkNikPISEhQRQUFEj39Xq9WLZsmdi/f/9DP0dsbKzYvXu3JeItCKbU8O7duyIpKUl8/PHHYtOmTY99k2JsDevr64WHh4eV0i0MxtawurpaBAYGiqmpKWtFlL35vh4eOHBAuLm5ibGxMUtFpEcIP+6Zw9TUFNrb25GWliaNKRQKpKWl4cyZM3M+XgiB1tZWaLVarF692pJRZcvUGpaUlMDb2xuvv/66NWLKmqk1HBsbw/LlyxEQEICsrCx0d3dbI64smVLDEydOIDExEQUFBfDx8UFkZCTKysqg1+utFVtW5vt6CAC1tbXYsGEDXFxcLBWTHiGP/Q8MzuXPP/+EXq+Hj4/PjHEfHx9cvHjxPx83OjoKf39/TE5OQqlU4tChQ3juuecsHVeWTKlhW1sbamtroVarrZBQ/kypYWhoKOrq6hAdHY3R0VFUVFQgKSkJ3d3dZvtRzYXElBr29fXh+++/x8aNG3Hy5EnodDrk5+fjzp072Lt3rzViy4qpr4fTzp07B41Gg9raWktFpEcMmxQLcXNzg1qtxtjYGFpbW1FcXIzAwECkpqbaOprs3b59Gzk5OaipqYGXl5et4yxYiYmJSExMlO4nJSUhPDwcH330Ed577z0bJls4DAYDvL29cfjwYSiVSsTFxeHKlSsoLy9/LJuU+aqtrUVUVBQSEhJsHYUWCDYpc/Dy8oJSqcTIyMiM8ZGREfj6+v7n4xQKBYKDgwEAMTExuHDhAvbv3/9YNinG1rC3txcDAwPIyMiQxgwGAwDA3t4eWq0WQUFBlg0tM6buh/dTqVSIjY2FTqezRETZM6WGfn5+UKlUUCqV0lh4eDiGh4cxNTUFBwcHi2aWm/nsh+Pj42hoaEBJSYklI9IjhuekzMHBwQFxcXFobW2VxgwGA1pbW2e8S52LwWDA5OSkJSLKnrE1DAsLQ1dXF9RqtXTLzMzEs88+C7VajYCAAGvGlwVz7Id6vR5dXV3w8/OzVExZM6WGycnJ0Ol0UpMMAJcuXYKfn99j16AA89sPGxsbMTk5iddee83SMelRYuszdxeChoYG4ejoKI4cOSJ6enrEli1bhKenp3Q5Z05Ojti5c6e0fllZmWhpaRG9vb2ip6dHVFRUCHt7e1FTU2OrTbA5Y2v4b7y6x/ga7tu3TzQ3N4ve3l7R3t4uNmzYIBYtWiS6u7tttQk2Z2wNBwcHhZubmygsLBRarVZ8/fXXwtvbW5SWltpqE2zO1L/llJQUkZ2dbe24tMDx456HkJ2djWvXruGdd97B8PAwYmJi0NTUJJ08Njg4CIXi/w5KjY+PIz8/H3/88QecnJwQFhaGTz/9FNnZ2bbaBJsztob0IGNreOPGDeTm5mJ4eBiLFy9GXFwcfvrpJ0RERNhqE2zO2BoGBASgubkZ27dvR3R0NPz9/VFUVIS3337bVptgc6b8LWu1WrS1taGlpcUWkWkBsxNCCFuHICIiIvo3vnUlIiIiWWKTQkRERLLEJoWIiIhkiU0KERERyRKbFCIiIpIlNilEREQkS2xSiIiISJbYpBAREZEssUkhIiIiWWKTQkRERLLEJoWIzCo1NRV2dnaws7ODWq22dRxs3rxZyvPll1/aOg4RGYFNCpEFdHV1IScnB/7+/nB0dMTy5cuRnp6O48ePPxaZcnNzMTQ0hMjISLM/t7EOHjyIoaEhW8cgIhOwSSEys+PHjyM+Ph4KhQINDQ3Q6XT45ptvkJaWhpKSEtjiNz2tncnZ2Rm+vr6wt7f9D617eHjA19fX1jGIyBSCiMymo6ND2Nvbi8rKylmXGwwGKyeyfqZnnnlGFBUVzTpeWFgoioqKhKenp/D29haHDx8WY2NjYvPmzcLV1VUEBQWJkydPSo/59ttvRXJysvDw8BBLliwR6enpQqfTzXjeW7duiVdffVU4OzsLX19fUVVVNWsGAOKLL74w67YSkWXxSAqRGW3fvh0pKSkoLi6edbmdnZ2VE8kr0yeffAIvLy+cO3cOb775JrZu3YqXX34ZSUlJ6OjowNq1a5GTk4OJiQkAwPj4OIqLi/Hrr7+itbUVCoUCL7zwAgwGg/ScxcXF+PHHH3HixAl89913OH36NDo6Oqy2TURkQbbukogeFQMDAwKA+Oyzz6SxiYkJ4e7uLlxcXISLi4vYsWOHEEKIyspK4e/vL1atWiVWrFgh8vPzpcdUVlaKZcuWiejoaBEcHCyam5utkunfc69cuVKa25hM/9+RlJSUFOn+3bt3hYuLi8jJyZHGhoaGBABx5syZWZ/72rVrAoDo6uoSQtw7iqJSqURjY6O0zs2bN4WzszOPpBA9AngkhchMurq6AAAJCQnSmEqlQnt7Ozo7O6HX6xESEgIA0Gg0OHjwINRqNXp6enDkyBGMjY1JyyorK3H+/HmUl5fj3XffnXW+o0ePwtXVVbqdPn16Xpmm566oqMD58+dRWlqKPXv2GJVpLtHR0dK/lUolli5diqioKGnMx8cHAHD16lUAwG+//YZXXnkFgYGBcHd3x4oVKwAAg4ODAIC+vj7cuXNnxvZ5eHggNDTUpHxEJC9sUojM5Pbt2wAw42RRe3t7BAcHw97eHv/88w9WrVoF4N5/+jExMQAAtVqNoKAguLq6SsvCwsIAAP7+/tDr9bPOl5mZCbVaLd3i4+PnlWl67pUrVwIAAgMD4eDgYFSmuahUqhn37ezsZoxNf/Q0/XFORkYG/vrrL9TU1ODs2bM4e/YsAGBqasqk+YloYWGTQmQmTz75JACgra3tgWUajQYKhQKRkZEQQkCr1eLFF19ESEgIsrKypMuAhRC4ePEiQkNDodfrUV1djXXr1s06n5ubG4KDg6Wbk5OTyZmm575w4QJCQkKg1+tRV1eHPXv2GJXJnK5fvw6tVovdu3djzZo1CA8Px40bN2asExgYCJVKhV9++UUaGx0dxaVLlyyej4gsz/bXBxI9IqKjo5GRkYFt27ZhYmICycnJMBgMUKvVKC8vR1hYGJycnNDX14fw8HD8/PPPAIDS0lIcOHAA1dXV6O/vx+TkJBITE+Hg4IC0tDTs3LnT4pkASHOvXr0av//+OzIzM7F27Vr09fWZNdPDWrx4MZYuXYrDhw/Dz88Pg4ODD8zr5uaGTZs2YceOHViyZAm8vb2xd+9eKBQKm5ykTETmxSaFyIwaGxtRVVWFqqoqFBYWQqVSISIiAi+99BLy8vIA3DuCcf85E1FRUdLVKBqNBhkZGWb9grWHyTQ99/PPP4+vvvoKly9fRkREBMrKyiyS6WFMf6fLtm3bEBkZidDQUHzwwQdITU2dsV5VVRXy8vKwfv16uLu746233sLly5exaNEiq+YlIvNjk0JkRo6Ojti1axd27dr1n+vc36To9XocO3YMa9askZbdfyKptTJNzz19nkxAQADWr1+PpqYmjIyMmCXTqVOnHhgbGBh4YEzc98VyaWlp6Onp+c/lwL2jKUePHpXuj4+PY9++fdiyZcv8AhORzfGcFCIr02g0+PDDDxEbG4unnnoKQUFB2Lp1q7TM3E2KMbmmmxTg3kmrLS0tJmU6dOgQXF1dpauLLKmzsxPHjh1Db28vOjo6sHHjRgBAVlYWACAvL086KZmIFhY78e+3JURE83DlyhX8/fffAIAnnnhCukLIUjo7O/HGG29Aq9XCwcEBcXFxqKqqkhqrq1ev4tatWwAAPz8/uLi4WDQPEZkPmxQiIiKSJX7cQ0RERLLEJoWIiIhkiU0KERERyRKbFCIiIpIlNilEREQkS2xSiIiISJbYpBAREZEssUkhIiIiWWKTQkRERLLEJoWIiIhk6X+dUvgRjlFzswAAAABJRU5ErkJggg==",
510
+ "text/plain": [
511
+ "<Figure size 640x480 with 2 Axes>"
512
+ ]
513
+ },
514
+ "metadata": {},
515
+ "output_type": "display_data"
516
+ }
517
+ ],
518
+ "source": [
519
+ "#Here is an example on how you can retrieve the samples\n",
520
+ "#of the age predictions to investigate individual predictions\n",
521
+ "age_model.ages_prediction(\n",
522
+ " met=[0.0,-1.0],\n",
523
+ " mag=[2.0,3.0],\n",
524
+ " col=[1.0,0.5],\n",
525
+ " emet=[0.1,0.1],\n",
526
+ " emag=[0.1,0.1],\n",
527
+ " ecol=[0.1,0.1],\n",
528
+ " n=100\n",
529
+ ")\n",
530
+ "\n",
531
+ "star_i = 1#Select the second star\n",
532
+ "magnitudes = age_model.samples[star_i,:,1]\n",
533
+ "colors = age_model.samples[star_i,:,2]\n",
534
+ "ages = age_model.ages[star_i]\n",
535
+ "\n",
536
+ "import matplotlib.pyplot as plt\n",
537
+ "plt.scatter(colors,magnitudes,c=ages)\n",
538
+ "plt.colorbar(label='Age [Gyr]')\n",
539
+ "plt.xlabel(r'$G_{BP}$ - $G_{RP}$ [mag]')\n",
540
+ "plt.ylabel(r'$M_G$ [mag]')\n",
541
+ "plt.ylim(plt.ylim()[::-1]);"
542
+ ]
543
+ }
544
+ ],
545
+ "metadata": {
546
+ "kernelspec": {
547
+ "display_name": "Python 3",
548
+ "language": "python",
549
+ "name": "python3"
550
+ },
551
+ "language_info": {
552
+ "codemirror_mode": {
553
+ "name": "ipython",
554
+ "version": 3
555
+ },
556
+ "file_extension": ".py",
557
+ "mimetype": "text/x-python",
558
+ "name": "python",
559
+ "nbconvert_exporter": "python",
560
+ "pygments_lexer": "ipython3",
561
+ "version": "3.13.3"
562
+ }
563
+ },
564
+ "nbformat": 4,
565
+ "nbformat_minor": 2
566
+ }