{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2018-05-17T10:03:00.694883Z", "start_time": "2018-05-17T10:02:59.438947Z" } }, "outputs": [ { "data": { "text/html": [ "" ], "text/vnd.plotly.v1+html": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stderr", "output_type": "stream", "text": [ "/Users/oka1g10/anaconda/lib/python3.6/site-packages/statsmodels/compat/pandas.py:56: FutureWarning:\n", "\n", "The pandas.core.datetools module is deprecated and will be removed in a future version. Please use the pandas.tseries module instead.\n", "\n" ] } ], "source": [ "%matplotlib inline\n", "from __future__ import division\n", "\n", "# IBM PixieDust for visualizations\n", "#import pixiedust\n", "\n", "import numpy as np # For matrix manipulation\n", "import datetime # For convertim time to date\n", "\n", "import pandas as pd # Used for data handling and manipulation\n", "import matplotlib.pyplot as plt # Used for plotting spectrum\n", "import matplotlib.pylab as pylab # Used for increasing size of plot\n", "from mpl_toolkits.mplot3d import Axes3D # For 3 D plot\n", "\n", "import plotly \n", "from plotly import tools\n", "plotly.tools.set_credentials_file(username='rasp.pi.sensor', api_key='o6as73e2ve')\n", "import plotly.plotly as py # Plotly 3d plot\n", "import plotly.graph_objs as go # Plotly 3d plot\n", "\n", "# Plotly offline\n", "from plotly import __version__\n", "from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot\n", "init_notebook_mode(connected=True)\n", "\n", "import scipy as sp\n", "import scipy.interpolate as interpolate # Interpolation\n", "import scipy.optimize as optimize # Finding intersections\n", "\n", "# For low pass filter\n", "from scipy.signal import butter, lfilter, freqz, filtfilt\n", "\n", "# Non-Linear Least-Squares Minimization and Curve-Fitting for Python\n", "from lmfit import minimize, Parameters, Model\n", "\n", "# For Latex equations\n", "from IPython.display import Latex, Image, SVG\n", "\n", "# Statistical data exploration\n", "import statsmodels.api as sm\n", "\n", "# For ribust to outlier regression\n", "import sklearn as sk\n", "\n", "# Peak detection\n", "import peakutils\n", "from peakutils.plot import plot as pplot\n", "\n", "# Plotting regression \n", "# import seaborn as sns\n", "\n", "# For calculating uncertainties\n", "#from uncertainties import ufloat\n", "#from uncertainties.umath import *\n", "\n", "# Fitter package for identifying distributions\n", "from fitter import Fitter\n", "\n", "from statsmodels.sandbox.regression.predstd import wls_prediction_std" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The first step is to import all the data for all 5 points and the vessel into dataframes. The 5 points are the \n", "different locations where the markers were placed. Each dataframe contains acceleration (X,Y,Z) and position\n", "(X,Y,Z) with respect to time. The body dataframe contains position (X,Y,Z) and rotations (Roll, Pitch, Yaw) with\n", "respect to time. The sample frequency used during the data collection was 60 Hz. " ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2018-05-17T10:03:00.740624Z", "start_time": "2018-05-17T10:03:00.696748Z" } }, "outputs": [], "source": [ "# READ DATA FROM CSV AND MAKE TIME COLUMN THE INDEX\n", "sample_freq = 60\n", "\n", "for i in range(1,6):\n", " globals()[\"p\"+str(i)] = pd.read_csv('p'+str(i)+'.csv')\n", " globals()[\"p\"+str(i)] = globals()[\"p\"+str(i)].set_index('Time', drop=False)\n", "\n", "# Read body data \n", "body = pd.read_csv('body.csv')\n", "body = body.set_index('Time', drop=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Make Positions fixed for entire recording for all markers using positions when there are no waves/no motion (10 secs)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "time = 10\n", "t = round(time / 0.016667)\n", "\n", "for i in range(1,6):\n", " globals()[\"p\"+str(i)]['Pos_X'] = globals()[\"p\"+str(i)].iloc[t].Pos_X\n", " globals()[\"p\"+str(i)]['Pos_Y'] = globals()[\"p\"+str(i)].iloc[t].Pos_Y\n", " globals()[\"p\"+str(i)]['Pos_Z'] = globals()[\"p\"+str(i)].iloc[t].Pos_Z" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Positions of markers at a time (t) " ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "ExecuteTime": { "end_time": "2018-05-17T10:03:00.765147Z", "start_time": "2018-05-17T10:03:00.742408Z" } }, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "data": [ { "marker": { "line": { "color": "rgba(217, 217, 217, 0.14)", "width": 0.5 }, "opacity": 0.8, "size": 6 }, "mode": "markers+text", "text": [ "p1", "p2", "p3", "p4", "p5(C)" ], "type": "scatter3d", "x": [ 11824.085, 9591.841, 11122.233999999999, 10235.821, 10774.413999999999 ], "y": [ 1929.487, 1839.476, 2042.588, 1789.219, 1885.289 ], "z": [ -0.316, 1.143, -13.619000000000002, -7.165, -3.597 ] } ], "layout": { "margin": { "b": 0, "l": 0, "r": 0, "t": 0 }, "scene": { "xaxis": { "title": "X Axis [mm]" }, "yaxis": { "range": [ 1800, 3200 ], "title": "Y Axis [mm]" }, "zaxis": { "range": [ -100, 100 ], "title": "Z Axis [mm]" } }, "title": "Position of markers" } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# SHOW POSITIONS OF ACCELEROMETERS on ASV\n", "time = 1 # secs\n", "# Use time to obtain index using sampling freq of 60Hz (period = 1/60)\n", "t = round(time / 0.016667)\n", "\n", "xs = [p1.iloc[t].Pos_X, p2.iloc[t].Pos_X, p3.iloc[t].Pos_X, \n", " p4.iloc[t].Pos_X, p5.iloc[t].Pos_X]\n", "ys = [p1.iloc[t].Pos_Y, p2.iloc[t].Pos_Y, p3.iloc[t].Pos_Y, \n", " p4.iloc[t].Pos_Y, p5.iloc[t].Pos_Y]\n", "zs = [p1.iloc[t].Pos_Z, p2.iloc[t].Pos_Z, p3.iloc[t].Pos_Z,\n", " p4.iloc[t].Pos_Z, p5.iloc[t].Pos_Z]\n", "lbls = ['p1','p2','p3','p4','p5(C)']\n", "\n", "trace1 = go.Scatter3d(x=xs,y=ys,z=zs,text=lbls,mode='markers+text',\n", " marker=dict(size=6,\n", " line=dict(color='rgba(217, 217, 217, 0.14)',\n", " width=0.5),\n", " opacity=0.8))\n", "\n", "data = [trace1]\n", "layout = go.Layout(title = 'Position of markers',\n", " scene = dict(xaxis=dict(title = 'X Axis [mm]'),\n", " #range=[0,3000]),\n", " yaxis=dict(title = 'Y Axis [mm]',\n", " range=[1800,3200]),\n", " zaxis=dict(title = 'Z Axis [mm]',\n", " range=[-100,100])),\n", " margin=dict(l=0,r=0,b=0,t=0))\n", "\n", "fig = go.Figure(data=data, layout=layout)\n", "#py.iplot(fig, filename='simple-3d-scatter')\n", "plotly.offline.iplot(fig, filename='simple-3d-scatter')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the figure above, marker 5 is at the centre of mass of the vessel which was previously calculated based on the\n", "weights in the vessel. Marker p1 is at the stern and p2 is at the bow." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The next stage is to view the position, rotation and acceleration plots for all 5 points. Below, only a subset of\n", "the data is used going forward as the developed system is meant to be used when the vessel is in motion" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2018-05-17T10:03:00.777140Z", "start_time": "2018-05-17T10:03:00.766870Z" } }, "outputs": [], "source": [ "# Select data time range and plots to use \n", "# Full range is (0 - 76 seconds). However, 35 -65 is chosen as this is more realistic\n", "# due to the fact that in reality this will not be used when vessel is at rest\n", "start = 30 # 30\n", "end = 60 # 60\n", "pts = 5 # 6(all points), 5(exclude p5)\n", "\n", "# copy full time range\n", "full_body = body.copy(deep=True)\n", "\n", "for i in range(1,6):\n", " globals()[\"full_p\"+str(i)] = globals()[\"p\"+str(i)].copy(deep=True)\n", "\n", "# Choose subsection of data\n", "for i in range(1,6):\n", " globals()[\"p\"+str(i)] = globals()[\"p\"+str(i)][(globals()[\"p\"+str(i)].index > start) \n", " & (globals()[\"p\"+str(i)].index < end)]\n", "\n", "body = body[(body.index > start) & (body.index < end)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Accelerations and rotations for selected time range (35-65 seconds)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "ExecuteTime": { "end_time": "2018-05-17T10:03:01.521499Z", "start_time": "2018-05-17T10:03:00.778896Z" } }, "outputs": [ { "data": { "text/plain": [ "$a_{P}^{I} = a_{O}^{I} + (\\dot{\\omega}_{b} \\times r_{OP}^{b}) + a_{OP}^{b} + (2\\omega _{b} \\times v_{OP}^{b}) + \\omega_{b} \\times (\\omega _{b} \\times r_{OP}^{b}) - g$
\n", "$a_{P}^{I}$ is the inertial acceleration of P
\n", "$a_{O}^{I}$ is the inertial acceleration of O
\n", "$\\omega _{b}$ is the angular velocity of the body
\n", "$\\dot{\\omega}_{b}$ is the angular acceleration of the body
\n", "$r_{OP}^{b}$ is the vector from point O to point P
\n", "$a_{OP}^{b}$ is the acceleration of point P relative to point O
\n", "$v_{OP}^{b}$ is the velocity of point P relative to point O
\n", "$g$ is the gravitational acceleration
\n", "$\\times$ indicates cross product of 2 vectors
\n", " \n", "Assuming points O and P do not move within the body, $a_{OP}^{b}$ = 0 and $v_{OP}^{b}$ = 0. The previous equation is then reduced to\n", "$a_{P}^{I} = a_{O}^{I} + (\\dot{\\omega}_{b} \\times r_{OP}^{b}) + \\omega_{b} \\times (\\omega _{b} \\times r_{OP}^{b}) - g$
\n", "$a_{P}^{I} = a_{O}^{I} + (H_{1}+H_{2})r_{OP}^{b} - g$
\n", " \n", "$H_1 = \\begin{bmatrix}\n", "0 & -\\dot{\\omega}_z & \\dot{\\omega}_y \\\\ \n", "\\dot{\\omega}_z & 0& -\\dot{\\omega}_x\\\\ \n", " - \\dot{\\omega}_y& \\dot{\\omega}_x & 0\n", "\\end{bmatrix}$
\n", "\n", "$H_2 = \\begin{bmatrix}\n", "-(\\omega_{y}^2 + \\omega_{z}^2) & \\omega_x \\omega_y & \\omega_x \\omega_z \\\\ \n", "\\omega_x \\omega_y & -(\\omega_{x}^2 + \\omega_{z}^2) & \\omega_y \\omega_z \\\\ \n", "\\omega_x \\omega_z & \\omega_y \\omega_z & -(\\omega_{x}^2 + \\omega_{y}^2) \n", "\\end{bmatrix}$
\n", "\n", "Since points 1,2,3,4 and 5 are all on the same body, $H_1$ and $H_2$ are common to all of them \n", "$a_{P1}^{I} = a_{O}^{I} + (H_{1}+H_{2})r_{OP1}^{b} - g$
\n", "$a_{P2}^{I} = a_{O}^{I} + (H_{1}+H_{2})r_{OP2}^{b} - g$
\n", "$a_{P3}^{I} = a_{O}^{I} + (H_{1}+H_{2})r_{OP3}^{b} - g$
\n", "$a_{P4}^{I} = a_{O}^{I} + (H_{1}+H_{2})r_{OP4}^{b} - g$
\n", "$a_{P5}^{I} = a_{O}^{I} + (H_{1}+H_{2})r_{OP5}^{b} - g$
\n", "\n", "Subtracting $a_{P2}^{I}$, $a_{P3}^{I}$, $a_{P4}^{I}$ from $a_{P1}^{I}$ results in the following equations\n", "$a_{P1}^{I} - a_{P2}^{I} = (H_{1}+H_{2})(r_{OP1}^{b} - r_{OP2}^{b})$
\n", "$a_{P1}^{I} - a_{P3}^{I} = (H_{1}+H_{2})(r_{OP1}^{b} - r_{OP3}^{b})$
\n", "$a_{P1}^{I} - a_{P4}^{I} = (H_{1}+H_{2})(r_{OP1}^{b} - r_{OP4}^{b})$
\n", "\n", "$(H_{1}+H_{2})$ can be solved using the matrix equation below\n", "\n", "$\\begin{bmatrix}\n", "AccX_1 - AccX_2 & AccX_1 - AccX_3 & AccX_1 - AccX_4\\\\ \n", "AccY_1 - AccY_2 & AccY_1 - AccY_3 & AccY_1 - AccY_4\\\\ \n", "AccZ_1 - AccZ_2 & AccZ_1 - AccZ_3 & AccZ_1 - AccZ_4\n", "\\end{bmatrix} =[H_{1} +H_{2}] \\begin{bmatrix}\n", "PosX_1 - PosX_2 & PosX_1 - PosX_3 & PosX_1 - PosX_4\\\\ \n", "PosY_1 - PosY_2 & PosY_1 - PosY_3 & PosY_1 - PosY_4\\\\ \n", "PosZ_1 - PosZ_2 & PosZ_1 - PosZ_3 & PosZ_1 - PosZ_4\n", "\\end{bmatrix}$\n", "\n", "$[Acc_{1-n}] = [H_{1} +H_{2}][Pos_{1-n}]$
\n", "$[H_{1} +H_{2}] = [Acc_{1-n}][Pos_{1-n}]^{-1}$
\n", "$H\\_mat = [R\\_Acc\\_mat] [R\\_Pos\\_mat]^{-1}$
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Calculate relative accelerations and positions using filtered data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$[Acc_{1-n}]$ or $[R\\_Acc\\_mat]$ are the relative accelerations
\n", "$[Pos_{1-n}]^{-1}$ or $[R\\_Pos\\_mat]^{-1}$ are the relative positions
" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "ExecuteTime": { "end_time": "2018-05-17T10:03:04.720809Z", "start_time": "2018-05-17T10:03:04.685774Z" } }, "outputs": [], "source": [ "# CALCULATATE POSITIONS OF ALL SENSORS RELATIVE TO P1\n", "for i in range (1,6):\n", " globals()[\"p\"+str(i)]['Rel_Pos_X'] = p1.f_Pos_X - globals()[\"p\"+str(i)].f_Pos_X \n", " globals()[\"p\"+str(i)]['Rel_Pos_Y'] = p1.f_Pos_Y - globals()[\"p\"+str(i)].f_Pos_Y \n", " globals()[\"p\"+str(i)]['Rel_Pos_Z'] = p1.f_Pos_Z - globals()[\"p\"+str(i)].f_Pos_Z\n", " \n", "for i in range (1,6):\n", " globals()[\"p\"+str(i)]['Rel_Acc_X'] = p1.f_Acc_X - globals()[\"p\"+str(i)].f_Acc_X \n", " globals()[\"p\"+str(i)]['Rel_Acc_Y'] = p1.f_Acc_Y - globals()[\"p\"+str(i)].f_Acc_Y \n", " globals()[\"p\"+str(i)]['Rel_Acc_Z'] = p1.f_Acc_Z - globals()[\"p\"+str(i)].f_Acc_Z" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Relative accelerations for selected time range (35-65 seconds)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "ExecuteTime": { "end_time": "2018-05-17T10:03:05.586261Z", "start_time": "2018-05-17T10:03:04.722657Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA9YAAAOvCAYAAAApxFy7AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4XNW18OHfHtWZUbdkNTe5yrhgwGCbaiAhBgKBkJhg\n08G03ARsIJAAF+6XBqE5XJPEziUQElNNLw4YFwy4F7lbcpNlNav3NprZ3x9bkiWry1NU1vs8egbN\nnJmzZFRmnbX22kprjRBCCCGEEEIIIXrG4usAhBBCCCGEEEKIvkwSayGEEEIIIYQQ4hRIYi2EEEII\nIYQQQpwCSayFEEIIIYQQQohTIIm1EEIIIYQQQghxCiSxFkIIIYQQQgghToEk1kIIIYQQQgghxCmQ\nxFoIIYQQ7VJKvaaUqlVKjW/jsXlKKa2UusUXsQkhhBC9hdJa+zoGIYQQQvRSSqloYD+wD7hQN7xx\nUErFNdy3TWt9qQ9DFEIIIXxOKtZCCCGEaJfWugB4CDgfuLPZQy8BVuAeX8QlhBBC9CZSsRZCCCFE\np5RSq4ApwHjgbOAT4L+11r/1aWBCCCFELyCJtRBCCCE6pZQaC+wEPgemAhXAFK11nU8DE0IIIXoB\nf18HIIQQQojeT2udppT6I/AUoIGLJKkWQgghDFljLYQQQoiuKmh2u9WXgQghhBC9iSTWQgghhOiU\nUioB+AOwB4jGVK6FEEIIgSTWQgghhOial4AA4EfAq8B8pdQk34YkhBBC9A6SWAshhBCiQ0qpq4Dr\ngN9qrQ8BvwJKgL8ppZRPgxNCCCF6AZkKLoQQQoh2KaVCgL1AKXCm1trRcP+tmMr13VrrJb6LUAgh\nhPA9SayFEEII0S6l1IvA/cD5Wut1Jz32NTAJSNZa5/kiPiGEEKI3kFZwIYQQQrRJKXUW8AtgyclJ\ndYN7ADvwglcDE0IIIXoZqVgLIYQQQgghhBCnQCrWQgghhBBCCCHEKRhQibVS6tdKKa2UWtTsPqWU\nekopla2UqlZKrVFKTfBlnEIIIYQQQggh+o4Bk1grpaYDdwE7T3roV8CDmDVkZwN5wAqlVKh3IxRC\nCCGEEEII0RcNiMRaKRUOLAVuB4qb3a+AB4Cntdbvaa13A7cAocAcX8QqhBBCCCGEEKJvGRCJNbAE\nWKa1Xn3S/UlAHPBl4x1a62pgLXCu98ITQgghhBBCCNFX+fs6AE9TSs0DRgM3tvFwXMPt8ZPuPw4k\ntvN6d2FayrHb7WclJye7KVIhhBBCCCGE6L6a+hoOlR5iWOgwQgNlRas7bd26tUBrHdPZcf06sVZK\njQP+AJyvtXa44zW11kswFXCmTp2qt2zZ4o6XFUIIIYQQQoge2ZW/izmfz+HlS1/mwiEX+jqcfkUp\ndbQrx/X3VvAZQDSwRylVr5SqBy4C7mv478KG42JPel4skOu9MIUQQgghhBCiZxwuU0MMsAT4OJKB\nq78n1h8Ck4ApzT62AG81/HcaJoH+fuMTlFLBwAXAOm8HK4QQQgghhBDdJYm17/XrVnCtdQlQ0vw+\npVQlUNQwARyl1ELgN0qp/ZhE+3GgAnjDy+EKIYQQQgghRLc1JdZ+klj7Sr9OrLvoT4AVeBmIBDYC\nl2mty30alRBCCCGEEEJ0gcMpFWtfG3CJtdZ65kmfa+Cphg8hhBBCCCGE6FOkFdz3BlxiLYQQQggh\nhBD9SU8S67KyMvLy8nA43LJ5Up8UEBDA4MGDCQsLO+XXksRaCCGEEEIIIfqw7q6xLisr4/jx4yQm\nJmK1WlFKeTK8XklrTXV1NVlZWQCnnFz396ngQgghhBBCCNGvdbdinZeXR2JiIjabbUAm1QBKKWw2\nG4mJieTl5Z3y60liLYQQQgghhBB9WHeHlzkcDqxWqydD6jOsVqtb2uElsRZCCCGEEEKIPqwna6wH\naqX6ZO76d5DEWgghhBBCCCH6MNnH2vcksRZCCCGEEEKIPqwxsfZXMpvaVySxFkIIIYQQQog+zOF0\n4Kf88LP4+ToUn3r//ff5wQ9+QExMDEop1qxZ47VzS2IthBBCCCGEEH2Yw+Xo1vrq/qqyspJzzz2X\nF154wevnll4BIYQQQgghhOjDHC7HgFhfPXPmTJKTkwkKCuL1118H4M477+SZZ57BYrFw0003AVBQ\nUOD12KRiLYQQQgghhBB9mMM5cCrWS5cuxeVysX79ehYvXsySJUtYuHChr8OSirUQQgghhBBC9GXu\naAX/n0/2sDe7zE0Rdc1pCWE8edWEbj0nPj6el156CaUUycnJpKWl8cILL7BgwQIPRdk1UrEWQggh\nhBBCiD5sIK2xnj59eou9p2fMmEFWVhZlZd69KHAyqVgLIYQQQgghRB/mjjXW3a0ci5akYi2EEEII\nIYQQfdhAWmO9ceNGtNZNn2/YsIGEhATCwsJ8GJVUrIUQQgghhBCiTxtIreDZ2dk88MAD3Hfffeza\ntYtnn32Wxx9/HICioiIyMjIoKSkB4ODBg0RERBAXF0dcXJxH45LEWgghhBBCCCH6sIGUWM+dOxen\n08m0adNQSnHHHXcwf/58AD7++GNuu+22pmPnzZsHwJNPPslTTz3l0bgksRZCCCGEEEKIPmyg7GMN\n4O/vz6JFi1i0aFGrx2699VZuvfVW7weFrLHu11yVldQXF/s6DCGEEEIIMdBpDWU55la43UCqWPdW\nklj3Y5m/+CWZ997n6zCEEEIIIcRApjW8dye8kAwf/Zevo+mXBtLwst5KWsH7MWWz4ioo8HUYQggh\nhBBiIEv/BnYvA1s0pPwbzr4DEs/0dVT9ykCpWK9Zs8bXIbRLKtb9mMVmw1Vd7eswhBBCCCHEQLb1\nn2CNhPs2gL8Vdrzl64j6nXpX/YBIrHszj1eslVI7u/kUDVyhtc7yRDwDicVmw1VV5eswhBBCCCHE\nQOWsh4MrIPkqCImBURdD6nK44k++jqxfqXPWDZjhZb2VN1rBJwLPAxVdOFYBjwJBHo1ogLDY7JJY\nCyGEEEII38nZATWlMPpS8/nImZD6OZRmQvgQX0bWrwyUVvDezFtrrJ/VWud15UCl1IOeDmagsFit\n6OpqtMuFskjXvxBCCCGE8LLsbeZ26Dktb49tlMTajRwuB/4WGZ/lS97ItpKA/G4cfxpw1EOxDCgW\nmw0ALeushRBCCCGEL2RtA3sMhCWaz2Mngl+gqWQLt3G4HAT6Bfo6jAHN44m11vqo1l3fsE5rfUxr\n7fRkTAOFxW4Sa2kHF0IIIYQQPpG9DRLOBKXM534BMGg05Kf5Nq5+Rrbb8r1e0R+slLIopYb5Oo7+\nxmK1ApJYCyGEEEIIH6itgPxUSDij5f0x4yB/v29i6oe01rLGuhfwSmKtlApWSv1NKZWvlEpTSt1/\n0iExwBFvxDKQKJtUrIUQQgghhI8c3w1oSJjS8v7ocVByFByyXNEdnNqJRg/4xNrhcPDII48wefJk\n7HY78fHxzJkzh4yMDK+c31sV6/8Gfthw+w/gcaXUv5VSzc+vvBTLgNG4xlr2shZCCCGEEF5X0NDu\nHTOu5f0x40C7oPCg92PqhxwuB8CA326rqqqKbdu28dhjj7Ft2zY++ugjjh07xqxZs6ivr/f4+b01\nOu56YJ7WejmAUupNYDnwhlJqTsMxXV6HLbqmKbGulIq1EEIIIYTwsoIDZlBZxPCW98ckm9v8VIib\n5P24+pmmxHoAVKxnzpxJcnIyQUFBvP766wDceeedPPPMM4SHh7NixYoWxy9evJgJEyawb98+Jk3y\n7PeatyrW8cC+xk+01keBi4FJwFtA//8u8AGLtIILIYQQQghfKTgAUaPA4tfy/kGjQFlOVLTFKXE4\nB05iDbB06VJcLhfr169n8eLFLFmyhIULF7Z5bFlZGQCRkZEej8tbFescYDSQ3niH1vq4UupSYDXw\nupfiGFAksRZCCCGEED5TeAAGj299v38QhCZAiXfWvvZ3bqtYL38Ucne5IaJuiJsElz/drafEx8fz\n0ksvoZQiOTmZtLQ0XnjhBRYsWNDiuLq6Oh588EGuuuoqhgzx/J7p3qpYrwbmnHyn1joXuASQ3eE9\n4MQaa0mshRBCCCGEFzkdUJwOg8a0/XjEUCg55tWQ+quBtsZ6+vTpKHViPNeMGTPIyspqqk4D1NfX\nc+ONN1JSUsKrr77qlbi8VbH+LZDc1gNa6xyl1EXAZV6KZcBoTKy1VKyFEEIIIYQ3FaeDqx6i20ms\nw4fAsY1eDam/clvFupuV496qvr6eG264gV27drFmzRoGDRrklfN6pWKttT6qtf6ig8dztNb/9EYs\nA4kKDgalpBVcCCGEEEJ4V+EhcztodNuPhw+FsmxwOb0Xkze4nOByefWUA22N9caNG9H6xNzrDRs2\nkJCQQFhYGA6Hg+uvv56dO3eyevVq4uLivBaXt1rBhQ8opbBYrTIVXAghhBBCeFfJUXMbOaLtxyOG\nmop2eY7XQvK4osOwcBL8eTKU53rttANpKjhAdnY2DzzwAKmpqSxbtoxnn32W+fPnU19fz09/+lM2\nbNjAm2++iVKK3NxccnNzqfbC9sNeTayVUv5KqX9785wDnbLbZB9rIYQQQgjhXSUZ4G8Fe0zbj4cP\nM7elmd6LydNW/xHKsqD0GKx91munHWiJ9dy5c3E6nUybNo158+Zxxx13MH/+fDIzM/noo4/Izs7m\nrLPOIj4+vunj7bff9nhc3lpjjVIqCFgGBHnrnAIsVpu0ggshhBBCCO8qToeIYdBsyFQLEUPNbckx\nGDbda2F5TG057P0QzrkLKvNh70dw+Z9abzXmAU2t4ANkeJm/vz+LFi1i0aJFLe4fMWJEixZxb/NK\nxVopFQqsACKBH3njnMKw2CSxFkIIIYQQXlZyFCKHt/94eMOmQKX9ZMutI2vBWQfjr4ZxV5rk2ktb\nVw20inVv5a1W8DVACHCl1lr6kr2op4m11prM8kyfXvURQgghhBB9VEkGRHSQWAfawRoJpVnei8mT\njnxjWt+HToOh55j7srZ45dSSWPcO3kqszwBe11qXeul8ooHFZuvRPtZ/3PRHLn//cp7Z/IwHohJC\nCCGEEP1WdQnUlJpW8I6ExEHFce/E5Gk5OyBuEvgHmq/bHgOZW71y6sbE2t/itVW+PrNmzZpWLeC9\nhbcS63nA00qp67x0PtHAYrV2ex/rrIos3k41C/zf3P8mORX9aFqjEEIIIYTwrKaJ4B1UrAFCY706\nPdtjXC7I3QkJU8znSkHsBMjf75XT1znrAAj0C/TK+UTbvLWP9SvAXOBVpdQsb5yzkVLq10qpzUqp\nMqVUvlLqE6XUxJOOUUqpp5RS2UqpaqXUGqXUBG/G6SkWm63b222tzVyLS7v4+2V/x6VdfHbkMw9F\nJ4QQQggh+p2SY+Z2oFSsiw5BXQXEn37ivphkyE8FLyyrlMS6d/Dadlta6/eA64B/euucDWYCfwHO\nBS4B6oGvlFJRzY75FfAg8AvgbCAPWNEwdK1Ps9i7v8Z6Q/YGhoQMYXr8dMZGjmVD9gYPRSeEEEII\nIfqdsoZ102FDOj4uNNYk1n19pk92irmNn3Livuix4Kj0ynZijYl1kJ9svuRLXt3HWmu9Arjay+f8\ngdb6Va31bq31LuAmIAY4D0y1GngAeFpr/Z7WejdwCxAKzPFmrJ6grNZu72O9t2gvk2ImATAtfhop\n+SnUu+o9EZ4QQgghhOhvyrLALxDs0R0fFxpvJmlXF3snLk/J3Ql+QaZK3SgqydyWeH7qeZ3LJNYy\nvMy3vJpYA2itN3r7nCcJxXzdjT/BSUAc8GXjAQ2Ty9diqtx9msVmQ9fWouu7lhgX1xSTW5nLaVGn\nATA+ajy1zlqOlh31ZJhCiIFIa1j5/+C5sbDsdqir9HVEQggh3KEsG8IS2t/DulFIrLnt6+usCw/C\noFHg12x4WHjDPt1erFhLK7hveT2xPplSarRSKtiLp/wzkAKsb/g8ruH25AUex5s91kQpdZdSaotS\nakt+fr7nonQTi80O0OWq9cGSgwCMjRwLQHKUufK2v8g7wxeEEAPIxsXwzfMwaAzs+QA+ud/XEYkO\naK3JqchpegPX12mt2Zm/k+yKbF+HIkT/U5oFYYmdHxfa8Fa7op8k1s017dN9zOOnb6xYB1oksfYl\nrybWSqk/KKVuafhvpZRaAaQBOUqpaV44/wvA+cB1WmtnT15Da71Eaz1Vaz01JibGvQF6gMVmA+jy\nOuvGyvTwcDPFcUT4CAItgaQWpXomQCHEwFRTCqv/AKO/B7d+Chc8BLvehSzvbE0iuqfeVc+CNQu4\n7L3LuPKDKzlSesTXIZ0SrTVPrnuSuZ/P5coPruS71Pdh62tQ3g+GKAnRG5R1MbFuqlj34Z89Zz0U\nHYFBo1veH2AFW7TXKtZ+yg8/i5/HzyXa5+2K9VygMUO7HJgCTAdeB5725ImVUi8CNwCXaK0PN3uo\n8RJZ7ElPiW32WJ9lsVmBrifWGeUZBFgCiLOZK4gBlgBGR46WirUQwr1S3oDaUrjkcdMqeO4vICgc\nNvzV15GJNry25zW+yviKOclzqHPW8cjaR3C6enR9ulf4JusbPjj4AbPHzmaEPZEnv3uCmk8fgFe+\n1/fXegrhay4XlOeYVvDONFasy/vw1q6lGeBytE6swVStvVGxdtZJG3iDJ554guTkZOx2O5GRkVx6\n6aWsW7fOK+f2dmIdCzRetrkCeEdrvQn4X+AMT51UKfVnTiTVJ2eIRzAJ9PebHR8MXAB45/+CB3W3\nYp1RlsHQ0KEtrnglRyWTWiwVayGEG+1aBnGTIaHhV39wGEz8Mez/TNZa9zJVjipe2fUKM4fO5NfT\nfs2vzv4V+4r28VXGV74OrceW7ltKvD2eR6c9yqPOUI77WVh+3jyzRdC3L/o6PPerq4RP58M/r4Ij\n3/g6GtHfVRWYgWRdqVgH2iEwtG9vuVV4yNy2m1h7p2ItibUxbtw4Xn75ZXbt2sW3335LUlISs2bN\n4vhxz3+PeTuxLgQad4q/DFjZ8N/+QCfTDXpGKfUycBtmwnexUiqu4SMEQGutgYXAI0qpHzfscf0a\nUAG84YmYvKkxsdZdTKxzK3OJD4lvcd/I8JEU1RRRWlvq9viEEANQaSZkbYEJ17S8f+J14KiCtC98\nE5do08qMlVQ4Krj5tJsBmDViFkNChvBu6rs+jqxncitzWZ+9nh+N/hEBtRWcs28FSX52PnUWme/J\nrf8ER42vw3SvT+fDllchbx+8MRvy03wdkejPGrfaCu9CYg0QEgOVvX9uUbsKzXyithProeZvnoe3\nE3O4HANmffXMmTO55557uP/++4mMjCQyMpKHH34Yl8sFwI033sill17KyJEjmTBhAi+88ALl5eWk\npKR4PDZvJ9bvAW80rK2OAhrfPU0BDnronPdhJoGvBHKafTzU7Jg/AS8CLwNbgHjgMq11uYdi8hqL\ntXut4HlVecTaWnbFDw01Uw2PlXu+lUUIMQDs+8Tcjv9Ry/uHn2u2Xtn7ofdjEu365NAnJIYkclbs\nWQD4Wfy4YuQVbD6+mcLqQh9H132fHv4UjebqUVfD/s9RLgeXDJ3JtuPbKJ/0E6gpgUMrO3+hviJn\nB+x8Gy58CO75Fiz+8NVTvo5K9GdlDQMBu9IKDmYdcmWB5+LxtMJDZimTbVDrx8KHQF2F+b3iQQOt\nYr106VJcLhfr169n8eLFLFmyhIULF7Y6rq6ujiVLlhAWFsaUKVPaeCX38u/8ELdaABwFhgG/0lo3\n9vvFAx5ZWKe17rQS3lC1fqrho19R3WgFr3fVU1hTSIy15VC2YaHDANMmPjF6ovuDFEIMLAdXQvRY\niD7p6r7FD0ZdCqmfgctpPhc+VVJTwoacDdw56U4s6sS1+MuGX8aSnUtYmbGS2eNm+zDC7luXvY7k\nqGRz0fjI12CP4aLk2byS/hnfBcCsALv5Hk2+0tehusf2f5v9dWf8F1gjYNrdsPY5U0VrnFoshDuV\nNlSsu9IKDmCPgZI+vK1r6TGIGNb21mJNk8EzwRrpsRBqnbVuSayf2fSM1+cqJUcl88g5j3TrOfHx\n8bz00ksopUhOTiYtLY0XXniBBQsWAPDpp5/ys5/9jKqqKuLj41mxYgWxsSeP03I/r1SslVJXK6WC\ntdb1Wuvntdb3a623Nz6utX5Ra/1/3ohloPELCQHAVdn5msXC6kJc2sVg2+AW9w8JNb8UMso9v8G9\nEKKfc9ZDxnoYcUHbj4+caYZH5e70ZlSiHZtyN6HRXDjkwhb3j40cy/Cw4azKWOWjyHqmur6alLwU\npsVNM62Z6d/B8HOZHHM6EUERfJOzHkZeBAdXeLx10yucDtj9Hoy73CTVAFPmAhp2vOnT0EQ/VpYF\nfoGmEt0V9kF9u2Ld0UWqxqnnFXkeDaHOVTdgWsEBpk+fjmp2IWPGjBlkZWVRVlYGwMUXX0xKSgrr\n1q1j1qxZzJ49m5wczw/I81bF+hlOtIB/BHystS7y0rkHNEtDYu2sqOj02Pxqs77l5Ip1sH8wsbZY\naQUXQpy6nB2mLS6pncQ6qSGBO/z1icFmwmc25GzAHmBv1a2klOLchHP58OCHOFwOAiwBPoqwe7bn\nbcfhcjAtfpqpkJVlwvD78bP4cVbsWaTkpcDoayH1c9PeeXJXRV9z5GuoKoTJzboKopJg+Pmw4y24\n8GHfxSb6r7Jss6zH0sX6nS3aDDzTuu2qb29XmgnDprf9mL3hPbWHLxw4nA63VKy7Wznurex2O6NH\nj2b06NFMnz6dMWPG8H//93888cQTHj2vVyrWWuvxwFmYKdvzMPtWf62UWqCUGumNGAYqi90OgKui\n84p1XpW5mjbYPrjVY8PChkliLYQ4dekNE4mHn9/246GxEDMejqz1XkyiXRtyNnB23Nn4W1pfhz87\n7myq66vZU7DHB5H1zObczfgrf7NePP07c+cI8704KXoSGeUZFCeeae7P6PMbg5ifI0sAjLy45f0T\nrjEDlxqnGQvhTmVZ3VtmYI8GV73H1yF7RG25ibu9r9feULX38HC2Olddn7nA6Q4bN25EN+sq2rBh\nAwkJCYSFhbV5vMvlora21uNxeW14mdY6VWv9rNb6PGAoZu/qi4HdSqldSqnfKaWmeiuegUL5+aFs\nNlxdqFg3JdbW1on10NChZJRJK7gQ4hQd2wiDxpgpsO0ZNs1MDW+Y8Cl8I7cyl2Plx0zbdBsah5lt\nOb7Fm2Gdkp35OxkXNQ5bgA1yUiAwBGKSAZgcMxmAXc4KCI6AzL7zdbUr/VsYcjYE2lreP/pSc3uw\nHw1pE71HWVbXB5fBiZbxyr43DPHEevJ2EuvgcHNxy8OJda2zliC/II+eozfJzs7mgQceIDU1lWXL\nlvHss88yf/58ysrKePzxx9m4cSMZGRls3bqV22+/nczMTGbP9vw8EG9PBQdAa52ntX5Fa30VEA08\niUm2/6OU+o0vYurP/Ox2XJVdS6z9lB9RwVGtHhsaOpTCmkKqHF2bLi6EEG3KTum8xXvI2VBTemIL\nk76kvg4+uR8WnQ2b+/bokN0FuwE4Peb0Nh+PCo5idMRoNudu9mZYPebSLvYW7j3R1p67G2InNLWr\nThg0AYuysLNgJySeBVlbfRitG9SUmZ+3EW10h0SNNB8H++5e5KKX0tq0gncnsW6s6lb1wXXWZQ17\nVLdXsVbKtIP3kVbwvmLu3Lk4nU6mTZvGvHnzuOOOO5g/fz7+/v7s2bOHa6+9ljFjxnDVVVdRWFjI\n2rVrmTx5ssfj8vZU8Fa01lXA+8D7SikL0MasenEqLKGhOMu7tsZ6kHUQfm1M4o2zxwGQW5XLyHDp\n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\nsKZwjcdjehpHa46yIm8FNwy8oYP2LT44nru