{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# SageMaker/DeepAR demo on household electricity consumption dataset\n",
"\n",
"This notebook complements the following two notebooks:\n",
"* [DeepAR introduction notebook](https://github.com/awslabs/amazon-sagemaker-examples/blob/master/introduction_to_amazon_algorithms/deepar_synthetic/deepar_synthetic.ipynb). \n",
"* [Individual household electric power consumption dataset](https://github.com/amirrezaeian/Individual-household-electric-power-consumption-Data-Set-/blob/master/data_e_power.ipynb).\n",
"\n",
"The household electric power consumption dataset is available at: \n",
"http://archive.ics.uci.edu/ml/datasets/Individual+household+electric+power+consumption\n",
"\n",
"In summary, the dataset consists of the following attributes:\n",
"* `date`: date (dd/mm/yyyy)\n",
"* `time`: time (hh:mm:ss)\n",
"* `global_active_power`: household global minute-averaged active power (in Kilowatt) \n",
"* `global_reactive_power`: household global minute-averaged reactive power (in Kilowatt)\n",
"* `voltage`: minute-averaged voltage (in Volt)\n",
"* `global_intensity`: household global minute-averaged current intensity (in Ampere) \n",
"* `sub_metering_1`: energy sub-metering No.1 (in Watt-per-hour of active energy). It corresponds to the kitchen, containing mainly a dishwasher, an oven and a microwave (hot plates are not electric but gas powered). \n",
"* `sub_metering_2`: energy sub-metering No.2 (in Watt-per-hour of active energy). It corresponds to the laundry room, containing a washing-machine, a tumble-drier, a refrigerator and a light. \n",
"* `sub_metering_3`: energy sub-metering No.3 (in Watt-per-hour of active energy). It corresponds to an electric water-heater and an air-conditioner. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In particular, we will see how to:\n",
"* Prepare the dataset\n",
"* Use the SageMaker Python SDK to train a DeepAR model and deploy it\n",
"* Make requests to the deployed model to obtain forecasts interactively\n",
"* Illustrate advanced features of DeepAR: missing values, additional time features, non-regular frequencies and category information\n",
"\n",
"For more information about DeepAR, see the [documentation](https://docs.aws.amazon.com/sagemaker/latest/dg/deepar.html) "
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/ec2-user/anaconda3/envs/mxnet_p36/lib/python3.6/site-packages/sklearn/cross_validation.py:41: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.\n",
" \"This module will be removed in 0.20.\", DeprecationWarning)\n",
"Using MXNet backend.\n"
]
}
],
"source": [
"%matplotlib inline\n",
"\n",
"import sys\n",
"import os\n",
"import json\n",
"import zipfile\n",
"import random\n",
"import datetime\n",
"from urllib.request import urlretrieve\n",
"from dateutil.parser import parse\n",
"from random import shuffle\n",
"\n",
"import boto3\n",
"import s3fs\n",
"import sagemaker\n",
"import numpy as np\n",
"import pandas as pd\n",
"import statsmodels.api as sm\n",
"import matplotlib.pyplot as plt\n",
"from scipy.stats import randint\n",
"import seaborn as sns # used for plot interactive graph. \n",
"\n",
"from __future__ import print_function\n",
"from ipywidgets import interact, interactive, fixed, interact_manual\n",
"import ipywidgets as widgets\n",
"from ipywidgets import IntSlider, FloatSlider, Checkbox\n",
"\n",
"from sklearn.model_selection import train_test_split # to split the data into two parts\n",
"from sklearn.cross_validation import KFold # use for cross validation\n",
"from sklearn.preprocessing import StandardScaler # for normalization\n",
"from sklearn.preprocessing import MinMaxScaler\n",
"from sklearn.pipeline import Pipeline # pipeline making\n",
"from sklearn.model_selection import cross_val_score\n",
"from sklearn.feature_selection import SelectFromModel\n",
"from sklearn import metrics # for the check the error and accuracy of the model\n",
"from sklearn.metrics import mean_squared_error,r2_score\n",
"\n",
"## for Deep-learing:\n",
"import keras\n",
"from keras.layers import Dense\n",
"from keras.models import Sequential\n",
"# from keras.utils import to_categorical\n",
"from keras.optimizers import SGD \n",
"from keras.callbacks import EarlyStopping\n",
"from keras.utils import np_utils\n",
"import itertools\n",
"from keras.layers import LSTM\n",
"from keras.layers.convolutional import Conv1D\n",
"from keras.layers.convolutional import MaxPooling1D\n",
"from keras.layers import Dropout\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"# set random seeds for reproducibility\n",
"np.random.seed(42)\n",
"random.seed(42)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"sagemaker_session = sagemaker.Session()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Before starting, we can override the default values for the following: \n",
"- The S3 bucket and prefix that you want to use for training and model data. This should be within the same region as the Notebook Instance, training, and hosting.\n",
"- The IAM role arn used to give training and hosting access to your data. See the documentation for how to create these."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"s3_bucket = sagemaker.Session().default_bucket() # replace with an existing bucket if needed\n",
"s3_prefix = 'deepar-household-electricity-notebook' # prefix used for all data stored within the bucket\n",
"\n",
"role = sagemaker.get_execution_role() # IAM role to use by SageMaker"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"region = sagemaker_session.boto_region_name\n",
"\n",
"s3_data_path = \"s3://{}/{}/data\".format(s3_bucket, s3_prefix)\n",
"s3_output_path = \"s3://{}/{}/output\".format(s3_bucket, s3_prefix)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Next, we configure the container image to be used for the region that we are running in."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"image_name = sagemaker.amazon.amazon_estimator.get_image_uri(region, \"forecasting-deepar\", \"latest\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Importing household electricity consumption dataset"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"After downloading the original dataset from the UCI ML repository, we load and parse the dataset. In addition, we modify dataset into a time-series formation supported by Pandas, so that we can utilize many features to handle time-series dataset (e.g. datetime, resampling, aggregation, basic statistics, etc.)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* https://www.allaboutcircuits.com/textbook/alternating-current/chpt-11/true-reactive-and-apparent-power/\n",
"* https://circuitglobe.com/what-is-power-triangle.html\n",
"* https://en.wikipedia.org/wiki/AC_power\n",
"\n",
""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### White noise\n",
"In discrete time, white noise is a discrete signal whose samples are regarded as a sequence of serially uncorrelated random variables with zero mean and finite variance. Depending on the context, one may also require that the samples be independent and having identical probability distribution (a.k.a. _i.i.d_). In particular, if each sample has a normal distribution with zero mean, the signal is said to be **Gaussian white noise**. \n",
"\n",
"Some properties of white noise:\n",
"* White noise is the simplest example of a **stationary process**. \n",
"* if the lag is 0, auto-covariance will be a variance of probability distribution. Otherwise, auto-covariance will be 0. That is:\n",
"
\n",
"\\begin{equation}\n",
" \\gamma_l = \n",
" \\begin{cases}\n",
" Var[e_t] & \\text{for $l = 0$} \\\\\n",
" 0 & \\text{for $l \\neq 0$} \n",
" \\end{cases}\n",
"\\end{equation}\n",
" \n",
"* if the lag is 0, auto-correlation will be 1. Otherwise, auto-correlation will be 0. That is:\n",
"
\n",
"\\begin{equation}\n",
"e_t \\sim \\text{ $i.i.d$ } N(\\mu,\\sigma^2) \\text{ for all $t$}\n",
"\\end{equation}\n",
"\n",
"**Prewhitening:**\n",
"A technique to process a time series data to make it behave statistically like white noise. (The 'pre' means that whitening precedes some other analytical approaches enabling to work better if the additive noise is white).\n",
"\n",
"https://datascienceschool.net/view-notebook/6b963e771dc54f8c8cb23437274a86d6/ \n",
"http://hosting.astro.cornell.edu/~cordes/A6523/Prewhitening.pdf"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"FILE_NAME = './household_power_consumption.csv'"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* Note that dataset includes `nan` and `?` as a `string`. They need to be converted to numpy `nan` in importing stage and treated both of them the same.\n",
"* Two columns `Date` and `Time` can be merged into one column `Date_Time`.\n",
"* The index of dataset need to be reset (with `Date_Time`)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* Data can be downloaded from: http://archive.ics.uci.edu/ml/machine-learning-databases/00235/\n",
"* Just open the zip file and grab the file 'household_power_consumption.txt' put it in the directory that you would like to run the code.\n",
"* `infer_datetime_format`: to allow speedups for homogeneously formatted datetimes. `pd.read_csv` and `pd.to_datetime` learned a new `infer_datetime_format` keyword which greatly improves parsing perf in many cases. (http://pandas.pydata.org/pandas-docs/version/0.17.1/whatsnew.html#id55)\n",
"* `low_memory`: Please refer the following link: https://stackoverflow.com/questions/24251219/pandas-read-csv-low-memory-and-dtype-options)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/ec2-user/anaconda3/envs/mxnet_p36/lib/python3.6/site-packages/dateutil/parser/__init__.py:46: DeprecationWarning: _timelex is a private class and may break without warning, it will be moved and or renamed in future versions.\n",
" warnings.warn(msg, DeprecationWarning)\n"
]
},
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
Global_active_power
\n",
"
Global_reactive_power
\n",
"
Voltage
\n",
"
Global_intensity
\n",
"
Sub_metering_1
\n",
"
Sub_metering_2
\n",
"
Sub_metering_3
\n",
"
\n",
"
\n",
"
Date_Time
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
"
\n",
"
2006-12-16 17:24:00
\n",
"
4.216
\n",
"
0.418
\n",
"
234.84
\n",
"
18.4
\n",
"
0.0
\n",
"
1.0
\n",
"
17.0
\n",
"
\n",
"
\n",
"
2006-12-16 17:25:00
\n",
"
5.360
\n",
"
0.436
\n",
"
233.63
\n",
"
23.0
\n",
"
0.0
\n",
"
1.0
\n",
"
16.0
\n",
"
\n",
"
\n",
"
2006-12-16 17:26:00
\n",
"
5.374
\n",
"
0.498
\n",
"
233.29
\n",
"
23.0
\n",
"
0.0
\n",
"
2.0
\n",
"
17.0
\n",
"
\n",
"
\n",
"
2006-12-16 17:27:00
\n",
"
5.388
\n",
"
0.502
\n",
"
233.74
\n",
"
23.0
\n",
"
0.0
\n",
"
1.0
\n",
"
17.0
\n",
"
\n",
"
\n",
"
2006-12-16 17:28:00
\n",
"
3.666
\n",
"
0.528
\n",
"
235.68
\n",
"
15.8
\n",
"
0.0
\n",
"
1.0
\n",
"
17.0
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Global_active_power Global_reactive_power Voltage \\\n",
"Date_Time \n",
"2006-12-16 17:24:00 4.216 0.418 234.84 \n",
"2006-12-16 17:25:00 5.360 0.436 233.63 \n",
"2006-12-16 17:26:00 5.374 0.498 233.29 \n",
"2006-12-16 17:27:00 5.388 0.502 233.74 \n",
"2006-12-16 17:28:00 3.666 0.528 235.68 \n",
"\n",
" Global_intensity Sub_metering_1 Sub_metering_2 \\\n",
"Date_Time \n",
"2006-12-16 17:24:00 18.4 0.0 1.0 \n",
"2006-12-16 17:25:00 23.0 0.0 1.0 \n",
"2006-12-16 17:26:00 23.0 0.0 2.0 \n",
"2006-12-16 17:27:00 23.0 0.0 1.0 \n",
"2006-12-16 17:28:00 15.8 0.0 1.0 \n",
"\n",
" Sub_metering_3 \n",
"Date_Time \n",
"2006-12-16 17:24:00 17.0 \n",
"2006-12-16 17:25:00 16.0 \n",
"2006-12-16 17:26:00 17.0 \n",
"2006-12-16 17:27:00 17.0 \n",
"2006-12-16 17:28:00 17.0 "
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data = pd.read_csv(FILE_NAME, sep=\",\", parse_dates={'Date_Time': ['Date', 'Time']}, \n",
" infer_datetime_format=True, na_values=['nan','?'], \n",
" low_memory=False, index_col='Date_Time')\n",
"data.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We need to check the type of data for each column. If some of them has `object` type, they should be converted into the numerical format (e.g. `float64`, `int64`).\n",
"For example, we can use the following codes for the above tasks: \n",
"```\n",
"data = data.convert_objects(convert_numeric=True)\n",
"data.info()\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"DatetimeIndex: 2075259 entries, 2006-12-16 17:24:00 to 2010-11-26 21:02:00\n",
"Data columns (total 7 columns):\n",
"Global_active_power float64\n",
"Global_reactive_power float64\n",
"Voltage float64\n",
"Global_intensity float64\n",
"Sub_metering_1 float64\n",
"Sub_metering_2 float64\n",
"Sub_metering_3 float64\n",
"dtypes: float64(7)\n",
"memory usage: 126.7 MB\n"
]
}
],
"source": [
"data.info()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"When we want to build an ML model, we need to understand dataset in the following perspectives:\n",
"* The meaning of data for each feature (column)\n",
"* Summarized information from the basic statistics\n",
"* Relaionship or Association between features\n",
"* Features having similar patterns\n",
"* Trend or Periodicity\n",
"* Outliers, Noisy data, Missing values\n",
"* Data type (categorical data, numerical data, etc.)\n",
"... "
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
"
],
"text/plain": [
" Global_active_power Global_reactive_power Voltage \\\n",
"count 2.075259e+06 2.075259e+06 2.075259e+06 \n",
"mean 1.091615e+00 1.237145e-01 2.408399e+02 \n",
"std 1.050655e+00 1.120142e-01 3.219643e+00 \n",
"min 7.600000e-02 0.000000e+00 2.232000e+02 \n",
"25% 3.100000e-01 4.800000e-02 2.390200e+02 \n",
"50% 6.300000e-01 1.020000e-01 2.409600e+02 \n",
"75% 1.520000e+00 1.920000e-01 2.428600e+02 \n",
"max 1.112200e+01 1.390000e+00 2.541500e+02 \n",
"\n",
" Global_intensity Sub_metering_1 Sub_metering_2 Sub_metering_3 \n",
"count 2.075259e+06 2.075259e+06 2.075259e+06 2.075259e+06 \n",
"mean 4.627759e+00 1.121923e+00 1.298520e+00 6.458447e+00 \n",
"std 4.416490e+00 6.114397e+00 5.785470e+00 8.384178e+00 \n",
"min 2.000000e-01 0.000000e+00 0.000000e+00 0.000000e+00 \n",
"25% 1.400000e+00 0.000000e+00 0.000000e+00 0.000000e+00 \n",
"50% 2.800000e+00 0.000000e+00 0.000000e+00 1.000000e+00 \n",
"75% 6.400000e+00 0.000000e+00 1.000000e+00 1.700000e+01 \n",
"max 4.840000e+01 8.800000e+01 8.000000e+01 3.100000e+01 "
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# another sanity check to make sure that there are not more any nan\n",
"data.isnull().sum()\n",
"data.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can make a transformed dataset with different frequency by using `resample()`. \n",
"**down-sampling:** \n",
"* To transform the original dataset to a lower frequencey\n",
"* Summarize or aggregate the higher frequency data points (i.e. original dataset)\n",
"* Example: 1 minute-based timestamps → 5 minute-based timestamps \n",
"\n",
"**up-sampling:** \n",
"* To transform the original dataset to a higher frequencey\n",
"* the lower frequency data points (i.e. original dataset)\n",
"* Example: 1 minute-based timestamps → 0.5 minute-based (i.e. 30 second-based) timestamps \n",
"\n",
"https://machinelearningmastery.com/resample-interpolate-time-series-data-python/ \n",
"**Resampling** \n",
"Resampling involves changing the frequency of your time series observations.\n",
"\n",
"Two types of resampling are:\n",
"\n",
"1. Upsampling: Where you increase the frequency of the samples, such as from minutes to seconds. For upsampling, `ffill()` (i.e. forward filling) or `bfill()` (i.e. backward filling) can be required to fill the newly created data points that was not available. \n",
"1. Downsampling: Where you decrease the frequency of the samples, such as from days to months. For downsampling, some kind of aggregation operation can be needed. (e.g. `mean()`, `first()`, etc.)\n",
"\n",
"In both cases, data must be invented.\n",
"\n",
"In the case of upsampling, care may be needed in determining how the fine-grained observations are calculated using interpolation. In the case of downsampling, care may be needed in selecting the summary statistics used to calculate the new aggregated values.\n",
"\n",
"There are perhaps two main reasons why you may be interested in resampling your time series data:\n",
"\n",
"1. Problem Framing: Resampling may be required if your data is available at the same frequency that you want to make predictions.\n",
"1. Feature Engineering: Resampling can also be used to provide additional structure or insight into the learning problem for supervised learning models.\n",
"There is a lot of overlap between these two cases.\n",
"\n",
"For example, you may have daily data and want to predict a monthly problem. You could use the daily data directly or you could downsample it to monthly data and develop your model.\n",
"\n",
"A feature engineering perspective may use observations and summaries of observations from both time scales and more in developing a model.\n"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Date_Time\n",
"2006-12-31 41817.648460\n",
"2007-01-31 69014.045230\n",
"2007-02-28 56491.069230\n",
"2007-03-31 58863.283615\n",
"2007-04-30 39245.548781\n",
"2007-05-31 44008.872000\n",
"2007-06-30 35729.767447\n",
"2007-07-31 29846.831570\n",
"2007-08-31 34120.475531\n",
"2007-09-30 41874.789230\n",
"2007-10-31 49278.553230\n",
"2007-11-30 55920.827230\n",
"2007-12-31 72605.261615\n",
"2008-01-31 65170.473615\n",
"2008-02-29 49334.346845\n",
"2008-03-31 55591.685615\n",
"2008-04-30 48209.992000\n",
"2008-05-31 45724.043230\n",
"2008-06-30 42945.063615\n",
"2008-07-31 35479.601230\n",
"2008-08-31 12344.063230\n",
"2008-09-30 42667.792000\n",
"2008-10-31 50743.399447\n",
"2008-11-30 59918.584535\n",
"2008-12-31 56911.416668\n",
"2009-01-31 62951.099615\n",
"2009-02-28 50291.953362\n",
"2009-03-31 54761.169230\n",
"2009-04-30 49277.707230\n",
"2009-05-31 45214.196460\n",
"2009-06-30 37149.767696\n",
"2009-07-31 27594.810460\n",
"2009-08-31 30049.032998\n",
"2009-09-30 42631.838845\n",
"2009-10-31 51089.811615\n",
"2009-11-30 55068.733615\n",
"2009-12-31 60907.189230\n",
"2010-01-31 62797.504679\n",
"2010-02-28 55473.889230\n",
"2010-03-31 50368.601679\n",
"2010-04-30 44379.215615\n",
"2010-05-31 48893.491615\n",
"2010-06-30 41887.607230\n",
"2010-07-31 32188.843615\n",
"2010-08-31 29991.384254\n",
"2010-09-30 42026.211946\n",
"2010-10-31 51934.045615\n",
"2010-11-30 44598.388000\n",
"Freq: M, Name: Global_active_power, dtype: float64"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data['Global_active_power'].resample('M').sum()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Data Visualization"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Below I resample over day, and show the sum and mean of Global_active_power. It is seen that mean and sum of resampled data set, have similar structure."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Sum of 'Global_active_power' resampled over month\n",
"data['Global_active_power'].resample('M').mean().plot(kind='bar')\n",
"plt.xticks(rotation=60)\n",
"plt.ylabel('Global_active_power')\n",
"plt.title('Global_active_power per month (averaged over month)')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Below I show mean of 'global_active_power' resampled over day."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"data['Global_active_power'].resample('Q').mean().plot(kind='bar')\n",
"plt.xticks(rotation=60)\n",
"plt.ylabel('Global_active_power')\n",
"plt.title('Global_active_power per quarter (averaged over quarter)')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It is very important to note from above two plots that resampling over larger time inteval, will diminish the periodicity of system as we expect. This is important for machine learning feature engineering."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"mean of 'Voltage' resampled over month"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Below I show hist plot of the mean of different feature resampled over month \n",
"data.Global_active_power.resample('M').mean().plot(kind='hist', alpha=0.3, legend=True )\n",
"data.Global_reactive_power.resample('M').mean().plot(kind='hist', alpha=0.3, legend=True)\n",
"#df.Voltage.resample('M').sum().plot(kind='hist',color='g', legend=True)\n",
"data.Global_intensity.resample('M').mean().plot(kind='hist', alpha=0.3, legend=True)\n",
"data.Sub_metering_1.resample('M').mean().plot(kind='hist', alpha=0.3, legend=True)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAD8CAYAAAB6paOMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAGCVJREFUeJzt3Xt0VfWd/vH3w0XxgrVKnGkFDLgQb4SLAUEFlUu1iqK/5Q0tg7VTxhnr1HFWR9FRqeNvLf3pjMXWXxVrBRkqrVIRp2XqDWSogAZFpeC0eKPRjsbYoshEQT/zxzlkAhKyE3L2PmE/r7WycvbOPuf7JDnJc/bl7K2IwMzM8qtT1gHMzCxbLgIzs5xzEZiZ5ZyLwMws51wEZmY55yIwM8s5F4GZWc65CMzMcs5FYGaWc12yDpBEjx49orKyMusYZmYdysqVK9+LiIqWlusQRVBZWUlNTU3WMczMOhRJbyZZzpuGzMxyzkVgZpZzLgIzs5zrEPsIdmTz5s3U1tbS0NCQdRQrY926daNnz5507do16yhmZavDFkFtbS3du3ensrISSVnHsTIUEdTX11NbW0ufPn2yjmNWtjrspqGGhgYOPPBAl4A1SxIHHnig1xrNWtBhiwBwCViL/Bwxa1mHLgIzM9t1HXYfwee09ys/X8vZzHLCawS74J133uHCCy+kb9++HHPMMYwYMYKHH36YxYsXM378+J3ed9q0adx2222tGm/ffffdlbjbmD9/PmvWrGmcvv7663niiSfa7fFzQ8ruw6yduAjaKCI466yzGDVqFK+99horV65k7ty51NbWZh0tke2L4MYbb2Ts2LEZJtp1W7ZsyTqCWYfkImijp556ij322INLL720cd4hhxzC5Zdfvs1y77//PmeddRZVVVUMHz6cl156qfFrL774IqNHj6Zfv37cc889AGzcuJExY8YwZMgQBgwYwCOPPJIoz87ud//991NVVcXAgQOZNGkSzzzzDAsWLOA73/kOgwYN4tVXX+Xiiy/moYceYuHChZx33nmN9128eDFnnHEGAI899hgjRoxgyJAhnHvuuWzcuLHZPJWVlVx11VUMGzaMYcOGsW7dOgDefPNNxowZQ1VVFWPGjGH9+vV8+umn9O3bl4jgT3/6E506dWLJkiUAjBw5knXr1vHRRx9xySWXMHToUAYPHtz4/c2cOZNzzz2XM844g6985SuJflZmtp2IKPuPY445Jra3Zs2abWcUtuq330cLpk+fHldcccUOv7Zo0aI4/fTTIyLiW9/6VkybNi0iIp588skYOHBgRETccMMNUVVVFZs2bYq6urro2bNnvPXWW7F58+bYsGFDRETU1dXFoYceGp999llEROyzzz7N5mnufqtXr47DDjss6urqIiKivr4+IiImT54cDz74YOP9t05v3rw5evXqFRs3boyIiEsvvTRmz54ddXV1MXLkyMb5N998c3z3u99tNs8hhxwSN910U0REzJo1q/HnMX78+Jg5c2ZERNx7770xYcKEiIg45ZRTYvXq1fHoo49GdXV13HTTTdHQ0BCVlZURETF16tSYPXt2RET88Y9/jH79+sXGjRvjvvvui4MPPrjx+9qRzz1X2lN7P+/a8TlqBtREgv+xXiNoJ5dddhkDBw5k6NCh28xfunQpkyZNAmD06NHU19ezYcMGACZMmMBee+1Fjx49OPnkk3n22WeJCK655hqqqqoYO3Ysb731Fu+8806L4zd3v6eeeopzzjmHHj16AHDAAQfs9HG6dOnCqaeeyqOPPsqWLVv4xS9+wYQJE1i+fDlr1qzh+OOPZ9CgQcyaNYs339z5iQ0nTpzY+HnZsmUALFu2jAsvvBCASZMmsXTpUqDwyn/JkiUsWbKEqVOnsnTpUp577rnGn+djjz3GzTffzKBBgzjppJNoaGhg/fr1AIwbN67F78vMmrf7HDWUsqOOOop58+Y1Tt9555289957VFdXb7Nc7ODoo63Htm9/jLsk5syZQ11dHStXrqRr165UVlYmekNUc/eLiFYfS3/++edz5513csABBzB06FC6d+9ORDBu3DgeeOCBxI/TdNzmMmydP3LkSO666y7efvttbrzxRm699VYWL17MqFGjgMLPcd68efTv33+b+69YsYJ99tmnVd+fmW1r91kjaO8V7xaMHj2ahoYGfvjDHzbO27Rp0+eWGzVqFHPmzAEK29t79OjBfvvtB8AjjzxCQ0MD9fX1LF68mKFDh7JhwwYOOuggunbtyqJFi1p81b1Vc/cbM2YMP/vZz6ivrwcK+ywAunfvzocffrjDxzrppJN4/vnnueeeezj//PMBGD58OL/+9a8bt/Vv2rSJ3/72tzvN9NOf/rTx84gRIwA47rjjmDt3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\n",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Below I show hist plot of the mean of different feature resampled over month \n",
"data.Global_active_power.resample('M').mean().plot(kind='hist', color='r', legend=True )\n",
"#from pyqt_fit import kde\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Comparison of the mean of different features resampled over day"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/ec2-user/anaconda3/envs/mxnet_p36/lib/python3.6/site-packages/matplotlib/axes/_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.\n",
" warnings.warn(\"The 'normed' kwarg is deprecated, and has been \"\n",
"/home/ec2-user/anaconda3/envs/mxnet_p36/lib/python3.6/site-packages/matplotlib/axes/_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.\n",
" warnings.warn(\"The 'normed' kwarg is deprecated, and has been \"\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAaUAAAGoCAYAAADmTPpwAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3X+YlXWd//Hne8ZDDKSOGJr8Wvx1oSEwJgo2riItqamoqKFCSe7i1lX+iCIxKSDXdGOX3Da7TNN0NzSU6PgzDTUyCVF0sIGUzGKRo99AkUJFHeH9/eOcg8MwwDlnzv3zvB7XNRdz7nPPfX9uHM+Lz+f+3J+3uTsiIiJxUBd1A0RERIoUSiIiEhsKJRERiQ2FkoiIxIZCSUREYkOhJCIisaFQEhGR2FAoiYhIbCiUREQkNvaIugFl0NITIpJ0FnUD4k49JRERiY0k9ZSq5o6lazrdfsGIASG3RERE2lNPSUREYkOhJCIisaFQEhGR2FAoiYhIbCiUREQkNhRKIiISGwolERGJDYWSiIjEhkJJRERiQ6EkIiKxoVASEZHYUCiJiEhsKJRERCQ2FEoiIhIbCiUREYkNhZKIiMSGQklERGJDoSQiIrGhUBIRkdhQKImISGwolEREJDYUSiIiEht7RN2AoN2xdE3UTRARkRKppyQiIrGhUBIRkdhQKImISGwolEREJDYUSiIiEhsKJRERiQ2FkoiIxIZCSUREYkOhJCIisZH6FR3CtLPVIy4YMSDkloiIJJN6SiIiEhvqKYVAPSgRkdKopyQiIrGhUBIRkdjQ8F07nQ2zaYhNRCQ86imJiEhsKJRERCQ2FEoiIhIbCiUREYkNTXSIkCZWiIhsT6FUoZ09ECsiIpVTKO2GwkdEJDwKpZjRkkQiUssUSglRTo9NASYiSaXZdyIiEhvqKaWQelUiklQKpRoX9kQOhaCI7Iq5e9RtKImZPQR8pMwf+wjwWgDNiZNauEbQdaZJLVwjdH6dr7n7yVE0JikSE0qVMLNl7j486nYEqRauEXSdaVIL1wi1c53VpokOIiISGwolERGJjbSH0k1RNyAEtXCNoOtMk1q4Rqid66yqVN9TEhGRZEl7T0lERBJEoSQiIrGhUBIRkdhQKImISGwolEREJDYSE0onn3yyA/rSl770leSvkqT0864kiQml116rhaWyRERq+/MuMaEkIiLpp1ASEZHYUCiJiEhsJLrIX1tbG2vXruWdd96JuikSI927d6dfv35kMpmomyIiZUp0KK1du5Y999yTgQMHYmZRN0diwN15/fXXWbt2LQceeGDUzRGRMiV6+O6dd95h3333VSDJNmbGvvvuq96zSEIlOpQABZLsQL8TIsmV+FASEZH0UChJyS666CL2228/jjjiiMja4O5ceumlHHLIIQwdOpRnn302sraISPUplGLo/fffD+S4W7Zs6dLPT5o0iYceeqhKranML3/5S1588UVefPFFbrrpJr74xS9G2h4RqS6FUhesXr2aww47jAsvvJChQ4dyzjnn8PbbbwPwzDPPcMIJJ3DUUUdx0kkn8eqrrwJw8803c/TRRzNs2DDOPvvsbftPmjSJKVOmcOKJJ3LFFVfwm9/8hqamJpqamjjyyCPZtGkT7s7UqVM54ogjGDJkCPPmzQNg0aJFjBo1inPOOYfDDjuMCRMmUKwoPHDgQL797W9z3HHHcffdd3fpeo8//nh69eq1w/Ybb7yRG2+8cYftt912G2eccQYnn3wygwYNYtasWV06P8A999zD5z73OcyMkSNHsnHjxm1/tyJBy7bkaL7uMQ6c9gDN1z1GtiUXdZNSJ9FTwuNg1apV3HLLLTQ3N3PRRRfxwx/+kMsuu4xLLrmEe+65h969ezNv3jyuuuoqbr31VsaNG8fkyZMBmD59OrfccguXXHIJAH/84x955JFHqK+v5/TTT+eGG26gubmZN998k+7du7NgwQKWL1/Oc889x2uvvcbRRx/N8ccfD0BLSwsrV66kT58+NDc3s3jxYo477jgg/9zOE088sUPb586dy+zZs3fYfsghhzB//vyS/w6+8IUv7PS9p556ihUrVtCjRw+OPvpoTj31VIYPH77dPuPHj2fVqlU7/OyUKVP43Oc+t922XC5H//79t73u168fuVyOAw44oOT2ilQi25LjygWtbG7LjzjkNm7mygWtAJx5ZN8om5YqCqUu6t+/P83NzQBMnDiR73//+5x88smsWLGCMWPGAPlhs+KH5ooVK5g+fTobN27kzTff5KSTTtp2rHPPPZf6+noAmpubmTJlChMmTGDcuHH069ePJ554gvPPP5/6+nr2339/TjjhBJ5++mn22msvjjnmGPr16wdAU1MTq1ev3hZK48eP77Tt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\n",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"## The correlations between 'Global_intensity', 'Global_active_power'\n",
"# data_returns = data.pct_change()\n",
"sns.jointplot(x='Global_intensity', y='Global_active_power', data=data) \n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/ec2-user/anaconda3/envs/mxnet_p36/lib/python3.6/site-packages/matplotlib/axes/_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.\n",
" warnings.warn(\"The 'normed' kwarg is deprecated, and has been \"\n",
"/home/ec2-user/anaconda3/envs/mxnet_p36/lib/python3.6/site-packages/matplotlib/axes/_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.\n",
" warnings.warn(\"The 'normed' kwarg is deprecated, and has been \"\n"
]
},
{
"data": {
"image/png": "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rsF3vvMdXHLJJdi9ezcuuugiAIllM+MNcPfu3VixYgUikQjeeecdLFiwIPVYV111FXw+HwCgvb0dN910E5YuXYrFixdj0qRJ2LJlC66++mr4fD68733vw0c/+lH85je/wQknnIBzzz0XkyZNAgC0tLRg//79qaC0ZMkS07EvXboUS5cuLejfbczE0mVnsPX19eEPf/gD7r77buzfv9/2Y1900UU46aSTAACLFy/Gli1bRgQlY5ZYqrFS4RiUqtyrkaij68nbst/cRASqipkzZ+K5554bcftrr70WoVAIc+bMwUMPPYRnnnkm9bNx48alvu/q6sLChQvx9NNPY+7cufj5z39u+uZqGDNmTOp7n8+XsS+V/rjpnMyU7r33XjzwwAMAgKeffhqTJk3CK6+8kvr5wYMHMXHixIz7PPfcc9i5cyemTp2KoaEhvP7667jwwgsz/s1mzF7TbE5mSnbGSoXjnlKVm9gUcHQ9eduBAwdSwefRRx/F+eefj+nTp+PQoUOp62OxGPbs2QMAePvtt3HKKacgFoth9erVlo/70ksvYdasWbjlllvQ1taGvXv34oILLkBPTw/i8TgOHTqEX/7ylzj33HMLHvvSpUvR19c34sts6e5LX/pS6ucTJ07EokWL8IMf/ACqim3btmH8+PEjlsNuuOEGvPrqq9i/fz+2bNmCD33oQ6mA9N3vfhff/e53Tcf1s5/9DIcPH0Y0GkUoFErNRNP19PSYjj07IAGwNVYqHINSletcMB0Bvy/juoDfh84F010aERXjjDPOwMMPP4zZs2fj8OHDuOGGGzB69GisXbsWt9xyC+bMmYOWlhb86le/AgB885vfxHnnnYeLLroIM2bMsHzce+65B2eddRbmzJmDQCCAT3ziE/jrv/5rzJ49G3PmzMH8+fPxr//6r3j/+99fqX9qhk9+8pM49dRTcfrpp+O6667D9773vdTPWlpa8t5/7969qSW6bOeffz4++9nPoqWlBVdcccWIpbtSjpWKJ7mm8F7S1tamO3bscHsYnhTqDaN74z68GoliYlMAnQumcz+pAC+88ALOOOMM155///79uPTSS7F7927XxlCtLr30Uqxbtw6jR4/OuP6hhx7Cjh07LGdR5WTx+2Rr86lG3+9s/du5p1QDOlqDDEJU15566im3h0AlwqBE5BFTp07lLKnErr32Wlx77bVu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\n",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"## The correlations between 'Voltage' and 'Global_active_power'\n",
"sns.jointplot(x='Voltage', y='Global_active_power', data=data) \n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"From above two plots it is seen that 'Global_intensity' and 'Global_active_power' correlated. But 'Voltage', 'Global_active_power' are less correlated. This is important observation for machine learning purpose."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Comparison among features"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Correlations of mean of features resampled over months\n",
"plt.matshow(data.resample('M').mean().corr(method='spearman'),vmax=1,vmin=-1,cmap='RdBu')\n",
"plt.title('resampled over month', size=15)\n",
"plt.colorbar()\n",
"plt.margins(0.02)\n",
"plt.matshow(data.resample('A').mean().corr(method='spearman'),vmax=1,vmin=-1,cmap='RdBu')\n",
"plt.title('resampled over year', size=15)\n",
"plt.colorbar()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It is seen from above that with resampling techniques one can change the correlations among features. This is important for feature engineering."
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
Global_active_power
\n",
"
Global_reactive_power
\n",
"
Voltage
\n",
"
Global_intensity
\n",
"
Sub_metering_1
\n",
"
Sub_metering_2
\n",
"
Sub_metering_3
\n",
"
\n",
" \n",
" \n",
"
\n",
"
Global_active_power
\n",
"
1.000000
\n",
"
0.247017
\n",
"
-0.399762
\n",
"
0.998889
\n",
"
0.484401
\n",
"
0.434569
\n",
"
0.638555
\n",
"
\n",
"
\n",
"
Global_reactive_power
\n",
"
0.247017
\n",
"
1.000000
\n",
"
-0.112246
\n",
"
0.266120
\n",
"
0.123111
\n",
"
0.139231
\n",
"
0.089617
\n",
"
\n",
"
\n",
"
Voltage
\n",
"
-0.399762
\n",
"
-0.112246
\n",
"
1.000000
\n",
"
-0.411363
\n",
"
-0.195976
\n",
"
-0.167405
\n",
"
-0.268172
\n",
"
\n",
"
\n",
"
Global_intensity
\n",
"
0.998889
\n",
"
0.266120
\n",
"
-0.411363
\n",
"
1.000000
\n",
"
0.489298
\n",
"
0.440347
\n",
"
0.626543
\n",
"
\n",
"
\n",
"
Sub_metering_1
\n",
"
0.484401
\n",
"
0.123111
\n",
"
-0.195976
\n",
"
0.489298
\n",
"
1.000000
\n",
"
0.054721
\n",
"
0.102571
\n",
"
\n",
"
\n",
"
Sub_metering_2
\n",
"
0.434569
\n",
"
0.139231
\n",
"
-0.167405
\n",
"
0.440347
\n",
"
0.054721
\n",
"
1.000000
\n",
"
0.080872
\n",
"
\n",
"
\n",
"
Sub_metering_3
\n",
"
0.638555
\n",
"
0.089617
\n",
"
-0.268172
\n",
"
0.626543
\n",
"
0.102571
\n",
"
0.080872
\n",
"
1.000000
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Global_active_power Global_reactive_power Voltage \\\n",
"Global_active_power 1.000000 0.247017 -0.399762 \n",
"Global_reactive_power 0.247017 1.000000 -0.112246 \n",
"Voltage -0.399762 -0.112246 1.000000 \n",
"Global_intensity 0.998889 0.266120 -0.411363 \n",
"Sub_metering_1 0.484401 0.123111 -0.195976 \n",
"Sub_metering_2 0.434569 0.139231 -0.167405 \n",
"Sub_metering_3 0.638555 0.089617 -0.268172 \n",
"\n",
" Global_intensity Sub_metering_1 Sub_metering_2 \\\n",
"Global_active_power 0.998889 0.484401 0.434569 \n",
"Global_reactive_power 0.266120 0.123111 0.139231 \n",
"Voltage -0.411363 -0.195976 -0.167405 \n",
"Global_intensity 1.000000 0.489298 0.440347 \n",
"Sub_metering_1 0.489298 1.000000 0.054721 \n",
"Sub_metering_2 0.440347 0.054721 1.000000 \n",
"Sub_metering_3 0.626543 0.102571 0.080872 \n",
"\n",
" Sub_metering_3 \n",
"Global_active_power 0.638555 \n",
"Global_reactive_power 0.089617 \n",
"Voltage -0.268172 \n",
"Global_intensity 0.626543 \n",
"Sub_metering_1 0.102571 \n",
"Sub_metering_2 0.080872 \n",
"Sub_metering_3 1.000000 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display(data.corr())\n",
"pd.plotting.scatter_matrix(data, figsize=(12, 12))\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Please check your scatter_matrix as below: \n",
""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### StatsModels\n",
"\n",
"`statsmodels` is a Python module that provides classes and functions for the estimation of many different statistical models, as well as for conducting statistical tests, and statistical data exploration. An extensive list of result statistics are available for each estimator. The results are tested against existing statistical packages to ensure that they are correct. The package is released under the open source Modified BSD (3-clause) license. The online documentation is hosted at [statsmodels.org](http://www.statsmodels.org/).\n",
"\n",
"1. Statistics `stats`\n",
" * statistical tests\n",
" * kernel density estimation\n",
" * generalized method of moments \n",
"
\n",
"1. Linear regression\n",
" * Linear model\n",
" * Generalized Linear Model (GLM)\n",
" * Robust Linear Model\n",
" * Linear Mixed Effects Model\n",
" * ANOVA (Analysis of Variance)\n",
" * Discrete Dependent Variable \n",
"
\n",
"1. Time-Series analysis\n",
" * ARMA/ARIMA process\n",
" * Vector ARMA process"
]
},
{
"cell_type": "code",
"execution_count": 75,
"metadata": {},
"outputs": [],
"source": [
"timeseries = data.Global_active_power.resample('D').mean()\n",
"# for i in range(num_timeseries):\n",
"# timeseries.append(np.trim_zeros(data.iloc[:,i], trim='f'))"
]
},
{
"cell_type": "code",
"execution_count": 76,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Date_Time\n",
"2006-12-16 3.053475\n",
"2006-12-17 2.354486\n",
"2006-12-18 1.530435\n",
"2006-12-19 1.157079\n",
"2006-12-20 1.545658\n",
"Freq: D, Name: Global_active_power, dtype: float64"
]
},
"execution_count": 76,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"timeseries.head()"
]
},
{
"cell_type": "code",
"execution_count": 77,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1442"
]
},
"execution_count": 77,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(timeseries)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Train and Test splits\n",
"\n",
"Often times one is interested in evaluating the model or tuning its hyperparameters by looking at error metrics on a hold-out test set. Here we split the available data into train and test sets for evaluating the trained model. For standard machine learning tasks such as classification and regression, one typically obtains this split by randomly separating examples into train and test sets. However, in forecasting it is important to do this train/test split based on time rather than by time series.\n",
"\n",
"In this example, we will reserve the last section of each of the time series for evalutation purpose and use only the first part as training data. "
]
},
{
"cell_type": "code",
"execution_count": 199,
"metadata": {},
"outputs": [],
"source": [
"# we use minute frequency for the time series\n",
"freq = 'D'\n",
"\n",
"# we predict for 60 days \n",
"prediction_length = 60\n",
"\n",
"# we also use 60 days as context length, \n",
"# this is the number of state updates accomplished before making predictions\n",
"context_length = 60"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We specify here the portion of the data that is used for training: the model sees data from 2006-12-16 to 2008-12-31 for training."
]
},
{
"cell_type": "code",
"execution_count": 201,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Date_Time\n",
"2006-12-16 3.053475\n",
"2006-12-17 2.354486\n",
"2006-12-18 1.530435\n",
"2006-12-19 1.157079\n",
"2006-12-20 1.545658\n",
"Freq: D, Name: Global_active_power, dtype: float64"
]
},
"execution_count": 201,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"timeseries.head()"
]
},
{
"cell_type": "code",
"execution_count": 202,
"metadata": {},
"outputs": [],
"source": [
"start_dataset = pd.Timestamp(\"2006-12-16\", freq=freq)\n",
"end_training = pd.Timestamp(\"2010-07-11\", freq=freq)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The DeepAR JSON input format represents each time series as a JSON object. In the simplest case each time series just consists of a start time stamp (``start``) and a list of values (``target``). For more complex cases, DeepAR also supports the fields ``dynamic_feat`` for time-series features and ``cat`` for categorical features, which we will use later."
]
},
{
"cell_type": "code",
"execution_count": 203,
"metadata": {},
"outputs": [],
"source": [
"training_data = [\n",
" {\n",
" \"start\": str(start_dataset),\n",
" \"target\": timeseries[start_dataset:end_training - 1].tolist() # We use -1, because pandas indexing includes the upper bound \n",
" # \"target\": ts[start_dataset:end_training - 1].tolist() # We use -1, because pandas indexing includes the upper bound \n",
" }\n",
" #for ts in timeseries\n",
"]\n",
"# print(len(training_data))"
]
},
{
"cell_type": "code",
"execution_count": 204,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1303"
]
},
"execution_count": 204,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(timeseries[start_dataset:end_training -1])"
]
},
{
"cell_type": "code",
"execution_count": 205,
"metadata": {},
"outputs": [],
"source": [
"test_data = [\n",
" {\n",
" \"start\": str(start_dataset),\n",
" \"target\": timeseries[end_training:end_training + 10 * prediction_length].tolist() # We use -1, because pandas indexing includes the upper bound \n",
" }\n",
" #for ts in timeseries\n",
"]\n",
"# print(len(test_data))"
]
},
{
"cell_type": "code",
"execution_count": 206,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"139"
]
},
"execution_count": 206,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(timeseries[end_training:end_training + 10 * prediction_length])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's now write the dictionary to the `jsonlines` file format that DeepAR understands (it also supports gzipped jsonlines and parquet)."
]
},
{
"cell_type": "code",
"execution_count": 207,
"metadata": {},
"outputs": [],
"source": [
"def write_dicts_to_file(path, data):\n",
" with open(path, 'wb') as fp:\n",
" for d in data:\n",
" fp.write(json.dumps(d).encode(\"utf-8\"))\n",
" fp.write(\"\\n\".encode('utf-8'))"
]
},
{
"cell_type": "code",
"execution_count": 208,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 4 ms, sys: 0 ns, total: 4 ms\n",
"Wall time: 2.18 ms\n"
]
}
],
"source": [
"%%time\n",
"write_dicts_to_file(\"train.json\", training_data)\n",
"write_dicts_to_file(\"test.json\", test_data)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now that we have the data files locally, let us copy them to S3 where DeepAR can access them. Depending on your connection, this may take a couple of minutes."
]
},
{
"cell_type": "code",
"execution_count": 209,
"metadata": {},
"outputs": [],
"source": [
"s3 = boto3.resource('s3')\n",
"def copy_to_s3(local_file, s3_path, override=False):\n",
" assert s3_path.startswith('s3://')\n",
" split = s3_path.split('/')\n",
" bucket = split[2]\n",
" path = '/'.join(split[3:])\n",
" buk = s3.Bucket(bucket)\n",
" \n",
" if len(list(buk.objects.filter(Prefix=path))) > 0:\n",
" if not override:\n",
" print('File s3://{}/{} already exists.\\nSet override to upload anyway.\\n'.format(s3_bucket, s3_path))\n",
" return\n",
" else:\n",
" print('Overwriting existing file')\n",
" with open(local_file, 'rb') as data:\n",
" print('Uploading file to {}'.format(s3_path))\n",
" buk.put_object(Key=path, Body=data)"
]
},
{
"cell_type": "code",
"execution_count": 210,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Uploading file to s3://sagemaker-us-west-2-742595989409/deepar-household-electricity-notebook/data/train/train.json\n",
"Uploading file to s3://sagemaker-us-west-2-742595989409/deepar-household-electricity-notebook/data/test/test.json\n",
"CPU times: user 28 ms, sys: 0 ns, total: 28 ms\n",
"Wall time: 122 ms\n"
]
}
],
"source": [
"%%time\n",
"copy_to_s3(\"train.json\", s3_data_path + \"/train/train.json\")\n",
"copy_to_s3(\"test.json\", s3_data_path + \"/test/test.json\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's have a look to what we just wrote to S3."
]
},
{
"cell_type": "code",
"execution_count": 211,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{\"start\": \"2006-12-16 00:00:00\", \"target\": [3.0534747474747492, 2.354486111111111, 1.530434722222219...\n"
]
}
],
"source": [
"s3filesystem = s3fs.S3FileSystem()\n",
"with s3filesystem.open(s3_data_path + \"/train/train.json\", 'rb') as fp:\n",
" print(fp.readline().decode(\"utf-8\")[:100] + \"...\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We are all set with our dataset processing, we can now call DeepAR to train a model and generate predictions."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Train a model\n",
"\n",
"Here we define the estimator that will launch the training job."
]
},
{
"cell_type": "code",
"execution_count": 212,
"metadata": {},
"outputs": [],
"source": [
"estimator = sagemaker.estimator.Estimator(\n",
" sagemaker_session=sagemaker_session,\n",
" image_name=image_name,\n",
" role=role,\n",
" train_instance_count=1,\n",
" train_instance_type='ml.m4.xlarge',\n",
" base_job_name='deepar-home-electricity-demo',\n",
" output_path=s3_output_path\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Next we need to set the hyperparameters for the training job. For example frequency of the time series used, number of data points the model will look at in the past, number of predicted data points. The other hyperparameters concern the model to train (number of layers, number of cells per layer, likelihood function) and the training options (number of epochs, batch size, learning rate...). We use default parameters for every optional parameter in this case (you can always use [Sagemaker Automated Model Tuning](https://aws.amazon.com/blogs/aws/sagemaker-automatic-model-tuning/) to tune them)."
]
},
{
"cell_type": "code",
"execution_count": 213,
"metadata": {},
"outputs": [],
"source": [
"# hyperparameters = {\n",
"# \"time_freq\": freq,\n",
"# \"epochs\": \"5\",\n",
"# \"early_stopping_patience\": \"10\",\n",
"# \"mini_batch_size\": \"20\",\n",
"# \"learning_rate\": \"0.001\",\n",
"# \"context_length\": str(context_length),\n",
"# \"prediction_length\": str(prediction_length)\n",
"# }\n",
"hyperparameters = {\n",
" \"time_freq\": freq,\n",
" \"context_length\": str(context_length),\n",
" \"prediction_length\": str(prediction_length),\n",
" \"num_cells\": \"40\",\n",
" \"num_layers\": \"3\",\n",
" \"likelihood\": \"gaussian\",\n",
" \"epochs\": \"20\",\n",
" \"mini_batch_size\": \"32\",\n",
" \"learning_rate\": \"0.001\",\n",
" \"dropout_rate\": \"0.05\",\n",
" \"early_stopping_patience\": \"10\"\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 214,
"metadata": {},
"outputs": [],
"source": [
"estimator.set_hyperparameters(**hyperparameters)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We are ready to launch the training job. SageMaker will start an EC2 instance, download the data from S3, start training the model and save the trained model.\n",
"\n",
"If you provide the `test` data channel as we do in this example, DeepAR will also calculate accuracy metrics for the trained model on this test. This is done by predicting the last `prediction_length` points of each time-series in the test set and comparing this to the actual value of the time-series. \n",
"\n",
"**Note:** the next cell may take a few minutes to complete, depending on data size, model complexity, training options."
]
},
{
"cell_type": "code",
"execution_count": 215,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:sagemaker:Creating training-job with name: deepar-home-electricity-demo-2018-07-27-03-15-18-550\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"......................\n",
"\u001b[31mArguments: train\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:46 INFO 140074042410816] Reading default configuration from /opt/amazon/lib/python2.7/site-packages/algorithm/default-input.json: {u'num_dynamic_feat': u'auto', u'dropout_rate': u'0.10', u'mini_batch_size': u'128', u'test_quantiles': u'[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]', u'_tuning_objective_metric': u'', u'_num_gpus': u'auto', u'num_eval_samples': u'100', u'learning_rate': u'0.001', u'num_cells': u'40', u'num_layers': u'2', u'embedding_dimension': u'10', u'_kvstore': u'auto', u'_num_kv_servers': u'auto', u'cardinality': u'auto', u'likelihood': u'student-t', u'early_stopping_patience': u''}\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:46 INFO 140074042410816] Reading provided configuration from /opt/ml/input/config/hyperparameters.json: {u'dropout_rate': u'0.05', u'learning_rate': u'0.001', u'num_cells': u'40', u'prediction_length': u'60', u'epochs': u'20', u'time_freq': u'D', u'context_length': u'60', u'num_layers': u'3', u'mini_batch_size': u'32', u'likelihood': u'gaussian', u'early_stopping_patience': u'10'}\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:46 INFO 140074042410816] Final configuration: {u'dropout_rate': u'0.05', u'test_quantiles': u'[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]', u'_tuning_objective_metric': u'', u'num_eval_samples': u'100', u'learning_rate': u'0.001', u'num_layers': u'3', u'epochs': u'20', u'embedding_dimension': u'10', u'num_cells': u'40', u'_num_kv_servers': u'auto', u'mini_batch_size': u'32', u'likelihood': u'gaussian', u'num_dynamic_feat': u'auto', u'cardinality': u'auto', u'_num_gpus': u'auto', u'prediction_length': u'60', u'time_freq': u'D', u'context_length': u'60', u'_kvstore': u'auto', u'early_stopping_patience': u'10'}\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:46 INFO 140074042410816] Detected entry point for worker worker\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:46 INFO 140074042410816] Using early stopping with patience 10\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:46 INFO 140074042410816] [cardinality=auto] `cat` field was NOT found in the file `/opt/ml/input/data/train/train.json` and will NOT be used for training.\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:46 INFO 140074042410816] [num_dynamic_feat=auto] `dynamic_feat` field was NOT found in the file `/opt/ml/input/data/train/train.json` and will NOT be used for training.\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:46 INFO 140074042410816] Training set statistics:\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:46 INFO 140074042410816] Real time series\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:46 INFO 140074042410816] number of time series: 1\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:46 INFO 140074042410816] number of observations: 1303\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:46 INFO 140074042410816] mean target length: 1303\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:46 INFO 140074042410816] min/mean/max target: 0.173818051815/1.10822587149/3.31485128403\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:46 INFO 140074042410816] mean abs(target): 1.10822587149\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:46 INFO 140074042410816] contains missing values: no\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:46 INFO 140074042410816] Small number of time series. Doing 10 number of passes over dataset per epoch.\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:46 INFO 140074042410816] Test set statistics:\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:46 INFO 140074042410816] Real time series\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:46 INFO 140074042410816] number of time series: 1\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:46 INFO 140074042410816] number of observations: 139\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:46 INFO 140074042410816] mean target length: 139\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:46 INFO 140074042410816] min/mean/max target: 0.364406943321/0.94621287833/1.88464164734\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:46 INFO 140074042410816] mean abs(target): 0.94621287833\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:46 INFO 140074042410816] contains missing values: no\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:46 INFO 140074042410816] nvidia-smi took: 0.0251779556274 secs to identify 0 gpus\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:46 INFO 140074042410816] Number of GPUs being used: 0\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:46 INFO 140074042410816] Create Store: local\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"get_graph.time\": {\"count\": 1, \"max\": 469.3880081176758, \"sum\": 469.3880081176758, \"min\": 469.3880081176758}}, \"EndTime\": 1532661526.713893, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661526.242651}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:46 INFO 140074042410816] Number of GPUs being used: 0\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"initialize.time\": {\"count\": 1, \"max\": 971.4839458465576, \"sum\": 971.4839458465576, \"min\": 971.4839458465576}}, \"EndTime\": 1532661527.214226, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661526.71398}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:47 INFO 140074042410816] Epoch[0] Batch[0] avg_epoch_loss=1.272068\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:48 INFO 140074042410816] Epoch[0] Batch[5] avg_epoch_loss=0.845399\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:48 INFO 140074042410816] Epoch[0] Batch [5]#011Speed: 218.46 samples/sec#011loss=0.845399\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:48 INFO 140074042410816] processed a total of 319 examples\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"epochs\": {\"count\": 1, \"max\": 20, \"sum\": 20.0, \"min\": 20}, \"update.time\": {\"count\": 1, \"max\": 1658.9720249176025, \"sum\": 1658.9720249176025, \"min\": 1658.9720249176025}}, \"EndTime\": 1532661528.873359, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661527.214291}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:48 INFO 140074042410816] #throughput_metric: host=algo-1, train throughput=192.268629997 records/second\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:48 INFO 140074042410816] #progress_metric: host=algo-1, completed 5 % of epochs\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:48 INFO 140074042410816] best epoch loss so far\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:48 INFO 140074042410816] Saved checkpoint to \"/opt/ml/model/state_c0f18e48-f8ab-4af3-abf5-86b6b3a4b369-0000.params\"\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"state.serialize.time\": {\"count\": 1, \"max\": 47.096967697143555, \"sum\": 47.096967697143555, \"min\": 47.096967697143555}}, \"EndTime\": 1532661528.921088, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661528.873479}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:49 INFO 140074042410816] Epoch[1] Batch[0] avg_epoch_loss=0.450175\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:49 INFO 140074042410816] Epoch[1] Batch[5] avg_epoch_loss=0.410062\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:49 INFO 140074042410816] Epoch[1] Batch [5]#011Speed: 230.24 samples/sec#011loss=0.410062\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:50 INFO 140074042410816] processed a total of 319 examples\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"update.time\": {\"count\": 1, \"max\": 1497.1671104431152, \"sum\": 1497.1671104431152, \"min\": 1497.1671104431152}}, \"EndTime\": 1532661530.41839, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661528.921164}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:50 INFO 140074042410816] #throughput_metric: host=algo-1, train throughput=213.052985582 records/second\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:50 INFO 140074042410816] #progress_metric: host=algo-1, completed 10 % of epochs\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:50 INFO 140074042410816] best epoch loss so far\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:50 INFO 140074042410816] Saved checkpoint to \"/opt/ml/model/state_de513dee-4530-4948-b19a-39bb8395c93e-0000.params\"\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"state.serialize.time\": {\"count\": 1, \"max\": 46.9210147857666, \"sum\": 46.9210147857666, \"min\": 46.9210147857666}}, \"EndTime\": 1532661530.465844, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661530.418465}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:50 INFO 140074042410816] Epoch[2] Batch[0] avg_epoch_loss=0.380706\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:51 INFO 140074042410816] Epoch[2] Batch[5] avg_epoch_loss=0.315473\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:51 INFO 140074042410816] Epoch[2] Batch [5]#011Speed: 221.60 samples/sec#011loss=0.315473\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:52 INFO 140074042410816] Epoch[2] Batch[10] avg_epoch_loss=0.326351\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:52 INFO 140074042410816] Epoch[2] Batch [10]#011Speed: 223.90 samples/sec#011loss=0.339405\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:52 INFO 140074042410816] processed a total of 338 examples\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"update.time\": {\"count\": 1, \"max\": 1643.8491344451904, \"sum\": 1643.8491344451904, \"min\": 1643.8491344451904}}, \"EndTime\": 1532661532.109826, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661530.465917}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:52 INFO 140074042410816] #throughput_metric: host=algo-1, train throughput=205.592850456 records/second\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:52 INFO 140074042410816] #progress_metric: host=algo-1, completed 15 % of epochs\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:52 INFO 140074042410816] best epoch loss so far\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:52 INFO 140074042410816] Saved checkpoint to \"/opt/ml/model/state_1858a189-e242-4797-867e-ab3feb7b666d-0000.params\"\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"state.serialize.time\": {\"count\": 1, \"max\": 56.439876556396484, \"sum\": 56.439876556396484, \"min\": 56.439876556396484}}, \"EndTime\": 1532661532.166809, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661532.109963}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:52 INFO 140074042410816] Epoch[3] Batch[0] avg_epoch_loss=0.309939\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:53 INFO 140074042410816] Epoch[3] Batch[5] avg_epoch_loss=0.259952\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:53 INFO 140074042410816] Epoch[3] Batch [5]#011Speed: 219.63 samples/sec#011loss=0.259952\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:53 INFO 140074042410816] Epoch[3] Batch[10] avg_epoch_loss=0.223093\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:53 INFO 140074042410816] Epoch[3] Batch [10]#011Speed: 227.20 samples/sec#011loss=0.178861\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:53 INFO 140074042410816] processed a total of 331 examples\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"update.time\": {\"count\": 1, \"max\": 1633.991003036499, \"sum\": 1633.991003036499, \"min\": 1633.991003036499}}, \"EndTime\": 1532661533.800934, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661532.166879}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:53 INFO 140074042410816] #throughput_metric: host=algo-1, train throughput=202.557603709 records/second\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:53 INFO 140074042410816] #progress_metric: host=algo-1, completed 20 % of epochs\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:53 INFO 140074042410816] best epoch loss so far\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:53 INFO 140074042410816] Saved checkpoint to \"/opt/ml/model/state_0701de60-24fb-439e-945d-3dedfa47034d-0000.params\"\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"state.serialize.time\": {\"count\": 1, \"max\": 48.83313179016113, \"sum\": 48.83313179016113, \"min\": 48.83313179016113}}, \"EndTime\": 1532661533.850233, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661533.801004}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:54 INFO 140074042410816] Epoch[4] Batch[0] avg_epoch_loss=0.124813\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:54 INFO 140074042410816] Epoch[4] Batch[5] avg_epoch_loss=0.172714\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:54 INFO 140074042410816] Epoch[4] Batch [5]#011Speed: 225.45 samples/sec#011loss=0.172714\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:55 INFO 140074042410816] processed a total of 310 examples\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"update.time\": {\"count\": 1, \"max\": 1531.6309928894043, \"sum\": 1531.6309928894043, \"min\": 1531.6309928894043}}, \"EndTime\": 1532661535.382007, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661533.850316}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:55 INFO 140074042410816] #throughput_metric: host=algo-1, train throughput=202.384097219 records/second\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:55 INFO 140074042410816] #progress_metric: host=algo-1, completed 25 % of epochs\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:55 INFO 140074042410816] best epoch loss so far\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:55 INFO 140074042410816] Saved checkpoint to \"/opt/ml/model/state_36d3075b-c282-486d-871b-d399ee9f1e44-0000.params\"\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"state.serialize.time\": {\"count\": 1, \"max\": 45.822858810424805, \"sum\": 45.822858810424805, \"min\": 45.822858810424805}}, \"EndTime\": 1532661535.428317, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661535.382078}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:55 INFO 140074042410816] Epoch[5] Batch[0] avg_epoch_loss=0.178906\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:56 INFO 140074042410816] Epoch[5] Batch[5] avg_epoch_loss=0.161604\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:56 INFO 140074042410816] Epoch[5] Batch [5]#011Speed: 221.68 samples/sec#011loss=0.161604\u001b[0m\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[31m[07/27/2018 03:18:56 INFO 140074042410816] processed a total of 302 examples\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"update.time\": {\"count\": 1, \"max\": 1514.8308277130127, \"sum\": 1514.8308277130127, \"min\": 1514.8308277130127}}, \"EndTime\": 1532661536.943273, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661535.428385}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:56 INFO 140074042410816] #throughput_metric: host=algo-1, train throughput=199.347825875 records/second\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:56 INFO 140074042410816] #progress_metric: host=algo-1, completed 30 % of epochs\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:56 INFO 140074042410816] best epoch loss so far\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:56 INFO 140074042410816] Saved checkpoint to \"/opt/ml/model/state_3f6d3df6-d554-4ddc-8d21-74d95b98ed84-0000.params\"\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"state.serialize.time\": {\"count\": 1, \"max\": 45.50004005432129, \"sum\": 45.50004005432129, \"min\": 45.50004005432129}}, \"EndTime\": 1532661536.989284, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661536.943343}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:57 INFO 140074042410816] Epoch[6] Batch[0] avg_epoch_loss=0.135446\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:57 INFO 140074042410816] Epoch[6] Batch[5] avg_epoch_loss=0.114501\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:57 INFO 140074042410816] Epoch[6] Batch [5]#011Speed: 222.89 samples/sec#011loss=0.114501\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:58 INFO 140074042410816] processed a total of 316 examples\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"update.time\": {\"count\": 1, \"max\": 1476.783037185669, \"sum\": 1476.783037185669, \"min\": 1476.783037185669}}, \"EndTime\": 1532661538.466206, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661536.989359}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:58 INFO 140074042410816] #throughput_metric: host=algo-1, train throughput=213.962974431 records/second\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:58 INFO 140074042410816] #progress_metric: host=algo-1, completed 35 % of epochs\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:58 INFO 140074042410816] best epoch loss so far\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:58 INFO 140074042410816] Saved checkpoint to \"/opt/ml/model/state_d13c9e29-891f-454b-95ff-d389dd213fef-0000.params\"\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"state.serialize.time\": {\"count\": 1, \"max\": 44.64602470397949, \"sum\": 44.64602470397949, \"min\": 44.64602470397949}}, \"EndTime\": 1532661538.511351, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661538.466273}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:58 INFO 140074042410816] Epoch[7] Batch[0] avg_epoch_loss=0.189694\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:59 INFO 140074042410816] Epoch[7] Batch[5] avg_epoch_loss=0.141834\u001b[0m\n",
"\u001b[31m[07/27/2018 03:18:59 INFO 140074042410816] Epoch[7] Batch [5]#011Speed: 223.07 samples/sec#011loss=0.141834\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:00 INFO 140074042410816] processed a total of 312 examples\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"update.time\": {\"count\": 1, \"max\": 1551.4729022979736, \"sum\": 1551.4729022979736, \"min\": 1551.4729022979736}}, \"EndTime\": 1532661540.06295, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661538.51142}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:00 INFO 140074042410816] #throughput_metric: host=algo-1, train throughput=201.084053695 records/second\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:00 INFO 140074042410816] #progress_metric: host=algo-1, completed 40 % of epochs\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:00 INFO 140074042410816] best epoch loss so far\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:00 INFO 140074042410816] Saved checkpoint to \"/opt/ml/model/state_dd0f6ada-f55e-4089-b999-2c57c062ebe1-0000.params\"\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"state.serialize.time\": {\"count\": 1, \"max\": 74.94807243347168, \"sum\": 74.94807243347168, \"min\": 74.94807243347168}}, \"EndTime\": 1532661540.138372, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661540.063028}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:00 INFO 140074042410816] Epoch[8] Batch[0] avg_epoch_loss=0.041331\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:01 INFO 140074042410816] Epoch[8] Batch[5] avg_epoch_loss=0.101388\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:01 INFO 140074042410816] Epoch[8] Batch [5]#011Speed: 221.49 samples/sec#011loss=0.101388\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:01 INFO 140074042410816] Epoch[8] Batch[10] avg_epoch_loss=0.103547\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:01 INFO 140074042410816] Epoch[8] Batch [10]#011Speed: 222.41 samples/sec#011loss=0.106138\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:01 INFO 140074042410816] processed a total of 333 examples\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"update.time\": {\"count\": 1, \"max\": 1634.108066558838, \"sum\": 1634.108066558838, \"min\": 1634.108066558838}}, \"EndTime\": 1532661541.772616, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661540.138446}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:01 INFO 140074042410816] #throughput_metric: host=algo-1, train throughput=203.765076203 records/second\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:01 INFO 140074042410816] #progress_metric: host=algo-1, completed 45 % of epochs\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:01 INFO 140074042410816] best epoch loss so far\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:01 INFO 140074042410816] Saved checkpoint to \"/opt/ml/model/state_5186df37-c53f-4195-a4b6-d70c1b17804c-0000.params\"\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"state.serialize.time\": {\"count\": 1, \"max\": 63.11511993408203, \"sum\": 63.11511993408203, \"min\": 63.11511993408203}}, \"EndTime\": 1532661541.836224, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661541.772702}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:02 INFO 140074042410816] Epoch[9] Batch[0] avg_epoch_loss=0.125514\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:02 INFO 140074042410816] Epoch[9] Batch[5] avg_epoch_loss=0.074293\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:02 INFO 140074042410816] Epoch[9] Batch [5]#011Speed: 226.06 samples/sec#011loss=0.074293\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:03 INFO 140074042410816] Epoch[9] Batch[10] avg_epoch_loss=0.035307\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:03 INFO 140074042410816] Epoch[9] Batch [10]#011Speed: 221.50 samples/sec#011loss=-0.011475\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:03 INFO 140074042410816] processed a total of 324 examples\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"update.time\": {\"count\": 1, \"max\": 1648.5710144042969, \"sum\": 1648.5710144042969, \"min\": 1648.5710144042969}}, \"EndTime\": 1532661543.48493, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661541.836296}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:03 INFO 140074042410816] #throughput_metric: host=algo-1, train throughput=196.518469233 records/second\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:03 INFO 140074042410816] #progress_metric: host=algo-1, completed 50 % of epochs\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:03 INFO 140074042410816] best epoch loss so far\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:03 INFO 140074042410816] Saved checkpoint to \"/opt/ml/model/state_40df461c-4580-46f5-8987-d1d28505c79a-0000.params\"\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"state.serialize.time\": {\"count\": 1, \"max\": 49.41511154174805, \"sum\": 49.41511154174805, \"min\": 49.41511154174805}}, \"EndTime\": 1532661543.534826, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661543.485018}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:03 INFO 140074042410816] Epoch[10] Batch[0] avg_epoch_loss=0.083117\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:04 INFO 140074042410816] Epoch[10] Batch[5] avg_epoch_loss=0.073549\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:04 INFO 140074042410816] Epoch[10] Batch [5]#011Speed: 224.92 samples/sec#011loss=0.073549\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:05 INFO 140074042410816] Epoch[10] Batch[10] avg_epoch_loss=0.068213\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:05 INFO 140074042410816] Epoch[10] Batch [10]#011Speed: 214.43 samples/sec#011loss=0.061811\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:05 INFO 140074042410816] processed a total of 349 examples\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"update.time\": {\"count\": 1, \"max\": 1659.013032913208, \"sum\": 1659.013032913208, \"min\": 1659.013032913208}}, \"EndTime\": 1532661545.193972, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661543.534898}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:05 INFO 140074042410816] #throughput_metric: host=algo-1, train throughput=210.350440248 records/second\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:05 INFO 140074042410816] #progress_metric: host=algo-1, completed 55 % of epochs\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:05 INFO 140074042410816] loss did not improve for 1 epochs\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:05 INFO 140074042410816] Epoch[11] Batch[0] avg_epoch_loss=0.033785\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:06 INFO 140074042410816] Epoch[11] Batch[5] avg_epoch_loss=0.054952\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:06 INFO 140074042410816] Epoch[11] Batch [5]#011Speed: 215.06 samples/sec#011loss=0.054952\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:06 INFO 140074042410816] processed a total of 309 examples\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"update.time\": {\"count\": 1, \"max\": 1523.3738422393799, \"sum\": 1523.3738422393799, \"min\": 1523.3738422393799}}, \"EndTime\": 1532661546.717783, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661545.194053}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:06 INFO 140074042410816] #throughput_metric: host=algo-1, train throughput=202.821246749 records/second\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:06 INFO 140074042410816] #progress_metric: host=algo-1, completed 60 % of epochs\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:06 INFO 140074042410816] loss did not improve for 2 epochs\u001b[0m\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[31m[07/27/2018 03:19:06 INFO 140074042410816] Epoch[12] Batch[0] avg_epoch_loss=0.125290\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:07 INFO 140074042410816] Epoch[12] Batch[5] avg_epoch_loss=0.090269\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:07 INFO 140074042410816] Epoch[12] Batch [5]#011Speed: 225.58 samples/sec#011loss=0.090269\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:08 INFO 140074042410816] Epoch[12] Batch[10] avg_epoch_loss=0.041725\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:08 INFO 140074042410816] Epoch[12] Batch [10]#011Speed: 222.48 samples/sec#011loss=-0.016528\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:08 INFO 140074042410816] processed a total of 326 examples\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"update.time\": {\"count\": 1, \"max\": 1660.499095916748, \"sum\": 1660.499095916748, \"min\": 1660.499095916748}}, \"EndTime\": 1532661548.378843, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661546.717875}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:08 INFO 140074042410816] #throughput_metric: host=algo-1, train throughput=196.311152772 records/second\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:08 INFO 140074042410816] #progress_metric: host=algo-1, completed 65 % of epochs\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:08 INFO 140074042410816] loss did not improve for 3 epochs\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:08 INFO 140074042410816] Epoch[13] Batch[0] avg_epoch_loss=0.038031\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:09 INFO 140074042410816] Epoch[13] Batch[5] avg_epoch_loss=0.054937\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:09 INFO 140074042410816] Epoch[13] Batch [5]#011Speed: 207.99 samples/sec#011loss=0.054937\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:10 INFO 140074042410816] Epoch[13] Batch[10] avg_epoch_loss=0.036359\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:10 INFO 140074042410816] Epoch[13] Batch [10]#011Speed: 221.30 samples/sec#011loss=0.014066\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:10 INFO 140074042410816] processed a total of 342 examples\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"update.time\": {\"count\": 1, \"max\": 1699.0950107574463, \"sum\": 1699.0950107574463, \"min\": 1699.0950107574463}}, \"EndTime\": 1532661550.078365, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661548.378929}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:10 INFO 140074042410816] #throughput_metric: host=algo-1, train throughput=201.272015504 records/second\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:10 INFO 140074042410816] #progress_metric: host=algo-1, completed 70 % of epochs\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:10 INFO 140074042410816] loss did not improve for 4 epochs\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:10 INFO 140074042410816] Epoch[14] Batch[0] avg_epoch_loss=0.075549\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:11 INFO 140074042410816] Epoch[14] Batch[5] avg_epoch_loss=0.037262\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:11 INFO 140074042410816] Epoch[14] Batch [5]#011Speed: 219.56 samples/sec#011loss=0.037262\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:11 INFO 140074042410816] Epoch[14] Batch[10] avg_epoch_loss=0.039390\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:11 INFO 140074042410816] Epoch[14] Batch [10]#011Speed: 224.12 samples/sec#011loss=0.041944\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:11 INFO 140074042410816] processed a total of 330 examples\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"update.time\": {\"count\": 1, \"max\": 1684.4029426574707, \"sum\": 1684.4029426574707, \"min\": 1684.4029426574707}}, \"EndTime\": 1532661551.76323, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661550.078429}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:11 INFO 140074042410816] #throughput_metric: host=algo-1, train throughput=195.900116044 records/second\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:11 INFO 140074042410816] #progress_metric: host=algo-1, completed 75 % of epochs\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:11 INFO 140074042410816] loss did not improve for 5 epochs\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:12 INFO 140074042410816] Epoch[15] Batch[0] avg_epoch_loss=0.021203\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:12 INFO 140074042410816] Epoch[15] Batch[5] avg_epoch_loss=0.019402\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:12 INFO 140074042410816] Epoch[15] Batch [5]#011Speed: 225.40 samples/sec#011loss=0.019402\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:13 INFO 140074042410816] Epoch[15] Batch[10] avg_epoch_loss=0.040792\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:13 INFO 140074042410816] Epoch[15] Batch [10]#011Speed: 217.36 samples/sec#011loss=0.066460\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:13 INFO 140074042410816] processed a total of 325 examples\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"update.time\": {\"count\": 1, \"max\": 1688.2209777832031, \"sum\": 1688.2209777832031, \"min\": 1688.2209777832031}}, \"EndTime\": 1532661553.451881, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661551.763318}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:13 INFO 140074042410816] #throughput_metric: host=algo-1, train throughput=192.498137011 records/second\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:13 INFO 140074042410816] #progress_metric: host=algo-1, completed 80 % of epochs\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:13 INFO 140074042410816] loss did not improve for 6 epochs\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:13 INFO 140074042410816] Epoch[16] Batch[0] avg_epoch_loss=-0.006675\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:14 INFO 140074042410816] Epoch[16] Batch[5] avg_epoch_loss=0.010563\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:14 INFO 140074042410816] Epoch[16] Batch [5]#011Speed: 219.53 samples/sec#011loss=0.010563\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:14 INFO 140074042410816] processed a total of 299 examples\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"update.time\": {\"count\": 1, \"max\": 1507.7879428863525, \"sum\": 1507.7879428863525, \"min\": 1507.7879428863525}}, \"EndTime\": 1532661554.9601, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661553.451944}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:14 INFO 140074042410816] #throughput_metric: host=algo-1, train throughput=198.287036097 records/second\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:14 INFO 140074042410816] #progress_metric: host=algo-1, completed 85 % of epochs\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:14 INFO 140074042410816] best epoch loss so far\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:15 INFO 140074042410816] Saved checkpoint to \"/opt/ml/model/state_e27fd8e1-f54e-4ab5-ab91-87fec4f72123-0000.params\"\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"state.serialize.time\": {\"count\": 1, \"max\": 55.8319091796875, \"sum\": 55.8319091796875, \"min\": 55.8319091796875}}, \"EndTime\": 1532661555.016606, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661554.960187}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:15 INFO 140074042410816] Epoch[17] Batch[0] avg_epoch_loss=-0.001955\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:15 INFO 140074042410816] Epoch[17] Batch[5] avg_epoch_loss=-0.004937\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:15 INFO 140074042410816] Epoch[17] Batch [5]#011Speed: 216.02 samples/sec#011loss=-0.004937\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:16 INFO 140074042410816] Epoch[17] Batch[10] avg_epoch_loss=0.002667\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:16 INFO 140074042410816] Epoch[17] Batch [10]#011Speed: 225.72 samples/sec#011loss=0.011793\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:16 INFO 140074042410816] processed a total of 329 examples\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"update.time\": {\"count\": 1, \"max\": 1667.4549579620361, \"sum\": 1667.4549579620361, \"min\": 1667.4549579620361}}, \"EndTime\": 1532661556.684201, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661555.016683}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:16 INFO 140074042410816] #throughput_metric: host=algo-1, train throughput=197.291643279 records/second\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:16 INFO 140074042410816] #progress_metric: host=algo-1, completed 90 % of epochs\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:16 INFO 140074042410816] best epoch loss so far\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:16 INFO 140074042410816] Saved checkpoint to \"/opt/ml/model/state_cb82d8d0-d122-4842-80a4-8f69191b4d46-0000.params\"\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"state.serialize.time\": {\"count\": 1, \"max\": 49.47805404663086, \"sum\": 49.47805404663086, \"min\": 49.47805404663086}}, \"EndTime\": 1532661556.734169, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661556.684287}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:16 INFO 140074042410816] Epoch[18] Batch[0] avg_epoch_loss=-0.043327\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:17 INFO 140074042410816] Epoch[18] Batch[5] avg_epoch_loss=0.008369\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:17 INFO 140074042410816] Epoch[18] Batch [5]#011Speed: 225.63 samples/sec#011loss=0.008369\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:18 INFO 140074042410816] processed a total of 292 examples\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"update.time\": {\"count\": 1, \"max\": 1511.1079216003418, \"sum\": 1511.1079216003418, \"min\": 1511.1079216003418}}, \"EndTime\": 1532661558.245413, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661556.734244}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:18 INFO 140074042410816] #throughput_metric: host=algo-1, train throughput=193.22237955 records/second\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:18 INFO 140074042410816] #progress_metric: host=algo-1, completed 95 % of epochs\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:18 INFO 140074042410816] loss did not improve for 1 epochs\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:18 INFO 140074042410816] Epoch[19] Batch[0] avg_epoch_loss=0.002925\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:19 INFO 140074042410816] Epoch[19] Batch[5] avg_epoch_loss=-0.027517\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:19 INFO 140074042410816] Epoch[19] Batch [5]#011Speed: 218.34 samples/sec#011loss=-0.027517\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:19 INFO 140074042410816] processed a total of 320 examples\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"update.time\": {\"count\": 1, \"max\": 1495.6309795379639, \"sum\": 1495.6309795379639, \"min\": 1495.6309795379639}}, \"EndTime\": 1532661559.741463, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661558.24548}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:19 INFO 140074042410816] #throughput_metric: host=algo-1, train throughput=213.939775141 records/second\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:19 INFO 140074042410816] #progress_metric: host=algo-1, completed 100 % of epochs\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:19 INFO 140074042410816] best epoch loss so far\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:19 INFO 140074042410816] Saved checkpoint to \"/opt/ml/model/state_bdd9a716-e304-4987-a6ad-8ff21edbd8dc-0000.params\"\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"state.serialize.time\": {\"count\": 1, \"max\": 45.989990234375, \"sum\": 45.989990234375, \"min\": 45.989990234375}}, \"EndTime\": 1532661559.78796, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661559.741538}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:19 INFO 140074042410816] Loading parameters from best epoch (19)\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"state.deserialize.time\": {\"count\": 1, \"max\": 18.826007843017578, \"sum\": 18.826007843017578, \"min\": 18.826007843017578}}, \"EndTime\": 1532661559.806988, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661559.788032}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:19 INFO 140074042410816] Final loss: -0.0369148883969 (occurred at epoch 19)\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:19 INFO 140074042410816] #quality_metric: host=algo-1, train final_loss =-0.0369148883969\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:19 INFO 140074042410816] Worker algo-1 finished training.\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:19 WARNING 140074042410816] wait_for_all_workers will not sync workers since the kv store is not running distributed\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:19 INFO 140074042410816] All workers finished. Serializing model for prediction.\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"get_graph.time\": {\"count\": 1, \"max\": 2714.4081592559814, \"sum\": 2714.4081592559814, \"min\": 2714.4081592559814}}, \"EndTime\": 1532661562.522, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661559.807052}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:25 INFO 140074042410816] Number of GPUs being used: 0\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"finalize.time\": {\"count\": 1, \"max\": 5285.989046096802, \"sum\": 5285.989046096802, \"min\": 5285.989046096802}}, \"EndTime\": 1532661565.093545, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661562.522086}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:25 INFO 140074042410816] Serializing to /opt/ml/model/model_algo-1\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:25 INFO 140074042410816] Saved checkpoint to \"/opt/ml/model/model_algo-1-0000.params\"\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"model.serialize.time\": {\"count\": 1, \"max\": 420.93801498413086, \"sum\": 420.93801498413086, \"min\": 420.93801498413086}}, \"EndTime\": 1532661565.514611, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661565.093624}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:25 INFO 140074042410816] Successfully serialized the model for prediction.\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:25 INFO 140074042410816] Evaluating model accuracy on testset using 100 samples\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"model.bind.time\": {\"count\": 1, \"max\": 0.03886222839355469, \"sum\": 0.03886222839355469, \"min\": 0.03886222839355469}}, \"EndTime\": 1532661565.515471, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661565.514672}\n",
"\u001b[0m\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[31m#metrics {\"Metrics\": {\"model.score.time\": {\"count\": 1, \"max\": 3564.686059951782, \"sum\": 3564.686059951782, \"min\": 3564.686059951782}}, \"EndTime\": 1532661569.080128, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661565.515531}\n",
"\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:29 INFO 140074042410816] #test_score (algo-1, RMSE): 0.38677016793\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:29 INFO 140074042410816] #test_score (algo-1, mean_wQuantileLoss): 0.203314\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:29 INFO 140074042410816] #test_score (algo-1, wQuantileLoss[0.1]): 0.119702\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:29 INFO 140074042410816] #test_score (algo-1, wQuantileLoss[0.2]): 0.186436\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:29 INFO 140074042410816] #test_score (algo-1, wQuantileLoss[0.3]): 0.232395\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:29 INFO 140074042410816] #test_score (algo-1, wQuantileLoss[0.4]): 0.260534\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:29 INFO 140074042410816] #test_score (algo-1, wQuantileLoss[0.5]): 0.270927\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:29 INFO 140074042410816] #test_score (algo-1, wQuantileLoss[0.6]): 0.259778\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:29 INFO 140074042410816] #test_score (algo-1, wQuantileLoss[0.7]): 0.228279\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:29 INFO 140074042410816] #test_score (algo-1, wQuantileLoss[0.8]): 0.17313\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:29 INFO 140074042410816] #test_score (algo-1, wQuantileLoss[0.9]): 0.0986483\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:29 INFO 140074042410816] #quality_metric: host=algo-1, test RMSE =0.38677016793\u001b[0m\n",
"\u001b[31m[07/27/2018 03:19:29 INFO 140074042410816] #quality_metric: host=algo-1, test mean_wQuantileLoss =0.203314334154\u001b[0m\n",
"\u001b[31m#metrics {\"Metrics\": {\"totaltime\": {\"count\": 1, \"max\": 43657.426834106445, \"sum\": 43657.426834106445, \"min\": 43657.426834106445}, \"setuptime\": {\"count\": 1, \"max\": 10.553836822509766, \"sum\": 10.553836822509766, \"min\": 10.553836822509766}}, \"EndTime\": 1532661569.716042, \"Dimensions\": {\"Host\": \"algo-1\", \"Operation\": \"training\", \"Algorithm\": \"AWS/DeepAR\"}, \"StartTime\": 1532661569.080218}\n",
"\u001b[0m\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/ec2-user/anaconda3/envs/mxnet_p36/lib/python3.6/site-packages/sagemaker/session.py:782: DeprecationWarning: generator 'multi_stream_iter' raised StopIteration\n",
" for idx, event in sagemaker.logs.multi_stream_iter(client, log_group, stream_names, positions):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"===== Job Complete =====\n",
"Billable seconds: 168\n",
"CPU times: user 468 ms, sys: 48 ms, total: 516 ms\n",
"Wall time: 4min 42s\n"
]
}
],
"source": [
"%%time\n",
"data_channels = {\n",
" \"train\": \"{}/train/\".format(s3_data_path),\n",
" \"test\": \"{}/test/\".format(s3_data_path)\n",
"}\n",
"\n",
"estimator.fit(inputs=data_channels)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Since you pass a test set in this example, accuracy metrics for the forecast are computed and logged (see bottom of the log).\n",
"You can find the definition of these metrics from [our documentation](https://docs.aws.amazon.com/sagemaker/latest/dg/deepar.html). You can use these to optimize the parameters and tune your model or use SageMaker's [Automated Model Tuning service](https://aws.amazon.com/blogs/aws/sagemaker-automatic-model-tuning/) to tune the model for you."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Create endpoint and predictor"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now that we have a trained model, we can use it to perform predictions by deploying it to an endpoint.\n",
"\n",
"**Note: Remember to delete the endpoint after running this experiment. A cell at the very bottom of this notebook will do that: make sure you run it at the end.**"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To query the endpoint and perform predictions, we can define the following utility class: this allows making requests using `pandas.Series` objects rather than raw JSON strings."
]
},
{
"cell_type": "code",
"execution_count": 99,
"metadata": {},
"outputs": [],
"source": [
"class DeepARPredictor(sagemaker.predictor.RealTimePredictor):\n",
" \n",
" def __init__(self, *args, **kwargs):\n",
" super().__init__(*args, content_type=sagemaker.content_types.CONTENT_TYPE_JSON, **kwargs)\n",
" \n",
" def predict(self, ts, cat=None, dynamic_feat=None, \n",
" num_samples=100, return_samples=False, quantiles=[\"0.1\", \"0.5\", \"0.9\"]):\n",
" \"\"\"Requests the prediction of for the time series listed in `ts`, each with the (optional)\n",
" corresponding category listed in `cat`.\n",
" \n",
" ts -- `pandas.Series` object, the time series to predict\n",
" cat -- integer, the group associated to the time series (default: None)\n",
" num_samples -- integer, number of samples to compute at prediction time (default: 100)\n",
" return_samples -- boolean indicating whether to include samples in the response (default: False)\n",
" quantiles -- list of strings specifying the quantiles to compute (default: [\"0.1\", \"0.5\", \"0.9\"])\n",
" \n",
" Return value: list of `pandas.DataFrame` objects, each containing the predictions\n",
" \"\"\"\n",
" prediction_time = ts.index[-1] + 1\n",
" quantiles = [str(q) for q in quantiles]\n",
" req = self.__encode_request(ts, cat, dynamic_feat, num_samples, return_samples, quantiles)\n",
" res = super(DeepARPredictor, self).predict(req)\n",
" return self.__decode_response(res, ts.index.freq, prediction_time, return_samples)\n",
" \n",
" def __encode_request(self, ts, cat, dynamic_feat, num_samples, return_samples, quantiles):\n",
" instance = series_to_dict(ts, cat if cat is not None else None, dynamic_feat if dynamic_feat else None)\n",
"\n",
" configuration = {\n",
" \"num_samples\": num_samples,\n",
" \"output_types\": [\"quantiles\", \"samples\"] if return_samples else [\"quantiles\"],\n",
" \"quantiles\": quantiles\n",
" }\n",
" \n",
" http_request_data = {\n",
" \"instances\": [instance],\n",
" \"configuration\": configuration\n",
" }\n",
" \n",
" return json.dumps(http_request_data).encode('utf-8')\n",
" \n",
" def __decode_response(self, response, freq, prediction_time, return_samples):\n",
" # we only sent one time series so we only receive one in return\n",
" # however, if possible one will pass multiple time series as predictions will then be faster\n",
" predictions = json.loads(response.decode('utf-8'))['predictions'][0]\n",
" prediction_length = len(next(iter(predictions['quantiles'].values())))\n",
" prediction_index = pd.DatetimeIndex(start=prediction_time, freq=freq, periods=prediction_length) \n",
" if return_samples:\n",
" dict_of_samples = {'sample_' + str(i): s for i, s in enumerate(predictions['samples'])}\n",
" else:\n",
" dict_of_samples = {}\n",
" return pd.DataFrame(data={**predictions['quantiles'], **dict_of_samples}, index=prediction_index)\n",
"\n",
" def set_frequency(self, freq):\n",
" self.freq = freq\n",
" \n",
"def encode_target(ts):\n",
" return [x if np.isfinite(x) else \"NaN\" for x in ts] \n",
"\n",
"def series_to_dict(ts, cat=None, dynamic_feat=None):\n",
" \"\"\"Given a pandas.Series object, returns a dictionary encoding the time series.\n",
"\n",
" ts -- a pands.Series object with the target time series\n",
" cat -- an integer indicating the time series category\n",
"\n",
" Return value: a dictionary\n",
" \"\"\"\n",
" obj = {\"start\": str(ts.index[0]), \"target\": encode_target(ts)}\n",
" if cat is not None:\n",
" obj[\"cat\"] = cat\n",
" if dynamic_feat is not None:\n",
" obj[\"dynamic_feat\"] = dynamic_feat \n",
" return obj"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we can deploy the model and create and endpoint that can be queried using our custom DeepARPredictor class."
]
},
{
"cell_type": "code",
"execution_count": 216,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:sagemaker:Creating model with name: forecasting-deepar-2018-07-27-03-22-49-329\n",
"INFO:sagemaker:Creating endpoint with name deepar-home-electricity-demo-2018-07-27-03-15-18-550\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"--------------------------------------------------------------!"
]
}
],
"source": [
"predictor = estimator.deploy(\n",
" initial_instance_count=1,\n",
" instance_type='ml.m4.xlarge',\n",
" predictor_cls=DeepARPredictor)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Make predictions and plot results"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we can use the `predictor` object to generate predictions."
]
},
{
"cell_type": "code",
"execution_count": 217,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
0.1
\n",
"
0.5
\n",
"
0.9
\n",
"
\n",
" \n",
" \n",
"
\n",
"
2010-09-28
\n",
"
0.790016
\n",
"
0.968579
\n",
"
1.102380
\n",
"
\n",
"
\n",
"
2010-09-29
\n",
"
0.744394
\n",
"
0.925553
\n",
"
1.131745
\n",
"
\n",
"
\n",
"
2010-09-30
\n",
"
0.780791
\n",
"
0.999924
\n",
"
1.199642
\n",
"
\n",
"
\n",
"
2010-10-01
\n",
"
0.853651
\n",
"
1.013829
\n",
"
1.180801
\n",
"
\n",
"
\n",
"
2010-10-02
\n",
"
0.792879
\n",
"
0.994975
\n",
"
1.229360
\n",
"
\n",
"
\n",
"
2010-10-03
\n",
"
0.775380
\n",
"
0.958632
\n",
"
1.198079
\n",
"
\n",
"
\n",
"
2010-10-04
\n",
"
0.762203
\n",
"
0.960841
\n",
"
1.154595
\n",
"
\n",
"
\n",
"
2010-10-05
\n",
"
0.770622
\n",
"
1.005522
\n",
"
1.173487
\n",
"
\n",
"
\n",
"
2010-10-06
\n",
"
0.773807
\n",
"
0.982053
\n",
"
1.176765
\n",
"
\n",
"
\n",
"
2010-10-07
\n",
"
0.899876
\n",
"
1.072179
\n",
"
1.279244
\n",
"
\n",
"
\n",
"
2010-10-08
\n",
"
0.815179
\n",
"
1.030676
\n",
"
1.242005
\n",
"
\n",
"
\n",
"
2010-10-09
\n",
"
0.846799
\n",
"
1.075428
\n",
"
1.238595
\n",
"
\n",
"
\n",
"
2010-10-10
\n",
"
0.825716
\n",
"
1.065997
\n",
"
1.253097
\n",
"
\n",
"
\n",
"
2010-10-11
\n",
"
0.884659
\n",
"
1.077818
\n",
"
1.245890
\n",
"
\n",
"
\n",
"
2010-10-12
\n",
"
0.920730
\n",
"
1.073006
\n",
"
1.231640
\n",
"
\n",
"
\n",
"
2010-10-13
\n",
"
0.901258
\n",
"
1.109938
\n",
"
1.298712
\n",
"
\n",
"
\n",
"
2010-10-14
\n",
"
0.921772
\n",
"
1.064525
\n",
"
1.289613
\n",
"
\n",
"
\n",
"
2010-10-15
\n",
"
0.920833
\n",
"
1.111202
\n",
"
1.273061
\n",
"
\n",
"
\n",
"
2010-10-16
\n",
"
1.029230
\n",
"
1.188139
\n",
"
1.344286
\n",
"
\n",
"
\n",
"
2010-10-17
\n",
"
0.911581
\n",
"
1.111804
\n",
"
1.263128
\n",
"
\n",
"
\n",
"
2010-10-18
\n",
"
0.900885
\n",
"
1.073449
\n",
"
1.198113
\n",
"
\n",
"
\n",
"
2010-10-19
\n",
"
0.981259
\n",
"
1.093404
\n",
"
1.269331
\n",
"
\n",
"
\n",
"
2010-10-20
\n",
"
0.936951
\n",
"
1.104434
\n",
"
1.282887
\n",
"
\n",
"
\n",
"
2010-10-21
\n",
"
0.936540
\n",
"
1.088976
\n",
"
1.319242
\n",
"
\n",
"
\n",
"
2010-10-22
\n",
"
0.942080
\n",
"
1.122903
\n",
"
1.362140
\n",
"
\n",
"
\n",
"
2010-10-23
\n",
"
0.932080
\n",
"
1.119267
\n",
"
1.325692
\n",
"
\n",
"
\n",
"
2010-10-24
\n",
"
0.895720
\n",
"
1.140803
\n",
"
1.406739
\n",
"
\n",
"
\n",
"
2010-10-25
\n",
"
0.897375
\n",
"
1.112538
\n",
"
1.328852
\n",
"
\n",
"
\n",
"
2010-10-26
\n",
"
0.924637
\n",
"
1.168070
\n",
"
1.364797
\n",
"
\n",
"
\n",
"
2010-10-27
\n",
"
0.957276
\n",
"
1.175334
\n",
"
1.382472
\n",
"
\n",
"
\n",
"
2010-10-28
\n",
"
0.922212
\n",
"
1.157789
\n",
"
1.396143
\n",
"
\n",
"
\n",
"
2010-10-29
\n",
"
0.967077
\n",
"
1.199347
\n",
"
1.414492
\n",
"
\n",
"
\n",
"
2010-10-30
\n",
"
0.830030
\n",
"
1.195158
\n",
"
1.476995
\n",
"
\n",
"
\n",
"
2010-10-31
\n",
"
0.951630
\n",
"
1.270762
\n",
"
1.669064
\n",
"
\n",
"
\n",
"
2010-11-01
\n",
"
0.809570
\n",
"
1.112877
\n",
"
1.352301
\n",
"
\n",
"
\n",
"
2010-11-02
\n",
"
1.001853
\n",
"
1.168526
\n",
"
1.374803
\n",
"
\n",
"
\n",
"
2010-11-03
\n",
"
0.885834
\n",
"
1.084763
\n",
"
1.243589
\n",
"
\n",
"
\n",
"
2010-11-04
\n",
"
0.782202
\n",
"
1.071941
\n",
"
1.283330
\n",
"
\n",
"
\n",
"
2010-11-05
\n",
"
0.933213
\n",
"
1.149291
\n",
"
1.367097
\n",
"
\n",
"
\n",
"
2010-11-06
\n",
"
0.951722
\n",
"
1.190081
\n",
"
1.398906
\n",
"
\n",
"
\n",
"
2010-11-07
\n",
"
0.967498
\n",
"
1.161788
\n",
"
1.393864
\n",
"
\n",
"
\n",
"
2010-11-08
\n",
"
0.915501
\n",
"
1.155778
\n",
"
1.372192
\n",
"
\n",
"
\n",
"
2010-11-09
\n",
"
0.971213
\n",
"
1.198470
\n",
"
1.409445
\n",
"
\n",
"
\n",
"
2010-11-10
\n",
"
0.904380
\n",
"
1.075270
\n",
"
1.346587
\n",
"
\n",
"
\n",
"
2010-11-11
\n",
"
0.962840
\n",
"
1.147342
\n",
"
1.325590
\n",
"
\n",
"
\n",
"
2010-11-12
\n",
"
1.091086
\n",
"
1.283538
\n",
"
1.502536
\n",
"
\n",
"
\n",
"
2010-11-13
\n",
"
0.985451
\n",
"
1.207216
\n",
"
1.435151
\n",
"
\n",
"
\n",
"
2010-11-14
\n",
"
0.873823
\n",
"
1.155347
\n",
"
1.407026
\n",
"
\n",
"
\n",
"
2010-11-15
\n",
"
0.907594
\n",
"
1.095161
\n",
"
1.333333
\n",
"
\n",
"
\n",
"
2010-11-16
\n",
"
1.021516
\n",
"
1.178446
\n",
"
1.405428
\n",
"
\n",
"
\n",
"
2010-11-17
\n",
"
1.005996
\n",
"
1.200050
\n",
"
1.414176
\n",
"
\n",
"
\n",
"
2010-11-18
\n",
"
0.972625
\n",
"
1.208396
\n",
"
1.411030
\n",
"
\n",
"
\n",
"
2010-11-19
\n",
"
1.036822
\n",
"
1.217191
\n",
"
1.393905
\n",
"
\n",
"
\n",
"
2010-11-20
\n",
"
1.032539
\n",
"
1.240849
\n",
"
1.465980
\n",
"
\n",
"
\n",
"
2010-11-21
\n",
"
1.046555
\n",
"
1.229090
\n",
"
1.448083
\n",
"
\n",
"
\n",
"
2010-11-22
\n",
"
1.013634
\n",
"
1.188815
\n",
"
1.428163
\n",
"
\n",
"
\n",
"
2010-11-23
\n",
"
0.997702
\n",
"
1.177898
\n",
"
1.392498
\n",
"
\n",
"
\n",
"
2010-11-24
\n",
"
0.859340
\n",
"
1.073107
\n",
"
1.274164
\n",
"
\n",
"
\n",
"
2010-11-25
\n",
"
0.938809
\n",
"
1.146115
\n",
"
1.351901
\n",
"
\n",
"
\n",
"
2010-11-26
\n",
"
0.996817
\n",
"
1.178803
\n",
"
1.396186
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" 0.1 0.5 0.9\n",
"2010-09-28 0.790016 0.968579 1.102380\n",
"2010-09-29 0.744394 0.925553 1.131745\n",
"2010-09-30 0.780791 0.999924 1.199642\n",
"2010-10-01 0.853651 1.013829 1.180801\n",
"2010-10-02 0.792879 0.994975 1.229360\n",
"2010-10-03 0.775380 0.958632 1.198079\n",
"2010-10-04 0.762203 0.960841 1.154595\n",
"2010-10-05 0.770622 1.005522 1.173487\n",
"2010-10-06 0.773807 0.982053 1.176765\n",
"2010-10-07 0.899876 1.072179 1.279244\n",
"2010-10-08 0.815179 1.030676 1.242005\n",
"2010-10-09 0.846799 1.075428 1.238595\n",
"2010-10-10 0.825716 1.065997 1.253097\n",
"2010-10-11 0.884659 1.077818 1.245890\n",
"2010-10-12 0.920730 1.073006 1.231640\n",
"2010-10-13 0.901258 1.109938 1.298712\n",
"2010-10-14 0.921772 1.064525 1.289613\n",
"2010-10-15 0.920833 1.111202 1.273061\n",
"2010-10-16 1.029230 1.188139 1.344286\n",
"2010-10-17 0.911581 1.111804 1.263128\n",
"2010-10-18 0.900885 1.073449 1.198113\n",
"2010-10-19 0.981259 1.093404 1.269331\n",
"2010-10-20 0.936951 1.104434 1.282887\n",
"2010-10-21 0.936540 1.088976 1.319242\n",
"2010-10-22 0.942080 1.122903 1.362140\n",
"2010-10-23 0.932080 1.119267 1.325692\n",
"2010-10-24 0.895720 1.140803 1.406739\n",
"2010-10-25 0.897375 1.112538 1.328852\n",
"2010-10-26 0.924637 1.168070 1.364797\n",
"2010-10-27 0.957276 1.175334 1.382472\n",
"2010-10-28 0.922212 1.157789 1.396143\n",
"2010-10-29 0.967077 1.199347 1.414492\n",
"2010-10-30 0.830030 1.195158 1.476995\n",
"2010-10-31 0.951630 1.270762 1.669064\n",
"2010-11-01 0.809570 1.112877 1.352301\n",
"2010-11-02 1.001853 1.168526 1.374803\n",
"2010-11-03 0.885834 1.084763 1.243589\n",
"2010-11-04 0.782202 1.071941 1.283330\n",
"2010-11-05 0.933213 1.149291 1.367097\n",
"2010-11-06 0.951722 1.190081 1.398906\n",
"2010-11-07 0.967498 1.161788 1.393864\n",
"2010-11-08 0.915501 1.155778 1.372192\n",
"2010-11-09 0.971213 1.198470 1.409445\n",
"2010-11-10 0.904380 1.075270 1.346587\n",
"2010-11-11 0.962840 1.147342 1.325590\n",
"2010-11-12 1.091086 1.283538 1.502536\n",
"2010-11-13 0.985451 1.207216 1.435151\n",
"2010-11-14 0.873823 1.155347 1.407026\n",
"2010-11-15 0.907594 1.095161 1.333333\n",
"2010-11-16 1.021516 1.178446 1.405428\n",
"2010-11-17 1.005996 1.200050 1.414176\n",
"2010-11-18 0.972625 1.208396 1.411030\n",
"2010-11-19 1.036822 1.217191 1.393905\n",
"2010-11-20 1.032539 1.240849 1.465980\n",
"2010-11-21 1.046555 1.229090 1.448083\n",
"2010-11-22 1.013634 1.188815 1.428163\n",
"2010-11-23 0.997702 1.177898 1.392498\n",
"2010-11-24 0.859340 1.073107 1.274164\n",
"2010-11-25 0.938809 1.146115 1.351901\n",
"2010-11-26 0.996817 1.178803 1.396186"
]
},
"execution_count": 217,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"predictor.predict(timeseries[:-prediction_length], quantiles=[0.10, 0.5, 0.90])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Below we define a plotting function that queries the model and displays the forecast."
]
},
{
"cell_type": "code",
"execution_count": 218,
"metadata": {},
"outputs": [],
"source": [
"def plot(\n",
" predictor, \n",
" target_ts, \n",
" cat=None, \n",
" dynamic_feat=None, \n",
" forecast_date=end_training, \n",
" show_samples=False, \n",
" plot_history=7 * 12,\n",
" confidence=80\n",
"):\n",
" print(\"calling served model to generate predictions starting from {}\".format(str(forecast_date)))\n",
" assert(confidence > 50 and confidence < 100)\n",
" low_quantile = 0.5 - confidence * 0.005\n",
" up_quantile = confidence * 0.005 + 0.5\n",
" \n",
" # we first construct the argument to call our model\n",
" args = {\n",
" \"ts\": target_ts[:forecast_date],\n",
" \"return_samples\": show_samples,\n",
" \"quantiles\": [low_quantile, 0.5, up_quantile],\n",
" \"num_samples\": 100\n",
" }\n",
"\n",
"\n",
" if dynamic_feat is not None:\n",
" args[\"dynamic_feat\"] = dynamic_feat\n",
" fig = plt.figure(figsize=(20, 6))\n",
" ax = plt.subplot(2, 1, 1)\n",
" else:\n",
" fig = plt.figure(figsize=(20, 3))\n",
" ax = plt.subplot(1,1,1)\n",
" \n",
" if cat is not None:\n",
" args[\"cat\"] = cat\n",
" ax.text(0.9, 0.9, 'cat = {}'.format(cat), transform=ax.transAxes)\n",
"\n",
" # call the end point to get the prediction\n",
" prediction = predictor.predict(**args)\n",
"\n",
" # plot the samples\n",
" if show_samples: \n",
" for key in prediction.keys():\n",
" if \"sample\" in key:\n",
" prediction[key].plot(color='lightskyblue', alpha=0.2, label='_nolegend_')\n",
" \n",
" \n",
" # plot the target\n",
" target_section = target_ts[forecast_date-plot_history:forecast_date+prediction_length]\n",
" target_section.plot(color=\"black\", label='target')\n",
" \n",
" # plot the confidence interval and the median predicted\n",
" ax.fill_between(\n",
" prediction[str(low_quantile)].index, \n",
" prediction[str(low_quantile)].values, \n",
" prediction[str(up_quantile)].values, \n",
" color=\"b\", alpha=0.3, label='{}% confidence interval'.format(confidence)\n",
" )\n",
" prediction[\"0.5\"].plot(color=\"b\", label='P50')\n",
" ax.legend(loc=2) \n",
" \n",
" # fix the scale as the samples may change it\n",
" ax.set_ylim(target_section.min() * 0.5, target_section.max() * 1.5)\n",
" \n",
" if dynamic_feat is not None:\n",
" for i, f in enumerate(dynamic_feat, start=1):\n",
" ax = plt.subplot(len(dynamic_feat) * 2, 1, len(dynamic_feat) + i, sharex=ax)\n",
" feat_ts = pd.Series(\n",
" index=pd.DatetimeIndex(start=target_ts.index[0], freq=target_ts.index.freq, periods=len(f)),\n",
" data=f\n",
" )\n",
" feat_ts[forecast_date-plot_history:forecast_date+prediction_length].plot(ax=ax, color='g')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can interact with the function previously defined, to look at the forecast of any customer at any point in (future) time. \n",
"\n",
"For each request, the predictions are obtained by calling our served model on the fly.\n",
"\n",
"Here we forecast the consumption of an office after week-end (note the lower week-end consumption). \n",
"You can select any time series and any forecast date, just click on `Run Interact` to generate the predictions from our served endpoint and see the plot."
]
},
{
"cell_type": "code",
"execution_count": 219,
"metadata": {},
"outputs": [],
"source": [
"style = {'description_width': 'initial'}"
]
},
{
"cell_type": "code",
"execution_count": 241,
"metadata": {},
"outputs": [],
"source": [
"list_of_df = predictor.predict(timeseries[:-prediction_length])\n",
"actual_data = timeseries[-prediction_length:]"
]
},
{
"cell_type": "code",
"execution_count": 242,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"60"
]
},
"execution_count": 242,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(actual_data)"
]
},
{
"cell_type": "code",
"execution_count": 243,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
0.1
\n",
"
0.5
\n",
"
0.9
\n",
"
\n",
" \n",
" \n",
"
\n",
"
2010-09-28
\n",
"
0.790016
\n",
"
0.968579
\n",
"
1.102380
\n",
"
\n",
"
\n",
"
2010-09-29
\n",
"
0.744394
\n",
"
0.925553
\n",
"
1.131745
\n",
"
\n",
"
\n",
"
2010-09-30
\n",
"
0.780791
\n",
"
0.999924
\n",
"
1.199642
\n",
"
\n",
"
\n",
"
2010-10-01
\n",
"
0.853651
\n",
"
1.013829
\n",
"
1.180801
\n",
"
\n",
"
\n",
"
2010-10-02
\n",
"
0.792879
\n",
"
0.994975
\n",
"
1.229360
\n",
"
\n",
"
\n",
"
2010-10-03
\n",
"
0.775380
\n",
"
0.958632
\n",
"
1.198079
\n",
"
\n",
"
\n",
"
2010-10-04
\n",
"
0.762203
\n",
"
0.960841
\n",
"
1.154595
\n",
"
\n",
"
\n",
"
2010-10-05
\n",
"
0.770622
\n",
"
1.005522
\n",
"
1.173487
\n",
"
\n",
"
\n",
"
2010-10-06
\n",
"
0.773807
\n",
"
0.982053
\n",
"
1.176765
\n",
"
\n",
"
\n",
"
2010-10-07
\n",
"
0.899876
\n",
"
1.072179
\n",
"
1.279244
\n",
"
\n",
"
\n",
"
2010-10-08
\n",
"
0.815179
\n",
"
1.030676
\n",
"
1.242005
\n",
"
\n",
"
\n",
"
2010-10-09
\n",
"
0.846799
\n",
"
1.075428
\n",
"
1.238595
\n",
"
\n",
"
\n",
"
2010-10-10
\n",
"
0.825716
\n",
"
1.065997
\n",
"
1.253097
\n",
"
\n",
"
\n",
"
2010-10-11
\n",
"
0.884659
\n",
"
1.077818
\n",
"
1.245890
\n",
"
\n",
"
\n",
"
2010-10-12
\n",
"
0.920730
\n",
"
1.073006
\n",
"
1.231640
\n",
"
\n",
"
\n",
"
2010-10-13
\n",
"
0.901258
\n",
"
1.109938
\n",
"
1.298712
\n",
"
\n",
"
\n",
"
2010-10-14
\n",
"
0.921772
\n",
"
1.064525
\n",
"
1.289613
\n",
"
\n",
"
\n",
"
2010-10-15
\n",
"
0.920833
\n",
"
1.111202
\n",
"
1.273061
\n",
"
\n",
"
\n",
"
2010-10-16
\n",
"
1.029230
\n",
"
1.188139
\n",
"
1.344286
\n",
"
\n",
"
\n",
"
2010-10-17
\n",
"
0.911581
\n",
"
1.111804
\n",
"
1.263128
\n",
"
\n",
"
\n",
"
2010-10-18
\n",
"
0.900885
\n",
"
1.073449
\n",
"
1.198113
\n",
"
\n",
"
\n",
"
2010-10-19
\n",
"
0.981259
\n",
"
1.093404
\n",
"
1.269331
\n",
"
\n",
"
\n",
"
2010-10-20
\n",
"
0.936951
\n",
"
1.104434
\n",
"
1.282887
\n",
"
\n",
"
\n",
"
2010-10-21
\n",
"
0.936540
\n",
"
1.088976
\n",
"
1.319242
\n",
"
\n",
"
\n",
"
2010-10-22
\n",
"
0.942080
\n",
"
1.122903
\n",
"
1.362140
\n",
"
\n",
"
\n",
"
2010-10-23
\n",
"
0.932080
\n",
"
1.119267
\n",
"
1.325692
\n",
"
\n",
"
\n",
"
2010-10-24
\n",
"
0.895720
\n",
"
1.140803
\n",
"
1.406739
\n",
"
\n",
"
\n",
"
2010-10-25
\n",
"
0.897375
\n",
"
1.112538
\n",
"
1.328852
\n",
"
\n",
"
\n",
"
2010-10-26
\n",
"
0.924637
\n",
"
1.168070
\n",
"
1.364797
\n",
"
\n",
"
\n",
"
2010-10-27
\n",
"
0.957276
\n",
"
1.175334
\n",
"
1.382472
\n",
"
\n",
"
\n",
"
2010-10-28
\n",
"
0.922212
\n",
"
1.157789
\n",
"
1.396143
\n",
"
\n",
"
\n",
"
2010-10-29
\n",
"
0.967077
\n",
"
1.199347
\n",
"
1.414492
\n",
"
\n",
"
\n",
"
2010-10-30
\n",
"
0.830030
\n",
"
1.195158
\n",
"
1.476995
\n",
"
\n",
"
\n",
"
2010-10-31
\n",
"
0.951630
\n",
"
1.270762
\n",
"
1.669064
\n",
"
\n",
"
\n",
"
2010-11-01
\n",
"
0.809570
\n",
"
1.112877
\n",
"
1.352301
\n",
"
\n",
"
\n",
"
2010-11-02
\n",
"
1.001853
\n",
"
1.168526
\n",
"
1.374803
\n",
"
\n",
"
\n",
"
2010-11-03
\n",
"
0.885834
\n",
"
1.084763
\n",
"
1.243589
\n",
"
\n",
"
\n",
"
2010-11-04
\n",
"
0.782202
\n",
"
1.071941
\n",
"
1.283330
\n",
"
\n",
"
\n",
"
2010-11-05
\n",
"
0.933213
\n",
"
1.149291
\n",
"
1.367097
\n",
"
\n",
"
\n",
"
2010-11-06
\n",
"
0.951722
\n",
"
1.190081
\n",
"
1.398906
\n",
"
\n",
"
\n",
"
2010-11-07
\n",
"
0.967498
\n",
"
1.161788
\n",
"
1.393864
\n",
"
\n",
"
\n",
"
2010-11-08
\n",
"
0.915501
\n",
"
1.155778
\n",
"
1.372192
\n",
"
\n",
"
\n",
"
2010-11-09
\n",
"
0.971213
\n",
"
1.198470
\n",
"
1.409445
\n",
"
\n",
"
\n",
"
2010-11-10
\n",
"
0.904380
\n",
"
1.075270
\n",
"
1.346587
\n",
"
\n",
"
\n",
"
2010-11-11
\n",
"
0.962840
\n",
"
1.147342
\n",
"
1.325590
\n",
"
\n",
"
\n",
"
2010-11-12
\n",
"
1.091086
\n",
"
1.283538
\n",
"
1.502536
\n",
"
\n",
"
\n",
"
2010-11-13
\n",
"
0.985451
\n",
"
1.207216
\n",
"
1.435151
\n",
"
\n",
"
\n",
"
2010-11-14
\n",
"
0.873823
\n",
"
1.155347
\n",
"
1.407026
\n",
"
\n",
"
\n",
"
2010-11-15
\n",
"
0.907594
\n",
"
1.095161
\n",
"
1.333333
\n",
"
\n",
"
\n",
"
2010-11-16
\n",
"
1.021516
\n",
"
1.178446
\n",
"
1.405428
\n",
"
\n",
"
\n",
"
2010-11-17
\n",
"
1.005996
\n",
"
1.200050
\n",
"
1.414176
\n",
"
\n",
"
\n",
"
2010-11-18
\n",
"
0.972625
\n",
"
1.208396
\n",
"
1.411030
\n",
"
\n",
"
\n",
"
2010-11-19
\n",
"
1.036822
\n",
"
1.217191
\n",
"
1.393905
\n",
"
\n",
"
\n",
"
2010-11-20
\n",
"
1.032539
\n",
"
1.240849
\n",
"
1.465980
\n",
"
\n",
"
\n",
"
2010-11-21
\n",
"
1.046555
\n",
"
1.229090
\n",
"
1.448083
\n",
"
\n",
"
\n",
"
2010-11-22
\n",
"
1.013634
\n",
"
1.188815
\n",
"
1.428163
\n",
"
\n",
"
\n",
"
2010-11-23
\n",
"
0.997702
\n",
"
1.177898
\n",
"
1.392498
\n",
"
\n",
"
\n",
"
2010-11-24
\n",
"
0.859340
\n",
"
1.073107
\n",
"
1.274164
\n",
"
\n",
"
\n",
"
2010-11-25
\n",
"
0.938809
\n",
"
1.146115
\n",
"
1.351901
\n",
"
\n",
"
\n",
"
2010-11-26
\n",
"
0.996817
\n",
"
1.178803
\n",
"
1.396186
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" 0.1 0.5 0.9\n",
"2010-09-28 0.790016 0.968579 1.102380\n",
"2010-09-29 0.744394 0.925553 1.131745\n",
"2010-09-30 0.780791 0.999924 1.199642\n",
"2010-10-01 0.853651 1.013829 1.180801\n",
"2010-10-02 0.792879 0.994975 1.229360\n",
"2010-10-03 0.775380 0.958632 1.198079\n",
"2010-10-04 0.762203 0.960841 1.154595\n",
"2010-10-05 0.770622 1.005522 1.173487\n",
"2010-10-06 0.773807 0.982053 1.176765\n",
"2010-10-07 0.899876 1.072179 1.279244\n",
"2010-10-08 0.815179 1.030676 1.242005\n",
"2010-10-09 0.846799 1.075428 1.238595\n",
"2010-10-10 0.825716 1.065997 1.253097\n",
"2010-10-11 0.884659 1.077818 1.245890\n",
"2010-10-12 0.920730 1.073006 1.231640\n",
"2010-10-13 0.901258 1.109938 1.298712\n",
"2010-10-14 0.921772 1.064525 1.289613\n",
"2010-10-15 0.920833 1.111202 1.273061\n",
"2010-10-16 1.029230 1.188139 1.344286\n",
"2010-10-17 0.911581 1.111804 1.263128\n",
"2010-10-18 0.900885 1.073449 1.198113\n",
"2010-10-19 0.981259 1.093404 1.269331\n",
"2010-10-20 0.936951 1.104434 1.282887\n",
"2010-10-21 0.936540 1.088976 1.319242\n",
"2010-10-22 0.942080 1.122903 1.362140\n",
"2010-10-23 0.932080 1.119267 1.325692\n",
"2010-10-24 0.895720 1.140803 1.406739\n",
"2010-10-25 0.897375 1.112538 1.328852\n",
"2010-10-26 0.924637 1.168070 1.364797\n",
"2010-10-27 0.957276 1.175334 1.382472\n",
"2010-10-28 0.922212 1.157789 1.396143\n",
"2010-10-29 0.967077 1.199347 1.414492\n",
"2010-10-30 0.830030 1.195158 1.476995\n",
"2010-10-31 0.951630 1.270762 1.669064\n",
"2010-11-01 0.809570 1.112877 1.352301\n",
"2010-11-02 1.001853 1.168526 1.374803\n",
"2010-11-03 0.885834 1.084763 1.243589\n",
"2010-11-04 0.782202 1.071941 1.283330\n",
"2010-11-05 0.933213 1.149291 1.367097\n",
"2010-11-06 0.951722 1.190081 1.398906\n",
"2010-11-07 0.967498 1.161788 1.393864\n",
"2010-11-08 0.915501 1.155778 1.372192\n",
"2010-11-09 0.971213 1.198470 1.409445\n",
"2010-11-10 0.904380 1.075270 1.346587\n",
"2010-11-11 0.962840 1.147342 1.325590\n",
"2010-11-12 1.091086 1.283538 1.502536\n",
"2010-11-13 0.985451 1.207216 1.435151\n",
"2010-11-14 0.873823 1.155347 1.407026\n",
"2010-11-15 0.907594 1.095161 1.333333\n",
"2010-11-16 1.021516 1.178446 1.405428\n",
"2010-11-17 1.005996 1.200050 1.414176\n",
"2010-11-18 0.972625 1.208396 1.411030\n",
"2010-11-19 1.036822 1.217191 1.393905\n",
"2010-11-20 1.032539 1.240849 1.465980\n",
"2010-11-21 1.046555 1.229090 1.448083\n",
"2010-11-22 1.013634 1.188815 1.428163\n",
"2010-11-23 0.997702 1.177898 1.392498\n",
"2010-11-24 0.859340 1.073107 1.274164\n",
"2010-11-25 0.938809 1.146115 1.351901\n",
"2010-11-26 0.996817 1.178803 1.396186"
]
},
"execution_count": 243,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"list_of_df"
]
},
{
"cell_type": "code",
"execution_count": 244,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Date_Time\n",
"2010-11-22 1.417733\n",
"2010-11-23 1.095511\n",
"2010-11-24 1.247394\n",
"2010-11-25 0.993864\n",
"2010-11-26 1.178230\n",
"Freq: D, Name: Global_active_power, dtype: float64"
]
},
"execution_count": 244,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"timeseries.tail()"
]
},
{
"cell_type": "code",
"execution_count": 264,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABIsAAAGDCAYAAACr5JCkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzsvVusLUme3vVF5Fp7n6quqr64amZ62j3uNrZARsIXtWyQJTAvZoyELCQePA/G4mUkZCSQEBLwgCXziMQDGGFZYjSyZMwDtsESgy9CCJu7q4eZvlVfqquqq6qrzqXqnLPPZV/Wyow/DxGRGREZuTJy7ZV77b3W95O6z661c2XGuuzMyC++//dXIgJCCCGEEEIIIYQQQgBA73sAhBBCCCGEEEIIIeT2QLGIEEIIIYQQQgghhLRQLCKEEEIIIYQQQgghLRSLCCGEEEIIIYQQQkgLxSJCCCGEEEIIIYQQ0kKxiBBCCCGEEEIIIYS0UCwihBBCCCGEEEIIIS0UiwghhBBCCCGEEEJIC8UiQgghhBBCCCGEENKy2PcAcrz55pvyjW98Y9/DIIQQQgghhBBCCDkYvv3tb38mIm+NbXcrxaJvfOMbePvtt/c9DEIIIYQQQgghhJCDQSn1s5LtWIZGCCGEEEIIIYQQQlooFhFCCCGEEEIIIYSQFopFhBBCCCGEEEIIIaSFYhEhhBBCCCGEEEIIaaFYRAghhBBCCCGEEEJaKBYRQgghhBBCCCGEkBaKRYQQQgghhBBCCCGkhWIRIYQQQgghhBBCCGmhWEQIIYQQQgghhBBCWigWEUIIIYQQQgghhJAWikWEEEIIIYQQQgghpIViESGEEEIIIYQQQghpoVhECCGEkINCRPDg0cN9D2PvrOv1vodACCGEkDvKqFiklPq6Uup/VUq9o5T6vlLq381so5RS/4VS6l2l1HeUUn8s+N1fUEr9xP3vL+z6BRBCCCGEhBhj8O777+57GHvl8vIS3/3B9/Y9DEIIIYTcURYF29QA/n0R+W2l1OsAvq2U+oci8oNgmz8D4A+6//0JAP81gD+hlPoKgL8E4FsAxD3374rIk52+CkIIIYQQh4hARPY9jL3SmAZN0+x7GIQQQgi5o4w6i0TkUxH5bffzcwDvAPhastmfBfDXxfJ/A/iSUuqrAP4VAP9QRB47gegfAvjVnb4CQgghhJAMxywYWcHM7HsYhBBCCLmjTMosUkp9A8AfBfD/JL/6GoCPgv/+2D029Hhu37+ulHpbKfX2o0ePpgyLEEIIIaTFi0THLhaZI379hBBCCLkexWKRUuo1AH8LwL8nIs/SX2eeIhse7z8o8tdE5Fsi8q233nqrdFiEEEIIIVkkP+U4CliKRwghhJDrUCQWKaWWsELR3xCRv53Z5GMAXw/++/cC+GTD44QQQgghs+BFomMWS0QEYo739RNCCCHkepR0Q1MA/hsA74jIfz6w2d8F8G+6rmj/PIAzEfkUwN8H8KeVUl9WSn0ZwJ92jxFCCCGEzEIrEh2xVmLL0JhZRAghhJDtKOmG9icB/HkA31VK/Y577D8G8CsAICJ/FcBvAfhXAbwL4BzAv+V+91gp9Z8C+CfueX9ZRB7vbviEEEIIIQlOJDoGseTxk8cwYvDmV96MHg9zm+y6HyGEEEJIOaNikYj878hnD4XbCIC/OPC73wDwG1uNjhBCCCFkIt5QdAxlaC9evoAxFIsIIYQQslsmdUMjhBBCCLn9eKFkz8O4AUQkG+TtxaJjcFcRQgghZPdQLCKEEELIQdFlFh2+WmS7nuUfB8CQa0IIIYRsBcUiQgghhBwkx+CqEUi23I4d4QghhBByHSgWEUIIIeSg6PJ69jyQG8C+1oxYZHwZ2hG8CYQQQgjZORSLCCGEEHJYtFVohy+UDJahtc6iw3dXEUIIIWT3jHZDI4QQQgi5S3SBz0csFjGziBBCCCHXgGIRIYQQQg6So3EWDTwOsAyNEEIIIdtBsYgQQgghB8UxCSVDgliX28QyNEIIIYRMh5lFhBBCCDlIDs1ZdLW6wkc//yh6bKgMzQi7oRFCCCFkeygWEUIIIeSgaAWSAxNKLi8v8fmTx9FjtgwtG1oE4DjcVYQQQgjZPRSLCCGEkAJevHyBdb3e9zDIBA7NVWNdRPFrMiJZUax1FpmbK0Nbr9cwN3g8QgghhMwHxaKZWK/X+Ozzz/Y9DEIIITvio59/jKdnZ/seBingUDOLcmLRaDe0G3wP3vvZe3j89PH4hoQQQgi59VAsmomr1RU++uTjfQ+DEELIjhDkHRzk9uE/pUNzFhmRfmB1RkCyD9+8YGaMobOIEEIIORAoFs2EUurgJqmEEHLUDGXDkNvHgWYWiUhP/DED38t9dEMbcjkRQgg5DMSsIc3lvodBbgiKRbNBsYgQQg4JwcFpDwfLoTqLhsrQcl/MXBnak7On+Pn9T2YdHyioEkLIwSJP/0+Yh39738MgNwTFoplQCuCEiRBCDgfeCN8hDjazyEzOLDKm++XFxQXOz1/OOD46iwgh5KAxF0Bzvu9RkBuCYtFM2DK0fY+CEELIzhjIhiG3j2NzFm0uQ5PgMTPr3MRQUCWEkMNGBACz6Y4FikUzwcwiQgg5LFiGdodoP6jD+sBEBGJyzqK8WGTnImZ02x0OkHMfQgg5aNjs45igWDQTiplFhBByULAM7e5wbM6iocwirXVUije384dlaIQQcujQWXRMUCyaCaUUu+YQQsiBwRvhO0KmBOsQsN3QTO+x3KsUEVS6SsrQ5nX+sAyNEEIOGwGAG+yySfYLxaK5UIc3SSWEkGNmKBuG3D7853RoAdcmI4JtKkPTWkNMWoY23/gEdBYRQshhIxSLjgiKRTOhlOLiGiGEHBID5T7kFtLVoe11GLsmG1qNDWJRpeNtjZlX8KSziBBCDhsGXB8VFItmgplFhBByWNiAa57X7wJeEDm0zysrFpn8a/RlaL3MopnL0A7tPSeEEBJiFwV4rj8OKBbNBDOLCCHksBjKhrlriAh+/NMf73sY8+I+qEObzE5yFsGVoaXd0GYe32G944QQQmIOs9soyUOxaCZsu1r+ERFCyEFxAOd1IwYPP3u072HMyqE7i0wqAOXEIuPFojDfyMz7nrBUkxBCDhx/jmcp2jFAsWgmKBYRQshhcTCuiQN13UQc6Gv0LqFewHXmmylwZWgm3nb2MrTZ9k4IIWTv+GsIQ66PAopFM3NoE1VCCDleymv0Hzx6iLNnZzOPZzuO4bp0151FTdPAmP5EPFuGJpKtBsgFXM8t5swtRhFCCNk3FIuOCYpFM6GU2vcQCCGE7BDb6KnsRvjZ82d4/uL5vAPakpzgcGi0C5931Ofy4c8/wv2HD3qPD4lFQ93QqjSzyMwbSjrkciKEEHJoUCw6BigWzQhL0Qgh5HCYUoYmENRNM+t4tqV13Rz0Tb17jQOdwm47xjSom7r3eCsWJaVl2TI0EeikG9rczh8rXM22e0IIIXunrfPe7zDIjUCxaEYUKBYRQsihICi/0RYRNHX/Zv82IJ3t5mC5684iEcmWoXnhxyQOoyFnkdY6EZYMy9AIIYRsT3uOp7PoGKBYNCNK3d2JKiGEkASZcE4XyTpDbgOtkHLQN/V3u9TOikV9Z1onDiVB1wOZRZXOZBa5/768vMT7H36w83HfzXecEEJIGcwsOiYoFs2JVYsIIYQcAILyEhuR21uGdgzOD5G7XQougqKA6/bfbBmacWVoJnp+KxatrvDk6eMdjpmlCYQQcvjQWXRMUCyakbs8USWEEJIwECSc31RQ77kMTUTQZASru94prAxXgnVHX6P97DJikRkQi7JlaOi9B9F2Ilivd/cd3SRcEUIIORToLDomKBbNCDOLCCHkcJhyNrc3+/sViz5/8jl++sF7vceP4ab+7juL8plFOZFIKZV184gIqioVi0z03HW93tl71O13J7vL8v6HH2TfF0IIITfEDWYWmZc/hHnx/dmPQ4ahWDQjSqmDnowTQsgxMdSiPL8tUNf7LUNrGpN3Fm1woxwOAq3utrNoU2ZRGHCtlc7ONGwZmo7EFWOkJxbuygHXvdfzvecPHj7Yu2OPEEKOm5srOZYXP4A8/87sxyHDjIpFSqnfUEo9VEp9b+D3/4FS6nfc/76nlGqUUl9xv/tAKfVd97u3dz34245d7LubE1VCCCEJ0v5fwab7D7i24tawO+WQ1zJEAKXvtrOoGXAWWcdUF3A9VG4nAlS6ypShxQ6gdb3ezZgxv7PI5obdzc+UEEIOixtYEBODg56s3AFKnEW/CeBXh34pIv+ZiPwREfkjAP4jAP+biISJif+y+/23rjfUOwgDrgkh5GCYcqPqy4j2WzKzebyH7Xz1zqJ9j2M7BENlaCYSh6xYlBfFTLKt3z7thre+Q84i223tjn6ohBByENxkMwNhNtKeGRWLROQfAShtl/FrAP7mtUZ0QDCziBBCDogJbcH9uT9XBnZTiEhbrpQ+bn+44QHdICLinEV3c5K5KbModAtZp5Fuf042tmVoUTc004ktbvt6vSNn0Q2VN3JeRQghe+QGM4vsROVuXscPhZ1lFimlXoV1IP2t4GEB8A+UUt9WSv36yPN/XSn1tlLq7UePHu1qWHuFmUWEEHI42Cq0cmcRgL2WookMdck6/IBrAHc+s6jJZBYZX3ZmQrFIZfdhEmHJP4bk899ZGdoNBFxPyQ0jhBAyBzfZDU3mvaiQUXYZcP2vAfg/khK0PykifwzAnwHwF5VS/+LQk0Xkr4nIt0TkW2+99dYOh7U/7nInFkIIITFhCU/JtsDuwoNTPvz5R6P7FgikoKPWISICaKVuRA6r6xrv/ez9ne5zk7PIuoU6wUcplZ1viAh01QlL/rFeGdr6jpWhHfD3lhBCbj836CwSOov2zS7Foj+HpARNRD5x/z4E8HcA/PEdHu/WQ7GIEEIOi1I3jm1bXs1Whvbw0UOs1quxQWwsQwt/1ZgG5+fnuxziXhEI1EDw8665vLrE548/3+k+N5ehxZlFSilb9o5YFALQzywyXebPzgOub8BZFB6HEELIPmBm0TGxE7FIKfVFAP8SgP8xeOwLSqnX/c8A/jSAbEe1Q4aTGkIIOQwkKOEpYblYzuYsKnFYDG0jmZ+ePXuGd37yzu4GuG9ErLPoBiaZ6/V659f6jc6iKs0sUkDSfdU/rlWaWSTRc4Hdi0VzOYuOwRFHCCG3nvYcfBOZjHQW7ZvF2AZKqb8J4E8BeFMp9TGAvwRgCQAi8lfdZv86gH8gIi+Dp/4igL/jaukXAP5bEfl7uxv67WcoR4AQQsjdYqprQkSwWCxmyyyyndnGtkFeLMncdBsxuLi8xOXlJe7du7fDke4HAZyzaP5j1XW98/wnL+oYYzuahY9bt5D9XI10ZWjhEAQChX55mhEDJard6mS5RL3jMjQGXBNCyBFwE+diMcws2jOjYpGI/FrBNr8J4DeTx94D8Ie3HdghwDI0Qgg5LKaUoS2XS9QzlaHZa8u4s2hjN7TwMZdr8+TsCb5676s7GeN+8c6i+a/B67reuZnGf8+GxaKkDC15rWIESnXzkOh9CDKLlsuTO1OGRmcRIYTcBnxmnsH8tgg6i/bNLjOLSEKJWPTBhx/gxcsXNzSi20nOak8IIbeJrt38BLFosUAzUxkaBjqdJYOIwo3DsYX/Al2XrSdnT3c6zH0hAqgb6oZW17svQ/Pfs/T6WJxZBIFSOhKS0i54IoKTGcQilqERQsghc9Pd0HifuE8oFs2Iwvik5uX5S1xdXd3MgG4p333nezi/OJxgVULI4dHeYJduL4LFYjlfGVpBZzZbqpbLLOrfdIsYfPGNL+Ls2dlhCPgi0PrmnEVzlKEBebFI66rrhuaymeyEI97Ol8J7schnF4UOoOXJEuv1HXEWTfwbJIQQMgPtSZ7d0I4BikVzUtC2V2TXU8y7R13X1sZPCCG3laTd+OjmIi7geqYyNJSUoSEKNw7HhuTZxghOT07wyr1X8PzF8x2OdD8IypxFnz/+HE+v6aaaw1lknVEKTSIWGTG9MjR4Z1Em4BqIS9GikjYIFtUCIoLGXP97mjqXds7Ev0FCCCFzcNPOIp7z9wnFohkpKUMr6Whz6IgIzEy5HoQQsgu6MrTC7SFYLmcMuC65dgx1Q5P0B+ssUkrj5OTkMMT7QmfR02dnePb82bUOta7rWbqhLaoFTCriDJWhqaQMLRCLfEe0NO8IbpvlYjch11P/Ribvv3XEcZWZEEL2xw06i5hZtHcoFs2I7U4yIhYBR6+Y2lVNnggIIbefKQHXi8USzYwB19suRgxlFuWCku8qpc4iY8y1Q8jra2T+3H/4IFv2JyKoqqr3O+PK0CQoKdO5gOucs8gItNLt7/02i+ViJ7lFN+csmmf3hBBCSrjBk7EYYKCkntwMFItmJLWF57BlaMf9ByBi+qunhBByi5garusDruuZXDol4/CZRf1t893QtCtnOoy7cdcNbeT6asRcW9C7jrPoZx//DC/PX/Ye92JRupAiItCVboPLrSNsJLNIK4hx4pBW8TYAlovlTtxkbZnbTN8fBlwTQsht4CadRR6aCvYFxaIZUWp8hY1laHal9CACVQkhB8tkUX/mgGt7iPHMotx2uZtuEQOlddF16y4gAiits93gou3M9cWi2gVEb3MtFyO4uLjoP46+s8jv35aVdWHS2W5oURmaghFj847C7miAK0NbXMsdlR5zrm9PLpidEELIDdOWst/EvZs7Bs/7e4Ni0YzYCdnmbUo62mxirlXrm0RE0DQUiwght5jJAdfAcrlAM8M5urjcZ8CJkXu+GShnurNImbOouaZYZIyJOpNNfr4YnF9mxKK2DK2JHktLBXOPhY8DXTmefUy3rmcfjq213smCjSDJRNo1DLgmhJBbwE13Q7uhY5EsFIvmpDDg+jppkL/zvd/F1dXV1s+/DYgIy9AIIbeaMBS4aHvXaWqOPLbSFuVDTozcSxFjnUUoWOS4Cwics2jsGmwMmmu4v+q6xmKxaIWZqYgILi7Os48vMs4ipZQVwdrvQFeGVtINrd3WdZixQpOGGXFgFb2WIBNpDugsIoSQ28Duu6EZMVjJ5Y0ci0yDYtGMlGQ/XLcMrTHNTlre7hNhGRoh5JYjyb8btw1vzLH7m1tBmXDlj2uSSVbu+a2zKA2/ubNIJKoMYUSuFXC9rtdYOrFo6ufsvyfnuTK0TGZR6yLSKgi47srQ0udHZWhGYEznQrJakc0ssm6g3TiLVEEHuq33z8wiQgi5BYzPiEQMzJN/DKlfFO3xUl7gafNgw7F4n7gvKBbNSNrKNsd1xaK7nnnkx89uaISQW80WN6qziUWFZWijmUXRY+awuqEVinXmmmVo67rGYrHcWiwCgMury96CiRWLFjBNRizKOIs2lqE5MUjEQOugDA2dU2knZWjinEV7LEN7/uL5PMcmhBBiaScXG64bq0eQZ9+GXH5YtksYGORcvtNc3WT3UCyaEaXGbxJst5rtjyHG3GlXTrvyfcfdUYSQw6YtgSlw3aQlQDMMxh1nbDM35rTEKFOHZnyeTcF1axvuP7yPx08e73y/Q9hXMC5+GWOu5c6tvbMI44tDvTGKzfg5PTnF5dVl9DgAVFoPZhaFOUnjmUX5MrTWlaS7wOzrYF/PDQRcDxxBRPC73//OQYidhBByeylw+9TPkm03Y2BgkLkWM7No71AsmpGilUa3urct5gCcRQAYcE0Iud1MqEOLbtSxe6dOcX7SUBlaxpkkxt7oz+EsqpsaH3z0M7zItIifDZvdXCYWNc3Wr7l2zqI0M6gE251M45VXXok6orXZREkZmgkyhsLcqlzxYFqGFopFYRka4DKQduQsCse2a4accuHxCSGEzM24s0jqM/dDac6j6c1VLL4bGu8T9wXFohmxNwmbtxGR4j+kuq57YZd3Pe+ncxbd3ddACDl8poTr2iwY5yiaxVhUWoY2FHDdf9wLF8DunSH3H9xHXdc3ejPvGsMXiUUiMjBJHWe9rtvMoqlvnLgMoVfvvRJ1RBPY70+VdCnzJWe9gGutvJU52DZ2FhkxndjUCphOlNqRs8g4p9R8bBZJmWlECCE3QYmz6Gx8mwAjTd5ZxMyivUOxaE6KMovKJzbvf/gBPnv8WWYfd3di5Cfodz2kmxBy2HTn2QKxCDfjLCo0FvXFouT3QCdcKDXemGEKxhj8/P4neOv3vHmz1yqRMmeRvwZtmVtU12sslsutPmcjNhDaOou6jmjixp62tLeZQElmkROWNpehaYgRm1mklNWVIO1xbDe0/kR8tVrh6dnT8hckZaHi2zImBlEsIoSQG6CdRBQ4i4rL0BqYnCA0Ye5F5oFi0YyUTLqnBFQb00TlWn5yt4sVwX1BZxEh5K6glS7SUcIb9VmcRQVBv8CwGyonfFmHir52Gdp7P3sPdd2FVK5WK2il8IVXv7CTUqdSnK+oyFm0XCy3FovWdecsmp5ZZN1cpyenWK3XyeCd46eXWRR/Rq3IB/TFIvfl0zosQ9POhYQ2s0gH3dVCzp6f4ZP7n054PQKlNeaa1FMsIoSQ20CBgOMziwrPx43UA/sbL3kj80KxaEaKAq6lfHqZ5hN1k8W7+wfEgGtCyF3AC0ClAddtFdocTovSlbYhMT7jTDLetYLr3Wx//vgxVutVcCgvcOym1KkY9xmMOX6MMVgutxeL6nqNhReLJr4+L/RU1SIS2NrMIh1nFsVh1vbx1sWm4vJBca4lwJehSSAsqc5ZBOWcRf2xGzMtE9F/h+b+mIfG5F1iFIsIIWRONgs4ImaLgOsGki01YxnavlnsewCHTFFmkV/eK8CuDIZhlwfgLHITVAZcE0JuM+3Nd5GzqOuCtk2XrNH9F+YndeVmJc6iQIi4xtiMmOg9MpHAcYOZRRI4iwZekTE2A2ixWKDeUixqjEGlq60DrpVWWCyqSKzyn0U/s6gLuM51Q+tlFiEoQxNjC9a0aheyvNCkFbLOIhGTfXwQ5yzaXxkaNv6eEELILhgRcJoXwe+2L0OLzuV0Fu0NikUzUrIKPaUMLd3WCy2TJnO3DB+IyTI0QshtpziPJS1D27mxqDSzaKAMLSM2GWNsOPE1O2N5EaL7byuI+FKom0OAEZHKuAyfqqrQNHV2m9GjSOfWmRxwLQKtNBbVAnWTcxblxSLbvSwUi3TPQWWC72D3vbXOH7iFLOuAU9BQg86iKYtR/vXMxZD42R2fziJCCJmTIgGndRVt2CbBOovSc7dEW5D9wDK0OSm4sUgn1hu3NfkytNwk764gYrCoKgZcE0JuNW1b8NKAa8wfcD2mTnhxIe301Tkw+tta0WP78eauU2ko801gM4s2lwGKsU6YRVVtXYYmTmTbJrPICzpVVaGp+84irXV0bWxdWoHw1oVUp9+GIOBaazSu65vPPIJzNStlf5/rBmfETC9Dm1MU9K954H2Wkd8TQgi5LsH1fUDA6cKt4+03YSRXhhb8NxcB9gbFohkZC7guXR3uto8nbl19/t1VW0UEVbWgs4gQcqsR+HN6wbaJs2jXU5ziIF/n3BwqQwtvqo2xYcu+U9a2pAJDHMp8g+d5n1m0yVnkhJ7qGmLRdcrsxFhnk9ZWhPTXQS82VrqKr42ZY7XfteT4xnTfQS+GpWP1pWp6wE0mZppY1AZoM+CaEEIOlBJn0RZiERogrbaJzuW8T9wXFItmZCwodOrEpleG5p1Fd3hiJCJYVHZCzAkeIeTWItMCrsPMorlWxMb2KgAqrduSpXB8Wut+xo2+vgMovU51AsXNBlxbZ1FJGZpGVS22dxaJcQLJdJHCdw/z7iJfihaVoYUdUCOxxwTb6t73TAJnkX19devy8s/zAqh1FmXK0CY6izpxctLbMBmKRYQQsi9k4OeA+hlQveY2KRWLjG28MLT/O2yMuOtQLJqRsRuLdkJT+ockcX7AIXRDM26yrBVziwghtxcvppTciEZi0RblSSX7dz+Mbqd11RMCvJAQTcm86HGNbla5m/W4g9cN3sRLQWZR4CzaNuDaGFt61TrJpjxXTOD+WbSlaMOZRaZ9L+OAa1+G1n/fAWCxqFDXDcR0z4+OM+As2robGp1FhBBymEQTh4EytOa8E4umOIuQlrbRWXQboFg0JyOT7qn19b0VW3MI3dDs5FVXFIsIIbcbrfSEMrTwgd2Oo/SmWNoMGZP+wr2W2AGkfVv1La8pebHIlVrdwswiLxZdK7PoOmVo0gVCLxYZZ1EVZxZ5Z5BWOnqvuzK/dN+ds6h2zqK0DA1elMqMPS19H309sIs/c0UGjXUBpFhECCFzUyDgiAFUldl+014bKCRlzNFFjfeI+4Ji0YyMTR5L2x+32w+Uod1lZ5GfLFcugJMQQm4j/ka7rAwNQdvy7ZwWm0pzu4WG0ZEMZhalLikb9qycyLXdzXaXuRMcywQCxU02YygQceLMou26oflStu0yi+x7DnhBJ3EWOVEozScqySyKnEVODGvL3tzvIeIEtfxizVRnkZi5nUX+X4pFhBCyH0oEHAMoDRvaOH5vZ69zAJBePwpK3sjsUCyakbGsiukB1xKtEN90ZtHZs7OdT8I6u30Fw45ohJBbis93KSpDC/JigPJzfMgPfvwOXp6/zO+/2FmEfBmaWJdUtD54DdFj07hC50uu49Zc+BGMikXXzixyIhumixTezQX4MrTYWZSWouXEojbHCK7DWTAub29bLBao67rdFq4E0X+nhzqYWcGy/DOTAXFyZ7AMjRBC9kyJs6gBUAGpU2gAE+xHBvZ/l5s53XUoFs3IWFeZa5ehBQGXN8H3fvh9nF9c7HSfQ9kMhBByqwhu7Mc37W7U2zblE2nqGut6xO1SUoamBpxFA06UtJxpChszi+YUEYbGMlJWZ8RAa3WtzCJxgpMXYKaNsQvHzpWhAciIRZ2g17qDlHWEpe97V4bWOYu0zyxyz/cOptz1V8RMWozy45uvDM0fZ/j44b+EEEJ2TYGzSJyzqHD+IzDoljzC/Ydb8R5xX1AsmpHRMrSxmU9v+3ji5i39NyGy+Inpk6ePd7rfcLK+7couIYTMjS/hKboRDW72oba7eTUigyXGk8vQkv14B0jo1OgEiu2dRbkFDNMKEjcccA2XWbQhlHwXmUVFmHrIAAAgAElEQVRhh7KpKpsxaa5QUIbmtrEl2nF5Wuxa65xF4eHjMjSfWeQCrhF/5krnXV+Ty9DEZWTNphb1Rc70+OG/hBBCdowM/kdAWIZWJha5KrQk4Dr4mc6ivUGxaEZGV2gnTmxMz1l0cxMjf4zHT5/sfL90FhFCbju+ZAcoKf8KuqGhzI3UP54Mlm2Vl6HZm/d+GZrPlonH2wkR1ytDCy98IsZlId1wwHUkogyJRVYA3HaxIhJctgq4Nm1m0aKqkjI0Oz2zJdpxGRqAtqwvLi3LZxb512f8fn0ZWuAsyuVJmakB1yLFIfDb0HXxGxGL5jk8IYSQImeRD6sum08YmLYpCDOLbh8Ui2alNOC6bG8iEk3ofP3mTeRA+Enly5cvUY+VRmyxX82Aa0LIbUakWPiJb+q3FPRFYAYCoXOizMAuoHXVP77Ada3yuTemdbhsPV50btdUtNBbiim7YJO4YIxBdY2A60hkw/T3LRSFqkXgLAoyr8KFFBN8r7QPDB9wNqWlbAoKTd1En4V/X2w3tEwZ2oaQ9cHXM6OzyIqfw+4+OosIIWRuSjKLXDe00jI0MfbyZVcxwl/E+yR7gWLRjIyt0F43s0hEUOnqRjrMGDGodIU3Xn8DT8+e7m6/xk6WK60ZcE0IubXYG/iykGuJhKXtMoCsk3TAWRSMaeM42sDhpAxNYoeGOIeNHe32mUW5MrS9BVwPZPmEGJcZVOIsevGyHzYeCjLbZBbFAdedYGX3a7cJF1JiEdKKJn4fucyisFytWlRY1+s2jBsiVjQMxaPkfUrdzGMMZWTtDMHGcsapHWYJIYRMpUTAmdgNDaadMQ07iygW7QuKRTMytkI7dRWsF3BtBFWVXxHcNb7F75e++EU8fXa2u/22zqKKZWiEkFuL2Dq0sm0RlwttY58WkcFzYnftGN1J1okh8Df19r9jZ9H2zpDcNa3LLLrZgGuP2nBccZlFla7QbHDR1E2N7/zgO73HfQc5e5zpmUViTCvSLaoF6tpnE3Ulj1UYcB1kHPkspqjcLtx3IhYtqgXW63UnDiEuocuJoMa9J1PmKP71zIFgc25Y62yjWEQIIfMgBQKOGFiJYVo3NGsuGhCL6CzaGxSLZmQss6grJSjbX99ZZKCrm3IW2ZuLxWLZhm3uAnE3KVWl0TQ8ERBCbivWLVTsLOryrbcvQxt6XnEZmrgypn5mURj8HJZD4RrlYjmxKMr02fG16snTJxtLksayhBonFo3l5omRVjhJH/eZQ5uykYYInUW2I1uuG1oFkylPi91Aqve59ZxFlXMW+cwiiR1wWqne65/acVWC1zOHYCOCjaJje5NBsYgQQmZioEwsoplWhgZjr2/u5+yxmFm0NygWzcjY5HGKs8hPCsNyAuPK0G4ms8hs3fFl837tSqF1FrEMjRByO2nvyTF+zk7Lk7ahrBtaSWZRxlnU3tSHZWhdZtG25/iu6UJwLGMXBDZ1JduWH/z4ndHFi9DhW9c1zi/Ok7GF5XfTsnD8Ikp7nIHPo65rfP7488x+TdexbLFoS+EisagKnEXB9r6sr8uEQvTG55xFdV3bbV2Hmkh8yn1PJjp10mPuHtn4PWJmESGEzI0/v2psziya1g3N/yRDbqIZ73Vl/Rjms7/XK9knFopFMzJm55+SWTS0YltVmfDSGRBju+rYCer48X78058UBWG3JQoMuCaE3GJaF0bBzXBYRrSts2hjGVphc4ShzCKIL+ex/xmVU23hkGl3a/pOlBKHz1bH8q6aQfNVfNyr1RW+84Pv4t33f9puY8RA684CNhiEPdBMIhVvhl7ey/OX+Ml77+adSSooQwucRf57FmUWmSTgOhB8bBla7DxOM4v8OFthSwQ+KEKrvrNqG2fRHJ91uP+NziKKRdfi6dlTvneEkBHcOULpYQGnLUNTKMkaKipDmzGzSC4/grz8IdCcj298hIyKRUqp31BKPVRKfW/g939KKXWmlPod97//JPjdryqlfqSUelcp9R/ucuB3gpEJ01RnEYBIqBFjQ6dvIuvHB4GWTgKfnD1pJ76b8JNLBlwTQm43EwOur+ks8uHFQ7+zIyooQ1O6tx+bWRQ4iyQpb9pqxPlxhQLCLl2w49dPawVTLpvp+z/6Ad54/Q1cXV22WxhXhgb4zKGRY6XlfG4Rxe1gcCzGGNRNjecvXsSPS/f8alG1Cyzh5xFlFkWfk24Fs06gCceMSCxaVJ1Y1JWhBaKm7n8+JiP+bSIc3xwd0Yacch5T+HdB8vzk/XdxGfx9EEJID396VRVyAo49P4dlaOM0Et4vDohFc7p+2n3TtJCjxFn0mwB+dWSbfywif8T97y8DgFKqAvBfAfgzAP4QgF9TSv2h6wz2rjFWstVlFl3HWXQzoaFTVwxLQzF9ZhEDrgkhtxl7Oiu7EW5zZLC9U0c2lqEVBir7m+teZlEc/GxMEnB97TI0iR5TWu884LoVMgY+C2/OUQq4Wl1itVrh9/++b2K1Xnet6I1EYtFYcHLOeaMCR9aQ2uSdQU/PniRj7J6/qGwZmh1DkCUUlGhbJ2483lagSb4PIiboyGf3b5+n2+9knFmU+Z44J9M2zqJ59JrN46Gz6HqUztsIIceMP0dUAwJOWKa2wX0UYKRpr0VxGdqQy2jHtGPk+S/HqFgkIv8IwOMt9v3HAbwrIu+JyArAfwfgz26xnzvLWPmBwE3kC/aVmwSZtgztBpxFbgV2U9vakHKxqHMWMeCaEHJ7Kb8Rjh0g200/xpxFeqSBgh1xvgxNnKOlW68IulhdK+Da+B+iY81Vhhb+m9kCgBVVzp49w+uvvQ6tNU6WJ7haXQEAjGk6sWiDqOc/h34ZWj9wOvt802C5XOLJ2dPefkORzl4Hm2i/UYl25njt+4vU0RU7i6rFwu3P5RshzizSut9Z1YhzL08Vi65Ryji2f5ahzQfFIkLIOEEZWs6J468jPrOoqBtag3YxLroO3ZCzCK6yhee/LLvKLPoXlFK/q5T6n5VS/6x77GsAPgq2+dg9lkUp9etKqbeVUm8/evRoR8PaL2N2fjthL1ttzTuLjFt1vH3OIpSKRS6zwYZ4sgyNEHI7aZ0qRTfCSRnals6iYbelyxwqKUMbCLhWqnt+JFrYDSaP1+83/LcdgxfZsLsb+fa9GSwdQytcvHj5Am+8/gYA4N7pKa6uvFhUFlDtJ6/ptTYuYxt+bcYYfOmNL+H8/DzK8guDxQGgCtxFuTI0I7FYZHplaImzaKAMredKQl7sMsY493LZJL1zORVtPhm7wDacBUmx6HpQLCKEjOPFompgrtB0vy/ohibNS6j1WessMpEANfTzZq7kHI/rT4q3p7NoM7sQi34bwO8TkT8M4L8E8D+4x3PThcFPQUT+moh8S0S+9dZbb+1gWPtnTFjpVocLVNfcJNz0nUWNafDxJx9fY9TDx9dt1kGJuFU2YfOZDZWuGHBNCLm1SJuBU1aGFgVcT5yAdDe9w93QdIEIJSJWbEjFIrisHH8cY1pn0XUyi0yme1Y/BHpHYpGMlKG5Ui4vxrzx2usAgNPTe20uiw24HndUDX0e4ecMDDu9msZgsVjg9ddfx9mzs+g1+LIyAFgsKtRN3XMW5TOLFMSYqAwtPL4v//NUbRma6sYaPCE8TviaSxe02vFhvoBriGS7toXHD/8l06BYRAgZxZ8jXGZR75zRXiets2h0vvT0/8Ibj//foAwt7ICW2+84taxwjmfF21Ms2sy1xSIReSYiL9zPvwVgqZR6E9ZJ9PVg098LYILMd/cpEYtKVofttib6F3BlaIlFfLVa4eNPf36NUQ8c39hJbXEZGqaVoaUTVUIIuVWIuPKdaWVo6U182aF8Rs7wTXHYzWwT2Zt9cZlF7j9Tx8p1y9DCa1q4b61U0Xn+anWFi8uLjdvkhKl4MACcE0wphddeew2AdRZdts6iQCTb8LmG2U7RGJIyssFuaqZBpTXunZ5itV5F+9UqdhbVvTK0LrMo3L7thhaUfkXlf0EOFdA5i7RrVAFIVKqmVdzp1OZY6Sjbagxxre3Tzmy7QgQsQ5uTwkU+QshxIM0lRNKqD3+O0Ml/+/9MytDGRB6zgpIa7mqdlEMPlKSNYGCwkosJ5zOWoW3i2mKRUuqXlJttKKX+uNvn5wD+CYA/qJT6plLqBMCfA/B3r3u8u8bGL6qrvy/5/ktGGBIx1lmUrAZ2IZm7w96clK0Y+glsWbWaoVhEyJHy9u98+8783UeuiUnOoullaF152ICzCE4s2DAOf55WSveCslNnkm80ADdi/9ymadBMKA/ubtbjx9IOXmM8/OwRPrn/6cixNpehebVIKYXXXv0CKm3Fknun99qOaMYYVJGjarMIkX5X/SKKf/7Q52yMga4q66BtmuT5saDTZJxFTdZZlHZD64t0OnIWhWVo7jodlEsqHX9PjJjia374Pimo0piKyfjxjotFuz/2MVC6yEcIOXxEDMwnfx3y7LfT39h/VOX+O52npGVoI8eBAEFDBhkSiCY4iwQGtaxdFlLJE+gs2sRibAOl1N8E8KcAvKmU+hjAXwKwBAAR+asA/g0A/7ZSqgZwAeDPib3a1EqpfwfA3wdQAfgNEfn+LK/ilqJG/kh8nkTJzZKIQCedz2zAtU4EJHuxt1kDVW5XW2HczcSkiWNJqJnY7IzZbOuEkFuJiODy6hKXV5d49ZVX9z2cMlweS4lgHkUWTTyM70qVdqeK979ZeOnKiFS/DK19vv1vY+IuW37EH3/6c2il8PWvfR0lDJVL66SD1+h+TDN6XSzqhgbg9OQUX/nyV9rHT1NnUcHY2pK3zPuodVBuOPD8xhicLBZAFYtFqaDj5wPh96faVIYWiUVJGZpJS9ySMrRkf1rFAdfiOsVt1Q1tU1i4E8jG5kcDB9hYFieSD3QnZbAMjRDSsv4cMOdAc578IhGLxMTBM1EZ2kAIdrQ7A7QdQFWcWRSdj8rP60YaGNSosUI1LnUE++a1I8foOygivzby+78C4K8M/O63APzWdkO7+5RmFjWF5Vpa6144ZqWraMLoj1c39U7FIn9zUeosCv8d36+yE9U74jAghFwff364urq6E2KRdU1sLldqtw1an2MGZxG8SLHJuIpQRJDe78KgYNssIejeFjiL6gnn5fQ6FD4GAEqXCQ9NY8bFopHrjH/9v/DWL0SP3+tlFnlVb8O+zFAZWiI2DY3VOZgUFK5Wl91+g/cGcCVnjYm+P1prmKYrQ48Drk37c5oNEQpZALDwmUUDbiGtVVT2aBeIdBukXUKXnzT81Xznx+/g61/7ehs4PgXB5pzHVizi6vBWUCwihHjk6oH7IXHntKcIvxiRXqvDMjQUzH8MlHMWqZ4tdTtnUSM1jDSoZY3TknUJ/xp5+suyq25oJMNY1xwp7GgD+DI0nUzC+zbxdpJf77azmDHiWu6Wi0UlN0heMCu9iSCEHAb+793fuN92BEEnqdEyNAQ39WUuy/j5eXEi/H3YzWxowJ1YlAtm1tF1I3bYdNut6nX5uF13sEGxqNhZZEa7Y4rJu326DZBts3FycoK6rtGYph0vgEDcy+zKfx6597EVmza5aRpoXaGqKtSRsyh2//j29eH3R1dxZpE/XlVVuLi4GHxvfeaQJypDQ/f+xWVtJnp+O78oFAyH8pNCVut1tOg1CcFowLVWZVleJIZ5T4SQiNV998NAZlHoLIp+bbdXqnKC0djqWgMEc5C4dGxAOBrBoIEooJarsif4jqeyGtnwOKFYNCNjNxV+YlMys7F29apXhqYTt0/oLNol4ia1O3cWGb/6Tes4IcdEJxYVXsz3jb2Db3/cvGlZl6xNz7f/jmQWjThXFZxrc6h8KihD68qp4uvJej1BLPJlVemiRhSiPH6en1KGNjiWyN3VoZTC6ckprq6u3OsuKUPz4l38exOESG/KLGqcs2hRpZlFsftHa42mMdH3p0ozi9xr+r2//DV88uDTSJREND8w2cyicM4Qu5ri8HHjygfDIO2x0PGoJG5g7tM045/tpv1vdhb1xUpSxpxi0f2H93F5Ob4oQHc5IbcHuXJiUe+anYpFyTkj6YY2JvIYNPC+3F5zhHDfE+4RDRpo0VhJ6WKk3feZeVR8jGOCYtGcjGRb+Al7ybU5XLGNV4PjcGg/qd21WGRkuKShN9YJkw7jA64nWN0JIXcfPyG4ujPOIleGpsYnPxIISyXbZ5+P8W5omy4edgy+xXo6mYudSRI6XIIbfREzSSzyGTxD3dBKA64bY1qBZNOx7BinOYsA4N69e7i4vIjcN2XByXmHFrDZSWzc9btKxaJEsKmizKKgDC24vvvHX33lVfxTv+/3t8HdKhEl0/BsrTX+mT/4T7syMdVeez1KpfmHxmUW6VYo+sGPfpB9feF71O5z4GOxoelbikXudYTHi8cw0P2PjNL+zc9Qh/Hw0UO8PH+5cZuX5y/xvR8eVawpIbcWMWubWQT0y9CKA67LuqGJOLEoe50d+nkzDWpUaoGVbF7g6AZhx/zcfD5BYDoeKBbNiBpJNhVvqS4sQwvb4ALdZDDrLNpxGZoNKd0cXNlu2+ZtlL0upbUtQxu4MSKEHB53zVkktg4tyvQZ3jYQAaZHFg2WPYW/1xsycgB0mUWZEl/vTIJ05+rOIYNg0iZYTylDE5Mpl5auPX1pGVpBZtFYGdqQswgAvvj6G3h6dha5b9KA6rqu8eDRg/Z1AbnMovh9G7qWm6bJikU+F8hjhaFmUCwK30sAeOvNt/DH/rk/6o6veiJd6CwCgDe/8mZbhmZM/P5oHZebedeU/8yMMdHYU3rlhgPvRd3U13IWQQ0ogKCz6DrM6Sxa1etRR2HTNBu/X4SQG2T1EGgXjdLMIu8C8plEaRma/+8Kgys20e78/u0Kjxnohjal+sRIA40FVigTfvy+FRSeNvdHtj4+KBbNyGhmUVtfXyiqtGGT3Sqj1jrqYuK/8M0cZWhe1Cl0FpXcIfmbnrQTCyHksPE3l3clswhtCVCBGzQoF+oHNpYcSvKOoOj3I9cOQdc8IJu1o9tRhS6UNLOorstv7m1ZVVwuLZGgUhhwXVKG5q95g4MZfu6Xv/RlPHn6JBH14rGdX5zjk/uftq8B6ItFYkwn3qjh70XjupP2nEUmyDxC2g2tE4uaILMoXTRaLpft8UORL3Uthfgcq8h51HMWuYWcUCza8Jmkx8u9F/61jeVRDdO5+/LOos3d0sgGgr/5XbNerwddku3hRSbdDBJC5kNWLty6eg19R8+Is8j/HSvt3EVjJeOdWKTC/QPBhWTaPMqgQYUKtazKziti75mXcoJn5hHWpVlHRwLFohkZzSzyHWmKxSJbrtW2VZZg5Th4DMD2AZID+BXUImfRhBWqKOOAEzxC7jyl4o+I4GS5hDFm52Wzc+CMRWVlaAhdFtNvwEQEVVVtENB95tDmxQiFgW5oEme/hC6UMDPAiwel7qK2DC2a64Xt2cvKja0wsVlQaG8+NzmLBsSSL7z6BTTO7ROKZNHzRaL3J/y3HUPqpikqQ6uD56fOogqNSTOLqthZNCQAIb72bmxP7z+H4NdK64yzyC4QmcBZtKlUL34v+9t5oWx7ZxE2zhdYhrY9czmLuu/NWCmKjApKhJAbon4OqCWweH1DGdqAsygqQ8OoccA7i5R4Z1Em4FpVmeMMY3OQNBSAGuPzF39Mf8k8az4rPtYxQLFoRsYEkDbvoOD62E3+wg42NmcidhY5sWjHdl6/CrnzgOtkv5zkEXJ3qesav/Pd3y3a1p//7p3asOHbji+BScuVhrbt7tO3C7iugvKj/P71xkuHFUv616EoWya6lvRFD/9vaW5RztnR23fqzpF+cLLthlboLBp6c+28M4tSCl/64pcioSb3PrUiTfJvuI0OMouGPuhQLKo3ZBa1zqJg8KHbqK5rLKrF4GvyR087ofW2BfqZRioOHzdJt9X0/c4JkGPC2XXFIribiWGxyL7uOXJ3Dp25xCK/cFnmLOLnRsitQBpALQBUG8Qify3aVIa2uRuaiLTOIgXTC7iWUCyakFlkxR8FgSpzCTlnkYJggVOcyX00cvsXMW8KikUzUiIWaT3ehhlwK5hJ63rjc4SymUU7dhaZ2JK+iXYsha/Ld2ehu4iQu42RcUeIx99cnp7eK+qUs3+cRXokKwjoHBB28+3K0NJyrnT/Y67UVtwaEOJDccF2pfTlVP0bx3KxqJ8ZMxZw/eLlC/zwJz+KHispQ2sFnKHfb8gsAoAvf+lLUSey1DUblsVsLkMbzyxqTINKV6h0FblzUrGoqvqZRf7aaMRgtV51ZWcpkVPMROVt/U2tWyh8f5TW0Q297xSnXcma/50f/z/5/97uvV+DTiaHF8q2D7jOC6DdGOgs2pa5xKKVO3eMxQxMKUMTEXz+5PG1x0YIGaKxAo3SfbGorQwbcA5FZWib5z8N6u757b1jcB7wv9vKWWSvnS/Mk9Ht29wkAbSqYKQpet6xQLFobsbEokmZRX1hSGnVD8BUaobMokCYGu0E1D1ndL8mLVHInwwury7x2ee0BRJyq5HyFWJ/rrp3eorL1V1wFqEVX8Zt1eP5LWPPr6qqdZTk9x87KEQk7jgkaCdLvetG8piRroW7dci4XRjBYrGYVIZW6f64WvdNRuCqM8G2JQHXJplgTuXLX/oy3nrzF7oHErFH0JXFdGWB/TK0OI9pYKzOWdRmDLrPtecscr9DxnG0Xq1bd1IOZQfqjicbnUVw5eypsyi8WfcunTCzCLBCjzFWuBrq7DbsLPIuk7nK0FxgOcWiyXQdEHftLLLnjtSV1zu+SHFH3MurS7z3wU+vPTZCyADixaKco8f/neYzi1qxp6AbWi2rdn/KOWrje8zwWGXnh1B4XsgSV6uPYOrzkef4e2aBMg3eOnsf583DouMdAxSLZiRcuc0iLmS06MbKdSbR4aQ/3w1tsVjsvhuaK3krKRebVoYWTDC1Hgx0ffHiBR58xj9cQm4z2/ztn57ew9VdCLl2TowSn1BJfsvY8ze2CG8zi7rHVutV1Ho6zk3qi0V+K8A5UcIW8uiuMacnp607YHTcJlOGZuJxpDeEuS5I3l2zSVRIu6F9cv/TyAE15nRZLpb45q98o/3vVOwR05VeGREsqqrvLAreN2zI8/NiEYA25DoU7Ty6splFJhl7pStcXl3iZMhVhHi+0YomQ9tCuc88LYELnUUGWnel7/61G9N9XqGLsEQg9dtvXYaGsTK08hxIEnNdZ5GI4P0PP+g9vm6dRbsrQxMjW7vTyHEztABDEqQBoJ2jZ2JmUbu974Y2/H7XWKG9colxW4f788JTbhx5fAmaUgr3Vs/w1UffRn32v0fbNFLjSi66814Qsr1cP8Pr55/CXH1S7HY8dCgWzcjQhOadH7+D9XodrbiWlHaFdnSgK+FqVyPddsvFcueBsWHJ2zgTbxj15tVIwN7MDAlJQ/CiQMjNso1YtEg6RN1WfAkMSp1FbTe06Tdg9vkbSmq8s0jim/vwHGnfX/tzTyxqb7jdtibfsUxEcHJyMjGzqIren1BE0JlzfNM0PdGhcZk7m0SFNEPnwaMHePHyRfTYFNLMIYFEjSNygeO2VGtzu3j/GiKxyDQu3Dq+nua6ofnHL68usVyeDI8/KlE3UYldf1v3HoUB10nXPCNhB9bAWRSIe6YJnUhTAq63+3u3ziJ2Q5uD64pFTdPgk/uf9B5flzqLUC4WGZHR/RGS4yfv/QRPzp7uexi3HnHOIgWdcQYFpWEAxruhDf9dPzeft5ehzlk0UIY2sB+zPsPL9afB6Ozzq/oCX3nyu1AQNM3z9ve1rPFx/UP8bP1dfFh/z2Ya+ZBtSHscJQ2uEOcpHisUi2ZkaELz4uULrOt1JJSM4csOdDLBb7uhBfbz5XL3YpGIiUSdTfXnUyYdYTeYXIvndrtglbeUn37wU9a1E3KDtF20CibynQCui8sP9okdYmFHyLATV5HAnh7Ln+/zgokvCw7FCWNMdI7047VDUJG4YseWuFQTJ4ovCzlZlotFJptZZJIFgfj1NE0TCft+fJu7wXWBua2bBtIrlytb3PDbAmn5nBFfLmZQ6SoTcB2GdyMrIoauIiBwFoU5Uf53kVjUPa4rjcvLzc4iqNQ9tsFZpBSMMVFmkQ66qgL25l5nAq7DTnU9ZxH6gmNI0zRYLpbXKENzzqJeqUL3+9LSfhLTfXe2e373txLvYL1ej/4t++MXO4vE0FlEtsKWPTO4eJSwDG3IWeTL0Hp/251Y1EiNRvLzhyu5wAvzBKqzxLp/wnNBIBYN3R9+9j9BHv8v7dzCwDqUXr34FJVZo9YnaMxFu+9P6h9jjSuc4lWscIknzafdvEQQOJ0El+Zl5ojHB8WiGyC9AHpLtw/gLAl2bm3pwWTbT8J1cLMlECwXCzQ7LkMzweSzJLg7/HcTJTkHdrvpLqG6abBeryY9Z9fUTY3VnsdAyE3RitYFwm7oltznzd1P3nu3daRsxjuLkL1Rjbb0Fghs6SxCtxCQey9FbNluOIz+zVbo6Am6aNrZkBue/7xiZ1G4v9OTk+LMopyzIz7HdyVNvglDWtLkw6C11pFzJaV9X6Sb2JWKWjmGusaJWIeRzZCKP0fv7s09v90mIxbVvgwtWSxq8wcTZ1GlCpxFdrDZY+a27rmXUmeRc3d5N5gXypqoDC0QJxHvL/eNr5sGy+X2YpH/G1RKZZ3Gpv3+9Z959vwZr8Ub6P6Mtvts/N9Ger5a12ucnpwWd0MrnTfaY5ZdZx48ejC6HTkeplYpHCVRZlEacD3mLOrK0AwMZKB87EnzibuvdE4e+MWXcDEgPJY9zrPmM1yabs4mzQssVs9Qw7kYYSBKQZsVjFqgqV4FxBo0DBpcyTlOcA9KKZzIKzgzj6Da1yDt69MCnEvfhWYKy+EOCYpFMzK0qimCyGpetFLttg1t/H4VTWkV5Tf4MrRd3oD5LAD/usrEorL9tjc0WufvjOAAACAASURBVA1e/O37NW0SIyJ7L2959NkjfPjxR3sdAyE3xTZCsR648bspzi/O8ez5s9HtrP4Tl28Nb5uI4BPHZF0nTuTJvDcC6ZV0haHJ2TGY+PG0DC28XoWC0dQyNBtwHT+WCiqfPf4MP/3ZewCCHBsnDJmmC4MuyixCd73x2UqpEFJEmlkUvI9GBDrjjojymJD/Xnjxy2OdRfV4GVro+qkqXF5d4eRkpAzN/WyM2fj6W2dR+JlrHTmnbAdWn1PYBY6bxgRlaMMB17k3o2kanCyX23dDC7+7OWcRhsvQfv7Jz3H27Gyr4x4HgZi8zbO9czE5X63Xa5yenIzO36ZeO4CyRYmmafDu+wzDJhZ/PicdIg3Mi3eSvz3jBJpNZWgD3dACZ5GB6bYPuDQv8dw8xlJOowWf3jFCF5NY9/RD8wE+qt/BZ7W9t1LmCkuzQt34MnQDJYA2NYxeQHQFJQ0a1KixjruA+ngV8YJVV4ZWQeFcnkXnrpVc4n7zfu/1HDoUi2YmJ6zYLiud1Ty1v+fwZQd+Zdbv099stc4iYye1PsByV/hVxqHXlI4VKHtNuVXn7PFFRlemcvvft1hkzHhXH0IOhakrvp2zcn9/IyKCl+ebO2UA/nxWGHEdihUD5Uljx1JKWwE96yzqd0MLc+vabdzvIoeSF72CRQqTlKGFjQxOTk7Ly9BMvwwtWhBQCsYI6rpGvc47i4wx0JUVi5oN2TbGCTXh6/Xj9K7dKaSLNuF7I9J1pwuJyvc2ZBaFLp9FFHAdT8H8a+65flxm0WjAdbiQtCngWrmxh6VuKg4fF2O6DqhBGXhTEHA99BfSNDWWy5Pty9CAjW7sNmA99zmIKZ5DPPrsEZ49fz6+4QFx7TI0Lyb2nEU1TgqdReG/JduWfI/83y/nYQQAILLX+cat5PJDyOd/H1gFTYRKytAKMouMEuv0CRe2xOBB8x40KjcXCYUaf4REQHIOpCt5aecleAVPzH2szQWUG59ZP3SjcTmBZg2jlxBVQYtBgzUaWfWuDku5F4kh/rKo3Uut0ZUtruQCDY7PoUqxaGayYpFI5CxyatFG0s5nYdaPFVm6VVatFKpFtdNStHTCv4sytFDw8v8OTShkC2cRRFDvWSzynxUhx8A2zqJcO/WbRERwfjEuFkGCMrQSZ5H7WSHvLNpUctEtJOj8OdE7PZMJmH8u4C4puTI071pR4e4kcrl44cSXoa3Wq+LPNBSLeud491k3TdPm6rXCQxOXoVUjzqIuH6k7ditqWVVhEmkoc/sajL25WOiq9x7E5Xv57/1QZpExffdTpStXoh47kyutUdc1TjaUoQHdBNuYvmspeq3w19q0G1rsLNK664Dqv4dNE2QWJQHX7TE3OIuuVYYm4kooB8SiDc6iKXOIz58+xvMXxyoWbXcubsXqnrNohdOTk6LMotLjd2JRwbbt9/b4SkdIH8H23/FDRYy/bgYiiDQAhsQiz0BmUfvfGkYaKBHXoczy1NzHSi6xVKf+CdHzVBRy7YWnBSAG5+ZZ5wYC8HT9YbvfZvXI7c1dQ80aRlmxSEmDWtauVC3+/JVSUGFZu5+3iAEUYAKx6NK8QMMyNLJrciVmXkAQv8JbkNnRhlm3+QFd3oEt3/IXWisqLarFTkOuxSStlTeJRSi76Kern3aSN1CGtoV19FY4i4RdO8jx4P9EpwRch5lr+0BEcH7+suB85X1FBd3QENzsD9w4/3hDV5b2vRk4J9prR5zNYkx83u2VoQWOz56zKC1bcm5XEYOqsqt/m1w+4bh1IKqk7dm9i6zJZRY1gbNIa2jdd/JExzK25M1P/GzA9ap77aOjjUnFnjJnkbTOIvu96O+3aRo3TktVLZyzqJ8r1JahmX5bewBYjjiL/PFTp1juxUr2s4mdarYbmm67odn3oGkXYcKuZs9fPMe9e/fa9yLn7qldGdr2AdcjziIZFovCjm5j1Ot6645td5XuvHGd8PGMs2htnUWj3dAGnp/DtOetsnMSgKLzF4Br5Z6R2w/L0DJIHf8LANJABZlF0Tk1cvsAkjqL2tb11llkH7F/V7Ws8bj5FEvca7f2AdfdsppAILiSYBFPaQAGL+QxKrHXwSVO8bLp3FBqbRsaGTRQEGixziKjKmjToJYVVuYS+ZUkCf4NxCuRKKPoQo5rEcFDsWhuMiVmqbNoaGKVPseLRUZy5Vvdqo5SCovFop2M7wIjYWbR5m4jU5xFmyar0fGTttAlzC0WnT1/VvAaDS9M5GgoFYr9trch4NqLF1dXV2NbAkply4YvLi/w2ePPgn0mJTmZ11fX9eA52pcoaZXPcbMOivi6IWkZSOhuSkqUrENKRZ+XTsrQIF1jhWpEuAnHHTmLTOJYcteOJuhI0w+4Nqi0L0MbcxZV0etahTd6EzOL0syhUEhrM4uS8YQOnqEcHVtWl2YW9UvN/D6sMJeKRfb5m5xF4WdsTJcTld82aJrRHiN1FpnEWWSwXNi8oTTgWkTwyYNP8dVf/Ko7QF5Ptc6i65Sh+b/BLcSiCSXh63p9dN22dlaGFszTjDGomxonJ8vReVB4zigda2kZGlDuLHr7d7/NkrUDhwHXCa1YFPyN+DK0ViYI5hq+bKzNLMo5i6yrSJz4UruOaGfNQwhMcn1q7cHuvxXOzRke1B8EbqMKIgYruYR2jiatKijTuaH0+sztzTaQ0mYN0QvnLDJYyyXWuITOSB/Ku4mix3x3tcYNz+BSjrM7GsWimSkpQxuyr4f4bmRt2GQQjulzIIDuBmzhOq7silic2jzesCygdJ9AvxtLuu3Uci4BZm2R+c6P3xntriKGtfLkeJgyie9KrfYrFhkRvHLvHl5ebJ4EuAqYXhAyADx7/gyPPhsQi9SmMrTh851SLnR44KY4Fe1NsGCQjiEUAjpHK9qT9ZDLxJYWjYdNh2OokjK0MJfHL3bYMrROJDpZnrQlTaZpoHUFXY2Uoblso/BY67XteLJNZhGS72G439ZZlAZcD7i3euPMdEMLS9hCtNZomma6swihIGjaxZ3BbVNBKrn+irH7CEvfF4sFTGMzi/w4AeDx0ydYLpZ4/bXX2/3nVIemdRZtOTcZOWdsEoumOArq+pidRdudi03w3fPUdY3lYmm/W6POongcm7ftC1PD2zpnQ8F8uBOyj+uzPyY2XXePFicWSegsQtgNDbGQNJJZJNIASqNB7a7E4vKC1nhiYldRuD8V7OfMPMQKF8mx7BjC69apsWNYV69iWb+wi3/SAOIDrpcQXUHDYCUXkdgU03VDU8F4BJ1YtMJVVE53TFAsmpnQGg6EN1POHeR6GI9dH7uSjW4S35aFBaUKfruqWqDZqbMozUi6vrMo7QZju7rdHWeRLwfcBMvQyFHRlhKUTeK9AL5PQVVE8IUvvIbzkZDr1tWQie9tmia+0U5dI0M3rwOvOyrRyzmLvNMzKkMbzizyIk33exU5aVInSphZZMvhyj6jNGC4vyDQZRZ5p0fTNDg5WUZularSLrNo+PwtIqh01b21Epzz7UucROoM6t4b40reqt75Pmz84MeU4p1Snko7Z5HJl4pVLuQ6zSxaLpc9J1L8AroV3zFnEdz3IVpFTa6/8QJV31m0DESf+w8+xS//0lfD3Q8EXNvnNcaMzg9ydN/c2Cn34uWL9mc9MD/x5X0l1PX66BZ5prhCs89vnUXd+7au11gul4MCXu74JYuC3Tx6Shla+X5LS9bI3WSfi1O3Ei8SmbgMzYpF/jqSEYvazKL4/bwyzyFKoZE13IUJa1nhQl64XN342uRdPe1+FHAlF1Z0asOyq76DCUDlhZzTL6Mya9TNMxipocTY5CMXcA0AtXmJNa76zqLwWijSjsM6iwSNe39WctE7/rFAsWhmcplFgMtBCMowxtQif3OQzSxScTc0pTQWi2rHmUXd8Uq7oZW8pnDVOe3GEm9rpjuLZN6A6xK3E+ujyTHRlRKUZxaNic9zIyJ47dUvjHZE65xQ/cmmLyuKtx13Fg2f7zZ3Q4O/KQ727FfZozK0wFnUfSb99uM24yZxFiEUi7YsQ0vEIn/t8DdjdVMHpUldDo7W426mzrHTHWu5WFp30RbOotBpZffny/qcq2bIWRRcF/PjbNoyMiDthpZzFlVZZ9FYuPWUzCL/HS5xFmnnZhZjnUWNaXpusPOLC7zx2hvhEQacRTUWi8XWbkIRJ9gGofgvXr7Aj979Ufv7YWdR2RzCGOMEsSMTi67tLIrFasDm/ywXiyJn4pTjt2JRwbZmQsC1H+OxffbHBOfkGbxrKMksagOugVioaUWdvLOolksYwIVJ2yyitVzi3JwNXJel3c7u3n8+QdC1qoDMdV27cO7VyZcAAM3qIRo0WPj5hLKZRQDQyAWsizq9NqZ/7/4e1kBBtyV0l+bFdMfygUCxaGb6q5VdmUZ7szQps0i3bWx16Cwy3cRWqS4XYVeEZQqlYlHpa/KE2Usp3ok1ZSJzE86i8QlQeU4CIXedKZN4L77oW9AN7QuvfgHnl+Md0exEoe8E9U6RcJ/dpGK4ZGZIVAvL0HKlFn6hIVuGFgo17nehEBCdd4PSj2i1z4kJnVhUXoamdRXttydCSZd5U9e1K006SQKuq1agOnt2hh+9++PssaKSNwhOTk6wqtfbOYuSz6l1WphNAdfjjR8Gu6FJvmOZFzvSzKJNJWjp+H3b+03bukF3j6nEWeRcU16YMSJYLhcwjWk/MxOIfovFIthX/vpfNw0W1aKoLCmL+06Hr3W1WrU395vEImMk+7eUsq7XbvvjcpdI8De7Da1YHXyudR2Kg3N0QysRsMszi6Y4lsjdhGVoGQYCrq2raFMZWj+zyIryawiAWlYQd41ZyxXO5QwV+tcx1U0YAAAaGkucwhaCueM6Z5FKSsiUc0OtF68BAIx5DoMGlRtv6CyCqbNijwrOOSopQ1PQbTj3lbyExqL3/GOAYtHMpBPI6CLXCkDjF0gv1qQrvkDiLIK3jncdhj5//Dne//D93j6NMfjJe+8WvQ4T3EwUi0VjrylpHayCrm79408/ud9IGdrIazS8MJEjYrqzSI+eT+ZGjLgsloKbGe8EzZShpUJDmPE2tL/NziLlSmry3dDSTlr+PZfoWhB2zIzFoshZZDLOolAsKiwVtKVh3c16vxuaXezwZVZ17VwqJydtmUgacH1xeZnNhhMXHO3fQRHByfIE6/VqS2dR7ADzH03YDS39noa5Q0Pf414ZWlWhaerWBZziP9dw/IvFAvdOT3vb9sffibWbnUV9N1QqshgnvPgSRmMMFouldRa57KGmMe11tgpCvHOl9eF2Y3lUQwjQ++6u1qvWqdaKRbmg8cKFm7ZL37Et8lzTWRQ68Tx106CqvLNofPGw9PidMDWhDG2Ss4hi0SFz6AHX0lxCprR3T5xF9m/GJJlF1pn5af3uRmfRCpcADEQpvJSn8C7TK5xjLat+XlAk1Nj9LNU9aFXZBZ92/mNdxGkJmTZrCDSayl4fr+rHMKhRORHJuIBrAKjEZC0MYVYSJC5DU1CoYecf2RK2I+E4X/VNMtSONwq4Ls8s6vIDNndDCyeuq/Uaq1V/st00DR48elC2khMdb+zmTqKMjCFMsurs7e5DxwfKVpLa54i9KZnjRrR0ZUsKVzMJOQSmO4v8uWq/mUWV7gsBmQ3hmoj1zte1aaLXHDtDtnUW6cGsIL//6OY+yQwRQZBZ1N2stY6j4NqUOotC50ZpGZoXl9IytGi/qgu4Pj05xdqJQMvFonMWufDkyrmZfGh1inHCVHiTe3Jy4rbHZGcRegs73TU1fF3RNgXl2d4p5akqW8oVdhgNacWiQMj5hTffwjd/5Zsj44+vSxszi9qnxAJhuChjjEnmHAbLxaLNmVqenKAxjXWPVItYFMyUoXmH1RSnWo9WsO1e62q1ioTQwTI0U7Zws3ZiUak4+uP3foJPH3w65VXcSnLnlCm0n0Hwvtmyw8otXpY5i0qvHfaYBcKSF4sKhCU/RrrBD5djKEMzn/4NyNnb5U/odUML3DxBZlGNFS7lRVAatoifD5vro0Qg0PZnaCigbT/fL70OPoveCgOc6KUApa3rR5IyNFnD6AWMto6lunmOlVxBt2LREuLG6TOI+q8//31QrgytkRoitqObOlLZ5Dhf9Q2ikA+49tZ2v1X2CxwQhk0aN+nxk0odOHLCleBupdlkL6pTLowmOF6Js0gHk/jh7ZKA68ANNTTWqWVowDxhhcVi0RZZS4TcVbqQ1PJuaHrD3/1NYMR31Rr5W4af6PTLhlNnkb+pBfw/ebFos7No+JzoxST/s30dycq8dO4anTRBgCt/9qHQadmTDx33gkNp5kjq+uiXUznhoTE4PTnB1WplnSa6K5tunGNIu4Drdb3KHtuLMKGAc3KyxGq9BrZ0FoXXrNAd5Z292fbyYcB1ztFiGuiq3w0tn52A1oWUfh6Rcyc3/mCuMdoNLeN6849FQp/W8JlixmcWNT6zaNm2Rg9L0Px+w3fihz/5ES4uL9vXoJXeyrnjNcB4MWzVjs/vO50n2L+1UmfRGqcnp0XukgePHuDho4e4vLqa/FpuG1bYvYZYFPy9eDpn0XDzkvD4AApdqeVz1zaiYUIZGgOuD5t9OplvhOYFZPWwfPu0DE06sUgF3dAaWaOWNQzcdmoJoAJMd/67MM9tGZdSWMsK/v7WwGzMKwKCcrTgd1aYssVhdps0s8h2PIPSMKpCZWrUcgWdKUPT0mSdQSoZQ1cWZ8fcYN2Woh0rFItmppdZ5H5unB0udQENkTqLwkl4uDLvL/jhPv1EqbdPd/EeC8LOH29cLCp7TUHAtVbDK+1tJtMEZ5F/r2ewFJeugtluaAd+YSLEUSqi+m33XYbmj1vpavRvuXPaoCeE++5e4bb+RnzIORre4PZ+58SOoXOiLTGLH+t3Q+u2SR1KoajjS8VyYlEYkD1JLAquPdmA66bByckprlZXqHRlQ59Nl1nky9A2OYu6kqPuNS8X1lm0XWZRfBPhfzRG2jLs1H2TXhdzaz5NE5ehLRYV6rpGXdeZVVa0LqShwOzB8UdlhfkSt3Db3DHCbCsvFnoBwXdDM20Zms2Zsrk0qZAV/00/OXuC+w8/bcWiqtrc6W6InBt7tbKTeB8KnjufTHGt1HWN09PT0e97Xdd4/8MP8Mu/9FU0O2wmsi8EYsXXkYXLwee3zsbu+U1TY1FVvfD07PNTsbtg2yllaCXNThhwffjY+5nD/XzFu2fqpxOeMyAWoUKYWVRjhQZrmNZJpIDqNBaL5DmU2OfWuHLXIVs+tkC/SUOYF5TrdiZoAOWb2PfL+pWpYZxzyOglFtJghcu2DE3UEuKuqUupsFT3Mm9AeFxpL/5WONJoUKPGevI1+ZCgWDQzQ5lF3lk0RSzSqutMYoJJargy3+5T62ClJ1/u4C/epWLKJLGooMNR/0Zi+Dlht7eUJ2f5k6K/mZhTLBpbBRsS6gg5RDpTS9mEvz3/7UlQnXIOBpzIkikr63dDC2/E887RtKQp+p272R90XUl/oaG9yU8cRHbcmWuEX3hw7e5Twhyjwa5syevpjynvWDJicHJyYsWiqoKuqnbl33cP07pCYwxW63Vvcp8reVNK4WR5nW5oaWZR55LzZdi2q1z3PpYsoqQB14tqga986cv49MH94jK0shcQu6Fyn2m0cfSv+6/AAeI7qrVlaOKdRa4MbbmMytCi/SRuOjGCh589wsI7iwq766WEn7X/Tvg8q7qpB/+Wp7io1+sap67EbuN29RrLxRKvfeH1g8i4EZGoy9xUuvNO31mkBspp0+Pb/Ywf32yz7QRhiQHXh4tdIDngBVwv5NRn5X/LaTe0sF19EGK9lis0Uneh01CAOoU4schIg5VcWmFBabyCNwBXhnaKV2wOUf/g7U+5vrH2fNLl0KnkNWlZQ1wJmtFLVKbGK3gdlakh0BDnOLLPzf9dx4KVtGNSbiHNlqBdZReDjgWKRTMT1tYD8cp7O7lGb6G6R3+C35VwqWD1OSpDCwSN3MmxtKVoOtnN3SylYx1zFn3n+9/BOllZDYO6c2MA+s4iEcH3f/j97MRORFrb/K5Jb8yGsJlFFIvIcTDdWWTPX/sSVKcIVq0woPpTmmzAtbdNZzKO/P6GXrd3BYWdLrPjTjpg2X+9mNEJDjpzjfCkIdR2zKmzqCyzSCdOMTH9gOu6XqOqKiyqBVZXViyqdFeW5J04ldYwjXUWpWXUbacu90L9a1oulzbgOnB2FdNb2DHoyr67wPFcUDgwfF304lfIr3ztV3B5dZl1/7TX2slaUVCGZsbK0Py//c+9++wCl7IxUcC1MQbL5RKmGSpD65w//nu+XC5ROVFp625o6Iukq9UKWuvOqZWZULV/EyVikStDGxtf09h50cKVFd51Shf5hmhDp4PnN3XTOos2ieNA5wQvXWgozb3yf6eTAq45ZztcJL/ofDCEwk/zsvA5w2VoXYi1FYLswpMvQwNQ3QPMJQDgSs7hVi0gSqFSi9HrWF+oiX7rso4UjPK/i/82tVm3eUVGL6HNGpVaQEsNoxf2uj4iFqX7bJdS3PxMQWEll1u7Lg8BikUzo5I2yzmxCEmpWo7OMRSWobk8icFV425Sm7/hKHMWDZUSbNreikXDv3/24jnOnj3tZRZtCnwF+if5ocf97+YSi7rPcfPntk3WEiF3lSmrw/4cdp0blOvSigB6vEyisyajN6nxrdDT/cI9I19GZYLSjThPJRT9syXE4sQo1d1khbl1bqsusygVOdAJBcbEIdTAdmVooegUlpSE53itlHUb6AqLRdVmFvl28v690NXmMjTvgkjLsquqCm70JjqLkIpFvjzRtMcLHVYmydwLP4tP7n/S7ivthgYAr776Kt76PW/2Hge2dxalZWibAq5zmUUAou+bdycp1XVD80HkViRZdM6iRdpOuHPT+c/mF9/6xS6zaNtuaNH8Bm1m0r3Te0kZWvy87jWNn2d8Gdr4IlrT++7eZUT6HfGmPd+0wqKnbmpUVVXk3gydfOPHst0Jy8Qi/70t2y9Qlm9E7ia2m/QBi4FB2HRxKVrbBW1DwLU0WMslKizQiM/vUYDuytAu5AXsvMPmDMH9l9vB0MHbn1RPtFH9MrRkPzazyJehnUCbtXu8E5HCzKIcoWBl99+uurQjvJLzyW7lQ4Ji0dykQpD7Me2GNmYt8iu0bdikdJ1Uwom8v2CHZQdG8rZL/5yxVbE0xLOsDG14G3/cx0+fRCur1mEw8BwxdnKQnOTTDkDpOBbVYpZVv1IHxRSnBSF3nakT/vDiuw/BKBXCN698h1k/MU1T9xyk8Q15TizqBJ6PP/053v/w/eT52pYT54RwhNcO+1h6jgzdNWFZsn8dHut8yYhFEopFBWUkphNw/PHDRQ2/39ZZtFi0mUXhDXfTlqFpNKbBul5nz/utiwnd++2vhdZVtXG4PXqlUyI2+NyVzen28+gcXGF7ev9ZiAje+9n7sfiVEYX+wDf/AL721a/1Hm8Drrcpo2uv+SbqNJrZuhtztI+4k53/jrXh0W5slQsgbzOLMmVoEnwvlVL42i/9Mr75K99o97Ode0Oi17pe21IwHxreuu2Sv7cp3VTX9Rony5NRJ0zjRM+5xaJP7n+S7Wa7a0oc4Zswxgk4obOoaVohMc37ygzA/lPg+hAxVsgtac5ipHXEjW7rF1A5XztcpEw0vrMEgojUZ4XPyTuLbLi1zywyWOMSFZZB2LOCUp1YdG6eosLCdkNrr/vlYlF6H9yKRVBo/LkjcSIpqWFU7CwC8mJRmbNIgoVB7yzyYtHxSibH+8pviFQIClfe09KyTZhw4iaCsJNK6MjJlqFJvhSqXfkccxaZic4i2En0kFvKj+Xq6qpXhja0XzEm2956YxaBiFtR2n34ZOlNcTh5J+TQSV0uG7cV3/GrPDNo14ThziUieOsETc7pjTHRinokFqHvdPDH9uePuq7x8LNH7bnYvzda5UUaEbFxAYEbxiTnSLtJ5ywKrxFeSUkdRB4FL8j45/dvzLJun6Asy75GiUQLKxbVbRkaAFeGlg+49teI3Hlf6+6zaAPB2yBdwWRnUaYMzQefh2VoqZjSvWedy8m/DvtvX4zzr7vvyLlGZlE7bpdDtdFZ1I05elzH3yffDa1xr8G7t7xYpJTCar3OOovasiKXiVVVFV6590r7GrdzFiEShFbrFU5OTqIytNBt5snl6QxR1zUWy2UrVg7ROAecXZCaL+D6/qMHOL84n23/HhtwfQ2xyInVOWcRgCjvK3t8J1aVulLLnUXlDvNOVKSz6FAZE4HvPKGzaF3qLEozi+x/n5nPcS723GNkjUYaVFjAhM4iV4ZmxOBSXqLCEoAJHEVurjHwlvddPcHv4Lu4KjTKv65ge6ntXMU7i9QSWmpADB49b/Dn//sv4/PntTNtaKiBv+u4FK47hgquF43U2U5qx8LxvvIbojcBRTcRayfXGF9Vb1eaE9s94MNHOxEqzeAQZ6NP6To/FJShJRP+TRf0MTuzb7tbVVWy3+EJpJH+qlX4GvI3VNhpGVpjGvzo3R+7fZfdFLeT1EOukSbE0a1OF0zi0blORledZyIskxoSZlLSMrTGNL1zYiQkqOGA6y581YYGf/b48+j5g++lu2kOS5/EuJu1QMxAdI3oVuY615PKO19aEcmVOidOkIuLC3z3ne9FTwkdqLnrlH/cl2VVgVikK50EXGtUurJiwPKkV57sXT3e6N4Kj84BlR63hLR8ScR27QqbUYQiR9Zxi25hxgsNTWNG296H6Gr7bmgeH049um1yDFuuGN9MaaXa0jMALk+qEwBWq1Umswjt34h3gYVUW2YWeTei/36tVvb7UekKTRBwneK/4yUidl2vsVwsRp0rN+Usaupmq/dqKmOO8NHnm777u2maVhQeKqn1GBEndu++DK10Htg1feHi3qEiOHSxKPieuzI0MVcwj34LMpRhfDfbYgAAIABJREFUZPLOonO8xCPzkd1EVnZBBhoGPrPIl6GtsDIvO/e1SFe+1p6OS5xFw2VotXf5hNcm5yIKA64B/P/svWuwJMl5HXYyq6q7750775mdfWAXu8SaEGgDpEiQijAVciisEEUpGLR/2BYoSrZFShQJw5Il0ZTDQYdDoCMclhQWSYmgIAABkFbAMggSggGSBklhCYIECSwW2F1g8dhd7M7u7DzvzNyZvo/urqpM/8j8Mr/Myuquvrfv7J07/SEWM9Ndj6zqqnyc75zz4eVLO/gbHz2Fp17L8KEnNux32RRmkQ7+LhpgkYaGgkD3cfywxRIs2udo+iBoN0GnbChR6a9eu4rnv/U8RuNx4zg0kPsytmyRI9Omm9yzKDWo0kJlFvMmNSluf/Fn05mVnVScOHY89LOYUomD9okXDW3G14B5vRcKFtU1bmzcMMfuyBjilWWWsYxDH3bC351Z5EGL10+GxhiaHZhFsQyNpBYEjsTHaCtgwPtlpRVOnTiJK1cvB+2ixXuyLYhlaLSAIrlZVDGTeRo5820YhkRTjhR7FolgEVdWJcbROJX6PXXk60P32rBqMvf3zFY+I5ZWJg2ABAD9Xq+ZJNBMhqY5o3Y6e2F6hPIlM44xzyI7/gZjbZREMe33IBHgZXVdg65rV1fg5geRn1K8XasMjaqthow7DhZJyywCjKfTeDJuytBYjjgliTOeRfOPyxqWUUdgkWUWZZl0MjR+H9x+WiPvCC6U1oPJAJh++/MXXkFZlu7fsWfRfvVfVV11klDtNczzvDcZWp7lQX9VV7V7VkRHZlGX86s5fk+ttfPa6nINsxhly7jLQx9yWwhW9t7J0EYXoLe/CYwvt+yUBotqKEhb7r7SI7st71stWASNkboJvy7Ujlk0j2fR+qbGu953ybCBYJlF1v+oRpNZJC3IpQR5Fhmw6B//+g2cv1VAQ+A3n9rE9WEFLbIpnkX+eRDQ7BTes2g3FVYPUyzBon0OwTK/QJgR4bIGaI3h1ia2trfxpWe/lKT8h4aerKyx8OasjoHE6LxKpavuEPCSGkTXb6w7nXwqOzxtMWiArelgkZQZTp08jV7RC47bllVy960js4gWbdM8i+g36BpE76e/A2iAV6l9Uu1bxjIOY8zFLNLeU2dvi/zdRwBwzCgbbb4T5j/OLGLZc79dyN5ISXJjydLpU2ewtb2NsioZUyZtvO08i2IZWsYy8+z+8uNwEAlCQNUtnkVRNTTOLFJaN6Q3abAoHDvIZy+WoXHWjqq9wTUA9Pr9BginXLUve/0mpemMyvmz1TVSLGDDWGHASTCuRowZEQGAJKurFbKs+1Qry/YAFjEpXEr6xtsKtIFF2knH+DZ0rcSmobZOJuOmDE34dyRltr1bGRox6kJmkZWM1VUAgsXPS5bls5M7WqOqKuODxKSRAHDl6hXcvHXT/dswi/xzuh9gkdbamOffifmD1sgWIUNj1gAkbQPCeWrb+TvL0JTu9HuadtmkYQcASGtlAK8ls+jQxuFnFtlxuTgJlBumPy9v2O/smk9XGKlNv0/MLIIHnKQFYLbrm2zeQSEAOQAADKtLVoJmwZfIs6jp9Gi/tb/FcCzxjz5R4JnzY8cGMhU+CSxSjeNIK4dTEbPohSv+Xa9q4ENPbECLdmZRs20xs0iE86Z7MJZg0X5Hg9quHVXXy9B8NvDc2XMuk8cjZgzVFnAB7CJnhmdRaiHmKbfNF+ji5UvY3DKdiZ+Y0yVNr97WhVkkpcS5s/fh0UcedZ9Py6Jrmsg0mEXTwZhpzKKvPf91DDeHrdeRakdc3Wz25DOUhixjGYc56N3vziwKZUt3OgI57wx5LWDWwHECoK5N9pxXHAu9bNCgFsUgMgE9WW7AiaAfb2MWCRG0RelYhsY8ixpjBLVNNKt62TaHBtfh4l5b2VwTwPHmzG0yNCD06yFJEzE0yB/HgUVF0Vz8U1LEmlITWyps57wyLgS/k1bG4JpkhkDT+yn2LOJZay5Hy+ZhFsm9MIvgpHBCzJahxWehxXoMotJ3gJGh5c6HJkt6FvFbqXVT5pjywOoS2npR0fMwdp5FGaqqdm1NPS8pZnIc5KcVSw4Bw/DZuO0NY41nkbkP++Vb5Ezfp4AXX/n6VzEp926AvVdmkZOhKWKs1+5eAl4iOu38XZlFc8nQCCjskBw0ZtjdgKVl3KWh9wfYPTBB5tTFaUBPALUDWLBIWxBopLewri409omZRVoIEExQ6Z3EyQSE7AMAlNpGbo2mObPITTZm3PL/+TNn8eSFDBrAbz61hevDyqlYzK5Ulc0fSBCzSHpm0dWtcKxVGvitp7Zwdbtol6HxdZxuytAkhGU43bsxEywSQnxACHFVCPGVlu//mhDiGfvfHwkhvpN997IQ4lkhxJeFEE8usuF3S6To0KSFD2UN2k22ZULP76ucsSoghXkxJat8RnI1fl6ilcdBmdEU86Ysy+CYcUUbyupduPRaY18z6E+XlKWyniKSOrjt7bWnJhJtBtd0b6f5CYzHY5RVmfwuFQH4xrKm00Kx33sZyzjsoeHB8JnbzsHqWVRsbW9ja9vr9kM2zHRGlJNvRQkAtyiS7QBJI2/F+hLA94mZNPIc6nOJKZNsi0euzGdKGWkGHdvQMAAkZGgeLTLMmaRnEffFC8ekVKKhwSyCtseIJcxw1c6ojwbgmBxk1E0AS5H3muOoM18O7zkdP2XaPStiI3JiFikmb+K/B5eCh9fs781u/JP2AhbR8+AMwNs2myZDUypgTfFrB4wMTTKAD0CSWcT9GWMw0oBwu2EWeVN8zyzq2XG+nVkUvxttQawiwIBivKKdUgq3bt3y72xdM4bVdN8irTWeeuZLc/dxBEC1Sfa01rg9vL2QammOET5rVdcSJA1zpv3M3BrAVLY5nT+VEGzddg4ZGvWts/05jb/Rcr52eEMjrbQ4NEGAT/9+8+fkCnR53X5n+zNU2FFD1JqquNr3woIv2m0nXFUzqQUK9Okk5g8BlLZv7ys2zmvl5h6cq5sKmh198oVj7rNaac8u0sYuWye8j8izyDOLevjFJ081zqG0xi99Ya0Ts8jI0HTw9xw99LCS3PdeiS7Mog8C+EtTvn8JwH+itX4bgHcDeG/0/Z/XWn+X1vrtu2vi3R0ikizQgBiCRWYTXgWmUSo4YBYZsKhnJzWtnkXODyPtpaG0RlGkmTdV5UtBxxNvYi1tj3Zw9dqVxr6zMkR1C1jEQa/geJbGLhI0Zn+NLWCRNb5MRVWV800KXKaUGdN2oLV3ndQsYxl3e2g9u+qN35bL0O6MwfX69Wu4tn7N/ZsDIqKFxUPh/FIiHzqeQU+BRSnTohSzyLBpeCIBQT8e72sOzRflIXsiBOO4VDkEC1KLefN5nfTFA+DuE2dThGARkveCM4sAAzLwBfd4PHZgCf1XWGYRfz68j571LEI7sNU1komdzCww/bG5Z1EIstH+nlGkHGNsPrAo27U3QiAjm8Is8oVqWmRoWgcsHdMuZnDtAD7zWcOziD3zyjJWeGS7/I3cs0tzkO1trK6sIpORZ1HkP8VZd415kFIuaVTVlQO+JBu3CUTSWjmvLsMY8x5c04AIpRS2d7bnvmbHLGrZjwDJRfgyumpou5QD07POmUX8uZj1XmqYZ78bs0h1nlfR3DnLspmMISdZ20fD8mW8vpHqAw5TENAjBg8BkNCj1xyziBg0anIDldrBWG8jMMR2DCP7p5CWXQRkkJC2BL2fzwiUNIcLgBgNjVCG1kot0hqXhiEbqFaGDWS8i6jaqVXSsN9OKgOScxnaFy83QZ2yBr58aRqzKC1Do78LIZGJZuXSeylmgkVa688AuDHl+z/SWpOQ+48BvGFBbTsUEUsWNMwkxHVYAm7iozQtGFLMIg6YaJQVYxYlwCKu/Y6z2O6YSiHPiwaYorXxo+AG2bJlUlxWTSBGY3qGqpVZ1CJFIYNMQ2NuTvT4n/waaIKQYk5prVFW1VxVL7j0zN3TWZ5FailDW8a9E4452ZlZ1M1celERL6y4AbOQM2RodqEar/srWxWJPDlS8qT4sJz1Se3KWN+vNRr9eBw+0cBkaJKxJ7S3lpQMdOKMIwEDCsWLefO5/33amEVVVbPPPNNGCDKebje4BgzIkDPg4fK1Kzh54qTbXkppPGkiTyulYg+/ECxKmXbPDBECDGbcM15NvmJeC0OL7cM9i+aVoAHmPuzJswh+LtG6nQiBIAoCbXlRC/+nZ4X5cughwyhshwkdezuB7uPuZGgEIk4mYyit0O/3rQytip6/+HmRDdARAG7cvIEXX/oWAAMKOS8tVgHQgEgZjh87gY3bJuNd1yqQUPJ5xsatjQbrzuwzHwhR2fmVamNHW0bRQsAiSvJF78CNm63T/8b+3EeIJH0U5t5PZxbNI0PrbnBt3l/ZoWqdVgpFnu/KfH0Zd08c6urExCySK0DvLPTWN8DlZVpXOHLlt3B85xpGepNt3wdgpeUOLCpAMIFgMiyfzBCoaFxQfi3ImUUEFonW91rjn37+TONTpT27SEFDwvTL/fF1HL39IgAgU6Uxt7YglhYZfvkHLwXHedsb+/jMux/FR350G7LlvRZQuLqV4R0fewjrWzpI1bRXULu3YtGeRT8G4LfYvzWATwkhviiE+NsLPtddEQ0AhMAcO1kizyJoJkNrAYvaZGg04Yvp+B7QSLNgDLOoaGRbyIvCL0ISsgqtoVQdMJCCts6qhpaUoaUpyJQlNYym+Bqmg0VtWaLaSj3mmRT4EtVzytCWzKJl3COhtfF56SolEC2Lu/0KpVSwqAtAhkT/wsODLE1mUU4yNNUmQ2tjFnH2pnRAh9Yq4cHTbDMYEKUiYFojZIUEIBJjAKVKmxPjyDGBYrDIsQc4s4j55Fi6bHwvpDuemdwdP3YMg74xyJRZhvXr63jgvvv99lKiKArD6OGsH0XV0MyVhiy13VXaEvbe+OvRTrriQM1AhpaqEupZILXyZt3zxJ49i7SGngGW+Wp4MbNI2nExfDcBOEAxyxizKJPI87x5LqJLo+l5CFA1tN0ZXFO7h5tDrB1Zs0khKzFq6U+0Bb9SzJmqriNmkQfC6DkiEOn4sePOt6hWNfMsChnML73yMm4Nvb8RtWVeXyPavo1ZNJl4ltNew7BCw/s2Go/wwksvdto/rlibYhZNGxdo7OhicK0ImJpjnDEs8w7MoizfnURyGXdFUGL+8AYBPZlhF9XD8DtVQUChUApbasOBRcr6DWlVAs5MOrNJFBGAPRwsGguzP5lNAwYY0nwuMCUENL58edD4vKyBr7wyNmkHAQgLCK1tvYqjmy8BWkOqiWMV0bk2yn5wnKu3rLROthtcQ2v8/BdO4QuXVvCv/igHZxYJrbG2eR6yHqX3vUdiYWCREOLPw4BFP8M+/n6t9XcD+EEA7xRC/Lkp+/9tIcSTQognr1271rbZ3ReiaXAthPAUbzJrRDewiCRgZVk6bT0AlpFugkVOfhBNkkwWpWgwbyibxbPf8aSYMqg8k8oaa7KarWBRs/oO0G4wS1nSFPvAZ3GjazPdW+sEwWXs5pgUcIaWYwTM8DhxssMls2gZ90B4ZlG3CT/NIww4cQfAIq2ChdVc7CZN0jCATyZq5WVojlkUy4hSgDpjORCAHnoWpfsvfnyzSPcyY16NyDBXOSOmaXANCCsLjkGD0OBaREwQzdgD7jOlg3EtljP59sJVB3v8sccxGJiJYiYzDPoDHD923G1/5uRprAxWEPtJkSdPwCxyZt4yALq6hkiM1cRGCABFex9u3rqJI0eONK7NV0HbLbNoPtkaj6LoOb/Bbsyi6HMHePpnIpahPXDuQZw9dca1NZagAVZ5af+ekqFJuTtAjzOLxpMJjh5Zc8er6iaz6IWXXjT3wz7jKUaTUso9x4YNw5hFNfPfyXOsrqxgNDKLBlVzGVqYlCrLEuOx9xHaLbOorsgzKb0fGVsvjFkU9YF1XXdeWCsd+kJVdY0s555F06XG8zKLunrjEUPSyNBmFyShBOOSDX5441D/tsQUEhlE/8Hou9qxhnItMNJbUFbKNbFd9JXqeQsYAYIAJCHATaC9illggtokphQHwr3BdairSbVX4+9+3/Xgo5/8gZP4zLsfxQfe+ZBJOkF4OZwyAJJUE8h6glr2gn03JkXw72u3a9RKT62Gdmmjwr/92nFoCPza0xl+9N8UuLZtEyL1Do7f/iZWd5qWK/dSLAQsEkK8DcD7APyw1tr96lrri/bPqwB+A8D3tR1Da/1erfXbtdZvP3v27CKadSAi5YNAGWP6nrKB3uDagyYvv/IyRuNxAAKZ7HjlmEUAB4u8Efasyl1Kq6RnkTdV9EyaeMLPQaKqasrYppkZTpOhpY24SVrXBJMcWNTmWdRCPS5L0xnOk0HiTCsCgbowKKScXYVlGcs4DOHeiy4LDAbUzGL1LCqaMrTQm2WqTAIM3I8WVFQNTWvdKLFqkgHRsSyoxvvmwLPI7pfqvzjYE8uweCU6M9bY7SQfDxCATcnKWfQ5lbqPfPRc38/axhmoYbua7JtYtgQARVHggXMPBPfuTY+9yTFXGjI0IZ3EL2RRiV0xA2IGmGMWqabBdVmWuLa+jgfPPdA4BjdFrhmg0DUGgwHe8u1vmbv9ANDv9TEajRqMrkaw54cHzT1SvxsljI6srqLfN9lbyarahcdnyaoWGdpufiMDgPp2r1mwiEBVDoJprXFj4wZG45F7XpJ+kJYhDZjn2XsWeUCrqoyXUZEXbtvaMmmA0LNIa2MTQKwf127sQoZm53ltcvnJfsjQNH/PVGfJjq+GRsyiKgASxYwqmfOMHfPJ0EzBlVm+UoA1rWf+c8s4fMFVE4cynIQsBwgskqv2OwViHlGlr+v1K+YrW1FsW93AjrLOMm7skg0ZmoaZt5RiDCVyZzYNbauJxTK0VuN8jYvDEODZGrFzkfomSsBlaoJMTaCy6WBRrYDrw9qDRYnf/ud+Gw7cUhB49pJ0Rtnki3Svy9H2DBYJIR4B8OsA/rrW+pvs8yNCiKP0dwB/EUCyotphjtgMlU/qAQKLzISXGDc863Zj4yZuD28H25Zl2TDN9F4DBCr5QT+Wo1EopVHkRWMAJSDFs2cSVV+0dpO92LeIBue2/tiARc3FQuxL4Y/HmEWNrKCfkMZtEEIEEz4es7wAUsGZVpR1nra49AvAO2Peu4xlvN7hpASdDa73LkO7dv0abrGS1tMiBos4wMFZI23tNfOJlmpoEXAT7dw4VsakOJxVWtfKyYiMF0pT6sspITzREN7H0MeHexa59jkZWsQsQmh83TC4duyBUIYWMDugmxJmBz41+/83PfptePD+Bxqfu/Nrfn6bcLDn4SwqISRUreY3iU4kdhwIYdvd6/Wwfn0dL57/Fs6cPo1eL5yoCniwiCq7yQQwNr0ZAkdWV+dru41+v4+d0cjNFVrP4dGi6NxmsR4/E3zOwiOTspVZBDZeNmRou60Qqj1gCwBra5ZZZOWXcX9SV7VliVgmWqJ8OyXfAKBmnkXkVwUYb648y5HnuZOs1XXt5jE58ywiVso4ARbNL0Or0St67cyiyaQTCNIlnMH1rplFRhrmr7V2fmRAB5mvBau6sFK5wfWscYMSqFmWzZzvOX8jCxIv43BFqA44pICRAzUkRLYKFKeA3hkAMmAWSa3QwwCj2gBDWpgEQF8XGKnb7hjmu1ApQvBPiREqXULLApIYTWTXgUiG1nK/BTQuboZjyNbY9xNSC0DIxlgl65GVoYVj8K0ILAKAK7cqKJFbwCpsx/qwwudfjtsm8JGvHcO17QyZA4vu7TXcTLBICPFhAJ8D8GYhxAUhxI8JIf6OEOLv2E3+FwCnAfySEOLLQogn7efnAHxWCPE0gM8D+KTW+rf34RoOdMQacDNRh/Vb4Mir8QnwYJEHQbZ3toNJ0HgyDiRoAKzfD8sws0yskzo02De+TChvI01oODgSZxm11lBE0Y7Kz8+iE7dVQ2srn00T15RMbZbBdVuFNTfh27UMzcptpi0ulQfu7oTEZhnLeP1D24o2HavU2L9P8zibFbdu38Lm1manbZXSkc9OWDFsugyNFqr2HzZqWyJaCiOlC2VeaWaRYpW0ONjjKmXCJxXIODvZZpI+aeXGFC9DY2wb1g8GwEqbwbUIPYsaBtfEHqjie+mTIKafDEEHYpikmEXTAI4YTCRZkQMltI7aWjckVrNCIJQnUEKAt/vc2XN45A1vxM7ODh564KHkQWqlLMhEzKL5wKK9xKDfx85oZ3olNDAZWgSoScEAz6ioRVI6nmXO4yc+vpOhJSqzZbv0LOIytF5RoN8zCxxib3kQlBJatasYZnwP01J2Ani4Z1HGknZUJY1LlIz8tFkNjeYW48kiZGgVer1e6zxlXE6wurK6MGZRLMWt7dywS9+slArYPtQvUsRS1tT5DQu7q4S5yfJs31aad3JWNTTlt1URm+uVC69g49bGzLYt4+DHoWaO6QoQOW6rdQCAPPtDkKf/AowJtIKyDCCpjBdfD1ZqZplFpsaoZdoIkpKJgFlE85+x3oIAoKRnFjlQhe07vb0aFzcjZtE4PpdoHCerx5CqbMjQrqmTiOPqRgUtqJpa2Af8q0/dTHKeJkrgF588BVkvmUUAMLMWnNb6HTO+/3EAP574/FsAvnP3TTscwSfvQMgsirNgLjssw4zz9s42y9gaI8diNXy5uBY/HkR1C/uGwCma6BD9uixDsMhM9hIyNO0p2jy0xlSwSCmVpK7HiyK3vaZKJhIqysyZCkBtHk9NmQZFVVVzl+9tgEUzNPOBNOQeR6WXcW8ESQk6gaNsQTpLAjbrnF3BWGUXj37fkA0zXYamHSW6ySzKLdikoHWGkDLdnJhqDQuAmz7IMYsy8iwKJVscdDDysvTY0QCFaDvOqIjuO6/25VosvOk2kKqGZoxguQwtlAFNYVkhDRZNizhRYNiu0oES/DxkEj4vWhS3k55l/p0QAmdPn8HZ083qLfR9XdfIC1NRqVbzG1zvJfr9PtZvXJ/qVwTw64k+txVHVQLki9lBALDSH7Sw8ULPxBQYuRvZKR0zz3McO3rMty/+nSCYXKx2Hk4pP0jPHqqCamhSZlD12H3X6/UghDDPfVVB1VyGlmNSbgMw86csy1qYRfPK0Gr0e71WMHwysWDRIlgwlhFu/qrds8z/PX138kyz11rVGPR9GetZrKG5ZGhcVtiSfOTHlaK9Mm64rbKStSazaHtn28kvl3F3Bj3HhxssqqGFxHV1AUflacjCgifCMIs0JlbUZdeLRCawRtFCK2RaeINqu29czUxDYKS3zZFEwaqhRcwitkdLg/HaMGIWjZpMHxqslMggdY2i2oKAbjKLqgGAcfDZS1dL6DfZuYyqUNtrXR9W+N1nthBL3OicH/36Mfy3f26C4wBwj6/h7tws5h6NOFNDiwApJZvw04KnZtkvqqhSY3t7m03aLR2+iMAiRpsVQliWjvcsSpVvV5YxlEeDKDGF/KJDJTyLlGcW1fN7FqWroYm0DM0uZlKlrZVSyPK8MWGl++x9PMLvy6pCr9efa5LlwTPl7+kUsImy/bPkLctYxmEJyg53AUc56CH3MHlTunt1E6X1rquhOYRIhN42TRlauHhJrbG0LS0rpHCeOKavImkFq0QWyUwCZpH9N/nKhd4+YYUwDnZ7GVLaQ84AZ9zg2oM/gOmTi6Jwff/1mzfw2qWLOH3yVGP7QIZmr3Netk1cKVMrC0AkziNFU2rU6RzRM0h9PH3X9Rh1XRt5t1JQuzC43ksM+gPsjHaC8XpaxNdFMjRajPPtUmyl06dO4+GHHk4c1/9dJ8HIdpl6lzafOnESb378ze6z+HcSQjh5fF3Xrg2pZ8P7b1XWlNkaXGfeV6mqKyepIikaNy/nQERZlVhbPYLJZMIAM8ssquaVoVXoFb2pnkUrg5UFMoui4ijKg0Wz9o3Z1jVjaQHdZL7zGFyTXGzWu+4lvXKmDI1YcCmZpNKHWLp0j8XhBosqaEiM1TbGeot9kQG6Rq2JAWTXi4jBotrKtXx/b2Ro7H3QRpI/UptGBi5zCCtDi5lFXrTWIkPT02Vo0NqKx8xxyuIYlMiRl5tBuymGO83+4A++tu2YU3Td68MKf/3nX0PYtYZtrDXwr/9IBPvdq7EEi/Y54owoSQACZpF9jUie5TKjMBOZ0XjUkB0UMVhkJ6k0oYszzKny7VpRFiUs+0qU62Bx0ZCh+fY2PItI+97SObRlgtqZRWZhwEE0fqw8y1EnDK7B7ll83Kos0e/352MWwd+PLgwKN/laVkNbxj0Spq9JT/hffuVlbO9su3/H1dB2a3BN8tsuQSyesG/r5pukQWAHAv19ZVk/5BsXy2xTx3WLHSFRV6zftn0/b1cDLGIgEIQ3mpRCBlLe1LVprYP9yZuoCYaEnztJrysooI3xblWhqit884Vv4Dve/BacOH7C7m0TINHYQdczL7Movoej8Rh5lnuwTIeSRsVMqXd7Dlq8AmiAHa3HgAH/iryAIhnanWQW9fqoqqq7DC26LpqvULU5vv0stlJ8fM4saoCREK3zg7ag46Xa7plFnmFUMW8hYhalpKa8UEeDWWTBktoaXANAkecoqyqYx+RchlaW6PcHkEKyyrIEoOxOhpaap2htjLRXVgZzM5ZSwRNssWxu1jyJgGVupF9ZxiXFrHkQzRu7eRbpRp80dVtbPGCW7YCyidFkYYE5xpllHMzggGjXBJPWGs889+w+t2yBYZlFEMCW8x6CkaHpGpo8eIhcYEEQJQhMURBauepjdueEDE2g0qVJOMnCG1w7ZlHki9fy6pxfr7E5CecD2wws8mbZBBYdRZ31UVRD0+6sh/VhhXe97xKuDysMd5p94flrJa5thaDPz/zqFWyNEwwmFqWSePqidPflXo4lWLTPkZShIQSLwLJdBBZpphXnZtaUEU55FvGqLXxxYKRaKWaRyaI0y77/BdwqAAAgAElEQVSabNZ0g2uz6Or3eslqaDQpSw2uZOSdvlcpZhFle5rltcl3qZmxapZS5lFWFfq9/tRM063bt5KmrrQIkrNkaDbbv2QWLeNeCa3bzWtvDW9jNGbSDERl63fp60UyrC7hs95cXuHb0An8TcjQ8ixz1zBLFuGOBVPhsaort73zLIpkaDEbigPh0LEMrelZxBdWIYiU7o/Js0hGC3Iuj+4VBaq6xmg0Qr8/wNG1o/wAnvEUARLf/bY/na6gNSV42e3xeIybGzdx9vQZd/3ctJsAtzktiwCEDAoNzizqOFUScJLummRod5BZlOe5K6owKwSbgPPPPFMrBDxjKdns8DL2xr4R4NrpaFO2J4YPB585s4gklam5AAeL6siziEvUCETKiwKT8TiYw8WeRUVRoNfrOSkaNX03MrRe0UsyoMuyNKbbWbOi7W6C+iRelIWufyaziPw2WT9O/SLFoplFXSX+NH/twiYhVjxP2PrjzDbTXsbBDiro3lZMJxV1XeP28PaB++11vQU1fBpaR2xFXUEJoIcVbOobvt1CAlBQllkkiSmTkKEZsChkFnGwhEaNGhMILT1YpLWXq9n9+Ygax6e+vIn/8r3jxueboyYwpWQBDeDi5Bh+9NfP4sam2WazKvAPP3QFT58f44P/fgPDUbM/UBp4/2fJ2LvC+37vJp6/VDa2M9fm2/no8Qne+0PX7X1ZMouWsY8RL4J4RoRPbBQrsUsTGloArAxWfHln2cIsslV0Ulm3NmaRslT+OItSVaZcK5ccxGaXJJvr9fppg+spmdhWg+uWwZyynKnvY1NF3ga+eIgHhrIyzKK2TJPWGl97/usBE4JOnaJcp0KxicfSs2gZ90Lwdz9+V0kOwjb2/VVCYtr9nKozKykGi4JqaLIju0lEMjRlZWjS94tdmEXkw1bVfnsyZ27K0NiEUPukgWPwkN+dCJlFHAyg9nEQyTOIphtcu7Y5IEqhKEyiYDQeYTAYNPanNsRjQa8IPQa6BB9HX7t8EfedvQ9FUcB7FvlzerbBLphFCMdqx1iZQ9ZV1zWKwhSO4OP6nQghBPq9fmdwKylDU8r6GUbMoq6AGUKZWVu1vd287m1ssTSzyLwzFauGxkFHCmI+VXXlqp7RMSmZVDFPxzzPMZ6MA3khf0fLskSR5+j3+87k2jOLdiFD6/UaZssAMJ6M0ev1FloNzTGLCOhz/eRsRk4816mqKmAWdfEsMgbXHSXMsqMMzc25O5hhk2RNNiVrbcnPZdxFYejBrcV0UuEKBB20hO/kKvSNTwOjCwCAWteY6BG0LqEgkKOHUo9QwRrtE7MIkQytARbVgFaB55CGScoQg2d9yzKLUEIiY5XGlGMgMa6v/f/wfle1xj/9+HqScLQ9jtZzEFBZH1fu+4/xLz6b44uv5a60/S/+7g6+dcVc0ye/tImbm+m+8BNPT3BtO8Nwq8KvPtFePZcbab98q8Avf34luE/3aizBon2O5iIoZXAdlmGNTU9XBisdZGhN6j1lmbUiM+ZowWIncVQemKKqSluu1evtkwbX05hFUzI5xrOopYJKYkCmChXkp9A4Vp4nGEc6XDzEMjRiFrUMAOPJ2JhYRotbcz+YZ9HUyQ9Rs5fV0JZxbwSv4tU0kq0bJsXUrcz0C5p2Tt00uL589XKjXwJsf8EWV3PJ0ByzCAErgjyLaCHa9GRrAYuEYRbVVcXAIl8OmtqVT/Es8jK0VPY8rMpGvwkHkYSwBtcyXsxH50HMLNLOs2g0GmHQb4JFpi9XnYGWaSHtOFrVFa5eu4qH7n/QXz+NGQz0U/UuqqEJESQ/KSHgvutyDFtdzngWGWbRvJK7vcagP+gkGXOSSv6Zvc+pCqjzyNDAZGaxhxcdbzcytLh6GwXNp/i77GRoqmZeNM2xWNU1enYeQxJ8wAJAnFnEZGjj8Tj4XWPPoqIo0O/1MHHMolDW1TXqyjCLUqyWSTnxYNECDK5T8zbHLJoxfzGJRwE+h4s9i7pUQ8s6MotI9tYNLFJT56NxG2SLZE2rJbPobg/HnptDhubXQQcMLOg/DIgMeudlAMC23sDl6gUoVRomkO0LR863SELrGrUKq3sRCKIJLIKy0q/Q4Hp9S+MnfvkSnj4/xr/8bA5AQCJDhsyxkIRWbm7kmUlpGdqLlycYpck92BwFA7H76/PXC3zyqS1oCPzbrx3Hte0MH3tyx31f1cClm2lAvlLALz55Ch/8w1Fy5CmkxjveuoUP/hdD9qnAh79yFF+/3nMg2PVhjf/+fVdwdThKN/6QxhIs2udI+SAIYY2qmbSsVrWbsFN2hgwUVwaDoGIP0JShSSmCajTu3MqzYOKMDen4szyUOZRVhR5nFmnVPK7WqJVCr9dvehZ1AIvamEXpLDzLCsYTPWWq8ijVzAJxZhFNKDa3NqG1RlWV6PfS9G7ajtrKjwmA3VO++GpGmNE6YAPN6xCvvPbqcrJ1yGPau6/qkAFElH9gNlAzLWhxy+O1SxeTFYSUNvIpeu81q/QoRJj5Xr9xHRcuXnBtpSA2izumY/VIxvLhi6Rmm/2ktcksqhMytKZnUShDI/Yn7+saYI8DzUOvKCorzkOwe+L252AR3ce6xmg8wkqCWURy3a5Ay7SgRMFkMkFe5K4qEQF3HEgQYpfV0NAcq+f2LLLMopx5Ft1JGRpgKqJ1uee0aOIh2e8WJ4jm8yyCWxxQsif8fv73XRtKXWvEFWZLKx2rq9r5HqYACyOp7GFiWUAhyy8hQ8sLjCbjoModl4JVZYkiL9Dv9TEee7DIsJfmK6hB4FUKFJlMJugVC2QWJcGibswisgrg+5dVFcxTZzE36R519Szy4N8M1hNrW2dmka1KGXy3ZBYdjhBhwYdZoV2C5GDN4YXMgcHDDiwq9Rhb+hYqveP8hgQERsrOg0QGaAWlTZ/kwaLZnkVaSLz/yVVcu222/fhXM1zdzrAijpqxmZWl995GIviDBgRiJ/3+V7n5dhiTSqOstN3dJ4L+yb9bd9tUSuB//9zZxr5NHyITtQKeujzA//1k+vtSCXzpUg//4Tky+Pat/nu/cz+ErvHy1Qn+8Ueu49nzY/zC773Q2v7DGEuwaJ8jpr5yrTWf2NS1YpMUETKLVlYCejXQZBYJKZtgEckitEqWeSf5QZ4wuC56PdfueLJHFPO9MIvaJp7paiWWWZSQcynrWdRgTQXMIg8yffXrz2G4OTSeRVMMrjc3p4BFtDix19A26NCEO5XNvBfjwsULSbbHMg5PcJltklnE3wPGBomrRs57zhSzcDRuZn6UsvIpxyxSQT/B2zAa7WBrezvYXwjh2Cx0nri/i/u3GISg/UhG0fAsqlVQiSz2lAvYUO76VWNBpJlcDbCsEWVNlxmAoeqEwTUdn7GCAiBKaRR5gaqqsJNiFtlrriOT290Gv7dZAMTRtK6ZHJgXokondoQDArsdA6hrhaLI7fN+Zw2uAQMWdQJ2RPh8AB6Ui6XnNI51Df7MU7InPvfc73sgn2xGJpm3oxCu3H2tagcKpwCLWpt5zGg8Cry0MmkYOyYxVjsmkWMWNWRosWcRl6FpFPl83kI015FSurbwqKoKRZ4vFCxCNG9TjIE5q60u2WnvfQwwdvGE25VnUSeD610wixoytCWz6G4Pzizq+lt2Zde9HiFWHgOqDejyJsZ620jC9MSBNxlybGtrci0yALXzLBLQgAWGAEDxamEJGdqnv+Xl40oD//LJ4/77JLNIuH3pKOvDCv/1L7yGp8+P8ZHPMfPtRLx6vcS73ncJ17bMsdeHFb52YRJs8+++uTb1GH/1+4+5v//Inz2Gn/zuG6hauou3nJngN37kOrbGQDhcCTx/s4dvXJX4xJNDPPPyBBrAhz//yj3FLlqCRfscImKVUGclpfQTNUHMIitDs+ACLTqOHjmKo2vmpaAMcOz7IEVocE3n5sbZKXNoKUMZmmHdmIwQtTue7NGEUinl6Nvhcad3yNPAolS1EqKxpzTnXTyLOMhUqxrXrq/byVvRanC9ubXZ8BpyOn47aaAJdCuzSLVnM++1oIXecrJ1uIMWHDKS3/rf378HcTW03XsW6SSIPBqNGttprY35cJsMjb2ndV07ED0GaDxrwnsFkQF/w5OtjVlkF2ahDM32Oex8DWYRv0+CVUNznkXkGeDBOICkytr4sthFsXBjT7NaFX3v9o+YRVmWQUqJre2tpGcRgUX5AmRYdG8bQByTvVBTfTvn1aH5Pp7uMf1G3dlRrBqaMpXxUpLr/YyV/qDTOVPXRe9hzAgTHU2z/Q4AvSRJ5hpCyV+X0KxoRSqyLKwwa9jDfVsNzVeaTTKLej1XYY9CZga4JVaRk4UmPIu4z2RZVpZZxA2uNfLcyDa7Rs3eU2lBZB5VXSPLc+eduOexNcks6saq4L5nQkqMJ+Mk+72NWUTnmxss6lQNzcrQEqB94zq0ZxY1DK6X1dDu+qBKoCKhUmjdR/sx76CFGDwKANA7L6PUI/SwYsEfu5ZEjoneMW0XGaArKO0BF2ICaXB2kPUdYn32ta0MF26zBJMW+OjX1nB9aOdHnFlE9ymSodVK4e994DKGVmI2ntEV/rOPX8cz58d4z+dXoSHwoU9vIP7Jpv2C/ULgzQ/6dfJLV0u890un/LUL4D/7vjV85t2P4iv/wy38xjvWAQi8548HSA11P/2pE/idZ0I21L3ELlqCRfscsbRBA26Q44uPumFyShNNicFggMcfe9wezwAUsQ+CkaFFhqTCm5SmBmqi53LNuzElzAI6MG3nrgl+8dfv9RsTIGeUyHwLwvPOYBYlGFDOjyMx0cvzvAkWRZlm0psrpXBt/RqKvHCeBKms/3BrE8fWjk5hFs3WzPvsV3d99GENl6lcTrYOd7gFR+gvxkuu+019v9LFfLT9lKqR9dOqySyifoczKc076hc5vA21qj0DifVj3G+F92UcRO/ELAIxi2p/HyxDVDMWRR5VQ6M20LFhmVVGquv7bQ6g0LG1VoEvi4iO549v92mATaHELc9y5/8W769BzKK9gyV0b2lM5KHh2V3UZuPfN+85PIARy5i7gkUkQyM/u4oBgXcqTp86jccfe9PM7QS8FJ5CSitdj0ypV1dWGr/x1GMLZnCtdeMe8Heoc2jMkKGFzKKSmEWuGppozMcAL0OLmUVkNs/fF8BYAJjfOAQti7zApJw4ZlFRFC6RFoPUXaKqKwe0GvAi3NdXYTSGzHtlF5k+yb67BBaxQgCz9uWSzclk0qh4KKcwiwLwZ5bkjQG5nWRodpwRHQoYUFU3A8AtDa4PXZgFmBsLu4TqCJjuNYabw7mZ96I4DuQnoXdexgRjSEhIDYB77QmBCXZQa4Wx2kStffUxA+7UhhkkpIHjE9XQ3vMng0ZvrbTAh57YsAfi5eUd19d+Z/583++P8cp68/qkAL76t17As39/E3/qtG/bs6+MoQF89LlVrG9LPPtKs2paPCCcWvNzjaMDicfOebDoCy/s4LnrfgzTGvitp7Ys4EV18gSevpyjVPFAI/D8jQI3t1gyUWn82pOv3jPsoiVYtM9hyoV2kKGx7C4NmCrhd5BlGd7+nd/TmLxKYWVoEQOoVrUFWhKTJGs+yllHVW2yYqGcITQppUWVUibzRTTt+BrbmEWpTDZvc4M9pLX340hcg/EsSjCLQIuHsGS0lBJ5kbe2cTQeIcuyhkwtJT1JgVtBu+0E6CBSWO9k8CpKyzi8wUEQ/u54j6CIZdnC6pknlEozi3ZGCbBIyEDWpaxEgdrA+xfDLKLysiGgwjPvGVskKSeV4swiZuDi2uelEXUgQzMsAaWV679SzCJ/38w0J5ChUV8TydAoecDNemkil1rM8z9pGz5xllIit1WfkmCANp4riwCL3L2NxkQCeDi45spez4kWhdKpsEBCV1YNb0OWZSir8o4bXAshGjL19HYpkNACnjosd//4Y4/jyOqReVoRAKoiHu93IUPjY3oqsmhOZUDMngVfPbMolXDq9Xq2FD2TlskMgMD29nZg1OzZPuHvevLESVxbXwe0Bxg9O9vL0DrLX5iEk4zvw+/9u7UIk2tfDc3PwZRShmXegVnkvN+kxKScJK0S2uZKxBrrKhULJKcdwCXPLJq6KTPOzlDXzTEl1TYChZdx8GOe54ziToFFr7z2KjZut1fpao3iJFBvgooSGKYQ65u0xkTvYCLGEFqj0MxHzDKBCBjSQnoZGgOLvnzJ9IU8SiXwFQvgcBmaoPtKx7Tbf/SLaTfrIz1gkGtoIXG017zHVQ28548H+KkfOJXYO4wbrBLa0RWJh08XoK67Umgwk5TW+NATGwbkEtKAUz9yC3/1rTvI5ezno9b6nmEXLcGifY6UDwKEsPIk7lnUZBa1MXB6vWbpYSGtDI17VAgyvU5PksiUkDJoAFCW1lCRtZsyM+645Edh21fkeThY0jW2dMjTZWgiwRJgzKIE68h4FsVgEZ+4+ypFUkqcOnnKUaRTmanNrU2sHVlrfOcnUMynRLYDQdqWk502SbpXgu7RMjN3sOLa9WsNX569BKd5ByydRIba9IXm73v1LEoxdxrMIpLdtlRDi43o67p2rEnKupu2+j5WMeCbAC8VgeGGidlsMwHJVcX6/sz3OdNkaAHIRkxHSdnzJuABeJCfm/XyRVcQbWARo+QbZlHW8Cvy7SL2wwI8i6S5t7VSgbFwKENbgGcRmvduHhmaY2RJw84ty/KOy9A6h2hCLwSYmrFr3jsYHNqztFTzWNNAn7agvqUtZBYyiwCgRzI063tIgCnvMwxYZDLOnA0jhMB9Z+/DqxdfDZ7h3M4dYhDwzKnTuHz1MgqbiOIsP2UZjPMwgPh7KhP7VYy1twjfIpozBTK0uk7Or+Lg4KIUEpPJBEWDWdSeECAWZGr+1zgXe546eRYpnrzsZtSdOq6ROzfbdnPjJp58+ou4PRw2vlvGAQvLTqR+7ubGTWzc2pi6y50Ci3bLXBMih9aV7/sioEdAYqO+ghoawhSh998pAotMP6KFBLSthsb66H/+w6FXEAB86Scu4APvfMju1zS4ZjMmXN7McLuFgLM5Bq5tm4pqawmwSEHgY8/18IUXdhJ7t8egJ1DkAg+c4P1QBHjVMICXtswiYfQwX76co0qwi+Ioa42nzt+cq113a+x9FreMqRFTX2kSyrNggICqva4/AIs6mmPSZCKoYGINTYVMM2Ccjl9wZlGJPM+DDLVWIbOI/EjIbDS3RqdEU3cDfwIs0rppUhpcR4KGHDCLEkBSUobGJBhUup4YTefO3odbQ2OuRn5NfJI43NzE0SNHUdVlC7NIBYu9qTI0e+93y5poi6qqcGt4G6dPzkbbD0Jw+coyDk6sX7+OUycVjqyuLuR4tOCIJ9v+92+phiYFVLUHz6LE+w9Ys1m7uKMqZVmWoWbyEF4NjS9U6lqhrtgCLAJo+DHNNUgLFiV8ddDsB0miOp6UKIrmotCDRXlQgIADV4AvNuD6cuZZlGIGdZKhzfAscnKNPEc/lbwQwiUgFiHDIt83peqAtUWJC80mtx54nFeHFrJHQxla12uwv5mVspRl2XkMv9MxtRpaooLZvMf2Hn8tMrS5mUWYyhYLmUXmM6p4SkCxkBKqqnDh4gUIKfHQ/Q8aOb31gIzN2B+6/0E8+fQlnDl12n1GIEhsXH7i+AlUdeXAUw580FyAWI2xRCsVVV0hyz0Y1GQWeSB2MWARgSqcOVlj0B/MBHA086USUmBcThyoRjG10pn9bbszi8LqkdMi9HObuilj2zeBJa28eS+PsirRKwo8983n8LbveCtWVxYzli5j8UHMIkoMbdy+BSEkThw/0bqPT5Ds79yVkj5zh/UickCYDv2GMuTY0UOcQGYNqBlYxGVoMKCPiNhGAHDpdnMsuLSZgeylyQw7kKFZAGl9qPHffOSR9uuGKWn/0z8ocbTXBKUAwwj63Web1W2nxY0hJSjT33/8Hz2ME0fs3G39oh00zMDx6z+ygeFY4s/8sun3V3IFKTS2SrP9e/+axF986w/O1Z67PQ7mLOYQRcOzyA3Is5lFKX+GtpBCQNV1o4IJmV6LBNDi/YyYvKBWrqoI7yRDg8qw6k8eMYt8hqoJDnCJWvp+pU2sZctEQimNrE2GxmQE3Evk6NpRvOEBg4inMkjDzSGOrrUziwIZ2hTWkFJ8m8UONMPNIV679NpCj7mf4WVoS7DoIIWp2LQ4IJO/37GkC0DQBzVZPXsAiyIQSmuNlcFKYHJt3n9j6F8lmEWNNlu/kpi5Yndkx2zK0BoG1w1mke3TCORnxQ2qugrOxdsL0LqKgznm+uM+Mr6fySpFrI/k4YB29nlscC2FRJ7lSWYRYDxjFiXBosk9B+fsaZqeRbIJdHWJ+N5xwKw7s8gDTAQSHVRmUeq6CPA0HjS7ZxZx4I2bH8cx3zs/XYYWexYBvmpsbdl7lNzZ2tnGZDJ2zw2BNzGIMxgMcPrU6QBE8ob2sW+kxOmTp9w54+dJCsNqrOoaW9tbM6+djLIBA4TFoAj3A+NFSnYbKbmW6sws4tXQ0syiaYU+nPyro2eRA9JnMIv4Pe7ELLJz3ZS/Ehm/x1HXCsePHseJY8extd1eDnwZr3/4RLZJDFV1japKy6MofIJk/5lFu6qaLDJoXUNbRg8HfwBAIkOOwoBK0N6A2m7LJWcaMulZdHkzARYN/fvtZWg1pLZzK5FhfVjhf/q1Ia6Ppo+BH/36MVzbyrBWpO9xWQtcH853/6/drvH8pTEubzQlokUGHF+VWN2+iFM3vmyZRdKyoYyu/UgPKKwUbaeSDigCNB44fu9BJ/feFd/haC6CWDU0lgWj7If5t/UsmuLt0ziPnUzwqZQQErVlLMUSC2pTDHiQtIybvWoVGmcLDkLZidZrly/ihZdedMf2tN+wndMkaHS/0lXbZHIiQdXQYgpnSpbQ8BJBU+uvlMLW9hbW1tYarCE3gdJULUYm2xu02wKDi6awtunnD2qopQztQAaZvy4qOOMuqCwWMYvi56DLRL4tVGRwTW0Y9AeBFC00uE7I0GTYV3uASyUMrsNj8muoI0AjZfSvrZ+QFAJVXbmFFgELnCGaJ2RoYGMHTTJ99jxsK4W0XiJcUuMAkQgYiBfdtD+fOAsp8NADD+Ls6bOIw3jGlAuRoJn2ETs07MOFMJ5FiPp7c21znoNV6IrHj66SLL4P/ZZ32rOocwj3fy4I8CT/i90fmkk1o2qqwPxAHkDPffv3RZG7e84lnOQdRd5TWiuMx2NUtu/jBUNSlfsee+QxPHT/g0HbqWR9HA+ce8CxfQOWnwUfjVl9hWeeexY7o+myCjLKBsizKJahVQuWoTFpvZ1f1Mp4QlKfcv7C+eR4wZloUkprcJ2qhtY2V5ruc5nals7VVtE2Pu6sY09LAtJ3KVN2Au2KoodJOR14WMbrHBoAhJNr11WNcobfFE+Q7GvT9O5kaBA5oGsISDMOQgdl74UQKMQAENJXOqPvdFOGZr5XwTEuDVNgke//nAwNygBQABQkfuZXr+ArF2rwjvuNZ3MUUddZa+C9n5M42m/e48dOlPjtH9sdCPvuX7uW/LzITH+wsnMFK6NrkKr0GTJ7D4UUOL3a7FsEgA/+yb23jlmCRfsc8QDFB6OY6u9NTrlnUbeJpiCDaxF2EsqCOrGEixuipoxLG55FMWOJMaHOnjqDlcEKrly74q/R6j+TLKEpYBFNVIJ9LDDDpXH+O08xjgd3vghs84CK2UNUBjrP8uaEgflZeI39FNNGApQ6VOGYN+62Mq6+/Ojd0+Z7IfaNWSTTzKJAlsGYDXE/eenKJWxudaMdp5hFQggMBoMms4iqPzqwSEVtCD2LALMo4wbXgaeHCkF+PaW8e9hmZQ2upWM90LbCpD7dto2FYMBy8jI0wcCiFBtKCIlJWUa+LObPJrPIM74oQmaRycCvHVlDv9+skmXAosVUQqN2aE0G1wkZmtbNa9kNs8hVcglZb52ZRfC/IY1LuwFG7kQYGVr0Gd1npTsDZOmDM1aNipnJ4bk6hw5BqDgeffhRnDt7nzs2AOSZB3UEVQu0lRLrqnLSdEp6peRhg34fq5FMN8+LJOv76NpRPHDugcb1ORlanuP27dudQPqynKBXMGZRZLjckKEtwuDa3mFijgthyshTWy9cfA2TSVMqohkgKISwBtepamhtcyX/3nQCi4jFJLOpMjTV6N+ng0UOWGpjlScSg7Uy/VyvKFAm7s3rHRu3NpYG3Da8ibuZn9R1NfPe3FnPot3J0ISuIZEB5BeU6G+NeXWTWSQ4MORkaDqQsl263ex3L26mmEUK68Ma7/jYQ/iDb07w/KUmeLo10iijrqpUEk9fFElm0ZWtDL/wh02p+6xQGjh/tUKduKX0Ghel8RnL621bEY5GGKPpO73S3FlD4BNP1/dMFTSKJVi0z2EAjnghY7T0KysrZhuEYBFRwesZwAoPwyyKq6EJwzZynSPzEGEVzlJgER9Y+YDrjlt774izZ87isUcedfu7Djmhv5gJFgnRABS0Ir+BJiDEwbdwIA9laF4e0qSO88nGcHOIY2tHG/eFzke/pwOCLIMiNSDzami7opdOCTLpvFviTlF5lzFfqFotNGNG737MLKLsb+CngxDI4O/Ixq2NucAi/u6TRKrBLNLG+4wvrEIZWigXpUVAXdWBLInaDyBgK4ZeblEf15Ch+X6rqitI4fslzjoFWgyug0QDGRLLYMEVg0VSCpRlVNI6SlSwL9jxfbv4OBGzkYK9LbNoUWARVekyBtctMjS0XUvXc6TNwcU8nkXCS/wymR1YCRrQIkOzgKnSiQpm8xwbcM88Z003z9V9DIs9uOII2NrkHWWZRQBVtTPvW1mWAbMIMMBSVyZcnuczf1vJ2dmagJcMNzZuAMDMOUFZMmZRFjKLtNahDG1BzCJQ/wHbt2UZyAOM5hyjSbOENQHxAKxpv5fQUcTzt+jkjb6rLfh8lANZybdBpn8AACAASURBVMMyoHLW8xZeQ6IwDXy/zyNgFs2QNL0ecf7CK53H0sMe2vr6kNKimwzNj/X727a0zHFmiByAgtTSAUFJsAgSgLKSKztWNjyLWmRow2a/eykAi7zB9S99RuELl1bwf3zsRrK5P/WXTuIz737U/feln67wwk8+jw//zSzJLNouJZ6+mO5rH7+/wGfe/Sj+zH+wkvw+z4C/8j1rjc//7J9ahVQTZMr0ZYL9v5GhmeHrZAIsAgzYdK9UQaNYgkX7HDH4QZPQo2tH8aZHv402AuAnuYYJ07LoaAkpbeUztqCRwlB0/eKNtYMNovEiIHNgUWhmyq/JeBqEL3AmzSJsGqW4jgxKG9chEqVttdeR8+NxYIvAMnd9fEEVMLUiGVpEYzZ+RWmwCJZhFYJUZgL00isvY7gZVsNoA7m2trf2nOkhmvjdEkuD64MZVCloUUHvnYye+VrVQXUgU6HG7xdPzo0Rc7fFT4NZpEzmedDvYzT2CxsuOSHDaGItujYEBtc1+r2+8S0C3FzCSZ8Qgt+eldHR4NrK0ADvswOYPomzOgjc4gsW4drCZWhhBj1+15w8JAslcu6aWMyUoek0W4TvX1ZVUtazmyC5bzwm0m8R+Dix32PeSIFFBMJ1CRqLALOQjU2QD1I8/OAbsDIIJ9nEQDa/7+6ZRfyZbwMWicHSNTh7rMv56bfImR+YkAI7O0b+VVUVeLGNvEValoqja2sYDFJeXc02u/mClaHRPGEWSD8py6BqK09q0X3zz9rewSIQW1pQtdsamcxcBTl69yfjBFikfTU0+q1jllZuzb3Tp55PLhZWQ5shQ2P94rTFeMhYmoNZVHNm0cEDi2rru7cMAMSes2uJuq5my9BIVrXghG+jZVHSq2soWEYrxFSwCEI4GZqS1lfNytCIRaRkjqweA1C4uinwrvddwvVhhQsbzY73d18c4PqwCs539ZbCx581Ndc2dtLX8iffDOW3VHlNI80sAoAfeLN/x//Ttx5xQBNVYzu2kh5nyxr4xmtjnFoLvz97TCIvQwBVC+9ZJAyVHKdW09dQ1rhnqqBRLKuh7XPw7BLg6bY86J8uQy3awY3W89jOr8EAYh5EMbOIGxJ6eYGnZfuyrypYGMSyOYosM1TpaWDRbBlac0B3EouorCpvV8wsoiwZfWco5wkZWlRlZLi5iYcfetjtF08YMimtp4PX9yulMZ6Mw6y7vXZiH/HjvHLhFZw+dQb3nWl6fXQNk+W7e1g6S4Prgxn7Z3Ad9nu1MlULCQg2gEe7VEsp5SqWzQoVebXRYiLPw8VJCBalDa45WKCUQq8ozLYBs4hXQ/Pm1MR+SfZxKWaRlaEBYV8qZRa820IIa3BbO/+QlAxN8vHD7p+SoR1lsjH6ulmtyp/btcv2YynWUhwCZjGeNr+eP6iqqFJI+kGF4E6YJ+x8DrtffH3SVkfqegyf9Mk6y8hfjzibGH844LlX+dwsGVpn5CfcqdtWQjCJVu4+k0JiNB5h0B84KRj9Xo+98TGsrR7pdPzHHnmsUxsClp+thgYAq6urM1m2ZVmiR1XapETJ/HCqugpYUIsxuOZtVhYE8f6V1KeME8wiHfU/ABrMoizLUFVVsu+I2ZKz5WKevTddhhb17wlmkNuWMYtin0nOiI3DsOwzFEWBSXnwZGhVVS/nXTYIcBY2+WCYRelnksIxi+aYbw83h9jc2sID5+6fq227mdOXqNADjD0z7S+a446GNJCMVgYUUhNWDc1sP+6dwsrI+Pz8689leOaVMT70xAZe20hc40TgQ09s4O//0Bmsbyr8g4+9AYMVONZSW7x4JXpHiO4lBHpZ+jl9+pIfP+473ry2Y6vN8eVTP/sIBj3z+bvefwk3Nn2/dfaocBK0WvaQqYlrg2kPydCa7fl//vNX8cB3fg8eHnzv1Os8bHFw016HJOKBL5Yz0DYAZxZxg+uOnkVRVof+7jyLRCiHIwCGn48+JzNpPtmLQSjeXgopfcZ+OljUfk2xETfgF3+xwTVVNzL7pSVj7rsWw3BahNE+o/HIZVtT2TyzkNNBm6rK6J6pbS+/eh6Xr172MjQZM6L01GxYl1BKLcT/57VLF40nyz7H0uD64AUtCvfF4Nr6hFH4qjpN5gbQlCh0ZRZ5qWwIIgsrOVFRn0eeRbwamgMXWD9IC4Aszy2ziC86ADDWRFANzb7bnZhFQrIMeShDixfSGcvKm7lVuAAKFzrtMrRJiwytkcBwC7eoGpoOkwFtYWRoi6uGRhLBum4yixyLKh6X5gQj+PXwe5dlWeekjQBL+siDzSxKBb+fu5Xz0XEAz/pbiAxtBkAZHZxJtGQwtwKAI6tHUNVV8P4eP3ps4WbkxjBcuXlflmVYGQww6A+Cvqmua3zr/LeCfbnBtWEXhtvzti7EsyhI8vm5Gl2DqtvBIqrGCHiWZMwskrLZJ7tzIw3aT2snHXN6NbQQAJrG3AiZRVFBmCnzF88s6gWA3kGJul6CRWEI9/vSmDoNaCU55jzzpOHmELdu35qrVbPkl20xhpHak3wMaJGhsYplGpkBj1SNrB6jlgaUHg1MAuHV2zl+7cumH/h/n9xElbx0gd96agvXhxU++O838IVLA3z2W7P753/yN85FR9HQwjCLbuyk+9+nL/rrOXeiyXE5thLud/KIdEARADx8OgSu77NgUS17mPROAAC0IH4WQEYJKWbRQ2sllLj3eDZ310zmLowGWJTQ3Tc8i+w+VT1HNTSXTRXBZ3WtHGARy+HaZGjOs4gh6vHih7eXgjL20wb9WcyiPM+b3j+sTdR2gOQmTcCLtuGZ4bZqaKbKiNmvqky2joNMgd8USIbmF0xSClfVhB9nUpYeUIoXrVo1zCrnDaW1XTXuLS5evojRqDn5W3Q4Rsly0nJgghYX+8Usiv1/8txX1YklJTETSWndSapJ5+MTLf9uJsAiKQM5RMxIoWMYvyJWOY09trSY4sf0n6eZRfFzT4tH33+1y9AANNlQDswBoLWpjGQXZ8TAjBMT0hZBCKuhpT1+RLTwM20wzFEOTLWFEMKyHxZscB3fW5FiAkn6au5IAW2PPfIYzpw603l/Lg06yMyiVFBihRu/7ybidzJ1rFSVwGkxz9ghhECeez8fPyexYNGRIw1m0X4EsXIIHO4VPZw4frKR+CrLEpevXnH/dvOVzEvoeIIpCRYtohoafJKPzsGN+wFgnJKhsbkYAfUp4C3PmvM7d+4ouTe1nQxk71INzbQrzQxy18CZ6pGH3jRmNHnbFUWBsioP1ByH5IQHqU2vZ/D5SW3fsV7RC57JjVsbDUYyZ0V3ibIs5/aCNMD6fL+T0jVGoPfRVzrTqaU9vQeqAoSEkhnyehsCGnVuEuR1voIyP4J/+Hvn3JsSL1U4ybZWGv/s4+v4+JObIClZy9W5fT/0RExTImaRxFfXm8UyAKBS/rj3HUuARRGz6P6T4TYPn4nBIo2iHKIsjqLKV20r6BjaGnwLnIzAokJq3HfEM7HupViCRfscQjRBjEbGM57k2glnVVVzeBYlmEXCTDDIc6G5cGpmZxwww8qctjGLYoPHzLZ5Glg0y7S73x8EPiNAaGgYSOa4IWFCMhbuk1hoIGQPmQVXmOGPj8k9HYjWHoNFShG11ZuL0/603UFhFhkZ0h69DjqEY67dRdK5wx6UKV7ob6I1IGxmNsiEmwkX97wJWCtRX6FU3YnxlpK8Uhn52MeMQG96r2NQgB+DFkqZXdwEmW+2yOWl3GlhGPdxqYWysllsGfX99Pd4n3AxGLVFh7IUt+A35aN8O+w5wmpoLQyhBOOIvJ54cYS2oHuZdTQMnhW+6EMdGFy7cvcBgLY7ZhFFLGvL87w7oCCEA4iylgXzQQ4CGukd2mu0sYoAYvzPN4Z1BbCE8JIvzgyjOc/KYAVCCJRVub9gkWDArRS4/75z+LY3PpZMICnlmQ4Ta27N51o8wRSz9hYCFiHsS6lSHPnP1ZalnpShBcwiiSJRVQ4A8jxL9utt/XAquLQsy+R0GZoK54FTj8u2TRVT4X/yoLGCALKDVHnMJRjmAGUPc1hYwjJfS2Nqn+comcl17D+qlEKe5XPNkyhZPFfb9PwytJHecgCN0Aqw/krtBtfG1FoLAS0yFNa3p8q8d92r1Vk8dTltGA34SmIAUCngs1/vUhVMuH2JjeQbZphF1zaBjz9/dOaRzp1IyNAiz6L7I/bRGyJm0f1rNYpqC2VxFGVupcciBruazKIHjhqgbbdzi7s5lmDRPkeqqkKDWdSyYKiqqjuziEkh+HGpGlpDCsUWa23MIr7A78IskpmZCEzTns8y7TamtGHnww22OYjF2zUVLHKyvukG13HWPS1DCw2uhZSuPDe/h8Y8M2I+se85QLUbGdiiqqHVdT11srWoWBpcd4/16+vYuJUQiS849odZBAeiKqXcu1yrGkWDWRT2VbFUs8vix4O2gj1jtvKQDKnjmvVttLjSKiytTNvXtZEAE7MoYEIJOKZRQ4aWYr+wtgbtRuhvQyGzLCFDi32W3I2DhkZd1Y5J4e5l5I9HwHpY8Um0ljXnf9J+VV23e9Ak9l8UWMLvbUOGZv9HTXVG37s4T5uEr/P+wW8qOyd7DkrQuL8wZtE00EmIhpfXtJjnN6F3HDASTp5UAsw8I88yTMr9BYvcc8tYO0mZLmMlA0BZTgLPHxlV/YrnKpl9N/cSMfBuJJ8hs2hlsILxeJyY1+mgH8wjv6JZ7ZwHLOLS4U4yNAK2Zx63fT45bf5CkmXA+DQdJN8iLrdeBmiCAikEytIkh4tIzVDXYaJKaUp0db+HZVXOXfnXMGfn+53GejsoW99dhiahRYasNonumoFF7/n8EeznikBpHbCLyOD6/Z8t0eXyzx1vAtHHV8N5RgwWrfbCcSMvNyGgUeZrqCxYpGFAIKHJswg4tRru99BaBX2XsYUXFfee8O4OR0OGFskvAD+plUGmfT6wiICfcHFgKqQVRdEEUxryCc2y4lnwWWphByRkaDJDVTEZGtJg0bRrGvQHDnxx+8T04MhfidoSXB8z0BV2YkbXxkNmGSYTM7jH2TqSnLljamNwrdlkWkrpFsQcDNLaHEuyCZDSChmygFl08dJFQAg8Yk21u4ZeAFhEgFOKxv3a5Yvo9/o4c+r0ns7hz7X0LOoatzdvW7nCiX09jwMfFgkWgUCQDOcvnMcrr72K7/2ut0PVCr1+P5Aj8n7QZOAjz6IOGVrHOmT9bJsMjTN+CHwJDVA9oF5bCUiW5xiNRlZ21uzXuD8RXQOvsESfN+4To8MDIcgvW2RoVd2UzgmSoVWeWRQAHlyGlvASoYVrHIJ9z9tAzKKZ4xKxchbmWTSl0lwsQ9sDs0hYAGPXYJHwYFGeFw3floMexL6gCqR7CXMc1XiWKVLzg6nHm+PcpvKYZxY5LxpBYNEAWZZjMpnsK6BHpvfNOVQkc7L9VFmV6Pf7gbk1YP0gGUuyimRovaLYs19ODBZprazfk3DJtl7Rw3g8dmMHSfyMIbpnWLYzi/Jk4YKgT4sKmTS39eeK2aPp4/o+titjKWYhTWUWKf9b9HoHy7eIPEQP47zrq19/rpFYXjuyhjc//u2t+5gxEY5VaJhFRVARrbam1xSGWTSfZ1FZlnOPH8RonRaj8QjPfeNr0FrjjQ8/AnlcJ8EipPpuer+0YcdokblxvspNIYr1YYVPPmPNnvcQAhq//j8+jJ/+lSt44XL4PpQ18JVXODvRgEXPvqZRqul98aAQOJqofBZ/dv8Jk5jUMOPYp7+yFbTtV/5wjP/t+4GyOIo6s0U43O9lLD40BFZOnwHgq7e94egE6h6UoAFLsGjfI14Exdle2gZoMovKsuycmeVlk91xrcG1FD07AYiqoTEgg8CM2OCaTyCmtRcgT4vpMrSUyTSPQX/Q0MTH2X/npRRk9WNmkV+ASZYZiyfvGVtQVtaEl6LJLLIaea28ebW9Rm5YaUCYGr1eEdwr7gFFlPKqrnY1KSfTzL0ETbLiydbt4W28dP4lvOHBNywOLFpWQ+sc3OtjP4Mm/PvhWfTA/ffjvjNn8fUXvoHRZOw8i0KD63DRH5hUK+UmurPOR+95ACIHix7t+mGSpuSWBRksJhhrkaQFeUam/Wyxx7wvuGE/9RcpaRe1hUtS5TQZWjRZywNmETx7E+a+8QULsRY0QsmzYxYFYBGC34G3l/9p2pCjqupArtEW1D4u691LEPBH5bzjiJmkpg3zBwEYMdDWeX/hz3/29JmF9Z93KjwjaLbUcNZxAAS+gslzzUct6rwAO7K66j2LZOaTTZlEJjPkuZWfxIbvCw4uQ+OgbOyx6MEiyyxi5tbmGkxSauPWBo4fO26ZRf496Pf6SXlY1+DjjQdma5s4NMBWrRRkJtG37O+vffPrePPj345jR49hUk7Q6xlwSwqBvEgzi6jfTZ3fAzUzStyz/idmj8bRqIY29bhTmEU0hrQxi+xvcdAqoh1mZtGt4S287Tve6n4zpRSeee7Z2UC/MIoAAosMsyisNMjZb0opFP3+3GBR0fIOtEUXGdrOzg7yLMPj3/Y4ekUPt3HNGjN3YBaRDE1VuLqV4ad/8yT+xV/YQiV6eNf7r+J//a/O4uc/cQPjKVjnb/+D4+gdPYG//HMvY1S132MN4030gXc+BKFKPHj5CWwcezO21h5JbqyFwK/+rSM4c/0pXDv9dkz6J/HNi2P8+HsuBZuePpolf9vjkWfRkYFAhQkqjLE1XMVvf9mDRRoCH/tqD3/3T+fGr0hI3Dz+HZj0T+Do8CW7hZk7rZ46C+AVf55+DX0PmlsDSxnavkfKWHpWNTT6ez0DWAnOk2AWCUEG11S+PZR5iOh8BKg4g2ubGUy9nIbm3TS4rurarU8EW1T58842uNY6ZBXQJAUIteQhs6ipMad2TJOhcePIOjJkbfMsMhIPL0MDjAeCk7AohbKuQqlf5LXkz6l25RmzCBkaAVYx3fqbLz7vJqSLCgJMF+GzdNjjjoFFFjxdlGcRtVkIk9Xv9/vo93qYTMauGppmoGHAgmzIZBWqKnz+vvqN5xpsIwJ7BANjjT+IdCwPD4pyZlHu5GUx+w+IPIuiajJ80RAbXFd1OxuU94Vmf25wzfxHkp5FniqvuWeQEA1jfhEA/f4YKc8iMNkUjxRYRMwi3YFZ5GVoC/IsovGoTkui40Wh/cvuzkOeRbsBS0QkQ7vbPIvcuL83ZlHABGs7jphvEUusgC5x4vgJnDtrqu7kzLOoV/TwXf/Rd4JkavsuQ7PzP3rfg88jMAIAKstKmUSLzbUja3jw/gfx/Esv4Or6VdR1yILO89xKync3ZvOkIAGmxK6kylEkAe33+rhy7QrGkzF2LAt8PB5h0O+7a2tlFlnAOXl+8P6rq8H1LBnafF5IMupDHKPI9vMppjy1A1gMw2uRcViZRdS3HFk9gtWVVayurGLtyBp6Rc95iLbtJ2CSNFVp3qG8yB1IS/NqPs/Q5Fk0F1g0mTsJR/3u9OOW6PcHWF1ZdeO4N2aebnBNAFJVa/zs76zgi68V+LnPnsFf/vCDePr8GO/4Py/g95/bbj33faslTqwK5JnAW87OSuSJpjdRS2KAZGi+dzfbffwLw8a2kyp9jGORDO1z39iBhoJAhg99eqPx/Nca+IWn7nMMrO0jD6HKjzQMuvtFeB+/dGXlnmUWLcGifY6GDC1RDQ0iBRal2Ttt4RcsfCItLT1YWK8fDnyE9HBaVNGEwE3CWyZ7ZiEWG1xnkcF1enCdViFGCGFNrkfRPh50cQs1Lk+b5VlkAZqYcs6NIw21O2QWxdI2mjB4ZpEFi1YGAYhVVZX1a6A2hCAXMZZq6wEyK25u3Az+TSbbe5kEcK8mirIsoZTC2dNnFmp8vfQs6h5En503bg1v44WXXui8vaprFHkxt06+LVIZvV6vj/FkYoEpf66kDI2xjrRuVnG5PbzdyJ5TlpnLU3k7eOaZ+1fkFtjmoADvr5RlsORZ5mQTdMycAU11BBbVLRUsSd7E75UUnFnE++Jm9oxnPwPJGSydPpKWGUC7KUum9vtt0zI5Nyaxvp/KdxN7alrQ14uVoZk+XEZJCmJvcK88s+jdzYn887crZhEEsj3Kt17PoHvHq5ruJaYaXEO0rR+SYZSg87eJy8EBYGXF+HPkVoa27wbXlgUczLeiSqtchgY0mQlCCLzhgYfw4LkHsLm1ZcHs8J3v9XpOUs8jlvWngo835Aup6trOBaX1CzN9W7/fw+WrV9Dv9TAaj6C1xng8Qb9nwKKzp8/iwfsfTJ4ny/MkYzTshzvIxaL5cdvCXLP5axdmUVB0gc3/tNbIZNZcdEZywKLoYXKQwKLKs1EPU6QUDwCwurqK7e12wEPDj3lchkbgEM2F6yhZbaqhdbuJ5AM671zXMDpngEVViaIIgVjuReSZRalx19yrn/3MWXz25QIaAp988Shuj83+oxmPbSE1YI//2KkuFgHkTUQs6LZrs58zOd36sArYQBTXh3UEQJk40g+fgz/42g6uD41/7ldfHaOMljKlknjq8qDZFAHnWZRKTTxzdYBrO0tm0TL2IRoZisSCiv4VgEWRIePM87iBNjx3rWq7KJmPWUT7qzpNR+feDP4YVrIxJZPTpVTtgFVEo4m7G/ClcNfRVtGN9uOg1XRmkQVuqspR19uOae6Tcm2i8w/6nlnkDK4ZK0vwiYfSrhJVreqZzA6lFL76jecazIu9Bmdc8OOaCijTq4zMivF4HGVOlVvULWN6mEz0/PtNJhOMRt2lCGQ6vSgZWqpvI2ZRXZPBdboaWoqtE1f4UUo1srYE2pIvGX2WApE5UO1ZMqH8gZ5P8gTJc88s4v00+XRww+VpPnMCIVBKiyPOQqFIMYtMWWaSqFRuISlEwmvNyjjIP8p9nmAWcUPmuL3m+CFTNcsyVB3YGJ5ZtCiDay+FScnQYgaslHJ3zCILYMyUMrTtnxgX77agd3Ev1+GZRe33cT9laDxWV1dx6uSpxud5nmFSTiD3MVMcSGEDQDhiQscytLJEL2ESvbKyip2dbSuZD9vd7/UbYNH29jaefPqLs/3fGLBM1R4ds0gINjfM0O/1IYTAQw88hNF45OwS6F3v9/tYGaSrKU2VoaGjDC3BSm0bwziwlJqP8nmK4mbYiNjgOs0s4ubWADGLFiNDq+oKFy5e2PMxgMOXpGtLYh9ZXcXWThNkcKGNvIgSQ1mWhYkYe7/4M6q19SzqOOcmwHfeOTopOaYeuyxR5L3gMw8WeTBnmsH1R77uvTC7czWBK1sFbgzNfGx7IkAgjxTN0vUA9yYSdLJ0aOO7pBmolGIDAaaaGjfHphBC4C0P+fuitcb/9YR5Dt7/Uw/iM+9+1P33/E+9hBd/8nl8+G+2AWra3Evbx7zxLAeHNN7zJ0daLuRwx909q7lLIs6ap/wsgKgiDsklOjqv++wJB5w82BNr5LUOO1spDDgQV/cxYFMbs6jpWRQYXCdo5mVVzcw2Dwb9wDRassWTZBTlsALHNGaRsGWX02ARgSYNZhGTc9AxM04rt4NOURTI8yxYlAKwLCv/OzpDaVuGFjCTDQK/Nre2cPFyqNGl4wCht9AimDrOsyZakEtpK0ntQYb24vlvBWwopczAPG9p0HsydskYU2o+SWNd18iLYrFgUTT56PX6GI8nLZ5FHIhoGtfngfTK3JPYD4IkWZxxyCs5SSkdMMvB5czKIXQA6DLAysnQbDU000h3XmpbAK7TsVOL7KjPp3vFGVAUMgEW5WxCa5hEhTtuWUbMIsekjCRbFgQO+sBEdtZ83JSh0XWXVdlqWhzvny9KhiaFK92dGj+1UsE9Nr5PuzgPLe5ZdbX59u+e4Dmo0fbbzxsaeroZ+rwytLmWNj4G/QHe8OAbGp+TFHVfZWgWVI77RgNwNJM/BIaX5STpebI6WMH2aKfBaAEMMB8zL89fOB8cvy1Scq3aehbFMv61taN48NwDOLJ6BOPRCKPxCH0rQZsVph9LyNAQnX+qtKzJim9lFs2QoX3zW8/j1u1bZlsVJTAYoKfd/CUCi9T+MYvG4zEuXb28p2M4n7tdMJUPcrT1K0dWjmBrKrPI9CGeZZsFBtd0v/gzqpSeS4ZG4/E8iVG+xpgWk6rpheQ9i+qpnkUQAle3dg+MawDv/+wY68MKn/5WHwQCKQ2MJxqf/olNfOO/u4AXfvJ5fOmnK3zm3Y/iA+98yLVvugwNfvzWOskGomjK24wx94tX/HtX1sD/96WRBbciwoJNDpT5WuIaeVsF1ocVLt305yqVxMee6+H6cHGqi7sl7u5ZzV0SYVnndrAoiyb2wBzMosQEjzw4hJANVgdfONF5HM2fVbWo67qVWdSQdNmsEZcDxJ3faDzCoJ+g/7EwJtchWMTPGzAQOIMgztzzBSPLjMVt9gbXIZBFCxMub6HskpORSIlBr99gMGRZhrKcNEq88rYDVoZmj7+9s4Wbt0K5GbWL78P/vheGkaPcNkA2CWklJ7sNA1yEk+EUjXsZzditvFApNVdls7pWRoa2h2fo0pVLHtBJSGy9ZxGVn2X9INtOJt5rw+qxz360mKJwDD/WxxrWJHvvAuNrYtdQZa9wMRF4FhFgVVcNVkOeG5+DmIlJ54wjrvzEqykCiFgHCWYRm9BWZek8QQREIEujduyMdlDkRYNxFIM3beBGG2Bg+rWy1bSYXy9tv4iYytqyTATeVCl2ySwSzLNoF3KylDz7bgtp5wt7AYtIdsllQI1t5oR+NGlIFhQ01sfei4sM4eYLTeZbPJ5nWeYA4dSiEDCsnaqqMJmMG+9WLEMbbg4x3NzsJDVOgSoGMPf+lbVlUZ48fgKPPvKotQsYYzweO7+iWeH60+T5zd/pnnVpK2CtBFok8xxYiln+gBlPXNIswSzyRUmYXyWLGLTrLdDget7xPBWH1eBaqdAwnmKmDM32IYIljUJmkUlI8GdUKYVsDgZ2WZbo9/pznNatzQAAIABJREFUJUa7gkVGnhrJ0OwyXkBBaHoPEswiSPzzz+++4EKtBT7xdIX3fupmo8S90hq//Md9SFUabk6CrTlNhmYspf11fOCdD+Ez734UP/y9ayhkeB+9vM1HiomkNPBvnthuAKVamvtXFk2wiNpDbTLHja8V+JUnbrXse3hjCRbdgRBB1jv1wjQXGbRg6DphI9+OACxiDCFaNPEFWUqfHZhJC+vB0ZVZZGVo4aQj3G80HmEwmA4W9ZkMLWYDBYtCrQJQLfYX4mykTgbXVd1YTAXHjcAiIQQG/QFOHD8RgkVaGUo4K59Jsi5vgk2VqGoHqiilk6bSVdUOFu2JWcTawI8rpTQMKjbRmFt/rVQwWGo7GT5sk5b9CMXu93BziCvXrnbbLwLoZkVXGVpVVXjlwivJ7y5evuQMJad7Fpl3K2RYtoDA2svQaLLrPD0SYJGRoYXMIlogZBbwpmOkDa6bfmiUMSZm0Wg8DoBkYvrw6o4euE6ABVE3rjWB0eG+tH+KWeT8TCIZWuxZJIXA5uYQR1ZXg2NkWdZYgJLZZ6O5bcyiPDemwDOAFBq7FsXaSDGw3Heg0t2hzGdXsIJA0L/PGyeOncDxY8d2c+YDE3sFigAvZVK6varaLA+ZRiSYi3sJemf2YuQ9K7wMLQKERcj0VsrMGbgMLQUWCSGwMljB5tZmwzye+lqK9RvXcf995zoxelNgEUlxvedjOH/q93ooqxLbox30ZyQAKbI8D/xgpp1/elvT3kJxqJgtFB27qiqXFEse1yUKDVA2Cywa9AcYj0YLmeeYe76345AR+mGbd+nEXB4whWYm5SQJSJodidHrk0aU+AGMFUW/1w9km0pZGVpHsGhSluj1enPNxdzchc1zUtLRaTI0aGZw3SJDe/L/Z+/dYiVJ0vOw74/IzKo6tz59n+npntmZ3dmdnVlxZZIgDdmy+WAIvjzYfjFsGDAfLMsyBUNPhgH7QYBsAX6mDQi2YNK2bPBBsARKBg2DIGHTgiVKy+VquReRSy13d2673TM9fU6fW1VmRvgh4o9LZmRWVp069/qA3Z5Tl8ysrKyMiO//vu//ybDfaReUBv6/PzpGqeL7cFkD3/hIQmhbOIzIojnKIrZ8Bcoixrffn6JU8Wfx9jbEr2ssnaoa+Pb7JRTi701ThlrkUCJBcBOBtAZZUjGZd1QTvv2j5TtPXlXczKSmc0Zob0hV31MVaZOHs9gkhkQ8yQsrKmFVhSuxTXKqOSEgos4w09RCQFgbWlFI95ooZ0cpzGY+CLEL49HIhTI2Q6lDxUs4YJAQUGEHg2BiGX62phoqz3KUpfcpy0YXD9kIORRCOtKNiLCzvY2d7W282HvhQu201sjzHEfHR47MkpaUcioHziyqVdDFSSUHueaCmV/Lx7Qs6tqcj7pBQglbHefHP/3sOT578Rxvv/X24G03c3fYhrbuhjYfITl3eHSIvf09PLz/YO77VIOgm4e6rjGyLWH7FsfT2Qw/fvYTvP749eSxxqrJ+HmutPL9rMuOG1oPQhta3SBKmxL/MGheJSb9MYnr73mZlDguy+QiRWvtFgH8+g8+eh9vvvGW2y9nGYVqxZCcbqJbWUStxXkysyjLUfF9KiKHzHbD/BIigf2DfTy4ez/axsZkA++9827jwAhpBU2Psqgqk1XdeLO00k5gTimWUoFQ2wJJiXM4aD8wBY7UtTwEqWycqwYSBFKnJGUIVlnU3VVtUbJoWWtgF/j6PHMbGiuLGtdnXPzR1kY2MwRGXaPIi9QmMRlPcHh02LLzj4oC+/u+4q1UjVFR9JIpjPD3Q7YgN51OrUJC2/t8DREssIgIo2KEvf093L97b9D5yIICQGv/kcKz+7pQuqksEq5JSd92edvhGFRawh9oq+3DHDye+yXJIhEXEYSUZp47UG3V9zlPm01ZuS6k12veVSuVVLcymXp0dIyd7e3W8yxOdMUkKaOxledER8denaT0Yl1jWVm0r/YHfx5fKDP/fvDxhwCAN1//XLztqkTRsqH5YGjSylipUjdKEvhr/9JT/Lu//mTu8XzhFbOPP/5xPN8qa+CNHYnf/fM/hhISn979Gffczv73gAM+puDe5Eigrr0Zy1eYWcT41f/kFTz68W9jb/sLONh+s/N4f+UvvdZ6bKaPUdAEpY6JnVm+DZFtdKhU7cBljyHc7oOn/wB5dYAX22/h5XZ7LnzdsSaLzgHR4JdYlBlStUH0WHXHIhBCRFViP/j6hVPIYKe6oTUr7aqnu0+yG1pdYURmkOTqImM6m6Kwk5c+hEGNTetYZoNp/XPpzKLwPHdVxgATHFvVxk5S1+08JWqRRbGyKDx/JhfJnK/cVS35GGRAWMk4syjskjZYWTRMttqHWtXI8yLOLNIm+FxK/7nLcjY/ILOB0HJntru2oQ1GQBYxcTEERj03/Pwqq/bhCXTX4lrr9HVptuHVTKyWCSGEQJHnboLPv53mYtzkQwQ2NCGQZT4MlQlVVtf4YwsCroMJlw++j7PEQmVR1Qi4Dgn1cBGQyQxCSNy+5YMhWbrO1gz+DECa0DCunPD34Emu5j1pd3fXdWxisLLILHAq5JlXFvEx+n0RptMpNjfiIEYiai1ACUgSP2ZC3f4cmcwwK+cT/qC25e004GNJKosooSwigZacawDMNpa3oV0HLFOoaoLJ0eYCPH7NguPXym1odow+Q7KI28A3CQ6eLzCUViiKEQ6PDnF0fISNyUbn/XjD3hvamUWxsqi2cyf+ffShlRmkNaazKUajEWbTWef8aTweY29/D48ftRdrKRhFZr+yyFiS+zKLGp3lpERX59awA2b42QA/R+lUFkXdMTWkTCiLVDs7amOygaPjo9OTRfacL6tyBIxaPs/yazfvamauhtjY2MDxyVGSLDIVzCArUGa2iGnOdVXXhuh5uW9frq2yKBtsCSyrGUZF0Usu7e3voaoq3L1z1+0n/FcphcOjdlB3SnHoM4uMDS3dCc3k8Tw9So/J//1//Cq+/Lj7epXVMV55+vfx2e57ONp4BDz7AM3xVQdGpaaySQf/3z4wmyQVKKSa71z2vl/QGDN9HD22t/vlztcH5bzW0fJnUmfYEOEy42bOhs4ZYShzakHFi4boPUIsnH3QsqFRvIgJMzlayiIyqqBwG0ZZlG6hS0hnFvXJiU9OTjAZIFc2LZrrYLIpguey2FbSIIQYqeOoVZv44gXUbDZDlbChRcoimHwDrdJkUa09GcSV/8iGVpvnszwLJiq1V1R0EAN1T2bR6ZRFNfI8jzOLbMZEm9Ba0IZmq6nh8a4DroeBO1nxfw/Njlom4FpKm/fT8z7O+0ofq7dWguXEDRTFCNIuWhxhhL6JOdvQfBgqn4NmpxmeNIYLjLAFspCigyySqKs6Tfpq3wkIMAucJ689jl7Hi54mYc3baIPiuZLdb5Zlrap8kRfY3oonulKa81eWpbMVA/7+EtnQ7P1+c3N+1w628CUfT3yXmc0sOndlUUJ9655Dm+w0Nu7l9nMaG9p1gJmPnNKGRt6G1h1w3Z1ikcKyAdddYBXxmZJF3L1VN7rPNggcpRSKokBZVTg8OsJGw0Iagonk5lzFzGN8FV1Z5XAqa6eJ6Honwmw2c+pOVsaHxDhjPDLKo3ExzN7Sn1nki5t94cCp3/qQgGuzbT8nLRtFuHA+2dyuIZ3a85dU0DiTRaeFXsEcr6qra6ksShGXDBOH0XE9WHUi/xYzO65yMaauK6fcCYm6ZiZqH8qyRBEo8lJ4sfciyicNLfRm3zUODg+i99d1Dej2/SrKLFJ1J5mhSeDpYZos2t3svwe6kOo+EjeYz+nW2pU6M4vItGJMKov8pGnxO7+GRoHJoHB3pRWm+hAK9l4NJOxrMvr3pmFNFp0DmtLXFlmUaF/c6lozAKJhQwsrNbxNF9in2plFzQBRIursFhK2fWbIhh2jSRYdn8zPK+L3sVKoTRbJaAHpWmEnyCIEx9H3WQrbRaSua8hGO9p4wqBd1kDXhMWrIrjy37ChBdk9PljRfyeDlUX69BlAqq6N6iNSFplKnAgyi+q6XrjlvTlH/u91ZtFwhJMMrfXgrnQmEHORzCJDbJKYNzlXjrhN75PJ1PQCe1QULkSWf9ctZVGg6gmVRbVr/atcXk50bMpnFoVqu/CeV6s2WRS2cE4tJsJFwJ/68ldw93YcDJnshtZHaFCsslS2ii2lxBfe/ELr9SnkWYaj4yNkUWWR3PH4fZmxY14jAfviTttcKmtGZpkJuB6QWbRKsgjoVtsS8XjWVBYtDiL/+7uhXJEdL085NbRq/mZmTHM/WGA8WDWBlzkb2tlN/jm4X+lEN7RQeWvVC4IILw/2sTnpJos27HOpgGsO3TfbrJ3afJANjfwxn0xPnHqway4GwN1jhqpoXHfJxvceFlFlh1XNvzb+rTet9CH4PssI56QcahxmM7YIvUCtapRF8fbTZNEER8exmmEZ+MLu6ZqY5DeMLGqOtSHMafBkOOd+uYJxXUNmWWt8H2LlZJSlsYr12WwNMeWv8VDBxv8qpSLSkVVFrXugJVpIK3z6ssa//3cetrqF2Rfi6VH6Xvdrf39eYLMnpGpdga1jIUISpU2o9N237bYcIdU+Z4uWCXisyETayttEjRIj2jSHwYXaZjD2Wlm0xlmjRRY1Lvw8z/HgfpwvIRJkzNz9NHIaml0gwlDFpjxXCIGqTpBFKp1ZdPf23RbxEwZj2/+IlUUDOqGF23KB28ExhTa0qqp8SKXwQdXm87XJnK5uOqOCB4qqHXDdyEIRQdBdvH0JHZFFDRua5AmXhrTKHQ7rVYEiIrUo54lTM1toqK3rZHqCb/3Tb7ceZxtavF22oUmXwVQFVrmhYPWV265Wxtp2zSYtZwKt/YB55soiGREqXdsFfCB6fKiNzKLEoF4UI5/rI7qVG3yfVFbdFlaha2UDYG3OULh/Jpd1oJp0Cw/RUBa5YEsmPdrHoKztjhcBRVG0XmeIq1lLgUNEkMm2tYiURcbSutgEKMty1+Us3B+AKGuNiLC5sTloYW1aByeqjX3KogGZRTtb28mMq9MgZX22T9iun8H3INLHP2Av9ud3c5VFqW58C2+DjK39ZHqyMhsaL/RWhfO0oTV/720ltJmPZXmOvf29loU0xGQ8wc72TlIlbTIY7bxCKQgOqJ6rLIqLfCcnJ44A4nu2qtNkUbPrYh/42mrOccLfW57nKKvujmLNFvfGatxhQ2uohSgggFyosfKkTPTasFBoC5PN8bWZWQQMUxbtv9zHdNYfkuv3fTr1eHYNbWhzyaLOz6ujMTsLxviZ7YzHY2JVV/aa8GTRkPPInQx7yaKySpJFobpaCoGXBy/9ezo6JAKGyCCt8Nf/YYHf+6hodQvj13TZ0FLt6OP32t+FUjjCnrWOtbfv/1s2nkN3YUBzNzQ7R9T+vBC/Z8HbvoaCRAaJbNBbFWpsiTu4JR4GyqZGzuRaWTQfRPQrRPSUiL7V8TwR0S8T0R8T0TeJ6KeD536RiL5n//eLqzrwq4R5yiIpJd58/c3oMWMFWlBZ1LKheVkvgCiwr1nxS5EpgshkFiUWP288fr2Vf+GURWE4asOGNh7HWRxdMFLSGs2Aa5M1Ym4mLLHl448nXw0ypyfzoihGOJ6euO2EaCmL7N/N71AIct3OWL4NeAugyyyyHdyEFK7FatieFUBLXdTVDW2oUmc2m7mOVSHqWqHI84gEYFsPD6i8cF50smGURTEJJeX1q3CdBcJuaGxVHPS+RZVFAVnU58d3E5i6PcE3VfMw86FLWWSr+JEyr/Fbs4sIVreFNjStjLJIkIh+HyZji6LqeWRDC0jk0BJjFIpVy27DSoDUIiBEluXOqhG/P60Ibea3mXO6KFmUWbIoJIbsczLuhta32Azx8P5DvJEgdUZFgbcaYxKA6Hucd6y7O7cGHcNQCBLpPCi0J+XmO1icWOCq9E3OLGLbxWmQZRlef+0JPvrxR/0B1wttdbUEHquIF51nLQImJ+ZZp3jekGc5prNZrw1NCIGfevdPJZ8bWZU04DvJNsO0UwjvR0SEsioxHgXKIq2MUqlBCm1ubuLWrcV+5ykrmlkumv0Xed7qetk8Vuoh3lqvbc6Jm8oiHh8aZJggEVnB+LmmNajLhtY31/nw44/w/LPnnc+b4/LEwbJwc+RrNu9iEicF0UPS8GXuiyyWLLLKIu4el9n5Af8uQ+XzPIQKoMHKIti1RaAm29newcuDg9Z2k5+LBP7ZM4W/9QcjaBD+j987aJE/zw40fvsH6XlBqh19DHvto4bQ9rw37sUhWdRW37RtaJuH72Ny9LG3oQmJWhTI6nCtspwNTUNDIINA1nqv1hpHeh9Kx/PqgsbxmpgkFILviJVFZ6hEvcwYOkr+TwD+1Z7n/zUAb9v//QUAfx0AiOgOgL8C4OcB/ByAv0JEt5c92KuKaCEzcMIjhGgNzEPeE1dXG/aIKBekdtYQfm/LhiaEzfkZ9kPlQbNpQ6sqEyS7iLKIc4vSAdeWLKqqQErenVlkno9VViFGRYGjo6NkIGuTLJKNc9p8nZ/0xZlFLJXmDm6sLJLBAMETkxZZVFdRNY6/wyFZBLy9dBaSySwKSYAwkFQKCVWb4O9FJyxGWeT/dkqoU7aCvQkIbWjKVnSHgImWoYSctymIXkUSP9ckrULFDh938vc1Gvl7g6Ag8yt+Hdn7E//mubrH+xBCILfd1RhsOaOgeq6CxUR3wLVRyDQJAc7LSAWXhsiyDNPZrLXQJEHdAdcNRdSiuTB5luP4+MRZXAFPzIfd0O7dvYdXH74yaJtNZVT4+P1791uPexL8/IkUonZOHj+esqEtwyvwYnJtQzv9h3/86DG+8ObnsdNFGi5sQ8MqhUWODD7TbmiCnGI4sqE17rnhvCHP8s5OaPOQ54Wz6rI6YV5gtEF47zb/jmwOERHZe2I7s2gynuCdL3xpoWPMMh8l4PYeKYuKlt04RLobWkcDhoa1jAtggFF3sIIaaIdVC9HI+EwQBlVinMjzHIJEL+GllMLJdI6y6JQ2NC565Fk2KLflKuFUyiJQq3hslEXWhiYzrywK9hOSOV22fF7v5FneO68qyzKyWmqlo/m8Ugo7O7fw8tAri2ZlGamK408l8J/+ncLZtaoa+NXf9uTP938yw3/2Nz/B/iw9p0m1o4+2z2s6rSAow3I2tDZZtHH8cbStSk6QVaEqzxZNlyCLJDLIpArIPFci/LyEDDnCz1TQJir43zCTRZpuZl+wQZ9aa/07RPS5npf8mwD+F22u9H9IRLtE9CqAXwDwm1rr5wBARL8JQzr92mkO+qqBRHfL6C7wIm4RiMYkz+d2+H+9pURFlXMhKG1Dq1VrQdUFtoN4F5q5aX/nj76LPMsMWTQe5m0PA6GjzKKgQ1IdKIvCQR/gSlVwbNZ3nDr3RTHC0fHTVl4RH0esnEiTRTLodhbb0GKFQ+iBnpWlkQg7ZZHZT7PqVlcViqJA3OJVzBkUPaoussjZ0AKlRmDVEdKQhUsri6KMFpXsJrJGG1Ew4iLKojkKnybqWjllUR8ZyBXO5jUUdvHr2+/d23exvbUDgHMg0h1eIhuaoIgY5usy56qzFSi6FvREcRXY3fuEI6vjzKKYzHXHINo2tBTyLMNsNmtV+gQRRHKCQi0bWioTqA95luHl4UvcDduzOzm9H8q3NrcW2u4i4HvkaQOQl4HJyUt1Q2tfe49eeRVFsfiCm61RN9qGRgJarOY+/cqDbtIypQjrR9rmuiyICOPReOXZWvE+gu6pHW3ZAXOPFWSyDvtURfMgg85gXAwI89y6EF7v/NtmGxrPgfoW6IsdY+aiBFL7H6IsandDG6gssjZTwCiLRsXIFWOa9/zwvCmlXMxDOK/pGicmkwmOjo8670G1qjG1avYuNIsxi4LHZ3ENu9AuSxZxEYAzV3kbRZ7j4PDQ2dBkZlTNKo/JIq00IIFnnz7Ds08+wXvvvBttvyxL2z1VuMJYCmVVRvZvDW26SQcugu3NLbz/4fuGxBSy14b29/5oEx/ux9fh3/3aAf6tn9vG518p8F/8bz/BR5/F87df/8+f4PbW0Hsf/4YUBCSaxA/QtKE1vxtqvUWoEoqM6o3JqDrbQDH7DKeFhoIkoyxqEqUaGhkVIACVLpFRDgKQUYGQLBqJTQB+rsoE2Dqz6HR4DcD7wd8f2Me6Hr9RaNrQhsx3sixLZ0n04P69+5H9IFT4AGbQ4MVXXceSYkEyHXC9gLIIMASD2y+MBPvw6NDZOoa2U+ZJTzuzKAuURb57WZgtBCSURT3tgEdFgeOT4/nKImhHyDWJPN5XZUO0293QvA1N2GDbspohy7Jg0d1hQ6trFHnRUkiwxL2qKnz9m7/feS6Z7GlOOmoOuA682GEljgmwpTKLdNwNTSu9DrgeCHPu/H8P9co3lWfzwJOQeWSR1p5gTu1P6X4i3IQt2/yLcPHU/A0Jcz2HhGs4eRJCtBYSvJ1QWWQIpDBY3g/4FJBIKQWFINN2PhkkGSCTWUd3xQ4bGrVtaIsufLM8x3Q6jZVFbENbcKxYFhepLOq2ZrdVo9tb2y6gdyEQdV6fNwXL5z0tuB/CQoqHs1B7/cxXf/pMfzsckjzXhqZZOZlh81RkkYgJdiGjPLcuhMfH//p7tl3IdTQIWRQcHtzcP3+5+RAbWlNZ1EkWNXOIvMqqrCqMRqOo62tUQI26GGtbCIgJANVBFs0LuR6iLNKnJItqOz8eWlS8SggV8E30k0UAQMhkFoXIe2UR29A44NrbD8PmHB9+/FEyc2pW+gJSl7KI1UfNzKLIhmZt92yPA/ptaH/td3aTj//Vv/UMT/frFlEEALc2Fvgtk+1Wpi1ZpNtqnz5lkSagyRYJVUHo2vVAA4Aqm0DWJ4A2a5ZKTd3+F4GGRoYc0uYghdeDgkKGHHfFE9Qo3ZpcIgeCMT+jMXbEfZR0YrfJyqI1WXQapL7JLtFw8ldMRH+BiL5GRF979uzZig7rciAM1cPARcK9O/fw+c+9tdB+Ht5/GNm8mplFbO0C4Bh0hhDU2Q1tkUkzt8jm989mUwgSePdL7+IrX35voe2YzCLVyCzy3TT6M4vak7OuiQ63ucwSg37ThsYLzNS9SwqBqjLWMkcWOUuXiDKNhDAy5TyhLEplFrXIIpsrpC2Z01elqut25pH522bWhCHeQSCksPLuRbuh8WKrZUOT7daza7TBmSlA3ClvHhapRLpcnsb3n94uZxY1rAONTIUhagxWN6ZtaGYiz9e3DDqW+cVUbFFgS0KoLFLah8lGir7GfYzbQsfHIHB0cjzXLhved5qfoes+E/4ellGusLU1yiyykvqztNKE8JlFF6As6ji3zUXuafehwXbxU2/uSkIkiiFnAiIssoY1c/rVfilnTYrxwjVlQ4tIB6tcefXhq3j0yqOl9ydFaKuyNjQxtBta/DsKydZUA5RlkQXq8NT+m1bjvmPlY+v6fEqllEWcWVQZZVFg/2/Z0NzYZgsQKWVR4pyERc30cSmcDFQWLUv08Odh5eV1AivxUphrQyNClmX46le+6h71mUWGYMuyzMYv1NF8WGmFvf09lGWZJDTLsnRqMm/frPFpkE9VVZVbW7mj0rENja8306k5IIsSNjStNT6bps/FD55V+H++dZh87rPDYYp1tx8SgFXsJJfxPQHXrcwiXYOgQLazmrPPyQ2j8qmOoVCjxLF7/0LHCgVJuSneUayEMs8V2BDbAEy4dY5RYiwg3JGPDDGmtQ+4XmcWnQofAHgS/P0YwEc9j7egtf4ftNY/q7X+2fv321kJVxmhZ1zrYROUVYRMekacrQqhrSOuEvUGXC+gLJJSOhaYCDg8OsJkMoEQYnDoqtmOCDKLYmURe4kJ/hydiiyybL2coyyyX54li9rbEsKrs5I2NGerM9kbs7JElntlEecZpTKLjA0t6NrhJNFmYOHOZSmEarL4cWtDkqK1bXM+jLKoXlBZFNqhwsekkOtuaAOgtXYTUj6HQ6xo4Xc497VBkPlwZdEcGxrmD+mxsqit6tFau2swkxnqKrZemk45sbKomVmkgwUCf7Za1a0sITORblvhjo/nk0WONGncU/i33f7csWd/GbIoc2RRMGEkivKKzhrn0UGqC0JQMsePT+MqiIQ4s+hmskVEtLBFcqn9gGIGdS68+uSqgITwmUXNUOYgX05bMnsyngzOdUxBNK27LpNuuA0NRFHByzxEK7WhffDRh/jd3/tHbkwJ9y+FUS50kS1sPWb0dkNrKATD8GNjQ/PzqmZmEQXnzZAT3HUzIIs6su3M99tPFjXVJa3X6OHFnxRMMVVeT2WRnmdD61KapbdXFAXKcoa6qn3AdV3ZwlO8xvjwxx/hyWuPUdVV67zOyplbT/Bv/OjoCD98/4fuNWVpwuNDxbjWcYB6bdcJRVFgZhVMXTa0Hzyt0TXzEgT8zd/ZSz7XH2idAoG0BkG6UOoQLtMHFBFH/N5w/iOUIYtJ16bjmd1UlZl8ARNy7bVLi1+9GpLsug45FOKIkgw5JOUY0QZKTFEQN14KjpsIOY2QUQGFGseTh9jb/jwUcb7RzcKqZnx/F8B/QAb/PIA9rfXHAP4vAH+OiG6TCbb+c/axGwUKqkhDA65Xs98+G5pqVFFM5Shc6Bgb2vDMIsAoaMJuaCfTk0juORTOttUgtaSUqKvaDYTh8YcThpZXnaizuxEvQlOLrkh1Y9UQza5zfjtenSWFxBffert1fG4CJ03AdW47hBm7kUaeNbuT6cguBoSTQK/E4Nem4L5z1SSLjOzaVCN5ghna0JbLLHLXejAQaq0h1ja0QWhmFgHtTmQpeHXYAMtarRx5EgZ59m23bhxDS8k0RFlEobKobeEyv3kzcQqVkEyyGhtaEHCtOLMo7FwTdkMzlfZUVc6oqtqE1fHJ8dxsNa5OtgKue1Q+4bW/nLLIHH+Wxza0FMl9VvBNDC4i4Hq4DW3pfSD8ruG3AAAgAElEQVS0oV0tYmJVMNXYm2FDO2uwDU01CA5WKIcK0kWKcl2QQkAFtvNFuqHx3gURRqNxTMj0dJNdFHdv38H9e/fd3MbtP5iv9lnRVGPs6LKhaa1xcHjg7HS8bT7npVUWhcW05pw4GlMEtVQ6VYcNjYuDXWCSqc+KdtrMotqGNdOCCr6rgPmZRen3da2/irxAWVXehpZlUTc03q5SCvsv93Hvzj3XJCPEbFa6cHq+1kwh13+HhvQpomD20LWgtG+EMwpsaLOZJ6IA4On+Cf783/gj/I+/eYAuKA3sHaWvn2/8Sb+yrQlNAgSNnNI5XJotXwmblqY4s4jJIvOvBlMRtTRrRVkdNXJnF703ks1WAjLkcQQAFDJLJG2J2yhxghFtuPeF2wAACaOkqvItHGy/BYUaY1reKnxVMWjGR0S/BuAfAPgSEX1ARP8hEf1FIvqL9iW/AeD7AP4YwN8A8EsAoE2w9X8F4B/b//1V+9iNQjOz6NzJokApEnV+EI2BMWC3zfttN7QFjlfI2IYGYKnARvbetwKuLeNfVVVU+RJ2wtB1nvuURYCRXM9TFrEqLJV1wq8NpdoP7j/w1TJ77lk+a5RFM6duYEWF6cIQB04TkVP58GNCkJFEq8Cy1DGpCK2HzcddwHHtJ0VedmvIxVrVva3Vm2gqi3ii3NfSNIW9l/v47h/908Gvvy4IySKubA5SFtnzPERZFE6MzTXe/b346mqzG1psnxxyb+Ow/9TCj6/9MJPL7CfoMtiwoXHFvqtzDWcWpfz+WZa1CSshBimLALggy+j9c6xS0XEvrSyKbWjnlVcEXAYbWkpZ5KRFK9iHt4HeVLJIiLRyduVY1IZm3nRGB3M2cCqHRPxAWIhanWrHzjNC5SjR3PE7XESPRiPc3o0zUDjHahW/idu7t/Hk0WNr9WmTRUC/FS1pQ0sQM88/ew4iwq2gG184F69sZhF/B03iJ+xizAQVUdyxqizLZOe6sAtnCkopbEw2euMDmuPropjOpmaMWzhI/vJjPlnUcc46CGcu/vA6wWQWxesPjo6A1jZPqE1omswicz04otjO+xmmcJW5SA1zWGynN8ICLpixDU1r20167Oclv/xb38Pv/+AAv//9bstmFwQBf/rNxRSM2ipBCxoj1JHXusJUHwXdwtKEcmhDI126x0jX7hklcijKkFXHJiNW2+94wfsOhWQR5dCIrwcmiya0DYkcOY0T+7HrZmqSTRqFuHlk0dBuaP/enOc1gL/U8dyvAPiVxQ/t+oCDW/mGfd5kkVs4BXk/rSpKYJcKj7uu64XCTJuZRQCwsYSyiL33da2iBYLrJDabReROKOHkCUGzMtY3GSuKojOziKsHjv3vCAAVQqKsKkzGk8RzwgdcC2FeW5YRWaSVQp7nEalTVZVblNbRYtgqi6AxrwJVJWxo/FomomIFB5OLZnAkorky9hAtZZEd+BaVQ0+nJ63KzU1ASBbxIDU0s2hoiHhIFg+2oXV0Qwu7kM0b1Pu6oeVZhqosI7Ioyi6TEqOiwDSoxhqySFhVUmBDizKLFMqqjKpyAKLJGoOIMCtnw8iirE0WsWqwiea1v5SyyB5/qJDa2tzC40ePF9rOacD3i8sUcL3KzCImMG4yWWTUcWe/uFzYHnMFvxMmF1TDhgZ4mwqwQrKI75eRclSgbARKN6E13L17c2MTb77+ZnysZ5CLJqTwatUGmdbXEY2tx347bRua1ho/+vB9PHntSUvR5ZVFphtarYI5cTDXJCGg7Hlzdufg/ccnJxiPRsnzwsXLLhiyaNKvLOLizxLKIq01Pvrxx3j98RObFnPTyKKOgGvziuRzRV5gBkO8mMJV5bLEAPOdHh0fOdVdnrWv0bKcYWfbZOGwBVWpOMaB7WTSNskA4rWFs+KTQFGMsP/ypSksBw2C/t/vPcP/+rs/AgDMgp/27VGFz6bzl/VKA//n1w/xi7+wi7vbA4tNJCCgQDBkGJ/hGiU0FLRVHLU7oQFdNjT3367gQ6iyCbL6CICG4FDpAUWC1povUhb5808AhKU+RrSJEU0CW1mwH143I2uRTTmWaJ5xxXEz232cM9gudN4T0Gabd14chQHJ7hhFmywymUVqoSqyDLuhnYIsEjIdcM2fg6sm0eNBNacpNxWiPwNqc2MzuUBsBVyD3KSh9Vpqh4Q3t8ODHCsewtblSlsbWhD+yCHe0XGooI2rnYgCPcqihA2NOzmxEqJ2hJMOiEOJma2CRNaoOWgpi4LF/yIB16WVAd80RGQRK4t6sg0YSilkMht0zkKymKifLFJKJ6X+zW4tg5RFtnKWsqFlWe6+85CwrO1kSwiBUTFysmzAq4hE0OWGJ1qAt3+WZRl1EQNMhlvzePnvIWRRnmUtpcsX33obt7Z35r63aUsZAr7fhfe9PM9x9/adhbZzWmQyuxBl0dbmZlRZbWIlNjQm7q8gMbEqGAXJ2U8NqbGAmIfQKnVVYNQp1oZNTWI5VK60A/iX2p8t/ISB/vPu78D8e7ch7ld7Tcgga6g5X8vzIioUhWHQs9ksUommxibuwNu8Nzryzs7FOAvSqZ+j+W9gQ2vMuQDg+OQYk3F6bitl9znnxyfjCaazPmWRsoryxYmeF3svoLXGnd07i5OyVwB9v5fez9tznYcF4yzLUJYltFaQwVziOGh+kedFQlnUtqHxtcZgS3xaWUTROmFkM4tOTmJV0d/7J8noX/xH/9wL/O5/uYV/++e3058/gNJ6odwiYyXTyGkE0gATKxoaAhI8Q023lm+SRWXwjIpGgUpuIHM2tO57ktYatVUoKa1wiM/8906wwdaApKJBlnrVkSCBO+K1ILMobUNrvj/rsOJdZ6zJonNAFOp6jtMd0SBtZGAraoa9erIoDPgjO4guoCwKbWgw7HtXu8fe7QgJlbChAWaRdzKdtlrdp4id8Lk+suiNx6/jwf0HrcejbUK7iXSnDa2DLOJcIK5UCGcBku48qy5lkV2UNiXrbuHtrIXdZFGRF1HmTNgNj881YBexQWYRK7gWmXA0lUWhJH4RhVJVlddukjMESbJoYMC1lMNCxLlTDhBXuNPHo5BleVtZFBCMfKzz7m9sF0vZ0PIsQ1WV0ULHE9zaZYtVdRVU5JT7TargnDlVpf3dlFWVUBZlrd8xX6fc0aQPKWXReDxO3huaVmR+bBFkMsN777y38gr/omCC+7zxudc/h63Nrdbj4XhzWnDo8k0mi5h8PWtQI/9lHoz45Wp9J9STBxdmCa1OWWQyi8I5Xkikd2LO9c5q6FUitVhmFHke2Y2/+Z0/wOHRIbTWOD45jgqQKWVsVdcoiiJRDDD7quoqaitfVVUreyhlbY7IomPTvCUFYzFMj9mOCBiNcDKd4uOffIynnzxtvU7b4s8yHWQ/+PhDPH70mrMOXrd51GmURV1XeWHVPgCsRXCK6WzmlUUkcHTs8wzzPMeslVnkiUy2mSqlohzJsqqQNcgi7urK0R/8vRVFgWk5w/HJCSaWLHq6f4Jf/0aaLHq0VUJThs8/nL/mKmvgWz/qVra1QSCtkNEIgA+lJgCSMlRk5zdDMot0rHSsA+VOnU0g6xMbicHfcftbm+EYJczxK9QQIamjEdnQGh/DEUkAcEvetx3eMNeGxvPWDDePLDq/sIMbDF4kn3c7Xm9DCzOLjES5PTAmbGhuwbVAZpHwbQqFEEvlFZlj5VbzdWtQkDLDdNpWFjU7l7VtaIsPmC0CivoyiySq6TRZgePtuBugPRZuXc7S0zzLXfcDwPvoZXNiGZAvXsqenpzUduIULvZDe5+QvjKnOQ8JpkpZHh85AlBp5WShfUgri9qdROahKtfKIncO5wRc83syKQflS9V1HRCW85VFWZa1M4usd9993wPC+x1xnnhtlueYzWZRpxOTm6UCgpSMumg6w2Qy8RU5QZEdjglurjqX5Qzjrbja1qUsGo/ShE8TKbKoD6cliwDg9q3d+S86Yzy4/yBptb0orNKGRuvMImOzVuejLFpoDat190rvkoJVPak5QzgerjyzSKmGzbj/RM8j+ruy2E51rKK9WGbkeY7jk2N3bGVZ4uDwwCyg8yKav4YNOhi643zy+FOVlc2sM1ZnjgQIIUJrczD3C5VFO9u3WvsA2BrXrSwSQmA8GmNvbw8v9l6gyAvcv3s/OgdufF1iDnRweIAvv/2O/czXkyzqskL3kkU9VvmiKJwtUAiBnZ0dPP/sOe5YdZoQhKPjI9y7ew8AkiHsZTnzyiLhA65D631Zldje2oIU0ueTBtdXXfs1T2HVSycnxxjbMfeXf+t7nQXB17YrKCHx7ffbijUpgH/nvUP81//iR/j44b8MJRcjPDSEIYaQWRURn0fCmLZwID6DBg3KLNKqeXz+O6nFCAQNoUsI7e1pIZSuzf3T5nEpVMhgupaRNiomaekNARnd2bSGey51lP4/rciC/GsVauQYNj+8blgri84B7uYV+MLPZb+ioSySXlnU7GqRJotE9O8QhDa03Vu7+NIXvrjUsXsVVJxZxJ9jOpu2MoZCO1Vzsk+iq5NOP1JkUacNTQhUVdlrQ6sVZxZ5Ao+sHF0rjTyPA67rILMokqy73CTtqhZ9NrQij7usqaDlaygH5zwk87jAzE6iTGeQgcqiJtGhtJdwLyCpLqty6XDHqwwmU/i/s8Db3gUmEOephNzr6zizqI9g0jZ4PdUNLbS9DVlgG+uFtiRoPGBHyiLRILiDx0ZFgaklVMNgSKVjcpI/mwkirQZ1QyNBg1tXj4pRS63UhfC8pCwpVwmPX31tkPLqvBB23zz1ttY2NIyKEUbFOWQy0GJZKuetzF4FjJW/7pwvcGfIVV1vUdSACGxoc8aEefufp8xe7liFH9caStM8UBbxOTo4PMDR0VGrAJkKuO4i35gMLqvSNQoQNpuxOSemRKZUrCw6xkaXsqgns4jn3+PRGForvPeld93na34G2UM6dYHzl8IuXteNLOoiAwFPCHa8s0dZFOeW3r51G0fHR9HaqK5r112v2Zm1rk1Qc9gEgh0DgJ8P99rQbE5saKPPZIb9g5duXvL1H71AWXeRRSWeHRB+6w+OWs/VCvjb39nAsyPZkSvUD01k836MIICPQAPYoB2QJmgS0EkFYmxDI9XII7M/fqVrlPYLEqp2FsDmpy0xxT3xBAUmUKigoZFRDoUaCjUyGvlzCImQBCJrm0sjWP/a94QFcoUaI7o8hbLzxNWdsV4hCKIgp+M8bWh2sBBsQzM3u2a4NeBJopBQ8V2xhh/zztYOtrd23DZTnSIGHbsNLUzb0DJMpycdyiK++SIiiZed7IQTOgaJdGthIciRQU3wgrauKghBbmIihWgpi1y1TalkZlE4cVFKRxMaANjb34uOl5VFKlIWhWSRD5qMA/0kZuXMKTAGZxY1BkdWU3GlZSjKqlqoC9t1QJNo01pDZrJz4slgNQ4NJPXqgCwUcxYTSmnkWZuw0jqezA7OLNLd3cnamUV28RNIkkejkSOLlOIuNZQ8Dl5IcKhkc3/taj85mfk8PH70GK+9+tqg1xLi7/SG8hBnA1d8XMVJDQKurxgxsSq88uAVPHrl1TPfj6l1LEgWXbAFc1EQmTlB6loK5xZdauVFEdrd/SJ3sW5oKZydsig9doR5MJXNcDw4OMDh8RE2GxmYIpEP1JVpw9b9qq4gmSwSvjNttF1qqlW9skhrjaOT406FZagEb8J39szx8z/z89jZ3sGDe/fx9JNnrddlMlu4YOaJh+tLFvXb0NCpvNE9Bfvbu7fx6sNXg7+NijckXQGfZ9gMuDad0PJA6erzsQCvuPcB1w1lHYwNrapjN0VRFHh58NLZ0H7jL/9Z/OC/+Tfwt3/pz0THnwuN+xs1fvV3jjq/b6WB//Zrd5Ymi4S2Vn3zCe1+NCZix75GpG1o1t5tjqGG0HX7eZiw7NIemlQVhOY1XqA80hUyyrEt7mFEm6hRgwCMaAOaFBTqIIMIEIEyyBRi0U0WhddGQDbx/VtRjRFtdp6j64yrNfJeUZC4qIDrDmVRnVAW8Q8juIk0bWxDcHv3Nu7duXuq4wa8fcRUVxo2tExi2uiGxu/pWrhKKVuvHwJB5jiaFrSuSiG/J7ktYQcC8plFRrXjQ+04s+jw6BD/6Ov/GC/295AFIdiAD6H2AXqca2Oe/84ffjcaxKq6splFDbKIjzfoJmIUKny9CCfPnkcohFANwiNVlRuCqqoWyji6DnDnJziHmcwioi8Fb/XrzsgIYchCv5jotaHZzKLmMSilIpl8j8LbgdvJmpbDMXmTZ3nUDQ0IuvtEyqKR64imNQdcC4TkZEQWdZJTeYI0l07uvVI0lEXn0pr8hmCVY6pTa2q0uletsVos2tKbc2OuEjiXKHUthZkmqyJihDTkeB3Y90PVZRfmEdimKccZZBZF3aCCBXKg2qiqCqNihMPjIxweHbaURSkbWreyyHeQ9QW7DhuaCHPwVEQWlZXpEtuVx9ln7Y6JPPPvg3sP8OzTZ9F7zPi6eMB1sxh8Lcki3d14p1dZ1FMEGI/G2A1s3pPxBOPRuNUp2gdcN8miMiqOs4raFbDt91iFyqLw+hdtGxpgyCKtdau5w7uvxo00JpmCIOBbH5QoO6aLpSJ8/cdjLOPn1bavnv/bEEWCJHKMIEhimt/CLNvCVB9ipo/9m8nvsUKJQpu+atELAChoaGEzn3SNzBFP/rUVZrgjXoMggTFtmk5sACa0DWir/oG/R0hIr9SHhqR2kbB5HCEiYkkDBQ1Tnl83rDOLzgFkuyqcd7WyK7OoThAwfZlFFzFpbnZuCxF2LAgRhkA3z/Wjh8tVSnmbYTJ/X2aR+beHLGrY1EwekA9AZ2XRy4OXKIoCn734DLe2d1o2NK6wmnwNrwoyHuk6UiFpra2sO5DMqoayKBi0woW6OcbMEJ5DbWj8HQRt3z25NbxKxpakm4SkskgOUBZZu2bYQr4PdSvToseGZkmh5jGYyqfEiV5AWWQtbyzFDsHKorAqKhMKw9FohJcHL+0+lZ1khb8P3ZrgzcpZa393b99pZQC98fj1lVfQgXhhfJMtTmeBM7Oh3VBl0XnBLNyHQy/YbOMyQBC5wNrWc8LbVFZ1zwmVRVwMojn3d2D+PWlVyqcQQvrGGk2yKrShVVWFkW1R/+LFC7zx+I3WsTWtfKEVOfXaulZBALi320evFe0xhd9/fNytKuJt9sUCNCMRxuMxpJCYzWaOFFBaQQ7sbhptvxEzcS3JIqU7fzNzA64XuIxfefiKsxoKIZBlmbtOmgHX5WwWkUWsom7OxcuqaimLmIoxVre4Sc6oKJDJrDV/Gefx9bo/k9Ag/MovPer8kHc//TpG0+f4iN4ZfhL4CIkg7KVIXAiGQgYTJL9Ju/jxnS9BkMQD8QT76hmmOEKBCUIbmoZCrjSUnEDUR3bbbi9QNpBaqMoV1bX9PLWuICnDtjA5UgWNTTc2khjTpqWzNAoRKIsCmkND9eQVATFZxIoyGcQz3cxOaMCaLDoXCCKUOh3qetbI87xl6QjDbd0xpsiiOUqZs4SwBEaqcxsrhFKZRc3OZf49y1XFuAVqOJkxmUWpXCKvZkh+JilQNrqlSSFdu0yttc2GqXFweIhXHjzE5sYmRsUIJMgTOjy51CavSAWkDH9+fi1Xmcx3H3dDczYkKV078pCc4/O+jLIozDhSdkE/pMIZoqyqazfJmQdPKPi/+Zrog1MWDel8A29NBAYEXHccg9IaMstaUv0+OGVRwhaWZ7npSpPJgOAWSWXRJ9NPo32Gn1srHRHcfO22FgNErceaBPTKQN53vyaLVgui1amLiDgsXq2/o7MGeWvCEBjL6dX6TogIqk5fSxw83dcGfFG4bMS69sWrAWSB1uglR5koWSWkkJjaxbZRpfrtcxaeUsp0hJUSo2KEk6nvCsUwodc5prOpU310kQkhscR5KFIIlPNsaMorP7TW5jg68or4s3XlDCqlWvNvwIw9bLnj12VZFjU8GYKWsmhBBd9VwNLd0IbInwM8DmzmguI8wyKwSgKmIBWqpXmuUytf5FXWkiqEgJTSvZ/vbURk3Qf+GIti1FIVMW5NJPaOPeH09Ljo/XzGJrbcvcYke+jobwWFERkVz8PsTTzQnwNgVIKbYhc/rL5p1w2s2LXNj3SNOtsCas5WCpTXwszBpKogG3axGiV26aHrZpbTCBoKI2w5EodAyOGjBIy9z/7uoSHRkzMZ2dCCzCIba0Ia/e+/xrhaZZorClZUXMQi4We/+jMJS8fQgOvVVWwXhbRVp3RmUZeyqNuGtizcNoOShMlISb82/LcJKSQqSxY5VY+UIJslxYvXqq5wcHiAzc0t3Nq5hfF43JlZZK4r3w2tDuxkgCGNMplFnUcAoKp8wLCMsp68ZJ4nm4tmFjGZ5ZVFemEbWhj8ed0mOn1IKYuywCbYBb4mxEBlUXgPmPcerRTyRDc0bZVFrmPMwG5oVWUmxCmipqqrSIYd2tCYoB0VQWaRtS80O9eEiy8hBfIsv5D7GINbsgNrsmjlWKnqgay4/mLGvZsEJuaGwqher9Z3wjmKKXU2qyFXqSwy3b3iotS8YgAwfxFtChFnEHAdKovCEFoilwljchtzbG1uYjKeJI9jY2MTR0c+1Lc7s8h2kA1telIaZVFiTuyaJmgVKYumsxlGPSH/Q21o8fmQUXMTP74uqCyqVaRcYuvddcKyZFFfwPU8CCFcuDX/DcBdw7PZDHlwTbCKOoyPMESheV8WBlwj3Q0NACajMTYm6a7SX3ni83MkAf/d1273fgaNYWRROO/WWqPSMxNwHZxXTYBGHRMzQSE9oxwbtIsapVEGaUChQkETkJpByG1fQLPfGYFQW7JI6JAsIneeJHmyRiKHpBwFbRgSh4x6KFT/EBEkcmtXU8ioj+xpW+NcoLcjm26mxmZNFp0DQpvRec8/oxajduCp6nbANd+owpuUD7g+/8uE20qmOgfJHrKoqxvasuDJXrg9tr20XkveA9+1LfbmhxM5wdUEIRypcnh0iM3Am9+0oXFHNhOM7ZVFPPiE/zplUbDYL6uZU3YI4W1OYUWOJxzcDW3opEVZ65QbbAIbGjBsgcDdSjjX4abASGpFNFBL2baANeGsfmKYAizOLJoTcK01sixv29B0HMA5xLpDgjCdTZNZD0RkCKNgoeO6oWk/AS5Gphsa31MFkcuF4+MKf/scJnqRoFBZdAEK0+sMrhyuZFsJS8saZwO2DAzFVVR7uYDrDmWRXrENDTDkh+nu5YN555NF/eeWSLSiC06LUO2cuieydb6qKmSZxJ3bd/DolUfJbW1ubOLw6ND93dVa3ec8+kW7URaVbaV6cN50oPzQlmzqy3BKNUZh1Eq1bGiAmc/WVaAssmP/oplFSsXOgWtpQ+tR4/Up6fSiPrQA29s7uHf3vvs7JDQBGLVZoDzyxCTPj3w3ZABRAdcppIlaNrR7d+/h7be+0Dqep/sn+Nr3X7q/a03437+7hU9fVq3XBgeFIcv+EieYwvyeKppCUgZBhVMW8Z1bQyPvyfDZoB0o1O49NUpsi7uAmkKIDcASNwRfXNYkoCAiZVH4bYat7IkIY2xiRBtm/mizk5qEThaQRX3KoHj+6gOuzWc1RNNVG4NWhTVZdA4gMkFnFz0BZTKoLGfJwUpQ3DHswpVFgYImROZsaOmAax4oVnHc0hIpEVnUUcmea0MLSBgpJKT9bMQ+ZWbkZYbxaBR9PhEQjk2lDkul64AscsqiyIYWkEVBK3EpfevZcBD2mUULKou0ycNxAdfa5wcM3U5Zmmrioh3UrjpY7u4GTq1NyOUgG5qIpPN9MNXHYZlFyiqLWjY0xZNZ+5sbIPEWJDCbTVv+e0YWdKgBvHVWB5P/TJqAwsraFM0kKwwjjW1o8hKQRaHlRl9BO81lxirzVMh+T1eRmLhyIFrEheZUhFcJbs7Q0w3NNKxY3bXGgc0iaGAwz5pc13WLLImPlZzSeJXHGQdcx+egsAHChizKMRlP8MqDh8ltbW5sRGRRV2v1iCwiHv9kshsaCd8swnUbRZB51HM+QmKpCaNqStjQpLehOauclAt3Q2t1O17Q7nkVcDpl0XK/tVvbO63mPWG21vHJSWQXY9JKBZ2GQ0VbOCf3DXSsy6CxDkuNRb/8W99Dk0dUGvif/+8XnZ9hOrqL48mDuZ+VFTy1LqG0wkP5FjbF7UhZxBROn1JnLLb4U4BTTDfpFqCmIDEGiZF91qh3TBC2gBIZhKqS3xU1aIsdcR8Tu5+CxigwaZ0vSbnJd4XuzxwKx5dgvSdIQDVUVDcNV2vkvaIIq5XnLi1qQNp8mlSGDytbGDwxuwhlUUrpxAgtXCFSKqDTIqwQ8TZFx817vg3NB07meY4nrz1x2zPSU3Kfa3NzK3qvu2EFsnWvLPJdqeqAOALgVGRNG1pZ+W5U4aQt7NzSyiwaqixiG5pTPHm1kqm2zN9OVZXIbqiySIollEU29JwC6XwfwoDzuQHXgVKs2a1FShHd3+ZmFgnCdDbrJG+YROLtcHvluhFYOhqNnLqIrLIosmmGNjQhOsmp84KfKvGid01ErApE/XkrC20L5nqfTmcu02uNs0FozTw6PprzaraXXq3fDd+Hkt3QuAuqTqtgloWUEmVVBplF863JxurVba+gRiFxFRCJxXKIPC8wY7JoTidboywaZkPTNkcmVBYZNWtbWaSVjsY2Ll6luvS2Pl/HuFp3EB1ZJlFVQVdaIaIOv0PR7Ha8qN3zssORfUtlFq12CVbkBWblzORYncSh586GpkOySDXIIk8OskK6atjQuvD1H71AWcefs1SEb/2oO+PqaOMR9m71h1vzubsjXsUURxiTUe4YIsVeixoAhFHb9Ch1CowhyCpztEZOI+Q6M9sRI0DYnCGS0DBxH4IklMghVAnh7GcGBGq1vd+Rd11uUoGJ++8QEjmUPfZQmdSPQJ2ODDWqXhXVdcfNNNIdugMAACAASURBVN+dM0SgjrjoDitSyGTnB8BUZ8JFlSdHLoZTZPtT+/HMqQtCpIid0yIkZLyyqEs5NK8bGj9vSLDHjx6b7bnMIj+IbG1sJt4fkEXW1qW0BrQPhPTKotiGJhq5N2ErcafecLaehrJIyIUUPmxD42waFXSxGaosqiqjfJqK6cKVtasMo4qJyaJMDgu4llZZNO+1QFx9nGdT4Gs/VPv5x4Uj9Ib87ogIZVlGQZAhmCB0ZJG1oTUrxaN8hNls5rKMQuVdE0LIC1cWUaSiWJNFqwWtbAFARCirCrWqo842a6wexpppfrNf/+bv41/4uT/T+7toBtdfBbjCS6q4xPfNFdvQ2Fbli1PzCzRVVfcSMndv31l9ZpEIM4vaSj5uTT6PyAJMm/PpbOo6gc3rhhZ2iwuLYiGa9mwiAoFDi9PqoNbnUzWyxjIr3Hf0+kBZ5DKSliGLVB0RWfHYc/XhVTjpe0FfoLd5fHX3EFa07WxtQwgZXacccK1UbYq57rrzxe5QWQdrQ5vV9aD5ym/85T+L5/XH+LT+ADvTQ9x7/g0cjx/g+Z2vzn2v1go16qQqSKFGTmPcEg/wQj3DbfmquYYgAft7IGhsitt4YTODukBE2KBt201aYUfcA+mp5ZpG3oZG0il/chRQlEHoyrFEivz3KXo0LpviVvJel1MBDQUCUFB3MH2snwkaESHDDEc3mixaK4vOARcZcN2ElFZymxjovvLlr0Q3KeHIkYs5ZinSZFGeZ8jz9uTBtbkfkJ0yFBwYWdd11KJ5GWWRe75BNoWZRYBRTexs7yTfH1YiiYSzTGSZbTHesqFV1oYmom5oYevyTGaRpceRhBzEl2Vu4BsCF3AdZCmFn31wZlGeRYqRm4CQrONAPfPdzsss0gspi0IpvJyTWaStMqypTtOuA5t5/5AsHv5sXUqfPMuj3w9Xn5WOs8vyPENZleDQ23AR0Px9XobMIgQqiqvY1ekyY5U2NBC5ttjr7+iMYRexoV25D2HR4apgrg1tjkpiGXBmUTjmzhs/5hEyt3ZuYXtre2XHCHDUgBlPyqq9/yLPUVaz5HNNCCEwGU9wfHwMYH43tGhOItJKdRLkAopFQLyxtShF+MTHlB63VYdyJAuUJq676UBbeYi2suh6WfmbyuEm+gubq82N3dzcwsHhAY5Pjlsdy3jdV9cm27F5LfXZ0BYu0NvXKxpmFa1QosRx8rkaJbZoF4IknmTvYJN2/T6077xW0ARP8i8jQ39RZYN2oclQdFviNqCmdnNeWSSQGeUPARkV3oamzDFWNvQa5LNhU5iIbWzKW63HjQ3NjB8jpMPC3Q7cfwZRBvb48j4L2zXH1Rp5ryjI5mlcFrKonM2SrTubcKTBBdjQeL8pUmsynuCn3v2p5OtrNWzRuthxSNetzPzdn1nUtW/ZQSa5AcK+/90vfrmfLLITCR+g57NjuJuGs6PZLAK2mrH6Imxdzl2ozCAcLLIDpRNLaodA6YaVKtguEUEPCGzknIKh5NJ1QUjY8XeVyayzDS/DBG5ahc3QzCLpbZF97+Eqp5QiOg6TtSECRd985SRX2rvImyzLooqwFAJVXbXunVx1Ds9XnuWYzWZtMvYy2NDCgGutkkqDNZYDEbCqFQCBcHR8FNkJ1jgbhKpdAHPHhattQ0sQF0HxZ5XqbSnYhubnG/PG0KqqIOcQMqsGW4y11lZtGi/EOA/GqIznH9vGxgYODk1uURcBJxJkEc/LkgHXjXm7yyxS861C/Ta0RGZRljkbmrbFn7Aj21DUSkXEV5/S5iqC86O60K8sMq9YFbY2Ny1ZdNIaM8z3H8RENAOug+53fG/zkRSL3Q+0Xcpz2/n5r1et7B//nMZEGGI4o8LPu0jC2dBglFAFzS+qbIs7GNMORjQxqh5LFkGMG8qiGhKZsXwJCalroNqHBqESdv6mdedx90FCokKJDbrVf7zRc+FaKIMGesOxrzvWNrRzgKDhmR5nDSN9nF8VAfzC7sKURTZYOYXUYvMsbGi83Sogi4iE6woQv04mA7nd87w4T9jn6rqaWzV1ZFhgQ9OsLLK5NlypY4URV5l48PHhjj4PijtQNbMTjKpK2syiBZVFMgy41sjZ8jTQzlZWFYqicLkONwURWYQg5LKerywymWPDMqHqoJuLENSbicSBzM1KKU/a+Dsyx96/X77G+zKLwom0lBKVrZJHZFEWk0UAkBc5prNpy6ry6OGrl2Dx76/7y5Bdd71AK1SSArNyhsnkoq+X6w/iJK/wd9GDyzB/WhR9TUKaGYSrgpTCKi6HZdIBRoHcF3B9FmAbDqsrmsqePC98wPWczCLA5BYdHVuyqIuAc2RRHZBpHcqikFji/M7g/akohxBd570r7yiyodl9LtKFllHXdZS3xnOJ64J5v5e5AdcrvIeMihG01th/udeaY7CySCnbNVZpAO1uaGGercksqhYni1iNPlBZpG3Qd/OeyudtRO0YDMAoixYlHgVJaMp8yLoji0YgUUCDlUU1CkyQWbJIqAqo9qHkBrSzobUziwYdAzIQhFdJdSJNFmXIIEAL5B1dP6yVRecAVlNchsmO7BgYU7jIgGugO7Oo8/URWbS64xAuU8grrVKVwi4llH8+TSYNrSZ4G1rcDU0pb1WqE8qiMBC8rmurKiqi7fJrmxOs9955F3mWg8i0+R0CoywKyCK1eGZRWZVuvzeSLEKgLMqGKIuYQJwfZgrE18XcbmiWFGp21OP2xGQraIMCrpnY6bKh5Q1lkZQoq/bkKc9zzKoyyhIr8gIn02lLfbB7axej0cV2sTCHZL6Xqu7PB1ljMay8GxqAyfjmZhOcF8g6M1lRNNeGtmJS5Tww34bmlcKrggzsxeEx9I271QCr16rh5iMJVREQdEMbkFkUvh6YrywK1T1S+sV7CL6v1MrP/WCJl3nd0AA/b2xCdaiSskbOo7BK4UUzG5W6ATa0nt/L3IDrFR4LEWFrYwuffvYc46ayyCrTVG1iIrSOiWGew4cFbu8yWI4sUguQGWG7ercdaEjKWq3nzRsEYJvI8xaGg9z7tCOLCsDaugRlUNCQNgOpJgGha+jqBZD5Zj8aujezqAuCJHKMgu5sfcfJ/xnMQym3NNXNVRZdrZH3iiLKLLrogOuOTmIp9FXFzgPN7mxDXu/sMCs8ZpP3U7l7x6OHr+LRK6+290/p7m1uO3bwb4KscmmeFJ27vUVt0q2MPwy4zvPcLf6rkCyyVjSTVxQPBlmWGQtP4/h3tnesqoQGkRCAURY1O3qJIOhziEKJpedDJPTXCVFulPadyFx7+g4oXTuVj9YKtarx8U8+Tr/WXhthx7Hm9mflDHv7e+71rDILSStWuAlLJA4KuBb9yqLMfucMJh2bv408z1E5ZZF5rsgLoyy6lLkmPmQ0DJdf4/QgWuH93pFFa2XRWcPb0HgRcT2VRdxFqwnhMnHS+TrLQgRFAL8vMzd6sb+XLDxcBIFNZDq8nkxPkvdDY0ObGSv9ALKIbW2AL2Sk9tkKuA5sQU24QmEwf/HKov7vTIp02/s+G5pvUKLc/HepbmitgOvrM4fifMYuzFMWrVrVu7W5ibquWwUGFgmE3Yo5LoDBEQOhDW0pu+2CyiICk0XxtWXUPeP0fZa37XKLFjhGIvhOajPzrygAEdrQFCRlECRRs52u/AQ623ZdSkFY0oaWY0ybyDGnaBh97uD+iQySZJpEuyG4jLPqawcOndUrDldbBiFxMA/cIv4ibWhD7HIMN7Cu2ObhMovszTHLsqQyIs/y3kkNL+Zbj1tl0bxOLxxEzBMJZ0NT2g1GtVIo8sJNCE1nDHNMYSWvOTnLZIayLDu/60WVRbENLVQWpbejtcZnLz5zf1dl6Tpj3UhlUWBdHSJH5wUH56MdH5/g/Q8/6Hitv34AO2lvbP/9D9/H+x994L5DIoJohKQrSwIuYv90yqIOsmRUjJAFvy2ZWPgA5rc2s2QRb7PIc0yn00u5oDTHZM5lmBe2xulBWKGyCGuy6PzAVlu7wJ8zvlxFsgjoVr6FDStWmlmUuGeyguH7P/w+Dg4OotfzvfsiVFtCGrIopSzKs9y0tKdua3+IqLtURwhyaA2aZ0MDjDokVFzzuFwHXa06P5sQSft4Vze0rGVDo6UafNS1aimLgPk2z6sCPef30q8sWv0abGvTqFVaAddCOCKIC3JNxVvYiThqLrPgb7EWBRRJVFlfeHN0dKZFfYssqjosaICjC5gsWuBEUtDgA6qyD+ZOWQRIQGtkKCAgoURATMkdsDJJoDuapA85FXiUvT3gvWkbmiSJvItEuyFYk0XngDCz6KLZItnRJjSFiySKAKvEWZAs4pvzqjOLQhtaF8bjMb76Xjt4229HdlS7hnVA4MnHdDZFkRd+4qOVC7iu6xp5lrtJSmRDE2axn1qsZlmGWdlWFrl903BlkdINZZHyyqKugfz5i+f49h9+xz1XWum5afvrX398coyT6XTQcVxF+EkDgnsGWqqeJnwl0lSrq6rsnGSG1wQj3H5ZlvjJs6e2C5nvLmYmPLENLax+DiKLWFnUYUPb3trGu1/8svubiayUDa2qmplFBabTk5VaOlYFCuZKa2XRasG/l9Vsy1xb523JuYkw/OnwzKJVkyrnBbYVNyGsZbhLBbMsmIgICQO2vFVl1VL2VrXJBLqIuZ6UEscnaWURNy0Y+ls08yOrzAnUzM1tah3b1Nz5SiqLqJFX6buhLRtw3WWR4+xIf/ys2l004Lo9vl8ndVHdcf4Y821oq73Ot7e2MRmPW8o8LgLzOsZ3Pmz8Lp2qm9x9YGEbmsjx8Su/gOno7uD35BhBI55TatvlLAmnLKr4gQWO0BfLoEv7UOaURYKksXlRDgGJOlBIUX4LIGuRWyKviNHXRS0+Tv7PIOAasvu83BBcvZH3CsKrBC7O0sXwobYDAq6tTPiiYDKLht8cRGCnWeWAwAHXQ1Yky9jQhODMovkL7cPjI2QyQ57nbuKjlfFEc1iksaEFAddcabStao0NLUUWlZ3HT2K4skjbATGtLGoP5Fpr/PCDH7n/BmBb08qWsuijH3+Mp588HXQcVxGO/Ggqi2S6Ssnw1kQzKanqqpNcqhuZBgCi7X/89MfYnGygritL9PnJ9N7+vtsuL974OzL+9zk2NCJkMuv9nTSfCwPaGU5ZpOLMoulsdmltaE5ZlPj9rXEKdCzGl9sUrVVF5wQCL9x9tl0fOGj/qkGQSKqGi6LAyfTEjpdnoCwKrEimS6bpgqoa44LphHa+4dYMKaRVFnVl2A0ni7h5C9BNyHhlURxw3dWYpNmp1liL1NyOXGa7Itk4oiuTJlSZMIEYkwnDkCoGXSeyaN7vpT/Qe/UF+9FohJ/+qZ9uH4cQNqzadxNuEl3CFnBZIb2sssjuECCCGhhCPaKN1nkiADl1WLV4XrWUDY3zjmDIIpJmnmaVRUQZiAQyyiAgUAfZS0LumnUONMRZ28A6bGgFTbAthhNx1xGXcVZ97cADFC6BjJo7jA0ji9KTnPOCSCwS+1/vF60rzSwaqCyah64MJrIhhkO6oe2/3MfW1pZ9HyuLtM8sUjWKPHeTlLCTCLfqTCqLpERZzjo/4yLd0JTWpiOLC7TzVqHUpOXT55+a1uxBty3faSsmqWaz6bW2paVsaKm8oCZcwLX9DVRV5ZVJDcxTFj199hSPX3uCqqqjav7jV19DXdf4/W9+w9ofFUjYPKuBmUV5nmNnZ2ehc5IKuuf7WG2PAbA2tNlltaF5IrSsys7F0RqLg7C6IsxkPMHd2zd7Unhe4EUd398HdUO7hKrBeSCRVmhvbmyiqiscHh+ttCgnEgVBIQilVWI2x8+qurjAfSklTk5OooYbIRYii4IxrJ8sim1kUnY3JhFC4Afv/wAbkw33/sqSPfPuOVL2dENL7M+N83XtCJFwLjAUhoxqkEU97eSvGoZ2Q0t93lUHXIf7bEIQoa5qly+qdMKGZnNIee7E8+TT3A9OcIAaZe9rjILI2+acuhOEjNK/RThVzxJkUWhD05WxoAEmtwgAQULw/0hCBfcjynbtEatzyAwKz7v/fDmNsCVun/G+LzfWZNE5gKv9lyXgeogFDTATjItUFm1tbmFrs8s/20bcDe0MMovOiCxy4c9zK1USLw9eYnvTk0XmuvIBeq2A66DLiRQSqiuzaIiyaCBJY9QoDWWRSCuLWFX0xuPXI9l2aKsKJ1yz2exmkEWgKMNjfmZRGHqunJw91Y2FpdEhmBAFgLKcYWtj005a/W9pNBrhy198B7WqMStnLifJHJu2E9z+30iRF5HNbAiklMn7EF/D/FxRFBeWvTEf5Gp4axvaasFKvFXg1s4tvPbqo5Vsa405sN7MsGtmH660DS2pWiHc2b2NF3svVmqd5aiBOLNIYFaaYNmmnbwe2G3sLCCF6FUWFXk+mMgK1bFd10oYcO0s0XnuCnBNPHrlEd5+8wt4+6233furuhqY+SlaKi7AjtUd4dhZJlHVVXT8qdzGH37wQ9f5rb39dvj2dVIWzbsP9M3T9Rkoi/qOwyiL/BypmVclguYl3A0NWL4DtVljSij0d88FDAFCAGpd4Rj70FqBoJGjgyxyyiLOHFrShqZKRxZRYEMzZFEGAQnNZBIERLYDIhPGPcxKdhqkbWhrrMmicwGn4l+GgEYp5KCBDgDGozG+8Obnz/iIunHvzl08uPdg8OsXyU5ZBEYqWp16m1ubW8kuan6AmG9DU0q5QD0/8dE+s0jVyIOAa9N21nzfRVHg6OQ4bUOTthtaxyC8mLLIZxZ5K5XvJhKSIM8+eYY8y7B7azf6/nwIs4j2Oy1PTxYppfDhxx+eahtnBSaUyWZE8UJjaHt7npS47IOUDF4p1zGHIayEn6uuRWGuoVQVr8gLlGXpbWj22KazWTKo9LToyi5rXsO874u+x6ZAQWjR2oa2Ylxwtt4ay4F/EkMziy7D/GkZGKtu+rjv7N5ZOcHtFDONbJTZjMmihg2trpANLCCuGrxY7lYWFatVFoF84TawL7/3pXeT23zlwUPc3r0dZRbVVd1J9qQ+WxN9yhgpM6PoDV5Dok30PPv0ExweHSa30Qy45uPutmZdLcxTFgFcSE3Ml85IWZQC502FuY6h/RHwVkV2QwwtHHeBc336vmu+9o2CiFBTiQIbmOIYGY26HQ4tG9oCIILvhlaavCIAsJY3Qg4BYQKsIaEsiYTMdGPOkKNGfWE2tDXWZ+Nc4GSRK7ZHLYNFlEVEhNu7V0d6d1ZkkbOhnXKYyfMc9+/ebz0+VHrKA4gni8xgZAKujZKnrowNTdXKnQueODy8/wA/efoTTGfTlrJBZqYbWhdh5ayUA9Cc/IYBnkyc8uM/+vB9vP7kDU+I6LDKQi6wmbcbKou01knlzDycTE8uN1kkyJ1vvuZMwPh8ZRG/j7uqpKxrKmVDk0Z1ZlRHxuIlpURZtTvkFXnhvgdH6CmF6fQE41HcEWQVMDa09nXJuV18fGxXu+h7bAo2yxdam9yQdYDy6rBKG9oa5we2xnAxYF4x4qqSRX2NQnZv7Q6OBRgKtuiG+xREmM7SyqJQfXze4LlJUaTJ843JBjYmwzLEUsWmJojIZQYtcy0tpCzqyixKZAYysixDXVf2+D1x0Bz7tVJOKQaY38aLvRd++9c4s2goWZS0oZ3jGoyC74+jJto2NBnZ0E6VWQRAowZB9K5V2M4lkRtSSWvsyge2E1r3b43YhnbKgGutKxdsjdGroDv/CmjyBBnlVmEkQJRBUwZkJrJAIodCfQ42tHQ3tDXWZNG5gCsDZ9G2cVGMxxPc2rl1sQdxRuBuaCcnJyiK1SkceLtnNcj4CtJ8smg8HruJHeegcLcxIYTLI1LKEAY8cQTMxGt7a8t0H0kpi8pZ5zGwYmUIYuLC2OR8ZpHv7nF4dAghBHbt9eirL0Fb20CCzbJrrhh98vwT/LMffH/QMYUwXb4u58QpVhYpd78gS6R1IQq4Vhqls6ENm6xKe41H3fOktARiI1y6MNlAANxCp6orlFW10t8dQyQyiwBPFoUo8qKzin+hIDNZ4oXZ5bTKXU10dZta45KDM4sc+d99fwvz264aREdmEWDusXfv3O1U1iy3v/b9kiJl0eXKLALQact95cFDvPbqa4O2xWNR2Io89ZqugOmh+xj6fpkieXqILMBkR1ZVZSzeoQ2t8duolcIssKHtH7zEt//wO6541vr+rx1ZNL+RRvLz6vO0oflue1z0TAVcr9KGpqBQiEmvhsyoj7KgDT1hVzzEhLYxop7Yj9MEXIeZRcori4gIYvsrIJKY0C1ImDmdpAw62wEVxlmSUQ6la2R01orstQ2tC+vy5jmAb/aXYbIzHo3w+c+9daHHcFYQ1vq093IPt7ZXR4gJGwx9Vl+dqybMC0wU0uUVmfd5ZRHbgaqqQp7nqFWdrBi+9upreP7is2RmkTmGjsyiBZRFYbt1tsmluqFVDXIhRRZRMOHymQs+j6kMqmtDwVk8lxEqqDAZsshPHvqO2RF0Nmza29A6MosaMnruxBJWJTOZdSqLptOpJ/SEwPHJMUbF6EzubyazKNFNKEuQRUXRLaO+QBhlkV5b0M4A5vdy0UexxqIgK7dzNrSe+1uz8n6VQNSvYnnnC19a6f6yTLbG/ciGphM2tItSFklh1O4LdL3t3Z4wmT99OVFGGbQ8WVTV1SAFbVIRNOc6llmGqq6jnMfUdpRS7vsEgE8+/QRaaxweHXWGZw8li7TWmE6nGI9XrxJeBbiZRx+6lUXnaUPzKiEu4inbKZgh2YbWCLhedg6jUGMD25jioHO9aZRFY2vvKlCIMQRJ3BdvQIqe+wDnBfH9Y5F7cdQNrQJEu+Pa/eyJ+2+JHNOH/zo2xR0AQIYCms45s2hdgIpw+WbV1xBsvVHq4gOurzPMzVbgsxcvcGvBjkt9ELSabmid2xfDqgkP7t3Hm6+/GRwXOWURCXIToDzLXUesZsVwZ3sHX3nnvda+OLOgq2LDIe1DoG1VLFIWcetZ4bOPygaZlVYWeRuaaYvu7VhGPbW4DY0nY5cTTbLIWxTn2tBsG3ttM4tkR2YCW81CCGEyi9rKoiqRWZTjJCSLSOD4+BjjUUfL1VNCdnRFzPK8NWks8nylYbErA5mA61miE+Eap8XVJBFuOowNDYENrV9ZdFW/41AxcB4YFSP86fe+Gj0miDArZ0mFcGqecF6QQq70fiitMqezUYdTBi236HSZRQPIJiHaAdd9FjTAFGgqZ0ObQxbZQpnWGp8+/xTj0RgHhwetQpA57vmZYLytP/6TP8Y3vv1P5r72olDXdStzsQnRRRado7Io/P44YqEdcC2gAiUcW9eWJTMBoBATZDTqDLnW0JBW2VPQGJtkokY25A5GtNH3icz7l1UWObIoyCzqQEY5iHJ338yoADQgzpqyCK+NKzrenBXWZNE5QAiBW7du4f2P3l9fgGcMvilzq9NVQMqzJYtoYDUhy7JIicP2Rq8sks521pWNQkTYvbWb3DbQoyyyMtqTkxN867vf7j1OUxULlEU6lFTHyqJctsmiOhhQzfdpXj+bTTEajWKyqKqwKFimfhll2WHl0Si0zOPcnr4LvnuccMqiUTFKd0NTKpFZJHxmkVMWSZTVrKXqMcqiE/+dCjLKojPIKzLHlu6GllIW5fnlVRZhrSw6Exgl/XpcvWrg0F1WrPbdj68yWSQuQPnWJGBICExnU4yKokU81EETjPOGlHKlTRGEEEnrNGMVNrShyqRUZpGq+/N2MilRV5W17vs5U1ioc0prqyx6efASWZbhzu3bODg8SBJhZi42//P9yY9+gOl0iqqqLuX8CABe7O9hZ2u79zV9Sqrz+in6/CE7J1ftzCIh4m5o/J3TkgUvAkEiR0ETKKTni0ZZZO4Pt8Wj4S3h6ZSZRTx/1ZXrgtYFaQOvGRnlLvz6bLEOuO7C+mycA4gIX377HWxtbq2DTc8YQgjsbO+sdGLpLFFnrixabPsErz5hv74LJxYSs9ls8PXmcpC6MoussuhkeoK9l3v9E/umskgpN/iFdraqQWaxekapOrCtxTa0yWji/q6XJosWf895wdnQgJYNrS8ziruhsSKJyaIuZVFzQimtsqiqa6cyY2VR85rIiwIns2mr8nlWyqK7t+/g7p27rcfzPG9Nqoq8uJSLSrLKorJcK4tWjatqT7rxIIpI+7n3t0tIAg8B2YDbiwSro4vEmHChyiK5emVRWVVz7PTLd59zBMCAJjFStJW9SqneTmrOhqZCNbZw6mreBuDJok+ef4q7d+5iMp5YZVHi2Aba0F4evMSTx69HCu7LhNlshuOTY+xs9zsHwmzMEOdJOodh1Vz0bHZDa9rQTh9wbYiVETbmKIvMb24itpzKaP4HOkVmEeWAtgSkmq8s2hUPUAQqJ4HMhV+fLcLtr+cUIdbMxTlBCNHZnnON1UEIgVtzBpLFt2kG37NWFi06QBBRFLwthHASZCEFprPZ4Ekgv64rN4knWVxxOjk5waSjS0mfsigcxMsq9v5zJU61lEV+cjQejzHdN+HKHOK96ASA1TYqobC5aETKosCGxt00uhCGigNG7p4XebIbWqpbihASdT1FbUPRAdPGdzqbtqqoRZ6jLEtkY3vN2OfPSlm03VFFzPO8db3euX07ynK4NDA+ABdAv8YqsQ64vorgb4xJot6Aa2u1voq4DGQmEw8pZVFV1xdWxLyze8d1d10FpBCoqn5lEbD8YtyHFg/rhtZScQ2woR3VR8Zy02FDY+J0Vs6gtcbLg5f43JM3oAEcHR8lG9hQaAPqwcn0BOPRyGQYJuYJF43nLz7D7Vu7A7qhdSgV9fmlFrXIoqSySKy0GxqgjbJIjIEe8n25oOhTZBaJAoA2FjRdGfKoB2MR3xMkJATk2WcWrW1onbiapZorisswabjumEwm2L01UFY5ELxYPqsFSUikLAISVlIdqE/cQn9BZZF0Wv+tBwAAIABJREFUmUV93dCU67J1dHzUua2kssiRHrENrZlZpLUy5FKgttJBJW08GjvShAfZRStgnHN0GWXWbbLIPC4a1cUmQrKIiJBlmVMLAcDe/p5/bVfAteuGZr6TzHZDayqL2DbQzNo6K2VRFzY3NvHFz3+x9djt3dX+/lcBnqqXZYliTRatFNtb20nl2RqXGz7TjjOL+pVFV3XuJC7BvI/nFpdNWVQUxUrJIsHKok6y6HTdpvhrHGpDSyqLet5b5DmOj44iBUozr1AphTzPQDCFr8OjQ2xubGJjPOk8tiEB17WqUVc1irxwDS8uG56/eI47t+/MfV2nsgjnxwHwXExaZSFHLPTa0ILvfFGwdVFAIsMIfaSYWMbO1VIWLQAOtFZTm1m02BxIkO3eduaUxdqG1oX12VjjWuG9L72LzY3V5RUBwcTirJRFgqsJi9vQ4vcLp4Iy3U+mg8kiIkIms04bmlcWmXatfWRRUlkUWPkcWVRXyBtkUW1taP71PrNoapVFYWYRb2cROGXRJQy51lobtQxR1EVO9MjCm22lhRDIs8y07q3NROQPvvst97nrWrWqmyazqBFwnWUm/4HaxJK01TJzbEwWnW/3FCLqVB1dOnCO2DqzaOXY3NjAvTVZdOUQNkAAkCTD/+j738PzF8/tffFqTlfndUM7Dzj1Z1G0xr2L7Ia2akghUZVlj0KaX3c6ZdEQG1oq4DqVIxni9u5tKK3x2d6LqAgYfmdMOOVFgf2X+8izHFmWIc9zSJtb2T7u+WTRdDrFaGRs3CFZ9P5HH1wKS5pSCnv7e7g9oBjc2Q3tnLPPhCWABOeLNsiilA1tEVFBaMtSUMhgOtKOaAJJErVOzY3plGTREplFTBbVxzCyucXuN9LZ0Nbd0C4KV3P0XWONc8SZZxbRctWEsFMWYAaeUCG0iA0NAGSWblFu9uWDkzcmGzg6Pk6+7v9n78yjpCjP/f993qqu7tmHYQZkdQBBEBgWWQUXJGIS0WguiEtUrlGiRs01RxNjrpGj5p4Yc41iTDRqFA1xicYlucm9/giggmhARUTcZVBEkZ3Zu6vq/f1RS1d3V/d098z0Mjyfczgw3VXVb/cU1W993+/zfRzhQpCwMpXihQxPWKOfsyihG5qIiiRWZlFULHJcM5nmFjmZRalaNecLp1uHFXAdW2KYTNyKL0ETJKCqAQhFgWkarpgW/dwS7eWWC8mAHt8NTY/4ipiBgJbQGpbLq5JjfVJchsYwXpzFBMDfWRSJRBCJRIo64JoEJf1ezRXO68fn2Dml5YVWbpQtiiIQ0RNz9hyiAkz23dCAdJ1FSkLAdSSip1wsICIcNWyE1VAlZg4UG3AthBUMvv/gfndxlIhQUlKSIuA69XynvaPdLSVXhUcs+vwzt/NaPmlpbUEwGEzr+zOd95sLyF5Ui+Zxxi7UCc+Cnjd7NF0CFF2gM2FAs38WpKCvGAQd/r+37EQXZ5/MM4tI2CH2RrP9QIbOIihuKVqP4rlOF+v3TU/BYhHDdILS05lFHmdQdvtFuy54b/TDkXBGXU5URU1RhkaQpkRE11FZUZHUWRS/QmLamUr+ZWiRzsUiEm4XCSugU0t0FmUoFukF7iyKfnYypgwtWQCsacaGv5KwXGLWqpXhfj5esSj+9ywUxe2G5gRcq4pij8enE5mmRUVUIRAMBvnLNQVEhL379qGlpaXHsp0YpphwrhfONc8vs0ia0v1OKNbrS1VFFcpKy/I6BuemVVXVGLHoqz1foSQU6kJGSmEhhLPAkeT9dDmzKP39FZ8yNGuxIPUCXkV5BUYOH4kKuzzPrwxNEEHTNOw/cCDm3CoJlWTtLGpv73DdwY6zyPTMvfJNa1srykrS+39UWM4ixXLNG3qCa8hZ0JNSgkB2V+P0z01LHLKOZ5KBIEU/nwpRC4XUBHcRAdll/8SXoWWUWRS0d22x981MLCIiHKEelQN3KcX9zTj0Du8pw/QguXIWZXp8twzNY1cmGZ3MWDf+6f8XV1U16cVYeJxFtTV98dWe3YhEImj8rBEjh490t/NmS8SHNLuP2ROPSJyzSBHWqmCss8gqQwtHwtACASiKEiMWCSFc8SddjALPLBLkzSxK7AoXj9MJzcFyFqn2ORDtGBfNekrMTXDs0IYRDeBUUoSea4GA6wQoLy3D0MFDu/K2ez3VVdWQAGr79EUwx9lODFOIeDPtrOt64vXYlKZbplGsgkb/un75HgIEEQL2d4LzPXLg4AE0frod448Zl+fRdR+KIqxOoEmusaKbxKJsA671NLthes+ZQCCAiMfZ43x/awEN7R3tMWJRdVUV/KY16ZWhtbu5g94MQwAFIRa1tLamHTGR/P3mds5HtvhDgmD4NFSJL0NTAyoG9h+Q9vFVaO7cnEAooWj+lyCBOjEUXxgfQ0gFOiIwoSNIJVCRhbu5W8rQbLEowzI0AK5rqmdx3lNxftf0JGl9IkT0dSJ6n4g+IqLrfZ7/NRFtsv98QEQHPM8Znuee787BM0wucFqd9tSCRFe6oVn7ebuhOQHX1rEyySKoqqhEKOR/QSaynEW6HrGswKqK9z56H7t2f+VOiCKRiBtu7ewT72LxhprGB2uSj7PIEU2cluPe8GfTsMIYMy9Dc7qhFaZYBLK6O3mFtnTK0ByEiAZcWx3jot3fotvHZxZZK4nezCLHYeRn6bfK0KLnWF3f2q687V5PaUkpBh0xkIUihnGJZtopQvG9uXO+D4q5DK0QsFxFgRgBY9furzB08BCUlnRvxmM+UYRidUNLsuiVSRmZ7/72zWT6mUUm3nl/Kz7/4nMAyKoMORgMoiPc4f7slqFpVmlPqUdA6V/XH0f065847rTK0Dpc16szH3BK2AtBLGptbYl5r6lI7izKbXkRCSvg2ps/5cU5R5zrmyIUDBk0JP3jEyFEZTCgQ0IiSLGfT7moQYWoQTuaIYgwWB2DIerYLLuKxXVDy0QsIkcsarbHXaCl+M65wd81CXR6J0lECoB7AJwCYAeADUT0vJRyq7ONlPIaz/ZXAZjkOUSblHJi9w2ZYXKLK1z0kDXRrVXOIrPI+mPftCveWmj7hj8DsSiVO8QRKyw3UAAlJaVobWu1sm4MSxDavPVt1A+td8vjLBdRvLPIcgo5Dpb4sL+oWBTNXooPBrZyj0wY0oSmaVkFXKuKmrJVc75I6IZmP+7tChdPvFhEjrPIXh2ML0Oz6ubjnUXOSqIeU8oIJHMWaW72E8MwTKZYlxVr4UBR/MVwKSVMw7CaJPAEPmuIRIKzyLAXW3oTVhlaqm5oXXMWOQtz6YhNRIQjBw9FRI/gwKGDGDRgUKeZRX4EtSDaO+LFIstZJIRAid0FLeVYkF5mUYyzyIjOHQpBLGrpjjI0yB6bx/vhlJUlO++sBT3DGleW17cSqkAz9qGUqhJEICJCnWLN62uVIQhQFxar4srQMvoc7cwiadjxFVSoRU1chpaMdK6Y0wB8JKX8REoZBvA4gG+l2P5cAI91x+AYphDItkwss9egpKGMqfAG4g0cMBCDBgwC4HEWdVNL3Gg3NKuD2RH9jsDRI0ZBVVV3IhHRIzjg6eLhOoso0Vmk6zrUuNp9bwhgTBmaaVpdROwVOafdqGnYYlHGmUXWaxd8GZqnpM/6bKzxHjh4AO0d7e4+1uflqYMnx1lkhSf6iUW+K1xGbMC1c+74nZdVlZWoqqzurrfNMMxhhvVdYLd8FopvwwGn3bSU0ZJcJnNURXHdoFGxqPcEWzs4ZerJOst2VSxCBs4iABgyaAj61fZDOGyVkXWLs0ha7y8UDKG8rDyteWm6AdduZpGIOo0BZFzq391EIhGYpum6qToj6fuVyKkO4MzPncXgeJHR6QDcFedkkEphwECZ8J+PqaRhgHpU14QiAHCEKN8Oa53tqwIQWQdc5w7n98NiUTzpXDEHAfjM8/MO+7EEiOhIAMMArPI8HCKijUT0KhGdmexFiGiJvd3G3bt3pzEshskN3gt+T6GqKhQlC7EI0U4rqqJG3SD2sbprMuiINk6b3dqavqiqrHJr2wFr9engoYMxziLDMN2frePYYpGhJwhZfgHXThe2GGeR3R3ENM2sHC6GYSCgBgqiHawjnHl/jnEW+bTP/fKrL7H/gFvpm1BWRkIgoDiryLHd0PzatwJORoEZk3OVyllUWVFZEFkcDMMUJwSCdJ1Fiq/T05R2GZopY75HmMzoW9MXI+qHx3yP6IaRkfO4GFA8i0x+RMWi7OZFzndhJmVsmqa5Yo93HpMuQS2IcDjsih/O93dFeTnGjR6b1jGILFdNMnRdB6R0z4cEZ5GZX7GopbUFZSWlac/BrcW2JAHXORQCSkIhV+AiQQnnnVBiy9CyQaMSBBBEyJNX1DNY57zMIuCaiCx3URcyi3KDU4bGCxPxpPOJ+J0Rya465wB4SrpnEwBgqJRyCoDzANxJRCP8dpRS/l5KOUVKOaWuri6NYTFM7uhpsWjS+EkZTyIA6wvIb8VVCAWqqnbbmJ2VGhHX2tPbNUNKida21hhnkZnEWRSxHUqxYxbuzUG0xjvahU1znUWWCOKsNGXiLHIEIkXxz8jINXv378P7H3/g/pwoFlmPO3lOAGDYop2D0x3FQVUUBDTNFYC8ziLv8b04K1+RSCRahqZGSwEZhmG6Ffu7wDStzCLfmzt78YDL0LqG0wktvgytNzqLAHSaWZSLgGuHgBpw50iWQzqzG2Xnd+e0r3cWhzJps96Zs6i9ox3BYCj6/pwS9gLJLGpta0VpBh0FCQTfpG/InJpGRo8c7WaCCZHY6czrps92rq5CQylVJeQVdTfW+ER2mUWAFXLtlqEVqLPI/R3wd0086VxpdgDwJm4NBrAzybbnIK4ETUq50/77EwBrEJtnxDBFgZIDZ1E2WBOGxHEpQnRbCZrzOgCgxgla3mBkVVUR1KIt1K0ytNgvQadLm65HEt6zM5E1PN29hMdZ5Lw22W3kTdNEMEOxyJkgO2Ve+aalpRkdnpIyZ+WLyLpRipahRTOLDMOAoceJRZ5JyKijRqG6ssq2OBsx3dD8XEUOQrG29064vZlYDMMw3QURACkhpQlFEf5laFLaraWzv5liongbTPRGsch1JHfiLMo64DoLsYnIanPf1t5mueiycDWFtCA67NyiVN/hqcaQSiyKRCIx+VXRgOvC6IaWSSc0wFpE9XcW9Vz2aGc4+UVevIJfttc3IsKgwCgoucgBIpFdNzTA7ohm/04KVSxynUX8XRNPOlecDQBGEtEwItJgCUIJXc2I6GgAfQCs9zzWh8gqlCSiWgCzAGyN35dhCh1nJafQsISF5M6i7sRZ4fLirW1XFAWVFRVxncxiu6FVlFXgUPMhRCJ6gvDkV4bmzSxyav0Vsp1F0ipDy6Se3il/E+R/c5Jrmltb0BGOtsWNcRbJ+G5oURt6jLNIxk4eVUV1O2s4mUUxn20S8ccViTy/P0VReEWfYZhuxwrdtXPahOIr3kcziySL1t2Ac3Nq2iXHvU0siv8O8yMTR47fvt7XSZegFkRLS4vb0TVTgsF4sSizY3QmFlnxAtH35M7rbEd3vsWieDGrM5IFenclSLqrCOF/3nVVLMotXXAWkef3V+hlaOwsSqDTK6aUUgdwJYD/A/AugCellO8Q0c1EdIZn03MBPC5j/4eOAbCRiN4CsBrAL7xd1BimWOjpMrRsseqgE8clutlZBFhfZvGlY4qiQLdbrKqKisqKSldccDOLPJ9bKBSCEAKHmg4ldRbFZhZRQjc0EsIVQFRVzcpZJJKsPOWa1tbWmCBJVyyClcsUIxZ5nEV6CmeRg+MU0g0dWkBL+GzjUYTiuq4cVEXNKnidYRgmFURWZpHpZhb5B1xbf2TGN8iMP467V0Jm3IG10HFcO6neV3eIRZnur2kamltbsooaAGJDrq0Fn8zEqk7FIj02v8rrLNK0YN47n5rSzGgeQqIwAq69kEgMuAasc7YQ7y18IQWI7LP+raZfFgjAdhY5xylMZ1H099C7rovdQVp3k1LKvwP4e9xjP4v7eanPfq8AGN+F8TFMQWBd5Avvgp6sTCgUDKK0tPOWqpkgyMdZpMQ6i2praqFpQXds8c4iAKiurMbuvbsxdPDQ2ON7xCLFIxYREcLhMAJ2rb/iFYuU7MQiIuEbqNrS2orSkpKcfHnrug5djyAYtAIsS0pK3JWvaGaRpxuajHYz0/XoSl8yAUixu8bpug5N09xV+uRikYAat2LKziKGYXoCtyTKlFCUqBju4A305W5o3YcggbCdTVc0N6lp4jT2SCUsWmJRdo4q57s5U7EoqGlobm7OXizSgmhtawNgZRYGAtmUoSV/3uqMFycW2SXsQS2Yd2eRzDCzLKWzqIDK0IDCXYj2hQRgtgGiFAhkli1MQrOL0AQoQ7EztxAK8V4v3/C3L8OkQSGXoflNjKqrqjH8yOHd+lpCkH9mkRkViwKBAPr2qbHG5uMsssZWBdM0/QOunbA/z5eqIEI4Eo5xFkUMj7Mog1Uv3ZNZ5DeZ+PCTD9DU3Jz28bpCS2sLSkvLENSiq4aJAde2S0t4Mos8wZNAcrHI68rSAgH3pit5ZpESM2EErLBsDrhmGKZHkLAyi0Sis8gRj6zMovyVj/Q2hBCIRMK9rgQN8DiLeqgMTVEUVFdWZbyfpgUtZ1GG4dYOCc6ibs4s0nU9ZqEo6izSEQxmVurfE8TPCTtDJHm/UuY24NqLFXCd+H+uqMQiWOOn0JDMx+w4i3KRrdQlBGcW+cB3AQyTBtYFPd+jSIQE5cxKTiR8y9C8zqLY7ck3I6e6shpAYqi3n7MIsMQhJz8HiDqLFLu7hNMOPh0MQ7cFEKvMK/F5I2fB1y2tLSgrLYWmaW6nk6SZRSTc8SaWofmXEzi5ReFI2HIWyc6cRUrC73B4/QhUZTE5ZhiGSYW3DE0IJcHp6VyHDe6G1q1YYlGkd4pFaWYWKUp2cyYhBMam2a7eS1DTYBiGm7uY+f6ezKIUCz7JIFj/15KhG/5laIZhFIizyMzs/38ycSyvAdf+ImVROfyceWbJkZnv64hFojBL0FwIYGkkEf5EGCYNqquq3BaYhYQgylmmDBElCDyqp7Y9voSJQDBMI8H5FAgEUF5WnhBY6G0jKmKcRSImGDKaWaS4IlK67iJL1FKTlqEZhuk6eHoaq8NHGYIBDeGwj1hkxgdcm24nm9iA68RSPwfHlh9IJ7NIEQk3EGWlpewsYhim2/F25lIUJUG8dxoQmPY1mTizqFsQQiCsR7o907AQcMvEUiygVVdWZV0Oli1BuzQ/29cNBUM96yyKL0OzA67dMjQz386izALuLWdR4jwunwHXJHpDGZrjLBrayYY+sLOoqCn03xrDFAQDjxiY7yH4QiRytuJqlX3FlaG53dD0BKFB2JlFfl/yDceMT/iCdASRBLFIxIoYCgnoesTdxgm5TqdbhptZBPgGXBumkbZLqau0tLagf10/mKaJ9o7YMjT4iUV2BxurvC9ammGV9PlPQhWhwFQsp1bYlL4ZUg5CKFCU/Id+MwxzeGCJRaYdcB3nLDJNqIpql89KDtrvJnqzswiwc/ZSnCtHH3V0DkdjoWnW3CRbZ5ETAG8YRo+IRYYe1w1NUWC4eYcF4izKQCxOmtGUx+mNIP+AayFE3txOGUMKEOgLUsuz2NeenxdouHUUzizyg8UihiliKMfOopRlaPH12HZmUbJubX7Hl1JabiSPwEREMZMsEgJ6hx4VixQ17cmM44AyZaKDyClny1WXtHA4bNnLtTAONTW5Y3BWRwEk/G3YdnFn0uisyCcXgKxcJ0tsMhJK/LwoipLSqs4wDNNdONc005RQhEi47prShKqqaO9ohyklArza2y30erFIKAUnLDoLWfGLbeniuLojup6VWJS0LMvGmhepns2tkqlwJIxgUMu7WGSVoWbQDa0AnUVCJClDKyJnkaiamXXbexJBa3ZZ6M4iYrHIj8K6ojIMkxGW5To3F7bqysRSPDfg2jQSwpEphbPID2eC4nQ6cxBCxDhnFCEQ8WzjbSvfGd5uaPE3J05JRK7K0JzsgaBfZpH9ZeVdcRJCIKJHoAglpgtcKreQoljbWp+R7LQMLb6UkGEYpidwbpBcZ5EZH3At3RIN03ZUMl3HCbjurdd6IUTOchzThYigaVrWziLAKmHT9UjWzqJU7dCsgOvEhUDAErocd1++yLQM1clDc+jo6HDnd/kiEAj4/v4LtXmOH1Q6DBQakt3OxZJZBIpmMzEu/IkwTBHTlc4emVI/tB6hUCjmMcWTWeRXhmaYmQUTOoHVCWKRp4uIk1nkOGSEXYqVDk6LWL+adqcuP5OAa8Mw8Nnnn6W9vRdpl5lpmoawTzc0ADETJFdIU2K7wCULuHb2UVU1aR6Ul8qKKg6zZhgmp1jXJCXhuut0bhRCQDfSX3RgUiNIINyLnUX9+/VHSdw8pRAYOmgIyrqQe+l1FiVzByej0zI0Q4eixp4PiqK44cvOPC9fZOUs8ojPW97bgrb2Nve5fDD8yOGo65vYbl5RisdZ1CUEl6EVMwXuB2MYJhWWsJC/SbQ1idBh6D4B13a2TkYtTz1uIe9xAqoWs41u6G4bUvIpYUiGI2rpRrS7mINpOK2a0199au9ox85dX2DIoMxXW0xbFNOEhnAk4q58xYhFXmcRWY4qRViZS1FnUaoOZ8INVvTLg/LSp6o64/fAMAyTLZb7VEJRRMLNrHOtil7veQLfHUTL0Hrn9H/wgEH5HoIvR/Q7okv7B1Q16izKcM7XecC1kegsEgqkau3jiEXxDU5yhfTkN6ZDvLNI12M7yBYSxeQs6hK2s4i4DK0oKfDfGsMwqbCcRfm7sEUDrhOdRU6dfKbOIq9Y4jzmdRYJii1VEyTSLh0z7MyiiM/kyXEW+dW6J0PX9axW3OKFIVVREbEFI+sxa7v4z0HXI64A5IpFKVrpCkWBagd+Rp1FvXNFmWGY4sIpVVaEEnNNBCwx3XHOGlyG1m245cy91FnUW1HVACIRPeX3fTIIlHRBzSkxiz9mTFMRoUA3DAQzH3a3YPqMLxXx4pjT2c15rpAoqm5oXaGYnEWHw+8jQ9jXyzBFTL++dSgvy6IzQTcRDbjWE1YqHZEoU2dR/KSgJFSCklBJzDaxf1PapWPezKKEMjRb9MnEWeTYwjOthY93EGl2blGygGvAep8RXbcEIFWF7o43tbMomlmU2lnEMAyTSwhWqbJzzfNeR6V9rVKEAl3XuQytm3BKvXtrZlFvJcZZ1I2ZRbrdyTZesHDK0Jx/G4aBxs+2o62tLbs3kCXxInI6eK8lUkqY0rSvIYUnAhRTwHWXKJrMIgGWRhJhZxHDFDG1fWvz+vpui1UfZ5Hb9j0TZxElikUj6ofHbmM/79TtEyWWlCXDsCdGwi5/iHnOdidlklnkrFYZZqKNOxXxVnJN09AR7kgpFhE5zqL4gOtUodUK1EDAFYsM04SWJys5wzBMDI6DUliNGkxpQtgTdeca6ZRN5aqRQ2/H/f5ksaioUAMBtLe3ZykWIWmnUytCIHFO4BWQVDtuYNdXu6zFu5KShO17ivg5UTp4xSJnEdDJeCw0DhdnEZEKiFJAKcv3UNKg9/8+MoXvGhiGyRpvi9WElUpX8Oias8hvG+tvxf7bv02qH05tPvnsY9qTiky6oel6BIBT3paBWCRju3sENQ3hsMdZBD9nkZ1ZlBBwnXzyOGTgEBARwpFw1FnEK/QMwxQA0QUFq7RWmhLbPm/E4AGD7HIbcjOLDocbqlwQXWxhsaiYCKgqmrvgLErmftYN3TeLSBGKO1dQFAVt7e2I6BG0t+fWWWTKzPKKAH+xKFKgzqLDJrMIgBh4ftRhVKiQ4DI0H4pGLIpEItixYwfa29vzPRTmMCAUCmHw4MFdanV6uKAoih2YmdgNDUBGmUpKGm1v48vQiNIPuPaWocXvE3UWpV9S5rp7jPQFJgCQcR3MtECcWORbhmblFAVCJVAVBe0dVge1VJNH5/zVDZ3L0BiGKSi8ojjZzqLde3ajtqYvTFOChIDiZBbxdatbiDqLimb6z8DJLIpkXJIFdCYWJTYnARznWTTg+mDTQQBwu4rlCmlmllcExM4JXWeRrhekX+SwKUMDQEXjKjo8fh+ZUDTfFjt27EBFRQXq6+sPm/9YTH6QUmLv3r3YsWMHhg0blu/hFDyKUBBBolhEPewsUpRoZlE6biApZbTDjl/AdTbOIiNahpYJ8SGVmhbEoaZD1kQQScQiIui6buUQqSqM1hbrWGm4hQRxZhHDMIWFN8jfalQgEdEjMAwDUjplaLaDlOd93YLzXcGZRcVFQFXREQ5nVbaUSiwydB2Kj7PIyol0xCIV+w/sQWVFJdpyvGBvSjPj//tEcDOanLmZbugF6RhRVJXnZAUFgTOLEimaT6S9vR19+/ZloYjpcYgIffv2ZRdbmiiK4rs6Qlk4i4S9kpxyGxIJf3vdQFJKfPjJhwn7RV1FBLIzfLyYpuGubqdLxMksyrAjmmnGrg4mlKH5ZRbZXWysDmfpZRY5CCFgSjOrTioMwzA9gSMSAVZukW7okFLCMAz7ukYeBynP/boDziwqTgJqAOFwR1bf352WofmcCwP6H4EB/QcAsN3jegS1NbVob2/PuKFHV5CmzDjcPqmzqACvIdWVVRg1fGS+h8E4EHdD86Oo7hoK8T860zvhcy19vF0zYunhzCLFuckQMW4gwzCwa/dXCWKQNSmyVtB8nUWmiYCqpgzL/rjxE7z7wbv48qtd1jHtCUimYpFMcBZpCEc6IJGiDI1EjLPI7YaWhgDk7YbWmRjHMAyTE4jc7DZBAuFwGIB1DTeljGl4wN3QugcWi4oTVVVhZJk5SKBkzdCg63qneYvOuVJdVQUShIid1ZgLnOyyTPCKY7pHLCpEiIjjLgoKLkPzg799GYbpEpZYlDjZyCazKD2xiNxtndfxuoGcf8d3vzBTG0NEAAAgAElEQVQ8HduIREK5mWkYUNVAyrDs3Xt3o7SkFF9+9aX1GrqOoBbMvAzNjLVWW93Qos4i+IlFdmaRoiiWWJSBs8iZPJmGwc4ihmEKgviS23DEFotMy1lEQsSUGzNdh8Wi4sRxRXe/s8jwLUOLeW2hQAhhdUILleS0FM2aE2Uf6G0YBrRAoGCdRUxhQRUNEGWj8z2MgoPvGhiG6RJqEmeRt9NNuqQnFikxf1slZdGJkPPv+JUkr1gkBPkEXBtQUziLnPKI/nX90RHucF8jGAzCyDDg2pQyJrBVVVRIU3YScO2IZJY455RspBN46UwydUNnsYhhmIKAyLOoQBTjLJK2oO5e5/lGr1uwSr0Pnw5MvQUigpplvg0RQSJ5ZlE6zqKyklIQEULBUE47ojnlqJngFYtM04CmBa2Oij0xQKZXISomgMpG5XsYBQffNWTArl27cN5552H48OE49thjMXPmTDzzzDNYs2YN5s+fn3LfpUuX4le/+lVGr1deXt6V4cbw7LPPYuvWre7PP/vZz7By5cpuOz5z+JKsDM1P8OgMb9lB0m3siYPicRZ53UCOYyheLPJ2/fBbaTMM0xKLkjiLTNMEgRAMBqHrVncxXY9YzqJMy9Di7OREBE3T3H+7XYI80xtndU0RAgHbWeS4itL5jIUQiOgsFjEMUyiQe10jIaLOIqcMTXjL0PhWrzsQQrCrqEgJdEUsSpVZpKY+H6oqqzBk0BAAQEkoVPDOIhHnLApqmjUf5GsIw2QF3zWkiZQSZ555Jk444QR88skneP311/H4449jx44d+R5aWsSLRTfffDO+9rWv5XFEXadQa5APNxSh+AYkRgOueyizyJNlEeMsSlqGpkedRSQSRCHTNBBQ1aTd0HRDh6IqrrDT3tEOU0pompZVNzSKWy3TNM0jsFmPebeJZjVZ4pwggY4MAi+dzCMWixiGKQS8LkpBhA7bWaTbAdfkWTzIJquFSUQQi0XFiqoGeqQMrTNnUSgYRE2fGgBWl7ScO4syFXniy9C0oNtplmGYzOFv3zRZtWoVNE3DZZdd5j525JFH4qqrrorZbt++fTjzzDPR0NCAGTNmYPPmze5zb731Fk4++WSMHDkS999/PwCgubkZc+fOxeTJkzF+/Hg899xzaY0n1X6PPPIIGhoaMGHCBFxwwQV45ZVX8Pzzz+O6667DxIkT8fHHH2Px4sV46qmn8I9//ANnn322u++aNWtw+umnAwBeeOEFzJw5E5MnT8bChQvR3NycdDz19fX48Y9/jGnTpmHatGn46KOPAADbt2/H3Llz0dDQgLlz5+LTTz+FYRgYPnw4pJQ4cOAAhBB46aWXAADHH388PvroI7S0tODiiy/G1KlTMWnSJPf9Pfzww1i4cCFOP/10zJs3L63PiulZutNZpGlBaFow5TZuFzRXNIp1FplJnEVWGZo1KSJBkKafsyiQUJ7m3d+ZVAW1IFpaWqAqKhRFgZmxs0gm3PwEY8SiRGeRmzVh/x0MBtHW1pb2TZQQAtJerWcYhsk3Vnmsfa0TVsC1I75LO9jWud7Fi+tMdpSWlrguEaa4yNZZhBRikaHrGYmHoRw7i+JL9tPB6yzSbWcRAM4tZpgsSS0nFzBrX1vX7cecPX1W0ufeeecdTJ48udNj3HTTTZg0aRKeffZZrFq1ChdeeCE2bdoEANi8eTNeffVVtLS0YNKkSTjttNPQr18/PPPMM6isrMSePXswY8YMnHHGGZ3eYIdCId/9tm7dip///OdYt24damtrsW/fPtTU1OCMM87A/PnzsWDBgpjjnHLKKfje976HlpYWlJWV4YknnsCiRYuwZ88e3HrrrVi5ciXKyspw22234Y477sDPfvazpGOqrKzEv/71LzzyyCP4j//4D/ztb3/DlVdeiQsvvBAXXXQR/vCHP+Dqq6/Gs88+i1GjRmHr1q3Ytm0bjj32WLz88suYPn06duzYgaOOOgo33HADTj75ZPzhD3/AgQMHMG3aNNcJtX79emzevBk1NTWd/j6YnicQCPg6a7LJLOpf16/TbeKdRSLeWeSKRbFj0mMCrikhyDqaWZTEWeSZVAWDQTS3tkBVVShCQdjoSOftRcfo0+FD8xOLYrqh2eV3njG0tbel7yyK+9wYhmHyjVuGRoRIJIxQqASGYbglyc49LpehdQ+qoqJfbV2+h8FkgaoGILPoRObX/dUhHIkgoKbfjcvqxJo7V7/MwlkUE3BtWo1LvOX9DMNkRtGKRamEnVzw/e9/H2vXroWmabj99tvdx9euXYunn34aAHDyySdj7969OHjwIADgW9/6FkpKSlBSUoI5c+bgX//6F0477TTccMMNeOmllyCEwOeff45du3bhiCOOSPn6Ukrf/VatWoUFCxagtrYWADoVVFRVxde//nX89a9/xYIFC/A///M/+OUvf4kXX3wRW7duxaxZ1uccDocxc+bMlMc699xz3b+vueYaAJaw85e//AUAcMEFF+BHP/oRAMtB9NJLL2Hbtm34yU9+gvvvvx8nnngipk6dCsByNT3//PNuzlN7ezs+/fRTAJbAxUJR4XBEvyN8JyKu4NEDK8KOSGMdP7akzBWLfLqhqTFlaLFjNg27DC2Vs8juGhLSgmhqabbGoShZdENLXC3TAsHUYpEr9ljvIRQMorWNxSKGYYqTWDFcIByJoLqqGuFIBBD2QgNFn2eYw5mAqmY81wCSl6FFIhFE9AhKSkrSPpYiFJgZNvToCtk4i2ICru1FQlVRObKIYbKkaMWiXDN27FhXBAKAe+65B3v27MGUKVNitkt50xx3pSIirFixArt378brr7+OQCCA+vp6tKdh8Uy2XzqdkeJZtGgR7rnnHtTU1GDq1KmoqKiAlBKnnHIKHnvssbSP433dZGNwHj/++ONx7733YufOnbj55ptx++23Y82aNTjhhBMAWJ/j008/jaOPPjpm/9deew1lZWUZvT+mZ/HmTsQ/DvTMJH9ywyRXuBFEMTlDbmZR3AqcYVht7p2xxWcTGaaZ2llk6K7YFAwG8eVXu1BeXg5FERl3Q5PSTK8MzUcscsvQtCCamvdmLhbxTRfDMAWAtdpv/9teVAgGrTIXIgIJT9g/3+kxhzmqqkJk4SxKJhYdaj6EivKKzJqQCAEzC8EqW6y5UhecRYYBRXFyuvgawjDZwHcNaXLyySejvb0dv/vd79zHWltbE7Y74YQTsGLFCgBW/k9tbS0qKysBAM899xza29uxd+9erFmzBlOnTsXBgwfRr18/BAIBrF69Gtu3b09rPMn2mzt3Lp588kns3bsXgJWhBAAVFRVoamryPdZJJ52EN954A/fffz8WLVoEAJgxYwbWrVvnZg+1trbigw8+SDmmJ554wv3bcSEdd9xxePzxxwFYAtfs2bMBANOnT8crr7wCIQRCoRAmTpyI++67D8cffzwA4NRTT8Xdd9/tXvDffPPNtD4XpnDoSWeRFtDcfwsR6xJyStLiy9C8mUXx+wC2XVlRE8rTHHQ9un9QCyKiR1yHU6bd0PzawXZWhuZ2Q3MFqxBa21ozCrgWlF7nNIZhmJ7GEoSiXS0ByzFpGIab68bd0BjGok91H9TW1GaxZxKxqOkQKisqMzqS5aQ2kzqwuxs/F3ZnJIhFQoFqNydhGCZzWCxKEyLCs88+ixdffBHDhg3DtGnTcNFFF+G2226L2W7p0qXYuHEjGhoacP3112P58uXuc9OmTcNpp52GGTNm4MYbb8TAgQNx/vnnY+PGjZgyZQpWrFiB0aNHpzWeZPuNHTsWP/3pT3HiiSdiwoQJ+OEPfwgAOOecc3D77bdj0qRJ+Pjjj2OOpSgK5s+fj3/84x+YP38+AKCurg4PP/wwzj33XDes+7333ks5po6ODkyfPh133XUXfv3rXwMAli1bhoceeggNDQ149NFHcddddwGwnBlDhgzBjBkzAFhOo6amJowfPx4AcOONNyISiaChoQHjxo3DjTfemNbnwhQOPeksin0dEeMGMk0TihAJAde6pwzNmUx4JzymYSIQCMTkH3kxPC1mg0HLoRTItgzNpx1sSagEleUV1vh8VtPdINi4m6pMAq65BI1hmEIiKow7wf0hGIZh57oJt+yWb/SYw52y0jLUVPfJeD8iskPjY+c2h5qa3DlHJsdK1V2tu/FzYXeGd3y6adhNWFQ2FjFMlnAZWgYMGDDAdcnEc9JJJwGwMoL8OpotXbrUd7/a2lqsX7/e97lU3cdS7XfRRRfhoosuinls1qxZ2Lp1q/vzww8/HPP8b37zG/zmN7+Jeezkk0/Ghg0bko4hnu9///u46aabYh6rr6/HqlWrfLd/+eWX3X+fd955OO+889yfS0pKcN999yXss3jxYixevDjtMTH5oyedRV6sbmjRiYuUJgKa5ptZ5A24diYUH37yEY4aNiIacJ3MWWTEOosAuN3QMnUWSR9nUSAQwOiRo93xef+23qeAIqKrY84Y4o+TDCGIxSKGYQoGbwmzcx0LBYMwTAOmaYJsZ1GyUmeGYTqnJBSCFtDwyfZt6F/XD/sP7Ee/un5oaW1BRYZiEQDXTZ2L+YRpZh6tkViGZnXsjV9AZBgmPfjOgWGYHiGfziItoCVMDLxikTM+wzTw1Z6v0NLaAtM0oSrJM4sMPZpZpCgKVFWFqgasiVMWzqJUn4t/NzQBRYnuY5XApe8WEkJhsYhhmIKBQG75GdllslpAs8rQpIQQBEXh0lmG6QpCCIw9+hgcajqErR+8i+aWZrz59iaUlZTGzIkyOZ6RZJ7U3UjbYZgJhESxiAOuGSZ72FlU4Lz99tu44IILYh4LBoN47bXX8jKes846C9u2bYt57LbbbkNjY2NexsMULsmC3bubeGeRaZrQNC0hKN4w9ASxKBwOAwCaW5rdMi2nPC1+3FYZW/SSGdSCVuCkIrLKLHICuv1I5ixySjKc54LBUMxjqWBnEcMwhQRRtPxMEEFVVfeapxu6e03mUH6G6RqqqmLiuAkArLnDl199mVAKny6KkruQa2thLUNnkfB2QzNdZxHXoTFMdrBYVOCMHz8emzZtyvcwXJ555pl8D4EpEohyI06IZM4iIzGzSPGIPYKEKxYdam5yS7wcC3OiWKRDUaPCTE2fGpSVWitzmbaS7azDh3/ANSWsAgaDwQzK0DiziGGYAsLueAYAJAQCgYB1nRMK9IjuOo2G1w/L80AZpvjxzieO6HdE1scRQknqwO5upGlmHnCNaCalaWceccA1w2QPi0UMw/QIhNzkTJCgmJwhU0oEVNWaKJhRC7PhCbh29usId4CI0NTcBKFEu+6Y0oSIq9I14pxFRw4eCgDuhMRPYEqGacqUwo2fWFRaWooB/QfEbBfSgmlnQnk7CzEMw+QbomgZmuMsAqwy345wB0hY3yH9avvlc5gMw3hQROZu6mwxpUQgq8wi0y1BsxbaVPYVMUyW8J0DwzA9Qi6dRdKMLUMTQkBVVNddJKVMyCwSJNARDqO8rBzt7e1Q7HIuIWKP56DreowzycFx/GQyeTKlmdIC7icWBdQAjujXP2a7yspKlJaUpfWa7CxiGKaQsBYUoiJ9wCMWAT2fd8cwTObk0lnkBN1ngiUWOW5y61qiKgo4tIhhsoOdRQzD9AiapmH0UUf3+OsIIWKdRY5YpFrdL7SABsM03K46DlZmUQcqysvR2toCRUSzM/w6ohmGDlX1zwdyuoOkyiHy4tcNzY/OnEp1fevSej2AxSKGYQoLK7PI7u4YDLk3oK5YxNcrhik4hJLLgGuZdqm9gxACEhK6HnEXAdlZxDDZw9/EaXLgwAH89re/7fHXWbNmDV555ZUefx2G6WmICFWVVTl5Hac+HYi6dlRFdTuixZegAU4ZWhiBgIbSklII+3lK5iyKK0PzoiiZdUQzpUzPWdSN0xsWixiGKSg8ZWi1NX0xZNAQAFGxiDNGGKbwUIQCM2dlaNk5i8rLyrFv/z73WqIFAu4cj2GYzOA7hzTJVCxy8lIyhcUihskMbyg14Lh2BFQ1WoZmxIVbA9GA64AaQGlpWbQMjUSCs8ivjM2LkmFHtHScRaqqdqu4o6oBBNRAtx2PYRimKxDIN7zWuRazWMQwhYcQOXQWpenCjqemTw12793jztkqKypz4nRnmN5IWnciRPR1InqfiD4iout9nl9MRLuJaJP95xLPcxcR0Yf2n4u6c/C55Prrr8fHH3+MiRMn4pprrsHcuXMxefJkjB8/Hs899xwAoLGxEWPGjMEVV1yByZMn47PPPsODDz6IUaNG4aSTTsKll16KK6+8EgCwe/du/Nu//RumTp2KqVOnYt26dWhsbMS9996LX//615g4cSJefvnlfL5lhikayFM6ZoVHW2GpXmdRvNAjyAq4DgQCblczwA7MjpsIeYMS/RAi08wi2Wkex7ENk7tVLKrrW4vhR3JXIYZhCgNvGZoXRVESyoYZhikMFEXAzMBJ3RU6c2Eno291Ddra22JciskW+xiGSU2nARtEpAC4B8ApAHYA2EBEz0spt8Zt+oSU8sq4fWsA3ARgCgAJ4HV73/1dGbS5bw1keHdXDpEAaXUQNSclff4Xv/gFtmzZgk2bNkHXdbS2tqKyshJ79uzBjBkzcMYZZwAA3n//fTz00EP47W9/i507d+KWW27BG2+8gYqKCpx88smYMGECAOAHP/gBrrnmGsyePRuffvopTj31VLz77ru47LLLUF5ejmuvvbZb3x/D9GbcUGoF0VapigpdtyY0Vjh1fBma5QbSAgFUVVaipk9f61gkXJeSg27oCWVsXqwytPRX2sw02sEGAt3rAuIbL4ZhCgpPGZqXVMI8wzD5RYjM5jtdQZqm7zWiM0pKShAKhlyXIsMw2ZNOGus0AB9JKT8BACJ6HMC3AMSLRX6cCuD/SSn32fv+PwBfB/BYdsMtDKSUuOGGG/DSSy9BCIHPP/8cu3btAgAceeSRmDFjBgDgX//6F0488UTU1NQAABYuXIgPPvgAALBy5Ups3Rr9CA8dOoSmpqYcvxOG6R2IGGeRpwxNjwAAInoEWpz44tyMBNQAVEV184iEEAnOIl1PLGPzkmk3NCmzmwAxDMP0FqxuaMmdRQzDFB6KyKzsviuYUmZ1LSAi1PTp45s/yTBMZqQjFg0C8Jnn5x0Apvts929EdAKADwBcI6X8LMm+g/xehIiWAFgCAEOHDk05oFQOoFywYsUK7N69G6+//joCgQDq6+vR3t4OACgri7axjncneDFNE+vXr0dJSUmPj5dhejveUGqvWNTe0QEAVjZRQIvZxxFr4h08Vklb7P9dqxNaCrFIKBnZsq1SOb4ZYhjm8MXKm/PJLFKUTst0GYbJD0IoCEciOXktaZpZuwyHDBySMwcUw/Rm0vk29vtfGq+C/BVAvZSyAcBKAMsz2Nd6UMrfSymnSCmn1NWl3w46V1RUVLjOn4MHD6Jfv34IBAJYvXo1tm/f7rvPtGnT8OKLL2L//v3QdR1PP/20+9y8efPwm9/8xv1506ZNCa/DMEx6eEOpHbFI04IIR8IAgHAkAk2LFYuIrO5gCVlGQkDGO4uMxDI2L4oioGeUWZT9BIhhGKY3UF1ZhYry8oTHFaFkFWrLMEzPk+vMomwX1gKBAELBYDePiGEOP9L5H7gDwBDPz4MB7PRuIKXcK6XssH+8H8Cx6e5bLPTt2xezZs3CuHHjsGnTJmzcuBFTpkzBihUrMHr0aN99Bg0ahBtuuAHTp0/H1772NRxzzDGoqrJaiS9btgwbN25EQ0MDjjnmGNx7770AgNNPPx3PPPMMB1wzTAZ4Q6ml3Wo1qGkIhx2xKJxQhiYE+XYH85a0ORi60UlmkZphNzR2FjEMc3hT27cWlRWVCY9bmUV8fWSYQsSvVL+nkLywxjB5J50ytA0ARhLRMACfAzgHwHneDYhogJTyC/vHMwC8a//7/wD8FxH1sX+eB+AnXR51nvjTn/7U6TZbtmyJ+fm8887DkiVLoOs6zjrrLMybNw8AUFtbiyeeeCJh/1GjRmHz5s3dM2CGOUzwhlI73dAURUNHOFqGpgUSnUV+IdIkBEzTL+A6+eVSVRT3tdLBCeFmGIZhYuHMIoYpXBShwDByIxZxyT7D5J9OxSIppU5EV8ISfhQAf5BSvkNENwPYKKV8HsDVRHQGAB3APgCL7X33EdEtsAQnALjZCbs+XFi6dClWrlyJ9vZ2zJs3D2eeeWa+h8QwvQ5BUWeRU4YWUAOIRCKQUiISCfuUoZGvWGQJT/EB151kFikqdL017fFa3dB4tYxhGCYeVVX5BpFhChTLWZSbMjR2FjFM/knHWQQp5d8B/D3usZ95/v0TJHEMSSn/AOAPXRhjUfOrX/0q30NgmF4PCY+zyHbtOCHX4UgY4XAkwVkkhL+zSHhK2hzCkQhKS0qTvr6qKjAMPe3xSinZWcQwDONDVUUljh4xKt/DYBjGB0VRchYcbZo8V2KYfMP/AxmGKXoEiQRnEQAEtSDa2togpUwIqCYiaD6ZRUQioRtaJBJJyDzyoipqZgHXnjEyDMMwUYgIQQ6mZZiCJOeZRezCZpi8kpaziGEYppAhYbW7l1LGCDGapqG5pRkBLZBgZa6sqIAiEkOrhaCEbmgRPeLrQnJQFAW6np6zyHFAsbWaYRiGYZhiwsosymE3NHYWMUxeYbGIYZiiR5DV7l5KCSJyhZigFkRTS3NCCRoA1NbUJj1WvLMoHAmnFIvUDLqhsauIYRiGYZhiJJfOIs53ZJj8w3csDMMUPUJY7e6tvKLoxCKoaWhu9heLkkE+EyGrDC35MRRVgZ5mZpHJgY0MwzAMwxQhVmZRrgKu2VnEMPmG/wfmkfLycgDAzp07sWDBgpTb3nnnnWhtjXZb+uY3v4kDBw706PgyZc2aNZg/fz4A4Pnnn8cvfvGLPI+IOVwgstrdS1OCPK4dTdPQEe5I6ISWCkGxZWimacI0zYTMIy+Os0jGOZL8kNwKlmEYhmGYIiRXziJpRwvw4hrD5Jdefcfy1aF2nH3fenzV1J6z18ymjnfgwIF46qmnUm4TLxb9/e9/R3V1dcavlSvOOOMMXH/99fkeBnOYIARBSjOhxCuoWSGpqcKpE48VW4YWjkQQUBMzj+L3AZDWBMrp1sYwDMMwDFNMEJGbD9mTxMcKMAyTH3r1Hcuyf36IDY37sOyfH3X5WI2NjRg9ejQuuugiNDQ0YMGCBa54U19fj5tvvhmzZ8/Gn//8Z3z88cf4+te/jmOPPRbHH3883nvvPQDAtm3bMHPmTEydOhU33nhjzLHHjRsHwBKbrr32WowfPx4NDQ24++67sWzZMuzcuRNz5szBnDlz3Nfcs2cPAOCOO+7AuHHjMG7cONx5553uMceMGYNLL70UY8eOxbx589DW1pbwvhYvXozLL78cc+bMwfDhw/Hiiy/i4osvxpgxY7B48WJ3uxdeeAEzZ87E5MmTsXDhQjQ3NwMA/vd//xejR4/G7Nmz8Ze//MXd/uGHH8aVV14JAPjrX/+K6dOnY9KkSfja176GXbt2AQCWLl2Kiy++GCeddBKGDx+OZcuWdfn3xByeOB3M4oUYx1GUibOIKHbVLNJJXpFDurlFXIPPMAzDMEwxQkRQFCWlWNTU3IRIJNKl1zHN2FgBhmHyQ1EGXNdf/z8Zbf/HV7fjj69uT2vbxl+clvS5999/Hw8++CBmzZqFiy++GL/97W9x7bXXAgBCoRDWrl0LAJg7dy7uvfdejBw5Eq+99hquuOIKrFq1Cj/4wQ9w+eWX48ILL8Q999zj+xq///3vsW3bNrz55ptQVRX79u1DTU0N7rjjDqxevRq1tbGhvK+//joeeughvPbaa5BSYvr06TjxxBPRp08ffPjhh3jsscdw//334+yzz8bTTz+N73znOwmvuX//fqxatQrPP/88Tj/9dKxbtw4PPPAApk6dik2bNmHw4MG49dZbsXLlSpSVleG2227DHXfcgR/96Ee49NJLsWrVKhx11FFYtGiR73uaPXs2Xn31VRARHnjgAfzyl7/Ef//3fwMA3nvvPaxevRpNTU04+uijcfnll6d1Y84wXoSwAq7jnUWuWJRBZpHjUnLoLK/Iwckt0pB6W67BZxiGYRimWBFCwDANqEluI7dt34a62joM6D8g69eQMjZWgGGY/MD/CzNgyJAhmDVrFgDgO9/5jisOAXCFkubmZrzyyitYuHAhJk6ciO9973v44osvAADr1q3DueeeCwC44IILfF9j5cqVuOyyy6Cq1gW4pqYm5ZjWrl2Ls846C2VlZSgvL8e3v/1tvPzyywCAYcOGYeLEiQCAY489Fo2Njb7HOP3000FEGD9+PPr374/x48dDCIGxY8eisbERr776KrZu3YpZs2Zh4sSJWL58ObZv34733nsPw4YNw8iRI0FEvkIUAOzYsQOnnnoqxo8fj9tvvx3vvPOO+9xpp52GYDCI2tpa9OvXz3UdMUwmCLIDruPEIkUoUFUVgUzEIjv/yCEciXS7s0iws4hhGIZhmCJEEcmdRVJKNLe2oKW1pUuvEd+whGGY/FCUzqJ8EV836/25rKwMgHUjWF1djU2bNqV1jHgyDXNLFagbDAbdfyuK4luG5t1OCBGzjxACuq5DURSccsopeOyxx2L227RpU1pjveqqq/DDH/4QZ5xxBtasWYOlS5cmHaOup9dRimG8kBAwdN23Lf3IYUehtKQko2OZcc6i9MSi9M5fU0oQO4sYhmEYhilChBAwDH+xqK29DaZposWTs5oN8Q1LGIbJD0UpFqUqFQOA/3zmbTyx8TNEjKiQElAIi6YOxa1njsv6dT/99FOsX78eM2fOxGOPPYbZs2cnbFNZWYlhw4bhz3/+MxYuXAgpJTZv3owJEyZg1qxZePzxx/Gd73wHK1as8H2NefPm4d5778VJJ50UU4ZWUVGBpqamhDK0E044AYsXL8b1118PKSWeeeYZPLwc7s0AABf/SURBVProo1m/Rz9mzJiB73//+/joo49w1FFHobW1FTt27MDo0aOxbds2fPzxxxgxYkSCmORw8OBBDBo0CACwfPnybh0bwwB2BzNpwpQyYSWqb03fzI/lcRZF9LAblJ0KJU1nkfQRtBiGYRiGYYoBK7PIf77T3NKM6soqNDU3dambGTuLGKYw6JV3LG98eiBGKAKAiCHxxvb9XTrumDFjsHz5cjQ0NGDfvn24/PLLfbdbsWIFHnzwQUyYMAFjx47Fc889BwC46667cM8992Dq1Kk4ePCg776XXHIJhg4dioaGBkyYMAF/+tOfAABLlizBN77xDTfg2mHy5MlYvHgxpk2bhunTp+OSSy7BpEmTuvQ+46mrq8PDDz+Mc889Fw0NDZgxYwbee+89hEIh/P73v8dpp52G2bNn48gjj/Tdf+nSpVi4cCGOP/74BLGLYboDq5WrtMOju3ZZE9k6i+zMos7gCRDDMAzDMMWKNefydxY1t7Sgqqoaqqqio6Mj69cwTXZhM0whQKnKmPLFlClT5MaNG2Mee/fddzFmzJg8jcjqLjZ//nxs2bIlb2Ngcku+zzkmfb78ahcONR9CTVUf7N63B2NGjs76WAcPHcT2z7ajYWwDAODtd7dg8MDB6FNVnXK/T7Zvg6ZpGDxgUMrt9uzbi6/2fIVjRvG5xTAMwzBMcbH1/a3oX9ff17n99ta3MXjgYOzc9QWOSLJNOjQ1N+Hjxk8wcdyErg6XYRgfiOh1KeWUzrZjyZZhmKLHKh2zA667uBKlKArCesTNA7O6oaWXWWSkkVkk2VnEMAzDMEyRIuICrk3TRDgcdsOty8vKUVZa1qWQa7MLJWwMw3QfRZlZlA/q6+vZVcQwBYoVSi2tEq8ulqGVlZZBEQr2HdiHvn36pl2Gpqgq2tvbO93O5NBGhmEYhmGKFEUR2LN/Lw4cOoCDhw6hI9wBIQRCwRBURUUgEEBZaSn27N2b9Wu0t7dBVfg2lWHyDf8vZBim6IlxFnVRiCEiDB08FNt3bEcoGIJu6AioaTqLOsksklLaziIWixiGYRiGKT76VPfBgYMHUFpShoFHDERpSSkAYO++vW52Y1lJGRpbGqHrOlTV/3bTMA1s/2w7OjrCqKqsxID+A0BEiOgRbP9sO0Z3IVKAYZjugcUihmGKHuE4i0wTQnTdtlxT3Qefff4Ztrz7DoYNHZaWFVpRVOi6f3eQ1rZWNH62HfsP7Ed1VTVCwc67qzEMwzAMwxQatTW1qK1JbFhT2zf6WElJCWr61GDTlrcweuTRKC8rj9n24KGD+Hj7JygrKUXfmr748qsvcbDpEOoHH4nGzxrRt6YWlRWVPf5eGIZJDYtFDMMUPUQE0zRhStktrh0iwrjRY0FEUBQlrX1Uxb8bWmtrK95+bwsGDRiEQQMGYev7W1ES6t/lMTIMwzAMwxQiRIQR9SOwe89uvPPeVvSr6wcAaGtrRUc4DN3QceTgoajrWwciQm1NX7z/0ft4a+tm1PWtRf0Q/w7LDMPkFhaLGIYpeoQQkLazSOmmPKBktulU2xtGrLOota0V77z/DoYNrUe/WmuiNMHussYwDMMwDNObqautQ2VFJXbs3IGApqFfXX8EAgFUlJXHxAYIITBm1BhIDrZmmIKiaMWiTyNb0CFbu+14QSrF0MC4lNv8+te/xgMPPAAiwvjx4/HQQw8hFAph27ZtOOecc7Bv3z5MnjwZjz76KDRNw91334377rsPQ4cOxbPPPgtN07B27Vr85S9/wR133NFtY/fjuuuuw9///nd885vfxIgRI1BaWooLL7wwZpvGxkbMnz8/L8Hdxx13HF555ZWU29x5551YsmQJSktLe3Qsixcvxvz587FgwYIefR2m51AVFR0d7YhESqGWlORlDIrHWSSlxFd7dmPbp9swbOgwVygC4Nb2MwzDMAzD9HaCwSBGDBuR1rYsFDFMYVG0KasdshVBKuu2P50JT59//jmWLVuGjRs3YsuWLTAMA48//jgA4Mc//jGuueYafPjhh+jTpw8efPBBAMADDzyAzZs3Y9KkSfi///s/SClxyy234MYbb+zxz+e+++7DG2+8gdtvvx2XXXZZglCUbzoTigBLLGptzUwQjHd2MIcHpaWlqOlTg127d+UtPFpVLGdROBLGux++h8+/2IFxo8ehf12/zndmGIZhGIZhGIYpIIpWLMoHuq6jra0Nuq6jtbUVAwcOhJQSq1atcl0pF110EZ599ll3n0gkgtbWVgQCATz66KP45je/iT59+iR9jUceeQQNDQ2YMGECLrjgAgDA9u3bMXfuXDQ0NGDu3Ln49NNPAViOmKuvvhrHHXcchg8fjqeeegoAcMYZZ6ClpQXTp0/HE088gaVLl+JXv/oVAOD111/HhAkTMHPmTNxzzz3u6xqGgeuuuw5Tp05FQ0MD7rvvPgDAmjVrcNJJJ2HBggUYPXo0zj//fEgpAQAbNmzAcccdhwkTJmDatGloampKepx4ysvLUx5/2bJl2LlzJ+bMmYM5c+YAAF544QXMnDkTkydPxsKFC9Hc3AwAqK+vx80334zZs2fjl7/8JaZNm+a+TmNjIxoarLKfm2++GVOnTsW4ceOwZMkS930wvYPhRw5HeVk5AoH8GCYVRYGu63hry2aUhEowcdxElJeV5WUsDMMwDMMwDMMwXYHFojQZNGgQrr32WgwdOhQDBgxAVVUV5s2bh71796K6utrNNxk8eDA+//xzAMC1116LGTNmYPfu3Zg1axaWL1+OK664IulrvPPOO/j5z3+OVatW4a233sJdd90FALjyyitx4YUXYvPmzTj//PNx9dVXu/t88cUXWLt2Lf72t7/h+uuvBwA8//zzKCkpwaZNm7Bo0aKY1/j3f/93LFu2DOvXr495/MEHH0RVVRU2bNiADRs24P7778e2bdsAAG+++SbuvPNObN26FZ988gnWrVuHcDiMRYsW4a677sJbb72FlStXoqSkJOVxkuF3/KuvvhoDBw7E6tWrsXr1auzZswe33norVq5ciTfeeANTpkyJKeULhUJYu3YtfvKTnyAcDuOTTz4BADzxxBM4++yz3c9xw4YN2LJlC9ra2vC3v/0t5biY4kIIgQljG3w7dOTq9cvLylE/tB7DhtbH1OIzDMMwDMMwDMMUE3w3kyb79+/Hc889h23btmHnzp1oaWnBH//4R193ilNve8EFF+DNN9/EH//4R9xxxx24+uqr8Y9//AMLFizANddcA9M0Y/ZzHEq1tdbNbk1NDQBg/fr1OO+889xjrl271t3nzDPPhBACxxxzDHbt2pXyPRw8eBAHDhzAiSee6B7L4YUXXsAjjzyCiRMnYvr06di7dy8+/PBDAMC0adMwePBgCCEwceJENDY24v3338eAAQMwdepUAEBlZSVUVU15nGT4HT+eV199FVu3bsWsWbMwceJELF++HNu3b3ef94piZ599Np588kkAlljkPLd69WpMnz4d48ePx6pVq/DOO++kHBdTfBBRXuvdJ46bgLq++RGrGIZhGIZhGIZhuouiDbjONStXrsSwYcNQV1cHAPj2t7+NV155Beeffz4OHDgAXdehqip27NiBgQMHxuy7c+dObNiwATfddBOmTZuG9evX46c//Sn++c9/4pRTTnG3S7cDgHebYDAYs38qUh1fSom7774bp556aszja9asiXkNp9Qm2bGSHScVfsf3O+4pp5yCxx57zPcYZZ5yn0WLFmHhwoX49re/DSLCyJEj0d7ejiuuuAIbN27EkCFDsHTpUrS3t6c9RoZhGIZhGIZhGIY5XGBnUZoMHToUr776KlpbWyGlxD//+U+MGTMGRIQ5c+a4eUHLly/Ht771rZh9b7zxRtxyyy0AgLa2NhARhBAJ4c1z587Fk08+ib179wIA9u3bB8DqHOaEaa9YsQKzZ8/O6j1UV1ejqqrKdSatWLHCfe7UU0/F7373O0QiEQDABx98gJaWlqTHGj16tCuCAUBTUxN0Xc/4OKmoqKhAU1MTAGDGjBlYt24dPvroIwBAa2srPvjgA9/9RowYAUVRcMstt7iuIkcYqq2tRXNzs/v7YhiGYRiGYRiGYRgmlqJ1FgWpFB0yOxEi2fFSMX36dCxYsACTJ0+GqqqYNGkSlixZAgC47bbbcM455+A///M/MWnSJHz3u99193vzzTcBAJMmTQIAfPe738X48eMxZMgQ3HTTTTGvMXbsWPz0pz/FiSeeCEVRMGnSJDz88MNYtmwZLr74Ytx+++2oq6vDQw89lPX7fOihh3DxxRejtLQ0xv1zySWXoLGxEZMnT4aUEnV1dTFB3fFomoYnnngCV111Fdra2lBSUoKVK1dmfJxULFmyBN/4xjcwYMAArF69Gg8//DDOPfdcdHR0AABuvfVWjBo1ynffRYsW4brrrnPzkqqrq3HppZdi/PjxqK+vd8vnGIZhGIZhGIZhGIaJhQqxI9SUKVPkxo0bYx579913MWbMmDyNiDkc4XOOYRiGYRiGYRiG6U0Q0etSyimdbcdlaAzDMAzDMAzDMAzDMIwLi0UMwzAMwzAMwzAMwzCMS1GJRYVYMsf0TvhcYxiGYRiGYRiGYQ5XikYsCoVC2Lt3L9/EMz2OlBJ79+5FKBTK91AYhmEYhmEYhmEYJucUTTe0wYMHY8eOHdi9e3e+h8IcBoRCIQwePDjfw2AYhmEYhmEYhmGYnFM0YlEgEMCwYcPyPQyGYRiGYRiGYRiGYZheTdGUoTEMwzAMwzAMwzAMwzA9D4tFDMMwDMMwDMMwDMMwjAuLRQzDMAzDMAzDMAzDMIwLFWJ3MSLaDWB7lrtXATjYjcPJBcU45niGAvg034PIkt7w+Rf7eyjm88eh2H8HQPG/Bz6P8ksxj92Bz6H8UIxjjqeYz53e8PkX+3so5vPHodh/B0Bxvwc+h/JPsYy/FkCZlLKusw0LUizqCkT0eynlknyPIxOKcczxENHudE64QqSXfP5F/R6K+fxxKPbfAVD874HPo/xSzGN34HMoPxTjmOMp5nOnl3z+Rf0eivn8cSj23wFQ3O+Bz6H8UyzjJ6KNUsop6WzbG8vQ/prvAWRBMY45ngP5HkAX6A2ff7G/h2I+fxyK/XcAFP974PMovxTz2B34HMoPxTjmeIr53OkNn3+xv4diPn8civ13ABT3e+BzKP8U+/gT6HXOIiY/ZKJQMkw8fP4w3QGfR0xX4XOIyRY+d5iuwOcP01X4HGLS5XB3FjH54ff5HgBT1PD5w3QHfB4xXYXPISZb+NxhugKfP0xX4XOISZe0zxV2FjEMwzAMwzAMwzAMwzAu7CxiGIZhGIZhGIZhGIZhXFgsYhiGYRiGYRiGYRiGYVxYLGLShojOIiJJRKPzPRameCGi5k6eX0NEHNDHJEBEg4noOSL6kIg+JqK7iEhLsf1/EFFpLsfIFAedXYcYxg+eBzHdAc+DmGzheRCTa1gsYjLhXABrAZyTyU5EpPTMcBiGOVwgIgLwFwDPSilHAhgFoBzAz1Ps9h8AeJLEMEx3wfMghmHyAs+DmHzAYhGTFkRUDmAWgO/CniQR0UlE9BIRPUNEW4noXiIS9nPNRHQzEb0GYGb+Rs4UIva58zfPz78hosV5HBJT+JwMoF1K+RAASCkNANcAuJiIyojoV0T0NhFtJqKriOhqAAMBrCai1XkcN1OgEFE5Ef2TiN6wz51v2Y/XE9G7RHQ/Eb1DRC8QUUm+x8vkF54HMd0Jz4OYLOB5EJNz1HwPgCkazgTwv1LKD4hoHxFNth+fBuAYANsB/C+AbwN4CkAZgC1Syp/lZbQMw/Q2xgJ43fuAlPIQEX0K4BIAwwBMklLqRFQjpdxHRD8EMEdKuScP42UKn3YAZ9nnUS2AV4noefu5kQDOlVJeSkRPAvg3AH/M10CZgoDnQQzD5BOeBzE5h51FTLqcC+Bx+9+P2z8DwL+klJ/Y6vZjAGbbjxsAns7tEBmG6cUQAJnk8RMA3Cul1AFASrkvlwNjihYC8F9EtBnASgCDAPS3n/v/7d1/qN9VHcfx56u57MfmcOHKbHlXKCLaZuYCKTDCiBBa4DAnqRCVgdEPBokI/iUMKvuBWNgPZmGItX5oVPaD/SGxYm5u07VK2UpHwxus3Cxcbnv3x+fs27c1d3e3u+/33u+eD7jcz+d8z+ec9/dyOffwvuec746q2tSuNwBjgw9P04zzIEnD5DxIA+fKIk0oyWvolj5elKSAWXSD1U/5/0Hr0P0LbeIkHcl+/jdZ/YphBaIZYyvd6o6eJGcAC4HtHHkCJR3NdcBZwKVV9WKSP/PfsWhfX70DgNvQTmHOg3QSOA/SZDkP0sC5skjH4mrg21V1blWNVdVCYAfdf8+WJlnU9uhfQ3fwozSRvwAXJjk9yTzg3cMOSNPer4FXJbkeegfGfgFYDfwCuCnJae21+e2ZvcDcwYeqGWIeMN4SRe8Czh12QJq2nAdpqjkP0mQ5D9LAmSzSsbgW+OFhZWuAFcA6YBXwBN3E6fB6Uk/7I7avqp4BHgC2APcBjw01ME17VVXAB4DlSZ4E/kR35sytwDeAp4EtSTbTjU0A9wA/82BH9Ts0DtGNPW9L8ijdKqM/DDUwTWfOgzQlnAfpeDkP0jCk+72TJi/JFcDKqrpq2LFoZkiyGPh6VS0ddiySTk2OQ5oqzoM0WY4/kmYSVxZJGogkN9Ed/nnbsGORdGpyHJI0LI4/kmYaVxZJkiRJkiSpx5VFkiRpJCVZmGRtkm1Jtib5ZCufn+SXSZ5s389s5RckWZdkX5KVh7X13iR/TPJUkluG8X4kSZIGxZVFkiRpJCU5Gzi7qjYmmQtsAJYBNwK7q2pVS/ycWVWfTbKA7lPRlgF/r6rPt3Zm0R0meiWwE1gPXFtVvx/4m5IkSRoAVxZJkqSRVFW7qmpju94LbAPOAd4P3Nuq3UuXHKKqxqtqPfDiYU0tBZ6qqu1V9W/g/taGJEnSSDJZJEmSRl6SMeAS4HfAa6tqF3QJJWDBBI+fAzzTd7+zlUmSJI0kk0WSJGmkJZkDrAE+VVV7jqeJI5S5j1+SJI0sk0WSJGlkJZlNlyi6r6p+0IqfbecZHTrXaHyCZnYCC/vu3wD8dapjlSRJmi5MFkmSpJGUJMA3gW1VdWffSw8CN7TrG4AfT9DUeuC8JIuSvBz4YGtDkiRpJPlpaJIkaSQleQfwCPA4cLAV30p3btEDwBuBp4HlVbU7yeuAR4EzWv3ngQurak+S9wFfAmYB36qqOwb6ZiRJkgbIZJEkSZIkSZJ63IYmSZIkSZKkHpNFkiRJkiRJ6jFZJEmSJEmSpB6TRZIkSZIkSeoxWSRJkiRJkqQek0WSJEmSJEnqMVkkSZJGUpIDSTYl2Zpkc5LPJDnq3CfJWJIVx9HXxa2vTUl2J9nRrn+V5PVJvn/870SSJGmwUlXDjkGSJGnKJXm+qua06wXAd4HfVNXtR3nmCmBlVV11Av2uBn5SVSaIJEnSjOTKIkmSNPKqahz4KHBzOmNJHkmysX1d3qquAt7ZVgV9OsmsJJ9Lsj7JliQfm2zfra8n2vWNSX6U5KG2+ujmtuLpsSS/TTK/1Xtzkp8n2dDivGCqfhaSJEkTMVkkSZJOCVW1nW7uswAYB66sqrcC1wBfadVuAR6pqiVV9UXgw8BzVXUZcBnwkSSLTjCUi4AVwFLgDuBfVXUJsA64vtW5B/hEVV0KrATuPsE+JUmSjtlpww5AkiRpgNK+zwbuSrIEOACc/xL13wO8JcnV7X4ecB6w4wRiWFtVe4G9SZ4DHmrlj7e+5gCXA99LDoXL6SfQnyRJ0qSYLJIkSaeEJG+iSwyNA7cDzwKL6VYbvfBSj9Gt8Hl4CkPZ13d9sO/+IN3c7GXAP6pqyRT2KUmSdMzchiZJkkZekrOArwF3VffpHvOAXVV1EPgQMKtV3QvM7Xv0YeDjSWa3ds5P8uqTGWtV7QF2JFne+kySxSezT0mSpH6uLJIkSaPqlUk20W052w98B7izvXY3sKYlZNYC/2zlW4D9STYDq4EvA2PAxnR7wv4GLBtA7NcBX01yW4v/fmDzAPqVJEki3T/XJEmSJEmSJLehSZIkSZIkqY/b0CRJkiYhycV0W9r67auqtw8jHkmSpKnmNjRJkiRJkiT1uA1NkiRJkiRJPSaLJEmSJEmS1GOySJIkSZIkST0miyRJkiRJktRjskiSJEmSJEk9/wEfB6OJHI8JYQAAAABJRU5ErkJggg==\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(20,6))\n",
"timeseries[800:-len(list_of_df)].plot(color='#C3C8C4', linewidth=1.0)\n",
"p10 = list_of_df['0.1']\n",
"p90 = list_of_df['0.9']\n",
"plt.fill_between(p10.index, p10, p90, color='#C5F7AB', alpha=0.5, label='80% confidence interval')\n",
"actual_data.plot(color='#FCE08F', label='target')\n",
"list_of_df['0.5'].plot(marker='^', linewidth=3.0, label='prediction median')\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"# Additional features\n",
"\n",
"DeepAR has additional features such as handling the missing values as below:\n",
"\n",
"* missing values: DeepAR can handle missing values in the time series during training as well as for inference.\n",
"* Additional time features: DeepAR provides a set default time series features such as hour of day etc. However, you can provide additional feature time series via the `dynamic_feat` field. \n",
"* generalize frequencies: any integer multiple of the previously supported base frequencies (minutes `min`, hours `H`, days `D`, weeks `W`, month `M`) are now allowed; e.g., `15min`. We already demonstrated this above by using `2H` frequency.\n",
"* categories: If your time series belong to different groups (e.g. types of product, regions, etc), this information can be encoded as one or more categorical features using the `cat` field.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Based on the previous results, we will be able to impelement the advanced models to support the above features."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Delete endpoints"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"predictor.delete_endpoint()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "conda_mxnet_p36",
"language": "python",
"name": "conda_mxnet_p36"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.4"
},
"notice": "Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with the License. A copy of the License is located at http://aws.amazon.com/apache2.0/ or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License."
},
"nbformat": 4,
"nbformat_minor": 2
}