Files
pandas-ta/examples/PandasTA_Study_Examples.ipynb
T

3238 lines
235 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)) Studies for Custom Technical Analysis\n",
"\n",
"## Topics\n",
"- What is a Pandas TA Study?\n",
" - Builtin Studies: __AllStudy__ and __CommonStudy__\n",
" - Creating Studies\n",
"- Watchlist Class\n",
" - Study 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 Studies\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.3.54b0\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",
"from tqdm import tqdm\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 Study?\n",
"A _Study_ is a simple way to name and group TA indicators. Technically, a _Study_ is a simple Data Class to contain list of indicators and their parameters. __Note__: _Study_ is experimental and subject to change. Pandas TA comes with two basic Studies: __AllStudy__ and __CommonStudy__.\n",
"\n",
"## Study 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 Study 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 Study 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\n",
"Default Values"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"AllStudy.name = 'All'\n",
"AllStudy.description = 'All the indicators with their default settings. Pandas TA default.'\n",
"AllStudy.created = 'Friday March 25, 2022, NYSE: 4:36:00, Local: 8:36:00 PDT, Day 84/365 (23.00%)'\n",
"AllStudy.ta = None\n",
"AllStudy.cores = 8\n"
]
}
],
"source": [
"AllStudy = ta.AllStudy\n",
"print(f\"{AllStudy.name = }\")\n",
"print(f\"{AllStudy.description = }\")\n",
"print(f\"{AllStudy.created = }\")\n",
"print(f\"{AllStudy.ta = }\")\n",
"print(f\"{AllStudy.cores = }\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Common\n",
"Default Values"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CommonStudy.name = 'Common Price and Volume SMAs'\n",
"CommonStudy.description = 'Common Price SMAs: 10, 20, 50, 200 and Volume SMA: 20.'\n",
"CommonStudy.created = 'Friday March 25, 2022, NYSE: 4:36:00, Local: 8:36:00 PDT, Day 84/365 (23.00%)'\n",
"CommonStudy.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",
"CommonStudy.cores = 0\n"
]
}
],
"source": [
"CommonStudy = ta.CommonStudy\n",
"print(f\"{CommonStudy.name = }\")\n",
"print(f\"{CommonStudy.description = }\")\n",
"print(f\"{CommonStudy.created = }\")\n",
"print(f\"{CommonStudy.ta = }\")\n",
"print(f\"{CommonStudy.cores = }\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Creating Studies\n",
"Studies require a **name** and an array of dicts containing the \"kind\" of indicator (\"sma\") and other potential parameters for **ta**."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Simple Study A"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Study(name='A', ta=[{'kind': 'sma', 'length': 50}, {'kind': 'sma', 'length': 200}], cores=0, description='', created='Friday March 25, 2022, NYSE: 4:36:00, Local: 8:36:00 PDT, Day 84/365 (23.00%)')"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"custom_a = ta.Study(name=\"A\", cores=0, ta=[{\"kind\": \"sma\", \"length\": 50}, {\"kind\": \"sma\", \"length\": 200}])\n",
"custom_a"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Simple Study B"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Study(name='B', ta=[{'kind': 'ema', 'length': 8}, {'kind': 'ema', 'length': 21}, {'kind': 'log_return', 'cumulative': True}, {'kind': 'rsi'}, {'kind': 'supertrend'}], cores=0, description='', created='Friday March 25, 2022, NYSE: 4:36:00, Local: 8:36:00 PDT, Day 84/365 (23.00%)')"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"custom_b = ta.Study(name=\"B\", cores=0, 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 Study. (Misspelled Indicator)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Study(name='Runtime Failure', ta=[{'kind': 'peret_return'}], cores=0, description='', created='Friday March 25, 2022, NYSE: 4:36:00, Local: 8:36:00 PDT, Day 84/365 (23.00%)')"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Misspelled indicator, will fail later when ran with Pandas TA\n",
"custom_run_failure = ta.Study(name=\"Runtime Failure\", cores=0, ta=[{\"kind\": \"peret_return\"}])\n",
"custom_run_failure"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Study 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=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"\n",
"#### Info about the Watchlist. Note, the default Study is \"All\""
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Watch(name='Watch: SPY, IWM', ds_name='yahoo', tickers[2]='SPY, IWM', tf='D', study[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, study: pandas_ta.utils._study.Study = 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 Study.\n",
" | \n",
" | Default Study: pandas_ta.CommonStudy\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, study: pandas_ta.utils._study.Study = 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",
" | study\n",
" | Sets a valid Study. Default: pandas_ta.CommonStudy\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 Study is \"Common\""
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[!] Loading All: SPY, IWM\n",
"[i] Loaded SPY[D]: SPY_D.csv\n",
"[+] Study: Common Price and Volume SMAs\n",
"[i] Indicator arguments: {'timed': True, 'append': True}\n",
"[i] No mulitproccessing (cores = 0).\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"[i] Progress: 100%|███████████████████| 5/5 [00:00<00:00, 130.05it/s]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Total indicators: 5\n",
"[i] Columns added: 5\n",
"[i] Last Run: Friday March 25, 2022, NYSE: 4:36:00, Local: 8:36:00 PDT, Day 84/365 (23.00%)\n",
"[i] Analysis Time: 64.1480 ms (0.0641 s) for 5 columns (avg 12.8315 ms / col)\n",
"[+] Downloading[yahoo]: IWM[D]\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[+] yf | IWM(5493, 7): 3181.7138 ms (3.1817 s)\n",
"[+] Saving: /Users/kj/av_data/IWM_D.csv\n",
"[+] Study: Common Price and Volume SMAs\n",
"[i] Indicator arguments: {'timed': True, 'append': True}\n",
"[i] No mulitproccessing (cores = 0).\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"[i] Progress: 100%|██████████████████| 5/5 [00:00<00:00, 1049.73it/s]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Total indicators: 5\n",
"[i] Columns added: 5\n",
"[i] Last Run: Friday March 25, 2022, NYSE: 4:36:03, Local: 8:36:03 PDT, Day 84/365 (23.00%)\n",
"[i] Analysis Time: 6.5667 ms (0.0066 s) for 5 columns (avg 1.3141 ms / col)\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n"
]
}
],
"source": [
"# No arguments loads all the tickers and applies the Study 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: (7343, 12), IWM: (5493, 12)'"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\", \".join([f\"{t}: {d.shape}\" for t,d in watch.data.items()])"
]
},
{
"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>Dividends</th>\n",
" <th>Stock Splits</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",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1993-01-29</th>\n",
" <td>25.566158</td>\n",
" <td>25.566158</td>\n",
" <td>25.438963</td>\n",
" <td>25.547987</td>\n",
" <td>1003200</td>\n",
" <td>0.0</td>\n",
" <td>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>1993-02-01</th>\n",
" <td>25.566152</td>\n",
" <td>25.729689</td>\n",
" <td>25.566152</td>\n",
" <td>25.729689</td>\n",
" <td>480500</td>\n",
" <td>0.0</td>\n",
" <td>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>1993-02-02</th>\n",
" <td>25.711512</td>\n",
" <td>25.802366</td>\n",
" <td>25.657000</td>\n",
" <td>25.784195</td>\n",
" <td>201300</td>\n",
" <td>0.0</td>\n",
" <td>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>1993-02-03</th>\n",
" <td>25.820536</td>\n",
" <td>26.074926</td>\n",
" <td>25.802366</td>\n",
" <td>26.056755</td>\n",
" <td>529400</td>\n",
" <td>0.0</td>\n",
" <td>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>1993-02-04</th>\n",
" <td>26.147597</td>\n",
" <td>26.220280</td>\n",
" <td>25.856866</td>\n",
" <td>26.165768</td>\n",
" <td>531500</td>\n",
" <td>0.0</td>\n",
" <td>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",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-21</th>\n",
" <td>444.339996</td>\n",
" <td>446.459991</td>\n",
" <td>440.679993</td>\n",
" <td>444.390015</td>\n",
" <td>88349800</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>428.742212</td>\n",
" <td>429.172800</td>\n",
" <td>440.424402</td>\n",
" <td>443.089030</td>\n",
" <td>123319985.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-22</th>\n",
" <td>445.859985</td>\n",
" <td>450.579987</td>\n",
" <td>445.859985</td>\n",
" <td>449.589996</td>\n",
" <td>74650400</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>432.205124</td>\n",
" <td>430.240318</td>\n",
" <td>440.123272</td>\n",
" <td>443.253448</td>\n",
" <td>120832915.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-23</th>\n",
" <td>446.910004</td>\n",
" <td>448.489990</td>\n",
" <td>443.709991</td>\n",
" <td>443.799988</td>\n",
" <td>79426100</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>433.976492</td>\n",
" <td>431.398157</td>\n",
" <td>439.717905</td>\n",
" <td>443.388472</td>\n",
" <td>118175320.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-24</th>\n",
" <td>445.940002</td>\n",
" <td>450.500000</td>\n",
" <td>444.760010</td>\n",
" <td>450.489990</td>\n",
" <td>64565700</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>436.609262</td>\n",
" <td>432.573979</td>\n",
" <td>439.361801</td>\n",
" <td>443.560056</td>\n",
" <td>110706460.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-25</th>\n",
" <td>451.160004</td>\n",
" <td>452.980011</td>\n",
" <td>448.429993</td>\n",
" <td>448.980011</td>\n",
" <td>24148266</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>439.630359</td>\n",
" <td>433.203265</td>\n",
" <td>438.950176</td>\n",
" <td>443.714416</td>\n",
" <td>105823648.3</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>7343 rows × 12 columns</p>\n",
"</div>"
],
"text/plain": [
" Open High Low Close Volume \\\n",
"Date \n",
"1993-01-29 25.566158 25.566158 25.438963 25.547987 1003200 \n",
"1993-02-01 25.566152 25.729689 25.566152 25.729689 480500 \n",
"1993-02-02 25.711512 25.802366 25.657000 25.784195 201300 \n",
"1993-02-03 25.820536 26.074926 25.802366 26.056755 529400 \n",
"1993-02-04 26.147597 26.220280 25.856866 26.165768 531500 \n",
"... ... ... ... ... ... \n",
"2022-03-21 444.339996 446.459991 440.679993 444.390015 88349800 \n",
"2022-03-22 445.859985 450.579987 445.859985 449.589996 74650400 \n",
"2022-03-23 446.910004 448.489990 443.709991 443.799988 79426100 \n",
"2022-03-24 445.940002 450.500000 444.760010 450.489990 64565700 \n",
"2022-03-25 451.160004 452.980011 448.429993 448.980011 24148266 \n",
"\n",
" Dividends Stock Splits SMA_10 SMA_20 SMA_50 \\\n",
"Date \n",
"1993-01-29 0.0 0 NaN NaN NaN \n",
"1993-02-01 0.0 0 NaN NaN NaN \n",
"1993-02-02 0.0 0 NaN NaN NaN \n",
"1993-02-03 0.0 0 NaN NaN NaN \n",
"1993-02-04 0.0 0 NaN NaN NaN \n",
"... ... ... ... ... ... \n",
"2022-03-21 0.0 0 428.742212 429.172800 440.424402 \n",
"2022-03-22 0.0 0 432.205124 430.240318 440.123272 \n",
"2022-03-23 0.0 0 433.976492 431.398157 439.717905 \n",
"2022-03-24 0.0 0 436.609262 432.573979 439.361801 \n",
"2022-03-25 0.0 0 439.630359 433.203265 438.950176 \n",
"\n",
" SMA_200 VOL_SMA_20 \n",
"Date \n",
"1993-01-29 NaN NaN \n",
"1993-02-01 NaN NaN \n",
"1993-02-02 NaN NaN \n",
"1993-02-03 NaN NaN \n",
"1993-02-04 NaN NaN \n",
"... ... ... \n",
"2022-03-21 443.089030 123319985.0 \n",
"2022-03-22 443.253448 120832915.0 \n",
"2022-03-23 443.388472 118175320.0 \n",
"2022-03-24 443.560056 110706460.0 \n",
"2022-03-25 443.714416 105823648.3 \n",
"\n",
"[7343 rows x 12 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",
"[i] Analysis Time: 5.2975 ms (0.0053 s) for 5 columns (avg 1.0611 ms / col)\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>Dividends</th>\n",
" <th>Stock Splits</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",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1993-01-29</th>\n",
" <td>25.566158</td>\n",
" <td>25.566158</td>\n",
" <td>25.438963</td>\n",
" <td>25.547987</td>\n",
" <td>1003200</td>\n",
" <td>0.0</td>\n",
" <td>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>1993-02-01</th>\n",
" <td>25.566152</td>\n",
" <td>25.729689</td>\n",
" <td>25.566152</td>\n",
" <td>25.729689</td>\n",
" <td>480500</td>\n",
" <td>0.0</td>\n",
" <td>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>1993-02-02</th>\n",
" <td>25.711512</td>\n",
" <td>25.802366</td>\n",
" <td>25.657000</td>\n",
" <td>25.784195</td>\n",
" <td>201300</td>\n",
" <td>0.0</td>\n",
" <td>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>1993-02-03</th>\n",
" <td>25.820536</td>\n",
" <td>26.074926</td>\n",
" <td>25.802366</td>\n",
" <td>26.056755</td>\n",
" <td>529400</td>\n",
" <td>0.0</td>\n",
" <td>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>1993-02-04</th>\n",
" <td>26.147597</td>\n",
" <td>26.220280</td>\n",
" <td>25.856866</td>\n",
" <td>26.165768</td>\n",
" <td>531500</td>\n",
" <td>0.0</td>\n",
" <td>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",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-21</th>\n",
" <td>444.339996</td>\n",
" <td>446.459991</td>\n",
" <td>440.679993</td>\n",
" <td>444.390015</td>\n",
" <td>88349800</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>428.742212</td>\n",
" <td>429.172800</td>\n",
" <td>440.424402</td>\n",
" <td>443.089030</td>\n",
" <td>123319985.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-22</th>\n",
" <td>445.859985</td>\n",
" <td>450.579987</td>\n",
" <td>445.859985</td>\n",
" <td>449.589996</td>\n",
" <td>74650400</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>432.205124</td>\n",
" <td>430.240318</td>\n",
" <td>440.123272</td>\n",
" <td>443.253448</td>\n",
" <td>120832915.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-23</th>\n",
" <td>446.910004</td>\n",
" <td>448.489990</td>\n",
" <td>443.709991</td>\n",
" <td>443.799988</td>\n",
" <td>79426100</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>433.976492</td>\n",
" <td>431.398157</td>\n",
" <td>439.717905</td>\n",
" <td>443.388472</td>\n",
" <td>118175320.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-24</th>\n",
" <td>445.940002</td>\n",
" <td>450.500000</td>\n",
" <td>444.760010</td>\n",
" <td>450.489990</td>\n",
" <td>64565700</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>436.609262</td>\n",
" <td>432.573979</td>\n",
" <td>439.361801</td>\n",
" <td>443.560056</td>\n",
" <td>110706460.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-25</th>\n",
" <td>451.160004</td>\n",
" <td>452.980011</td>\n",
" <td>448.429993</td>\n",
" <td>448.980011</td>\n",
" <td>24148266</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>439.630359</td>\n",
" <td>433.203265</td>\n",
" <td>438.950176</td>\n",
" <td>443.714416</td>\n",
" <td>105823648.3</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>7343 rows × 12 columns</p>\n",
"</div>"
],
"text/plain": [
" Open High Low Close Volume \\\n",
"Date \n",
"1993-01-29 25.566158 25.566158 25.438963 25.547987 1003200 \n",
"1993-02-01 25.566152 25.729689 25.566152 25.729689 480500 \n",
"1993-02-02 25.711512 25.802366 25.657000 25.784195 201300 \n",
"1993-02-03 25.820536 26.074926 25.802366 26.056755 529400 \n",
"1993-02-04 26.147597 26.220280 25.856866 26.165768 531500 \n",
"... ... ... ... ... ... \n",
"2022-03-21 444.339996 446.459991 440.679993 444.390015 88349800 \n",
"2022-03-22 445.859985 450.579987 445.859985 449.589996 74650400 \n",
"2022-03-23 446.910004 448.489990 443.709991 443.799988 79426100 \n",
"2022-03-24 445.940002 450.500000 444.760010 450.489990 64565700 \n",
"2022-03-25 451.160004 452.980011 448.429993 448.980011 24148266 \n",
"\n",
" Dividends Stock Splits SMA_10 SMA_20 SMA_50 \\\n",
"Date \n",
"1993-01-29 0.0 0 NaN NaN NaN \n",
"1993-02-01 0.0 0 NaN NaN NaN \n",
"1993-02-02 0.0 0 NaN NaN NaN \n",
"1993-02-03 0.0 0 NaN NaN NaN \n",
"1993-02-04 0.0 0 NaN NaN NaN \n",
"... ... ... ... ... ... \n",
"2022-03-21 0.0 0 428.742212 429.172800 440.424402 \n",
"2022-03-22 0.0 0 432.205124 430.240318 440.123272 \n",
"2022-03-23 0.0 0 433.976492 431.398157 439.717905 \n",
"2022-03-24 0.0 0 436.609262 432.573979 439.361801 \n",
"2022-03-25 0.0 0 439.630359 433.203265 438.950176 \n",
"\n",
" SMA_200 VOL_SMA_20 \n",
"Date \n",
"1993-01-29 NaN NaN \n",
"1993-02-01 NaN NaN \n",
"1993-02-02 NaN NaN \n",
"1993-02-03 NaN NaN \n",
"1993-02-04 NaN NaN \n",
"... ... ... \n",
"2022-03-21 443.089030 123319985.0 \n",
"2022-03-22 443.253448 120832915.0 \n",
"2022-03-23 443.388472 118175320.0 \n",
"2022-03-24 443.560056 110706460.0 \n",
"2022-03-25 443.714416 105823648.3 \n",
"\n",
"[7343 rows x 12 columns]"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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xx91QNqvHxw7Bt9/n+ImWSllybyBBKX3g5w23wVo4amb0P538T+SjeQMt/P39wfA19c3w20ybMJr5lCYw+4T+ewvcLCH4mfeh609IVZvP33/dLAHjsDOZ3aypN8SKrpXZHfIbt74941sn1uB8emnemTey5d1kJoPAx8FBQWlaI576pQedMp6JORy5coBum/p+++/T+HChe95PfOKBKVCCCHyXVxcXIbr9uzZw8yZM3FwcODnn39m9OjRTJs2jZEjR5KcnMzEibkckVXkicWLF3P69GmqVatG//79c1XWext1n883WrxB+SK5zFAcmQxx16H0o+DZI3dl3W2XLsHLL0PdujB3LkRG6ua6EyfqaSsWL4YM5ne1DkorV658r2oscsj8fh07doykpKRs7VvBvQIVilQgIi6Ck9dOZrideRClzK6HdEfgTWXHzl28uwi+O9AaHIvCxb9gdQPCg5by8/6f9UbbwCXahT51+7D06aU42TsxY98M5h6am61zKzAcHMDPDzw9Ydcu3TrhHg98ZG66a2YOSm/evElERARubm64u7vf0zrdTRKUCiGEyFc7duygePHidO3alevXU/ZDSkxM5KWXXsIwDN566y1LdgF0n8VChQqxYsUKdu/efa+rLawkJyczZcoUACZMmIBDLubA9A/1Z+O5jRRxKsLbrW2fzzRd4Ufh1Heg7MDn/yxNDgucuDiYOhWqV4cffoDkZHjuOZ0xPXQIPv5YB6eZsP5sVKpU6W7XWORSsWLFqFChAjExMZammNnR3LM5QKaDHZmnafH0zHg+3nRH4E1l+3bdd9Wh6iDoeghKtYGYMIrsfJrGDjGUulEKrtw5XrMKzZjeZToAL656kQNhB7JxZgVI6dK66XyhQvDrr7o57z1kDkrNTa/Ngx2Zs6ReXl7ZGs28oJOgVAghRL6aMmUKMTExrF69miZNmrBv3z4AwsLCePfddzl48CCVK1fm/fffT7FfuXLleP311wEdCN3vc7Tdz/777z+OHj1KhQoVGDJkSK7K+mKnvvF70edFirkUy3lBhgH+r4KRpPuRFm+Uq3rdNf/+C/Xrw4QJEB0N3bvDkSMwe7YOUm1kzryVLVuWQoUK3a3aijyUm36lzSuYgtKQjINSc6bUPEJuelI3301MTEwzvcuOHbrvauvWrcG1MrTfTHzV4diTzB/loGNSfQAuXbpk2Wekz0iGNx5ObGIsj899nDWn12TzDAsIHx+YN08/Hz9eB6n3iDkobdeuHXAnU2r+EaNKlSr3rC73ggSlQggh8s3JkydZvXo1Li4uNGvWjAsXLtC6dWsaNmxI+fLl+cL0y/T333+Pq6trmv3HjRtH8eLF2bx5M+vWrbvX1RcmmzdvBuDJJ5/EySnnfTbP3TzHH8f+wMHOgddavJa7SgUvgcubwLkkNPg4d2XdDfv2QefOus9oYCDUrg3r1sGff+rmu9nUsmVL2rVrd18PdPKwyc0IvJagNINMaUREBJGRkbi4uKQdwMhK6ua7b7/9Np6enixfrqeACQ4O5sKFCxQtWvROE3E7e75LrM6W21DeAT5peAoHe/1DorXpXafTvVZ3wmPD6bqgK59v//z+/PGwd2/47DP9Q9egQXDg3mR+zUFpz549gTtBqXWm9EEiQakQQoh889133wEwePBgtm3bxksvvUR8fDyHDx+mUKFCdO3alYULF9KtW7d09y9WrJhlLswhQ4awePHi+/Om5z5nDkozG1DFFl/v/ppkI5ln6j2Dp3vGTQ6zlBgN+9/UzxtMAecSuapXnjpxAvr0gWbNYO1acHeHL7/UzXQ7dMhxsYUKFWLz5s189NFHeVhZcTflZrAjn/I+2Ck7Dl8+zO2EtFNjWTfdzayJp3Xz3Vu3bjFr1iwMw2DMmDFER0dbsqQtW7a0NCNNSk5i2n/f8fQliHUsSRXXEL4cmDJTCuDi4MLy/suZ1G4SyUYy4zeMZ+iKoZkOzlRgvfOOHnzs9m146ilIlU3Oa4ZhcPz4cQC6d+8OwJkzZ0hKSnpgM6UyJYwQQoh8ER4ezm+m+eBee+01nJ2d+eGHH3j22WeJioqidevWuLi4ZFnOq6++yr///sumTZvoP6A/3y7/lj4j+1C8RHGSjWQc7Bwo41qGsm5lqeBeAY/CHnf5zB4uCQkJlhtXczOznLh++zq/HPgFgLGtxuauUkc/g9shULwJVBuRu7LySng4TJ4M06dDYiK4uMCYMTBuHJjmixQPl9wEpW5ObtQrXY/Dlw+zP2y/Ze5SM3NQmlnTXbjTfPfq1avMmzfPMvdzSEgIn332Gbdu3QKgTZs75W88t5HQyFCql6iOs+9ckte15bUnkvhi17405dspOz70/ZBGZRsxZPkQ5h2eR/Xi1fnQ98Nsn3O+UkqPgn32LGzbppvZb90Kd2m02+DgYKKjoylTpgyVK1emXLlyhIWFERwcLEGpEEIIkZdmz55NdHQ07du3TzFIS/PmzbNVTqFChfji9y8Yv2A8Gy5tYIf7DnZsy3j+vnaV2/HqI6/So3YPHOzkv8Hc2r9/P1FRUdSsWdMyPUFO/LDvB24n3KZztc40KJP5oD6ZijwNx00DkjSdDnZp52e8pxIS4Jdf4P334do1fXM7ciRMmpQvcx+KgqOuqZn2yZMnSUhIwNHRMVv7N6/QnMOXD7MnZE+aoNTcnzSzQY4gZfPdmTNnAvDGG2/w9ddf88UXX1CmTBnA1J/UZEHAAgAG1R+EKtWSM8VGUz38/3ixsb/+Mahw2mP2qN2Dxf0W03V+VyZtmYRPeR+erPlkts433zk7w7Jl0Lw5+PvD0KF6ROxcTH+VEXPTXfM1UqNGDcLCwggMDEzRfNc8N/GDQJrvCiGEuOeSkpIsTXdfey3nfQe3nd9Gp9870fTnpqy/vR7D3cDxtiMchmaOzXiu0XMMqj+IDlU74F3Km0IOhdhyfgt9/+hL1f+rysIjC/PqlB5aW7ZsAXLXdDc+KZ7v/tPXw9utcjnirv8bkBwPVYZBqZa5Kys3kpL0ACl16sCoUTogbdsW9u+HWbMkIBW4urpSpUoVEhISLCOrZkdm/UptzZSag9KtW7cSEBBAmTJlmDp1KsOGDSM+Pp7g4GAcHBx45JFHAIhJiGHpsaUADKw/UBdS4xX+PgDuLkmwaxhk0Dz3iepP8MnjnwAweNlgAq9n/5zznYcHrFoFRYvC0qX6x6W7wByU1qlTB4CaNWsC+gcM6VMqhBBC5JGVK1cSFBREtWrVMuwvmpkLty7w+JzHefS3R1l3dh1uTm6MbjaaHc/vYFHLRbAMrv50lVndZjGv9zzWDVlHwMsBXBp7iW+f+JYaJWoQHBHMwGUD+b/d/3cXzvDhYe5Pmpumu6tOreJK9BW8S3nzeJXHc16Zi39D6CpwKAKNpua8nNyIjdUj59avD0OGwJkzULOmzqhs2QKNGuVPvUSBlJsmvJlNC2PLdDBwp/luVFQUAMOHD8fJyYmpU6da5sBs0qQJhU3NVP8O/JvI+Eialm9KzZI6UCpbrhzPz4IrEcDljXBiWobHm9BmAr1q9+JW3C16LupJRFxENs64gKhTB/74Q2dIP/kENmzI80OkzpSag9IdO3Zw+/ZtihUrRrFixfL8uPlJglIhhBD33JIlSwAYNWoUdtls+nQj5gZPzHuCTUGbKOpclA8e/YDzr5/nu67f0apiK3p070H16tUJCgpiRarh+92d3Xm1+aucGH2Crzp9BcDra15n8ubJMkBSDiQmJrJt2zYgd0Hp7AOzARjeeHjO591LigP/1/XzBpOhUNkc1ydHrlzRfUYrV4bhw+H4cfDy0vMbHj0K/foV3HlSRb7JzbQwdTzq4ObkxoVbF7gUlXKQIVumg4E7mVIApZRl9OayZcta5h62/uFwwRHddHdgvYGWZW5ubtxOduO5H00LDr0LN9IfoVYpxZyec6jjUYdjV4/Re1Fv4pPibTjbAqZjR/jgAz0i7+DB+vOfh9Jrvguwfv164MHrTwoSlAohhMgHu3fvBqB9+/bZ2i82MZaefj05fu049UrX48yYM0x+bDIlCt0ZXdXOzo433ngDgGnT0v/F3k7Z8WbLN5ndfTZ2yo5JWyYxcuVIzoefz+EZPZwOHDhAVFQU1atXz/LmNyOhkaGsPr0aBzsHBjcYnPPKnJgGUaehaF2oOTrn5WRXQIAOQitV0k35rlyBxo1h7lw4eRKefRYcpO+ySF9upoWxt7OnWflmAPx38b8U62zNlBYtWtQyqm6XLl1SNAkdPXo0x48fZ8KECQDcjLnJ34F/o1AMqDcgRTnlypXjn4Nww2MgJCfA7mchg2CziHMRFvVYhIeLBxvObeDZFc/enyPyTpwIjz4Kly7pz3ly3pyDYRgZZkrN88lKUCqEEELk0rVr1zhz5gyFCxdOMcBRVpKNZIYuH8q2C9uoUKQC/wz8h5KF0x+1dNiwYRQvXpxdu3axa9euDMt8rvFzLOq7CEc7R3458AtVv61K70W92RK0Jdvn9TDKi6lg5h6aS7KRTPda3SnlWipnhUQHQ4Duq4bPt2CXvQFjsu3WLfj5Z31DWr++bq4bH69H5Ny8WQ+CMmQI5GLOVvFwqFWrFgCnT5/O0f6WfqUhKZvw2poptbOzszThfemll9Ksr127tmUApmXHlxGfFM/jVR6nXJGUg5qZBzk7bDcQ3KpB+GE4+mma8pKSkpg1axaPNXqM699ex9XBlYUBCxm3bpwtp1uw2NvD/PlQogSsXg1ff50nxYaFhXHr1i1KlChB6dKlAahWrVqKViQPWn9SkKBUCCHEPfbff/oXfR8fHxyykUH6cNOH/HHsD9yd3Vk9aDUVi1bMcFtXV1fLDdbXWdwo9K3bl/9G/seg+oOwV/YsP7Ec3zm+dPq9E/vD9ttcv4eReZCjnDbdNQwjRdPdHDvwNiTdhop9oWz2su82S0iAv/+G/v2hTBk9gu62bXpKiNGjdVb0zz+hXTtppitsVt404FVYWFiO9k+vX2l8fDxXrlzB3t6esmWzbsb+2WefMXbsWLp27ZrpdvOPzAesBjiyYj7Oxcvh0EJ/pjk6BW4etGyzd+9emjVrxosvvsj169cxQg0mVJ2Ag50DX+36irmH5mZZ1wLH8//ZO++wKK4uDr+79CYgihXEBnax9xJ779GosfdYk2iMJWqMLWossST2+lliibHF3nvvIgg2EKVI77s73x/DIkjbBRQw932efWRn7ty5g8vu/uac8ztF5RR9gEmT4Pr1TE+ZOEqqFaImJiYUK1YsYYyIlAoEAoFAoCOSJLFs2TJ27NiRZPvVq/KXJ31av9zyvcXcC3NRoGBv971ULFAx3WNGjRqFkZERe/bs4cWLtNNyXQu6srXLVl5++5LpjaZjbWLNca/jVFtdjZ57ehIYGajzWv8rZEU96YWXF/B450Fhq8K0KNkiYwt5expe7gQDM6j6W8bmSA2VSjYnGjtW/vLZrp1sWBQbC02ayF9G37yBZcsgvuZLINAHe3t7FAoF/v7+xMXF6X28NlJ6xfsKkXFyj9HXr18DslDUpuamRf/+/VmwYEGaY18Ev+DM8zOYGJjQtWzXZPu1kdI3b96AfUNwHg2SCi73B00ccXFxtG3bltu3b+Pg4EDlypUBKBxdmD/a/gHAhOMTCIkO0f3icwodOsg9h+Pi4KuvIFR/86YTJ04wceJEVq9ezT///AO8T93Vok3hBREpFQgEAoFAZ6ZOncqYMWPo06cPQUFBCdv1FaUqjYrB+wejltSMrjmapiV0i4QVLlyYTp06odFoOHz4sE7HFLQsyIzGM/Aa68X4OuMxMTBhx4MddN7ZkZjgR+B7DKLe6jTX586dO3cIDQ2lRIkSODikHrVOi/V35IhKv8r9MtYzVhMHN8bIP5efDBaOGVpHEqKiYP9+GDgQChWCxo3h99/lWtEyZWDOHHj+XHbc7N8frKwyf07BfxZDQ8OEFM23b/V/bylkVYiaRWoSERfB3sd7Ad3bwejDL+d+QUKiW7luWJtaJ19HvChNiPi6zgXLEhB8F65/g88Ld/z9/SlQoACPHz+mefPmgHzNg6oMor5jffwi/JhxZkaWrfmTMn++7Kzt5SW3gNLTOK9v377Mnz+fYcOGsXz5ciC5KC2d6MaXiJQKBAKBQKADS5YsYc4cuZ5IpVJx4MABADQaTUL6rq6idNHlRdx+c5ti1sWY3XS2XuvQGilp00x1Ja9ZXhY0mYFP24ncLmbEv0YXMTlcHk63hH+KwbXhEJoLe+xlIdo+s1988UWGjg+LCeOvh38BMMB1QMYW4b4SQh7IX37Ljs/YHCBHPvfsga5d5T6EHTvKUdCAADkC+sMPcO0aPHokp+g5ZoH4FQjiSSbo9ET797PhjpxGqq0nTc/kSFc8Aj3YeGcjBgoDpjeanuIYbfpuwjUYWkCt9aAwAM+1FLzZlI7VoGTJElhYWFCgQAFAFqUKhYJlrZehVChZdm0ZD/z0N33KdkxMYMcOsLCAbdtg0yadD3379i2+vr6Ym5vTt29fatWqhaurK506dUoyTkRKBQKBQCDQg61btya437Zs2RJ43wLGw8ODoKAgChUqpNMXJo9AD6afkb8ErWq3CktjS73W0rBhQ0BuDJ/Q8kWjBlUkxAYnb/IuSRDuBfemwz5H7B7PxNU4Dgsl+KjgjbEDaGLg6So46CI3io8N1mtNnwNHjhxh8+bNmJqaMnHixAzNse3+NiLjImng2IDSdhlIfY0OgPvxX5CrLgEDU/3ncHeH77+XU3O7dYO9eyEyEqpXl/sPPnwo14r++ivUqCFqRQUfhcyK0q8qfIWpoSmnnp3iefDzLI+Uzjg7A7Wkpr9r/1T/VpOk72op0AiaXwLbqpiq37LvO1j31VNwW0JJWZMmRIddC7oyrNow1JKaMf+OyZ0tulxcYMUK+eeRI+HOHZ0Ou3//PgCVK1dm06ZNXLlyhdu3byepIYX3ojR//vxYWFgAoI6JwefaNW6sWsXB4cMJjb8hkRsRHuUCgUAgyDLWrVuXYDC0cOFCevXqRZEiRTh27BhhYWFJUnfT60epkTQMOTCEaFU0fSv3pWWplrovJOoN+BykjN8BvJcrMTH0RdpphUKKkeuctBiYQZ4ychsRVTgEXIboRP3m7GpB2QnsCwql876BKBU+nO28mvqRV+HZZvnx9gzU3Qr2DXRfXy4mLCyMYcOGATBz5swkKWW6IkkSK2+sBGB49eSOnzrxcBbEhUChllCknX7HXr8O8+bB33+/T7OrWFFO2e3aFTKYjiwQZITMilIbUxs6l+nM9gfb2Xx3MyE+cl1mVkRKH/g9YPv97Rgpjfip4U+pjkv1GvLVhJbX+HdZR+paHKKMnT/c+pbOBnB7Dux68lD+G1Qo+OWLX9j5cCenn59m96PdfFn+y0yv/5PTty+cPi1HStu0gStX0s2s0IrSSpUqpTpGkiTKFi1KOTMzGhQsyN99+uB7+zb+jx9zIVErmpItW5IniyLknxohSgUCgUCQaVQqFePHj2fp0qUATJkyhe+//x6AunXrcvHiRQ4dOqRXPemyq8s4++Is9hb2LGqRcr/RJEgSvDkOj+bJ5jeAAihiG79fE/F+rNJEbhuiCoeg2/IjnncRSk491LDthh2TFv1ODceadHKEae+eM/PcTAacmc/jkY8xLDsRLvWGd9fhZGMoOxHKTwKjz7vGcNKkSbx8+ZJq1aolRMT15bL3Ze69vUd+8/wpmqakh6nKBzxWAgpwna97BPPmTfjxR4hvQI+xsdy6ZdgwOToqIqGCbCDFKKOeDHAdwPYH29l4ZyPVvasDWRMp/en0T0hIDKs2jGI2xVIdp03fTfEalAbsuV+Qntthz9IBNC0Tidr7EK7FwnEtdg9Ot4Cqi7CzqcjsJrMZcWgEU05NoUvZLhgo0zdqylEoFLBqlVx3fvasLEwvXAAbm1QP0YrSihVlA7+od+94e/8+b+/dw+/+ffzu38f/8WNiQkLoLh/AvfhjUCrJX748hapUoWCVKhRIQ9jmdIQoFQgEAkGmCAsLo1u3bhw7dgwjIyP+/PNPBg4cmLC/a9euXLx4kT179vDs2TMAateuneacTwKe8OPJHwFY035Nqv1IAVmM+uyX+1S+uyFvMzCFAk2haAc2/vuSCVNm0/XLnvy5eqMsRrXiIzYIQh5DyCMwMMFPU4ICperHTxzIv40asX79enr27MlPjX7if/f/x9N3T/nr4V9yW4QWF+H+DHg4Fx7NBc/VUHYClB4JRvqlGucGLly4wIoVKzA0NGTdunV6tfRJzB83ZLfNgVUGYmJoovfxJULXySZHxfuBrQ5fwl68gClT5J6CIJsTjRgB48bJZkYCQTaS2UgpQJPiTSiapyjPgp9hESmndmY2UnrM8xj73PZhZmjGlIZT0hxrZ2eHoaEhQUFBREdHY2qaNJ3+xYsXhERCbJEvoX5r/Hxe8OtgJ2Z0VWDz5gQcrgTW5RiatybPC+ZjjZ8Hux/tpkeFHpm6hmzBxETOwqhXTy4B6NpV7mP6Qd9idWwsge7uBJ45QzNAs2ULi+fNSzUF19TWlvxly2JfsSIFq1ShUJUquAUF0bSlHllEORghSgUCgeA/Tnh4OPfu3aNu3boZOn7RokUcO3aMfPny8ffff1O/fv0k+7t06cJ3333H4cOHiY2NRalUUr169VTnU2lU9NvXj2hVNP0q96ODS4fUT+53Hm7/AIFX5Ocm+aHMd1B6BBjLDpGV698mIGw2x05fAYOkXwowtoX8deUHcC6+9rVRo0aULl2atWvX0qtXL2xsbGjdujWT6k9i8IHBzD4/m68qfIVSaQSVZ0PhNnBnIvhfhDs/wqP5clppgcZg3xjMi8qpwrk8Evfbb3LLlR9++CGhpYO+BEQG8NfDv1CgYFi1YfpPEHgd++jTcrS70sy0x96/D0uXwtatEBMjfykcMwYmTwZb27SPFQg+EVkhSg2UBvSr3I/Z52fzzEa++ZeZSOnWe1sZ+I98c/G7Ot9R0DLtfqdKpZKCBQvi7e3NmzdvkhnxaNtyOcansuYvUITfjyrYelHC78Q3KL3WQcgjlCGPmGcFE8xhxdXv0JTtgtLAKMPXkR2o4+KIUyiIXb+e2PbtiTp1iuA6dQjq0IHgV68I8vIiyMuL0FevkDQaqsYf9y4+k8jQzAz7ChUoUKkSBSpVwr5iRfKXK4dFfPugxHicOfNpL+4jIkSpQCAQ/IeJjIykUaNG3Lp1iyNHjiQYE+nDmfgPxdWrVycTpADFihWjevXq3LghRzErVqyIpWXqUcQFFxdw1ecqRfMUZUmrJSkPCvWA29+Dj+zqi6k9lJsMpYaAoXmSoZUqVcLa2ppnz57x6tWrNNuXXLx4EZAdZadNm4aFhQVLly5l//79tG7dmj6V+zDz3Ewe+T9i7+O9dCvXTT4wfz1odl5OH743XRbJL7bLDy0KAzDKA7ZVwOlrcOwqP88lqNXqhP/roUOHZnieDbc3EKuOpXWp1hS31bOtgSTB7Qnyzy5jU24Bo9HIUYnFi+W2LSDfDPjqK7mdy2fYSkGQu8kKUQrQ37U/s8/PJsIxAkwyJkolSWL2+dn8dFquHx1Xaxw/N/5Zp2NTE6UajYaXL18CJJj3GBoaYmdnR0BAAH6OP1Gw2iK5jCLgCppXe7HzP880s9cEHSiHbYPtYJf6jczMImk0hHp7ExkYSFxEBLHh4e8fHz4PD0825sPn6tjY5Ce5dUt+JEahwNLBgeuvXhFlZcXcDRsoUKkStiVKoNShv+znhhClAoFA8B9FkiQGDhzIrfgPyj179ugtSlUqFdevXwegXr16qY7r2rVrgihNq550051NTDszDYB1HdZhY2qTdIA6Bh79Cg/nyC64hhZQZjyU/T7VWk4DAwPq16/PoUOHOH/+PL169eL169f069ePrl27JhgzwXtRWq9ePRQKBR07dmTp0qUJvyNjA2Mm1pvIyMMjmXVuFl3Ldn1/51qhgEItoGBzCH0s17W+PQMBlyAmUF5vbBC8PSU/bnwDTr2h+vKMOcd+Yu7evUtwcDDFixdP5gqpKxpJw583/wRgRPUR+k/wajf4nSVOkQej8pOS7gsPh82b5ciou7u8zcICBgyQo6MZMGQSCD4FWSVKS+UtRf0i9bngcwHTFqaYmZnpPcfEExNZcGkBChQsabWEMbXG6Hxsatfh5+dHTEwMefPmTXJDskCBAgQEBPD27Vu5JjVfbchXG6XLWA6dHEBln00UjXyKdKwOisqz5NIIRcYbh8RFRhLo7k6Am1uSR6C7O6qoqAzP+yEKpRJjS0uMLS0xsrDAxNAQG09PbGNjsSlXDtt587AtUwZrR0f+OXiQ8d260bp+fcp11b++/nNCiFKBQCD4jzJv3jx27tyJsbExsbGxHD58GEmS0nXFTczDhw+JiIigRIkSCQ3gU6Jr165MmiSLiJREqSRJ/HLul4T2L9MaTqNFyRZJB709A9eGQVi84CjeF1x/BbO008pAbg1z6NAhzp49S/fu3fnqq684f/48t27dYuDAgRgbGxMREcGtW7cwMDBIWGOVKlUAWZDFxcVhZGTEwCoDmXVuFnff3uWg+0Hau7RPejKFQnbztS4HziPfb1fHQmwgvD4Mz7aA31nwXAeR3tBwX44XpqdPy+ZRGe1LCnD06VG8grxwtHakTek2+h0c9Qauy0L2WZ6BOBvbyJHT8+dh40bYtUsWpiC7XY4eDYMGiTRdQY4nsUmQRqNBqcy48BpWYhgXfC4QUyUGj0APvdotbbu/jQWXFmCoNGTXl7voVKaTXudOTZR+GCXVUqBAAR4+fJjQFiYBhYLGDVdQ4fdDjDULYJytSi6LeHMS6mwBswJJx2vi4N1tsCpJVIQC39u3CX7+nLDXrwnz8SH42TMC3NwIiV9HSlgUKIBlwYIYW1gkCEqtqEzreUrjDU1Nk3+O3rsHTZvKvY4XLpRrTk1Mkpkc/ZcRolQgEAj+gxw4cIApU6agUCjYtWsXI0aMwMfHh7t37+Lq6qrzPJcvXwbSNy4qXbo0tWrV4ubNmzRq1CjJvqi4KEYeHsmGOxtQKpT83up3RtZMJObiwuV6TQ+5hQh5ykCNP+R6TR1J3K902rRpnD9/HoB3795x5MgROnTowLVr11Cr1VStWhUrKznqamNjQ8mSJfH09OTx48dUqlQJU0NTfqj3A98e/ZZfzv1CO+d2ugl5A2MwKwQlB8mPoLtwqjn4HoWzHWVhaqh/ZONTkVlRqtaomXJKNkv5pvo3+rlqShJcGypHnAs2xy/8C5wXL4aVK+Hp0/fj6teXo6KdO0MGTZgEgk+NqakpNjY2BAcHExgYSP78+TM8V57wPHAbpCoS44+P55+v/tHpuDtv7jB4/2AAfm/1u96CFFJ34NXWk6YkSoHkohSwMLZgaK3v+PbUZN5aVWSuha9cHnHQGQq3QSrUlojofPieWoPvpaO8eRqB73MI9k99fUojI/KWKkW+MmUSHnYuLuRzccE0DXfcLKFSJblVTMuWcO4c1K4Nhw4JUZoI8Y4tEAgE/zH+/fdfunfvLtcOzZ5Nhw4dOHDgAGvXruXgwYN6idIrV2SDofREKcD+/ft58+ZNkr6WR54eYdThUXgGeWJmaMaObjuSGhu9PQNXBkDEc1AYQoWpUG5ScsOidKhatSrm5ua4ubkxd+5clEolHTt25O+//+Z///sfHTp0SJK6++Gxnp6e3Lx5M6GP3NBqQ5l3YR7XX19n/5P9dCzTUa/1AGBbGZqehlNN4M0xOKcVpubpHvqpUalUnDt3Dsi4KN18dzO339ymaJ6ijK41Wr+DvTbK9cOBlnCqAHX+1wOio+V9RYtCv35yf8D45vICQW6jUKFCBAcH4+vrmylR6uPjAyfBqLIR+5/s57jncZqXbJ5snCRJaCQNSoWSd1Hv6LyzM1GqKAa4Dshw7+DUIqW6iFJJoyHC35/QV68I9fYmwt+fGm9jaH3CgMfh99lUsBFq77tEvQsmMnwHUeE7kDQkw9AYCjqCXVELrKoPxKqYM9bFipGvTBlsixdHmZ03qypUgKtXoV07uHsXatfGMj7FOq0epf8VhCgVCASC/xC7du2id+/exMXFMXTo0ISU2rZt27J27VoOHTrE1KlTdZ5PGymtU6dOumPt7e0TUnyfBz9nwvEJ7H4ku91WsK/Aho4bqF443sxCo4YHM+HBL4AkmwPV3iALuQxgbGxMnTp1OBlvfDNr1ix69+7N33//zf79+wkNDeXChQtAclFarVo1du3axa1btxgwYAAA5kbmTGkwhTFHxjD19FTau7RHqUOtU0REBMbGxhgZxbtJ2pSXhenJL+QowOmW0Gi/7Aqcg7h58yZhYWGULl06Q+Yp4bHhTD41GYB5TedhbqSH8I54AX+Pgr3A1QjQbMUAoHlzGDUK2raF/6ApiODzolChQjx+/BhfX99MCRQfHx8Ih0bKRpzgBOOOjuPOsDsYJXKw3ee2j7FHxvIyRE5nVSqUaCQN1QtXZ2XblXqVcHx4DZC6KNU670b4+fH23j3s3N3pBIQuWMDsqVNRx8Qkm1Nb7PGcs8n2mVooKOBSkEI1G1GobhsKVSqNnYUHSo9FEHQH8l6GZnNl74GcQtGicslBz55w6BCbgO4KBWVTuPb/GkKUCgQCwX+EDRs2MHjwYDQaDd9//z0LFixI+PLRrFkzjI2NuXr1Kv7+/jrdqQ8MDMTd3R1TU1Odv0S9DHnJ7HOzWX9nPSqNCnMjc2Y0msG42uPef2mK8oWLvcDvDKCACj/JD2Xm2gI0b96ckydP0qpVKyZOnIhSqaRhw4acO3eOPXv2JAjslCKlIAuzxAytNpSFlxfywO8BOx7skPuWpsGuXbvo378/FStW5Ny5cxhre9ZZl4OmZ+F0c/C/AMcbwhdHwbxwpq43K8ls6u6vF37lTfgbahapSc+KPXU/8MYN+LY9XIiUnxsZwoC+XGvYkJp9+2ZoLQJBTiSrzI6843tcdincBa8oLx75P8JluQvDqw+nvXN7fj77Mzsf7gRAgQIJOWJaNl9Z9nbfi6lhxmvbP0zfjY2I4J2HB2EXLtAc0GzaxML584lIlK7rCuDnhxowy5uXPA4O5ClaFIsCBTC3s+NupDvbX/5DZefaTO/wK2Z2dpjb2WGWNy8GxillzNSGoq3gaC25b/WlPtBgd6YMkrIcKyvYtw+fkSOxXr2atpIENWtCjx4wc+Z/NuNDiFKBQCD4D3D+/HkGDRqEJEnMnDmTqVOnJrkbbmlpSaNGjTh+/DhHjhyhT58+6c557do1AKpXr/5eYH3AhZcXuPjyIl5BXngGeXLuxTniNHEoFUq+rvQ1s5vMxtE6vq2HpAGvTXDnB4gJANMCUPd/ULBp5n8BwJgxYyhevDht27ZNMBLp3bs3586dY+bMmYSGhlKsWLFkDee1ovTOnTuo1WoM4qNyJoYmTG80nUH7BzHt9DS+LPdlkmiEFkmSmDdvHpMny5HCq1ev8ssvv/DLL7+8H2RdBppfgtMtIOQBHK8LTU6CVcksufbMkhlR+jLkJQsvLwRgccvF6UeUAwPhzBlYswaOHpW3GQGDBsKk6eDoSORn1JtPIICsE6U+Pj4AFHcozpbyW+i9tzfPgp8x8cREJp6YCICFkQXzms3jmxrfAHJvaEOloU7ZHh8iSRKh3t68vXuXwKtXaQcUun+fRUWLEqZdS/wj4t49AIytrChQqRLR1tZsOHwYx5o12Xb8OCZ5krfIcg5+wYSl/+Bh/JA/69XGWJfSDdP80PgQHKsL3n/LbaSqLMxZfaINDTlaqxY/rl7NBhcX2j5/Djt3wu7d0L8/TJsmG7b9h9D51adQKAwUCsVthUJx8IPtvysUivBEz00UCsVOhULxVKFQXFUoFE5ZuF6BQCAQ6El0dDSDBw9GkiR+/PFHfvrppxTTs9q2bQvAoUOHdJo3LZOjlyEv6fpXVxpsaMCPJ39k9a3VnHx2EpVGRe+KvXn0zSO2dN7yXpAG3YUTDeHqQFmQFmwOre9kmSAFMDMzo3v37lhYvE/l6tatG0ZGRjx//hxIua2NnZ0dxYoVIyoqCjc3tyT7+lbui7OdM55Bnmy4syHZsSqVioEDBzJ58mQUCgVDhw5FoVAwd+7chFY6CVg4QPMLYFdLTlk92w7iQjN/4ZkkNjY2IbW5cePGeh//44kfiVZF81WFr6jrUDf5gJAQOHAAvvsOXF0hf37o1k0WpKYKaAucmAZ/rPvPfUkT/HfIKlH6+vVrAAoXLkxdh7o8Hf2Ugz0P0qZ0GxQoaFq8KfdH3GdUzVEoFUqUCiXGBsY6C1KNWs3rGze4OH8+Ozp1YlHhwixxdGR7+/ZcnzWL6kCR2FjCfHxQGhmRr0wZPIyMOAW03rSJMV5e/BgSwsALF6g1cyY3AM+YmBQFKUAxm2KUz1+esNgwLry8oPsvwrosNNgjexG4LYIbI+WykBzE/fv38Qfu9esHHh4wZIi8Y906KFUKOnaEv/6CLGxXk5PRJ1I6FngMJLxqFApFdeDDwpdBQJAkSaUUCsVXwK9Aj8wuVCAQCAQZY+bMmbi7u1O2bFlmzJiR6ri2bdsybtw4jh49ikqlwjAdQ4iUTI5i1bEsuryIX879QmRcJBZGFgxwHUCZfGUoYVuCCvYVcLB2SDrRk+VwaxxIajk6WuU3cOr1Se5q582bl7Zt27Jv3z4A6tevn+K4atWq8eLFC27dukX58uUTthsqDfnli1/osbsHM8/OpFfFXlgav+/Dt2fPHjZu3IiZmRn/+9//6Ny5MxYWFixevJh+/fpx69YtTE0TpcuZ2EGT4/Id/pAHcOlr2fwoG1PPrl+/TmRkJGXLlk1Iz9OVK95X2P5gO6aGpsxrOk/eGBEBFy7AqVOyG+XNm6BJ5FhiYgJ16oCrKZQ5AkXKQL0pWXhFAkHOI6tEqb+/bD+rLcEwUBrQ1rktbZ3bEhEbgbmRuV41o7Hh4by+cYNXly/jffkyL86dIyYkJMkYU1tbClerhl2ZMixYvx7vyEj+vXqVElWrEh4ZyShra8zMzKjRp0+Sc2s9BlJy301M29Jteej/kEPuh2hSvInOa6dgE6i3Ay71Bo8/INIH6m3PMWZy9+IjxxUrVgQHB1i9GiZMgOnT5ajp/v3yw8oKBg6E77+Xx32m6PQpp1AoiiLfq1ybaJsBsAD44YPhHYFN8T/vBpoqMloxLRAIBIJMcfv2bebPn49CoWDdunWYmJikOrZUqVI4OzsTHBzMpUuX0pxXo9Fw9epV4L3J0QmvE1T6oxKTTk4iMi6S7uW74zbKjWVtljGy5khal26dVJBqVHBjDNwcLQvS0iOh3RMo3vuTpln17t074eeUIqUgi1JIXlcK0K1cN6oWqopPmA+jDo9Ksk87/ocffqBz584AzJ49GxcXFx4/fsz06dOTn8zIShaixray4+z9GRm4qqwjo6m7kiTx7dFvKRoCmyJaUOynhVC9OtjYQKtWMH8+XL8OSiXUqwdTp8pCNTgYDv0P6lwAK6DaUr3dlgWC3IZWlH7YTkUfNBoNgYGBAOTLly/ZfgtjizQFqUat5u39+9xat44DQ4fyZ+XKzLO2ZtMXX3Bq8mTcDxwgJiQE25IlqTpkCJ23bGGUuzs/BAbS5/hx2ixbhn/x4jwFIkxMUBoaJnHe/fDcWlHq7++PRpOClW48bZ3js3g8dMviSYJjV2hyIv79dL9sKhcbrP88H4EU28GULg3btoGPDyxZAjVqQFgYLF0KJUvC4MHwQcYOgF+EH1FxuTuiqmukdAmy+LRKtG0UsF+SJN8PXmRFgFcAkiSpFApFCGAHBCQepFAohgJDQbaEPpPD60PCw8Nz/BoFnzfiNSjQF7VazYgRI1Cr1XTp0oWYmJh0X0OVKlXC3d2d1atXp/glQfs6fPbsGaGhodjb23Px/kVW7lvJGX95bgczB8aWHks122o8vfWUpzxNNo+BJoJyQb9gF3MVDUY8sZnA24jmcOl2Vly6XuTJk4cCBQpgaGiIv79/ir8jbdT41KlTKe4fVWQUI96OYNPdTRSOKUyLAi0AEtJegSTHjRkzhtGjR7Nw4UIaNGiApeX76CqShDI6GmuLSVSK/RHFg1944GNAgFnS/q6fir179wLyF0hd3oOM3r3D5t49Ii4dYNPNWzi/A9ifsF9SKgkrU4bgKlUIcnUltGJF1GaJ+rNevkT5oBnkV4UTYFqPB0+M4UnS84r3Q0F2k9WvwZcvZSdcLy+vDM8bGhqKRqPBwsIiocVVWsQEBBD2+DGh8Y/wJ09Qf5gqqlRi6exMnnLlyFOuHNYVK2IanzHxDnjn4yMLqHi0mR9Hjx4lKCgooczD0tIyxeuytLQkPDycAwcOYG1tneI61ZIaS0NLngQ+4X///o8iZvo7gJtbL6HSux8wDbxGwIE2PMg7K1szUIKCgvD398fCwgIvLy+ePXuWfFDlylC5MhZPn+K4fTv2Z86gWLcO1q3jXbVqvO7UiYiKFTlz5gwLnizgpN9JfnD5gSb2ekSTcxKSJKX5ANoBK+N/bgwcBAoDFwDD+O3hicY/AIomeu4J5EvrHNWqVZNyOqdPn87uJQj+44jXoEBfJk+eLAFSsWLFpLCwMJ2O2bVrlwRIbdq0SXG/9nW4du1aCSVSpeGVJIvZFhIzkMxmmUlzzs2RouOi0z7JmzOStM9Jkv6HJO22k6S35/W5rI9CcHCwFBISkur+t2/fSoBkYWEhqdXqFMesublGYgaSxWwLyc3fTZIkSSpZsqQESA8ePEg2vly5clJekLyWLpWkCRMkqVkzSXJxkSRzc0kCSTIykqSC1pJUHElyVkhStbKSVKeOJHXsKEm//ipJFy5IUlRUVlx+muTLl08CJG9v75QH+PhI0rZtkjRsmCSVKSOvPdEjxsJUktq1k6Q5cyTp1ClJSu+1eOsH+bWx00qSwjxTHCLeDwXZTVa/BkNCQiRAMjc3lzQaTYbmcHNzkwCpVKlSKe6PCQ+Xnhw4IB0cMUJa4uQkzYBkj8XFikm7uneXLv32m/TiwgUpNjJSrzV8/fXXEiBt2LBBkiRJWr58uQRIQ4YMSXG8i4tLqu+Riemxq4fEDKSlV5bqtZ4khHlJ0q688vvLvZ8zPk8WcObMGQmQateurftB7u6SNHTo+88IkKIKFJA0K1ZIJeYVlpiBdNv39kdbc1YA3JBS0YO6RErrAR0UCkUbwBS5pvQhEAM8jY+SmisUiqeSJJUCfAAHwFuhUBgC1kCg3mpZIBAIBBnmn3/+Yc6cOSiVSjZs2JA0EpcCkiRx/fV1DqsOw3A4an6UoouKEqeJw8nGidpFalPHoQ4+QT543/Nm1YNVMBzu2d+DOOhcpjNLWi15b1yUEqoouDsFniwhofdo/V05wmE2tTv0Wuzt7SlatCje3t64u7tTpkyZZGMGVRnEyWcn2fFgBz129+DIV0fw8vLCwMCA0qVLy4PUajll9eBB/nn5klIAY8cmP6GJCcTEwBtt7ZaEbOsQzz//yP8aGECJEuDiIhtj5M8vp8dqrycmBqKj5XGWlmBhIT+0P1taymOtrSGFGuLIyEgCAgKwNTKi0Lt3csP3Z8/g6VPZmOPxY/DySnqQuTleZQuxztqTV9VLs+GX+2Ccetp4EtxXwOP5sjlJgz1gWUK34wSCXI6VlRXm5uZERkYSFhZGnlSMf9IiIEBOStSm7kb4+fHq0iVeXrzIq4sX8b15E3VsbMJ4kzx5KFyjBkVq1aJorVoUqVULywIFMnUd2jRkbdpu4vTdlChQoABPnjzh7du3Ser1P6Rt6bbsfLiTQx6HGFNrTMYWZ1lcrik93Uoui8hbDYq0zdhcmURrmpfSZ0mqlC4Nq1bBr7/Cxo2wciWmHh4wciTnLWFVEysqW5b6OAv+BKQrSiVJmgRMAlAoFI2B8ZIktUs8RqFQhMcLUpBzdPoBl4FuwKl4ZSwQCASCT4CHhwd943s4zps3L91awD2P9jD++HieBz+XNxQENWp8wuSULL8IP675XOP3a7/L++8BNvKPRcyKsKbzGlqXbp3y5Opo8D0Gr/aA9z8QFwIKAyg/BSpMzXTv0U9JtWrV8Pb25tatWyl+kVAoFKxqt4rrPte5+/YuZVaWwaCORBvfQhivXAlnz8K5c/DuHQClgGgg2MWFgl27Qu3aULy4bGSRJ48sKN++BV9fuDcPfP6Rayvzfg8P3sHFi/DwoSwOPTwyf4EWFlCwIBQpIj+io1E+eUIAYBcXB6n1orW0hPr1oVEjaNSId+WKU3llacJj4XS/1RjoKki998PN+C+btdZAoeaZvyaBIJegUCgoVKgQnp6e+Pr66iVKJY2GkFev8Dx2jFpAdW9vlpUuzbunH5ROKBQUqVmTUm3aULpNGwpXq4ZCmbUprFrju5UrVzJu3LiEtOS0RCmkb3bUqlQrFCg48/wM4bHhSQzl9KJQC6g8G+5Olg2QWl6FPC4ZmysTZEiUarGxgXHjYPRoHs6aRf6tqyj81Jef94fBhg0wenSWrvVT8TH6lK4DtigUiqfI6eZffYRzCAQCgSAFIiIi6Nq1K6GhoXTp0oXx48enOf6g+0F67O6BWlJTyLIQX5b7kiNLjuB+3Z1dO3dRp1YdHgc85or3Fa54X+GV3ytK5C/Bvs37MA4z5vHJx1iZWSWfWNKA10a4Owmi/d5vz1sNavwBdjWy9sI/NpJEM0dHCgAWq1fDmzeyGZOJiSzKrKxAksjj789l3zZcubSLQh5vqOgHJmpv+PbbhKkCClgR2rwRx6IMGbdnHz8PGMDEiROTn9PUFIoVkx+19sK1oeC5DgyXw/ybkOdPuVXA06fg7g6enrLgDQ6WH0qlPIeJiRyhjYiA8PDk/4aEyI+ICHkOT8/3S4h/xCqVGJcqJa/FyUmOypYqJd+5L1s2SZR1yelphMeG07JkSxo7Ndbt9xv8EC72lF83FX+GEv31/i8SCHI7BQsWTBClLi4uXLp0iZMnTzJlyhSUSiWxEREEursT4OZG4JMnBLi5yT+7u6OKrwVtDeDtzTvAyNycorVrU7RuXRzr1aNo7dqY2th81Gvo3Lkz9evX58KFC8yYMUOnSCmkL0rzW+SnVtFaXPG+wgmvE3Qq0ynjiyz3IwRel3uYHq8HDf4G+wYZny8DZEqUajEwwL9RI8Y4ncXsqC+rvatQeODALFrhp0cvUSpJ0hngTArbLRP9HA18mdmFCQQCgSBlJEli//79GBgY0KpVqwQTnjt37jB48GDu37+Pi4sLGzZsSNNp8cLLC3y560vUkpqJ9SYyp+kclAolA/4agHuQO34efhRpXoQieYrQrEQzQDbr8ff3Z9+xfTRs1jBlQRpwFW6MhnfxfThtKkGxHuDQNVvuSGeYyEg4cwb+/RcOH2aUNk317Fn5kQr5gfaJnnvkhYsOcNYJzhaDZ7ZhoDiIIYaoJHjp+zL9tSiUUHO17Br5ag9c7A4tLoOZGVSsKD8ygyTJDo++vrJpibc3mJqy/+5dhsyZQ+uvv2bjpk3pThMSHcLvV+WI+k8Nf9Lt3HFhcKErqCPB6WuooONxAsFnhjb11efFC15cvsxPbdpgEhLC7/v2Ifn7E/rqVarHWhYsSISZGdefPaNi06aM+vVXClaujDKd1l5ZjUKhYNmyZVSrVo1ly5YlGB9lVpQCtCvdjiveVzjkfihzolShgDqb4WIPeH0YTjWFmmuhRN+Mz6knWSJKgSh1FOdfXkBdRonJ2uNgbpH+QTmUT/tKFQgEAkGmUKlUjB07lpUrVwLg6OjIsGHDCAkJ4bfffkOtVuPo6Mjff/+dZvrX/bf3ab+9PdGqaAZXGczcpnMTBGyl+DRNrV39h5yNF2SNGn3gBhvyGO5Ng1e75edmhaHKAijW85O2eMkUgYGwezfs2ycL0ujohF2qPHnYHRpKTN689OvbVxZyMTGymAsPl5/b28uPggWZvncvi8+cYeKvs2jYvCFOkpqvVDHylyqPQ1x/fR0qwd7wvSxSLcLEMJ00V4USaq2DoNsQdAdufQ81VmTNdSsUcspwnjxyfWo8Nx8+xA9wTOUL5Ycsu7aMkJgQvnD6gnqOKbfXSYIkwdVBEPoEbCpCzVW557UiEGQB6thYXt+4wesbNyj14AHDgacDB/JUo6Fh/JiQW7cAUBoZYVe6NPnKlMHOxYV8ZcrIPzs7Y2pjw/fff8/BRYto2LIlhePbWGUHrq6uDB8+nJUrVxIREYGBgQGFCxdOcaw+orStc1umnp7K4aeHkSRJr36ryTCyhIb/wO3x8GQpXOkH0W+h3ISMz6kjkZGRvHjxAkNDQ0qUyFzd/O2g28Rp4qhdtDZ25nZZtMLsQYhSgUAgyCWEhITQo0cPjh49iomJCUWLFsXT05MpU6YA8h3qsWPHMmvWrDSNja54X6HD9g4ERwfTuUxn/mj3R5IPd23PNG1j7w9JIkolCYJuwZPf4flWOf1SaQJlvpXrRo0yWPfzqZAk2ajn7FnYsweOHQOV6v3+atWgdWto04ZwZ2d65suHZWwsfRctSvcL0Z5VqwgDWrq2pHqx6gnbW5ZqyfTG01l/YD2Dzg/ijeUbeu3txc5uOzFUpvOxbGwN9f+CY3XBYyUU+AIcu2XiF5A22nowR8c0DKziCYsJY/GVxYAeUdInS+HlLjC0gvq7c0xTe4HgYyFJEgFubngcOsSzkyd5cf48cRERgJwqXzB+TJiJCc9jYngDVGvZkhnLl2Pj5JRm5PNDo6Ps5JdffmHnzp0EBgZSpEiRhIyeD9FHlFYuUJkiVkXwCfPhzps7VClUJXOLVBpCtSVyBs/1kXKdadEOHz2jx93dHUmSKFWqFEZGmfNVuBZ0DYBWJVtlxdKyFSFKBQKBIBcQHBxM/fr1efjwIfnz5+eff/6hVq1aHD9+nJUrVxIYGMhvv/1GrVq10pxn18Nd9N3Xl2hVNK1KtWJb123JhJBWlD548CDZ3eiQkBDcHj+geikj6lifhUPDIDTeFVZhCKWGygZG5vr3kftkaDRw8iRs3gynTyfpsYeBAbRsCT16QJs2kMiJ0lqSsLKyIiwsjODgYGxtbVM9hUqlwt3dHUg9PatOqTowFJQDlex9vJeB/wxkY6eNKNPrnZe3GlRZKJsCXR0kf4GyyWT6biroI0pXXl/Ju6h31HOol34tqSTJTru346MSdTZCHufMLVYgyKGo4+J4dfEiT/bv58n+/QQlqtsGyFe2LA516/IiNpb5W7agLFCAl2/eoFQq0Wg0GERGkrdU+q6q/v7+AOTPn/+jXIc+5M2bl7lz5zJ06FDKli2b6jh9RKlCoaBN6TasubWGQx6HMi9KtZQeAe9ugedauDkOGh/+qBkbWZW6K0kS197Fi9JSQpQKBAKB4BOwceNGHj58iLOzM//++29Cyk/Lli1p2bJluserNCoWXFzA5FOTARhadSjL2yzHyCD5XdoCBQpgb2+Pn58fL1++pFghG/A7A29OUj1wL2FrwdQ4Dh7ER8NM8skpumXG5ewWHt7esjPh+vXw/Pn77XZ20LAhNG8O3brJbVVSQKFQ4OjoyMOHD3n58mWaotTLy4u4uDgcHBxSjVoXKlQI3oDpblMU/RRsubeFcvnL8WP9H9O/FudR4HdWri89+QU0OQm2ldM/Tk90FaURsRH8dvk3QI6SphlFjg2Ba0PkCCnINaQOXbJkvQJBTkGjUuF+6BCP/voLj8OHiQ4OTthnni8fpdu2pWTLljg1boxVfC3p0aNH8d6yRTZSA8aMGcOSJUt4/PhxSqdIRk6KlAIMHjwYOzs7XF1dUx1jb28P6CZKQW4NoxWlUxtOzYplylSeLb8n+R6B14egSLv0j8kgWSVKPd554Bvti52ZHdULV0//gByOEKUCgUCQg3jx4gUeHh40a9YsyfZ/4vtSTp8+Xa8aFI2kYeeDnUw/Mx2Pd3LbkPnN5jO+7vjUhYM6mj4timAb40eeKy1B4yGn5QJFZM8KAmPzYufcRjYwKtQy57Z2iYuDgwdh7Vo4ckSOkgI4OsKgQdC1q+weq2NbBAcHhwRRWrly6iJQ+yWyXLlyqY6xtrbGxMSESPdIdrfbTbe/u/HT6Z9oVqJZ+l8wFAqouxXOR8lGHSebQJPjkLeqTtehCxqNhlfxxioODg5pjl19czX+kf7UKFyDFiVbpD7wzQm4NhzCPeWU3Vpr5NeQQPCZEPb6NbfWruXWmjWEensnbM9XpgzOHTrg0qEDRWvXRmlgkOxYrdERyO8PP//8M2vXriUgIICAgIB0xWZOE6UKhYIuXdK+4aSNlPr5+elUJ9q0RFOMDYy56n0V/wh/8ltkUVTY1B4qTodb38HNb6FgczDQsZ2VnmSVKD3y9AgALUq2wECZ/PWU28ja5kQCgUDwH+PVq1dUr16dyZMnZ8l8vXr1onnz5pw5cyZh27t37zh//jyGhoa0adNG57mOeR7D9U9Xeu3thcc7D0rlLcX+r/Yzod6ElD/4JQnclsJuOxa2vs2UTmCrfgIoIX99qDCdvpuKYDME7jrugrpb5LvJOVGQxsbCmjXg7AxdusDhw3JqbvfucPSoXEc6bRqUL6+zIIX3EcNXabhgAjx69AggzbQ1bV9CAFcLV0bXHI1Ko6LXnl5ExEakvxgDU2iwF4q0h9h3cLIpBFzR8UrSx9/fn5iYGOzs7LCwSN3RMSouivmX5gMwrdG0lF9b727BqRZwqrksSG1dodVNIUgFnwWSJOF18iR/devGYkdHzkyfTqi3N3bOzjT79VdGPXnCyMePaf7rrzjWq5eiIIWkonT48OHkyZMnQbhohUxa5KT0XV0xNzfH0tKS2NhYghNFk1PD0tiSxk6NkZASRJmuxMTEJLSoSRHnUZCnDIQ/levdPxLa/8u0Ph90QXv9n0PqLghRKhAIBBkmOjqarl27cvPmTebPn49P4trEDwgODmb+/Pm8e/cu1TGhoaFcuSKLij///DNh+6FDh1Cr1TRu3BgbHXrMuQe60357e1pubcl9v/s45HFgTfs1PPrmEe1d2qd8UGwwXOgGt8aBOpJAjQO/HYZ5VxtCtyBofp5gx3FsPf6ayDijhAbpOQ61Wo6Kli4NQ4fKabrOzrBoEbx+DTt3QosWskDNAFpRqk1rTQ1tpDS9Lx0FCxYEwNfXl/nN51PBvgIe7zwYd2ScbgsyMJENgop2hLhgOZX3xV+6HZsOuqburru9jjfhb6hSsAptS7dNujPqLVzuB0eqwZvjYGQNlefK7WzylM6SdQoE2YUqJoaba9awomxZtjRrxuM9ewAo27UrfU6cYKSbG/V++AE7Z93qpe3s7MiXLx+mpqaMGTMGeB9NSy+FNzo6mvDwcIyMjNJ0Xs+JJI6W6oL2feaQxyFAvnE7aNAgLl26lOZxkyZNokSJEpw8eTLlAUojqBYvRh/8Ir9/ZTEajYYnT54A4OKScUOl8NhwTj8/DZB2dkouQohSgUAgyACSJDFy5EiuX5d7carV6iRC8kO+++47Jk6cyA8//JDqmEuXLqGJTy/du3dvwl3vffv2AdCxY8c013T3zV0G7x9MhZUVOOh+EEtjS+Y1nYf7aHcGVx2cYv0oAEH34N+q8GovGOWB+rt5VmYv4/8HW08GJjjoXrhwAUmSqFmzJubmOdAl9dgxqFIFhgyBly/ltNxt2+DRI/j2W8iClLasFqXayIivry+mhqZs77odEwMT1t5eyz9u/+i2KANjqL9LNplSR8u99x7MliPfmUAXURqjiuHXi78CMLXh1PdRUo1aNjI66ALPNsuOzGXHQwcvKP+jHOUVCHIpMaGhvNqxg6XFi3Nw6FACnzzBqkgRGv/8M9++fEn33bsp0bSp3i1LlEolp0+f5sqVKwktVLTvIelFShOn7maqVUo2oI/ZEbwXpUc9j6LSqNi9ezfr16+nXbt2aUZCr127hkajYdmyZalPXqgFFG4HqnC4P0Pna9CVly9fEh0dTaFChbC2ts7wPEeeHiFaFU35POUpaFkwC1eYfQhRKhAIBBlg1apVrF+/HjMzs4QPuFWrVhGdqK+lllevXrFlyxYAtm/fTkhISIpznjt3LuHnuLg4Nm/eTHR0NEePHgWgQ4cOCfsj4yK5++Yu+9z2sfjyYhptbITrKlfW3V6HSqNigOsAPEZ7MLH+REwN0xAAUW/hTGuIeAa2VaHVLXDsSrly5VAoFDx58oSYmBggjf6k2c2jR7JTbsuWcP8+FCsG//uf/HPPnhmOiqaEtrYyLVEqSVLCF8i0akrhfaT0TbyxSQX7CsxrNg+ACccnoNKoUj02CUojqPEnVPkNUMC9qXCmDQTd4dGjR3h4eOg2TyJ0EaWb7m7CO9SbCvYV3jezj3oLJxrCjVEQFwKFWkPbh3LPWpO8eq9DIMgpBD17xpFvv2VR0aJ4rVpFuK8vBSpXpuv27Yx7/pxG06ZhlUo/Tl2pUKFCknp1rShNL1Ka0+pJ9UFfUVoyb0lc7FwIjg7mzPMz+Pr6AhAUFET37t2JjY1N8Tjv+BrfgwcPJhyTIlV+lftCe66BkPTTpvVB+/+Y2XrSPY/lqHzDfA3TGZl7EKJUIBAI9OTu3bsJqVVr165l5MiRuLq64u/vz19/JU+d/O2331DF976MjIxk27ZtKc6rFaVDhgwBYM2aNZw4cYKIiAiqVKmCJo+GZVeX0XJrS2x/tcV1lSudd3bmu2Pfce7FOayMrRhTcwxuo9xY33F9+ndPNSq4+BVEvYb89aDFRbAqCch1PqVKlUKlUuHm5oYkSZw+LacK5RhR6u8P33wDlSrBv/+ClRX8+iu4uUGvXlkqRrXoEin19vYmPDyc/PnzY2eXdjPzxJFSLSNrjKSkbUk83nmw5e4W3RenUEDZ76Dh32BoKbtI/lsFt7WV+apVeQ4cOKD7XKQvSuPUccy9MBeAKQ2myK1sgu/D0ZoQcAnMisg1r40PJbyuBILchiRJvLp0ib+6dWNZqVJcXbKE2LAwrF1d6XX4MMNu36bCV1+l2T80M+iavvs5iNLXr1/rfEz38t0B+ObQN7zye1/jf+3aNcaPH59svEajSSixUavVbNy4MfXJrctBycEgqeGuDm7oepAVJkfRqmgOuh8EoEG+BlmyrpyAEKUCgUCgJ7t27SIuLo7+/fvTq1cvFApFgkj9/fffkRKlTQYEBLBmzRoAfvxR/nBbtWpVkjEAUVFRXLt2DYVCwZw5cyhUqBBPnjxhypQpoATLjpaUWFqCMUfGcMzzGHHqOMrmK0ub0m0YWWMkq9utxuc7H5a2XoqznY79Hu9Ollu9mBaU0z8/SKmsVKkSAFeuXKFXr17cvHkTExMT6tatm5FfW9ah0cAff0CpUvK/kgQjRsDTp/DDD2D68VJDixQpgkKh4PXr1wk3Gj5EF5MjLVpRqo2UAhgZGDGj8QwAfj77M7HqlO/6p0rRjtDBE1zGocaILtVV3PwljiL3O3Dzf70hKo0IQSLSE6Xb7m/jefBzXOxc+LLcl/D6CByrB5Evwa62bGTk0Pmj9vsTCD4WGrWah7t2sa5OHdbXq8fjPXtQGBhQqU8fht66hevixZRu3fqjp8qWKlUKQ0NDXrx4QWRkZKrjcqPJkRbtZ402G0cXJtWfREX7ini88+CY0TEAvv/+e4yMjFi2bBm7du1KMt7f3z/Je/a6desSymVSpOIMMLQA73/A77zuF5MOWSFKj3seJzw2nCoFq1DIrFD6B+QShCgVCAQCPbl9+zYArVu3Ttj21VdfYWdnx82bNxPMikAWqZGRkbRu3ZoZM2aQL18+7t69y7Vr15LMee3aNeLi4qhcuTL58uVj4MCBANx7cQ/6w3nOo1Ao6FauG5s7bcZvgh+PRj7iUK9DLG+znCHVhmBlYqX7RbzcA48XgMIA6v8FKXywVaxYEYCRI0eyY8cOLC0tmTp1aqp9Nz8JHh7wxRdyhDQ0FFq1gnv3YOVKiO939zExMTGhYMGCqNXqVNO/dK0nhaRGR4npWaEnZfOV5UXIC9bdWqf/Qk3todpilj0fw/JjEBKloKoTVFNsQ73XEe5NA1VUmlOkJUo1koYFlxYA8GP9HzF4tRvOtgNVGDj2gKanwKyA/usWCLIZdVwcdzZuZGW5cuzu3h2fq1cxy5uX+pMnM+75czpv3kyhKlU+2XqMjIwoVaoUkiTh7u6e6rjcHClt107uCXrs2LEUS2BSwszIjJ3ddmJuZM4r21fgCu3bt+e33+R+ydOmTUsyXpu6W758eYoWLYqnp2faItisEJSJj7jeHp/pGn0tWSFK97rtBaBr2a5ZsqacghClAoFAoCdaUVq16vuekGZmZgwdOhSAuXPn4uvrS1hYWEK96aRJkzAxMWHAgAGAHC1NjDZ1t0EDORWnT/8+UB0YDjhCYavCnOx7kl1f7qJP5T7kM8/EF49nW+BSL/nnKgvBPuX0H60oVavVODs7c/XqVerXr5/x82YGjQaWLJFTdc+dkwXorl1y2m758p90KenVlWYkUvqhKDVQGjDzi5kAzDo/i6i4tAVkahw594DRm+C45Wb+DujDvhtgoFDJzpKHyoPP4VSPTUuUHvY4zEP/hxSxKsLXeQzk15OkhrI/QL1tYGiWofUKBNmFKjqa63/8wbLSpflnwAAC3d2xKV6cNitX8u2rVzSdPTvT9aIZRZcU3twcKXVwcMDV1ZWIiIiEMhFdKJu/LMtbL5eftAFfA18GDx4MgKenJ2q1OmGsNnW3WLFiCTd9tVlMqZ9gvJxJFHgNPP7Q44pSJ7OiNE4dl2CC16Vs2j1gcxtClAoEAoEevH37Fl9fX6ysrChRokSSfSNGjMDAwIADBw5QuHBhHB0dCQ4Opl69egliU1svumPHjiQ92bSitF6Demy8s5FWh1pBO8AMnGKduDv8Lo2dGmdu8ZIG7k6Fy31BEwsu48BlbKrDGzduTKlSpejRowfXrl1L17Tno+HrC61byw660dHQt69sbtStW7YsJ7260ps3bwJQRYdoyodGR4npUrYLrgVdeR32mmXX0nCLTAWNRsPly5cBqF2vMZ3HbGaP/9fU+xn84wrK5lZn28KplnIf0URER0fj5+eHkZFRwhoTM/+i3Jd0VYVGGF7tL7+2KvwErvNkgxCBIJcQGxHB5cWLWVqiBIe/+YaQFy/IV6YMnTZvZrS7OzVGjMAom93GdTE7ys2RUpCjnIDete/9Xftj+MgQjKHnyZ6039Ue25q2xKnikrRp00ZKixYtyoABA1AoFOzZs4fAwMDUJzeyhOq/yz/f+k6umc8E7969w8/PD3Nzc4oWLZqhOc48P0NQdBBl85WlbP7M9TnNaYhPDoFAINADbZTU1dUVpTLpW6iDgwNr166lSZMmWFlZJYjOn376KWFM6dKladKkCVFRUWzduhWQnXYvXboEBrAyZCUD/hnA8+DnlLAqQX3f+pwbfi5zkVGA6AC40AMezpZTdquvgGqL06z3y5s3Lx4eHuzYsSNT1vWZ4p9/oGJFud2LnR38/Tds2iT/nE1oRemrV6+S7YuJieH+/fsoFAqdRKm9vT0KhQI/P79kNapKhZJZX8wC4McTP7Lg4oJktchp8ejRI0JDQ3FwcEj4AtS6dWsuuUO/7RXkKLlRHnhzTO4jeuErCH8OJP0C9+Hr/PKry5x/eZ5J+UxpE7AjXpBOh0ozRf2oINcQHRLC+TlzWOrkxLHvvktw0v1y1y5GPHhA5T59Ppp5kb7oI0pzY6QU3ovSgwcP6vU+FxUVhepvFcqrSiyNLTn57CRBbYKgDzx++v73pX1PK1KkCE5OTjRv3pzY2NhUjQcTcPxSNj3SxMDFnqBKva43PRL3J/3wfVVXtK67n1vqLghRKhAIBHqhFaWpCY7+/ftz8uRJgoODefToETdv3qRly5ZJxgwfPhyQxeq9e/e4ffs2kZGRWPey5pzPOewt7NnSeQvu49w5/+f5hHTRDKFRw9PVcr/IV7vB0AoaHQTnbzI+56fg3Tvo0wc6dYLAQGjeXK4d7dQpu1eWZqT0/v37xMXFUaZMGays0q/xNTIyIl++fEiSlJB+l5i2zm2Z3WQ2EhI/nPiBgfsHEqOK0Wmd2kby9erVS9jWrFkzAE6fvUB08ZFy39Ay38t9RF/uhMMV4MlyXr54nuRaE7P84hx2FYQ5ttEo0EDFmVBphk5rEgiym5jQUM7MmMGSYsU4NWUKkQEBFK1dm54HDzLs9m3KdeuG8iM4d2cGbapnWr1Kte8fuTVSWq1aNQoVKsSrV6+4e/euzse9ffsW4qDIgyK8+vYV85vNx0RlAiVgwvUJCUZx2qip9gZd7969AbmONf3FLYE8ZSDkIdz6Xr8LS8TTp08B+eZ0RlBr1Oxz2wdA13JClAoEAsF/mvREqRalUknZsmWT1J1q6dKlC507dyY4OJgWLVqwYcMGqAchJUMwMzTjYM+DfF3pawyUmfhipFHDq31wrDZcGwax76BgM2h1Awq3yvi8n4IDB+Q60a1bwcxMriU9cgSyqZ7rQ9ISpTdu3ACgevXqOs+XWl2plskNJrP7y92YG5mz8c5GGm9qzGP/tNtDAFy8eBEgiVuyvb09lStXJjo6mgsXLoCJHVRdCO09wLE7qCLg5mjK+Y6krjOUckr0O496w+v7C5kefZBuVqAxtJJbvlT86cNTCwQ5DlV0NFeWLOH3kiU5+/PPxISE4PTFF/Q9eZKBly7h3LbtR3fSzShaUeru7p6q63duT99VKpUJhkf6pPBqe5sWKFAAG1MbJtSbQH+pP0TA/ej7fL33a9QadZLsD5DLUwDOnz+fpPY0RQwtoN52UBrD0z/B56B+FxePtkyjcAY/yw57HOZtxFtK2JagcoHK6R+QyxCiVCAQCPRAV1GaFgYGBmzbto2mTZvy9u1b/jz3JzSX923tspUaRWpkfIExgfBoPhwoCec7w7sbYFYY6u2EL45BHh3bxWQHEREwbBh06ABv3kD9+nD3LowdCxlMdfoYpGV0pBWl1apV03m+lNrCfEjXcl05P+A8RayKcMX7CpX/rMz009OJVqXuVKmNlH7Ywqd5c/nFdvz48fcbLRyg/k5ZZJoWoKDSnYvTYXXzHbIh0qEK8HchCt+fgLMxvFLmRdn6ltzyRSDIwWhUKm6vX88yZ2eOfvstkQEBONSrR/9z5+h36hTFmzTJsWJUi5WVFUWLFiU2NpZnz56lOCY3Gx1p0abw7t+/X+djEotSLdWdqsNWMNIYsevRLoYcGIK3z/v0XZBvLjo6OhISEsKDBw/SP5GtK1SW+zJze4Lc51tPtGtNqU4/PSRJYvb52QCMqjEqx79mM0LO+ZQXCASCHE5ISAhPnz7F2Ng406Y/pqam7Nu3j8pfVIZO8rYfq/2YcTe9oLtwdTDsKwp3JkLEC7AsCVUXQzs3KNY9Z9f73boF1arB6tVgbAy//QZnzkAG05w+JlkdKU2tLcyHVC1UlXsj7jG4ymDiNHHMPDeTkr+XpP76+rTb1o7++/qz7f42wmPD8fPz4+nTp5ibmyf0ANTSokUL4ANRqsWhM7R9xMlX5bj/CkABIY8g5CFxCmOORMCkd8aom10Aq1I6X6NA8KmRJInHe/fyR8WK7B80iNBXr7CvWJGeBw8y4Px5ijVI2XU8p6KtK00phVeSpIRIqV021ttnlqZNm2JqasqNGzd4/fq1TsekJEqLFy8OvlD2VlnMjczZcGcDXhW9QEkSg6GGDRsCcrRUJ1xGy5+roW7wbJOOV/Ue7Y3HxGvVlVPPTnHV5yr5zPMxtNrQFCY/CaeaZ6rmNbsRolQgEOR60moonpVo61wqVKiAkZFRpuczMzfD5CsTMIaiQUWZ03aO7gdLGgi4Bvemw7/V4F9X8FwH6mgo1AoaHYL27lBmHBjp0b80O9i4EWrXhidPoFw5uHYNvvsOclhdl5b8+fNjYmJCUFAQ4eHhCdujoqJ4+PAhSqUSV1dXnedLL303MXnN8rKmwxrO9j+Li50Lr8Nec/HVRQ55HGLT3U303tsb+wX2dNnWBYpBrVq1kr1W69evj4mJCbdv306xjhWTvPx6sgiVfoTjtnug5TU8q20mn5eC1q+hYqMNOOX7vFwfBZ8PkiTxZP9+Vlerxl9duxLg5oZN8eJ03rqV4Xfu5Og03bTQitK///472b6QkBDUajV58uTBxMTkUy8tyzA3N0/I5Dh06JBOx6QqSoF3d95xsOdBLIwsUFVQYdjdEDOL9+2qtKJU636fLkojqPSL/PP9Gen2ek5trRmJlGqjpONqjcPC2CJhu0JSw92fZEH65gR4rNR77pyCEKUCgSBX88cff2BpacmmTfrftdSXrEjdTcxvl3/jmu81ClsV5t7ce7p9UYp4JQvRfY5wrBY8mAlBt2QDI+cx0O4JfPEvFGmT81tzSBJMnw4DBkBcHIwYATduQOWcXSujUChSdOC9d+8eKpWKcuXKYWFhkdrhyUirLUxqNCzWkAffPODe8Huc63+O/V/tZ3HLxdRzqEeUKoqLIRdhALxo8IJbvknbvZiZmSW0KDpx4kSK82ujwEWLlSbCqhztT8wlVBXDANcB9KrYS+d1CgSfCkmScD90iLU1a7KjY0fe3L6NZaFCtF6+nFFublTq3RtFDioD0JeBAwdiYmLChg0bkn3e5XaTo8RoU3iPHDmi0/iUoo8ODg4olUp8fHyoW7guf9b7E6JBVUZFt13dEsziEotSnR1/i/WQU3kjvcFjhY5XJZOSgNaFy68uc/r5afKY5GFkzZHvd0R6UznwO3g4S86EqjgDXL7Va+6cRO796xQIBP95AgMDmTRpEpIk8f333xMUFPRRz6cVpSmZF+nLA78H/HRaNohZ234ttma2aR8Q+gTOdYb9TrIQjfIBi2JQ+hs5KtrlLVRfmrNrRhMTGwv9+sHMmXK96IoVsHKlbGyUC0iprjQjqbugX6Q0MYZKQyoWqEiDYg1o79KecbXHcWHgBZ6PfY6DpwPEgJfSi2qrq9Hn7z4ERb3/+0ixrjQeSZISrsvBwYFvj37L44DHlM1XlmWt9e+XKhB8TCRJ4umRI6yrXZvt7drx+sYNLAoUoOWSJYzx9KTmyJEYGBtn9zIzTeXKlVmxQhZBw4cPT/g8gtxvcpSYOnXqACS5vrRISegZGRnh4OCQ8F6WPzo/bALDOEMOuB9g3JFxADg7O2Nvb8/bt2/x8PDQbYEK5fva0odzIDZYt+N4L6D1jZQmriW1MbWRN8YEwrG62MTeA7NC0OQkVJwOmTFIzGaEKBUIBLmWWbNmERISAsgC9eeff/6o58uqSGlUXBR9/+5LrDqWIVWH0Lp069QHq2Pg/kw4XAm898k9Rh17QNPT0OEZ1FghR0UNc4eYA+DRI6hTB7ZsAXNzuRfpNzm8Rc0HpFRXmlFRmpFIaZrzmRXE7y8/WAojq4zExMCErfe2UunPSpx+dhpIKko/jBB4eXkRFRWFjY0N1wKusebWGkwMTNjZbWeStDGBIDuRJAmvkyfZUL8+/2vdGp9r1zDPn58Wv/3GWC8vao8di1EuucmlK4MGDWLw4MFER0fTtWtX3r17B3weJkdaXFxcMDY25tmzZ4SGhqY7PrWUWG0K77Nnz2TnXV9o4dcCEwMT/rz5JxvvbEShUCRkjehcVwpQqCXYN4LYINlYUAdUKhUBAQEoFAq9/p/uvrnLIY9DmBuZM672OHmjJMGVgRD5ilCjMtD6LhRorPv6cyhClAoEglyJp6cnK1asQKFQsGnTJpRKJStWrEhoLv7o0SMaNmxIr1699GrEnRoxMTE8evQIhUKRzDhGH3zDfGm0sRG339zGycaJ31r8lnyQJEHwQ3jyO/xbBe5PB00slBgIHV9C/R3yB1Buq4vSaGDxYqhaVTY2cnKCc+cgvg1AbiKl9N1PHSlNjcuXLxMTE0M5p3Is77Cch988pHbR2niHetN0c1MmHp9IhYoVyJ8/P97e3gkN3bXMmDEDgJbtWjL0gGyoMa3RNCoWqJgl6xMIMsvzs2fZ1LgxW5o149WlS5jny0ez+fMZ++wZdb77DiNz8+xe4kdj2bJlVK9enWfPnjFu3Djg84qUGhkZUb58eUDu+5weqaXEJhal2h6lrvldWdFGjjaPODSC27639a8rBfmz1/VX+We3RRCesiNyYvz9/ZEkiXz58mFoaKjzqXY92gVAv8r9yG8RL2bdV4DPfjCy5qHtdDDN/TcjQIhSgUCQS5k8eTJxcXH07duXvn37MnjwYFQqFd9++y1btmyhRo0anD9/nu3bt7Nt27ZMn+/BgweoVCpcXFz0qhdMzC3fW9RYU4Prr6/jZOPEwZ4HsTJJZEIU8QpujoO/C8PhCnBzLIQ+BitnOTJaex2Y6W+QkCO4excaNpQNjGJiYNAgeZserVNyEh9GSiMiInj06BEGBgZ637RI7L4rSRJhYWFs2bIlw+noixYtAqBTp04AlMxbkvMDzjO90XQUCgXzL82n596efNH8CwAWLlyYcOytW7fYunUrxsbG5OmQh2fBz6hoX5EJdSdkaC0CQVby6tIlNjdrxqbGjXlx7hymtrY0mTOHsc+eUW/CBIwz+N6cmzA1NWXnzp0olUp27NiBv79/gij9HCKlIKcqw3tzwbRITZQ6OTkBiSKlyM67g6oOYkjVIUSrounyVxcq1KoA6ClKAfLVAqfeoImB2+MzvM70OPviLACtSsX3Fw+6+/58tdYSY5hLvxOkgBClAoEg13H16lX++usvTE1NmTVrFiCn8lpbW3P06FH69u1LZGQkNWrI/T5/+OGHJC6pGSEzqbuSJLHh9gbqr6+PT5gP9RzqcXXwVcrbl5dddLXtXA6UhCdLIfoNmBaUP/Bqb4Q2uTg1JygIRo+Wo6MXL0KBAnK67tq1kCdPdq8uw3xYU3r37l00Gg0VKlTATM+UQSsrKywsLIiOjubBgwfUq1ePvn37Mm/evGRjt23bxoYNG1Kd6/79+xw4cABTU1PGjh2bsN1QaciMxjM41fcU1ibW7Hm8h5f1XmJsacy6detYtWoVkiQxYYIsPr8c8yXrHq9DqVCyrsM6jAwy7zYtEGQUn2vX2NqqFevr1ePZyZOYWFvT+OefGff8OQ0mTcLY0jK7l/hJKVGiBG3atCEuLo5NmzZ9VkZHoLsojY6OJjQ0FCMjI2xtk/oyaCOlz58/T4iUanuU/t76d6oXrs7z4Od0P9sd0wamPH/5PEnmi064/gqGFvBqr9ySJQ0yUk8aFRfFNZ9rKFDQwLEBqCLg4leyEC41FBy76bfeHI4QpQKBINcxZ47cOuXbb79N6DmWP39+pk+fDsh3ktesWcOVK1eoXr06r1+/5tdff83w+SRJSnAC1FeUvg1/S6ednRi4fyBRqij6u/bnZPcd2D9fD6dbwe6879u5aFRyvWirG9D5NdTdCiX6gYFphteebajVsGoVODvD8uVyutPYseDmBh06ZPfqMo02Unrv3j1OnjzJ9evXAf1Td7VoU3jr1auXkLL2odFHdHQ0/fr1Y9CgQQQHB6c4j1bIDhkyBHt7+2T7Gzk14kz/M9hb2HPF/wqFJxeGJvDNrm9o/HNjTpmcwqinEWcKnkEjaRhXaxw1itTI0DUJBJnF99Yttrdvz9patfA8ehRjKysa/vQTY589o9G0aZjk4htbmWXoUDm1fvXq1Z9VTSnoLkq10Ud7e/tk7vXJakp536PU1NCUfT320ahYIwKjAoluGg3DYOPxjfot1LwIlJ8i/3xzLGji0l2rPpHSK95XiFXHUqlAJdkM8eZYuUeqdXm5B/lnhu5JzQKBQJADkCSJy5cvAzBs2LAk+8aMGUOBAgWoWrUqZcqUAWDp0qXUq1ePhQsXMmjQoISUHn2YOnUqe/bswdjYmLZt2+p0jHugO/uf7OfXi78SEBlAHpM8rG86gy4KLxSHnEGdqL+ZeVEo1BrKjs897rlpcfo0jBsH9+7Jzxs2hGXLIBO1uDmN4sWLU7RoUby9vWnWrBmmpvKNg4yK0oIFC/L06VPCwsJwdXXlzp07CfXRWtzc3FCpVAA8efKEWrVqJdnv6enJjh07MDQ0ZPz41NPJXAu6cmHABZpvac7zkOfQEDRoOMc5qAVxxOET7oOLnQszv5iZoesRCDLDq0uXOD9nDh7xvSqNzM2pOWYMdcePx9zOLptXlzNo3bo1RYoUwcPDI+Em1ecSKdWWQNy/fx+1Wo1BKj2r0xJ6iUWpWq0G3otSgCJ5inC632n+dvubIbuG8K7AO+Y+n8vYmLHkMdHjZkeZb8FzLYQ8BI8/wGVMisNSal2THudeyCnFjYo1ghc75ZvXBqZQbwcYfn510yJSKhAIchW+vr74+/tjY2OTEK3SYmBgQK9evRIEKUDdunXp1asX0dHR/PDDD3qfb968ecyZMwcDAwN27dpFuXLlUh3rFeTFlJNTcFnugstyFyYcn0BAZAAti3/Bqy/60vXpDyjcl8uCtHBb+YOl40vo9Apqrc79gtTLC7p2hSZNZEFarBjs2gVnznxWghTAxMSE+/fvM3v2bPLly0d0dDRAQsq4vmiNPQYNGsTly5cxMTHB29s7ifvkw4cPE37+0JwIYP78+Wg0Gr7++utkfxsfUtquNFcHX2VRi0XMaDiDYs+KwRmwvWrL+nbrOfr1UW4NuyXcdgWfDEmSeHr0KBsbN2Z9vXp4HDqEoZkZtb/7jrHPntFs7lwhSBNhaGjIoEGDgM+rTymAnZ0dRYoUITIyEk9Pz1THpSVKCxUqhImJCf7+/rx79w4jI6Nkvx+FQkGXsl3Y2XAnvIIogyjmnJ+j32INTN9HLe/9lKrpUWouwWmhrSdtXagMXJMj41RdBDYV9FtjLkGIUoFAkGN5/vx5slrQO3fuAODq6posXSc15s2bh5mZGbt27UoWfUqLNWvWMGnSJBQKBZs3b6ZDCmmnKo2KPY/20GJLC0r+XpI5F+bgHuiOraktvSv25li7hfyb7x15PJeDpIZivWT79sYH5SbcFg46ryfHEhYGkydD2bKwd6/c5uWXX+DxY+jWLfe5BOuIjY0NkydP5vnz5yxfvpwlS5ZkuIftokWLuHnzJmvWrMHU1BRnZ/kGhZubW8KYxKI08XYAHx8fNm6UWxxMnDhRp3MWsCzAt3W+ZfoX07mx8AYjy4/k4NSDDKg2gBYlW2Bu9PndiRfkPCSNhkd79rCmenX+16oVL86excTamgZTpjDuxQta/vYbFimkogvkm1iJPwc/l/Rd0C2FN63oo1KppFixYgnPixQpglKZsuwpVqQYyBU6LL6yGM93qQvhFCnSHhy6QFwoXOyVYhqvvpHSGFUMl70vYwg09V0nz120M5Qart/achFClAoEghzJhQsXKF26NH379k2yXfsB5erqqvNcDg4OdOzcEQrA7//+zpqba1h3ax0RsRGpHqNWqxO+3K9cuZJevXol2R8ZF8mKaytwWe5Ct13dOO51HFNDU/pW7svpfqfx+/41W10q0NxjEorgu2BZEpqfh3r/A9vPJGqo0cCmTXLd6Ny5EBsLffqAuztMnQqfWY/A1LCwsGDkyJGMHTtW5xslH2Jubk7VqlUTjtdG5BPfREkrUrphwwZiY2Pp0qVLkkwBXcmXLx/Lly+nbt26GVm+QKA36rg47mzaxMry5dnVrRu+t25hYW9P07lzGffiBU1mzcLiMxJZHwNHR0dat37f5/pziZSCbqI0veijNoUXkqbufoitrS34gPEjY2LVsYw/nr6bbhIUCqi5Ri7FCbwC92fovdYPuf76OtGqaNY62GEUdBPMHaDW2s/2Ji+ImlKBQJAD0Wg0jBs3DpVKxb///ktsbCzGxsZA0kiprrgFuHG23Flwhj/D/oSD8vZNdzfxb+9/U0xRvHfvHkFBQTg5OTF8+Ps7k1oxOv/SfAIiZRv+krYlGVNrDH0q9ZHNCEI94FQTCJBrXyk9Alzng9Fn5BB59ixMmADxBj/UqgVLlkDt2tm6rM+FsmXLArqLUq3RUteuXT/B6gSCjBMXFcXtdeu4tGABIfHu1daOjtT94QeqDByI0X/kZlZWMXToUA4fPoyBgQE2NjbZvZwsQytK72m9CVIgPfOgxB4SWufdlND+3mL/jcWisgX73PZxwusEzUo0033BJnmh7jY42RgezoUCTaFgk4Td+kZKzz4/Sy8r6GcaCEojudzHJK/u68mFiEipQCDIVl6+fMnmzZuJjY1N2LZt2zZu3rwJyI6j2i/coL8o3fVwFzXW1MBX5QuhYPTSiP6V+1PYqjDnX56n/fb2RMZFJjvu7Fm5lqNRo0YAxKpjWXFtBSV/L8kPJ34gIDKAGoVrsPvL3TwZ9YQxtcZga2otN7X+11UWpGZFoPERqLHy8xCkkoTNzZvQqBE0biwL0sKFYcsWuHRJCNIsRCtKHz16BEBkZCReXl4Jhh9Pnz5NMO8Aub8oZKxlkUDwKYgOCeH83LksdXLi39GjCXn5knxlytBx40ZGP31KzZEjhSDNAG3btqV9+/YMHTo0w5kaORF9IqWpCT1dI6WGhoZYWVlBGHxX4zsAxh0ZR5w6dTfdFLFvABWmARJc6i23e/tgrbpGSr1fHGCNNmu92u+Q//PPYhGiVCAQZCsjRoygX79+dOzYkYiICCIjI5k0aRLwvu2Gtql1eHg4Hh4eGBkZJXxpTw2NpGHCsQl0392d8Nhwvir/FYX3FiZufRzflviW0/1OU9CyIKefn6bjjo6ExoQmOV4rSus3rM/GOxtxXubMqH9H8Sb8DdUKVeNI7yNcHXyVruW6YqA0gIhXcLol3BgF6khw+hra3ofCLbP6V/bpUangr7+gbl1cx4+Hc+fAxgZ+/hmePIGvv4ZUanUEGePDSKmbmxuSJOHs7EzhwoWJiYnhxYsXAAQEBODt7Y25uTmlS5fOtjULBCkR4efHySlTWOLoyKnJk4nw86NQtWp037OHbx4+xLVfPwyMRB/cjGJoaMj+/ftZuXJldi8lSyldujRmZma8fPmSoKCgFMfoI0rTipQC5M0rRyF7Fe9FCdsSPPR/yIJLC/RfePkpYN9Y7jd+rDY8XUNcbCyBgYEolUqdUqzjIn35UbqGuRIiHXtBqWHpHvM5IL5FCASCbCMmJobTp08DcOTIEZo3b860adPw9vamSpUqzJ07F3gvSu/fv48kSZQrVy4hnTclNJKGEQdHsPDyQgyVhixttZRtXbfRpL6cSnPmzBmc7Zw53e809hb2nPA6ge2vtrj+6crwg8OZcXoGR2KOQFOYGzKXAf8M4EXIC8rlL8ee7nu4PuQ6LUu1fH9X+tkWOFwR3pwAEzuovxvqbgFj21TXmCsIDoaFC6FkSejRA65cIS5PHpg9G168gGnT4D/WtP5T4ezsjFKpxMvLi+jo6ITU3fLly+Pi4gK8T+HV9jOtXLlyqq0TBIJPTdjr1/w7dixLnJy4MGcOMaGhODVuzNdHjzLk+nXKdumCQtzMEqSCgYEBFSrILrOppfBmVaQU4utKgcjQSFa1WwXAzLMzcQ9012/hSkNofBhKDgF1NFwbSty5r8hjJhtRpfse7Xce9ZEaFDOUuKsyxbzOus+6jjQx4t1AIBBkG1evXiUqKopixYrh6OjI5cuX+e233wD47bffElJnL168iEql0il1VyNpGHZgGKtvrcbU0JRDvQ4xptYYFAoFX3zxBUCCEC6Trwyn+p6irkNdlAold9/eZdXNVfx87meia0VDA/AK9aKEbQk2d9rMveH36FK2y3sxqlHDzXFwuS/EhUCRDtDmITjm8rq+p09h9GgoWlSuG335EkqXhhUruLxjh+y0+x9uWv8pMDExoWTJkmg0Gjw8PJKIUq2R0YeiNKPOvwJBVhIdEsLJKVP4vVQprv3+O6qoKJzbtWPgxYv0O32aki1afFZppoKPh7ZfaWopvB9DlL57945mJZrR37U/MeoYhh4YikbSEKuOZebZmZRdUZavdn/F7ke7Uyz9AcDQTG7zVmcrGFpg7vc3bgugX2NjkKSUj1FFwc3v4EQjTKN9uBMD26y7yi1n/iMIoyOBQJBtnDx5EoCOHTsyYcIEWrZsyaNHj+jQoUOCgCxZsiSenp7cvXs3XVGqFaRrb6/F1NCUAz0PJDEq0M559uxZNBoNSqWS8vbluTjwIpFxkdzyvcU1n2scP3+cI4ePUKliJSYMmUD38t0xNvggMhsXBhd7wutDsglB9ZVQclDuvqOpjX5u2fL+g7NpUxg3Dtq0AaUSzZkz2bnC/xRly5bFw8ODR48eJRGl2i9P2rYwWlEq6kkF2Yk6NpYbf/7J2ZkziQoMBKBM5840mj6dgvH1gQKBPqRVVxoTE0NwcDAGBgYJqbcfYmdnh5WVFWFhYTqLUm2q8MLmCznscZizL84y4dgEjnoe5aG//D7sFuDGzoc7MTcyZ1nrZQysMjDlSYv3hrzVeHekC4VsH/Nrh1dwqjlU+Any1welAWhU8Hwr3P8ZIp6DwoDNqqIMfvmCTdXb6vJr+mwQkVKBQJBtaEVp06ZNKVq0KBcuXGDdunVs3rw5YUzDhg0BWUim1Q4mTh1H37/7svb2WswMzTjY82Ay5zwnJyccHR0JCgpKlg5kbmROfcf6fFfnOyyvW8JZGFVpFF9X+jq5II14Bcfry4LUOC80OQGlBudeQfruHYwfL7d22bwZDA2hf3+4cwdOnIB27UTNaDaQuC1MWum7wuRIkJ1IGg0PduxgRdmyHBk7lqjAQBzq1WPgxYv02LtXCFJBhklLlGqjpPb29qn2H1UoFCxatIipU6fi4JB2T/APRamduR2/t/odgEVXFvHQ/yGl85bm7x5/s7D5QmoVqUVkXCTjjowjKCrlmlcArMuwL+I7Bq2G8FhjeHtSdujdVxiuDIJD5eHKAFmQWlcgqMG/DHj2CpRGtC7dOvV5P0PEtwyBQJAthIeHc/XqVZRKZUKarq2tLQMHDsTa2jphnHbf6dOnE4Rk5Q++5ESrovly15f87/7/sDS25HDvwzQt0TTZOROn8J5JJeInSVJCDav23EkIvAFHa0LwPbByhpZXwb6hfhefU9BoYN06WYz+9pvcZ7RnT3j8GDZsAPFlMlvRmh3duHGDZ8+eYWRkROnSpZOIUq35l6GhIeXLl8/O5Qr+Y2jUah7t3s3q6tXZ07MnQV5e5CtThh779jHg/HkcRM9bQSbR1pRqjd4So6ub7eDBg/nll1/SPdeHohSge/nu9CjfA0OlIZPqT+Lu8Lt0KtOJ7+t+z5XBV2hWohlhsWEsu7YszbnfvvVn/VlY+GQIlPtR7lse7Qde6yHMXX5eZwu0vsMevxdoJA1NSzTFxtQm3XV/Toj0XYFAkC2cO3cOlUpFrVq1kojQD9FGSv/991/UajWOjo4JHx4AEbERdNrZSTYrMrXl397/UqtorVTna9y4MZs2beL06dOMGzcu2X43Nzf8/PwoWLBgcifTV3vh0tegjpLd9Rrsyb19w27dgm++gatX5eeNGsnCtFq17F2XIAGtKD1+/Dggmx8ZGRnh6OiIiYkJvr6+XLhwAUmSKF++PCYmJtm5XMF/BHVsLHe3bOHS/PkEussmMJaFCtH455+pMmAASkPx1VKQNdja2mJhYUFERAQhISFJ+rCmV0+akXNBUlGqUCjY1nUb0apozI3Mkx0ztcFUTnidYMmVJXxb+1usTKxSnFu7Vqt8xcH1e6g8R76x/fowmBUGp15yGRCw5/EeALqWzeXeFBlAREoFAkG2cOrUKUBO3U0LJycnihYtmtCTMXHqrlqjpueenpzwOkEBiwKc6X8mTUEKsigFWRQn7vOoJXF/0gQzDkkDD2bB+W6yIC0xAL44mjsFaUyMbFRUs6YsSAsVgm3b4PRpIUhzGFpDI20PX20k1MDAIOGGyc6dOwFhciT4+MSGh3N50SKWlijBgcGDCXR3x8bJiTYrVjDG05NqQ4YIQSrIUhQKRULa7atXr5Lsy2pRqq1L/bD9jFKhTFGQAjQs1pB6DvUIig7izxt/pjr3mzdvgERRXYUCbCtD+UlQol+CIA2ODuak10mUCiUdXTpm9pJyHUKUCgSCbEFbT9qkSZM0xykUioRoKSQVpT+d/okD7gewNbXlTP8zVCpQKd3zOjk54eTkRHBwcIp1KolFKSCn2JxuBfd+AiSoPBdqrYMP60xzA9euQdWqMHeunLo7bpzcZ7Rnz9xbD/sZY2VllaQOKnF6rjaFd+/evYCoJxV8PFTR0VycP58lxYpx7PvvCfPxwb5CBTpv3cpoDw9qfPMNRmZm2b1MwWfKpxKlid13dUWhUDC14VQAFl5eSFRcVIrjdF3rgScHiNPE0bBYQ/Jb5Nd5HZ8LQpQKBIJPTkBAAHfu3MHExIS6OtQdpSRKt93fxtwLczFQGLDry12UyVdG5/NrBefly5eTbJckKakofXsa/nWFN8fBJB80PgLlf8x9As7PD4YOhdq14dEjuYb0wgVYvBisUk43EuQMtCm8kLIoDQ0NBYQoFWQ9kkbD3S1bWO7iwomJE4l69w6HunXpeeAAw+/epVLv3iIyKvjoaF1zvb29k2z/FOm7utCyZEuqFaqGX4Qfa2+tTXFMskhpKvyXU3dBiFKBQJANaPuE1qtXDzMd7rAnNhxydXXlus91Bu0fBMCSVktSNDVKC62rqaenZ5LtL168wNfXF4dCeSkbsRJONoEoX9nIqPUdKNxSr/NkO7GxsvB0doY1a8DAQO47eucOCBOSXEFqolSb2gvy3foPzb8EgowiaTQ83LWLP11d2de3LyEvX1KgUiW+PnqUgRcv4tyuHQrhxi34RKQWKdU+L1y4cJacJ6OiVKFQMKXBFAAWXFpAnDou2RhdBHR4bDhHPY8C0LlMZ73W8LkgbnEJBIJPTuJWMLrg4uJCgwYNUKvVGNsZ02ltJ6JV0QypOoSRNUbqff4SJUoAyUWph4cHjcrC/0ZHovBYAQpDqDAVyk8BZS57uzxy5H16LkCrVrJALaN7RFmQ/WhvoBgbG1OqVKmE7dpIKUCpUqWwEhFvQSbRqNU8/Osvzs+ahf+jRwDkKVqUL2bNotLXX6M0MMjmFQr+i6QmSrWf3yVLlsyS82RUlAJ0LNMRFzsXngQ+Ye/jvfSo0CNhX0xMDEFBQRgYGGBnZ5fqHIc9DhOtiqZO0ToUyVNE/wv4DBC3ugQCwSdFkiROnDgB6C5KFQoF586d48SZE3T5qwuvw17TsFhDlrdZ/t6MSA+0H2JJRGmUL44+UzkzFYpYR4NNZWh1HSpOz12C1N1d7ivaurUsSEuXhoMH4fBhIUhzIZUqyXXS5cuXxzBRqmRiUSpSdwWZQaNScW/rVlaWL8/eXr3wf/QIa0dH2v7xB6OfPsW1Xz8hSAXZRkrpu5Ik4eXlBXxaURoYGMjixYsTyia0KBVKxtQaA8DSq0uT7PPz8wPS7qcKInUXhCgVCASfmJs3b+Lp6Ym9vT3V9HB7lSSJoQeHcs3nGsWsi7H7y90YZ9BsSBsp9fLyQlLHwuPf4IAzLsbXiI6Fc8FNoeU1sHXN0PzZQmionJpboQIcOiTXii5YAA8eQNu2ua8OVgBArVq1+OOPP1i9enWS7dbW1gmpYMJ5V5ARNCoVdzZtYkW5cvzdpw+BT55g4+RE+zVrGO3hQfXhwzEUbYYE2UxKkdKAgADCw8OxtrZO0iIuM2jbzYSEhKTozA/wxx9/8N133/H9998n29e3cl9sTG247H2Zaz7XErbrUk96/+199j7eiwIFXcsJUSoQCASfhC1btgDQs2fPJJGf9FhwaQFb723FwsiC/T33Z8qZztraGjs7O2o6RaE6UBFujwdVOFe9C1DuB/CzH5573HU1Gli/Xo6ILlwIKhUMHAgeHjB+PBjnkusQpIhCoWD48OFUr1492T5thLROnTqfelmCXIwqJobb69ez3MWFf/r3552HB7YlS9Jh/XpGubtTdfBgDMT7hiCHoBWl3t7eSJIEJE3dzUi2VEoYGBhgbW2NJEmEhISkOEYrjLds2YK/v3+SfZbGlgyuMhhIGi1Nr55UI2kYdnAYKo2Kb2p8g5ONU2YvJdciRKlAIPhkxMXFsX37dgD69Omj83G/X/2diScmArCl8xadWr+kSdQbtoyQODMVjCLdwbIkNDrEgI15eeZPktq9HM2lS3K/0UGDZIfdunXlti/r1kEWORIKci5//PEHf//9dxJ3aoEgNYJfvODk5MksdnBg/6BBBHl5kbd0aTpt2sQoNzeqDBiAgZFRdi9TIEhCnjx5sLKyIjIyMiG1Vpu6q816yirSS+ENDAwE5DrRP/9M3pd0VM1RKBVK/nr4F6/DXgPvI6WpidK1t9Zy2fsyhSwLMbvJ7ExfQ25GiFKBQPDJOHbsGP7+/pQtW1bnlMP5F+cz9shYAJa1XkbnsplwpdOowG0pHHShddl3RMXCbXUXaPsAdcGWWW6c8NHw9obevaFePbh5E4oUgf/9T27zkkJETfB54uTkRKdOnbJ7GYIcjKTR8PTIEbZ36MDS4sW5MHcukf7+FKhcmc5btzLy8WMq9+0rWrsIcjQfpvBqP6s/tSgNCAhI+HnFihXExMQk2V/Mphidy3RGpVHxx/U/gPeR0pTSd9+Gv0244b6k1RKsTa0zfxG5GCFKBQLBJ0ObutunTx+dUm5mnp3JxBMTUaBgdbvVjKo5KuMnD7wOR6rDrXEQF4pbWCnK/wD/eFYEA1N8fHyIjY2lQIECOdfJNCoKZs8GFxfYtg1MTGDqVHBzg169RN2oQCAAIDIwkEsLF7LM2Zn/tW6N+4EDGBgZUbF3bwZevMiw27flPqPCwEiQC0icwgtkucmRFl0jpTY2Nrx9+zYh8ysxY2vJN9H/uPEHZ5+fxfeNL5A8UqqRNIw7Oo7g6GBalWrFl+W+zLLryK2IW2MCgeCTEBISwj///ANA79690x2/8c5Gpp+ZjlKhZEPHDfSt3DfjJ/dcB9dHgCYOLJyg2u9cOubPM/9BCXdcnz59CuTQ1F1Jgr175RrR58/lbV27ykZGxYtn69IEAkHOQJIkfK5d4+aff/Jgxw5U0dEAWBcrRvXhw6kycCAW9vbZvEqBQH+0Drw5JVI6fvx4pk6dyuLFi+nXr1+Sm+z1HetT16Eul15dovGmxtha2EIlyJM/T8KYh34PGXZwGBdfXcTU0JQVbVZkWW1sbkaIUoFA8EnYs2cP0dHRNGrUCEdHxzTH3n97n28OfQPAqnarMi5INXFw63twXyY/dx4Frr+CoTklSpwB3t9xzbGi9N49ud/o6dPy8woVYOlSaNIkW5clEAhyBkHPnnH/f//j3tatBGr7EgOlWrWi+jffULpNGxERFeRqPkzf/diR0nfv3iXbJ0lSgigdPXo0y5Yt4969e5w+fZomiT6PFQoFB3seZOnVpay4voIAAqALDPUcyrp163C2c2bb/W3EaeIoYFGAdR3WUcI2a8V1bkWIUoFA8ElInLqbFmExYXy560uiVFEMcB3A4KqDM3bCaD+42BPengKlEdT4E0oOTNj9Ya/SHCdKPTxgzhzYvFl22M2bF375BYYOBVH/JRD8p9Go1XgcOsT1FSvwPHYsYbuFvT2V+vSh+vDh5M0p72UCQSZJnL4bFRWFj48PhoaGCduzirQipWFhYahUKiwsLMiTJw8jR45k2rRprFq1KokoBbA1s2VG4xlMrDcRp45O+BXyQ1lMyWXvy1z2vgzAsGrDmNdsHjamNll6DbkZ8c1GIBB8NDQaDcePH2f58uWcOXMGU1NTunXrlup4bS/SJ4FPqGBfgeVtlmfsxH4X4GIPiHoNpgWgwV7IXzfJkMKFC2NsbMzbt2+JiIhIEKWlS5fO2DmziqdP4eef5ZpRjQYMDGDUKHlb3rzZuzaBQJCtRAYEcGvdOm788QchL14AYGhqSpnOnanUpw8lmzcXpkWCz47EkdLn8SUsxYoV06utnC7kjf+MTUmUaqOk+fLlA6BTp05MmzaN27dvpzqfmZEZ0RejIRQ8XnvwMOwht3xv0axEM+o4iFZeHyLeuQQCQZYSHh7O2bNnOXHiBAcOHEiIRBobGzNnzhysrVN3l1tzaw07HuzA0tiS3V/uxtzIXL+TSxpwWwx3JoKkhvz1od5OMC+cbKiBgQHFixfnyZMneHl5ZX+kNC5O7jP6888QEyNHQwcMgEmTIKe7AQsEgo+Kz7VrXF+xggc7d6KOd/y0LVGC6iNG4DpgAOZ2dtm8QoHg45G4pvRj1ZNC2pFSrcmRXfzfWunSpVEqlXh5eRETE4OJiUmyY6KioggNDcXIyAjHAo44FXKirXPbLF/354IQpQKBIMuYO3cu06dPJy4uLmGbg4MDI0aMYNCgQdinYbLhFuDGuCPjALmO1CWfi34nj3gJVwbC25Py87IToPJsOXU3FUqUKMGTJ094+vRpgijNlnYw16/DkCFw9678vE8fmDkTnJw+/VoEAkGOIC4qioc7d3J9xQpe37ghb1QoKN2mDTVGjqRUq1YolKKJguDzJ3H6bnaJ0g8jpaamphQvXhxPT0+ePn1K+fLlkx2jbQdjb2+PUvytposQpQKBIEv4+eefmTFjBgqFglq1atG8eXOaNWtGvXr10k2xiVXH0ntvb6JUUfSp1IdeFXvpfmJJgmeb4OZYiAsFk3xQay0U7ZjuoVoBevHiRaKiosiXLx82Nja6nzuzvHwJU6bA1q3y8+LFYdUqaN78061BIBDkKKJDQri+YgVXFi8mMv6LsFnevLgOHEiNESOw/QhfxgWCnIylpSU2NjYEBwdz/fp14OPcQNYnUgpQtmxZPD09cXNzS1OUptSjVJAcIUoFAkGm0QpSpVLJli1b6NVLD1EJ/HTqJ2753qK4TXH96kjV0XB1KDyXTZQo2hFqrAKzAmkfF4/2TuvRo0eBT5i6GxkpmxYtXiyn6hobw9ixMH06WFh8mjUIBIIcRWRAAFeWLOHa8uXEhIQAUKhqVWqMGkWFr77CyMwsm1coEGQfRYsWJTg4mDNnzgAfN1Kakvvuh5FSgDJlynDw4EHc3NxSnO/NmzdA8h6lgpQRolQgEGSKX3/9NVOC9PSz0yy4tAClQsnWLlvJY5In/YMAonzhXCcIvAaGFlB9JRTvA3r0+tLeaX3w4AHwiUTp1avQty+4u8vPv/pKdtkV/UYFgv8kYa9fc2nhQm6uWkVcZCQATo0b02DKFIo3bSr6FwoEyCm8Dx48wMfHB8i+SOmHohTg8ePHKc4nIqX6IUSpQCDIMG5ubkydOhWFQpEhQSpJEuOOjkNC4qcGP1HXoW76BwEEXpcFadRrsCgGDfeDbSW91//hndaPKkpjY+Xo6Jw5sqtu+fKwbh3UqvXxzikQCHIswc+fc+HXX7mzfj3q2FgASrdpQ4MpU3Coq+N7oUDwH+HD9i/ZVVP6YfoukGqkVCtKRaRUN4QoFQgEGWb8+PGoVCqGDh2qtyAFOO51nHtv71HQsiCTG0xO/wBJgqer4eYY0MRC/gbQYA+Y5s/A6j+hKH34UDYvun1bjuSOHy8LVFPTj3M+gUCQYwl0d+fC3Lnc27oVjUoFCgXlunWj/uTJFKpSJbuXJxDkSLQOvCBHK/Pk0TGrSg+sra1RKBSEhoaiVqsxMDBI2JdS+q6Li2zI6ObmhkajSWZmpE3fFZFS3RCiVCAQZIhjx45x6NAhrKys+OWXXzI0x4JLCwAYU3MMJobJ7dSToIqE6yPg2Wb5eekRUHUJGBhn6NwA5ubmFCxYMOGDI8t7lKrVsGSJbGYUEyO76W7aBA0bZu15BAJBjuft/ftcmDOHh3/9haTRoDAwoFKfPtSfNIn88REXgUCQMokjpR8jSgpyqzhra2uCg4MJDg5OEhVNyejIzs6O/Pnz4+/vj4+PT7JoroiU6ocQpQKBQG9UKhXfffcdAFOnTk2z1Utq3Pa9zQmvE1gYWTC8+vC0B/tdgOvDIOQRGJhBzdVQ/OuMLD0ZJUuWTBClWRopvXgRvv1WbvcCMHgwLFoEVlZZdw6BQJDj8XvwgNPTpuH2998AKI2MqDJoEPUmTiSv6EEsEOhEYsH3MVu32draEhwcTFBQUBIBmlKkFOQUXn9/f9zc3JKJUhEp1Q/RNEcgEOjNmjVrePjwISVKlGDs2LEZmmPh5YUADKk6BFsz25QHxQTC1cFwooEsSK2coeXVLBOk8P6Oq62tLXnz5s38hF5e0L071K8vC9JCheDAAVizRghSgeA/xDtPT/Z+/TV/VKqE299/Y2hqSs3Roxnj6Un71auFIBUI9CBx+u7HipRC6g68KRkdQdpmRyJSqh8iUioQCPQiMjKSadOmATB//nxMTNJJu02BF8Ev2PlgJwYKA76t823Kg96chIs9IcYflEZQdiKUnwyGWdsWQXvHNdNR0pAQmD0bli6VTY3MzGDCBPlhaZkFKxUIBLmBUB8fzv3yC7fXrUOjUqE0MqLasGE0mDwZq0KFsnt5AkGu5FOk70LKZkeSJKVodARpmx2JSKl+CFEqEAj04uDBgwQEBFCtWjW6dOmSoTmWXFmCWlLTu2JvHK0dk+6UJHi8AO5OAkkD9g3l3qPWZbJg9cnRNryuUKFCxibQaOQo6NSpEP+hRZ8+sstuoju7AoHg8yYyIIAL8+Zxbfly1DExKJRKXPv3p9H06dg4OWX38gSCXI25uTl58+bl3bt3Hz19F5KK0oiICGJjYzE3N8fsg37BqUVKIyIiCA8Px9jYGGtr64+23s8JnUWpQqEwAG4APpIktVMoFP8DqgNxwDVgmCRJcQq5odZSoA0QCfSXJOlW1i9dIBBkBzt27ADg66+/zlD/vFPPTrH8+nIAxtcdn3RnXChcGQiv9sjPy0+FijNAacDHolOnTmzdupWmTZvqf3BgIPTrB4cOyc/r14fFi6F69axdpEAgyLFEh4RwCczLfgAAfGZJREFUedEirixaRGx4OADlvvySxj//LAyMBIIspGHDhpw9e5ZKlfRvAacrKYnS1KKk8F6UfhgpTZy6K3oN64Y+kdKxwGNA68H8P0Bb2LUNGAz8AbQGSsc/asVvE434BILPgJCQEA4fPoxCoeDLL7/U+/gHfg/osrMLKo2K7+t8j2tB1/c7/S/CpT4Q8QyM8kCdzVC0Y9YtPhUMDQ3p3bu3/gdevAhffQXe3mBrC3/8IdeSig8fgeA/gTo2lmsrVnB+1iyi4uvPSrVuTZNZsyhUtWo2r04g+PzYvXs30dHRWFhYfLRzaL0lUhKlH9aTAjg6OmJmZsabN28IDg7GxsYGeC9KRequ7uhkdKRQKIoCbYG12m2SJB2W4kGOlGrz1DoCm+N3XQFsFAqFKKIQCD4Bd+7c4cqVKx9t/n/++YeYmBgaNmxIkSJF9Dr2ddhr2vyvDSExIXQr1435zefLOzRxcPcnONFQFqS2VaDl9U8iSDOEJMGyZdCokSxIa9eW+4/26CEEqUDwH0CSJJ4cOMDKChU49t13RL17h2ODBgw4f57ehw8LQSoQfCQMDAw+qiCFlCOlKbWD0aJUKpP0K9WirScVJke6o2ukdAnwA5DMOlKhUBgBfZAjqQBFgFeJhnjHb/P94LihwFCQ/8POnDmjx7I/PeHh4Tl+jYLPm/Regzdu3GDSpEmoVCpGjBhB9+7ds3wNK1euBKBq1ap6/T0ExwYz4f4EXoW/onye8gyxG8K5s+cwUb2hXNAvWMc9QkLBK8uePDMdgHTrNfA6y9efWRQqFaWWLaPI/v0AvOzRg2eDByM9ewbPnmXz6j4N4r1QkBPIrtdhuJcXnitXEnzzJgBmDg6UHDGCvLVr46VS4SX+Nv4ziPfCzxM/Pz8AHj58mPD/e+7cOQA0Gk2K/+fa6Oq+ffuIjo4G4Pz584B8E+tjvk4+p9dhuqJUoVC0A/wkSbqpUCgapzBkJXBOkqTz+pxYkqTVwGqA6tWrS40bpzR1zuHMmTPk9DUKPm/Seg3euHGDn3/+GZVKBcAff/yBpaUl8+bNQ6nMms5PAQEB3Lx5EwMDAyZNmkT+/Pl1Ou6x/2MGbhvIs/BnlM5bmjODzpDPPB+82gdXRkBcMJgXRVFnK44FGuGYznzZRkCAHA09dQpMTGD9ehx79cq56/1IiPdCQU7gU78OI/z9OT1tGrdWr0bSaDC1saHRjBnU+OYbDIyMPtk6BDkH8V74eeLv7w+Aqalpwv/vvXv3AChXrlyK/+fnzp3j1KlTSJKUsF8rFF1dXT/q6+Rzeh3q8m21HtBBoVA8B3YATRQKxVYAhUIxHcgPfJdovA+QuHts0fhtAoHgI+Dh4UGbNm0IDw+nd+/ebNmyBUNDQxYsWMCAAQPQaDQZmjcgIIBFixbx4sULAPbu3YtKpaJZs2Y6C9ITXieos64Oz4KfUb1wdc72P0s+Eyu4MRbOd5YFaZH20PoOFGiUoXV+dMLDYdYsKFlSFqQFCsDZs9CrV3avTCAQfGRiQkM5O3Mmy0qV4uaff4JCQY1Roxj99Cm1x44VglQg+MzQ1+gIUjY7EjWl+pNupFSSpEnAJID4SOl4SZK+VigUg4GWQFNJkhJ/690PjFIoFDuQDY5CJEnyRSAQZDlPnjyhVatW+Pv707JlS9avX4+xsTH29vZ06dKFzZs30759e7p166b33GPGjGH79u1MnTqVSZMmcfz4cQC++uqrdI/1j/Bn9vnZrLi+ApVGRZeyXdjSeQvm0a/hWDsIuiX3HnWdDy5jc2Yt5rt3sG4dLFgA8XdOad5c3ubgkPaxAoEgVxMbEcG15cu5NH/+exOjVq1o8dtv5C9XLptXJxAIPhZp1ZSmZHQEKbeFETWl+pOZPqV/Ai+Ay/FWx3slSZoJHEZuB/MUuSXMgMwuUiAQJOfw4cP07NmT0NBQatasye7duzE2NgagRYsWzJ49m3HjxrF582a9RWlQUBB79+4FICoqimnTpgFgbGxMp06dUj0uNCaUJVeWsPDSQsJiw1CgYGK9icxpMhvly7/g2jBQhYFFcai/E+xqZOziPxZxcXD9OqxdC9u3Q3xtCLVry31Hv/gie9cnEAg+KqroaG6sWsWFOXOIiK8tc2zQgC9++QWnRjk0m0MgEGQZGYmUOjs7Y2RkxNOnTwkMDMTOzk5ESjOAXqJUkqQzwJn4n1M8Nt6Nd2RmFyYQCFJGkiTmz5/PpEmTkCSJLl26sGnTJiwtLZOM69mzJ99//z3//vsv/v7+OqfcAmzfvp2YmBiaN2/O5MmTGT16NA8ePKBTp04JdueJeez/mOXXlrP53mbCY+U+fa1LtWZu07lUNoiAk43B/4I82KEb1FoLxtncTFqtBi8vePAA7t2DCxfg8mWIiHg/pmVLGDMGWrfOmdFcgUCQJahjY7m9fj3nZs0izEeuOCpSsyZfzJpFiWbNRJ9BgeA/gr4tYUCuP61fvz6nT5/mxIkT9OjRQ0RKM0BmIqUCgSAb2LBhAz/++CMAM2fOZMqUKSmaGdnb29OyZUsOHz7Mjh07GD16tM7nWL9+PQADBw6kcePG3L59m3PnzlG9evWEMWqNmgPuB1h+bTknn51M2P6F0xdMbzSdRrb2cHcyeO+Td5jYQeW5UHJw9gk8jQZOnoQ1a+DgQYiKSj7G2RnatYPhw//f3l3HV1X/cRx/nTVsMEpCuru7O0QwwfopoiKKhKR0g7QYIIKBgCAIiAEoPbq7u7sZsI1t9/v749xNRGLJ3cb7+Xjch/eee+Kzcdzue9+CvHkff40i8tg4wsLY8dNPLO/fn2vHjgGQoXhxag4cSL5GjRRGRZ4wKVOmxN3dncDAQG7duoWvr+9Dl4SJ0KBBA5YtW8aCBQt45ZVX1FIaAwqlIomIw+Fg+HB7fc9x48bx4YcfPnT/t956i/nz5zNlypR/hdIbITfw8/LDzfpvmN2xYwebN28mVapUkV11PTw8qFWrFgCHrxxmxu4ZjN88nhPXTwCQ3DM5zYo1o3W51hTxSwU7+8HaiWAc4J4cCnaCgp3BM2Xsvwkxce0aTJgA33zz76VbsmaFwoXtR4UKUKUK6BeISJJnHA52zZjB8n79uHzgAADpChak5oABFHzpJaw4mrVcRBIXNzc3SpYsyaZNm1i1ahX169d/ZEspQP369enatSsLFiwgMDCQ27dv4+PjQ4oU/1lNUx5AoVQkEVmwYAH79+8nS5YsvPfee4/c//nnnydFihRs3LiRbbu3sTt8N5O2T2LxkcWUz1KeaS9NI2fqnP86ZuLEiQC88cYb+Pj44DAOtp3bxoJDC5i1dxZbzm6J3Dd36ty0KdeG5iWak4pQ2DscDoyB8GCw3CFvKyjSB5K5KOgdPw5ffGG3jN60uxWTPTu89x688w5kyeKaukTEJYwx7PvtNwL69OHCrl0ApM6dmxr9+lHk9ddxc3d3cYUi4mp16tRh06ZNLFq0iHr16j1yoiOAYsWKkTFjRs6cOcPSpUsBu5VUvS2iTqFUxIWMMcyZM4ciRYqQL1++R+4/evRoANq0aYPnI5YiCAwJZNGxReRskZMdl3ZQfmZ57lh3It9fd2odJcaX4LvG39G0cFMA7ty5w+QpkyENpKydkqYzm7L06FKuBF2JPM7Py4/n8j/Hm0XfpH6e+rjduQp7h8GBryDMOR4zW1MoNghSPvprihdbtsDIkfDLL/bYUYA6daBjR3ucqFpBRJ4oxhgO/fUXy3r35uwW+w9r/tmyUa1PH4o3a6alXUQkUt26dRk6dCiLFi3i9u3bBAcH4+PjQ/LkyR94jGVZ1KtXj8mTJzNp0iRA40mjS6FUxIWmT5/OG2+8gWVZvPzyy3Tv3p0SJUpw6dIlzpw5w1NPPUXmzJkBOHr0KIsWLSJ58uS0bNnyged0GAeTtk2i+5LunL91HvwBf7jDHcpnLk+z4s2ol7seXRZ14bd9v/HKrFcot7Yc3u7eXLx0kStvXYFUMHTn0MhzZvPPRp2cdWicvzH1c9cnmWcyuHMVdvSF/Z9DmLMV8ulGUKwfpCkdb9+zB3/hDvj7bzuMLltmb/PwgDffhE6doESJx1+TiLjc0aVLWdqrF6fWrgXAL1MmqvbsSakWLfDw9nZxdSKS0FSqVAkfHx927NjBnj17gIe3kkaoX78+kydPZt68eYDGk0aXQqkkGAEBAWzYsIEuXbo8Md0dIrp4GGOYNWsWs2bNwtPTk9DQUMAeyzlo0CC6dOnC7NmzAWjevHnklOX3WndqHe3+asfGMxsBKJWpFPVz1efb/t9yafslanxUg2wZs+GW1o3ZTWczbtM4Oi3sxIbTG/45SSpIbiWnYcGG1MlZh9q5apM7de5//k2CzsPeobD/Cwi9bm/L1ACK9od05eL+m/QoISEwdSqMGgXOXx6kSAEffGDPnKs1RUWeSCdWrWJZ794cCwgAIHm6dFTp3p0yrVrhmSyZa4sTkQTLx8eHatWqsXDhQn755Rfg4ZMcRahbty6WZUV+hlNLafQolEqCYIyhWbNmnDx5kgoVKlCtWjVXl/RYrHX+5X7mzJmsXbuWb775htu3b5M6dWoyZMjAvn376NatG4sWLWLFihUAtGvX7j/nORN4hm6LuzFlxxQAnk7xNMPrDOeNonYrrPtydwatGsSwYcMYNmwYAJ06dWLkyJG8UOAFDlw+gJvlxssvv8zl05fZtmobefPcNfOsMXB5oz1e9Ph0cDi7AWeoDcX6w1OV4/G79ABXrtgTF331FTinXidLFmjfHlq0AH8XLzkjIi5xZtMmlvXuzaG//wbAJ1UqKnXpQvl27fC6Z+ksEZH7qVu3LgsXLmT69OlA1FpKn3rqKUqXLs2mTZsAtZRGl0KpJAh79uzh5MmTAGzYsOGJCKXXrl1j9+7deHl50bhxY5o0acKnn35KeHh45LiFefPm0bx5c5YssZdcefbZZ8mfP3/kOULCQhi9bjSDVgziVugtvNy96FyxM92rdsfP658PX927dyd79uzs2LGDrVu3smrVKubPn8/IkSPJnDIzmVNm5tatW1zechlPT09y5shpz5x7eQOc/NV+3DzsPJsFWZ6HAh0hvQv+nY4ehc8/h++//2dN0eLFoXNnePVV0NgwkSfS+R07WNanD/t//x0ArxQpqNChAxU7dMDnPusri4g8SJ06dQA4deoUELWWUrC78EaEUrWURo9CqSQIfzv/og2wceNGF1by+Kxfvx6A0qVL4+0c1+R9z/imZ599lu3bt9OsWTNWrVpFz549Abtl+c8Df9JxQUcOX7XD4gsFXmBUvVHkSp3rP9dKnjw5LVq0AODWrVv4+flx6NAhwsLC8PCwfwwcOnQIdzd4vVZGPLZ1gJNzIOj0PyfxfgpyvgX5WoPff68Rr4yBNWvgyy9h1ix7/CjYkxZ17gy1a7tu7VMRcalL+/YR0K8fu2fMAMAjWTLKtW1L5S5dSB6F1g0RkXsVK1aMp556iosXLwJRaykFO5QOHjwYUEtpdCmUSoLw119/RT5/UkLpmjVrAHtA/cM8/fTTLF68mIULF1KxYkV2nN/BJ4s+YcHhBQAUTFeQLxp8Qd3cdaN0XV9fX7JkycKpU6c4duwYefLkgeCLuO0bzpHRkC3dSbubLkDyrJD1JfuRrjK4PeblErZtg59/hhkz7OVdwG4JfesteybdYsUebz0ikmBcOXyYFQMGsOOnnzAOB+5eXpRp1Yoq3brhpw+DIhILbm5u1KlTh59//hmIeiitUKECKVKkIDAwUC2l0aRQKi538+ZNVq5ciWVZeHl5cfToUS5duhTlHwCJVVRDaYSL4Rf536//4+edP2Mw+Hv7079Gfz4q+xGe7tHosnrnOv2aehN+A5JvfRdO+MCFFRR1hEA6uBTsT7pSrewgmqbM42+BDA62l3IZOxY23DUBU5Ys9ky6bdqAc0ZiEXnyXD9xggMjR7JywQIcYWG4eXhQ6v33qdqzJ/6a2ExE4sjdoTSq3Xc9PT0ZMGAAS5cupUyZMvFZXpKjUCouFxAQwJ07dyhfvjweHh6sXr2azZs3U79+fVeXFm/Cw8Mju+9WrFjxwfs5wll8ZDETt01k1p5ZhJtwvNy9aFWmFT2r9uQp36eid+FTf8DGj3ivjLNbbuhKOAdgsfViVrp+f5IXWw2mVYnWMfvCYuPoUXviou+/B+dC1aRKBW+8Aa+/DpUqaX1RkSfYtWPHWDVsGNt++IHwO3ew3Nwo0bw51Xr3JnWuxzykQESSvLp1/+mBFp2Gkvbt29O+fft4qChpUygVl4voutugQQOuX7/O6tWr2bhxY5IJpdevX+fjjz/m2LFjzJkzh9SpU7N7924CAwPJkSMHmTJl+s8xBy4f4MdtPzJ5+2ROB9oB0g033inxDn2r9yV7quzRKyLoHGz+GE7YU5ufC81OvynHKVOxNi0+7AipCtOuwZus2nmST/Lmf8TJ4tiKFTB8OMyfb48dBShVClq3htdeg4csVi0iSd/lgwdZNWQIO6ZMwREWBpbFU7Vq8crXX5Mu/2P+eSUiT4ysWbOSP39+9u/fz1NPRbMRQKJNoVRi7Pr16zz//PM888wzdO3aNUbnMMb8K5QeOXIESJzjSnfs2MHHH39MwYIFadOmDYUKFWL79u00adKEQ4cOATB48GBGjhwZ2XX37lZSYww/7/qZrzd+zeqTqyO3506dm+YlmpP3dl5ebfBq9IoKvwMHvoKd/SEsENyTQ/FP2XY0D+OXNGJ/eDgtBjYE4ODBgwDky5cvNt+GqNu6FXr0gIhJrry87NlzW7eGcuU0cZHIE+7C7t2s+vRTdk2fjnE4sNzdKfbWW1Tp3p3d588rkIpIvPvqq6+YO3cuNWvWdHUpSZ5CqcTYL7/8wvLly9m8eTPt27f/z8yxUXHo0CGOHj1KmjRpKFu2LGnSpAESXyhduHAhTZo0ITAwkICAAMaNG0e1atXYsGEDwcHBFChQgH379vHVV1/RunXryPVJI8aT3gm/w0fzPuL7rd8D4OvpS9PCTXmnxDtUzVYVy7IIcC4AHyXGwJl5sLUL3Nhnb8vcGEp/AX45ye99FID9+/cDcOPGDc6fP4+Pjw9ZsmSJm2/K/YSFwYIF8N138Ntv9rYUKaBTJ/joI9BfIkWeeKfWrWP18OHsmzMHADcPD0q88w5VuncnTe7c9k7nz7uwQhF5UtStW/df3Xgl/iiUSozNnj0bsCcqWrp0Kc8880y0zxGxFEy9evVwd3cnT548+Pv7c/bsWU6fPk3mRDChzQ8//EDLli0JDw+nadOmpEuXjkmTJrFixQoAWrRowZdffskHH3zAlClT6NGjR+QaVpUqVeJK0BVe/uVlAo4FkMwjGSPrjaRZ8Wb/Wmc0yoyBc4tgRx+4bI9ZJUVeO4w+/c+/T7Zs2fD29ubs2bMEBgZGtuTmzp0bt/gYt3nwIEycCJMmwZkz9jYvL3vSou7dIYlPaiUiD2ccDg7Mm8eaESM4sXIlAO7e3pR87z2qdO2Kf7ZsLq5QRETik0KpxMjVq1dZsmRJ5OvffvstRqH07q67YE/BXaZMGZYsWcLGjRtdFkodDgejR4+mUqVK/5mIKDg4mIULF7J06VKWLVvGjh07AOjWrRuDBw/Gzc2NwYMHM23aNDJlysRLL70EwKBBg/jll1+YPn06YK8d6pPZhwrfVeDglYNk9MvIH6/9QdnMZWNW9PkAO4xetD/Q4f0UFOpmryvq/u9WbHd3d/LmzcuuXbs4cOBAZCjNmzdvzK59P5cvw59/wg8/gPNDpvMi8O670KwZPP103F1PRBKdsJAQdk6bxpoRI7i0dy8A3v7+lP3oI8q1bUuK+4y5FxGRpEehVGLkzz//JCwsjGzZsnHixAl+//13xo0bF61WtuDg4MguqXdPalS2bNnIUPrCCy/EceVRExAQQOfOnfHx8WHBggVUq1YNgAsXLlCvXj22b98euW/y5MkZPXo0LVu2jNyWOnVqWrf+9wy22bJlo0OHDgwdOhSAvPXyUuXHKlwNvkqJjCX447U/yOofg+UMLq6FHb3g/FL7tVcaKNgF8rUBzwe3tubPn59du3axf//+yLG8sQqlxtjris6fD/Pmwfr14HDY7/n6wiuv2GG0cmWNFxV5wgVfv87mCRNY//nnBDp7T6TMkoUKHTpQ6v338U6RwsUViojI46RQKjES0XW3a9euDB8+nOPHj7N+/fqHLm9yr7Vr1xIUFESxYsXIeNdC5xHrOkV0cXWFiOVagoODady4MQEBAWTIkIHatWuzb98+cubMyVtvvUXNmjWpUKECPj4+UTpvt27d+O6777iU9RI7i+/EEezgufzPMfWlqdHvrmsM7BoEO/vYrz1TQoFOUKC9/fwRIiY02r9/P8eOHQNiEEoDA2HRIjuIzp8PZ8/+856XF1SrZi/n0rSpPXZURJ5oN06fZv0XX7Dpm2+4ExgIQPoiRaj0yScUefVV3L28XFyhiIi4gkKpRFtgYCALFizAsixefPFFDhw4wBdffMFvv/0WrVC6dKndsle7du1/bS9b1u6+umnTJowxWC5oVYsIxBEtwfXr1ydlypQcPnyYokWLsmjRIjJkyBDt86ZMmZKq/aoy59IcHDjoXLEzQ+sMxd3NPXonCr0J696Bk7MAy24ZLdwNvFJH+RT5nTNXHjhwgOPHjwNRDKVnzsAvv9hdc1euhNDQf97LnBkaNoRnn4XatcEvBuNiRSTJubhnD2tGjmTHTz/hcP7MyFGjBpU++YQ8DRq45Oe8iIgkHAqlEm3z588nJCSESpUqkSlTJl544QW++OIL5syZE9k1tVu3bsyfP5+FCxfedx1OIHJMakQo3Xl+J4uOLOLmnZskb5ycK7euMGv9LJqUb/LYP7BEzP77xx9/8Mknn7Bw4UIuXrxI6dKlWbBgAWnTpo32OcMd4bSa14o5l+bgbrkz7tlxvF/6/egXd/s0BDSEazvsFtFK0yDzs9E+TUQo3b9/PydPngQeEkqPH7dnzZ0+HQIC/llP1M3N7o4bEUSLFVPXXBGJdHbLFlYMHMg+52zblpsbhZo2pVKXLmQuG8Px8yIikuQolEq0/frrrwC8/PLLAFSpUoU0adJw8OBB9u7dyw8//MCoUaMAmDx58n3XMA0MDGTDhg24u7tTonwJOvzdgS83fInDOMcglrb/88qCVyi4uSDvlnyXD8t8GLMZaaPp/PnznDx5Ej8/P4oUKcKvv/5Ks2bNMMYwceJE/P39o33O4LBg/vfr//h176/4ePgws+lMGuVrFP3igi/A0tpwY789q26138G/YPTPwz/dd3fv3s2dO3dInjw5T0dMPBTRLfevv2DpUnCOOQXsbrnPPgtNmkD9+hCDgC4iSdvpjRtZMWAAB+bOBcDDx4cS77xDxY4dSZMnj4urExGRhEahVP7DGMOYMWNYunQpGTNmJHPmzGTJkoXcuXOTJUsW5s2bBxA5q6yHhweNGzdm0qRJNG3alD179kSea+bMmfcNpStWrCA8PJz8jfNTYUoFTt04hZvlRrPizciaMivrVq5jydolJCufjL2X9tJlURfmHpjLkmZLot/VNZo2b94MQKlSpXB3d8fX1zdyDG1M3Lpzi+enP8+So0tI5ZOKP1//kyrZqkT7PB6OQFhazw6kqYpC7QDwThPjutKkSUO6dOm4dOkS7sBzTz+N9dlndotoQMC/u+WmSgXVq8Pzz8OLL9qvRUTucWrdOpYPGMAh58zqHsmSUfajj6jUuTN+d80dICIicjeF0iTCGMPcuXMpV65cjMY63n2erl27MmLEiIfuV7p0aXLkyBH5+oUXXmDSpEns2bMHNzc3Jk2aRKtWrdi8eTNHjhwhV65c/zp+8dLFUBf2l94PN6DM02UY32g8pTKVAmCJWcKSfksoeLkgfab04cN5H7L8+HKGrhpKz2o9Y/z1RUXEeNKICZdiIzAkkGenPcvKEyvJ6JeRBW8uoFiGYtE/UehNil7uDqG7IUU+qLkoVoGUfftg0yY+9/YmHVAB8D90CDp3tt93c4MqVewW0bp1oUQJcI/fPwaISOJ1YvVqVgwYwOGFCwHw9PWlbOvWVOrUCd/06V1cnYiIJHQKpUnEl19+Sfv27alduzaLFy+O0TmMMXTv3p0RI0bg4eHB8OHD8fDw4PTp05w4cYLDhw9z+PBhrl69+p/lTurVq0eKFCm4efMmP/74I2+++SZ//fUX06ZN+09r6cVbF/ku+DuoDG64MazuMDpU6PCvFtDy5cvj7u7O9q3bqZ2lNpNemET9n+rTN6AvtXPVpkKWCjH7RkVBRCgtG8vxTteDr/PM1GdYe2otmVNkZunbS8mXNl/0TnL7DBz6Bg5+g3/oRfDNDrUWQ7IY/OHh9GmYNg2mTIGdOwH4311vX06VirQvvww1a9rdctOli/41ROSJcnzFCpb3789R58R1Xn5+lGvbloodO5JcP0NERCSKFEqTgFOnTtGrVy/Anjxo9+7dFC5cONrn6d27N8OGDcPDw4NffvmFF1988b77hYWF4eHx71snefLkLF26lKCgIKpWrQrAy01eZtq6aQw9MpQBnw7AwiK5Z3Juh97mVvpbcAsWvL+AOnnr/Ocafn5+FC9enC1btrB+/Xrq1a5Hp4qdGLV2FG/MfoOtH2zF3yf6YzsfxRgTOclRTFtKjTHMOziP7ku6s+vCLrL7Z2fp20vJlTrXow92hNsTGJ1fZq87enYBmDAAAj3zkqLWfPCNxlqmN2/Cr7/aQXTJkn8mKEqTBmrUYFVgICMXLWIz0H/UKN59993of8Ei8kRxhIezb84c1o4axal16wDwTpmS8h9/TIX27UmWJha9OERE5ImkUJoEfPzxx9y8eRMvLy/u3LnD119/zdixY6N1jsOHDzN48GDc3d2ZMWPGAwMp8J9AGiEixB28fJDpu6bz44kfoRlc4xo4hyfeCr1lPzkJlU9Xvm8gBSA0kBbPZmGd7xbCdw+Hp5YzpEAFVh8rwbqz2/hg7gf8/PLP/5qVd968eQwfPpwxY8ZQtGjRaH39Ec6cOcO5c+fw9/cnd+7c0To2NDyUX/f+ypBVQ9h+fjsAuVPnZkmzJWRPld3eKewWXN0BV7fC1W32f6/vhvCg+5/UcoOsL0P+j9m8O4waKaI4QciWLTB2rD1b7u3b9jYvL2jUCN56y54t18uLy7//zu+LFgExWKNURJ4od27eZOvEiaz//HOuOic/80mdmvLt2lH+449JljrqS1KJiIjcTaE0kZs7dy6//vorfn5+zJw5k2eeeYbJkyczZMgQUqZMGeXzbNiwAYCGDRtGTmD0KBdvXeT7rd9z7uY5jDE4jIO1p9ay+ezmyH2Shybn9srbdG3QlR4dexAUGkTnrp356fufaDi44b9P6AiHc4vh2BQ4+SutCgTRqgDAQti1EE9glb8vv+DO1GMz6L80J/1qD4k8fPz48axYsYLGjRuzadMm0sWg69jd40mjugzNsWvH+G7Ld5HfC4CnUzxN54qdaVnkJXyvrIN9A+DSarhxADAPP6FvDshQE9LXgIy1IXlme/uegIcfZwzMng2ffQZr1/6zvXJlO4i+8grc86ExYgZeUCgVkfsLPHOGDWPGsOmbbwi+ehWA1LlyUaFDB0q88w5evr4urlBERBI7hdJE7NatW7Rp0waAAQMG0KBBA2rUqEFAQACTJ0+OfO9uc+bMoWfPnvz6668UKFAgcvvWrVsBe8bZRzkTeIaRa0YyfvN4bofe/s/7KbxS8EKBF3ij6Bvc3nWblwe/zMLAhQztPpSU3ilZv2g9ALVq1frnoAsrYWMru9XQ6U6KUsz4aws3Qjxp1aYDbucW4X51K6/7wet+cO3MUPbPXU7+wh+BZ0rShW2ncj4wHKd/m7qMHj0aj7sn50mRF5I9fPbHh05yZAzcuQpBZyEsENyT892O6QxeNYTcntDECypkTU3FdDnI4ZMct0vfwJ+d+FcItTzAvzCkLgGpSzr/W9xebxQr5mt8btoE7dvD6tX2a39/eOcdaNUK8j14HGvu3LnJnDkzyZMnj9UEWSKStBiHgyNLlrD5m2/Y9/vvmPBwALJUrEilzp3J//zzuGnyMxERiSMKpYnY119/zfHjxylRogRt27YFoHXr1gQEBDBmzBhat279n9a+sWPHsnfvXiZPnsynn34auT0ilJYsWfKB1wt3hDNyzUj6BvQlJDwEgEb5GlEzR03cLDcsLLL5Z6NBngYk80wGQHCWYFKkSMHWrVsZPHgwp06d4uDBg6RIkcIOfsEXYdsncORH+yK+2SHXe5DzTbz8ctK7bQ6OHz9OlXZvUPyZYXDjIJycyeV940gbcopUN9ZGtgr+8Obd1W6DZTX/+0WkLQeZn7Ovc30XXNsJQefAJwMkz0zhsKWMbQ7PFQ+ARVUh9Ibd5Tb8NoRcAUfIv07XAmiR8+4tV+HmVbjpfOnmDemrQsZ6dutnqqLg7v3A73G0Xb5sz5j744/266eegr59oXlziELrhZeXF5s3b8bNzS3KLcMiknTdvnyZbRMnsnn8eK4cOgSA5e5OoSZNqNCxI1krVnRxhSIikhQplCZiK1euBOCTTz6JHOf5/PPPkzlzZvbv38+SJUuoU+efMZvh4eGR3XTXrFkTud0Yw5YtW4AHt5QevnKYt397m9Un7Za4lwu+TM+qPSmZ6cEhFsDHx4fnnnuOqVOnRk7GBPBsw2fwOPYjbOsKd66AmxcU6g6Fu4G7T+R+lStX5vjx46xevZrixYtDyrxQuAdpC/fgi4WtuLT/G4p4QXLLfiRzQBrftFw5dRlHEOTPn4+nnkoPjjB7/OblDfbjAV4rChQFzHq4eJ8dPFNCskxcvHOHc9eP4ucG6ZOlwjd1EUhZwH4kzwo+6e2Hbw7wSP7Q71GMzZ4NH30EFy6Ap6fdUtqzp91KGg1qIRV5shljOLlmDZu/+YbdM2cSHmL/8S1l1qyUbtmSku++S4qnn3ZxlSIikpQplCZiEUHy7q6mnp6efPDBB/Tp04cxY8b8K5Tu2bOHwMBAwB5DGhoaiqenJydPnuTKlSukTZuWLFmy/OsaIWEhjN04lj7L+nAr9BZPp3iaH577gfp56ke5zl69ehEUFES6dOnInz8/ZfJ4UdnrJ9jwvr1DxjpQZiyk/G830ypVqjBt2jRWrVrFRx999K/32tX9mh5uqei88yfOB54n1DhnU+Ky/Z87kHVlEAsGTKDgUwXtFs9zi+H0XLsbrn8R/lp7inGT/6R+9ZJULpmD2dPGE2b58uno77F8MoKXP7j72sHSKxV4+DJz90xenfUqBvis3md0qNghyt+LOHHhArRuDbNm2a+rV4dvvwWNCRWRaAgJDGTHlCls+uYbLjiXicKyyNuwIaU//JC8zzyD2wMmthMREYlL+m2TSJ0/f57Tp0+TIkWK/8wS+/7779OvXz/mzZvHjRs3Iic8WnvX5DdBQUFs376dMmXK/Gs8aUQXTodxMHXHVHov683x68cBeK3Ia4xtOJY0yaI33X+BAgWYPXu2vebmzn5w5Ae4GQ4+GaHUaMj+6gPHUlauXBmA1RFjJe9iWRZD6gxhSJ0hfP/997T4qAX136xPmf+VYdauWey/up+TGU9S6OtC1M1Vl66Vu1I71/OQ5fnIc3RvVoLt2y/w55oFkdsaNKiKlf3V+9ZzJvAMLf5sgcEwsObAxxtIjYGff4a2be1uu76+MHw4fPghuLk9vjpEJFG7fOAAG8aMYduPP3LH+YdK3/TpKfnee5R6/31S58z5iDOIiIjELX2STaTuHgPqdk8gyZgxIxUqVCAsLIwlS5ZEbl8XsZ6ctz2mMaILb0SLa8R40n2X9lHhuwo0+60Zx68fp0j6Isx9fS4/v/xztAMpAHeuw/ae8GceOPytvS1fW2i0D3K89tDJfQoXLkzKlCk5ceIEp06deuB+R44cgTtQPkt5BtUaxL52+8jyZxbYBN5u3iw6sog6U+rQ+OfG7L+0H4Dg4GB2796Nm5sb7dq1I41zbb26des+8Drt/mrHjZAbNM7XmJ5Ve0b/exFTZ85QpHdveOMNO5DWqQO7dtnddxVIReQRjMPBwfnzmfrMM4zJn58NX33FncBAslerxsvTp9Ph5Elqf/qpAqmIiLiEPs0mUo8aA/rMM88A8Pfff0dui2gpffNNe0agiFAaEXCLlyjOl+u/pOT4kmw8s5EsKbPw4/M/su2DbTyb79noFxkeAvs+hz9zw+5P7bU4s74Mz+6GMl/aXWMfwd3dnYrOiTXu11oa4fDhwwD/ajWuW6wuzIXevr0ZXGswKbxSMPfAXIqMK0Lrea35e/3fhIWFUaBAAb744gtOnz7N5s2badeu3X2v8cf+P5i9dza+nr6MaTjm8UwMFBYGn38OBQqQbvVqSJnS7qq7cCHkyBH/1xeRRC34+nXWff45Y/LnZ9qzz3Lo77/x8PGhZIsWfLBtG82XL6fIq6/i7uXl6lJFROQJplCaSD0qlDZo0ACAv/76C2MMV69eZd++fXh7e0eOzfxXKE0DY66P4eO/PyY4LJjmJZqz+6PdvF3ibdzdYjDt/8nfYG4B2NIBQi7DU1Wh3lqoOgtS5o/WqR7WhTfC/UJptWrVANi0chM9qvbgYNuDtCzVEodx8PWmr3kp4CV4DbJUssfR+vj4UKpUqchJo+4WGBJI6/mtARhcazDZ/LNF62uIkdWroXRp6NABAgO5VKmS3TraokXMl44RkSfCxT17mPfRR3yWOTMLOnTgyqFD+GfPTp1hw+hw6hTPffstGYsXd3WZIiIigMaUJlqPCqWlSpUiffr0nDx5kr1793LixAkASpcuTYkSJfD39+fkyZOs3bSWU3lOQRVYe34t6ZKnY0KjCbxY8MWYFXbnGmxqB8em2K/9C0OJofD0szEOUhHdig8ePPjAfe4XSqtWrQrYsxQbY8jgl4HxjcfTtnxbRq0dxeStkzEFDAtZSJeFXRhaZ+h9A3hIWAgdF3Tk1I1TlHm6DG3K/Xf91zh14QJ88glMmmS/zpkTvvySXX5+1MiaNX6vLSKJVmhQEHtmzWLLt99ywjk7O0DOWrUo17Yt+Ro31tqiIiKSICmUJkJXr17l6NGjJEuWjPz579/q6ObmRv369ZkyZQp//fUXN27cAKBixYq4ublRrnI5Fp1fRP3f60MN+5i3i7/N8LrDSe+bPmaFnV8Ga5vB7VPgngxKDIO8H0FMWlrvkilTJgDOnj173/evXr3K1atX8fX1/dfyJrly5eLpp5/mzJkz7N27l0KFCgFQJH0RJj4/kW0jtrHNaxvuNdwZuXYk+y7vY+pLU0npbU8MdSPkBuM3jWf0utGcvXkWd8udCY0mxKzlOCqMgfHjoXt3uHYNvLygWzf7kSwZBATEz3VFJFE7v2MHm7/9lp0//UTwtWsAePr6UuzNNynXpg3pixRxbYEiIiKPoFCaCEWOAS1e/L5dTSM0aNCAKVOm8Pfff0dOhlSkbBG6L+7OqnKrAAgkEM7DSz4v8eMLP8a8qOO/wJr/gQmDtOWh4uT7LvESExGh9MyZM/d9P6KVNFeuXP8a52lZFtWqVWP69OmsWLEiMpQChIaGsnfTXgiB3778jbfnv83cA3Mp/1158qTJw6Erhzhy9Qh3wu8AUCxDMT6t9ekj12WNsatX4Z134Pff7dcNGsBXX0GePPFzPRFJ1EICA9n9yy9s+fZbTq9fH7n96bJlKfX++xR57TW8U6RwYYUiIiJRp1CaCN07W+6D1KtXD8uyWLFihT3jrjeMujiKXft22TucAtYDu6HRd41iXtDRKbCuORgHFOhkd9d1i7tbK3369FiWxcWLFyPXVr3b/bruRqhatWpkKP3www8jt+/du5eQkBDy5MlDoyKNWP/0ehr/3Jh9l/ax79K+yP2qZa9Gt8rdaJCnQfxNbLRxI7zyChw7Bv7+MGECNG2qcaMi8i/GGE6tW8fW779n1/TphN66BYC3vz/F3nyTUu+/r3GiIiKSKCmUJnB37tzhtddew8PDg59//hl3d/dHjieNkC5dOsqVK8f69eu547iD97ve7Lq8izxp8vBNvW+oV6geDocDeHTAfaBD38GGloCBov2hSO84D1MeHh6kT5+e8+fPc/78ebJkyfKv9x8WSiMmO1qxYgXGmMhgee/3ME+aPKx7bx2/7fsNPy8/8qbNS+7UufH18o3Tr+U/vv0WWreG0FB7UqNffoFcueL3miKSqNy+dIntU6aw9bvvuLhnT+T2bFWrUvK99yjctCmeyZO7sEIREZHYUShN4Pr27cucOXMAqF69Oq1bt45yKAW7C+/6DevhJQh5OoSMfhlZ+OZCcqbOSbFixdi2bRteXl7/6toaZWf+gg3v289LDIVCXaN/jijKlCkT58+f5+zZs9EKpYUKFSJNmjScPn2aY8eOkdO5Bt/9vof+Pv68XeLt+PoS/i00FNq3h6+/tl+3bg2jRoFzDVkRebJFtIpuHDuWPTNnEn7HHkrgmz49xZs3p+S775LuAXMKiIiIJDZaEiYBW758OcOGDYt83bNnTw4dOsSBAwfw9PSkcOHCjzxHjbo14AWgEPjgw4I3F5AztR3MKlWqBECRIkXwiu4adUFnYa0zwBUdEK+BFB4+2dHDQqmbmxtVqlQB7NbSCNEJ9nHuwgWoW9cOpF5eMHEijBmjQCoihN6+zZbvvmNC6dL8UKkSO6dOJTw0lLwNG/LKr7/S4dQp6g4bpkAqIiJJikJpAnXt2jXeeustjDH07NmThg0bcv36dV544QWMMRQpUsQeJ/oQG05voOWWllAcCIVRZUZRLEOxyPefffZZAOrUqRO94ozDnmU35CJkrANFekb3y4u2mIZS+KcL70rnEgnh4eFs27YNiEW35ZiaMweKFIHlyyFTJlixApo3f7w1iEiCc/XIERZ07MhnmTPz5/vvc27rVpKnS0flbt34+MgR3pg3j4Ivvoj7PWPqRUREkgJ1301gHA4Hx44do2vXrpw8eZJy5crRt29fTp48ydKlS9m9ezfw8BY+YwxDVg2hz7I+hJtwciTLQWOPxrRq2Opf+zVs2JDt27eTL180Z8ndOxLOLQbvdPYsu1b8/23jQaE0ODiY06dP4+7uTrZs2e57bPXq1QGYOXMmXbt2JTw8nFu3bpEtWzbSpUsXv4VHuHoV2rWDn36yX9esaT9/+unHc30RSZBOrV/P2pEj2fvrrxjnGP8sFSpQ5qOPKNy0KR4+Pi6uUEREJP4plCYQe/bsoWXLlmzbto1bzhkVfX19+emnn/D09CRXrlz07NmT3r17Aw8OpcYYui7uyog1IwDoWKEjg2sPxsfj/h9sihUrdt/tD3RpA2x3toxWmATJMkXv+Bh62hne7g2lR48exRhD9uzZ/zMrb4TSpUvz4osvMmfOHF544QXatWsHPMauu3//De+9B2fO2OuNDh8OH30EbuqoIPIkMg4H+//8k7UjR3Jilb08l5unJ8WbNaNc27ZkcsWwAhERERdSKE0gvvjiC1avXg3YrYJFixalS5cu5M2bN3KfLl26MHXqVPbt20flypXve54+y/owYs0IPNw8+KXJL7xY8MW4KzLkCqx+xV6LNH97yNww7s79CA9qKX1U112w1yudNGkS+/btY8+ePbRv3x54DKE0MBA6dbJn2AWoWBEmTYK7/k1F5MkRGhTEjilTWDtqFJcPHADs5VzKtGpF+bZtSaGeEyIi8oRSKE0AjDHMnz8fgFWrVj0wcHp7e7N8+XL2799P8fusRTdw+UAGrRyEu+XOzy//HLeBNGIc6a3jkLYclBj26GPiUGxCKUCKFCn47bffKFu2LDdu3ADieTxpQAC884699qiXFwwcaAdUd/f4u6aIJEi3L11i49dfs2HMGG5fvAiAf/bsVOjQgZLvvot3ihQurlBERMS1FEoTgF27dnHq1CkyZsxIxYoVH7pv+vTpSZ8+/X+2zz0wlz4BfXCz3Jj84mSaFGoSt0XuGQ5n5oFXaqjyC7hHc7beWIptKAXIly8fU6dO5bnnnsMYEz8tpbdvQ/fu8OWX9utSpezW0SJF4v5aIpKgXTl0iLWjR7Nt4kTCgoIAyFSqFJW6dKFQkya4eehXsIiICCiUJgjz5s0D4JlnnsEtBuMMHcZBz6X2OM8htYfwRtE34rQ+zi+HHc5xpBWngG/2uD1/FGTMmNEu5fx5HA5H5PcpOqEUoFGjRsyePZvAwMDIcapxZu1aePttOHgQPDygVy/o0QM0W6bIE8MYw4lVq1j/+efsnTMHjAEgb8OGVOrShezVq2NZlourFBERSVgUShOAiK67EUu0RNfM3TPZcX4HWVJmoV35dnFZGtw+5RxH6oBC3SBzzGqMLW9vb9KkScOVK1e4dOlSZGvxoUOHgKiHUoAXX4zDbs0AISHQty+MGAEOBxQubLeOli4dt9cRkQQr9PZtdk6bxoYxYzi/fTsA7l5eFH3zTSp27Ej6KKwrLSIi8qRSKHWxq1evsmbNGjw8PKK/XigQ5gijT0AfAHpX6/3AWXZjJDwEVr4MwRcgQy0oNjDuzh0DmTJl4sqVK5w5c4b06dMTHBzMoUOHcHNzi/6yNnFl1Spo1Qp27bJn0/3kE+jfH7SMg8gT4eqRI2wcN46t339P8NWrAPimT0+p99+nbOvWpMj0eGYoFxERScwUSl1s4cKFhIeHU6NGDfz9/aN9/E87fuLA5QPkTp2bd0q8E7fFbWoDlzfY3XUrzwA3194umTJlYvfu3Zw9e5YSJUqwZ88eHA4HBQoUwOdxh8D9+6FbN/jtN/t1njx262ilSo+3DhF57IzDwZHFi9nw1VccmDcvsotu5vLlKdemDYWaNsXD29vFVYqIiCQeCqUuFtF1t2HD6C+vcif8Dv2X9wegX41+eLrH4djFQxPg8Hfg7gNVfwWfdHF37hi6d7KjnTt3AlC0aNHHV8T583ZL6IQJEB4OyZPbs+p27Qq+vo+vDhF57EJv32bL99+zccyYyCVd3L28KPLaa5Rt04bMZcu6uEIREZHESaHUhRwOB3/99RcQs/GkE7dO5Ni1YxR6qhCvF3k97gq7uNZuJQUoNwHSJIyF3B8USosVKxb/F791C0aNsseN3rxpd9V9/33o1w+0tqBIkhZ6+zabvvmG1cOGcevCBQBSZslCmVatKPX++/g+9ZSLKxQREUncFEpdaNOmTVy8eJHs2bNTsGDBaB3rMA5GrR0FQJ9qfXB3i6P1L4POwqqXwREK+dpBzrfi5rxx4N5QumPHDiCeW0rDwmDiROjTB86ds7c1bgxDh0KhQvF3XRFxudDbt9k0frwdRs+fB+DpMmWo3K0bBZ5/Xku6iIiIxBH9RnWhu7vuRneJgPkH53PwykGy+2fn5UIvx01B4XdgVVM7mKavBqVGxs1548hj7b5rDMyfb09ctGePva1MGbultEaNuL+eiCQYDwqj1fv1I28Mfl6LiIjIwymUukh4eDg//fQTYK+dGV2j140GoG25tnjE1QREWzrCxdWQLDNU/gXcEtb6mneH0osXL3Lu3Dn8/PzIkSNH3F7o2DFo2xbmzrVf58wJQ4ZA06Z2t10RSZJCg4LY7AyjN509IxRGRURE4p9CqYv8+eefHD58mBw5clCvXr1oHbv93HaWHl2Kn5cfLUq1iJuCTs+Dg2PBzcue2ChZhrg5bxx62jl28+zZs5GtpEWKFMEtroJiSAh89hkMHAhBQZAypb3+aOvWoJk0RZKs+4XRTKVLU6NfP/I++6zCqIiISDxTKHWRzz77DID27dvjEc1xSZ+v/xyAd0u8i79P9JeR+Y/QQNjYyn5efAikKxf7c8aDu1tK47TrblgYTJ5sT1p08qS97fXX7YmNtMagSJIVGhTE5gkTWD10qMKoiIiICymUusDGjRtZuXIl/v7+vPvuu9E69tzNc0zbOQ0Li3bl28VNQdt7we2TkKY05I+jc8YDX19fUqRIQWBgICtWrADiYObduXOhc2d73VGAokXt1tI6dWJZrYgkVKFBQWz59ltWDR3KTecY9UylSlG9Xz/yNWqkMCoiIvKYKZS6QEQracuWLUmRIkW0jh23cRx3wu/wQoEXyJ0md+yLubQeDnwFljuU/w7ianxqPMmUKROBgYEsWbIEiEVL6enT0K4d/Pqr/TpXLhgwwG4h1bhRkSQpLCSEzePHK4yKiIgkMAk7gSRBJ06cYObMmbi7u9O2bdtoHXs9+DpfbfgKgA4VOsS+GEcobHgfMFCgE6QuEftzxrNMmTJx4MABrl+/DsQglIaFwddfQ69eEBgIvr72GNLWrcHLKx4qFhFXM8awZ+ZMFnfrxrWjRwHIWLIkNfr1I1/jxgqjIiIiLqZQ+ph9/vnnhIeH8/rrr5M1a9boHbvuc64GX6V69upUzVY19sXsGgTXdoJfbijaN/bnewwy3TXGM3PmzKRJkybqBy9eDO3bw+7d9uvnnoMxYyCa/w4iknicWreOBR07cmrtWgCeKlyY2p9+qjAqIiKSgCiUxoPg4GC++eYbsmXLRu3atfH392fv3r1069aNP/74A4COHTtG65xXgq7w2Tq72++AmgNi/2Hq0jrYPRiw7G67Hsljd77H5O5QGuVW0osX4YMPYM4c+3WuXPa40eefj4cKRSQhuHbsGIu7dWP3jBkA+KZPT82BAyn57ru4RXNyOREREYlf+s0cDyZNmkSHDnb3Wnd3d4oXL862bdtwOBz4+voyYMAAypQpE61zfrb2M26E3KBOrjpUy14tdgWG3YI1b4EJh4KdIUON2J3vMYp2KF25El57Dc6csbvq9uoFHTpoiReRJCr4+nVWfvop67/4gvCQEDx8fKjQsSNVunXDO5pj+EVEROTxUCiNBxHLlWTJkoWzZ8+yZcsW3N3d+fDDD+nbty8ZM2aM1vku3b7EF+u/AGBAjQGxL3BLJ7h5CFIVhWKDYn++x+juUPrQmXcdDhg6FHr3tp9Xrgw//6yuuiJJlCMsjM0TJhDQty+3L10CoNibb1Jr8GD8s2VzcXUiIiLyMFEOpZZluQObgNPGmEaWZeUEpgNpgc3AW8aYO5ZleQOTgdLAZeBVY8yxOK88ATtw4AAA48aNo2rVqqxbt448efKQO3fMZssdvno4N+/c5Jk8z1Axa8XYFXd6HhwaD25eUGkquCeuFsMotZReuABvvQULF9qvu3e3Z9ZVlz2RJMcYw8H581nUuTOX9u0DIFvVqtQbNYrMZcu6uDoRERGJiuh8Sv8Y2AukdL4eBow2xky3LOsb4D1gnPO/V40xeSzLes2536txWHOCt9+55mW+fPnw9/enfv36MT7X+ZvnGbNhDGCPJY2VO9dhQ0v7efHBdktpIhMRSt3d3SlQoMB/d1i+3F7W5exZSJcOpkyBBg0ec5Ui8jic276dhZ06cdS5RFTq3LmpO3w4BV58UZMYiYiIJCJRWpDRsqwswLPAd87XFlALmOXcZRLwgvP5887XON+vbT1Bnw6CgoI4ceIEHh4e5MyZM9bnG7pqKEFhQTyX/znKPB29caj/se0TCDoDaStA/jhYUsYF8uTJQ8GCBWnSpAne944L/eorqFXLDqRVqsDWrQqkIklQ4Nmz/P7ee4wvWZKjS5bgkyoV9UePpvWePRR86SUFUhERkUTGMsY8eifLmgUMAVIAnYHmwDpjTB7n+1mBv4wxRSzL2gU0MMaccr53GChvjLl0zzlbAi0BMmTIUHr69Olx9kXFh5s3b+Ln5/fI/Q4fPkyLFi3ImjUrkydPjtU1L4Zc5H/r/0eoCeXb0t+Sxy9PjM+VKmQrJS53xIEnm56awG3PHLGqzZWMMf/+0GkM2aZOJdf33wNw/I03OPbuuxh3dxdVGD+ieg+KxCdX3ofhwcGcnDGDk9On4wgOxnJ35+kXXiD7W2/h6e/vkprENfTzUFxN96AkBIntPqxZs+ZmY8x9W9ke2X3XsqxGwAVjzGbLsmrEVVHGmAnABIAyZcqYGjXi7NTxIiAggKjUeMk5wUbx4sWjtP/DtJnfhlATSpNCTWjRqEXMTxR2G+bbx7sV7U25os1jVVeCYgz06AHffw+WBd99R/Z33yW7q+uKB1G9B0XikyvuQ2MMO6dNY0m3btw4dQqAAi+8QJ1hw0ibL99jrUUSBv08FFfTPSgJQVK6D6MyprQy8JxlWQ0BH+wxpV8AqSzL8jDGhAFZgNPO/U8DWYFTlmV5AP7YEx49ESImOcqfP3+sznPi+gm+3fItFhb9qveLXVHbe8LNw/YY0kJdY3euhOT2bWjfHr79Ftzd4aef7OVfRCTJOLV+PQvat+fUunUAZCpVinqffUaO6tVdXJmIiIjElUeOKTXGdDfGZDHG5ABeA5YaY/4HLAOaOHd7G/jd+fwP52uc7y81UekjnETcPclRbAxaMYg74Xd4rchrFE5fOOYnOjQB9n8OljuU/x7cvWJVV4KxZQuULm0HUi8vmD1bgVQkCblx6hRz3nqL7ytU4NS6dfhlzMhzP/zA+xs3KpCKiIgkMbFZI6MrMN2yrEHAVuB75/bvgSmWZR0CrmAH2SdGREtpbELp4SuHmbhtIm6WG32r9415MafnwcaP7Odlv4G0SWB5hBs3YPRoGDQIwsKgYEGYOhVKlnR1ZSISB0Jv32bNyJGsHjaM0Nu3cff2pmLHjlTp3h3vFClcXZ6IiIjEg2iFUmNMABDgfH4EKHeffYKBpnFQW6JjjIlsKY1N990eS3sQ5gjj7eJvkz9dDM9zeROsegVMOBTuBXliMSY1ITh/Hr78EsaOhevX7W3t2sHQoZAsmWtrE5FYM8awa/p0Fnftyo2TJwEo1KQJdYYPJ3UczGQuIiIiCVdsWkrlHpcvX+bq1av4+fmRMWPGGJ1j/an1/LL7F3w8fBhYc2DMCgm+CMsbQfhtyNkMisVyfVNXCg6G4cNhyBD7OUDVqtC/P9Ss6draRCROnN64kb8//phTa9cCkLFECep//rm66YqIiDwhFErj0N2THMVknTxjDJ0XdQagffn2ZPXPGrNCNrWG4PPwVFUo9609K21iNG+e3Rp65Ij9unFj6NYNKlVybV0iEidunD7N0h492O5cPss3fXpqffopJZo3xy2JLekkIiIiD6ZQGodiO8nR7/t/Z9WJVaRLno5uVbrFrIjjv8CJmeDhBxUnJ86JjcLDoW1bGDfOfl24sN1tV60mIklCWHAwa0aNYtWnn9rjRr28qNChA1V79MA7ZUpXlyciIiKPmUJpHIrNJEeh4aF0XWwv19KnWh/8fWKwEHzQedjknNio5AjwyxH9c7haUBC88Qb89ht4e8Onn9oB1dPT1ZWJSCwZY9g3Zw4LO3Xi2rFjABR86SXqDB9Omty5XVuciIiIuIxCaRyKzSRHk7dP5sDlA+RJk4cPynwQ/YsbAxtbQchlyFgH8sTgHK529So8/zysXAmpUsGff0KVKq6uSkTiwPmdO1nQvj1Hly4FIH2RIjT44gty1qrl4spERETE1RRK41BsWkrHbbK7qvap1gevmHS5PfELnJoDHimg/HeJbxzp+fNQrx7s2AGZM8Pff0ORIq6uSkRiKejKFZb16cOmceMwDgfJ0qSh5sCBlG7ZEjcP/QoSERERhdI4Ex4ezqFDh4Doh9ItZ7ew+exmUvukpmnhGKymE3IFNrezn5ccAb7Zo38OVzp5EurUgQMHIH9+WLgQsmVzdVUiEguOsDA2T5jAst69CbpyBcvNjbKtW1Ojf3+Sp03r6vJEREQkAVEojSMnTpwgJCSETJkykSKaC7x/u/lbAJoVb4aPh0/0L761CwRfsGfbzfN+9I93pcOHoXZtOH4cihe3A2n69K6uSkRi4eiyZfz98cdc2LkTgJy1alH/88/JULSoiysTERGRhEihNI7EtOvurTu3mLpzKgDvl4pBoDy/DI78AG5eUG4CWG7RP4er/PYbtGwJFy9C+fLw11+QOrWrqxKRGLp27BgLO3dm7+zZAKTKkYN6o0ZR4MUXY7RMloiIiDwZFErjSEwnOZqxewaBdwKpmKUihdMXjt5Fw4JgfUv7eeFe4F8gese7ypUr9vqjU+0wTt26MHs2RLOFWUQShtDbt1k5ZAhrRowgPCQEz+TJqdKjBxU7dsQzWTJXlyciIiIJnEJpHIlpS+m3W+yuuy1Lt4zeBY2BLR3g5iHwLwyFukbveFeZNw/efx/OnoVkyWDoUGjTBtwSUQuviEQ6vGgRcz/4gGtHjwJQ9I03qDNsGCmzZHFxZSIiIpJYKJTGke3btwNQqFChKB+z8/xO1p1aR0rvlDQtFM0JjvaNgkPjwc0bKkyEmMzY+zhdvw4dOsDEifbrSpXgxx8hb16XliUiMXP70iUWdOzIjilTAMhQrBgNx44lm5ZxEhERkWhSKI0D4eHhbN26FYDSpUtH+biIVtL/Ff0fvl6+Ub/giVn25EYAlaZA2rJRP9YVFi6E996DU6fA2xsGD4b27cHd3dWViUg0GWPYPmUKCzp0IOjyZTx8fKjety8VO3XC3dPT1eWJiIhIIqRQGgf279/PrVu3yJYtG+mjOHPsrTu3mLR9EhDNrrsX18Lat+znJYZBthgsIfO4BAZC584wYYL9ulw5mDQJCiSSsa8i8i9Xjxxh5yefcHXTJsCeVbfR+PGkyZPHxZWJiIhIYqZQGgc2b94MRK+V9OddP3Mj5AYVslSgRMYSUTvo0joIeAbCgyHPB1CwSwyqfUyWLoV337WXevHygv797YDqoVtOJLExDgcbxo5lSbduhN6+TbI0aag3ahTF335bs+qKiIhIrCkhxIFNzlaDMmXKRGl/YwzjNo0DoFWZVlG7yIVVENAQwgIh68tQZgwkxA+Dt25B164wdqz9ulQpu3W0SBHX1iUiMXLl8GH+eO89ji9fDkD6WrVo9vPP+Go9YREREYkjCqVxICKURrWldOOZjWw5u4U0ydLwSuFXHn3A+QBY3gjCbkH216HiZHBLgP90K1dC8+Zw5IjdItqnD3TrBhpnJpLo3Ns66ps+PY3Gj+dcqlQKpCIiIhKnEmCySVzCwsLYtm0bEPVQGtFK+k6Jd/Dx8Hn4zhdW2C2k4UGQsxmU/wHcEtgEQUFB0LMnfP65vVRNsWJ262iJEq6uTERi4N7W0SKvv84zX31F8rRpORcQ4NriREREJMlRKI2lffv2cfv2bbJnz066dOkeuf+VoCtM3zUdgA9Kf/DwnS+uhYBn7UCa6x0o/x1YCWw9z3Xr4O234cABezbdHj2gVy97HKmIJCrGGDaPH8/CTp0iW0efHTeOgi+95OrSREREJAlTKI2liEmOojqedNK2SQSHBVM3V13ypn3IGp2XN0FAAwi7CTnehHLfJqxAGhwMffvCyJHgcEChQnbraBS/DyKSsNw8f54/3nuPg/PmAVD41VdpOGYMyaPwxzYRERGR2FAojaXoTHIU7giP2gRH13bBsnoQesNe8qXCxITVZXfjRnvs6J494OZmT2zUrx/4PKIrsogkSPv//JM/3nuP2xcv4pMqFc+OG0eR115zdVkiIiLyhFAojaXoLAczfdd0Dl45SI5UOWicv/H9d7p1HJbVhztXIcvzUGlqwpnUKDDQXtrl888hPBzy54cff4QKFVxdmYjEwJ1bt1jYqRObx48HIEfNmrwwaRL+WbO6uDIRERF5kiSQtJM4hYWFsXXrVuDRoTTMEcaAFQMA6FW1Fx73C5ohl+1AGnQG0leDytPBLQHMXGsMzJ4N7dvD6dN262jHjjBoECRL5urqRCQGTm/YwK9vvsmVgwdx9/Ki1qefUrFDByy3BDRMQERERJ4ICqWxsGfPHoKDg8mZMydp0qR56L4/7/yZA5cPkCt1LpoVb/bfHcJu2ZMa3dgPqYpCtd/BPQF0hz10CNq0gQUL7Ndly8K4cRDFmYZFJGEJvX2bZX37su6zzzAOB+mLFOGlqVPJUKyYq0sTERGRJ5RCaSxEdZKju1tJe1frjaf7Pa2fjlBY9QpcXg++2aHG3+CVKj5KjrrgYBg61H6EhECqVPbzFi3sWXZFJNE5umwZf77/PlcPH8Zyc6Nip07UGjQID40HFxERERdSKI2FiEmOHtV196cdP3HoyiHypMnDm8Xe/PebxsD6FnBmPninhZoLIPnT8VVy1KxYYYfPgwft182bw7BhkD69S8sSkZi5ee4ci7p0YcdPPwGQvkgRnvv+ezKXK+fiykREREQUSmNlw4YNwMNbSkPDQxm4YiBgt5L+Zyzptm5wdDK4J4fq8yFl/nir95ECA6FbN/j6a/t1oULwzTdQtarrahKRGHOEhbFh7FgC+vQh5MYN3L29qdqzJ1W6dsVdawmLiIhIAqFQGgVXrlzBGPOvbStWrGDTpk34+flRtmzZBx47cs1Ijlw9Qr60+Xij6Bv/fnPfF7B3OFgeUHU2pHNRq4UxMGeOPZHRyZPg4QE9etgPb2/X1CQisXJi9Wrmf/QR53fsACDvs8/yzJdfkjpXLhdXJiIiIvJvmmbxEdasWUPBggX57bffIrcZY+jatSsAnTt3JmXKlPc99uDlg/Rf3h+AMc+M+Xcr6em5sKWD/bzCD/B0g3ip/5EOHoRnnoGXX7YDaenSsHmzvfSLAqlIonPrwgV+f+cdJlapwvkdO/DPnp3Xfv+d1//8U4FUREREEiSF0kc4duwYFy5cYMyYMSxduhSA3377jXXr1pE+fXo6dux43+OMMXww9wNCwkN4q9hb1M1d9583r+6A1a8DBor2h5xvPYav5B63b0Pv3lCkiD2zbqpUMHYsrF8PmoVTJNFxhIez8euvGZM/P9t+/BF3Ly+q9upF6z17yP/cc1iW5eoSRURERO5L3Xcf4Y033mDnzp0MHTqUpk2bsnbtWnr06AFAnz59SJEixX2Pm7htIsuOLSNd8nR8Vv+zf94IOgfLG0PYTcj+OhTp/Ti+jH8YA3/8AR9/DMeP29veeceeWVcTGYkkSqfWrWN+69ac3bIFgNz16/PMV1+RNm9eF1cmIiIi8mgKpVEwaNAgli9fztq1aylbtiw3btwgd+7cvP/++/fd//zN83Re2BmAz+t/Trrk6ew3woJgxQtw+wSkq2h3232crReHD0O7djB/vv26eHF7UqNKlR5fDSISZ25fusTi7t3Z+t13AKTMkoX6n39OwZdeUsuoiIiIJBrqvhsF7u7u9OzZk4IFC3Ljxg0ABg8ejNcDZq8csHwAV4OvUj93/X8mNzIG1r3zz1qkVeeA+2NaGzAoCPr1g8KF7UCaMiV8+SVs2qRAKpIIGYeDzRMmMCZ/frZ+9x1unp5U7taN1vv2UejllxVIRUREJFFRS2kU+fr68scff1CtWjXy589P06ZN77vf8WvH+XbLt1hYjKo36p8Phzv7w4kZ4JECqs+FZBkeT+Fz59qto0eP2q+bNYPhwyHDY7q+iMSpM5s2Me+jjzizcSMAOWvVouHYsaQrUMDFlYmIiIjEjEJpNOTJk4fjx4/j4eHxwJaIQSsGEeoI5fUir1M4fWF747FpsKs/WG5QeTqkKhL/xR49ao8b/fNP+3XRovZERlpzVCRRCrpyhSU9e7J5/HgwhhRPP029zz6j8CuvqGVUREREEjWF0mjy9PR84HuHrxxm4raJuFlu9K3e1954bRese9d+Xmo0ZG4YvwUaAxMmQMeO9gy7KVLAwIHQurW9/qiIJCrG4WDbjz+yuGtXbl+6hJuHB+Xbt6d6nz54P2CiNREREZHERCklDg1cMZBwE87bxd8mf7r84AiFtW+DIwRyvQv52sZvAefPQ4sWdpddgNdeg88+g0yZ4ve6IhIvzmzaxF/t2nFq7VoAslevTsOxY0lfuLCLKxMRERGJOwqlcWT/pf1M2TEFd8udPtX72Bt3D4WrW+yJjUp/Hr8z7a5YAU2awMWL9pqj33wDr74af9cTkXhz7fhxlvbsyc6pUwHwzZCBeqNGUfSNN9RVV0RERJIchdI4EOYI46P5H+EwDlqUbEGu1Lng6jbYNcDeofwP4BmP3ewmToQPPoDQUKhZEyZPhixZ4u96IhIvgq9dY+WQIaz/4gvCQ0Jw9/KiXLt2VOvVCx9/f1eXJyIiIhIvFErjQMcFHVl6dCnpfdPTr0Y/CL8Da5uDCYO8rSFjrfi5cHg4dO8OI0bYr9u3h5Ejwd09fq4nIvEi/M4dNo4bx4qBAwm6fBmAIq+9Rq1PPyV1zpwurk5EREQkfimUxtL4TeP5asNXeLl7MefVOWROmRm29YBr28EvF5QYGj8XvnkT/vc/+OMPewKjsWOhZcv4uZaIxAtjDLt/+YWlPXpw9cgRALJXq0bdESPIXK6ci6sTEREReTwUSh/hevB1Tlw/wf7A/Xie8CQkPISQsBBCwkM4E3iGj//+GIAJjSZQKWslOL8M9gy1l3+pMAk8/eK+qJMnoXFj2L7dHj86ezbUiqfWWBGJF8dXrmRR586c3rABgHQFClBn+HDyNWqkcaMiIiLyRFEofYS5B+by5pw37Rdb7r9Pl0pdeLvE2xByGda8BRgo3BvSV4n7gjZsgOefh3PnIG9ee6bdfPni/joiEi8u7dvH4q5d2f/HH4A9iVHNAQMo+e67uGnZJhEREXkC6RPQI6RNnpbCTxXmTtAd0qVKh7eHN97u3pH/LZWpFF0qdbHXB13fAoJOQ7pKUKR33BczfTq88w4EB9stozNnQpo0cX8dEYlzN8+dI6B/f7Z8+y0mPBxPX18qdelCpU6d8PKLhx4VIiIiIomEQukjNMjTgAZ5GhAQEECNGjUevOOhCXDqN/BMCZWmglscfmuNgQEDoF8/+3XLljBmDHh6xt01RCRe3Ll5kzWjRrFmxAhCb93Ccnen9AcfUKNfP/wyZnR1eSIiIiIup1AaFwIPweYO9vOy34Bfjrg7d2goNG8O06aBmxuMGgUffxy/a56KSKyFh4ay9fvvCejXj1vnzwOQ/7nnqD10KE8VLOji6kREREQSDoXS2HKEw7rmEH4bsr8GOV6Pu3OHhcFbb8GMGeDnZ3ffffbZuDu/iMQ5Ywz7f/+dxd26cXn/fgCyVKhA3REjyFYlHsaZi4iIiCRyCqWxtW8UXFwNyTJBmbFxd97wcLuFdMYMSJECFi2C8uXj7vwiEufObd/OX23bcmLlSgDS5MlD7aFDKfjSS5pRV0REROQBFEpj49pO2OGc0Kj89+AdR5MOhYdDixYwdSr4+sJffymQiiRgwdeusaxvXzaOGYNxOEj+1FNU79uX0i1b4q6x3yIiIiIPpVAaU7dPw6qm4LgDeT6Ap5+Jm/Neuwavvw5//w3Jk8P8+VC5ctycW0TilHE42D5lCos/+YRbFy5gublR/uOPqdG/Pz7+/q4uT0RERCRRUCiNicBDsLQu3DoGqYpCyZFxc979++G55+DAAUiXDn79FapWjZtzi0icOrd9O/Nbt+bk6tUAZKtShWfGjCFj8eIurkxEREQkcVEoja5rO2FpPQg+B2nLQY2/wDMO1hhctAiaNIEbN6BYMfj9d8iRI/bnFZE4FXztGsv69GHj2LEYhwPfDBmoO2IExd58U+NGRURERGJAoTSK3BzBsHuI/QgLhAy1oNpv4Jki9iefMgXefdeebfell2DSJHu2XRFJMNRVV0RERCR+KJQ+iiMcjk6m/IVP4Nwle1u2V6DiJHD3id25jYGhQ6FHD/t1584wbJi9HqmIJBjntm2zu+quWQPYXXUbjh1LhmLFXFyZiIiISOKnUPoouz+FnX3wBkhdCkqOgIy1Yn/ec+egY0f4+WewLBg9Gj7+OPbnFZE4E3ztGkt792bT11+rq66IiIhIPFEofZQ8LeHEL+yxnqNQg4FgxbIVMywMvv4aeve2x4/6+MDkydC0adzUKyKxZhwOtk2axOKuXbl98SKWu7u66oqIiIjEE4XSR0mWARru4MLy5RSKTSA1BhYsgE8+gZ077W3PPgtffgm5csVNrSISa2e3bmV+69acWrsWUFddERERkfimUBoVse2mt20bdOkCixfbr3PksMNo48axrUxE4kjgmTMs7dWLbT/+CMbgmyED9UaOpOj//qeuuiIiIiLxSKE0Pp06Bb162d1zjYFUqaBnT2jTxu62KyIud+fmTVaPGMHakSMJvX0bNw8PyrZpQ41+/dRVV0REROQxUCiND9ev27Pojh4NwcHg6WkH0Z49IW1aV1cnIoAjPJxtEyeyrHdvbp47B0DBl16i9tChpM2b18XViYiIiDw5FErjUmgojB8P/fvDJefyMa+8Ap9+Crlzu7Y2EYl0dOlS/m7fngvO8d2Zy5Wj3qhRZKtSxcWViYiIiDx5FErjQlAQzJhhh8+DB+1tVarAyJFQvrxraxORSNdPnmRhp07smTkTAP/s2akzdCiFX3kFS+sDi4iIiLiEQmlsHDtmL+/y/fdw5Yq9LV8+u+vu88/HfoIkEYkT4aGhrBs9muX9+xN6+zYeyZJRrVcvKnbsiIfGd4uIiIi4lEJpTGzaBCNGwKxZ4HDY20qXtseN/u9/9hhSEUkQTq5dy9wPPojsqluoSRPqjRqFf7ZsLq5MREREREChNOocDpg71+6Su3y5vc3DA954A9q2hXLlXFufiPxL8LVrLOnRg03ffAPGkDpXLhp+/TV56td3dWkiIiIicheF0kcJDoaffqLswIFw4oS9LWVK+OADaNcOsmRxbX0i8i/GGPbMnMnfH3/MzXPncPPwoFKXLlTr3RvPZMlcXZ6IiIiI3EOh9FFGjYJevfAFO4C2bw/vv28HUxFJUK6fPMm8Dz/k4Pz5AGStVIlG48eTvkgRF1cmIiIiIg/yyFBqWZYPsALwdu4/yxjT17Ks2sAIwA24CTQ3xhyyLMsbmAyUBi4DrxpjjsVT/fGvRQv480/21q5NwX79NF5UJAEyxrBjyhT+ateOkOvX8fb3p+7w4ZRq0UKz6oqIiIgkcFFpKQ0BahljblqW5QmssizrL2Ac8LwxZq9lWR8BvYDmwHvAVWNMHsuyXgOGAa/GT/mPQYYMsG4d5wMCKKhAKpLg3Dx/nrkffMD+338HIP9zz/HsN9+QIlMmF1cmIiIiIlHxyFBqjDHYLaEAns6HcT4i+rD6A2ecz58H+jmfzwLGWJZlOc8jIhJnds+cybxWrQi6fBnvlClp8OWXFG/WDEvLMYmIiIgkGlZUsqJlWe7AZiAPMNYY09WyrKrAb0AQcAOoYIy5YVnWLqCBMeaU89jDQHljzKV7ztkSaAmQIUOG0tOnT4+7ryoe3Lx5Ez8/P1eXIU8w3YP/CL1+nYNffsnFpUsBSFW6NPk/+QSf9OldXFnSp/tQEgLdh+JqugclIUhs92HNmjU3G2PK3O+9KE10ZIwJB0pYlpUKmGNZVhGgA9DQGLPesqwuwGdAi6gWZYyZAEwAKFOmjKlRo0ZUD3WJgIAAEnqNkrTpHrTHju6cNo0FHTpw++JFPJMnp+7IkZT58EO1jj4mug8lIdB9KK6me1ASgqR0H0Zr9l1jzDXLspYBzwDFjTHrnW/NAP52Pj8NZAVOWZblgd2193Ic1SsiT6grhw8zr1UrjixaBED2atV47ocfSJM7t4srExEREZHYeOS0lJZlPeVsIcWyrGRAXWAv4G9ZVj7nbhHbAP4A3nY+bwIs1XhSEYmp8NBQVg4ZwrgiRTiyaBE+qVPz3Pff83ZAgAKpiIiISBIQlZbSTMAk57hSN+AXY8xcy7LeB2ZbluUArgLvOvf/HphiWdYh4ArwWjzULSJPgJNr1zK3ZUsu7NoFQLE336TeqFH4auyoiIiISJIRldl3dwAl77N9DjDnPtuDgaZxUp2IPJGCr11jcffubB4/Howhde7cPDtuHLnr1nV1aSIiIiISx6I1plREJD4ZY9gzaxZ/t2vHzXPncPPwoNInn1CtVy88kyVzdXkiIiIiEg8USkUkQTi3fTsLO3bkqHOZl6yVKtFowgTSFy7s4spEREREJD4plIqIS908d46lvXqx9YcfwBh8Uqem9pAhlH7/fSy3R87FJiIiIiKJnEKpiLhEaFAQ60aPZtWQIdy5eRM3Dw/KtmlD9d69SZYmjavLExEREZHHRKFURB4rYwy7pk9nSbduXD9xAoD8zz1H3REjSJsv3yOOFhEREZGkRqFURB6bk2vXsrBjR06tWwdAhmLFqD96NDlr1XJxZSIiIiLiKgqlIhLvrh0/zpJu3dg1fToAvhkyUGvwYEo0b46bu7uLqxMRERERV1IoFZF4ExIYyKohQ1j72WeEh4Tg7u1NxU6dqNKtG94pUri6PBERERFJABRKRSTOOcLD2TZxIkt79eLW+fMAFHn9dWoPGUKq7NldXJ2IiIiIJCQKpSISp44uXcqCjh05v307AFkqVKD+6NFkqVDBxZWJiIiISEKkUCoiceLygQMs7NyZA3/+CYB/tmzUGTaMwq++imVZLq5ORERERBIqhVIRiZWgK1dYPmAAG8eOxREWhpefH1V69KBC+/Z4Jkvm6vJEREREJIFTKBWRGAkPDWXj11+zvH9/gq9eBcuiZIsW1Bo4EL+MGV1dnoiIiIgkEgqlIhItxhgO/Pkni7p04fKBAwDkrFWLep99RsbixV1cnYiIiIgkNgqlIhJl57ZvZ2HHjhxduhSAtPnyUXfkSPI1aqRxoyIiIiISIwqlIvJI144fZ8XAgWz94QcwBp/Uqanety9lW7XC3cvL1eWJiIiISCKmUCoiD3Tl8GFWDRnC9kmTcISF4ebhQdnWranepw/J0qRxdXkiIiIikgQolIrIf1zav5+Vgwezc9o0THg4lpsbRd94g2p9+pAuf35XlyciIiIiSYhCqYhEOrtlC2tGjGDXjBlgDJa7OyWaN6dKjx6kzZvX1eWJiIiISBKkUCryhAu5cYOdP//Mlm+/5ezmzQC4eXpS4p13qNKtG6lz5nRxhSIiIiKSlCmUijyBjDGc3rCBzRMmsHvGDEJv3QLAJ3Vqir/9NhU7dsQ/a1YXVykiIiIiTwKFUpEnSFhwMDunTWP9F19wfseOyO3Zq1endMuWFHzpJTx8fFxYoYiIiIg8aRRKRZ4Aty5eZNO4cWwcO5ZbFy4AkPyppyjRvDmlWrQgbb58Lq5QRERERJ5UCqUiSdil/ftZN3o02ydNIiw4GICMJUpQoWNHirz6qtYYFRERERGXUygVSWKMMZxYuZK1o0ax/48/Irfna9SIip06kb16dSzLcmGFIiIiIiL/UCgVSSKMw8HeX39l9fDhnNm4EQB3b2+KN2tGxY4dSVeggIsrFBERERH5L4VSkUTOOBzsmT2b5f37c3H3bgCSpU1L2datKde6Nb7p07u4QhERERGRB1MoFUmkjMPBnlmzWD5gQGQYTZk1K1W6daNE8+Z4Jk/u4gpFRERERB5NoVQkkXGEh7Nn1ixWDBz4rzBatWdPSjRvjoe3t4srFBERERGJOoVSkUTChIeza8YMVgwYwMU9ewDwz5YtMoxqJl0RERERSYwUSkUSOEd4OHtmzmRTt27cPn4cAP/s2e0w+vbbCqMiIiIikqgplIokUBFhdPmAAVzauxdQGBURERGRpEehVCSBcYSHs/uXX1gxYACX9u0D7DCaoWlTXhk8WGFURERERJIUhVKRBMIRHs7uGTNYMXBgZBhNlSMHVXv2pHizZqxcs0aBVERERESSHIVSEReLCKPLBwzg8v79gDOM9upF8WbNcPf0dHGFIiIiIiLxR6FUxEUc4eHsmj6dFQMH/hNGc+aMbBlVGBURERGRJ4FCqchj5ggLs8PooEH/CqPVevWi2FtvKYyKiIiIyBNFoVTkMYkMowMHcvnAAQBS58pF1V69KPbmmwqjIiIiIvJEUigViWeOsDB2/vwzKwYO5MrBg4DCqIiIiIhIBIVSkXjyoDBarXdviv7vfwqjIiIiIiIolIrEOUdYGDunTbPD6KFDAKTOnZtqvXopjIqIiIiI3EOhVCSOOMLC2DF1KisHDfp3GO3dm2L/+x9uHvrfTURERETkXvqULBJLEWF0xcCBXD18GIA0efLY3XTfeENhVERERETkIfRpWSSGIrrpLh8wQGFURERERCSG9KlZJJqMw8GuGTNY3r9/5DqjafLmtcPo668rjIqIiIiIRIM+PYtEkXE42DtnDgF9+3Jx927AOZtunz4aMyoiIiIiEkP6FC3yCMYYDsydS0CfPpzbtg0A/2zZqNa7N8Xffluz6YqIiIiIxIJCqcgDGGM4vHAhAX36cHrDBgD8MmWiWq9elHzvPTy8vV1coYiIiIhI4qdQKnIfxwICWNa7NydWrQLAN316qnTvTukPPsAzWTIXVyciIiIiknQolIrc5eSaNSzr3ZujS5cCkCxtWip/8gllW7fGy9fXxdWJiIiIiCQ9CqUiwOmNGwno04dDf/8NgLe/P5U6d6Z8u3Z4p0zp4upERERERJIuhVJ5op3bto1lffpw4M8/AfDy86N8+/ZU7NiRZKlTu7g6EREREZGkT6FUnkgXdu9meb9+7Jk1CwDP5Mkp17YtlTp3Jnm6dC6uTkRERETkyaFQKk+Uq0eOsKxPH3ZOmwbG4O7tTdmPPqJy1674Zcjg6vJERERERJ44CqXyRLh57hwrBg1i8/jxOMLCcPP0pHTLllTt0YMUTz/t6vJERERERJ5YCqWSpAVfv86aESNYN3o0obdvY7m5UaJ5c6r360eq7NldXZ6IiIiIyBNPoVSSpNCgIDaOHcuqIUMIunIFgAIvvEDNQYNIX7iwi6sTEREREZEICqWSpDjCwtj2448E9OtH4OnTAGSvVo3aQ4eStWJFF1cnIiIiIiL3UiiVJMEYw95ff2Vpz55c3r8fgIwlSlB7yBBy16+PZVkurlBERERERO5HoVQSvSNLlrCkWzfObNoEQOrcuak1aBCFX3kFy83NxdWJiIiIiMjDKJRKonVm0yaWdO/OkcWLAfDLmJHqfftS8r33cPf0dHF1IiIiIiISFQqlkuhc2r+fZb16sWfWLAC8/f2p0q0b5dq2xcvX18XViYiIiIhIdCiUSqJxaf9+Vg4axM5p0zAOBx4+PpT/+GMqf/IJydKkcXV5IiIiIiISAwqlkuBdO3aMZb17R4ZRNw8PSrZoQfU+fUiZObOryxMRERERkVhQKJUEK+TGDVZ++inrPv+c8JCQyDBatXt3UuXI4eryREREREQkDiiUSoLjCA9n6/ffs6x3b25duABAsTffpObAgQqjIiIiIiJJjEKpJCiHFy1iYadOXNi5E4CslStT/7PPyFyunIsrExERERGR+PDIRRwty/KxLGuDZVnbLcvabVlWf+d2y7KswZZlHbAsa69lWe3u2v6lZVmHLMvaYVlWqfj+IiTxu7RvH9MaNeKnevW4sHMnqXLkoMmMGbyzcqUCqYiIiIhIEhaVltIQoJYx5qZlWZ7AKsuy/gIKAlmBAsYYh2VZ6Z37PwPkdT7KA+Oc/xX5j9uXL7O8f382jRuHIywMrxQpqNqzJxU+/hgPHx9XlyciIiIiIvHskaHUGGOAm86Xns6HAVoBbxhjHM79Ljj3eR6Y7DxunWVZqSzLymSMORvn1UuiFX7nDhvGjmXFgAEEX7uG5eZGqZYtqTlgAH4ZMri6PBEREREReUwsOzs+YifLcgc2A3mAscaYrpZlXQY+A14ELgLtjDEHLcuaCww1xqxyHrsE6GqM2XTPOVsCLQEyZMhQevr06XH4ZcW9mzdv4ufn5+oyEj1jDJdXr+bI+PEEnToFQKrSpcn90Uf45crl4uoSNt2DkhDoPpSEQPehuJruQUkIEtt9WLNmzc3GmDL3ey9KEx0ZY8KBEpZlpQLmWJZVBPAGgo0xZSzLegn4Aaga1aKMMROACQBlypQxNWrUiOqhLhEQEEBCrzGhO7dtGws6duTYsmUApM2fn3qjRpG3YUMsy3JxdQmf7kFJCHQfSkKg+1BcTfegJARJ6T6M1uy7xphrlmUtAxoAp4BfnW/NASY6n5/GHmsaIYtzmzyhAs+eZVnv3mz94QcwhmRp0lC9Xz/KfPgh7p6eri5PRERERERc6JGh1LKsp4BQZyBNBtQFhgG/ATWBo0B14IDzkD+ANpZlTcee4Oi6xpM+mUKDglj72WesGjKE0Fu3cPPwoFzbtlTr3ZtkqVO7ujwREREREUkAotJSmgmY5BxX6gb8YoyZa1nWKmCqZVkdsCdCauHcfz7QEDgE3AbeifuyJSEzxrBn5kwWdenC9RMnAMj//PPUHTGCtHnzurg6ERERERFJSKIy++4OoOR9tl8Dnr3PdgO0joviJPG5uGcPf7Vty9GlSwHIULw49UePJmfNmi6uTEREREREEqJojSkVeZCQwECWDxjA+s8/xxEWRrK0aak9ZAgl330XN3d3V5cnIiIiIiIJlEKpxIoxht0zZrCwUycCz5wBy6L0hx9Sa9AgkqdN6+ryREREREQkgVMolRi7uGcP89u0iVziJXO5cjQcO5any9x3+SEREREREZH/UCiVaLtfV906Q4dS8t13sdzcXF2eiIiIiIgkIgqlEmUP6qpbe/BgkqVJ4+ryREREREQkEVIolShRV10REREREYkPCqXyUPftqjtsGCXfeUdddUVEREREJNYUSuW+1FVXREREREQeB4VS+Y8Lu3fzV9u26qorIiIiIiLxTqFUIoUEBrK8f3/Wf/GFuuqKiIiIiMhjoVAqGGPYNX06izp3juyqW6ZVK2oNGqSuuiIiIiIiEq8USp9wF3bv5q82bTgWEABA5vLl7a66pUu7tjAREREREXkiKJQ+oe7tqps8XTpqDx2qrroiIiIiIvJYKZQ+YSK66i7s1ImbZ8+qq66IiIiIiLiUQukT5MLu3cxv3Zrjy5cD6qorIiIiIiKup1D6BAi5cYMAZ1ddEx6urroiIiIiIpJgKJQmYcYYdv38Mws7d1ZXXRERERERSZAUSpModdUVEREREZHEQKE0iQkLDmbFoEGsHjYsclbdOsOGUaJ5c3XVFRERERGRBEehNAk5tnw5c1u25PKBAwCU/vBDag8erK66IiIiIiKSYCmUJgHB166xqGtXtkyYAEC6ggVp/O23ZKtc2cWViYiIiIiIPJxCaSK3d84c5rduzc2zZ3Hz9KRqjx5U6d4dD29vV5cmIiIiIiLySAqlidTNc+eY36YNe2fPBiBLxYo0/vZb0hcu7OLKREREREREok6hNJExxrB98mQWdOhA8NWrePn5UXvIEMp+9JEmMhIRERERkURHoTQRuX7iBHM/+IBDf/8NQO769Wk0fjypsmd3cWUiIiIiIiIxo1CaCBiHg03ffMPirl25c/MmPqlTU3/0aIo3a4ZlWa4uT0REREREJMYUShO4ywcP8meLFhxfsQKAgi+9RMOxY/HLmNHFlYmIiIiIiMSeQmkC5QgLY+3o0QT06UNYcDC+6dPTcOxYCjVp4urSRERERERE4oxCaQJ0fudO/nj3Xc5s2gRA8WbNqPfZZyRPm9bFlYmIiIiIiMQthdIEJPzOHVZ++ikrP/0UR2goKbNkodGECeR95hlXlyYiIiIiIhIvFEoTiBOrVzPvww+5sGsXAGVataLO0KF4p0zp4spERERERETij0KpiwWePcvirl3ZMWUKAGny5KHxd9+Ro3p1F1cmIiIiIiIS/xRKXSQ8NJT1X37J8v79uRMYiLu3N5W6dKFq9+54Jk/u6vJEREREREQeC4VSFzi8aBF/t2vHpX37AMj/3HPUHz2a1LlyubgyERERERGRx0uh9DG6dvw4Czt1Yu/s2QCkyZuXBl98oYmMRERERETkiaVQ+hiEBgWxZsQIVg0dSlhQEJ6+vlTr1YsKHTrg4e3t6vJERERERERcRqE0Hhlj2DNzJou7dePa0aMAFHntNeqOGEHKLFlcXJ2IiIiIiIjrKZTGk5Nr17KwY0dOrVsHQPoiRXjmq6/IUaOGawsTERERERFJQBRK49jVI0dY3K0be2bOBMA3fXpqDBhAqffew81D324REREREZG7KSXFkaCrV1k5eDAbvvqK8Dt38PDxoWKnTlTu2hXvFClcXZ6IiIiIiEiCpFAaS+F37rBx3DhWDBhA0JUrABR76y1qDR6Mf9asLq5OREREREQkYVMojSFjDPt++43Fn3zClUOHAMhRowb1Ro0iU6lSLq5OREREREQkcVAojYHTGzeysFMnTqxcCUDafPmoO2IE+Ro3xrIsF1cnIiIiIiKSeCiURsO148dZ2qMHO6dNAyBZ2rTU6NeP0h98gLunp4urExERERERSXwUSqMg+Pp1jkyYwKpffyU8JAR3Ly/Kt29P1R498PH3d3V5IiIiIiIiiZZC6SPsmT2beR9+yO1LlwAo8tpr1B4yhFQ5cri2MBERERERkSRAofQRfFKl4valS6QsUoSm331HlvLlXV2SiIiIiIhIkqFQ+gi5atem+fLlHAkPVyAVERERERGJY26uLiAxyF6tmmbVFRERERERiQcKpSIiIiIiIuIyCqUiIiIiIiLiMgqlIiIiIiIi4jIKpSIiIiIiIuIyCqUiIiIiIiLiMgqlIiIiIiIi4jIKpSIiIiIiIuIyCqUiIiIiIiLiMgqlIiIiIiIi4jIKpSIiIiIiIuIyCqUiIiIiIiLiMgqlIiIiIiIi4jIKpSIiIiIiIuIyCqUiIiIiIiLiMgqlIiIiIiIi4jIKpSIiIiIiIuIyCqUiIiIiIiLiMgqlIiIiIiIi4jKPDKWWZflYlrXBsqztlmXttiyr/z3vf2lZ1s27XntbljXDsqxDlmWttywrRzzULSIiIiIiIklAVFpKQ4BaxpjiQAmggWVZFQAsyyoDpL5n//eAq8aYPMBoYFjclSsiIiIiIiJJySNDqbFFtIR6Oh/Gsix3YATwyT2HPA9Mcj6fBdS2LMuKo3pFREREREQkCbGMMY/eyQ6gm4E8wFhjTFfLsj4G3Iwxoy3LummM8XPuuwtoYIw55Xx9GChvjLl0zzlbAi0BMmTIUHr69Olx+XXFuZs3b+Ln5+fqMuQJpntQEgLdh5IQ6D4UV9M9KAlBYrsPa9asudkYU+Z+70UplEbubFmpgDlAX+BToIYxJiwmofSe814Ejke5ENdIBzzwaxB5DHQPSkKg+1ASAt2H4mq6ByUhSGz3YXZjzFP3e8MjOmcxxlyzLGsZUBO71fSQs2ducsuyDjnHkZ4GsgKnLMvyAPyBy484732LS0gsy9r0oGQv8jjoHpSEQPehJAS6D8XVdA9KQpCU7sOozL77lLOFFMuykgF1gc3GmIzGmBzGmBzAbWcgBfgDeNv5vAmw1ESnOVZERERERESeGFFpKc0ETHKOK3UDfjHGzH3I/t8DUyzLOgRcAV6LfZkiIiIiIiKSFD0ylBpjdgAlH7GP313Pg4GmsS8twZng6gLkiad7UBIC3YeSEOg+FFfTPSgJQZK5D6M10ZGIiIiIiIhIXHrkmFIRERERERGR+KJQKiIiIiIiIi6TKEOpZVlZLctaZlnWHsuydluW9bFzexrLshZZlnXQ+d/Uzu3/syxrh2VZOy3LWmNZVvG7zvWDZVkXnOurPuyaDSzL2m9Z1iHLsrrdtf17y7K2O88/y7Ks/6xga1lWcsuy5lmWtc9Z79C73stuWdYS5/EBlmVliYvvkcS/BHYfWpZlDbYs64BlWXsty2r3gONzWpa13nn8DMuyvJzbdR8mUgnsPqxtWdYWy7K2WZa1yrKsPA84frBlWScty7p5z3bdh4mQi+7B++73oGve5/ipznt4l/Ncns7tqS3LmuOsb4NlWUVi+/2RxyOu7sMHnecB13zQz8I2zm3Gsqx0Dzn+vvtZllXAsqy1lmWFWJbVOS6+P/J4JLD7MFYZ5a59Xnbeo/G79IwxJtE9sGcELuV8ngI4ABQChgPdnNu7AcOczysBqZ3PnwHW33WuakApYNdDrucOHAZyAV7AdqCQ872Ud+33WcT17zk+OVDT+dwLWAk843w9E3jb+bwWMMXV3189EuV9+A4wGXBzvk7/gHP8ArzmfP4N0MroPkzUjwR2Hx4ACjqffwT8+IBzVHDWffOe7boPE+Hjcd+DD9vvQde8z/ENAcv5+Pmun4UjgL7O5wWAJa7+/urxeO/DB53nPtd72M/CkkAO4BiQ7iE133c/ID1QFhgMdHb191aPRHsfxiqj3HXtFcA6oEx8fu8SZUupMeasMWaL83kgsBfIDDwPTHLuNgl4wbnPGmPMVef2dUCWu861AnvpmocpBxwyxhwxxtwBpjuvhTHmBtgtVUAy4D8zRxljbhtjljmf3wG23FVDIWCp8/myiPNKwpeQ7kOgFTDAGONwnu/CvQc779FawKx7a0P3YaKVwO5DA6R0PvcHzjyg5nXGmLP3eUv3YSLkgnvwYfvd95r3OX6+cQI2cJ/fycaYfUAOy7IyPKoecb24ug8fcp57Peyz4VZjzLEo1Hzf/YwxF4wxG4HQR3/lkpAksPswthkFYCAwDAiO7vciuhJlKL2bZVk5sP/StB7IcNcHnXPA/X6RvAf8Fc3LZAZO3vX6FHfdGJZlTXRerwDw1SPqTQU0BpY4N20HXnI+fxFIYVlW2mjWJy6WAO7D3MCrlmVtsizrL8uy8t7n+LTANWNM2H2O132YBCSA+7AFMN+yrFPAW8B/ugE9gu7DRO4x3YMPE5VrRnJ2230L+Nu5KfIetCyrHJCdf39Ak0Qgru7De85zr4d+NhRJCPdhbDKKZVmlgKzGmHkPOy6uJOpQ6uwbPRtoH/HXgAjOv36ae/avif0P3jUu6zDGvAM8jf1XjFcfUq8HdjehL40xR5ybOwPVLcvaClQHTgPhcVmfxK8Ech96A8HGmDLAt8AP0Txe92Eil0Duww5AQ2NMFmAidneh6NB9mIglkHvwode8j6+BFcaYlc7XQ4FUlmVtA9oCW9E9mKjE1X34sPOIPEpCuQ9jmlEsy3LD/h3eKbrXjKlEG0qdf92cDUw1xvzq3HzesqxMzvczARfu2r8Y8B3wvDHm8iPOndWyJ+rYZlnWh9gfjLLetUsW57ZIxphw7Cbzly3Lcr/r+AF37TYBOGiM+fyu484YY14yxpQEejq3XYvyN0JcKgHdh6eAiOvPAYo5z7HAefx3wGXsD1se9x6v+zBxSwj3oWVZTwHFjTERf8mdAVR6yM/D/9B9mHg95nvwYe57zXt+Fkacty/wFNAxYpsx5oYx5h1jTAmgmfP9I0iiEFf34f3OE5PPhvep7z/3oSQ9Ce0+jGFGSQEUAQIsyzqGPRfEH/E52ZHHo3dJeJx9o78H9hpj7v5L/B/A29h/6Xwb+N25fzbsD+xvGWMOPOr8xpiTQIm7rucB5LUsKyf2P/RrwBvOOnIbYw45nz8H7HP+45e4+5yWZQ3CHmPV4p7t6YArxh4L2J3ot3CJiySU+9D59m9ATeAodgvTAec56t9T8zKgCfYPp7tr032YSCWg+/Aq4G9ZVj7nees6a/rPz8OHfC26DxOhx30PPsJ9r3mfn4UtgPpAbef9FrE9FXDbObaqBXYrqlrJEoG4ug8fdJ5o/k6+r3vvQ0l6Esp9GNuMYoy5Dtw9I3QA9qRbm2L0jYkKkwBmqoruA6iC3ey9A9jmfDTEHjO3BDgILAbSOPf/DvsDU8S+m+4618/AWezB5KeA9x5wzYbYH/QPAz2d29yA1cBOYBcwlbtmurrr2CzOevfeVUML53tNnPUecNbp7ervrx6J6z50bk8FzHPei2uxW6zud3wu7Ek9DmHPdOqt+zBxPxLYffii8x7cDgQAuR5w/HDn+R3O//bTfZh4Hy66B++734OueZ/jw5z3b0QNfZzbKzrvv/3YHxRTu/r7q8fjvQ8fdJ4HXPNBPwvbOe/LMOwJ3757wPH33Q/I6Nx+A7jmfP6fz5d6JLxHQrkPiYOMcs9+AcTz7LuW80IiIiIiIiIij12iHVMqIiIiIiIiiZ9CqYiIiIiIiLiMQqmIiIiIiIi4jEKpiIiIiIiIuIxCqYiIiIiIiLiMQqmIiEgcsSwr3Lko+W7LsrZbltXJsqyH/q61LCuHZVkPXd9QREQkKVMoFRERiTtBxpgSxpjCQF3gGaDvI47JASiUiojIE0vrlIqIiMQRy7JuGmP87nqdC9gIpAOyA1MAX+fbbYwxayzLWgcUBI4Ck4AvgaFADcAbGGuMGf/YvggREZHHTKFUREQkjtwbSp3brgH5gUDAYYwJtiwrL/CzMaaMZVk1gM7GmEbO/VsC6Y0xgyzL8gZWA02NMUcf45ciIiLy2Hi4ugAREZEnhCcwxrKsEkA4kO8B+9UDilmW1cT52h/Ii92SKiIikuQolIqIiMQTZ/fdcOAC9tjS80Bx7Dkdgh90GNDWGLPgsRQpIiLiYproSEREJB5YlvUU8A0wxthjZfyBs8YYB/AW4O7cNRBIcdehC4BWlmV5Os+Tz7IsX0RERJIotZSKiIjEnWSWZW3D7qobhj2x0WfO974GZluW1Qz4G7jl3L4DCLcsazvwI/AF9oy8WyzLsoCLwAuPp3wREZHHTxMdiYiIiIiIiMuo+66IiIiIiIi4jEKpiIiIiIiIuIxCqYiIiIiIiLiMQqmIiIiIiIi4jEKpiIiIiIiIuIxCqYiIiIiIiLiMQqmIiIiIiIi4zP8BZVpb36EO80kAAAAASUVORK5CYII=\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 Studies and run them"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Running Simple Study A"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Study(name='A', ta=[{'kind': 'sma', 'length': 50}, {'kind': 'sma', 'length': 200}], cores=0, description='', created='Friday March 25, 2022, NYSE: 4:36:00, Local: 8:36:00 PDT, Day 84/365 (23.00%)')"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Load custom_a into Watchlist and verify\n",
"watch.study = custom_a\n",
"watch.study"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Loaded IWM[D]: IWM_D.csv\n",
"[i] Analysis Time: 2.0662 ms (0.0021 s) for 2 columns (avg 1.0370 ms / col)\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>Dividends</th>\n",
" <th>Stock Splits</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",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2000-05-26</th>\n",
" <td>34.265232</td>\n",
" <td>34.406338</td>\n",
" <td>34.100608</td>\n",
" <td>34.406338</td>\n",
" <td>74800</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-05-30</th>\n",
" <td>34.900195</td>\n",
" <td>35.676277</td>\n",
" <td>34.900195</td>\n",
" <td>35.676277</td>\n",
" <td>57600</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-05-31</th>\n",
" <td>35.793886</td>\n",
" <td>36.264239</td>\n",
" <td>35.793886</td>\n",
" <td>35.805645</td>\n",
" <td>36000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-06-01</th>\n",
" <td>36.540549</td>\n",
" <td>36.616982</td>\n",
" <td>36.540549</td>\n",
" <td>36.616982</td>\n",
" <td>7000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-06-02</th>\n",
" <td>38.274980</td>\n",
" <td>38.521915</td>\n",
" <td>38.274980</td>\n",
" <td>38.521915</td>\n",
" <td>29400</td>\n",
" <td>0.0</td>\n",
" <td>0.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",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-21</th>\n",
" <td>206.793514</td>\n",
" <td>207.771587</td>\n",
" <td>203.539915</td>\n",
" <td>205.036972</td>\n",
" <td>26747500</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>201.746244</td>\n",
" <td>217.737591</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-22</th>\n",
" <td>205.905258</td>\n",
" <td>208.380389</td>\n",
" <td>205.396264</td>\n",
" <td>207.092926</td>\n",
" <td>24699900</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>201.575179</td>\n",
" <td>217.631726</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-23</th>\n",
" <td>205.745571</td>\n",
" <td>206.793514</td>\n",
" <td>203.350285</td>\n",
" <td>203.499985</td>\n",
" <td>19775000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>201.347227</td>\n",
" <td>217.495812</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-24</th>\n",
" <td>204.380005</td>\n",
" <td>205.899994</td>\n",
" <td>202.729996</td>\n",
" <td>205.839996</td>\n",
" <td>19731700</td>\n",
" <td>0.4</td>\n",
" <td>0.0</td>\n",
" <td>201.120365</td>\n",
" <td>217.379275</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-25</th>\n",
" <td>206.089996</td>\n",
" <td>206.619995</td>\n",
" <td>204.449997</td>\n",
" <td>205.070007</td>\n",
" <td>6913761</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>200.910439</td>\n",
" <td>217.267384</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5493 rows × 9 columns</p>\n",
"</div>"
],
"text/plain": [
" Open High Low Close Volume \\\n",
"Date \n",
"2000-05-26 34.265232 34.406338 34.100608 34.406338 74800 \n",
"2000-05-30 34.900195 35.676277 34.900195 35.676277 57600 \n",
"2000-05-31 35.793886 36.264239 35.793886 35.805645 36000 \n",
"2000-06-01 36.540549 36.616982 36.540549 36.616982 7000 \n",
"2000-06-02 38.274980 38.521915 38.274980 38.521915 29400 \n",
"... ... ... ... ... ... \n",
"2022-03-21 206.793514 207.771587 203.539915 205.036972 26747500 \n",
"2022-03-22 205.905258 208.380389 205.396264 207.092926 24699900 \n",
"2022-03-23 205.745571 206.793514 203.350285 203.499985 19775000 \n",
"2022-03-24 204.380005 205.899994 202.729996 205.839996 19731700 \n",
"2022-03-25 206.089996 206.619995 204.449997 205.070007 6913761 \n",
"\n",
" Dividends Stock Splits SMA_50 SMA_200 \n",
"Date \n",
"2000-05-26 0.0 0.0 NaN NaN \n",
"2000-05-30 0.0 0.0 NaN NaN \n",
"2000-05-31 0.0 0.0 NaN NaN \n",
"2000-06-01 0.0 0.0 NaN NaN \n",
"2000-06-02 0.0 0.0 NaN NaN \n",
"... ... ... ... ... \n",
"2022-03-21 0.0 0.0 201.746244 217.737591 \n",
"2022-03-22 0.0 0.0 201.575179 217.631726 \n",
"2022-03-23 0.0 0.0 201.347227 217.495812 \n",
"2022-03-24 0.4 0.0 201.120365 217.379275 \n",
"2022-03-25 0.0 0.0 200.910439 217.267384 \n",
"\n",
"[5493 rows x 9 columns]"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"watch.load(\"IWM\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Running Simple Study B"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Study(name='B', ta=[{'kind': 'ema', 'length': 8}, {'kind': 'ema', 'length': 21}, {'kind': 'log_return', 'cumulative': True}, {'kind': 'rsi'}, {'kind': 'supertrend'}], cores=0, description='', created='Friday March 25, 2022, NYSE: 4:36:00, Local: 8:36:00 PDT, Day 84/365 (23.00%)')"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Load custom_b into Watchlist and verify\n",
"watch.study = custom_b\n",
"watch.study"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Loaded IWM[D]: IWM_D.csv\n",
"[i] Analysis Time: 291.3743 ms (0.2914 s) for 8 columns (avg 36.4225 ms / col)\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>Dividends</th>\n",
" <th>Stock Splits</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",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2000-05-26</th>\n",
" <td>34.265232</td>\n",
" <td>34.406338</td>\n",
" <td>34.100608</td>\n",
" <td>34.406338</td>\n",
" <td>74800</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.000000</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>2000-05-30</th>\n",
" <td>34.900195</td>\n",
" <td>35.676277</td>\n",
" <td>34.900195</td>\n",
" <td>35.676277</td>\n",
" <td>57600</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.036245</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>2000-05-31</th>\n",
" <td>35.793886</td>\n",
" <td>36.264239</td>\n",
" <td>35.793886</td>\n",
" <td>35.805645</td>\n",
" <td>36000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.039865</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>2000-06-01</th>\n",
" <td>36.540549</td>\n",
" <td>36.616982</td>\n",
" <td>36.540549</td>\n",
" <td>36.616982</td>\n",
" <td>7000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.062271</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>2000-06-02</th>\n",
" <td>38.274980</td>\n",
" <td>38.521915</td>\n",
" <td>38.274980</td>\n",
" <td>38.521915</td>\n",
" <td>29400</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.112987</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",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-21</th>\n",
" <td>206.793514</td>\n",
" <td>207.771587</td>\n",
" <td>203.539915</td>\n",
" <td>205.036972</td>\n",
" <td>26747500</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>201.810704</td>\n",
" <td>200.489627</td>\n",
" <td>1.784950</td>\n",
" <td>55.186551</td>\n",
" <td>209.222114</td>\n",
" <td>-1.0</td>\n",
" <td>NaN</td>\n",
" <td>209.222114</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-22</th>\n",
" <td>205.905258</td>\n",
" <td>208.380389</td>\n",
" <td>205.396264</td>\n",
" <td>207.092926</td>\n",
" <td>24699900</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>202.984531</td>\n",
" <td>201.089927</td>\n",
" <td>1.794927</td>\n",
" <td>57.336042</td>\n",
" <td>209.222114</td>\n",
" <td>-1.0</td>\n",
" <td>NaN</td>\n",
" <td>209.222114</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-23</th>\n",
" <td>205.745571</td>\n",
" <td>206.793514</td>\n",
" <td>203.350285</td>\n",
" <td>203.499985</td>\n",
" <td>19775000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>203.099077</td>\n",
" <td>201.309023</td>\n",
" <td>1.777425</td>\n",
" <td>52.588795</td>\n",
" <td>209.222114</td>\n",
" <td>-1.0</td>\n",
" <td>NaN</td>\n",
" <td>209.222114</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-24</th>\n",
" <td>204.380005</td>\n",
" <td>205.899994</td>\n",
" <td>202.729996</td>\n",
" <td>205.839996</td>\n",
" <td>19731700</td>\n",
" <td>0.4</td>\n",
" <td>0.0</td>\n",
" <td>203.708170</td>\n",
" <td>201.720930</td>\n",
" <td>1.788858</td>\n",
" <td>55.190946</td>\n",
" <td>209.222114</td>\n",
" <td>-1.0</td>\n",
" <td>NaN</td>\n",
" <td>209.222114</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-25</th>\n",
" <td>206.089996</td>\n",
" <td>206.619995</td>\n",
" <td>204.449997</td>\n",
" <td>205.070007</td>\n",
" <td>6913761</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>204.010800</td>\n",
" <td>202.025391</td>\n",
" <td>1.785111</td>\n",
" <td>54.138003</td>\n",
" <td>209.222114</td>\n",
" <td>-1.0</td>\n",
" <td>NaN</td>\n",
" <td>209.222114</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5493 rows × 15 columns</p>\n",
"</div>"
],
"text/plain": [
" Open High Low Close Volume \\\n",
"Date \n",
"2000-05-26 34.265232 34.406338 34.100608 34.406338 74800 \n",
"2000-05-30 34.900195 35.676277 34.900195 35.676277 57600 \n",
"2000-05-31 35.793886 36.264239 35.793886 35.805645 36000 \n",
"2000-06-01 36.540549 36.616982 36.540549 36.616982 7000 \n",
"2000-06-02 38.274980 38.521915 38.274980 38.521915 29400 \n",
"... ... ... ... ... ... \n",
"2022-03-21 206.793514 207.771587 203.539915 205.036972 26747500 \n",
"2022-03-22 205.905258 208.380389 205.396264 207.092926 24699900 \n",
"2022-03-23 205.745571 206.793514 203.350285 203.499985 19775000 \n",
"2022-03-24 204.380005 205.899994 202.729996 205.839996 19731700 \n",
"2022-03-25 206.089996 206.619995 204.449997 205.070007 6913761 \n",
"\n",
" Dividends Stock Splits EMA_8 EMA_21 CUMLOGRET_1 \\\n",
"Date \n",
"2000-05-26 0.0 0.0 NaN NaN 0.000000 \n",
"2000-05-30 0.0 0.0 NaN NaN 0.036245 \n",
"2000-05-31 0.0 0.0 NaN NaN 0.039865 \n",
"2000-06-01 0.0 0.0 NaN NaN 0.062271 \n",
"2000-06-02 0.0 0.0 NaN NaN 0.112987 \n",
"... ... ... ... ... ... \n",
"2022-03-21 0.0 0.0 201.810704 200.489627 1.784950 \n",
"2022-03-22 0.0 0.0 202.984531 201.089927 1.794927 \n",
"2022-03-23 0.0 0.0 203.099077 201.309023 1.777425 \n",
"2022-03-24 0.4 0.0 203.708170 201.720930 1.788858 \n",
"2022-03-25 0.0 0.0 204.010800 202.025391 1.785111 \n",
"\n",
" RSI_14 SUPERT_7_3.0 SUPERTd_7_3.0 SUPERTl_7_3.0 \\\n",
"Date \n",
"2000-05-26 NaN NaN NaN NaN \n",
"2000-05-30 NaN NaN NaN NaN \n",
"2000-05-31 NaN NaN NaN NaN \n",
"2000-06-01 NaN NaN NaN NaN \n",
"2000-06-02 NaN NaN NaN NaN \n",
"... ... ... ... ... \n",
"2022-03-21 55.186551 209.222114 -1.0 NaN \n",
"2022-03-22 57.336042 209.222114 -1.0 NaN \n",
"2022-03-23 52.588795 209.222114 -1.0 NaN \n",
"2022-03-24 55.190946 209.222114 -1.0 NaN \n",
"2022-03-25 54.138003 209.222114 -1.0 NaN \n",
"\n",
" SUPERTs_7_3.0 \n",
"Date \n",
"2000-05-26 NaN \n",
"2000-05-30 NaN \n",
"2000-05-31 NaN \n",
"2000-06-01 NaN \n",
"2000-06-02 NaN \n",
"... ... \n",
"2022-03-21 209.222114 \n",
"2022-03-22 209.222114 \n",
"2022-03-23 209.222114 \n",
"2022-03-24 209.222114 \n",
"2022-03-25 209.222114 \n",
"\n",
"[5493 rows x 15 columns]"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"watch.load(\"IWM\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Running Bad Study. (Misspelled indicator)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Study(name='Runtime Failure', ta=[{'kind': 'peret_return'}], cores=0, description='', created='Friday March 25, 2022, NYSE: 4:36:00, Local: 8:36:00 PDT, Day 84/365 (23.00%)')"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Load custom_run_failure into Watchlist and verify\n",
"watch.study = custom_run_failure\n",
"watch.study"
]
},
{
"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 'peret_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.\n",
"- Set ```cores=0``` for better performance when few indicators"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Volume MAs and MA chains"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Study(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'}], cores=0, description='', created='Friday March 25, 2022, NYSE: 4:36:00, Local: 8:36:00 PDT, Day 84/365 (23.00%)')"
]
},
"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.Study(\"Volume MAs and Price MA chain\", cores=0, ta=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.study = vp_ma_chain_ta\n",
"watch.study.name"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Loaded SPY[D]: SPY_D.csv\n",
"[i] Analysis Time: 2.7383 ms (0.0027 s) for 4 columns (avg 0.6859 ms / col)\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>Dividends</th>\n",
" <th>Stock Splits</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",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1993-01-29</th>\n",
" <td>25.566158</td>\n",
" <td>25.566158</td>\n",
" <td>25.438963</td>\n",
" <td>25.547987</td>\n",
" <td>1003200</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1993-02-01</th>\n",
" <td>25.566152</td>\n",
" <td>25.729689</td>\n",
" <td>25.566152</td>\n",
" <td>25.729689</td>\n",
" <td>480500</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1993-02-02</th>\n",
" <td>25.711512</td>\n",
" <td>25.802366</td>\n",
" <td>25.657000</td>\n",
" <td>25.784195</td>\n",
" <td>201300</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1993-02-03</th>\n",
" <td>25.820536</td>\n",
" <td>26.074926</td>\n",
" <td>25.802366</td>\n",
" <td>26.056755</td>\n",
" <td>529400</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1993-02-04</th>\n",
" <td>26.147597</td>\n",
" <td>26.220280</td>\n",
" <td>25.856866</td>\n",
" <td>26.165768</td>\n",
" <td>531500</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>25.856879</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",
" </tr>\n",
" <tr>\n",
" <th>2022-03-21</th>\n",
" <td>444.339996</td>\n",
" <td>446.459991</td>\n",
" <td>440.679993</td>\n",
" <td>444.390015</td>\n",
" <td>88349800</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>1.095882e+08</td>\n",
" <td>123319985.0</td>\n",
" <td>438.254397</td>\n",
" <td>435.509988</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-22</th>\n",
" <td>445.859985</td>\n",
" <td>450.579987</td>\n",
" <td>445.859985</td>\n",
" <td>449.589996</td>\n",
" <td>74650400</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>1.032359e+08</td>\n",
" <td>120832915.0</td>\n",
" <td>442.032930</td>\n",
" <td>440.881722</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-23</th>\n",
" <td>446.910004</td>\n",
" <td>448.489990</td>\n",
" <td>443.709991</td>\n",
" <td>443.799988</td>\n",
" <td>79426100</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>9.890684e+07</td>\n",
" <td>118175320.0</td>\n",
" <td>442.621949</td>\n",
" <td>444.560222</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-24</th>\n",
" <td>445.940002</td>\n",
" <td>450.500000</td>\n",
" <td>444.760010</td>\n",
" <td>450.489990</td>\n",
" <td>64565700</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>9.266299e+07</td>\n",
" <td>110706460.0</td>\n",
" <td>445.244630</td>\n",
" <td>447.088724</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-25</th>\n",
" <td>451.160004</td>\n",
" <td>452.980011</td>\n",
" <td>448.429993</td>\n",
" <td>448.980011</td>\n",
" <td>24148266</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>8.020577e+07</td>\n",
" <td>105823648.3</td>\n",
" <td>446.489757</td>\n",
" <td>448.436489</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>7343 rows × 11 columns</p>\n",
"</div>"
],
"text/plain": [
" Open High Low Close Volume \\\n",
"Date \n",
"1993-01-29 25.566158 25.566158 25.438963 25.547987 1003200 \n",
"1993-02-01 25.566152 25.729689 25.566152 25.729689 480500 \n",
"1993-02-02 25.711512 25.802366 25.657000 25.784195 201300 \n",
"1993-02-03 25.820536 26.074926 25.802366 26.056755 529400 \n",
"1993-02-04 26.147597 26.220280 25.856866 26.165768 531500 \n",
"... ... ... ... ... ... \n",
"2022-03-21 444.339996 446.459991 440.679993 444.390015 88349800 \n",
"2022-03-22 445.859985 450.579987 445.859985 449.589996 74650400 \n",
"2022-03-23 446.910004 448.489990 443.709991 443.799988 79426100 \n",
"2022-03-24 445.940002 450.500000 444.760010 450.489990 64565700 \n",
"2022-03-25 451.160004 452.980011 448.429993 448.980011 24148266 \n",
"\n",
" Dividends Stock Splits VOLUME_EMA_10 VOLUME_SMA_20 EMA_5 \\\n",
"Date \n",
"1993-01-29 0.0 0 NaN NaN NaN \n",
"1993-02-01 0.0 0 NaN NaN NaN \n",
"1993-02-02 0.0 0 NaN NaN NaN \n",
"1993-02-03 0.0 0 NaN NaN NaN \n",
"1993-02-04 0.0 0 NaN NaN 25.856879 \n",
"... ... ... ... ... ... \n",
"2022-03-21 0.0 0 1.095882e+08 123319985.0 438.254397 \n",
"2022-03-22 0.0 0 1.032359e+08 120832915.0 442.032930 \n",
"2022-03-23 0.0 0 9.890684e+07 118175320.0 442.621949 \n",
"2022-03-24 0.0 0 9.266299e+07 110706460.0 445.244630 \n",
"2022-03-25 0.0 0 8.020577e+07 105823648.3 446.489757 \n",
"\n",
" EMA_5_LR_8 \n",
"Date \n",
"1993-01-29 NaN \n",
"1993-02-01 NaN \n",
"1993-02-02 NaN \n",
"1993-02-03 NaN \n",
"1993-02-04 NaN \n",
"... ... \n",
"2022-03-21 435.509988 \n",
"2022-03-22 440.881722 \n",
"2022-03-23 444.560222 \n",
"2022-03-24 447.088724 \n",
"2022-03-25 448.436489 \n",
"\n",
"[7343 rows x 11 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": [
"Study(name='MACD BBands', ta=[{'kind': 'macd'}, {'kind': 'bbands', 'close': 'MACD_12_26_9', 'length': 20, 'ddof': 0, 'prefix': 'MACD'}], cores=0, description='BBANDS_20 applied to MACD', created='Friday March 25, 2022, NYSE: 4:36:00, Local: 8:36:00 PDT, Day 84/365 (23.00%)')"
]
},
"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, \"ddof\": 0, \"prefix\": \"MACD\"}\n",
"]\n",
"macd_bands_ta = ta.Study(\"MACD BBands\", cores=0, ta=macd_bands_ta, description=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.study = macd_bands_ta\n",
"watch.study.name"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Loaded SPY[D]: SPY_D.csv\n",
"[i] Analysis Time: 6.3230 ms (0.0063 s) for 8 columns (avg 0.7911 ms / col)\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>Dividends</th>\n",
" <th>Stock Splits</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",
" <th>MACD_BBP_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",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1993-01-29</th>\n",
" <td>25.566158</td>\n",
" <td>25.566158</td>\n",
" <td>25.438963</td>\n",
" <td>25.547987</td>\n",
" <td>1003200</td>\n",
" <td>0.0</td>\n",
" <td>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",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1993-02-01</th>\n",
" <td>25.566152</td>\n",
" <td>25.729689</td>\n",
" <td>25.566152</td>\n",
" <td>25.729689</td>\n",
" <td>480500</td>\n",
" <td>0.0</td>\n",
" <td>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",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1993-02-02</th>\n",
" <td>25.711512</td>\n",
" <td>25.802366</td>\n",
" <td>25.657000</td>\n",
" <td>25.784195</td>\n",
" <td>201300</td>\n",
" <td>0.0</td>\n",
" <td>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",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1993-02-03</th>\n",
" <td>25.820536</td>\n",
" <td>26.074926</td>\n",
" <td>25.802366</td>\n",
" <td>26.056755</td>\n",
" <td>529400</td>\n",
" <td>0.0</td>\n",
" <td>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",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1993-02-04</th>\n",
" <td>26.147597</td>\n",
" <td>26.220280</td>\n",
" <td>25.856866</td>\n",
" <td>26.165768</td>\n",
" <td>531500</td>\n",
" <td>0.0</td>\n",
" <td>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",
" <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",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-21</th>\n",
" <td>444.339996</td>\n",
" <td>446.459991</td>\n",
" <td>440.679993</td>\n",
" <td>444.390015</td>\n",
" <td>88349800</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>-0.963212</td>\n",
" <td>3.165579</td>\n",
" <td>-4.128790</td>\n",
" <td>-8.444926</td>\n",
" <td>-5.428754</td>\n",
" <td>-2.412583</td>\n",
" <td>-111.118362</td>\n",
" <td>1.240267</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-22</th>\n",
" <td>445.859985</td>\n",
" <td>450.579987</td>\n",
" <td>445.859985</td>\n",
" <td>449.589996</td>\n",
" <td>74650400</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0.435860</td>\n",
" <td>3.651720</td>\n",
" <td>-3.215860</td>\n",
" <td>-9.101777</td>\n",
" <td>-5.146085</td>\n",
" <td>-1.190393</td>\n",
" <td>-153.735975</td>\n",
" <td>1.205559</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-23</th>\n",
" <td>446.910004</td>\n",
" <td>448.489990</td>\n",
" <td>443.709991</td>\n",
" <td>443.799988</td>\n",
" <td>79426100</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>1.065150</td>\n",
" <td>3.424809</td>\n",
" <td>-2.359658</td>\n",
" <td>-9.517220</td>\n",
" <td>-4.773612</td>\n",
" <td>-0.030005</td>\n",
" <td>-198.742870</td>\n",
" <td>1.115435</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-24</th>\n",
" <td>445.940002</td>\n",
" <td>450.500000</td>\n",
" <td>444.760010</td>\n",
" <td>450.489990</td>\n",
" <td>64565700</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>2.079721</td>\n",
" <td>3.551503</td>\n",
" <td>-1.471782</td>\n",
" <td>-9.843831</td>\n",
" <td>-4.333591</td>\n",
" <td>1.176648</td>\n",
" <td>-254.303610</td>\n",
" <td>1.081945</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-25</th>\n",
" <td>451.160004</td>\n",
" <td>452.980011</td>\n",
" <td>448.429993</td>\n",
" <td>448.980011</td>\n",
" <td>24148266</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>2.730458</td>\n",
" <td>3.361792</td>\n",
" <td>-0.631334</td>\n",
" <td>-10.125351</td>\n",
" <td>-3.889260</td>\n",
" <td>2.346830</td>\n",
" <td>-320.682608</td>\n",
" <td>1.030759</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>7343 rows × 15 columns</p>\n",
"</div>"
],
"text/plain": [
" Open High Low Close Volume \\\n",
"Date \n",
"1993-01-29 25.566158 25.566158 25.438963 25.547987 1003200 \n",
"1993-02-01 25.566152 25.729689 25.566152 25.729689 480500 \n",
"1993-02-02 25.711512 25.802366 25.657000 25.784195 201300 \n",
"1993-02-03 25.820536 26.074926 25.802366 26.056755 529400 \n",
"1993-02-04 26.147597 26.220280 25.856866 26.165768 531500 \n",
"... ... ... ... ... ... \n",
"2022-03-21 444.339996 446.459991 440.679993 444.390015 88349800 \n",
"2022-03-22 445.859985 450.579987 445.859985 449.589996 74650400 \n",
"2022-03-23 446.910004 448.489990 443.709991 443.799988 79426100 \n",
"2022-03-24 445.940002 450.500000 444.760010 450.489990 64565700 \n",
"2022-03-25 451.160004 452.980011 448.429993 448.980011 24148266 \n",
"\n",
" Dividends Stock Splits MACD_12_26_9 MACDh_12_26_9 \\\n",
"Date \n",
"1993-01-29 0.0 0 NaN NaN \n",
"1993-02-01 0.0 0 NaN NaN \n",
"1993-02-02 0.0 0 NaN NaN \n",
"1993-02-03 0.0 0 NaN NaN \n",
"1993-02-04 0.0 0 NaN NaN \n",
"... ... ... ... ... \n",
"2022-03-21 0.0 0 -0.963212 3.165579 \n",
"2022-03-22 0.0 0 0.435860 3.651720 \n",
"2022-03-23 0.0 0 1.065150 3.424809 \n",
"2022-03-24 0.0 0 2.079721 3.551503 \n",
"2022-03-25 0.0 0 2.730458 3.361792 \n",
"\n",
" MACDs_12_26_9 MACD_BBL_20_2.0 MACD_BBM_20_2.0 MACD_BBU_20_2.0 \\\n",
"Date \n",
"1993-01-29 NaN NaN NaN NaN \n",
"1993-02-01 NaN NaN NaN NaN \n",
"1993-02-02 NaN NaN NaN NaN \n",
"1993-02-03 NaN NaN NaN NaN \n",
"1993-02-04 NaN NaN NaN NaN \n",
"... ... ... ... ... \n",
"2022-03-21 -4.128790 -8.444926 -5.428754 -2.412583 \n",
"2022-03-22 -3.215860 -9.101777 -5.146085 -1.190393 \n",
"2022-03-23 -2.359658 -9.517220 -4.773612 -0.030005 \n",
"2022-03-24 -1.471782 -9.843831 -4.333591 1.176648 \n",
"2022-03-25 -0.631334 -10.125351 -3.889260 2.346830 \n",
"\n",
" MACD_BBB_20_2.0 MACD_BBP_20_2.0 \n",
"Date \n",
"1993-01-29 NaN NaN \n",
"1993-02-01 NaN NaN \n",
"1993-02-02 NaN NaN \n",
"1993-02-03 NaN NaN \n",
"1993-02-04 NaN NaN \n",
"... ... ... \n",
"2022-03-21 -111.118362 1.240267 \n",
"2022-03-22 -153.735975 1.205559 \n",
"2022-03-23 -198.742870 1.115435 \n",
"2022-03-24 -254.303610 1.081945 \n",
"2022-03-25 -320.682608 1.030759 \n",
"\n",
"[7343 rows x 15 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 Study"
]
},
{
"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": [
"Study(name='Momo, Bands and SMAs and Cumulative Log Returns', ta=[{'kind': 'sma', 'length': 50}, {'kind': 'sma', 'length': 200}, {'kind': 'bbands', 'length': 20, 'ddof': 0}, {'kind': 'macd'}, {'kind': 'rsi'}, {'kind': 'log_return', 'cumulative': True}, {'kind': 'sma', 'close': 'CUMLOGRET_1', 'length': 5, 'suffix': 'CUMLOGRET'}], cores=0, description='MACD and RSI Momo with BBANDS and SMAs 50 & 200 and Cumulative Log Returns', created='Friday March 25, 2022, NYSE: 4:36:00, Local: 8:36:00 PDT, Day 84/365 (23.00%)')"
]
},
"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, \"ddof\": 0},\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_Study = ta.Study(\n",
" name=\"Momo, Bands and SMAs and Cumulative Log Returns\", # name\n",
" ta=momo_bands_sma_ta, # ta\n",
" description=\"MACD and RSI Momo with BBANDS and SMAs 50 & 200 and Cumulative Log Returns\", # description\n",
" cores=0\n",
")\n",
"momo_bands_sma_Study"
]
},
{
"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.study = momo_bands_sma_Study\n",
"watch.study.name"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Loaded SPY[D]: SPY_D.csv\n",
"[i] Analysis Time: 9.0647 ms (0.0091 s) for 13 columns (avg 0.6977 ms / col)\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>Dividends</th>\n",
" <th>Stock Splits</th>\n",
" <th>SMA_50</th>\n",
" <th>SMA_200</th>\n",
" <th>BBL_20_2.0</th>\n",
" <th>...</th>\n",
" <th>BBP_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",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2022-03-21</th>\n",
" <td>444.339996</td>\n",
" <td>446.459991</td>\n",
" <td>440.679993</td>\n",
" <td>444.390015</td>\n",
" <td>88349800</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>440.424402</td>\n",
" <td>443.089030</td>\n",
" <td>411.721471</td>\n",
" <td>...</td>\n",
" <td>0.935990</td>\n",
" <td>-0.963212</td>\n",
" <td>3.165579</td>\n",
" <td>-4.128790</td>\n",
" <td>57.318881</td>\n",
" <td>2.856144</td>\n",
" <td>2.840482</td>\n",
" <td>0</td>\n",
" <td>30</td>\n",
" <td>70</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-22</th>\n",
" <td>445.859985</td>\n",
" <td>450.579987</td>\n",
" <td>445.859985</td>\n",
" <td>449.589996</td>\n",
" <td>74650400</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>440.123272</td>\n",
" <td>443.253448</td>\n",
" <td>410.665112</td>\n",
" <td>...</td>\n",
" <td>0.994239</td>\n",
" <td>0.435860</td>\n",
" <td>3.651720</td>\n",
" <td>-3.215860</td>\n",
" <td>60.266397</td>\n",
" <td>2.867778</td>\n",
" <td>2.851802</td>\n",
" <td>0</td>\n",
" <td>30</td>\n",
" <td>70</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-23</th>\n",
" <td>446.910004</td>\n",
" <td>448.489990</td>\n",
" <td>443.709991</td>\n",
" <td>443.799988</td>\n",
" <td>79426100</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>439.717905</td>\n",
" <td>443.388472</td>\n",
" <td>411.493926</td>\n",
" <td>...</td>\n",
" <td>0.811538</td>\n",
" <td>1.065150</td>\n",
" <td>3.424809</td>\n",
" <td>-2.359658</td>\n",
" <td>55.657410</td>\n",
" <td>2.854815</td>\n",
" <td>2.856143</td>\n",
" <td>0</td>\n",
" <td>30</td>\n",
" <td>70</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-24</th>\n",
" <td>445.940002</td>\n",
" <td>450.500000</td>\n",
" <td>444.760010</td>\n",
" <td>450.489990</td>\n",
" <td>64565700</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>439.361801</td>\n",
" <td>443.560056</td>\n",
" <td>411.134941</td>\n",
" <td>...</td>\n",
" <td>0.917836</td>\n",
" <td>2.079721</td>\n",
" <td>3.551503</td>\n",
" <td>-1.471782</td>\n",
" <td>59.510462</td>\n",
" <td>2.869777</td>\n",
" <td>2.860990</td>\n",
" <td>0</td>\n",
" <td>30</td>\n",
" <td>70</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-25</th>\n",
" <td>451.160004</td>\n",
" <td>452.980011</td>\n",
" <td>448.429993</td>\n",
" <td>448.980011</td>\n",
" <td>24148266</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>438.950176</td>\n",
" <td>443.714416</td>\n",
" <td>410.643102</td>\n",
" <td>...</td>\n",
" <td>0.849659</td>\n",
" <td>2.730458</td>\n",
" <td>3.361792</td>\n",
" <td>-0.631334</td>\n",
" <td>58.279543</td>\n",
" <td>2.866420</td>\n",
" <td>2.862987</td>\n",
" <td>0</td>\n",
" <td>30</td>\n",
" <td>70</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 23 columns</p>\n",
"</div>"
],
"text/plain": [
" Open High Low Close Volume \\\n",
"Date \n",
"2022-03-21 444.339996 446.459991 440.679993 444.390015 88349800 \n",
"2022-03-22 445.859985 450.579987 445.859985 449.589996 74650400 \n",
"2022-03-23 446.910004 448.489990 443.709991 443.799988 79426100 \n",
"2022-03-24 445.940002 450.500000 444.760010 450.489990 64565700 \n",
"2022-03-25 451.160004 452.980011 448.429993 448.980011 24148266 \n",
"\n",
" Dividends Stock Splits SMA_50 SMA_200 BBL_20_2.0 ... \\\n",
"Date ... \n",
"2022-03-21 0.0 0 440.424402 443.089030 411.721471 ... \n",
"2022-03-22 0.0 0 440.123272 443.253448 410.665112 ... \n",
"2022-03-23 0.0 0 439.717905 443.388472 411.493926 ... \n",
"2022-03-24 0.0 0 439.361801 443.560056 411.134941 ... \n",
"2022-03-25 0.0 0 438.950176 443.714416 410.643102 ... \n",
"\n",
" BBP_20_2.0 MACD_12_26_9 MACDh_12_26_9 MACDs_12_26_9 RSI_14 \\\n",
"Date \n",
"2022-03-21 0.935990 -0.963212 3.165579 -4.128790 57.318881 \n",
"2022-03-22 0.994239 0.435860 3.651720 -3.215860 60.266397 \n",
"2022-03-23 0.811538 1.065150 3.424809 -2.359658 55.657410 \n",
"2022-03-24 0.917836 2.079721 3.551503 -1.471782 59.510462 \n",
"2022-03-25 0.849659 2.730458 3.361792 -0.631334 58.279543 \n",
"\n",
" CUMLOGRET_1 SMA_5_CUMLOGRET 0 30 70 \n",
"Date \n",
"2022-03-21 2.856144 2.840482 0 30 70 \n",
"2022-03-22 2.867778 2.851802 0 30 70 \n",
"2022-03-23 2.854815 2.856143 0 30 70 \n",
"2022-03-24 2.869777 2.860990 0 30 70 \n",
"2022-03-25 2.866420 2.862987 0 30 70 \n",
"\n",
"[5 rows x 23 columns]"
]
},
"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 Study 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": [
"Study(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)}], cores=0, description='EMA, MACD History, BBands(LB, UB), and Log Returns Study', created='Friday March 25, 2022, NYSE: 4:36:00, Local: 8:36:00 PDT, Day 84/365 (23.00%)')"
]
},
"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_Study = ta.Study(\n",
" name=\"EMA, MACD History, Outter BBands, Log Returns\", # name\n",
" ta=params_ta, # ta\n",
" description=\"EMA, MACD History, BBands(LB, UB), and Log Returns Study\", # description\n",
" cores=0\n",
")\n",
"params_ta_Study"
]
},
{
"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.study = params_ta_Study\n",
"watch.study.name"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Loaded SPY[D]: SPY_D.csv\n",
"[i] Analysis Time: 5.4253 ms (0.0054 s) for 5 columns (avg 1.0861 ms / col)\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>Dividends</th>\n",
" <th>Stock Splits</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",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2022-03-21</th>\n",
" <td>444.339996</td>\n",
" <td>446.459991</td>\n",
" <td>440.679993</td>\n",
" <td>444.390015</td>\n",
" <td>88349800</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>433.646674</td>\n",
" <td>3.859133</td>\n",
" <td>422.794521</td>\n",
" <td>452.299498</td>\n",
" <td>0.066718</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-22</th>\n",
" <td>445.859985</td>\n",
" <td>450.579987</td>\n",
" <td>445.859985</td>\n",
" <td>449.589996</td>\n",
" <td>74650400</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>436.545460</td>\n",
" <td>4.296679</td>\n",
" <td>432.162252</td>\n",
" <td>452.827702</td>\n",
" <td>0.056600</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-23</th>\n",
" <td>446.910004</td>\n",
" <td>448.489990</td>\n",
" <td>443.709991</td>\n",
" <td>443.799988</td>\n",
" <td>79426100</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>437.864465</td>\n",
" <td>3.814877</td>\n",
" <td>438.116668</td>\n",
" <td>450.684931</td>\n",
" <td>0.021706</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-24</th>\n",
" <td>445.940002</td>\n",
" <td>450.500000</td>\n",
" <td>444.760010</td>\n",
" <td>450.489990</td>\n",
" <td>64565700</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>440.160015</td>\n",
" <td>3.831127</td>\n",
" <td>440.822922</td>\n",
" <td>452.293069</td>\n",
" <td>0.024234</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-03-25</th>\n",
" <td>451.160004</td>\n",
" <td>452.980011</td>\n",
" <td>448.429993</td>\n",
" <td>448.980011</td>\n",
" <td>24148266</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>441.763651</td>\n",
" <td>3.454843</td>\n",
" <td>441.875188</td>\n",
" <td>453.024812</td>\n",
" <td>0.009983</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Open High Low Close Volume \\\n",
"Date \n",
"2022-03-21 444.339996 446.459991 440.679993 444.390015 88349800 \n",
"2022-03-22 445.859985 450.579987 445.859985 449.589996 74650400 \n",
"2022-03-23 446.910004 448.489990 443.709991 443.799988 79426100 \n",
"2022-03-24 445.940002 450.500000 444.760010 450.489990 64565700 \n",
"2022-03-25 451.160004 452.980011 448.429993 448.980011 24148266 \n",
"\n",
" Dividends Stock Splits EMA_10 MACDh_9_19_10 LB \\\n",
"Date \n",
"2022-03-21 0.0 0 433.646674 3.859133 422.794521 \n",
"2022-03-22 0.0 0 436.545460 4.296679 432.162252 \n",
"2022-03-23 0.0 0 437.864465 3.814877 438.116668 \n",
"2022-03-24 0.0 0 440.160015 3.831127 440.822922 \n",
"2022-03-25 0.0 0 441.763651 3.454843 441.875188 \n",
"\n",
" UB LOGRET_5 \n",
"Date \n",
"2022-03-21 452.299498 0.066718 \n",
"2022-03-22 452.827702 0.056600 \n",
"2022-03-23 450.684931 0.021706 \n",
"2022-03-24 452.293069 0.024234 \n",
"2022-03-25 453.024812 0.009983 "
]
},
"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 Study, 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 (ipykernel)",
"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
}