Commit 69d82374 authored by Kruyff,D.L.W. (Dylan)'s avatar Kruyff,D.L.W. (Dylan)
Browse files

added loading bar and fast track selection


Former-commit-id: ced94cba
parent 7a653c9e
......@@ -23,6 +23,7 @@ import { TrainingWindowComponent } from './training-window/training-window.compo
import {MatCheckboxModule} from '@angular/material/checkbox';
import { StateManagementComponent } from './state-management/state-management.component';
import {AngularSplitModule} from 'angular-split';
import {MatProgressSpinnerModule} from '@angular/material/progress-spinner';
PlotlyModule.plotlyjs = PlotlyJS;
......@@ -51,6 +52,7 @@ PlotlyModule.plotlyjs = PlotlyJS;
ZingchartAngularModule,
MatSliderModule,
AngularSplitModule,
MatProgressSpinnerModule
],
providers: [],
bootstrap: [AppComponent]
......
......@@ -7,14 +7,17 @@
left: 0;
right: 0;
bottom: 0;
background-color: rgba(0,0,0,0.5);
z-index: 2;
background-color: rgba(0,0,0,0.7);
z-index: 8;
cursor: pointer;
}
.loading-progress {
display: flex;
flex-direction: column;
justify-content: center;
background-color: white;
z-index: 3;
z-index: 9;
width: 400px;
height: 200px;
position: absolute;
......@@ -22,6 +25,7 @@
bottom: 0;
left: 0;
right: 0;
background-color: rgba(0,0,0,0);
margin: auto;
}
......@@ -91,3 +95,11 @@ mat-tab-group {
app-overview-window {
height: 100%;
}
.center {
margin-left: auto;
margin-right: auto;
color: white;
font-weight: bold;
margin-bottom: 10px;
}
......@@ -42,12 +42,9 @@
</as-split-area>
</as-split>
</div>
<div class="overlay" [class.show]="greyOut" *ngIf="loadingProgress != 100"></div>
<div class="loading-progress" *ngIf="loadingProgress != 100">
<span *ngIf="loadingProgress == 0">Retrieving data</span>
<span *ngIf="loadingProgress == 30">Creating windows</span>
<span *ngIf="loadingProgress == 60">Creating initial tables</span>
<mat-progress-bar mode="determinate" [value]="loadingProgress">
</mat-progress-bar>
<div class="overlay" [class.show]="greyOut" *ngIf="greyOut"></div>
<div class="loading-progress" *ngIf="greyOut">
<mat-spinner class="center" [diameter]="40"></mat-spinner>
<div class="center">{{loadingText}}</div>
</div>
......@@ -12,10 +12,10 @@ export class MainComponent {
}
public get greyOut() {
return this.state.querySelectionMode;
return this.state.loadingText !== '';
}
public get loadingProgress(): number {
return this.state.loadingProgress;
public get loadingText(): string {
return this.state.loadingText.toUpperCase();
}
}
......@@ -182,3 +182,8 @@ path {
-ms-transform: rotate(45deg);
transform: rotate(45deg);
}
.content {
display: flex;
flex-direction: column;
}
......@@ -4,12 +4,15 @@
<div class="channel_header">
Channels
</div>
<div class="list">
<div class="list-element" *ngFor="let index of allChannels">
<label class="container">{{ names[index] }}
<input type="checkbox" [checked]="isInSelection(index)" (click)="changeSelection(index)">
<span class="checkmark" [ngStyle]="isInSelection(index) && {'background-color': getColor(index)} || {}"></span>
</label>
<div class="content">
<button (click)="setSelection()">Set</button>
<div class="list">
<div class="list-element" *ngFor="let index of allChannels">
<label class="container">{{ names[index] }}
<input type="checkbox" [checked]="isInSelection(index)" (click)="changeSelection(index)">
<span class="checkmark" [ngStyle]="isInSelection(index) && {'background-color': getColor(index)} || {}"></span>
</label>
</div>
</div>
</div>
</as-split-area>
......
......@@ -23,11 +23,13 @@ export class OverviewWindowComponent implements OnInit {
public allChannels: number[];
private _minx;
private _maxx;
public currentSelection;
public data;
public layout;
constructor(private state: StateService, private el: ElementRef) {
this.currentSelection = this.state.selection;
}
async ngOnInit(): Promise<void> {
......@@ -35,7 +37,10 @@ export class OverviewWindowComponent implements OnInit {
// this.state.onNewData.subscribe(() => this.dostuff3());
this.state.onNewData.subscribe(() => this.initializePlot());
this.state.onNewLshData.subscribe(() => this.updatePlot());
this.state.onNewSelection.subscribe(() => this.updateChannels());
this.state.onNewSelection.subscribe(() => {
this.currentSelection = this.state.selection;
this.updateChannels();
});
this.state.onNewSlider.subscribe(() => this.updateCandidates());
}
......@@ -473,7 +478,7 @@ export class OverviewWindowComponent implements OnInit {
}
isInSelection(i): boolean {
return this.state.selection.includes(i);
return this.currentSelection.includes(i);
}
getColor(i): string {
......@@ -482,14 +487,16 @@ export class OverviewWindowComponent implements OnInit {
changeSelection(i: number): void {
if (this.isInSelection(i)) {
this.state.selection = this.state.selection.filter((v) => v !== i);
this.currentSelection = this.currentSelection.filter((v) => v !== i);
} else {
const selection = this.state.selection;
selection.push(i);
this.state.selection = selection;
this.currentSelection.push(i);
}
}
setSelection(): void {
this.state.selection = this.currentSelection;
}
get height(): number {
return Math.max(75 * this.state.selection.length + 50, this.initialHeight);
}
......
......@@ -27,6 +27,7 @@ export class StateService {
public nrOfTables = 5;
public hashSize = 5;
public stepSize = 200;
public loadingText = '';
/**
* These are all GUI variables
......@@ -97,7 +98,9 @@ export class StateService {
async lshInitial(): Promise<void> {
this._weights = Array(this._queryWindow.length).fill(1);
const t0 = new Date().getTime();
this.loadingText = 'Creating LSH model';
this.lshData = await this.api.lshInitial(this._queryWindow);
this.loadingText = '';
this.computedTime = new Date().getTime() - t0;
this._lshParameters = this.lshData.parameters;
}
......@@ -106,9 +109,12 @@ export class StateService {
* This function performs every other iteration of LSH
*/
async update(labels, hashFunctions): Promise<void> {
this.loadingText = 'Calculating new model parameters';
this._weights = await this.api.getWeights(this._queryWindow, labels, this._weights, hashFunctions);
const t0 = new Date().getTime();
this.loadingText = 'Creating LSH model';
this.lshData = await this.api.lshUpdate(this._queryWindow, this._weights, this._lshParameters);
this.loadingText = '';
this.computedTime = new Date().getTime() - t0;
}
......
......@@ -20,56 +20,16 @@
</component>
<component name="ChangeListManager">
<list default="true" id="556080ba-825c-4b55-a92a-867a4df4fb32" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/../AngularApp/prototype/src/app/api.service.ts" beforeDir="false" afterPath="$PROJECT_DIR$/../AngularApp/prototype/src/app/api.service.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../AngularApp/prototype/src/app/app.module.ts" beforeDir="false" afterPath="$PROJECT_DIR$/../AngularApp/prototype/src/app/app.module.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../AngularApp/prototype/src/app/main/main.component.html" beforeDir="false" afterPath="$PROJECT_DIR$/../AngularApp/prototype/src/app/main/main.component.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../AngularApp/prototype/src/app/progress-view/progress-view.component.ts" beforeDir="false" afterPath="$PROJECT_DIR$/../AngularApp/prototype/src/app/progress-view/progress-view.component.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../AngularApp/prototype/src/app/state-management/state-management.component.css" beforeDir="false" afterPath="$PROJECT_DIR$/../AngularApp/prototype/src/app/state-management/state-management.component.css" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../AngularApp/prototype/src/app/state-management/state-management.component.html" beforeDir="false" afterPath="$PROJECT_DIR$/../AngularApp/prototype/src/app/state-management/state-management.component.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../AngularApp/prototype/src/app/state-management/state-management.component.ts" beforeDir="false" afterPath="$PROJECT_DIR$/../AngularApp/prototype/src/app/state-management/state-management.component.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../AngularApp/prototype/src/app/main/main.component.ts" beforeDir="false" afterPath="$PROJECT_DIR$/../AngularApp/prototype/src/app/main/main.component.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../AngularApp/prototype/src/app/overview-window/overview-window.component.css" beforeDir="false" afterPath="$PROJECT_DIR$/../AngularApp/prototype/src/app/overview-window/overview-window.component.css" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../AngularApp/prototype/src/app/overview-window/overview-window.component.html" beforeDir="false" afterPath="$PROJECT_DIR$/../AngularApp/prototype/src/app/overview-window/overview-window.component.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../AngularApp/prototype/src/app/overview-window/overview-window.component.ts" beforeDir="false" afterPath="$PROJECT_DIR$/../AngularApp/prototype/src/app/overview-window/overview-window.component.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../AngularApp/prototype/src/app/state.service.ts" beforeDir="false" afterPath="$PROJECT_DIR$/../AngularApp/prototype/src/app/state.service.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/main.py" beforeDir="false" afterPath="$PROJECT_DIR$/main.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/preprocessing.py" beforeDir="false" afterPath="$PROJECT_DIR$/preprocessing.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/pseudo.py" beforeDir="false" afterPath="$PROJECT_DIR$/pseudo.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/.ipynb_checkpoints/Compare Recall and Precision on EEG data, M=50.000, T=128, d=20-checkpoint.ipynb" beforeDir="false" afterPath="$PROJECT_DIR$/../experiments/.ipynb_checkpoints/Compare Recall and Precision on EEG data, M=50.000, T=128, d=20-checkpoint.ipynb" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/.ipynb_checkpoints/Compare Recall and Precision on EEG data, M=50.000, T=128, d=35-checkpoint.ipynb" beforeDir="false" afterPath="$PROJECT_DIR$/../experiments/.ipynb_checkpoints/Compare Recall and Precision on EEG data, M=50.000, T=128, d=35-checkpoint.ipynb" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/.ipynb_checkpoints/Compare Recall and Precision on EEG data, M=50.000, T=128, d=70-checkpoint.ipynb" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/.ipynb_checkpoints/Compare Recall and Precision on EEG data, M=50.000, T=256, d=35-Copy1-checkpoint.ipynb" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/.ipynb_checkpoints/Compare Recall and Precision on EEG data, M=50.000, T=256, d=35-checkpoint.ipynb" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/.ipynb_checkpoints/Compare Recall and Precision on Gas Sensor data, T=200, d=16-checkpoint.ipynb" beforeDir="false" afterPath="$PROJECT_DIR$/../experiments/.ipynb_checkpoints/Compare Recall and Precision on Gas Sensor data, T=200, d=16-checkpoint.ipynb" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/.ipynb_checkpoints/Compare Recall and Precision on Gas Sensor data, T=50, d=16-checkpoint.ipynb" beforeDir="false" afterPath="$PROJECT_DIR$/../experiments/.ipynb_checkpoints/Compare Recall and Precision on Gas Sensor data, T=50, d=16-checkpoint.ipynb" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/Compare Recall and Precision on EEG data, M=100.000, T=128, d=35.ipynb" beforeDir="false" afterPath="$PROJECT_DIR$/../experiments/Compare Recall and Precision on EEG data, M=100.000, T=128, d=35.ipynb" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/Compare Recall and Precision on EEG data, M=25.000, T=128, d=35.ipynb" beforeDir="false" afterPath="$PROJECT_DIR$/../experiments/Compare Recall and Precision on EEG data, M=25.000, T=128, d=35.ipynb" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/Compare Recall and Precision on EEG data, M=50.000, T=128, d=20.ipynb" beforeDir="false" afterPath="$PROJECT_DIR$/../experiments/Compare Recall and Precision on EEG data, M=50.000, T=128, d=20.ipynb" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/Compare Recall and Precision on EEG data, M=50.000, T=128, d=35.ipynb" beforeDir="false" afterPath="$PROJECT_DIR$/../experiments/Compare Recall and Precision on EEG data, M=50.000, T=128, d=35.ipynb" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/Compare Recall and Precision on EEG data, M=50.000, T=128, d=70.ipynb" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/Compare Recall and Precision on EEG data, M=50.000, T=256, d=35-Copy1.ipynb" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/Compare Recall and Precision on EEG data, M=50.000, T=256, d=35.ipynb" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/Compare Recall and Precision on EEG data, M=75.000, T=128, d=35.ipynb" beforeDir="false" afterPath="$PROJECT_DIR$/../experiments/Compare Recall and Precision on EEG data, M=75.000, T=128, d=35.ipynb" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/Compare Recall and Precision on Gas Sensor data, T=100, d=16.ipynb" beforeDir="false" afterPath="$PROJECT_DIR$/../experiments/Compare Recall and Precision on Gas Sensor data, T=100, d=16.ipynb" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/Compare Recall and Precision on Gas Sensor data, T=150, d=16.ipynb" beforeDir="false" afterPath="$PROJECT_DIR$/../experiments/Compare Recall and Precision on Gas Sensor data, T=150, d=16.ipynb" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/Compare Recall and Precision on Gas Sensor data, T=200, d=16.ipynb" beforeDir="false" afterPath="$PROJECT_DIR$/../experiments/Compare Recall and Precision on Gas Sensor data, T=200, d=16.ipynb" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/Compare Recall and Precision on Gas Sensor data, T=50, d=16.ipynb" beforeDir="false" afterPath="$PROJECT_DIR$/../experiments/Compare Recall and Precision on Gas Sensor data, T=50, d=16.ipynb" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/data/12kb-similarity-search.h5" beforeDir="false" afterPath="$PROJECT_DIR$/../experiments/data/12kb-similarity-search.h5" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/data/cae_12kb.h5" beforeDir="false" afterPath="$PROJECT_DIR$/../experiments/data/cae_12kb.h5" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/images/accuracy_eeg_100000_128_35.png" beforeDir="false" afterPath="$PROJECT_DIR$/../experiments/images/accuracy_eeg_100000_128_35.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/images/accuracy_eeg_25000_128_35.png" beforeDir="false" afterPath="$PROJECT_DIR$/../experiments/images/accuracy_eeg_25000_128_35.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/images/accuracy_eeg_50000_128_20.png" beforeDir="false" afterPath="$PROJECT_DIR$/../experiments/images/accuracy_eeg_50000_128_20.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/images/accuracy_eeg_50000_128_35.png" beforeDir="false" afterPath="$PROJECT_DIR$/../experiments/images/accuracy_eeg_50000_128_35.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/images/accuracy_eeg_50000_256_20.png" beforeDir="false" afterPath="$PROJECT_DIR$/../experiments/images/accuracy_eeg_50000_256_20.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/images/accuracy_eeg_75000_128_35.png" beforeDir="false" afterPath="$PROJECT_DIR$/../experiments/images/accuracy_eeg_75000_128_35.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/images/accuracy_gas_200000_100_16.png" beforeDir="false" afterPath="$PROJECT_DIR$/../experiments/images/accuracy_gas_200000_100_16.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/images/accuracy_gas_200000_50_16.png" beforeDir="false" afterPath="$PROJECT_DIR$/../experiments/images/accuracy_gas_200000_50_16.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/images/time_eeg_100000_128_35.png" beforeDir="false" afterPath="$PROJECT_DIR$/../experiments/images/time_eeg_100000_128_35.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/images/time_eeg_25000_128_35.png" beforeDir="false" afterPath="$PROJECT_DIR$/../experiments/images/time_eeg_25000_128_35.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/images/time_eeg_50000_128_20.png" beforeDir="false" afterPath="$PROJECT_DIR$/../experiments/images/time_eeg_50000_128_20.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/images/time_eeg_50000_128_35.png" beforeDir="false" afterPath="$PROJECT_DIR$/../experiments/images/time_eeg_50000_128_35.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/images/time_eeg_50000_256_20.png" beforeDir="false" afterPath="$PROJECT_DIR$/../experiments/images/time_eeg_50000_256_20.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/images/time_eeg_75000_128_35.png" beforeDir="false" afterPath="$PROJECT_DIR$/../experiments/images/time_eeg_75000_128_35.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/images/time_gas_200000_100_16.png" beforeDir="false" afterPath="$PROJECT_DIR$/../experiments/images/time_gas_200000_100_16.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/images/time_gas_200000_50_16.png" beforeDir="false" afterPath="$PROJECT_DIR$/../experiments/images/time_gas_200000_50_16.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/old2/.ipynb_checkpoints/Compare similarity search strategies UTS on PEAX data-checkpoint.ipynb" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/old2/Compare similarity search strategies UTS on PEAX data.ipynb" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../experiments/Results &amp; Graphs.ipynb" beforeDir="false" afterPath="$PROJECT_DIR$/../experiments/Results &amp; Graphs.ipynb" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
......
......@@ -79,7 +79,7 @@ def preprocess(data, r=None):
subset = []
t0 = time()
if r is None:
r = data.shape[2]
r = 19.375 # r = data.shape[2]
started = False
first = 0
last = r * 2
......
......@@ -66,6 +66,7 @@
"\n",
"fig.legend()\n",
"fig.tight_layout()\n",
"plt.savefig('images/track_computing_time')\n",
"\n",
"plt.show()"
]
......@@ -121,6 +122,8 @@
"ax.set_xticklabels(labels, fontsize=18)\n",
"\n",
"fig.tight_layout()\n",
"plt.savefig('images/track_performance')\n",
"\n",
"plt.show()"
]
},
......@@ -181,6 +184,7 @@
"\n",
"fig.legend()\n",
"fig.tight_layout()\n",
"plt.savefig('images/sample_computing_time')\n",
"\n",
"plt.show()"
]
......@@ -192,9 +196,9 @@
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABZgAAAHwCAYAAAArRQrgAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzde7xtdVkv/s/DRfKWihdAYLMrNS+VN7ybgJhXFPOnJ7uc0EPZKcPs4tE6pVh5Tp3qpFFWVAqlpzItJaKSUPCWGl4y8RJeuAiIKAqKigjP748xFkyXa+215txz7TXX3u/36zVec88xxvyOZ44x53rt/dnf9Yzq7gAAAAAAwLT22uwCAAAAAADYmgTMAAAAAADMRMAMAAAAAMBMBMwAAAAAAMxEwAwAAAAAwEwEzAAAAAAAzETADADs8arqOVX1oar6SlV1VT13s2vak1XVkeN1OHFPOvZWMZ6fsze7jj1FVZ04nvMjF6CWC6rqgs2uAwBYLPtsdgEAwJ6tqnrZqhuSfD7JB5L8WXe/eoOP//QkL0vyviQvTXJtkndu5DEBAAB2FwJmAGBRvHh83DfJdyZ5cpKjqur+3f1zG3jcY5Yeu/vSDTwOW8O7k9wjyWc3u5AFdo8kX97sItgUR292AQDA4hEwAwALobtPnHxeVUcnOTPJc6vq97r7gg069J3H4wuXSXd/OclHNruORdbdzs8eqrs/vtk1AACLRw9mAGAhdfdZGYK+SvKApfVVdUhV/X5VfaKqrq2qz1XVaVX1gOVjTPYuraofqqp3VdWXxj6iJ47tOY4a9+2lZdkYR1fVP1XVlVX11ar6z6r6jaq6zQrHO3sc42ZV9cKq+uhY4ynLtu87bv/4OOZHqurHJ8b571X1H2NP6E9V1Yur6pv+3lZVz6iq143n4itVdXVVvb2qfmSlczpx/H2q6peq6vyxvour6jer6marvO7uVfWK8bxdW1Wfqaq3VtVPrrLvKeOY11bV5VX1/6rqO1caey1V9ZCq+pequqqqvlhV/1xVhy/b5zfG9/Wjq4xx/3H736/jeCv2YN7oc7fU17iqDqyqP62qS6rq+qp6xsQ+D6qq11bVp6vqa+Ox/7iq7rzKe35ZVf37xGf3/Kr6naq63Qr736yGXuTvrarPV9WXx5rfUFWPWqnWZesmv2tPrap3j2NcWVV/VVUHr3J+HlBVbxyv7dXjtX5ITdl3uKoOqKrfruE7d01VfWH88ylV9e3L3udPV9UZVXXheE2uHI/7uFXGvmBcblVVvzue969U1fur6snjPpOfi6/W8N3+6RXGuvHztZ7P9jre905/32pwXFW9o6quGOu/eKznB1Y6FxPPt9fEz85VlmcsG2PdP8MBgK3BDGYAYJHV+NhJUlX3S/LGJPsn+eckf5vkDhnaabytqr6/u89YYZyfT/J9Sf4+yZuT3CbJ2eO2ZyQ5LDe16Ljp4FU/keQPk1yT5G+SfCbJkUmen+SJVfWw7v7CCsd7XYZQ/B+TvH583aS/SvKgJGckuS7JU5OcXFXXJfmeJMclOT3JWUmelOSFGVoS/Oaycf4wyYeSvCXJZUlun+TxSf6iqr6zu39lhdqS5P8l+d6xvqvH1/yPJHdK8sxl5+AJ43vfL8k/JfnLJLdNcu/xNX84se9jM1yTfTOc648lOSTJU5I8oaqO6u73rlLTSh6U5BeT/EuSP0hyl3GsR1TVo7v7reN+f5TkeUl+IsmfrzDOT4yPfzzFsVezIedutH+G/t9fynAeb0hy+TjWM5P8SYYe4acluTjJXZP8WIbP4oO7+6KJsX48yfcnOSfD+ds7yf2S/FySx1XVg7r7ixP7n5LkB5N8MMM5/EqG2f0PT/LYcYz1+KkMn9nTxmM/KMkPJLl3Vd2nu6+dOD/fm+H7vG+G78zHk3x3hu/om9Z5vFTVLZK8Pcl3ZPith7/P8LPjsCTHJnltkk+Mu++foef6O8Z9r0hyUJInJjmjqn68u/90hcPsO+6/f5I3JLlZhvP1uqp69Pi+H5Thc3FtkqclOamqrujuv15hvPV+tnf0vuf1fXvJWMsnk7wmyVUZzskDxvexUv1LvpAVfnaOfjrDz6Qb26nsxM9wAGCRdbfFYrFYLBbLpi0ZwuNeYf2jMgRsN2QIivbJEKB8NckRy/a9c5JLMoSs+02sP3Ec/5ok913l+GevcvzDMgRFVye5+7JtLx/HPXmlsTLcoPAOqx0ryb8lue3E+m9P8rUMNzf8ZJKDJ7bdNkM/4CuS7LNsvO9Y4Rg3yxBMXzc5zrLjvyfJ/hPrbzme2+uTHDix/g4ZwqavLT/n4/ZDJv58u7H+zya557L97pUhNH3vOj8TRy59LpL89LJtx47rz0+y18T608f1371s/1sl+WKSi5LsPcWxT9xV527ye5Ah3F1+ne82jvOxFa7pI8dj/90Kn99ver9Jjh+P8/yJdbfJ8D07d5XX3H6FWs9etu7Ecf3VK1yD/zdu+y8T6/Yar2Enedyy/f/7xPk4ch3X7Injvr+7yvfh1hPP91t+7ifOwQeTXJnk5su2XTCO//f5xp8v3zuuvzKrf6ffN4fP9tK5PXJi3Ty/b59L8qkkt1hh2x2WPb8gyQXrGPPFY82vW3ovmeFnuMVisVgslq2xaJEBACyE8VfGT6yql1TVazPM+KwkL+3uC5M8IcMMxZO6+5zJ1/bQP/n/JDkwK9+E6uTuft+UJf1IhnDq9/ube87+zwyh5X+tqv1WeO2vdPeObhL3gp6Y+dzdn0jytgxh8q919yUT276QIdi6Q5JvaDPQK/RD7e6vZZgRuU9WvyHX87v7yonXXJPk1RlCv8lf0T8uybcm+cPl53x83acmnv7oWP+LuvtDy/Y7L8Ps2/tW1T1XqWklH8sQ5k+O9YYMM2PvkiHgW7I0G/hZy8b44Qwh85929/VTHHs1G3HulnwtyS9099eXrf/JDLNUf2byszGO86YMs4WfWFW3nlh/4Srv9xUZQuDHTA6T4bt2bYageXmtn1thnNX8Xnf/x7J1fzI+PnBi3UMzXMM3d/c/Ltv/5CT/OcUxl3xl+Yru/lpPzNTu7mtXOvfdfVWGc3O7TLTkWea5PTEDu4dZxp8cX/P8Fb7Tb0/y3VW19wpjTfPZXsm8v2/XZfiPim+wxs+xFdXQquaFGW6Y+SPdvfSZ2pmf4QDAAtMiAwBYFC8aHzvDr12/NcmfdferxvUPGR8Pq2X9cUd3HR/vkaH1xKR3z1DP/cbHb/pV/e7+fFW9L8kjktw9yb9PebxzV1i3dJPB96ywbSlUPCTJhUsrq2pbhnYdRyfZluTmy163Yt/bVY5/8fg42Z/3wePj8gBwJUvX596rXJ+7jY/3yNDWYz3eOhFOTTo7yRFJ7pshkFuq8ZMZQv/n93CzvmQInK9PslLbg1lsxLlbckF3L2+nktx0bo9YpU/tnTK0wLhbxs9PVe2boTXI05PcM8MM3cnJJTd+Nrr76hr6Uz8xyfur6nUZvn/vmjiP67Xe83Pf8fFty3fu7huq6h256TOzlnMyfEdeMLZgOCNDuPv+lUL2qrpXhpYqj8jQCuJblu2y0vfmCyv9h06G7+23ZfXv7d4ZQtNLlm2b5rO9knl+316d5IQk51XV34zH/dcxdJ9KVR2V4bv2ySRP7O7J0H9nfoYDAAtMwAwALITurjV2uf34+LQ19rvVCus+PX1FWbqJ32WrbF9af9tpj7dKcLM0a3VH2/ZdWjHeuOzdGUK7t2boa3pVhjB1e4YZtCvNrk6v3Dd66RiTsy2X3tvycGwlS9fnx3e418rXZzWXr7J+6fzeeKPFMZT84yS/kaHn7yur6v4Z/qPg9eMMyZ22QeduyWqfm6Vz+7w1Xj95bv86Qw/mT2ToGfzpDDOUk+S5+ebPxg9k+M+KH8pNPXW/Ov42wS9092rXYrn1np+la7fauOs93lJA/uAMdT8pN83O/mxVvTzJr3f3dUky7vemDP8OOivD7O+rM8zcvk+GNhUrfW9WC1u/Ptawru/thHV/tlcxz+/bz2bof/3fkrxgXL5eVWck+fnu/tg6xkhV3SNDT+Vrkjxhhf8s2Zmf4QDAAhMwAwBbxVKAc2x3nzbla3snjndgkvNW2H7Qsv1uOlj3LMeb1s9lCGye2d2nTG6oqh/MEDDvrKWw8OAky9seLLd0Hu7d3R+Yw7GT5IBV1h+47JhLXpEhZPyJJK/MfG/uN61pzt2S1T43S+/zNt199VqDVNXhGcLlf0ny+KVwddy2V4YbDH7jgYeZpicmObGqDs0wu/cZGVrFbM/aLRumtfQ+VrvGq61f0dj24viqqgwzth+Z5NkZWjXslWTphpe/nGGm/1HdffbkGFX1ixkC5l1h2s/2cnP7vo2zvF+W5GVVdacMN3Z8eoYg+F5Vda/J1iArGV/3Dxl6kj+muz+8g5pn+RkOACwwPZgBgK3inePjvIOu1Sz1bD5y+Yaqum2G2Y5fTbJSkLIr3GV8fN0K246Y0zGWzvnjpth3ntfn4WMgutyR4+M39NXu7iuSvDbJg6rqYUl+MMNNyd44x5rWa5pzt96x1ntulz4bp02Gy6MH5ptbqXyD7r64u1+dYSbw+Rmuw+139JoZLF27hy/fMF7zh84yaA/O6+6TknzfuPrJE7vcJcmVy8Pl0by+N+sx1Wd7BRvy87C7P9Pdf9vd/yXDTO/vSPJdO3pNVd08Q5/4b0vyY9395lV23dU/wwGAXUTADABsFW/I8Gvcz66qx6+0Q1U9pKpuMafjvSrDja9OqKq7LNv2axlu4PaqtWb2baALxscjJ1dW1WOS/NicjnFqhpmmP1lVj1i+saoOmXj6ygyzdl9UVQ9cYd+9qurI5evXcNckP7VsnGMzBIEfy9AaZLmlm/39dYZftT95lV63G22ac7eW38/wWfzdqvqmvsRVdbOqmgztLhgfj1y2350y3ABy+evvWFUPWuG4t0xy6wytHr42Rb3r8fYM3+ejqmp5CP+srL//cqrqu6pq+wqblmYJT/aRviDJ/lX1PcvGOD7feOPDjTbLZ3vSXL5vVbVfVR09zvyeXL9vkv3Hp6v24R5D8ldl+I+LF3f3n+/gcLv6ZzgAsItokQEAbAndfV1VPSXJPyf5h/EmYO/PEH4cmuQBSb49Q+uKaW9MttLxLqiq52YI5N5bVa9JckWGAOghST6SoWftZnl5kmcm+ZvxpmyXZJhp+Ngkr8nQU3endPdnq+qHMswKfnNV/WOSD2QI178nw3n/tnHfz1XVU5P8XZJ3VtVZGVqL3JDhBoQPydDSY/kN1Xbkn5L8zhhA/nuG2adPyTBz/PiVguPufntV/XuSe2cIZV8x9Rufg2nO3TrG+khV/bcM7+W8qvqnJP+ZobfvtgwzQq/IcMPJJPm3DAHuU8bvydsyhK2PS/LR3HRDySUHZ7hmH07y3gw35fvWJMdkaNnwe939xalPwo7f0w1V9WMZrvFp42f44xnOzfdluDni4zJ8ftbyqCT/d3yvH0nymQw3xDx2fP1vTez70gxB8tvG7/RVSQ7PMJP6tUmeuvPvbl2m/mxPmuP37eYZWqlcUFXvynAT0W/JcA3ukWEW/I5+S+OpY92fS5JVbt73+u5+/67+GQ4A7DoCZgBgy+juD1TVvTP0Hz4mQ8B6Q4Yb7r0vyYuSfHaOx3t5VX0syS8k+f+S3CJD+PZbSf7XKjd82yXGc3FUkl9P8vgMf6/79wxhzxcyh4B5PM4/jD19n5/k6CSPTvL5DEHe/16271njzNBfyBDifW+Gma+XZvh1+5XaeezIu5L8aoYZ4z+dpMZx/md3/9sOXvfKDEHiG6a4Od3cTXPu1jHWq8bg/OeTHDWOdU2Gc/vaDDO2l/a9vqqelJs+G8/J8B8Qfzqu+9Cy4S/I8N05chz7DkmuzBBGvyDJX01T6xTv6eyqOmKs6Qnj6neNNfzw+HzNntMZAsuXZugbfWyGcPyyJGcm+b/d/Y6JY/5TVT0xQy/mH8hwU8x3j8f89uy6gHnWz/aN5vR9uybD5/OoDG1JnpzkixnC/p/M2v9BszTb+PYZPkMruSBDkLzLf4YDALtG7Zp70AAAwK5RVadkuMnho7r7rE0uhxlU1duTPCjDjQ2v2ex65mVsW/HmDO0kTtzcagAA5kMPZgAAdhtVdWiSp2e4+eKbNrkcdqCqbjHeMHP5+mdkmE37xt0pXAYA2F1pkQEAwJY39ju+W4Zweb8kv9J+VW/RbUvyvqo6M8ON7fZJct8M/ZC/kKEdCAAAC07ADADA7uBZGXrwXpzkZ7t72n7P7HqXJ3l1hhtnHpXhPwY+naGH9ku6++ObWBsAAOukBzMAAAAAADPZ7Wcw3+EOd+jt27dvdhkAAAAAAFvWe97zns929x2Xr9/tA+bt27fn3HPP3ewyAAAAAAC2rKq6cKX1e+3qQgAAAAAA2D0ImAEAAAAAmImAGQAAAACAmQiYAQAAAACYiYAZAAAAAICZCJgBAAAAAJiJgBkAAAAAgJkImAEAAAAAmImAGQAAAACAmQiYAQAAAACYiYAZAAAAAICZCJgBAAAAAJiJgBkAAAAAgJkImAEAAAAAmImAGQAAAACAmQiYAQAAAACYyaYGzFX1iqr6TFV9cGLd/lV1ZlWdPz7ebmLbL1bVx6rqo1X1mM2pGgAAAACAZPNnMJ+S5LHL1r0gyVndfdckZ43PU1X3TPL0JPcaX/Pyqtp715UKAAAAAMCkTQ2Yu/stSa5ctvrYJKeOfz41yZMn1v9Vd1/b3Z9M8rEkD9wlhQIAAAAA8E02ewbzSg7o7suSZHy807j+4CQXT+z3qXHdN6mqZ1XVuVV17hVXXLGhxTIf2w7bnqqa+3LzW9xy7mNuO2z7Zp+uTbGVrtGeep1co61hI67TnnouAWB35+93i8812ho24jq5RvO1Ud+lPfV87mr7bHYBU6gV1vVKO3b3yUlOTpLDDz98xX1YLBdfdGHOuWz+l+qIg2ru4x5x0Eofxd3fVrpGS+PuaVyjrWEjrtOeei4BYHfn73eLzzXaGjbq7+Cu0fxs5HeJjbeIM5gvr6qDkmR8/My4/lNJDp3Y75Akl+7i2gAAAAAAGC1iwHxakuPGPx+X5A0T659eVftV1bcluWuSd29CfQAAAAAAZJNbZFTVXyY5MskdqupTSV6U5DeSvKaqjk9yUZKnJUl3n1dVr0nyoSRfT/Ls7r5+UwoHAAAAAGBzA+bu/sFVNh29yv4vSfKSjasIAAAAAID1WsQWGQAAAAAAbAECZgAAAAAAZiJght3QgQcfkqqa68J8uUYAAADA7mBTezADG+PySy9JjjlhvoOeftJ8x9vDuUYAAADA7sAMZgAAAAAAZiJgBgAAAABgJgJmAAAAAABmImAGAAAAAGAmAmYAtrQDDz4kVTX35cCDD9nstwYAAAALb5/NLgAAdsbll16SHHPC/Mc9/aS5jwkAAAC7GzOYAQAAAFg3v0W4NWzEdXKNWIkZzAAAAACs24b9FuEZL09VzX3cPdVGXCe/6clKBMwAAAAAbL4brt+Q4DpCUdhQWmQAAAAAADATATMAAAAAADMRMMMm2qgbIwAAAPCNNuLfXwDowQybaqNujKC/1PwcePAhw3UCAAC2tA3595d/ewEImAF2xH8CAAAAAKxOiwwAAAAAAGYiYAYAAAAAYCYCZgAAAAAAZiJgBgAAAABgJgJmAAAAAABmImAGAAAAAGAmAmYAAABgYRx48CGpqrkvAGyMfTa7AAAAAIAll196SXLMCfMf+PST5j8mAGYwAwAAAAAwGwEzAAAAAAAz0SJjN3bgwYcMv1o0Rwfc+eB8+pJPzXVMgIW019569QEAAEzy7yRWIGDejW1E36rL9awC9hQ3XK/3HwAAwCT/TmIFWmQAAAAAADATATMAAAB7jAMPPiRVNdflwIMP2ey3BQCbRosMAAAA9hhaCQLAfJnBDAAAAADATATMAAAAAADMRMAMAAAAAMBMBMwAAAAAAMxEwAwAAAAAwEwEzAAAAAAAzETADAAAAADATATMAAAAAADMRMAMAAAAAMBMBMwAAAAAAMxEwAwAAAAAwEz22ewC2GL22jtVtdlVAAAAAAALQMDMdG64PjnmhPmPe/pJ8x8TAAAAANhQWmQAAAAAADATATMAAAAAADMRMAMAAAAAMBMBMwAAAAAAMxEwAwAAAAAwEwEzAAAAAAAz2WezCwAAAIAtba+9U1WbXQUAbAoBMwAAAOyMG65Pjjlh/uOeftL8xwSAOdMiAwAAAACAmQiYAQAAAACYiYAZAAAAAICZCJgBAAAAAJiJgBkAAAAAgJkImAEAAAAAmImAGQAAAACAmQiYAQAAAACYiYAZAAAAAICZCJgBAAAAAJiJgBkAAAAAgJkImAEAAAAAmImAGQAAAACAmQiYAQAAAACYiYAZAAAAAICZCJgBAAAAAJiJgBkAAAAAgJkImAEAAAAAmImAGQAAAACAmQiYAQAAAACYycIGzFX1s1V1XlV9sKr+sqq+par2r6ozq+r88fF2m10nAAAAAMCeaiED5qo6OMlzkhze3d+VZO8kT0/ygiRndfddk5w1PgcAAAAAYBMsZMA82ifJzatqnyS3SHJpkmOTnDpuPzXJkzepNgAAAACAPd5CBszdfUmS305yUZLLklzV3W9MckB3Xzbuc1mSO630+qp6VlWdW1XnXnHFFbuqbAAAAACAPcpCBsxjb+Vjk3xbkjsnuWVV/ch6X9/dJ3f34d19+B3veMeNKhMAAAAAYI+2kAFzkkcl+WR3X9Hd1yX52yQPTXJ5VR2UJOPjZzaxRgAAAACAPdqiBswXJXlwVd2iqirJ0Uk+nOS0JMeN+xyX5A2bVB8AAAAAwB5vn80uYCXd/a6qem2S9yb5epL3JTk5ya2SvKaqjs8QQj9t86oEAAAAANizLWTAnCTd/aIkL1q2+toMs5kBAAAAANhki9oiAwAAAACABSdgBgAAAABgJgJmAAAAAABmImAGAAAAAGAmAmYAAAAAAGYiYAYAAAAAYCYCZgAAAAAAZiJgBgAAAABgJgJmAAAAAABmImAGAAAAAGAmAmYAAAAAAGYiYAYAAAAAYCYCZgAAAAAAZiJgBgAAAABgJgJmAAAAAABmImAGAAAAAGAmAmYAAAAAAGayw4C5qvbdVYUAAAAAALC1rDWD+fNV9Y9V9byqut8uqQgAAAAAgC1hn3Vsf0ySRydJVX0hyZuTnJXkX7r7/I0tDwAAAACARbVWwHzbJA9L8shxOTzJU5J8f5JU1SUZwuazkpzV3ZdtXKkAAAAAACySHQbM3f3V3BQgp6puneSI3BQ4f3eS45L86Lj9oxlmNj9nA2sGAAAAAGABrDWD+Rt09xeTnD4uqarb56aw+dFJ7p7kO5MImAEAAAAAdnNr3eRvLdsmljvtfDkAAAAAAGwVU81grqq756YZy0cmuV2SSnJZktMy3ADwzfMtEQAAAACARbTDgLmqDstNgfJRSQ7KECh/Jsm/JDk7yZu7+6MbWyYAAAAAAItmrRnMnxgfP5fkLRlnKHf3hza0KgCATbLtsO25+KIL5z7uodsOy0UXXjD3cQEAADbTWgFzJekkH0jyniTnJvnIRhcFALBZLr7owpxzWc993CMOqrmPCQAAsNnWCph/ODe1yHhJhrD5S1X11gyzmd/U3e/b2BIBAAAAAFhEOwyYu/svk/xlcmM/5kflphv8PT5JV9UXkpyTmwLn8zayYAAAAAAAFsNaM5hv1N0XJvmzcUlV3SPJ0RkC50ckOXZcf0V3Hzj/UgEAAAAAWCTrDpiX6+4PJ/lwVf1dku9L8rNJvjvJHedUGwAAAAAAC2zqgLmqbp/kqAwzl49OcpelTbnphoAAAAAAAOzm1gyYq+pWSY7ITYHyd2UIk5duhf7xJGcleVOGHsyf3ZhSAQC2rn332y9VtfaOUzh022G56MIL5jomAADANHYYMFfVO5IcnmTv3BQoX5rhhn5nJTmruy/e0AoBAHYD1117bc65rOc65hEHzTewBgAAmNZaM5gfnOTzSc7OOEu5uz+y0UUBAAAAALD41gqYD0/yvu6e73QbAAAAAAC2vL3W2P5vSX55VxQCAAAAAMDWslbAPHkzPwAAAAAAuNFaATMAAAAAAKxIwAwAAAAAwEwEzAAAAAAAzGSfdezzjKo6cooxu7uPnrEeAAAAAAC2iPUEzNvHZb16pkoAAAAAANhS1hMwn5Lk1A2uAwAAAACALWY9AfMF3X3OhlcCAAAAAMCW4iZ/AAAAAADMRMAMAAAAAMBMBMwAAAAAAMxkrR7Mz0zy/l1RCAAAAAAAW8sOA+buPnXyeVXdI8kDk9wxSSe5Ism7uvujG1YhAAAAAAALaa0ZzEmSqnp4kpcluc8q29+b5Dnd/a9zrA0AAAAAgAW2ZsBcVY9L8rdJ9kvylSTvSXJJkkpy5yT3H5c3VdWTuvvMjSsXAAAAAIBFscOAuapumeTPkuyb5FeT/HZ3f2nZPrdK8j+S/FKSV1TV3br7KxtULwAAAAAAC2KvNbY/LcmBSX6lu09cHi4nSXd/qbtfmOSFGWY0P3X+ZQIAAAAAsGjWCpgfl+TKJL+zjrF+J8nnkzx+Z4sCAAAAAGDxrRUwf0+St3T319YaqLuvTfKWJPeeR2EAAAAAACy2tQLmA5J8corxPp6hpQYAAGyIbYdtT1XNfdl22PbNfmsAALDl7PAmf0luneTqKcb7UpJbzV4OAADs2MUXXZhzLuu5j3vEQTX3MQEAYHe31gzmvZNM+7f3vWesBQAAAACALWStGcxJsr2qHrHO8bbvRC0AAAAAAGwh6wmYjxuX9ahMP+MZAAA23b777Zeq+bfJOHTbYbnowgvmPi4AACyCtQLmt0RgDADAHuC6a6/V2xkAAKa0w4C5u4/cRXUAAAAAALDFrHWTPwAAgKltO2x7qmquy7bDtm/22wIAYJn19GAGAACYysUXXTj3liPajQAALB4zmAEAAAAAmImAGQAAAACAmQiYAQAAAACYiYAZAAAAAICZCJgBAAAAAJiJgBkAAGAPtO2w7amquS/bDtu+2W8NANiF9pn2BVW1LcmPJrlvktsmuSrJe5K8qrsvnG95AAAAg3332y9VNfdxD912WIBfmNIAAB50SURBVC668IK5j7voLr7owpxzWc993CMOmv81AgAW11QBc1X9eJLfS3KzJJN/a3hykl+pqp/p7j+eY30AAABJkuuuvVYgCgCwYNbdIqOqjk7yR0muTfKSJI9Mco/x8deTfDXJH4z77bSqum1VvbaqPlJVH66qh1TV/lV1ZlWdPz7ebh7HAgAAAABgetP0YH5eki8muX93v7C7z+7uj46PL0xy/yRfGvebh5cl+afuvnuSeyf5cJIXJDmru++a5KzxOQAAAAAAm2CagPmBSV7T3R9faeO4/m/G/XZKVX1rkkck+bNx7K919xeSHJvk1HG3UzO05gAAAAAAYBNMEzDfPMln19jninG/nfXt41ivrKr3VdWfVtUtkxzQ3Zclyfh4p5VeXFXPqqpzq+rcK664Yg7lAAAAAACw3DQB84UZ+i3vyFFJLpq9nBvtk+R+Sf6wu++b5JpM0Q6ju0/u7sO7+/A73vGOcygHAAAAAIDlpgmY/y7JA6rq5VV128kNVXWbqnpZhvYYfzuHuj6V5FPd/a7x+WszBM6XV9VB4zEPSvKZORwLAAAAAIAZTBMw/+8kH0ny35NcWFVvqaq/rqpzMsxaPiHJR8f9dkp3fzrJxVX1neOqo5N8KMlpSY4b1x2X5A07eywAAAAAAGazz3p37O6rq+qhSf5Pkh9O8vCJzV9O8idJXtDdV8+pthOSvLqqbpbkE0memSEQf01VHZ8h1H7anI4FAAAAAMCU1h0wJ0l3X5XkJ6rq2UnunuQ2Sa5K8tHuvm6ehXX3+5McvsKmo+d5HAAAAAAAZrPugLmqtiX5Qndf3d1fT/LBFfa5dZLbdfc8bvQHAAAAAMACm6YH8yeT/Mwa+zxn3A8AAAAAgN3cNAFzjQsAAAAAAEwVMK/HAUmumfOYAAAAAAAsoB32YK6qH1226j4rrEuSvZNsS/Jfk/zHnGoDAAAAAGCBrXWTv1OS9PjnTnLsuCy31Drjy0lePJfKAAAAAABYaGsFzM8cHyvJK5K8PskbVtjv+iSfS/Kv3f2F+ZUHAAAAAMCi2mHA3N2nLv25qo5L8vru/vMNrwoAAAAAgIW31gzmG3X3URtZCAAAAAAAW8tem10AAAAAAABbk4AZAAAAAICZCJgBAAAAAJiJgBkAAAAAgJkImAEAAAAAmImAGQAAAACAmewzy4uq6pZJ7pbkVt391vmWBAAAAADAVjDVDOaqOqSqXpfk80nOTfLmiW0Pr6oPVdWR8y0RAAAAAIBFtO6AuaoOSvKuJMcmOT3JvyapiV3eleROSX5gngUCAAAAALCYppnB/KIMAfKjuvspSc6c3Njd1yV5a5KHza88AAAAAAAW1TQB8+OTnNbdZ+9gn4uS3HmnKgIAAAAAYEuYJmA+IMn5a+xzXZJbzl4OAAAAAABbxTQB85VJDl1jn7sl+fTs5QAAAAAAsFVMEzC/PcmTqurAlTZW1V2TPDbJm+dRGAAAAAAAi22agPm3knxLknOq6nFJbpEkVXXL8fnfJ7khye/MvUoAAAAAABbOPuvdsbvfVVXPSvJHSU6f2HT1+Pj1JP+tu8+bY30AAAAAACyodQfMSdLdr6yqtyX5qSQPTnL7JFcleWeS3+/uj86/RAAAAAAAFtFUAXOSdPf5SX52A2oBAAAAAGALWXcP5qq650YWAgAAAADA1jLNTf4+WFXvqqqfqqr9N6wiAAAAAAC2hGkC5jcmuV+Sk5JcWlV/U1XHVNXeG1MaAAAAAACLbN0Bc3c/NsmhSV6Q5GNJ/r8kb8gQNv/fqrr3xpQIAAAAAMAimmYGc7r70939W939XUkOT/IHSSrJc5O8t6reX1XP3YA6AQAAAABYMFMFzJO6+73d/Zwkd07y/Ulen+SeSX57TrUBAAAAALDAZg6YJ9wiyZ3GZZ8MM5oBAAAAANjN7TPLi6qqkjwmyXFJjk2yX5JOclaSU+ZVHAAAAAAAi2uqgLmq7pUhVP7hJAdmmK18fpJTk/x5d39q7hUCAAAAALCQ1h0wV9W5Se6bIVS+KsmfJjmlu/91g2oDAAAAAGCBTTOD+b5JzszQAuP13f3VDakIAAAAAIAtYZqA+dDuvnTDKgEAAAAAYEvZa707CpcBAAAAAJi06gzmqnrE+Md3d/dXJ56vqbvfstOVAQAAAACw0HbUIuPsJJ3kHkn+c+L5euy9U1UBAAAAALDwdhQw/2qGQPmzy54DAAAAAMDqAXN3n7ij5wAAAAAA7NnWfZO/qtpWVd+6xj63rqptO18WAAAAAACLbt0Bc5JPJvmZNfZ5zrgfAAAAAAC7uWkC5hoXAAAAAACYKmBejwOSXDPnMQEAAAAAWECr3uQvSarqR5etus8K65Jk7yTbkvzXJP8xp9oAAAAAAFhgOwyYk5ySpMc/d5Jjx2W5pdYZX07y4rlUBgAAAADAQlsrYH7m+FhJXpHk9UnesMJ+1yf5XJJ/7e4vzK88AAAAAAAW1Q4D5u4+denPVXVcktd3959veFUAAAAAACy8tWYw36i7j9rIQgAAAAAA2Fr22uwCAAAAAADYmtY9gzlJquqWSX4qyWOSHJxkvxV26+7+jjnUBgAAAADAAlt3wFxVt03ytiT3THJ1km9NclWSmyW5+bjbpUmum3ONAAAAAAAsoGlaZPxyhnD5+CS3G9f9bpJbJXlokvcm+XiSe8yzQAAAAAAAFtM0AfOTkrylu1/Z3b20sgfvTPL4JHdP8j/nXCMAAAAAAAtomoD50AyzlJfckIkezN39mST/mOTp8ykNANhdHHjwIamquS4HHnzIZr8tAACAPd40N/n7cpLrJ55fleTAZftcnuHmfwAAN7r80kuSY06Y75innzTX8QAAAJjeNDOYL84wi3nJh5I8oqr2nlj38CSfnkdhAAAAAAAstmkC5nOSHFFVNT7/6yTfkeQfqurZVfU3SR6c5Iw51wgAAAAAwAKapkXGqUluluSQDLOZ/yjJI5M8Ocmjx33enuSX51kgAAAAAACLad0Bc3e/N8lPTjz/epKnVNX9k9wlyQVJ/q27b5h3kQAAAAAALJ5pZjCvqLvfk+Q9c6gFAAAAAIAtZJoezAAAAAAAcKNVZzBX1QtnHLO7+9dmfC0AAAAAAFvEjlpknDjjmJ1EwAwAAAAAsJvbUcB81C6rAgAAAACALWfVgLm7z9mVhQAAAAAAsLW4yR8AAAAAADPZUYuMFVXV9yT5oST3SHLL7n7UuH57kgcmObO7Pz/HGgEAAAAAWEBTBcxV9atJfik3zXzuic17JfnLJM9NctJcqgMAAAAAYGGtu0VGVT09yS8nOTPJfZL878nt3f2JJOcmedI8CwQAAAAAYDFN04P5OUk+luTY7v5Akq+tsM+Hk9x1HoUlSVXtXVXvq6rTx+f7V9WZVXX++Hi7eR0LAAAAAIDpTBMwf3eSf+7ulYLlJZcmOWDnSvoGP5MhtF7ygiRndfddk5w1PgcAgN3egQcfkqqa+3LgwYds9lsDAGALm6YHcyW5YY19Dkjy1dnLmThY1SFJnpDkJUl+blx9bJIjxz+fmuTsJM+fx/EAAJi/Aw8+JJdfeslml7FbuPzSS5JjTpj/uKe7fQoAALObJmA+P8lDV9tYVXsneXiS83a2qNFLk/yPJLeeWHdAd1+WJN19WVXdaU7HAgDYo21oEDzvUFQgCgAAC2OagPk1SX69qn6+u39nhe2/mOQuSV62s0VV1TFJPtPd76mqI2d4/bOSPCtJtm3btrPlAACLaK+9U1WbXcVuY6NmxwqDAQBg9zZNwPzSJE9L8n+q6r8k6SSpqt9O8r1JDk/yziQnz6GuhyV5UlU9Psm3JPnWqnpVksur6qBx9vJBST6z0ou7++SlOg4//PCeQz0AwKK54XqBKAAAwCZb903+uvsrSY5K8hdJ7pfkgRn6Mv9ckvsneVWSx3b313e2qO7+xe4+pLu3J3l6kjd1948kOS3JceNuxyV5w84eCwAAAACA2UwzgzndfVWSZ1TVzyV5QJLbJ7kqybu7+4oNqG+530jymqo6PslFGWZUAwAAAACwCaYKmJd095VJ/nn5+qraP8kvdvfzdrawiWOdneTs8c+fS3L0vMYGAAAAAGB2626RsSNVdauqelGST2RomQEAAAAAwG5uzYC5qr6jqv6sqj5QVe+pqpdW1R0mtv90hmD5hUn2TfK7G1cuAAAAAACLYoctMqrqsCTvSnK7DDf0S5L7JHlkVT0syWuSPDrJ15L8QZL/1d2f3rhyAQAAAABYFGv1YP6lJPsnOSPJKRlC5uMzhMpnJ7lvktcm+fnuvnjDqgQAAAAAYOGsFTA/Msl53X3M0oqqel2SD2aYyfyy7v7ZDawPAAAAAIAFtVYP5kOSvGlyRXffkOTM8elvb0RRAAAAAAAsvrUC5v2SfG6F9VcmSXdfMveKAAAAAADYEtYKmAEAAAAAYEVr9WBOkiOr6pvWJUlV/UqGG/9N6u7+tZ0vDQAAAACARbaugHlcVvLiiT93hrC5kwiYAQCAPc6BBx+Syy+dbyfBA+58cD59yafmOiYAwLysFTC/eI3tAAAAjC6/9JLkmBPmO+bpJ811PACAedphwNzdAmYAAAAAAFbkJn8AAAAAAMxEwAwAAAAAwEwEzAAAAAAAzETADAAAAADATATMAAAAAADMRMAMAAAAAMBMBMwAAAAAAMxEwAwAAAAAwExmDpir6nFVdXZVXTEub66qx8yzOAAAAAAAFtdMAXNV/XiSf0hy5yRvSvKOJPdOckZVPXN+5QEAAAAAsKj2mfF1v5TkD7r7hKUVVXWbJG8bt71yDrUBAAAAALDAdjiDuap+s6r2W2HToUn+dnJFd1+V5I3jNgAAYCvYa+9U1dwXAAD2DGvNYD4+yZOq6vjufsfE+vOT/ERVvbO7v5IkVbU9yVOS/OdGFAoAAGyAG65Pjjlh7f2mdfpJ8x8TAICFs1YP5nsmOS/JW6rqpVV1i3H9Lyd5WpJLq+qdVfW+DMHyoeM2AAAAAAB2czsMmLv7M9391CRPH5f/qKqjuvt1SR6Q5Iwk+ybpJH+d5P7dfdoG1wwAAAAAwAJY103+uvu1VfWmJCcl+Zeq+pMkz+vuH97Q6gAAAAAAWFhrtci4UXdfOQbKxyZ5QpLzquqxG1YZAAAAAAALbd0B85LuPj3JvZKcmeSMqjqlqm4798oAAABI9to7VTX3BQBgHtZskVFVj0vy7CSHJbkwycu7+4wkx1fVXyU5OcmHquqnuvv1G1otAADAnuaG65NjTpj/uKefNP8xAYA9zg5nMFfVDyT5hyQPTXLN+Pj3VfWDSdLdZyb5riR/l+R1VfVXVXWHjS0ZAAAAAIBFsFaLjF9Kcl6S7d394CTbk3w4yQuWdujua7r72UmOSnK/cTsAAAAAALu5tQLmb0/yj919dZKMj2eM679Bd78lyfckOWXONQIAAAAAsIDWCpg/meRhVTW530OTXLDSzt391e5+3pxqAwAAAABgga11k7/fTPIXGW7i994k90ly9yTHbXRhAAAAAAAsth3OYO7uVyc5Nsknktw7yYVJvr+7/2IX1AYAAAAAwAJbawbz/9/e3cZaVpV3AP8/hQLBCdoWagSJ9gUJtLWaIFLapMX6QUos/WCNNKWm8pI2oGJsE0tbJdW+pA1iYpu0VBElNFVUlEmbEksk0VJfRjORGjqRINoCQfAVxamDrH44e+r19tyZuYt7z9l7zu+XrOx79l77Zp2zss5z53/m7J3W2s4kOxcwFgAAAAAAJuRg12AGAAAAAIC5BMwAAAAAAHQRMAMAAAAA0EXADAAAAABAFwEzAAAAAABdBMwAAAAAAHQRMAMAAAAA0EXADAAAAABAFwEzAAAAAABdBMwAAAAAAHQRMAMAAAAA0EXADAAAAABAFwEzAAAAAABdBMwAAAAAAHQRMAMAAAAA0EXADAAAAABAFwEzAAAAAABdBMwAAAAAAHQRMAMAAAAA0EXADAAAAABAFwEzAAAAAABdBMwAAAAAAHQRMAMAAAAA0EXADAAAAABAFwEzAAAAAABdBMwAAAAAAHQRMAMAAAAA0EXADAAAAABAFwEzAAAAAABdBMwAAAAAAHQRMAMAAAAA0EXADAAAAABAFwEzAAAAAABdBMwAAAAAAHQRMAMAAAAA0EXADAAAAABAl1EGzFV1clV9uKruqqrPVtWrh/0/XFUfqqrPDdsfWvZYAQAAAABW1SgD5iSPJXlta+20JGcluayqTk/yuiS3tdZOSXLb8BgAAAAAgCUYZcDcWnugtfbp4edHktyV5KQk5yd559DtnUl+bTkjBAAAAABglAHzWlX1zCTPTfLxJE9trT2QzELoJD+6vJEBAAAAAKy2UQfMVbUjyfuSXNFa+8Ymzru0qnZV1a6HHnpo+wYIAAAAALDCRhswV9UPZhYu39hae/+w+8Gqetpw/GlJvjTv3Nbata21M1prZ5xwwgmLGTAAAAAAwIoZZcBcVZXk7Unuaq29ec2hW5K8fPj55Uk+uOixAQAAAAAwc+SyB7CBn09yYZI7q2r3sO/KJH+R5D1VdVGSLyb59SWNDwAAAABg5Y0yYG6tfTRJbXD4lxc5FgAAAAAA5hvlJTIAAAAAABg/ATMAAAAAAF0EzAAAAAAAdBEwAwAAAADQRcAMAAAAAEAXATMAAAAAAF0EzAAAAAAAdBEwAwAAAADQRcAMAAAAAEAXATMAAAAAAF0EzAAAAAAAdBEwAwAAAADQRcAMAAAAAEAXATMAAAAAAF0EzAAAAAAAdBEwAwAAAADQRcAMAAAAAEAXATMAAAAAAF0EzAAAAAAAdBEwAwAAAADQRcAMAAAAAEAXATMAAAAAAF0EzAAAAAAAdBEwAwAAAADQRcAMAAAAAEAXATMAAAAAAF0EzAAAAAAAdBEwAwAAAADQRcAMAAAAAEAXATMAAAAAAF0EzAAAAAAAdBEwAwAAAADQRcAMAAAAAEAXATMAAAAAAF0EzAAAAAAAdBEwAwAAAADQRcAMAAAAAEAXATMAAAAAAF0EzAAAAAAAdBEwAwAAAADQRcAMAAAAAEAXATMAAAAAAF0EzAAAAAAAdBEwAwAAAADQRcAMAAAAAEAXATMAAAAAAF0EzAAAAAAAdBEwAwAAAADQRcAMAAAAAEAXATMAAAAAAF0EzAAAAAAAdBEwAwAAAADQRcAMAAAAAEAXATMAAAAAAF0EzAAAAAAAdBEwAwAAAADQRcAMAAAAAEAXATMAAAAAAF0EzAAAAAAAdBEwAwAAAADQRcAMAAAAAEAXATMAAAAAAF0EzAAAAAAAdBEwAwAAAADQRcAMAAAAAEAXATMAAAAAAF0EzAAAAAAAdBEwAwAAAADQRcAMAAAAAEAXATMAAAAAAF0EzAAAAAAAdBEwAwAAAADQRcAMAAAAAEAXATMAAAAAAF0EzAAAAAAAdJlkwFxVL6qqPVV1d1W9btnjAQAAAABYRZMLmKvqiCR/k+TcJKcnuaCqTl/uqAAAAAAAVs/kAuYkZya5u7V2T2vtO0n+Mcn5Sx4TAAAAAMDKqdbassewKVX1kiQvaq1dPDy+MMnzW2uXr+lzaZJLh4enJtmz8IGyWccneXjZg+CAzNH4maNpME/jZ47GzxxNg3kaP3M0fuZo/MzRNJin8TNH0/CM1toJ63ceuYyRPEE1Z9/3peSttWuTXLuY4bAVqmpXa+2MZY+DjZmj8TNH02Cexs8cjZ85mgbzNH7maPzM0fiZo2kwT+NnjqZtipfI+O8kJ695/PQk9y9pLAAAAAAAK2uKAfMnk5xSVT9WVUcleVmSW5Y8JgAAAACAlTO5S2S01h6rqsuT3JrkiCTXtdY+u+Rh8cS5pMn4maPxM0fTYJ7GzxyNnzmaBvM0fuZo/MzR+JmjaTBP42eOJmxyN/kDAAAAAGAcpniJDAAAAAAARkDADAAAAABAFwEzAAAAAABdBMxsq6p6VlX9SVV9rKoeqqpHqmp3Vf1hVT1pXd+rqqpt0H5vWc9hFRzgdf/mnL6nVtUHquqrVfWtqvpIVb1gGeNeFQdZG62q9h1iX+toi1TVH1TVTVV1z/Da3nuQ/oe8bqrqB6rqNVX1n1W1t6r+q6quXv+eyeapSdOgJo2fujQuatI0qUnToCaNn5o0LmrS6jpy2QPgsPeKJJcluSXJjUn2JTknyZuSvLSqzmqtfXvdOa9J8vC6fZ/a7oGSj+T/37V139oHVfUTSe5I8liSv0zy9SSXJLm1qs5trf3rIga6gt6f5O45+5+d5PeT7JxzzDraXn+W5CtJPp3kKQfq2LFurknyqiQ3J7k6yWnD4+dW1Qtba49v5RNZMWrSdKhJ46YujYuaNE1q0nSoSeOmJo2LmrSqWmuatm0tyRlJnjxn/5uStCSXr9l31bDvmcse96q14XW//hD6vSfJd5M8Z82+HUm+kGRPklr2c1mlluTvhrk7b80+62gxr/2Pr/n5P5Lce4C+h7xukvxUkseTvG/d73jlMK+/seznPuWmJk2jqUnTberS0l53NWmCTU2aRlOTptvUpKW97mrSijaXyGBbtdZ2tda+PufQu4ftT887r6qOqyr/w37BquqoqtqxwbEnJfnVJLe31nbv399a+2aStyV5VpLnLWSgpKqOTfKyJPcl+ZcN+lhH26S1ds+h9OtYNxckqSRvWfer/j7Jo0l+8wkMe+WpSdOiJk2LurQ8atI0qUnToiZNi5q0PGrS6hIwsyxPH7YPzjn2mcy+GrG3qu6oqnMXN6yV9pLM3pgfqaovVdVbq+rJa44/O8nRSf59zrkfG7b+cFqclyY5Lsk7WmvfnXPcOhqHza6b52X2yfwn1nZsre1NsjvW2HZRk8ZHTZoedWn81KRpUJPGR02aHjVp/NSkw4xPa1i4qjoiyeszu87OP6w59LXMrm11R5KvJjk1yRVJ/qmqXtFau37BQ10ln0hyU2bXrjouya8kuTzJL1bV2cOniCcOfe+bc/7+fSdt90D5Pxdl9lWg69btt47GZbPr5sQkD7fW/meD/mdX1VGtte9s4RhXmpo0SmrSNKlL46cmjZyaNEpq0jSpSeOnJh1mBMwsw1uSnJXkytbanv07W2vrv+qQqrous+v2XFNV7x0KOFustfb8dbveVVWfSfKnSV49bI8djs17Q987bI+dc4wtVlWnJvmFJLe11j6/9ph1NDqbXTfHbtB3fX9/OG0dNWlk1KTpUZcmQ00aPzVpZNSk6VGTJkNNOsy4RAYLVVVvzOwT32tba39+sP6ttS8n+dvM7j569jYPj+/3V5m9OZ83PH502B49p+8x6/qwvS4atm87lM7W0VJtdt08ukHfjfrzBKhJk6ImjZu6NA1q0oipSZOiJo2bmjQNatJhRsDMwlTVVUn+KMk7kvzOJk69d9gev8VD4gBaa/uS3J/vve73D9t5X+/av2/e11vYQsONKH4ryVeS3LyJU+8dttbRYm123dyf5PiqmvfH00mZfS3Mp/JbQE2aFjVpvNSlSVGTRkpNmhY1abzUpElRkw4zAmYWoqrekOQNSd6V5OLWWtvE6acM23k3umCbVNUxmd1kZP/rfmdmX0n5uTndzxq2uxYwtFX34iRPTXLDBtef2oh1tBybXTefzKw2n7m247AenxNrbEuoSdOjJo2aujQdatIIqUnToyaNmpo0HWrSYUbAzLarqtcnuSrJDUl+u7X2+Jw+R667E+/+/Scn+d0kX87sQvxssar6kQ0OvTGz67TvTJLhWlQ7k/xSVf3smvN3JLk4yeey7o6ubIv9X/l6+/oD1tH4dKybd2d2Q5Ir1v2qSzK7ptiN2zrgFaAmjZuaNEnq0kSoSeOjJo2bmjRJatJEqEmHn9rcB6SwOVV1WZK/TvLFJH+cZP0fTQ+21j5UVU9J8vkkH0hyV753R9eLk+xIckFr7aaFDXyFVNU1mX1C+OHM5mlHZndHPifJx5Oc01r79tD3JzN7k9+X5Jok38jsDf1nkpzXWrt14U9ghVTViZnN0afm3HAk1tHiVNWFSZ4xPHxlkqOSXD08/kJr7YY1fTe1bqrqrZldg/HmJP+c5LQkr0ryb0leMO8fnxwaNWn81KRpUZfGQU2aJjVp/NSkaVGTxkFNWmGtNU3btpbk+sw+Zdqo3T70Ozqzi/Dfmdkb/b4kDyR5b5Izl/08DueW5Pwkt2Z2faO9Sb6VZHeSK5McM6f/aUk+mORrmV1E/6NJXrjs57EKbZiTluSSDY5bR4ubi9sP9r62rv8hr5skRyR5bZI9mX1t7L4kb06yY9nPe+pNTRp/U5Om1dSlcTQ1aZpNTRp/U5Om1dSkcTQ1aXWb/8EMAAAAAEAX12AGAAAAAKCLgBkAAAAAgC4CZgAAAAAAugiYAQAAAADoImAGAAAAAKCLgBkAAAAAgC4CZgAAAAAAugiYAQAAAADoImAGAAAAAKDL/wJrFJpYJMvm4wAAAABJRU5ErkJggg==\n",
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAAHwCAYAAAC7apkrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3dd7gkZZn38e/NEBRQgoSBGWAMKGBAdFREFBBWRVHU14ARFcVdCeYV3VUx7bprXowYAMOqBAVEDDhERUHSqggIwpAGYQQBBcn3+8dTx3lo+pzuntPpnPl+rquvPqequuquqq4+v1P91FORmUiSJEkqVhp1AZIkSdI4MSBLkiRJFQOyJEmSVDEgS5IkSRUDsiRJklQxIEuSJEkVA7I0RBGxf0T8PiL+HhEZEW8ZdU0rsojYsdkPB65Iy54pmu1z8qjrWFFExIHNNt9xDGpZHBGLR12HVlwrj7oAaVgiorXT73uAvwC/Ab6amd8a8PL3AD4DnAt8Grgd+NUglylJknpnQNaK6APN8yrAI4DnAztFxOMz820DXO5uE8+ZuWSAy9HMcCawJfDnURcyxrYEbh11ERqJnUddgFZsBmStcDLzwPr3iNgZOAF4S0T8T2YuHtCiN26WbzgWmXkrcOGo6xhnmen2WUFl5h9HXYNWbLZB1govMxdRgkoAT5gYHhHzI+KzEXFpRNweEddHxLER8YTWedRt9yLi5RFxRkT8rWlHd2DTvGOnZtqceLTMY+eI+HFE3BARt0XEHyLioxGxVpvlndzMY9WIeF9EXNTUeGjL+FWa8X9s5nlhRLyhms8/R8RvmzbRV0XEByLiPp8LEfGaiDiq2RZ/j4ibI+IXEfHKdtu0Wv7KEfGeiLi4qe/KiPiviFh1ktdtERFfa7bb7RFxXUScFhH/Msm0hzbzvD0iro2I/42IR7SbdycR8eSI+FlE3BQRf42In0TEwpZpPtqs16snmcfjm/E/6GJ5bdsgD3rbTbTrjYi5EfGViLg6Iu6OiNdU0zwpIo6MiD9FxB3Nsr8UERtPss6fiYj/q967F0fEJyJinTbTrxqlLf45EfGXiLi1qfmYiNilXa0tw+pj7UURcWYzjxsi4jsRMW+S7fOEiPhps29vbvb1k6PHdrcRsWFEfDzKMXdLRNzY/HxoRDykZT33jYjjI+LyZp/c0Cx310nmvbh5rBkRn2q2+98j4ryIeH4zTf2+uC3Ksb1vm3n94/3VzXu7i/We9vEWxZ4RcXpELG3qv7Kp56XttkX1+4KoPjsnebymZR5df4ZLrTyDLBXRPCdARDwO+CmwLvAT4HvAepTmGD+PiBdk5vFt5vN24J+AHwAnAWsBJzfjXgNsxrImHssWHvFG4AvALcARwHXAjsC7gOdGxFMy88Y2yzuKEup/BBzdvK72HeBJwPHAncCLgIMj4k7gMcCewHHAIuB5wPsoX2n/V8t8vgD8HjgVuAZ4EPBs4BsR8YjMfG+b2gD+F3hqU9/NzWv+FdgAeG3LNnhOs+6rAT8Gvg2sDWzdvOYL1bTPouyTVSjb+hJgPvBC4DkRsVNmnjNJTe08CXg38DPgc8DDmnk9LSKekZmnNdN9EXgn8Ebg623m88bm+Us9LHsyA9l2jXUp7d//RtmO9wDXNvN6LfBlShv5Y4Ergc2B11Pei9tm5hXVvN4AvAA4hbL95gCPA94G7BoRT8rMv1bTHwq8DPgdZRv+nfLtyvbAs5p5dONNlPfssc2ynwS8FNg6Ih6bmbdX2+eplON5Fcox80fg0ZRj9MQul0dErA78Ango5VunH1A+OzYDdgeOBC5tJl+Xcs3B6c20S4GNgOcCx0fEGzLzK20Ws0oz/brAMcCqlO11VEQ8o1nvJ1HeF7cDLwYOioilmfndNvPr9r091Xr363j7SFPLZcDhwE2UbfKEZj3a1T/hRtp8djb2pXwm/aM5zjQ+w6UiM334WCEelPCbbYbvQgkI91D+0K1M+QNwG7BDy7QbA1dTQuJq1fADm/nfAmwzyfJPnmT5m1H+0N0MbNEy7vPNfA9uNy/KBYbrTbYs4NfA2tXwhwB3UC5OvAyYV41bm9Iedimwcsv8HtpmGatSgvWd9Xxaln82sG41fI1m294NzK2Gr0f5Y3lH6zZvxs+vfl6nqf/PwFYt0z2SEvrO6fI9sePE+wLYt2Xc7s3wi4GVquHHNcMf3TL9msBfgSuAOT0s+8Bhbbv6OKCE09b9/PBmPpe02adPb5b9/Tbv3/usL7BXs5x3VcPWohxnZ03ymge1qfXklmEHNsNvbrMP/rcZ95Jq2ErNPkxg15bp/7naHjt2sc+e20z7qUmOhwdUv6/Wuu2rbfA74Abg/i3jFjfz/wH3/nx5ajP8BiY/ps/tw3t7YtvuWA3r5/F2PXAVsHqbceu1/L4YWNzFPD/Q1HzUxLqwHJ/hPny0PmxioRVO85XjgRHxkYg4knLGLYBPZ+blwHMoZ4gOysxT6tdmaT/838Bc2l9EcnBmnttjSa+k/HH9bN63zeW/UULXqyJitTavfW9mTnWR1wFZnXnOzEuBn1PC8Icy8+pq3I2UP8zrAff6mjrbtAfMzDsoZ6RWZvILat6VmTdUr7kF+BYltNRf8e4JPBD4Qus2b153VfXrq5v635+Zv2+Z7nzK2c9tImKrSWpq5xLKPyP1vI6hnJl8GCWgTJg4G7t3yzxeQQnJX8nMu3tY9mQGse0m3AG8IzPvahn+L5SzhG+u3xvNfE6knK19bkQ8oBp++STr+zVKiH1mPRvKsXY7JSi31np9m/lM5n8y87ctw77cPD+xGrYdZR+elJk/apn+YOAPPSxzwt9bB2TmHVmdKc/M29tt+8y8ibJt1qFq0tXiLVmdAc9ylvey5jXvanNM/wJ4dETMaTOvXt7b7fT7eLuT8o/WvXT4HGsrSlOn91EueH1lZk68p6bzGS4BNrHQiun9zXNSvrY7jdLN2zeb4U9unjeL9n3Ubt48b0lpulA7cznqeVzzfJ+vejPzLxFxLvA0YAvg/3pc3llthk1cJHh2m3EToWg+cPnEwIjYlNLcY2dgU+D+La9r2+5zkuVf2TzX7VO3bZ5bA0w7E/tn60n2z8Ob5y0pzUK6cVr1x7V2MrADsA0lUEzUeBnln5Z3ZbnYDkpgvhto97X58hjEtpuwODNbm+PAsm27wyTtNDegNKF4OM37JyJWoTQt2QPYinKGtD758o/3RmbeHKV99nOB8yLiKMrxd0a1HbvV7fbZpnn+eevEmXlPRJzOsvdMJ6dQjpEDmq/wj6eE0/Pa/ZMQEY+kNMl5GqUpwf1aJml33NzY7h9SynH7YCY/budQQt/VLeN6eW+308/j7VvAfsD5EXFEs9xfNv809CQidqIca5cBz83M+p+W6XyGS4ABWSugzIwOkzyoeX5xh+nWbDPsT71XxMRFeNdMMn5i+Nq9Lm+SPzwTZw2nGrfKxIDmwqMzKaHjNEq7vpsoYXAB5Qxmu7PbZPt20xPLqM92Taxb6x/3dib2zxumnKr9/pnMtZMMn9i+/7hQsglVXwI+SmnzekhEPJ7yj87R2adeSga07SZM9r6Z2Lbv7PD6ett+l9IG+VJKm9k/Uc4QA7yF+743Xkr5Z+vlLGtTelvzbc47MnOyfdGq2+0zse8mm2+3y5sI+NtS6n4ey86O/zkiPg98ODPvBGimO5Hyd3YR5ez7zZQz54+lNHNod9xMFhbvamro6ritdP3enkQ/j7e3Utp/vw44oHncFRHHA2/PzEu6mAcRsSWlTfEtwHPa/LM3nc9wCTAgS+1M/AHaPTOP7fG1rTcj6WV5c4Hz24zfqGW6ZQvLXJ7l9eptlD84r83MQ+sREfEySkCeromwMw9o/dq81cR22Dozf9OHZQNsOMnwuS3LnPA1Skh6I3AI/b04r1e9bLsJk71vJtZzrcy8udNMmp4QXkC5AOzZE+GwGbcS5QLBey+4nOk7EDgwIjahnF19DaWp0QI6f+Xfq4n1mGwfTza8rabZxF4REZQz5k8H9qF81b8SMHHB6r9TvmnZKTNPrucREe+mBORh6PW93apvx1tzlv0zwGciYgPKhZl7UILsIyPikXXTknaa1/2Q0ib/mZl5wRQ1L89nuATYzZvUzsTd7fr9h3oyE22Wd2wdERFrU8423Qa0+0MwDA9rno9qM26HPi1jYpu37f5qkmn7uX+2jzbd27Fsn9yrXXlmLqX0WPCkiHgKpZeBxZSz68PWy7brdl7dbtuJ98axdThuPJH7NsW5l8y8MssdLJ9JuWBs+4h40FSvWQ4T+2771hHNPt9ueWaaxfmZeRCl5xooPSRMeBhwQ2s4bvTruOlGT+/tNgbyeZiZ12Xm9zLzJZQz7Q8FHjXVayLi/pTrJB4MvD4zT5pk0mF/hmsWMiBL93UM5WvAfSLi2e0maPoVXb1Py/sm5cKV/SLiYS3jPkS5AOubnc6sDNDi5nnHemBEPJPS9Vc/HEY50/cvEfG01pERMb/69RDKWdP3R8QT20y7UnTZp21lc0r3WfV8dqcEmUsoTUtaTVys913KV7UHT9LWc9B62XadfJbyXvxURNynXW6Uvn3r0LG4ed6xZboNKBdwtr5+/Yh4UpvlrgE8gNJU4I4e6u3GLyjH805x3/6H96b79sdExKMiYkGbURNnaet21IuBdSPiMS3z2It7X7g4aMvz3q715XiLiNWi9PUeLcNXoXTFBlPcNbEJ+d+k/OP1gcxs183ihGF/hmsWsomF1CIz74yIF1L6zvxhcxHPeZQP700oV54/hNL0Ydq3wc3MxRHxFkqgOCciDqd0tbYD5WKTCyltNkfl85R+d49oLqq6mnKm51mUvkxfOsVru5KZf46Il1POyp4UET+idGH3QEp/zZtQzhqRmddHxIuA7wO/iohFlKYp91AuIHwypUlI6wVRU/kx8IkmQP0fy/qKvQ3Yq13wzcxfRMT/UfoavpPS7GLoetl2Xczrwoh4HWVdzo+IH1N6eViFsm2fSnlvbtG85NeUAPrC5jj5OSUs7gpcxLILQifMo+yzC4BzKBfVPZByG/a5lJ4p/kofNW3GX0/Zx8c27+E/UrbNP1EubtyVNr1qtLEL8MlmXS+k9Ds+n9Jc4h7gY9W0n6YE4Z83x/RNlN5HtqfsqxdNf+260vN7u9bH4+3+lKY4iyPiDMpFwPej7IMtKd9CTPUt2Yuauq+H0htRm2mOzszzhv0ZrtnJgCy1kZm/iYitKe1vd6MExHsoF8ydS+kJo+duiaZY3ucj4hLgHcD/A1anhIePAf8xyQVbQ9Fsi52AD1NuVrEy5Q/tCylnlqYdkJvl/LBp0zrRW8YzKP2vXgj8Z8u0i5ozc++ghJCnUs48LqF8XduuOchUzgA+SDljvy+lK7ITgX/LzF9P8bpDKEHomB4uLuu7XrZdF/P6ZhP83065++MzKBdDLaEEu+9W094dEc9j2Xtjf8o/UF9phrX2arCYcuzs2Mx7PUrfvhdRLtj6Ti+19rBOJ0fEDk1Nz2kGn9HU8Irm945trimB69OUdtO7U8L9NZQbe3wyM0+vlvnjiHgupS3ySykXtZ7ZLPMhDC8gL+97+x/6dLzdQnl/7kRp1vJ8SheWf6R0L9jpH8yJs70PYllPRK0WU4Lw0D/DNfvEcK7xkaTZJ8qtvfcEdslyy3LNMBHxC8rd5tZq+pqeFZpmDydRmiMcONpqpJnHNsiStByaHhj2oFw82fXtijV8EbF6c8Fr6/DXUM5m/nQ2hWNJ02cTC0nqQdPe9+GUcLwa5W6GfhU33jYFzo2IEygXpq1MuUHG9pRmQm8fYW2SxpABWZJ6szelDeqVwFszs9f2zhq+ayl3cduB0gZ2NcqNMg4BPjLJneskrcBsgyxJkiRVZv0Z5PXWWy8XLFgw6jIkSZI0Zs4+++w/Z+b6rcNnfUBesGABZ5111qjLkCRJ0piJiMvbDbcXC0mSJKliQJYkSZIqBmRJkiSpYkCWJEmSKgZkSZIkqWJAliRJkioGZEmSJKliQJYkSZIqBmRJkiSpYkCWJEmSKgZkSZIkqWJAliRJkioGZEmSJKliQJYkSZIqBmRJkiSpYkCWJEmSKiMNyBHxtYi4LiJ+Vw1bNyJOiIiLm+d1qnHvjohLIuKiiHjmaKqWJEnSbDbqM8iHAs9qGXYAsCgzNwcWNb8TEVsBewCPbF7z+YiYM7xSJUmStCIYaUDOzFOBG1oG7w4c1vx8GPD8avh3MvP2zLwMuAR44lAKlSRJ0gpj1GeQ29kwM68BaJ43aIbPA66spruqGXYfEbF3RJwVEWctXbp0oMUOy6abLSAiunrcf/U1uppu080WuB6ux9jWJqk/uj3Ox/mzyvWYuesxU/9+rDzqAnoQbYZluwkz82DgYICFCxe2nWamufKKyznlmu5WZYeNoqtpd9io3SYdLNdj6umGrdv1GEVtkvqjl+N8nD8PXI/JpxuF2f73YxzPIF8bERsBNM/XNcOvAjapppsPLBlybZIkSZrlxjEgHwvs2fy8J3BMNXyPiFgtIh4MbA6cOYL6JEmSNIuNtIlFRHwb2BFYLyKuAt4PfBQ4PCL2Aq4AXgyQmedHxOHA74G7gH0y8+6RFC5JkqRZa6QBOTNfNsmonSeZ/iPARwZXkSRJklZ049jEQpIkSRoZA7IkSZJUMSCrL+bOm99Vf4jjbrashyRJWn4zqR9kjbFrl1wNu+3XecLjDhp8MdMwW9ZDkiQtP88gS5IkSRUDsiRJklQxIEuSJEkVA7IkSZJUMSBLM0i3vWzMnTd/1KVKkjRj2YuFNIN028vGtfayIUnScvMMsiRJUhuz5Vu72bIew+QZZEmSpDa6/tbu+M+P9U2k/PaxdwZkSZKk6bjn7u5uMgXeaGqGsImFJEmSVDEgS5IkSRUDsqbUbcN+SZJ61e3fGP/OaNhsg6wpdduwf9zbVM2dN7+siyRpbHT9NwbG/u+MZhcDslYIsyXoS5KkwbOJhSRJklQxIEuSJEkVA7IkSZJUMSBLkiRJFQOyJEmSVDEgS5IkSRUDsiRJ6itvMqWZzn6QJUlSX9n3vGY6zyBLkiRJFQOyJEmSVDEgD0i37a/mzps/6lI1G600x/Z/kqTedPm3Y0X4+2Eb5AHptv3Vtba/0iDcc7ft/yRJven2bwfM+r8fnkGWJEmSKgZkSZLGhM3zpPFgEwtJksaEzfOk8eAZZEmSJKliQJYkSZIqBmRJkiSpYkCWJEmSKgZkSZIkqWJAliRJkioGZEmSJKliQJYkSZIqBmRJkiSpYkCWJEmSKgZkSZIkqbLyqAtY4a00h4gYdRWSJElqGJBH7Z67Ybf9Ok933EGDr0WSJEk2sZAkSZJqBmRJkiSpYkCWJEmSKgZkSZIkqWJAliRJkioGZEmSJKliN2+SJM009qEvDZQBWZKkmabbPvTBfvSl5WATC0mSJKliQJYkSZIqBmRJkiSpYkCWJEmSKgZkSZIkqWJAliRJkioGZEmSJKliQJYkSZIqBmRJkiSpYkCWJEmSKgZkSZIkqWJAliRJkioGZEmSJKliQJYkSZIqBmRJkiSpYkCWJEmSKgZkSZIkqWJAliRJkioGZEmSJKliQJYkSZIqYxuQI+KtEXF+RPwuIr4dEfeLiHUj4oSIuLh5XmfUdUqSJGl2GcuAHBHzgP2BhZn5KGAOsAdwALAoMzcHFjW/S5IkSX0zlgG5sTJw/4hYGVgdWALsDhzWjD8MeP6IapMkSdIsNZYBOTOvBj4OXAFcA9yUmT8FNszMa5pprgE2aPf6iNg7Is6KiLOWLl06rLIlSZI0C4xlQG7aFu8OPBjYGFgjIl7Z7esz8+DMXJiZC9dff/1BlSlJkqRZaCwDMrALcFlmLs3MO4HvAdsB10bERgDN83UjrFGSJEmz0LgG5CuAbSNi9YgIYGfgAuBYYM9mmj2BY0ZUnyRJkmaplUddQDuZeUZEHAmcA9wFnAscDKwJHB4Re1FC9ItHV6UkSZJmo7EMyACZ+X7g/S2Db6ecTZYkSZIGYlybWEiSJEkjYUCWJEmSKgZkSZIkqWJAliRJkioGZEmSJKliQJYkSZIqBmRJkiSpYkCWJEmSKgZkSZIkqWJAliRJkioGZEmSJKliQJYkSZIqBmRJkiSpYkCWJEmSKgZkSZIkqWJAliRJkioGZEmSJKkyZUCOiFWGVYgkSZI0DjqdQf5LRPwoIt4ZEY8bSkWSJEnSCK3cxfhnAs8AiIgbgZOARcDPMvPiwZYnSZIkDVengLw28BTg6c1jIfBC4AUAEXE1JSwvAhZl5jWDK1WSJEkavCkDcmbexrIATEQ8ANiBZYH50cCewKub8RdRzizvP8CaJUmSpIHpdAb5XjLzr8BxzYOIeBDLwvIzgC2ARwAGZEmSJM1I0+3mbdPqscH0y5EkSZJGq6czyBGxBcvOGO8IrAMEcA1wLOUCvpP6W6IkSZI0PFMG5IjYjGWBeCdgI0ogvg74GXAycFJmXjTYMiVJkqTh6HQG+dLm+XrgVJozxJn5+4FWJUk92HSzBVx5xeUdp9tk08244vLFgy9IkjSjdQrIASTwG+Bs4CzgwkEXJUm9uPKKyznlmuw43Q4bxRCqkSTNdJ0C8itY1sTiI5Sw/LeIOI1yNvnEzDx3sCVKkiRJw9OpH+RvA9+Gf7RH3oVlF+g9G8jm7nqnsCwwnz/IgiVJkqRB6roXi8y8HPhq8yAitgR2pgTmpwG7N8OXZubc/pcqSZIkDV5P3bzVMvMC4IKI+D7wT8BbKXfWW79PtUmSJElD13NAbu6etxPlzPHOwMMmRrHsgj5JkiRpRuoYkCNiTWAHlgXiR1HC8MTl4H8EFgEnUtog/3kwpUrS9Kyy2mpEdNeThV3CSdKKq9ONQk4HFgJzWBaIl1AuyFsELMrMKwdaoST1yZ23395Vd3Bgl3CStCLrdAZ5W+AvlDvmLaKcIbYfZEmSJM1anQLyQuDczOzulIskSZI0w63UYfyvgX8fRiGSJEnSOOgUkOuL8SRJkqRZr1NAliRJklYoBmRJkiSpYkCWJEmSKt3cSe81EbFjD/PMzNx5OeuRJEmSRqqbgLygeXTLLuEkSZI0Y3UTkA8FDhtwHZIkSdJY6CYgL87MUwZeiSRJkjQGvEhPkiRJqhiQJUmSpIoBWZIkSap0aoP8WuC8YRQiSZIkjYMpA3Jm3qv3iojYEngisD6lO7elwBmZedHAKpQkSZKGqJteLIiI7YHPAI+dZPw5wP6Z+cs+1iZJkiQNXceAHBG7At8DVgP+DpwNXA0EsDHw+OZxYkQ8LzNPGFy5kiRJ0mBNGZAjYg3gq8AqwAeBj2fm31qmWRP4V+A9wNci4uGZ+fcB1StJkiQNVKdeLF4MzAXem5kHtoZjgMz8W2a+D3gf5Yzyi/pfpiRJkjQcnQLyrsANwCe6mNcngL8Az55uUZIkSdKodArIjwFOzcw7Os0oM28HTgW27kdhkiRJ0ih0CsgbApf1ML8/UppkSJJ6tOlmC4iIjo9NN1sw6lIlaVbr1IvFA4Cbe5jf34A1l78cSVpxXXnF5ZxyTXacboeNYgjVSNKKq9MZ5DmUG4L0Ys5y1iJJkiSNXDc3ClkQEU/rcn4LplGLJEmSNHLdBOQ9m0c3gt7POEuSerDKaqsR0V0zi0023YwrLl882IIkaZbpFJBPxcArSWPlzttv76qtMtheWZKWx5QBOTN3HFIdkiRJ0ljodJGeJEk9sbs6STNdN22QJUnqmt3VSZrpPIMsSZIkVQzIkiRJUsWALEmSJFUMyJIkSVLFgCxJkiRVDMiSJLVhd3XSiqvnbt4iYlPg1cA2wNrATcDZwDcz8/L+lidJmq26vWX2qG6XbXd10oqrp4AcEW8A/gdYFag/EZ4PvDci3pyZX+pjfZKkWarbW2YbQCUNW9dNLCJiZ+CLwO3AR4CnA1s2zx8GbgM+10w3bRGxdkQcGREXRsQFEfHkiFg3Ik6IiIub53X6sSxJkiRpQi9tkN8J/BV4fGa+LzNPzsyLmuf3AY8H/tZM1w+fAX6cmVsAWwMXAAcAizJzc2BR87skSZLUN70E5CcCh2fmH9uNbIYf0Uw3LRHxQOBpwFebed+RmTcCuwOHNZMdRmnaIUmSJPVNLwH5/sCfO0yztJluuh7SzOuQiDg3Ir4SEWsAG2bmNQDN8wbtXhwRe0fEWRFx1tKlS/tQjiRJklYUvQTkyyntjaeyE3DF8pfzDysDjwO+kJnbALfQQ3OKzDw4Mxdm5sL111+/D+VIkiRpRdFLQP4+8ISI+HxErF2PiIi1IuIzlOYV3+tDXVcBV2XmGc3vR1IC87URsVGzzI2A6/qwLEmSJOkfegnI/wlcCPwzcHlEnBoR342IUyhnjfcDLmqmm5bM/BNwZUQ8ohm0M/B74Fhgz2bYnsAx012WJEmSVOu6H+TMvDkitgP+G3gFsH01+lbgy8ABmXlzn2rbD/hWRKwKXAq8lhLoD4+IvSih/MV9WpYkSZIE9HijkMy8CXhjROwDbAGsRbmT3kWZeWc/C8vM84CFbUb1pZ9lSZIkqZ2uA3Jzi+kbM/PmzLwL+F2baR4ArJOZ/bhQT5IkSRq6XtogXwa8ucM0+zfTSZIkSTNSLwE5mockSZI0a/USkLuxIaXPYkmSJGlGmrINckS8umXQY9sMA5gDbAq8Cvhtn2qTJEmShq7TRXqHAtn8nMDuzaPVRNOLW4EP9KUySZIkaQQ6BeTXNs8BfA04mvY357gbuB74ZWbe2L/yJEmSpOGaMiBn5mETP0fEnsDRmfn1gVclSZIkjUgvd9LbaZCFSJIkSeOg371YSJIkSTOaAVmSJEmqGJAlSZKkigFZkiRJqhiQJUmSpIoBWZIkSap03c1bLSLWAB4OrJmZp/W3JEmSJGl0ejqDHBHzI+Io4C/AWcBJ1bjtI+L3EbFjf0uUJEmShqfrgBwRGwFnALsDxwG/pNyCesIZwAbAS/tZoCRJkjRMvZxBfj8lAO+SmS8ETqhHZuadwGnAU/pXniRJkjRcvQTkZwPHZubJU0xzBbDxtCqSJEmSRqiXgLwhcHGHae4E1lj+ciRJkqTR6iUg3wBs0mGahwN/Wv5yJEmSpNHqJSD/AnheRMxtNzIiNgeeRYiRREEAABY8SURBVNWzhSRJkjTT9BKQPwbcDzglInYFVofSJ3Lz+w+Ae4BP9L1KSZIkaUi6vlFIZp4REXsDX6R08zbh5ub5LuB1mXl+H+uTJEmShqqnO+ll5iER8XPgTcC2wIOAm4BfAZ/NzIv6X6IkSZI0PD3fajozLwbeOoBaJEmSpJHr5U56Ww2yEEmSJGkc9HKR3u8i4oyIeFNErDuwiiRJkqQR6iUg/xR4HHAQsCQijoiI3SJizmBKkyRJkoav64Ccmc+i3CjkAOAS4P8Bx1DC8icjYuvBlChJkiQNTy9nkMnMP2XmxzLzUcBC4HNAAG8BzomI8yLiLQOoU5IkSRqKngJyLTPPycz9gY2BFwBHA1sBH+9TbZIkSdLQLXdArqwObNA8VqacUZYkSZJmpJ77QQaIiACeCewJ7A6sBiSwCDi0X8VJkiRJw9ZTQI6IR1JC8SuAuZSzxRcDhwFfz8yr+l6hJEmSNERdB+SIOAvYhhKKbwK+Ahyamb8cUG2SJEnS0PVyBnkb4ARKE4qjM/O2gVQkSZIkjVAvAXmTzFwysEokSZKkMdDLjUIMx5IkSZr1Jj2DHBFPa348MzNvq37vKDNPnXZlkiRJ0ghM1cTiZErXbVsCf6h+78acaVUlSZIkjchUAfmDlED855bfJUmSpFlr0oCcmQdO9bskSZI0G3V9kV5EbBoRD+wwzQMiYtPplyVJkiSNRtcBGbgMeHOHafZvppMkSZJmpF4CcjQPSZIkadbqJSB3Y0Pglj7PU5IkSRqaKe+kFxGvbhn02DbDoHTrtinwKuC3fapNkiRJGrpOt5o+lGVduyWwe/NoNdH04lbgA32pTJIkSRqBTgH5tc1zAF8DjgaOaTPd3cD1wC8z88b+lSdJkiQN15QBOTMPm/g5IvYEjs7Mrw+8KkmSJGlEOp1B/ofM3GmQhUiSJEnjoN+9WEiSJEkzWtdnkAEiYg3gTcAzgXnAam0my8x8aB9qkyRJkoau64AcEWsDPwe2Am4GHgjcBKwK3L+ZbAlwZ59rlCRJkoamlyYW/04Jx3sB6zTDPgWsCWwHnAP8EdiynwVKkiRJw9RLQH4ecGpmHpKZE30jk8WvgGcDWwD/1ucaJUmSpKHpJSBvQjlLPOEeqjbImXkd8CNgj/6UJmm2mjtvPhHR8TF33vxRlypJWgH1cpHerZQbgky4CZjbMs21lIv3JGlS1y65Gnbbr/N0xx00hGokSbq3Xs4gX0k5izzh98DTImJONWx74E/9KEySJEkahV4C8inADhERze/fBR4K/DAi9omII4BtgeP7XKMkSZI0NL00sTiM0qXbfMrZ5C8CTweeDzyjmeYXlN4uJEmSpBmpl1tNnwP8S/X7XcALI+LxwMOAxcCvM/OefhcpSZIkDUtPd9JrJzPPBs7uQy2SJEnSyPXSBlmSJEma9SY9gxwR71vOeWZmfmg5XytJkiSN1FRNLA5cznkmYECWJEnSjDRVQN5paFVIkiRJY2LSgJyZpwyzEEmSJGkceJGeJEmSVOm5m7eIeAzwcmBLYI3M3KUZvgB4InBCZv6ljzVKkiRJQ9NTQI6IDwLvYdmZ56xGrwR8G3gLcFBfqpMkSZKGrOsmFhGxB+U20icAjwX+sx6fmZcCZwHP62eBkiRJ0jD10gZ5f+ASYPfM/A1wR5tpLgA270dhABExJyLOjYjjmt/XjYgTIuLi5nmdfi1LkiRJgt4C8qOBn2Rmu2A8YQmw4fRKupc3U0L3hAOARZm5ObCo+V2StJzmzptPRHT1mDtv/qjLlaSh6KUNcgD3dJhmQ+C25S+nWljEfOA5wEeAtzWDdwd2bH4+DDgZeFc/lidJgzJ33nyuXXL1qMto69olV8Nu+3U37XFeXiJpxdBLQL4Y2G6ykRExB9geOH+6RTU+Dfwr8IBq2IaZeQ1AZl4TERv0aVmS1JOeQ283IdQAKkljoZeAfDjw4Yh4e2Z+os34dwMPAz4z3aIiYjfgusw8OyJ2XI7X7w3sDbDppptOtxxJo7LSHCJi1FW01cuZV4OvJM0svQTkTwMvBv47Il5C08VbRHwceCqwEPgVcHAf6noK8LyIeDZwP+CBEfFN4NqI2Kg5e7wRcF27F2fmwRN1LFy4MNtNI2kGuOduz7xKkoau64v0MvPvwE7AN4DHUW4KEpT2wY8Hvgk8KzPvmm5RmfnuzJyfmQuAPYATM/OVwLHAns1kewLHTHdZkiRJUq2nG4Vk5k3AayLibcATgAcBNwFnZubSAdTX6qPA4RGxF3AF5Yy2JEmS1Dc932oaIDNvAH7SOjwi1gXenZnvnG5h1bJOpvRWQWZeD+zcr3lLkiRJrXrpB3lSEbFmRLwfuJRlXbJJkiRJM07HgBwRD42Ir0bEbyLi7Ij4dESsV43flxKM3wesAnxqcOVKkiRJgzVlE4uI2Aw4A1iHckEewGOBp0fEUyhdvz2DctvpzwH/kZl/Gly5kiRJ0mB1aoP8HmBd4HjgUEpI3osSik8GtgGOBN6emVcOrEpJkiRpSDoF5KcD52fmbhMDIuIo4HeUM8mfycy3DrA+SZIkaag6tUGeD5xYD8jMe4ATml8/PoiiJEmSpFHpFJBXA65vM/wGgMy8uu8VSZIkSSPUl27eJEmSpNmimxuF7BgR9xkGEBHvZVnvFhMyMz80/dIkSZKk4esqIDePdj5Q/ZyUsJyAAVmSNDRz583n2iXdtfrbcON5/OnqqwZckaSZrFNA/kCH8ZIkjdy1S66G3fbrbtrjDhpwNZJmuikDcmYakCVJkrRC8SI9SZIkqWJAliRJkioGZEmSJKliQJYkSZIqBmRJkiSpYkCWJEmSKgZkSZIkqWJAliRJkirLHZAjYteIODkiljaPkyLimf0sTpIkSRq25QrIEfEG4IfAxsCJwOnA1sDxEfHa/pUnSZIkDdeUt5qewnuAz2XmP258HxFrAT9vxh3Sh9okSZKkoZvyDHJE/FdErNZm1CbA9+oBmXkT8NNmnCRptllpDhHR8SFJM12nM8h7Ac+LiL0y8/Rq+MXAGyPiV5n5d4CIWAC8EPjDIAqVJI3YPXfDbvt1nu64gwZfiyQNUKc2yFsB5wOnRsSnI2L1Zvi/Ay8GlkTEryLiXEow3qQZJ0mSJM1IUwbkzLwuM18E7NE8fhsRO2XmUcATgOOBVYAEvgs8PjOPHXDNkiRJ0sB0dZFeZh4ZEScCBwE/i4gvA+/MzFcMtDpJkiRpyLru5i0zb2gC8e7Ac4DzI+JZA6tMkiRJGoGe+0HOzOOARwInUPo9PjQi1u57ZZIkDYK9cUjqoGMTi4jYFdgH2Ay4HPh8Zh4P7BUR3wEOBn4fEW/KzKMHWq0kSdNlbxySOujUD/JLKXfM2w64pXn+QUS8DCAzTwAeBXwfOCoivhMR6w22ZEmSJGlwOjWxeA+lm7cFmbktsAC4ADhgYoLMvCUz9wF2Ah7XjJckSZJmpE4B+SHAjzLzZoDm+fhm+L1k5qnAY4BD+1yjJEmSNDSdAvJlwFMiop5uO2Bxu4kz87bMfGefapMkSZKGrtNFev8FfINyEd45wGOBLYA9B12YJEmSNAqd7qT3LUq/x5cCW1N6sXhBZn5jCLVJkiRJQ9exm7fM/AHwgyHUIkmSJI1czzcKkSRJkmYzA7IkSZJUMSBLkiRJFQOyJEmSVDEgS5IkSRUDsiRJklQxIEuSJEkVA7IkSZJUMSBLkiRJFQOyJEmSVDEgS5IkSRUDsiRJklQxIEuSJEkVA7IkSZJUMSBLkiRJFQOyJEmSVDEgS5IkSRUDsiRJklQxIEuSJEkVA7IkSZJUMSBLkiRJFQOyJEmSVDEgS5IkSRUDsiRJklQxIEuSJEkVA7IkSZJUMSBLkiRJFQOyJEmSVDEgS5IkSRUDsiRJklQxIEuSJEkVA7IkSZJUMSBLkiRJFQOyJEmSVDEgS5IkSRUDsiRJklQZy4AcEZtExEkRcUFEnB8Rb26GrxsRJ0TExc3zOqOuVZIkSbPLWAZk4C7g7Zm5JbAtsE9EbAUcACzKzM2BRc3vkiRJUt+MZUDOzGsy85zm578CFwDzgN2Bw5rJDgOeP5oKJUmSNFuNZUCuRcQCYBvgDGDDzLwGSogGNhhdZZIkSZqNxjogR8SawFHAWzLz5h5et3dEnBURZy1dunRwBUqSJGnWGduAHBGrUMLxtzLze83gayNio2b8RsB17V6bmQdn5sLMXLj++usPp2BJkiTNCmMZkCMigK8CF2TmJ6tRxwJ7Nj/vCRwz7NokSZI0u6086gIm8RTgVcBvI+K8Zth7gI8Ch0fEXsAVwItHVJ8kSZJmqbEMyJn5cyAmGb3zMGuRJEnSimUsm1hIkiRJo2JAliRJkioGZEmSJKliQJYkSZIqBmRJkiSpYkCWJEmSKgZkSZIkqWJAliRJkioGZEmSJKliQJYkSZIqBmRJkiSpYkCWJEmSKgZkSZIkqWJAliRJkioGZEmSJKliQJYkSZIqBmRJkiSpYkCWJEmSKgZkSZIkqWJAliRJkioGZEmSJKliQJYkSZIqBmRJkiSpYkCWJEmSKgZkSZIkqWJAliRJkioGZEmSJKliQJYkSZIqBmRJkiSpYkCWJEmSKgZkSZIkqWJAliRJkioGZEmSJKliQJYkSZIqBmRJkiSpYkCWJEmSKgZkSZIkqWJAliRJkioGZEmSJKliQJYkSZIqBmRJkiSpYkCWJEmSKgZkSZIkqWJAliRJkioGZEmSJKliQJYkSZIqBmRJkiSpYkCWJEmSKgZkSZIkqWJAliRJkioGZEmSJKliQJYkSZIqBmRJkiSpYkCWJEmSKgZkSZIkqWJAliRJkioGZEmSJKliQJYkSZIqBmRJkiSpYkCWJEmSKgZkSZIkqWJAliRJkioGZEmSJKliQJYkSZIqBmRJkiSpYkCWJEmSKgZkSZIkqWJAliRJkioGZEmSJKliQJYkSZIqBmRJkiSpYkCWJEmSKgZkSZIkqWJAliRJkioGZEmSJKkyIwNyRDwrIi6KiEsi4oBR1yNJkqTZY8YF5IiYA3wO2BXYCnhZRGw12qokSZI0W8y4gAw8EbgkMy/NzDuA7wC7j7gmSZIkzRKRmaOuoScR8SLgWZn5+ub3VwFPysx9q2n2BvZufn0EcNHQC+2/9YA/j7qIPnA9xovrMV5cj/HieowX12O8zJb12Cwz128duPIoKpmmaDPsXik/Mw8GDh5OOcMREWdl5sJR1zFdrsd4cT3Gi+sxXlyP8eJ6jJfZsh6TmYlNLK4CNql+nw8sGVEtkiRJmmVmYkD+NbB5RDw4IlYF9gCOHXFNkiRJmiVmXBOLzLwrIvYFfgLMAb6WmeePuKxhmC1NRlyP8eJ6jBfXY7y4HuPF9Rgvs2U92ppxF+lJkiRJgzQTm1hIkiRJA2NAliRJkioGZEmSJKliQB6xiHh4RHwwIn4VEUsj4q8RcV5E/FtErNEy7YERkZM83jGqdajqm6y2v7WZ9hERcXRE/CUibomI0yLi6aOou6WuqbZxRsSdXU47tP0REe+OiCMi4tJm2Ys7TN/1to+IlSLirRFxYUTcFhFXRsQnWt+bg+Lx4fHRh5o9Phif/TEZj4/h74/ZfGz0w4zrxWIWeh2wD6Wrum8BdwI7AR8GXhIR22bm31te81bue/easwddaJdO475Xtt5Z/xIRDwVOB+4C/hu4CXgD8JOI2DUzfzaMQifxPeCSNsMfA7wT+EGbcaPeH/8B3ACcA6w91YTLse0/BewPfB/4BLBl8/s2EbFLZt7TzxVpw+PD42O6PD7ubdT7YyoeH8Ww9sdsPjamLzN9jPABLATWajP8w5Q7BO5bDTuwGbZg1HVPsi4JHNrFdIcDdwOPrYatCVxOuS14jHpd2tT8pWb9njNu+wN4SPXz74DF/dj2wCOBe4CjWuaxX7PeLx/Cunl8TLGPxuXh8XGveXh8LN+6eHwMv65Ze2z042ETixHLzLMy86Y2o77bPD+q3esi4oERMZbfAETEqhGx5iTj1gCeB5ycmedNDM/MvwFfAR4OPGEohXYpIlan3JDmauDHk0wzsv2RmZd2M91ybPuXUW7t/umWWX0ZuBV45TTK7orHR+Hxsfw8Pu7L42N4xvn4mM3HRj8YkMfX/Ob52jbjfkP5euO2iDg9InYdXlkdvYhyAPw1Iq6LiIMiYq1q/GOA1YBftnntr5rnsfqAA14CPBA4JDPvbjN+nPdHrddt/wTKWYAz6wkz8zbgPEa7nzw+xofHR8XjY1o8PsZrf0yYTcdG18byP8gVXUTMAd5Haevzv9WoGynts04H/gI8AngL8MOIeF1mHjrkUludCRxBaYP1QODZwL7ADhGxXfPf5sbNtFe3ef3EsHmDLrRHe1G+Fvpay/Bx3x+tet32GwN/zszbJ5l+u4hYNTPv6GONHXl8eHwMiMfHaHl8jNf+qM2KY6NXBuTx9GlgW+A9mXnRxMDMbP26goj4GqXt0Kci4sjmQ2QkMvNJLYO+HhG/AT4CvLl5Xr0Z1+7Aua15Xr3NuJGIiEcA2wOLMvOyety47482et32q08ybev0w/6Q8/gYEx4fHh/94vExXvujxWw5NnpiE4sxExEfovzXfHBm/men6TPzeuCLlCtQtxtwecvjY5SD4DnN77c2z6u1mfZ+LdOMg72a5690M/GY749et/2tk0w72fQD5/Fxr2nGgcdHex4f/eHxMR5m/LGxPAzIYyQiDgT+HTgE+OceXrq4eV6vzyVNW2beCSxhWW1Lmud2X4NNDGv3Nc7QNRdNvJrSDc73e3jp4uZ53PZHr9t+CbBeRLT7oJtH+QptaGcAPD48PgbM42PMeHyMjRl9bCwvA/KYiIj3A+8Hvg68Pps+Ubq0efPc7oKMkYqI+1EuGJmo7beUr16e3GbybZvns4ZQWjeeC2wIfGOStlSTGdf90eu2/zXlM+KJ9YTNPn0sQ9xPHh+Ax8egeXyMGY+PsTFjj41pGXU/cz4SygUVSflwW2mSaVamfX+XmwDXUzoav/8I1+FBkwz/WLNu/1oNO4LSn+LW1bCJ/hT/wJj0Ywkc19T+6JmyP+jcl2XX2x54NFP3ZfnKIa2Tx4fHR79q9vgYo/1R1eHxMeL9MRuPjek+oilaIxIR+wCfBa4A3kt5U9WuzcwTImJt4DLgaOACll31+nrKm/RlmXnE0ApvERGfovwneRJlXdakXIW8E3AGsFM2d3SKiIdRrli+k3K3nZspd+R5NKUj9Z8MfQVaRMTGlPU4O+978QjjtD8i4lXAZs2v+wGrUu5cBHB5Zn6jmranbR8RB1HaNH4fOJ5ld0P6BfD0HPDdkDw+PD76UKvHxxjtj3Y8PkazP2bzsdEXo07oK/oDOJTyH9Vkj5Ob6VajNPT/LeVguhO4BjgSeOIYrMfuwE8o7ZBuA26h9Hf4HuB+babfEjiG0tXNrcDPgV1GvR5Vfe9ptv8bJhk/NvsDOLnT+2d5tz0wB3g75U5Jtzf795PAmkNaN48Pj4/p1urxMUb7Y5L18PgYwf6YzcdGPx6eQZYkSZIqXqQnSZIkVQzIkiRJUsWALEmSJFUMyJIkSVLFgCxJkiRVDMiSJElSxYAsSZIkVQzIkiRJUsWALEmSJFX+P7mj/n0QOuw2AAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 1440x504 with 1 Axes>"
"<Figure size 720x504 with 1 Axes>"
]
},
"metadata": {
......@@ -217,7 +221,7 @@
"width = 0.35 # the width of the bars\n",
"\n",
"fig, ax = plt.subplots()\n",
"fig.set_size_inches(20, 7)\n",
"fig.set_size_inches(10, 7)\n",
"\n",
"for index, i in enumerate(['pseudo_values', 'pseudo_ed_values', 'ed_values', 'sax_values']):\n",
" result = [None]*(12)\n",
......@@ -235,6 +239,8 @@
"ax.set_xticklabels(labels, fontsize=18)\n",
"\n",
"fig.tight_layout()\n",
"plt.savefig('images/sample_performance')\n",
"\n",
"plt.show()"
]
},
......@@ -295,20 +301,21 @@
"\n",
"fig.legend()\n",
"fig.tight_layout()\n",
"plt.savefig('images/query_computing_time')\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 32,
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"image/png": "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\n",
"text/plain": [
"<Figure size 1440x504 with 1 Axes>"
"<Figure size 720x504 with 1 Axes>"
]
},
"metadata": {
......@@ -331,7 +338,7 @@
"width = 0.35 # the width of the bars\n",
"\n",
"fig, ax = plt.subplots()\n",
"fig.set_size_inches(20, 7)\n",
"fig.set_size_inches(10, 7)\n",
"\n",
"for index, i in enumerate(['pseudo_values', 'pseudo_ed_values', 'ed_values', 'sax_values']):\n",
" result = [None]*(12)\n",
......@@ -344,14 +351,23 @@
"\n",
"\n",
"ax.set_ylabel('% Relative to DTW', fontsize=20)\n",
"ax.set_title('Performance by increasing sample size', fontsize=20)\n",
"ax.set_title('Performance by increasing query size', fontsize=20)\n",
"ax.set_xticks(x)\n",
"ax.set_xticklabels(labels, fontsize=18)\n",
"\n",
"fig.tight_layout()\n",
"plt.savefig('images/query_performance')\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
......
%% Cell type:code id: tags:
``` python
import json
with open("results.json", "r") as jsonFile:
data = json.load(jsonFile)
```
%% Cell type:markdown id: tags:
## Track Size
%% Cell type:code id: tags:
``` python
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
labels = ['PSEUDo (DTW)', 'PSEUDo (ED)', 'DTW', 'L2']
x = [20, 40, 60]
width = 0.2
colors = ['#004c6d', '#004c6d', '#6996b3', '#6996b3', '#6996b3']
styles = ['solid', (0, (5, 1)), 'dashdot', (0, (1, 10)), (0, (3, 10, 1, 10))]
fig, ax = plt.subplots()
fig.set_size_inches(10, 7)
for i in range(len(labels)):
result = []
for j in ['track1', 'track2', 'track3']:
result.append(data[j]['query_values'][i] + data[j]['preprocess_values'][i])
ax.plot(x, result, linestyle=styles[i], color=colors[i], label=labels[i])
ax.set_ylabel('Time (s)', fontsize=20)
ax.set_title('Computing time by increasing track size', fontsize=20)
ax.set_xticks(x)
ax.set_xticklabels(x, fontsize=18)
fig.legend()
fig.tight_layout()
plt.savefig('images/track_computing_time')
plt.show()
```
%%%% Output: display_data
%% Cell type:code id: tags:
``` python
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.ticker as ticker
labels = ['20', '40', '60', '20', '40', '60', '20', '40', '60']
performance_data = []
colors = ['#004c6d', '#004c6d', '#c1e7ff', '#c1e7ff']
x = 1.7 * np.arange(len(labels)) # the label locations
width = 0.35 # the width of the bars
fig, ax = plt.subplots()
fig.set_size_inches(10, 7)
for index, i in enumerate(['pseudo_values', 'pseudo_ed_values', 'ed_values']):
result = [None]*(9)
result[::3] = data['track1'][i]
result[1::3] = data['track2'][i]
result[2::3] = data['track3'][i]
ax.bar(x + (index-1) * width, result, width, edgecolor='black', color='#c1e7ff' if i == 'ed_values' else '#004c6d')
ax.set_ylabel('% Relative to DTW', fontsize=20)
ax.set_title('Performance by increasing track size', fontsize=20)
ax.set_xticks(x)
ax.set_xticklabels(labels, fontsize=18)
fig.tight_layout()
plt.savefig('images/track_performance')
plt.show()
```
%%%% Output: display_data
%% Cell type:markdown id: tags:
## Sample Size
%% Cell type:code id: tags:
``` python
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
labels = ['PSEUDo (DTW)', 'PSEUDo (ED)', 'DTW', 'L2', 'SAX']
x = [25000, 50000, 75000, 100000]
width = 0.2
colors = ['#004c6d', '#004c6d', '#6996b3', '#6996b3', '#6996b3']
styles = ['solid', (0, (5, 1)), 'dashdot', (0, (1, 10)), (0, (3, 10, 1, 10))]
fig, ax = plt.subplots()
fig.set_size_inches(10, 7)
for i in range(len(labels)):
result = []
for j in ['sample1', 'sample2', 'sample3', 'sample4']:
result.append(data[j]['query_values'][i] + data[j]['preprocess_values'][i])
if i == 4:
ax.plot(x[:3], result[:3], linestyle=styles[i], color=colors[i], label=labels[i])
else:
ax.plot(x, result, linestyle=styles[i], color=colors[i], label=labels[i])
ax.set_ylabel('Time (s)', fontsize=20)
ax.set_title('Computing time by increasing sample size', fontsize=20)
ax.set_xticks(x)
ax.set_xticklabels(x, fontsize=18)
fig.legend()
fig.tight_layout()
plt.savefig('images/sample_computing_time')
plt.show()
```
%%%% Output: display_data
%% Cell type:code id: tags:
``` python
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
labels = ['25', '50', '75', '100', '25', '50', '75', '100', '25', '50', '75', '100']
colors = ['#004c6d', '#004c6d', '#c1e7ff', '#c1e7ff', '#c1e7ff']
x = 1.7 * np.arange(len(labels)) # the label locations
width = 0.35 # the width of the bars
fig, ax = plt.subplots()
fig.set_size_inches(20, 7)
fig.set_size_inches(10, 7)
for index, i in enumerate(['pseudo_values', 'pseudo_ed_values', 'ed_values', 'sax_values']):
result = [None]*(12)
result[::4] = data['sample1'][i]
result[1::4] = data['sample2'][i]
result[2::4] = data['sample3'][i]
result[3::4] = data['sample4'][i]
ax.bar(x + (index-1.5 ) * width, result, width, edgecolor='black', color='#c1e7ff' if i in ['ed_values', 'sax_values'] else '#004c6d')
ax.set_ylabel('% Relative to DTW', fontsize=20)
ax.set_title('Performance by increasing sample size', fontsize=20)
ax.set_xticks(x)
ax.set_xticklabels(labels, fontsize=18)
fig.tight_layout()
plt.savefig('images/sample_performance')
plt.show()
```
%%%% Output: display_data