Files
pandas-ta/examples/PandasTA_Strategy_Examples.ipynb
T
2021-02-22 10:32:26 -08:00

2935 lines
214 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Pandas TA ([pandas_ta](https://github.com/twopirllc/pandas-ta)) Strategies for Custom Technical Analysis\n",
"\n",
"## Topics\n",
"- What is a Pandas TA Strategy?\n",
" - Builtin Strategies: __AllStrategy__ and __CommonStrategy__\n",
" - Creating Strategies\n",
"- Watchlist Class\n",
" - Strategy Management and Execution\n",
" - **NOTE:** The **watchlist** module is independent of Pandas TA. To easily use it, copy it from your local pandas_ta installation directory into your project directory.\n",
"- Indicator Composition/Chaining for more Complex Strategies\n",
" - Comprehensive Example: _MACD and RSI Momo with BBANDS and SMAs 50 & 200 and Cumulative Log Returns_"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Pandas TA v0.2.45b0\n",
"To install the Latest Version:\n",
"$ pip install -U git+https://github.com/twopirllc/pandas-ta\n",
"\n",
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"source": [
"%matplotlib inline\n",
"import datetime as dt\n",
"\n",
"import pandas as pd\n",
"import pandas_ta as ta\n",
"from alphaVantageAPI.alphavantage import AlphaVantage # pip install alphaVantage-api\n",
"\n",
"from watchlist import Watchlist # Is this failing? If so, copy it locally. See above.\n",
"\n",
"print(f\"\\nPandas TA v{ta.version}\\nTo install the Latest Version:\\n$ pip install -U git+https://github.com/twopirllc/pandas-ta\\n\")\n",
"%pylab inline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# What is a Pandas TA Strategy?\n",
"A _Strategy_ is a simple way to name and group your favorite TA indicators. Technically, a _Strategy_ is a simple Data Class to contain list of indicators and their parameters. __Note__: _Strategy_ is experimental and subject to change. Pandas TA comes with two basic Strategies: __AllStrategy__ and __CommonStrategy__.\n",
"\n",
"## Strategy Requirements:\n",
"- _name_: Some short memorable string. _Note_: Case-insensitive \"All\" is reserved.\n",
"- _ta_: A list of dicts containing keyword arguments to identify the indicator and the indicator's arguments\n",
"\n",
"## Optional Requirements:\n",
"- _description_: A more detailed description of what the Strategy tries to capture. Default: None\n",
"- _created_: At datetime string of when it was created. Default: Automatically generated.\n",
"\n",
"### Things to note:\n",
"- A Strategy will __fail__ when consumed by Pandas TA if there is no {\"kind\": \"indicator name\"} attribute."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Builtin Examples"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### All"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"name = All\n",
"description = All the indicators with their default settings. Pandas TA default.\n",
"created = 02/22/2021, 10:20:59\n",
"ta = None\n"
]
}
],
"source": [
"AllStrategy = ta.AllStrategy\n",
"print(\"name =\", AllStrategy.name)\n",
"print(\"description =\", AllStrategy.description)\n",
"print(\"created =\", AllStrategy.created)\n",
"print(\"ta =\", AllStrategy.ta)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Common"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"name = Common Price and Volume SMAs\n",
"description = Common Price SMAs: 10, 20, 50, 200 and Volume SMA: 20.\n",
"created = 02/22/2021, 10:20:59\n",
"ta = [{'kind': 'sma', 'length': 10}, {'kind': 'sma', 'length': 20}, {'kind': 'sma', 'length': 50}, {'kind': 'sma', 'length': 200}, {'kind': 'sma', 'close': 'volume', 'length': 20, 'prefix': 'VOL'}]\n"
]
}
],
"source": [
"CommonStrategy = ta.CommonStrategy\n",
"print(\"name =\", CommonStrategy.name)\n",
"print(\"description =\", CommonStrategy.description)\n",
"print(\"created =\", CommonStrategy.created)\n",
"print(\"ta =\", CommonStrategy.ta)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Creating Strategies"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Simple Strategy A"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Strategy(name='A', ta=[{'kind': 'sma', 'length': 50}, {'kind': 'sma', 'length': 200}], description='TA Description', created='02/22/2021, 10:20:59')"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"custom_a = ta.Strategy(name=\"A\", ta=[{\"kind\": \"sma\", \"length\": 50}, {\"kind\": \"sma\", \"length\": 200}])\n",
"custom_a"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Simple Strategy B"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Strategy(name='B', ta=[{'kind': 'ema', 'length': 8}, {'kind': 'ema', 'length': 21}, {'kind': 'log_return', 'cumulative': True}, {'kind': 'rsi'}, {'kind': 'supertrend'}], description='TA Description', created='02/22/2021, 10:20:59')"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"custom_b = ta.Strategy(name=\"B\", ta=[{\"kind\": \"ema\", \"length\": 8}, {\"kind\": \"ema\", \"length\": 21}, {\"kind\": \"log_return\", \"cumulative\": True}, {\"kind\": \"rsi\"}, {\"kind\": \"supertrend\"}])\n",
"custom_b"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Bad Strategy. (Misspelled Indicator)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Strategy(name='Runtime Failure', ta=[{'kind': 'percet_return'}], description='TA Description', created='02/22/2021, 10:20:59')"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Misspelled indicator, will fail later when ran with Pandas TA\n",
"custom_run_failure = ta.Strategy(name=\"Runtime Failure\", ta=[{\"kind\": \"percet_return\"}])\n",
"custom_run_failure"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Strategy Management and Execution with _Watchlist_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Initialize AlphaVantage Data Source"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"AlphaVantage(\n",
" end_point:str = https://www.alphavantage.co/query,\n",
" api_key:str = YOUR API KEY,\n",
" export:bool = True,\n",
" export_path:str = .,\n",
" output_size:str = full,\n",
" output:str = csv,\n",
" datatype:str = json,\n",
" clean:bool = True,\n",
" proxy:dict = {}\n",
")"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"AV = AlphaVantage(\n",
" api_key=\"YOUR API KEY\", premium=False,\n",
" output_size='full', clean=True,\n",
" export_path=\".\", export=True\n",
")\n",
"AV"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Create Watchlist and set it's 'ds' to AlphaVantage"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"data_source = \"av\" # Default\n",
"# data_source = \"yahoo\"\n",
"watch = Watchlist([\"SPY\", \"IWM\"], ds_name=data_source, timed=False)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Info about the Watchlist. Note, the default Strategy is \"All\""
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Watch(name='Watch: SPY, IWM', ds_name='av', tickers[2]='SPY, IWM', tf='D', strategy[5]='Common Price and Volume SMAs')"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"watch"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Help about Watchlist"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Help on class Watchlist in module watchlist:\n",
"\n",
"class Watchlist(builtins.object)\n",
" | Watchlist(tickers: list, tf: str = None, name: str = None, strategy: pandas_ta.core.Strategy = None, ds_name: str = 'av', **kwargs)\n",
" | \n",
" | # Watchlist Class (** This is subject to change! **)\n",
" | A simple Class to load/download financial market data and automatically\n",
" | apply Technical Analysis indicators with a Pandas TA Strategy.\n",
" | \n",
" | Default Strategy: pandas_ta.CommonStrategy\n",
" | \n",
" | ## Package Support:\n",
" | ### Data Source (Default: AlphaVantage)\n",
" | - AlphaVantage (pip install alphaVantage-api).\n",
" | - Python Binance (pip install python-binance). # Future Support\n",
" | - Yahoo Finance (pip install yfinance). # Almost Supported\n",
" | \n",
" | # Technical Analysis:\n",
" | - Pandas TA (pip install pandas_ta)\n",
" | \n",
" | ## Required Arguments:\n",
" | - tickers: A list of strings containing tickers. Example: [\"SPY\", \"AAPL\"]\n",
" | \n",
" | Methods defined here:\n",
" | \n",
" | __init__(self, tickers: list, tf: str = None, name: str = None, strategy: pandas_ta.core.Strategy = None, ds_name: str = 'av', **kwargs)\n",
" | Initialize self. See help(type(self)) for accurate signature.\n",
" | \n",
" | __repr__(self) -> str\n",
" | Return repr(self).\n",
" | \n",
" | indicators(self, *args, **kwargs) -> <built-in function any>\n",
" | Returns the list of indicators that are available with Pandas Ta.\n",
" | \n",
" | load(self, ticker: str = None, tf: str = None, index: str = 'date', drop: list = [], plot: bool = False, **kwargs) -> pandas.core.frame.DataFrame\n",
" | Loads or Downloads (if a local csv does not exist) the data from the\n",
" | Data Source. When successful, it returns a Data Frame for the requested\n",
" | ticker. If no tickers are given, it loads all the tickers.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data descriptors defined here:\n",
" | \n",
" | __dict__\n",
" | dictionary for instance variables (if defined)\n",
" | \n",
" | __weakref__\n",
" | list of weak references to the object (if defined)\n",
" | \n",
" | data\n",
" | When not None, it contains a dictionary of DataFrames keyed by ticker. data = {\"SPY\": pd.DataFrame, ...}\n",
" | \n",
" | name\n",
" | The name of the Watchlist. Default: \"Watchlist: {Watchlist.tickers}\".\n",
" | \n",
" | strategy\n",
" | Sets a valid Strategy. Default: pandas_ta.CommonStrategy\n",
" | \n",
" | tf\n",
" | Alias for timeframe. Default: 'D'\n",
" | \n",
" | tickers\n",
" | tickers\n",
" | \n",
" | If a string, it it converted to a list. Example: \"AAPL\" -> [\"AAPL\"]\n",
" | * Does not accept, comma seperated strings.\n",
" | If a list, checks if it is a list of strings.\n",
" | \n",
" | verbose\n",
" | Toggle the verbose property. Default: False\n",
"\n"
]
}
],
"source": [
"help(Watchlist)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Default Strategy is \"Common\""
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[!] Loading All: SPY, IWM\n",
"[+] Downloading[av]: SPY[D]\n",
"[+] Strategy: Common Price and Volume SMAs\n",
"[i] Indicator arguments: {'timed': False, 'append': True}\n",
"[i] Multiprocessing: 8 of 8 cores.\n",
"[i] Total indicators: 5\n",
"[i] Columns added: 5\n",
"[+] Downloading[av]: IWM[D]\n",
"[+] Strategy: Common Price and Volume SMAs\n",
"[i] Indicator arguments: {'timed': False, 'append': True}\n",
"[i] Multiprocessing: 8 of 8 cores.\n",
"[i] Total indicators: 5\n",
"[i] Columns added: 5\n"
]
}
],
"source": [
"# No arguments loads all the tickers and applies the Strategy to each ticker.\n",
"# The result can be accessed with Watchlist's 'data' property which returns a \n",
"# dictionary keyed by ticker and DataFrames as values \n",
"watch.load(verbose=True)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'SPY': open high low close volume SMA_10 \\\n",
" date \n",
" 1999-11-01 136.5000 137.0000 135.5625 135.5625 4006500.0 NaN \n",
" 1999-11-02 135.9687 137.2500 134.5937 134.5937 6516900.0 NaN \n",
" 1999-11-03 136.0000 136.3750 135.1250 135.5000 7222300.0 NaN \n",
" 1999-11-04 136.7500 137.3593 135.7656 136.5312 7907500.0 NaN \n",
" 1999-11-05 138.6250 139.1093 136.7812 137.8750 7431500.0 NaN \n",
" ... ... ... ... ... ... ... \n",
" 2021-02-12 389.8500 392.9000 389.7700 392.6400 50593270.0 386.772 \n",
" 2021-02-16 393.9600 394.1700 391.5300 392.3000 50972366.0 388.379 \n",
" 2021-02-17 390.4200 392.6600 389.3300 392.3900 51746878.0 389.463 \n",
" 2021-02-18 389.5900 391.5150 387.7400 390.7200 59712773.0 390.350 \n",
" 2021-02-19 392.0700 392.3800 389.5500 390.0300 83240971.0 390.734 \n",
" \n",
" SMA_20 SMA_50 SMA_200 VOL_SMA_20 \n",
" date \n",
" 1999-11-01 NaN NaN NaN NaN \n",
" 1999-11-02 NaN NaN NaN NaN \n",
" 1999-11-03 NaN NaN NaN NaN \n",
" 1999-11-04 NaN NaN NaN NaN \n",
" 1999-11-05 NaN NaN NaN NaN \n",
" ... ... ... ... ... \n",
" 2021-02-12 383.1685 376.0518 339.57900 64453086.30 \n",
" 2021-02-16 383.9985 376.5620 340.08810 61643706.50 \n",
" 2021-02-17 384.6855 377.0760 340.63610 61669385.40 \n",
" 2021-02-18 385.0270 377.4934 341.17185 61563220.95 \n",
" 2021-02-19 385.3165 377.9122 341.69105 63327479.05 \n",
" \n",
" [5360 rows x 10 columns],\n",
" 'IWM': open high low close volume SMA_10 SMA_20 \\\n",
" date \n",
" 2000-05-26 91.06 91.44 90.630 91.44 37400.0 NaN NaN \n",
" 2000-05-30 92.75 94.81 92.750 94.81 28800.0 NaN NaN \n",
" 2000-05-31 95.13 96.38 95.130 95.75 18000.0 NaN NaN \n",
" 2000-06-01 97.11 97.31 97.110 97.31 3500.0 NaN NaN \n",
" 2000-06-02 101.70 102.40 101.700 102.40 14700.0 NaN NaN \n",
" ... ... ... ... ... ... ... ... \n",
" 2021-02-12 225.93 227.74 224.640 227.26 17440191.0 221.519 216.6535 \n",
" 2021-02-16 229.47 229.63 224.790 225.83 22999508.0 223.041 217.4075 \n",
" 2021-02-17 223.61 224.74 220.960 224.06 24950507.0 224.086 217.9380 \n",
" 2021-02-18 222.34 222.90 219.385 220.59 24501509.0 224.720 218.2480 \n",
" 2021-02-19 222.46 226.30 222.170 225.19 31238155.0 225.377 218.8810 \n",
" \n",
" SMA_50 SMA_200 VOL_SMA_20 \n",
" date \n",
" 2000-05-26 NaN NaN NaN \n",
" 2000-05-30 NaN NaN NaN \n",
" 2000-05-31 NaN NaN NaN \n",
" 2000-06-01 NaN NaN NaN \n",
" 2000-06-02 NaN NaN NaN \n",
" ... ... ... ... \n",
" 2021-02-12 204.7470 164.50945 27063635.45 \n",
" 2021-02-16 205.6058 164.98705 26161437.20 \n",
" 2021-02-17 206.4086 165.48165 26421747.15 \n",
" 2021-02-18 207.0564 165.95620 26377570.35 \n",
" 2021-02-19 207.7926 166.44890 26877632.20 \n",
" \n",
" [5216 rows x 10 columns]}"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"watch.data"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>open</th>\n",
" <th>high</th>\n",
" <th>low</th>\n",
" <th>close</th>\n",
" <th>volume</th>\n",
" <th>SMA_10</th>\n",
" <th>SMA_20</th>\n",
" <th>SMA_50</th>\n",
" <th>SMA_200</th>\n",
" <th>VOL_SMA_20</th>\n",
" </tr>\n",
" <tr>\n",
" <th>date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1999-11-01</th>\n",
" <td>136.5000</td>\n",
" <td>137.0000</td>\n",
" <td>135.5625</td>\n",
" <td>135.5625</td>\n",
" <td>4006500.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1999-11-02</th>\n",
" <td>135.9687</td>\n",
" <td>137.2500</td>\n",
" <td>134.5937</td>\n",
" <td>134.5937</td>\n",
" <td>6516900.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1999-11-03</th>\n",
" <td>136.0000</td>\n",
" <td>136.3750</td>\n",
" <td>135.1250</td>\n",
" <td>135.5000</td>\n",
" <td>7222300.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1999-11-04</th>\n",
" <td>136.7500</td>\n",
" <td>137.3593</td>\n",
" <td>135.7656</td>\n",
" <td>136.5312</td>\n",
" <td>7907500.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1999-11-05</th>\n",
" <td>138.6250</td>\n",
" <td>139.1093</td>\n",
" <td>136.7812</td>\n",
" <td>137.8750</td>\n",
" <td>7431500.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-12</th>\n",
" <td>389.8500</td>\n",
" <td>392.9000</td>\n",
" <td>389.7700</td>\n",
" <td>392.6400</td>\n",
" <td>50593270.0</td>\n",
" <td>386.772</td>\n",
" <td>383.1685</td>\n",
" <td>376.0518</td>\n",
" <td>339.57900</td>\n",
" <td>64453086.30</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-16</th>\n",
" <td>393.9600</td>\n",
" <td>394.1700</td>\n",
" <td>391.5300</td>\n",
" <td>392.3000</td>\n",
" <td>50972366.0</td>\n",
" <td>388.379</td>\n",
" <td>383.9985</td>\n",
" <td>376.5620</td>\n",
" <td>340.08810</td>\n",
" <td>61643706.50</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-17</th>\n",
" <td>390.4200</td>\n",
" <td>392.6600</td>\n",
" <td>389.3300</td>\n",
" <td>392.3900</td>\n",
" <td>51746878.0</td>\n",
" <td>389.463</td>\n",
" <td>384.6855</td>\n",
" <td>377.0760</td>\n",
" <td>340.63610</td>\n",
" <td>61669385.40</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-18</th>\n",
" <td>389.5900</td>\n",
" <td>391.5150</td>\n",
" <td>387.7400</td>\n",
" <td>390.7200</td>\n",
" <td>59712773.0</td>\n",
" <td>390.350</td>\n",
" <td>385.0270</td>\n",
" <td>377.4934</td>\n",
" <td>341.17185</td>\n",
" <td>61563220.95</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-19</th>\n",
" <td>392.0700</td>\n",
" <td>392.3800</td>\n",
" <td>389.5500</td>\n",
" <td>390.0300</td>\n",
" <td>83240971.0</td>\n",
" <td>390.734</td>\n",
" <td>385.3165</td>\n",
" <td>377.9122</td>\n",
" <td>341.69105</td>\n",
" <td>63327479.05</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5360 rows × 10 columns</p>\n",
"</div>"
],
"text/plain": [
" open high low close volume SMA_10 \\\n",
"date \n",
"1999-11-01 136.5000 137.0000 135.5625 135.5625 4006500.0 NaN \n",
"1999-11-02 135.9687 137.2500 134.5937 134.5937 6516900.0 NaN \n",
"1999-11-03 136.0000 136.3750 135.1250 135.5000 7222300.0 NaN \n",
"1999-11-04 136.7500 137.3593 135.7656 136.5312 7907500.0 NaN \n",
"1999-11-05 138.6250 139.1093 136.7812 137.8750 7431500.0 NaN \n",
"... ... ... ... ... ... ... \n",
"2021-02-12 389.8500 392.9000 389.7700 392.6400 50593270.0 386.772 \n",
"2021-02-16 393.9600 394.1700 391.5300 392.3000 50972366.0 388.379 \n",
"2021-02-17 390.4200 392.6600 389.3300 392.3900 51746878.0 389.463 \n",
"2021-02-18 389.5900 391.5150 387.7400 390.7200 59712773.0 390.350 \n",
"2021-02-19 392.0700 392.3800 389.5500 390.0300 83240971.0 390.734 \n",
"\n",
" SMA_20 SMA_50 SMA_200 VOL_SMA_20 \n",
"date \n",
"1999-11-01 NaN NaN NaN NaN \n",
"1999-11-02 NaN NaN NaN NaN \n",
"1999-11-03 NaN NaN NaN NaN \n",
"1999-11-04 NaN NaN NaN NaN \n",
"1999-11-05 NaN NaN NaN NaN \n",
"... ... ... ... ... \n",
"2021-02-12 383.1685 376.0518 339.57900 64453086.30 \n",
"2021-02-16 383.9985 376.5620 340.08810 61643706.50 \n",
"2021-02-17 384.6855 377.0760 340.63610 61669385.40 \n",
"2021-02-18 385.0270 377.4934 341.17185 61563220.95 \n",
"2021-02-19 385.3165 377.9122 341.69105 63327479.05 \n",
"\n",
"[5360 rows x 10 columns]"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"watch.data[\"SPY\"]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Loaded SPY[D]: SPY_D.csv\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>open</th>\n",
" <th>high</th>\n",
" <th>low</th>\n",
" <th>close</th>\n",
" <th>volume</th>\n",
" <th>SMA_10</th>\n",
" <th>SMA_20</th>\n",
" <th>SMA_50</th>\n",
" <th>SMA_200</th>\n",
" <th>VOL_SMA_20</th>\n",
" </tr>\n",
" <tr>\n",
" <th>date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1999-11-01</th>\n",
" <td>136.5000</td>\n",
" <td>137.0000</td>\n",
" <td>135.5625</td>\n",
" <td>135.5625</td>\n",
" <td>4006500.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1999-11-02</th>\n",
" <td>135.9687</td>\n",
" <td>137.2500</td>\n",
" <td>134.5937</td>\n",
" <td>134.5937</td>\n",
" <td>6516900.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1999-11-03</th>\n",
" <td>136.0000</td>\n",
" <td>136.3750</td>\n",
" <td>135.1250</td>\n",
" <td>135.5000</td>\n",
" <td>7222300.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1999-11-04</th>\n",
" <td>136.7500</td>\n",
" <td>137.3593</td>\n",
" <td>135.7656</td>\n",
" <td>136.5312</td>\n",
" <td>7907500.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1999-11-05</th>\n",
" <td>138.6250</td>\n",
" <td>139.1093</td>\n",
" <td>136.7812</td>\n",
" <td>137.8750</td>\n",
" <td>7431500.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-12</th>\n",
" <td>389.8500</td>\n",
" <td>392.9000</td>\n",
" <td>389.7700</td>\n",
" <td>392.6400</td>\n",
" <td>50593270.0</td>\n",
" <td>386.772</td>\n",
" <td>383.1685</td>\n",
" <td>376.0518</td>\n",
" <td>339.57900</td>\n",
" <td>64453086.30</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-16</th>\n",
" <td>393.9600</td>\n",
" <td>394.1700</td>\n",
" <td>391.5300</td>\n",
" <td>392.3000</td>\n",
" <td>50972366.0</td>\n",
" <td>388.379</td>\n",
" <td>383.9985</td>\n",
" <td>376.5620</td>\n",
" <td>340.08810</td>\n",
" <td>61643706.50</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-17</th>\n",
" <td>390.4200</td>\n",
" <td>392.6600</td>\n",
" <td>389.3300</td>\n",
" <td>392.3900</td>\n",
" <td>51746878.0</td>\n",
" <td>389.463</td>\n",
" <td>384.6855</td>\n",
" <td>377.0760</td>\n",
" <td>340.63610</td>\n",
" <td>61669385.40</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-18</th>\n",
" <td>389.5900</td>\n",
" <td>391.5150</td>\n",
" <td>387.7400</td>\n",
" <td>390.7200</td>\n",
" <td>59712773.0</td>\n",
" <td>390.350</td>\n",
" <td>385.0270</td>\n",
" <td>377.4934</td>\n",
" <td>341.17185</td>\n",
" <td>61563220.95</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-19</th>\n",
" <td>392.0700</td>\n",
" <td>392.3800</td>\n",
" <td>389.5500</td>\n",
" <td>390.0300</td>\n",
" <td>83240971.0</td>\n",
" <td>390.734</td>\n",
" <td>385.3165</td>\n",
" <td>377.9122</td>\n",
" <td>341.69105</td>\n",
" <td>63327479.05</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5360 rows × 10 columns</p>\n",
"</div>"
],
"text/plain": [
" open high low close volume SMA_10 \\\n",
"date \n",
"1999-11-01 136.5000 137.0000 135.5625 135.5625 4006500.0 NaN \n",
"1999-11-02 135.9687 137.2500 134.5937 134.5937 6516900.0 NaN \n",
"1999-11-03 136.0000 136.3750 135.1250 135.5000 7222300.0 NaN \n",
"1999-11-04 136.7500 137.3593 135.7656 136.5312 7907500.0 NaN \n",
"1999-11-05 138.6250 139.1093 136.7812 137.8750 7431500.0 NaN \n",
"... ... ... ... ... ... ... \n",
"2021-02-12 389.8500 392.9000 389.7700 392.6400 50593270.0 386.772 \n",
"2021-02-16 393.9600 394.1700 391.5300 392.3000 50972366.0 388.379 \n",
"2021-02-17 390.4200 392.6600 389.3300 392.3900 51746878.0 389.463 \n",
"2021-02-18 389.5900 391.5150 387.7400 390.7200 59712773.0 390.350 \n",
"2021-02-19 392.0700 392.3800 389.5500 390.0300 83240971.0 390.734 \n",
"\n",
" SMA_20 SMA_50 SMA_200 VOL_SMA_20 \n",
"date \n",
"1999-11-01 NaN NaN NaN NaN \n",
"1999-11-02 NaN NaN NaN NaN \n",
"1999-11-03 NaN NaN NaN NaN \n",
"1999-11-04 NaN NaN NaN NaN \n",
"1999-11-05 NaN NaN NaN NaN \n",
"... ... ... ... ... \n",
"2021-02-12 383.1685 376.0518 339.57900 64453086.30 \n",
"2021-02-16 383.9985 376.5620 340.08810 61643706.50 \n",
"2021-02-17 384.6855 377.0760 340.63610 61669385.40 \n",
"2021-02-18 385.0270 377.4934 341.17185 61563220.95 \n",
"2021-02-19 385.3165 377.9122 341.69105 63327479.05 \n",
"\n",
"[5360 rows x 10 columns]"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA6UAAAI6CAYAAADfZu5kAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOzdd3xN5x/A8c+TjURib2JvYmtrxF6lRltq66RotdWq0lKr+qsaHVpKraqUGrWpvZUQIoiIGYkZmUTGfX5/nJtIInuI8X2/XueV3POc85zn3HvOvfd7n6W01gghhBBCCCGEEDnBIqcLIIQQQgghhBDi+SVBqRBCCCGEEEKIHCNBqRBCCCGEEEKIHCNBqRBCCCGEEEKIHCNBqRBCCCGEEEKIHCNBqRBCCCGEEEKIHCNBqRDPIaWUs1JKK6WscrosAEqpXUqpt3O6HEI8r5RSC5VSk3K6HEKklVLqPaXUzJwuR0qUUp2VUn9lYn9XpZRJKRWmlGqfBeVZqJS6r5Tyy2xeQmQ1CUrFc00p1UQpdUApFayUClRK7VdKNTCnDVRKxZg/DEKUUh5KqZeVUm2UUjeVUgXj5WOrlDqjlBqcgTKMNweIHyZa/6F5/fhMn+hjkugDNHZZl9PlykpKqcJKqWVKKX/zdbNfKdUoXnonpdQ+pVSQUuq6UmqeUsohjXlXUkr9o5S6Zb4etyilKifa5iNzviFKqd+VUrZpLFcxpdRac7pWSjmn45xjf8TYmGj9H+brt4hS6rZSyjVR+u9KKTfz/2m91+IvxdNRxg+VUheVUuHme7FSMtul+PoopV43l/OeUmpXKsdM8fVSStUwr7utlErXpODme+mJ/OKY2rVkfj/83XyNXldKfZxCXo2VUv+an79bSqkVSqli8dJbKKV2mq+bS6mUK0vvAaXUJWV8gQ9TSt1Qxhd6e3NadaXUVnO5g5RS7kqpjkqpPvGu3/sq0fthik8sSb6H+imllsfeK1ktmXvPNV76TvPrEqKUOqGUeiWJPOYopd41v1ae5ufjjlJqtVKqRKJtWyuljpnvUz+l1Ovx0rR5fWw55qVQbhtgLPBdvHVzlVLe5udvYHrOM4n8WymlzprfB3YqpcrES/vUfE97KaVqxlv/klJqTfx8tNbrgOpKqVrJHSsN/LXW9lrrzZnII7Y8A4EOmc1HiOwgQal4biml8gLrgR+B/EAJ4GvgQbzNDmqt7QEnYD6wHDgKrANmxdtuLBAAzMlgcc4B/ROtG2Be/7SJ/QCNXTpnZeYqi2t3M5CfPXAEqIdx3SwCNsR+WQUcgUlAcaAqxnX1XRL5JMUJWAtUBooA/wH/xCtrO+BzoBVQBiiHcc2mpVwmYDPQIz0nm0gjpdSLiVdqrW8AHwG/KaVymcvaCngZGJ6eey3R4p+WQimjlv0toBPG8/AycDuZzVN7fQKBmcDUNBzaiRReLyAK4z3jrbScx1MktWtpPFAR4xptAXymkq/lyQfMBZzN24cCC+KlhwO/A5+moVzZcQ90Nn8G1AXqY7zXg/EZ8C9QFCgMfACEaK2Xxl6/GF/+E7wfpvGY/uZtHYDGwFlgr/meyg6J771d8dI+BIpprfMC7wJ/xP/RwKwDsBE4DbTTWjth3F8+wC+xGymlqgF/AmMw7sPagHuivGrHK0dKrWdeAc5qra/FW3cCeB84loHzjKOMH5xXAV9iXEdHgb/MacUw7udy5nP7xrzeCvgeGJFElsswnjshREq01rLI8lwuGF8wglJIHwjsi/c4D6DN+zkC1zC+BNcA7gLlMliO8cAfwBmgunlddYwP+D+A8fG2fQc4j/HFeS1QPF6aBgZjfBEIAn4GlDnNEpiG8UX9AjDUvL2VOX2Q+fih5vT34uV7CuOLWexja3M+dZI4F1fAL5nzbAwcMJftBOAaL20Xxof7f0AIxhf7/OY0Z3NZ3wKuAHuSOg5wCWht/r8hcNB8rADgJ8Am0XM11PxcXTQ/V98nym8t8FEaX8MQoF4yad0BzwxeG/nNZS1gfvwnMCVeeivgenrKBViZ83RORzliX4NRwM546xNfn+sxArxc5uu0V0butXQ+RxbAVaBVBvdP8vUB3gZ2Zeb1ire+AqDTmVdK91JV8z0TBHgBXeKl5cL4cnwZCAb2AbnMaSuA6+b1ezC/35jTFgKT0lnGJK8lwB9oG+/xRMAtjXnWBUKTWN8auJSB1zfD9wDx3lPMj78zX+MFzfs7ZfQ1TO8+GO9hR+M9nmW+7kMwArum5vVFgXvxr0Hzc3oLsE4i3zTfexjvqxFAw3jragEnk9jWFuM9/XS8dX8CE1PIXwMV0liW34GxyaTtAwZm4jzfBQ7Ee5wHuA9UARoBy8zrq8SeHzAS+CKZ/F4CLqb32k3uegDKAzuAOxifxUtjr0WM9+i/E20/C/ghM9elLLI8jkVqSsXz7BwQo5RapJTqoJTKl9yG5l9B3wbCAB+tdTBGAPgrxofj11rrC5kszxIe1pYOMD+OX4aWGB/yrwPFML50uiXK42WgAcYXhdeBdub175jT6mAECK8m2u+mOT0vRoA6QylV15y2GOgbb9uOQIDW+nhaT8zchGsDRg1VfowP8JVKqULxNusPvGk+t2jgh0TZNMf4Mt6O1MVg1NwVBF7ACN7eT7RNV4wvGNUwalTeUEpZmMtbEONL8J9pODcXwAYjCEtKM4zAISOaYQSdd8yPq2ME9LFOAEWUUgUyUK6MmA1UUkq1TiZ9MMZr6Aac0lrHXp9pvteSopSarZSanUxySfNSQyl1VRlNeL+O91qWNjcnLJ3M/ul6fZRSJ5VSvVPIK/7rleWUUtYYtXRbMWrohgNL1cNmw9MwagpfxLjXPsOoIQTYhFGDWRijNmlpCscJUko1yUD58mHcw4mv0+ppzDu9r8d6pdTnyaS5kEX3gFKqFMZ733GMYOA8Rq1hV6VUkczmnwargLpKqTzmx0cAF4zX+E9ghVLKTmt9HeMHi9fj7dsP40eBqGTyrmNujnpOKfVl4tYj5uc4AjhszvtovOSOGO/tsduWVkoFYQRxI4H/xdu2sXkbT6VUgDKa/+dPVJY9ymjyvUql3Ly6JuCdQnpSUjzPeBK8z2qtwwFf8/rzQE2llBPGZ4SX+drohXHvJeUM4GxuMZIVFMZ3gdjWHqUwftwG4723ozJ3SVBKWWJcC6l+lgmR43I6KpZFlpxcMN7QFwJ+GIHQWqCIOW2geV0Qxq+Rh4j3q7l5mxUYH9AWmSjDeIwap9IYNYHW5r+liFcThdF8+H/x9rPHaB7obH6sgSbx0pcDn5v/3wEMjpfWlng1pUmUaQ3wofn/4hg1qHnNj/8GPktmP1eML8BB8ZbXMX69XZJo2y3AAPP/u4Cp8dKqAZEYNbzO5rKWS3ScZGtKkyjXCGB1vMcaaJlomzNAG/P/w4CNaXjt8gKewOhk0ttg1KJXysB1URKjNv6NeOt8gfbxHluTdE1VsuUiczWlVhjB/SHz+gQ1peZ1QzGaXBbL4L0Wu/imsWwvmsu2AaM5rTNGEPxOGvZN9vUhnTWlSb1e8dKyrKYUaIpR22kRb90yjPcRC4xgoHYa8ncyP2+O5scLyYKaUoz3LQ3YJXqeL6Uhv1oYrUCaJpGWrprSrLgHMN5TwszX42WMH2Via51LYtRe+mK85+0BKqblNczg617FXOYSyex3N/Z1B3oC+83/W5qvl4bJ7FcOKGu+dmpitNBJ6jmzxmim+3Gi9XuTeb3yY7zvN463LtL8nFbC+PxaCSyNl94M40cEJ/Nze4rkP6N8iPdemCgtqZrSNJ2nedv5xPs8Mq/bH5sn8AbGjzqbMJqcr8L44bMnsBujpU/JRM+dBkqn51pI6zWE8QPr8UTn3z/eveeb3jxlkSUnFqkpFc81rfUZrfVArXVJjGa4xTH6k8U6pLV20loX1Fo31lpvS5SFF0a/FhOZpLW+gvEr7BSM2tiriTYpjvHFKHb7MIxf7OMPJHE93v/3MD74Y/eNn9/leP9jrr06pMyDdmD8+l3QfBx/jA/kHuZfhzuQQg0LRn8op3jLcowP7tfMNSRB5mM0wahRiZW4fNaxZUgiPUXKGIBmvfkX9xCM57Rgos0S57eIhzXCfUlUU53EMXJh1Fgd0lp/k0R6Y4xfp1/VWqerb7C5BnkrMFtrvSxeUhjGl+1Ysf+HprVcWWAeRu1scn2FvYC7WuuA+CvTca/FLuXTWJ775r//01oHaa0vYfTt7pjSTpl5fZLIK7nXKzsUB64mes+5jPE+UBCwwwiUEpfRUik1VSnla74nLpmTEt8XmRU7mE/i6zQ0iW3jl68Cxpf8D7XWezNTgCy+B7qar8cyWuv3tdb3AbTWflrrYebrtAzGDzGLM3mslJTACGyCAJRSI5UxoFew+f3UkYev5T9ANaVUWYygJFhr/V9SmWqtL2itL2qtTVprT2ACj7akQWsdpbXeBLRVSnUxl8EJI1g+kMT2gRjvqf/Eq5G8DyzQWp8zf35NId59qrXeo7WO1FoHYfRlLYvxY1ZS7mL0uU2TtJ6nWeL3WYh3DWutl2mt62qtO2C8lz3AqEGfBnTG+LE6fq1pbDmD0lrelChjYDk3pdQ18738Bwnv4z8xAmeA3kgtqXhKSFAqhJnW+ixGbUGNHCzGYuATkv5y44/x5QcAczOuAhi1M6kJwKjBiBXXlFEZo7euxPgQLaKNQSo2YjQRihUbsL2GMVhEWo4Z31WMmtL4QUcerXX8wWQSly+KhIPV6Hj/hwO5452DJRC/KfAvGIODVNTGAB1fJDqfxPmB8cH+ilKqNsYXoTXJnYz5OVuDUev3XhLpdTBqAt/UWm9PLp9k8s6HEeCs1VpPTpTshTE4SKzawA1tbi6aWrmygtY6EmOQook8+pymNY+svNe8MWpg4r+eiV/bBDLz+iSRV0qvV3bwB0rFNk82K43xPnAbo89fUgF9b4zBYVpjBDDO5vUZeg2To7W+i/F+k/g6TbZJrjJGNt2G0d8wxR+DUvM47oHEzD8g/kz2fnZ0A45prcOVUk0xmmW/DuQzv2cHY34ttdYRGC1l+mI03U3Pc6pJ+Zqw4uH11Q7YobWOSWHbwjwM8E6Sjvs0lbKcxKhxzaiU8k7wPmv+rC1PomvY/OPHFIzP7IoYPxaFYDStjj/ablWMWv6QTJQ3vinm8tc0f771JeG5rABclVIlMa4bCUrFU0GCUvHcUkpVUUp9Yn7jju0z9AZGM92c8hdG09rlSaQtAwYppVzMX7ymAIfNNUOpWQ58oJQqaf4SHb8Plg3GoBS3gGilVAdzGeJbgzFYxodkrDbgD6CzUqqducbGThlTH5SMt01fpVQ1pVRujF+x/07hy845wE4Z03tYY4yIaRsv3QFjAJAwpVQVYEhqBdRa+2F8mVgCrIytEUnMfLy/MX71H5C4llwpVQNjhM/h2pgOIPH+41UyU42Y+xxtwWh6l1Q/ucXAW+bnyQnjvBempVzmbex4+DzZmh+nWq4kLMGokUvTvHnZea9pre9h3DefKaUczMd4F2NAmqTKktrrY2l+XqwAC/O1ap1MXim+Xspgh3GPYc7LNl76QqXUwpTOz7xP3IIxGNg98/laK2Nai84YfQZNGH3cpyulipvP5QXzMR0wanTuYPygMyWl46YmpWsJ4zodq5TKZ77/3sF8nSaRTwmM7gU/aa1/TSLdwpy3tfFQ2SljOpCk8srUPZBW5vP6WilVwVy+ghh9qdN0PafldTdvp5RSJZRS4zCak39hTnLAaO5+C7BSSn3FozV7izGaxXchhaBUGa1kipj/r4Ix4uw/sY/N6bnM11pfjCa2u827J+5P2l0pVdn8nBQCpmM0Kw00b7IA4zOsnPl9/nPM96kypthxMV+z9hiDdV3D6FaRlI0Y4wzEPxcb8+upAGvztRLbtzzZ80zCaow+6j3M+X2FMZjT2UTbjQUWmlsTXQEqm4/RAmPAwFjNMVoBZBUHjNrcYPP9k2Bkaq31LYwuMQswBlhK7jkU4smS1na+ssjyrC0YzaGWY3zwhZv/zuFh38mBpDJaH+b+oJksR7J58OjopoMxmuYFYnyYx++3ook3ciHx+ohhfMGegfGF9CKPjr47FLiB0bxoCcZgCZMSlWWe+XmyT+FcXEl+xNBGGF9mAjG+TG3A3MeGR0ffXQcUNKc5xy9rvPwGYtTI3MQYUOMSD0ffbYZRUxqG0edpAglHUk7wXMVb39ec1iKFc2xu3uaeOf/YJXb0ywUYfczip3nF238+MDmZvAeY8w5PtH/peNt8bH6tQszHsk1LueKdd4IljeV65DXAqKXRPNqn9JFrgLTdazGJyh0GNDCn/wr8msJrkhfjmg3FqJX/iocjT5eO/xym4fUZmMTztDBeuhfQJy2vV7znLf5yKV5e20mm76v5eXzk9cLon1od414Kxugb1y3efrkwmkVf4+Eou7kwmvL/Y36OLmMMLBZ3H5CoT2niayeJ8qV0LdliBMchGNdq4n6I8e+Xceb9E7z2qTwPu+Klb8I86imZvAeSOMdLJNFPHWM01kU87HN6HeNHwxKJtnMl6f6hqb3usddnOEbN+N8k7JtpGe/5DcCoNX2krBj9Lncnd37mbaaZX6NwjEBqAuZRejFq+A6br5kgjB/tupnTlPm8C8fLazjG50u4Oc0NKJPoeF9jvP/fwvisyWde3xKj1UM4xnv6GhL10U2UT+zYC/FHoN+VxOvrmtp5Jr6vzY9bY3yG3Dfn65zo+FXMz4dlvHWfYrRWOI1Rixm73pM09PNO4XpI/H5aHWPE5TDAA6OmNvE2/czn/2la8pRFlidhif3QFkKIFJl/ja+kte6b6sZPKaVUM4wfAsrobHpzVEp5YExfkm0jtGbEk1quZ5W5tu8EUEsnPyqqeMY8ztddKbUD+FNrPS8b8m6IUbvdMKvzTkcZ3gWqaa1H5FQZUqOMvvf9tNavp7px0vs3w2iN8QDoqbXeksnyzMfohnNTa10hM3kJkdUkKBVCpEoZw/Yfx/hw3ZPT5ckO5qZ/bsAJrfWEnC6PEEJklFKqAfAvUEprneIgUxnMvyHGXKhZ2SxVCPEckz6lQogUKaXewWgSuekZDkirYjRPK0bCEWGFEOKpopRahDFw1IjsCEgBtNb/SUAqhMhKUlMqhBBCCCGEECLHSE2pEEIIIYQQQogck+ag1DxM93GlVOzw3WWVUoeVUueVUn/FDtGulLI1Pz5vTnfOprILIYQQQgghhHjKWaVj2w8x5ouKnQvrW2CG1tpNKfUr8BbGhPVvAXe11hWUUr3M2/VMKeOCBQtqZ2fn9Jb9qRYeHk6ePHlyuhjiCSXXh0iJXB8iLeQ6ESmR60OkRK4PEV9WXQ/u7u63tdaFkkpLU59S82Tki4DJGHPkdcaYY6qo1jpaKfUCxlx17ZRSW8z/H1RKWWHMVVUopekV6tevr48ePZruE3ua7dq1C1dX15wuhnhCyfUhUiLXh0gLuU5ESuT6ECmR60PEl1XXg1LKXWtdP6m0tDbfnYkxObPJ/LgAEKS1jjY/9sOYHB3z36sA5vRg8/ZCCCGEEEIIIUQCqTbfVUq9jDHJrrtSyjWrDmye9PhdgCJFirBr166syvqpEBYW9tyds0g7uT5ESuT6EGkh14lIiVwfIiVyfYj4Hsf1kJY+pS8BXZRSHQE7jD6lswAnpZSVuTa0JHDNvP01oBTgZ26+6wjcSZyp1nouMBeM5rvPWxMBaRYhUiLXh0iJXB8iLeQ6ESmR60OkRK4PEd/juB5SDUq11qOB0QDmmtKRWus+SqkVwKuAGzAA+Me8y1rz44Pm9B0p9SdNTlRUFH5+fkRERKR316eCo6MjZ86cydZj2NnZUbJkSaytrbP1OEIIIYQQQgiRUekZfTexUYCbUmoScByYb14/H1iilDoPBAK9MpK5n58fDg4OODs7o5TKRDGfTKGhoTg4OGRb/lpr7ty5g5+fH2XLls224wghhBBCCCFEZqQrKNVa7wJ2mf+/ADRMYpsI4LXMFiwiIuKZDUgfB6UUBQoU4NatWzldFCGEEEIIIYRIVlpH380REpBmjjx/QgghhBBCiCfdEx2UPonGjx/PtGnTcroYQgghhBBCCPFMkKBUCCGEEEIIIUSOkaA0FYsXL6ZWrVrUrl2bfv36JUjz8PCgcePG1KpVi27dunH37l0AfvjhB6pVq0atWrXo1csY5yk8PJw333yThg0bUqdOHTZs2PDYz0UIIYQQQgghnjRPRVCqlMqWJTVeXl5MmjSJHTt2cOLECWbNmpUgvX///nz77becPHmSmjVr8vXXXwMwdepUjh8/zsmTJ/n1118BmDx5Mi1btuS///5j586djB07lvDw8Kx/soQQQgghhBDiKfJUBKU5ZceOHbz22msULFgQgPz588elBQcHExQURPPmzQEYMGAAe/bsAaBWrVr06dOHP/74AysrY4DjrVu3MnXqVFxcXHB1deXBgwdcuXLlMZ+REEIIIYQQQjxZMjNP6WOjtc7pIqTLhg0b2LNnD+vWrWPy5Ml4enqitWblypVUrlwZyP55SoUQQgghhBDiaSA1pSlo2bIlK1as4M6dOwAEBgbGpTk6OpIvXz727t0LwJIlS2jevDkmk4mrV6/SokULvv32W4KDgwkLC6Ndu3b8+OOPcQH2iRMnHv8JCSGEEEIIIcQT5qmoKc0p1atXZ8yYMTRv3hxLS0vq1KmDs7NzXPqiRYsYPHgw9+7do1y5cixYsICYmBj69u1LcHAwWms++OADnJyc+PLLLxkxYgS1atXCZDJRqlQpNm/enHMnJ4QQQgghhBBPAAlKUzFgwAAGDBiQZJqLiwuHDh16ZP2+ffseWZcrVy7mzJkT9zg0NDTrCimEEEIIIYQQTylpviuEEEIIIYQQIsdIUCqEEEIIIYQQIsdIUCqEEEIIIYQQOUhr/dTNOJKVpE+pEEIIIYQQQuSQ+/fv07hxY7y9vSlevDjFihVL9m9ERATXrl2jZMmS1KtXL6eLnmUkKBVCCCGEEEKIHLJ06VJOnjwJwMWLF7l48WKq+1hZWXHq1CkqV66c3cV7LCQoFUIIIYQQQogcoLVm5syZAPz22280b96cgIAA/P39k/xrZ2fH/fv38fb2ZsKECSxdujRnTyCLSFAqhBBCCCGEEDlg27ZteHl5UaxYMfr374+NjQ0VK1ZMcZ/Lly9TsWJFli1bxpgxY6hWrdpjKm32kYGOUjF58mSqV69OrVq1cHFx4fDhw7i6ulK6dOkEnZG7du2Kvb19gn1nzpyJnZ0dwcHBKR7jzp07tGjRAnt7e4YNG5Ygzd3dnZo1a1KhQgU++OCD57oDtBBCCCGEEM+SGTNmADBs2DBsbGzStE+ZMmV4++230Vozfvx4AC4HXSY8Mjy7ipntJChNwcGDB1m/fj3Hjh3j5MmTbNu2jVKlSgHg5OTE/v37AQgKCiIgIOCR/ZctW0aDBg1YtWpVisexs7Nj4sSJTJs27ZG0IUOG8Ntvv+Hj44OPjw+bN2/OgjMTQgghhBBCPA4HDx5k9erVhIaGJli/atUqNm3ahJ2dHe+++2668vziiy+wtbVlxb4VNJ3ZlPI/lGeBx4KsLPZj9VQ031Vfq2zJV49LudYxICCAggULYmtrC0DBggXj0nr16oWbmxtNmjRh1apVdO/eHS8vr7h0X19fwsLCmD17NpMnT2bQoEHJHidPnjw0adKE8+fPP3L8kJAQGjduDED//v1Zs2YNHTp0SPe5CiGEEEIIIR6v9evX07VrV2JiYrCxsaFp06Y0atSI27dvM3fuXACGDx+eIM5IixIlSlDjsxq4W7qzL3gfCsWVoCvZcQqPhdSUpqBt27ZcvXqVSpUq8f7777N79+64tFatWrFnzx5iYmJwc3OjZ8+eCfZ1c3OjV69eNG3aFG9vb27cuJHu48cO9xyrZMmSXLt2LeMnJIQQQgghhHgs9u/fz+uvv05MTAxVq1YlOjqa7du3M2XKFObOnYu1tTUzZszg22+/TVe+WmtGbB6Bu6U7VljBAdAzNDf/vJlNZ5L9noqa0tRqNLOLvb097u7u7N27l507d9KzZ0+mTp0KgKWlJU2aNMHNzY379+/j7OycYN9ly5axevVqLCws6NGjBytWrHikv6gQQgghhBDi2XPq1Clefvll7t+/z9tvv83cuXO5ffs2e/fuxd3dnRs3bvDee+/RoEGDdOf91c6v+OG/H7CxtGFtr7XoRpo+ffrw2muvZcOZPB5PRVCakywtLXF1dcXV1ZWaNWuyaNGiuLRevXrRrVu3uA7GsTw9PfHx8aFNmzYAREZGUrZs2XQHpSVKlMDPzy/usZ+fHyVKlMj4yQghhBBCCCGy1eXLl2nXrh1BQUF07dqVX375BaUUhQoVonv37nTv3j3Def916i8m7Z2EpbLkr1f/ol2FdlABLly4gKOjYxaexeMlzXdT4O3tjY+PT9xjDw8PypQpE/e4adOmjB49mjfeeCPBfsuWLWP8+PFcunSJS5cu4e/vj7+/P5cvX07X8YsVK0bevHk5dOgQWmsWL17MK6+8krmTEkIIIYQQQmSL27dv065dO/z9/WnatCl//vknVlZZUw/oddOLt9a+BcCMdjPoWqVrXNrTHJCCBKUpCgsLY8CAAVSrVo1atWpx+vTpBLWiSilGjhz5SMdkNzc3unXrlmBdt27dcHNzS/ZYzs7OfPzxxyxcuJCSJUty+vRpAGbPns3bb79NhQoVKF++vAxyJIQQQgghxBMoLCyMjh074u3tTa1atVi7di25cuXKdL4mbWLN2TV0XtaZ8Khw+tTsw7CGz1a3QGm+m4J69epx4MCBR9bv2rUrye3DwsIAo/o8senTp6d4rEuXLiW5vn79+pw6dSrlggohhBBCCCFyTGRkJN27d+fIkSOULVuWzZs34+TklKk8o2KiWHZqGd/u/5bTt4wKqzpF6zC381yUyp7ZSXKKBKVCCCGEEEIIkQkjR47k33//pVChQmzZsoVixYplOK97Uff4/fjvTDswjcvBRve/UnlLMfLFkbxd921yW+fOqmI/MSQofYy2bNnCqFGjADCZTFhYWFC2bFlWr16dwyUTQgghhBBCZISXlxc///wzlpaWbNiwgYoVK2Yon6CIIGYfmc3MQzO5de8WAFUKVmHUS6PoXbM3NpY2WVnsJ4oEpY9Ru3btaNeuHQChoaE4ODjkcImEEEIIIYQQmfHpp59iMpkYMmRIhqZ4AZh2YBoTdk8gNDIUgPrF6zO6yWi6VumKhXr2hwGSoFQIIYQQQgghMmDr1q1s2rQJBweHR6aJTKsT10/w6b+fAtCybEtGNxlNq7Ktnrl+oymRoFQIIYQQQgghMmDs2LEAjBkzhsKFC2coj4UeCwEYXG8wv7z8S1YV7any7NcFCyGEEEIIIUQWCw0N5ejRo1hbW/PBBx9kKI/ImEj+8PwDgLfrvp3xwmgNppiM75/DJCgVQgghhBBCiHTy8PBAa03NmjUzPB/pRp+N3L53mxqFa1C3WN307aw1BHnCibGwrhJc/jNDZXgSSFCaismTJ1O9enVq1aqFi4sLhw8fxtXVldKlS6O1jtuua9eu2NvbJ9h35syZ2NnZERwcnOIx/v33X+rVq0fNmjWpV68eO3bsiEtzd3enZs2aVKhQgQ8++CDBMYUQQgghhBA549ixYwDUrZvOYDKeBR4LABjkMijtfUijwsBnDmyuBxtrgddkCDsP/psyXI6cJkFpCg4ePMj69es5duwYJ0+eZNu2bZQqVQoAJycn9u/fD0BQUBABAQGP7L9s2TIaNGjAqlWrUjxOwYIFWbduHZ6enixatIh+/frFpQ0ZMoTffvsNHx8ffHx82Lx5cxaeoRBCCCGEEM82k8nE1q1buXTpUpbmm9mg9EbYDTb6bMRSWdKnZp+07RToDhuqwZHBcPc42OSH8u9Ay23wwuIMleNJ8HQMdPRnNo081TvlWseAgAAKFiyIra0tYASPsXr16oWbmxtNmjRh1apVdO/eHS8vr7h0X19fwsLCmD17NpMnT2bQoEHJHqdOnTpx/1evXp379+/z4MEDAgMDCQkJoXHjxgD079+fNWvW0KFDhwydrhBCCCGEEM8KPz8/fvvtN5YsWULjxo1ZunTpI7WNx44dY9iwYRw8eJDcuXMzffp03n333SwZ2TY2KK1Xr16G9h+1bRTRpmheqfwKReyLpLxxZBBcWQ7uH0JMBOSrA1VHQqnuYGmXoeM/SaSmNAVt27bl6tWrVKpUiffff5/du3fHpbVq1Yo9e/YQExODm5sbPXv2TLCvm5sbvXr1omnTpnh7e3Pjxo00HXPlypXUrVsXW1tbrl27RsmSJePSSpYsybVr17Lm5IQQQgghhHhKHTt2jPLlyzNhwgQuXrzIsmXLWLp0aVz6nTt3GDx4MPXr1+fgwYM4ODhw7949Bg8ezFtvvZXp49+7d4/Tp09jaWlJzZo1073/5vObWXRiEXZWdvyvzf8e3SDiFlxdBUc/hE114O/88N97RkBa/h1oexCcez8TASk8LTWlqdRoZhd7e3vc3d3Zu3cvO3fupGfPnkydOhUAS0tLmjRpgpubG/fv38fZ2TnBvsuWLWP16tVYWFjQo0cPVqxYwbBhw1I8npeXF6NGjWLr1q3ZdUpCCCGEEEI89bZv305kZCQNGjSgdevWfPPNN3z00Ue0bduWVatWMWbMGAIDA7GysuKDDz5g3LhxbNy4kX79+rFgwQJmzJiBo6Njho/v6emJyWTK0CBHoQ9CeW/9ewB87fo1lQpUgojbcH0b3NoDN3dD8OmEO1lYQ4FGUP4tKDcww+V+Uj0dQWkOsrS0xNXVFVdXV2rWrMmiRYvi0nr16kW3bt0emSjX09MTHx8f2rRpA0BkZCRly5ZNMSj18/OjW7duLF68mPLlywNQokQJ/Pz8EmxTokSJLDw7IYQQQgghnj5nzpwB4M033+S9997j4MGD7Nq1iwoVKhAaGgoYLRt/+OEHqlWrBhjf3ceOHYuvry83btzIVFDq7u4OZKw/6YTdE7gSfIW6xery8Qsfw7UNsP8NiA59uJFlLij4AhRuBoWbGwGpVcZG+H0aSPPdFHh7e+Pj4xP32MPDgzJlysQ9btq0KaNHj+aNN95IsN+yZcsYP348ly5d4tKlS/j7++Pv78/ly5eTPE5QUBCdOnVi6tSpvPTSS3HrixUrRt68eTl06BBaaxYvXswrr7ySxWcphBBCCCHE0+X0aaMmsWrVqiil+OWXX7CxsSE0NJTSpUvz999/8++//8YFpLGKFDH6bl6/fj1Tx8/oIEeXgy7zw38/ADCn069Yec+C3Z2NgLRQE6g9Bdrsh1eDoNV2qDkOirg+0wEpSFCaorCwMAYMGEC1atWoVasWp0+fTlArqpRi5MiRCQZAAqM/abdu3RKs69atG25ubkke56effuL8+fNMmDABFxcXXFxcuHnzJgCzZ8/m7bffpkKFCpQvX14GORJCCCGEEM81rXVcUBobdFapUoW1a9cya9Yszpw5Q48ePZIczCg2KE3reC/JyWhQ+tWur4iMiWRo9S7UP/clHB8JaKg5AVrvgeqjodCLYGmTqfI9baT5bgrq1avHgQMHHlm/a9euJLcPCwsD4MKFC4+kTZ8+PdnjjB07lrFjxyaZVr9+fU6dOpWG0gohhBBCCPHs8/f3JzQ0lAIFClCoUKG49e3ataNdu3Yp7pvZoDQqKootW7Zw6tQplFK4uLiked8T10+w5MRi3nO05IeYHRAQBjb5oOFvULpHhsrzrJCgVAghhBBCCJElgoODsbW1xc4u+0aFTVxLmh6ZCUrPnj2Lq6tr3L516tTB3t4+Tft63/bmk9WvsqUEtMkdAzFhULIrNPgFchVNd1meNRKUPkZbtmxh1KhRgDGJr4WFBWXLlmX16tU5XDIhhBBCCCEy59atW1SpUoX8+fOzY8cOSpUqlS3HiR3kKL1BaUR0BKccTkEzuHLzSrqPu2HDBm7cuEGZMmV47733ePPNN1PcXmuN711fNp3bgO+RUazO9wAHCzDZ5Mei/s9QpidkwXypzwIJSh+j+E0KQkNDcXBwyOESCSGEEEIIkTUWL15MYGAggYGBtGjRgl27dlGyZMksP078QY5SExEdwZXgK3hc9+CL7V/gG+YLLeHP6D8pvaM0XSp3oU6xOlhZpB4WxQbDI0eOTHJWDZM2cermKY74biDAbwsxgcdwJpTWdjC8gLFNVImuWDeaA3aF03HGzz4JSoUQQgghhBCZorXmt99+A4wmsr6+vnGBaVZPaZhUTalJm9jks4k9l/dwOfgyl4IucTn4MtfDEo6y65zHmUuel4guF82kvZOYtHcSTnZO/NrpV3rW6Jmm4yYOhoPu3Wbztr4UurWd6tbRvBUbYeV9uE2EZV5sG/+GdZnXM3jWzzYJSoUQQgghhBCZsn//fry9vSlatCgnTpygffv2HD9+PC4wLV68+CP73Lx5kwcPHqS7mW/imtKFHguZsncKPoE+j2xrZWFFqbylKONUhlcqv0L7Au2p+mlVijQsQucxndl5aSe+d33pvao3UaYo+tbqm+QxH0Q/4ETECWgPe6L24HDNgdAHodw6O4eGt1fSy8oE5llb7mNFsF0ZbAvWx6loc1S+2tjlcwGr3Ok6z+eJBKVCCCGEEEKITImtJR00aBCFCxdm27ZttGrVCg8Pj7jAtFixYnHbe3l58eKLLxITE8Px48epWLFimo5z69Ytbt++jYODAyVKlGDesXm8s+4dAEo7lmZA7QFUKlCJMo5lcHZyprhDcSwtLOP2j50tI/hkMHM7z0Upxde7vmb87vH0X92fecfmEaNjiIyJJComiihTFJExkQSEBhDeJRyACYcn8N1/E5hVCN5xBKzAT9sRVeVTylYeSK48zuRSMvNmekhQKoQQQgghhMiwoKAgVqxYAcBbb70FQP78+eMC0xMnTsQFpkWLFuX27dt07tyZkJAQAN5991127NiR5LyiicVvQvvftf8YunEoAN+3/Z4PGn2Qat9Qe3t78uTJQ3h4OCEhITg6OjLOdRyWFpZ8ufNLdl/enfzON6B4aHGGdqvLa+FbqWgZSRSW+JR5l6qNZ6EsrVMtv0iahPCpmDx5MtWrV6dWrVq4uLhw+PBhXF1dKV26NFrruO26du36yJDQM2fOxM7OjuDg4BSPcenSJXLlyoWLiwsuLi4MHjw4Ls3d3Z2aNWtSoUIFPvjggwTHFEIIIYQQIqdt3ryZ+/fv06JFC8qXLx+3vkCBAmzbto2aNWvi7e1NixYtGDNmDG3btuXixYvUrVuXQoUKsWvXLn7//fc0HSs2KC1boyw9lvcgMiaS9+u/z8cvfJymwYog6WlhxjYbi+cQT7b128aegXs4+NZBjr5zlJODT3Jm6Bm+KfgNDgthaU17vohYT0XLSHCohHUHd6q9NFsC0kySmtIUHDx4kPXr13Ps2DFsbW25ffs2kZGRADg5ObF//36aNGlCUFAQAQEBj+y/bNkyGjRowKpVqxg0aFCKxypfvjweHh6PrB8yZAi//fYbjRo1omPHjmzevJkOHTpkyfkJIYQQQgiRWbGB4gsvvPBIWsGCBdm+fTstW7bk1KlTTJkyBYBixYqxdu1a9uzZQ+/evRk5ciRdunShUKFCyR7H39+f2bNnA3Cq7CmuhV7jpVIvMaP9jHSVt0iRIly4cIEbN25QqVKluPU1CtegRuEaSe5j4XcS90lQseg5sLCGqp9C9THSTzSLPB1BaXbN35NKrWNAQAAFCxbE1tYWMG6qWL169cLNzY0mTZqwatUqunfvjpeXV1y6r68vYWFhzJ49m8mTJ6calCZ3/JCQEBo3bgxA//79WbNmjQSlQgghhBDiieHt7Q1A5cqVk0wvVKgQO3fuZM6cOZhMJooWLUrnzp0pWrQovXr1Yv78+Wzfvp3ly5czdOjQJPPw9PSkU6dOXL16lSJtiuAV44WDjQN/9vgTG0ubdJU3tqY09LonnNoNN3aCTX7IbZ6+JjrMWKLC4v4fUe0YNpYQbOGMY/v14FQ9XcfMVsHB8OOP0Ls3lCuX06XJEGm+m4K2bdty9epVKlWqxPvvv8/u3Q/bmLdq1Yo9e/YQExODm5sbPXsmHELazc2NXr160bRpU7y9vRM0D0jKxYsXqVOnDs2bN2fv3r0AXLt2LcHcTiVLluTatWtZeIZCCCGEEEJkztmzZwGoUqVKstsULFiQMWPG8OWXX/LOO+9QtGhRAJRS9OvXD4C1a9cmue+///7LSy+9xNWrV6ndvjYRLSMAmNl+JqUdS6e9oNoEp79japv/uDgTOkYNhZNfwo0dcPVv8J5pLL7z4LIb+K+Hm7sg8Cg2libm7oBbddY+OQHp3bswfjyUKQNffglTp+Z0iTLs6agpzaF+lPb29ri7u7N371527txJz549mWp+sS0tLWnSpAlubm7cv38fZ2fnBPsuW7aM1atXY2FhQY8ePVixYkWSk+yC0XzhypUrFChQAHd3d7p27Zqg1lUIIYQQQognkclk4ty5c0DyNaWp6dSpExYWFuzcuZPg4GAcHR3j0n6Z9wvDvh+GqZmJ3LVzc8LmBDyAjhU7MsglHS0Ro+/Dwf5w9W8qOxmrIk1WnLjtzNQ/z9O7Zw96dGwMyhKs7OMteQiPVFSr15LrITaE/1o1xcM8FnfuwPTpRu1oaKixztXVqCl9Sj0dQWkOsrS0xNXVFVdXV2rWrMmiRYvi0nr16kW3bt0YP358gn08PT3x8fGhTZs2AERGRlK2bNlkg1JbW9u4JsL16tWjfPnynDt3jhIlSuDn5xe3nZ+fX5ZPPiyEEEIIIURG+fn5cf/+fYoUKZIgmEyPggUL0qRJE/bs2cPmzZtp0LYBG85tYObGmVwwXYBexnb3uEeh3IXoXKkz37b5Nk2j9RIZDNfWgfcsCDwK1nnZFtyDIWMX0PqV/mzfuRcfH8hb3YEen4xMMovTR45w5TbUqFEJK6scDJ9iYmDuXPjiCwgKMta1aWPUkjZtmnPlygISlKbA29sbCwuLuHmTPDw8KFOmDKdOnQKgadOmjB49mjfeeCPBfsuWLWP8+PGMHj06bl3ZsmW5fPkyZcqUeeQ4t27dIn/+/FhaWnLhwgV8fHwoV64c+fPnJ2/evBw6dIhGjRqxePFihg8fno1nLIQQQgghRNql1p80LW7fu03hDoXBCd458Q6hZ821fxbGUsa6DANfHEjHih2pX7w+FqnNARp5F/zWwpW/4fpWMBkDlZK7FLhuIGSHD+dvLMD+v2P4+PgAcPXq1WSziz8NzWMTHAznzhmLt7fx99gxMJeX1q1hwgRIYnCpp5EEpSkICwtj+PDhBAUFYWVlRYUKFZg7dy6vvvoqYLSBHzny0V9U3Nzc2LhxY4J13bp1w83NjVGjRj2y/Z49e/jqq6+wtrbGwsKCX3/9lfz58wMwe/ZsBg4cyP379+nQoYMMciSEEEIIIZ4Ysf1JMxqU7rq0izdWvsH1B9ehLoQSimWUJTHeMdheteX3L36nd5c0Nkv132LUiN7YBqYo80oFhZtD6degzBtgm58iRYz5UePPfJFSUBrbrS7bglKTCZYuhT17HgagyY1HU7IkzJwJ3btn32CwOSDVoFQpZQfsAWzN2/+ttR6nlNoLOJg3Kwz8p7XuqpRyBf4BLprTVmmtJ2R1wR+HevXqceDAgUfW79q1K8ntw8LCALhw4cIjadOnT0/2OD169KBHjx5JptWvXz+uZlYIIYQQQognSUZrSrXWTDswjc+3f45Jm3ih5AtcXH+R60evE+MfQ/GixdmwYQMuLi5py/D8b/Dfe4AGZQFFWhqBaMmukKtogk1jR9+N7+rVq2itH2kSHBMTw4oVK4Ckp7zJtDNn4O23IXHMYWcHlSo9XCpXNv66uBhpz5i01JQ+AFpqrcOUUtbAPqXUJq11XMNlpdRKjEA01l6t9ctZXFYhhBBCCCHEEyQ2KE1p5N3EtNaM3TGWKfuMOUu/aPIFX7f4molXJjJhzQRq1arFhg0bEsxCkaIz38Nxc+vF6l9A5RFgl/x8p4mDUqUU9+/f5+7du3GtFWNt2bKFixcv4uzsHDdeTJaIjDRGy5082fi/WDH49FOoUcMIQEuWBIvnZ6KUVINSrbUGwswPrc1L3HC4Sqm8QEsg/RNxPme2bNkS13zXZDJhYWFB2bJlWb16dQ6XTAghhBBCiPRLb02pSZv4fNvnfHfgOyyVJX90/4NeNYyRjEaNGkWNGjVo3749Dg4OqeSEMUOH5zg4NdF4XO9HqJz0wKLx2dvbkzt3bu7du0exYsXIly8fp0+f5urVq48EpbNnzwZg8ODBWFpapukcU3XokFE7GjvbxjvvwP/+B05OWZP/U0jpNEy3opSyBNyBCsDPWutR8dL6A1201q+aH7sCKwE/wB8YqbV+ZH4TpdS7wLsARYoUqefm5pYg3dHRkQoVKmTopJ4GMTExWXdhp+D8+fMEBwdn+3FE1goLC8Pe3j6niyGeUHJ9iLSQ60SkRK4PkZK0Xh/379+nY8eOWFlZsXnz5lS/24ZFh/HN2W84cOcAlsqSL6t+SfNCzTNWSG2iQshsSoavRGPBWadPuZG7fZp37927NwEBAbRp04agoCCOHDnClClTEjTRDQgIoE+fPlhZWbF8+XKcMhk0Wt6/T9n58ymxahVKa+6VKMG5Tz4hqE6dTOWb3bLq/aJFixbuWuv6SaWlaaAjrXUM4KKUcgJWK6VqaK1jOzq+AcyLt/kxoIy5uW9HYA1QMYk85wJzAerXr69dXV0TpJ85cyZtv5A8pUJDQx/L+dnZ2VHnCb/QxaN27dpF4ntCiFhyfYi0kOtEpESuD5GStF4fx48fB6BixYq0atUq2e3CI8P5+/TfTNo7ifOB53G0dWRZj2V0qJjBATxjIuDgQAhfCRbWqJfcqFqqO+kZhsjZ2Tku6Ny3bx9HjhzByckpwXl//vnnaK3p2bMnXbt2zVhZY23eDIMHw5UrYGkJI0eSe9w4XHLlyly+j8HjeL9I1+i7WusgpdROoD1wSilVEGgIdIu3TUi8/zcqpWYrpQpqrW9nVaGFEEIIIYQQWWfs2LHcvHkzrrlqWqTUdFdrzYGrB1jgsYC/vP4iLNLoDVi7SG1Wvr6S8vnLp71w0fch4jrcv278PTsdbu0DKwdo+jcUa5v2vMxGjRrFypUrefXVV7l06RKQcATeiIgI5s+fD8D777+f7vwJCYEjR+DwYWNU3S1bjPV168K8eSCVRgmkZfTdQkCUOSDNBbQBvjUnvwqs11pHxNu+KHBDa62VUg0xZhi6k/VFF0IIIYQQQmSWh4cHkydPBqB8+fI0atQoTfslNR3M9bDrLPRYyAKPBZy7cy5u/QslX2CQyyD61e6HnVUSo8fGRMKN7XB9G9y7ZgSfEdfhfgBEhTy6fe6S0HwD5KuVjjN96JVXXuGVV14BoFSpUgD4+fnFpf/999/cvn0bFxcXGjdunHqGd+7A338b/UUPH4azZ40+r7Hs7Ix5RT/6CKxkVs7E0vKMFAMWmfuVWgDLtdbrzWm9gKmJtn8VGKKUigbuA710WjquCiGEEEIIIR67+FMXfvXVV8yZMydN+/3zjzH5RoMGDQC4FHSJunPqcjfiLgDF7IvRv3Z/BroMpErBZEbnjbgJXt/AhQUQlcw4KBY2YFfUmNrFrijYl4Wqn0LuEmk8w5TFBqXxa0pja4zff//9R6aJecTWrTBgAFy//nCdjY0xfUujRtCwIbRsCcWLZ0l5n0VpGX33JJBk/bLW2jWJdT8BP2W6ZE+IyZMn8+eff2JpaYmFhQVz5sxh1KhRXLhwgcuXL8ddpF27dmXbtm1xc5UCzJw5k88//5wbN27g6OiY7DH+/fdfPv/8cyIjI7GxseG7776jZcuWALi7uzNw4MC4juSzZs1CKUVgYCA9e/bk0qVLODs7s3z5cvLly5e9T4YQQgghhHim+Pn5sWzZMiwsLOjYsSPr16/n22+/pW/fvlilUKN37NgxPDw8yJ8/Py+//DJaa4ZtHMbdiLu8UPIFxjYbS9vybbGySCYPreH0VPCaDNHhxjqnmsa8onmrJAxCbfJBaoFhJiQOSo8fP87BgwfJmzcvvXv3Tn7HBw9gzBj4/nvj8YsvQq9eRhDq4gK2ttlW5mfN8zP5TQYcPHiQ9evXc+zYMU6ePMm2bdviLlonJyf2798PQFBQEAEBAY/sv2zZMho0aMCqVatSPE7BggVZt24dnp6eLFq0iH79+sWlDRkyhN9++w0fHx98fHzYvHkzAFOnTqVVq1b4+PjQqlUrpk5NXGEthBBCCCGeJn///TceHh7Zln94eDgHDhzAZDLFrfvxxx+Jjo6mR48e/PHHH5QsWZKzZ88ybdq0FPP6/fffAejbty+2trasOrOKDT4byGubl5Wvr6RjxY7JB6QxkXBwAJz4wghIS3SGDseh40moNQGce0PRluBYDWzzZ2tACsTNh+rn54fWml9++QWAgQMHkidPnqR3OnsWXnjBCEgtLWHSJKPv6PDhRu2oBKTp8lQ0aP46my7Ecam0Kg4ICKBgwYLYmi+qggULxqX16tULNzc3mjRpwqpVq+jevTteXg9nvvH19SUsLIzZs2czefJkBg1KfhrX+KPjVq9enfv37/PgwQMCAwMJCQmJa8fev39/1qxZQ4cOHfjnn3/YtWsXAAMGDMDV1ZVvv/02qeyFEEIIIcQTbvfu3bz22muULVsWX1/f1JuMplNAQABt27bl1KlTdO/encWLF+Pp6RnXVPeTTz7B0dGRefPm0b59e8aNG0fnzp2pXr36I3lFRESwdOlSAN58801CHoTwweYPAPim1TcUcyiWfEEe3IH9vYy+o1Z54KW/oESnLD3X9LK3t8fJyYmgoCDOnz8fd25Dhgx5dOPwcGNO0f/9DyIioFw5WLoU0tLvVCRLakpT0LZtW65evUqlSpV4//332b17d1xaq1at2LNnDzExMbi5udGzZ88E+7q5udGrVy+aNm2Kt7c3N27cSNMxV65cSd26dbG1teXatWtxv9yA8SvOtWvXALhx4wbFihk3fNGiRdOcvxBCCCGEePLE9mG8ePFi3Ki2WeXChQs0adKEU6eMGR1XrVpF1apVefHFFwkODqZt27Zxgxu1a9eOTp06ERkZycCBA4mOjn4kvzVr1hAUFETdunWpXbs2H2z6AP9QfxqWaMh79d5LviA3dsPG2kZAalcYWu/O8YA0VmxryMmTJ3Pv3j1atmxJlSrx+sFqDW5uUKWKMWBRRITRj/T4cQlIs8BTUVOaWo1mdrG3t8fd3Z29e/eyc+dOevbsGddM1tLSkiZNmuDm5sb9+/dxdnZOsO+yZctYvXo1FhYW9OjRgxUrVjBs2LAUj+fl5cWoUaPYunVrusqplMryX9OEEEIIIcTjcf369QTdvbZs2ZIwIMoELy8v2rRpQ0BAAPXq1WPmzJkMHDgQX19frKysGDlyJF9++WWCfYYMGcLJkyc5evQo3333HaNHj06QvmDBAsCoJXU75caiE4vIZZWLBa8swNLC0thIa7h3BW7uM6ZvubUPgo2gmIIvwkvLIE/pLDnHrFCqVCk8PT1ZsmQJACP69DGmdLl82VjWrIF9+4yN69aFWbOgSZOcK/Az5qkISnOSpaUlrq6uuLq6UrNmTRYtWhSX1qtXL7p168b48eMT7OPp6YmPjw9t2rQBIDIykrJly6YYlPr5+dGtWzcWL15M+fLGvE0lSpRIMDS1n58fJUoYo4wVKVKEgIAAihUrRkBAAIULF86qUxZCCCGEEI/RvHnziI6OxtHRkeDgYLZs2cKHH36Y6XwPHz5Mx44dCQwMpHnz5qxdu5a8efNy+PBhFixYQPv27alRo8Yj++XJk4d58+bRrl07xo8fT+fOneO2u3XrFtu3b8fKyopGHRrRenlrAKa3m061glXh0jK4ttYIQu/5JczYwhaqjoSa4yG5/qaPW2gorFvHB9euMQQoZzLhrBS533rr0W0LFYIpU2DQIKMfqcgy0nw3Bd7e3vj4+MQ99vDwoEyZMnGPmzZtyujRo3njjTcS7Lds2TLGjx/PpUuXuHTpEv7+/vj7+3P58uUkjxMUFESnTp2YOnUqL730Utz6YsWKkTdvXg4dOoTWmsWLF8fNp9SlS5e4AHnRokVx64UQQgghxOORVNPW9IqJiWHu3LkA/PDDDwDs2rWLiIiITOW7fft2WrVqRWBgIJ07d2bTpk3kzZsXgAIFCjBy5MgEAan3bW+2+m7F84YnwVHBtGnThnfeeYfIyEgGDRoUd66rV68mJiaGKm9UofXy1gQ/COaVyq/wnssgOPw2HOgNl92MgNQmHxR/GVymQpt98FoQ1J70ZASkgYHw9ddQpgz06UO7Eyd4GagG5NYanJygdm145RX44AP48Uc4dw7eflsC0mzwBFwRT66wsDCGDx9OUFAQVlZWVKhQgblz5/Lqq68CRrPZkSNHPrKfm5sbGzduTLCuW7duuLm5MWrUqEe2/+mnnzh//jwTJkxgwoQJAGzdupXChQsze/bsuClhOnToQIcOHQD4/PPPef3115k/fz5lypRh+fLlWX36QgghhBDPLX9/fywsLChatGiS6UeOHKFdu3b07t2bn37K2GyIERERfP7551y9epUKFSrQt29fZsyYgYeHB/v27aN169YZynfNmjX07NmTyMhI+vbty++//461tfUj292LusdW3638fORntl3YliDN9rAtRaoWwWaIDUdvH6XZN83o0qILP7v/DEPhVKFT8AA6V+rMotbjULvaw81dYJkLak2CYu3AsSqoJ6wO7MYNY8TcX36B2KkcX3gBj8KFmfjPP1ywsGCjlxfFsqj5tEgbCUpTUK9ePQ4cOPDI+thRbxOLnaP0woULj6TFn5Q4sbFjxzJ27Ngk0+rXrx/XKT2+AgUKsH379mTzFEIIIYQQGePv70+lSpUIDw+nXr16dO7cmZdffpm6deuilOLWrVv06NGDu3fvsmTJEmbOnJninJ5JuXDhAl26dMHLywsLCwsmTJiAhYUF7dq1w8PDgy1btmQoKF20aBFvvvkmJpOJYcOGMWvWLCwsEgaGXje9GPnvSHZe3MmDmAcA5LbOTYPiDbgZfpMrd68QHhPOlZArUAQoAgdNBzm4/SAUN/IoYOfEkuYjaG9xHfVvQ9DRkKsYNFsLBeqnu9zZzmSCX3+Fzz83muwCtG0LX3wBzZqR69w51m7YwMCBAyUgzQESlAohhBBCCBHPpk2bCA8PB8Dd3R13d3fGjx9P8eLF6dSpE2fPnuXq1asAhISEcPz4cRo0aJCuY4wfPx4vLy8qVarEokWL4qYAbNeuHd9++y0bN27km2++SVewO2vWLEaMGAHAl19+yddff/3IYJgrT69kwJoBhEeFo1A0KN6A16u9xrtl65L3/hUwRXDe+xSlSxcm7P5twiPucMR9Lzdv+5E7l8LRUlM+rz3Vi2jUhfFGpsoCyg6A2pMhd4l0PQ/ZKjwcDh2CvXth3To4dsxY37EjjB8P8V6zypUrc/PmTRwcHHKmrM85CUofoy1btsQ13zWZTFhYWFC2bFlWr16dwyUTQgghhBCx/v33XwC+++47qlatyvr161m/fj1+fn789ttvgDHoZIMGDVi/fj07d+5Md1Dq4eEBwOLFi+OmYwF46aWXyJs3L6dPn6Zq1ap8/fXX9OzZE8tU+jHOnTs3LiCdPn06I0aMwD/Un1M3TxnLrVN43vDEPcAdgN41ezOr5dcUvL0LfGbDrs/i8qoAcAryYyyligJFAWJnxAiDKMC+PBRtA5WHg2O1dJ1/tggNhe3bjSB0714jCI2JeZhetCj8/DN0757k7vny5XtMBRWJPdFBqdb6mZrqpF27drRr1w6A0NDQbP8lRufQVDpCCCGEEE8rk8kU10WqS5cuVKpUiU6dOjF79mxOnDjB+vXrOXLkCGPGjMHX15f169ezY8cOPvvss1RyfigqKoqzZ88CUL16dQCOXDvCZ9s+4/a925QdX5bzp85zPvA8fZb24cN1H9KmeRsa1G5AXtu8NCzRkJpFasbld/36dT7+9mNoAM1fa84qp1VM+N8EgiKCHjm2tYU1vzcdSh+LK6jN1cEUaSTYFoBiHcDKnqsBtylVpgJY2hmLhR1nfC7w7bQfuBdlxbw/1pK3aE3IXTKDz3I2WLUKhgyBmzcfrrOwgHr1oGlTY2nTBqQm9In0xAaldnZ23LlzhwIFCjxTgenjorXmzp072NnZ5XRRhBBCCCGeGh4eHty+fZvSpUtTsWLFuPVKKVxcXHBxcYlbV7q0Mc/mvn37iIyMxMbGJk3H8PHxISoqinLlyhFhEcHXW79m+qHpmLTp4UalzQtwm9ssu7GMZVuXxSVXL1SdGoVrcOveLQ76HOR+//sA7L63G64Y2+Szy0fNIjVoWKAijfIVoXruPJQPP4HN1ZmxZwVFWhpNb8u8bgSggO+uXZRycU1Q5qpV4JVoV3Lnzk3ecu3SdJ6PRWgoDB4Mf/5pPK5b12ie27QpvPCCBKFPiSc2KC1ZsiR+fn7cunUrp4uSLSIiIrI9YLSzs6NkySfoFywhhBBCiCdcbNPd1q1bp1oxUrRoUapWrcqZM2c4cuRIgqn9UnLy5EkoBZGdIik5vSQPYh5goSwY+cJI+tTqw517d7gbcZewyDCC7gWxY/8OduzbQXhUOOQG6yrWeN3ywuuWl5GhFeQNh89rNODFwsUoa60ozD1sI66jwj0gdC+ExiuAhQ1U/gAqfwS5i6f5uenWrVuat30szp2Drl3hzBnInRu+/Rbef9+oIRVPlSc2KLW2tqZs2bI5XYxss2vXLurUqZPTxRBCCCGEEPHEBqVt2rRJ0/YtW7bkzJkz7Ny585Gg9EH0AwLCAvAP9Y9broVcY+HZhfAW+OGHilF0qNCB8a7jaViiYZLHGPHiCO4Nvcfs2bOZMmUKd1ffJV/dfNSpW5r8NzzpVs7Ea3WtsLY4AoFJZGBlD/ZlIY8zOFSCSsPA3jntT8qTaP166NMHQkKgWjVYvRoqVcrpUokMemKDUiGEEEIIIR4HrTXe3t7kypWLffv2AdCqVas07duiRQt+/vln1q1bR5tObThtOs2mC5vYdWkXt+4l0+JPAeHQpWQXZvabSdl8qVfE5M6dm5EjR9KrVy8mftSFNyofx7Xa3XhbREOhppDPxQg+7Z2Nv3mcwSYfPCvd4aKi4JtvYNw443GPHrBggTTTfcpJUCqEEEIIIZ5bISEhdO/ePcH873Xq1KFQoUJp2t/V1RXywn95/6Px8sYQr3eWlYUVxeyLUdyheILlx3E/cn3PdSYdn5SmgBSA+wFwcw8l/f5hTrfjAERrK2LyNcS2zMtQ5o2nv/YzMZPJaKJ75IixHD0Kx49DRIQRZE+ebMw7+qwE3M8xCUqFEEIIIcRz6caNG3To0IHjx4/j4OCAjY0NQUFBvPXWW2na3/OGJ9MOTsPiYwtMmAcpugJ4QS6/XHw94ms+Gv5RgrlG7927x9hdY7GytKJy5crJZx5+FW7ufriE+jxMs7CBKh9jVX00VtZ5M3DmT6joaKNZ7sGDRhDq7m40z02sShWYMQPat3/8ZRTZQoJSIYQQQgjxXOrTpw/Hjx+nQoUKbNmyhXLlyhETE5PqnKAAey7vodXiVkSborFQFrxe7XU+eeETlL9i3LhxbDq8ic8+/Yzlfy1n3rx51K5dG4DTp0+jtaZy5cpJj9YbfBoOvwO3DyRcb2UPhV6Cws2hTC+jj+izJDzcaIq7ZUvC9SVKQIMGD5f69UHmE33mSFAqhBBCCCGeO/fv32f37t1YWFiwd+9eihYtCpCmgDQ8MpxB/wwi2hTNGzXeYHLLyQ+b4ZaAjRs3smHDBoYMGcLRo0epX78+n332GV9++SWnTp0CoEaNGgkz1RrOTIOTX4LpAVjnNfqIFm5uLPnrgsUz+tX97l14+WU4cAAKFTKmeIkNQIsVy+nSicfgGb2yhRBCCCGESN6xY8eIjo6mZs2acQFpWn2+7XMu3L1A7SK1Wdh1ITaWj9Z4durUCS8vL7744gt+/vlnpkyZwt9//025cuWAREGpKQaOvg/n5xqPy78NdaaBjWOGz++pER5uNMP97z8oVQq2bZNRdJ9DMomPEEIIIYR47hw+fBiARo0apXmfiOgIvtv/HT8d+QkrC6tkA9JYDg4O/Pjjj+zbt4+qVaty7tw5Nm/eDMQLSqPvw8G+RkBqaQfN1kCj356PgDQ6Gt54wwhIy5SBffskIH1OSVAqhBBCCCGeO+kJSmNMMSw+sZjKP1Xms22fATC++Xhcirqk6Vgvvvgix48fZ9y4cVhbW2NhYUG9unXg0p+wvjJcdgMrB2ixBUq+kuFzeup8+CGsW2f0Ed28GUqXzukSiRwizXeFEEIIIcQzSWuNSma6kLQEpVprNp/fzOfbP+fkjZMA1Chcg6mtptKxYsd0lcXW1pbxX37BoFebYrr6D6VOtHk4oq5TbWj8u9Fv9Hkxdy7Mng22trB2rTGirnhuSVAqhBBCCCGeKSdPnuTDDz/kxIkTTJw4kcGDBycYwOjGjRtcvnwZe3t7qlWrlmQeR/2P8um/n7Lr0i4ASjuWZmKLifSp2QdLi1QGQ4oOh6trjKAz/CKEXTT+3rtGGfTD7XKXgppfQ9n+kFqez5KDB2HYMOP/uXOhSZOcLY/IcRKUCiGEEEKIp9KpU6cYPHgwPXv2ZOjQoYSEhPDVV1/x888/YzIZ84YOGzaMJUuWMHfuXGrVqgU8rCWtX79+kqPtHvI7RNMFTYk2RZM/V37GNB3D+w3ex87KLvVCBZ+GvT0g5OyjacoCcpcGx5pQ4W0o3unZHVE3OX5+xtQvUVEwfDj075/TJRJPgOfsLhBCCCGEEE+CkJAQ8uTJk6YpWJLz119/sX//fvbv388ff/zBxYsXuXXrFhYWFgwfPpwXXniBkSNHcvjwYerVq8fIkSP56quvUmy6G/oglL6r+hJtiqZ/7f7Maj8LJzun1AujTXBhIbh/YNSU5q0CpbpDnrLGnKL2ZY2aUQvrDJ/vUy8kBDp1goAAaN4cvv8+p0sknhASlAohhBBCiMfqwIEDtGzZkgEDBjBnzpwM53Pu3DnAmFv0v//+A6Bp06b89NNPcbWinTp14osvvmD27NlMnTqVFStWYG1tBIZJBaUjNo/A964vLkVdmPvyXGytbFMvSOAxODIU7hwyHpfpDQ3ngLV9hs/tmRMeDq+/DidPGiPsrlwJ1s9xgC4SkNF3hRBCCCHEY2MymRg+fDgPHjxg/vz5+Pn5ZTiv2KB03bp1jB07Fjc3N3bv3h0XkALkzZuXn376iQMHDlCjRg18fX05e9ZoWps4KHU75cbvHr9jZ2XH0u5LUw9ItYYz02FLIyMgtSsKLyyBF/+QgDSWl5fRTLd4cdiyBQoVgk2boECBnC6ZeIJIUCqEEEIIIR6bxYsXc+zYMQBiYmKYPXt2hvLRWuPjY4xe26hRIyZOnEjPnj2THW23cePGHDt2jClTpmBnZ0fNmjUpXrx4XPqxgGO8+c+bAExrM41qhZIeAClOVBjs7QbHPwEdDZWGQWdvKNsXkinDc+PBA1i2DJo1gxo14KefjKa7L7xgBKblyuV0CcUTRoJSIYQQQgjxWISFhTF69GgAhg4dCsCcOXO4d+9euvMKCAggPDycggULkj9//jTtY21tzejRo7l27RoHDhyIW3897DqvuL3C/ej7vOnyJu83eD/ljCJuw/aW4PcPWDtC01VQ/0ewzpvu83imxMTAhAlQqhT07g1794K9PQweDB4ecOAA1KmT06UUTyAJSoUQQgghxGPxzTffcP36dRo3bsyPP/5IgwYNCAwMZOnSpenOK7bpbsWKFdO9b/78+bG3N5rX7rm8hwa/NcAvxI8XS73I7E6zk61txRQD/ltgW1MIPGIMYtTuCJTqlu4yPHNMJnj7bRg3Dm7dgtq14ddfwd8ffvnFeCxEMiQoFUIIIYQQ2e7SpUt8bx5tdcaMGSil+PDDDwH48ccf051fbFBaqVKlDJXn7O2zDN84nBaLWuAX4kejEo1Y9fqqpPuRBp+G46Pgn9Kwq70x3YtTTWi7H/KmPyh+5phM8O67sHAh5M4NGzbA8ePw3nvg4JDTpRNPARl9VwghhBBCZLtRo0bx4MED+vTpQ+PGjQF47bXXeOedd/D09CQwMDDNzXAh7UFpZEwk5wPPc/b2Wbxve3P2zllO3TzFsQCjX6tC8UWTLxjvOh5ry3ijwT64A5eWwcVFEHj04Xr78lC2P1T+EGwc01zeZ1ZUFLz5JvzxB+TKBevXQ4sWOV0q8ZSRoFQIIYQQQmSrffv2sXz5cnLlysU333wTt97GxobatWtz6NAhjh8/TqtWrdKcZ+wgR0kFpfei7vHN3m/4y+svLty9QIyOeWSb3Na56V2jN0MbDsWlqEvCxLsesK0FRAUZj63zQumeUG4AFHxRBjKKFREBPXvC2rWQJ4/xVwJSkQESlAohhBBCiGxjMpkYMWIEAJ999hmlSpVKkF63bl0OHTrEsWPH0hWUJtendMO5DQzbNIxLQZcAoya0XL5yVClYhSoFqlC5YGWqFKxCnaJ1cLBNomnpPT/Y1ckISAu9BBWHQclXwCpXmsv2XNi/H955B86cgXz5jGlekpj3VYi0kKBUCCGEEEJkmyVLluDu7k6JEiX49NNPH0mvW7cuQNw0MWkRHR2Nr68vABUqVADAL8SPDzd/yKozqwCoVaQWM9rN4MVSL2JnZZe2jKNCjYD0vj8UbgYttoJlKnOVPm9CQmD0aIidyqdSJfj7b6hZM2fLJZ5qEpQKIYQQQohsEX8KmKlTp5InT55HtokNSt3d3dOc7+XLl4mKiqJkyZLkzp2bBccX8MHmDwiLDCOPdR4mtJjAB40+wMoiHV91tYb/3oWgk5C3MjRdLQFprNBQOHfOGLzo66/Bzw+srODzz2HMGLBLY9AvRDIkKBVCCCGEENli6tSpBAQE0LBhQ3r37p3kNtWrV8fGxgYfHx9CQkLImzf1uT5j+5OWq1qOV1e8Glc72rVKV35o/wOlHEultHvSLiyAy25glQea/QO2aR906ZlgMsGVK3D2LCXWr4fly8HbG86eNaZ1ia9hQ5g3T2pHRZaRoFQIIYR4Rt2/f5/du3fTokULbG2lxkc8XtHR0cycORMwpoCxsEh6JkIbGxtq1qyJu7s7Hh4elC5dmsWLF/PJJ58kWbMK5v6k1nCuwTn2nNmDg40DP3X8iX61+iU/x2hKgs/A0WHG/w1+MWpKnyfHjkG/fnD6NACPTHJjYwMVK0KVKtCmjTEfqaXlYy+meHZJUCqEEEI8o2bNmsXo0aP56aefGDp0aE4XRzxnfH19CQ8Pp3Tp0rz44ospblu3bl3c3d05evQoI0eO5MiRIyil+PLLL5Pc/tiJY/AaXLe5Tsm8Jdk1YBfl85fPWEG1hiODIea+MdVL2X4Zy+dpZDLB998bTXCjoqBAAahZE38HB4q3aGEEoZUrQ5kyEoSKbCVBqRBCCPGM+u+//wC4dOlSzhZEPJc8PT0BqFGjRqrbxvYr/e6777h+/ToAf7r9SYNeDTh/9zxXgq9wNeQqV4Ov4nnFk5ASIWAJjtaObO27NeMBKcC1tXBzD9gWgHqzMp7P0+baNejfH3bsMB4PGwb/+x/kysW5Xbso7uqao8UTzxcJSoUQQohnlJeXFwCBgYE5XBLxPLhz5w4TJkzggw8+oHz58pw6dQqAmmnodxgblMYGpKqE4uxLZ+nwZ4dHN1aAJRS2LMyGgRuoWqhqxgttigKPUcb/NcaBjVPG83paREfD/PnwxRcQGAiFCsGCBdCpU06XTDzHJCgVQgghnkGRkZGcP38ekKBUPB5Tp07lhx9+4M6dO/zxxx/pqimtWbMmlpaWxMTEUKxXMQIqB4ACe21P3/p9cdAOuM114+qpq3H/d2zbMfOFPv8bhHiDfQWo8F7m83sSBQeDj8/D5e+/wfza0KGDEZAWKZKzZRTPPQlKhRBCiGfQ1atXMZlMANy9ezeHSyOedVprVq5cCcDu3bvRWqerpjRXrlw0aNyAQwUOEVAlAAssMO03ke9CPvq360+3bt24ceMGFStWZP369VSqVCnzhY6JgFMTjf9dpoKlTebzzEnh4bBlizFabvwg9ObNR7d1doZvv4XXXoOMDAwlRBaToFQIIYR4BsXvRyo1pSK7eXh4cPHiRQD8/Pw4e/Ys58+fx9LSkipVqqS6v9aaIoOLgC/kssrFn93/ZNhvw7h67SpNmzYlJiaGVq1asWLFCvLly5c1hb6wACKuQz4XKNU9a/LMCaGhMHs2TJsGt28/mm5nZ4ycG7tUr24EozK3qHiCSFAqhBBCPIMuX74c978EpSK7xdaSxvr1118xmUxUrVo1TdMRLTu1jH98/8HBxoGt/bbSuGRj9vbcy/Tp04mJiWHIkCHMmjULa2vrrCmwKRpO/8/4v9rop6+2UGs4eRLmzoUlS4zAFKBBA2jWLGEQWqIEJDMdjxBPCglKhRBCiGdQ/JpSab4rskNkZCRaa2xtbeOC0g4dOrBp0yYWLlwIpK0/6fWw6wzfNByAGe1m0LhkYwCGDx/OkSNH6N27N4MHD87awl92g/BL4FARSvXI2ryzQ1QU+Poa84h6eMDKlXFzigJGIDpmjDGH6NMWYAuBBKVCCCHEMyl+UHrv3j0iIiKwk+Z6IotER0fTvHlzTp48yXvvvcfZs2fJly8f48aNY9OmTYSEhABp6086ZMMQAu8H0q58O96s82bcemdnZ/bs2ZP1hY+4CV6Tjf+rjQKLJ3D+zUOHjP6hp08bi7e3EZjGV6AA9OoFgwdDGoJ/IZ5kEpQKIYQQz5gHDx5w7do1LCwscHBwIDg4mLt371KsWLGcLpp4RsyZM4dDhw4BMGPGDABeeeUV6tevT968eeOC0tRqSk/fOs2as2uwt7Hnt86/obK7ls9vHfz3thGY5ikLzv2y93jp5e8Pn34Kf/75aJqzM1SrBlWrQsuWRq1oVjVnFiKHSVAqhBBCPGO8vb0xmUxUqlQJCwsLCUpFlrpz5w5ffvklAF988QV//fUXFy9eZODAgVhaWtKkSRM2btwIpF5TusxzGQA9q/eklGOp7Ct0VBgc+xh8fzMeF2kBjRc+WSPuLl8O77wDISHGIETvvAP16xuBaJUqYG+f0yUUIttIUCqEEEI8Y7y8vACoVq0aN27cAGSwI5F1xo0bx927d2ndujWTJk1i3Lhx3Lp1ixIlSgDQvHlzNm7cSK5cuShbtmyy+WitcfNyA+CNGm9kX4FvHYSD/SDMFyxsoPY3UGUEqCdk8J+ICBgxAubMMR536gQ//ggpPHdCPGuekLtRCCGEEFnltHkAlOrVq5M/f35AglKRNTw9Pfnll1+wtLRkxowZKKWwsbGJC0gB2rVrh1KKRo0aYWmZfH9N9wB3zgeep0ieIrg6u2Z9YU1RcOJL2NbECEidakF7d6j68ZMTkF6/Dq6uRkBqYwM//wzr1klAKp47UlMqhBBCPGNia0qrV6/OlStXAAlKs0tUVBS//PILHTt2pEKFCjldnGyltWbEiBGYTCaGDRuWbH/R2rVrs3fvXsqUKZNifm6njFrS16u/jmVWDzYUHQ67O8ONnYCCqp9BrQlgmfr0NI/NkSPQvTv4+UHp0rB6NdStm9OlEiJHPCE/EwkhhBAiK2it2b9/PwB16tQhX758gEwLk11mzZrFhx9+yKBBg3K6KNluzZo17Nixg/z58/P111+nuO1LL71EyZIlk003aRN/ef0FQK8avbK0nESFwa6ORkBqVxRa74I63z45AWl0NEyaBC++aASkL71kBKgSkIrnmNSUCiGEEM+Q06dPc/PmTQoUKEDlypWl+W42ioyMZObMmQDs27eP8+fPP7O1pREREXzyyScATJw4Me66yqgVXivwC/GjjGMZXij5QlYU0RAVagSkt/ZBruLQaifkrZR1+WeE1nDmDOzZA3v3wu7dcO2akTZiBEydCrZPSMAsRA6RoFQIIYR4huzYsQMwakmVUhKUZiM3NzeuxQYXwMKFC5k0aVIOlij7TJ8+nYsXL1KzZk3efffdTOV15tYZ3l73NgAjXxyZddPARIXAzg5w+wDkLmkEpA459CNBUBAsWmQEoHv3wu3bCdNLl4b586F16xwpnhBPmlSb7yql7JRS/ymlTiilvJRSX5vXL1RKXVRKeZgXF/N6pZT6QSl1Xil1UiklbRGEEEKIx2T79u0A1DU3BZTmu9lDa820adMAGDhwIACLFi0iJiYmB0uVPa5du8aUKVMAmDlzJlZWGa/TCHkQQre/uhEWGUbP6j0Z2mBo1hQyJiJeQFoKWu3KuYB03z6oXduoBV292ghIixWDnj2NgYw8PeHiRQlIhYgnLX1KHwAttda1ARegvVKqsTntU621i3nxMK/rAFQ0L+8Cv2RtkYUQQojn1+HDhxk8eDD79u17JC0mJoZdu3YBRk0pIDWl2WTLli14enpSrFgxfvnlF8qVK4efn19cTfWzZPTo0YSHh9O9e3datmyZ4Xy01gxcMxDvO97UKFyD+V3mZ10tqe/8hwFp613gUD5r8k2P6GgYNw6aN4crV4w5Rn//Hc6fN5rrurnB++9DjRpgIcO6CBFfqneENoSZH1qbF53CLq8Ai837HQKclFIyW7cQQgiRBd577z3mzJlD06ZNad26NXv37o1LO378OMHBwZQrV46iRYsCEpRml++++w6ADz/8EDs7OwYMGADAggULcrJYWeb333+nSZMmvPzyyyxZsgRbW9u4muGM+nb/t6w+uxpHW0dWvb6KPDZ5sqawpig4Y7we1J0O9uWyJt/0uHjRCEYnTDD6kI4eDQcOwKBBUL48ZFXwLcQzKk0/0yilLJVSHsBN4F+t9WFz0mRzE90ZSqnYHtolgKvxdvczrxNCCCFEJhw/fpwTJ05gb29P3rx52b59O82aNaNly5bs3r07rpYufm1WbFAqzXezzrFjx9ixYwf29va89957AHFB6erVqwkKCsrB0mWNyZMns3//fjZs2ADAyJEjKZuJuTO3+m5lzI4xAPzR/Q8qFqiYJeUE4PJfEH4ZHCpByW5Zl29abdtmjJx74ACUKAHbt8OUKWBt/fjLIsRTKk2dArTWMYCLUsoJWK2UqgGMBq4DNsBcYBQwIa0HVkq9i9G8lyJFisQ1N3pehIWFPXfnLNJOrg+RErk+nl8//PADAG3atGHQoEGsXLmSv//+m507d7Jz505szSN4Fi1aNO46iQ2Qbt68KddNFpk4cSIAHTp0wMPDI259nTp1OH78OBMmTKBLly45VLq0Sel9JCYmhsuXLwPw5ZdforXG1dU1w9fP9YjrvOf+HiZton+Z/tj727PLP2N5PUKbaHDrS/IAZy1f4fqevanukmW0pviaNVT86SeUycTtF1/k7GefEa0UPOX3mnzOiPgey/WgtU7XAnwFjEy0zhVYb/5/DvBGvDRvoFhKedarV08/b3bu3JnTRRBPMLk+RErk+ng+RURE6Pz582tAu7u7x62/e/euHj9+vHZ0dNQY3Wt0QEBA3HUSFRWlAa2U0jExMTlU+mfHxYsXtaWlpbaystJXrlxJkLZkyRIN6EaNGuVQ6dIupfeRy5cva0AXLVo008e5F3lP1/m1jmY8uuPSjjrGlMXX4OUVWi9F69UltY5+kLV5pyQyUuvBg7U2GutqPXq01s/Q/SWfMyK+rLoegKM6mXgwLaPvFjLXkKKUygW0Ac7G9hNVRg/1rsAp8y5rgf7mUXgbA8Fa64BMxs5CCCHEc239+vUEBgZSq1atuEGMAJycnBg3bhyXLl1i2rRpLF68OK4/KYCVlRV58+ZFa01ISEhOFP2ZMmPGDGJiYujVqxelSpVKkNa9e3ccHBw4fPgwZ86cyaESZt6lS5cAcHZ2znRewzcN5/j145TLV44/uv2BhcrCAX4e3IGjw4z/q40GS5usyzs5JhMcPgzt2sGvvxrzi/7xh9FcVwYvEiLD0nL3FAN2KqVOAkcw+pSuB5YqpTwBT6AgEDsx10bgAnAe+A14P8tLLYQQQjxHoqOj+fnnnwEYNGhQkiOWOjk58cknn9CvX79H0mKnhQkMDMQ/1J/rYdezt8DPqMDAQObNmwcYfSwTy507Nz179gSMOUufVhcvXgTIVB9SgNv3bvP78d+xtrBmdc/V5MuVLyuK99CRoRBxAwo3g4qDszbv+KKijH6jQ4dCqVLQuDHs3AlFixrzkPbpk33HFuI5kWqfUq31SaBOEuuTHBPcXDWbRZNOCSGEEM+3e/fu0atXL3bu3Im9vT19MvAFOF/+fFzOd5lXN7zK8cDjANQuUpsOFTrQoWIHXij5AtaWMihLan755Rfu3btH27ZtqV27dpLbDBo0iHnz5rFo0SL69OlDrVq1HnMpMy+rakq3X9iORtO0TFNqFcnC5yH8CpyfA1f+Aqs80HghZGUNbKxt22DxYli/HuIPFFaqFHTrBp99ZgxsJITItIzPfiyEEEKIbBUdHU379u3Zu3cv+fPnZ926dRQqVChdeYRFhuHXxA8KwPHA4+SyyoVSihM3TnDixgmm7p+Ko60jrcu1jgtSizsUz6YzenpFRETw448/AvDpp58mu90LL7yAi4sLHh4e1K5dm65du9K1a1dcXV0pU6bM4ypupmRVTem/F/4FoE25NpkuEw8C4coKuPwn3NzzcH3d6WCfuXImae5cMI+sDEC1akYg2q2bMdKuTPEiRJaSoFQIIYR4Qh06dIi9e/dSuHBhdu3aRdWqVdO1f0BoAO2Xtud2gdtwH94t+y7TBk7D2tKavZf3sun8Jjad38TZ22dZeWYlK8+sBIxa1N41e/N+g/ext7HPjlN76ixZsoQbN27g4uJCq1atkt1OKcWWLVuYMmUKv/76K2vWrGHNmjWAUdM6eHA2NjPNIllRU6q1znxQaooGv9VwcQkEbDbmIwWwtIMSXaDcICjePsNlTNbKlTBkiPH/qFHw5ptQqVLWH0cIEUd6ZAshhBBPqN27dwPw6quvpjsgBRizYwwnb5zEMdoR5oGLyQUHWwfsrOxoU74N09tN58zQM1z44AI/d/yZlyu9TG7r3Jy4cYJR20ZRblY55hydk9Wn9dTRWvP9998DRi1pUn164ytcuDAzZ87kwoULfP/993Ts2BGAMWPGEBoamu3lzaysqCn1CfThSvAVCuQqQJ1ij/QCS13AVthUB/a9DtfWgY6Bom2h8SLofhOa/JU9AenGjdC7tzGg0cSJMHWqBKRCPAZSUyqEEEI8oWKD0ubNm6d73+CoYJadWgZAz5iezL0zl7vx+8XFUzZfWd5v8D7vN3ifiOgItl3YxqQ9kzh87TCDNwymjFMZ2lfIhgDgKeHl5YW3tzeFCxfmtddeS/N+xYsX5+OPP+ajjz6iadOm7N+/n19//TXJ5r9aa/Zd2cfuy7s5fO0wl4MuExAWgLWFNc5OztQqUouPGn9E5YKVs/LUHhEVFYWfnx9KKUqXLp3hfLZd2AZAq3Kt0jfibvQ9+G8wXFpiPM5TBip/BGV6Qq6iKe+bWX/9BX37QnQ0fPghjBmTvccTQsSRmlIhhBDiCRQVFcWBAwcAaNasWbr333J9CxHREbQr347yTuUBY/TY1NhZ2fFypZc5+NZBvnb9GoBhG4cRER2R7jI8KzZv3gxA+/btsbZO/4BQSinGjh0LwPfff8/9+/cTpMeYYhj0zyCaLWzGlzu/ZP259Xje9OT2vdsEhAVw0O8gc9znUG12NQauGYhvoG/mTyoZV69exWQyUaJECWxsMj7FSoaa7oZdgK0vGgGpZW5w+RZePgtVPsz+gPS33+CNN4yA9LPPYMYM6TcqxGMkQakQQgjxBHJ3dyc8PJzKlSsnmHc0LUzaxD/+/wAwtMFQ8ufPD6QtKI2llGJ0k9FUK1QN37u+fLvv23SV4VmyZcsWwAhKM6pdu3bUq1ePGzduMH/+/Lj1sQHpohOLyG2dm2ENhrGsxzKOvXuMgE8CuDj8Io3ONMLmpA0WWLDoxCKq/FyFd9a+w+Wgy5k+t8Ri+5NmpulutCmaHRd3AOkISv03waZ6EHQC7CtAu8NQ7TOj/2h2mzYN3n0XtDbmG506VQJSIR4zCUqFEEKIJ9CuXbuAjDXd3eq7Ff8If0o7lqZjxY5xQent27fTlY+1pTW/dPoFgG/2fcP5wPPpLsvTLjw8nD179qCUok2bjA3YE2OKYdmpZZR/qzy8DJ+6f8qL816kwg8VcPrWiSUnl5DbOjcbe2/kx44/0qtGL+oUq0NR+6Is/WUph/86TOSqSN6NfJeBLgMxaRPzjs+j4o8VGbphaJbOOxvbnzQzgxztv7KfkAchVMxfkTJOqYw4rDWcmgy7OkFUEJToDO2PgFONDB8/zbSGsWMhtjn1zz/D6NESkAqRAyQoFUIIIZ5Asf1JXV1d07Wf1pppB6YBMLjeYCwtLKlWrRoABw4cICYmJl35NSvTjH61+vEg5gHDNw3HmI78+bF7924iIyOpX78+BQsWzFAeo7ePps+qPiy/uRzqQ4RzBAevHcT3ri9hkWEUtS/Kpj6baO6c8AeIAwcOMG7cuLjHq+avYm7HuZwZeobeNXsTbYpm9tHZNJ7XmKCIoMycZpysqCldctLoD/pqtVdT3lBrOPEFnDSaNlNrIjRbAzZOGT52mplMMHw4TJ4MlpawZAm8/372H1cIkSQJSoUQQognTHR0NPv27QPSX1O68sxKtl/cjoOVA+/UeweAypUrU758ee7cucPBgwfTXZ7v2nyHo60jm89vZvXZ1ene/2kW25+0Xbt2Gdr/eMBxph+cjoWy4POXPmdAoQGwHIpvKc6pwae4O+ou/h/706xMwn7DkZGR9O3bl5iYGD755BOqVq3K9evXWb9+PZUKVGJp96V4DvGkTtE6XA6+zOD1g7PkB4PMTgdzP+o+K06vAKBfrX7Jb2iKgZNfwumpoCyhyQqoMRbSMyhSRly7Bn/+Ca+8YtSM2tgYU8D07Zu9xxVCpEiCUiGEEOIJ4+7uTlhYGBUqVKB48eJp3i/0QSgjNo8A4O2yb1Mwt1Gzp5Sic+fOAKxbty7d5SliX4QpraYA8OHmDwmLDEt3Hk+rzPQnjTHF8M66d4jRMQxvOJxvWn/DvHfnUSGyAv4H/fHY5oGTnVOSU8wsW7aMixcvUrVqVaZMmcK7774LwNy5c+O2qV64OstfW469jT1/ef3F4hOLM3iWD2V2Opi13msJeRBC/eL1qVooiWmM7l0Dzwmwtix4TTYC0pfcoHSPzBQ7eZcvw+LF8NZbUKEClCwJffrA+vWQJ48xBcwrr2TPsYUQaSZBqRBCCPEEiYqK4qOPPgLSVzv3IPoBn/37GddCr9GwREM6FeuUID0zQSnAe/Xeo16xeviF+FF3Tl1+P/47kTGRGcrraXHx4kXOnTuHo6MjjRo1Svf+0w9Oxz3AnVJ5SzGxxUQArKysGD16NABTpkzBZDI9sp/WmmnTjCbYo0aNwsbGhn79+mFra8uWLVviajMBKuSvwI8dfgRg2KZh3L6Xvn7DiWW2pnTxSSMw7l+r/8OVphhjIKM9XeGfMuA5Du5dBfvy0HQllE6lmW96aA0nT8JXX0G1auDsDAMGwO+/g68vODhAhw7GYEYeHtCqVdYdWwiRYRKUCiGEEE+Q8ePHc/DgQUqUKMHXX3+d6vZ37t1hyt4plJ1Vll/df8VCWTC742wslWWC7Zo2bYqjoyNnzpzB1zf9U4pYWliysOtCyjqVxSfQh7fWvkX5H8oz69AswiPD053f0yC2lrR169ZYWaVvavdtF7YxersRfP7S6RccbB3i0vr27Uvp0qU5ffo0a9asAeD48eN06tSJNWvWsHXrVk6dOkXx4sV54403AChQoACvvvoqWusEo/cCDKg9gDbl2hAWGcYij0UZPV0ePHiAv78/lpaWlCxZMt373wi7wZbzW7CysKJXjV5gioKzM2FdBdjVEfz+ARSUehVa/gudz0HJLKqlDAyEL7+ESpWgdm2YOBHOnAFHR+jc2Rhh98gRY7uNG2HUKKPmVAjxRJCgVAghhHhCbN++nW+++QYLCwuWLl1KgQIFkt3W544PQzcMpdSMUozZMYaAsABqFanFqtdXUa94vUe2t7a2pkOHDkAaa0u1htuH4eoqCPEBbaJG4RqcG36OJd2WUL1QdfxC/BixZQTOs5yZtGcSd+/fNfaLDIaIWxBxE2Ke3vlNY4PS9PYn9Q305fUVrxOjY/iiyRd0qpSw1trGxobPPvsMgEmTJvHgwQN69+7Nxo0b6datGwMGDABg+PDhCeYKjW3CO3/+fKKiouLWK6UY2mAoAHOPzc1w31I/Pz+01pQoUSLdQTjAitMriNExdKjQgUL3L8LmBnDsIwi/BHmcofYU6HoVmq6Aoq2zpv9oRIQRcJYvD5MmwfnzUKiQMcXL1q1w6xasXQuffAL160MGzksIkf3kzhRCCCGeADdv3qRv375orfnqq6+SHeDofOB5Ptn6Ceu816Exgo8OFTrw8Qsf06psqyT7J8Ya2LkanQtATdN42LHRmAPSMlfCxSqX0c/P7x8IOvlwZ6s84FQLK8fq9FWW9KlTj2tB+fC9dYr7D25jd+5L/C+MJ28uWyxj7iU8sJU9FGgIlUdAiU7ZP5hNFoiKimL79u1A+oLSyJhIXl3xKncj7vJypZeZ2HJiktu9+eabTJo0iePHj9OlSxfOnj1LkSJFuHPnDjdu3CBPnjy89957CfZp2rQpVapU4ezZs2zYsIGundtD+FXw30iXK39x3NmaGXfOsffiDpqVS3+z1KtXrwJQqlSpdO8LsM9nDaPzwUgbD9hqbu6cxxnqzYISL2ft6x4dDStWwBdfQGxz5latjMfNmxsj6gohnhoSlAohhBA5zGQyMXDgQK5fv06zZs0YO3ZskttFxkTSZVkXztw+g62lLX1r9eWjxh9RvXD1lA8Q5AXuH9KO7fAiQDBc/zf1gtkWgvx1IegU3L8Gtw8aC6CAkkBJK+J9m4iBmHvEWObC0iq3sVVUMESHwY0dxpLHGYq2gsLNoXAzyJPKPJY55ODBg4SGhlK1alVKly6d5v3+t/9/eFz3oKxTWf7o9gcWyQRiuXLlYuTIkYwcOZKtW7cCxuBGtra2jBo1in79+pEvXz5j4yBPuOyGuu/Pps80oTehzN3X4a94taWAizUsKgq3Dr0CD8ZDuTfBNn+ay56hoFRrCL9IlM9v/Ka341AQeHAVrB2hwrtQc5zxg0ZG3bwJp0/DuXPG4u1t/L1wwQhMAWrUgP/9D9q3lzlGhXhKSVAqhBBC5LAZM2awadMm8ufPz9KlS5NtOjntwDTO3D5DxfwV2TtoL0Xsi6ScsSkKvKaC10TjfysH/j5ZhB9XnmfE8MF069Ieou9DTOIlAhxrQKluYGlr5BVxG4JOQMhZo8bLws5c02os0VgxctcEFvvuI1ceJw68eZAyTmWMoOXBHbi4GLxnGU05fecbCxhBaWyAWqIL2BXKuic2E2KngknPqLunb51m4h6jZnRel3k42jmmuP17773HlClTCAwMpF+/frRo0QKAvXv3Ptzo5h7Y2QHMtc/OtkApgCi0skLlKgb560GZXtwO9eP20ZFUsQmH45/Cya/AuQ9UGgb5aqda/gRBqTZBqA8EHjde8+hQiA43lph7D/8PPQ8R17EGrC3gQLQDL7ZcCsXaPrx2MsLLCyZMMGpDk2uOXLGi0Td04ECpGRXPtah799j7zTc0HDYM+yKpfC48oSQoFUIIIXLQkSNH4kZjXbBgQbIDzFy4eyEu4JndaXbqASnAsU/gnDEyKxXeBZepaLWNPZNfJ/z3I3R7/5e0F9SuoFHDWTTpZqFWwDevNcFjaQd2X97Nu+vfZXOfzUZzYruCUPVjqPwh3D0ON3ebl70QftkIWC8uBtsC0HiR0cQ3h6W3P6lJm3hr7VtExkTyTt13aFm2Zar72NvbM3fuXJYvX8706dMf3eDmHmOAoJh7ULIrFO8EuYrzxaSfmPfnJoZ8+DlfT3jYPLggMPDENvDfzKyy5Sn/wBd85xmLfXnIVwfyuUA+F2xi7hnBXryaRX+/S1QvCT0qecLacsZrkxa2BThhcuL9C7641h/OiyU7p22/pFy9CmPGwB9/GOWzsYF69YwBjOIvFSpA7twZP44Qz4jzmzezYcgQgi5dIujCBbovXZrTRcoQCUqFEEKIHBISEkKvXr2Iiorigw8+oEuXLkluZ9ImhmwYQkR0BL1r9qZ1udap5u34wAP8fwRlBa4bjJorjKlhHB0dcXd358yZM1StmsRckhmUyzoXy19bTuWfKrPVdysrTq/g9eqvP9zAwhIK1DeWqp8YU4UEe8KN3XB1JdzaC7tfhmqjoPY3OdYU8+bNmxw7dgw7OzuaNWuWpn3+OfsPh/wOUcy+GN+1+S7Nx+rRowc9eiQxR2fQKdjVyaiNLNsfGv1uPH9Au155+ObXTcyb/ztffjUuQc36Jy9+RsvFmznoe5fLb7pjf2kRXFwIYb7GcvVvwNyKe1VByFsVTJHw4A4zX/TFqgnAZggH7IoafYGdaoKNk9EM1zIPWOU2/58bchUDh4r0/Lkq3hEwtUL653MFjJrRefNgzhy4f98IRt95Bz7/3JhbVAiRQNiNG2wZMYJTbm4AFKldm0YjRuRsoTLhyR9pQAghhHgGaa0ZPHgwFy5cwMXFhf/973/Jbjvj4Ay2+m4ln10+prdNokYtsehwqgSZA6PqY+ICUgA7Oztee+01AJYsWZKpc0hK4TyF+bb1twCM2DyC4Ijg5De2sDRq7qp8CK13gctUY5Cl09+C98wsL1ta/fuv0d+2efPm5MqVK9XttdZM3jsZgNFNRqfabDdVEbdhdxejL27p1xMEpADNmjWjUqVK+Pv7s2HDhgS7ujq78mKpFwm8H8gv3tuh/izocRs6nDBqoSt/BEVaEKUc4MFt44eAO4ch7DwWSuN7A+7k7QAtt0G3a9D8H6g9CaqOhIpDoFx/Y17R4h2gSHPIW4mLQZfwvuONo60jL5R6IX3nevo0tGhh9AudOdMISF9/Hc6ehZ9+koBUiES0yYT7b7/xc5UqnHJzwzp3btp89x3vHj1KiQYNcrp4GSY1pUIIIUQOWLhwIcuWLSNPnjy4ublha5t0/7v/rv3H59s/N/bpujBtzXaPjyJXjD841YLqXzyS3K9fP+bNm8fSpUuZNGkSFhZZ9xt1REQEBa8UpFGJRhy+dpiJeyYyre201HdUFkYNqX152Pea0ScynwsUaZFlZUsrd3d3gDTXkv574V/cA9wpnKcwb9d9O3MHj4mEfa9C+EXIXx8qTYd/tz0c2CcqChUdzbzy5fn33DnujRwJhw4Zafnzo9q0YexLX9DR7WWmHZzGsIbDyGWdC/LVMhb6A7B/505cG5aH0HNG7aeNE6UqvYj/zSBu3FgIhQunucibzm8CoE35NlhZpPLVUmsICDCCzu3bjelcIiPBwQHeeMOYyqXeo1MaCfG8M8XEcOPECTZ/+CFX9u0DoEKHDnSaPRsnZ+ecLVwWkKBUCCGEeMzOnDnDsGHDAJg9ezaVK1dOcrs79+7Q6+9eRJui+bDRh3SpnHTz3gSu/A0+P2PCCovGC8DS5pFNmjRpQpkyZbh8+TJ79uzB1dU1yay8vb25e/cujRs3TvO5ffTRR/z666+8OvxVDhc4zLxj85jYYqIRGKVF6VeN4PT0t7CvJ3Q4Brmzt7bs2rVrPHjwgHLlygHg4+MDkOzrktiUvVMA+Ljxx2k/z6TcvAlug2D/brhqB9dvwcWkz72peeH8eZg69WHCF1/QPn9+/ivkwEHHm+yKGkaHwdMgdiTfWEpBntLGAoSHh+N/MwgbGxsKFUr7YFNaaxafWAxA+/KJmu4+eAC7d8PRo0YQGruEhibc7u234bvvwMkpzccV4lmktSb85k3unDv3cPH25s65c9z19SUmMhKAPEWK0H7WLKq//nqK04A9TSQoFUIIIR6jiIgIevXqxb179+jbty/9+/dPcrvImEh6LO/BxaCL1CtWL65JbIpCfeHwWwD45h1Mxfx1k9zMwsKCvn37MnnyZJYsWZJsUNqxY0f8/PwICAggf/7Upxa5cuUK8+cbo+qu/GklVb+vypmQM6w8s5K+tfqmXv5YtSZD4DFj2pqDA6Hl1myb2zQiIoJGjRoRFhbG1atXcXBwiAtKK1asmOK+Jm3if/v/x+7Lu3Gyc2JIgyFJbxgVBcePw61bEBz86HLtGhw7Bn5+8UsGXIZcuaBuXahaFezswMrKWKytWbV2LR5eXjRr2ZLW7duDry9s2oS6coUGgdAA4L/f0WMXokqUgAIFIH9+KFCAig8ewL//QqFCULEi121syAeUKl4cdecOhIQ8XMLCICIiyeX8+f8YfvQw34db88If38DtkUYAXKQInDpl7JtY/vzG+VStCn37GvOKCvEcu+HpyfbRo7mybx8PgpPv8pC3ZEkqdelCy0mTyJX4h6annASlQgghxGP0+eefc/LkSSpUqMDs2bOT3EZrzfsb3mf35d0Usy/Gml5rsLVKYXqNB4HmKVdmQlQIlOrBtejupBRS9evXj8mTJ/P333/z008/PdJ3Mjw8nAsXLgBGze5LL72U6rl98803REVF4eTkRFBQEME7g6EezD8+P31BqYUlvLAENtaEG9vh7Exj9N5ssGzZMq5duwaAp6cnDRs2jDvvChUqJLvftZBr9F/Tnx0XdwAwscVE8trmfbhBZCRs2gTLl8PGjRAUlHphbAFn4IV24PqGEYxWqQLW1klunr9tWya2aEGBEyfw/OMPihUrZjSPvXqVGM+TTPu5Nw3PhNL8mgXq6lVjZFuzEgBr18Y9Lg8EAly6ZASqaVTRvEAU4GusDAqCixeN/2vXhpYtoVo141yqVIGCBdOcvxDPsoigIHaMHcvRX35Bm0wA2Do6UrByZQpUqkSB2L+VKpG/YkVs8mRizt8nnASlQgghRDbw9vYmOjqa6tWrx63bunUrs2bNwsrKij///BMHB4ck9/3l6C/MPz4fOys7/un1DyXzJtGEU2u4fQB85sDVFcbcomDML9poPhw4nmL5KleuTIMGDThy5Ahr166lZ8+eCdIvXboU97+Pj0+qQenVq1eZP38+Sim2b9/O66+/ju9WX6zrWbPr0i7OB56nQv7kg7xH5CpinMeeLnBiNBRtafQxzUJaa3744Ye4x56enhQpUoSoqChKlixJ7mSmHFl9ZjVvr3ubwPuBFM5TmAWvLKBjxY5Gorc3zJ5tTGkSGPhwp0qVoFw5cHRMuDjkgfCtYL0JigI1RoPLlDSVv3nz5rRp04Z///2Xfv36sXXrVqN/cOnSWJYuzf08H9Ny99f0rtCZpS9Nhzt3jDLducO5gwepVLAgXL8O3t6EHztG5N272FlZkStvXohdHBzA3t6YfsXOLsHiEXQWtyubiC5aiG/6L8a6VBkjoA0MNPqNli0LpUtn9OUR4pmltebUsmVs+egjwm/eRFla0nD4cF4aNQqH4sWfmSa56aK1zvGlXr16+nmzc+fOnC6CeILJ9SFSItfHk2/+/PnayspK29jY6DNnzmittb5165YuWrSoBvTkyZOT3dfd313bTLTRjEf/efLPRzeIuqf12R+0Xl9D66U8XLa31frKSq1jIrXWabtOfvjhBw3oTp06PZK2bt06DWhAf/HFF6nmNXjwYA3oXr16Jdg/74C8mvHo0dtGp5pHkg6/Z5zf6lJah1/LWB7J2LNnT9w5Anro0KF606ZNGtAtWrR4ZPuwB2H6nbXvaMajGY/u8EcHfT30upG4f7/W7dppbfxcYCw1a2r97bdanzuXMKOIO1pfXKr1vt5ar8hnnN+fVlqfnaW1yZSuc/D399eFChXSgJ46dWqCNL9gP235taW2mvB/9u47vqbzD+D4597svWUTxBbE3lttNaqo0WptVYpqVVv609ZqUap2q1aN2qv2qC2EIEYEkYhE9p73nt8fJ7kSMu6NEON5v17ndcc557nP0dub+73P83y/+lJofGiufU+/P6ZNmyYB0uTJhf93SkxLlL4+9HXB71PhtSb+zrw4kbduSX+1aSNNA2kaSH80bSqF+fmVdLcKVFzvB8BHyiceFCVhBEEQBKGYxMfHM2nSJD755BMyMzNJT09nzJgxZGZm0q9fP8LCwmjWrBlffvllnuc/TnrM+5vfJ12Vzsi6I+nn1S/3AZIaTrwLFz+DuGtgXAqqfgXdAqH1fnDvCcq8p3rmpW/fvujr6/Pvv//y+PHjXPvuZU+/5Enin/xcu3aN5cuXo1Qq+fbbbwFo3749lpaWxB+NB2DFpRUkpCUU1Eze6swH+8aQHAzHu0JGHmsUi+jXX38FoH79+oA8Upp9rRUrVsx1rO8jX+osq8PyS8sx0jNiaaOf2GM/FscFK+XpqU2awP798oji0KHyGlE/P5g0CSpUgDh/uD4TDjaDrQ5wuj8ErYf0GLCqCm1PQKXPdK7N6uzszKpVqwD45ptviImJ0exztXSlW6VuZKozmXtmLmpJnW87wVlTe93d3fM9RpIk/vH/hyqLqvDTyZ9IV6Uzos4I+lTvk+85giDIMlNTOTZtGou9vLh3+DAmdnZ0++MPPjp+HEcvr5LuXokTQakgCIIgFCIwMJD0rKyHebl+/TqjRo3C1dWVOXPmoKenx+zZs7G1teXQoUO0atWKQ4cO4eDgwNq1a9HTk2tOSpLE5bDL/PTfTzT7sxnOvzgTGBNILadazG2fRz3SW7/KyX+M7KHpJng3GGrNAPNyRbouBwcHOnTogEqlYkNWAfZs2galkiQxbtw4VCoVI0eOpGrVqgAYGBjQrl07eABl9csSkRyhyVKrEz1jaL4DzD0h5hLsqQIXx8HjE6BW6d5elgcPHrBt2zb09fVZtGgRIAelt2/fBnInOYpOieazGc3ptuMW+3ZYEr/cnmHtv0bRoQNMmQJHj8rTXL/9Vl63uWwZeHs/ebFrP8KeavI05IiTgBIc20DtudDlFnS+Dg461vfMoVOnTlSrVo3MzExNcJltdL3RAPx85me8Fnux6vIq0lXPvpcLC0pvRNyg3Zp29N7cm+D4YGo71+bMJ2dY3GUxyheUhEoQ3gQJjx5xbcMGFteowfHvv0eVnk6twYP59OZNvAcPRlGMJbleZ2JNqSAIgiAU4Pjx47Rs2ZLq1avz999/U716dQAyMjLYsWMHixYt4tixY5rjW7ZsydSpU2nZsiVWVlYMHz6ckydPoq+vz5YtW3Bzd2PnrZ3svLWTfXf2EZoQqjlXX6lP23JtWdJ5Ccb6xrk7EuMHl+V6pTRYCW5alIfRwsCBA9m9ezdr1qzhs88+0zz/dFAqSVKe65x27NjB4cOHsbGx4fvvv8+1r2PHjmzZsgXXq67cq3KPuWfnMqT2EMrbltetk8b20HIvHOsIiYFycH7rVzByALfu4N5LrmeaR/mb1NRU0tLSsLKyyvX877//jlqtpk+fPtSpUwcbGxtiYmI4fvw4kCMovXWL8GE9+e9E9ghtvLyZmMiBZ9268ta5s5xVNidJgqtT4dp0OXuwx0Bw7QrO7cDAkuJkZ2cHQFRUVK7n25Rrw9IuS5l+Yjr+Ef4M3jGYb49+S1f7rtRJq4OFkbyuOb+gNC41jh9O/MD8c/PJVGdia2LLT61/YkjtIegp9Yr1GgThdZeZmsojX19Czp7l4dmzhJw9S9yDB5r99lWq0GXJEspoWQP5bSKCUkEQBEEoQHbAee3aNerWrUv37t0BOHnypCZrq5mZGYMGDWLUqFGaoBXgk08+4Y8//uDcuXMsXLgQfQ99Gq5oyIXQC5pjXCxc6OTZiU4VOtGmXJvcGVyzZabI0z3V6eA5vNgCUoCuXbtiaWmJj48PN2/epHLlykDuoDQpKYnw8HCcnJxynZuamsr48XJW3OnTp2sCo2wdOsh1K313+zKg9wDWXlvL+APj2d5nu+6JPCwrQNfbEHUegrdC8BZIvAuBy+XN0AYarsr1byNJEh07duTKlSvcvHmTUqVKAZCcnMzy5csBGDt2LAqFAi8vL06cOMHVq1cB8EpOht69kbZupYpaTbI+xL7XGZd3eslBaJUqcmmW/KQ+hksT4f4aUGRlE/bol//xzym/oBRgWJ1hfFTrIzZc28DsU7O5HnGdxfGL+Xv+34yqO4pJTSY9E5QmpSfx2/nfmH16NtEp0ShQMLzOcH5s/SN2pnbPvIYgvM1S4+I49NVX+K5ciTojI9c+QwsL3Bo0wLNTJ+qPHo2e4bM/ngkiKBUEQRCEAl25cgWAWrVqcfnyZTZu3KjZV6lSJUaPHs2gQYOeGYkD0NPTY9++fWy5sIUdUTsY+Ydcx9LFwoXR9UbTuUJnajjWKDxAuzReXkNqWQlq/1J8FweYmJjQu3dvVq5cyZo1a/jxxx+RJEkTlJYvX57AwEACAgKeCUrnzZvHvXv3qFatGsOHD3+mbVdXV2rUqIGfnx+djTuzzWAbO2/tpMWqFvze+Xeql6r+zDkFUijBvqG81ZoFsVefBKhx1+Dke9BsK7h2AeDixYuaHxUOHDjAgAFyWZp169YRHR1N/fr1adCgAQBeXl6cPHGCbsAEoGw/OYBU6+uxshbs6uvNzom7Cl/zqVbBnSVw5RvIiAWlITReC6V763atOsquIxudM+NvDoZ6hgyqOYgBNQawL2AfX+/9Gr84P346+RPbbmwjUS8RU1NTbGxsOBh4kKG7hhIUFwRA8zLN+eWdX6jrUveFXoMgvI5u797N7hEjSHj4EBQKSlWvjmvDhrhlbfaVK6PUE7MKCiOCUi38fPpnGrs3ppFbo7czRbMgCMJbLDsoXbNmDfHx8QQGBqKnp4e7uztNmzYt8O/CrchbfPbvZxwIPACAsb4xExpN4KumX2FuaK5dBx5skYMcpSE02QD6xV+nbuDAgaxcuZK1a9cyffp0YmNjiY+Px9zcnIYNG2qC0mbNmmnOCQ0N5ccffwTQlLnJS8eOHfHz8+PCkQtsGL6BT3Z+wn8P/sN7qTefN/yc71p8p/2/RU4KBdjUkDevqXLgfms+/NdLXoPq0kEzGgpw6NAhBgwYoCkDow9Mef992LMHbt9m/OnTTAc05eitrVENG0pD03X4EMq2rt8V/h0g8ixcGAUxWeV4nNtDnYXyKO8LVtBIaU5KhZLOFTtjFmqGUXkjBu8YzI2oGzAEDB8Z0nl9Z/bd2QeAt5M3s9vNpk3ZNuL7jyA8JTkykn/HjuXq+vUAuDZowLt//IFD1rp6QTciKC3EvZh7fHHwCwAq21fm41ofM7DmQJzMnQo5UxAEQXgd3bt3j8TERLy8vIiPj+fu3bsYGhpSqVIlDAwMaNy4caFtSJLEDyd+YPqJ6WSoM7A2tmZM/TGMqT8GBzMH7TuTFATnhsj3vX8u9jqd2Zo1a0bp0qV58OAB//33H2ZZBdrLli2rWVv5dLKjr776iqSkJHr06EGbNm3ybbtjx47MmjWLf//9l19++YWbo2/yzZFvWOyzmDmn57Dh2gZ+7fAr3St3L3rgo1DISYOkTLj9G5zoTkqDzazP+rJYCjDeuRNp/Hiizpzhn2vXKAcYTJyoaSI7VdRN4EilSozy8WHz/d34bJlDZfvKdKtUwJTp1Eg5iVHgCvmxqTvU+VVe7/qSgjltg9KcGrk34vQnp2nxewuucY1Yi1j23dmHoZ4h01pM44smX6CvFF8VBSEndWYml1as4Oi335IcGYm+iQmtf/yRBp99JkZEn4NI91QIY31jJjWehKOZIzcjbzLp0CTc5rrx7oZ32XFzBxmqjMIbEQRBEF5pqamp/P3337Rp04Zy5crh7e3N9evXNesLq1WrhoGBdqVWJEliwoEJfHfsOzLUGXzi/QkBYwL4X6v/6RaQqjPh1AfyFFDXblDx0yJcmXaUSqVmauuaNWs0U3fzC0rPnj3LmjVrMDIy4ueffy6w7UaNGqGvr8+NGzdITk7GxsSGRZ0XcW7IOeo41yE4Ppiem3rS5e8uXH98vegXoVBAnQVQfjiEpmE4pwfrDBK5b2JCOLAkJgbFvHnYnz1LJcAAoHRpaNsWRo0iZd48ygFVgBvt2oG5Ob+d/w2AsQ3GPpthNikYAv+Ak31hV3k5IFUaQNXJ0OUGuPd4aQEpFC0oBbA1seVD5YewExonNObvXn9zc/RNJjebLAJSQXjKvSNHWFq7NntGjiQ5MhKPVq0YefUqjT7/XASkz0l82hTC2cKZWe1m8UPrH/j3zr/8cfkPdt/ercmc6GjmyObem2lWplnhjQmCIAivlGvXrrFixQrWrFmTay2eSqXin3/+wcFBDiJr1KihVXtxqXFMPTaVX8/9ioHSgM29N/Nu5XeL1rmr0yDyNJi4QsM/XniAM3DgQH766Sc2b95M6dKlgbyDUrVarcnSO2HCBMqVK7gcjaGhIRUrVsTf359bt27hnVUqpZ5rPc4NOccSnyV8feRr9gbsZW/AXmo61mRcw3F8VOuj/BtVqeDxY3j06Ml2/z74+MD58xADeqiQxzZTSNXT44RKhapxY1aeOcNdPT32BQTg6OGhadIEUM+fD0FBVKhQgcthlzkVfApLI0sG1BgAmckQfgzCDsCjAxB/I3efnNpB3YXyut8SUNSgFODenXtwCd4b8B59q/ct7q4JwmtLkiRi798nzNcXvzVruLl9OwDWHh60mzOHKr16iantxUQEpVoy0DOga6WudK3UlfDEcNb4rWGl70puRt5kwoEJnB96vqS7KAiCIBRCkiSuXbvGvn372Lp1K+fOndPsq1WrFkOHDsXa2pr+/fuzY8cO6tevD0DNmjXzbTNdlc6+gH2svbqWXbd2kaZKQ1+p/3wBadgRuP6TnNin8TowevHZTitXrkzdunXx8fFh6dKlgByUenp6AnDnzh0kSWLNmjVcuHABZ2dnJk+erFXbVapUwd/fH39/f01QCqCn1GN0/dH0qtqLqUensvH6Rm6GXGHGysHUaZuBl5E7xMbKAejVq+DnBw8eyI/V6nxfL9POjnDLKFzrg9rbha02E+k/fDyKM2eQJImB/frlCkizNW/enDVr1lC/fn0WnZdrl35U8yPMo8/L2Y9Tw54crG8BTq3B6R05IH0J60YLkp3oqChBaV61WQXhbRR1+zYhZ8/yyNeXMF9fwi5fJi0uTrPfwMyMZl9/TaPx49E3Ni6gJUFXIigtAkdzRyY2nsjoeqNx/sWZC6EXuBp+FS9Hr5LumiAIglCAb7/9VpOcB8DS0pIPPviAoUOHUrt2bUCeymtmZoavr69m9PTpoFQtqTn14BTrrq5j0/VNxKTGAKBAQUuPlkxpNoW25doWrZOpEXBmACBBtW/BsUXR2imCgQMH4uPjQ2ioXDu1bNmy2NjYYGdnR1RUFIcOHeKrr+RaqbNmzcLcXLsERVWrVmXLli34+/s/eVKtlgPOqCicoqJYqu7E77fSSN+4HpOUDPhtWMGN2tuDszM4OxNrasp/d+/SaNQo7Dt14seVK5k143tutLSljGUoPa02YW0KsckSIJeBycuCBQsYM2YMntU9WTd3HQbAtzYqONIWkMDaC1zfBed35AzASu2mdL8M2SOl+WXfLUj2KHjFihWLtU+C8LqIun2bw19/zY0tW57ZZ+boiLO3N85161Jv5EgsXFxKoIdvPhGUakmtVqNU5l5PYmJgwgdeH7DYZzF/+P7BvA7zSqh3giAIQmHi4uKYO3cuAB999BEdO3akc+fOmqQ+2YyNjWnfvj1bt24lKEguiZEzKE3LTKPjuo4cvX9U81wNxxoM8BpAP69+uFm6Fb2TkgRnB0PKI3BoBtW/LXpbRdC3b1/Gjx+PSqUC0EzNrVChAlFRUbzzzjsANGzYkP79+2vdbtXKlWkFtFu9GjZvhuhoiIl5ZrRTD3ka7T0bBREmEpU862Pl5AE2NnJd0Jo1oXx5cHSEHLX+erRqxTE/P/ocPcqG4cPZtHkzKelwz30+ZdK+wDjuLDd+0Wfoskwk27rUqVlV/rd+atqdtbU19erWZcGpH2hlmMISD1Ps7y4CFFD9O3lTvprrxoo6fTc1NZUHDx6gp6dH2bJlX0TXBOGVlfT4Mcf/9z8uLl2KOjMTfRMTKnTqhJO3N87e3jh5e2Ph7FzS3XwriKC0EAEBAQwcOBBDQ0NOnDjxzP5PvD9hsc9i1vitYWbbmRjpG5VALwVBEITCbNy4kZSUFFq1asWff/5Z4LHdunVj69atgFxrM/sLvyRJDN89nKP3j2Jvas8n3p/Q36v/88+UUWdA6D4IWAKP9oGhjTxt9yUnmilVqhQdOnRgz549AHhkTXHt1q0b586dw8PDgwYNGjBjxoxnfqjNk1oNmzfT4+uv6QsQEpJ7v5UV2NmBra18W7cuDBjAspC/mHlqJp0q2LPng415taxx7tw5TS3SzZs388EHH+Dv74+trS1N3ukLKQ3hzCCcOMuuiQA+sMkUFPpgYJm1WQFqSItESovkM3UGn7kCJINFBai3GJzyzzD8KshZp1SSJK3XuQUGBiJJEh4eHlon8xKE111mWhpn583jvx9/JD0xEYVSifeQIbT6/nsxElpCRFBaCEdHRy5cuICenh4pKSmYmJjk2l/buTY1HGvgF+7Hzls76V3txRbHFgRBEIrmjz/+AODjjz8u9NjOnTujVCpRq9W5RknnnpnLX1f+wtTAlAMDDuDt7F1AK1qIvyVncL23+sl6RaUhNPwLzNyfr+0iGjhwIHv27MHBwUEzPXfy5MlMnDhR+6BFkuDAAZg8GXx9MQKCgL+Ar86fx7BMGTkQzae26YTSE1h4fiF7A/Zy+O5h2pTLPyCcNWsWABYWFiQkJDBw4EAAevbsKffXoAK0+w/V9Tmo76zEQEqA9DhQp0F6tLzloAAS1BAtGVK6znQUlcaBniGvOkNDQ82/QVxcHNbW1lqdJ6buCm+bwAMH2DdmDFFZa6krdulCm5kzKVWtWgn37O0mSsIUwtLSEi8vLzIyMrhw4cIz+xUKBZ94fwLASt+VL7t7giAIghb8/f05d+4clpaW9OzZs9Dj7e3tadKkCfBk6u65kHNMOjQJgL+6/1X0gFSS4N46ONgUdleGG7PlgNSyMnjPgXcfgFvXorVdDLp3706fPn348ssvcz2vdUB69iy0bg0dOoCvL7i6wvLldPD0ZCpw28QESpXKNyAFsDe1Z1IT+d+6zz99uBtzN8/jbt68yfbt2zEyMmLnzp0AxMfHA/D+++8/OVCpj57XZAx63IGe4dA3FfqkQs8I6BYIHX2hoy+qbkF4RXtiGQgna/6Bouqk1yIgzVaUKbzZQalIciS86eKCg9ncuzdr27cn6vZt7CpVYuDBg/TbtUsEpK8AEZRqIfuLyalTp/Lc39+rPwZKAw7ePUhYYliexwiCIAglJ3u6br9+/TA1NdXqnMmTJ1OlShX69+9PamYqg3cMRi2pmdBoAu9Vfa/onbkyWU5kFHEK9M2g3MfQ7hR09ocqE8HEsehtFwMjIyM2bNjAhAkTtD8pMhL+/Rd69IBGjeDYMXkd6OzZEBAAQ4ZQKetLX65kRwWY0mwKnSt0Jiolinc3vEt8Wvwzx8yZMwdJkvjoo49o2bIl3bt3B+QfFVq1alXwC+gZgbE9mJcDm1pgU4tN905xLeoOHtYe9KneR/vrf0XknMKrLRGUCm8itUpF+NWrXFqxgp1DhrDYy4v5Zcrg/88/GJia0mbmTEb6+VGubRET0gnFTkzfLYwk0b8JXDkENy8dAvWkZ5Ic2Jna0bFCR3be2snGaxsZ2zDvrH6CIAjCy5eens7q1asB7abuZuvYsSMdO3YE4OvDX3Mj8gYV7SoyvdX0onfmxi/gP0tez1hnPpQdBAYWRW+vJMTHw8WLck3QCxfk7f79J/tNTGDcOJg0CXJMIa1atSo7duzQOijVU+qxruc6Gq5syLXH16i5pCaLOy+mg2cHAEJCQlizZg1KpZKJEycCMHXqVA4fPsyYMWPQL2Ak9mn+Ef5MOzaNzf6bAZjQaAL6L3k9b3EoykhpdjkYMX1XeN1JajWXVq7k2t9/E3rhAumJibn2K/X1qdKzJ+1+/hkr95JZHiHk7/X7xH3Z0qJozO+cnApwBGmTCQrT0mDmAeYe8i+sHv0Z4DWAnbd2svbqWhGUCoIgvEK2bNnC48eP8fLyol69ejqf7xPqw+xTs1Gg4M93/8TEwKTwk/ISsBh85eCJhn9C2QFFa6ekREbC1KmwdClkZefVMDWF2rWhSRMYO1Yu1fKUqlWrAtqPlAJYGVuxu99uem3qxZXwK3Rc15GqDlWpXqo6wReDyaiQQYfaHShTtgwg15qNi4vTOslPQFQA3x//nvVX1yMhYaRnxKf1P2VE3RFa9/FVIqbvCm+r+IcP2fnxxwQeOKB5zqpMGdwaNsS1QQPcGjbE2dtb1BZ9hYmgtDDqNKTSffD9bysuVhk4WWdAYqC8hWcdc/0n3q02FStDc3xCfbgVeYtK9pVKtNuCIAiC7Pfffwdg9OjRWgcr2ZLSk/hgyweoJBXjG46nsXtj3TsgSXD1e7j2vfy49rzXKyDNyIDFi+WANDYWlEo5S269evJWt65crqWQkcmiBKUA5W3L4zPMh/ln5zPt2DT8I/zxj/AHY+B9+Jd/MfvJDC9HL+a1n0fzMs0LbfNezD2mn5jO6iurUUkqDJQGDK09lK+bfY2rpatO/XuV6BqUJiYmEhoaiqGhIaVLl36RXROEF+b6pk3sHjGC1JgYTO3taffzz3i2b4+5k1NJd03QgVhTWhhTVxRNNzDrcg+cR8MfSQuh8w1ouU9OEe/eEzKTMLwyiTNlzbFSwrqr60q614IgCALg5+fHyZMnsbCw0KmuZrbP939OQHQAXqW8+LHNj7p3IOURnOorB6QKJdRfBpXH6d5OSTl6VK4NOnasHJC2awd+fvKU3d9/h8GDwcur0IAUoFIl+cfa27dvk5GRoVM39JX6TGw8kcdfPObC0Av0VPSEU2AfbU8ZqzJkqDO49OgS76x5h+03t+fbTnBcMCN2j6DibxX587K8zvgT708IGBPAos6LXuuAFHQPSu/cuQNA+fLl0dN7NeuvCkJ+0hIS2DZwIP/06UNqTAyeHTsy8upVan34oQhIX0MiKNVSdrKjE6d8wKoyuHSACiOg2RZovhOMnaiiDuO4Gxy4tgpJkkq4x4IgCMLixYsB+PDDDzXlTbS17cY2ll9ajpGeEet6rsNYX4dpX5Ik1xzdXRkebAI9E2i2FTyH6tSHEiNJMH8+tG0LN25A+fKwYwfs3w9FzFJpZmZGuXLlyMjIYPv27fked+HCBQ4ePJjnPlMDU6paV+XEwhNwEDa+u5H74+6TMDmBkXVHkqZKo9emXnx39DuikuXATC2pOXrvKIO2DcJzoSdLLy5FLakZWGMgNz+9yYpuKyhjXaZI1/SqyU50pG1QKqbuCq+ryFu3WNGgAX5r16JvYkLnxYv5YM8eEYy+xsT0XS0VmIHXrSvYnEU60p6a3GKtIpi7EX6UL1Xz2WMFQRCElyI6Opo1a9YAMHLkSJ3ODU0IZeguOYCc3W42Xo5e2p+cmQLnh8N9+bVx6QJ1F4B5WZ368NKpVHDrFly6BLt2waZN8vNffw3ffQdGRs/9EuPHj+fTTz9l5MiRNGvWDKenvkBmZmbSoUMHEhISCAsL0wRZOf35559ERkZSt25dTYZdc0NzFnVaRCmzUnx//Humn5jOL2d+oYxVGe7G3CVNlaY5v0+1PkxrOY3K9pWf+3peNdkjpdHR0cTGxvL999/z6aefUr58+TyPP3bsGCCCUuHVl56UxOOrVwm7coWwy5e5tn49afHxOFStyvtbt2JfSSybe92JoFRLNWvWxMzMjDt37hAeHo6j41Mp+83KoGh3kvtby+FpmMC1K1Oh3fYS6asgCIIAY8eOJSkpiXbt2mnWM2pDLan5aPtHRKVE0b58e8bUH6PFSZkQfRHCDkHQ3xB3HfRMocFK8Oj7HFfxgqSnw/XrcgB66ZJcT/TKFUhOfnKMsTH89RfkrPf5nEaOHMmOHTs4ePAgn3zyCbt37861zvfixYuaciZBQUHPBKWZmZn8/PPPAHz11Ve5zlUoFExrOY1WHq2YdWoW++7s40bkDQDKWpdlQI0BfFjzQ8rb5h2gvQlyTt/99ddfmT9/PuHh4axfv/6ZYy9fvszixYvR09Ojb99X8D0qvLUSw8J45OtL2OXLhF++TNiVK0Tdvi3P4MihSq9evPvnnxhZvGYZzIU8iaBUS/r6+jRo0IAjR45w+vRpevTo8exBxvYcdejL4IjlVIrYDYl35ey8giAIwku1Y8cO1q5di4mJiSbRkTaS0pOYdmwaB+8exN7Unj/f/TPv5EiSBAkBEHZQDkTDj0JG3JP95uWg+Xaw1mGE9WUID4dPPoEDB+QERk8rU0bOolu7NvTqJScwKkZKpZI///wTLy8v9u7dy/Llyxk2bJhm/9GjRzX3g4OD8fb2znX+pk2buH//PhUrVtTUJH1aC48WtPBoQWB0IPFp8XjaemJh9HZ8ac0ZlB45cgSQR0MlScr1Po6Li2PmzJlIksSUKVOoW7duifRXEHLKSEnhwIQJ+GQtu8hJqa+PfZUqONWqhVOtWrjUrUvpZs10Tl4nvLpEUKqDJk2acOTIEU6dOpV3UAq4lnuP1YHLGWSpgksToPm2l9xLQRCEt1tERATDhw8HYMaMGXh6ehZ6TlxqHIsuLGLe2XlEJkcCsLLbSpwtni1tQnoM/NdLDkRzMvcEp7by5tIB9M2e+1qKla8vvPsuBAfLjytWfBKA1q4NtWpBVlDzIrm6uvL777/Tr18/Pv/8c1q3bq35b5QzKA0JCcl1niRJzJw5E4Avvvii0MQ8b/KIaH6yg9KQkBBiYmIAePToEXfu3Mk1RXfMmDGEh4dTr149vvnmmxLpqyDkFHHjBlv69iXczw+lgQHujRvjWLOmJgh1qFoV/WJYQiC8ukRQqoMC15VmqetSl+qR0MMcLEK2Q9hhcGrzknooCILwdrt//z4dOnQgPDycZs2aMWZMwVNvo5Kj+PXcryw4t4C4NHmks4FrA/7X6n+8U/6dZ09IDoWj7SHuGhhYg3P7J4GouUfxX1BxOXgQuneXp+c2agRbtuRZS/Rl6du3Lzt37uTvv/9m0KBBnDhxArVazcmTJzXHBGcHz1kuXLjA1atXcXZ2ZuDAgS+7y6+F7OnO4eHhuZ4/fvy4JijdvHkza9aswcjIiDVr1mBgYPDS+ykI2SRJ4vKqVez79FMykpOxrVCB9zZswLl27ZLumvCSiey7OmjYsCEKhYKLFy+SkpKS5zG2JraYW1Xgp+isJy5/CZL65XVSEAThLeXr60ujRo24desWNWrUYMOGDSiVef+ZS85IZtLBSZSZX4bpJ6YTlxZHS4+WHBp4iDOfnMk7II0PgINN5IDUsgp08oOmG8BzyKsdkO7ZA127ygHpwIFymZcSDEizLVq0CFdXV86cOcOsWbM4f/48yTnWtD49Uurn5wdA27ZtMRIjJnmysrLK9Z7PHjk9fvw4AKGhoYwYMQKAESNGaMr0CEJJSI2LY9uAAez8+GMykpOpMWAAwy5eFAHpW0oEpTqwsrLCy8uLjIwMfHx88j2uvmt9fo2FJD0rOfFF0KaX10lBEIS30MGDB2nRogVhYWG0atWKEydO4OLiku/xo/aMYs7pOSRlJNHRsyMnB5/k6IdHaVOuTd5rlKIvwaGmkHQf7OpDu//AzP3FXVBx2bULevSAtDQYPRpWrSqWLLrFwcbGhj//lGuFTps2jXnz5gFQubKcFffpkVJ/f38AqhTzOtc3iVKpzJUc6osvvgCerCsdPHgw0dHRdOjQgXfffbekuikIBJ8+zdJatbi6fj0Gpqa8u2oV3VevFkmL3mIiKNVR9hTenFOMnlbftT4pEmzWqy4/4TcFVOkvo3uCIAhvnTVr1tCpUycSEhLo168f+/btw8rKKt/jj947yl9X/sJIz4hTH59ib/+9NCndJP8XCD8Kh1pC6mNwegdaHwajF7/28nlZX74MvXvLCY3Gj4eFCyGfkeOS0q5dO8aMGUNmZiZbt24FYNCgQcCzI6XZQakumZTfRtmjo3p6eowYMQJbW1tCQkKYOHEiBw4cwM7Ojj/++EMkiBFKhDozk+P/+x9/Nm9O7P37ONeuzbBLl6j14YfiPfmWE2tKC5OUBEeOQHQ0REczMjSUakC1336D48chNhYMDMDMTJ4OVa4c7TzMUahhfkQsH7lXgfgbsKsCOLaCUi3AseUzaa0FQRDedLt27aJ8+fLFFlRIksTs2bP56quvAJg4cSKzZs3Kd8ouQFpmGiP2yNMXv2n+DY3dGxf8IsHb4FRfUKdDmb7Q8C/QMyyW/r9QPj5UnzJFHiEdORJ+/hle0S98M2fO5MCBA9y6dQuFQkH//v35+uuvCQkJyZU19sYNubyLCEoLlh2U1q9fHysrK5o3b8727duZO3cuAMuWLcPZ2Zlbt26VZDeFt4gkSUTdvk3wqVP4rlxJ8OnTADSeNInW06ejZ/gafKYKL5wISgsTEwPdumkeemVthIbKWx6qAFcdYE6T6yTP34Opz0eQ/ADu/SVvQEO9UnD6HXDvAW49XtkvC4IgCMXh8OHDdOvWjWrVqnHt2rViaXP8+PHMnz8fhULBvHnzGDt2bKHnzDg5g9tRt6lkV4kvGn+R/4GSBAGL4eIYOS9AhdFQdwEoXq2RxjxdvAjt2qGfnAz9+sFvv73Sf2NMTU1Zu3YtzZo1o2HDhpQuXRpra2tiY2OJjIzEwcGBxMREHjx4gKGhIWXLli3pLr/SsqfvtmrVCoAWLVqwfft2AD788EN69uxZUl0T3hKZaWmE+vgQfOqUvJ0+TXJkpGa/hYsL3VevplwbkQhUeEIEpYWxs4MuXcDWFmxskGxs+GbePO7FxTFjyRLK1KghFyFPTJSD1IAA+PtvqoWEsGo7JF0fDbOXQQNrSLsEkSfg8QmM0x/D/bXy1uAPKD+4pK9UEAThhZk9ezYA169fJyoqSjOaU1SXL19m/vz5GBoasmbNGt5///1CzzkRdILpJ6YDsKTLEoz081lbqUqXg9E7y+THXtOg+nevdGCncfo0dO4MsbFENmmC/apVr9yU3bzUrVuXu3fvYpG1nszNzY3Y2FhCQkJwcHDg5s2bAFSqVAl9ffHVpSBdunThwoUL9O/fH4D27dujUCgoU6YMCxYsKOHeCW+6BydPsum990h6KgO0uZMT7k2aULppU2oMHIjpSyg/JbxeCv1kVygUxsAJwCjr+H8kSZqqUCjWAXWBDOA8MFySpAyFQtES2AHcy2piqyRJ/3sBfX85TEzkRBFZFEDA9ets3ryZVkolQxs1evacH37gr0ntafbXMcoF3JeTTADo6YG9PTi4Eq9XCktHJZjcgOjRMKgpWFZ4ti1BEITX3OXLlzlw4IDm8fnz5+nYseNztbl582YABg8erFVAGpEUQb8t/VBLaiY3nUxLj5bPHpQWBXdXwZ2lkBAAesZQfwWU7f9cfX2hJAn8/GDbNti6Fa5elZ/v2ZPrI0fS4jWaFuecIyOwu7s7165dIzg4GG9vb5HkSAfDhw/X1OkF+d/s7NmzlClTBktLyxLsmfCm8/3jD3aPGIE6IwO7ihXxaNVKDkSbNMG6bFmxZlQokDY/N6YBrSVJSlQoFAbASYVCsQ9YBwzIOmY9MARYnPX4P0mSuhR7b18RTZo0YfPmzZw6dYqhQ4c+e4ChIeoPB1HF4hhLgmsy+Hy6PIoaFwfh4RAeTq4/C7tSYFMD6PcD1KkrFzEXvwQLgvCGmDNnDgAmJiakpKRw9uzZ5wpKJUnSBKW9e/cu9Ph7MfcYuG0goQmhNC3dlP+1yvE7qSRB5GkIWAIPNoM6TX7erCw03Qh29YrczxdGkuDMGTkI3bYN7t59ss/SEj76CH7+GamAmtqvOjc3N+BJsiOR5Oj51K9fv6S7ILzB1CoVBydN4mzWuuUG48bxzpw5KMV3WUEHhb5bJEmSgMSshwZZmyRJ0t7sYxQKxXnA7YX08BWUnYH3VAF/8Ou71iddH6bVimHwqiD5ybQ0iIyEiAiuHDpETRcX2LMDNm6C/2Lgv9HycaVLy6n7hwyRpw0LgiC8pgICAti4cSN6enr88MMPTJgwgXPnzunczv79+/niiy/47bffsLKyIiAgAAcHB1q0aJHvOamZqcw5NYefTv5EamYqpcxK8Xevv9FX6oMqDQJXyutG47LXuCrApRN4jgCXjqB8Bb9QJSbK60R3737yXKlS0L27PCundWt4jUZH8+PuLpfbyS4LI5IcCcKrKTUuji19+3Ln339R6uvTefFiag8ZUtLdEl5DWv3FVSgUesBFwBNYJEnSuRz7DICBQM4ME40UCsUVIBSYKEnS9TzaHAYMA3B0dOTYsWNFvYaXLjMzE2NjY+7cucPWrVtz1QTLppJUmOiZ8CDuAVsPbMXWMPcxiZUrE2NuDkNHYtuxBtX+/R69+xmoAozQe/AAvvySzP/9j6CBAwnp0QPpDfiSIWgvMTHxtfp/Qni5Xpf3h5+fH1OnTkWlUtGuXTtNoHHq1CmOHDlSYJbcp/34449cvXqVHj160LixnDG3YcOGeZbnUkkqLkRf4LfA33iY8hCAtqXaMqLcCO5cusNdyZ/q0d9gm3YBgHSlDY9MO/HItAupOMEd4E7+Zb9KikFMDF6TJ2N56xYZFhaEtW9PZLNmxFWrJi8PAXlNaZbX5X2Sl8RE+bfwixcvcuzYMS5evKh5/nW9pleN+LcUCqLN+yPl4UOuff01yQ8eoG9pSbXvvyfe01O8r95AL+XzQpIkrTfAGjgKVM/x3HJgfo7HloB51v1OQEBh7dapU0d63bRq1UoCpK1bt+Z7TMtVLSWmIe28ufOZfUePHs39ROR5SdpsI0lrkKS570hS69aSJE/SkiQ3N0maMkWSbt4s5qsQXlXPvD8EIYfX4f2xZs0aSV9fXwKkdu3aSdHR0ZIkSZKrq6sESDdu3NCpvezzcm4HDx6UguOCpb2390qzTs6SBm4dKNVaUksymm4kMQ2JaUhVF1WVjt47+qShzBRJOtJektYhSf84SNL9DZKUmVaMV/6CBARIUvny8t+EsmUl6datQk95Hd4n+Tl48KAESC1btpRSUlIkpVIp6enpSampqSXdtTfG6/z+EF68wt4fdw8flmba2EjTQFpUrZoUfffuy+mYUCKK6/MC8JHyiQd1SsknSVJsVlDaAUChUEwFHIDxOY6JlyQpMev+XsBAoVDY6xosv+q0msLrIq/huBB6ofAG7epBmyOgbwCOB2Hzz7BvH1SrBiEh8OOPULkyNGwIixfLdVMFQRBeQevXr2fQoEFkZmby+eefs3fvXmxsbAB5dBPg7NmzWrcXEhLCw4cPsbCw0MxMsWhkwbDrw3Cf506n9Z348tCXrPFbw+Wwy6Sp0vCw9mBW21n4Dvd9ktRIrYKT78Oj/WDkAG2OQpk+r37d0XPnoFEjCAyEOnXk9aQVK5Z0r16o7DWlwcHB3L59G7VaTfny5TEyyidjsiAIL82FxYtZ8847pMbEULFLFz45fRobUapJeE6FBqUKhcJBoVBYZ903AdoBNxUKxRCgPdBPkiR1juOdFFnptRQKRf2s14h6AX0vUdquKwU4//C8do3a1IKKYwAJfCdA+/ZyVsWjR2HwYDA3l7+cjBoFzs7Qq5f8WBAE4RWxadMmBg4ciCRJ/PDDD8ydOzdXCY+iBKXZa1DrNa7H4LmDUQxVkNA+gXux97AxtqFFmRZ8Wu9TlnRewqmPTxH3VRz3xt5jUpNJGOYMOH0nwsNdYGgrB6TW1Yrnol+krVuhVSs5H0GHDnDsGDg6lnSvXriciY6uZmUUFutJBaFkpCcmEnzmDBd+/51N773H3lGjkFQqGk+aRJ/t2zESWZ2FYqDNmlJn4K+sdaVKYJMkSbsVCkUmEAScyYpBs0u/vAeMzNqfAvTNGq59ozRq1AiFQsHFixdJSUnBxMTkmWNyBqWSJGmXCrv6N3JJgvCj8pcnt27QsqW8/fabnGlx9Wo4dEj+srJzJyxcCCNGFOv1CcKb4sGDBwwcOJCBAwcyRCRfeKG2bNnCBx98gFqtZurUqUyZMuWZY7KD0oKSHT1+/Jj+/ftjbW3Nxo0b2XZhG3SBU3VOceT+EXAFRzNHfmj9A4NrDUZPqVd4524vglvzQWkAzbe9+gGpJMHMmfD11/Ljjz+GJUvAwKBk+/WSmJubY21tTWxsLJ9//jkg1zIVBOHFSgwPJ8zXlwdbt/LPkiWE+foSFRAgfyZl0TM0pOvy5dQcNKgEeyq8abTJvusHeOfxfJ7nSpL0G/Db83ft1WZlZUX16tW5evUqPj4+NGvW7Jlj3CzdcDJ3IiwxjMCYQDxtPQtv2NBGLtJ+aRxc/hJcu4Aia0Db1BT695e3hw9h9mxYsABGjpRr0y1c+FoUSReEl0WSJIYMGcKJEye4desWgwcPRk9PiwBG0NmOHTvo27cvKpWKr7/+mqlTp+Z5XO3atdHX18fPz4+oqCjsniqgfv/+fdp2akugMhDMwHm2M49NHkNdSCON+q71+ajmRwyoMQALIwvtOnf7d/D5VL5ffwWUav48l/ripaXBsGHyD5AKBcyaBRMnyvffIm5ubsTGxhIREUGLFi0YN25cSXdJEN5YsUFBbP3gA4JzJEvLptTXx6FaNZxq1cLJ2xvPDh2wr1SpBHopvMlEBPMcCpvCq1AoNKOlZ0O0n6pGhZFgWhrib0LIjryPcXWFX3+FNWvAyAh+/x2++Uan/gvCm27lypUcPHgQgPDwcI4ePVrCPXoz7dmzh969e5OZmckXX3zBDz/8kO/MEFNTU9q2bYtareavv/7SPB+XGsfMvTOpMq0KgT0DoTfgDY/THstFyU7Bib4nODfkHCPrjdQ+IPWfBT5Z5ba850C5V/iXfUmCa9egbVs5IDU1lWfEfPHFWxeQApQrVw6AZs2asXv3bszMzEq4R4LwZrp76BDL6tQh+PRpDM3NKdO8Oa49e9Ltjz8YdukSkxMTGXH5Mt1XraLh2LEiIBVeCBGUPoc6deoAT4p656Wpe1MAphyZQmhCqHYN6xlClQnyff9ZuaZMPGPAAHkKr54ezJgBS5dq9xqC8IYLCQlhwgT5/6PswvHr1q0ryS699iIiIvDx8cn13P79++nZsycZGRmMGzeOWbNmFbpUYeTIkQAsWrmIP33/pOvfXXGY7cDkC5NJLZsKBuBt543ikAKWAL9A2TtlaVbp2Rkp+ZIkuDIFLn8FKKDeEqgyUccrfgkyMuDwYRg3DsqXBy8vOHlS/uHx5Em5/uhb6ocffuDHH39kz549mJubl3R3BOGNo0pP59Dkyax55x1SoqLw7NCBcUFBfHT8OJ5jxuA9eDDO3t7oiwRjwksggtLn4OzsDMhf1PIzuv5oGro15EHcAzqu60hcapx2jZf/BIzsIOocPD5R8LHvvAPLlsn3R40CHRKICMKbSJIkhg0bRnx8PO+++y6rV68G5DWPKSkpJdy711efPn2oV68ef/75JwDHjx+ne/fupKen8+mnnzJ37lyt1s671HbB9ANT7va4y8c7P2b37d1kqDPgPngFe3Fn1B0ufXqJ7g7dIQyQoEGDBtp3ND0OLo6F6z+BQg8arYEKw4t0zS+EJMGWLdCvHzg4yCOjv/4K9+7Jj4cMgfPnwfuZlTNvFS8vL77++mssLLQcFRcEQWtRt2+zomFDTs2ciUKhoMXUqfTbvRuTrAzngvCyiaD0OZQqVQqQpwXmx9TAlF39dlHRriJ+4X702NiDtMy0whvXN8vKxIs8WlqYjz+GCRNArYYxY+RbQXhLrV69mn379mFjY8PixYupVKkSderUISEhgT179pR0915LkZGRmsLZI0aMYMWKFXTr1o3U1FSGDRvGggULtApIDwYepNlfzUiumAwGYPLYBOVeJfwCHys/5tKSS5R3KA/AqFGjNOflG5RKEiTeg3tr4fxI2FsD/rGB2wtBaQhN/4Gy/Z/7+otNZiYMHQrvvQcbNkBcnFz6a/JkOH0aHj2C5cvBxaWkeyoIwhvqxtatLKtblzBfX6zLluWjEydoOW0aSpFzQShB2mTfFfKRHZQ+fvy4wOPsTe3ZP2A/jVY24uj9o3y4/UOG2Q0r/AUqfgr+s+HRPri3BsoOLPj4adPg77/BxwdWrZIDVUF4y4SGhmoSosyfP18zo6F///5cvHiR9evX895775VgD19P+/fvR5IkDAwMSE9PZ+jQoQC8//77/P7771oFpIfvHqbbhm6kZqbSy7MX28ZtIyVSHrmeNGkSM7N+sc/WunVrKleuzM2bN2ne/KnkRBnx4PuFnKU85VHufUoDsK0HNaaDU+vnu/DilJAAgwbB9u1gYgLffw89e8rTdgVBEIpZSnQ0kbduEXXrFpG3bhF9+zaRt24Rcf06AFXfe49uK1eKki7CK0EEpc8hZ1BaWMkXD2sP9vXfR/M/m7Px+kZUripatyrky5KRHXjPlrNGnv0YTJzBqW3+x5ubyxl5BwyQf3Xv1QusrIpyaYLwWpIkiREjRhAbG0vnzp0ZOPDJDzl9+vRh4sSJ7Nq1i+DgYNzd3Uuwp6+fvXv3AjB9+nR2797NyZMnadu2LatXr9Yqo/HlsMt0/bsrqZmpDKs9jMVdFvPR/o9Ys2YNc+bMYeLEZ9d7KpVK9u7dy61bt6hdu/aTHQl34MS7EJe1nt/IDuwbg0MTsG8CdnVBz7hYrrtYBAfLyeiWLIHYWLC2ht27IStZniAIQnEI9/Pj3MKFRPr7E3X7NsmRkXkep2doSJuZM2k4bpx25QoF4SUQQelzMDExwcLCgoSEBOLi4rC2ti7w+FpOtdjWZxsd13Xkn4f/8MvpX5jQeELBL1JxtDw17eYvcKIntDsJNjXyP/6DD+QvP6dPw6efPikpIAhvgfXr17Nr1y6srKxYunRprj+2Li4u9O7dm40bN/LLL78wf/78kuvoa0alUvHvv/8C0L17d0aNGsX+/fvp1KkTRlokwIhJiaHnxp6kZKYwsMZAFndZjFKhZMWKFcyYMQNXV9d8zy1btixly5Z98sSjg3CqD6THgGUVaLwWbLxfvc+55GR5RHTVKrmudHbCusaN5YR01auXZO8EQXiDSGo1Z3/9lcNffYUqPV3zvIGZGXYVK2JfqRJ2lSphV7EidpUqYV+pEoYieZjwihFB6XMqVaoUCQkJhIeHFxqUArQp14a/uv/FB1s/YOLBiThbOPOB1wcFn+Q9G5KD4cEmONYJ2p8FU7e8j1Uo5C88DRrA2rVQuzZkFR4XhDdZWFgYn332GQBz587NM9CZPHkyGzduZPny5UyZMgUHB4eX3c3X0vnz54mOjqZ8+fJUrFgRhUKh9RRotaRm0PZB3Iu9R23n2izrugxlVu1lQ0PDAgPSXCQJbs0H34kgqcG1qxyQGrwC086Sk+HOHQgIkLdr12DXLoiPl/cbGkKPHjB2LDRqVLJ9FQThjRJy7hwHJkwgOKs8ofeQIXj164ddpUpYuLiIkVDhtSESHT0nbdeV5tTPqx8jy8klET7a/hEP4h4UfIJCCY3+AodmkPIQjnaUs0vmp3p1+dd5kAuu796tdd8E4XU1duxYoqOjad++PYMHD87zmJo1a9KpUyeSk5NZsGDBS+7h6yt76m6nTp10/oIz478Z7L69GxtjG/7p/Q/G+kWYVitJcPEzuDReDkirTYHm20suIM3IgLlzoXVrcHcHMzOoWVNOXjR5MqxbJwekDRrA4sUQFiYnNRIBqSAIxSTUx4dNvXqxsmFDgk+dwtTBgT7bt9Nt+XLKtm6NpaurCEiF14oYKX1ORQlKAd53f58gvSD2Buzl0N1DfOxdSFIiPWP5S9jBJhB3Df7rAS3/lWua5qV3b/j6a/jpJ+jaVZ7KO2OGvO5UEN4wmZmZbNmyBYVCwbJlywr8Q/z111+zd+9eFi5cyJdffinqH2ohO2Nxp06ddDrvYOBBvj36LQoUrOu5jrI2ZQs/6WmSGi6MhjtL5Gy6jVZDmT66t1NczpyBYcPk0dBsBgZQrhxUqPBka9kSqlQpsW4KgvDmUGVkEHnzJuFXrhB25Qohp08TfPo0APrGxjQcP54mkyZhLPKICK8xEZQ+J0dHR0D3oBSgXbl27A3Yy8kHJwsPSgGMbKHlPjjQCMKPwrlP5C9o+X0Bnz5dnjb2ww/w22+wZw/88Yf8ZUkQ3iBhYWGoVCqcnJwoXbp0gcc2adKEKlWqcOPGDW7dukWdOnVeUi9fTzExMfj6+mJkZERLLT87JEnCJ9SHflv6ISHxXfPv6Fiho+4vLqnh/HAIXAFKI/mHOZcOurdTHGJj5R/6liyRR27Ll5d/9KtbF0qXBn3x51QQhOKRkZKC/+bN3DtyhPArV4jw98+1VhTA0MKCuiNG0HDcOCxECSnhDSD+ij4nbWqV5qeJu5x58eSDk9qfZO4BLffAoeZwfy1YVACv7/I+VqmEqVPh3Xfho4/gyhVo1UqMmgpvnIcPHwJovT7R3t4egKSkpBfWpzeFj48PALVr18bYOP+pt3GpcRy8e5B9Afv4N/BfQhNCAWhfvj3ftcjnM6ogahWcHwJ3V2XNFNkJzu2KcgnPR5Lgn3/gs8/kabj6+jBpEnzzjVzWRRAEoZhEBwbis2QJl//4g5To6Fz7bMqVw7FmTRxr1sSpZk08WrUSI6PCG0UEpc+pqNN3Qc7Ga2pgSkB0AI+THlPKrJR2J9rWhiab4HhnuPEzVJkI+qYFvFAtOH9e/lX/xx/FqKnwxgkJCQG0D0qzp+wmJia+sD69LtLS0khPT8fCwiLP/efPnwegXr16z+xLV6Wz6Pwitt3cxung06gklWafs7kz3Sp1Y0abGegpdSzIHh8AVyZD8BbQM4EWu0um3mhQEIweLX9egsicKwhCsUtLSOD2rl34rV3LnX//1WTqdq5Th5qDBuFcpw6OXl6ilqjwxhNB6XN6nqDUQM+Ahm4NOXLvCKcenKJHlR7an+zaCewaQNQ5CNkOHoVk8DU0hGnToHv33KOm//wj1zMVhNdY9kipm1s+WamfYmZmBoigVJIkmjRpwt27dzl8+DDe3t7PHHPhwgXg2aBULakZvGMw66+uB0BPoUez0s3o6NmRjhU6UtOxpu5JNiJOyz+0hWwHJNA3gxZ7wLFFUS6v6DIzYcEC+PZbObOulRXMmgVDh8ozUARBEJ6DJEkEnzqFz5Il3NiyhczUVAD0jIyo3rcv9UaNwrV+/RLupSC8XCIofU7Ps6YU5Cm8R+4d4VSwjkEpQNlBclB6b3XhQWm27FHTKVPg559hzBho1w7EL3DCa0zX6btvy0jp8uXL8fPzY/78+ejpPTtaeffuXS5evAhAhw4dOHnyJBUqVMh1THZQWv+pL0hfHvyS9VfXY2ZgxrKuy+hUoRPWxta6d1Ktgoc74cYciDwjP6c0hLIDocoksKyoe5u6ysyUf6g7flze/vsPYmLkfe+/D/Png7Pzi++HIAhvjIzkZIJOnCA2KIj4kBASHj4kPiREs6UnJMgHKhSUbtaMqr1749WvH6ZZy0sE4W0jgtLn9DxrSgGalm4K6LiuNFuZPnBpHIQdhORQMNVyobuhofyr/8mTcPYsfPed/KVLEF5TYvrus44ePcrw4cORJImePXvSqlWrZ445dOgQAEqlksePH9OuXTtOnjypGXF++PAhoaGhWFlZ4enpqTnvt/O/8fOZn9FX6rO1z1beKf9O0ToZvB18v4DEO/JjQxuoMBIqjgETp6K1qa3YWFi+HI4elT8Ls78gZqtYEebNAx0zDguC8HaLvHkTn6VLubJqFamxsfkeZ+7kRK2PP6bO0KFYe3i8tP4JwqtKBKXP6Xmm7wI0dGuIUqHk4qOLJGckY2pQwNrQpxnZgUsXCNkGQevltaXaUirl+nl16sDChfDhh5DH1D1BeB2IkdLcYmJiGDRoEFLW2qQjR47QqlUrMjMzWb9+PZ07d8bOzk4TlM6ZM4fNmzdz9uxZ3nnnHU6cOIG9vX2uqbvKrGmrBwIPMPbfsQCs7LayaAGpWgV+34L/DPmxmQdUHg/lBoPBS0jAdvYs9O0rrxnNVr48NG8OLVrIW5ky+Wc2FwRByCE9MZFbu3Zxafly7h89qnneuU4dHGvWxNLNLffm6oqxjY2oIyoIOYig9DnZ2tqip6dHbGws6enpGBrmUzc0H5ZGltRwrMHlsMtceHiBFh46rp0q96EclN79CypP0O1LVK1a8vTdX3+FCRPgyBHdXlsQXhG6rinNDkrfxOy7kiQxcuRIQkJCsLOzIyoqisOHDzN9+nQWL17MZ599RufOndmxYwdHsv6f79atGx999BEtWrTg2rVrdOrUicOHDz+znvR21G36/NMHtaRmSrMpDKo5SPcOqtLh5HvwcBco9KDWLKg0FpQv4c+RWg1z5sjLF1QquZzL55/LwaiW7x1BEATISlC0ezf+mzdzZ98+zbpQA1NTvPr3p+7IkTiLH/sFQWsiKH1OSqUSBwcHwsLCiIiI0HqkJqdmpZtxOewyBwIP6B6UOneUp7zFXYOEO2BZofBzcpo2Df76S57CduQItC6BDJeC8BwkSRIjpTmsXbuWjRs3YmZmxsGDB6lXrx7nz58nISGB1atXA7Bnzx5Wr15NdHQ0ZcqUoXz58igUCg4cOECTJk24cOEC3bt3JyMjA5CD0gxVBu9vfp/Y1Fi6V+7O/1r9T/fOSWq5vvLDXWBoC003v7ysumFhMGgQHDwoP544Uc5GruMPiYIgvPkktZrY+/cJ9/MjLjiYxLAwksLDSQoPJzEsjMTwcBIfPUKdmak5x71JE6r360eNAQNEqRZBKAIRlBaDUqVKERYWRnh4eJGC0ncrvcvC8wvZ7L+ZH1r/oNt0Dj1DcHoHHmyER/t1D0qtreVR0m+/lbdWrcSUNeG1EhMTQ0pKChYWFvmWNXnam5p99969e4wePRqABQsW4O3tTb169Th79iwrVqzQ1BwF+PTTTwFo27at5jPH2dmZgwcP0rRpU80oKshJjuadnceV8CuUtS7Lmh5rUCp0zEIrSXD5S7m+sr4ZtNoPdnWf84q1dOoUvPeeHJg6OMg/xHXs+HJeWxCEV1p6YiLhV68SfuUK4X5+8u3Vq08SEeVHoaB006ZU7d2bKr16YVmE73+CIDwhgtJi8LzrSlt4tMDB1IGA6AD8wv2o6VRTtwac22cFpf9CpU9178DYsXKio9OnYf9+6NBB9zYEoYToOkoKb+ZIqUqlYuDAgSQkJNCzZ08GDx4MQJs2bTh79izfffcdIAehx44dIzk5WfM4p/Lly3PgwAGaN29ObGwszs7OpJmmMe3YNACWdFmCuaGO6z7VmeDzKdxZCgp9aLb15QSkkiSvnR87Vs6w27IlrFsHLlomhRME4bWSkZIij2hGRJAcGUlyZCQp0dGkJyZqtozERNISEkhPSCA6MJCYwMA82zJ3csKxRg1sypfH3MkJM0dHzJ2cMM+6NXN0xMDE5CVfoSC8uURQWgyetyyMvlKfnlV6svTiUjb7by5aUAoQfhRUaaBnpNv5Fhbw5ZcwaZI8Wtq+vRgtFV4buq4nhTczKJ05cyanTp3C2dmZZcuWaUY/W7duzY8//qi51kmTJuHm5saqVas0+5/m5eXFnj176N69Ox/0/4BRe0aRkplCf6/+uic2yoiHk+/LMzmURtB4HTgXMVuvLlJTYdQo+PNP+fH48XLWcX3xZ08QXidp8fGkxsWRkZQkB5ZJSZr7yZGRRN66RdTNm0TevEncgwc6t69naIhD1ao41qiBY82a8m2NGphlDTgIgvByiL/OxeB5R0oBelftzdKLS9l0fRPTW03XbQqvqQtYe0HsVYg4VbQ1WqNHwy+/gI8P7NoF3brp3oYglABdy8HAmxeUXrhwgWnTpgGwatUq7OzsNPsaN26MsbExqampODo60qpVK9zd3dm4cSP16tXTfH49rXHjxoSFhbH91nZ+2fQLNsY2zG0/V7eOJT2A413kzyYjB2i+AxwaFfUytfPoERw+LM/+uHgRTExgxQr4QMtazoIgvHTpSUlE3rxJ5I0bRN66RUzWCGb0nTukREdr3Y7SwAALZ2dM7e01m7GtLUYWFhiam2OYfZu1Wbq5YV+5MnoGBi/w6gRB0IYISovB89YqhWKawht7VZ7CW5Sg1NQUJk+GcePkuqVdushlYwThFfc803ffhOy7SUlJ9O/fn8zMTMaOHcs77+QehTQ2NqZJkyYcPnyYvn37oq+vT+XKlbl16xZWhSTjSFWlMn7/eAB+aP0Dpcy0HDlIi4KHu+HyV5AaBpaVoeUeMC9XpGssUEICHD8Ohw7J2/XrT/Z5eMD27VBTx89TQRCKhSRJcoB57548lTYqiuSoKPk2MpLkiAiiAgKIy1me6Sn6JiaY2NrKgaSZGQZmZpr7RlZW2FWsiH2VKthXroxN2bIoxWwIQXgtif9zi0FxjJQ+/xTeDnDjZ3mKnPfsonVi+HC5XMKVK7B1q5wYRBBecS9r+m6GKoPj94+jVCqxMrJCJalISEughmMNHMwcdOt0MRo/fjwBAQFUr16dmTNn5nnM119/jYGBAePHj9c85+7uXmjbc07NISguiJqONRleZ3jBByfcgZCd8HAHRJyUM+0COLaCZlvkLOHF6f59eXruwYPyetFspqZyndG2bWHwYLAp5tcVBCFPKdHRRNy4QYS/PxH+/kT6+xPq46PVSKfSwAC7ihVxqFIFu8qVsfX0xLZ8eWw9PTFzdBT1PAXhLSCC0mLwvGtKs7V1a8vSi0vZcnkLP7T+QbeTHZqCninE+kFyqDylV1fGxnL9vlGjYOpU6NED9PR0b0cQXqKiTN/N0M8AZ0hIKiS7IvIv/fsD9zNi+wiCkp79Nd/c0Jwzn5yheqnq2ne6mOzYsYNly5ZhaGjIunXrMDY2zvO41q1b57l2ND8qtYo/L//JzFNykLug4wL0lHl8FqRFwc35ELIV4vyfPK80AMc24N4Tyn0sZwkvThs2yD+ixcfLn1GNGslBaNu20LChKPMiCMUkIyWFuAcPiA8OJjU2Vt7i4kiNjSUt6zY+OJiIGzdIyme2mJmjIw5Vq2Lm4ICJnR0mdnaY2tlham+PiZ0dNuXKYVOunJhCKwhvORGUFoPskVJ/f39SUlIwKWI2tvhr8aCGW/G3SExP1C3DpZ4RlGouT9+NOAll3i9SH/jkE5g5E/z9YfduePfdorUjCC+JrtN3M9WZ9NvfD4ZDaFoondd3xsLQAqVCSVJGEnGpccSlxeW6VUkq+eQYUCYoqVSzEmYmZiSmJ3Iz8ibdN3TnwtAL2Ji8vFG5sLAwhgwZAsCMGTOoUaNGsbR78sFJPtv3Gb5hvgAM8R5C8zLNcx+kzpQz6fp9C+kx8nMGVuDSCdzelWduGL6AOn0JCfDZZ5CVpInu3WHpUhAJSYQ3lCRJJEdGEh8cTFJEBKr09CdbWprmfmaO+7n2ZWSg1NdHz9AQhUKBJEkgSUiSREhwMCnbtmkeS2o1qdHRJGbX4wwPJyUqSuu+GpiZ4VClCvZVquBQtSr2Varg7O2Npbu7GOkUBKFQIigtBjVr1qRixYrcvn2b8ePHs3jx4iK1kxSTBKEguUmcCT5Du/LtdGvAto4clMZcLnpQamgIn38ub/PmiaBUeCVduHCBXr168dlnn+kclP7p+yfXI6+DCjCCvQF7Cz3HwdQBp0Anrq64ilqlxrGlI4cPHyZVlUqTP5pwOewy/bf2Z+N7G7EwyrtW6v79+/Hz82PixInF8gXt008/JTIykjZt2jBu3Ljnbi84LphJhyax4doGANwt3ZnTbg7vV8vxWSJJELwF/L6B+Fvyc45toNpXUKqFPEL6oly4ICcrunNHTl40bx4MGyYyhQuvFbVKRUZy8jNb9ohj3IMHmpHJ7PuZqakvrD8PC9mv1NfHqnRpLN3dMbWzw8jKCmNra4ytrTX3zbNGQi3d3FCIXBSCIBSRCEqLgaGhIRs3bqRBgwYsWbKE1q1b07t3b53biYmJgQeAG5wIOqF7UGrjndWQr86vncvHH8vTd48fl7NX1qnzfO0JQjHbsGEDwcHBfPHFFwDo6+vnm0U2p8T0RL47Jtfr1Nuph+q+inXH1qHQU6CW1JgZmmFlZIWVsZXm1tLIEkM9Q2rWrAkqMDAw4NixYzRq1IjIyEgq1q+Irbct++7sw+NXDz5v+Dlj6o/ByvjJSGFQUBA9evQgJSWFDh064OXl9VzXHxAQwJYtWzAxMWHVqlUon+OLYEpGCnNOz2HmyZmkZKZgrG/MpMaT+LLpl5gamD45MOwQXJ4M0T7yY/Py4D0H3Lq/2MBQrZbXun/zjbx2tEYN+PtvqFr1xb2mIDyHlOhouUzJ7dtEZd/evk1MYCAZWfWBdWFsbY2luzvmjo7oGxujZ2iInpGRfJtze+o5fSMjlPr6qDMzyUxLk39UUihQKBQolEoCAwPxrFBBfk6pRKFQYGxjg7mjo1yT09EREzs7lGIZjyAIL4EISotJrVq1+OWXXxgzZgwjRoyge/fuGOi4PiImJgaCgMbw34P/dO+EbTEFpZaWMHSoXCJm3jxYu/b52hOEYnbhwoVcj11cXLQKzOaemUtYYhj1XOpxJ/gOMXExvOP2Dvb29gWeJ0kSd+7cAWDRokUMGzaM8+fPA3D37l02jNrAwoCFnAo+xbdHv+WXM78wrsE4PmvwGTYmNkyYMIGUlBRADlCfNyhdvXo1ACNGjNApwdPT4tPiafZnM/zC/QB4v9r7zG47mzLWZZ4clBQM54fJszAAjJ3AayqU/+TFjowCxMRAv36wf7/8eNw4mDFDXv8uCC9RalwcMXfvkhQeTmpcHGlxcZr6mWlxcaTGxBAdGEjU7dsFT3lVKDAwNX1mM7KwwNLdHavSpTWbpbs7Vu7uGFlavpBrSjt2jIYtW76QtgVBEHQlgtJiNHr0aP73v/8RERFBZGQkzs7OOp0fHR0tj5QCZ0POkpaZhpG+kfYNmHmAgSWkhkPKIzDR7fVzGTNGDkg3bpRHKCpXLnpbglCMVCoVly5dAmDx4sWMHTuWBg0aFHpeXGocc07PAeDnd35m4A8DiYmOISkpqdCgNDQ0lOTkZOzt7Rk6dCgeHh6kpaWxYsUKduzYQahPKP+N+49j94/x/fHvOR50nGnHpzH37Fy6OHRhy94tmraypxujVkHiHTB1B33TfF75WVeuXOHkyZMYGxszadIkrc97mkqt4oMtH+AX7oenrScruq6ghUeLJwekRcnZdC+Nh4xYec1o1a+g0mc69bfI/P3lNaMBAWBvD6tXQ8eOL/51hbeCOjOTtIQE0hMSSE9M1NxPS0ggJSqKmLt35S0wkJi7d3WqlWlobo5dxYryVqmS5tbW0xMjS0uxvlIQBCEPIigtRgqFAhsbGyIiIoiNjdU5KI2JiYEUIBzSHNO4EHqBpqWb6tABJdjUgscn5HWlzxOUlikDffvC+vXQuLEcnLbTcTqxILwAN27cICkpiTJlyjBixAjef/99LLUYSVh/dT2J6Ym09GhJ8zLNdSoLExAQAECFChUAaJf1/0JMTAw7duzg4MGDfP7557Qq24pWZVtx/P5xpp+YzuF7h1kfsh5GQO8bVjRxiKOOaikc2w0R/0FGnDzaaFcfzMrJWWqVeW0Gmvtn1vzBR82hdduWOKX/B8FZ+/I810Ae2cwj6dDkw5PZE7AHWxNb9vfdRjkpFm7Og6jzEHUBEgOfHOzSBRqsABPHQv+tikyS4NIlOcHarl3y0gGQa4zu2CF/JglCHiRJQp2RQXpiIolhYZot4dEjEsPCSMp5//Fj0hMSdF6naWBqik25cpg7O2NsZYVR1mac49aqTBnsK1XC3NlZBJ6CIAg6EkFpMbO2tgYgLi5O53NjYrKyWAYBjvK6Up2CUpDXlT4+IU/hdXnOUYXFiyExEXbuhA4d4Oef5elz4o+tUIKyp+7Wq1cPAFtbW63OW+G7AoBhtYcBYGZmBmgXlGZP3fX09Mz1fNu2bQE4duwYaWlpGBnJMxtaeLQgPSCdC3MukNw4nhk1YGLd7M8EXwjNmmJv4izPbIg4JW9aGFFb3uBfOPlv4ScojaDSWKg2GQytAfjr8l/MOT0Hcz09/GvWwPFQLcjOMJxNz0T+PCn/CZQb/GL+v8/IkKfm7tolB6OhoU/2mZjIU3cXLICs/1bCm0WSJFRpaWSmpmq2pMePiX/4kOTISM3IZXpCAqlxcSQ/fkzS48ekJSQ8kyhIUqkKf8EcFEolhubmGFpYYGRhkevW2Noa67JlsS1fXlOuRNTKFARBeLFEUFrMrKzkEYnY2Fidz80VlNYv4rrS7GRH0c+5rhTktaXbtsG0aTB9OowfD1euwJIlYk2XUGKeDkq1cenRJS49uoSNsQ09qvQAeK6R0mzOzs54eXlx9epVTp8+TatWrVCr1cyY8RMbl37LKG8YUsOc8jaJZErwyyPQf1CJCeOngUMjMCsD6bEQcRrSIkGdnv+mSufsmf+44uuDR2ln2rdtVcDxGVnnpMojnjdmQ+BycOlMgGFZvj04E2MF+FeviGPUMVDoybMsbOuBXT155NaqGihf4J+I6Gjo0gXOnHnynIuL/FzXrtC6NZi+hGnCwguRmZZG7P37RN+5Q0xgINF37mjuJ4aHk5maiiotrdheT6mvj4GZGeaOjpg7OWHu7CzfPnXfrFQpjK2s0DcxEUGmIAjCK0QEpcUse6S0KEFpdPaalax1pacenCJTnYm+Ll8MbWrJt8+b7CibUgn/+5+c8fLDD+Gvv+DGDTlYdXEpntcQBB0UJShdeWklAANrDMRYX/5BpTiCUpCn8l69epWjh/ZR1zWS4+u/oL9NEFNmZh+RiNrYmUGh+vydFIxdRCQTPPo+acDQGlw7FdqHzMxMenUrQ2gozJs3ifZNxhV6DiBPxfWdKM+guL+WCsCDMpCgMMYi+QYYl4I2R8HqJWazDQ2F9u3h2jVwdZUTq3XtCt7eYibGK0qtUhEfHEzs/fvEh4SQFh8vj2ImJj7ZEhJIjoggOjCQ+OBgJLW60Hb1jIzQNzZG38gIPSMjTO3tsXR1xbRUKYwsLZ+MYlpaYlaqlCaozJkkSN/EBD0dEwsKgiAIrxYRlBaz7JFSbabvLlmyhP3797NhwwaMjIyejJQmgL3Snsj0SK6EXaGOiw4lWayqymvJEgMhPa74Cti/9x5UqCDXLT1/HurWha1boWHD4mlfELSQlpbGlStXUCgU1NGyVFFyRjLrrq4DYEjtIZrniysofaddG2yD5zLO82fMfCS6VMzqq8Iao7I9wLULSuf2fHz7DH9vbkdUhSjuRN8hNTOV6Sem08S9CUNrD8XEwKTAPvz777+EhoZSoUIFuTyNlpIsqrLNYQi7g6JxSrzGO6bQ2lSJBaklE5Bevw6dO0NQEFSpAgcOwHNkEBZ0lxYfT1JEhDxlNiWFzNRUMrJucz6OCwoi6tYtIm/dIjogAFV6utavoVAqn0yB9fTE1tMT2/LlsfX0xMLVFQMTE/QMDUVdS0EQBAEQQWmx02WkdPr06YSGhnLu3Dnq1atHao7EC24qNyIVkZwIOqFbUKo0AKvqEHMJYv2gVDMdr6AANWvKBezffx+OHYN33pEzYzq+wOQngpDDlStXyMjIoHLlylolN1KpVQzeMZi4tDgauDbAy/FJKRZtg1K1Wp3vmlIyEmljuIj23QEkLt2Di+HOdB76Oy7Vu8nJx7K0qdIGpZ8SdQ01vTf1JiA6gKSMJDZd38RP//1E98rdcbVwxcXCJddmZ2qHUqFk+fLlAAwZMqTAaYeSJOEf4c/xoOMcDzrO3oC9JKbL1+hg6oBznQm0rDsM4q+DRfnnS4imq4MH5R+44uOhQQN5HWkhmY+F56PKyODRpUs8+O8/gk+dIuzyZWLv3y9SWxYuLliXLYuVuzvGNjbymszszcICQ3NzTGxssClXDmsPD/QMDYv3YgRBEIQ3lghKi5m2iY6io6MJzUrq8ejRoyejpFls4m3ASl5X+nmjz3XrhE0tOSiNvlS8QSmAg4M8stGli3w7YwbMn1+8ryEI+dBl6q4kSYzZN4ZN1zdhaWTJki5Lcu3PDkqTkpIKbOfhw4ekpqbi4OCgmQkhn/gAjndDP/YKCWkGdPs5A8/GQ1i4cCHGeay5VigUuN50JbhyMJfDLwPQs0pPgmKDuPjoIksvLs3z9Y31jXmvwnvsPr4bfX19PvzwQ27cuKHZr5bUXHt8jeP35SD0RNAJIpIjcrXR0K0hH9b8kIE1BmJmmJU0yFjHJGrPQ5Jg7lz48ktQqaB3b3kpgEnBo8OCbiS1mpSYGML9/Hjw339c2bGD0zdvkpGcnOs4PSMjLFxcMDAxkafOZt8aG+d6ztzZGfvKlbHPKmtimPX/jCAIgiAUNxGUFjNtEx3dunVLcz8sLOyZoNQo3Ais5Ay8kiTplpDBrj7c/QMiTwFjtT9PWwYGMHu2HJQuXgwTJoC7e/G/jiA85UxWUhxtgtJpx6ax2GcxRnpG7Oy7k1pOtXLt1zb7bvYoaa6pu5Hn4MS7cuZci4pILdYzx0uibt26BbblYedB8IFgrLpbMb3tdD6t/ykAx4OOc/3xdUITQglNDJVvs7bolGjW3lgLo8Eh0YGfr/xMZGgku/bv4m7sXU4EnSA6JXcNRWdzZ1p4tKBlmZa0KdcGT1vPvLrzciQmwiefwKZN8uMpU+R16mLaps4kSSLyxg2CTpzgka8vyRERJEdGaraUqKg813HaVapE6WbNKNOsGS716mFXoQJKffHnXxAEQXh1iL9KxUzbkdLsNWqQ90hp8sNkXOq4EJoQyo3IG1R10GHNl2NL+Tb8mDxC8SISh9SsCX36yPVLp0+HZcuK/zUEIYf09HR2794NPCnFkp+F5xbyvxP/Q6lQsvG9jbTwaPHMMdpO331mPenjk3C0nZzZ1rE1NPsHS0Mb6roWfg2urq6wARaMWcCgBoPw8/OjQoUKtPRoSUuPlnmeczPyJp3ndeau4V3CbcP5+czP8o6gJ8e4WbrR0qMlLcq0oEWZFnjaer4amUVv34aePeV1pBYW8uhojx4l3avXRnpiIg8vXCDkzBmCT58m5OxZUqKiCjzHyMoKm3LlKNO8OQk2NnQcMQJzscRCEARBeMWJoLSYaTtSevv2bc39nEFp6dKlefDgAZERkTQv05wN1zZwIuiEbkGpRUV5nVjKI4i/8eKSmHz/PWzeDH/8AZMmwdPr7QShGB08eJC4uDi8vLyoUqVKvsetv7qez/79DIAVXVfwbuV38zyuSEFpfIA8QqpKhbIfQoPl8jpuLbm6ypFraGgou3btolu3bkyePJmffvop33Mq21fG/pA9d+/dZcqvUzB1M+XmnZt4VfTC0dyRpqWbUta67KsRhII8PffCBdi3T57aHx8PlSvLGbsrVy7p3r0yMpKTSXr8mJSYGFKio3Nt8cHBhJw9S7if3zP1N82dnfFo0QK3Ro2wcHHB1N5es5nY2eXKQnvs2DERkAqCIAivBRGUFjNtR0pzBqVhYWGacjAVK1bkwYMHRERE0Lz0k6B0RN0R2ndCoYBSLSHobwh/gZk1K1WSy8T8+accoK5Z82JeRxCATVnTP99///18j9kXsI8Pt38IwOy2sxnsPTjfY7UJSu/du8earPd1rSpucKwTpEeDSydosELnOp5uWVlmQ0JCNJ8BPj4+BZ6TlpbG5cuXUWQo+KLTF1hZWXFMdYyWTVrq9NovVGQk7N8vB6L//gs5R/N69ZI/IywsSq5/JSwxPJwwX1/CLl8mzNeXR76+RN+5I89kKYBCTw/nOnVwb9wYt0aNcG/cGKvSpV+dHyAEQRAEoZiIoLSYaTNS+vjxYyIiniQiyTlS6unpyaFDh4iKiqKJexOgiOtKHVtmBaXHoOJoXS9De999B2vXwrp18NVXUK3ai3st4a2VlpbG9u3bAejdu3eex5wJPkOvTb3IVGfyReMv+KLJFwW2WVhQGhERQfv27QkPD6drhxZ0NFkAMXfkRGJNNuockMKTkdKHDx9y6dIlAB48eFDgOb6+vqSnp1OtWrXciZZeBTduwPDhcPJk7gCrbFno1ElOiNa+/Rtde1SVkUFqbCypMTGkxMTIt9HRRPj7awLQxEePnjlPaWCAuZMTJra2z2ymDg641K2LS926GGatfRYEQRCEN5kISouZNiOlFy9eBOTpgAEBAbkSHZUqVQobGxtiYmJw0nPCzsSOhwkPOf/wPA3cGmjfkVKt5NvHx17culIADw+58P3vv8sB6pYtL+Z1hLfawYMHiY+Pp2bNmlSqVOmZ/RmqDHpt6kVKZgqDaw1mVttZhbZZUPbdxMREOnfuTEBAAA3r1mDr2AyU0ZfAvBy02AMGRctCmh2Unj59msePHwNyUFrQj05nz54FoOGrVhP46FF5vWhsLBgaQosW0LGjHIxWrPjGBaIZycmEXbnCo4sX5e3SJaIDA8koJHszgKGFBU41a+Lk7Y2TtzfO3t44VK0qSqYIgiAIQhYRlBYzbeqUZgelHTp0IDAwkIiICMLDwwGwsbHBwcGBmJgYoiKjGFJ7CLNOzWLKkSkcGnRI+45YeIKJC6SEQpw/WL/AEcwpU+R1pVu3go8PFJKBVBB0kZaWxooVK4D8p+4evHuQR4mPqGxfmWVdl2k1qyC/kdKMjAzef/99wu5eYMEQa0a1D0Mv+jGYuELrw2DqUuRryZ6+mx2QAqSkpBAVFYV9PvU6X8mg9K+/YMgQyMyUExetWgVa1I19HWSmppISE0PsvXuEZgegFy8ScePGM+s7ARRKJcbW1hjb2GBiY6O5tSlfXhOA2pQrh0JkGxYEQRCEfImgtJiZm5ujUChITEwkMzMT/TzS7mcHpfXq1aNUqVKEhYVpSsRkB6W3b98mIiKCL5t8yRKfJRy+d5hDdw/RtlzBWUc1NOtK18ujpS8yKHVxgTFjYM4cGDUKzpwBPb0X93rCWyE5OZlly5bx888/8/DhQ/T09PINSv++9jcA/b36o6/ltNq8SsJIqkwWTu7IiCqH6fwB6CljIR2wqg5NN4O5x/NcEs7OzigUCqSn1hIGBwe/HkGpJMHUqXLGbZDLQc2a9Vr9/54cGUnoxYs8PH+ex35+JEVEaBIMpcbEPFPTM5tCT49SXl641KmDc9bmUKUKRpaWIuAUBEEQhOckgtJiplQqsbKyIjY2lvj4eGxtbZ85JnstWZ06dXBycpKDUn9/7AC9e/eonJCAGeD77bc8tLRkfJgDt+Li2LK9NzEV30Hf0BCloSF6BgaoMzM1X6IMLSwwtbPDsUYNHGvUwFS/Dkbp69EP3fti15UCfPst/P23nHVzwQL4/PMX+3rCGys+Pp5FixYxb948zdrrGjVqMGPGDDzzyPCcnJHM9pvbAehbva/Wr5NrpFSVDrfmEXN+BuNry1Pv1ehDmd5QYQQ4NCuW6agGBgaUKlVKMzMiewr/gwcP8Pb2fub4R48eERQUhLm5eYEZh1+KtDT4+GNYv16uMfrbbzByZMn2qQCSJJH46BGPLl3KtcUHBxd4nlJfHxM7O8ydnHCuXRvnOnVwqVMHxxo1MDA1fUm9FwRBEIS3iwhKi1lqXBxlTEywiY3Fd80azIDkiAjS4uNJi48nITKSFg8eYKJQcKRXLzrdu0dHwChrOl/g99/jDrgDsSdOEJvVbkUAYvG/vEnnPukb7MXUwQkTB6dcpQPMHBywLlsWm3LlcKxRA+PnSaJiYQGLF0PXrvDNN9C9u5zsRBC0lJSUxKxZs1i4cKFm+nv9+vX55ptv6NKlS75Tcvfc3kNieiL1XOrhaat9WaIna0oT4OxHEPQ3toZw9zFklBlMpY4zwbjU817WM9zc3AgPD8fNzY3WrVtrgtK8nDt3DpD/HfRKcjQyKkr+f/rkSTA3l+sTd+pUIl2R1GriHjwgwt+fCH9/EsPCSI2LIy0ujtTYWPk2Lo7kyMg8a3oamJnhVKsWLvXq4VKnDhYuLrmSDBmYmYnstoIgCILwkomgVAuSWk1qXJwmq2J2XbnUmBiSIyOJCQwk6vZtogICSI6IILs0/Mlx4/JsrzyAJBF18ybZaS7UQBxQsUEDwlJTOXrlCu169OD9Dz9E39iYXde3s/zcEtxNXZjZ8kekTBWq9HT0DAzQNzEBSSItIYHER48Iv3KFCH//rC9oMWRmqIgPDSc+NDz/i1QocKhaFbeGDXFr2JDSzZphn0dCmQJ16QJ9+8KGDfDpp7Bnj27nC2+1jz76iH/++QeAFi1a8M0339CmTZtCA4Tsqbv9qvfT6fWyg9Kv2sdA0N8kpED/36HnmJV81OPjIlyBdlxdXbl48SJt2rShTJkyQN4ZeCVJYsGCBQA0b978hfWnUHfuyAFoQAC4usLu3VCr1gt/WbVKRVxQEI+vXyfC359If38eX79O5I0b+U6xfZqxtTXOtWvjVLs2zt7eONeujW2FCihfo+nGgiAIgvA2EEFpIWLv3+fXcuUKrSeXTd/EhDggIiWFui1aULZ6dUwdHDC2tsbI0pI9Bw+y6u+/adSyJXMXLWL+4sX88ttvpAMS8HDrVjZu3MjJ8eOp7e5O5XffBWB021Ys/G0/B2Lv0beGxGDvT7Tqj5QSQcbmsiTHJJFcdTkpUmmSIyNJjowkMTyc2Hv3iA4IIOzKFSKuXyfi+nV8V64EwL5yZSp27YpdxYpYlSmDdZkyWJUujb6xcf4vOH8+7N0rb/v3y+UgBCEP9+/fR19fHzc3N3bu3Mk///yDmZkZe/fu1ToIi0mJYW/AXhQo6FO9j06vb2pqymftYVz7TFSSkp7z1Xg2HcFHH724gBTktaE7d+6kd+/emhHhvILSbdu2cfToUWxtbRkzZswL7VO+Tp6UR0ijoqBmTTkgzUrWVFSSJJEQGqqp2Rl1+7ZcUuWpLT0hId82zJ2ccKhaFYdq1bB0c5M/X62sMLaykm+trTG2tsbcyUmMegqCIAjCa0AEpYUwtrYGScLI0lLOqmhri0nWbfZj67JlsatQAbuKFbFwcaF7jx7s3LmTd8eNo1P37rna+2H3bgKB3g0b4lC1Ks6VKpGWY392oiMgVy1TQz1DpreazoBtA5h6bCr9vPphrF9AcJhFYeKAYa2JGF77Hmv+gnYn8lwbl5maStjly4ScPUvImTPcPXSIyJs3ibx585ljzRwdsS5TBoeqVSnTsiVlW7XCqnRpeaejozx9d9IkGD8erlyBPJI9CW+31NRUvL29SU5O5ptvvmHZsmUA/PjjjzqNCv7v+P9IU6XxTvl3cLHQLSuuMmQL8wbI96ftc+fQtSDGzuisUxtFMXHiRPr164eHhwf//fcf8GxQmpqayoQJEwCYPn16nmvTi5UkwYMH4Ov7ZLt8GbLXX3bqJM+AsLDQqVm1SkX0nTuaep3hly/zyNeX5ByfbflSKLBwdsahWjU5AM0KQh2qVMHkRf97CIIgCILwUolooRBGVlZ8m5GBUofAqqCyMNmZdytWlFeJOjk5afYZGxtjYmKSZ1AK0M+rH7NOzeLq46ss8VnCuIbjtOtQlfFweyFEnIRH+8GlwzOH6Bsba6buMm4cqowMgk6cIOj4ceKCgogNCiIuKIj4kBCSwsNJCg/n4fnzXF61CgCb8uXxaNkSl7p1caxfH0cPDwz9/WHZMjkjryDkcPXqVc3/H9999x0AdevW5dNPP9W6jeuPr7Pw/EKUCqVWdUlzeXwCTg9AqYSvNsCsXUEANGnSRLd2isDAwAAPDw8A3N3dATn7bk5z587l/v37VK9enWHDhr24zjx4IP+ItGcPREc/u9/UFEaMkDPs5vgMlCSJpPBwzXTapMePNRlsc26Jjx7lOdXW2Noap1q1cPL2xqFaNUzt7TWjm9mbkYWFyGorCIIgCG8JEZQWQqFQoNBxpM8qK2FQXFxcruejoqIICgrC1NSU0lkji87Ozpr9NjY2APkGpUqFkp/a/ETXv7vy438/8on3J1gYaTFyYWAJVb+Cy5PgyhRwbl9oJlE9AwPKtWlDuTZtcj2vVqlICA0l9v59Qi9c4P7RowSdOEFMYCAxgYGaqb8oFNgC1qNHY/zLLxg2aICRoyNGlpbyqLOVFbYVKuBUs6Y8Gi28VS5fvgzIZZHCw8OJiopi2bJlWifzkSSJz/79DJWkYmTdkdRyqqX9i6tS4XR/UKez5pwls3bFA1C9enXN/4Mvi6urKwqFgtDQUDIyMjAwMODhw4f89NNPAMyfPz/PslLPLS0NZs6Ug82UFPk5e3vw9kZdowaZ1aqRUakSGU5OxD18SPSaNUTfuUN0QIB8e+dOgdNrc7J0c8PJ21veatXC2dsbqzJlxLRaQRAEQRA0RFD6AuQ3Upo9SlqrVi3Nl++cI6XZX4gdHR0BCA0NfabtzhU608S9CaeCTzH3zFymtpyqXacqjoZb8yDmEgRvhdK9dLkkDaWeHlbu7li5u1OmWTMajR+POjOTR5cu8eDkScIuX9YkWorOzCQa4O5decuHXcWKeLRqhUfLlni0bIl5jn8T4c3k6+sLQJ8+ffjss89ISEjQaYrqrtu7OHLvCLYmtkxvNV23Fw9YDMkhYF2Duccl4CoAzZo1062dYmBgYICLiwsPHz7k4cOHeHh4MHnyZJKSkujRowdtnvpRSBeSWk1GSgoZSUmkJyWRFhdH/MOHxJ8+Tfzy5SRERBAPxFtakmJgQEZaGplHj6I+eFCr9o2trXGoWhX7qlWxdHWVlzbY2eXKZGuWtZ5eEARBEAShICIofQHyGynNrk9au3ZtzXN5BaXOzs6YmZkRERFBVFQUdnZ2mmMUCgUz2syg+arm/HLmF0bVG4WDmUPhndI3hWrfgM9o8PsW3LqDsngyUCr19XGtXx/X+vU1z6nS04m4cYPEc+dIW76cNB8f0oA0U1PSGjYkxdWViJs3eXz1qpy5+PZtLi5dCoB9lSp4tGxJmRYt5CQmWYlLjKysMDQ3FyMsb4DsoNTb2xsDAwOd10zOOzsPgG+afYOdqV0hR+eQkQDX5VFIav6IqdkMza6mTZvq1AddqNLTn5QtybpNi48nPTGRhsbGBALnFi/GR0+P62vWUF9Pj2G1a+OzZIkcXCYnk5GcTHpSEhlJSTwIDCTi9981AWdGcvKT+1m3mdkjoIWJj8/9WKHAwMQEfRMTDExMsHBxwdbTE9sKFXLdmtrp8O8uCIIgCIJQABGUvgCFjZTWqVNH85yZmRkWFha5RoqUSiXVqlXj/PnzXL9+/ZnEL83KNKNThU7sDdjLjJMzmNt+rnYdKz8EbsyB+Btwfx2UG1S0C9SCnqEhTjVryhk7hw2Ts3hOmgRnzsCRI+DpCevWofL2JtTHh/vHjnH/6FGCT50i8sYNIm/cwGfx4mfaVejpYWxlhamDAw5VqsijNG5umDs5YeHsjLmTE8bW1ugZGqJnZCRKP7yCVCoVfn5+gDxrQFfXH1/n2P1jmBua80lt7bJQa9ycC2mRYN8YXDpjbr5Qs6uwkVJJkkiJiiIuOJj4kBB5y3E/OSKCzLQ0VGlpqNLTUaWny4/T01FnZOTbrlfWdnP2bAC6AahUnPv22wL7U0CBJw19ExMMzcwwMDLCKCYGi+RkLAHL+vWxGDQIy3LlsHRzw8zBQROEKg0MxA8/giAIgiC8VIUGpQqFwhg4ARhlHf+PJElTFQpFWWADYAdcBAZKkpSuUCiMgNVAHSAK6CNJ0v0X1P9XUn4jpTmD0qgcRd2dnZ1JSEjItZ4tOyi9du1antlIf2j1A3sD9vKH7x/81OYnrTLxomcIXt/D2Q/h6lQo01d+7mVo2hROnYLt22HyZLh1C/r3R+/aNdwbNcK9USOaTZ6MKj2dhxcucP/YMR6ePUtyVFRWvdU4UmNjyUhO1iRRibp1S26vAAo9PfQMDdE3MkLPyEi+zQpY9Y2MMDQ3x9TBAVN7e0wdHDBzcNDcGlpYyCNGxsaaL+zZ90WwW3S3b98mOTmZ0qVLFymr7KILiwAYWGMglkaW2p+YEgY3fgEg0WUi0adO4RIXR13AxcoKv5kzuZg1wpiRnExGSop8PyWFtPh44kNCUKWlFfwa+VDq6+cqWZK9rtrQ3JxLly9z3d8fGxsbomNiMDEx4b3338fQ0BAUChRKJQYmJhiYmckBppkZd4OD8apdO9dz2bcGpqbyfVNTObhcvRrGjIHkZHBxgVWroF27Il2HIAiCIAjCi6DNSGka0FqSpESFQmEAnFQoFPuA8cA8SZI2KBSKJcAnwOKs2xhJkjwVCkVfYBagWwHB11xeI6XR0dHcu3cPExMTqlSpwsmTJzX7nJ2duX37dq6gtHr16gBcv349z9fwdvbG28kb3zBf9gXso0eVHtp1zqM/+M+UR0vvroQKI3W7uOehUECPHtC5M9SqBTduwMKFMHGi5hA9Q0NKN2lC6XyyoKoyMkiLiyMhNFTO/HnzJomPHpEYFiZvjx6RlpCAKi2NzLQ0JJWKzKzgojivw8LFBZuyZbH28MC6bFks3d2xcHbGwsUFc2dnzEqVEoFrPnJO3dVVXGocq6+sBmB0vdHP7FdnZpIWH09q1o8Y2T9mpERHE3HoZ8KvJhD+0JCkmJ4AeGRtxMXh8/vvhb6+sbU1lm5uWLq7y7c57ps7OqJvbKz50UPzY4ihYYGjjw8XLuTHzz6DmBgA/lqyhF6DCp7FkHLsGNVbtsx7Z3AwHD8uz0r47z/I+jGMXr1g6VIQ024FQRAEQXjFFBqUSpIkAYlZDw2yNgloDXyQ9fxfwDTkoPTdrPsA/wC/KRQKRVY7b4W8gtLs9aQ1a9Z8Jptm9rrSp0dKAa5du5bv63zg9QG+Yb6sv7Ze+6BUqQc1psPJ9+DadCj7obze9GUyNIS5c6FjR5g+HQYNglKltDpVz8BAHtW0t8exRo0Cj5UkCXVmpjyVMitI1dxmPZcWH09yZCRJEREkR0RobpMjI0lPTCQzNVUzWpbzfsLDhyQ8fMiDHD8uPE1pYCAHKDk2fSMjDExN5bIXNjaY2NhgbGPzZBQtKztx9L17hJiYaB4bWVq+Metpnyco/dP3T9RxSXQzqo3q4GWO3fmHmDt3iA4MJPrOHe3qX5KOkaUl9lWqEBwTg+/t27Tu2pVG7dphaG4uj0qamj4ZHTcxwdDcHEtXVwzNzXXuc2GyM3ED1K9fnwEDBmh/clqaXFP0zJknW0hI7mMsLGDBAvjww0KzbguCIAiCIJQErdaUKhQKPeQpup7AIiAQiJUkKTPrkBDANeu+KxAMIElSpkKhiEOe4htZjP1+peU1fTev9aTZqlSpAkD58uU1z+UcKZUkKc9gpG/1vkw6OIndt3cTnxav/VRG955gU1vOxBv0N5TXcV1ecejQQQ5K9+2Db7+VR3CKmUKhQM/AAD0DAzAzK7Z2VRkZxIeEEHvvHrH37xNz754cpIaGkvjoEQmPHpEcEYE6IwN1RgYZSUlFep2rTz1WKJUYWlhopn7mDFiNnnqsZ2iIUl8fpb4+Cj09zX19Y2PMSpXC3MkJc0dHDExf8g8SyEGpAqherhyRN2+SHBVFcmQkKVFRpMTEkJ6YmCtpT3YSn9hHIYTfvMqXKQCX2EYewZtCIf/7WFs/SZBlaY5x8mlsrGNxat4Hx24zsPbwQKFQkJiYyMmTJ2nXrp3W5WiKW86gdMGCBSi1qM2pTE+H0aNh5Uo5MM3JygoaNoRGjeStYUOw1GGasyAIgiAIwkumVVAqSZIKqKVQKKyBbUDl531hhUIxDBgGcgmUY8eOPW+Tr4zsEdKIiAjNde3btw+QExsdO3aMxMREzb6GDRsyb948nJ2dNc9JkoSZmRlRUVFs27Yt37V3NaxqcCXuCjO2zaC9U3ut++iqakQFLhF6dRu3g8sXfsILYNq3L/X274cVKzjXvDmprq6Fn/QqUSqhXDmU5cphBVjl2CVJElJmJlJmJur0dNSZmUgZGfLIbUoKmQkJ8paYKG9JSaiSkshMTkaVlERafDykpcnPJyeTmZSEOjVVztoaF0d8cHCxXIKeiQmGtrYY2NhgaGODoa0t+hYWhY6oSZmZZCYlkZmYKPc7MRFVSgrqtDTUmZkgSUhq9ZNbtRpJkkCtpn5iIk2Ba4MGkf88gLwZAxlGSmzcy2Hi6oqxqysmLi6YuLpi4uqKoZ0diuygTpKwTz2FZ/xvGKtiSdFz4UKpwYQFBUFQ0JM2jY3577//dOxJ8VGpVLRu3Zpy5cqRkpJS6GehUVgYNb79Fu7cASCpTBniq1Ylrlo14qtVI7l0afm9mS1rlobw9sn5d0YQnibeH0JBxPtDyOllvB8Uus6qVSgU3wEpwJeAU9ZoaCNgmiRJ7RUKxf6s+2cUCoU+EAY4FDR9t27dupKPj0/Rr+IVk56ejpGREfr6+qSnp6NQKChfvjx3797lypUr1KhRg2PHjtEyvzVhWZo2bcqpU6c4dOhQvvUKl11cxvDdw2lfvj3/DvhX+04+PgmHmoFNLejoq/15xW3wYDnxyuDB8McfJdePV0xe7w91ZiZpCQmkxcdrSopkr5/Mvp+9qbMCYHVmJpJKpbmfkZxM0uPH8vrb8PAiJ+55XhJgmlXX0tTODlN7e02NS0Nz8yeJe0xNMTAz41K0H9/4/ESqoynnvrhGWZuyBb9Awh3w+QweyT8GYVMLGq0Ga68XfWkv1tmz0LUrREZC2bKwZQsUYRq08HbQ5u+M8PYS7w+hIOL9IeRUXO8HhUJxUZKkunnt0yb7rgOQIUlSrEKhMAHaIScvOgq8h5yB90NgR9YpO7Men8naf+RtWk8KYGhoiImJCSkpKSQnJ5Oens7du3cxNjamatWqWrdTrVo1Tp06xbVr1/INSntV6cXovaM5dPcQcalxWBlb5XncM2xqgUIJsdcgMwX0TbTuV7GaMgXWrJEzhE6ZAuVLZtT2daDU18ckax1qcZAkibS4OBLDw0kMCyMpPJzE8HBSnyplRB7/+yr19TW1Y+UpsvKaV0MzM/QMDVEolc9sGSoV/QcM4PCRI7Tp2JE9e/dq1c91fusYtftXkkrDgg4zCw5IM1PkRF7+s0CdBgZWUOMHOaFXMdXlLTE7dkC/fpCSQnS9etju3w/F9F4QBEEQBEEoSdpM33UG/spaV6oENkmStFuhUPgDGxQKxQ+AL7Ay6/iVwBqFQnEHiAb6voB+v/Ksra1JSUkhLi6OmzdvAlCjRo1nkhwVpLAMvAB2pnbUdanL2ZCznHt4jnfKv6Nd4wbmYFkF4q5DrB/YN9C6X8XK0xMGDpRHS3/6SV4jJ7wUCoVCXntpbY19pUov9LVUKhWD+/Vj75EjODg4MHfevELPSclIYdy/41h2aRkgl4AZXf/ZjLsaYYfg3DBIuic/Lvsh1JoFJo7FcQklJy5OLqO0ZIn8A8Enn3C1b19aiIBUEARBEIQ3hDbZd/2AZ+aHSZJ0F6ifx/OpQO9i6d1rzMrKikePHhEbG1tgkqOCaJOBF6CJexPOhpzl1INT2gelALZ15aA02qfkglJ4Mlr611/yl29Pz5Lri1DsJEli+PDhbN68GUtLS/bv30+lQoLggKgAem/uzZXwKxjpGbGg4wKG1h6af/bhpGA43hVUqfIU3bqLoFSzF3A1L5BaDY8eyWtF79yBwED59sQJCA8HfX343//gq6+Qjh8v6d4KgiAIgiAUG+2H7QSdZJeFiYuLK3JQqk0GXoDG7o355cwvnAo+pVsnbevCvb8g+qJu5xU3T0+5LMyff8K0abB2bcn2Ryg2kiTxxRdfsHLlSkxMTNizZ0+hpWA2Xd/EkJ1DSEhPwNPWk829N1PLqVbBL3R1mhyQunWHpptB+Zp8tKnVsHMnzJkjJyRKTc37uIYNYdky8HrN18QKgiAIgiDk4TX55vb6KZVVd/Pff/8tclBaqlQp7O3tiYyM5OHDh7i5ueV5XBP3JgCce3iOTHUm+tp+IbfLWmcc/QokmZo6VQ5G16+Hr76CrIBceL399NNP/PLLL+jr67NlyxaaNm2a77FpmWlMODCBRRcWAdC7am9WdFtReKmj2OtwbxUo9KHW7NcnID13DoYPhytXnjzn4CCvq/b0fLJVrAh16uTOqCsIgiAIgvAGEd9yXpCxY8cC8pfyO3fuYGRkpJmOq4uyZeWkLsEFlABxNHekvE15EtMTuRr+dHXLAljXBIWePIU3M1nnvhWrMmXkL+iSJNctFV55q1evpmLFivj7++e5f9GiRXzzzTcoFArWrl1Lx44dC2xvypEpLLqwCAOlAQs7LmTjexu1q7175WuQ1OA5DCwrFOVSXq6MDPlHmCZN5IDU1RUWLICYGHj8GM6ckaezT50K/ftDvXoiIBUEQRAE4Y0mvum8IK1bt2bMmDFkZmYCcpIjAwMDndvJHh0NCQkp8LjG7o0BdJvCq28CVtXkL/Qxl3XuW7GbMgVMTGD7drhwoaR7IxRi1apVBAQEMHPmzGf2rVu3jk8//RSApUuX0qdPnwLbikuNY+nFpQAcHHiQT+t/mv/60ZzCjsDDnaBnCtVf8R8zUlLg99+hQgV5bahaDV98Ia8bHTMGsqb8C4IgCIIgvG1EUPoCzZw5kwoV5JEbXafuZtM2KM2ewns6+LRuL2D7Ck3hdXKCzz6T70+ZUrJ9EQqVnYBr48aNREREaJ7ftWsXH374IQCzZ89m6NChhba10ncliemJtPJoRQuPFtp1QJUKF0bI96tNBhMn3S7gZbp3D+rWhdGjISgIKleGo0dh9mwwNi7p3gmCIAiCIJQoEZS+QKampmzevJnu3bszenQBpSwK8EJHSiHHutISTnaUbdIksLSEgwfh2LGS7o2Qj8ePH2sC0fT0dP744w9ALq7cu3dvVCoVkydP5osvvii0rUx1JgvOLQDg84afa9+J6z9BQgBYVYUqk3S/iJdBkuD4cWjQAPz9oVIl+OcfuH4dWmgZfAuCIAiCILzhXpOMIK+vmjVrsm3btiKfr21QWq1UNayMrHgQ94CQ+BDcLPNOivQM65rybWzBZWdeGltbmDgRvvtOHi09eRK0mcYpvFTZtXNNTU1JTk5myZIlWFtbM2HCBNLS0hg5ciQ//vijVm3tuLmDoLggPG096Vyxs3YdiPMH/6xpw/WWgp5hUS6j+EmSPB336FF5O3YMwsLkfe+8A5s2gZVViXZREARBEAThVSNGSl9x2galSoWSBm5yrdELD3VYj2lVVb6N9we1qkh9LHbjxoG9PZw+Db/8AunpJd2jt156ejrvvvsukybJI5LZU3f79u1L2bJluX//PiNGjCApKYmPPvqI3377Tbs1ocCC8/Io6dgGY1EqtPhIUmfC2cGgzoDyQ6FU/hl9X5qzZ2HgQHB3l7PlDh8OGzbIAamTkzwDYPduEZAKgiAIgiDkQQSlrzh3d3eg8KAUoEapGgBce6zDqKehNZi6yevzku4VpYvFz8JCzjwKciKYSpXg/+3dd3hUVeLG8e9JJ4Qk1NB7k15EEUSaBSuWdUVUsHeUXV3b7rr21d/a++raG3ZERFSQIogoVUB67wRCIJCEtPP748yEJKTMTEKGTN7P8/BkMvfec8/AIZl3IqKwDgAAXNVJREFUTvvf/9yqpRIUM2bMYMKECTz11FPs3bs3P5R2796dMWPGAFCvXj3GjRvHm2++SZiPq8UuT17OzI0ziYuKY3T30b5VZvmTsOdXiG0GPf8T0OupUK++CgMGuC2Ntm5127pcfLFb1Gj5cti2DZ54AgJY6ExERESkOtDw3WNc48aNAdi6dSu5ubmEh4eXeG6XBm5vz6XJfg7FTegC6VvcEN5abQOua4W65RbXW/rQQ+6N/XXXwaOPuiG9o0frDX4l++abbwDIy8tjypQp+aG0c+fODB48mI4dO9KnTx/q1avnV7mvL3gdgJFdRlIrulbZF6QuhSWeDyxOfAOigtjzaK1bmOvFF933Y8bA9ddDp07awkVERETED3rndIyLjo6mQYMG5ObmsnPnzlLPzQ+l/vSUgtsWBmDfMTKvFNw80hEjYMkS+Ogjt1rphg0unLZvD++840KBVIpJkyblP548eXJ+KO3SpQthYWGceeaZfgfSzJxM3ln8DgDX976+7AvysmHOaMjLgrY3QKPT/LpfhbvnHhdIo6Nde3z+eejSRYFURERExE9691QF+Dqv9Lj6x2EwrNqzikM5h3y/QaILs+xbFmgVj57wcBdOly6FDz88HE6vvNINm6zirLVs2bIFewwH7NWrV7N69WoiItzAik8//ZT9+/dTr149GjRoEHC5Xyz/gpSMFHo27Envxj5smbTscdi7AGq2DP6w3aefdtu5RETAl1/CqFHBrY+IiIhIFaZQWgX4GkpjI2NpU6cNOXk5rNqzyvcbeHtKj5UVeIsTHg6XXurC6fNuYRz++lf3fRX2+eef06xZM1555ZVgV6VE3qG7F198MQ0bNiQtLQ1wvaS+LmZUnNfmvwb42Eu6dxEsfcg97vsmRPow1Pdoee89uOMO9/jtt+HMM4NXFxEREZEQoDmlVYCvoRTcEN41KWtYumspXZO6+nYD7wq8aSvdEMmwY3i+Zni4m7u3aBG8+abrRf31V4iNDXbNAjJ7tttX9o033uDmm2+ukDLXrl1LcnIyWVlZZGVlcejQofzH9evXZ8iQIX6V5w2lZ599NlFRUbzzjhty26VLl4DrOG/bPGZsnEHNyJqM7Dqy5BMzd8HqV2DVi2BzoP2tkDQ44PuW27ffwtVXu8dPPw2XXRa8uoiIiIiECIXSKsCvUFq/C+NXjPdvXmlETYhrDQfWQdrqwyH1WPb88zB7NixbBjffDG+9VSX3M928eTMACxYsYPPmzfmrLQfq22+/5ayzzir1nNmzZ9OvXz+fyktLS2PGjBmEhYUxbNgwwsPDKySU/mu6W6zo5j43Ex8df+QJ+/6AFc/C+nchzzMUvf4A6PF4wPcstwUL4E9/gpwcN5/0L38JXl1EREREQoiG71YB/vaUQiAr8FaBIbwF1awJn3wCNWq4RWa8K6BWMd5QCvDVV1+Vu7wff/wRgBYtWjBgwACGDh3KmWeeyfDhw2nb1q2svGDBAp/LmzJlCtnZ2fTt25e6dety2mmn5Q/ZDTSUzt0yl0mrJ1EzsiZ/6/e3wweshR1TYNpZ8E1nWPu6C6RNzoWh0+DUGe4DlGA4dMjNG01Pd/OZH3ssOPUQERERCUEKpVVAQKHU7xV4j+HFjkrSrZvrIQXXazVtWnDrE4CCoXT8+PHlLu/3338H4Nlnn2XmzJlMmTKFSZMmMX78eK6/3s3dXLXK9/nGBYfuAtStW5dRo0bRrVs3evXq5Xf9rLU8MOMBAG494Vbq16zvDmQfgFkXw4+nwfZvIbwGtLsJzlkBAydA0qDg9oQ/9pjrlW/Xzu0/WgV75UVERESOVRq+WwV4h3T6Ekrb1W1HZFgk6/au42DWQWpG+dizdCxuC+OLSy6BhQvhiSfgwgvh55/huOOCXSufZGVlsWPHDsLCwjDGMGPGDPbu3Uvt2rUDLtMbSrt163bEsfbt2wNuNV1fWGvzt4LxhlKAt99+26frc/JyWLl7JQt3LGTB9gUs3LGQhdsXsu/QPuKi4riz353uxAPrYOYFkPo7RMbDcXe5LV9i/Nti5qiZM+dwz+gbb7jeeRERERGpMAqlVUCTJk0AF0rz8vIIK2UfxKjwKDrU68DSXUv5I/kP+jTp49tNvNvCVJXhuwU9+iisWAFffeVWQv3lF2jYMNi1KtPWrVux1tKkSRPat2/Pjz/+yKRJk7gswMVzkpOT2bFjB3FxcbRs2fKI4+3atQN8D6WLFi1i+/btNGnSpNiQW1RqZioTVk7gly2/sGD7An7f+TsZORlHnNcwriFPnf4U9aJqwO//guX/gdwMqNXe9YrGd/CpfkdVXp5b1Oj55+H7791zt94KAwYEt14iIiIiIUihtAqoUaMGdevWZc+ePSQnJ5OUlFTq+V0adGHprqUs3bXU91Aa3wFMOBxYA7mZEB5TATWvJOHhbg/TIUNg7lzo2RMuuADOOw8GD4bo6GDXsFjeobvNmjXj/PPP58cff+Srr74KOJQuWbIEcHM9i/vgonXr1hhjWL9+PVlZWURFRZVannfo7llnnVXq1i8bUjdw5/d38vWqr8nKzSp0rGViS3o16kXPhj3zvzaq1QjSt8CkHq69AbQYAX1egahE31/w0ZCW5rZ5eeEF8Ib3GjXcirtPPBHUqomIiIiEKoXSKqJp06bs2bOHLVu2lBlKeyT1YNzScfy06Seu6nmVbzcIj4FabWH/Sti/Amr3KH+lK1NsLHz9NZx2GixeDK+84v7ExcGwYS6gnnUW1K0b7JrmKxhKB3h64JYvXx5weaUN3QWIiYmhRYsWbNiwgfXr19OhQ+k9kkXnkxZnzuY5DB83nOT0ZAyGIa2GMKzNMHo37k2Phj2oU6POkRdl7ISpQ10gTegCfV6GBkHugczIgH/+E15/Hfbvd881a+Z6R6+9FuoU8zpEREREpEJooaMqwp/Fjs5pfw4AE1ZOICcvx/ebeBc7Sq1Cix0VVL++m186bx7cfz907w4HDsBnn7mVU5OSYNAgt7/kjh3Brm2hUOqdN1xw4SN/lRVKwfchvMnJycydO5eoqCiGDh1a7DkTV01k8DuDSU5P5vQ2p7P5L5uZOmoqf+v/N4a0GnI4kOblug87Nn3mhutOOQXSVkFidzhtZvADKcAtt8BTT7lAOmAAfPoprFsHd92lQCoiIiJylKmntIrwJ5R2qt+JdnXasTplNbM2zWJQy0G+3SShM2z+vOotdlSQMdC7t/vz4IOwcaPrQf3qK5g+HWbMcH8efxwmToQTTghaVQuG0jp16hATE8O+fftIS0sLqDzv8N2yQukPP/xQ5gq8kydPxlrLoEGDiIuLO+L49rTtjPpyFIdyD3HT8Tfx/JnPExEWAVl7IWU+pC5xCxelLnErOudmFi4gviMM+R6iAl/UqcJ8+KFbxTkmBn74AU4+Odg1EhEREalW1FNaRfgTSo0xnN/xfAC+XP6l7zepyosdlaRFCzcE84cfYPduGDcOTjkFkpPdfFPP6rLBUDCUGmPy/423bt3qd1m5ubksXer+3UrbP9TXFXhLG7prreWGiTewN3Mvw9oO46WzXiLChMPqV+HLxm5blwV/hXVvu4CamwmxzaDxWdDpbjjpfTjjV4hp4PfrrHBr1sCNN7rHzz2nQCoiIiISBAqlVURpofS9997jpZdeKvTcBR0vAGD8yvFYa327SVXcq9QfCQluC5kpU2D0aEhPh+HDYfLkoFSnYCiFw//GgQzhXbNmDZmZmTRr1qzULWV8Gb6bk5PDd999B7hFjop6Z/E7fL3qaxKiE3j93NcxOWluj9HfbnIBtO4JbkuX41+CU2fCn1Lg/E0w6Bvo8Ti0ugwia/n9Givc5s1w+ulucaOLL4brrgt2jURERESqJYXSKqK0UHrTTTcxZswYDhw4kP/ciU1PpFFcIzbt28TCHQt9u0mtthAWCQfXQ/aBss+vqiIj3XDNv/wFcnLgoovcNjKVrGgo9Wc/2qJ8mU+6df9WdsTtgF4wL2oee9L3FHvezz//TGpqKu3bt6dt27b5z2fmZPK37//G1V9dDcCzw56laVQ0TB3ihn1H1IJ+H8IZc+GEV6H9zW6+6LEwRLeoLVvc/OL166FPH7fAUSkrDIuIiIjI0aNQWkWUFFgyMzM5ePAg1lr27t2b/3yYCWN4h+GAH0N4wyLdXD+A/YGvAlslGOMWtrnyStdjetZZbq/TSpKens6ePXuIjIykQQM3jNWfIdpFFZ1PmnYojekbpvPErCe48OMLafJ0E5o+05Rrpl0D58G+E/dx4bgLyc3LPaKsokN3M3My+d+C/9HtlW48OedJjDH885R/MrrdULdoUcp8iGsDZy6Alpf6/5dR2dLT3YrM69bB8ce7fUgTEoJdKxEREZFqS6G0imjSpAngAkvB4bipqan5j/ft21fomguPuxCAj5d97P8Q3lCaV1oSY1wP2Xnnwd69cPbZbt7pUWStxVqb30vatGnT/D1FyzN899dffwUgsUMix792PIlPJDL4ncHcM/UevlzxJdvSthEfHc+gloOotbYWHICZm2fy71n/PqKsSZ55tv1P789DMx6ixbMtuO7r61idspr2ddvz89U/89BJt2J+HOq2D0rsCqf95Hraq4LbboNly6BDBxdIExODXSMRERGRak2r71YRcXFxJCYmkpqayp49e6hXrx5QOIgWDKgAg1sNpmFcQ1anrGbu1rn0bdq37BsldHZfq/IKvP6IiICPPnKLH82fD+efD1OnQnR0hd8qOzubwYMHs2PHDh577DHgcA94wcf+9pTm5OQwe/ZsSIQndz5JckYyEWER9GjYgxObnOj+ND2R9nXbE2bCOOfTc/hm9jcwCh6Y/gADmg9gYMuBAGzatImlO5YSeUEkl8+/nMwct2puz4Y9ueOkO/hz5z8TmZsOUwdD2mq3rcup047NIbrF+fBDeOMNt9LuJ59AKfNvRURERKRyKJRWIU2bNiU1NZUtW7YUG0qL9pRGhEVwWdfLeGrOU7y7+F3fQmliiC92VJzYWJgwAU48EWbPJmvECHqvXMl5F1zAo48+WmG3eeaZZ1x4BG677TagcCgNdPjuggULOJB3gMirI0nOSGZoq6F8NeIrakbVLPb8du3awTcwMHwgM3JncOp7p3LfyffRu3Fv7vviPrgVsskmOyebc9qfwx0n3cHAFgMxxkBOBsw8D/YuhLi2MPi7qhNIN28+vNLus89CKfNvRURERKTyaPhuFVJcaClt+C7A6O6jARi3dByHcg6VfRNvT2l1GL5bUOPGbt/S+Hiixo/n5uXLefzf/2blypUVUvz69et54IEHAIiIiGDnzp1A8aG0rOG7ubm53HzzzTz++OMATJo2Ca6A7PhsejTswReXfFFiIAXo2NHNG262uhm39LmFnLwcHpr5EMPHDWdZ1jLIhoE1B7L8luV8fenXDGo5yAXSvByYfQnsmgk1GsOQH6BGUsB/J5XKWrjlFrfS7vnnw/XXB7tGIiIiIuKhUFqFFBdKSxu+C9A1qSs9GvZgb+ZeJq6aWPZNaraC8BqQsRWyjiwvpHXvDhMmkBMRwU3A+9by7tix5S7WWsvNN99MRkYGI0aM4KGHHso/1rx58/zH9erVIzo6mtTUVDIyMkosb9asWbzyyivcd999zF82n2f2PAONoGFkQyaNnER8dHyp9enUqRMAy5ct58WzXmTGlTPoXL8zjaIawfcQ93ocn47+lI71PIte5WTAjikw68+w9WvXMzr4O4hrGfhfSmX74gv4+muoVQtefFEr7YqIiIgcQxRKq5CyQmlxPaUAo7qNAuDd398t+yZh4ZDQyVNgNRrC6zVwIOMuuIBs4FLg0cmTyejWDd5+G0oJiqX59NNPmTx5MomJiTzzzDPceeed9OjRAzgcEAGMMfn/xsnJySWW9/nnnwNgW1pOHXcq+2vuhxSYcNEEGtVqVGZ9Ond2veHLly8nLy+PU1qcwoxLZpDzTA78DE8//H/UN+tg2WNuu5fPasOPp8GWLyGiJgyadHiYd1Xw668wZox7/Pjj4Fk0TERERESODQqlVUhZw3eL6ykFGNl1JOEmnEmrJ5F8sOSwk6+6DuH1+KFGDToBr9aowV6gxpIlcNVVLsz89a+wapXPZaWmpnL77bcD8MQTT9CwYUMiIyOZOnUqkyZN4pRTTil0flmhNC8vj8+//ByGA6MhNSIVkqHFtBb06dDHpzrVqVOHhg0bkp6ezpZVc2HFs+wZdxy//SOZzS/X4Nra98L3fWHx32HnNMjLgto94bg74fRfoJ4Pc5OPBT/9BKef7uYKb98O/fodnlMqIiIiIscMhdIqJNCe0qS4JIa1HUZOXg4fLf2o7BslVMPFjgrYvHkza4DIF16gVWQkVwPpXbq4bWOeeQY6doR33vGprPvuu48dO3bQr18/rr322vzn69Spw5lnnunmahZQVij99ddf2dZkG/SEsNwwmAq8CqeecGrZlcnaB9u+hT/+w3s3wZqnofmCfrDgL7SvnUyLetA0IQOTvc8tYtT2Bjj5U7go2e1B2vM/x34PqbUwZQoMHOhWVP7hB4iLg7vvdnOGw/QjT0RERORYo3doVUhxW4aUNafUa1R3zxDexT4M4a1u28IU4f377devH5dddx1vAVcedxz89huMGuWCz003wdLS/37mzJnDq6++SkREBP/973/z9yMtjfffuKRQ+uYXb8JQ9/je9vfCT0AuDBw4sPgCs1Jh3Tsw/Vz4ogFMPwsW3cWpbXfQJgmy8qLYYvrw5+fhik/7wzmr4PytcN5qOOFVaP4niK5bZr2PCT/9BCedBKedBjNnQkIC3H8/bNzohu1q+xcRERGRY5JCaRVSsKfUWguUvfqu13kdziMhOoH52+ezbFcZPaDe3rAQH747a9Ysxo8fX+g5a23+6rfNmjXj3nvvJTo6mk8//ZQl0dGuh/TKK9380ksugYMHiy07OzubG264AWstf/vb3+jSpfQexr0Ze7n8i8uZX3s+1CocSjOyM9i8bzMLti3g/X3vQxQMbjCYh0Y+RJcuXahRowZDhw49XNihFFj7Fkw7ywXRX66EbRPB5kD9/tD+Vn7KHEnP++D6Hy7msZ+O59O5cFyfsyC+HcQ2DuSvM7jWr3dDdefOhbp14dFHXRh98EGoUyfYtRMRERGRUmif0iokPj6eWrVqkZaWRmpqKrVr1/a5pzQmIoZLOl/Cawte493F7/LEaU+UfKPYZhBRCw4lQ+YuiGlQga/i2HHJJZewY8cOtm/fToMG7jXu2bOHzMxMEhMTiYuLIy4ujuuvv54XXniBBx98kM8++8yt3vrLL/DHH3DbbfDGG0eU/eyzz7JkyRJat27NP/7xj1LrYa3lyq+uZMLKCe6JsTD14FRaPNuC3em7Sc9OP3xyYzCZhvdHvk9YWBgzZsxg3759NG7c2PXgrnoJFt7h5oECmDBIGgLNL4amF+Rv4RJ2aDaLNn5I2NLlpKe78gcNGlSuv8+guuMOyMyECy6A996DmiVviSMiIiIixxb1lFYxReeV+jKn1Ms7hPf9Je+Tm5db8onGFBjCG5rzSjMyMti2bRt5eXmsKrBwkbeX1Pv3DHDPPfcQExPD559/zqJFi1zg+eQTiImBN9+EDz4oVPaGDRv417/+BcArr7xCbGxsqXV5bu5zTFg5gYToBIY2GgoG0uPT2bRvkwukOcB+YAewFi6PuJzGCa43s06dOrRq1Qpys+DXG2D+GBdIk4bCCf+FC7bD0KnQ7sZCe4p6V+BdsmQJK1asIDY2lj59fFso6Zjzww/w5Zfu3+WFFxRIRURERKoYhdIqpmgo9WX1Xa9+zfrRpnYbtqVt48f1P5Z+o/whvKEZSrdv357/eM2aNfmPCw7d9WrcuDE3elZtffDBB92TXbvC88+7xzfeWGhF3scff5yMjAxGjhzJ6aefXmo95m+bz10/3AXAW8Pf4sPzP4RngddwXx8DHoG+P/flseaPsfTupbzzUJFFljJ3wY9DYe3rEB4D/T6AoVOg7fUl9nInJibSuHFjsrOzATj55JOJjIwsta7HpOxs8KxuzD/+oe1eRERERKoghdIqpjw9pcaY/N7SdxaXsXpsiC92tHXr1vzHZYVSgLvvvpsaNWowfvx4Fi5c6J689loYMQIOHIA//zl/H9NZs2YBMMa7N2YJrLXcNvk2svOyubXPrVxw3AXUq1eP7q26E7U7inMHnMvrL73O9u3bmTNnDvfeey+dO3cuvGLv3sUwuQ8kz4IajeHUmdBypE9/B97eUoDBgwf7dM0x55lnYPlyaNMG/vKXYNdGRERERAKgUFrFlBZK09PT83u+SnJ5t8sB+GL5F6QdSiv5RG9PaTULpd6/16KhtGHDhtx0000APPDAA+5JY+C//4W2bWHxYhgzhn379vHHH38QFRVFz549S63Dlyu+5OfNP1M/tj6PDn0UgLCwMBYuXMjEiROZMGEC1157LQ0bNiy+gH3LYepgSN8EdU+EYfOgru9DcDt16pT/uErOJ12/Hrz/Fi+9BNHRQa2OiIiIiARGobSKKboCrzeUxsfHA2X3lrau3ZoBzQeQkZPB58s/L/nEhALDdz0r/YYSf3tKAe666y5iY2OZMGEC8+fPd0/Gx8Nnn7n5pW+8wZaHH8ZaS69evYguJSRl52Zzz5R7AHhg0APER8fnHzPGlD2UNn0bTBsGWXuh8Tlw6nSo0aisl12It6c0Li6O3r17+3Vt0FkLt97qeqdHjIAzzgh2jUREREQkQAqlVUzBUHrgwAHy8vKIjY2lXr16QNnzSgFGdx8NlLFnaUwSRNWB7FTI2Fbeah9zCobS1atX52+xU9xCR15JSUlcddVVAEyaNOnwge7d4eWXAWj/3HN0B/r27VvsfXcd3MVHSz7i8i8vZ3XKatrXbc91va7zr/I5B2HG2Yd7SE/+2M0l9dMpp5xCZGQkF1xwQdWbTzphAkya5PYifeaZYNdGRERERMpBW8JUMd4evC1btuT3iiYmJpKQkACU3VMK8KdOf+LWb29l2oZpbEzdSIvEFkeeZIwbwrtrJqQsgNjQWkBm27bDQXv//v3s3r2b+vXrl9pTCtCxY8cjrgfgqqtg9mwi33iDz4Dfu3YtdHjJziU8/cvTfLjkQ7Jy3XYtBsOTpz1JZLgfgdBa+OVq2LsI4trCwIkQUfrqviXp0KEDGzZsoHbt2gFdHzTWwsMPu8cPPgglDW8WERERkSpBPaVVTMGeUm+vaEJCAomJiYBvPaUJMQkM7zAcgK9WflXyiUlD3deVodcT5e0p9S4atGbNGvLy8vLnlBbXUwpuJV4ovHqvl33+eX4PD6ctMOzjj7E5OUxeM5nT3zudbq924+1Fb5Odm83pbU7n0SGP8tt1v3Fuh3P9q/jyJ2HTJ24f2YETIKaef9cX83pq1KhRrjIq3fffw/z50KABXH99sGsjIiIiIuWkntIqJjExkdjYWPbv35/fq5eQkOBXTynAgOYD+HjZxyzesbjkkzqMgRVPw85p7k9SFV2htRjeUNqjRw8WLlzImjVraNWqFdnZ2dStW7fEvUUbNXLzNo/oKQXWbtvGBbm5LDCGhO+/Z3uDGvzSLYcVPaFm/Zpc3fNqbj/xdtrUaeN/hfNyYcWTsPg+9/1J70LCcf6XEwoee8x9/etfoaoFahERERE5gnpKqxhjTH4v3rJlbg/RxMREv3pKAbomueGlv+/6veSTompDxzvc49//GTILHllr80PlKaecArie0rKG7kLpPaVz5sxhXQe4bEQ06xKh0d4cHpgBG58z7J3el+czBtGmVnP/K3xgHUwdBIvuAZsH3R+FZuf7X04omDULZs50c0k9qyGLiIiISNWmUFoFeUPp0qVuu5ZAekq7NnChdNmuZeTm5ZZ8YsfbIbouJM+G7d+Xo9bHjpSUFA4dOkRCQgI9evQAXCgtaTuYgrzbs+zYsYO8vDwA9uzZw6czPuXupXfDpfBNh0zOfagjU167h9xL/oyJjCTyh6lw0UXQtKnr6fMl4FsLa9+ASd09+5A2gkHfQuf7yvcXUJU9+KD7OmaMW/lYRERERKo8hdIqqGhPacFQ6mtPae0atWkW34yMnAzW7l1b8omR8XDcXe7x7/8Iid5S79DdJk2a0LZtW8CF0oULFwIlzycFiI6Opm7duuTk5LB7924OHjxI06ua8ucf/8z22O2QAWPajmHRzb9z6nX/Jnzcx7Btm1shtlMn2LUL/v53+L//K7WOkbl7Yeb5MPdayDkAzS+Gs5ZA42EV85dQFU2Z4v7Ex8PYscGujYiIiIhUEIXSKsgbmv744w+g8EJHvvaUAnRL6gbA7ztLGcIL0P4WiGkAKfNg69f+V/gYU1woXbZsGU8++SQAF154YanXF5xX+vy058nsnQlA7TW1GbZ6GE9eXGRF3bp1XYhauhTGjXMrG997L0ycWEIFJ9En+WrYOgEiE+Ck96H/x67HurrKy4N73L6u3H23+zsVERERkZCgUFoFeUNpeno64P+WMF4+h9KImtDJM2T09/vdvMZjkLWWUaNGcfXVV5faY+wNpY0bNyYpKYmaNWty8OBBMjIyGDlyJKeeemqp9/HOK12zeQ3/t9j1eHbf3J2U91L49vNviYqKKv5CY+CSS9x2JtbCyJHg6Z3Nl7YWfjqfqLxUSBriekdbXeaurc4++8ytuNuoEdx+e7BrIyIiIiIVSKG0Cio6vNTfLWG8fA6lAO1ugBpNIHUxbP7C53tUppUrV/Lee+/x1ltv0atXL3777bdiz/MuctSkSROMMfm9pXXq1OGZZ8re/sbbU/rfVf8lNScVNsOQ2kN8r+h998GIEZCWBqedBkuWHD62+D7Iy2ZnjSEw5AeoWfL81mohJQX+8Q+45hr3/b/+BTVrBrdOIiIiIlKhFEqroKIL8QSy0BEcXuzIp1AaHgNd/u4eL/mX26LkGDNv3jzArVC8fv16+vfvz3PPPYctMg+24PBdgBNOOAGAp59+mgYNGpR5n8aNG0MbmHpgKsYa+AbatW3ne0WNgbffhrPPhj17YOhQWLECds91e5CGx7Au/gYw1fi/5759blGjVq3g0UfhwAG3UNTVVwe7ZiIiIiJSwarxu96qq2hPaSBbwgC0r9ueqPAo1qeuZ/+h/WVf0PoaqNkC9v0BG8f5UePK4e0Z/ec//8mYMWPIzs5m7NixXHjhhezduzf/vKKh9Omnn2bx4sWMHj3ap/vsrrsbLgWLpemmprCD/N5Wn0VHuyGpp58OyclwxhkwZYw71mEsh8LLDschKS3NrU7cqhU88ADs3w+nngqzZ7u/r8jIMosQERERkapFobQKqlu3LtHR0fnfB9pTGhkeSaf6nQBYumtp2ReER0GX+93jpQ9CXo7vla4E3p7S/v378/zzz/P555+TkJDA+PHj6dmzJ3PnzgWODKVxcXF069bNp3t8s+ob3jzwJkRAq+RW5P3g5tf6HUoBYmLgyy/hpJNg0ya4+zfIrQ2d7vG/rFAwdSq0bu1WJ967F045BaZPhx9+gH79gl07ERERETlKFEqrIGNMod7SQOeUwuF5pUt2LinjTI9WoyCuLaSthvXv+XWvoyknJyd/S5fevXsDbhXdhQsX0qdPHzZu3MjJJ5/MU089VWihI3+s27uOy764jFxy4WeoObMmW7dsJTIystS9TUsVGwsTJkCzWrAJ+G8dCI8LrKyqbM8euOwy2L3bhfQpU1wgHTgw2DUTERERkaOszFBqjGlmjJlmjPnDGLPMGHO75/mPjTGLPH82GGMWeZ5vaYzJKHDs1aP8GqqlgqG06Oq7RedQlqZbAxdKF+9c7NsFYRHQ9V/u8dKHjpmVeJcvX05GRgatW7emboHtQlq1asWsWbMYO3YsOTk53HnnnSQnJxMeHk5SUpLP5WfmZHLxpxez79A+Tmt2GnwPy5Yuy79HRERE4JWPD4c7D0EtYPZaN2y1uhk7FnbuhAEDYNYsN8+2uq84LCIiIlJN+NJTmgPcYa3tBPQFbjHGdLLWXmKt7WGt7QF8DhRcknWt95i19saKr7YU7SmNjIwkNjaW3NxcDh486HM5Hep1AFwvoM9aXOpW4j24AVJ9GPZbCbxDd48//vgjjkVFRfHMM88wfvz4/B7lhg0bEh4e7nP5YyePZcH2BbRKbMW7F74LkB/+27RpU77KbxwH9bLgnz0hLAweeYR6P/1UvjKrkokT4f33oUYNePNN93cgIiIiItVGme/+rLXbrbULPI/TgOVAE+9xY4wB/gx8dLQqKUfyhlJjDLVq1QIIaF5p84TmAGzat8n3m4eFQ9Jg93jXTN+vO4q8ixwVF0q9hg8fzqJFi7jooou46667fC77g98/4L/z/0t0eDSf/fkzGiY2pHbt2vnHA5pPWtDaN93Xi//mFvkButx/v5tT+e674NmPNiStXQtXXukeP/oolPfvUkRERESqHL+6JIwxLYGewNwCTw8AdlprVxd4rpUxZqExZoYxZkD5qylFeUNpfHw8YZ6epUDmlRYMpf4M+6XBKe7rrhm+X3MUldZTWlCLFi347LPPuO2223wq94/kP7h+4vUAPH/m8/Rq1AsoPB+1XKF07++QMg8iE6Hp+XDXXXD33eTGxMBPP8Ho0dC4MdxyC3jmzIaM1FQ45xw3n/Sss8DHfxMRERERCS0+T4QzxsThhumOtdYW3D/kUgr3km4Hmltr9xhjegPjjTGdi1yDMeZ64HqApKQkpk+fHuBLqJoOHDhQrtfsDZ4xMTH55RjPHLxp06aRnJzsUznWWmLDYzmYfZCvp3xNfGS8T9fVyInhRCBr61R+njYtqPP/srOzWbRoEQDp6ekV1pYycjO4acFNpGenc1qD02i3v11+2TExMfnnleee7VOfpDGwNXIgq2d5PusZNoyMXr1o/dtvNPrmG+KXL4eXX4aXXyatXTvWXX89e8sI38e8vDy63X03dVas4EDr1iy85RZyq9OQ5XIq788PqR7UTqQ0ah9SGrUPKahS2oO1tsw/QCTwHfDXIs9HADuBpqVcOx04vrTye/fubaubadOmlev6xYsXW8Aef/zx+c+dfvrpFrDffvutX2V1fqmz5QHsou2LfL8oL8/az5Os/QBrU//w634Vbf78+RawHTp0qLAy8/Ly7KWfXWp5ANv5pc72wKEDhY6PGjXKAhawK1euDOwmBzdb+1GktR+GWbuvcBmF2sfvv1t7223W1q5tLVgbFmbtiy8Gds9jxTPPuNdSv761GzYEuzZVTnl/fkj1oHYipVH7kNKofUhBFdUegHm2hDzoy+q7BngDWG6tfbrI4VOBFdbaLQXOr2+MCfc8bg20A/xYRUd80bVrV1588UVeeOGF/Odq1KgBQGZmpl9lBTSv1Bho4NmuI8jzSlevdiPHO3fuXGFlvjrvVT5a+hE1I2vy6cWfUjOqZqHjjRo1AiAsLIyWLVsGdpPlT0JeNjS7GOLbl3xe167w3HOwbRv84x+Qlwe33go33QR+LGp1zFi9Gu67zz3+3/+gRYvg1kdEREREgsqXOaX9gSuAIQW2eTnLc2wERy5wdArwu2eLmM+AG621KRVVYXGMMdxyyy307ds3/znvkNJKCaVQIJQGd17p9u3bAf/3HS3JxtSNjP1uLAD/O+9/HFf/uCPO8YbSFi1aEBUV5f9NMnfBmtfc4873+XZNTAw8/LBb/CgyEl59Fbp3d3NPq4LkZJg2DUaNgowMuPxyOO+8YNdKRERERIKszDml1tpZQLETBq21Vxbz3Oe4uadSySo/lBZY7MjaoM0r3bFjB3A4KJbX5DWTycrN4rwO5zGiy4hiz/EuNNWuXbvAbrL8ScjNgMbnQO1u/l17xRXQubNbtXbJErdK76WXwr//fWz0Oqanw7Jlrm5Ll7qvS5a4fUi9GjZ0vb8iIiIiUu35vNCRHPu8oTQjI8Ov6/JD6X4/Q2lCJ4iuCxnb4MBaqBWc7Ty8obRhw4YVUt6Mja7n94w2Z5R4zplnnsktt9zCpZde6v8NkufAiqcAA13+GVgle/WCefPcNipPPAEffQTjxrmVeps3h7g417MaEwPR0Ye/NmwI110HSUmB3bc0W7fCxRfDL7+4DymKiouDLl3ccOTbb4c6dSq+DiIiIiJS5SiUhpBA55Q2i28GBNBTasLcEN7NX8DOaUELpd7huxURSq21zNzo5sie0uKUEs+LjY3lxRdf9P8G2Wkw53KweXDc36DeCYFWFaKi4MEH4eqr3RzNjz92wXDr1tKv+/e/YexY+MtfoF69wO9fUGoqDBvmekYjIqBDBxc+vSG0a1fXixvm1y5UIiIiIlINKJSGkEofvguQNMSF0h1Toe11/l9fASpy+O66vevYmraVujXq0ql+p3KXV0jOQfjlajiwDmr3gG4PV0y5LVrABx/AW2+5QLplixtCe+gQZGa6P97HU6bAhAnw2GPw9NNuKPDdd0ObNoHff98+GD7cBdKOHd0c14oKuyIiIiIS8hRKQ0igobRJfBMMhm1p28jJyyEizI9m0fBU93Xnj673z1R+T1hF9pR6e0kHtBhAWEW+lp3T4Jdr4OB6CK8B/T6E8OiKKx9cz2mrVu5PScaMgTlz3IJJ334Lr78O778PjzzihtSGh/t2r+xs+OMP+PRTeOEF2L/fDR2ePFmBVERERET8orF0IcQ7fNffOaVR4VE0qtWIPJvHtrRt/t20Vnuo0QQOJUPqEv+urQDZ2dns3r2bsLAwGjRoUO7yvPNJB7YYWO6yADdc99ebYOoQF0gTu8NpsyHhyBV9K81JJ8GkSbB8OYwc6VbCveMO6NEDnn8eNm+GvXvhwAHXw5qX567LzYVvvoGzz4Zatdz5jz7qAungwa4X9lhYaElEREREqhSF0hASaE8plGMIrzGHe0t3TPX7vuW1a9curLXUr1+fcF97+Urhy3xSn23/Hr7pAmtehbBI6PognPEr1OlZ/rIrQseObtjvxInQpIkbfnv77W6hpDp1XPCMiXG9p+HhUKMGnHOOC7SHDrkhvyNHwuzZ8OOPcFwQg7aIiIiIVFkKpSEkKKEUoOFQ93Vn5YfSipxPunnfZtanric+Op7uSd0DLyh7P8y9FqadAemboE5vGDYfut4P4QHsaXq0nX02rFnjFkoaNswNv01IgNhYtx8quN7S7Gw3NPiJJ9z2LmvWuFDbr19w6y8iIiIiVZrmlIaQQLeEAWgeX57FjjyhdNdMyMt2vYKV5GjMJz25+cmEhwXY65qXAzPPd3NIw6Jc7+hxd4I/83SDISYG/vxn96coa93Q3exsd16Q9qMVERERkdCkntIQUnRLmNzcXJ577jmWLl1a5rXl6imNbQzxx0HOAdjzq//Xl0NF7lE6bcM0oJzzSRff5wJpTEM4cyF0vufYD6RlMcZt81KjhgKpiIiIiFQ4hdIQUnT47s8//8zYsWP529/+Vua13lC6ef/mwG7uHcK7+YvArg+Qt6e0Iobv/rj+RwCGthoaWAGbv4Dl/wETDid/AgkVvKWMiIiIiEgIUigNIUWH7+7ZsweALVu2lHmtN5RuTN0Y2M1bjXZf17wGWXsDKyMAFdVTun7vetanricxJpEeDXv4X0B2Gvx6g3vc8z/QYEC56iMiIiIiUl0olIaQosN309PTAbdCbVlaJLqtPDakbsBa6//N6x7vVuHNOQCrX/H/+gBVVE+pd+juoJaDAptPuuIZOLQb6vWDDmPLVRcRERERkepEoTSEFB2+6w2lu3fvJjc3t9Rr69SoQ2JMImlZaSSnJwdWgU73uK8rnoUc/xdbCkRF9ZR6h+4OaTnE/4szd8PyJ93jHv/WvEsRERERET8olIaQosN3Dx48CEBeXh4pKSllXt+mdhsA1qasDawCSUOgzvFwKBnWvRlYGX6qiC1hrLWHQ2mrAELpH49DTho0GgYNKmB/UxERERGRakShNISUNHwXYOfOnWVe36aOJ5TuDTCUGgOd7naPV73gthI5iqy1FbIlzMo9K9l+YDtJNZPoVN/PxYkytsOqF93j7o8FXAcRERERkepKoTSElDR8F3ybV1runlKApudDjUawfyUk/xR4OT7Yv38/mZmZ1KxZk7i4uIDLKdhLavwderviGcg7BE0vgDo9A66DiIiIiEh1pVAaQioslAbaUwpuT87W17jHa14LvBwfVNQiR9+s/gaAwS0H+3dh1t7Dizp1vrdcdRARERERqa4USkNISXNKwcdQWt7hu/kFXQMY2PQZHCp7LmugKmKRo3V71/Ht6m+JCo9ieMfh/l286iW32nDSUKjbJ+A6iIiIiIhUZwqlIaRgT6m1NuCe0jUpa8pXkbiW0Oh0N6x1/XvlK6sUFdFT+vJvL2OxjOgyggY1G/h+YU46rHzOPVYvqYiIiIhIwBRKQ0h4eDiRkZFYa8nOzvY7lDaJb0J0eDS7Du4i7VBa+SrT5jr3deVzkFH2Ikv+ysjIYO7cuUDgPaUHsw7yxsI3ABhzwhj/Lt70iduXtE4ft+qwiIiIiIgERKE0xBQcwltw+K4vq++GmTBa1W4FuGGt5dL0PEjoBAfXw5QBcHBj+cor4NVXX6V+/fo895zrqWzVqlVA5Xyw5ANSM1M5scmJHN/4eP8u3vix+9rmGu1LKiIiIiJSDgqlIabgtjD+9pRCBS12BBAWCUOnQe0ekLYafjgZ9q0oX5keL730EgcPHqRnz5489thj3HDDDX6XYa3lpd9eAgLoJT20B3ZMARMOzS7y+94iIiIiInJYRLArIBWr4LzScoXS8mwLk1+ZBjB0Osw4B5JnuR7TQd9CXT97JQvIzc1l9erVAEyfPp34+PiAypm3bR6/7/yderH1+FOnP/l38eYvweZAw9Mhpl5A9xcREREREUc9pSGm4PDdQEJp2zptgQroKfWKSoDB30GjM90czKmDYef0gIvbtGkThw4dolGjRgEHUoA3F74JwBXdriA6ItrPSniG7ra4JOD7i4iIiIiIo1AaYgr2lBacU3rgwIFCIbUkFbYtTEERsXDKeGgxwm2hMm0YbJkQUFErV64EoEOHDgFXJz07nQ+XfgjA1T2v9u/izF2w80c3PLnZBQHXQUREREREHIXSEFPcnNLoaNcTmJycXOb1FbYtTFHhUXDS+9D2RrdVzE8Xwpav/C7GG0o7duwYcFW+XP4l+w/t54QmJ9ClQRf/Ll7zGtg8N3Q3qnbAdRAREREREUehNMQUN3y3ZcuWgG9DeFsmtsRg2LRvE1m5WRVbubBw6PMyHHcX2FxYfB9Y61cRK1a4xZLK01P65iI3dPfqHn72kq59C37/p3vc1v/FlURERERE5EgKpSGmuFDaokULwLdtYaIjommW0Iw8m8emfZsqvoLGQPdHICYJ9v0Bu3/26/LyDN89kHWA2769jR/X/0iNiBqM6DLC94s3fARzr3GPez4FTc/1+/4iIiIiInIkhdIQ4x2+m5qairWW6OhoGjVqBPi+2FHLxJYAbEytuL1FC7ImgpU5/d03q//r17WBhtIp66bQ9ZWuvPDrC0SERfCf0/5DQkyCbxdv/gLmXAFY6PYIHPdXv+4tIiIiIiIlUygNMd6e0j179gBQs2ZNGjRoAPgeSlskuJ7VDakbAqrDmjVryMzMLPH4e++9x5m3fuG+2fQJHErxqdy0tDS2bdtGdHR0fu9vWVIzU7l2wrWc9t5pbEjdQM+GPfntut+45YRbfLqerd/A7BFuuHHnv0OXv/t2nYiIiIiI+EShNMR4Q2lKigt6sbGxfodSb09pIKF0yZIltGvXjptvvrnEcz799FPWJ8NPa2q4RY82vO9T2atWrQKgbdu2hIeHl3n+1yu/pvPLnXlj4RtEhUfx2JDHmHvtXHo07OHT/dgxBX66CPKyoeNfodvDvl0nIiIiIiI+UygNMd7huxURSjfu83/4rnd47cKFC4s9fuDAAX744QcAnp2Y4Z5c+6ZfZZe18u7u9N2M/Hwk5407j21p2zip6UksumER9w64l8jwSJ/uxa6ZMOM8F5rb3Qw9n3TzYUVEREREpEJFBLsCUrEqYvhueXpK9+3bB8CWLVuKPf79999z6NAhACYuhFyiCE9d7Pb/jGlQatm+rLz75fIvuWHiDSSnJxMbGcujQx5lzAljCA8ru2c138HNMP1syM2ANtfA8S8okIqIiIiIHCXqKQ0xRUNpbGwsSUlJgG+r70L55pSmpqYCsHv37mLnlY4fPx6AxMREsnJg/YEm7sDO6WWWXdYiRyt2r+BPn/6J5PRkBrcczJKbljC271j/AinAurcg5wA0GgZ9/gtG/01ERERERI4WvdsOMRUxp7RZQjMMhq1pW8nOzfbr/t6eUoBt27YVOpaTk8M333wDwD333APAjBWeJrjzxzLLLiuUPjzzYfJsHqO7j2bqqKm0rt3ar7oDbt/U9e+6xx3/4vZWFRERERGRo0ahNMR455QW7CmtX78+AMnJyeTl5ZVZRlR4FE3im5Bn89iyv/hhuCUpGEqLDuGdNWsWKSkpdOjQgVGjRgHw0dTt7uDOaaWWm5eXl7/QUXGhdMXuFXy05CMiwyJ5aPBDmECH2+6eAwfWQo1GkDQ0sDJERERERMRnCqUhprg5pVFRUSQmJpKbm8vevXt9KifQIbylhVLv0N3hw4fTqFEjWrRowYxl6eSGxULaKkgv3LNa0JYtW8jIyKBBgwYkJiYecfzhmQ9jsVzT8xqaJzT3q86FeHtJW16uXlIRERERkUqgUBpivKHUO7czNjYWoNIWOyoplFpr+eqrrwA4//zzATjxxBPJyYVt2Z5htqX0lnoXOSpu5d1Ve1bl95LeO+Bev+pbSG4mbPzYPW41KvByRERERETEZwqlIcY7fNervKHU321hSgqlS5YsYcOGDSQlJXHiiScC0LdvXwB+We/qWNq80tLmk45bOg6LZWTXkeXrJd0yAbJToXYvSOwSeDkiIiIiIuIzhdIQ4+0p9fKGUn9X4K3onlLv0N1zzz2XsDDX7Lyh9IvZblGm0npKSwul41e4si/udLFfdT3Cqhfd19ZXla8cERERERHxmUJpiCkaSmvWrAn431Na0XNKiw7dBWjTpg0AUxekQGQiHFwP+1cVW25JoXTTvk0s3LGQmpE1Gdq6HAsTpSyA5J8gMh5ajw68HBERERER8YtCaYip6OG7FRFKN23axIIFC6hZsyZDhx4OjrVr1wZgT0oqtsk57slNnxRbbkmh9KsVLuwOazuMmIiYI67z2crn3NfW10BkrcDLERERERERvyiUhpiShu/6G0q9czO37N9CTl6OT9dYa/MXWDLGsGPHDrKzs5kwYQIAZ5xxRqH6RUZGEh8fT15eHgfqekKpd6GhAg4ePMjmzZuJjIykVatWhY6NXzkegPM7nu9THYuVsQM2jgMTBh3GBF6OiIiIiIj4TaE0xFRUKI2OiKZxrcbk2ly27t/q0zUZGRnk5OQQHR1No0aNsNayffv2YofuetWtWxeAnaYrRNWGfUshdVmhc7z7k7Zp04aIiIj851MyUpixYQbhJpyz253tUx2LtepFyMuCJudBXKuyzxcRERERkQqjUBpiKmpOKfg/r9Q7dDcxMZEmTZoAsHTpUqZPn054eDhnn31kcPSG0j1706DpBe7JTYV7S71Dd4tuB/PNqm/ItbkMajmI2jVq+/aiikpdCsv/4x53vCOwMkREREREJGAKpSGmpDml/q6+C9CxnguBE1dN9Ol8byhNSEigadOmALz++uvk5OQwYMAA6tSpc8Q13lCakpICLS5xT278GKzNP6ek+aTvL3kfgAs6XuDrSyosLxvmjHK9pG2vhwYnB1aOiIiIiIgETKE0xFTU8F2AW/rcAsDL815m18GyrysulHrnkxY3dBfID6p79uyBpCEQXQ/SVkHq4vxzigulG1M38sPaH4gOj+bSrpf6/JoKWfoo7F0INVtCzycDK0NERERERMpFoTTElDR8NzExkYiICPbv309mZqZPZfVu3Jtz2p9DenY6T/5cdmgrLpTm5eUBMHz48GKvyR++u2cPhEVAsz+5AwUWPCoulL696G0slguOu4A6NY7sgS1TVios/z/3uO9bWnFXRERERCRIFEpDTEnDd40x+b2lycnJPpf3r4H/AuCl314i+WDp1xUXSgG6detGy5Yti72mUCiFI4bwWmuPCKV5No+3Fr0FwDU9r/H5tRSy8SPIzXC9s0mDAitDRERERETKTaE0xERHRxf63htKIbAhvMc3Pp6z251NenY6T815qtRzSwqlJQ3dhSJzSgHqD4CYhnBwPaTMY+vWrRw8eJC6devmnzt13VQ27ttIy8SWDGk1xOfXUsjaN9zXNgGGWhERERERqRAKpSEmLCyMqKio/O/LG0rhcG/pi7++yO703SWeV1IoLWnoLhSZUwoQFg7NL3aPN44rduXdl+e9DMBVPa4izATQhPcuhpT5EJl4eMVfEREREREJCoXSEFRwXql3TikcDqVFV+DdtGkTubm5JZbXp0kfzmp3Fgez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\n",
"text/plain": [
"<Figure size 1152x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"watch.load(\"SPY\", plot=True, mas=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Easy to swap Strategies and run them"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Running Simple Strategy A"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Strategy(name='A', ta=[{'kind': 'sma', 'length': 50}, {'kind': 'sma', 'length': 200}], description='TA Description', created='02/22/2021, 10:20:59')"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Load custom_a into Watchlist and verify\n",
"watch.strategy = custom_a\n",
"# watch.debug = True\n",
"watch.strategy"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Loaded IWM[D]: IWM_D.csv\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>open</th>\n",
" <th>high</th>\n",
" <th>low</th>\n",
" <th>close</th>\n",
" <th>volume</th>\n",
" <th>SMA_50</th>\n",
" <th>SMA_200</th>\n",
" </tr>\n",
" <tr>\n",
" <th>date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2000-05-26</th>\n",
" <td>91.06</td>\n",
" <td>91.44</td>\n",
" <td>90.630</td>\n",
" <td>91.44</td>\n",
" <td>37400.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-05-30</th>\n",
" <td>92.75</td>\n",
" <td>94.81</td>\n",
" <td>92.750</td>\n",
" <td>94.81</td>\n",
" <td>28800.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-05-31</th>\n",
" <td>95.13</td>\n",
" <td>96.38</td>\n",
" <td>95.130</td>\n",
" <td>95.75</td>\n",
" <td>18000.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-06-01</th>\n",
" <td>97.11</td>\n",
" <td>97.31</td>\n",
" <td>97.110</td>\n",
" <td>97.31</td>\n",
" <td>3500.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-06-02</th>\n",
" <td>101.70</td>\n",
" <td>102.40</td>\n",
" <td>101.700</td>\n",
" <td>102.40</td>\n",
" <td>14700.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-12</th>\n",
" <td>225.93</td>\n",
" <td>227.74</td>\n",
" <td>224.640</td>\n",
" <td>227.26</td>\n",
" <td>17440191.0</td>\n",
" <td>204.7470</td>\n",
" <td>164.50945</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-16</th>\n",
" <td>229.47</td>\n",
" <td>229.63</td>\n",
" <td>224.790</td>\n",
" <td>225.83</td>\n",
" <td>22999508.0</td>\n",
" <td>205.6058</td>\n",
" <td>164.98705</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-17</th>\n",
" <td>223.61</td>\n",
" <td>224.74</td>\n",
" <td>220.960</td>\n",
" <td>224.06</td>\n",
" <td>24950507.0</td>\n",
" <td>206.4086</td>\n",
" <td>165.48165</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-18</th>\n",
" <td>222.34</td>\n",
" <td>222.90</td>\n",
" <td>219.385</td>\n",
" <td>220.59</td>\n",
" <td>24501509.0</td>\n",
" <td>207.0564</td>\n",
" <td>165.95620</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-19</th>\n",
" <td>222.46</td>\n",
" <td>226.30</td>\n",
" <td>222.170</td>\n",
" <td>225.19</td>\n",
" <td>31238155.0</td>\n",
" <td>207.7926</td>\n",
" <td>166.44890</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5216 rows × 7 columns</p>\n",
"</div>"
],
"text/plain": [
" open high low close volume SMA_50 SMA_200\n",
"date \n",
"2000-05-26 91.06 91.44 90.630 91.44 37400.0 NaN NaN\n",
"2000-05-30 92.75 94.81 92.750 94.81 28800.0 NaN NaN\n",
"2000-05-31 95.13 96.38 95.130 95.75 18000.0 NaN NaN\n",
"2000-06-01 97.11 97.31 97.110 97.31 3500.0 NaN NaN\n",
"2000-06-02 101.70 102.40 101.700 102.40 14700.0 NaN NaN\n",
"... ... ... ... ... ... ... ...\n",
"2021-02-12 225.93 227.74 224.640 227.26 17440191.0 204.7470 164.50945\n",
"2021-02-16 229.47 229.63 224.790 225.83 22999508.0 205.6058 164.98705\n",
"2021-02-17 223.61 224.74 220.960 224.06 24950507.0 206.4086 165.48165\n",
"2021-02-18 222.34 222.90 219.385 220.59 24501509.0 207.0564 165.95620\n",
"2021-02-19 222.46 226.30 222.170 225.19 31238155.0 207.7926 166.44890\n",
"\n",
"[5216 rows x 7 columns]"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"watch.load(\"IWM\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Running Simple Strategy B"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Strategy(name='B', ta=[{'kind': 'ema', 'length': 8}, {'kind': 'ema', 'length': 21}, {'kind': 'log_return', 'cumulative': True}, {'kind': 'rsi'}, {'kind': 'supertrend'}], description='TA Description', created='02/22/2021, 10:20:59')"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Load custom_b into Watchlist and verify\n",
"watch.strategy = custom_b\n",
"watch.strategy"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Loaded SPY[D]: SPY_D.csv\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>open</th>\n",
" <th>high</th>\n",
" <th>low</th>\n",
" <th>close</th>\n",
" <th>volume</th>\n",
" <th>EMA_8</th>\n",
" <th>EMA_21</th>\n",
" <th>CUMLOGRET_1</th>\n",
" <th>RSI_14</th>\n",
" <th>SUPERT_7_3.0</th>\n",
" <th>SUPERTd_7_3.0</th>\n",
" <th>SUPERTl_7_3.0</th>\n",
" <th>SUPERTs_7_3.0</th>\n",
" </tr>\n",
" <tr>\n",
" <th>date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1999-11-01</th>\n",
" <td>136.5000</td>\n",
" <td>137.0000</td>\n",
" <td>135.5625</td>\n",
" <td>135.5625</td>\n",
" <td>4006500.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.000000</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1999-11-02</th>\n",
" <td>135.9687</td>\n",
" <td>137.2500</td>\n",
" <td>134.5937</td>\n",
" <td>134.5937</td>\n",
" <td>6516900.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>-0.007172</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1999-11-03</th>\n",
" <td>136.0000</td>\n",
" <td>136.3750</td>\n",
" <td>135.1250</td>\n",
" <td>135.5000</td>\n",
" <td>7222300.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>-0.000461</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1999-11-04</th>\n",
" <td>136.7500</td>\n",
" <td>137.3593</td>\n",
" <td>135.7656</td>\n",
" <td>136.5312</td>\n",
" <td>7907500.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.007120</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1999-11-05</th>\n",
" <td>138.6250</td>\n",
" <td>139.1093</td>\n",
" <td>136.7812</td>\n",
" <td>137.8750</td>\n",
" <td>7431500.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.016915</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-12</th>\n",
" <td>389.8500</td>\n",
" <td>392.9000</td>\n",
" <td>389.7700</td>\n",
" <td>392.6400</td>\n",
" <td>50593270.0</td>\n",
" <td>388.567131</td>\n",
" <td>383.668836</td>\n",
" <td>1.063460</td>\n",
" <td>66.608891</td>\n",
" <td>378.883779</td>\n",
" <td>1</td>\n",
" <td>378.883779</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-16</th>\n",
" <td>393.9600</td>\n",
" <td>394.1700</td>\n",
" <td>391.5300</td>\n",
" <td>392.3000</td>\n",
" <td>50972366.0</td>\n",
" <td>389.396657</td>\n",
" <td>384.453487</td>\n",
" <td>1.062594</td>\n",
" <td>65.914662</td>\n",
" <td>381.046096</td>\n",
" <td>1</td>\n",
" <td>381.046096</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-17</th>\n",
" <td>390.4200</td>\n",
" <td>392.6600</td>\n",
" <td>389.3300</td>\n",
" <td>392.3900</td>\n",
" <td>51746878.0</td>\n",
" <td>390.061845</td>\n",
" <td>385.174988</td>\n",
" <td>1.062823</td>\n",
" <td>66.015633</td>\n",
" <td>381.046096</td>\n",
" <td>1</td>\n",
" <td>381.046096</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-18</th>\n",
" <td>389.5900</td>\n",
" <td>391.5150</td>\n",
" <td>387.7400</td>\n",
" <td>390.7200</td>\n",
" <td>59712773.0</td>\n",
" <td>390.208101</td>\n",
" <td>385.679080</td>\n",
" <td>1.058558</td>\n",
" <td>62.326199</td>\n",
" <td>381.046096</td>\n",
" <td>1</td>\n",
" <td>381.046096</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-19</th>\n",
" <td>392.0700</td>\n",
" <td>392.3800</td>\n",
" <td>389.5500</td>\n",
" <td>390.0300</td>\n",
" <td>83240971.0</td>\n",
" <td>390.168523</td>\n",
" <td>386.074619</td>\n",
" <td>1.056791</td>\n",
" <td>60.813916</td>\n",
" <td>381.046096</td>\n",
" <td>1</td>\n",
" <td>381.046096</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5360 rows × 13 columns</p>\n",
"</div>"
],
"text/plain": [
" open high low close volume EMA_8 \\\n",
"date \n",
"1999-11-01 136.5000 137.0000 135.5625 135.5625 4006500.0 NaN \n",
"1999-11-02 135.9687 137.2500 134.5937 134.5937 6516900.0 NaN \n",
"1999-11-03 136.0000 136.3750 135.1250 135.5000 7222300.0 NaN \n",
"1999-11-04 136.7500 137.3593 135.7656 136.5312 7907500.0 NaN \n",
"1999-11-05 138.6250 139.1093 136.7812 137.8750 7431500.0 NaN \n",
"... ... ... ... ... ... ... \n",
"2021-02-12 389.8500 392.9000 389.7700 392.6400 50593270.0 388.567131 \n",
"2021-02-16 393.9600 394.1700 391.5300 392.3000 50972366.0 389.396657 \n",
"2021-02-17 390.4200 392.6600 389.3300 392.3900 51746878.0 390.061845 \n",
"2021-02-18 389.5900 391.5150 387.7400 390.7200 59712773.0 390.208101 \n",
"2021-02-19 392.0700 392.3800 389.5500 390.0300 83240971.0 390.168523 \n",
"\n",
" EMA_21 CUMLOGRET_1 RSI_14 SUPERT_7_3.0 SUPERTd_7_3.0 \\\n",
"date \n",
"1999-11-01 NaN NaN NaN 0.000000 1 \n",
"1999-11-02 NaN -0.007172 NaN NaN 1 \n",
"1999-11-03 NaN -0.000461 NaN NaN 1 \n",
"1999-11-04 NaN 0.007120 NaN NaN 1 \n",
"1999-11-05 NaN 0.016915 NaN NaN 1 \n",
"... ... ... ... ... ... \n",
"2021-02-12 383.668836 1.063460 66.608891 378.883779 1 \n",
"2021-02-16 384.453487 1.062594 65.914662 381.046096 1 \n",
"2021-02-17 385.174988 1.062823 66.015633 381.046096 1 \n",
"2021-02-18 385.679080 1.058558 62.326199 381.046096 1 \n",
"2021-02-19 386.074619 1.056791 60.813916 381.046096 1 \n",
"\n",
" SUPERTl_7_3.0 SUPERTs_7_3.0 \n",
"date \n",
"1999-11-01 NaN NaN \n",
"1999-11-02 NaN NaN \n",
"1999-11-03 NaN NaN \n",
"1999-11-04 NaN NaN \n",
"1999-11-05 NaN NaN \n",
"... ... ... \n",
"2021-02-12 378.883779 NaN \n",
"2021-02-16 381.046096 NaN \n",
"2021-02-17 381.046096 NaN \n",
"2021-02-18 381.046096 NaN \n",
"2021-02-19 381.046096 NaN \n",
"\n",
"[5360 rows x 13 columns]"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"watch.load(\"SPY\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Running Bad Strategy. (Misspelled indicator)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Strategy(name='Runtime Failure', ta=[{'kind': 'percet_return'}], description='TA Description', created='02/22/2021, 10:20:59')"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Load custom_run_failure into Watchlist and verify\n",
"watch.strategy = custom_run_failure\n",
"watch.strategy"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Loaded IWM[D]: IWM_D.csv\n",
"[X] Oops! 'AnalysisIndicators' object has no attribute 'percet_return'\n"
]
}
],
"source": [
"try:\n",
" iwm = watch.load(\"IWM\")\n",
"except AttributeError as error:\n",
" print(f\"[X] Oops! {error}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Indicator Composition/Chaining\n",
"- When you need an indicator to depend on the value of a prior indicator\n",
"- Utilitze _prefix_ or _suffix_ to help identify unique columns or avoid column name clashes."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Volume MAs and MA chains"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Strategy(name='Volume MAs and Price MA chain', ta=[{'kind': 'ema', 'close': 'volume', 'length': 10, 'prefix': 'VOLUME'}, {'kind': 'sma', 'close': 'volume', 'length': 20, 'prefix': 'VOLUME'}, {'kind': 'ema', 'length': 5}, {'kind': 'linreg', 'close': 'EMA_5', 'length': 8, 'prefix': 'EMA_5'}], description='TA Description', created='02/22/2021, 10:20:59')"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Set EMA's and SMA's 'close' to 'volume' to create Volume MAs, prefix 'volume' MAs with 'VOLUME' so easy to identify the column\n",
"# Take a price EMA and apply LINREG from EMA's output\n",
"volmas_price_ma_chain = [\n",
" {\"kind\":\"ema\", \"close\": \"volume\", \"length\": 10, \"prefix\": \"VOLUME\"},\n",
" {\"kind\":\"sma\", \"close\": \"volume\", \"length\": 20, \"prefix\": \"VOLUME\"},\n",
" {\"kind\":\"ema\", \"length\": 5},\n",
" {\"kind\":\"linreg\", \"close\": \"EMA_5\", \"length\": 8, \"prefix\": \"EMA_5\"},\n",
"]\n",
"vp_ma_chain_ta = ta.Strategy(\"Volume MAs and Price MA chain\", volmas_price_ma_chain)\n",
"vp_ma_chain_ta"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'Volume MAs and Price MA chain'"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Update the Watchlist\n",
"watch.strategy = vp_ma_chain_ta\n",
"watch.strategy.name"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Loaded SPY[D]: SPY_D.csv\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>open</th>\n",
" <th>high</th>\n",
" <th>low</th>\n",
" <th>close</th>\n",
" <th>volume</th>\n",
" <th>VOLUME_EMA_10</th>\n",
" <th>VOLUME_SMA_20</th>\n",
" <th>EMA_5</th>\n",
" <th>EMA_5_LR_8</th>\n",
" </tr>\n",
" <tr>\n",
" <th>date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1999-11-01</th>\n",
" <td>136.5000</td>\n",
" <td>137.0000</td>\n",
" <td>135.5625</td>\n",
" <td>135.5625</td>\n",
" <td>4006500.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1999-11-02</th>\n",
" <td>135.9687</td>\n",
" <td>137.2500</td>\n",
" <td>134.5937</td>\n",
" <td>134.5937</td>\n",
" <td>6516900.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1999-11-03</th>\n",
" <td>136.0000</td>\n",
" <td>136.3750</td>\n",
" <td>135.1250</td>\n",
" <td>135.5000</td>\n",
" <td>7222300.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1999-11-04</th>\n",
" <td>136.7500</td>\n",
" <td>137.3593</td>\n",
" <td>135.7656</td>\n",
" <td>136.5312</td>\n",
" <td>7907500.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1999-11-05</th>\n",
" <td>138.6250</td>\n",
" <td>139.1093</td>\n",
" <td>136.7812</td>\n",
" <td>137.8750</td>\n",
" <td>7431500.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>136.012480</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-12</th>\n",
" <td>389.8500</td>\n",
" <td>392.9000</td>\n",
" <td>389.7700</td>\n",
" <td>392.6400</td>\n",
" <td>50593270.0</td>\n",
" <td>5.323217e+07</td>\n",
" <td>64453086.30</td>\n",
" <td>390.269025</td>\n",
" <td>389.537374</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-16</th>\n",
" <td>393.9600</td>\n",
" <td>394.1700</td>\n",
" <td>391.5300</td>\n",
" <td>392.3000</td>\n",
" <td>50972366.0</td>\n",
" <td>5.282130e+07</td>\n",
" <td>61643706.50</td>\n",
" <td>390.946016</td>\n",
" <td>390.380948</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-17</th>\n",
" <td>390.4200</td>\n",
" <td>392.6600</td>\n",
" <td>389.3300</td>\n",
" <td>392.3900</td>\n",
" <td>51746878.0</td>\n",
" <td>5.262595e+07</td>\n",
" <td>61669385.40</td>\n",
" <td>391.427344</td>\n",
" <td>391.019719</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-18</th>\n",
" <td>389.5900</td>\n",
" <td>391.5150</td>\n",
" <td>387.7400</td>\n",
" <td>390.7200</td>\n",
" <td>59712773.0</td>\n",
" <td>5.391446e+07</td>\n",
" <td>61563220.95</td>\n",
" <td>391.191563</td>\n",
" <td>391.285765</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-19</th>\n",
" <td>392.0700</td>\n",
" <td>392.3800</td>\n",
" <td>389.5500</td>\n",
" <td>390.0300</td>\n",
" <td>83240971.0</td>\n",
" <td>5.924655e+07</td>\n",
" <td>63327479.05</td>\n",
" <td>390.804375</td>\n",
" <td>391.300272</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5360 rows × 9 columns</p>\n",
"</div>"
],
"text/plain": [
" open high low close volume VOLUME_EMA_10 \\\n",
"date \n",
"1999-11-01 136.5000 137.0000 135.5625 135.5625 4006500.0 NaN \n",
"1999-11-02 135.9687 137.2500 134.5937 134.5937 6516900.0 NaN \n",
"1999-11-03 136.0000 136.3750 135.1250 135.5000 7222300.0 NaN \n",
"1999-11-04 136.7500 137.3593 135.7656 136.5312 7907500.0 NaN \n",
"1999-11-05 138.6250 139.1093 136.7812 137.8750 7431500.0 NaN \n",
"... ... ... ... ... ... ... \n",
"2021-02-12 389.8500 392.9000 389.7700 392.6400 50593270.0 5.323217e+07 \n",
"2021-02-16 393.9600 394.1700 391.5300 392.3000 50972366.0 5.282130e+07 \n",
"2021-02-17 390.4200 392.6600 389.3300 392.3900 51746878.0 5.262595e+07 \n",
"2021-02-18 389.5900 391.5150 387.7400 390.7200 59712773.0 5.391446e+07 \n",
"2021-02-19 392.0700 392.3800 389.5500 390.0300 83240971.0 5.924655e+07 \n",
"\n",
" VOLUME_SMA_20 EMA_5 EMA_5_LR_8 \n",
"date \n",
"1999-11-01 NaN NaN NaN \n",
"1999-11-02 NaN NaN NaN \n",
"1999-11-03 NaN NaN NaN \n",
"1999-11-04 NaN NaN NaN \n",
"1999-11-05 NaN 136.012480 NaN \n",
"... ... ... ... \n",
"2021-02-12 64453086.30 390.269025 389.537374 \n",
"2021-02-16 61643706.50 390.946016 390.380948 \n",
"2021-02-17 61669385.40 391.427344 391.019719 \n",
"2021-02-18 61563220.95 391.191563 391.285765 \n",
"2021-02-19 63327479.05 390.804375 391.300272 \n",
"\n",
"[5360 rows x 9 columns]"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spy = watch.load(\"SPY\")\n",
"spy"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### MACD BBANDS"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Strategy(name='MACD BBands', ta=[{'kind': 'macd'}, {'kind': 'bbands', 'close': 'MACD_12_26_9', 'length': 20, 'prefix': 'MACD'}], description='BBANDS_20 applied to MACD', created='02/22/2021, 10:20:59')"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# MACD is the initial indicator that BBANDS depends on.\n",
"# Set BBANDS's 'close' to MACD's main signal, in this case 'MACD_12_26_9' and add a prefix (or suffix) so it's easier to identify\n",
"macd_bands_ta = [\n",
" {\"kind\":\"macd\"},\n",
" {\"kind\":\"bbands\", \"close\": \"MACD_12_26_9\", \"length\": 20, \"prefix\": \"MACD\"}\n",
"]\n",
"macd_bands_ta = ta.Strategy(\"MACD BBands\", macd_bands_ta, f\"BBANDS_{macd_bands_ta[1]['length']} applied to MACD\")\n",
"macd_bands_ta"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'MACD BBands'"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Update the Watchlist\n",
"watch.strategy = macd_bands_ta\n",
"watch.strategy.name"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Loaded SPY[D]: SPY_D.csv\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>open</th>\n",
" <th>high</th>\n",
" <th>low</th>\n",
" <th>close</th>\n",
" <th>volume</th>\n",
" <th>MACD_12_26_9</th>\n",
" <th>MACDh_12_26_9</th>\n",
" <th>MACDs_12_26_9</th>\n",
" <th>MACD_BBL_20_2.0</th>\n",
" <th>MACD_BBM_20_2.0</th>\n",
" <th>MACD_BBU_20_2.0</th>\n",
" <th>MACD_BBB_20_2.0</th>\n",
" </tr>\n",
" <tr>\n",
" <th>date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1999-11-01</th>\n",
" <td>136.5000</td>\n",
" <td>137.0000</td>\n",
" <td>135.5625</td>\n",
" <td>135.5625</td>\n",
" <td>4006500.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1999-11-02</th>\n",
" <td>135.9687</td>\n",
" <td>137.2500</td>\n",
" <td>134.5937</td>\n",
" <td>134.5937</td>\n",
" <td>6516900.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1999-11-03</th>\n",
" <td>136.0000</td>\n",
" <td>136.3750</td>\n",
" <td>135.1250</td>\n",
" <td>135.5000</td>\n",
" <td>7222300.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1999-11-04</th>\n",
" <td>136.7500</td>\n",
" <td>137.3593</td>\n",
" <td>135.7656</td>\n",
" <td>136.5312</td>\n",
" <td>7907500.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1999-11-05</th>\n",
" <td>138.6250</td>\n",
" <td>139.1093</td>\n",
" <td>136.7812</td>\n",
" <td>137.8750</td>\n",
" <td>7431500.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-12</th>\n",
" <td>389.8500</td>\n",
" <td>392.9000</td>\n",
" <td>389.7700</td>\n",
" <td>392.6400</td>\n",
" <td>50593270.0</td>\n",
" <td>4.527226</td>\n",
" <td>0.793346</td>\n",
" <td>3.733880</td>\n",
" <td>1.718321</td>\n",
" <td>3.505669</td>\n",
" <td>5.293017</td>\n",
" <td>101.969021</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-16</th>\n",
" <td>393.9600</td>\n",
" <td>394.1700</td>\n",
" <td>391.5300</td>\n",
" <td>392.3000</td>\n",
" <td>50972366.0</td>\n",
" <td>4.636231</td>\n",
" <td>0.721881</td>\n",
" <td>3.914350</td>\n",
" <td>1.692525</td>\n",
" <td>3.545522</td>\n",
" <td>5.398519</td>\n",
" <td>104.526067</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-17</th>\n",
" <td>390.4200</td>\n",
" <td>392.6600</td>\n",
" <td>389.3300</td>\n",
" <td>392.3900</td>\n",
" <td>51746878.0</td>\n",
" <td>4.675979</td>\n",
" <td>0.609303</td>\n",
" <td>4.066676</td>\n",
" <td>1.671804</td>\n",
" <td>3.591144</td>\n",
" <td>5.510485</td>\n",
" <td>106.892975</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-18</th>\n",
" <td>389.5900</td>\n",
" <td>391.5150</td>\n",
" <td>387.7400</td>\n",
" <td>390.7200</td>\n",
" <td>59712773.0</td>\n",
" <td>4.520614</td>\n",
" <td>0.363150</td>\n",
" <td>4.157463</td>\n",
" <td>1.660385</td>\n",
" <td>3.613206</td>\n",
" <td>5.566027</td>\n",
" <td>108.093546</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-19</th>\n",
" <td>392.0700</td>\n",
" <td>392.3800</td>\n",
" <td>389.5500</td>\n",
" <td>390.0300</td>\n",
" <td>83240971.0</td>\n",
" <td>4.292329</td>\n",
" <td>0.107893</td>\n",
" <td>4.184437</td>\n",
" <td>1.660770</td>\n",
" <td>3.612408</td>\n",
" <td>5.564047</td>\n",
" <td>108.051942</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5360 rows × 12 columns</p>\n",
"</div>"
],
"text/plain": [
" open high low close volume MACD_12_26_9 \\\n",
"date \n",
"1999-11-01 136.5000 137.0000 135.5625 135.5625 4006500.0 NaN \n",
"1999-11-02 135.9687 137.2500 134.5937 134.5937 6516900.0 NaN \n",
"1999-11-03 136.0000 136.3750 135.1250 135.5000 7222300.0 NaN \n",
"1999-11-04 136.7500 137.3593 135.7656 136.5312 7907500.0 NaN \n",
"1999-11-05 138.6250 139.1093 136.7812 137.8750 7431500.0 NaN \n",
"... ... ... ... ... ... ... \n",
"2021-02-12 389.8500 392.9000 389.7700 392.6400 50593270.0 4.527226 \n",
"2021-02-16 393.9600 394.1700 391.5300 392.3000 50972366.0 4.636231 \n",
"2021-02-17 390.4200 392.6600 389.3300 392.3900 51746878.0 4.675979 \n",
"2021-02-18 389.5900 391.5150 387.7400 390.7200 59712773.0 4.520614 \n",
"2021-02-19 392.0700 392.3800 389.5500 390.0300 83240971.0 4.292329 \n",
"\n",
" MACDh_12_26_9 MACDs_12_26_9 MACD_BBL_20_2.0 MACD_BBM_20_2.0 \\\n",
"date \n",
"1999-11-01 NaN NaN NaN NaN \n",
"1999-11-02 NaN NaN NaN NaN \n",
"1999-11-03 NaN NaN NaN NaN \n",
"1999-11-04 NaN NaN NaN NaN \n",
"1999-11-05 NaN NaN NaN NaN \n",
"... ... ... ... ... \n",
"2021-02-12 0.793346 3.733880 1.718321 3.505669 \n",
"2021-02-16 0.721881 3.914350 1.692525 3.545522 \n",
"2021-02-17 0.609303 4.066676 1.671804 3.591144 \n",
"2021-02-18 0.363150 4.157463 1.660385 3.613206 \n",
"2021-02-19 0.107893 4.184437 1.660770 3.612408 \n",
"\n",
" MACD_BBU_20_2.0 MACD_BBB_20_2.0 \n",
"date \n",
"1999-11-01 NaN NaN \n",
"1999-11-02 NaN NaN \n",
"1999-11-03 NaN NaN \n",
"1999-11-04 NaN NaN \n",
"1999-11-05 NaN NaN \n",
"... ... ... \n",
"2021-02-12 5.293017 101.969021 \n",
"2021-02-16 5.398519 104.526067 \n",
"2021-02-17 5.510485 106.892975 \n",
"2021-02-18 5.566027 108.093546 \n",
"2021-02-19 5.564047 108.051942 \n",
"\n",
"[5360 rows x 12 columns]"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spy = watch.load(\"SPY\")\n",
"spy"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Comprehensive Strategy"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### MACD and RSI Momentum with BBANDS and SMAs and Cumulative Log Returns"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Strategy(name='Momo, Bands and SMAs and Cumulative Log Returns', ta=[{'kind': 'sma', 'length': 50}, {'kind': 'sma', 'length': 200}, {'kind': 'bbands', 'length': 20}, {'kind': 'macd'}, {'kind': 'rsi'}, {'kind': 'log_return', 'cumulative': True}, {'kind': 'sma', 'close': 'CUMLOGRET_1', 'length': 5, 'suffix': 'CUMLOGRET'}], description='MACD and RSI Momo with BBANDS and SMAs 50 & 200 and Cumulative Log Returns', created='02/22/2021, 10:20:59')"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"momo_bands_sma_ta = [\n",
" {\"kind\":\"sma\", \"length\": 50},\n",
" {\"kind\":\"sma\", \"length\": 200},\n",
" {\"kind\":\"bbands\", \"length\": 20},\n",
" {\"kind\":\"macd\"},\n",
" {\"kind\":\"rsi\"},\n",
" {\"kind\":\"log_return\", \"cumulative\": True},\n",
" {\"kind\":\"sma\", \"close\": \"CUMLOGRET_1\", \"length\": 5, \"suffix\": \"CUMLOGRET\"},\n",
"]\n",
"momo_bands_sma_strategy = ta.Strategy(\n",
" \"Momo, Bands and SMAs and Cumulative Log Returns\", # name\n",
" momo_bands_sma_ta, # ta\n",
" \"MACD and RSI Momo with BBANDS and SMAs 50 & 200 and Cumulative Log Returns\" # description\n",
")\n",
"momo_bands_sma_strategy"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'Momo, Bands and SMAs and Cumulative Log Returns'"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Update the Watchlist\n",
"watch.strategy = momo_bands_sma_strategy\n",
"watch.strategy.name"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Loaded SPY[D]: SPY_D.csv\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>open</th>\n",
" <th>high</th>\n",
" <th>low</th>\n",
" <th>close</th>\n",
" <th>volume</th>\n",
" <th>SMA_50</th>\n",
" <th>SMA_200</th>\n",
" <th>BBL_20_2.0</th>\n",
" <th>BBM_20_2.0</th>\n",
" <th>BBU_20_2.0</th>\n",
" <th>BBB_20_2.0</th>\n",
" <th>MACD_12_26_9</th>\n",
" <th>MACDh_12_26_9</th>\n",
" <th>MACDs_12_26_9</th>\n",
" <th>RSI_14</th>\n",
" <th>CUMLOGRET_1</th>\n",
" <th>SMA_5_CUMLOGRET</th>\n",
" <th>0</th>\n",
" <th>30</th>\n",
" <th>70</th>\n",
" </tr>\n",
" <tr>\n",
" <th>date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2021-02-12</th>\n",
" <td>389.85</td>\n",
" <td>392.900</td>\n",
" <td>389.77</td>\n",
" <td>392.64</td>\n",
" <td>50593270.0</td>\n",
" <td>376.0518</td>\n",
" <td>339.57900</td>\n",
" <td>370.691695</td>\n",
" <td>383.1685</td>\n",
" <td>395.645305</td>\n",
" <td>6.512438</td>\n",
" <td>4.527226</td>\n",
" <td>0.793346</td>\n",
" <td>3.733880</td>\n",
" <td>66.608891</td>\n",
" <td>1.063460</td>\n",
" <td>1.058858</td>\n",
" <td>0</td>\n",
" <td>30</td>\n",
" <td>70</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-16</th>\n",
" <td>393.96</td>\n",
" <td>394.170</td>\n",
" <td>391.53</td>\n",
" <td>392.30</td>\n",
" <td>50972366.0</td>\n",
" <td>376.5620</td>\n",
" <td>340.08810</td>\n",
" <td>371.405574</td>\n",
" <td>383.9985</td>\n",
" <td>396.591426</td>\n",
" <td>6.558841</td>\n",
" <td>4.636231</td>\n",
" <td>0.721881</td>\n",
" <td>3.914350</td>\n",
" <td>65.914662</td>\n",
" <td>1.062594</td>\n",
" <td>1.059772</td>\n",
" <td>0</td>\n",
" <td>30</td>\n",
" <td>70</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-17</th>\n",
" <td>390.42</td>\n",
" <td>392.660</td>\n",
" <td>389.33</td>\n",
" <td>392.39</td>\n",
" <td>51746878.0</td>\n",
" <td>377.0760</td>\n",
" <td>340.63610</td>\n",
" <td>371.824830</td>\n",
" <td>384.6855</td>\n",
" <td>397.546170</td>\n",
" <td>6.686329</td>\n",
" <td>4.675979</td>\n",
" <td>0.609303</td>\n",
" <td>4.066676</td>\n",
" <td>66.015633</td>\n",
" <td>1.062823</td>\n",
" <td>1.060866</td>\n",
" <td>0</td>\n",
" <td>30</td>\n",
" <td>70</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-18</th>\n",
" <td>389.59</td>\n",
" <td>391.515</td>\n",
" <td>387.74</td>\n",
" <td>390.72</td>\n",
" <td>59712773.0</td>\n",
" <td>377.4934</td>\n",
" <td>341.17185</td>\n",
" <td>371.895400</td>\n",
" <td>385.0270</td>\n",
" <td>398.158600</td>\n",
" <td>6.821132</td>\n",
" <td>4.520614</td>\n",
" <td>0.363150</td>\n",
" <td>4.157463</td>\n",
" <td>62.326199</td>\n",
" <td>1.058558</td>\n",
" <td>1.061194</td>\n",
" <td>0</td>\n",
" <td>30</td>\n",
" <td>70</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-19</th>\n",
" <td>392.07</td>\n",
" <td>392.380</td>\n",
" <td>389.55</td>\n",
" <td>390.03</td>\n",
" <td>83240971.0</td>\n",
" <td>377.9122</td>\n",
" <td>341.69105</td>\n",
" <td>372.003908</td>\n",
" <td>385.3165</td>\n",
" <td>398.629092</td>\n",
" <td>6.909952</td>\n",
" <td>4.292329</td>\n",
" <td>0.107893</td>\n",
" <td>4.184437</td>\n",
" <td>60.813916</td>\n",
" <td>1.056791</td>\n",
" <td>1.060845</td>\n",
" <td>0</td>\n",
" <td>30</td>\n",
" <td>70</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" open high low close volume SMA_50 SMA_200 \\\n",
"date \n",
"2021-02-12 389.85 392.900 389.77 392.64 50593270.0 376.0518 339.57900 \n",
"2021-02-16 393.96 394.170 391.53 392.30 50972366.0 376.5620 340.08810 \n",
"2021-02-17 390.42 392.660 389.33 392.39 51746878.0 377.0760 340.63610 \n",
"2021-02-18 389.59 391.515 387.74 390.72 59712773.0 377.4934 341.17185 \n",
"2021-02-19 392.07 392.380 389.55 390.03 83240971.0 377.9122 341.69105 \n",
"\n",
" BBL_20_2.0 BBM_20_2.0 BBU_20_2.0 BBB_20_2.0 MACD_12_26_9 \\\n",
"date \n",
"2021-02-12 370.691695 383.1685 395.645305 6.512438 4.527226 \n",
"2021-02-16 371.405574 383.9985 396.591426 6.558841 4.636231 \n",
"2021-02-17 371.824830 384.6855 397.546170 6.686329 4.675979 \n",
"2021-02-18 371.895400 385.0270 398.158600 6.821132 4.520614 \n",
"2021-02-19 372.003908 385.3165 398.629092 6.909952 4.292329 \n",
"\n",
" MACDh_12_26_9 MACDs_12_26_9 RSI_14 CUMLOGRET_1 \\\n",
"date \n",
"2021-02-12 0.793346 3.733880 66.608891 1.063460 \n",
"2021-02-16 0.721881 3.914350 65.914662 1.062594 \n",
"2021-02-17 0.609303 4.066676 66.015633 1.062823 \n",
"2021-02-18 0.363150 4.157463 62.326199 1.058558 \n",
"2021-02-19 0.107893 4.184437 60.813916 1.056791 \n",
"\n",
" SMA_5_CUMLOGRET 0 30 70 \n",
"date \n",
"2021-02-12 1.058858 0 30 70 \n",
"2021-02-16 1.059772 0 30 70 \n",
"2021-02-17 1.060866 0 30 70 \n",
"2021-02-18 1.061194 0 30 70 \n",
"2021-02-19 1.060845 0 30 70 "
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spy = watch.load(\"SPY\")\n",
"# Apply constants to the DataFrame for indicators\n",
"spy.ta.constants(True, [0, 30, 70])\n",
"spy.tail()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Additional Strategy Options"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The ```params``` keyword takes a _tuple_ as a shorthand to the parameter arguments in order.\n",
"* **Note**: If the indicator arguments change, so will results. Breaking Changes will **always** be posted on the README.\n",
"\n",
"The ```col_numbers``` keyword takes a _tuple_ specifying which column to return if the result is a DataFrame."
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Strategy(name='EMA, MACD History, Outter BBands, Log Returns', ta=[{'kind': 'ema', 'params': (10,)}, {'kind': 'macd', 'params': (9, 19, 10), 'col_numbers': (1,)}, {'kind': 'bbands', 'col_numbers': (0, 2), 'col_names': ('LB', 'UB')}, {'kind': 'log_return', 'params': (5, False)}], description='EMA, MACD History, BBands(LB, UB), and Log Returns Strategy', created='02/22/2021, 10:20:59')"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"params_ta = [\n",
" {\"kind\":\"ema\", \"params\": (10,)},\n",
" # params sets MACD's keyword arguments: fast=9, slow=19, signal=10\n",
" # and returning the 2nd column: histogram\n",
" {\"kind\":\"macd\", \"params\": (9, 19, 10), \"col_numbers\": (1,)},\n",
" # Selects the Lower and Upper Bands and renames them LB and UB, ignoring the MB\n",
" {\"kind\":\"bbands\", \"col_numbers\": (0,2), \"col_names\": (\"LB\", \"UB\")},\n",
" {\"kind\":\"log_return\", \"params\": (5, False)},\n",
"]\n",
"params_ta_strategy = ta.Strategy(\n",
" \"EMA, MACD History, Outter BBands, Log Returns\", # name\n",
" params_ta, # ta\n",
" \"EMA, MACD History, BBands(LB, UB), and Log Returns Strategy\" # description\n",
")\n",
"params_ta_strategy"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'EMA, MACD History, Outter BBands, Log Returns'"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Update the Watchlist\n",
"watch.strategy = params_ta_strategy\n",
"watch.strategy.name"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Loaded SPY[D]: SPY_D.csv\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>open</th>\n",
" <th>high</th>\n",
" <th>low</th>\n",
" <th>close</th>\n",
" <th>volume</th>\n",
" <th>EMA_10</th>\n",
" <th>MACDh_9_19_10</th>\n",
" <th>LB</th>\n",
" <th>UB</th>\n",
" <th>LOGRET_5</th>\n",
" </tr>\n",
" <tr>\n",
" <th>date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2021-02-12</th>\n",
" <td>389.85</td>\n",
" <td>392.900</td>\n",
" <td>389.77</td>\n",
" <td>392.64</td>\n",
" <td>50593270.0</td>\n",
" <td>387.588385</td>\n",
" <td>0.948892</td>\n",
" <td>388.766411</td>\n",
" <td>392.909589</td>\n",
" <td>0.012636</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-16</th>\n",
" <td>393.96</td>\n",
" <td>394.170</td>\n",
" <td>391.53</td>\n",
" <td>392.30</td>\n",
" <td>50972366.0</td>\n",
" <td>388.445042</td>\n",
" <td>0.814088</td>\n",
" <td>388.812616</td>\n",
" <td>393.579384</td>\n",
" <td>0.004573</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-17</th>\n",
" <td>390.42</td>\n",
" <td>392.660</td>\n",
" <td>389.33</td>\n",
" <td>392.39</td>\n",
" <td>51746878.0</td>\n",
" <td>389.162307</td>\n",
" <td>0.638021</td>\n",
" <td>389.322844</td>\n",
" <td>393.925156</td>\n",
" <td>0.005469</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-18</th>\n",
" <td>389.59</td>\n",
" <td>391.515</td>\n",
" <td>387.74</td>\n",
" <td>390.72</td>\n",
" <td>59712773.0</td>\n",
" <td>389.445524</td>\n",
" <td>0.303171</td>\n",
" <td>389.842372</td>\n",
" <td>393.661628</td>\n",
" <td>0.001639</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-02-19</th>\n",
" <td>392.07</td>\n",
" <td>392.380</td>\n",
" <td>389.55</td>\n",
" <td>390.03</td>\n",
" <td>83240971.0</td>\n",
" <td>389.551793</td>\n",
" <td>-0.023612</td>\n",
" <td>389.284966</td>\n",
" <td>393.947034</td>\n",
" <td>-0.001742</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" open high low close volume EMA_10 \\\n",
"date \n",
"2021-02-12 389.85 392.900 389.77 392.64 50593270.0 387.588385 \n",
"2021-02-16 393.96 394.170 391.53 392.30 50972366.0 388.445042 \n",
"2021-02-17 390.42 392.660 389.33 392.39 51746878.0 389.162307 \n",
"2021-02-18 389.59 391.515 387.74 390.72 59712773.0 389.445524 \n",
"2021-02-19 392.07 392.380 389.55 390.03 83240971.0 389.551793 \n",
"\n",
" MACDh_9_19_10 LB UB LOGRET_5 \n",
"date \n",
"2021-02-12 0.948892 388.766411 392.909589 0.012636 \n",
"2021-02-16 0.814088 388.812616 393.579384 0.004573 \n",
"2021-02-17 0.638021 389.322844 393.925156 0.005469 \n",
"2021-02-18 0.303171 389.842372 393.661628 0.001639 \n",
"2021-02-19 -0.023612 389.284966 393.947034 -0.001742 "
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spy = watch.load(\"SPY\")\n",
"spy.tail()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Disclaimer\n",
"* All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, or individuals trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs.\n",
"\n",
"* Any opinions, news, research, analyses, prices, or other information offered is provided as general market commentary, and does not constitute investment advice. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from use of or reliance on such information."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.1"
}
},
"nbformat": 4,
"nbformat_minor": 4
}