{ "cells": [ { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "view-in-github", "tags": [ "no-tex" ] }, "source": [ "\"Open" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "id": "JoW4C_OkOMhe", "tags": [ "remove-cell" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Note: you may need to restart the kernel to use updated packages.\n" ] } ], "source": [ "%pip install -q -U gtbook\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "id": "10-snNDwOSuC", "tags": [ "remove-cell" ] }, "outputs": [], "source": [ "import numpy as np\n", "import plotly.express as px\n", "try:\n", " import google.colab\n", "except:\n", " import plotly.io as pio\n", " pio.renderers.default = \"png\"\n", "\n", "import gtsam\n", "from gtbook.drone import axes\n" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "id": "nAvx4-UCNzt2" }, "source": [ "# Sensing for Drones\n", "\n", "> Most drones use inertial sensing and cameras.\n", "\n", "\"Splash" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```{index} pair: inertial measurement unit; IMU\n", "```\n", "```{index} sensing; inertial\n", "```\n", "\n", "## Inertial Measurement Units\n", "\n", "An **inertial measurement unit** or **IMU** measures how a rigid body moves through space. The technological development of IMUs has undergone revolutionary transformations since their invention. Whereas they were initially developed for military and later civilian navigation purposes, miniaturized (MEMS) versions of them are now built into most of the mobile computing devices people use every day. IMUs often bundle the following three sensors: gyroscopes, accelerometers, and magnetometers, which we discuss in turn below." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```{index} gyroscope, bias\n", "```\n", "### Gyroscopes\n", "\n", "A **gyroscope** measures *changes* in orientation around three orthogonal axes, i.e., an angular velocity $\\omega$.\n", "This is useful for drones, as they fly in 3D space and have to carefully control and hence measure their attitude $R^n_b$. Gyroscopes do not directly measure attitude however, only the *rate of change* in orientation, and hence we need to integrate the angular velocity $\\omega(t)$ over time:\n", "\n", "$$\n", "R^n_b(t) = R^n_b(0) \\int_{\\tau=0}^t \\exp \\hat{\\omega}(\\tau) d\\tau\n", "$$\n", "\n", "Above, the exponential map $\\exp \\hat{\\omega}(\\tau)$ is as defined in the previous section, where we have also shown how to numerically integrate forward in rotation space.\n", "\n", "Unfortunately, when the gyroscope measurements are corrupted by random noise, this noise is also integrated over time. In addition, gyroscopes also suffer from **bias**, a non-zero offset of the measurements that changes slowly over time. If we know this bias, e.g., by estimating it, then we can subtract it first. However, if we do *not* know the bias, the resulting error grows linearly over time when it is integrated.\n", "\n", "Both effects mean that we will gradually lose track of the correct attitude $R^n_b(t)$, a process known as *drift*.\n", "Good (expensive) gyroscopes are able to track the attitude for a long time, whereas cheaper (MEMS) gyroscopes,\n", "such as those found in many drones (and phones), can drift away from a usable attitude estimate in 100's or even 10's of seconds." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```{index} accelerometer\n", "```\n", "### Accelerometers\n", "\n", "An **accelerometer** measures linear acceleration in 3D. While GPS can provide a measurement of the absolute position $r^n(t)$ of a drone, provided one is outdoors and in an open area, the errors associated with GPS are often large. Accelerometers are much more precise, but unfortunately do not provide absolute position: because they measure *forces* exerted upon them, any measurement they provide is essentially an acceleration, i.e., the second derivative of position. Hence, of course, the name \"accelerometer\".\n", "\n", "In theory, we can *doubly* integrate the measured acceleration to obtain the position $r^n(t)$\n", "(velocity is the integral of acceleration, and position is the integral of velocity).\n", "However, because of the double integration, the effect of random noise and bias error is doubly compounded, making the use of an accelerometer for estimating a drone's position rather tricky. It can be done, but it requires great care and careful estimation of the biases. In fact, aircraft equipped with *inertial navigation systems* typically have an \"INS alignment procedure\" where the aircraft remains stationary on the taxi-way for a short period prior to take-off. Even then, unless the accelerometer can be augmented with absolute sources of position, such as GPS, an INS is bound to diverge sooner or later.\n", "\n", "One of the most frequent and dependable uses of an accelerometer is to \"aid\" a gyroscope, maintaining absolute orientation over time.\n", "As discussed above, integrating the angular velocity $\\omega(t)$ over time accumulates error.\n", "Because gravity is such a strong signal it often dwarfs the accelerations due to maneuvering, and hence we can use it to correct our attitude estimate (i.e., our estimate for the rotation matrix $R^n_b$). This is known as \"aiding\" the gyroscope. Note that the attitude has *three* degrees of freedom, and the accelerometer can only correct two of them: pitch and roll. The absolute heading of the drone is still unavailable.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Magnetometers\n", "\n", "A magnetometer measures a 3D vector that points along Earth's local magnetic field.\n", "The magnetic field roughly points to the magnetic north, although it really is 3-dimensional, and magnetometers measure the strength of these field in all three axes. For drones, it is often a noisy and rather unreliable sensor, especially indoors or in the presence of metal structures, including electrical wiring etc. One drone application is inspecting bridges, and one can see that in such cases a magnetometer's usefulness will be rather limited.\n", "\n", "Still, as a magnetometer functions like a sophisticated compass, its main use is to \"aid\" the gyroscope, providing a measurement on the absolute heading, i.e., the last remaining degree of freedom. While noisy, over time it can provide enough signal to recover and maintain the heading of the drone." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```{index} visual odometry, localization, visual SLAM, extrinsic calibration\n", "```\n", "```{index} sensing; stereo\n", "```\n", "\n", "## Cameras\n", "\n", "The second frequently used sensor for drones is a camera, or multiple cameras. Cameras are light-weight, cheap, and they provide some amazing capabilities, which we will discuss below and in the next section. They are also *passive*, in that unlike LIDAR sensors, they do not send out energy into the environment. This has obvious benefits in terms of stealth, important in some applications, but also is less power-hungry. In drones, battery autonomy is one of the key design constraints, and cameras are a very popular sensor for that reason alone.\n", "\n", "By tracking features in the image(s) over time, cameras can provide relative motion measurements, i.e., **visual odometry**. Given a preexisting map of the environment, a camera can be used to perform *localization*, providing absolute orientation and position even without an IMU. *If* an IMU is available it can be used to track the high frequency *relative* motion of the drone, while the visual information provides a lower frequency but *absolute* measurement of the drone's pose. In that way, IMU and camera measurements are perfectly complementary. In addition, if no map is available, cameras can be used to build a 3D map of the environment in real time, using a paradigm called **visual SLAM**, which we will discuss below.\n", "\n", "In this section, about the raw sensing, we will concentrate on the **extrinsic calibration** of cameras and camera rigs. \n", "We have already discussed cameras as sensors in section 5.2, including their *intrinsic* calibration parameters such as focal length, image center, etc.\n", "However, when using cameras on a drone, it is important to know the relative position and orientation of the camera with respect to the drone's body frame, the so called *extrinsic calibration parameters*, consisting of a position $t^b_c$ and orientation $R^b_c$ of the camera in the body frame." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We first need to specify the *position* of the camera(s) on the drone. \n", "Recall that the drone *body coordinate frame* is forward-left-up (FLU), and hence this is how we need to think about where the camera is:\n", "a camera towards the front of the drone will have a positive $X$ value, etc. Below is a simple example with two cameras in front and one towards the back of the drone:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "t1 = gtsam.Point3(0.1, 0.05, 0.01) # front-left\n", "t2 = gtsam.Point3(0.1,-0.05, 0.01) # front-right\n", "t3 = gtsam.Point3(-0.1, 0, 0.01) # back\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can visualize the camera placement in the drone's FLU body frame using plotly:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAArwAAAH0CAYAAADfWf7fAAAgAElEQVR4Xu29C5SkZXnv+3R3VVd3T99mBnSELWS79WRc7kRgq5EtJka3SDxkgwdixISI2YgJIkcjsucEE6ORrBF160IkkZAjR3PUGFxC4jJKjuYibgwYwBi344q5iJGgAzN9v1VX1Vn/r/lmipqq+u7337tWrxHr+97L73m76/893/M+z0in0+kYDQIQgAAEIAABCEAAAiUlMILgLallWRYEIAABCEAAAhCAgEMAwctGgAAEIAABCEAAAhAoNQEEb6nNy+IgAAEIQAACEIAABBC87AEIQAACEIAABCAAgVITQPCW2rwsDgIQgAAEIAABCEAAwcsegAAEIAABCEAAAhAoNQEEb6nNy+IgAAEIQAACEIAABBC87AEIQAACEIAABCAAgVITQPCW2rwsDgIQgAAEIAABCEAAwcsegAAEIAABCEAAAhAoNQEEb6nNy+IgAAEIQAACEIAABBC87AEIQAACEIAABCAAgVITQPCW2rwsDgIQgAAEIAABCEAAwcsegAAEIAABCEAAAhAoNQEEb6nNy+IgAAEIQAACEIAABBC87AEIQAACEIAABCAAgVITQPCW2rwsDgIQgAAEIAABCEAAwcsegAAEIAABCEAAAhAoNQEEb6nNy+IgAAEIQAACEIAABBC87AEIQAACEIAABCAAgVITQPCW2rwsDgIQgAAEIAABCEAAwcsegAAEIAABCEAAAhAoNQEEb6nNy+IgAAEIQAACEIAABBC87AEIQAACEIAABCAAgVITQPCW2rwsDgIQgAAEIAABCEAAwcsegAAEIAABCEAAAhAoNQEEb6nNy+IgAAEIQAACEIAABBC87AEIQAACEIAABCAAgVITQPCW2rwsDgIQgAAEIAABCEAAwcsegAAEIAABCEAAAhAoNQEEb6nNy+IgAAEIQAACEIAABBC87AEIQAACEIAABCAAgVITQPCW2rwsDgIQgAAEIAABCEAAwcsegAAEIAABCEAAAhAoNQEEb6nNy+IgAAEIQAACEIAABBC87AEIQAACEIAABCAAgVITQPCW2rwsDgIQgAAEIAABCEAAwcsegAAEIAABCEAAAhAoNQEEb6nNy+IgAAEIQAACEIAABBC87AEIQAACEIAABCAAgVITQPCW2rwsDgIQgAAEIAABCEAAwcsegAAEIAABCEAAAhAoNQEEb6nNy+IgAAEIQAACEIAABBC87AEIQAACEIAABCAAgVITQPCW2rwsDgIQgAAEIAABCEAAwcsegAAEIAABCEAAAhAoNQEEb6nNy+IgAAEIQAACEIAABBC87AEIQAACEIAABCAAgVITQPCW2rwsDgIQgAAEIAABCEAAwcsegAAEIAABCEAAAhAoNQEEb6nNy+IgAAEIQAACEIAABBC87AEIQAACEIAABCAAgVITQPCW2rwsDgIQgAAEIAABCEAAwcsegAAEIAABCEAAAhAoNQEEb6nNy+IgAAEIQAACEIAABBC87AEIQAACEIAABCAAgVITQPCW2rwsDgIQgAAEIAABCEAAwcsegAAEIAABCEAAAhAoNQEEb6nNy+IgAAEIQAACEIAABBC87AEIQAACEIAABCAAgVITQPCW2rwsDgIQgAAEIAABCEAAwcsegAAEIAABCEAAAhAoNQEEb6nNy+IgAAEIQAACEIAABBC87AEIQAACEIAABCAAgVITQPCW2rwsDgIQgAAEIAABCEAAwcsegAAEIAABCEAAAhAoNQEEb6nNy+IgAAEIQAACEIAABBC87AEIQAACEIAABCAAgVITQPCW2rwsDgIQgAAEIAABCEAAwcsegAAEIAABCEAAAhBIjcC//tthe9klbz1hvNf9wvn2ptddnMg8ELyJYKVTCEAAAhCAAAQgAIF+BFzBe+t732r7nrTn2CVzs9O2Z34mEWgI3kSw0ikEIAABCEAAAhCAwDDB+/mP32BPPeVJqUBC8KaCmUEgAAEIQAACEIBARgQeftjsllvSH/yUU8yuuOKEcV0Pr0IY9u6edT4fr9fs5y94cWJzRPAmhpaOIQABCEAAAhCAQA4IfO1rZs99bvoTec5zzO67b6Dgfe4Z+23X1ITz+a7JCbvhN34lsTkieBNDS8cQgAAEIAABCEAgBwRy6uElpCEHe4MpQAACEIAABCAAAQjET8ANaUDwxs+WHiEAAQhAAAIQgAAEckAAwZsDIzAFCEAAAhCAAAQgAIHkCCB4k2NLzxCAAAQgAAEIQAACFSXAobWKGp5lQwACEIAABCAAgaoQQPBWxdKsEwIQgAAEIAABCFSUAIK3ooZn2RCAAAQgAAEIQKAqBBC8VbE064QABCAAAQhAAAIVJYDgrajhWTYEIAABCEAAAhCoCgEEb1UszTohAAEIQAACEIBARQkgeCtqeJYNAQhAAAIQgAAEqkIAwVsVS7NOCEAAAhCAAAQgUFECCN6KGp5lQwACEIAABCAAgaoQQPBWxdKsEwIQgAAEIAABCOSAAKWFc2AEpgABCEAAAhCAAAQgkBwBBG9ybOkZAhCAAAQgAAEIQCAHBBC8OTACU4AABCAAAQhAAAJlIvDw8sN2y9/ekvqSTpk5xa74T1ecMC6CN3VTMCAEIAABCEAAAhAoN4GvPfw1e+7vPzf1RT7nlOfYfa+7D8GbOnkGhAAEIAABCEAAAhUjgIfXjCwNFdv0LBcCEIAABCAAAQhkSYCQhizpMzYEIAABCEAAAhCAQOIEXMF7y3uusVOevPfYeLvnZmx+bjqR8fHwJoKVTiEAAQhAAAIQgAAE+hFwBW/vZ2963cX2ul84PxFoCN5EsNIpBCAAAQhAAAIQgEBeCCB482IJ5gEBCEAAAhCAAAQgkAgBBG8iWOkUAhCAAAQgAAEIQCAvBBC8ebEE84AABCAAAQhAAAIQSIQAgjcRrHQKAQhAAAIQgAAEIJAXAgjevFiCeUAAAhCAAAQgAAEIJEIAwZsIVjqFAAQgAAEIQAACEMgLAQRvXizBPCAAAQhAAAIQgAAEEiGA4E0EK51CAAIQgAAEIAABCOSFAII3L5ZgHhCAAAQgAAEIQAACiRBA8CaClU4hAAEIQAACEIAABPoRuO/BQ3bZmw7a17/4B1YbGzt2ya8eeL/96H94qqnEcNwNwRs3UfqDAAQgAAEIQAACEBhIYJDg/ZX//j7b//TTEbzsHQhAAAIQgAAEIACBYhNA8BbbfsweAhCAAAQgAAEI5I7Aww+b3XJL+tM65RSzK644cVwEb/q2YEQIQAACEIAABCBQagJf+5rZc5+b/hKf8xyz++5D8KZPnhEhAAEIQAACEIBAxQjkzcN7/zf+wS594/X2t1+4xSYa48escfk177Ezn/V0e8NrXxG7hTi0FjtSOoQABCAAAQhAAAIQGETgX//tsL3skrfan/2/77bTTn3yscv0/73uF863i8//qdjhIXhjR0qHEIAABPJHYLPZss2tto2Mjtjk+KjVxkbzN0lmBAEIVILAdqtl/8cv/4b9yGn77B3XvNYmJxr2qT/5C3v3hz5xggiOCwiCNy6S9AMBCEAgZwTa7Y6tbrZsZb1pnc4TJzc2OmJPmp+w7Vbb6jXEb85Mx3QgUHoC3/7H79lb3/m79o/ffdhZ69TkhL39115j57/07ETWjuBNBCudQgACEMiGgETu+lbLJGg3tlq2ttnqO5GREXME7w+ObjjXNuqjNtkYs0b9eBL4bFbAqBCAQJUIHFlYts3NLXvSSbttLME3TwjeKu0q1goBCJSWgEIWVta3bbPZdtY4M1mzVrszUPBK5O6ZGbfDi5tPYIL4Le0WYWEQqDQBBG+lzc/iIQCBIhNw43JXN7dPCFmYnx53PLz66dfqY6M2u6tujy09UfB2X+uK3x3vb63IqJg7BCBQcQII3opvAJYPAQgUi8CwuNzulUjwrm1u29bjHt/eVY7XR21mcrjg7b5HIRCT4zshDwp9oEEAAhAoEgEEb5GsxVwhAIFKEnDjcuWtdUMWvEAoXGFlY7jgnZ6o2ZHlLa+u+n4+9Xi8L+I3FD5uggAEUiaA4E0ZOMNBAAIQ8EugNy7X7326bu9sw5bXmwM9vBPjY6afhZVwgrd7Lq74VejD6OhIkGlyLQQgAIFUCCB4U8HMIBCAAAT8ERgWl+uvh52rJHglZnVwrV+TSFWM7vL6dpBuPa+V6J1q1KxeGyHXryctLoAABNIigOBNizTjQAACEBhAwG9cbhCAXoJ310TN5IyNW/B2zxHxG8RiXAsBCCRJAMGbJF36hgAEIDBE5CpfbpC43CAwT55r2KNLmydkb3D7UNoytSQFb6/4VQiFRDBV3oJYkmshAIE4CCB446BIHxCAAAR8EogSl+tzCOeyJ+/eKSoxqKUteLvnUR8bsYlGjRLHQQzKtRCAQCQCCN5I+LgZAhCAgDeBuOJyvUc6foUfwavw3tWNeGN4g8xR1yqOeGoC8RuUG9dDAALBCCB4g/HiaghAAAK+CLhxuWsb2wMPjvnqKORFp+ydtIcfWx949+xU3bZb7YGV2EIOG+k2V/xO1EetXhuN1Bc3QwACEOgmgOBlP0AAAhCIiUCYfLkxDX1CN16C16swRVLz8tsvJY79kuI6CEDADwEErx9KXAMBCEBgCAGFLKxvtnLlLfUSvF6FKfJkcMRvnqzBXCBQTAII3mLajVlDAAIZE8giLjfIkr1ieL0KUwQZK81rXfGrbA+TjZ1MEzQIQAACXgQQvF6E+BwCEIDA4wTckIWV9WzicoMYwo/gHVaYIshYWV178nzD1jdaTrwvJY6zsgLjQqAYBBC8xbATs4QABDIikKe4XL8IRkbMTppt2OHFzYG3KE/vkeXBldj8jpXldb1hG26JY8RvllZhbAjkkwCCN592YVYQgEDGBPIesjAMj17761DaY0uDBa+XBzhj/J7DS9RrDY8c6Z9r2BW/Cn0YVUk5GgQgUGkCCN5Km5/FQwAC3QSKLHK71+FH8Hodasv7zqiPjdrsrvpQUe+ugRLHebcm84NA8gQQvMkzZgQIQCDHBIoYsuCFc7w+ajOTw8Vg0QWvyhTLi6uwjCAN8RuEFtdCoDwEELzlsSUrgQAEfBIoo8jtXroE7/REbagYLLrg3TVRM0UqLK+HrxQn8SvhrH9rYxS68Pnrw2UQKCQBBG8hzcakIQCBMATKErLgtXYJ3qlGzZSFYVAregzvzOROSrIogrebTX1sxCYalDj22lt8DoGiEkDwFtVyzBsCEPBFoCoit9fDO1Efs6W1Zl9GivE9aa5hPzja/8CXL7AZX6TCGWubLdvYasU+E7fE8eQ4nt/Y4dIhBDIigODNCDzDQgACyREoe8iCFznFtkq0DfJ++jnU5jVG1p+nVTjDFb8T9VEn3y8NAhAoJgEEbzHtxqwhAIEeAlUXud04vASvn0Nted9g+/ZMOB7qTie9mVLiOD3WjASBuAkgeOMmSn8QgECqBKoYsuAF2OtAVxkEb9aH7hC/XruQzyGQLwII3nzZg9lAAAI+CCByh0PyOtDl51CbDzNkdomKTjxpfsfDm4fmil9le5hs7Bymo0EAAvkigODNlz2YDQQgMIAAIQv+t4aX4FXIg9JwDTrU5n+kbK7Ms4daYnzSSXU2ZpQ4zmZ/MCoE+hFA8LIvIACB3BJA5IYzjQRvq91xshj0a14xvuFGTe8u5c7Vz7C0a+nNZvhIboljxG9eLMI8qkoAwVtVy7NuCOSYACEL0YzjJXi9PMDRRk/+7qLO3xW/Cn0YVdUMGgQgkBoBBG9qqBkIAhAYRgCRG9/+kCBstjoDc9QWVTC6hDT/dsdsdSN8lbX4aIfrSR5qhT7UayNUeQuHkLsgEIgAgjcQLi6GAATiJEDIQpw0j/c1P62iDNu21Wz3HaDogldFJ1Y2Bq8vGarJ9SqPryrjIX6TY0zPEEDwsgcgAIFUCSByk8ftR/AOi/FNfobRRlDRiaXVpjVb/QV9tN6zvVviV95f/auDhTQIQCAeAgjeeDjSCwQg4EGAkIX0tkivB1RZDRq1UecQm4SuBLFK8iZRljeNVaroxCNH8pGSLMn11sdGbH6mYfqXBgEIRCOA4I3Gj7shAIEhBCRy5aX64UK6FbGqbhTXAzoyajYzWXdwbDVbTo5YCV6dl1pcaw4Mecg7v6yLTqTJxy2h3Gp1bGqiZpPjeH7T5M9Y5SGA4C2PLVkJBHJBoDtkYWu7bU/eXQ1vXC7gm5nywJ4027CxsRFH0PbGusrbO79rfEcEb7dseW3bEcFFaSryIA/24cXNokw50jz7iXsxkPidqI9avUbYQyTA3FwZAgjeypiahUIgOQLD4nKr5I1LjrB3zxJBKimsfK8SvY8tbg2McZXXUBkOdJ3rAV5eb9r6gLy93qOnd0Wei07ETaE+Nmrz0/Wh4l52dwpdjI86xS5oEIBAfwIIXnYGBCAQmoCfuFx5eAlpCI3Y80ZXACpMQTG6ys7gVXZXgldFG1zProTVrskxJ1OA7lc/gzI8eE4o4QuKXiUuCB49vOjw2sJK09dtbonjnfsQv76gcVFlCCB4K2NqFgqBeAg0t9uOJ3B1c9s6Pt6EnzwncVXOE/XxEA3eizyzEqcSf4pGkHe2W6DqIeMHRwcf6hr2ECKxpL4lntx+8xTyUPSUakGsHSXfsCt+JZgVu02DQNUJIHirvgNYPwR8EIiSSkzxlvIYFjUjgA88qV3ihiBIlDoPHRv942+9shh4fa4FSTDNTNVsvDbmxPpuNncedLJus1N1xzNd5KITfhm6B9aietu1b5ywh/qYE/JCg0AVCSB4q2h11gwBnwQkcPSKW2InbJNA2W61HdFLC0fADVtQYQIdMpNNhnnXveKmvT7vnaVEkgSTMm7owWWQ0A63umB3xSUCg42azdVB7eR3lm6JY8SvX2JcVwYCCN4yWJE1QCBGAn7icoMMV6VX0EG4+LlWh9BUhECtN2xh2P1eQsnr80F9O9kBJH4fT28m4Z2217cqITJiLXGv+Pckmyt+FfowqkBwGgRKSgDBW1LDsiwIBCHgeGA3/MflBulbok1f3ktr/g7eBOm7jNfq9fP0RM12TdYcm2w0gx8g84rh9RPS4MVWXmeJJTfkIa30ZmHFutd68vZ50ANrccxfD1fy5FPiOA6a9JE3AgjevFmE+UAgJQJR4nKDTFFfovpRVgDaYAKugBSr1fVtJ3+un0OB/Xr0Erxenwexkx5m3JAL3SdPtMIews7da+w4xLrXGHn4POs3I/L46vAi4jcPu4E5xEEAwRsHRfqAQIEIKGRhZT1aXG6Q5Srl1eyuuj22VI1CAUHY6FoJXHnB1eIKEdBr/0GFGZIs3JB0ejM/eWmD8s/r9XmKVZb41T7Vv4rjpkGgiAQQvEW0GnOGQEACccflBhler+i98sIG6a8M13aHLfSrhhZljRK089PjAx8w0noA6U5vpkNu8vpGTW8mT7LCPY4sl/9tQV5DN+pjIzbRoMRxlN9R7s2GAII3G+6MCoHECShkYXVT3txmYq+X/S4ir1/efucf13USCzrwJTG4thEtbGHQnLwEb9qVyuJMb1aVePC0DqxF3dduiePJcTy/UVlyf/IEELzJM2YECKRGIK243KALUtylCiEkFdcZdD5pX9+vGlpSLLw8uDuxwrVMYqq705spt2/Qg25Zx7WmtW+yOLAWdW2u+J2oj1q9RthDVJ7cHz8BBG/8TOkRAqkTSDsuN+gCFVOq19BRX2kHHTfL691qaCre0NzuBEorFmXeXq/983CIMGx6M+V03tpul76ISdGFvRsnjvCN8pvMvXETQPDGTZT+IJASgSzjcoMuUdXWlHUgasWooONmcX1vNTRlLUjKm9tvfV4eXKUS2ykbvJ0FnhPG7M5OoTjfYV7fPB3kShJeGdb5pPkGB9yS3CT0HZgAgjcwMm6AQHYE8hSXG4RCFaqtBa2GFoRfkGu9BK/iYFVfIC+C111bv/RmekDqfiugNwWPLm2m+gARhH1c1xY9BEix6ifPT8SFg34gEAsBBG8sGOkEAskRyGtcbpAVF/0V7aC1umEL8pq2O8GqoQXhF+RahSxIcAwStEWwxaD0ZlU4/FiUA2vD9uTMVN3cfRZk73ItBJIkgOBNki59QyACgbzH5QZZWl69ikHW0H2tm1ZsaqLmlNZd39y2ZqsTtrtY7/MKWSiC4O0G0p3erDY24hx+LHMsuB5YZMMip17bOztujfpOSWwaBPJCAMGbF0swDwiYWZHicoMYLA8HpYLMd9C17oEw/Ru1Gloc8+nXhx/BK8G4ttlKagqJ9CvmigVvt82U4WGz2XYeNsrWivZA0o+/PPE0COSNAII3bxZhPpUjUNS43CCG8kqVFaSvLK51vYwa2y2ikMU8/IzpJZiKGk/d7fmMmt7MD8esrin6gTVVY9MaaBDIGwEEb94swnwqQaAMcblBDKW4xJPmGs7r6KK07mpoyh4gj2gRskx4CV5VYVMJ4yKspXuv9AuLCZveLM97sOgH1ojfzfPuqvbcELzVtj+rT5lAmeJyg6IryoEjvTqfqI/Z1MRYbsMWhrGX4B0WslDUFHFeQt5Nb6aiGhL0QYtaBN3PSVxfhgNryqRB/t0kdgd9RiWA4I1KkPsh4EGgrHG5QQ0vz9UjR/Lr4XXTimld8ugqdKGIzUvwFvWVuYS6vOyyzbDmJ71ZXu1a9ANreivylD3E7+Z1f1V9Xgjequ8A1p8IgSrE5QYF9+TdE/bo4mauTthnVQ0tKLsg10vwKmPEIGEowbuwUryqd2GE+qD0ZkF4pnmtlxc7zbmEGUsHJhUyQ4NAHgkgePNoFeZUSAJVi8sNaqQwgiXoGH6vV57ayUbNdPhJJ/3Trobmd55hrtOhtI3m4HjjohZviBrb2p3eTGnk5C3OW3qzPP2OhNl7u6fHnd8pGgTySADBm0erMKdCEahyXG4QQ8nzs9XcOfyVVXPDFvTaWyELivVMs+xvGuv2OpQmT3uRDg+6zOKKAZftZ6ZqNl4by116s6iiPo39NWwMyglnbQHGH0YAwcv+gEAIAsTlBoem17WqRpZ2bKwbtqBT/vLoyZtbtAwFQWh7Cd64hGOQOUW9VjZ80nz8Qj1P6c2KfmBN89fDFA0CeSWA4M2rZZhX7ggQlxvNJGlXW5NImpmsHwtbiKsa2qc+MWavvCQ7L7WXFfRafGm1ac1Wu++lRRS8rmf+saVNr+WH+jwP6c2KfmCN+N1QW4+bUiSA4E0RNkMVjwBxufHZTF+I4/Ux58BUks0VR/XaSCJpxU49adK+/+h6kkuI1LfXobQiCt40K/X1pjdbXW8NfHiIZKiem4t+YG33tB4ua3EioS8IxEoAwRsrTjorCwHicuO3pFuW98hyMoJXHmQJI7Ukq6EVXfAWMYY3CzGYdnqzoh9Y27d7wkZHR+L/w0GPEIiJAII3JpB0U3wCxOUma8Mkqq11V0Nb22gNzU4Q1+qKIHgHvfoXr5NmG3Z4MZnQgLgY9/aTVfy3O4/e9GYbW23PfMBBWRT5wBrlhINam+uzIIDgzYI6Y+aGgBuXu7axnbsURbmBFONE4io+4XqL9e/q+ratbKSXbeGZT5uwrz6wYXNzMYKJsathHlw9dOhQW1KxsDEu4wld5ak6XBLpzYp+YI1ywkntfPqNkwCCN06a9FUIAsTlZmemqPGjCllQ6IJaVtXQnn/mhP3xnZv21NM62YEcMvIwwZv04a+kgHgdxEtq3GH9dqc32261bX2r5eR0DtOKfmBt7+y4Nerk3w1je+5JjwCCNz3WjJQxAYUs6AspyzywGSPIfPgw1da6wxaUTkze3CzTiuVd8A7zoicdR53UBovrzUBS84ua3iyLGOU4WehBlgaBvBNA8ObdQswvEgHiciPhi/3mIJ46ibOJ+phNTYylHrYwbOF5F7zDvOg7GQhqiWfKiHvjRH0zEPd8BvXXnd6s0+k4D2d+vL5FPrAm77RCTmgQyDsBBG/eLcT8AhNwQxYUl9ts5fO1c+BFleQGxY8qFEE/g5r72l0HvuWNz1s1tHNf1LD3f7Bpz/qx/nluszbVMG+oUsPVxkZtaa2Z9TR9jy8RKUFVtIN2venNtJcHvZko8oG1uV31Y2FGvo3KhRDIgACCNwPoDBk/AeJy42eaRI+DTtu71dBU8rW5ne9qaBdf0LC3XNu0s1+QT8E7LIZXglcCcnl9OwnzJtJnUeOOXRhe6c2KfmCNcsKJbHs6TYAAgjcBqHSZHgFCFtJjHcdIvbGK+rLXITTFQOrVr/LnqvxvnlveBe/Jc4PTjhUxVrSIXulB+7c3vdlms22djpnWmFR+6iR/lygnnCRd+o6bAII3bqL0lzgBRG7iiBMbwBUvG82WU/ZX1dCW17ZzF7YwDEDeBa/iQQelHSui4C3inP38ArnpzZTDVn/TFlaauX/Y610X5YT9WJpr8kIAwZsXSzCPoQQIWSj+BlHYgvJ1Tk/UTJ6t5fVmptkWwhLNs+D1yrObdQGHMMxnp+qmtF9lza6iBxQ12U5vNxSz7uegWxiWcd+ze3rceTtDg0ARCCB4i2Clis4RkVsOw3enFVOFqvrYSOEOIHVb4pcvHbfzXt6yV14SLudqklb1I3h3RFX+5j6IS5EzGPixdfeBtajpzfyMF+c1xO/GSZO+kiaA4E2aMP0HJkDIQmBkubyhXzU0TVSHqh45spHLOfuZ1JuvGrezX5BPwasYUR38GxQP6idLhh8GaV6jmGS97m+28nlIMAqLQQfWutObqX+9Dcmb11cPrifPT0RZPvdCIFUCCN5UcTPYIAKI3PLsDR1CU25ONR1C601BVpScqoMskmfB65VnV4JXr8yzLNwRdKcXfb8MW6+fCmtB0psFZRvleoUmze6qR+mCeyGQKgEEb6q4GaybACEL5dkPQaqhycP7w4UN53R6EVuRBW8RwwPyXmUtyh4OciDPK71ZlHmEuZdywmGocU+WBBC8WdKv4NiI3HIZPUw1tCDV1vJI61jwBjsAACAASURBVO3X1e2pT+3Y5b+Sv1y2skejNjowz27R2CtEQ17EQVkn8rg/gsxJBTXClMrul94s7ZAHygkHsTTX5oEAgjcPVqjAHAhZKJeR9SpWoQtuNTSFLvhtRYwj7V7b+26oOf/5lmv9r9kvm6jXyS6KrRxUWEKCd2FlqzDpr9w48CLmqPVjyzgqrLnpzeQBXt9Uir9W4vZVKjU3u4SfdXINBPJAAMGbByuUdA6I3HIZtjtsIUo1tKKnmcqz4PWqpDasClsed6v7UFWkynB+Oer36eS5nfCeOJoErw4sjtfGEk9vpvSCbjhGHHOnDwikQQDBmwblCo1ByEL5jC2P4WTjeDU0nRiPEn8bJG4xjzSLInjdBxR5ffXaXK+8ixYPW/S9Mmz/+jmwFnb/J53eTJkz6rXRsNPjPghkQgDBmwn2cg2KyC2XPd3V6HVyEtXQil4qNs+Ct9vrNjVRszUnS0bbdk2OOZ6/2tiI/duR9UgPLGnudr0N2Npun5DpI805JDVWGmK+X3ozZU2J8sCqB6mn7JlMCgv9QiAxAgjexNCWv2On+tFGy1Y3tyP9AS0/qeKsUF9mU42aE5+rAgVJVEOTZ0s/iiUtYsuz4J2frjtsV9e3Ha9ut7CR+FFIQ7vTcQSkSjrLxnluRcwq4ZenDqwp3rY3bZ/f+4NeF1d6M8oJByXP9XkhgODNiyUKMg83Lnd9q2UnzzcKXUCgIMhTmaZT9ney7pQJ1atvHX5ptpIRQzphLmF2eHEzlbXFPUgeBa9ErryhnU7HyX08qJKaQhoOL2wei/Xc2s638NWr80eXNkv5QB3HgbUweztqejPKCYehzj15IIDgzYMVcj6HQSELZfa+5NwksU2vO2yhn1cwtoG6OpK4ftL8hP3gaDyHdZKY47A+8yR4Zb+5qbpThUweW3nf9KDS6zWUyJl7vEhAd8YDPeDoQSevwresRSf0O5CHioNh0ptRTjjtvziMFxcBBG9cJEvWj5+4XL321hfp0lqzZKsv93LcsAWJI73R7lcNLWkCRRYyn/rEmN3zlTF7/03ZhWS4Dyry6C6vqezujjd+vDbqCFtXACt8YScOW7l5mwMrrOVR+OZFFCbxu5DkgbWw8+1Ob6YHJv1d6A15ccNiwo7BfRDIkgCCN0v6ORy7ud12Xmn7icst8xdSDk0TeUrdacX0habX3lmVmM3qdW5kiGaWpeBVxozZXePOMoYJWD2MSvhK8Mrz6zdPcrfwXV1vOcI5q1bmohNpHFgLa7dh6c2I3w1LlfvyQADBmwcr5GgOitF9bMm/50oxdotrgz1HOVpaZafiJu/Xv2mFLXjB1r7Rq/W8H5rqt44sBK8bkqB/vX7fJKaUoWFlfdsRvGFCFlzhKw+ym9LMy6Zxf55HL2hca0z7wFrYebvpzfS3Qw/J2n+N+ljY7rgPApkSQPBmij+fgwdJW6SDMmqENeTPlu4rSs3MfUWZl1mGLamah/mnKXjdw4QSf/odG3aiX9dI7Oqa3gwNYUMWul9zy6Mcd/najQ2zb317xBYWRo6Zdt+TO/bM/Z1jlfzKWHRCMeyHFzcKcxjPTW+mghM0CBSVAIK3qJZLcN5Lq03nC9NP05O/xMsjR4p5AMnPGot0TVzV0JJec5Grrd3zlVF73w11u/3O5LJMuHaUp1ZCd5jQdA+u9RO6vXYMK3y7X3PHJXz/4q9G7Z6/GbGNjeNi153v/FzHLr5w1J75oztZJ8rUihoKRjnhMu3Caq4FwVtNuw9dddCwBsVjPra4lWm8X9XNKNEzUR+zqYkxJzdy1GpoSfPMcwyj19qTFLzdQldFI4Z5N7sPri2uNgOFh2QtfD/+R6N26Nvelbpe/KK2vegns4sj9toLYT53Q4y6s2WE6SfteygnnDZxxoubAII3bqIl6S9oWINiMcvmiSmCKV3RMzpiziG0tYIUAdGhKs25iK+rkxK8YjI9uVMdrTckoXsvuvG8IyMjtrSqB83w+ZKzEL4PPDhin/kT/3Ggl7yy5YQ4lKUV9WFv7+w48btl2YQVXQeCt6KG91p20LAGHYx5bCm5V7xe863S525asZmpmjW3k6mGljTPIldbi1vwukUjVOxjmNB143n1atnr4FpQ+2kOO9X1dvL5+j1M2B3q4CeX79EFs9+9ZaxvGMOgOSum98rXt4IuKbfXF+XAWi9ApRKkQaDIBBC8RbZegnMPE9agQgJRarQnuJxSdK2UVJONWirV0JIGVuSUU9/8xqi9+Y11u+svoz3gdReNUEjCoN8dN8xBolQe8SRL0bqFCGT/MMJXcxxWtjiod9fdh796xbY9ZV/SuzKd/nVgTc4Bvw8V6cxq+Ciyq4Q6DQJFJoDgLbL1Ep47YQ0JA/bZfXc1NImQooQtDFtekautfe+hEfu5Cxr21QfCHdQcVDSiHy83xZhXPK/PreT7MtdzG1T4yq472SL6V2/7zJ2j9sDXvWN3eydalrCGoh5YU05nvQGgQaDIBBC8RbZewnMnrCFhwEO6762GNqzIQHazjDZyUauthRW8fotGiOqwFGPRqAe72xW+oyMjTox4EO9yv/hgv4fVemf50z/VNv0UvbkPO0UL/6KccNF3HvMXAQQv+2AgAcIa0t8cbpymm21ho5ldNbSkV6/sHkVMZxdU8HYfMvN6cHHDHDab7Vxl2oiSlqxb+N5yW8f+/n8F31ll8fAW8cAa5YSD71fuyCcBBG8+7ZKbWRHWkI4pusMW8lINLemVF7XamgTvuS9q2Lf+aXhIgx5e9CpYcbFesbdRUowlbafu/qMK37+5d8xuvzO4p7YsMbxFPLBGOeE0f8MYK0kCCN4k6Zag7yBhDe5J76K9rsvSTIqLEzc1xebGXckqy7V5jV3kamunnjRp3390ve8Su4t/6DDaMJsG8f568Uzz87DCV5XVfueGYLGgZcrSUMQDa7unx52DsjQIFJ0AgrfoFkx4/kHCGvRF/5Q9kxbEK5zw9HPZfbcg2mq2nVRU+rdqbX563Laayh1cvJRT/QRvkKIRSaYYS3MfhRG+qq72Z1/wL6DefPW27Z5Pc1XJjFXUA2vE7yazH+g1fQII3vSZF27EIAJ272zDlE+0iCImacPotbVeD8qjW5WwhWFMFc/Y7lghC5b0Ct7ubApeuXSnH/fq67qyePSDCl+VFdaPV/uZl7Xs7J8oR9GJIh5YI37Xa4fyeZEIIHiLZK2M5hokrEGv6JUYv2hlM5NE64Z6FK0aWpJM1HeRq625glevehWn6+cBJqsUY0nbsbv/IMJ3mOh96qkjdv7/3ixN7l0xKuKBNT2cze6qp7mFGAsCiRFA8CaGtjwdBw1rePLuYp6+j9Ni3WELRa2GFiePfn3J2z1eH7OFla2kh4q9fwlehaE0W20bVjRCA+clxVjsEIZ0GET4qhjFwuLIsd6e9u87dvaZE7bd6piylOhhokhFGgZhKeKBNcoJp/lbw1hJE0DwJk24JP0HDWvwSr9UEiwnLKO3GtrqRjm+rJOwVxGrrbmvpSfGR+2HRzes2Rr8ut1vJbUk2OalT1f4ytZ+Qzh0j8Sh3hKpfPZUo+Yc6AxS+S0v6++eRxEPrFFOOI87iTmFJYDgDUuuYvcFDWvQl9bSWrMylMpYDS1p42mPnDTXMJWkzntz7at56mFOKdUGZWkIUkkt7+uOa36ytTzd+hmWjcQ5zDdVNxW6cD3/uldvA1RWe2u7VUjhW8QDawpN05kMGgTKQgDBWxZLJrwOwhpOBOxWQ5MXirCFcBsw78Un5LGXABsZGXGErptN45lPm3BKC8/NHV93UVOMhbNc+LsU9+x6bVW5rfO4k1xiWPHQK+vbAw8y9qveFn4m6d1ZxANr2vdu3HF6pBgJAskRQPAmx7Z0PRPWsGNSCRsduKpCNbSkN3FeBa9X0Yjnnzlhf3znpj31tI6VJcVY0rbu7d8Vvq122/Hoqh1d2TomgIfNp2jCt4gH1vQWo17zzqSR9r5hPAiEJYDgDUuugvdVPayhitXQkt7mOuD46OJmbg4l+S0aIcH76T/Zsv3/26hNTdSc8J2ypBhL2ubd/UsIKlRBLUy4git8t1ttJxWiPMZ5bEU7sObmVM8jS+YEgbAEELxhyVXwviBhDTqksndu3B45kv/4zGGmdMMWFEPo5ozN65dqEbekYgT1IKVsB1m2IEUjNM+zz5qwL/2F2ZP2bTtlg2nBCChURIVHNrfbtrzWdLy6Uby27r2ahUJP8vbwUbQDa5QTDrafuboYBBC8xbBTbmYZJKxB3ju9oixiFTGqoaWz5SR69ACR5UOE36IRIqI409mpuv2ns8z+xwe37JnPylaop2Ol+EZxf6/EUYfS+mW5iCp8FR+ssKO8CN8iHlijnHB8e56e8kMAwZsfWxRiJkHCGiQM1IqUrUFhC0q2rn/9FBMohNFyPMksq60FKRrRm2Lsov/asLdc27SzX4Dg9bu9XIZ6uPHjFY8ifIPkAfY7/7DXFfHAGuWEw1qb+/JMAMGbZ+vkcG5BwhrcL7jDi5s5XMkTp6RDaPI6qekLWflzackTyOIwj+ulVcyoV9EIvXqf3TW+8+C2etwjefEFCF6/u0MeTnkMlelCXt2gRSSKLnyz2ON+bdPvOsoJR6HHvXkmgODNs3VyOrcgYQ06ha88q27qoTwtiWpo2VtDsYK1sdFU3gK4D2ASXBK6w4SXV4oxBK+/vSOxqjc94h01bCUu4auHWc0lqPD2t+ITryragTXid8NamvvyTgDBm3cL5XB+QcMa9MWSJ4+phM9EfexYWjHF+uVRkOfQ9LFPyQ0hUVWtpFp30YhuL22/8bpTjOm1+yCRhuAdbi3XM66UY15e9KB2j0P4plm9rWgH1ojfDbojub4oBBC8RbFUjuYZNKxhZrJujy1lH9agV9kKXZD3TgJcFZ8QutluLLeMbBJhL93hCF6lrruzNPhJMfbmq8bt7Be07JWX5DMNVpZWdVONLawme2A1DuGrvwlOTPFaMiXAi3hgbd/uCRsd3cmLTINAmQggeMtkzRTXUpSwBsIWUtwUIYeKu/iEG46wc1J/sJfWna4egqYna7a2sW0rG/4eghC8Jxo76KG0kNvlhNvcB1l5k4MKV/190P16KA+TB9hrDUU7sKaHxJPnJ7yWxecQKCQBBG8hzZb9pPMe1qA/3EpoLy+QcnKub273TYGUPUlmcMreSXv4sfXIINxwBAkYPymp3MNr2ht+ha47SQTvcXM53KfqptzbXiEjkY08pAONv2tyzKnaJnsGTYcYxWM8aFpFO7BGOeEkdyh9Z00AwZu1BQo6fl7DGqiGVrwNpXzNP1wIf7CxOxxhZX3bM17c3SNhPIII3ifuLz00zO2qmx/uae1MNyWZBLCEb9AiFN3CV9Xbggrn7nUW7cDa3tlxa9R3stXQIFA2Agjeslk0xfXkJazBrYamV9PuAbmoJ8JTxFj5ocJWW+utjublpR2UYiyMAd53w0453LdcW830dW7YiBiouEweY+Gj5uKNo3pb0Q6s6W0LDQJlJYDgLatlU1hXkLAGeTo2m21P71uQabuvsKcmdg6eRPXGBBmba+MjEKbaWpC4W68UY2FWUmXB67KPI9VYGPZB78lS+MYdnx507UGub9RHTQ+fNAiUlQCCt6yWTWFdQcIa9CWpP6hxpJ8ibCEF46Y4RJBqa67Xbada1/B0cq4HWLHcyrwQp9e/ioJXHnI9nGxu63BY8VL5RRW++rujHLXjNX8x4kU7sKbQFP2dpkGgrAQQvGW1bErr8hvW4KbniVKEgmpoKRk15WH8HOwJUjQiaExvmOVWSfC6PBWvu7jWjBTTGoZ13PdEFb5+7/ezr+NeW5T+KCcchR73FoEAgrcIVsrxHIOENeh1mVc+1N6lklYsx8aPaWrDqq0FKRqh6QQJdYgy/aoIXvGf3zXuZDlRircyNb/CddCae+/X4bbu6m3z03Xb2GrH+mYhKf6UE06KLP3miQCCN0/WKOBcgoY16A+rXi97NbcCl/5d2/B+fe3VH5/nl0C/amvdQtfPQ1KUFGNhyJRd8OpBUxW3RkZGbGFlK7UyvGFsEfWeuIRvb/W2Ih1Yo5xw1F3E/UUggOAtgpVyPsegYQ2PHNkYuCI3ibwK/egQGtXQcm78GKbXXW2tu2iEn9fnrjDudDpOCdtuD1sMUxvYRZkFr+KkZ6fqzoNp0JReSTJPuu+4ha8EcBz5pZNet/qnnHAalBkjawII3qwtUILxo4Y1ELZQgk0QYQmyv7xhelugA0F+DpjFmWIszNRv/b2afe97I/aO673fVoTpP4t7JPh0KE0PD3lNNZYGlziErzymKuKgB/ag1d/SWGPvGMTvZkGdMdMmgOBNm3gJxwsb1iDv3ER9zJRWTGELVEMr4ebwWJL7sCNxIA/t6sbwONGgHuCkiH7qE2N2z1fG7P03bSU1RKr96oCVslksrG4V/lBaXOB6C1goy4fffMPugbXtdiexssVxrlPFX2gQKDsBBG/ZLZzS+oKGNTS3O1avjTjeD8IWUjJSjobpLRoxNVEbWm0tyRRjYbCURfC62S8k5rwKd4ThVIZ7JHyddGT1MWu22ra6vu0ZOqO84+tbeohvOQi6q7etrrecfvLSpidqNrurnpfpMA8IJEYAwZsY2mp17BXW4FZDm5mqObXu/XjzqkWwOquV90sCd21j+5jIOnmuYQsrzROEQK8wzkumgKILXqdoy1TdGrVR51Bas9WpzgaMsNJu4dovVMGNR1euYv1N7G3u/QobCVP2OMLUB966e7ruePdpECg7AQRv2S2c0voGhTXoC0CpotywhY1my/mS1elvP9kaUpo+w6RAQF/2Sm7fL+tGd5YFV9SmlWIszNKLLHjFWnZYWd/2DCEJw6YK9/QTvi5XPxXo4ihbHBdnygnHRZJ+8k4AwZt3CxVoft1hDcOqoekzvfIblq2hQMtmqh4EJATk1VUGhWGZFOR1lBDTwTU1P9XUsoJ/z1dG7X031O32OzezmkLgcd34Z92YZkaLwBMt0A2ucNXeVmYZVZIMkilEvxtuHmql30s7KwblhAu02ZhqZAII3sgI6cAlIM9cu91x/oC3O0ortj3wD7hqzD+2qFep+Yllw5LxEghaNKI7xVhtbDTXxQ6KJnhdb7kf72O8u6Dcvekhbc9Mw8lsoT27td0KlZUhamaIsJQV1uIesAvbB/dBoCgEELxFsVRB5ukeflHVoWFNeT7lCfE6lV+QZTPNLgJBi0Z0pxhzi0x0e3sfW9oM5DVLwxhFEbxiq1RjiildXmv6zjKQBsOijyG2u2cazt8w9++YV4yv15p7hW+QzBBefff7fO/suDXqO29UaBAoOwEEb9ktnPL6/GZrcEWRxAytHAQkAOQx0pe2n6IRflKM9YvtzQOtvAte97Cf+PmxRR6YFmkO8pjr5+jyZt8Df3EJX9nPCe1Z884MEZSf9shT9kwGvY3rIVBYAgjewpou/onf+8Ah+9JX7reP3X6X3fPZm212eirwIF7ZGro7VFjDD45u4HUKTDlfN3R7pfwUjehOMeYnbjGP3t5vfmPU3vzGut31l/l7YNPD5Pyu8VyHhORrB/ufjVtyWXf4Kc4Rl/DtLVvsf8aDr5SY1lkKGgSqQgDBWxVLD1nnl+6+3z56+11234OH7NKLz3V+Tt13UigyQYpQENYQCnFubnJSW03WnQwc8kB5hadETTGWJ2/v9x4asZ+7oGFffWBwmey0DeWKMWVAUaqxIIen0p5rEcfrF8Lgdx1xCV8d6AwbJ9w7V8oJ+7Ue15WFAIK3LJaMsI7nn3+l7X/6aXbju64O5dXtHZqwhgjGKMCtvcLVT8GCuFKM5cXbmzfBK0GlB0h52NM+6V+ALRt5il4hDH4HiCp8NU4cfagfygn7tRrXlYUAgrcslvS5DoUtfO3rh+yC88455sW9+bY7HA/vVz97sy2trNmXvny/nfKUk+x5Z+z32esTLyOsIRS23N8URui6Xll5pZQhwG9pVi8YWXt78yJ4FU6iQ2nKEuDnFbsXVz5/IgH3AWtsdNSOLG/Gtn9d0brd0mHC7VDZaqIIX+0bygmz26tGAMFbEYt//5FH7bI3HbTllTWbmZ5y/r3t/Qds/zNOc0Tu2Y97eQ9956FjRJ57xn677QMHAhMirCEwstzfIA+XquT1KxrRb/LdKcaUHSCJSl5ZensXF82ef+aEfeufsgtpUDopVchaWN0yr6woud9gOZygWzVtJx/0diIzdHNUq/Owlde6cwEPSwXZvQCljtSDEg0CVSKA4K2Ita87eKsjchW2oKb//uLd99tdn3yvE8Zw8KaPm8Tula+50J535n6TJ/i1bz5oH3n/Aee/gza/YQ36gy8xRbaGoITTub7bQ+vnpHi/FGNJzzQrb++pJ03a9x9dT3p5J/Svh4m5qbpzet9POEnqEyzBgEGqpsWx3PrYqPNAqVy+fg5y9hszSPU24nfjsBp9FI0AgrdoFgs5X3l3FaJw5WUXOj3Iq3vuq66xX7r43GP/X2/X+vzC884Z+PmwqfgNa3BT4/gVyCGXz20BCbiiSgef/Hho3UwN+uLOIg1WFt7etAWvc0hwqu6U5tahtCS85gG3SSkvn921wzho1bQ4YMRRgELCd3qi5pRvHySe9+2esFGVhqNBoEIEELwVMbY8ugpr6A5RkFf3js/f7cTu9jZdK8F7/YHLHdEbtAUJa9g7u5O8XR4rWrYEghaNcON6d03WnBjdrA9MpentTVPwuh7HtY3txF6vZ7vzsh/dDWFQkQ49sGfZ4hC+evjcNTnmlOruFr56C3Py/ESWy2NsCGRCAMGbCfb4BpWn9g9vv8sRsy855yx78Tln9e1cqcfe+LYbn5BftzdsQdcorEF9SgirPwnesM2v11YhDfoDrxPmtGwIuKEIcvr48dBGTTGW5CrT8vamIXjd4hzipQcKUo0ls3PSDmHwu4o4hG9vHwqboJywXwtwXZkIIHgLbE1XsEqY6iCaROqBq17t5NHt15R+rDeEQf/fgTe82i78mXOcuN23vftWJ0XZL150bqjY3e5xddBDr8O9mgSKTgw/ciS7A0Becyzr566g0pegn6IR4qBXpnO76ra6vp3rGNKkvb1JC143lZuELm8/kvsNzDKEwe+q4hS+KmJBg0AVCSB4C2x1xeWqQITrhVV6sQ/ddsfAKmmqoKYwhk///jud7Axu2MKNv321veSF/T3DUfA0t9t2eNFfJSqFNei1G6fNoxD3f2930Qi/oQhJpRjzP+vgVybp7U1K8MrbrhP0zVY71lRuwemV+448hTD4JR2H8D1lL+WE/fLmunIRQPAW2J69B9G0FHlsFXMrT2+/pnvc8Ad5hCWYP33rOxOjcHhhw9fhGsIaEjPBEzoOE4rQHde7tFrMw1JJeHvjFryubTRXP2El6eyYco6iPa1MBXoDtbZZvLMDYYVvoz5qci7QIFBFAgjeAlvdTSXWfRBNXlx5ed10Y1qeQhXk0VX6MTUJXZURvuBl50QOW/DCR1iDF6F0Pg9TNCKLFGNJ0ojb26s8vH9856Y99bRO5GlLgM3vGrf1TQ6lRYbp0UFcVdOSnqef/oMIX127d3bcSX1Gg0AVCSB4C2z1frly3SISbv5cHUK76PLftDdcdmGo9GJR8RDWEJVg9PvdohF+Y25dYahT3npgKVv8aFze3jgEr1jL06gUUkX1nkffoen04LLWaGWrSuclfPW7LLFLKrJ09hqj5JMAgjefdvE9K4UoyHPrFpTQjd0H0fTf777p4/bTLzgrcW/uoEkT1uDbnLFe2F161E9Z37ylGIsVRk9ncXh7owpe2Wd2qm4r69tOWj5acgT0tmL3zE76wzKz7ha+elugcI16TW8P6ojd5LYXPReEAIK3IIYaNE033djvHLjcLjjvHDv0Dw/ZRa/7TfvIBw44hSby0PyGNTheiLlxsjVENJpbrtRv0Ygw4Q4Rp5ib26N4e8MKXokSHUrrdDql8zTmxrBdEylTCINfvq7wnRivGfUl/FLjurITQPCWwMJudgYdQNOBtKzCFwahDBLWoPRket1ItobgGzNo0QiNUJQUY8Fp+L8jrLf34gsa9pZrm3b2C9q+B1P+08lGzXcKON8dc+EJBMocwuDH3KrKR75dP6S4pioEELwlsbSE7n0PHLIXv/CsY4fT8rQ0v2ENesUrz5e8wjR/BMIIXdcLTOqr44yDenuDCF63VLOqeCkzQCf6OTd/m6OiV1UlhGGQeRUXrodZGgQgcJwAgpfdkAoBv2ENrjDwm783lcnndBB9qcuLo9eXfg+XlSHFWJLmCOLt9SN4nXzHU3Vr1EZtYaWYKd2S5J1E31ONMYd5Fd8U7Xi1GzYxPjwTg7L5qCqn3grSIFAVAgjeqlg643UGCWvYt2fCfnB0Ay/YAJu5oszJ17ratHUfeUTLlmIs6e3sx9vrJXjdcrVrG6QaS9pebv9FqJqWFAv9XThptuEcUhvWlMlHB5mVnlI526+87MKBwtctXa9/VcETgZyU9eg3DQII3jQoM4ZD4LGlTdtsesc7KqxBB67KfJo6zJbozqKgFGN+wj66PZZ+SweHmVsZ7/Hy9g4SvG65ZqUak1dXe5mWLIEiVk2Lk0iYHLsKg9P5j0HCV5+7WYAkdL949/25Ox8SJ0P6Kj8BBG/5bZybFUrAyiPp1dzX7hLINLMwWRS6xfHyWrlTMSW9RwZ5e9981bid/YKWvfKS45W6lBFgerLm7POy5S9OmnPY/l1PelWZR82x2y18uw88u1U5VYlTqS/dvO/3fPbmXJ4TCbt/uK86BBC81bF15itttzv2yNENX/MgrGEHk05Z75qsWZCiEdMTNZuaqJlepa9sbBMa4mvHDb+o19tb/+yf2J3XfM7+6LpZe8fPXmlP2/0jTqoxDgHGADtAF1UOYRAmif24cuxK+H77Ow85sb3y+l538FZzCxhpLLeIkap4EtoQBpkdGAAAIABJREFUYJNyaW4IIHhzY4pqTISwBn92dtOFyUvop2iEeiXFmD+2Ua7a9ci/2tx1b7X2Aw/akQ9+2H535hv23q++yz5w3gfsZ//DJaTTiwI3wL1VD2EQKh3O00NWEk3eXbXesvUfvf0u+/NPvjeJIekTAokTQPAmjpgBugkQ1jB8PwQtGuF6eeQJVqyoxDExo8n8zs3ccL3t+r2bbPVXrrKxd/6Wjdd20j596wf/aJd85iL7dzOn2zteeIM9dfb0ZCZArw4BN4RB6d1USayKLckcu255+usPXO4canPbS191jVPMSP8/DQJFJIDgLaLVCjxnwhr6Gy9MLl1SjKXzi1D/xt/Z/BuvsPbcnC296z22/eM/bspzqkNp8jSqhKsOEN764E32vnuvd0TvK595aTqTq9gobghDlVO8JZ1j1w1d6I7VdUMchoUzKNXZ8sqaU/xIIQ/K/kCDQJ4IIHjzZI2KzMVvWMOemXEnq0OZszWEEbpuijGVDF1ca/IaPaHfm5HFBZNXd+oTf2iL199g65dc6oSNKIvIyvrOQcDe2N5/WfgX+2+f+3lnRn/w8j/C2xuTbcR5z0yj0uWY/ebYjYrc9fB2l6u/7M0HHW/vgatePbB7CV2lO1M2h17vcNQ5cT8E4iCA4I2DIn0EIuA3rEEn3hv1UTuyvBWo/yJcHKZoBCnG0rPsxOf+1Gave6tt/8dn29GbPmyju3c78ZKqAqiCBr2V0nozOcjb+/a7r7V3nHODXX7GVelNvIQjVb1qmkzqN8duXOa/8/N3268fvNXx1ErIvuScs+zGd13t2b0Out374CHifD1JcUEWBBC8WVCv+Jh+wxr0R/7JuyfskSP+MjsUAategc9M1Zw4RL9FI8Lk3y0CizzOUV7d3Ve93mp//3VbuOkW23rBTzqZMiYbNfPKY4y3N36L6qFXP0eXN63ZqmY+4zA5duOwhFuu/pR9J9nzztzvdKn/Tz+K5e1t+v/PfdU1eHfjgE8fiRBA8CaClU69CPgNa9g727Dl9eK/tndKzE7WbWpizEkx5rdoBCnGvHZSfJ/rQJpCGHQobfna68wtc7253TYdkOr16g4aGW9vdJvsvL7fyUDQz6MefYRi9BA1x27cq5QHV/G8/XLxHnw8nIEsDnFTp7+4CCB44yJJP4EIBAlrkIdD3rUitjBFI7RON8XY2kbLEfx+xVYRGWU9536H0nQKvlEbdSqlhfEs9vP2vv3L19q/Ln+X2F4PgxPCsAMozhy7cf2O6UCbfrqzN6hvxf1edPlvOpXYej+La2z6gUBUAgjeqAS5PxSBsoc19IYh+C0A0Z2WjBRjobaW75sUvjD94Q85qcbk0ZVn1015paIdfrzwXoP1ens/9a2PmYTvW553HbG9feARwrADJckcu157NsjnX7r7fkfsKjsDOXqDkOPaLAggeLOgzpgOgbKGNehLW3G6QYpGhMnWwDYKT6DfobS5XXUn1Zi8unHmMsbb620nl9HYqA6pblb6jUaSOXa9LRHsiu6yxM89Y/8TClUE64mrIZA8AQRv8owZYQCBsoU1uN687VbbdwEIUoyl++vR71CaHlCmJ2uOzfSQklQb5O1VFgd5fKva9DugDBiKlV5aLWboUly200OX9mPRmit89W93dbairYP5lpsAgrfc9s316soS1uAebmp3zJZW/cV8kmIs/a3ZfSht5fVvsNqenVRj8uamdTBqkLf3m49+3W5/xRcql7fXDSFJ+mEj/d0WbMS0cuwGm1XwqxXeMDs9FfxG7oBACgQQvClAZojBBPyGNZw818hdkYUwYQikGEv/t0GH0mbf9lYbXVy0hQ/e4lRKU/YLpRpbWN3KpHAH3l4zt2qa8mzHGUKS/g6LNmLaOXajzZa7IVBcAgje4tquFDP3G9agXKiKr8xDtobuMAQdbPL7GlxrmJqomQ5E+T3EVgojZ7SIfofS9JAyv2v8WDngjKbmDFtVb6+yrjhVFAlhcEpT750dt9rYaJZbkbEhUAkCCN4YzXzzbXf07Y2a4oMh+w1rkFBRXs4fHM2uCIW+nBRjpy8npQpb3/QX7+mmGAtyiC3GbVnJrsa/8tc2f9UVxyql2fy8s39kw7CpxpIC2c/b+757r7dXPvPS0sX2EsJwfBcpx+7umZ2/JzQIQCB5AgjeGBlf9qaDT+jtvgcPOf/9zb+8LcZRyteV37CGfXsm7Ps/3LJ7/7ZjCwsj9m+PjDgwnrKvY/ue3LEzz0imEpPridOX9fLatskr7ad1pxhT4YIw+Vz9jMM1xwl0H0pbuv49tvHyn3VyGs9O1W1l3b/t0mbaz9v7P+693v7n9/+6NLG9hDAc31V5zLGb9p5nPAikTQDBmxBxVaNRVZoDV73aLr343IRGKUe3fsMa/vZva3bXl8zW1/uvW6L3kp9v2e75eLiELRoRJrY3nhlXu5fJT3zM5q671smnq0Npo7t3DqV1Oh3fWTOyJlhGb68bwtB8PHtJ1YuoFCXHbta/C4wPgbgJIHjjJvp4vXHVFJfQleClDSfgJ6zhnr8ZsT/7wpgnyvm5jr32NdFEb1ihq9he5dDUF/ziWvHLIXvCzskFvYfSmj/246Z46V2TNVtYSTbVWBIIyuTt1cOf4nWDvBlJgmle+ixSjt28MGMeEIiLAII3LpKP9+OWWFRqlk/f+s6Yey9vd8PCGo4umL3/Rv+5KeXpvfL1/uJre4m6QilISd/ukAelV/Ib21tea6a3spkbrn9CpTQ3RZwORCmMpMjexEHe3vOe9rP2jhe+Jz3IIUeiatoTwRU1x25I83MbBHJHAMEbs0muftuN9q3vPOQk3z5130kx917e7oaFNXz8j0bt0LeDHey45JUte+Z+/zG9ivOcmaxbkKIRpBjLbj92H0pbvP4Ga59+uuNdb9RGS+VdH+bt/b9f/il71sk/np0RBoy8k1N23Pk0rfzGuYPQNaGy5NjNM2PmBgE/BBC8fij5vEZZGj502x2O2FWZRZp/AoPCGoJ6d90Rz/6Jtv3My9qeE3APlgUpGqFOXU/w6jopxjwhx3iBDqUpTlelgRduusU5lOYcAJqum2yhNHFlbEXx9iqsZ/dMwznY6fdwZxnt5a6JHLtlti5rKxoBBG9MFlMow9nnX9m3N4U27H/6aTGNVN5u+oU1/PO/jNhHPuodu9tLxSusIezBMlKMZbf/JHKVamztkl+05Wuvcw6l6TWx8jMr1VjZixfk3dtLCMMTfzfIsZvd3wpGhkA/AgjemPaFBO99Dxyy5ZW1E3p88QvPotyiD879whrCCt75+Y792tUnxvG6Qnd0xAK9+nZjQyWqSDHmw5gxXjL20Hdt/o1XHKuUpkNpElfTkzWnEEnVYqbz5u11Qxj04HFkebPQcdNxbVty7MZFkn4gEB8BBG98LOkpIoF+YQ3/9ojZ797i/8CaO4UfOb1jv/ya44LXzaCgJO8SSX6ro4X1BEdEwe2PE3APpSnVmLy6sqNSjenBo8rxoXnx9rohDBvNli2tNtm3ZjshNrvqNqqnahoEIJAbAgje3JiCiYhAv7CG37lhzDY2gn15/PRPtU0/YYtGdKcYC1I+GCvGQ0CH0hSr23rq6eYeSpueqNlko2YLq1u21fSOz45nJvnupdfb+/l/+lN7+5ffav/51J+033rhDTbXiCkpdR8MyierYhJFTP2WlFXJsZsUWfqFQHQCCN7oDOkhRgL9whr+7Aujds/fBMvS8Jb/s2X/bt+Yk4s1yMEyUozFaMwQXelQmry6U5/4w2OH0uRln981buubHBDsh7TX23tk/aj91pevdaq0KX2Z0pjF2dzx9Nr+yHL5Y6f9siPHrl9SXAeBbAggeLPhzqgDCPQLa9jYMLv5w2O2sOjPy3vxBaP20heN2tqGf4EUttgEhoyPQO+hNJufd9Jb6fCPDqVRmnk46zS8vW7VNOU5JoThuD3IsRvf3wF6gkBSBBC8SZGl39AE+oU1KD3ZR/4fb9H7X35q1M7/mY4tr/svOkCKsdCmiuXG7kNpCl/YesFPmrJhzE7VbWWd9FZBICfp7ZWglrBTcRW/MfBB5l7Ua/fMNGxiPNgbqKKulXlDoMgEELxFtl5J5z6oCIVE71/81ag9+PUTv1wmJ81e/XNmT3tay3d6KlKMZb+B3PAFN9WYPIg6lNbpdBxhVfZUY0lZIG5vr2J1VdSDEIbjFiPHblK7l34hkAwBBG8yXOk1AoFBRSjcLhXioHRlo1YzJ4vCTMee8pSm71feboqxoMUmIiyJW3sI1L/xd06qsfbcnC188BZrnXb6sWIeHIKKZ7vE4e0lhKG/LcixG88epRcIpEkAwZsmbcbyTaBfWIN7c7dgrddG7JEjG776JcWYL0yJXjToUNrcVN0UF6ocxx3/FaETnWtZOg/r7XVDGGSTtc0Tc1qXhU/QdZBjNygxrodAPgggePNhB2bRQ6BfWEO/ohF7ZxtOvO6wNFVhc/BilHgJuIfSVA5Ysbo6lKaT7XpVvrg23IbxzqR6vfV6exUqovRlSmP2luddZ6985qVPgKIQhon6mB1d3vT95qQKVPU3aM/0ODl2q2Bs1lg6Agje0pm0HAvqDmuQYJ3dtXNav7dohCpuNeo7sYW9LWwO3nIQzM8qdChNOXXHvvddR+jqUJqTnH+67qSMU55jWjoEer293zz8d/bLn3ulk7f31553nZ02d7rpEJZiqKtc2KOfNcixm84eZRQIJEUAwZsUWfqNTECpqPQFLa/K8trg0/oSTmqK/VQjxVhk9LF10FspTQ8tOumvMrSyL4fSYkPtu6Nh3t7fetFv2cU/+oumNyy04wTIsctugEDxCSB4i2/D0q5Ah8pW15u2srHtGdfpit5WqxO42ERpAWa4sH6H0uSNn56sOV76dWJCM7TOztDd3l79rn1n8e/twk9eeMzb+9TZ0zOfYx4mQI7dPFiBOUAgOgEEb3SG9JAQAa9sDd3DKsWYihRstzpOeWI8hwkZxaPb7kNpCl9Yv+RSU0iKUo3JJrwmz8Yug0aVx/3Juyecjw8vKF63PTS2N1+zT3425NhNnjEjQCAtAgjetEgzTigCw7I1qMPeFGMSVkqKT1xoKNyRbtKhtNnr3urE6LqH0qYnajbZ2PHqUqwgEt7Yb9aDyO6ZhhO+oIcRFfpQ+Wb97vTG9lbN20uO3di3Gx1CIHMCCN7MTcAEhhFobrft0aXNE0IaBqUYc7+oEL3p7St5dXdf9Xqr/f3XbeGmWxzBK/vM7xp3BJSfkJT0ZstIIqDwkpmpmnPY081wEjSTQ1lJkmO3rJZlXVUngOCt+g4owPq3JHoXN52Z+kkxhuhNz6i7fu8m08G01V+5ypavvc45MKjQEokGHUprtkiqm541vEfqts+gqmm9mRy+t/Rdu/gzL6tEbC85dr33EFdAoKgEELxFtVzJ5v39Rx61L919v1168bl9V6ZDTh3rOAdthmVscG/e8dI0bGWdpPlJbJXuQ2lL73qPNX/sx01x1HotvrZBqrEkmEft0w1h2Gi2bGl1J6PJoNbP2/u+e6+3T33rY33z9kadWx7uJ8duHqzAHCCQHAEEb3Js6dkHgaWVNbv5tjvsY7ffZReed45df+DygXcpzvCHCxueGRsQvT7Ah7xE4QvTH/6QybPrHkrTw4Vip9VINRYSbMK3KYesUmstrgaLpR7k7X3WSc+2d7zwBitLbC85dhPegHQPgRwQQPDmwAhFnYLE6h/efpfd8fm77ZR9J9mBN7za9j/jNN/LkdD96O132f6nn+b7Xh2oUalTvw1Pr19S3teNf+Wvbf6qK2z7Pz7bjt70YevMzdvMZM1JA6ccyBxK82aYxRWqmqZqdoNCGLzmNMjbe+uDNzmit7dKm1d/efucHLt5swjzgUAyBBC8yXCtRK8XXf6bzjovvehc+9JX7rcv3n2/ffr33+lb9Or+U/edZDe+6+pAvMKKXnkfFQ9MC0Zg0KG0uam6k8ZKXsMOobrBoKZwtR729syM2+Z22zOEwc90yujtJceuH8tzDQTKQQDBWw47pr4KeXfPPv9K+/St73Q8tGpXv+1G+9Z3HrI//+R7T5iPrj/0nYeca2enp5zPFbP7xrfd6Ijk+75+yBHMyytr9twz9tuBq149dE0Sr2sBihcofnHvXMMeW1SuUdSZ3w3TfSht5fVvMJufd16NT9THbGH1+Al/v/1xXToEJE4l5vQ2JMjvidfsyuTtJceul7X5HALlIoDgLZc9U1uNDpmd+6pr7CPvP2DPO3O/M64rgiVWuw+fKT73Q7fd4YhZtd85cLldcN45zv++7E0H7b4HD9nM9JQTw6trFCLR20e/hekVbZDX6BK9e2YbdmQJ0eu1UXQobfZtb92x6+OH0iSiVNFuVWEl65Se9WKY1ecKYdADydHl5PZ5kb295NjNamcyLgSyJYDgzZZ/oUd//vlXOiK12xt78KaPO4L1q5+92VmbvLoKXXCFseJ2JX7d/773gUNOOMSVl114zPMrT7EEtbzHXs2tDuV1nfs5oteblNKMybOrNGNKN6ZX4/IWjoyM2NIqqca8CWZzhRvCkFZFuyJ6e8mxm83eZFQI5IEAgjcPVijoHNxDZ3d98r3HxKoE7GvffPBYqIOukQDWNW4bFvqgaySa5fX1I3hVfvixJYkw/7G547VR2zM77pRSpQTx8c3X71CaChRMT9ZsZX3bqchFyycBJ6XWzLivlH1xr6Cft/e/fe7nbbYxZ+9/yS25yeRAjt24LU9/ECgWAQRvseyVq9kqhEFhDd1eXjes4SMfOGDPO2O/uQL4ns/efEwUu/e94bILT8i7q7jeXz94q+M1Vr9+2nar7YjeIOLV/ZJW6eIg9/mZT9Gu6T6UtnT9e2zj5T/rFPhQqrG0vIVFY5an+eqhRD9JhjB4rbeft1dZHN5+97X2jnNusMvPuMqri0Q/J8duonjpHAKFIIDgLYSZ8jtJ9+CZxKvichWvq8Nn3QfXFPrwSxef64QtuE1eXIU73PaBA87/pVhe/bdaPyHsRSCM6FXuzenJulVZ9E5+4mM2d921TuiCeyhteqJmk42aLa2Rasxr32X5uVs1TXM4urKVi0wZg7y9muMfvPyPMvH2kmM3y13K2BDIDwEEb35sUbiZuHl4P/P5u+3hRx515u9kWOjJx+uGPihEQWnI1L745fvt6t+40b75l7c5/y3hrLhdiWY3i0NQIBK9hxc3A33xV1X0jj30XZt/4xU2urhoCx+8xamUJi/Y/K5xUyUune4n1VjQHZje9W7VNIWZ5C3UpNvb63qds/L2kmM3vT3JSBDIOwEEb94tlNP5KcZWKcWUZkxCVdkVbvztq49lbOid9ktfdY0jdl2PruJ6rzt46zHBG9cym9tte3QpmOh1XwkfXvRfxS2u+WbRT++hNNdTqAM9SvdG2rYsrOJ/zDyEMPiZrevtdUsZf2/pu6bY3rS8veTY9WMlroFAdQggeKtj61hXqswLErtuKWAdRLv3wUPO4bR+HtpD//CQXfS6nXvkBZbg7Q1ziGuCKi7x6OJmoO5UMUxf0EHFcqBBMr5Yh9IUvtB66unHKqVNNsZsdqpuaxukGsvYPJ7Duw8mypZxZDnYQ51n5wldkJW3lxy7CRmUbiFQYAII3gIbL8upP+tFlz0hV657EG2YiJUnWOENahe87JyB3uA41rW+2XLiGoO0sopeHUqT0JXgdQ+lyZurQ2lq8upW/eBekH2SxbVuCIPrLc1iDlHGTMvbS47dKFbiXgiUmwCCt9z2TWx1OmQmT253WeDeNGUSuApbuPI1FyYqbgctUrGNKnsbpLmiV7HAZWgTn/tTm7/qClu75BedvLqduXnTGndN1mxhhUNpRbCxQhhmpopvr37e3k9962P29i9f62RxeMvzrotkDnLsRsLHzRAoPQEEb+lNnMwCu8sC73/GTmnh3nRj7n+/4rxz7L97lApOZpbmVATTAawgTZWq5FFTqrOitkGH0uam6k7OYj0IcCgt39Z1BaLyx6qqYFm88P28vRK933z063b7K74QKpMDOXbzvZeZHQTyQADBmwcrFHQOvQfRtAx5fpV/101BJi+vm5khq2UurTZtJWDRBJXQVZMXtGhNVdJ0ME2pxuTVlXDSaXWVm11Y3bKtpv8iHUVbe1nm61ZN29xum/Zv2dowb688vUHy9pJjt2y7g/VAIBkCCN5kuJa2VxWSWFldsxefc9axohLKmyuBK3Grw2xBikakBUpxqmubrUDDFVX0KlZXB9Nap53uHMTTOlbl6V6nUlqgDZDRxbKZMgzIC7+xFWzPZjTl0MP28/Z+b/m79p9P/UlffZJj1xcmLoIABMwMwcs28EVAWRYOfminWES3oFXc7oduu8Nmpqec1GSqjuZmbvDVcYoX6bVwUAGhcq3tTqdwnl55CCWadKJ/aZVUYylus0hDKZymUStXCIMXkH7eXq979Dk5dv1Q4hoIQMAlgOBlLwwlIK/tu2/6uJNyTBkYfvHic09IO6Zr7nvgkJNyzI3nzSvWwwubTgxrkLZ3dtwJAyiKh1SHnKYna7aynr+iBEG4V+laN4ShyvHVvd7eYfYnx26VfjtYKwTiIYDgjYdjKXtxvbcKWegndIu46Ha74xxGCyJ63VRH8g7nWfTqoJ1SjelwU15KzRZxj6Q9ZzfsZHmNBxQ/3l5y7Ka9QxkPAuUggOAthx0TWYUEr0r9Zn3oLO7FqQSxRG+QU+95Fr2a2/QEqcbi3idp9KcQBh0mdEvwpjFmEcbo5+0lx24RLMccIZBfAgje/NqGmSVIoCyiVyfU53eNmwoSKP0aqcYS3DQxdi3xJk9lp4M3fhDWbm/v0lrTZqdqVhsbjdEKdAUBCFSJAIK3StZmrU8g0FQJ4qVgJVp3kts3bGW9GTjrQ5z43TKzmo8yUDRbnTi7p68ECbhV01QYRT+04QRmJutO4Q0aBCAAgSgEELxR6HFv4QkUUfRONnbSVpFqrHjbTwcK9UMIgz/bqaCEDo2Ojo74u4GrIAABCAwggOBla1SewJY8vQFLCWfh6dWYOpSmJq9ukBjkyhs5YwCuR15p4o4sB3urkPHUMxueHLuZoWdgCJSSAIK3lGZlUUEJrG+2nMwGQZoE6MnzDTuytGUSzUm2mUkOpSXJN8m+3RAGxVmXsWpaEuzIsZsEVfqEQLUJIHirbX9W30VA8ZSqbhWkSczsnWvYY4vK7xt/HK0Opc1N1Uk1FsQoObpW4QuKP1WJ6qBFT3K0jFSnQo7dVHEzGAQqQwDBWxlTs1A/BJRnV9kOgjSJ3j2z8vTGJ3r1ClxeLqWsWljdcgpf0IpDoPtQoSr8EX7iz3a7p8dNMeo0CEAAAnETQPDGTZT+Ck9Ar51XAp6ej9PT6xYi0KE0zYNUY8XaUoQwBLcXOXaDM+MOCEAgGAEEbzBeXF0RAjoUtrbZCrTa8dqo7ZkdN5UvDuPRU0ywXueSaiwQ9lxdrINW8swrNIYQBn+m2TkAOk6OXX+4uAoCEAhJAMEbEhy3lZ+AcvQGDSWQ4JmerNtjS8FEr2I9pydrtrJObtai7ixVTWvURo0QBv8WVNqx3TP1VMXuvQ8csuWVNdv/jNNKV0XSP3muhED1CCB4q2dzVuyTQLvdcUoQN1vB4meDiF69/laqMXmE5RUM4xn2uRwuS4iAPJR7ZsadfaLDaTR/BLLIsXvdwVvtjs/fbTPTU87P/3XVq+3F55zlb8JcBQEIFJoAgrfQ5mPySRNISvQqZnFaRQgmOcGftA2T7F/x1gpD0UHHoCEwSc4r731nkWP34E0fd8Tujb99tT3vzP32sdvvsg/ddofd9cn32uz0VN6RMT8IQCAiAQRvRIDcXn4C26224+kN6n1V7tzJRs0OL2484eCZUo3N7xo35WWVUOJQWjH3kEIYlEWDqmnB7JdFjt0v3X2/vfFtN9r1By63C88759iEn/Wiy+wjHzhgzztjf7BFcDUEIFA4AgjewpmMCWdBIIrolRdQ8cBqSrukV+CLa83A8cFZrJsxTyTghjDoAUjFSnhg8b9Lssqx+9JXXeOIWglet8nbqxAHeXhP3XeS/0VwJQQgUEgCCN5Cmo1JZ0GgqRLES8HLwsrTK9E7NjZiSjWmXL+0YhKQd17xustrHC4MasGscux+8cv329W/ceMJwrafCA66Jq6HAASKQwDBWxxbMdMcEJDoPby446310+QN1KG00ZGdq4Pc66d/rkmPgBuiQghDMOZZ59i9+bY77It332+fvvWdxyau/8+N38W7G8yeXA2BohJA8BbVcsw7MwIbW207suwteiWQdChN2RfWN1s2P72TY1fxwLTiEHCrpmnGhDAEs1secuy6h9MkeCVu7/z83fbrB2+1A1e92i69+NxgC+JqCECgsAQQvIU1HRPPkoAErMRPv6bX3nNTdeeQW69AkuhVI31VltbzP7ZbNW11gxAG/9R2rswix+6gOSpWV15eZWP4/iOP2hsuu9CuvOzCoEvieghAoMAEELwFNh5Tz5aARJC8t26TJ1An0HVyf2F1a+ChNERvtnbzO7qKgcxM1ZxCEkELkPgdo6zXZZFj14vlvQ8esq89eMie8+z9TloyGgQgUC0CCN5q2ZvVxkxAB9CUWkyH0iRkdShtZWPb8+S+SqnKA4ynN2aDxNCdG8Kg1/FUTQsONIscu8FnyR0QgEDVCCB4q2Zx1hs7ge1WxzodiVdVZev47v/kuYZtbLXI2uCbWPIXuiEMypG81OW9T37kcoyQRY7dcpBjFRCAQNIEELxJE6b/ShCQ2A1aacs9vY7ozccWcUMY5HWXTWjBCGSVYzfYLLkaAhCoKgEEb1Utz7pjJ6AcvUFjPRG9sZshcIeygcSa4k4JYQiMz7khqxy74WbLXRCAQBUJIHiraHXWnAiBdrvjpBxrttqB+pfgOnluwtY3KUoRCFwMF7tV0za324QwhOCZdY7dEFPmFgjYgV1oAAAUQklEQVRAoKIEELwVNTzLToaARK+KS+hAWpC2k6+0YSvrzcChEUHG4drjBHTQUJ5dHToMGo4CR3NySqvqXL02Cg4IQAACuSeA4M29iZhg0Qhst9qOpxfRm1/Lze7aSR9H1bRwNspTjt1wK+AuCECgagQQvFWzOOtNhUBU0bu0xsGpJAzleiX7FQVJYrwy9pnHHLtl5MyaIACBeAkgeOPlSW8QOEagud02HWTrBItuMKXG2jvXsCNLW7a1HSweGPyDCbi5kpfXqJoWdp+QYzcsOe6DAASyJoDgzdoCjF9qAhK9iukN2lzR+9jiZqDcvkHHqcr1hDBEt/T0RM3EkQYBCECgiAQQvEW0GnMuFIGNrbYdWQ4nevfMytOL6A1rcDeLACEMYQnu3EeO3Wj8uBsCEMieAII3exswg4QJ3PvAIfva1w/ZKftOsgvPOyfh0fp3v77ZsqMrW4HHHq+N2p7ZccPTGxidjddHnSwChDAEZ9d9Bzl2o/HjbghAIB8EELz5sAOzSIjAzbfdYR+9/S57yTln2b0PHnJG+fSt77TZ6amERhzc7fL6tpMCK2hT7OnsVN0eWwqe7izoWGW53q2axoNCeIuSYzc8O+6EAATyRwDBmz+bMKOYCHz/kUft3FddY3d98r126r6TTP992ZsOOv/7tg8ciGmUYN2EFb06LDQ9iej1oi2RJo+ksjGEOTDo1X9VPifHblUszTohUB0CCN7q2LpyKz30nYfsost/0+757M3HPLqH/uEhu+h1v2nXH7g8s/CGhZWtUIUOEL3Dt7AO+u2eadhGs0XVtAi/7eTYjQDP41aFV935hbvt0ovOtf3POO3Y1Ve/7UabmZ5y/i7RIACBZAggeJPhSq85ILC0suZ4eN9w2YV26cXnHpvRdQdvtS/efb/j+c0itEETCSt69apeP4Q3PHGDuSEMCyvkL47yq0eO3Sj0vO/V36TXvumg87bJ/ftz8KaP2x2fv9sJtdLbJxoEIJAMAQRvMlzpNScE3BjebnGrL52zz7/Sbvztq+0lLzwrs5nqlftWM3ie3ZnJmimul1f2Zt0hDEeWg1e3y8z4ORyYHLvpGEViV2+e9j/9NOctkx7AP/iuq+3F52T3tyidlTMKBLIlgODNlj+jJ0zA9fLqi+XAVa8+Ntrzz7/Sfunic+3Kyy5MeAaDu2+3O04J4mYL0RvGCIQwhKHW/x5y7MbH0k9PX7r7fnvj2250LtUbqCz/DvmZL9dAoAwEELxlsCJrGErA/XJxv1gUR/faNx88dpgtS3wSvSpMoTyxQVuVPb3yRs5M1W1xlRCGoPum93py7EYlGPx+18u7vLKGdzc4Pu6AQCgCCN5Q2LipaAS6PSo6HNIb15vlerZbbcfTG0b0qvKVPJ26vypNa27URo0QhugWJ8dudIZhelC2GIlenSHQv8TvhqHIPRAIRgDBG4wXVxeYgMIblLlBsXNZHVYbhE+iV57eTnBHr81P1210ZMQRgGVubqoshYDIsxuGVZn5BFkbOXaD0Ir3Wp0r+NBtd9inf/+dNjMz5cTz6rCaRC8NAhBIjgCCNzm29AyBQASa2+3QB9EketWUpaCMTYf0tEaqpkW3Ljl2ozMM20NveJX6cUOslEmm+5xB2DG4DwIQ6E8AwcvOgECOCEj0ytMbpqmMbrvTKZ3oVQjDRH3Mji5vWrMVwgUeBmZJ7yHHbkkNy7IgAAFPAgheT0RcAIF0CaxvtuzoSrjwhL2z444oXFotvqfX9UQqtlk8CGGItg/JsRuNH3dDAALFJoDgLbb9mH1JCYQVvW5s5sZWy1TGuKiNEIZ4LUeO3Xh50hsEIFA8Agje4tmMGVeEgATr8lpwT21condhwezowohNTHTsKfvSg04IQ7ysybEbL096gwAEikkAwVtMuzHrihBIW/QeXTD7sy+M2qFvj55A+Ixnt+2nf6ptu+eTgS+hvmem4XR+ZDlcxopkZlbcXpWrWPmaaRCAAASqTgDBW/UdwPpzT2BhZcvWNluB56kY2L2zDVvd2HZ+vNo9fzNif/FXo7axMTLwUnl7L3ll2/79j8R7eIyqaV7WCf45OXaDM+MOCECgvAQQvOW1LSsrEQHl2FVcbtDmit6V9eZQ0SzP7vtv9OcJlOh97S+1Ygtz2DVRs5mpmpNdIswagzIp+/Xk2C27hVkfBCAQhgCCNww17oFABgQOLygtVzvwyH5E780fHrNHfjDYs9s76I+c3rFffk1wAd7dj4SZvJCaH1XTApu17w3k2I2HI71AAALlI4DgLZ9NWVFJCbTbHaeEcFjRe/J8o68X9Z//ZcQ+8tGxwNR+9Yrt0F5eQhgC4/a8YefBZtxqYyfGX3vezAUQgAAESk4AwVtyA7O8chGQ6FVhCuWmDdokMvfONezI0pZtbR/3FCtuVz9B2ysuaNmZzw4+D0IYgpL2vp4cu96MuAICEKg2AQRvte3P6gtIYLvVdjy9YUXvnlmJ3uNVy8IKXmVs0I/fphCGuV11kzgjhMEvNe/ryLHrzYgrIAABCCB42QMQKCABiV55esNUH3M9vY8t7ojez9w5ag98PbiHN4jgdWNLFY6xuNoMNe8CminxKZNjN3HEDAABCJSEAIK3JIZkGdUj0Nxu26NL4UTveG3U9syOm0TvX/9P5d4NHsOrTA1+0pO5VdNU7jhMerXqWdbfismx648TV0EAAhAQAQQv+wACBSagWNxHFzdDrUCvwqcn6/aP39u097w/mOBVarJfu7plExPDh6ZqWijTeN5Ejl1PRFwAAQhA4AkEELxsCAgUnMD6ZsuOrmyFWoUrem+6ddv+/n/57+IV/7VlZ54x+MCaG8KgOGPNLUzohf/ZVOdKcuxWx9asFAIQiJcAgjdenvQGgUwIqJKaYmPDNIne2mjd3vPBbfv+w9497Htyx658/eAcvG4Iw/Kavwpv3iNyhQiQY5d9AAEIQCA8AQRveHbcCYFcEVhe37bltXCid2ayZiNW8xS9Z/9E237mZYMzMxDCkMyWIMduMlzpFQIQqA4BBG91bM1KK0AgquiVd/b/+3LT/vGfzf7lu8crrz3zRzu2/0c7Aw+pEcKQ3OYix25ybOkZAhCoDgEEb3VszUorQmBhZSt0NgR5eiV6g2R/GK+P2p6ZcSOEIf4NRo7d+JnSIwQgUE0CCN5q2p1Vl5yACjtsbA2Osx22/CCi162apvG2mv6LUJQcfyzLI8duLBjpBAIQgIBDAMHLRoBASQkcXlBhiXAidH667hySUkW3fk3ZApQaS9dQNS3+DUSO3fiZ0iMEIFBtAgjeatuf1ZeYQLvdcQRrFNE7OrIjaLubKrXtnmnYRrNlKiZBi5cAOXbj5UlvEIAABPDwsgcgUHICKkEs0at8uGGaPL1qCys7wtYNYdB/hw2ZCDOPKtxDjt0qWJk1QgACWRHAw5sVecaFQEoEoorevbPjjmCWt5cQhmSMRo7dZLjSKwQgAAGXAIKXvQCBChBoqgTx0maoimcKYTh5fsLUx+GQZYwrgDj0EsmxGxodN0IAAhDwTQDB6xsVF0Kg2ATCiF6lxdIBqpX1bdP/VhiDcv3S4iFAjt14ONILBCAAAS8CCF4vQnwOgRIR2JKn16eXtrdqmhtjiuiNZ0Mo37HyF9MgAAEIQCB5Agje5BkzAgRyRWB9s2VHV/qnG9NEh1VNk+g9eW7C1je38fRGsCo5diPA41YIQAACIQggeENA4xYIFJ3A6sa2LfZJKSavozIzDKuathNz2jD1oR9aMALk2A3Gi6shAAEIxEEAwRsHRfqAQAEJKBZ3ee14Ht3eEIZhS3JF78p6M3QZ4wIiizxlcuxGRkgHEIAABEIRQPCGwsZNECgHARWOWN9qObGkSj2mUIeOz5S9iF7/e0ChIPKKj9dG/d/ElRCAAAQgEBsBBG9sKOnIi8C9DxyyO79wt1160bm2/xmnHbv8S3ffb1+8+367/sDlXl3weQIEVJNCnt4w4QkSvSfPN5zCFBSi6G8ccuwmsGnpEgIQgEBAAgjegMC4PDyBpZU1O/v8K+3Si8+1A1e9+lhHL33VNXbqvpPstg8cCN85d0YioPLBYQWr8vTunWvYkaUtUxYI2nEC5NhlN0AAAhDIBwEEbz7sUJlZHLzp43bH5++2uz75XpudnrLvP/Konfuqaxzv7oXnnVMZDnlc6OGFTWu2wglWid49sxK96sNnTEQeIcQ4J3LsxgiTriAAAQhEJIDgjQiQ24MRUFjDa9980PHwytN73cFb7d4HD9mff/K9wTri6tgJtNsde2xpK7ToVXzqntlxe2wR0UuO3di3Jx1CAAIQiEQAwRsJHzeHIXDZmw46t8mri3c3DMHk7tlutR3RqwNsYZqb1qzKopccu2F2DvdAAAIQSJYAgjdZvvTeh8DHbr/LFNqw/+mn2aHvPOSENyiGl5YPAlFFr0oQT0/W7bGlzdDCOR8kgs+CHLvBmXEHBCAAgTQIIHjToMwYJxB4/vlX2vLKmhO3S3aG/G2QpkoQL236TlHWu4Iqil5y7OZvHzMjCEAAAi4BBC97IRMC8vDK04t3Nxp+Zb54900fPyHVW7Red+6W6D28uBm6q10TNdNP2T295NgNvUW4EQIQgEBqBBC8qaFmoG4CSkWmLA2fvvWdgAlJQBkurn7bjc7dH/nAAYdn3G1jq21HlsOL3pnJmk02anZ4cSO0tzjuNcXZHzl246RJXxCAAASSI4DgTY4tPQ8goKwMr33TQVKRRdghKtbx6wdvdUJCunMaR+hy4K3rmy2nAlvYJtGrw2xRQiTCjp3kfeTYTZIufUMAAhCIlwCCN16e9OaDAKnIfEAacombu7g7/lmhDToAqMN/SRwAVBW2xdVm6ImXTfSSYzf0VuBGCEAAApkQQPBmgp1BIQABCEAAAhCAAATSIoDgTYs040AAAhCAAAQgAAEIZEIAwZsJdgaFAAQgAAEIQAACEEiLAII3LdKMAwEIQAACEIAABCCQCQEEbybYGRQCEIAABCAAAQhAIC0CCN60SDMOBCAAAQhAAAIQgEAmBBC8mWBnUAhAAAIQgAAEIACBtAggeNMizTgQgAAEIAABCEAAApkQQPBmgp1BIQABCEAAAhCAAATSIoDgTYs040AAAhCAAAQgAAEIZEIAwZsJdgaFAAQgAAEIQAACEEiLAII3LdKMAwEIQAACEIAABCCQCQEEbybYGRQCEIAABCAAAQhAIC0CCN60SDMOBCAAAQhAAAIQgEAmBBC8mWBnUAhAAAIQgAAEIACBtAggeNMizTgQgAAEIAABCEAAApkQQPBmgp1BIQABCEAAAhCAAATSIoDgTYs040AAAhCAAAQgAAEIZEIAwZsJdgaFAAQgAAEIQAACEEiLAII3LdKMAwEIQAACEIAABCCQCQEEbybYGRQCEIAABCAAAQhAIC0CCN60SDMOBCAAAQhAAAIQgEAmBBC8mWBnUAhAAAIQgAAEIACBtAggeNMizTgQgAAEIAABCEAAApkQQPBmgp1BIQABCEAAAhCAAATSIoDgTYs040AAAhCAAAQgAAEIZEIAwZsJdgaFAAQgAAEIQAACEEiLAII3LdKMAwEIQAACEIAABCCQCQEEbybYGRQCEIAABCAAAQhAIC0CCN60SDMOBCAAAQhAAAIQgEAmBBC8mWBnUAhAAAIQgAAEIACBtAggeNMizTgQgAAEIAABCEAAApkQQPBmgp1BIQABCEAAAhCAAATSIoDgTYs040AAAhCAAAQgAAEIZEIAwZsJdgaFAAQgAAEIQAACEEiLAII3LdKMAwEIQAACEIAABCCQCQEEbybYGRQCEIAABCAAAQhAIC0CCN60SDMOBCAAAQhAAAIQgEAmBBC8mWBnUAhAAAIQgAAEIACBtAggeNMizTgQgAAEIAABCEAAApkQQPBmgp1BIQABCEAAAhCAAATSIoDgTYs040AAAhCAAAQgAAEIZEIAwZsJdgaFAAQgAAEIQAACEEiLAII3LdKMAwEIQAACEIAABCCQCQEEbybYGRQCEIAABCAAAQhAIC0CCN60SDMOBCAAAQhAAAIQgEAmBBC8mWBnUAhAAAIQgAAEIACBtAggeNMizTgQgAAEIAABCEAAApkQQPBmgp1BIQABCEAAAhCAAATSIoDgTYs040AAAhCAAAQgAAEIZEIAwZsJdgaFAAQgAAEIQAACEEiLAII3LdKMAwEIQAACEIAABCCQCQEEbybYGRQCEIAABCAAAQhAIC0CCN60SDMOBCAAAQhAAAIQgEAmBBC8mWBnUAhAAAIQgAAEIACBtAggeNMizTgQgAAEIAABCEAAApkQQPBmgp1BIQABCEAAAhCAAATSIoDgTYs040AAAhCAAAQgAAEIZEIAwZsJdgaFAAQgAAEIQAACEEiLAII3LdKMAwEIQAACEIAABCCQCQEEbybYGRQCEIAABCAAAQhAIC0CCN60SDMOBCAAAQhAAAIQgEAmBBC8mWBnUAhAAAIQgAAEIACBtAggeNMizTgQgAAEIAABCEAAApkQQPBmgp1BIQABCEAAAhCAAATSIoDgTYs040AAAhCAAAQgAAEIZEIAwZsJdgaFAAQgAAEIQAACEEiLAII3LdKMAwEIQAACEIAABCCQCQEEbybYGRQCEIAABCAAAQhAIC0CCN60SDMOBCAAAQhAAAIQgEAmBBC8mWBnUAhAAAIQgAAEIACBtAggeNMizTgQgAAEIAABCEAAApkQQPBmgp1BIQABCEAAAhCAAATSIoDgTYs040AAAhCAAAQgAAEIZEIAwZsJdgaFAAQgAAEIQAACEEiLAII3LdKMAwEIQAACEIAABCCQCQEEbybYGRQCEIAABCAAAQhAIC0CCN60SDMOBCAAAQhAAAIQgEAmBBC8mWBnUAhAAAIQgAAEIACBtAggeNMizTgQgAAEIAABCEAAApkQ+P8BWwuvxzXzF3UAAAAASUVORK5CYII=" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#| caption: The three camera pinhole locations in the FLU frame.\n", "#| label: fig:camera-locations\n", "fig = px.scatter_3d(x=[t1[0], t2[0], t3[0]], y=[t1[1], t2[1], t3[1]], z=[t1[2], t2[2], t3[2]])\n", "fig.add_traces(axes(gtsam.Pose3(), scale=0.08, labels=[\"F\",\"L\",\"U\"])) # add FLU drone body frame\n", "fig.update_yaxes(scaleanchor = \"x\", scaleratio = 1);\n", "fig.show()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To specify the *orientation* $R^b_c$ for each of the cameras, we need to remember that (a) the $z$-axis points into the scene, and (b) the $y$-axis points down. The easiest way to specify this is by using the `gtsam.Rot3` constructor that takes three column vectors:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "F,L,U = np.eye(3)\n", "bTc1 = gtsam.Pose3(gtsam.Rot3(-L,-U,F), t1)\n", "bTc2 = gtsam.Pose3(gtsam.Rot3(-L,-U,F), t2)\n", "bTc3 = gtsam.Pose3(gtsam.Rot3(L,-U,-F), t3)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Try to understand the code above, which made camera 1 and 2 look forward ($F$), creating a *forward-looking stereo pair*, and camera 3 look backwards ($-F$). The other axes were then specified to have the images upright. \n", "\n", "We can again use the `gtbook.drones.axes` function to ease displaying this with plotly:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAArwAAAH0CAYAAADfWf7fAAAgAElEQVR4Xuy9CZRdVZn+/Vbde2ueMhCDCPSi0zY0Mrk+aUEQxTYkDDJIGCsQIASUgGJISCdMkQRCGIIhgISIQKKMGjAtCfwdGQTRZhIBJdiECAQy1DzeulXfek6xk5ObO5xhn/E+Zy0Wyj1nD7+9q+q573n2+5YNDQ0NCS8SIAESIAESIAESIAESiCmBMgremK4sp0UCJEACJEACJEACJGAQoODlRiABEiABEiABEiABEog1AQreWC8vJ0cCJEACJEACJEACJEDByz1AAiRAAiRAAiRAAiQQawIUvLFeXk6OBEiABEiABEiABEiAgpd7gARIgARIgARIgARIINYEKHhjvbycHAmQAAmQAAmQAAmQAAUv9wAJkAAJkAAJkAAJkECsCVDwxnp5OTkSIAESIAESIAESIAEKXu4BEiABEiABEiABEiCBWBOg4I318nJyJEACJEACJEACJEACFLzcAyRAAiRAAiRAAiRAArEmQMEb6+Xl5EiABEiABEiABEiABCh4uQdIgARIgARIgARIgARiTYCCN9bLy8mRAAmQAAmQAAmQAAlQ8HIPkAAJkAAJkAAJkAAJxJoABW+sl5eTIwESIAESIAESIAESoODlHiABEiABEiABEiABEog1AQreWC8vJ0cCJEACJEACJEACJEDByz1AAiRAAiRAAiRAAiQQawIUvLFeXk6OBEiABEiABEiABEiAgpd7gARIgARIgARIgARIINYEKHhjvbycHAmQAAmQAAmQAAmQAAUv9wAJkAAJkAAJkAAJkECsCVDwxnp5OTkSIAESIAESIAESIAEKXu4BEiABEiABEiABEiCBWBOg4I318nJyJEACJEACJEACJEACFLzcAyRAAiRAAiRAAiRAArEmQMEb6+Xl5EiABEiABEiABEiABCh4uQdIgARIgARIgARIgARiTYCCN9bLy8mRAAmQAAmQAAmQAAlQ8HIPkAAJkAAJkAAJkAAJxJoABW+sl5eTIwESIAESIAESIAESoODlHiABEiABEiABEiABEog1AQreWC8vJ0cCJEACJEACJEACJEDByz1AAiRAAiRAAiRAAiQQawIUvLFeXk6OBEiABEiABEiABEiAgpd7gARIgARIgARIgARIINYEKHhjvbycHAmQAAmQAAmQAAmQAAUv9wAJkAAJkAAJkAAJkECsCVDwxnp5OTkSIAESIAESIAESIAEKXu4BEiABEiABEiABEiCBWBOg4I318nJyJEACJEACJEACJEACFLzcAyRAAiRAAiRAAiRAArEmQMEb6+Xl5EiABEiABEiABEiABCh4uQdIgARIgARIgARIgARiTYCCN9bLy8mRAAmQAAmQAAmQAAlQ8HIPkAAJkAAJkAAJkAAJxJoABW+sl5eTIwESIAESIAESIAESoODlHiABEiABEiABEiABEog1AQreWC8vJ0cCJEACJEACJEACJEDByz1AAiRAAiRAAiRAAiQQawIUvLFeXk6OBEiABEiABEiABEiAgpd7gARIgARIgARIgARIINYEKHhjvbycHAmQAAmQAAmQAAmQAAUv9wAJkAAJkAAJkAAJkECsCVDwxnp5OTkSIAESIAESIAESIAEKXu4BEiABEiABEiABEiCBWBOg4I318nJyJEACJEACJEACJEACFLzcAyRAAiRAAiRAAiRAArEmQMEb6+Xl5EiABEiABEiABEiABCh4uQdIgARIgARIgARIgARiTYCCN9bLy8mRAAmQAAmQAAmQAAlQ8HIPkAAJkAAJkAAJkAAJxJoABW+sl5eTIwESIAESIAESIAESoODlHiABEiABEiABEiABEog1AQreWC8vJ0cCJEACJEACJEACJEDByz1AAiRAAiRAAiRAAiQQawIUvLFeXk6OBEiABEiABEiABEiAgpd7gARIgARIgARIgARIwDMC//xwkxx1+syd2j//zGPlu+ef7Fm/5oYpeH3BzE5IgARIgARIgARIoDQJKMG7/KaZMnbMyG0QGhvqZGRTvS9QKHh9wcxOSIAESIAESIAESKA0CSjBu/ani2T3T48JBAIFbyDY2SkJkAAJkAAJkAAJeERg3TqRlSs9arxAs+PGiTQ373SDErywMIwa0WB8XpFKyqnHH+nbGCl4fUPNjkiABEiABEiABEjABwJr14pMnOhDR1ldTJggsmZNXsH7hQP3ltqaKuPz2uoqWXTlhb6NkYLXN9TsiARIgARIgARIgAR8IBDSCC8tDT6sPbsgARIgARIgARIgARLwnwA9vP4zZ48kQAIkQAIkQAIkQAI+EqDg9RE2uyIBEiABEiABEiABEvCfAAWv/8zZIwmQAAmQAAmQAAmQQIkR4KG1EltwTpcESIAESIAESIAESo0ABW+prTjnSwIkQAIkQAIkQAIlRoCCt8QWnNMlARIgARIgARIggVIjQMFbaivO+ZIACZAACZAACZBAiRGg4C2xBed0SYAESIAESIAESKDUCFDwltqKc74kQAIkQAIkQAIkUGIEKHhLbME5XRIgARIgARIgARIoNQIUvKW24pwvCZAACZAACZAACZQYAQreEltwTpcESIAESIAESIAESo0ABW+prTjnSwIkQAIkQAIkQAI+EmBpYR9hsysSIAESIAESIAESIAH/CVDw+s+cPZIACZAACZAACZAACfhIgILXR9jsigRIgARIgARIgARKgcC6retk5WsrfZ/quJHjpHn/5p36peD1fSnYIQmQAAmQAAmQAAnEm8DadWtl4k8m+j7JCeMmyJoz11Dw+k6eHZIACZAACZAACZBAiRFghHfnBWeWhhL7IeB0SYAESIAESIAESMBPArQ0+EmbfZEACZAACZAACZAACfhOQAneZTdeJp/+1Kht/Y9orJemxjpfxsMIry+Y2QkJkAAJkAAJkAAJlCYBJXizZ//d80+W88881hcoFLy+YGYnJEACJEACJEACJEACQRGg4A2KPPslARIgARIgARIgARLwhQAFry+Y2QkJkAAJkAAJkAAJkEBQBCh4gyLPfkmABEiABEiABEiABHwhQMHrC2Z2QgIkQAIkQAIkQAIkEBQBCt6gyLNfEiABEiABEiABEiABXwhQ8PqCmZ2QAAmQAAmQAAmQAAkERYCCNyjy7JcESIAESIAESIAESMAXAhS8vmBmJyRAAiRAAiRAAiRAAkERoOANijz7JQESIAESIAESIAES8IUABa8vmNkJCZAACZAACZAACZQmgT+98pZM+e5CefXXP5JkIrENwrdmL5Z//9fdBSWGvb4oeL0mzPZJgARIgARIgARIoIQJ5BO8F15+s+w9bk8K3hLeG5w6CZAACZAACZAACcSCAAVvLJaRkyABEiABEiABEiCB8BBYt05k5Ur/xzNunEhz8879UvD6vxbskQRIgARIgARIgARiTWDtWpGJE/2f4oQJImvWUPD6T549kgAJkAAJkAAJkECJEQhbhPelv7wtky9eIP/75DKpqqzYthpTL7tRDtp3nFx0zomerxAPrXmOmB2QAAmQQLgI9KUz0tc/KPh3TVVSKlPlkkyUh2uQHA0JkEBsCPzz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GwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwUIeG2cNfqMAAIIIIAAAgggYCxAwGtMRUMEEEAAAQQQQAABGwX+H1RuOMb6e4bOAAAAAElFTkSuQmCC" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#| caption: The camera coordinate frames in the FLU frame.\n", "#| label: fig:camera-frames\n", "fig.add_traces(axes(bTc1, scale=0.05, labels=[\"X1\",\"Y1\",\"Z1\"]))\n", "fig.add_traces(axes(bTc2, scale=0.05, labels=[\"X2\",\"Y2\",\"Z2\"]))\n", "fig.add_traces(axes(bTc3, scale=0.05, labels=[\"X3\",\"Y3\",\"Z3\"]))\n", "fig.show()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Especially for visual odometry, which we will cover in the next section, having both forward and backward looking cameras is a good idea, yielding high quality estimates of the drone's rotation. Cameras pointed to the side will often suffer from motion blur in forward flight mode, especially with close obstacles at high speed." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Projecting 3D Points\n", "\n", "> Transforming coordinates into the right reference frame.\n", "\n", "We have seen in Chapter 5 how to project points specified in the *camera* frame onto the image plane. However, for visual odometry or visual SLAM, an additional step is needed: we need to transform the 3D points from the navigation frame into the camera frame. This involves both the camera extrinsics and the drone's pose $T^n_b$ in the navigation frame itself.\n", "\n", "Let us start by reviewing the fundamental projection equation from chapter 5:\n", "\n", "\n", "$$\n", "u = u_0 + f \\frac{X^c}{Z^c} ~~~~ v = v_0 + f \\frac{Y^c}{Z^c}.\n", "$$\n", "\n", "where $u_0$, $v_0$, and $f$ are the *intrinsic* camera calibration parameters, and $P^c=(X^c,Y^c,Z^c)$ are the coordinates of a 3D point in the *camera* coordinate frame, hence the superscript $C$. But what if we are given the 3D coordinates $P^n=(X^n,Y^n,Z^n)$ in the ENU navigation frame, rather than in the camera frame? Because the camera is mounted on the drone, we do this in two steps:\n", "\n", "- convert from navigation to body frame: $P^b = (R^n_b)^T (P^n - t^n_b)$\n", "- convert from body to camera frame: $P^c = (R^b_c)^T (P^b - t^b_c)$\n", "\n", "where $T^n_b=(R^n_b,t^n_b)$ is the drone's FLU body pose with respect to the ENU navigation frame, and $T^b_c=(R^b_c,t^b_c)$ is the camera pose (i.e., the extrinsic camera parameters) specified in the body frame. In case there are multiple cameras the first conversion needs to be done only once, but the second conversion will be camera specific." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## A Stereo Example in Code\n", "\n", "> It all works, folks!\n", "\n", "As an example, let us assume the drone is at position $t^n_b=(100, 300, 10)$ (i.e., 10 meters high)\n", "and flying north:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "E,N,U = np.eye(3)\n", "ntb = gtsam.Point3(100, 300, 10)\n", "nRb = gtsam.Rot3(N,-E,U) # flying north, left of drone facing west\n", "nTb = gtsam.Pose3(nRb, ntb)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's project a point $P^n=(103,310,12)$ 10 meters in front of the drone (check this!) into the stereo pair. We make use of the GTSAM method `Pose3.TransformTo` to convert from navigation to body (once) and then from body to camera (twice):" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "bP = [10. -3. 2.] in (F,L,U) body frame\n", "c1P = [ 3.05 -1.99 9.9 ] in camera frame 1\n", "c2P = [ 2.95 -1.99 9.9 ] in camera frame 2\n" ] } ], "source": [ "nP = gtsam.Point3(103,310,12)\n", "bP = nTb.transformTo(nP)\n", "print(f\"bP = {bP} in (F,L,U) body frame\")\n", "c1P = bTc1.transformTo(bP)\n", "print(f\"c1P = {c1P} in camera frame 1\")\n", "c2P = bTc2.transformTo(bP)\n", "print(f\"c2P = {c2P} in camera frame 2\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As you can see, the point in body coordinates is $10m$ ahead, because the $x$-coordinate is $10$ in the FLU body frame. Moreover, the points expressed in the two forward-looking camera frames are identical *except* for the $x$ coordinates, which is exactly what we expect from a stereo rig. We can then apply the intrinsics to get the final image coordinates, for example using a $640\\times 480$ image and a focal length of $300$:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "u1,v1 = [412.42 179.7 ] in image 1\n", "u2,v2 = [409.39 179.7 ] in image 2\n" ] } ], "source": [ "w, h, f = 640, 480, 300\n", "u0, v0 = float(w/2), float(h/2)\n", "u1, v1 = u0 + f * c1P[0]/c1P[2], v0 + f * c1P[1]/c1P[2]\n", "print(f\"u1,v1 = {np.round([u1,v1],2)} in image 1\")\n", "u2, v2 = u0 + f * c2P[0]/c2P[2], v0 + f * c2P[1]/c2P[2]\n", "print(f\"u2,v2 = {np.round([u2,v2],2)} in image 2\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Again, this is exactly what we expect for a stereo rig. In this case the disparity is $412.4-409.4\\approx3$ pixels, and if we plug that into the fundamental stereo equation from Section 5.2, with baseline $10cm$ (check the extrinsics!), we indeed obtain that the point is at a depth of $10m$:\n", "\n", "$$\n", "Z = B \\frac{f}{d} = 0.1 \\frac{300}{3} = 10\n", "$$ " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In actuality, the disparity is a tiny bit larger, and if we plug in the exact number, we get the *true* depth from the camera center:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "disparity = 3.0303 pixels\n", "depth = 9.9 meters\n" ] } ], "source": [ "print(f\"disparity = {round(u1-u2,5)} pixels\")\n", "# and depth:\n", "print(f\"depth = {round(0.1 * f / (u1-u2),1)} meters\")\n" ] } ], "metadata": { "colab": { "collapsed_sections": [], "include_colab_link": true, "name": "S73_drone_sensing.ipynb", "provenance": [] }, "kernelspec": { "display_name": "Python 3.8.12 ('gtbook')", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.18" }, "latex_metadata": { "affiliation": "Georgia Institute of Technology", "author": "Frank Dellaert and Seth Hutchinson", "title": "Introduction to Robotics" }, "vscode": { "interpreter": { "hash": "9f7376ced4243bb13dfcffa8a3ba834e0602aa8334cd3a1d8ba8d285f4628083" } } }, "nbformat": 4, "nbformat_minor": 2 }