├── .gitattributes └── pamap2.ipynb /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /pamap2.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Data Science Research Methods" 8 | ] 9 | }, 10 | { 11 | "cell_type": "markdown", 12 | "metadata": {}, 13 | "source": [] 14 | }, 15 | { 16 | "cell_type": "markdown", 17 | "metadata": {}, 18 | "source": [ 19 | "### Contents\n", 20 | "\n", 21 | "#### 1.Overview\n", 22 | "#### 2.Preparatory Tasks\n", 23 | "#### 3.Data Cleaning\n", 24 | "#### 4.Data Correlation\n", 25 | "#### 5.Exploratory Data Analysis\n", 26 | "#### 6.Hypothesis Testing\n", 27 | "#### 7.Modelling\n", 28 | "#### 7.Decisions\n", 29 | "#### 8.Summary\n", 30 | "#### 9. References" 31 | ] 32 | }, 33 | { 34 | "cell_type": "markdown", 35 | "metadata": {}, 36 | "source": [ 37 | "### Overview" 38 | ] 39 | }, 40 | { 41 | "cell_type": "markdown", 42 | "metadata": {}, 43 | "source": [ 44 | "For this assignment, the dataset used is PAMAP2 which is an Activity Monitoring dataset that covers 18 different physical activities which are taken by 9 different subjects, 8 men and 1 woman, taken using 3 inertial measurement units and a heart rate monitor. \n", 45 | "\n", 46 | "The outcome of this assignment should be to gain insights based on the results of our analysis to determine how active an individual is based on the physical activities taken which are to be used to create hardware of software.\n", 47 | "\n", 48 | "The three requirements of this assignment are to:\n", 49 | "\n", 50 | "1. Carry out thoroughly exploratory data analysis and appropriately handle missing or dirty data\n", 51 | "\n", 52 | "2. Develop and tests at least one hypothesis for a relationship between a single pair of attributes\n", 53 | "\n", 54 | "3. Develop and test at least one model which uses multiple attributes to make predictions" 55 | ] 56 | }, 57 | { 58 | "cell_type": "markdown", 59 | "metadata": {}, 60 | "source": [ 61 | "### Preparatory Tasks" 62 | ] 63 | }, 64 | { 65 | "cell_type": "code", 66 | "execution_count": 1, 67 | "metadata": {}, 68 | "outputs": [], 69 | "source": [ 70 | "from matplotlib import pyplot as plt\n", 71 | "%matplotlib inline\n", 72 | "import pandas as pd\n", 73 | "import numpy as np\n", 74 | "import math\n", 75 | "from sklearn.model_selection import train_test_split\n" 76 | ] 77 | }, 78 | { 79 | "cell_type": "markdown", 80 | "metadata": {}, 81 | "source": [ 82 | "A list of the file names has to be created in order to load all the files and create the dataframe. Moreover, a dictionary that will hold the names as well as numbers of each different activity has to be created in order to be able to understand which activity is being analysed at each phase.\n", 83 | "\n", 84 | "Lists for each different category of IMU's have to be put together as well in order to have the column names for the dataframe. IMU's that will be used are for chest, ankle and hand.\n", 85 | "\n", 86 | "Then all the different lists have to be put together to create the collection of the columns." 87 | ] 88 | }, 89 | { 90 | "cell_type": "code", 91 | "execution_count": 2, 92 | "metadata": {}, 93 | "outputs": [ 94 | { 95 | "data": { 96 | "text/plain": [ 97 | "54" 98 | ] 99 | }, 100 | "execution_count": 2, 101 | "metadata": {}, 102 | "output_type": "execute_result" 103 | } 104 | ], 105 | "source": [ 106 | "# Load data\n", 107 | "list_of_files = ['PAMAP2_Dataset/Protocol/subject101.dat',\n", 108 | " 'PAMAP2_Dataset/Protocol/subject102.dat',\n", 109 | " 'PAMAP2_Dataset/Protocol/subject103.dat',\n", 110 | " 'PAMAP2_Dataset/Protocol/subject104.dat',\n", 111 | " 'PAMAP2_Dataset/Protocol/subject105.dat',\n", 112 | " 'PAMAP2_Dataset/Protocol/subject106.dat',\n", 113 | " 'PAMAP2_Dataset/Protocol/subject107.dat',\n", 114 | " 'PAMAP2_Dataset/Protocol/subject108.dat',\n", 115 | " 'PAMAP2_Dataset/Protocol/subject109.dat' ]\n", 116 | "\n", 117 | "subjectID = [1,2,3,4,5,6,7,8,9]\n", 118 | "\n", 119 | "activityIDdict = {0: 'transient',\n", 120 | " 1: 'lying',\n", 121 | " 2: 'sitting',\n", 122 | " 3: 'standing',\n", 123 | " 4: 'walking',\n", 124 | " 5: 'running',\n", 125 | " 6: 'cycling',\n", 126 | " 7: 'Nordic_walking',\n", 127 | " 9: 'watching_TV',\n", 128 | " 10: 'computer_work',\n", 129 | " 11: 'car driving',\n", 130 | " 12: 'ascending_stairs',\n", 131 | " 13: 'descending_stairs',\n", 132 | " 16: 'vacuum_cleaning',\n", 133 | " 17: 'ironing',\n", 134 | " 18: 'folding_laundry',\n", 135 | " 19: 'house_cleaning',\n", 136 | " 20: 'playing_soccer',\n", 137 | " 24: 'rope_jumping' }\n", 138 | "\n", 139 | "colNames = [\"timestamp\", \"activityID\",\"heartrate\"]\n", 140 | "\n", 141 | "IMUhand = ['handTemperature', \n", 142 | " 'handAcc16_1', 'handAcc16_2', 'handAcc16_3', \n", 143 | " 'handAcc6_1', 'handAcc6_2', 'handAcc6_3', \n", 144 | " 'handGyro1', 'handGyro2', 'handGyro3', \n", 145 | " 'handMagne1', 'handMagne2', 'handMagne3',\n", 146 | " 'handOrientation1', 'handOrientation2', 'handOrientation3', 'handOrientation4']\n", 147 | "\n", 148 | "IMUchest = ['chestTemperature', \n", 149 | " 'chestAcc16_1', 'chestAcc16_2', 'chestAcc16_3', \n", 150 | " 'chestAcc6_1', 'chestAcc6_2', 'chestAcc6_3', \n", 151 | " 'chestGyro1', 'chestGyro2', 'chestGyro3', \n", 152 | " 'chestMagne1', 'chestMagne2', 'chestMagne3',\n", 153 | " 'chestOrientation1', 'chestOrientation2', 'chestOrientation3', 'chestOrientation4']\n", 154 | "\n", 155 | "IMUankle = ['ankleTemperature', \n", 156 | " 'ankleAcc16_1', 'ankleAcc16_2', 'ankleAcc16_3', \n", 157 | " 'ankleAcc6_1', 'ankleAcc6_2', 'ankleAcc6_3', \n", 158 | " 'ankleGyro1', 'ankleGyro2', 'ankleGyro3', \n", 159 | " 'ankleMagne1', 'ankleMagne2', 'ankleMagne3',\n", 160 | " 'ankleOrientation1', 'ankleOrientation2', 'ankleOrientation3', 'ankleOrientation4']\n", 161 | "\n", 162 | "columns = colNames + IMUhand + IMUchest + IMUankle #all columns in one list\n", 163 | "\n", 164 | "len(columns)\n" 165 | ] 166 | }, 167 | { 168 | "cell_type": "code", 169 | "execution_count": 3, 170 | "metadata": {}, 171 | "outputs": [ 172 | { 173 | "data": { 174 | "text/html": [ 175 | "
\n", 176 | "\n", 189 | "\n", 190 | " \n", 191 | " \n", 192 | " \n", 193 | " \n", 194 | " \n", 195 | " \n", 196 | " \n", 197 | " \n", 198 | " \n", 199 | " \n", 200 | " \n", 201 | " \n", 202 | " \n", 203 | " \n", 204 | " \n", 205 | " \n", 206 | " \n", 207 | " \n", 208 | " \n", 209 | " \n", 210 | " \n", 211 | " \n", 212 | " \n", 213 | " \n", 214 | " \n", 215 | " \n", 216 | " \n", 217 | " \n", 218 | " \n", 219 | " \n", 220 | " \n", 221 | " \n", 222 | " \n", 223 | " \n", 224 | " \n", 225 | " \n", 226 | " \n", 227 | " \n", 228 | " \n", 229 | " \n", 230 | " \n", 231 | " \n", 232 | " \n", 233 | " \n", 234 | " \n", 235 | " \n", 236 | " \n", 237 | " \n", 238 | " \n", 239 | " \n", 240 | " \n", 241 | " \n", 242 | " \n", 243 | " \n", 244 | " \n", 245 | " \n", 246 | " \n", 247 | " \n", 248 | " \n", 249 | " \n", 250 | " \n", 251 | " \n", 252 | " \n", 253 | " \n", 254 | " \n", 255 | " \n", 256 | " \n", 257 | " \n", 258 | " \n", 259 | " \n", 260 | " \n", 261 | " \n", 262 | " \n", 263 | " \n", 264 | " \n", 265 | " \n", 266 | " \n", 267 | " \n", 268 | " \n", 269 | " \n", 270 | " \n", 271 | " \n", 272 | " \n", 273 | " \n", 274 | " \n", 275 | " \n", 276 | " \n", 277 | " \n", 278 | " \n", 279 | " \n", 280 | " \n", 281 | " \n", 282 | " \n", 283 | " \n", 284 | " \n", 285 | " \n", 286 | " \n", 287 | " \n", 288 | " \n", 289 | " \n", 290 | " \n", 291 | " \n", 292 | " \n", 293 | " \n", 294 | " \n", 295 | " \n", 296 | " \n", 297 | " \n", 298 | " \n", 299 | " \n", 300 | " \n", 301 | " \n", 302 | " \n", 303 | " \n", 304 | " \n", 305 | " \n", 306 | " \n", 307 | " \n", 308 | " \n", 309 | " \n", 310 | " \n", 311 | " \n", 312 | " \n", 313 | " \n", 314 | " \n", 315 | " \n", 316 | " \n", 317 | " \n", 318 | " \n", 319 | " \n", 320 | " \n", 321 | " \n", 322 | " \n", 323 | " \n", 324 | " \n", 325 | " \n", 326 | " \n", 327 | " \n", 328 | " \n", 329 | " \n", 330 | " \n", 331 | " \n", 332 | " \n", 333 | " \n", 334 | " \n", 335 | " \n", 336 | " \n", 337 | " \n", 338 | "
timestampactivityIDheartratehandTemperaturehandAcc16_1handAcc16_2handAcc16_3handAcc6_1handAcc6_2handAcc6_3...ankleGyro2ankleGyro3ankleMagne1ankleMagne2ankleMagne3ankleOrientation1ankleOrientation2ankleOrientation3ankleOrientation4subject_id
08.380104.030.02.372238.600743.510482.439548.761653.35465...0.009250-0.017580-61.1888-38.9599-58.14381.00.00.00.01
18.390NaN30.02.188378.565603.661792.394948.550813.64207...-0.0046380.000368-59.8479-38.8919-58.52531.00.00.00.01
28.400NaN30.02.373578.601073.548982.305148.536443.73280...0.0001480.022495-60.7361-39.4138-58.39991.00.00.00.01
38.410NaN30.02.074738.528533.660212.335288.536223.73277...-0.0203010.011275-60.4091-38.7635-58.39561.00.00.00.01
48.420NaN30.02.229368.831223.700002.230558.597413.76295...-0.014303-0.002823-61.5199-39.3879-58.26941.00.00.00.01
\n", 339 | "

5 rows × 55 columns

\n", 340 | "
" 341 | ], 342 | "text/plain": [ 343 | " timestamp activityID heartrate handTemperature handAcc16_1 \\\n", 344 | "0 8.38 0 104.0 30.0 2.37223 \n", 345 | "1 8.39 0 NaN 30.0 2.18837 \n", 346 | "2 8.40 0 NaN 30.0 2.37357 \n", 347 | "3 8.41 0 NaN 30.0 2.07473 \n", 348 | "4 8.42 0 NaN 30.0 2.22936 \n", 349 | "\n", 350 | " handAcc16_2 handAcc16_3 handAcc6_1 handAcc6_2 handAcc6_3 ... \\\n", 351 | "0 8.60074 3.51048 2.43954 8.76165 3.35465 ... \n", 352 | "1 8.56560 3.66179 2.39494 8.55081 3.64207 ... \n", 353 | "2 8.60107 3.54898 2.30514 8.53644 3.73280 ... \n", 354 | "3 8.52853 3.66021 2.33528 8.53622 3.73277 ... \n", 355 | "4 8.83122 3.70000 2.23055 8.59741 3.76295 ... \n", 356 | "\n", 357 | " ankleGyro2 ankleGyro3 ankleMagne1 ankleMagne2 ankleMagne3 \\\n", 358 | "0 0.009250 -0.017580 -61.1888 -38.9599 -58.1438 \n", 359 | "1 -0.004638 0.000368 -59.8479 -38.8919 -58.5253 \n", 360 | "2 0.000148 0.022495 -60.7361 -39.4138 -58.3999 \n", 361 | "3 -0.020301 0.011275 -60.4091 -38.7635 -58.3956 \n", 362 | "4 -0.014303 -0.002823 -61.5199 -39.3879 -58.2694 \n", 363 | "\n", 364 | " ankleOrientation1 ankleOrientation2 ankleOrientation3 ankleOrientation4 \\\n", 365 | "0 1.0 0.0 0.0 0.0 \n", 366 | "1 1.0 0.0 0.0 0.0 \n", 367 | "2 1.0 0.0 0.0 0.0 \n", 368 | "3 1.0 0.0 0.0 0.0 \n", 369 | "4 1.0 0.0 0.0 0.0 \n", 370 | "\n", 371 | " subject_id \n", 372 | "0 1 \n", 373 | "1 1 \n", 374 | "2 1 \n", 375 | "3 1 \n", 376 | "4 1 \n", 377 | "\n", 378 | "[5 rows x 55 columns]" 379 | ] 380 | }, 381 | "execution_count": 3, 382 | "metadata": {}, 383 | "output_type": "execute_result" 384 | } 385 | ], 386 | "source": [ 387 | "dataCollection = pd.DataFrame()\n", 388 | "for file in list_of_files:\n", 389 | " procData = pd.read_table(file, header=None, sep='\\s+')\n", 390 | " procData.columns = columns\n", 391 | " procData['subject_id'] = int(file[-5])\n", 392 | " dataCollection = dataCollection.append(procData, ignore_index=True)\n", 393 | "\n", 394 | "dataCollection.reset_index(drop=True, inplace=True)\n", 395 | "dataCollection.head()" 396 | ] 397 | }, 398 | { 399 | "cell_type": "markdown", 400 | "metadata": {}, 401 | "source": [ 402 | "As it can be seen from the sample of the dataframe that we produced, there is some data cleaning required. For instance, activityID 0 must be removed completely from our dataset since this is transient period where the subject was not doing any particular activity as discussed in the readme file that was given. Data cleaning will be discussed thoroughly in the following section." 403 | ] 404 | }, 405 | { 406 | "cell_type": "markdown", 407 | "metadata": {}, 408 | "source": [ 409 | "### Data Cleaning" 410 | ] 411 | }, 412 | { 413 | "cell_type": "markdown", 414 | "metadata": {}, 415 | "source": [ 416 | "From a look at the **PerformedActivitiesSummary** file which is part of the collection of files given, it can be seen that various data is missing and as the **readme** file comments on, there were some wireless disconnections in data collection therefore the missing data has to be accounted for and made up in a way that our data analysis will not be impacted. More in depth, each different activity has 8 or less subjects which did the activity and each different activity has NaN values for various subjects. Therefore some data filling has be applied. As for the NaN values in our data, it is best to use **interpolate** which is constructing a new data point out of a set of known data points.\n", 417 | "\n", 418 | "As a guideline for the code written below, interpolation happens after removing 'activity 0' as it has very noisy and would data which would impact the output massively as the values given in heart rate would not be produced from the data point set that is of activities that actually matter. " 419 | ] 420 | }, 421 | { 422 | "cell_type": "code", 423 | "execution_count": 4, 424 | "metadata": {}, 425 | "outputs": [], 426 | "source": [ 427 | "def dataCleaning(dataCollection):\n", 428 | " dataCollection = dataCollection.drop(['handOrientation1', 'handOrientation2', 'handOrientation3', 'handOrientation4',\n", 429 | " 'chestOrientation1', 'chestOrientation2', 'chestOrientation3', 'chestOrientation4',\n", 430 | " 'ankleOrientation1', 'ankleOrientation2', 'ankleOrientation3', 'ankleOrientation4'],\n", 431 | " axis = 1) # removal of orientation columns as they are not needed\n", 432 | " dataCollection = dataCollection.drop(dataCollection[dataCollection.activityID == 0].index) #removal of any row of activity 0 as it is transient activity which it is not used\n", 433 | " dataCollection = dataCollection.apply(pd.to_numeric, errors = 'coerse') #removal of non numeric data in cells\n", 434 | " dataCollection = dataCollection.interpolate() #removal of any remaining NaN value cells by constructing new data points in known set of data points\n", 435 | " \n", 436 | " return dataCollection\n" 437 | ] 438 | }, 439 | { 440 | "cell_type": "code", 441 | "execution_count": 5, 442 | "metadata": {}, 443 | "outputs": [], 444 | "source": [ 445 | "dataCol = dataCleaning(dataCollection)" 446 | ] 447 | }, 448 | { 449 | "cell_type": "code", 450 | "execution_count": 6, 451 | "metadata": {}, 452 | "outputs": [ 453 | { 454 | "data": { 455 | "text/html": [ 456 | "
\n", 457 | "\n", 470 | "\n", 471 | " \n", 472 | " \n", 473 | " \n", 474 | " \n", 475 | " \n", 476 | " \n", 477 | " \n", 478 | " \n", 479 | " \n", 480 | " \n", 481 | " \n", 482 | " \n", 483 | " \n", 484 | " \n", 485 | " \n", 486 | " \n", 487 | " \n", 488 | " \n", 489 | " \n", 490 | " \n", 491 | " \n", 492 | " \n", 493 | " \n", 494 | " \n", 495 | " \n", 496 | " \n", 497 | " \n", 498 | " \n", 499 | " \n", 500 | " \n", 501 | " \n", 502 | " \n", 503 | " \n", 504 | " \n", 505 | " \n", 506 | " \n", 507 | " \n", 508 | " \n", 509 | " \n", 510 | " \n", 511 | " \n", 512 | " \n", 513 | " \n", 514 | " \n", 515 | " \n", 516 | " \n", 517 | " \n", 518 | " \n", 519 | " \n", 520 | " \n", 521 | " \n", 522 | " \n", 523 | " \n", 524 | " \n", 525 | " \n", 526 | " \n", 527 | " \n", 528 | " \n", 529 | " \n", 530 | " \n", 531 | " \n", 532 | " \n", 533 | " \n", 534 | " \n", 535 | " \n", 536 | " \n", 537 | " \n", 538 | " \n", 539 | " \n", 540 | " \n", 541 | " \n", 542 | " \n", 543 | " \n", 544 | " \n", 545 | " \n", 546 | " \n", 547 | " \n", 548 | " \n", 549 | " \n", 550 | " \n", 551 | " \n", 552 | " \n", 553 | " \n", 554 | " \n", 555 | " \n", 556 | " \n", 557 | " \n", 558 | " \n", 559 | " \n", 560 | " \n", 561 | " \n", 562 | " \n", 563 | " \n", 564 | " \n", 565 | " \n", 566 | " \n", 567 | " \n", 568 | " \n", 569 | " \n", 570 | " \n", 571 | " \n", 572 | " \n", 573 | " \n", 574 | " \n", 575 | " \n", 576 | " \n", 577 | " \n", 578 | " \n", 579 | " \n", 580 | " \n", 581 | " \n", 582 | " \n", 583 | " \n", 584 | " \n", 585 | " \n", 586 | " \n", 587 | " \n", 588 | " \n", 589 | " \n", 590 | " \n", 591 | " \n", 592 | " \n", 593 | " \n", 594 | " \n", 595 | " \n", 596 | " \n", 597 | " \n", 598 | " \n", 599 | " \n", 600 | " \n", 601 | " \n", 602 | " \n", 603 | " \n", 604 | " \n", 605 | " \n", 606 | " \n", 607 | " \n", 608 | " \n", 609 | " \n", 610 | " \n", 611 | " \n", 612 | " \n", 613 | " \n", 614 | " \n", 615 | " \n", 616 | " \n", 617 | " \n", 618 | " \n", 619 | " \n", 620 | " \n", 621 | " \n", 622 | " \n", 623 | " \n", 624 | " \n", 625 | " \n", 626 | " \n", 627 | " \n", 628 | " \n", 629 | " \n", 630 | " \n", 631 | " \n", 632 | " \n", 633 | " \n", 634 | " \n", 635 | " \n", 636 | " \n", 637 | " \n", 638 | " \n", 639 | " \n", 640 | " \n", 641 | " \n", 642 | " \n", 643 | " \n", 644 | " \n", 645 | " \n", 646 | " \n", 647 | " \n", 648 | " \n", 649 | " \n", 650 | " \n", 651 | " \n", 652 | " \n", 653 | " \n", 654 | " \n", 655 | " \n", 656 | " \n", 657 | " \n", 658 | " \n", 659 | " \n", 660 | " \n", 661 | " \n", 662 | " \n", 663 | " \n", 664 | " \n", 665 | " \n", 666 | " \n", 667 | " \n", 668 | " \n", 669 | " \n", 670 | " \n", 671 | " \n", 672 | " \n", 673 | " \n", 674 | " \n", 675 | " \n", 676 | " \n", 677 | " \n", 678 | " \n", 679 | " \n", 680 | " \n", 681 | " \n", 682 | " \n", 683 | " \n", 684 | " \n", 685 | " \n", 686 | " \n", 687 | " \n", 688 | " \n", 689 | " \n", 690 | " \n", 691 | " \n", 692 | " \n", 693 | " \n", 694 | " \n", 695 | " \n", 696 | " \n", 697 | " \n", 698 | " \n", 699 | " \n", 700 | " \n", 701 | " \n", 702 | " \n", 703 | " \n", 704 | " \n", 705 | " \n", 706 | " \n", 707 | " \n", 708 | " \n", 709 | " \n", 710 | " \n", 711 | " \n", 712 | " \n", 713 | " \n", 714 | " \n", 715 | " \n", 716 | " \n", 717 | " \n", 718 | " \n", 719 | " \n", 720 | " \n", 721 | " \n", 722 | " \n", 723 | " \n", 724 | " \n", 725 | " \n", 726 | " \n", 727 | " \n", 728 | " \n", 729 | " \n", 730 | " \n", 731 | " \n", 732 | " \n", 733 | " \n", 734 | " \n", 735 | " \n", 736 | " \n", 737 | " \n", 738 | " \n", 739 | "
timestampactivityIDheartratehandTemperaturehandAcc16_1handAcc16_2handAcc16_3handAcc6_1handAcc6_2handAcc6_3...ankleAcc6_1ankleAcc6_2ankleAcc6_3ankleGyro1ankleGyro2ankleGyro3ankleMagne1ankleMagne2ankleMagne3subject_id
037.661NaN30.3752.215308.279155.587532.246898.553875.77143...9.63162-1.767570.2657610.002908-0.0277140.001752-61.1081-36.8636-58.36961
137.671NaN30.3752.291967.672885.744672.273738.145925.78739...9.58649-1.752470.2508160.0208820.0009450.006007-60.8916-36.3197-58.36561
237.681NaN30.3752.290907.142405.823422.269667.662685.78846...9.60196-1.737210.356632-0.035392-0.052422-0.004882-60.3407-35.7842-58.61191
337.691NaN30.3752.218007.143655.899302.221777.255355.88000...9.58674-1.782640.311453-0.032514-0.0188440.026950-60.7646-37.1028-57.87991
437.701100.030.3752.301067.258576.092592.207207.240425.95555...9.64677-1.752400.2959020.001351-0.048878-0.006328-60.2040-37.1225-57.88471
537.711100.030.3752.071657.259656.012182.192387.210386.01604...9.60177-1.752390.3112760.003793-0.0269060.004125-61.3257-36.9744-57.75011
637.721100.030.3752.411487.597805.939152.239887.466796.03053...9.67694-1.767480.3260600.036814-0.032277-0.006866-61.5520-36.9632-57.99571
737.731100.030.3752.328157.634315.706862.316637.647456.01495...9.61685-1.767490.326380-0.010352-0.0166210.006548-61.5738-36.1724-59.34871
837.741100.030.3752.250967.785985.628212.286377.708015.93935...9.61686-1.722120.3262340.0393460.020393-0.011880-61.7741-37.1744-58.11991
937.751100.030.3752.141077.522625.781412.315387.722765.78828...9.63189-1.706990.3261050.029874-0.0107630.005133-60.7680-37.4206-58.87351
\n", 740 | "

10 rows × 43 columns

\n", 741 | "
" 742 | ], 743 | "text/plain": [ 744 | " timestamp activityID heartrate handTemperature handAcc16_1 \\\n", 745 | "0 37.66 1 NaN 30.375 2.21530 \n", 746 | "1 37.67 1 NaN 30.375 2.29196 \n", 747 | "2 37.68 1 NaN 30.375 2.29090 \n", 748 | "3 37.69 1 NaN 30.375 2.21800 \n", 749 | "4 37.70 1 100.0 30.375 2.30106 \n", 750 | "5 37.71 1 100.0 30.375 2.07165 \n", 751 | "6 37.72 1 100.0 30.375 2.41148 \n", 752 | "7 37.73 1 100.0 30.375 2.32815 \n", 753 | "8 37.74 1 100.0 30.375 2.25096 \n", 754 | "9 37.75 1 100.0 30.375 2.14107 \n", 755 | "\n", 756 | " handAcc16_2 handAcc16_3 handAcc6_1 handAcc6_2 handAcc6_3 ... \\\n", 757 | "0 8.27915 5.58753 2.24689 8.55387 5.77143 ... \n", 758 | "1 7.67288 5.74467 2.27373 8.14592 5.78739 ... \n", 759 | "2 7.14240 5.82342 2.26966 7.66268 5.78846 ... \n", 760 | "3 7.14365 5.89930 2.22177 7.25535 5.88000 ... \n", 761 | "4 7.25857 6.09259 2.20720 7.24042 5.95555 ... \n", 762 | "5 7.25965 6.01218 2.19238 7.21038 6.01604 ... \n", 763 | "6 7.59780 5.93915 2.23988 7.46679 6.03053 ... \n", 764 | "7 7.63431 5.70686 2.31663 7.64745 6.01495 ... \n", 765 | "8 7.78598 5.62821 2.28637 7.70801 5.93935 ... \n", 766 | "9 7.52262 5.78141 2.31538 7.72276 5.78828 ... \n", 767 | "\n", 768 | " ankleAcc6_1 ankleAcc6_2 ankleAcc6_3 ankleGyro1 ankleGyro2 ankleGyro3 \\\n", 769 | "0 9.63162 -1.76757 0.265761 0.002908 -0.027714 0.001752 \n", 770 | "1 9.58649 -1.75247 0.250816 0.020882 0.000945 0.006007 \n", 771 | "2 9.60196 -1.73721 0.356632 -0.035392 -0.052422 -0.004882 \n", 772 | "3 9.58674 -1.78264 0.311453 -0.032514 -0.018844 0.026950 \n", 773 | "4 9.64677 -1.75240 0.295902 0.001351 -0.048878 -0.006328 \n", 774 | "5 9.60177 -1.75239 0.311276 0.003793 -0.026906 0.004125 \n", 775 | "6 9.67694 -1.76748 0.326060 0.036814 -0.032277 -0.006866 \n", 776 | "7 9.61685 -1.76749 0.326380 -0.010352 -0.016621 0.006548 \n", 777 | "8 9.61686 -1.72212 0.326234 0.039346 0.020393 -0.011880 \n", 778 | "9 9.63189 -1.70699 0.326105 0.029874 -0.010763 0.005133 \n", 779 | "\n", 780 | " ankleMagne1 ankleMagne2 ankleMagne3 subject_id \n", 781 | "0 -61.1081 -36.8636 -58.3696 1 \n", 782 | "1 -60.8916 -36.3197 -58.3656 1 \n", 783 | "2 -60.3407 -35.7842 -58.6119 1 \n", 784 | "3 -60.7646 -37.1028 -57.8799 1 \n", 785 | "4 -60.2040 -37.1225 -57.8847 1 \n", 786 | "5 -61.3257 -36.9744 -57.7501 1 \n", 787 | "6 -61.5520 -36.9632 -57.9957 1 \n", 788 | "7 -61.5738 -36.1724 -59.3487 1 \n", 789 | "8 -61.7741 -37.1744 -58.1199 1 \n", 790 | "9 -60.7680 -37.4206 -58.8735 1 \n", 791 | "\n", 792 | "[10 rows x 43 columns]" 793 | ] 794 | }, 795 | "execution_count": 6, 796 | "metadata": {}, 797 | "output_type": "execute_result" 798 | } 799 | ], 800 | "source": [ 801 | "dataCol.reset_index(drop = True, inplace = True)\n", 802 | "dataCol.head(10)" 803 | ] 804 | }, 805 | { 806 | "cell_type": "markdown", 807 | "metadata": {}, 808 | "source": [ 809 | "The reason why heartrate still has NaN values is because interpolation calculates the values around the NaN cell. Since the first cells are NaN it is normal to generate new NaN values after interpolation. To overcome this problem we can assume that the value of the first 4 cells is 100 since the values after the index 4 is 100. Doing so will eliminate any NaN values from our dataset." 810 | ] 811 | }, 812 | { 813 | "cell_type": "code", 814 | "execution_count": 7, 815 | "metadata": {}, 816 | "outputs": [ 817 | { 818 | "data": { 819 | "text/plain": [ 820 | "timestamp 0\n", 821 | "activityID 0\n", 822 | "heartrate 4\n", 823 | "handTemperature 0\n", 824 | "handAcc16_1 0\n", 825 | "handAcc16_2 0\n", 826 | "handAcc16_3 0\n", 827 | "handAcc6_1 0\n", 828 | "handAcc6_2 0\n", 829 | "handAcc6_3 0\n", 830 | "handGyro1 0\n", 831 | "handGyro2 0\n", 832 | "handGyro3 0\n", 833 | "handMagne1 0\n", 834 | "handMagne2 0\n", 835 | "handMagne3 0\n", 836 | "chestTemperature 0\n", 837 | "chestAcc16_1 0\n", 838 | "chestAcc16_2 0\n", 839 | "chestAcc16_3 0\n", 840 | "chestAcc6_1 0\n", 841 | "chestAcc6_2 0\n", 842 | "chestAcc6_3 0\n", 843 | "chestGyro1 0\n", 844 | "chestGyro2 0\n", 845 | "chestGyro3 0\n", 846 | "chestMagne1 0\n", 847 | "chestMagne2 0\n", 848 | "chestMagne3 0\n", 849 | "ankleTemperature 0\n", 850 | "ankleAcc16_1 0\n", 851 | "ankleAcc16_2 0\n", 852 | "ankleAcc16_3 0\n", 853 | "ankleAcc6_1 0\n", 854 | "ankleAcc6_2 0\n", 855 | "ankleAcc6_3 0\n", 856 | "ankleGyro1 0\n", 857 | "ankleGyro2 0\n", 858 | "ankleGyro3 0\n", 859 | "ankleMagne1 0\n", 860 | "ankleMagne2 0\n", 861 | "ankleMagne3 0\n", 862 | "subject_id 0\n", 863 | "dtype: int64" 864 | ] 865 | }, 866 | "execution_count": 7, 867 | "metadata": {}, 868 | "output_type": "execute_result" 869 | } 870 | ], 871 | "source": [ 872 | "dataCol.isnull().sum()" 873 | ] 874 | }, 875 | { 876 | "cell_type": "markdown", 877 | "metadata": {}, 878 | "source": [ 879 | "The reason why HR still has nan values is because the interpolation calculates the values around the nan cell. Since the first cells are nan it is normal to generate new nan values after interpolation. To overcome this problem we can assume that the value of the first 4 cells is 100 since the values after the index 4 is 100." 880 | ] 881 | }, 882 | { 883 | "cell_type": "code", 884 | "execution_count": 8, 885 | "metadata": {}, 886 | "outputs": [ 887 | { 888 | "name": "stderr", 889 | "output_type": "stream", 890 | "text": [ 891 | "C:\\Users\\Andreas\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\pandas\\core\\indexing.py:189: SettingWithCopyWarning: \n", 892 | "A value is trying to be set on a copy of a slice from a DataFrame\n", 893 | "\n", 894 | "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n", 895 | " self._setitem_with_indexer(indexer, value)\n" 896 | ] 897 | } 898 | ], 899 | "source": [ 900 | "for i in range(0,4):\n", 901 | " dataCol[\"heartrate\"].iloc[i]=100" 902 | ] 903 | }, 904 | { 905 | "cell_type": "markdown", 906 | "metadata": {}, 907 | "source": [ 908 | "It is clear that there are no missing values but we can check just to be sure. " 909 | ] 910 | }, 911 | { 912 | "cell_type": "code", 913 | "execution_count": 9, 914 | "metadata": {}, 915 | "outputs": [ 916 | { 917 | "data": { 918 | "text/plain": [ 919 | "timestamp 0\n", 920 | "activityID 0\n", 921 | "heartrate 0\n", 922 | "handTemperature 0\n", 923 | "handAcc16_1 0\n", 924 | "handAcc16_2 0\n", 925 | "handAcc16_3 0\n", 926 | "handAcc6_1 0\n", 927 | "handAcc6_2 0\n", 928 | "handAcc6_3 0\n", 929 | "handGyro1 0\n", 930 | "handGyro2 0\n", 931 | "handGyro3 0\n", 932 | "handMagne1 0\n", 933 | "handMagne2 0\n", 934 | "handMagne3 0\n", 935 | "chestTemperature 0\n", 936 | "chestAcc16_1 0\n", 937 | "chestAcc16_2 0\n", 938 | "chestAcc16_3 0\n", 939 | "chestAcc6_1 0\n", 940 | "chestAcc6_2 0\n", 941 | "chestAcc6_3 0\n", 942 | "chestGyro1 0\n", 943 | "chestGyro2 0\n", 944 | "chestGyro3 0\n", 945 | "chestMagne1 0\n", 946 | "chestMagne2 0\n", 947 | "chestMagne3 0\n", 948 | "ankleTemperature 0\n", 949 | "ankleAcc16_1 0\n", 950 | "ankleAcc16_2 0\n", 951 | "ankleAcc16_3 0\n", 952 | "ankleAcc6_1 0\n", 953 | "ankleAcc6_2 0\n", 954 | "ankleAcc6_3 0\n", 955 | "ankleGyro1 0\n", 956 | "ankleGyro2 0\n", 957 | "ankleGyro3 0\n", 958 | "ankleMagne1 0\n", 959 | "ankleMagne2 0\n", 960 | "ankleMagne3 0\n", 961 | "subject_id 0\n", 962 | "dtype: int64" 963 | ] 964 | }, 965 | "execution_count": 9, 966 | "metadata": {}, 967 | "output_type": "execute_result" 968 | } 969 | ], 970 | "source": [ 971 | "dataCol.isnull().sum()" 972 | ] 973 | }, 974 | { 975 | "cell_type": "markdown", 976 | "metadata": {}, 977 | "source": [ 978 | "As we can see, there are no more missing values. We can now move into Exploratory Data Analysis." 979 | ] 980 | }, 981 | { 982 | "cell_type": "markdown", 983 | "metadata": {}, 984 | "source": [ 985 | "## Exploratory Data Analysis" 986 | ] 987 | }, 988 | { 989 | "cell_type": "markdown", 990 | "metadata": {}, 991 | "source": [ 992 | "#### Splitting Data in Train and Test sets" 993 | ] 994 | }, 995 | { 996 | "cell_type": "markdown", 997 | "metadata": {}, 998 | "source": [ 999 | "Before splitting our data, it is best if we first check if the classes are balanced which would imply that stratification is not needed for our split. If classes' weights are unbalanced, we should proceed with stratifying while splitting the data. Stratified sampling is the process of taking samples of all classes and putting them on the sub-sets created for train and test sets. It helps with getting better results when the distribution of the weights of the classes is not normal. Normal distribution would imply that each class' weight is similar with all other weights of classes. " 1000 | ] 1001 | }, 1002 | { 1003 | "cell_type": "markdown", 1004 | "metadata": {}, 1005 | "source": [ 1006 | "## See class distribution/ration\n", 1007 | "Check if our dataset is balanced" 1008 | ] 1009 | }, 1010 | { 1011 | "cell_type": "code", 1012 | "execution_count": 10, 1013 | "metadata": {}, 1014 | "outputs": [ 1015 | { 1016 | "data": { 1017 | "image/png": "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\n", 1018 | "text/plain": [ 1019 | "
" 1020 | ] 1021 | }, 1022 | "metadata": {}, 1023 | "output_type": "display_data" 1024 | } 1025 | ], 1026 | "source": [ 1027 | "dataCol['activityID'].value_counts().plot(kind = \"bar\",figsize = (12,6))\n", 1028 | "plt.show()" 1029 | ] 1030 | }, 1031 | { 1032 | "cell_type": "markdown", 1033 | "metadata": {}, 1034 | "source": [ 1035 | "As the above plot shows, our classes are mostly balanced. Therefore, we proceed with splitting the data into train and test sets. The most common split in the industry is a 80% split for train set and 20% for test set, which is the split fraction that will be used. " 1036 | ] 1037 | }, 1038 | { 1039 | "cell_type": "code", 1040 | "execution_count": 11, 1041 | "metadata": {}, 1042 | "outputs": [], 1043 | "source": [ 1044 | "train_df = dataCol.sample(frac=0.8, random_state=1)\n", 1045 | "test_df = dataCol.drop(train_df.index)" 1046 | ] 1047 | }, 1048 | { 1049 | "cell_type": "markdown", 1050 | "metadata": {}, 1051 | "source": [ 1052 | "We need to check some statistics/insights from the describe method from pandas as it can provide further results that we need to know as to how our data is being processed for our analysis." 1053 | ] 1054 | }, 1055 | { 1056 | "cell_type": "code", 1057 | "execution_count": 12, 1058 | "metadata": {}, 1059 | "outputs": [ 1060 | { 1061 | "data": { 1062 | "text/html": [ 1063 | "
\n", 1064 | "\n", 1077 | "\n", 1078 | " \n", 1079 | " \n", 1080 | " \n", 1081 | " \n", 1082 | " \n", 1083 | " \n", 1084 | " \n", 1085 | " \n", 1086 | " \n", 1087 | " \n", 1088 | " \n", 1089 | " \n", 1090 | " \n", 1091 | " \n", 1092 | " \n", 1093 | " \n", 1094 | " \n", 1095 | " \n", 1096 | " \n", 1097 | " \n", 1098 | " \n", 1099 | " \n", 1100 | " \n", 1101 | " \n", 1102 | " \n", 1103 | " \n", 1104 | " \n", 1105 | " \n", 1106 | " \n", 1107 | " \n", 1108 | " \n", 1109 | " \n", 1110 | " \n", 1111 | " \n", 1112 | " \n", 1113 | " \n", 1114 | " \n", 1115 | " \n", 1116 | " \n", 1117 | " \n", 1118 | " \n", 1119 | " \n", 1120 | " \n", 1121 | " \n", 1122 | " \n", 1123 | " \n", 1124 | " \n", 1125 | " \n", 1126 | " \n", 1127 | " \n", 1128 | " \n", 1129 | " \n", 1130 | " \n", 1131 | " \n", 1132 | " \n", 1133 | " \n", 1134 | " \n", 1135 | " \n", 1136 | " \n", 1137 | " \n", 1138 | " \n", 1139 | " \n", 1140 | " \n", 1141 | " \n", 1142 | " \n", 1143 | " \n", 1144 | " \n", 1145 | " \n", 1146 | " \n", 1147 | " \n", 1148 | " \n", 1149 | " \n", 1150 | " \n", 1151 | " \n", 1152 | " \n", 1153 | " \n", 1154 | " \n", 1155 | " \n", 1156 | " \n", 1157 | " \n", 1158 | " \n", 1159 | " \n", 1160 | " \n", 1161 | " \n", 1162 | " \n", 1163 | " \n", 1164 | " \n", 1165 | " \n", 1166 | " \n", 1167 | " \n", 1168 | " \n", 1169 | " \n", 1170 | " \n", 1171 | " \n", 1172 | " \n", 1173 | " \n", 1174 | " \n", 1175 | " \n", 1176 | " \n", 1177 | " \n", 1178 | " \n", 1179 | " \n", 1180 | " \n", 1181 | " \n", 1182 | " \n", 1183 | " \n", 1184 | " \n", 1185 | " \n", 1186 | " \n", 1187 | " \n", 1188 | " \n", 1189 | " \n", 1190 | " \n", 1191 | " \n", 1192 | " \n", 1193 | " \n", 1194 | " \n", 1195 | " \n", 1196 | " \n", 1197 | " \n", 1198 | " \n", 1199 | " \n", 1200 | " \n", 1201 | " \n", 1202 | " \n", 1203 | " \n", 1204 | " \n", 1205 | " \n", 1206 | " \n", 1207 | " \n", 1208 | " \n", 1209 | " \n", 1210 | " \n", 1211 | " \n", 1212 | " \n", 1213 | " \n", 1214 | " \n", 1215 | " \n", 1216 | " \n", 1217 | " \n", 1218 | " \n", 1219 | " \n", 1220 | " \n", 1221 | " \n", 1222 | " \n", 1223 | " \n", 1224 | " \n", 1225 | " \n", 1226 | " \n", 1227 | " \n", 1228 | " \n", 1229 | " \n", 1230 | " \n", 1231 | " \n", 1232 | " \n", 1233 | " \n", 1234 | " \n", 1235 | " \n", 1236 | " \n", 1237 | " \n", 1238 | " \n", 1239 | " \n", 1240 | " \n", 1241 | " \n", 1242 | " \n", 1243 | " \n", 1244 | " \n", 1245 | " \n", 1246 | " \n", 1247 | " \n", 1248 | " \n", 1249 | " \n", 1250 | " \n", 1251 | " \n", 1252 | " \n", 1253 | " \n", 1254 | " \n", 1255 | " \n", 1256 | " \n", 1257 | " \n", 1258 | " \n", 1259 | " \n", 1260 | " \n", 1261 | " \n", 1262 | " \n", 1263 | " \n", 1264 | " \n", 1265 | " \n", 1266 | " \n", 1267 | " \n", 1268 | " \n", 1269 | " \n", 1270 | " \n", 1271 | " \n", 1272 | " \n", 1273 | " \n", 1274 | " \n", 1275 | " \n", 1276 | " \n", 1277 | " \n", 1278 | " \n", 1279 | " \n", 1280 | " \n", 1281 | " \n", 1282 | " \n", 1283 | " \n", 1284 | " \n", 1285 | " \n", 1286 | " \n", 1287 | " \n", 1288 | " \n", 1289 | " \n", 1290 | " \n", 1291 | " \n", 1292 | " \n", 1293 | " \n", 1294 | " \n", 1295 | " \n", 1296 | " \n", 1297 | " \n", 1298 | "
timestampactivityIDheartratehandTemperaturehandAcc16_1handAcc16_2handAcc16_3handAcc6_1handAcc6_2handAcc6_3...ankleAcc6_1ankleAcc6_2ankleAcc6_3ankleGyro1ankleGyro2ankleGyro3ankleMagne1ankleMagne2ankleMagne3subject_id
count1.554298e+061.554298e+061.554298e+061.554298e+061.554298e+061.554298e+061.554298e+061.554298e+061.554298e+061.554298e+06...1.554298e+061.554298e+061.554298e+061.554298e+061.554298e+061.554298e+061.554298e+061.554298e+061.554298e+061.554298e+06
mean1.705049e+038.080534e+001.074758e+023.275138e+01-4.953526e+003.581113e+003.603514e+00-4.886385e+003.570863e+003.787763e+00...9.374706e+00-4.445267e-02-2.175620e+001.027736e-02-3.649406e-025.607242e-03-3.157962e+011.394841e+001.725137e+014.566578e+00
std1.093592e+036.175064e+002.699031e+011.794207e+006.239143e+006.886169e+003.958145e+006.245060e+006.585066e+003.945398e+00...6.067489e+007.183548e+003.475628e+001.126197e+006.380780e-012.011908e+001.834688e+012.168353e+011.969368e+012.333375e+00
min3.120000e+011.000000e+005.700000e+012.487500e+01-1.453670e+02-1.043010e+02-1.014520e+02-6.121470e+01-6.184170e+01-6.193470e+01...-6.114200e+01-6.190350e+01-6.231480e+01-1.416200e+01-1.304010e+01-1.401960e+01-1.726240e+02-1.379080e+02-1.027160e+021.000000e+00
25%7.442925e+023.000000e+008.600000e+013.168750e+01-8.970020e+001.057830e+001.162090e+00-8.867070e+001.055563e+001.365070e+00...8.396590e+00-2.073120e+00-3.399390e+00-2.081648e-01-1.066463e-01-4.416657e-01-4.170160e+01-1.246927e+013.799633e+002.000000e+00
50%1.480090e+036.000000e+001.040000e+023.312500e+01-5.449130e+003.525300e+003.432840e+00-5.377104e+003.566820e+003.663470e+00...9.550020e+00-2.252810e-01-1.993145e+004.636280e-03-3.977450e-03-2.336400e-03-3.400060e+017.672570e-011.876795e+015.000000e+00
75%2.664000e+031.300000e+011.240000e+023.406250e+01-9.581008e-016.450507e+006.532445e+00-9.061720e-016.458267e+006.778200e+00...1.028160e+011.920960e+00-5.958823e-011.308070e-011.160640e-019.121635e-02-1.789610e+011.782927e+013.120910e+017.000000e+00
max4.245680e+032.400000e+012.020000e+023.550000e+016.285960e+011.556990e+021.577600e+025.282140e+016.225980e+016.192340e+01...6.196930e+016.204900e+016.093570e+011.742040e+011.358820e+011.448270e+019.155160e+019.369920e+011.469000e+029.000000e+00
\n", 1299 | "

8 rows × 43 columns

\n", 1300 | "
" 1301 | ], 1302 | "text/plain": [ 1303 | " timestamp activityID heartrate handTemperature \\\n", 1304 | "count 1.554298e+06 1.554298e+06 1.554298e+06 1.554298e+06 \n", 1305 | "mean 1.705049e+03 8.080534e+00 1.074758e+02 3.275138e+01 \n", 1306 | "std 1.093592e+03 6.175064e+00 2.699031e+01 1.794207e+00 \n", 1307 | "min 3.120000e+01 1.000000e+00 5.700000e+01 2.487500e+01 \n", 1308 | "25% 7.442925e+02 3.000000e+00 8.600000e+01 3.168750e+01 \n", 1309 | "50% 1.480090e+03 6.000000e+00 1.040000e+02 3.312500e+01 \n", 1310 | "75% 2.664000e+03 1.300000e+01 1.240000e+02 3.406250e+01 \n", 1311 | "max 4.245680e+03 2.400000e+01 2.020000e+02 3.550000e+01 \n", 1312 | "\n", 1313 | " handAcc16_1 handAcc16_2 handAcc16_3 handAcc6_1 handAcc6_2 \\\n", 1314 | "count 1.554298e+06 1.554298e+06 1.554298e+06 1.554298e+06 1.554298e+06 \n", 1315 | "mean -4.953526e+00 3.581113e+00 3.603514e+00 -4.886385e+00 3.570863e+00 \n", 1316 | "std 6.239143e+00 6.886169e+00 3.958145e+00 6.245060e+00 6.585066e+00 \n", 1317 | "min -1.453670e+02 -1.043010e+02 -1.014520e+02 -6.121470e+01 -6.184170e+01 \n", 1318 | "25% -8.970020e+00 1.057830e+00 1.162090e+00 -8.867070e+00 1.055563e+00 \n", 1319 | "50% -5.449130e+00 3.525300e+00 3.432840e+00 -5.377104e+00 3.566820e+00 \n", 1320 | "75% -9.581008e-01 6.450507e+00 6.532445e+00 -9.061720e-01 6.458267e+00 \n", 1321 | "max 6.285960e+01 1.556990e+02 1.577600e+02 5.282140e+01 6.225980e+01 \n", 1322 | "\n", 1323 | " handAcc6_3 ... ankleAcc6_1 ankleAcc6_2 ankleAcc6_3 \\\n", 1324 | "count 1.554298e+06 ... 1.554298e+06 1.554298e+06 1.554298e+06 \n", 1325 | "mean 3.787763e+00 ... 9.374706e+00 -4.445267e-02 -2.175620e+00 \n", 1326 | "std 3.945398e+00 ... 6.067489e+00 7.183548e+00 3.475628e+00 \n", 1327 | "min -6.193470e+01 ... -6.114200e+01 -6.190350e+01 -6.231480e+01 \n", 1328 | "25% 1.365070e+00 ... 8.396590e+00 -2.073120e+00 -3.399390e+00 \n", 1329 | "50% 3.663470e+00 ... 9.550020e+00 -2.252810e-01 -1.993145e+00 \n", 1330 | "75% 6.778200e+00 ... 1.028160e+01 1.920960e+00 -5.958823e-01 \n", 1331 | "max 6.192340e+01 ... 6.196930e+01 6.204900e+01 6.093570e+01 \n", 1332 | "\n", 1333 | " ankleGyro1 ankleGyro2 ankleGyro3 ankleMagne1 ankleMagne2 \\\n", 1334 | "count 1.554298e+06 1.554298e+06 1.554298e+06 1.554298e+06 1.554298e+06 \n", 1335 | "mean 1.027736e-02 -3.649406e-02 5.607242e-03 -3.157962e+01 1.394841e+00 \n", 1336 | "std 1.126197e+00 6.380780e-01 2.011908e+00 1.834688e+01 2.168353e+01 \n", 1337 | "min -1.416200e+01 -1.304010e+01 -1.401960e+01 -1.726240e+02 -1.379080e+02 \n", 1338 | "25% -2.081648e-01 -1.066463e-01 -4.416657e-01 -4.170160e+01 -1.246927e+01 \n", 1339 | "50% 4.636280e-03 -3.977450e-03 -2.336400e-03 -3.400060e+01 7.672570e-01 \n", 1340 | "75% 1.308070e-01 1.160640e-01 9.121635e-02 -1.789610e+01 1.782927e+01 \n", 1341 | "max 1.742040e+01 1.358820e+01 1.448270e+01 9.155160e+01 9.369920e+01 \n", 1342 | "\n", 1343 | " ankleMagne3 subject_id \n", 1344 | "count 1.554298e+06 1.554298e+06 \n", 1345 | "mean 1.725137e+01 4.566578e+00 \n", 1346 | "std 1.969368e+01 2.333375e+00 \n", 1347 | "min -1.027160e+02 1.000000e+00 \n", 1348 | "25% 3.799633e+00 2.000000e+00 \n", 1349 | "50% 1.876795e+01 5.000000e+00 \n", 1350 | "75% 3.120910e+01 7.000000e+00 \n", 1351 | "max 1.469000e+02 9.000000e+00 \n", 1352 | "\n", 1353 | "[8 rows x 43 columns]" 1354 | ] 1355 | }, 1356 | "execution_count": 12, 1357 | "metadata": {}, 1358 | "output_type": "execute_result" 1359 | } 1360 | ], 1361 | "source": [ 1362 | "train_df.describe()" 1363 | ] 1364 | }, 1365 | { 1366 | "cell_type": "markdown", 1367 | "metadata": {}, 1368 | "source": [ 1369 | "We are going to focus on heart rate as it is our most precice meter of check for tracking subjects during activities as implied by the various indications on the readme file of the dataset. With that in mind, looking at the table, we can observe that the mean heart rate throughout the dataset is 107.4 . Furthermore the minimum heart rate is 57 and the maximum heart rate is 202. The quartiles that are shown can be further analysed by plotting a box plot which will help with understanding our outliers and quartiles groups and also shown the mean of our data's heart rate." 1370 | ] 1371 | }, 1372 | { 1373 | "cell_type": "code", 1374 | "execution_count": 13, 1375 | "metadata": {}, 1376 | "outputs": [ 1377 | { 1378 | "data": { 1379 | "image/png": "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\n", 1380 | "text/plain": [ 1381 | "
" 1382 | ] 1383 | }, 1384 | "metadata": {}, 1385 | "output_type": "display_data" 1386 | } 1387 | ], 1388 | "source": [ 1389 | "import seaborn as sns\n", 1390 | "\n", 1391 | "fig, ax = plt.subplots(figsize=(4,4))\n", 1392 | "plt.title(\"Heart Rate \")\n", 1393 | "ax = sns.boxplot(y=train_df[\"heartrate\"])" 1394 | ] 1395 | }, 1396 | { 1397 | "cell_type": "markdown", 1398 | "metadata": {}, 1399 | "source": [ 1400 | "Looking at the box plot, we can see that the outliers have heart rate from 180 up to 202. Our highest quartile group out of the four starts from 124 which is the end of the Inter-quartile range and finishes at 180 which also makes it our biggest group by looking at the size of it on the box plot compared to the other quartiles. Meaning that the biggest amount of subjects on the activities performed had heart rate of 124 up to 180. Our third quartile group starts from the mean value which is 107.4 which is where the horizontal line in our box is, and finishes at the end of the Inter-quartile range which is 124. Our second quartile group, starts from the start of the Inter-quartile range which is 86 and ends at the mean value 124. Our first quartile group starts from the lowest data point, 57 and ends at the start of the Inter-quartile range 86. Our box plot also shows that most subjects performed some activities at a statistically similar way but failed to do the same in all activities which explains the big upper quartile group.\n", 1401 | "\n", 1402 | "To find the most cumbersome activities we have to plot a bar chart which will show the mean values of heart rate for each activity that was performed. This will in return enable us to analyse further specific activity data. The names of the activities will be used for easier analysis of results." 1403 | ] 1404 | }, 1405 | { 1406 | "cell_type": "code", 1407 | "execution_count": 15, 1408 | "metadata": {}, 1409 | "outputs": [ 1410 | { 1411 | "data": { 1412 | "text/plain": [ 1413 | "" 1414 | ] 1415 | }, 1416 | "execution_count": 15, 1417 | "metadata": {}, 1418 | "output_type": "execute_result" 1419 | }, 1420 | { 1421 | "data": { 1422 | "image/png": "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\n", 1423 | "text/plain": [ 1424 | "
" 1425 | ] 1426 | }, 1427 | "metadata": {}, 1428 | "output_type": "display_data" 1429 | } 1430 | ], 1431 | "source": [ 1432 | "df_hr_act = train_df['heartrate'].groupby(train_df['activityID']).mean()\n", 1433 | "df_hr_act.index = df_hr_act.index.map(activityIDdict)\n", 1434 | "df_hr_act.plot(kind='bar')" 1435 | ] 1436 | }, 1437 | { 1438 | "cell_type": "markdown", 1439 | "metadata": {}, 1440 | "source": [ 1441 | "The bar chart shows that Rope Jumping and Running are the most cumbersome activities out of all the activities.\n", 1442 | "\n", 1443 | "To check further on our data to see any anormalities, we have to plot a heat map which will show whether our data has correlations inbetween it. All columns will be used in order to understand the extend of problems, if there are any." 1444 | ] 1445 | }, 1446 | { 1447 | "cell_type": "code", 1448 | "execution_count": 16, 1449 | "metadata": {}, 1450 | "outputs": [ 1451 | { 1452 | "data": { 1453 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3MAAAKUCAYAAACuf2H0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3XmYVdWZ9v/vXUUBVYCAiohTygFJBBxaUV9CHBLT8U2bRINGaJMWY4P+uk06ndHENm1HjXbia3eMth3USJJuZ8BoTKLGCSdUVCZxFk0MRAUBlZmq5/fHXqXHsuYFxamq+3NddXHOPutea59TUPCw9l5LEYGZmZmZmZl1LRVb+wTMzMzMzMys/VzMmZmZmZmZdUEu5szMzMzMzLogF3NmZmZmZmZdkIs5MzMzMzOzLsjFnJmZmZmZWRfkYs7MzMzMzKwLcjFnZmZmZmbWBbmYMzMzMzMz64J6be0TsLbRxw6InPw2B4/NGv+Cpddk5fcfMzorf8DJ/52V/9OjUzucfX3+w1ljH3jqVVn5P87+WVZ+t4NPzspT2T8vX/dWVvyRuh2z8qNW3JeVr9npsKz8utdmZ+X7bpP3/mObMVn568/YPSs/4Yc3ZOXrBhyUlb/xK3tk5Sf++21ZeSp6dzy7Ke/Pzl+e/X1W/sU/zMzK3/eZS7PyZ/R+Niv/wrDPZOX3rM772Tdw3fNZ+UfqdsjK71k9ICu//Ya888+1ad2KrHyvPgOz8vNv+Jes/Da75P3s2eXA8R3OVlb1zRoboGbHw5XdSSfI/fdxe8T9T5blZ+KZOTMzsy0hp5AzMzNrAxdzZmZmZmZmXVCXLeYkDZL0D+nxTpJu2oJj7S/p01uqfzMzMzMza6eKis77KlPle2atGwT8A0BELImI47fgWPsDLubMzMzMzKxsdOUFUC4E9pQ0F3ge+EhEjJI0CTgWqARGAf8P6A18CVgPfDoi3pS0J3AZMARYA0yOiGcknQD8K1AHrAKOAn4AVEsaB1wALAb+E6gG1gKnRMSz7Rj7XmAucDCwDfDliHh0S31QZmZmZmbdjrryvNTm0ZU/gTOBFyNif+BbjV4bBfwtRbF0PrAmIg4AHgb+LrWZCnwlIg4Evgn8Vzr+feBTEbEf8NmI2JCOXR8R+0fE9cAzwGGpz+8DP2zn2AD9ImIsxeziz5t6g5KmSJojaQ5/Wdaez8bMzMzMzLq5rjwz15J7IuJt4G1Jq4Bb0/EFwL6S+gNjgRuld1cZ7ZN+fRCYJukGYEYz/Q8EfiFpOBBAVVvHLml3LUBEzJK0jaRBEbGydJCImEpRdHbq0qtmZmZmZmWvoix3C+hU3bWYW1/yuL7keT3Fe64AVqZZvfeJiNMlHQL8DTBX0gfaAOdSFG3HSaoF7m3H2O8O1XjoFt6PmZmZmZnZ+3TlyyzfBjq0I2ZEvAUsTvfHocJ+6fGeEfFIRHwfWAbs2sRYA4E/p8eTOnb6nJjGGwesiohVHezHzMzMzKzn8WqWXbeYi4jlwIOSFgI/7kAXJwGnSpoHPAV8Lh3/saQFqd9ZwDzgHmAfSXMlnQj8CLhA0oMUi510xApJDwH/DZzawT7MzMzMzKyH6tKXWUbE3zZxbBowreR5bVOvRcRi4Ogm8p9vYqg3gTGNju1d8vjs9oydTI+I7zYxlpmZmZmZtcarWXbtYq4nWf37WVn5l9evy8rv2udHWfnVz0/LyucauPPIDme32XF43uCZP2gG7bZv641aHD/zj3lsyMtnOqRP3u/dv7zxbFa+ZvBuWfmqnY/Jyq9Y9N9Z+cEf/nBWvn+/vln5FX+ak5UfPGLv1hu1IPf8i9udOxpdB/UZf34qenc8C6x5Y2lWfuDOH8rKT9xzVFZeVQdm5Q+oyLwVve6drHj0HpKVP7hqu6w8m97KikefXbPyWvdKVr5Xdd7nR2zKim//kb/Kym9Xe2hW/p2BHc8PWvd01tjWtbiY2woi4oitfQ5mZraF5RRyZmbWujK+l62z+BMwMzMzMzPrgjwzZ2ZmZmZmXY9n5nr2zJykIySNLXl+uqS/ayVzpaR90uPvtWGM2rQyZsN4qyQ9KelZSbMk5d1QY2ZmZmZmPVJPn5k7AngHeAggIlpdaSAi/r7k6feAH7ZzzPsj4hiAtCH5zZLWRsRd7ezHzMzMzMx6sG5ZzEm6mWKz777ATyJiqqSjKQqvSorNwE8FTgfqJH0R+ArwCYri7jbgFxFxcOqvFrglIvaVdC/wTeB4oFrSXIp96l4ClkXET1LmfOA14JbmzjMi5kr6AXAG4GLOzMzMzKytpK19Bltdd73M8ssRcSBwEPBVSUOBK4DxEbEfcEJEvEyxYfd/RMT+EXF/QzgingZ6S9ojHToRuKF0gIg4E1ibsicBVwEnA0iqACYA/9uGc30CaHLtcElTJM2RNOfnP7+6re/dzMzMzMx6gG45M0dRwB2XHu8KTAFmpY3CiYg329DHDcAXgAspirkTW2ocES9LWi7pAGAo8GRELJc0oJVxmv0vhYiYCkwFWLP67cwNc8zMzMzMuhEvgNL9ijlJRwBHAf8nItakyyLnASPa2dX1wI2SZgAREc+3IXMlMAnYEfh5G8c5APDujmZmZmZm1i7dsZwdCKxIhdyHgUOBPsDhknYHkLRtavs20OTMWUS8CNQBZ1MUdk3ZKKmq5PlM4GhgDHB7aycqad/U/2WttTUzMzMzsxKq6LyvMtXtZuaA3wOnS5oPPAvMBt6guNRyRrqf7XXgk8CtwE2SPkexAEpj1wM/BnZvZqypwHxJT0TESRGxQdI9wMqIqGsm8zFJTwI16Ty+6pUszczMzMysvbpdMRcR64H/28zLv2vU9jlg35JD9zd6/SLgokbHjih5/B3gOw3PU6F4KHBCSZuXgVHp8b0UM4dmZmZmZpbD98x1v2Jua0kbif8GmNnG++vaZdj3z8zKv/XoQ1n5W8euzsoP3WOvrPw2tUdn5ZfO/UOHs+tXLc8ae9+TPpWVX/JEq1fstmibTx+QladyUF6+fl1WfN6m/ln5D/UfmpWnX5OLzbbZ6uenZeW33e2QrHx9ZWtrMLWsd++8vyayz79X3v9/9epVmZXPuhuhom/WpTmx6e2Ojw0M3LW9t4q/34uz78vKv7RkcVb+lH5Ls/IvDvw/WfmhVXl/dgasW5SVX7SxT1Z+x97VWfltM88f5f3sqN+wKitfUdUvK//a/NlZ+bVvvp6V321M7w5nV618JWtsgOodDs3uwzqHi7nNJCIWAXu02tDMzHqGMr7HwsysW/DMXLdcAMXMzMzMzKzb65bFnKRaSQu3QL/7S/p0B8/nbzf3+ZiZmZmZ9VSSOu2rXHXLYm5LkNQL2B9osphLrzenFnAxZ2ZmZmbWTUk6WtKzkl6Q9IEFLyR9SNJdkuZLulfSLrljdud75iolXQGMBf4MfA7YiWJPtyHAGmByRDwj6TPAvwC9geXASRHxmqRzUqYWWAaMA6oljQMuAD5S+rqk7wG/Ahruuj0jIh4CLgQ+Imku8AvgknTsCIo98C6LiJ9tsU/CzMzMzKy7KaN75iRVUtQZnwReBR6TdEtaV6PBRcAvI+IXkj5OUU98KWfc7lzMDQcmRsRkSTcA44FTgNMj4nlJhwD/BXwceAA4NCJC0t8D3wa+kfo5EBgXEWslTQIOiogzAFKxV/p6DfDJiFgnaThwLXAQcCbwzYg4JuWmAKsiYoykPsCDku6IiLylv8zMzMzMbGs4GHghIl4CkHQdxWRSaTG3D/DP6fE9wM25g3bnYm5xRMxNjx+nmD0bC9xYct1rw7q/uwDXSxpGMTtXWlTdEhFrWxin9PUq4FJJ+wN1wN7NZP4a2FfS8en5QIri833FXCr6pgD0Pepweu87soXTMDMzMzPrQTpxZq703+XJ1IiYWvJ8Z+BPJc9fBRrvzzOPYoLpJ8BxwABJ20VEh/fB6s7F3PqSx3XAUGBlROzfRNufAhdHxC2SjgDOKXmttQ3WSl//Z+A1YD+K+xGb22BLwFciosUNxNJvkKkAA7/xj9HKeZiZmZmZ2RZQ+u/yZjS1Skrjf79/k2LiZxIwi+JWsE0551U+F5pueW8BiyWdAKDCfum1gRQfJsDJLfTxNtDSLqIDgaURUU9x/WvDbrWNc7cD/5+kqnQue0vK293SzMzMzMy2lleBXUue7wIsKW0QEUsi4vMRcQBwVjq2KmfQnlTMAZwEnCppHvAUxXWsUMzE3SjpfoqFTppzD7CPpLmSTmzi9f8CTpY0m+ISy4ZZu/nAJknzJP0zcCXF9bNPpC0Ufkb3niU1MzMzM9u8VNF5X617DBguaXdJvYEJwC3vO11pe+ndzr4L/Dz3I+iWBUREvAyMKnl+UcnLRzfR/tfAr5s4fk6j528CY1oY93lg35JD303HNwKfaNT8e+nLzMzMzMy6sIjYJOkMiivwKoGfR8RTkn4AzImIWyhWsr9AUlBcZvmPueN2y2LOzMzMzMy6uTLamgAgIn4L/LbRse+XPL4JuGlzjqkIr6vRFfzX3w7O+kbttuuQrPE/81DeLX1rbrkxK7/x7eey8r22+UhWPsemt57OyvcatF/rjVqy5oW8fCZVVmflVy97NitfM3i3rHyu3X96S+uNWvDy15q6orsdKmqy4lG1XVZeG17LyqO8/3OM3nk/+7Q2d8eY+ozBe2eNvGldhxdHA6BXn4FZ+dee+11Wflr1x7Py/7ztyqx8Ra++Wflc9ZuaW0OtbVRZlZdXZeuNWtCr7+CsfO7PLurXZMWjz85542f++Y3KrbuUQr+amqYW8yg7FROP7bRCpv7am8vyM/HMnJmZ2RaRUciZmVnrKsqyvupU5TU3aWZmZmZmZm3S5pk5SbXAbyJiVCtN20XSNOA3FCtN7g70B4bw3gba/xARD23OMTcXSR8H1kTE7K19LmZmZmZmPUrbVpns1srmMsuIOA4gbdr9zYg4ZuueUUFSr4hobjO/j1NsZdDmYq6V/szMzMzMzNqkveVspaQrJD0l6Q5J1ZImS3os7aE2XVINFDNuki6R9JCklyQdn45L0qWSFkm6DdihtUEljZF0n6THJf1O0tB0/AFJF0u6P/V3kKSZkp6XdE5qs1c6319JWiDpBknVbej3fEmzgDMkfU7SI5KeTO97B0l7An8PfCvtOzdW0v9IOrbkvN9Jvx4l6Q+SrgOeTMdOlvRoyv5XyZ4TZmZmZmbWmoqKzvsqU+09s+HAZRExElgJjAdmRMSYiNgPeBo4taT9MGAccAxwYTp2HDACGA1MBsa2NKCkPsBPgPERcSDwP8C5JU3WRsTHgKuAm4HTU99TJA1KbfZJ5z0aWAec1oZ+t4mIwyLiPyn2gTg07dY+A/hGRLxIsfn3jyNi/zZcCnoo8O2IGC1pVPocxkbE/hQzpBOaeO9TJM2RNOeBF9a30r2ZmZmZmfUk7b3McnFEzE2PHwdqgVGSzgMGUdzvdntJ+5sjoh5Y1DDrBRwGXBsRdcASSXe3MuZHgJHAHyRBsQnfqyWvN6z7vQBYEBGvAUh6GdiFonhbXHJf2/8AU4B7W+n3upLHuwE3SNoR6AN0ZJ38hyPij+nxURSbj89JY1cDf2ociIipwFTI35rAzMzMzKxbKeMZs87S3mKudHqojqIImQYcGxHzJE2i2Nm8qfala4e2pzARMD/NvrV0TvWNxqvnvffXeLxoQ7+rSx5fBvwwIn4r6SjgzGYym0iznSo2aCn9fEv7E8Wu8Gc304+ZmZmZmVmLNkc5OwBYKqmKYkXK1swCJkiqlDQMOLKV9ouAnSUdDCCpt6SR7TzH3SWNSY8nAg+0s9+BwJ9VTKOdXHL8bYr33+Bl4MD0+DiK2b6m/AH4gqTt09jbSdq6OxubmZmZmXUlqui8rzK1Oc7sbOAR4E7gmTa0nwk8T3FZ5OXAfS01joj1wPHAxZLmUSwgckg7z/EpYLKk+UA/YGo7+z0nnfd9wGslx39NUZQ9KWks8DPgk5IeBfbn/TOFpe9pAfBvFJd4zgfuAIY21dbMzMzMzKwpbb7MMiJeBkaVPL+o5OXLm2g/qdHz/unXAM5oYZx7Ke5nKz32BMVCKo3bjit5/AeKGa/3vSZpL6AuIqY0kW+13/R8OjC9iXbPUCy2Uurgksf/0tS5pWPXANc07tPMzMzMzNqgQq236ebKZp85a9n+YxrXjO1TVdM/K7/mzEuy8jWfPSErv/yq5m5TbJu/DBjQeqNmjBj/6ayx35z6raz8kro+WfkP9RqYlV/9xoKsfL8d9svKX3POP2blJ//3nKz8nx/7WVZ+zmeGZOVR76z4bT/I27Lz9dM/8P9Y7XLKkOauNm+bW8/5m6z8sn+YkZX/295LsvIVVX07nO01sL13FLzfa1W7Z+VfXbe69UYtqLz/tqz8aZ/aPiv/4j2tra/Wsg99NO/vrZrBtVn5J286Pys//FNfzsr3337vrDwVNVnx9Ss7stbce3oPae9FXI1kbgm8irx/d/Vffn+HsxWVeX9vAFDT2l1QVi66fTEXES9QXPJoZmbWaXIKOTMzs7bo9sWcmZmZmZl1Q96aYLMsgGJmZmZmZmadrCyKOUm1khZugX6nSTq+5PkQSRslnZbR5/mS/iTpnSZe+4KkRZKektTi4iaSfi9ppaTfdPRczMzMzMx6LG9NUB7FXCc6AZhNsddcR93K+1esBEDScOC7wEcjYiTwtVb6+THwpYzzMDMzMzOzHqycirlKSVekWa07JFVLmizpMUnzJE2XVAPvzrhdIukhSS81zL6pcGmaHbsN2KHRGBOBbwC7SNq54aCkoyU9kca5Kx3rL+lqSQskzZc0HiAiZkfE0ibOfzJwWUSsSO1eb+nNRsRdFJuOm5mZmZlZO6miotO+ylU5ndlwimJoJLASGA/MiIgxEbEf8DRwakn7YRR7xB0DXJiOHQeMoNj7bTIwtqGxpF2BHSPiUeAG4MR0fAhwBTA+jdOwFvHZwKqIGB0R+wKtrXG8N7C3pAclzZZ0dEc+hFKSpkiaI2nOrx9uqn40MzMzM7OeqpxWs1wcEXPT48eBWmCUpPOAQUB/4PaS9jdHRD2wSNLQdOww4NqIqAOWSCotwCZQFHEA1wFXARcDhwKzImIxQES8mdoclTKk4ytaOf9eFAXpEcAuwP2SRkXEyja89yZFxFRgKsBD/3FYdLQfMzMzM7PupqKMZ8w6SzkVc+tLHtcB1cA04NiImCdpEkWh1FT70u3fmyt6JgJDJZ2Unu+U7nNTM5nmjjfnVWB2RGwEFkt6lqK4e6wdfZiZmZmZmbVJuZezA4ClkqqAk1prDMwCJkiqlDQMOBJA0gigX0TsHBG1EVELXEAx8/YwcLik3VPbbVNfdwBnNHQsaXArY99cMt72FJddvtSmd2lmZmZmZu1SUVHRaV/lqnzPrHA28AhwJ/BMG9rPBJ4HFgCXA/el4xPTa6WmAxMj4g1gCjBD0jzg+vT6ecBgSQvT8YZC7UeSXgVqJL0q6ZzU/nZguaRFwD3AtyJieXMnKul+4EbgE6mfT7Xh/ZmZmZmZmQFlcpllRLwMjCp5flHJy5c30X5So+f9069ByWxaiZua6GM+sE96/Dvgd41efwc4uYnct4FvN3E8gK+nr1ZFxMfa0s7MzMzMzD6onGfMOouKGsTK3do3F2V9o6KiT9b4m956Ni+/Lm8Xhu1OvbD1Ri1Y+ctzOpyN+rqssQd/5SdZ+RU//aesfP3QT2blq9c8lZWnondWfNPaN7Lyv/vRlKz8MefPzspvevPxrHzVNntk5V+vHJaV7/vy9a03asE2u4zLyi+t3CkrX/PytVn5gR/KvGhi05utt2lORU3W0BtX/zEvv7bD63cBULPDQVn5UFVWXvXrW2/U0vhV2+WNv+6VrDy9BmXFs89/7YtZeWJTVrx+09q84SPv7+76ug1Z+Q2rm704q036DT2ww9mnbz4ra2yAv/ryTLXeauur/uqUTitk1l4ytSw/k7KYmeuuJI0GftXo8PqIOGRrnI+ZmXWinELOzMxa5Zk5F3NbVEQsAPbf2udhZmZmZmbdj4s5MzMzMzPrcjwzVyarWUqqlbRwC/Q7TdLxJc+HSNoo6bSMPs+X9CdJ7zTx2hckLZL0lKRrWuhjf0kPp3bzJZ3Y0fMxMzMzM7OeqSyKuU50AjCbYquCjroVOLjxwbQB+XeBj0bESOBrLfSxBvi71O5o4D8l5d3pbGZmZmZmPUo5FXOVkq5Is1V3SKqWNFnSY5LmSZouqQbenXG7RNJDkl5qmH1T4dI0O3YbsEOjMSYC3wB2kbRzw0FJR0t6Io1zVzrWX9LVkhak2bPxABExOyKWNnH+k4HLImJFavd6c280Ip6LiOfT4yXA68CQjn1sZmZmZmY9T4XUaV/lqpyKueEUxdBIYCUwHpgREWMiYj/gaeDUkvbDgHHAMUDDuvXHASOA0RTF1diGxpJ2BXaMiEeBG4AT0/EhwBXA+DTOCSlyNrAqIkZHxL7A3a2c/97A3pIelDRb0tFtedOSDgZ6Ax9YA1jSFElzJM256hc3tKU7MzMzMzPrIcppAZTFETE3PX4cqAVGSToPGAT0B24vaX9zRNQDiyQNTccOA66NYnORJZJKC7AJFEUcwHXAVcDFwKHArIhYDBARDWtJH5UypOMrWjn/XhQF6RHALsD9kkZFRLMb9UgaRrF1wcnpvbxPREwFpkL+PnNmZmZmZt2JF0Apr2KudHfPOqAamAYcGxHzJE2iKJSaal8699lc0TMRGCrppPR8p3Sfm5rJNHe8Oa8CsyNiI7BY0rMUxd1jTTWWtA1wG/AvEZG3K7GZmZmZmfU45V7ODgCWSqoCTmqtMTALmCCpMs16HQkgaQTQLyJ2jojaiKgFLqCYeXsYOFzS7qnttqmvO4AzGjqWNLiVsW8uGW97issuX2qqoaTewEzglxFxYxvel5mZmZmZlaioqOi0r3JVvmdWOBt4BLgTeKYN7WcCzwMLgMuB+9Lxiem1UtOBiRHxBjAFmCFpHnB9ev08YLCkhel4Q6H2I0mvAjWSXpV0Tmp/O7Bc0iLgHuBbEbG8mfP8AsUloZMkzU1f3lzczMzMzMzaTBG+FasreO73X8v6Rq15o6kFONtu789c2HqjFrwaA7LyQ1c+mJUf9HfnZOWfveXODmezz33Kv2flV//qgqx8rnVv/SUrv+ovC7LyQw/6blb+ylOGZeVP/Y9fZ+XXrHwlK1/VZ5usfO8dP5mVX/3K9Kz81j5/rXk2K79xdd7v/6oBu3U4u77PHlljr4u6rHw8/8us/MCd9s3Kv/nHR7Ly/bfbKyvfZ2De57/shd9n5ftvv2dWvu+g4Vl5+MBSAO2Mr8vLV9Tk5Sv7Z8WjV96/e7T2A+vitVPefE31DoeW7/KNJYZ89587rZB544L/KMvPpNxn5sy2upxCzsx6rq1ZyJlZT+Z/3vck5bQASrcjaTTFapWl1kfEIVvjfMzMzMzMuotyvpets7iY24IiYgHge+HMzMzMzGyzczFnZmZmZmZdjmfmyuSiWkm1khZugX6nSTq+5PkQSRslnZbR5/mS/iTpnSZe+4KkRZKeknRNC318SNLjaRXLpySd3tHzMTMzMzOznqmnzcydAMym2KrgZx3s41bgUootEN6VNiD/LvDRiFghaYcW+lgKjI2I9ZL6Awsl3RIRSzp4TmZmZmZmPYpn5spkZi6plHRFmqm6Q1K1pMmSHpM0T9J0STXw7ozbJZIekvRSw+ybCpem2bHbgMYF1UTgG8AuknZuOCjpaElPpHHuSsf6S7pa0gJJ8yWNB4iI2RHR1Dr/k4HLImJFavd6c280IjZExPr0tA/NfB8kTZE0R9Kc63+btzy7mZmZmZl1L+VUzA2nKIZGAiuB8cCMiBgTEfsBTwOnlrQfBowDjgEaNkE7DhgBjKYorsY2NJa0K7BjRDwK3ACcmI4PAa4AxqdxTkiRs4FVETE6IvYF7m7l/PcG9pb0oKTZko5uqbGkXSXNB/4E/HtTs3IRMTUiDoqIg0789OhWhjczMzMz6zkqKyo67atcldOZLY6Iuenx40AtMErS/ZIWACcBI0va3xwR9RGxCBiajh0GXBsRdak4Ki3AJlAUcQDXUczSARwKzIqIxQAR8WY6fhRwWUO4YcatBb0oCtIjUt9XShrUXOOI+FMqEvcCTpY0tLm2ZmZmZmZmjZVTMbe+5HEdRXE0DTgjIkYD/wb0baZ96Y7sze0EPxGYJOll4BZgv3Sfm5rJNHe8Oa8Cv46IjakwfJaiuGtRKjqfAj7WjrHMzMzMzKyHK6dirikDgKWSqihm5lozC5ggqVLSMOBIAEkjgH4RsXNE1EZELXABxWzdw8DhknZPbbdNfd0BnNHQsaTBrYx9c8l421NcdvlSUw0l7SKpuqTfj1IUf2ZmZmZm1gYVFRWd9lWuyvfMCmcDjwB3As+0of1MilUmFwCXA/el4xPTa6WmAxMj4g1gCjBD0jzg+vT6ecBgSQvT8YZC7UeSXgVqJL0q6ZzU/nZguaRFwD3AtyJieTPn+RHgkdTvfcBFaYNxMzMzMzOzNlFEe64ktK3lgR8dkvWNqqoZkDX+6C9ekZXv9/kTs/IrrjgzK//6tod1ODvis5/MGvvNq7+XlX9tuyOz8h+qz9vxYv3KF7LyfQbtlZX/2ekfzcqfNvXxrPyfH+voLiaF6sE7ZeW33f0TWfnbzj02K//66dOz8qcMUeuNWnDrvx2XlV/2DzOy8l+sbmrx4rarqOrbeqPmsv32zBp7Cdtk5V9dtzorr6s+l5Uf8Td/n5VfOu+erPxuh34+K18zuDYrP+/as7Lye37y5Kx8/+33zsrTq9llA9pk/Yq2/B9+83pvf2BWPne+Y4Xy/t018O05Hc5KlVljA/Tb6ci8H96dZI/zz+60Quals84ty8+k3GfmzMzMuqScQs7MzKwtetqm4Z1K0mjgV40Or4+IQ7bG+ZiZmZmZdRflfC9bZ3ExtwWl++D239rnYWZmZmZm3U9Zl7OSaiUt3AL9TpN0fMnzIZI2Sjoto8/ekqZKek7SM5LGt9D2MElPSNpUeh5mZmZmZtY2Xs2yzIu5TnQCMJv3NhLviLOA1yNib2Af3ltJsyl/BCYB12SMZ2ZmZmZmPVggBeiFAAAgAElEQVRXuMyyUtIVwFjgz8DngC9SbCfQG3gB+FJErJE0DXgLOAjYEfh2RNwkScBPgY8Di3n/JuNQFHHfAK6RtHNE/BlA0tHAD4FKYFlEfEJS/9TXQRSbiv9bREwHvgx8GCAi6oFlzb2hiHg59V+f8bmYmZmZmfVY5Txj1lm6wicwHLgsIkYCK4HxwIyIGBMR+wFPA6eWtB8GjAOOAS5Mx44DRgCjgckUhSEAknYFdoyIR4EbgBPT8SHAFcD4NM4JKXI2sCoiRkfEvsDdkhrW3z03XT55o6ShuW9c0hRJcyTNueWR13O7MzMzMzOzbqQrFHOLI2Juevw4UAuMknS/pAXAScDIkvY3R0R9RCwCGgqqw4BrI6IuIpYAd5e0n0BRxAFcx3uXWh4KzIqIxQAR8WY6fhRwWUM4IlZQzHDuAjwYEX8FPAxclPe2ISKmRsRBEXHQZw/ZIbc7MzMzM7Nuo0LqtK9y1RUus1xf8rgOqAamAcdGxDxJk4Ajmmlf+sk3t6ngRGCopJPS850kDU/ZpjJNHV8OrAFmpuc38v7ZQjMzMzMzs82qK8zMNWUAsFRSFcXMXGtmARMkVUoaBhwJIGkE0C8ido6I2oioBS6gmK17GDhc0u6p7baprzuAMxo6ljQ4IgK4lfeKyk8Ai/LeopmZmZmZNcerWXbdYu5s4BHgTuCZNrSfCTwPLAAu572VJify3mxag+nAxIh4g2KRlRmS5gHXp9fPAwZLWpiOH5mOfwc4R9J84EsUC6o0SdIYSa9S3If3M0lPteE9mJmZmZmZvausL7NMqz6OKnleeh/a5U20n9Toef/0a1Aym1bipib6mE+xtQAR8Tvgd41efwc4uYncKxT35rUqIh6juMfOzMzMzMw6oJxnzDqLijrHyt3a5QvzvlEVfbPiG99+Litft2F1Vn7br16alV952dc7nK2v25A19ran/DArv+pX52ble23/0ay8VmdOHFdtnxXftPqVrPyvz/9yVv7zP34iK79pxeNZ+ar+tVn5ZZXDsvK9X76+9UYt2GaXcVn5pZU7ZeVrXr42Kz9wtyNbb9SSunc6nq3snzX0xrdeysuvfysrX7PDwVn5UGVWXvXrW2/U0vhV2+WNvy7vZxe9BrXepgXZ57/2xaw8sSkrXr9pbVa+olefrPzGdSuz8htWL8/K9xt6YIezC2/8ZtbYAGNO+235rvhRYt//vLDTCpn5XzuzLD+Tsp6Z6+okncV7Wxo0uDEizt8a52NmZp0op5AzMzNrAxdzW1Aq2ly4mZmZmZltZr7MsusugGJmZmZmZtajlXUxJ6lW0sIt0O80SceXPB8iaaOk0zL67C1pqqTnJD0jaXwLbb8uaZGk+ZLukvShjo5rZmZmZtYTeWuCMi/mOtEJwGyKrQo66izg9YjYm2I1zPtaaPskcFBE7EuxouaPMsY1MzMzM7MeqCsUc5WSrpD0lKQ7JFVLmizpMUnzJE2XVAPvzrhdIukhSS81zL6pcGmaDbsN2KHRGBMp9oXbRdLODQclHS3piTTOXelYf0lXS1qQZtYaZuC+TLHhOBFRHxHLmntDEXFPRKxJT2fjbQrMzMzMzNrFM3Ndo5gbDlwWESOBlcB4YEZEjImI/YCngVNL2g8DxgHHABemY8cBI4DRwGRgbENjSbsCO0bEo8ANwInp+BDgCmB8GqdhVcqzgVURMTrNrN0tqWH94HNT8XejpKFtfH+n0mgvu5JzmyJpjqQ5V/3ixjZ2Z2ZmZmZmPUFXWM1ycUTMTY8fB2qBUZLOAwYB/YHbS9rfHBH1wKKSguow4NqIqAOWSLq7pP0EiiIO4DrgKuBi4FBgVkQsBoiIN1Obo1KGdHyFpO0pZtcejIivS/o6cBHwpZbemKQvAgcBhzf1ekRMBabCZthnzszMzMysGynnGbPO0hWKudJdP+uAamAacGxEzJM0CTiimfalm/s1VwxNBIZKOik930nS8JRtKtPU8eXAGmBmen4j758t/GAn0lEU99kdHhF5O5uamZmZmVmP01XL2QHAUklVwEmtNQZmARMkVUoaBhwJIGkE0C8ido6I2oiopbjvbQLwMHC4pN1T221TX3cAZzR0LGlwRARwK+8VlZ8AFjV3MpIOAH4GfDYiXm/bWzYzMzMzswaVFRWd9lWuyvfMWnY28AhwJ/BMG9rPBJ4HFgCX895KkxN5bzatwXRgYkS8AUwBZkiaB1yfXj8PGCxpYTp+ZDr+HeAcSfMpLq/8Rgvn82OKy0NvlDRX0i1teA9mZmZmZmbvUjGpZOXu2du+kvWNWrNsadb4I477SVb+j3V9svI7vjkrKz/49Is6nH36hrxae6dVs7PyA790dlZ+zU0/zcpv2rA6K79x7cqs/Kq/LMjKDz3ou1n5K08ZlpWffMlvs/LvLH8hK1/VZ5usfO9hn8rKr345b/GmrX3+Wv1UVn7j6o5ffFE1oDZr7LV98rYw3RD1Wfn6567Oyg/e9eCs/LKX8v7eGDBk76x8n4G1Wfk3nm9ybbQ2yz3/voOGZ+Uh7/cP9evy8pX98/IVNVnx6DUwK6+1z2eE8++iqh5ysFpvtfWNu/LSTitkHvj7M8ryM+mqM3NmZmZlLaeQMzMza4uusABKlyXpLN7b0qDBjRFx/tY4HzMzMzOz7qKc72XrLC7mtqBUtLlwMzMzMzOzzc7FnJmZmZmZdTmemSvze+Yk1UpauAX6nSbp+JLnQyRtlHRaRp+9JU2V9JykZySNb6Ht6ZIWpJUsH5C0T0fHNTMzMzOznqmsi7lOdAIwm2Krgo46C3g9IvYG9uG97Q+ack1EjI6I/YEfARdnjGtmZmZmZj1QVyjmKiVdIekpSXdIqpY0WdJjkuZJmi6pBt6dcbtE0kOSXmqYfVPhUkmLJN0G7NBojIkU+8LtImnnhoOSjpb0RBrnrnSsv6Sr08za/JIZuC9TbDhORNRHxLLm3lBEvFXytB/Q5LKqkqZImiNpzvW/3+wTlGZmZmZmXVZlZUWnfZWr8j2z9wwHLouIkcBKYDwwIyLGRMR+wNPAqSXthwHjgGOAC9Ox44ARwGhgMjC2obGkXYEdI+JR4AbgxHR8CHAFMD6N07Aq5dnAqjSzti9wt6RB6bVzU/F3o6ShLb0pSf8o6UWKmbmvNtUmIqZGxEERcdCJR49q5WMyMzMzM7OepCsUc4sjYm56/DhQC4ySdL+kBcBJwMiS9jenmbFFQENBdRhwbUTURcQS4O6S9hMoijiA63jvUstDgVkRsRggIt5Mx48CLmsIR8QKioVkdgEejIi/Ah4GWtylOiIui4g9ge8A/9L6x2BmZmZmZg0qKyo67atcdYXVLNeXPK4DqoFpwLERMU/SJOCIZtqX7tTe3A7xE4Ghkk5Kz3eSNDxlm8o0dXw5sAaYmZ7fyPtnC1tyHXB5G9uamZmZmZkBXWNmrikDgKWSqihm5lozC5ggqVLSMOBIAEkjgH4RsXNE1EZELcV9bxMoZtcOl7R7artt6usO4IyGjiUNjogAbuW9ovITwKLmTiYViw3+Bni+De/BzMzMzMwSz8x13WLubOAR4E7gmTa0n0lRMC2gmAVrWGlyIu/NpjWYDkyMiDeAKcAMSfOA69Pr5wGDJS1Mx49Mx78DnCNpPvAligVVmnNGWtBlLvB14OQ2vAczMzMzMytTafHEZyW9IOnMZtp8IS3K+JSka7LHLCaVrNytfWPOVv1GRd3qrLx6DczKr+27Z1a+7ztPdDirqsFZY0efXbPyWv1UVr7m+K9k5Z85c1xWftO6NVn5PQ7r8PaPAETd2qy8Kvtljp/3Z2ftqj9n5Wu2y9zGMjZlxde8+VxWfmufP8r7P88X77mkw9kd/+9Ps8but2ZBVj77/3szPzuiPi9f0Tdz/MzfO7EhL19Rkzl+5vnXr8vL99omK1637vWsfMWgMVl5rX0xK7/h7T9l5Xv3H9bhbO7fewA1Ox6u1lttfZ+9flqn/fv4lhMntfiZSKoEngM+CbwKPEYxQbSopM1wirU6Ph4RKyTtEBFZv9m76sycmZlZWcsp5MzMrMs5GHghIl6KiA0U62J8rlGbyRSr9K8AyC3koGssgNJlSTqL97Y0aHBjRJy/Nc7HzMzMzKy7qOjEe9kkTaG4BavB1IiYWvJ8Z6B0SvZV4JBG3eyd+noQqATOiYjf55xXlyzmJNUCv4mIzbr5mqRpqd+bJPUCfkBRjDVcJ9WuQiy1bbK9pJ9T7IX3+uZ+H2ZmZmZmtvmkwm1qC02augyz8WWgvSj20D6CYluz+yWNioiVHT0vX2bZvPOAnYDREbE/8DGgqq3hdN1sS6YBR3f47MzMzMzMerAyW83yVaB0oYRdgCVNtPl1RGxMe1k/S1HcdVhXLuYqJV2RVoK5Q1K1pMmSHpM0T9J0STVQzLhJukTSQ5JeknR8Oi5Jl6YVZW4DdkjHayiuaf1KRKwDiIi3I+Kc9Pq5kv6p4UQknS/pq5KOkHRPWplmQXrt62nly4WSvtaQiYhZQMNG5GZmZmZm1nU9BgyXtLuk3hRbnd3SqM3NvLdF2vYUl12+lDNoVy7mhlPcQDgSWAmMB2ZExJiI2A94mvdv3D0MGEdxaeOF6dhxwAhgNEXxNjYd3wv4Y0S83czYV5G2E5BUQfHN+t/02sHAWRGxj6QDgVMorpc9FJgs6YCsd21mZmZmZmU1MxcRmyj2or6dog65ISKekvQDSZ9NzW4HlktaBNwDfCsilud8Bl25mFscEXPT48eBWmCUpPslLaDYTHxkSfubI6I+LQ86NB07DLg2IuoiYglwd1MDSTpF0lxJf5K0a0S8TPGNOAD4a+DJkm/Eo2naFIricWZErI6Id4AZFJdrtomkKZLmSJpz1S9ntDVmZmZmZmadLCJ+GxF7R8SeDetsRMT3I+KW9Dgi4usRsU9EjI6I63LH7JILoCTrSx7XAdUU96EdGxHzJE2iuLmwqfalNyg2tT/FC8BukgakyyuvBq6WtJBi5RmAK4FJwI7Az0uypZtKZe3RUXqj5dbeZ87MzMzMrJy08V62bq27fQIDgKWSqihm5lozC5ggqVLSMNI1rBGxhuJSyksl9YV3FzTpXZKdSbGAyRiKKdPm+j9WUo2kfhSXdd7f/rdlZmZmZmb2fl15Zq4pZwOPAK9QLEAyoJX2M4GPp7bPAfeVvHYWcC6wUNLbwFrgF6RVaSJig6R7gJURUddU5xHxRNru4NF06MqIeBJA0rUUM4fbS3oV+NeIuKpd79bMzMzMrIeqrMy6CK5b6JLFXLpnbVTJ84tKXr68ifaTGj3vn34NihsVmxpjI3Bm+vqAtPDJoZRsCh4R9wL3NurnYuDiJvqf2FS/ZmZmZmZmbdHdLrPsFJL2obiv7q6IeH5rn4+ZmZmZmfU8XXJmbmtLK2Lu0amDVvbPyyvzW123uvU2LVj9xoKsfL/t1mXlc1aPWb/yhayx+/R/Kyu/aUPeZ//MmeOy8h++8IGs/OrfNN5ipX02rpiXla+q2TYrD/VZ6ajPy9fscFBWntiUl9/4Tla8ZoeD88aPDXn5zPOnavsOR/f8xJm8oo7n1z89tcNZgH4f+j9Z+ahf33qjFqiyX+b4a/PG7zUoK09d3u+d+k15n19Fdcd/7wDZ51+3Ke/v3cqMPzsAFQNGtt6oBbHqiay8elVn5Xv3G9p6o5Zk/OxWZd65dyVeAMUzc2ZmZltETiFnZmbWFp6ZMzMzMzOzLsczc110Zk5SbdrzbXP3O03S8elxL0k/lPR82jB8rqSzNtM4u0q6R9LTkp6S9E+bo18zMzMzM+s5PDPXvPMoNgQfHRHrJA0AvtHWsKTK5rYsADYB30hbFwwAHpd0Z7oXz8zMzMzMWuGZuS46M5dUSroizWzdIala0mRJj0maJ2m6pBp4d8btEkkPSXqpZPZNki6VtEjSbcAO6XgNMBn4SkSsA4iItyPinPT6uaWzaZLOl/RVSUekGbdrKPauQ9LXJS1MX19LfS2NiCca+gWeBnbulE/NzMzMzMy6ha5czA0HLouIkcBKYDwwIyLGRMR+FAXSqSXthwHjgGOAC9Ox44ARwGiK4m1sOr4X8MdUaDXlKuBkeHe/uQnA/6bXDgbOioh9JB0InAIcQrEn3WRJB5R2JKkWOIBis3MavTZF0hxJc676xQ2tfiBmZmZmZj1FZUVFp32Vq658meXiiJibHj8O1AKjJJ0HDAL6A7eXtL85IuqBRZIa1os9DLg2XQ65RNLdTQ0k6RTgn4DtgLER8bKk5akwGwo8GRHLJQE8GhGLU3QcMDMiVqd+ZgAfA55Mz/sD04GvRcQH1q+PiKnAVIC1bz6Ts7q+mZmZmZl1M125mCvdwKUOqAamAcdGxDxJk4AjmmmvksdNFUkvALtJGpAur7wauDotulKZ2lwJTKK4r+7nJdnSTcFKx3kfSVUUhdz/RsSM5tqZmZmZmdkHlfOMWWfpbp/AAGBpKpROakP7WcAESZWShgFHAkTEGopLKS+V1BeKBU2A3iXZmcDRwBjePwPYuP9jJdVI6kdxWef9KqbwrgKejoiL2/smzczMzMzMuvLMXFPOprj37BWKBUgGtNJ+JvDx1PY54L6S184CzgUWSnobWAv8AlgCEBEbJN0DrGxu1cq0WuU04NF06MqIeFLSOOBLwAJJDZeKfi8iftueN2tmZmZm1lN5Zq6LFnMR8TIwquT5RSUvX95E+0mNnvdPvwZwRjNjbATOTF8fkBY+ORQ4oSRzL3Bvo34uBi5udOwBWrgE08zMzMzMrDVdspjb2iTtA/yGYnGT5ztl0LoPrI/SqVRZnZXvt8N+eScQm7Li61a+0uFs9XYfyRob9W69TQs2rvpzVn7TujVZ+dW/uSUr3++Yz2bl10y/LCsf9Ruz8qrM+zFZ0Svvz876qp3yxl92b1a+qn/e+GurhrbeqAW9lt3XeqMW5J7/6tce63B2e+CJbcZ1OL/XO8s6nIXN8Xs/7/duLlX0ycrHhtfyxu8zLCtfUdE3K1+/Nu9nv2p2y8pXZp7/xndeyspX9dkmK7/slYey8gN3HNV6oxZUDTksK6/1Gd//uneyxu5KPDPnYq5D0ubee2zt8zAzs/KVU8iZmZm1hYs5MzMzMzPrcjwz1/1WszQzMzMzM+sRumQxJ6k27fm2ufudJun49LiXpB9Kel7S3PR11mYap6+kRyXNk/SUpH/bHP2amZmZmVnP4cssm3cexYbgoyNinaQBwDfaGpZU2dyWBRQbmH88It5Je+I9IOl3ETE7/7TNzMzMzLq/ysouOS+1WXXlYq5S0hXAWODPwOeALwJTKDb3fgH4UkSsSXu9vQUcRFGgfTsibkqbd/+UYq+5xaTtAiTVAJOB2ohYBxARbwPnpNfPBZZFxE/S8/OB14D5wL8CS4H9gX0kfR34cjrnKyPiP9OWCA1LDVWlr9jcH5CZmZmZmXVfXbmcHQ5cFhEjgZXAeGBGRIyJiP2Ap4FTS9oPA8YBxwAXpmPHASOA0RTF29h0fC/gj6mAa8pVwMnw7n5zE4D/Ta8dDJwVEftIOhA4BTiEYk+6yZIOSLnKtGH468CdEfFI40EkTZE0R9Kcq345sx0fjZmZmZlZ91ZZUdFpX+WqK8/MLY6Iuenx40AtMErSecAgoD9we0n7myOiHlgkqWHjo8OAa9PlkEsk3d3UQJJOAf4J2A4YGxEvS1qeCrOhwJMRsbyY6OPRiFicouMo9qJbnfqZAXwsta8D9pc0CJgpaVREvO8+wIiYCkwFWPvGo565MzMzMzOzd3XlYm59yeM6oBqYBhwbEfMkTQKOaKa9Sh43VSS9AOwmaUBEvB0RVwNXp0VXKlObK4FJFJdt/rwku7qZcZoUESsl3QscDWz2RV3MzMzMzLqjcp4x6yzd7RMYACxNi4qc1Ib2s4AJ6ZLHYcCRABGxhuJSyksl9YXiskiKe/EazKQowMbw/hnAxv0fK6lGUj+KyzrvlzQkzcghqRo4CnimfW/VzMzMzMx6sq48M9eUs4FHgFeABRTFXUtmUix+sgB4Driv5LWzgHOBhZLeBtYCvwCWAETEBkn3ACubW7UyIp5Ii688mg5dGRFPStoX+EUqECuAGyLiN+19s2ZmZmZmPZVn5rpoMRcRLwOjSp5fVPLy5U20n9Toef/0awBnNDPGRuDM9PUBaeGTQ4ETSjL3Avc26udi4OJGx+YDBzTVr5mZmZmZWVuoqGesPSTtA/yGYnGTNu89l+Pev/wx6xvVtzKvbt9r2V1Z+WvO+ces/CkX3ZiVX7b4/g5nf/3Tn2SNferFN2Xlc84dYMePfDYrv3H161n5qppts/I14/N+76y+7bdZ+VfrqrLyu/TK+xmr9X/OykefYVn5+T+fkJXf76T/yMpv9fOfeEFWHmX87K3o3XqbFqx85b7WG7Vg/ZplWfkfvLNvVv6yQ0Zn5ddX7ZSV7/2+W+07YNPKrPi6Xjtk5fuqPivPxjez4qrP+/zWLpuXla8ekvd/5htWPp2Vf+EPV2blh+73sQ5nt9sr7+99gOptP9zqug/l4AdP3t9phcz3D/hYWX4mXXJmbmuLiEXAHlv7PMzMrIzlFHJmZmZt4L9pzMzMzMysy6lUWU6WdaqyumtQUm1a/n9z9ztN0vHp8b2S/ii9992XdLOkdzb3uK2c0+8lrZTkhU/MzMzMzKzdeurM3Ergo8ADaYuAvJsyOubHQA1w2lYY28zMzMysS6tUWc1LbRXl+AlUSrpC0lOS7pBULWmypMckzZM0XVINvDvjdomkhyS9VDL7JkmXSlok6Tag8V3E1wENd8V/HpjR8IKk/pLukvSEpAWSPlfy2tmSnpF0p6RrJX0zHb9X0r9LelTSc5I+lo5XSvpxOvf5kt4t3CLiLuDtzf/xmZmZmZlZT1COxdxw4LKIGEkxgzYemBERYyJiP+Bp4NSS9sOAccAxwIXp2HHACGA0MBkY22iMu4DD0j5vE4DrS15bBxwXEX9FsYn4/0vF4UHpXA6gKAAPatRnr4g4GPga8K/p2KnAqogYQ7G5+GRJu7f3AzEzMzMzs/erlDrtq1yVYzG3OCLmpsePA7XAKEn3S1oAnASMLGl/c0TUpxUmh6ZjhwHXRkRdRCwB7m40Rh3wAHAiUJ32rWsg4IeS5gN/AHZO/Y4Dfh0RayPibeDWRn02zO41nDPAXwN/J2kuxWbm21EUq20iaYqkOZLm3Pqra9oaMzMzMzOzHqAc75kr3ZikDqgGpsH/z96dx0lZ3fke/3xpQJYGVBQCajQGjAYj7okbCcQwjhr3cZkkajSaeCcm3NyYyYyTRRMvOhrvqMn1hqsEg46aoDCoMeBwEXXcwAUENSqokeBGVJRFlu7f/eM5HStlV/VyoLsavm9f9eqqp87vnFNP0+Cvz/OcH8dFxHxJZwKfq9C+NG1uqe7ELcBU4Mdlx78EbA/sFxHrJb0E9Crru9q8G/jgvAo4PyJmtBDbrIiYAEyA/DpzZmZmZma2eanFlbnm9ANeldSDItlqyX3AqemetSEUl0uWux8YD9xcdnwA8EZK5EYDO6fjDwBflNRLUj1wVCvmMQM4L80bSbtJ6tuKODMzMzMzq8KXWdbmylxzfkBxmeLLwFMUyV01U4Exqe1zwJzyBhERwBXNxN4E3CFpHvAk8GxqP1fSdGB+msc8YEUL87iO4pLLx1MphDeB4wAk3Q/sDtRLWgqc3d4VPDMzMzMz2/LUVDKX7l3bs+R1abJ1bTPtzyx7XZ++BvDNCmN8rsLxptjlwEEVpnhFRPw47aZ5H/Cz8j5T/C7peSPwz+lRPt5hFcYwMzMzM7MWdHNpgtpK5rqACZI+SXEP3Q0R8XhnT8jMzMzMzLZMKhaxrNYtf2Zy1jdq/Zp3ssYfMHSvrHhtlVeX/Y4ffiEr/ujLnm53rNb+KWvs2/6puVs2W++EK5/LiufdeVnh6tYjKz4a12fF02e3rPC+Rx2ZFf/qNV/LG3/gsKz47n12yIpf/vydWfHrdz83K35Iw7Ks+E6f/7pns+Lp1qv9seqZNfTNf27Iiu9dl/f73iOi/X/vArz3Zt7ffUX1ofbrs81Hs+J7bNU/K/7tP+X9vrjvtnmVkLr3zLvFv+fAfbLic//tpcd2WeGv1ZWXKG6bQT0yfvaBhROPaXds3amTs8YG2H+7IbV7k1iJaxbN7bBE5vwRB9TkOfHapJmZ2aaQk8iZmZm1gi+zNDMzMzOzLqeum9elauoMSNpF0sJN0O8kSSel5/dK+mPaXbLp/WmSVm7scavMZ29JD0laJGmBpFM6amwzMzMzM9s8bKkrc+8AhwAPSNoayLuhq+1WA6dHxPOShgKPSZoREXk3tpmZmZmZbSFquf5bR6mplbmkTtL/TatWMyX1lnSOpLmS5ku6LZUGaFpxu1rSg5KWlKy+SdLPJT0t6S6g/C7WW4BT0/MTgNub3pBUL2mWpMclPSXp2JL3fiDpWUn3SLpZ0nfT8XslXSbpUUnPSTosHa+TdHma+wJJXweIiOci4vn0fBnwBrD9JjiXZmZmZma2marFZG448IuIGEGxgnYicHtEHBARI4FngLNL2g8BDgWOBi5Nx44HPgF8CjgHOLhsjFnAKBVbXZ0K3Fry3vvA8RGxLzAa+FlKDvdPc9mHIgHcv6zP7hFxIDAO+FE6djawIiIOAA4AzpH0V9tLSToQ6AksLj8Rks6VNE/SvF//ZnbzZ8vMzMzMbAvUTeqwR62qxcssX4yIJ9PzxygKcO8p6afA1kA9MKOk/bRUnPtpSYPTsVHAzRHRACyT9P/KxmgAHgBOAXpHxEult9AB/1PSKKAR2AEYTJEw/kdErAGQdEdZn02re01zBhgL7NW0YggMoEhWX0x9DAEmA2ekz/BXImICMAHySxOYmZmZmdnmpRaTubUlzxuA3sAk4LiImC/pTOBzFdqXps0tJT+3AFOBH5cd/xLFJY/7RcR6SS9RFAlvKSVvmpKkcQgAACAASURBVEcDH5xXAedHxIzyxpL6A3cB/xIRD7fQt5mZmZmZlahTLV5k2LG6yhnoB7wqqQdFstWS+4BT0z1rQygulyx3PzAeuLns+ADgjZTIjQZ2TscfAL4oqZekeuCoVsxjBnBemjeSdpPUV1JPikTy1xHx21b0Y2ZmZmZm9ldqcWWuOT8AHgFeBp6iSO6qmQqMSW2fA+aUN4iIAK5oJvYm4A5J84AngWdT+7mSpgPz0zzmAStamMd1FJdcPp5KIbwJHEdxT98oYGBaaQQ4s+TyUjMzMzMzq8K7WdZYMhcRLwF7lrwuTbaubab9mWWv69PXAL5ZYYzPVTjeFLscOKjCFK+IiB+n3TTvA35W3meK3yU9bwT+OT1K3ZgeZmZmZmZm7aIi77HWkPTvwCcp7qG7ISLGd9TYq1e8nPeN6tYrbwKrns0KX7Zgelb80M98Nyv+unM+0e7YI88+J2vsoQd9Lyv+uq8Nz4o/5+fl+/+01Yf25ulQr3TfNSu+/8u3ttyoiiHnX5cVv/o/yq/kbpvosU1WfO7V9GtfvzcrfqvBo7LiO3v+vQZ8rOVGVWX8/Khn1siP/O/Ts+I/fd7ErPg3en48K37Quuez4qNX5vcu1mWFa82LecP33SMrnsa8+bP6uaxw1fXNil+/5o2s+B69y6tStc26PrtnxS9/+OKs+IGf/mG7Y7dauyRrbIDeA/fqEkteNzy/oMMSmTOG1+Y5qamVuVoXEX/f2XMwM7OuonN/EWJmtrnzBihdZwMUMzMzMzMzK+GVOTMzMzMz63K8AUqNrcxJ2kXSwk3Q76Smwt2S7pX0R5VWCZemSVq5scetMp+dJT0m6UlJiyR9o6PGNjMzMzOzzcOWujL3DnAI8ICkrYEhHTz+q8DBEbE21axbKGl6RCzr4HmYmZmZmXVJ3bwyV1src0mdpP+bVqxmSuot6RxJcyXNl3RbKg3QtOJ2taQHJS0pWX2TpJ9LelrSXUD5lka3AKem5ycAtze9Iale0ixJj0t6StKxJe/9QNKzku6RdLOk76bj90q6TNKjkp6TdFg6Xifp8jT3BZK+DhAR6yJibep2K2rz+2BmZmZmZjWsFpOI4cAvImIExQraicDtEXFARIwEngHOLmk/BDgUOBq4NB07HvgE8CngHODgsjFmAaMk1VEkdaV7l78PHB8R+wKjgZ+l5HD/NJd9KBLA/cv67B4RBwLjgB+lY2cDKyLiAOAA4BxJHwOQtJOkBcArwGXNrcpJOlfSPEnzJk769+pnzczMzMxsC1LXrVuHPWpVLV5m+WJEPJmeP0ZRgHtPST8FtgbqgRkl7ael4txPSxqcjo0Cbo6IBmCZpPJCWw3AA8ApQO+IeKn0Fjrgf0oaRbGv9A7AYIqE8T8iYg2ApDvK+mxa3WuaM8BYYK+mFUNgAEWy+mJEvJLeGwpMkzQlIl4v7TAiJgATYCPUmTMzMzMzs81KLSZza0ueNwC9gUnAcRExX9KZwOcqtC+9cLal5OcWYCrw47LjXwK2B/aLiPWSXqIoEt7SRblN82jgg/Mq4PyImNF8CETEMkmLgMOAKS2MYWZmZmZmeDdLqM3LLJvTD3hVUg+KZKsl9wGnpnvWhlBcLlnufmA8cHPZ8QHAGymRGw3snI4/AHxRUq+0aclRrZjHDOC8NG8k7Sapr6QdJfVOx7ah2IzlD63oz8zMzMzMDKjNlbnm/AB4BHgZeIoiuatmKjAmtX0OmFPeICICuKKZ2JuAOyTNA54Enk3t50qaDsxP85gHrGhhHtdRXHL5eCqF8CZwHLAHxb14QbF6d0VEPNVCX2ZmZmZmltSpq6xLbTo1lcxFxEvAniWvS5Ota5tpf2bZ6/r0NYBvVhjjcxWON8UuBw6qMMUrIuLHaTfN+4CflfeZ4ndJzxuBf06PUvcAe1UYw8zMzMzMrEUq8h5rDUn/DnyS4h66GyJifEeN/dZzt2Z9o9atXp41/sjfLsmKn/fF7bPiB3xkz5YbVVHXs2+7Y9/50+NZY/cbvEdWfI+t+mfFF/sAZcQ3NmbFd+veO2/83h/Pim94J+/7173vzi03qqLPsadlxa++/ZdZ8dHnE1nx7y35TVZ8/yEHZMVH749lxa96eWpWfP12u2fFk/Nb49iQNfS7ry/Kio+GdVnx/Xc5Iiv+248uyIq/6jOfyYpXw6qs+PUrns2K7z7w01nx2tDSxUPV5c6/R9/yqlBtFHn/9mT97G0E0bAmr4N+e7c7dNn6vL87AIZtPbBL3Ix21ysvdFgic9ROw2rynNTUylyti4i/7+w5mJlZF+HLf8zMbBNzMmdmZmZmZl1ON//SrH27WUqaVFI7rd0kjUv3nyHpEUlPSvqjpDfT8ycl7ZI7zqYi6QRJmdfgmJmZmZmZtV1nr8yNA24EVkfEpwFSHbn9I6LZDUw6mqTuERVvXDiBorB4qy8sb6E/MzMzMzOzVmnVypyk0yUtkDRf0uR0eJSkByUtKV2lk3SBpLmp/UXpWF9Jd6X4hZJOkfQtYCgwW9LsFsb/W0kPSXpc0q2S+qbjSyVdIunhNOa+kmZKWizpnNTmcEmzJU2T9LSkX6QyAS31+wNJ/wUcL+kbqf/5kn4rqbekw4Ajgf/VtIIo6QFJe6c+PiLphfT8a5JukXQncHc69n1Jj6bz9MNWfbfMzMzMzAwoioZ31KNWtZjMSRoBXAiMiYiRwLfTW0OAQ4GjgUtT27HAcOBAYG9gP0mjgCOAZRExMiL2BH4fEVcDy4DREdFcUe+m8QcB3wc+HxH7AgtK5gDwUkR8BngYuB44HjgY+ElJm09TrAJ+iqLG27Gt6HdVRBwSEb8FfhsRB6TPvxg4MyLuB34H/PeI2DuVVajmIOArEfEFSUcCH03z2hs4WNLBLcSbmZmZmZn9RWsusxwDTEn104iIt9LC1rRUR+1pSYNT27Hp8UR6XU+R3N0PXCHpMuDOlAi11sEU5QAeTOP2BB4oeX96+voU0D0iVgGrJDVKqk/vPdyUbEm6hSIJpYV+by15vpeki4GtKQqW39mG+TeZGRFvp+djgb/lr8/TbsCDpQGSzgXOBbjy4q9xximHt2NYMzMzM7PNTy2vmHWU1iRzApqr4bC2rE3T1/ER8aHCSJL2o7gscbykmRFxcSvnKIqVvK9UeL9pHo1lc2rkg89XPv9oRb+lBWZ+DfxtRCyU9DWgUvGaDXyw2tmrSn8CfhoR11fop5hkxARgAuTXmTMzMzMzs81La+6ZmwWcLGkggKRtq7SdAZzVtCImaQdJgyQNpdjk5EbgCmDf1P49ipWuah4EPitp19RnX0nDWzHvUp+R9FFJdcDJFCtwbem3L/CapB5Aaa258vm/BOyXnlfb7XMGcHbJPXo7StqujZ/JzMzMzGyLVdetW4c9alWLK3MRsUjSJcAcSQ18cGlgc21nStoDeChdurgS+DIwDLhcUiOwHjgvhUwA7pb0aqX75iLidUlnA7dK6pkO/zPwfKs+YeFB4GfACOBeYHpERBv6/SHwKPBHYCEfrLrdDPxS0v8AjgMuT/19Fai4qUtE/C6VNHg4naf3KJLE5W34TGZmZmZmtgVrVWmCiLgBuKHK+/Ulz68CriprsphiNao87hrgmrJjk4BJZcfuAe5pJn7HkufXNfdeSpZWRcTfNRPfYr/p9c+BnzfT7j6KDVVK7Vny/MLm5paOXQlcWX7czMzMzMxa1s33zLWvaLiZmZmZmZl1LkV4X42uYPVrc7K+UcXtghm69Wy5TdUJZMZnjr/ytUfbHVs/aO+ssTtz7gDd6vLG7zNo/6z4tT2GZsVv9f4LWfGoVRcgVBQ9t88b/v2Xs+L7nPD1rPhVd07Lis/92e174olZ8aum3Npyo2qU9ztLrXs9Kz56f7z9Y695MWvsd/7Ylo2jP2zrnT+bFf/eq/Oy4nv1/0hWfK4e9btkxa9b0Za7QT4s99/tHv12yYp//+1nsuK32m7flhtV0fBe5t/9mbr3GZLZQ+Z6SWxof2xdn7yxgd7b7NYllrz+640/dVgic8igHWrynHhlzszMbBPISeTMzMxaI+9X1mZmZmZmZp3Adea8MmdmZmZmZtYl1VwyJ2mSpGo12lrbzzhJfcqO7SMpJP1NRr8TJb0haWEz750v6Q+SFkn61yp9DJQ0W9JKSR/aJdPMzMzMzKrrhjrsUatqLpnbiMYB5XeAnkZRMPy0jH4nAUeUH5Q0GjgW2CsiRlAUR6/kfeAHwHcz5mFmZmZmZluwTk/mJJ0uaYGk+ZImp8OjJD0oaUnpKp2kCyTNTe0vSsf6SrorxS+UdIqkbwFDgdmSZqd2Ak4CzgTGSupVbQ6SBkuamo7Nl3Qw/KW23FvNfJTzgEsjYm1q90alzxwRqyLiAYqkrtq5OVfSPEnzJk6+o+p5NDMzMzPbknRTxz1aQ9IR6Sq9FyR9v5n3vyHpKUlPSnpA0idzz0GnboAiaQRFYe1DImK5pG0pCmkPAQ4FdgemA1MkjQWGAwcCAqZLGgVsDyyLiKNSnwMiYoWk7wCjI2J5Gu4Q4MWIWCzpXuBI4PYKcwC4GpgTEcer2B/4L4XRK9gNOEzSJRRJ2ncjYm7O+YmICcAEyC9NYGZmZmZmm0bKF34BfAFYCsyVND0ini5p9u8R8X9S+2Mo8p4PXfHXFp29MjcGmNKUcEVE04rXtIhoTB9+cDo2Nj2eAB6nSPSGA08Bh0u6TNJhEbGiwlinAbek57fwwaWWleYwBrg2HWuo0m+T7sA2wGeAC4DfpNVAMzMzMzPbvB0IvBARSyJiHUW+cWxpg4h4t+RlXyB7saazSxOI5j/E2rI2TV/HR8QvP9SJtB/FStt4STMj4uKy9+uAE4FjJF2Y+hooqV+VObTVUuD2KKqwPyqpEdgOeHMj9G1mZmZmZiXUgRuTSDoXOLfk0IR0FV2THYBXSl4vBT7dTD//AHwH6EmxeJSls1fmZgEnSxoIUHKJY3NmAGdJqk9td5A0SNJQYHVE3Eix6ci+qf17QL/0/HBgfkTsFBG7RMTOwG3AcVXmMIviPjgk1Unq38JnmUb6hkjajeIbtLxqhJmZmZmZ1byImBAR+5c8JpQ1aS6z/NCCUUT8IiI+Dvwj8C+58+rUlbmIWJTuMZsjqYHiEspKbWdK2gN4KF29uBL4MjAMuDythK0nJWAU95rdLelV4GVgalmXtwHnRcTkZuZwJvBtYIKks4GG1O9Dkm4GPgdsJ2kp8KOIuB6YCExMJQvWAWekVbpmSXoJ6A/0lHQcMLbsmlozMzMzM6ugW23d0bQU2Knk9Y7AsirtbyHd0pVDVfINqyGrVq/u1G9UtzVLsuLvuvjorPgDLq6Y57fKgOWz2x37n1d/J2vsT2fOvV/G3AG2GrBrVjzdemaFr383789O94EHZMX/edGvsuIHjjg7Kz73/LHhnazwvkcflxW/cNy+LTeq4mOH/zgrvu/xJ2bFPzNu/6z4j4ypWDK0VbZavaDdse+/+6essZ+feV1W/JJFz2TFHzP+kax4GldnhS9cX16dqG327JX3+26tWZwVf//6wS03quLQAS1dUFSdVv8hK75hfd73r67XoKz4916dlxXfra5HVvz7772aFd/nk+e13KiC3uvzxgbovc1uNZUlVfLEn1/vsP8/3mfg4KrnRFJ34Dng88CfgLnA30fEopI2wyPi+fT8ixSLQln/UHX2PXNmZmabpZxEzszMWtbZ94uViogNkr5JcWtYHTAxXYV4MTAvIqYD35R0OMXVhG8DZ+SO62RuE5L0N8BlZYdfjIjjO2M+ZmZmZma2aUTE74DflR37Ycnzb2/sMZ3MbUIRMYMiOzczMzMzs42oxu6Z6xS1tDoJgKRJkk7aCP2Mk9Sn7Ng+kiKtmLW334mS3kgbnZS/d36q+r5IUsUbLSR9QdJjqQL8Y5KytyU1MzMzM7MtS80lcxvROKD87ufTgAf4oGB4e0yimUrtkkZTFAbcKyJGUJRJqGQ58MWI+BTFtbKTM+ZjZmZmZrbF6daBj1rV6XOTdLqkBZLmS2pKakZJelDSktJVOkkXSJqb2l+UjvWVdFeKXyjpFEnfAoYCsyXNTu0EnERRdmCspF7V5iBpsKSp6dh8SQcDRMR9wFvNfJTzgEsjYm1q90alzxwRT0RE01ali4BekrZq+9kzMzMzM7MtVacmc5JGABcCYyJiJEVtN4AhwKHA0cClqe1YYDhwILA3sJ+kURSrZMsiYmRE7An8PiKupqjrMDoiRqc+D6HYfGQxcC9wZAtzuBqYk47tS5F0VbMbcJikRyTNkdTa/dRPBJ5oSgLLzs+5kuZJmjdx4sRWdmdmZmZmtvlTB/5Xqzp7A5QxwJSIWA4QEW+lguDTIqIReFpSU6GVsenRVLSrniK5ux+4QtJlwJ0RcX+FsU6jKM5H+voV4Pbm5lAyt9PTsQZgRQufpTuwDfAZ4ADgN5J2baFw+AiK3S7HNvd+qiw/ATq/zpyZmZmZmdWWzk7mBDSXpKwta9P0dXxE/PJDnUj7Uay0jZc0MyIuLnu/jmIF7BhJF6a+BkrqV2UObbUUuD0lb49KagS2A95srrGkHYGpwOlptdDMzMzMzFrJu1l2/j1zs4CTJQ0EkLRtlbYzgLMk1ae2O0gaJGkosDoibqTYdGTf1P49oF96fjgwPyJ2iohdImJn4DbguCpzmEVxHxyS6iT1b+GzTKNYzUPSbkBPio1OPkTS1sBdwD9FxH+10K+ZmZmZmdmHdOrKXKqKfgkwR1IDH1xC2VzbmZL2AB5Kl2KuBL4MDAMuTyth60kJGMXliXdLehV4mWIVrNRtwHkRMbmZOZxJce/cBElnAw2p34ck3Qx8DthO0lLgRxFxPTARmJhKFqwDzqhyieU307x/IOkH6djYapummJmZmZnZBzp7VaoWdPZllkTEDcANVd6vL3l+FXBVWZPFNFOYOyKuAa6p0u90YHqlOUTE6xSlBsrjmi1rEBHrKJLLFkXET4GftqatmZmZmZlZczo9mbPWufWbH8uK33ab+pYbVTH2Rw9kxb/xjduy4nu9dGtWfM9hX2p3bO7ce+bOffhXsuJZ9Uxe/PqVWeE96odmxc+feGpW/KAz8r5/a1+flRW/bs07WfH9dj46K37huH1bblTFnv/2eFb8qrG9Wm5UxfyvDcuK3+PKuVnxbwyb0u7Y9UD9dru3O77Xtp9qdyzAa0f/PCu++5ENWfFnfHbnrPh/vep7WfGx4OGs+Jd33DUrfptdRmbFb3XXdVnxL+6e97O/9Uc/mRW/7S6fzYqP9W9nxdfvmDf+a2yTFb9i0Pqs+KGLb2p3bI9hmf/fYF2Kk7lNSNLfUOxWWerFiDi+M+ZjZmYdJyeRMzOzlnkDFCdzm1REzKCZS0DNzMzMzMxyOZkzMzMzM7Mup1sNF/PuKDW3CYykSZJO2gj9jJPUp+zYPpIiXf7Y3n4nSnoj7VpZ/t75kv4gaZGkf63Sx4GSnkyP+ZJ82aWZmZmZmbVJzSVzG9E4oE/ZsdOAB9LX9poEHFF+UNJoit0v94qIERQ17ypZCOwfEXunvn4pyaukZmZmZmatJHXco1Z1ejIn6XRJC9IK1eR0eJSkByUtKV2lk3SBpLmp/UXpWF9Jd6X4hZJOkfQtYCgwW9Ls1E7ASRQ15MZK6lVtDpIGS5qajs2XdDBARNwHvNXMRzkPuDQi1qZ2FWvGRcTqiNiQXvYCKtWjMzMzMzMza1anrgZJGgFcCBwSEcslbQtcCQwBDgV2p6gFN0XSWGA4cCAgYLqkUcD2wLKIOCr1OSAiVkj6DjA6Ipan4Q6h2ElysaR7gSOB2yvMAeBqYE5EHC+pDmhpb//dgMNSAfL3ge9GRMU9sSV9mqLQ+M7AV0qSu9I25wLnApx+cD8++4neLUzBzMzMzGzL4HvmOn9lbgwwpSnhioimFa9pEdEYEU8Dg9OxsenxBPA4RaI3HHgKOFzSZZIOi4gVFcY6DbglPb+FDy61rDSHMcC16VhDlX6bdAe2AT4DXAD8Jq0GNisiHkmXYx4A/FPpSmFJmwkRsX9E7O9EzszMzMzMSnX2fVqi+UsM15a1afo6PiJ++aFOpP0oVtrGS5oZEReXvV8HnAgcI+nC1NdASf2qzKGtlgK3R0QAj0pqBLYD3qwWFBHPSFoF7AnM2wjzMDMzMzPb7HX2qlQt6OxzMAs4WdJAgJJLHJszAzhLUn1qu4OkQZKGAqsj4kaKTUf2Te3fA/ql54cD8yNip4jYJSJ2Bm4Djqsyh1kU98EhqU5S/xY+yzSK1Twk7Qb0BJY311DSx5o2PJG0M/AJ4KUW+jczMzMzM/uLTl2Zi4hF6R6zOZIaKC6hrNR2pqQ9gIfS1YsrgS8Dw4DL00rYelICBkwA7pb0KvAyMLWsy9uA8yJicjNzOBP4NjBB0tlAQ+r3IUk3A58DtpO0FPhRRFxPcf/bxFSyYB1wRlqla86hwPclrQcagf9Wcm+fmZmZmZm1oFstbzPZQVQ537Basvq1OVnfqOJK0wx1Le3/sollVm5Y+XreFaz1g/Zqf7B6Zo2dO/dudXnj9xl0YFb8mh6DW25URe/3F2fF5/7ZiZ7b5w2/9tWs+D6n/bes+FVTbs2Kp9uHbudtk75Hjs2KX3XXnVnxuRegaE3en7+1ffdud+xWqz9UzrRN3llacQ+uVtl6589mxb/3at7fXb0H7JAVH9GQFd+j37Cs+Pf/PD8rvq573r3yPfrnzX/N8rz5995+v6z4xjWv5MU3rMuK795nSFZ8/sVvjZnDl1fnapve2wzrElnSn959p8MSmR36b12T56Sz75kzq3lZiZyZbbFyEjkzs3bLTOS6Eu9m6WRuk5L0N8BlZYdfjIjjO2M+ZmZmZma2+XAytwlFxAyKjVvMzMzMzGwj8i1znb+bpZmZmZmZmbVDl0nmJE2SdNJG6GecpD5lx/aRFOmyyPb2u7WkKZKelfSMpIOqtP07SYskNUrav71jmpmZmZnZlqvLJHMb0Tig/M7Q04AH0tf2ugr4fUTsDowEnqnSdiFwAnBfxnhmZmZmZlusbqjDHrWqZpM5SadLWiBpvqTJ6fAoSQ9KWlK6SifpAklzU/uL0rG+ku5K8QslnSLpW8BQYLak2amdgJMoasuNldSr2hwkDZY0NR2bL+ngVFB8FHA9QESsi4h3Kn22iHgmIv7QinNwrqR5kuZNnHxHm86fmZmZmZlt3mpyAxRJI4ALgUMiYrmkbYErgSEUBbd3B6YDUySNBYYDBwICpksaBWwPLIuIo1KfAyJihaTvAKNLinQfQrHD5GJJ9wJHArdXmAPA1cCciDheRfG2emBX4E3gV5JGAo8B346IVTnnISImUBQ/z64zZ2ZmZma2OXHR8NpdmRsDTGlKuCLirXR8WkQ0RsTTQFMl4rHp8QTwOEWiNxx4Cjhc0mWSDouIFRXGOg24JT2/hQ8utaw0hzHAtelYQ+q3O7AvcG1E7AOsAr6fcwLMzMzMzMyqqcmVOYoVtuZWotaWtWn6Oj4ifvmhTqT9KFbaxkuaGREXl71fB5wIHCPpwtTXQEn9qsyhOUuBpRHxSHo9BSdzZmZmZmabTK2uSnWkWj0Hs4CTJQ0EKLnEsTkzgLMk1ae2O0gaJGkosDoibgSuoFg5A3gP6JeeHw7Mj4idImKXiNgZuA04rsocZgHnpWN1kvpHxGvAK5I+kdp8Hng68xyYmZmZmZlVVJMrcxGxSNIlwBxJDRSXUFZqO1PSHsBDxV4mrAS+DAwDLpfUCKwnJWAU96DdLelV4GVgalmXtwHnRcTkZuZwJvBtYIKks4GG1O9DwPnATZJ6AkuAr1aas6TjgWso7uu7S9KTEdHusghmZmZmZluaWt5lsqMowvtqdAXvrVqV9Y3KvUG025olWfF3/PiorPj9f1Ixn2+Vbf98b7tjZ/7bf88auzPnDrDVgF2z4unWMyt8/bt5f3a6DzwgK/7Pi36VFT9wxNlZ8bnnjw3vZoX3Pf7ErPj5XxuWFT/s6Muz4vsedXRW/FPfGpkVv+uRV2XFa9WidseuX/1Wy42qePZ312TFv7Cw/XMHOO7SuVnxNK7OCn96Q3kVorb55FZ5v+/WmsVZ8Q9u+EhW/EH9B2TFa3WLm25XtWFtpa0KWqd7nyFZ8avemJ8Vn2vNij9lxffb85vtjt1q/bKssQF6b7Nbl8iS3lm5ssMSma3r62vynNTkypyZmVlXl5PImZlZy7yZpZO5TUrSLyhKH5S6KiLylgrMzMzMzGyL52RuE4qIf+jsOZiZmZmZbY58z1zt7mb5IZImSTppI/QzTlKfsmP7SApJ7d6ERNLWkqZIelbSM5IOqtL28tRugaSpkrZu77hmZmZmZrZl6jLJ3EY0Dii/K/o04AE+KBjeHlcBv4+I3YGRwDNV2t4D7BkRewHPAf+UMa6ZmZmZ2Ranm9Rhj1pVs8mcpNPTytV8SZPT4VGSHpS0pHSVTtIFkuam9helY30l3ZXiF0o6RdK3gKHAbEmzUzsBJ1GUHRgrqVe1OUganFbT5qfHwZL6A6OA6wEiYl1EvFPps0XEzIjYkF4+DOy4UU6amZmZmZltMWoymZM0ArgQGBMRIylquwEMAQ4FjgYuTW3HAsOBA4G9gf0kjQKOAJZFxMiI2JNi1exqYBkwOiJGpz4PAV6MiMXAvcCRLczhamBOOrYvsAjYFXgT+JWkJyRdJ6lvKz/uWcDdFc7DuZLmSZr3q4kTW9mdmZmZmdnmT0SHPWpVTSZzwBhgSkQsB4iIpmI70yKiMSKeBganY2PT4wngcWB3iuTuKeBwSZdJOiwiKhU8OQ24JT2/hQ8utaw0hzHAtelYQ+q3O0Vid21E7AOsAr7f0oeUdCGwAbipufcjYkJE7B8R+3/1rLNa6s7MzMzMzLYgtbqbpaDZFHhtWZumr+Mj4pcf6kTaj2KlbbykmRFxcdn7dcCJwDEpsRIwUFK/KnNozlJgaUQ8AnlN1AAAIABJREFUkl5PoYVkTtIZFCuMnw9XbjczMzMzszaq1ZW5WcDJkgYCSNq2StsZwFmS6lPbHSQNkjQUWB0RNwJXUKycAbwH9EvPDwfmR8ROEbFLROwM3AYcV2UOs4Dz0rE6Sf0j4jXgFUmfSG0+DzxdacKSjgD+ETgmIla38pyYmZmZmVmTaOy4R42qyZW5iFgk6RJgjqQGiksoK7WdKWkP4KFiLxNWAl8GhgGXS2oE1pMSMGACcLekV4GXgallXd4GnBcRk5uZw5kU985NkHQ20JD6fQg4H7hJUk9gCfDVKh/x58BWwD1pzg9HxDdaPjNmZmZmZmaFmkzmACLiBuCGKu/Xlzy/iqI0QKnFFKt25XHXANdU6Xc6ML3SHCLideDYZuKeBPav1G9Z22GtaWdmZmZmZpXU7opZR5Fv1+oaJp41OOsbtfWA1m6u2bwjLn4oK37S0qVZ8SesfTgrvv/w09sdO+mPz2WNnT333c7MiteqaiUPW6Hx/bz4uvKyjm0z/6b/kRU/6IzbsuK3WT4rK37DulVZ8X13/EJW/B/vvSQrfo8r52bFr5o+PSt+yYy8Mpyfunp+Vvw7v/5xVnzPvtu3P7iuvuU2VdyzqndW/LrGhqz4W4/fKyv+8mvyvvdvLsr7s1s/OK9q0LYf27flRlW8cM/klhtVMWDn4Vnx2+zyqaz4bXf5bFZ89r89PT+SFf5q1Tt8WraiYX1W/NBl7f+7s9euOWWTCwP61tduYbUSq1et6LBEpk/fATV5Tmp2ZW5zIOkXFKUPSl0VEb/qjPmYmVnHyUrkzMysZTV8L1tHcTK3CUXEP3T2HMzMzMzMbPPkZM7MzMzMzLogr8zVammCD5E0SdJJG6GfcZL6lB3bR1JI+puMfreWNEXSs5KekXRQlbY/kbRA0pOSZqYyCmZmZmZmZq3WZZK5jWgcUL4jw2nAA+lre10F/D4idgdGAtV2nbg8IvaKiL2BO4EfZoxrZmZmZrblcZ252k3mJJ2eVq/mS2ra0mmUpAclLSldpZN0gaS5qf1F6VhfSXel+IWSTpH0LWAoMFvS7NROwEkUNeTGSupVbQ6SBkuamo7Nl3SwpP7AKOB6gIhYFxHvVPpsEfFuycu+gLcUNTMzMzOzNqnJe+YkjQAuBA6JiOWStgWuBIYAhwK7U9SCmyJpLDAcOBAQMF3SKGB7YFlEHJX6HBARKyR9BxgdEcvTcIcAL0bEYkn3AkcCt1eYA8DVwJyIOF5SHVAP7Aq8CfxK0kjgMeDbEVFxT/JUkPx0YAUwukKbc4FzAU4/uB+f/UTeNtNmZmZmZpuP2l0x6yi1ujI3BpjSlHBFxFvp+LSIaIyIp4HB6djY9HgCeJwi0RsOPAUcLukySYdFxIoKY50G3JKe38IHl1pWmsMY4Np0rCH12x3YF7g2IvYBVgHfr/YBI+LCiNgJuAn4ZoU2EyJi/4jY34mcmZmZmZmVqsmVOYoVtuYuPVxb1qbp6/iI+OWHOpH2o1hpGy9pZkRcXPZ+HXAicIykC1NfAyX1qzKH5iwFlkbEI+n1FFpI5kr8O3AX8KNWtjczMzMzsxq+l62j1OrK3CzgZEkDAUoucWzODOAsSfWp7Q6SBqUdIldHxI3AFRQrZwDvAf3S88OB+RGxU0TsEhE7A7cBx1WZwyzgvHSsTlL/iHgNeEXSJ1KbzwNPV5qwpOElL48Bnm3hfJiZmZmZmf2VmlyZi4hF6Z6yOZIaKC6hrNR2pqQ9gIeKvUxYCXwZGAZcLqkRWE9KwIAJwN2SXgVeBqaWdXkbcF5ETG5mDmcC3wYmSDobaEj9PgScD9wkqSewBPhqlY94aUr8GtMcvtGK02JmZmZmZn/hlTlFeCPFrmDNm/M69xsVG7LC1763LCt+q233yopnQ8XNRVu0ftVrWUP36L9rVjwNK/Pilfk7m27llTzaZtXrc7Pi+w4c3nKjqjL/olfPvPjMnx265Y2/ttduWfHr/zglK75+4LCs+Kj/VFb8+jfuzYrf+vQfZ8WvmPyTdse+8lj57xrbZtdRX8+Kz758SZ188U/jurz47lvnxWf8u7NRdPb86/L+7aBhdVb4hnUV96Brle69BmbFE5l//nIuntsIP3u9tz9QLbfqfKvf/VOH/f9xn/471OQ5qcmVOTMzs64uJ5EzM7NW8D1zTuY2JUm/oCh9UOqqiPhVZ8zHzMzMzMw2H07mNqGI+IfOnoOZmZmZmW2eanU3y1aTNEnSSRuhn3GS+pS8rpd0raTFkp6Q9Jikc3LHKen/95LekXTnxurTzMzMzGzL0diBj9rU5ZO5jWgcUHq37nXA28DwVAj8CKBaiYS/IrW468TlwFfaOkkzMzMzMzPogsmcpNMlLZA0X9LkdHiUpAclLSldpZN0gaS5qf1F6VhfSXel+IWSTpH0LWAoMFvSbEkfBw4E/iWiuLMyIt6MiMtSH5MlHVsyzk2SjpF0pqTfSroDmKnC5WmcpySd0hQTEbMoat6ZmZmZmVlbRWPHPWpUl0rmJI0ALgTGRMRIippvAEOAQ4GjgUtT27HAcIqkbG9gP0mjKFbYlkXEyIjYE/h9RFwNLANGR8RoYARFMfFK37nrSHXkJA0ADgZ+l947CDgjIsYAJ6SxR1IUKL9c0pA2fN5zJc2TNO/6X9/e2jAzMzMzM9sCdLUNUMYAUyJiOUBEvJUKhU9LidfTkgantmPTo6ngeD1Fcnc/cIWky4A7I+L+lgaVdCHwd8CgiBgaEXMk/ULSIIqE7baI2JDmck9EvJVCDwVujogG4HVJc4ADgOmt+bARMYGiyHnn15kzMzMzM6sptbti1lG6WjInoLmkZm1Zm6av4yPilx/qRNoPOBIYL2lmRFxc1uRpYKSkbhHRGBGXAJdIKq3ePBn4EnAqcFbJ8dIqlTVZXNDMzMzMzLq+LnWZJTALOFnSQABJ1TYkmQGcJak+td1B0iBJQ4HVEXEjcAWwb2r/HtAPICJeAOYBP5VUl+J78dfJ2SSKTVOIiEUV5nAfcIqkOknbA6OAR9v2kc3MzMzMrJwiOuxRq7rUylxELJJ0CTBHUgMfXELZXNuZkvYAHkqXP64EvgwMo7h3rRFYD5yXQiYAd0t6Nd039zWKHSdfkPQWsAb4x5L+X5f0DDCtypSnUtxDN59iRfF7EfEagKT7gd2BeklLgbMjYkbbzoiZmZmZmW2pulQyBxARNwA3VHm/vuT5VcBVZU0WU6zalcddA1xT8vpd4OuVxkk16YYDN5fETKJYsWt6HcAF6VE+3mGV+jYzMzMzs5b4nrkul8zVAkmHAxOBKyNiRYcM2q1nXnxsyIzP+2Hp1qNX3vgb3mq5TRXrV73R7tjsuTesbLlNFTlzB/jj3ClZ8d0PvyJv/P6HZsUfpj9nxaPMq8lzf3Yyx4/eH8+K32rVgrz47XbPil/bZ8+88TPn37Pv9lnxKyb/JCt+wFd+0O7Y+7+Y+ff+YZl/dnMp8+/Oxvfz4nsOygqP4i6LdlPDu1nxdG91adtmRV3vrHhteCdv/F4fy4rP/Xd/7VsP5o2fqa7fsKx4rXszI9j/e78l8Xe7HSLiP4GPdvY8zMysduUkcmZm1go1XP+to3S1DVDMzMzMzMyMzSCZkzRJ0kkboZ9x6T64ptf1kq6VtFjSE5Iek3RO7jip770lPSRpkaQFkk7ZGP2amZmZmW05GjvwUZu6fDK3EY0D+pS8vg54GxgeEfsARwCtvoBdqnrB8mrg9IgYkfr9N0lbt33KZmZmZma2pepyyZyk09Nq1nxJk9PhUZIelLSkdJVO0gWS5qb2F6VjfSXdleIXSjpF0reAocBsSbMlfRw4EPiXiOJi3Ih4MyIuS31MlnRsyTg3STpG0pmSfivpDmCmCpencZ5qWoGLiOci4vn0fBnwBpB3l76ZmZmZ2ZYkGjvuUaO61AYokkYAFwKHRMTyVDT8SmAIcChF3bbpwBRJYylKBxxIUex7uqRRFEnTsog4KvU5ICJWSPoOMDr1ewwwvymRa8Z1wH8H/kPSAOBg4AyKOnYHAXtFxFuSTgT2BkYC2wFzJd0XEa+WfKYDgZ4UJRPMzMzMzMxapautzI0BpkTEcoCIaNq3dlpENEbE08DgdGxsejwBPE6R6A0HngIOl3SZpMNaU1pA0oWSnpS0LI07BxgmaRBwGnBbxF/2L7+nZF6HAjdHRENEvA7MAQ4o6XcIMBn4anOJo6RzJc2TNO/6G/K2lzczMzMzs81Ll1qZo1hhi2aOry1r0/R1fET88kOdSPsBRwLjJc2MiIvLmjwNjJTULSWJlwCXSCotGDYZ+BJwKnBWyfFVzczlwx9E6g/cRXEp58PNtYmICcAEgDV/XtDc5zYzMzMz20LV7uWPHaWrrczNAk6WNBAgXWZZyQzgLEn1qe0OkgZJGgqsjogbgSuAfVP794B+ABHxAjAP+KlUVA2V1Iu/Ts4mUWyaQkQsqjCH+4BTJNVJ2h4YBTwqqScwFfh1RPy2LSfAzMzMzMwMutjKXEQsknQJMEdSA8UllJXazpS0B/CQJICVFPe0DQMul9QIrAfOSyETgLslvRoRo4GvAZcDL0h6C1gD/GNJ/69LegaYVmXKUynuoZtPsaL4vYh4TdKXKRK7gZLOTG3PjIgn23A6zMzMzMy2XDW8MUlH6VLJHEBE3ADcUOX9+pLnVwFXlTVZTLFqVx53DXBNyet3ga9XGifVpBsO3FwSM4lixa7pdQAXpEfpWDcCN1bq28zMzMzMrCVd7TLLmiDpcOBZ4JrWbKBiZmZmZmYbm4uGq1g8slq35vUHsr5REQ1Z46uub1Z89Mwro6cN72XF5/wQRl2/rJHVuCYrPvcSglVb7ZwVv/aZCXnxK5dnxQ/Z67Ss+OzfWf1lo9p2alydF9+tT1b4++88nxXfa9tPZcWz4Z2s8PWr8/789Oj30az4JfeWX9zRNm8vXtju2MPuWJc19urbrs2KR5kX7zS+nxffrWdW+Np3l2bF9xw4Mite69/Oil/zdl7Fol6D9s+Kz51/9N0jK/695ye33KiK5TudkBW/a7yRFU/Du3nxOf/2K3+tpveggytu4ldL1ix/vMMSmd7b7VuT58Qrc2ZmZptATiJnZmatUGNFwyUdIekPkl6Q9P1m3t9K0q3p/Uck7ZJ7CpzMmZmZmZmZZUg74P8C+Fvgk8Bpkj5Z1uxs4O2IGAb8L+Cy3HG7fDInaZKkkzZCP+PSpiZNr+slXStpsaQnJD0m6ZzccVLfO6f+npS0SNI3Nka/ZmZmZmZbjpq6Z+5A4IWIWBIR64BbgGPL2hzLBxs5TgE+r7Ttfnt1+WRuIxoHlN6cch3wNjA8IvYBjgCq1bX7K1LVmw1eBQ6OiL2BTwPfT/XvzMzMzMysxkg6V9K8kse5ZU12AF4peb00HWu2TURsAFYAA3Pm1eVKE0g6HfguRd22BUADMErSd4CPUNRym5LaXgCcDGwFTI2IH0nqC/wG2BGoA34CDAaGArMlLaeoMXcg8PcRxUWyEfEmaSlU0mRgSkT8R3p9E3ArRbJ3FNAL6Cvp88C/Uiy3BvDTiLg1ZetNtsJJtZmZmZlZ23RgnbmImEBRl7qS5lbYyjdoaU2bNulSSYSkEcCFwJiIGAl8O701BDgUOBq4NLUdS1EH7kBgb2A/SaMoVtiWRcTIiNgT+H1EXA0sA0anguEjgPlNiVwzrgO+msYZABwM/C69dxBwRkSMAU5IY48EDqcoVj4kxe0kaQFFdn5ZRCxr5vP+5TcA10+e3o4zZmZmZmZmHWApsFPJ6x0p8otm26Sr+AYAb+UM2qWSOWAMxYrYcoCIaPrw0yKiMSKeplhlAxibHk8AjwO7UyR3TwGHS7pM0mGtqRMn6cJ0f9uyNO4cYJikQcBpwG1pqRTgnpJ5HQrcHBENEfE6MAc4IPXxSkTsBQwDzpA0mDIRMSEi9o+I/c/+yjFtOE1mZmZmZpu7mrpnbi4wXNLHJPUETgXKV2OmA2ek5ycB/y8y68R1tWRONL8UubasTdPX8RGxd3oMi4jrI+I5YD+KpG68pB8209/TwEipKNQREZek+9v6l7SZDHyJYoXuVyXHVzUzl4rSitwi4LCW2pqZmZmZWe1JCzvfBGYAzwC/iYhFki6W1LQqcz0wUNILwHeAD5UvaKuulszNAk6WNBBAUrUNSWYAZ0mqT213kDQobTSyOiJuBK4A9k3t3wP6AUTEC8A84Kdpm1Ek9eKvk7NJFJumEBGLKszhPuAUSXWStgdGAY9K2lFS79TvNsAhwB9afxrMzMzMzLZwNVZnLiJ+FxG7RcTHI+KSdOyHETE9PX8/Iv4uLTIdGBFLck9Bl9oAJWW3lwBzJDVQXEJZqe1MSXsAD6UdP1cCX6a4rPFySY3AeuC8FDIBuFvSq+m+ua8BlwMvSHoLWAP8Y0n/r0t6BphWZcpTKe6hm0+xovi9iHhN0heAn0kKigTxioh4qq3nw8zMzMzMtlxdKpkDiIgb+KA+Q3Pv15c8vwq4qqzJYopVu/K4a4BrSl6/C3y90jipJt1w4OaSmEkUK3ZNrwO4ID1Kx7oH2KtS32ZmZmZmZi1R5j13WyRJhwMTgSsj4t86YswX7/uXrG9Uj179W25UxYAhI7PiX++3f1b8oHcfyYpv3HZUu2OXb1jbcqMqBr3zUFb8hu0+mxXfe3XnLvpG4/qs+BXLFmTF313f/u89wK63fCUrfo/jz8+Kb1z/flb8Kw/fmRX/2tE/z4o/YPnvs+I7e/5f6P12Vjx/2RurPfLuhOhz4nktN6riR/+W98/bqX+6NSt+m4/tkxX/xqL7suK33mVEVvw2O+X9u/f8f/6frPiBu+Wdv212zJt/917bZMVTtVxvK2T97MHa3p/Mil/8/sqs+DvP2LXdsd+b/HjW2AC9t909q5B1R1n92pwOS2T6fOSzNXlOutzKXC2IiP8EPtrZ8zAzsxqW+T+TZmZmLXEyZ2ZmZmZmXU40dlzR8FrV1XazNDMzMzMzM2o4mZM0SdJJG6GfcWmzkqbXL0m6v6zNk5IW5o7VhjkNlDRb0kpJeTd0mJmZmZltgSIaOuxRq2o2mduIxgF9yo71k7QTQCpf0NHeB34AfLcTxjYzMzMzs81AzSRzkk6XtEDSfEmT0+FRkh6UtKR0lU7SBZLmpvYXpWN9Jd2V4hdKOkXSt4ChwGxJs0uG+w1wSnp+GiXlBSTtIul+SY+nx8HpeDdJ/1vSIkl3Svpd05zSat9Fqf1TknYvmdPENNcnJB0LEBGrIuIBiqTOzMzMzMzaKBobOuxRq2oimZM0ArgQGBMRI4Fvp7eGAIcCRwOXprZjKeq7HQjsDewnaRRwBLAsIkZGxJ7A7yPiamAZMDoVAm8yBTghPf8icEfJe28AX4iIfSkSvqvT8ROAXYBPURQU///s3Xuc1lW99//XG4bzIAgiKmLYBmN7VvCUmljobe1DmZqy2xbaFtvtIrPDbbd6b9tombX95d22duQxK01Q2KZ5SiXMGHFQOWlqJqVpoogKcp75/P74rpHLi2vmGmbhcA28n4/H9eCa9V2ftdb3gmH4sL5rrSPKbuPVFPNDNs64nQ/cHxGHAMdSHFbebzM+l0mSGiU13nhb/jazZmZmZma27aiV3Sw/CEyPiFcBIuI1SQAzI6IZeELS0FT3+PR6LH1dT5HcPQh8V9K3gdsj4h3r4sq8BiyXdBrwJLCq5FoP4L8kHQg0AXul8qOAaWk8fy2b6QO4Nf06j42J4vHAP0pqSe56Uxxp8GSbn0YSEVOBqZB/zpyZmZmZ2baklteydZZaSeYEVEpW1pbVafn1WxHxo00akcYAHwG+JemeiPiPNvr8BXAlMLGs/EvAy8ABFDOXLY9CVjsosGWsTWz8XAWcFBFPVYk1MzMzMzPbLDXxmCVwH/AJSYMBJA1qo+7dwJmS6lPdYZJ2lrQbsCoifgp8Fzg41V8B9K/QzgzgstReqQHAS2kG7nSgeyr/LXBSWjs3FBjXjvu6G/iC0jSjpIPaEWNmZmZmZtU0N3feq0bVxMxcRCyWdAnwG0lNbHyEslLde9IOlHNSjrQS+GdgJMWatGZgPfCvKWQqcKekl0rXzUXECuDbAKmdFj8AbpF0CvAA8FYqvwX4ELAIeBp4GHijyq1NAb4HLEgJ3RKK9X9IWgLsAPSU9DHg+Ih4okp7ZmZmZmZmQI0kcwARcT1wfRvX60veXwFcUVblWTadZSMivg98v+TrERXqLAH2Te+fAfYvufz1VN4s6SsRsTLNIM4FFpa3GRGNpFm7iFgNnN3K/WwyDjMzMzMzax+vmauhZK6LuF3SQKAnMCUi/tpZHT/76xlZ8atWr61eqQ3HffWnWfEvrHmreqU27Lj69az49Rnf7NljX/tmVvz6yJva75P5NHU05/3ZUfc+WfFrV72aFd9nQN5fc4f96zVZ8W/85eGs+IHvOSYr/jdXfycrvu4jeT8oc8f/wFXfzorvmTl+sr7/ugEZ8cr7s/vv3/teVvw3zjknK/70i47Liu/WvUdW/GvPLsqKr9/tPVnx3XuUH3G7eV55Ju9hnR12f29WfF2vSitUNkPmzy6UuRIos//zGu7Lir/48A9mxf/jJz7S4djI/LlrXYuTuc0QEeO29hjMzKyrqN01FmZm24JaPv+ts9TKBihmZmZmZma2GWo2mZN0naSTt0A750jqW/L1EkkPltV5XFLe8xibN6bjJM2TtDD9mjcXb2ZmZmZm253t4THLc4Cf8s6DwftLGh4Rz6edMTvbq8A/RMSLkval2Lhl2FYYh5mZmZlZl+QNUGpoZk7SpyQtkDRf0g2p+AOSfifpj6WzdJK+KumRVP8bqayfpDtS/CJJp0qaDOwGPCDpgZLubgZOTe8nADeWtD1C0oOSHk2v96fybpJ+IGmxpNsl/aplTGm27xup/kJJo0vGdE0a62OSPgoQEY9FxIupy8VAb0m9tvBHamZmZmZm27CamJmTtA9wPnBkRLyaDg2/HNgVOAoYDdwGTJd0PDAKOBQQcJukDwBDgBcj4u9SmwMi4g1J5wLHRkTplnjTgesoDhf/B+CTFAeEAywFjouINZJGUSR6Y4GPAyOA/YCdgSeB0m3uXo2IgyV9DvgK8C/pnu6PiDPTLphzJf06Ikq3RzwJeCwi8rYMNDMzMzPbjkQNH+bdWWplZu6DwPSWhCsiXkvlMyOiOR2mPTSVHZ9ejwGPUiR6oyjOfBsv6duSjo6Itg70fg1YLuk0iqSs9BHMHsCPJS0EpgF7p/KjgGlpPH+lOFC81K3p13kUSV/LWM+T9DgwC+gN7NESkJLYb9PKWXSSJklqlNR4x6PL27gdMzMzMzPb3tTEzBzFDFtUKF9bVqfl129FxI82aUQaA3wE+JakeyLiP9ro8xfAlcDEsvIvAS8DB1Aku2vK+m9Ny1ib2Pi5CjgpIp6qMNbdgRnApyLi2UoNRsRUYCrAr//vPpU+HzMzMzOz7ZLXzNXOzNx9wCckDQZIj1m25m7gTEn1qe4wSTtL2g1YFRE/pXh88uBUfwVQ6eTLGcBlqb1SA4CXIqKZ4tHL7qn8t8BJae3cUGBcO+7rbuALkpTGelD6dSBwB/D1iHioHe2YmZmZmZm9Q03MzEXEYkmXAL+R1ETxCGVrde9JO1DOSTnSSuCfgZHAdyQ1A+uBf00hU4E7Jb0UEceWtLOC4hFHUjstfgDcIukUikcpW9a33QJ8CFgEPA08DLT1KCfAFOB7wIKU0C0B/h74fBrvhZIuTHWPj4ilVdozMzMzMzN8aDjUSDIHEBHXA9e3cb2+5P0VwBVlVZ5l01k2IuL7wPdLvh5Roc4SYN/0/hlg/5LLX0/lzZK+EhEr0wziXIp1eu9oMyIaSbN2EbGaCuvhIuJi4OLW7tXMzMzMzKyamknmuojb0yOSPYEpaSMUMzMzMzPrZF4zB4rwvhpdwYWPPJD1GzW4T7+s/j/2+h1Z8c8/mBc/9rM/z4p//blNJm3b7ek7r6leqQ2Hfm5aVvzyP96eFb/jHu/Pit/aS2v/bd6fsuL/c2TetsVvDhmfFT/k7c15O2blC7/Jiq/f48NZ8Z8+5j1Z8Vfe8N9Z8Vt7/D+557dZ8ahnx2ObVmZ1/aeH8/7e7NGvvnqlNoy86N6s+Ld+dVdW/Asbulev1IaBdRm/d0B9t7x/Xz23Nu/EokF1ecfX7lDXIyu+21tPZMXD1t1y/tVn78+K/58rLs2KP+3/fr96pXfRTn97erWN/2rCK09c12mJzJC9J9bkZ+KZOTMzs3dDTiJnZmZV+Zy5rf1f7mZmZmZmZtYhNZvMSbpO0slboJ1zJPUt+XqJpAfL6jwuaVFuX5sxpkNTn49Lmi/pxM7q28zMzMxsWxDR1GmvWlWzydwWdA7Qt6ysv6ThAOmYg862CBgbEQcCJwA/kuRHXs3MzMzMrN1qJpmT9ClJC9JM1Q2p+AOSfifpj6WzdJK+KumRVP8bqayfpDtS/CJJp0qaDOwGPCDpgZLubgZOTe8nADeWtD1C0oOSHk2v96fybpJ+IGmxpNsl/aplTGm27xup/kJJo0vGdE0a62OSPgoQEasiYkPqsjfgXWjMzMzMzDZHc1PnvWpUTSRzkvYBzgc+GBEHAF9Ml3YFjqI4aPvSVPd4YBRwKHAgMEbSByhmuF6MiAMiYl/groj4f8CLwLGlB4YD04GPp/f/APyy5NpS4LiIOJgi4ft/qfzjwAhgP+BfgCPKbuPVFPND4Cup7Hzg/og4BDiW4lDzfuk+DpO0mOKsus+WJHeln8skSY2SGh+dkbejoZmZmZmZbVtqIpkDPghMj4hXASLe3st7ZkQ0R8QTwNBUdnx6PQY8CoymSO4WAuMlfVvS0RHxRhv9vQYsl3Qa8CSwquRaD+DHkhYC04C9U/lRwLQ0nr8CpTN9ALemX+dRJH0tYz1P0uPALIpZuD3SPT4cEfsAhwBfl9S7fJARMTUixkbE2INlFo4zAAAgAElEQVRP/Ps2bsfMzMzMzLY3tbJOS1R+1HBtWZ2WX78VET/apBFpDPAR4FuS7omI/2ijz18AVwITy8q/BLwMHECR7K4p6781LWNtYuPnKuCkiHiqtaCIeFLSW8C+QGOVPszMzMzMDB8aDrUzM3cf8AlJgwEkDWqj7t3AmZLqU91hknaWtBuwKiJ+CnwXODjVXwH0r9DODOCy1F6pAcBLEdEMnA60nDr6W+CktHZuKDCuHfd1N/AFSUpjPSj9umfLhieS3gO8D1jSjvbMzMzMzMyAGpmZi4jFki4BfiOpieIRytbq3pN2oJyTcqSVwD8DIynWpDUD64F/TSFTgTslvVS6bi4iVgDfBkjttPgBcIukUygepXwrld8CfIhiJ8qngYeBth7lBJgCfA9YkBK6JRTr/46iePxyPdAMfK7lEVMzMzMzM6vOh4bXSDIHEBHXA9e3cb2+5P0VwBVlVZ5l01k2IuL7wPdLvh5Roc4SiscciYhngP1LLn89lTdL+kpErEwziHMp1um9o82IaCTN2kXEauDsCv3dANxQXm5mZmZmZtZeivCu+O0laRYwEOgJXBYR13VW3y/P/++s36jeO+ya1f//99rArPiztSArfsB7MzeAWfPnDoe++de88+R3GPGRrHiteykrPvdp6mheW71SG9StV1Y8Pdp66rq6V34/LSt+yMjjsuInP/aXrPj/HJ33+dXt8L6s+JcXXJsVv9OeR2fFd+8/Mit+6aKfZMUPfd/fZcUTGf9rrLzv3Tf/Oj8rvlv3Hlnx/YZ/OC/+Iydkxb91+21Z8Wy6yfTmyfz9Qz3z4mNdXny3TfZl2yxa/Wxe/7n3n2nDmmV58WvfzIrvtfP7Oxz7wu++k9U3wF4nfK/aXhE14cV53+u0RGa3MefU5GdSMzNzXUFEjNvaYzAzsy4iJ5EzMzNrBydzZmZmZmbW5UQNH+bdWWplN0szMzMzMzPbDFs8mZN0naSTK5TPkjS2jbgZkh6X9AdJb6T3j0vq+EPD7zJJH5R0+NYeh5mZmZnZ9iaiqdNetapmHrOMiBMBJI0DvhIRmTtebBmS6iJaXQX9QeBVoGELtWdmZmZmZtYu7ZqZkzRT0jxJiyVNSmUrJV0iab6khnSQdnnclDRT162s/HhJcyQ9KmlaywHgbfR/iKTfpDHc2dKXpN9KulzSg5KekDQ2zfA9I+miVGdkGvcNkhZKullSn3a0e4mk2cDnJX1U0sOSHpN0Tzqk/G+AfwG+2jKDKOmnkj5WMu6V6dfxkn4t6SbSGXqSPi1pbor9QflnZGZmZmZmrYvm5k571ar2JhBnRsQYYCwwOZ2z1g9oiIgDgNnAWaUBki4DdgbOiNi4pZeknYALgPERcTDQCJzbWseSelGcKXdSGsNPKQ7jbrE6Io4GrgZmAp8F9gMmSWrZT39v4MqI2A9YA5zdjnZ3iIgPRMT30v0dHhEHAbcCX46IZ4GrgO9ExIER8bsqn+HhwNciYj9J+wInAu+PiAMpZkhPq3DvkyQ1Smq8YfqDVZo3MzMzM7PtSXsfs5ws6cT0fjgwClgH3J7K5gGlhzFdCDwcEZMqtHU4RXL1kCQozmyb00bffwvsA/w61e8OvFByveUgmYXAwoh4GUDSEmB3iuTtuYhoeRTyp8AkYFaVdm8qeb8HcLOkXYBewNNtjLc1cyKi5bCz8cAhQGPquw/wfHlAREwFpkL+OXNmZmZmZtuSWl7L1lmqJnNpDdt44IiIWJUOzu4NrI+NJ443lbX1CDBG0qCIeK28SeDeiJjQzjEKWJBm3yppOdG4ueR9y9ctYypPhKId7b5V8v5K4JsR8StJ44HzWonZQJrtlNSdd34mpe0JuCYiLmylHTMzMzMzsza15zHLAcDylMiNpphZq+Yu4FLgDkn9y641AEdKGgkgqa+kvdpo6wlgmKRDU/2ekvZpxxhK7SnpkPR+AvDbzWx3APAXFdNony4pXwGU3t8SYEx6fyLFbF8lvwY+kR45RdJgSXts3i2ZmZmZmW2/ormp0161qj3J3F1AnaQFFGvK2rVzY0RMA34M3Nay4UgqfwWYCNyY2mwARrfRzlrgZOBySfMpNhA5rD1jKLEYOCv11w+YupntXgTMAH4DvFxS/j8USdlj6QiFHwHHSZoLHMg7ZwpL72kh8A2KRzwXAPcAm2wgY2ZmZmZm1pqqj1mmpOfDFS7Vl9SZDkxP7yeWlF8DXJO+HFdSfj/FmrFK/c2iWM9WWvYocFSFukeVvP81xYzXO66lGcCmSuv32tNu+voW4JYK9X5PsdlKqUNL3l9QaWyp7OfAz8vbNDMzMzMza4+aOWfO2vaHXf8hK36Huh5Z8V9qc4+a6p594P6s+IEjjqteqQ3L/vxwh2NfeXJuVt8D9vhQVvyrf5ydFb/TyBOy4lU3sHqlNsS6l6tXasO6HrtlxRfLVzsueu+ZFX/F4cOz4je8/lhW/KL1fbPiY0G7j9GsaPCI92fFP7Ehc/yLH8mKHzoq7+8eeu7c4dC1ry3K6nrp4ry/O157Nq//XT+Xd1zsW7ffVr1SG/r9/T/m9X9n3s8tNryeFV7/hclZ8St/eFVW/JvP/DQrfsBuY6pXasP61Uuz4rt175kVv/Tp+7Li+w9t9aGzdunVrXeHY4eP+aesvrsSb4CyHSRzEfEHikcezczMOk9GImdmZtYe23wyZ2ZmZmZm255a3piks7T30HAzMzMzMzOrIV0qmZN0naSTK5TPkjS2HfFDJK2XdHbGGC6R9LyklRWufULSE5IWS2pzcxNJd0l6XdLtbdUzMzMzM7NNRVNTp71qVZdK5raAUyiOQmjvgeWV/JJ37lgJgKRRwNeBIyNiH+CcKu18Bzg9YxxmZmZmZrYd2+rJnKSZkual2axJqWxlmgGbL6lB0iZnsEmakmbqupWVHy9pjqRHJU2TVF9yeQLwZWB3ScNKYk5I9edLui+V1Uu6VtJCSQsknQQQEQ0R8VKFWzkLuDIilqd6bW7DFBH3URw6bmZmZmZmm8mHhtdAMgecGRFjgLHAZEmDKQ72boiIA4DZFInS2yRdBuwMnBERzSXlO1Gc7TY+Ig4GGoFz07XhwC4RMRe4GTg1lQ+hONz8pNTfKam5C4E3ImK/iNgfqLZH8V7AXpIeSglo3n7wxdgmSWqU1Pg/P8nbItjMzMzMzLYttbCb5WRJJ6b3w4FRwDqgZS3ZPKD0oJ8LgYcrHQIOHA7sDTwkCaAnvH1A2mkUSRzATcDVwOUpZnZEPAcQEa+lOuNTDKl8eZX7qEtjHwfsDjwoad+I6PBBMxExFZgK8NDSv0RH2zEzMzMz29bU8lq2zrJVkzlJ4yiSpiMiYpWkWUBvYH1EtCQvTbxznI8AYyQNKkm83m4SuDciKq2JmwAMlfTJ9PVuaZ2bgEqJUmvlrXmBYjZxPfCcpKcokru8E2vNzMzMzMwq2NqPWQ4AlqdEbjTFLFk1dwGXAndI6l92rQE4UtJIAEl9Je0l6X1Av4gYFhEjImIE8C2Kmbc5wDGS9kwxg1Jb9wCfb2lY0o5VxjUTODbV3Yniscs/tuN+zMzMzMxsMzU3N3Xaq1Zt7WTuLqBO0gJgCkUyVlVETKNY53abpD4l5a8AE4EbU5sNwGiKWbkZZc3cAkxIMZOAWyXNB36Rrl8M7ChpUSpvSdQuk/QC0FfSC5IuSvXvBpZJegJ4APhqRCxr7R4kPQhMAz6U2vlf7bl3MzMzMzMzAG18mtFq2V9XvJH1G9UNZfXf5/U51Su1Yd2qVvPa9vW/23HVK7XV/9IHs+KbNqzJit/a4++1wx5Z8dnqduhwaPQYnNX16r/cnRXfZ9djsuLVtDornliXF95jSFb8n+47Pyt+xDFfyYqPumoPRbQte/xHT86Kj+59qld6Fy37/bSs+A3rNjlSdbP0O+hrWfH1TRk/O+oGZvXd78MfzIp/6fv/khXfe+Sns+IHnfu5rPilX8r7udXnPSdlxTe9Oisrvm7w0VnxK5/L+97pvcMuWfF1Aw/Iitfq57Li+ww9Ku8fjp3kqTu+0GmJzPv+7vs1+Zls7Zk5s5rnRC5TRiJn1pU5kduKiZzZdiw3kbOupRZ2s9xmSdoPuKGseG1EHLY1xmNmZmZmtq3wbpZO5t5VEbEQOHBrj8PMzMzMzLY9fszSzMzMzMysC+pSyZyk6ySdXKF8lqSx7YgfImm9pLMzxnCJpOclbbKYQNInJD0habGkn7fRxoGS5qR6CySd2tHxmJmZmZltj6J5Q6e9alWXSua2gFMojiuodKh4e/0SOLS8MB1A/nXgyIjYBzinjTZWAZ9K9U4Avicpb9stMzMzMzPbrmz1ZE7STEnz0izVpFS2Ms2AzZfUIGlohbgpaaauW1n58WnW61FJ0yTVl1yeAHwZ2F3SsJKYE1L9+ZLuS2X1kq6VtDDNnp0EEBENEfFShVs5C7gyIpanektbu+eIeDoinknvXwSWApvsHy5pkqRGSY03XHtda82ZmZmZmW13mpuaOu1Vq7Z6MgecGRFjgLHAZEmDgX5AQ0QcAMymSJTeJukyYGfgjIhoLinfCbgAGB8RBwONwLnp2nBgl4iYC9wMnJrKh1AcQH5S6u+U1NyFwBsRsV9E7A/cX+U+9gL2kvRQSkBPaM/NSzoU6Ak8W34tIqZGxNiIGHv6GRPb05yZmZmZmW0namE3y8mSTkzvhwOjgHXA7alsHlB6UNeFwMMRMalCW4cDewMPSYIiSWo57fo0iiQO4CbgauDyFDM7Ip4DiIjXUp3xKYZUvrzKfdSlsY8DdgcelLRvRLzeWoCkXSmOLvh0aVJqZmZmZmZti+banTHrLFs1mZM0jiJpOiIiVkmaBfQG1kdEy4nuTbxznI8AYyQNKkm83m4SuDciKq2JmwAMlfTJ9PVuaZ2bgEqnx7dW3poXKGYT1wPPSXqKIrl7pFJlSTsAdwAXRETDZvRjZmZmZma21R+zHAAsT4ncaIpZsmruAi4F7pDUv+xaA3CkpJEAkvpK2kvS+4B+ETEsIkZExAjgWxQzb3OAYyTtmWIGpbbuAT7f0rCkHauMayZwbKq7E8Vjl3+sVFFST2AG8JOImNaOezYzMzMzsxLR1NRpr1q1tZO5u4A6SQuAKRTJWFUpAfoxcJukPiXlrwATgRtTmw3AaIpZuRllzdwCTEgxk4BbJc0HfpGuXwzsKGlRKm9J1C6T9ALQV9ILki5K9e8Glkl6AngA+GpELGvlFj4BfACYKOnx9PLh4mZmZmZm1m7a+DSj1bLVrzTm/UZF3vkYG9a+kRVf16t8EnUzqWdmfMYTxc2rMvvOHXvm/7k0r8kL37A2K75br002at0s0b1P9Upt2PD6k1nxPfrknRqyfnWry2bbJSLvfwN79ttkM+DN8saL87Lie9XvnBXfe4fhWfFvvvR4VvwOu+ybFZ/1/Zv5d0fTurw/e9179M2Kj377ZMWzIW/8ZC5Ff3PJr7Lid/3CVVnxq2ZenxX/xvMPZsWfMPutrPj7/tfuWfHd63pnxef+3dPctD4rvmld3ueX87Nn+QuNWX0D7DbmHGU30gkW/PyfOi2R2f+ffl6Tn8nWnpkzMzPbNuX+R4yZmVkVtbCb5TZL0n4Uu1WWWhsRh22N8ZiZmZmZbStq+fy3zuJk7l0UEQsBr4UzMzMzM7Mtrks9AyLpOkknVyifJWlsO+KHSFov6eyMMVwi6XlJKytc+4SkJyQtlvTzNtp4j6R5aeOTxZI+29HxmJmZmZltj6K5qdNetapLJXNbwCkUO1xWOoeuvX4JHFpemM6s+zpwZETsA5zTRhsvAe+PiAOBw4DzJO2WMSYzMzMzM9vObPVkTtLMNEu1WNKkVLYyzYDNl9QgaZPt2CRNSTN13crKj5c0R9KjkqZJqi+5PAH4MrC7pGElMSek+vMl3ZfK6iVdK2mhpAWSTgKIiIaIeKnCrZwFXBkRy1O9pa3dc0Ssi4iWLQJ7UQO/D2ZmZmZmXYnPmauNJOLMiBgDjAUmSxoM9AMaIuIAYDZFovQ2SZcBOwNnRGzcezgd1n0BMD4iDgYagXPTteHALhExF7gZODWVD6E4s+6k1N8pqbkLgTciYr+I2B+4v8p97AXsJemhlICe0FZlScPTWXjPA9+OiBcr1JkkqVFS49U/ubVK92ZmZmZmtj2phQ1QJks6Mb0fDowC1gG3p7J5wHEl9S8EHo6ISRXaOhzYG3hIEkBPYE66dhpFEgdwE3A1cHmKmR0RzwFExGupzvgUQypfXuU+6tLYxwG7Aw9K2jciKh6UExHPA/unxytnSpoeES+X1ZkKTIUtcM6cmZmZmZltU7ZqMidpHEXSdERErJI0C+gNrI+Np5k38c5xPgKMkTSoJPF6u0ng3oiotCZuAjBU0ifT17uldW4CKiVKrZW35gWK2cT1wHOSnqJI7h5pKygiXpS0GDgamL4Z/ZmZmZmZbbeiacPWHkK7SBoE/AIYASwBPlE+USTpPcCtQHegB/D9iPjvam1v7ccsBwDLUyI3mmKWrJq7gEuBOyT1L7vWABwpaSSApL6S9pL0PqBfRAyLiBERMQL4FsXM2xzgGEl7pphBqa17gM+3NCxpxyrjmgkcm+ruRPHY5R8rVZS0u6Q+Je0eCTzVjns3MzMzM7Ou5TzgvogYBdyXvi7XoQ0St3YydxdQl9aOTaFIxqqKiGkU69xua0mKUvkrwETgxtRmAzCaYlZuRlkztwATUswk4FZJ8ymyZoCLgR0lLUrlLYnaZZJeAPpKekHSRan+3cAySU8ADwBfjYhlrdzC3wIPp3Z/A3w3nUlnZmZmZmbt0Nzc1GmvTB8Frk/vrwc+Vl6hoxskbtXHLNOAP1zhUn1Jnemkxw8jYmJJ+TXANenLcSXl9wOHlLV3W4W+F1CsryMi7gTuLLu+Evh0hbivAV+rUB4Um62cW+F+yuveC+xfrZ6ZmZmZmW19adf90j07pqb9LdpjaMtu+BHxkqSdW+ljOHAHMJJiYmiTDRLL1cIGKNYODzdV/D1vt/51PbPiR254OCv+semXZMUfNPGa6pXa8OpTHV+O+JeH787q+4BP/Tgr/pXf/6J6pTYMGfV3WfHd+uyUFd+8+i9Z8Wt3GJsVv+IvP8uKH3LAv2XF1/Vtrl6pDRuW5X3vPbh+k5NdNkuvO67Kij/ok1Oy4n+3YZes+N733pAVf/Dp3+54cDRDj45//6x+dX7H+wb+NGdaVvwrzzyRFT/s3FlZ8Xtm/tyq/8LkrPjXfnBtVvyqmUdnxff92Cb/n7xZ3rzrt1nxc3bL+/MXzeuz4lU3ICt+3Yo/ZcW//NQDWfEDdh2dFV+305Edjt1xj7zvna6kM48MKN2YsBJJvwYq/dA6fzP6qLpBYjknc+8iSfsB5f+SWBsRh22N8ZiZWSfKSOTMzKxriYjxrV2T9LKkXdOs3K5Aq+dRp7bavUGik7l3UVoHd+DWHoeZmZmZ2bYm8teydZbbKJZvXZp+/Z/yCpJ2B5ZFxOqSDRIvr9bw1t4AxczMzMzMbFt2KXCcpGcozs++FEDSWEkt6xk6tEHiNpHMSbpO0skVymdJqrrgRtIQSeslnZ0xhp6Spkp6WtLvJZ3URt0PSHpU0oZK4zYzMzMzs7ZFU1OnvbLGGbEsIj4UEaPSr6+l8saI+Jf0/t6I2D8iDki/tmtzlW0imdsCTqE4xqDSYePtdT6wNCL2otgl8zdt1P0zxREKP8/oz8zMzMzMtmM1m8xJmilpnqTFaStQJK2UdImk+ZIaJG2yTZukKWmmrltZ+fGS5qQZsWmS6ksuTwC+DOwuaVhJzAmp/nxJ96WyeknXSlooaUHJDNyZFAeRExHNEfFqa/cWEUvS0Qh529yZmZmZmW2nutA5c++amk3mgDMjYgwwFpgsaTDQD2iIiAOA2cBZpQGSLgN2Bs6IiOaS8p2AC4DxEXEw0Eg6Dy6d57BLRMwFbgZOTeVDKA4mPyn1d0pq7kLgjYjYLyL2B+6XNDBdm1KSLObtB16MYZKkRkmNv7zBk3hmZmZmZrZRLe9mOVnSien9cGAUsA64PZXNo1hA2OJC4OGIKD3Mr8XhFI8+PiQJoCcwJ107jSKJA7gJuJpi55jDgdkR8RxAy7OtwPgUQypfnpLF3YGHIuJcSecC3wVO78B9v630PItZf/1z5LRlZmZmZrYt6cxz5mpVTSZzksZRJE1HRMQqSbOA3sD6iGhJapp45/gfAcZIGlSSeL3dJHBvRFRaEzcBGCrpk+nr3SSNSjGVEqhK5cuAVcCM9PU04DNt36WZmZmZmVnH1epjlgOA5SmRG00xS1bNXRTbfN4hqX/ZtQbgSEkjAST1lbSXpPcB/SJiWESMiIgRFOveTqOYuTtG0p4pZlBq6x7g8y0NS9oxJZi/BMal4g8BT2zuTZuZmZmZWftE84ZOe9WqWk3m7gLqJC0AplAkY1VFxDSKdW63SepTUv4Kxe6RN6Y2G4DRFLNyM8qauQWYkGImAbem8x5+ka5fDOwoaVEqPzaV/2/gotT+6RQbqlQk6RBJL1Csw/tROuHdzMzMzMys3bTxqUWrZc+/sTzrN6pbsVaww/q//rus+LUrl2bF99vjo3n9//XXWfEb1r3V4ditPfbeA/bMikd5/+cTdQPy+u+xU1b4qj/flhXfd9j4rHg1dfzPDgDNa7LCo9euWfHP3f21rPj3HvvVrPjombeX1B/v/FJW/N988CtZ8VFX/qDI5gTn/U/wq0/elBW/ftUbWfF9Dzk/K35AvJ4VT93A6nXaUP+lL2TFv/i5w7Li+42amBW/wwlHZcW/cPk/Z8Xv+LcTs+LXvdzWCU/V9dxpTFb8ij/fkxXfp3/e3711gw/JiteqZ7Li+ww9Ku8fjp3kt5cd1mmJzFFfe7gmP5OaXDNnVktyEjkz235lJXJmZh2Um8h1Jd4Axcncu0rS+Ww80qDFtIi4ZGuMx8zMzMzMth1O5t5FKWlz4mZmZmZmtoXV8mHenaVWN0AxMzMzMzOzNmwTyZyk6ySdXKF8lqSx7YgfImm9pLMzxtBT0lRJT0v6vaST2qh7rqQnJC2QdJ+k93S0XzMzMzOz7VE0NXXaq1ZtE8ncFnAKxXEFlQ4Vb6/zgaURsRewN9DWNkyPAWMjYn9gOnBZRr9mZmZmZrYdqtlkTtJMSfMkLZY0KZWtlHSJpPmSGiRtsme1pClppq5bWfnxkuZIelTSNEn1JZcnUJwLt7ukYSUxJ6T68yXdl8rqJV0raWGaWWuZgTuT4sBxIqI5Il5t7d4i4oGIWJW+bAB2b+UzmCSpUVLjz667ru0PzMzMzMxsO9LcHJ32qlU1m8wBZ0bEGGAsMFnSYKAf0BARBwCzgbNKAyRdBuwMnBERzSXlOwEXAOMj4mCgETg3XRsO7BIRc4GbgVNT+RCKA8hPSv217Ep5IfBGROyXZtbul9RymM2UkmSxvYcjfQa4s9KFiJgaEWMjYuwnJ05sZ3NmZmZmZrY9qOVkbrKk+RQzV8OBUcA64PZ0fR4woqT+hcDAiDg7Nj0J/XCKRx8fkvQ48GmgZZ3aaRRJHMBNbHzU8nBgdkQ8BxARr6Xy8cCVLQ1HxHKKXUF3Bx5KyeIc4LvVblDSP1Mkq9+pVtfMzMzMzDZqbm7utFetqsmjCSSNo0iajoiIVZJmAb2B9SWJWhPvHP8jwBhJg0oSr7ebBO6NiEpr4iYAQyV9Mn29m6RRKabSnGql8mXAKmBG+noaxYxbW/c4nmKd3TERsbatumZmZmZmZuVqdWZuALA8JXKjKWbJqrkLuBS4Q1L/smsNwJGSRgJI6itpL0nvA/pFxLCIGBERIyjWvZ1GMbt2jKQ9U8yg1NY9wOdbGpa0Y0owfwmMS8UfAp5obaCSDgJ+BPxjRCxtx72ZmZmZmVkJr5mr3WTuLqBO0gJgCkUyVlVETKNY53abpD4l5a8AE4EbU5sNwGiKWbkZZc3cAkxIMZOAW9Pjnr9I1y8GdpS0KJUfm8r/N3BRav90ig1VWvMdoB6YJulxSbe15/7MzMzMzMxaaNPlZVaLVr8yN+83KjZkhW9YuyIrvq5X+WTpZlLPzPiMJ4qbV1Wv02bfW3HsAE0r88I3rMmK795nt6z46NaneqU2rFv2WFZ8z36Ds+I3rMn73mnasDorvvcOw6pXasNrf5qTFd9nQMXNetsfPzDvGM7X/vRQVvygPQ7Lis/SrXdW+IY1y7Lic//ebq4/MCteTXnfO28+Oz0rvq7XDlnx4+99KSt+zmlHZcXnfu/ufu5Ps+KXXX1eVnyfQaOy4mnK+9md+7Ovad1bWfE9+gysXqkVy5bk/d4DDD/8PGU30gnu+j9/22mJzAnffLImP5NanZkzMzMzMzOzNtTkBijbCknns/FIgxbTIuKSrTEeMzMzM7NtRXPU7i6TncXJ3LsoJW1O3MzMzMzMbIvbJh6zlHSdpJMrlM+SNLYd8UMkrZd0dsYYekqaKulpSb+XdFIbdT8raWHa/OS3kvbuaL9mZmZmZrZ98sxc4RSKHS4nUBwZ0BHnA0sjYi9J3YBBbdT9eUT8N4CkfwQuB07oYL9mZmZmZtudWj4yoLPU7MycpJmS5klaLGlSKlsp6RJJ8yU1SBpaIW5KmqnrVlZ+vKQ5kh6VNE1SfcnlCRRHCewuaVhJzAmp/nxJ96WyeknXppm1BSUzcGdSnFFHRDRHxKut3VtEvFnyZT8qH05uZmZmZmbWqppN5oAzI2IMMBaYLGkwReLTEBEHALOBs0oDJF0G7AycEbFxRaSknYALgPERcTDQCJybrg0HdomIucDNwKmpfAjFmXUnpf5aNjK5EHgjIvaLiP2B+yW17B87pSRZ3CTRLBvrv0l6FrgMmNxKnUmSGiU1Xv2T8uPwzMzMzMy2X83NzZ32qlW1nMxNTodyNwDDgVHAOuD2dH0eMKKk/oXAwIg4OzY9PO9wYG/gIUmPA58GWg4vOo0iiQO4iWKWriH4nmQAACAASURBVCVmdkQ8BxARr6Xy8cCVLQ1HxHKKx1V3Bx5KyeIc4Ltt3VxEXBkRf0Nx2PgFrdSZGhFjI2LsZz51YlvNmZmZmZnZdqYm18xJGkeRNB0REaskzQJ6A+tLErUm3jn+R4AxkgaVJF5vNwncGxET2NQEYKikT6avd5M0KsVUevyxUvkyYBXQMn02DfhM23f5tpuAH7azrpmZmZmZ4TVzULszcwOA5SmRG00xS1bNXcClwB2S+pddawCOlDQSQFJfSXtJeh/QLyKGRcSIiBhBse7tNIrZtWMk7ZliWjY0uQf4fEvDknZMCeYvgXGp+EPAE60NNCWLLf4OeKYd92dmZmZmZva2mpyZo0jMPitpAfAURTJWVURMS4ncbZI+UlL+iqSJwI2SeqXiC4CD2Tib1uIW4KaImJI2Xrk1baayFDgOuBi4UtIiitnBbwC3UjwueYOk7wGvAGe0MdTPSxoPrAeWUzz2aWZmZmZm7eSZuRpN5iJiLfDhCpfqS+pMB6an9xNLyq8Brklfjispvx84pKy92yr0vYBifR0RcSdwZ9n1lVRIviLiT8AHWr2pd9b9YnvqmZmZmZmZtUab7hVitWj1K3O79m9Ut7558U0rM/vvmRHbO6/vDW9Wr9Nm/xljB1Dm/9kor//1K/+YFd+j/r1Z8dGtV/VKbdD6ZVnxkLcDVvQYnNf7W89lxXfvObB6pbbU5cVvWPlsXve98z4/lLcaIXrv2fHgzO99vbU4K57I3L0t9++eWJcXn7mSpLl+/6z4Nc/PzIrvM2BY9Uptqd83K3zNi7/Oih/8mUuz4l//yUVZ8Yv6jc2KP6j5D1nx6rVrVjzrlnY8tnvmv7mAPjsdrOxGOsH0L47otH8fn3zFkpr8TGpyZm5bIel8Nh5p0GJaRFyyNcZjZmadJyuRMzMzawcnc++ilLQ5cTMzMzMz28K8Zq52d7PcIiRdJ+nkCuWzJLU5/y6pTtI3JT0j6fH0On8Lju0aSUvTRipmZmZmZmabZZtO5jJdDOwG7BcRBwJHAz3aGyype5Uq1wEndHh0ZmZmZmbbsebm6LRXrepyyZykmZLmSVqcjg5A0kpJl0iaL6lB0tAKcVPSTF23svLjJc2R9KikaZLqJfUFzgK+EBFrACJiRURcVNLWF0vauETSZEnjJD0g6efAwnTtXEmL0uuclpiImA2UH25uZmZmZmbWLl0umQPOjIgxwFhgsqTBQD+gISIOAGZTJGJvk3QZsDNwRsTG7bkk7URx3tz4iDgYaATOBUYCf46IFa2M4WrS8QQpOTwN+Fm6dihwfkTsLWkMxXlzh1EcfH6WpINyPwAzMzMzs+1dczR32qtWdcVkbrKk+RQHiQ8HRgHrgNvT9XnAiJL6FwIDI+Ls2PQchsMpzpR7SNLjFAnae8o7lHRGWjP3vKThEbEEWJYSs+OBxyKiZf/yuRHRshf4UcCMiHgrnU93K8Xjmu0iaZKkRkmNV/+k/GxzMzMzMzPbnnWp3SwljQPGA0dExCpJs4DewPqSRK2Jd97XI8AYSYMiovyxRgH3RsSEsn76AntI6p8er7wWuDZtVtKyFu4qYCKwCxsPKQd4q6z9DouIqcBU2AbOmTMzMzMz24JqeS1bZ+lqM3MDgOUpkRtNMbNWzV3ApcAdkvqXXWsAjpQ0EookTtJeEbGK4lHK/5LUO13rDpSe4DqDYgOTQ4C7W+l7NvCx1G4/4ETgwfbcqJmZmZmZWVu6WjJ3F1AnaQEwhSIZqyoipgE/Bm6T1Kek/BWK2bUbU5sNwOh0+XzgJWCRpMcokrDrgRdT7DrgAeDmiGhqpd9HKXatnAs8DFwVEY8BSLoRmAO8T9ILkj7Tzs/AzMzMzMysaz1mGRFrgQ9XuFRfUmc6MD29n1hSfg0bH4ccV1J+P8XsWnlf64Hz0msTaeOTw4FTSmJmAbPK2rkcuLxC+xPKy8zMzMzMrH2am2t3Y5LO0qWSuVohaW+KDVdmRMQzndHnhjXLs+K7de9ZvVJb8b2GZMWvff3prPgefXbMiu9W1/Fv9rVvLMnqe2uOHaBp/aq8/vvvkxXfo9cOWfGrX52fFd9nwLCs+PVr38yK79F7UFZ804o/ZMXX9d01Kz7W5/3dE+tb2xS4fXLHz4a8378cemsx0avj41/xp3uz+t9h2KFZ8Sjz4Z1Yl9l/3s+t9auX5vW/ZlZWePe63lnxqhuQFb/25d9kxfcZNCor/vWfXJQVP/BTefGrZlybFU+3vM+/efVfsuLVrePff2rO/N6zLsXJXAdExBPAe7f2OMzMrHblJHJmZladN0DpemvmzMzMzMzMDM/MmZmZmZlZF+SZuW18Zk7SdZJOrlA+S9LYKrF1kr4p6Zl0YPjjks7fQuMaLukBSU9KWizpi1uiXTMzMzMz2354Zq51F1McCL5fRKxJZ9R9ub3Bkrq3dmQBsAH4ckQ8mtqdJ+netBbPzMzMzMyq8G6WXXBmTtJMSfPSjNakVLZS0iWS5ktqkDS0QtyUNFPXraz8eElzJD0qaZqkekl9gbOAL0TEGoCIWBERF5W09cWSNi6RNFnSuDTj9nNgYbp2rqRF6XVOauuldAYdEbECeBLI23LPzMzMzMy2K10umQPOjIgxwFhgsqTBQD+gISIOAGZTJGJvk3QZsDNwRkQ0l5TvBFwAjI+Ig4FG4FxgJPDnlGhVcjXw6dRGN+A04Gfp2qHA+RGxt6QxwBnAYRRn0p0l6aCysY0ADqI4VJyya5MkNUpqvPZnv2rPZ2NmZmZmtl1obo5Oe9WqrviY5WRJJ6b3w4FRwDqKc98A5gHHldS/EHg4IiZVaOtwYG/gIUkAPYE55ZUknQF8ERgMvD8ilkhalhKzocBjEbEstTE3Ip5LoUdRnEX3VmrnVuBo4LH0dT1wC3BORGxyGFJETAWmAqx4/u7a/VNkZmZmZmadrkslc5LGAeOBIyJilaRZQG9gfUS0JDtNvPO+HgHGSBoUEa+VNwncGxETyvrpC+whqX96vPJa4FpJi4DuqdpVwESKdXXXlIS/VdZ+a/fSgyKR+1lE3Nr2nZuZmZmZWalanjHrLF3tMcsBwPKUyI2mmFmr5i7gUuCOtNlIqQbgSEkjoUjiJO0VEasoHqX8L0m907XuFDN3LWYAJwCHAHe30vds4GOp3X7AicCDKqbwrgaejIjL23EPZmZmZmZm79ClZuYoErPPSloAPEWRjFUVEdNSInebpI+UlL8iaSJwo6ReqfgC4GngfGAKsEjSCmA1cD3wYopdJ+kB4PXWdq1Mu1VeB8xNRVdFxGOSjgJOBxZKejxd+z8R4YVxZmZmZmbt4N0su1gyFxFrgQ9XuFRfUmc6MD29n1hSfg0bH4ccV1J+P8XsWnlf64Hz0msTaeOTw4FTSmJmAbPK2rkcuLys7Le08QimmZmZmZlZNV0qmasVkvam2HBlRkQ80xl91vUakNeAMp+obV6VFd5zyGF53a94Miuebn07HNpzpzFZXWvtX7Li6V5fvU4buvXbJys+3ng0K/7VP/0uK37I6FOqV2pL5P2vXY9uvfP6Z+v+r+GKlxqz4ut3PyYrvnnFH7LiVy+dnxXfb5cjsuI3rHy248Hr/sDalUs7HP7q8I93vG9gh6YlWfG53zvZP3cydeves3qltuIH5v3c0sq8P7vrVvwpKz73Zxdrns8KX9RvbFb8qhnXZsX3PfGMvP5v+WFWfLce5St7NlPzmrz47URzeM2ck7kOSId7v3drj8PMzGpXTiJnZmbWHl1tAxQzMzMzMzNjG0/mJF0n6eQK5bMktTn/L6lO0jclPSPp8fQ6fwuNq7ekuZLmS1os6Rtbol0zMzMzs+1Fc3Nzp71q1TadzGW6GNgN2C8iDqQ47LtHe4PTUQatWQt8MCIOAA4ETpDUnmMWzMzMzMzMgC64Zk7STGA4xWHhV0TEVEkrgSuAv6c4QuCjEfFyWdyUFHdmWfnxwDeAXsCzwBkUOxacBYyIiDUAEbECuKikrVcj4or09SXAy8AC4N+BlyiStL0lnVvS51UR8b10wPnKVNYjvbyC08zMzMysnXxoeNecmTszIsYAY4HJkgYD/YCGNNM1myIRe5uky4CdgTMiNm7PJWkninPlxkfEwUAjcC4wEvhzSuAquRr4dGqjG3Aa8LN07VDg/IjYW9IYiuTwMIpjDM6SdFCK657OmFsK3BsRD+d8KGZmZmZmtn3pisncZEnzKQ4MHw6MAtZRHBUAMA8YUVL/QmBgRJydZsRKHQ7sDTyUEqtPA+8p71DSGWnN3POShkfEEmBZSsyOBx6LiGWp+tyIeC69P4ri+IK3ImIlcCvF45pERFN6fHN34FBJ+1bod5KkRkmNV/9kZvs/ITMzMzOzbVxzc3Taq1Z1qccsJY0DxgNHRMQqSbMoHrdcX5KoNfHO+3oEGCNpUES8Vt4kxazYhLJ++gJ7SOofESsi4lrgWkmLgJa1cFcBE4Fd2HgYOcBbZe23KSJeT/dxArCo7NpUYCrA6qUNtfunyMzMzMzMOl1Xm5kbACxPidxoipm1au4CLgXukFR+gmMDcKSkkVAkcZL2iohVFI9S/pek3ulad6D0BNIZFAnYIcDdrfQ9G/hYarcfcCLwoKQhkgamdvtQJKi/b8e9mJmZmZkZnpmDLjYzR5GYfVbSAuApimSsqoiYlhK52yR9pKT8FUkTgRsl9UrFFwBPA+cDU4BFklZQbKxyPfBiil0n6QHg9YhoaqXfRyVdB8xNRVdFxGOS9geuTwliN+DmiLi9UhtmZmZmZmaVdKlkLiLWAh+ucKm+pM50YHp6P7Gk/Bo2Pg45rqT8forZtfK+1gPnpdcm0sYnhwOnlMTMAmaVtXM5cHlZ2QLgoErtmpmZmZlZdTU8YdZputpjljVB0t7AH4D7IuKZrT0eMzMzMzPb/nSpmblaERFPAO/tzD4X3HxBVnzT+nVZ8Qd+5saseGJDVnhzU974u3evr16pVXn/57F+zetZ8T3675wVr9XP5sXX9cmKH7DLJhu1bpZ1rz+ZFf/aoKOz4gf12j0rvueqJ7Li6/rumhXfbeXSrPi/smNW/K6Z41+bOf6XNCgrftfeHf/+res9mA1rllWv2Ir3Rt69r+2zd1b8eQ33ZcWfX5/3vTtwWN4DLEufzht//6F/zorvN2jPrPiXn3ogK37AsLw/P7njP6j7H7Li6TYgK3zVLT/Miu970r/m9X/btKz45tXPdzj2rf77Z/UNkPeTv/N4Zs4zc2ZmZu+KnETOzMysPTwzZ2ZmZmZmXU6Tp+a65sycpOsknVyhfJaksVViZ0n6sySVlM2UtPLdGGsb47hL0uuSvIulmZmZmZltti6ZzG0BrwNHAqTz3vIWdXTMd4DTt0K/ZmZmZmZdXnN03qtW1Uwyl2bH5klaLGlSKlsp6RJJ8yU1SBpaIW5KmqnrVlZ+vKQ5kh6VNE1S6Q4YNwGnpfcfB24tiauXdF+KWyjpoyXXLpT0e0n3SrpR0ldS+SxJ35Y0V9LTko5O5d0lfUfSI5IWSDq7pa2IuA9Ykf3BmZmZmZnZdqlmkjngzIgYA4wFJksaDPQDGiLiAGA2cFZpgKTLgJ2BMyKiuaR8J4rDv8dHxMFAI3BuSeh9wAfSod2nAb8oubYGODHFHQv8pwpjgZMozof7eBpnqbqIOBQ4B/j3VPYZ4I2IOITiLLuzJLV7eyhJkyQ1Smqc+dBf2htmZmZmZmbbgVraAGWypBPT++HAKGAd0LKmbB5wXEn9C4GHI2JShbYOB/YGHkpL43oCc0quNwG/BU4F+kTEktIldMA3JX0AaAaGAUOBo4D/iYjVAJJ+WdZny+zePGBEen88sH/J+r4B6b6ea/VTKBERU4GpAA//1/ganuA1MzMzM+tctfz4Y2epiWRO0jhgPHBERKySNAvoDayPiJbfpqb/v73zDpekqPr/57s5L2FJSpQgQeIuCALKKiCiSFIQ8SdJQHxfwNf8IggCCiioiL4qIkEl56QscQmSdoFlFwRFEFCCgGQJu+ye3x9Vw/YOc+90d83enr73fJ6nnpmp6W91zUxPnz5dVeewYH+nARMlLWZmzzc3CVxjZrv1sttzgIuBI5rqdweWACaa2RxJj8a+iN55s0U/BRxoZlPaaB3HcRzHcRzHcQrRLdMsxwMvREdudcLIWjuuAo4FrpQ0tum924FNJa0CIGmUpNWatrkZOAZozoY9HngmOnKTgRVi/S3AdpJGxPV3H8/RxynAAZKGxn6sJml0Dp3jOI7jOI7jOL3gAVC6ZGSO4Jh9UdJM4C8EZ6wtZnZ+dOQuk7Rtpv5ZSXsCZ0saHqsPBf6a2caA41s0eyZwuaTpwAzgwbj9NEmXAfcCjxHW4b3UpounEKZc3h1TITwL7AAg6WZgdWCMpH8C+/gInuM4juM4juM4eekKZ87M3gQ+1uKtMZltLgAuiM/3zNSfCpwaX26Rqb+eEHSkeV9bNNfF+jHx8Tlgkx66eryZHSFpFCEgywnNbUb9ivH5POCQWJr3t3kP+3Acx3Ecx3Ecpw3z5rXfpr/TFc5cjThZ0pqENXRnmNndfbXjccu+J0k/d87stA5oWJL8Jca036gXhv7n30n6IYs2z8TNzws2vP1GvTA8ue/jk/RzXrw/ST9s9DsyghRi6BIfTNI/cPbnk/Sr775V+4164enbjkjSL7NWnhnZPaNBo5L0b7zyVJL+pSXnJOmXSZzN//pLaZF8k/tv5c+dQ4aPxYYl/H9m/6u8Fnj4jVeT9Edv/OEk/Tn77pGk3/2oXyfpxy61epJ+xLilk/RzZ/8nST9+mbT+jxyblkI3tf+DF1kjST/v9bT//qCh5e0+wGuXnZ+kH/XJT6ft/+LTSmvH8HrSvgPjOtCG0xe4M1cAM/ts1X1wHMdx6kGSI+c4juO0Za518WK2PqJbAqA4juM4juM4juM4BfCROcdxHMdxHMdxakc3R5nsK2o5Mifp9Ewi7mz9VEmT2minSnpc2Szh0iWS0hYXFEDSepJuk3S/pJmSdu2rfTuO4ziO4ziO03dIWkzSNZIeio+L9rDd8pKulvSApD9LWrFd27V05jrAi8CmAJIWAdJWCRfnNeDzZrYWsA3wk9gPx3Ecx3Ecx3FyMG9e35VEvgVcZ2arAtfF1634LfBDM1sD2Ah4pl3DXePMxdGxu+Jo1X6x7lVJ35N0r6TbJb1jNbmko+JI3aCm+q3j6Nfdks6Pib4bnAN8Jj7fCbgooxsj6bqomyVp+8x7h0l6MHrUZ0v6WqyfKuk4SXdK+qukzWP9YEk/lDQtjsDtD2BmfzWzh+LzJwk/1BLp36LjOI7jOI7jOF3G9sAZ8fkZxLzTWWLE/CFmdg2Amb1qZq+1a7hrnDlgbzObCEwCDpK0ODAauN3M1iXkdds3K5D0A2BJYK+Y061RP4GQJHxLM9uAkOD7KxnpdcAHJQ0mOHXnZt57A9gx6iYDJygwCdgZWJ/gADZP5xxiZhsBXwYOj3X7AC+Z2YaEnHf7Slqp6TNsBAwDHm7+QiTtJ2m6pOnnXf1Aj1+c4ziO4ziO4ww05lnflex1eSz7FejqUmb2FEB8XLLFNqsBL0q6SNI9cUBocLuGuykAykGSdozPlwNWBWYDV8S6u4BswqjDgDvMrNUXuTGwJvCnuDRuGHBb5v25wC3ArsBIM3s0u4QO+L6kDwLzgHcDSwGbAZea2esAki5v2mdjdO8uYtJwYGtgncz6vvHxc/09trEM8Dtgj6wz2sDMTgZOBnjgkv18iafjOI7jOI7jVED2urwVkq4FWiWo/HbOXQwBNicMHD1OGGzaE/hNO1HlSNoC2BLYxMxekzSVkJh7jtnbCSTmsmB/pwETJS1mZs83NwlcY2a79bLbc4CLgSOa6ncnTHmcaGZzJD0a+yJ6580W/RRwoJlNad5Y0jjgSuBQM7u9TduO4ziO4ziO42TopmiWZrZlT+9J+pekZczsqTiY02ot3D+Be8zskai5hDBA1asz1y3TLMcDL0RHbnVCx9txFXAscKWksU3v3Q5sKmkVAEmjJK3WtM3NwDHA2S368kx05CYDK8T6W4DtJI2I6+8+nqOPU4ADJA2N/VhN0mhJwwiO5G/N7Pwc7TiO4ziO4ziOU08uA/aIz/cALm2xzTRgUUmNOBofBv7cruFuceauAoZImgkcRXDG2hIdoV8Dl0kamal/ljAseXZs83Zg9SatmdnxZvZcU7NnApMkTSeM0j0Yt59G+CHuJUypnA681KaLpxB+hLsl3Qf8ijBqtwvwQWBPSTNiWS/PZ3Ycx3Ecx3Ecp1YcC2wl6SHCsrFjASRNknQKgJnNBb4GXCdpFmGG36/bNdwV0yzN7E3gYy3eGpPZ5gLggvh8z0z9qcCp8eUWmfrrCUFHmve1RXNdrB8TH58DNumhq8eb2RGSRhECspzQ3GbUrxifzwMOiSXL72NxHMdxHMdxHKcEc62L5ln2gpn9G/hIi/rpwBcyr68B1inStqwmX0I3IOksQmCVEcAZZnZMX+37lX9MSfqhbO6cpP0PXvLDSfp5/745ST9k9HJJet56sbR07py2UWF7ZfDIdyXpU/oOgBLv2dhbafrB45Lk/374D0n6J+68Okn/3j0vSdIP09wkvV7/e5L+9RErJ+nnPHxmkn7csh9I0r85/D1p+r83z6Qvxril1k7SJ5H43/vB3lsn6T+5y7ZJ+uU22r79Rr0w6t1pdodBI9L0895Ikqf+d230Wkl6bHaa/j8PJslzBOHrlTBIUd3+5yVeNw0a1jIndG5G7bhXae1rl6ad9wBGLrZ6u1gRXcHBk0f0mSNz4g1vdOV30hUjc3XBzD5bdR8cx3Ecx3Ecx+lIMu/a0y1r5hzHcRzHcRzHcZwC1NKZk3R6Jndbtn5qTO7dm3aqpMeVTSwnXSLp1YXR1x76sIKku2Lgk/slfbGv9u04juM4juM4/YG+TBrerQzUaZYvApsCt0haBFimj/f/FPABM3szpjm4T9JlZvZkH/fDcRzHcRzHcZya0jUjc3F07K44UrVfrHtV0vck3SvpdklLtdAdFUfqBjXVby3pNkl3Szo/Ok0NzgE+E5/vREg10NCNkXRd1M2StH3mvcMkPSjpGklnS/parJ8q6ThJd0r6q6TNY/1gST+UNE3STEn7A5jZ7BjBE2A4XfQ7OI7jOI7jOE4d8JG57nIi9jazicAk4CBJiwOjgdvNbF1CKoB9swJJPwCWBPaKaQAa9ROAQ4EtzWwDQk64r2Sk1wEfVAh19Bng3Mx7bwA7Rt1k4AQFJgE7A+sTHMDm6ZxDzGwj4MvA4bFuH+AlM9uQkCZhX0krxT4uF3Pg/QM4zkflHMdxHMdxHMcpQjc5cwdJupeQ4Hs5YFVgNnBFfP8uYv62yGHAIma2v70zv8LGhBQCf5I0g5BpfYXM+3OBW4BdgZFm9mjmPQHfj47WtcC7gaWAzYBLzex1M3sFuLxpn43RvWw/twY+H/twB7B4/FyY2T/MbB1gFWCPHkYd95M0XdL0085MC8/uOI7jOI7jOP2JefP6rnQrXbFmTtIWwJbAJmb2mqSphFxuczKO2lwW7O80YKKkxczs+eYmgWvMbLdednsOcDFwRFP97sASwEQzmyPp0diXdrklGtMms/0UcKCZTelJZGZPSrof2JyYFD3z3snAyZCeZ85xHMdxHMdxnP5Ft4zMjQdeiI7c6oSRtXZcBRwLXClpbNN7twObSloFQNIoSas1bXMzcAzQnFlxPPBMdOQmM39E7xZgO0kj4vq7j+fo4xTgAElDYz9WkzRa0rKSRsa6RQnBWP6Soz3HcRzHcRzHcYC5Zn1WupWuGJkjOGZfjFMb/0JwxtpiZudHR+4ySdtm6p+VtCdwtqThsfpQ4K+ZbQw4vkWzZwKXS5oOzAAejNtPk3QZcC/wGGEd3kttungKYcrl3TEVwrPADsAahLV4Rhi9O97MZuX5zI7jOI7jOI7jONAlzlyM7PixFm+NyWxzAXEaopntmak/FTg1vtwiU389IehI8762aK6L9WPi43PAJj109XgzO0LSKEJAlhOa24z6FePzecAhsWS5Blinh304juM4juM4jtOGbo4y2Vd0hTNXI06WtCZhDd0ZZnZ31R1yHMdxHMdxHGdgoncGgnS6kdeevjHph3r56fuS9j92tb2S9Lx4R5L8L1f9NEm/xie+WVo7763Xk/b958t/mKR/305HJOltblr/NXhkkh5LDAE1ZJEk+f3zxifp19KzSfonBr87Sf9u+3eSPpW3hqX1f8jspxJ7kHb8zB72riT9sNf+nKRHCfdM572Rtu8hiyXJLfG//9qTNyXpn3/sriT9chM/m6Rn3uwk+Qv/nJ6kX3T5DyTpU/v/3N9vSdJPWGXrJH1q/1N5ZeSaSfoxJNreOS+U1o7avrf4f/mwm+9pF/ivK9jz/cP7zJE5/Y43u/I76ZYAKI7jOI7Tv0hx5BzHcRwnB+7MOY7jOI7jOI7j1BC/beg4juM4juM4Tu3wACgDcGRO0hGSvtai/l2SLmilydHmnpJ6XZgh6ZQYPKWV9mdl9us4juM4juM4zsDFR+YiZvYk8KmS8j2B+4Ane2n/CyXbdhzHcRzHcRynCR+Z6ycjc5JGS7pS0r2S7pO0q6RHJU2I70+SNDUjWVfS9ZIekrRv3GZFSffF54Ml/VDSNEkzJe2f2dc3JM2K+zpW0qeAScCZkmZIahn+S9JUSZPi870k/VXSjcCmvXyu/SRNlzT91N9dnvgtOY7jOI7jOI7Tn+gvI3PbAE+a2ccBJI0Hjutl+3WAjYHRwD2Srmx6fx/gJTPbUNJw4E+SrgZWB3YA3m9mr0lazMyel/TfwNfMrG0cYknLAN8FJgIvATcA97Ta1sxOBk6G9NQEjuM4juM4jtOfmOsp1vrHyBwwC9hS0nGSNjezl9psf6mZvW5mzxGcqY2a3t8a+LykGcAdwOLAqsCWwGlm9hqAxoTHjAAAIABJREFUmT1foq/vB6aa2bNmNhs4t0QbjuM4juM4juMMcPrFyJyZ/VXSRGBb4Jg4ivYW853VEc2SNq8FHGhmUxaolLZpsW2pLnegDcdxHMdxHMcZsMybV3UPqqdfjMzFSJKvmdnvgeOBDYBHCVMZAXZukmwvaYSkxYEtgGlN708BDpA0NLa/mqTRwNXA3pJGxfrF4vavAGNzdvcOYAtJi8f2P51T5ziO4ziO4ziO8zb9YmQOWBv4oaR5wBzgAGAk8BtJhxAcqCx3AlcCywNHmdmTklZk/ojZKcCKwN2SBDwL7GBmV0laD5guaTbwB+AQ4HTgl5JeBzYxs9d76qiZPSXpCOA24CngbmBw0qd3HMdxHMdxnAGGR7PsJ85cnA45pcVbq7XY9ogemlkceD5uM4/gpB3SQn8scGxT3YXAhW36uEXm+WnAab1t7ziO49QcewvUL8ys4ziO062Y2YAvhNQCfwV2qrovCZ9hP9e73vV9r69z313vetfXV1/nvru+/nov3VP6xZq5VMxsupmtZmYXpbYl6eKYby5bPtqJfrZhP9e73vWV6Ovcd9e73vX11de5766vv97pEnz+R4cxsx2r7oPjOI7jOI7jOP0fH5lzHMdxHMdxHMepIe7M9R9Odr3rXV+Jvs59d73rXV9ffZ377vr6650uQXERpOM4juM4juM4jlMjfGTOcRzHcRzHcRynhrgz5ziO4ziO4ziOU0PcmXMcx3Ecx3Ecx6kh7szVHEnjJI1N0K8gacv4fGTRtiR9RtK34/PlJE0s25e+RNLSkpaOz5eQtJOktarul9P9dOrYkbSxpM/H54tLWj6xX6sX2HZoi7oJObWDJA2Kz4dJ2kDSYvl76pRlYZ236nbs1NXugNsepzx+7Dg94c5cTZE0SdIsYCZwn6R7ixo0SfsCFwC/ilXLApcU0P8MmAx8Llb9B/hlkT60aHOrnNuNk7Ryi/p1cmj3B24Dbpd0AHAF8AngIkn7FOxyc9uzcmyznKRzJN0s6ZDsxZGktt+/pNUl/VHSlZJWlnS6pBcl3SlpjcT+75Vzu9UlfUTSmKb6bXLqN5K0YXy+pqSvSNq2eI8XaLM2x46kQ4HDgUNj1QjgrLz6Hrg6x34nS/on8KSkqyWtWFC/A/AU8ISk7YGbgeOBmZK2K9Xr+W3/Mcc24yQdI+l3kj7b9N7/5dAvLekXkn4eHegjJM2SdJ6kZRL73/b464Zjrwdqc+wsDLsT263N+aOHtnu1PW53Fo7diW11/bEj6SRJP+2p5Om/08WYmZcaFoITt3nm9WbAzIJtzACGAfdk6mYV0N8dH7P6exM/1+M5ttkFeDL2/35gw+Y+tdHPAkYBiwOvAkvH+kWBGTn0O/VQdgaezaG/BvgisB5wEnArsHjzd9mL/iZgO2A34DHgM4Bi3XV98P0fBPyF4Pg/Cmxf8Ps/HLgdmA4cA1wPfCd+rm/352Mn086M+Jtl/ztt/7/AT3soJwEv59BPA9aKzz8FPARsXODYuwdYGlgJeBl4b6xfAZieQ79BD2Ui8FQO/YXAscAOwGXx9fACv99VwIHAtwjn0G8Cy8e6S8see3mOv6qPvbofO83fFR20O3l+vy75DUvbHtzuLBS7U6NjZ49YTgZuIZzzDoyf/8cpn99L9WUITl15xcxubrwws1skvVKwjTfNbLYkACQNAYrkqpijMGXGon5xYF47kaTLenqLcKJqxyHARDN7StJGwO8kHWJmF8U22vbbzF4DXpP0sJk9DWBmL0jK8/nPBc6k9Xc1Iod+CTNr3Ek+UNLngJskfbKHNpsZa2aXA0g6yszOifWXS/puO7GkmT29BSyVY//7Er7/V+Pd+QskrWhmJ5Lv+/8U4YJiOPA0sKyZvSzph8AdwPd66Xvdj50Gb5qZNTSSRuXU7QV8FXizxXu75dAPM7P7AczsAkkPEO7sfouc//3GZ5b0uJn9JdY9Fs8F7ZgG3Ejr73qRHPqVzWzn+PwShal218f/Th6WMrOTACR9ycyOi/Un5by7nXL8VX3s1f3YaVDK7sRt637+SLE9bndK2p3Y/1ofO2Z2RvwcewKTzWxOfP1LcoysO92NO3P15U5JvwLOJpyIdwWmStoAwMzuztHGjZIOAUbGaQJfAi4v0IefE+6MLxFP5rsAbU/qwOaEKTKvNtUL2CiHfrCZPQVgZndKmgxcIWlZ8hmleZKGxpPZx9/euTSCfFOPZwLHm9l9zW8orj9sw1BJI8zsjfgZfi/paWAKMDqHfnDm+Y+a3huWQ78U8FHghaZ6Ee7Wtt2/mb0KYGaPStqCYFhXIJ9ResvM5jLfKL0c23pdUruLsrofOw0ukvRzYHycYrQPcGoO3TTgPjN7x+8k6Ygc+jmSls5cCNwv6SOEKTvvmP7TCkmDzGwesHembjD5jr0HgP3N7KEW7f4jh354Zv+Y2fcUpv7dBIzpXQos+Bv9tpf3eiLl+Kv62Kv7sdOgrN2B+p8/UmyP253ydgfqf+w0eBcwFng+vh4T65w609dDgV46U4AbeinX52xjEOFu1/mEtXP7lujHWsDBwJeB9+XU/JFwZ6jVezfl0N9KuEOfrRsLXEcY8WinXx4Y0qL+3cCWOfSbA8v38N6kHPr/AT7Uon594Joc+v2BMS3qVwF+kkP/G2CzHt47K4f+emC9prohhIvjuTn0dwCjGsdgpn48baab1P3YadJ8DPgx8BPgYzk1izW+uzIF2BJYt0X9eHJMNQI2BEa0qF8R+FwO/aeI0+tavLdDDv0PWn3PwDbAQzn0R/by37kgh7708dfDsTeuD89bC+vYWaQvjp0mTWG7k/r79fIb1sL24HantN3pD8dOZvu9CNNkT4/l78AeefVeurNU3gEvFf74cHCeuh60g+nAOoWS/V4XWKVF/VBg9w7u57ZE/f/WWd9Lu8sS5+u3eG/THPrhPdRPANZeWMdN3EfHjh3CWp8t4/NRhGlIeXSDgSkL+XNeWHP9HnXW99BmJ4+9pQjBDz4BLFmiLyPpwanuZn2VdqfTv2Gb/VRme9zudP+xU9b2ZPRLA9vH0vI79VKvovjDOjVD0iLA5wl3Nd+eLmtmBxVo424z26Cp7h4zWz+n/mzga2b2RN59FkHSbWa2SYX63N9FD/p3fL/dppe0LuFuL8DNZnZvwX1Upo/Ta1Y1s2sljSTctcy9bjRFrxAJdj9gMTNbWdKqwC/N7CM59ZcTDPjLeftbhA4cu1Xr6/DfWYow2gRwp5k9U6D9FO0uwA+BqYQpXpsDXzezC3LqtyNEkRxmZitJWg840sxyrTvsAv1CtTtxHwPW9rjdyaWvne2RtLqZPdhYitOM5Vua43QpnpqgvvyB4MjNAu7KlLZI2i1eTK4k6bJMuQH4d4E+TAAekDRF0kWNUuxj9EqeYCILU596pyPPPP7K9JIOJiymXzKW30s6MHfjFeqVnlYjSQ/8F7ApISofFtaALVlA/ypwr6RfSfpRoxTQtyP12K1a3+3/nV2AO4FPE9Zs3SHpU7kaTtBGvk2IhLeHmX2esF7nsAL6I6LmRQAzm0GwJSn6lfpQv7DtDgxs2+N2p3d9XW3PV+LjCS3K8QX273QhHgClvowws6+036wltxLy/Uwg/JEbvEJYYJ2XY0vuPy9VX1CmUnX/2+n3Ad5vZv8BkHQcIY/NSTnbr1L/X4QLwjsgGDRJRZypVH1qJNhrY3Fa0+3/nYZD9QyApCUIv2ee0bEULYT1PtmRvH9T7MbsW2b2UuPYLUErfZHvO1W/sO0OVH/8pZKyf7c7vVNL22Nm+8XHyb1tJ2krM7umQH+cLsCdufryu3iH5woyoabN7PmeJW9v8xhhAWzpaSCxnetS9DWgq0cHOqAXMDfzem7BfVapT3WmUvU3KiESrJn9psC+ytDtx17d9SkOVaozdpWkKYRIxhAiGf+hgP4+hYTrg+MUrYPIF02wK/QDwO5Atce/253eqbXtycFxhJyETo1wZ66+zCasm/g2808EBrwnbwOSNibcjVqDEFp4MPAfMxuXU/9KZt9Dov7NvPo8u+gLvaRxwKrAI2aWDZv8/xL3f36X608jTPG6OL7egRBxLC9V6lMNWqr+W4Q7vLMIUd7+AJySVyzpIVoYcDNbrUAfGm0tbmbN06O/WRd9D/ypy/UpDlWSM2ZmX5e0E7AZ4Rx3spld3EaW5UCC3Xgz9mEKcFRd9H1gd2Bg2x63O71Ta9uTg9Rj36mChRVZxcvCLcDDwITENqYTwgrfQzCIewHfK9nWIELY8aNKaMcBE4FFm+rzpjoopAd+3/juCHlv/kGY5vQY8Okc+9uRsPgYYAlCaORZhISuy3a7vqmtDQh3xg8G1i/x21Wip0VaDQgBnfpCn1oI0QgbZQXga3n+O4QpZo1jdxLwCPC3eOx+qAb69wPj4vORhPxglxPuBo/vdn1TWzsR8m39GNixL7SE8/S1fXWcdnshwe5E/YCxPSnaTuib2qql3ckcc7W1PTn61zZNg5fuK5V3wEvJHw4uIyFnUGxjenycmam7NbHN23Nsk2rQUvWzsp8XWDE+n0COsNfAnzPPzyXk71kW2JN8+Xoq1UfdIEIC4bK/c6X6qgthAfo1wF8JDs3fCXfXU9q8Jcc22WP3BsLaK4DVGv/nLtffT8yVBJxMyLG3GXA4cFG366OutEOVos20cRkFHc8m/Wrxs19NyN11PTlzk3aDvoc229qduN2AtT0p2k7oo87tTmJhIdiepvbdmath8WmW9WUuMCNGoMyumcudmgB4TdKw2M4PCEFRRucVS8qGkh5EuFOfZ4h+XTN7Lj4/HNjczB6VNIGQQLPdNI1U/SBJ4yyEhZ8HPA5gZs/F+evtGJx5voqZ7Rqfny7pyzXQY2bzJN0raXkzezyPppv0kjYlRMVbgTDVSqFZyzXNOFVPmJbzP4QIsnPbbNtq/+tkXjb+O+NzSIdKGmJmbwEjzWwagJn9VdLwGugHRS2EJMeNMNm3SJpRAz1mNlfSa5LGm9lLeTSd0GZ4A5gl6RrgP5m28577zwd+SZiaVfjYrVqfYHdgYNsetzuJeugXtme4mb3ZS92jRdt0qsedufpyCcXC2bbi/xGM4X8TTg7LATsX0H868/wtwklg+xy6VIOWqv8ucIOknxPWxpwv6VLgw8BVOfRTJR0JHBOf72Bml0iaDOS5QKta32AZ4H5Jd7LgRWGufE8V65MMWgf0L5nZH0voGvw88/wtwt3VXXvYtln3B0nHEtZe/QS4CPgIkMcZqVp/n6S9zOw0QmqGSWY2XdJqwJwa6BukOFSpztiVsZTlLTP7RY31Ze0ODGzb43anM/q6257bCNNMW9aZ2U4JbTsV4UnDByiSBgNnmNnnEtrY2Mxub1fXQrcLIUDCz4H3EtbtNQzav83sqwtTH9tYhTBXfTXCTY1/ApeY2ZQc2qGEBfx7x6plCUbhcuBb7e74Va3PtPOhVvVmdmO36yXdYWbvz7OfhaQ/lnCn+iIWHBnPlXhV0goWospm63LdLZa0BXAA84/dfxBu7JxmZm0dkir1ksYDJxIS9j5HuID4RywHWZvkvVXrM+3s0arezM5YmNqo/wTwBzObl2f7FvojgGeAiykYCblL9KXsTtxuwNoetzsd09fS9khaGng3YarwZ5k/mj2OkHR89bJ9cqrHnbmaohDS+RhgTTIJSgsM1aMQUW07M5tdsg93Z6YpNeruMrOJObSlDVon9J0iXhwOsXdG8+t6vaT/Bs60BaOo1ULfAWcqVX9Di2ozsw/n1Lf677yjrr8iaSwh8u4Q4J9m9q+a6Us7VB1wxn5PSCtzIcGBfqCg/u8tqotME6taX9ruxG0HvO1xu5Okr6XtiTeR9iRMS57GfGfuZcKN/Yvy7N/pTnyaZX05jTBn/8fAZEIkyqIhZR8F/iTpMhacbvCj3kSSNiJcTCwhKTs1aBwwNM+OzexvJIQvT9X3hKTvmNmRObfdkbBw/9/x9SLAFmaWa/pr1XpgaWCapLuBU4EpVuzuTpX6xp3NSZk6I9whX+h6a5N4tSfidL41gPFacO3PODI3ZUq23Zg+WAf9WsD9ZvZK1I4F1jSzO2qi/wxwoqQyDlWKFjP7nEJI+92A0yQZwR6c3fg8bfQrFdlft+g7YXfi/ge07XG7k6yvpe2JI/9nSNrZzC4s04bTvfjIXE1p3ImUNMvM1o51N5vZ5gXaOLxFtbUzKApz5D8MfIEF85u8AlxqZn/J24cWbec2aAtJ/7iZLZ9z2xlmtl5T3T1mtn4d9HF7AVsTbgZMAs4DfmNmD9dBXxWSvtKi+iXgLjPrce1YvBDaCdiWBXOLvUK4GL85oU+5j92q9ZLuATZoXERJGkSIhplrZLJqfdQ0HKq9CBdjuR2qFG2mjQnA54AvAw8Qpvz91MxOaqNrtSbmJUKkxWdavNcV+oVpd2L7A8L2uN2pr92B8rYno/8+8AMzezG+XhT4qpkd2tmeOn2Jj8zVlzfiBchDcdrAE8CSBdv4s5ktEH1L0qd72riBmd1AWMR9mpk9UnCf7fgCUNog5tFLermntwi5p/IyqEVdkf9U1XrMzCQ9DTxNCCawKHCBpGvM7Bvdqu+AQUvSEy4AJjE/2evHCVNXvijpfDP7QSuRheTOF0vazMxuybGf5n7P7OktQs66rtZnt8/eDbcQZa7IsVu1HjN7OY6ujSQ4VDsCX5fU1qFK0UrajrBuaWXgd8BGZvaMpFEEp65XPSHh8CaE1BIAWwC3A6tJOtLMfteN+oVsd2Dg2B63Own6utqeDB8zs0MaL8zsBUnbAu7M1RnrgvwIXooXYENgDGER8mmE9RPvL9jGO/KJtKrrRT+BsG7vMkLOoKuBq3PoXu6hvEKIdLaw9Y8DS/Xw3j8KfP5TCYl/Vyasv/kxcHqN9AcRImpNIUSIGxrrBwEPd7MeOIuQZ+eEWB4kXNhOA76RY9+p+inAmMzrMYRodCPJ5GPqRT8c2B/4KSHn1snAyTl0/wLWI4S1zpYVgSe7XZ9p56L4+w+N5WDCuqO66LcjBPCYCXwdWDLWjwIeW1jauN1vgQ/28N5HcugvJ3P+IzjhFwGLkSMHVxfoS9mdqB3wtidF2yF9be1O3K7utmcmMDzzeiRhynmu389Ld5bKO+Cl5A/XIkFpq7oetB8j3L39F+FislFOB+4s0IerCBekDxJCk/+WMHzfTpdk0DqgP5pwN7vVe8cV+PyjgWOB6bF8HxhdI/2RwAo9vLdGN+s7YNBS9Q8AwzKvhwMPxOf35NCfS7ggfYQwUnEdYYpcO91vgM16eO+sbtdntl0SOIcQ1fBfhAucJWukL+1QpWg7Ucgkro6vRXSich67VetL2Z2oHfC2J0XbIX1t7U7cpu625xvALQS7s3d83taJ9NLdxdfM1RQlRMOTtC7h7vqRwHcyb70C3GA5ozxl1u3NNLN14jz0G8xsiza6o4HLzOzOFu8dZ2a9Li5P1TsLIundzE8I+6TNT6rctXpJDxAS+M6Or4cDM8xsjTzrNzqgP4wwNe7SWLUdYaTgBMII2+5t9PeY2fqZ/85QwkL8vIvonQGGpH2Axczsh/H1E8BYgjP0DcuZu03S/wHLMz/B9c6EiIxfB66wNgEWukBfyu5ErdueLqGOdifqam17YhvbAFsSzh1XWx9HYnUWAlV7k16KFTo3qjaYEJ43pS+3x8ergY8Ca5NjmkK3FMIJcXzm9SLADgX01wCLZF4vSrgg72o98L/AdzKvHwdmEe50/2+366PmMOBuQkTXwwl3iL9DuGvc9rhO1cc2JhGm530ZmFTw2LszPt5EiG65WJH/DrAxMDbzeiwFpll3gf6MFsfuqd2uJ9zN/nrm9RPMn2Z3wMLSxu2nAYtnXt8TH0cANxX47AI+RZge95P4XDXS19ruxL5XZntStCl6+oHdibpa256oXwHYMj4fReZc7qWepfIOeCn4g8G6wB7AY/GxUXYCFi3Y1lVkhutL9OWTwHhgHeBm4F5gpwL6VIOWqp/Roq7tNIXetq2DPhqS0c0agoN/S7frM7pUg5akj20sSRhlWB5YvoBuf8JF0OR4UfEc8KUivz2ZC2DCeo8i610r15c5dqvWk+BQpWjjdnc1vT4k23bez173QqLdiW0MWNtT4X+nX9idqKmz7dk3nosejq9XBa4r0wcv3VM8mmXNMLN7gXslnWVmc+Dt0LLLWfEkmI9RIs9c3OdgYEUzu4ywoDZ3SoQMh1uI7tfY74sK6RLy5qtJ1adG5ZonaXkzexxA0gqEMONdrzez/2Renhjr5krKFVGtan3cfrqkx4n52bLfxcLWK+SIOwF4F2Hd1fKEO7xr5dAOBp6L/9cborYoVUdzTNUPkrRo45wlaTEKRtSrSD/IFkyUfD6Amb2R49hN0UJwYN7GzL4Pb6dVWDyHnrj9xoTZHWsAwwgXs/8xs3Hdru+Q3YGBbXvc7pTUZ9qppe2J/BewEXBH7MtDkopGQne6DHfm6ss18U89BJgBPCvpRjNrFfa2J56MZRBhmlRu4glwJ8IUz7JUHSJ5uqQfAT8nGKMDCVGu8vJt4BZJN8bXHySMuHS7foykoY2bAWZ2Orw9dz/PBVnV+mSD1gGDeBRhquG1Fta+TSbkDWtL/O98mRCBtiyPKCRObqyT+hIhmEpd9CcAt0q6gPDf24UQSKHb9SkOVaozdrWko+2d+aCOJEw5zMvPCInLzyeMEHyekKOu6/UdsjswsG2P251yeuL2tbU9kTfNbHZYagrxJlwRZ97pRqoeGvRSrjB/isAXgO/G5zP7uA9HE+5ubUKY8rIOsE4BfdUhkpOicsU2JgCfICxCnlDiO+xzffycpwKjmr6L04Bjul0ft7+XcAHc+B9MJkdo/w7qp2faGRSfF1mzeihhis0yhAuJccC4Avqqozkm6WMbawL/TbiQXbPEsd/neuD/gKNb1B8N/HJhaeN2o4Gzgb8RbgRcGJ+fQ4E1L5ljd2am7tYa6ZPsTmxjQNueFG1ZPf3A7kRN3W3PD4BDCA7kVoQ0Kd8regx46a7i0SxriqRZwNaEhfzfNrNpjeheBdpYghCmdi3icD+A5YyoJ+nmFtVmZh/MqR9NWAy8Zay6mnBS+U/Pqs7pO4mklQl3xz5jZu/rZn2cqvQ9wo2AxwgBCZYjhJ0/1NpE9apaH9uYbmaTJN0LrG9hmt+dZrZRO22H9NcCOxDSC0wgODUbmtkHcur/kXlphO/AzKzMlMtaE//HOwK7mdnHu1kftz2FkOfz3li9LuGCfF8ze2VhaJvaeQ/z7+L/2cwezqPL6G8inDNPISRNfgrY08zWrYk+ye7ENtz2JGqL6qu2G52wO7GdutueQYRgTFsTvoMpwCnmzkC9qdqb9FKuEJJdzgR+EV+/B7iwYBtXE/7UDwAfIty1yp3rpu6F9KheyxBGV+4E3iBEplq7RvqRhEhwawMjS3x/lemBawn5eU4ijFacSLG7+6n60YS1PkMIAYgOIhPcog+O3VpGg8xsP4xwQXIeIaLjacB2NdK/hzAqsR2wcsHfrrQ26t8RrKBVXS/6FeJ/b1w8Z/wIWKUu+v5QqND2pGg7pK+t3Yn6AW17vHRn8ZG5AYya8vXEuhvN7EM59UsQpry828w+IWlNQkLU03PqryEkOn8xvl4UOMfMPtpH+nfkdGlV10K3L+Fu5LKEi8HzgEvNbKWc+61av1Nv75vZRd2sj22MJlxICNidsB7pTFswwMRC06cSF9wfTEhee4CkVYBVzeyPOfWljt2q9ZK2Ihy7HyUEfzkXOMnMVsy530r1mXauM7OPtKvrpFbSCMKF3PXAFoRjF4JT9EczW6PAR6gtqXYntjHgbE/VdifTzijgq4QIjPtKWhV4r5ldURN9LW2PpPPMbJc4q6v5wt+A54GfmNml71Q73Y4HQKkpklYjBB9YyszeJ2kd4JNmdnSBZubEx6ckfZwQDGXZAvrTgTOBRqLUhwgXR6fn1E9oGEMAM3tBxaIqperLRuX6OXAb8Fkzmx61Re6KVK3fLj4uCXwAuI5gWCYDU4F2zlTVemzB6UxntNu+U3pJr7DgMSIWnCaZdyH9qYQcR41ofE8SAkLkcuaobzTIKYRw8puZ2d+j9sQC+61Un3GoJsQL+KxD9a6FpY3sTxgReRchWEZD/zLhnNCu7zN7e9/aTNGvWp/hdNLsDgxM21O13WlwGuH43SS+/ifh3JfLmapaX2Pbc3B8/EQP708g/K/cmash7szVl18DXwd+BWBmMyWdRbhjmZejJY0n3KU6iXBR8T8F9Eua2VmSvh77MEfS3AL6qkP7l43K9S7CNNcfSVqKcIdyaIH9Vqo3s70AJF1BCPzwVHy9DDkuCqvUpxq0DhjE64ClCQ7nOVYgHHUTq5rZbpI+Tdjxa5LUTpShrtEgJxIiGV4r6RFC8I7BBfZbtT7FoUpyxszsROBESQea2UkF+txgHuG3Ogu4HHi9ZvoGqXYHBqbtqdpuNVjZzHaVtBuAmb1e8NxXib7utqdhZ83sMUlLE9ITGCFH5dPAY5J2L9Km00VYF8z19FK8EJPEkknWSYtEpAu5D1OBxYjJggkL+28uoN+GkDD5d7E8BmzTV/rYRmpUr2WBrxEuzh4Avl8XPXBf0+tBzXXdpifkcbqdELgnd6LUTuljG+OBvQijPDcSwvIvVrCNWwlBhxr/nZUoEJEsamoXDbJJvykhTP1ThBHJ/eqiBw4sc+ykaqP+08TolYSoqBcBG+TUrg58l5BA+ffAtsCQAvuuVB/bmEqC3Yma/mB7lqP8ub+0tgP7vpWwbq3x+61c5NxXlZ7+Y3u+EI/d0wkjg48Ce5fpj5fuKZV3wEvJHy5cfKycOSF9irBuokgbqxHu9twXX69DiOqUVz8J+BPwYjyx/A1Yr2AfKg3tn2lnZcKFUW5npIfv8/C66AkXslOAPQkLqf9IWD/U1fpUg9YJgxjbGURYQ/Ic8JWC2m2h+j63AAAZzklEQVQIF6XPZAzqR0r+7qOBzwFX1lQ/iLCGLXcAlar1pDlUpbVRMzM+bkaYMro9cEeJz71rPHa/XvJ7q0RPB+xObMdtT6K2jJ4QDv9G4FnCtL5HgS3qoKd/2J6/kAmYQkiT8Jeyv7+X7igeAKWmKISnPpmw5ugF4O/A58zs0QJt3Eicqmlx4bWk+6xAiGJJw4A1CFMF/mxms3N/iAXb6fPQ/nFa367AZwmO7DHARWY2q42u9gFEmtpqrNu6ycwuzqutWq8QYnlXwhTh75vZjwruu5Re0gcIx9rmwC3AuWbWKlx6u3aWIPx/RYhm9kwB7TDCqMZnCY7hhYRj9/Ka6EsHEOkS/UwzW0fSZoTzxvHAIWb2/oWpjfp7LCQLPgaYZWHKYa7gNZLeTZhmuiPBbpwHXGxmr+bcd6X6TDsdsTuxrdrYnoy+EcRjOTPbTwWCeKRoO6GPbSxOSHwt4HYzey6vtkv0tbU9kq4DPtb4z8T/0h/MbMvelU43485czVGIjDTIcuYoatJOM7MNsxcCkmaY2Xo59cMJ8/w3I8y9vhn4tZm9mVOfatDKOmOpUb1Oi08bATyuj68nA1PNrFdnq2p93Uk1aCl6SY8SRgTOIXzvC+QmMrO7C/Tjk8z/79ySxxFSzaNBKgQBGRW1WzB/3dhY4CprE5Gxan2mnRSHqrQ26q8AniDkOJtIWHt2p7XJ0xZv3o0lnO8uIESvexsze76Vrlv0mXaS7E5so5a2J9POuYQpjp+3EABtJHBbHtudok3RS9qgt/fbnTur1sc2amt7JH0lPl2PkJbhUsL/Z3vC+eOLeT+H0324M1dTJC0CfB5YkUwgGzM7qEAbfySseTnfzDaQ9ClgHzP7WE79OcCbhLUPEE5So8zsM210VYfmn02IyvVVmx+V6xEze08efaadKwjJfhcI4JHXmeoC/U7AcQSnUORfiF2ZvgMGLVU/lZ4DHZiZfbg3faadkwhrzs6JVbsAD5rZgW108wgXr3va/GiMuY/dLtAfzPwgIE/AAkFAfm1mP+tmfaadUg5VqjbqRxFGQ2eZ2UPxf7+2mV3dRvco84/d7DHc+N/1+htWrc+0U8ruRG1/sT2NxNPZG7H35jz+SmtT9JJu6OXttufOLtA/So1tj6TDe3vfzL7b2/tOd+POXE2RdCthMe0sQpQwAMysSKjbVlM1dzezx3Lq385Pl6nLc1JPMmgd0E8grFvZDWhE5drTzJbLo8+0s8CU1Dh1Yqbln2pTtf5vhETJD+TZvhv0HTBoSfpOIel+4H0WT8CSBhN+u7Xa6NYnTFP7FNCIxvgdM1sh534r1WfaKRuRsVv0pRyqVG2mjc0IEVFPU5iuO6bhXPd3ytqduF1/sT23Ah8B/hRvxK4MnG1mGy1MbYf0apz3MnUjzOyNbtb3F9vj9E88NUF9GWFmX2m/Wa88Qci5cgMhOtjLhEAUR+bUz5C0oZlNA5A0kWDo2lF1aP7nCDn6fiFpWcLF6TOSHiCs3zgkZ1NTJU0BziacpD9D+C7zUrX+X2Udsar0ZrZFwv6S9ercesW/Eu7u/yO+Xga4r53IzO4B7gG+KWlTwkXhsDjKfrGZndzN+gxPSxprZq9IOhTYADi63d3pbtFbSCXxDGGq30OEu+wPLWwtvH2HfRLwXsL5eyhhlGrTnPqq1xsm6Slvd6C7bM9yhKmaZWzP4cBVwHKSziT89nv2gbYT+t8AezdeKCwVuYzgIHatvmrb0yDeDPoKISJmmTWPN9DCqXRnst74yFxNkfQ/wKuERJdvrxWwnOsOYhtXEYb97wbeztNjZifk1N9HWITeuCO8EnB/bMvMrNc56rGNhjO1G2EtSxGDlqxvams1YLci0w1U7wAiJxLy1lzCgsdQLoekCn2qM9UBfUfWK0q6npDn5/ZY9X5CyOz/xH7kXvcYR2S3AnY1s73bbd8NeqUHAala/7ZDZWarSXoXYbp6W4cqRRv1M4D1CZGMG9Pc3jFa1ULXSFp+PQuuFxxHiIScZ71hZfpMO8l2J7bTcKbK2p4kfVNbZWxP6SAeKdoO7PsoQvTPAyQtClxJmOJ8Whtpt+hTnalUfeqax4mZlyOAnYG3zOwbefROd+LOXE2R9F/A9wjO2NvrEPJO94htFIpc2UK/cm/vm9nDBdsrbNDK6Ds4ulJrMo5JFitwQd7n+lRnqoPOWOp6xXZ3ga9ro6/16IrSg4BUrS/lUKVq47Z3mtlGku62MM1tNOFirp0z11/WK3bU7sQ2+8T2ZLYvFRFSCUE8UrSd0De1dRwhTP9E4FgzuzCvtmp9B5ypVH3Smsce2rzRzD5UVu9Uj0+zrC9fAVYpeketiVslrW05I3g1Y2YPSxpHmC6WDcIyszddG2eqbV9S9YS8QNDDBT0h71NbVMMAIlnMbK8823WTvqGJztSazc7UwtZnWLGhjfyLkG8pFw1nLV7UZf87L/em0/xojBPiXeVsNMZ3tdtv1foMT0j6FSEIyHEKEQoH1Ug/28xMUmPN4+g+0gKcF/u+iEJAjr2BX7cTmdmJwIkquV6wan2mnVJ2J0uzM0W4IXpXX+kJ02PvItgfgH8C5xNm2vRGb7NmDOhtqlyKNlnfZLfvBA6LjyZpp3Y3UavWZ1jZzHaVtBuAmb0uSe1EHdTPjg5g4/yxMpmZLe2QtFjm5SDCLIGlC+zf6ULcmasv9wOvlRFKmkU4EQwB9pL0COFk0HAG8t4hPhzYjzDdJRul7INtpKnOVJK+gxf0PyAhAEjV+nhhvg+wFmG6BQAFRtaq1Cc5Ux3QT1XCekVJ+wBHE6aGzSP+94Dl20j3Z/7oxl0sOLqR59itWt9gF0IQkOPN7MX43/t6jfSlHKoOaDGz4xVSRLxMWDf3HTO7pkDfa71eMcHuZCnrTHVKX+qC3swmA0itg3gsLG0n9My32w3uIaw33I7w++W1+1XpGyQ5Ux3Qp65ZvCvuW8AcQtL0fQronW7EuiBzuZfiBbiYEEThV8BPGyWndoXeSoE+/AUYnvAZrgCWybxehpCrp6/09zW9HtRc10b/p8TfsGr9+cBRwMOEwDdXAyfWQQ/8DJhCMGJ7AH8k5DvLu+8kfWxjJ+DHsexYUPsQsGTCb3dg4m9fqT62sRmwV3y+BLBSzfRbAT8krLfbqq+0HfjeZ2Y+/82EPFN31EifZHdiG9Pj4z2Zunv7UH8rMJIw1RZgZUJ6irz6U5tejwauW9jaTujrXuJ/90bgWeBMgjO0RV/pYxuLAx8HPkFY/1dEuwswLj4/jHAtuUHV36uXtOIjc/XlklgKYzlTD+TgfsL0qiJ3lbKsaDUeXQGmx/nvpQKAdIF+FTP7tKTtzewMSWcRHJy8VKY3s//WgsFfTrYCwV9S9bGNi8h/N7eZRwgjK2XpD6MrKREZK9UDWBgNKzIi1hFt6vRq5ge7+jjwCzO7VNIRBbpQtT7V7kD9R1eekPQLawri0QfaZL1CKo19eWeO3LwzOirVm9k1ku5mfgCYg63Acpeyer1zzWLj2md5ScsXOHcfambnKQR/2oowffYXhCBcTk3xAChOaRSiIl0CzGRBZyJvEIifAauyoDP1N2uTOLlT+thGSjTI2gUQadI3AincBHwJeJpwdzhvzqRK9VWSekGtkK/tFEI0y+x/J1e6EVUfzTFVnxoEpGp96d+/A8dOan7H1KTlVeuT7E5sYyvgUGBNwoyATQn53qb2hT62kRpRMiWIR5UBRG4ljMjexYJRtHO1UZW+hTO1AO2cqQ7oe7vRbJYztYASgz853Yk7czVD0nlmtovmr3vLYnkNYof6ch9wKu9MXN5rJL6mNioN7T+QkfQF4EJgbeB0YAxwmJn9qtv1HbggrvqC+g7gDt753/lNTn3V0RxT9aUiMnaRvvTv34Fj50+WM41BD/qkpOVdoE+2O7GdPg/P34EL+qzDKuYH8bgq6vOmdSmk7YQ+084Myxm5sZv0qc5UB52x1KTpSTdTnO7EnbmaIWkZM3tK0nksuGBfwA/MbJc+7MtNZlZk0XlX0YEL+joHEEEhgt/OhOkmjcS3Zma5ksZXqe/ABXHVF9S3mdkmCfqqR0dS9V8jjKpvRRjZ2xs4y3JGOewCfenfv6w2czH9IRLyO8a2NgNWNbPTFKadjTGzv9dBn2J36j66otazMbL6PGldCms7oc+0czRwq5n9Ic/2XahPdaZS9admv+t4I+oyy58WJulmitOduDNXUxp3lJvqck8T6lAfTiBE1LyMBS8qcoWI7gejK+cDDwKfBY4EdgceMLODa6K/CniJd043yZs0vjJ9B5ypVH1qwvSjCevmLm/S51pH1wWjI8kXBApT1bYm/G+nWLGIjJXoUxyqVGcsczHdiESXpcjF9NvrBa1c0vKq9aXtTn8ZXakzkl4hBE15kxBNsajdrlqf6kyl6pOSnjv9E3fmaoakAwjri95DiALYYCwhuuHn+rAvN7eotrx3TfvB6Epjqllj/dBQwkVh0bnrVelTk8ZXpu+AM5WqT12v+I8e9O1SE2TbqO3oSl1Jcag66IydQQia8GJ8vShwQgF91esNU/VJdie2UffRldJBPFK0ndDHNhYjjIxnZ5TcWAd9qjPVCWdMiWsenf6HR7OsH2cRwqgfA3wrU/+KmT3flx0xs83bb9Ur/yrriHVInxoNck58fFHS+wgBPFYssP+q9UlJ4yvWjyPcnd86U2fkjy6ZpLf0hOnLpehV82iQXTAqX0pv83NUtnSoFpa2iXUa2tjuCwoBdfKSmrS8Un0H7A7AbwhTa8n04TIglzPVAX1qRMlLCUE8riUzq6EPtMl6hbXSBxOSvs8grDu8lZzfXdV6MztM0nGSfkkJZ6qsXp1Leu70Q9yZqxlm9hJhatpuVfcl3qE7Gni3mX1C0prARmZ2es4mqg7Nn+oQnBwN8aEEQz6GcILNSyV6JSaNr1oPHXGmkvRKX684knBBsUK8oFuFMMr1x5xd2JE4uhH3+6SksQU+QtX6pIT3XaBPcahSnbFBkhY1sxfg7VGGIrY8KWl51foO2B2oODx/qkMAjDKzbxbYvlPaTugPBjYkBI2ZLGl14Lvdrk91pjrgjHUq6bnTD3FnzknhdELSy8aJ/SHg3Fifh1qPrgC/Y34AjzNi3VI10H+iwD66Ud8JZypJT/juHwQ+Sma9Yk4tzI/G1xhleJKQRD2vM1fr0RWqH5VP1ac4VKnO2AmEUe0LCOe7XYDv5RWb2fEK6wVfJoysfscKrDesWk+63ekPoytXSNrWygXxSNF2Qv+Gmb0hCUnDzexBSe+tgT7VmUrSd+B6xenH+Jo5pzSSppnZhsqEJFdi2OC+pAMOQW0DiNQdVR88JnW94nQzm1T2v6PqozmW0is9CEil+kw7nwf+F1jAoTKz3y1MbaaNNYEPE0azrzOzP+fV1p0Uu6OKw/OrcxEhSwfxSNF2SH8xsBfwZcIx/AIw1My2rYO+atSBNYtO/8OdOac0kqYCOwHXWsjVtCHwo7xrGqoeXenABX1tA4jUnQ44U6n61ITptxIuJG6N/52VgHPNbKM8+thGHaNBJgUBqVrf1FZph6pKZ0w1Xa+Y0U+lpN1JdaY65Yx1AqUF8ag0AEmmnQ8RAnlcZWaz66BPdaY6oE9Kmu70U8zMi5dShRAA4U/Ai8CNwN+A9QrozweOIkTl3AO4GjixD/X3xMeZ8XEocH0B/cmEcOxlv79K9XUuBMcJ4CbgfcAE4JE+1H8BWBT4ICHFwDPA/gX02wBTo+4M4FHgI1V/r334+50BLJJ5vShwal30dS7xPL1GjfVJdqcbCrAEcEg8h5/aKAX0XyBM034BuIGQ5/G6ha3thL7uhRAs5TjCiPrOjdKH+hlVfwdeuq/4mjmnMJI2NrPbzWy6pMnAGoS7q3+2YnfHVjGzT0va3szOkHQWMKUP9aWiQaofBBDpB1QdfKbUekVJy5vZ42Z2laS7gA8Qfrevm9kzeXfeBaMjSXrSg4BUra8zVa83LKXvoN2pfHSF9IiSKUFAqg5AUneqDiCTumbR6Ye4M+eU4f+ADQCiEb23ZDtVh+Yve0FfdQCQ5AAi/YCqg89cyvz1im+22TbLJcz/7zwb2ylD1dEcU/WpQUCq1teOzHqvUlGAq9bTObsDFYfnJ/2CPiUISNUBSOpO1QFkDgYOkVRqzaLTP+nXxsvpemo5umJmjxXYR9fp+wllnalO6Zc1s21K6JrXaZWllqMrGZIiMnaBvo40oukZ5aIAV63vJHUfXfmnpEUIDvE1kl4gRMRd2NpO6OtOqjOVpDezsa3WLDoDGw+A4hRG0ouEtUYtMbNP5mxnOPOdqaHz5XZkH+kHbDTIulN18BhJJwMnWcGE55KeAc7p6X0zO6iNvl9Eg4xtJQUBqVpfV9RD0vICUwwr0XfK7sS2jiYEHyrlTHVAnxQRsqmt0kFAqg5AUleqDCCjHpKem1nehPVOP8SdOacwkh4iLIJuSYGTUtWh/QdsNMi6U9aZStU3rVdclRD8pMh6x8eA7/T0vpmd0dN7Ud9vokE61aBMSP/e6rpN3ym7E9uqNDx/bKMjESGdviXVmeqAfhbz1yyu11izaGa7Fv4wTr/Bp1k6ZXi1Q0an7FS1TulvlbR2WYfA6Xu6IHhM6nrFf7dz2HrDYuLYnkY3ul3vdAVVrzcsq3+lU85O6lS1VH1PF/SAj650P1UHkBnoaxadFrgz55Th7x1qJ9WZKqXvwAW9Ux2VBo/pwHrFTk1Fqjqa40COBll3ql5vWFb/aIF99EqqM9UBZ2ygR4SsM1UHkBnoaxadFrgz55ThzMzamXeQY91N3UdXnIqoe/AYM9sYQNJ1zdNqWtX1Ql1HV5yKMbPfSprO/PWCOxVZL1iV3sx2ApA0CvgqsLyZ7StpVeC9ZnZF3j7goytOeSoNIGNmO8anR0i6gbhmscD+nX6IG1+nDA1naElCnqzr4+vJhETI7YIg1H10xXFKIWkEMAqYEKcmNtadjQPeVaCpuo6uOF1AdJ5KB3ypWH8aYZ30JvH1P4HzgSLOnI+uOKVIdaY66Yz5GkungQdAcUoj6QpgXzN7Kr5eBvh54w6q4zgLIulg4MsEx+0J5jtzLwO/NrOfFWjLo0E6Aw5J081sUjZoiqR7zWzdAm1cDOxF+C9+GHgBGGpm2/aFvqmtARkR0nGczuHOnFMaNUWDlDQImOkRIh2ndyQdaGYnVd0Px6kbkhpr0/5kZhtIWhk428w2Ktmeh+d3HKfW+DRLJ4WpkqYAZxOmWn0GuKHaLjlOLXha0lgze0XSocAGwNFmdnfVHXOcLudwwrS05SSdCWwK7Fm2sdSpaj7VzXGcqvGROSeJGAhl8/jyJjO7uMr+OE4dkDTTzNaRtBlwDHA8cIiZvb/irjlO1yNpcUIESRGCkDxXcZccx3Eqw505x3GcPqax3kfSMcAsMztLBRIvO85AQ9IGvb3vo9qO4wxU3JlzShNH5Y4jRLUU81MDjKu0Y47T5cTgQU8AWwITgdeBO4sEcXCcgUSM/NcTZmYf7rPOOI7jdBHuzDmlkfQ3YDsze6DqvjhOnYi5srYhjMo9FCPBrm1mV1fcNcfpaiTJmi5cJI0wszeq6pPjOE6VDKq6A06t+Zc7co5THDN7DXgG2CxWvQU8VF2PHKc2/Cb7QtJo4MqK+uI4jlM5Hs3SSWG6pHMJiU/fbFSaWbuk4Y4zoJF0ODAJeC8hCfJQ4PeEyHyO4/TME5J+YWYHSFqU4Mj9uupOOY7jVIVPs3RKI+m0FtVmZnv3eWccp0ZImgGsD9ydSXw808zWqbZnjtP9SDqOkNttInCsmV1YcZccx3Eqw0fmnNKY2V5V98FxaspsMzNJBm9PFXMcpwdiwK0GdwKHxUeTtJPPCHEcZ6DizpxTGkkjgH2AtYARjXofmXOctpwn6VfAIpL2BfbGp4o5Tm9s1/T6HsL05O0AA9yZcxxnQOLTLJ3SSDofeBD4LHAksDvwgJkdXGnHHKcGSNoK2JqQ0mOKmV1TcZccx3Ecx6kZ7sw5pckkPp5pZutIGkq4KPV8P47jOE7HkbQEsC+wIpnZRT4jxHGcgYpPs3RSmBMfX5T0PuBpgoF1HKcX4vqf44AlCSNzIgQPGldpxxyn+7kUuBm4FphbcV8cx3Eqx505J4WTY2joQ4HLgDGERemO4/TOD4DtPE+j4xRmlJl9s+pOOI7jdAvuzDkp/A7YmTAad0asW6qy3jhOffiXO3KOU4orJG1rZn+ouiOO4zjdgK+Zc0oj6SrgJeAuMtNdzOyEyjrlOF1MJrz6h4ClgUuANxvve3h1x+kdSa8Aown/mzn4FGXHcQY4PjLnpLCsmW1TdSccp0Y0wqsb8BohmiWZOnfmHKcXzGyspMWAVcmkxHEcxxmouDPnpHCrpLXNbFbVHXGcOmBmewFIOgM42MxejK8XBXxE23HaIOkLwMHAssAMYGPgVuAjVfbLcRynKtyZcwojaRZhFGEIsJekRwhTXhrTXdapsn+OUwPWaThyAGb2gqT1q+yQ49SEg4ENgdvNbLKk1YHvVtwnx3GcynBnzinDJ6rugOPUnEGSFjWzFwDitDE/HztOe94wszckIWm4mT0o6b1Vd8pxHKcq/OLBKYyZPVZ1Hxyn5pxAmKZ8AWGUexfge9V2yXFqwT8lLUIIHnSNpBeAJyvuk+M4TmV4NEvHcZwKkLQm8GHC9OTrzOzPFXfJcWqFpA8B44GrzGx21f1xHMepAnfmHMdxHMdxHMdxasigqjvgOI7jOI7jOI7jFMedOcdxHMdxHMdxnBrizpzjOI7jOI7jOE4NcWfOcRzHcRzHcRynhrgz5ziO4ziO4ziOU0P+P6THPUGl8GsnAAAAAElFTkSuQmCC\n", 1454 | "text/plain": [ 1455 | "
" 1456 | ] 1457 | }, 1458 | "metadata": {}, 1459 | "output_type": "display_data" 1460 | } 1461 | ], 1462 | "source": [ 1463 | "from pandas.plotting import scatter_matrix\n", 1464 | "df_corr = train_df.corr()\n", 1465 | "df_corr = df_corr.drop(['activityID'], axis = 1)\n", 1466 | "\n", 1467 | "f, ax = plt.subplots(figsize=(15, 10))\n", 1468 | "sns.heatmap(df_corr, mask=np.zeros_like(df_corr, dtype=np.bool), cmap = \"BrBG\",ax=ax)\n", 1469 | "plt.show()" 1470 | ] 1471 | }, 1472 | { 1473 | "cell_type": "markdown", 1474 | "metadata": {}, 1475 | "source": [ 1476 | "Our heatmap shows how much statistical similarity there is between our different columns. We can every easily observe that the gyroscopes do not correlate with any of our other data and seem unneeded in this model. \n", 1477 | "\n", 1478 | "On the other hand we can understand the correlation between accelerometers of the hand and temperature. The two are strongly correlated on all three instances of hand accelerometers. \n", 1479 | "\n", 1480 | "Furthermore the chest Magnetometers seem to be correlated with heart rate and it is very logical as they very close together on the body." 1481 | ] 1482 | }, 1483 | { 1484 | "cell_type": "markdown", 1485 | "metadata": {}, 1486 | "source": [ 1487 | "## Hypothesis Testing" 1488 | ] 1489 | }, 1490 | { 1491 | "cell_type": "markdown", 1492 | "metadata": {}, 1493 | "source": [ 1494 | "The most cumbersome activities seem to be running and rope jumping as seen from bar charts plotted above. Therefore our hypothesis testing will be based on these two activities and how their heart rate data correlates with the rest of the activities' heart rates. This will be done by getting the mean heart rate of the two activities and them comparing it to the mean heart rate of all activities." 1495 | ] 1496 | }, 1497 | { 1498 | "cell_type": "markdown", 1499 | "metadata": {}, 1500 | "source": [ 1501 | "**Null Hypothesis: **\n", 1502 | "- h0 : The mean heart rate of the cumbersome activities has no mass difference from the mean of all activities\n", 1503 | "\n", 1504 | "**Non Null Hypothesis: **\n", 1505 | "\n", 1506 | "- h1 : The mean heart rate of the cumbersome activities has mass difference from the mean of all activities" 1507 | ] 1508 | }, 1509 | { 1510 | "cell_type": "code", 1511 | "execution_count": 17, 1512 | "metadata": {}, 1513 | "outputs": [], 1514 | "source": [ 1515 | "running_data = train_df.loc[(train_df[\"activityID\"] == 5)]\n", 1516 | "ropejumping_data = train_df.loc[(train_df[\"activityID\"] == 24)]\n", 1517 | "cumbersome_data = running_data + ropejumping_data" 1518 | ] 1519 | }, 1520 | { 1521 | "cell_type": "code", 1522 | "execution_count": 18, 1523 | "metadata": {}, 1524 | "outputs": [ 1525 | { 1526 | "name": "stdout", 1527 | "output_type": "stream", 1528 | "text": [ 1529 | "The p_value is 0.0 and h0 is rejected. There is mass difference between the means of cumbersome activities and all activities.\n" 1530 | ] 1531 | } 1532 | ], 1533 | "source": [ 1534 | "import scipy.stats\n", 1535 | "\n", 1536 | "p = train_df['heartrate'].mean() / (running_data['heartrate'].std() / math.sqrt( running_data['heartrate'].count() ))\n", 1537 | "pValue = 1 - scipy.stats.norm.cdf(p)\n", 1538 | "\n", 1539 | "if pValue > 0.1:\n", 1540 | " print(\"The p_value is \", pValue, \" and h1 is rejected. There is no mass difference between the means of cumbersome activities and all activities.\")\n", 1541 | "else:\n", 1542 | " print(\"The p_value is \", pValue, \" and h0 is rejected. There is mass difference between the means of cumbersome activities and all activities.\")\n" 1543 | ] 1544 | }, 1545 | { 1546 | "cell_type": "markdown", 1547 | "metadata": {}, 1548 | "source": [ 1549 | "After making sure that our hypothesis is non null, proving that the mean of the heart rate of the two most cumbersome activities is in fact very different from the mean heart rate of all the activities we can move on into Modelling where we will be looking at different modelling algorithms and will be choosing one as the modelling algorithm that would be used after testing." 1550 | ] 1551 | }, 1552 | { 1553 | "cell_type": "markdown", 1554 | "metadata": {}, 1555 | "source": [ 1556 | "## Modelling" 1557 | ] 1558 | }, 1559 | { 1560 | "cell_type": "markdown", 1561 | "metadata": {}, 1562 | "source": [ 1563 | "Some variables have to be dropped which would impact our modelling precision. The variables to be dropped are timestamp and subject_id as they are numeric numbers which would our modelling method would use in its calculations but since their values don't have any meaning, the modelling method used would have noise and predictions of accuracy would be innacurate." 1564 | ] 1565 | }, 1566 | { 1567 | "cell_type": "code", 1568 | "execution_count": 19, 1569 | "metadata": {}, 1570 | "outputs": [], 1571 | "source": [ 1572 | "from sklearn.tree import DecisionTreeClassifier\n", 1573 | "from sklearn.model_selection import train_test_split,cross_val_score,StratifiedShuffleSplit\n", 1574 | "from sklearn.metrics import precision_score,recall_score, f1_score, confusion_matrix,roc_auc_score,roc_curve, accuracy_score\n", 1575 | "from sklearn.preprocessing import StandardScaler, RobustScaler\n", 1576 | "from sklearn.decomposition import PCA, TruncatedSVD\n", 1577 | "from sklearn.linear_model import LogisticRegression\n", 1578 | "from sklearn.neighbors import KNeighborsClassifier\n", 1579 | "from sklearn.svm import SVC" 1580 | ] 1581 | }, 1582 | { 1583 | "cell_type": "code", 1584 | "execution_count": 20, 1585 | "metadata": {}, 1586 | "outputs": [], 1587 | "source": [ 1588 | "train_df = train_df.drop([\"timestamp\", \"subject_id\"],1)" 1589 | ] 1590 | }, 1591 | { 1592 | "cell_type": "code", 1593 | "execution_count": 21, 1594 | "metadata": {}, 1595 | "outputs": [ 1596 | { 1597 | "data": { 1598 | "text/html": [ 1599 | "
\n", 1600 | "\n", 1613 | "\n", 1614 | " \n", 1615 | " \n", 1616 | " \n", 1617 | " \n", 1618 | " \n", 1619 | " \n", 1620 | " \n", 1621 | " \n", 1622 | " \n", 1623 | " \n", 1624 | " \n", 1625 | " \n", 1626 | " \n", 1627 | " \n", 1628 | " \n", 1629 | " \n", 1630 | " \n", 1631 | " \n", 1632 | " \n", 1633 | " \n", 1634 | " \n", 1635 | " \n", 1636 | " \n", 1637 | " \n", 1638 | " \n", 1639 | " \n", 1640 | " \n", 1641 | " \n", 1642 | " \n", 1643 | " \n", 1644 | " \n", 1645 | " \n", 1646 | " \n", 1647 | " \n", 1648 | " \n", 1649 | " \n", 1650 | " \n", 1651 | " \n", 1652 | " \n", 1653 | " \n", 1654 | " \n", 1655 | " \n", 1656 | " \n", 1657 | " \n", 1658 | " \n", 1659 | " \n", 1660 | " \n", 1661 | " \n", 1662 | " \n", 1663 | " \n", 1664 | " \n", 1665 | " \n", 1666 | " \n", 1667 | " \n", 1668 | " \n", 1669 | " \n", 1670 | " \n", 1671 | " \n", 1672 | " \n", 1673 | " \n", 1674 | " \n", 1675 | " \n", 1676 | " \n", 1677 | " \n", 1678 | " \n", 1679 | " \n", 1680 | " \n", 1681 | " \n", 1682 | " \n", 1683 | " \n", 1684 | " \n", 1685 | " \n", 1686 | " \n", 1687 | " \n", 1688 | " \n", 1689 | " \n", 1690 | " \n", 1691 | " \n", 1692 | " \n", 1693 | " \n", 1694 | " \n", 1695 | " \n", 1696 | " \n", 1697 | " \n", 1698 | " \n", 1699 | " \n", 1700 | " \n", 1701 | " \n", 1702 | " \n", 1703 | " \n", 1704 | " \n", 1705 | " \n", 1706 | " \n", 1707 | " \n", 1708 | " \n", 1709 | " \n", 1710 | " \n", 1711 | " \n", 1712 | " \n", 1713 | " \n", 1714 | " \n", 1715 | " \n", 1716 | " \n", 1717 | " \n", 1718 | " \n", 1719 | " \n", 1720 | " \n", 1721 | " \n", 1722 | " \n", 1723 | " \n", 1724 | " \n", 1725 | " \n", 1726 | " \n", 1727 | " \n", 1728 | " \n", 1729 | " \n", 1730 | " \n", 1731 | " \n", 1732 | " \n", 1733 | " \n", 1734 | " \n", 1735 | " \n", 1736 | " \n", 1737 | " \n", 1738 | " \n", 1739 | " \n", 1740 | " \n", 1741 | " \n", 1742 | " \n", 1743 | " \n", 1744 | " \n", 1745 | " \n", 1746 | " \n", 1747 | " \n", 1748 | " \n", 1749 | " \n", 1750 | " \n", 1751 | " \n", 1752 | " \n", 1753 | " \n", 1754 | " \n", 1755 | " \n", 1756 | " \n", 1757 | " \n", 1758 | " \n", 1759 | " \n", 1760 | " \n", 1761 | " \n", 1762 | "
activityIDheartratehandTemperaturehandAcc16_1handAcc16_2handAcc16_3handAcc6_1handAcc6_2handAcc6_3handGyro1...ankleAcc16_3ankleAcc6_1ankleAcc6_2ankleAcc6_3ankleGyro1ankleGyro2ankleGyro3ankleMagne1ankleMagne2ankleMagne3
3129213-0.3684210.447368-0.3845120.220069-0.572507-0.3614360.256971-0.530520-0.012729...0.3219390.088339-0.3221520.3518000.2201830.001165-0.1393540.641700-0.5824320.658114
141735121.6818180.236842-0.721708-0.103407-0.206281-0.625117-0.108947-0.253147-0.868631...0.0208130.842160-0.269519-0.185601-0.8298813.024896-0.265261-0.7444161.091512-0.924482
1191085242.0263160.2894740.4579750.035504-2.0150470.6035120.072534-1.452154-5.190897...1.905139-7.260794-0.9467881.4822385.524513-0.773631-1.222988-0.447203-0.428537-0.674781
12069141-1.1052630.1315791.290689-0.6939320.9013521.320385-0.7239560.9113470.065061...-0.351884-5.128883-2.300004-0.300736-0.0373130.0273500.0377090.7006150.847494-0.859194
17105202-0.6578950.5000000.434876-2.413007-0.4736100.449008-2.412753-0.481267-0.015890...-0.107595-0.1924390.783229-0.0571620.0164400.0687800.0586570.6117700.4970420.263863
\n", 1763 | "

5 rows × 41 columns

\n", 1764 | "
" 1765 | ], 1766 | "text/plain": [ 1767 | " activityID heartrate handTemperature handAcc16_1 handAcc16_2 \\\n", 1768 | "312921 3 -0.368421 0.447368 -0.384512 0.220069 \n", 1769 | "141735 12 1.681818 0.236842 -0.721708 -0.103407 \n", 1770 | "1191085 24 2.026316 0.289474 0.457975 0.035504 \n", 1771 | "1206914 1 -1.105263 0.131579 1.290689 -0.693932 \n", 1772 | "1710520 2 -0.657895 0.500000 0.434876 -2.413007 \n", 1773 | "\n", 1774 | " handAcc16_3 handAcc6_1 handAcc6_2 handAcc6_3 handGyro1 \\\n", 1775 | "312921 -0.572507 -0.361436 0.256971 -0.530520 -0.012729 \n", 1776 | "141735 -0.206281 -0.625117 -0.108947 -0.253147 -0.868631 \n", 1777 | "1191085 -2.015047 0.603512 0.072534 -1.452154 -5.190897 \n", 1778 | "1206914 0.901352 1.320385 -0.723956 0.911347 0.065061 \n", 1779 | "1710520 -0.473610 0.449008 -2.412753 -0.481267 -0.015890 \n", 1780 | "\n", 1781 | " ... ankleAcc16_3 ankleAcc6_1 ankleAcc6_2 ankleAcc6_3 \\\n", 1782 | "312921 ... 0.321939 0.088339 -0.322152 0.351800 \n", 1783 | "141735 ... 0.020813 0.842160 -0.269519 -0.185601 \n", 1784 | "1191085 ... 1.905139 -7.260794 -0.946788 1.482238 \n", 1785 | "1206914 ... -0.351884 -5.128883 -2.300004 -0.300736 \n", 1786 | "1710520 ... -0.107595 -0.192439 0.783229 -0.057162 \n", 1787 | "\n", 1788 | " ankleGyro1 ankleGyro2 ankleGyro3 ankleMagne1 ankleMagne2 \\\n", 1789 | "312921 0.220183 0.001165 -0.139354 0.641700 -0.582432 \n", 1790 | "141735 -0.829881 3.024896 -0.265261 -0.744416 1.091512 \n", 1791 | "1191085 5.524513 -0.773631 -1.222988 -0.447203 -0.428537 \n", 1792 | "1206914 -0.037313 0.027350 0.037709 0.700615 0.847494 \n", 1793 | "1710520 0.016440 0.068780 0.058657 0.611770 0.497042 \n", 1794 | "\n", 1795 | " ankleMagne3 \n", 1796 | "312921 0.658114 \n", 1797 | "141735 -0.924482 \n", 1798 | "1191085 -0.674781 \n", 1799 | "1206914 -0.859194 \n", 1800 | "1710520 0.263863 \n", 1801 | "\n", 1802 | "[5 rows x 41 columns]" 1803 | ] 1804 | }, 1805 | "execution_count": 21, 1806 | "metadata": {}, 1807 | "output_type": "execute_result" 1808 | } 1809 | ], 1810 | "source": [ 1811 | "from sklearn import preprocessing\n", 1812 | "from sklearn.preprocessing import StandardScaler,RobustScaler\n", 1813 | "\n", 1814 | "#apply scaling to all columns except subject and activity \n", 1815 | "scaler = RobustScaler()\n", 1816 | "df_scaled = train_df.copy()\n", 1817 | "df_scaled_test = test_df.copy()\n", 1818 | "\n", 1819 | "df_scaled.iloc[:,1:41] = scaler.fit_transform(df_scaled.iloc[:,1:41])\n", 1820 | "df_scaled_test.iloc[:,1:41] = scaler.fit_transform(df_scaled_test.iloc[:,1:41])\n", 1821 | "\n", 1822 | "df_scaled.head()" 1823 | ] 1824 | }, 1825 | { 1826 | "cell_type": "code", 1827 | "execution_count": 22, 1828 | "metadata": {}, 1829 | "outputs": [], 1830 | "source": [ 1831 | "X_train = df_scaled.drop('activityID', axis=1).values\n", 1832 | "y_train = df_scaled['activityID'].values\n", 1833 | "\n", 1834 | "# Test Dataset\n", 1835 | "X_test = df_scaled.drop('activityID', axis=1).values\n", 1836 | "y_test = df_scaled['activityID'].values" 1837 | ] 1838 | }, 1839 | { 1840 | "cell_type": "markdown", 1841 | "metadata": {}, 1842 | "source": [ 1843 | "### Dimensionality reduction using Principal Component Analysis(PCA)\n", 1844 | "\n", 1845 | "\n", 1846 | "Usually 90-98% of the variance will explain our data really well. So by plotting the variance ratio aginst the number of componments we could see how many of those we could use. As we see from the graph below 15 componments fall around to 94% of the variance. " 1847 | ] 1848 | }, 1849 | { 1850 | "cell_type": "code", 1851 | "execution_count": 23, 1852 | "metadata": {}, 1853 | "outputs": [ 1854 | { 1855 | "data": { 1856 | "image/png": "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\n", 1857 | "text/plain": [ 1858 | "
" 1859 | ] 1860 | }, 1861 | "metadata": {}, 1862 | "output_type": "display_data" 1863 | } 1864 | ], 1865 | "source": [ 1866 | "from sklearn.decomposition import PCA\n", 1867 | "pca = PCA()\n", 1868 | "pca.fit(X_train)\n", 1869 | "var= pca.explained_variance_ratio_\n", 1870 | "var1=np.cumsum(np.round(pca.explained_variance_ratio_, decimals=4)*100)\n", 1871 | "\n", 1872 | "plt.title(\"PCA Variance against num of Componmnets\")\n", 1873 | "plt.ylabel(\"Variance %\")\n", 1874 | "plt.xlabel(\"Number of componments\")\n", 1875 | "l = plt.axhline(94, color=\"red\")\n", 1876 | "\n", 1877 | "plt.plot(var1)\n", 1878 | "plt.grid()\n" 1879 | ] 1880 | }, 1881 | { 1882 | "cell_type": "code", 1883 | "execution_count": null, 1884 | "metadata": {}, 1885 | "outputs": [], 1886 | "source": [ 1887 | "pca = PCA(n_components=17)\n", 1888 | "X_train=pca.fit_transform(X_train)\n", 1889 | "X_test=pca.fit_transform(X_test)" 1890 | ] 1891 | }, 1892 | { 1893 | "cell_type": "markdown", 1894 | "metadata": {}, 1895 | "source": [ 1896 | "### Choosing the best model\n", 1897 | "In this section we will train two models and check their performance.\n", 1898 | "\n", 1899 | "We are going to focus on two modelling algorithms, Random Forest and Logistic Regression.\n", 1900 | "\n", 1901 | "**Random Forest** algorithm can be used for both classification and regression which makes it a very versatile modelling algorithm. As the name implies, Random Forest is a forest of trees, decision trees which are randomly populating the forest. The algorithms creates and combines decision trees together, the more trees in the forest, the better the accuracy of its predictions will be.\n", 1902 | "\n", 1903 | "Random Forest algorithms are good because of the high accuracy they provide as well as that they are flexible i.e. can work for both classification and regression modelling. In addition, Random Forest facilitates for good performance of high dimensionality datasets which our dataset has. \n", 1904 | "\n", 1905 | "**Logistic Regression** algorithm is a simple algorithm that can be used for binary/multivariate classification tasks. The result of it is a probability that a data point is part of a class." 1906 | ] 1907 | }, 1908 | { 1909 | "cell_type": "code", 1910 | "execution_count": null, 1911 | "metadata": {}, 1912 | "outputs": [], 1913 | "source": [ 1914 | "def get_metrics (y_true,y_pred):\n", 1915 | " acc = accuracy_score(y_true, y_pred)\n", 1916 | " err = 1-acc\n", 1917 | " p = precision_score(y_true, y_pred,average=None).mean()\n", 1918 | " r = recall_score(y_true, y_pred, average=None).mean()\n", 1919 | " f1 = f1_score(y_true, y_pred, average=None).mean()\n", 1920 | " \n", 1921 | " print(\"Accuracy: \",acc)\n", 1922 | " print(\"Error: \",acc)\n", 1923 | " print(\"Precision\", p)\n", 1924 | " print(\"Recall\", r)\n", 1925 | " print(\"F1\", f1)\n", 1926 | " #print(\"Accuracy: %.3f \\nError: %.3f \\nPrecesion: %.3f \\nRecall: %.3f \\nF1:%.3f \\n\"% (acc,err,p,r,f1) )\n", 1927 | " \n", 1928 | "\n", 1929 | "log_reg = LogisticRegression()\n", 1930 | "log_reg.fit(X=X_train, y=y_train )\n", 1931 | "y_pred_lr = log_reg.predict(X_test)\n", 1932 | "get_metrics(y_test, y_pred_lr)" 1933 | ] 1934 | }, 1935 | { 1936 | "cell_type": "code", 1937 | "execution_count": null, 1938 | "metadata": {}, 1939 | "outputs": [], 1940 | "source": [ 1941 | "from sklearn.ensemble import RandomForestClassifier\n", 1942 | "rfc = RandomForestClassifier(n_jobs =4)\n", 1943 | "rfc.fit(X_train,y_train)\n", 1944 | "y_pred_rf = rfc.predict(X_test)\n", 1945 | "get_metrics(y_test,y_pred_rf)" 1946 | ] 1947 | }, 1948 | { 1949 | "cell_type": "markdown", 1950 | "metadata": {}, 1951 | "source": [ 1952 | "### Cross validation" 1953 | ] 1954 | }, 1955 | { 1956 | "cell_type": "markdown", 1957 | "metadata": {}, 1958 | "source": [ 1959 | "Even though the above models seem to perform really good, the metrics used for that do not represent the real score since the models were train on a specific part of the dataset. By using cross validation, we could k=10 number of folds, which in few words, will generate 10 different samples. By doing that we will get 10 different metrics values. The mean value of these metrics will show a better representation of our model's performance" 1960 | ] 1961 | }, 1962 | { 1963 | "cell_type": "code", 1964 | "execution_count": null, 1965 | "metadata": {}, 1966 | "outputs": [], 1967 | "source": [ 1968 | "from sklearn.model_selection import cross_val_score\n", 1969 | "from sklearn.model_selection import cross_val_predict\n", 1970 | "\n", 1971 | "classifiers = [LogisticRegression(),\n", 1972 | " RandomForestClassifier(n_jobs =4)]\n", 1973 | "\n", 1974 | "score_lst = []\n", 1975 | "for cls in classifiers:\n", 1976 | " accs = accuracy_score(y_train, cross_val_predict(cls,X_train,y_train,cv = 10)) #cross validate the accurancy \n", 1977 | " scores = cross_val_score(cls,X_train,y_train,scoring = \"neg_mean_squared_error\",cv= 10)#calcuate the error\n", 1978 | " score = np.sqrt(-scores)\n", 1979 | " f1 = cross_val_score(cls,X_test, y_test,scoring = \"f1_macro\", cv =10)\n", 1980 | " \n", 1981 | " \n", 1982 | " #p = cross_val_score(cls,X_test, y_test,scoring = \"average_precision\", cv =10)\n", 1983 | "# r = recall_score(y_true, y_pred, average=None).mean()\n", 1984 | "# f1 = f1_score(y_true, y_pred, average=None).mean()\n", 1985 | " score_lst.append([cls.__class__.__name__,accs,score.mean(), f1.mean()])\n", 1986 | "\n", 1987 | "df_scores=pd.DataFrame(columns = [\"Claasifier\",\"Accurancy\",\"MSE\",\"F1\"],data = score_lst)\n", 1988 | "display(df_scores)" 1989 | ] 1990 | }, 1991 | { 1992 | "cell_type": "markdown", 1993 | "metadata": {}, 1994 | "source": [ 1995 | "As this took a lot of time to compute the results of the above cells, it is uploaded without the outputs but work and should be run by the examiner as the computer that I am using has very few processing capabilities." 1996 | ] 1997 | }, 1998 | { 1999 | "cell_type": "markdown", 2000 | "metadata": {}, 2001 | "source": [ 2002 | "## References\n", 2003 | "\n", 2004 | "Archive.ics.uci.edu. (2012). UCI Machine Learning Repository: PAMAP2 Physical Activity Monitoring Data Set. [online] Available at: http://archive.ics.uci.edu/ml/datasets/pamap2+physical+activity+monitoring [Accessed 15 Dec. 2018].\n", 2005 | "\n", 2006 | "Chandrayan, P. (2017). Machine Learning Part 3 : Logistic Regression – Towards Data Science. [online] Towards Data Science. Available at: https://towardsdatascience.com/machine-learning-part-3-logistics-regression-9d890928680f [Accessed 2 Jan. 2019].\n", 2007 | "\n", 2008 | "DeZyre. (n.d.). Principal Component Analysis Tutorial. [online] Available at: https://www.dezyre.com/data-science-in-python-tutorial/principal-component-analysis-tutorial [Accessed 30 Dec. 2018].\n", 2009 | "\n", 2010 | "Donges, N. (2018). The Random Forest Algorithm – Towards Data Science. [online] Towards Data Science. Available at: https://towardsdatascience.com/the-random-forest-algorithm-d457d499ffcd [Accessed 3 Jan. 2019].\n", 2011 | "\n", 2012 | "PAMAP2_Dataset: Physical Activity Monitoring. (n.d.). [ebook] Available at: http://archive.ics.uci.edu/ml/machine-learning-databases/00231/readme.pdf [Accessed 15 Dec. 2018].\n", 2013 | "\n", 2014 | "Scikit-learn.org. (n.d.). Robust Scaling on Toy Data — scikit-learn 0.18.2 documentation. [online] Available at: https://scikit-learn.org/0.18/auto_examples/preprocessing/plot_robust_scaling.html [Accessed 2 Jan. 2019]." 2015 | ] 2016 | }, 2017 | { 2018 | "cell_type": "code", 2019 | "execution_count": null, 2020 | "metadata": {}, 2021 | "outputs": [], 2022 | "source": [] 2023 | } 2024 | ], 2025 | "metadata": { 2026 | "kernelspec": { 2027 | "display_name": "Python 3", 2028 | "language": "python", 2029 | "name": "python3" 2030 | }, 2031 | "language_info": { 2032 | "codemirror_mode": { 2033 | "name": "ipython", 2034 | "version": 3 2035 | }, 2036 | "file_extension": ".py", 2037 | "mimetype": "text/x-python", 2038 | "name": "python", 2039 | "nbconvert_exporter": "python", 2040 | "pygments_lexer": "ipython3", 2041 | "version": "3.6.5" 2042 | } 2043 | }, 2044 | "nbformat": 4, 2045 | "nbformat_minor": 2 2046 | } 2047 | --------------------------------------------------------------------------------