{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Vector calculus in the Euclidean plane\n", "\n", "This notebook illustrates some vector calculus capabilities of SageMath within the 2-dimensional Euclidean space. The corresponding tools have been developed within\n", "the [SageManifolds](https://sagemanifolds.obspm.fr) project.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*NB:* a version of SageMath at least equal to 8.3 is required to run this notebook:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'SageMath version 9.8, Release Date: 2023-02-11'" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "version()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First we set up the notebook to display math formulas using LaTeX formatting:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "%display latex" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. Defining the Euclidean plane\n", "\n", "We define the Euclidean plane $\\mathbb{E}^2$ as a 2-dimensional Euclidean space, with Cartesian coordinates $(x,y)$:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Euclidean plane E^2\n" ] }, { "data": { "text/html": [ "\\(\\displaystyle \\mathbb{E}^{2}\\)" ], "text/latex": [ "$\\displaystyle \\mathbb{E}^{2}$" ], "text/plain": [ "Euclidean plane E^2" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "E. = EuclideanSpace()\n", "print(E)\n", "E" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Thanks to the use of `` in the above command, the Python variables `x` and `y` are assigned to the symbolic variables $x$ and $y$ describing the Cartesian coordinates: " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\verb|<class|\\verb| |\\verb|'sage.symbolic.expression.Expression'>|\\)" ], "text/latex": [ "$\\displaystyle \\verb||$" ], "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Instead of using the variables `x` and `y`, one may also access to the coordinates by their indices in the chart of Cartesian coordinates:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(\\mathbb{E}^{2},(x, y)\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(\\mathbb{E}^{2},(x, y)\\right)$" ], "text/plain": [ "Chart (E^2, (x, y))" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cartesian = E.cartesian_coordinates()\n", "cartesian" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle x\\)" ], "text/latex": [ "$\\displaystyle x$" ], "text/plain": [ "x" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cartesian[1]" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle y\\)" ], "text/latex": [ "$\\displaystyle y$" ], "text/plain": [ "y" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cartesian[2]" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y is cartesian[2]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Each of the Cartesian coordinates spans the entire real line:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle x :\\ \\left( -\\infty, +\\infty \\right) ;\\quad y :\\ \\left( -\\infty, +\\infty \\right)\\)" ], "text/latex": [ "$\\displaystyle x :\\ \\left( -\\infty, +\\infty \\right) ;\\quad y :\\ \\left( -\\infty, +\\infty \\right)$" ], "text/plain": [ "x: (-oo, +oo); y: (-oo, +oo)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cartesian.coord_range()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2. Vector fields" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Euclidean plane $\\mathbb{E}^2$ is canonically endowed with the vector frame associated with Cartesian coordinates:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(\\mathbb{E}^{2}, \\left(e_{ x },e_{ y }\\right)\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(\\mathbb{E}^{2}, \\left(e_{ x },e_{ y }\\right)\\right)$" ], "text/plain": [ "Coordinate frame (E^2, (e_x,e_y))" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "E.default_frame()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Vector fields on $\\mathbb{E}^2$ are then defined from their components in that frame:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle v = -y e_{ x } + x e_{ y }\\)" ], "text/latex": [ "$\\displaystyle v = -y e_{ x } + x e_{ y }$" ], "text/plain": [ "v = -y e_x + x e_y" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v = E.vector_field(-y, x, name='v')\n", "v.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The access to individual components is performed by the square bracket operator:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle -y\\)" ], "text/latex": [ "$\\displaystyle -y$" ], "text/plain": [ "-y" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v[1]" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left[-y, x\\right]\\)" ], "text/latex": [ "$\\displaystyle \\left[-y, x\\right]$" ], "text/plain": [ "[-y, x]" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v[:]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A plot of the vector field $v$ (this is with default parameters, see the [list of options](http://doc.sagemath.org/html/en/reference/manifolds/sage/manifolds/differentiable/vectorfield.html#sage.manifolds.differentiable.vectorfield.VectorField.plot) for customizing the plot):" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 80 graphics primitives" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v.plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One may also define a vector field by setting the components in a second stage:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle w = w_{x}\\left(x, y\\right) e_{ x } + w_{y}\\left(x, y\\right) e_{ y }\\)" ], "text/latex": [ "$\\displaystyle w = w_{x}\\left(x, y\\right) e_{ x } + w_{y}\\left(x, y\\right) e_{ y }$" ], "text/plain": [ "w = w_x(x, y) e_x + w_y(x, y) e_y" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "w = E.vector_field(name='w')\n", "w[1] = function('w_x')(x,y)\n", "w[2] = function('w_y')(x,y)\n", "w.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that in the above example the components of $w$ are unspecified functions of $(x,y)$, contrary to the components of $v$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Standard linear algebra operations are available on vector fields:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left( x w_{x}\\left(x, y\\right) - 2 \\, y \\right) e_{ x } + \\left( x w_{y}\\left(x, y\\right) + 2 \\, x \\right) e_{ y }\\)" ], "text/latex": [ "$\\displaystyle \\left( x w_{x}\\left(x, y\\right) - 2 \\, y \\right) e_{ x } + \\left( x w_{y}\\left(x, y\\right) + 2 \\, x \\right) e_{ y }$" ], "text/plain": [ "(x*w_x(x, y) - 2*y) e_x + (x*w_y(x, y) + 2*x) e_y" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s = 2*v + x*w\n", "s.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A name can be given to the result of the computation:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle s = \\left( x w_{x}\\left(x, y\\right) - 2 \\, y \\right) e_{ x } + \\left( x w_{y}\\left(x, y\\right) + 2 \\, x \\right) e_{ y }\\)" ], "text/latex": [ "$\\displaystyle s = \\left( x w_{x}\\left(x, y\\right) - 2 \\, y \\right) e_{ x } + \\left( x w_{y}\\left(x, y\\right) + 2 \\, x \\right) e_{ y }$" ], "text/plain": [ "s = (x*w_x(x, y) - 2*y) e_x + (x*w_y(x, y) + 2*x) e_y" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s.set_name('s')\n", "s.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Scalar product and norm\n", "\n", "The dot (scalar) product of $v$ by $w$ in performed by the operator `dot_product`; it gives rise to a scalar field on $\\mathbb{E}^2$:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Scalar field v.w on the Euclidean plane E^2\n" ] } ], "source": [ "s = v.dot_product(w)\n", "print(s)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A shortcut alias of `dot_product` is `dot`:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s == v.dot(w)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{llcl} {v}\\cdot{w}:& \\mathbb{E}^{2} & \\longrightarrow & \\mathbb{R} \\\\ & \\left(x, y\\right) & \\longmapsto & -y w_{x}\\left(x, y\\right) + x w_{y}\\left(x, y\\right) \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{llcl} {v}\\cdot{w}:& \\mathbb{E}^{2} & \\longrightarrow & \\mathbb{R} \\\\ & \\left(x, y\\right) & \\longmapsto & -y w_{x}\\left(x, y\\right) + x w_{y}\\left(x, y\\right) \\end{array}$" ], "text/plain": [ "v.w: E^2 → ℝ\n", " (x, y) ↦ -y*w_x(x, y) + x*w_y(x, y)" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The symbolic expression representing the scalar field $v\\cdot w$ is obtained by means of the method `expr()`:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle -y w_{x}\\left(x, y\\right) + x w_{y}\\left(x, y\\right)\\)" ], "text/latex": [ "$\\displaystyle -y w_{x}\\left(x, y\\right) + x w_{y}\\left(x, y\\right)$" ], "text/plain": [ "-y*w_x(x, y) + x*w_y(x, y)" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s.expr()" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\verb|<class|\\verb| |\\verb|'sage.symbolic.expression.Expression'>|\\)" ], "text/latex": [ "$\\displaystyle \\verb||$" ], "text/plain": [ "" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(_)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Euclidean norm of the vector field $v$ is a scalar field on $\\mathbb{E}^2$:" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{llcl} \\left\\|v\\right\\|:& \\mathbb{E}^{2} & \\longrightarrow & \\mathbb{R} \\\\ & \\left(x, y\\right) & \\longmapsto & \\sqrt{x^{2} + y^{2}} \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{llcl} \\left\\|v\\right\\|:& \\mathbb{E}^{2} & \\longrightarrow & \\mathbb{R} \\\\ & \\left(x, y\\right) & \\longmapsto & \\sqrt{x^{2} + y^{2}} \\end{array}$" ], "text/plain": [ "|v|: E^2 → ℝ\n", " (x, y) ↦ sqrt(x^2 + y^2)" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s = norm(v)\n", "s.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Again, the corresponding symbolic expression is obtained via `expr()`:" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\sqrt{x^{2} + y^{2}}\\)" ], "text/latex": [ "$\\displaystyle \\sqrt{x^{2} + y^{2}}$" ], "text/plain": [ "sqrt(x^2 + y^2)" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s.expr()" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\sqrt{w_{x}\\left(x, y\\right)^{2} + w_{y}\\left(x, y\\right)^{2}}\\)" ], "text/latex": [ "$\\displaystyle \\sqrt{w_{x}\\left(x, y\\right)^{2} + w_{y}\\left(x, y\\right)^{2}}$" ], "text/plain": [ "sqrt(w_x(x, y)^2 + w_y(x, y)^2)" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "norm(w).expr()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have of course $\\|v\\|^2 = v\\cdot v$ :" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "norm(v)^2 == v.dot(v)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Values at a given point\n", "\n", "We introduce a point $p\\in \\mathbb{E}^2$ via the generic SageMath syntax for creating an element from its parent (here $\\mathbb{E}^2$), i.e. the call operator `()`, with the Cartesian coordinates of the point as the first argument:" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Point p on the Euclidean plane E^2\n" ] } ], "source": [ "p = E((-2,3), name='p')\n", "print(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The coordinates of $p$ are returned by the method ``coord()``:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(-2, 3\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(-2, 3\\right)$" ], "text/plain": [ "(-2, 3)" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p.coord()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "or by letting the chart `cartesian` act on the point:" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(-2, 3\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(-2, 3\\right)$" ], "text/plain": [ "(-2, 3)" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cartesian(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The value of the scalar field ``s = norm(v)`` at $p$ is" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\sqrt{13}\\)" ], "text/latex": [ "$\\displaystyle \\sqrt{13}$" ], "text/plain": [ "sqrt(13)" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The value of a vector field at $p$ is obtained by the method `at` (since the call operator `()` is reserved for the action of vector fields on scalar fields, see Section 5 below):" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Vector v at Point p on the Euclidean plane E^2\n" ] } ], "source": [ "vp = v.at(p)\n", "print(vp)" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle v = -3 e_{ x } -2 e_{ y }\\)" ], "text/latex": [ "$\\displaystyle v = -3 e_{ x } -2 e_{ y }$" ], "text/plain": [ "v = -3 e_x - 2 e_y" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vp.display()" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle w = w_{x}\\left(-2, 3\\right) e_{ x } + w_{y}\\left(-2, 3\\right) e_{ y }\\)" ], "text/latex": [ "$\\displaystyle w = w_{x}\\left(-2, 3\\right) e_{ x } + w_{y}\\left(-2, 3\\right) e_{ y }$" ], "text/plain": [ "w = w_x(-2, 3) e_x + w_y(-2, 3) e_y" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "wp = w.at(p)\n", "wp.display()" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left( \\pi w_{x}\\left(-2, 3\\right) - 3 \\right) e_{ x } + \\left( \\pi w_{y}\\left(-2, 3\\right) - 2 \\right) e_{ y }\\)" ], "text/latex": [ "$\\displaystyle \\left( \\pi w_{x}\\left(-2, 3\\right) - 3 \\right) e_{ x } + \\left( \\pi w_{y}\\left(-2, 3\\right) - 2 \\right) e_{ y }$" ], "text/plain": [ "(pi*w_x(-2, 3) - 3) e_x + (pi*w_y(-2, 3) - 2) e_y" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s = v.at(p) + pi*w.at(p)\n", "s.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3. Differential operators\n", "\n", "Tu use functional notations, i.e. `div(v)` instead of `v.div()` for the divergence of the vector field `v`, we import the functions `div`, `grad`, etc. in the global namespace:" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "from sage.manifolds.operators import *" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Divergence\n", "\n", "The divergence of a vector field is returned by the function `div`; the output is a scalar field on $\\mathbb{E}^2$:" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Scalar field div(v) on the Euclidean plane E^2\n" ] } ], "source": [ "print(div(v))" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{llcl} \\mathrm{div}\\left(v\\right):& \\mathbb{E}^{2} & \\longrightarrow & \\mathbb{R} \\\\ & \\left(x, y\\right) & \\longmapsto & 0 \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{llcl} \\mathrm{div}\\left(v\\right):& \\mathbb{E}^{2} & \\longrightarrow & \\mathbb{R} \\\\ & \\left(x, y\\right) & \\longmapsto & 0 \\end{array}$" ], "text/plain": [ "div(v): E^2 → ℝ\n", " (x, y) ↦ 0" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "div(v).display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the present case, $\\mathrm{div}\\, v$ vanishes identically:" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "div(v) == 0" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On the contrary, the divergence of $w$ is" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{llcl} \\mathrm{div}\\left(w\\right):& \\mathbb{E}^{2} & \\longrightarrow & \\mathbb{R} \\\\ & \\left(x, y\\right) & \\longmapsto & \\frac{\\partial\\,w_{x}}{\\partial x} + \\frac{\\partial\\,w_{y}}{\\partial y} \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{llcl} \\mathrm{div}\\left(w\\right):& \\mathbb{E}^{2} & \\longrightarrow & \\mathbb{R} \\\\ & \\left(x, y\\right) & \\longmapsto & \\frac{\\partial\\,w_{x}}{\\partial x} + \\frac{\\partial\\,w_{y}}{\\partial y} \\end{array}$" ], "text/plain": [ "div(w): E^2 → ℝ\n", " (x, y) ↦ d(w_x)/dx + d(w_y)/dy" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "div(w).display()" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\frac{\\partial}{\\partial x}w_{x}\\left(x, y\\right) + \\frac{\\partial}{\\partial y}w_{y}\\left(x, y\\right)\\)" ], "text/latex": [ "$\\displaystyle \\frac{\\partial}{\\partial x}w_{x}\\left(x, y\\right) + \\frac{\\partial}{\\partial y}w_{y}\\left(x, y\\right)$" ], "text/plain": [ "diff(w_x(x, y), x) + diff(w_y(x, y), y)" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "div(w).expr()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Gradient\n", "\n", "The gradient of a scalar field, e.g. `s = norm(v)`, is returned by the function `grad`; the output is a vector field:" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Vector field grad(|v|) on the Euclidean plane E^2\n" ] } ], "source": [ "s = norm(v)\n", "print(grad(s))" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{grad}\\left(\\left\\|v\\right\\|\\right) = \\left( \\frac{x}{\\sqrt{x^{2} + y^{2}}} \\right) e_{ x } + \\left( \\frac{y}{\\sqrt{x^{2} + y^{2}}} \\right) e_{ y }\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{grad}\\left(\\left\\|v\\right\\|\\right) = \\left( \\frac{x}{\\sqrt{x^{2} + y^{2}}} \\right) e_{ x } + \\left( \\frac{y}{\\sqrt{x^{2} + y^{2}}} \\right) e_{ y }$" ], "text/plain": [ "grad(|v|) = x/sqrt(x^2 + y^2) e_x + y/sqrt(x^2 + y^2) e_y" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grad(s).display()" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\frac{y}{\\sqrt{x^{2} + y^{2}}}\\)" ], "text/latex": [ "$\\displaystyle \\frac{y}{\\sqrt{x^{2} + y^{2}}}$" ], "text/plain": [ "y/sqrt(x^2 + y^2)" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grad(s)[2]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For a generic scalar field" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [], "source": [ "F = E.scalar_field(function('f')(x,y), name='F')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "we have" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{grad}\\left(F\\right) = \\frac{\\partial\\,f}{\\partial x} e_{ x } + \\frac{\\partial\\,f}{\\partial y} e_{ y }\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{grad}\\left(F\\right) = \\frac{\\partial\\,f}{\\partial x} e_{ x } + \\frac{\\partial\\,f}{\\partial y} e_{ y }$" ], "text/plain": [ "grad(F) = d(f)/dx e_x + d(f)/dy e_y" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grad(F).display()" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left[\\frac{\\partial\\,f}{\\partial x}, \\frac{\\partial\\,f}{\\partial y}\\right]\\)" ], "text/latex": [ "$\\displaystyle \\left[\\frac{\\partial\\,f}{\\partial x}, \\frac{\\partial\\,f}{\\partial y}\\right]$" ], "text/plain": [ "[d(f)/dx, d(f)/dy]" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grad(F)[:]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Of course, we may combine `grad` and `div`:" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{grad}\\left(\\mathrm{div}\\left(w\\right)\\right) = \\left( \\frac{\\partial^2\\,w_{x}}{\\partial x ^ 2} + \\frac{\\partial^2\\,w_{y}}{\\partial x\\partial y} \\right) e_{ x } + \\left( \\frac{\\partial^2\\,w_{x}}{\\partial x\\partial y} + \\frac{\\partial^2\\,w_{y}}{\\partial y ^ 2} \\right) e_{ y }\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{grad}\\left(\\mathrm{div}\\left(w\\right)\\right) = \\left( \\frac{\\partial^2\\,w_{x}}{\\partial x ^ 2} + \\frac{\\partial^2\\,w_{y}}{\\partial x\\partial y} \\right) e_{ x } + \\left( \\frac{\\partial^2\\,w_{x}}{\\partial x\\partial y} + \\frac{\\partial^2\\,w_{y}}{\\partial y ^ 2} \\right) e_{ y }$" ], "text/plain": [ "grad(div(w)) = (d^2(w_x)/dx^2 + d^2(w_y)/dxdy) e_x + (d^2(w_x)/dxdy + d^2(w_y)/dy^2) e_y" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grad(div(w)).display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Laplace operator\n", "\n", "The Laplace operator is obtained by the function `laplacian`; it can act on a scalar field:" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{llcl} \\Delta\\left(F\\right):& \\mathbb{E}^{2} & \\longrightarrow & \\mathbb{R} \\\\ & \\left(x, y\\right) & \\longmapsto & \\frac{\\partial^2\\,f}{\\partial x ^ 2} + \\frac{\\partial^2\\,f}{\\partial y ^ 2} \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{llcl} \\Delta\\left(F\\right):& \\mathbb{E}^{2} & \\longrightarrow & \\mathbb{R} \\\\ & \\left(x, y\\right) & \\longmapsto & \\frac{\\partial^2\\,f}{\\partial x ^ 2} + \\frac{\\partial^2\\,f}{\\partial y ^ 2} \\end{array}$" ], "text/plain": [ "Delta(F): E^2 → ℝ\n", " (x, y) ↦ d^2(f)/dx^2 + d^2(f)/dy^2" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "laplacian(F).display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "as well as on a vector field:" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\Delta\\left(w\\right) = \\left( \\frac{\\partial^2\\,w_{x}}{\\partial x ^ 2} + \\frac{\\partial^2\\,w_{x}}{\\partial y ^ 2} \\right) e_{ x } + \\left( \\frac{\\partial^2\\,w_{y}}{\\partial x ^ 2} + \\frac{\\partial^2\\,w_{y}}{\\partial y ^ 2} \\right) e_{ y }\\)" ], "text/latex": [ "$\\displaystyle \\Delta\\left(w\\right) = \\left( \\frac{\\partial^2\\,w_{x}}{\\partial x ^ 2} + \\frac{\\partial^2\\,w_{x}}{\\partial y ^ 2} \\right) e_{ x } + \\left( \\frac{\\partial^2\\,w_{y}}{\\partial x ^ 2} + \\frac{\\partial^2\\,w_{y}}{\\partial y ^ 2} \\right) e_{ y }$" ], "text/plain": [ "Delta(w) = (d^2(w_x)/dx^2 + d^2(w_x)/dy^2) e_x + (d^2(w_y)/dx^2 + d^2(w_y)/dy^2) e_y" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "laplacian(w).display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For a scalar field, we have the identity:" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "laplacian(F) == div(grad(F))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 4. Polar coordinates\n", "\n", "Polar coordinates $(r,\\phi)$ are introduced on $\\mathbb{E}^2$ by" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(\\mathbb{E}^{2},(r, {\\phi})\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(\\mathbb{E}^{2},(r, {\\phi})\\right)$" ], "text/plain": [ "Chart (E^2, (r, ph))" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "polar. = E.polar_coordinates()\n", "polar" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle r :\\ \\left( 0 , +\\infty \\right) ;\\quad {\\phi} :\\ \\left[ 0 , 2 \\, \\pi \\right] \\mbox{(periodic)}\\)" ], "text/latex": [ "$\\displaystyle r :\\ \\left( 0 , +\\infty \\right) ;\\quad {\\phi} :\\ \\left[ 0 , 2 \\, \\pi \\right] \\mbox{(periodic)}$" ], "text/plain": [ "r: (0, +oo); ph: [0, 2*pi] (periodic)" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "polar.coord_range()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "They are related to Cartesian coordinates by the following transformations:" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left\\{\\begin{array}{lcl} x & = & r \\cos\\left({\\phi}\\right) \\\\ y & = & r \\sin\\left({\\phi}\\right) \\end{array}\\right.\\)" ], "text/latex": [ "$\\displaystyle \\left\\{\\begin{array}{lcl} x & = & r \\cos\\left({\\phi}\\right) \\\\ y & = & r \\sin\\left({\\phi}\\right) \\end{array}\\right.$" ], "text/plain": [ "x = r*cos(ph)\n", "y = r*sin(ph)" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "E.coord_change(polar, cartesian).display()" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left\\{\\begin{array}{lcl} r & = & \\sqrt{x^{2} + y^{2}} \\\\ {\\phi} & = & \\arctan\\left(y, x\\right) \\end{array}\\right.\\)" ], "text/latex": [ "$\\displaystyle \\left\\{\\begin{array}{lcl} r & = & \\sqrt{x^{2} + y^{2}} \\\\ {\\phi} & = & \\arctan\\left(y, x\\right) \\end{array}\\right.$" ], "text/plain": [ "r = sqrt(x^2 + y^2)\n", "ph = arctan2(y, x)" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "E.coord_change(cartesian, polar).display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A chart can be plotted in terms of another one; it appears then as a coordinate grid:" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAdEAAAHUCAYAAABlDhIoAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAADHkUlEQVR4nOydd3hURRfG3yT0ktC79BZAQUG6gIAI0pQi0kFFBEH8UMAColIURBAEpNhAERXp0kS6SO+995ZQUkjP7vn+eLkkQCDZzc7c3c39PU8eNGXP3N175505c4qPiAgsLCwsLCwsHMbX7AFYWFhYWFh4KpaIWlhYWFhYOIklohYWFhYWFk5iiaiFhYWFhYWTWCJqYWFhYWHhJJaIWlho5ObNm3j99dfx0ksvoX379oiLi7vn50OGDEHbtm1NGp2FhYWj+FgpLhYW+ujXrx+GDh2KGzduoFKlSliyZAlatmwJABAR5M6dG9WqVcPff/9t8kgtLCxSgrUTtbDQxJEjR1CwYEEUKFAA//33HwAgX758d39+4MAB3Lp1Cw0bNjRriBYWFg5iiaiFhSaCg4PRtWtXAMDs2bNRunRpVK9e/e7PN27cCACWiFpYeBDpzB6AhUVaoV69egCA8+fP499//8XIkSPh4+Nz9+cbN26Ev78/qlatatYQLSwsHMTaiVpYaGbBggUAgHbt2t3z/Y0bN6JevXrw8/MzY1gWFhZOYImohYVmduzYgYIFC6JcuXJ3v3fs2DFcu3bNcuVaWHgYlohaWGjmxo0bKFas2D3f++effwAAzz77rBlDsrCwcBJLRC0sNFOtWjWcP38eNpsNALB//34MGzYMuXLlQuXKlU0enYWFhSNYgUUWFpr58MMPcfHiRbzwwgsoXbo0smXLhri4ODRr1uyeQCMLCwv3xyq2YGGhERFBdHQ0MmfOfPd7ixYtwksvvYSlS5eiRYsWJo7OwsLCUSwRtbDQyPPPP48tW7bgypUryJo1K0QEderUgb+/P1auXGn28CwsLBzEOhO1sNDIjh07UL16dWTOnBk2mw3/+9//YLfb8fvvv5s9NAsLCyewdqIWFhpZvXo1Vq9ejcjISAQFBaF69eoYMGAA0qdPb/bQLCwsnMASUQsLCwsLCyex3LkWFhYWFhZOYomohYWFhYWFk1giamFhYWFh4SSWiFpYWFhYWDiJJaIWFhYWFhZOYomohYWFhYWFk1giamFhYWFh4SSWiFpYWFhYWDiJJaIWFhYWFhZOYomohYWFhYWFk1giamFhIiKCsLAwWNU3LSw8E0tELSxMJDw8HAEBAQgPDzd7KBYWFk5giaiFhYWFhYWTWCJqYWFhYWHhJJaIWlhYWFhYOIklohYWFhYWFk5iiaiFhZPEx8dj6NChKFGiBDJnzoySJUvis88+g91uN3toFhYWmkhn9gAsLDyVMWPGYNq0aZg1axYqVqyInTt3omfPnggICMCAAQPMHp6FhYUGLBG1sHCSLVu2oHXr1mjevDkAoHjx4pg7dy527twJxMcDN24A96WuxMTGIjYm5u7/h9+4wf84dAjImzdpQ76+QO7cgL8/4OOj5FosLCycw0esLG8Li+Sx24GQECAo6O7Xql9+weH169GzeXPkiI3F7TNncGnvXhTPnBkZIyKAFDxaYQACAIQC8E/ul9OnB/LlS/jKm/fe/7//e1mypPqyLSwsHo0lohYWAAXv0iXg4EF+HToEXLyYIJrXr3N3mfhP0qVDeKZMOH37NoJ9fHBNBGXr1EH15s0ThCx79nt2j7GxsYiLi7v7/+EHD6LgkCEInTgR/pUrJz02m4272kQCjuDge///1q0H/y5r1ntFtVQpoFIlflWsyLFZWFikCsuda5H2CA5OEEtDMA8eBEJD+fOsWYEKFYDixYFy5R666/t95UoMGjwYX86ciYoVK+Lq3r1o9s47GN+rF7p3756k6Qx3vgxs2bLxP6pUAerVc/6a4uIo9ImFNbHYXr0KrFgBfPMNd9UAUKxYgqgaX+XLA5kyOT8OC4s0hrUTtfBewsISBDLxV1AQf54hAxAYyF1ZYiEpVoznkMnw2GOP4f3338dbb71193sjR47EL7/8gqNHj6ZsiBs3IqB+fYRu2AD/1IhoSomKAo4effA9OX+eP/f1BcqUefA9KVMGSGetuS0s7sd6Kiy8A7sdOHAAWLMGWL8e2LfvQWGoVAno0ydBGEqXTpUwREZGwvc+sfXz83PvFJfMmYEnn+RXYkJDgcOH792ZT58OXLvGn2fIwF1q9epAw4b8yp9f//gtLNwMS0QtPBMR4NQpiuaaNcC6dXRnZsoE1K4NdOyo3EXZsmVLjBo1CkWLFkXFihWxZ88ejB8/Hq+++qrLbSknIACoVYtfiQkOThDVAweAf/8FvvuOP6tUiWLaqBFQvz5fw8IijWG5cy08h8uXgbVrKZpr13Kn6ecHPP00J/JGjSgCms70wsPDMWzYMCxcuBBBQUEoVKgQOnbsiI8//hgZMmRI/gVggjvXFVy5wkWLsYA5d467/WrVEj6H2rW567Ww8HIsEbVwX27epGvWEE7jnPGJJzhRN2zIYBz/ZJND3BaPFNHEiABnziQsbNau5ZlzxowUUuNzevpp60zVwiuxRNTCfbDZgI0bgZUrOSnv3s1JulSphB1OgwaMjvUSPF5E70eErl9j4bNhAwO8smfngqdRI+DFF4ESJcweqYWFS7BE1MJcRIA9e4A5c4DffqPLtmDBhLO2hg0ZLeuleJ2I3k98PLBrV8JO9d9/gZgYut07dwbat/eqRZFF2sMSUQtzOHkS+PVXfh07xom0QwdOrNWrp5nydl4vovcTEQEsWcJF06pVXEQ99xw/9xdfBIy8WQsLD8E6pLDQx9WrwB9/cALdvp0TZps2wMSJ3HVaZ2beT9asjJzu2JHR1PPmcSHVtSsDkVq3pqA2acK0GgsLN8eatSzUEhYGLFzIifKffxhN26wZ8PvvQIsWVn3XtEyePMzb7dOHEb5z53KB1bIlkCsX8PLLQKdOQJ06KSp+YWFhBpY718L1xMSwxNyvvwJLlwLR0cwj7NQJaNeOE2QaZ8qUKZgyZQpKR0Rg6fnzacedmxIOHEhw9Z8/DxQtyp1rp06MzLawcCMsEbVwHQcOsDbrvHnseFKlCie+V14BHnvM7NG5JWnuTNQR7Hbgv/8opn/8wSL8lSoB3bsDvXpZxR0s3ALLR2KROkSA1auB55/nLmHFCuCtt1jlZs8eYNAgS0AtnMPXF6hbF5g6lVHbf/0FPP448NFHvKcGDqQb2MLCRCwRtXCO2Fhg9mzuNps0YXm4OXOA06eBkSPZBcXCwlVkyAA0b85d6dmzQP/+wE8/MYe4Uyem0VhYmIAlohaOERICjB3LZPnu3YEiRZj/t2sXJ7P06c0eoYW3U7AgMGoUz0snTAC2bmXJwWefBZYtS2j1ZmGhAUtELVLGuXPA//5HN9qwYUDTpqxMs2wZJ680ktdp4UZky8Yd6YkTPIePimLEd6VKLJIfHW32CC3SAJaIWjyanTsZGVmqFDBrFjBgAAX1++/Zc9LCwmz8/Bj1vWULKyKVKwe88QYrXY0cyYAkCwtFWCJq8SB2O4M4GjRg4fDt24GvvwYuXOCkVKCA2SO0sHgQHx/mlC5cyGYFbdrQ7fvYYwx2O3nS7BFaeCGWiFokEB8P/PADd5gtWzLf888/gePHgX79WG3GwsITKFsW+PZbnpu+/z7dvWXLUlitICQLF2KJqAXTVJYvBypXBl57jU2sN2+me6xtW7rLLCw8kbx5gY8/5hHEtGlMvapWDejShQJrYZFKLBFN6+zfzxSV5s054ezcSXdY7dpmj8zCwnVkzsxz0kOHgOnTmdtcrhxzTsPDzR6dhQdjiWha5fJl4PXXmed5/jywaBGwbh1QtarZI7OwUEe6dBTTkyeBd98Fxo8HSpemsMbHmz06Cw/EKvuX1oiIAMaNY65n5szA8OHAm29a+Z2pJToaCAriV3Bwwn8HBbEI/0MIu3IFAUuXIrRlS/gXLPjgL/j5Ablzs1Vc4q+8efl9y9WeOi5c4G70559ZIGTcOKZvWSlbFinEEtG0gs3GCkNDh7IF1dtvc/LIkcPskbk3YWF0AZ4586A4JhbMpFyC/v4UvICABybla0FBCAoKQrzNhqfi4hBarhz8s2d/8DXi4piiERTEKlGJ8fFhJxRDVO8X2vz56bIsU8ZqM5ccu3ZxZ7phA9C4MfDVV1axe4sUYYloWmDNGuC994C9e9le6osvWHHIIoGoKODIEQrmwYMJX4mDTzJnfnA3+LD/z5sXyJgxWbMpLkAvQqFOSsCT+v/g4ITKPRkyMFisUqV7v4oVs1qMJUaEDcMHD2YBh1dfBUaMYIUkC4uHYImoN3PkCAvAL1sG1KrF1XWtWmaPylzi4jhBJhbKgweBU6cSRKd4cab5JBac0qVZIcfFKOviYrdTSI8cefBaQ0P5O1mz8jrvv9aCBdO2OzMujpG8n35KN/3gwdylWileFklgiag3EhQEfPIJMGMGezGOGcOKLmlxYrx6lbV9165l0YijRzlJAiwacf/urEIFICm3qiK0t0ITAS5dShBUY+d96BB34wCQMye7pTzzDNCoERdemTKpH5u7ERLCYg2TJtFtPmoU0K2btXu3uAdLRL0JERZLGDiQgjl0KGuLpsCt6DWEhPBca80afh0+zO9XrMi2Wo8/TrGsWJETo8m4TT9Rm43dUQxx3bMHWL+e57GZMrESUKNG/HrqqbR1xnrmDAs2/PEHK3j99JPVpcjiLpaIeguXL7NR8fLlQI8ewJdfuoVIKCcqioUhDNHctYuuzBIlgIYNOek3bMggGzfEbUQ0Kex2Nlo33tuNG4HbtxkoVb9+wntbsWLa8HL89x+LkZw5w7PSgQOt6GgLS0Q9HhH28ezfnzuGmTPZycJbiYsDduyge3bNGk5ssbEUyYYNE4TTQwKn3FpE78fL3nuniIpiF6Px4+nm/uknRj9bpFksEfVkrl0D+vRhhaFOnXh2kzu32aNyPXFxwD//sCHz4sWMUvX3Z4F8D98NeZSI3k9kJIX0fi9AmTLAK6/wnixf3uxRquHff+nxuXyZ0e79+llnpWkUS0Q9lXnzgL59KRzffssat96ECGv3/vorz6KCg4HAQE7OTZt6zbmcR4vo/Rjn0UuWAPPnMwr4qacopq+8AhQubPYIXUtEBM9KJ0/mgu6HH7x7F26RJJaIeho3bnDV+9tvFM6pU5mX6C0cPkz39K+/MtClSBH2M+3UiQXyPXC3+Si8SkQTEx3N8/lff2VbvdhYCk3nzrxvvanIx9q1zCm9cYMVj954w+vuU4uHY/kfPImlSxlZumoVJ6d587xDQC9cYBnCKlXolp06FXjuOUaHnjuX8DNrYvIcMmVi27E//+Sxw/ff093ZqxfPUI2fGWk1nkzDhmzk0LEjS2g2bcp72iJNYImoJxASwvOXVq1YIP7gQT6wniwqN28yj7V+feayDh/OEnWLFjG30/iZdc7k+QQEAD178lz70iWeIV64ALRvz1zdnj3ZVcVmM3ukzuPvz3t2xQrm3FaqxKAjy9Hn9VgzlLuzahUfyIULeeaydClQqJDZo3Ke7duBDh04efbpwx3LrFncrfz+O9C6ddrKa01rFCwI/O9/jPI9doz//e+/bMdXpAjw2Wes7eypNG3KRe6LL3Jx0Lo1cOWK2aOyUIglou5KeDjQuzcfygoV+GD27OmZu0+7ncEm9eoBNWoAu3fTRXv5MhcJ3bpxJZ+GmDJlCipUqIAuXbuaPRTzKFuWlbWOH+fi6qWXuEt97DEusI4fN3uEzpEjBxeGixbxuipVAubONXtUFqoQC/fj+HGRwECRrFlFpk0TsdvNHpFzREZy/GXLigAitWuLLFggEh9v9sjchtANGwSAhG7YYPZQ3IPr10VGjBDJn1/Ex0ekdWuRTZs89xkIDhbp0IH3f58+IjExZo/IwsVYO1F3Y+VKlhaz25l317u35+0+g4NZvLtoUe4oHn+c+YSbN3O3YVV5sXgYuXOzXOXZsywccvw4a/jWqsVAJE87N82Th5H0M2YA333HNmvXrpk9KgsXYomouyDCQvEvvMBJY9s2Btp4EseOMTqxaFG6azt0YMeUP/+0usdYOEamTCyxd/AgU2SyZGEgUpkywDffsPygJ9GrF7BuHRcF1apxgWzhFVgi6g5ERjIP8v33gQ8/ZFWegACzR5UyRIBNmxhAERjIc6ChQ9mHc/JkoFQps0do4cn4+gLNmzMXc+dOoGZNBiMVLcpnxZOCdurUoXgWLMhmCHPmmD0iCxdgiajZnD3Lh2vpUuZ9jhzpGWkdIkymr1mTAUMnTtBddfYs8NFH3ll+0MJcqlZlfvTp0wyy++Yb9n597bV7m6e7M4ULs5B/hw5Aly7sUxofb/aoLFKBB8zWXsz69Tz/DA1libt27cweUcrYt4/FEJo3ZzrKsmV0u736atrsO2mhl6JF2WD+wgUuOpctY6TvBx8AYWFmjy55MmUCfvwR+PprYOJEHuHcvGn2qCycxBJRMxDhKrpxY5ay27GDwTfuzuXLXPU/+SQnsMWLWSv1hRc8Y/ds4V3kyAEMGkQvyKBBFKTSpYFp09x/d+fjAwwYAPz9N1O+nn6abecsPA5r5tNNdDSF6O23+RCtXOn+rs+ICEbblilD4Zw0iTvPVq08L3LYwvvInp39PY8fB5o1Y0R45co8bnD3ikENG/KsN3t2Bt/Nn2/2iCwcxBJRnVy+zCLcv/4KzJ5Nl5Q7dyKx2eh2KlsWGD0aeOst4ORJFsBPn97s0bkFly5dQpcuXZA7d25kyZIFVapUwS4r8tIcihRhkYNdu1hTunlzVkLat8/skT2a4sWZ/tWiBY90hg1jipuFR2CJqC62bGFgxKVLLHPm7pVq1qzheF99lSk3R48ybcWbum+kklu3bqFOnTpInz49VqxYgcOHD+Orr75CDus9MpennmI07+LFDDh68kl6fy5fNntkDydrVlY1+uILYNQoRruHhpo9KosUYLVC08H339PFVKMGcybz5zd7RA/nyBGeLy1bRvfS+PGMwLV4gPfffx+bN2/Gpk2bHv2Ldjtd4kkQtnkzApo1Q+iKFfCvU+feH6ZLB2TO7KLRplHi4oDp01leMCoKGDwYeO89ipa7smIFG0wUKMCFgKfli6cxLBFVzejRTPno3ZtniRkymD2ipAkOZieVGTMY/ThmDF1L1pnng4gAt2/j+SefRLOqVRFz8SKu7t+Pktmzo0GFCng8Xz6+n0FB/AoOfmilnTAAAQBCASRZPThLFromE3/lzZv0/+fN6773l9mEhHCHN2kSqwiNHAl07+6+AXHHj3M3ev06O9xUqWL2iCwegiWiqhBh0YHRo9mZYuhQ9xWk33/neWd8PM9j+vWzOqkA3EGePcsgqkOH+O/Bg5zgoqPv+VXx8UF01qw4ExGBXOXKocATT9wrcDlyAL6+mDdvHub9+efdvysEYCKA0OHD4V+hwr32Y2M5iSYWY+O/g4KSrtqTJw8bFlSqlPBVsSKQK5er3x3P5MwZFjX54w8eU/z4o/sWBLl5E3j+ecYhrFxJT5aF22GJqApEWFVl4kR2un/3XbNHlDTXrwN9+7LIQ/v2wJQpnPTTGiKsfGOIpPF16BCrSQEUQUOQypcHChRAky5dkK9SJfzy99+MsPbzw9tvv40dO3Zgy5YtSZqKiYlBTEzM3f+/vXkzCr/wAkI3bIB/vXqOjTsyksKaWFwvXEgQ/GPHElI9ChW6V1QrVaLYZsvmxBvmBaxfz4INwcE863/zTffclYaGMkBq3z4esTh6j1gox41DQz0Uu53nnzNmUJT69jV7REmzaBFdzPHxLJDdoYPZI9JHdDQDvdasYcnCAweAW7f4syxZEkSmQ4cE4SlU6AFPwrEhQ1C0WjXuNO8QGBiI+Y9IU8iYMSMyJt7lp+ZsLksWoFgxfiVFbCxzKBMvDJYsASZMSEj9KFGCgTcNGwKNGvH8zV09Jq6kQQNg/36e/7/1FrBgAfv1Fi1q9sjuJSCA7QJbt2ZbxEWLGHFs4TZYIupK4uO5uv31V7qJevQwe0QPcusWc1R/+YV5ntOnM4DBm4mPZ0L7mjX82ryZQponDyfT995LEMvixVO8I6lTpw6OHTt2z/eOHz+OYg8TNd1kyMAFQcWK9y6SIiMZbX3wIBcQ27bRcxIXx8WCIaiNGrG3p7eSPTsLM7Rpw+jdSpVYRcjd+vZmzcoi/O3aAS1b0hXdurXZo7IwMK8Lm5cREyPStq1IunQiv/1m9miSZvlykUKFRAICRGbN8twejclht4scOCAycaJIq1Yi/v7s55gtm0jz5iLjx4vs2ydis6XKzPbt2yVdunQyatQoOXHihMyZM0eyZMkiv/zyS4pfw236id6+LbJypcigQSJPPcVenoBI6dIivXuL/PGHSFCQuWNUya1bIj168JpfeEHk0iWzR/QgMTEi7dqJ+Pm57xyTBrFE1BVERvLBy5BBZMkSs0fzIKGhIq+9xgni+edFLlwwe0SuJzSUC4OOHdnQGeDn8eyzbPL8338isbEuN7t06VKpVKmSZMyYUcqXLy8zZsxwbNjuIqL3c+OGyPz5In37ipQvz/cTEKlcWWTgQJENG1K9CHFLli4VKVBAJGdOkV9+cb+FZlycSNeuIr6+Ij/+aPZoLMQS0dQTHi7SsKFI5swif/9t9mge5J9/RIoW5S5sxgz3mxRSQ3S0yMKFXJ1nysTd09NPi7z/vsjq1VzcuDluK6L3c/GiyOzZIt27ixQuTEF97DGRwYO5q/em++r6dZFOnXiNL70kcvWq2SO6F5tN5I03OL4pU8weTZrHEtHUsGuXSNmyFCh3mwTDw7mLALgbO3PG7BG5hvh4kbVrRV5/XSRHDl5flSoiX34pcv682aNzGI8R0cTYbCKbNon06SOSOzc/g4oVRUaP9p77TETkzz9F8uYVyZOH7mx3wm4XeecdvvctWnCHamEKlog6y/XrdPsAIsOGmT2ae9mxQ6RkSZEsWUQmT/Z8t5vdzgXLu+8m7IJKlhQZOlTk0CGzR5cqPFJEExMbK/LXX9y5ZcnCz6Z2be6QvOEM9do1kTZteF0dO3Jx6i5ERvLMGhB5803v8gZ4EJaIOsPVqyKVKnGV2rYt3Yg//GD2qMjPP9O1+fTTIidOmD2a1HHypMhnnyWcyeXNK9Kvn8iWLV4zYXi8iCYmPFxkzhwGb6VLxwCYZs14tnj7ttmjcx67ndeVLZvI44+LnDpl9ohEoqIYh5Epk0jPnnw+Bg/2mufCk7BE1FEuXKALt1AhkcOHE84nfHzMPeiPi2PAB8CHKirKvLGkBrtdZP16uqiMiNquXRk56oUuK68S0cQEBYlMnSpSty4/xxw5eFbtjlGvKeXgQe78cuY0N/4hsYAa4/j6a77P/fp5vufJw7BE1BFu3hQJDGSgzsmTCd83W0ivXxdp1Igr/0mTPHM1GhfHsP1q1RLO2H74QSQiwuyRKcVrRTQxZ86IvPeeSPbsIunTMzhp/36zR+UcN28ywt3XV2TcOP3PWlICajBjBp+d99/XO6Y0jiWiKSU6WqRePQZSHDv24M/NEtJ9+0RKlOC41q7VZ9dVhIWJTJggUqwYJ4DGjUVWrPDMhYADTJ48WQIDA6Vl0aLeL6IGoaEiX33FqF4j3Wr1as/7rOPjRYYM4TV06aIvCvxRAmrw1Vcc17ff6hmThSWiKcJmE+nQgTfv5s2P/j2dQjpvHoM5qlTxvKjIixc5EQUE8PysSxeRPXvMHpV20sRO9H5iY3nG+OSTnPCfeILpMzExZo/MMebOZWrbU0+JnDun1lZKBFSEC5K33+ZO2R1z1r0QS0RTwqBBFMb585P/XR1CarOJfPghJ6AOHTzL5blvn0i3bnTr+fvzvfXG4g8pJE2KqIHdLrJmDcUBYOT1mDGsHuQp7N7N4528eUU2blRjI6UCahAfz/zWzJlFtm1TMyaLu1gimhzffMMHfOLElP+NSiENCWH0o4+PyBdfeI4rbO9ekaZNE5L0v/qK7r00TpoW0cQcPCjy6qusMpUtm8gHH3jO/REUJNKgAT0qU6e69pmMjnZMQA0iI0Vq1aK4J47fsHA5log+ioULKVYDBzr+tyqE9OhRkXLl6AJdscI1r6maS5cYLezjw6jmX35RUn7PU7FE9D4uX6abP3NmCsC333pGVHZsrEj//lwk9upF8UstzgqoQXCwSJky/AoOTv14LJLEEtGHsWULb9727Z0PGXelkC5dSvdnYKDI8eOpey0d3L4tMnw4z2xz5+aO3hLPB7BE9CFcuEC3PyBSoYLIsmWe4XX54QfupmvX5oLAWRx14T6Mkye5GKlVyyPKYHoilogmxfHjLPVVt27q8y1dIaQzZvDvW7VyfxdXfLzI99+LFCzIyWTQIM8649KMJaLJsGsXXaVG5PbevWaPKHm2bOH9f38qXEpxlYAabNvGnf1LL/H5tHAplojez7VrIqVKsUrOjRuuec3UCKmRRP3WW+6fRL16Nbt8GAFPp0+bPSK3xxLRFGC3iyxezOMAHx+enbp70YYLF3j0UrAgi7KkFFcLqMGSJYzY7d/fM3b0HoQloomJiBCpXp2ttFydMuKMkI4e7RnlvA4dYrCTUTd1yxazR+QxWCLqALGxPBbInZvHBJ984t7lBK9eZZnAvHlTtoNWJaAG337LZ3TcONe/dhrGElGD+HiR1q1FsmYV2blTjY2UCqndzuLqgMinn7qvgN64wU4efn4sCD9vnvuO1U2xRNQJbt3iMUGGDNzp/fST+95316+zCleOHI9ON1EtoAbvv8955fff1dlIY1giKsIHsG9fisGyZWptJSekdrvI//7HG/3LL9WOJTX89RcnsIAArmxdEY2YBrFENBWcPs1jA4DpU+6abxwSIlKnDsseJpVLqktARTj/dO7MBYh1z7kES0RFmOANiMycqcfew4TUZhPp3du9m+2GhCR0jXjhBfc/m3JzLBF1AcuWsSFEQIDIrFnuuSu9fVukYUMG+CQWSp0CahATwx7DOXI4dl5rkSQ+IiJIy6xaBTRtCnz0ETBypD67djvQpw8wcybwww9Aly7Aq68Cc+YA330H9OypbywpZfVq4LXXgJAQ4OuvOUYfH7NH5X7ExQHXrwPBwUBQUMLXrVvAfY9b2LlzCJg9G6HdusG/WLGEH6RPD+TNC+TLl/CVNy+QI4f1nifFrVvA228Dv/wCtGoFTJ8OFChg9qjuJSoKaNcO+OcfYN48oEkToG1bYO1aYMkS4Lnn9I0lJASoW5f36s6dQPbs+mx7GWlbRK9cASpXBp56Cli+HPD11WvfENIZM4Bq1YA9ezgJvPKK3nEkx+3bwKBBwLRpQOPGwPffA0WLmj0q87hxAzh0CDh4EDhyhPdRYsG8efPBv8mcGciV6+49Fn77Nm6HhyPKbkcpux2hefPCP1OmhN+PiaEQ2+33vs794po3Lz+LSpX4Va4ckDGjwot3cxYuBN58E7DZgClTgA4dzB7RvcTGAp06AYsX8/M6elS/gBocP86576WXgNmzrcWZk6RdEbXZuBI8cgTYu5cTkhlERgKBgcD580D//sCkSeaM42Fs2MAdZ1AQ8OWXnKDSysMWHg4cPkyxTPx19Sp/nj49UKYMUKRI0rvGxP+fNWuSJsI2bkRA/foI3bAB/vXq3ftDu507rMS72ft3t0FBwJkzwMWL/Bs/P6BsWU7QFSsmiGupUkC6dArfLDciOBh46y3u9tq3B6ZOBfLkMXtUCdy+zcXO5cvAe+/xuTKLOXPoBfvxR6BHD/PG4cmY6Us2lc8+45mkme3Dbt9mAnmmTCLNmpnf2DsxEREiAwbw7POZZ7y//qbdzvOhb75hUnrx4rx2gJ9LmTL8/rBhjGw8dMglFZhcdiZ665bIv/+KTJvGxswNGrBgiHENGTOy20+fPiJ//um6HGh35rffRHLlEsmXjyU83QGjlF/GjHzmAdbbNZOePZkyZJ2POkXaFNENG5h4/PHH5o3h9m1WRMqWTWT9evMbeyfmv/+Y2J4pk8j48e5f5MFZzp5lmbbOnRlpDLC7zDPPsIn0rFmsmKOwS47ywKJr19gpZeJEkddeEyldOmFh8OSTvM4VK0TCw9XYN5srV0RatuQ1d+3KptpmcX8tXLs9YaE6YYJ547p9m+VEK1WySgM6QdoT0eBgtlyqX9+8ElhxcSItWlBAExcmMFtI7XZ2V/H1FalRgwXvvYmgIO5O3niDVakMMalalQUtVq7UnrxvSnTuuXO8v7p2ZVQrwA4kdeuy3vGGDZ7X2/NR2O3MJQ0IYPN3M/rWPiwK127nvQeI/Pqr/nEZ7N/PsfXubd4YPJS0JaJ2Oyvr5MnDptBmjaF3b+akrlz54M/NEtLISDbGNiokeULnjJRw44bI9Oki9eoluDbLl2cZxQULTHdrmp7iYreLHDnClKo2bURy5uR7lD27SPfunPC9pd7quXNsoJ05MxdTukgujcVuT+ixu26dvnHdz/TpViEGJ0hbIvrVV7xJVBdUeBRGKb/vv3/47+gW0vPnuRvLnFlk7lz19lQTEcFJsmVLTky+viLPP8/30s3yWk0X0fuJj6cLe/hwngMDLIM5YAAr7rhjDqYjRESIdOrE6xoyRP0CIaV5oDExjI8ICGBvVTOw20Vefpndok6dMmcMHkjaEdFt2+iyeu8988bw8898eIcPT/53dQnpxo2s7Vm0qMju3ersqCYujmd7XbvSTQ7QJT1pEmuYuiluJ6KJsdtFduwQeecdkQIF+J6WLs1YgmPHzB6d89jtrLLl68tKR6rOSR0tpBAaKvLEE2xab9ZiLySEJTyrVfMul75C0oaIhoSIlCjB4vJm3Rhr1nBX1LNnylfzKoXUbmdUYLp0jOQMCnLt6+ti715Go+bNy0m+XDlGXntINLFbi2hi4uPZpadnT+5UAHovJkwwN1gnNaxaRfd16dKMtnYlzjbUvnhRpEgRdkMyq+3hjh2cqwYONMe+h+H9Imq3i7RrRzeJWa259u/nxNOkieNpESqENDpapFcvToT9+3tes2y7nbvOxo15DYUKibz7Lt2QHuZu9BgRTUxkJNNkXnqJNVizZqW719Wdj3Rw8qRIxYr0Xixa5JrXTG0pP2O+eO45857N8eP5bC1dao59D8L7RdRo/zNvnjn2L1zgyrJKFedXlq4U0suX2a4sQwamd3gS0dG8/kqVEnZCv/3m0UFQHimiiblyhR2HcuWie/Tll0W2bzd7VI4RFsYFAcD2aqlJ6XJVLVzDc9WjhzkLQ7udGQS5crlvYX83wbtFdN8+JjX36WOO/ZAQ9hMsWjT1ZxyuENJt27hrK1jQs3p+3rzJgCwjl7NFC+bWetiuMyk8XkQNbt9mhK+ROlSvHhtBe0qOsc3GYwBA5MUXKayO4upi8r/8wvGYlc9+/To3AM8849ELVdV4r4iGh/N87IkneHPrJiZGpFEj10bbpUZIFy7kgqJmTe5GPYFTp+huzpqVY+/Vi+kYXoTXiKhBfDxTh2rXTjijnj7dc5L4Fy9mes/jj3OXnVJUdWMxovm/+851r+kIGzfSwzB0qDn2PQDvFdEBA1jKyoxJ125nlGiGDK7P+3JGSOfMYV7qyy97Rt/PS5cYwOLrK5I7N1fibhxh6wyTJ0+WwMBAaVm0qHeJaGI2b2buqY8PS+9NneoZO5qDB+mxKVOG6V/JobKdmd0u8uabfH5XrHDta6eUESP4LO7caY59N8c7RXT3bn7oY8eaY/+jj7h6VJVz6YiQfvcdf69HD/dPmr99m+k/WbKwIMbEiUpL7rkDXrcTTYoTJ1i4wceH5eX++sv9XfEnT7K6UbFij86ZdDYK1xGMCmdZszJ4TjexsfToVavm/nOICXifiMbHizz9NINPzIhs++MPCuiYMWrtpERIJ03iWPr2de+zqfh4Fp8oWJC798GDeZ6cBkgTImqwaxebQQM86ti71+wRPZrz57kbLVQoaY+WDgE1uH2b81qRIjyr1M1///FzmzxZv203x/tEdOpUftj//qvf9qlTDE1/+WU9K+1HCekXX/B9eO899171r17NVS4g8sornpkmkQrSlIiK8F5csoRnpT4+Iq++6nZVpO7hyhWmwOTNy0BFA5Uu3Idx4QKPN1q0MOeZ7tWL85unxFRowrtE9OpVBvK89pp+2zExXCmWLKl3F3W/kNrtbNdlVEZyVwE9dIiTEMAglK1bzR6RKaQ5ETWIjeWuJk8euu8/+UR78f8UExzMmrs5czJ9xwwBNVi61LyuLzdu8PPq2FG/bTfGu0S0c2eu1MxwdwwcyLwuM3LkDCEFWCNWhzvZWcLCWPzdz48Ljnnz3FfoNZBmRdQgJITu+wwZ6M6fO9c974dbt0Rq1WLkbs2a5giowf/+x7lmxw79tmfN4vxi1rW7Id4jomvW8MM1o4DAX3/R9vjx+m0bxMUxaAPgYsIdWbuWgRpZs7J2qSdECismzYuowZkzrCwGiLRt655lKK9f5yId4HGJWcTEMMhHt9dLhAuc+vVZKtGM1EE3xDtENDqaTaSfeUZ/AI3Z5xQiFFAj+rFePfdo7J2Y27dZ3xbgA2h1iLiLJaL38ccffJ7y5hWZP9/s0SRguHAzZuSxTcaMXDybhRF/0aGD/nnn8GHuhD/5RK9dN8U7RHTECBZS191CKC6Owl24MM9NzMBmYx9QPz829TW7sff9/PsvV62ZM4t8/bV7RwmbgCWiSXD1KqsGAWxbZnLP1wfOQKOjmf+aLp25bRV//53v0YwZ+m1/8AFd8MeP67ftZni+iJ44wVXhkCH6bQ8bxnzUjRv12zZ4/30+SImbDLuDkEZFMTLYx4dnSZ7cOiuFjB49WgDIgAEDUvw3log+BLudrQNz5OBZqVm7vocFEcXFibRuzaMJM4sQ9O7NsR04oNduRIRI8eJsAuGOZ9ga8WwRtdsZSFOsmP7IvjVrKBAjRui1mxijuP5XXz34MzOFdNs2kfLluVIdOzZNJGhv375dihcvLk888YQloq7k4kWRZs14n/fsqfcMMLGArlr14M8jItizNn9+8zpERUayRGGFCvrnwGXL1BaV8RA8W0SNwgZLlui1e+0amxQ3bGieQCxZwl3w228/fCWoW0jj47k79/Nj4IOrezS6KeHh4VKmTBlZvXq11K9f3xJRV2O3s/JW9uwsNuDqUppJkZyAGgQF8biiXDnz3M6HDzNN6NVX9dtu04Zz4a1b+m27CT4iIvBEwsKA8uWBGjWAhQv12bXbgWbNgL17+VWwoD7bBtu3Aw0aAE2bAvPmAX5+D/9dux3o0weYORP44QegRw81Y7p1C+jYEVi9Ghg+HPjgAyB9ejW23Izu3bsjn78/vnz9dQzp0gWVCxZEp8aNgaAgfgUH3/1vuXmTn8kdwmw25IiLQ2iGDPD39eU3M2QA8uVL+Mqb997/z5cPKFUKKFoU8PEx6apN4Nw53r+bNgETJgD9+qm5/pgYoE0bYO1aYMkS4LnnHv37J08CtWoB5coB//wDZMrk+jElx08/AT17AnPmAJ066bN78SIQGAh07w5MnqzPrhvhuSL6zjvAd98Bhw9zMtHFmDHA++8Dq1YBTZros2tw6hQf2NKlgTVrgMyZk/8b1UJ66BDw4ovAjRvA778nP+l4MvHxnDQPHgQOHsSFFSsQv3cvitts8LHZEn4vR44kBXDl9u1YtmrV3V/LA+ATAKFvvw3/0qX5zejoe4T3nq+YmAQb2bMDFSsClSrxy/jv/Pm9V1zj44HBgymiPXsCU6e6VrSio4G2bVMuoAZbtwINGwItWgC//QYYCyJdiADdugGLFgG7dwNlyuizPWEC8O67XNxXq6bPrrtg7kbYSYwC819+qdfurl10Vb7/vl67BsHBrOVZpozj0cCqXLsLF4pky8ZaxSdPuu513YXr11kQ4s03RSpX5jkvpyyJz5NHNqZPL0EdOzJCcvNmaVuzpgzs1++hLxcdHS2hoaF3vy4tX55yd67dzmIVJ07wPGrMGJFu3VhNJ1Omu+OS3LlZo/bTTxkdbUYNadXMmsWAwho1XFc2MLWViBYu5PM1cKBrxuMoYWGcG3QXio+L47Px1FNpIv7hfjxTRJs0YWEBnZODUdj+8cfNmZQiIxnlmjev82LlSiG12VhWEOC5SHh46l7PXQgPF1m+XOTdd0WqVOF7BXByev11FvVfu1bk2jVZuHChABA/P7+7XwDEx8dH/Pz8JD4FE4rLzkTj45lusGABm0u3bs0SmAAjSJs1Y4GLPXu8J81oxw6ekRYowALpqcFVpfy++Ybv+ddfp248zrJ1K+/Zb77Ra3fzZl73nDl67boBnieixof1xx967RqF7Tdv1mtXhBPkSy8x13LbttS9liuENCyMeXxGdLKnT8onTvA66tRh7h/Azh1du4r89NNDe0qGhYXJgQMH7vmqVq2adOnSRQ6kMOVAaWBRfDzLUH7+OVMRjN1q7tysDvTzz56/+Ll6VaRuXXoInG1cndIgopQyaBCfjT//TP1rOcObb5pTKP6FFxhglcZ2o54noo0bczeoc+K+coWr+tdf12fTwG4X6d+f7mtXRSGnRkhPnGA4ffbs+qOiXcmVK+xXWr16wm6tTRuRKVNEjh51OvfNraNzo6MZ2Tp0KN2gABdmr7zCwuYxMerHoIKYGAqH0fbPEU+RqwVUhM/XK6/Q3WxGN6mbN9kE/ZVX9Nrdvp2fwc8/67VrMp4lops28UPSvcLr1IndC8wobD9zJq/5229d+7rOCOn69Ux+L1s26f6K7k5oKHeWTZpwUZI+vUirVixU4aLm324tovdz5ozI6NFs9QWI5MpFMdq40TO9C9On8zOtXz9l+aQqu7FER7MEZ548zHXVzc8/8zN11cIgpbRowaOPuDi9dk3Es0S0YUP2ntT5gP/zD29GMyr/HDjAB/yNN9S8viNCumIFx9KokeflhG3Zwhqjhjuzfn1OuGYsiu7DbfJE9+9n1a+iRfkeFS3KM+9r18wdl6Ns2sSFXtWqj/58dbQzCwrisUD9+vpdnHY7g8t0F4rfuZP3z6xZ+myajOeI6IYN/HAWLNBn0yhsX6+e/tJWt2/TbVqpEoOKVJESIV24kCv8Fi08p3NDfDzvlTp1EgKDxo596PmmWbiNiBrYbBSi3r2ZwJ8xI++Po0fNHlnK2bOHO8BKlXhmej86+4GuX0+vx/Dhau0kxZEjfG51227dmuKdRnajniOiDRowWlKnmH32GQNNzKi88+qrPK/SYftRQvrrr0zrad/eM87MIiIYBFa6NMXzmWdEFi92W/ek24loYm7coLu3QAG+ly1bcjHrCbVSDx9mzd2yZdlpycCMhtqffkoh1VFp6X6GDmXQlc7a1Xv2mOe9MwHPENF16/ihLFqkz6ZR2N6MnNA5c/T3Rk1KSL//nv/frZv7ryqvXRP5+GNGnvr6irz8cuojmTXg1iJqEB3Ne9E4O336aZ4ju/s9cfIk62qXKMHattHR+gVUhF6RZ5+lqOvukxoZyb6jjRrpXfy89BLtemOO8n24v4ja7XSnPvWUvpvAbmfwSfHiLgs4STHHj7N4QefO+lf8iYW0c2dOmG++6ba7OBFhisbHH9P1mDUrawmbVQzcCTxCRA3sdp6NN2rEeyMwkN1V3Hlneu4cvRKFC3Me0S2gBpcuMce7aVP9z9OKFfy8fv1Vn819+2jz++/12TQJ9xfRNWv0F5k3+vQtXarPpghXyk8+yfO7sDC9tg1stoS0j+efd98JMj6eeYEFCya0wrt50+xROYxHiWhidu5koB9AUd2zx+wRPZzTp7kwBUSmTTNvHIaYjR2r33a7duw2ozMosG1begG8fDfq3iJqtzORulo1fZN5aCgn5pde0mMvMf378/xi9279tkX4HhtViJ56yn3PNf7+m1HagEjHjkzV8DAmT54sgYGB0rJoUc8UURHeL0uWMMHex0ekRw9z0jkehXEGmjEjd6Q5c7LSkVkMHsw4iy1b9Nq9eJELib599dncv5/P6MyZ+myagHuL6OrV/BB0NuR9+226BXVHcS5cyGvVXa4rMWPHcgyjR7tHY+/7OXgwobdknToscebheOxONDGxsSxSkScP3erDh+vvbZkU9wcR3bolUrMmhfTwYXPGFBvLMRQrpt9z8vXXfJ63b9dns317XqsnBCU6ifuKqN0uUrs2XYu6dqEHDjAoZdw4PfYMzp3jg/3SS+a5T+fOpTh99FHC99xFSCMjRf73P342pUqx2Ia7upkdxCtE1CAkhG71jBnpzVm82LyxPCwK99YtBkgVK8aqVWZw9ixzWdu00Xsfx8XxuEjnnHrwIOeP6dP12DMB9xXRVas4qS9frs9mu3YMJtJd2L52bXNWpgbr19ON3LXrgw+X2UK6ZQvTFDJmZNeS6Gj9Y1CIV4mowZkzzCkGGNmtuzhHclG458+zCMJTT5lXO3jBAr4/U6fqtWsUj9EZ79GhA4t3eNmza+CeImq3s7ZnzZr6VkxGNJmzRaydZfJk2t20Sa9dg0OHuCpu1OjhLhczhDQ6mulFvr5MqTDL/aYYrxRRET63P/7IQuiFCzOoRgcpTWPZu5f1n5s1My9V5403OAad58h2O3Onq1bVN7ceOsS5Q/eCQRPuKaLGWajOuo9t2ujPa7p8mZOMqrJ+yXHpEleIjz+efK1RnUK6cyddbunTi4wa5f75iKnAa0XU4Px5posBIr16qY06d7SQwt9/M8jn9dfNOR64dYuF4tu312t37Vp+Hjrd7Z06iTz2mFc+y+4pom3bsmSXrhvbqLChs7iBCCNL8+ZlZRjdhIWxAlSRIvdWdHkUqoU0JoY5n35+HNu+fa634WZ4vYiK8DmeNo0Be8WKMW3N1ThbiWjWLD77n33m+jGlhF9+oX1dO3WD+vV5Pqprjt21S3+qoibcT0SvXOHqcNIkfTZffJEBKzpXSX//bV6h5thY7g78/RmG7giqhPTiRQY8+PlRSL04mi8xaUJEDU6f5uQNiHz4oeuKDqS2lN+IERzTTz+5ZjyOYLcz37ZkSbU1su9n/Xpe88KF+mxWrSrSvLk+e5pwPxEdNYo1Y3UFI+zerf8BiopiQYX69fW7kex2kZ496Sp1dkfgaiHdvJmJ4EWKeESpPleSpkRUhPfO55/z3mnePGUtyx6FK2rh2u106aZLZ041o6NHGdg3bJheu88+K1K5sr4KSjNmMMbh3Dk99jThXiJqszE6tkcPfTZbtdLf/+6TTyhiZgTLjBvHRcMvv6TudVwlpDNm8L2oWzfpjhteTpoTUYMVK9jovlw55zvEuLIWblwcXyt7dtbN1s2wYXwOdPbp3biRc8H8+XrshYfz/dW9WFCMe4moURZLVzUPo/fd7Nl67ImwNm6GDHRn6WbrVq62Bw1yzeulRkhjYkT69OH736dPmnHf3k+aFVERPguBgTxWcDTlQkUx+bAwVjWqWlV/OkZkJI+Unn1Wr3eqUSMGFurajb75JtOLvCjAyL1E9MUXWc5N103UvDlXwro+ULtd5LnnzClsf+sW7das6doIZGeE9OpVhtmnT8+daBomTYuoCMtstmrF+2fkyJQ9+yrbme3axUXugAGufd2UsHKla7xEjvDvv7T5xx967BlBnDrPYhXjPiJ66RKDSqZM0WNv2zZ+mHPm6LEnklAVaNkyfTZFODG1bct8UBV1Zh0R0r17efaZPz8fYG/HZhMJDmau3Lp1nKymTmV+8OTJEvrOOxTRd97h9777jhGMW7aInDpFF5iXVGd6KDZbQs3mdu0e3fhdRz/QiRP1p4AYvPwy0150Fl557jmmlOnajVavzm42XoL7iOiIEay7mdpAg5TSrBldSfHxeuyFhLC5cdu2euwlZupU9WcfKRHSrVsp5E89lfK0Gk/AbmdU+erVIhMmiLz2GouF5MvHQArg3i8/P4lLl06ifXwkGKCIpk/Pqkz3/y5AwShWjF113n2X7++OHe5Rn9aVLFjAoMJGjZK+Nl0Nte12kdatWYpTdxDMpUs8N3zzTX02//uP99lvv+mx9913nCc8sHFEUriHiMbHM+n/tdf02NuyhTfN3Ll67ImwQ0u2bPrFY88eTs5vvaXe1qOEdP16Xn+dOvoWSqqIjeUu+tNPeYaVO/e9gle1qkj37sw9nD6d4vDvvzwDDAm5Z2f5gDs3Lo7u7v37WaLt11+5MxoyhG7PkiUTbPn48BytQwe6xU+e9Pxd64YNSd8nugTU4MYNzkl16ug/v5s4kZ+tzkj155/Xt6m4fZvn4InrdHsw7iGiy5ZxUtDVXeD550UqVNC3Cz19mgE9Y8bosWcQHs66s1WqPNpF5kqSEtKVKx+9w3B37HYuRsaNowcja1berwEB3LF89hmF8sQJh+8pp85Ew8P5rPzwAwvz16iRsOMtVkzk1Vd5ruap0c6Gx6JaNYqZiiCilLB5M4+YdAcBxscz2KdhQ302t27V27i7b1965ryg16h7iGirVvqqZxw8qP8s9NVXeQaoO5ioWzdO+MeO6bWbWEiNHqnNm+sTcldx6BBXyyVK8J7JnJnnR198QRFzwSLMZYFFISE8Sx0wgNW+jJ1qw4Z0n+kuAp9a9uxha7VKlbj40i2gBqNH833UbdsoUK8z4KxJEy5cdGDUKteVXqMQ80X0wgWuor/9Vo+9t9/mWZWulIqTJ7maHT9ejz2Dn37iTfrzz3rtGthsnPwAPpieksJy/jz7qlapwrHnyMGar//8oyTtQVl07tWrFM9GjSgCGTKw1d68eZ6zmNm9m0cRPj56F72Jsdm4cMqXT2/rNLud92CDBvpsLlrEe37XLj32atakcHs45ovoJ59wtxQaqt5WZCQnxSFD1Nsy6N6dbgudJb2M4IRu3fTZvJ9Zs7g4KlOGD6a7NPZOCrudRblfeIETdqZMLAq+aJHyfEEtKS6XLnERV61aght60CD3Du4yzkAzZKCAlSjBPpxmcPUqx9CunV67hqitW6fHXlwcO+7oaojx44+8vlOn9NhThLkiGhfHdIdevfTYM4pN66pIcvw4hWTiRD32DDp0YGF7s/qTLlvG3ffrr/MzdofG3kkRG8sdzlNP8b544gmR77/Xs6C7g/Y80aNHRQYPppCmSyfSpQtdp+7E/UFE585RRAMDzbunf/1Vf39ju533Zr16+gLGPv6YgV0qu+0YRETwPnz/ffW2FGKuiC5dyhtz50499mrXFmncWI8tETa5LlRIr/vMaGZulht35056Flq3TjgzNLux9/2Eh4t89RVbMwF0Kf39tymRraYVWwgLYzpO0aJ8Dxo35r1jdnTvw6Jwjx4VyZWLgmJGc2e7ne9RiRJ6vUpLlvDzUdH5JinOnePCf/p0Pfb69dN7vKYAc0W0dWumA+jgwAHejPPm6bF39Chvxm++0WNPxLzSYQanTzOAqkaNB4Oo3EFI4+N5TligAKsldetmers10ysWxcUx1atqVT4fDRuatzNNLgp382b+rEMHfYUBEnPsGN3LOlMz7Ha64evW1VvJ7amn9Ngy5mUPDjAyT0TDwxk0oCvgpl8/TvC6Qqo7d+b5gs5d6Mcf6y9ibXD9OksoliolEhSU9O+YKaR//013LcA+rm6S6G26iBrY7fQMlS/Pz6dHD7an00VK01jmz+f4XFX/2VGGD9f/jP31F+/b1av12DN2vzt26LH3xBOcLz0U80TUCOE+eVK9LcP3/sEH6m2J8AHz9dVXwlDEnFWyQVQUk9Lz5En+vNlmE+ndW5+QHjzI3E6AY9y6Vb1NB3AbETWIjeV9mycPK4h9/DEXvCpxtJDC11/z85w8We24kiIqikXqGzTQtzO021kqr3ZtPTaNWJXXX1dvS4RdXXLk8NicUfNEtHt31mvUwQ8/8KE7fVqPvY4ded6m6+zGbmcqg+7GviIUxXbtmEOZ0u47OnakMTF8OP38uDv+80/zz/uSwO1E1CAkhFHsGTPy3PSff9TYcbYS0f/+x/vHjELmZsQdLF9Om6tW6bGnM2tixw5e29q16m0pwBwRjY9nqTRdO8MaNfTlIx06xIdbV96rCCNMAbaS083Qodx1L1rk2N+pFNJ9+5hjly4dJwM3DlpwWxE1OH2aZ+wAq8y4cleamlJ+NhvTkDJlMudc+5VX9EbA2+2cx2rU0LMYNPL3p05Vb8tuZwDmO++ot6UAc0R00yY+lDpca3v36j247tyZK3ddE/etWzzr1Z3DJsIzGh8fkVGjnPt7VwtpXBzbaaVPz0o3u3en/jUVMXnyZAkMDJSWRYu6t4iK8HP65hu6d0uWZDPn1OKKUn6RkTxPK19efznJy5dZ/1VnoXijVZqu6kmtWolUrqxHtN98k5HPbugtSg5zRPS99xghqSPCrk8ffTUag4I4gX/1lXpbBgMHMq9LZxCICBPQ8+dnNZfUfI6uEtJjx0Sefpqr5w8+MCcNwgncfieamBMneK7s40N3qrPvsStr4R45QnHv0SN1r+MM33zD92LvXj327HbW1H3pJT32jJrmOjY7hrv6wAH1tlyMOSJatqyeAgu3b7Nyj65gm7FjeYZ0/boee5cvcyIaPlyPPQOjFFr+/K4pcp5aIV26lLuCsmXdLnAoOTxKREV4FDNuHIPYatfmPegIKorJG0VUZs92zeullLg4Bhm9+KI+m5Mn85z/0iX1tozuWq++qt5WdDQ3A856tUxEv4geOcIbfulS9bZ09q2z2fhA6QzVHjCAUce6i4sbRbldGWziTNSu3U73rY8PXU8aKw25Co8TUYMtW0QKFuRZVkpbdqlsZ2Y0Wzh61LWvmxyGgOs6OggJ4c57xAg99nT2eW7bllHIHoZ+ER0zhh+KjijSBg24Y9LBP//wYXLFeVFKuHSJu95PP9Vjz+Dff7kSVrG7d2RHGh7Oc2CAO3Ezku9dgMeKqAjvwZo1eR/+9NOjf1d1P9DwcOYpV66sNzc7Lo71oVu10mfz1Ve5Q9TRyvHSJT6PP/yg3tbs2XyeHfVumIx+Ea1TR4/748YNTvbTpqm3JcJIwcBAfQfj/fszt0png+sbN5i6U7euukbFKRHS06d5NpQtG/ONPRiPFlERuuFefZWT39tvJ31f6GqovXcvBb1vX3U2kuLnn/WWL922jfaWLdNjr1YtPXP29eucs2fMUG/LhegV0WvX9K1qjBtbx9nB1atMp5gwQb0tEYafZ8yoz6Vj0KED65eq7v7xKCE9fJhuxJIlWUjBw/F4ERXhwtE4q2vf/t7IdF0CajB1ql6BEeGOsFw5kRYt9Ngz2qS1bq3H3uef6/Me1q/PsoMehF4R/eEHTozXrqm31b49ozV18MUXFLUbN/TY69uXYqbzDHDFCk5Ov/yix15SQrp3L3PzKlVyTUCTG+AVImqwYAGj01u0oHjqFlARCsxzz4kUL/5g/WaVGLnaKT0fTi3ffstFi46o/MOHeW1//aXe1ldfcS7VnbKUCvSK6Isv0p2rGiPSS8dOzWbjrqhrV/W2RNg0OkMGvVFskZG8xkaN9OZxJRZSozRY1ar6op814FUiKsLFVqZMLGTfpIleATU4fpwT8Ycf6rMZH8/jnGbN9NgLDWUglY6YCLudQZM6MipOnqRgm1GJykn0iWhkJF0CY8aot2UkJe/fr97W33/T1r//qrclwqTk3Ln19PszGDaMwq078lGEQtqyJd/j0qX1ngEnw+jRo6VatWqSLVs2yZs3r7Ru3VqOOvgeeZ2IirA0nZ+feWX5RFipKn167qJ0MXcu79OUlr9MLb16MUZBR4DRu+/qy+2vUMGcvF8n8YUu1qwBIiOB1q3V21q8GCheHKhUSb2t6dOBihWB2rXV2zp/Hvj+e+C994Ds2dXbA4CjR4EvvgDefx8oV06PzcRs3gz88w9QqBBw8iSwYIH+MTyEDRs24K233sLWrVuxevVqxMfHo0mTJoiIiDB7aOYRHQ1MnAj4+QFZsvDeMeP9GDKEc0CfPoCIHpvt2wMVKgCffKLH3htvABcuACtWqLfVqhVw9SqwY4ceW3/9Bdhs6m25Am1y/frrTIZXjd3OFmRvv63e1pUrDCiaNEm9LRFWesqZU31XDQO7nXVTS5XSmzZgcPgwr7dBA56RmN2PNBmCgoIEgGxwYFfpVTvR+89Ad+7ksUqLFuqiuR/F6tXcGc6apc+msRvVVXnnqaf0BDTFxTEOQ4eLfMsWvoebNqm35QLSaVPrVau4UlPNnj3ApUt6drw//QSkSwd06aLeVkwM7XXvDmTLpt4eAPz6K7BuHbByJZApkx6bBlevAs2acQe6cCGQNSvw7bf82auv8t8ePfSOKRlCQ0MBALly5eI3IiKAw4eBgweBEyeAoCDYrl6FXLsG3+vXAbsd9uho/u7LLwO5cgH58iV8FSzInU2lSkDJktzduSvR0UDbtsDatcCSJcBzz/H7f/4JNG8O9OvHz8/HR9+YGjcGOnYE3n0XaNGC769q2rThZzdjBjBpknp7vXtzt33pElC4sDo76dLxPVyyBBg1Sp0dAKheHcibl/NO3bpqbbkCLVJ96ZK+IvAff6yvN93TT+sr/P7rr3wPdZ3xhISI5Msn8vLLeuwlJjycK+xChRhIlRgzG3s/ArvNJr0aNpQxpUszFahkSX5eAMdatKhI9epytGxZ+Q6QLwAZAcgkgDvRrl3ZxaJTJ5HGjVlYPWfOhNfIlInvyYABIosXu9XZcLJRuN9/z2sYPVr/2K5cYVWv3r312Xz/fdrUER0cEkJvmI7exX/+yc/x1Cn1tlq14nPgAegRUaMBt45w7CpVOBGpxlgY6OopWL++SL16emyJsApQpkz6C9vHxTHCMXv2hxf2dhchtdlE1q0TeeMNuZEtmwggdj8/VvEZOJBj27HjnnD96OhoCQ0Nvft1afnyh7tz7XaKwOrVzEHu3l2kWDHed35+bIs1erSespYPI6VpLMOH6+/BaTBhAt+v5BrGu4pTp3ituu7Nxo31tHoMD2eAoY58+FGjWA/bAyqR6RHRIUN4Tqmac+d48/72m3pb06bxwdSRG2rUG54zR70tEfZI9Pdnpw7d9O/PlXVyaRFmCunevYxWLFxYBJBgf3+ZmS2bXJk50+HcXYfPRO12TtIzZjAXOksW3hu1a3M3oitXWcSxPFC7XaRnT0bMbt6sZ3wGUVH0anTrps9mkyZcTOlg0iS+rzryxps1Y5yEaowyqjqjq51Ej4g2aCDSpo16O998w5tJh6vrhRd4XToYOJBpLbraew0bJpI5s/6CBvPn88GZPDllv69TSG02VsExGlTnySP2vn1lXNu2UqhgQTl+/LhTL5vqwKLwcBbAeOEFLuqyZBHp10+9y82ZbiyxsRT7okX1ir0I5wZfX31pWsa9rKNh+NmztPXHH+pt6do8hIaa72lKIepFND6eScE68kOfe05PwfnwcCZzjx+v3lZUFKPi3n1XvS0RPhzZs+uzZ3DmDM+y27Z1rKCDaiGNj2dx9QoVOFFVry7y++8isbHSp08fCQgIkPXr18uVK1fufkU6UB7NpdG5V6/SbZonDwWjXTuRPXtS/7r3k5p2ZufO8az3xRf1Fu6IiqLnQFeXpdhY5lXqquNbubKea7t4UV/lsgoV9J5lO4l6Ed23j2+66hD+sDDuQr/5Rq0dkYRV5smT6m398gttHTum3pYIu7NkyaKnNKNBbCxdX8WLO9fWTZWQrlrFQvcAAx02bbpn4sedoKD7v350YAxKUlwiI7ljKFOG70mPHq4723ZFKb+FC/me6nhWEzNlChcXR47osffhhzwW0VHCzqjopSOgslo1PQGHr77KGBc3R72IzpjB7b/qG0mnD717d5GKFdXbERF55hk9ZxAiLKeXLZvIoEF67BkMHsxz0NQ01HalkB4+LNK0Ke+nunWV1kNVmicaF8eC7Hny0D0/bFjqIkZdWQu3f38GqezalbrXcYToaFb46dhRj70zZ3g/fvedels7dvB+XbtWvS1dMS7Tp1M7dNZAdgL1Ivraa3Q1qGbkSIaVq47mio/n+eQHH6i1IyJy6JC+QCkRXlPWrCJBQXrsiXC3B4iMHZv610qtkMbHs5lAhgwsMDF/vnKXo5ZiCyEhTLvImJG7U2cCe1xdTD46mik7pUvrLTb+7be8Pw4d0mOvaVM9jTDsdgZPvfOOeltGtoXqbk579+rt0ewk6kW0UiVObKpp2VLPeejGjfxgU7NrSikffMDzUB0BRTdvchc6ZIh6WwYRESIlSrBYuasWP84K6dGjdCn7+HAnrqlCk9aKRUePMi3G19exa1TVjeXYMQr7+++77jWTIyaGgU26dqPG0Y+OgKY33+TzpPqs2Ujv+/NPtXbi4ni09OWXau2kErUiakRYff+9UjNit7MwwNChau2IsPRe/vx68pcqVqTrWAdff02Xqs6I3A8/5K7P1ee9jgrpjz9SIEqX1p5+ob3sX1wc+0NmyMAFbnJRxakJIkoJn37K+05nb9gJExg/oePcPyKCrnRXeFqSY/lyfSUHH3tMz7FPvXoMNnRj1IromjX8UFU/IGfO0M7SpWrtiLD+7+uvq7djtARasEC9LbudbZzat1dvy+DwYU5kw4eref2UCGlsLGssAwxiMOHsxbTauQcO8F7OkYNdj5JCtYAaNsqW5dm/rmjdGze4A9aRMSDCoLS6ddXbMVpA6miT2K6dnuIvgwaJFCmi3k4qUCuio0czXUJ1q57ffuNEqPoszyh6oEOsx4/ng66j2Lzhol69Wr0tEU6WDRpw56fSbfooIQ0OZsCWUTJNZ7pFIkwtQH/rFkXS15c7pcTvgc6G2kZQoM6cwC5deO6tw6P03Xd8j3XEGrRtyzQs1Xz5JV2tqhsLGKUGL11SaycVqBXR1q3ZyFk177zDswDVTJpEN5gDeYBO06ABJzEd6JxQRERmz+aDoaNZc1JCev48A2zy5lWfepUMpndxiY/n2Tsg0qcP3y+dAmrQuTOjiHU1XN+0Sd/C8epVfYUDfviB1+VMqpgjGAtvFXnIiTHyUnV45JxEnYja7Uw21tE6p1YtkVdeUW+nc2cGZqjmxg2Gdk+frt7W9et6XVsRETxT7tBBjz2Re4V0zBjWny1eXE8h7YcwefJkCQwMlJZFi7pHK7TvvuP707UrS7vpFFARCk1AAFNfdGC3M5lfVwOJWrVYYEI1hrdM9WcXEcE5ato0tXZEmE6jM+DRQdSJqFGKavFiZSZEhNF2GTMyMEY1pUrp6VP688/6XBjjx+sLshARGTeOLtTTp/XYM7DZmCAOcHF3f3cYkzB9J5qYH3+kkPr6MkhFNyNH8lnW1fRg4kR9wXSff073p2ovls3GxciIEWrtiIg8+STrIaumTRs24HBTfJX1WNu2jf/WqKHMBABg/3722lRt5/p14NQp9XYA9uyrXp29NFUiAkyfntADUTUREcCYMewDWqKEenuJuXAB2LQJyJmTvUrXrNFr392JiQHmzWPfSF9fYM4c3h866d+ffWM//1yPva5deb0//qjeVuvWQGQk+62qxNeXc5Qx/6pEp52dOwGbTb0tJ1Anonv3AkWKAPnzKzMBgB9i+vRAlSpq7Wzfzn9r1lRrJyYGWLECaNVKrR0A+Pdf4NgxNvbVwdSpwK1bwEcf6bFncOsWG3xnygQcOgS88QYbe//0k95xuCsxMVxIrV0LLFvGZuxz5uj/nPz92UB75kwuelSTMyfQoQPtqV4wlC8PlC4NLF6s1g5A0dm6Vf011agBHDkC3GlGr4xq1bgAP3FCrR0nUSeip0/zplHN1q0U0EyZ1NrZtg3Ik0f9Dmr9euD2bT0iOn8+ULgw0KCBelu3bwNjx1K8ihdXb88gJgZ46SXg2jUuTgoWBL79FujVyxJSAIiOThDQJUuA554D2rcHxo3jjnDaNL3j6d8fyJ4dGD1aj72uXTlX7dun1o6PD5/ppUsBu12trRo16Dk7c0a9HRFgxw61dgwdUX09TqJORM+c0TNZbtumx8Vq2PHxUWvnr7/4vlWqpNaOCFfFrVqpvyYAmDKFK1aduxsR7jq3bePkVa4cv+/rawkpQAFt2/ZeATUYOBB4+23grbeA1av1jSl7duC994DvvwfOnVNvr149ICBAzw6xdWseJezapdZO9er8V7WrtVw5vneq7RQuTLd7mhRR1bu2mze5xVctona7PrHevBl49ln1wnbwIHD2LB9s1cTFAV9/DfTsCRQtqt6ewU8/AbNnA999B9Sufe/P0rqQPkpAAd5/48fz+126cPLXRb9+FNNJk9TbSp+erv4lS9TbqlkTyJgR+O8/tXby5gVKlVIvbr6+wNNPq7fj58d54+xZtXacRI2IRkQAwcHqRXTnTv6rWtxOnABCQtTbiYxkoJSu4KXs2fW4cpcs4STcr596WwaHD9Peq68CnTsn/TtpVUiTE1ADPz8uQnx9+R7qCuzIlo3BZz/9xLGqpnVrYPdu9eewGTIATz7pfUE/qt25ALUkTe1EjRWDahE9cYIryZIl1doxbkbDTaKK3bs5UekQ0cWLgaZNuTJWzfTpQK1awOOPq7cFAFFRDBgpXjz53UxaE9KYmJQJqEG+fAwyWrdOX9QsQDf8zZs8t1dN06Z0Fy5dqt6WTnHbsweIjVVrp3x5LpBv31ZrJ82JqHGxqkX07Flu8/381NrZto3+/xw51NrZuhXIkkX9eejly1w96gheOn2aZ2q6IoABYMQILrB+/50pE8mRVoQ0cRRuSgTUoGFDnmV/+imPAXRQrhy9JDNmqLeVIwdQv76ec9GaNflMBAertVOjBj9v1QFTxhyv2tWaJkU0QwZGQqpEx7krQBFVndpi2Klalatilfz1FxceL7yg1g7A9IGAAEZ86uDwYUaWfvCBY4sRbxfSpKJwHWHoUJ6z9emjPrrU4I03gI0bmUahmtatudsOC1Nrx/AyGSlzqqhShXOw6l2vMf+qFrjixemZUP35OIE6ES1WjBOTSnREAEdFcTWnKwJYh1gvXgw88wyQK5daO7GxwA8/AN26cYetGhGgb1/eE0OGOP73OoTUZmPRjs2bgUWLOHED9ELs2qVmh5LSM9BHkTEj83z//ReYNcv1Y0yKNm2YVqZjN9qyJQPgVq5Ua6d4cQb+qBa3jBl5/rp1q1o7BQrQlmoR1bXjdQI1Wx5dO8QzZzg5qOTkSSA+HnjiCbV2rlxhYINqsY6PBzZsAD7+WK0dAPj7byAoiKKkgzlzeG2rVzufN2wIKUAhBRjk4iyRkcA//7BC0qZN3FUlFSyTWPTz5uUE+OyzFLynnnI+WtsVAmrQsCEDjAYN4s5N9SIsY0YuwGbPpndB5bFN8eJAYCDfp5dfVmfHxyehGIJqnnhCfTqNry83TLpE9MwZ9XOxg6gLLFItoqGhrESj2o6u811dZRIPHWL0tI4d75IlQJky6s94Ae4ihg3j7qVx49S9lit2pP/9RwHIn5+Cs3gxULky8MUXXFwcOsQCEMuW8ff//JPR5vPmMTczXTpg5EhWaylXDvjsM/6+IzgaRJQSxo2jd2b8+NS/Vkpo25aFA3SITs2aeoJ+atakO1e1W1zXOWKJEup3iPnzA5kzu+e5qJKKvAEBIl98oeSl77J3L4uJb9mi1s7EiSyKrbpN2JAhIoUKqbUhws4wfn4it2+rtWOzsdD7e++ptWMwYwaLpx844LrXTElj7/tZtUqkZk3em2XKiHz2mcixYw/tV/rIAvSxsezG0aOHSNasbMP3+usiFy4kPw6VDbUHDWLzZx1ty+LjRfLlo03VTJ/O4vuqn43Vq3l/HDmi1s7cubQTEqLWzptvilSurNaGiEhgoMiAAertOIjrd6K3bnGXqPqs0liR6LBTvLj6812dlZcefzxlUaupYccOhr7riACOjeWurX171+56HdmRnjzJpP3nn+ffLV0KHD3K3XHZss65Y9On5+7xxx/p6v/sM+5oy5ZlpGxMTNJ/52wUbkoZNIjnz1995drXTQo/P6BFCz3FEGrU4O5QtQv06ad5P3hT0M+ZM+pr9Rp23AzXK4Mu9+eZM9zeqy5wr+t8d+9euu5Uo0usFy8Gcud+sFKQCmbNosgMH+761zaE9GFF60VY0rByZYrm/PkMvmnRwrULr5w5eW564gQwYAAwahQn47177/291EbhpoS8eVnIYtIkRkyqpnVrNko4dkytnYoVGQCnWtwCAnjMsWePWjvGBkNH+klYGDdQqu1YIupiO8WLqy+Pp0NEQ0L4VaqUWjthYUwB0VURqUUL9Tm8hoi1agVUqKDGhq8vI1Pv35FGRgKdOlFQunUDDhyggKm8JwMCWPRgxw7aqVWLAVWAa4OIkmPgQHoAZs9WZ8OgcWMumFXvRtOl40JWx7loqVLqxS1fPi4KdAb9qLajY8frIK4X0bNn6SrMk8flL/2AHdXiJkI7ulzTqq9nxw5ek2oRPXeOgTM6XLnbtzMFSXUxh/tdu5MnM0F/yRLgjz/4s2zZ1I4hMZUrc7Lv0IG1bY2gKh0CCnCCfuklVqNSPallyUIhNYKwVKKropCOXZWPjx4XqM6CC7dv6/F+OICanWiJEt6xQ7x1i7s3XRHAqsV62zb2bCxfXq2dLVv47zPPqLUDcBIvVgxo0kS9LUNIu3Rhy65jx+i61VVI4n4yZeJ56aef8kz477/pRlctoAa9e9OFvWmTelv16nERGB+v1k6NGsDFi6zqpRJd54g6xDp3bi4gvWXH6yCuF9Hz59V36hDRU2hBp2s6SxaeNalkxw66q3QESZUsqf56wsKA334DXn9dvdvYICqKuZ6ZMwPh4erLqiVHbCzf73TpWMhB53iefZZnezqKIdSoQfe56rKDhpdGdVH1EiV4/6jeVenYiera8RYrxn91tMhzANfPpmFh6mvMXr/OXEdvyRE1XNOqd+8nT6rfhQL6gpdWrKCode2q3hbAxVuXLgm7r4cFG+kicRTu8uWsbzt4sJ6i7QDv165d6T5+WKSwq6halQslHb0rs2Ths6IS3TVnvWHHGxDAf92s9J/rRTQiQn36hLESUb0TPXuW7cJUV2bR4Zo2zndV24mNZTcaXcFLVaokrFBV8/XXLNX366+c1B8VtauapKJwR4yga/nVV/W5vFq14o5qwwa1drJkYWqWahH18dFTPEBnME5kJDcequ2ofs/SpWM94MhItXYcxDNF1Ailzp1brR1vOt+9cYOH8qrt7N/PXYnqikhxcdx96QheAhgoNWQI8L//sc4q8PCoXdU8LArXx4cF//Pk4Q5RR6H4J57gIkZXU2tvCfrJmZPxCd5yjpgrFzMMVJM1KzXGjfBMETXeRNVFzXWcu+qOANYRvJQhA3eIKtm0iQ9t69Zq7QD8jPr04YR0f09N3d1fkktjCQgAvv+eBe5//FHtWAAKd6tWDGhS7TKsUYPn0aGhau14U+Ss8byrtpMli54doiWiLsL4sFTbuXGDofwqCQri9XjL+e6RI6yoo7rZ9/r1CYXaVfPnnxTtqVOTvi4nhHTKlCmoUKECujhynpvSPNAGDbgTff999c2SAVZpuniRfTJV8sQTFOrjx9XaMVyT3nCOmDMn3aA3bqi1o0vcLBF1oQ2AEZKq7ai+FuMcQUfwkr8/HyqV6OzxWqOGele7zQZ88glTaBo1evjvOSikb731Fg4fPoxffv45ZeNwtJDCiBHcsU2ZkrLXTw3G+be3lLEzzhFVN87WcY4I6BGerFmZfhQbq96OV4uozcaHXYeIZsmiPlXDsKMSozNHgQJq7XjT+a7dziILOoKXli9nlaeUlBRU5dp1phJRsWIcw/jx6ie2PHlYgUe1iObIoeccUZcLtGBBxzvzOIMuEQX02PFqEY2K4r+qhUfHDhHgalTXrlp1tRud57uqRfTECZ6H6hDR6dMZiZvSGsCuFtLUlPLr14/HBbqKt+uKnPWWYBxdgqDjvDINi6hrm3IbF6dDeHSIqDcFSV2+zKovKrl2jQsp1SJqFBSoWlWtnaAg5qJOnerY37mqsXdiAXWmElGlSqytO2sW0K6d4/YdoWpVYMECLqRUejt05SNmy6a+alHWrPQSxMfz3FKlHW/ZiWbJotTGrVu38OmnnyI+Ph4nT57Eyy+/jE6dOmHQoEEQEdy6dQsfffQRKiSq022J6MMQ0bMTjYxk+TYdrmnVu11d57tnztC1pzp/d9ky3gcvveT436ZWSF1VTL5dOxZhUP3MlCrFMV+7pvZookQJPTV0s2XTIwgA7RiFBFSgU0R17HiDgpS8dGxsLPr27YuvvvoKhQoVwrlz51CiRAksXrwYX3/9NU6cOIHmzZsjZ86cmDx58t2/c+3M7U0iGhXFCdQbrkWXnQsX+O9jj6m1oyt4acUKuimdjdB21rXrym4sLVrw9davd/41UoIuF2jRogn3mUq8afem41oSLwhUovBapk2bhp49e6JQoUIAgEyZMkFEULx4cZQoUQI2mw1lypRBx44d7/k7S0QfZQPwnvNdHXaMdAp/f7V2dJzvAsDWrUDduql7DUeF1NXtzMqUYSrQ1q2pe53k0BWMkz07F7g2m1o7log6bgPQY0fRbjdnzpxokqiRxc6dOwEATZs2BQA0a9YMhw8fRp06de75O8ud+ygbgHdci4i+9yxjRvXF4M+fB+7c2MoICuKOp3r11L9WSl27KvqB+vhwN626oLqRPqW6OHhit2H27OrsKD57A6DXBaq60L0XLAi63pezvW7dOvj5+aFuMgtpzxVR1R1CvElEo6O9yzWto8mBUYC8XDnXvF5yQhobq66hdtmyeiJ0AwJYR1cliSdrlSJq7d4ctwF4tIjez9q1a1G1alVkT+Y+80x3bmSkejerrqpIOis8Wa7plKMiSOpRrt2hQ9U11C5RgjtE1bV0vS2AxZtEVLWNjBl5f3vD5wJG6e7btw8NGjS45/vffffdA7/rWhE13kBvqCSkc0HgLdfiTSIaEsK0A1fvdu4XUmOHuHu3GgEFGMUcF5eQx60KS3gctwF4x7X4+Oh7z4y0IBcSHByM6tWr49NPPwUArFy5Ena7HdUTHecEBwfjv//+e+BvHXLnigjCH+WuuXKFxcc3b3bkZR3n+nXWgty4UZ0NI3F8/361+WIXLjCcXuW1GOdUJ06oXeCcPMmAD5XXEh/Pr/Pn1do5cICraxfbiI2LQ2xsLNC6NTKePInIr74CAIQ1bcrd78yZLrUHgPmbAPDll+yXqYrt29VXkjKaco8ZA9Svr87O3Ln8V8XnYWD0YP38c7UlBn/6ibWNVV4LQFf+qFFq3ey//cZ///sv2SYX2bNnh08Kc5Y3bNiAHTt24IUXXkBUVBR+//13FCpUCLfvBEtGRETg7bffxpgxYx74Wx+RlFdZDgsLQ4DKfCYLCwsLCwsXEBoaCv8UZgqEh4fjf//7HzJkyIDbt2/jgw8+QFhYGD788EMUK1YMsbGxGDx4MJ544okH/tYhEU1uJxo1ZQoyf/ghbi9dimwOpDl06do15YW4AaBnT6wOCsJzDiZdO2IncutWZBkyBBEzZiCrA8ElDl/L0KHYu2MHqqxalfK/cdROUBDQvj3eA/DJ8uXIlkJXqMPXMmUKLs+fj0Jr16b8b5ywIw0bYoLNhjdUXsuiRbBNmAC/9esdqsCTnJ3YuDjEhocj06hR8Nu3D1datEDgwoU4DyCgR48Ulxf8aNgwjBoxImWD2raN7dGmTAHSp0/Z3zhqA4Bt5Ej8e/48np40CVkyZVJj5/Rp4IsvMClXLrz9xRdqbACInzYNJ3bvRjGV1xIWBrz3Hn7JkQNdxo5VYwNA3Lx5CF29GllUXgsA9OuHZRkyoPn48Sn/GwftxKxbh4xz5yJs9274lyr1yN91ZCeaKsSFRPzwgwggoRcuOPR3gYGBjhmqVUsWBAQ49jcO2glft04EkPCNG5XZEBGRLl1kR+bMjv2No3Zu3BABpA0goaGhamyIiHz8sVxJl86xv3HCjj0gQN5TfS2//y4CiNy86dCfJWsnKkrkhRdEMmUS+ftvubR8uQCQ602bivj4iPz4o2vsJGbCBIn08RGx21P+N47aEJH48uVlgoOfi8N2Vq8WAaRxqVLqbIhIbLNmskT1tZw+LQLIq0WLqrMhItF9+shB1ddit4v4+MjHBQo4ZMNRO5Fjx0qUE9eiEtcGFt3ZFfg4GKH11ltvOWzn8ZIlHfsbR+0Y1+JgMIYz11I0Tx7H/sZRO3euxdFQHGeuJYcDOx1n7UjWrOqvxcniAY+084g80Jh+/RyqbOTQ9Zw5g6j8+R2uaevoe+YTGQlnwkocsnMncKXj66+rswHAJyJC27U0c7CusVtey500urrPP6/UjrPXohRXKvLtpUtFAAnbvduVL/sgrVtzNa+QsIMHRQC5vWCBUjsycKBI+fJqbdjtYvfzkzdVr+AmTxbJkEHd698hPjBQJqq+lps3uRP95RfXvN59O1ADYyd6aflyEZtN5I03HNqRpojnnhNp2dJ1r5cUdrvY/f1lkOrP5ddf+bncvq3OhojEVasm36m+lm3beC379qmzISKx7drJWtXXEhzMa1m4UJ0NEYkePFjOefNONP2dBPiMXlCSK8Od5tUZ4uKU2tFSGeVO+PlLzz2HjBkzqrOjKPz8AYoVw/Nly6q9lpw5gdKlXdPe6xE70AwZMiT8q6IfqdF71RWVlx7FrVvwCQvD0+3aqf1cjGdFcRqdb1QUKlWvrudaFKdr+cbEoHCZMnquRXEuul9MDDLnyaP2WhzEpRWLMtwRUeXCo0FEM94R0fRe0qndJ0sWNKlTh2kbqjCCyUJC2KhZEX6lSqHcxYtqrwVgG7HUprgkU8ovwx33t/Gvy9qoGRw4AISGprwfqrPccXu3HzxY7ecSGsqUMMVdj3wjI1GjZUu116JJRP2iolD2ySe94lrSRUcjb7Fi6p99B1ByJurpPeUAsD2Zj493JEIbdlRXEylalP+qrp9aogRzKlMeWO4czZuzd6mz1xMT41wpP1fuSJcsYd5eagvpJ4euNnhnzybcZyrxpoIuERF6qpUB3lPQxQE8U0R1CIJRgUNHGauYGPVdKbJlY0i9SowJ1JhQVVGyJDvGXLum1k7TpiweMm+e438bEwO0aeN8KT9XCKkIx/7CC7wOlZw8SbHOnVutnbNn1Qu1CO8v1f13valTlCWiLsKbyljpsqPrPStSRH0fxly5OJGqbof15JP8906rImUEBFAIZ850bNcbHZ06ATVIrZBu3Up3bs+eztl3hB07+LmozsvT0Uv25k0unosUUWtHV9cjS0SV4loRNQ77LRF1zAaQ0ItTFSVKqBc3Hx+mhqi2U6wYG2W7IugnOd58Ezh+nA26U4Kr25mlRkgnTuTnrqIe7/1s26a23B/AhYyOXrLG/atarL2p1rTOhh2qd+4O4tpWaL6++vrwRUUx8lBlgIEOES1YkP9eugTc6aiuhMTniCp3C7rEukYNPSJarx6Dcj79FGjW7NHvnYp+oIBzwUaHDgF//AFMm6Y8CAeXLrE2q2oRDQ7mZK1a3HSJ6MWLap95A507UW9wTTuI65+uRMJz/PhxtG7dGnny5IG/vz/q1KmDdevWucYGoL3tzrJly1CjRg1kzpwZefLkQZs2bVJvQ9c5YokSfL8SFbqOiYlBlSpV4OPjg71797rOjmoRBYCaNWHfuhWv9+yJEiVKIHPmzChVqhSGDx/OAu+uwscH+Owzpon88cfDf0+VgBo4siMVAd57jzv21ET2ppAFgwcDAMp164Z8+fLhxRdfxLFjx1xvSJe4nTkD+Pvj82nT4OPjg3feeUeNHQ3nu5cuXoT99m28+/HHyJIlC6pUqYJdu3a53lBEBEtKOlFsJSXEx8dj6NChOHPwICbMmIGSJUvis88+g111e78U4HoRzZLlrrg1b94c8fHxWLt2LXbt2oUqVaqgRYsWuHr1aups6DpHzJsXuDPW+fPno2vXrujZsyf27duHzZs3o1OnTqm3kTOnnnPEJCrwDB48GIVcvRKuVInuT9WfTaNG8A0PR8lr1zB9+nQcOnQIEyZMwLRp0/Dhhx+63BZeegl45x2mWNyPE1G4U6ZMQYUKFdCla9eUjyOlQjp/PrByJd25qgOKAGTZsAGhBQpgwfbtWL16NeLj49GkSRNEuPoe2LuX54euapT+MM6eRWS+fJgxc2aSBcddhmLX9K1bt9CyVi34iuDNYcNw+PBhfPXVV8ihoqG94h3imDFjMG3aNBQICEDPfv0wduxYfPnll/jmm2+U2UwxLi/fUKGCyIABEhwcLABkY6Las2FhYQJA/vnnn9TZ+OcfVsc4dSqVg02Gt98WCQyUuLg4KVy4sHz33Xdq7DzxhMibb6p5bYNbt/iezZ0rIiLLly+X8uXLy6FDhwSA7NmzxzV29u+nnfXrXfN6D8NmE8mfX+S99+759tixY6VEiRKut3f+vEj27CKvvHJvDdro6CQrEaWU0A0bBICEbtiQ8j96VGWjixdF8uQRefFFh8fiFPHxIvnyiQwadPdbQUFBAkA2OHJNKaFHD5Enn3TtayZB3HPPyeqsWWX16tVSv359GTBggOuN2O0iWbKIjB/v+te+w5AhQ6RX5cp8HnftUmZHREQ+/likcGFlL9+8eXN59dVXRXLkEBk7VkRE2rRpI126dFFmM6Uoc+fmzp0bgYGBmD17NiIiIhAfH4/p06cjf/78qFq1aupsGGH0KnvwAXfPEXfv2oVLly7B19cXTz75JAoWLIhmzZrh0KFDrrOjeieaIwe/zp7FtWvX0KtXL/z888/I4uozjAoVmBqg+rzS1xdo2RJYvPieyNnQ0FDkypXL9fYeewyYMYP9DGfM4PdcFYXrKA/bkcbGAp06cfepunekwfbt7BLUqtXdb4Xe2a27/HPQEbwEIGjbNqQvWxaNGzdWaCRI+fnukiVLUOdO/9gyTZrgySefxExV98X164zOV0TdunWxZs0ayJ0d7759+/Dvv//ihRdeUGYzxbhclhs0EOnYUURELl68KFWrVhUfHx/x8/OTQoUKuWbHY+yqfvst9a/1KBYtEgFkwbffCgApWrSo/Pnnn7Jz507p2LGj5M6dW27cuJF6O++8I1KuXOpfJzmefFLsvXpJ06ZNZcSIESIicubMGdfuREV4D7Rp47rXexh3ajXLoUMiInLy5Enx9/eXmTNnqrPZt6+In5/IkiWp2oEaOLUTNUi8I/3hB5Fu3Vi72MHOQ6liyBDufOPjRUTEbrdLy5YtpW7duq61ExLi+prCSTB3zhyJ9vGR2HHjRETU7US3buW9u3ev61/7DhkzZpQP/fwkMmNG2b17t0ybNk0yZcoks2bNcr2xZs1EWrVy/evewW63y4eDBokA0tPXV3x8fGT06NHK7DmCwyI6fPhwAfDQrwWAhNSsKXa7XVq1aiXNmjWTf//9V3bt2iV9+vSRwoULy+XLl1M/8oAAkc8/T9VLJHctT3CPIys/+UQAyPTp0+/+bXR0tOTJk0emTZuWygsRkYkTRTJm5KSo6FoAyI3GjeViyZJSu3Ztib8z6SkR0SFDUuXaScm17Nixg0Xdc+YUGTxYLl26JKVLl5bXXnvNddeRFHFxnDD8/ChYqRBQkVSKqAjvmV69OCEDLNCui7g4kUKFRHr3vvutvn37SrFixeSCg+0Qk+VOCzQ5fNi1r5uI8+fPy9O5ctHO8uUiolBE586lnZAQ17/2HdKnTy8L8ucXqVLl7vf69+8vNWvWdL2x8uV5/KWIuXPnSuWCBUUAOfv11zJ79mzJlSuX/PTTT8psphSHU1z69euHV1555aE/zzd6NLJv24a1a9fir7/+wq1bt+52F586dSpWr16NWbNm4f3333fU9L24wAWa3LX43r4NPP00itypBVyhQoW7P8uYMSNKliyJ8+fPp2oMABhcEBPDICYnA32SuxYAyL5oEbKuW4edZ848UMC5WrVq6Ny5M2bNmuWU/XuoUQMYM4apD3fcSY6QkmspXrw4SzN26wbb99+jycKFqFWrFmYYrlZVxMezupSRKqS6TnRy2GxM9TKIidFne9ky4PJloHdvAED//v2xZMkSbNy4EUVcXahg2zYWv1AYVLRr1y6UvnkTAJC/RQvc8PGBzWbDxo0bMXnyZMTExMDPVYURzpxhUGFAgGteLwkKFiyIMjbbPS7jwMBAzJ8/37WGRJRHGg8aNAgTOncGxo1Dsfr10bVKFZw7dw6ff/45unfvrsxuSnBYRPPkyYM8jyouXrUq8McfiLxTPMD3vhw1X19f14Qlu0BEk70WAMiVC6V8fZExY0YcO3YMde/UII2Li8PZs2dRrFixVI0BQMLNd+aM0yKaomupWxew2XDojz8QHRgIALh8+TKef/55/P7776jhqvMmo9j5unVAly4O/3mKruUO11q3Rv6JE9GrXDn0+/HHB+43l2JE4W7cyDPQmTN5Lvv558CgQeqr9dzP9evAyy8DmzYBP/zACkWuKFqfUqZPB55+GlKlCvr364eFCxdi/fr1KKFiMl23DqhZU2nOa6NGjVC3c2fEbNyINcuXAwB69uyJ8uXLY8iQIa4TUEBL5aU6derAf9GieyKAjx8/7po5KzFXrzI+QOH1REZGIuDOAsew4+fn5xYpLq4/E128WASQ6wcOSO7cuaVNmzayd+9eOXbsmLz33nuSPn162euKc4CBA0XKlEn96yRH1aoir78uAwYMkMKFC8uqVavk6NGj8tprr0m+fPnk5s2bqbcRHk7Xzs8/p/61HkVEhEi6dCLffnv3W0rcuSIiTz8t0r69a1/zPgwX7v6AAImuXVuuXLly98vlJBWFGx8v8uGH/OyaNhVxwoXptDv3r79EChYUyZtXxPhbVf1Ik+LMGdr57jvp06ePBAQEyPr16+/5DCIjI11j69Yt3reTJ7vm9R5FjRoinTrd/V9l7tzGjUXatnX96yZi+9atEg3IqhYt5MSJEzJnzhzJkiWL/OKqHrkG//2nvC9q9+7dZbS/v8RkyyZnzpyRBQsWSJ48eWTw4MHKbKYU14uokeKwebPs2LFDmjRpIrly5ZLs2bNLzZo1Zfmds4ZU8803PJNKxTliimjbVqRRI4mNjZV3331X8uXLJ9mzZ5fGjRvLwYMHXWcnb16R4cNd93oP46mnmCpwB2UiOnIkU0Kio137uon48ccfBYC0u3MeWDPRmalLeUhD7bssW0ZB8/cX+fJLh67ZYRE9fVrk5Zf5jDVrxpSWxNhsPKNULaS9ezOg6Pbth55b/+gq+8b54fnzrnm9hxEdzTll4sS731ImosWL35MWpISLF0UA6Vu0qGTMmFHKly8vM2bMcL2dOXP4+ShslB0WFiabK1WSA+nTS6ZMmaRkyZLy0UcfSUxMjDKbKcX1IhoWxjfU1aud+zEiM10dwHA/770nUqqUWhsiIs8/z4laNX36iAQGqrdjLKZWrlRvy2YTqVRJ5LnnXP/ayQmowc2bCZG7xYqJfP01n4VkSLGIHjnCAKIMGRjMM2vWvfmqiVG9Iz1zhjvDO/l6ynnlFS35obJtG+/ZrVvV2gkKuidnWxmbNtGOKxf7STFypEiuXGptiPD51hH17yCuP2Aw2iGpzntMfI6o2s758+pbldWsyeAJ1T0ya9QAjhxh42yVVKrE927JErV2AJ6TDR8OrF4NbN7sutd1pJRfzpzAlCnsmlK3LvDuuwyq6tGD1YOcKVF56RLPHevVAwIDgaVLWcP3+HGgW7eHn8G6sh9pUowaxZzAvn1d+7pJERvL4v+tW6u3tXUrc2yrVFFrZ/t2/qs659UoJaqjYL/qUow67TiIawvQG+goHmDcGGfPAs88o85OiRKMwLx0SW0z4Bo1OEGePg2UKqXOTs2a/HfHDrXFAXx8mIA/fz4webL6oJs2bYAnngCGDqXopdaesw21AwOBX34BRo9msM+vvwKzZnFyrlkTqFyZBSkKF2ZZyePH+Xd797I/6unTLB6/fTtw7BgF8bnngNmzGUR0X1T1Q3GmaH1KOHmSovzFF3oKgW/cyFKLiYo5KGPbNrZzS+l77Cxbt7ILkQ5xy5tX/eeko8erzQacO+eWIup6d64IA0oaNlTy0veQL5/Ip5+qtXH4MF0i69aptXP9uh43uM3G0lmffKLWjgjfM4CBBzpYscI1brJUlvK7B7ud7rSJE0XatWM+nZ/f3bzO0Dvnh6FGnmf27CI1a7IM5B9/iAQHp86+K127drtIkyZ0V0dEpO61Usobb4gULfpw17WrsNtFSpRQmut4l+eeE2nZUr2dnj1FqldXb6dkSfXnuxcu8Pn46y+1dpxAjYgOHswbUjXVq98TJKOE2FhOpgprXN6ldGmR/v3V22nXTs/DZbMxgEL1Z5SYtm1FChRwPondlQL6MOLi5IfRo6V1iRLSP39+iugvvzAKVYVYuEpIf/+dE9nSpS4b2iMJCxPJlo11WVVjLJZVX5vNxkIxI0eqtSMiUrmyiOriI/HxPB+fMkWtnY0b76lO5k6oSboqXpzniPHxSl7+LjrcxunTA089pad3pXEuqprWrekuvHxZrR1fX57L/f67+jNYg6+/ZoPzoUMd/1tdtXDTpUPPDz7AotOnMdJor/bYY6xtrMLtbbh233jD+TPSsDB2sXnxRaBFCxcP8CHMncuz5NdeU29r8WJ2oGrUSK2dY8fonlZ9HhoRwfN51XYuXuQ8r6vHq2oXuBOoEdESJejDvnhRycvfY0dH70pdDaBr1ODZmOqqMy+8wJZSf/2l1g7ASTsuDvj5Z/W2AKBIEfb/nDKF52kpRXU/ULPx9QWmTnU+2Ojddzn5T5yoZHhJMn06G6GrjEUwWLIEaNIEyJxZrZ1t27hQevpptXZ27WIlK9UiqrPHa/786pt+O4E6EQX0RM5evKi+9FqNGjw8DwpSbyc2lkKqkly5GEG6eLFaOwBQoAB3vtOnq488Nnj7bUa0duzIqj7J4e0CauBs1O5vvwHffQdMmqRH0ABg505g9+67JQWVcu0ag310RABv2waUL6+03N9dO1mzAhUrqrWjMwLYDXehgCoRNcpKGW+wKsqW5Wrr2DG1doyIVtW70cqVGRmoy6W7Zg1dn6rp3ZsRp1u2qLcFcJc9Zw4XJD163Ftb9n6cjcL1VBwV0pMn6Qbu2DEhylcHM2bQq9CsmXpbf/3F3WHz5uptaWrnhm3bgGrV+Cyo5NAhLqwyZVJrR0cEsJOoEdFMmVgDVvVOtGpV3vyqRadoUboSVNvJkIEh9lu3qrUDMGUgJgb4+2/1tho1YtqOTldg4cJMLVm2DBg3LunfiYkxpx+o2aRUSKOigA4deO9Pm6avNvD160wNev11IJ2aLLx7WLKE9Z7z5lVrJzIS2L9fj4hu3apPrKtXV2/HTXNEAVUiCnDrrVpEs2enu0K1uPn46DsXfeYZFttWXVi5VCm+d7qKIQweDMybx5WrLl54AfjgA+D994EFC+79mVkNtd2F5ITUZgM6d2Zhjt9/B+50YtLCl1/ymXvrLfW2IiNZpENHHuqGDXxf7zSxUMalS/xSLaLx8Tx7VW0nLo7HdmlORHUF/eiKaK1RgxGtqsWtZUt2RdixQ60dgBPHX3+pj6IG6FYtWpQFJXQyciSLFHTuDPz3H7+XVs5Ak+NhUbsiwMCBPDP/7TdGp+siKIjFOd5+G0hhJ59U8c8/3HHrOA9dsoTzoupzSmM+NI6hVHHwIBchqu2cP895N02diQLc6Zw4oaeM3cGD6s/2atRgmP/Ro2rt1K7Nsok6dojt2wM3btDlqZoMGZh2Mm8eQ+914etLcahenQuU/fstAU1MUlG7EyYwiGjyZD07tMR8+SXP8d59V4+9n35ipauyZdXaEeH91rq1erf4tm08T3ayraJDdvz81C+yTpzgvyVLqrXjJOpE9KmnuKq8cEGZCQAUN7ud0XwqefppPeevfn7Mw9MROfvkkww+mD5dvS0A6N6dK3Hdu9FMmYCFC3m2V706dx+WgCaQ2LXbsycFbMgQoE8fveO4do2pSQMGMIJcNZcv8z544w31tnbtoj0dixJd56Fbt3IBojrtZMcO5lCnOXeu8SGqFp0KFYBs2dTb8fenLR2u41ateHZ46pR6W717s0D6uXPqbaVPz93o/PnAvn3q7SUma1auzGNjmQuoOojE0/D1vTd9pVw5/WP48kveIwMH6rH344+MhneicbzDLFlCIVB9Hhofzw2FrqAinXYUNmRPDepGVaAAU11UR5r6+XE3petcVIedJk34cC9dqt7WK69wEfLdd+ptAUDXrkDp0tzt6MobNaJwN2+mO7lMGeDZZ/VEQXsCIsBHH3GB88kn3JG+9prru788ipMn6T7+3//YEUc1Nhswcybvf9U5mwBFtHlzLhJUcugQzylVi1toKI+2VNsR0bezdhalRQVfflmkTh2lJkRE5P332WNRNTNmsHi4s3VZHeGFF0QaNFBvR4Q9RgsWZJ1gHRiF4ufMUW8rqX6gISG8LzNlUl/w/yFMnjxZAgMDpWXRoo415XY1t2+LdOjAz+PLL/k91f1I78cobF+8uL7C9suX85q3bVNv68wZ2vr9d/W2pkzhHHX7tlo7q1fzmo4cUWvn5EnaWbZMrZ1UoFZEv/qKE5XqyXnhQj0Nus+d0/cwTJ/Oh+HGDfW29u7ldS1YoN6WQbt2Ivnzs+i6Kh7VUDsqSqR7d173wIEicXHqxvEIUtyUWwVnzrBIedasIvPm3fsznUL622/6O3S0bs1rV90dRkRk0iSR9OlFQkPV22rWTOTZZ9XbGTmShfRtNrV25szhvZHabkYKUSui//7LN2DXLqVm5PJl2vnzT7V2RESqVBHp1Em9nUuXeE0//6zelohIjRoizz+vx5aIyMWL7NDRt6+a13+UgBrY7SJff83FSuPGvI80Y5qIrlghkjs3uy3t35/07+gQ0pAQekHatFHz+klx8SI/86lT9dhr1Ig7bdWEh4tkyCAyYYJ6Wy1bsqWbat5+W6RUKfV2UoHak9qnnmLFEdXniAULsguGrqCf5cvV1+stVIgRwTpSXQAGGP39N5tC66BwYWDECEaFujonNqV5oD4+jAT9+2+m3VSsyEo5us5qzSA8nNGozZoxlmDHDuDxx5P+XWdr7TrCsGFMHfv6a9e/9sP4/ntGbHfurN5WSAiLLOiIyl21ioFzqm2J6A0qUp2HmlqUy3TVqnSbqaZdO5FnnlFvZ9cu7hDXrFFva9Qo7tbCw9XbiogQyZNHpHdv9bYM4uK4s69SRSQmxjWvmZIdaFJcvy7yyiv8bNu2Fbl2zTXjSQatO9E1a9hQO2tWkWnTUu7KVLUj3bpVxNeXxz66CA/nfd6njx57s2bxnjp/Xr2tbt1EKlVSb+f0aT29V6OjubOeNEmtnVSiXkT79hUpV065GfnyS5EsWdSfbdntIoULiwwYoNaOCM9gfX1FZs5Ub0tEZOxYnt2cPavHnojIzp20OXBg6l/LWQFNzLx5nGQDAvh+REWlflyPQIuInjol0r49J7769TkJOoqrhTQkhK7k6tX1nkd//jknZh2iJsIAtkaN1NuJi6N7/sMP1duaO5f3UlCQWjtbt+oL/koF6kXUWIndvKnWzqZNtLNnj1o7IlzFliihJyiheXORatXU2xFhRF++fCK9eumxZzBhQupXtq4QUIPgYJG33uK5WfHiDHxR9FkrFdGbN0XefZeiUbiwyE8/pS4QxFVCarfTcxQQ4JygO0toqEiuXOrO4e/n4EHe13/8od7Whg36BOedd0RKllRvZ+JE3rvR0eptpQL1Inr0KD/cVavU2omMFMmcWWTMGLV2RERWruQ1PSwgw5UsWaInOMtg3DiRdOn0Tm52OwMVcuVyLsLalQKamCNHOC5A5PHHKUKucjvfQYmIXrggMmiQiL8/Xbeffea61BFXCOm33/I9vT8iWDUjR3JSVh3Fb9C/PxelLr5nkuTdd0UKFFAfLSsiUqGCSI8e6u106sSARzdHvYjabCI5c/JBVk3r1nryUqOjeVY5cqR6W3Fx3EW88YZ6WyKcbPPlE3n1VT32DK5fFylSRKRuXcfce4kFVNVCbcMGegQA5iN/8YXLXFkuE1G7na7xrl25CAoIEBk8WE3EcWqEdN8+kYwZ9Z1JGoSEcB7q10+PvYgIfgbvv6/elt0uUrq0Hg/SiRP60uFKldJzbJZK1IuoCFMnmjdXb+f77/lgq/bVi9Ad9fTT6u2IiAwfTtEOC9Nj76uv6Mo8eVKPPYNNm2g3pec6qnagD+PQIZHXX+duxs+POXk//5yqwK9Ui+iJE1ygli/Pya1oUbrHVd8rzghpWBjH+cQTys+aH+Czzyjely7psffjj/w8Tp1Sb+vwYX15tuPH831UHewYHMxr+vVXtXZcgB4R/fhjBmuoPkO8do0P9Q8/qLUjIjJ7Nj9kHQ/lhQsMMJo2Tb0tEa6i8+fX47K5n88/5/s6a9ajf0+3gCYmOFiujxghx/LnFwEkApDVWbLI8uefl9hduxy6zx0W0YgIXu+QIYx8B7jA6taNxww6g3QcEdLYWC6m/f3VV7m5n1u3RHLkYM6hLmrV0pMbKkLPSJYsPNJSTf36ejZEy5bpW4SkEj0iqvMNqV1b5MUX1du5cYO7kenT1dsS4dnck0/qCWYS4W7Gz0//hGe3i7z2Gl2SDxNHMwX0DitWrJAePXrIhtmz5frgwRL0+OMSxQw6usNffFFk6FBWtzp06KFVux4pordusWDJtGl0Qz7zDHfBABc5nTox6ElXqbykSImQ2u0iPXvyM/3nH63DExF+Dpky6SumsX8/P6P58/XYq1VL5KWX1Nu5fl3fnKdr4+UC9IiosTXXUSt1zBi9q7JmzdTbEaGrBhDZvl2Pvagonkk8+6z+Gzk2VqRpU5Hs2VmS8P5xmSygD2P8qFHSuUABkQ8+YDWXggX5mQEUmTx5xBYYKHHPPCOxrVtLbPv2cr1BA4poo0YirVqJ1KzJyMds2RL+1s9PJDCQaSqTJjHq050ml+SE9JNPeB2zZ2sfmhw/zoWHjtQPg7feYpCPjlrUV6/qq3FseN90LEaaNNGz43UBekRURKRMGZE331Rv58gRPYnAIiKTJ3OC03FTxceLPPYYd2m6MArFm1GkPSyMO+9ChRJy+txYQEVEPvroI6lateq937x+nYFJM2eKjBolW2rUkDmArAJkDSBrAYrok09y0ujZk67ar77iedC+fW4f4i8iDxfS77/nPTRqlP4x2e1czJQooW+3fvs2Xda6RHvcOC4Srl9Xb6tdO+b1qiY2lu/hiBHqbbkAfSL69tuMvlS9grbbKdivv67WjgjdbZkz64nSFWFwRJYsegKnDF5+me5J1Xm+SXH5MivsVKzIc2HVUbip4OTJk+Lv7y8zkymMER0dLaGhoXe/Li1fbm4XF1dyv5D+9RcXmW+8Yc7O2SgKoLMDyLff8vrPnFFvy24XKVtWpGNH9bZ0ZiSsWaM3rS+V6BNRnW/Me+/xzEhHzlSPHpzo4+PV2woO5o08eLB6WwaXLtGtqjslweDwYZG8eXndGTMq34EOHz5ccGd3+LCvHTt23PM3ly5dktKlS8trTngJTO3iogJDSA039IsvmtMh59YtulTbttVnMzqa3qJXXtFjb+1avs/r16u3ZXilDhxQb0vXhstF6GsV/swz7Oyuo6B6q1bAtWuuL2yeFL17A+fOsYi5avLkAfr3Z/PioCD19gAWwh85Epg2Ddi+XY/NxJQoAQQGArdv8/rLl1dqrl+/fjhy5MgjvypVqnT39y9fvoxnn30WtWrVwowZM5SOzSPw9eWz7uPDxtfNm7MJhW6GDuU9o7Ow/Q8/ABcvAh9/rMfe9Ol8HurVU29ryRI+ixUrqrUjQlutWvEe8gS0SnanTiw2rpr4eNaR/OAD9bbsdua96YgIFuHZR/bs3G3rIi5O5KmneEapc1eR+Az0p5+44y9WzG3C3i9evChlypSRV155ReKd9ER43U505ky6M7t355GKrqCXxOzYQbvjx+uzGR3N3ZOONokiTOdLn17PNRr1wt95R72tffv0VLhzIXpF1Gi+e+6celvdu/MsTQdGN3ldidwffcSz2KtX9dgTYVSwj4+eXoUiSQcRnT/P8+5ChfSn3tyH4cJt2LChXLx4Ua5cuXL3yxG8SkQnTuTz3bcv3bo6G3sbxMUxf7ZyZb0LvsmTmct99Kgee2PG8Hjjxg31tnbu5Oe6dq16WyNGcJPgCcF0d9AroiEhXD1Nnqze1vz5/OB1VN0JCWHAj47ShiJ8cPz9XdP5xBH696eoqT4XeVQU7pUrbPeUK5fI6tVqx/EIfvzxx4eemTqCV4hoXBzvRYAeksRnWbqFdNgwitnWreptGURFcWHXtaseezYb08+6dNFjb9gwFqvQkbJTrRpTuTwIvSIqwpBzHR3Rw8O5UtPl0nntNQYV6AgwEmEycubMFBVdREayEHuFCgzlV0F0dPJpLDdvMo/M15efr4cEICSFx4vo9esijRvTE/P110l/FrqEdM0a2tCdGjFpEq//+HE99lav5oJl0yY99ipXFuncWb2dixfNS6lLBfpF9JtvuBsNCVFv64UXWM1DB9u366tfKcLow4AAPecUiTl8mLtuFQXqUyKgBvHx7FQCcAego7iGAjxaRPfvZw5m7tzJN6lXLaRXrzIat1EjfQtZEd53BQvy+EgX7dtzIatj8Xj8OJ+x339Xb+vbb7kY0eGidiH6RfTcOX0fyu+/09bBg+pt2e0MvGnZUr0tg08+0VvOzMAoru3KFaOzhRTmzOHfVKumr9GyC/FYEf3zT7ZZe+KJlLfNUyWkNhs9E/ny6fXMiHD3rbNZw9WrLJ84caIee4MGsfuNjkVqs2askOZh6BdREUbo6ohii4nhg6Wr8PS0aXQx6upXGBLCs4r+/fXYM7DbeR6TLZtrXFiprUS0axe7l+TOracBsgvxOBEND2fgEMBCHI669VUIqdG0QHdEZ0QEd789e+qz+fnnfE50FD+Jjmb9Wh3tyMLDWXlJV+CiCzFHRD/+WN9B9ZAhtKVjJRUWxtX58OHqbRmMHEn3+OHD+myK8FrLlOHuOzWRdK4q5RcUxMR6QKRDBz1l0FyAR4noxo2s65slC49lnHUnulJIN2/mTlBHOtv9fPwxnz1dKVc2G99/Xa5jo+KTjrnlzz89pmvL/Zgjort28Q1L7hzFFZw8SVs//aTelghX6XnyqO+3Z2AUim/QQH+AzZ49XD2+9ZZzf+/IGWhKsNtZbzZnTlasWrw49a+pGI8Q0chIkf/9j6JXpw57mKYWVwjp9ev0QNSurb8q0rFjvPeHDtVn00gR3LZNj71nn2XnIB1068aoew/EHBG125mYrKtr+XPP6QswOn+eD9fnn+uxJ0I3llldMqZOpW1H05ZcLaCJuXxZpEULjqt7d5ZLdDMmT54sgYGB0rJoUfcW0X//FSlXjpHu48a5NmgnNUIaFSVSty5d+DryzhNjtzOAqWRJfQFt8fHs5KOra9SxY/oiZePimLKms9OOCzFHREW4YytRQs/uyXAV7N+v3pYIry1XLpHQUD32RFivM29ecyLb3nmHZ8GLFqXs91UKqIHdzok5IIBfY8dy4nUz3HYneuoUo0ABdu5Q5dJzRkhtNo4tUyaR//5TM65HMWcO35cVK/TZ/PVXvbvQd9/lAkXHM7Nhg95rczHmiejKlfqELTaWAQDOuh0d5cIF7kZ1dXcR4e7L31+kd299Ng1sNp5HZs6cfJK77nZmQUH83P38RIoXp0vMjfJK3U5Eb97kBJohA0u9/fST+kYONhvv25QK6cCB/N0FC9SOKylu3eJRgc6CAPHxIuXL6+uvGRVFAdVVzGXgQM7POhqGKMA8EY2OZnknXYnRH35IkdHVV7BfP57N6ciHNfjmGy5MzFidR0bybCpPnoefmZnZD/TIEaYfAWx8/e+/eu0/BLcR0ehopk3kysXguM8+0/esiKR8R2qUFpw0SdvQ7qFvX0alX7yoz+Yvv/Ca7+sepAxjp62jhKHdLlK6tEivXuptKcI8ERVhmkvZsnp2BqdP8wH94Qf1tkRYRzdjRn2lAEW4YjWjbqjB9ev8PEuVerDnqbs01F67lhHFAM/UFi0ydQVsuojeuMGG2QUK0CXfq5f+vGOD5IR0/nz+7N13tQ9NROhu9PFhbqgu4uIYBa8z/7xePZH69fXY2rzZ4wrO34+5Irp+vb7CxiIizz8vUqOGHlsizE/NkYMuIF2Y0cEiMadPMze3Ro2EnYyOM1BHsNkonnXr8v4rW5bVUkyoemSaiJ48SW9Jliz8XHr31lc8/VE8TEg3b+Y4X37ZnEVPXBwXX7o7Gc2axXt050499g4fpr1ff9Vjr3t3xsZ4qCtXxGwRtdvp69fVxHbBAt4ge/fqsXf5Mh/8Tz7RY8+gXz+65Myq4LNjByfnpk25gHAnAb2frVt5vuXrS1f0Rx9pFROtIhobK7J8Oc+vjesdPpxttdyJ+4V01y66mZ95xrzgsIkTOR6dwS9xcXR1tmqlz+Y77/C+0NFF5eZNzgujR6u3pRBzRVSEO6b06R90/6kgNpZ1Lvv0UW/L4J13eBaro8KIQUgI3XNNm5q3wlu9moFGuXPTre2OApqYU6dY+cnfnwutqlVFvvpK+dmXchG127mLe+stRm8DTJWYNs296w0bQgrwPnr6ab3PUGKOH+c56Jtv6rVrlNfcvVuPvchIxnHo6lU8cSJLGOou1ehizBfR69c5yY4dq8fe0KEMaNJVDOHKFU4Cw4bpsWdgRD/rel/vJyqKATwAi2XrDLBKDVFRTIlq04YRqj4+TDqfPl3k7FmXm1MionFxIlu2MJiueHF+BoULc3LcvdutopMfyZo1nGQB5iObQXQ0XbhlyrBKly5iY5mH+uKL+mzOns33Wkc3Grud80LbtuptKcZ8ERVhm53SpfXsms6e5cSo86EcOJDCrTuHc8gQTkJbtui1mziIaNIkngtXreoxpfjucuuWyPffM7Hex4cTTMmSDL757TeXuEFdIqJ2O1PFJkxgkYns2TnWHDlEXn+dMQc6O5u4ghUreP80bszatDobeyemf38upvbs0Wv3++/1Hj3Z7YxjaNhQj71Nm3h97u6hSgHuIaIbN/IN/ecfPfZeeYW9P3V1T796lbvRwYP12DOIjWWlpmLF9LnCkorC3buXrsRKlTzXdXPjBs/U33qL5/gAvx5/XKRHD1bzWbmS7l8HdnoOi2hMDLsS/fYbvSovvshALoAenWefZX7yf//pqU2tgoULecTTsiXvJ92NvROPA2DqmE4iI+lBaNNGn80VK/QWkOjalQtSDw4oMvAREYHZiAAVKwKVKgF//KHe3pEjtDdlCtCnj3p7APDpp8DIkcC+fUCFCnpsAsC5c0CVKkDDhsCffwI+PupsxcQAbdoAa9cCS5YAzz2X8LMjR4DGjYFs2YA1a4AiRdSNQweXL/M6168H9u8HDh0CIiP5sxw5eC+XLg3kywfkzct/ja88eYB06QAAYVu3IqBtW4TOnw//mjWBiAggOBgICkr4Cg4GrlwBDh8Gjh0D4uNpp2BB2qlWDWjUCKhdG8ic2ZS3w2XMnQt07cr7aM4cIH16ft9u57M6cybwww9Ajx5qx2E8N88+C8yfr/a5uZ9hw4CxY3lflSun3p4IULMm4OsL/Pef+mu9eRMoVIhz4pAham3pwGwVv8vXX9P1ePWqHnudOrF+r67daFQUz1Xq1dN/JmWsqB2tb+sIKUljOXmSu+KiRfW7x1RjszE4afFi5l127EgvQKlSCe7VJL5CAe5Ek/q5ry93mRUr0s3Wty+PITZs8DzXeHLY7Qzk8vFh2kNSaSS6dqRmeHAMjhzhLlxnDMWyZXpzNSdM4DW6W1S4k7iPiBrhzroKtx89yklKpbDcz+rVejvKJKZfP3VnO44UUrhwQeSpp+je/u0314/FXYmKYsrRzp0iK1fK0j59pPdjj8nQPHkoomPGcDJbs4bu2qAgzzvHdJbISPanBXjk8SgXnw4hff99lonUXfnLbqc7Xmdhe7udDe1r19azuDfSGl9+Wb0tTbiPiIqwHY5OP3mXLiKFCunNPevYkXlYuoOMoqIYZVi2rGsjk52pRBQRQU8AwOCntCIWSWB6xSKzOX+eQWeZM6c8wd/RWruOYHREGjPGta+bEozyfjoL2y9dSpurV+uxZxSb19EGUxPuJaJGCShdEVvHjnE3qrMO55Ur7CpiRq1II9+tSxfXrDpTU8rPbmcwjq8v2zvprOrkRqRpEd24ke7qokUdz4VUsSO9fJnjef55/QEvN2/Sts4dmt3OBUzduvqOmDp35rGWp6RZpQD3ElG7nRGcOnOHundnYQKdieeTJ3OxsHmzPpsGRkul1LrNXVULd9UqJniXKSNy6FDqxuSBpEkRtdtZZjFdOtZodbbQiiuFNDycglKokDlndW++ybPzS5f02Vy8WG/ZVaMmwJdf6rGnCfcSURHuCnVWsTh5kucfEybosSdC92W1akyPMCMN4eOPU9dw19W1cE+eZPBMtmwi8+al/vU8iDQnohER9MIAPKdP7f3vCiGNi+P9nC2bOQFvW7dy/BMn6rNpt/N4R1eheREGjmXIoKc6nUbcT0Rv3eL5yKhR+mz27MkegTpbP+3cSVfmuHH6bBrY7cxtTJ/e8bMJVcXkw8JE2rXj5Nq5s3kl3jSTpkR082Z6HDJlYjEBV5EaIbXbKerp0pnTSSQuTqRKFf2F7Y2I/fXr9diz20XKldNXJ10j7ieiIpzgixfXF3By6hQfoq++0mPPoH9/8wrFx8aKNGnCWrEpbYyuup2Z3c7SYwEBrHG8bJnrbbgZaUJEo6JEBg3iorFmTTUF/p0V0pEjKSZmVEMSoQdMd2F7m43tEp99Vp/Ndev4Pq9bp8+mJtxTRHfs4BuuMwXitdd4sH/7tj6bISEUi5de0mczMaGhfJiKFGHqyaPQ2Q/0wgUGdwAir77qOXV3ncDrRXTHDtZIzZBB5Isv1C6MHRVSo83Yp5+qG9OjuHiRLuS+ffXanT+f171xoz6bzZrxPvCigCID9xRREb7pgYH6dqNnznA3qvvQ+7ffeEMvWKDXrsGlSyyB+MQTFNWkMKOhtt0uMmMGJ5nHHtMXgq8ZrxXRmBiWJfTzY17wgQN67KZUSFev5vP+2mvmTOx2O0s25s+vNzLdZmMsRqNG+mxu2aJ/U6QR9xXRbdv0NocV4dlI3rz6OryI8GFq3ZoRqufO6bObmIMH6UJt3JiTX2LMENDEnDlDtxPAydHLghK8UkT//ZcejnTpuMvTHTyXnJDu3ctI2KZNzasvPGUK7+n58/Xa/eMP2v33X302n3+egYNeUCc3KdxXREVEmjdndQtdu9GzZxmCPWSIHnsGN25wt1Wnjt7ggsSsW0eXW9euCStzswXUwGZjWlBAAM9wx4wxrzmzi/EqET15MiE47Kmn9PXBTIqHCen580xjefJJva3NErNnD+cZ3W7ciAiREiUoarowcv//+EOfTc24t4gaZ6POpmI4w2efcQV98KA+myJcGfr5sQekWRg5pG+8wQfOHQQ0McHBTIvw82Nd07lzPf6MxStE9OZNtvtLn559S2fPdo9dx/1CevYsaxkXK8bCCmYQHs6qYZUr618IfvQRF8rHjumz2bgx3cfucD8owr1FVITtkMqW1bdDi46mvWee0T9Bjx7NB97M878ff2QUZaFCXC27i4Am5uhRkVatKPg1aphTtCKVTJ48WQIDA6Vl0aKeK6IxMWwckSsXo8xHjNCbJpYSDCEFOM4SJXhEYBZdu/K90ilkIiKHD3ORM3y4PptGz9A//9Rn0wTcX0R37eIHMWuWPpv//GNO2LvNJvLccww2MKvvZlQU89YAlgO7/4zUnVi7lm45gG7Ew4fNHpHDeOROND6e7rnSpbng6tXLvfvE7t/P3HNAZPx488bx008cw88/67Vrt4s0aMDPS+fut2FDBix68S5UxBNEVISBN6VL6z0v7NxZJHdu/S2nrl6liDZurP/mS3wG+skndP288ILekoiOYrNxgVWkCCeo5s15vushbl6PEtHbt3k2XaoU3+smTVKeY2wWu3fzOX7iCdaM1t3Y2+DIEZEsWZgDr5vZs/W2OhNJKDRvVtaBRjxDRPfs0b8zvHqVgSyvvabPpsE///Bh11m1KakgolWruIJv2FBvxLIzREdzpV+pEu+VqlV5xmtW9GUK8QgRvXKF52m5cnHn2aGDyPbtZo8qebZs4TP89NMM3tPVj/R+IiN5Lli+vN48dBFed968+isFNWhAj5aHLGZTg2eIqAgLEpQsqXdSnDpVfzi4wUcfMYBGh+1HReFu2MBczdq1PaPogd0usnIld/IAO4SMH29eJGYyuLWIHjrERWSGDDzHGzBA5PRps0eVMtav531bt+69+c9mCOmbb/LZMmPX3rs3I9p1BlIZ1YkWLdJn00Q8R0T37eMH48qam8kRH89VbKVK+nc0cXGcAB57TK1LOSVpLFu3iuTIwd2dbvd2atizh4Ec6dJxIundm4sCNzqjcTsRDQ3ljt5YhBQsyEpDnlTLeOVK3s+NGye989MppEZe5vTpau0khVHk4Jtv9Nm020Xq1WOKUxrYhYp4koiKsEVaiRJ6BW3XLrqwzGjfc+ECXWgtW6q5IR3JA92zh83EK1UyN7rRGS5cEPngA+5KAS5MBg/mwszkB90tRDQ6mgXJ27fnvQCwu8dPP7l3YFlSzJ3LnXOLFo8OotEhpKdOcfH28sv677O4OKbRVK2qt+m9EZS5ZIk+mybjWSK6fz8/oJkz9dodMIBBAWZUFDI6z7s6f9SZQgqHD3MRkyePvh6ErsRmY9j9m29ycQKwksro0aYtDEwTUZuNbrfXX6eXAeAZ1tix5jRESC3x8VwYAfQ+pET8VQrpzZusFVuqlDnHIOPH87p27NBn025nwZhq1UxfnOrEs0RUhKvlYsX0rpBDQ5k3+eKL+mwm5ssvOTlMm+aa10vczszRiL3r11l308+P/Q899WGJieECpWNHLpAMEXn3XXaP0RRIpVVEz5zhcUinTowAB7go+ugjz26IfvMmq/D4+rITkyP3pAohjY7mTj5XLjUda5LjwgWeB/frp9fu33/znvrrL712TcbzRPTgQd7wus8YjLMNM9wUdjvbpvn6cuJPDa7oBxoXJ/K///H96NHD80vwhYeLzJkj0q0bK+4APEetU0dk2DAGqURHKzGtVESvXaN7s1cvBuUBfHaqVeOu7b//PHcRZHDwINPfcuZ0vkiJK4XUZmMkbMaM5gQkivDYq0ABvTtgu12kVi2R6tU9/55yEM8TURGG2Bcpojdc3G7nardoUXPSPeLjGaGcJYvz6QWubqg9axYni+rV2dbJG7DbuXuYOpWTkeH2zZyZhfAHDOBxwpYtdyN+o6OjpXLlygJA9uzZ45A5l4io3c7dx4oV9Fp0756Q6gPQrdivH889PSlAKDkWLuSOq1Ilnj+mBlcJ6eDBfA2zqvQsW8bPfO5cvXaXLKHd5cv12nUDPFNET52iEOguFH/yJEP9zUiYFmG+Wc2a7Hvq6KThagE12LGDC5oCBTyy/F6y2GxM2P/ySy5iypalR8AQqGLF5GDx4vJ7yZLSBZDj333HxHojLzEZUiyiMTFsW7dnD6NPJ03ipF+7NnMhjfFkzcpFzeuvs+a0WTViVWKzsXwdwIWOqxa1qRXSyZM5pgkTXDMeRzEKtTRtqnc3GBEhUrw4q62lsV2oiIiPiAg8kVGjgE8+AfbsASpV0md31iygRw9g9myga1d9dg2uXwdq1wZ8fID//gNy507+b2JigDZtgLVrgSVLgOeec+2Yrl0D2rYFtm8Hpk4FXn/dta/vbkRFAUePAgcP4vSSJbiwYgVq+fsjw5Ur9/5eunRAnjxAvnx3v+Jz5IAt0a+EX76MvIsWIbR9e/gXLpzw+sHBQFBQwldIyL2vnSEDEBjIe79SJaBiRf5brBjg66vy6s0lPBzo1g1YvBgYMQL48EM+C67Cbgf69AFmzgR++IHPekpYvJjP2IABwPjxrhtPSrHbgaZNgf37gX37gPz59dn+8ENe84EDQJky+uy6CZ4rojExQOXKQN68wIYNeieO7t2B+fOBXbuAcuX02TU4dQqoVYs37D//AJkzP/x3VQuoQWwsJ5Bp0/j+fP01kCOHGltuwrVr11C1alUsWrQIefLkweMlSmD7woUIzJ37XgFMJIjXjhzB9aCgu68RB+BJAKHFi8M/SxZ+M2PGe4QXefM++P9FilCk0xLbtvHeunwZmDMHaNlSjR1HhXTbNuDZZ4HmzYHffzdnEfP558BHHwF//w00bqzP7uHDnIeHDgWGD9dn150wdyOcStaupfvkhx/02g0PFylXzpx2RgbbtvGcrk2bh+eBqXLhPooff2TD4yJF9Nbq1IzdbpemTZvKiBEjRETkzJkzKToTjY6OltDQ0Ltfl5YvNz9P1N2Jjmaer68vg6J0RLym1LV74gRTvurWNW8uMNoofvSRXrtGYYUyZTw/uDAVeLaIirCodO7c7DWpk717GVTz1lt67SZmyRJOLAMGPPgzMwTU4Ny5hIo3vXu7bcm9pBg+fLgAeOTXjh07ZOLEiVK7dm2Jv7OASamI3o9bFFtwZ3bvZt3Z9OnZak1nE4rkhDQoiJHB5crxDNwMbtxg8ZC6dfW+NyIJXWnMbN3oBni+iF69ymTxV1/Vb9uorWtmvzxjDGPHJnzPmUIKrsZu59iyZmXQwbp15ozDQYKDg+XIkSOP/IqKipLWrVuLr6+v+Pn53f0CIH5+ftKtW7cU27NE9CHExop8+ilTjSpX5qLVDB4mpGFhDPLLn9+8esJ2O/vq5sqlv0DG9evcgXfsqNeuG+L5Iioi8u23FJJNm/TatdsZHRgQYG4pvI8+4vWPHu0eApqYU6fo8gFE3n7b/Zo2O8m5c+fkwIEDd79WrVolAOTPP/+UCxcupPh1LBFNgoMHWa7Oz09k6FDzSw/eL6S3blFA/f31VgS6n4kTzctd79WL854795HVhHeIqM0mUqOGOYXib93iTqtGDfPabtnt7P8J0L2UMaN7CKiBzcaw/0yZeH7ihakwljvXBcTHs9h9hgwigYHu1W7NEFKjM1CuXCI7d5o3np07+T69845+25s3832YMkW/bTfEO0RUhPlzvr73ujV1sW0b3U6DBum3bRAVxX6FAION3DFf6+hRLjZ8fUX69uWZkpdgiWgq+fdfdkzy8eFz5I6BKhcvsjISIPLZZ+aNIzSUNXmrVlVWSeuhxMbyjLpaNb2F7d0Y7xFREa7KsmQROXtWv22jvq0ZFTsSBxH168dxvPmmW7X8uktcnMi4cXQF+fuLjBnjnhOmJtK8iJ48ySMRgO2z3NVLce4cvTyFC7Mri+7G3gZ2O88hs2fne6ebceO4CDZzF+5meJeIhoXxJm/VSr9tm41ClicPK8voIqko3O+/50PerZv+iL2UEhxMwffzY0OBuXPdc/esmDQrojdvsv5y+vRMh5o92z0XfSIUq6JFWaz/9GlzGnsbfPcdFxy//abXrgiDl7JmZWyDxV28S0RFRObNM6+renAwu73Ur6/H1fGoIKJff6VAtW9vfmDGozh6lIsegOXqzCrabRJpTkRjYng+njMn696OHOnewWaHDrExedmyrE9sYLMxfUunkB48yNzwXr302Lufl17iexEaao59N8X7RNRuF2nWjCtHnQXqDdavp7ujXz+1O6uUROEuXJiyBsXuwLp1dOcBIu3ameOqMoE0I6J2u8j8+XSJ+vpyJ+fukZ1GI/rHH2cq3f3o3JFeu8ZOPJUqmbPoMPoa//67fttujveJqEhCgfrBg82xP306b7gvv1Tz+o6ksaxcyd9r3NicRYUj2GzsDFO4MN18AwZ4ZoNoB/B6EbXbRf75R+SZZ/hMNG0qcuCA2aNKnq1bmX9erRpzIh+GDiG9fZtBVwUKmJNKFxHBI5fnn0+TRy7J4Z0iKiIyahTdmf/9Z459I3fT1S2JnKlEtH49XWd165pXWcURIiJYnSYggFHPnTuzco0X4rUiGhsr8vPPbHRuNDz3lDKQa9bwealTJ2U9OVUKaVycSMuWPIvctcu1r51S3nqLaXMnTphj383xXhGNjWWbqKJFzemhaLeLdO1Kd+r69a55zdSU8tuyheURS5YU2b/fNeNRTViYyNdfMw8XEGnUiNHPXrAanjx5sgQGBkrLokW9S0RDQuiBKVIkYef5zz+e8ZnZ7Sxg4OfHtl6OtFhTIaR2u0ifPhzPihWueU1HmT/fyglNBu8VURGGpefMKfLii+Y8xDExnPhz5GCAQmpwRS3c06dFnniCq1ozSxU6Slwcz2KefpoPdMWKbDqgO0dOAV6zEz1/XuTdd5l6kT49e+56ymJNhEckPXrw/vrf/5yLane1kH7xBcfz3Xepfy1nOHOG3qC2bT1jEWQS3i2iIgyuAUS++cYc+yEhDEwoWtT51BdXlvK7fZt5bgBLqrlrWkFS2O0iGzYkRPMWKEC3vSe4qB+Cx4vorl0inTpxt5QjB7ut6EzxcgUXLzIyPGNGnsmnBldF7c6Zw3v8449TNx5niY1lacPixVmVzeKheL+IijCvKUMG887VLlxgsEyVKo53NFFRC9duF/n8cz7oLVt6Zsj6kSNc9WfMyM/2pZeY3uTuUcj34ZEiev48i2RUrsyJvnhxukEdcX+6C5s3czFWpIjr6uCmdke6dm3Cbt6sHeDgwYxH2LrVHPseRNoQ0ehopk+ULm1eW679+1mh5/nnU15jV3Ux+WXL6K4pX15Pj0YVXLsmMn48oygBvsc9erA9kweUJfMYEb1xg1HnRjOBTJmYg7xokfsW9EiOmTMpVnXqJJ3CkhqcFdIDB/hMPvecebW4ly9Xm13gZaQNERVhZFn27Iz0NGt1t2YNH9qePZMfg65uLMeOUUT9/SmqnsyxYyLDh3OxZLh7BwxgIXM3PdNxaxGNiGBlnFateN/6+oo0aUKXpyd6LwxiYli72eh3q6oYiaNCevEid8SVK5v3/l66xNzYZs0866jHRNKOiIqwig/AoBSz+PlnjuGTTx7+O7obaoeG0q3r48N2am4qOCnGbqdwvvMOhdTobjN0KNvluVEFJ7cT0eBgkT/+YGR5tmx872rUoLvW1bs1M7h2jTmr6dOLTJum3l5KhTQ0lEF/jz1m3plyfLzIs8+y6poXNYdQTdoSURGR115jkfrURsumhlGjODl9//2DPzOrH6jNJjJsGMf18svmub1dTXw8Xbs9ezLwBWB0ctOmdFft3m3qitt0EQ0Ppwdi4MCEM05ApEIFdirxpspRO3ZQpPLn19t7ODkhjYlhMZSAAJb2M4tPP6W3wVUpeWmEtCeiERGcICpVEomMNGcMdjvdSH5+IgsWJHzfHRpqz5/PHUixYgxw8Cbi49l9YswYuiUzZ6Zg5MrFMP6pU+kS1rgT1y6i0dGcJIcNYx51unR8D4oUEenenYXgHWgq7hHExDDK1c+PaVJmXN/DonZjY0VeeYXBcevW6R+XgVGu9FEeMoskSXsiKpJQyPmNN8wbQ1ycSIcOfLDnzHEPATU4fVqkQQNOrv36uX+5QGeJjmbKzMcfM7gksaC0bcvz1XnzGAmsKHhGqYiGhrLIxsyZPBt+9tmEhUPu3KxR/O23IsePe74L/2Hs38+o+HTp+HmaFawj8uCONDqaUeXp0pmbtx0URBdugwYeEYznbqRNERUxt6WQQXw8I0l9fJhL6g4CamCziUyaxEm3dOm00V0lPJyRie+9xyIZ+fMnuDczZKC7s3NnpgctXZrQFisVuEREIyPplp49m6kJL7xAT4Ixdl9fkXLl2Kx93DgWVvf2oJG4OB6bpE/P4hzu0v/SEFKAz3zGjCJ//WXueJo109/C0YvwERFBWkQE6NwZ+OsvYM8eoFQpc8YRFQWULw+cPw/07QtMmWLOOB7GiRNA9+7A1q3AwIHAiBFA5sxmj0ofwcHAoUPAwYP3foWG8udZsgCFCgF58wL58iV8JfX/uXIBfn73vHzYxo0IaNgQoWvXwr9evYQfREfTdnAwEBSU8JXU/1++DNjt/LtixYBKle79Kl8eyJRJ0xvmBhw5AvToAezcCQwaBHz6KZAxo9mjSiAsDAgM5Oc2aBAwdqx5Yxk3jmNYsQJo2tS8cXgwaVdEAd7MTz0F5MwJbN4MZMig1350NNC2LbBmDdCyJfDnn8AXXwBDhugdR3LYbMD48cCwYUCJEsCsWUD16maPyjxEgEuXKKaHDwNXrz4obkFB/HyTIQxAAIBQAP7J/XLOnA8KdN68QNGiFMsKFQD/ZF/Fe7HZgK+/Bj76iIuJWbOAmjXNHtW9hIQAL7zAe+fZZ4GlS4EffqDo62bbNqBuXeB//zNXyD2ctC2iALB7N1CrFtCxI/Djj4CPjx67hoCuXQssWQI0bswV86efUqw+/VTfWFLK4cPcle7eDbz/PvDxx+61wncnRICIiHt3jzdv8vsA1qxZgzVr1iBndDQG37qF0Pffh3+5cgl/nz79vUKZJ4/+RZ4ncfIkhei//4B33gFGjqSXwJ24fh14/nngzBlg1SqgalWgTx9g5kz9QnrxIhcYRYoAmzbxfrNwDjN9yW6DkT+qq07lo4KIxozhWAYOdM9gj7g4tilLn55nOl7aokwXpqe4eDo2G+tiZ8nCDkXu+j5evsyz2Xz5RPbtS/i+zsbeBiEhzE4oVozjskgVlogaGB0TZs5UayclUbjffMOxvPmm+waA7N3LQBs/P1Z/sZKzncIS0VSwaVNCZ5++fd23du/58yJlyjAC9siRB3+uU0hjYhilnSOHyOHDam2lESwRNbDb+SD6+TFCUwWOpLF8/z0fqu7d3bc2aUwMCxYEBLBs4BdfeFwBeLOxRNQJTpxgpDHAmtju/N6dPMkdX/HiIqdOPfz3dAip3S7SpQsjzTduVGMjDWKJaGLi41knVEUXeWfyQH/9laL+8svm5rclR3CwSP/+zHcrVozjdkdXtBtiiagD3LjBXp/p0zOXd/Zs9/XUiHDXWaiQSNmy3I0mh2oh/fBD89P6vBBLRO8nIoK9BfPnZ1NaV5CaQgoLFnDSaNnSvApLKeXYMZHWrfmgVq+eNnJLU4kloikgJkZkwgSRnDlZTWvkSD6n7syePSJ58/Ls8cqVlP+dKiGdNo3P5bhxrntNCxGxRDRprl1jkEL58qlv+OyKSkQrVrDoQdWqKVvRms26dXSzAaz84031V12MJaKPwG5nGcrSpVkw4o03HBMks/jzT3qzqlYVuX7d8b93tZAuXcr3r39/y0OkAEtEH8bx4yyN9swzzp/zubKU3+7dIkWLMrrPE84zbDa624oU4U76f/9L/YLEC7FE9CFs385nD2CzgAMHzB5R8thsIh99xDF36JC6cpmuEtLt2xm5/NJLVkk/RVgi+ii2bKEAvvyy42cvKmrhBgWJ1K/Ps8dvv3XNa6omIoLut6xZ6Y4bMcK51bmXYonofezYwefNKIu3apXZI0oZISEiLVpQ9L74wjU7vtQK6alTXHTXquX+R0EejCWiybFgAW/id99N+d+oLCYfG8ui8AAfMDfqjflIrlxh9HOmTHRN9+3LKMs0jiWiQrFYujSh6UGJEkw185Sd09GjrE0cEOD6yH5nhfT6dQY0lSnDwD8LZVgimhKMvM2JE5P/XV3dWL7/nqHqtWt7xjmRQVAQ2y3lzcuJoU0bkf/+M3tUppGmRTQqimJZvnxC8+8///Qc8RRh8Xh/f5HAQAbWqcBRIY2M5LyQN68Vj6ABS0RTynvv8SaeP//hv6O7ndmWLSIFC4oULsyzD08iMlJk+nSulgG6nObP96wJ1AWkSRENDmbD73z5+Ey99BIjuT0p6MVuZ5cYHx+mxYWGqrWXUiGNj+fCNHNmkW3b1I7JQkQsEU05NhuDBTJlEtm8+cGfm9UP9NIlkZo12VLpp5/02XUVNpvIkiUi9epRTEuVEpkyxf1TGFxEmhLREyfoxs+cmc9Jnz4M4PM0wsPZixVgj1JduaopEdIBAxiJu2SJnjFZWCLqEFFRnOwDArgLTPx9MxtqR0eLvPYaH+oBA9y3wlFybNvGoBJfX5FcuUSGDnVdrq6bMXnyZAkMDJSWRYt6t4jGx4usWcPdpo8PXYyffea553SnTjHgKVs2xkvo5mFCareLfPAB54CpU/WPKw1jiaijhIaK1K3Lh2j9evMF1MBu5w4uXTqRhg09d5ISYbPrAQP4HgM835kyxSvr83rlTtRuZ8Wvd9/lUQPAc8+ZMz27LOTq1VzclSolcvCgeeO4X0htNpG33+b7PH68eeNKo1gi6gy3b4s0bkzhfPpp8wU0MevXc7VfrJh71xRNCeHhInPmiDRvzsWBnx8XLL/84r7Fxh3Eq0T05EnuMo1Aobx5GUm+ZYtnnXfeT2wsr8vXV6RJE5GbN80eUYKQAglHIZ6S9uZlWCLqLFFRDMUHGG3qTpw7x92yjw+LHHhDjlhQEN1UderwPc+SRaRjR0ZHunNd4WTweBG9elVk0iRG1gL0HnTtyipbnnqskJhDh0SqVaOADh3qXoFvMTGs5uSOc1AawhLR1HDxInPb/PxE5s41ezT3Eh8v8tVXDDgqV05k61azR+Q6zpwRGT2a/RkBVpbq04etsdy5IHkSeKSIhoWJzJol8vzzvPfTpWNt599+856AsPh4kbFj+fyUL+9+ka4xMYzCTZeOmQOevNP3cCwRTS1xcVx5+/gwd9PdOHKExeB9fUXef59BSN6C3c4Gx0OGiDz2WIIL8eWXmT5z8qTbTy4eIaIxMVygfPIJS/GlT5/gRpw+3fsqUB0/znN4o8iKu3lyIiNFmjVjnrgVhWs6loi6ApuNDbQBFmZwN+LiuHNLn55dJVzd5s0dsNlYU/ijj5jy4+fHz6NoUZGePUV+/pnpQG6GW4qozcZ7ZOxY1q3NmpXvZY4cjLL95hseGXgbNhsLqmTOzOChTZvMHtGDhIezqXbmzO4Th5HGsUTUVdjtIgMHcrIZM8bs0STN/v0iTz5JF9Dw4R59lpgsoaEsJffOO0xJAPgVGCjy1ltMT3CDABG3EFG7naXrpkyhizBXLr5XmTMzkGbMGJGdO93rPNDVnD6dUHawX7/UFY9XRUgId8jZs3tGE4o0QjpYuAYfH2DcOCBrVmDIECAyEhg+nN93Fx5/HNi2DRg1il9LlgCzZvH73oa/P9CiBb8AICgIWLcOWLMGWLkSmDKFn82TTwJVqgCVKiV8FSjgXp+bK4mLA06eBA4eTPjatg24dAlIlw6oWRPo1w9o1AioUQPImNHsEatFBJgxA3jvPSB3bt4fDRuaPaoHuXEDeP554NQp4J9/gOrVzR6RxR18RETMHoTX8cUXwAcf8MEcO9Y9J+Rdu4Du3YHjx4FPPwUGDeIkmlY4d44T5saNFJJDh4DoaP4sV657RbVSJaBiRX7/PpYtW4bPPvsM+/fvR9asWVGvXj0sWLAgxcMI27gRAfXrI3TDBvjXq+eqqwPsduDs2XvF8uBB4NgxIDaWv5M/P6/tyScpHM88A2TL5roxuDsXLgCvvw78/TfQqxcXwf7+Zo/qQa5eBZ57Drh2DVi9Gqhc2ewRWSTCElFVTJoEDBgA9O0LfPMN4Otr9ogeJCaGu+UvvwSqVQN+/BGoUMHsUZmDzQacOZO06MTH83cKFqTolC8PFCiAXRcu4Kuff0b7vn1RpUkTxOXMif2nT6Nd+/YpNuuUiNpswM2b3F0bX8HB/PfCBS4IDh2iNwQAAgLobTAWA/9v78zDoq7zOP4eBgJLRlGONLlUdBVYLyzRDJEO3dzVzMyLtV3d1LTdtrI0d4uUx64Na1fW9glX08R11ZSntLQFNfFYxNSEVvACzINLGURUjvntH+/GATlSBH6/38zn9TzfBxnG4cscv/f3c1u/ennd5pNkJ1gs9MC88AIPDQkJwMiRau+qfs6coVfgyhVaoL16qb0j4SZERFuShATg2Wdp8SUkAEaj2juqn/37uceTJ4EZM4CYGMe9wN5MRQWt9cxMm7BmZ0MpKIBSVIQ6RyM3Nz533t625eUFeHgATk6oqqpClVWUAVzOzYX3ypUwP/ssTIGBdX+3VRytXwsK6NqzWGrf9667+Ls6dbIJpXV17qxNb4gapKYCL74IHDgAREcDH37I10aLnDplcy0nJwPduqm7H6FeRERbmjVrKFCPPAIkJmr3A3v9Oi3m2FjGiV57jZa0m5vaO9MkaWlpGPzAA1i9ZAk2fvQRUFCAMD8/TB05Ep2MxtqiV1AAXLoEACgvL0f51as3HucKgAAAZpMJJheX2r/E2bl+Qa75vfU2k0mEsjFOnGCuwmefAf37A3FxQESE2rtqmN27gSefpBchORnw81N7R0JDqJfT5EBs26YoHh7sLpKZqfZuGqewUFGef54ZvP7+ipKYqPlaSzVYu3atAkDx8/NTNmzYoKSnpysTJ05UOnbsqBQXFzf4/65du6aYzeYb6+zWrepn59ozxcXM0HZxUZQuXRRl1SptN+SwWNiZy9lZUSIi7LJftL2hwUCdHfLoo3Qfuboy4zEpSe0dNYynJ+O5mZnMWp00iRmbqalq76xViImJgcFgaHSlp6fD8qM7dcGCBXjyyScxYMAArFixAgaDAevXr2/w8V1dXWEymW6stvfc01p/mmNRUQEsWQJ0785QyhtvML4dHa3N/ASA3qAZM5hHMXMmk4gkrKJ5HCgdU2W6dQP27aNrd8wYxh3//GftfqB79AA2bwZ27WIMaehQYOxY4J13eGGyU+bMmYMJEyY0ep+AgABcvnwZANC7RiKWq6srunbtiry8vBbdo9AIikKX7auvMlFs+nRg4UJmImuZ8+eBceOA9HRg+XLgt79Ve0fCLSIi2pq4uwMbNrBG8/XXgcOHgVWreLtWiYigFZ2YyLKd3r2B2bN5AKin5EPveHp6wtPT8yfvN2DAALi6uiIrKwsPPvggAKCyshI5OTnw9/dv6W0K9ZGWBrz0Er0mI0fS4xMcrPaufpq0NOCJJ3gA2LWLnh9BN2jUDLJjnJwoQElJTBgID2fSg5ZxcgKmTGGWakwM3WPdu9NdZq05dDBMJhNmzpyJN954A9u3b0dWVhZmzZoFAHjqNkpchGYgN5dhhwceAMxm1n1u3aoPAf3kE+Chh5g4lJ4uAqpDRETV4le/YqeYigpg4EB+8LVOmzbM2j1xAnjqKTaT6NmTWb1lZWrvrtV57733MGHCBERHR2PgwIHIzc1FSkoKPLSagW1vZGczdtizJ7tRJSQAhw4xE17rVFYy+/2ZZ4DJk4GdO1mKJOgPtTObHJ5LlziRwclJUd57T1+ZsBkZnOlpNDL7+LXXFOXcObV3pSs00TtXT1gsbAw/ejSnrPj4KEpsrL6GtBcWsom8s7OiLF2qr8+8UAexRNWmfXvg88+ZCDF3Lt2m1k4zWic4mLHSkyd5ov7rX4GAACZFZGaqvTvBnqiqAtavp7tz6FBaoR9/zNaGCxbop13hkSP0PGVksAPR7NlS36tzRES1gNEILF4MrFvHjNgHHwT0lOHp78/i9TNn2Kxh+3Z2yvnFLxj3lX4eQlMpK+PhrEcPYPx4DnjYsoUiNG2avpqBrFvHHAgPD8Y/tdzsQbhlRES1xPjxwN697G4TFsZMPT3Rvj2t6VOngNWrgXPngIcfZoeYNWsYBxKEW+H8ecbffX1ZYhUezqEJKSk8nGm1NKw+qquZ2T5hAsvbUlOlA5EdoaN3ooPQpw9LSkJD2Tfz1Vdt00X0wl130S196BALxu+9l9937cpJGWaz2jsUtEpGBvCb39C7sXQpQwOnTvEQ1r+/2ru7fbKy6Fl6910OelizBrj7brV3JTQjIqJaxNOTLtHFi4EPPgAGDKD7R28YDLREv/wS+O47/ttqXfz+96yPE1evUF4O/OtfwIgRPDx+/TXf+2fOAO+/r0+rzWLhZ7dvXw4M2L2b2ewS/7Q7RES1itFIK/TgQcZ9Bg1ifale6zJDQzlqLSeHQ583bGBdX48etpZsDkR8fDx69+6NKdHRam9FHaqqOBw9OppN9CdOpIfi00/Zaejll9l8XY+cPAkMGwb88Y+c4nT4MDB4sNq7EloImeKiByorgbfeAhYtYkbsJ5/ofzBvdTVr49asATZuBEpLaXFPmsTYkYPUzLXYUG4toigcu5eYyCSbwkLOZp08mSKq91FfFgvw0UfAK6/wYLBihSQPOQBiieoBFxe2CUxL4wd14EBmwdaYS6k7jEYOG/7nP4H8fFqm/v5MwOjShT9bvhwoKVF7p8Kd8v33wJ/+RJEcPBjYtIk9pL/9tvbP9ExeHvDYYyxZiY5m+EIE1CEQEdUT/fox6WjuXLpAw8N5EdI7bm6cnbhxIwU1IYGxo9/9jo3Dx47lz/SWYOXI/PADE2n69aP3JD6eB6MdO9imz/ozvccIFYUHwdBQ4NgxYNs2YNky/dStCneMiKjecHVlA/t9+1hD178/L0jV1WrvrHlo354Zmf/5Dy/Eb7/NU/64cRTUZ54B1q6l2ArawWJhI4G4OMYD/fzoPQkKouV54QKbIwwbRi+EPXDuHDBqFOtVx44Fjh7l2EPBoZCYqJ65epXJRnFxtEpXruRFyx7JymIsbeNGWzek4GBaN1FRdJ3pMBFFtzFRRWEP5ZQUNtTYsQMoKqJXISKCMc4nngBMJrV32vwoCt+Lzz/PQ+3HH1NMBYdERNQeSE2lhXbuHC23OXP0VYx+u1y4wIt2cjJXTg7/3rAw1tZGRQFDhrBhvsbRlYieO8fn2yqcZ87Qqrz/fj7nw4fzMKenLkK3S34+MGsWretJk9hNqWNHtXclqIiIqL1w5Qowbx4L1CMigL//nbM/HYHTp22CmpICFBSw4cPgwTZLNSyMCVoaQ9MievEiM6itz+uxY7y9Tx/bYWXoUPu0Nm/GYmEY4YUXGMddtoxxfMHhERG1N1JSmJCTm8satZgYpts7CopCd6/1wr9zJ8tn3N1Zlxoayr6+ISE8ZKicAKIJEVUUttnLyLCtQ4cY41QUzo61WpqRkYCXlzr7VIvduzns+8ABjgBcutSxPlNCo4iI2iPXr/ODvmgRT9Dz5/MErQP3ZrNTVcWGFcnJvAhmZLAY3vq2Dwy0iap19ezJWFcr0OoiWlxsE8rMTNu/L13iz9u0Yaw5JITDoqOi9NkxqDk4fpwNTzZtYg1zXByfE0GogYioPVNcDCxcSNdu585s2DBhgn3HS2+F8nLgf/+rbXllZDAbGGCcLyiotrB2787sYE9PwNm52bbSIiJ65Qpd2ufP1/07L1zgfVxc2OggJMQmmiEhPFQ4+vvj4kUeQOPj2fd58WLGPx39eRHqRUTUEcjO5ol682Y2aoiLY1NsoTYlJbTOalpoR48y67QmHTrQnWddXl61v695m4dHoxffWxLRigp29ykosH2tuW6+reY8WoOBB4Cbre2gIE3GiFWlooLCuWgRu4TNn8/WfY7owRFuGRFRR2LXLsZ2Dh5kXds77/ACKzROfj4zgG9FwG7uImU0svSmgaYCpZWVaFdaCrPJBFN9olZZyZjuzbRt+9NC7u1NsRQRaBxFAT77jAfN06eZU/Dmm/Q8CMJPICLqaFgsrHGbP5/iMHs2a007dFB7Z/pHUWjN3iys9Yx+27tvH/bt3Qv3ykrMKCmBecYMmAID6z6m0UgX8s2CKcLYPPz3vzxY7tkDjBzJxiXBwWrvStARIqKOytWrwJIljJO6uFBIZ89maYjQamgiO9cRyc3lQXLtWmZsv/8+8Mgjau9K0CESKXdU2rThbM8TJ5i2//LLLPnYuFFmfAr2i9nMeuqePdmwIyGB5TwioEITERF1dHx8gH/8gzWBQUHsUduvH+c6VlaqvTtBaB7OnqV4+vuzy9Arr7CEZdo0++nlK6iCiKhAQkKAL79kg4LOnTnOKTCQMaJ6YnqCoAuOHmVLzMBAlnpNn07xXLhQ9UYbgn0gIirUJjIS2LrVNpFiwQLA1xd48UXGkQRB6ygK8PXXnO/585/zYPjWW+z1+5e/APfdp/YOBTtCRFSon5AQzknMzeW0ipUrOTh50iSWyAiC1qioAFavBvr25QGwsBBYs4Ydql56SZdTfgTtIyIqNE6nTpxfmpfHbN79+9nMPTIS2LKFJTOCoCYlJcC779Jl++tfA126sM3jwYM89ElTCaEFEREVbo22bWmRHj8OrF/PrjijRtFiXb4cuHZN7R0KjkZuLsMMvr4s0Roxgl2mtmxhs/wGGlwIQnMiIircHkYjM3j37+d0i5492eHF3x+IjWW/XkFoSdLTOfS7WzeGGf7wBwrq8uXSKEFodUREhaZhMLD/7qZNnDM5dizdvr6+dKF98QVjVILQHOTnA3/7GzBoEPs/p6UBH37IZKHYWDaKFwQVEBEV7pwePTikOC8PeP114LvvgF/+kqUys2bRYpXYqXC7lJYCq1Yxy7ZzZyYH+fiwIUh2Njts3XOP2rsUHBwRUaH58PJiQXtGBps3TJ/O+NRDDzHpY948CqwgNMT160BSEvD00xTMqVN527JlHO2WlESvhzRIEDSC9M4VWhaLhc29ExOBf/+bsxpDQujynTgRCAhQe4eqEB8fj/j4eHS/cgWf5+U5du9ciwX45hu+RzZs4IDwPn1s7xFfX7V3KAgNIiIqtB4VFcD27azdS0piE/whQ3ixHD+e00ocDIdtQK8owOHDFM61a9mWLyCA74VJkyRBSNANIqKCOpSVcUh4YiKF1WBggfzkySydMZnU3mGr4HAievw4sG4dD1LHjvHg9PTTFM7wcClLEXSHs9obEByUtm2BKVO4Cgvp6k1MpIgajcD997PWLyqKF1c3N7V3LDSFCxfYdi85mV9zcpgMNGYMEBcHPPywNEMQdI1YooK2yMkBtm2zXXSLiymgQ4ZQUKOigP79AWf7OP/ZnSVaUgLs2sXXLzkZ+P573h4czNdu+HAKp2TVCnaCiKigXSwWNsK3XpC/+YZu4HbtgIgI20U5OFi3bkDdi2h5ORPHrNbmwYN83QICbIeeyEip4xTsFhFRQT9UVgIHDthEdd8+Jiv5+Nhcv8OHs5xGJ+hORK2vgVU09+7la+DtbXsNoqJ09RoIwp0gIiroF6sVZHX9Wq2gwEA2yQ8Jsa1u3TRZW6hpES0rozs2I4Pr6FG2eywrY+LXsGE24dSxN0AQ7gQRUcF+sMbjduxgs4ejR229fN3cgF69KKjBwTZx9fNT9eKvCRG9dg3IyrKJpXXl5PDnBgMPISEhbLkXFQUMGGA3cWlBuBPkUyDYD+3bA6NHcwGsRSwoqCsOmzcDly/zPu7uNlGtKa4+Pj8prtnZ2Zg7dy727NmDiooKhIaGIjY2FpGRkS36ZzaZqirgxIm6z8eJE0B1Ne/j68u//6mnbM9Jr17A3Xeru3dB0CgiooL9YjBQDH18aD1ZURQ2Lq8pJAcPAp9+ahvp1rEjJ9N4e3N5edn+/eOaPm4cOv7sZ0hJSUGbNm3wwQcfYNSoUTh58iTuba1EGkWhBV5QwFKhgoLay3pbfj6HU1uHAnh7UyQfe4w9aYODuWRwtSDcFuLOFQQr1dXAqVM2YT17tq4glZTU/X9t2wLe3qju2BFfHDiAsJEjcV/fvhQqk6lRi7Y0Oxvt3n4b5nnzYOrRo/47VVXRLV2fOBYWMtmnJkajTfRrfu3e3WZdens3+WkSBMGGiKgg3A7XrwNFRVDy8/HsmDEY1LUrpowYAZeLF5G5cycuHDmCyJAQOFtF7+rVRh+uFEA7AGYAjfZo6tChQYu4zu0eHoCTzJYQhNZARFQQmsjZs2cxevRofPvtt3BycoKPjw+2bNmCvn372u5kjTX+yJtvvomFixbd+N4NQDkA8w8/wNSQC9hgEFEUBI0in0xBqEFMTAwMBkOjKz09HYqi4LnnnoO3tzd2796NtLQ0jB49GqNGjcL58+dtD2g01lrzFizAJbP5xso6c4b3c3evc98bSwRUEDSLWKKCUIOioiIUFRU1ep+AgADs2bMHjz76KC5dugRTjWb5QUFBmDZtGubNm3dLv6+0tBTt2rWD2Wyu9TiCIOgDyc4VhBp4enrC8xZGspWXlwMAnG6yEp2cnGCxWFpkb4IgaA/xEwlCEwgPD4eHhwemTp2KI0eO3KgZPX36NB5//HG1tycIQishIioITcDT0xNfffUVysrKMHz4cISFhSE1NRVJSUno06eP2tsTBKGVkJioIKiIxEQFQd+IJSoIgiAITUREVBAEQRCaiLhzBUFFFEXB5cuX4e7uDoOMEhME3SEiKgiCIAhNRNy5giAIgtBEREQFQRAEoYmIiAqCIAhCExERFQRBEIQmIiIqCIIgCE1ERFQQBEEQmoiIqCAIgiA0kf8DHZkJeZCQmKAAAAAASUVORK5CYII=\n", "text/plain": [ "Graphics object consisting of 18 graphics primitives" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "polar.plot(chart=cartesian)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Many `plot` options are available, type `polar.plot?` to get them." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The orthonormal vector frame associated to polar coordinates is" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(\\mathbb{E}^{2}, \\left(e_{ r },e_{ {\\phi} }\\right)\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(\\mathbb{E}^{2}, \\left(e_{ r },e_{ {\\phi} }\\right)\\right)$" ], "text/plain": [ "Vector frame (E^2, (e_r,e_ph))" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "polar_frame = E.polar_frame()\n", "polar_frame" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle e_{ r } = \\left( \\frac{x}{\\sqrt{x^{2} + y^{2}}} \\right) e_{ x } + \\left( \\frac{y}{\\sqrt{x^{2} + y^{2}}} \\right) e_{ y }\\)" ], "text/latex": [ "$\\displaystyle e_{ r } = \\left( \\frac{x}{\\sqrt{x^{2} + y^{2}}} \\right) e_{ x } + \\left( \\frac{y}{\\sqrt{x^{2} + y^{2}}} \\right) e_{ y }$" ], "text/plain": [ "e_r = x/sqrt(x^2 + y^2) e_x + y/sqrt(x^2 + y^2) e_y" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "er = polar_frame[1]\n", "er.display() # display in the default frame (Cartesian frame) \n", " # with the default coordinates (Cartesian)" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle e_{ r } = \\cos\\left({\\phi}\\right) e_{ x } + \\sin\\left({\\phi}\\right) e_{ y }\\)" ], "text/latex": [ "$\\displaystyle e_{ r } = \\cos\\left({\\phi}\\right) e_{ x } + \\sin\\left({\\phi}\\right) e_{ y }$" ], "text/plain": [ "e_r = cos(ph) e_x + sin(ph) e_y" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "er.display(cartesian.frame(), polar) # display in the Cartesian frame\n", " # with components expressed in polar coordinates" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle e_{ {\\phi} } = \\left( -\\frac{y}{\\sqrt{x^{2} + y^{2}}} \\right) e_{ x } + \\left( \\frac{x}{\\sqrt{x^{2} + y^{2}}} \\right) e_{ y }\\)" ], "text/latex": [ "$\\displaystyle e_{ {\\phi} } = \\left( -\\frac{y}{\\sqrt{x^{2} + y^{2}}} \\right) e_{ x } + \\left( \\frac{x}{\\sqrt{x^{2} + y^{2}}} \\right) e_{ y }$" ], "text/plain": [ "e_ph = -y/sqrt(x^2 + y^2) e_x + x/sqrt(x^2 + y^2) e_y" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eph = polar_frame[2]\n", "eph.display()" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle e_{ {\\phi} } = -\\sin\\left({\\phi}\\right) e_{ x } + \\cos\\left({\\phi}\\right) e_{ y }\\)" ], "text/latex": [ "$\\displaystyle e_{ {\\phi} } = -\\sin\\left({\\phi}\\right) e_{ x } + \\cos\\left({\\phi}\\right) e_{ y }$" ], "text/plain": [ "e_ph = -sin(ph) e_x + cos(ph) e_y" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eph.display(cartesian.frame(), polar)" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle e_{ {\\phi} } = \\frac{1}{r} \\frac{\\partial}{\\partial {\\phi} }\\)" ], "text/latex": [ "$\\displaystyle e_{ {\\phi} } = \\frac{1}{r} \\frac{\\partial}{\\partial {\\phi} }$" ], "text/plain": [ "e_ph = 1/r ∂/∂ph" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eph.display(polar.frame(), polar)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We may check that $(e_r, e_\\phi)$ is an orthonormal frame:" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ "all([er.dot(er) == 1,\n", " er.dot(eph) == 0,\n", " eph.dot(eph) == 1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Scalar fields can be expressed in terms of polar coordinates:" ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{llcl} F:& \\mathbb{E}^{2} & \\longrightarrow & \\mathbb{R} \\\\ & \\left(x, y\\right) & \\longmapsto & f\\left(x, y\\right) \\\\ & \\left(r, {\\phi}\\right) & \\longmapsto & f\\left(r \\cos\\left({\\phi}\\right), r \\sin\\left({\\phi}\\right)\\right) \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{llcl} F:& \\mathbb{E}^{2} & \\longrightarrow & \\mathbb{R} \\\\ & \\left(x, y\\right) & \\longmapsto & f\\left(x, y\\right) \\\\ & \\left(r, {\\phi}\\right) & \\longmapsto & f\\left(r \\cos\\left({\\phi}\\right), r \\sin\\left({\\phi}\\right)\\right) \\end{array}$" ], "text/plain": [ "F: E^2 → ℝ\n", " (x, y) ↦ f(x, y)\n", " (r, ph) ↦ f(r*cos(ph), r*sin(ph))" ] }, "execution_count": 63, "metadata": {}, "output_type": "execute_result" } ], "source": [ "F.display()" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{llcl} F:& \\mathbb{E}^{2} & \\longrightarrow & \\mathbb{R} \\\\ & \\left(r, {\\phi}\\right) & \\longmapsto & f\\left(r \\cos\\left({\\phi}\\right), r \\sin\\left({\\phi}\\right)\\right) \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{llcl} F:& \\mathbb{E}^{2} & \\longrightarrow & \\mathbb{R} \\\\ & \\left(r, {\\phi}\\right) & \\longmapsto & f\\left(r \\cos\\left({\\phi}\\right), r \\sin\\left({\\phi}\\right)\\right) \\end{array}$" ], "text/plain": [ "F: E^2 → ℝ\n", " (r, ph) ↦ f(r*cos(ph), r*sin(ph))" ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" } ], "source": [ "F.display(polar)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "and we may ask for the components of vector fields in terms of the polar frame:" ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle v = -y e_{ x } + x e_{ y }\\)" ], "text/latex": [ "$\\displaystyle v = -y e_{ x } + x e_{ y }$" ], "text/plain": [ "v = -y e_x + x e_y" ] }, "execution_count": 65, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v.display() # default frame and default coordinates (both Cartesian ones)" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle v = \\left( \\sqrt{x^{2} + y^{2}} \\right) e_{ {\\phi} }\\)" ], "text/latex": [ "$\\displaystyle v = \\left( \\sqrt{x^{2} + y^{2}} \\right) e_{ {\\phi} }$" ], "text/plain": [ "v = sqrt(x^2 + y^2) e_ph" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v.display(polar_frame) # polar frame and default coordinates" ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle v = r e_{ {\\phi} }\\)" ], "text/latex": [ "$\\displaystyle v = r e_{ {\\phi} }$" ], "text/plain": [ "v = r e_ph" ] }, "execution_count": 67, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v.display(polar_frame, polar) # polar frame and polar coordinates" ] }, { "cell_type": "code", "execution_count": 68, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle w = w_{x}\\left(x, y\\right) e_{ x } + w_{y}\\left(x, y\\right) e_{ y }\\)" ], "text/latex": [ "$\\displaystyle w = w_{x}\\left(x, y\\right) e_{ x } + w_{y}\\left(x, y\\right) e_{ y }$" ], "text/plain": [ "w = w_x(x, y) e_x + w_y(x, y) e_y" ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" } ], "source": [ "w.display()" ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle w = \\left( \\cos\\left({\\phi}\\right) w_{x}\\left(r \\cos\\left({\\phi}\\right), r \\sin\\left({\\phi}\\right)\\right) + \\sin\\left({\\phi}\\right) w_{y}\\left(r \\cos\\left({\\phi}\\right), r \\sin\\left({\\phi}\\right)\\right) \\right) e_{ r } + \\left( -\\sin\\left({\\phi}\\right) w_{x}\\left(r \\cos\\left({\\phi}\\right), r \\sin\\left({\\phi}\\right)\\right) + \\cos\\left({\\phi}\\right) w_{y}\\left(r \\cos\\left({\\phi}\\right), r \\sin\\left({\\phi}\\right)\\right) \\right) e_{ {\\phi} }\\)" ], "text/latex": [ "$\\displaystyle w = \\left( \\cos\\left({\\phi}\\right) w_{x}\\left(r \\cos\\left({\\phi}\\right), r \\sin\\left({\\phi}\\right)\\right) + \\sin\\left({\\phi}\\right) w_{y}\\left(r \\cos\\left({\\phi}\\right), r \\sin\\left({\\phi}\\right)\\right) \\right) e_{ r } + \\left( -\\sin\\left({\\phi}\\right) w_{x}\\left(r \\cos\\left({\\phi}\\right), r \\sin\\left({\\phi}\\right)\\right) + \\cos\\left({\\phi}\\right) w_{y}\\left(r \\cos\\left({\\phi}\\right), r \\sin\\left({\\phi}\\right)\\right) \\right) e_{ {\\phi} }$" ], "text/plain": [ "w = (cos(ph)*w_x(r*cos(ph), r*sin(ph)) + sin(ph)*w_y(r*cos(ph), r*sin(ph))) e_r + (-sin(ph)*w_x(r*cos(ph), r*sin(ph)) + cos(ph)*w_y(r*cos(ph), r*sin(ph))) e_ph" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ "w.display(polar_frame, polar)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Gradient in polar coordinates\n", "\n", "Let us define a generic scalar field in terms of polar coordinates:" ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{llcl} H:& \\mathbb{E}^{2} & \\longrightarrow & \\mathbb{R} \\\\ & \\left(r, {\\phi}\\right) & \\longmapsto & h\\left(r, {\\phi}\\right) \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{llcl} H:& \\mathbb{E}^{2} & \\longrightarrow & \\mathbb{R} \\\\ & \\left(r, {\\phi}\\right) & \\longmapsto & h\\left(r, {\\phi}\\right) \\end{array}$" ], "text/plain": [ "H: E^2 → ℝ\n", " (r, ph) ↦ h(r, ph)" ] }, "execution_count": 70, "metadata": {}, "output_type": "execute_result" } ], "source": [ "H = E.scalar_field({polar: function('h')(r,ph)}, name='H')\n", "H.display(polar)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The gradient of $H$ is then" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{grad}\\left(H\\right) = \\frac{\\partial\\,h}{\\partial r} e_{ r } + \\frac{\\frac{\\partial\\,h}{\\partial {\\phi}}}{r} e_{ {\\phi} }\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{grad}\\left(H\\right) = \\frac{\\partial\\,h}{\\partial r} e_{ r } + \\frac{\\frac{\\partial\\,h}{\\partial {\\phi}}}{r} e_{ {\\phi} }$" ], "text/plain": [ "grad(H) = d(h)/dr e_r + d(h)/dph/r e_ph" ] }, "execution_count": 71, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grad(H).display(polar_frame, polar)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To access to individual components is perfomed by the square bracket operator, where, in addition to the index, one has to specify the vector frame (as the first element) and the coordinate chart (as the last element) if they are not the default ones:" ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\frac{\\frac{\\partial\\,h}{\\partial {\\phi}}}{r}\\)" ], "text/latex": [ "$\\displaystyle \\frac{\\frac{\\partial\\,h}{\\partial {\\phi}}}{r}$" ], "text/plain": [ "d(h)/dph/r" ] }, "execution_count": 72, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grad(H)[polar_frame, 2, polar]" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{grad}\\left(H\\right) = \\left( \\frac{r \\cos\\left({\\phi}\\right) \\frac{\\partial\\,h}{\\partial r} - \\sin\\left({\\phi}\\right) \\frac{\\partial\\,h}{\\partial {\\phi}}}{r} \\right) e_{ x } + \\left( \\frac{r \\sin\\left({\\phi}\\right) \\frac{\\partial\\,h}{\\partial r} + \\cos\\left({\\phi}\\right) \\frac{\\partial\\,h}{\\partial {\\phi}}}{r} \\right) e_{ y }\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{grad}\\left(H\\right) = \\left( \\frac{r \\cos\\left({\\phi}\\right) \\frac{\\partial\\,h}{\\partial r} - \\sin\\left({\\phi}\\right) \\frac{\\partial\\,h}{\\partial {\\phi}}}{r} \\right) e_{ x } + \\left( \\frac{r \\sin\\left({\\phi}\\right) \\frac{\\partial\\,h}{\\partial r} + \\cos\\left({\\phi}\\right) \\frac{\\partial\\,h}{\\partial {\\phi}}}{r} \\right) e_{ y }$" ], "text/plain": [ "grad(H) = (r*cos(ph)*d(h)/dr - sin(ph)*d(h)/dph)/r e_x + (r*sin(ph)*d(h)/dr + cos(ph)*d(h)/dph)/r e_y" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grad(H).display(cartesian.frame(), polar)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Divergence in polar coordinates\n", "\n", "Let us define a generic vector field in terms of polar coordinates:" ] }, { "cell_type": "code", "execution_count": 74, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle u = u_{r}\\left(r, {\\phi}\\right) e_{ r } + u_\\phi\\left(r, {\\phi}\\right) e_{ {\\phi} }\\)" ], "text/latex": [ "$\\displaystyle u = u_{r}\\left(r, {\\phi}\\right) e_{ r } + u_\\phi\\left(r, {\\phi}\\right) e_{ {\\phi} }$" ], "text/plain": [ "u = u_r(r, ph) e_r + u_ph(r, ph) e_ph" ] }, "execution_count": 74, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u = E.vector_field(function('u_r')(r,ph),\n", " function('u_ph', latex_name=r'u_\\phi')(r,ph),\n", " frame=polar_frame, chart=polar, name='u')\n", "u.display(polar_frame, polar)" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{llcl} \\mathrm{div}\\left(u\\right):& \\mathbb{E}^{2} & \\longrightarrow & \\mathbb{R} \\\\ & \\left(r, {\\phi}\\right) & \\longmapsto & \\frac{r \\frac{\\partial\\,u_{r}}{\\partial r} + u_{r}\\left(r, {\\phi}\\right) + \\frac{\\partial\\,u_\\phi}{\\partial {\\phi}}}{r} \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{llcl} \\mathrm{div}\\left(u\\right):& \\mathbb{E}^{2} & \\longrightarrow & \\mathbb{R} \\\\ & \\left(r, {\\phi}\\right) & \\longmapsto & \\frac{r \\frac{\\partial\\,u_{r}}{\\partial r} + u_{r}\\left(r, {\\phi}\\right) + \\frac{\\partial\\,u_\\phi}{\\partial {\\phi}}}{r} \\end{array}$" ], "text/plain": [ "div(u): E^2 → ℝ\n", " (r, ph) ↦ (r*d(u_r)/dr + u_r(r, ph) + d(u_ph)/dph)/r" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "div(u).display(polar)" ] }, { "cell_type": "code", "execution_count": 76, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\frac{r \\frac{\\partial}{\\partial r}u_{r}\\left(r, {\\phi}\\right) + u_{r}\\left(r, {\\phi}\\right) + \\frac{\\partial}{\\partial {\\phi}}u_\\phi\\left(r, {\\phi}\\right)}{r}\\)" ], "text/latex": [ "$\\displaystyle \\frac{r \\frac{\\partial}{\\partial r}u_{r}\\left(r, {\\phi}\\right) + u_{r}\\left(r, {\\phi}\\right) + \\frac{\\partial}{\\partial {\\phi}}u_\\phi\\left(r, {\\phi}\\right)}{r}$" ], "text/plain": [ "(r*diff(u_r(r, ph), r) + u_r(r, ph) + diff(u_ph(r, ph), ph))/r" ] }, "execution_count": 76, "metadata": {}, "output_type": "execute_result" } ], "source": [ "div(u).expr(polar)" ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\frac{u_{r}\\left(r, {\\phi}\\right)}{r} + \\frac{\\frac{\\partial}{\\partial {\\phi}}u_\\phi\\left(r, {\\phi}\\right)}{r} + \\frac{\\partial}{\\partial r}u_{r}\\left(r, {\\phi}\\right)\\)" ], "text/latex": [ "$\\displaystyle \\frac{u_{r}\\left(r, {\\phi}\\right)}{r} + \\frac{\\frac{\\partial}{\\partial {\\phi}}u_\\phi\\left(r, {\\phi}\\right)}{r} + \\frac{\\partial}{\\partial r}u_{r}\\left(r, {\\phi}\\right)$" ], "text/plain": [ "u_r(r, ph)/r + diff(u_ph(r, ph), ph)/r + diff(u_r(r, ph), r)" ] }, "execution_count": 77, "metadata": {}, "output_type": "execute_result" } ], "source": [ "div(u).expr(polar).expand()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Using polar coordinates by default:\n", "\n", "In order to avoid specifying the arguments `polar_frame` and `polar` in `display()`, `expr()` and `[]`, we may change the default values by" ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [], "source": [ "E.set_default_chart(polar)\n", "E.set_default_frame(polar_frame)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Then we have" ] }, { "cell_type": "code", "execution_count": 79, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle u = u_{r}\\left(r, {\\phi}\\right) e_{ r } + u_\\phi\\left(r, {\\phi}\\right) e_{ {\\phi} }\\)" ], "text/latex": [ "$\\displaystyle u = u_{r}\\left(r, {\\phi}\\right) e_{ r } + u_\\phi\\left(r, {\\phi}\\right) e_{ {\\phi} }$" ], "text/plain": [ "u = u_r(r, ph) e_r + u_ph(r, ph) e_ph" ] }, "execution_count": 79, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u.display()" ] }, { "cell_type": "code", "execution_count": 80, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle u_{r}\\left(r, {\\phi}\\right)\\)" ], "text/latex": [ "$\\displaystyle u_{r}\\left(r, {\\phi}\\right)$" ], "text/plain": [ "u_r(r, ph)" ] }, "execution_count": 80, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u[1]" ] }, { "cell_type": "code", "execution_count": 81, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle v = r e_{ {\\phi} }\\)" ], "text/latex": [ "$\\displaystyle v = r e_{ {\\phi} }$" ], "text/plain": [ "v = r e_ph" ] }, "execution_count": 81, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v.display()" ] }, { "cell_type": "code", "execution_count": 82, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle r\\)" ], "text/latex": [ "$\\displaystyle r$" ], "text/plain": [ "r" ] }, "execution_count": 82, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v[2]" ] }, { "cell_type": "code", "execution_count": 83, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle w = \\left( \\cos\\left({\\phi}\\right) w_{x}\\left(r \\cos\\left({\\phi}\\right), r \\sin\\left({\\phi}\\right)\\right) + \\sin\\left({\\phi}\\right) w_{y}\\left(r \\cos\\left({\\phi}\\right), r \\sin\\left({\\phi}\\right)\\right) \\right) e_{ r } + \\left( -\\sin\\left({\\phi}\\right) w_{x}\\left(r \\cos\\left({\\phi}\\right), r \\sin\\left({\\phi}\\right)\\right) + \\cos\\left({\\phi}\\right) w_{y}\\left(r \\cos\\left({\\phi}\\right), r \\sin\\left({\\phi}\\right)\\right) \\right) e_{ {\\phi} }\\)" ], "text/latex": [ "$\\displaystyle w = \\left( \\cos\\left({\\phi}\\right) w_{x}\\left(r \\cos\\left({\\phi}\\right), r \\sin\\left({\\phi}\\right)\\right) + \\sin\\left({\\phi}\\right) w_{y}\\left(r \\cos\\left({\\phi}\\right), r \\sin\\left({\\phi}\\right)\\right) \\right) e_{ r } + \\left( -\\sin\\left({\\phi}\\right) w_{x}\\left(r \\cos\\left({\\phi}\\right), r \\sin\\left({\\phi}\\right)\\right) + \\cos\\left({\\phi}\\right) w_{y}\\left(r \\cos\\left({\\phi}\\right), r \\sin\\left({\\phi}\\right)\\right) \\right) e_{ {\\phi} }$" ], "text/plain": [ "w = (cos(ph)*w_x(r*cos(ph), r*sin(ph)) + sin(ph)*w_y(r*cos(ph), r*sin(ph))) e_r + (-sin(ph)*w_x(r*cos(ph), r*sin(ph)) + cos(ph)*w_y(r*cos(ph), r*sin(ph))) e_ph" ] }, "execution_count": 83, "metadata": {}, "output_type": "execute_result" } ], "source": [ "w.display()" ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\frac{r \\frac{\\partial}{\\partial r}u_{r}\\left(r, {\\phi}\\right) + u_{r}\\left(r, {\\phi}\\right) + \\frac{\\partial}{\\partial {\\phi}}u_\\phi\\left(r, {\\phi}\\right)}{r}\\)" ], "text/latex": [ "$\\displaystyle \\frac{r \\frac{\\partial}{\\partial r}u_{r}\\left(r, {\\phi}\\right) + u_{r}\\left(r, {\\phi}\\right) + \\frac{\\partial}{\\partial {\\phi}}u_\\phi\\left(r, {\\phi}\\right)}{r}$" ], "text/plain": [ "(r*diff(u_r(r, ph), r) + u_r(r, ph) + diff(u_ph(r, ph), ph))/r" ] }, "execution_count": 84, "metadata": {}, "output_type": "execute_result" } ], "source": [ "div(u).expr()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 5. Advanced topics: the Euclidean plane as a Riemannian manifold\n", "\n", "$\\mathbb{E}^2$ is actually a Riemannian manifold, i.e. a smooth real manifold endowed with a positive definite metric tensor:" ] }, { "cell_type": "code", "execution_count": 85, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Join of Category of smooth manifolds over Real Field with 53 bits of precision and Category of connected manifolds over Real Field with 53 bits of precision and Category of complete metric spaces\n" ] } ], "source": [ "print(E.category())" ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 86, "metadata": {}, "output_type": "execute_result" } ], "source": [ "E.base_field() is RR" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Actually `RR` is used here as a proxy for the real field (this should be replaced in the future, see the discussion at [#24456](https://github.com/sagemath/sage/issues/24456)) and the 53 bits of precision play of course no role for the symbolic computations. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The user atlas of $\\mathbb{E}^2$ has two charts:" ] }, { "cell_type": "code", "execution_count": 87, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left[\\left(\\mathbb{E}^{2},(x, y)\\right), \\left(\\mathbb{E}^{2},(r, {\\phi})\\right)\\right]\\)" ], "text/latex": [ "$\\displaystyle \\left[\\left(\\mathbb{E}^{2},(x, y)\\right), \\left(\\mathbb{E}^{2},(r, {\\phi})\\right)\\right]$" ], "text/plain": [ "[Chart (E^2, (x, y)), Chart (E^2, (r, ph))]" ] }, "execution_count": 87, "metadata": {}, "output_type": "execute_result" } ], "source": [ "E.atlas()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "while there are three vector frames defined on $\\mathbb{E}^2$:" ] }, { "cell_type": "code", "execution_count": 88, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left[\\left(\\mathbb{E}^{2}, \\left(e_{ x },e_{ y }\\right)\\right), \\left(\\mathbb{E}^{2}, \\left(\\frac{\\partial}{\\partial r },\\frac{\\partial}{\\partial {\\phi} }\\right)\\right), \\left(\\mathbb{E}^{2}, \\left(e_{ r },e_{ {\\phi} }\\right)\\right)\\right]\\)" ], "text/latex": [ "$\\displaystyle \\left[\\left(\\mathbb{E}^{2}, \\left(e_{ x },e_{ y }\\right)\\right), \\left(\\mathbb{E}^{2}, \\left(\\frac{\\partial}{\\partial r },\\frac{\\partial}{\\partial {\\phi} }\\right)\\right), \\left(\\mathbb{E}^{2}, \\left(e_{ r },e_{ {\\phi} }\\right)\\right)\\right]$" ], "text/plain": [ "[Coordinate frame (E^2, (e_x,e_y)),\n", " Coordinate frame (E^2, (∂/∂r,∂/∂ph)),\n", " Vector frame (E^2, (e_r,e_ph))]" ] }, "execution_count": 88, "metadata": {}, "output_type": "execute_result" } ], "source": [ "E.frames()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Indeed, there are two frames associated with polar coordinates: the coordinate frame $(\\frac{\\partial}{\\partial r}, \\frac{\\partial}{\\partial \\phi})$ and the orthonormal frame $(e_r, e_\\phi)$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Riemannian metric\n", "\n", "The default metric tensor of $\\mathbb{E}^2$ is" ] }, { "cell_type": "code", "execution_count": 89, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Riemannian metric g on the Euclidean plane E^2\n" ] } ], "source": [ "g = E.metric()\n", "print(g)" ] }, { "cell_type": "code", "execution_count": 90, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle g = e^{ r }\\otimes e^{ r }+e^{ {\\phi} }\\otimes e^{ {\\phi} }\\)" ], "text/latex": [ "$\\displaystyle g = e^{ r }\\otimes e^{ r }+e^{ {\\phi} }\\otimes e^{ {\\phi} }$" ], "text/plain": [ "g = e^r⊗e^r + e^ph⊗e^ph" ] }, "execution_count": 90, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the above display, $e^r$ and $e^\\phi$ are the 1-forms defining the coframe dual to the orthonormal polar frame $(e_r,e_\\phi)$, which is the default vector frame on $\\mathbb{E}^2$:" ] }, { "cell_type": "code", "execution_count": 91, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(\\mathbb{E}^{2}, \\left(e^{ r },e^{ {\\phi} }\\right)\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(\\mathbb{E}^{2}, \\left(e^{ r },e^{ {\\phi} }\\right)\\right)$" ], "text/plain": [ "Coframe (E^2, (e^r,e^ph))" ] }, "execution_count": 91, "metadata": {}, "output_type": "execute_result" } ], "source": [ "polar_frame.coframe()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Of course, we may ask for display with respect to frames different from the default one:" ] }, { "cell_type": "code", "execution_count": 92, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle g = \\mathrm{d} x\\otimes \\mathrm{d} x+\\mathrm{d} y\\otimes \\mathrm{d} y\\)" ], "text/latex": [ "$\\displaystyle g = \\mathrm{d} x\\otimes \\mathrm{d} x+\\mathrm{d} y\\otimes \\mathrm{d} y$" ], "text/plain": [ "g = dx⊗dx + dy⊗dy" ] }, "execution_count": 92, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g.display(cartesian.frame())" ] }, { "cell_type": "code", "execution_count": 93, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle g = \\mathrm{d} r\\otimes \\mathrm{d} r + r^{2} \\mathrm{d} {\\phi}\\otimes \\mathrm{d} {\\phi}\\)" ], "text/latex": [ "$\\displaystyle g = \\mathrm{d} r\\otimes \\mathrm{d} r + r^{2} \\mathrm{d} {\\phi}\\otimes \\mathrm{d} {\\phi}$" ], "text/plain": [ "g = dr⊗dr + r^2 dph⊗dph" ] }, "execution_count": 93, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g.display(polar.frame())" ] }, { "cell_type": "code", "execution_count": 94, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(\\begin{array}{rr}\n", "1 & 0 \\\\\n", "0 & 1\n", "\\end{array}\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(\\begin{array}{rr}\n", "1 & 0 \\\\\n", "0 & 1\n", "\\end{array}\\right)$" ], "text/plain": [ "[1 0]\n", "[0 1]" ] }, "execution_count": 94, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g[:]" ] }, { "cell_type": "code", "execution_count": 95, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(\\begin{array}{rr}\n", "1 & 0 \\\\\n", "0 & r^{2}\n", "\\end{array}\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(\\begin{array}{rr}\n", "1 & 0 \\\\\n", "0 & r^{2}\n", "\\end{array}\\right)$" ], "text/plain": [ "[ 1 0]\n", "[ 0 r^2]" ] }, "execution_count": 95, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g[polar.frame(),:]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It is a *flat* metric: its (Riemann) curvature tensor is zero: " ] }, { "cell_type": "code", "execution_count": 96, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tensor field Riem(g) of type (1,3) on the Euclidean plane E^2\n" ] } ], "source": [ "print(g.riemann())" ] }, { "cell_type": "code", "execution_count": 97, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{Riem}\\left(g\\right) = 0\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{Riem}\\left(g\\right) = 0$" ], "text/plain": [ "Riem(g) = 0" ] }, "execution_count": 97, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g.riemann().display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The metric $g$ is defining the dot product on $\\mathbb{E}^2$:" ] }, { "cell_type": "code", "execution_count": 98, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 98, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v.dot(w) == g(v,w)" ] }, { "cell_type": "code", "execution_count": 99, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 99, "metadata": {}, "output_type": "execute_result" } ], "source": [ "norm(v) == sqrt(g(v,v))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Vector fields as derivatives" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Vector fields acts as derivative on scalar fields: " ] }, { "cell_type": "code", "execution_count": 100, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Scalar field v(F) on the Euclidean plane E^2\n" ] } ], "source": [ "print(v(F))" ] }, { "cell_type": "code", "execution_count": 101, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{llcl} v\\left(F\\right):& \\mathbb{E}^{2} & \\longrightarrow & \\mathbb{R} \\\\ & \\left(x, y\\right) & \\longmapsto & -y \\frac{\\partial\\,f}{\\partial x} + x \\frac{\\partial\\,f}{\\partial y} \\\\ & \\left(r, {\\phi}\\right) & \\longmapsto & -r \\sin\\left({\\phi}\\right) \\frac{\\partial\\,f}{\\partial \\left( r \\cos\\left({\\phi}\\right) \\right)} + r \\cos\\left({\\phi}\\right) \\frac{\\partial\\,f}{\\partial \\left( r \\sin\\left({\\phi}\\right) \\right)} \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{llcl} v\\left(F\\right):& \\mathbb{E}^{2} & \\longrightarrow & \\mathbb{R} \\\\ & \\left(x, y\\right) & \\longmapsto & -y \\frac{\\partial\\,f}{\\partial x} + x \\frac{\\partial\\,f}{\\partial y} \\\\ & \\left(r, {\\phi}\\right) & \\longmapsto & -r \\sin\\left({\\phi}\\right) \\frac{\\partial\\,f}{\\partial \\left( r \\cos\\left({\\phi}\\right) \\right)} + r \\cos\\left({\\phi}\\right) \\frac{\\partial\\,f}{\\partial \\left( r \\sin\\left({\\phi}\\right) \\right)} \\end{array}$" ], "text/plain": [ "v(F): E^2 → ℝ\n", " (x, y) ↦ -y*d(f)/dx + x*d(f)/dy\n", " (r, ph) ↦ -r*sin(ph)*d(f)/d(r*cos(ph)) + r*cos(ph)*d(f)/d(r*sin(ph))" ] }, "execution_count": 101, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v(F).display()" ] }, { "cell_type": "code", "execution_count": 102, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 102, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v(F) == v.dot(grad(F))" ] }, { "cell_type": "code", "execution_count": 103, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1-form dF on the Euclidean plane E^2\n" ] } ], "source": [ "dF = F.differential()\n", "print(dF)" ] }, { "cell_type": "code", "execution_count": 104, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 104, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v(F) == dF(v)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The set $\\mathfrak{X}(\\mathbb{E}^2)$ of all vector fields on $\\mathbb{E}^2$ is a free module of rank 2 over the commutative algebra of smooth scalar fields on $\\mathbb{E}^2$, $C^\\infty(\\mathbb{E}^2)$:" ] }, { "cell_type": "code", "execution_count": 105, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Free module X(E^2) of vector fields on the Euclidean plane E^2\n" ] }, { "data": { "text/html": [ "\\(\\displaystyle \\mathfrak{X}\\left(\\mathbb{E}^{2}\\right)\\)" ], "text/latex": [ "$\\displaystyle \\mathfrak{X}\\left(\\mathbb{E}^{2}\\right)$" ], "text/plain": [ "Free module X(E^2) of vector fields on the Euclidean plane E^2" ] }, "execution_count": 105, "metadata": {}, "output_type": "execute_result" } ], "source": [ "XE = v.parent()\n", "print(XE)\n", "XE" ] }, { "cell_type": "code", "execution_count": 106, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Category of finite dimensional modules over Algebra of differentiable scalar fields on the Euclidean plane E^2\n" ] } ], "source": [ "print(XE.category())" ] }, { "cell_type": "code", "execution_count": 107, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Algebra of differentiable scalar fields on the Euclidean plane E^2\n" ] }, { "data": { "text/html": [ "\\(\\displaystyle C^{\\infty}\\left(\\mathbb{E}^{2}\\right)\\)" ], "text/latex": [ "$\\displaystyle C^{\\infty}\\left(\\mathbb{E}^{2}\\right)$" ], "text/plain": [ "Algebra of differentiable scalar fields on the Euclidean plane E^2" ] }, "execution_count": 107, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print(XE.base_ring())\n", "XE.base_ring()" ] }, { "cell_type": "code", "execution_count": 108, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle C^{\\infty}\\left(\\mathbb{E}^{2}\\right)\\)" ], "text/latex": [ "$\\displaystyle C^{\\infty}\\left(\\mathbb{E}^{2}\\right)$" ], "text/plain": [ "Algebra of differentiable scalar fields on the Euclidean plane E^2" ] }, "execution_count": 108, "metadata": {}, "output_type": "execute_result" } ], "source": [ "CE = F.parent()\n", "CE" ] }, { "cell_type": "code", "execution_count": 109, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 109, "metadata": {}, "output_type": "execute_result" } ], "source": [ "CE is XE.base_ring()" ] }, { "cell_type": "code", "execution_count": 110, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Join of Category of commutative algebras over Symbolic Ring and Category of homsets of topological spaces\n" ] } ], "source": [ "print(CE.category())" ] }, { "cell_type": "code", "execution_count": 111, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle 2\\)" ], "text/latex": [ "$\\displaystyle 2$" ], "text/plain": [ "2" ] }, "execution_count": 111, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rank(XE)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The bases of the free module $\\mathfrak{X}(\\mathbb{E}^2)$ are nothing but the vector frames defined on $\\mathbb{E}^2$:" ] }, { "cell_type": "code", "execution_count": 112, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left[\\left(\\mathbb{E}^{2}, \\left(e_{ x },e_{ y }\\right)\\right), \\left(\\mathbb{E}^{2}, \\left(\\frac{\\partial}{\\partial r },\\frac{\\partial}{\\partial {\\phi} }\\right)\\right), \\left(\\mathbb{E}^{2}, \\left(e_{ r },e_{ {\\phi} }\\right)\\right)\\right]\\)" ], "text/latex": [ "$\\displaystyle \\left[\\left(\\mathbb{E}^{2}, \\left(e_{ x },e_{ y }\\right)\\right), \\left(\\mathbb{E}^{2}, \\left(\\frac{\\partial}{\\partial r },\\frac{\\partial}{\\partial {\\phi} }\\right)\\right), \\left(\\mathbb{E}^{2}, \\left(e_{ r },e_{ {\\phi} }\\right)\\right)\\right]$" ], "text/plain": [ "[Coordinate frame (E^2, (e_x,e_y)),\n", " Coordinate frame (E^2, (∂/∂r,∂/∂ph)),\n", " Vector frame (E^2, (e_r,e_ph))]" ] }, "execution_count": 112, "metadata": {}, "output_type": "execute_result" } ], "source": [ "XE.bases()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Tangent spaces" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Vector fields evaluated at a point are vectors in the tangent space at this point:" ] }, { "cell_type": "code", "execution_count": 113, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle v = -3 e_{ x } -2 e_{ y }\\)" ], "text/latex": [ "$\\displaystyle v = -3 e_{ x } -2 e_{ y }$" ], "text/plain": [ "v = -3 e_x - 2 e_y" ] }, "execution_count": 113, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vp = v.at(p)\n", "vp.display()" ] }, { "cell_type": "code", "execution_count": 114, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tangent space at Point p on the Euclidean plane E^2\n" ] }, { "data": { "text/html": [ "\\(\\displaystyle T_{p}\\,\\mathbb{E}^{2}\\)" ], "text/latex": [ "$\\displaystyle T_{p}\\,\\mathbb{E}^{2}$" ], "text/plain": [ "Tangent space at Point p on the Euclidean plane E^2" ] }, "execution_count": 114, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Tp = vp.parent()\n", "print(Tp)\n", "Tp" ] }, { "cell_type": "code", "execution_count": 115, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Category of finite dimensional vector spaces over Symbolic Ring\n" ] } ], "source": [ "print(Tp.category())" ] }, { "cell_type": "code", "execution_count": 116, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle 2\\)" ], "text/latex": [ "$\\displaystyle 2$" ], "text/plain": [ "2" ] }, "execution_count": 116, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dim(Tp)" ] }, { "cell_type": "code", "execution_count": 117, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 117, "metadata": {}, "output_type": "execute_result" } ], "source": [ "isinstance(Tp, FiniteRankFreeModule)" ] }, { "cell_type": "code", "execution_count": 118, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left[\\left(e_{ r },e_{ {\\phi} }\\right), \\left(e_{ x },e_{ y }\\right)\\right]\\)" ], "text/latex": [ "$\\displaystyle \\left[\\left(e_{ r },e_{ {\\phi} }\\right), \\left(e_{ x },e_{ y }\\right)\\right]$" ], "text/plain": [ "[Basis (e_r,e_ph) on the Tangent space at Point p on the Euclidean plane E^2,\n", " Basis (e_x,e_y) on the Tangent space at Point p on the Euclidean plane E^2]" ] }, "execution_count": 118, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sorted(Tp.bases(), key=str)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Levi-Civita connection\n", "\n", "The Levi-Civita connection associated to the Euclidean metric $g$ is" ] }, { "cell_type": "code", "execution_count": 119, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Levi-Civita connection nabla_g associated with the Riemannian metric g on the Euclidean plane E^2\n" ] }, { "data": { "text/html": [ "\\(\\displaystyle \\nabla_{g}\\)" ], "text/latex": [ "$\\displaystyle \\nabla_{g}$" ], "text/plain": [ "Levi-Civita connection nabla_g associated with the Riemannian metric g on the Euclidean plane E^2" ] }, "execution_count": 119, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nabla = g.connection()\n", "print(nabla)\n", "nabla" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The corresponding Christoffel symbols with respect to the polar coordinates are:" ] }, { "cell_type": "code", "execution_count": 120, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{lcl} \\Gamma_{ \\phantom{\\, r} \\, {\\phi} \\, {\\phi} }^{ \\, r \\phantom{\\, {\\phi}} \\phantom{\\, {\\phi}} } & = & -r \\\\ \\Gamma_{ \\phantom{\\, {\\phi}} \\, r \\, {\\phi} }^{ \\, {\\phi} \\phantom{\\, r} \\phantom{\\, {\\phi}} } & = & \\frac{1}{r} \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{lcl} \\Gamma_{ \\phantom{\\, r} \\, {\\phi} \\, {\\phi} }^{ \\, r \\phantom{\\, {\\phi}} \\phantom{\\, {\\phi}} } & = & -r \\\\ \\Gamma_{ \\phantom{\\, {\\phi}} \\, r \\, {\\phi} }^{ \\, {\\phi} \\phantom{\\, r} \\phantom{\\, {\\phi}} } & = & \\frac{1}{r} \\end{array}$" ], "text/plain": [ "Gam^r_ph,ph = -r \n", "Gam^ph_r,ph = 1/r " ] }, "execution_count": 120, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g.christoffel_symbols_display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "By default, only nonzero and nonredundant values are displayed (for instance $\\Gamma^\\phi_{\\ \\, \\phi r}$ is skipped, since it can be deduced from $\\Gamma^\\phi_{\\ \\, r \\phi}$ by symmetry on the last two indices).\n", "\n", "The Christoffel symbols with respect to the Cartesian coordinates are all zero: " ] }, { "cell_type": "code", "execution_count": 121, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{lcl} \\Gamma_{ \\phantom{\\, x} \\, x \\, x }^{ \\, x \\phantom{\\, x} \\phantom{\\, x} } & = & 0 \\\\ \\Gamma_{ \\phantom{\\, x} \\, x \\, y }^{ \\, x \\phantom{\\, x} \\phantom{\\, y} } & = & 0 \\\\ \\Gamma_{ \\phantom{\\, x} \\, y \\, y }^{ \\, x \\phantom{\\, y} \\phantom{\\, y} } & = & 0 \\\\ \\Gamma_{ \\phantom{\\, y} \\, x \\, x }^{ \\, y \\phantom{\\, x} \\phantom{\\, x} } & = & 0 \\\\ \\Gamma_{ \\phantom{\\, y} \\, x \\, y }^{ \\, y \\phantom{\\, x} \\phantom{\\, y} } & = & 0 \\\\ \\Gamma_{ \\phantom{\\, y} \\, y \\, y }^{ \\, y \\phantom{\\, y} \\phantom{\\, y} } & = & 0 \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{lcl} \\Gamma_{ \\phantom{\\, x} \\, x \\, x }^{ \\, x \\phantom{\\, x} \\phantom{\\, x} } & = & 0 \\\\ \\Gamma_{ \\phantom{\\, x} \\, x \\, y }^{ \\, x \\phantom{\\, x} \\phantom{\\, y} } & = & 0 \\\\ \\Gamma_{ \\phantom{\\, x} \\, y \\, y }^{ \\, x \\phantom{\\, y} \\phantom{\\, y} } & = & 0 \\\\ \\Gamma_{ \\phantom{\\, y} \\, x \\, x }^{ \\, y \\phantom{\\, x} \\phantom{\\, x} } & = & 0 \\\\ \\Gamma_{ \\phantom{\\, y} \\, x \\, y }^{ \\, y \\phantom{\\, x} \\phantom{\\, y} } & = & 0 \\\\ \\Gamma_{ \\phantom{\\, y} \\, y \\, y }^{ \\, y \\phantom{\\, y} \\phantom{\\, y} } & = & 0 \\end{array}$" ], "text/plain": [ "Gam^x_xx = 0 \n", "Gam^x_xy = 0 \n", "Gam^x_yy = 0 \n", "Gam^y_xx = 0 \n", "Gam^y_xy = 0 \n", "Gam^y_yy = 0 " ] }, "execution_count": 121, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g.christoffel_symbols_display(chart=cartesian, only_nonzero=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$\\nabla_g$ is the connection involved in differential operators:" ] }, { "cell_type": "code", "execution_count": 122, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 122, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grad(F) == nabla(F).up(g)" ] }, { "cell_type": "code", "execution_count": 123, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 123, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nabla(F) == grad(F).down(g)" ] }, { "cell_type": "code", "execution_count": 124, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 124, "metadata": {}, "output_type": "execute_result" } ], "source": [ "div(v) == nabla(v).trace()" ] }, { "cell_type": "code", "execution_count": 125, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 125, "metadata": {}, "output_type": "execute_result" } ], "source": [ "div(w) == nabla(w).trace()" ] }, { "cell_type": "code", "execution_count": 126, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 126, "metadata": {}, "output_type": "execute_result" } ], "source": [ "laplacian(F) == nabla(nabla(F).up(g)).trace()" ] }, { "cell_type": "code", "execution_count": 127, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 127, "metadata": {}, "output_type": "execute_result" } ], "source": [ "laplacian(w) == nabla(nabla(w).up(g)).trace(1,2)" ] } ], "metadata": { "kernelspec": { "display_name": "SageMath 9.8", "language": "sage", "name": "sagemath" }, "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.10.6" } }, "nbformat": 4, "nbformat_minor": 4 }