Skip to content
Permalink
d818227dcc
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
805 lines (805 sloc) 184 KB
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Initial Value Problems - Project\n",
"\n",
"![Initial condition of firework with FBD and sum of momentum](../images/firework.png)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We are going to end this module with a __bang__ by looking at the flight path of a firework. Shown above is the initial condition of a firework, the _Freedom Flyer_ in (a), its final height where it detonates in (b), the applied forces in the __Free Body Diagram (FBD)__ in (c), and the __momentum__ of the firework $m\\mathbf{v}$ and the propellent $dm \\mathbf{u}$ in (d). \n",
"\n",
"The resulting equation of motion is that the acceleration is proportional to the speed of the propellent and the mass rate change $\\frac{dm}{dt}$ as such\n",
"\n",
"$$\\begin{equation}\n",
"m\\frac{dv}{dt} = u\\frac{dm}{dt} -mg - cv^2.~~~~~~~~(1)\n",
"\\end{equation}$$\n",
"\n",
"If we assume that the acceleration and the propellent momentum are much greater than the forces of gravity and drag, then the equation is simplified to the conservation of momentum. A further simplification is that the speed of the propellant is constant, $u=constant$, then the equation can be integrated to obtain an analytical rocket equation solution of [Tsiolkovsky](https://www.math24.net/rocket-motion/) [1,2], \n",
"\n",
"$$\\begin{equation}\n",
"m\\frac{dv}{dt} = u\\frac{dm}{dt}~~~~~(2.a)\n",
"\\end{equation}$$\n",
"\n",
"$$\\begin{equation}\n",
"\\frac{m_{f}}{m_{0}}=e^{-\\Delta v / u},~~~~~(2.b) \n",
"\\end{equation}$$\n",
"\n",
"where $m_f$ and $m_0$ are the mass at beginning and end of flight, $u$ is the speed of the propellent, and $\\Delta v=v_{final}-v_{initial}$ is the change in speed of the rocket from beginning to end of flight. Equation 2.b only relates the final velocity to the change in mass and propellent speed. When you integrate Eqn 2.a, you will have to compare the velocity as a function of mass loss. \n",
"\n",
"Your first objective is to integrate a numerical model that converges to equation (2.b), the Tsiolkovsky equation. Next, you will add drag and gravity and compare the results _between equations (1) and (2)_. Finally, you will vary the mass change rate to achieve the desired detonation height. \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"1. Create a `simplerocket` function that returns the velocity, $v$, the acceleration, $a$, and the mass rate change $\\frac{dm}{dt}$, as a function of the $state = [position,~velocity,~mass] = [y,~v,~m]$ using eqn (2.a). Where the mass rate change $\\frac{dm}{dt}$ and the propellent speed $u$ are constants. The average velocity of gun powder propellent used in firework rockets is $u=250$ m/s [3,4]. \n",
"\n",
"$\\frac{d~state}{dt} = f(state)$\n",
"\n",
"$\\left[\\begin{array}{c} v\\\\a\\\\ \\frac{dm}{dt} \\end{array}\\right] = \\left[\\begin{array}{c} v\\\\ \\frac{u}{m}\\frac{dm}{dt} \\\\ \\frac{dm}{dt} \\end{array}\\right]$\n",
"\n",
"Use [two integration methods](../notebooks/03_Get_Oscillations.ipynb) to integrate the `simplerocket` function, one explicit method and one implicit method. Demonstrate that the solutions converge to equation (2.b) the Tsiolkovsky equation. Use an initial state of y=0 m, v=0 m/s, and m=0.25 kg. \n",
"\n",
"Integrate the function until mass, $m_{f}=0.05~kg$, using a mass rate change of $\\frac{dm}{dt}=0.05$ kg/s. \n",
"\n",
"_Hint: your integrated solution will have a current mass that you can use to create $\\frac{m_{f}}{m_{0}}$ by dividing state[2]/(initial mass), then your plot of velocity(t) vs mass(t)/mass(0) should match Tsiolkovsky's_"
]
},
{
"cell_type": "code",
"execution_count": 165,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"plt.rcParams.update({'font.size': 22})\n",
"plt.rcParams['lines.linewidth'] = 3"
]
},
{
"cell_type": "code",
"execution_count": 166,
"metadata": {},
"outputs": [],
"source": [
"# if state = [position,velocity,mass] = [y,v,m]"
]
},
{
"cell_type": "code",
"execution_count": 167,
"metadata": {},
"outputs": [],
"source": [
"def simplerocket(state,dmdt=0.05, u=250):\n",
" '''Computes the right-hand side of the differential equation\n",
" for the acceleration of a rocket, without drag or gravity, in SI units.\n",
" \n",
" Arguments\n",
" ---------- \n",
" state : array of three dependent variables [y v m]^T\n",
" dmdt : mass rate change of rocket in kilograms/s default set to 0.05 kg/s\n",
" u : speed of propellent expelled (default is 250 m/s)\n",
" \n",
" Returns\n",
" -------\n",
" derivs: array of three derivatives [v (u/m*dmdt-g-c/mv^2) -dmdt]^T\n",
" '''\n",
" \n",
" #neglect gravity and drag\n",
" dstate = np.array([state[1], (u/state[2])*dmdt, -dmdt])\n",
" return dstate"
]
},
{
"cell_type": "code",
"execution_count": 168,
"metadata": {},
"outputs": [],
"source": [
"#implicit heun\n",
"def heun_step(state,rhs,dt,etol=0.000001,maxiters = 100):\n",
" '''Update a state to the next time increment using the implicit Heun's method.\n",
" \n",
" Arguments\n",
" ---------\n",
" state : array of dependent variables\n",
" rhs : function that computes the RHS of the DiffEq\n",
" dt : float, time increment\n",
" etol : tolerance in error for each time step corrector\n",
" maxiters: maximum number of iterations each time step can take\n",
" \n",
" Returns\n",
" -------\n",
" next_state : array, updated after one time increment'''\n",
" e=1\n",
" eps=np.finfo('float64').eps\n",
" next_state = state + rhs(state)*dt\n",
" ################### New iterative correction #########################\n",
" for n in range(0,maxiters):\n",
" next_state_old = next_state\n",
" next_state = state + (rhs(state)+rhs(next_state))/2*dt\n",
" e=np.sum(np.abs(next_state-next_state_old)/np.abs(next_state+eps))\n",
" if e<etol:\n",
" break\n",
" ############### end of iterative correction #########################\n",
" return next_state"
]
},
{
"cell_type": "code",
"execution_count": 169,
"metadata": {},
"outputs": [],
"source": [
"#explicit runge-kutta\n",
"def rk2_step(state, rhs, dt):\n",
" '''Update a state to the next time increment using modified Euler's method.\n",
" \n",
" Arguments\n",
" ---------\n",
" state : array of dependent variables\n",
" rhs : function that computes the RHS of the DiffEq\n",
" dt : float, time increment\n",
" \n",
" Returns\n",
" -------\n",
" next_state : array, updated after one time increment'''\n",
" \n",
" mid_state = state + rhs(state) * dt*0.5 \n",
" next_state = state + rhs(mid_state)*dt\n",
" \n",
" return next_state"
]
},
{
"cell_type": "code",
"execution_count": 170,
"metadata": {},
"outputs": [],
"source": [
"# ICs\n",
"y0 = 0\n",
"v0 = 0\n",
"m0 = 0.25\n",
"mf = 0.05\n",
"u = 250\n",
"dmdt = 0.05\n",
"\n",
"N = 10\n",
"mfArr = np.linspace(m0,mf,N)\n",
"t = (m0-mf)/dmdt\n",
"tArr = np.linspace(0,t,N)\n",
"dt = tArr[1]-tArr[0]\n",
"\n",
"#initialize arrays\n",
"num_solrs = np.zeros([N,3]) #Runge-Kutta\n",
"num_solhs = np.zeros([N,3]) #heun\n",
"\n",
"#ICs\n",
"#Runge-Kutta\n",
"num_solrs[0,0] = y0 \n",
"num_solrs[0,1] = v0\n",
"num_solrs[0,2] = m0\n",
"\n",
"#Heun Method\n",
"num_solhs[0,0] = y0\n",
"num_solhs[0,1] = v0\n",
"num_solhs[0,2] = m0\n",
"\n",
"#Tsiolkovsky solving for velocity\n",
"massfrac = mfArr/m0\n",
"v = -np.log(massfrac)*u\n",
"\n",
"\n",
"for i in range(N-1):\n",
" num_solrs[i+1] = rk2_step(num_solrs[i], simplerocket, dt)\n",
" num_solhs[i+1] = heun_step(num_solhs[i], simplerocket, dt)\n"
]
},
{
"cell_type": "code",
"execution_count": 171,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#time plot\n",
"fig = plt.figure(figsize=(6,4))\n",
"\n",
"plt.plot(tArr, v, lw=2, linestyle='--', label='Tsiolkovsky')\n",
"plt.plot(tArr, num_solrs[:, 1], lw=2, linestyle='--',label='Runge-Kutta solution')\n",
"plt.plot(tArr, num_solhs[:, 1], lw=2, linestyle='--', label='Heun solution')\n",
"\n",
"plt.xlabel('Time [s]')\n",
"plt.ylabel('$V$ [m/s]')\n",
"plt.title('Simple Rocket Model with Runge-Kutta and Heun methods against Tsiolkovsky.\\n',fontsize='16');\n",
"plt.legend(fontsize='10');"
]
},
{
"cell_type": "code",
"execution_count": 172,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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+d7Bfe2114YqJKVco0mjypvK10LavsUtJ05yy7GTJKWdYtyGcW5HpZTrChUqxOrVq1m7di2lSpVi+PDhbocE2MfnLF68mClTplCwYMEMy13opDFYvkmjd4xK5RWaNKo8K6JeN07G3MVzBw7Q9VhZnqjXz+2QlMpRrrnmGnbu3AmcXevXu3fv9N+Djo6OZuDAgdSrV4/Y2Fg2bNgAwL59+2jRogX16tXjwQcf5LLLLmP//v0AfPXVV1x99dXExcXx4IMPkpqammEcb775Jt9//z3fffcdhQoVSp+nZ1rLly+nWbNmbNu2jQ8//JC3336buLg4FixYwNSpU+nbty9xcXFs2bKFjz/+mPr161OnTh06duzIyZMnz5rfggULiIuLIy4ujrp163Ls2DGMMfTt25eYmBhiY2MZN+7sL5kjR46kd+/e6e/btm3L/Pnz6d+/PwkJCcTFxdG1a1fA/jIOkOF058+fT7Nmzbj99tupXr06Xbt21b7XKsfTu6dVnlb41rc4XKwKT9/wOBJRwO1wlDrToOIZf9b2PxB/r/1/+ecw7YlMpnPknGedmprKnDlz6NmzZ1Dly5Qpw8qVK3n//fcZNmwYn3zyCS+++CI33HADAwYMYMaMGYwYMQKwv2Iybtw4Fi9eTGRkJL169WL06NHcfffdZ0138eLF/PHHH6xYsSI90cpIdHQ0Dz30EEWKFKFPnz4AtGvXjrZt23L77bcDUKJECe6//37ANnd/+umnPProo2dMZ9iwYQwfPpxGjRpx/PhxoqKi+Oabb1i9ejW//fYb+/fvp379+jRp0iSodTN06FDee+89Vq9efdZnmU131apV/P7771SqVIlGjRqxePFiGjduHNQ8lXKD1jSqvC2yECVa9kOch37/fXQ39898iO1Ht7scmFLu8NSIlS5dmoMHD9KiRYugxuvQoQMAV111Fdu2bQNg0aJFdOnSBYBWrVpRsmRJAObMmcOKFSvSf896zpw5bN261e90q1atijGGWbNmneeSWWvXruW6664jNjaW0aNH8/vvv59VplGjRjz11FO88847HD58mIiICBYtWsSdd95JeHg45cuXp2nTpvz666/nHU9m07366qupXLkyYWFhxMXFpa9XpXIqrWlU+cbuPbt49ZsO/HzRCfos6MPoNqMpEK61j8pFwdYQxt97utbxPHn6NB45coS2bdsy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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#mass frac plot\n",
"fig = plt.figure(figsize=(6,4))\n",
"\n",
"plt.plot(massfrac, v, lw=2, linestyle='--', label='Tsiolkovsky')\n",
"plt.plot(massfrac, num_solrs[:, 1], lw=2, linestyle='--',label='Runge-Kutta solution')\n",
"plt.plot(massfrac, num_solhs[:, 1], lw=2, linestyle='--', label='Heun solution')\n",
"\n",
"plt.xlabel('Mf/M0')\n",
"plt.ylabel('$V$ [m/s]')\n",
"plt.title('Simple Rocket Model with Runge-Kutta and Heun methods against Tsiolkovsky.\\n',fontsize='16');\n",
"plt.legend(fontsize='10');"
]
},
{
"cell_type": "code",
"execution_count": 173,
"metadata": {},
"outputs": [],
"source": [
"# both plots converge with significant accuracy (N of only 10 yields a virtually identical plots)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"2. You should have a converged solution for integrating `simplerocket`. Now, create a more relastic function, `rocket` that incorporates gravity and drag and returns the velocity, $v$, the acceleration, $a$, and the mass rate change $\\frac{dm}{dt}$, as a function of the $state = [position,~velocity,~mass] = [y,~v,~m]$ using eqn (1). Where the mass rate change $\\frac{dm}{dt}$ and the propellent speed $u$ are constants. The average velocity of gun powder propellent used in firework rockets is $u=250$ m/s [3,4]. \n",
"\n",
"$\\frac{d~state}{dt} = f(state)$\n",
"\n",
"$\\left[\\begin{array}{c} v\\\\a\\\\ \\frac{dm}{dt} \\end{array}\\right] = \n",
"\\left[\\begin{array}{c} v\\\\ \\frac{u}{m}\\frac{dm}{dt}-g-\\frac{c}{m}v^2 \\\\ \\frac{dm}{dt} \\end{array}\\right]$\n",
"\n",
"Use [two integration methods](../notebooks/03_Get_Oscillations.ipynb) to integrate the `rocket` function, one explicit method and one implicit method. Demonstrate that the solutions converge to equation (2.b) the Tsiolkovsky equation. Use an initial state of y=0 m, v=0 m/s, and m=0.25 kg. \n",
"\n",
"Integrate the function until mass, $m_{f}=0.05~kg$, using a mass rate change of $\\frac{dm}{dt}=0.05$ kg/s, . \n",
"\n",
"Compare solutions between the `simplerocket` and `rocket` integration, what is the height reached when the mass reaches $m_{f} = 0.05~kg?$\n"
]
},
{
"cell_type": "code",
"execution_count": 174,
"metadata": {},
"outputs": [],
"source": [
"# state = [position,velocity,mass] = [y,v,m]"
]
},
{
"cell_type": "code",
"execution_count": 175,
"metadata": {},
"outputs": [],
"source": [
"def rocket(state,dmdt=0.05, u=250,c=0.18e-3,g=9.81):\n",
" '''Computes the right-hand side of the differential equation\n",
" for the acceleration of a rocket, with drag, in SI units.\n",
" \n",
" Arguments\n",
" ---------- \n",
" state : array of three dependent variables [y v m]^T\n",
" dmdt : mass rate change of rocket in kilograms/s default set to 0.05 kg/s\n",
" u : speed of propellent expelled (default is 250 m/s)\n",
" c : drag constant for a rocket set to 0.18e-3 kg/m\n",
" Returns\n",
" -------\n",
" derivs: array of three derivatives [v (u/m*dmdt-g-c/mv^2) -dmdt]^T\n",
" '''\n",
" dstate = np.array([state[1],(u/state[2])*dmdt-g-(c/state[2])*state[1]**2, -dmdt])\n",
" return dstate"
]
},
{
"cell_type": "code",
"execution_count": 176,
"metadata": {},
"outputs": [],
"source": [
"#ICs\n",
"\n",
"N = 10\n",
"mfArr = np.linspace(m0,mf,N)\n",
"t = (m0-mf)/dmdt\n",
"tArr = np.linspace(0,t,N)\n",
"dt = tArr[1]-tArr[0]\n",
"\n",
"\n",
"#initialize arrays\n",
"num_solrr = np.zeros([N,3]) #Runge-Kutta\n",
"num_solhr = np.zeros([N,3]) #heun\n",
"\n",
"#ICs\n",
"#Runge-Kutta\n",
"num_solrr[0,0] = y0 \n",
"num_solrr[0,1] = v0\n",
"num_solrr[0,2] = m0\n",
"\n",
"#Heun Method\n",
"num_solhr[0,0] = y0\n",
"num_solhr[0,1] = v0\n",
"num_solhr[0,2] = m0\n",
"\n",
"#Tsiolkovsky solving for velocity\n",
"massfrac = mfArr/m0\n",
"v = -np.log(massfrac)*u\n",
"\n",
"\n",
"for i in range(N-1):\n",
" num_solrr[i+1] = rk2_step(num_solrr[i], rocket, dt)\n",
" num_solhr[i+1] = heun_step(num_solhr[i], rocket, dt)\n"
]
},
{
"cell_type": "code",
"execution_count": 177,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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RE/DqmrQFsoqRETCgPeBo9i7r30azXk1RZ1cMcfLxRjzljEm3hgTX79+5fkp2pSUFAYMGEBMTAxRUVHMmjULgB49euQkoB999BHR0dFERUXx8MMPF1jfli1biIuLY8WKFaSmpnLttdcSHR1Nx44d+fHHHwGIj4/P1frZo0cPVq1axQ8//EBMTAyxsbF07NiR48dz5/hLliyhY8eOJCUl0bJlSw4ePAhAVlYWZ599ds57pVT5efPHJAa+togNu4/6OxSlSoV+NapangFaAf8wxuzycZwU57VGAWVcn6W4DSvueCUS+eDX+X72zOBoru5qWzmnLdnOw5+vzrds8oRLSxTHN998Q2RkJN9++y0AR47kvol+586dPPLIIyxbtozatWtz0UUXMWfOHAYOHJinrvXr13P11VfzwQcfEB0dzXPPPUdISAirV69m7dq1XHLJJWzevJkRI0YwY8YMHn30UXbu3MmBAweIiYlhwIABvPXWW3Tt2pVjx44RGhqaU/dPP/3EPffcw5dffklERAQjR45k2rRpjB07lu+//57OnTtTt27dEi0LpVTRLE0+yL/nbiIr27DrcBptGtXyd0hKlZi2UFYtg4Fs4FoRSXD/A/o7ZW51hr3jvE92XpsXUG9Tj7IlGa9K6NChA9999x0PPvggixcvpnbt2rk+X7JkCRdeeCH16tUjODiYq6++Oqel0d2ePXsYPHgwH3/8MdHR0QAsWrSIa665BoD27dvTpEkTtmzZwvDhw5k5095QP336dIYPHw5A9+7dufvuu3nttdc4evQogYGBAKxZs4bbbruNOXPmEBERAcD111/Pf//7XwDee+89rrvuujJYOkqp/Bw8fpI7pq0kK9twc6+zuaBNA3+HpFSp0BbKqicA6FXA52c7f3Wc9yud1/YiEpbPHdudPcqWZLwS8bVl8equzXJaK8tC27ZtWbZsGd988w3jxo1j4MCBuS5rG+NbT4A6derQpEkTFi9eTJs2bQoct3nz5tSoUYN169Yxffp0pkyZAsAjjzzC5Zdfztdff03nzp1JSEgAoEmTJhw/fpzExET697ffJyIjIznzzDNZsGABK1eupF+/fsVcAkqposrONtw7I5HdR9Po1PxM7uvX2t8hKVVqtIWyCjHGRBpjxNsf9jFCAOOcYbHOODuAFUAIMMyzThHpBURgfw3nF7dpFWu8quLP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OqKjo4mLi2PBggV5xstvug8++CBJSUnExsYybtw4kpOTiYqKKrDeKVOmcOWVV9K/f3/OPfdc7r///tJbcEpVAkdSM7h92goysgxjzo+kf5Re6lYqP3pTjqpUov8bne9nj533GMNaDQNg5qaZjP9lfL5lV1+72udppqamEht76vEgBw8e5PLLLwfgrrvu4p577qFHjx5s376diy++mPXr1xdY3+bNm/n44495++23GT58OJ9++imjR4/OVWb8+PF8//33nHXWWRw+fBiASZMm2dhXr2bDhg3069ePTZs2+TQPEyZMYM2aNTm/ypOcnJzzWUH1JiYmsnLlSqpVq0br1q254447aNq0qU/TVKqyO3Iig+ohgUSfVZuHLtHf6VaqIJpQKlWIsLCwXD+POGXKFFw/ETlv3jzWrVuX89nRo0dJSUkpsL4WLVrkJKidOnXKldy5dO/enTFjxjB8+HCuvPJKABYtWsQdd9wBQJs2bWjevLnPCWVBCqq3T58+1K5dG4B27dqxbds2TSjVaaNZeHW+uL0HR1IztN+kUoXQhFJVKr62LA5rNSyntbIsZWdn88svvxAWFpZreFBQENnZ2Tnv09LScv6vVq1azv+BgYFeL3m/+eabLFmyhK+//prY2FgSExN9evZdQdPNT0H1esaamZlZaH1KVXYHj5/kzOrBiAhhIYGEhWgyqVRhtA+lUiXQr18/Xn/99Zz3rpbMyMhIVqxYAcCKFSv4448/ilRvUlISXbt2Zfz48dSrV48dO3bQs2dPpk6dCsCmTZvYvn07rVu3zjVeftOtWbNmvi2nvtSr1OniSGoGgyYt4t4ZqzhxUr9AKeUrTSiVKoFXX32VZcuW0aFDB9q1a8ebb74JwJAhQzh48CCxsbG88cYbtGrVqkj1jhs3jujoaKKioujZsycxMTHcdtttZGVlER0dzYgRI5gyZUquFsSCphseHk737t2Jiopi3LhxucbxpV6lTgfGGB6Y9Ts7DqayeW8KgQHi75CUqjREf0JKVRTx8fHG1TfRZf369bRt29ZPEanKSLcZVVz//TmZx79cS81qQcy5swfNw8/wd0g+EZHlxph4f8ehTm/aQqmUUuq09/vOw/zra/uEhglDOlSaZFKpikITSqWUUqe1o2kZjJ22kpNZ2fz9vOb604pKFYMmlKrC024Zyle6rajieP2HLWw/eIL2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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#time plot\n",
"fig = plt.figure(figsize=(6,4))\n",
"\n",
"plt.plot(tArr, v, lw=2, linestyle='--', label='Tsiolkovsky')\n",
"plt.plot(tArr, num_solrr[:, 1], lw=2, linestyle='-',label='Runge-Kutta solution')\n",
"plt.plot(tArr, num_solhr[:, 1], lw=2, linestyle='--', label='Heun solution')\n",
"\n",
"plt.xlabel('Time [s]')\n",
"plt.ylabel('$V$ [m/s]')\n",
"plt.title(' Rocket Model: Runge-Kutta, Heun, Tsiolkovsky accounting for drag and gravity.\\n',fontsize='16');\n",
"plt.legend(fontsize='10');"
]
},
{
"cell_type": "code",
"execution_count": 178,
"metadata": {},
"outputs": [],
"source": [
"# here there is significant divergence between the two models (Runge-Kutta and Heun) compared with Tsiolkovsky's\n",
"# solution. That is because Tsiolkovsky's simplified equation (Eq. 2.b) does not account for gravity and drag,\n",
"# but our models do. In the simplerocket case, our models neglected these factors, which showed that\n",
"# the solutions then converge. If we accounted for these in Tsiolkovsky's equation here in rocket function, we \n",
"# would again see convergence"
]
},
{
"cell_type": "code",
"execution_count": 179,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAfMAAAE+CAYAAACZefkhAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nOzdd3gU1frA8e+b0EPvTQgoIhBCIKGKgFJV5EpTVEroyJWmAio/KQpWVFC4YENEUVGK6MWLCgIiIBqq9A5ShYQOqXt+f8xsWJaUzWbT4P08zz7Jzpw2uzNzds6cOUeMMSillFIq5/LL6gIopZRSKn20MldKKaVyOK3MlVJKqRxOK3OllFIqh9PKXCmllMrhtDJXSimlcjivKnMRaSwiX4vIcRGJFZFIEflZRHqJiL+vC5kdiEigiBgRCc+CvA/ZeTtf5+zPu2kG5hlu53WHD9IKFJHxIlLVw/Cz7bz/FpEb9lE7LednkSu95bPTdG5voBdxjYiMTyVMC7vcPv0BLSIhIrJARI6ISIyInBCRFSIy1CVMVu67K0VkpY/SCnT53gcksT5ARC7a6yf6Ik873UMiMtuLeONFJNVnf71NP4X0ssv2O7+vfh6EHS8i93lVQB+yzwN9klnu1fkhs6T5xCIiw4E1QHFgNNAK6APsAWYA7X1ZwGzkBNAYWJJF+f9o5383MAy4HfghO+9cLgKBcYBHlbntClAeuDeJdd2Bi+kvVqZqgfUZ+KwyF5H6wO9ASWAU0BYYCewGOroEzep919cuAj2SWN4ZyIkDZ3QEXs7qQqQgM8o3DsjyyhwIx6rP3C3BOoZOZGpp0iBNVzUi0gx4G5hmjBnqtnqxiLwNBPiqcNmBiAiQ2xgTg3XizCpnjDHO/NeKyD7gN6Ab8FrWFSvDnAV2YZ20lzsX2q0RVYE5QK+sKVq2MQQ4B7Sx90+nz11bALLBvutrC4GeIlLFGHPQZXlPYAHWCTnHMMZsyuoypCS7ly8zGGNOA6ezuhwpSetVwnNAFNZVwA2MMfuNMVud70WkgYgsE5FLInJZRJaLSAPXOHaT6lERCRORtSJyVUR2i8iD9vqn7WaeCyKyWERKucU3IjJJRMbY6VwVkV9FJMQtXBsR+cFuhrwiIttE5Bn32wJ2Xp+LSB8R2QXEAg8m1VTpUva6IrLaTneviAxy/2xEpJWIbBKRaBHZJyL97PiHPPvob7DR/lvJLZ/cIjLR3o5Y++9EEcntFi5ARF4Tkf128+xJu7m2THIZikioiJwSkYUiks9elktEnheRXXY6x0XkLZf1LYAVdhI/uzSTtvBgG+cAnUWkgMuynsBq4FAS5fN026uKyBL7+zotIlOBvMlsc38R2WJ/b2dE5GMRKe5B2V3TGI915QEQ5/wMXNaXE5E5dvoxIrJVRLp7kHRx4KxbRQ6AMcbhkn5K+26GHnfJfB4lRWSGiByzt3eXJNFsnoLfgANYLTTONCtiteLMSSbPVM9Fdrhh9nZHi0iEiNyTTHpVRGSuvf/EiMhmEemYVNjUiFsztlxr0m1k53HBPq7edR5XHqY7VEQOinXrYZWI1EoiTCcR+d0+Fs6JyDci4n5OuaGZXdJ2PvMXkZfEOveeE5Hv7e/LmZbzWBjjcn4Yn8w2PWKvD05i3f9EZLPL+2EistPeN8/a32ey35FYt4OaA3e7lGOlve6GZna5Vlf0sI+dq2LVA9XEOr++L9Yt6FNinRNzueWX3uPgesYYj16AP1bT5xcehg8GrgIbgC5YTWB/2svquISbDVwAdmA1b7TDOllHA28B3wMP2usuAF+75WOAv7Ga/h8GHsVqZowEiruEGwQ8A9yPddCPxGque80tvUPAMWAb8BjQEqtJO9DOKzyJsu8EBgKtgS/scPe6hKsJxNjb9TDwCPAXcAQ45MFneQj43G1ZDTufZ9yWfwHEAy8BbbAqkTjX7w3IA6y1v88X7XJ3AT4E7rLDhNvp32G/b2N/XjMBf5e0vgIuA2Oxbrk4rxYX2OsLA4PttIYAjexX4RS2dzZwFKuV5xLwuL08L9YVe19gvJ1mLi+2fT9wHOiNtW99Z+9DBgh0CfuaHf8tO73e9r6x3u0zMMD4FLanIvCRHe5u52dgrwvAukV1GhiAtX/OtcMOSGW/GGuHmwk0cP0s3MIFkvy+m9HH3Upgpcv7wna4I0B/e595E0gAhqSyvc7t6Gd//3tc1j0HHAbEDjPRi3NRXzvuJ/bn8RTWfngemO0S7jbgH6xzRHes2xuzAAfQwSXceMB4eHy7ph9ul2Mv1r7cCus4TQAmeJCesdP8Eehgb/NBYB/XHy+D7LCzgAfs73CnHbZQCuXz6Hzm8n0dwjo278dqTTsDrHIJ18jlc3eeHyoms235sM4vb7gtL4N1rD5jv38C61wwFut8/4C9j/RN4XOriXWRtMWlHDXdvpNAt8/lCLDO5XM4DmwFvgUmY51bX7bjDvbFcZBs+T0OaH1YBnjVw/Dz7Q+9qNsGRAEL3U4qBmjmdvAZe2NdT5pv21+Y+4n0DBDgthPFAS8nUzbBusUwBqty8HP7gq4AZZM5kbifEN0r7rx2eT5wWfYF1sm6gMuyclgnzkNJlTGJg32uXeY89k63CqsSKOYSLogkKhbg/+zlwfb7Pvb7Dink6dx578A6MGKBl9zC3GOH6em2/Al7eYj9voX9vpWH+85s4Kj9/xxgqf3/I/Z3Uxi3yjwN297fft/IJYwfsB2Xg9X+vhOAsW7p3W2He9htHxyfyjZdV16X5U/Zy1u4LV+GVWH4p5BmfmCRHd/Yn81P9ja6HiOBJL/vZuhxx42V+YtY+301t2350E4vyR8kbtvRD+tWS+L3aH9/k1zK5lqZp3ousveBv537mku4R+30Zrss+xjreC7hFvZnYLP7d+7h8e2afrid5wS3cP/F5QdMCuk5fwjkdlnWxV7exH5fEOtHyqwkPuNYYHgK5fPofObyfa1yy+NZe3l5tzJPTG3bXPaVo1x/3h6OVXmXs99PAzZ6kp5b2iuB35JY7vxOAt0+lyigiMuyoXa4j9zibwRW+OI4SO6VkY+mNQP+a4w551xgjLmAdRXU3C3sZWPMry7vd9l/lxljEtyW58LacVz9YIy57JLPIax7hI2dy8RqynxfRA5j7axxwESgKFDaLb3fjTEnPdpKuGKMWeGSdwzWgeTaVNXILuMVl3AnsK6OPfW4XeYYrBNXEPCQMeasS5hm9t/P3eI63zs/9zbASWPMdx7kOxzrxD/MGDPWbV07rM9ygVjN7bnspqSf3MqTHnOAViJSFquJfbG9H7nzdNsbA3+ba/0PMFaT9Ndu8VpjneDnum3beqwrVV9sm7Pcx4wxK5ModymsH25JMsZcNcZ0BGphtTT9DwgDPsDqHCmp5J3hx10S2mF9hgfdPtcfgRKksL2ujDEHsFoFeohImB0vySZ2PDsXVbRf7vvBAqxKwn0bfgDOJ7ENdUSksCfb4AH3Dot/4XZbLQU/G2Pi3OLiEr8x1g8a9/37KNb3ndL+ndbzWVLb4VqWtPoMqMD1HeZ6YO23zg5qfwIhIvKefUuggHsiPrLOGHPe5b3zGPrRLdwurBYdJ58cB67S0gEuEqtZqrKH4YuTdM+/k0Axt2XnXN8YY2Lt89BZt3Cx9l/3+0anksjnFNZJDrE6A32H1Tt6PNYHexWraWRMEumlpceiexnBqnBd0yyHdZWVVBk97eH9P6wmo9xYTaqvAgtFJNQYE22Hcd7LdS//Sbf1JbCaiz3RzQ67IIl1pbFaCi4lE7eEh3mk5Bes7RmB1ZzZIZlwnm57OZLfX1w5f+DtSyY/X2wbpHycONenyBizA6u5HPue6odYzb8PYl3NJSdDj7tklMZq7YlLZn1aPtc5wCtYtwD/MMbsTiacJ+ci5w+V67bJGBMvIpFu8Upj/bDsmUx+JbB+8KVXlNv7GJLp2+FhXLj2HTr372XJxE/qvOaU1vNZamVJK2efmR7AMhGpAdTDpQ8F1r6RD+vWyWCsvio/AE/bPzp9JbljJanlrtvry+MASENlbu/UK4HWIpLXJNHpxk0UUDaJ5WW58ctNr6Q6bZXhWoV1O9YVSw9jTOKVm4g8lEx6xrfF4wQ3Xv1D0uVOTpQxJsL+f52InMe6xzQE614LXPtcy2LdF8blPVg/yMBqxgnyMN/OWFd6K0XkPrcWi0ispqIkOwlh3T9KF2OMQ0TmYl15/sO1q353nm77CZKubNy/C2f4NiR9YnM/wXsrCqiexHL3cnvEGBMtIm9indhqknJlnl6pHXdJicT6Hoclsz65CjkpXwNTsW4ruD9d48qTc5Gzsr9um+yrJfcTayRWhfJ6Mvmle7/PBM79Khyrpc9dSo9++uJ85jVjjBGRz4HhIvIkVqV+CeuWU2IY4H3gfREphnUcvwXMAxpmRjlT4cvjAEh7b/bXsHbsN5NaKVYPT2cvw1VYvcALuawvBDxkr/OlB0Qk8ZE4u8dhI6yOCQDOJpY4lzC5se7tZobfscqY2NQjIuWw7r9661Os+zAjXdJ1fq7d3MI6t9PZpPoTUDaFHzOujmHd8/YDVtjldlqK9WuziDEmIomX86Tm/OGX35MNS8IsrA5ZE92af115uu3rgNtEpJEzgN1y84hbvJ+xOjRVSmbbDqZxG5L7DFYBFUXEfV94HOtg35lcgq49gt3cZf/N6GdiUzvukrIUq3xHkvlcPR4/wG42fxWr1e2rFIJ6ci46inXP3H0/6MyNFz1LsfoXbE9mG1K70MkO1mJV2Hcksw0pVSYZcT6LJW3nh8+w7vt3wjrGF7g2+7syxpw1xszD+vGX2kVMTBrL4S2fHQdOaXrO3Bjzq4g8DbxtN23MxuqNVwyr13c/rJPQVqwefO2B5SLyOtbV7misivWltBY0FVeBn+wrkrzABKxmrnfs9TuxerpOEpEErEp9hI/LkJKJWB1QfhSRyXYZX8RqlnKkFDE59q/TsVhXXk8CbxljtovIl8B4+4piLda9sReBL821xwY/x7qa+VJEXsW6d1MIqxl7ijFml1teJ8R6lGw51hX6vcaY48aYlXZ+88UaY+APe3sCsXqPjjbG7MHqqBcP9BGRKKwDZrenO6ydxsOphPF02z/F6tW6UERewKowB2HdP3RNb7+9304TkepYJ/1orPterbE6uKzAczvsv8+IyP+ABLulZTbWr/OFIjIGq1J5ws5jYAo/XgBmivUo4WdYPav9gfpYj47ux+VKJYOkdtwl5R2sTmWrReQdrCuQAKwT2z3GmH+lpQDGGE/OJamei+wWoAnARyLyCdaPgzuA57mxyXws1r7+q4hMw2ryLYZVUVQ1xiQ16Ei2Yoy5ICIjgeliPXb4P6wOcRWw+hGsNMZ8kUx0n5/PsI6PB0VkKVZL2HGXi4Gkyr9HRNZjXWBWwDoGEonIB1g/VtZhHeN3Yl3BJ9ey51qOwSLyKNYxdDGVHzbe8ug4EJHKdjleSnVfT62HXFIvoAnwDdYv/zispqqfsJr2XHsYNsS6J3MJ6/Gl5UADt7RmY/dcdlt+Q+9G3B6Xcgk3CXgB60QYjdUEFuIWNwTr+dQrdriXsH58JNVD8fMkyhNI0j2Ckyr7Slx68NrLWgObsSqyA1iPsi0CNnnweSdZJnvdGvt7yG+/z411sB22v5vD9vvcbvEKYrWwODsEnsDq9Vs6hc+6NFbnlT1ABXuZH1ZltMX+7M/b/7/B9b08B9rbHU8Svbc92SfcwoznxkfTPN32qlgdmK5g9cqdapfvun3BDtsD60rkMtZ+vBOrp2xFlzCe9Gb3B6ZjnVgcuPRyxroH+RnW7Y8YrB/D3T3YL9pi/TjZjXXiisE68KcBZbzcd3193K3kxmOhGNbJ7KC97/1jxx2eyvY6t6NfKuGS2oZUz0V2uGH2fhMNRABNcevNbYdzPm54jGvHz8+u3xvp781+h1s4T9NLavtv2Afs5Q9gjQNxAevH2T6slrCayZXPXpbq+Sy574trT7e0cFl2N9ajg9F4cDzZcf5th72uZ7u9rpe97/1jl/Ggvc8l+0isHa8s1rnhop32SrfvJNDtc3F/ZNi5ba3cls/G7XjDg+PA5TNM9fMQO0KOJdaAA5OMMf+X1WVJCxEpiHXgLDHG9M3q8iiVFjn1uFMZQ89nWc8nk1So1InIe1hNv8exetUPw/plNjUry6WUUmml57PsRyvzzJMPq/drGawmlT+wmmK2phhLKaWyHz2fZTM5vpldKaWUutVl5AhwSimllMoEWpkrpZRSOZxW5koppVQOp5W5UkoplcNpZa6UUkrlcFqZK6WUUjmcVuZKKaVUDqeVuVJKKZXDaWWulFJK5XBamSullFI5nFbmSimlVA6nlblSSimVw2llrpRSSuVwWpkrpZRSOZxW5koppVQOp5W5UkoplcNpZa6UUkrlcFqZK6WUUjmcVuZKKaVUDpcrqwtwsylZsqQJDAzM6mIopVSOsmHDhjPGmFJZXY6cSitzHwsMDCQiIiKri6GUUjmKiBzO6jLkZNrMrpRSSuVwWpkrpZRSOVy2r8xFJL+IjBKRP0XknIhcEZGDIvKNiNydTJzHRWS1iJwXkUsiEiEi/xaRFLfX23hKKaVUVsrW98xFpArwE3AH8A+wCogBAoF/AVuANW5xpgODgWhgORAHtASmAS1FpKsxJiGJvLyK54m4uDiOHj1KdHS0N9GVD+XLl4+KFSuSO3furC6KUkr5TLatzEUkAPgZuB14GXjZGBPnsr4EUMItTmesCvkk0MwYs9deXgZYAXQEngKm+iKep44ePUqhQoUIDAxERLxJQvmAMYbIyEiOHj1KlSpVsro4SinlM9m5+fj/sCryOcaYsa4VOYAxJtIYs8ctzvP239HOCtkOewp40n77XBLN5t7G80h0dDQlSpTQijyLiQglSpTQFhKl1E0nW1bmIpIH6G+/fc3DOBWBUCAW+MZ9vTFmFXAMKAs0Sm+8tNKKPHvQ70EpdTPKlpU5VuVaAvjbGLNTRJqIyCsi8r6ITBCRxknEqWv/3W6MuZpMun+6hU1PPKWUUipbyK6VeW37714RmY3Vye15YAAwFlgrIvNFJL9LHOdN0JQGHjjiFjY98XIUf39/QkJCCAoK4qGHHuLcuXNJhhs/fjyTJ08GrNsDrVu3ZsKECTeEmzVrFrVr1yY4OJigoCAWL14MwNixY1m2bJlPyhwYGMiZM2d8kpZSSt3MsmsHuOL232aAPzAZmAlE2sv+A3QGLgB97LAF7b+XU0j3kv23kMsyb+MlEpEBWD80qFSpUgrJZJ38+fOzefNmAHr16sX06dMZM2ZMsuFjY2Pp3LkzoaGhjBs37rp1R48eZdKkSWzcuJEiRYpw6dIlTp8+DcBLL72UcRuhlFIqSdn1ytxZrlzAx8aYkcaY/caYc8aY74CHAQP0EpGqdljnzVCTxry8jZfIGPOBMSbMGBNWqlT2H1q4cePGHDt2LNn18fHxdOvWjWrVqvHaazd2Wfjnn38oVKgQBQtav4MKFiyY2Ds8PDyc+fPnA9aV9QsvvEDjxo0JCwtj48aNtG3blttvv52ZM2cCsHLlSpo1a0bHjh2pWbMmgwYNwuFw3JDn559/ToMGDQgJCWHgwIEkJHj1lKBSypfiomHVmxBzKfWwKkNl1yvziy7/f+i+0hgTISIbgDCgBXDAJU5B9/AunOtc0/c2nlcCn1uS3iSSdOi1Bz0Kl5CQwPLly+nbt2+yYd544w1atWrFlClTklxfp04dypQpQ5UqVWjZsiWdOnXioYceSjLsbbfdxrp16xgxYgTh4eGsWbOG6OhoatWqxaBBgwD4448/2LFjB5UrV6Zdu3YsXLiQLl26JKaxc+dO5s2bx5o1a8idOzeDBw9m7ty59OzZ06NtVkplkF/fhNWTcRxZR6/Y0TzWoBIP1C6X1aW6JWXXK/NDLv8fTCaMc3lZtziVU0j3tiTS9zZejnL16lVCQkIoUaIEUVFRtG7dOtmwTZs2Zd26dezZ4/7kn8Xf35+lS5cyf/587rzzTkaMGMH48eOTDNuhQwcAateuTcOGDSlUqBClSpUiX758ifftGzRoQNWqVfH39+exxx7jt99+uy6N5cuXs2HDBurXr09ISAjLly/nwIEDXnwKSimfObEV1kwBhG8CHmP13jO88sNOouO01SwrZNcr840u/5cATicRpqT919m+s8n+W0tE8ifTM72+W9j0xPOKp1fQvua8Z37+/Hnat2/P9OnTGTp0KGPGjGHJEqu1wHlPvVmzZvTq1Yv777+f1atXU758+RvSExEaNGhAgwYNaN26Nb17906yQs+bNy8Afn5+if8738fHxyem5Z62K2MMvXr14tVXX/X+A1BK+U5CPHz3FDjiiawVzpiIAMDwZpc65Mvtn9WluyVlyytzY8wxYL39tqX7ehEpBtSz30bYcf7G+hGQB+iaRJzmQEWsUd7WueTlVbycqkiRIrz77rtMnjyZuLg4Jk2axObNmxMrcqfOnTszcuRI2rVrd0PP9+PHj7Nx47XfW5s3b6Zy5ZQaNlL2xx9/cPDgQRwOB/PmzaNp06bXrW/ZsiXz58/nn3/+ASAqKorDh3W2RKWyzO/T4cQWTOGK9D/2APEOQ8/GlWl8e4nU46oMkS0rc9sk++9YEQlxLhSRfMAMoAiwgesrWOel2+sicodLnNJYPeABXjPGuPew8jZejlS3bl3q1KnDV199lWK4QYMG0alTJzp06HDdqGlxcXE8++yz3HXXXYSEhDBv3jymTvVqpFvA6pD33HPPERQURJUqVejYseN162vWrMnEiRNp06YNwcHBtG7dmhMnTnidn1IqHSL3w4pXAFhUcSQbT8ZzW/H8jG53VxYX7NYmxnjdiTvDicibwLNYo7Otx3o0rQFQHmtUtntdh1+14/wHawjWaGAZ1yZMKQx8C3RJZqIVr+K5CwsLMxEREdct27lzJzVq1PB4u28lK1euZPLkyfz3v//NtDz1+1AqHX6dDL+8zLlqnQjb3pV4h+HL/o3SfVUuIhuMMWE+KuUtJ7veMwfAGDNSRNYCQ7BGXyuANYDL21hXyjfcSzfGDBaR34B/A82xnlPfBcwCZiR3de1tPKWUuqU0e5a4EnfR/0e0eT0bydaVOYAxZhGwKI1xvgC+8CIvr+Ip77Vo0YIWLVpkdTGUUmnw3vE7+fOfvdq8no1k53vmSimlsgNj4KcX4cQWth07z39W7APgjc51CMib7a8Jbwn6LSillErZ9oWw9l3Mps8Zk+d94h2GXtq8nq3olblSSqnkXYmCH0YBsKz8QLaciqNS8QKMvl+b17MTrcyVUkolb+nzcOUMl8o1ZvDOIADe6BJMgTzasJudaGV+i3BOiuI0e/ZsnnrqqQzNc/fu3bRo0YKQkBBq1KjBgAEDAIiIiGDo0KE+ycN1ylallI/tXQZbv8LkyseQS+HEOYTwJoE0qqrN69mN/rRSGWbo0KGMGDGCf/3rXwD89ddfAISFhREWpo+TKpWtxVyE/w4HYHWF/qzYXYjKJQowql31LC6YSopemStOnz5N586dqV+/PvXr12fNmjXAjVe9QUFBHDp0iEOHDlGjRg369+9PrVq1aNOmDVev3jik/YkTJ6hYsWLi+9q1awPWQDHt27dPzKNXr160adOGwMBAFi5cyKhRo6hduzbt2rUjLi4OsKZTHT16dOJ48Pv27bshv/3799OuXTtCQ0O555572LVrl+8+JKVuNSf/gqvnuFqyNv32NgTgjc7avJ5d6beSFcYXSX5d+ykQ1tv6P+KTxF/GSadz3uMsnbOmOUVFRSXOaDZs2DBGjBhB06ZNOXLkCG3btmXnzp0pprd3716+/PJLPvzwQx555BEWLFhA9+7drwszYsQI7rvvPpo0aUKbNm3o3bs3RYsWvSGt/fv3s2LFCnbs2EHjxo1ZsGABb7zxBh07dmTJkiU8/PDDABQuXJg//viDOXPmMHz48BtGjRswYAAzZ86kWrVqrF+/nsGDB/PLL794/BkppVxUbkLswLUMmf0bsQ4/wpsE0lCb17MtrcxvEc5Z05xmz56Nc9jZZcuWsWPHjsR1Fy5c4OLFlKdur1KlSuKPg9DQUA4dOnRDmN69e9O2bVuWLl3K4sWLef/999myZcsN4e6//35y585N7dq1SUhIoF27doB1Je+a7mOPPZb4d8SIEdelcenSJdauXUvXrtfmyomJiUlxG5RSKXtvw1WWnS6izes5gFbmWcHTK+qw3teu0jOQw+Fg3bp15M+f/7rluXLlwuG4Noqt62QrrtOZ+vv7J9nMDlC+fHn69OlDnz59CAoKYtu2bTeEcZ0mNXfu3IlToLpOkwrXT43qPk2qw+GgaNGiN8z+ppRKo18nQ56C/FX+Ef6zcj8i8GaXOtq8ns3pPXNFmzZtmDZtWuJ7Z4UYGBiYONXpxo0bOXjwYJrSXbp0aeI975MnTxIZGUmFChW8Lue8efMS/zZu3Pi6dYULF6ZKlSp88803gDUHelKtAEqpFJz8C1a+iln6HDO//pYEh6FX40AaVCme1SVTqdDKXPHuu+8SERFBcHAwNWvWZObMmYA1p3lUVBQhISHMmDGDO++8M03p/vTTTwQFBVGnTh3atm3Lm2++SdmyZb0uZ0xMDA0bNmTq1Km88847N6yfO3cuH3/8MXXq1KFWrVosXrzY67yUuuUkxMPip8ARz6ayXVhypow2r+cg2XoK1JxIp0DNGIGBgURERFCyZMl0p6Xfh1JJWDMVfh5LbEB5ws5O5KLJx7wBjTPtqlynQE0fvTJXSqlbXeR+WPEKABNMfy448hHeRJvXcxLt0aByhKR6yyulfMDhgO+GQnw020vez9yj1QksUYBRbXXs9ZxEr8yVUupWFn0O4q4Qn68EvY4/bPVe71qH/Hn8s7pkKg20MldKqVtZgeLEhP/IwFwvc8ZRiN5NqlA/UJvXcxqtzJVS6lZkjPUC3l1xgOVnilKlZAAj22rv9ZxIK3OllLoVbV8EXz3Bjt27mbnqgD04TLA2r+dQWpnfIvz9/QkJCSEoKIiHHnqIc+fOJRnOdXKV6OhoWrduzYQJE24IFxgYSO3atQkODqZ58+YcPnzYq3KFh4czf/58j8PPniQHHiEAACAASURBVD2b48ePe5WXUsp2JQp+GAm7l/Djt5+S4DD0ubsKYdq8nmNpZX6LcI7Nvm3bNooXL8706dNTDB8bG0vnzp0JDQ1l3LhxSYZZsWIFW7dupUWLFkycODEjin0DrcyV8oGlz8OVMxwpVI93zzamSskAnm2jzes5mVbmt6DGjRtz7NixZNfHx8fTrVs3qlWrxmuvvZbm9N5++22CgoIICgpiypQpicvnzJlDcHAwderUoUePHjek8+KLLxIeHo7D4WDDhg00b96c0NBQ2rZty4kTJ5g/fz4RERE88cQThISEJDsevFIqBXuXwdavcPjnJTzyCRA/bV6/Cehz5pms9qe1MyTdv3r95VG4hIQEli9fTt++fZMN88Ybb9CqVavrKuKULF26NHGa0g0bNvDJJ5+wfv16jDE0bNiQ5s2bkydPHiZNmsSaNWsoWbIkUVFR16UxatQozp8/zyeffEJ8fDxDhgxh8eLFlCpVinnz5jFmzBhmzZrFtGnTmDx5MmFhOlCUUmkWczFxWuWPc3XjgKMcfZtq8/rNQCvzW4RzPvNDhw4RGhpK69atkw3btGlT1q1bx549e1Icj/3ee+/l1KlTlC5dOrGZ/bfffqNjx44EBAQA0KlTJ1avXo2I0KVLl8ThWIsXv3byePnll2nYsCEffPABALt372bbtm2JZUxISKBcuXLp+wCUUrD8ZTj/NycDqvNaZCttXr+JaGWeyTy9gvY15z3z8+fP0759e6ZPn87QoUMZM2YMS5YsAa7NltasWTN69erF/fffz+rVqylfvnySaa5YsYKAgADCw8MZO3Ysb7/9NsmN9W+MuWHaUqf69euzYcMGoqKiKF68OMYYatWqxbp163yw5UopwHoMLXd+HP556XM2HIf4a/P6TUTvmd9iihQpwrvvvsvkyZOJi4tj0qRJbN68+YZ5wDt37szIkSNp165dsj3fwfqRMGXKFObMmUNUVBTNmjXj22+/5cqVK1y+fJlFixZxzz330LJlS77++msiIyMBrmtmb9euHc899xwPPvggFy9epHr16pw+fTqxMo+Li2P79u0AFCpUiIsXL/r6Y1Hq5idCdIuxdMv/ATsclemrvddvKlqZ34Lq1q1LnTp1+Oqrr1IMN2jQIDp16kSHDh2Ijo5ONly5cuV47LHHmD59OvXq1SM8PJwGDRrQsGFD+vXrR926dalVqxZjxoyhefPm1KlTh6effvq6NLp27Ur//v3p0KEDCQkJzJ8/n9GjR1OnTh1CQkJYu3YtYD3KNmjQIO0Ap1RaJMQDMHX5Xv44k5uqJQN4VgeHuanoFKg+plOgZn/6fahbyslt8NXjHKg/jlb/zYcB5g9qTGjl7HVVrlOgpo9emSul1M0qIR6+ewrOHWbryvk4DPRrWiXbVeQq/bQyV0qpm9Xv/4HjmzifpwxjLnamaqkAntHe6zclrcyVUupmFLkfVrwCwPDLvbgq+XmzSx3y5dbe6zcjrcyVUupmYwx8Pwzir/JzrhasSAih3z1VCa1cLKtLpjJIqs+Zi8gvPsrLGGNa+igtpZRSydk4Bw6t5nKuYoy61I2qpQJ4unXyA0CpnM+TQWNa+Cgv7TavlFKZoUhFYgPK8/y5TpyXwnzcVZvXb3aeNrMvBe5Nx+tHn5ZapVnBggWvez979myeeuqpDM1z/PjxVKhQgZCQEGrWrMmXX37pVTorV66kffv2HoffvHkzP/zwg1d5KXUziK7cgodlCt8lNKbfPVWpV0mb1292ng7netIYs8rbTEQk3Nu4KmcbMWIEzz77LHv37iU0NJQuXbqQO3fuDM1z8+bNRERE8MADD2RoPkplOzEXIW8h3vl5DzvOxFO1VEFtXr9FeHJlvgU4ks58/ga2pjMNlUFOnz5N586dqV+/PvXr12fNmjWAdWU9efLkxHBBQUEcOnSIQ4cOUaNGDfr370+tWrVo06ZNqqOxVatWjQIFCnD27FnAqnAbNWpEcHAwHTt2TFy+b98+WrVqRZ06dahXrx779++/Lp0///yTunXrcuDAAS5fvkyfPn2oX78+devWZfHixcTGxjJ27FjmzZtHSEgI8+bN8+VHpVT2dSUK3gvj1Dcj+HT1bvwEJmvz+i0j1StzY0zd9GZijBkLjE1vOjeLnXclP/pY2QkTKPboIwCcnfc1J8eNSzZsjV07Pc7TOWuaU1RUFB06dABg2LBhjBgxgqZNm3LkyBHatm3Lzp0pp713716+/PJLPvzwQx555BEWLFhA9+7dkw2/ceNGqlWrRunSpQHo2bMn7733Hs2bN2fs2LFMmDCBKVOm8MQTT/Dcc8/RsWNHoqOjcTgc/P333wCsXbs2cWrUSpUq8cILL3Dfffcxa9Yszp07R4MGDWjVqhUvvfQSERERTJs2zePPR6kc78cxcOkkJ3etJ8bcx4Bm2rx+K9FZ024RzlnTnGbPno1z2Nlly5axY8eOxHUXLlxIdTKTKlWqJP44CA0N5dChQ0mGe+edd/jwww85cOAAS5cuBeD8+fOcO3eO5s2bA9CrVy+6du3KxYsXOXbsGB07dgQgX758iens3LmTAQMG8NNPPyXO4vbTTz/x3XffJbYeREdHc+RIehuRlMqB9i2DLV8QL3kYfqUPVUsVYoQ2r99StDLPAp5eURd79JHEq/SM5HA4WLduHfnz579uea5cuXA4HInvXSdbyZs3b+L//v7+yTazO++ZL1y4kJ49e97QbO4qpXkCypUrR3R0NJs2bUqszI0xLFiwgOrVrx/Rav369cmmo9RNJ+YSfD8CgLfiOnGYcizQ5vVbjteDxojIbSLSXURGicjYZF4v+rKwKmO0adPmuiZp5xV8YGAgGzduBKxm8oMHD3qdR6dOnQgLC+PTTz+lSJEiFCtWjNWrVwPw2Wef0bx5cwoXLkzFihX59ttvAYiJieHKlSsAFC1alCVLlvDCCy+wcuVKANq2bct7772X+CNg06ZNgE6Tqm4xv7wM54+w168qH8Q/SP9mVamrzeu3nDRX5iKSS0RmAgeBT4FXgfFur3Eu/6ts7t133yUiIoLg4GBq1qzJzJkzAWtO86ioKEJCQpgxYwZ33pm+ZruxY8fy9ttv43A4+PTTTxk5ciTBwcFs3ryZsWOtLhWfffYZ7777LsHBwTRp0oSTJ08mxi9Tpgzff/89//73v1m/fj0vvvgicXFxBAcHExQUxIsvWr8d7733Xnbs2KEd4NTNb8+PsH4mDvwZfrUfVUoXYUQrbV6/FaV5ClQRmQi8AMQDPwB7gUvJhTfGTEhPAXManQI1+9PvQ900os9z/rMeTD9cgY8S2rNw8N2E3FY0q0vlFZ0CNX28uWfeA7gM3G2M0cfNlFIqi5w3Beh8bhj74q8yqPntObYiV+nnzT3z0sAqrciVUioLxF2FX98kLjaap77YyL7IaKqXKczwVtWyumQqC3lzZX4EiPF1QW52xhhEJKuLcctL620lpbIVY+DbJ2H7IrZt/JPVJ3tRsmAePuoVpr3Xb3HeXJl/BTQXkYKphlSA9bx0ZGSkViRZzBhDZGTkdc+vK5WjrHodti8i1j+AUadakjeXHx/0DOO24gWytFjGGL7bs4ijF49maTluZd5cmb8CtAKWiEh/Y8weH5fpplOxYkWOHj3K6dOns7oot7x8+fJRsWLFrC6GUmm3bQGsfBWDHwOjB7PXVGTaI3WyfJQ343Dwy7M9OHNgE4O6B/LNwwvInyt/6hGVT6W5MjfGxIhIG2AdsF1EDgNHAUfSwX0zh7mIvAI8b78daYyZnEy4x4EngWDAH9gFfALMMMYkVcZ0xfNE7ty5qVKlSnqSUErdyo5tgG8HA/Ca4wlWJNRlZNvqtA8un6XFcsTG8suTnamwZh+l/aBkvlZakWeRNFfmIlIS+BmoBQhQ1X4lxSftyiJSHxhlp5fsjWcRmQ4MBqKB5UAc0BKYBrQUka7GmARfxVNKqQx34Th8+TjER/OttOL92HZ0Ca3I4Ba3Z2mx4i5fYlXvDlTYeoLo3HB2/EA6tB+epWW6lXnTzP4aUAfYDcwE9pHCc+bpJSJ5gdnAKeAP4OFkwnXGqpBPAs2MMXvt5WWAFUBH4Clgqi/iKaVUpshbmPjy9dix/wgjL/ekUdUSvNKxdpZ2qI1NiGXKF0/xwF8nuJQf4t58jvta9cqy8ijvKvMHgRNAI2PMeR+XJykvATWBDkDnFMI5m+BHOytkAGPMKRF5ElgJPCci77k1m3sbTymlMlx8rgIMiB7G+stHua1kEWZ2DyVPLq9H4k63K3FXGLZiGL/n2cDRzgH0fmgc9Rs+lGXlURZv9ohCwNrMqMhFpCHwDPCFMeb7FMJVBEKBWOAb9/XGmFXAMaAs0Ci98ZRSKsPtWAxxV5m4ZCe/7IkkT4HCzAqvT9ECebKsSGf2beelmY/x+4nfKZGvBP9+ei51tSLPFrypzHdiVegZSkTyYY39HgUMSyW4c8717caYpKfvgj/dwqYnnlJKZZy/5sPXPTk1rS1z1h4gj78f7/cII7BkQJYV6djmdex/7FG6friHsEulmHP/HKoXr556RJUpvKnMpwMtRCSjR/OfBFQHhhhjzqQS1tlV/HAKYZwTXbt2K/c2nlJKZYyjEYk912dG1sGBH693qU2DKsWzrEgHf/sfJ8P7UfhiAicrFuDVLh9RqXClLCuPulGaK3NjzGxgCrBSRPraTdU+JSJNgOHAt8YYT6a9cg5gczmFMM5Oeq6tCt7GU0op3zt/FL56HBJimGda8Ul8W4a1rEbHulk3NsKu/87lwpNPUyDawa6gItz91f8oWya5B5hUVvHm0TTXR7Q+sJclF9wYY9KUh4jkx3q++wJWL3OPojnzS0te6Yh3fSIiA4ABAJUq6a9VpZQXYi/Dl93g0ikipDZjonvSoU6FLB1zfcvcafhNmk4eB2xrVIYHZnxHQP7CWVYelTxvmtklDS9v0n8FuBN42hhzwsM4F+2/KQ0x61x30WWZt/GuY4z5wBgTZowJK1WqVIoFVUqpGzgcsHAAnPyL437l6Xt1CCGVS/FGl+AsewRtzebv4ZXp5HLAltZV6PDRj1qRZ2PejACX0c9EdMQaTa6XiLg/uHiX/fdJEWkP7DPG9AMO2csrp5DubfbfQy7LvI2nlFK+44jDkSsf0X4B9Lg6giLFS/N+j9AsmzzlhwM/MGbrWEI7+NEyVxCPTPgCfz+dyCU78+Y588zgBzRPYb1z1Dnn5L2b7L+1RCR/Mj3T67uFTU88pZTynVx5eS3/M/x4tQln81ZkYXh9ShTMm+nFMA4Hi5dNZ+yJDzEYanbpS7d6I3TGxxwg60YeSIYxJtAYI0m9sB5VA2tsdjHGhNhx/gY2AnmAru5pikhzoCLWKG/rXPLyKp5SSvnEPzsh9jJfrD/CB6sPckzKMbN7KHeUzvxJKR2xsfw6oDOVn/kPdxx1MLzecJ4OfVor8hwi21Xm6fCq/fd1EbnDuVBESgP/sd++lsQobt7GU0op7537Gz7twKUZLZmyeA0Ar3SsTZM7SmZ6UeKvXObX7g9Q+rddGIF+1XvSt3bfTC+H8l6qlbmIPG3PkuY1EWkjIk+nJ43UGGPmAzOwRmv7S0S+F5GFwF6s4WC/xZo4xSfxlFLKazGX4MvH4PI/bIvKRZSjAE+2uJ1H6t+WelxfF+VsJGu7tqXM1mNcKADnJz/NA11GZXo5VPp4cmU+GeiWznweA95MZxqpMsYMBp7AajpvDrTFmgjmKaBzcjOfeRtPKaXSzNlz/dRfHJHyDIgZQpvaFRnZJvNHU7t88ih/dm5Hqf2RRBYWzPSJ3Numf6aXQ6Vfdu0AlyRjTDgQnkqYL4AvvEjbq3hKKZUmv7wEu5dwSQrSK/oZqtxWkbcfCcHPL3PvTV+6ep5N3TpQ8uRVTpT0o/iMdwmp3TJTy6B8x9PKvIuItEhHPpl/E0gppbKbLV/Bb++QgB8DY4YQW6QqH/bM/EfQzkaf5cnlT5KvaQxdf89NtQ8/4c4qoZlaBuVbnlbmBUl5YBVPpGuUNaWUyvH+/gOAcXG92JK7LgvC61O6UL5MLcKJU/sZuG4EB88fpGLdStQeOZNKRVIaakPlBJ5U5jrBiFJK+cA3ZYazKLYM66nNrCfqUb1s5k75sG/JPM793wTydfKjWp07eb/V+5QqoKNW3gxSrcyNMSnNKKaUUiolMZfAJLDuWDwvfLuNOEcQLz9ci+Z3Zm4luuOLmTgmTiXAAQ/8XYKOoz6hSN4imVoGlXFyVAc4pZTKURwJsLA/sf/s4+WzQ4lLKE7fplXo0Shzm7U3T59E3vc+xx/4s/VtdH1rEQF5sm5udOV7WpkrpVRGWT4Bdv9ANAW5EhNDqxpleOGBGpmWvTGGiInPUnDuDwD80aUGj0+YR27/3JlWBpU5tDJXSqmMsGkurJlKPP4MjB1GQLnqTO0Wgn8mPoK2bswgii38FYfAht4N6f7sxzphyk3qZhrOVSmlsofD6zDfDwNgbFw4BwuG8nGv+gTkzbzrp7k75zItz29cyQtbh7ejx8hPtCK/iemVuVJK+dLZwzDvCcQRxyfxbfnWvw1f9wqjbJHMeQTN4XAwc+tMZmyZAVX82Pn+ELo3GpQpeausk+bKXETqAduNMTEZUB6llMrZti+CK5GsSgjmlYTuzHi8LkEVMqfXeNzZKH4P78SakNP43Z6L8Y3H07Fax0zJW2Utb67MI4BPAJ1SRyml3ERU7Mm8+FMsja/H8+1r06pmmUzJ9+qJo2x6ohMlj18kPFLw6zWZllVbZ0reKut528yeag8O+wr+sjFmt5d5KKVUzhF3lcMXHAz4bANR8U3p0agyve8OzJSsL+7fzY6e3SgWGc2xkn4U/s+bNNSK/JaSkR3ghgDbMzB9pZTKHjZ+RsL0xoydtYioy7E0v7MU4x6qiUjG91yP3BLB7ke7UDgymoMVclH2049oGPxAhuershePrsxF5DCwDlhvL/LkR4DgwRW8UkrlaIfWYP47An9HHKXjtlC9zENMe7wuufwz/mGhI0sXETn6/wiIcbDz9rwEf/g5d5QPyvB8VfbjaTP7bfarq/2+h4jcC2ywXxuBDcaYf1ziVAPO+qqgSimV7UQdxMzrjjji+Dj+flbkb8u34WEUypfxg7JEnIxg2rY3eTrewabggjSf+Q0VigdmeL4qe/K0Mi8NNAaaAKMBB9cq+IexZ0QTkePAX0AA0AhY5ePyKqVU9hB9Ab7shlyNYkVCHd6W7nzRK4yKxQpkaLaO2Fi+PrCQ1/94nfhS8cwbWY+R3aZTNF/RDM1XZW8eVebGmDPA98D3IjIa+Ax4HggF6rm8KgEV7GgXgbG+LrBSSmW52MvwdQ84vYs9jgoMjRvC5CdCqXNbxlaolw7sZVv/7vzc8BLx1f0IrxXOsHrDyOWnQ4bc6rzZA/oAl4wxp4Af7BcAIlIcCAbyYDW7R/qklEoplZ3sWw4HVhJpCtM37ln+fX897q9dLkOzPPbz9/wz8nmKRCfw8Ho/OvZ9hfa3P5SheaqcI82VuTFmdgrrooCV6SiPUkplexsC7mEp/VgeexdNQsMY2KxqhuVljGH7lJeRD74kn4EtNfIRPPUjalYKzbA8Vc6jbTNKKeWJc39D7GVWni3Ok59v5GrcfbSqUYaJHYMy7BE0x5Ur/DksnMKr/wJgdbsKdJr0JSUDMncudJX9eVWZ283p9wFlgePAVmPMPl8WTCmlso0z+2DOv4iOjWH8hf/jqqMUnetV5PXOtTPsEbQ4Rxy/9fkXZTcf5Uoe2Pxkc3oPeE+nL1VJ8mZs9rrAUqCk2/IL2I+oYQ35usEYs98XhVRKqSxzYit83gkun2ab406iHAXo17QKLzxQA78Mms70bPRZnl31LKdDTvDkcSF+3BD6tnwyQ/JSNwdvrszfBEoB24DlWI+t1QXuBO61X85H1c4ZY0r4pqhKKZXJjqzHzO2CxFzg14TaDIwbwZB2dXiy+e0Z0rRujGH3ikUMP/sBxy4do2TVUpT7+i1CytbzeV7q5uJNZR4KHAHCjDGxzoUiEoD1eFqo/QrDGjhGKaVynv2/YL56Aom7wg8JDXg6/t+M61SPxxpUypDsHNHRbHimPwWXR1D5X34UuyeYKfdOoUxA5kzUonI2bypzB7DOtSIHMMZcBlbbLyCxgldKqZzl/FHMF92QhBi+iW/GWDOQdx4PzbDHz6KPHWVzv8cpcvA00bmhbvn69L7/ffL6582Q/NTNx9spUD0aGcGu4JVSKke5mr8cCwv3Ifr0Id7x68lHPRtw9x0lU4/ohdNrV3Fk6BCKXIrjVFE4M64/A9uNyJRJWtTNw5vK/APgUxEpZYw57esCKaVUlrkcyXkpTJ9P/2TDiXsoVuA+5vZukCEjuxlj2Pfxe8S8PYMCDthRNTcV33mHLtVb+jwvdfNLtTIXkSPAH1hX5H8Cy7CGdp0rIp2NMRcztohKKZXBjIFVr5Pwx4eM8JvIhjOFKVckH5/1bcgdpQtmSJa/7v0RPppJaQesblaC+1+fy23FKmdIXurm58mVeUX71Qmrl7oBDgOBQISIvAIsMsZcyKhCKqVUhnE44McXYP0MwI+A2G3cXqo1n/VtSPmi+X2enTGGD7Z+wPTN07mtsx8PmiDCR8yiQO6MnaBF3dw8qcxLAPWxeqc7X1XsddWAWcBHIrKHa1OibgA26T1zpVS2lhAP3w+FzXOJIxdDYp/iRPnWfNO7AcUD8vg8u7N//s5/v57EtKBDCELHdsPpG9RX74+rdEu1MjfGnAV+sl8AiEgprq/gQ4Ea9usJZ1QR2WOMqenrQiulVLrFx8CCvrDze66Ql4GxI3BUvZe5PcIomNf3I10f+PwDLr86hbAEQ5OAAJ7o9zbNKjbzeT7q1uTVHmt3fHOfMa0cN17BV/dBGZVSyrccDvjqcdi3jAumAOGxoyhTqxlTuoWQN5e/T7MysbFseXE4eRevIBfwW+MijB7yGVVL6DAcynd89vPTGHMC+M5+ASAit/kqfaWU8hk/Pzbmv5tK5g96xj5Hnfr3MPHh2vj7eHjWuDNn2NT/cQrt/Js4f/j1sRr0GvUphfIU8mk+SnkzNnteY0yMJ2GNMX+nvUhKKZVBjAERPv7tIC//WZ3CvEX3FsGMbFvd5/etL+zezp7ePSgUdZWogrB3VCcGd30ZP8mYiVnUrc2bK/OLIrKdaxOqRABbjDFxPi2ZUkr50rkjmPl9mF3iaV5ebwAY8kAY/TNgLvKTl08yeut4epqrHK/oR4E3JhBer4vP81HKyZvKPBaoAwQDve1lcSKyjWuVewTwlzEmwSelVEqp9DizFzPnYeTCUSoffh1/v9G83jmYLqEVfZqNiY9n08mNjFgzkqjoKGL6VWBC+6lUL1PLp/ko5S7NlbkxpqCIjAdexBqn/QRQAGuSlXpAfzvoJRFZBrxvjPkpqbSUUirDndiC+awTcuUMfzruZKQZwszuobSu6dsJTOLPnmXTwO78nuswUW2FhuUaMrnZZIrm8/3ocUq5S/PNGxF5FKsinwoUNcZUMsaUBMoBI4DTgADRQEfgfyKyWEQyZhglpZRKzpHfMbPbI1fOsCohmH/L/zG9z70+r8gvbd/G5odaU3DrAcJ2JdCvfGdmtpqpFbnKNN70xBgN7DDGPO06KIwx5pQxZioQhNXMvhnrUbXFwEP2X6WUyhz7lllN6zEXWJLQgNF5nmfWgBY0qlrCp9kcXfw1+x97lIAzlzlQzo+zM55nWOvx5PLz/bPqSiXHm73tLlKomI0xZ0SkM7AXCDLGdBKRT4CeIvKYMeZLL8uqlFIeO/fPUYrGX2VefAumF3yKL/s1oUpJ383KbBIS2Pnqi8jni8gDrA/JT9hbHxFUoZ7P8lDKU95cmZ/HGpc9WfYjaSuBvvai0VjN7t29yE8ppdJk/+lLPPhrJR6JeZFZxZ/mm8H3+LYiN4ZVb49CPl9EgsDPD9/Gg7N+1IpcZRlvrsxXAI+KSFtjzI8phLsINAIwxvwjIpuwOsgppVTGWP8Be/MF8eh3l4m6HEuZSo2ZF16fogV8N8565NVIXlr3EmuLLGdsOTja/V6eDJ9Kbv/cPstDqbTypjJ/DegCfCYi3Ywxv7gHEJF8QEO39P/GuoeulFK+ZQysfBVWvU4xU4TYmLdofmdlZnSvR4E8vrl3HR8ZyabXX+D5oB2cMucoWLAQjg9G82S1h32SvlLp4c2jaVtF5ElgJvCziCwB5mLNdX4RuAMYC1QAVrlELQJcSXeJlVLKlcMBPz4P62eSYIRX4h7jvjp3MLlrHfLk8s1oayeXfMuJceMoeCmWNieFPU804eW7X6ZcwXI+SV+p9PJ2opWPReQA8CHQHnjQLYgAMcALLsvuAk55k59SSiUpIR6+GwJbviDG5GJo3BDKNuzCuIdq4eeDcdYTzp/nrzHDybvsd/IB2wP9qdLv3zx7z0AdllVlK163PxljVohIdeBx4GGsaVBLYV2drwYmGWM2A4hIKFanuY/SW2CllAKsKUzn94Fd/+WKyUv/uKepf18nhrWs5pNx1iNXLuPwc6PIf+4qMblgxUMVeXjU+1Qp5vvhX5VKr3TdTLKHa/3MfqUUboPOoKaU8iVzeB3sWsIFU4DesaP410Md6dUk0Cdpb/p1AfkG/R/5gb0VhAujwhna+hn8/Xw7PapSvpJqZS4ih4C1wBBjTKSI5PZmUhVjzDEvyqeUUjeIT3DwwqZiJMQOZLcE0v/RDvwrpEK6041JiGHapml8evBTBgcJMbeVou0LM7irVM30F1qpDOTJlXkl4DZgPBDJtVnTNrq8thhjojOqkEopBcDRCGIvn+Op9UX5accp8uVuwYzuodxbvXS6knXExLDr9XG8V3oLv+U/ip/4Efv8QAaHDNZHzlSO4EllXhpowrXOaw6grv3qYy9LEJFdWBX7BvvvZtfhXtNCRHIDzYAHgLuBykAJkS6uaQAAIABJREFUrHHf1wHTjDErU4j/OPAk1sxu/sAu4BNghjHG4et4SqkM5nDA2qmYXyYSbQqw+eqrFM5Xik961ye0cvF0JX1x62Z2jxhMwLGztC8LR4fezqR7XiG4VLCPCq9Uxku1MjfGnAG+c1lUEKjBtVnS6mFNiRpkv3o4o4rIHmOMN+1TzYGf7f9PYv1AuAzUBDoDnUXkZWPMWPeIIjIdGIw14txyIA5oCUwDWopI16SmZvU2nlIqg108iVk0EDmwEgHmxTelQJFSzOndmLvKFvY6WRMXx54prxL/yZcEOOBYcTg68AG+7jCR/Lny+678SmUCb54zdwDb7VdixzcRqcb1FXw9oLqX5XIAC4CpxpjVrivsWdvmAi+KyApjzAqXdZ2xKuSTQDNjzF57eRmskes6Ak9hzfhGeuMppTLY3p9xLBqE35UznDGFeTZuIIVqP8jih4Mokt/75u+re/awffgAAg6cwg9Y2aQgoWPfYWBgU9+VXalMJMaYjEtcpJIx5kgGpPsR1rjvs4wxfV2WR2A9ItfLGDPHLU5zrPHiTwIVXJvNvY2XlLCwMBMREeH9ximlLKvfhuUTAPgtoRZjZAhD/3UPnepVSNejZ0dO7+V0u04UuBzPP0XgrwHNCe8xmYJ5dJbmrCQiG4wxYVldjpwqQ+foy4iK3LbJ/lvRuUBEKmJVyLHAN0mUZZWIHMMama4RVg99r+MppTJOfIKD+acq0NHk5p34zvxe9gk+fSyUwHRMlmKMYf7e+bz555s0aeag1qn83DnuFZ6q3s6HJVcqa3hdmYtIMNAWKAmcBZYbY/70VcFSUc3+e8JlWV3773ZjzNVk4v2JVSnX5Vql7G08pZQvGQPHN/F3/rsY9tUmNh4pyFsylUdahPL/7d13fFRl9vjxz5mZVEISegihdxDpUpSigEpRRIqoqFjWAmv52lZd/a6Lrm3XVdeua1fsrljWr4r+AFEBkSLSRGqAhJ5eZ+b8/rgTiSGEZEiYCTnv1+u+rrfOuWOSw733ec7z7shORLiDq7imqqS++jwfbf2UZ1tvAsBzzmgmD7iTxOjE6rwCY0ImqGQuIo8C15YsAgp0wkl6iIi7phqLiUgSMD2w+H6pTW0D860VHF7ypKBtqXXBHmeMqS4FWfDpTbDqHf6mt7OssAdJ8dE8ct6ZDGrfKOjTFu3cyaqbriF2+S+cHAH/vTaRa0f9L6Pbjq7G4I0JvSoncxG5ArgO5278CZwkWLZM69Uicj0wTVWXHHWUBz/bA7yOM2jLV6r6canNJS+8KuoOlxOY16+G40rHdSVwJUCrVq0qOI0x5hA7fsT/7uW4MjaTp1FEFmdzZvckHpjYI+ihS1WVtPfeZPd99xOb7yUrBhae342Xpz1N09ij65NuTDgK5s78GpxBVAar6nr4rUFaae8Cj+K0Aq+2ZI4zUtsInOFUp5XZVtIipqot+oI97jeq+hzwHDgN4II9jzF1it8P3z+Ozp2FS72s8bfmZr2ei88ZxXn9WwbdyM27bx+rbp1J9LcriQKWd/QQe+dN3HjSJdVSs92YcBRMMu8KfFOSyMujqrsDRWRODTqyMkTkMZwW7OnACFVNL7NLdmBeUZPUkm3ZpdYFe5wxJli5e9EPrkQ2foUAL3rP5KMmV/Kv8wfQoWnwrcqzi7JZctVEkn/eRV4UzDu3HVP+5xlaxtvQEOb4FkwyLwayKrHfDqB7EOc/hIg8jPNofw9OIt9Qzm5bAvPWFZyq5Dd6S6l1wR5njAlSWlYhkZtXIhrHzcVX0/7kibx9RmeiPMEPZLI4bTF3fXsXrkF7ubjAjfuWq/mfoTNsqFJTJwSTzDfglDs9kv04Ld2Piog8BNyIUxd+lKquOcyuJd3VuotIzGFapvcvs+/RHGeMqQpvEYjw6eq93P7Bz7QuvAFfvabcPu00hnRsEvRp98//iu/feZzb+v8KIpzQuQcDr/gb7RJsqFJTdwSTzD8G/ldEzlPVtyvYLwnwBheWQ0QeAG7BaWw3SlVXHm5fVU0VkWU4lecmA+UVf0nBeUz//dEeZ4ypgn0b8b17GQu8XZm5/SwAmnYZyEOTTqRRXFRQp/Tn5rJm1m2458ylHdC/YQQDJs3k8h6X43HVaAkNY8JOMM+fngQygBdEZGx5OwS6jw0ENgUbmIjcA/wp8FmjVLUyd8X3B+YPikiHUudqCjwVWHygnCpuwR5njDmSn97B98wQ3OkraL97Lg08Rcwa351/X9Iv6ESeufh7lp95Ku45cyl2w/+NbsIt187mqp5XWSI3dVIwtdn3Buqj/wf4SES+CmyKCnQd646TAKP4/QAtlSYiZwN3BhZ/Ba49TCvUdar6QKnY3hORp3Fa3K8SkbkcHDAlHvgQpztd2WsK6jhjTAUKs9FPb0Z+egs38IlvAC82uIG3LhhC56Rye3kekXffPn75+z3onM+JVdjcTNhxw0Rmnn0Xke7gurEZczwIuja7iPQFXsEZyQx+37VLgM1AH1XNDOLc03GGHj2S+ao6vJzjLwBmAj04OJTpi1RuCNQqH1ea1WY3Bti5HO87l+HJ2ES+RnK39xJiTprObWO6Eh0RXCO3tJw0vr53Jn0+XItP4OvhiQy983F6tbBy3scDq81+dI5qoBURcQFTcYYl7Y0z9nkm8Blwl6qmVXD4ccmSuTGw67mJNNs5l7X+VtzpuZGZU8ZwWpdmVT6P+v1kbFrPq1lf8Nqa19CCAq78HGTaBKaNuZ3YiNgaiN6EgiXzo3NUL5cCd6uzA5Mxpo7LL/Jx76dr+GzTJC73xLKs7VU8PaUfTetHV/lc2UsW8cusP+NNS+ONq1wURgmjO45h7HnXkVI/5cgnMKYOOWIyDxR/+RGnW9YyYJmqZtR0YMaYWmTj12R98wyT913F+j0FRLoTiT5zFs8PboPLVbWqa4WbN7P23tuJ+nYlscD+OBimnbhozN2c2KQyvWKNqXsqc2feKTBNLVkhIlsJJHYOJvjdNRKhMSZ8+YrRr+5BvnuMeKBvcQreJmfzr/N70z05oUqn8h44wIZ//g3f+/8lyq8URMC8oYn0uO7PPNRprJViNaYClUnmk3GKxJRMbUpNE0p2EpE0Dk3w26s1WmNM+Ni/meJ3LiMifRk+FR71TkT6Xswn43oQE1m1Rm7puemsu3gSzTbsQ4BvekdRf+aV/HHQH4hwR9RM/MYcR46YzFX1fUoNNSoicThJvSdOn/MinNbryYFpbKl996pq1Vu9GGPC26r38H50PRHFOWzXxtzpup7zL5jCGd2TKn0KVSUnez8vb5zNq6tfpXPvPM7yuth/xVlcMO52EqKqdmdvTF0WTD/zHOA74DsReRLnLnw4Tmv2/qWmzlRDOVdjTHgpWvc5ke9fjgf4r+8kPmhxKw+cP4SkhMo3cstetpRfZt3Bipg9PHemUyiy6WlnMOimG2iVYMMIG1NV1VIqSVWLgMWBCQARqQ/0rY7zG2PCwy+7srn+syiu9/XnG+1JyohreHZYe9yVbORWlJrKmr/dQdS8pcQCXeKg36SeXDfkT/Ru2rtmgzfmOFZjdQ9VNRuYV1PnN8YcI3s34P3iL8yOm87flvgo9Pp5oOEdPHZ+H3q2TKzUKXyZmfzy6P143/2IKK9S5IF5p8TT5drbebHbeGvcZsxRsiLGxpjy5ezBP+9++PFlPOqjkW8Phd4bmNQ3hb+e3Z16UZX785G+ayNpY88lOqcID/DdiZHEzLicq4dcRZQ7uNrsxpjfs2RujPm94nz0+6fwLXgYjzcXnwqzfafyRdPLeGvcQAa2a3TEU6gq+d58Xln9Ci+tfonL2hTTOMvFnivGMPXsO2gQ3eAYXIgxdYclc2PMQVsWUvTuFUTmpuEBvvb14pW4y5gy+nRe6pFUqcfhuT+tZN1fb+OFvll80yILgA1/GMEZA26kbWLbGr4AY+qmylSAWwasLD2p6v6aDswYc2xt3pvLi/MOcFfOblZrax73XMLAUefy/IDWRHqOPFpy8c6drL7vz0TNXUQsMDxH2H/tidzc72b6JVnJbWNqUmXuzHvh9Cn/jYjsBH4KLNYXkWRV3VndwRljatjudeQvfokHfRfy+pLteP0u1kbMYsDJp/HQ8I7ERx+5YIsvJ4dfH3uQojffJ8qrFLth/uD6tL/uVmafcC4uOfI/BIwxR6cyyfxyoE9gOhGoB7QITOAMgZoqIruAJcAPgWmp3cEbE6ayd1H89X24l79KDH72F3nw62Cm9EvhxlEjKt1nPG3RPNKvvYHo7EI8wKLuEXhmXMIfhs0k2lP1wVWMMcGpTAW4lwiMLS7OC7MuHEzufXDu3BOAJOBs4KySY0Vkk6p2rP6wjTFBKcrF9+0T+Bc+QoQvH6+6eMM3Elf7YXw2dhCdk+pX6jT53nxeXf0qb65+gQe9hWxNEXZcejpTz72LRjFHbiBnjKleVWoAp87g52sD0xsl60WkPb9P8L1xqr+1q7ZIjTFHRVe9R+F/byc6fzdu4EtfXz5o9AcuOmsUF7WvXLHGvDWrWfXYvfxl2C52FO8BD8y57WQuP/12zmnQvmYvwBhzWNVVAW4jsBF4t2SdiLTESerGmBBbkZrBqi8WcVH+blb62/HvmEsZNWYST/ZofsQhSlWV7MWL+PXZR4hatIp4hX7iIn5sd27qdxMDmg84RldhjDmcmqwAlwqk1tT5jTFHkP4zu7et46+/tuPTn9KI5BR+iqlPl1HT+MegNkR5Kh7ZzF9UxK4577HjhWept2U3MUCxG+adVI+BV9/MrJ5TrHGbMWHC+pkbc7zJSqPwy1lErnqTKI1lYeEjRHniufTkLlwzfCwJMUduob4lcwubrryC5it3UA/IiIXFgxJpPm06l/W/mBhPTM1fhzGm0iyZG3O8KMyh+JtH4bvHifIXUKxuPvCdwtm9WnDNmX1JTqw4AeevWcPKvA28lvkFC7YvYFBbPxPSYN2oDvS54Hqua3ea3YkbE6YsmRtT2/l9+Je9RuGXs4gp3Ac4Q5POS7mGS88eyaXN4w97qPp87P/qCzY//zj1Vm1maU9hwRg3ka5Imo8bS7tbL2R0w87H6kqMMUGyZG5MLaaqzFu/h+TPHqezbx/L/R14I+FKzjl7Ig91PHwLdV9OLtvfeoW9r71C7K4s6gH5keCrH8u1va9kUqdJNIxueOwuxBhzVCyZG1Mbpa1kbaaHWQuy+X7TPvrINLrH5dB39KU81KtFhS3UV73zHP77HieywEsssCsRlg9NpvNF1zCj23gi3Ed+p26MCS+WzI2pTTK3k/vZ3cSse49ffIP4vviPJMREMOa08Uwb2JroiENbqKsqhQf2MS9zKa+tfY19qSt5pMDH2pbCjrF9GHLejdyQ1NvGFDemFrNkbkxtUJBF/ryH8Sx+inpaRJG62SsNuGpIG2ac2omE2EPvpv1FRaTPeY8dLz7LvqID3HKRH0SIT05g/sMjGT/saprHNQ/BxRhjqpslc2PCWc4eChY+gf74MjHFGQB84hvIik7XM33ccFIaxB5yiHffPja98jQ5b79PTGYBcYAvFk50tWX8gOmMazeO2IhDjzPG1F6WzI0JQ6rK0q0H+O/C5dy54THcovzg78SnSTOZfM4ExiUnHHJM0d49rL73djxzv8PjVWKArU3gl9M702fa9bzWZph1LTPmOGXJ3JhwkZFKweKXOLB2Hpf47uKXPXkAiHsatOjD8BHjuLtz00MOyyvO46ONH/Huite4bd4mIr2wvKObrHOGMercGznTaqYbc9yzZG5MKPl96IYvyPjmORK2zyMaP82BBoU/0jiuF1P6pTC1/0O0avT7x+L+3Fy2vvUK6R+8xe1TitlHDgBvTmxEv4ETGDv0ChKiDr17N8YcnyyZGxMKRXnkL3gM79KXqV+QTgOgSN38n38QPzefyKVDxjKiWxIR7t8/Fi/cvp1fnn8U30efE5XvJRE4caWLAyP7MK3bNEa0GoHHZb/WxtQ19ltvzLGiigKLN+/n7cWbuG3dszSTA2z1N2WO5ww8fS7krME9ObvhoY3TspYsZv2zDxP73So86vzirksR0sb148qpN3FCUs9jfjnGmPBhydyYmpazh7wlr1D44xtcyl9Zsc/pC17svojWLZI5ceh4run6+7tw9fnw4mfZ7mV8ufVLevzlHTptLcbrgh9OiILzxjFmzHU0jT30Hboxpu6xZG5MTVBFNy9g3/xnSdz6ObE41dZ6FH9FWvxZnNevJVP6n/q7rmXq9ZK5+Hs2ffgGLFjMI5OjWNEkF4CdPfzsaNeIlEuuYGq/qUR7okN0YcaYcGTJ3JjqpErugscpWvwCDfK20BjwqfClvy8/Nz+XoUPP5S9dk/AE7sK1qIj93y5g85zZuBf+SHROESVjm7X7pYiM9u0Y2XokI8eNpFvDblalzRhTLkvmxhwtVfx+ZdHm/cxeso2p697hFNcW0rUBn7hHoX0uYswp/RlVagjSnKIcFqTOp8FlfyFxVy71Aut3NIQNvRoTN2ok04ZdwN0NOlgCN8YckSVzY4KVn0HOD69TtOgF7vJfyacZrQDY7ZrA8pRJdBs6meldm+Nxu/Dn5pI25z22ffoub52VwPyMpRT7i/lDcx+d/LCldxIJo0czePB5jExoHeILM8bUNpbMjakKVfypS9kz7xkabP6YOC0EYKB3LssSZnBe/5ZM6XcayYkx+LKzSfvwLbZ/9C6xy34hothPPFAY78Lbw03fZn1pfMdp9Gp/OmfWSwrtdRljajVL5sZUUuaS1yla8C+a5KynWWDdt/7u/JQ0kS7DprCwawpul7AjI5XvL5xB3IqNeHxKSemW9SlCev+2jBx3DrP6TKBxzOHHGzfGmKqwZG7M4fj9+L2FLNySw5tLttFn/Wf8wb2e/RrH/3lGUNz7Es4YcjIDinPY8sV/eMkHX26by5p9a5iV7qWTH9a0drH3pI6kjD2XU3uPt6psxpgaYcncmNIyt5Oz5ksyVn9BYtq3vMx4/pF7JgBrXKOQ5ifSYfgFTEhws/XjN9k0/T72rduJS+GjS91sThJiPDGsvqwn9bqdzpknjKFeRL0jfKgxxhwdS+amziv65Wv2/DiHqK3zaFywhTggLrAtxfcrLRJjOP+klkzsPoh9bz9N9i3T2LJxNwANgGI3/NQugqEtTuaGoZMZnDzY+oEbY44pS+ambvH78e9cwVpfMgs257Lw1z1ctO1+znQtASBHo1mk3dnecBBRHU+le1JzHkvO56vUD5g+70vueXEHiQVQ6IHVHaMoHNKbzuMuZFL7YUS4I0J8ccaYusqSuTn+ZW5n/6rPyV79BY12fUecP4u/F93KPH8vAGJcQzgQ3xZNGkRLTz0Stywl5vsfiX3lIyjyMuN6N/lRTl/vT05PoH2rXnQbO42prQfhdrlDeWXGGANYMjfHqczcfA7851ZiUxfQtHALDYGGgW3btTEt6/mZ0qkFHVvmkri7Pi0fWUFC2je/HV/ylntvfeid24ROfcYxsvVIelzcA5e4yn6cMcaElCVzU/v5fRRvX8GOnxfwvmcMC3/dy8rUDL6ImEtT105yNJqlhd3Y62uFJ99Pws6ddG30NY+1+YTP1ueRkKM8n+aj2A2bk1zs79AYd49uND9pGN27DeWZes2tCpsxJqxZMje1kmaksmvFZ+St/ZImexZR359FG+CDggbsoAkel49P8gbTdvs2Gu88QLPd6TQj/eDxDSDvFA/J9ZLp2aYnax9qTIe+Ixid1INId2TIrssYY4JhydzUGruzClixfAk9v51Js6JtlNRM8xa6WLm/KZuzGtLvpPk0apXPjrwNZM/Lp9MKBaDIDVuS3WR0aErEid1pPmA4X3cZSpPYJqG7IGOMqSaWzE148vsoSF3GzqX/JXVvJvflncP6XdlEawELC3bzQ0ZDdh+oT/wepfEBL5FAZ7L4vuESNjd03mlv75PCDy0b0KDfQDr0H8nYJl3xuOxH3hhz/LG/bGWIyAXANcCJgBtYB7wEPK2q/lDGdrwqKPaRtnYRxWs+QfZuIDZ7E40LU4mmiJYFLgpy6rM5OZF6zXcQF7+djf9qSHw+xFEMON3EtiZ7yOrUnBOGD+SsQafTo3EPq7ZmjKkzLJmXIiJPAjOAAuAroBgYATwBjBCRyarqC2GItZMqmp3Gvq2rydi2muJd64g88CsfRY3lvZye7MzM5yLvJ1yS/SEZBRGk53rYkJNI5H4PDTLBLxB/4zsURgp5wOIuLppqfXzdO9Cw/yA69R/FWQ07WCtzY0ydZck8QEQm4iTydGCoqm4IrG8G/D9gAvBH4LGQBRnuvIXk7U1lk68JG/fksGl3Dmctv4Kk7A3484vJyI/kQH4E+bkefLluclrP5kCPudRrcoAtWzIp+jiRWCC21CkLImBbiwjOSBxA2y4D6NmkJ90v6E5sROzhojDGmDrHkvlBtwfmfypJ5ACquktErgHmAbeJyON1/XG7Ly+DvRuXkZG6hqL09Xj2bSByzxa8uVnsLojmsk7nI55MXJEH6PL5Xop3Nvjt2NKlUhvVy8Uduw2AXY08rO/goqBpPP6kpkSlpJDYsRud+59Br4SWjLeuYcYYc1iWzAERSQH6AkXAu2W3q+p8EdkBtAAGAt8d2whDwOclZ9cGdm/6mdzU1SzzpfCVNmFr5nb6pX7G6DXrcee4iM0W4nKEIgRIoDHQ4KQ55Ec7yTcjSvC6lL0JQlbDKAqbxONv3pTIFi1o37U7L3XvTYu4FjSJbYLnBvtxNMaYYNhfT0fvwHy1quYfZp8fcJJ5b2pBMvf7lfxiH3mZuynas4WCrAMUHdhDXuYeCnL2U5STQVFhHt/1mkpOUR65xQWMWPg8sVkZSH4Rnlwv7mwhNluIzxG2niwsH+KG+rAr2k+LDQd/dHwCu+OFzECyntB6EI2S25Ecl0zyyQk0btqObnFJVvrUGGNqiCVzR9vAfGsF+2wrs2+1ysjPYdfW9eTu2ERuxi4KsvZTmHUAb14W3vwccj0RLOk9mPzifAoLspnw6ce4ir24vD5cxYqn2I/bCx6v8p+TEvi6fTziKmbsT/u5eG4xbqe79e/eSfsEPkj6EQKPsMf/6KXN7pKIDiZePxBX4KJxVArJ9ZLp3LgxGxoVEteqHQ3bdqV5m+50i0+yBmjGGBMilswdJa9xcyvYJycwr18TAVzwwR2M/nguI1coMeVs39QMFrRe6SyocsePPspPnUJ0QQ7u6DwACiL8uBW8LiiMgKIIKIoQij1QHOGiibsdnogYIt1RbD5hG/tz/Wi9WKJat6VRxy40bteV5u16cEP9ZtxoydoYY8KSJXNHSesqDepgkSuBKwFatWoVVAD1I+PJiXGxL95HUQR4IwSvR5x5hIuMBtG0jx5MjCeaGE80y09fjCsyEldMPdyxcUTEJRBZP5GYhEZM7tCRy5NTiI2IJmq8h+hZ0cTG1CfCFXFIjfExpRcmBxW6McaYELNk7sgOzOMq2KdkW3bZDar6HPAcQL9+/YL6B8Hbk++FyfdWuM9lpRfGB/Mpxhhjjkf23NSxJTBvXcE+Lcvsa4wxxoQFS+aO5YF5dxEp75U1QP8y+xpjjDFhwZI5oKqpwDIgknLeHIvIMCAFpzrc98c2OmOMMaZilswPuj8wf1BEOpSsFJGmwFOBxQfqevU3Y4wx4ccawAWo6nsi8jTOiGmrRGQuBwdaiQc+xBlwxRhjjAkrlsxLUdUZIrIQmAkM4+AQqC9iQ6AaY4wJU5bMy1DV2cDsUMdhjDHGVJa9MzfGGGNqOVENqsaJOQwR2UPFNd4r0hjYW43h1AX2nVWNfV9VY99X1RzN99VaVZtUZzB1iSXzMCIiS1W1X6jjqE3sO6sa+76qxr6vqrHvK3TsMbsxxhhTy1kyN8YYY2o5S+bh5blQB1AL2XdWNfZ9VY19X1Vj31eI2DtzY4wxppazO3NjjDGmlrNkHgZE5AIR+UZEMkUkR0SWishMEbH/P6WISGcRuV5EXheRdSLiFxEVkUmhji3ciEiEiIwQkYdFZJGIpIlIkYjsEJH3RGR4qGMMNyJyrYi8IyJrRWSfiBSLyB4RmSsi00REQh1juBOR+wK/kyoiN4c6nrrEHrOHmIg8CcwACoCvOFgPvj7wH2CyqvpCF2H4EJFHgevL2TRZVd871vGEMxEZCXwZWEwHfgRygW7ACYH196jq/4YgvLAkItuBpsDPwA6c76s1MAAQYA5wrpV1Lp+I9McZVdKF833doqr/CG1UdYfd+YWQiEzESeTpwImqOk5VJwAdgbXABOCPIQwx3PwM/B04D+gAzA9tOGHND7wPDFXV5oGfrfNUtQcwFfABd4nIqSGNMrxMBRqoah9VPUtVp6rqIKAHsAsYD1wS0gjDlIhEAS/jfE9zQhtN3WTJPLRuD8z/pKobSlaq6i6c0dsAbrPH7Q5V/beq3qqq76jqxlDHE85U9WtVnaSq35Sz7W2cP7wA045pYGFMVReqam4561cDTwYWRx3bqGqNWThPfa4GMkMcS51kSSJERCQF6AsUAe+W3a6q83Ee9SUBA49tdKYOWB6Yp4Q0itrDG5gXhDSKMCQiA4CbgNmq+nGo46mrLJmHTu/AfLWq5h9mnx/K7GtMdekYmKeFNIpaQETa4txxAliyKkVEooFXgP2U357FHCM2BGrotA3MKxqUZVuZfY05aiKSBEwPLL4fwlDCkohcCgwDInCeXAzGufG5X1X/E8rYwtDfgM7AVFW1AWlCyJJ56MQF5oe8oyslJzCvX8OxmDpCRDzA60AC8JU9Fi3Xyfy+oZsXuAv4Z2jCCU8iMhi4Afgw0A7DhJA9Zg+dkj6r1jfQHEvP4HR9TMUav5VLVa9QVQFige7Ao8DdwCIRSQ5lbOFCRGKAl4AsnB45JsQsmYdOdmAeV8E+JduyK9jHmEoRkceAy3G6Qo5Q1fQQhxTWVDVfVdeo6i04PU96Ak+EOKxwcR+nkoM5AAAGJ0lEQVTQCbhRVa3dRRiwx+yhsyUwb13BPi3L7GtMUETkYeA6YA9OIt9whEPM770E/AM4S0QiVLU41AGF2AScWgaXiEjZvvddAvNrRGQc8KuqXnFMo6uDLJmHTknXoO4iEnOYFu39y+xrTJWJyEPAjcA+YJSqrglxSLVRBs67cw/QEKc4Sl3nwmkoeDjtAlPisQmnbrPH7CGiqqnAMiASmFx2u4gMw2lJm45TItGYKhORB4BbgAM4iXxliEOqrYbiJPIMoM632lbVNqoq5U04XdXAKecqqtorlLHWFZbMQ+v+wPxBEelQslJEmgJPBRYfsFrQJhgicg/wJ5wENEpV7QnPYYjIEBG5MFCWtOy2k4EXAosv2FgJJhzZQCshJiJP4ZRuLQDmcnCglXjgQ2CS/fFwiEgfDv4jB5zykfWBDThFKwBQ1TpfMU9EzuZgjeylwOrD7LpOVR84NlGFLxGZjvNePAPniVk6zs9We5yfM4BPcQb1OVyRJwOIyMs4XftsoJVjyN6Zh5iqzhCRhcBMnPdPbmAd8CLwtN2V/048zghWZXUsZ11d17DUf/cLTOWZD9T5ZI7zPdwDDMFppT0Yp/toOk5hnddV9cPQhWdMxezO3BhjjKnl7J25McYYU8tZMjfGGGNqOUvmxhhjTC1nydwYY4yp5SyZG2OMMbWcJXNjjDGmlrNkbowxxtRylsyNCYKIaBDTy4FjhweW54X2KoIjItPLubbDFaWp7DkzyvuujDGVYxXgjAnOK+WsSwLOAHKB98rZvrBGIzr2NnLwmo528JHZQCzQATj5KM9lTJ1jydyYIKjq9LLrRGQ4TjLfW972UpYAXYG8mojtGFp4hOusNFWdAb/VSLdkbkwVWTI35hhT1Tyc+vvGGFMt7J25McfY4d6Zi0ibwPotIuISkRtFZLWI5IvIdhH5p4jEBvZtICKPBvYtFJENInJjBZ8pIjJVRL4Qkb2BY7aJyPMi0qYGrjFaRG4TkWUikhP4vDQR+V5E7hWR6Or+TGPqMrszNyY8zQbGAfOAX4GhwP8AXUXkQmARzhCdC3FGSBsKPCwi0ap6X+kTiUgE8BZwLpCPMyTqLuAE4ApgooicrqpLqyNwEXHhDBd6GpCJMyJZJtAM6Az8GXgCZ0QyY0w1sGRuTPhpjTO+fSdV3QkgIi2B5cCZOMlxJXCRqhYEto8FPgFuE5FHA4/yS9yDk8gXABeq6vaSDSLyR+Bx4C0R6aKq3mqI/xScRL4MGKqquaU+T3CGF82qhs8xxgTYY3ZjwtN1JYkcQFVTgdcDi62Ba0oSeWD7p8BPOHfrv3UTE5GGwHVADjC5dCIPHPcEzl10e2B0NcXeLDD/pnQiD3yequq3Zf6xYYw5SpbMjQk/xcDX5az/NTBfqqrldQXbEJgnl1p3KhADzFfV3Yf5vPmB+aCqBnoYywAfcLmIzBCRZkc6wBhzdCyZGxN+0g/zuDsnMN9ezrbS20s3LmsXmI89XDEb4KHAPk2OLmyHqm7Eeb8fCTwJpIvIRhF5TUQmiYi7Oj7HGHOQvTM3Jvz4j3J7aSWJcz1Oo7mKLK7CeSukqo+LyLvAOTjv0E8BpgWmFSIyTFXtvbkx1cSSuTHHt9TAfFV1FXipLFVNB54JTIhIT+A1oBdwG3DHsYzHmOOZPWY35vg2F+cd/EgRSQxlIKq6EngssNgzlLEYc7yxZG7McUxVd+G8t04EPhKRLmX3CRSguaK6GqqJyGkiMkZEPGXWu4ExgcWt1fFZxhiHPWY35vh3K04L9ynAzyKyAtiM01CuJU6d+MjAfFc1fN6JwCNApogsA9JwBlEZADTHKRbzYDV8jjEmwJK5Mcc5VS0GzhORN4DLgJNwEm42TqKdDczBGQWtOnyM8yRgKM4oaINxWtpvw3l//rSq7qmmzzLGAKKqoY7BGFOLBEY2ewl4pbob1dXkuY05ntmduTEmWKeIyMuB/75bVbcEeyIReYqD45kbY6rIkrkxJljtAxM4A6dsOYpzXQAkHG1AxtRV9pjdGGOMqeWsa5oxxhhTy1kyN8YYY2o5S+bGGGNMLWfJ3BhjjKnlLJkbY4wxtZwlc2OMMaaWs2RujDHG1HL/H+WdEFfWFq7nAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#height plot\n",
"#time plot\n",
"fig = plt.figure(figsize=(6,4))\n",
"\n",
"#simple\n",
"plt.plot(tArr, num_solrs[:, 0], lw=2, linestyle='-',label='R-K Simple')\n",
"plt.plot(tArr, num_solhs[:, 0], lw=2, linestyle='--', label='Heun Simple')\n",
"\n",
"#rocket\n",
"plt.plot(tArr, num_solrr[:, 0], lw=2, linestyle='-',label='R-K Rocket')\n",
"plt.plot(tArr, num_solhr[:, 0], lw=2, linestyle='--', label='Heun Rocket')\n",
"\n",
"plt.xlabel('Time [s]')\n",
"plt.ylabel('$Height$ [m]')\n",
"plt.title('Comparing Rocket Model to Simple Model in height vs time.\\n',fontsize='16');\n",
"plt.legend(fontsize='10');"
]
},
{
"cell_type": "code",
"execution_count": 180,
"metadata": {},
"outputs": [],
"source": [
"# as seen above, the simplerocket model reaches a higher y position compared to the rocket model. \n",
"# This makes sense because the rocket model takes into account gravity and drag, which will make the system\n",
"# farther from the ideal simplerocket."
]
},
{
"cell_type": "code",
"execution_count": 181,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Avg height of rocket with simplerocket function is 597.3008 m\n",
"Avg height of rocket with rocket function is 425.2325 m\n"
]
}
],
"source": [
"#simplerocket average height (avg of heun and R-K)\n",
"simpleheight = (num_solrs[-1, 0]+num_solhs[-1,0])*0.5\n",
"\n",
"#rocket average height (avg of heun and R-K)\n",
"rocketheight = (num_solrr[-1, 0]+num_solhr[-1,0])*0.5\n",
"\n",
"print('Avg height of rocket with simplerocket function is {:.4f}'.format(simpleheight),'m')\n",
"print('Avg height of rocket with rocket function is {:.4f}'.format(rocketheight),'m')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"3. Solve for the mass change rate that results in detonation at a height of 300 meters. Create a function `f_dm` that returns the final height of the firework when it reaches $m_{f}=0.05~kg$. The inputs should be \n",
"\n",
"$f_{m}= f_{m}(\\frac{dm}{dt},~parameters)$\n",
"\n",
"where $\\frac{dm}{dt}$ is the variable we are using to find a root and $parameters$ are the known values, `m0=0.25, c=0.18e-3, u=250`. When $f_{m}(\\frac{dm}{dt}) = 0$, we have found the correct root. \n",
"\n",
"Plot the height as a function of time and use a star to denote detonation at the correct height with a `'*'`-marker\n",
"\n",
"Approach the solution in two steps, use the incremental search [`incsearch`](../notebooks/04_Getting_to_the_root.ipynb) with 5-10 sub-intervals _we want to limit the number of times we call the function_. Then, use the modified secant method to find the true root of the function.\n",
"\n",
"a. Use the incremental search to find the two closest mass change rates within the interval $\\frac{dm}{dt}=0.05-0.4~kg/s.$\n",
"\n",
"b. Use the modified secant method to find the root of the function $f_{m}$.\n",
"\n",
"c. Plot your solution for the height as a function of time and indicate the detonation with a `*`-marker."
]
},
{
"cell_type": "code",
"execution_count": 271,
"metadata": {},
"outputs": [],
"source": [
"def f_dm(dmdt,m0=0.25, c=0.18e-3, u=250):\n",
" ''' define a function f_m(dmdt) that returns \n",
" height_desired-height_predicted[-1]\n",
" here, the time span is based upon the value of dmdt\n",
" \n",
" arguments:\n",
" ---------\n",
" dmdt: the unknown mass change rate\n",
" m0: the known initial mass\n",
" c: the known drag in kg/m\n",
" u: the known speed of the propellent\n",
" \n",
" returns:\n",
" --------\n",
" error: the difference between height_desired and height_predicted[-1]\n",
" when f_m(dmdt)= 0, the correct mass change rate was chosen\n",
" '''\n",
" \n",
" #ICs\n",
" v0 = 0\n",
" y0 = 0\n",
" \n",
" N = 10\n",
" mfArr = np.linspace(m0,mf,N)\n",
" t = (m0-mf)/dmdt\n",
" tArr = np.linspace(0,t,N)\n",
" dt = tArr[1]-tArr[0]\n",
" \n",
" desired_h = 300\n",
" \n",
" #initialize array\n",
" height = np.zeros([N,3])\n",
" height[0,0] = y0\n",
" height[0,1] = v0\n",
" height[0,2] = m0\n",
" \n",
" for i in range(N-1):\n",
" height[i+1] = rk2_step(height[i], lambda state: rocket(state, dmdt=dmdt, u=250), dt)\n",
" predicted_h = height[:,0]\n",
" \n",
" error = desired_h - predicted_h[-1]\n",
" \n",
" return error\n"
]
},
{
"cell_type": "code",
"execution_count": 272,
"metadata": {},
"outputs": [],
"source": [
"#redefine incsearch with change to f = func(x) suggested on github by classmate\n",
"def incsearch(func,xmin,xmax,ns=50):\n",
" '''incsearch: incremental search root locator\n",
" xb = incsearch(func,xmin,xmax,ns):\n",
" finds brackets of x that contain sign changes\n",
" of a function on an interval\n",
" arguments:\n",
" ---------\n",
" func = name of function\n",
" xmin, xmax = endpoints of interval\n",
" ns = number of subintervals (default = 50)\n",
" returns:\n",
" ---------\n",
" xb(k,1) is the lower bound of the kth sign change\n",
" xb(k,2) is the upper bound of the kth sign change\n",
" If no brackets found, xb = [].'''\n",
" x = np.linspace(xmin,xmax,ns)\n",
" f = np.zeros(ns)\n",
" for i in range(ns):\n",
" f[i] = func(x[i])\n",
" sign_f = np.sign(f)\n",
" delta_sign_f = sign_f[1:]-sign_f[0:-1]\n",
" i_zeros = np.nonzero(delta_sign_f!=0)\n",
" nb = len(i_zeros[0])\n",
" xb = np.block([[ x[i_zeros[0]+1]],[x[i_zeros[0]] ]] )\n",
"\n",
" \n",
" if nb==0:\n",
" print('no brackets found\\n')\n",
" print('check interval or increase ns\\n')\n",
" else:\n",
" print('number of brackets: {}\\n'.format(nb))\n",
" return xb\n"
]
},
{
"cell_type": "code",
"execution_count": 273,
"metadata": {},
"outputs": [],
"source": [
"#copied mod_secant from notebook 04\n",
"def mod_secant(func,dx,x0,es=0.0001,maxit=50):\n",
" '''mod_secant: Modified secant root location zeroes\n",
" root,[fx,ea,iter]=mod_secant(func,dfunc,xr,es,maxit,p1,p2,...):\n",
" uses modified secant method to find the root of func\n",
" arguments:\n",
" ----------\n",
" func = name of function\n",
" dx = perturbation fraction\n",
" xr = initial guess\n",
" es = desired relative error (default = 0.0001 )\n",
" maxit = maximum allowable iterations (default = 50)\n",
" p1,p2,... = additional parameters used by function\n",
" returns:\n",
" --------\n",
" root = real root\n",
" fx = func evaluated at root\n",
" ea = approximate relative error ( )\n",
" iter = number of iterations'''\n",
"\n",
" iter = 0;\n",
" xr=x0\n",
" for iter in range(0,maxit):\n",
" xrold = xr;\n",
" dfunc=(func(xr+dx)-func(xr))/dx;\n",
" xr = xr - func(xr)/dfunc;\n",
" if xr != 0:\n",
" ea = abs((xr - xrold)/xr) * 100;\n",
" else:\n",
" ea = abs((xr - xrold)/1) * 100;\n",
" if ea <= es:\n",
" break\n",
" return xr,[func(xr),ea,iter]\n"
]
},
{
"cell_type": "code",
"execution_count": 274,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"number of brackets: 1\n",
"\n",
"Lower bound on Mass Rate = 0.05 kg/s\n",
"Upper bound on Mass Rate = 0.09 kg/s\n"
]
}
],
"source": [
"#incsearch to find range\n",
"massrate = incsearch(f_dm, 0.05, 0.4, ns = 10)\n",
"print('Lower bound on Mass Rate = {:.2f} kg/s'.format(*massrate[1,:]))\n",
"print('Upper bound on Mass Rate = {:.2f} kg/s'.format(*massrate[0,:]))"
]
},
{
"cell_type": "code",
"execution_count": 277,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.0789 kg/s is the correct mass rate of change to achieve a detonation at height=300m\n",
"the solve took 3 iterations\n"
]
}
],
"source": [
"#mofified secant to find actual root\n",
"guess = 0.07\n",
"\n",
"rate,out = mod_secant(f_dm,0.0001,guess) # <-- solution line\n",
"print('{:.4f} kg/s is the correct mass rate of change to achieve a detonation at height=300m'.format(rate))\n",
"print('the solve took ',out[2],' iterations')"
]
},
{
"cell_type": "code",
"execution_count": 278,
"metadata": {},
"outputs": [],
"source": [
" #ICs\n",
"v0 = 0\n",
"y0 = 0 \n",
"\n",
"#use the dmdt mass rate value we just calculated for a detonation at h=300m\n",
"dmdt = rate\n",
"\n",
"N = 10\n",
"mfArr = np.linspace(m0,mf,N) \n",
"t = (m0-mf)/dmdt\n",
"tArr = np.linspace(0,t,N)\n",
"dt = tArr[1]-tArr[0]\n",
"\n",
"desired_h = 300\n",
"\n",
"#initialize array\n",
"height = np.zeros([N,3])\n",
"height[0,0] = y0\n",
"height[0,1] = v0\n",
"height[0,2] = m0\n",
" \n",
"for i in range(N-1):\n",
" height[i+1] = rk2_step(height[i], lambda state: rocket(state, dmdt=dmdt, u=250), dt)\n",
" predicted_h = height[:,0]"
]
},
{
"cell_type": "code",
"execution_count": 291,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAArMAAAE0CAYAAAA/urvmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nOzdd5xcVfnH8c+TLWmb3iC9QIAESNvQpaNIlya9I4pURVEBqdIEFQHlJyF0EYhSAoIYBASpCQkhIQEC6SEd0pPd7D6/P86d3dnJzOxsnZ3N9/16zWtm7j333Gdum2fu3HuOuTsiIiIiIrmoRbYDEBERERGpLSWzIiIiIpKzlMyKiIiISM5SMisiIiIiOUvJrIiIiIjkLCWzIiIiIpKzMkpmzewsM/PosX99l6+p+Prru+7GqD9bzOx4M3vVzFaYWVn0GadkO676ZGb9G3Lbk6bNzPLj1v9p2Y5HAjM7L1onm5OMy/l1ZmYHx32G3tmOpzGY2fZm9rCZzTWzkrjPv3M9z2dBVO/V9VmvpJZuf22qdGa2gZjZddHGMCfbsQCY2YXA08CBQGe07huEmd0UrfdZ2Y6lOcnFg+vWwMzeitbLmGzH0pyZ2XZxyeI+TSCefsB7wBlAX6AguxHVztZ2XGnO+6sSmq3HVdHzm8AwoCPQDtgzaxGJiEgu+jHQCVgPHA30IHyftAM+yWJcspXKyWTW3R9yd3N3y3YsucDMugE9o7e/c/ep7r7K3de6+4ZsxiZSn9x9c+zY4O6PZTseCdx9TLRO8rMdS0Nw9wlx292CbMfTCIZFzy+5+/PuvjT6Plnr7uVZjUzqLBf315xMZqXG2sS9/iZrUYiISHMQ+07R94k0De5e7QM4C/DosX99lQdaA5cBbwDLgBJgMfAscFgm9acpUwD8FJgMrANWEv5iPz0af11Ux5zq6ge6Ar8FPgc2AiuAl4ADkky7f9xnT/V4PZPlnqTuXYAxwBfABmA1MAX4DdC1mvWQ6tG/BvOfE01zXfT+FGACsAQoB/6QZJpvAX8F5kXL7mvCtVa/AIoymGcr4ELglWjb2AR8Bbwffe6dE8r3r27bAw4G1kRl3gA6JCnTGfh1FOvKaL7zo8+ye4o6q1vWE2q53ocBY4Evo/W+KtqubwS6JCnfhbAvOfCzauq2uPX6cIoyvYDbgY8IX14bo1jGADulqfutqN4x0fvDgRei9VcGjMvgs2+XwXKdFVc+P274aRnE9B3CvrwUWEvYny4ALOHz/46w/2+ItsMHgd4ZxF+rZZdBvTclfvZM1kHCuMfit0tgOPA4sDDa3hdEn3NAmvmne1wdV/68aNjmJHWlXWcZLIsqdQODgL9E2/VGYFH0Watd3kB34FZgKuH4uh6YFdU3JM108ft/73Sfj7DPnQ38j3A8XBdtd1cAhUnqXpDBsq52W0xSb3vC5WfvR3FsBOZGy2rPatZTteu8BnH0A+4nHF9j290jwNCEz5+ybkJyfTnwXypzia+AZ4BD63pcSZj2aEKO8lUU73LgNeCHQEGaGKt8DuAYwvfn8mjZzyQc09ulqaMr4Trlp6jMAzYSvl+fAg6u5nhR5/21qSyLLerMcGM7K+4D718f5YFdqfwSTfUYC+Slqz/NTvpumnofIsNkFhhC6oNJOXBGwrT7Z7DRvF6LHf4KQgKQqs6VwL5pPkeqR/8axBBbX9cTvvQS6/pDXFkDfl/NvOeS/gtiGDC7mjqmJEzTP922B5xI2OmcsBO2SlLm4Gh5ppvvr5NMU92yrnEyC1xZzXpfAeydZLrnovEfVVP/t+LqOiTJ+NMIB8xU8y8FzklRd0UiRUjoEqfNajJL+LGSqs77ovKjCMlrsjLzgZ5pYq/1sstgudRrMkv4YbopRZwriBKLJPNP92j0ZBbYg/CjIVk8m4Cj09RzEOGHYqrPsxm4KMW0mSazZxESrFTz+CfQImH6ek9mCcfWhdXUeWuaz1HtOs8wjn2pPLGQ+FgPfJdqklnCj7B51cR1P3G5BLVIZgknVv5ezTSTgW1TxFnxOYA/pqnjQ6BNijo+ziDuu9McL+q8vzaVZbFFnRlucGfFVb5/XcsT7n5cEY2fC/yA8Gu6EzAUuI1w4HDgpnT1p5j/03HzfxAYQTjTNoKQyDrhV41TfTL7BSGhOh3oTfhldAyVO88a4s6OAXlAEXBz3OcrSni0ruEOf3JcPNOAowhnEPoAP6Iy8VoNDEw4+BQREvLY9N9NiMVqEMecqI7YhjgWGE04E7gTsFdc2V/FzfNNwhdF12g9/5JwoHJCQtApybwGxH2u9dHyjK3HnsAhwB+A/yRM1z/Vtkc4wxtLDB8g+Q+l0VR+qX8ULfu+hG1zVLQ9xeo/K8l6vy1uu0lc71skztUs7zPi5jUVOCJa730JN2B8HY1bRcKPEuCEuGl3STOP/4vKLGLLL9Fj4ur4b7Td9YzWwT7A+GhcGXBgkrpjiVRse3kW2DvaXrZLNk2SOixadj+O6ticZLm2iSufaTL7ZfT8GFAcfaZdCWeOY9MfTdjPZwDHEW5y6UU4A1QalXkkRdx1WnYZLJf6TGZjZ8ReIyRl3QjHlsupPMP/34RpC6Nl/3Y0/qEk66UgrnxjJLNlhOPtIsLxettomZ9NOPPuhLM+OySpYwcqj0nLCWfn+xL2t6MJNzXFYvxekukzTWa/iLadmwnfdZ0IydizcWXOSZi+TbRtxsYfkmRZ1+Q43o3KH2jrCD+YBxGOzwfFrVMHLk+YNja/VOs95dm4JHFsQ+Ux7BvCPt6XsJ8dFy2rFVT+wNgimSUc72N1zI62hVgusTNwB5XH/Otqe1yJphkbt1z+Trh5ugvh+zV+PhOTLQcqj4Ox3OM+YCThmLAT4ex/rP4bUiyzl4F7CP9y7UrlvrpfFF8shnMban9tKstiizoz3OjOiqs4MRlK9rggrvz+Sep7nsovuW4p5nluVGYTCWc/SJPMRgs1Nu8tfqFEZf4cV2ZONZ93AdA9SZmRcWV+mGT8danqr8kDaEn4G98JX6rJ/hIfQThIO/CPFDt8yvVRg1jmxNVzW5pyPahMCF8n+V9nh8XV9bsUO60Tzmxt8ZdXXLn8TD5r3Ppw4PYUdRnhx4IDk0iRfAK3RGUWAy0TxmWUZGSwrFsR/i5zYDpJ/m4hJGGxZOOpJNPHzlAlXVeEA1zsR+UdCePaxM1/PCm+LAmXXTgwOcm4WCLlwGN1XB6Z/u2VaTKb9PgQ7W9zo/GlhKQ32Y+tW6lMjtrW97LLYHnUZzIbizPZj7ufx5XZrib1Z7r+qltnNdg2nPCDflCSMkOpPEv+TJLxsR8x60m4dCka34lwuUHsO6EgYXymyawD309Sfx7hB6sDbyUZH38mcZ867kv3RPWUk+Rv6WgfiCU960l+KVNG672aOO6LbRMkv6xhWyq/+5zkyew/o3FzSXKpXVQmlo9sBLbJdLtMKFccF0eqH7CXxJW5MMn4+DPsV6aoI/Z5FtRymV5MmuNCPe2vTXJZZLqAzkrYGWvy2D+hroHRTuTA8WnmaVQePC5NFU+S6WKJ6jqgfYq6O1D5K3xONZ/3B2li/Cgq80CScdelqr+GG+fxcbEclabcXbGNj4QfCNR/MruSNGcZCZdExOa3a5pysb/Cv6bqX0A7xE1/fQ1jrPJZCTc5/onKg/cVaaY9JG7a4WnKtYnbfg5PGFdfyexJcbGku378XioTr84J48ZE4+aRJKGi6tnD4Qnjzo+rN+mXRFRuQFwdiX9FvxVXxzbpPm8Gy6O+k9k1pLgei3DGP1bHmSnKDI8rs1fCuDovuwyWR30ns1skgFGZbnFlTq5J/Zmuv+rWWQ22DSfJP3lx5WKXPW2OXy+Es7ex76SkP3SjcvH/dhyVMC7TZPa/aer/WVRmA1v+S1IvySzhXpLVUT1PpSk3Om5+l9R2vVcTR+zygpQ/dIFL4+K4OmHc9nHjjklTh1F5udqPM90uE8rFEu8NJBxnE+YTOxnyYZLxsQRuduL6TbGNJf2Lvpo428dNPzDJ+PrYX5vksshGawYHRR+0HHjbzIqSPYC2hGQRwi+BTO0VPb/u7quTFXD3VYQbfzLxUppxn0bP22RYV23EGsheT/ilksrT0XMelcugofzH3TemGR+L+TN3n5qmXCzmjoS/hGIOinv9UM3Dq1AI/I1wKcZm4Gx3vyNN+YOj56XArDTbZgvgs6hsTbbNmogtwzXAv9KUiy3DfLZsM/jR6Dn2N1SiU6Pn6e6e2BNcbFlMBjamWRbLCD9GIPWymOTui9N8hmx4293XpBj3RdzrVMs+vkzi/l+fy64xfObuXyQb4e7xMTbkca6+PJNm3D+i5zxg97jhexG+k6Byf0rmOcI/IRCuNa+NTL5PWhFOuDSEYYS2YCHNZ3X3DwgnL6D2n7W6OIqi15mss2Ri+9lm4N1qconY91Bt97PY8fg/7r4yWQEPGdi46O0wM2uXrBzwiqduvuzTuNdJ9zcz28nMfm9mk8zs67jePJ1wSUbMDinmUVdNZlnEq00bYge4++vpCpjZWYRrC5OJLeAWhAvQM9Etw3IQzsxB1QWRzEzg0AzqW5Rm3ProuU2aMnXVL3r+zN3T9VIyPck0DeXLasbH5l9d49mJMcd+vAyKnle7++waxhbvfsI1WBsIf+2Nr6Z8bNvsTkgiM1GTbbMmYsvwU3cvS1Mu3Xr/L+GsbF/CzUivx0aYWQfCNbgQztAlii2L0dR9WVS3vWRDuv061vayE/7mTFcGQqss8epz2TWGdMsCwnGuEw17nKsvM9OMmxH3ul+K1ymPWe5eEvXsN4TaH2Mz+T6BsKy/TlWwDjL6rHHj+9Mw3yf9416nXGfuPt/M1hES0kSx/SyfcDd9Jmq7n9X0O60F4SRCsvI12QaqMLOLCP8wZJK7NdQPoiaxLBJl48xsbRZwqxqUjW3066optzaTyqpJJGIasvOG2C+a6uKN/9JM9SuovqyvZnxdY26fZHxtdIqeywiXRlSnobfNmqjzeo9+HT8evT3ezFrGjT6OEHt8mXj1uSyq216yIZP9ujxahtVJ3P+b0naUiUyWBTTsca4+uLunO+7H70vtkryubnqo3N9qe4zN9rKOjzvTY0tDfJ8Uxb2uLo5U4xtzP4vlFfXxPVyrbSDqxvhuQiL7EeG+omGEe1TaR/PrHDdJbU5WZiLryyKZhvqw6cQWwHJ3b4izEesIKzbZL7l4RdWMbypiG0R18caPr2sSWFd1jbm+DqLnE5pfGgK8bGaHuvv/0pSPbZvvunu2u/mtr/X+KKH1iA7AkVT+9XNa9PyGu89PMl1sWfzN3U+uPlyJ0xjLLpMkG7JzjM8WM7O2aRLS6o431U0fX0e2j7G1FR93pseWhvis8YlQTY5xyepY7O7b1j2ktNZReYN7Og35PXxh9DyLcMPcFr13Rr19NrSmsCy2kI0zs7G/HLuaWe8GqH9u9Dy4mnINdT1JfZsTPQ82s3RfTEOTTJMtsfkPqaZcqphnRc/tzWxAHeJYAhxI+HujiJDQ7p2mfGzbHGpmBXWYb32YEz3vYGbp9tO0693dZxDa6oPoGlkz60XlNbTJLjGAymUxIoNYparGWHaxa9YTL3FI1LOa8c3NjmnG7RT3em7c6zlxr1Mes8yskHAjVuI0uWRO3OtMj89z0hWqhzhSrjMz60PqE1Ox/WwbM2vo67nnRM+ZLrNyQpN39Wl49PxsskQ2sks9zzOZOdFzNpfFFrKRzP477vXZDVB/7MzbAakuOjaz9oQ73RtSafScV8d63oqe25D+Gt/jo+cy4J06zrOuYjEPNrN0O1cs5m8Idz7GTIh7fWZdAnH3xIT2pTQJ7SvRc7u42Gqqvtd7O+DbacrF4txM6CgkmVjCepiZdSI0kN+CkBCNSzFNbFnsYGbZPksNlcs1F7rgboxlF7tGcJvoeLYFMxtCuFatIdXX9l5fvpdm3LHRcxmhZ7+YWDNUEC6/SeVIQrNVULl/NpbSuNd1WdZTqTxLlvKzmtkoKq9rbYjP+hGVZ1YzWWfJvBL3ura5RKbHldgyODA6hm7BzIzKZfpRmhtMayu27aVb/6dXU0d97K9NYVlsodG/GNx9JpV35f/SzNLeeW9m3VMtsBRid3C3IXSHlswtVH9Go65WRM/dqjmjWp0XCHfXA9yWLEE3s2GEO/YBnovuQM6mx6i86/euZJ/fzA4lNA0FMDb+jkZ3/4zQzizAlWa2W6oZZbJsExLadoSENtl29xKVN4n83sy2S1Imft4DkpzBja337mZWlwPGc4TG2wFuj+7KTZz/CEKHIxDaF051XfBfCV/ghYQe0GKtGIyPWvZI5hEqP8vY6v6+MrOG/qcjFouZWUP/pVhXjbHsYslYC5J8gUX7xR9qUW9NxT5nUzkDfImZDUocaGZDCV1sQtjuY/sW7v4Vld9JF5vZTkmm70j43oBw43K6VgkaQvy+Xetl7e6lhO0T4AQz2z+xTHQG+q7o7QaSX1NfJ1EcsXpPSvajL9rPf5WmjulUJrRXm9ke6eZpZj2iG1/jZXpceSB6bgXcmaLMhVSeGb0/XSy1FDsT/d1oHVVhZt8mdLSTTn3sr01hWWwhW2c5fkhI0FoDr5nZnWa2h5l1NbMuUdMTp5jZE4S/g7Y4OKXi7m9T2ZzHpWb2gJkNM7POZjbczMYSFnRD32E9KXpuCdxgZj3NrMDM8muS5Lj7JkJPPBBO679lZkeYWTcz621mFwCvRvNZS2jkPKui5PH66O0BwAQzOyBatwPN7EpCryEQvhhuSlLNhYS7eVsRtpEbo/XX2cy2jeq7g/TNViXGFJ/QvpyY0EYJ9RmEM5Y9gIlmdk3cfLtF29K5ZjYe+Jwt/wKLrfc2wLVRrLH1nvH+FjV99tPo7S7Am2Z2eBRDHzP7EWG9FxLajbyyms8eO9v9C8JNA5D6EgOiX9JnE85Y7Qh8ZGaXm9kQM+sUfTGMNrMfm9lrpD4rXF8+pPLs2Q1m1tfMCmu6PzWGxlh20Rf5+9Hb35rZhdExplv0pfYaoQmd6loqqKvY9r6fmR0X7Sf50aOxbxgrJxwz/mtmp5nZNtH+dxbwH8KxZBNhH0h0BSFxawO8YWbnR8fXbmZ2FOFs1PZR2UuiZKzRRNtUrDnAS8xsVzNrE1vWNazuesIlWC2A8WZ2RfTDvIuZHUhYVrF/r6529xWpKqqj6wn/yuURTjBcGC3z7mZ2LKHnyHzC8S2VCwg/+tsAr5vZb81s97hcYoiZnWpmfyPkEomXrWV0XHH3iVS20HS2mT0dzadzlK/cTuiWFcI+Maa2CyWNJ6PnHYHnzWyv6HPuaGbXEU6ApGvNIxYb1GF/bSLLImlgmTTEexY1aHQ/k/KEFRLfRWCqRzkwLFX9KeruQDjQp6rzYcKO5CRpdLy6+uPKPRSVez3F+P+lmH/S8tXM6woqu4hL9lgJ7Jti2v41WX9pYpgT1XFdBmWNqo3PJ3vMBYakqSOTPren1OSzEpLU6dH41STveSaWBFS3bZaS0DFH9LnfS1F+Qi2W+ZXVrPcVwN4Z1HNqwnTLyaDrScJfgOn6q489liSZts69BCXU91SKec+KK5NppwkpYyKDhtSrm09dl12Gy2NXKrt8TnxsIPzNl0mnCWm3S+L6UU8yrieV3YkmPjLq6z2TZVlNfBV1E9paTrXMN5G+cf2Dq1lfm4GL0kwbK5eu04SUny9dHdH4C9PEtkX5apbZcMKJhHTb5a1ppq+XfRvYl8rOE5Jtw4el2/6iOoYQkrjq9rNyknROQgbHlahcK8JJmHTzmEyKBv6r+xxRmZSdYxCS/hfTzHsu4brwdMe/Ou+vTWFZJHtk7fozD5cb7Eq4JnI8IXkoIRxw5hP+Zr4E6OPuH6WqJ0XdqwgJyc8I1whtIPwCfJvQ7/WZNM5dqYcBvyUk7XVqnshDY/8jCH0izyacPVxL+Hw3A4Pd/b91irYeeXAZ4WD1N8LGW0L4snifcIf9UHdP167jFMKPnssJbaauICSQiwgJ401Aje4W9y3P0P7LEv7icve3CDvSJYQzmkuj+W4gnNF/FjgH6OEJHXN42Au/Q/j7ZQZV2yOtMXe/jdB18oOE9b6JsM1+BPyGsN7TtdAQ8wxV7yB+yjM4u+TuzxDOZlxFOFOynPClvo5wpugJQm9lGf97UgdnEFqnmEL4LN4I86y1hl52HjokGU34cb6Iyn3jcWC0u/89zeT1wt0XETodeJzww7Mk/RQNHs87hIbxHyR8j5QQup1+nNDL3bNppp1AuHH4NuBjwja2kbDPjyH0ZnhPg36ANNz9T4RLSt4gJCSpGpvPpK4phMTnGmAi4bhcQlhmjxN6tUt2BrteRd9ZuxCWb+w7YhFh39jd3dN1FBSr45OojrMJl+XFcomNhM/zEnARIeGfnqSKjI4r7r7R3Y8j/Eh9nrBdlRJ+UL5B+LGxm4fLVuqdh2ZCjyb8Y/cRlTnAdEIOMILwb2G6Ouplf832skjGogx4q2NmzwFHAS+4+5HZjkdERGrOzM4jXJdX5u5bU1NkIhLJhTuD652Fm2kOiN5OSldWRERERJquZpnMWuiTeYu7/eLcTmWD/E81QkgiIiIi0gCaZTIL7AzMNLMrzWxEdJddDzM72Myep7IZqyfSXbMpIiIiIk1bc76+aABwa/RI5g0qk1oRERERyUHN8gYwCx0LnEq4q3wo0J3QDt0KQrtyTwB/9biG+iX3de3a1fv375/tMESkES1fvpy5c0PvtKNGjcpyNLln0qRJy909bcceIk1ds0xmZetUXFzsEydOzHYYIiI5w8wmuXtxtuMQqYvmes2siIiIiGwFlMxKFWZ2sZk9ZWYzzGyFmZWa2TIzmxB1EZmyyzsLXRC/aWarzGytmU2MuuxMu53VdjoRERGR5nwDmNTOlYRrjKcRekxbB/Qj9Jp1EHC8mR2beL2xmd1L6PVjI/AqoTeQg4B7gIPM7ISoBxPqYzoRERERUDIrWzoJmOzu6+IHmtlQQrJ5NKEL4gfjxh1HSEgXA/u6++fR8B7Aa4Qu7y4C7kqos1bTiYiIiMToBjDJmJldA9xAaJ/3lLjhE4FRwJnu/kjCNPsBrxMS1l7xZ3RrO10qqW4AKy8vZ8GCBaxbty7JVCL1r6CggO7du9O+fftshyKSlm4Ak+ZAZ2alJjZHzxtjA8ysNyEhLQGeTpzA3d8ws4VAL2APwqULtZ6uNpYvX46ZscMOO9CihS7DlYbl7mzYsIGFCxcCKKGVhrVmMYw7G45/CNr1yHY0Ilmhb3bJiJkNAH4YvR0fN2pE9Dzd3TekmPyDhLJ1ma7GvvnmG3r06KFEVhqFmdGmTRt69erF0qVLsx2ONHMzn7wan/sOvHFbtkMRyRqdmZWkzOxsYD+gAOgN7EX48XOLuz8TV3RA9Dw3TXXzEsrWZboaKysro6CgoC5ViNRY69atKS0tzXYY0lzd1B02b2LH2PuJD4RHfku4Wj+iZOuiU1WSyt6EG71OAfaNhsWumY1XFD2nuyB1bfTcrh6mq8LMfhA15TVx2bJlKStK06KYSIPQNicNac0PJ/FK3rfY4IUAbKQl5TufAJd+nOXIRBqfkllJyt3Pc3cjdAM8FPgDcB3wrpn1jCsa+8au6Z2EtZ0uMc6/uHuxuxd366YeGUWk+XN3fvHKMpZuKqQlpWykgJaU0KJVe103K1slJbOSlrtvcPdP3P1nwC+BYYQ2YGPWRM9FW0xcKTZuTdyw2k4nwM0338x5553XKPPasGEDRx55JB06dOCEE05olHk2tqKiIr788stshyGSkSc/mM+LU7+iq63msbKD+OCgp7Hic2DtkmyHJpIVSmalJmJtyx5pZrGLUOdEz/3STNcnoWxdpmtW+vfvT+vWrSkqKqJHjx6cffbZrF27ttrpfvWrXzFmzJiM5nHddddx2mmn1TrGcePGsWTJElasWMHTT2/R8ATXXXcdBQUFtGvXjnbt2jF48GAuuugivvrqq4zn0b9/fyZMmFDrGGti//3332LZrV27loEDBzbK/EXq4vMla7hu/HQAflh6OTNHXce3vnUAHPE7OOnxLEcnkh1KZqUmviE0z5UPdI6GTY6eh5pZ6xTTjU4oW5fpGteaxfDgd2FNw53xGD9+PGvXruXDDz/kgw8+4KabbmqwedXG3LlzGTx4MPn5qe8X/f73v8+aNWtYuXIlzzzzDIsXL2bUqFE1SmhFJL2NpWVc9NfJbCwNzW4P7lHEr48YkuWoRLJPyazUxL6ERPYbYDmAu88HPgQKgS3+g446P+hN6Pzgndjw2k7X6N64Hea92yjN3vTq1Yvvfve7TJs2DYBFixZx1FFH0blzZ7bbbjvuv//+irLxZ1vnzJmDmfHwww/Tt29funbtym9+8xsAXn75ZW6++WaefPJJioqKGDZsWNJ5z5gxg/3335+OHTsydOhQnn/+eQCuvfZabrjhhorpH3jggbSfoaCggKFDh/Lkk0/SrVs37rzzzopxL7zwAsOHD6djx47stddeTJ06FYDTTz+defPmceSRR1JUVMTtt98OwPPPP8/QoUPp2LEj+++/PzNmzKioq3///txxxx3suuuudOjQge9///ts3BiaP/7666854ogj6NatG506deKII45gwYIFAFx11VW8+eabXHTRRRQVFXHRRRcB4WatWbNmAbBq1SrOOOMMunXrRr9+/bjpppsoLw/Jw0MPPcQ+++zDFVdcQadOnRgwYAAvvfRS+hUrUk9uevETPl0SrrpqVdCCe04ZSauCvCxHJdIEuLseeuDuAN8CTgVaJhm3N/AF4YatOxLGHR8N/wrYLm54d2B6NO7SJHXWarpUj1GjRnkyn3zySdLhad3Yzf3a9ls+buxW87rS6Nevn//73/92d/d58+b5kCFD/Oqrr3Z393333dd/9KMf+YYNG3zy5MnetWtXnzBhgru7X3vttX7qqae6u/vs2bMd8PPOO8/Xr1/vU6ZM8cLCworPHV82mZKSEh80aJD/5je/8U2bNvmrr77qRUVFPnPmzIymTzX+mmuu8d12283d3SdNmuTdunXzd9991zdv3uwPPfSQ9+vXzzdu3LjFcnB3//TTT71Nmzb+yiuveElJid92220+aNAg37RpU0X50aNH+6hGGH0AACAASURBVMKFC33FihW+4447+p///Gd3d1++fLmPGzfO161b56tXr/bjjz/ejz766Iq699tvP7///vurxAr4559/7u7up59+uh911FG+evVqnz17tm+//fY+ZswYd3d/8MEHPT8/3//yl7/45s2b/U9/+pNvu+22Xl5ennTZ1GrbE0nin1MXeb8rX6h4PP7u3HqpF5joTeD7Rw896vLQmVmJNwh4DFhsZq+a2eNm9ryZTQfeAgYCLxKa6Krg7uOAPwPbAB+b2Xgz+wfwOTAEeJaqN43VabpGcelU2PkEyI+ugMhvDbs0TLM3xxxzDB07dmSfffZhv/3241e/+hXz58/nrbfe4rbbbqNVq1YMHz6c8847j0cffTRlPddeey2tW7dm2LBhDBs2jI8++iij+b/77rusXbuWX/ziFxQWFnLggQdyxBFH8MQTT9Tpc/Xs2ZOVK1cCcP/993PBBRew++67k5eXx5lnnknLli159913k0775JNPcvjhh3PIIYdQUFDAFVdcwYYNG3j77cqO4C655BJ69uxJ586dOfLII5kyZQoAXbp04bjjjqNNmza0a9eOq666ijfeeCOjmMvKynjyySe55ZZbaNeuHf379+enP/1pleXer18/zj///IrP8dVXX7FkiW68kYaz4Ov1XPn3qRXvD99lW07erU+aKUS2Luo0QeK9AdxIOEM7mNBRghH+6v878Ji7P5tsQne/0MzeAn5M6GwhD5gJjAX+7O7l9Tldg2u3DbRsB2WbIL9VeG7ZMM3ePPvssxx88MFVhi1atIjOnTvTrl1lE7v9+vVj4sSJKevZZpttKl63adMmoxvJYvPq06dPlR7S+vXrV9Eda20tXLiQzp3DpdVz587l4Ycf5u67764YX1JSwqJFi1LG1K9f5b2BLVq0oE+fPlViSvy8sbrWr1/P5Zdfzssvv8zXX38NwJo1aygrKyMvL/1fssuXL6ekpKTKvBOXReJ8gYyXtUhNbS4r59K/TWH1xtCbeK+Orbn52F3UjrFIHCWzUsHdZwO/rsP0fwX+2ljTNbh1S2HU2VB8Nkx8sFGbvYmd1VyzZk1FQjtv3jx69epV47qq+9Lr2bMn8+fPp7y8vCKhnTdvHoMHD6554JHy8nLGjx9fkaT36dOHq666iquuuiqjGHv27MnHH1eeBXd35s+fn9Hnv/POO/n0009577332GabbZgyZQojRozA3ZPOK17Xrl0pKChg7ty5DBkSbqyp7XIXqQ9/mPA5k+aGH2V5LYy7TxlBh9bq0VAkni4zEEnlpMdDczfb7NLozd706dOHvfbai1/+8pds3LiRqVOn8sADD3DqqafWuK4ePXowZ86cipuYEu2+++60bduW22+/ndLSUl5//XXGjx/PSSedVON5lZaWMmPGDE4++WQWL17MT37yEwDOP/987rvvPt577z3cnXXr1vHiiy+yZs2aihjj23k98cQTefHFF3n11VcpLS3lzjvvpGXLluy1117VxrBmzRpat25Nx44dWblyJddff/0WyyNVm7J5eXmceOKJXHXVVaxZs4a5c+fyu9/9rk5Nm4nU1tuzlnPv67Mq3v/024MZ2bdTFiMSaZqUzIo0UU888QRz5syhZ8+efO973+P666/nkEMOqXE9sY4OunTpwsiRI7cYX1hYyPPPP89LL71E165dufDCC3nkkUfYcccdtyibSqy1g44dO3LUUUfRpUsXJk2aRM+eobO44uJi7r//fi666CI6derEdtttx0MPPVQx/S9/+UtuuukmOnbsyB133MEOO+zAY489xsUXX0zXrl0ZP34848ePp7CwsNpYLrvsMjZs2EDXrl3ZY489OPTQQ6uMv/TSSxk3bhydOnXikksu2WL6u+++m7Zt2zJw4ED22WcfTjnlFM4555yMl4VIfVi+dhOXPjmF6A8F9tmuKz/cd1B2gxJpoiz215tIrisuLvZk15TOmDGDnXbaKQsRydZO257URnm5c87DH/D6p8sA6FpUyD8v/Rbd27Wq93mZ2SR3L673ikUakc7MioiINCFj/ze7IpEFuPPE4Q2SyIo0F0pmRUREmoip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JLn5K9dz/fjpTJixtMrwYX06ctPRO7NL7w5ZikxEpPlQMpuD3P1JMxsC/NvMfg28qLZkRZqOTZvL+MsbX3LPa7PYFHdJQcc2BVx56I58v7iPLikQEaknSmZzgJmVpRl9D3BPmuZ73N21nkUayRufLePa56YxZ8X6KsNPGt2Hnx+6I53bFmYpMhGR5klJTm6oyykcnf4RaQSLvtnAjS98wkvTFlcZPrRne248Zmd1Qysi0kCUzOYAd2+R7RhEJLmSzeU88NZs/vjq52worfwTpV2rfH72nR04dfd+5OmSAhGRBqNkVkSklt7+Yjm/fm46s5aurTL8uJG9+eVhO9K1KF1P0yIiUh+UzIqI1NCS1Rv5zYszeP6jRVWG77hNO244emd2G9A5S5GJiGx9lMyKiGSotKych9+ewx8mfM7aTZsrhhe1zOfyQwZz5p79yM/TVUEiIo1JyayISAben72SXz83jZmL11QZftSwnlx1+E70aN8qS5GJiGzdlMyKiKSxbM0mbnlpBv/4cGGV4dt1L+KGo4ey16CuWYpMRERAyayISFIbS8v42/vzuPPfn7FmY+UlBa0L8rj04O05Z+8BFObrkgIRkWxTMisiEmf52k08+s5cHnt3LivWlVQZd9gu23D14UPo2bF1lqITEZFESmZFRIDPlqzhgTdn88yUhZTEdUELMKBrW647aij7De6WpehERCQVJbMistVyd96atZwxb87mjc+WbTG+V8fWnL13f07fsx8t8/OyEKGIiFRHyayIbHU2bS7juSmLeODN2Xy6ZM0W44f16cj53xrAoUO3UVNbIiJNnJJZEdlqrFxXwmPvzuWRd+ayfO2mKuPM4DtDtuH8fQcwsm8nzNQFrYhILlAyKyLN3qylaxn7v9n8fdICNiVcD9umMI8Ti/tw9t796delbZYiFBGR2lIyKyLNkrvzzpcreODN2bw6c+kW47dp34qz9u7PyaP70qFNQRYiFBGR+qBkVkSalZLN5bwwdRFj3pzNJ1+t3mL8zr3ac/63BnLYLttSoOthRURynpJZEWkWvllfwuPvzePht+ewdM2W18MetGMPzv/WAHYb0FnXw4qINCNKZkUkp81evo4H/zebpycuYENpWZVxrQpacMKocD3swG5FWYpQREQakpJZEck57s77s1cy5q3ZTJixBPeq47u3a8mZe/XnlN360qltYXaCFBGRRqFkVkRyRmlZOf/8+CseeGs2Uxes2mL8Ttu257x9BnDksJ4U5ut6WBGRrYGSWRFp8lZtKOVv78/jobfn8NWqjVuMP3DH7py3zwD2HNRF18OKiGxllMyKSJM1b8V6xv5vNk9NnM/6kqrXw7bMb8GxI3tz7j4D2K67rocVEdlaKZkVkSaltKyc92ev5LF35/Kv6Yv/v727j62rvu84/v7EiWMnNiEksRNISAJ5cngqkA7oIAk4rVpRsVLIqKCjaNBWPAg0tC2rpk2quhXajYmKp45tlHaUTSqssK7S1jmQFNqykpKxEuwk0ISEgO08AbYTO3747o9zHIx7r3Hih3Ov/XlJ1s/n/H73l6915eSTc3/n/Ojptx52ZkUp11+0gOsuOJUZFZOzKdLMzAqGw6yZZe7dQ51s2NZMXX0zG7c2815712+NWVpdyY2XLOSKc06mbFJJBlWamVkhcpg1s0zs3NdGXX0TdfVNvLjzIN39L8GmVi6ZxU0XL+SSxTO9HtbMzH6Lw6yZjYrunuClXQepezUJsK/vbcs79uRpZXx8eTXXXjCfpbMrR7FKMzMrNg6zZjZiWto7eW77PupebeLZrc0cPNSZd+w5c6expqaa2ppqauZU+iqsmZkNisOsmQ2r3QcOsb6+ifUNzbzwm/10dudePlA2aQIXL5rJmppqLltWRdUJZaNcqZmZjQUOs2Y2JD09wctvvkNdfRPr65tpaGzJO7aqcjK1NVWsqanmY6fPpLzUN3KZmdnQOMya2TE7dKSL57bvY319E8807GVfa0fescvnnMCa5dWsqanizJOnMWGClw+YmdnwcZg1s0F5+93DrK9vZn19Ez97fT9HunpyjistmcBFp89gTU0Vl9VUc8qJ5aNcqZmZjScOs2aWU0Twyp73kuUDDU28sue9vGNnTC3l0mXJ8oFLFs9k6mT/1WJmZqPD/+KY2VHvHu7kV28coK6+mWfqm2l8rz3v2CXVFdTWJMsHPjJvOiVePmBmZhlwmDUbhw4d6eK15la2NrawramFrU2tbGtsGTC8TpwgLjjtJGqXVbOmpppTZ0wZxYrNzMxyc5g1G8OOdPWwY18bW5ta2NbYkrRNLew6cIjI/cSsD5hWPolLl86itqaaVUtncULZpJEv2szM7Bg4zFpBkHQtcDNwNlACNADfAR6KiNx3GtlR3T3BrgOH+lxpTcLrjn1tdOXZJjaX0pIJnF5VwcWLZlBbU82K+dOZWDJhBCs3MzMbGodZy5ykB4BbgHZgPdAJ1AL3A7WS1kZEd4YlFoyI4K1329nWN7Q2tbC9qZWOPE8XyGWCYOHMqSyprmRJdSVLZyftghlTHF7NzKyoOMxapiRdRRJkG4GVEbE9PV8NPAtcCdwGfCuzIjOyr7XjA0sDtjYmobWlo+uY5pk7vZyl1ZUsmV2ZtNWVnDZrKmWTvGGBmZkVP4dZy9pX0nZdb5AFiIgmSTcDG4A/k3TfWFhu0NndQ1tHF629X+1dtHR00dbRxcFDnbze56as/W1HjmnuqsrJfa60VrCkupLF1ZVU+DFZZmY2hvlfOcuMpLnA+cAR4Af9+yNio6Q9wCnAhcDPR7fCRE9P0HYkCZ9tHV20tOf5Pg2nvWG1pb0reV37++G1vXPoeXxa+aT0SmvF0SutS6ormT61dBh+WjMzs+LiMGtZOjdtt0TE4TxjXiQJs+cyAmH2uz/fyW/2ttLa0U1rR2caOrtpbe9MQ2o3rcf4sf5wmVJawuLqSpZUVRxd07p0diVVlZOR/ExXMzMzcJi1bC1M2zcGGLOr39hh9aOX32LTGwdHYuqcJKiYPJHKyROZOnkiFWUTqZj8/teCmVNZmobWU04sZ4I3IjAzMxuQw6xlqSJt2wYY05q2lbk6JX0J+BLAqaeeeuwFlA3uV2BKaUkSOPuFz77npk6eSGXf79O+vt+XTyrxVVUzM7Nh5DBrWepNdYN/EGo/EfEw8DDAihUrjnmea1bMY+XiWVSUffBqad/vp5ZO9FatZmZmBcph1rLUkrYVA4zp7WsZYMxx+9RZc0ZiWjMzMxslfjq6ZWln2s4fYMy8fmPNzMzMjnKYtSxtTtszJJXnGfPRfmPNzMzMjnKYtcxExG7gJaAUWNu/X9IqYC7J7mC/GN3qzMzMrBg4zFrW7krbb0ha1HtSUhXwYHp491jY/cvMzMyGn28As0xFxBOSHgJuBn4tqQ7oBGqBE4CngPszLNHMzMwKmMOsZS4ibpH0PHArsAooARqAR4CHfFXWzMzM8nGYtYIQEY8Dj2ddh5mZmRUXRRz38+rNCoqkvQy8Ne5AZgL7hrEcKyx+f8c2v7/Hb35EzMq6CLOhcJg1AyRtiogVWddhI8Pv79jm99dsfPPTDMzMzMysaDnMmpmZmVnRcpg1SzycdQE2ovz+jm1+f83GMa+ZNTMzM7Oi5SuzZmZmZla0HGbNzMzMrGg5zNq4JelaSc9JeldSq6RNkm6V5N+LIiZpqaQ7JD0mqUFSj6SQdHXWtdnQSJokqVbSPZJekPS2pCOS9kh6QtLqrGs0s9HnNbM2Lkl6ALgFaAfWA51ALVAJ/BBYGxHd2VVox0vSvcAdObrWRsQTo12PDR9Ja4D/Tg8bgV8BbcBy4Mz0/Nci4i8zKM/MMuIrUDbuSLqKJMg2AmdHxKcj4kpgMVAPXAnclmGJNjSvAH8DXAMsAjZmW44Nox7gSWBlRMxJf3eviYizgM8B3cBfSLo00yrNbFT5yqyNO5I2AecDX4iI7/XrWwVsIAm6p0REz+hXaMNJ0gZgFb4yO+ZJ+kfgRuCRiLgx63rMbHT4yqyNK5LmkgTZI8AP+vdHxEZgDzAbuHB0qzOzIdqctnMzrcLMRpXDrI0356btlog4nGfMi/3GmllxWJy2b2dahZmNKodZG28Wpu0bA4zZ1W+smRU4SbOBG9LDJzMsxcxGmcOsjTcVads2wJjWtK0c4VrMbBhImgg8BkwD1kfEjzIuycxGkcOsjTdKW9/5aDZ2fJvk0Xq7gc9nXIuZjTKHWRtvWtK2YoAxvX0tA4wxswIg6VskTzBoBGojojHjksxslDnM2nizM23nDzBmXr+xZlaAJN0D3A7sJQmy2zMuycwy4DBr403vo3vOkFSeZ8xH+401swIj6ZvAncB+4OMR8WrGJZlZRhxmbVyJiN3AS0ApsLZ/f7ppwlySjyx/MbrVmdlgSLob+BPgIEmQfTnjkswsQw6zNh7dlbbfkLSo96SkKuDB9PBu7/5lVngkfQ1YB7xDEmT9CYrZOOftbG1ckvQgcDPQDtQBnSR3Q58APAVcHRHd2VVox0vSebz/nxKA5SSPWdsOHOg9GRHe4a3ISLoCeDo93ARsyTO0ISLuHp2qzCxrDrM2bkm6FrgVOAsoARqAR4CHfFW2eElaDTz7YeMiQh82xgqLpBuA7wxi6MaIWD2y1ZhZoXCYNTMzM7Oi5TWzZmZmZla0HGbNzMzMrGg5zJqZmZlZ0XKYNTMzM7Oi5TBrZmZmZkXLYdbMzMzMipbDrJmZmZkVLYdZMxvTJK2WFJI2ZF3LUElal/4snxzCHOdJ6pH0t8NZm5lZVhxmzayoSdqZBrwFWdcykiTNAf4c+GlE/OfxzhMRLwH/BtwuafFw1WdmlhWHWTMb634J1ADXZ13IEH0VqEzb4ZhrEnDXMMxlZpYpb2drZkVN0k5gPrAwInZmW83IkDQDeBN4C1gUw/AXt6QXgXOB0yJi11DnMzPLiq/MmllRknSDpCAJsgA70uUG0XfZQb41s5IWpOd3Spog6U5JWyQdlvSmpL+TNCUdO13SvenYDknbJd05QG2S9DlJP5G0L33NLkn/cJzLIf4QKAO+lyvISjpR0tfT+g/1+Rk2SPpKnjm/C5QAXz6OeszMCsbErAswMztOr5EEsquBqcCTQGuf/tZcL8rjceDTwIZ03pXAHwE1kq4DXiD5iP954KS0/x5JZRHx9b4TSZoE/CvwWeAwsAloAs4EbgKukvSJiNh0DPV9Jm3r+nekgftnwHKgOR3TBsxJz11I7uUEvXP9HslaXDOzouRlBmZW1D5smYGk1cCzwMaIWN3n/AJgR3q4FbgsIt5K++YBm4EZwCtAA/AHEdGe9l8O/AfQAsyOiEN95r0bWAf8FLguIt7s03cbcB/wOrAsIroG8fNNAd5JD0/oraFP//Ukof7HwGf6zimpBFgVEc/kmFfAfmB6+jM0fVgtZmaFyMsMzMzg9t4gCxARu4HH0sP5wM19Q2RE/Bj4P5KrtSt6z0s6Cbid5Krw2r5BNn3d/SSh83TgU4Os7QySm7V29A+yqeq0resfjiOiO1eQTfsCqE8PPzLIWszMCo7DrJmNd51ArsD3Wtpuioh9Ofq3p+3Jfc5dCpSTXAVuzvPnbUzbiwZZX1Xa7s/T/8u0XSfp85JOHOS8AAfStnrAUWZmBcxrZs1svGvM83F/75rbN3P09e0v63PutLS9PL05bSCzBlnftLR9L1dnRGyU9E3gj4F/BkJSA8n63icj4r8GmLt3zmMJwGZmBcVh1szGu54h9vdVkrZbSW4aG8j/DHLOo+tl8w2IiHWSvk1yM9fFwO8CXwS+KOknwOV5AnvvnAcHWYuZWcFxmDUzGz670/bXEXHDMM3Zu1xhxkCDImIHcG/6haSLgX8BPkHyaK+Hc7ysd858SyLMzAqe18yaWbE7kraF8J/zOpI1uGuOce3qQLYAHcBCSeWDfVFEPA88mh6e078/fZrBsvRw8xBrNDPLjMOsmRW7PWlbk2kVQPp4qwdI1qD+u6Rl/cekGzDcJGlQN11FxGGSJQmTgPNzzHelpJWSJvQ7Xw6sSQ/fyDH1MpLHcm0Z4GY1M7OCVwhXMszMhuKHwGrg++n60N41pusiIt8TAEbSn5I84eD3gVck/S/J82zLgHkkobs0bQf7bNenSDZqWENyY1dfq4A7gL2SNgN7SW4a+xjJBg8NwN/nmLM36D49yBrMzAqSw6yZFbv7SW5kuo5kF6/J6fm/Iv/jrEZMRHQC10j6Psla1d8BzibZYOFtkt3GnibZOGGwHgX+Grhe0lf7bWn7KNBOcuPXmcBMkkD/Gsma2X+KiJYcc34B6CZ30DUzKxreAczMrAikTyv4MlCbbyOEY5jrLJJNH56MiKuHoz4zs6w4zJqZFQFJs4FtwOaIWDXEuZ4ArgDOiIjtHzbezKyQ+QYwM7MiEBGNJEsnVkr65PHOI+k84LPAfQ6yZjYW+MqsmZmZmRUtX5k1MzMzs6LlMGtmZmZmRcth1szMzMyKlsOsmZmZmRUth1kzMzMzK1oOs2ZmZmZWtP4fPwkJ6l8tUbwAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(tArr, predicted_h);\n",
"plt.plot(tArr[-1], predicted_h[-1],'*',label='Point of Detonation');\n",
"plt.legend(fontsize='12');\n",
"plt.title('Height of rocket over time until point of detonation');\n",
"plt.xlabel('time (s)');\n",
"plt.ylabel('height (m)');"
]
},
{
"cell_type": "code",
"execution_count": 295,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The point of detonation of the rocket occurs at 2.5353 seconds and at a height of 300.0000 meters\n"
]
}
],
"source": [
"print('The point of detonation of the rocket occurs at {:.4f} seconds and at a height of {:.4f} meters'.format(tArr[-1],predicted_h[-1]))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## References\n",
"\n",
"1. Math 24 _Rocket Motion_. <https://www.math24.net/rocket-motion/\\>\n",
"\n",
"2. Kasdin and Paley. _Engineering Dynamics_. [ch 6-Linear Momentum of a Multiparticle System pp234-235](https://www.jstor.org/stable/j.ctvcm4ggj.9) Princeton University Press \n",
"\n",
"3. <https://en.wikipedia.org/wiki/Specific_impulse>\n",
"\n",
"4. <https://www.apogeerockets.com/Rocket_Motors/Estes_Motors/13mm_Motors/Estes_13mm_1_4A3-3T>"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}